第一章
1.6 某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:
指令类型整数数据传送浮点分支
指令执行数量
450007500080001500
平均时钟周期数
1242
求该计算机的有效CPI、MIPS和程序执行时间。
解:(1)CPI =(45000×1+75000×2+8000×4+1500×2) / 129500=1.776(或
460)259(2)MIPS速率=f/ CPI =400/1.776 =225.225MIPS (或
5180MIPS)259(3)程序执行时间= (45000×1+75000×2+8000×4+1500×2)/400=575?s
1.9 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。具体数据如下表所示:
操作类型操作1操作2操作3操作4
程序中的数量(百万条指令)
10303515
改进前的执行时间
(周期)
220104
改进后的执行时间
(周期)
11531
(1)改进后,各类操作的加速比分别是多少?
(2)各类操作单独改进后,程序获得的加速比分别是多少?(3)4类操作均改进后,整个程序的加速比是多少?解:根据Amdahl定律Sn?1Fe(1?Fe)?Se可得
操作类型操作1操作2操作3操作4
各类操作的指令条数在程序中所占的比例Fi
11.13.38.9.7%
各类操作的加速比Si
21.333.334
各类操作单独改进后,程序获得的加速比
1.061.091.371.14
4类操作均改进后,整个程序的加速比:
1Sn??2.16Fi(1??Fi)??Si1.10第二章
变长编码,哈夫曼编码
第三章
3.12 有一条指令流水线如下所示:
150ns250ns3100ns4200ns(1)求连续输入10条指令的情况下,该流水线的实际吞吐率和效率。
(2)该流水线的瓶颈在哪一段?请采用两种不同的措施消除此瓶颈。对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?解:
(1)本题主要考察对各功能段用时不等的线性流水线的性能计算公式的掌握情况。
T串串???ti?(n?1)?tmaxi?1k?(50?50?100?200)?9?200?2200(ns)TP?nT串串k?1220(ns?1)E?TP???ti?1ik?TP?4005??45.45A1注意:对于公式不能死记硬背,需要充分理解,注意公式的适用条件。
(2)瓶颈在3、4段。
?
变成八级流水线(细分瓶颈段方法)
?Q?獮 k耲?獮 弳1 ?獮 弳耲 ?獮 弴耱 ?獮 弴4 ?獮 ?T串串???ti?1i?(n?1)?tmax?50?8?9?50?850(ns)TP?nkT串串?185(ns?1)E?TP??
??tii?1k?TP?40010??58.82?7重复设置瓶颈段方法
4-13-1123-24-34-44-2瑓条?? 弴? 弴? 弴? 弴? 弳? 弳? ??????????????????????????????????????????????楔敭 ?渰?? TP?nT串串?185(ns?1)E?400?10850?8?1017?58.82%3.13 有一个流水线由4段组成,其中每当流过第三段时,总要在该段循环一次,然后才能
流到第4段。如果每段经过一次所需的时间都是△t,问:
(1)当在流水线的输入端连续地每△t时间输入一个任务时,该流水线会发生什么情况?(2)此流水线的最大吞吐率为多少?如果每2△t输入一个任务,连续处理10个任务时,其实际吞吐率和效率是多少?
(3)当每段时间不变时,如何提高流水线的吞吐率?人连续处理10个任务时,其吞吐率提高多少?解:
(1)会发生流水线阻塞情况。
(2)当任务流过第三段时要在该段循环一次,相当于要占用第三段2△t时间,则该流水线可看成是具有瓶颈段的线性流水线,瓶颈段即第三段,所需时间为2△t。每2△t输入一个任务,连续处理10个任务的时空图如下:
瑓条?? ???????????????????????????????????????????????????????????楔敭 ? ńt则:
TPmax?T串串Tp?n12?t?23?tT串串?1023?tE?TP?5?t?50?54.35I2(3)重复设置部件。重复的部件可并联在流水线上,也可串联于流水线中。如下图所示:
t3_11t2t3_2t4t1t2t弳1 t弳2 t4t采用并联方式时的时空图如下:
Stage43_23_1211121232134123452435634567465785678968791078910810991010Time14?tTP?nT串串?1014??t57?t23?t?57??t吞吐率提高倍数=
10=1.64
3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第
3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或暂存于相应的流水线寄存器中。现在该流水线上计算率、加速比和效率。1△t2△t?(A?B),画出时空图,并计算其吞吐
iii?142△t3△t4△t5解:此题容易出的问题是忽略静态流水线的特点,当加法任务流入流水线后紧跟着启动乘法任务。正确的做法是当所有加法任务完成从流水线流出后再启动乘法任务,同时还应注意到流水线中的第三段所用时间为2△t。(1)任务分析
(2)画时空图
1112232345123456677344567 18△t(3)计算流水线性能吞吐率:Tp?n7?T18?t加速比:Sp?T串串T串串4?5?t?3?3t29??18?t18?4?5?t?3?3t29?5?18?t90效率: E?串串串串串串串串串串串串3.18 在CRAY-l机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为 64,则需多少拍才能得到全部结果。
V0←存储器(从存储器中取数:7拍)V2←V0+V1(向量加:3拍)V3←V2<A3(按(A3)左移:4拍)V5←V3∧V4(向量逻辑乘:2拍)