ARM架构Generic Interrupt Controller(GIC)之Distributor和CPU interface功能介绍

50 篇文章 89 订阅
订阅专栏
6 篇文章 3 订阅
订阅专栏

GIC由Distributor和CPU interface两部分组成,如果支持虚拟化扩展,还有virtual CPU interface。本文主要介绍Distributor和CPU interface的基本功能。


GIC logical partitioning

一,中断分发器Distributor

Distributor模块负责将中断进行优先级划分(prioritization),并且转发(distribution)到指定的CPU interface中,与Distributor相关的寄存器均以GICD_作为前缀。Distributor集中控制所有的中断源,决定每个中断的优先级,并将对于每个CPU interface,将优先级最高的中断转发到指定CPU interface。Distributor提供了编程接口用于:

  • 全局性地转发中断到CPU interface
  • 可以使能或禁止(Enabling or disabling)每个中断
  • 为每个中断设置优先级(priority level )
  • 为每个中断设置目标处理器列表(target processor list)
  • 为每个外设中断(PPI和SPI)设置为电平敏感还是边缘触发
  • 将中断设置为Group0还是Group1(即Secure还是Non-Secure)
  • 转发SGI中断到一个或者多个目标处理器
    此外,Distributor还提供:
  • 每个中断状态的可见性
  • 在软件层面设置或清除一个外设中断的pending状态

二,处理器接口 CPU interface

每个CPU interface都为处理器提供一个与GIC相连的可编程接口:

  • 可以将中断请求发送给处理器
  • 确认一个中断
  • 指示中断处理的完成
  • 为处理器设置中断优先级掩码(中断优先级阈值,超过该阈值才会被传送给处理器)
  • 为处理器定义中断抢占策略
  • 为处理器决定正在pending状态的最高优先级中断。
    当把CPU interface使能后,CPU interface能够把当前处于pending状态中优先级最高的中断发送给处理器,CPU interface需要考虑中断优先级掩码以及中断抢占策略,来判断中断是否有足够的优先级转发到处理器。在任何时候,与CPU interface相连的处理器能够从 GICC_HPPIR寄存器中读取到当前处于active状态的最高优先级中断。
    在ARM处理器实现中,传统的中断请求会被断言为IRQ或者FIQ。
    处理器通过读取GICC_IAR(Interrupt Acknowledge Register)可以获知中断请求,该寄存器将返回:
  • 处于pending状态的最高优先级中断ID
  • 或者非正常情况下,该中断ID为虚假ID
    当处理器在CPU interface中确认了中断,Distributor将会把该中断的状态由pending改为active或者active and pending。此时,CPU interface可以向处理器发送另一个中断信号,以抢占处理器上active的中断。
    当 处理器中的中断处理器(interrupt handler)完成了中断的处理,它会往CPU interface相关寄存器中写入数据,提示中断处理完成,中断处理完成的过程分为两步:
  • 优先级下降(priority drop),这意味着被处理的中断的优先级不能再阻止向处理器发送另一个中断的信号。
  • 中断失活(interrupt deactivation),意味着Distributor将会把该中断的active状态清除掉。
    在GIC v1版本中,这两个过程是在处理器写入EOI(End of Interrupt)处理器的时,一起发生的。
    在GIC v2版本中,GICC_CTLR寄存器中的 EOImode位定义了:
  • 当写入EOI寄存器时,两个阶段一起发生
  • 两个阶段分开发生:
    • priority drop发生在写入EOI寄存器时
    • interrupt deactivation在之后发生,当处理器向CPU interface的Deactive Interrupt 寄存器写入时。

三,中断ID

中断以中断ID作为中断源的身份标识,每个CPU interface最多可见1020个中断。加上SPI和PPI的复用(banking),Distributor支持的中断将会更多。
GIC将1020个中断(ID0~ID1019)进行如下分配:

  • 中断号为32至1019被SPI使用
  • 中断号为0至31的中断,对CPU interface来说是私有的(private),并且这些中断在Distributor中被复用(banking)。一个复用的中断(banked interrupt)是指Distributor可以有多个相同中断ID的中断,虽然它们的中断ID相同 ,但是它们要被转发到的CPU interface却不同,即通过将中断ID和该中断要被转发到的CPU interface Number组成新的标识号码,实现Distributor中每个中断具有唯一标识码。这些被banked的中断可以被分为:
    • 中断号0至15为SGI中断
    • 中断号为16至31的为PPI中断
      在多处理器系统中:
  • PPI中断将会被转发到一个特定的CPU interface中,并且对该CPU interface来说是私有的,在对该CPU interface中的中断进行优先级排序时,Distributor不会考虑与其他CPU interface相关的PPI
  • 每个连接的处理器通过对Distributor中的GICD_SGIR寄存器进行写入指定的目标处理器列表和中断ID来产生SGI中断。在Distributor中,SGI可以通过:ID0至ID15的中断ID,目标处理器ID(0~7)以及源处理器ID(0 ~7)三者进行组合,以生成独一无二的识别号。当CPU interface使用中断ID与目标处理器进行通信时,它还会带上源处理器ID,这样目标处理器就能辨识出每个独一无二的SGI中断。SGI的复用(banking)意味着GIC可以同时处理多个SGI中断,且不会产生资源冲突。如果一个处理器没有连接上CPU interface,那么这个处理器写GICD_SGIR寄存器的操作将会被Distributor忽略。
    在单处理器中,私有中断和共享中断没有区别,因为所有的中断都对该处理器可见,这种情况下,源处理器ID为0。
  • 中断ID1020至1023为特殊目的而保留,比如1020为虚假中断ID。
    软件可以为每个中断设置优先级,并且优先级和中断ID是相互独立的。
    在任何实现了ARM安全扩展的系统中,为了支持处理器之间消息传递的一致模型,ARM强烈建议所有处理器保留:
  • ID0-ID7 for Non-secure interrupts
  • ID8-ID15 for Secure interrupts.
ARM Cortex-A学习(1):GIC(通用中断控制器)详解
主要分享硬件、嵌入式软件部分知识
12-26 2082
GIC(通用中断控制器,)是一种用于处理中断的硬件组件,它的主要功能是协调和管理系统中的中断请求,确保它们被正确地传递给相应的处理器核心。
GIC通用中断控制器
weixin_45619924的博客
02-02 959
1. GIC简介 操作系统中,中断是很重要的组成部分。有了中断系统才可以不用一直轮询(polling)是否有事件发生,系统效率才得以提高。一般在系统中,中断控制分为三个部分:模块、中断控制器和处理器。其中模块通常由寄存器控制是否使能中断中断触发条件等;中断控制器可以管理中断的优先级等,而处理器则由寄存器设置用来响应中断。 1.1 GIC结构 作为 ARM 系统中通用中断控制器的是 GICGeneric Interrupt Controller),目前有四个版本,V1~V4(V2最多支持8个ARM cor
ARM Cortex-R52 通用中断控制器GIC:Generic Interrupt Controller(一)
jinanhezhuang的博客
04-26 2061
本章描述了 Cortex-R52 处理器实现的通用中断控制器 (GIC)。
13. GIC CPU interface
u012906122的专栏
08-27 120
如果以这种方式禁用它,则可以使用外部的 GIC IP 驱动中断信号(nFIQ、nIRQ)。如果在系统中未将 Cortex®-A715 核心集成到外部 GIC 中断分发器组件(最小 GICv3 架构),则必须禁用 GIC CPU 接口。GIC CPU 接口包括用于屏蔽、识别和控制转发到核心的中断状态的寄存器。DSU-110 DynamIQ™ 集群中的每个核心都有一个 GIC CPU 接口,它连接到一个共同的外部分发器组件。Cortex®-A715 核心始终包含通用中断控制器(GICCPU接口。
Generic Interrupt Controller 2.0
12-01
The Generic Interrupt Controller (GIC) architecture defines: • the architectural requirements for handling all interrupt sources for any processor connected to a GIC • a common interrupt controller programming interface applicable to uniprocessor or multiprocessor systems.
GIC (General Interrupt Controller)之一
lee_xin_gml的专栏
09-06 5044
1 中断术语 1.        中断状态 n  Inactive 中断尚未激活或挂起 n  Pending 中断已经由硬件或者软件产生,正等待目标CPU处理 n  Active CPU已经应答(Acknowledge)来自GIC中断,该中断正在被CPU处理但尚未完成。 n  Active& Pending CPU正在处理该中断,此时GIC又收到来自该中断源的中断
ARM Generic Interrupt Controller Architecture Specification.zip
06-03
1. **GIC架构**:文档会介绍GIC的基本架构,包括其组成模块,如中断控制器、分布式中断控制器(Distributor)、中断处理器(CPU Interface)和系统级中断控制器(System Register)等。 2. **中断分类**:GIC支持两...
ARM GIC简介与Linux中断处理分析
学一点IOT
08-10 1376
先简单说明一下GIC(具体详尽的介绍请查阅ARM GIC相关文档) GIC即general interrupt controller。 它是一个架构,版本历经了GICv1(已弃用),GICv2,GICv3,GICv4。对于不同的GIC版本,arm公司设计了对应的GIC IP GIC的核心功能:对soc中外设的中断源的管理,并且提供给软件,配置以及控制这些中断源。 下面一张ARM GICv2 的图 中断源类型说明: SGI(Software-generated interrupt):范围0
深入解析ARM GIC V2.0控制器原理及应用
ARM GICARM Generic Interrupt Controller)是ARM公司设计的一种中断控制器,用于管理来自处理器内部或者外部设备的中断信号,确保处理器可以高效、可靠地响应这些中断。该控制器遵循的是ARM架构版本V2.0的标准...
ARM Cortex-A7中断系统详解与GICV2架构介绍
Cortex-A7中断系统由ARM公司提供的Generic Interrupt Controller (GIC)来管理,GIC在Cortex-A/R系列中扮演核心角色,而在Cortex-A内核如I.MX6U中,GIC版本升级至V2,支持多达8个核心。 中断ARM架构中非常重要,...
ARM Generic Interrupt Controller Architecture Specification
03-09
ARM Generic Interrupt Controller Architecture Specification 官方手册
ARM® Generic Interrupt Controller Architecture version 2.0 操作手册
10-30
弥补了很多平台没有描述 ARM 通用中断寄存器的情况! :-) Proprietary Notice Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM Limited in the EU and other countries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the trademarks of their respective owners. The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder.
IHI0069E_gic_architecture_specification
08-16
Arm® Generic Interrupt Controller Architecture Specification》(GIC架构版本3和4)是Arm Limited或其关联公司发布的官方手册,是开发GICv3和GICv4驱动程序的重要参考资料。该文档详细阐述了通用中断控制器...
ARM通用中断控制器GIC(generic Interrupt Controller)简介
DayDayUp
09-17 9819
ARM提供了一个可用于ARMv8-A系统的通用中断控制器GIC,这个中断控制器的编程接口在GIC架构中定义。通用中断控制器(GIC)支持多核系统中cores之间由软件生成(SGI)、私有(PPI)和共享外设(SPI)中断的路由。GIC架构还提供了可用于管理中断源和行为的寄存器,以及(在多核系统中)将中断路由到各个core的寄存器。它使软件能够屏蔽、启用和禁用来自单个源的中断,对单个中断源(在硬件上)进行优先级排序,并生成软件中断
ARM通用中断控制器GIC中断控制
DayDayUp
12-05 5469
GICD_ISPENDRn寄存器提供一个Set-pending bit,对该bit写入1能够将对应外设中断的状态设置为pending,读取对应bit则可以知道该中断是否处于pending状态。处理器可以通过写入GICD_SGIR寄存器来产生一个SGI中断,一个SGI中断可以设置多个目标处理器,并且SGIR寄存器里有目标寄存器列表。从GICD_ISPENDR0开始,寄存器里每个bit代表一个不同中断ID的中断控制位,比如GICD_ISPENDR0[0]表示控制中断ID为0的中断
ARM架构Generic Interrupt Controller(GIC)详解之术语介绍
DayDayUp
09-27 5333
GIC的作用中断分组 interrupt grouping安全性扩展 Security Extensions中断处理模型 Models for handling interrupts虚假中断 Spurious interrupts中断复用 Banking。
CPU interface寄存器
小小小小的专栏
11-30 1979
1、CPU Interface Control Register, GICC_CTLR :控制寄存器,控制是否上报中断到处理器; 2、Interrupt Priority Mask Register, GICC_PMR :中断优先级屏蔽寄存器,我们可以理解为处理器不是一般人,不是谁都可以打扰的,此寄存器的作用就是设置一个优先级阈值,优先级高于此值的中断才会上报给处理器响应; 3、Interru
gic的逻辑划分:distributorcpu interface
小小小小的专栏
09-01 1997
gicgeneric interrupt controler的简称,gic逻辑上可以分为两部分,distributorCPU interface,分别有很多个寄存器组成; distributor的作用是集中管理所有中断源,配置中断的优先级,向各个CPU interface配送最高优先级的中断中断屏蔽、中断抢占、配置中断是边缘出发还是水平触发。 CPU interface的作用更像是一个门
ARMv8/v9 GIC 系列 4.2 -- GIC CPU Interface 详细介绍
最新发布
CodingCos的博客
06-21 823
nIRQ:物理普通中断nFIQ:物理快速中断nVIRQ:虚拟普通中断nVFIQ:虚拟快速中断vNMI不可屏蔽中断图 1-1其中虚拟中断是为了实现虚拟化而准备的,我们只看物理中断。Core 提供给中断的物理管脚只有两个,中断会有成百上千个,GIC怎么把这些中断发送给core是一个问题。这时就需要了。将GIC发送的中断信息 通过IRQ/FIQ管脚发送给连接到 Core。将中断请求发送给core中断进行认可中断完成识别设置中断优先级屏蔽定义中断抢占策略。
写文章

分类专栏

  • ARM 50篇
  • ARM Compiler 9篇
  • ARM Cache 15篇
  • ARM_GICv2 6篇
  • SoC Debug 7篇
  • Linux_C 39篇
  • CPP 67篇
  • 数据结构与算法 25篇
  • 操作系统(Linux/Win) 19篇
  • PCL点云处理 37篇
  • Qt 28篇
  • 工具 26篇
  • OpenCV 18篇
  • STL 13篇
  • 微信小程序 16篇
  • Python 3篇
  • 计算机网络 6篇
  • 数据库 4篇
  • 指针 6篇
  • 安卓 6篇

最新评论

  • PCL教程-点云滤波之StatisticalOutlierRemoval滤波器

    qq_35210952: 被剔除的离群点:这张还以为是提取边缘特征呢

  • ARMv8-A架构下的外部调试模型(external debug)简介

    a401183680: 大佬能讲下Self-host debug吗

  • 图解直接映射(Direct mapped)、全相联(Fully-associative)和组相联(Set-associative)cache缓存基本原理

    Flying_Sailor: 这讲解的, 大牛啊...服了

  • ARM 中缓存维护策略:Allocate policy(读分配/写分配),Write policy(写通/写回)以及replacement policy基础知识

    SOC罗三炮: 谢谢提醒,已修正。

  • ARM 中缓存维护策略:Allocate policy(读分配/写分配),Write policy(写通/写回)以及replacement policy基础知识

    阿明啊长点心吧: 写通法第一行好像笔误了,应该是在WT策略下吧。

大家在看

  • Java | Leetcode Java题解之第503题下一个更大元素II
  • 程序员·买房·留在一线城市 319
  • Golang | Leetcode Golang题解之第503题下一个更大元素II
  • C++ | Leetcode C++题解之第503题下一个更大元素II
  • 数据处理和分析之数据聚类:K-means聚类:NumPy和Pandas入门 1139

最新文章

  • ARMv8-A架构下的外部debug模型之外部调试事件(external debug events)概述
  • 开源,微信小程序-超级计算器T3000 简介
  • ARMv8-A架构下的外部调试模型(external debug)简介
2024年13篇
2023年35篇
2022年39篇
2021年85篇
2020年125篇
2019年6篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SOC罗三炮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家百货商场元旦圣诞春节美陈创意玻璃钢雕塑沙发椅盐城商场国庆美陈福建商场创意商业美陈道具抽象人物玻璃钢雕塑哪家好安徽雕塑玻璃钢雕塑厂家供应永城玻璃钢雕塑湖南小品系列玻璃钢雕塑定做广场玻璃钢雕塑推荐厂家山东抽象玻璃钢雕塑生产厂家长乐玻璃钢卡通座椅雕塑广东步行街玻璃钢雕塑方法玻璃钢雕塑制作过程分几步江阴玻璃钢圆门头雕塑批发江油玻璃钢造型雕塑玻璃钢园林景观大马雕塑扬州玻璃钢雕塑设计制作南京特色玻璃钢雕塑多少钱山东大型商场创意商业美陈策划玻璃钢雕塑的手糊制作步骤仪征玻璃钢雕塑设计玻璃钢景观雕塑报价单塘沽玻璃钢雕塑公司福建省玻璃钢雕塑厂商场美陈的好词好句玻璃钢动物雕塑马图片六一儿童节商场美陈 布置玻璃钢浮雕雕塑价格玻璃钢雕塑国家执行标准浙江玻璃钢雕塑摆件供货商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化