“中央处理器(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周期)
  • 机器周期=若干时钟周期(τ周期/节拍)

或(按时间顺序):

  • 取指周期(获取指令+分析指令)
  • 间址周期(获取操作数的有效地址;可无)
    执行周期(执行指令;可无)
  • 中断周期(处理中断;可无)

指令周期的数据流

取指周期:获取指令

  1. 程序计数器(PC)的指令地址->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
  2. 控制单元(CU)的读控制信号->控制总线->主存储器(MM)
  3. 主存储器(MM)的指令->数据总线->存储器数据寄存器(MDR)->指令寄存器(IR)

指令寄存器(IR)的指令操作码->控制单元(CU)

  1. 控制单元(CU)的控制信号->程序计数器(PC)+1

间址周期:获取操作数有效地址

以一次间址为示例:

  1. 指令寄存器(IR)或存储器数据寄存器(MDR)的指令地址码->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
  2. 控制单元(CU)的读控制信号->控制总线->主存储器(MM)
  3. 主存储器(MM)的指令地址->数据总线->存储器数据寄存器(MDR)

执行周期:获取操作数

不同指令类型,获取操作数的操作不同,无统一数据流向。

中断周期:处理中断请求,保存程序断点

以在堆栈保存程序断点;先修改栈顶指针,后保存数据的进栈操作为示例:

  1. 控制单元(CU)的控制信号->堆栈顶指针(寄存器)(SP;32位:ESP)-1
  2. 堆栈顶指针(寄存器)(SP;32位:ESP)的指令地址->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
  3. 控制单元(CU)的写命令->控制总线->主存储器(MM)
  4. 程序计数器(PC)的指令地址->存储器数据寄存器(MDR)->数据总线->主存储器(MM)
  5. 控制单元(CU)的中断服务程序入口地址->程序计数器(PC)

指令的执行方案

  • 单指令周期方案
  • 多指令周期方案
  • 流水线方案

数据通路的基本结构

在中央处理器(CPU)内部:

  • 总线结构(单总线、多总线)
  • 专用数据通路结构

控制器的功能

  • 从主存储器(MM)中获取一条指令,并指出下一条指令在主存储器(MM)中的地址
  • 对指令进行译码或测试,产生相应的操作控制信号,以启动规定的动作
  • 指挥并控制中央处理器(CPU)、主存储器(MM)、输入和输出设备之间的数据流动方向

控制器的分类(根据产生微操作控制信号的方式)

  • 硬布线控制器(组合逻辑控制器)
  • 微程序控制器

相同点:程序计数器(PC),指令寄存器(IR)。
不同点:确定和表示指令执行步骤的方法,产生控制各部件运行所需控制信号的方案。


控制单元(CU)的输入来源

  • 指令译码器根据指令操作码译码产生的指令信息
  • 节拍发生器根据机器周期产生的时钟周期信号
  • 程序状态字寄存器根据执行单元反馈信息存储的状态标志
  • 控制总线的控制信号。如中断请求、直接存储器访问(DMA)请求

中央处理器(CPU)的控制方式

  • 同步控制方式
  • 异步控制方式
  • 联合控制方式(大部分同步,小部分异步)

硬布线控制器设计步骤

  1. 分析指令周期中取值、间址、执行和中断周期的微操作序列
  2. 选择中央处理器(CPU)的控制方式
  3. 安排微操作序列执行时序
  4. 设计电路

其中设计电路包括:

(1)列微操作序列的操作时间表
(2)写微操作序列的最简表达式
(3)画微操作序列的电路逻辑图


微程序设计的机器指令组成

  • 一条机器指令编写成一个微程序
  • 微程序=若干微指令
  • 微指令=若干微命令/微操作
  • 微命令时微操作的控制信号,微操作是微命令的执行过程

将微指令类比指令,存在微地址、微操作码、微地址码、微周期等概念。


微程序控制器的组成

  • 微地址形成部件
  • 顺序逻辑单元
  • 控制/微存储器地址寄存器(CMAR)
  • 地址译码器
  • 控制存储器(CM)
  • 控制/微存储器数据寄存器(CMDR/μIR)

微程序控制器的工作过程

  1. 获取机器指令
  2. 获取机器指令对应微程序的入口地址
  3. 获取微指令
  4. 执行微指令
  5. 获取下一条微指令或下一条机器指令

微指令的编码/控制方式

  • 直接编方式
  • 字段直接编码方式
  • 字段间接编码方式/隐式编码方式
  • 混合编码

微指令的地址形成方式

  • 机器指令的操作码产生
  • 微指令的微地址码/下地址产生(断定方式)
  • 增量计数器法产生(自增1)
  • 分支转移产生
  • 测试网络产生
  • 硬件产生
  • 外部输入产生

微指令的格式

  • 水平型微指令
  • 垂直型微指令
  • 混合型微指令

微程序控制器的设计步骤

核心:编写微程序

  1. 分析指令周期中取值、间址、执行和中断周期的微命令/操作序列
  2. 根据微命令/操作和时钟周期设计微指令
  3. 确定微指令格式
  4. 编码微指令

微程序设计的分类

  • 静态微程序设计
  • 动态微程序设计
  • 毫微微程序设计

中断(广义中断)的分类

  • 中断(广义中断)=中断(狭义中断;外中断)+异常/例外/陷入(内中断)
  • 外中断(硬件中断)=可屏蔽中断+不可屏蔽中断
  • 内中断(不可屏蔽中断)=故障+自陷/陷阱/陷入(软件中断/程序性异常)+终止(硬件中断)

或:

  • 外中断=外设请求(如I/O操作完成)+人工干预(如用户强行终止进程)
  • 内中断=自愿中断+强迫中断
  • 自愿中断,指令中断(如系统调用时使用陷入/访管/Trap指令)
  • 强迫中断=硬件故障(如缺页)+软件中断(如整数除以0)

外中断事件

  • 输入/输出(I/O)设备处理。如键盘输入,打印机缺纸
  • 特殊事件。如用户按退出Esc键,定时器计数时间到
  • 紧急硬件故障。如电源掉电

缓存(Cache)缺失
直接存储器访问(DMA)传送结束


内中断事件

故障:

  • 地址越界
  • 非法操作码
  • 缺段或缺页
  • 溢出。如运算溢出,栈溢出
  • 整数除以0

自陷:

  • 系统调用
  • 条件自陷指令
  • 断点设置(x86机器中)
  • 单步跟踪(x86机器中)

终止:

  • 控制器错误
  • 存储器校验错误
  • 总线错误

存储保护错误


中断(广义中断)的响应过程

  1. 关中断
  2. 保存断点和程序状态
  3. 识别中断(广义中断)并转到相应的处理程序

提高中央处理器(CPU)效率的方式

  • 时间上并行:流水线技术
  • 空间上并行:超标量处理机

指令的执行过程(另一种角度:指令流水线)

  1. 取指(IF)
  2. 译码/读寄存器(ID)
  3. 执行/计算地址(EX)
  4. 访存(MEM)
  5. 写回(WB)

流水寄存器存储的信息

  • 数据通路的数据
  • 控制部件的控制信号

流水线冒险的分类和处理方式

  • 结构冒险(资源冲突)
  • 数据冒险(数据冲突):读后写相关,写后读相关,写后写相关
  • 控制冒险(控制冲突)

流水线冒险的处理方式

结构冒险(资源冲突):

  • 暂停相关指令
  • 资源重复配置

数据冒险(数据冲突):读后写相关,写后读相关,写后写相关:

  • 暂停相关指令
  • 数据旁路技术
  • 编译优化(调整指令顺序)

控制冒险(控制冲突):

  • 分支预测
  • 预取多方向的指令
  • 加快和提前形成条件码
  • 提高转移方向的猜准率

流水线的性能指标

  • 吞吐率
  • 加速比
  • 效率

流水线的分类

根据使用的硬件级别:

  • 部件功能级流水线
  • 处理器级流水线
  • 处理器间流水线

根据实现功能的个数:

  • 单功能流水线
  • 多功能流水线

根据同一时间内各流水段/功能段实现功能的连接方式:

  • 静态流水线(相同功能)
  • 动态流水线(不同功能)

根据各流水段/功能段间有无反馈信号:

  • 线性流水线(无)
  • 非线性流水线(有)

高级流水线技术

  • 超长指令字技术/静态多发射技术
  • 超标量流水线技术/动态多发射技术
  • 超流水线技术

计算机体系结构的分类(从指令、数据流数量的角度)

  • 单指令流单数据流(SISD)结构
  • 单指令流多数据流(SIMD)结构
  • 多指令流单数据流(MISD)结构
  • 多指令流多数据流(MIMD)结构

硬件多线程的实现方式

  • 粗粒度多线程
  • 细粒度多线程
  • 同时多线程(SMT)

总结

计算机组成原理的知识抽象、晦涩、不易理解并记忆,在此对“中央处理器(CPU)”一章中重点知识总结成提纲。


参考资料

  • 《2023年计算机组成原理考研复习指导》组编:王道论坛
  • 哔哩哔哩平台《王道计算机考研 计算机组成原理》视频课

作者的话

  • 感谢参考资料的作者/博主
  • 作者:夜悊
  • 版权所有,转载请注明出处,谢谢~
  • 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
  • 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
  • 文章在认识上有错误的地方, 敬请批评指正
  • 望读者们都能有所收获
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值