计算机组成原理第二版课后习题答案全 唐朔飞

2015-09-19 │ 计算机

第1章 计算机系统概论

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指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,

OP(IR) →CU,Ad(IR) →MAR,ACC→MDR,MAR→MM,WR

(2)ADD M指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,

OP(IR) →CU,Ad(IR) →MAR,RD,MM→MDR,MDR→X,ADD,ALU→ACC,ACC→MDR,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. 画一个具有双向传输功能的总线逻辑图。

答:在总线的两端分别配置三态门,就可以使总线具有双向传输功能。

a0a1anb0b1bna至b

b至a

12. 设数据总线上接有A、B、C、D四个寄存器,要求选用合适的74系列芯片,完成下列逻辑设计:

(1) 设计一个电路,在同一时间实现D→A、D→B和D→C寄存器间的传送; (2) 设计一个电路,实现下列操作:

T0时刻完成D→总线; T1时刻完成总线→A; T2时刻完成A→总线; T3时刻完成总线→B。

解:(1)由T打开三态门将 D寄存器中的内容送至总线bus,由cp脉冲同时将总线上的数据打入到 A、B、C寄存器中。 T和cp的时间关系如图(1)所示。

cp脉冲ABC总线busT三态门Tcp

图(1)

D(2)三态门1受T0+T1控制,以确保T0时刻D→总线,以及T1时刻总线→接收门1→A。三态门2受T2+T3控制,以确保T2时刻A→总线,以及T3时刻总线→接收门2→B。T0、T1、T2、T3波形图如图(2)所示。

图(2)

第 4 章

3. 存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次? 答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。

Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。

主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。

综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。

主存与CACHE之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

4. 说明存取周期和存取时间的区别。

解:存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。即:

存取周期 = 存取时间 + 恢复时间

5. 什么是存储器的带宽?若存储器的数据总线宽度为32位,存取周期为200ns,则存储器的带宽是多少?

解:存储器的带宽指单位时间内从存储器进出信息的最大数量。

存储器带宽 = 1/200ns ×32位 = 160M位/秒 = 20MB/秒 = 5M字/秒 注意:字长32位,不是16位。(注:1ns=10s)

6. 某机字长为32位,其存储容量是64KB,按字编址它的寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。

解:存储容量是64KB时,按字节编址的寻址范围就是64K,如按字编址,其寻址范围为:

64K / (32/8)= 16K

主存字地址和字节地址的分配情况:(略)。

7. 一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?

1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位 解:地址线和数据线的总和 = 14 + 32 = 46根;

选择不同的芯片时,各需要的片数为:

1K×4:(16K×32) / (1K×4) = 16×8 = 128片 2K×8:(16K×32) / (2K×8) = 8×4 = 32片 4K×4:(16K×32) / (4K×4) = 4×8 = 32片 16K×1:(16K×32)/ (16K×1) = 1×32 = 32片 4K×8:(16K×32)/ (4K×8) = 4×4 = 16片

-9

8K×8:(16K×32) / (8K×8) = 2×4 = 8片

8. 试比较静态RAM和动态RAM。 答:略。(参看课件)

9. 什么叫刷新?为什么要刷新?说明刷新有几种方法。 解:刷新:对DRAM定期进行的全部重写过程;

刷新原因:因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;

常用的刷新方法有三种:集中式、分散式、异步式。

集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在CPU访存死时间。 分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间。 异步式:是集中式和分散式的折衷。

10. 半导体存储器芯片的译码驱动方式有几种?

解:半导体存储器芯片的译码驱动方式有两种:线选法和重合法。

线选法:地址译码信号只选中同一个字的所有位,结构简单,费器材;

重合法:地址分行、列两部分译码,行、列译码线的交叉点即为所选单元。这种方法通过行、列译码信号的重合来选址,也称矩阵译码。可大大节省器材用量,是最常用的译码驱动方式。

11. 一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,存取周期为0.1μs。试问采用集中刷新、分散刷新和异步刷新三种方式的刷新间隔各为多少?

解:采用分散刷新方式刷新间隔为:2ms,其中刷新死时间为:256×0.1μs=25.6μs

采用分散刷新方式刷新间隔为:256×(0.1μs+×0.1μs)=51.2μs 采用异步刷新方式刷新间隔为:2ms

12. 画出用1024×4位的存储芯片组成一个容量为64K×8位的存储器逻辑框图。要求将64K分成4个页面,每个页面分16组,指出共需多少片存储芯片。 解:设采用SRAM芯片,则:

总片数 = (64K×8位) / (1024×4位)= 64×2 = 128片

题意分析:本题设计的存储器结构上分为总体、页面、组三级,因此画图时也应分三级画。首先应确定各级的容量:

页面容量 = 总容量 / 页面数 = 64K×8 / 4 = 16K×8位,4片16K×8字串联成64K×8位

组容量 = 页面容量 / 组数 = 16K×8位 / 16 = 1K×8位,16片1K×8位字串联成16K×8位

组内片数 = 组容量 / 片容量 = 1K×8位 / 1K×4位 = 2片,两片1K×4位芯片位并联成1K×8位

存储器逻辑框图:(略)。

13. 设有一个64K×8位的RAM芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。 解:存储基元总数 = 64K×8位 = 512K位 = 2位;

19

思路:如要满足地址线和数据线总和最小,应尽量把存储元安排在字向,因为地址位数和字数成2的幂的关系,可较好地压缩线数。

解:设地址线根数为a,数据线根数为b,则片容量为:2×b = 2;b = 2

若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×4位的RAM芯片组成模块板结构的存储器,试问:

(1)该机所允许的最大主存空间是多少?

(2)若每个模块板为32K×8位,共需几个模块板? (3)每个模块板内共有几片RAM芯片? (4)共有多少片RAM? (5)CPU如何选择各模块板?

解:(1)该机所允许的最大主存空间是:2 × 8位 = 256K×8位 = 256KB

(2)模块板总数 = 256K×8 / 32K×8 = 8块

(3)板内片数 = 32K×8位 / 4K×4位 = 8×2 = 16片 (4)总片数 = 16片×8 = 128片

(5)CPU通过最高3位地址译码输出选择模板,次高3位地址译码输出选择芯片。地址格式分配如下:

模板号(3位) 芯片号 (3位) 片内地址(12位)18

a

19

19-a

15. 设CPU共有16根地址线,8根数据线,并用MREQ(低电平有效)作访存控制信号,R/W作读写命令信号(高电平为读,低电平为写)。现有下列存储芯片:ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位),及74138译码器和其他门电路(门电路自定)。试从上述规格中选用合适芯片,画出CPU和存储芯片的连接图。要求:

(1)最小4K地址为系统程序区,4096~16383地址范围为用户程序区; (2)指出选用的存储芯片类型及数量; (3)详细画出片选逻辑。 解:(1)地址空间分配图:

系统程序区(ROM共4KB):0000H-0FFFH 用户程序区(RAM共12KB):1000H-FFFFH (2)选片:ROM:选择4K×4位芯片2片,位并联

RAM:选择4K×8位芯片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 A0 ROM1,2 0 0 RAM1 RAM2 RAM3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 CPU和存储器连接逻辑图及片选逻辑如下图(3)所示:

MREQG1G2AY7Y3Y2A15A14A13A12A11A0G2BABC74138Y1Y0......ROM1OE...ROM2OE...RAM1...CS...CSCPUD0D3D4D7R/WPD/PROGRAM2RAM3...............CS......图(3)

16. CPU假设同上题,现有8片8K×8位的RAM芯片与CPU相连,试回答:

(1)用74138译码器画出CPU与存储芯片的连接图; (2)写出每片RAM的地址范围;

(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。

(4)根据(1)的连接图,若出现地址线A13与CPU断线,并搭接到高电平上,将出现什么后果?

解:(1)CPU与存储器芯片连接逻辑图:

+5VG1G2AMREQY7A15A14A13A12A0G2BABC74138......Y2Y1Y0...WE...WE.........CSWECPUD0D7RAM0......CSRAM1RAM7......CSR/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>=n+k+1)

设校验位分别为c1、c2、c3,则汉明码共4+3=7位,即:c1c2b4c3b3b2b1 校验位在汉明码中分别处于第1、2、4位 c1=b4⊕b3⊕b1 c2=b4⊕b2⊕b1

k

c3=b3⊕b2⊕b1

当有效信息为1100时,c3c2c1=011,汉明码为1110100。 当有效信息为1101时,c3c2c1=100,汉明码为0011101。 当有效信息为1110时,c3c2c1=101,汉明码为1011110。 当有效信息为1111时,c3c2c1=010,汉明码为0110111。

18. 已知收到的汉明码(按配偶原则配置)为1100100、1100111、1100000、1100001,检查上述代码是否出错?第几位出错?

解:假设接收到的汉明码为:c1’c2’b4’c3’b3’b2’b1’

纠错过程如下:

P1=c1’⊕b4’⊕b3’⊕b1’ P2=c2’⊕b4’⊕b2’⊕b1’ P3=c3’⊕b3’⊕b2’⊕b1’

如果收到的汉明码为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

字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。 解:cache组数:64/4=16 ,Cache容量为:64*128=2字,cache地址13位

主存共分4096/16=256区,每区16块

主存容量为:4096*128=2字,主存地址19位,地址格式如下: 主存字块标记(8位) 组地址(4位) 字块内地址(7位) 19

13

第6章

12. 设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出51/128、-27/1024所对应的机器数。要求如下: (1)阶码和尾数均为原码。 (2)阶码和尾数均为补码。

(3)阶码为移码,尾数为补码。 解:据题意画出该浮点数的格式:

阶符1位 阶码4位 数符1位 尾数10位 -1-5

将十进制数转换为二进制:x1= 51/128= 0.0110011B= 2 * 0.110 011B

x2= -27/1024= -0.0000011011B = 2*(-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 - 1,即:0—— 65535;

无符号小数:0 —— 1 - 2 ,即:0 —— 0.99998;

(2)原码定点小数:-1 + 2——1 - 2 ,即:-0.99997 —— 0.99997 (3)补码定点小数:- 1——1 - 2 ,即:-1——0.99997 (4)补码定点整数:-2——2 - 1 ,即:-32768——32767 (5)原码定点整数:-2 + 1——2 - 1,即:-32767——32767

(6)据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时: 最大负数= 1,11 111;1.000 000 001 ,即 -2?2 最小负数= 0,11 111;1.111 111 111,即 -(1-2)?2 则负数表示范围为:-(1-2)?2—— -2?2 最大正数= 0,11 111;0.111 111 111,即 (1-2)?2 最小正数= 1,11 111;0.000 000 001,即 2?2 则正数表示范围为:2?2

-9

-31

-9

-31-9

31

-9

31

-9

-31

-9

31

-9

-31

15

15

15

15

-15

-15

-15

-16

16

——(1-2)?2

-931

(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则 最大负数=1,00 000;1.011 111 111,即 -2?2 最小负数=0,11 111;1.000 000 000,即 -1?2 则负数表示范围为:-1?2—— -2?2

最大正数=0,11 111;0.111 111 111,即 (1-2)?2 最小正数=1,00 000;0.100 000 000,即 2?2 则正数表示范围为:2?2

-1

-32

-1

-32-9

31

31

-1

-32

31-1

-32

——(1-2)?2

-931

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]补. (1)x=2 (2)x=2

-011-011101

× 0.101 100,y=2

-010

×(-0.011 100);

-010

×(-0.100 010),y=2×(-0.011 111);

(3)x=2×(-0.100 101),y=2×(-0.001 111)。 解:先将x、y转换成机器数形式: (1)x=2

-011

100

× 0.101 100,y=2

-010

×(-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 100

1)对阶:

[?E]补=[Ex]补+[-Ey]补 = 11,101+ 00,010=11,111 < 0,

应Ex向Ey对齐,则:[Ex]补+1=11,101+00,001=11,110 = [Ey]补 [x]补=1,110;0.010 110 2)尾数运算:

[Mx]补+[My]补= 0.010 110 + 11.100 100=11.111010

[Mx]补+[-My]补=0.010 110 + 00.011100= 00.110 010 3)结果规格化:

[x+y]补=11,110;11.111 010 = 11,011;11.010 000 (尾数左规3次,阶码减3) [x-y]补=11,110;00.110 010, 已是规格化数。 4)舍入:无 5)溢出:无 则:x+y=2

(2)x=2

-011

-101

×(-0.110 000) ×0.110 010

010

x-y =2

-010

×(-0.100010),y=2-×(-0.011111)

[x]补=1,101;1.011 110, [y]补=1,110;1.100 001

1) 对阶:过程同(1)的1),则 [x]补=1,110;1.101 111 2)尾数运算:

[Mx]补+[My]补= 11.101111 + 11. 100001 = 11.010000 [Mx]补+[-My]补= 11.101111 + 00.011111 = 00.001110

3)结果规格化:

[x+y]补=11,110;11.010 000,已是规格化数

[x-y]补=11,110;00.001 110 =11,100;00.111000 (尾数左规2次,阶码减2) 4)舍入:无 5)溢出:无 则:x+y=2

(3)x=2×(-0.100 101),y=2×(-0.001 111) [x]补=0,101;1.011 011, [y]补=0,100;1.110 001

1)对阶:

[?E]补=00,101+11,100=00,001 >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)舍入:

101

100

-010

×(-0.110 000) ×0.111 000

x-y =2

-100

[x+y]补=00,101;11.010 011(舍) [x-y]补 不变 5)溢出:无

则:x+y=2×(-0.101 101)

x-y =2×(-0.111 011)

32. 设机器字长为16位,分别按4、4、4、4和5、5、3、3分组后,

(1)画出按两种分组方案的单重分组并行进位链框图,并比较哪种方案运算速度快。 (2)画出按两种分组方案的双重分组并行进位链框图,并对这两种方案进行比较。 (3)用74181和74182画出单重和双重分组的并行进位链框图。

解:(1)4—4—4—4分组的16位单重分组并行进位链框图见教材286页图6.22。

5—5—3—3分组的16位单重分组并行进位链框图如下:

(2)4—4—4—4分组的16位双重分组并行进位链框图见教材289页图6.26。 5—5—3—3分组的16位双重分组并行进位链框图如下:

5—5—3—3分组的进位时间=2.5ty?3=7.5ty; 4—4—4—4分组的进位时间=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)单重分组跳跃进位是并行进位和串行进位技术的结合;双重分组跳跃进位是二级

并行进位技术;特别注意在位数较少时,双重分组跳跃进位可以采用全先行进位技术实现;位数较多时,可采用双重分组跳跃进位和串行进位技术结合实现。

100101

第7章

1. 什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切的关系? 答:参考P300。

2. 什么叫寻址方式?为什么要学习寻址方式? 答:参看P310。

3. 什么是指令字长、机器字长和存储字长? 答:略。

4. 零地址指令的操作数来自哪里??各举一例说明。 答:零地址指令的操作数来自ACC,为隐含约定。

在一地址指令中,另一个操作数的地址通常可采用ACC隐含寻址方式获得。

5. 对于二地址指令而言,操作数的物理地址可安排在什么地方?举例说明。

答:对于二地址指令而言,操作数的物理地址可安排在寄存器内、指令中或内存单元内等。

8. 某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M条,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种? 解:1)若采用定长操作码时,二地址指令格式如下:

OP(4位) A1(6位) 4A2(6位) 设二地址指令有K种,则:K=2-M-N

当M=1(最小值),N=1(最小值)时,二地址指令最多有:Kmax=16-1-1=14种 3) 若采用变长操作码时,二地址指令格式仍如1)所示,但操作码长度可随地址码的

个数而变。此时,K= 2 -(N/2 + M/2 );

当(N/2 + M/2 )?1时(N/2 + M/2 向上取整),K最大,则二地址指令最多有:

Kmax=16-1=15种(只留一种编码作扩展标志用。)

9. 试比较间接寻址和寄存器间接寻址。 答:略。

10. 试比较基址寻址和变址寻址。 略。

11. 画出先变址再间址及先间址再变址的寻址过程示意图。 解:1)先变址再间址寻址过程简单示意如下: EA=[(IX)+A],IX?(IX)+1

2)先间址再变址寻址过程简单示意如下:EA=(IX)+(A),IX? (IX)+1

16. 某机主存容量为4M?16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,

6

12

6

12

4

6

12

操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:(1)画出一地址指令格式并指出各字段的作用; (2)该指令直接寻址的最大范围; (3)一次间址和多次间址的寻址范围; (4)立即数的范围(十进制表示); (5)相对寻址的位移量(十进制表示);

(6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?

(7)如何修改指令格式,使指令的寻址范围可扩大到4M?

(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。 解:(1)单字长一地址指令格式:

OP(7位) M(3位) A(6位) OP为操作码字段,共7位,可反映108种操作; M为寻址方式字段,共3位,可反映6种寻址操作; A为地址码字段,共16-7-3=6位。 (2)直接寻址的最大范围为2=64。

(3)由于存储字长为16位,故一次间址的寻址范围为2;若多次间址,需用存储字的最高位来区别是否继续间接寻址,故寻址范围为2。

(4)立即数的范围为-32——31(有符号数),或0——63(无符号数)。 (5)相对寻址的位移量为-32——31。

(6)上述六种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存(一次间接寻址要两次访存,多次间接寻址要多次访存),故执行时间最长。变址寻址由于变址寄存器的内容由用户给定,而且在程序的执行过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便于用户编制处理数组问题的程序。相对寻址操作数的有效地址只与当前指令地址相差一定的位移量,与直接寻址相比,更有利于程序浮动。

(7)方案一:为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示:

OP(7位) MOD(3位) A(低16位) 方案二:如果仍采用单字长指令(16位)格式,为使指令寻址范围扩大到4M,可通过段寻址方案实现。安排如下:

硬件设段寄存器DS(16位),用来存放段地址。在完成指令寻址方式所规定的寻址操作后,得有效地址EA(6位),再由硬件自动完成段寻址,最后得22位物理地址。 即:物理地址=(DS)?2 + EA

注:段寻址方式由硬件隐含实现。在编程指定的寻址过程完成、EA产生之后由硬件自动

完成,对用户是透明的。

方案三:在采用单字长指令(16位)格式时,还可通过页面寻址方案使指令寻址范围扩

大到4M。安排如下:

硬件设页面寄存器PR(16位),用来存放页面地址。指令寻址方式中增设页面寻址。当需要使指令寻址范围扩大到4M时,编程选择页面寻址方式,则:EA =(PR)‖A (有效地址=页面地址“拼接”6位形式地址),这样得到22位有效地址。

(8)为使一条转移指令能转移到主存的任一位置,寻址范围须达到4M,除了采用(7) 方案一中的双字长一地址指令的格式外,还可配置22位的基址寄存器或22位的变址寄存器,使EA =

6

15

16

6

A(高6位) (BR) + A (BR为22位的基址寄存器)或EA =(IX)+ A(IX为22位的变址寄存器),便可访问4M存储空间。还可以通过16位的基址寄存器左移6位再和形式地址A相加,也可达到同样的效果。

总之,不论采取何种方式,最终得到的实际地址应是22位。

19. 某CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答以下问题:

(1)如果主存可直接或间接寻址,采用寄存器—存储器型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。

(2)在满足(1)的前提下,如果采用通用寄存器作基址寄存器,则上述寄存器—存储器型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间? 解:(1)如采用RS型指令,则此指令一定是二地址以上的地址格式,指令格式如下:

OP(6位) R(5位) 65

I(1位) A(20位) 操作码字段OP占6位,因为2>=64;

寄存器编号R占5位,因为2>=32;

间址位I占1位,当I=0,存储器寻址的操作数为直接寻址,当I=1时为间接寻址; 形式地址A占20位,可以直接寻址2字。

(2)如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令格式变为: OP(6位) 源R(5位) I(1位) 32

20

X(1位) 目标R(5位) A(14位) 增加寻址特征位X,当X=1时,以目标寄存器R作为基址寄存器进行基址寻址。 基址寻址可访问存储空间为:2字。

第十章

1. 假设响应中断时,要求将程序断点存在堆栈内,并且采用软件办法寻找中断服务程序的入口地址,试写出中断隐指令的微操作及节拍安排。

解:设软件查询程序首址为0号内存单元,则中断隐指令的微操作命令及节拍安排如下:

T0 0 SP T1 ,SP? MAR

T2 SP?W,SP+1 M(MAR) T3 PSW?MAR,MDR?SP

T4 1? W,SP+1?MDR, ?M(MAR) PC?EINT 由于题意中没有给出确切的数据通路结构,故上述节拍分配方案的并行性较低。?PC,MDR?0 ?MDR,1?MAR

2. 写出完成下列指令的微操作及节拍安排(包括取指操作)。

(1)指令ADD R1,X完成将R1寄存器的内容和主存X单元的内容相加,结果存于R1的操作。 (2)指令ISZ X完成将主存X单元的内容增1,并根据其结果若为0,则跳过下一条指令执行。 解:设采用单总线结构的CPU数据通路如下图所示,且ALU输入端设两个暂存器C、D(见17题图)。并设采用同步控制,每周期3节拍:

busPCMARSPMDRCUIRAC地址线数据线控制线

(1)指令ADD R1,X的微操作及节拍安排如下: 取指周期:T0 PC?MAR,1? R

T1 M(MAR) ?MDR,PC+1?PC T2 MDR?IR,OP(IR) ?ID

执行周期1:T0 Ad(IR)?MAR,1?R T1 M(MAR) ?MDR

T2 MDR?D

执行周期2:T0 R1?C

T1 + T2 ALU?R1

(2)指令ISZ X的微操作及节拍安排: 取指周期同(1):略

执行周期1: T0 Ad(IR)?MAR,1?R T1 M(MAR)?MDR

T2 MDR?C,+1?ALU

执行周期2:T0 ALU?MDR,1?W

T1 (PC+1)·Z+ PC·Z?PC

12. 能否说水平型微指令就是直接编码的微指令,为什么?

解:不能说水平型微指令就是直接编码的微指令,因为符合水平型微指令特征的微指令都属于水

平型微指令,常见的有:直接编码、字段直接编码、字段间接编码,及混合编码等。直接编码的微指令只是最典型的一种。

15. 设控制存储器的容量为512×48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下: 解:因为控制存储器共有512*48=29*48

所以,下址字段应有9位,微指令字长48位 又因为控制微程序转移的条件有4个,4+1<=23 所以判断测试字段占3位 因此控制字段位数为:48-9-3=36 微指令格式为:

21. 下表给出8条微指令I1~I8及所包含的微命令控制信号,设计微指令操作控制字段格式,要求所使用的控制位最少,而且保持微指令本身内在的并行性。

解:为使设计出的微指令操作控制字段最短,并且保持微指令本身内在的并行性,应采用混合编码法。首先找出互斥的微命令组,为便于分析,将微命令表重画如下:

由表中微命令的分布情况可看出:a、b、c、d、e微命令的并行性太高,因此不能放在同一字段中。另外,由分析可知,在2、3、4分组的互斥组中,3个一组的微命令互斥组对控制位的压缩作用最明显。因此,应尽可能多的找出3个一组的互斥组。现找出的互斥组有:cfj,dij,efh,fhi,bgj,ehj,efj??等等。

从中找出互不相重的互斥组有两个:dij,efh。则:微指令操作控制字段格式安排如下: 1 1 1 1 2 2

48 13 12 10 9 1 控制字段 测试字段 下址字段 a b c efh dij 各字段编码分配如下: a:0 无操作,1 a微命令;

b:0 无操作,1 b微命令; c: 0 无操作, 1 c微命令; g :0 无操作, 1 g微命令;

dij :00 无操作;01 d微命令;10 i微命令;11 j微命令; efh:00 无操作;01 e微命令;10 f微命令;11 h微命令

与采用直接控制法比较:直接控制法:10个微命令需10位操作控制位;本方案中10个微命令需8位操作控制位,压缩了2位。

计算机组成原理第二版课后习题答案全 唐朔飞

查看更多计算机相关内容,请点击计算机
推荐访问:
作文 论文 简历 文秘 合同 文库 计划 总结 体会 报告 策划 材料 公文 礼仪 思想 党团 演讲稿 企事业 发言致辞 资讯