ARM的GIC2.0的简述
时间:2023-02-03 12:30:00
文章目录
- 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