当前位置: 首页 > news >正文

ITS是什么

ITS(Interrupt Translation Service)ARM Generic Interrupt Controller v3 (GICv3)架构中的一个硬件模块,主要作用是:

把设备产生的 MSI/MSI-X 中断转换成 GIC 能处理的 LPI 中断。

一句话理解:

MSI (PCIe设备) │ ▼ ITS 翻译 (DeviceID , EventID) │ ▼ LPI │ ▼ CPU

ITS 本质就是MSI → LPI 的中断翻译引擎


一、为什么需要 ITS

在传统 GIC(例如 GICv2)中,中断主要是:

类型说明
SGICPU 之间的软件中断
PPICPU 私有外设
SPI系统共享外设

SPI 最大大约:

≈ 1000 个

但现代设备:

  • NVMe SSD
  • 高速网卡
  • GPU
  • RDMA

需要几十到几百个 MSI 中断

例如:

NVMe 64 queue → 64 中断

如果系统有很多设备:

SPI 完全不够

所以 GICv3 引入:

LPI (Locality-specific Peripheral Interrupt)

ITS 就负责生成这些 LPI


二、ITS 在系统中的位置

系统结构:

PCIe Device │ MSI write │ PCIe Root Complex │ SoC interconnect (AXI / NoC) │ ITS │ LPI │ Redistributor │ CPU

ITS 位于GIC 子系统中,通常和:

  • Distributor
  • Redistributor

一起构成完整 GIC。


三、ITS 的核心功能

ITS 主要做三件事情。


1 中断翻译(Translation)

设备触发 MSI 时:

Address = MSI address Data = MSI data RID = Requester ID

ITS 将其解释为:

DeviceID = RID EventID = MSI Data

然后查表:

(DeviceID , EventID) │ ▼ LPI

例如:

DeviceID = 0x0200 EventID = 5 │ ▼ LPI = 8205

2 中断路由(Routing)

ITS 决定中断送到哪个 CPU。

例如:

NVMe Queue0 → CPU0 NVMe Queue1 → CPU1 NVMe Queue2 → CPU2

这样可以:

  • 避免锁竞争
  • 提升性能

3 中断虚拟化(Virtualization)

ITS 支持:

  • SR-IOV
  • VM 直通设备
  • Guest MSI

GICv4中甚至可以:

PCIe device → Guest VM interrupt

无需 Hypervisor 参与。


四、ITS 的核心数据结构

ITS 主要依赖三个表。


1 Device Table

记录:

DeviceID → Interrupt Table

每个设备对应一个中断表。


2 Interrupt Translation Table (ITT)

记录:

EventID → LPI

例如:

EventID 0 → LPI 8200 EventID 1 → LPI 8201 EventID 2 → LPI 8202

3 Collection Table

记录:

LPI → CPU

用于决定中断送到哪个 CPU。


五、完整工作流程

假设 NVMe 触发 MSI:

Step1 设备写 MSI

PCIe Device │ MSI write (Address , Data)

Step2 ITS 捕获

ITS 得到:

DeviceID = RequesterID EventID = MSI Data

Step3 查表

(DeviceID , EventID) │ ▼ LPI

Step4 发送中断

ITS │ Redistributor │ CPU

六、为什么 ITS 这么重要

因为 ITS 让系统可以支持:

几十万中断

而不是传统的:

≈1000 SPI

这对以下设备非常关键:

  • NVMe
  • 100G/200G 网卡
  • GPU
  • RDMA

七、一句话总结

ITS 的本质就是:

MSI (PCIe) │ (DeviceID , EventID) │ ITS 翻译 │ LPI │ CPU

所以:

ITS = MSI → LPI 翻译器

http://www.jsqmd.com/news/454026/

相关文章:

  • [特殊字符]家人们,今天来给大家分享一款超厉害的闭环步进驱动器源码![特殊字符]
  • Linux线程(3)线程控制
  • 探寻2026年安徽口碑好的AI搜索推广专业公司,价格怎么收费 - 工业推荐榜
  • 永磁同步电机无位置观测算法:实测有效的宝藏秘籍
  • 【RabbitMQ】超详细Windows系统下RabbitMQ的安装配置
  • 2026年深圳配眼镜品牌全、服务好的配镜中心排名大揭秘 - mypinpai
  • 2026年工业移动电源厂家推荐排行榜:大功率/220V/380V/便携式/应急/工程施工/大容量/快充/消防救援/户外/储能式移动电源,专业实力与创新技术深度解析 - 品牌企业推荐师(官方)
  • 计算机毕设java的高校车辆租赁管理系统 基于SpringBoot框架的校园汽车共享与调度服务平台 Java技术驱动的高校公务车辆与共享出行一体化管理系统
  • Simulink车用永磁同步电机弱磁控制的矢量控制FOC
  • 2026年腾讯企业邮箱开通服务商怎么选:资质、价格与服务对比详解 - 品牌2026
  • 镀锌板水箱选购指南:核心要素解析+Top5厂家推荐,工业与市政项目必看 - 深度智识库
  • 【MySQL统计函数count详解】
  • OpenGait(步态识别框架)的配置项说明
  • 2026年3月建筑AI深度测评报告:6款工具对比,EVAI第一
  • 飞跨电容型NPC逆变器仿真(SPWM) 仿真包含FCNPC拓扑、LCL滤波器、三相纯阻性负载构...
  • 2026年靠谱的文审机_娃娃机_弹珠机源头厂家口碑推荐-陕西英杰儿童主题乐园有限公司 - 朴素的承诺
  • 一次生产事故,我用AI分析日志找到了根因
  • Postman接口测试与自动化实战
  • 自然语言处理 —— 基础入门
  • 【python】pyspark.errors.exceptions.base.PySparkRuntimeError [JAVA_GATEWAY_EXITED] Java gateway proce
  • [Maui] 造轮子——LoggerSqlite
  • 论文写作必备:专业 AI 软件排名与选择指南
  • 基于DC 12kV、N=12的多电平MMC仿真研究:最近电平逼近调制与排序均压策略实现
  • llc半桥变换器多种控制方式仿真模型:变频、PWM、滞环、自抗扰等控制方式的半桥llc谐振变换...
  • 面对选型困惑与安装难题,如何与可靠的钢格板厂家高效合作? - 企师傅推荐官
  • 中心碰撞优化算法(CCO)-2026年SCI一区新算法-公式原理详解与性能测评 Matlab代码免费获取
  • win11本地部署openclaw实操第9集-配置 OpenClaw 连接本地模型参数
  • 20260309学习 - 小镇
  • QT聊天项目(11)
  • LITESTAR 4D应用:道路附加模块