(截图来自MOOC平台华中科技大学计算机组成原理课程)
数据通路分为共享通路和专用通路两种类型,专用通路可以看作多总线结构。而单总线的情况下,总线上的数据传输权成为稀缺资源,各部件需要分时使用总线,效率低下。
以如下单总线结构为例:
通用寄存器堆用于存储ALU要是用的操作数和计算结果,当接收一个读操作指令,即将选择的数据通过总线IB传输出去,接收一个写操作指令,即将数据写入寄存器中。
LA和LB两个锁存器用于锁存从寄存器中读出的操作数,因为总线不能同时传输两个操作数,所以必须用锁存器暂时存储起来。
以Add R0,R1为例:
寄存器接收读命令,将R0中的数据通过IB送到LA的输入端,第一个时钟触发沿来临后,LA写入操作数;再将操作数从R1中取出,第二个时钟触发沿来临后,写入LB。而经过ALU运算的结果通过IB在第三个时钟触发沿到来时写入寄存器。
这种单总线结构一共需要两个锁存器,完成一条加法指令需要三个时钟周期。
对于双总线结构来说,可以用一个时钟周期完成R0的传输,R1的出书和结果的传输可以在第二个时钟周期内完成。