CPU结构
1. CPU的功能
控制器的功能
- 取指令
- 分析指令
- 执行指令,发出各种操作命令
- 控制程序输入及结果的输出
- 总线管理
- 处理异常情况和特殊请求
运算器的功能
实现算术运算和逻辑运算
2. CPU的结构框图
3. CPU的寄存器
(1) 用户可见寄存器
(2) 控制和状态寄存器
- 控制寄存器
P C → M A R → M → M D R → I R
控制CPU操作
其中MAR, MDR, IR 用户不可见
PC 用户可见
- 状态寄存器
状态寄存器 存放条件码
PSW 寄存器 存放状态字
4. 控制单元CU和中断系统
- CU 产生全部指令的微操作命令序列
- 中断系统
无
指令周期
1. 指令周期的基本概念
(1) 指令周期
取出并执行一条执行指令的所需的全部时间
完成一条指令
(2) 每条指令的指令周期不同
(3) 具有间接寻址的指令周期
寻找有效地址的
(4) 带有中断周期的指令周期
查询是否有中断,
(5)指令周期流程
(6) CPU 工作周期的标志
CPU访存有四种性质
- 取指令 取指周期
- 取地址 间址周期
- 取操作数 执行周期
- 存程序断点 中断周期
2. 指令周期的数据流
(1) 取指周期的数据流
(2) 间址周期的数据流
(3) 执行周期的数据流
不同指令的执行周期数据流不同
(4) 中断周期的数据流
指令流水
(1) 如何提高机器速度
- 提高访存速度
高速芯片 Cache 多体并行
- 提高I/O和主机之间的传送速度
中断 DMA 通道 I/O处理机
- 提高运算器速度
高速芯片 改进算法 快速进位链
- 提高整机处理能力
高速器件 改进系统结构, 开发系统的并行性
(2)系统并行性
- 并行的概念
- 并发: 两个或两个以上事件在同一时间段发生
- 同时: 两个或两个以上事件在同一时刻发生
- 并行性的等级
- 过程级(程序, 进程) 粗粒度 软件实现
- 指令级 细粒度 硬件实现
1. 指令流水原理
(1) 指令的串行执行
取指令取指令部件完成, 总有一个部件空闲
执行指令执行指令部件完成
(2) 指令的二级流水
指令预取
若指令和执行阶段时间上完全重叠
指令周期减半, 速度提高1倍.
(3) 影响指令流水效率加倍的因素
(4) 指令的六级流水
完成一条指令分为6个时间单位
如果需要执行9条指令, 串行执行需要6×9=54个时间单位; 六级流水需要14个时间单位.
2. 影响流水线性能的因素
(1) 结构相关
不同指令争用同一功能部件产生资源冲突
- 停顿
- 指令存储器和数据存储器分开
- 指令预取技术(适用于访存周期短的情况)
(2) 数据相关
不同指令因重叠操作, 可能改变操作数的 读/写 访问顺序
- 写后读相关(RAW)
先写后读变成了先读后写
- 读后写相关(WAR)
先读后写变成了先写后读
- 写后写相关(WAW)
前后两条写法指令顺序被调换了
解决办法
(3) 控制相关
由转移指令引起
3. 流水线性能
(1) 吞吐率
单位时间内, 流水线所完成指令或输出结果的数量
设 m 段的流水线隔断时间为Δt
- 最大吞吐率
最大吞吐率是指流水线在连续流动达到稳定状态后所得的吞吐率.
- 实际吞吐率
连续处理 n 条指令的吞吐率为
(2) 加速比
m段的流水线的速度与等功能的非流水的速度之比.
设 m 段的流水线隔断时间为Δt
完成 n 条指令在 m 段流水线上共需:
T = mΔt + ( n − 1 ) Δt
完成 n 条指令在等效的非流水线上共需
T ′ = n mΔt
则
(3) 效率
流水线中各功能段的流动率
4. 流水线中的多发技术(了解特点和区分)
(1) 超标量技术
- 每个时钟周期内可并发多条独立指令
配置多个功能部件
- 不能调整指令的执行顺序
(2) 超流水线技术
- 在一个时钟周期内再分段
在一个时钟周期内一个功能部件使用多次
- 不能调整指令的执行顺序
(3) 超长指令字技术
- 有编译程序挖掘出指令间的潜在的并行性, 将多条能并行操作的指令组合成一条
具有多个操作码字段的超长指令字
5. 流水线结构
(1) 指令流水线结构
完成一条指令分为7段, 每段需一个时钟周期
(2) 运算流水线
完成浮点加减运算 可分
对阶, 尾数求和, 规格化 三段
分段原则: 每段操作时间尽量一致
中断系统
1. 概述
(1) 引起中断的各种因素
- 人为设置的中断, 如 转管指令
- 程序性事故, 溢出、 操作码不能识别、除法非法
- 硬件故障
- I/O设备
- 外部事件 用键盘中断现行程序
(2) 中断系统需解决的问题
2. 中断请求标记和中断判优逻辑
(1) 中断请求标记INTR
一个请求源对应一个INTR中断请求标记触发器
多个INTR组成中断请求标记寄存器
INTR 分散在各个中断源的接口电路中
INTR 集中在CPU的中断系统内
(2) 中断判优逻辑
- 硬件实现(排队器)
- 分散在各个中断源的接口电路中链式排队器
- 集中在CPU内
- 软件实现(程序查询)
3. 中断服务程序入口地址的寻找
(1) 硬件向量法
硬件产生向量地址,再由向量地址找到中断服务程序的入口地址。
两种方法:
(2) 软件查询法
用软件寻找中断服务程序入口地址的方法。
4. 中断响应
- 中断响应的条件
允许中断触发器 EINT=1
- 响应中断的时间
指令执行周期结束时刻由CPU发查询信号
- 中断隐指令
- 保护程序断点
断点存于特定地址(0号地址)内 断点进栈
- 寻找服务程序入口地址
向量地址→PC(硬件向量法)
中断识别程序 入口地址 M→PC(软件查询法)
- 硬件关中断
INT 中断标记
EINT允许中断
R-S触发器
5. 保护现场和恢复现场
- 保护现场
- 断点 中断隐指令完成
- 寄存器内容 中断服务程序完成
- 恢复现场 中断服务程序完成
6. 中断屏蔽
(1) 多重中断的概念
(2) 实现多重中断的条件
- 提前设置开中断指令
- 优先级别高的中断源有权中断优先级别低的中断源
(3) 屏蔽技术
- 屏蔽触发器的作用
- 屏蔽字
1越多,优先级越高,可以屏蔽低级中断,可以中断低级。
- 屏蔽技术可改变处理优先等级
响应优先级 不可改变
处理优先级 可改变(通过重新设置屏蔽字)
- 屏蔽技术的其他作用
- 新屏蔽字的设置
(4) 多重中断断点保护
- 断点进栈 中断隐指令完成
- 断点存入“0”地址 中断隐指令完成
中断周期 0→MAR
命令存储器写
PC→MDR 断点→MDR
(MDR) →存入存储器
三次中断,三个中断都存入0地址
第8章复习提纲
1.熟知CPU的功能和组成。
2.掌握CPU工作周期和指令周期的概念。
3.掌握指令流水的概念、指令流水原理以及影响流水性能的因素。
4.熟练计算吞吐率、加速比和效率等流水线性能。
5.熟知流水线中的多发技术;
6.理解中断的概念、中断系统需要解决的问题以及实施方案。
7.掌握设置中断判优逻辑、CPU响应中断的条件和时间、保护现场、中断服务程序入口地址的寻找等问题的实施方案。
8.理解中断屏蔽技术,并能熟练设计中断源的屏蔽字和CPU执行程序的轨迹。
课后习题
- CPU有哪些功能?画出其结构框图并简要说明每个部件的作用。
答:CPU具有控制程序的顺序执行、产生完成每条指令所需的控制命令、对各种操作实施时间上的控制、对数据进行算术和逻辑运算以及处理中断等功能,其框图如图8.1(P338)所示。图中寄存器包括专用寄存器(如程序计数器、指令寄存器、堆栈指示器、存储器地址寄存器、存储器数据寄存器、状态寄存器等)以及通用寄存器(存放操作数);CU产生各种微操作命令序列;ALU完成算术和逻辑运算;中断系统用于处理各种中断。
- 什么是指令周期?指令周期是否有一个固定值?为什么?
答:指令周期是指CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。由于各种指令操作功能不同,因此各种指令的指令周期是不同的,指令周期的长短主要和指令在执行阶段的访存次数和执行阶段所需要完成的操作有关。
- 画出指令周期的流程图,分别说明图中每个子周期的作用。
答:图8.8(P343)所示是指令周期的流程图,取指周期完成取指令和分析指令的操作;间址周期用于取操作数的有效地址;执行周期完成执行指令的操作;中断周期是当CPU响应中断时,由中断隐指令完成保护程序断点、硬件关中断和向量地址送PC(硬件向量法)的操作。
- 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中哪一个更能提高处理器速度,为什么?
答:指令流水就是改变各条指令按顺序串行执行的规则,使机器在执行上一条指令的同时,取出下一条指令。指令二级流水和四级流水示意图如下:
- 举例说明流水线中的几种数据相关。
解:(1)写后读相关;(2)读后写相关;(3)写后写相关。
- 什么是中断?设计中断系统需考虑哪些主要问题?
答:CPU在程序运行过程中,遇到异常情况或特殊请求,需暂停现行程序,转至对这些异常情况或特殊请求的处理,处理完后再返回到原程序断点处继续执行,这一过程即为中断。
设计中断系统需考虑如下几个问题:①中断源如何向CPU提出请求?②当多个中断源同时提出请求时,CPU如何确定响应的优先次序?③CPU在什么情况(时间、条件)下响应中断?④如何保护现场?⑤如何寻找中断服务程序的入口地址?⑥如何恢复现场?⑦当出现中断嵌套时如何处理?
- 什么是中断隐指令,有哪些功能?
解:中断隐指令:CPU响应中断之后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的。
功能:⑴保存断点;⑵暂不允许中断;⑶引出中断服务程序。