计算机组成习题答案清华大学出版社.docx

上传人:b****1 文档编号:1351390 上传时间:2022-10-21 格式:DOCX 页数:186 大小:113.36KB
下载 相关 举报
计算机组成习题答案清华大学出版社.docx_第1页
第1页 / 共186页
计算机组成习题答案清华大学出版社.docx_第2页
第2页 / 共186页
计算机组成习题答案清华大学出版社.docx_第3页
第3页 / 共186页
计算机组成习题答案清华大学出版社.docx_第4页
第4页 / 共186页
计算机组成习题答案清华大学出版社.docx_第5页
第5页 / 共186页
点击查看更多>>
下载资源
资源描述

计算机组成习题答案清华大学出版社.docx

《计算机组成习题答案清华大学出版社.docx》由会员分享,可在线阅读,更多相关《计算机组成习题答案清华大学出版社.docx(186页珍藏版)》请在冰豆网上搜索。

计算机组成习题答案清华大学出版社.docx

计算机组成习题答案清华大学出版社

 

第1章习题答案

 

5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2

的价格分别是

5000元和8000

元,下表给出了

P1和P2在M1

和M2上所花的时间和指令条数。

程序

M1

M2

指令条数

执行时间(ms)

指令条数

执行时间(ms)

P1

×

6

10000

×

6

5000

20010

15010

P2

300×103

3

420×103

6

请回答下列问题:

(1)对于P1,哪台机器的速度快?

快多少?

对于

P2呢?

(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×106)=40。

(4)考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性

能应考虑执行时间,其性能为执行时间的倒数。

故性价比

R为:

R=1/(执行时间×价格)

R越大说明性价比越高,也即,“执行时间×价格”的值越小,则性价比越高。

因为10×5000>5×8000,所以,M2

的性价比高。

应选择

M2。

(5)P1和P2需要同等考虑,性能有多种方式:

执行时间总和、算术平均、几何平均。

若用算术平均方式,则:

因为(10+0.003)/2×5000>(5+0.006)/28000×,所以M2的性价比高,应选择M2。

若用几何平均方式,则:

因为sqrt(10×0.003)×5000

应选择M1。

 

6.若机器M1和M2具有相同的指令集,其时钟频率分别为1GHz和1.5GHz。

在指令集中有五种不同类

型的指令A~E。

下表给出了在M1和M2上每类指令的平均时钟周期数CPI。

机器ABCDE

M1

1

2

2

3

4

M2

2

2

4

5

6

请回答下列问题:

 

(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.2

12×=2.4

M2:

20%×(2+2+4+5+6)=0.2

19×=3.8

假设程序

P的指令条数为

N,则在

M1

M2

上的执行时间分别为:

M1:

2.4

×N×1/1G=2.4N(ns)

M2:

3.8

×N×1/1.5G=2.53N(ns)

M1执行P的速度更快,每条指令平均快

(思考:

如果说程序P在M1上执行比M2

错误的。

请问错在什么地方?

0.13ns,也即M1

上快(3.8–2.4)/3.8

比M2快0.13/2.53100%×≈5%。

100%=×36.8%,那么,这个结论显然是

 

7.假设同一套指令集用不同的方法设计了两种机器

的时钟周期为1.2ns。

某个程序P在机器M1

来说,哪台机器的执行速度更快?

快多少?

 

M1和上运行时的

 

M2。

机器M1CPI为4,在

 

的时钟周期为

M2上的CPI

 

0.8ns,机器M2

为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.2

×100%=25%。

 

8.假设某机器M的时钟频率为4GHz,用户程序

M上的执行时间是多少?

若在机器M上从程序

的CPU时间的百分比是多少?

参考答案:

P在M上的指令条数为8×109,其P开始启动到执行结束所需的时间是

 

CPI为1.25,则P在

4秒,则P占用

程序P在M上的执行时间为:

1.25×8×109×1/4G=2.5s,从启动P执行开始到执行结束的总时间为4秒,其中2.5秒是P在CPU上真正的执行时间,其他时间可能执行操作系统程序或其他用户程序。

程序P占用的CPU时间的百分比为:

2.5/4=62.5%。

 

9.假定某编译器对某段高级语言程序编译生成两种不同的指令序列

机器M上运行,目标指令序列中用到的指令类型有A、B、C

 

S1和S2,在时钟频率为

和D四类。

四类指令在M

 

500MHz的

上的CPI和

两个指令序列所用的各类指令条数如下表所示。

 

各指令的CPI

S1的指令条数

S2的指令条数

A

1

5

1

B

2

2

1

C

3

2

1

D

4

1

5

请问:

S1和

S2各有多少条指令?

CPI

各为多少?

所含的时钟周期数各为多少?

执行时间各为多少?

参考答案:

 

间为

 

S1有10条指令,

19/500M=38ns。

 

CPI

 

 

(5×1+2×2+2×3+1×4)/10=1.9,所含的时钟周期数为

 

10×1.9=19,执行时

S2有8条指令,CPI

间为26/500M=52ns。

(1×1+1×2+1×3+5×4)/8=3.25,所含的时钟周期数为

8×3.25=26,执行时

(注:

从上述结果来看,对于同一个高级语言源程序,在同一台机器上所生成的目标程序不同,其执行时间可能不同,而且,并不是指令条数少的目标程序执行时间就一定少。

 

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=(?

)8=(?

)16=(?

)8421

(3)(010110010110.0011)8421=(?

)10=(?

)2=(?

)16

(4)(4E.C)16=(?

)10=(?

)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.1001000

–0.1001:

1.1001000

1.0111000

+1.0:

溢出

溢出

–1.0:

溢出

1.0000000

+0.010100:

0.0101000

0.0101000

–0.010100:

1.0101000

1.1011000

+0:

0.0000000

0.0000000

–0:

1.0000000

0.0000000

 

5.假定机器数为8位(1位符号,7位数值),写出下列各二进制数的补码和移码表示。

+1001,–1001,+1,–1,+1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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