首页 > 代码库 > CPU

CPU

CPU的功能:
取指令:控制器必须具备自动从储存器中取出指令的功能。控制器能自动形成指令的地址,并能发出取指令的命令,将对应地址的指令取到控制器中。第一条指令地址可以人为指定,也可以系统指定。

分析指令:1,分析要完成什么操作,2,操作数的有效地址

执行指令:根据要求完成操作控制信号序列。

除此之外,控制器还能够控制IO,总线管理,处理中断。

CPU的寄存器

1,用户可见寄存器
1)通用寄存器:可存放操作数,寻址方式所需的寄存器,存放有效地址的地址。
2)数据寄存器:存放操作数
3)地址寄存器:存放地址,也可以用于特殊寻址方式。
4)条件码寄存器:存放条件码,可以由CPU自动完成,也可以由程序员保存。

2,控制和状态寄存器
MAR:储存器地址寄存器,存放被访问的储存单元的地址
MDR:存储器数据寄存器,存放存入在储存器的数据或读出存储器中的数据。
PC:程序计数器,存放现行指令的地址。
IR:指令寄存器,存放当前欲执行的指令。

通过这四个寄存器,CPU和贮存交换信息。

控制单元和中断系统
现代计算机微操作命令序列的形成方法:1组合逻辑设计方法,硬连线逻辑2,微程序设计方法,为储存逻辑。

指令周期:CPU每取出执行一条指令所需的全部时间称为指令周期,也即CPU完成一条指令的时间。CPU按照取指-执行-再执行的顺序工作。每种指令的指令周期不同。如果有间址寻址的指令,还需要有间址周期。这样间址寻址的指令周期包括,取指周期,间址周期,执行周期。由于CPU有时还需要进行处理中断,所有一个完整的周期应该包括,取值,间指,执行,中断。

指令周期的数据流

1,取值周期数据流
技术分享
PC中存放现行指令的地址,该地址送到MAR并送至地址总线,然后由控制部件CU向储存器发读命令,使对应MAR所指单元的内容经数据总线送至MDR,再送至IR,并且CU控制PC内容+1,形成下一条指令。

2,间址周期的数据流
技术分享
一旦取址周期结束,CU检查IR中的内容,确定其是否有间址操作,如果需要间址,则MDR中指示形式地址的右N位将被送到MAR,又送地址总线,然后CU向储存器发送命令,获取有效地址并存至MDR。

3,执行周期的数据流
不同指令的数据流不一样。

4,中断周期的数据流
PC内容应该先保存起来,执行完中断进行返回。


 技术分享

由CU把用于保存程序断点的储存器特殊地址送往MAR,并送到地址总线上,由CU向储存器发送写命令,把PC内容送入MDR,最终使程序断点经数据总线存入储存器。CU还需要把中断服务程序的入口送至PC,为下一个指令周期的取值周期做好准备。

指令流水

指令流水不能加倍效率的原因:
1,指令的执行时间一般大于取指时间,因此取指阶段可能要等待一段时间,也就是放在指令部件缓冲区的指令不能立即传给执行部件,缓冲区不能空出。
2,遇到条件指令时,下一条指令未知。等执行结束后才能获得条件,从而决定下条的地址。

通常采用猜测法:当条件转移指令从取指阶段进入执行阶段,指令部件仍按照顺序取下一条指令。如果不成立,转移没发生,没时间损失。如果成立,转移发生,丢弃掉所取的,重新取。

指令处理过程细分:
1,取指FI,从储存器取指令到指令部件缓冲区。
2,指令译码DI,确定操作性质等。
3,计算机操作数地址CO
4,取操作数CO
5,执行指令EI
6,写操作数WO

对流水线工作的影响原因

1,结构相关
不同指令争用同一个功能部件产生资源冲突。
技术分享
还有一种解决方法是设置两个独立的储存器存放操作数和指令。还可以采用指令预取技术,实现执行K,分析K+1。

2,数据相关
流水线中的各条指令因重叠操作,可能改变对操作数的读写访问顺序,从而导致数据相关冲突。

ADD R2+R3->R1
SUB R1-R5->R4

技术分享

 

技术分享

 


发生了先写后读
解决这个数据相关的方法可以采用后推法,即遇到数据相关时,就停顿后继指令的运行,直至前面指令的结果已经生成。
另一种解决方法是采用定向技术。在产生的结果时,设置专用通路技术,将产生的结果直接送入所需它的SUB等指令,可以使流水线不发生停顿。

数据相关分类:
写后读:在写入寄存器前就写入内容
读后写:在读前就写入
写后写:在写之前写

在按序流动的流水线中,只可能出现RAW。如果非按序流动可以发生,RAW,WAR,WAW。


控制相关
主要是由转移指令引起的。

技术分享



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

流水线性能

1,吞吐率
单位时间内流水线所完成的指令或结果数量。
最大吞吐率是流水线在连续流动达到稳定状态后所得的吞吐率。因为流水线开始时有一段建立时间,结束时有一段排空时间,实际吞吐率小于最大吞吐率。

每段时间为t,最大吞吐率为1/t

2,加速比
流水线的加速比是指M段流水线的速度与等功能的非流水线的速度之比。
Sp=m/(1+(m-1)/n)

Tip:非流水三角形和矩形的面积比

3,效率
流水线中各功能段的利用率。因为流水线有建立时间和排空时间,因此总有一段空闲时间。

TIP:矩形的占长方形的面积。
技术分享

多发技术

超标量,超流水线,超长指令字

技术分享
1,超标量,每个时钟周期同时可以并发多条独立指令。
要实现,要求处理机配置多个功能部件和指令译码电路。以及多个寄存器端口和总线。存在数据相关不能进行指令并行。
2,超流水线,将一些流水寄存器插入流水线段中,好比将流水线段再分段。硬件不能调整指令的执行顺序。

3,超长指令字,和超标量一样,都是在多个部件中并行处理的体系。VLIW较超标量更高的并行处理能力,对优化编译器要求高,对Cache容量要求大。














CPU