RISCV

2024-06-08

最后编辑于:2024-09-15

    #RISC-V

特权级

| 级别 | 编码 | 名称 | | :-: | :-: | :-----------------: | | 0 | 00 | U, User/Application | | 1 | 01 | S, Supervisor | | 2 | 10 | H, Hypervisor | | 3 | 11 | M, Machine |

进入S特权级Trap的相关CSR

| CSR | 功能 | | :-----: | :-------------------------------: | | sstatus | 给出Trap发生之前CPU处于哪个特权级等信息 | | sepc | 当Trap是一个异常时,记录Trap发生前执行的最后一条指令的地址 | | scause | 描述Trap的原因 | | stval | 给出Trap附加信息 | | stvec | 控制Trap处理代码的入口地址 | https://five-embeddev.com/riscv-priv-isa-manual/Priv-v1.12/supervisor.html

XLEN

XLEN代表处理器的基本操作数长度和寄存器宽度

| Arch | XLEN bit | | ----- | -------- | | RV32 | 32 | | RV64 | 64 | | RV128 | 128 | SXLEN是特权模式下的XLEN

WARL

Writ Any Read Legal 表示寄存器可以接受任何值的写入,但读取时返回的值必须是一个合法值

实际行为: 当对寄存器写入一个不合法值时,寄存器可能抛弃不合法的位,或调整为一个合法值,使得读取时能保证得到一个合法值