FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

RISC-V の Privileged Instruction Set の仕様書Ver1.7が公開 (仮想化管理のモード)

RISC-Vの仮想化管理には複数のモードが存在する。 どのように設定するかの調査はさておき、とりあえずどのようなモードがあるのか調査してみよう。

仮想化のモードは、mstatusレジスタVM[4:0]ビットで設定する。以下のような割付になっている。

  • 0x00 (Mbare) bareモード。メモリ管理は存在しない。Mモードのみ。
  • 0x01 (Mbb) bare-and-bound 2つのモード(U,M)が存在する。ユーザモードのコードと、マシンモードのコードが混ざらないようにする基本的なモード。
  • 0x02 (Mbbid) separate instruction and data base-and-bound 2つのモード(U,M)が存在する。命令と、データのプロテクションが分かれる。
  • 0x08 (Sv32) 32ビットのRV32アーキテクチャ向けのモード。Unix-basedなシステムで利用されることを想定する。
  • 0x09 (Sv39), 0x0a (Sv48) RV64アーキテクチャ向けのモード
  • 0x0b (Sv57), 0x0c (Sv64) RV128アーキテクチャなどの、今後の拡張に向ける。

Svxxのモードについては、操作方法などがいろいろ説明が書いてあるが、まだ全部読み切れていない。調査していく。