课后作业答案第二章1.写出下列各数的原码、反码、补码表示(用8位二进制数)。其中MSB是最高位(又是符号位)LSB是最低位。(1)[-35]原=10100011;[-35]反=11011100[-35]补=11011101(2)[127]原=[127]反=[127]补=01111111;(3)[-127]原=11111111;[-127]反=10000000;[-127]补=10000001;4.将下列十进制数表示成IEEE754标准的32位浮点规格化数。(2)-27/64解:27/64=0.011011=1.1011*2-2E=127-2=125=01111101则规格化表示为:10111110110110000000000000000000=BEC80000H5.已知X和Y,用变形补码计算X+Y,同时指出运算结果是否溢出。(1)x=11011y=00011解:先写出x和y的变形补码再计算它们的和[x]补=0011011[y]补=0000011[x+y]补=[x]补+[y]补=0011011+00000110011110∴x+y=11110无溢出。(2)x=11011y=-10101解:先写出x和y的变形补码再计算它们的和[x]补=0011011[y]补=1101011[x+y]补=[x]补+[y]补=0011011+110101110000110∴x+y=00110无溢出。6.已知X和Y,用变形补码计算X-Y,同时指出运算结果是否溢出。(1)X=11011Y=-11111解:先写出x和y的变形补码,再计算它们的差[x]补=0011011[y]补=1100001[-y]补=0011111[x-y]补=[x]补+[-y]补=0011011+0011111=0111010∵运算结果双符号不相等∴01为正溢出(3)X=11011Y=-10011解:先写出x和y的变形补码,再计算它们的差[x]补=0011011[y]补=1101101[-y]补=0010011[x-y]补=[x]补+[-y]补=0011011+0010011=0101110∵运算结果双符号不相等∴01为正溢出7.用原码阵列乘法器、补码阵列乘法器分别计算X×Y。(2)x=-11111y=-11011解:a)带求补器的原码阵列乘法:|x|=11111,|y|=11011x*y=01101000101b)带求补器的补码阵列[x]补=100001,[y]补=100101乘积符号位单独运算1⊕1=0尾数部分算前求补输出│X│=11111,│y│=11011(算后的符号为正,不需要求补),得:x*y=01101000101x*y=011010001018.用原码阵列除法器计算x÷y。(先乘一个比例因子变成小数)(2)X=-01011,Y=11001解:符号位Sf=1⊕0=1,去掉符号位后:[|y|]补=0011001,[-|y|]补=1100111,[|x|]补=010119.设阶码3位,尾数6位,按浮点运算方法,完成下列取值的[x+y],[x-y]运算。(1)x=2-011*0.100101y=2-010*(-0.011110)解:设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,则它们的浮点表示分别为:[x]浮=11101,0.100101[y]浮=11110,1.100010求和:(1)求阶差并对阶ΔE=Ex-Ey=[Ex]补-[Ey]补=[Ex]补+[-Ey]补=11101+00010=11111即ΔE为-1,x阶码小,应使Mx右移1位,Ex加1,[x]浮=11110,0.010010(1)(2)尾数求和:00.010010(1)+11.10001011.110100(1)(3)规格化可见尾数运算结果的符号位与最高位相同,应执行左规格化处理,每左移尾数两次,相应阶码减2,所以结果尾数为1.010010,阶码为11100(4)舍入处理,对本题不需要。(5)判溢出阶码两符号位为11,不溢出,故最后结果为[x]浮+[y]浮=11100,1.010010真值为2-100*(-0.101110)求差:(2)尾数求差00.010010(1)+00.01111000.110000(1)[x]浮-[y]浮=11110,0.110001真值为2-110*0.11000110.设数的阶码为3位,尾数6位,用浮点运算方法,计算下列各式(1)(23×13/16)×[24×(-9/16)]解:Ex=0011,Mx=0.110100Ey=0100,My=-0.100100Ez=Ex+Ey=0111|Mx|*|My|0.1101*0.10010110100000000000110100000001110101向左规格化:=26*(-0.1110101)11、某加法器进位链小组信号为C4C3C2C1,低位来的进位信号为C0,请分另按下述两种方法写出C4C3C2C1逻辑表达式:(1)串行进位方式(2)并行进位方式解:(1)串行进位方式C1=G1+P1C0其中:G1=A1B1P1=A1⊕B1(A1+B1也对)C2=G2+P2C1G2=A2B2P2=A2⊕B2C3=G3+P3C2G3=A3B3P3=A3⊕B3C4=G4+P4C3G4=A4B4P4=A4⊕B4(2)并行进位方式C1=G1+P1C0C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0第三章1.有一个具有20位地址和32位字长的存储器,问:(1)该存储器能存储多少个字节的信息?(2)如果存储器由512K×8位SRAM芯片组成,需要多少芯片?(3)需要多少位地址作芯片选择?解:(1)∵220=1M,∴该存储器能存储的信息为:1M×32/8=4MB(2)(1000/512)×(32/8)=8(片)(3)需要1位地址作为芯片选择。2.已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M*8位的DRAM芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问;(1)若每个内存条为16M*64位,共需几个内存条?(2)每个内存条内共有多少DRAM芯片?(3)主存共需多少DRAM芯片?CPU如何选择各内存条?解:(1).共需内存条数为m:m=226÷224=4(个)(2).每个内存条内有DRAM芯片数为n:n=(16/4)×(64/8)=32(片)(3)主存共需DRAM芯片为:32×4=128(片)每个内存条有16片DRAM芯片,容量为16M×64位,需24根地址线(A23~A0)完成内存条内存储单元寻址。一共有4个内存条,采用2根高位地址线(A25~A24),通过2:4译码器译码产生片选信号对各模块板进行选择。3.用16K*8位的DRAM芯片构成64K*32位存储器,要求:(1)画出该存储器的组成逻辑框图。(2)设存储器读/写周期为0.5μS,CPU在1μS内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?解:(1)组成64K×32位存储器需存储芯片数为N=(64K/16K)×(32位/8位)=16(片)每4片组成16K×32位的存储区,有A13-A0作为片内地址,用A15、A14经2:4译码器产生片选信号,逻辑框图为:(2)根据已知条件,CPU在1us内至少访存一次,而整个存储器的平均读/写周期为0.5us,假定16K*8位的DRAM芯片用128*1024矩阵存储元构成,如果采用集中刷新,有64us的刷新死时间,肯定不行;如果采用分散刷新,则每1us只能访存一次,也不行。所以采用异步式刷新方式。刷新时只对128行进行异步方式刷新,则刷新间隔为2ms/128=15.625us,可取刷新信号周期大约为15.5us,则两次刷新的最大时间间隔为tmax=15.5(μS)对全部存储单元刷新一遍所需实际刷新时间为t=0.5×128=64(μS)(注意假设的刷新时间不能大于0.5μS)片328*12832*1024KKCPU3:8译码器Y1Y2Y3Y4Y5Y6Y7Y8D0-D31A0-A16A17-A194.有一个1024K*32位的存储器,由128K*8位的DRAM芯片构成。问:(1)总共需要多少DRAM芯片?(2)设计此存储体组成框图。(3)采用异步刷新方式,如单元刷新间隔不超过8ms,则刷新信号周期是多少?解:(1)(2)(3)如果选择一个行地址进行刷新,刷新地址为A0-A8,因此这一行上的2048个存储元同时进行刷新,即在8ms内进行512个周期。刷新方式可采用:在8ms中进行512次刷新操作的集中刷新方式,或按8ms/512=15.5us刷新一次的异步刷新方式。7.某机器中,已知配有一个地址空间为0000H-3FFFH的ROM区域。现在再用一个RAM芯片(8K×8)形成40K×16位的RAM区域,起始地址为6000H,假定RAM芯片有和信号控制端。CPU的地址总线为A15-A0,数据总线为D15-D0,控制信号为(读/写),(访存),要求:(1)画出地址译码方案。(2)将ROM与RAM同CPU连接。解:(1)依题意,主存地址空间分布如右图所示,可选用2片27128(16K×8位)的EPROM作为ROM区;10片的8K×8位RAM片组成40K×16位的RAM区。ROM需14位片内地址,而RAM需13位片内地址,故可用A15-A13三位高地址经译码产生片选信号,方案如下:WR/MREQCSWE8.设存储器容量为64M,字长为64位,模块数m=8,分别用顺序和交叉方式进行组织。存储周期T=100ns,数据总线宽度为64位,总线传送周期τ=50ns。求:顺序存储器和交叉存储器的带宽各是多少?解:顺序存储器和交叉存储器连续读出m=8个字的信息总量都是:q=64位*8=512位顺序存储器和交叉存储器连续读出8个字所需的时间分别是:t1=mT=8*100ns=8*10-7s顺序存储器和交叉存储器的带宽分别是:]/[1064)10*8(512/7711stqW位]/[108.113)10*5.4(512/7722stqW位nsnsnsnsmTt7210*5.445050*7100)1(9.CPU执行一段程序时,cache完成存取的次数为2420次,主存完成存取的次数为80次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。解:cache的命中率主存慢于cache的倍率cache/主存系统效率e为平均访问时间Ta为968.08024202420mccNNNH640240cmTTr%2.86%100*968.0*)61(61%100*)1(1HrrensnsnseTTca4.46862.04010.已知cache存储周期40ns,主存存储周期200ns,cache/主存系统平均访问时间为50ns,求cache的命中率是多少?解:已知cache/主存系统平均访问时间ta=50ns,而ta=h*tc+(1-h)*tm;所以h*tc+tm-h*tm=50ns,(tc-tm)*h=50-tmh=(50-tm)/(tc-tm)=(50-200)/(40-200)=150/160=93.75%第四章4.指令格式结构如下所示,试分析指令格式及寻址方式特点。解:指令格式及寻址方式特点如下:①双字长二地址指令,用于访问存储器;②操作码OP可指定26=64条指令;③RS型指令,两个操作数一个在寄存器中(16个寄存器之一),另一个在存储器中;④有效地址通过变址求得:E=(变址寄存器)±D,变址寄存器可有16个