《计算机组成原理》第二版第八章课后习题解答
《计算机组成原理》第八章课后习题解答
本文答案由作者网上搜集整理而成,错误之处还望指正。
1. CPU有哪些功能?画出其结构框图并简要说明每个部件的作用 。
答: CPU的主要功能是执行存放在主存储器中的程序即机器指令.CPU是由控制器和运算器.
ALU:实现算术和逻辑运算
寄存器:存放操作数
CU:发出各种操作命令序列的控制部件
中断系统:处理异常情况和特殊请求
2 什么是指令周期?指令周期是否有一个固定值?为什么?
答:指令周期:指取出并执行完一条指令所需的时间。
由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。
各种指令周期的比较;
3 画出指令周期的流程图,分别说明图中每个子周期的作用。
答:
指令周期流程图
取指周期: 取指令
间址周期: 取有效地址
执行周期: 取操作数(当指令为访存指令时)
中断周期: 保存程序断点
4 设CPU内有这些部件:PC、IR、SP、AC、MAR、MDR、CU。
(1)画出完成简洁寻址的取数指令“[email protected]”(将主存某地址单元的内容取至AC中)的数据流(从取指令开始)。
(2)画出中断周期的数据流。
答:CPU中的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。
下面采用单总线形式连接各部件,框图如下:
(1)[email protected]指令周期数据流程图(左侧):
(2)中断周期流程图如下(右侧):
6 存储器中有若干数据类型:指令代码、运算数据、堆栈数据、字符代码和BCD码,计算机如何识别这些代码?
答:指令代码是CPU在取指阶段从存储器中取出的信息。CPU在执行阶段从存储器中取出的可以是运算数据、字符代码或BCD码,具体是哪一个信息取决于指令的操作码。堆栈数据是根据堆栈指示器SP所指示的地址访存时所获得的的数据。
7 什么叫系统的并行性?粗粒度并行和细粒度并行有什么区别?
答:并行性:包含同时性和并发性。同时性指两个或两个以上的事件在同一时刻发生,并发性指两个或多个事件在同一时间段发生。即在同一时刻或同一时间段内完成两个或两个以上性质相同或性质不同的功能,只要在时间上存在相互重叠,就存在并行性。
粗粒度并行是指多个处理机上分别运行多个进程,由多台处理机合作完
成一个程序,一般算法实现。细粒度并行是指在处理机的指令级和操作级的并行性。
8 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中哪一个更
能提高处理器速度,为什么?
答:指令流水:指将一条指令的执行过程分为n个操作时间大致
相等的阶段,每个阶段由一个独立的功能部件来完成,这样n个部件可以同时执行n条指令的不同阶段,从而大大提高CPU的吞吐率。
指令二级流水和四级流水示意图如下:
二级指令流水示意图
四级指令流水示意图
四级流水更能提高处理机的速度
假设IF、ID、EX、WR每个阶段耗时为t,则连续执行n条指令
采用二级流水线时,耗时为:4t+(n-1)2t = (2n+2)t
采用四级流水线时,耗时为:4t+(n-1)t = (n+3)t
在n>1时,n+3<2n+2,可见四级流水线耗时比二级流水线耗时短,因此更能提高处理机速度。
9.当遇到什么情况时流水线将受阻?举例说明。
答:三种情况:
- 在指令重叠执行过程中,硬件资源满足不了指令重叠执行要求,发生资源冲突。如在同一时间,几条折叠执行的指令分别要取指令、取操作和存结果,都需要访存,就会发生访存冲突。
- 在程序相邻指令之间出现某种关联,如当一条指令需要用到当前指令的执行结果,而这些指令均在流水线中重叠执行,就可能引起数据相关。
- 当流水线遇到分支指令时,如一条指令要等前一条指令(或几条)指令作出转移方向的决定后,才能进入流水线时,便发生控制相关。
10 举例说明流水线中的几种数据相关。
答:
(1)写后读相关
(2)读后写相关
(3)写后写相关
11今有四级流水线,分别完成取指(IF)、译码并取数、执行、写结果4个步骤。假设完成各步骤的时间依次为90ns,90ns,60ns,45ns。
(1)流水线的时钟周期应取何值?
(2)若相邻的指令发生数据相关,那么第2条指令安排推迟多收时间才能不发生错误?
(3)若相邻两指令发生数据相关,为了不推迟第2条指令的执行,可采取什么措施?
答:
(1)90ns
(2)第二条指令的ID需要再上一条指令的WB结束以后执行,需延后2个时钟周期,即180ns。
(3)可采用数据旁路,通过专用的通路,不用等前一条指令写回寄存器,而直接让前一条指令的计算结果作为本条指令的数据输入,从而取消推迟。
12在五个功能段的流水线中,假设每段执行时间为10ns,8ns,10ns,10ns,和7ns。对于完成12条指令的流水线而言,其加速比为多少?该流水线的实际吞吐率为多少?
答:流水线的时钟周期应按各部操作的最大时间来考虑,即应取10ns。更具流水线时空图,第一条指令出结果需要5个时钟周期,当流水线满载时,每一个时钟周期可以出一个结果,即执行完一条指令。完成12条指令需要16个时钟周期,故实际吞吐率为:
12/(10ns*16)=0.75*10^8条指令/秒,对于本题五级流水线而言,处理12条指令所需的时钟周期数为T=5+(12-1)=16个,而非流水线处理12 条指令需要5*12=60个,故该流水线处理器的加速比为60/16=3.75.
13 为什么说超长指令字比超标量更能提高并行处理能力?
答:超长指令字(VLIW)技术和超标量技术都是采用多条指令在多个处理部件中并行处理的体系结构,在一个时钟周期内能流出多条指令。但超标量的指令来自同一标准的指令流,超长指令字则是由编译程序在编译时挖掘指令间潜在的并行性后,把多条能并行操作的指令组合成一条具有多个操作码字段的超长指令(指令字长可达几百位),由这条超长指令控制VLIW机中多个独立工作的功能部件,由每一个操作码字段控制一个功能部件,相当于同时执行多条指令。
14指令流水线和运算流水线在结构上有何共同之处?
答:指令流水线和运算流水线的共同点是由于相邻两段在执行不同的操作,因此在相邻两段之间必须设置锁存器或寄存器,以保证在一个周期内流水线的输出信号不便。
15 什么是中断?设计中断系统需考虑哪些主要问题?
答:中断: 指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
设计中断系统需解决的问题:
(1) 各中断源如何向CPU提出中断请求
(2) 当对个中断源同时提出中断请求时,中断系统如何确定优先响
应哪个中断源的请求
(3)CPU在什么条件、什么时候、以什么方式来响应中断
(4)CPU响应中断后如何保护现场
(5)CPU响应中断后,如何停止原程序的执行而转入中断服务程序
的入口地址
(6)中断处理结束后,CPU如何恢复现场,如何返回到原程序的间断处。
(7)在中断处理过程中又出现了新的中断请求,CPU该如何处理。
16计算机为了管理中断,在硬件上通常有哪些设置?各有何作用?对指令系统有何考虑?
答:计算机为了管理中断,在硬件上设有专门的处理中断的机构-中断系统。它通常包括:中断请求寄存器、中断优先级排队器、向量编码器、中断允许触发器、中断标记触发器、中断屏蔽触发器等。
功能:中断请求触发器:对中断源发来的一次性中断请求信号进行登记
中断优先级排队器:对同时提出的多个中断请求信号进行裁决,选出一个最紧迫的进行响应
向量编码器:向量中断时,用来产生向量地址
中断允许触发器:CpU中的中断总开关,完成开、关中断状态的设置
中断标记触发器:用来建立中断周期状态。INT=1,表示进入中断周期,即开始执行中断应指令
中断屏蔽触发器:对于可屏蔽的中断源进行开、关中断操作,可视为个中断源的中断分开关。
采用程序中断技术时,指令系统中往往有相关指令支撑,常见的指令有开中断、关中断、中断返回等。
17 在中断系统中,INTR、INT、EINT这3个触发器各有何作用?
答:INTR——中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为CPU查询中断及中断排队判优线路提供稳定的中断请求信号 。
EINT——中断允许触发器,CPU中的中断总开关。当EINT=1时,表示允许中断(开中断),当EINT=0时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置 。
INT——中断标记触发器,控制器时序系统中周期状态分配电路的一部分,表示中断周期标记。当INT=1时,进入中断周期,执行中断隐指令的操作。
18 什么是中断隐指令,有哪些功能?
答:中断隐指令: CPU响应中断之后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的
功能:
(1) 保存断点
( 2 ) 暂不允许中断
( 3 ) 引出中断服务程序
19中断系统中采用屏蔽技术有何作用?
答;
(1)在多重中断系统中,响应中断后不希望有其他级别的中断请求干扰,采用屏蔽技术,可屏蔽本级别和更低级的中断请求,使中断处理可靠进行
(2)改变中断处理的优先级
(3)有选择的封锁部分中断请求,使程序控制更灵活
20为实现多重中断,需要哪些硬件支持?
答:
- 设立必要的中断源,确定它们提出的中断请求的方式.
- 根据急迫程度的不同,规定好中断源的优先级别,以确定当几个中断源同时请求时,处理机能有一个先后响应次序.
- 当处理机响应中断后,需要把被中断程序的现场,断点保存起来,以便中断处理结束后能返回原程序.
- 中断服务程序设计.
(5) 恢复现场,返回原程序.
21 CPU在处理中断过程中,有几种方法找到中断服务程序的入口地址?举例说明。
答:
(1)硬件向量法
(2)软件查询法
22中断处理过程中为什么要中断判优?有几种实现方法?若想改变原定的优先顺序,可采取什么措施?
答:中断源的请求是随机的,在某一时刻可能有多个中断源提出请求,而CPU只能响应一个,故必须中断判优,以解决响应的优先次序。
中断判优有两种方法实现:硬件排队和软件排队。前者用组合逻辑电路实现,后者用程序优先级别(从高到低)顺序查询各中断源,以实现排队。欲想改变优先顺序,可采用屏蔽技术,重新设置屏蔽字,封锁级别高的请求源,开放级别低的请求源。
23中断处理过程中“保护现场”需完成哪些任务?如何实现?
答:中断处理过程中“保护现场”要完成保存程序的断点和通用寄存器及状态寄存器的内容,具体来说,可在中断服务程序的起始部分安排若干条指令,将寄存器的内容存到存储器中保存或用进栈指令将各存储器的内容推入堆栈保存,即进程序中断时间的“现场”保护起来。
24 现有A、B、C、D4个中断源,其优先级由高到低按A→B→C→D顺序排列。若中断服务程序的执行时间为20μs,根据下图所示时间轴给出的中断源请求中断的时刻,画出CPU执行程序的轨迹。
答: A、B、C、D的响优先级即处理优先级。 CPU执行程序的轨迹图如下:
25 设某机有5个中断源L0、L1、L2、L3、L4,按中断响应的优先次序由高到低排序为L0→L1→L2→L4,现要求中断处理次序改为L1→L4→L2→L0→L3,根据下面的格式,写出各中断源的屏蔽字。
答:各中断源屏蔽状态见下表 :
中断源 |
屏蔽字 |
|
|
|
|
0 |
1 |
2 |
3 |
4 |
|
I0 |
1 |
0 |
0 |
1 |
0 |
I1 |
1 |
1 |
1 |
1 |
1 |
I2 |
1 |
0 |
1 |
1 |
0 |
I3 |
0 |
0 |
0 |
1 |
0 |
I4 |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
表中:设屏蔽位=1,表示屏蔽;屏蔽位=0,表示中断开放。
中断处理示意图:
26 设某机配有A、B、C3台设备,其优先级按A→B→C降序排列,为改变中断处理次序,它们的中断屏蔽字设置如下:
设备 |
屏蔽字 |
A B C |
111 010 011 |
|
|
按下图所示时间轴给出的设备请求中断时刻,画出CPU执行程序的轨迹、设A、B、C中断服务程序的执行时间均为20μs
答: A、B、C设备的响应优先级为A最高、B次之、C最低,处理优先级为A最高、C次之、B最低。 CPU执行程序的轨迹图如下:
27设某机3个中断源,其优先级按1-2-3降序排列。假设中断处理时间均为r,在下图所示的时间内共发生5次中断请求,图中1代表一级中断源发出中断请求信号,其余类推,画出Cpu执行程序轨迹。
答:轨迹图如下:
28设某机有4个中断源1、2、3、4,其响应优先级按1-2-3-4降序排列,现要求中断处理次序改为4-1-3-2.根据下图给出的4个中断源的请求时刻,画出Cpu执行程序的轨迹。设每个中断源的中断服务程序时间均为20us。
答:执行轨迹图如下: