计算机组成原理课后答案(唐朔飞第二版).pdf
第一章计算机系统概论1.什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?解:P3 计算机系统:由计算机硬件系统和软件系统组成的综合体。计算机硬件:指计算机中的电子线路和物理装置。计算机软件:计算机运行所需的程序及相关资料。硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。5.冯?诺依曼计算机的特点是什么?解:冯?诺依曼计算机的特点是:P8 计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;指令和数据以同同等地位存放于存储器内,并可以按地址访问;指令和数据均用二进制表示;指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置;指令在存储器中顺序存放,通常自动顺序取出执行;机器以运算器为中心(原始冯?诺依曼机)。7.解释下列概念:主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。解:P9-10 主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了CACHE)。主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。存储单元:可存放一个机器字并具有特定存储地址的存储单位。存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。存储字:一个存储单元所存二进制代码的逻辑单位。存储字长:一个存储单元所存二进制代码的位数。存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。指令字长:一条指令的二进制代码位数。8.解释下列英文缩写的中文含义:CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS 解:全面的回答应分英文全称、中文名、功能三部分。CPU:Central Processing Unit,中央处理机(器),是计算机硬件的核心部件,主要由运算器和控制器组成。PC:Program Counter,程序计数器,其功能是存放当前欲执行指令的地址,并可自动计数形成下一条指令地址。IR:Instruction Register,指令寄存器,其功能是存放当前正在执行的指令。CU:Control Unit,控制单元(部件),为控制器的核心部件,其功能是产生微操作命令序列。ALU:Arithmetic Logic Unit,算术逻辑运算单元,为运算器的核心部件,其功能是进行算术、逻辑运算。ACC:Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器。MQ:Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。X:此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数;MAR:Memory Address Register,存储器地址寄存器,在主存中用来存放欲访问的存储单元的地址。MDR:Memory Data Register,存储器数据缓冲寄存器,在主存中用来存放从某单元读出、或要写入某存储单元的数据。I/O:Input/Output equipment,输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送。MIPS:Million Instruction Per Second,每秒执行百万条指令数,为计算机运算速度指标的一种计量单位。9.画出主机框图,分别以存数指令STA M 和加法指令ADD M(M 均为主存地址)为例,在图中按序标出完成该指令(包括取指令阶段)的信息流程(如)。假设主存容量为256M*32 位,在指令字长、存储字长、机器字长相等的条件下,指出图中各寄存器的位数。解:主机框图如P13 图 1.11 所示。(1)STA M 指令:PCMAR,MARMM,MMMDR,MDRIR,OP(IR)CU,Ad(IR)MAR,ACCMDR,MARMM,WR(2)ADD M指令:PCMAR,MARMM,MMMDR,MDRIR,OP(IR)CU,Ad(IR)MAR,RD,MMMDR,MDRX,ADD,ALUACC,ACCMDR,WR 假设主存容量256M*32 位,在指令字长、存储字长、机器字长相等的条件下,ACC、X、IR、MDR寄存器均为32 位,PC和 MAR寄存器均为28 位。10.指令和数据都存于存储器中,计算机如何区分它们?解:计算机区分指令和数据有以下2 种方法:通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。第 2 章 计算机的发展及应用1.通常计算机的更新换代以什么为依据?答:P22 主要以组成计算机基本电路的元器件为依据,如电子管、晶体管、集成电路等。2.举例说明专用计算机和通用计算机的区别。答:按照计算机的效率、速度、价格和运行的经济性和实用性可以将计算机划分为通用计算机和专用计算机。通用计算机适应性强,但牺牲了效率、速度和经济性,而专用计算机是最有效、最经济和最快的计算机,但适应性很差。例如个人电脑和计算器。3.什么是摩尔定律?该定律是否永远生效?为什么?答:P23,否,P36第 3 章 系统总线1.什么是总线?总线传输有何特点?为了减轻总线负载,总线上的部件应具备什么特点?答:P41.总线是多个部件共享的传输部件。总线传输的特点是:某一时刻只能有一路信息在总线上传输,即分时使用。为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线连通。4.为什么要设置总线判优控制?常见的集中式总线控制有几种?各有何特点?哪种方式响应时间最快?哪种方式对电路故障最敏感?答:总线判优控制解决多个部件同时申请总线时的使用权分配问题;常见的集中式总线控制有三种:链式查询、计数器定时查询、独立请求;特点:链式查询方式连线简单,易于扩充,对电路故障最敏感;计数器定时查询方式优先级设置较灵活,对故障不敏感,连线及控制过程较复杂;独立请求方式速度最快,但硬件器件用量大,连线多,成本较高。5.解释下列概念:总线宽度、总线带宽、总线复用、总线的主设备(或主模块)、总线的从设备(或从模块)、总线的传输周期和总线的通信控制。答:P46。总线宽度:通常指数据总线的根数;总线带宽:总线的数据传输率,指单位时间内总线上传输数据的位数;总线复用:指同一条信号线可以分时传输不同的信号。总线的主设备(主模块):指一次总线传输期间,拥有总线控制权的设备(模块);总线的从设备(从模块):指一次总线传输期间,配合主设备完成数据传输的设备(模块),它只能被动接受主设备发来的命令;总线的传输周期:指总线完成一次完整而可靠的传输所需时间;总线的通信控制:指总线传送过程中双方的时间配合方式。6.试比较同步通信和异步通信。答:同步通信:指由统一时钟控制的通信,控制方式简单,灵活性差,当系统中各部件工作速度差异较大时,总线工作效率明显下降。适合于速度差别不大的场合。异步通信:指没有统一时钟控制的通信,部件间采用应答方式进行联系,控制方式较同步复杂,灵活性高,当系统中各部件工作速度差异较大时,有利于提高总线工作效率。8.为什么说半同步通信同时保留了同步通信和异步通信的特点?答:半同步通信既能像同步通信那样由统一时钟控制,又能像异步通信那样允许传输时间不一致,因此工作效率介于两者之间。10.为什么要设置总线标准?你知道目前流行的总线标准有哪些?什么叫plug and play?哪些总线有这一特点?答:总线标准的设置主要解决不同厂家各类模块化产品的兼容问题;目前流行的总线标准有:ISA、EISA、PCI 等;plug and play:即插即用,EISA、PCI 等具有此功能。11.画一个具有双向传输功能的总线逻辑图。答:在总线的两端分别配置三态门,就可以使总线具有双向传输功能。a0 b0 a1 b1 an bn a至 b b至 a 12.设数据总线上接有A、B、C、D 四个寄存器,要求选用合适的74 系列芯片,完成下列逻辑设计:(1)设计一个电路,在同一时间实现DA、DB 和 DC 寄存器间的传送;(2)设计一个电路,实现下列操作:T0 时刻完成D总线;T1 时刻完成总线A;T2 时刻完成A总线;T3 时刻完成总线B。解:(1)由 T 打开三态门将D 寄存器中的内容送至总线bus,由 cp 脉冲同时将总线上的数据打入到 A、B、C 寄存器中。T 和 cp 的时间关系如图(1)所示。cp脉冲A B C 总线 bus T T 三态门 cp D 图(1)(2)三态门1 受 T0T1 控制,以确保T0 时刻 D总线,以及T1 时刻总线接收门1A。三态门 2 受 T2T3 控制,以确保T2 时刻 A总线,以及T3 时刻总线接收门2B。T0、T1、T2、T3 波形图如图(2)所示。图(2)第 四 章3.存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU 访存速度加快,接近于Cache 的速度,而寻址空间和位价却接近于主存。主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。主存与 CACHE之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。4.说明存取周期和存取时间的区别。解:存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。即:存取周期=存取时间+恢复时间5.什么是存储器的带宽?若存储器的数据总线宽度为32 位,存取周期为200ns,则存储器的带宽是多少?解:存储器的带宽指单位时间内从存储器进出信息的最大数量。存储器带宽=1/200ns 32 位=160M 位/秒=20MB/秒=5M 字/秒注意:字长 32 位,不是 16 位。(注:1ns=10-9s)6.某机字长为32 位,其存储容量是64KB,按字编址它的寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。解:存储容量是64KB 时,按字节编址的寻址范围就是64K,如按字编址,其寻址范围为:64K/(32/8)=16K 主存字地址和字节地址的分配情况:(略)。7.一个容量为16K32 位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?1K位,2K位,4K位,16K位,4K位,8K位解:地址线和数据线的总和=14+32=46 根;选择不同的芯片时,各需要的片数为:1K4:(16K32)/(1K4)=16 8=128 片2K8:(16K32)/(2K8)=84=32 片4K4:(16K32)/(4K4)=48=32 片16K1:(16K32)/(16K1)=1 32=32 片4K8:(16K32)/(4K8)=44=16 片8K8:(16K32)/(8K8)=24=8 片8.试比较静态RAM和动态 RAM。答:略。(参看课件)9.什么叫刷新?为什么要刷新?说明刷新有几种方法。解:刷新:对DRAM定期进行的全部重写过程;刷新原因:因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;常用的刷新方法有三种:集中式、分散式、异步式。集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在CPU访存死时间。分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间。异步式:是集中式和分散式的折衷。10.半导体存储器芯片的译码驱动方式有几种?解:半导体存储器芯片的译码驱动方式有两种:线选法和重合法。线选法:地址译码信号只选中同一个字的所有位,结构简单,费器材;重合法:地址分行、列两部分译码,行、列译码线的交叉点即为所选单元。这种方法通过行、列译码信号的重合来选址,也称矩阵译码。可大大节省器材用量,是最常用的译码驱动方式。11.一个 8K8 位的动态RAM芯片,其内部结构排列成256256 形式,存取周期为0.1 s。试问采用集中刷新、分散刷新和异步刷新三种方式的刷新间隔各为多少?解:采用分散刷新方式刷新间隔为:2ms,其中刷新死时间为:2560.1 s=25.6 s 采用分散刷新方式刷新间隔为:256(0.1 s+0.1 s)=51.2 s 采用异步刷新方式刷新间隔为:2ms 12.画出用 1024位的存储芯片组成一个容量为64K位的存储器逻辑框图。要求将64K 分成 4 个页面,每个页面分16 组,指出共需多少片存储芯片。解:设采用SRAM芯片,则:总片数=(64K位)/(1024位)=64 2=128 片题意分析:本题设计的存储器结构上分为总体、页面、组三级,因此画图时也应分三级画。首先应确定各级的容量:页面容量=总容量/页面数=64K8/4=16K 位,4 片 16K8 字串联成64K8 位组容量=页面容量/组数=16K位/16=1K位,16 片 1K8 位字串联成16K8 位组内片数=组容量/片容量=1K位/1K 位=2 片,两片1K4 位芯片位并联成1K8 位存储器逻辑框图:(略)。13.设有一个 64K位的 RAM芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。19 解:存储基元总数=64K位=512K 位=2 位;思路:如要满足地址线和数据线总和最小,应尽量把存储元安排在字向,因为地址位数和字数成 2 的幂的关系,可较好地压缩线数。a 解:设地址线根数为a,数据线根数为b,则片容量为:2 b=2 19;b=2 19-a ;若 a=19,b=1,总和=19+1=20;a=18,b=2,总和=18+2=20;a=17,b=4,总和=17+4=21;a=16,b=8,总和=16+8=24;,由上可看出:片字数越少,片字长越长,引脚数越多。片字数减1、片位数均按2 的幂变化。结论:如果满足地址线和数据线的总和为最小,这种芯片的引脚分配方案有两种:地址线=19 根,数据线=1 根;或地址线=18 根,数据线=2 根。14.某 8 位微型机地址码为18 位,若使用 4K位的 RAM芯片组成模块板结构的存储器,试问:(1)该机所允许的最大主存空间是多少?(2)若每个模块板为32K位,共需几个模块板?(3)每个模块板内共有几片RAM芯片?(4)共有多少片RAM?(5)CPU如何选择各模块板?18 解:(1)该机所允许的最大主存空间是:2 8 位=256K8 位=256KB(2)模块板总数=256K8/32K 8=8 块(3)板内片数=32K位/4K 位=82=16 片(4)总片数=16 片8=128 片(5)CPU通过最高3 位地址译码输出选择模板,次高3 位地址译码输出选择芯片。地址格式分配如下:模板号(3位)芯片号(3位)片内地址(12位)15.设 CPU共有 16 根地址线,8 根数据线,并用MREQ(低电平有效)作访存控制信号,R/W 作读写命令信号(高电平为读,低电平为写)。现有下列存储芯片:ROM(2K位,4K位,8K位),RAM(1K位,2K位,4K位),及 74138 译码器和其他门电路(门电路自定)。试从上述规格中选用合适芯片,画出CPU和存储芯片的连接图。要求:(1)最小 4K 地址为系统程序区,409616383 地址范围为用户程序区;(2)指出选用的存储芯片类型及数量;(3)详细画出片选逻辑。解:(1)地址空间分配图:系统程序区(ROM共 4KB):0000H-0FFFH 用户程序区(RAM共 12KB):1000H-FFFFH(2)选片:ROM:选择 4K位芯片 2 片,位并联RAM:选择 4K位芯片 3 片,字串联(RAM1地址范围为:1000H-1FFFH,RAM2 地址范围为 2000H-2FFFH,RAM3 地址范围为:3000H-3FFFH)(3)各芯片二进制地址分配如下:A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0ROM1,2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 RAM1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 RAM2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 RAM3 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 CPU和存储器连接逻辑图及片选逻辑如下图(3)所示:MREQ G G1 2A Y7 A15 A14 A13 A12 G2B 74138 A B C Y3 Y2 Y1 Y0 .A11.A0 .PD/PROG CPU ROM1 RAM1 RAM2 RAM3 ROM2 OE OE CS CS CS.D0.D3.D4.D7 R/W 图(3)16.CPU 假设同上题,现有8 片 8K位的 RAM芯片与 CPU相连,试回答:(1)用 74138 译码器画出CPU与存储芯片的连接图;(2)写出每片RAM的地址范围;(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。(4)根据(1)的连接图,若出现地址线A13 与 CPU断线,并搭接到高电平上,将出现什么后果?解:(1)CPU与存储器芯片连接逻辑图:+5V G1 Y 7 G2A .MREQ A15 G2B 74138 A Y 2 A14 A13.A12.A0 B C Y1 Y 0.CPU WE RAM0 WE WE RAM1 RAM7.CS CS CS.D0.D7 R/W(2)地址空间分配图:RAM0:0000H-1FFFH RAM1:2000H-3FFFH RAM2:4000H-5FFFH RAM3:6000H-7FFFH RAM4:8000H-9FFFH RAM5:A000H-BFFFH RAM6:C000H-DFFFH RAM7:E000H-FFFFH(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片(RAM5)都有与其相同的数据,则根本的故障原因为:该存储芯片的片选输入端很可能总是处于低电平。假设芯片与译码器本身都是好的,可能的情况有:1)该片的-CS 端与-WE端错连或短路;2)该片的-CS 端与 CPU的-MREQ端错连或短路;3)该片的-CS 端与地线错连或短路。(4)如果地址线A13 与 CPU断线,并搭接到高电平上,将会出现 A13 恒为1的情况。此时存储器只能寻址A13=1 的地址空间(奇数片),A13=0 的另一半地址空间(偶数片)将永远访问不到。若对A13=0 的地址空间(偶数片)进行访问,只能错误地访问到A13=1 的对应空间(奇数片)中去。17.写出 1100、1101、1110、1111 对应的汉明码。解:有效信息均为n=4 位,假设有效信息用b4b3b2b1 表示校验位位数k=3 位,(2 k=n+k+1)设校验位分别为c1、c2、c3,则汉明码共4+3=7 位,即:c1c2b4c3b3b2b1 校验位在汉明码中分别处于第1、2、4 位c1=b4b3b1 c2=b4b2b1c3=b3b2b1 当有效信息为1100 时,c3c2c1=011,汉明码为1110100。当有效信息为1101 时,c3c2c1=100,汉明码为0011101。当有效信息为1110 时,c3c2c1=101,汉明码为1011110。当有效信息为1111 时,c3c2c1=010,汉明码为0110111。18.已知收到的汉明码(按配偶原则配置)为1100100、1100111、1100000、1100001,检查上述代码是否出错?第几位出错?解:假设接收到的汉明码为:c1c2b4c3b3b2b1纠错过程如下:P1=c1b4b3b1P2=c2b4b2b1P3=c3b3b2b1如果收到的汉明码为1100100,则 p3p2p1=011,说明代码有错,第3 位(b4)出错,有效信息为:1100 如果收到的汉明码为1100111,则 p3p2p1=111,说明代码有错,第7 位(b1)出错,有效信息为:0110 如果收到的汉明码为1100000,则 p3p2p1=110,说明代码有错,第6 位(b2)出错,有效信息为:0010 如果收到的汉明码为1100001,则 p3p2p1=001,说明代码有错,第1 位(c1)出错,有效信息为:0001 22.某机字长 16 位,常规的存储空间为64K 字,若想不改用其他高速的存储芯片,而使访存速度提高到8 倍,可采取什么措施?画图说明。解:若想不改用高速存储芯片,而使访存速度提高到8 倍,可采取八体交叉存取技术,8 体交叉访问时序如下图:启动存储体 0 启动存储体 1 启动存储体 2 启动存储体 3 启动存储体 4 启动存储体 5 启动存储体 6 启动存储体 7 单体访存周期18.什么是程序访问的局部性?存储系统中哪一级采用了程序访问的局部性原理?解:程序运行的局部性原理指:在一小段时间内,最近被访问过的程序和数据很可能再次被访问;在空间上,这些被访问的程序和数据往往集中在一小片存储区;在访问顺序上,指令顺序执行比转移执行的可能性大(大约 5:1)。存储系统中Cache主存层次采用了程序访问的局部性原理。25.Cache 做在 CPU芯片内有什么好处?将指令Cache 和数据 Cache 分开又有什么好处?答:Cache 做在 CPU芯片内主要有下面几个好处:1)可提高外部总线的利用率。因为Cache 在 CPU芯片内,CPU访问 Cache 时不必占用外部总线。2)Cache 不占用外部总线就意味着外部总线可更多地支持I/O 设备与主存的信息传输,增强了系统的整体效率。3)可提高存取速度。因为Cache 与 CPU之间的数据通路大大缩短,故存取速度得以提高。将指令 Cache 和数据 Cache 分开有如下好处:1)可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成。2)指令 Cache 可用 ROM实现,以提高指令存取的可靠性。3)数据 Cache 对不同数据类型的支持更为灵活,既可支持整数(例32 位),也可支持浮点数据(如64 位)。补充:Cache 结构改进的第三个措施是分级实现,如二级缓存结构,即在片内Cache(L1)和主存之间再设一个片外Cache(L2),片外缓存既可以弥补片内缓存容量不够大的缺点,又可在主存与片内缓存间起到平滑速度差的作用,加速片内缓存的调入调出速度。30.一个组相连映射的CACHE由 64 块组成,每组内包含4 块。主存包含4096 块,每块由128 字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。13 解:cache 组数:64/4=16,Cache 容量为:64*128=2 字,cache 地址 13 位主存共分4096/16=256 区,每区16 块主存容量为:4096*128=2 19 字,主存地址19 位,地址格式如下:主存字块标记(8 位)组地址(4 位)字块内地址(7 位)第 六 章12.设浮点数格式为:阶码 5 位(含 1 位阶符),尾数 11 位(含 1 位数符)。写出 51/128、-27/1024 所对应的机器数。要求如下:(1)阶码和尾数均为原码。(2)阶码和尾数均为补码。(3)阶码为移码,尾数为补码。解:据题意画出该浮点数的格式:阶符 1 位阶码 4 位数符 1 位尾数 10 位-1 将十进制数转换为二进制:x1=51/128=0.0110011B=2*0.110 011B x2=-27/1024=-0.0000011011B=2 -5*(-0.11011B)则以上各数的浮点规格化数为:(1)x1 浮=1,0001;0.110 011 000 0 x2 浮=1,0101;1.110 110 000 0(2)x1 浮=1,1111;0.110 011 000 0 x2 浮=1,1011;1.001 010 000 0(3)x1 浮=0,1111;0.110 011 000 0 x2 浮=0,1011;1.001 010 000 0 16设机器数字长为16 位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。(1)无符号数;(2)原码表示的定点小数。(3)补码表示的定点小数。(4)补码表示的定点整数。(5)原码表示的定点整数。(6)浮点数的格式为:阶码6 位(含 1 位阶符),尾数 10 位(含 1 位数符)。分别写出其正数和负数的表示范围。(7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。解:(1)无符号整数:0 2 16-1,即:065535;-16 无符号小数:0 1-2,即:0 0.99998;(2)原码定点小数:-1+2 -15 1-2 -15 ,即:-0.99997 0.99997-15(3)补码定点小数:-1 1-2,即:-1 0.99997 (4)补码定点整数:-2 15 15-1,即:-32768 32767 2 (5)原码定点整数:-2 15+1 215-1,即:-32767 32767(6)据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时:最大负数=1,11 111;1.000 000 001,即-2 -9 -31 2 最小负数=0,11 111;1.111 111 111,即-(1-2 -9 31)2 则负数表示范围为:-(1-2 -9 31)2 -2 -9 -31 2 最大正数=0,11 111;0.111 111 111,即(1-2 -9 31)2 最小正数=1,11 111;0.000 000 001,即 2 -9 -31 2 -9 则正数表示范围为:2 -31 2 (1-2 -9 31)2(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则最大负数=1,00 000;1.011 111 111,即-2 -1 -32 2 31 最小负数=0,11 111;1.000 000 000,即-1 2 31 则负数表示范围为:-1 2 -2 -1 -32 2 最大正数=0,11 111;0.111 111 111,即(1-2 -9 31)2 最小正数=1,00 000;0.100 000 000,即2 -1 -32 2 -1 则正数表示范围为:2 -32 2 (1-2 -9 31)2 17.设机器数字长为8 位(包括一位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。x1 原=0.001 1010;y1 补=0.101 0100;z1 反=1.010 1111;x2 原=1.110 1000;y2 补=1.110 1000;z2 反=1.110 1000;x3 原=1.001 1001;y3 补=1.001 1001;z3 反=1.001 1001。解:算术左移一位:x1 原=0.011 0100;正确x2 原=1.101 0000;溢出(丢1)出错x3 原=1.011 0010;正确y1 补=0.010 1000;溢出(丢1)出错y2 补=1.101 0000;正确y3 补=1.011 0010;溢出(丢0)出错z1 反=1.101 1111;溢出(丢0)出错z2 反=1.101 0001;正确z3 反=1.011 0011;溢出(丢0)出错算术左移两位:x1 原=0.110 1000;正确x2 原=1.010 0000;溢出(丢11)出错x3 原=1.110 0100;正确y1 补=0.101 0000;溢出(丢10)出错y2 补=1.010 0000;正确y3 补=1.110 0100;溢出(丢00)出错z1 反=1.011 1111;溢出(丢01)出错z2 反=1.010 0011;正确z3 反=1.110 0111;溢出(丢00)出错算术右移一位:x1 原=0.000 1101;正确x2 原=1.011 0100;正确x3 原=1.000 1100(1);丢 1,产生误差y1 补=0.010 1010;正确y2 补=1.111 0100;正确y3 补=1.100 1100(1);丢 1,产生误差z1 反=1.101 0111;正确z2 反=1.111 0100(0);丢 0,产生误差z3 反=1.100 1100;正确算术右移两位:x1 原=0.000 0110(10);产生误差x2 原=1.001 1010;正确x3 原=1.000 0110(01);产生误差y1 补=0.001 0101;正确y2 补=1.111 1010;正确y3 补=1.110 0110(01);产生误差z1 反=1.110 1011;正确z2 反=1.111 1010(00);产生误差z3 反=1.110 0110(01);产生误差19.设机器数字长为8 位(含 1 位符号位),用补码运算规则计算下列各题。(1)A=9/64,B=-13/32,求 A+B。(2)A=19/32,B=-17/128,求 A-B。(3)A=-3/16,B=9/32,求 A+B。(4)A=-87,B=53,求 A-B。(5)A=115,B=-24,求 A+B。解:(1)A=9/64=0.001 0010B,B=-13/32=-0.011 0100B A 补=0.001 0010,B 补=1.100 1100 A+B 补=0.0010010+1.1001100=1.1011110 无溢出A+B=-0.010 0010B=-17/64(2)A=19/32=0.100 1100B,B=-17/128=-0.001 0001B A 补=0.100 1100,B 补=1.110 1111,-B 补=0.001 0001 A-B 补=0.1001100+0.0010001=0.1011101 无溢出A-B=0.101 1101B=93/128B(3)A=-3/16=-0.001 1000B,B=9/32=0.010 0100B A 补=1.110 1000,B 补=0.010 0100 A+B 补=1.1101000+0.0100100=0.0001100 无溢出A+B=0.000 1100B=3/32(4)A=-87=-101 0111B,B=53=110 101B A 补=1 010 1001,B 补=0 011 0101,-B 补=1 100 1011 A-B 补=1 0101001+1 1001011=0 1110100 溢出(5)A=115=111 0011B,B=-24=-11 000B A 补=0 1110011,B 补=1,110 1000 A+B 补=0 1110011+1 1101000=0 1011011 无溢出A+B=101 1011B=91 26.按机器补码浮点运算步骤,计算x y 补.-011(1)x=2 -010 0.101 100,y=2(-0.011 100);-011(2)x=2 -010(-0.100 010),y=2 (-0.011 111);101 100(3)x=2(-0.100 101),y=2(-0.001 111)。解:先将x、y 转换成机器数形式:-011(1)x=2 -010 0.101 100,y=2(-0.011 100)x 补=1,101;0.101 100,y 补=1,110;1.100 100 Ex 补=1,101,y 补=1,110,Mx 补=0.101 100,My 补=1.100 1001)对阶:E 补=Ex 补+-Ey 补=11,101+00,010=11,111 0,应 Ey 向 Ex 对齐,则:Ey 补+1=00,100+00,001=00,101=Ex 补y 补=0,101;1.111 000(1)2)尾数运算:Mx 补+My 补=11.011011+11.111000(1)=11.010011(1)Mx 补+-My 补=11.011011+00.000111(1)=11.100010(1)2)结果规格化:x+y 补=00,101;11.010 011(1),已是规格化数x-y 补=00,101;11.100 010(1)=00,100;11.000 101(尾数左规1 次,阶码减1)4)舍入:x+y 补=00,101;11.010 011(舍)x-y 补 不变5)溢出:无则:x+y=2 101(-0.101 101)x-y=2 100(-0.111 011)32.设机器字长为16 位,分别按4、4、4、4 和 5、5、3、3 分组后,(1)画出按两种分组方案的单重分组并行进位链框图,并比较哪种方案运算速度快。(2)画出按两种分组方案的双重分组并行进位链框图,并对这两种方案进行比较。(3)用 74181 和 74182 画出单重和双重分组的并行进位链框图。解:(1)4444 分组的 16 位单重分组并行进位链框图见教材286 页图 6.22。5 533 分组的 16 位单重分组并行进位链框图如下:(2)4444 分组的 16 位双重分组并行进位链框图见教材289 页图 6.26。5 533 分组的 16 位双重分组并行进位链框图如下:5 533 分组的进位时间=2.5ty 3=7.5ty;4 444 分组的进位时间=2.5ty 3=7.5ty;可见,两种分组方案最长加法时间相同。结论:双重分组并行进位的最长进位时间只与组数和级数有关,与组内位数无关。(3)单重分组16 位并行加法器逻辑图如下(正逻辑):注意:1)74181 芯片正、负逻辑的引脚表示方法;2)为强调可比性,5-5-3-3 分组时不考虑扇入影响;3)181 芯片只有最高、最低两个进位输入/输出端,组内进位无引脚;4)181 为 4 位片,无法5-5-3-3 分组,只能4-4-4-4 分组;5)单重分组跳跃进位只用到181,使用 182 的一定是双重以上分组跳跃进位;6)单重分组跳跃进位是并行进位和串行进位技术的结合;双重分组跳跃进位是二级并行进位技术;特别注意在位数较少时,双重分组跳跃进位可以采用全先行进位技术实现;位数较多时,可采用双重分组跳跃进位和串行进位技术结合实现。第七章1.什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切的关系?答:参考P300。2.什么叫寻址方式?为什么要学习寻址方式?答:参看P310。3.什么是指令字长、机器字长和存储字长?答:略。4.零地址指令的操作数来自哪里?各举一例说明。答:零地址指令的操作数来自ACC,为隐含约定。在一地址指令中,另一个操作数