数据通路分类

  • 共享通路(总线型)

主要部件都链接在公共总线上,各部件间通过总线进行数据传输

结构简单,实现容易,但并发性较差,需分时使用总线,效率低

  • 专用通路

并发高,性能佳,设计复杂,成本高

可以看作多总线结构

单总线结构中的数据通路

图示

描述已自动生成

  1. 只有唯一的总线IB
  2. ALU算数逻辑运算单元,以及暂存算数逻辑运算单元操作数以及运算结果的的通用寄存器,都链接在IB总线上
  3. 为了保证运算器的时序,因为一根总线无法给运算器的两个输入端提供不同的数据,所以增加了两个锁存器LA和LB用来锁存数据
  4. LA,LB这两个锁存器都有时钟进行配合,所以增加了时钟信号,要想将总线的输入数据输入到锁存器,必须要给出对应的使能信号IB->LA或者IB->LB,就是锁存器的写使能信号
  5. 另外通用寄存器也可以通过总线输入数据,可以给出IB->Ri, Ri->IB写使能信号和输出的使能信号
  6. 如果没有锁存器,一个时钟周期后数据就会在总线上丢失,R0传输完没有锁存器,等R1通过总线传输的时候R0数据已经丢失了,数据总线只是用来传输数据不用来保存数据

例如加法指令:ADD R0 R1,将R0 + R1 ->R0值最终输入到R0寄存器中

通路架构 通路分类_数据

  1. 首先将R0和R1两个寄存器从通用寄存器输出到LA和LB中,锁存才可以进行响应的计算
  2. 首先给出R0->IB的控制信号,对应的R0就会通过通用寄存器传输到LA的输入端,要想将R0的值所存在LA中,必须要给出对应的写使能信号IB->LA,加上时钟进行配合,当时钟的上跳沿到来的时候数据R0的值就会写入到LA中
  3. 按照2中同样的通路将R1的值所存在LB锁存器中,这个时候R1会通过数据总线传递,此时R0也通过数据总线传递,那么数据总线就存在这冲突,所以R0的传输和R1的传输必须分时使用,这就是总线分时使用的原理
  4. 当R0和R1的值都就绪了存放在ALU的A端和B端之后,就可以进行响应的运算,只需要给出一个运算的操作符AluOP,加法运算器就会进行运算,将最终运算的和送到对应的总线传输到通用寄存器的输入端,再加上一个写使能悉信号将IB写入到R0的寄存器中,配合上第三个时钟,我们就可以将数据写入到通用寄存器中
  5. 所以完成一个加法需要三个时钟周期,会三次分时使用总线

双总线结构与运算通路1

通路架构 通路分类_通路架构_02

增加了IB2总线,从通用寄存器出来直接到B端,所以通用寄存器可以同时提供一个数到B端也可以通过IB1总线传输数据到LA锁存器中,所以对通用寄存器有要求,可以同时输出两路,两个多路选择器

例如加法指令:ADD R0 R1,将R0 + R1 ->R0值最终输入到R0寄存器中

  1. 将R0送IB1,所以R0的值就可以通过总线IB1输入到所存LA输入端,给出写使能信号,在第一个时钟的配合下,第一个数据就会所存在LA中
  2. 在第二个时钟周期内,可以通过IB2总线将我们对应的数据传递到B端,同时可以给出运算操作信号为加法,进行加法的运算,给出操作信号也是通过通用寄存器给的,IB2到B端的过程不需要通过时钟周期
  3. 响应的计算结果就会通过IB1回传给通用寄存器的输入端,然后给出写使能将对应的IB1送给R0,在加上第二个时钟进行响应的配合,就可以将数据写入到通用寄存器中
  4. 所以只需要一个锁存器,两个时钟周期,相对于单个总线减少了一个时钟周期,所以总线数量对运算有直接影响

双总线结构与运算通路2

通路架构 通路分类_通用寄存器_03

  1. 直接将R0和R1的数据送入ALU的AB端,同时把加法操作输入
  2. 然后将计算结果写入LA的输入端,在第一个时钟周期所存在LA中
  3. 然后经过IB1总线发送到通用寄存器的输入端,在第二个时钟周期作用下写入通用寄存器中,一个锁存器,两个时钟周期

三重县结构,与运算通路

图示

描述已自动生成

增加了IB3总线,IB1负责A的输入,IB2负责B的输入,输出的结果直接通过IB3额外的总线写回通用寄存器,所有的数据和结果可以同时产生,只要给出一个控制信号,这些控制信号是并发的,只需要一个时钟周期将结果写入到通用寄存器,不需要锁存器,只需要一个加法计算器,需要额外的总线,IB1和IB3可以通过旁路器进行数据的交互。