文章目录
- 1.什么是GIC
- 2.GIC2.0的框图
-
- 2.1 Distributor分配器
- 2.2 CPU interface
- 3.GIC的寄存器
-
- 3.1 gic的distributor
- 3.2 gic的cpu interface
- 4.参考资料
1.什么是GIC
GIC即Generic Interrupt Controller ,顾名思义,中断控制器用于管理ARM中断的IP。ARM的gic从gic1.0-gic4.本文主要介绍本文gic2.0。
2.GIC2.0的框图
GIC主要分为以下几个部分:Distributor分配器、CPU在虚拟化支持的情况下,两部分CPU接口部分;
2.1 Distributor分配器
该分配器集中所有中断源,确定每个中断的优先级CPU界面将优先级最高转发给界面,并进行优先级屏蔽和抢占; 编程接口: 1.全局启用向CPU中断接口转发。 2.启用或禁止每个中断。 3.设置每个中断的优先级。 4.设置每个中断的目标处理器列表。 5.将每个外设中断设置为电平触发或边沿触发。 6.将每个中断设置为组0或组1。 7.中断状态的可见性 8.软件设置或清除外设中断状态的机制。 其中每一个processor都有1020个中断号,从ID0-ID1019,其中ID0-ID31是processor私有中断,ID32-ID1019为processor共享中断; ID0-ID15 SGIs ID16-ID31 PPIs ID32-ID1019 SPIs
2.2 CPU interface
每一个cpu interface连接着GIC到processor,ARM还提供编程接口: 1.允许向处理器发送中断请求信号 2.确认中断 3.指示完成中断处理 4.设置处理器中断优先级屏蔽 5.为处理器定义抢占策略 6.中断处理器的最高优先级。 如:中断bypass,通过控制GICC_CTLR实现相应功能的寄存器。
3.GIC的寄存器
gic寄存器主要分为四种,主要包括: — D, indicating a Distributor register — C, indicating a CPU interface register — H, indicating a virtual interface control register, typically accessed by a hypervisor — V, indicating a virtual CPU interface register
3.1 gic的distributor
arm对gic的distributor提供了编程的寄存器接口,可供用户进行配置。
3.2 gic的cpu interface
同样arm也对cpu interface提供用户编程界面;
4.参考资料
IHI0048B_b_gic_architecture_specification