ARM IHI0069F GIC architecture specification (4)

1.3 支持的配置和兼容性

在 Armv8-A 中,EL2 和 EL3 是可选的,PE 可以支持一个、两个或都不支持这些异常级别。
然而:
• PE 要求EL3 支持安全和非安全状态。
• PE 需要EL2 来支持虚拟化。
• 如果未实施EL3,则只有一个安全状态。 此安全状态是安全状态或非安全状态。
GICv3 支持所有这些配置的中断处理,并根据 Arm® 架构参考手册 Armv8(针对 Armv8-A 架构配置文件)中描述的交互处理规则,在 AArch32 状态和 AArch64 状态下执行。

1.3.1 亲和路由配置

GICv3架构支持亲和性路由。 它为以下方面提供可选支持:
• 非对称配置,其中在非安全状态下启用关联路由,在安全状态下禁用关联路由。 这为安全的遗留环境提供了支持。
• 仅传统环境,其中安全状态和非安全状态都禁用关联路由。

1.3.2 系统寄存器配置

当启用关联路由以在两种安全状态下执行时,必须将 GIC 配置为使用系统寄存器访问来处理物理中断。 该体系结构不支持为安全状态启用关联路由,并且不支持为该安全状态配置系统寄存器访问。 以这种方式配置 GIC 会导致不可预测的行为。 当启用关联路由以在非安全状态下执行时,GIC 架构可选择支持虚拟中断的传统操作,即在 EL2 上执行的虚拟机管理程序的控制下,在非安全 EL1 上进行传统中断处理。

1.3.3 GIC控制与配置

许多 GIC 寄存器都有不同的形式,以允许有效的中断处理:
• 对于两种安全状态。
• 对于不同的中断组。
• 使用GICv3 的系统寄存器访问或传统操作的内存映射访问。
当启用系统寄存器访问时,GIC 架构的控制和配置由架构系统寄存器和定义 GIC 程序员模型的相关访问来处理。 更多信息请参见第 11 章程序员模型。
一些寄存器始终是内存映射的,而其他寄存器则使用 GICv3 中的系统寄存器访问,以及用于传统操作的内存映射访问。

表 1-1 显示了始终进行内存映射的寄存器。
短寄存器名称的前缀         寄存器
GICD                                 Distributor registers
GICR                                 Redistributor registers(a)
GITS                                 ITS registers(b)
a. 每个 PE 的每个再分发器寄存器都有一份副本。
b. 一个实施中可以有多个 ITS。 每个 ITS 都有自己的 GITS 寄存器副本。

表 1-2 显示了针对传统操作进行内存映射的寄存器,但在启用系统寄存器访问时,这些寄存器被 GICv3 中的系统寄存器访问所取代。
短寄存器名称的前缀         寄存器
GICC                                Physical CPU interface registers
GICV                                 Virtual CPU interface registers
GICH                                 Virtual interface control registers
笔记
• 在非安全EL1 上执行的操作系统使用GICC_* 或GICV_* 寄存器来控制中断,并且不知道其中的差异。
• GICv3 中引入了GICR_* 和GITS_* 寄存器。

表 1-3 显示了启用系统寄存器访问时 GICv3 支持的寄存器。
短寄存器名称的前缀               访问的系统寄存器
ICC                                         Physical CPU interface registers
ICV                                         Virtual CPU interface registers
ICH                                         Virtual interface control registers

Armv8 对虚拟化的支持以及 PE 运行时的异常级别决定了是否访问物理 CPU 接口寄存器或虚拟 CPU 接口寄存器。
有关寄存器名称以及影响使用哪个寄存器的因素的更多信息,请参阅第 11-197 页的 GIC 系统寄存器访问。

1.3.4 Armv8架构状态的引用

表 1-4 显示了与 GIC 一起使用或影响 GIC 操作的 Armv8 架构状态。

更多信息请参考Architecture Reference Manual, Armv8, for Armv8-A architecture profile.

1.3.5 没有传统操作的 GICv3

在不支持传统操作的实现中,关联路由和系统寄存器访问被永久启用。 这意味着相关的控制位是 RAO/WI。 表 1-5 显示了受此影响的寄存器字段。

如果支持安全虚拟化,这是唯一允许的配置。

1.3.6 具有传统操作的 GICv3

传统操作是与 GICv2 的有限向后兼容性的一种形式,允许使用 GICv3 的系统运行使用 GICv2 的代码,前提是该代码满足本节中描述的限制。 在 GICv3 中,传统操作是可选的。 请参阅第 13-814 页的中断和非对称配置的传统支持。
在支持传统操作的 GICv3 实现中,最多 8 个 PE(其对内存映射寄存器接口的单独支持是实现定义的)可用作给定 VM 内的物理或虚拟中断目标。 它是由实现定义的:
• 传统操作是适用于两种安全状态下的执行,还是仅适用于安全状态下的执行。
• 在非安全EL1 中执行时,传统操作是否仅在虚拟CPU 接口中可用。
在 GICv3 中,以下限制适用于传统操作:
• GICv2 功能GICC_CTLR.AckCtl 在GICv2 中已弃用,并且在GICv3 中不受支持。 相应地,即使在传统模式下,行为也如同 GICv2 中描述的 GICC_CTLR.AckCtl 位是 RAZ/WI。
笔记
在支持传统操作的 GICv3 实现中,当 GICV_CTLR.AckCtl 设置为 1 时,允许 VM 控制非安全中断。但是,Arm 不建议使用 GICV_CTLR.AckCtl。
• 不支持GICv2 配置锁定功能和关联的CFGSDISABLE 输入信号。
• 在EL2 上执行的管理程序只能控制正在执行EL2 软件的PE 的虚拟中断,而不能控制其他PE 上的虚拟中断。
对于传统操作,支持非对称配置,其中:
• 关联路由和系统寄存器访问在非安全状态和EL3 下启用。
• 关联路由和系统寄存器访问在Secure EL1 处被禁用。
这允许在安全 EL1 上运行的安全操作系统使用遗留功能,前提是它不配置非安全中断。
在安全状态下执行的 GICv2 软件可以使用 GICC_AIAR、GICC_AEOIR、GICC_AHPPIR 和 GICC_ABPR 来控制非安全状态下的中断。 非对称配置中没有等效的功能。

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

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

相关文章

Mysql数据库——数据备份与恢复

目录 一、数据备份的重要性 二、数据库备份的分类 1.从物理与逻辑的角度分类 2.从数据库的备份策略角度,备份可分为 2.1完全备份 2.2差异备份 2.3增量备份 2.4总结 三、常见的备份方法 四、Mysql数据库完全备份 1.完全备份定义 2.优缺点 3.数据库完全备…

FPGA时钟资源详解(4)——区域时钟资源

FPGA时钟系列文章总览:FPGA原理与结构(14)——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 目录 一、概述 二、Clock-Capable I/O 三、I/O 时钟缓冲器 —— BUFIO 3.1 I/O 时钟缓冲器 3.2 BUFIO原语 四、区域时钟…

【每日一题】2642. 设计可以求最短路径的图类-2024.3.26

题目: 2642. 设计可以求最短路径的图类 给你一个有 n 个节点的 有向带权 图,节点编号为 0 到 n - 1 。图中的初始边用数组 edges 表示,其中 edges[i] [fromi, toi, edgeCosti] 表示从 fromi 到 toi 有一条代价为 edgeCosti 的边。 请你实…

计算机网络——数据链路层(差错控制)

计算机网络——数据链路层(差错控制) 差错从何而来数据链路层的差错控制检错编码奇偶校验码循环冗余校验(CRC)FCS 纠错编码海明码海明距离纠错流程确定校验码的位数r确定校验码和数据位置 求出校验码的值检错并纠错 我们今年天来继…

搜维尔科技:「工业仿真」煤炭矿井模拟仿真救援项目实施

煤炭矿井模拟救援系统满足煤矿企业在紧急避险应急演练方面的实际需要,在不耽误井下正常生产的情况下,高效率、低成本地实现对本矿区入井人员进行避灾演练培训,并学会正确的避灾自救互救方法。并可在本系统中直观的看到人员定位系统、监控系统…

Java毕业设计 基于SSM网上二手书店系统

Java毕业设计 基于SSM网上二手书店系统 SSM jsp 网上二手书店系统 功能介绍 用户:首页 图片轮播 图书查询 图书分类显示 友情链接 登录 注册 图书信息 图片详情 评价信息 加入购物车 资讯信息 资讯详情 个人中心 个人信息 修改密码 意见信息 图书收藏 已经付款 邮…

JavaWeb项目——MVC架构框架

表现层(UI):直接跟前端打交互(一是接收前端ajax请求,二是返回json数据给前端)业务逻辑层(BLL):一是处理表现层转发过来的前端请求(也就是具体业务&#xff09…

群晖NAS安装Video Station结合内网穿透实现公网访问本地影音文件

文章目录 1.使用环境要求:2.下载群晖videostation:3.公网访问本地群晖videostation中的电影:4.公网条件下使用电脑浏览器访问本地群晖video station5.公网条件下使用移动端(搭载安卓,ios,ipados等系统的设备…

ASR-LLM-TTS 大模型对话实现案例;语音识别、大模型对话、声音生成

参考:https://blog.csdn.net/weixin_42357472/article/details/136305123(llm+tts) https://blog.csdn.net/weixin_42357472/article/details/136411769 (asr+vad) 这里LLM用的是chatglm;电脑声音播报用的playsound 代码: ##运行 python main.pymain.py from multipro…

Form 表单选择多个时间段 完成必填校验

一、案例效果 二、案例思路 在 Vue 中,你可以使用 v-for 指令动态渲染多个表单项,并使用 v-model 指令进行双向数据绑定。同时,你可以使用 Element UI 的 Form 组件进行表单验证。动态定义校验 prop和rules三、代码案例 html <mtd-form-itemv-for="(item, index) i…

小动物主动跑轮和被动跑轮的功能和目的?

小动物主动跑轮和被动跑轮在运动方式、实验目的和设计构造方面上是有区别的。 运动方式不同。主动跑轮是由动物自主运动来推动跑轮转动的。这种设置可以真实地反映动物自发的运动情况。相对地&#xff0c;被动跑轮则是一种强迫运动的方式&#xff0c;通常由电机带动跑轮转动从…

虚拟机如何在原有磁盘上扩容

虚拟机未开启状态–菜单栏–虚拟机–快照–拍摄快照–拍摄快照– 菜单栏–虚拟机–快照–快照管理器–点击刚刚的快照1–删除–是– 文件–新建或者打开–硬盘&#xff08;以本人Win 10.64.3GL为例&#xff09;–虚拟机设置–硬件– 硬盘&#xff08;SATA&#xff09;–磁盘实…

后端常问面经之Java基础

基本数据类型 Java中有8种基本数据类型&#xff1a; 6种数字类型&#xff1a; 4种整数型&#xff1a;byte、short、int、long 2种浮点型&#xff1a;float、double 1种字符类型&#xff1a;char 1种布尔类型&#xff1a;boolean 数据类型的默认值以及所占空间如下&#x…

【计算机图形学】Command-driven Articulated Object Understanding and Manipulation

对Command-driven Articulated Object Understanding and Manipulation的简单理解 文章目录 1. 以往工作问题和本文提出的工作内容2. 任务定义3. 方法2.1 Seg-Net3.2 Art-Net3.3 推理 1. 以往工作问题和本文提出的工作内容 该工作提出了一个新的方法&#xff0c;面向人类指令…

Flutter 旋转动画 线性变化的旋转动画

直接上代码 图片自己添加一张就好了 import dart:math;import package:flutter/material.dart;import package:flutter/animation.dart;void main() > runApp(MyApp()); //旋转动画 class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {re…

docker学习笔记 三-----docker安装部署

我使用的部署环境是centos 7.9 1、安装依赖工具 yum install -y yum-utils device-mapper-persistent-data lvm2 安装完成如下图 2、添加docker的软件信息源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo url地址为如…

如何启动极狐GitLab 静态网站Pages功能

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何使用极狐GitLa…

MySQL进阶45讲【35】什么时候会使用内部临时表?

1 前言 在MySQL进阶45讲【15】“order by“是怎么工作的&#xff1f;和MySQL进阶45讲【32】到底可不可以使用join&#xff1f;文章中&#xff0c;分别介绍了sort buffer、内存临时表和join buffer。这三个数据结构都是用来存放语句执行过程中的中间数据&#xff0c;以辅助SQL语…

BSV区块链的应用开发前景——通过标准化来促进创新

​​发表时间&#xff1a;2024年3月5日 近年来区块链领域的发展日新月异&#xff0c;各种全新的技术和方法论正在迅猛涌现。在这个瞬息万变的环境之中&#xff0c;标准化不仅仅会为开发者们带来便利&#xff0c;同时也促进了应用之间的互操作性&#xff0c;并且推动着生态系统的…

天地图-坐标拾取

在网页使用高德&#xff0c;百度地图这些时&#xff0c;会因为没有购买他们的使用版权&#xff0c;从而出现以下水印&#xff0c;因此需要换一个地图-天地图 天地图官方文档&#xff1a;http://lbs.tianditu.gov.cn/ 然而天地图并不像其他地图一样这么方便&#xff0c;比如没有…