1、白中英第五版计算机组成原理课后习题参考答案第 1 章 计算机系统概述4、冯诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?答:冯诺依曼型计算机的主要设计思想是存储程序和程序控制,其中存储程序是指将程序和数据事先存放到存储器中,而程序控制是指控制器依据存储的程序来控制全机协调地完成计算任务。总体来讲,存储程序并按地址顺序执行,这就是冯诺依曼型计算机的主要设计思想。5、什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?答:见教材 P8 和 P10。7、指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?答:见教材 P10。第 2 章 运算方法和运算器1、写出下列各整数
2、的原码、反码、补码表示(用 8 位二进制数)。真值 原码 反码 补码-35 -0010 0011 1010 0011 1101 1100 1101 1101-128 -1000 0000 无法表示 无法表示 1000 0000-127 -0111 1111 1111 1111 1000 0000 1000 0001-1 -0000 0001 1000 0001 1111 1110 1111 11113、有一个字长为 32 位的浮点数,符号位 1 位,阶码 8 位,用移码表示,尾数23 位,用补码表示,基数为 2,请写出:(1)最大数的二进制表示阶码用移码表示,题中并未说明具体偏移量,故此处按照
3、移码的定义,即采用偏移量为 27=128,则此时阶码 E 的表示范围为 0000 00001111 1111,即0255,则在上述条件下,浮点数为最大数的条件如下:符号 S 为正(1) 阶码 E 最大(8) 尾数 M 最大正数( 23)0 1111 1111 1111 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
4、)1 1111 1111 0000 0000 0000 0000 0000 000所以最小数的二进制表示为:1 1111 1111 0000 0000 0000 0000 0000 000对应十进制真值为:-12 127(3)规格化数所表示数的范围规格化要求尾数若为补码表示,则符号位和最高有效位符号必须不同。(A)浮点数为最大正数的条件如下:符号 S 为正(1) 阶码 E 最大(8) 尾数 M 最大正数( 23)0 1111 1111 1111 1111 1111 1111 1111 111所以最大正数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1
5、111 111对应十进制真值为:+(1-2 -23) 2127(B)浮点数为最小正数的条件如下:符号 S 为正(1) 阶码 E 最小(8) 尾数 M 最小正数( 23)0 0000 0000 1000 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)1 0000 0000 0111 1111 1111 1111 1111 111所以
6、最大负数的二进制表示为:0 0000 0000 0111 1111 1111 1111 1111 111对应十进制真值为:-(2 -1+2-23)2 -128(D)浮点数为最小负数的条件如下:符号 S 为负(1) 阶码 E 最大(8) 尾数 M 最小负数( 23)1 1111 1111 0000 0000 0000 0000 0000 000所以最小负数的二进制表示为:0 0000 0000 0000 0000 0000 0000 0000 000对应十进制真值为:-12 127所以,规格化数所表示数的范围如下:正数 +2-129+(1-2 -23) 2127 负数 -2127 -(2 -1+
7、2-23)2 -1284、将下列十进制数表示成 IEEE754 标准的 32 位浮点规格化数。(2)-27/64解:-27/64D=-0.011011B=-1.10112 -2,则阶码 E=-2+127=125,则浮点数为:符号 S(1) 阶码 E(8) 尾数 M(23)1 0111 1101 1011 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,01011100,00110最高进位
8、 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,11111111,01001最高进位 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
9、,11111,则x变补 00,11011+- y变补 00,1111101,11010则x-y 变补 =01,11010,符号位为 01,表示结果为正数,且发生正溢。(2)x=10111,y=11011解:x 变补 =00,10111,y 变补 =00,11011,-y 变补 =11,00101,则x变补 00,10111+- y变补 11,0010111,11100则x-y 变补 =11,11100,符号位为 11,表示结果为负数,且无溢出,即 x-y=-00100。7、用原码一位乘计算 xy。(2)x=-11111,y=-11011解:根据原码一位乘的运算规则,乘积的符号位单独处理 x0y
10、0,数值部分为绝对值相乘 x*.y*,其中数值部分的运算如下:部分积 乘数 说明0,00000+0,1111111011 部分积初态 z0=0+x*0,111110,01111+0,1111111101 右移一位,得 z1+x*1,011100,10111+0,0000001110 右移一位,得 z2+00,101110,01011+0,1111110111 右移一位,得 z3+x*1,010100,10101+0,1111101011 右移一位,得 z3+x*1,101000,11010 00101 右移一位,得 z3由上可得,数值部分的乘积为:x*.y*=0,1101000101,而乘积符
11、号位x0y0=11=0,则x.y 原 =0,1101000101,即 xy=+1101000101。8、用加减交替法计算 xy(先乘 1 个比例因子变成小数)。(2)x=-01011,y=11001解:按照加减交替原码除法的运算规则,符号位单独处理 x0y0,商值由两数绝对值相除 x*/y*求得,且当余数 Ri0,商 1,做 2Ri-y*运算,当余数 Ri1, Ex+1所以,x 补 =11,100;11.110101(0) 尾数求和:Mx 补 =11.110101(0) 对阶后的尾数Mx 补+ My补 =00.010110 = 100.001011(0)即x+y 补 =11,100;00.00
12、1011,因尾数不符合规格化要求,需左规。 规格化:尾数左规 2 次后得:x+y 补 =11,010;00.101100舍入处理:采用 0 舍 1 入法,因对阶时尾数右移丢 0,故可舍去。溢出判断:因阶码符号位为 11,故浮点数无溢出。所以最终结果为 x+y=+0.1011002-110(B )求 x-y 对阶:E 补 =Ex补 -Ey补 =11,011+ 00,100= 11,111由上式可得E 补 =11,111,即阶差为-1,所以 Mx1, Ex+1所以,x 补 =11,100;11.110101(0) 尾数求和:Mx 补 =11.110101(0) 对阶后的尾数Mx 补+ - My补
13、=11.101010 = 111.011111(0)即x-y 补 =11,100;11.011111,尾数符合规格化要求,无需规格化。 规格化:无需规格化舍入处理:采用 0 舍 1 入法,因对阶时尾数右移丢 0,故可舍去。溢出判断:因阶码符号位为 11,故浮点数无溢出。所以最终结果为 x-y=-0.1000012-10012、用 IEEE 32 位浮点格式表示如下的数:(2)-1.5解:-1.5D=-1.1B=-1.12 0,所以阶码 E=0+127=127,则有:符号位(1) 阶码 E(8) 尾数 M(23)1 0111 1111 100 0000 0000 0000 0000 0000十六
14、进制表示 BFC00000(4)1/16解:1/16D=0.0001B=1.02 -4,所以阶码 E=-4+127=123,则有:符号位(1) 阶码 E(8) 尾数 M(23)0 0111 1011 000 0000 0000 0000 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,所以浮点数为:+1.1012 -1=+0.11
15、01,则对应十进制数为:0.5+0.25+0.0625=0.8125。第 3 章 多层次的存储器1、设有一个具有 20 位地址和 32 位字长的存储器,问:(1)该存储器能存储多少个字节信息?(2 2032/8=4MB)(2)如果存储器由 512K8 位 SRAM 芯片组成,需要多少片?(2 2032/512K8=8)(3)需要多少位地址做芯片选择?(存储器由 20 根地址线,而每片芯片有 19根地址线,故需 1 位地址做芯片选择)3、用 16K8 位的 DRAM 芯片构成 64K32 位存储器,要求:(1)画出该存储器的组成逻辑框图。解:共需芯片 64K32/16K8=16 片,可先用 4
16、片 16K8 位的 DRAM 芯片用于位扩展构成 16K32 位存储器,然后再用 4 组 16K32 位存储器用于字扩展构成64K32 位存储器,其中,4 组 16K32 位存储器的片选信号由高位地址 A15 和A14 产生,该存储器的组成逻辑框图如下所示。其中,16K32 位的存储器的组成逻辑框图如下所示。(2)设存储器读写周期为 0.5s,CPU 在 1s 内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?解:5、要求用 256K16 位 SRAM 芯片设计 1024K32 位的存储器。SRAM 芯片有两个控制端:
17、当 CS有效时,该片选中。当 W/R=1 时执行读操作,当 W/R=0 时执行写操作。解:共需 SRAM 芯片 1024K32/256K16=8 片,可先用 2 片 256K16 位的 SRAM芯片用于位扩展构成 256K32 位存储器,然后再用 4 组 256K32 位存储器用于字扩展构成 1024K32 位存储器,该存储器的组成逻辑框图如下所示。其中,256K32 位的存储器的组成逻辑框图如下所示。6、用 32K8 位的 E2PROM 芯片组成 128K16 位的只读存储器,试问:(1)数据寄存器多少位?(16 位)(2)地址寄存器多少位?(17 位)(3)共需多少个 E2PROM 芯片?(128K16/32K8=8 个)(4)画出此存储器组成框图。解:可先用 2 片 32K8 位的 E2PROM 芯片用于位扩展构成 32K16 位存储器,然后再用 4 组 32K16 位存储器用于字扩展构成 128K16 位存储器,该存储器的组成逻辑框图如下所示。其中,32K16 位的存储器的组成逻辑框图如下所示。