计组 Chapter5 中央处理器

CPU的功能和基本结构

CPU的功能包括:

  • 指令控制(程序的顺序控制)
  • 操作控制(产生并管理操作信号)
  • 时间控制
  • 数据加工(计算&存储数据)
  • 中断处理(每个指令执行周期后处理陷入的中断)

计算机组成包括:

运算器
1)算术逻辑单元ALU:结合其他寄存器,进行算术/逻辑运算
2)暂存寄存器:暂存从主存读来的数据(实际上并没搜到这个概念。。记住就行了。。
3)累加寄存器:通用寄存器,暂时存放ALU计算结果,也可作为加数
4)通用寄存器组:AX BX CX DX SI SP BX
5)程序状态字寄存器:OF SF ZF CF标志位
6)移位器,对运算结果进行移位

控制器
PC程序计数器 IR指令寄存器 指令译码器(ID)
MAR MDR地址存储器
时序系统,微操作信号发生器(见后面微操作的信号部分) 组成

例题:23 24

指令执行过程

指令周期、机器周期(可定长可不定长)和时钟周期(最小的CPU时间单位)的对应关系:


包含间接取址&中断的指令周期:

上述4个工作周期都有CPU访存操作,只是访存的目的不同。取指周期是为了取指令(控制器自动进行,不需要得到相应的指令),间址周期是为了取操作数有效地址,执行周期是为了取操作数并执行运算,中断周期是为了保存程序断点。

注意指令周期 时钟周期 机器周期的区别

2.指令周期的数据流
(1)取指周期
任务是根据PC中的内容从主存中取出指令代码并存放在IR中。
取指周期的数据流:

(2)间指周期

任务是取操作数有效地址。

(3)执行周期

根据IR中的指令的操作码和MDR中地址对应的主存的操作数,通过ALU操作产生执行结果。
不同的指令执行周期操作不同,因此数据流无法统一。

(4)中断周期

任务是获取中断服务程序的入口地址。 (image.png))

要求,会常见指令的执行过程

指令执行方案

单指令周期:
对所有指令都选用相同的执行时间(固定的时钟周期)来完成,称为单指令周期方案。指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。因此,指令周期取决于执行时间最长的指令的执行时间。对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。

多指令周期:
对不同类型的指令选用不同的执行步骤来完成,称为多指令周期方案。指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。但可选用不同个数的时钟周期来完成不同指令的执行过程,指令需要几个周期就为其分配几个周期,而不再要求所有指令占用相同的执行时间。

流水线方案:
指令之间可以并行执行的方案,称为流水线方案,其追求的目标是力争在每个时钟周期完成一条指令的执行过程(只在理想情况下才能达到该效果)。这种方案通过在每个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。

*CSAPP中的SEQ+指令执行过程

硬件结构

icode为指令码,ifun为指令功能,Cnd为信号,valP为未替换的更新PC值,r%为寄存器号
dst src很迷,不影响学习。
image.png

指令顺序实现举例

image.png
image.png

数据通路 功能和基本结构

数据通路的功能和基本结构
数据在功能部件之间传送的路径称为数据通路,路径上的部件称为数据通路部件。
数据通路中专门进行数据运算的部件称为执行部件或功能部件。数据通路由控制部件控制。

数据通路的基本结构主要有以下三种∶

  • CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到同一条公共通路上。指令执行效率较低。
  • CPU内部三总线方式:将所有寄存器的输入端和输出端都连接到多条公共通路上。指令执行效率更高。
  • 专用数据通路方式:性能高,但硬件量大。

    这款牵扯很多下面的指令实现,可以看书。

控制器功能和工作原理

控制器的功能和工作原理
控制器是计算机系统的指挥中心,控制器的主要功能有∶

从主存中取出一条指令,并指出下一条指令在主存中的位置。
对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。
1.两种控制器

硬布线

CU通过各种组合逻辑电路组成,每一个微命令都可以由N个输入组成的逻辑表达式标识01。
image.png

通过设计的硬布线逻辑,CU输入4周期标识,icode:ifun译码,标志,输出微命令(信号),每个微命令对应一个微操作。

image.png

jmp x -> 这里不需要读写存储器。

微指令

image.png

注意微指令,微命令和微操作的对比

image.png

2.微指令的编码方式

image.png
image.png

注意序号3
eg:
image.png

image.png

微指令“译码”和执行

image.png
单元设计
image.png

这里假设读写内存需要一个机器周期,间隔下来刚好其他微指令可以存2个微操作~

总结:
image.png

码点: 这里指的是直接编码的每一位对应每个微操作。

微指令CU设计分类

image.png

硬布线和微指令CU的区别

image.png

指令流水线

五段式流水线

image.png

基本概念和实现

流水线方式的特点:

①多个功能部件并行。
②每个流水段后面要有一个缓冲寄存器,保留本段执行结果,供下段使用。
③各功能段尽可能相等。
④流水线用来处理连续任务。

流水线的性能指标:
吞吐率:单位时间内流水线完成的任务数量。
加速比:完成同样一批任务,不使用流水线所用的时间和使用流水线所用时间之比。
效率:流水线的设备利用率称为流水线的效率。在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积,与n个任务所用的时间及k个流水段所围成的时空区总面积之比。因此,流水线的效率包含了时间和空间两个因素

image.png

流水线阻塞

(1)结构相关

由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。

解决办法∶

前一指令访存时,使后一条相关指令(以及其后续指令)暂停一个时钟周期。
单独设置数据存储器和指令存储器,使两项操作各自在不同的存储器中进行,这属于资源重复配置。
(2)!!!*数据相关 *基本必考

数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,那么这两条指令即为数据相关。

解决办法∶

stalling 暂停:把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。
image.png
转发,数据旁路技术:设置相关专用通路,直接把前一条指令的 ALU的计算结果作为自己的输入数据开始计算过程,使本来需要暂停的操作可以继续执行。
image.png
加载互锁:给数据上锁

(3)控制相关

当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。

解决办法∶

尽早判别转移是否发生,尽早生成转移目标地址。
预取转移成功和不成功两个控制流方向上的目标指令。
加快和提前形成条件码。
提高转移方向的猜准率。

超标量和动态流水线

image.png
image.png
image.png


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!