《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.rhkb.cn/news/501967.html

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

相关文章

PADS Logic原理图中有很多页原理图,如何(怎样)删除其中一页或者多页

我们在进行PADS Logic进行原理图设计的时候,有时候可能遇到一次性设计了很多页的原理图,比如说十几页的原理图。那么我们在进行PADS Layout的时候,可能将这些原理图绘制两块板或者多块PCB板,那么这时候我们需要将其中的一张原理图…

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

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

问题清除指南|关于num_classes与 BCELoss、BCEWithLogitsLoss 和 CrossEntropyLoss 的关系

前言:关于「 num_classes 1 」引发的探究。 2024年尾声,学弟问到一个问题:在研究工作 CNNDetection 的github开源代码 networks/trainer.py 文件的 line 27 self.model resnet50(num_classes1) 中,变量 num_classes 的值为1&…

CSS——1.优缺点

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><link rel"stylesheet" type"text/css" href"1-02.css"/></head><body><!--css&#xff1a;层叠样式表…

ETCD渗透利用指南

目录 未指定使用put操作报错 未指定操作版本使用get报错 首先etcd分为两个版本v2和v3&#xff0c;不同的API结果无论是访问URL还是使用etcdctl进行通信&#xff0c;都会导致问题&#xff0c;例如使用etcdctl和v3进行通信&#xff0c;如果没有实名ETCDCTL_API3指定API版本会直接…

开源数据集成平台白皮书重磅发布《Apache SeaTunnel 2024用户案例合集》!

2025年新年临近&#xff0c;Apache SeaTunnel 社区用户案例精选&#x1f4d8;也跟大家见面啦&#xff01;在过去的时间里&#xff0c;SeaTunnel 社区持续成长&#xff0c;吸引了众多开发者的关注与支持。 为了致谢一路同行的伙伴&#xff0c;也为了激励更多人加入技术共创&…

【RTD MCAL 篇3】 K312 MCU时钟系统配置

【RTD MCAL 篇3】 K312 MCU时钟系统配置 一&#xff0c;文档简介二&#xff0c; 时钟系统理论与配置2.1 K312 时钟系统2.1.1 PLL2.1.2 MUX_0系统2.1.3 MUX_6 时钟输出2.1.4 option B推荐方案 2.2 EB 配置2.2.1 General 配置2.2.2 McuClockSettingConfig配置2.2.2.1 McuFIRC配置…

vite-plugin-imagemin安装问题

vite-plugin-imagemin 是一款图片资源压缩插件,能够在打包的时候显著的降低图片资源占用。不过,在安装过程中我们遇到了如下的问题。 对于上面的问题,有以下几种常见的解决方案: 1,使用 yarn 在 package.json 内配置(推荐) 打开 package.json 配置文件,然后添加如下脚本…

c-动态内存管理 (动态内存管理比较深入的分析和理解博客总结)

本节博客主要是堆C语言动态内存管理进行一定深度的谈论, 主要谈论主题请见目录~ 目录 1. 复习 与 铺垫(动态内存管理基本知识)1.1 什么是动态内存管理(基本代码)?1.2 为什么要有动态内存管理?1.3 什么是野指针? 2. C程序地址空间分布2.1 两者的空间是如上图所示的吗? 我们验…

【JVM】总结篇-运行时内存篇

文章目录 JVM内存模型&#xff08;内存结构&#xff09;程序计数器 pc虚拟机栈本地方法栈 native堆堆空间堆中一些JVM参数堆中垃圾回收过程MinorGC MajorGC FullGC年轻代GC(Minor GC)触发机制&#xff1a;老年代GC&#xff08;Major GC/Full GC&#xff09;触发机制&#xff1a…

Tableau数据可视化与仪表盘搭建-安装教程

下载 tableau.com/zh-cn/support/releases 滚动到最下方的下载 在下载的同时 我们点击登录&#xff0c;去注册一个tableau的账号 下面点击我们下载好的tableau安装程序 不要自定义安装&#xff0c;会有路径问题 点击试用14天 点击激活 激活学生 tableau.com/zh-cn/academic…

GitHub的简单操作

引言 今天开始就要开始做项目了&#xff0c;上午是要把git搭好。搭的过程中遇到好多好多的问题。下面就说一下git的简单操作流程。我们是使用的GitHub,下面也就以这个为例了 一、GitHub账号的登录注册 https://github.com/ 通过这个网址可以来到GitHub首页 点击中间绿色的S…

【2025最新计算机毕业设计】基于Spring Boot+Vue影院购票系统(高质量源码,提供文档,免费部署到本地)

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

数据安全防护

数据安全防护有几个层面 边界安全 网络防火墙负责的部分 认证 kerberos负责的部分 授权 识别用户是否有访问某个模块的权限 认证是kerberos负责的事情 1. 客户端请求认证服务器&#xff0c;希望得到访问服务端票据的票据 2.客户端拿到访问服务端票据的票据后&#xff0c;去…

Cursor连接腾讯云Cloud Studio开发环境

文章目录 环境准备Cloud StudioCursor Cursor连接Cloud Studio开发环境 环境 腾讯云Cloud Studio语言模板All In One实例Windows 11Firefox 133.0.3 (64 位)Cursor 0.44.9 准备 Cloud Studio 在腾讯云Cloud Studio&#xff08; https://ide.cloud.tencent.com/ &#xff09…

【工具整理】WIN换MAC机器使用工具整理

最近公司电脑升级&#xff0c;研发同学统一更换了 Mac Book Pro 笔记版电脑&#xff0c;整理一下安装了那些软件以及出处&#xff0c;分享记录下&#xff5e; 知识库工具 1、语雀 网址&#xff1a;语雀&#xff0c;为每一个人提供优秀的文档和知识库工具 语雀 个人花园&…

面试题解,Java中的“对象”剖析

一、说一说JVM中对象的内存布局&#xff1f;new一个对象到底占多大内存&#xff1f; 话不多说&#xff0c;看下图&#xff0c;对象的内存布局图 一个对象的内存布局主要由三部分组成&#xff1a;对象头&#xff08;Object Header&#xff09;、实例数据&#xff08;Instance D…

大白话拆解——多线程中关于死锁的一切(七)(已完结)

前言&#xff1a; 25年初&#xff0c;这个时候好多小伙伴都在备战期末 小编明天还有一科考试&#xff0c;日更一篇&#xff0c;今天这篇一定会对小白非常有用的&#xff01;&#xff01;&#xff01; 因为我们会把案例到用代码实现的全过程思路呈现出来&#xff01;&#xff…

家教老师预约平台小程序系统开发方案

家教老师预约平台小程序系统将连接学生/家长与家教老师&#xff0c;提供一站式的家教服务预约体验。 一、用户需求分析1、家教老师&#xff1a;希望获得更多的学生资源&#xff0c;通过平台展示自己的教学特长和经验&#xff0c;管理个人日程&#xff0c;接收并确认预约请求&a…

windows 图形基础架构简介

背景 本文尝试对Windows系统中的一些Graphic相关的概念进行介绍和厘清。 windows图形基础架构简介 Windows 为图形提供了多个 API&#xff0c;下图显示了这些 API。 上图出自微软官方https://learn.microsoft.com/en-us/windows/win32/learnwin32/overview-of-the-windows-…