一、规范体系的分层结构
RISC-V 面向服务器的标准化工作分布在多个层级,各规范批准时间如下(依据 RISC-V 已批准规范库):
●
RVA23 Profile v1.0(2024 年 10 月批准):定义 64 位应用处理器核心的 ISA 基线,仅约束处理器核心本身;
●
Server SoC 规范 v1.0(2025 年 2 月批准):定义 SoC 级硬件要求,覆盖时钟、中断控制器、PCIe、RAS 等片上基础设施;
●
BRS(Boot and Runtime Services)v1.0(2025 年 8 月批准):定义操作系统与平台固件之间的启动及运行时服务接口;
●
Server Platform 规范 v1.0(2026 年 5 月收录进已批准规范库):整合上述内容的整机级规范,目标是使可移植系统软件(企业级操作系统、虚拟机监控程序)可以依赖一组统一存在的硬件能力。
底层引用规范包括 AIA(高级中断架构)v1.0(2023 年 6 月批准)、RERI(错误记录接口)v1.0(2024 年 5 月批准)与 RISC-V IOMMU 规范(2026 年 2 月版本)。
阅读这类规范时需要区分三个层级:规范强制要求(MUST)、规范推荐项(SHOULD)与 Profile 可选项。三者不可混为一谈——例如向量扩展在 RVA22 中是可选项,在 RVA23 中是强制项,这一差异直接影响发行版的二进制基线选择。
二、指令集基线:RVA23S64 与服务器附加强制项
RVA23U64(用户态 Profile)以 RV64I 为基础,在 RVA22 强制项(M、A、F、D、C、B、Zicbom 系列缓存管理指令、Zfhmin 等)之上新增强制项:向量扩展 V、向量位操作 Zvbb、向量最小半精度浮点 Zvfhmin、Zicond 条件操作、Zfa 浮点补充指令、指针掩码 Supm 等。RVV 向量化能力由此从可选变为用户态硬性基线。密码方向的变化同样值得注意:按 Profile 原文的表述,标量密码扩展 Zkn/Zks 在 RVA22 中是可选项,在 RVA23 中既未被列为强制项、也未被保留为可选项,规范给出的理由是向量扩展已强制、向量密码性能显著高于标量密码,生态应转向向量密码(可选项 Zvkng/Zvksg)。
RVA23S64(监管态 Profile)基于特权架构 1.13(Ss1p13),在 RVA23U64 全部用户态强制项之上附加一组监管态强制能力:Sv39、Svade、Svinval、Svbare、Svpbmt 等虚拟内存机制,Sstc 监管态定时器中断,Sscofpmf 计数器溢出过滤,以及 Sha。Sha 是 RVA23 Profile 定义的聚合扩展名(规范原文称 augmented hypervisor extension),在 H 扩展之外一并纳入 Ssstateen、Shcounterenw、Shvstvala、Shvsatpa、Shgatpa 等配套强制要求。完整强制项清单以 Profile 规范的 Mandatory Extensions 表为准,此处为代表性列举。
Server Platform 规则在 RVA23S64 之上追加强制扩展(规则 RVA_020):Sv48、Sdtrig、Sdext、Zkr、Ssccfg、Ssstrict、Ssaia。这组追加项是理解层级关系的典型样本:
●
Sv48 与 Zkr 在 RVA23S64 中是扩展选项(expansion option),在平台规范中升级为强制项;
●
Svadu(硬件 A/D 位更新)在平台规范中仅为推荐项(SHOULD),规范注明其预计在未来版本转为强制;
●
Ssaia(AIA 的监管态 CSR 视图)在 Profile 层面可选,在平台层面强制。
在 Linux 上核对内核上报的 ISA 串,可作为 CPU 侧扩展的辅助检查手段(完整的 RVA23S64 与平台合规判定还需结合固件接口和平台级硬件能力,见结语):
xxxxxxxxxx# 查看内核识别的 ISA 串(Linux 6.x 对向量与位操作子扩展有完整上报)awk '/^isa/{print $2; exit}' /proc/cpuinfo# 符合 RVA23 的实现应包含 v、zvbb 等字段,例如:# rv64imafdcv_zicsr_zifencei_zicond_zvbb_zihintntl_...三、中断、内存管理与 I/O 互连
中断架构。 Server Platform 强制要求 AIA:外部中断必须以消息信号中断(MSI)形式传递;IMSIC 必须实现 S-mode 中断文件,并至少提供 5 个 VS-mode 中断文件(规则 IIC_040)。规范对该规则的说明文本指出,这一数量使单个 hart 上至多 5 个 vCPU 切换时无需将中断文件内容换出到内存,设备直通场景下可避免中断重定向引入的延迟;vCPU 的实际调度与中断上下文管理仍由 hypervisor 实现决定。若 SoC 存在线中断源,需经 APLIC 转换为 MSI。
虚拟化与地址翻译。 虚拟机两级地址翻译由 Sha 中的 Shgatpa 约束:satp 支持的每种 SvNN 模式,hgatp 须支持对应的 SvNNx4 模式;配合平台强制的 Sv48,即构成 48 位虚拟机的两级翻译能力。规则 RVA_050 要求同一监管执行环境内所有 hart 的 ISA 及字段宽度完全一致(包括 VLEN、ASID 宽度等),其目的在于保证虚拟机与任务在核心间迁移时架构状态可无损保存与恢复——这是一致性语义在调度层面的延伸约束。
I/O 子系统。 按 Server SoC 规则 IOM_020,所有具备 DMA 能力的外设(RCiEP 与非 PCIe 设备)以及可被应用处理器软件访问的 PCIe Root Port 必须受 RISC-V IOMMU 管辖;规范同时明确豁免了一类发起方:中断控制器(如 APLIC)、IOMMU 自身、调试模块的 System Bus Access 块,以及访问预留资源的 RoT、电源管理等 SoC 管理控制器。IOMMU 规范定义了地址转换、PASID(20 位)与 ATS 等能力,且复位后 DMA 默认关闭(IOM_240)。PCIe 方面,规则 RCI_010 要求 Root Port、host bridge、RCRB 与 RCEC 实现 PCIe 6.0 中适用于 Root Complex 的软件可见规则——这约束的是软件可见行为而非物理链路速率;ECAM 访问须满足非缓存、强序语义(ECM_010/020)。可靠性能力须逐条区分等级:Root Port 必须支持 AER 与 DPC(AER_010/020),必须支持 ACS 的 source validation、translation blocking 与 I/O request blocking 子能力(ACS_010);ATS 与 T2GPA 为推荐项(IOM_090/100)。
片上一致性互连。 Server Platform 与 Server SoC 规范均不规定片上一致性互连协议,多核缓存一致性可由 AMBA CHI、ACE、TileLink 或厂商自研互连实现,属于具体 SoC 的实现选择,不构成平台合规条件。玄铁 C950 处理器 IP 提供了核侧直连 CHI.E/CHI.F、可选共享 L3 的实现方式(C950 产品页),可用于说明高性能 RISC-V SoC 的互连实现路径。需要说明的是,C950 属于处理器 IP,其接口与缓存配置不等于服务器平台合规性——后者还取决于 IOMMU、中断系统、固件与 BRS 等系统级组件。
四、启动流程与系统软件适配
BRS 是面向多种平台类型(客户端、服务器等)的通用规范,规定固件向操作系统描述硬件时 ACPI 与设备树不可同时使用;Server Platform 规则 FIRM_010 进一步要求固件符合 BRS 中的 BRS-I 配方,即以 UEFI 与 ACPI 作为可移植系统软件依赖的标准固件接口。ACPI 6.6 于 2025 年 5 月由 UEFI 论坛发布,其中引入了 RISC-V 的原生支持内容(MADT 中的 RINTC/IMSIC/APLIC 结构、RHCT 表、RISC-V IOMMU 表等),这使 RISC-V 服务器得以接入数据中心既有的固件与操作系统部署体系。SBI(Supervisor Binary Interface)作为监管态软件与固件的标准接口,v3.0 已于 2025 年 7 月批准。
发行版侧的基线迁移已经启动:Ubuntu 官方文档显示,25.10 起软件仓库的 RISC-V 基线由 RVA20 提升至 RVA23,且 25.10 的 RISC-V 内核(linux-riscv)明确要求硬件满足 RVA23S64 Profile,26.04 LTS 沿此基线构建。这意味着面向服务器的软件包将默认使用向量指令,交叉编译时的 -march 选择需要与目标基线对齐:
xxxxxxxxxx# Debian/Ubuntu 安装 RISC-V 交叉编译工具链sudo apt install gcc-riscv64-linux-gnu# 以 RVA23 用户态基线编译(gcv 含向量;zvbb 为平台常见附加强制项)riscv64-linux-gnu-gcc -march=rv64gcv_zvbb -O2 -static -o vec_bench vec_bench.c# 在用户态模拟器中运行(max CPU 型号启用全部已实现扩展)qemu-riscv64 -cpu max ./vec_bench硬件层面,RVA23 兼容的 SoC 已开始进入市场,但完整满足 Server Platform v1.0 全部系统级规则(IOMMU 管辖范围、BRS-I 固件、RAS、TPM 2.0 等)的公开量产服务器平台仍处早期阶段,合规测试与生态验证仍在推进。软件栈因此采取"左移"策略:QEMU 社区正在推进 rvsp-ref 参考机型(RISC-V Server Platform Reference),其补丁系列截至 2025 年 11 月仍处于评审阶段,缺口包括 Sdext 等调试扩展的主线实现;在合规硬件批量到位前,QEMU 与 FPGA 原型是验证固件链路与内核适配的主要载体。搭建此类 RISC-V 开发环境所需的工具链与文档,可从玄铁资源中心获取。
五、可用性:RAS、QoS 与可观测性
错误记录。RAS 能力须逐条区分等级:SoC 推荐支持 RERI(RAS Error Record Register Interface,v1.0,2024 年 5 月批准,规则 RAS_040);而错误记录一旦实现,必须支持按严重程度分别启用错误信令,涵盖 CE(Corrected Error)、UED(Uncorrected Error Deferred)与 UEC(Uncorrected Error Critical)三类(RAS_050),且错误记录状态须在 RAS 触发的复位期间保留(RAS_060)。数据毒化的生成、存储与转发为推荐项(RAS_020),规范同时强烈建议对关键缓存与内存实现 ECC 及定期巡检(patrol scrubbing)。
服务质量。 SoC 推荐集成 QoS 机制以抑制多工作负载对共享缓存与内存的干扰(QOS_010),并推荐支持 CBQRI(容量与带宽 QoS 寄存器接口规范,v1.0,2024 年 6 月批准)以提供缓存容量与内存带宽的分配及监控能力(QOS_020);若实现 CBQRI,hart 须支持 srmcfg CSR 并提供规定数量的 RCID/MCID(QOS_030)。
可观测性。 每个应用处理器 hart 须在 Zicntr 三个基础计数器之外提供至少 6 个硬件性能计数器(Zihpm,规则 RVA_060),规范原文说明该数量源自既有服务器平台的运维经验。时间基础设施方面,time CSR 必须以不低于 100 MHz 的频率更新且单位为纳秒,计数须跨核心低功耗状态保持连续。
调试能力。 Sdtrig 与 Sdext 为强制扩展,SEE 层级另要求支持单步执行、至少各 4 个指令与访存地址匹配触发器,以及中断与异常触发器,且触发器须支持特权模式过滤——这些要求服务于数据中心场景的故障诊断与现场调试。
结语
分层评估当前状态:
能做什么——RVA23S64 加平台附加强制项构成了明确的 ISA 合规判据,AIA/MSI、IOMMU、PCIe Root Complex 规则与 BRS-I/UEFI/ACPI 链路补齐了虚拟化、设备隔离与标准化启动的体系化要求,其目标是使可移植系统软件依赖统一的平台能力,降低跨厂商部署对专有 BSP 与硬件描述的依赖;
还缺什么——完整满足 v1.0 全部规则的量产整机仍处早期,软件栈(QEMU 参考机、发行版基线)先行于硬件落地,Svadu、Ssctr(控制转移记录)等仍为推荐项意味着基线存在变动空间,合规测试与认证体系也尚未完全建立。对评估者而言,可操作的核对顺序是:先验证 RVA23S64 合规,再核对平台强制扩展(Sv48/Ssaia/Zkr/Sdtrig/Sdext/Ssccfg/Ssstrict),继而验证 BRS 启动链路,最后评估 RAS 与 QoS 的完成度。





