计算机组成原理期末复习(七)CPU的结构和性能

7.1 CPU的结构

7.1.1 CPU的功能

(1)取指令 控制器必须具备能自动地从存储器中取出指令的功能

(2)分析指令 分析指令包括两部分内容:其一,分析此指令要完成什么操作,即控制器需发出什么操作命令;其二,分析参与这次操作的操作数地址,即操作数的有效地址。

(3)执行指令 执行指令就是根据分析指令产生的“操作命令”和“操作数地址”的要求,形成操作控制信号序列,通过对运算器、存储器以及I/O设备的操作,执行每条指令。

CPU必须具有控制程序的顺序执行(称指令控制)、产生完成每条指令的控制命令(称操作控制)、对各种操作加以时间上的控制(称时间控制)、对数据进行算术运算和逻辑运算(称数据加工)、处理中断等功能。

7.1.2 CPU结构框图

7.1.3 CPU的寄存器

CPU中的寄存器大致可分为两类:一类属于用户可见寄存器,用户可对这类寄存器编程,以及通过优化使CPU因使用这类寄存器而减少对主存的访问次数;另一类属于控制和状态寄存器,用户不可对这类寄存器编程,它们被控制部件使用,以控制CPU的操作,也可被带有特权的操作系统程序使用,从而控制程序的执行。

用户可见寄存器

(1)通用寄存器 通用寄存器可由程序设计者指定许多功能,可用于存放操作数,也可作为满足某种寻址方式所需的寄存器。寄存器间接寻址时还可用通用寄存器存放有效地址的地址。

(2)数据寄存器 数据寄存器用于存放操作数,其位数应满足多数数据类型的数值范围。

(3)地址寄存器 地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的寻址方式。

(4)条件码寄存器 条件码是CPU根据运算结果由硬件设置的位。将条件码放到一个或多个寄存器中,就构成了条件码寄存器。

控制和状态寄存器

MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。 MDR:存储器数据寄存器,用于存放欲存入存储器中的数据或最近从存储器中读出的数据。 PC:程序计数器,存放现行指令的地址,通常具有计数功能。当遇到转移类指令时,PC的值可被修改。 IR:指令寄存器,存放当前欲执行的指令。 PSW:程序状态字寄存器,存放条件码和其他状态信息。 在具有中断系统的机器中还有中断标记寄存器。

7.1.4 控制单元和中断系统

控制单元(CU)是提供完成计算机全部指令操作的微操作命令序列部件。微操作命令序列的形成方法有两种:一种是组合逻辑设计方法,为硬连线逻辑;另一种是微程序设计方法,为存储逻辑

7.2 指令周期

7.2.1 概念

CPU每取出并执行一条指令所需的全部时间称为指令周期,也即CPU完成一条指令的时间。取指阶段完成取指令和分析指令的操作,又称取指周期;执行阶段完成执行指令的操作,又称执行周期

7.2.2 指令周期的数据流

取值周期数据流

间址周期的数据流

执行周期的数据流

中断周期的数据流

7.3 指令流水

(1)提高器件的性能 (2)改进系统的结构,开发系统的并行性 并行:包含同时性和并发性两方面。同时性指两个或多个事件在同一时刻发生,并发性指两个或多个事件在同一时间段发生。在同一时刻或同一时间段内完成两种或两种以上性质相同或不同的功能,只要在时间上互相重叠,就存在并行性。 并行性体现在不同等级上。通常分为4个级别:作业级或程序级、任务级或进程级、指令之间级和指令内部级。前两级为粗粒度,又称为过程级;后两级为细粒度,又称为指令级。粗粒度并行性一般用算法实现,细粒度并行性一般用硬件实现。粗粒度并行性是在多个处理机上分别运行多个进程,由多台处理机合作完成一个程序;细粒度并行性是指在处理机的操作级和指令级的并行性,其中指令的流水作业就是一项重要技术。

7.3.1 指令流水原理

把指令的处理过程分为取指令和执行指令两个阶段,在不采用流水技术的计算机里,取指令和执行指令是周而复始地出现,各条指令按顺序串行执行的。

7.3.2 影响流水线性能的因素

在流水过程中会出现三种相关,使流水线不断流实现起来很困难,即结构相关、数据相关、控制相关。 结构相关:当多条指令进入流水线后,硬件资源满足不了指令重叠执行的要求时产生的。 数据相关:指令在流水线中重叠执行时,当后继指令需要用到前面的执行结果时发生的。 控制相关:当流水线遇到分支指令和其他改变PC值的指令时引起的。

假设流水线由5段组成,它们分别是取指令(IF)、指令译码/读寄存器(ID)、执行/访存有效地址计算(EX)、存储器访问(MEM)、结果写回寄存器(WB)。

结构相关

数据相关

控制相关

7.3.3 流水线性能

流水线性能通常用吞吐率、加速比、效率3项指标来衡量。

吞吐率

在指令级流水线中,吞吐率是指单位时间内流水线所完成指令或输出结果的数量。吞吐率又有最大吞吐率实际吞吐率之分。

最大吞吐率是指流水线在连续流动达到稳定状态后所获得的吞吐率。对于m段的指令流水线而言,若各段的时间均为Δt,则最大吞吐率为

T_{pmax}=\frac{1}{\triangle t} 流水线仅在连续流动时才可达到最大吞吐率。实际吞吐率总是小于最大吞吐率。 实际吞吐率是指流水线完成n条指令的实际吞吐率。实际吞吐率为 T_p=\frac{T_{pmax}}{1+(m-1)/n}

加速比

流水线的加速比是指m段流水线的速度与等功能的非流水线的速度之比。加速比Sp为 S_p=\frac{m}{1+(m-1)/n}

效率

效率是指流水线中各功能段的利用率。通常用流水线各段处于工作时间的时空区与流水线中各段总的时空区之比来衡量流水线的效率。 E=T_p\triangle t

7.3.4 流水线种的多发技术。

除了采用好的指令调度算法、重新组织指令执行顺序、降低相关带来的干扰以及优化编译外,还可开发流水线中的多发技术,设法在一个时钟周期内,产生更多的结果。常见的多发技术有超标量技术、超流水线技术、超长指令字技术。

7.3.5 流水线结构

指令流水线结构

指令流水线是将指令的整个执行过程用流水线进行分段处理,典型的指令执行过程分为“取指令——指令译码——形成地址——取操作数——执行指令——回写结果——修改指令指针”这几个阶段。 指令流水线对机器性能的改善程度取决于把处理过程分解为多少个相等的时间段数。

运算流水线

流水线相邻两段在执行不同的操作,因此在相邻两段之间必须设置锁存器或寄存器,以保证在一个时钟周期内流水线的输入信号不变。这一指导思想也适用于指令流水。

7.4 中断系统

7.4.1 概述

引起中断的各种因素

(1)人为设置的中断 这种中断一般称为自愿中断,因为它是程序中人为设置的,故一旦机器执行这种人为中断,便自愿停止现行程序而转入中断处理。 (2)程序性事故 如定点溢出、浮点溢出、操作码不能识别、除法中出现“非法”等,这些都属于由程序设计不周而引起的中断。 (3)硬件故障 (4)I/O设备 I/O设备被启动以后,一旦准备就绪,便向CPU发出中断请求。 (5)外部事件 用户通过键盘来中断现行程序属于外部事件中断。

通常将能引起中断的各个因素称为中断源。中断源可分为两大类:一类为不可屏蔽中断,这类中断CPU不能禁止,如电源掉电;另一类为可屏蔽中断,对可屏蔽中断源的请求,CPU可根据该中断源是否被屏蔽来确定是否给予响应。若未屏蔽则能响应;若已被屏蔽,则CPU不能响应。

7.4.2 中断请求标记和中断判优逻辑

中断请求标记

中断判优逻辑

7.4.3 中断服务程序入口地址的寻找

通常有两种方法寻找入口地址:硬件向量法和软件查询法。

7.4.4 中断响应

响应中断的条件

当EINT=1,且有中断请求(即中断请求标记触发器INTR=1)时,CPU可以响应中断。

响应中断时间

之所以CPU在指令的执行周期后进入中断周期,是因为CPU在执行周期的结束时刻同一向所有中断源发中断查询信号,只有此时CPU才能获知哪个中断源有请求。 可在指令执行过程中设置若干个查询断点,CPU在每个“查询断点”时刻均发中断查询信号,以便发现有中断请求便可及时响应。

中断隐指令

(1)保护程序断点 (2)寻找中断服务程序的入口地址 (3)关中断

7.4.5 保护现场和恢复现场

保护现场:应该包括保护程序断点和保护CPU内部各寄存器内容的现场两个方面。程序断点的现场由中断隐指令完成,各寄存器内的现场可在中断服务程序中由用户(或系统)用机器指令编程实现。

恢复现场:是指在中断返回前,必须将寄存器的内容回复到中断处理前的状态,这部分工作也由中断服务程序完成。

7.4.6 中断屏蔽技术

多重中断概念

当CPU正在执行某个中断服务程序时,另一个中断源又提出了新的中断请求,而CPU又响应了这个系难道请求,暂时停止正在运行的服务程序,转去执行新的中断服务程序,这称为多重中断,又称为中断嵌套。如果的CPU对新请求不予响应,待执行完当前的服务程序后再响应,即为单重中断。

实现多重中断的条件

1.提前设置“开中断”指令。 多重中断“开中断”指令的位置前于单重中断,从而保证了多重中断允许出现中断嵌套。 2.优先级别高的中断源有权中断优先级别低的中断源。 为了保证级别低的中断源不干扰级别高的中断源的中断处理过程,保证上述2的试试,可采用屏蔽技术。

屏蔽技术

(1)屏蔽触发器与屏蔽字 (2)屏蔽技术可改变优先等级 (3)屏蔽技术的其他作用

多重中断的断点保护

7.5 小结

  1. CPU实质包括运算器和控制器,功能:取指令、分析指令(分析此指令要完成什么操作,分析参与这次操作的操作数地址)、执行指令

  2. MAR(存储器地址寄存器)、MDR(存储器数据寄存器)、PC(程序计数器)、IR(指令寄存器)

  3. CPU每取出并执行一条指令所需的全部时间称为指令周期。

    引起流水线性能的因素

    结构相关、数据相关、控制相关

    引起中断的各种因素

    人为设置的中断、程序性事故、硬件故障、I/O设备、外部事件

7.6 例题

 

 

8.12 在5个功能段的指令流水线中,假设每段的执行时间分别为10ns,8ns,10ns,10ns和7ns。对于完成12条指令的流水线而言,其加速比为多少?该流水线的实际吞吐率为多少?

根据流水线时空图,第一条指令出结果需要5个时钟周期,当流水线满载时,每个时钟周期可以出一个结果,即执行完一条指令。完成12条指令需要16个时钟周期,故实际吞吐率为:

12/(10ns* 16)=0.75*10^8条指令/秒

对于本题五级流水线而言,处理12条指令所需的时钟周期数为T=5+ (12-1) =16个, 而非流水线处理12条指令需要5*12=60个,故该流水处理器的加速比为   60/16=3.75。

 

8.18 什么是中断隐指令,有哪些功能?

中断隐指令:CPU响应中断后,即进入中断周期。

功能:

  1. 保护程序断点
  2. 寻找中断服务程序的入口地址
  3. 关中断

 

8.19 中断系统中采用屏蔽技术有何作用?

  1. 屏蔽触发器与屏蔽字
  2. 屏蔽技术可改变优先等级
  3. 屏蔽技术的其他作用

 

 

8.26 设某机配有A、B、C三台设备,其优先顺序按A-B-C降序排列,为改变中断处理次序,它们的中断屏蔽字设置如下:

设备

屏蔽字

A

111

B

010

C

011

 

 

 

本文作者:jujimeizuo
本文地址https://blog.jujimeizuo.cn/2021/06/20/jizu7/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!