我正在尝试使用用户级指令实现一个简单的 RISC-V 32 位内核。
在尝试实施 ISA 时,我在清单中找到了一条指令(系统)。任何人都可以解释系统指令的工作原理(管道中会发生什么变化)。
我正在尝试使用用户级指令实现一个简单的 RISC-V 32 位内核。
在尝试实施 ISA 时,我在清单中找到了一条指令(系统)。任何人都可以解释系统指令的工作原理(管道中会发生什么变化)。
SYSTEM 是所谓的主要操作码。一些主要的操作码是它们自己的指令(LUI、AUIPC、JAL、JALR),但大多数主要的操作码是指令的空间。系统也是如此。在 RV32I 中,指令 SCALL、SBREAK、RDCYCLE、RDCYCLEH、RDTIME、RDTIMEH、RDINSTRET、RDINSTRETH 均使用主操作码 SYSTEM 进行编码(即,对于该指令,指令字的位 6:0 为 1110011)。
有关详细信息,请参阅RISC-V 指令集手册,第一卷:用户级 ISA,版本 2.0中第 49 页和第 50 页的表格和说明。