系统指令工作

System instruction working

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

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

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

有关详细信息,请参阅 The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Version 2.0 中第 49 页和第 50 页的表格和说明。