对应唐书第八章——CPU的结构与功能。
目录
一、CPU的结构
CPU包括控制器和运算器两部分。,其功能也主要体现在这两方面
CPU中寄存器可分为两类,一类属于用户可见寄存器,用户能对其编程;另一类属于控制和状态寄存器,不可编程。
二、指令周期
CPU取出并执行一条指令的全部时间成为指令周期,各种指令的指令周期是不同的。
在取值、间址、执行、中断周期都会有CPU访存操作,但目的不同。
另外,要求掌握指令周期的数据流(P334)。
三、流水
前面已经介绍了提高访存速度、I/O交换速度、运算速度的方法。
为了进一步提高速度,需要提高器件的性能,并提高系统的并行性。粗粒度的并行如进程间的并行,由软件实现;细粒度的并行如指令之间,由硬件实现。
1. 影响流水性能的因素
1.1 结构相关
指令在重叠执行过程中,不同指令争用同一功能部件产生资源冲突。
解决办法:指令暂停一个阶段;数据存储器和指令存储器分开;指令预取技术(基于访存周期很短的情况)。
1.2 数据相关
重叠操作导致对操作数的读写顺序改变,主要是写操作造成的。其中读后写相关、写后写相关可能会在乱序的情况下出现。
解决方法有后推法(暂停)和旁路技术(不必等待数据送回寄存器,直接送到需要的地方)
1.3 控制相关
主要由转移指令引起,无法提前判断是顺序还是跳转,书上简单预测为顺序,会带来很多的浪费。这方面有很多的机制,不过考试不涉及。
2. 流水线性能
吞吐率为单位时间内流水线完成指令的数量,分为实际吞吐率(含启动)与最大吞吐率。
加速比为流水与非流水的速度之比。
效率为流水线中各功能段的利用率,直观来说,就是指令占的面积与大矩形的面积之比。
3. 流水线中的多发技术
超标量技术:每个周期多条独立指令。不能调整指令执行顺序,但可编译优化。
超流水线:流水再分段。不能调整指令执行顺序,但可编译优化。
超长指令字:合并多条可并行的指令。
4. 流水线结构
并不是流水就一定好,是否采用流水、在哪部分采用流水都要根据具体情况而定。
四、中断系统
1. 概述
引起中断的因素很多,大概这几类:
①人为设置
②程序性事故:如溢出、除零、操作码不能识别。
③硬件故障:接触不良、电源掉电等。
④I/O设备
⑤外部事件:如键盘输入。
通常将引起中断的因素称为中断源,分为可屏蔽和不可屏蔽(如电源掉电)。
2. 中断请求标记和判优逻辑
中断判优可用硬件和软件实现,硬件排队又分为链式排队器和CPU中的排队器,软件排队主要是编写查询程序。
3. 中断服务程序入口地址
不同中断源对应不同的中断服务程序,可通过硬件向量法和软件查询法寻找入口地址。
硬件向量法通过中断向量形成部件形成向量地址,对应单元内存放入口地址(向量地址表)或跳转指令。速度快,被普遍采用。
软件查询通过跳转指令确定入口地址(程序员或系统事先指定),不涉及硬件,但慢。
4. 中断响应
响应中断的条件——允许中断触发器EINT置1,且有中断请求。
响应中断的时间——执行周期结束后。统一向所有中断源发中断查询请求。
在中断周期,CPU会自动完成一系列操作:保护程序断点(PC存入堆栈或特定单元),寻找中断服务程序入口地址,关中断(EINT=0)。这些操作都是由一条中断隐指令完成的,机器指令系统中没有,由硬件自动完成。
5. 保护现场和恢复现场
保护现场包括保护程序断点以及CPU内部各寄存器。其中,程序断点保护可由中断隐指令完成,寄存器保护可在中断服务程序中由用户或系统用机器指令实现。
恢复现场指中断返回前,回复寄存器值,同样由中断服务程序实现。
6. 中断屏蔽技术
中断屏蔽技术用于多重中断。
实现多重中断的条件:提前设置“开中断”,高优先级中断源有权中断低优先级。
单重中断与多重中断的区别在于开中断的时机。单重中断在中断返回前开中断,而多重中断在保护现场之后就开中断。
每个中断请求触发器都有一个屏蔽触发器,屏蔽触发器置1时对应EINT只能置0。所有屏蔽触发器构成屏蔽寄存器,其内容称为屏蔽字。
置屏蔽字的时机是在保护现场之后、开中断之前。恢复屏蔽字的时机是在恢复现场之后,开中断之前。注意这里新增了一个关中断、开中断的过程。
如下图,响应优先级为ABCD,处理优先级为ADCB。由于响应优先级无法改变,在A中断结束后,依次进入BC的中断服务程序,保护现场,并设置屏蔽字,设置完之后被更高级别的中断打断。
严格来说,优先级分为响应优先级和处理优先级。其中响应优先级是硬件线路设计好的,如不采用屏蔽技术,则响应优先级就是处理优先级。屏蔽技术只能改变处理优先级。