中断机制在处理器中扮演着一个至关重要的角色,它是处理器异步响应外围设备请求的核心方式。从技术的深层次来看,中断是处理器在正常运行过程中,因外部或内部事件(如外围设备的输入/输出请求、异常错误等)而暂时中断当前执行的程序,转而执行特定的中断服务程序(Interrupt Service Routine, ISR)的过程。
在操作系统的上下文中,中断处理是外围设备管理的基石。外围设备如硬盘、键盘、鼠标等,它们的工作通常是异步的,即它们不会按照处理器执行指令的线性顺序来请求服务。中断机制允许处理器在这些设备需要服务时,能够立即响应,而不必等待处理器完成当前任务。这种异步处理的能力极大地提高了系统的响应性和效率。
此外,中断机制还在系统调度和核间交互中发挥着不可或缺的作用。系统调度是操作系统根据一定的策略选择下一个要执行的进程或线程的过程。当中断发生时,处理器可能会根据中断的类型和优先级来决定是否切换当前执行的上下文,从而实现任务的快速切换和调度。而在多核或多处理器的系统中,中断也是核间通信和同步的重要手段,它可以帮助不同的处理器核心之间传递信息、协调工作。
这里对中断在系统中的介绍会包括硬件原理、中断驱动解析、上半部与下半部、以及softirq, tasklet, workqueue等机制。
GIC,Generic Interrupt Controller。是ARM公司提供的一个通用的中断控制器。主要作用为: 接受硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理。
当前GIC 有四个版本,GIC v1~v4, 本文主要介绍GIC v3控制器。
GICv3定义了以下中断类型:
中断类型 | 硬件中断号 |
---|---|
SGI | 0-15 |
PPI | 16-31 |
SPI | 32-1019 |
reserved | ...... |
LPI | 8192-MAX |