《GICv3_Software_Overview_Official_Release_B》学习笔记

1.不同版本的 GIC 架构及其主要功能如下图所示:

2.GICv2m(Generic Interrupt Controller Virtualization Model)是针对ARM架构的GIC(通用中断控制器)的一种扩展, GICv2m扩展为虚拟化环境中的中断管理提供了更好的支持,通过支持消息中断,它能够提高多处理器系统中的中断效率和灵活性。消息中断是指一种中断传递方式,主要用于多处理器系统中的中断管理。在这种模式下,硬件设备发送的中断信号不是简单地通过中断线传递,而是通过消息机制来传递。这种机制通常依赖于总线或共享内存,以便将中断信息直接发送给特定的处理器或处理单元。

3.ICC_SRE_ELx是System Register Enable(SRE)寄存器,它控制了处理器能否使用系统寄存器与中断控制器(GIC)进行交互。这个寄存器的主要作用是启用或禁用通过系统寄存器来访问GIC的功能,从而影响如何处理中断。每个异常级别(EL)都有相应的ICC_SRE_ELx寄存器,其中x是异常级别号(1,2,3)。SRE=1:启用系统寄存器访问,这通常是GICv3模式下推荐的做法,表示可以通过系统寄存器(如ICC_SGI1R_EL1等)来进行中断控制操作。SRE=0:禁用系统寄存器访问,此时需要使用内存映射接口(MMIO)来访问GIC的分发器和CPU接口寄存器,适用于GICv2兼容模式或旧版硬件设计。

4.GICD_CTLR.ARE是中断控制器的亲和路由使能位。ARE=1时启用亲和路由,将中断发送到特定CPU核心;ARE=0时禁用亲和路由,使用传统方法处理中断。下图给出了ICC_SRE_ELx.SRE位和GICD_CTLR.ARE位的几种特定组合,及允许图中所示的特定组合来选择使用GICv3新特性还是使用GICv2遗留操作:

5.在GICv3架构中,中断分为四类:SPI(共享外设中断,Shared Peripheral Interrupt)、PPI(私有外设中断,Private Peripheral Interrupt)、SGI(软件生成中断,Software Generated Interrupt)和LPI(本地外设中断,Locality-specific Peripheral Interrupt)。SPI是外部设备引发的中断,是一个全局外设中断,可以路由到指定的PE,或一组PE。PPI是由处理器核心产生的中断,是针对单个特定PE的外设中断,因此称为“私有外设中断”,例如来自PE通用定时器的中断。SGI是处理器间的通信中断,由软件触发,通常用于核间的线程通信,通过写入GIC中的SGI寄存器来生成(GICD_SGIR寄存器)。LPI是GICv3中的新增功能,它们在很多方面与其他类型的中断不同。特别是,LPI始终是基于消息的中断,并且它们的配置保存在内存中的表中而不是寄存器中(仅当 GICD_CTLR.ARE_NS==1 时才支持 LPI)。

6.每个中断都有一个中断号INTID,根据中断号分类如下:

7.通常是使用专用硬件信号从外设像中断控制器发出中断信号,如下图:

在此基础上,GICv3还开始支持基于消息的中断,基于消息的中断是通过写入中断控制器中的寄存器来设置和清除的中断。在GICv3中,SPI可以是基于消息的中断,但LPI始终是基于消息的中断。

8.在 ARMv8 架构中,亲和性(Affinity)指的是处理器核心的层次结构,它用于描述系统中不同处理器核、集群和群组的关系,尤其是在多核和多集群处理器设计中。亲和性主要用于在中断控制器(如 GICv3)中定义如何将中断路由到不同的处理器核心,以及通过系统中的层次关系来标识不同的处理器和资源。

9.MPIDR_EL1是ARM架构中的一个系统寄存器,称为多功能处理器亲和性寄存器(Multiprocessor Affinity Register)。它用于标识处理器的亲和性域,这些域可以表示处理器的物理和逻辑层次结构,例如处理器、核心、线程等。每个核心都有独立的 MPIDR_EL1 寄存器,并且每个核心的该寄存器值是不同的。MPIDR_EL1中的亲和性的值必须满足GICR_TYPER寄存器中的要求(每个Redistributor与一个PE相连,该寄存器Redistributor Type Register是属于与PE相连的Redistributor的)。

10.CICv3支持Arm TrustZone技术,每个中断必须指定组和安全设置。GICv3支持3中组合,如下图:

Group0 中断作为FIQ类型中断;Group1 中断既可以是IRQ也可以是FIQ类型,这个取决于PE当前的异常级别和安全状态(即下图最左侧那栏所示),FIQ和IRQ是两种中断处理的方式,它们的确和具体的中断号(INTID)没有直接的对应关系。具体如下图:

LPI始终被视为非安全组1中断。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【QT】找不到qwt_plot.h

系统环境: linux 20.04 qt 6.7.2 cmake 3.22 原因: Qwt没有正式的FindQwt.cmake,Qwt也没有提供QwtConfig.cmake。而且cmake不支持qmake的配置特性,也不支持读取mkspecs (.prf)文件。也就是说cmake构建的qt项目不可用qwt。 解决步…

杰发科技——使用ATCLinkTool解除读保护

0. 原因 在jlink供电电压不稳定的情况下,概率性出现读保护问题,量产时候可以通过离线烧录工具避免。代码中开了读保护,但是没有通过can/uart/lin/gpio控制等方式进行关闭,导致无法关闭读保护。杰发所有芯片都可以用本方式解除读保…

Sublime Text4 4189 安装激活【 2025年1月3日 亲测可用】

-----------------测试时间2025年1月3日------------------- 下载地址 官方网址:https://www.sublimetext.com 更新日志:https://www.sublimetext.com/download V4189 64位:https://www.sublimetext.com/download_thanks?targetwin-x64 ....…

前后端规约

文章目录 引言I 【强制】前后端交互的 API请求内容响应体响应码II 【推荐】MVC响应体III【参考】IV 其他引言 服务器内部重定向必须使用 forward;外部重定向地址必须使用 URL 统一代理模块生成,否则会因线上采用 HTTPS 协议而导致浏览器提示“不安全”,并且还会带来 URL 维护…

linux安装redis及Python操作redis

目录 一、Redis安装 1、下载安装包 2、解压文件 3、迁移文件夹 4、编译 5、管理redis文件 6、修改配置文件 7、启动Redis 8、将redis服务交给systemd管理 二、Redis介绍 1、数据结构 ①字符串String ②列表List ③哈希Hash ④集合Set ⑤有序集合Sorted Set 2、…

在线RSA pem 密钥pkcs1转pkcs8格式--支持公钥和私钥

具体前往:在线RSA密钥pkcs1转pkcs8--在线将RSA私钥/公钥的pkcs1格式转换到pkcs8格式,支持pem格式

修复OpenLinkSaas客户端在使用AtomGit账号时页面崩溃

问题描述:当一个新的AtomGit用户登录OpenLinkSaas客户端后出现了页面崩溃。 从浏览器控制台来看,是gitNoticeList出现了null。 查看代码后发现是请求atomGit api是返回的一个null的列表 接下来我们加下保护性的代码,来兼容null或undefine的情…

rocketmq-pull模式-消费重平衡和拉取PullTaskImpl线程

1、观察consumer的线程模型 使用arthas分析 MQClientFactoryScheduledThread 定时任务线程 (和push模式一致) 定时任务线程,包含如下任务: 每2分钟更新nameServer列表 每30秒更新topic的路由信息 每30秒检查broker的存活&#x…

Ungoogled Chromium127 编译指南 MacOS 篇(二)- 项目要求

1. 引言 在开始编译 Ungoogled Chromium 之前,我们需要确保系统满足所有必要的硬件和软件要求。由于浏览器编译是一个资源密集型的任务,合适的硬件配置和完整的软件环境至关重要。本文将详细介绍编译 Ungoogled Chromium 所需的各项要求。 2. 硬件要求…

51单片机——共阴数码管实验

数码管中有8位数字,从右往左分别为LED1、LED2、...、LED8,如下图所示 如何实现点亮单个数字,用下图中的ABC来实现 P2.2管脚控制A,P2.3管脚控制B,P2.4管脚控制C //定义数码管位选管脚 sbit LSAP2^2; sbit LSBP2^3; s…

调试:用电脑开发移动端网页,然后用手机真机调试

一、背景 电脑开发移动端,然后想真机调试... 二、实现 2.1、电脑和手机链接相同局域网 2.2、pnpm run dev 启动项目 2.3、浏览器访问 localhost:3001/login 2.4、Windowsr 输入cmd,在cmd输入 ipconfig 2.5、浏览器访问 ip地址加/login 2.6、手机端…

Kbuild学习知识点

1.Kbuild本质:一个可扩展、可配置的Makefile框架,递归式Makefile,菜单式配置。 2.Kbuild构成: Makefile:顶层目录下的Makefile.config:内核的配置文件arch/S(ARCH)/Makefile:跟平台架构相关的Makefilescripts/Makefile.*:通用编…

《Vue3实战教程》39:Vue3无障碍访问

如果您有疑问,请观看视频教程《Vue3实战教程》 无障碍访问​ Web 无障碍访问 (也称为 a11y) 是指创建可供任何人使用的网站的做法——无论是身患某种障碍、通过慢速的网络连接访问、使用老旧或损坏的硬件,还是仅处于某种不方便的环境。例如,…

抢先体验:人大金仓数据库管理系统KingbaseES V9 最新版本 CentOS 7.9 部署体验

一、简介 KingbaseES 是中国人大金仓信息技术股份有限公司自主研发的一款通用关系型数据库管理系统(RDBMS)。 作为国产数据库的杰出代表,它专为中国市场设计,广泛应用于政府、金融、能源、电信等关键行业,以高安全性…

基于 GitHub API 的 Issue 和 PR 自动化解决方案

文章目录 摘要引言优化 Issue 和 PR 管理的方法工具选择流程优化 自动化 Issue 和 PR 管理代码逻辑详解获取 Issue 数据为 Issue 添加标签将 Issue 分配给开发者主逻辑 实际运行效果进一步扩展QA 环节总结参考资料 摘要 在开源项目中,Issue 和 Pull Request&#x…

趣味编程:心形曲线

目录 1.序言 2.代码展示 3.代码详解 3.1 头文件包含 3.2 绘制坐标轴函数 3.3 main 函数主体部分 4. 小结 1.序言 2025年的第一篇博客就用这个笛卡尔心形图开篇吧,寓意着新年大家能够有心有所属,祝诸位程序猿 / 程序媛 能够早点遇到自己的另一半。…

解决uniapp H5页面限制输入框只能输数字问题

工作记录 最最近在做 uniapp 开发的移动端 H5 页面,有个需求是金额输入框只能输入数字,不能输入小数点和其他字符,经过各种尝试,发现其他字符可以通过正则过滤掉,但是输入小数点的话,因为没有触发 input 和…

group by 执行顺序

后面也会持续更新,学到新东西会在其中补充。 建议按顺序食用,欢迎批评或者交流! 缺什么东西欢迎评论!我都会及时修改的! 感谢各位大佬写的文章让我学到很多东西!只是在各位大佬的基础加了我自己的思路&a…

初学stm32 --- FSMC驱动LCD屏

目录 FSMC简介 FSMC框图介绍 FSMC通信引脚介绍 FSMC_NWE 的作用 FSMC_NWE 的时序关系 FSMC_NOE 的含义 FSMC_NOE 的典型用途 FSMC_NOE 的时序关系 使用FSMC驱动LCD FSMC时序介绍 时序特性中的 OE ILI9341重点时序: FSMC地址映射 HADDR与FSMC_A关系 LCD的…

Nginx - 整合lua 实现对POST请求的参数拦截校验(不使用Openresty)

文章目录 概述步骤 1: 安装 Nginx 和 Lua 模块步骤 2: 创建 Lua 脚本用于参数校验步骤 3: 配置 Nginx 使用 Lua 脚本写法二: 状态码写法三 : 返回自定义JSON复杂的正则校验 步骤 4: 测试和验证ngx.HTTP_* 枚举值 概述 一个不使用 OpenResty 的 Nginx 集…