一、 CPU 功能
- 控制器部分的功能
- 运算器部分的功能
1.运算器功能
算术运算、逻辑运算
2.控制器功能
- 指令控制:取指令、顺序执行
- 操作控制:分析指令、执行指令
- 时间控制:控制程序输入输出
- 中断处理:总线管理、处理异常
- 数据加工
二、结构
PC 完成指令控制
CU 完成操作控制、时间控制
ALU 完成数据加工
中断系统完成中断处理
1. CPU的寄存器
(1)用户可见寄存器
- 通用寄存器:存放操作数,也可作为满足某种寻址方式所需的寄存器。
- 数据寄存器:存放操作数,允许用两个连续寄存器存放双倍字长的值。
- 地址寄存器:存放地址
- 条件代码寄存器:存放条件码(对用户部分透明),做程序分支的依据。
(2)控制和状态寄存器
- 控制寄存器:MAR、MDR、PC(用户可见)、IR
- 状态寄存器:PSW
2.控制单元 CU 和中断系统
(1)CU
功能:提供完成机器全部指令操作的s微操作命令序列(产生并保证时间先后)
实现方法:组合逻辑设计法(硬件实现)、微程序设计方法(软件实现)
(2)中断系统
三、指令周期
CPU 每取出并执行一条指令所需全部时间叫指令周期。
指令操作功能不同,指令周期也不相同。
1.指令周期
基本形式:
无条件转移指令:
加法指令:
乘法指令:
间接寻址的指令:
带有中断的指令:
2.CPU 访存的不同性质
CPU 访存的性质 | 对应指令周期 |
取指令 | 取指周期 |
取地址 | 间址周期 |
存取操作数或结果 | 执行周期 |
保存程序断点 | 中断周期 |
四、指令流水
为提高系统处理能力,改进系统结构,开发系统并行性。
并行性等级:
- 粗粒度并行性:作业级、程序级、进程级(软件实现)
- 细粒度并行性:指令之间或指令内部(硬件实现)
1.指令流水原理
(1)指令串行执行
由于取指令部件和执行机构不同,因此 CPU 执行过程中,总有一个处于空闲状态。
(2)二级流水
由于指令取指时间远小于执行时间,且遇到条件转移指令时,下一条指令未知,因此降低了二级流水潜在效率。
(3)多级流水
将指令周期细分,实现多级流水,如 6 级流水
将一个指令周期分为 6 个阶段。
2.流水线性能
(1)吞吐率
(2)加速比
(3)效率
3.影响性能的因素
(1)访存冲突
不同指令争夺同一功能部件
解决方法:
- 设置两个独立寄存器分别存放操作数和指令
- 采用指令预取技术(适用于访存周期很短的情况)
- 停顿
(2)相关问题
- 控制相关:由转移指令引起
- 数据相关:不同指令因重叠操作,可能改变其读写顺序
4.流水线多发技术
(1)超标量技术
在每个时钟周期内,同时并发执行多条独立指令。
(2)超流水线技术
一个时钟周期内再分段
(3)超长指令字技术
挖掘指令间潜在并行性,将多条指令组合为一条具有多个操作码字段的超长指令。
五、中断系统
1.引起中断的因素
- 人为设置的中断
- 程序性事故
- 硬件故障
- I/O 中断请求
- 外部事件(如,用户通过键盘中断进程)
2.中断请求标记(INTR)、判优逻辑
3.中断隐指令
功能:
- 保护程序断点
- 寻找服务程序入口地址
- 硬件关中断
4.保护现场、恢复现场
(1)保护现场
- 保护断点:中断隐指令完成
- 保护寄存器内容:中断服务程序完成
(2)恢复现场:中断服务程序完成
本文中图片均为刘宏伟教授在中国大学MOOC上的课件截图