计算机组成与系统结构课后答案免费版全清华大学出版社袁春风主编Word下载.docx
《计算机组成与系统结构课后答案免费版全清华大学出版社袁春风主编Word下载.docx》由会员分享,可在线阅读,更多相关《计算机组成与系统结构课后答案免费版全清华大学出版社袁春风主编Word下载.docx(96页珍藏版)》请在冰豆网上搜索。
(2)在M1上执行P1和P2的速度分别是多少MIPS?
在M2上的执行速度又各是多少?
从执行速度来看,对于P2,哪台机器的速度快?
(3)假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少?
(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,
该用户需要大批购进机器时,应该选择M1还是M2?
为什么?
(提示:
从性价比上考虑)
(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时
间,那么,应该选择M1还是M2?
参考答案:
(1)对于P1,M2比M1快一倍;
对于P2,M1比M2快一倍。
(2)对于M1,P1的速度为:
200M/10=20MIPS;
P2为300k/0.003=100MIPS。
对于M2,P1的速度为:
150M/5=30MIPS;
P2为420k/0.006=70MIPS。
从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:
10×
800M/(200×
106)=40。
在M2上执行P1时的平均时钟周期数CPI为:
5×
1.2G/(150×
(4)考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能应考虑执行时间,其性能为执行时间的倒数。
故性价比R为:
R=1/(执行时间×
价格)
R越大说明性价比越高,也即,“执行时间×
价格”的值越小,则性价比越高。
因为10×
5000>
5×
8000,所以,M2的性价比高。
应选择M2。
(5)P1和P2需要同等考虑,性能有多种方式:
执行时间总和、算术平均、几何平均。
若用算术平均方式,则:
因为(10+0.003)/2×
(5+0.006)/28×
000,所以M2的性价比高,应选择M2。
若用几何平均方式,则:
因为sqrt(10×
0.003)×
5000<
sqrt(50×
.006)×
8000,所以M1的性价比高,应选择M1。
6.若机器M1和M2具有相同的指令集,其时钟频率分别为1GHz和1.5GHz。
在指令集中有五种不同类
型的指令A~E。
下表给出了在M1和M2上每类指令的平均时钟周期数CPI。
机器
A
B
C
D
E
1
2
4
5
(1)M1和M2的峰值MIPS各是多少?
(2)假定某程序P的指令序列中,五类指令具有完全相同的指令条数,则程序P在M1和M2上运
行时,哪台机器更快?
在M1和M2上执行程序P时的平均时钟周期数CPI各是多少?
参考答案:
(1)M1上可以选择一段都是A类指令组成的程序,其峰值MIPS为1000MIPS。
M2上可以选择一段A和B类指令组成的程序,其峰值MIPS为1500/2=750MIPS。
(2)5类指令具有完全相同的指令条数,所以各占20%。
在M1和M2上执行程序P时的平均时钟周期数CPI分别为:
M1:
20%×
(1+2+2+3+4)=0.212×
=2.4
M2:
(2+2+4+5+6)=0.219×
=3.8假设程序P的指令条数为N,则在M1和M2上的执行时间分别为:
2.4×
N×
1/1G=2.4N(ns)
3.8×
N×
1/1.5G=2.53N(ns)
M1执行P的速度更快,每条指令平均快0.13ns,也即M1比M2快0.13/2.5310×
0%≈5%。
(思考:
如果说程序P在M1上执行比M2上快(3.8–2.4)/3.81×
00%=36.8%,那么,这个结论显然是错误的。
请问错在什么地方?
)
7.假设同一套指令集用不同的方法设计了两种机器M1和M2。
机器M1的时钟周期为0.8ns,机器M2
的时钟周期为1.2ns。
某个程序P在机器M1上运行时的CPI为4,在M2上的CPI为2。
对于程序P来说,哪台机器的执行速度更快?
假设程序P的指令条数为N,则在M1和M2上的执行时间分别为:
M1:
4N×
0.8=3.2N(ns)
M2:
2N×
1.2=2.4N(ns)
所以,M2执行P的速度更快,每条指令平均快0.8ns,比M1快0.8/3.21×
00%=25%。
8.假设某机器M的时钟频率为4GHz,用户程序P在M上的指令条数为8×
109,其CPI为1.25,则P在M上的执行时间是多少?
若在机器M上从程序P开始启动到执行结束所需的时间是4秒,则P占用的CPU时间的百分比是多少?
程序P在M上的执行时间为:
1.25×
8×
109×
1/4G=2.5s,从启动P执行开始到执行结束的总时间为4秒,其中2.5秒是P在CPU上真正的执行时间,其他时间可能执行操作系统程序或其他用户程序。
程序P占用的CPU时间的百分比为:
2.5/4=62.5%。
9.假定某编译器对某段高级语言程序编译生成两种不同的指令序列S1和S2,在时钟频率为500MHz的
机器M上运行,目标指令序列中用到的指令类型有A、B、C和D四类。
四类指令在M上的CPI和
两个指令序列所用的各类指令条数如下表所示。
各指令的CPI
S1的指令条数
S2的指令条数
请问:
S1和S2各有多少条指令?
CPI各为多少?
所含的时钟周期数各为多少?
执行时间各为多少?
S1有10条指令,CPI为(5×
1+2×
2+2×
3+1×
4)/10=1.9,所含的时钟周期数为10×
1.9=19,执行时间为19/500M=38ns。
S2有8条指令,CPI为(1×
1+1×
2+1×
3+5×
4)/8=3.25,所含的时钟周期数为8×
3.25=26,执行时间为26/500M=52ns。
(注:
从上述结果来看,对于同一个高级语言源程序,在同一台机器上所生成的目标程序不同,其执行时间可能不同,而且,并不是指令条数少的目标程序执行时间就一定少。
10.假定机器M的时钟频率为1.2GHz,某程序P在机器M上的执行时间为12秒钟。
对P优化时,将其所有的乘4指令都换成了一条左移2位的指令,得到优化后的程序P'
。
已知在M上乘法指令的CPI为5,左移指令的CPI为2,P的执行时间是P'
执行时间的1.2倍,则P中有多少条乘法指令被替换成了左移指令被执行?
显然,P'
的执行时间为10秒,因此,P比P'
多花了2秒钟,因此,执行时被换成左移指令的乘法指令的条数为1.2G×
2/(5–2)=800M。
第二章习题答案
3.实现下列各数的转换。
(1)(25.8125)10=(?
)2=(?
)8=(?
)16
(2)(101101.011)2=(?
)10=(?
)16=(?
)8421
(3)(010110010110.0011)8421=(?
)2=(?
(4)(4E.C)16=(?
)2参考答案:
(1)(25.8125)10=(11001.1101)2=(31.64)8=(19.D)16
(2)(101101.011)2=(45.375)10=(55.3)8=(2D.6)16=(01000101.001101110101)8421
(3)(010110010110.0011)8421=(596.3)10=(1001010100.01001100110011⋯)2=(254.4CCC⋯)16
(4)(4E.C)16=(78.75)10=(01001110.11)2
4.假定机器数为8位(1位符号,7位数值),
写出下列各二进制数的原码和补码表示。
+0.1001,–0.1001,
+1.0,–1.0,+0.010100,
–0.010100,+0,–0
原码
补码
+0.1001:
0.1001000
–0.1001:
1.1001000
1.0111000
+1.0:
溢出
–1.0:
1.0000000
+0.010100:
0.0101000
–0.010100:
1.0101000
1.1011000
+0:
0.0000000
–0:
5.假定机器数为8位(1位符号,7位数值),写出下列各二进制数的补码和移码表示。
+1001,–1001,+1,
–1,+10100,–10100,+0,–0
移码
+1001:
10001001
00001001
–1001:
01110111
11110111
+1:
10000001
00000001
–1:
011111111
11111111
+10100:
10010100
00010100
–10100:
01101100
11101100
10000000
00000000
已知[x]补,求x
1)[x]补=1.1100111
2)
[x]补=10000000
3)[x]补=0.1010010
4)
[x]补=11010011
(1)[x]补=1.1100111
x=
–0.0011001B
(2)[x]补=10000000
–10000000B=–128
(3)[x]补=0.1010010