计算机组成原理期末复习
第八章 CPU的结构和功能
功能
指令控制
:控制程序顺序执行操作控制
:产生完成每条指令所需的控制命令时间控制
:对各种操作加以时间上控制数据加工
:对于数据进行算术和逻辑运算处理中断
:处理各种中断
组成
CPU主要由ALU,寄存器,CU以及中断系统来组成。
CPU的寄存器
主要包括用户可见寄存器
和控制状态寄存器
用户可见寄存器
- 通用寄存器
存放操作数;作为某种寻址方式所需的专用寄存器
- 数据寄存器
存放操作数
- 地址寄存器
存放地址
- 条件码寄存器
存放条件码,用作程序分支依据
控制和状态寄存器
- MAR 存储器地址寄存器
- MDR 存储器数据寄存器
- PC 程序计数器 现行指令的地址
- IR 指令寄存器 当前欲执行的指令
- PSW 存放程序状态字
- 中断标记寄存器
指令周期
- 指令周期:CPU每取出并执行一条指令所需的全部时间
- 取指周期:取指令、分析指令
- 间址周期:取地址
- 执行周期:执行指令
- 中断周期:存程序断点
- 指令周期流程:
指令流水
影响流水线性能的因素
在流水过程中会出现三种相关,使流水线不断流实现起来很困难,即结构相关、数据相关、控制相关。
- 结构相关:当多条指令进入流水线后,硬件资源满足不了指令重叠执行的要求时产生的。
- 数据相关:指令在流水线中重叠执行时,当后继指令需要用到前面的执行结果时发生的。
- 控制相关:当流水线遇到分支指令和其他改变PC值的指令时引起的。
流水线性能
流水线性能通常用吞吐率、加速比、效率3项指标来衡量。
(1)吞吐率
在指令级流水线中,吞吐率 是指单位时间内流水线所完成指令或输出结果的数量。吞吐率又有最大吞吐率和实际吞吐率之分。
最大吞吐率是指流水线在连续流动达到稳定状态后所获得的吞吐率。对于m段的指令流水线而言,若各段的时间均为Δt,则最大吞吐率为
流水线仅在连续流动时才可达到最大吞吐率。实际吞吐率总是小于最大吞吐率。
实际吞吐率是指流水线完成n条指令的实际吞吐率。实际吞吐率为
(2)加速比
流水线的加速比是指m段流水线的速度与等功能的非流水线的速度之比。加速比Sp为
即
(3)效率
效率是指流水线中各功能段的利用率。通常用流水线各段处于工作时间的时空区与流水线中各段总的时空区之比来衡量流水线的效率。
∴
E
=
m
n
Δ
t
m
(
m
+
n
−
1
)
Δ
t
=
S
p
m
=
T
p
Δ
t
\therefore E=\frac{mn\Delta t}{m(m+n-1)\Delta t}=\frac{S_p}{m}=T_p\Delta t
∴E=m(m+n−1)ΔtmnΔt=mSp=TpΔt
由于流水线有建立时间和排空时间, 因此各功能段的设备不可能一直处于工作状态。
中断系统
引起中断的各种因素
(1)人为设置的中断
这种中断一般称为自愿中断,因为它是程序中人为设置的,故一旦机器执行这种人为中断,便自愿停止现行程序而转入中断处理。
(2)程序性事故
如定点溢出、浮点溢出、操作码不能识别、除法中出现“非法”等,这些都属于由程序设计不周而引起的中断。
(3)硬件故障
(4)I/O设备
I/O设备被启动以后,一旦准备就绪,便向CPU发出中断请求。
(5)外部事件
用户通过键盘来中断现行程序属于外部事件中断。
通常将能引起中断的各个因素称为中断源
。
中断源可分为两大类:
一类为不可屏蔽中断,这类中断CPU不能禁止,如电源掉电;
另一类为可屏蔽中断,对可屏蔽中断源的请求,CPU可根据该中断源是否被屏蔽来确定是否给予响应。若未屏蔽则能响应;若已被屏蔽,则CPU不能响应。
1)中断请求标记和中断判优逻辑
1、中断请求标记
为了判断是哪个中断源提出的请求,在中断系统中必须设置中断请求标记触发器,简称中断请求触发器,记作INTR。当其状态为“1”时,表示中断源有请求。
这种触发器可集中设在CPU内,组成一个中断请求标记寄存器。
中断请求触发器越多,说明计算机处理中断的能力越强。这些触发器既可以集中在CPU的中断系统内, 也可以分散到各个中断源中。
2、中断判优逻辑
任何一个中断系统,在任一时刻,只能响应一个中断源的请求。当某一时刻多个中断源提出中断请求时,中断系统必须按其优先顺序予以响应,这称为中断判优。
各中断源的优先顺序是根据该中断源若得不到及时响应,致使机器工作出错的严重程度而定的。
中断判优可用硬件实现,也可用软件实现。
2)中断服务程序入口地址的寻找
通常有两种方法寻找入口地址:硬件向量法和软件查询法。
3)中断响应
1、响应中断的条件
当EINT=1,且有中断请求(即中断请求标记触发器INTR=1)时,CPU可以响应中断。
2、响应中断的时间
之所以CPU在指令的执行周期后进入中断周期,是因为CPU在执行周期的结束时,统一向所有中断源发出中断查询信号,只有此时CPU才能获知哪个中断源有请求。
可在指令执行过程中设置若干个查询断点,CPU在每个“查询断点”时刻均发中断查询信号,以便发现有中断请求,CPU便可及时响应。
4)中断隐指令
(1)保护程序断点
(2)寻找中断服务程序的入口地址
(3)关中断
5)保护现场和恢复现场
中断屏蔽技术
1、多重中断的概念
当CPU正在执行某个中断服务程序时,另一个中断源又提出了新的中断请求,而CPU又响应了这个中断请求,暂时停止正在运行的服务程序,转去执行新的中断服务程序,这称为多重中断,又称为中断嵌套
如果CPU对新的请求不予响应,待执行完当前的服务程序后再响应,即为单重中断。
2、实现多重中断的条件
(1)提前设置“开中断”指令
多重中断“开中断”指令的位置前于单重中断,从而保证了多重中断允许出现中断嵌套。
(2)优先级别高的中断源有权中断优先级别低的中断源
为了保证级别低的中断源不干扰级别高的中断源的中断处理过程,可采用屏蔽技术。
屏蔽技术
对应每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,便构成一个屏蔽寄存器,屏蔽寄存器的内容称为屏蔽字
。
屏蔽字与中断源的优先级别是一一对应的。
在中断服务程序中设置适当的屏蔽字,能起到对优先级别不同的中断源的屏蔽作用。
作业