2.4-中断类型与标识符详解

快速链接:
.


在这里插入图片描述

中断类型概述

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Arm精选

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

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

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

打赏作者

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

抵扣说明:

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

余额充值