数据通路与总线结构 硬布线控制器

华中科技大学-计算机组成原理
CPU的主要功能

  • 数据加工:算术运算和逻辑运算
  • 程序控制:顺序控制
  • 操作控制:取指译码产生执行部件所需的操作控制信号
  • 时序控制:控制操作信号的产生时间和持续时间
  • 异常控制:异常处理,外设交互

数据通路与总线结构 硬布线控制器_第1张图片

  • 主要寄存器
PC(Program Counter) X86:EIP
IR(Instruction Register) 可选
AR(Address Register) 可选
DR(Data Register) 可选
AC(Accumulate Register) 可选
PSW(Program Status Word) 可选,X86:EFLAGS
  • 运算器
ALU(Arithmetic and Logic Unit) 进行算术逻辑运算
通用寄存器组(EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP) 存放操作数
暂存器 暂存从主存中读出的内容,在ALU输出端设暂存器T存放运算结果,程序员不能访问它们
PSW 保留算术逻辑运算指令或测试指令结果建立的状态信息
移位器 对运算结果移位,暂存器T有移位功能
计数器CT 控制乘除运算的操作步数
  • 控制器:
PC 指出下一条指令在主存中的地址
IR 保存当前执行的指令代码
AR 保存当前CPU访问的内存单元的地址
DR 暂存写入主存的指令或数据
ID(Instruction Decoder) 分别对操作码,寻址方式,地址码进行译码,向控制器提供操作信号
时序系统 产生时序信号
微操作信号发生器 根据ID、PSW的内容以及时序线的内容,产生控制信号

数据通路 Datapath

数据通路:CPU内部各执行部件间传送信息的路径。
通路的建立由控制信号控制,受时钟驱动。不同指令的数据通路不同,同一指令在执行的不同阶段的数据通路也不相同。

分类:

  • 共享通路(总线型):主要部件都连接在公共总线上,各部件通过总线进行数据传输。
优点 缺点
结构简单,实现容易,早期计算机普遍使用 总线成为竞争资源,并发性较差,需要分时使用总线,效率低
  • 专用通路:数据传输的双方都增加了专用的数据通路,不需要和其他设备竞争总线。可以看做多总线结构
优点 缺点
并发度高,性能好 设计复杂,成本高

影响时钟频率的因素

D触发器定时模型

数据通路与总线结构 硬布线控制器_第2张图片
数据通路与总线结构 硬布线控制器_第3张图片
数据通路与总线结构 硬布线控制器_第4张图片

Setup Time 在时钟上跳沿来临之前,输入必须保持一段稳定时间
Hold Time 时钟上跳沿到来之和,输入仍然要保持一段稳定时间
触发器延迟Cllk_to_Q 时钟上跳沿到来之后,经过一个触发器延迟,D触发器存储的数据更新

数据通路与时钟周期的关系

数据通路与总线结构 硬布线控制器_第5张图片
数据通路与总线结构 硬布线控制器_第6张图片

时钟周期 > Clk_to_Q + 关键路径时延(组合逻辑中路径最长的) + Setup Time 让数据能锁存在B
Clk_to_Q + 最短路径时延 > Hold Time 在B进行数据锁存的同时,A的数据进行更新并输出,会改变B的输入,破坏B的Hold Time

单总线结构中的Dp

数据通路与总线结构 硬布线控制器_第7张图片一组总线无法给ALU的两个输入端提供不同的数据,为了保证运算器的时序,增加锁存器LA,LB。

IB:Internal Bus

	ADD R0,R1	;单总线结构执行ADD
  1. 给出R0 -> IB,寄存器R0的内容通过总线传输到LA的输入端,给出写使能信号IB -> LA,第一个时钟上跳沿到来时,数据便锁存在LA。
  2. 给出R1 -> IB,R1传输到LB的输入端,给出IB -> LB,第二个时钟上跳沿到来时,数据便锁存在LB。
  3. 给出运算操作符AluOP,ALU进行运算,运算结果传输到通用寄存器堆的输入端,给出写使能信号,第三个时钟上跳沿到来时,数据便锁存在R0中。

双总线结构中的Dp

数据通路与总线结构 硬布线控制器_第8张图片

	ADD R0,R1	;单总线结构执行ADD
  1. 给出R0 -> IB1,寄存器R0的内容通过总线传输到LA的输入端,给出写使能信号IB -> LA,第一个时钟上跳沿到来时,数据便锁存在LA。
  2. 给出R1 -> IB2,R1传输到ALU的输入端。给出运算操作符AluOP,ALU进行运算,运算结果传输到通用寄存器堆的输入端,给出写使能信号,第二个时钟上跳沿到来时,数据便锁存在R0中。

三总线结构中的Dp

数据通路与总线结构 硬布线控制器_第9张图片

单总线 2个锁存器,3个时钟周期
双总线 1个锁存器,2个时钟周期
三总线 0个锁存器,1个时钟周期

单总线结构CPU

数据通路与总线结构 硬布线控制器_第10张图片用一组总线连接整个计算机系统的各大功能部件,各大部件之间的所有信息传送都通过这组总线。

控制信号 说明
IRout、PCout、…R1out等一系列out信号 控制三态门将寄存器值输出到总线,这些信号是不能并发,同时在同一条总线上输出会造成信号的冲突(DREout除外)
IRin、PCin、…R1in等一系列in信号 控制寄存器使能端将总线数据锁存,通过时钟驱动完成
+1、ADD、SUB 运算控制信号,有互斥性
Write、Read 内存读写控制信号(时钟驱动)
优点 缺点
设计简单 总线变成竞争资源,需要分时使用,并发度低

多总线结构

数据通路与总线结构 硬布线控制器_第11张图片

BUS:主存,外设接口通过系统总线AB,DB,CB与CPU相连

旁路器:两个方向相反的三态门,控制总线之间进行单向的信号传递
运算器:双总线结构,需要两个时钟周期

多总线架构CPU,取指和运算可以并发。

指令周期

指令执行的流程
数据通路与总线结构 硬布线控制器_第12张图片

取指周期 以PC的内容为地址访问主存,将指令从主存取出送到IR,然后PC + 1(1是指一条指令的字节长度)
取操作数周期 由具体的寻址方式计算操作数的地址并取出操作数
执行周期 完成指令操作码规定的动作,包括传送结果和记录状态信息。
中断周期 保存当前PC的内容,待执行完中断服务后程序可以回到间断处

数据通路与总线结构 硬布线控制器_第13张图片

  • 时间周期(T1、T2、T3、T4):能完成一次微操作(例如寄存器写入操作)
  • 机器周期:从主存取出一条指令的最短时间(从Cache读的时间),可完成复杂操作
  • 指令周期:完成 取值 -> 译码 -> 执行 (可能还要回写) 的时间

时序与控制

同步控制方式:

  • 定长指令周期:所有指令的执行时间都是一样的。若指令的复杂程度差异很大,规定统一的指令周期会造成浪费
  • 变长指令周期:指令周期长度不固定,CPU周期也不固定,含有的节拍数根据需要而定,与内存存取周期和总线周期没有固定关系。根据指令具体要求和执行步骤,确定安排几个CPU周期,以及每个CPU周期中有多少个节拍周期和节拍脉冲。

硬布线控制器

输入信号 输出信号
指令译码器的输出 一组带有时间标志的微操作控制信号
时序信号
程序运行的结果特征和状态(反馈信号)

设计流程:

  1. 根据CPU的结构写出每条指令的操作流程图并分解为微操作序列
  2. 选择合适的控制方式和控制时序
  3. 对微操作流程图安排时序,排出微操作时间表
  4. 根据时间表写出微操作表达式
  5. 根据表达式设计组合逻辑电路

早期三级时序系统:定长指令周期

数据通路与总线结构 硬布线控制器_第14张图片

数据通路与总线结构 硬布线控制器_第15张图片
构建状态机:
数据通路与总线结构 硬布线控制器_第16张图片
状态的切换只和时钟有关。
执行周期结束后进入取指周期,S7的下一个状态是S0
可以用状态寄存器(三位的计数器)描述,7+1溢出变回0

状态机的输入
时钟

时序产生器的作用就是循环产生周期电位、节拍电位,供控制器对信号进行时间调制。

Cn = ∑( Im & Mi & Tk & Bj)

优点 缺点
设计简单 以执行时间最长的指令进行同步,执行耗时短的指令时浪费了若干个节拍
通过周期电位和节拍电位和对应的指令译码信号进行与操作,能精准地控制信号产生的时间及其持续时间

现代时序系统:变长指令周期

数据通路与总线结构 硬布线控制器_第17张图片
数据通路与总线结构 硬布线控制器_第18张图片
数据通路与总线结构 硬布线控制器_第19张图片
将所有指令在执行的不同阶段都用一个状态唯一的标识。
最终的控制信号只和状态机的现态有关。

时钟作为状态寄存器(4位计数器)的输入

状态机的输入
现态
指令译码信号
程序运行的结果特征和状态(反馈信号)

状态机对现态进行加工生成次态,次态作为输入送到状态寄存器,时钟输入一次,次态就会变成现态。Cn是现态的函数。

优点
按照时钟脉冲进行同步,需要多少给多少

单总线架构CPU指令周期的数据流

数据通路与总线结构 硬布线控制器_第20张图片

LOAD R0,6#
MOV R1,10
ADD R0,R1

假设READ信号需要持续两个节拍

取指周期数据流:

  1. 给出PCout、ARin、Xin信号,PC内容送到AR和X
  2. 给出ALU的运算选择信号+1,PC值+1输出,在第二个时钟上跳沿到来时结果锁存在Z;给出READ信号,开始读主存操作
  3. 继续给出READ信号。给出Zout、PCin信号,将Z的值送到PC;给出DREin信号,存储器中的指令写入DR
  4. 给出DRout、IRin,将DR的内容写入IR,送到ID,生成操作控制信号

LOAD数据流:

  1. 给出IRout,ARin,寄存在IR中的地址码部分6送到AR
  2. 给出READ信号
  3. 继续给出READ信号。给出DREin,AR对应的存储单元的数据传送到DR
  4. 给出DRout、R0in,数据传递到总线送入到R0的输入端

MOV R1,10数据流:

  1. 给出IRout、R1in,指令中的地址码中的立即数写入R1

ADD数据流:

  1. 给出R0、Xin,R0中的值送入X
  2. 给出R1out信号,R1的内容通过总线传送到ALU的B端;给出ADD,运算结果在第二个时钟上跳沿到来时锁存在Z中
  3. 给出R0in、Zout,将结果写入R0

你可能感兴趣的:(计算机组成原理)