计算机组成原理 第五章 中央处理器CPU
第五章 中央处理器CPU

CPU的功能和结构
CPU的功能
1.指令控制

2.操作控制

3.时间控制

4.数据加工

5.中断处理

运算器和控制器的功能

运算器的基本结构
1.算数逻辑单元
进行算术/逻辑运算
2.通用寄存器组
存放操作数(包括源操作数、目的操作数及中间结果和各地址信息等)如AX,BX,CX,DX,SP等

连线方式
专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路
如果直接用导线连接,相当于多个寄存器同时并且一直向ALU传输数据
方法1:使用多路选择器


方法2:使用三态门
可以控制每一路是否输出


3.暂存寄存器
暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容
如果两个操作数
CPU内部单总线方式:所有寄存器的输入端和输出端都连接在一条公共的通路上



4.累加寄存器


5.程序状态字寄存器


6.移位器
对运算结果进行移位运算

7.计数器
控制乘除运算的操作步数
控制器的基本结构

1.程序计数器

2.指令寄存器
用于保存当前正在执行的那条指令
3.指令译码器
仅对操作码字段进行译码,向控制器提供特定的操作信号
4.存储器地址寄存器(MAR)
用于存放要访问的主存单元地址
5.存储器数据寄存器(MDR)
用于存放向主存写入的的信息或从主存读出的信息
6.时序系统
用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到
7.微操作信号发生器
根据IR的内容(指令),PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑性
CPU的结构
用户可见的寄存器(可编程,即程序员可以通过汇编语言操作的寄存器)

总结

指令执行过程
指令周期:CPU从主存中每取出并执行一条指令所需的全部时间
指令周期常常用于若干机器周期来表示,机器周期又叫CPU周期


一个机器周期又包括若干个时钟周期(也称节拍,T周期或CPU时钟周期,是CPU操作的最基本单位)


指令周期流程



取指周期


间址周期


执行周期

中断周期




指令执行方案
单指令周期

多指令周期

流水线周期

总结

数据通路的功能
数据在功能部件之间传送的路径
CPU内部总线方式

寄存器之间数据传输


主存与CPU之间的数据传送


执行算术或逻辑运算


例题


1.分析指令功能和指令周期

2.写出各阶段的指令流程
取指周期
| 时序 | 微操作 | 有效控制信号 |
|---|---|---|
| 1 | (PC)->MAR | PCout,MARin |
| 2 | M(MAR)->MDR,(PC)+1->PC | MemR,MARout,MDRinE |
| 3 | (MDR)->IR | MDRout,IRin |
| 4 | 指令译码 | - |

间址周期
完成取数操作,被加数在主存中,加数已经放在寄存器R1中
| 时序 | 微操作 | 有效控制信号 |
|---|---|---|
| 1 | (R0)->MAR | R0out,MARin |
| 2 | M(MAR)->MDR | MemR,MARout,MDRinE |
| 3 | (MDR)->Y | MDRout,Yin |

执行周期
完成取数操作,被加数在主存中,加数已经存放在寄存器R1中
| 时序 | 微操作 | 有效控制信号 |
|---|---|---|
| 1 | (R1)+(Y)->Z | R1out,ALUin,CU向ALU发ADD控制信号 |
| 2 | (Z)->MDR | Zout,MDRin |
| 3 | (MDR)->M(MAR) | MenW,MDRoutE,MARout |
总结

专用数据通路

取指周期
例题



总结

控制器设计 硬布线控制器



根据指令操作码,目前的机器周期,节拍信号,机器状态条件,即可确定现在这个节拍下应该发出哪些“微命令”



硬布线控制器的设计


微操作序列
取指周期微操作序列

间址周期微操作序列

执行周期微操作序列

安排微操作时序的原则

安排微操作时序 取指周期


安排微操作时序 间址周期

安排微操作时序 执行周期
非访存指令

访存指令

转移指令

组合逻辑设计

列出操作时间表
取值周期

间址周期

执行周期

微操作信号综合

画出逻辑图

硬布线控制器的设计


微程序控制器
设计思路
采用“存储程序”的思想,CPU出厂前将所有指令的“微程序”存入“控制器存储器”中


程序由机器指令序列组成
微程序由微指令序列组成,每一种指令对应应该微程序
机器指令是程序执行步骤的描述
微指令是对指令执行步骤的描述
微命令与微操作
微命令与微操作一一对应
微指令中可能包含多个微命令
微程序与机器指令
微程序与机器指令一一对应
一个微程序由多个微指令序列构成
机器指令是对微指令功能的“封装”

微程序控制器的基本结构

(1)由IR将机器指令操作码传入微地址形成部件
(2)微地址形成部件根据传入的操作码确定这条机器指令对应的微指令序列的起始地址
(3)根据顺序逻辑的标志等确定接下来执行微指令的存放地址
(4)将微指令的存放地址放入CMAR中
(5)由地址译码将地址信息转为控制信号传入控制存储器CM
(6)控制存储器CM确定地址信息所指向的微指令(一条微指令包含两部分信息,【本条微指令的控制信号|接下来要执行的微指令的地址(下地址)】)
(7)将选中的微指令放入CMDR
(8)执行完本条微指令(硬件电路需要通过控制码向CPU的其他部件或向系统总线发送控制信号)
(9)将下地址信息传递至顺序逻辑
重复(3)~(9)
微程序控制器的工作原理


如果某指令系统中有n条机器指令,则CM中的微程序(段)的个数至少是n+1个
总结

微指令的设计
微指令的格式
相容性微命令:可以并行完成
互斥性微命令:不允许并行完成的微命令
水平型微指令




垂直型微指令




混合型微指令

微指令的编码方式


直接编码(直接控制)方式

字段直接编码方式

例题:
解答:


字段间接编码方式(隐式编码)


微指令的地址形成方式
微指令的下地址字段指出

根据机器指令的操作码形成

增量计数器法

分支转移


通过网络测试网络
由硬件产生微程序人口地址

例题-断定方式


解答

总结

微程序控制单元的设计
设计步骤



取指周期的第一条微指令地址由硬件自动给出(指令a)
用微指令a的下地址表示b的地址
还需考虑如何读出这3条微指令,以及如何转入下一个机器周期


微程序设计的分类

硬布线控制器&微程序控制器比较

总结

指令流水

指令流水的方式
顺序执行方式

一次重叠执行方式

二次重叠执行方式

流水线的表示方式
指令执行过程图

时空图

流水线的性能指标
吞吐率


装入时间:第一条时间从开始到结束的时间
排空时间:最后一条指令从开始到结束的时间
加速比



效率


总结

指令流水线影响因素分类
机器周期的设置
Cache一般会被分为两部分,Instruction Cache和Data Cache
通常Cache中会保存主存的副本
因此取指令和访存阶段会先在Cache中寻找
没有找到再去访问主存
Imm为立即数寄存器

影响流水线的因素
结构相关(资源冲突)

类比操作系统互斥
数据相关(数据冲突)

解决方法1:等待

(1)硬件阻塞

(2)软件插入

解决方案2:数据旁路技术(转发机制)

解决方案3:编译优化

控制相关(控制冲突)

小总结

流水线的分类




流水线的多发技术


总结

五段式指令流水线


运算类指令的执行过程



LOAD指令的执行过程



其他指令���是���寄存器中获得立即数进行运算
STORE指令的执行过程


条件转移指令的执行过程



无条件转移指令的执行过程

例题


解答
(1)I3与I1和I2存在数据相关
(2)I4的IF段必须在I3进入ID段后才能开始,否则会覆盖IF段锁存器的内容
浙公网安备 33010602011771号