导图社区 中央处理器CPU
计算机组成原理CPU知识点。标红的地方是历年真题出现过的知识点。
编辑于2020-10-22 20:21:53中央处理器CPU
CPU 的功能
指令控制
操作控制
时间控制
数据加工
中断处理
CPU 的基本结构
运算器
运算器的基本结构
算数逻辑单元ALU
通用寄存器组
通用寄存器位数= 机器字长
暂存寄存器
累加寄存器ACC
程序状态字寄存器PSW
移位器
计数器
控制器
控制器的功能
负责协调并控制计算器各部件的指令序列
取指令
分析指令
执行指令
控制器的基本结构
程序计数器PC
用于指出下一条指令在主存中的有效地址。PC 有自增功能
PC 位数=MAR 位数
指令寄存器IR
用于保存当前正在执行的那条指令
IR 位数= 指令字长
存储器地址寄存器MAR
存储器数据存储器MDR
指令译码器
时序系统
微操作信号发生器
寄存器
可编程(用户可见)
PC ,PSW ,通用寄存器
不可编程(透明)
IR ,MAR ,MDR
指令执行过程
指令周期
CPU 从主存中每取出并执行一条指令所需的全部时间
指令周期=n 个机器周期
机器周期(CPU 周期)=m 个时钟周期
时钟周期又称节拍,是CPU 操作的最小单元
完整的指令周期= 取指周期+ 间址周期+ 执行周期+ 中断周期
CPU 通过指令周期的不同阶段来判断访存时是指令和数据
CPU 响应中断的时间是一条指令执行结束时
取指周期
根据PC 的内容从主存中取出指令代码并存放在IR 中
1.PC —>MAR
2.1 –>R, 读信号
3.M(MAR) —>MDR
4.MDR —>IR
5.(PC+1) —>PC
间址周期
取操作数的有效地址
1.Ad(IR) —>MAR
2.1 –>R
3.M(MAR) —>MDR
执行周期
根据IR 中指令字的操作码和操作数通过ALU 操作产生执行结果
中断周期
保存断点(PC ),一般用堆栈来保存(计算机中的堆栈是向低地址增加),SP 是堆栈指针,进栈操作SP-1
1.(SP)-1 –>SP,(SP)—>MAR
2.1—>W
3.(PC) —>MDR
4.MDR —>M(MAR)
5. 向量地址—>PC , 中断程序的入口地址送入PC
指令执行方案
单指令周期
对所有的指令都选用相同的执行时间来完成(取决于最长的),串行执行
多指令周期
不同的指令的执行过程选用不同个数的时钟周期,串行执行
流水线
并行执行指令,每个时钟周期启动一条指令,但各自处在不同的执行步骤
指令流水线
计算机的流水线把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行执行
指令的执行方式
顺序执行
指令按顺序执行,前一条指令执行完后才启动下一条指令
总耗时T0=nkt
重叠执行
指令并行执行,前一条指令的第一个阶段执行完后开始启动下一条指令
总耗时Tk=(k+n-1)t
表示方法
时空图
流水线方式的特点
为方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准
每个功能部件后都要有个缓冲寄存器或称锁存器
流水线的性能指标
吞吐率
单位时间内流水线所完成的任务数量
TP=n/Tk
加速比
完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比
S=T0/Tk
效率
流水线的设备利用率。在时空图上,定义为完成n 个任务占用的时空区有效面积与n 个任务所用的时间及k 个流水段所围成的时空区总面积之比
E=T0/kTk
影响流水线的因素
结构相关(资源冲突)
多条指令在同一时刻争用统一资源
解决
后一相关指令暂停一周期
资源重新配置(如数据Cache 和指令Cache 分离)
数据相关(数据冲突)
在一个程序中,下一条指令会用到这一条指令计算的结果
解决
相关指令暂停一个或几个时钟周期。硬件阻塞stall 和软件插入NOP
数据旁路技术(转发技术)
编译优化,调整指令序列
冲突类型
RAW
WAR
乱序发射时变成RAW
WAW
乱序完成
按序发射,按序完成时只可能出现RAW
控制相关(控制冲突)
当流水线遇到转移指令和其他改变PC 值的指令而造成断流
解决
分支预测,尽早生成目标转移地址
预取转移成功和不成功两个控制方向的目标指令
提高转移方向的猜准率
超标量流水线
超标量流水线技术
每个时钟周期内可并发多条独立指令,即以并行操作方式将两条或多条指令编译并执行,为此需配置多个功能部件
超流水线技术
在一个时钟周期内再分段,一个功能部件使用多次
超长指令字
将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字,为此需要多个处理部件
微程序控制器
基本概念
微程序工作原理
将每条机器指令编写成一个微程序,每个微程序包含若干微指令,每条微指令对应一个或几个微操作命令。微程序存人一个专门的存储器(控制存储器中)
微命令
微操作的控制信号
相容性
互斥性
微操作
微指令
操作控制字段
用于产生某一步操作所需的各种操作控制信号
顺序控制字段
用于控制产生下一条要执行的微指令地址
控制存储器CM
在CPU 内部,用ROM 实现
CM 用于存放微程序
微程序
用于描叙机器指令
基本结构
控制存储器CM
微指令寄存器(CMDR )
用于存放从CM 中取出的微指令。其位数同微指令相等
微地址寄存器CMAR
微地址形成部件
用于产生初始微地址和后继微地址。保证微指令连续执行
微指令的格式
水平型微指令
操作控制字段+ 顺序控制字段
一次能定义并执行多个并行操作
操作控制中的一位对应一个控制信号
垂直型微指令
微操作码+ 目的地址+ 源地址
一次只能定义并执行一种操作
类似机器指令操作码,由微操作码字段规定微指令的功能
微指令的编码方式
指对微指令的控制字段进行编码,以形成控制信号
直接编码
操作控制字段中每一位代表一个微操作命令
字段直接编码
将微指令的控制字段分成若干段,每段经译码后发出控制信号
互斥性微命令在同一段,相容性微命令在不同段
每一个小段要留出一个状态,表示本段不发出任何微命令
微指令的地址形成方式
由微指令的下地址字段指出(断定方式)
根据机器指令的操作码形成(经过微地址形成部件)
(CMAR+1) —>CMAR, 适用于后继微地址连续的情况
由硬件直接产生微程序入口地址。(第一条微指令的地址可由专门的硬件产生,也可由外部直接向CMAR 输入微地址)
微程序和机器指令
每一条机器指令的取指操作都是相同的,因此将取指令操作的微命令统一成一个微程序
微程序的个数= 机器指令数+ 取指、间址、中断等公用的微程序数
微程序控制器的工作过程
1 )执行取微指令公共操作
2 )由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送人CMAR
3 )从CM 中逐条取出对应的微指令并执行
4 )回到1 )开始下一条机器指令
取指指令的微操作命令及节拍安排
T1 (PC) —>MAR, 1 –>R
T2 Ad(CMDR) —>CMAR
T3 M(MAR) —>MDR
T4 Ad(CMDR) —>CMAR
T5 MDR —>IR
T6 OP(IR) —> 微地址形成部件—>CMAR
执行指令的微操作及节拍安排
只需在原来执行每条微指令的后面加上Ad(CMDR) —>CMAR
动态微程序设计
可写控制存储器(EPROM )
毫微程序设计
用毫微程序解释微程序
微程序控制器与硬布线控制器对比
微程序控制器需要访问控制存储器因此执行速度慢,但容易扩充,且规整。适用CISC CPU
硬布线控制器的速度取决于电路延长,因此执行速度快,但设计好后难以扩充,且繁琐不规整。适用RISC CPU
数据通路
数据在功能部件之间传送的路径
寄存器之间的数据传送
例如把PC 内容送至MAR
(PC)—>bus,PCout 有效
bus —>MAR,MARin 有效
主存与CPU 之间的数据传送
例如从主存中读取指令
(PC) —>bus—>MAR,PCout 有效MARin 有效
1 –>R,CU 发读命令
M(MAR) —>MDR,MARout 有效MDRinE 有效
(MDR) —>bus —>IR,MDRout 有效IRin 有效
执行算术或逻辑运算
例如一条加法指令
Ad(IR) —>bus —>MAR,IRout 和MARin 有效
1 –>R,CU 发读命令
M(MAR) —>MDR,MARout 和MDRinE 有效
(MDR) —>bus —>Y,MDRout 和Yin 有效
(Y)+(ACC) —>Z,Yout 、ACCout 、ALUin 和Zin 有效,CU 向ALU 发送加命令
(Z) —>ACC,Zout 和ACCin 有效