计算机组成原理作业

上传人:平*** 文档编号:9531950 上传时间:2017-10-03 格式:DOCX 页数:27 大小:631KB
返回 下载 相关 举报
计算机组成原理作业_第1页
第1页 / 共27页
计算机组成原理作业_第2页
第2页 / 共27页
计算机组成原理作业_第3页
第3页 / 共27页
计算机组成原理作业_第4页
第4页 / 共27页
计算机组成原理作业_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《计算机组成原理作业》由会员分享,可在线阅读,更多相关《计算机组成原理作业(27页珍藏版)》请在金锄头文库上搜索。

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

2、于 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 快

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/(20010 6)=40。在 M2 上执行 P1 时的平均时钟周期数 CPI 为:51.2G/(15010 6)=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 24);int func2(unsigned word)

5、return ( (int) word 24;假设在一个 32 位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑移位,带符号整数采用算术移位。请填写下表,并说明函数 func1 和func2 的功能。W func1(w) func2(w)机器数 值 机器数 值 机器数 值0000 007FH 127 0000 007FH +127 0000 007FH +1270000 0080H 128 0000 0080H +128 FFFF FF80H 1280000 00FFH 255 0000 00FFH +255 FFFF FFFFH 10000 0100H 256 00

6、00 0000H 0 0000 0000H 0函数 func1 的功能是把无符号数高 24 位清零(左移 24 位再逻辑右移 24 位) ,结果一定是正的有符号数;而函数 func2 的功能是把无符号数的高 24 位都变成和第 25 位一样,因为左移 24 位后进行算术右移,高 24 位补符号位(即第 25 位) 。5以下是两段 C 语言代码,函数 arith( )是直接用 C 语言写的,而 optarith( )是对 arith( )函数以某个确定的 M 和 N 编译生成的机器代码反编译生成的。根据 optarith( ),可以推断函数 arith( ) 中 M 和 N 的值各是多少?#de

7、fine 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;”两句对应,功能主要由第二句“y 右移 2 位”实现,它实现了 y 除以 4 的功能,因此 N 是 4。而第一句“ if ( y 2=1 而1/4=0,两者不等;调整后 1+3=2,22=0,两者相等。7用 SN74181 和 SN74182 器件设

8、计一个 16 位先行进位补码加/减运算器,画出运算器的逻辑框图,并给出零标志、进位标志、溢出标志、符号标志的生成电路。参考答案(图略):逻辑框图参见教材中的图 3.15 和图 3.16,将两个图结合起来即可,也即只要将图 3.15中的 B 输入端的每一位 Bi 取反,得到 Bi,和原码 Bi 一起送到一个二路选择器,由进位C0 作为选择控制信号。当 C0 为 1 时做减法,此时,选择将 Bi 作为 SN74181 的 B 输入端;否则,当 C0 为 1 时,做加法。零标志 ZF、进位标志 CF、溢出标志 OF、符号标志 SF 的逻辑电路根据以下逻辑表达式画出即可。ZF=F15+F14+F13+

9、F12+F11+F10+F9+F8+F7+F6+F5+F4+F3+F2+F1+F0CF=C16OF= C0(A 15B15F15 + A15B15F15)+ C 0(A 15B15F15 + A15B15F15)SF= F159已知 x = 10,y = 6,采用 6 位机器数表示。请按如下要求计算,并把结果还原成真值。(1) 求x+y 补 ,xy 补 。(2) 用原码一位乘法计算xy 原 。(4) 用不恢复余数法计算x/y 原 的商和余数。参考答案:10补 = 001010 6补 = 111010 6补 = 000110 10原 = 001010 6原 = 100110 (1) 10+( 6

10、)补 = 10补 + 6补 = 001010+111010 = 000100 (+4) 10(6)补 = 10补 + (6)补 = 001010+000110 = 010000 (+16) (2) 先采用无符号数乘法计算 001010 000110 的乘积,原码一位乘法过程(前面两个 0 省略)如下:C P Y 说明 0 0 0 0 0 0 1 1 0 P0 = 0+ 0 0 0 0 y4 = 0,+00 0 0 0 0 C, P 和 Y 同时右移一位0 0 0 0 0 0 0 1 1 得 P1+ 1 0 1 0 y3 = 1,+X0 1 0 1 0 C, P 和 Y 同时右移一位0 0 1

11、0 1 0 0 0 1 得 P2+ 1 0 1 0 y2 = 1,+X0 1 1 1 1 0 0 0 0 C, P 和 Y 同时右移一位0 0 1 1 1 1 0 0 0 得 P3 + 0 0 0 0 y1 = 0,+00 0 1 1 1 C, P 和 Y 同时右移一位0 0 0 1 1 1 1 0 0 得 P4若两个 6 位数相乘的话,则还要右移两次,得 000000 111100符号位为:0 1 = 1,因此,XY 原 = 1000 0011 1100即 X Y = 11 1100B = 60(4) 因为除法计算是 2n 位数除 n 位数,所以6 原 =0110,10 原 =0000 10

12、10,6 补=1010,商的符号位:0 1 = 1,运算过程(前面两个 0 省略)如下: 余数寄存器 R 余数/商寄存器 Q 说 明0 0 0 0 1 0 1 0 开始 R0 = X+ 1 0 1 0 R1 = XY1 0 1 0 1 0 1 0 0 R1 0,则 q 0 = 1商的数值部分为:00001。所以,X/Y 原 =00001 (最高位为符号位),余数为 0100。13假设浮点数格式为:阶码是 4 位移码,偏置常数为 8,尾数是 6 位补码(采用双符号位) ,用浮点运算规则分别计算在不采用任何附加位和采用 2 位附加位(保护位、舍入位)两种情况下的值。 (假定对阶和右规时采用就近舍入

13、到偶数方式)(1)(15/16) 2 7 +(2/16) 25 (2)(15/16) 2 7(2/16) 25 参考答案(假定采用隐藏位): X= (15/16) 27 = 0.111100B 27= (1.111000)2 26 Y1= (2/16) 25 = 0.001000B 25= (1.000000)2 22Y2= (2/16) 25 = 0.001000B 25= (1.000000)2 22K= (15/16) 25 = 0.111100B 25= (1.111000)2 24J1= (2/16) 27 = 0.001000B 27= (1.000000)2 24J2= (2/1

14、6) 27 = 0.001000B 27= (1.000000)2 24根据题目所给的各种位数,可以得到在机器中表示为:X浮 = 00 1110 (1)111000 Y1浮 = 00 1010 (1)000000 Y2浮 = 11 1010 (1)000000K浮 = 00 1100 (1)111000 J1浮 = 00 1100 (1)000000 J2浮 = 11 1100 (1)000000所以,E x = 1110,M x = 00 (1). 111000 ,E y1 = 1010,M y = 00(1).000000,E y2 = 1010,M y = 11(1).000000Ek = 1100,M K = 00 (1). 111000 ,E J1 = 1100,M J1 = 00(1).000000,E J2 = 1100,M J2 = 11(1).000000尾数 M 中小数点前面有三位,前两位为数符,表示双符号,第三位加了括号,是隐藏位“1” 。没有附加位时的计算:(1) X+Y1E 补 = E x移 + E y1移 补 (mod 2n) = 1110 + 0110 = 0100E = 4,根据对阶规则可知需要对 y1 进行对阶,结果为: E y1 = E x

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

当前位置:首页 > 办公文档 > 其它办公文档

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