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

上传人:n**** 文档编号:57649106 上传时间:2018-10-23 格式:DOC 页数:76 大小:1.76MB
返回 下载 相关 举报
计算机组成与系统结构课后答案全_第1页
第1页 / 共76页
计算机组成与系统结构课后答案全_第2页
第2页 / 共76页
计算机组成与系统结构课后答案全_第3页
第3页 / 共76页
计算机组成与系统结构课后答案全_第4页
第4页 / 共76页
计算机组成与系统结构课后答案全_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《计算机组成与系统结构课后答案全》由会员分享,可在线阅读,更多相关《计算机组成与系统结构课后答案全(76页珍藏版)》请在金锄头文库上搜索。

1、第第 1 1 章章 习习 题题 答答 案案5若有两个基准测试程序 P1 和 P2 在机器 M1 和 M2 上运行,假定 M1 和 M2 的价格分别是 5000 元和 8000 元,下表给出了 P1 和 P2 在 M1 和 M2 上所花的时间和指令条数。M1M2程序指令条数执行时间(ms)指令条数执行时间(ms)P1200106100001501065000P230010334201036请回答下列问题: (1)对于 P1,哪台机器的速度快?快多少?对于 P2 呢? (2)在 M1 上执行 P1 和 P2 的速度分别是多少 MIPS?在 M2 上的执行速度又各是多少?从执行速 度来看,对于 P2

2、,哪台机器的速度快?快多少? (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 快

3、一倍。 (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 为:10800M/(200106)=40。 在 M2 上执行 P1 时的平均时钟周期数 CPI 为:51.2G/(150106)=40。 (4) 考虑运行 P1 时 M1 和 M2 的性价比,因为该用户主要关

4、心系统的响应时间,所以性价比中的性 能应考虑执行时间,其性能为执行时间的倒数。故性价比 R 为: R=1/(执行时间价格) R 越大说明性价比越高,也即,“执行时间价格”的值越小,则性价比越高。 因为 105000 58000,所以,M2 的性价比高。应选择 M2。 (5) P1 和 P2 需要同等考虑,性能有多种方式:执行时间总和、算术平均、几何平均。 若用算术平均方式,则:因为 (10+0.003)/25000 (5+0.006)/28000,所以 M2 的性价比高, 应选择 M2。 若用几何平均方式,则:因为 sqrt(100.003) 5000 2147483647 121474836

5、47U 2147483647 12147483647 (int) 2147483648U1 2(unsigned) 1 2无符号整数有符号整数无符号整数有符号整数无符号整数有符号整数有符号整数无符号整数11010 111000B = 000B111B (1) 000B(0)0111B (2311) 1000B (231)0111B (2311) 1000B (231)111B (1) 1110B (2)111B (2321) 1110B (2322)9以下是一个 C 语言程序,用来计算一个数组 a 中每个元素的和。当参数 len 为 0 时,返回值应该是 0,但是在机器上执行时,却发生了存储器

6、访问异常。请问这是什么原因造成的,并说明程序应该 如何修改。1float sum_elements(float a, unsigned len) 2 3int i; 4float result = 0; 5 6for(i = 0; i 24); int func2(unsigned word) return ( (int) word 24; 假设在一个假设在一个 32 位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑 移位,带符号整数采用算术移位。请填写下表,并说明函数移位,带符号整数采用算术移

7、位。请填写下表,并说明函数 func1 和和 func2 的功能。的功能。Wfunc1(w)func2(w)机器数机器数值值机器数机器数值值机器数机器数值值0000 007FH1270000 007FH+1270000 007FH+1270000 0080H1280000 0080H+128FFFF FF80H1280000 00FFH2550000 00FFH+255FFFF FFFFH10000 0100H2560000 0000H00000 0000H0函数函数 func1 的功能是把无符号数高的功能是把无符号数高 24 位清零(左移位清零(左移 24 位再逻辑右移位再逻辑右移 24 位

8、)位) ,结果一定是正的有符,结果一定是正的有符 号数;而函数号数;而函数 func2 的功能是把无符号数的高的功能是把无符号数的高 24 位都变成和第位都变成和第 25 位一样,因为左移位一样,因为左移 24 位后进行算术右位后进行算术右 移,高移,高 24 位补符号位(即第位补符号位(即第 25 位)位) 。4填写下表,注意对比无符号数和带符号整数的乘法结果,以及截断操作前、后的结果。填写下表,注意对比无符号数和带符号整数的乘法结果,以及截断操作前、后的结果。xyxy(截断前)(截断前)xy(截断后)(截断后) 模式模式 机器数机器数值值机器数机器数值值机器数机器数值值机器数机器数值值无符

9、号数无符号数11060102001100121004二进制补码二进制补码1102010+211110041004无符号数无符号数0011111700011171117二进制补码二进制补码001+1111111111111111无符号数无符号数11171117110001490011二进制补码二进制补码11111111000001+1001+15以下是两段以下是两段 C 语言代码,函数语言代码,函数 arith( )是直接用是直接用 C 语言写的,而语言写的,而 optarith( )是对是对 arith( )函数以某个确函数以某个确 定的定的 M 和和 N 编译生成的机器代码反编译生成的。根据

10、编译生成的机器代码反编译生成的。根据 optarith( ),可以推断函数,可以推断函数 arith( ) 中中 M 和和 N 的值各是多少?的值各是多少? #define M #define N int arith(int x, int y) int result = 0 ; result = x*M + y/N; return result; int optarith ( int x, int y) int t = x; x 2; return x+y;参考答案:参考答案: 可以看出可以看出 x*M 和和“int t = x; x 2;”两句对应,功能主要由第二句两句对应,功能主要由第二句

11、“y 右移右移 2 位位”实现,它实现了实现,它实现了 y 除以除以 4 的功能,因此的功能,因此 N 是是 4。而第一句。而第一句“if ( y 2=1 而而1/4=0,两者不等;调整后,两者不等;调整后 1+3=2,22=0,两者相等。,两者相等。思考:能否把思考:能否把 if ( y 0,则,则 q 0 = 1 商的数值部分为:商的数值部分为:00001。所以,。所以,X/Y原原=00001 (最高位为符号位最高位为符号位),余数为,余数为 0100。 (5) 将将 10 和和6 分别表示成补码形式为:分别表示成补码形式为:10 补补 = 0 1010 , 6 补补 = 1 1010,计

12、算过程如下:,计算过程如下: 先对被除数进行符号扩展,先对被除数进行符号扩展,10 补补=00000 01010,6 补补 = 0 0110余数寄存器余数寄存器 R 余数余数/商寄存器商寄存器 Q 说说 明明 0 0 0 0 0 0 1 0 1 0 开始开始 R0 = X+ 1 1 0 1 0 R1=X +Y 1 1 0 1 0 0 1 0 1 0 R1与与Y同号,则同号,则 q5 =1 1 0 1 0 0 1 0 1 0 1 2R1(R 和和 Q 同时左移,空出一位上商同时左移,空出一位上商 1) +0 0 1 1 0 R2 = 2R1+Y 1 1 0 1 0 1 0 1 0 1 R2与与Y

13、同号,则同号,则 q4= 1, 1 0 1 0 1 0 1 0 1 1 2R2(R 和和 Q 同时左移,空出一位上商同时左移,空出一位上商 1) + 0 0 1 1 0 R3 = 2R2 +-Y 1 1 0 1 1 0 1 0 1 1 R3与与Y同号,则同号,则 q3 = 1 1 0 1 1 0 1 0 1 1 1 2R3(R 和和 Q 同时左移,空出一位上商同时左移,空出一位上商 1) + 0 0 1 1 0 R4 = 2R3 +Y 1 1 1 0 0 1 0 1 1 1 R4与与Y同号,则同号,则 q 2 = 11 1 0 0 1 0 1 1 1 1 2R4 (R 和和 Q 同时左移,空出

14、一位上商同时左移,空出一位上商 0) + 0 0 1 1 0 R5= 2R4 +-Y 1 1 1 1 1 0 1 1 1 1 R5与与Y同号,则同号,则 q1= 1, 1 1 1 1 0 1 1 1 1 1 2R5 (R 和和 Q 同时左移,空出一位上商同时左移,空出一位上商 1) + 0 0 1 1 0 R6= 2R5 +Y 0 0 1 0 0 1 1 1 1 0 R6与与Y异号,则异号,则 q 0 = 0,Q 左移,空出一位上左移,空出一位上 商商 1 + 0 0 0 0 0 + 1 商为负数,末位加商为负数,末位加 1;余数不需要修正;余数不需要修正 0 0 1 0 0 1 1 1 1 1 所以,所以,X/Y 补补=11111,余数为,余数为 00100。 即:即:X/Y= 0001B = 1,余数为,余数为 0100B = 4 将各数代入公式将各数代入公式“除数除数商商+余数余数= 被除数被除数”进行验证,得:进行验证,得:(6)(1) +4= 10。10若一次加法需要若一次加法需要 1ns,一次移位需要,一次移位需要 0.5ns。请分别

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号