Bonky
Neither believe nor reject anything, because any other person has rejected or believed it. Heaven has given you a mind for judging truth and error, Use it.
By Thomas Jefferson

计算机组成 – 控制单元

微操作命令

  • 取指周期:从内存中取出 PC 所指向的指令
  • 间址周期:如果是间接寻址的话,需要计算出内存中的地址
  • 执行周期:指令的执行
  • 中断周期:三个阶段(保存现场,找到中断程序入口,关中断)

取指周期

image-20191208004930562

第一步,PC 把指令的地址送到 MAR,在通过地址线选择相应的存储单元。然后,存储器通过数据总线将指令送到 MDR 再送到 IR 之中。最后一步是译码,将 IR 送入 CU,然后 CU 就知道具体要执行的东西,然后 CU 控制 PC 加一。

间址周期

image-20191208005431131

首先,CU 把 IR 中的地址部分取出来给 MAR,然后根据在指定地址将数据取出,传输给 MDR,然后把 MDR 中内容传给 IR。(即相当于内存存储的是指令的地址)

执行周期

image-20191208011854642

非访存指令

image-20191208010826696

第一个清零,只需要直接把 0 送入 ACC。第二个取反,只需要对 ACC 符号。第三个,只需要把左边的数据移动到右边,然后复制符号位就好了。第四个和上面差不多,只需要把第一个移动到最后一个。第五个,给停机标志置 0 就好了。

访存指令

加法:

image-20191208011229949

存数指令:

image-20191208011340071

取数指令:

image-20191208011401542

转移指令

  • 无条件转移:直接把 IR 的地址送到 PC
  • 条件转移:有很多,如遇上负就转:\mathbf{A}_{0} \cdot \mathbf{A} \mathbf{d}(\mathbf{I} \mathbf{R})+\overline{\mathbf{A}}_{0}(\mathbf{P} \mathbf{C}) \rightarrow \mathbf{P} \mathbf{C},这个公式根据 A0 来判断,如果 A0 为 1,那么就是 IR 到 PC,否则就是 PC,保持不变。

中断周期

就三件事,保存断点,生成中断服务程序入口,关中断。下面是两种中断方法的周期:

image-20191208012032675

控制单元

image-20191208012243935

信号

输入信号

  • 时钟
  • 指令寄存器:即 IR,IR 中的操作码送给 CU 方便 CU 进行控制
  • 标志:比如条件转移就需要用到标志位
  • 外来信号:INTR,HRQ(总线请求)

输出信号

  • CPU 内的各种控制信号:寄存器间的传输,PC++,ALU
  • 送至控制总线的信号:读写等等

image-20191208012602273

例子:不采用 CPU 内部总线的方式

@ 代表的是间址寻址。其实和上面的微操作指令一样,总共经过三个周期:取指→间址→执行

image-20191208013509258

例子:采用 CPU 内部总线方式

因为上面那种每个部件都通过线连接增加了 CPU 的复杂性,所以产生了下面这种共同占用一个总线的方式。注意我们需要一个 Z 和 Y 暂存。

取指阶段

和上面的取指阶段差不多。PC 把指令的地址送到 MAR,选择存储单元。然后,存储器通过指令 → MDR → IR 。最后一步是译码,将 IR 送入 CU,PC 加一。

然后下面最需要注意的是 CU 的信号,蓝色字体代表的是信号。下标 i 代表的输入信号,o 代表的是输出信号。

image-20191208142752193

间址周期

其实也差不多。首先,CU 把 IR 中的地址部分取出来给 MAR,然后根据在指定地址将数据取出,传输给 MDR,然后把 MDR 中内容传给 IR。(即相当于内存存储的是指令的地址)

image-20191208143047122

执行周期

image-20191208143707582

多级时序系统

机器周期

机器周期:所有指令执行过程中的一个基准时间

一般以完成最复杂指令功能(微操作)的时间为准,因为因为最长的是访问存储器,以访问一次存储器的时间为基准。如果指令字长 = 存储字长,取指周期 = 机器周期。

时钟周期

一个机器周期内可完成若干个微操作。时钟周期是控制计算机操作的最小单位时间,用时钟周期控制产生一个或几个微操作命令。

多级时序系统

总计一下是:一个指令周期包含若干个机器周期,一个机器周期包含若干个时钟周期(节拍)。如下面,CLK 每一个周期是一拍,一个机器周期有多个拍。

image-20191208145016657

机器速度与机器主频的关系

在机器周期所含时钟周期数相同的前提下, 两机平均指令执行速度之比等于 两机主频之比:
\frac{\mathrm{MIPS}_{1}}{\mathrm{MIPS}_{2}}=\frac{f_{1}}{f_{2}}
机器速度不仅与主频有关 ,还与机器周期中所含时钟周期(主频的倒数)数 以及指令周期中所含的机器周期数有关。

控制方式

同步控制方式

  • 定长的机器周期:以最长的微操作序列和最复杂的微操作作为标准,机器周期内节拍数相同
  • 采用不定长的机器周期
  • 采用中央控制和局部控制相结合的方法:一部分由中央控制节拍决定,延长的部分由局部控制决定。
  • image-20191208153319616

异步控制方式

无基准时标信号,无固定的周期节拍和严格的时钟同步,采用应答方式,一个操作结束后,收到应答继续下一个操作。

联合控制方式

比如 I/O 的话,你不知道什么时候才能结束,所以可以采用同步与异步相结合的方式。

Share

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注