ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:439.89KB ,
资源ID:10533614      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10533614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高教版课后习题答案.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高教版课后习题答案.docx

1、高教版课后习题答案第1章 计算机系统结构的基本概念1.6 某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:指令类型指令执行数量平均时钟周期数整数450001数据传送750002浮点80004分支15002求该计算机的有效CPI、MIPS和程序执行时间。解:(1)CPI (4500017500028000415002) / 1295001.776(2)MIPS速率f/ CPI 400/1.776 225.225MIPS(3)程序执行时间= (4500017500028000415002)400=575s 没有错误, 但是不严密,指令数量的单位是MIP

2、S. 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) 如果三个部件的可改进比例分别为

3、30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?解:(1)在多个部件可改进情况下,Amdahl定理的扩展:已知S130,S220,S310,Sn10,F10.3,F20.3,得:得F30.36,即部件3的可改进比例为36%。(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:(0.3+0.3+0.2)T = 0.8T,不可改进部分的执行时间为0.2T。已知3个部件改进后的加速比分别为S130,S220,S310,因此3个部件改进后的执行时间为: 改进后整个系统的执行时间为:Tn = 0.045T+0.2T = 0.245T那么

4、系统中不可改进部分的执行时间在总执行时间中占的比例是:1.9 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。具体数据如下表所示:操作类型程序中的数量(百万条指令)改进前的执行时间(周期)改进后的执行时间(周期)操作11021操作2302015操作335103操作41541(1)改进后,各类操作的加速比分别是多少?(2)各类操作单独改进后,程序获得的加速比分别是多少?(3)4类操作均改进后,整个程序的加速比是多少?解:根据Amdahl定律可得操作类型各类操作的指令条数在程序中所占的比例Fi各类操作的加速比Si各类操作单独改进后,程序获得的加速比操作111.1%21.06操作23

5、3.3%1.331.09操作338.9%3.331.37操作416.7%41.144类操作均改进后,整个程序的加速比:讨论:这道题答案我认为是错了。我的参考答案:算法一,用最原始的加速比公式:加速比 = 改进前执行时间/改进后执行时间 = (10*2+30*20+35*10+15*4)/ (10*1+30*15 + 35*3+15*1) = 1030/580 = 1.78算法二,部件比例。注意定义:部件比例的定义是 可改进的部分的执行时间在总的执行时间中所占的比例。因此操作类型各类操作的在总的执行时间中所占的比例Fi各类操作的加速比Si操作120/10302操作2600/1030 20/15操

6、作3350/1030 10/3操作4 60/1030 4/1加速比 = = 1.78第3章 流水线技术3.4 设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为t、t和2t 。分别求出下列各种情况下,连续执行N条指令所需的时间。(1)顺序执行方式;(2)只有“取指令”与“执行指令”重叠;(3)“取指令”、“分析指令”与“执行指令”重叠。解:(1)每条指令的执行时间为:tt2t4t连续执行N条指令所需的时间为:4Nt(2)连续执行N条指令所需的时间为:4t3(N-1)t(3N1)t(3)连续执行N条指令所需的时间为:4t2(N-1)t(2N2)t3.9列举出下面

7、循环中的所有相关,包括输出相关、反相关、真相关。for (i=2; i100; i=i+1) ai=bi+ai ;/* s1 */ ci+1=ai+di ; /* s2 */ ai-1=2*bi ; /* s3 */ bi+1=2*bi ;/* s4 */ 解:展开循环两次:ai = bi + ai ; /* s1 */ci+1 = ai + di ; /* s2 */ai-1 = 2 * bi ; /* s3 */bi+1 = 2 * bi ; /* s4 */ai+1 = bi+1 + ai+1 ; /* s1 */ci+2 = ai+1 + di+1 ; /* s2 */ai = 2 *

8、 bi+1 ; /* s3 */bi+2 = 2 * bi+1 ; /* s4 */输出相关:无反相关:无真相关:S1&S2由于循环引入的相关:S4&S4(真相关)、S1&S4(真相关)、S3&S4(真相关)、S1&S3(输出相关、反相关)、S2&S3(反相关)。3.12 有一指令流水线如下所示(1) 求连续输入10条指令,该流水线的实际吞吐率和效率;(2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?解:(1)(2)瓶颈在3、4段。 变成八级流水线(细分) 重复设置部件3.13有一个流水线由4

9、段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是,问:(1) 当在流水线的输入端连续地每时间输入任务时,该流水线会发生什么情况?(2) 此流水线的最大吞吐率为多少?如果每输入一个任务,连续处理10个任务时的实际吞吐率和效率是多少?(3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,其吞吐率提高多少?解:(1)会发生流水线阻塞情况。第1个任务S1S2S3S3S4第2个任务S1S2stallS3S3S4第3个任务S1stallS2stallS3S3S4第4个任务S1stallS2stallS3S3S4(2)(3)重复设置

10、部件吞吐率提高倍数1.643.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2t,其余各段的时间均为t,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。现要在该流水线上计算 ,画出其时空图,并计算其吞吐率、加速比和效率。解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A1B1、A2B2、A3B3和A4B4;再计算(A1B1) (A2B2)和(A3B3) (A4B4);然后求总的结果。其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。由图可见,它在18个t时间中,给出了7个结果。所以吞吐率为: 如果不用

11、流水线,由于一次求积需3t,一次求和需5t,则产生上述7个结果共需(45+33)t =29t。所以加速比为: 该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得: 3.15 动态多功能流水线由6个功能段组成,如下图:其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算: (1) 画出时空图;(2) 计算实际的吞吐率、加速比和效率。解:机器一共要做10次乘法,4次加法。3.16 在MIPS流水线上运行如下代码序列:LOOP: LW

12、R1,0(R2) DADDIU R1,R1,#1 SW R1, 0(R2) DADDIU R2,R2,#4 DSUB R4,R3,R2 BNEZ R4,LOOP 其中:R3的初值是R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。问:(1) 在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期?(2) 假设该流水线有正常的定向路径,请画出该指令序列执行的流水线

13、时空图。假设采用预测分支失败的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期?(3) 假设该流水线有正常的定向路径和一个单周期延迟分支,请对该循环中的指令进行调度,你可以重新组织指令的顺序,也可以修改指令的操作数,但是注意不能增加指令的条数。请画出该指令序列执行的流水线时空图,并计算执行上述循环所需要的时钟周期数。解:寄存器读写可以定向,无其他旁路硬件支持。排空流水线。第i次迭代(i0.98)开始周期:1(i17)总的时钟周期数:(9817)181684有正常定向路径,预测分支失败。第i次迭代(i0.98)开始周期:1(i10)总的时钟周期数:(981

14、0)11991有正常定向路径。单周期延迟分支。LOOP: LW R1,0(R2)DADDIU R2,R2,#4DADDIU R1,R1,#1DSUB R4,R3,R2BNEZ R4,LOOPSW R1,-4(R2)第i次迭代(i 0.98)开始周期:1(i 6 )总的时钟周期数:(986)105983.17 假设各种分支指令数占所有指令数的百分比如下:条件分支20%(其中的60%是分支成功的)跳转和调用5%现有一条段数为4的流水线,无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第三个时钟周期结束时才能够被解析出来。第一个流水段是完全独立于指令类型的,即所有类型的指令都必须经过第一

15、个流水段的处理。请问在没有任何控制相关的情况下,该流水线相对于存在上述控制相关情况下的加速比是多少?解:没有控制相关时流水线的平均CPI1存在控制相关时:由于无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第3个时钟周期结束时才能被解析出来。所以:(1)若使用排空流水线的策略,则对于条件分支,有两个额外的stall,对无条件分支,有一个额外的stall:CPI = 1+20%*2+5%*1 = 1.45 加速比S=CPI/1 = 1.45(2) 若使用预测分支成功策略,则对于不成功的条件分支,有两个额外的stall,对无条件分支和成功的条件分支,有一个额外的stall 1:CPI

16、= 1+20%*(60%*1+40%*2) +5%*1 = 1.33 加速比S=CPI/1 = 1.33(3)若使用预测分支失败策略,则对于成功的条件分支,有两个额外的stall;对无条件分支,有一个额外的stall;对不成功的条件分支,其目标地址已经由PC 值给出,不必等待,所以无延迟:CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29 加速比S=CPI/1 = 1.293.18 在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向

17、量长度为64,则需多少拍才能得到全部结果? V0存储器 (从存储器中取数:7拍) V2V0+V1 (向量加:3拍) V3V2A3 (按(A3)左移:4拍) V5V3V4 (向量逻辑乘:2拍)解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。3.19 某向量处理机有16个向量寄存器,其中V0V5中分别放有向量A、B、C、D、E、F,向量长度均为8,向量各元素均为浮点数;处理部件采用两条单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为

18、3拍。采用类似于CARY-1的链接技术,先计算(A+B)*C,在流水线不停流的情况下,接着计算(D+E)*F。(1) 求此链接流水线的通过时间?(设寄存器入、出各需1拍)(2) 假如每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此处理部件的实际吞吐率为多少MFLOPS?解:(1)我们在这里假设AB的中间结果放在V6中,(AB)C地最后结果放在V7中,DE地中间结果放在V8中,(DE)F的最后结果放在V9中。具体实现参考下图:通过时间应该为前者(AB)C)通过的时间:T通过= (1+2+1)+(1+3+1) =9(拍)(2)在做完(AB)C之后,作(CD)E就不需要通过时间了。V6AB

19、 V7V6C V8DE V9V8F第4章 指令级并行4.3 根据需要展开下面的循环并进行指令调度,直到没有任何延迟。指令的延迟如表4.3。LOOP: L.D F0,0(R1) MUL.D F0,F0,F2 L.D F4,0(R2) ADD.D F0,F0,F4 S.D F0,0(R2) DSUBI R1,R1,#8 DSUBI R2,R2,#8 BNEZ R1,LOOP解:将循环展开两次,进行指令调度,即可以消除延迟,代码如下:LOOP: L.D F0,0(R1)L.D F10,-8(R1)MUL.D F0,F0,F2MUL.D F10,F10,F2L.D F4,0(R2)L.D F14,-8

20、(R2)ADD.D F0,F0,F4ADD.D F10,F10,F14DSUBI R1,R1,16S.D 0(R2),F0DSUBI R2,R2,16BNEZ R1,LOOPS.D 8(R2),F104.4 假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为4个时钟周期,缓冲不命中的开销为3个时钟周期。假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。(1) 求程序执行的CPI。(2) 相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快?解:(1)程序执行的CPI = 没有分支的基本CPI(1) + 分支带来的额

21、外开销分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。分支带来的额外开销= 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值为多少?解:设每条

22、无条件转移指令的延迟为x,则有:15%x1.1 x2当分支目标缓冲命中时,无条件转移指令的延迟为0。所以 程序的CPI 1 2 5% (1 90%) 1.014.6 下面的一段MIPS汇编程序是计算高斯消去法中的关键一步,用于完成下面公式的计算:Y = a X + Y其浮点指令延迟如表4.3所示,整数指令均为1个时钟周期完成,浮点和整数部件均采用流水。整数操作之间以及与其它所有浮点操作之间的延迟为0,转移指令的延迟为0。X中的最后一个元素存放在存储器中的地址为DONE。FOO: L.D F2,0(R1) MUT.D F4,F2,F0 L.D F6,0(R2) ADD.D F6,F4,F6 S.

23、D F6,0R2 DADDIU R1,R1,#8 DADDIU R2,R2,#8 DSUBIU R3,R1,#DONE BNEZ R3, FOO (1) 对于标准的MIPS单流水线,上述循环计算一个Y值需要多少时间?其中有多少空转周期?(2) 对于标准的MIPS单流水线,将上述循环顺序展开4次,不进行任何指令调度,计算一个Y值平均需要多少时间?加速比是多少?其加速是如何获得的?(3) 对于标准的MIPS单流水线,将上述循环顺序展开4次,优化和调度指令,使循环处理时间达到最优,计算一个Y值平均需要多少时间?加速比是多少?(4) 对于采用如图4.8前瞻执行机制的MIPS处理器(只有一个整数部件)。

24、当循环第二次执行到BNEZ R3,FOO时,写出前面所有指令的状态,包括指令使用的保留站、指令起始节拍、执行节拍和写结果节拍,并写出处理器当前的状态。(5) 对于2路超标量的MIPS流水线,设有两个指令流出部件,可以流出任意组合的指令,系统中的功能部件数量不受限制。将上述循环展开4次,优化和调度指令,使循环处理时间达到最优。计算一个Y值平均需要多少时间?加速比是多少?(6) 对于如图4.13结构的超长指令字MIPS处理器,将上述循环展开4次,优化和调度指令,使循环处理时间达到最优。计算一个Y值平均需要多少时间?加速比是多少?解:(1) L.D F2, 0(R1) 1 Stall MUT.D F

25、4, F2, F0 2 L.D F6, 0(R2) 3 Stall Stall ADD.D F6, F4, F6 4 Stall StallS.D F6, 0R2 5 DADDIU R1, R1, #8 6 DADDIU R2, R2, #8 7DSUBIU R3, R1, #DONE 8 BNEZ R3, FOO 9所以,共有14 个时钟周期,其中有5 个空转周期。(2)循环顺序展开4 次,不进行任何指令调度,则指令15 及其间的stall 都是必要的,只是指令69 只需执行一次,因此,共有 10 4 4 44 个时钟周期,计算出4 个Y 值,所以计算一个Y 值需要11 个时钟周期,加速比为

26、:14/11 = 1.27 。加速主要是来自减少控制开销,即减少对R1、R2 的整数操作以及比较、分支指令而来的。(3)循环顺序展开4 次,优化和调度指令,如下: L.D F2, 0(R1) L.D F8, 8(R1) L.D F14, 16(R1) L.D F20, 24(R1) MUT.D F4, F2, F0 MUT.D F10, F8, F0 MUT.D F16, F14, F0 MUT.D F22, F20, F0 L.D F6, 0(R2) L.D F12, 8(R2) L.D F18, 16(R2) L.D F24, 24(R2) ADD.D F6, F4, F6 ADD.D F

27、12, F10, F12 ADD.D F18, F16, F18 ADD.D F24, F22, F24 S.D F6, 0R2 S.D F12, 8R2 S.D F18, 16R2 S.D F24, 24R2 DADDIU R1, R1, #32 DADDIU R2, R2, #32 DSUBIU R3, R1, #DONE BNEZ R3, FOO 共用了24 个时钟周期,则计算一个Y 值平均需要 24/4 = 6 个时钟周期,加速比:14/6 = 2.33(4)指令指令执行时钟流出执行写结果确认L.D F2, 0(R1)1234MUL.D F4, F2, F02456L.D F6, 0(

28、R2)3467ADD.D F6, F4, F648910S.D F6, 0(R2)5111213DADDIU R1, R1, #8678DADDIU R2, R2, #8789DSUBIU R3,R1,#DONE8910BNEZ R3, FOO910L.D F2, 0(R1)10111314MUL.D F4, F2, F011131415L.D F6, 0(R2)12131516ADD.D F6, F4, F613171819S.D F6, 0(R2)14202122DADDIU R1, R1, #8151617DADDIU R2, R2, #8161718DSUBIU R3,R1,#DONE171819BNEZ R3, FOO18名称保留站BusyOpVjVkQjQkDestAAdd1yesADD.DRegsF4RegsF6 Add2noAd

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

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