ARM GIC(四) gicv3架构基础

GICv3架构是GICv2架构的升级版,增加了很多东西。变化在于以下:

使用属性层次(affinity hierarchies),来对core进行标识,使gic支持更多的core

将cpu interface独立出来,用户可以将其设计在core内部

增加redistributor组件,用来连接distributor和cpu interface

增加了LPI,使用ITS来解析

对于cpu interface的寄存器,增加系统寄存器访问方式

一、gicv3结构

包含了以下的组件:

distributor:SPI中断的管理,将中断发送给redistributor

redistributor:PPI,SGI,LPI中断的管理,将中断发送给cpu interface

cpu interface:传输中断给core

ITS:用来解析LPI中断

其中,cpu interface是实现在core内部的,distributor,redistributor,ITS是实现在gic内部的。

cpu interface和gic的redistributor通信,通过AXI-Stream协议,来实现通信。

二、中断分组

gicv3,将中断分成了2个大组,group0和group1。

group0:提供给EL3使用

group1:又分为2组,分别给安全中断和非安全中断使用

如下图所示:

以下是IRQ,FIQ与组的对应关系。

中断生命周期,如下图所示:

generate:外设发起一个中断

distribute:distributor对收到的中断源进行仲裁,然后发送给对应的cpu interface

deliver:cpu interface将中断发送给core

activate:core通过读取 GICC_IAR 寄存器,来对中断进行认可

priority drop: core通过写 GICC_EOIR 寄存器,来实现优先级重置

deactivation:core通过写 GICC_DIR 寄存器,来无效该中断

这个中断生命周期,和gicv2的中断生命周期是一样的。

相关推荐
还在忙碌的吴小二8 小时前
OEC设备刷写飞牛NAS ARM版(RK3566)超详细教程
arm开发
小程故事多_808 小时前
极简即王道 下一代Agent架构Pi Agent Core设计逻辑深度解析
人工智能·架构·aigc
橙序员小站12 小时前
架构图不再手画:用 LikeC4 + AI,让架构“活”起来
后端·架构
Coder_Boy_13 小时前
JDK17_JDK21并发编程:资深架构常用模式+最佳实践
java·开发语言·spring boot·架构
钛态13 小时前
Flutter for OpenHarmony 实战:Stack Trace — 异步堆栈调试专家
android·flutter·ui·华为·架构·harmonyos
最贪吃的虎13 小时前
windows上如何可视化访问并远程操作linux系统上运行的浏览器或者linux可视化桌面
java·linux·运维·windows·分布式·后端·架构
钛态14 小时前
Flutter for OpenHarmony 实战:YAML — 结构化配置解析专家
flutter·ui·华为·架构·harmonyos
heimeiyingwang14 小时前
向量数据库VS关系数据库VS非关系数据库
运维·人工智能·重构·架构·机器人
不惑_14 小时前
通俗理解消息传递机制
人工智能·神经网络·生成对抗网络·架构
匀泪15 小时前
云原生(Keepalived高可用架构实验)
云原生·架构