ARM IHI0069F GIC architecture specification (3)

news/2024/4/28 16:01:49

1.2 术语
本手册中的架构描述使用与 Armv8 架构相同的术语。 有关此术语的更多信息,请参阅 Arm® 架构参考手册 Armv8 A 部分的介绍,了解 Armv8-A 架构配置文件。
此外,在适当的情况下使用 AArch64 系统寄存器名称,而不是同时列出 AArch32 和 AArch64 系统寄存器名称。 AArch64 寄存器名称上的 ELx 后缀表示可以访问寄存器的最低异常级别。 
各个 AArch64 系统寄存器描述包含对提供相同功能的 AArch32 系统寄存器的引用。
以下部分定义了本手册中使用的架构术语:
• 中断类型。
• 第1-21 页的中断状态。
• 第1-21 页的处理中断的模型。
• 第1-22 页的附加条款。

1.2.1 中断类型

实现GIC架构的设备可以控制外设中断。 外设中断通常由发送到 GIC 的物理信号来断言。 GIC架构定义了以下类型的外设中断:
局部特定外设中断 (LPI)
LPI 是一个目标外设中断,它被路由到关联层次结构中的特定 PE:
• 在启用两种安全状态的系统中,LPI 始终是非安全组 1 中断。
• LPI 具有边沿触发行为。
• LPI 可以使用ITS 进行路由。
• LPI 没有活动状态,因此不需要显式停用。
• LPI 始终是基于消息的中断。
有关详细信息,请参阅第 5-78 页的 LPI。

私有外设中断 (PPI)
这是一个针对单个特定PE的外设中断,不同的PE可以使用相同的中断号来指示不同的事件:
• PPI 可以是组0 中断、安全组1 中断或非安全组1 中断。
• PPI 可以支持边沿触发或电平敏感行为。
• PPI 绝不会使用ITS 进行路由。
• PPI 处于活动状态,因此需要显式停用。

注:
通常,期望 PPI 由每个 PE 上同一中断源的不同实例使用,从而允许将公共中断号用于 PE 特定事件,例如
来自私有定时器的中断。

共享外设中断 (SPI)
这是一个外设中断,分发器可以将其路由到可以处理中断的指定 PE,或者路由到系统中已配置为接受此类中断的一组 PE 之一的 PE:
• SPI 可以是组0 中断、安全组1 中断或非安全组1 中断。
• SPI 可以支持边沿触发或电平敏感行为。
• SPI 绝不会使用ITS 进行路由。
• SPI 具有活动状态,因此需要显式停用。
有关详细信息,请参阅第 4-56 页的共享外设中断。 有关分发器的更多信息,请参阅第 3 章 GIC 分区。

软件生成中断 (SGI)
SGI 通常用于处理器间通信,并通过写入 GIC 中的 SGI 寄存器来生成:
• SGI 可以是组0 中断、安全组1 中断或非安全组1 中断。
• SGI 具有边沿触发行为。
• SGI 绝不会使用ITS 进行路由。
• SGI 具有活动状态,因此需要显式停用。
有关详细信息,请参阅第 4-55 页的软件生成的中断。
边沿触发的中断具有以下属性:
• 在检测到中断信号的上升沿时将其置位,然后无论信号状态如何,它都会保持置位状态,直到软件确认中断为止。
有关边沿触发的基于消息的中断的信息,请参阅基于消息的中断。
电平敏感的中断具有以下属性:
• 当中断信号电平有效时,它被置为有效;当中断信号电平不有效时,它被置为无效。
• 它被软件明确地置为无效。

1.2.2 中断状态
以下状态适用于 GIC 和连接的 PE 之间的每个接口:
     不活跃
         未激活或未决的中断。
     待办的
         被识别为在硬件中断言或由软件生成的中断,并等待目标 PE 处理。
     积极的
         已被 PE 确认并正在处理的中断,因此同一中断的另一个断言不会作为中断呈现给 PE,直到初始中断不再处于活动状态。
         LPI 没有活动状态,并在被 PE 确认后转换为非活动状态。
     有效和待处理
         一种中断,在中断的一次断言后处于活动状态,并在后续断言后处于挂起状态。
         LPI 没有活动和挂起状态,并在被 PE 确认后转换为非活动状态。
GIC 维护每个支持的中断的状态。 状态机定义了中断状态之间可能的转换,以及对于每种中断类型,导致转换的条件。 有关详细信息,请参阅第 4-51 页的中断处理状态机。

1.2.3 处理中断的模型

在多处理器实现中,存在以下用于处理中断的模型:
定向分销模式
     该模型适用于所有 PPI 和所有 LPI。 它还适用于:
     • 非传统操作期间的SPI,如果GICD_IROUTER<n>.Interrupt_Routing_Mode == 0。
     • 在传统操作期间,当 GICD_CTLR.ARE_* == 0 时,如果相应 GICD_ITARGETSR<n> 字段中只有一位 == 1。
     由软件指定的目标PE接收中断。
目标列表模型
     该模型仅适用于 SGI。 多个PE独立接收中断。 当 PE 确认中断时,仅该 PE 的中断挂起状态被清除。 中断对于每个 PE 独立地保持待处理状态,直到它被 PE 确认为止。
N 型号中的 1 个
     该模型仅适用于 SPI。 该中断针对一组指定的 PE,并且仅在该组中的一个 PE 上进行。 接受中断的 PE 以实现定义的方式选择。 该架构对可选择的 PE 进行了限制,请参阅第 4-63 页的启用中断分配。
     注
     • Arm GIC 架构保证仅向目标PE 集中列出的一个PE 提供N 中的1 中断。
     • 如果中断不是最高优先级中断,或者中断被ICC_PMR_EL1 屏蔽或在PE 内,则可能会向PE 提供N 中的1 中断。 请参阅第 4-46 页的中断生命周期。
     对于传统操作期间的 SPI,当目标寄存器中指定了多个目标 PE 时,适用此模型。
     如果多个 PE 可以处理中断,则硬件实现一种机制来确定哪个 PE 激活中断。

1.2.4 更多术语
本手册中使用了以下更多术语:

空闲优先级
     在 GICv3 中,空闲优先级 0xFF 是当该接口上没有活动中断时从 CPU 接口上的 ICC_RPR_EL1 读取的运行优先级。 在传统操作期间,从 GICC_RPR 读取的空闲优先级是由实现定义的,如 GICv2 中一样。


中断标识符(INTID)
     唯一标识具有关联事件及其源的中断的数字空间。 然后该中断被路由到一个或多个PE进行处理。 PPI 和 SGI 中断号是每个 PE 本地的。 SPI 和 LPI 具有物理域的全局中断号。 有关详细信息,请参阅第 2-31 页的 INTID。


中断路由基础设施 (IRI)
     分销商、再分销商以及(可选)一个或多个 ITS。 有关详细信息,请参阅第 3-38 页的 GIC 逻辑组件。


基于消息的中断
     基于消息的中断是由于对指定地址的存储器写访问而被置位的中断。 物理中断可以转换为基于消息的中断。 基于消息的中断可以支持电平敏感或边沿触发的行为,尽管 LPI 始终是边沿触发的。
     GICv3 支持两种基于消息的中断机制:
     • 一种用于通信SPI 的机制,其中分配的地址保存在分发器中。 在这种情况下,基于消息的中断可以是电平敏感的或边沿触发的。
     • 一种用于传送LPI 的机制,其中所分配的地址保存在ITS 中(如果实施了ITS),或者保存在再分发器中。
     Arm 建议使用 LPI 在支持 PCIe 的系统中提供对 MSI 和 MSI-X 功能的支持。 有关详细信息,请参阅第 5 章局部特定外设中断和 ITS。 GICv3 还包括使用基于消息的中断对信号 SPI 的架构支持,请参阅第 4-56 页的共享外设中断。


http://www.mrgr.cn/p/31825330

相关文章

硬件组成-CPU-编码-浮点数

计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。运算器、控制器等部件被集成在一起统称为中央处理单元(CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。存储器是计算机系统中的记忆设备,分为内部存储…

OpenGL 实现“人像背景虚化“效果

手机上的人像模式,也被人们称作“背景虚化”或 ”双摄虚化“ 模式,也称为 Bokeh 模式,能够在保持画面中指定的人或物体清晰的同时,将其他的背景模糊掉。突出画面的主体部分,主观上美感更强烈。 人像模式的一般实现原理是,利用双摄系统获取景深信息,并通过深度传感器和图…

在window10或window11 上运行带有签名的.msix 文件。

1)、单击有签名的.msix 文件》属性》 ok,这样就可以成功安装了编程是个人爱好

SEO 的未来:GPT 和 AI 如何改变关键词研究

谷歌Gemini与百度文心一言&#xff1a;AI训练数据的较量 介绍 想象一下&#xff0c;有一个工具不仅可以理解错综复杂的关键字网络&#xff0c;还可以预测搜索引擎查询的变化趋势。 这就是生成式预训练 Transformer (GPT) 和其他人工智能技术发挥作用的地方&#xff0c;以我们从…

给软件数字签名

一、准备生成签名所需的材料 1)添加签名AppxManifest.xml文件。在项目右建》添加》xml文件》修改文件名为AppxManifest。 在打开AppxManifest.xml文件,输入以下内容:<Identity Name="Contoso.AssetTracker"Version="1.0.0.0"Publisher="CN=6BB5…

github加速神器!解决github巨慢的问题,并且能够加速下载!另外推荐GitKraken -- 超好用的 Git 可视化工具

FastGithub github加速神器&#xff0c;解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。 下载地址&#xff1a; 清华云盘 2 部署方式 2.1 windows-x64桌面 双击运行FastGithub.UI.exe 2.2 windows-x64服务 fastgi…

云服务器ubuntu下nginx和php-fpm环境配置

云服务器ubuntu下nginx和php-fpm环境配置 1.首先更新源 apt-get update2.安装nginx服务 apt-get install -y nginx3.查看nginx状态,如果显示中有active(running),表示已经安装成功 service nginx status4.寻找可安装的php-fpm中间件 apt-cache search php-fpm5.安装可安装的p…

【小尘送书-第十五期】Excel函数与公式应用大全for Excel 365 Excel

大家好&#xff0c;我是小尘&#xff0c;欢迎你的关注&#xff01;大家可以一起交流学习&#xff01;欢迎大家在CSDN后台私信我&#xff01;一起讨论学习&#xff0c;讨论如何找到满意的工作&#xff01; &#x1f468;‍&#x1f4bb;博主主页&#xff1a;小尘要自信 &#x1…

MySQL数据库高级语句

文章目录 MySQL高级语句older by 排序区间判断查询或与且&#xff08;or 与and&#xff09;嵌套查询&#xff08;多条件&#xff09;查询不重复记录distinctcount 计数限制结果条目limit别名as常用通配符嵌套查询&#xff08;子查询&#xff09;同表不同表嵌套查询还能用于删除…

Android studio打开Device File Explore(文件管理器)的方法

方法View > Tool Windows > Android Profiler Android Studio对文件的读写操作,可以看这里的文件,data是我自己取的名字,你们对应打开的文件名字不一样是正常的 下课!!

LLMRec论文阅读笔记

LLMRec论文阅读笔记 Abstract ​ 长期以来,数据稀疏性的问题一直是推荐系统中的一个挑战,以前的研究都试图通过合并侧边信息来解决这个问题。然而,这种方法经常会引入副作用,如噪声、可用性问题和低数据质量,这反过来会阻碍用户偏好的准确建模,并对推荐性能产生不利影响。…

变量以及八大数据类型介绍

​ 变量以及八大数据类型介绍 1 变量 1.1 学习变量的目的 # 学习变量有助于我们在程序中存储和操作数据,提高代码质量,更方便我们操作和修改数据。1.2 学习基本数据类型的目的 #是在不同的场景下使用对应的数据类型来操作数据2 八大数据…

Xshell 连接linux 虚拟机

修改配置文件 [root@bogon ~]# ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.183.133 netmask 255.255.255.0 broadcast 192.168.183.255inet6 fe80::20c:29ff:fe12:80d6 prefixlen 64 scopeid 0x20<link>ether 00:0c:…

蓝桥杯算法赛(二进制王国)

问题描述 二进制王国是一个非常特殊的国家&#xff0c;因为该国家的居民仅由 0 和 1 组成。 在这个国家中&#xff0c;每个家庭都可以用一个由 0 和 1 组成的字符串 S 来表示&#xff0c;例如 101、 000、 111 等。 现在&#xff0c;国王选了出 N 户家庭参加邻国的庆典…

02-基于STM32F407MAC与DP83848实现以太网通讯六(IPerf网络速度测试)

一、IPerf2网络测试工具 Iperf2是一个用于测试网络带宽的工具。它是Iperf的旧版本,专注于提供基本的带宽测量功能。通过在客户端和服务器之间发送测试数据流并测量其性能,用户可以评估网络连接的速度和稳定性。Iperf2提供了一种简单而有效的方式来评估网络性能。 IPerf3已经发…

Ant Design Vue Tree 选中子节点同时半选中父级节点

需要实现的效果:1、子菜单如果不是全部选中,一级菜单半选。 2、子菜单全选,一级菜单选中。 3、一级菜单选择,二级菜单全选。 4、没有二级菜单,则只控制一级菜单。主要用到的属性是checked和halfCheckedKeys,通过手动控制那些菜单选中,那些半选中实现功能。 **页面截图:…

2-18. 创建 InventoryManager 和 Item

创建 Singleton创建 InventoryManager创建 ItemBase接下来修改碰撞体大小这样写是因为图片的锚点可能在底部,所以需要修改 coll.offset 项目相关代码 代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git 标签:20240328_2045

最好用的加密/数字货币打赏赞助平台

为作者/商户量身定制的加密货币打赏/赞助平台 https://idatariver.com 商户可无门槛发布,支持比特币BTC、以太坊ETH、币安币BNB和USDT最近在调研使用加密货币打赏的平台,发现idatariver平台 https://idatariver.com 推出的buymeabtc功能刚好符合使用场景,下图为平台的演示项…

SpringCloud 和 Dubbo 区别: 比较微服务框架的差异

1.1 SpringCloud 简介 SpringCloud 是一个用于构建云原生应用的框架集合,它为开发者提供了一套完整的工具链,用于快速搭建分布式系统。SpringCloud 基于 SpringBoot 开发,具有如下特点:提供了丰富的组件,如配置管理、服务注册与发现、断路器等 采用声明式的编程模型,易于…

11_FreeRTOS时间管理

FreeRTOS时间管理 延时函数介绍延时函数演示实验代码 freertos_demo.c /******************************************************************************************************* @file freertos.c* @author 正点原子团队(ALIENTEK)* @version V1.4* @dat…