计算机组成原理第四版课后习题答案完整版.docx
《计算机组成原理第四版课后习题答案完整版.docx》由会员分享,可在线阅读,更多相关《计算机组成原理第四版课后习题答案完整版.docx(49页珍藏版)》请在冰点文库上搜索。
计算机组成原理第四版课后习题答案完整版
第一章
1.比较数字计算机和模拟计算机的特点。
解:
模拟计算机的特点:
数值由连续量来表示,运算过程是连续的;数字计算机的特点:
数值由数字量(离散量)来表示,运算按位进行。
两者主要区别见P1表1.1。
2.数字计算机如何分类?
分类的依据是什么?
解:
分类:
数字计算机分为专用计算机和通用计算机。
通用计算机又分为巨型机、大型机、
中型机、小型机、微型机和单片机六类。
分类依据:
专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。
通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、
指令系统规模和机器价格等因素。
3.数字计算机有那些主要应用?
(略)
4.冯.诺依曼型计算机的主要设计思想是什么?
它包括哪些主要组成部分?
解:
冯.诺依曼型计算机的主要设计思想是:
存储程序和程序控制。
存储程序:
将解题的程序(指令序列)存放到存储器中;程序控制:
控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。
主要组成部分有:
控制器、运算器、存储器、输入设备、输出设备。
5.什么是存储容量?
什么是单元地址?
什么是数据字?
什么是指令字?
解:
存储容量:
指存储器可以容纳的二进制信息的数量,通常用单位KBMBGB来度量,存储
容
量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。
单元地址:
单元地址简称地址,在存储器中每个存储单元都有唯一的地址编号,称为单元地
址。
数据字:
若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。
指令字:
若某计算机字代表一条指令或指令的一部分,则称指令字。
6.什么是指令?
什么是程序?
解:
指令:
计算机所执行的每一个基本的操作。
程序:
解算某一问题的一串指令序列称为该问题的计算程序,简称程序。
7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?
解:
一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的
信息即为数据信息。
8.什么是内存?
什么是外存?
什么是CPU?
什么是适配器?
简述其功能。
解:
内存:
一般由半导体存储器构成,装在底版上,可直接和CPU交换信息的存储器称为内存
储
器,简称内存。
用来存放经常使用的程序和数据。
外存:
为了扩大存储容量,又不使成本有很大的提高,在计算机中还配备了存储容量更大的
磁盘存储器和光盘存储器,称为外存储器,简称外存。
外存可存储大量的信息,计
算
机需要使用时,再调入内存。
CPU包括运算器和控制器。
基本功能为:
指令控制、操作控制、时间控制、数据加工。
适配器:
连接主机和外设的部件,起一个转换器的作用,以使主机和外设协调工作。
9.计算机的系统软件包括哪几类?
说明它们的用途。
解:
系统软件包括:
(1)服务程序:
诊断、排错等
(2)语言程序:
汇编、编译、解释等
(3)操作系统
(4)数据库管理系统用途:
用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的
功能
及用途。
10.说明软件发展的演变过程。
(略)
11.现代计算机系统如何进行多级划分?
这种分级观点对计算机设计会产生什么影响?
解:
多级划分图见P16图1.6。
可分为:
微程序设计级、一般机器级、操作系统级、汇编语言级和高级语言级。
用这种分级的观点来设计计算机,对保证产生一个良好的系统结构是有很大帮助的。
12.为什么软件能够转化为硬件?
硬件能够转化为软件?
实现这种转化的媒介是什么?
(略)
13."计算机应用"与"应用计算机"在概念上等价吗?
用学科角度和计算机系统的层次结构来寿命你的观点。
(略)
第二章
8位二进制数)。
其中MSB是最高位
MSB之后;如果是整数,小数点在LSB
1.写出下列各数的原码、反码、补码、移码表示(用
(1)-35/64
(2)23/128(3)-127(4)
(又是符号位)LSB是最低位。
如果是小数,小数点在之后。
解:
(i)先把十进制数-35/64写成二进制小数:
(-35/64)10=(-100011/1000000)2=(-100011X2-110)2=(-0.100011)2
令x=-0.100011B
•••[x]原=1.1000110(注意位数为8位)[x]
反=1.0111001
移=0.0111010
[x]补=1.0111010
[x]
(2)
先把十进制数23/128写成二进制小数:
(23/128)10=(10111/10000000)
2=(10111X2
-111)2=(0.0001011)2
令x=0.0001011B
•[x]原=0.0001011
[x]
反=0.0001011
[x]补=0.0001011
[x]
移=1.0001011
(3)
先把十进制数-127写成二进制小数:
(-127)10=(-1111111)2
令x=-1111111B
•[x]原=1.1111111
[x]
反=1.0000000
[x]补=1.0000001
[x]
移=1.0000001
(4)
令x=-1.000000B
•原码、反码无法表示
[x]补=1.0000000
[x]
移=0.0000000
(5)
令Y=-1=-0000001B
•[Y]原=10000001
[Y]
反=11111110
[Y]补=11111111
[Y]
移=01111111
用小数表示-1(5)用整数表示-1
2.设[X]补=a0,ai,a2・・・a6,其中ai取0或1,若要x>—0.5,求ao,ai,a2,…,a6的取值。
解:
ao=1,ai=0,a2,…,a6=1…1
3.有一个字长为32位的浮点数,阶码10位(包括1位阶符),用移码表示;尾数22位(包
括1位尾符)用补码表示,基数R=2o请写岀:
(1)最大数的二进制表示;
(2)最小数的二进制表示;
(3)规格化数所能表示的数的范围;
(4)最接近于零的正规格化数与负规格化数。
解:
(1)11111111110111111111111111111111
(2)11111111111000000000000000000000
(3)11111111110111111111111111111111〜01111111111000000000000000000000
(4)00000000000000000000000000000001〜0000000000111111*********1111111
4.将下列十进制数表示成浮点规格化数,阶码3位,用补码表示;尾数9位,用补码表示。
(1)27/64
(2)-27/64
解:
(1)27/64=11011BX一‘i=0.011011B=0.11011BX
浮点规格化数:
11110110110000
(2)-27/64=-11011BX"「•=-0.011011B=-0.11011BX:
-
浮点规格化数:
11111001010000
5.已知X和Y,用变形补码计算X+Y,同时指岀运算结果是否溢岀。
(1)X=0.11011Y=0.00011
(2)X=0.11011Y=-0.10101
(3)X=-0.10110Y=-0.00001
解:
(1)先写岀x和y的变形补码再计算它们的和
[x]补=00.11011[y]补=00.00011
[x+y]补=[x]补+[y]补=00.11011+00.00011=0.11110
•••x+y=0.1111B无溢岀。
(2)先写岀x和y的变形补码再计算它们的和
[x]补=00.11011[y]补=11.01011
[x+y]补=[x]补+[y]补=00.11011+11.01011=00.00110
•x+y=0.0011B无溢岀。
(3)先写岀x和y的变形补码再计算它们的和
[x]补=11.01010[y]补=11.11111
[x+y]补=[x]补+[y]补=11.01010+11.11111=11.01001
•x+y=-0.10111B无溢岀
6.已知X和Y,用变形补码计算X-Y,同时指岀运算结果是否溢岀<
(1)X=0.11011Y=-0.11111
(2)X=0.10111Y=0.11011
(3)X=0.11011Y=-0.10011
解:
(1)先写岀x和y的变形补码,再计算它们的差
[x]补=00.11011[y]补=11.00001[-y]补=00.11111
[x-y]补=[x]补+[-y]补=00.11011+00.11111=01.11010
•••运算结果双符号不相等•••为正溢岀
X-Y=+1.1101B
(2)先写岀x和y的变形补码,再计算它们的差
[x]补=00.10111[y]补=00.11011[-y]补=11.00101
[x-y]补=00.10111+11.00101=11.11100
•x-y=-0.001B无溢岀
(3)先写岀x和y的变形补码,再计算它们的差
[x]补=00.11011[y]补=11.01101[-y]补=00.10011
[x-y]补=[x]补+[-y]补=00.11011+00.10011=01.01110
•••运算结果双符号不相等•为正溢岀
X-Y=+1.0111B
7.用原码阵列乘法器、补码阵列乘法器分别计算XX丫。
(1)X=0.11011Y=-0.11111
(2)X=-0.11111Y=-0.11011解:
(1)用原码阵列乘法器计算:
[x]补=0.11011[y]补=1.00001
(0)11011
X)
(1)00001
(0)
1
1
0
1
(0)
0
0
0
0
0
(0)
0
0
0
0
0
(0)
0
0
0
0
0
(0)0
0
0
0
0
(0)
(1)
(1)(0)
(1)
(1)
(1)00
1
0
1
1
1
0
1
1
1
[xXy]补=1.0010111011
•xXy=-0.1101000101
8.用原码阵列除法器计算X*Y。
(1)X=0.11000Y=-0.11111
(2)X=-0.01011Y=0.11001
解:
(1)凶原=凶补=0.11000[-IyI]补=1.00001
被除数X0.11000
+[-Iy门补1.00001
余数为负1.11001fq0=0左移1.10010
+[|y|]补0.11111
余数为正0.10001iq1=1左移1.00010
+[-|y|]补1.00001
余数为正0.00011tq2=1左移0.00110
+[-|y|]补1.00001
余数为负1.00111tq3=0
左移0.01110
+[|y|]补0.11111
余数为负1.01101tq4=0
左移0.11010
+[|y|]补0.11111
余数为负1.11001tq5=0
+[|y|]补0.11111
余数0.11000
故[x-y]原=1.11000即x*y=-0.11000B余数为0.11000BX
9.设阶为5位(包括2位阶符),尾数为8位(包括2位数符),阶码、尾数均用补码表示,完
成下列取值的[X+Y],[X-Y]运算:
(1)X=2”'x0.100101Y=?
川"X(-0.011110)
^-101
(2)X==X(-0.010110)Y=丄X(0.010110)
解:
(1)将y规格化得:
'x(-o.iiiioo)
[x]浮=1101,00.100101[y]浮=1101,11.000100[-y]浮=1101,00.111100
①对阶
[△E]补=[Ex]补+[-Ey]补=1101+0011=0000
•••Ex=Ey
②尾数相加
相加相减
00.100101
+00.111100
00.100101
+11.000100
11.101001
[x+y]浮=1101,11.101001
01.100001
左规[x+y]浮=1100,11.010010
•x+y=
X(-0.101110)
[x-y]浮=1101,01.100001
右规[x-y]浮=1110,00.1100001
舍入处理得[x-y]浮=1110,00.110001
•x-y=二'X0.110001
(2)[x]浮=1011,11.101010[y]浮=1100,00.010110[-y]浮=1100,11.101010
1对阶
[△E]补=[Ex]补+[-Ey]补=1011+0100=1111
•△E=-1[x]浮=1100,11.110101(0)
2尾数相加
相加相减
11.110101(0)11.110101(0)
+00.010110+11.101010
00.001011(0)
[x+y]浮=1100,00.001011(0)
11.011111(0)
左规[x+y]浮=1010,00.1011000
•x+y=
X0.1011B
[x-y]浮=1100,11.011111(0)
-DM
•x-y=
X(-0.100001B)
13.某加法器进位链小组信号为C4C3C2C1,低位来的信号为C0,请分别按下述两种方式写岀
C4C3C2C1的逻辑表达式。
(1)串行进位方式
(2)并行进位方式
解:
(1)串行进位方式:
C1=G1+P1C0其中:
C2=G2+P2C1
C3=G3+P3C2
C4=G4+P4C3
(2)并行进位方式:
G1=A1B1,
G2=A2B2,
G3=A3B3,G4=A4B4,
P1=A1®B1
P2=A2®B2
P3=A3®B3
P4=A4®B4
C1=G1+P1C0
C3=G3+P3G2+P
3P2G1+P3P2P1C0
C2=G2+P2G1+P2P1C0
C4=G4+P4G3+P
4P3G2+P4P3P2G1+P4P3P2P1C0
其中G1-G4,P1-P4表达式与串行进位方式相同
14.某机字长16位,使用四片74181组成ALU,设最低位序标注为0位,要求:
(1)写岀第5位的进位信号C6的逻辑表达式;
(2)估算产生C6所需的最长时间;
(3)估算最长的求和时间。
解:
(1)组成最低四位的74181进位输岀为:
C4=G+PCo,O0为向第0位的进位
其中:
G=y3+x3y2+x2x3y1+x1x2x3y0,P=x0x1x2x3
所以:
C5=y4+x4C4
C6=y5+x5C5=y5+x5y4+x5x4C4
(2)设标准门延迟时间为T,"与或非“门延迟时间为1.5T,则进位信号C0由最低位传送至C6需经一个反相器,两级“与或非"门,故产生C5的最长延迟时间为:
T+2X1.5T=4T
(3)最长求和时间应从施加操作数到ALU算起:
第一片74181有3级"与或非"门(产生控制参数x0,y0Cn+4),第二、第三片74181共2级反相器和2级"与或非"门(进位链),第四片74181求和逻辑(1级“与或非“门和1级半加器,其延迟时间为3T),故总的加法时间为:
T=3X1.5T+2T+2X1.5T+1.5T+1.5T+3T=14T
17•设A,B,C是三个16位的通用寄存器,请设计一个16位定点补码运算器,能实现下述功
能:
(1)A±B^A
(2)BXC^A,C(高位积在寄存器A中)
(3)ABtC(商在寄存器C中)
16位定点补码运算器框图
解:
设计能完成加、减、乘、除运算的
分析各寄存器作用:
加
减
乘
除
A被加数t和
同左
初始为0部分积t乘积(H)
被除数T余数
除数
B加数
同左
被乘数
乘数T乘积(L)商
•••A:
累加器(16位),具有输入、输岀、累加功能及双向移位功能;
B:
数据寄存器(16位),具有输入、输岀功能;
C:
乘商寄存器(16位),具有输入、输岀功能及双向移位功能。
画出框图:
第三章
1•有一个具有20位地址和32位字长的存储器,问:
(1)该存储器能存储多少个字节的信息?
(2)如果存储器由512KX8位SRAM芯片组成,需要多少芯片?
(3)需要多少位地址作芯片选择?
解:
(1)v220=1M,•该存储器能存储的信息为:
1MX32/8=4MB
(2)(1000/512)X(32/8)=8(片)
(3)需要1位地址作为芯片选择。
2.已知某64位机主存采用半导体存储器,其地址码为26位,若使用256KX16位的DRAM芯
片组成该机所允许的最大主存空间,并选用模块板结构形式,问:
(1)每个模块板为1024KX64位,共需几个模块板?
(2)个模块板内共有多少DRAM芯片?
(3)主存共需多少DRAM芯片?
CPU如何选择各模块板?
解:
(1).共需模块板数为m
=64(块)
(2).每个模块板内有DRAM芯片数为n:
n=(-”-/:
')X(64/16)=16(片)
(3)主存共需DRAM芯片为:
16X64=1024(片)
每个模块板有16片DRAM芯片,容量为1024KX64位,需20根地址线(A19~A0)完成
模块
板内存储单元寻址。
一共有64块模块板,采用6根高位地址线(A25〜A20),通过
6:
64译码器译码产生片选信号对各模块板进行选择。
3.用16KX8位的DRAM芯片组成64KX32位存储器,要求:
(1)画岀该存储器的组成逻辑框图。
⑵设存储器读/写周期为0.5卩S,CPU在1卩S内至少要访问一次。
试问采用哪种刷新方式比较合理?
两次刷新的最大时间间隔是多少?
对全部存储单元刷新一遍所需的实际刷新时间是多少?
解:
(1)组成64KX32位存储器需存储芯片数为
N=(64K/16K)X(32位/8位)=16(片)
每4片组成16KX32位的存储区,有A13-A0作为片内地址,用A15A14经2:
4译码器
产生片选信号二Ti「二:
,逻辑框图如下所示:
(2)依题意,采用异步刷新方式较合理,可满足CPU在1卩S内至少访问内存一次的要求。
设16KX8位存储芯片的阵列结构为128行X128列,按行刷新,刷新周期T=2ms则异
步
刷新的间隔时间为:
2込七Ms)
128
则两次刷新的最大时间间隔发生的示意图如下
IREFI
1REF1
|KEF
*0-51气气LLu
——+
1气%LL€
0.i
■1J.Jp
Ij.jb*o
A
可见,两次刷新的最大时间间隔为tma.
tmax=15.5-0.5=15(卩S)
对全部存储单元刷新一遍所需时间为tR
tR=0.5X128=64(卩S)
7•某机器中,已知配有一个地址空间为
0000H-3FFFH的ROM区域。
现在再用一个RAM芯片(8KX8)形成40KX16位的RAM区域,起始地址为6000H,假定RAM芯片有一:
■■和Ft'信号控制端。
CPU的地址总线为A15-A0,数据总线为D15-D0,控制信号为R/〒(读/写),儿f(访存),要求:
(1)画出地址译码方案。
(2)将ROM与RAM同CPU连接。
解:
(1)依题意,主存地址空间分布如右图所示,可选用2片27128(16KX8位)的EPROM作为
ROM区;10片的8KX8位RAM片组成40KX16位的RAM区。
27128需14位片内地址,而RAM需13位
片内地址,故可用A15-A13三位高地址经译码产生片选信号,方案如下:
OOOOH
3FFFH
400QH
5FFFH
6000H
FFFFH
16KX1.6位
RON8KX16位
留空
40KXW
MREQ
A]?
A14Ai?
RAK
(2)
OS
8.存储器容量为64M,字长64位,模块数m=8,分别用顺序方式和交叉方式进行组织。
存储周期T=100ns,数据总线宽度为64位,总线周期t=10ns.问顺序存储器和交叉存储器的带宽各是多少?
解:
信息总量:
q=64位X8=512位
顺序存储器和交叉存储器读岀8个字的时间分别是:
12=mT=8X100ns=8X10(s)
11=T+(m-1)=100+7X10=1.7X10(s)
顺序存储器带宽是:
W2=q/t2=512-(8X10)=64X10(位/S)
交叉存储器带宽是:
W=q/t1=512-(1.7X10)=301X10(位/S)
9.CPU执行一段程序时,cache完成存取的次数为2420次,主存完成存取的次数为80
次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。
解:
先求命中率h
h=nc/(nc+nm)=2420-(2420+80)=0.968则平均访问时间为ta
ta=0.968X40+(1-0.968)X240=46.4(ns)r=240-40=6
cache/主存系统的效率为e
e=1/[r+(1—r)X0.968]=86.2%
10.已知Cache存储周期40ns,主存存储周期200ns,Cache/主存系统平均访问时间为50ns,
求Cache的命中率是多少?
解:
Jta=tcXh+trx(1-h)
•••h=(ta-tr)/(tc-t