第一章
1. 模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。数字计算机的主要特点是按位运算,并且不连续地跳动计算。模拟计算机用电压表示数据,采用电压组合和测量值的计算方式,盘上连线的控制方式,而数字计算机用数字0和1表示数据,采用数字计数的计算方式,程序控制的控制方式。数字计算机与模拟计算机相比,精度高,数据存储量大,逻辑判断能力强。
2. 数字计算机可分为专用计算机和通用计算机,是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。
3. 科学计算、自动控制、测量和测试、信息处理、教育和卫生、家用电器、人工智能。
4. 主要设计思想是:存储程序通用电子计算机方案,主要组成部分有:运算器、逻辑控制装置、存储器、输入和输出设备
5. 存储器所有存储单元的总数称为存储器的存储容量。每个存储单元都有编号,称为单元地址。如果某字代表要处理的数据,称为数据字。如果某字为一条指令,称为指令字。
6. 每一个基本操作称为一条指令,而解算某一问题的一串指令序列,称为程序。
7. 取指周期中从内存读出的信息流是指令流,而在执行器周期中从内存读出的信息流是指令流。
8. 半导体存储器称为内存,存储容量更大的磁盘存储器和光盘存储器称为外存,内存和外存共同用来保存二进制数据。运算器和控制器合在一起称为中央处理器,简称CPU,它用来控制计算机及进行算术逻辑运算。适配器是外围设备与主机联系的桥梁,它的作用相当于一个转换器,使主机和外围设备并行协调地工作。
9. 计算机的系统软件包括系统程序和应用程序。系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能用用途;应用程序是用户利用计算机来解决某些问题而编制的程序。
10. 在早期的计算机中,人们是直接用机器语言来编写程序的,这种程序称为手编程序或目的程序;后来,为了编写程序方便和提高使用效率,人们使用汇编语言来编写程序,称为汇编程序;为了进一步实现程序自动化和便于程序交流,使不熟悉具体计算机的人也能很方便地使用计算机,人们又创造了算法语言,用算法语言编写的程序称为源程序,源程序通过编译系统产生编译程序,也可通过解释系统进行解释执行;随着计算机技术的日益发展,人们又创造出操作系统;随着计算机在信息处理、情报检索及各种管理系统中应用的发展,要求大量处理某些数据,建立和检索大量的表格,于是产生了数据库管理系统。
11. 从第一至五级分别为微程序设计级、一般机器级、操作系统级、汇编语言级、高级语言级。采用这种用一系列的级来组成计算机的概念和技术,对了解计算机如何组成提供了一种好的结构和体制。而且用这种分级的观点来设计计算机,对保证产生一个良好的系统结构也是很有帮助的。
12. 因为任何操作可以由软件来实现,也可以由硬件来实现;任何指令的执行可以由硬件完成,也可以由软件来完成。实现这种转化的媒介是软件与硬件的逻辑等价性。
13. ( 略 )
第二章
1.(1)
(2)
(3)-127
-127 = -7F = -1111111
[-127]原 = 11111111
[-127]补 = 10000001
[-127]反 = 10000000
[-127]移 = 00000001
(4)[-1]原 = 1000 0000
[-1]补 = 1000 0000
[-1]反 = 1111 1111
[-1]移 = 0000 0000
(5)-1 = -00000001
[-1]原 = 1000 0001
[-1]补 = 1111 1111
[-1]反 = 1111 1110
[-1]移 = 0111 1111
2.[x]补 = a
0. a
1a
2…a
6
解法一、
(1) 若a
0 = 0, 则x > 0, 也满足x > -0.5
此时a
1→a
6可任意
(2) 若a
0 = 1, 则x <= 0, 要满足x > -0.5, 需a
1 = 1
即a
0 = 1, a
1 = 1, a
2→a
6有一个不为0
解法二、
-0.5 = -0.1(2) = -0.100000 = 1, 100000
(1) 若x >= 0, 则a0 = 0, a
1→a
6任意即可
[x]补 = x = a
0. a
1a
2…a
6
(2) 若x < 0, 则x > -0.5
只需-x < 0.5, -x > 0
[x]补 = -x, [0.5]补 = 01000000
即[-x]补 < 01000000
即a
0a
1 = 11, a
2→a
6不全为0或至少有一个为1(但不是“其余取0”)
3.字长32位浮点数,阶码10位,用移码表示,尾数22位,用补码表示,基为2
Ms
|
Es
|
E
1→E
9
|
M
20
M0
|
(1) 最大的数的二进制表示
E = 111111111
Ms = 0, M = 11…1(全1)
表示为:
11
…1 0
11
…1
10个
21个
即:
(2) 最小的二进制数
E = 111111111
Ms = 1, M = 00…0(全0)(注意:用10….0来表示尾数-1)
表示为:
11
…1 1
00
…0
10个
21个
即:
(3) 规格化范围
正最大
E = 11
…1, M =
11
…1, Ms = 0
10个
21个
即:
正最小
E = 00
…0, M = 1
00
…0, Ms = 0
10个
20个
即:
负最大
E = 00
…0, M = 0
11
…1, Ms = 1
10个
20个
(最接近0的负数)即:
负最小
E = 11
…1, M =
00
…0, Ms =1
10个
21个
即:
规格化所表示的范围用集合表示为:
[
, ] [ , ]
(4) 最接近于0的正规格化数、负规格化数(由上题可得出)
正规格化数
E = 00
…0, M = 1
00
…0, Ms = 0
10个
20个
负规格化数
E = 00
…0, M = 0
11
…1, Ms = 1
10个
20个
4.假设浮点数格式如下:
Ms
|
Es
|
E
1→E
3
|
M
8
M0
|
阶补码:
1 11
尾数补码:
0 1101 1000
机器数:
1110 1101 1000
(2)
阶补码:
1 11
尾数补码:
1 0010 1000
机器数:
1110 0010 1000
5.(1)x = 0.11011, y = 0.00011
0 0 1 1 0 1 1
+ 0 0 0 0 0 1 1
0 0 1 1 1 1 0
|
x+y = 0.11110
无溢出
(2) x = 0.11011, y = -0.10101
[x]补 =
0 0 1 1 0 1 1
[y]补 =
+1 1 0 1 0 1 1
0 0 0 0 1 1 0
|
x+y = 0.00110
无溢出
(3)x = -0.10110
y = -0.00001
[x]补 =
1 1 0 1 0 1 0
[y]补 =
+1 1 1 1 1 1 1
1 1 0 1 0 0 1
|
x+y = -0.10111
无溢出
6.(1)x = 0.11011
y = -0.11111
[x]补 =
0 0. 1 1 0 1 1
[y]补 =
+0 0. 1 1 1 1 1
0 1. 1 1 0 1 0
|
(2)x = 0.10111
y = 0.11011
[x]补 =
0 0. 1 0 1 1 1
[y]补 =
+1 1. 0 0 1 0 1
1 1. 1 1 1 0 0
|
x-y = -0.00100
无溢出
(3)x = 0.11011
y = -0.10011
[x]补 =
0 0. 1 1 0 1 1
[y]补 =
+0 0. 1 0 0 1 1
0 1. 0 1 1 1 0
|
溢出
7.(1)原码阵列
x = 0.11011, y = -0.11111
符号位:
x0⊕y
0 = 0⊕
1 = 1
[x]
原 = 11011, [y]
原 = 11111
1 1 0 1 1
* 1 1 1 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 0 0 0 1 0 1
|
[x*y]
原 = 1, 11 0100 0101
直接补码阵列
[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)
0 (1) (1) (0) (1) (1) 1 1 0 1 1
1, 0
0 1 0 1, 1 1 0 1 1
|
[x*y]补 = 1,00101,11011(直接补码阵列不要求)
带求补器的补码阵列
[x]补 = 0 11011, [y]补 = 1 00001
乘积符号位单独运算0⊕1=1
尾数部分算前求补输出│X│=11011,│y│=
11111
1 1 0 1 1
* 1 1 1 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 0 0 0 1 0 1
|
(2) 原码阵列
x = -0.11111, y = -0.11011
符号位:
x0⊕y
0 = 1⊕
1 = 0
[x]补
= 11111, [y]补 = 11011
1 1 1 1 1
1 1 0 1 1
1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
1 1 0 1 0 0 0 1 0 1
|
[x*y]补
= 0,11010,00101
直接补码阵列
[x]补 = (1)00001, [y]补 = (1)00101
(1) 0 0 0 0 1
(1) 0 0 1 0 1
(1) 0 0 0 0 1
(0) 0 0 0 0 0
(1) 0 0 0 0 1
(0)0 0 0 0 0
(0) 0 0 0 0 0
1 (0) (0) (0) (0) (1)
1
0 0 (1) (1) 0 0 0 1 0 1
0
1 1 0 1 0 0 0 1 0 1
|
[x*y]补 = 0,11010,00101(直接补码阵列不要求)
带求补器的补码阵列
[x]补 = 1 00001, [y]补 = 1 00101
乘积符号位单独运算1⊕1=0
尾数部分算前求补输出│X│=11111,│y│=
11011
1 1 1 1 1
1 1 0 1 1
1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
1 1 0 1 0 0 0 1 0 1
|
8.(1)
符号位 Sf = 0⊕
1 = 1
去掉符号位后:
[y’]补 = 00.11111
[-y’]补
= 11.00001
[x’]补
= 00.11000
0 0 1 1 0 0 0
+[-y’]补
1 1 0 0 0 0 1
1 1 1 1 0 0 1 0
←
1 1 1 0 0 1 0
+[y’]补
0 0 1 1 1 1 1
0 0 1 0 0 0 1 0.1
←
0 1 0 0 0 1 0
|
+[-y’]补
1 1 0 0 0 0 1
0 0 0 0 0 1 1 0.11
←
0 0 0 0 1 1 0
+[-y’]补
1 1 0 0 0 0 1
1 1 0 0 1 1 1
0.110
←
1 0 0 1 1 1 0
+[y’]补
0 0 1 1 1 1 1
1 1 0 1 1 0 1
0.1100
←
1 0 1 1 0 1 0
+[y’]补
0 0 1 1 1 1 1
1 1 1 1 0 0 1
0.11000
|
(2) 符号位 Sf = 1⊕
0 = 1
去掉符号位后:
[y’]补 = 00.11001
[-y’]补
= 11.00111
[x’]补
= 00.01011
0 0 0 1 0 1 1
+[-y’]补
1 1 0 0 1 1 1
1 1 1 0 0 1 0
0
←
1 1 0 0 1 0 0
+[y’]补
0 0 1 1 0 0 1
1 1 1 1 1 0 1
0.0
←
1 1 1 1 0 1 0
+[y’]补
0 0 1 1 0 0 1
0 0 1 0 0 1 1
0.01
←
0 1 0 0 1 1 0
+[-y’]补
1 1 0 0 1 1 1
0 0 0 1 1 0 1 0.011
←
0 0 1 1 0 1 0
+[-y’]补
1 1 0 0 1 1 1
0 0 0 0 0 0 1 0.0111
←
0 0 0 0 0 1 0
+[-y’]补
1 1 0 0 1 1 1
1 1 0 1 0 0 1 0.01110
|
9.(1) x = 2
-011*0.100101, y = 2
-010*(-0.011110)
[x]
浮 = 11101,0.100101
[y]
浮 = 11110,-0.011110
Ex-Ey = 11101+00010=11111
[x]
浮 = 11110,0.010010(1)
x+y
0 0. 0 1 0 0 1 0 (1)
+ 1 1. 1 0 0 0 1 0
1 1. 1 1 0 1 0 0 (1)
|
规格化处理:
1.010010 阶码
11100
x+y= 1.010010*2-4 = 2-4*-0.101110
x-y
0 0. 0 1 0 0 1 0 (1)
+
0 0. 0 1 1 1 1 0
0 0 1 1 0 0 0 0 (1)
|
规格化处理:
0.110000 阶码
11110
x-y=2
-2*0.110001
(2) x = 2
-101*(-0.010110), y = 2
-100*0.010110
[x]
浮= 11011,-0.010110
[y]
浮= 11100,0.010110
Ex-Ey = 11011+00100 = 11111
[x]
浮= 11100,1.110101(0)
x+y
1 1. 1 1 0 1 0 1
+ 0 0. 0 1 0 1 1 0
0 0. 0 0 1 0 1 1
|
规格化处理:
0.101100 阶码
11010
x+y= 0.101100*2-6
x-y
1 1.1 1 0 1 0 1
+ 1 1.1 0 1 0 1 0
1 1.0 1 1 1 1 1
|
规格化处理:
1.011111 阶码
11100
x-y=-0.100001*2-4
10.(1) Ex = 0011, Mx = 0.110100
Ey = 0100, My = 0.100100
Ez = Ex+Ey = 0111
Mx*My
0. 1 1 0 1
*
0.1 0 0 1
0 1 1 0 1
0 0 0 0 0
0 0 0 0 0
0 1 1 0 1
0 0 0 0 0
0 0 1 1
|
规格化:
26*0.111011
(2) Ex = 1110, Mx = 0.011010
Ey = 0011, My = 0.111100
Ez = Ex-Ey = 1110+1101 = 1011
[Mx]补 = 00.011010
[My]补 = 00.111100, [-My]补 = 11.000100
0 0 0 1 1 0 1 0
+[-My]
1 1 0 0 0 1 0 0
1 1 0 1 1 1 1 0
0
1 0 1 1 1 1 0 0
+[My]
0 0 1 1 1 1 0 0
1 1 1 1 1 0 0 0
0.0
1 1 1 1 0 0 0 0
+[My]
0 0 1 1 1 1 0 0
0 0 1 0 1 1 0 0
0.01
0 1 0 1 1 0 0 0
+[-My]
1 1 0 0 0 1 0 0
0 0 0 1 1 1 0 0
0.011
0 0 1 1 1 0 0 0
+[-My]
1 1 0 0 0 1 0 0
1 1 1 1 1 1 0 0
0.0110
1 1 1 1 1 0 0 0
+[My]
0 0 1 1 1 1 0 0
0 0 1 1 0 1 0 0
0.01101
0 1 1 0 1 0 0 0
+[-My]
1 1 0 00 1 0 0
0 0 1 0 1 10 0
0.01101
|
商 = 0.110110*2
-6,
余数=0.101100*2
-6
11.
4位加法器如上图,
(1)串行进位方式
C
1 = G
1+P
1C
0
其中:G
1 = A
1B
1
P1 = A1⊕
B1(A
1+
B1也对)
C
2 = G
2+P
2C
1
G2 = A2B2 P2 = A2⊕
B2
C
3 = G
3+P
3C
2
G3 = A3B3 P3 = A3⊕
B3
C
4 = G
4+P
4C
3
G4 = A4B4 P4 = A4⊕
B4
(2)并行进位方式
C
1 = G
1+P
1C
0
C
2 = G
2+P
2G
1+P
2P
1C
0
C
3 = G
3+P
3G
2+P
3P
2G
1+P
3P
2P
1C
0
C
4 = G
4+P
4G
3+P
4P
3G
2+P
4P
3P
2G
1+P
4P
3P
2P
1C
0
12.(1)组成最低四位的74181进位输出为:
C4 = Cn+4 = G+PCn = G+PC0, C
0为向第0位进位
其中,G = y
3+y
2x
3+y
1x
2x
3+y
0x
1x
2x
3,P = x
0x
1x
2x
3,所以
C5 = y4+x4C4
C6 = y5+x5C5 = y5+x5y4+x5x4C4
(2)设标准门延迟时间为T,“与或非”门延迟时间为1.5T,则进位信号C
0,由最低位传送至C
6需经一个反相器、两级“与或非”门,故产生C
0的最长延迟时间为
T+2*1.5T = 4T
(3)最长求和时间应从施加操作数到ALU算起:第一片74181有3级“与或非”门(产生控制参数x
0, y
0, C
n+4),第二、三片74181共2级反相器和2级“与或非”门(进位链),第四片74181求和逻辑(1级与或非门和1级半加器,设其延迟时间为3T),故总的加法时间为:
t0 = 3*1.5T+2T+2*1.5T+1.5T+3T = 14T
13.串行状态下:
C1 = G1+P1CO
C2 = G2+P2C1
C3 = G3+P3C2
C4 = G4+P4C3
并行状态下:
C1 = G1+P1C0
C2 = G2+P2C1 = G2+P2G1+P2P1C0
C3 = G3+P3C2 = G3+P3G2+P3P2G1+P3P2P1C0
C4 = G4+P4C3 = G4+P4P3C2+P4P3P2C1+P4P3P2P1C0
14.设余三码编码的两个运算数为X
i和Y
i,第一次用二进制加法求和运算的和数为S
i’,进位为C
i+1’,校正后所得的余三码和数为S
i,进位为C
i+1,则有:
Xi = Xi3Xi2Xi1Xi0
Yi = Yi3Yi2Yi1Yi0
Si’ = Si3’Si2’Si1’Si0’
当C
i+1’ = 1时,S
i = S
i’+0011
并产生C
i+1
当C
i+1’ = 0时,S
i = S
i’+1101
|
根据以上分析,可画出余三码编码的十进制加法器单元电路如图所示。
15.
第三章
1. (1)
(2)
(3)1位地址作芯片选择
2. (1)
(2)
每个模块要16个DRAM芯片
(3)64*16 = 1024块
由高位地址选模块
3. (1)根据题意,存储总容量为64KB,故地址总线需16位。现使用16K*8位DRAM芯片,共需16片。芯片本身地址线占14位,所以采用位并联与地址串联相结合的方法来组成整个存储器,其组成逻辑图如图所示,其中使用一片2:4译码器。
(2)根据已知条件,CPU在1us内至少访存一次,而整个存储器的平均读/写周期为0.5us,如果采用集中刷新,有64us的死时间,肯定不行
如果采用分散刷新,则每1us只能访存一次,也不行
所以采用异步式刷新方式。
假定16K*1位的DRAM芯片用128*128矩阵存储元构成,刷新时只对128行进行异步方式刷新,则刷新间隔为2ms/128 = 15.6us,可取刷新信号周期15us。
刷新一遍所用时间=15us×128=1.92ms
2:4译码器
|
A
14
|
A
15
|
CS
3
|
CS
2
|
CS
0
|
CS
1
|
D
0~D
7
|
A
13~A
0
|
(2)
(3)如果选择一个行地址进行刷新,刷新地址为A
0-A
8,因此这一行上的2048个存储元同时进行刷新,即在8ms内进行512个周期。刷新方式可采用:在8ms中进行512次刷新操作的集中刷新方式,或按8ms/512 = 15.5us刷新一次的异步刷新方式。
5. 所设计的存储器单元数为1M,字长为32,故地址长度为20位(A19~A0),所用芯片存储单元数为256K,字长为16位,故占用的地址长度为18位(A17~A0)。由此可用位并联方式与地址串联方式相结合的方法组成组成整个存储器,共8片RAM芯片,并使用一片2:4译码器。其存储器结构如图所示。
6.(1)系统16位数据,所以数据寄存器16位
(2)系统地址128K=2
17,所以地址寄存器17位
(3) 共需要8片
(4) 组成框图如下
CPU
|
地址
寄存器
|
数据
寄存器
|
32K
*8
|
32K
*8
|
32K
*8
|
32K
*8
|
32K
*8
|
32K
*8
|
32K
*8
|
32K
*8
|
CS
3
|
CS
2
|
CS
1
|
CS
0
|
2:4
译码器
|
CS
0
~
CS
3
|
A
16
|
A
15
|
7.(1)组内地址用A
(2)小组译码器使用3:8译码器
(3)RAM
1~RAM
5各用两片8K*8的芯片位并联连接
|
ROM
|
0000H
|
RAM
1
|
RAM
2
|
RAM
3
|
RAM
4
|
RAM
5
|
6000H
|
8000H
|
A000H
|
C000H
|
E000H
|
4000H
|
8.顺序存储器和交叉存储器连续读出m = 8个字的信息总量都是:
q = 64位*8 = 512位
顺序存储器和交叉存储器连续读出8个字所需的时间分别是:
t
1 = mT = 8*100ns = 8*10
-7s
顺序存储器和交叉存储器的带宽分别是:
9.cache的命中率
cache/主存系统效率e为
平均访问时间T
a为
10. h*t
c+(1-h)*t
m = t
a
11.虚拟地址为30位,物理地址为22位。
页表长度:
12.虚拟存储器借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。在此例中,若用户不具有虚存,则无法正常运行程序,而具有了虚存,则很好地解决了这个问题。
13.设取指周期为T,总线传送周期为τ,指令执行时间为t
0
(1)t = (T+5τ
+6t
0)*80 = 80T+400τ
+480 t
0
(2) t = (T+7τ
+8t
0)*60 = 60T+420τ
+480 t
0
故不相等。
14.
页面访问序列
|
0
|
1
|
2
|
4
|
2
|
3
|
0
|
2
|
1
|
3
|
2
|
命中率
|
a
|
0
|
1
|
2
|
4
|
2
|
3
|
0
|
2
|
1
|
3
|
2
|
3/11
=
27.3%
|
b
|
|
0
|
1
|
2
|
4
|
2
|
3
|
0
|
2
|
1
|
3
| |
c
|
|
|
0
|
1
|
1
|
4
|
2
|
3
|
0
|
2
|
1
| |
|
|
|
|
|
命中
|
|
|
命中
|
|
|
命中
|
15.D
16.C
第四章
1.不合理。指令最好半字长或单字长,设16位比较合适。
8
|
6
|
6
|
单操作数指令为:2
8-m-n条
3.(1)RR型指令
(2)寄存器寻址
(3)单字长二地址指令
(4)操作码字段OP可以指定2
6=64种操作
4.(1)双字长二地址指令,用于访问存储器。操作码字段可指定64种操作。
(2)RS型指令,一个操作数在通用寄存器(共16个),另一个操作数在主存中。
(3)有效地址可通过变址寻址求得,即有效地址等于变址寄存器(共16个)内容加上位移量。
5.(1)双操作数指令
(2)2
3=8种寻址方式
(3)2
4=16种操作
6.(1)直接寻址方式
(2)相对寻址方式
(3)变址寻址方式
(4)基址寻址方式
(5)间接寻址方式
(6)变址间接寻址方式
7.40条指令需占6位,2
6=64,剩余24条可作为扩充
4种寻址方式需占2位
剩余8位作为地址
OP(6)
|
X(2)
|
D(8)
|
X = 00
直接寻址方式
E = D
X = 01
立即寻址方式
X = 10
变址寻址方式
E = (R)+D
X = 11
相对寻址方式
E = (PC)+D
8.(1)50种操作码占6位,3种寻址方式占2位
OP(6)
|
X(2)
|
D(24)
|
X = 00
页面寻址方式
E = PCH-D
X = 01
立即寻址方式
X = 10
直接寻址方式
E = D
(2)PC高8位形成主存256个页面,每页个单元
(3)寻址模式X = 11尚未使用,故可增加一种寻址方式。由于CPU中给定的寄存器中尚可使用PC,故可增加相对寻址方式,其有效地址E = PC+D,如不用相对寻址,还可使用间接寻址,此时有效地址E = (D)。当位移量变成23位时,寻址模式变成3位,可有更多的寻址方式。
9. 16个通用寄存器占4位,64种操作占6位,剩下22位用于存储器地址,
OP(6)
|
R(4)
|
D(22)
|
采用R为基址寄存器寻址,地址=(R)+D
当基址最大,D也是最大的时候,寻址能力最大
而寄存器是32位的,
故最大存储空间是2
32+2
22 = 4GB+4MB。
10、11、12、13、
14.C
15.(1)寄存器
(2)寄存器间接
(3)立即
(4)直接
(5)相对、基值、变址
转载于:https://blog.51cto.com/sushan/711843