The RVA23 profiles are intended to align implementations of RISC-V 64-bit application processors to allow binary software ecosystems to rely on a large set of guaranteed extensions and a small number of discoverable coarse-grain options. It is explicitly a non-goal of RVA23 to allow more hardware implementation flexibility by supporting only a minimal set of features and a large number of fine-grain extensions.
RVA23 profiles 目的是统一 RISC-V 64 位应用处理器的实现,以便二进制软件生态系统可以依赖于大量的有保证的 extensions 和少量可选的粗粒度选项,而不是通过支持一组最小功能和大量细粒度扩展来提供更多硬件实现灵活性。
Only user-mode (RVA23U64) and supervisor-mode (RVA23S64) profiles are
specified in this family.
本文档只指定了 user-mode(RVA23U64)和 s-mode(RVA23S64)profile.
The RVA23U64 profile specifies the ISA features available to user-mode execution environments in 64-bit applications processors. This is the most important profile within the application processor family in terms of the amount of software that targets this profile.
RVA23U64 profile 指定了 64 位应用处理器中用户模式执行环境可用的 ISA 功能,就针对该 profile 的软件数量而言,这是应用处理器家族中最重要的 profile。
RV64I is the mandatory base ISA for RVA23U64 and is little-endian. As per the unprivileged architecture specification, the ECALL
instruction causes a requested trap to the execution environment.
RV64I 是 RVA23U64 的强制基本 ISA,也是小端的。根据非特权架构规范,ECALL
指令引发 trap。
The following mandatory extensions were present in RVA22U64.
RVA22U64包含以下强制 extensions
The following mandatory extensions are new in RVA23U64:
以下强制 extensions 是 RVA23U64 中的新内容
NOTE : V was optional in RVA22U64.
NOTE: V 在 RVA22U64 中是可选的。
Zvfhmin 向量最小半精度浮点
Zvbb 向量基本位操作指令
Zvkt 向量数据独立执行延迟
Zihintntl 非临时局部性提示
Zicond 整数条件操作
Zcmop Compressed may-be-operations.
Zcmop 压缩 may-be-operations
Zcb 额外的压缩指令
Zfa 额外的浮点指令
Zawrs 等待保留集指令
Supm 指针掩码化,执行环境提供一种选择至少 PMLEN=0 和 PMLEN=7 的方法
The following localized options are new in RVA23U64:
RVA23U64中新的 localized 选项如下
Zvkng GCM模式的向量加密 NIST 算法
Zvksg GCM模式的向量加密 ShangMi 算法
NOTE: The scalar crypto extensions Zkn and Zks that were options in
RVA22 are not options in RVA23. The goal is for both hardware and
software vendors to move to use vector crypto, as vectors are now
mandatory and vector crypto is substantially faster than scalar
crypto.
NOTE: scalar crypto extensions Zkn 和 Zks 在RVA22中是可选的但在RVA23中不再是可选的。目的是硬件和软件供应商都使用向量加密,因为向量现在是强制的,而且向量加密比标量加密快得多。
NOTE: We have included only the Zvkng/Zvksg options with GCM to
standardize on a higher performance crypto alternative. Zvbc is listed
as a development option for use in other algorithms, and will become
mandatory. Scalar Zbc is now listed as an expansion option, i.e., it
will probably not become mandatory.
NOTE:我们只包含了带有 GCM 的 Zvkng/Zvksg 选项,以便标准化更高性能的加密替代方案。Zvbc 列为用于其他算法的开发选项,并将成为强制选项。标量 Zbc 现在列为扩展选项,即它可能不会成为强制选项。
The following are new development options intended to become mandatory in a future RVA profile.
以下是新的开发选项,在未来的 RVA profile 中成为强制选项
Zabha 字节和半字原子内存操作
Zacas 比较和交换指令
AMOCASQ
level PMA support.Ziccamoc 带有缓存一致性 PMAs 的 Main memory regions 必须提供 AMOCASQ
级别的 PMA 支持
NOTE: Ziccamoc is a new profile-defined extension that ensures Compare and Swap instructions are properly supported in main memory regions. The extension will be added to the PMA section of the privileged architecture manual.
NOTE: Ziccamoc 是一个新的 profile-defined extension,它确保 Compare and Swap 指令在main memory
regions中得到正确支持。该扩展将被添加到特权架构手册的 PMA 部分。
Zvbc 向量无进位乘法
Zama16b 对不跨越自然对齐的 16 字节边界的 main memory regions 的非对齐加载、存储和 AMO 是原子的。
NOTE: Zama16b is a new profile-defined extension that represents the presence of the new Misaligned Atomicity Granule feature added in Sm1p13. The extension will be added to the PMA section of the privileged architecture manual.
NOTE: Zama16b 是一个新的 profile-defined extension,表示在 Sm1p13 中添加的新的 Misaligned Atomicity Granule 功能。该扩展将被添加到特权架构手册的 PMA 部分。
The following expansion options were also present in RVA22U64:
RVA22U64 中也包含以下 expansion options
Zfh 标量半精度浮点
The following are new expansion options in RVA23U64:
RVA23U64 中的新的 expansion options 如下
Zbc 标量无进位乘法
Zvfh 向量半精度浮点
Zfbfmin 标量 BF16 转换
Zvfbfmin 向量 BF16 转换
Zvfbfwma 向量 BF16 widening mul-add
There are no transitory options in RVA23U64.
RVA23U64中没有 transitory options
NOTE: Scalar crypto is no longer an option in RVA23U64, though the Zbc
extension has now been exposed as an expansion option.
NOTE:标量加密在 RVA23U64 中不再是一个选项,尽管 Zbc 扩展现在已经暴露为一个 expansion option。
Implementations are strongly recommended to raise illegal-instruction exceptions on attempts to execute unimplemented opcodes.
强烈建议实现在尝试执行未实现的操作码时引发非法指令异常。
The RVA23S64 profile specifies the ISA features available to a
supervisor-mode execution environment in 64-bit applications
processors. RVA23S64 is based on privileged architecture version
1.13.
RVA23S64 profile 指定了 64 位应用处理器中 s-mode 执行环境可用的 ISA 功能。RVA23S64 基于特权架构版本 1.13。
RV64I is the mandatory base ISA for RVA23S64 and is little-endian.
The ECALL
instruction operates as per the unprivileged architecture
specification. An ECALL
in user mode causes a contained trap to
supervisor mode. An ECALL
in supervisor mode causes a requested
trap to the execution environment.
RV64I 是 RVA23S64 的强制基本 ISA,也是小端的。ECALL
指令的操作与非特权架构规范相同。在用户模式下的 ECALL
引发到 s-mode 的 contained trap。在 s-mode 下的 ECALL
引发到执行环境的 requested trap。
The following unprivileged extensions are mandatory:
以下 unprivileged extensions 是强制的
RVA23S64 的强制 unprivileged extensions 包括 RVA23U64 中的所有强制的 unprivileged extensions。
Zifencei 指令获取栅栏
NOTE: Zifencei is mandated as it is the only standard way to support
instruction-cache coherence in RVA23 application processors. A new
instruction-cache coherence mechanism is under development
(tentatively named Zjid) which might be added as an option in the
future.
NOTE:Zifencei 是强制的,因为它是在 RVA23 应用处理器中支持指令缓存一致性的唯一标准方式。
一种新的指令缓存一致性机制(暂时命名为 Zjid)正在开发,可能会在将来作为选项添加。
The following privileged extensions are mandatory:
以下 privileged extensions 是强制的
Ss1p13 s-mode 架构版本 1.13
NOTE: Ss1p13 supersedes Ss1p12.
NOTE:Ss1p13 取代了 Ss1p12。
The following privileged extensions were also mandatory in RVA22S64:
以下 privileged extensions 在 RVA22S64 中也是强制的
satp
mode Bare must be supported.Svbare 必须支持 satp
模式 Bare
Sv39 基于页的 39 位虚拟内存系统
Svade 当 A 位清除时访问页面或当 D 位清除时写入页面时引发 page-fault
Ssccptr 带有缓存一致性 PMAs 的 Main memory regions 必须支持硬件页表读取
stvec.MODE
must be capable of holding the value 0
(Direct). When stvec.MODE=Direct
, stvec.BASE
must be capable of
holding any valid four-byte-aligned address.Sstvecd stvec.MODE
必须能够保存值 0(Direct)。
当 stvec.MODE=Direct
时,stvec.BASE
必须能够保存任何有效的四字节对齐地址。
stval
must be written with the faulting virtual address
for load, store, and instruction page-fault, access-fault, and
misaligned exceptions, and for breakpoint exceptions other than
those caused by execution of the EBREAK
or C.EBREAK
instructions.
For virtual-instruction and illegal-instruction exceptions, stval
must be written with the
faulting instruction.Sstvala 对于加载、存储和 page-fault、access-fault 和 misaligned 异常,以及除了执行 EBREAK
或 C.EBREAK
指令引起的断点异常之外的断点异常,必须使用故障的虚拟地址写入 stval
。
对于虚拟指令和非法指令异常,必须使用故障指令写入 stval
。
hpmcounter
that is not read-only zero, the
corresponding bit in scounteren
must be writable.Sscounterenw 对于任何不是 read-only zero 的 hpmcounter
,scounteren
中的相应位必须可写。
Svpbmt 基于页的内存类型
Svinval 细粒度地址转换缓存失效
The following are new mandatory extensions:
以下是新的强制 extensions
Svnapot NAPOT 转换连续性
NOTE: Svnapot was optional in RVA22.
NOTE:Svnapot 在 RVA22 中是可选的。
Sstc s-mode 定时器中断
NOTE: Sstc was optional in RVA22.
NOTE:Sstc 在 RVA22 中是可选的。
Sscofpmf 计数溢出和基于模式的过滤
senvcfg.PMM
and henvcfg.PMM
supporting,
at minimum, settings PMLEN=0 and PMLEN=7.Ssnpm 指针掩码化,senvcfg.PMM
和 henvcfg.PMM
至少支持设置 PMLEN=0 和 PMLEN=7。
sstatus.UXL
must be capable of holding the value 2
(i.e., UXLEN=64 must be supported).Ssu64xl sstatus.UXL
必须能够保存值 2(例如:必须支持 UXLEN=64)。
NOTE: Ssu64xl was optional in RVA22.
NOTE:Ssu64xl 在 RVA22 中是可选的。
Sha 增强的 hypervisor 扩展
NOTE: Sha is a new profile-defined extension that captures the full set of features that are mandated to be supported along with the H extension. There is no change to the features added by including the hypervisor extension in a profile--the new name is solely to simplify the text of the profiles. The definition has been added to the RVA22 profile text, where the hypervisor extension was first added, but will be added to the hypervisor section of the combined ISA manual.
NOTE:Sha 是一个新的 profile-defined extension,它包含了H 扩展必须支持的完整功能集。通过在 profile 中包含 hypervisor extension 添加的功能没有变化——新名称仅用于简化 profile 的文本。该定义已添加到 RVA22 profile 文本中,其中首次添加了 hypervisor 扩展,但将添加到组合 ISA 手册的 hypervisor 部分。
Sha comprises the following extensions:
Sha 包括以下 extensions
H The hypervisor extension.
Ssstateen Supervisor-mode view of the state-enable extension. The
supervisor-mode (sstateen0-3
) and hypervisor-mode (hstateen0-3
)
state-enable registers must be provided.
Ssstateen s-mode 下的 state-enable extension。必须提供 s-mod(sstateen0-3
)和 h-mode(hstateen0-3
)state-enable 寄存器。
Shcounterenw For any hpmcounter
that is not read-only zero, the corresponding bit in hcounteren
must be writable.
Shcounterenw 对于任何不是 read-only zero 的 hpmcounter
,hcounteren
中的相应位必须可写。
Shvstvala vstval
must be written in all cases described above for stval
.
Shvstvala 对于上述所有情况,必须写入 vstval
。
Shtvala htval
must be written with the faulting guest physical
address in all circumstances permitted by the ISA.
Shtvala 在 ISA 允许的所有情况下,必须使用故障的 guest 物理地址写入 htval
。
Shvstvecd vstvec.MODE
must be capable of holding the value 0 (Direct).
When vstvec.MODE
=Direct, vstvec.BASE
must be capable of holding
any valid four-byte-aligned address.
Shvstvecd vstvec.MODE
必须能够保存值 0(Direct)。当 vstvec.MODE
=Direct 时,vstvec.BASE
必须能够保存任何有效的四字节对齐地址。
Shvsatpa All translation modes supported in satp
must be supported in vsatp
.
Shvsatpa stap
支持的所有 translation modes 必须在 vsatp
中支持。
Shgatpa For each supported virtual memory scheme SvNN supported in
satp
, the corresponding hgatp SvNNx4 mode must be supported. The
hgatp
mode Bare must also be supported.
Shgatpa 对于 satp
中支持的每种虚拟内存方案 SvNN,必须支持相应的 hgatp SvNNx4 模式。hgatp
模式 Bare 也必须支持。
NOTE: The augmented hypervisor extension (exactly equivalent to Sha) was optional in RVA22.
NOTE:增强的 hypervisor extension(与 Sha 完全相同)在 RVA22 中是可选的。
There are no privileged localized options in RVA23S64.
RVA23S64 中没有 privileged localized options。
There are no privileged development options in RVA23S64.
RVA23S64 中没有 privileged development options。
The following privileged expansion options were present in RVA22S64:
RVA22S64 中包含以下 privileged expansion options
Sv48 基于页的 48 位虚拟内存系统
Sv57 基于页的 57 位虚拟内存系统
The following are new privileged expansion options in RVA23S64
RVA23S64 中的新的 privileged expansion options 如下
Svadu 硬件 A/D 位更新
Sdtrig 调试触发器
Ssstrict 不存在不符合规范的扩展。在标准或保留的编码空间中尝试执行未实现的操作码或访问未实现的 CSRs会引发非法指令异常,从而导致 contained trap 到 s-mode 陷阱处理程序。
NOTE: Ssstrict is a new profile-defined extension that restricts the
behavior of reserved encoding spaces. The extension will be added to
the supervisor chapter of the privileged architecture.
NOTE: Ssstrict 是一个新的 profile-defined extension,限制了保留编码空间的行为。该扩展将被添加到特权架构的 s-mode 章节。
NOTE: Ssstrict does not prescribe behavior for the custom encoding
spaces or CSRs.
NOTE: Ssstrict 不规定自定义编码空间或 CSRs 的行为。
NOTE: Ssstrict definition applies to the execution environment claiming to be RVA23-compatible, which must have the hypervisor extension. That execution environment will take a contained trap to supervisor-mode (however that trap is implemented, including, but not limited to, emulation/delegation in the outer execution environment). Ssstrict (and all the other RVA23 mandates and options) do not apply to any guest VMs run by a hypervisor. An RVA23 hypervisor can provide guest VMs that are also RVA23-compatible but with an expanded set of emulated standard instructions. An RVA23 hypervisor can also choose to implement guest VMs that are not RVA23 compatible (e.g., lacking H, or only RVA20).
NOTE:Ssstrict 定义适用于 RVA23 兼容的执行环境,该执行环境必须具有 hypervisor extension。该执行环境将 contained trap 到 s-mode(无论该 trap 如何实现,包括但不限于在外部执行环境中的模拟/委托)。Ssstrict(以及所有其他 RVA23 mandates 和 options)不适用于 hypervisor 运行的任何 guest VMs。RVA23 hypervisor 可以提供也是 RVA23 兼容的 guest VMs,但具有扩展的模拟标准指令集。RVA23 hypervisor 也可以选择实现不兼容 RVA23 的 guest VMs(例如,缺少 H,或仅 RVA20)。
Svvptc 从无效到有效的 PTEs 的转换将在有界时间内可见,而无需显式的内存管理栅栏。
Sspm s-mode 指针掩码化,s-mode 执行环境提供一种选择至少 PMLEN=0 和 PMLEN=7 的方法。
The following unprivileged ISA extensions are defined in Volume I
of the https://github.com/riscv/riscv-isa-manual[RISC-V Instruction Set Manual].
The following privileged ISA extensions are defined in Volume II of the RISC-V Instruction Set Manual.
The following extensions have not yet been incorporated into the RISC-V
Instruction Set Manual; the hyperlinks lead to their separate specifications.
stvec
supports Direct modestval
provides all needed valuesvstval
provides all needed valueshtval
provides all needed valuesvstvec
supports Direct modevsatp
supports all modes supported by satp
satp
, as well as BareWith the help of github Copilot and Gemini 2 flash
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有