我目前正在研究RISC-V的规范,规范版本为2.2,Privileged Architecture版本为1.10。在RISC-V规范的第2章中,提到“......虽然简单的实现可能会覆盖8个SCALL / SBREAK / CSRR *指令,并且只有一条SYSTEM硬件指令总是陷阱......”
但是,当我查看特权规范时,指令MRET
也是一个SYSTEM指令,需要从陷阱返回。现在我很困惑需要多少机器级ISA:是否可以省略所有M级CSR并使用软件处理程序来处理任何SYSTEM指令,如规范中所述?如果是这样,如何传递返回地址和陷阱等信息?它们是通过常规寄存器x1-x31完成的
或者,如果我的目标是仅具有M级特权的简单嵌入式核心,那么仅仅实现以下M级CSR吗?
mvendorid
marchid
mimpid
mhartid
misa
mscratch
mepc
mcause
最后,这些CSR可以省略多少?