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和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10?
如果三个部件的可改进比例分别为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类操作均改进后,整个程序的加速比
[例1-1] 某一计算机用于商业外贸的事务处理,有大量的字符串处理操作。由于这种商务处理很普遍,有较大的市场,故而设计人员决定在下一代计算机的CPU中加入字符串操作的功能。经测试应用软件调查发现,字符串操作的使用占整个程序运行时间的50%。而增加此功能如用软件(如微程序)实现,则快5倍,增加CPU成本1/5倍;如果用硬件实现,则快100倍,CPU成本增加到5倍。问设计人员提出增加此功能是否恰当?如恰当则此功能应该用软件实现还是用硬件实现?设CPU成本占整机成本的1/3。
解: 首先来计算机器在两种情况下提高的性能和成本性能比。
设: S为CPU未增加字符串功能时的CPU平均速度,Told为此时运行程序的时间,Tnew为增加字符串功能后程序运行的时间,则
从上面的计算分析看到增加字符串操作功能提高了整机的性能,两种方法均提高性能,且程度相近。但用硬件实现时成本性能比增加了0.18倍,而用软件实现时成本性能比却下降了0.36倍。
3.9列举出下面循环中的所有相关,包括输出相关、反相关、真相关。
for (i=2; i<100; i=i+1)
a[i]=b[i]+a[i];/* s1 */
c[i+1]=a[i]+d[i]; /* s2 */
a[i-1]=2*b[i]; /* s3 */
b[i+1]=2*b[i];/* s4 */
解:展开循环两次:
a[i] = b[i] + a[i]; /* s1 */
c[i+1] = a[i] + d[i]; /* s2 */
a[