ARM的GIC2.0的简述

1.什么是GIC

GIC即Generic Interrupt Controller ,中断控制器,顾名思义,用来管理ARM中断的IP。ARM的gic一共分为4个版本,从gic1.0-gic4.0,本文主要介绍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的寄存器主要分为4种,主要包括:
— 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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值