计算机体系结构课后习题原版答案张晨曦著汇编.docx

上传人:b****6 文档编号:7275832 上传时间:2023-01-22 格式:DOCX 页数:21 大小:327.55KB
下载 相关 举报
计算机体系结构课后习题原版答案张晨曦著汇编.docx_第1页
第1页 / 共21页
计算机体系结构课后习题原版答案张晨曦著汇编.docx_第2页
第2页 / 共21页
计算机体系结构课后习题原版答案张晨曦著汇编.docx_第3页
第3页 / 共21页
计算机体系结构课后习题原版答案张晨曦著汇编.docx_第4页
第4页 / 共21页
计算机体系结构课后习题原版答案张晨曦著汇编.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算机体系结构课后习题原版答案张晨曦著汇编.docx

《计算机体系结构课后习题原版答案张晨曦著汇编.docx》由会员分享,可在线阅读,更多相关《计算机体系结构课后习题原版答案张晨曦著汇编.docx(21页珍藏版)》请在冰豆网上搜索。

计算机体系结构课后习题原版答案张晨曦著汇编.docx

计算机体系结构课后习题原版答案张晨曦著汇编

第1章计算机系统结构的基本概念

1.1解释下列术语

计算机系统结构:

传统机器程序员所看到的计算机属性,即概念性结构与功能特性。

计算机组成:

计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。

计算机实现:

计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。

系统加速比:

对系统中某部分进行改进时,改进后系统性能提高的倍数。

Amdahl定律:

当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。

并行性:

计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。

只要在时间上相互重叠,就存在并行性。

它包括同时性与并发性两种含义。

1.2试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。

答:

如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。

确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。

选择存储芯片类型、微组装技术、线路设计等属于计算机实现。

计算机组成是计算机系统结构的逻辑实现。

计算机实现是计算机组成的物理实现。

一种体系结构可以有多种组成。

一种组成可以有多种实现。

1.4计算机系统设计中经常使用的4个定量原理是什么?

并说出它们的含义。

答:

(1)以经常性事件为重点。

在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。

(2)Amdahl定律。

加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。

(3)CPU性能公式。

执行一个程序所需的CPU时间=IC×CPI×时钟周期时间。

(4)程序的局部性原理。

程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。

1.6某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:

指令类型

指令执行数量

平均时钟周期数

整数

45000

1

数据传送

75000

2

浮点

8000

4

分支

1500

2

求该计算机的有效CPI、MIPS和程序执行时间。

解:

(1)CPI=(45000×1+75000×2+8000×4+1500×2)/129500=1.776

(2)MIPS速率=f/CPI=400/1.776=225.225MIPS

(3)程序执行时间=(45000×1+75000×2+8000×4+1500×2)/400=575s

1.7将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?

解由题可知:

可改进比例=40%=0.4部件加速比=10

根据Amdahl定律可知:

采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。

1.8计算机系统中有三个部件可以改进,这三个部件的部件加速比为:

部件加速比1=30;部件加速比2=20;部件加速比3=10

(1)如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10?

(2)如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?

解:

(1)在多个部件可改进情况下,Amdahl定理的扩展:

已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:

得F3=0.36,即部件3的可改进比例为36%。

(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:

(0.3+0.3+0.2)T=0.8T,不可改进部分的执行时间为0.2T。

已知3个部件改进后的加速比分别为S1=30,S2=20,S3=10,因此3个部件改进后的执行时间为:

改进后整个系统的执行时间为:

Tn=0.045T+0.2T=0.245T

那么系统中不可改进部分的执行时间在总执行时间中占的比例是:

1.9假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。

具体数据如下表所示:

操作类型

程序中的数量

(百万条指令)

改进前的执行时间

(周期)

改进后的执行时间

(周期)

操作1

10

2

1

操作2

30

20

15

操作3

35

10

3

操作4

15

4

1

(1)改进后,各类操作的加速比分别是多少?

(2)各类操作单独改进后,程序获得的加速比分别是多少?

(3)4类操作均改进后,整个程序的加速比是多少?

解:

根据Amdahl定律

可得

操作类型

各类操作的指令条数在程序中所占的比例Fi

各类操作的加速比Si

各类操作单独改进后,程序获得的加速比

操作1

11.1%

2

1.06

操作2

33.3%

1.33

1.09

操作3

38.9%

3.33

1.37

操作4

16.7%

4

1.14

4类操作均改进后,整个程序的加速比:

第2章指令集结构的分类

2.1解释下列术语

堆栈型机器:

CPU中存储操作数的单元是堆栈的机器。

累加器型机器:

CPU中存储操作数的单元是累加器的机器。

通用寄存器型机器:

CPU中存储操作数的单元是通用寄存器的机器。

 

2.2区别不同指令集结构的主要因素是什么?

根据这个主要因素可将指令集结构分为哪3类?

答:

区别不同指令集结构的主要因素是CPU中用来存储操作数的存储单元。

据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。

 

2.4指令集应满足哪几个基本要求?

答:

对指令集的基本要求是:

完整性、规整性、高效率和兼容性。

完整性是指在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够使用。

规整性主要包括对称性和均匀性。

对称性是指所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。

均匀性是指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。

高效率是指指令的执行速度快、使用频度高。

2.7简述RISC指令集结构的设计原则。

(1)选取使用频率最高的指令,并补充一些最有用的指令;

(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行;(5)以简单有效的方式支持高级语言。

2.10通常有哪几种指令格式,请简述其适用范围。

答:

(1)变长编码格式。

如果系统结构设计者感兴趣的是程序的目标代码大小,而不是性能,就可以采用变长编码格式。

(2)固定长度编码格式。

如果感兴趣的是性能,而不是程序的目标代码大小,则可以选择固定长度编码格式。

(3)混合型编码格式。

需要兼顾降低目标代码长度和降低译码复杂度时,可以采用混合型编码格式。

第3章流水线技术

3.1解释下列术语

流水线:

将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。

吞吐率:

在单位时间内流水线所完成的任务数量或输出结果的数量。

流水线的加速比:

使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。

数据相关:

考虑两条指令i和j,i在j的前面,如果下述条件之一成立,则称指令j与指令i数据相关:

(1)指令j使用指令i产生的结果;

(2)指令j与指令k数据相关,而指令k又与指令i数据相关。

数据冲突:

当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。

定向:

用来解决写后读冲突的。

在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。

如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。

链接技术:

具有先写后读相关的两条指令,在不出现功能部件冲突和Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。

分段开采:

当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。

3.3简述先行控制的基本思想。

答:

先行控制技术是把缓冲技术和预处理技术相结合。

缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。

预处理技术是指预取指令、对指令进行加工以及预取操作数等。

采用先行控制方式的处理机内部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间的工作。

这样不仅使它们都能独立地工作,充分忙碌而不用相互等待,而且使指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提高指令的执行速度和部件的效率。

这些缓冲站都按先进先出的方式工作,而且都是由一组若干个能快速访问的存储单元和相关的控制逻辑组成。

采用先行控制技术可以实现多条指令的重叠解释执行。

 

3.4设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为△t、△t和2△t。

分别求出下列各种情况下,连续执行N条指令所需的时间。

(1)顺序执行方式;

(2)只有“取指令”与“执行指令”重叠;

(3)“取指令”、“分析指令”与“执行指令”重叠。

解:

(1)每条指令的执行时间为:

△t+△t+2△t=4△t

连续执行N条指令所需的时间为:

4N△t

(2)连续执行N条指令所需的时间为:

4△t+3(N-1)△t=(3N+1)△t

(3)连续执行N条指令所需的时间为:

4△t+2(N-1)△t=(2N+2)△t

3.5简述流水线技术的特点。

答:

流水技术有以下特点:

(1)流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。

因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。

(2)流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。

(3)流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。

(4)流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。

(5)流水线需要有通过时间和排空时间。

在这两个时间段中,流水线都不是满负荷工作。

3.6解决流水线瓶颈问题有哪两种常用方法?

答:

细分瓶颈段与重复设置瓶颈段

3.10简述三种向量处理方式,它们对向量处理机的结构要求有何不同?

(1)横向处理方式:

若向量长度为N,则水平处理方式相当于执行N次循环。

若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。

(2)纵向处理方式:

将整个向量按相同的运算处理完毕之后,再去执行其他运算。

适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M型的运算流水线。

(3)纵横处理方式:

把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。

可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R型运算流水线。

3.11可采用哪些方法来提高向量处理机的性能?

答:

可采用多种方法:

(1)设置多个功能部件,使它们并行工作;

(2)采用链接技术,加快一串向量指令的执行;

(3)采用循环开采技术,加快循环的处理;

(4)采用多处理机系统,进一步提高性能。

3.12有一指令流水线如下所示

(1)求连续输入10条指令,该流水线的实际吞吐率和效率;

(2)该流水线的“瓶颈”在哪一段?

请采取两种不同的措施消除此“瓶颈”。

对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?

解:

(1)

(2)瓶颈在3、4段。

⏹变成八级流水线(细分)

⏹重复设置部件

3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。

如果每段经过一次所需要的时间都是

,问:

(1)当在流水线的输入端连续地每

时间输入任务时,该流水线会发生什么情况?

(2)此流水线的最大吞吐率为多少?

如果每

输入一个任务,连续处理10个任务时的实际吞吐率和效率是多少?

(3)当每段时间不变时,如何提高该流水线的吞吐率?

仍连续处理10个任务时,其吞吐率提高多少?

解:

(1)会发生流水线阻塞情况。

第1个任务

S1

S2

S3

S3

S4

第2个任务

S1

S2

stall

S3

S3

S4

第3个任务

S1

stall

S2

stall

S3

S3

S4

第4个任务

S1

stall

S2

stall

S3

S3

S4

(2)

(3)重复设置部件

吞吐率提高倍数=

=1.64

3.14有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或

暂存于相应的流水寄存器中。

现要在该流水线上计算,画出其时空图,并计算其吞吐率、加速比和效率。

解:

首先,应选择适合于流水线工作的算法。

对于本题,应先计算A1+B1、A2+B2、A3+B3和A4+B4;再计算(A1+B1)×(A2+B2)和(A3+B3)×(A4+B4);然后求总的结果。

其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。

由图可见,它在18个△t时间中,给出了7个结果。

所以吞吐率为:

如果不用流水线,由于一次求积需3△t,一次求和需5△t,则产生上述7个结果共需(4×5+3×3)△t=29△t。

所以加速比为:

该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:

 

3.15动态多功能流水线由6个功能段组成,如下图:

其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:

(1)画出时空图;

(2)计算实际的吞吐率、加速比和效率。

解:

机器一共要做10次乘法,4次加法。

3.18在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?

如果向量长度为64,则需多少拍才能得到全部结果?

V0←存储器(从存储器中取数:

7拍)

V2←V0+V1(向量加:

3拍)

V3←V2

4拍)

V5←V3∧V4(向量逻辑乘:

2拍)

解:

通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。

要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。

 

第4章指令级并行

4.1解释下列术语

指令级并行:

简称ILP。

是指指令之间存在的一种并行性,利用它,计算机可以并行执行两条或两条以上的指令。

指令调度:

通过在编译时让编译器重新组织指令顺序或通过硬件在执行时调整指令顺序来消除冲突。

指令的动态调度:

是指在保持数据流和异常行为的情况下,通过硬件对指令执行顺序进行重新安排,以提高流水线的利用率且减少停顿现象。

是由硬件在程序实际运行时实施的。

指令的静态调度:

是指依靠编译器对代码进行静态调度,以减少相关和冲突。

它不是在程序执行的过程中、而是在编译期间进行代码调度和优化的。

保留站:

在采用Tomasulo算法的MIPS处理器浮点部件中,在运算部件的入口设置的用来保存一条已经流出并等待到本功能部件执行的指令(相关信息)。

4.2简述Tomasulo算法的基本思想。

答:

核心思想是:

①记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减小到最少;②通过寄存器换名来消除WAR冲突和WAW冲突。

寄存器换名是通过保留站来实现,它保存等待流出和正在流出指令所需要的操作数。

基本思想:

只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中。

指令的执行结果也是直接送到等待数据的其它保留站中去。

因而,对于连续的寄存器写,只有最后一个才真正更新寄存器中的内容。

一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)。

 

第5章存储层次

5.1解释下列术语

失效开销:

CPU向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。

强制性失效:

当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache,这就是强制性失效。

容量失效:

如果程序在执行时,所需要的块不能全部调入Cache中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。

冲突失效:

在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。

2:

1Cache经验规则:

大小为N的直接映象Cache的失效率约等于大小为N/2的两路组相联Cache的实效率。

VictimCache:

位于Cache和存储器之间的又一级Cache,容量小,采用全相联策略。

用于存放由于失效而被丢弃(替换)的那些块。

每当失效发生时,在访问下一级存储器之前,先检查VictimCache中是否含有所需块。

非阻塞Cache:

Cache在等待预取数据返回时,还能继续提供指令和数据。

请求字优先:

调块时,首先向存储器请求CPU所要的请求字。

请求字一旦到达,就立即送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。

5.4降低Cache失效率有哪几种方法?

简述其基本思想。

答:

常用的降低Cache失效率的方法有下面几种:

(1)增加Cache块大小。

增加块大小利用了程序的空间局部性。

(2)增加Cache的容量。

(3)提高相联度,降低冲突失效。

(4)伪相联Cache,降低冲突失效。

当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。

如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。

如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。

如果这一块的标识匹配,则称发生了“伪命中”。

否则,就访问下一级存储器。

(5)硬件预取技术。

在处理器提出访问请求前预取指令和数据。

(6)由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。

(7)编译器优化,通过对软件的优化来降低失效率。

(8)“牺牲”Cache。

在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。

每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。

如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache调入Cache。

5.5简述减小Cache失效开销的几种方法。

答:

让读失效优先于写、写缓冲合并、请求字处理技术、非阻塞Cache或非锁定Cache技术、采用二级Cache。

5.6通过编译器对程序优化来改进Cache性能的方法有哪几种?

简述其基本思想。

答:

(1)数组合并。

通过提高空间局部性来减少失效次数。

有些程序同时用相同的索引来访问若干个数组的同一维,这些访问可能会相互干扰,导致冲突失效,可以将这些相互独立的数组合并成一个复合数组,使得一个Cache块中能包含全部所需元素。

(2)内外循环交换。

循环嵌套时,程序没有按数据在存储器中的顺序访问。

只要简单地交换内外循环,就能使程序按数据在存储器中的存储顺序进行访问。

(3)循环融合。

有些程序含有几部分独立的程序段,它们用相同的循环访问同样的数组,对相同的数据作不同的运算。

通过将它们融合成一个单一循环,能使读入Cache的数据被替换出去之前得到反复的使用。

(4)分块。

通过改进时间局部性来减少失效。

分块不是对数组的整行或整列进行访问,而是对子矩阵或块进行操作。

5.10假设对指令Cache的访问占全部访问的75%;而对数据Cache的访问占全部访问的25%。

Cache的命中时间为1个时钟周期,失效开销为50个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache的失效率为0.39%,32KB的数据Cache的失效率为4.82%,64KB的混合Cache的失效率为1.35%。

又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。

试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种Cache的失效率更低?

两种情况下平均访存时间各是多少?

解:

(1)根据题意,约75%的访存为取指令。

因此,分离Cache的总体失效率为:

(75%×0.15%)+(25%×3.77%)=1.055%;

容量为128KB的混合Cache的失效率略低一些,只有0.95%。

(2)平均访存时间公式可以分为指令访问和数据访问两部分:

平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+数据所占的百分比×(数据命中时间+数据失效率×失效开销)

所以,两种结构的平均访存时间分别为:

分离Cache的平均访存时间=75%×(1+0.15%×50)+25%×(1+3.77%×50)

=(75%×1.075)+(25%×2.885)=1.5275

混合Cache的平均访存时间=75%×(1+0.95%×50)+25%×(1+1+0.95%×50)

=(75%×1.475)+(25%×2.475)=1.725

因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。

分离Cache提供了两个端口,消除了结构相关。

 

第6章输入输出系统

6.1解释以下术语

可靠性:

指系统从某个初始参考点开始一直连续提供服务的能力,它通常用平均无故障时间来衡量。

可用性:

指系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。

可信性:

指服务的质量,即在多大程度上可以合理地认为服务是可靠的。

分离事务总线:

将总线事务分成请求和应答两部分。

在请求和应答之间的空闲时间内,总线可以供给其它的I/O使用。

采用这种技术的总线称为分离事务总线。

通道:

专门负责整个计算机系统输入/输出工作的专用处理机,能执行有限的一组输入输出指令。

6.2假设一台计算机的I/O处理时间占10%,当其CPU性能改进为原来的100倍,而I/O性能仅改进为原来的2倍时,系统总体

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1