【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.mzph.cn/bicheng/31240.shtml

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

相关文章

分布式数据库的原理

分布式数据库 分布式数据库是将数据存储在多台独立计算机上,这些计算机通过网络连接协同工作的系统。其原理在于将数据分散到多个节点,以提高可用性、可扩展性和容错性。 CAP定理 CAP定理(Consistency, Availability, Partition Tolerance…

Centos SFTP搭建

SFTP配置、连接及挂载教程_sftp连接-CSDN博客1、确认是否安装yum list installed | grep openssh-server 2、创建用户和组 sudo groupadd tksftpgroup sudo useradd -g tksftpgroup -d /home/www/tk_data -s /sbin/nologin tksftp01 sudo passwd tksftp013. 配置SFTP注意&a…

在Elasticsearch中添加字段

当使用Elasticsearch(ES)添加字段时,通常会涉及到更新已有索引的映射(mapping),以确保新字段能够被正确地索引和搜索。下面是如何通过ES的API来更新索引映射并添加一个新字段的详细步骤: 1. 确认…

Unet已死,Transformer当立!详细解读基于DiT的开源视频生成大模型EasyAnimate

Diffusion Models视频生成-博客汇总 前言:最近阿里云PIA团队开源了基于Diffusion Transformer结构的视频生成模型EasyAnimate,并且提出了专门针对视频的slice VAE,对于目前基于Unet结构的视频生成最好如SVD形成了降维打击,不论是生…

Apifox 快速入门教程

访问示例项目​ 可访问Apifox官网,下载并打开 Apifox 后,你将会看到由系统自动创建的“示例团队”,其中内含一个“示例项目”。 项目中自动生成了与宠物商店有关的数条接口。 手动新建接口​ 新建接口是开发者们最常用的功能之一。Apifox 能…

提升运营设计水平的8个关键技巧

运营设计是建立更强大的设计团队,支持个人、流程和工具的协调,大规模扩大创造力和影响力的一种以人为本的方法。设计和操作通过敏捷和迭代的方法完全改变了开发过程,允许组织跨团队快速扩展和迭代设计过程。一个庞大的运营设计团队应该如何协…

斜堆(数据结构篇)

数据结构之斜堆 斜堆 概念: 斜堆是左式堆的自调节形式,斜堆和左式堆间的关系类似于伸展树和AVL树间的关系斜堆是具有堆序性的二叉树,但是不存在对树的结构限制不同于左式堆,关于任意节点的零路径长的任何信息都不保留&#xff…

Flask-cache

Flask-cache 目录 Flask-cache基本使用配置可用参数SimpleCacheNullCacheFileSystemCacheRedisCacheRedisSentinelCacheRedisClusterCacheMemcachedCacheSASLMemcachedCacheUWSGICache Flask-Cache是一个强大的缓存库,为基于Flask的应用提供了简单易用的API和多种缓…

嵌入式虚拟仿真创新教学方案,解决芯片原理讲解抽象、依赖大量硬件平台、系统化教学难三大难题

嵌入式技术起源早,市场需求旺盛,被广泛应用于各个领域,从智能家居到智慧城市,从工业自动化到医疗健康,嵌入式系统深度落地于各类智能设备与系统之中,支撑起物联网的发展。随着物联网与人工智能的迅速发展&a…

NGINX_十八 nginx 访问控制

十八 nginx 访问控制 1 nginx 访问控制模块 (1)基于IP的访问控制:http_access_module (2)基于用户的信任登录:http_auth_basic_module 2 基于IP的访问控制 2.1 配置语法 Syntax:allow addr…

《Windows API每日一练》5.2 按键消息

上一节中我们得知,Windows系统的按键消息有很多类型,大部分按键消息都是由Windows系统的默认窗口过程处理的,我们自己只需要处理少数几个按键消息。这一节我们将详细讲述Windows系统的所有按键消息及其处理方式。 本节必须掌握的知识点&…

解决IDEA使用卡顿的问题,设置JVM内存大小和清理缓存

解决IntelliJ IDEA中卡顿问题,可以尝试以下几个常见且有效的步骤: 1 增加IDEA的JVM内存分配: 位于IDEA安装目录的bin文件夹下,找到对应的操作系统配置文件(idea64.exe.vmoptions(Windows)或id…

Nginx日志管理之日志分析

Nginx 通常被置于服务器访问的入口,其访问日志可以全局记录用户访问的来源、响应时间,以及用户行为热点等数据,通过对访问日志的分析,可以清晰地了解用户来源、用户行为习惯及自身服务器性能等情况。借助 ELK 的高性能处理能力&am…

软件编译出现fatal error: mpi.h: No such file or directory解决办法

软件编译时,如果出现fatal error: mpi.h: No such file or directory的问题时,很大可能是你的环境变量路径没有设置好,解决思路如下: export CPATH/opt/intel/impi/2019.0.117/intel64/include:$CPATH export LD_LIBRARY_PATH/o…

nodejs的express负载均衡(续)

之前写过一篇《nodejs的express负载均衡》,给出了两种方式实现express web服务的nlb。一种是利用nodejs自带的cluster,创建多个worker进程,绑定同一个服务端口,由主进程负责监听和调度;另一种启动多个nodejs实例&#…

BFS:FloodFill算法

文章目录 FloodFill算法简介1.图像渲染2.岛屿数量3.岛屿的最大面积4.被围绕的区域总结 FloodFill算法简介 Flood Fill算法是一种用于确定与某个给定节点相连的区域的算法,常用于计算机图形学和图像处理。该算法可以用于诸如填充多边形、检测连通区域等任务。Flood …

简答分享python学习进修网站

一、网战推荐 CodeCombat 是一款网页编程游戏。这款编程游戏借鉴了游戏很多设计元素,游戏剧情十分丰富。Codecombat能够学习Python多种语言,这些语言能够运用到游戏设计、网页应用、app的开发上。 Checkio 是一个基于浏览器的游戏,你需要使…

做电池研究如何发表Nature Communications,案例分析

✨【元素魔方学术俱乐部】✨ 👩‍🏫👨‍🏫我们创建了一个学术交流群 给全国各地以及各种研究方向的硕博 和老师们提供一个交流的平台📚🧪 感兴趣的话欢迎加入 📲本公众号中回复“社群” 会自动发…

Lynred在欧洲防务展上将展出新品——“HOT”红外传感器Seegnus。

Lynred在即将举办的巴黎欧洲防务展上将展出其令人瞩目的新品——“HOT”红外传感器Seegnus。这款专为战术视觉设计的大型阵列传感器,以其紧凑的封装和高分辨率的中波红外成像能力,无疑将为航空航天、国防和商业市场带来革命性的突破。 Seegnus传感器拥有…

RX数据集成:信创生态下的平滑过渡方案

过去,众多中国企业倾向于采用国际供应商的数据集成产品与方案。其中Informatica作为行业翘楚,以其卓越性能和技术领先地位赢得了全球500强中95%企业的青睐。在中国市场上,众多企业同样信赖并采纳其解决方案。然而,随着国际环境的演…