系统指令工作



我正在尝试实现一个简单的RISC-V 32位内核与用户级指令。

在尝试实现ISA时,我在清单中发现了一个指令(系统)。有人能解释一下系统指令的工作原理吗(管道中会有什么变化)

SYSTEM是所谓的主操作码。一些主要操作码本身就是指令(LUI、AUIPC、JAL、JALR),但大多数主要操作码是指令的空间。系统也是如此。在RV32I中,指令SCALL、SBREAK、RDCYCLE、RDCYCLEH、RDTIME、RDTIMEH、RDINSTRET、RDINSTRETH都使用主操作码SYSTEM进行编码(即指令字的6:0位为该指令的1110011)。

参见《RISC-V指令集手册》第49页和第50页的表格和解释,卷一:用户级ISA,版本2.0。

最新更新