以下是两段c语言代码函数arith,计算机组成习题答案(清华大学).docx

41528d3028836879cd698677c3999917.gif计算机组成习题答案(清华大学).docx

第1章习题答案5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。M1M2程序指令条数执行时间MS指令条数执行时间MSP1200106100001501065000P230010334201036请回答下列问题(1)对于P1,哪台机器的速度快快多少对于P2呢(2)在M1上执行P1和P2的速度分别是多少MIPS在M2上的执行速度又各是多少从执行速度来看,对于P2,哪台机器的速度快快多少(3)假定M1和M2的时钟频率各是800MHZ和12GHZ,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1还是M2为什么(提示从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2为什么参考答案(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。(2)对于M1,P1的速度为200M/1020MIPS;P2为300K/0003100MIPS。对于M2,P1的速度为150M/530MIPS;P2为420K/000670MIPS。从执行速度来看,对于P2,因为100/70143倍,所以M1比M2快043倍。(3)在M1上执行P1时的平均时钟周期数CPI为10800M/20010640。在M2上执行P1时的平均时钟周期数CPI为512G/15010640。(4)考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能应考虑执行时间,其性能为执行时间的倒数。故性价比R为R1/执行时间价格R越大说明性价比越高,也即,“执行时间价格”的值越小,则性价比越高。因为10500058000,所以,M2的性价比高。应选择M2。(5)P1和P2需要同等考虑,性能有多种方式执行时间总和、算术平均、几何平均。若用算术平均方式,则因为100003/2500050006/28000,所以M2的性价比高,应选择M2。若用几何平均方式,则因为SQRT1000035000–2147483647–12147483647U–2147483647–12147483647INT2147483648U–1–2UNSIGNED–1–2无符号整数有符号整数无符号整数有符号整数无符号整数有符号整数有符号整数无符号整数11010111000B000B111B–1000B00111B231–11000B–2310111B231–11000B–231111B–11110B–2111B232–11110B232–29.以下是一个C语言程序,用来计算一个数组A中每个元素的和。当参数LEN为0时,返回值应该是0,但是在机器上执行时,却发生了存储器访问异常。请问这是什么原因造成的,并说明程序应该如何修改。1FLOATSUM_ELEMENTSFLOATA,UNSIGNEDLEN2{3INTI4FLOATRESULT056FORI0I24}INTFUNC2UNSIGNEDWORD{RETURNINTWORD24}假设在一个32位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑移位,带符号整数采用算术移位。请填写下表,并说明函数FUNC1和FUNC2的功能。WFUNC1WFUNC2W机器数值机器数值机器数值0000007FH1270000007FH1270000007FH12700000080H12800000080H128FFFFFF80H–128000000FFH255000000FFH255FFFFFFFFH–100000100H25600000000H000000000H0函数FUNC1的功能是把无符号数高24位清零(左移24位再逻辑右移24位),结果一定是正的有符号数;而函数FUNC2的功能是把无符号数的高24位都变成和第25位一样,因为左移24位后进行算术右移,高24位补符号位(即第25位)。4.填写下表,注意对比无符号数和带符号整数的乘法结果,以及截断操作前、后的结果。XYXY(截断前)XY(截断后)模式机器数值机器数值机器数值机器数值无符号数11060102001100121004二进制补码110–20102111100–4100–4无符号数0011111700011171117二进制补码0011111–1111111–1111–1无符号数11171117110001490011二进制补码111–1111–1000001100115.以下是两段C语言代码,函数ARITH是直接用C语言写的,而OPTARITH是对ARITH函数以某个确定的M和N编译生成的机器代码反编译生成的。根据OPTARITH,可以推断函数ARITH中M和N的值各是多少DEFINEMDEFINENINTARITHINTX,INTY{INTRESULT0RESULTXMY/NRETURNRESULT}INTOPTARITHINTX,INTY{INTTXX2RETURNXY参考答案可以看出XM和“INTTXX2”两句对应,功能主要由第二句“Y右移2位”实现,它实现了Y除以4的功能,因此N是4。而第一句“IFY2–1而–1/40,两者不等;调整后–132,220,两者相等。思考能否把IFY0,则Q01商的数值部分为00001。所以,X/Y原00001最高位为符号位,余数为0100。(5)将10和–6分别表示成补码形式为10补01010,–6补11010,计算过程如下先对被除数进行符号扩展,10补0000001010,6补00110余数寄存器R余数/商寄存器Q说明0000001010开始R0X11010R1XY1101001010R1与Y同号,则Q5110100101012R1(R和Q同时左移,空出一位上商1)00110R22R1–Y1101010101R2与Y同号,则Q41,10101010112R2(R和Q同时左移,空出一位上商1)00110R32R2Y1101101011R3与Y同号,则Q3110110101112R3(R和Q同时左移,空出一位上商1)00110R42R3–Y1110010111R4与Y同号,则Q2111001011112R4(R和Q同时左移,空出一位上商0)00110R52R4Y1111101111R5与Y同号,则Q11,11110111112R5(R和Q同时左移,空出一位上商1)00110R62R5–Y0010011110R6与Y异号,则Q00,Q左移,空出一位上商1000001商为负数,末位加1;余数不需要修正0010011111所以,X/Y补11111,余数为00100。即X/Y–0001B–1,余数为0100B4将各数代入公式“除数商余数被除数”进行验证,得–6–1410。10.若一次加法需要1NS,一次移位需要05NS。请分别计算用一位乘法、两位乘法、基于CRA的阵列乘法、基于CSA的阵列乘法四种方式计算两个8位无符号二进制数乘积时所需的时间。参考答案一位乘法8次右移,8次加法,共计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值