快速链接:
.

中断类型概述
ARMv8/Armv9架构支持三种主要的中断类型:
- 私有外设中断(PPIs) - 特定于单个处理元素(PE)的中断
- 逻辑外设中断(LPIs) - 由虚拟化软件配置的中断类型
- 共享外设中断(SPIs) - 可在多个PE间共享的中断
中断标识符(INTID)结构
每个中断由INTID唯一标识,包含以下两部分:
- INTID.TYPE - 中断类型(PPI、LPI或SPI)
- INTID.ID - 中断的数字ID
INTID的32位结构如下:
Bits[31:29]: 中断类型编码
Bits[28:24]: 保留(RES0)
Bits[23:0]: 中断ID
中断类型编码:
| 二进制值 | 中断类型 |
|---|---|
| 0b001 | 私有外设中断(PPIs) |
| 0b010 | 逻辑外设中断(LPIs) |
| 0b011 | 共享外设中断(SPIs) |
示例:LPI中断ID 1024的INTID为 0x40000400
中断状态与配置
中断状态
- 挂起(Pending) - 中断要么处于挂起状态,要么处于空闲状态。只有挂起状态的中断才会被发出信号并被确认
- 活跃(Active) - 中断要么处于活跃状态,要么处于非活跃状态。只有非活跃状态的中断才会被发出信号并被确认
中断配置
- 启用(Enabled) - 中断要么启用要么禁用。只有启用的中断才会被发出信号并被确认
- 优先级(Priority) - 中断的优先级值,决定中断被确认的顺序,并允许屏蔽较低优先级的中断
- 处理模式(Handling mode) - 边沿(Edge)或电平(Level)模式。边沿模式下,中断被确认后挂起状态变为空闲;电平模式下,中断被确认后挂起状态不变
- 路由模式(Routing mode) - 定向(Targeted)或1ofN模式
- 亲和性(Affinity) - 指定中断的目的地
私有外设中断(PPIs)
PPIs是特定于单个PE的中断,具有以下特点:
- GIC CPU接口扩展定义了ID 0-127的PPIs
- 通常由PE内部功能生成(如Arm通用定时器)
- 每个PE有独立的物理PPI命名空间
- 如果实现了EL2,CPU接口支持虚拟PPIs
- 虚拟PPIs与物理PPIs有独立的命名空间
- PPI的处理模式不可软件编程,但可通过只读系统寄存器发现
- 在GICv5中,PPI的配置和状态保存在CPU接口中
逻辑外设中断(LPIs)
LPIs是由虚拟化和操作系统软件根据软件代理需求配置的中断,具有以下特点:
- 每个中断域有独立的命名空间
- 通常需要分配内存来在IRI中存储其配置和状态
- 名称"逻辑"反映了每个中断域的INTID私有命名空间
- 每个物理中断域有独立的物理LPI命名空间
- 虚拟中断域有独立的虚拟LPI命名空间
- 虚拟LPI命名空间由驻留的VPE和VM决定
- 每个VM有独立的虚拟LPI命名空间
共享外设中断(SPIs)
SPIs设计为无需软件配置即可工作,具有以下特点:
- 无需分配内存来在IRI中存储配置和状态
- 预期在系统设计时配置和提供
- 物理中断域有共同的SPI命名空间
- 虚拟中断域有独立的虚拟SPI命名空间
- 适用于以下场景:
- 早期引导阶段(内存不可用)
- 支持RAS或其他错误处理中断(即使在内存系统故障时也必须正常工作)
- 实时敏感系统(必须满足预定的时序要求)
中断路由
LPIs和SPIs根据路由模式和亲和性路由到适当的PE:
- PPIs对PE是私有的,因此总是在PE本地发出信号
- 每个LPI和SPI的路由模式是定向(Targeted)或1ofN
- 1ofN支持对IRI是可选的
- 路由模式为1ofN时,IRI根据当前可用信息动态选择PE来呈现中断
- 路由模式为定向时,IRI只能将中断呈现给与中断亲和性对应的PE
109

被折叠的 条评论
为什么被折叠?



