CSR 位字段

RISC-V srmcfg CSR 寄存器详解

地址 0x181特权级 Supervisor 模式访问 读写 / SXLENSupervisor 资源管理 CSR

srmcfg(0x181)是 Ssqosid 的 Supervisor Resource Management Configuration CSR,用 WARL RCID 和 MCID 字段配置资源控制与监控标识。

位作用速览
bit 3 = 只有第 3 位;bits 12..11 = 第 12 到第 11 位
高位 MSB低位 LSB
字段映射

按 bit 字段理解 srmcfg

5 个关键字段
11:0

RCID

WARL

Resource Control ID,随 hart 发往共享资源控制器的请求携带,用于选择要执行的资源分配限制。实现接受的合法值集合由 WARL 行为决定。

这个字段控制什么

  • - Resource Control ID,随 hart 发往共享资源控制器的请求携带,用于选择要执行的资源分配限制。实现接受的合法值集合由 WARL 行为决定。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
15:12

WPRI

WPRI

保留;软件写入时应保留这些位,读取值应忽略。

这个字段控制什么

  • - 保留;软件写入时应保留这些位,读取值应忽略。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
27:16

MCID

WARL

Monitoring Counter ID,随 hart 请求携带,用于标识监控资源使用情况的计数器。实现接受的合法值集合由 WARL 行为决定。

这个字段控制什么

  • - Monitoring Counter ID,随 hart 请求携带,用于标识监控资源使用情况的计数器。实现接受的合法值集合由 WARL 行为决定。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
31:28

WPRI

WPRI

保留;软件写入时应保留这些位,读取值应忽略。

这个字段控制什么

  • - 保留;软件写入时应保留这些位,读取值应忽略。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
63:32

WPRI

WPRI

SXLEN=64 时的高 32 位保留字段;软件写入时应保留,读取值应忽略。

这个字段控制什么

  • - SXLEN=64 时的高 32 位保留字段;软件写入时应保留,读取值应忽略。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
官方依据与检索要点

srmcfg 为 hart 的共享资源请求配置 RCID 和 MCID。RCID 用于资源分配控制,MCID 用于资源使用监控。

官方 Ssqosid 文本定义 srmcfg 为 SXLEN 位读写寄存器。
图 45/46 定义 RCID[11:0] 与 MCID[27:16] 为 WARL,并将 [15:12]、[31:28] 及 RV64 [63:32] 标为 WPRI。
默认情况下 srmcfg 中的 RCID/MCID 适用于该 hart 上所有特权级的软件执行。

读这个 CSR 时先看什么

  • - srmcfg 是 Ssqosid 引入的地址 0x181、SXLEN 位 SRW CSR;Ssqosid 不要求实现 S 模式。
  • - RCID 与 MCID 均为 WARL;读回值反映实现为写入值选择的合法编码。
  • - 规范建议 RCID 复位为 0,以匹配资源控制器把全部容量关联到 RCID=0 的默认行为;MCID 复位值不影响功能,可由实现定义。
  • - 默认情况下,srmcfg 配置的 RCID/MCID 适用于该 hart 上所有特权级的软件执行;未来扩展可以覆盖该行为。

写入前的风险检查

  • - RCID 和 MCID 都是 WARL;写入后应读回确认实现接受的合法值。
  • - 若 Smstateen 与 Ssqosid 同时实现,mstateen0.SRMCFG=0 时低于 M 模式访问 srmcfg 会触发非法指令异常。
  • - 若 mstateen0.SRMCFG=1,或未实现 Smstateen,则 V=1 时访问 srmcfg 会触发 virtual-instruction exception。
  • - 写入时保留 WPRI[15:12]、WPRI[31:28],RV64 还应保留 WPRI[63:32]。

放回真实流程里理解

1

根据平台资源控制/监控策略选择 RCID 和 MCID。

2

写入 srmcfg 后读回,确认 WARL 字段接受的合法 RCID/MCID 值。

3

在虚拟化或 state-enable 场景中,先确认 mstateen0.SRMCFG 等访问控制允许当前上下文使用该 CSR。

常见问题

srmcfg 是页表或 PMP CSR 吗?

不是。它是 Ssqosid 资源管理/QoS 标识 CSR,不控制地址转换或 PMP 区域。