7.3 I/O方式 (答案见原书 P315)
7.3 I/O方式 (答案见原书 P315)
01. 设置中断排队判优逻辑的目的是( B )。
题目原文
- 设置中断排队判优逻辑的目的是( )。
A. 产生中断源编码
B. 使同时提出的请求中的优先级最高者得到及时响应
C. 使CPU能方便地转入中断服务子程序
D. 提高中断响应速度
正确答案:B
题目解析
- 考点分析: 本题考察中断系统中“中断判优”这一环节的核心目的。
- 正确选项分析 (B. 使同时提出的请求中的优先级最高者得到及时响应):
- 在计算机系统中,可能会有多个I/O设备同时向CPU发出中断请求。
- 中断排队判优逻辑(通常由硬件实现,如中断控制器内的优先级编码器)的作用就是解决这个冲突。它会根据预先设定的优先级规则(如设备重要性、响应紧急程度等),从所有同时到达的中断请求中,选择出优先级最高的那一个,并只将这一个请求送给CPU去响应。
- 这样就保证了最重要的或最紧急的事件能被优先处理。
- 错误选项分析:
- A. 产生中断源编码:这是中断判优后的一个步骤(中断识别),但不是判优的目的。判优是为了“选择”,编码是为了“识别”。
- C. 方便转入服务程序:这是中断向量机制的功能。
- D. 提高中断响应速度:判优逻辑本身会消耗一点时间,其目的不是提高速度,而是保证响应的正确性和有序性。
02. 下列关于中断的说法中,错误的是( C )。
题目原文
02. 下列关于中断的说法中,错误的是( )。
A. 中断服务程序一般是操作系统模块
B. 中断向量方法可提高中断源的识别速度
C. 中断向量地址是中断服务程序的入口地址
D. 重叠处理中断的现象称为中断嵌套
正确答案:C
题目解析
- 考点分析: 本题考察与中断相关的基本概念,特别是“中断向量”的精确定义。
- 错误选项分析 (C. 中断向量地址是中断服务程序的入口地址):
- 这个说法是错误的。
- 中断向量:通常是指中断类型号,是一个指向中断向量表的索引。
- 中断向量表:是内存中一个存放中断处理程序信息的表。
- 中断向量地址:是指中断向量在中断向量表中的存放地址。
- 这个地址对应的存储单元里存放的内容,才是中断服务程序的入口地址。
- 简单来说:中断向量地址 -> 存放中断服务程序入口地址的内存单元 -> 中断服务程序入口地址。两者是间接关系,不是直接相等。
- 正确选项分析:
- A: 正确,中断服务程序是操作系统内核的一部分,用于处理硬件事件。
- B: 正确,通过中断向量,CPU可以直接计算出向量地址并找到服务程序入口,无需逐个查询,大大提高了识别和定位中断源的速度。
- D: 正确,当一个中断服务程序正在执行时,如果来了一个更高优先级的中断,CPU会暂停当前服务程序,转去处理新的中断,这就形成了中断嵌套。
03. 当有中断源发出请求时,CPU可执行相应的中断服务程序,可以提出中断(包括内中断和外中断)的有( D )。
I. 外部事件 II. Cache缺失 III. 虚拟存储器失效
IV. 浮点数运算下溢 V. 浮点数运算上溢
正确答案:D
题目解析
- 考点分析: 本题要求从一系列事件中,识别出哪些属于中断或异常的范畴。
- 逐项分析:
- I. 外部事件: 如I/O完成、定时器到时,是典型的外部中断。
- II. Cache缺失: 由纯硬件处理,对CPU和操作系统是透明的,不产生中断或异常。
- III. 虚拟存储器失效(缺页): 是一种内部异常(故障),需要操作系统介入处理。
- IV. 浮点数运算下溢: 结果太小,接近于0。在一些体系结构中,这可能被视为一种可屏蔽的异常,但通常的处理方式是直接将结果置为0,不一定会触发异常。
- V. 浮点数运算上溢: 结果超出了能表示的最大范围,这是一个明确的错误,会触发内部异常(故障)。
- 组合判断: I(外中断)、III(内中断-故障)、V(内中断-故障)都属于可以提出中断或异常的事件。II和IV通常不触发。因此,正确组合是I、III、V。
04. 下列关于程序中断方式和DMA方式的叙述中,错误的是( C )。
I. DMA的优先级比程序中断的优先级要高
II. 程序中断方式需要保护现场,DMA方式在传送过程中不需要保护现场
III. 程序中断方式的中断请求是为了报告CPU数据的传输结束,而DMA方式的中断请求完全是为了传送数据
正确答案:C
题目解析
- 考点分析: 本题对比程序中断和DMA两种I/O方式的特点。
- 错误选项分析 (III):
- 这个说法完全颠倒了两者中断请求的目的。
- 程序中断方式: 通常,当一个数据准备好可以开始传送时(如键盘缓冲区有数据了),设备会发出中断请求,请求CPU来取走数据。中断的目的是启动数据传送。
- DMA方式: DMA控制器负责整个数据块的传送。它只在整个数据块全部传送结束之后,才会向CPU发出一次中断请求,目的是为了报告CPU传输任务已完成。
- 因此,叙述III是错误的。
- 正确选项分析:
- I: 正确。DMA请求通常是请求总线使用权,其优先级高于一般的中断请求,因为DMA传输若被延迟可能导致数据丢失(如高速磁盘)。
- II: 正确。程序中断需要CPU切换上下文,必须保存和恢复现场。DMA方式下,数据传送由DMAC完成,CPU可以继续执行其他程序,不涉及上下文切换,因此传送过程中无需保护现场。
- 组合判断: 只有III是错误的。
05. 下列关于程序中断方式和DMA方式的说法中,错误的是( B )。
I. 程序中断过程是由硬件和中断服务程序共同完成的
II. 在每条指令的执行过程中,每个总线周期都要检查一次有无中断请求
III. 检测有无DMA请求,一般安排在一条指令执行过程的末尾
IV. 中断服务程序的最后指令是一条转移指令
正确答案:B
题目解析
- 考点分析: 本题继续深入对比中断和DMA的细节。
- 错误选项分析 (II 和 IV):
- II: 错误。CPU检查中断请求的时间点是固定的,在每条指令执行结束之后,取下一条指令之前,而不是在每个总线周期。
- IV: 错误。中断服务程序的最后一条指令是一条特殊的中断返回指令(如
IRET
),它不仅要恢复PC的值(实现跳转),还要恢复程序状态字(PSW)的内容(如恢复中断标志位),这与普通的转移指令(如JMP
)功能不同。
- 正确选项分析:
- I: 正确。中断响应由硬件(中断隐指令)完成,中断处理由软件(中断服务程序)完成。
- III: 错误。DMA请求是对总线使用权的请求,可以在一个指令周期的任何总线空闲时刻(周期窃取)发生,不一定在指令末尾。在指令末尾检查的是中断请求。
- 组合判断: II、III、IV都是错误的。 【答案校对】 您提供的答案是B,通常选项B会包含II和IV。如果选项是
A. I,III B.II,III,IV C.II,IV D.I
,那么B是符合分析的。此处假设题目选项允许选择II,III,IV。
06. 能产生DMA请求的总体部件是( B )。
I. 高速外设 II. 需要与主机批量交换数据的外设
III. 具有DMA接口的设备
正确答案:B
题目解析
- 考点分析: 本题考察哪些设备适合或能够使用DMA方式。
- 逐项分析:
- I. 高速外设: 正确。如磁盘、高速网络接口,它们的数据率很高,如果用中断方式会让CPU疲于奔命,因此非常适合用DMA。
- II. 需要与主机批量交换数据的外设: 正确。DMA的优势就在于成块数据的传输。对于单字节传输的设备(如键盘),使用DMA反而得不偿失。
- III. 具有DMA接口的设备: 正确。设备要能使用DMA方式,其接口(控制器)必须支持DMA协议,能与DMA控制器(DMAC)配合工作。
- 组合判断: I、II、III 都描述了能产生DMA请求的设备或其必要条件。
07. 在具有中断向量表的计算机中,中断向量地址是( C )。
题目原文
07. 在具有中断向量表的计算机中,中断向量地址是( )。
A. 子程序入口地址
B. 中断服务程序入口的入口地址
C. 中断服务程序入口地址的地址
D. 中断程序断点
正确答案:C
题目解析
- 考点分析: 本题与第2题考点完全相同,再次考察“中断向量地址”的精确定义。
- 正确选项分析 (C. 中断服务程序入口地址的地址):
- 重申:CPU通过中断类型号(向量)计算得到一个地址A,这个地址A就是中断向量在中断向量表中的地址。
- 然后CPU去访问内存地址A,从该单元中取出的内容B,才是中断服务程序的入口地址。
- 所以,中断向量地址A是“中断服务程序入口地址B”的存放地址。
- 错误选项分析:
- A, B, D: 都是不准确的描述。
08. 中断响应是在( C )。
题目原文
08. 中断响应是在( )。
A. 一条指令执行开始
B. 一条指令执行中间
C. 一条指令执行完毕
D. 一条指令执行的任何时刻
正确答案:C
题目解析
- 考点分析: 本题考察CPU响应(外部)中断的精确时间点。
- 正确选项分析 (C. 一条指令执行完毕):
- 为了保证指令执行的原子性(即一条指令要么不执行,要么就完整执行完毕,不被中途打断),CPU硬件设计规定,只有在当前指令的执行周期结束、下一个取指周期开始之前,才会去检查外部中断请求线。
- 错误选项分析:
- A, B, D: 在指令执行过程中,CPU会屏蔽外部中断请求,以保证当前指令能顺利完成。
09. 在下列情况下,可能不发生中断请求的是( B )。
题目原文
09. 在下列情况下,可能不发生中断请求的是( )。
A. DMA操作结束
B. 一条指令执行完毕
C. 机器出现故障
D. 执行“软中断”指令
正确答案:B
题目解析
- 考点分析: 本题要求从几个事件中,找出那个不一定会触发中断的。
- 正确选项分析 (B. 一条指令执行完毕):
- “一条指令执行完毕”是CPU检查和响应中断的时间点,它本身不是一个产生中断请求的事件源。
- 在这个时间点,可能有外部设备发来了中断请求,也可能没有任何请求。所以它本身不必然导致中断发生。
- 错误选项分析:
- A. DMA操作结束: DMA控制器在完成数据块传输后,必然会向CPU发出一个中断请求,以通知CPU任务已完成。
- C. 机器出现故障: 如电源掉电、存储器校验错等,必然会触发一个高优先级的内部异常(中断)。
- D. 执行“软中断”指令: 软中断指令(陷阱指令)的定义就是主动地、确定地引发一次内部异常(中断),以请求操作系统服务。
10. 在配置有通道的计算机系统中,用户程序需要输入/输出时,引起的中断是( A )。
题目原文
10. 在配置有通道的计算机系统中,用户程序需要输入/输出时,引起的中断是( )。
A. 访管中断
B. I/O中断
C. 故障
D. 外中断
正确答案:A
题目解析
- 考点分析: 本题考察在有通道的系统中,用户程序如何发起I/O操作。
- 正确选项分析 (A. 访管中断):
- 即使在有通道的高级系统中,用户程序也不能直接控制硬件(包括通道)。
- 当用户程序需要进行I/O操作时,它必须通过执行一条系统调用指令(也称访管指令) 来请求操作系统的服务。
- 这条指令会引发一次访管中断(一种陷阱),使CPU进入内核态。然后,操作系统内核程序会接收用户的请求,并负责去启动通道、准备通道程序等。
- 错误选项分析:
- B. I/O中断:是在I/O操作完成后,由通道或设备发给CPU的中断,而不是在发起时。
- C, D: 不符合此场景。
11. 某计算机有4级中断,优先级从高到低为1->2->3->4。若将优先级顺序修改,改为1级中断的屏蔽字为1101,2级中断的屏蔽字为0100,3级中断的屏蔽字为0100,4级中断的屏蔽字为0101,则修改后的优先级顺序从高到低为( B )。
正确答案:B
题目解析
- 考点分析: 本题考察通过中断屏蔽字来确定中断优先级的方法。
- 背景知识: 中断屏蔽字中,某一位为’1’表示屏蔽对应级别的中断。一个中断源的优先级高于所有它能屏蔽的中断源。
- 分析过程:
- 1级 (屏蔽字 1101): 能屏蔽2级和4级。所以 1 > 2, 1 > 4。
- 2级 (屏蔽字 0100): 只能屏蔽自己,不能屏蔽其他。
- 3级 (屏蔽字 0100): 只能屏蔽自己,不能屏蔽其他。
- 4级 (屏蔽字 0101): 能屏蔽4级(自己)和2级。所以 4 > 2。
- 比较 2级 和 3级: 2级不能屏蔽3级,3级也不能屏蔽2级。在这种情况下,通常默认编号小的优先级高。所以 2 > 3。
- 组合优先级链:
- 从1级的屏蔽字我们知道 1 是老大之一。
- 从4级的屏蔽字我们知道 4 > 2。
- 从2、3级的关系我们知道 2 > 3。
- 结合起来:
1 > 4 > 2 > 3
。
- 结论: 修改后的优先级为 1 -> 4 -> 2 -> 3。
12. 下列不属于DMA控制的特点是( C )。
正确答案:C
题目解析
- 考点分析: 本题考察DMA方式的特点。
- 错误选项分析 (C. 响应中断请求):
- DMA控制器本身是不响应中断请求的。它是发出中断请求的设备。当DMA传输任务完成后,DMAC会向CPU发出一个中断请求。响应中断请求是CPU的工作。
- 正确选项分析:
- A. 传送数据块:正确,DMA专用于块数据传输。
- B. 传送开始和结束由CPU控制:正确,CPU负责初始化DMA(预处理)和处理DMA结束后的中断(后处理)。
- D. 数据传送由DMA控制器直接控制:正确,数据传送过程完全由DMAC接管,无需CPU干预。
13. 在中断响应周期中,( A )。
题目原文
13. 在中断响应周期中,( )。
A. 关中断,保护断点,发中断响应信号并形成向量地址
B. 开中断,保护断点,发中断响应信号并形成向量地址
C. 关中断,保护断点,发中断响应信号并向向量地址发中断服务程序
D. 开中断,执行中断服务程序
正确答案:A
题目解析
- 考点分析: 本题考察中断响应周期内由硬件自动完成的“中断隐指令”的步骤。
- 正确选项分析 (A. 关中断,保护断点,发中断响应信号并形成向量地址):
- 这是一个标准的中断响应流程,全部由硬件自动完成:
- 关中断: CPU将中断允许标志位置0,防止在处理当前中断时被新的中断打扰。
- 保护断点: 将当前PC(下一条指令地址)和PSW(程序状态)的内容压入堆栈或保存到专用寄存器。
- 发中断响应信号: CPU通过控制总线发出中断响应信号(INTA),通知中断控制器。
- 形成向量地址: CPU从数据总线上接收中断控制器送来的中断类型号(向量),并用它来计算出中断向量在向量表中的地址。
- 这是一个标准的中断响应流程,全部由硬件自动完成:
- 错误选项分析:
- B: 应该是关中断。
- C: 不是向向量地址发服务程序,而是从向量地址取服务程序的入口地址。
- D: 执行中断服务程序是中断响应周期之后的事情了。
14. 下列关于中断I/O方式的叙述中,错误的是( D )。
正确答案:D
题目解析
- 考点分析: 本题综合考察中断方式的特点。
- 错误选项分析 (D. 只有当有中断请求发生,一条指令执行结束后CPU就进入中断响应周期):
- 这个说法缺少了一个关键前提。CPU要进入中断响应周期,除了“有中断请求”和“指令执行结束”这两个条件外,还必须满足第三个条件:CPU处于开中断状态(即中断允许标志位
IF=1
)。如果CPU处于关中断状态,即使有请求也不会响应。
- 这个说法缺少了一个关键前提。CPU要进入中断响应周期,除了“有中断请求”和“指令执行结束”这两个条件外,还必须满足第三个条件:CPU处于开中断状态(即中断允许标志位
- 正确选项分析:
- A. CPU对外部中断的响应不可能发生在一条指令的执行过程中:正确,响应发生在指令执行后。
- B. 在中断I/O方式下,外设接口中的寄存器和CPU中的寄存器直接交换数据:正确,数据通常是在I/O端口和CPU通用寄存器(如累加器)之间传送。
- C. 中断请求的CPU时间,要求CPU执行程序来处理发生的相关事件:正确,响应中断后CPU会去执行中断服务程序。
15. 当CPU响应中断时,进入“中断周期”,采用硬件方法保护并更新程序计数器(PC)内容,而不是由软件来完成,主要是为了( A )。
题目原文
15. 当CPU响应中断时,进入“中断周期”,采用硬件方法保护并更新程序计数器(PC)内容,而不是由软件来完成,主要是为了( )。
A. 能进入中断处理程序,并能正确返回原程序
B. 节省主存空间
C. 提高处理机速度
D. 易于编制中断处理程序
正确答案:A
题目解析
- 考点分析: 本题考察中断响应由硬件实现的根本原因。
- 正确选项分析 (A. 能进入中断处理程序,并能正确返回原程序):
- 中断响应的核心任务有两个:一是跳转到正确的中断服务程序,二是记住从哪里跳转的以便能正确返回。
- 保护PC(断点) 就是为了“能正确返回”。
- 更新PC(装入中断向量) 就是为了“能进入中断处理程序”。
- 这两个操作是整个中断机制得以实现的基础。如果这两个步骤需要软件来完成,就会陷入“鸡生蛋,蛋生鸡”的悖论:要执行软件指令,首先就需要改变PC,但改变PC的指令又在哪里呢?因此,这两个最基础的上下文切换动作必须由硬件来强制完成。
- 错误选项分析:
- B, C, D: 虽然硬件实现可能也带来了速度提升或编程简化,但最根本、最主要的原因是为了保证中断机制本身能够成立和正确运行。
16. 在I/O接口中设置中断触发器保存外设发出的中断请求,是因为( C )。
正确答案:C
题目解析
- 考点分析: 本题考察I/O接口中中断请求触发器的作用。
- 正确选项分析 (C. 可能有多个中断同时发生):
- 【答案校对】 您提供的答案是
C (可能有多个中断同时发生)
。这个答案的逻辑是,如果有多个设备,每个设备都需要一个独立的中断请求触发器来记录自己的请求状态,以便中断控制器能区分它们。 - 另一个更直接的解释(通常认为是D): 外设发出的中断请求信号通常是一个脉冲信号,持续时间很短。而CPU只在指令执行结束后才检查中断。为了防止这个脉冲信号在CPU检查之前就消失了,I/O接口必须用一个触发器(具有记忆功能) 将这个请求锁存住,直到CPU响应它为止。选项D “CPU无法对发生的瞬时请求立即处理” 更能体现这个锁存的必要性。
- 此处我们按照您的答案C来解析:如果系统中有多个设备,每个设备都需要一个标志来表明自己是否发出了请求,中断请求触发器就扮演了这个角色。当CPU响应时,可以通过查询这些触发器的状态来识别中断源。
- 【答案校对】 您提供的答案是
- 错误选项分析:
- A. 中断需要立即立即处理:错误,中断是延迟处理的。
- B. CPU对最终发生的处理速度远比CPU快:逻辑不通。
- D. (如上分析,这通常是更标准的答案)
17. 在中断响应周期中,中断隐指令完成的操作是( B )。
正确答案:B
题目解析
- 考点分析: 本题再次考察中断隐指令的功能。
- 正确选项分析 (B. 关中断、保存断点、引出中断服务程序):
- 这三个步骤概括了中断隐指令的核心工作:
- 关中断: 防止中断嵌套干扰当前响应过程。
- 保存断点: 将PC和PSW压栈,为返回做准备。
- 引出中断服务程序: 获取中断向量并装入PC,实现跳转。
- 这三个步骤概括了中断隐指令的核心工作:
- 错误选项分析:
- A: 开中断是服务程序做的事。
- C: 保存通用寄存器是服务程序做的事。
- D: 恢复现场是中断返回时做的事。
18. CPU响应中断时最先完成的步骤是( C )。
题目原文
18. CPU响应中断时最先完成的步骤是( )。
A. 开中断
B. 保存断点
C. 关中断
D. 转入中断服务程序
正确答案:C
题目解析
- 考点分析: 本题考察中断响应的第一个动作。
- 正确选项分析 (C. 关中断):
- 在CPU决定响应一个中断请求后,它要做的第一件事就是自动将中断允许标志位(IF)置0,即进入“关中断”状态。
- 这样做的目的是为了防止在接下来保存现场等关键操作过程中,被新的(尤其是同级的或低级的)中断请求再次打断,从而保证中断响应过程的原子性和完整性。
- 错误选项分析:
- A, B, D: 都是在关中断之后才进行的步骤。
19. 设置中断屏蔽标志可以改变( D )。
题目原文
19. 设置中断屏蔽标志可以改变( )。
A. 多个中断源的中断请求优先级
B. 多个中断源的中断请求优先处理的顺序
C. 多个中断服务程序开始执行的顺序
D. 多个中断服务程序开始执行的次序
正确答案:D
题目解析
- 考点分析: 本题考察中断屏蔽的作用。
- 正确选项分析 (D. 多个中断服务程序开始执行的次序):
- 中断屏蔽是CPU(通过软件指令设置屏蔽字)用来暂时忽略某些中断请求的一种机制。
- 它不能改变硬件设定的中断请求优先级(响应优先级)。
- 但是,通过屏蔽掉一些高优先级的中断源,可以使得一个较低优先级的中断请求得到CPU的响应和服务。
- 因此,屏蔽机制能够灵活地改变中断服务程序被执行的实际次序。例如,虽然A的优先级高于B,但如果程序屏蔽了A,那么当A和B同时请求时,B会先被服务。
- 错误选项分析:
- A, B: 中断请求的硬件优先级是固定的,屏蔽不能改变它。
- C: 与D同义,但D的表述“次序”更强调动态改变的可能性。
20. 在CPU响应中断时,保护硬件状态的正确步骤是( B )。
正确答案:B
题目解析
- 考点分析: 本题考察中断处理中保存现场的完整顺序。
- 正确选项分析 (B. 保存程序断点和程序状态字 -> 保存通用寄存器):
- 中断处理中的现场保护分为两个层次:
- 硬件自动完成(中断隐指令): 保存最关键、最基本的上下文,即程序断点(PC) 和 程序状态字(PSW)。这是进入中断服务程序的必要前提。
- 软件完成(中断服务程序): 在中断服务程序的开头,由程序员(或编译器)编写指令,来保存那些可能会被服务程序用到的通用寄存器。
- 所以,正确的顺序是先由硬件保存PC和PSW,再由软件保存通用寄存器。
- 中断处理中的现场保护分为两个层次:
- 错误选项分析:
- A: 顺序反了。
- C, D: 描述不完整或不准确。
21. 在各种I/O方式中,中断方式的特点是( B ),DMA方式的特点是( D )。
题目原文
21. 在各种I/O方式中,中断方式的特点是( ),DMA方式的特点是( )。
A. CPU与外设串行工作,传送与主程序串行工作
B. CPU与外设并行工作,传送与主程序串行工作
C. CPU与外设串行工作,传送与主程序并行工作
D. CPU与外设并行工作,传送与主程序并行工作
正确答案:B, D
题目解析
-
考点分析: 本题核心是考察中断方式和DMA方式中,CPU、外设、数据传送、主程序四者之间的并行/串行关系。
-
分析中断方式的特点(第一个空,答案B):
- CPU与外设的关系: 在中断方式下,CPU可以启动一个I/O操作后,就去执行主程序,不必等待外设。外设在自己准备数据的过程中,是与CPU的计算并行进行的。
- 数据传送与主程序的关系: 当中断发生时,CPU必须暂停当前正在执行的主程序,转去执行中断服务程序,在中断服务程序中完成数据的传送。因此,数据传送这个动作与主程序的执行是串行的(不能同时进行)。
- 结论: 中断方式的特点是“CPU与外设并行工作,传送与主程序串行工作”,对应选项 B。
-
分析DMA方式的特点(第二个空,答案D):
- CPU与外设的关系: 在DMA方式下,CPU启动DMA控制器后,就可以完全脱离I/O操作,去执行主程序。外设在DMA控制器的控制下进行数据传送,这个过程与CPU的计算是并行的。
- 数据传送与主程序的关系: DMA控制器负责在主存和外设之间直接传送数据,这个数据传送过程不需要CPU执行指令,CPU可以继续执行主程序(除了在DMA窃取总线周期时会暂停一小下)。因此,从宏观上看,数据传送与主程序的执行是并行的。
- 结论: DMA方式的特点是“CPU与外设并行工作,传送与主程序并行工作”,对应选项 D。
-
综合答案: 中断方式选B,DMA方式选D。
22. 下列叙述中,( C )是正确的。
题目原文
22. 下列叙述中,( )是正确的。
A. 按启动查询方式的不可,查询方式查询不到I/O设备的状态
B. 查询方式和中断方式都需要保护现场
C. 程序中断方式和DMA方式都需要中断请求
D. 程序中断方式和DMA方式的优先级相同
正确答案:C
题目解析
- 考点分析: 本题综合对比查询、中断、DMA三种I/O方式。
- 正确选项分析 (C. 程序中断方式和DMA方式都需要中断请求):
- 程序中断方式: 其核心就是基于中断请求。设备准备好数据或完成操作后,通过中断请求来通知CPU。
- DMA方式: 在整个数据块传输完成后,DMA控制器(DMAC)会向CPU发出一个中断请求,以通知CPU数据传输任务已结束,CPU可以进行后续处理。
- 因此,两者都需要中断请求,只是请求的时机和目的不同。
- 错误选项分析:
- A: 查询方式的核心就是通过读取I/O接口的状态寄存器来查询设备状态。
- B: 中断方式需要CPU切换上下文,因此需要保护现场。查询方式下,CPU一直在执行查询循环,没有发生上下文切换,不需要保护现场。
- D: DMA请求的通常是总线使用权,其优先级高于普通I/O设备的中断请求,以保证高速数据传输不被打断。
23. DMA接口与主存交换数据时,( C )。
题目原文
23. DMA接口与主存交换数据时,( )。
A. 外部设备、DMA控制器和总线控制器( )掌握。
B. 外部设备、DMA控制器和总线控制权由( )掌握。
C. 外部设备、DMA控制器和总线控制权由( DMA控制器 )掌握。
D. 外部设备、DMA控制器、内存
正确答案:C
题目解析
- 考点分析: 本题考察在DMA传输期间,谁是总线的主控。
- 正确选项分析 (C. …总线控制权由DMA控制器掌握):
- DMA方式的核心就是由DMA控制器(DMAC) 来代替CPU,成为总线主设备(Bus Master)。
- DMAC会向总线仲裁器发出总线请求,获得总线控制权后,它会自己产生读/写控制信号和地址信号,直接在主存和I/O接口之间传送数据。在此期间,CPU会暂时放弃总线控制权。
- 错误选项分析:
- A, B, D: 选项不完整或错误。在DMA数据传送的瞬间,总线控制权属于DMAC。
24. 下列叙述中,( C )是正确的。
题目原文
24. 下列叙述中,( )是正确的。
A. 程序中断方式和DMA方式实现数据传送都需要中断请求
B. 程序中断方式和DMA方式中没有中断请求
C. 程序中断方式和DMA方式中断请求的目的不同
D. DMA要等指令周期结束才可以使用周期窃取
正确答案:C
题目解析
- 考点分析: 本题再次对比中断和DMA方式的中断目的。
- 正确选项分析 (C. 程序中断方式和DMA方式中断请求的目的不同):
- 程序中断方式的中断请求:通常是为了请求CPU来传送数据(例如,一个字符准备好了,请求CPU来取)。
- DMA方式的中断请求:是为了在数据块传送完成后通知CPU,任务已经结束。
- 两者的目的截然不同。
- 错误选项分析:
- A: 选项表述不准确,应该是“都需要用到中断机制”,但中断请求的目的不同。
- B: 都需要中断请求。
- D: “周期窃取”是指DMA在CPU执行指令的过程中,当CPU不访问总线时(如在执行内部运算时),窃取一两个总线周期来传送数据。这不一定要等到指令周期结束。
25. DMA要等指令周期结束才可以( A )。
正确答案:A
题目解析
- 考点分析: 本题考察DMA占用总线的三种方式。
- 正确选项分析 (A. 停止CPU访问主存):
- DMA占用总线的方式有三种:
- 停止CPU访问主存: 在DMA传送期间,完全停止CPU的活动,让DMAC独占总线。这种方式控制简单,但CPU利用率低。
- 周期窃取/挪用: 在CPU执行指令不访问总线的空闲总线周期,DMAC“见缝插针”地传送一个数据。
- DMA与CPU交替访问: 将总线周期划分为两半,一半给CPU,一半给DMAC。
- 题目中的表述“DMA要等指令周期结束才可以使用”最符合第一种方式的简化描述,即在一个或多个完整的指令周期内,CPU暂停访存。
- DMA占用总线的方式有三种:
- 错误选项分析:
- B: 周期窃取可以在指令周期中间进行。
- C, D: 与题目描述不符。
26. CPU响应DMA请求的条件是当前( A )。
题目原文
26. CPU响应DMA请求的条件是当前( )执行完。
A. 机器周期
B. 总线周期
C. 指令周期
D. 存取周期
正确答案:A
题目解析
- 考点分析: 本题考察CPU响应DMA请求(即让出总线)的时间点。
- 正确选项分析 (A. 机器周期):
- DMA请求是对总线使用权的请求。CPU的一个指令周期通常由若干个机器周期组成,而每个机器周期通常对应一次总线操作(如取指、读内存、写内存)。
- CPU只在一个机器周期(或总线周期)结束时,才会检查DMA请求。如果此时有DMA请求,并且CPU在下一个机器周期不需要使用总线,就可以让出总线。
- 与中断请求在“指令周期”结束时响应不同,DMA请求的响应粒度更细,是在“机器周期”结束时。
- 错误选项分析:
- B, D: 总线周期和存取周期与机器周期在概念上非常接近,甚至可以等同,但在选择题中,机器周期是更标准的说法。
- C: 是响应中断请求的时间点。
27. 当某指令正在执行时,主存可与下列( B )。
题目原文
27. 当某指令正在执行时,主存可与下列( )交换信息。
A. 外部设备
B. DMA控制器
C. 总线控制器
D. CPU
正确答案:B
题目解析
- 考点分析: 本题考察DMA方式下CPU与DMAC的并行工作。
- 正确选项分析 (B. DMA控制器):
- 当CPU正在执行一条不访问主存的指令时(例如,在执行内部的算术运算或移位操作),系统总线是空闲的。
- 此时,DMA控制器就可以利用这个空闲的总线周期(周期窃取),在主存和I/O设备之间直接交换信息,而CPU则继续执行自己的指令。这就实现了CPU计算与DMA传送的并行。
- 错误选项分析:
- A: 外部设备必须通过DMA控制器或CPU才能与主存交换信息。
- C: 总线控制器是仲裁部件。
- D: 如果CPU正在执行指令,它可能也在访问主存(如取操作数),此时主存就在和CPU交换信息。但题目问的是“可与下列…”,B选项描述了DMA的并行特性。
28. 在DMA传送过程中,主存地址由( A )。
题目原文
28. 在DMA传送过程中,主存地址由( )。
A. DMA控制器提供
B. 程序计数器提供
C. 外设提供
D. CPU提供
正确答案:A
题目解析
- 考点分析: 本题考察DMA控制器内部的关键寄存器功能。
- 正确选项分析 (A. DMA控制器提供):
- 在DMA传送开始前,CPU会初始化DMA控制器(DMAC),向其内部的寄存器写入信息。其中一个关键寄存器就是内存地址寄存器(MAR),用于存放本次数据传送在主存中的起始地址。
- 在数据传送过程中,每传送一个数据,DMAC会自动修改(增加或减少) 这个地址,以指向下一个内存单元。
- 因此,整个传送过程中的主存地址都是由DMA控制器来提供和管理的。
- 错误选项分析:
- B: PC提供的是指令地址。
- C: 外设不提供主存地址。
- D: CPU只在初始化时提供起始地址,传送过程中不提供。
29. 下列关于DMA方式的叙述中,正确的是( C )。
题目原文
29. 下列关于DMA方式的叙述中,正确的是( )。
A. 在第一阶段,DMA控制器从CPU请求总线的使用权
B. 在第二阶段,DMA控制器获得总线的使用权
C. 在第三阶段,DMA控制器向CPU发送中断请求,CPU执行中断服务程序,并做DMA结束处理
D. 在DMA传送数据的整个过程中,DMA控制器将一直占用总线
正确答案:C
题目解析
- 考点分析: 本题考察DMA工作的三个阶段。
- DMA三阶段:
- 预处理阶段: CPU向DMAC写入控制信息(传送方向、主存起始地址、传送数据块长度等),并启动DMAC。
- 数据传送阶段: DMAC完全接管总线,在主存和I/O间传送数据。
- 后处理阶段: 数据块传送完毕,DMAC向CPU发出中断请求。CPU响应中断,执行中断服务程序,进行检查、善后等工作。
- 正确选项分析 (C. 在第三阶段…CPU执行中断服务程序…):
- 这个描述准确地概括了后处理阶段的工作。
- 错误选项分析:
- A: 在第一阶段,CPU是主导者,向DMAC写入数据,而不是DMAC请求总线。DMAC请求总线是在第二阶段开始时。
- B: 第二阶段是数据传送,获得总线使用权是这个阶段的开始。
- D: DMA控制器不一定一直占用总线,它可能采用周期窃取的方式,与CPU交替使用总线。
30. 在主机和外设的信息传送中,( C )。
题目原文
30. 在主机和外设的信息传送中,( )不是一种程序控制方式。
A. 直接程序传送
B. 程序中断
C. 直接存储器存取(DMA)
D. 通道控制
正确答案:C
题目解析
- 考点分析: 本题要求区分“程序控制”和“硬件控制”的数据传送方式。
- 正确选项分析 (C. 直接存储器存取(DMA)):
- “程序控制方式”的特点是数据传送需要CPU执行指令来完成。
- 直接程序传送(查询方式) 和 程序中断方式 中,每一字节/字的数据传送都是由CPU执行特定的指令(如
IN
/OUT
/MOV
)来完成的。 - 而DMA方式中,数据的传送是由硬件(DMA控制器) 直接完成的,CPU不执行数据传送指令。因此,DMA不属于程序控制方式。
- 错误选项分析:
- A, B: 都属于程序控制方式。
- D: 通道方式虽然高度自动化,但它执行的是“通道程序”,仍然可以被广义地看作是一种程序控制。但与DMA相比,DMA的非程序控制特性更为显著。在常见的分类中,查询和中断归为一类(程序控制),DMA和通道归为另一类(硬件控制)。
31. 中断发生时,程序计数器PC的内容和更新是由( A )完成的。
题目原文
31. 中断发生时,程序计数器PC的内容和更新是由( )完成的。
A. 硬件自动
B. 进栈指令和转移指令
C. 访存指令
D. 中断服务程序
正确答案:A
题目解析
- 考点分析: 本题考察中断响应过程中PC值处理的责任方。
- 正确选项分析 (A. 硬件自动):
- 在CPU响应中断的瞬间,会进入一个特殊的中断响应周期,执行一系列由纯硬件逻辑自动完成的操作,这被称为中断隐指令。
- 这些操作包括:
- 保护断点: 硬件自动将当前PC的值(即被中断程序的返回地址)压入堆栈或保存到专用寄存器。
- 更新PC: 硬件自动从中断向量表中取出中断服务程序的入口地址,并将其装入PC。
- 这两个对PC的核心操作都是由硬件自动完成的,以保证中断机制能够顺利启动。
- 错误选项分析:
- B, C: 指令是由软件执行的,此时还未开始执行任何中断服务程序的指令。
- D: 中断服务程序是在PC被硬件更新、跳转到服务程序入口之后才开始执行的。
32. 在DMA方式传送数据的过程中,因为没有破坏( B )的内容,所以以CPU可以正常工作(访存除外)。
题目原文
32. 在DMA方式传送数据的过程中,因为没有破坏( )的内容,所以以CPU可以正常工作(访存除外)。
A. 程序计数器
B. 指令寄存器
C. 程序计数器和寄存器
D. 堆栈寄存器
正确答案:B
题目解析
- 考点分析: 本题考察DMA方式为什么能与CPU并行工作。
- 正确选项分析 (B. 指令寄存器):
- DMA方式与中断方式最大的不同在于,它不打断CPU的当前程序执行流程。
- CPU的正常工作依赖于其内部的一系列关键寄存器,如PC(程序流程)、通用寄存器(运算数据)、指令寄存器IR(当前指令)、PSW(程序状态) 等。
- 在DMA传送数据期间,DMAC只是借用总线,CPU内部的这些寄存器的内容完全没有被改变或破坏,CPU的“现场”是完整的。
- 因此,一旦DMAC释放总线,CPU可以无缝地继续执行它自己的程序。
- 选项中,B. 指令寄存器 是CPU内部状态的一个典型代表,没有被破坏。
- 【答案校对与分析】 您提供的答案是
B
。但是,A和C中提到的程序计数器
和寄存器
在DMA期间也同样没有被破坏。这道题的选项设计存在一定的模糊性。B、A、C、D中描述的寄存器在DMA期间都不会被破坏。但如果必须选择一个,可能是想强调与中断方式的区别:中断方式会强制改变PC和PSW,而DMA方式完全不触及CPU的这些核心状态。从这个角度看,所有选项描述的事实都对,但可能出题者想找一个最具代表性的。不过,通常我们说整个CPU现场(包括PC、IR、GPRs、PSW等)都未被破坏。此题的区分度不佳,但B作为一个正确的描述是可选的。
33. 在DMA方式下,数据从内存传送到外设经过的路径是( B )。
题目原文
33. 在DMA方式下,数据从内存传送到外设经过的路径是( )。
A. 内存→数据总线→数据通路→外设
B. 内存→数据总线→DMA接口→外设
C. 内存→数据总线→数据通路→外设
D. 内存→CPU→数据总线→外设
正确答案:B
题目解析
- 考点分析: 本题考察DMA数据传送的物理路径。
- 正确选项分析 (B. 内存→数据总线→DMA接口→外设):
- DMA的精髓在于数据不经过CPU。
- 正确的路径是:
- 数据从内存单元中被读出。
- 通过数据总线进行传输。
- 数据被送到支持DMA功能的I/O接口(即DMA接口)的数据寄存器中。
- I/O接口再将数据传送给外设。
- 错误选项分析:
- A, C: “数据通路”通常指CPU内部的数据通路,DMA不经过。
- D: 明确违反了DMA“数据不经过CPU”的原则。
34. 采用周期挪用(窃取)进行DMA数据传送时,每传送一个数据要占用( D )。
题目原文
34. 采用周期挪用(窃取)进行DMA数据传送时,每传送一个数据要占用( )的时间。
A. 指令周期
B. 机器周期
C. 时钟周期
D. 存取周期
正确答案:D
题目解析
- 考点分析: 本题考察DMA周期窃取方式下所占用的时间单位。
- 正确选项分析 (D. 存取周期):
- 周期窃取是指在CPU执行指令的过程中,当CPU不访问内存时(即总线空闲时),DMA控制器“窃取”一个总线周期来传送一个数据字。
- 这个被窃取的时间单位,正好是完成一次对内存的读或写操作所需的时间,这个时间在总线层面被称为总线周期或存取周期。
- 错误选项分析:
- A: 指令周期太长了。
- B: 机器周期和存取周期/总线周期概念非常接近,但在总线传输的语境下,存取周期是更精确的描述。
- C: 存取周期通常由多个时钟周期构成。
35. 启动一次DMA传送,主存和主机之间将完成一次( D )。
题目原文
35. 启动一次DMA传送,主存和主机之间将完成一次( )的数据传送。
A. 字节
B. 字
C. 总线宽度
D. 数据块
正确答案:D
题目解析
- 考点分析: 本题考察DMA方式的传送单位。
- 正确选项分析 (D. 数据块):
- DMA方式最核心的特点就是用于高速、成批的数据传送。
- 一次完整的DMA传送过程,是从主存的一个区域向I/O设备(或反向)传送一个连续的数据块(Block),数据块的大小由CPU在初始化DMAC时设定。
- 错误选项分析:
- A, B, C: 字节、字、总线宽度都是指单次总线操作能传送的数据量,而一次完整的DMA传送是传送由许多个这样的“字”组成的“块”。
36. 在磁盘存储器进行读/写操作之前,磁头控制器或DMA控制器进行初始化的信息中,不包含在下列选项中的是( C )。
题目原文
36. 在磁盘存储器进行读/写操作之前,磁头控制器或DMA控制器进行初始化的信息中,不包含在下列选项中的是( )。
A. 传送信息所在的主存起始地址
B. 传送信息的方向(是读磁盘还是写磁盘)
C. 传送信息所在的通用寄存器编号
D. 传送信息的字数或字节数
正确答案:C
题目解析
- 考点分析: 本题考察DMA控制器初始化时需要设置哪些参数。
- 正确选项分析 (C. 传送信息所在的通用寄存器编号):
- DMA传送是主存和I/O设备之间的直接数据交换,数据完全不经过CPU的通用寄存器。
- 因此,在初始化DMA控制器时,完全不需要告诉它使用哪个通用寄存器。
- 错误选项分析:
- A. 主存起始地址:必须提供,这是DMA在主存中读/写数据的起点。
- B. 传送信息的方向:必须提供,DMAC需要知道是从主存读到外设,还是从外设写到主存。
- D. 传送信息的字数或字节数:必须提供,DMAC需要知道这次任务要传送多少数据,以便在传送完成后发出中断。
37. 【2009统考真题】下列选项中,能引起外部中断的事件是( A )。
题目原文
37. 【2009统考真题】下列选项中,能引起外部中断的事件是( )。
A. 键盘输入
B. 除数为0
C. 浮点运算下溢
D. 访存缺页
正确答案:A
题目解析
- 考点分析: 本题要求区分外部中断和内部异常。
- 正确选项分析 (A. 键盘输入):
- 键盘是CPU外部的I/O设备。当用户按下键盘,键盘接口会将字符存入缓冲区,并向CPU发出一个中断请求,通知CPU有数据可以读取了。这个事件的源头在CPU外部,与当前CPU执行的指令无关,是典型的外部中断。
- 错误选项分析:
- B. 除数为0:是CPU在执行除法指令时内部发生的算术错误,属于内部异常。
- C. 浮点运算下溢:是CPU在执行浮点运算时发生的,属于内部异常(如果触发的话)。
- D. 访存缺页:是CPU在执行访存指令时,MMU发现页面不在内存中而发生的,属于内部异常(故障)。
38. 【2010统考真题】单级中断系统中,中断服务程序内的执行顺序是( A )。
I. 保护现场 II. 开中断 III. 关中断 IV. 保存断点
V. 中断事件处理 VI. 恢复现场 VII. 中断返回
正确答案:A
题目解析
- 考点分析: 本题考察一个完整的中断处理流程的正确顺序。
- 分析流程:
- 中断响应(硬件自动完成):
- 首先关中断 (III)。
- 然后保存断点 (IV) (PC和PSW)。
- 接着跳转到中断服务程序入口。
- 中断服务程序执行(软件完成):
- 保护现场 (I): 保存可能会被用到的通用寄存器。
- 开中断 (II): 在单级中断系统中,通常保持关中断状态;但在支持嵌套的多级中断系统中,保存完现场后会开中断,以允许更高优先级的中断进入。题目未明确,但开中断一定在保护现场后。
- 中断事件处理 (V): 执行真正的I/O操作或事件处理。
- 恢复现场 (VI): 恢复通用寄存器。
- 中断返回 (VII): 执行中断返回指令(
IRET
),这条指令会自动恢复PC和PSW,并可能开中断。
- 中断响应(硬件自动完成):
- 组合成标准顺序:
(硬件: III -> IV) -> (软件: I -> II -> V -> VI -> VII)
- 匹配选项:
- 选项A: I -> VI -> VII --> V -> II。这个顺序不合理。
- 让我们重新审视选项和通常的教学模型。
I. 保护现场
->V. 中断事件处理
->VI. 恢复现场
->VII. 中断返回
是服务程序的核心逻辑。
II. 开中断
通常在I. 保护现场
之后,以便允许中断嵌套。
III. 关中断
和IV. 保存断点
是硬件在进入服务程序前做的。 - 一个合理的顺序是:
I -> II -> V -> VI -> VII
。 - 让我们看选项A:
I -> V -> II -> VI -> VII
。这个顺序把开中断(II)放在了事件处理(V)之后,也是一种可能的实现(在处理核心任务时关中断,处理完再开)。 - 【答案校对】 您提供的答案是
A (I→V→II→VI→VII)
。我们以此为准进行分析。这个顺序意味着:1.保护通用寄存器 -> 2.处理中断事件 -> 3.(在处理完核心事件后)开中断 -> 4.恢复通用寄存器 -> 5.中断返回。这个流程逻辑上是可行的,特别是对于一些对实时性要求高的处理,会在核心处理代码段结束后再开中断。 - 而其他选项,如
III(关中断) -> I(保护现场)
,关中断是硬件做的,保护现场是软件做的,顺序是对的,但选项不完整。 - 在给定的选项中,A描述了一个相对完整的、可能的软件执行流程。
39. 【2011统考真题】…则L1的中断处理程序中设置的屏蔽字应为( D )。
题目原文
39. 【2011统考真题】某计算机有五级中断L0~L4,中断响应优先级从高到低为L0->L1->L2->L3->L4,但中断处理时,L级的中断处理程序可被L’级中断(i’<i)所中断。若L=i(0<=i<=4)表示L级的中断屏蔽位,则L1的中断处理程序中设置的屏蔽字应为( )。
A. 11110
B. 01110
C. 00011
D. 01111
正确答案:D
题目解析
- 考点分析: 本题考察中断嵌套和中断屏蔽字的设置。
- 分析规则:
- 响应优先级:
L0 > L1 > L2 > L3 > L4
。这是硬件决定的。 - 处理规则(嵌套规则): “L_i 级的中断处理程序可被 L_i’ 级中断(i’ < i)所中断”。这意味着,当CPU正在处理L_i级中断时,它只允许比它优先级更高的中断(即编号更小的中断)打断它。
- 屏蔽字设置: 为了实现上述规则,当进入L_i级中断服务程序后,程序需要设置一个新的中断屏蔽字,屏蔽掉所有优先级不高于L_i的中断,同时开放所有比L_i优先级高的中断。
- 响应优先级:
- 应用到L1:
- 当前正在处理L1级中断。
- 根据规则,需要屏蔽所有优先级不高于L1的中断,即屏蔽 L1, L2, L3, L4。
- 同时,需要开放所有比L1优先级高的中断,即开放 L0。
- 屏蔽字中,'1’表示屏蔽,'0’表示开放。
- 屏蔽字位序通常是
L0 L1 L2 L3 L4
。 - 所以屏蔽字应为:
0 1 1 1 1
。
- 结论: 屏蔽字为01111。
40. 【2011统考真题】…则CPU用于I/O的时间占整个CPU时间的百分比至少是( C )。
题目原文
40. 【2011统考真题】某计算机处理器主频为50MHz,采用定时查询方式控制设备A的I/O,查询程序运行一次所用的时钟周期数为500。在设备A工作期间,假定每秒需要查询200次,则CPU用于I/O的时间占整个CPU时间的百分比至少是( )。
A. 0.05%
B. 0.20%
C. 0.50%
D. 5.00%
正确答案:C
题目解析
- 考点分析: 本题考察在程序查询I/O方式下,CPU开销的计算。
- 计算过程:
- 计算查询一次所耗费的时间:
- 主频 = 50 MHz =
50 * 10^6 Hz
- 时钟周期 =
1 / (50 * 10^6) s
- 一次查询所需时钟周期数 = 500
- 查询一次的时间 =
500 * (1 / (50 * 10^6)) s = 10 * 10^-6 s = 10 µs
- 主频 = 50 MHz =
- 计算一秒内用于查询的总时间:
- 每秒查询次数 = 200 次/秒
- 一秒内查询总时间 = (查询一次的时间) × (每秒查询次数)
- 查询总时间 =
10 µs/次 * 200 次/秒 = 2000 µs/秒 = 2 * 10^-3 s/秒
- 计算所占百分比:
- 总CPU时间 = 1 秒
- 百分比 = (用于I/O的总时间 / 总CPU时间) × 100%
- 百分比 =
(2 * 10^-3 s / 1 s) * 100% = 0.2%
- 计算查询一次所耗费的时间:
- 【答案校对】 您提供的答案是
C (0.50%)
,而计算结果是0.20% (B)
。让我们重新核对计算。500 cycles / (50 * 10^6 cycles/s) = 10 * 10^-6 s
10 * 10^-6 s/query * 200 queries/s = 2000 * 10^-6 s = 0.002 s
(0.002 s / 1 s) * 100% = 0.2%
- 计算无误,结果确实是0.20%。答案C(0.50%)可能是题目数据或选项印刷错误导致。例如,如果查询一次需要1250个周期,或者每秒查询500次,结果才会是0.5%。此处按计算结果0.20% (B)进行解析。
41. 【2012统考真题】响应外部中断的过程中,中断隐指令完成的操作,除保护断点外,还包括( B )。
I. 关中断 II. 保存通用寄存器的内容 III. 形成中断服务程序入口地址并送达PC
正确答案:B
题目解析
- 考点分析: 本题再次考察中断隐指令(硬件自动完成)的具体操作内容。
- 逐项分析:
- I. 关中断: 正确。这是中断响应的第一步,由硬件自动将
IF
位置0,以防止响应过程被再次打断。 - II. 保存通用寄存器的内容: 错误。保存通用寄存器(GPRs)是由软件,即中断服务程序的开头部分来完成的。硬件只负责保存最核心的现场(PC和PSW)。
- III. 形成中断服务程序入口地址并送达PC: 正确。硬件通过中断向量找到服务程序的入口地址,并将其加载到PC,从而实现程序的跳转。
- I. 关中断: 正确。这是中断响应的第一步,由硬件自动将
- 组合判断: I 和 III 是中断隐指令完成的操作。
42. 【2013统考真题】下列关于中断I/O方式和DMA方式比较的叙述中,错误的是( D )。
题目原文
42. 【2013统考真题】下列关于中断I/O方式和DMA方式比较的叙述中,错误的是( )。
A. 中断I/O方式请求的是CPU处理时间,DMA方式请求的是总线使用权
B. 中断响应发生在一条指令执行结束后,DMA响应发生在一个总线事务完成后
C. 中断I/O方式下数据传送由CPU通过执行程序完成,DMA方式下数据传送由硬件完成
D. 中断I/O方式适用于所有外部设备,DMA方式仅适用于快速外部设备
正确答案:D
题目解析
- 考点分析: 本题全面对比中断和DMA方式的特点。
- 错误选项分析 (D. 中断I/O方式适用于所有外部设备,DMA方式仅适用于快速外部设备):
- 这个说法的后半部分是错误的。DMA方式确实最适合快速外部设备,但它也可以用于慢速设备,只要这些设备需要进行块数据传输。例如,一个慢速的数据采集卡,可能每隔一段时间才采集一个数据,但当累积到一定数量(一个数据块)后,使用DMA一次性传入内存,比反复中断CPU更高效。
- 更重要的是,说中断方式“适用于所有外部设备”也不完全准确。对于数据率极高的设备,如果用中断方式,会导致CPU频繁中断,性能急剧下降,实际上是“不适用”的。
- 因此,这个选项的描述过于绝对和片面,是错误的。
- 正确选项分析:
- A: 正确,准确描述了两者请求的资源不同。
- B: 【注意】 DMA响应(让出总线)发生在一个总线周期/机器周期结束后,而不是“总线事务”完成后。但与中断响应在“指令周期”后相比,这个描述相对指出了其响应粒度更细的特点。在选择题中,这是一个可接受的近似描述。
- C: 正确,准确描述了数据传送的执行者不同(CPU vs 硬件)。
43. 【2014统考真题】…则该设备I/O时间占整个CPU时间的百分比至少是( B )。
题目原文
43. 【2014统考真题】若磁盘转速为6000转/分,平均寻道时间为6ms,每个磁道有100个扇区,则该磁盘的平均存取时间约为( )。[此题原文应为计算磁盘存取时间,您提供的题目描述是计算I/O时间占比,这里按您给的题目描述和答案进行解析]
题目原文(修正为考I/O时间占比):
43. 某设备采用中断方式输出,每输出一个字符的平均处理时间为100ns,每400ns发出一次中断请求,中断响应和中断服务程序的执行时间总共为50ns,则在该设备持续工作过程中,CPU用于该设备的I/O时间占整个CPU时间的百分比至少是( )。
A. 12.5%
B. 25%
C. 37.5%
D. 50%
正确答案:B
题目解析
- 考点分析: 本题考察在中断方式下,CPU开销的计算。
- 计算过程:
- 确定一个完整I/O周期的时间: 设备每 400ns 发出一次中断请求,这意味着每400ns就需要CPU介入一次。这个时间间隔就是我们计算占比的基准周期。
- 确定在一个周期内CPU用于I/O的时间:
- 中断响应和中断服务程序的执行时间总共为 50ns。这就是CPU在一个I/O周期内,因为这个设备而花费的时间。
- 题目中的“每输出一个字符的平均处理时间为100ns”可能是干扰信息,或者是指外设自身的处理时间。CPU的开销只看中断处理时间。
- 计算所占百分比:
- 百分比 = (CPU用于I/O的时间 / 总时间周期) × 100%
- 百分比 =
(50 ns / 400 ns) * 100% = (1/8) * 100% = 12.5%
- 【答案校对】 您提供的答案是
B (25%)
,而计算结果是12.5% (A)
。让我们重新审视题目。- “每400ns发出一次中断请求”,这是总周期。
- “中断响应和服务程序执行时间为50ns”,这是CPU开销。
50/400 = 12.5%
。计算无误。- 答案
25%
是如何得出的?100/400 = 25%
。如果将“每输出一个字符的平均处理时间为100ns”理解为CPU用于处理这个字符的总开销(包括了中断服务程序时间),那么结果就是25%。这种理解也是有可能的,即中断服务程序只是CPU处理的一部分,还有其他软件开销。 - 此处我们按照“CPU开销为100ns”来解析,以匹配答案B。
百分比 = (100 ns / 400 ns) * 100% = 25%
44. 【2015统考真题】在采用中断I/O方式控制打印输出的情况下,CPU和打印控制接口之间的I/O端口和信息交换不可能是( B )。
题目原文
44. 【2015统考真题】在采用中断I/O方式控制打印输出的情况下,CPU和打印控制接口之间的I/O端口和信息交换不可能是( )。
A. I/O端口:状态端口,信息:打印机状态
B. I/O端口:数据端口,信息:打印机中断请求
C. I/O端口:数据端口,信息:待打印字符
D. I/O端口:控制端口,信息:打印机控制命令
正确答案:B
题目解析
- 考点分析: 本题考察各种信息是通过哪个端口或哪条信号线进行交换的。
- 错误选项分析 (B. I/O端口:数据端口,信息:打印机中断请求):
- 这个描述是不可能的。
- 打印机中断请求是一个信号,它通过控制总线上专门的中断请求线(IRQ) 发送给CPU(或中断控制器)。它不是通过数据端口以“数据”的形式进行交换的。
- 正确选项分析:
- A: CPU通过读取状态端口来获取打印机状态。正确。
- C: CPU通过向数据端口写入数据来发送待打印字符。正确。
- D: CPU通过向控制端口写入命令字来发送控制命令。正确。
45. 【2017统考真题】下列关于多重中断系统中,中断判优和中断屏蔽的叙述中,错误的是( B )。
正确答案:B
题目解析
- 考点分析: 本题考察中断优先级和屏蔽机制。
- 错误选项分析 (B. 中断处理期间CPU处于关中断状态):
- 这个说法在多重中断(中断嵌套) 系统中是错误的。
- 为了实现中断嵌套,当中断响应硬件完成关中断、保存断点等操作后,中断服务程序在保存完现场之后,会立即执行“开中断”指令。
- 这样做是为了允许更高优先级的中断请求能够打断当前正在执行的(较低优先级的)中断服务程序。如果一直处于关中断状态,就无法实现中断嵌套了。
- 正确选项分析:
- A. 在一条指令执行结束时响应中断:正确,这是中断响应的基本时间点。
- C. 中断请求的产生与当前指令的执行无关:正确,这是外部中断的定义。
- D. CPU通过采样中断请求信号来检测中断请求:正确,CPU在指令周期末尾对中断请求线进行采样。
46. 【2018统考真题】下列关于外部I/O中断的叙述中,正确的是( C )。
题目原文
46. 【2018统考真题】下列关于外部I/O中断的叙述中,正确的是( )。
A. 中断控制器按接收中断请求的先后次序进行中断优先级排队
B. CPU响应中断时,通过执行程序查询中断请求源的地址
C. CPU只有在处于开中断状态时,才能响应外部设备的中断请求
D. CPU在执行中断服务程序的过程中,不能响应新的中断请求
正确答案:C
题目解析
- 考点分析: 本题综合考察外部中断的响应条件和处理过程。
- 正确选项分析 (C. CPU只有在处于开中断状态时,才能响应外部设备的中断请求):
- 这是CPU响应中断的一个必要条件。CPU内部有一个中断允许标志位(IF)。只有当
IF=1
(开中断状态)时,CPU才会在指令执行结束后去检查并响应中断请求。如果IF=0
(关中断状态),CPU会忽略所有的可屏蔽中断请求。
- 这是CPU响应中断的一个必要条件。CPU内部有一个中断允许标志位(IF)。只有当
- 错误选项分析:
- A: 中断控制器是按预设的硬件优先级进行排队,而不是按请求的先后次序。
- B: “执行程序查询”是程序查询方式识别中断源的方法,效率低下。中断方式下通常采用中断向量法,由硬件直接或间接提供服务程序地址,速度快。
- D: 在支持中断嵌套的系统中,CPU在执行中断服务程序时,可以响应更高优先级的新中断请求。
47. 【2019统考真题】…CPU用于设备输入/输出的时间占总时间的百分比最多是( A )。
题目原文
47. 【2019统考真题】某设备以中断方式与CPU进行数据交换,CPU主频为1GHz,设备接口中的数据缓冲寄存器为32位,设备的数据传输速率为50KB/s。若每次中断开销(包括响应和处理)为1000个时钟周期,则CPU用于设备输入/输出的时间占总时间的百分比最多是( )。
A. 1.25%
B. 2.5%
C. 5%
D. 12.5%
正确答案:A
题目解析
- 考点分析: 本题是中断方式下CPU开销计算的综合题。
- 计算过程:
- 计算一次中断传送的数据量:
- 接口的数据缓冲寄存器为32位 = 4字节。这意味着每次中断,CPU传送4个字节的数据。
- 计算每秒发生中断的次数:
- 设备数据传输率 = 50 KB/s = 50 * 1024 B/s。
- 中断次数 = 总数据率 / 每次中断传送的数据量
- 中断次数 =
(50 * 1024 B/s) / (4 B/中断) = 12.5 * 1024 中断/秒 = 12800 中断/秒
。
- 计算一次中断的CPU开销时间:
- CPU主频 = 1 GHz =
1 * 10^9 Hz
。 - 时钟周期 =
1 / (1 * 10^9) s = 1 ns
。 - 一次中断开销 = 1000 个时钟周期 =
1000 * 1 ns = 1000 ns = 1 µs
。
- CPU主频 = 1 GHz =
- 计算一秒内CPU用于I/O的总时间:
- I/O总时间 = (一次中断开销) × (每秒中断次数)
- I/O总时间 =
1 µs/中断 * 12800 中断/秒 = 12800 µs/秒 = 0.0128 s/秒
。
- 计算所占百分比:
- 百分比 = (I/O总时间 / 1秒) × 100%
- 百分比 =
0.0128 * 100% = 1.28%
。
- 计算一次中断传送的数据量:
- 结论: 最接近的答案是1.25%。
48. 【2019统考真题】下列关于DMA方式的叙述中,正确的是( D )。
I. DMA传送前由驱动程序设置传送参数
II. 数据传送由DMA控制器总线请求完成总线使用权
III. 数据传送由DMA控制器直接控制总线完成
IV. DMA传送结束后由驱动程序完成后续处理
正确答案:D
题目解析
- 考点分析: 本题考察DMA工作流程中软件(驱动程序)和硬件(DMA控制器)的分工。
- 逐项分析:
- I. DMA传送前由驱动程序设置传送参数: 错误。驱动程序(软件)会调用CPU指令来设置DMA控制器,但设置参数这个动作是由CPU执行指令完成的,而不是驱动程序本身。驱动程序只是包含了这些指令。这个表述不精确。
- II. 数据传送由DMA控制器总线请求完成总线使用权: 错误。获取总线使用权是数据传送的前提,而不是数据传送本身。
- III. 数据传送由DMA控制器直接控制总线完成: 正确。这是DMA的核心,数据传送阶段完全由硬件(DMAC)主导。
- IV. DMA传送结束后由驱动程序完成后续处理: 错误。传送结束后,DMAC发出中断,CPU响应中断后会去执行中断服务程序(ISR),ISR是驱动程序的一部分,由它来完成后续处理。直接说“由驱动程序完成”不够精确,因为必须先有中断发生。
- 【答案校对】 您提供的答案是
D (I, II, III, IV)
。这与我的分析有很大出入,I, II, IV都存在不精确之处。让我们换一种更宽泛的理解方式来匹配答案D。- I: 从宏观上看,DMA的参数设置确实是由软件(驱动程序)发起的,可以认为正确。
- II: 获得总线使用权是DMA能进行数据传送的关键步骤,可以认为是传送过程的一部分。
- IV: 后续处理确实是驱动程序的功能。
- 在这种宽泛的理解下,I,II,III,IV都可以被认为是描述了DMA流程的某个方面。这道题的严谨性可能不高,考察的是对整个流程的宏观把握。
49. 【2020统考真题】下列事件中,属于外部中断事件的是( C )。
I. 访存缺页 II. 定时器到时 III. 网络数据包到达
正确答案:C
题目解析
- 考点分析: 本题再次区分外部中断和内部异常。
- 逐项分析:
- I. 访存缺页: CPU内部执行访存指令时发生的事件,属于内部异常。
- II. 定时器到时: 定时器是CPU外部的硬件,它到时后会向CPU发出中断请求,属于外部中断。
- III. 网络数据包到达: 网卡是CPU外部的设备,当它接收到一个完整的数据包后,会向CPU发出中断请求,属于外部中断。
- 组合判断: II 和 III 属于外部中断。
50. 【2020统考真题】外部中断包括不可屏蔽中断(NMI)和可屏蔽中断。下列关于外部中断的叙述中,错误的是( B )。
题目原文
50. 【2020统考真题】外部中断包括不可屏蔽中断(NMI)和可屏蔽中断。下列关于外部中断的叙述中,错误的是( )。
A. CPU处于关中断状态时,也能响应NMI请求
B. 一旦可屏蔽中断请求有效,CPU就立即响应
C. 不可屏蔽中断的优先级比可屏蔽中断的优先级高
D. 可通过屏蔽字改变可屏蔽中断的响应处理优先级
正确答案:B
题目解析
- 考点分析: 本题考察不可屏蔽中断(NMI)和可屏蔽中断的区别。
- 错误选项分析 (B. 一旦可屏蔽中断请求有效,CPU就立即响应):
- 这是错误的。对于可屏蔽中断,CPU要响应它,必须满足两个条件:
- 请求有效。
- CPU处于开中断状态(
IF=1
)。
- 如果CPU处于关中断状态,即使请求有效,也会被忽略。所以“立即响应”是错误的。
- 这是错误的。对于可屏蔽中断,CPU要响应它,必须满足两个条件:
- 正确选项分析:
- A: 正确,NMI(Non-Maskable Interrupt)的定义就是它不受CPU中断允许标志位IF的影响,无论CPU是否关中断,只要NMI请求到来,CPU必须响应。它通常用于电源掉电、硬件故障等紧急情况。
- C: 正确,NMI的硬件优先级总是设计为最高的。
- D: 正确,通过设置中断屏蔽字,可以临时禁止某些中断源的响应,从而动态地改变了它们被处理的优先级顺序。
51. 【2020统考真题】若设备采用周期挪用方式采用DMA方式进行输入/输出,每次DMA传送的数据大小为512字节,相应的I/O接口中有三个数据缓冲寄存器。下列叙述中,正确的是( C )。
题目原文
51. 【2020统考真题】若设备采用周期挪用方式采用DMA方式进行输入/输出,每次DMA传送的数据大小为512字节,相应的I/O接口中有三个数据缓冲寄存器。下列叙述中,正确的是( )。
A. 每准备好32位数据,DMA控制器就发出一次总线请求
B. 相对于CPU,DMA控制器的总线使用权优先级更高
C. 在整个数据传送过程中,CPU不访问主存
D. 数据传送结束时,会产生“DMA传送结束”中断请求
正确答案:C
题目解析
- 考点分析: 本题综合考察DMA方式的细节,特别是“周期挪用”和多缓冲技术。
- 正确选项分析 (C. 在整个数据传送过程中,CPU不访问主存):
- 【答案校对与分析】 您提供的答案是
C
。这个说法本身是错误的。在“周期挪用”方式下,DMA是在CPU不访问主存的间隙窃取总线周期,这意味着CPU在大部分时间里是可以访问主存的。只有在DMA传送的瞬间,CPU的访存才会被暂停。 - 让我们重新审视所有选项,看是否有更错误的,或者对C的理解是否有特殊角度。
- A: DMA控制器通常在其内部缓冲区满(例如,一个字或一个块)时才发出一次总线请求,而不是每准备好32位数据就请求一次,这样效率太低。这个说法很可能是错误的。
- B: DMA的总线请求优先级通常高于CPU,以保证实时性。这个说法是正确的。
- D: DMA传送结束时,一定会产生中断请求。这个说法是正确的。
- 结论存在矛盾: B和D都是正确的描述,而A和C是错误的。但题目是单选题,且您给的答案是C。这表明此题可能存在争议或特殊的出题背景。
- 如果强行解释为什么C可能是“正确”答案:可能题目想表达的是,在数据从DMA缓冲区传送到主存的那些瞬间,CPU不能访问主存。或者将“周期挪用”理解成了“停止CPU访存”模式的别称(虽然这不标准)。在这种非常规的理解下,C才能被选为正确。但根据标准定义,C是错误的。此题答案和题目本身存在较大的逻辑矛盾。
- 【答案校对与分析】 您提供的答案是
52. 【2021统考真题】下列是用户程序执行过程中可能发生的CPU中断的叙述,错误的是( A )。
题目原文
52. 【2021统考真题】下列是用户程序执行过程中可能发生的CPU中断的叙述,错误的是( )。
A. 仅在用户态(执行用户程序)下,系统才能检测和响应中断
B. CPU只有在检测到中断请求后,才会进入中断响应周期
C. 进入中断响应周期(中断隐指令),CPU处于关中断(中断屏蔽)状态
D. 若CPU检测到中断请求信号,则一定存在未被屏蔽的中断源请求信号
正确答案:A
题目解析
- 考点分析: 本题考察中断检测和响应的条件。
- 错误选项分析 (A. 仅在用户态(执行用户程序)下,系统才能检测和响应中断):
- 这个说法是错误的。中断检测是CPU硬件在每条指令执行结束后自动进行的一个动作,这个动作无论CPU处于用户态还是核心态都会发生。
- CPU在核心态执行操作系统代码时,同样可以响应中断(除非它执行了关中断指令)。例如,一个正在执行的中断服务程序,可以被更高优先级的中断再次中断(中断嵌套)。
- 正确选项分析:
- B: 正确,这是因果关系,没有请求就没有响应。
- C: 正确,中断响应周期的第一步就是硬件自动关中断。
- D: 正确。CPU能检测到中断请求,意味着中断控制器已经将一个有效的、并且未被CPU当前屏蔽字屏蔽的中断请求送到了CPU的中断请求引脚上。
53. 【2022统考真题】下列关于中断I/O方式的叙述中,不正确的是( C )。
题目原文
53. 【2022统考真题】下列关于中断I/O方式的叙述中,不正确的是( )。
A. 适用于键盘、针式打印机等字符型设备
B. 外设和主机之间的数据传送通过软件完成
C. 外设准备数据的时间应小于中断处理时间
D. 外设为某进程准备数据时CPU可运行其他进程
正确答案:C
题目解析
- 考点分析: 本题考察中断I/O方式的特点和适用条件。
- 错误选项分析 (C. 外设准备数据的时间应小于中断处理时间):
- 这个说法是错误的,而且恰恰说反了。
- 中断方式的优势就在于,CPU可以在外设慢悠悠地准备数据的漫长时间里,去执行其他程序。
- 只有当数据准备好后,CPU才需要花费一个较短的中断处理时间来传送数据。
- 因此,中断方式恰恰适用于“外设准备数据的时间 >> 中断处理时间”的场景,这样才能体现出CPU利用率的提升。如果外设准备数据比CPU处理中断还快,那还不如用查询方式。
- 正确选项分析:
- A: 正确,键盘、打印机这类速度不快、以字符为单位的设备是中断方式的典型应用。
- B: 正确,数据传送是在中断服务程序中,通过执行CPU指令(软件)完成的。
- D: 正确,这是中断方式相比查询方式最大的优点,实现了CPU计算与I/O操作的宏观并行。
54. 【2023统考真题】下列关于硬件和异常/中断关系的叙述中,错误的是( D )。
题目原文
54. 【2023统考真题】下列关于硬件和异常/中断关系的叙述中,错误的是( )。
A. CPU在执行一条指令的过程中检测异常事件
B. CPU在执行完一条指令时检测中断请求信号
C. 开中断时CPU检测到中断请求后就进行中断响应
D. 外部设备通过中断控制器向CPU发出中断结束信号
正确答案:D
题目解析
- 考点分析: 本题考察中断流程中各个信号的发出者。
- 错误选项分析 (D. 外部设备通过中断控制器向CPU发出中断结束信号):
- 这个说法是错误的。中断流程中没有“中断结束信号”这个概念。
- 中断处理的结束是通过中断服务程序执行一条中断返回指令(IRET) 来实现的。这条指令会恢复现场(PC, PSW),使CPU返回到被中断的程序继续执行。这个结束过程是软件控制的,不是由外部设备或中断控制器发出的硬件信号。
- 正确选项分析:
- A, B: 正确,准确描述了异常和中断的检测时间点。
- C: 正确,开中断是响应中断的必要条件。
55. 【2023统考真题】下列关于I/O方式的叙述中,错误的是( C )。
题目原文
55. 【2023统考真题】下列关于I/O方式的叙述中,错误的是( )。
A. 查询方式下,通过CPU执行查询程序进行I/O操作
B. 中断方式下,通过CPU执行中断服务程序进行I/O操作
C. DMA方式下,通过CPU执行DMA传送程序进行I/O操作
D. 对于SSD、网络适配器等高速设备,采用DMA方式输入/输出
正确答案:C
题目解析
- 考点分析: 本题再次对比不同I/O方式的数据传送执行者。
- 错误选项分析 (C. DMA方式下,通过CPU执行DMA传送程序进行I/O操作):
- 这个说法是错误的。DMA方式的核心特点就是数据传送不通过CPU执行程序,而是由DMA控制器(DMAC)这个专用硬件来完成。
- CPU只在DMA开始前进行初始化(执行几条指令),以及在DMA结束后响应中断(执行中断服务程序),在真正的数据传送过程中,CPU是不参与的。
- 正确选项分析:
- A, B: 正确,查询和中断方式的数据传送都是由CPU执行相应的软件程序完成的。
- D: 正确,SSD(固态硬盘)、高速网卡等是DMA方式的典型应用场景。
56. 【2024统考真题】下列关于中断I/O方式的叙述中,错误的是( A )。
题目原文
56. 【2024统考真题】下列关于中断I/O方式的叙述中,错误的是( )。
A. 中断屏蔽字用于确定中断响应的优先级
B. 保存断点和程序状态字在中断响应阶段完成
C. 保存通用寄存器和设置新中断屏蔽字由软件实现
D. 单重中断方式下中断处理时CPU处于关中断状态
正确答案:A
题目解析
- 考点分析: 本题深入考察中断优先级和屏蔽机制的区别。
- 错误选项分析 (A. 中断屏蔽字用于确定中断响应的优先级):
- 这个说法是错误的。
- 中断响应的优先级是由硬件决定的(例如,中断控制器内部的优先级编码器,或菊花链的物理位置),是固定的。它决定了当多个中断同时发生时,CPU先响应哪一个。
- 中断屏蔽字是由软件设置的,它不能改变硬件优先级,但它可以临时禁止CPU对某些中断源的响应。它决定的是在当前状态下,哪些中断被允许打扰CPU。它改变的是中断被处理的次序,而不是响应的优先级。
- 正确选项分析:
- B: 正确,保存PC和PSW是中断响应阶段(中断隐指令)的核心任务。
- C: 正确,保存通用寄存器和在需要嵌套时设置新的屏蔽字,都是在中断服务程序(软件)中完成的。
- D: 正确。在不支持中断嵌套的单重中断系统中,从响应中断开始到中断返回为止,CPU一直处于关中断状态,以防止任何新的中断进入。
57. 【2024统考真题】DMA控制I/O方式下,设备的输入/输出由DMA控制器控制完成,此时,DMA控制器的数据传输通路位于( C )。
题目原文
57. 【2024统考真题】DMA控制I/O方式下,设备的输入/输出由DMA控制器控制完成,此时,DMA控制器的数据传输通路位于( )。
A. CPU和主存之间
B. CPU和DMA控制器之间
C. 设备接口和主存之间
D. 设备接口和DMA控制器之间
正确答案:C
题目解析
- 考点分析: 本题考察DMA数据传送的端点。
- 正确选项分析 (C. 设备接口和主存之间):
- DMA(Direct Memory Access,直接存储器存取)的名称已经揭示了其本质。
- 数据传送的路径是绕过CPU,在I/O设备的接口和主存储器之间建立一条直接的数据通路。
- DMA控制器作为总线主控,指挥数据在这条通路上流动。
- 错误选项分析:
- A, B: 都涉及了CPU,违反了DMA的基本原则。
- D: DMA控制器是控制者,数据并不需要在它和设备接口之间形成一个独立的通路。数据通路是连接了数据源(设备接口或主存) 和数据目的地(主存或设备接口)。
第七章 输入/输出(I/O)系统 全章知识体系与考法总结
第七章是继CPU之后又一个非常重要的章节,它将计算机核心与外部世界联系起来。本章的知识点逻辑性强,层次分明,主要围绕“如何管理和控制I/O设备”这一核心问题展开。其知识体系可划分为三大模块:I/O接口与编址、I/O控制方式 和 中断系统的细节。
模块一:I/O接口与编址——主机与外设的“翻译官”
这一模块是理解所有I/O操作的基础,核心是I/O接口的“是什么”和“怎么找”。
-
核心知识点:
- I/O接口的必要性: 解决主机与外设在速度、数据格式、电气特性、控制逻辑上的差异。
- I/O接口的功能: 数据缓冲、格式转换、状态检测、命令解码、设备寻址、中断管理。
- I/O接口的组成: 核心是I/O端口,即一组CPU可访问的寄存器(数据、状态、控制寄存器)。
- I/O编址方式(高频考点):
- 统一编址(内存映射I/O): 将I/O端口看作内存单元,使用访存指令访问,靠地址码区分。
- 独立编址(I/O映射I/O): I/O端口有独立地址空间,使用专用I/O指令(
IN/OUT
)访问,靠不同控制信号(MREQ
vs.IORQ
)区分。
-
常见考法:
- 概念辨析: 反复对比两种编址方式的指令、地址空间、区分方式和优缺点。
- 功能识别: 判断I/O接口的功能和组成部分。
- 实例区分: 区分I/O接口(控制器)和I/O设备本身。
-
典型例题回顾:
- 例题01, 03, 05, 08, 16: 这一系列题目从各个角度深入考察了两种编址方式的差异,是本模块的“题眼”。
- 例题18 (2021真题): “磁盘驱动器”是设备,“打印机适配器”是接口,清晰地考察了概念区分。
-
刻意练习建议:
- 制作“编址方式对比表”: 这是复习本模块最高效的工具,必须做到能独立默写和讲解。
- 画“接口-总线-外设”连接图: 弄清I/O总线、I/O接口、通信电缆、外设的内外层次关系。
模块二:I/O控制方式——CPU的“放权”史
这一模块是本章的绝对核心,描述了I/O控制技术从CPU“事必躬亲”到“充分授权”的演进过程。
-
核心知识点:
- 程序查询方式: CPU主动、循环“踏步”查询设备状态,CPU与外设串行,CPU利用率极低。
- 中断方式:
- 核心思想: CPU启动I/O后可执行其他程序,I/O完成后设备主动通知CPU。
- 并行性: CPU计算与外设工作并行,但数据传送与主程序串行(中断服务程序执行时主程序暂停)。
- 适用场景: 慢速、字符型设备(键盘、打印机)。
- DMA(直接存储器存取)方式:
- 核心思想: 数据传送由DMA控制器(DMAC) 接管,数据不经过CPU,在主存和I/O间直接传送。
- 并行性: CPU计算与数据传送并行。
- CPU参与: 仅在传送前(预处理)和传送后(后处理,通过中断)介入。
- 占用总线方式: 停止CPU、周期窃取、交替访问。
- 适用场景: 高速、块数据设备(磁盘、网卡)。
- 通道方式:
- 核心思想: 使用专门的I/O处理器(通道) 来执行“通道程序”,管理多台设备,进一步解放CPU。
- 并行性: CPU、通道、设备三者可最大程度并行。
-
常见考法:
- 方式对比(高频考点): 全面比较四种方式在CPU干预程度、并行性、硬件开销、适用场景上的区别。
- 流程分析: 考察中断和DMA的详细工作流程,特别是CPU和硬件的分工。
- CPU开销计算: 计算在查询或中断方式下,I/O操作占用的CPU时间百分比。
-
典型例题回顾:
- 例题21 (关键对比题): 清晰地辨析了中断和DMA的并行性差异:“中断:CPU与外设并行,传送与主程序串行”;“DMA:CPU与外设并行,传送与主程序并行”。
- 例题04 & 24: 对比了中断和DMA中断请求的目的不同:中断是为了启动数据传送,DMA是为了报告传送结束。
- 例题40, 43, 47 (计算题): 集中考察了查询方式和中断方式下CPU开销的计算,是本章的计算难点。
-
刻意练习建议:
- 画“CPU干预程度”演进图: 从查询到通道,画出CPU在数据传送过程中角色的变化,理解“放权”的过程。
- 制作“I/O方式对比表”: 这是本模块的“法宝”,详细对比四种方式的各项特征。
- 流程默写与推演: 反复默写中断和DMA的完整流程,特别是软硬件分工。
模块三:中断系统的细节
这一模块深入探讨中断机制的内部实现,是理解中断方式的关键。
-
核心知识点:
- 中断响应过程(中断隐指令):
- 时间点: 一条指令执行结束后。
- 前提条件: 有中断请求 + CPU开中断。
- 硬件自动操作: 关中断 -> 保存断点(PC)和状态(PSW) -> 识别中断源并送中断向量 -> 装入服务程序入口地址到PC。
- 中断识别与向量:
- 中断向量: 中断类型号,用于索引中断向量表。
- 中断向量表: 存放中断服务程序入口地址的表。
- 中断向量地址: 是存放服务程序入口地址的内存单元的地址。
- 中断优先级与屏蔽:
- 中断判优: 硬件决定响应优先级,解决多个中断同时请求的问题。
- 中断屏蔽: 软件(通过屏蔽字)决定是否响应某个中断,可动态改变处理次序,用于实现中断嵌套。
- 中断嵌套: 高优先级中断可以打断低优先级中断的服务程序。实现前提:在服务程序中先保护现场,再开中断。
- 现场保护: 硬件保护PC和PSW;软件(中断服务程序)保护通用寄存器。
- 中断响应过程(中断隐指令):
-
常见考法:
- 中断流程排序: 给出中断处理的各个步骤,要求排出正确顺序。
- 概念辨析: 精确区分中断向量和中断向量地址;区分中断优先级和中断屏蔽。
- 中断嵌套分析: 根据屏蔽字判断中断处理的优先级。
- 软硬件分工: 判断中断处理的某个步骤是由硬件还是软件完成。
-
典型例题回顾:
- 例题02 & 07: 反复考察了“中断向量地址”的精确定义,这是一个常见的易错点。
- 例题13 & 17: 考察了中断响应周期(中断隐指令)的具体操作内容。
- 例题38 & 39 (2010, 2011真题): 集中考察了中断处理流程的排序和中断嵌套时屏蔽字的设置,是本模块的难点。
- 例题56 (2024真题): “中断屏蔽字用于确定中断响应的优先级”是错误说法,清晰地考察了优先级和屏蔽机制的区别。
-
刻意练习建议:
- 流程图绘制: 亲手画出完整的中断处理流程图,并用不同颜色标注出硬件完成的部分和软件完成的部分。
- 嵌套模拟: 假设一个场景,CPU正在处理一个3级中断,此时来了1级和4级中断请求,推演CPU会如何响应和处理,屏蔽字会如何变化。
- 做“找不同”练习: 专门对比易混淆的概念,如“中断请求”与“DMA请求”的目的和响应时间,“中断优先级”与“中断屏蔽”的作用和实现方式。
通过对这三大模块的系统梳理和针对性练习,您将能全面掌握I/O系统的知识体系,从容应对从基础概念到复杂流程分析的各类考题。