计算机组成与系统结构课后答案.pdf
《计算机组成与系统结构课后答案.pdf》由会员分享,可在线阅读,更多相关《计算机组成与系统结构课后答案.pdf(191页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机组成与系统结构课后答案免费版全(清华大学出版社袁春风主编)第 1 章 习 题 答 案5.若有两个基准测试程序P1和P2在机器M l和M2上运行,假定M l和M 2的价格分别是5000元和8000元,下表给出了 P1和P2在M l和M 2上所花的时间和指令条数。程序MlM2指令条数执行时间(ms)指令条数执行时间(ms)P1200*1()610000150 xl065000P2300 x1()33420 x1()36请回答下列问题:(1)对于P L哪台机器的速度快?快多少?对于P 2呢?(2)在M l上执行P1和P 2的速度分别是多少M IPS?在M 2上的执行速度又各是多少?从执行速度来
2、看,对于P 2,哪台机器的速度快?快多少?(3)假定M l和M 2的时钟频率各是800MHz和1.2GHz,则在M l和M 2上执行P 1时的平均时钟周期数CPI各是多少?(4)如果某个用户需要大量使用程序P 1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M l还是 M 2?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和 P2一样多,主要关心的也是响应时间,那么,应该选择M l还是M 2?为什么?参考答案:(1)对于PL M 2比M l快一倍;对于P2,M l比M2快一倍。(2)对于 Ml,Pl 的速度为:
3、200M/10=20MIPS;P2为 300k/0.003=100MIPSo对于 M2,P1 的速度为:150M/5=30MIPS;P2 为 420k/0.006=70MIPSo从执行速度来看,对于P 2,因为100/70=1.43倍,所以M l比M2快 0.43倍。(3)在 M l上执行P1时的平均时钟周期数CPI为:10 x800M/(200 x 106)=40。在M2上执行P1时的平均时钟周期数CPI为:5xl.2G/(150 xl06)=40o(4)考虑运行P l时 M l和 M 2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能应考虑执行时间,其性能为执行时间的倒数。故
4、性价比R 为:R=l/(执行时间x价格)R 越大说明性价比越高,也即,“执行时间x价格”的值越小,则性价比越高。因为10 x5000 5x8000,所以,M 2的性价比高。应选择M2。(5)P1和 P2需要同等考虑,性能有多种方式:执行时间总和、算术平均、几何平均。若用算术平均方式,贝!1:因为(10+0.003)/2x5000 (5+0.006)/2x8000,所以M 2的性价比高,应选择M2。若用几何平均方式,贝!1:因为sqrt(10 x0.003)x5000 sqrt(5x0.006)x8000,所以 Ml 的性价比高,应选择M l。6.若机器M l和 M2具有相同的指令集,其时钟频率
5、分别为1GHz和 l.5GHz。在指令集中有五种不同类型的指令AE。下表给出了在M l和 M2上每类指令的平均时钟周期数CPIo机器ABCDEMl12234M222456请回答下列问题:(1)M l和 M 2的峰值MIPS各是多少?(2)假定某程序P 的指令序列中,五类指令具有完全相同的指令条数,则程序P 在 M l和 M2上运行时,哪台机器更快?快多少?在 M l和 M2上执行程序P时的平均时钟周期数CPI各是多少?参考答案:(1)M l上可以选择一段都是A 类指令组成的程序,其峰值MIPS为 1000MIPS。M2上可以选择一段A 和 B 类指令组成的程序,其峰值 MIPS 为 1500/
6、2=750MIPSo(2)5 类指令具有完全相同的指令条数,所以各占 20%。在 M l和 M2上执行程序P 时的平均时钟周期数CPI分别为:M l:20%x(l+2+2+3+4)=0.2x12=2.4M2:20%x(2+2+4+5+6)=0.2x19=3.8假设程序P 的指令条数为N,则在M l和 M2上的执行时间分别为:M l:2.4x Nxl/1G=2.4N(ns)M2:3.8xNxl/1.5G=2.53 N(ns)M l执行P 的速度更快,每条指令平均快0.13ns,也即 Ml 比 M2 快 0.13/2.53x100%5%o(思考:如果说程序P 在 M l上执行比M 2上快(3.8-
7、2.4)/3.8x100%=36.8%,刃 口 么,这个结论显然是错误的。请问错在什么地方?)7.假设同一套指令集用不同的方法设计了两种机器Ml和 M2。机器M l的时钟周期为0.8ns,机器M 2的时钟周期为1.2nso某个程序P 在机器M l上运行时的 CPI为 4,在 M2上的CPI为 2。对于程序P 来说,哪台机器的执行速度更快?快多少?参考答案:假设程序P 的指令条数为N,则在M l和 M2上的执行时间分别为:M l:4 Nx0.8=3.2N(ns)M2:2 Nxl.2=2.4 N(ns)所以,M2执行P 的速度更快,每条指令平均快0.8ns,比 Ml 快 0.8/3.2x100%=
8、25%。8.假设某机器M 的时钟频率为4G H z,用户程序P在 M 上的指令条数为8xl09,其 CPI为 1.25,则 P 在 M上的执行时间是多少?若在机器M 上从程序P 开始启动到执行结束所需的时间是4秒,则P 占用的CPU时间的百分比是多少?参考答案:程序P 在 M 上的执行时间为:L25x8xl09xl/4G=2.5 s,从启动P 执行开始到执行结束的总时间为4秒,其中2.5秒是P 在 CPU上真正的执行时间,其他时间可能执行操作系统程序或其他用户程序。程序P 占用的CPU时间的百分比为:2.5/4=62.5%o9.假定某编译器对某段高级语言程序编译生成两种不同的指令序列S1和 S
9、 2,在时钟频率为500MHz的机器M 上运行,目标指令序列中用到的指令类型有A、B、C 和 D 四类。四类指令在M 上的CPI和两个指令序列所用的各类指令条数如下表所示。ABCD各指令的CPI1234S1的指令条数S221S2的指令条数1115请问:S1和S2各有多少条指令?CPI各为多少?所含的时钟周期数各为多少?执行时间各为多少?参考答案:S1 有 10 条指令,CPI 为(5x1+2x2+2x3+1x4)/10=19,所含的时钟周期数为10 x1.9=19,执行时间为 19/500M=38ns。S2 有 8 条 指 令,CPI 为(1X1+1X2+1X3+5X4)/8=3.25,所含的
10、时钟周期数为8x3.25=26,执行时间为26/500M=52ns。(注:从上述结果来看,对于同一个高级语言源程序,在同一台机器上所生成的目标程序不同,其执行时间可能不同,而且,并不是指令条数少的目标程序执行时间就一定少。)1 0.假定机器M的时钟频率为l.2GHz,某程序P在机器M上的执行时间为12秒钟。对P优化时,将其所有的乘4指令都换成了一条左移2位的指令,得到 优 化 后 的 程 序 已 知 在M上乘法指令的CPI为5,左移指令的CPI为2,P的执行时间是P执行时间的L2倍,则P中有多少条乘法指令被替换成了左移指令被执行?参考答案:显然,P,的执行时间为10秒,因此,P比P,多花了 2
11、秒钟,因此,执行时被换成左移指令的乘法指令的条数为1.2Gx2/(5-2)=8OOM0第 二 章 习 题 答 案3.实现下列各数的转换。(1)(25.8125)io=(?=(?)8=(?)16(2)(101101.011)2=(?)10=(?)8=(?)16=(?)8421(3)(0101 1001 0110.0011)8421=(?)1 0=(?)2=(?)16(4)(4E.C)16=(?)10=(?)2参考答案:(1)(25.8125)x0=(1 1001.1101)2=(31.64)8=(19.D)(2)(101101.011)2=(45.375)1产(55.3)8=(2D.6)16=(
12、0100 0101.0011 0111 0101)8421(3 )(0101 1001 0110.0011)8421=(596.3)10=(1001010100.01001100110011.)2=(254.4CCC.)16(4)(4E.C)I6=(78.75)io=(0100 1110.11)24.假定机器数为8位(1位符号,7位数值),写出下列各二进制数的原码和补码表示。+0.1001,-0.1001,+1.0,-1.0,+0.010100,-0.010100,+0,-0参考答案:+0.1001:-0.1001:+1.0:-1.0:+0.010100:-0.010100:+0:-0:原码0
13、.10010001.1001000溢出溢出0.01010001.01010000.00000001.0000000补码0.10010001.0111000溢出1.00000000.01010001.10110000.00000000.00000005.假定机器数为8位(1位符号,7位数值),写出下列各二进制数的补码和移码表示。+1001,-1001,+1,-1,+10100,-10100,+0,-0参考答案:移码补码+1001:1000100100001001-1001:0111011111110111+1:100000010000000101111111111111111+10100:100
14、10100-10100:01101100+0:10000000-0:100000006.已 知 x补,求 x(1)x补=1.1100111(3)x补=0.1010010参考答案:(1)X补=1.1100111(2)x补=10000000-128(3)x补=0.1010010(4)x补=1101001100010100111011000000000000000000回补=10000000 X补=11010011X =-0.0011001Bx=-10000000B=X =+0.101001Bx=-101101B=-457.假定一台32位字长的机器中带符号整数用补码表示,浮点数用IEEE 754标准
15、表示,寄存器R1和 R 2的内容分别为 RI:0000108BH,R2:8080108BHo不同指令对寄存器进行不同的操作,因而,不同指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器R1和 R 2的内容,则 R1和 R 2中操作数的真值分别为多少?(1)无符号数加法指令(2)带符号整数乘法指令(3)单精度浮点数减法指令参考答案:RI=0000108BH=0000 0000 0000 0000 00010000 1000 1011bR2=8080108BH=1000 0000 1000 0000 00010000 1000 1011b(1)对于无符号数加法指令,R 1和
16、R 2中是操作数的无符号数表示,因此,其真值分别为R1:108BH,R2:8080108BHo(2)对于带符号整数乘法指令,R 1和R 2中是操作数的带符号整数补码表示,由最高位可知,R1为正数,R2为负数。R 1的真值为+108BH,R2 的真值为-(0111 1111 0111 1111 1110 11110111 0100b+lb)=-7F7FEF75Ho(3)对于单精度浮点数减法指令,R 1和R 2中是操作数的IEEE754单精度浮点数表示。在IEEE 7 5 4标准中,单精度浮点数的位数为32位,其中包含1位符号位,8位阶码,23位尾数。由R 1中的内容可知,其符号位为0,表示其为正
17、数,阶码为0000 00 0 0,尾数部分为0000000 0001 0000 1000 1011,故其为非规格化浮点数,指数为-L 2 6,尾数中没有隐藏的1,用十六进制表示尾数为+0.002U6H,故R1表示的真值为+0.002116H x I。-.。由R 2中的内容可知,其符号位为1,表示其为负数,阶码为0000 0 0 0 1,尾数部分为0000000 0001 0000 1000 1011,故其为规格化浮点数,指数为1-127=-1 2 6,尾数中有隐藏的1,用十六进制表示尾数为-L 002U 6H,故R 2表示的真值为-L002116H x 10-38.假定机器M的字长为32位,用
18、补码表示带符号整数。下表第一列给出了在机器M上执行的C语言程序中的关系表达式,请参照已有的表栏内容完成表中后三栏内容的填写。关系表达式运算类型结果说明0=0U无符号整数100 0B=00 0B-1 0有符号整数1-l)00.0B(0)-100.0B(0)2147483647 -2147483647-1有符号整数1Oil.IB(251-1)100.OB(-231)2147483647U -2147483647-1无符号整数0Oil.IB(21-1)(int)2147483648U有符号整数1Oil.IB(231 1)1(H).OB(231)-l-2有符号整数111 IB(-1)11.10B(-2
19、)(unsigned)-1 -2无符号整数111.IB(232 1)11.JOB(23-2)9.以下是一个C语言程序,用来计算一个数组a中每个元素的和。当参数加n为0时,返回值应该是0,但是在机器上执行时,却发生了存储器访问异常。请问这是什么原因造成的,并说明程序应该如何修改。1 float sum_elements(float a,unsigned len)2(3 int i;4 float result=0;56 for(i=0;i=len-1;i+)7 result+=ai;8 return result;9)参考答案:参数len的类型是unsigned,所以,当len=0时,执 行le
20、n-1的结果为11.1,是最大可表示的无符号数,因而,任何无符号数都比它小,使得循环体被不断执行,引起数组元素的访问越界,发生存储器访问异常。只要将len声明为int型,或循环的测试条件改为i23a X ioM最大规格化数000000001-11最小规格化数000000000-0 11.0X2-I26a X i()38I.0 X 2 Ea X i(rM最大非规格化数111111110-.0 0最小非规格化数11111111非全0(1-2-4)X 2 26a X 0 f(l-2-52)X 2-1022a X 10-3。8+8NaN2-23X2-|26=2-U,a X 1()72-52 7-102
21、2a X i o?-1 6.已知下列字符编码:A=100 0001,a=110 0001,0=0110 0 0 0,求 E、e、f、7、G、Z、5 的 7 位 ACSH 码和第一位前加入奇校验位后的8位编码。参考答案:E 的 ASCII 码为 A +(侬-W)=100 0001+100=100 0101,奇校验位P=0,第一位前加入奇校验位后的8位编码是0 100 0101 oe 的 ASCII 码为a+(一球)=110 0001+100=110 0 1 0 1,奇校验位P=1,第一位前加入奇校验位后的8位编码是1 110 OlOlof 的 ASCII 码 为a+(f -W)=110 0001
22、+101=110 0110,奇校验位P=l,第一位前加入奇校验位后的8位编码是1110 0110。7 的 ASCH 码 为0+(7-0)=011 0000+111=011 0111,奇校验位P=0,第一位前加入奇校验位后的8位编码是0 011 0111 oG 的 ASCII码为A,+CG,-6A,)=100 0001+0110=100 0111,奇校验位P=1,第一位前加入奇校验位后的8位编码是1 100 0111 oZ 的 ASCH码为A+(Z -A)=100 0001+11001=101 1010,奇校验位P=1,第一位前加入奇校验位后的8位编码是1 101 1010o5 的 ASCII
23、码为O+(5-0)=011 0000+101=Oil0 1 0 1,奇校验位P=1,第一位前加入奇校验位后的8 位编码是10110101。1 7.假定在一个程序中定义了变量x、y 和 i,其中,x和 y 是 float型变量(用IEEE754单精度浮点数表示),i 是 16位 sh ort型变量(用补码表示)。程序执行到某一时刻,x=-0.125、y=7.5 i=100,它们都被写到了主存(按字节编址),其地址分别是100,108和 112o请分别画出在大端机器和小端机器上变量x、y 和 i 在内存的存放位置。参考答案:-0.125=-0.001B=-1.0 x 2.X在机器内部的机器数为:1
24、 01111100 00.0(BE000000H)7.5=+1.111 x 22y 在机器内部的机器数为:0 10000001 11100.0(40F0 0000H)100=64+32+4=1100100Bi 在机器内部表示的机器数为:0000 0000 0110 0100(0064H)大端机小 端机地址内容内容100BEH00H10100H00H10200H00H10300HBEH10840H00H109F0H00H11000HF0H11100H40H11200H64H11364H00H1 8.假定某计算机的总线采用奇校验,每8位数据有一位校验位,若在32位数据线上传输的信息是8F 3CAB
25、 9 6 H,则对应的4个校验位应为什么?若接受方收到的数据信息和校验位分别为87 3C AB 96H和0101B,则说明发生了什么情况,并给出验证过程。参考答案:传输信息8F 3C AB 96H展开为1000 1111 00111100 1010 1011 1001 0110,每8位有一个奇校验位,因此,总线上发送方送出的4个校验位应该分别为0、1、0、lo接受方的数据信息为87 3C AB 9 6 H,展开后为1000 0111 0011 1100 1010 1011 1001 0110;接收到的校验位分别为0、1、0、l o在接受方进行校验判断如下:根据接收到的数据信息计算出4个奇校验位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 系统 结构 课后 答案
限制150内