当前位置: 首页 > 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的中断生命周期是一样的。

相关文章:

  • ModuleNotFoundError: No module named ‘tensorflow‘
  • 【华为OD题库-107】编码能力提升计划-java
  • 出现 Error:Unable to access jarfile xxxx\target\nacos-server.jar 解决方法
  • 芯科科技以卓越的企业发展和杰出的产品创新获得多项殊荣
  • Apache Flink 进阶教程(七):网络流控及反压剖析
  • SpringSecurity6 | 登录失败后的JSON处理
  • vue3项目 - 使用 pnpm 包管理器来创建项目
  • Power BI 学习
  • 直接插入排序【从0-1学数据结构】
  • Django 简单图书管理系统
  • 漏洞复现-泛微OA xmlrpcServlet接口任意文件读取漏洞(附漏洞检测脚本)
  • [足式机器人]Part2 Dr. CAN学习笔记-Ch00 - 数学知识基础
  • Flink系列之:深入理解ttl和checkpoint,Flink SQL应用ttl案例
  • Nessus详细安装-windows (保姆级教程)
  • 用C/C++实现MSML协议栈的详细介绍
  • CEF与代理
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Python爬虫--- 1.3 BS4库的解析器
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Vultr 教程目录
  • 二维平面内的碰撞检测【一】
  • 仿天猫超市收藏抛物线动画工具库
  • 给Prometheus造假数据的方法
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 配置 PM2 实现代码自动发布
  • 思考 CSS 架构
  • 怎么把视频里的音乐提取出来
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #《AI中文版》V3 第 1 章 概述
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (1)无线电失控保护(二)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (补)B+树一些思想
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (独孤九剑)--文件系统
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (转)ABI是什么
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .Net Redis的秒杀Dome和异步执行
  • .stream().map与.stream().flatMap的使用
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [].slice.call()将类数组转化为真正的数组
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C/C++随笔] char与unsigned char区别
  • [CTO札记]盛大文学公司名称对联
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb
  • [Geek Challenge 2023] web题解
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间