中断详解:类型、机制与现代计算应用
现代PC依赖中断请求协调硬件功能。概念源于1953年UNIVAC 1103,1954年IBM 650引入中断屏蔽。为个别设备分配不同IRQ线对高效运行至关重要。当键盘、鼠标等外设需要CPU关注时,产生中断触发相应中断服务程序(ISR)。ISR对时敏任务、数据传输、错误处理、看门狗定时器、陷阱不可或缺。
什么是中断?
定义: 中断是要求处理器立即关注的输入信号,在硬件和软件事件中优先级最高。早期计算中,处理器必须轮询每个外设和程序信号,浪费时钟周期、降低性能。中断机制反转此模型:外设或软件模块向CPU发信号,CPU挂起当前任务、保存状态、执行相应ISR。ISR完成后,CPU恢复先前状态继续执行。
中断类型
中断大致分两类。
硬件中断
外部设备向CPU发送电子信号,指示需要立即服务。键盘按键、鼠标移动、传感器警报为典型例子。硬件中断异步到达,可在指令执行任意点发生。
硬件中断进一步细分:
- 可屏蔽中断 – 处理器中断屏蔽寄存器控制特定中断源启用/禁用。寄存器每位对应特定IRQ线;位置1允许服务中断,清零则屏蔽。
- 不可屏蔽中断(NMI) – NMI优先级最高,处理器无法禁用。典型用于看门狗定时器超时、硬件故障等关键事件。
软件中断
CPU执行特殊指令或程序执行中出现异常条件时自产生中断。软件中断实现系统调用、异常处理、陷阱例程。
触发方式
中断线可由电平或信号边沿触发。两种方式在源如何通知CPU上不同。
电平触发中断
此模式下,中断线只要源需要服务就保持有效。若ISR运行时源保持有效,CPU完成后重新调用处理程序。电平触发输入若信号长时间保持有效可能有问题。
边沿触发中断
边沿触发中断在信号从低到高或高到低跃变时立即触发。CPU不依赖信号电平,仅依赖跃变,适合快速一次性事件。
系统实现
中断作为专用控制线接入硬件或嵌入内存子系统。通过可编程中断控制器(PIC)实现时,多源共享单CPU引脚,简化布线并实现优先级仲裁。
共享中断请求(IRQ)
边沿触发中断下,上拉/下拉电阻维持线已知状态。各设备脉冲沿共享线传播,CPU在尾沿采样确保无脉冲丢失。旧ISA板依赖共享IRQ可能争用;现代PCI架构通过专用控制器和动态分配缓解。
混合模式
混合系统结合边沿触发与电平验证,确保有效信号不被忽略。常用于不可屏蔽输入,减少误触发。
消息信号中断
设备不通过专用线,而是经PCI Express等总线发送消息通知CPU。消除物理引脚,支持更高吞吐。
门铃中断
门铃中断是软件驱动信号:设备向共享内存区写数据再触发中断,允许CPU处理就绪数据。
多处理器IPI
多核系统中,一处理器可向另一发送处理器间中断(IPI),跨核协调任务或信号事件。
典型用途/应用
- 处理硬件定时器、键盘/鼠标输入。
- 响应时敏或实时事件。
- 管理外设数据传输。
- 处理高优先级信号如掉电请求、陷阱、看门狗定时器。
- 报告异常CPU事件。
- 外部电源丢失时有序关机。
- 产生周期性中断用于绝对计时。
常见问题
1. 为什么使用中断?
中断将CPU焦点引向紧急硬件或软件任务,无需持续轮询即可及时响应。
2. 什么是NMI?
NMI代表不可屏蔽中断,处理器无法禁用的信号,保留给关键事件。
3. 中断确认线功能是什么?
向设备发信号CPU准备好接收中断,允许设备将ISR地址放总线上。
4. 描述硬件中断并举例。
硬件中断由外部设备产生——键盘按下、鼠标点击、传感器输出——需CPU立即服务。
5. 描述软件中断。
软件中断由处理器通过特殊指令调用,如系统调用或异常处理例程。
6. 哪个中断优先级最高?
- 不可屏蔽中断(NMI)和陷阱优先级最高。
7. 列举中断用途。
- 快速响应实时事件。
- 外设数据传输。
- 处理掉电、看门狗定时器等关键任务。
- 报告异常CPU事件。
8. 什么是混合类型系统实现?
混合系统同时使用边沿触发和电平验证信令,确保捕获真实事件同时减少虚假触发。
本文探讨中断重要性,详述类型、系统集成、实际应用。
嵌入式