计算机组成原理(谭志虎主编)考研面试

1.计算机系统的组成,计算机系统性能取决于

计算机系统是由“硬件”和“软件”组成。计算机性能取决于硬件的各种性能指标和软件的各种功能。

2.冯诺依曼机的特点
1)计算机硬件系统包含运算器、存储器、控制器、输入设备和输出设备。中央处理器CPU=运算器+控制器,主机host=CPU+存储器
2)指令和数据存储在存储器中,并可以按地址访问;
3)指令和数据均以二进制表示;
4)指令由操作码和地址码构成,操作码指明操作的性质,地址码表示操作数在存储器中的位置;
5)早期冯诺依曼机以运算器为中心,I/O设备与存储器交换数据也要通过运算器。现代以存储器为中心
Ps:冯诺依曼体系结构:存储程序和程序控制
3.程序设计语言的类别和特点
机器语言:二进制代码表示的计算机能直接识别并执行的机器指令的集合
汇编语言:用助记符表示的面向机器的计算机语言
高级语言:与人类自然语言接近且为计算机接受的计算机语言,语意确定,规则明确,通用易学,是我们平时编程使用的语言

4.高级语言的分类
编译型语言:将源程序翻译成目标程序才执行,如C语言等
解释型语言:边解释边执行。将一种语言编写的程序的一条语句翻译成另一种语言的一条或多条语句,然后执行,执行完后解释下一条。

5.C语言源程序转换为目标程序的过程
编译程序将高级语言翻译成汇编代码,汇编程序将汇编语言翻译成机器语言目标程序。
解释程序将源程序中的语句按执行顺序逐条翻译成机器指令并执行,且不生成目标程序。

6.软件和硬件的逻辑功能等价性
计算机硬件实现的是最基本的算术运算和逻辑运算,其他功能通过软件扩充实现。随着技术的发展,部分功能既可以由硬件实现也可以由软件实现,从用户角度来看,它们在功能上是等价的。软件和硬件的逻辑功能等价性是计算机系统设计的重要依据。

7.计算机体系结构和计算机组成,以乘法指令为例说明二者区别。
1)计算机体系结构是指那些能够被程序员看到的计算机的属性。如指令集、数据类型等;
2)计算机组成是指如何实现计算机体系结构所体现出来的属性;
3)以乘法指令为例,计算机是否有乘法指令,属于体系结构的问题。乘法指令是采用专用的乘法器,还是使用加法器和移位器构成,属于计算机组成的问题。

8.真值和机器码
真值:用±符号来表示数据的符号
机器数、机器码:由符号和数值一起编码表示的二进制

9.数的机器码表示
定点数机器码有原码、反码、补码和移码
原码:符号化的数值,正数符号位0,负数符号位1
反码:符号位与原码相同,正数:反码与原码相同,负数:反码数值位为真值数值位取反
补码:正数:符号位为0,数据位与真值相同;负数:符号位为1,数据位利用模数做减法
移码:只用于表示定点整数,通常用于表示浮点数的阶码。直接将真值加一个常数偏移量
PS:移码符号位中0为负数,1为正数;同一数值的移码和补码符号位仅相反;移码中0唯一,100000…00

10.补码的背景和计算方法
计算机中二进制数据有字长限制,数据最高位进位的位权值为模数,运算结果超过模数部分会自动舍弃,故计算机二进制运算属于有模运算,适合用移码表示和运算
方法(真值为负数):反码法、扫描法、双符号补码 P22
原码–补码:符号位不变,各位取反,末位加1;
补码–原码:符号位不变,各位取反,末位加1;

11.各机器码的0的表示方法和数值范围(有符号数) P24
原码:0有2种表示方法 +0 -0
补码:0有1种表示方法 +0 -0表示方法一致

12.浮点数的表示形式
由尾数、数符、阶码、阶符四部分组成。

13.IEEE754浮点数标准
由数符、阶码(含阶符)、尾数组成。主要包括32位单精度浮点数和64位双精度浮点数,分别对应C语言中的float和double。其中阶码用移码表示,尾数用原码表示。P28

14.校验码和码距的关系
校验码:有发现错误或纠正错误能力的数据编码。用于提升数据在空间和时间上的传输可靠性,主要原理是在原始数据中引入校验数据,是最终的校验码符合某种编码规则;当校验码中某些位发生错误时会破坏规则,从而使错误可以被检测甚至纠正。
码距/海明距离:信息编码中,两个编码对应二进制位不同的个数(异或后1的个数)
码距越大,抗干扰能力、纠错能力越强,数据冗余越大,编码效率越低
校验码的目的就是扩大码距,通过编码规则来识别错误代码。

15.校验方法 P44 P46
奇偶校验:增加一个校验位P,使最终校验码中数字1的个数为奇数或偶数,min码距为2
缺点:无法检验偶数位错误
海明校验:min码距为3

16.±溢出的情况,溢出检测
发生溢出:正数加正数,正数减负数,负数加负数,负数减正数
溢出检测:操作数和运算结果的符号位是否一致P63-64
最高数据位的进位与符号位进位是否一致
变形补码的符号位进行检测

17.浮点加减运算基本步骤
1)对阶:使小数点对齐;
2)尾数求和:将对阶后的两个尾数按照定点加减运算规则求和;
3)规格化:尾数规格化;
4)舍入:尾数右规时,丢失数值位;
5)溢出判断:判断结果是否溢出。2个符号位判溢出

18.存储器分类 p95
按存取方式:随机存储器、顺序存储器和直接存储器
其中随机存储器存取时间与物理地址无关;顺序存储器(如磁带)和直接存储器(如磁盘)属于串行存储器,存取时间与物理地址有关。

19.随机存储器的分类
静态RAM:采用锁存器原理实现;
动态RAM:采用电容原理实现,需要刷新。
相比于动态RAM,静态RAM的速度快、容量小、价格高,一般用于缓存,而动态RAM一般用于内存。

20.只读存储器ROM
掩模ROM(MROM):出厂后内容不能被更改。
PROM:可编程只读存储器,可以进行一次性编程;
EPROM:可擦除只读ROM,用紫外线照射;
EEPROM:电可擦除只读ROM。
FLash Memory闪存:采用EEPROM的非易失性存储器。

21.存储器技术指标
存储容量:存储器可以存储的二进制信息总量
存取时间/存储器的访问时间:启动一次存储器完成本次操作(读或写)所需的时间
存取(储)周期:连续两次启动存储器所需要的最短间隔时间 ps:存取周期包含存取时间
存储器带宽:单位时间内存储器所能传输的信息量

22.主存储器中,什么是MAR,什么是MDR,存储器的最大容量由什么决定?
1)MAR:存储地址寄存器,保存需要访问的存储单元地址。反映存储单元的个数。
2)MDR:存储数据寄存器,缓存读出/写入存储单元的数据。反映存储字长。
3)存储器的最大容量由MAR寄存器的位数和MDR寄存器的位数决定。

23.存储系统层次结构和透明性P97
高速缓存-主存:缓解CPU和主存速度不匹配的问题,由硬件完成,对所有程序员透明
主存-辅存:解决主存容量不的足和高成本问题,由操作系统和硬件共同完成,对应用程序设计者透明,对系统程序设计者不透明。

24.存储单元,存储字,存储字长,数据字长
存储单元:存储一个存储字并具有特定存储地址的存储单位
存储字:一个存储单元中存放的所有的二进制数据,按照某个地址访问某个存储单元获取的二进制数据
存储字长:主存的一个存储单元所存储的二进制位数,即按照某个地址访问某个存储单元获取的二进制数据的位数
存储体:由多个存储单元构成的存储器件
数据字长(机器字长、字长):计算机一次能处理的二进制位数(=CPU内部寄存器的大小),以字节Byte为单位,现代计算机字长一般为32位或64位

25.字在存储单元中的大端存储和小端存储
大端:存储器的低字节地址单元中存放数据的最高字节。即字的低位存在内存的高地址中,而字的高位存在内存的低地址中;
小端:存储器的低字节地址单元中存放数据的最低字节。即字的低位存在内存的低地址中,而字的高位存在内存的高地址中。
x86CPU采用的是小端方式。

26.刷新DRAM不能响应CPU的访问,解决CPU访存和内存控制器刷新操作的内存(DRAM)争用问题
集中刷新,优点:读写操作期间不受刷新操作的影响,故存储器速度比较快
缺点:存在较长时间的“死区”,CPU长时间不能访问存储器,实时要求不高
分散刷新,不存在“死区”,但因刷新过于频繁,严重影响系统速度,不适用于高速存储器
异步刷新,是集中刷新和分散刷新的结合,效率更高更常用

27.存储器的扩展
单片存储芯片的容量有限,很难满足实际需要。
位扩展/字长扩展/数据总线扩展:增加存储器的字长,例如两个1K * 4位的存储芯片构成1个1K*8位的存储器;
字扩展/容量扩展/地址总线扩展:增加存储器的字数,例如两个1K * 8位的存储芯片构成1个2K * 8位的存储器;
字位同时扩展:通常字扩展和位扩展两种方式混合使用。

28.提高访存速度的方式
① 选择高速元器件Cache,采用cache-主存的存储层次结构
② 增加字长,在每个存储周期中存多个字
③ 将主存划分为多个模块,多模块并行

29.通过发掘存储系统的并行性提高访存速度
双端口存储器:同一个存储器具有两组相互独立的端口,每个端口均有各自独立的数据端口、地址端口、读写控制端口、片选端口等,每个端口可以独立进行读写操作
特点:并行读写。左右两个端口地址不同时,端口使用各自的地址线、数据线和控制线对存储器中不同的存储单元同时进行读写;当两个端口访问地址相同时会发生读写冲突。由于冲突访问不可避免,该存储器的速度不可能提高1倍
单体多字存储器:与存储器位扩展方式相同。多个存储模块共享地址总线,按同一地址并行访问不同存储模块的同一单元,从而实现同一个存储周期内访问多个存储字。若m个存储模块并发工作,则主存带宽提升m倍
优点:显著提高了存储器带宽。
多体交叉存储器:由多个存储模块构成,模块的容量和存取速度相同

30.多体交叉存储器的模块编址方式
高位多体交叉/顺序编址:与存储器字扩展相同。高位地址译码产生片选信号,选择不同的存储模块;低位地址直接选择一个存储模块内的不同存储单元。该方式中不同存储模块对应不同的地址区间,将地址顺序分配给各个模块。
特点:相邻地址在同一存储体内,不同存储体中地址不相邻。扩充存储器的容量,多模块串行,方便故障隔离
低位多体交叉/交叉编址:低位地址译码进行片选,高位地址选择存储模块内的不同存储单元。将有序的M个地址依次分配给M个存储模块后,将下面的M个地址继续依次分配,直至将线性地址分配完。
特点:相邻的地址在不同存储体内,同一存储体中地址不相邻。即程序连续存放在相邻的存储体之中。扩充存储器容量,多模块并行,能同时取多条指令或数据提高单次访存速度,每个存储体需要地址寄存器

31.在CPU和内存之间引入cache的原因
避免cpu空等I/O访存
缓解CPU和主存速度不匹配的问题

32.程序的局部性原理
时间局部性:程序访问一个存储位置时,该位置在未来可能被多次访问。如循环结构、调用
空间局部性:程序访问了某个存储单元。则其附近的存储单元也即将被访问。如顺序存储的数组、结构体等

33.Cache写操作的两种方式
写直达/写穿策略:写操作既写入Cache又写入慢速的主存
写回策略:只把数据写入Cache而不写入主存,当Cache中数据被替换出去之后才写入主存
写回可以提高突发写性能,但存在数据不一致的问题;写穿能保证数据的一致性,但响应速度较慢

34.cache实现的关键技术
数据查找:如何快速判断数据是否在cache中,命中访问时间包括数据查找时间和cache访问时间。在全相联映射中通过相联存储器实现快速查找。
地址映射:主存中的数据块如何放置到cache中,不同的地址映射策略影响cache的性能和硬件成本
替换策略:cache满后如何处理,不同的替换策略影响数据命中率
写入策略:如何保证cache与memory主存的一致性,写回和写穿,见33问

35.相联存储器CAM
一般存储器按地址访问,CAM是按内容访问的存储器,以存放查找表,表内存储的基本数据单元是键值对。CAM输入的不是地址,而是检索关键字key,输出关键字对应的value值

36.地址映射指主存地址空间映射到Cache地址空间,常见的地址映射
全相联映射:各主存数据块可以映射到cache的任意数据块,只有cache满时才需要数据块置换。优点:cache利用率高,块冲突率低。缺点:只适用于小容量cache使用;需要CAM提供快速查找的功能,硬件成本较高;替换策略和算法较为复杂
直接相联映射:各主存块只能映射到cache中的固定块。优点:适用于大容量cache,硬件成本低;查找容易,淘汰简单(地址变换速度快,无需使用复杂的替换算法)。缺点:cache利用率低,块冲突率高
组相联映射:各主存块只能映射到cache固定组中的任意块。是直接相联映射和全相联映射的折中

37.Cache常用的替换算法
先进先出FIFO:按照数据块进入cache的先后决定替换顺序,即需要进行替换时,选择最先被载入cache的进行替换。需要记录每个cache行载入cache的时间戳。开销小但不考虑程序访问的局部性,命中率不高
最不经常使用算法LFU:被访问次数最少的cache行淘汰。需要每行设置一个淘汰计数器,硬件成本较高。且淘汰计数器记录的时cache的历史访问情况,不能严格反映近期访问情况
近期最少使用算法LRU:近期内最久未被访问的行淘汰。需要每行设置一个未访问次数计数器,cache每命中一次,对应命中行清零,其他行+1。难点在于快速比较多行计数器
随机替换算法:需要替换时,从特定行中随机选一行替换。该策略硬件实现最容易,速度快;但随意换出的数据可能马上要用,从而降低命中率和cache工作效率
命中率最高的是近期最少使用算法;

38.完整的指令系统的要求
完备性:要求设计的指令系统种类齐全、功能完备,能编写任何可计算的程序
规整性:包括对称性、均齐性。对称性指寄存器和存储单元可被同等对待,所有指令都可使用各种寻址方式;均齐性指指令系统提供不同数据类型的支持,方便程序设计
有效性:利用指令编写的程序能高效率地运行,方便硬件实现和编译器实现
兼容性:新一代计算机的指令系统能兼容旧的指令系统
可扩展性:指令格式的操作码要预留一定编码空间以便扩展指令功能

39.机器指令和指令系统
机器指令:每一条机器语言的语句
指令系统:全部机器指令的集合

40.一条指令包含两个主要部分
操作码:指明指令要完成的操作
地址码:指明指令要操作的数据或数据来源

41.指令字长度
指令字长:一条指令中包含的二进位数
定长指令系统:指令长度固定,结构简单,有利于CPU取指令、译码和指令顺序寻址,便于硬件实现,但存在平均指令长度较长、冗余状态较多、不易扩展的问题
变长指令系统:长度可变,结构灵活,冗余状态较少,平均指令长度较短,可扩展性好。但取指令可能涉及多次访存,下一条指令的地址必须在指令译码完成后才确定,增加了硬件控制系统的设计难度

42.指令地址码 P155
指令中的地址码随指令类型和寻址方式不同而不同,也受寻址方式的影响
三地址指令:双目运算的指令包含两个源操作数和一个目的操作数。该指令将三者地址都显示给出,一般三个操作数都是寄存器
双地址指令:同样是为双目运算设计,为了压缩指令长度。将运算结果直接存放到第一操作数地址中,有寄存器+寄存器、寄存器+存储器、存储器+存储器三种存储类型
单地址指令:主要是单目运算类指令和隐含操作数双目运算类指令。单目运算类如逻辑运算的取反,运算对象只有一个,只需要一个地址码即表示操作数来源又表示操作数的目的地。隐含操作数的双目运算类,是为了进一步缩短指令长度,将双目运算中的一个操作数隐含于CPU的某个寄存器(如累加器AC)中,这样只需指定另一个操作数的地址,操作后的结果送回约定的寄存器中
零地址指令:只有操作码没有地址码,主要是指令本身不需要操作数和指令只需要一个操作数。不需要操作数如只为了占位和延时的空操作指令NOP、等待指令WAIT、停机指令HALT等。需要一个操作数,该操作数隐含于CPU的某个寄存器中

43.指令中地址码中的地址可以是哪些设备的地址
可以是主存地址、寄存器地址或I/O设备的地址;

44.指令中有三个地址、两个地址以及一个地址,需要访存几次
三地址:访存4次;
两地址:访存3次;
一地址:访存2次;

45.寄存器代替指令中的地址码
扩大指令字的寻址范围
缩短指令字长
减少访存次数

46.指令操作码
定长操作码:操作码的长度和在指令中的位置固定。指令功能译码简单,便于硬件设计
变长操作码:操作码的长度和在指令中的位置不固定。有效压缩指令操作码平均长度,便于用较短的指令字长表示更多操作类型,以寻址更大的存储空间(扩展操作码技术实现P156)

47.数据在存储器中存储时,为什么要按照边界对齐
减少访存次数。

48.寻址方式包括哪两类
指令寻址:下一条将要执行的指令的指令地址。
数据寻址:确定本指令的操作数地址。

49.形式地址和有效地址
形式地址:指令的地址码字段通常都不代表操作数的真实地址,成为形式地址,记为A
有效地址:操作数的真实地址(主存中),记为EA,由寻址特征和形式地址共同决定

50.指令寻址/内存寻址的方式
顺序寻址:程序中的机器指令序列在主存中顺序存放,没有转移分支和循环。
跳跃寻址:程序中出现分支或转移,会改变程序执行顺序,要跳跃寻址。下一条指令地址不一定通过PC+1获得,最终地址由指令本身及指令需要测试的条件决定

51.操作数寻址方式P158
操作数寻址就是形成操作数有效地址。操作数来源一般是:直接来自指令地址字段、存放在寄存器中、存放在存储器中
立即寻址:地址码就是操作数本身。取操作数快,但地址字段位宽有限,故操作数表示范围有限,一般用于变量赋初值
直接寻址:操作数在主存储器中,地址由地址字段给出。地址直观,但需要访问主存,速度慢,寻址范围受限于 指令中直接地址的二进制位数
寄存器寻址:操作数在CPU的某个寄存器中,地址字段表示寄存器编号。不需要访存速度快,需要的地址码短,利于缩短指令字长节省存储空间,但寄存器数量有限,不能为操作数提供大量存储空间
间接寻址:地址字段给出的是操作数的间接地址,即地址字段指向的主存单元的内容是操作数的有效地址。解决了直接寻址中寻址范围受限是问题,能用较短的地址码访问较大的主存空间,但取操作数需要两次访存,降低了指令执行速度
寄存器间接寻址:操作数有效地址存放在寄存器中,实际操作数在主存中。减少访存次数,提高编程灵活性,扩充寻址范围
相对寻址:程序计数器PC的内容+地址字段作为操作数的有效地址。只需要确定程序内部操作数与指令的相对距离,便于实现程序浮动。也可以用于分支转移类指令,实现相对跳转转移,利于程序在主存中的灵活定位
变址寻址:地址字段+变址寄存器编号字段作为操作数的有效地址。变址寄存器存放变化的地址提供修改量,而指令提供基准量。能访问更大的主存空间,主要应用于线性表之类的数组元素进行重复访问,将线性表的起始地址作为基准量,使变址寄存器的值按顺序变化(循环),就可对线性表中数据进行操作,不需要修改程序,方便程序设计
基址寻址:地址字段+基址寄存器编号字段作为操作数的有效地址。基址寄存器存放基地址。
堆栈寻址:以先进后出的方式存储数据,寻找存放在堆栈中的操作数。有存储器堆栈和寄存器堆栈两种,前者在内存空间中开辟堆栈区,后者将寄存器作为堆栈区,数据存取都在栈顶进行。进栈将数据送到堆栈中,出栈将栈顶数据传送至指定寄存器。堆栈操作时,寄存器堆栈栈顶固定不动,存储器堆栈栈顶移动;寄存器堆栈中数据移动,存储器堆栈中数据不动。寄存器堆栈速度快但容量有限,存储器堆栈速度慢但容量很大。寄存器堆栈必须使用专门的堆栈指令,存储器堆栈不一定

52.RISC和CISC P168
RISC:精简指令集
CISC:复杂指令集

53.MIPS指令系统
R型指令:操作数只能来自寄存器,运算结果只能存入寄存器,属于RR型指令
I型指令:立即数型指令
J型指令:无条件转移指令

54.中央处理器CPU的功能
程序控制:控制程序中的指令按事先规定的顺序自动执行
操作控制:产生指令执行过程中需要的操作控制信号,以控制执行部件正确运行
时序控制:对每个操作控制信号定时,严格控制操作控制信号的开始时间和持续时间,以便于按规定的时间顺序执行各操作
数据加工:对数据进行算术、逻辑运算,或将数据在相关部件间传送
中断处理:CPU及时响应内部异常和外部中断请求,如CPU执行指令时出现未定义指令、运算时出现整数除零、访问指令时缺页和外部中断请求。
55.CPU的主要寄存器 P187
56.指令周期的不同阶段 P190
57.现代时序硬布线控制器的设计流程 P226
58.微程序控制的基本思想 P229

59.为什么要使用总线?
在冯诺依曼结构中,各个部件之间均有单独连线,不仅线多,而且导致扩展I/O设备很不容易。即扩展一个I/O设备,需要连接很多线。引入了总线连接方式,将多个设备连接在同一组总线上,构成设备之间的公共传输通道。

60.总线的两大基本特征
共享:多个部件连接在同一组总线上,各个部件之间都通过该总线进行数据交换
分时:同一时刻,总线上只能传输一个部件发送的信息

61.简要说明单总线结构的概念及缺点/现代计算机为什么要采用多总线结构
在单总线结构中,所有的部件(CPU、主存、I/O设备)都连接在一组总线上。所有的信息传送都要通过这组总线,同时只能有一个部件向总线上发送信息,导致总线成为系统的瓶颈。
因此,发展出来了多总线结构,其基本思想均是将速度相近的设备挂接在同一组总线上,总线之间通过总线控制器相连。例如CPU和Cache之间、I/O设备之间等。

62.波特率和比特率
波特率:单位时间内传送的二进制数据数据的位数,单位bps
比特率:单位时间内传送的有效的二进制位数。

63.IO设备的特性
异步性:CPU与外部设备速度相差大,不能用公共的时钟同步等待慢速外部设备,二者必须异步方式进行数据交换(中断完成)
实时性:慢速和高速设备准备好数据后CPU都应及时处理
独立性:不同外部设备发送和接收信息的方式不同,数据格式和命令参数也不同。为了简化CPU与外部设备连接和控制的复杂性,硬件上各外部设备应采用标准总线接口与CPU连接,软件上不同设备也应该用相同的访问调用接口,使输入输出与具体的设备类型无关

64.IO接口的功能
设备寻址:接收总线的地址信息,通过译码电路,选择对应外部设备的寄存器或存储器
数据交互:实现外部设备、主存与CPU之间的数据交换
设备控制:接口存储和识别CPU传送的命令,并将命令传送到外部设备
状态检测:反应外部设备的工作状态,以备CPU查询
数据缓冲:匹配CPU与外部设备的速度差距,如设置数据缓冲寄存器/采用先进先出缓冲区
格式转换:实现数据格式转换或逻辑电平信号转换

65.I/O系统的发展
I/O系统的发展实际上是逐步将CPU从繁重的I/O工作中解放出来的过程;

66.I/O设备编址
统一编址/内存映射编址:外部设备地址和内存地址统一编址,二者在逻辑上处于同一个地址空间,通过不同地址区域区分访问内存还是外部设备。不需要设置专用的I/O指令,采用访存指令访问外部设备,具体访问什么设备取决于地址,但占用主存空间。
独立编址/端口映射编址:I/O地址空间与主存地址空间相互独立,和主存地址分开编址,此时I/O地址又称I/O端口。不同设备中不同寄存器和存储器都有唯一的端口地址,需用特殊的I/O指令访问外部设备。

67.数据传输控制方式
程序控制方式:输入输出依靠CPU执行程序实现,当CPU与设备进行数据交换时,先设置接口命令寄存器启动设备,设备准备中,CPU读取接口的状态寄存器查询设备是否准备就绪。接口设计简单,但CPU与外设串行工作,CPU花费时间进行查询等待,系统效率低
程序中断控制方式:CPU启动外部设备后不再查询外部设备状态,而是将当前进程放入等待队列并转去执行其他进程,外设准备好后主动向CPU发送中断请求。CPU与外设可并行工作,CPU利用率提高,但每传送一次数据就要一次中断,中断存在现场保护、恢复的辅助开销,若每次中断只传送一个字节,辅助开销将远大于实际传输数据的CPU开销,传输效率低。可采用更大数据块为单位传输降低中断开销影响
直接存储器访问方式:前两种方式需要CPU执行程序,将IO接口数据送入CPU寄存器,由寄存器送入内存。本方式由硬件/DMA控制器/DMAC临时代替CPU控制总线,控制设备和内存之间直接的数据交换,信息传送不再经过寄存器中转。CPU与外设能并行工作,有效消除了数据实际传输过程中CPU寄存器中转开销,提高了传输速率和CPU利用率
通道方式:由通道分担CPU的IO管理,能有效提高系统效率。拥有独立的通道指令系统,执行通道程序完成CPU指定的IO任务,从而实现外设的同一管理和DMA操作
外围处理机方式PPU:PPU基本上独立于CPU工作,结构更接近一般处理机。可以实现IO处理器功能,还可以完成码制变换、格式处理和数据块检错纠错等操作

68.程序查询的基本工作原理
cpu不断去查询I/O设备状态,导致CPU和I/O设备串行工作
忙等待:独占式查询。程序发出设备命令和参数后,CPU不停的反复查询设备状态直至设备就绪,期间CPU不能执行其他任务。CPU浪费大量时间进行轮询操作,在单任务操作系统中可采用,或是超高速设备中设备响应快
定时轮询:CPU启动设备后启动一个定时中断,挂起该进程并放入等待队列,调度其他进程执行。有效避免CPU轮询等待时间的浪费,但中断服务也需要占用一定CPU时间。适用于外设不支持中断的多任务操作系统

69.什么是中断?
计算机在执行程序过程中,当出现异常清空或特殊请求时,计算机停止现行程序的运行,转去处理这些异常清空或特殊请求,处理结束后,再返回现行程序的间断处,继续执行原程序,即为中断。

70.中断的作用
提升并行性:设备准备阶段CPU可由操作系统调度执行其他任务
程序调试:方便在程序中设置断点来观察程序执行的中间结果
故障处理:方便及时处理各种随机出现的软硬件故障与异常
实时处理:计算机在人机对话等应用中具有很强的实时性,中断技术主动告知特性能确保数据被及时处理
人机交互:键盘鼠标等通过中断技术实现人机对话,中断技术是多任务操作技术的基础
实现多任务:进程时间片轮转借助定时中断技术实现中断
多处理器交互:通过中断控制方式实现多处理器之间的信息交换和任务切换

71.单重中断和多重中断
单重中断:不允许中断现行的中断服务程序
多重中断:允许级别更高的中断源中断现行的中断服务程序,也称为中断嵌套

72.中断优先级和中断屏蔽
中断优先级包括响应优先级和处理优先级
响应优先级:CPU对各设备中断请求进行响应的先后次序,在硬件线路上固定,不便于变动
处理优先级:中断嵌套的实际优先级处理次序,通常可以用中断屏蔽技术动态调整。
若不使用中断屏蔽技术,处理优先级和响应优先级相同
中断屏蔽:只对CPU运行中断服务程序时的中断嵌套有用,不能改变CPU运行主程序时的中断响应优先级

73.中断响应条件
1.对应中断请求未被屏蔽
2.没有更高优先级的其他中断请求
3.若CPU正在执行中断服务,则中断请求应符合嵌套条件
4.中断使能位处于使能状态,开中断状态,内部异常和不可屏蔽中断不受此限制
5.CPU已执行完一条指令的最后一个状态周期(中断时机)

74.中断服务程序的基本流程 P344
1)保护现场
2)中断服务
3)恢复现场
4)中断返回

75.CPU响应中断的时机
当前指令执行完毕后,cpu发出中断查询信号,也就是说,中断响应一定是在每条指令执行结束之后进行的,不可能在指令执行过程中响应中断。

76.DMA
DMA:直接内存访问。在主存和I/O设备之间建立独立的总线连接。

77.DMA接口与CPU共享主存,可能会出现内存争用问题,常用方式有
停止CPU访问主存:DMA访存优先级高,DMAC向CPU发出接管系统总线请求,要求CPU放弃总线控制权。控制简单,但CPU可能长期不能访存,由于外设与内存速度差异大,内存的工作周期可能被浪费,内存效率低
DMAC和CPU交替访存:将内存的存储周期分为两段,一段供DMAC访存,一段供CPU访存。时间上不会发生冲突,可使DMA传送方式和CPU同时发挥最高效率。不需要总线使用权的申请建立交还过程,总线使用权是分时控制的,但会增加内存存储周期,且由于CPU及外设速度与内存不匹配,可能有多个供DMA使用的内存时间片被浪费
周期挪用/窃取:DMAC需要访存时CPU才暂停一个存储周期供其访问主存,一个数据传送结束后,总线控制权被交还给CPU。可能发生在指令周期下任何一个机器周期的结束时刻。若挪用周期期间CPU不访存则对CPU执行没有性能影响;若挪用期间CPU访存,形成访存冲突,DMAC优先访问内存(成为DMA传送方式的主要方法 )

78.DMA工作过程包括哪三部分
1)预处理
2)数据传输
2)后处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值