Nios II Gen2 プロセッサー・リファレンス・ガイド

ID 683836
日付 10/28/2016
Public
ドキュメント目次

3.2.2.1. 仮想アドレッシング

仮想アドレスは、ソフトウェアが使用するアドレスです。物理アドレスは、ハードウェアが Avalon®バスのアドレスライン上に出力するアドレスです。Nios II MMU は、仮想メモリーを 4 KB のページと物理メモリーを 4 KB のフレームに分割します。

MMU は、ハードウェア変換索引バッファー (TLB) によるアドレス変換の高速化を含んでいます。オペレーティング・システムは、メモリー内にページテーブル ( または同等のデータ構造 ) を作成し、保持する役割を担っています。ハードウェア TLB は、ページテーブルでソフトウェア管理キャッシュとして機能します。MMU は、ハードウェア・テーブル・ウォークといった、ページテーブル上の動作を実行しません。したがって、オペレーティング・システムは、任意の適切な方法でページテーブルを自由に実装できます。

20 ビットの仮想ページナンバー (VPN) と 12 ビットのページオフセットがあります。

表 9.  MMU 仮想アドレスフィールド
ビットフィールド
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
仮想ページナンバー
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
仮想ページナンバー ページオフセット

入力として、TLB は VPN とプロセス識別子を取ります ( 一意性を保証するため )。出力として、TLB は対応する物理フレームナンバー (PFN) を提供します。

異なるプロセスは同じ仮想アドレス空間を使用できます。プロセス識別子は、仮想アドレスと連結され、別々のプロセスで同一の仮想アドレスを区別します。Nios II MMU は VPN を PFN に変換して PFN をページオフセットと連結させることで物理アドレスを決定します。ページオフセットのビットは変換されません。

メモリー保護

Nios II MMU は、ページごとに読み出し、書き込み、および実行許可を維持します。TLB は、VPN の変換時に許可情報を提供します。オペレーティング・システムは各プロセスが各特定のページのデータの読み出し、書き込み、または実行命令が可能かどうかを制御できます。MMU は、デフォルトで各データページへのアクセスをキャッシュ可能またはキャッシュ不能にするかどうかも制御します。

命令が TLB マッピングがないページ、または適切な許可がないページにアクセスしようとするたびに、MMU は例外を生成します。Nios II プロセッサーの厳密な例外により、システム・ソフトウェアは TLB を更新し、必要に応じて命令を再実行できます。