中断全流程当中的信号方向
一句话结论
- 
中断结束信号(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 再清除对应外设的挂起标志。