1、计算机组成原理前3章课后习题参考答案白中英第五版计算机组成原理课后习题参考答案第1章 计算机系统概述4、冯诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?答:冯诺依曼型计算机的主要设计思想是存储程序和程序控制,其中存储程序是指将程序和数据事先存放到存储器中,而程序控制是指控制器依据存储的程序来控制全机协调地完成计算任务。总体来讲,存储程序并按地址顺序执行,这就是冯诺依曼型计算机的主要设计思想。5、什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?答:见教材P8和P10。7、指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?答:见教材P10。第2章 运算方法和运算
2、器1、写出下列各整数的原码、反码、补码表示(用8位二进制数)。真值原码反码补码-35-0010 00111010 00111101 11001101 1101-128-1000 0000无法表示无法表示1000 0000-127-0111 11111111 11111000 00001000 0001-1-0000 00011000 00011111 11101111 11113、有一个字长为32位的浮点数,符号位1位,阶码8位,用移码表示,尾数23位,用补码表示,基数为2,请写出:(1)最大数的二进制表示阶码用移码表示,题中并未说明具体偏移量,故此处按照移码的定义,即采用偏移量为27=128
3、,则此时阶码E的表示范围为0000 00001111 1111,即0255,则在上述条件下,浮点数为最大数的条件如下:符号S为正(1)阶码E最大(8)尾数M最大正数(23)01111 11111111 1111 1111 1111 1111 111所以最大数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1111 111对应十进制真值为:+(1-2-23)2127(2)最小数的二进制表示浮点数为最小数的条件如下:符号S为负(1)阶码E最大(8)尾数M最小负数(23)11111 11110000 0000 0000 0000 0000 000所以最小数的
4、二进制表示为:1 1111 1111 0000 0000 0000 0000 0000 000对应十进制真值为:-12127(3)规格化数所表示数的范围规格化要求尾数若为补码表示,则符号位和最高有效位符号必须不同。(A)浮点数为最大正数的条件如下:符号S为正(1)阶码E最大(8)尾数M最大正数(23)01111 11111111 1111 1111 1111 1111 111所以最大正数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1111 111对应十进制真值为:+(1-2-23)2127(B)浮点数为最小正数的条件如下:符号S为正(1)阶码E最小
5、(8)尾数M最小正数(23)00000 00001000 0000 0000 0000 0000 000所以最小正数的二进制表示为:0 0000 0000 1000 0000 0000 0000 0000 000对应十进制真值为:+2-12-128=+2-129(C)浮点数为最大负数的条件如下:符号S为负(1)阶码E最小(8)尾数M最大负数(23)10000 00000111 1111 1111 1111 1111 111所以最大负数的二进制表示为:0 0000 0000 0111 1111 1111 1111 1111 111对应十进制真值为:-(2-1+2-23)2-128(D)浮点数为最
6、小负数的条件如下:符号S为负(1)阶码E最大(8)尾数M最小负数(23)11111 11110000 0000 0000 0000 0000 000所以最小负数的二进制表示为:0 0000 0000 0000 0000 0000 0000 0000 000对应十进制真值为:-12127所以,规格化数所表示数的范围如下:正数 +2-129+(1-2-23)2127 负数 -2127 -(2-1+2-23)2-1284、将下列十进制数表示成IEEE754标准的32位浮点规格化数。(2)-27/64解:-27/64D=2-2,则阶码E=-2+127=125,则浮点数为:符号S(1)阶码E(8)尾数M
7、(23)10111 11011011 0000 0000 0000 0000 0005、已知x和y,用变形补码计算x+y,同时指出结果是否溢出。(2)x=11011,y=-10101解:x变补=00,11011,y变补=11,01011,则 x变补 00,11011+y变补 11,01011 100,00110最高进位1丢掉,则x+y变补=00,00110,符号位为00,表示结果为正数,且无溢出,即:x+y=+00110(3)x=-10110,y=-00001解:x变补=11,01010,y变补=11,11111,则 x变补 11,01010+y变补 11,11111 111,01001最高进
8、位1丢掉,则x+y变补=11,01001,符号位为11,表示结果为负数,且无溢出,即:x+y=-101116、已知x和y,用变形补码计算x-y,同时指出结果是否溢出。(1)x=11011,y=-11111解:x变补=00,11011,y变补=11,00001,-y变补=00,11111,则 x变补 00,11011+- y变补 00,11111 01,11010则x-y变补=01,11010,符号位为01,表示结果为正数,且发生正溢。(2)x=10111,y=11011解:x变补=00,10111,y变补=00,11011,-y变补=11,00101,则 x变补 00,10111+- y变补
9、11,00101 11,11100则x-y变补=11,11100,符号位为11,表示结果为负数,且无溢出,即x-y=-00100。7、用原码一位乘计算xy。(2)x=-11111,y=-11011解:根据原码一位乘的运算规则,乘积的符号位单独处理x0 y0,数值部分为绝对值相乘x*.y*,其中数值部分的运算如下:部分积乘数说明 0,00000+0,1111111011部分积初态z0=0+x* 0,11111 0,01111+0,1111111101右移一位,得z1+x* 1,01110 0,10111+0,0000001110右移一位,得z2+0 0,10111 0,01011+0,11111
10、10111右移一位,得z3+x* 1,01010 0,10101+0,1111101011右移一位,得z3+x* 1,10100 0,1101000101右移一位,得z3由上可得,数值部分的乘积为:x*.y*=0,01,而乘积符号位x0 y0=1 1=0,则原=0,01,即xy=+01。8、用加减交替法计算xy(先乘1个比例因子变成小数)。(2)x=-01011,y=11001解:按照加减交替原码除法的运算规则,符号位单独处理x0 y0,商值由两数绝对值相除x*/y*求得,且当余数Ri0,商1,做2Ri-y*运算,当余数Ri1, Ex+1所以,x补=11,100;(0) 尾数求和:Mx补=(0
11、) 对阶后的尾数Mx补 + My补 = = (0)即x+y补=11,100;,因尾数不符合规格化要求,需左规。 规格化:尾数左规2次后得:x+y补=11,010;舍入处理:采用0舍1入法,因对阶时尾数右移丢0,故可舍去。溢出判断:因阶码符号位为11,故浮点数无溢出。所以最终结果为x+y=+2-110(B)求x-y 对阶:E补=Ex补-Ey补=11,011 + 00,100 = 11,111由上式可得E补=11,111,即阶差为-1,所以Mx-1, Ex+1所以,x补=11,100;(0) 尾数求和:Mx补=(0) 对阶后的尾数Mx补 + - My补 = = (0)即x-y补=11,100;,尾
12、数符合规格化要求,无需规格化。 规格化:无需规格化舍入处理:采用0舍1入法,因对阶时尾数右移丢0,故可舍去。溢出判断:因阶码符号位为11,故浮点数无溢出。所以最终结果为x-y=2-10012、用IEEE 32位浮点格式表示如下的数:(2)解:=20,所以阶码E=0+127=127,则有:符号位(1)阶码E(8)尾数M(23)10111 1111100 0000 0000 0000 0000 0000十六进制表示BFC00000(4)1/16解:1/16D=2-4,所以阶码E=-4+127=123,则有:符号位(1)阶码E(8)尾数M(23)00111 1011000 0000 0000 000
13、0 0000 0000十六进制表示3D80000013、下列各数使用了IEEE 32位浮点格式,相等的十进制数是什么?(2)0 0111 1110 101 0000 0000 0000 0000 0000解:根据IEEE 32位浮点格式可得,阶码E=0111 1110=126,则e=126-127=-1,所以浮点数为:+2-1=+,则对应十进制数为:+=。第3章 多层次的存储器1、设有一个具有20位地址和32位字长的存储器,问:(1)该存储器能存储多少个字节信息?(22032/8=4MB)(2)如果存储器由512K8位SRAM芯片组成,需要多少片?(22032/512K8=8)(3)需要多少位
14、地址做芯片选择?(存储器由20根地址线,而每片芯片有19根地址线,故需1位地址做芯片选择)3、用16K8位的DRAM芯片构成64K32位存储器,要求:(1)画出该存储器的组成逻辑框图。解:共需芯片64K32/16K8=16片,可先用4片16K8位的DRAM芯片用于位扩展构成16K32位存储器,然后再用4组16K32位存储器用于字扩展构成64K32位存储器,其中,4组16K32位存储器的片选信号由高位地址A15和A14产生,该存储器的组成逻辑框图如下所示。其中,16K32位的存储器的组成逻辑框图如下所示。(2)设存储器读写周期为s,CPU在1s内至少要访问一次。试问采用哪种刷新方式比较合理?两次
15、刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?解:5、要求用256K16位SRAM芯片设计1024K32位的存储器。SRAM芯片有两个控制端:当CS有效时,该片选中。当W/R=1时执行读操作,当W/R=0时执行写操作。解:共需SRAM芯片1024K32/256K16=8片,可先用2片256K16位的SRAM芯片用于位扩展构成256K32位存储器,然后再用4组256K32位存储器用于字扩展构成1024K32位存储器,该存储器的组成逻辑框图如下所示。其中,256K32位的存储器的组成逻辑框图如下所示。6、用32K8位的E2PROM芯片组成128K16位的只读存储器,试问
16、:(1)数据寄存器多少位?(16位)(2)地址寄存器多少位?(17位)(3)共需多少个E2PROM芯片?(128K16/32K8=8个)(4)画出此存储器组成框图。解:可先用2片32K8位的E2PROM芯片用于位扩展构成32K16位存储器,然后再用4组32K16位存储器用于字扩展构成128K16位存储器,该存储器的组成逻辑框图如下所示。其中,32K16位的存储器的组成逻辑框图如下所示。7、某机器中,已知配有一个地址空间为0000H3FFFH的ROM区域。现在再用一个RAM芯片(8K8)形成40K16位的RAM区域,起始地址为6000H。假设RAM芯片有CS和WE信号控制端。CPU的地址总线为A
17、15A0,数据总线为D15D0,控制信号为R/W(读/写),MREQ(访存),要求:(1)画出地址译码方案。(2)将ROM和RAM同CPU连接。解:RAM区域共需RAM芯片40K16/8K8=10片,可先用2片8K8位的RAM芯片用于位扩展构成8K16位存储器,然后再用5组8K16位存储器用于字扩展构成40K16位存储器,该存储器的组成逻辑框图可参照5、6题。(A)为了将ROM和RAM同CPU连接,需先将十六进制地址转换为二进制地址码,并确定ROM容量,以及观察ROM和RAM地址码的特点。A15A12A11A8A7A4A3A0说明0000000000000000ROM,16K16.001111
18、11111111110100000000000000空区域.01011111111111110110000000000000RAM(0),8K162片8K8位扩展.01111111111111111000000000000000RAM(1),8K162片8K8位扩展.10011111111111111010000000000000RAM(2),8K162片8K8位扩展.10111111111111111100000000000000RAM(3),8K162片8K8位扩展.11011111111111111110000000000000RAM(4),8K162片8K8位扩展.1111111111
19、111111(B)分配CPU地址线:将CPU的低13位地址A12A0与ROM和2片8K8位RAM的地址线相连。剩下的高位地址A13A15与访存信号共同产生芯片的片选信号。(C)片选信号的形成:观察上面的地址码发现,当访存信号MREQ=0,而且高位地址A13A15为000(或001)、011、100、101、110、111时,分别选择ROM、RAM(0)、RAM(1)、RAM(2)、RAM(3)和RAM(4)芯片,故,可采用一个3-8译码器来实现上述片选关系,最后得ROM和RAM与CPU的连接如下图所示。【说明】上图假设ROM区域由2片8K16位芯片进行字扩展构成,若ROM区域由1片16K16位
20、芯片构成,则地址线连接会不同。8、设存储器容量为64M,字长为64位,模块数m=8,分别用顺序和交叉方式进行组织。存储周期T=100ns,数据总线宽度为64位,总线传送周期=50ns。求:顺序存储器和交叉存储器的带宽各是多少?解:假设连续读出m=8个字,则:顺序存储器和交叉存储器的数据信息量为:q=864=512位顺序存储器所需要的时间为:t1=mT=8100ns=800ns=810-7s故顺序存储器的带宽为:W1=q/t1=512/(810-7)=64107(bit/s)交叉存储器所需要的时间为t2=T+(m-1)=100ns+(8-1)50ns=450ns=10-7s故交叉存储器的带宽为W
21、2=q/t2=512/10-7)=107(bit/s)9、CPU执行一段程序时,cache完成存取的次数为2420次,主存完成存取的次数为80次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。解:命中率:h=Nc/(Nc+Nm)=2420/(2420+80)=平均访问时间:ta=htc+tm(1-h)=40ns+240=cache/主存系统的效率:e=tc/ta=40/=%10、已知Cache存储周期为40ns,主存存储周期200ns,Cache/主存系统平均访问时间为50ns,求Cache的命中率为多少?解:根据平均访问时间公式ta=
22、htc+(1-h)tm,得:命中率h=(tm-ta)/(tm-tc)=(200-50)/(200-40)=150/160=11、某机器采用四体交叉存储器,今执行一段小循环程序,此程序放在存储器的连续地址单元中。假设每条指令的执行时间相等,而且不需要到存储器存取数据,请问在下面两种情况中(执行的指令数相等),程序运行的时间是否相等?(1)循环程序由6条指令组成,重复执行80次;解:设总线传送周期为,取指周期T,执行指令时间为t,则:程序运行时间为:ta=(T+(6-1)+6t)80(2)循环程序由8条指令组成,重复执行60次。解:设总线传送周期为,取指周期T,执行指令时间为t,则:程序运行时间为
23、:ta=(T+(8-1)+8t)6013、一个组相联Cache由64个行组成,每组4行。主存储器包含4K个块,每块128字。请表示内存地址的格式。解:块大小2w=128字=27,故w=7Cache有64行,每组4行,则组数2d=64/4=16=24,故d=4主存块数2s=4K=212,故s=12标记位有s-d=12-4=8位则组相联映射下的主存地址格式如下:标记s-d组号d块内字号w84714、某机主存容量1MB,字长1B,块大小16B,Cache容量64KB,若Cache采用直接映射方式,请给出2个不同标记的内存地址,它们映射到同一个Cache行。解:块大小2w=16B,故w=4Cache容
24、量64KB,每块16B,行数2r=4K=212,故r=12主存容量1MB=220=2s+w,故s+w=20,则s=20-w=16,故标记位s-r=16-12=4直接映射下的主存地址格式如下:标记s-r行号r块内字号w4124两个满足题目要求的主存地址:0000 1001 0000 1110 0000 0001 1001 0000 1110 000015、假设主存容量16M32位,Cache容量64K32位,主存与Cache之间以每块432位大小传送数据,请确定直接映射方式的有关参数,并画出主存地址格式。解:块大小2w=4,故w=2Cache容量64K32位,块大小为432位,则行数为2r=64
25、K/4=16K=214,故r=14主存16M32位,块大小为432位,则块数2s=16M/4=4M=222,故s=22标记位s-r=22-14=8位直接映射下的主存地址格式如下:标记s-r行号r块内字号w814219、某虚拟存储器采用页式存储管理,使用LRU页面替换算法。若每次访问在一个时间单位内完成,页面访问的序列如下:1,8,1,7,8,2,7,2,1,8,3,8,2,1,3,1,7,1,3,7。已知主存只允许存放4个页面,初始状态时4个页面是全空的,则页面失效次数是?解:LRU(近期最少使用):每页设置计数器,每命中1次,该页计数器清零,其他各页计数器加1,需要替换时,将计数值最大的页换出。页面访问序列1817827218页面127218页面27882721页面3811778872页面41188111187命中否中中中中中中页面访问序列3821317137页面13821317137页面28382131713页面31138223371页面42213882222命中否中中中中中中中
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1