文章目录
- 前言
- 中央处理器(CPU)的组成
- 中央处理器(CPU)的功能
- 指令周期的组成
- 指令周期的数据流
- 指令的执行方案
- 数据通路的基本结构
- 控制器的功能
- 控制器的分类(根据产生微操作控制信号的方式)
- 控制单元(CU)的输入来源
- 中央处理器(CPU)的控制方式
- 硬布线控制器设计步骤
- 微程序设计的机器指令组成
- 微程序控制器的组成
- 微程序控制器的工作过程
- 微指令的编码/控制方式
- 微指令的地址形成方式
- 微指令的格式
- 微程序控制器的设计步骤
- 微程序设计的分类
- 中断(广义中断)的分类
- 外中断事件
- 内中断事件
- 中断(广义中断)的响应过程
- 提高中央处理器(CPU)效率的方式
- 指令的执行过程(另一种角度:指令流水线)
- 流水寄存器存储的信息
- 流水线冒险的分类和处理方式
- 流水线冒险的处理方式
- 流水线的性能指标
- 流水线的分类
- 高级流水线技术
- 计算机体系结构的分类(从指令、数据流数量的角度)
- 硬件多线程的实现方式
- 总结
- 参考资料
- 作者的话
前言
计算机组成原理的知识抽象、晦涩、不易理解并记忆,在此对“中央处理器(CPU)”一章中重点知识总结成提纲。
中央处理器(CPU)的组成
- 中央处理器(CPU)=控制单元(CU)+算术逻辑单元(ALU)+寄存器+中断系统
- 中央处理器(CPU)=控制器+运算器
控制器的组成
- 程序计数器(PC)
- 指令寄存器(IR)
- 指令译码器
- 时序系统
- 微操作信号发生器
- 存储器地址寄存器(MAR)
- 存储器数据寄存器(MDR)
- …
运算器的组成
- 算术逻辑单元(ALU)
- 通用寄存器组
- 暂存寄存器
- 程序状态字寄存器(PSW)
- 移位器
- 计数器(CT)
- …
其中,通用寄存器组包括:
- 累加寄存器(ACC;16位:AX;32位:EAX)
- 基地址寄存器(BR;16位:BX;32位:EBX)
- 计数寄存器/程序计数器(PC;16位:CX;32位:ECX)
- 数据寄存器((M)DR;16位:DX;32位:EDX)
- 变址寄存器(IX,区别于指令寄存器(IR);ESI,EDI共两个)
- 堆栈基指针(寄存器)(BP;32位:EBP)
- 堆栈顶指针(寄存器)(SP;32位:ESP)
中央处理器(CPU)的功能
- 指令控制(控制器功能)
- 操作控制
- 时间控制
- 中断处理
- 数据加工(运算器功能)
指令周期的组成
- 指令周期=若干机器周期(CPU周期)
- 机器周期=若干时钟周期(τ周期/节拍)
或(按时间顺序):
- 取指周期(获取指令+分析指令)
- 间址周期(获取操作数的有效地址;可无)
执行周期(执行指令;可无) - 中断周期(处理中断;可无)
指令周期的数据流
取指周期:获取指令
- 程序计数器(PC)的指令地址->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
- 控制单元(CU)的读控制信号->控制总线->主存储器(MM)
- 主存储器(MM)的指令->数据总线->存储器数据寄存器(MDR)->指令寄存器(IR)
指令寄存器(IR)的指令操作码->控制单元(CU)
- 控制单元(CU)的控制信号->程序计数器(PC)+1
间址周期:获取操作数有效地址
以一次间址为示例:
- 指令寄存器(IR)或存储器数据寄存器(MDR)的指令地址码->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
- 控制单元(CU)的读控制信号->控制总线->主存储器(MM)
- 主存储器(MM)的指令地址->数据总线->存储器数据寄存器(MDR)
执行周期:获取操作数
不同指令类型,获取操作数的操作不同,无统一数据流向。
中断周期:处理中断请求,保存程序断点
以在堆栈保存程序断点;先修改栈顶指针,后保存数据的进栈操作为示例:
- 控制单元(CU)的控制信号->堆栈顶指针(寄存器)(SP;32位:ESP)-1
- 堆栈顶指针(寄存器)(SP;32位:ESP)的指令地址->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
- 控制单元(CU)的写命令->控制总线->主存储器(MM)
- 程序计数器(PC)的指令地址->存储器数据寄存器(MDR)->数据总线->主存储器(MM)
- 控制单元(CU)的中断服务程序入口地址->程序计数器(PC)
指令的执行方案
- 单指令周期方案
- 多指令周期方案
- 流水线方案
数据通路的基本结构
在中央处理器(CPU)内部:
- 总线结构(单总线、多总线)
- 专用数据通路结构
控制器的功能
- 从主存储器(MM)中获取一条指令,并指出下一条指令在主存储器(MM)中的地址
- 对指令进行译码或测试,产生相应的操作控制信号,以启动规定的动作
- 指挥并控制中央处理器(CPU)、主存储器(MM)、输入和输出设备之间的数据流动方向
控制器的分类(根据产生微操作控制信号的方式)
- 硬布线控制器(组合逻辑控制器)
- 微程序控制器
相同点:程序计数器(PC),指令寄存器(IR)。
不同点:确定和表示指令执行步骤的方法,产生控制各部件运行所需控制信号的方案。
控制单元(CU)的输入来源
- 指令译码器根据指令操作码译码产生的指令信息
- 节拍发生器根据机器周期产生的时钟周期信号
- 程序状态字寄存器根据执行单元反馈信息存储的状态标志
- 控制总线的控制信号。如中断请求、直接存储器访问(DMA)请求
中央处理器(CPU)的控制方式
- 同步控制方式
- 异步控制方式
- 联合控制方式(大部分同步,小部分异步)
硬布线控制器设计步骤
- 分析指令周期中取值、间址、执行和中断周期的微操作序列
- 选择中央处理器(CPU)的控制方式
- 安排微操作序列执行时序
- 设计电路
其中设计电路包括:
(1)列微操作序列的操作时间表
(2)写微操作序列的最简表达式
(3)画微操作序列的电路逻辑图
微程序设计的机器指令组成
- 一条机器指令编写成一个微程序
- 微程序=若干微指令
- 微指令=若干微命令/微操作
- 微命令时微操作的控制信号,微操作是微命令的执行过程
将微指令类比指令,存在微地址、微操作码、微地址码、微周期等概念。
微程序控制器的组成
- 微地址形成部件
- 顺序逻辑单元
- 控制/微存储器地址寄存器(CMAR)
- 地址译码器
- 控制存储器(CM)
- 控制/微存储器数据寄存器(CMDR/μIR)
微程序控制器的工作过程
- 获取机器指令
- 获取机器指令对应微程序的入口地址
- 获取微指令
- 执行微指令
- 获取下一条微指令或下一条机器指令
微指令的编码/控制方式
- 直接编方式
- 字段直接编码方式
- 字段间接编码方式/隐式编码方式
- 混合编码
微指令的地址形成方式
- 机器指令的操作码产生
- 微指令的微地址码/下地址产生(断定方式)
- 增量计数器法产生(自增1)
- 分支转移产生
- 测试网络产生
- 硬件产生
- 外部输入产生
微指令的格式
- 水平型微指令
- 垂直型微指令
- 混合型微指令
微程序控制器的设计步骤
核心:编写微程序
- 分析指令周期中取值、间址、执行和中断周期的微命令/操作序列
- 根据微命令/操作和时钟周期设计微指令
- 确定微指令格式
- 编码微指令
微程序设计的分类
- 静态微程序设计
- 动态微程序设计
- 毫微微程序设计
中断(广义中断)的分类
- 中断(广义中断)=中断(狭义中断;外中断)+异常/例外/陷入(内中断)
- 外中断(硬件中断)=可屏蔽中断+不可屏蔽中断
- 内中断(不可屏蔽中断)=故障+自陷/陷阱/陷入(软件中断/程序性异常)+终止(硬件中断)
或:
- 外中断=外设请求(如I/O操作完成)+人工干预(如用户强行终止进程)
- 内中断=自愿中断+强迫中断
- 自愿中断,指令中断(如系统调用时使用陷入/访管/Trap指令)
- 强迫中断=硬件故障(如缺页)+软件中断(如整数除以0)
外中断事件
- 输入/输出(I/O)设备处理。如键盘输入,打印机缺纸
- 特殊事件。如用户按退出Esc键,定时器计数时间到
- 紧急硬件故障。如电源掉电
缓存(Cache)缺失
直接存储器访问(DMA)传送结束
内中断事件
故障:
- 地址越界
- 非法操作码
- 缺段或缺页
- 溢出。如运算溢出,栈溢出
- 整数除以0
自陷:
- 系统调用
- 条件自陷指令
- 断点设置(x86机器中)
- 单步跟踪(x86机器中)
终止:
- 控制器错误
- 存储器校验错误
- 总线错误
存储保护错误
中断(广义中断)的响应过程
- 关中断
- 保存断点和程序状态
- 识别中断(广义中断)并转到相应的处理程序
提高中央处理器(CPU)效率的方式
- 时间上并行:流水线技术
- 空间上并行:超标量处理机
指令的执行过程(另一种角度:指令流水线)
- 取指(IF)
- 译码/读寄存器(ID)
- 执行/计算地址(EX)
- 访存(MEM)
- 写回(WB)
流水寄存器存储的信息
- 数据通路的数据
- 控制部件的控制信号
流水线冒险的分类和处理方式
- 结构冒险(资源冲突)
- 数据冒险(数据冲突):读后写相关,写后读相关,写后写相关
- 控制冒险(控制冲突)
流水线冒险的处理方式
结构冒险(资源冲突):
- 暂停相关指令
- 资源重复配置
数据冒险(数据冲突):读后写相关,写后读相关,写后写相关:
- 暂停相关指令
- 数据旁路技术
- 编译优化(调整指令顺序)
控制冒险(控制冲突):
- 分支预测
- 预取多方向的指令
- 加快和提前形成条件码
- 提高转移方向的猜准率
流水线的性能指标
- 吞吐率
- 加速比
- 效率
流水线的分类
根据使用的硬件级别:
- 部件功能级流水线
- 处理器级流水线
- 处理器间流水线
根据实现功能的个数:
- 单功能流水线
- 多功能流水线
根据同一时间内各流水段/功能段实现功能的连接方式:
- 静态流水线(相同功能)
- 动态流水线(不同功能)
根据各流水段/功能段间有无反馈信号:
- 线性流水线(无)
- 非线性流水线(有)
高级流水线技术
- 超长指令字技术/静态多发射技术
- 超标量流水线技术/动态多发射技术
- 超流水线技术
计算机体系结构的分类(从指令、数据流数量的角度)
- 单指令流单数据流(SISD)结构
- 单指令流多数据流(SIMD)结构
- 多指令流单数据流(MISD)结构
- 多指令流多数据流(MIMD)结构
硬件多线程的实现方式
- 粗粒度多线程
- 细粒度多线程
- 同时多线程(SMT)
总结
计算机组成原理的知识抽象、晦涩、不易理解并记忆,在此对“中央处理器(CPU)”一章中重点知识总结成提纲。
参考资料
- 《2023年计算机组成原理考研复习指导》组编:王道论坛
- 哔哩哔哩平台《王道计算机考研 计算机组成原理》视频课
作者的话
- 感谢参考资料的作者/博主
- 作者:夜悊
- 版权所有,转载请注明出处,谢谢~
- 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
- 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
- 文章在认识上有错误的地方, 敬请批评指正
- 望读者们都能有所收获