以下の内容はhttps://msyksphinz.hatenablog.com/entry/2025/01/14/040000より取得しました。


RISC-VのIOMMUの仕組み (3. IOMMUが扱う2段階のアドレス変換)

IOMMUが取り扱うべきアドレスについてまとめよう。CPUには通常仮想アドレス(Virtual Address: VA)物理アドレス(Physical Address: PA)が定義されている。

しかし、ハイパーバイザが入ってくると話は別になってくる。ハイパーバイザは、ユーザソフトウェアとシステムソフトウェア(オペレーティングシステム)に加えて、ハイパーバイザが入ってくる。 つまり、OSが使っているアドレス空間は本当の物理アドレスではなく、ハイパーバイザによりさらに仮想化されている、というケースを考えるわけだ。 これにより、ハイパーバイザが導入されたRISC-V CPUでは、2段階のアドレス変換を考慮する必要がある。つまり:

  • 第1段階: 仮想アドレス (VA) → ゲスト物理アドレス (GPA)
  • 第2段階: ゲスト物理アドレス (GPA) → スーパバイザ物理アドレス (SPA)

IOMMUでは、これらのアドレス変換を独立に制御することができる。システムの構成に寄って、第1段階・第2段階の変換を行うかどうかを制御できる。

第1段階 第2段階 説明
Bare Bare 変換は行わない。状況としてはCPUも直接物理アドレスを使っている状態であり、Bare Metalソフトウェアが動いているような状況と思われる。
Bare !Bare GPA → SPA のみの変換を行う。状況としてはハイパーバイザ上で動いているOSが仮想アドレスを使用しない状態で使われる。
!Bare Bare VA → GPAのみの変換を行う。ハイパーバイザが存在しないか、ハイパーバイザ上で動作するOSが直接IOMMUをコントロールする場合がこれに相当する
!Bare !Bare VA → GPA → SPAの2段階の変換を行う。仮想マシン上のソフトウェアがIOMMUを通じてデバイスを制御する場合がこれに相当する。



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2025/01/14/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14