RISC-V MMU
ハードウェアページテーブルウォークを採用
RISC-Vではページ入れ替え処理(ページテーブルウォーク)をハードウェアで制御する.
したがって,仮想アドレスを導入したくば専用ハードウェアを実装しなければならない.
仮想メモリの仕様
RV32
- 0 Bare ... アドレス変換しない
- 1 Sv32 ... 仮想アドレス32ビット(ページベース)
RV64
- 0 Bare ... アドレス変換しない
- 1-7 ... 予約済み
- 8 Sv39 ... 仮想アドレス39ビット(ページベース)
- 9 Sv48 ... 仮想アドレス48ビット(ページベース)
- 10 Sv57 ... 仮想アドレス57ビット(ページベース,予約済み)
- 11 Sv64 ... 仮想アドレス64ビット(ページベース,予約済み)
- 12 - 15 ... 予約済み
[Privileged ISA v1.11 p64 ]
ページングアルゴリズム(ページテーブル検索)
Sv32
- 「仮想アドレスの [31:22] の部分 (VPN[1])」と「SATPシステムレジスタの値」から次のページテーブルのアドレスを得る.
- 「1で得たページテーブルアドレスでページテーブルエントリ (PTN) を参照した値」と「仮想アドレスの [21:12] の部分 (VPN[0])」から物理ページ番号 (PPN) を得る.
- 「2で得たPPN」と「仮想アドレスの [11:0] の部分 (page offset)」から物理アドレスを得る.
それでは.いろはにへとへと.