中断全流程当中的信号方向
一句话结论
-
中断结束信号(EOI)方向是 CPU → 外设(准确说是 CPU → 中断控制器/外设)。
-
整个中断过程里,信号方向分为三类:
-
请求类:外设 → CPU(或中断控制器 → CPU)。
-
响应类:CPU → 外设(或中断控制器),包括中断响应和结束信号。
-
数据/控制类:双向,根据服务内容在外设与内存/CPU 之间传。
-
中断全过程中的主要信号方向
1. 中断请求阶段
-
INTR(中断请求):外设 → CPU
- 外设觉得“我有事”,举手发请求。
-
若有中断控制器(如 8259A):外设 → PIC(中断控制器) → CPU
2. 中断响应阶段
-
INTA(中断响应):CPU → 外设
- CPU 同意“好,我来处理”,发出响应信号。
-
多级中断控制器时:CPU → PIC,再由 PIC 选出优先级最高的中断源并激活。
3. 向量获取阶段
-
中断向量号/入口地址:外设或 PIC → CPU
- 在向量中断系统中,CPU 在响应后要知道“去哪儿处理”,外设或 PIC 把中断号放在数据总线上交给 CPU。
4. 中断处理执行阶段
-
数据传输:CPU ↔ 外设(或 CPU/DMAC ↔ 外设 ↔ 内存)
-
方向取决于是输入还是输出。
-
输入:外设 → CPU/内存
-
输出:CPU/内存 → 外设
-
5. 中断结束阶段
-
中断结束信号(EOI, End Of Interrupt):CPU → 外设(或 PIC)
-
CPU 在 ISR 末尾告诉中断源:“你这次的活处理完了,可以撤回请求了。”
-
没这一步,中断源可能保持请求电平不放手,导致 CPU 一直重复响应。
-
在 8259A 里就是 CPU 发写命令给 PIC 的 EOI 指令。
-
整个信号方向汇总表
阶段 | 信号 | 方向 | 含义 |
---|---|---|---|
中断请求 | INTR | 外设 → CPU | 外设申请打断 CPU |
中断响应 | INTA | CPU → 外设 | CPU 表示“我接受请求” |
向量传送 | 向量号 | 外设/PIC → CPU | 提供 ISR 的入口号/地址 |
服务执行 | 数据读写 | CPU ↔ 外设 | 处理外设任务,读/写数据 |
中断结束 | EOI | CPU → 外设/PIC | 通知中断源服务结束,撤销请求 |
常考陷阱
-
方向别搞反:
-
INTR:外设→CPU
-
INTA:CPU→外设
-
EOI:CPU→外设
-
-
EOI 是必须的:否则外设可能一直保持请求,CPU会“死循环”进中断。
-
中断控制器存在时:所有“外设→CPU”的信号先走到 PIC,由 PIC 统一裁决后转给 CPU。EOI 信号通常发给 PIC,由 PIC 再清除对应外设的挂起标志。