RISC-V 特权架构 - CSR 寄存器-1 CSR 地址空间
最编程
2024-04-30 21:04:58
...
RISC-V架构中定义了一些控制和状态寄存器(control and status register),简称CSR,与32个物理寄存器不同(物理寄存器可以认为是5位地址寻址的),这些CSR是用12位地址进行寻址的,因此理论上最多可以有4096个CSR寄存器,并且地址空间是私有独立的,不同于全局地址空间。
CSR地址空间,定义如下:
CSR地址的高4bits,用于编码CSR在各个权级上的可读写性:
- [11:10],表示该寄存器是可读写(00,01或10),还是只读(11)。
-
[9:8],表示允许访问该寄存器的最低权级。
00:用户级,用户模式及以上权级(用户、监管、机器)可访问。
01:监管级,监管模式及以上权级(监管、机器)可访问。
10:超级监管级(扩展模式),仅在虚拟化时使用,用于访问虚拟化专用的CSR。
11:机器级,仅机器模式可访问。
从上图也可以看到,根据[9:8]的值,整个CSR地址空间被分为了4个部分。
除此之外,上图还指定了哪些CSR地址是标准用途,而哪些是自定义用途。
用于自定义的CSR地址,不会在未来标准扩展中被重新定义。