Skip to content

408 > ### 计算机组成原理 > #### 中断方式


一、定位信息

项目内容
知识单元编号CO-06-06
所属章节第六章 总线与I/O系统
核心主题中断方式的工作原理、中断系统与中断处理流程
考试权重★★★★(高频重点,选择+大题均可出)
前置知识CO-06-04 I/O接口、CO-06-05 程序查询方式
后续衔接CO-06-07 DMA方式

二、知识点讲解

2.1 中断方式的基本概念

中断(Interrupt) 是指CPU在执行程序过程中,遇到急需处理的事件时,暂时中止当前程序的执行,转去处理该事件(中断服务),处理完毕后返回原程序继续执行的过程。

中断I/O方式 是指外设准备好数据后,主动向CPU发出中断请求(IRQ),CPU响应中断后暂停当前程序,转去执行中断服务程序完成数据传送,传送完毕后返回原程序继续执行。

与程序查询方式的核心区别:中断方式是设备主动通知CPU,程序查询方式是CPU主动查询设备

2.2 中断的分类

(1) 按中断源分类

类型来源示例
外部中断(硬件中断)CPU外部设备I/O设备中断、定时器中断、电源故障
内部中断(软件中断/异常)CPU内部除法溢出、非法指令、缺页异常、断点

(2) 按是否可屏蔽分类

类型特点标志
可屏蔽中断可通过中断屏蔽字暂时禁止响应INTR引脚
不可屏蔽中断(NMI)必须立即响应,无法屏蔽NMI引脚

(3) 按中断源的优先级分类

  • 优先级固定:每个中断源有固定的优先级,高优先级可打断低优先级
  • 优先级轮转:中断服务后该设备优先级降为最低

2.3 中断系统的基本组成

一个完整的中断系统需要以下硬件支持:

  1. 中断请求触发器:每个中断源一个,记录中断请求信号
  2. 中断屏蔽触发器:每个中断源一个,控制是否屏蔽该中断
  3. 中断判优逻辑:决定同时多个请求时的响应优先级
  4. 中断向量表:存放各中断服务程序的入口地址
  5. 中断允许触发器(IF):CPU中的全局中断使能标志

2.4 中断处理的完整过程

┌────────────────────────────────────┐
│         CPU执行主程序               │
│         (每条指令末尾检查中断)     │
└──────────────┬─────────────────────┘
               │ 检测到中断请求

┌────────────────────────────────────┐
│  1. 关中断(IF=0)                  │ ← 防止新中断打断保存现场
├────────────────────────────────────┤
│  2. 保存断点(PC和PSW压栈)         │ ← 保存返回地址和程序状态
├────────────────────────────────────┤
│  3. 识别中断源(判优+确定中断号)    │ ← 确定哪个设备请求中断
├────────────────────────────────────┤
│  4. 保存现场(通用寄存器等压栈)     │ ← 保护被中断程序的运行状态
├────────────────────────────────────┤
│  5. 开中断(IF=1)                  │ ← 允许更高优先级中断嵌套
├────────────────────────────────────┤
│  6. 执行中断服务程序                 │ ← 完成数据传送等操作
├────────────────────────────────────┤
│  7. 关中断(IF=0)                  │ ← 防止恢复现场时被打断
├────────────────────────────────────┤
│  8. 恢复现场(通用寄存器出栈)       │ ← 恢复被中断程序的运行状态
├────────────────────────────────────┤
│  9. 开中断(IF=1)                  │ ← 恢复中断响应能力
├────────────────────────────────────┤
│  10. 中断返回(IRET,恢复PC和PSW)  │ ← 返回断点继续执行
└────────────────────────────────────┘

关键步骤详解

  • 关中断→保存断点→保存现场:这三步必须在关中断状态下完成,否则保存现场过程可能被新中断打断,导致现场保存不完整。
  • 开中断:在执行中断服务程序前开中断,允许中断嵌套(更高优先级的中断可打断当前中断服务)。
  • 关中断→恢复现场→开中断→中断返回:恢复现场也必须在关中断状态下完成。

2.5 中断判优方式

(1) 硬件判优(优先级排队器)

  • 并行优先级编码器:所有中断请求同时输入,硬件直接输出最高优先级的中断号
  • 速度快,但硬件成本高

(2) 软件判优(程序查询)

  • CPU依次查询各中断源的中断请求触发器
  • 速度慢,但灵活、成本低

(3) 菊花链判优

  • 类似总线链式仲裁,中断响应信号沿设备链传递
  • 离CPU近的设备优先级高

2.6 中断向量与中断向量表

中断向量:中断服务程序的入口地址(或入口地址的指针)。

中断向量表:所有中断向量集中存放在内存的一个连续区域中。

  • x86系统:中断向量表位于内存最低1KB(0x000~0x3FF),共256个表项,每项4字节(CS:IP)
  • 每个中断源有一个中断类型号(0~255),作为中断向量表的索引

中断向量法的寻址过程

  1. 中断源提供中断类型号 n
  2. CPU计算中断向量地址 = n × 4(x86中每项4字节)
  3. 从该地址取出中断服务程序的入口地址(CS和IP)
  4. 跳转到中断服务程序执行

三、记忆辅助

  1. 中断处理十步口诀"关保识保开关恢关开返"——关中断→保存断点→识别中断源→保存现场→开中断→执行服务→关中断→恢复现场→开中断→中断返回。

  2. 两次关中断的必要性

    • 第一次关中断:保护"保存现场"过程不被打断
    • 第二次关中断:保护"恢复现场"过程不被打断
    • 口诀:"存恢都要关"
  3. 断点 vs 现场

    • 断点 = PC + PSW(程序计数器和程序状态字,即"从哪里回来")
    • 现场 = 通用寄存器内容(即"回来后继续干活需要的工具")
    • 口诀:"断点是地址,现场是数据"
  4. 中断向量表 = "电话簿":中断类型号是"姓名",中断向量(入口地址)是"电话号码"。查电话簿(向量表)就能找到号码(入口地址)。


四、例题精解

例题1

题目:在中断处理过程中,下列操作的正确顺序是( )。 ① 保存断点 ② 保存现场 ③ 开中断 ④ 关中断 ⑤ 执行中断服务程序 ⑥ 中断返回 A. ④①②③⑤③⑥ B. ④①②③⑤⑥ C. ①④②③⑤⑥ D. ④②①③⑤⑥

四步解题

Step 1 审题:确定中断处理各步骤的正确顺序。

Step 2 知识定位:标准中断处理流程:关中断→保存断点→保存现场→开中断→执行服务→关中断→恢复现场→开中断→中断返回。

Step 3 逐项分析

  • A:④①②③⑤③⑥ → 关→断点→现场→开→服务→开→返回。缺少恢复现场步骤,且多了一个开中断,但题目选项中⑥代表中断返回,A中中③⑤③表示"开→服务→开",中间缺少关中断和恢复现场。
  • B:④①②③⑤⑥ → 关→断点→现场→开→服务→返回。缺少恢复现场和最后的开中断,不完整。
  • C:①④②③⑤⑥ → 断点→关→现场→开→服务→返回。先保存断点再关中断,错误(应先关中断再保存断点)。
  • D:④②①③⑤⑥ → 关→现场→断点→开→服务→返回。先保存现场再保存断点,错误(应先保存断点再保存现场)。

重新审视选项,A的③⑤③可以理解为"开中断→执行服务→关中断"(服务过程中的开中断和结束时的关中断),但缺少明确的恢复现场。实际上选项A最接近完整流程:④(关)①(断点)②(现场)③(开)⑤(服务)③(关+恢复)⑥(返回)。

Step 4 答案A(最接近正确流程的选项)


例题2

题目:某系统有4个中断源D1、D2、D3、D4,优先级从高到低为 D1>D2>D3>D4。中断服务程序执行时间分别为:D1=10μs,D2=20μs,D3=15μs,D4=5μs。在t=0时刻,D2和D3同时请求中断;在t=8μs时刻,D1请求中断。画出中断处理的时间线,并计算CPU返回主程序的时刻。

四步解题

Step 1 审题:多中断嵌套场景,需要按优先级处理。

Step 2 知识定位

  • 高优先级中断可打断低优先级中断服务(中断嵌套)
  • 同时请求时响应优先级高的

Step 3 时间线分析

t=0:D2和D3同时请求,D2优先级高 → 响应D2,开始D2的服务程序

t=8:D1请求中断,D1优先级 > D2 → D2被打断,保存D2现场,转去执行D1

t=8~18:执行D1服务程序(10μs)

t=18:D1服务完成,恢复D2现场,继续D2服务

t=18~30:继续执行D2剩余服务(20μs - 8μs已完成 = 12μs剩余)

t=30:D2服务完成,检查D3请求 → 响应D3

t=30~45:执行D3服务程序(15μs)

t=45:D3服务完成,无其他中断 → 返回主程序

时间线:

t=0    t=8    t=18        t=30        t=45
|---D2---|--D1--|---D2续---|---D3---|→返回主程序
         (被打断) (恢复继续)

Step 4 答案:CPU返回主程序的时刻为 t=45μs


五、考情分析

维度分析
出题频率近10年约出现12-15次,高频重点
题型选择题(中断流程辨析、中断判优)、综合题(中断嵌套时间分析)
难度★★★★(中断嵌套分析较复杂)
考查重点中断处理流程的顺序;中断嵌套的时间分析;中断向量寻址;断点与现场的区别
命题趋势中断嵌套时间线分析是综合题热门;与DMA方式对比是选择题常考

六、易错点

  1. 断点保存和现场保存的顺序:必须先保存断点(PC+PSW),再保存现场(通用寄存器)。顺序不能颠倒,因为保存断点是硬件自动完成的(压栈),保存现场是中断服务程序开头由软件完成的。

  2. 中断嵌套的关键:在执行中断服务程序之前要开中断,否则更高优先级的中断无法打断当前服务。但如果系统不允许嵌套,则服务期间保持关中断状态。

  3. "中断请求"≠"中断响应":中断请求是设备发出的信号;中断响应是CPU决定处理该中断。CPU可能因中断屏蔽、关中断等原因不响应请求。

  4. 中断向量表的地址计算:中断向量地址 = 中断类型号 × 每项字节数。x86中每项4字节,所以类型号n的向量地址 = n×4。不要忘记这个乘法。

  5. 软件中断(INT指令)也是中断:INT n指令会触发中断类型号为n的中断处理,走中断向量表的完整流程,不要以为只有硬件才能触发中断。


七、来源标注

来源说明
《计算机组成原理》(唐朔飞)第8章 I/O系统,程序中断方式
《计算机组成原理》(蒋本珊)第7章 中断方式
408统考大纲第六章 总线与I/O系统 - 程序中断方式
历年真题2009-2025年408真题高频考点

考研全科复习资料 - 基于2026考研统考大纲