计算机组成原理考研复试复习-4
第五部分:中央处理器CPU
1,CPU的功能与结构?
(1)CPU的结构?
控制器,运算器,数据通路,一些寄存器
控制器:协调并控制计算机各个部件运行。具体包括:程序计数器PC,指令寄存器IR,地址寄存器MAR,数据寄存器MDR,时序系统,微程序控制器,控制器的核心是控制单元CU
运算器:执行各种运算,并将结果输出。具体包括:ACC累加寄存器,ALU算数逻辑单元,暂存寄存器,通用寄存器组,PWS程序状态字寄存器、移位寄存器、计数器
各种寄存器中对用户不可见的有:暂存寄存器、移位寄存器、MAR、MDR、IR
(2)CPU的功能:指令控制、时间控制、操作控制、中断处理、数据加工
2,指令执行的过程:
(1)各种不同的周期之间的关系(机器周期,时钟周期、指令周期):
时钟周期是CPU完成一个动作(微操作)的最小时间单位,
机器周期(又称CPU周期)完成一个指令的子工作(子步骤)所需要的时间,
指令周期:CPU从主存中取出一条指令并执行完毕所需要的时间。
通常指令周期由多个机器周期组成,机器周期的时间通常由存取周期来确定(时间最长),且机器周期由多个时钟周期组成。
(2)指令周期的组成:
1⃣️取指周期:根据PC的内容传入MAR,根据MAR的内容从内存中取出指令存入MDR中,再将MDR的内容存入IR
2⃣️间址周期:【可能不存在】(去操作数的有效地址)根据指令的地址码部分,和寻值特征位取出操作数的有效地址
3⃣️执行周期【不同指令各不相同】
4⃣️中断周期:处理中断请求
保存断点、送中断向量、处理中断请求
为了区别不同的机器周期,用触发器FE(fetch),IND( instruction decode),EX(execute),INT(interrupt)来进行标记。
(3)指令执行的时间安排:单指令周期(一个时钟周期执行一条指令)、多指令周期、流水线方案
3,数据通路
数据通路结构的分类
(1)CPU内部单总线=>运算器需要暂存器(因为如果没有暂存器的话,无法使ALU两个输入端同时有效)
(2)CPU内部三总线
(3)专用数据通路:每个需要传递数据的部件之间都有直接连线,需要多路选择器(MUX)与三态门
控制器的内部结构
4、硬布线控制器:
由组合逻辑技术实现,执行速度快,一般用于精简指令集计算机(RISC),扩充指令困难。
5、微程序控制器:
(1)思想?
计算机通过控制部件对外发出各种控制命令,这种命令叫做微命令,各个接收命令的部件之后执行的操作叫做微操作,微程序控制器的思想就是将微操作信号代码化,使用存储逻辑的思想,将实现微操作的程序存入控制存储器(CM)中。【控制存储器CM是由ROM实现的,只读不写】。存入CM的每条指令叫做微指令,微指令是对要完成的一条或多条微操作的内容的封装。这样在对指令的OP码进行译码之后,选择相对应的微指令发出微命令控制其他部件的执行。
我们使每一个机器周期对应一串微指令序列(也可以叫做微程序,这里有争议可以说一个机器周期对应一个微程序,也可以说一个指令对应一个微程序),因为每一个指令的取址、间址、中断周期执行的做的工作大致相同,所以可以使用同一个微程序,但执行周期完成的工作各不相同所以要设计不同的微指令。
(2)具体的执行过程?
1⃣️ 取到一条指令之后会放到IR中,将其中的OP码送入微地址形成部件
2⃣️ 微地址形成部件会根据OP码、寻址特征位决定微程序的入口地址
3⃣️ 送入CMAR,通过CMAR的地址从CM中取出微指令(分为控制信号和下地址字段),控制信号(经过译码)输出称为微命令
4⃣️ 下地址字段决定下一条执行的微指令的地址。
5⃣️ 当本段微程序执行完毕之后需要通过微地址形成部件(+OP)决定下一段的微程序的地址。
(3)与指令相同,微指令也需要设计编码方式(即OP码的设计):
1⃣️ 直接编码:每一位直接代表一个微命令(不进行译码)
2⃣️ 字段直接编码:互斥同段,相容不同段需要进行译码
3⃣️ 字段间接编码:可以进一步缩短字长,一段依赖于另一段的解释,所以译码更慢
6,指令流水线
将一条指令分为多个子过程,如五段式指令流水:
IF(取值)、ID(译码)、EX(执行)、 M(访存)、WB(写回)。
影响流水线执行的因素:
(1)数据相关:属于同步问题,等待前一条指令执行完毕之后才能执行下一条
解决方法:
暂停延后(Stall,NOP指令)
数据旁路(上一条指令的结果从ALU出来之后直接作为本条指令的输入数据写入ALU的输入端)
编译优化:调整指令顺序
(2)结构相关:同一时刻争用同一资源
解决方法:添加资源或等待一个时钟周期
(3)控制相关:经过转移指令或者中断改变了PC的值,从而执行了不需要执行的指令
解决方法:
分支预测:预测将要转移的线路
预取:提前取出转移成功与不成果两条线路上的指令。
加快、提前形成条件码
提高猜准率