唐朔飞计算机组成原理习题答案.docx
《唐朔飞计算机组成原理习题答案.docx》由会员分享,可在线阅读,更多相关《唐朔飞计算机组成原理习题答案.docx(20页珍藏版)》请在冰豆网上搜索。
唐朔飞计算机组成原理习题答案
《计算机组成原理》习题答案
第 一 章
5.冯•诺依曼计算机的特点是什么?
解:
冯氏计算机的特点是:
•由运算器、控制器、存储器、输入设备、输出设备五大部件组成;
•指令和数据以同一形式(二进制形式)存于存储器中;
•指令由操作码、地址码两大部分组成;
•指令在存储器中顺序存放,通常自动顺序取出执行;
•以运算器为中心(原始冯氏机)。
7.解释下列概念:
主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
解:
P10
主机——是计算机硬件的主体部分,由CPU+MM(主存或内存)组成;
CPU——中央处理器(运算器与控制器合称CPU),是计算机硬件的核心部件
主存——存放正在运行的程序和数据的存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成
存储单元——可存放一个机器字并具有特定存储地址的存储单位
存储元件——存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取;
存储字——一个存储单元所存二进制代码的逻辑单位;
存储字长——一个存储单元所存二进制代码的位数;
存储容量——存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)
机器字长——CPU能同时处理的数据位数;
指令字长——一条指令的二进制代码位数;
8.解释下列英文缩写的中文含义:
CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS
解:
全面的回答应分英文全称、中文名、中文解释三部分。
CPU——CentralProcessingUnit,中央处理机(器),见7题;
PC——ProgramCounter,程序计数器,存放当前欲执行指令的地址,并可自动计数形成下一条指令地址的计数器;
IR——InstructionRegister,指令寄存器,存放当前正在执行的指令的寄存器;
CU——ControlUnit,控制单元(部件),控制器中产生微操作命令序列的部件,为控制器的核心部件;
ALU——ArithmeticLogicUnit,算术逻辑运算单元,运算器中完成算术逻辑运算的逻辑部件;
ACC——Accumulator,累加器,运算器中运算前存放操作数、运算后存放运算结果的寄存器;
MQ——Multiplier-QuotientRegister,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。
X——此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数;
MAR——MemoryAddressRegister,存储器地址寄存器,用来存放欲访问存储单元地址的寄存器;
MDR——MemoryDataRegister,存储器数据缓冲寄存器,用来存放从某单元读出、或写入某存储单元数据的寄存器;
I/O——Input/Outputequipment,输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送;
MIPS——MillionInstructionPerSecond,每秒执行百万条指令数,为计算机运算速度指标的一种计量单位;
11.指令和数据都存于存储器中,计算机如何区分它们?
解:
计算机硬件主要通过不同的时间段来区分指令和数据,即:
取指周期(或取指微程序)取出的既为指令,执行周期(或相应微程序)取出的既为数据。
另外也可通过地址来源区分,从PC指出的存储单元取出的是指令,由指令地址码部分OP(Ad)提供操作数地址。
问题讨论:
×由控制器分析是指令还是数据;
×MAR放地址,MDR放MM的内容:
指令、数据?
×指令由指令寄存器存取;
×存取数据和存取指令的操作在机器中完全一样;
×有的机器指令和数据的地址不一样?
(分区的问题)
第三章
1.什么是总线?
总线传输有何特点?
为了减轻总线负载,总线上的部件应具备什么特点?
解:
总线是多个部件共享的传输部件。
总线传输的特点是:
某一时刻只能有一路部件的信息在总线上传输,即分时使用。
为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线连通。
围绕“为减轻总线负载”的几种说法:
×应对设备按速率进行分类,各类设备挂在与自身速率相匹配的总线上;
×应采用多总线结构;
×总线上只连接计算机的五大部件;
×总线上的部件应为低功耗部件。
×总线上的部件应具备机械特性、电器特性、功能特性、时间特性;
第四章
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=32片
4K×8:
16K×32/4K×8=4×4=16片
8K×8:
16K×32/8K×8=2×4=8片
讨论:
地址线根数与容量的关系,在此为214=16K,14根;
数据线根数与字长位数相等,在此为32根。
9.什么叫刷新?
为什么要刷新?
说明刷新有几种方法。
解:
刷新——对DRAM定期进行的全部重写过程;
刷新原因——因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;
常用的刷新方法有三种——集中式、分散式、异步式。
集中式:
在最大刷新间隔时间内,集中安排一段时间进行刷新;
分散式:
在每个读/写周期之后插入一个刷新周期,无CPU访存死时间;
异步式:
是集中式和分散式的折衷。
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)分配地址空间,写出对应的二进制地址码:
CPU-16脚(64K)
系统程序区地址(0-4K):
0000000000000000-0000111111111111;共4K.
用户程序区地址(4K-16K):
0001000000000000-0011111111111111;共12K.
(2)选片:
ROM:
4K×4位,2片;[ROM(2K×8位,4K×4位,8K×8位)]
RAM:
4K×8位:
3片;[RAM(1K×4位,2K×8位,4K×8位)]
(3)CPU和存储器连接逻辑图及片选逻辑:
4片4K的存储器地址线相同:
A0-A11;A12A13每片不同,接入74138译码器作为片选信号(-CS):
00选ROM,01、10、11分别选RAM1—3。
A0-A11接ROM(4K×4位),2片;地址线一样,数据线分高低4位。
A0-A11接RAM(4K×8位),3片;地址线一样,数据线一样。
-MREQ端并联接入-G2A/-G2B,A14A15经与非门接入G1端。
ROM的-PD/Progr端接地(只读),R/-W接入RAM相应端。
讨论:
⏹选片:
当采用字扩展和位扩展所用芯片一样多时,选位扩展。
理由:
字扩展需设计片选译码,较麻烦,而位扩展只需将数据线按位引出即可。
本题ROM如选用2K×8ROM,片选要采用二级译码,实现较麻烦。
⏹当需要RAM、ROM等多种芯片混用时,应尽量选容量等外特性较为一致的芯片,以便于简化连线——地址线一样。
⏹应尽可能的避免使用二级译码,以使设计简练。
⏹片选译码器的各输出所选的存储区域是一样大的,因此所选芯片的字容量应一致,如不一致时就要考虑二级译码。
16.CPU假设同上题,现有8片8K×8位的RAM芯片与CPU相连,试回答:
(1)用74138译码器画出CPU与存储芯片的连接图;
(2)写出每片RAM的地址范围;
(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。
(4)根据
(1)的连接图,若出现地址线A13与CPU断线,并搭接到高电平上,将出现什么后果?
解:
(1)分配地址空间:
8片8K×8位,地址线相同:
A0-A12,A13-A15接入74138译码器输出8个片选信号(-CS)分别选中RAM1-8。
(2)每片RAM的地址范围:
0000-1FFF,2000-3FFF,4000-5FFF,6000-7FFF,8000-9FFF,A000-BFFF,
C000-DFFF,E000-FFFF.
(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片(第5片)都有与其相同的数据,则根本的故障原因为:
该存储芯片的片选输入端很可能总是处于低电平。
可能的情况有(假设芯片与译码器本身都是好的):
⏹该片的-CS端与-WE端错连或短路;
⏹该片的-CS端与CPU的-MREQ端错连或短路;
⏹该片的-CS端与地线错连或短路;
(4)如果地址线A13与CPU断线,并搭接到高电平上,将会出现A13恒为“1”的情况。
此时存储器只能寻址到片选信号:
A13=1的地址空间(奇数片),A13=0的另一半地址空间(偶数片)将永远访问不到。
⏹若对A13=0的地址空间(偶数片)进行访问,只能错误地访问到A13=1的对应空间(奇数片)中去。
第五章
14.在什么条件下,I/O设备可以向CPU提出中断请求?
解:
I/O设备向CPU提出中断请求的条件是:
I/O接口中的设备工作完成状态为1(D=1);中断屏蔽码为0(MASK=0);且CPU查询中断时,中断请求触发器状态为1(INTR=1)。
15.什么是中断允许触发器?
它有何作用?
解:
中断允许触发器是CPU中断系统中的一个部件,他起着开关中断的作用,即中断总开关。
中断屏蔽触发器可视为中断的分开关。
16.在什么条件和什么时间,CPU可以响应I/O的中断请求?
解:
CPU响应I/O中断请求的条件和时间是:
当中断允许状态为1(EINT=1);且至少有一个中断请求被查到;则在一条指令执行完时,响应中断。
28.CPU对DMA请求和中断请求的响应时间是否一样?
为什么?
解:
CPU对DMA请求和中断请求的响应时间不一样,因为两种方式的交换速度相差很大,因此CPU必须以更短的时间间隔查询并响应DMA请求(一个存取周期末)。
讨论:
⏹CPU对DMA的响应是即时的;
⏹CPU响应DMA的时间更短;DMA比中断速度高;
⏹因为DMA与CPU共享主存,会出现两者争用主存的冲突,CPU必须将总线让给DMA接口使用,常用停止CPU访存、周期窃取及DMA与CPU交替访存三种方式有效的分时使用主存;
27.试从下面七个方面比较程序查询、程序中断和DMA三种方式的综合性能。
(1)数据传送依赖软件还是硬件;
(2)传送数据的基本单位;
(3)并行性;
(4)主动性;
(5)传输速度;
(6)经济性;
(7)应用对象。
解:
(1)程序查询、程序中断方式的数据传送主要依赖软件,DMA主要依赖硬件。
(2)程序查询、程序中断传送数据的基本单位为字或字节,DMA为数据块。
(3)程序查询方式传送时,CPU与I/O设备串行工作;
程序中断方式时,CPU与I/O设备并行工作,现行程序与I/O传送串行进行;
DMA方式时,CPU与I/O设备并行工作,现行程序与I/O传送并行进行。
(4)程序查询方式时,CPU主动查询I/O设备状态;程序中断及DMA方式时,CPU被动接受I/O中断请求或DMA请求。
硬件调用子程序。
(5)程序中断方式由于软件额外开销时间比较大,因此传输速度最慢;
程序查询方式软件额外开销时间基本没有,因此传输速度比中断快;
DMA方式基本由硬件实现传送,因此速度最快;
注意:
程序中断方式虽然CPU运行效率比程序查询高,但传输速度却比程序查询慢。
(6)程序查询接口硬件结构最简单,因此最经济;
程序中断接口硬件结构稍微复杂一些,因此较经济;
DMA控制器硬件结构最复杂,因此成本最高;
(7)程序中断方式适用于中、低速设备的I/O交换;
程序查询方式适用于中、低速实时处理过程;
DMA方式适用于高速设备的I/O交换;
讨论:
问题1:
这里的传送速度指I/O设备与主存间,还是I/O与CPU之间?
答:
视具体传送方式而定,程序查询、程序中断为I/O与CPU之间交换,DMA为I/O与主存间交换。
问题2:
主动性应以CPU的操作方式看,而不是以I/O的操作方式看。
程序查询方式:
以缓冲器容量(块、二进制数字)为单位传送;
程序中断方式:
以向量地址中的数据(二进制编码)为单位传送;
DMA:
传送单位根据数据线的根数而定;
30.什么是多重中断?
实现多重中断的必要条件是什么?
解:
多重中断是指:
当CPU执行某个中断服务程序的过程中,发生了更高级、更紧迫的事件,CPU暂停现行中断服务程序的执行,转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程。
实现多重中断的必要条件是:
在现行中断服务期间,中断允许触发器为1,即开中断。
第 六 章
5.已知[x]补,求[x]原和x。
[x1]补=1.1100;X=-0.0100;[x]原=1.0100
[x2]补=1.1001;X=-0.0111;[x]原=1.0111
[x3]补=0.1110;X=0.1110;[x]原=0.1110
[x4]补=1.0000;X=-1.0000;[x]原不能表示
[x5]补=1,0101X=-1011;[x]原=1,1011
[x6]补=1,1100;X=-0100;[x]原=1,0100
[x7]补=0,0111;X=0111;[x]原=0,0111
[x8]补=1,0000;X=-10000;[x]原不能表示
9.当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数8位字长,采用一位符号位)?
解:
9B(10011011)
原码:
-27、补码对应(-1100101):
-101、反码对应(-1100100):
-100、移码对应的补码(00011011):
27、无符号数:
155。
FF(11111111)
原码:
-127、补码:
-1、反码:
-0、移码:
127、无符号数:
255。
19.设机器数字长8位(含1位符号位),用补码运算规则计算下列各题。
(1)A=9/64,B=-13/32,求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(右移6位)=(0.001001)2
B=-13/32(右移5位)=(-0.01101)2
8位字长[A]补=0.0010010;[B]补=1.1001100
[A+B]补=0.001 0010
+1.100 1100
=1.1011110——无溢出
A+B=(-0.0100010)2=-17/64
(3)A=-3/16(右移4位)=(-0.0011000)2
B=9/32(右移5位)=(0.0100100)2
[A]补=1.1101000;[B]补=0.0100100
[A+B]补=1.110 1000
+ 0.010 0100
=0.000 1100——无溢出
A+B=(0.0001100)2=3/32
(4)A=-87=(-1010111)2
B=53=(110101)2
[A]补=1,0101001;[B]补=0,0110101——[-B]补=1,1001011
[A-B]补=1,010 1001
+ 1,100 1011
=0,111 0100——溢出
A-B=(-1,0001100)2=-140(-128——127)
26.按机器补码浮点运算步骤,计算[x±y]补
(1)x=2-011×0.101100, y=2-010×(-0.011100);
解:
先将x、y转换成机器数形式:
[x]补=1,101;0.101100 [y]补=1,110;1.100100
1)对阶:
【E】补=[Ex]补+[-Ey]补
[E]补=11,101+00,010=11,111;
E<0,小阶对大阶应Ex向Ey对齐,则:
[X]补+1=11,110;0.010110Ex=Ey,对毕。
2)尾数运算:
[Mx]补+[My]补=00.010 110
+11.100 100
=11.111 010
[Mx]补+[-My]补=00.010 110
+00.011 100
=00.110 010
3)结果规格化:
[x+y]补=11,110;11.111010
=11,011;11.010000(左规3次,阶码减3)
[x-y]补=11,110;00.110010 已是规格化数。
4)舍入:
无
5)溢出:
无
则:
x+y=2-101×(-0.110000)
x-y=2-010×0.110010
(2)x=2-011×(-0.100010), y=2-010×(-0.011111);
解:
先将x、y转换成机器数形式:
[x]补=1,101;1.011110 [y]补=1,110;1.100001
1)对阶:
过程同上,则 [x]补=1,110;1.101111
2)尾数运算:
[Mx]补+[My]补=11.101 111
+11.100 001
=11.010000
[Mx]补+[-My]补=11.101 111
+00.011 111
=00.001 110
3)结果规格化:
[x+y]补=11,110;11.010000 已是规格化数。
[x-y]补=11,110;00.001110
=11,100;00.111 000(左规2次,阶码减2)
4)舍入:
无
5)溢出:
无
则:
x+y=2-010×(-0.110000)
x-y=2-100× 0.111000
(3)x=2101×(-0.100101) y=2100×(-0.001111)
略
第 七 章
16.机器为16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:
某机主存容量为4M
(1)画出一地址指令格式并指出各字段的作用;
(2)该指令直接寻址的最大范围;
(3)一次间址和多次间址的寻址范围;
(4)立即数的范围(十进制表示);
(5)相对寻址的位移量(十进制表示);
(6)上述六种寻址方式的指令哪一种执行时间最短?
哪一种最长?
为什么?
哪一种便于程序浮动?
哪一种最适合处理数组问题?
(7)如何修改指令格式,使指令的寻址范围可扩大到4M?
(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?
简要说明之。
解:
(1)单字长一地址指令格式:
7(操作码:
27=128)+3(寻址方式:
23=8)+6(地址码:
26=64)
(2)该指令直接寻址的最大范围为26=64字;
(3)一次间址的寻址范围为216=64K字;
多次间址的寻址范围为215=32K字;
(4)立即数的范围(6位):
若采用补码表示为1FH——20H;十进制表示为+31——-32;无符号数为0——63;
(5)相对寻址的位移量范围在采用补码表示时同立即数范围,为+31——-32;
(6)六种寻址方式中:
立即寻址指令执行时间最短,因为此时不需寻址;
间接寻址指令执行时间最长,因为寻址操作需访存一次到多次;
相对寻址便于程序浮动,因为此时操作数位置可随程序存储区的变动而改变,总是相对于程序一段距离;
变址寻址最适合处理数组问题,因为此时变址值可自动修改而不需要修改程序。
(7)为使指令寻址范围可扩大到4M,需要有效地址22(222)位,此时可将单字长一地址指令的格式改为双字长:
7+3+6;16
(8)如使一条转移指令能转移到主存的任一位置,可采用上述双字长一地址指令,通过选用合适的寻址方式完成。
(如选用直接寻址就可转移到主存任一位置,但选用相对寻址则只能在±2M范围内转移。
)除此之外,(7)、(8)两题也可通过段寻址方式达到扩大寻址空间的目的。
总之,不