[GICv3] 4. 中断分发和路由(Distribution and Routing)

news2024/9/24 21:26:36

  💡介绍如何将中断分发和路由到目标PE,以及中断号的分配。

分发和重分发(The disributor an Redistributors)

  分配器为SPI提供路由配置,并持有所有相关的路由和优先级信息。重新分配器提供PPI和SGI的配置设置。

  重新分配器总是在有限的时间内向CPU接口呈现具有最高优先级的pending中断。

  最高优先级的pending中断可能会改变,可能原因为:

  • 之前的最高优先级中断已经被确认(CPU正在处理)。
  • 之前的最高优先级中断已经被抢占了。
  • 之前的最高优先级中断被删除,不再有效。
  • 组中断使能已被修改。
  • PE不再是一个participating PE

中断号(INTIDs)

  中断由唯一的中断号进行标识,是由SOC实现定义的,其中0-31是本地中断,用于SGI和PPI。

中断表

imageimage

特殊中断号

  • 1020

    GIC在EL3读取ICC_IAR0_EL1或ICC_HPPIR0_EL1时返回这个值,以表明被确认的中断是一个预计在安全EL1或安全EL2处理的中断。当 PE 在非安全状态下执行时,向Trust OS发出中断信号。 这被视为 EL3 的 FIQ,以便secure monitor可以上下文切换到Trust OS。

  • 1021

    GIC在EL3读取ICC_IAR0_EL1或ICC_HPPIR0_EL1时返回这个值,以表明被确认的中断是预计在非安全EL1或EL2处理的中断。这个INTID只有在PE在EL3使用AArch64状态执行时,或者PE在AArch32状态使用Monitor模式执行时才会返回。当 PE 在安全状态下执行时,向REE发出中断信号。 这将被视为 EL3 的 FIQ,以便secure monitor可以上下文切换到REE。

  • 1022

    在GICv3.3中,当SCLTR_ELx.NMI被设置为1时,GIC在响应ICC_IAR1_EL1的读取时返回这个值,以表明被确认的中断是一个NMI。

  • 1023

    如果没有具有足够优先级的待处理中断被发送给PE,或者如果最高优先级的待处理中断不适合当前的安全状态或者与系统寄存器相关的中断组,这个值是作为对中断确认的回应而返回的。

  这里的特殊中断号1020和1021在ATF中有重要作用,可以用于安全世界与非安全世界的切换。

特殊中断号的应用

  在以下示例中,移动系统有一个调制解调器中断,用于发出来电信号。 该中断旨在由处于非安全状态的 Rich OS 处理。

image

  1. 当 PE 在安全 EL1 上执行trusted OS时,调制解调器中断变为pending。 由于调制解调器中断被配置为Non-Secure group 1,因此它将作为 FIQ 发出信号。 当 SCR_EL3.FIQ==1 时,异常被路由到 EL3。
  2. 在 EL3 上执行的secure monitor读取 IAR寄存器,返回 1021。该值表示预计将在非安全状态下处理中断。 然后,Secure monitor执行上下文切换操作,切回Rich OS。
  3. 现在 PE 处于非安全状态,中断将作为 IRQ 发出信号,并传送到非安全 EL1 以由 Rich OS 处理。

中断路由

  ‍

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

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

相关文章

京东速运|通过python查询快递单号API

本次讲解如何使用快递聚合供应商来实现查询京东速运快递物流轨迹,首先,我们需要准备的资源。 平台的密钥key:登录后在个人中心查看 测试接口的链接:在下方文档处查看 其中,KEY为用户后台我的api页面展示的API密钥, 代…

《米小圈漫画历史》:历史启蒙,看漫画书就可以啦!

在当今信息爆炸的时代,如何让孩子在娱乐中学习,一直是许多家长关心的问题。《米小圈漫画历史》系列作为一部集合了趣味性和教育性的漫画书,以其独特的视角和精彩的故事情节,成为了许多家庭历史启蒙的首选。本文将通过探索漫画书的…

MT3046 愤怒的象棚

思路: a[]存愤怒值;b[i]存以i结尾的,窗口里的最大值;c[i]存以i结尾的,窗口里面包含✳的最大值。 (✳为新大象的位置) 例:1 2 3 4 ✳ 5 6 7 8 9 则ans的计算公式b3b4c4c5c6b7b8b9…

探索AI大模型(LLM)减少幻觉的三种策略

大型语言模型(LLM)在生成文本方面具有令人瞩目的能力,但在面对陌生概念和查询时,它们有时会输出看似合理却实际错误的信息,这种现象被称为“幻觉”。近期的研究发现,通过策略性微调和情境学习、检索增强等方…

Linux基础指令解析+项目部署环境

文章目录 前言基础指令部署项目环境总结 前言 Linux的魅力在于其强大的可定制性和灵活性,这使得它成为了众多开发者和运维人员的首选工具。然而,Linux的指令系统庞大而复杂,初学者往往容易迷失其中。因此,本文将带领大家走进Linu…

一键换衣,这个AI可以让你实现穿衣自由

基于图像的虚拟穿衣是一种流行且前景广阔的图像合成技术,能够显著改善消费者的购物体验,并降低服装商家的广告成本。顾名思义,虚拟穿衣任务旨在生成目标人穿着给定服装的图像。 OOTDiffusion简述 图1 虚拟换衣 基于图像的虚拟穿衣目前面临两…

解决linux服务器下微信公众号授权和业务接口授权失败的问题

我们的公众号web站点代码在Windows服务器IIS下运行没有问题,迁移到linux 服务器的nginx下之后,出现了微信授权和接口授权无法通过引起的问题。如下图所示: 经过排查,发现是因为nginx配置默认对 http 配置节下的 underscores_in_he…

MySQL黑马教学对应视屏笔记分享之聚合函数,以及排序语句的讲解笔记

聚合函数 注意:null值不参与聚合函数的计算。 分组查询 2.where与having的区别 执行时机不同:where是在分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。判断条件不同:w…

3,区块链加密(react+区块链实战)

3,区块链加密(react区块链实战) 3.1 哈希3.2 pow-pos-dpos3.3非对称加密(1)对称加密AES(2)非对称加密RSA 3.4 拜占庭将军3.5 P2P网络3.6 区块链 3.1 哈希 密码学,区块链的技术名词 …

【SQL】MySQL中的字符串处理函数:concat 函数拼接字符串,COALESCE函数处理NULL字符串

MySQL中的字符串处理函数:concat 函数 一、concat ()函数1.1、基本语法1.2、示例1.3、特殊用途 二、COALESCE()函数2.1、基本语法2.2、示例2.3、用途 三、进阶练习3.1 条件和 SQL 语句3.2、解释 一、concat &#xff0…

java中stirng真的不可改变么?

目录 1. 字符数组的私有性和不可变性 2. 没有提供修改内容的方法 3. 共享字符串常量池 4.不可变性的优点 5.结论 🎈边走、边悟🎈迟早会好 Java 中的 String 对象是不可变的。不可变性意味着一旦创建了一个 String 对象,它的值就不能再被…

怎么提高音频声音大小?提高音频声音大小的四种方法

怎么提高音频声音大小?在音频处理和编辑中,增加声音的音量是一个常见的需求,尤其是在确保音频清晰度和听觉效果的同时。调整音频的音量不仅仅是简单地提高音频的响度,它也涉及到如何保持音质的高标准,确保没有失真或削…

STM32智能机器人手臂控制系统教程

目录 引言环境准备智能机器人手臂控制系统基础代码实现:实现智能机器人手臂控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:机器人手臂管理与优化问题解决方案与优化收尾与总结 1. 引言 …

计算机组成原理:408考研|王道|学习笔记II

系列目录 计算机组成原理 学习笔记I 计算机组成原理 学习笔记II 目录 系列目录第四章 指令系统4.1 指令系统4.1.1 指令格式4.1.2 扩展操作码指令格式 4.2 指令的寻址方式4.2_1 指令寻址4.2_2 数据寻址 4.3 程序的机器级代码表示4.3.1 高级语言与机器级代码之间的对应4.3.2 常用…

leetcode--从前序与中序遍历序列构造二叉树

leetcode地址:从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,…

提升机器视觉与机器学习软件安全性的实践策略

在近几年科技爆发中,机器学习(ML)和机器视觉(MV)的结合正在改变各行各业。机器学习通过数据驱动的算法让计算机能够自我学习,而机器视觉赋予计算机识别和理解图像的能力。这种结合使得计算机可以高效地执行…

传统的springboot项目中,如何进行添加自定义静态资源访问路径实现对静态资源的访问?

如何配置可以实现在浏览器中配置路径实现对resource资源路径下的index.html个性化定制访问路径 要在Spring Boot项目中配置使特定前缀访问静态资源,可以在application.yml文件中配置路径映射。以下是一个示例配置: 打开你的application.yml文件&#xf…

【MindSpore学习打卡】应用实践-LLM原理和实践-基于MindSpore实现BERT对话情绪识别

在当今的自然语言处理(NLP)领域,情绪识别是一个非常重要的应用场景。无论是在智能客服、社交媒体分析,还是在情感计算领域,准确地识别用户的情绪都能够极大地提升用户体验和系统的智能化水平。BERT(Bidirec…

C++基础篇(1)

目录 前言 1.第一个C程序 2.命名空间 2.1概念理解 2.2namespace 的价值 2.3 namespace的定义 3.命名空间的使用 4.C的输入输出 结束语 前言 本节我们将正式进入C基础的学习,话不多说,直接上货!!! 1.第一个C程…

2024.7.10作业

完成学生管理系统 1> 使用菜单完成 2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入 3> 查看学生信息:输出所有学生姓名以及对应的分数 4> 求出学习最好的学生信息:求最大值 5> 按姓名将所有…