Skip to content

RISC -V H 扩展

Introduction

H 扩展被支持可以查看 misa 第七位是否被设置。H 有 HS mode 和 VS mode,运行在 S mode 的操作系统可以跑在 HS mode 或者 跑在 VS mode 当 guest kernel

Privilege Modes

V mode ,开的有 VU-mode 和 VS-mode,这时候开启两阶段翻译; V mode 有 M-mode,HS-mode 和 U-mode,这时候不开启两阶段翻译。

HS-mode 比 VS-mode 特权级更高,VS-mode 的特权级比 VU-mode 更高

Hypervisor and Virtual Supervisor CSRs

在 HS-mode 添加了一些额外的寄存器用来做两阶段地址翻译和控制 VS-mode guest 的额外的行为:hstatus, hedeleg, hideleg, hvip, hip, hie, hgeip, hgeie, henvcfg, henvcfgh, hcounteren, htimedelta, htimedeltah, htval, htinst, and hgatp。

除此之外,VS CSRs 是正常 S CSRs 的复制品,例如 vsstatussstatus 的作用相同。V = 1 的时候 VS CSRs 用来替代 S CSRs,除非另有规定,所有访问或修改 S CSRs 都应该变为访问 VS CSRs。VS CSRs 只能被 M-mode 或者 HS-mode 访问,否则会造成指令异常。

一些 S 模式的 CSRs(例如 senvdfg,scounteren 和 scontext)没有匹配 VS CSR。这些会保留原有的功能。

Hypervisor Register

hstatus

提供类似 mstatus 的功能,为 VS-mode 追踪和控制异常

hedeleg and hideleg

提供类似 medelegmideleg 的功能,可以把中断和异常代理到

记录原理、连接知识、积累实践。