当前位置: 首页 > news >正文

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的中断生命周期是一样的。

http://www.lryc.cn/news/267613.html

相关文章:

  • Kafka日志
  • gitattributes配置文件的作用
  • 【华为鸿蒙系统学习】- 如何利用鸿蒙系统进行App项目开发|自学篇
  • 基于SpringBoot的足球社区管理系统
  • ubuntu22.04上安装charles-proxy
  • (2021|CVPR,XMC-GAN,对比学习,注意力自调制)用于文本到图像生成的跨模态对比学习
  • 【Linux基本命令】
  • Wi-Fi、蓝牙、ZigBee等多类型无线连接方式的安全物联网网关设计
  • 华清远见嵌入式学习——ARM——作业4
  • 25. K 个一组翻转链表
  • jQuery的事件-动画-AJAX和插件
  • 【开源】基于JAVA语言的企业项目合同信息系统
  • 遗传算法的应用——求解一元函数的极值
  • Power BI 学习
  • PPT中加入页码
  • xxl-job使用笔记
  • 微短剧,会成为长视频的“救命稻草”吗?
  • web架构师编辑器内容-创建业务组件和编辑器基本行为
  • 力扣刷题记录(18)LeetCode:474、518、377、322
  • MongoDB创建和查询视图(一)
  • paddle 53 基于PaddleClas2.5训练自己的数据(训练|验证|推理|c++ 部署)
  • 智能优化算法应用:基于卷积优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 项目中日期封装
  • 7.仿若依后端系统业务实践
  • java:4-9键盘输入
  • 制作自己的 Docker 容器
  • Linux的账号及权限管理
  • Flink 状态管理与容错机制(CheckPoint SavePoint)的关系
  • CSS中更加高级的布局手段——定位之绝对定位
  • SQL server 数据库练习题及答案(练习3)