CPU的功能和基本结构
1.CPU的功能
由运算器和控制器组成,控制器功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指令,分析指令和执行指令;运算器的功能是对数据进行加工。具体功能如下:
- 指令控制:完成取指令,分析指令的操作,即程序的顺序控制。
- 操作控制:一条指令的功能往往是由若干操作信号的组合来实现的,CPU管理并产生由内存取出的每条指令的操作信号,把各中操作信号送往相应的部件。来控制这些部件按指令进行动作。
- 时间控制:对各种操作加以时间上的控制,时间控制要为每条指令按时间顺序提供应有的控制信号
- 数据加工:对数据进行算术和逻辑运算
- 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理
2.CPU的基本结构
1)运算器接收从控制器送来的命令并执行相应的动作,对数据进行加工和处理。
- 算术逻辑单元:进行算术/逻辑运算
- 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有的内容。对应用程序员透明
- 累加寄存器:是一个通用寄存器,用于暂时存放ALU运算的结果信息,可以作为加法运算的一个输入端
- 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数,目的操作数及中间结果)和各种地址信息等,SP是堆栈指针,用于指示栈顶的地址。
- 程序状态字寄存器PSW:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息;如溢出标志(OP),符号标志SF,零标志ZF,进位标志CF
- 移位器:对操作数或运算结果进行移位运算
- 计数器:控制乘除运算的操作步数
2)控制器:整个系统的指挥中枢,在控制器的控制下,使运算器,存储器和输入输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机协调工作,基本功能执行指令;控制器有硬布线控制器和微程序控制器两种类型;
- 程序计数器PC:用于指出下一条指令在主存中存放地址,CPU就是根据PC的内容去主存取指令的,顺序自增
- 指令寄存器IR:用于保存当前正在执行的那条指令
- 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号
- 存储器地址寄存器MAR:用于存放所要访问的主存单元的地址
- 存储器数据寄存器MDR:用于存放向主存写入的信息或从主存中读出的信息
- 时序系统:用于产生各种时序信号,由统一时钟(CLOCK)分频得到
- 微操作信号发生器:根据IR的内容,PSW的内容及时序信号,产生控制整个计算机系统所需的各种控制信号
pc的位数取决于存储器的容量
通用寄存器位数取决于机器字长
指令执行过程
1.指令周期
CPU从主存中每取出并执行一条指令所需上午全部时间称为指令周期;一个指令周期包含若干机器周期,机器周期包含若干时钟周期(也称节拍);完整的指令周期包括:取指FE,间址IND,执行EX和中断INT(1表示有效);都有CPU访存操作。
2.指令周期的数据流
数据流是根据指令要求依次访问的数据序列;
1)取指周期
任务是根据PC中的内容从主存中取出指令代码并存放在IR中。
- PC-MAR-地址总线-主存
- CU发出控制信号-控制总线-主存
- 主存-数据总线-MDR-IR
- CU发出读命令-PC内容+1
2)间指周期
取操作数有效地址。
- Ad(IR)-MAR-地址总线-主存
- CU发出读命令-控制总线-主存
- 主存-数据总线-MDR
3)执行周期
根据IR中的指令字的操作码和操作数通过ALU操作 产生执行结果。
4)中断周期
处理中断请求,
- CU控制将SP减1,SP-MAR-地址总线-主存
- CU发出写命令-控制总线-主存
- PC-MDR-数据总线-主存(程序断点存入主存)
- CU(中断服务程序的入口地址)-PC
3.指令执行方案
单指令周期:对所有指令都选用相同的执行时间来完成,指令之间串行执行
多指令周期:对不同的指令选用不同的执行步骤来完成,指令之间串行执行,可以选用不同时钟周期完成不同指令执行过程
流水线方案:指令之间可以并行执行的方案,目标是在每个时钟脉冲周期完成一条指令的执行过程
数据通路的功能和基本结构
1.功能
数据在功能部件之间传送的路径称为数据通路,运算器与各寄存器之间的传送路径就是中央处理器内部数据通路。
2.结构
(1)CPU内部单总线方式,将所有寄存器的输入端和输出端都连接到一条公共的通路上;结构简单,但会出现传输冲突现象,性能较低
(2)CPU内部三总线方式:将所有寄存器的输入端和输出端都连接到多条公共的通路上,效率较高
(3)专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,硬件量大。
控制器的功能和工作原理
1.控制器的结构和功能
- 运算器部件通过数据总线与内存储器,输入设备和输出设备传送数据
- 输入设备和输出设备通过接口电路与总线相连接
- 内存储器,输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据
- 控制器部件从数据总线接收指令信息,从运算器部件接收指令转移地址,送出指令地址到地址总线,还要向系统中的部件提供他们运行所需的控制信号
控制器主要功能:
- 从主存中取出一条指令,并指出下一条指令在主存中的位置
- 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作
- 指挥并控制CPU,主存,输入输出设备之间的数据流动方向
2.硬布线控制器
基本原理:根据指令的要求,当前的时序及外部和内部的状态情况,按时间的顺序发送一系列微操作控制信号,它由复杂的组合逻辑门电路和一些触发器构成。
3.微程序控制器
微程序控制器采用存储逻辑实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器中,微操作控制信号由微指令产生。
相对于微程序控制器,硬布线控制器的特点是:指令执行速度快,指令功能的修改和扩展难。
指令流水线
计算机的流水线是把一个重复得过程分解为若干子过程,每个子过程与其他子过程并行执行,采用流水线技术只需增加少量硬件就能把计算机运算速度提高几倍。
1.指令流水
指令得执行过程可以分为好几个阶段:
- 取指:根据PC内容访问主存储器,取出一条指令送到IR
- 分析:对指令操作码进行译码,按照给定寻址方式和地址字段中得内容形成操作数得有效地址EA,并从EA中取出操作时
- 执行:根据操作码字段,完成指令规定的功能,把运算结果写到通用寄存器或主存中
1)顺序执行方式:前一条执行完才执行下一条指令, 执行N条之后用时T=3nt(t三个阶段的时间);串执行方式,优点控制简单,硬件代价小,缺点是执行指令速度慢
2)一次重叠执行方式:把k条指令的执行阶段和第k+1条指令的取指阶段同时进行 T=(1+2n)t;优点是指令执行时间缩短三分之一,各功能部件的利用率提高,执行过程复杂
3)二次重叠执行方式:把k+1条指令提前到分析第k条指令的期间完成;T=(2+n)t;
2.流水线的特点
- 一个任务分解为几个有关联的子任务,子任务由专门的功能部件执行,缩短执行时间
- 流水线每个功能段部件都要有一个缓冲寄存器(锁存器),作用是保存本流水段的执行结果,提供给下一流水段使用
- 各功能段的时间近量相等,否则引起堵塞,断流
- 只有连续不断提供同一种任务时才能发挥流水线效率,所以在流水线中处理的必须是连续任务。
- 流水线需要有装入时间和排空时间
3.流水线的分类
1)部件功能级:将复杂的算术逻辑运算组成流水线工作方式;
处理机级流水:是把一条指令解释过程分成多个子过程;
处理机间流水是一种宏流水,每个处理机完成某专门任务,各个处理机所得到的结果需存放在下一个处理机所共享的存储器中
2)单功能流水和多功能流水(按流水线可以完成的功能划分)
3)动态流水线和静态流水线(按同一时间内各段的连接方式)
4)线性流水线和非线性流水线(按各功能的反馈信号)
4.影响流水线的因素
1)结构相关(资源冲突)
多条指令在同一时刻争用同一资源而形成的冲突称为结构相关;
解决:前一个指令访存时,后一个指令暂停一个时钟周期;单独设置数据存储器和指令存储器,使俩项操作各自在不同的存储器中运行,资源重复分配。
2)数据相关(数据冲突)
把遇到数据相关的指令及其 后续指令都暂停一至几个时钟周期;设置相关专用通路
3)控制相关
流水线遇到转移指令和其他改变PC值得指令而造成断流时,会引起控制相关;
解决:对转移指令进行分支预测,尽早生成转移目标地址,分支预测分为静态预测:预测条件不满足,继续执行分支指令得后续指令,动态预测:根据程序执行得历史情况,进行动态预测;加快和提前形成条件码;提高转移方向得猜准率
5.性能指标
1)吞吐量
单位时间内流水线所完成的任务数量,或是输出结果的数量。TP=n/Tk(n是任务数,Tk是处理完成n个任务所用的时间)
一条k段线性流水线能够在k+n-1个时钟周期(t)内完成n个任务。
实际流水线吞吐量:TP=n/(k+n-1)t
最大吞吐量:TP=1/t
2)加速比
完成同样一批任务,不使用流水线的时间(顺序执行)T0比使用流水线时间Tk
S=T0/Tk=kn/k+n-1
最大加速比S=k
3)流水线效率(利用率)
E=T0/kTk
6.超标量流水线的基本概念
超标量流水线技术:每个时钟周期可并发多条独立指令,即以并行操作方式将两条或多条指令编译并执行;不能调整指令的执行顺序,通过编译优化技术,把可并行执行的指令搭配起来挖掘更多的指令并行性。
超流水线技术:在一个时钟周期内在分段,在一个时钟周期内一个功能部件使用多次。不能调整指令的执行顺序,靠编译程序解决优化问题。
超长指令字:由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字。