《The RISC-V Advanced Interrupt Architecture》系统性地定义了RISC-V的中断架构,涵盖传统中断、MSI、虚拟化支持及跨处理器通信机制,通过新增CSR、IMSIC、APLIC和IOMMU协同工作,实现高效、灵活的中断处理体系。
- 第一章概述了AIA的设计目标、系统限制、核心组件及中断处理逻辑。
- 第二章详细列出了各特权级新增的CSR,重点在于间接访问机制(如miselect/mireg)和IMSIC相关寄存器(如mtopei)。权限控制通过状态使能寄存器(mstateen0)实现,确保低特权级安全访问。
- 第三章(IMISC) 讲述了IMSIC 作为hart本地的MSI接收器,通过中断文件和CSR来管理优先级与交付,涉及中断文件的结构、MSI编码、CSR寄存器。
- 第四章(APLIC) 主要讲述了APLIC 作为全局中断控制器,支持传统中断与MSI转发,通过多域配置实现灵活路由,与IMSIC协同完成高效中断处理,描述了中断源管理、中断域等概念。
- 第五章 是关于机器(Machine)和监管者(Supervisor)级别的中断处理,讲述了主要中断类型、不同特权级的中断处理,优先级配置和中断过滤。
- 第六章涉及虚拟机(Virtual Machine,VS级别)的中断机制,讲述了guest中断文件、虚拟中断注入和陷阱机制,实现设备直通与高效虚拟化。
- 第七章(IPI)是关于IPI的定义、依赖IMSIC的MSI机制实现跨hart中断,发送机制、同步要求、应用场景及限制。
- 第八章(IOMMU)讲述了IOMMU的角色、地址转换流程、MRIF机制、MSI页表格式,实现虚拟机MSI的重定向,灵活的中断虚拟化等。
第一章 AIA Introduction
1.1 Goals
- 基于RISC-V 特权架构的中断处理功能构建,尽量减少现有功能的替换;
- 除了wired interrupt外 ,还为RISC-V 系统能提了供直接处理msi的功能;
- 定义了APLIC,能处理wired interrupts,如果系统支持msi,也将wire interrupt 转化为MSIs;
- 为RISC-V hart的local interrupt 扩展框架;
- 可选择允许软件配置 RISC-V 硬件的所有中断源的相对优先级;
- 当hart实现特权架构的hypervisor扩展时,为虚拟机虚拟化这些相同的中断设施提供足够的帮助;
- 借助于重定向 MSI 的 IOMMU,最大限度地提高在虚拟机中运行的 guest 操作系统直接控制设备的机会和能力,尽量减少 hypervisor 的参与;
- 避免让中断硬件限制虚拟机的数量;
- 在速度、效率和执行灵活性之间做出最好的兼容
1.2 LIMIT
RISC-V AIA 可以支持多达16,384个hart的RISC-V对称多处理(SMP)系统。
如果hart是64位(RV64)并且实现了hypervisor扩展,并且如果AIA的所有特性也被完全实现,那么对于每个物理hart可能有多达63个活动虚拟hart和潜在的数千个额外的空闲(交换)虚拟hart,其中每个虚拟hart可以直接控制一个或多个物理设备。
ITEM |
Maximum |
Requirements |
Physical harts |
16,384 |
|
每个Physical harts ,可以直接控制设备的活动虚拟hart |
31 for RV32, 63 for RV64 |
RISC-V hypervisor extension; IMSICswith guest interrupt files; and an IOMMU |
每一个Physical harts,可以直接直接控制设备的空闲的(交换出的)虚拟hart, |
可能上千个(potentiallythousands) |
an IOMMU with support for memory resident interrupt files (支持驻留内存中断文件的IOMMU) |
Wired interrupts at a single APLIC |
1023 |
|
每个hart(物理或虚拟)中,对于msi可用的不同标识ID |
2047 |
< |