《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中断。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【循环神经网络】RNN介绍

在人工神经网络中,”浅层网络”是指具有一个输入层、一个输出层和最多一个没有循环连接的隐藏层的网络。随着层数的增加,网络的复杂性也在增加。更多的层或循环连接通常会增加网络的深度,并使其能够提供不同级别的数据表示和特征提取&#xf…

C#调用Lua

目录 xLua导入 打包工具导入 单例基类导入与AB包管理器导入 Lua解析器 文件加载与重定向 Lua解析器管理器 全局变量获取 全局函数获取 对于无参数无返回值 对于有参数有返回值 对于多返回值 对于变长参数 完整代码 List与Dictionary映射Table 类映射Table 接口映射…

麒麟操作系统服务架构保姆级教程(七)Nginx+PHP+Mysql部署服务

上边几篇文章已经交过大家二进制部署nginx和php,现在咱们打通nginx和php,mysql和php,开始部署服务,学会部署服务之后就可以开始学习负载均衡啦,话不多说,咱们直接开始~~~ 目录 一、.nginx部署 二、安装PH…

开源模型迎来颠覆性突破:DeepSeek-V3与Qwen2.5如何重塑AI格局?

不用再纠结选择哪个AI模型了!chatTools 一站式提供o1推理模型、GPT4o、Claude和Gemini等多种选择,快来体验吧! 在全球人工智能模型快速发展的浪潮中,开源模型正逐渐成为一股不可忽视的力量。近日,DeepSeek-V3和Qwen 2.…

【Java项目】基于SpringBoot的【新生宿舍管理系统】

【Java项目】基于SpringBoot的【新生宿舍管理系统】 技术简介:本系统使用采用B/S架构、Spring Boot框架、MYSQL数据库进行开发设计。 系统简介:管理员登录进入新生宿舍管理系统可以查看首页、个人中心、公告信息管理、院系管理、班级管理、学生管理、宿舍…

《learn_the_architecture_-_trustzone_for_aarch64_102418_0101_03_en》学习笔记

1.TrustZone是Arm A-profile架构中安全架构的名称。TrustZone首次在Armv6K中引入,Armv7-A和Armv8-A也支持。TrustZone提供两个执行环境,它们之间具有系统范围的硬件强制隔离。在Arm架构中,有两种安全状态:安全和非安全。在EL0、EL…

Excel | 空格分隔的行怎么导入excel?

准备工作:windows,一个记事本程序和微软的Excel软件。 打开记事本,选中所有内容,按CtrlA全选,然后复制(CtrlC)。 在Excel中,定位到你想粘贴的单元格,按CtrlV进行粘贴。粘贴后,你会在…

南京观海微电子----GH7009国宇测试盒使用

1. SPI接线 针对7009: 2. 国宇上位机代码准备 在主函数首尾两端加入IO2时序控制的代码、以及国语SPI有效位控制的代码(请注意7009和其他700x使用的有效位控制不一致,需要用哪一款加入哪一行即可): 三、国宇SPI读的使…

Arduino Uno简介与使用方法

目录 一、Arduino Uno概述 1. 硬件特性 2. 开发环境 二、Arduino Uno的基本使用方法 1. 硬件连接 2. 软件编程 三、Arduino Uno编程基础 1. 基本语法 2. 常用函数 四、Arduino Uno应用举例 1. LED闪烁 2. 温度检测 3. 超声波测距 五、Arduino Uno的扩展与应用 1…

使用命令行管理git项目

# 初始化一个新的Git仓库 git init # 添加文件到暂存区 git add <file> # 提交暂存区的更改到仓库 git commit -m "commit message" # 查看当前仓库的状态 git status # 查看提交历史 git log # 查看文件的改动 git diff <file> # 创建一个新…

网络安全的学习与实践经验(附资料合集)

学习资源 在线学习平台&#xff1a; Hack This Site&#xff1a;提供从初学者到高级难度的挑战任务&#xff0c;适合练习各种网络安全技术。XCTF_OJ&#xff1a;由XCTF组委会开发的免费在线网络安全网站&#xff0c;提供丰富的培训材料和资源。SecurityTube&#xff1a;提供丰…

基于STM32的热带鱼缸控制系统的设计

文章目录 一、热带鱼缸控制系统1.题目要求2.思路3.电路仿真3.1 未仿真3.2 开始仿真&#xff0c;显示屏显示水温、浑浊度、光照强度等值3.3 当水温低于阈值&#xff0c;开启加热并声光报警3.4 当浑浊度高于阈值&#xff0c;开启自动换水并声光报警3.5 当光照低于阈值&#xff0c…

【DevOps】Jenkins项目发布

Jenkins项目发布 文章目录 Jenkins项目发布前言资源列表基础环境一、Jenkins发布静态网站1.1、项目介绍1.2、部署Web1.3、准备gitlab1.4、配置gitlab1.5、创建项目1.6、推送代码 二、Jenkins中创建gitlab凭据2.1、创建凭据2.2、在Jenkins中添加远程主机2.3、获取gitlab项目的UR…

SSM-SpringMVC

目录 “为什么要学 SpringMVC&#xff1f;它和 Servlet 是什么关系&#xff1f;” “什么是异步&#xff1f;为什么异步交互中常用 JSON 格式&#xff1f;异步请求和 JSON 如何配合&#xff1f;” 一、概述 SpringMVC主要负责 1 SpringMVC的常用组件 2 SpringMVC的工作流程…

基层医联体医院患者历史检验检查数据的快速Python编程分析

​​​​​​​ 一、引言 1.1 研究背景与意义 在当今数字化医疗时代,医疗数据呈爆炸式增长,涵盖患者的基本信息、病史、检验检查结果、治疗方案等各个维度。这些海量且复杂的数据蕴含着巨大价值,为精准医疗决策提供了关键依据。通过对患者历史检验检查数据的深入对比分析…

计算机网络基础(7)中科大郑铨老师笔记

应用层 目标&#xff1a;  网络应用的 原理&#xff1a;网络应用协议的概念和实现方面 传输层的服务模型 客户-服务器模式 对等模式(peerto-peer) 内容分发网络  网络应用的 实例&#xff1a;互联网流行的应用层协 议  HTTP  FTP  SMTP / POP3 / IMAP  DNS…

Fabric环境部署-Git和Node安装

一.安装Git&#xff08;v2.43.0&#xff09; Git 是一个开源的分布式版本管理系统&#xff08;也是全球最大的开源软件存储服务器&#xff09;&#xff0c;用于敏捷高效地处理任何或小或大的项目。搭建区块链需要使用Git&#xff0c;因为区块链的开发和部署需要使用版本控制工…

SAP MM物料管理模块常见BAPI函数清单

【SAP系统研究】 #SAP #MM #物料管理 #函数 #BAPI 1、物料主数据 BAPI_MATERIAL_SAVEDATA 创建/更改物料主数据 BAPI_MATERIAL_SAVEREPLICA 物料主数据视图扩充 BAPI_MATERIAL_EXISTENCECHECK 检查物料主数据是否存在 BAPI_MATERIAL_GETLIST 显示物料主数据明细 BAPI_MATERIALG…

Windows11安装Oracle11g以及plsqldev工具连接配置

文章目录 一、安装Oracle数据库软件二、配置数据库三、配置监听&#xff08;listener.ora&#xff09;四、本地网络服务名配置&#xff08;tnsnames.ora&#xff09;五、网络服务名配置以及监听文件路径六、plsqldev工具连接Oracle配置 一、安装Oracle数据库软件 点击“setup.…

unity学习6:unity的3D项目的基本界面和菜单

目录 1 unity界面的基本认识 1.1 file 文件 1.2 edit 编辑/操作 1.3 Assets 1.4 gameobject 游戏对象 1.5 组件 1.6 windows 2 这些部分之间的关系 2.1 关联1&#xff1a; Assets & Project 2.2 关联2&#xff1a;gameobject & component 2.3 关联3&#xf…