Skip to content

2026年 408 计算机组成原理 第 22 题

计算机组成原理2026年选择题2分

题目

中断控制 I/O 方式下,实现 I/O 需要硬件和软件协同完成,中断响应和处理过程中所包含的下列工作中,必须由硬件完成的是( )。

错因

A

开中断由软件的 ISR 在恢复现场前/后用一条特殊指令(如 x86 的 STI)完成,不是硬件自动做。而且开中断的时机由 ISR 编写者决定(多重中断系统在 ISR 中段开、单级中断在 IRET 前才隐式开),硬件无法替软件决定。

B

"中断"二字本身是个事件,不是一项操作——选项语义模糊。如果理解成"产生中断请求",那是设备端硬件的事;如果理解成"响应中断",那是 CPU 隐指令的事。无论哪种解释都不能简单回答"必须由硬件完成"——题目要找"必须硬件完成的具体动作",B 不构成具体动作。

D

保存通用寄存器是 ISR 第一段"保护现场"由软件代码 push 到栈/专用区——硬件不知道你要不要保护、保护哪些寄存器,全凭 ISR 按 ABI 约定决定。这是 408 反复考的"硬软件分工"考点。详见 2012-22。

总解析

中断响应和处理过程的硬软件分工

步骤谁做何时
① 关中断硬件(隐指令)响应瞬间
保存断点(PC、PSW)硬件(隐指令)关中断之后
③ 形成入口送 PC硬件(隐指令)保断点之后
④ 保护现场(保存通用寄存器)软件(ISR 第一段)进入 ISR
⑤ 中断处理软件(ISR 主体)现场保护后
⑥ 恢复现场(恢复通用寄存器)软件(ISR 末尾)处理结束后
⑦ 开中断软件(指令)多重中断 ISR 中段开 / 单级中断 IRET 前隐式开
⑧ 中断返回(IRET)硬件 + 软件配合ISR 末尾

为什么"保存断点"必须硬件做

断点 = PC + PSW(被打断时下一条指令的地址 + 处理器状态)。保存断点必须发生在响应中断的瞬间——如果不立刻保住:

  1. 隐指令第三步要把 PC 改写为中断入口地址,原 PC 一旦覆盖就再也找不回来(无法返回原程序)
  2. 关中断动作改变了 PSW 的中断使能位,原 PSW 需保护
  3. 软件根本来不及介入——保存动作必须在硬件级别完成,没有任何机会让软件先跑一段代码

保存通用寄存器则不一样——

  • 通用寄存器在进入 ISR 后才保护,因为 ISR 头几行还没"用脏"通用寄存器
  • 哪些寄存器要保护、保护到哪个内存区,由 OS / 编译器约定的调用约定(ABI)决定,不是硬件能决定的
  • 只需软件在合适时机 push 即可

逐项审计

选项操作必须由谁做
A开中断软件(具体指令如 STI / IRET 隐式开)
B"中断"题面语义不清,不是具体操作
C保存断点硬件(隐指令)
D保存通用寄存器软件(ISR 第一段)

最终答案是 C(保存断点)

关联题对照(中断隐指令系列):

  • 2010-21:单级中断 ISR 内执行顺序(I → V → VI → II → VII)
  • 2011-21:多重中断屏蔽字设置
  • 2012-22:隐指令包含哪些步骤(关中断 + 保断点 + 送入口)
  • 2017-22:多重中断中 CPU 是否全程关中断
  • 2018-22:中断响应的前提条件(IF = 1)
  • 2026-22:哪一步必须由硬件做

把这六道连起来看,"中断响应 + 多重中断 + 屏蔽字 + 硬软件分工"基本就闭环了。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题