• 439.47 KB
  • 2022-04-22 11:18:35 发布

计算机组成原理 蒋本珊 习题解答.pdf

  • 22页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'第二部分习题解答第2章数据的机器层次表示(教材P49)1.设机器数的字长8位(含一位符号位),分别写出下列各二进制数的原码、补码和反码:0,0.1000,-0.1111,1101.[解]真值原码补码反码00,00000000,00000000,00000000.10000.10000000.10000000.10000000.11110.11110000.11110000.1111000-0.11111.11110001.00010001.00001113.已知下列数的原码表示,分别写出它们的补码表示:[X1]原=0.10100,[X2]原=1.10111。[解][X1]补=0.10100,[X2]补=1.010014.已知下列数的补码表示,分别写出它们的真值:[X1]补=0.10100,[X2]补=1.10111。[解]X1=0.10100,X2=-0.010017.设[X]补=1.A1A2A3A4A5A6,(1)若要X>-1/2,A1~A6要满足什么条件?(2)若要-1/8≥X≥-1/4,A1~A6要满足什么条件?[解](1)∵[-1/2]补=1.100000∴X>-1/2的条件是:1.A1A2A3A4A5A6>1.100000即A1(A2+A3+A4+A5+A6)=1(2)∵[-1/8]补=1.111000[-1/4]补=1.110000∴-1/8≥X≥-1/4的条件是:1.A1A2A3A4A5A6≤1.111000并且1.A1A2A3A4A5A6≥1.110000即A1A2(A3A4A5A6+A3)=1简化为:A1A2(A4A5A6+A3)=19.某机字长16位,问在下列几种情况下所能表示数值的范围:(1)无符号整数(2)用原码表示定点小数(3)用补码表示定点小数(4)用原码表示定点整数(5)用补码表示定点整数16[解](1)0≤X≤(2-1)-15-15(2)-(1-2)≤X≤(1-2) 132“计算机组成原理”讲义-15(3)-1≤X≤(1-2)-15-15(4)-(1-2)≤X≤(2-1)15-15(5)-2≤X≤(2-1)12.某浮点数字长16位,其中阶码部分6位(含一位阶符),移码表示,以2为底;尾数部分10位(含1位数符,位于尾数最高位),补码表示,规格化。分别写出下列各题的二进制代码与十进制真值。(1)非零最小正数(2)最大正数(3)绝对值最小负数(4)绝对值最大负数5-1-2-33[解](1)非零最小正数:000000,0.100000000;2×2=2。5-92-1-931(2)最大正数:111111,0.111111111;(1-2)×2=(1-2)×25-1-9-2(3)绝对值最小负数:000000,1.011111111;-(2+2)×2。52-131(4)绝对值最大负数:111111,1.000000000;-1×2=-2。15.某浮点数字长32位,格式如下。其中阶码部分8位,以2为底,移码表示;尾数部分一共24位(含1位数符),补码表示。现有一浮点代码为(8C5A3E00)16,试写出它所表示的十进制真值。078931阶码数符尾数[解](8C5A3E00)16=10001100010110100011111000000000B12真值:+0.10110100011111×2=(101101000111.11)2=(2887.75)1017.将下列十进制数转换为IEEE短浮点数:(1)28.75;(3)-0.625;(5)-1000.5。4[解](1)28.75=11100.11=1.110011×2符号位=0阶码=127+4=131IEEE短浮点数格式:0,10000011,11001100000000000000000即41E60000H-1(3)-0.625=0.101=-1.01*2符号位=1阶码=127-1=126IEEE短浮点数格式:1,01111110,01000000000000000000000即BF200000H 第二部分习题解答1339(5)-1000.5=1111101000.1=1.1111010001*2符号位=1阶码=127+9=136IEEE短浮点数格式:1,10001000,11110100010000000000000即C47A2000H18.将下列IEEE短浮点数转换为十进制数:(1)11000000111100000000000000000000(3)01000011100110010000000000000000[解](1)1,10000001,11100000000000000000000符号位=1阶码=129-127=221.111*2=111.1B=7.5∴结果=-7.5(3)0,10000111,00110010000000000000000符号位=0阶码=135-127=881.0011001*2=100110010B=306。∴结果=306。20.以下列形式表示(5382)10。(1)8421码;(2)余3码;(3)2421码;(4)二进制码[解](1)0101001110000010;(2)1000011010110101;(3)1011001111100010;(4)1010100000110。21.填写下列代码的奇偶校验位,现设为奇校验:101000010001100101001110[解]3个代码的校验位分别是;0,0,1。补充题2-1.已知[X]补=3EH,[Y]补=DCH,求:[2X]补,[2Y]补,[1/2X]补,[1/4Y]补,[X]原,[Y]原,[X]反,[Y]反,[X]移,[Y]移[解][2X]补=7CH;[X/2]补=1FH;[X]原=3EH;[X]反=3EH;[X]移=BEH[2Y]补=B8H;[Y/4]补=F7H;[Y]原=A4H;[Y]反=DBH;[Y]移=5CH 134“计算机组成原理”讲义第3章指令系统(教材P78)3.某机为定长指令字结构,指令长度为16位,每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令已有K种,无操作数指令已有L种,为单操作数最多可能有多少种?上述三类指令各自允许的最大指令条数是多少?[解](1)设单操作数指令有X条,4664位6位6位则((2-K)2-X)2>=L466即,X≤(2-K)2-(L/2)466∴最多还可以设计出单操作数指令(2-K)2-(L/2)条。4(2)双操作数指令的最大指令数:2-1;6单操作数指令的最大指令数:152-1(假定双操作数指令仅1条,为无操作数指令留出1个扩展窗口);16126无操作数指令的最大指令数:2-2-2126(其中2为表示某条二地址指令占用的编码数,2为表示某条单地址指令占用的编码数,此时双操作数和单操作数指令各仅有1条)4.设某机为定长指令字结构,指令长度为12位,每个地址码占3位,试提出一种分配方案,使该指令系统包含:4条三地址指令,8条二地址指令,180条单地址指令。[解]4条三地址指令:000XXXYYYZZZ„„011XXXYYYZZZ8条二地址指令:100000XXXYYY„„100111XXXYYY180条单地址指令:101000000XXX„„111110011XXX5.指令格式同题4,能否构成:三地址指令4条,单地址指令255条,零地址指令64条?为什么?[解]不能构成这样的指令系统。这是因为,如果三地址指令有4条,单地址指令有255条,则零地址指令的条数最多只363能有:[(2-4)×2-255]×2=83位3位3位3位3三地址指令:可从2种编码中选4种,剩4个编码6单地址指令:可从扩展出4×2个编码种选255种,剩1个编码3零地址指令:剩下1个编码与3位地址只能扩展出1×2个编码 第二部分习题解答1357.试比较间接寻址和寄存器间址。[解]间接寻址方式其有效地址在内存中,操作数也在内存中;寄存器寻址方式其有效地址在CPU内的寄存器中,操作数在内存中。所以前者寻找操作数较慢。补充题3-1.根据操作数所在的位置,指出其寻址方式的名称。(1)操作数在寄存器中(2)操作数的地址在通用寄存器中(3)操作数在指令中(4)操作数的地址在指令中(5)操作数地址的地址在指令中(6)操作数的地址为寄存器内容与位移量之和(寄存器分别为基址寄存器,变址寄存器和程序计数器)(7)操作数为某二进制位(8)操作数为栈顶元素[解]各小题对应寻址方式的名称是:(1)寄存器寻址(2)寄存器间址(3)立即寻址(4)直接寻址(5)间接寻址(6)分别为基址、变址和自相对寻址(7)位寻址(8)堆栈寻址10.某机字长为16位,主存容量为64K字,指令格式为单字长单地址,共有64条指令。试说明:(1)若只采用直接寻址方式,指令能访问多少主存单元?(2)为扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少?指令直接寻址的范围为多少?(3)采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,指令寻址范围为多少?指令直接寻址范围为多少?(4)采用(2)、(3)两种方式结合,指令的寻址范围为多少?指令直接寻址范围为多少?[解]该计算机共有64条指令,所以指令的操作码需要占6位,其余10位地址码字段。(1)只采用直接寻址方式时,不需要标识寻址方式,地址码字段的10位全都作为直接10地址,所以指令能访问主存单元数为1K字(0~2-1单元)。6位10位OPA(2)采用直接/间接寻址方式时,需从10位的地址字段中留出1位来作“直接/间接”寻址的标志,余下的9位为形式地址。6位1位9位OP@A9位地址(直接寻址)9位地址的地址→16位地址(间址) 136“计算机组成原理”讲义916∴指令直接寻址的范围为0~2-1号存储单元,间接寻址的范围为0~2-1号存储单元(存储字长即操作数地址的位数)。(3)采用页面寻址方式时,也需从10位的地址字段中留出1位来作“Z/C”寻址的标志,余下的9位为形式地址。6位1位9位OPZ/CA9位零页地址(零页寻址)9位当前页地址(当前页寻址)9∴指令的零页寻址的范围为0~2-1号存储单元,当前页寻址的范围也指令所在页有9关,可访问当前页内的0~2-1号存储单元。由于“当前页”可以是64K字主存的任意一页,16所以指令可能访问到的地址是0~2-1号存储单元。(4)需从10位的地址字段中留出2位来标志“直接/间接”和“Z/C”,余下8位为形式地址。6位1位1位8位OPZ/C@A816∴指令直接寻址的范围为0~2-1号存储单元,间接寻址的范围为0~2-1号存储单元(存储字长即操作数地址的位数)。12.已知某小型机字长为16位,其双操作数指令的格式如下:0567815OPRA其中:OP为操作码,R为通用寄存器地址。试说明下列情况下能访问的最大主存区域有多少机器字?(1)A为立即数(2)A为直接主存单元地址(3)A为间接地址(非多重间址)(4)A为变址寻址的形式地址,假定变址寄存器为R1(字长为16位)[解](1)1个机器字(即指令字);(2)256个机器字(可直接寻址的地址有8位);(3)65536个机器字(指令的地址字段给出的操作数地址的地址是8位,从内存取出的操作数地址是16位,与字长相同)(4)65536个机器字(变址寄存器16位,与8位位移量相加并取16位模,所得到的地址还是16位) 第二部分习题解答137第4章数值的机器运算(教材P129)2.某加法器采用组内并行,组间并行的进位链,4位一组,写出进位信号C6逻辑表达式。[解]组间并行的进位链,产生的最低一组的进位输出为:C4=G1*+P1*C0(其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1;P1*=P4P3P2P1)然后在组内产生进位信号C6:C6=G6+P6C5=G6+P6G5+P6P5C44.已知X和Y,使用它们的变形补码计算出X+Y,并指出结果是否溢出。(1)X=0.11011,Y=0.11111(2)X=0.11011,Y=-0.10101(3)X=-0.10110,Y=-0.00001(4)X=-0.11011,Y=0.11110[解](1)[X]补=0.11011,[Y]补=0.1111100.11011[X]补+00.11111[Y]补01.11010[X+Y]补结果正溢出!(2)[X]补=0.11011,[Y]补=1.0101100.11011[X]补+11.01011[Y]补00.00110[X+Y]补结果不溢出!X+Y=0.00110(3)[X]补=1.01010,[Y]补=1.1111111.01010[X]补+11.11111[Y]补11.01001[X+Y]补结果不溢出!X+Y=-0.10111(4)[X]补=1.00101,[Y]补=0.1111011.00101[X]补+00.11110[Y]补00.00011[X+Y]补结果不溢出!X+Y=0.000115.已知X和Y,使用它们的变形补码计算出X-Y,并指出结果是否溢出。(1)X=0.11011,Y=-0.11111(2)X=0.10111,Y=0.11011(3)X=-0.11011,Y=-0.10011(4)X=-0.10110,Y=-0.00001 138“计算机组成原理”讲义[解](1)[X]补=0.11011,[Y]补=1.00001,[-Y]补=0.1111100.11011[X]补+00.11111[-Y]补01.11010[X-Y]补结果正溢出!(2)[X]补=0.10111,[Y]补=0.11011,[-Y]补=1.0010100.10111[X]补+11.00101[-Y]补11.11100[X-Y]补结果不溢出!X-Y=11.11100(3)[X]补=0.11011,[Y]补=1.01101,[-Y]补=0.1001100.11011[X]补+00.10011[-Y]补01.01110[X-Y]补结果正溢出!(4)[X]补=1.01010,[Y]补=1.11111,[-Y]补=0.0000111.01010[X]补+00.00001[-Y]补11.01011[X-Y]补结果不溢出!X-Y=-0.101016.已知:X=0.1011,Y=-0.0101求:[X/2]补,[X/4]补,[-X]补,[Y/2]补,[Y/4]补,[-Y]补,[2Y]补[解]由[X]补=0.1011,[Y]补=1.1011得:[X/2]补=0.0101,[X/4]补=0.0010,[-X]补=1.0101[Y/2]补=1.1101,[Y/4]补=0.0010,[-Y]补=0.0101,[2Y]补=1.0110思考4-1.在全加器里进位输出表达式Ci=AiBi+(Ai⊕Bi)Ci-1为什么可以用下式替代:Ci=AiBi+(Ai+Bi)Ci-1?答:由真值表可得到:(Ai+Bi)=(Ai⊕Bi)+AiBi∴Ci=AiBi+(Ai+Bi)Ci-1=AiBi+[(Ai⊕Bi)+AiBi]Ci-1=AiBi+(Ai⊕Bi)Ci-1+AiBiCi-1=AiBi+(Ai⊕Bi)Ci-1思考4-2.先行进位主要是解决什么问题,采用什么设计思路?答:先行进位解决的问题是加法进位的传递速度问题。基本设计原理是:让各位的进位与低位的进位无关,仅与两个参加操作的数有关。由于每位的操作数都是同时给出的,各进位信号几乎同时产生,和数也随之产生,所以先行进位可以提高进位的传递速度,从而提高加法器的运算速度。 第二部分习题解答1398.分别用原码乘法和补码乘法计算X×Y.(1)X=0.11011,Y=-0.11111(2)X=-0.11010,Y=-0.01110[解]原码乘法:(1)|X|=0.11011→B,|Y|=0.11111→C,0→AAC说明00.000000.11111+|X|00.11011C5=1,+|X|00.1101100.01101101111部分积右移1位+|X|00.11011C5=1,+|X|01.0100000.10100010111部分积右移1位+|X|00.11011C5=1,+|X|01.0111100.10111101011部分积右移1位+|X|00.11011C5=1,+|X|01.1001000.11001010101部分积右移1位+|X|00.11011C5=1,+|X|01.1010000.11010001010部分积右移1位所以,|X×Y|=0.1101000101X×Y=-0.1101000101(2)|X|=0.11010→B,|Y|=0.01110→C,0→AA寄存器C寄存器说明00.000000.01110+000.00000C5=0,+000.0000000.00000000111部分积右移1位+|X|00.11010C5=1,+|X|00.1101000.01101000011部分积右移1位+|X|00.11010C5=1,+|X|01.0011100.10011100001部分积右移1位+|X|00.11010C5=1,+|X|01.0110100.10110110000部分积右移1位+000.00000C5=0,+000.1011000.01011011000部分积右移1位所以,|X×Y|=0.0101101100X×Y=-0.0101101100 140“计算机组成原理”讲义补码乘法:(1)[X]补=0.11011→B,[Y]补=1.00001→C,0→A[-X]补=1.00101附加位A寄存器C寄存器说明00.000001.000010+[-X]补11.00101C5C6=10,+[-X]补11.0010111.100101100001部分积右移1位+[X]补00.11011C5C6=01,+[X]补00.0110100.001101110000部分积右移1位+000.00000C5C6=00,+000.0011000.000110111000部分积右移1位+000.00000C5C6=00,+000.0001100.000011011100部分积右移1位+000.00000C5C6=00,+000.0000100.000001101110部分积右移1位+[-X]补11.00101C5C6=10,+[-X]补11.00101所以,[X×Y]补=1.0010111011X×Y=-0.1101000101(2)[X]补=1.00110→B,[Y]补=1.10010→C,0→A[-X]补=0.11010附加位A寄存器C寄存器说明00.000001.100100+000.00000C5C6=00,+000.0000000.000000110010部分积右移1位+[-X]补00.11010C5C6=10,+[-X]补00.1101000.011010011001部分积右移1位+[X]补11.00110C5C6=01,+[X]补11.1001111.110011001100部分积右移1位+000.00000C5C6=00,+011.1100111.111001100110部分积右移1位+[-X]补00.11010C5C6=10,+[-X]补00.1011000.010110110011部分积右移1位+000.00000C5C6=11,+000.01011所以,[X×Y]补=0.0101101100X×Y=0.0101101100 第二部分习题解答14110.分别用原码和补码加减交替法计算X/Y。(2)X=-0.10101,Y=0.11011(4)X=-0.10110,Y=-0.11011[解]原码除法:(2)|X|=00.10101→A,|Y|=00.11011→B,0→C[|Y|]变补=11.00101AA寄存器C寄存器C说明00.101010.00000+[|Y|]变补11.00101-|Y|11.110100.00000余数为负,商0←11.10100左移一位+|Y|00.11011+|Y|00.011110.00001余数为正,商1←00.11110左移一位+[|Y|]变补11.00101-|Y|00.000110.00011余数为正,商1←00.00110左移一位+[|Y|]变补11.00101-|Y|11.010110.00110余数为负,商0←10.10110左移一位+|Y|00.11011+|Y|11.100010.01100余数为负,商0←11.00010左移一位+|Y|00.11011+|Y|11.111010.11000余数为负,商0+|Y|00.11011+|Y|恢复余数00.11000商符:Qs=Xs⊕Ys=1⊕0=1∴商=-0.11000-5X/Y=-[0.11000+(0.11000*2)/0.11011](中括号内余数项的分子和分母都取正) 142“计算机组成原理”讲义(4)X=-0.10110,Y=-0.11011|X|=00.10110→A,|Y|=00.11011→B,0→C[|Y|]变补=11.00101AA寄存器C寄存器C说明00.101100.00000+[|Y|]变补11.00101-|Y|11.110110.00000余数为负,商0←11.10110左移一位+|Y|00.11011+|Y|00.100010.00001余数为正,商1←01.00010左移一位+[|Y|]变补11.00101-|Y|00.001110.00011余数为正,商1←00.01110左移一位+[|Y|]变补11.00101-|Y|11.100110.00110余数为负,商0←11.00110左移一位+|Y|00.11011+|Y|00.000010.01101余数为正,商1←00.00010左移一位+[|Y|]变补11.00101-|Y|11.001110.11010余数为负,商0+|Y|00.11011+|Y|恢复余数00.00010商符:Qs=Xs⊕Ys=1⊕1=0∴商=0.11010-5X/Y=+[0.11010+(0.00010*2)/0.11011](转下页)思考4-3.计算机硬件的微操作有些什么特点?答:计算机硬件的微操作至少有这样一些特点:①是寄存器到寄存器的操作(各种记忆元件可抽象为寄存器);②是硬件应该一步完成的操作(该操作通常不能拆成几步来操作);③需要有开通相应数据通路的电平型控制信号和记忆元件接收数据的脉冲信号相配合来完成操作;④进行该操作时其数据流动是畅通的,并且没有路径冲突。 第二部分习题解答143<第10题续>补码除法:(2)X=-0.10101,Y=0.11011[X]补=11.01011→A,[Y]补=00.11011→B,0→C;[-Y]补=11.00101AC说明11.010110.00000+[Y]补00.11011[X]补与[Y]补异号,+[Y]补00.001100.00001[ri]补与[Y]补同号,商1←00.01100左移一位+[-Y]补11.00101+[-Y]补11.100010.00010[ri]补与[Y]补异号,商0←11.00010左移一位+[Y]补00.11011[X]补与[Y]补异号,+[Y]补11.111010.00100[ri]补与[Y]补异号,商0←11.11010左移一位+[Y]补00.11011[X]补与[Y]补异号,+[Y]补00.101010.01001[ri]补与[Y]补同号,商1←01.01010左移一位+[-Y]补11.00101+[-Y]补00.011110.10011[ri]补与[Y]补同号,商1←00.11110左移一位+[-Y]补11.00101+[-Y]补00.000111.00111末位恒置1∴[商]补=1.00111(4)X=-0.10110,Y=-0.11011[X]补=11.01010→A,[Y]补=11.00101→B,0→C;[-Y]补=00.11011AC说明11.010100.00000+[-Y]补00.11011[X]补与[Y]补同号,+[-Y]补00.001010.00000[ri]补与[Y]补异号,商0←00.01010左移一位+[Y]补11.00101+[Y]补11.011110.00001[ri]补与[Y]补同号,商1←10.11110左移一位+[-Y]补00.11011[X]补与[Y]补同号,+[-Y]补11.110010.00011[ri]补与[Y]补同号,商1←11.10010左移一位+[-Y]补00.11011[X]补与[Y]补同号,+[-Y]补00.011010.00110[ri]补与[Y]补异号,商0←00.11010左移一位+[Y]补11.00101+[Y]补11.111110.01101[ri]补与[Y]补同号,商1←11.11110左移一位+[-Y]补00.11011[X]补与[Y]补同号,+[-Y]补00.110010.11011末位恒置1∴[商]补=1.00111 144“计算机组成原理”讲义11.设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题:101100(1)X=2×(-0.100010),Y=2×(-0.111110)-101-100(2)X=2×0.101100,Y=2×(-0.101000)-011-001(3)X=2×0.101100,Y=2×(-0.111100)注:此题中阶码用二进制表示。求:X+Y,X-Y[解](1)浮点数:[X]浮=0101;1.011110[Y]浮=0100;1.000010对阶:小阶向大阶看齐,△E=EA-EB=1,[Y]浮’=0101;1.100001对阶之后,尾数相加和相减。相加:11.011110相减:11.011110+11.100001+00.01111110.11111111.111101规格化:相加结果需要右规1次,得:[X+Y]浮=0110;1.011111相减结果需需左规4次,得:[X-Y]浮=0001;1.010000110∴X+Y=2×(-0.100001)001X-Y=2×(-0.110000)(2)浮点数:[X]浮=1011;0.101100[Y]浮=1100;1.011000对阶:小阶向大阶看齐,△E=EA-EB=-1,[X]浮’=1100;0.010110对阶之后,尾数相加和相减。相加:00.010110相减:00.010110+11.011000+00.10100010.10111000.111110规格化:相加结果需要左规一次,得:[X+Y]浮=1011;1.011100-101∴X+Y=2×(-0.100100)-100X-Y=2×0.111110(3)浮点数:[X]浮=1101;0.101100[Y]浮=1111;1.000100对阶后:[X]浮’=1111;0.001011尾数相加减后:[X+Y]浮=1111;11.001111[X-Y]浮=1111;01.000111尾数规格化后:[X+Y]浮=1111;1.001111[X-Y]浮=0000;0.100011-001∴X+Y=2×(-0.110001)000X-Y=2×0.100011 第二部分习题解答145第5章存储系统和结构(教材P177)17.用容量为16K×1的DRAM芯片构成64KB的存储器。(2)设存储器的读、写周期均为0.5uS,CPU的1uS内至少要访存一次,试问采用那种刷新方式比较合理?相邻两行之间的刷新时间间隔是多少?对全部存储单元刷新一遍所需的实际时间是多少?[解]因为要求CPU在1uS内至少要访存一次,所以不能使用集中刷新方式,分散和异步刷新方式都可以使用,但异步刷新方式比较合理。16K×1的DRAM芯片需要14位地址,所以行地址和列地址各7位,芯片存储阵列的7行数为2=128,列数也是128。相邻两行之间的刷新间隔=最大刷新间隔时间/行数=2mS/128=15.625uS取15.5uS,即进行读或写操作31次之后刷新一行。对全部存储单元刷新一遍所需的实际刷新时间=0.5uS×128=64us。(每刷一行需占用0.5uS的时间,与读写周期相同)补充5-1.有8K4的静态RAM芯片,试组成一个16K8的随机存储器,问需要多少芯片?片选信号怎样产生?若存储芯片的读写采用两条线(RD和WR)进行控制,而系统提供的控制信号有R/W(高为读,低为写)和MREQ(为低时表示访问内存),试画出该存储器的组成逻辑图。[解]需要RAM芯片4片;各芯片的片内地址线接外部提供的地址线的低13位A12-0;4片RAM的双向数据线按每两片(U1和U0,U3和U2)组成位扩展的方式分别接入数据线上,U1和U0的片选线及U3和U2的片选线及其逻辑见存储器的组成逻辑图如下:A12-0RDWRR/WCS1-0CS3-2CSCSCSCSD3-0D3-0D3-0D3-0A12-0A12-0A12-0A12-08K48K48K48K4U3U2U1U0D7-4D3-0MREQ≥1CS1-0说明:当MREQ为低并且A13为低时,产生片选信号CS1-0;A13当MREQ为低并且A13为高时,产生片选信号CS3-2。≥1CS3-2 146“计算机组成原理”讲义18.有一个8位机,采用单总线结构,地址总线16位(A15~A0),数据总线8位(D7~D0),控制总线中与主存有关的信号有MREQ(低电平有效允许访存)和R/W(高电平为读命令,低电平为写命令)。主存地址分配如下:从0~8191为系统程序区,有ROM芯片组成;从8192~32767为用户程序区,最后(最大地址)2K地址空间为系统程序工作区。(上述地址均用十进制表示,按字节编址)。现有如下存储芯片:8K×8的ROM,16K×1、2K×8、4K×8、8K×8的SRAM。请从上述规格中选用芯片设计该主存储器,画出主存的连接框图,并指以画出片选逻辑及与CPU的连接。[解]根据CPU的地址线、数据线,可确定整个主存空间为64K×8,系统程序区由ROM芯片组成,用户程序区和系统程序工作区均由RAM芯片组成。共需:8K×8的ROM芯片1片,8K×8的SRAM芯片3片,2K×8的SRAM芯片1片。主存地址分配如下图所示。A15A14A13A12A11A10~A00000H000------------8KBROM1FFFH2000H001------------8KBRAM3FFFH4000H010------------8KBRAM5FFFH6000H011------------8KBRAM7FFFH„„„„11111------2KBRAMF800HFFFFH主存的连接框图如下图所示。CS0片选信号的逻辑:R/W1≥1CS0=A15A14A13MREQR/WCS1=A15A14A13MREQCS2=A15A14A13MREQCS3=A15A14A13MREQCS73=A15A14A13A12A11MREQCS73 第二部分习题解答14725.设某机主存容量为4MB,Cache容量为16KB,每块包含8个字,每字32位,设计一个四路组相联映像(即Cache每组内共有四个块)的Cache组织,要求:(1)画出主存地址字段中各段的位数。(2)设Cache的初态为空,CPU需依次从主存第0,1,2,„„,(99?)号单元读出100个字(主存一次读出一个字。),并重复按此次序读8次,问命中率是多少?(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度提高多少倍?、[解](1)主存容量为4MB,按字编址,所以主存地址为20位,地址格式如下图所示:区号(8位)组号(7位)组内块号(2位)块内地址(5位)(2)Cache的地址格式为组号(7位)组内块号(2位)块内地址(5位)主存第0,1,2,„„,(99?)号单元在第0区第0~12组中,被映射到Cache的第0~12组中,不存在映射时的组冲突。(参考教材P170图5-29C)由于Cache起始为空,所以第一遍读时每一块中的第一个单元没命中(此时要把该块的8个字都调入Cache,这样CPU之后再读该块的其它单元就会命中(未考虑块调入过程)),而后面七遍读取时每个单元均可以命中。命中率=Nc/(Nc+Nm)=(100-13+7×100)/(8×100)=98.4%(3)设Cache的存取周期为T,则主存的存取周期为6T。有Cache的访存时间=H×Tc+(1-H)×(Tm+Tc)=T+(1-98.4%)×6T=1.096T无Cache的访存时间为6T所以提高后的速度倍数=6/1.096=5.47倍。P281(教材第7章)4.若对磁介质存储器写入数据序列10011,请画出不归零-1制、调相制、调频制、改进的调频制等记录方式的写电流波形。[解]写电流波形如下图所示:10011NRZ-1PEFMMFM 148“计算机组成原理”讲义5.主存储器与磁介质存储器在工作速度方面的指标有什么不同?为什么磁盘存储器采用两个以上的指标来说明其工作速度?[解]主存储器速度指标主要有存取速度和存取周期,而磁介质存储器速度指标为平均存取时间,这是因为磁盘存储器首先需要将磁头移动到指定的磁道上(该过程可视为随机存取),然后等待记录块(扇区)旋转到磁头的下方才能进行读写,所以磁盘存储器的平均存取时间至少应当包括平均寻道时间和平均等待时间两部分器。6.某磁盘组有六片磁盘,每片可有两个记录面,存储区域内径为22cm,外径为33cm,道密度为40道/cm,位密度400b/cm,转速2400r/min。试问:(1)共有多少个存储面可用?(2)共有多少个圆柱面?(3)整个磁盘组的总存储器容量有多少?(4)数据传送率是多少?(5)如果某文件长度超过一个磁道的容量,应将它记录在同一存储面上还是记录在同一圆柱面上?为什么?(6)如果采用定长信息块记录格式,直接寻址的最小单位是什么?寻址命令中如何表示磁盘地址。[解](1)6×2=12(面),共有12个存储面可用。(2)40×(32-22)/2=220(道),共有220个圆柱面。6(3)12×22∏×400×220=73×10(位)66(4)数据传送率=(22∏×400)/(60/2400)=1.1×10(b/s)=0.138×10(B/S)(5)记录在同一圆柱面上。因为这样安排存取速度快。(6)直接寻址的最小单位是扇区。[分配磁盘空间是以簇为单位]磁盘地址为:驱动器号、圆柱面号、盘面号、扇区号。 第二部分习题解答149第6章中央处理器(教材P221)6.某机CPU芯片的主振频率为8MHz,其时钟周期是多少uS?若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为0.8MIPS,试问:(1)平均指令周期是多少?(2)平均每个指令周期含有多少个机器周期?(3)若改用时钟周期为0.4uS的CPU芯片,则计算机的平均指令执行速度又是多少MIPS?(4)若要得到40万次/S的指令执行速度,则应采用主振频率为多少MHz的CPU芯片?[解]时钟周期=1÷8MHz=0.125uS(1)平均指令周期=1÷0.8MIPS=1.25uS(2)机器周期=0.125uS×4=0.5uS平均每个指令周期的机器周期数=1.25uS÷0.5uS=2.5(3)平均指令执行速度=1÷(0.4×4×2.5)=0.25MIPS(4)主振频率=8MHz×(0.8MIPS/0.4MIPS)=4MHz7.以一条典型的单地址指令为例,简要说明下列部件在计算机的取指周期和执行周期中的作用。(1)程序计数器PC(2)指令寄存器IR(3)算术逻辑运算部件ALU(4)存储器数据寄存器MDR(5)存储器地址寄存器MAR[解](1)程序计数器PC:存放指令地址(2)指令寄存器IR:存放当前指令(3)算术逻辑运算部件ALU:进行算逻运算(4)存储器数据寄存器MDR:存放写入到内存或从内存读出的数据或指令(5)存储器地址寄存器MAR:存放写入到内存或从内存读出的数据或指令的地址以单地址指令“加1(INCA)”为例,该指令分为3个周期:取指周期、分析取数周期、执行周期。3个周期完成的操作如表所示。取指周期分析取数周期执行周期PC(PC)→MAR——IR指令→MDR→IR——ALU(PC)+1—(A)+1MAR指令地址→MARA→MAR—MDR指令→MDR(A)→MDR(A)+1→MDR 150“计算机组成原理”讲义9.指令和数据都存放在主存,如何识别从主存储器中取出的是指令还是数据?[解]指令和数据都存放在主存,它们都以二进制代码形式出现,区分方法为:(1)取指令或数据时所处的机器周期不同:取指令周期取出的是指令;分析取数或执行周期取出的是数据。(2)取指令或数据时地址的来源不同:指令地址来源于程序计数器;数据地址来源于地址形成器件。补充6-1.下图(a)为某模型机数据加工通路。其中∑为并行加法器,l→∑为最低位的进位。A,B,C,D为四个寄存器,PA,PB,PC,PD分别为四个寄存器的数据接收信号,且均为脉冲信号。图中其余的X→X控制信号均为电平信号,电平信号与脉冲信号的时间关系如下图(b)所示。试拟出在该图上实现下列运算所需的微操作。(1)D-C→D(2)D/2+C→D(3)D-1→D(4)2C+l→C[解]功能说明微操作控制信号(1)①C→A,0→BC→A,PA,PB②A→B,D→A∑→B,PB,D→A,PA(此步也可分为两步)③A+B+1→D1→∑,PD(2)①D→A,0→BD→A,PA,PB②A/2→B,C→A1/2∑→B,PB,C→A,PA(此步也可分为两步)③A+B→DPD(3)①D→AD→A,PA②“FF”(全1)→B∑→B,∑→B,PB(此步也可分为两步)③A+B→DPD(4)①C→A,“0”→BC→A,PA,PB②2A→B,“0”→A2∑→B,PB,PA(此步也可分为两步)③A+B+1→C1→∑,PC 第二部分习题解答151补充6-2.某机运算器为三总线结构,三总线分别称为Bl,B2,B3,连接B2,B3的控制信号为G。算逻部件ALU可进行ADD,SUB,AND,OR,XOR五种运算,输出多路器可进行直送(V),左移一位(L),右移一位(R)三种操作。三个通用寄存器RO,Rl,R2都有输入和输出信号,如下图所示。试写出实现下列功能所需的微操作:1/2[R1-R2]→R1[解]完成该微操作只需一步功能说明微操作控制信号①[R1-R2]再右移后→R1R1→Bl,R2→B2,SUB,R,R1in补充6-3.何谓同步控制?何谓异步控制?试比较它们的特点及应用场合。答:同步控制方式有统一的时序信号,每一个操作均在规定的操作时间内完成;异步控制方式无统一的时序信号,操作之间切换由应答方式进行,每个操作时间根据需要,需长则长,能短则短。同步控制方式多用于部件内部的时序控制(比如CPU内部);异步控制方式多用于不同部件之间的操作(例如CPU与外设之间) 152“计算机组成原理”讲义第7章输入输出系统(教材P333)5.程序查询方式、程序中断方式、DMA方式各自适用什么范围?下面这些结论正确吗?为什么?(1)程序中断方式能提高CPU利用率,所以在设置了中断方式后就没有再应用程序查询方式的必要了。(2)DMA方式能处理高速外部设备与主存间的数据传送,高速工作性能往往能覆盖低速工作要求,所以DMA方式可以完全取代程序中断方式。[解]程序查询方式是主机与外设间进行信息交换的最简单方式,输入和输出完全是通过CPU执行程序来完成的。这种方式控制简单,但外设和主机不能同时工作,系统效率很低,仅适用于外设的数目不多、对I/O处理的实时要求不高、CPU的操作任务比较单一、并不很忙的情况。程序中断方式无需查询等待,外设在做好输入输出准备时,向主机发中断请求,主机接到请求后就暂时中止原来执行的程序,转去执行中断服务程序对外部请求进行处理,在中断处理完毕后返回原来的程序继续执行。程序中断不仅适用于外部设备的输入输出操作,也适用于对外界发生的随机时间的处理。由于完成一次程序中断还需要许多辅助操作,因此主要适用于中、低速外设。DMA方式是在主存与外设之间(注意不是主机与外设之间)开辟的数据通路,可以进行基本上不需要CPU介入的主存和外设之间的信息传送,这样不仅保证CPU的高效率,而且能满足高速外设的需要。DMA方式只能进行简单的数据传送操作,在数据块传送的起始和结束时还需CPU及中断系统进行预处理和后处理。由此可见:题中(1)的结论不正确。程序查询方式接口简单,可用于外设与主存速度相差不大,且外设数量较少的情况。题中(2)的结论也不正确。DMA方式在结束一批数据传输后仍需程序中断方式做后处理。此外,DMA方式每次只能作简单的数据传输,不能象中断方式那样可以作较复杂的处理。6.举例说明程序查询方式的工作原理。[解]以从键盘上读取一个数据为例,其过程是:CPU首先启动键盘工作,然后测试键盘状态,若键盘数据未准备就绪,则输入缓冲寄存器的内容不可以使用,继续查询;若键盘数据已准备就绪,则执行输入指令取走该数据。这种方式的优点是控制简单,节省硬件,缺点是系统效率低。'