100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 计算机组成原理第一章作业 计算机组成原理第一章习题答案(作业).doc

计算机组成原理第一章作业 计算机组成原理第一章习题答案(作业).doc

时间:2019-07-12 13:08:42

相关推荐

计算机组成原理第一章作业 计算机组成原理第一章习题答案(作业).doc

第 1 章 习 题 答 案

2(4)程序的CPI和哪些因素有关?

参考答案:

程序CPI由程序中指令的组成和每条指令的CPI决定

程序中指令的组成由程序设计、编译器、ISA决定

每条指令的CPI由计算机组织(微体系结构)决定

3.假定你的朋友不太懂计算机,请用简单通俗的语言给你的朋友介绍计算机系统是如何工作的。

4.你对计算机系统的哪些部分最熟悉,哪些部分最不熟悉?最想进一步了解细节的是哪些部分的内容?

6.若机器M1和M2具有相同的指令集,其时钟频率分别为1GHz和1.5GHz。在指令集中有五种不同类型的指令A~E。下表给出了在M1和M2上每类指令的平均时钟周期数CPI。

机器

A

B

C

D

E

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.53 N (ns)

M1执行P的速度更快,每条指令平均快0.13ns,也即M1比M2快0.13/2.4×100%≈5%。

(问题:如果说程序P在M1上执行比M2上快 (3.8–2.4)/3.8×100% = 36.8%,那么,这个结论显然是错误的。请问错在什么地方?)

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.5 s,从启动P执行开始到执行结束的总时间为4秒,其中2.5秒是P在CPU上真正的执行时间,其他时间可能执行操作系统程序或其他用户程序。

程序P占用的CPU时间的百分比为:2.5/4 = 62.5%。

9.假定某编译器对某段高级语言程序编译生成两种不同的指令序列S1和S2,在时钟频率为500MHz的机器M上运行,目标指令序列中用到的指令类型有A、B、C和D四类。四类指令在M上的CPI和两个指令序列所用的各类指令条数如下表所示。

A

B

C

D

各指令的CPI

1

2

3

4

S1的指令条数

5

2

2

1

S2的指令条数

1

1

1

5

请问: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。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。