1. ARM Cortex-A15 GIC架构深度解析
在ARM多核处理器架构中,通用中断控制器(GIC)扮演着系统"交通警察"的角色。以Cortex-A15 MPCore处理器搭载的GICv2为例,它如同一个精密的调度中心,协调着来自256个不同"路口"(中断源)的"车辆"(中断请求),确保它们有序到达正确的"目的地"(处理器核心)。这种设计使得手机能流畅处理触摸屏输入的同时播放音乐,而工业控制器则可以精确协调多个传感器的实时数据。
1.1 GICv2核心架构组成
GICv2采用分布式设计,主要包含三个功能单元:
-
中断分发器(Distributor) - 系统的"总调度室"
- 物理基地址:PERIPHBASE + 0x1000
- 负责全局中断使能控制
- 实现256个中断的优先级排序
- 将中断路由到目标CPU接口
- 支持中断状态跟踪(pending/active)
-
CPU接口(CPU Interface) - 各核心的"专属接待处"
- 每个核心独立一套
- 物理基地址:PERIPHBASE + 0x2000
- 提供中断应答(acknowledge)机制
- 实现核心本地优先级屏蔽
- 处理中断完成通知(EOI)
-
虚拟接口(Virtual Interface) - 虚拟化的"VIP通道"
- 基地址:PERIPHBASE + 0x4000(公共区域)
- 支持虚拟化扩展
- 维护4个List Register(GICH_LR0~3)
- 实现虚拟中断注入机制
关键设计细节:GIC时钟采用分频设计,必须满足CLK:GIC_CLK = N:1(N≥2)。例如当CPU主频为1.5GHz时,GIC可配置为750MHz或500MHz,这种设计降低了中断控制器对时序的敏感性。
1.2 中断源分类与编号
GICv2采用分层式中断管理,所有中断源被划分为三类,如同医院急诊科的分诊系统:
| 中断类型 | 中断ID范围 | 触发方式 | 典型应用场景 |
|---|
