计算机基础知识1
计算机硬件基本组成
- 计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。
- 运算器、控制器等部件被集成在一起统称为中央处理单元(Central ProcessingUnit,CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。
- 存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。
- 输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
【中央处理单元CPU:】
CPU是计算机的核心部件,主要获取程序指令,并对指令进行译码,然后加以执行。
CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。
【CPU的功能】:
(1)程序控制:CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能。
(2)操作控制:一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
(3)时间控制:CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
(4)数据处理:CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。
此外,CPU还需要对系统内部和外部的中断或异常做出响应,进行相应的处理。
【CPU的组成】:
CPU主要由运算器、控制器、寄存器组和内部总线等部件组成
一、运算器(数据加工、算术运算、逻辑运算)
运算器:执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。
- 算术逻辑单元ALU(实现对数据的算术和逻辑运算)
- 累加寄存器AC(运算结果或源操作数的存放区)
- 数据缓冲寄存器DR(暂时存放内存的指令或数据)
- 状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出标志等)组成。
二、控制器(保证指令执行、处理异常事件)
控制器: 控制整个CPU的工作,最为重要。
- 指令寄存器IR(暂存CPU执行指令)
- 程序计数器PC(存放指令执行地址)
- 地址寄存器AR(保存当前CPU所访问的内存地址)
- 指令译码器ID(分析指令操作码)等组成。
三、寄存器组(保存程序的中间结果)
四、总线
【例题】
CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在()中。
A.程序计数器(PC) B.累加器(AC) C.指令寄存器(IR) D.地址寄存器(AR)
答案:B
执行CPU指令时,在一个指令周期的过程中,首先需从内存读取要执行的指令,此时先要将指令的地址即()的内容送到地址总线上。
A.指令寄存器(IR) B.通用寄存器(GR) C.程序计数器(PC) D.状态寄存器(PSW)
答案:C
在CPU中,( )不仅要保证指令的正确执行,还要能够处理异常事件。
A.运算器
B.控制器
C.寄存器
D.内部总线
答案:B
进制转换
二进制转十进制
无符号的二进制整数:
按权相加法从右往左依次用二进制位上的位数乘以2的n次幂的和(n大于等于0)。
110=>6
带符号的二进制整数:
除去最高位的符号位(1为负数,0为正数),其余与无符号二进制转化为十进制方法相同。
1101->-5 、0111->+7
小数二进制数:
从小数点后第1位上的二进制数字乘以2的负一次方
加上第2位上的二进制数字乘以2的负二次方,
以此类推第n位上的二进制数字乘以2的负n次方。
101.011->5.375(02^-1+12^-2+1*2^-3=0.375)
【例题】
将二进制1100.101转化为十进制,结果是( )。
A. 12.625
B. 12.75
C.24.625
D.24.75
答案:A
十进制转二进制
转化整数:
将整数部分除2
取余当商不为0时
将商作为被除数
继续除2取余直至商为0
将余数按从下到上的顺序记录
转化小数:
将小数部分乘2取整
如果结果仍有小数就继续乘2
直到小数部分为0
或者已经达到了精度要求
将取整的结果按从上到下的顺序记录
【例题】
将十进制11.75转化为二进制,结果是( )。
A. 1011.11
B. 1010.11
C. 1010.01
D. 1011.01
答案:A
数据的表示
原码
最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。
数值0的原码表示有两种形式:[+0]原=0 0000000,[-0]原=1 0000000
以带符号位的四位二进制数为例:1010,最高位为1表示这是一个负数 其它三位010,即02^2 +12^1 +0*2^0 =2,所以1010表示十进制数-2。
【例题】
若机器字长为8,则+127和-0.5分别表示为( )。
A. 0 1111111,0 1000101
B. 0 1111111,1 1000000
C. 1 1111111,0 1000000
D. 1 0000000,1 1000101
答案:B
反码
原码最大的问题就在于一个数加上它的相反数不等于0
0001+1001=1010,1+(-1) =-2
正数的反码还是等于原码;
负数的反码就是它的原码除符号位外,其它位按位取反。
数值0的反码表示有两种形式:[+0]反=0 0000000,[-0]反=1 1111111
【例题】
若机器字长为8,则 +45 和-45 的反码分为表示为()
A. 1 0101101, 0 1000101
B. 1 0101101,0 1000000
C. 0 0101101,1 0101101
D. 0 0101101,1 1010010
答案:D
补码
正数的补码等于它的原码
负数的补码等于反码+1 或 等于 (2机器字长-|负数|) 原码
数值0有唯一的编码:[+0]补=0 0000000,[-0]补=0 0000000
例:若机器字长为4,计算6-2
计算机中均采用补码进行加减运算
【例题】
如果“2X”的补码是“90H”,那么X的真值是( )(2016上半年试题)
A. 56
B. -56
C.72
D. -72
答案:B
计算机系统中采用补码表示有符号的数值,( )。(2022下半年试题)
A.可以保持加法和减法运算过程与手工运算方式一致
B.可以提高运算过程和结果的精准程度
C.可以提高加法和减法运算的速度
D.可以将减法运算转换为加法运算从而简化运算器的设计
答案:D
移码
移码:补码的符号位取反
● 移码的主要用途是表示浮点数的指数(阶码)
浮点数
N=尾数×基数阶码(指数)
浮点数的表示格式:
● 尾数:用补码表示,位数决定数的有效精度,位数越多精度越高
● 阶码:用移码表示,位数决定数的表示范围,位数越多范围越大
● 对阶时,小数向大数看齐
● 对阶是通过较小数的尾数右移实现的
【例题】
浮点数的表示分为阶码和尾数两部分。两个浮点数相加时,需要先对阶,即( )(n为阶差的绝对 值)。(2018上半年试题)
A.将大阶向小阶对齐,同时将尾数左移n位
B.将大阶向小阶对齐,同时将尾数右移n位
C.将小阶向大阶对齐,同时将尾数左移n位
D.将小阶向大阶对齐,同时将尾数右移n位
答案:C D,注意尾数右移
对于长度相同但格式不同的两种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其它规定都相同,则二者可以表示数值的范围和精度情况为( )。(2022下半年试题)
A.二者可表示的数的范围和精度相同
B.前者所表示的数的范围更大且精度更高
C.前者所表示的数的范围更大但精度更低
D.前者所表示的数的范围更小但精度更高
答案:C
校验码
为什么要用校验码?
突发错误(BurstError):两个或更多个数据位在码流中出现错误。
为什么可能会出现这些位错误呢?
对于电子系统通信,它涉及到物理层、链路层、通信介质等,其中物理层主要将原始二进制数据利用一定的编解码原理对其进行调制,然后经由发送电路将调制信号输送至传输介质,接收端利用接收电路进行接收并解调,将信息还原成二进制码流。在这个过程中介质有可能被干扰,接收电路、发送电路、调制电路、解调电路都可能由于某些干扰原因导致工作失效而出现误码。此时,如果没有一个很好的机制去确保数据的正确性,比如一个飞控系统中某些控制命令、车辆系统中CAN报文数据,系统直接使用这些错误数据去控制被控对象(比如电机、发动机等),严重的时候就会造成难以估量的生命财产灾难。所以,对于数据完整性检测的重要性不言而喻。
奇偶校验
奇偶校验码的编码方法是:
由若千位有效信息的头部或者尾部,再加上一个二进制位(校验位)组成校验码。这一位的校验码可以放到前面也可以放到后面,通常后面的多。
校验码相关概念:
- 码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A: 00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错。
- 奇偶校验码: 1. 无论数据位多少位,校验位只有一位 2. 数据位和校验位一共所含的1个数为奇数,称为奇校验 3. 数据位和校验位一共所含的1个数为偶数,称为偶校验
奇校验或偶校验如何计算?
【奇偶校验码错误检测能力】:只能检测出奇数个错误。偶数个错误也称漏检
奇校验正确码流 11000001
- 错1位11000011 变成了偶数个1,能检测出错误
- 错2位 11000010 变成了奇数个1,检测不出错误
- 错3位 11001010 变成了偶数个1,能检测出错误
偶校验 正确码流 01000001
- 错1位 01000011 变成了奇数个1,能检测出错误
- 错2位 01000010 变成了偶数个1,检测不出错误
- 错3位 01001010 变成了奇数个1,能检测出错误
那么使用中是选择奇校验还是偶校验呢? 其实都有应用。 奇校验一个重要的特征是产生不了全0代码,所以在实际操作过程中选择的时候要考虑到这一点。
【例题】
给出编码1001101的奇校验码和偶校验码( )。
A 10011011, 10011010
B 10011011, 10011011
C 10011010, 10011010
D 10011010, 10011010
答案:A
循环冗余校验CRC
【模 2 除法:】
模 2 除法计算过程:
1.被除数首位是几商就上几;
2.异或运算(相同为0,不同为1);
3.异或后首位一定是0,舍弃掉这个0首位;
4.补末位(落数),再上商。
例:1011 0010 000 模二除 11001
循环冗余校验:
- CRC只能检错,不能纠错,但是检错能力很强
- 收发双方先约定好一个生成多项式G(x),算法要求生成多项式必须包含最低次项。
- 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码)将其添加到待传输数据的后面一起传输;数据+冗余码
- 接收方通过生成多项式来计算收到的数据是否产生了误码;
假设原始信息有m位,则对应多项式M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方接收到带校验位的信息,然后用G(x)整除。余数为0,则没有错误;反之则发生错误。
计算过程:
例:假设原始信息串为10110,CRC的生成多项式为G(x)=x^4+x+1,求CRC校验码。
(1)在原始信息位后面添0,假设生成多项式的阶为r,则在原始信息位后添加r个0,本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000,作为被除数。
(2)由多项式得到除数,多项中x的幂指数存在的位置1,不存在的位置0。本题中,x的幂指数为0,1,4的变量都存在,而幂指数为2,3的不存在,因此得到串10011。
(3)生成CRC校验码,将前两步得出的被除数和除数进行模2除法运算(即不进位也不借位的除法运算)。除法过程如下图所示。
得到余数1111。
注意:余数不足r,则余数左边用若干个0补齐。如求得余数为11,r=4,则补两个0得到0011。
(4)生成最终发送信息串,将余数添加到原始信息后。上例中,原始信息为10110,添加余数1111后,结果为101101111。发送方将此数据发送给接收方。
(5)接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接收了带校验和的帧后,用多项式G(x)来除。余数为0,则表示信息无错;否则要求发送方进行重传。
注意:收发信息双方需使用相同的生成多项式。
【例题】
待发送的信息为101001,生成多项式为G(x)= x^3+ x^2 + 1,计算编码后的信息。
接收到的信息为101101001,生成多项式为G(x)=x^3 + x ^2+ 1,判断传输是否有误码。
没有整除,有误
循环冗余校验码(Cyclic Redundancy Check,CRC)是数据通信领域中最常用的一种差错校验码,该校验方法中,使用多项式除法(模2除法)运算后的余数为校验字段。若数据信息为n位,则将其左移k位后,被长度为k+1位的生成多项式相除,所得的k位余数即构成k个校验位,构成n+k位编码。若数据信息为1100,生成多项式为X^3+X+1(即1011),则CRC编码是()。
A.1100010 B.1011010 C.1100011 D.1011110
解析 CRC循环校验码的编码流程为: 1、在原始信息位后加k个000,即1100000。 2、将1100000与生成多项式1011做模2除法,得到余数为010。 3、将原始信息位与余数连接起来得到:1100010。
答案:A
在( )校验方法中,采用模2运算来构造校验位。(2019上半年试题)
A.水平奇偶
B.垂直奇偶
C.海明码
D.循环冗余
答案:D
海明校验
海明校验的基本思想是在数据位之间插入一些冗余位,这些冗余位是通过特定的公式计算得到的,以便在数据传输过程中进行错误检测和纠正。如果数据位在传输过程中发生改变(例如由于噪声或其他干扰),接收方可以使用冗余位来确定哪些数据位可能已经发生改变,并进行纠正。
海明校验的一个关键特性是它可以检测并纠正单个位错误,同时能检测(但不能纠正)双位错误。这种特性使得海明校验在许多数据通信和存储应用中都非常有用
设数据位是n位,校验位是k位,则n和k必须满足以下关系:
2^k - 1>= n + k
海明码的编码规则如下:
【例题】
待传送的信息为1010,若采用海明校验,则奇校验规则下的海明码是( )。
A 0110010
B 0110011
C 1110010
D 1110011
答案:A
存储系统
存储器的层次结构
计算机采用分级存储体系的主要目的是为了解决存储容量 、成本和速度之间的矛盾问题。
在程序的执行过程中,Cache与主存的地址映射是由( )完成的。(2017下半年试题)
A.操作系统
B.程序员调度
C.硬件自动
D.用户软件
答案:C
高速缓存Cache
高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍, 由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。
- Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换 。
- 地址映射: 在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中 读/写信息。这就需要将主存地址转换为Cache存储器地址, 这种地址的转换称为地址映射, 由硬件自动完成映射, 分为下列三种方法:直接映射、全相连映射、组相连映射。
设置多级高速缓存Cache以提高命中率(访问主存的效率),使用Cache改善系统性能的依据是程序的局部性原理,即在CPU运行时, 所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:
时间局部性原理: 如果一个数据项正在被访问, 那么在近期它很可能会被再次访问, 即在相邻的时间里会访问同一个数据项 。如循环。
空间局部性原理: 在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的, 即相邻的空间地址会被连续访问。如顺序执行。
【例题】
在CPU内外常设置多级高速缓存Cache其主要目的是( )。(2019下半年试题)
A.扩大主存的存储容量
B.提高CPU访问主存数据或指令的效率
C.扩大存储系统的容量
D.提高CPU访问外存储器的速度
答案:B
Cache的地址映像方法
一、直接相连映射:将Cache存储器等分成块,主存也等分成块并编号 。主存中的块与Cache中的块的对应关系是固定的, 也即二者块号相同才能命中。硬件电路设计与地址变换比较简单,但是冲突率较高,灵活性差,容易造成资源浪费。
二、全相联映射:主存与 Cache 均分成大小相同的块,允许主存的任一块可以调入 Cache 存储器的任何一个块的空间中。 冲突率较低、主存的块调入Cache 的位置不受限制,十分灵活,但是电路难于设计和实现,只适用于小容量的cache;无法从主存块号中直接获得Cache的块号,变换比较复杂,在最坏的情况下,需要遍历整个cache,速度比较慢。只有当Cache满了才会发生块冲突, 是最不容易发生块冲突的映像方式。
三、组相连映射: 前面两种方式的结合, 将 Cache存储器先分块再分组, 主存也同样先分块再分组, 组间采用直接映像, 即主存中组号与Cache中组号相同的组才能命中, 但是组内全相联映像, 也即组号相同的两个组内的所有块可以任意调换 。(主存中每一个块可以存到Cache特点一组的任意一行中)
【练习】
Cache的地址映像方式中,发生块冲突次数最小的是( )。(2015年上半年)
A.全相联映像
B.组相联映像
C.直接映像
D.无法确定
答案:A
Cache替换算法
Cache替换算法也叫页面置换或者页面淘汰算法
替换算法的目标就是使Cache获得尽可能高的命中率 。常用算法有如下几种 。
(1) 随机替换算法RAND(Random) :就是用随机数发生器产生一个要替换的块号, 将该块替换出去 。
(2)先进先出算法FIFO(First in First out) :就是将最先进入Cache的信息块替换出去 。
(3)近期最少使用算法LRU(Least Recently Used) :这种方法是将近期最少使用的Cache中的信息块替换出去 。(最久未使用)
(4)最不频繁使用算法LFU(Least Frequently Used): 使用计数器记录访问页面的次数,淘汰使用次数最少的。
(5)优化替换算法:这种方法必须先执行一次程序, 统计Cache的替换情况 。有了这样的先验信息, 在第二次执行该程序时便可以用最有效的方式来替换 。
Cache的读写过程:
- 写直达:同时写Cache与内存
- 写回:只写Cache,淘汰页面时,写回内存
- 标记法:只写入内存,并将Cache标志位清零,若用到此数据,只需要再次调取
命中率及平均时间
Cache有一个命中率的概念, 即当CPU所访问的数据在Cache中时,命中,直接从Cache中读取数据,设读取一次Cache时间为1ns,若 CPU访问的数据不在Cache中,则需要从内存中读取, 设读取一次内存的时间为1000ns,若在CPU多次读取数据过程中,有90%命中Cache, 则CPU读取一次的平均时间为 ( 90%* 1+10%* 1000)ns(学会计算)
Cache容量越高,命中率越高。
【例题】
Cache的替换算法中,( )算法计数器位数多,实现困难。
A.FIFO
B. LFU
C. LRU
D. RAND
答案:B
按照Cache地址映像的块冲突概率,从高到低排列的是() 。
A.全相联映像→直接映像→组相联映像
B.直接映像→组相联映像→全相联映像
C.组相联映像→全相联映像→直接映像
D.直接映像→全相联映像→组相联映像
答案: B
以下关于Cache与主存间地址映射的叙述中, 正确的是() 。
A.操作系统负责管理Cache与主存之间的地址映射
B.程序员需要通过编程来处理Cache与主存之间的地址映射
C.应用软件对Cache与主存之间的地址映射进行调度
D.由硬件自动完成Cache与主存之间的地址映射
答案: D
磁盘(外存储器)
磁盘结构和参数:
磁盘有正反两个盘面, 每个盘面有多个同心圆, 每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。
磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转, 旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间和等待时间 。公式为: 存取时间 = 寻道时间+等待时间(平均定位时间 +转动延迟) 。
注意: 寻道时间是指磁头移动到磁道所需的时间; 等待时间为等待读写的扇区转到存储存储系统和缓存磁头下方所用的时间 。
【例题】
在磁盘调度管理中,通常( )(2019下半年试题)
A.先进行旋转调度,再进行移臂调度
B.在访问不同柱面的信息时,只需要进行旋转调度
C.先进行移臂调度,再进行旋转调度
D.在访问同一磁道的信息时,只需要进行移臂调度
答案:C
磁盘调度算法:
磁盘数据的读取时间分为寻道时间+旋转时间, 也即先找到对应的磁道, 而后再旋转到对应的扇区才能读取数据,其中寻道时间耗时最长,需要重点调度,有如下调度算法:
- 先来先服务FCFS(First Come First Served):根据进程请求访问磁盘的先后顺序进行调度。
- 最短寻道时间优先SSTF(Shortest Seek Time First):请求访问的磁道当前磁道最近的进程优先调度,使得每次的寻道时间最短。会产生“饥饿 ”现象, 即远处进程可能永远无法访问。
- 扫描算法SCAN: 又称“ 电梯算法 ” ,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近的请求访问的磁道, 并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似。
- 单向扫描调度算法CSCAN:与SCAN不同的是,其只做单向移动, 即只能从里向外或者从外向里 。
【例题】
假设某磁盘的每个磁道划分成11个物理块, 每块存放1个逻辑记录 。逻辑记录RO, R1, R9, R10存放在同一个磁道上, 记录的存放顺序如下表所示:
如果磁盘的旋转周期为33ms,磁头当前处在RO的开始处 。若系统使用单缓冲区顺序处理这些记录, 每个记录处理时间为3ms, 则处理这11个记录的最长时间为() ; 若对信息存储进行优化分布后, 处理11个记录的最少时间为()
A.33ms B.336ms C.366ms D.376ms
A.33ms B.66ms C.86ms D.93ms
第二种情况优化:
答案:C B,6+3610=366,611=66
在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法,那么系统的响应序列应为() 。
A.②⑧③④⑤①⑦⑥⑨ B.②③⑧④⑥⑨①⑤⑦ C.①②③④⑤⑥⑦⑧⑨ D.②⑧③⑤⑦①④⑥⑨
答案: D
与21最近的是23,根据扇区号排序283,17最近所以是5
输入输出技术
计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种:
(1)内存与接口地址独立编址方法:
内存地址和接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的。因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。
(2)内存与接口地址统一编址方法:
内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间。优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。
CPU控制主存与外设直接交互的过程,这个过程中外设的速度比较慢,主存的速度比较快,这就需要一定的平衡。
计算机和外设间的数据交互方式(主要的控制方式)有如下几种:
一、直接程序控制(查询)
- 分为无条件传送和程序查询方式(CPU主动查询外设是否完成数据传输)
- 降低了CPU的效率
- 对外部的突发事件无法做出实时响应
二、程序中断方式
- 利用中断方式完成数据的输入/输出(外设完成数据传输后,向CPU发送中断)
- CPU接到中断请求信号后,保存正在执行程序的现场
- 与程序控制方式相比,因为CPU无须等待而提高了效率
三、DMA方式(直接主存存取)
- CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成, 在主存和外设之间建立直接的数据通路 ,效率很高。
- 在DMA传送过程中无须CPU的干预
- DMA传送数据时要占用系统总线,此时,CPU不能使用总线
- 在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时。
四、输入/输出处理机(IOP)
- 分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送
- 大大提高了CPU的工作效率,这种效率的提高是以增加更多的硬件为代价的
【例题】
DMA控制方式是在( )之间直接建立数据通路进行数据的交换处理。(2019年上半年试题软设)
A.CPU与主存(总线)
B.CPU与外设(程序直接控制方式中)
C.主存与外设
D.外设与外设
答案:C
计算机运行过程中,CPU需要与外设进行数据交换。采用( )控制技术时,CPU与外设可并行工作。 (2017年下半年)
A.程序查询方式和中断方式
B.中断方式和DMA方式
C.程序查询方式和DMA方式
D.程序查询方式、中断方式和DMA方式
答案:B
异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。以下关于中断和异常的叙述中,正确的是()。(2021年上半年)
A.“DMA传送结束”、“除运算时除数为0” 都为中断
B.“DMA传送结束”为中断、“除运算时除数为0”为异常
C.“DMA传送结束”为异常、“除运算时除数为0”为中断
D.“DMA传送结束”、“除运算时除数为0”都为异常
答案:B
计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和DMA方式等。当采用()方式时,不需要CPU执行程序指令来传送数据。
A.中断 B.程序查询 C.无条件传送 D.DMA
答案:D