详细计算机组成基础学习知识原理(第三版)课后规范标准答案.doc
1 1计算机是一种能自动地、高速地对各种数字化信息进行运算处理的电子设备。1 2冯诺依曼计算机体系结构的基本思想是存储程序,也就是将用指令序列描述的解题程 序与原始数据一起存储到计算机中。计算机只要一启动,就能自动地取出一条条指令并执行之,直至程序执行完毕,得到计算结果为止。按此思想设计的计算机硬件系统包含:运算器、控制器、存储器、输入设备和输出设备。各部分的作用见教材:P10P121 3计算机的发展经历了四代。第一代:见教材P1 第二代:见教材P2 第三代:见教材P2 第四代:见教材P21 4系统软件定义见教材:P1213,应用软件定义见教材:P121 5见教材:P14151 6见教材:P111 7见教材:P681 8硬件定义见教材:P9 软件定义见教材:P12固件定义见教材:P131 91) 听觉、文字、图像、音频、视频2) 图像、声音、压缩、解压、DSP1 10处理程度按从易到难是:文本图形图像音频视频2.1各数的原码、反码、补码和移码见下表:十进制数真值二进制数真值原码表示反码表示补码表示移码表示1)-35/64-0.10001101.10001101.01110011.01110100.01110102)23/1280.00101110.00101110.00101110.00101111.00101113)-127-01111111111111111000000010000001000000014)小数表示1-1.0000000 1.00000000.0000000整数表示1-00000001100000011111111011111111011111112227/64=00011011/01000000=0.0110110=0.110112-1 规格化浮点表示为:27/64原101,01101100027/64反110,01101100027/64补111,011011000同理:-27/64=- 0.110112-1 规格化浮点表示为:27/64原101,11101100027/64反110,10010011127/64补111,10010100023 模为:29=100000000024 不对,8421码是十进制的编码25浮点数的正负看尾数的符号位是1还是0浮点数能表示的数值范围取决于阶码的大小。浮点数数值的精确度取决于尾数的长度。261)不一定有N1>N2 2)正确27 最大的正数:0111 01111111 十进制数:(127)27最小的正数:1001 00000001 十进制数:2727最大的负数:1001 11111111 十进制数:-2727最小的负数:0111 10000001 十进制数:-(127)27281)x补=00.1101 y补=11.0010 x+y补x补+y补=11.1111 无溢出 x+y= 0.0001 x补=00.1101 -y补=00.1110 xy补x补+-y补=01.1011 正向溢出 2)x补=11.0101 y补=00.1111 x+y补x补+y补=00.0100 无溢出 x+y= 0.0100 x补=11.0101 -y补=11.0001 xy补x补+-y补=10.0110 负向溢出 3) x补=11.0001 y补=11.0100 x+y补 x补+y补=10.0101 负向溢出 x补=11.0001 -y补=00.1100 xy补x补+-y补=11.1101 无溢出 Xy=0.0011291)原码一位乘法 |x|=00.1111 |y|=0.1110 部分积 乘数 yn 00.0000 0.1110+00.0000 00.0000 00.00000 0.111+00.1111 00.11110 00.011110 0.11+00.1111 01.011010 00.1011010 0.1+00.1111 01.1010010 00.11010010Pf=xfyf=1 |p|=|x|y|=0.11010010所以xy原=1.11010010补码一位乘法 x补=11.0001 y补=0.1110 -x补=11.0001部分积 yn yn+100.0000 0.1110000.00000 0.1110+00.1111 00.11110 00.011110 0.11100.0011110 0.1100.00011110 0.1 +11.0001 11.00101110xy补=11.001011102)原码一位乘法 |x|=00.110 |y|=0.010 部分积 乘数 yn 00.000 0.010+00.000 00.000 00.0000 0.01+00.110 00.1100 00.01100 0.0+00.000 00.01100 000.001100Pf=xfyf=0 |p|=|x|y|=0.001100所以xy原=0.001100补码一位乘法 x补=11.010 y补=1.110 -x补=00.110部分积 yn yn+100.000 1.110000.0000 1.110+00.110 00.1100 00.01100 1.1100.001100 1.1所以xy补=0.0011002101)原码两位乘法 |x|=000.1011 |y|=00.0001 2|x|=001.0110 部分积 乘数 c 000.0000 00.00010+000.1011 000.1011 000.001011 0.000 000.00001011 00.0Pf=xfyf=1 |p|=|x|y|=0.00001011所以xy原=1.00001011 补码两位乘法 x补=000.1011 y补=11.1111 -x补=111.0101 部分积 乘数 yn+1 000.0000 11.11110+111.0101 111.0101 111.110101 11.111 111.11110101 11.1 所以xy补=111.11110101 xy=-0.000010112)原码两位乘法 |x|=000.101 |y|=0.111 2|x|=001.010 -|x| 补=111.011 部分积 乘数 c 000.000 0.1110+111.011 111.011 111.11011 0.11+001.010 001.00011 000.100011 Pf=xyf=0 |p|=|x|y|=0.100011所以xy原=0.100011 补码两位乘法 x补=111.011 y补=1.001 -x补=000.101 2-x补=001.010 部分积 乘数 yn+1 000.000 1.0010+111.011 111.011 111.111011 1.00+001.010 001.00011 000.100011 所以xy补=0.100011 2.111) 原码不恢复余数法 |x|=00.1010 |y|=00.1101 -|y| 补=11.0011 部分积 商数 00.1010 +11.0011 1101101 0 11.1010 +00.1101 00.0111 0.1 00.1110 +11.0011 00.0001 0.11 00.0010+11.0011 11.0101 0.110 01.1010 +00.1101 11.0111 0.1100+00.1101 00.0100所以x/y原=0.1100 余数r原=0.010024补码不恢复余数法 x补=00.1010 y补=00.1101 -y补=11.0011 部分积 商数 00.1010 +11.0011 11.1101 0 11.1010 +00.1101 00.0111 0.1 00.1110 +11.0011 00.0001 0.11 00.0010+11.0011 11.0101 0.110 10.1010 +00.1101 11.0111 0.1100+00.1101 00.0100所以x/y补=0.1100 余数r补=0.0100242)原码不恢复余数法 |x|=00.101 |y|=00.110 -|y| 补=11.010 部分积 商数 00.101 +11.010 11.111 0 11.110 +00.110 00.100 0.1 01.000 +11.010 00.010 0.11 00.100+11.010 11.110 0.110+00.110 00. 100所以x/y原=1.110 余数r原=1.10023补码不恢复余数法 x补=11.011 y补=00.110 -y补=11.010 部分积 商数 11.011 +00.110 00.001 1 00.010 +11.010 11.100 1.0 11.000 +00.110 11.110 1.00 11.100+00.110 00.010 1.001 +11.010 11.100所以x/y补=1.001+23=1.010 余数r补=1.100232121) x补=2110100.100100 y补=2111011.100110小阶向大阶看齐: x补=2111000.010010 求和:x+y补=21110(00.01001011.100110)2111011.111000x-y补=21110(00.01001000.011010)2111000.101100规格化:x+y补=2101111.000000 浮点表示:1011,11.000000规格化:x-y补=2111000.101100 浮点表示:1110,0.1011002)x补=2010111.011110 y补=2010000.010110小阶向大阶看齐:y补=2010100.001011 求和:x+y补=20101(11.01111000.001011)2010111.101001x-y补=20101(11.01111011.110101)2010100.010011规格化:x+y补=2101011.010010 浮点表示:1010,11. 010010规格化:x-y补=2101000.100110 浮点表示:1010,00.100110213见教材:P702141)1.0001011262)0.110111*2-62 151) 串行进位方式C1=G1+P1C0 G1=A1B1, P1=A1B1C2=G2+P2C1 G2=A2B2, P2=A2B2C3=G3+P3C2 G3=A3B3, P3=A3B3C4=G4+P4C3 G4=A4B4, P4=A4B42) 并行进位方式 C1=G1+P1C0 C2=G2+P2G1+P2P1C0 C3=G3+P3G2+P3P2G1+P3P2P1C0 C4= G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C02 16参考教材P62 32位两重进位方式的ALU和32位三重进位方式的ALU217 F3 F2 F1 F074LS181 4位ALU Cn+4 Cn MS3S0 A3 B3 A2 B2 A1 B1 A0 B0- “1” F3 F2 F1 F0 74LS181 4位ALU Cn Cn+4 “1” A3 B3 A2 B2 A1 B1 A0 B0-3.1见教材:P7932 见教材:P8333与SRAM相比,DRAM在电路组成上有以下不同之处:1) 地址线的引脚一般只有一半,因此,增加了两根控制线RAS、CAS,分别控制接受行地址和列地址。2) 没有CS引脚,在存储器扩展时用RAS来代替由于引脚的限制,要分开接收行地址和列地址。34见教材:P8835 1) (22016)/(21716)=23=8 2) (128k16)/(16k8)=8216 3)168=128 ,CPU通过译码与片选方式选择模块板。 D0D15 CS同左3:8译码器A14 A15 A16 A0A13 A17 A18 A19 CPU 16k82 CS Y0 Y1 Y6 Y7 3:8译码器 3.6 (1)芯片1K4位,片内地址线10位(A9-A0 ),数据线4位。芯片总数为:(16K16)/(1K4)=16464片 (2)存储器容量为16K,故地址线总数为14位(A13A0),其中A13A12A11A10通过 4:16译码器产生片选信号CS0CS15 。 (3)刷新信号周期为:2ms/64=31.3us。 (4)若用集中式刷新,则刷新一遍用64个读/写周期。 死时间率为:640.1/21000=0.32%。ROM:16K空:8KRAM:40K(1) 0000H 3FFFH4000H5FFFH6000HFFFFH(2)CPU与芯片连接如图所示:381)可采用多体交叉存储器或高速缓冲存储器来实现。2)可参考P109图320391) 虚拟地址格式: 29 12 11 0页面号(18位)页内地址(12位)虚拟地址30位2) 物理地址格式:21 12 11 0页号(10位)页内地址(12位)物理地址22位3)页表的长度为:1GB/4KB=256K3101) 程序运行的时间不相等,第一种情况的运行时间要大于第二种情况的运行时间。2) 假设运行一条指令的时间为4T在四体交叉存储器中第一次取6条指令的时间=4T+5T=9T,以后均为8T。重复执行80次的时间=798+9T=641T在四体交叉存储器中第一次取8条指令的时间=4T+7T=11T,以后均为8T。重复执行60次的时间=598+11T=483T311M(x)=x1+x0=0011M(x)x3=x4+x3=0011000G(x)= x3+x +1=1011M(x)x3/ G(x)=0011000/1011=0011+101/1011M(x)x3+ R(x)=0011000+101=0011101海明码是:01000114.1. 见书P133. 见书P134. 见书P136. 见书P136. 见书P137. 见书P149. 见书P141. 见书P142. 见书P147. 见书P1544.2 . 寄存器直接. 寄存器间接. 立即数. 直接. 相对、基址、变址4.3 寻址方式分为:指令寻址方式和操作数寻址方式操作数寻址方式可分为:(1) 隐含寻址(2) 立即寻址 Data=D(3) 寄存器寻址 Data=(R)(4) 寄存器直接寻址 EA=R(5) 存储器直接寻址 EA=A(6) 寄存器间接寻址 EA=(R)(7) 存储器间接寻址 EA=(D)(8) 相对寻址 EA=(PC)+D(9) 基址寻址 EA=(R)基址+D(10) 变址寻址 EA=(R)变址+D(11) 复合寻址方式 相对间接寻址 EA=(RC)+D) 间接相对寻址 EA=(PC)+(D) 变址间接寻址 EA=(R)+D) 间接变址寻址 EA=(R)+(D) 基址+变址寻址 EA=(R)基址+(R)变址+D4.4 参见书P154。4.5 不合理。因为浪费了存储空间。4.6 256-K-L 条4.7 双操作数最多可拥有的指令数为255条,单操作数最多可拥有的指令数为63条,无操作数最多可拥有的指令数为64条。4.8 变址寻址方式的访存有效地址是:02B0H+001FH=02CFH 变址寻址方式的访存有效地址是:3A00H+001FH=3A1FH4.9 参见书P156。4.10 指令格式及寻址方式的特点为:(1) 操作码字段为4位,可指定16种操作,即16条指令;(2) 单字长(16位)两地址指令;(3) 操作数存放于两个寄存器中,是RR型指令,这种指令结构执行速度快;(4) 每个操作数可以指定8种寻址方式;(5) 该指令格式的寻址方式可以是寄存器直接寻址和寄存器间接寻址。4.11 参见书P157。4.12 某计算机字长为16位,主存容量为640K字,采用单字长单地址指令,共有80条指令。试用直接、间接、变址、相对四种寻址方式设计指令格式。解:80条指令需占用操作码字段(OP)7位,寻址模式(X)2位,形式地址(D)7位。其指令格式如下:159 8 7 6 0OPXD 寻址模式模式定义如下: X=00 直接寻址 有效地址为:EA=D(27) X=01 间接寻址 有效地址为:EA=(D)(64K) X=10 变址寻址 有效地址为:EA=(R)+ D(27) X=11 相对寻址 有效地址为:EA=(PC)+D(27) 其中R为变址寄存器(16位),PC为程序计数器(16位),在变址和相对寻址时,可采用交错相加的方式来产生有效地址。其最大的寻址空间可达216+7=223220640K,故满足题目要求。4.13 操作码的第0位和第1位组成4种不同的编码,分别代表不同字长的指令: 00代表字长为1字节的指令; 01代表字长为2字节的指令; 10代表字长为3字节的指令; 11代表字长为4字节的指令。 每取出一个字(32位)时,根据该字的第0位和第1位可判断出这个字中的第一条指令包含多少字节,假如它包含n个字节。然后看第n+1个字节的前两位,得出这个字中第二条指令包含多少字节,以此类推,可知这个字中包含的指令条数。4.14 RS型指令中,64种操作需占用操作码字段(OP)6位,16个通用寄存器 需占用4位,剩余地址码部分22位,故RS型指令的最大存储空间是32+22=54 位。4.15 清除R2可采用下面任意一条指令: 指令 功能说明 (1)ADD R0,R0,R2 R2(R0)+(R0)(2)SUB R2,R2,R2 R2(R2)-(R2)(3)ADD R0,imm(0),R2 imm(0)为立即数0, R2 (R0)+04.16. 对。. 错。选用使用频度高的一些简单指令以及很有用但不复杂的指令。. 错。只是相对CISC机要简单一些。. 错。有乘、除指令和浮点运算指令。4.17 参见书P159。5.1. 见书P166. 见书P169. 见书P169. 见书P169. 见书P169. 见书P171. 见书P171. 见书P171. 见书P191. 见书P1915.2. 控制器. 栈顶指示器. 指令寄存器. 指令计数器. 水平、垂直. 水平、垂直. 控制存储器 EPROM. 同步控制. 组合逻辑控制器. 200ns 延长机器周期或局部控制5.3. 通用寄存器. AX或AL. 状态寄存器中的ZF. 状态寄存器中的OF. CX. IP. SP. IR. 指令译码器. AC5.4 参见书P1651685.5 参见书P1895.6 数据通路如下图所示。其中,PC为程序计数器,本身具有加1的功能。各部件可通过单总线相互连接起来,数据传送方向由箭头表示。5.7 指令周期流程图如下所示:5.8 节拍脉冲T1,T2,T3的宽度实际上等于时钟脉冲的周期或是它的倍数。由此,T1=T3=20ns,T2=40ns,所以主脉冲源的频率应为f=1/T1=50MHZ.根据时序信号关系,T1,T2,T3三个节拍脉冲的逻辑表达式如下:T1=C1C2 T2=C2 T3=C1T1用与门实现,T2和T3则用C2的Q端和C1的Q端加非门实现,其目的在于保持信号输出延迟时间的一致性并与环形脉冲发生器隔离。时序产生器逻辑图如下图所示:5.9 采用循环移位寄存器形式。当总清信号CLR使触发器C4置“1”时,门3打开。第一个正脉冲通过3使触发器 C1-C3清“0”。由于时钟源输出10MHz(脉冲宽度100ns),经过半个主脉冲周期(50ns)的延迟,触发器C4由“1”状态翻到“0”状态,再经过半个主脉冲周期的延迟,第二正脉冲的上升沿作移位信号,使触发器C1-C3变为“100”状态,此后第二个,第三个连续通过门2成移位信号,相继变为“110”,“111”状态。当C3变为“1”状态时(对应第4个正脉冲),其状态反映到C4的D端,因而在第4个正脉冲下沿将C4置“1”,门3复又打开,第5个正脉冲通过门3又形成清“0”脉冲,将C1C3清零,于是下一个循环再度开始。T1T4是四个输出节拍脉冲。根据已知条件,其译码逻辑表达式为:T1=C1C2 T2=C2C3 T3=C3 T4=C1这四个脉冲是等间隔宽度的脉冲,每个脉冲宽度为16.7ns。时序产生器逻辑图如下图所示:5.10 (1)主频为66MHz,所以,主频周期=1/66MHz=0.015us, 故一条指令执行时间=0.015us22=0.061us, 故每秒执行的指令条数=1/0.061us=16.4MIPS。 (2)由题意,一条指令执行时间=0.015us2(2+2)=0.12us, 故每秒执行的指令条数=1/0.12us=8.3MIPS。5.11 参见书P203、P1925.12 微指令所占的单元总数=(8011+1)32=88132, 所以控制存储器容量可选1K32。5.13 (1)假设判别测试字段中每一位作为一判别标志,那么由于有4个转移 条件,故该字段为2位。因为控制存储器为512单元,所以下一地址字段为9位。故微命令字段=48-2-9=37位。(2)逻辑框图见书P203图5.27。5.14 将一个微指令周期中的互斥性微指令信号组合在一个小组中,进行分组译 码。经分析,(e,f,h)和(b,i,j)可分别组成两个小组或两个字段,然后进行译码,可得六个微命令信号,剩下的a,c,d,g四个微命令信号可进行直接控制,其整个控制字段组成如下图所式: 0 1 e 0 1 b 1 0 f 1 0 ia c d g 1 1 h 1 1 j 4位 2位 2位5.15. 软件子程序调用是通过软件的方法调用乘法子程序来实现乘法运算的操作;硬布线控制逻辑是通过硬布线控制器所产生的控制信号来实现乘法运算;微程序控制是通过微程序控制器所产生的控制信号来实现乘法运算。. 速度最快的是硬布线控制逻辑,其次是微程序控制,速度最慢的是软件子程序调用。. 软件子程序调用不需要特殊的硬件部件;硬布线控制逻辑需要硬布线控制器;微程序控制需要微程序控制器。5.16 参见书P211。5.17. 流水线的操作周期应按各步操作的最大时间来考虑,即流水线的时钟周期=100ns。. 若相邻两条指令发生数据相关,就停顿第2条指令的执行,直到前面的指令结果已经产生,因此至少要推迟2个时钟周期。. 若对硬件加以改进,如采用专用的通路技术,那么第2条指令的执行不会被推迟。5.18 略。5.19 参见书P229。6.1采用总线结构的计算机系统中,主存与外设的编制方法有两种,一种是统一编址的方法,一种是单独编址的方法. 在单总线系统中,设备的寻址采用统一编址的方法,即所有的主存单元以及外设设备接口寄存器的地址一起构成一个统一的地址空间,因此,访内存指令与I/O指令在形式上完全相同,区别仅在于地址的数值不一样.而在双总线系统中,采用单独编址的方法,cpu对内存总线和系统总线必须有不同的指令系统,内存地址和I/O设备的地址是分开的,当访问内存时,由存储读,存储写两条控制线控制;当访问I/O设备时,由I/o读,I/O写两条控制线控制.6.2根据总线控制部件的位置,判别总线使用权有限级别可分为集中式和分散式控制.集中式控制分为链式查询,计数器查询,和独立请求方式.1. 链式查询方式的主要特征是总线同意信号BG的传送方式;它串行地从一个I/O接口传送到另一个I/O接口.显然,在查询链中离总线控制器最近的设备具与最高优先权,离总线最远,优先权最低.2. 计数器定时方式:总线上的任一设备要求使用总线时,都通过BR线发出总线请求.总线控制器接到请求信号后,在BS线为"0"的情况下让计数器开始计数,计数值通过一组地址线发向各设备.每个设备接口都有一个地址判别电路,当地质线上的计数值与请求总线的接口的地址相一致时,该设备后的总线使用权.每次计数值可以从"0"开始,也可以从终止点开始计数,如果从 "0"开始,则各设备的优先次序与链式查询相同.如果从中止点开始,则各设备的优先级都相同.3. 独立请求方式 :每一个共享总线的设备均有一对总线请求和总线同意线.总线控制部件中有一个排队电路,根据一定的优先次序决定首先响应哪一个设备,并对该设备发出同意信号.独立请求方式的优点是响应时间快,并且对优先次序的控制也很灵活.6.3 单总线采用统一编址方法,省去了I/O指令,简化了指令系统。单总线结构简单,使用灵活,易扩充。然而,由于主存的部分地址空间要用于外部设备