第一章 复习要点
1、什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?
答案:
计算机系统:由计算机硬件系统和软件系统组成的综合体。
计算机硬件:指计算机中的电子线路和物理装置。
计算机软件:计算机运行所需的程序及相关资料硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。
2、解释下列概念:主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长
答案
主机:是计算机硬件的主体部分,由CPUMM(主存或内存)组成;
CPU:中央处理器(机),是计算机硬件的核心部件,由运算器控制器组成;(早期的运、控不在同一芯片上)
主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。
存储单元:可存放一个机器字并具有特定存储地址的存储单位;
存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取;
存储字:一个存储单元所存二进制代码的逻辑单位;
存储字长:一个存储单元所存二进制代码的位数;
存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)
机器字长:CPU能同时处理的数据位数;
指令字长:一条指令的二进制代码位数;注意:一种不确切的答法:
CPU与MM合称主机;
运算器与控制器合称CPU。
- 指令和数据都存于存储器中,计算机如何区分他们?
答案
计算机在工作时,一条指令的执行往往可以分为取指周期和取数周期,不同周期中总线上的数据就代表了取出来的是指令或者数据。
- 什么是指令?什么是程序?
答案
每一个基本操作称为一条指令,而解算某一问题的一串指令序列,称为程序。
第六章 复习要点
- 最少用几位二进制数即可表示任一五位长的十进制正整数?
答案
五位长的十进制正整数中,最大的数99999满足条件:216(=65536)<99999<217(=131072),故最少用17位二进制数即可表示任一五位长的十进制正整数。
二进制的进位规则是逢二进一,七位数的二进制数可以表示为2的7次方个字符
2、已知X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时ai各取何值.
解:
- 若要X > 1/2,只要a1=1,a2~a6不全为0即可(a2 or a3 or a4 1/8,只要a1~a3不全为0即可(a1 or a2 or a3 =1),³or a5 or a6 = 1);
- 若要X a4~a6可任取0或1; X
- 若要1/4 > 1/16,只要a1=0,a2可任取0或1; 当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0(a5 or a6=1;若a3=1,则a4~a6可任取0或1; 当a2=1时, a3~a6可任取0或1。
- 设x为整数,[x]补=1,x1x2x3x4x5,若要求x<-16,试问x1~x5应取何值?
答案
x1=0,其它位任意取值
- 设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。 -13/64,29/128,100,-87
先转换为二进制码,再转原码、补码、反码
负分数的二进制转原码:
分数先转换为小数,再采用乘2法,取高位到低位,机器数为8位,则符号位为正负即1或0;其他位不够的在后面补0
原码转补码:(适用于小数和整数)
负数的补码有两种方式:符号位不变,其余取反加1 符号位不变,从低位起,遇0和第一个1时不变,第一个1后都变
正数的补码即原码
补码或者原码----->反码:
正数的原码=正数的补码=正数的反码
负分数的原码简便算法:
(可以变为2的倍数)
(8的二进制(从低位到高位)1000和1/8的二进制(从高位到低位)0001在转换的过程是反着来的)
5、已知[x]补,求[x]原和x。
[x1]补=1.1100; [x2]补=1.1001; [x3]补=0.1110; [x4]补=1.0000;
[x5]补=1,0101; [x6]补=1,1100; [x7]补=0,0111; [x8]补=1,0000;
答案
-1和-16的补码没有原码值
- 设x为真值,x * 为绝对值,[-x * ] 补 =[-x] 补 是否成立,为什么?(正数和0的补码等于其原码值)
答案
当x为0或为正数时,满足[-x*]补=[-x]补,B为充分条件,而x为负数时,-x为正数,而-x*为负数,补码的表示是唯一的, 显然二者不等,
6、9BH和FFH对应表示为原码、补码、反码、移码和无符号数时的十进制数分别为:(机器数采用一位符号位)-----------------(原码)先十六进制转二进制,使最高位变成符号位后进行十进制的转换
答案
原码 补码 反码 移码 无符号数
9BH -27 -101 -100 101 155
FFH -127 -1 -0 1 255
答案解析:
十六进制转十进制的方法:2AF5转十进制(其十六进制后面的字母为H)
“取一变四”法
常见的十六进制与二进制的对应;3------0011 5------0101 7-------0111 9--------1001 15-----1111
常见二进制的次方:2^5----------32 2^6---------64 2^7------128 2^8-------256 2^9-----512
十六进制中:
十进制转二进制:辗转相除法
移码的计算方法:
原码、反码的0有两个,补码的0只有一个
无符号数的定义:无符号数(Unsigned number)是相对于有符号数而言的,指的是整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。无符号数是针对二进制来讲的,无符号数的表数范围是非负数。全部二进制均代表数值,没有符号位。即第一个"0"或"1"来表示正负。无符号数与有符号数相对 (简而言之就是机器数的符号位转换1,111------1111)
8、在整数定点机中,设机器数采用1位符号位,写出±0的原码、补码、反码和移码,得出什么结论?
答案
0的机器数形式如下:(假定机器数共8位,含1位符号位在内)
结论:0的原码和反码分别有0和-0两种形式,补码和移码只有一种形式,且补码和移码数值位相同,符号位相反。
9、
、(此处十转二位数等于其转换的位数)
答案:(B是二进制的代表,H是十六进制的代表 )
(阶码的规格化:此处的阶码,为前面0的个数,题目中说到,阶码为5位,含1位阶符(-1,-5))
(尾数的规格化:必须小数点后的第一位为1,其余不够的补0)
(阶码为负,所以取反加1.尾数为正,则为其原码)
(移码不管是正数、负数。都对补码的符号位取反 )
- (结论:移位运算结论
- 正数的原反补:左移右移,空位都补0
解:算术左移一位:[x1]原=0.011 0100;正确 [x2]原=1.101 0000;溢出(丢1)出错 [x3]原=1.011 0010;正确 [y1]补=0.010 1000;溢出(丢1)出错 [y2]补=1.101 0000;正确 [y3]补=1.011 0010;溢出(丢0)出错 [z1]反=1.101 1111;溢出(丢0)出错 [z2]反=1.101 0001;正确 [z3]反=1.011 0011;溢出(丢0)出错
算术左移两位:[x1]原=0.110 1000;正确 [x2]原=1.010 0000;溢出(丢11)出错 [x3]原=1.110 0100;正确 [y1]补=0.101 0000;溢出(丢10)出错 [y2]补=1.010 0000;正确 [y3]补=1.110 0100;溢出(丢00)出错 [z1]反=1.011 1111;溢出(丢01)出错 [z2]反=1.010 0011;正确 [z3]反=1.110 0111;溢出(丢00)出错
算术右移一位:[x1]原=0.000 1101;正确 [x2]原=1.011 0100;正确 [x3]原=1.000 1100(1);丢1.产生误差[y1]补=0.010 1010;正确 [y2]补=1.111 0100;正确 [y3]补=1.100 1100(1);丢1.产生误差[z1]反=1.101 0111;正确 [z2]反=1.111 0100(0);丢0.产生误差[z3]反=1.100 1100;正确
算术右移两位:[x1]原=0.000 0110(10);产生误差 [x2]原=1.001 1010;正确[x3]原=1.000 0110(01);产生误差 [y1]补=0.001 0101;正确[y2]补=1.111 1010;正确 [y3]补=1.110 0110(01);产生误差[z1]反=1.110 1011;正确 [z2]反=1.111 1010(00);产生误差[z3]反=1.110 0110(01);产生误差
- 设机器数字长为8位(含一位符号位),用补码运算规则计算下列各题
- 补 [-B]补=B连同符号位进行取反,再加1
再掌握-------溢出的判断
13、
(此处只涉及-----原码一位乘,运算规则:乘积的符号位=两数的符号相异或;乘积=两数的绝对值相乘)
解:先将数据转换成所需的机器数,然后计算,最后结果转换成真值。
- [x]原=0.110111,[y]原=1.101110,x*=0.110111,y*=0.101110
原码一位乘:
x*×y*=0.100111100010,z0=x0y0=01=1,[x×y]原=1.100111100010,x·y=-0.100111100010原码两位乘
:[-x*]补=1.001001,2x*=1.101110即x*×y*=0.100111100010,z0=x0y0=01=1,[x×y]原=1.100111100010,x·y=-0.100111100010
补码一位乘:
[x]补=0.110111,[-x]补=1.001001,[y]补=1.010010即[x×y]补=1.011000011110,x·y=-0.100111100010补码两位乘:
- 存储器复习要点
答:
主存:主存储器,用于存放正在执行的程序和数据。CPU可以直接进行随机读写,访问速度较高。
辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。Cache:高速缓冲存储器,介于 CPU 和主存之间,用于解决CPU 和主存之间速度不匹配问题。
RAM:半导体随机存取存储器,主要用作计算机中的主存。SRAM:静态半导体随机存取存储器。
DRAM:动态半导体随机存取存储器。
ROM:掩膜式半导体只读存储器。由芯片制造商在制造时写入内容,以后只能读出而不能写入。
PROM:可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。
EPROM:紫外线擦写可编程只读存储器。需要修改内容时,现将其全部内容擦除,然后再编程。擦除依靠紫外线使浮动栅极上的电荷泄露而实现。
EEPROM:电擦写可编程只读存储器。
CDROM:只读型光盘。
Flash Memory:闪速存储器。或称快擦型存储器。
答:存储器的层次结构主要体现在 Cache-主存和主存-辅存这两个存储层次上.
Cache-主存层次在存储系统中主要对 CPU 访存起加速作用,即从整体运行的效果分析, CPU访存速度加快,接近于 Cache 的速度,而寻址空间和位价却接近于主存。主存—辅存层次在存储系统中主要起扩容作用, 即从程序员的角度看, 他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、 容量大、位价低的优化效果。
主存与 CACHE 之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现, 即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器, 程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间 )编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换 .因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。
答:计算机中寄存器、Cache、主存、硬盘可以用于存储信息。
一般来说,速度越高,价格就越高;容量越大,价格就越高,而且容量越大,速度必越低。人们追求大容量、高速度、低价位的存储器,可惜这是很难达到的。寄存器通常都制作在 CPU 芯片内,寄存器中的数直接在 CPU 内部参与运算,CPU 内可以有十几个、几十个寄存器,它们的速度最快,价位最高,容量最小。主存用来存放将要参与运行的程序和数据,其速度与 CPU 速度差距较大,为了使它们之间速度更好地匹配,在主存与 CPU 之间插入了一种比主存速度更快、容量更小的高速缓冲存储器 Cache,显然其价位要高于主存。
所以,按其速度、容量和价格/位排序如下:按速度由高至低排序为:寄存器、Cache、主存、硬盘:按容量由小至大排序为:寄存器、Cache、主存、硬盘;按价格/位由高至低排序为:寄存器、Cache、主存、硬盘。
解:存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。即:存取周期= 存取时间 + 恢复时间
解:
存储器的带宽:指单位时间内从存储器进出信息的最大数量。
存储器带宽 = 1/200ns ×32 位 = 160M 位/秒 = 20MB/秒 = 5M 字/秒注意:字长 32 位,不是 16 位。(注:1ns=10^-9s,1M=10^6 )
(单位转换---->/8-----./4)
存储器带宽=1/存取周期*数据总线的宽度=存储主频
32/8=4 每个周期可以访问4个字节
分析:存储容量=存储单元长度*个数
寻址范围=存储容量/(字长/8)=16K
答:其地址总线一共有14 根,数据总线一共有32 根,总和为46 根。
当使用下列不同规格的存储芯片时,1K×4 位需要 128 个; 2K×8 位需要 32 个;4K× 4 位需要 32 个; 16K×1 位需要 32 个; 4K×8 位需要 16 个; 8K×8 位需要 8 个。
分析:1K=2^10--------2K=2^11
地址总线的个数=2次方的幂
数据总线宽度=寄存器位数
1K*4------->16K*32 的转换
存储基元总数= 64K×32 位
10、
解:存储基元总数= 64K×8 位 = 512K 位 = 2^19位;思路:如要满足地址线和数据线总和最小,应尽量把存储元安排在字向, 因为地址位数和字数成 2 的幂的关系,可较好地压缩线数。设地址线根数为a,数据线根数为 b,则片容量为: 2^a×b = 2^19;b = 2^19/2^a;若 a = 19 ,b = 1 ,总和 = 19+1 = 20;a = 18 ,b = 2 ,总和 = 18+2 = 20;a = 17 ,b = 4 ,总和 = 17+4 = 21;a = 16 ,b = 8 ,总和 = 16+8 = 24;⋯⋯⋯⋯
由上可看出:芯片字数越少,芯片字长越长,引脚数越多。芯片字数减1、芯片位数均按 2 的幂变化。结论:如果满足地址线和数据线的总和为最小,这种芯片的引脚分配方案有两种:地址线 = 19 根,数据线 = 1 根;或地址线 = 18 根,数据线 = 2 根。
13. 设有一个64K×8位的RAM芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。
解:存储基元总数 = 64K×8位 = 512K位 = 219位;
思路:如要满足地址线和数据线总和最小,应尽量把存储元安排在字向,因为地址位数和字数成2的幂的关系,可较好地压缩线数。(b必须是2的倍数)
解:设地址线根数为a,数据线根数为b,则片容量为:2a×b = 219;b = 219-a;
若a = 19,b = 1,总和 = 19+1 = 20;
a = 18,b = 2,总和 = 18+2 = 20;
a = 17,b = 4,总和 = 17+4 = 21;
a = 16,b = 8,总和 = 16+8 = 24;
…… ……
由上可看出:片字数越少,片字长越长,引脚数越多。片字数减1、片位数均按2的幂变化。
结论:如果满足地址线和数据线的总和为最小,这种芯片的引脚分配方案有两种:地址线 = 19根,数据线 = 1根;或地址线 = 18根,数据线 = 2根
15. 设CPU共有16根地址线,8根数据线,并用
(低电平有效)作访存控制信号,
作读写命令信号(高电平为读,低电平为写)。现有下列存储芯片:ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位),及74138译码器和其他门电路(门电路自定)。试从上述规格中选用合适芯片,画出CPU和存储芯片的连接图。要求:
(1)最小4K地址为系统程序区,4096~16383地址范围为用户程序区;
(2)指出选用的存储芯片类型及数量;
(3)详细画出片选逻辑。
解:(1)地址空间分配图:
系统程序区(ROM共4KB):0000H-0FFFH
用户程序区(RAM共12KB):1000H-FFFFH
(2)选片:ROM:选择4K×4位芯片2片,位并联
RAM:选择4K×8位芯片3片,字串联(RAM1地址范围为:1000H-1FFFH,RAM2地址范
(3)各芯片二进制地址分配如下:围为2000H-2FFFH, RAM3地址范围为:3000H-3FFFH)
16. CPU假设同上题,现有8片8K×8位的RAM芯片与CPU相连,试回答:
(1)用74138译码器画出CPU与存储芯片的连接图;
(2)写出每片RAM的地址范围;
(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。
(4)根据(1)的连接图,若出现地址线A13与CPU断线,并搭接到高电平上,将出现什么后果?
解:(1)CPU与存储器芯片连接逻辑图:
(2)地址空间分配图:
RAM0:0000H-1FFFH
RAM1:2000H-3FFFH
RAM2:4000H-5FFFH
RAM3:6000H-7FFFH
RAM4:8000H-9FFFH
RAM5:A000H-BFFFH
RAM6:C000H-DFFFH
RAM7:E000H-FFFFH
(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片(RAM5)都有与其相同的数据,则根本的故障原因为:该存储芯片的片选输入端很可能总是处于低电平。假设芯片与译码器本身都是好的,可能的情况有:
1)该片的-CS端与-WE端错连或短路;
2)该片的-CS端与CPU的-MREQ端错连或短路;
3)该片的-CS端与地线错连或短路。
(4)如果地址线A13与CPU断线,并搭接到高电平上,将会出现A13恒为“1”的情况。此时存储器只能寻址A13=1的地址空间(奇数片),A13=0的另一半地址空间(偶数片)将永远访问不到。若对A13=0的地址空间(偶数片)进行访问,只能错误地访问到A13=1的对应空间(奇数片)中去。
25. Cache做在CPU芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处?
答:Cache做在CPU芯片内主要有下面几个好处:
1)可提高外部总线的利用率。因为Cache在CPU芯片内,CPU访问Cache时不必占用外部总线。
2)Cache不占用外部总线就意味着外部总线可更多地支持I/O设备与主存的信息传输,增强了系统的整体效率。
3)可提高存取速度。因为Cache与CPU之间的数据通路大大缩短,故存取速度得以提高。
将指令Cache和数据Cache分开有如下好处:
1)可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成。
2)指令Cache可用ROM实现,以提高指令存取的可靠性。
3)数据Cache对不同数据类型的支持更为灵活,既可支持整数(例32位),也可支持浮点数据(如64位)。
补充:
Cache结构改进的第三个措施是分级实现,如二级缓存结构,即在片内Cache(L1)和主存之间再设一个片外Cache(L2),片外缓存既可以弥补片内缓存容量不够大的缺点,又可在主存与片内缓存间起到平滑速度差的作用,加速片内缓存的调入调出速度。
18. 什么是“程序访问的局部性”?存储系统中哪一级采用了程序访问的局部性原理?
解:程序运行的局部性原理指:在一小段时间内,最近被访问过的程序和数据很可能再次被访问;在空间上,这些被访问的程序和数据往往集中在一小片存储区;在访问顺序上,指令顺序执行比转移执行的可能性大 (大约 5:1 )。存储系统中Cache—主存层次采用了程序访问的局部性原理
28、设主存容量为256K字,Cache容量为2K字,块长为4.
(1)设计Cache地址格式,Cache中可装入多少块数据?
(2)在直接映射方式下,设计主存地址格式。
(3)在四路组相联映射方式下,设计主存地址格式。
(4)在全相联映射方式下,设计主存地址格式。
解:
- Cache容量为2K字,块长为4,Cache共有2K/4=211/22=29=512块,Cache字地址9位,字块内地址为2位因此,Cache地址格式设计如下:
- 主存容量为256K字=218字,主存地址共18位,共分256K/4=216块,主存字块标记为18-9—2=7位。直接映射方式下主存地址格式如下:
- 根据四路组相联得条件,一组内共有4块,得Cache共分为512/4=128=27组,主存字块标记为18-7-2=9位,主存地址格式设计如下:
- 在全相联映射方式下,主存字块标记为18-2=16位,其地址格式如下:
- 若存储字长为32位,存储器按字节寻址,则主存容量为256K*32/4=221B,Cache容量为2K*32/4=214B,块长为4*32/4=32B=25B,字块内地址为5位,在直接映射方式下,主存字块标记为21-9—5=7位,主存地址格式为:在四路组相联映射方式下,主存字块标记为21—7-5=9位,主存地址格式为:在全相联映射方式下,主存字块标记为21—5=16位,主存地址格式为:接下来两页没有答案
解:(1) Cache 容量 2K 字=211 字 (Cache 地址 11 位)块长 4 字 4=22 字Cached 包含的块数= Cache 容量/块长 =211 /22 =29 块Cache 字块地址字块内地址92(2)在直接映射方式下,设计主存地址格式主存容量 256K 字 =218 字 ( 主存地址 18 位)主存包含的块数: 218/22 =216 块主存字块标记=主存地址长度- Cache 地址长度=18-11=7 位主存字块标记Cache 字块地址字块内地址792(3)在四路组相联映射方式下,设计主存地址格式四路组相联=>每组 4 块=>r=2 (4 块=22 )Cache 可分的组数= 29/22 = 27 =>q=7 (组地址需要 7 位)主存字块标记=主存地址长度- 组地址长度-字块内地址(b)=18-7-2=9 位主存字块标记组地址字块内地址__________________________________________________972(4)在全相联映射方式下,设计主存地址格式:主存字块标记=主存地址长度- 字块内地址(b)=18-2=16 位主存字块标记字块内地址162同理:若存储字长为 32 位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。Cache 容量 2K 字=211 *32/8=213 (Cache 地址 13 位)每个块容量=4*32/8=16 字节 (块内地址需 4 位)Cache 包含的块数:2K 字/4 字=29 块Cache 字块地址字块内地址94(1)在直接映射方式下,设计主存地址格式主存容量 256K 字 =218 字 = 218 *32/8=220 字节 ( 主存字节地址 20 位)每个块容量=4*32/8=16 字节 (块内地址需 4 位)主存包含的块数: 218/22 =216 块主存字块标记=主存地址长度- Cache 地址长度=20-4-9=7 位主存字块标记Cache 字块地址字块内地址794(2)在四路组相联映射方式下,设计主存地址格式四路组相联=>每组 4 块=>r=2 (4 块=22 )Cache 可分的组数= 29/22 = 27 =>q=7 (组地址需要 7 位)主存字块标记=主存地址长度- 组地址长度-字块内地址(b)=20-7-4=9 位主存字块标记组地址字块内地址974(3)在全相联映射方式下,设计主存地址格式:主存字块标记=主存地址长度- 字块内地址(b)=20-4=16 位主存字块标记字块内地址164__________________________________________________
解:
- 根据每字块有8个字,每字32位(4字节),得出主存地址字段中字块内地址为 3 2=5位。根据Cache容量为16KB=214B,字块大小为8*32/8=32=25B,得Cache地址共14位,Cache共有214-5=29块。根据四路组相联映射,Cache共分为29/22=27组。根据主存容量为4MB=222B,得主存地址共22位,主存字块标记为22-7-5=10位,故主存地址格式为:主存字块标记(10位)组地址(7位)字块内地址(5位)
- 由于每个字块中有8个字,而且初态为空,因此CPU读第0号单元时,未命中,必须访问主存,同时将该字所在的主存块调入Cache第0组中的任一块内,接着CPU读第1~7号单元时均命中。同理,CPU读第8,16,...,88号时均未命中。可见,CPU在连续读90个字中共有12次未命中,而后8次循环读90个字全部命中,命中率为:(90×8-12)/(90×8)=0.983
- 设Cache的周期为t,则主存周期为6t,没有Cache的访问时间为6t*90*8,有Cache的访问时间为t(90*8-12) 6t*12,则有Cache和无Cache相比,速度提高的倍数为:(6t×90×8)/((90×8-12)t 6t×12)-1=4.54
- 简要说明提高访存速度可采取的措施
答:提高访存速度可采取三种措施:(1)采用高速器件。即采用存储周期短的芯片,可提高访存速度。(2)采用Cache.CPU最近要使用的信息先调入Cache,而Cache的速度比主存快得多,这样CPU每次只需从Cache中读写信息,从而缩短访存时间,提高访存速度。(3)调整主存结构。如采用单体多字或采用多体结构存储器。
- 反映主存和外存的速度指标有何不同?
第七章 指令系统复习总结
1. 什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切的关系?
答:机器语言构成的语句称为机器指令,全部机器指令的集合称为机器的指令系统。机器的指令系统集中反映了机器的功能。
机器指令:是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成。
指令系统:计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。
指令系统是计算机硬件和软件的接口部分,是全部机器指令的集合。
2. 什么叫寻址方式?为什么要学习寻址方式?
答:寻址方式是指如何确定本条指令的操作数地址以及下一条将要执行指令的地址,它与硬件结构紧密相关,而且直接影响指令格式和指令功能。寻址方式分指令寻址和数据寻址。
3. 什么是指令字长、机器字长和存储字长?
答:指令字长:取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不同的,同一机器的指令字长可以是固定的,也可以是可变的(按字节的倍数变化)。
机器字长:是指计算机能直接处理的二知进制数据的位数,决定了计算机的运算精度。
指令字长:一个指令字中包含二进制代码的位数。
存储字长:一个存储单元存储一串二进制代码(存储字专),这属串二进制代码的位数称为存储字长,存储字长可以是8位、16位、32位等。
4、零地址指令的操作数来自哪里?在一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。
双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。
操作数的地址隐藏在堆栈指针的SP中
例如,空操作(NOP)、停机(HLT)等指令只有操作码。子程序返回(RET)、中断返回(IRET)等指令无地址码。
5. 对于二地址指令而言,操作数的物理地址可安排在什么地方?举例说明。
答:对于二地址指令而言,操作数的物理地址可安排在寄存器内、指令中或内存单元内等。
具体如下:
存储器-存储器(SS)型指令:参与操作的数都放在内存里,从内存某
单元中袭取操作数,操作结果存放百至内存另一单元中。
因此机器执行这种指令需要多次访问内存。
寄存器-寄存器(RR)型指令:需要多个通用寄存器或个别专用寄存
器,度从寄存器中取操作数,把操作结果放到另一寄存器中。
机器执行这种指令的速度很快,不需要访知问内存。
寄存器-存储器(RS)型指令:执行此道类指令,既要访问内存单元,
又要访问寄存器
6、某指令字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。
三地址指令格式如下:
4 4 4 4
OP A1 A2 A3
以三地址指令格式为该指令系统的基本格式,以此格式为基础,采用扩展操作码技术,设计出题意所要求的地址码结构的指令。
指令操作码分配方案如下:
4位OP
0000,
……, A1,A2,A3:8条三地址指令
0111,
1000,0000,
……,……, A2,A3:16条二地址指令
1000,1111,
1001,0000,0000,
……,……,……, A3:100条一地址指令
1001,0110,0011,
1001,0110,0100,
……,……,……, 冗余编码
1001,1111,1111, 可用来扩充一、零地址指令条数
1010,
……, 冗余编码
1111, 可用来扩充三、二、一、零地址指令条数
7、设指令字长为16位,采用扩展操作码技术,每个操作数的地址为6位。如果定义了13条二地址指令,试问还可以安排多少一地址指令?
二地址指令格式:
4 6 6
OP A1 A2
设二地址指令格式是该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用来作扩展标志。如不考虑零地址指令,该指令系统最多还能安排一地址指令条数为 3*2^6 = 192条
8. 某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M条,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种?
解:(1)若采用定长操作码时,二地址指令格式如下:
OP(4位)
A1(6位)
A2(6位)
(2)设二地址指令有K种,则:K=16-M-N
当M=1(最小值),N=1(最小值)时,二地址指令最多有:Kmax=16-1-1=14种
(3) 若采用变长操作码时,二地址指令格式仍如1)所示,但操作码长度可随地址码的个数而变。此时,K= 24 -(N/26 + M/212 );
当(N/26 + M/212 )£1时(N/26 + M/212 向上取整),K最大,则二地址指令最多有:Kmax=16-1=15种(只留一种编码作扩展标志用。)
9. 试比较间接寻址和寄存器间接寻址。
答:间接寻址的特点是:指令在执行阶段要多次访存(一次间址需两次访存,多次间址需根据存储字的最高位确定几次访存);可扩大寻址范围(有效地址EA的位数大于形式地址A的位数);便于编程。
寄存器间接寻址:指令的执行阶段需要访存(因有效地址在寄存器中,操作数在存储器中)便于编制循环程序。
10. 试比较基址寻址和变址寻址。
基址寻址:可扩大操作数的寻址范围(基址寄存器的位数大于形式地址A的位数);有利于多道程序运行;基址寄存器的内容由操作系统或管理程序确定;在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址A可变(作为偏移量)。
变址寻址:可扩大操作数的寻址范围(变址寄存器的位数大于形式地址A的位数);变址寄存器的内容由用户给定;在程序执行过程中,变址寄存器的内容可变(作为偏移量),形式地址A不变(作为基地址);便于处理数组问题。
11. 画出先变址再间址及先间址再变址的寻址过程示意图。
解:(1)先变址再间址寻址过程简单示意如下:
EA=[(IX)+A],IX®(IX)+1
2)先间址再变址寻址过程简单示意如下:EA=(IX)+(A),IX® (IX)+1
第三章 系统总线复习要点
1、什么是总线?总线传输有何特点?为了减轻总线负载,总线上的部件应具备什么特点?
答:P41.总线是多个部件共享的传输部件。
总线传输的特点是:某一时刻只能有一路信息在总线上传输,即分时使用。
为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线连通。
答:
总线的分类:(1) 按数据传送方式分:并行传输总线和串行传输总线;(2) 按总线的使用范围分:计算机总线、测控总线、网络通信总线等;(3) 按连接部件分:片内总线、系统总线和通信总线。
系统总线是指 CPU、主存、I/O 设备(通过 I/O 接口)各大部件之间的信息传输线。按系统总线传输信息不同,可分为 3 类:数据总线、地址总线和控制总线。
(1) 数据总线:数据总线是用来传输个功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般为 8位、16 位或 32 位。
- 地址总线:地址总线主要是用来指出数据总线上的源数据或目的数据在主存单元的地址或 I/O 设备的地址,地址总线上的代码是用来指明 CPU 欲访问的存储单元或 I/O 端口的地址,由 CPU 输出,是单向的,地址线的位数与存储单元的个数有关,如地址线有 20根,则对应的存储单元个数为 220。
- 控制总线:控制总线是用来发出各种控制信号的传输线,其传输是单向的。
- 常用的总线结构有几种?不同总线结构对计算机的性能有什么影响?举例说明
解:总线结构通常有单总线结构和多总线结构。(1)单总线结构是将 CPU、主存、I/O 设备(通过 I/O 接口)都挂在一组总线上,允许 I/O 设备之间、I/O 设备与 CPU 之间或 I/O 设备与主存之间直接交换信息。这种结构简单,也便于扩充,但是所有的传送都通过这组共享总线,易形成瓶颈。这类总线多数为小型机或微型机所采用。(2)多总线结构又分为双总线结构、三总线结构和四总线结构。
将速率不同的 I/O 设备进行分类,然后将它们连接在不同的通道(具有特殊功能的处理器)上,那么计算机系统的利用率将会更高,由此发展成多总线结构。举例:PCI 总线结构CPU存储器PCI 桥33PCI 总线标准总线控SCSI Ⅱ制器33MHz 的 32 位数据通路控制器ISA 、EISA…8MHz 的 16 位数据通路多媒体高 速高 性局 域能 图网形图文传真Modem……图 3.1 PCI 总线结构由图可见,PCI 总线是通过 PCI 桥路与 CPU 总线相连。
- 分离式通信有何特点,主要用于什么系统?
答:分离式通讯的特点是: (1)各模块欲占用总线使用权都必须提出申请; (2)在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号; (3)各模块在准备数据的过程中都不占用总线,使总线可接受其它模块的请求; (4)总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分利用了总线的占用,从而实现了总线在多个主、从模块间进行信息交叉重叠并行传送。
分离式通讯主要用于大型计算机系统。
4. 为什么要设置总线判优控制?常见的集中式总线控制有几种?各有何特点?哪种方式响应时间最快?哪种方式对电路故障最敏感?
答:总线判优控制解决多个部件同时申请总线时的使用权分配问题;
常见的集中式总线控制有三种:链式查询、计数器定时查询、独立请求;
特点:链式查询方式连线简单,易于扩充,对电路故障最敏感;计数器定时查询方式优先级设置较灵活,对故障不敏感,连线及控制过程较复杂;独立请求方式速度最快,但硬件器件用量大,连线多,成本较高。
5. 解释下列概念:总线宽度、总线带宽、总线复用、总线的主设备(或主模块)、总线的从设备(或从模块)、总线的传输周期和总线的通信控制。
答:
总线宽度:通常指数据总线的根数;
总线带宽:总线的数据传输率,指单位时间内总线上传输数据的位数;
总线复用:指同一条信号线可以分时传输不同的信号。
总线的主设备(主模块):指一次总线传输期间,拥有总线控制权的设备(模块);
总线的从设备(从模块):指一次总线传输期间,配合主设备完成数据传输的设备(模块),它只能被动接受主设备发来的命令;
总线的传输周期:指总线完成一次完整而可靠的传输所需时间;
总线的通信控制:指总线传送过程中双方的时间配合方式。
6. 试比较同步通信和异步通信。
答:同步通信:指由统一时钟控制的通信,控制方式简单,灵活性差,当系统中各部件工作速度差异较大时,总线工作效率明显下降。适合于速度差别不大的场合。
异步通信:指没有统一时钟控制的通信,部件间采用应答方式进行联系,控制方式较同步复杂,灵活性高,当系统中各部件工作速度差异较大时,有利于提高总线工作效率。
8. 为什么说半同步通信同时保留了同步通信和异步通信的特点?
答:半同步通信既能像同步通信那样由统一时钟控制,又能像异步通信那样允许传输时间不一致,因此工作效率介于两者之间。
10. 为什么要设置总线标准?你知道目前流行的总线标准有哪些?什么叫plug and play?哪些总线有这一特点?
答:总线标准的设置主要解决不同厂家各类模块化产品的兼容问题;
目前流行的总线标准有:ISA、EISA、PCI等;
plug and play:即插即用,EISA、PCI等具有此功能。
- 输入输出系统
课本中画下的概念
第八章 CPU的结构功能
1. CPU有哪些功能?画出其结构框图并简要说明各个部件的作用。
答:参考P328和图8.2。
2. 什么是指令周期?指令周期是否有一个固定值?为什么?
解:指令周期是指取出并执行完一条指令所需的时间。
由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。
4. 设CPU内有下列部件:PC、IR、SP、AC、MAR、MDR和CU。
(1)画出完成间接寻址的取数指令LDA@X(将主存某地址单元X的内容取至AC中)的数据流(从取指令开始)。
(2)画出中断周期的数据流。
解:CPU中的数据流向与所采用的数据通路结构直接相关,不同的数据通路中的数据流是不一样的。常用的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。
为简单起见,本题采用单总线将题中所给部件连接起来,框图如下:
¯ (1)LDA@X指令周期数据流程图:
(2)中断周期流程图如下:
注:解这道题有两个要素,首先要根据所给部件设计好数据通路,即确定信息流动的载体。其次选择好描述数据流的方法,无论采用什么样的表达方式,其关键都要能清楚地反映数据在通路上流动的顺序,即强调一个“流”字。较好的表达方式是流程图的形式。
5. 中断周期前是什么阶段?中断周期后又是什么阶段?在中断周期CPU应完成什么操作?
答:中断周期前是执行周期,中断周期后是取指周期。在中断周期,CPU应完成保存断点、将中断向量送PC和关中断等工作。
7. 什么叫系统的并行性?粗粒度并行和细粒度并行有何区别?
答:所谓并行性包含同时性和并发性。同时性是指两个或两个以上的事件在同一时刻发生,并发性是指两个或多个事件在同一时间段发生。即在同一时刻或同一时间段内完成两个或两个以上性质相同或性质不同的功能,只要在时间上存在相互重叠,就存在并行性。
并行性又分为粗粒度并行和细粒度并行两类。粗粒度并行是指在多个处理机上分别运行多个进程,由多台处理机合作完成一个程序,一般用算法实现。细粒度并行是指在处理机的指令级和操作级的并行性。
8. 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中哪个更能提高处理机速度,为什么?
答:指令流水是指将一条指令的执行过程分为n个操作时间大致相等的阶段,每个阶段由一个独立的功能部件来完成,这样n个部件就可以同时执行n条指令的不同阶段,从而大大提高CPU的吞吐率。
指令二级流水和四级流水示意图如下:
四级流水更能提高处理机的速度。分析如下:
假设IF、ID、EX、WR每个阶段耗时为t,则连续执行n条指令
采用二级流水线时,耗时为:4t+(n-1)2t=(2n+2)t
采用四级流水线时,耗时为:4t+(n-1)t=(n+3)t
在n>1时,n+3<2n+2,可见四级流水线耗时比二级流水线耗时短,因此更能提高处理机速度。
17. 在中断系统中INTR、INT、EINT三个触发器各有何作用?
解:INTR——中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为CPU查询中断及中断排队判优线路提供稳定的中断请求信号。
EINT——中断允许触发器,CPU中的中断总开关。当EINT=1时,表示允许中断(开中断),当EINT=0时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置。
INT——中断标记触发器,控制器时序系统中周期状态分配电路的一部分,表示中断周期标记。当INT=1时,进入中断周期,执行中断隐指令的操作。
14、指令流水线和运算流水线在结构上有何共同之处?
- 什么是中断?设计中断系统需要考虑什么主要问题?
- 什么是中断隐指令,有哪些功能?
- 控制单元的功能
- 什么是指令周期、机器周期、时钟周期?三者有何关系
解:指令周期是CPU取出并执行一条指令所需的全部时间,即完成一条指令的时间。机器周期是所有指令执行过程中的一个基准时间,通常以存取周期作为机器周期。时钟周期是机器主频的倒数,也可称为节拍,它是控制计算机操作的最小单位时间。三者关系:一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期数可以不等,每个机器周期内的时钟周期数也可以不等。
- 控制单元的功能是什么?其输入受什么控制?
控制单元的主要功能是发出各种不同的控制信号。其输入受时钟信号、指令寄存器的操作码字段、标志和来自系统总线的控制信号的控制。
- 试比较同步控制、异步控制、联合控制的区别
同步控制是指任何一条指令或指令中任何一个微操作的执行都是事先确定的,并且都受同一基准时标的时序信号所控制的方式。异步控制无基准时标信号,微操作的时序是由专门的应答线路控制,即控制单元发出执行某一微操作的控制信号后,等待执行部件完成了该操作后发回“回答”或“结束”信号,再开始新的微操作。联合控制是同步控制和异步控制相结合的方式,即大多数操作(如CPU内部各操作)在同步时序信号的控制下进行,少数时间难以确定的微操作(如涉及I/O操作)采用异步控制。
- 什么是典型的同步控制?为提高CPU效率,在同步控制方式中又有哪些方式?以8085的输出指令为例,说明他属于哪种控制方式?
答:典型的同步控制:同步控制方式是指,任何一条指令或指令中的任何一个微操作的执行都是事先确定的,并且都收统一基准时标的时序信号所控制的方式。典型的同步控制方式,每个机器周期都包含4个节拍。如果机器内的存取周期不统一,那么只有把最长的存取周期作为机器周期。为了提高CPU的效率,在同步控制中又有三种方案:(1)采用定长的机器周期。不论指令所对应的微操作序列有多长,也不管微操作的简繁,一律以最长的微操作序列和最繁的微操作为标准,采用完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行各种不同的指令。(2)采用不定长的机器周期。每个机器周期内的节拍数可以不等。通常把大多数微操作安排在一个较短的机器周期内完成,而对于某些复杂的微操作,采用延长机器周期或增加节拍的办法来解决。(3)采用中央控制和局部控制相结合的方法。将机器的大部分指令安排在统一的较短的机器周期内完成,称为中央控制,而将少数操作复杂的指令中的某些操作(如乘除法和浮点运算)采用局部控制方式来完成。举例:Intel8085输出指令中每个周期内包含的节拍不同,属于不定长的机器周期的同步控制方式。
- 控制单元的设计
- 微指令的操作控制有几种编码方式?各有何特点?哪一种控制速度最快?
答:微指令操作控制主要有三种编码方式:(1)直接控制,又称直接编码特点是操作控制字段的每一位代表一个微命令,优点是简单直观输出直接用于控制。缺点是微指令字长最长,所需存储空间大。(2)字段直接编码控制,特点是将微指令操作控制字段分成几段,并使每个字段经译码后形成各个微操作命令。每个字段中的微命令必须是互斥的。这种编码方式缩短了微指令字长,但增加了译码电路,使微指令的执行速度降低。这种编码方式又称显式编码。(3)字段间接编码控制,这种方式一个字段的某些微命令还需由另一个字段中的某些微命令解释,故又称为隐式编码这种编码方式更能缩短微指令字长。还可把直接编码和字段编码混合使用。
- 什么是垂直型微指令?什么是水平型微指令?各有何特点?
解:垂直型微指令是指一次只能执行一个微命令的微指令;
水平 型微指令是指一次能定义并能并行执行多个微命令的微指令。 垂直型 微指令的并行操作能力差, 一般只能实现一个微操作, 控制1 ~ 2 个信息传送通路,效率低,执行一条机器指令所需的微指令数目多, 执行时间长;但是微指令与机器指令很相似,所以容易掌握和利用, 编程比较简单,不必过多地了解数据通路的细节,且微指令字较短。水平型微指令的并行操作能力强,效率高,灵活性强,执行一条机器 指令所需微指令的数目少,执行时间短;但微指令字较长,增加了控 存的横向容量, 同时微指令和机器指令的差别很大, 设计者只有熟悉 了数据通路,才有可能编制出理想的微程序,一般用户不易掌握。
- 能否说水平微指令就是直接编码的微指令?为什么?
解:不能说水平型微指令就是直接编码的微指令,因为符合水平型微指令特征的微指令都属于水平型微指令,常见的有:直接编码、字段直接编码、字段间接编码,及混合编码等。直接编码的微指令只是最典型的一种。
- 微指令的地址有几种形成方式?各有何特点?
微指令的地址有六种形成方式:(1)直接由微指令的下地址字段给出
(2)根据机器指令的操作码字段形成
(3)增量计数器法
(4)根据各种标志决定微指令分支转移的地址
(5)通过测试网络形成
- 微指令操作控制字段采用直接编码或显式编码时,其微指令字长如何确定?
答:在微指令的操作控制字段中,每一位代表一个微操作命令,这种编码方式即为直接编码方式。直接编码方式含义清晰,而且只要微指令从控存读出,即刻可由控制字段发出命令,速度快。但由于机器中微操作命令甚多,可能使微指令操作控制字段达几百位,造成控存容量极大。采用字段直接编码(显式编码)方法可用较少的二进制信息表示较多的微操作命令信号。例如,3位二进制代码译码后可表示7个互斥的微命令,留出一种状态表示不发微命令,与直接编码用7位表示7个微命令相比,减少了4位,缩短了微指令的长度。至于操作控制字段应分几段,与需要并行发出的微命令个数有关,若需并行发出8个微命令,就可分8段。每段的长度可以不等,与具体要求互斥的微命令个数有关,若某类操作要求互斥的微命令仅有6个,则字段只需安排3位即可。
- 解释机器指令、微指令、微程序、毫微指令、毫微程序以及他们之间对应的关系
答:机器指令由“0”、“1”代码组成,能被机器直接识别。机器指令可由有序微指令组成的微程序来解释,微指令也是由“0”、“1”代码组成,也能被机器直接识别,是用来解释机器指令的。毫微指令是用来解释伪指令的。微程序可以看做是解释机器指令的,毫微程序可以看做是解释微程序的。
计算机组成原理复习要点整理(一万五千字期末、考研)
最新推荐文章于 2025-05-31 15:06:00 发布