计算机组成原理第四版课后习题答案完整版Word格式文档下载.docx
《计算机组成原理第四版课后习题答案完整版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理第四版课后习题答案完整版Word格式文档下载.docx(36页珍藏版)》请在冰豆网上搜索。
数据字:
若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。
指令字:
若某计算机字代表一条指令或指令的一部分,则称指令字。
6.什么是指令?
什么是程序?
指令:
计算机所执行的每一个基本的操作。
程序:
解算某一问题的一串指令序列称为该问题的计算程序,简称程序。
7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?
一般来讲,在取指周期中从存储器读出的信息即指令信息;
而在执行周期中从存储器中读出的
信息即为数据信息。
8.什么是内存?
什么是外存?
什么是CPU?
什么是适配器?
简述其功能。
内存:
一般由半导体存储器构成,装在底版上,可直接和CPU交换信息的存储器称为内存储
器,简称内存。
用来存放经常使用的程序和数据。
外存:
为了扩大存储容量,又不使成本有很大的提高,在计算机中还配备了存储容量更大的
磁盘存储器和光盘存储器,称为外存储器,简称外存。
外存可存储大量的信息,计算
机需要使用时,再调入内存。
CPU:
包括运算器和控制器。
基本功能为:
指令控制、操作控制、时间控制、数据加工。
适配器:
连接主机和外设的部件,起一个转换器的作用,以使主机和外设协调工作。
9.计算机的系统软件包括哪几类?
说明它们的用途。
系统软件包括:
(1)服务程序:
诊断、排错等
(2)语言程序:
汇编、编译、解释等
(3)操作系统
(4)数据库管理系统
用途:
用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能
及用途。
10.说明软件发展的演变过程。
11.现代计算机系统如何进行多级划分?
这种分级观点对计算机设计会产生什么影响?
多级划分图见P16图1.6。
可分为:
微程序设计级、一般机器级、操作系统级、汇编语言级和
高级语言级。
用这种分级的观点来设计计算机,对保证产生一个良好的系统结构是有很大帮助的。
12.为什么软件能够转化为硬件?
硬件能够转化为软件?
实现这种转化的媒介是什么?
13."
计算机应用"
与"
应用计算机"
在概念上等价吗?
用学科角度和计算机系统的层次结构来寿命你的观点。
第二章
1.写出下列各数的原码、反码、补码、移码表示(用8位二进制数)。
其中MSB是最高位(又是符号位)LSB是最低位。
如果是小数,小数点在MSB之后;
如果是整数,小数点在LSB之后。
(1)-35/64
(2)23/128(3)-127(4)用小数表示-1(5)用整数表示-1
(1)先把十进制数-35/64写成二进制小数:
(-35/64)10=(-100011/1000000)2=(-100011×
2-110)2=(-0.100011)2
令x=-0.100011B
∴[x]原=1.1000110(注意位数为8位)[x]反=1.0111001
[x]补=1.0111010 [x]移=0.0111010
(2)先把十进制数23/128写成二进制小数:
(23/128)10=(10111/10000000)2=(10111×
2-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
2.设[X]补=a0,a1,a2…a6,其中ai取0或1,若要x>-0.5,求a0,a1,a2,…,a6的取值。
a0=1,a1=0,a2,…,a6=1…1。
3.有一个字长为32位的浮点数,阶码10位(包括1位阶符),用移码表示;
尾数22位(包括1位尾符)用补码表示,基数R=2。
请写出:
(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=11011B×
=0.011011B=0.11011B×
浮点规格化数:
11110110110000
(2)-27/64=-11011B×
=-0.011011B=-0.11011B×
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.用原码阵列乘法器、补码阵列乘法器分别计算X×
Y。
(1)X=0.11011Y=-0.11111
(2)X=-0.11111Y=-0.11011
(1)用原码阵列乘法器计算:
[x]补=0.11011[y]补=1.00001
(0) 1 1 0 1 1
×
)
(1) 0 0 0 0 1
----------------------------------
(0) 1 1 0 1 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) 0 0 1 0 1 1 1 0 1 1
[x×
y]补=1.0010111011
∴x×
y=-0.1101000101
8.用原码阵列除法器计算X÷
(1)X=0.11000Y=-0.11111
(2)X=-0.01011Y=0.11001
(1)[x]原=[x]补=0.11000 [-∣y∣]补=1.00001
被除数X 0.11000
+[-∣y∣]补1.00001
----------------------
余数为负1.11001→q0=0
左移1.10010
+[|y|]补 0.11111
余数为正0.10001→q1=1
左移1.00010
+[-|y|]补1.00001
余数为正0.00011→q2=1
左移0.00110
余数为负1.00111→q3=0
左移0.01110
余数为负1.01101→q4=0
左移0.11010
余数为负1.11001→q5=0
余数0.11000
故[x÷
y]原=1.11000即x÷
y=-0.11000B
余数为0.11000B×
9.设阶为5位(包括2位阶符),尾数为8位(包括2位数符),阶码、尾数均用补码表示,完成下列取值的[X+Y],[X-Y]运算:
(1)X=
×
0.100101Y=
(-0.011110)
(2)X=
(-0.010110)Y=
(0.010110)
(1)将y规格化得:
y=
(-0.111100)
[x]浮=1101,00.100101[y]浮=1101,11.000100[-y]浮=1101,00.111100
①对阶
[ΔE]补=[Ex]补+[-Ey]补=1101+0011=0000
∴Ex=Ey
②尾数相加
相加 相减
00.100101 00.100101
+11.000100 +00.111100
------------ --------------
11.101001 01.100001
[x+y]浮=1101,11.101001 左规[x+y]浮=1100,11.010010
∴x+y=
(-0.101110)
[x-y]浮=1101,01.100001 右规[x-y]浮=1110,00.1100001
舍入处理得[x-y]浮=1110,00.110001
∴x-y=
0.110001
(2)[x]浮=1011,11.101010[y]浮=1100,00.010110[-y]浮=1100,11.101010
[ΔE]补=[Ex]补+[-Ey]补=1011+0100=1111
∴△E=-1[x]浮=1100,11.110101(0)
②尾数相加
11.110101(0) 11.110101(0)
+00.010110 +11.101010
-------------- ------------------
00.001011(0) 11.011111(0)
[x+y]浮=1100,00.001011(0)左规[x+y]浮=1010,00.1011000
∴x+y=
0.1011B
[x-y]浮=1100,11.011111(0)
∴x-y=
(-0.100001B)
13.某加法器进位链小组信号为C4C3C2C1,低位来的信号为C0,请分别按下述两种方式写出C4C3C2C1的逻辑表达式。
(1)串行进位方式
(2)并行进位方式
解:
(1)串行进位方式:
C1=G1+P1C0其中:
G1=A1B1,P1=A1⊕B1
C2=G2+P2C1 G2=A2B2,P2=A2⊕B2
C3=G3+P3C2 G3=A3B3,P3=A3⊕B3
C4=G4+P4C3 G4=A4B4,P4=A4⊕B4
(2)并行进位方式:
C1=G1+P1C0
C2=G2+P2G1+P2P1C0
C3=G3+P3G2+P3P2G1+P3P2P1C0
C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
其中G1-G4,P1-P4表达式与串行进位方式相同。
14.某机字长16位,使用四片74181组成ALU,设最低位序标注为0位,要求:
(1)写出第5位的进位信号C6的逻辑表达式;
(2)估算产生C6所需的最长时间;
(3)估算最长的求和时间。
(1)组成最低四位的74181进位输出为:
C4=G+PC0,C0为向第0位的进位
其中:
G=y3+x3y2+x2x3y1+x1x2x3y0,P=x0x1x2x3
所以:
C5=y4+x4C4
C6=y5+x5C5=y5+x5y4+x5x4C4
(2)设标准门延迟时间为T,"
与或非"
门延迟时间为1.5T,则进位信号C0由最低位传送至C6需经一个反相器,两级"
门,故产生C6的最长延迟时间为:
T+2×
1.5T=4T
(3)最长求和时间应从施加操作数到ALU算起:
第一片74181有3级"
门(产生控制参数x0,y0Cn+4),第二、第三片74181共2级反相器和2级"
门(进位链),第四片74181求和逻辑(1级"
门和1级半加器,其延迟时间为3T),故总的加法时间为:
T=3×
1.5T+2T+2×
1.5T+1.5T+1.5T+3T=14T
17.设A,B,C是三个16位的通用寄存器,请设计一个16位定点补码运算器,能实现下述功能:
(1)A±
B→A
(2)B×
C→A,C(高位积在寄存器A中)
(3)A÷
B→C(商在寄存器C中)
设计能完成加、减、乘、除运算的16位定点补码运算器框图。
分析各寄存器作用:
加 减 乘 除
A 被加数→和 同左 初始为0 被除数→余数
部分积→乘积(H) 除数
B 加数 同左 被乘数
C -- -- 乘数→乘积(L) 商
∴A:
累加器(16位),具有输入、输出、累加功能及双向移位功能;
B:
数据寄存器(16位),具有输入、输出功能;
C:
乘商寄存器(16位),具有输入、输出功能及双向移位功能。
画出框图:
第三章
1.有一个具有20位地址和32位字长的存储器,问:
(1)该存储器能存储多少个字节的信息?
(2)如果存储器由512K×
8位SRAM芯片组成,需要多少芯片?
(3)需要多少位地址作芯片选择?
(1)∵220=1M,∴该存储器能存储的信息为:
1M×
32/8=4MB
(2)(1000/512)×
(32/8)=8(片)
(3)需要1位地址作为芯片选择。
2.已知某64位机主存采用半导体存储器,其地址码为26位,若使用256K×
16位的DRAM芯片组成该机所允许的最大主存空间,并选用模块板结构形式,问:
(1)每个模块板为1024K×
64位,共需几个模块板?
(2)个模块板内共有多少DRAM芯片?
(3)主存共需多少DRAM芯片?
CPU如何选择各模块板?
(1). 共需模块板数为m:
m=
÷
=64(块)
(2).每个模块板内有DRAM芯片数为n:
n=(
/
)×
(64/16)=16(片)
(3)主存共需DRAM芯片为:
16×
64=1024(片)
每个模块板有16片DRAM芯片,容量为1024K×
64位,需20根地址线(A19~A0)完成模块
板内存储单元寻址。
一共有64块模块板,采用6根高位地址线(A25~A20),通过
6:
64译码器译码产生片选信号对各模块板进行选择。
3.用16K×
8位的DRAM芯片组成64K×
32位存储器,要求:
(1)画出该存储器的组成逻辑框图。
(2)设存储器读/写周期为0.5μS,CPU在1μS内至少要访问一次。
试问采用哪种刷新方式比较合理?
两次刷新的最大时间间隔是多少?
对全部存储单元刷新一遍所需的实际刷新时间是多少?
(1)组成64K×
32位存储器需存储芯片数为
N=(64K/16K)×
(32位/8位)=16(片)
每4片组成16K×
32位的存储区,有A13-A0作为片内地址,用A15A14经2:
4译码器产生片选信号
,逻辑框图如下所示:
(2)依题意,采用异步刷新方式较合理,可满足CPU在1μS内至少访问内存一次的要求。
设16K×
8位存储芯片的阵列结构为128行×
128列,按行刷新,刷新周期T=2ms,则异步
刷新的间隔时间为:
则两次刷新的最大时间间隔发生的示意图如下
可见,两次刷新的最大时间间隔为tmax
tmax=15.5-0.5=15(μS)
对全部存储单元刷新一遍所需时间为tR
tR=0.5×
128=64 (μS)
7.某机器中,已知配有一个地址空间为0000H-3FFFH的ROM区域。
现在再用一个RAM芯片(8K×
8)形成40K×
16位的RAM区域,起始地址为6000H,假定RAM芯片有
和
信号控制端。
CPU的地址总线为A15-A0,数据总线为D15-D0,控制信号为R/
(读/写),
(访存),要求:
(1)画出地址译码方案。
(2)将ROM与RAM同CPU连接。
(1)依题意,主存地址空间分布如右图所示,可选用2片27128(16K×
8位)的EPROM作为
ROM区;
10片的8K×
8位RAM片组成40K×
16位的