计算机组成原理习题答案(蒋本珊) 下载本文

第一章

1 .电子数字计算机和电子模拟计算机的区别在哪里?

解:电子数字计算机中处理的信息是在时间上离散的数字量,运算的过程是不连续的;电子模拟计算机中处理的信息是连续变化的物理量,运算的过程是连续的。

2 .冯· 诺依曼计算机的特点是什么? 其中最主要的一点是什么?

解:冯· 诺依曼计算机的特点如下:

① 计算机(指硬件)应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成;

② 计算机内部采用二进制来表示指令和数据;

③ 将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作。

第③ 点是最主要的一点。

3 .计算机的硬件是由哪些部件组成的? 它们各有哪些功能?

解:计算机的硬件应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。它们各自的功能是:

① 输入设备:把人们编好的程序和原始数据送到计算机中去,并且将它们转换成计算机内部所能识别和接受的信息方式。

② 输出设备:将计算机的处理结果以人或其他设备所能接受的形式送出计算机。

③ 存储器:用来存放程序和数据。 ④ 运算器:对信息进行处理和运算。

⑤ 控制器:按照人们预先确定的操作步骤,控制整个计算机的各部件有条不紊地自动工作。

4 .什么叫总线? 简述单总线结构的特点。

解:总线是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息。单总线结构即各大部件都连接在单一的一组总线上,这个总线被称为系统总线。CPU 与主存、CPU 与外设之间可以直接进行信息交换,主存与外设、外设与外设之间也可以直接进行信息交换,而无须经过CPU 的干预。

5 .简单描述计算机的层次结构,说明各层次的主要特点。

解:现代计算机系统是一个硬件与软件组成的综合体,可以把它看成是按功能划分的多级层次结构。 第0 级为硬件组成的实体。

第1 级是微程序级。这级的机器语言是微指令集,程序员用微指令编写的微程序一般是直接由硬件执行的。

第2 级是传统机器级。这级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。

第3 级是操作系统级。从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。 第4 级是汇编语言级。这级的机器语言是汇编语言,完成汇编语言翻译的程序叫做汇编程序。

第5 级是高级语言级。这级的机器语言就是各种高级语言,通常用编译程序来完成高级语言翻译的工作。

第6 级是应用语言级。这一级是为了使计算机满足某种用途而专门设计的,因此这一级语言就是各种面向问题的应用语言。 6 .计算机系统的主要技术指标有哪些?

解:计算机系统的主要技术指标有:机器字长、数据通路宽度、主存容量和运算速度等。

机器字长是指参与运算的数的基本位数,它是由加法器、寄存器的位数决定的。

数据通路宽度是指数据总线一次所能并行传送信息的位数。 主存容量是指主存储器所能存储的全部信息量。

运算速度与机器的主频、执行什么样的操作、主存本身的速度等许多因素有关。

第二章

1 .设机器数的字长8 位(含1 位符号位) ,分别写出下列各二进制数的原码、补码和

反码:0 ,- 0 ,0 .1000 ,- 0 .1000 ,0 .1111 ,- 0 .1111 ,1101 ,- 1101 。

3 .已知下列数的原码表示,分别写出它们的补码表示:

[X1 ]原= 0 .10100 ,[X2 ]原=1 .10111 。 解:[X1 ]补= 0 .10100 ,[X2 ]补= 1 .01001 。

4 .已知下列数的补码表示,分别写出它们的真值:

[ X1 ]补= 0 .10100 ,[ X2 ]补=1 .10111 。 解: X1 = 0 .10100 ,X2 = - 0 .01001 。

8 .一个n 位字长的二进制定点整数,其中1 位为符号位,分别写出在补码和反码两 种情况下:

(1) 模数; (2) 最大的正数; (3) 最负的数; (4) 符号位的权; (5) - 1 的表示形式; (6) 0 的表示形式。

9 .某机字长16 位,问在下列几种情况下所能表示数值的范围: (1) 无符号整数; (2) 用原码表示定点小数; (3) 用补码表示定点小数; (4) 用原码表示定点整数; (5) 用补码表示定点整数。

10 .某机字长32 位,试分别写出无符号整数和带符号整数(补码)的表示范围(用十 进制数表示) 。

11 .某浮点数字长12 位,其中阶符1 位,阶码数值3 位,数符1 位,尾数数值7 位,阶码以2 为底,阶码和尾数均用补码表示。它所能表示的最大正数是多少? 最小规格化正数是多少? 绝对

值最大的负数是多少?

12 .某浮点数字长16 位,其中阶码部分6 位(含1 位阶符) ,移码表示,以2 为底;尾

数部分10 位(含1 位数符,位于尾数最高位) ,补码表示,规格化。分别写出下列各题的二 进制代码与十进制真值。 (1) 非零最小正数; (2) 最大正数; (3) 绝对值最小负数; (4) 绝对值最大负数。

13 .一浮点数,其阶码部分为p 位,尾数部分为q 位,各包含1 位符号位,均用补码表

示;尾数基数r = 2 ,该浮点数格式所能表示数的上限、下限及非零的最小正数是多少? 写 数据的机器层次表示出表达式。

14 .若上题尾数基数r = 16 ,按上述要求写出表达式。

15 .某浮点数字长32 位,格式如下。其中阶码部分8 位,以2 为底,移码表示;尾数部分一共24 位(含1 位数符) ,补码表示。现有一浮点代码为(8C5A3E00)16 ,试写出它所表示的十进制真值。

16 .试将( - 0 .1101)2 用IEEE 短浮点数格式表示出来。

17 .将下列十进制数转换为IEEE 短浮点数:

18 .将下列IEEE 短浮点数转换为十进制数:

(1) 11000000 11110000 000000000000000 ;

(2) 00111111 00010000 000000000000000 ;

(3) 01000011 10011001 000000000000000 ;

(4) 01000000 00000000 000000000000000 ;

(5) 01000001 00100000 000000000000000 ;

(6) 00000000 00000000 00000000 0 0 0 0 0 0

0000000 。

19 .对下列ASCII 码进行译码:

1001001 ,0100001 ,1100001111

1000101 ,1010000 ,1010111100

,1110 ,0100

20 .以下列形式表示(5382)10 。 (1) 8421 码; (2) 余3 码; (3) 2421 码; (4) 二进制数。

21 .填写下列代码的奇偶校验位,现设为奇校验: 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0

解:3 个代码的校验位分别是0 ,0 ,1 。

22 .已知下面数据块约定:横向校验、纵向校验均为奇校验,请指出至少有多少位出错。

23 .求有效信息位为01101110 的海明校验码。

24 .设计算机准备传送的信息是:1010110010001111 ,生成多项式是X5 + X2 + 1 ,计算校验位,写出CRC 码。

第三章

1 .指令长度和机器字长有什么关系? 半字长指令、单字长指令、双字长指令分别表示什么意思?

解:指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于或小于机器字长。通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。 2 .零地址指令的操作数来自哪里? 一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得? 各举一例说明。

解:双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获

得,即将另一操作数预先存放在累加器中。例如,前述零地址和一地址的加法指令。

3 .某机为定长指令字结构,指令长度16 位;每个操作数的地址码长6 位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令已有K 种,无操作数指令已有L种,问单操作数指令最多可能有多少种? 上述三类指令各自允许的最大指令条数是多少?

4 .设某机为定长指令字结构,指令长度12 位,每个地址码占3 位,试提出一种分配

方案,使该指令系统包含:4 条三地址指令,8 条二地址指令,180 条单地址指令。

5 .指令格式同上题,能否构成:三地址指令4 条,单地址指令255 条,零地址指令64 条? 为什么?

6 .指令中地址码的位数与直接访问的主存容量和最小寻址单位有什么关系?

6 6 解:主存容量越大,所需的地址码位数就越长。对于相同容量来说,最小寻址单位越小,地址码的位数就越长。 7 .试比较间接寻址和寄存器间址。

解:间接寻址方式的有效地址在主存中,操作数也在主存中;寄存器间址方式的有效地址在寄存器中,操作数在主存中。所以间接寻址比较慢。

8 .试比较基址寻址和变址寻址。

解:基址寻址和变址寻址在形成有效地址时所用的算法是相同的,但是它们两者实际上是有区别的。一般来说,变址寻址中变址寄存器提供修改量(可变的) ,而指令中提供基准值(固定的) ;基址寻址中基址寄存器提供基准值(固定的) ,而指令中提供位移量(可变的) 。这两种寻址方式应用的场合也不同,变址寻址是面向用户的,用于访问字符串、向量和数组等成批数据;而基址寻址面向系统,主要用于逻辑地址和物理地址的变换,用以解决程序在主存中的再定位和扩大寻址空间等问题。在某些大型机中,基址寄存器只能

由特权指令来管理,用户指令无权操作和修改。

9 .某机字长为16 位,主存容量为64K 字,采用单字长单地址指令,共有50 条指令。若有直接寻址、间接寻址、变址寻址、相对寻址四种寻址方式,试设计其指令格式。

解:操作码6 位,寻址方式2 位,地址码8 位。

10 .某机字长为16 位,主存容量为64K 字,指令格式为单字长单地址,共有64 条指令。试说明:

(1) 若只采用直接寻址方式,指令能访问多少主存单元? (2) 为扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少? 指令直接寻址的范围为多少?

(3) 采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,指令寻址范围为多少? 指令直接寻址范围为多少?

(4) 采用(2) 、(3) 两种方式结合,指令的寻址范围为多少? 指令直接寻址范围为多少?

11 .设某机字长32 位,CPU 有32 个32 位的通用寄存器,设计一个能容纳64 种操作的单字长指令系统。

(1) 如果是存储器间接寻址方式的寄存器- 存储器型指令,能直接寻址的最大主存空间是多少?

(2) 如果采用通用寄存器作为基址寄存器,能直接寻址的最大主存空间又是多少?

解:因为计算机中共有64 条指令,所以操作码占6 位;32 个通用寄存器,寄存器编号占5 位;其余部分为地址码或标志位。 (1) 如果是存储器间接寻址方式的寄存器- 存储器型指令,操作码6 位,寄存器编号5 位,间址标志1 位,地址码20 位,直接寻址的最大主存空间是

字。

,能直

(2) 如果采用通用寄存器作为基址寄存器,接寻址的最大主存空间是

字。

12 .已知某小型机字长为16 位,其双操作数指令的格式如下:

其中:OP 为操作码,R 为通用寄存器地址。试说明下列各种情况下能访问的最大主存区域有多少机器字? (1) A 为立即数。

(2) A 为直接主存单元地址。 (3) A 为间接地址(非多重间址) 。

(4) A 为变址寻址的形式地址,假定变址寄存器为R1 (字长为16 位) 。

解:(1) 1 个机器字。

(2) 256 个机器字。 (3) 65536 个机器字。 (4) 65536 个机器字。

13 .计算下列4 条指令的有效地址(指令长度为16 位) 。 (1) 000000Q(2) 100000Q(3) 170710Q(4) 012305Q

16 .举例说明哪几种寻址方式除去取指令以外不访问存储器? 哪几种寻址方式除去取指令外只需访问一次存储器? 完成什么样的指令,包括取指令在内共访问4 次存储器?

解:除去取指令以外不访问存储器:立即寻址,寄存器寻址。 除去取指令外只需访问一次存储器:直接寻址,寄存器间接寻址,变址寻址,基址寻址,相对寻址,页面寻址。 二级间接寻址包括取指令在内共访问4 次存储器。

17 .设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。假设当前转移指令第一字节所在的地址为2000H ,且CPU 每取一个字节便自动完成(PC) + 1 → PC 的操作。试问当执行JMP *+ 8 和JMP *- 9 指令( 倡为相对寻址特征)时,转移指令第二字节的内容各为多少? 转移的目的地址各是什么?

解:转移指令第二字节的内容分别为:00001000(+8),11110111(-9)

转移的目的地址分别为:200AH ,1FF9H 。

20.什么叫主程序和子程序? 调用子程序时还可采用哪几种方法保存返回地址? 画图说明调用子程序的过程。

解:主程序就是指通常的程序,而子程序是一组可以公用的指令序列,只要知道子程序的入口地址就能调用它。 保存返回地址的方法有多种:

(1) 用子程序的第一个字单元存放返回地址。转子指令把返回地

址存放在子程序的第一个字单元中,子程序从第二个字单元开始执行。返回时将第一个字单元地址作为间接地址,采用间址方式返回主程序。

(2) 用寄存器存放返回地址。转子指令先把返回地址放到某一个寄存器中,再由子程序将寄存器中的内容转移到另一个安全的地方。 (3) 用堆栈保存返回地址。

调用子程序的过程如图3唱8 所示,此时返回地址保存在堆栈中。

21 .在某些计算机中,调用子程序的方法是这样实现的:转子指令将返回地址存入子程序的第一个字单元,然后从第二个字单元开始执行子程序,请回答下列问题:

(1) 为这种方法设计一条从子程序转到主程序的返回指令。 (2) 在这种情况下,怎么在主、子程序间进行参数的传递? (3) 上述方法是否可用于子程序的嵌套?

(4) 上述方法是否可用于子程序的递归(即某个子程序自己调用自己) ?

(5) 如果改用堆栈方法,是否可实现(4) 所提出的问题?

解:(1) 返回指令通常为零地址指令。返回地址保存在堆栈中,执行返回指令时自动从堆栈中弹出。而目前返回地址是保存在子程序的第一个单元中,故此时返回指令不能再是零地址指令了,而应

当是一地址指令。如:

间接寻址可找到返回地址,然后无条件转移到返回的位置。 (2) 在这种情况下,可利用寄存器或主存单元进行主、子程序间的参数传递。

(3) 可以用于子程序的嵌套(多重转子) 。因为每个返回地址都放在调用的子程序的第一个单元中。

(4) 不可以用于子程序的递归,因为当某个子程序自己调用自己时,子程序第一个单元的内容将被破坏。

(5) 如果改用堆栈方法,可以实现子程序的递归,因堆栈具有后进先出的功能。

第四章

1 .证明在全加器里,进位传递函数

解:并行加法器中的每一个全加器都有一个从低位送来的进位和一个传送给较高位的进位。进位表达式为明

,也就是要证明

欲证

用卡诺图法,图4-10(a)和4-10(b)分别是两个逻辑表达式的卡诺图。两个卡诺图相同,两个逻辑表达式就相等,则进位传递函数的两种形式相等。

2 .某加法器采用组内并行、组间并行的进位链,4 位一组,写出进位信号C6 的逻辑表达式。

3 .设计一个9 位先行进位加法器,每3 位为一组,采用两级先行进位线路。

4 .已知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

5 .已知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

9

7 .设下列数据长8 位,包括1 位符号位,采用补码表示,分别写出每个数据右移或左移2 位之后的结果。 (1) 0 .1100100 (2) 1 .0011001 (3) 1 .1100110 (4) 1 .0000111

8 .分别用原码乘法和补码乘法计算X × Y 。

(1) X = 0 .11011 ,Y = - 0 .11111 (2) X = - 0 .11010 ,Y = - 0 .01110

(2) X × Y = 0 .0101101100 ,过程略。 9 .根据补码两位乘法规则推导出补码3 位乘法的规则。

解:先根据补码1 位乘法推出补码2 位乘法规则,再根据补码2 位乘法推出补码3 位乘法规则。

10 .分别用原码和补码加减交替法计算X ÷ Y 。 (1) X = 0 .10101 ,Y = 0 .11011 (2) X = - 0 .10101 ,Y = 0 .11011 (3) X = 0 .10001 ,Y = - 0 .10110 (4) X = - 0 .10110 ,Y = - 0 .11011

11 .设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题:

12 .设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题:

13 .用流程图描述浮点除法运算的算法步骤。

14 .设计一个1 位5421 码加法器。

解:设1 位被加数为A4 A3 A2 A1 ,加数为B41 。5421码的校正关系如表4-4所示。

3 B2 B B

第五章

1 .如何区别存储器和寄存器? 两者是一回 事的说法对吗?

解:存储器和寄存器不是一回事。存储器在CPU 的外边,专门用来存放程序和数据,访问存储器的速度较慢。寄存器属于CPU 的一部分,访问寄存器的速度很快。

2 .存储器的主要功能是什么? 为什么要把存储系统分成若干个不同层次? 主要有哪些层次?

解:存储器的主要功能是用来保存程序和数据。存储系统是由几个容量、速度和价格各不相同的存储器用硬件、软件、硬件与软件相结合的方法连接起来的系统。把存储系统分成若干个不同层次的目的是为了解决存储容量、存取速度和价格之间的矛盾。由高速缓冲存储器、主存储器、辅助存储器构成的三级存储系统可以分为两个层次,其中高速缓存和主存间称为Cache - 主存存储层次(Cache 存储系统) ;主存和辅存间称为主存— 辅存存储层次(虚拟存储系统) 。 3 .什么是半导体存储器? 它有什么特点?

解:采用半导体器件制造的存储器,主要有MOS 型存储器和双极型存储器两大类。半导体存储器具有容量大、速度快、体积小、可靠性高等特点。半导体随机存储器存储的信息会因为断电而丢失。 4 .SRAM 记忆单元电路的工作原理是什么? 它和DRAM 记忆单元电路相比有何异同点?

解:SRAM 记忆单元由6 个MOS 管组成,利用双稳态触发器来存储信息,可以对其进行读或写,只要电源不断电,信息将可保留。DRAM 记忆单元可以由4 个和单个MOS管组成,利用栅极电容存储信息,需要定时刷新。

5 .动态RAM 为什么要刷新? 一般有几种刷新方式? 各有什么优缺点?

解:DRAM 记忆单元是通过栅极电容上存储的电荷来暂存信息的,由于电容上的电荷会随着时间的推移被逐渐泄放掉,因此每隔一定的时间必须向栅极电容补充一次电荷,这个过程就叫做刷新。常见的刷新方式有集中式、分散式和异步式3 种。集中方式的特点是读写操作时不受刷新工作的影响,系统的存取速度比较高;但有死区,而且存储容量越大,死区就越长。分散方式的特点是没有死区;但它加长了系统的存取周期,降低了整机的速度,且刷新过于频繁,没有充分利用所允许的最大刷新间隔。异步方式虽然也有死区,但比集中方式的死区小得多,而且减少了刷新次数,是比较实用的一种刷新方式。

6 .一般存储芯片都设有片选端

,它有什么用途?

解:片选线中;

用来决定该芯片是否被选中。=0,芯片被选

=1,芯片不选中。

7 .DRAM 芯片和SRAM 芯片通常有何不同?

解:主要区别有:

① DRAM 记忆单元是利用栅极电容存储信息;SRAM 记忆单元利用双稳态触发器来存储信息。

② DRAM 集成度高,功耗小,但存取速度慢,一般用来组成大容量主存系统;SRAM的存取速度快,但集成度低,功耗也较大,所以一般用来组成高速缓冲存储器和小容量主存系统。 ③ SRAM 芯片需要有片选端通信号

、列选通

,DRAM 芯片可以不设

,而用行选

兼作片选信号。

④ SRAM 芯片的地址线直接与容量相关,而DRAM 芯片常采用了地址复用技术,以减少地址线的数量。

8 .有哪几种只读存储器? 它们各自有何特点?

解:MROM :可靠性高,集成度高,形成批量之后价格便宜,但用户对制造厂的依赖性过大,灵活性差。

PROM :允许用户利用专门的设备(编程器)写入自己的程序,但一

旦写入后,其内容将无法改变。写入都是不可逆的,所以只能进行一次性写入。

EPROM :不仅可以由用户利用编程器写入信息,而且可以对其内容进行多次改写。

EPROM 又可分为两种:紫外线擦除(UVEPROM)和电擦除(EEPROM) 。

闪速存储器:既可在不加电的情况下长期保存信息,又能在线进行快速擦除与重写,兼备了EEPROM 和RAM 的优点。 9 .说明存取周期和存取时间的区别。

解:存取周期是指主存进行一次完整的读写操作所需的全部时间,即连续两次访问存储器操作之间所需要的最短时间。存取时间是指从启动一次存储器操作到完成该操作所经历的时间。存取周期一定大于存取时间。

10 .一个1K × 8 的存储芯片需要多少根地址线、数据输入线和输出线?

解:需要10 根地址线,8 根数据输入和输出线。

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

解:某机字长为32 位,其存储容量是64KB ,按字编址的寻址范围是16KW 。若主存以字节编址,每一个存储字包含4 个单独编址的存储字节。假设采用大端方案,即字地址等于最高有效字节地址,且字地址总是等于4 的整数倍,正好用地址码的最末两位来区分同一个字中的4 个字节。主存字地址和字节地址的分配情况如图5-19 所示。

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

1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位。

解:地址线14 根,数据线32 根,共46 根。

若选用不同规格的存储芯片,则需要:1K×4位芯片128片,2K×8位芯片32片,4K×4位芯片

32片,16K×1位芯片32片,4K×8位芯片16片,8K×8位芯片8 片。

13 .现有1024 × 1 的存储芯片,若用它组成容量为16K × 8 的存储器。试求:

(1) 实现该存储器所需的芯片数量?

(2) 若将这些芯片分装在若干块板上,每块板的容量为4K × 8 ,该存储器所需的地址线总位数是多少? 其中几位用于选板? 几位用于选片? 几位用作片内地址?

解:(1) 需1024 × 1 的芯片128 片。

(2) 该存储器所需的地址线总位数是14位,其中2位用于选板,2位用于选片,10位用作片内地址。

14 .已知某机字长8 位,现采用半导体存储器作主存,其地址线为16 位,若使用1K × 4 的SRAM 芯片组成该机所允许的最大主存空间,并采用存储模板结构形式。

(1) 若每块模板容量为4K × 8 ,共需多少块存储模板? (2) 画出一个模板内各芯片的连接逻辑图。

解:(1) 根据题干可知存储器容量为216 = 64KB ,故共需16 块存储模板。

(2) 一个模板内各芯片的连接逻辑图如图5-20 所示。

15 .某半导体存储器容量16K × 8 ,可选SRAM 芯片的容量为4K × 4 ;地址总线A15 ~ A0 (低) ,双向数据总线D7 ~ D0 (低) ,由R/W线控制读/写。请设计并画出该存储器的逻辑图,并注明地址分配、片选逻辑及片选信号的极性。

解:存储器的逻辑图与图5唱20 很相似,区别仅在于地址线的连接上,故省略。 地址分配如下:

16 .现有如下存储芯片:2K × 1 的ROM 、4K × 1 的RAM 、

8K × 1 的ROM 。若用它们组成容量为16KB 的存储器,前4KB 为ROM ,后12KB 为RAM ,CPU 的地址总线16 位。 (1) 各种存储芯片分别用多少片?

(2) 正确选用译码器及门电路,并画出相应的逻辑结构图。 (3) 指出有无地址重叠现象。

解:(1) 需要用2K × 1 的ROM 芯片16 片,4K × 1 的RAM 芯片24片。不能使用8K × 1 的ROM 芯片,因为它大于ROM 应有的空间。

(2) 各存储芯片的地址分配如下:

17 .用容量为16K × 1 的DRAM 芯片构成64KB 的存储器。 (1) 画出该存储器的结构框图。

(2) 设存储器的读/写周期均为0 .5μs ,CPU 在1μs 内至

少要访存一次,试问采用哪种刷新方式比较合理? 相邻两行之间的刷新间隔是多少? 对全部存储单元刷新一遍所需的实际刷新时间是多少?

解:(1) 存储器的结构框图如图5-22 所示。

(2) 因为要求CPU 在1μs 内至少要访存一次,所以不能使用集中刷新方式,分散和异步刷新方式都可以使用,但异步刷新方式比较合理。

相邻两行之间的刷新间隔= 最大刷新间隔时间÷ 行数= 2ms ÷ 128 = 15 .625μs 。取

15 .5μs ,即进行读或写操作31 次之后刷新一行。 对全部存储单元刷新一遍所需的实际刷新时间= 0 .5μs × 128 = 64μs

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 片。主存地址分配如图5-23 所示,主存的连接框图如图5-24 所示。

19 .某半导体存储器容量15KB ,其中固化区8KB ,可选EPROM 芯片为4K × 8 ;可随机读/写区7KB ,可选SRAM 芯片有:4K × 4 、2K × 4 、1K × 4 。地址总线A15 ~ A0 (A0 为最低位) ,双向数据总线D7 ~ D0 (D0 为最低位) ,R/W控制读/写,MREQ为低电平时允许存储器工作信号。请设计并画出该存储器逻辑图,注明地址分配、片选逻辑、片选信号极性等。

20 .某机地址总线16 位A15 ~ A0 (A0 为最低位) ,访存空间64KB 。外围设备与主存统一编址,I/O 空间占用FC00 ~ FFFFH 。现用2164 芯片(64K × 1)构成主存储器,请设计并画出该存储器逻辑图,并画出芯片地址线、数据线与总线的连接逻辑以及行选信号与列选信号的逻辑式,使访问I/O 时不访问主存。动态刷新逻辑可以暂不考虑。

解:存储器逻辑图如图5-26 所示,为简单起见,在图中没有考虑行选信号和列选信

号,行选信号和列选信号的逻辑式可参考下题。

在64KB 空间的最后1KB 为I/O 空间,在此区间CS无效,不访问主存。

21 .已知有16K × 1 的DRAM 芯片,其引脚功能如下:地址输入A6 ~ A0 ,行地址选择RAS ,列地址选择CAS ,数据输入端DIN ,数据输出端DOUT ,控制端WE 。请用给定芯片构成256KB 的存储器,采用奇偶校验,试问:需要芯片的总数是多少? 并请: (1) 正确画出存储器的连接框图。 (2) 写出各芯片RAS和CAS形成条件。

(3) 若芯片内部采用128 × 128 矩阵排列,求异步刷新时该存储器的刷新间隔。

解:(1) 需要的芯片数= 128 片,存储器的连接框图如图5-27 所示。

(3) 若芯片内部采用128 × 128 矩阵排列,设芯片的最大刷新间隔时间为2ms ,则相 邻两行之间的刷新间隔为:

刷新间隔= 最大刷新间隔时间÷ 行数= 2ms ÷ 128 = 15 .625μs

可取刷新间隔15 .5μs 。22.并行存储器有哪几种编址方式? 简述低位交叉编址存储器的工作原理。

解:并行存储器有单体多字、多体单字和多体多字等几种系统。 多体交叉访问存储器可分为高位交叉编址存储器和低位交叉编址存储器。低位交叉

编址又称为横向编址,连续的地址分布在相邻的存储体中,而同一存储体内的地址都是不

连续的。存储器地址寄存器的低位部分经过译码选择不同的存储体,而高位部分则指向

存储体内的存储字。如果采用分时启动的方法,可以在不改变每个存

储体存取周期的前

提下,提高整个主存的速度。

22 .并行存储器有哪几种编址方式? 简述低位交叉编址存储器的工作原理。

解:并行存储器有单体多字、多体单字和多体多字等几种系统。多体交叉访问存储器可分为高位交叉编址存储器和低位交叉编址存储器。低位交叉编址又称为横向编址,连续的地址分布在相邻的存储体中,而同一存储体内的地址都是不连续的。存储器地址寄存器的低位部分经过译码选择不同的存储体,而高位部分则指向存储体内的存储字。如果采用分时启动的方法,可以在不改变每个存储体存取周期的前提下,提高整个主存的速度。

23 .什么是高速缓冲存储器? 它与主存是什么关系? 其基本工作过程如何?

解:高速缓冲存储器位于主存和CPU 之间,用来存放当前正在执行的程序段和数据中的活跃部分,使CPU 的访存操作大多数针对Cache 进行,从而使程序的执行速度大大提高。高速缓冲存储器的存取速度接近于CPU 的速度,但是容量较小,它保存的信息只是主存中最急需处理的若干块的副本。当CPU 发出读请求时,如果Cache 命中,就直接对Cache 进行读操作,与主存无关;如果Cache 不命中,则仍需访问主存,并把该块信息一次从主存调入Cache 内。若此时Cache 已满,则须根据某种替换算法,用这个块替换掉Cache 中原来的某块信息。

24 .Cache 做在CPU 芯片内有什么好处? 将指令Cache 和数据Cache 分开又有什么好处?

解:Cache 做在CPU 芯片内可以提高CPU 访问Cache 的速度。将指令Cache 和数据Cache 分开的好处是分体缓存支持并行访问,即在取指部件取指令的同时,取数部件要取数据。并且,指令在程序执行中一般不需要修改,故指令Cache 中的内容不需写回到主存中去。 25 .设某机主存容量为4MB ,Cache 容量为16KB ,每块包含8 个字,每字32 位,设计一个四路组相联映像(即Cache 每组内共有四个块)的Cache 组织,要求: (1) 画出主存地址字段中各段的位数。

(2) 设Cache 的初态为空,CPU 依次从主存第0 、1 、2 、? 、99 号单元读出100 个字(主

存一次读出一个字) ,并重复按此次序读8 次,问命中率是多少? (3) 若Cache 的速度是主存的6 倍,试问有Cache 和无Cache 相比,速度提高多少倍?

解:(1) 主存容量为4MB ,按字节编址,所以主存地址为22 位,地址格式如图5-29所示。

(2) 由于每个字块有8 个字,所以主存第0 、1 、2 、? 、99 号字单元分别在字块0 ~ 12

中,采用四路组相联映像将分别映像到第0 组~ 12 组中,但