文档库

最新最全的文档下载
当前位置:文档库 > 计算机组成与系统结构 答案

计算机组成与系统结构 答案

第一章计算机系统概论

2.简单回答下列问题。(参考答案略)

(1)冯·诺依曼计算机由哪几部分组成?各部分的功能是什么?采用什么工作方式?

(2)摩尔定律的主要含义是什么?

(3)计算机系统的层次结构如何划分?计算机系统的用户可分哪几类?每类用户工作

在哪个层次?

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

(5)为什么说性能指标MIPS不能很好地反映计算机的性能?

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

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

5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花时间和指令条数。

M1 M2 程序

指令条数执行时间(ms) 指令条数执行时间(ms) P1 200x10610 000 150 x106 5000

x103 6

x103 3 420

P2 300

请回答下列问题:

(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为:10x800M/(200x106)=40

在M2上执行P1时的平均时钟周期数CPI为:5x1.2G/(150x106)=40

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

以,性价比中的性能考虑执行时间,其性能为执行时间的倒数。故性价比R为:

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

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

因为10x5000 > 5x8000,所以,M2的性价比高。应选择M2。

(5) P1和P2需要同等考虑,性能有多种方式:执行时间总和、算术平均、几何平均。

若用算术平均方式,则:因为,(10+0.003)/2x5000 > (5+0.006)/2x8000,

所以,M2的性价比高。应选择M2。

若用几何平均方式,则:因为,sqrt(10x0.003)x5000 < sqrt(5x0.006)x8000,

所以,M1的性价比高,应选择M1。

6.若机器M1和M2具有相同的指令集,其时钟频率分别为1GHz和1.5GHz。在指令集中有5种不同类型的指令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的指令序列中,5类指令具有完全相同的指令条数,则程序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% x (1+2+2+3+4)= 0.2 x 12 = 2.4

M2:20% x (2+2+4+5+6)= 0.2 x 19 = 3.8

假设程序P的指令条数为N,则在M1和M2上的执行时间分别为:

M1:2.4 x N x 1/1G = 2.4N (ns)

M2:3.8 x N x 1/1.5G = 2.53 N (ns)

所以,M1执行P的速度更快,每条指令平均快0.13ns。

7.假设同一套指令集用不同的方法设计了两种机器M1和M2。机器M1的时钟周期为0.8ns,机器M2的时钟周期为1.2ns。某个程序P在机器M1上运行时的CPI为4,在M2上的

CPI为2。对于程序P来说,哪台机器的执行速度更快?快多少?

参考答案:假设程序P的指令条数为N,则在M1和M2上的执行时间分别为:

M1:4 N x 0.8 = 3.2N (ns)

M2:2 N x 1.2 = 2.4 N (ns)

所以,M2执行P的速度更快,每条指令平均快0.8ns。

8.假设某机器M的时钟频率为4GHz,用户程序P在M上的指令条数为8x109,其CPI 为1.25,则P在M上的执行时间是多少?若在机器M上从程序P开始启动到执行结束

所需的时间是4秒,则P占用的CPU时间的百分比是多少?

参考答案:程序P在M上的执行时间为:1.25 x 8 x 109 x 1/4G = 2.5 s

从启动P执行开始到执行结束的总时间为4秒,其中2.5秒是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的指令条数 2 2 2 4

S2的指令条数 4 1 2 1

请问:S1和S2各有多少条指令?CPI各为多少?所含的时钟周期数各为多少?执行

时间各为多少?

参考答案:S1和S2的指令条数分别为:10和8

S1和S2的CPI分别为:

S1:1x2/10+2x2/10+3x2/10+4x4/10=28/10=2.8

S2:1x4/8+2x1/8+3x2/8+4x1/8=16/8=2

S1和S2所含的时钟周期数分别为:

S1:28;S2:16

S1和S2的执行时间分别为:

S1:28x1/500M = 56ns;S2:16x1/500M = 32ns

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.2Gx2/(5-2) = 800M