【ARMv8/v9 GIC 系列 4 -- GIC 中断分类 SGI | PPI | SPI 及中断检测流程】

文章目录

    • GIC 中断分类
      • SGI(Software Generated Interrupts)
      • PPI(Per-Processor Interrupts)
      • SPI(Shared Peripheral Interrupts)
    • 中断检测流程
      • 物理中断生命周期
      • SPI 中断检测流程
      • PPI 和SGI中断检测流程
      • LPI中断检测流程:
      • 中断小结

GIC 中断分类

ARMv9架构继续支持ARMv8引入的中断管理机制,包括SPI(共享外设中断)、PPI(每处理器中断)和SGI(软件生成的中断)。这些中断类型为不同的应用场景提供了灵活性和高效的中断处理方式。此外,GIC V3中断控制器的组成部分包括:distributor,Redistributor,cpu interface,ITS。

GIC V3中断控制器和处理器核心之间的关系图如下:

在这里插入图片描述

图 1-1

SGI(Software Generated Interrupts)

  • 定义:SGIs是从015的中断编号,为软件生成的中断,主要用于处理器间的通信(IPC)。ARM架构允许软件触发这些中断,以便一个处理器可以向一个或多个处理器发送信号。
  • 应用举例
    • 操作系统调度:操作系统可以使用SGI来实现任务或线程的调度。例如,当一个处理器上的任务需要迁移到另一个处理器时,OS可以通过SGI来触发目标处理器的调度代码。
    • 同步机制:在多核处理器系统中,SGI可用于实现锁或屏障等同步机制。例如,当所有处理器都必须在继续之前达到某个执行点时,可以使用SGI来通知所有处理器。

在这里插入图片描述在这里插入图片描述

PPI(Per-Processor Interrupts)

  • 定义:PPIs是从1631的中断编号,这类中断是每个处理器专有的。这意味着每个处理器都有自己的一组 PPI,而这组PPI仅对该处理器可见。
  • 应用举例
    • 定时器中断:系统定时器会为每个处理器生成定时器中断,这类中断作为PPI处理,确保每个处理器可以基于自己的定时需求独立触发和处理定时器中断。
    • IPI(Inter-Processor Interrupts):当一个处理器需要与另一个处理器通信时(例如,通知它处理一些任务或数据),可以通过发送IPI来实现,IPI是一种特殊的PPI。

SPI(Shared Peripheral Interrupts)

  • 定义:SPIs是从32开始的中断编号,用于系统中的外设共享中断。这意味着SPI可以被系统中的任何处理器接收。
  • 应用举例
    • 网络控制器中断:当网络控制器接收到一个新的网络包并且需要处理器进行处理时,会触发一个SPI来通知处理器。
    • 磁盘I/O中断:在磁盘操作完成时,磁盘控制器会通过SPI通知处理器数据已经准备好。

中断检测流程

GICv3中断号分配对于每个中断,从产生到处理再到结束,是有一个完整的生命周期的。

在这里插入图片描述

图 1-2

物理中断生命周期

  • generate:外设或软件发起一个中断;
  • distribute:中断经过分组,优先级仲裁等,发送给对应的 CPU interface;
  • deliverCPU interface将中断发送给 core;
  • activate:当CPU core 开始响应中断,GIC将最高激活优先级的中断设置为激活;
  • priority drop: core发信号给GIC,通知最高优先级中断,GIC可以重置优先级;
  • deactivation:清除中断.

SPI 中断检测流程

  • 外设发起SPI中断,GIC检测到这个中断,并标记为 Pending状态
  • Distributor对所有处于Pending状态的中断确定目标CPU
  • 对每个CPU,Distributor会从众多Pending状态的中断中,选择优先级高的发送到对应的Redistributor
  • Redistributor将中断发送到目标CPU的CPU Interface上
  • CPU Interface将满足要求的中断发送给CPU
  • CPU进入中断异常后,内核中断处理程序读取GICC_IAR寄存器来响应该中断,寄存器返回硬件中断号
  • CPU处理完中断服务后,通过写GICC_EOIR寄存器,来给GIC发送一个EOI完成信号

PPI 和SGI中断检测流程

  • GIC检测到PPI或者SGI中断,并标记为Pending状态
  • Redistributor选择优先级高的中断发送到对应的CPU Interface
  • CPU Interface将满足要求的中断发送给CPU
  • CPU进入中断异常后,内核中断处理程序读取 GICC_IAR 寄存器来响应该中断,寄存器返回硬件中断号
  • CPU处理完中断服务后,通过写 GICC_EOIR 寄存器,来给GIC发送一个EOI完成信号

LPI中断检测流程:

forwarding方式,由以下寄存器实现

  • GICR_SERLPIR:将指定的LPI中断,设置为Pending状态
  • GICR_INVLPIR:将指定的LPI中断,清除Pending状态。寄存器内容和 GICR_SERLPIR一致
  • GICR_INVLPIR:将缓存中,指定LPI的缓存给无效掉,使GIC重新从memory中载入LPI的配置
  • GICR_INVALLR:将缓存中,所有LPI的缓存给无效掉,使GIC重新从memory中,载入LPI中断的配
  • GICR_SYNCR:对Redistributor的操作是否完成

中断小结

  • SPI 主要用于外设与处理器间的通信,是共享的,意呅着任何处理器都可以接收和处理SPI中断。
  • PPI 是处理器专用的中断,用于处理每个处理器独有的事件,如定时器中断。
  • SGI 用于处理器间直接的通信,支持软件触发,适合于实现快速的任务调度或同步机制。
    这些不同类型的中断为ARMv9架构提供了灵活而强大的中断管理能力,支持复杂的多核处理器系统和高效的硬件资源利用。

推荐阅读
https://blog.csdn.net/wyy4045/article/details/104827111
https://www.sohu.com/a/771753252_121124377

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

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

相关文章

【课程总结】Day10:卷积网络的基本组件

前言 由于接下来的课程内容将围绕计算机视觉展开,其中接触最多的内容是卷积、卷积神经网络等…因此,本篇内容将从卷积入手,梳理理解:卷积的意义、卷积在图像处理中的作用以及卷积神经网络的概念,最后利用pytorch搭建一…

“山寨版”《草料二维码》

背景 之前浏览过草料二维码的网站,他的二维码美化功能很强大💪,可以分别自定义码眼和码点的形状和颜色! 碰巧之前写过一个 npm 插件 qrcode-with-logos, 用于前端生成带 logo 的二维码。 而且在 github 的 issues 里有外国友人…

【Docker】安装和加速

目录 1.安装 2.了解 docker 信息 3.查询状态 4. 重新启动Docker 1.安装 yum install –y docker 2.了解 docker 信息 cat /etc/redhat-release 3.查询状态 systemctl status docker 4.支持 1.12 的 docker 镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docke…

Java 流式编程的7个技巧,必学!

作为Java开发者,我们还没有完全掌握Java Streams这个多功能工具的威力。在这里,你将发现一些有价值的技巧,可以作为参考并应用到你的下一个项目中。 Java Streams在很多年前就被引入了,但作为Java开发者,我们还没有完…

TEMU半托管模式引领跨境电商新风尚

TEMU半托管模式作为2024年的热门话题,正吸引着越来越多卖家的目光。继全托管模式取得巨大成功之后,半托管模式的推出无疑为跨境电商行业注入了新的活力。 在选品方向上,TEMU半托管模式强调商品的聚焦与精选。卖家在选择上架商品时&#xff0c…

Mysql需要知道的点

目录 一、数据库的三范式是什么 二、Mysql数据库引擎有哪些 三、说说Innodb与MYISAM的区别 四、数据库的事务 五、索引是什么 六、优化手段有哪些 七、简单说一说 drop,delete与truncate的区别 八、什么是视图 九、什么是内连接、左外连接、右外连接&#x…

Spring中的InitializingBean接口

使用方法 Slf4j Component public class MyBean implements InitializingBean {public MyBean() {log.info("> 构造方法");}Overridepublic void afterPropertiesSet() throws Exception {log.info("> afterPropertiesSet方法");} }Spring中的Bean注…

Hive-存储-文件格式

一、前言 数据存储是Hive的基础,选择合适的底层数据存储格式,可以在不改变Hql的前提下得到大的性能提升。类似mysql选择适合场景的存储引擎。 Hive支持的存储格式有 文本格式(TextFile) 二进制序列化文件 (SequenceF…

vue2 + dataV 组件问题

在使用 dataV 过程中,遇见 svg 动画不加载问题。 一、理想状态下: 二、开发中遇到的 加载不出来问题。 解决方案 在查找官方资料中,提到使用 key 可以解决方案。 1 绑定 key 2 改变 key 值 注意:一定要在 $nextTick 里面执…

【多线程】线程安全

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 观察线程不安全2. 线程不安全的原因2.1 抢占式执行2.2 修改共享数据2.3 修改操作不是原子的2.4 内存可见性…

【高级篇】分区与分片:MySQL的高级数据管理技术(十三)

引言 在上一章,我们探讨了MySQL的主从复制与高可用性,这是构建健壮数据库架构的基石。现在,让我们深入到更高级的主题——分区与分片,这些技术对于处理大规模数据集和提升数据库性能至关重要。我们将详细介绍表分区的概念、类型及分片技术的应用,为下一章讨论MySQL集群与…

经纬恒润推出面向教育行业的仿真测试实验室

随着汽车行业向电动化和智能化的转型,车辆的智能水平和复杂度不断提升,整车的开发周期却越来越短,测试要求越来越高,自动化测试成为必由之路。作为行业技术创新和引领者,高校面临着新能源和智能驾驶等新技术的众多挑战…

HTML(15)——盒子模型

盒子模型组成 内容区域 -width&height内边距-padding (出现在内容与盒子边缘之间)边框线-border外边距-margin (出现在盒子外面) div { width: 200px; height: 200px; background-color: rgb(85, 226, 193); padding: 20px; …

如何降低MCU系统功耗?

大家在做MCU系统开发的时候,是否也碰到过降低MCU系统功耗的需求? MCU系统整板功耗是个综合的数据,包括MCU功耗以及外部器件功耗,在此我们主要介绍如何降低MCU的功耗: 可以在满足应用的前提下,降低MCU的运…

百元蓝牙耳机哪款性价比高?盘点性价比高的百元蓝牙耳机品牌

在如今快节奏的生活中,蓝牙耳机已经成为人们日常生活中不可或缺的配件。然而,市面上百元左右性价比高的蓝牙耳机琳琅满目,消费者往往难以选择到一款质量好、耐用的产品。我们希望可以为广大消费者提供一些参考和建议,接下来&#…

KVM网络模式设置

一、KVM网络模式介绍 1、NAT ( 默认上网 ) 虚拟机利用host机器的ip进行上网,对外显示一个ip;virbr0是KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供NAT访问外网的功能,默认ip为192.168.122.1 2、自带的Bridge 将虚拟机桥接到host机器的网卡上,vm和ho…

vue 实现 word/excel/ppt/pdf 等文件格式预览操作

效果图: 问题描述:一般情况下使用iframe标签就可以实现文件预览,但是这个标签只针对于ppt和pdf是有效的。对于doc文件就需要借助第三方插件(vue-office/docx)来实现预览了。下面介绍使用方法。 安装插件:n…

云通SIPX,您的码号资源智能调度专家!

在数字化转型的浪潮中,号码资源作为企业与客户沟通的重要桥梁,其管理效率直接关系到企业运营的成败。随着运营商对号码资源管理的规范化和精细化,企业对高效、智能的号码资源管理需求日益增长,以实现对外呼叫的降本增效。 一、什么…

教程:LVM操作讲解

LVM简介 在系统运维过程中,对磁盘扩缩容是常见的操作。如何高效的管理磁盘容量,lvm提供了很好的解决方案。 LVM将磁盘抽象成PV、VG、LV,方便用户进行磁盘管理,简单来讲,是由物理磁盘划分成PV,PV加入到具体…

【AI大模型RAG】深入探索检索增强生成(RAG)技术

目录 1. 引言2. RAG技术概述2.1 RAG技术的定义2.2 RAG技术的工作原理2.3 RAG技术的优势2.4 RAG技术的应用场景 3. RAG的工作流程3.1 输入处理3.2 索引建立3.3 信息检索3.4 文档生成3.5 融合与优化 4. RAG范式的演变4.1 初级 RAG 模型4.2 高级 RAG 模型4.3 模块化 RAG 模型优化技…