计算机体系结构课后习题.docx
- 文档编号:5845318
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:17
- 大小:297.80KB
计算机体系结构课后习题.docx
《计算机体系结构课后习题.docx》由会员分享,可在线阅读,更多相关《计算机体系结构课后习题.docx(17页珍藏版)》请在冰豆网上搜索。
计算机体系结构课后习题
第1章计算机系统结构的基本概念
1.1试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。
答:
如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。
确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。
选择存储芯片类型、微组装技术、线路设计等属于计算机实现。
计算机组成是计算机系统结构的逻辑实现。
计算机实现是计算机组成的物理实现。
一种体系结构可以有多种组成。
一种组成可以有多种实现。
1.2计算机系统设计中经常使用的4个定量原理是什么?
并说出它们的含义。
答:
(1)以经常性事件为重点。
在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。
(2)Amdahl定律。
加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
(3)CPU性能公式。
执行一个程序所需的CPU时间=IC×CPI×时钟周期时间。
(4)程序的局部性原理。
程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。
1.3计算机系统中有三个部件可以改进,这三个部件的部件加速比为:
部件加速比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.4假设某应用程序中有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区别不同指令集结构的主要因素是什么?
根据这个主要因素可将指令集结构分为哪3类?
答:
区别不同指令集结构的主要因素是CPU中用来存储操作数的存储单元。
据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。
2.2简述CISC指令集结构功能设计的主要目标。
从当前的计算机技术观点来看,CISC指令集结构的计算机有什么缺点?
答:
主要目标是增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。
缺点:
(1)CISC结构的指令集中,各种指令的使用频率相差悬殊。
(2)CISC结构指令的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
(3)CISC结构指令集的复杂性给VLSI设计增加了很大负担,不利于单片集成。
(4)CISC结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。
(5)在CISC结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。
2.3简述RISC指令集结构的设计原则。
答
(1)选取使用频率最高的指令,并补充一些最有用的指令;
(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行;(5)以简单有效的方式支持高级语言。
第3章流水线技术
3.1解释下列术语
流水线:
将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。
3.2指令的执行可采用顺序执行、重叠执行和流水线三种方式,它们的主要区别是什么?
各有何优缺点。
答:
(1)指令的顺序执行是指指令与指令之间顺序串行。
即上一条指令全部执行完后,才能开始执行下一条指令。
优点:
控制简单,节省设备。
缺点:
执行指令的速度慢,功能部件的利用率低。
(2)指令的重叠指令是在相邻的指令之间,让第k条指令与取第k+l条指令同时进行。
重叠执行不能加快单条指令的执行速度,但在硬件增加不多的情况下,可以加快相邻两条指令以及整段程序的执行速度。
与顺序方式相比,功能部件的利用率提高了,控制变复杂了。
(3)指令的流水执行是把一个指令的执行过程分解为若干个子过程,每个子过程由专门的功能部件来实现。
把多个处理过程在时间上错开,依次通过各功能段,每个子过程与其它的子过程并行进行。
依靠提高吞吐率来提高系统性能。
流水线中各段的时间应尽可能相等
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.7减少流水线分支延迟的静态方法有哪些?
答:
(1)预测分支失败:
沿失败的分支继续处理指令,就好象什么都没发生似的。
当确定分支是失败时,说明预测正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。
(2)预测分支成功:
当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。
(3)延迟分支:
主要思想是从逻辑上“延长”分支指令的执行时间。
把延迟分支看成是由原来的分支指令和若干个延迟槽构成。
不管分支是否成功,都要按顺序执行延迟槽中的指令。
3种方法的共同特点:
它们对分支的处理方法在程序的执行过程中始终是不变的。
它们要么总是预测分支成功,要么总是预测分支失败。
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次加法。
第4章指令级并行
4.1解释下列术语
指令级并行:
简称ILP。
是指指令之间存在的一种并行性,利用它,计算机可以并行执行两条或两条以上的指令。
指令调度:
通过在编译时让编译器重新组织指令顺序或通过硬件在执行时调整指令顺序来消除冲突。
指令的动态调度:
是指在保持数据流和异常行为的情况下,通过硬件对指令执行顺序进行重新安排,以提高流水线的利用率且减少停顿现象。
是由硬件在程序实际运行时实施的。
指令的静态调度:
是指依靠编译器对代码进行静态调度,以减少相关和冲突。
它不是在程序执行的过程中、而是在编译期间进行代码调度和优化的。
4.2简述Tomasulo算法的基本思想。
答:
核心思想是:
①记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减小到最少;②通过寄存器换名来消除WAR冲突和WAW冲突。
寄存器换名是通过保留站来实现,它保存等待流出和正在流出指令所需要的操作数。
基本思想:
只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中。
指令的执行结果也是直接送到等待数据的其它保留站中去。
因而,对于连续的寄存器写,只有最后一个才真正更新寄存器中的内容。
一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)。
4.4假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。
假设分支预测错误的开销为4个时钟周期,缓冲不命中的开销为3个时钟周期。
假设:
命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。
(1)求程序执行的CPI。
(2)相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快?
解:
(1)程序执行的CPI=没有分支的基本CPI
(1)+分支带来的额外开销
分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。
分支带来的额外开销=15%*(90%命中×10%预测错误×4+10%没命中×3)=0.099
所以,程序执行的CPI=1+0.099=1.099
(2)采用固定的2个时钟周期延迟的分支处理CPI=1+15%×2=1.3
由
(1)
(2)可知分支目标缓冲方法执行速度快。
4.5假设分支目标缓冲的命中率为90%,程序中无条件转移指令的比例为5%,没有无条件转移指令的程序CPI值为1。
假设分支目标缓冲中包含分支目标指令,允许无条件转移指令进入分支目标缓冲,则程序的CPI值为多少?
解:
设每条无条件转移指令的延迟为x,则有:
1+5%×x=1.1
x=2
当分支目标缓冲命中时,无条件转移指令的延迟为0。
所以程序的CPI=1+2×5%×(1-90%)=1.01
第5章存储层次
5.1解释下列术语
多级存储层次:
采用不同的技术实现的存储器,处在离CPU不同距离的层次上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层(离CPU更远的一层)存储器中内容的子集。
目标是达到离CPU最近的存储器的速度,最远的存储器的容量。
全相联映象:
主存中的任一块可以被放置到Cache中任意一个地方。
直接映象:
主存中的每一块只能被放置到Cache中唯一的一个地方。
组相联映象:
主存中的每一块可以放置到Cache中唯一的一组中任何一个地方(Cache分成若干组,每组由若干块构成)。
替换算法:
由于主存中的块比Cache中的块多,所以当要从主存中调一个块到Cache中时,会出现该块所映象到的一组(或一个)Cache块已全部被占用的情况。
这时,需要被迫腾出其中的某一块,以接纳新调入的块。
5.2简述“Cache—主存”层次与“主存—辅存”层次的区别。
答:
存储层次
比较项目
“Cache—主存”层次
“主存—辅存”层次
目的
为了弥补主存速度的不足
为了弥补主存容量的不足
存储管理的实现
全部由专用硬件实现
主要由软件实现
访问速度的比值
(第一级比第二级)
几比一
几万比一
典型的块(页)大小
几十个字节
几百到几千个字节
CPU对第二级的访问方式
可直接访问
均通过第一级
不命中时CPU是否切换
不切换
切换到其它进程
5.3地址映象方法有哪几种?
它们各有什么优缺点?
答:
(1)全相联映象。
实现查找的机制复杂,代价高,速度慢。
Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。
(2)直接映象。
实现查找的机制简单,速度快。
Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。
(3)组相联映象。
组相联是直接映象和全相联的一种折衷。
5.7在“Cache—主存”层次中,主存的更新算法有哪两种?
它们各有什么特点?
答:
(1)写直达法。
易于实现,而且下一级存储器中的数据总是最新的。
(2)写回法。
速度快,“写”操作能以Cache存储器的速度进行。
而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。
5.8组相联Cache的失效率比相同容量直接映象Cache的失效率低。
由此能否得出结论:
采用组相联一定能带来性能上的提高?
为什么?
答:
不一定。
因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。
5.9写出三级Cache的平均访问时间的公式。
解:
平均访存时间=命中时间+失效率×失效开销
只有第I层失效时才会访问第I+1。
设三级Cache的命中率分别为HL1、Hl2、HL3,失效率分别为Ml1、Ml2、ML3,第三级Cache的失效开销为PL3。
平均访问时间TA=HL1+Ml1{Hl2+Ml2(HL3+ML3×PL3)}
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解释以下术语
响应时间:
从用户键入命令开始,到得到结果所花的时间。
通道:
专门负责整个计算机系统输入/输出工作的专用处理机,能执行有限的一组输入输出指令。
通道流量:
指一个通道在数据传送期间,单位时间内能够传送的数据量。
虚拟DMA:
它允许DMA设备直接使用虚拟地址,并在DMA传送的过程中由硬件将虚拟地址转换为物理地址。
异步I/O:
允许进程在发出I/O请求后继续执行,直到该进程真正访问这些数据而它们又尚未就绪时,才被挂起。
6.2假设一台计算机的I/O处理时间占10%,当其CPU性能改进为原来的100倍,而I/O性能仅改进为原来的2倍时,系统总体性能会有什么样的变化?
解:
6.4同步总线和异步总线各有什么优缺点?
答:
(1)同步总线。
同步总线上所有设备通过统一的总线系统时钟进行同步。
同步总线成本低,因为它不需要设备之间互相确定时序的逻辑。
但是其缺点是总线操作必须以相同的速度运行。
(2)异步总线。
异步总线上的设备之间没有统一的系统时钟,设备自己内部定时。
设备之间的信息传送用总线发送器和接收器控制。
异步总线容易适应更广泛的设备类型,扩充总线时不用担心时钟时序和时钟同步问题。
但在传输时,异步总线需要额外的同步开销。
6.5计算机系统字长32位,包含两个选择通道和一个多路通道,每个选择通道上连接了两台磁盘机和两台磁带机,多路通道上连接了了两台行式打印机,两台读卡机,10台终端,假定各设备的传输率如下:
磁盘机:
800KBps
磁带机:
200KBps
行打机:
6.6KBps
读卡机:
1.2KBps
终端:
1KBps
计算该计算机系统的最大I/O数据传输率。
解:
本题要求计算通道的吞吐率,而且机器有一个多路通道,这就有两种可能:
字节多路通道和数组多路通道。
因为如果将多路通道组织成数组多路通道,某个时刻通道只能为一台设备传送数据,所以它的传输率是所有设备的传输率的最大值,而如果将它组织成字节多路通道,该通道的最大传输率就是所有设备的传输率之和。
所以在本题中,从性能上考虑,应组织成字节多路通道形式。
所以此类通道的最大传输率为:
(1)fBYTE=∑fi=f打印机传输率×2+f读卡机传输率×2+f终端传输率×10=25.6KBps(i=1..14)
(2)两个选择通道连接的设备相同,所以只要计算其中一个通道的传输率既可。
因为磁盘机的传输率大于磁带机。
所以此类通道的传输率为:
max{800,200}=800KBps
所以本系统的最大数据传输率为:
f系统=2×800+25.6=1625.6KBps。
6.6简述通道完成一次数据传输的主要过程。
答:
(1)在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。
(2)通道处理机执行CPU为它组织的通道程序,完成指定的数据I/O工作。
(3)通道程序结束后向CPU发中断请求。
CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对I/O中断请求进行处理。
6.7试比较三种通道的优缺点及适用场合。
答:
(1)字节多路通道。
一种简单的共享通道,主要为多台低速或中速的外围设备服务。
(2)数组多路通道。
适于为高速设备服务。
(3)选择通道。
为多台高速外围设备(如磁盘存储器等)服务的。
6.8一个字节多路通道连接有6台设备,它们的数据传输率如下表所示。
设备名称
D1
D2
D3
D4
D5
D6
数据传输速率(B/ms)
50
50
40
25
25
10
(1)计算该通道的实际工作流量。
(2)若通道的最大流量等于实际工作流量,求通道的工作周期Ts+TD。
解:
(1)通道实际流量为
(2)由于通道的最大流量等于实际工作流量,即有
可得,通道的工作周期Ts+TD=5μs。
6.9设某个字节多路通道的设备选择时间Ts为9.8μs,传送一个字节的数据所需的时间TD为0.2μs。
若某种低速外设每隔500μs发出一次传送请求,那么,该通道最多可连接多少台这种外设?
解:
字节多路通道的最大流量为:
字节多路通道的实际流量为:
其中,p为通道连接的外设台数,fi为外设i的数据传输速率。
因为连接的是同样的外设,所以f1=f2=…=fp=f,故有fbyte=pf。
通道流量匹配的要求有:
fmax-byte≥fbyte
即有:
;可得:
已知Ts=9.8μs,TD=0.2μs,1/f=500μs,可求出通道最多可连接的设备台数为:
6.10在有Cache的计算机系统中,进行I/O操作时,会产生哪些数据不一致问题?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机体系结构 课后 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)