mmu は仮想メモリ管理のサポートを提供するために使用できるため、mmu は「Memory Management Unit」の略で、仮想メモリと物理メモリを管理するために中央プロセッサで使用される制御回路です。また、仮想アドレスを物理アドレスにマッピングし、メモリ アクセス許可のためのハードウェア メカニズムを提供する役割も果たします。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
現在のオペレーティング システムでは一般に仮想メモリ管理 (仮想メモリ管理) メカニズムが採用されており、プロセッサ内の MMU (メモリ管理ユニット) からのサポートが必要になるためです。
MMU (メモリ管理ユニット): メモリ管理ユニットは、仮想メモリと物理メモリを管理するために中央処理装置 (CPU) で使用される制御回路であり、仮想アドレスを物理アドレスにマッピングする役割も果たします。メモリアクセス許可のためのハードウェアメカニズムを提供します。
メモリ管理ユニット (MMU) の主な機能は、仮想アドレス (仮想メモリ アドレス) を物理アドレス (物理アドレス) に変換することです。さらに、メモリ保護、キャッシュ制御、バス調停、バンク切り替えも実装できます。
動作メカニズム
CPU は要求された仮想アドレスを MMU に渡し、次に MMU に渡します。まずキャッシュTLB(Translation Lookaside Buffer)で変換関係を検索し、該当する物理アドレスが見つかった場合は直接アクセスし、見つからない場合はアドレス変換テーブル(Translation Table)から検索して計算します。
仮想アドレス
最新のメモリ管理ユニットは、仮想アドレス空間 (プロセッサが使用するアドレスの範囲) をページ単位で分割します。ページ サイズは 2 の n 乗で、通常は数 KB です。したがって、仮想アドレスは、仮想ページ番号とオフセットの 2 つの部分に分割されます。
ページ テーブル エントリ
上記の仮想ページ番号からページ テーブル内で見つかった物理ページ テーブル番号を格納するエントリがページ テーブル item( PTE)。 PTE は通常 1 ワードの長さを占め、物理ページ番号だけでなく、書き換えフラグ ビット (ダーティ ビット)、アクセス制御ビット (アクセス ビット)、読み書きを許可するプロセス タイプ (ユーザー/スーパーバイザ モード) も含まれます。 、およびキャッシュおよびマッピングできるかどうか (PTE の最後の 2 桁)。
#マッピング
マッピング方法マッピング方法には、セグメント マッピングとページ マッピングの 2 つがあります。セグメント マッピングでは第 1 レベルのページ テーブルのみが使用され、ページ マッピングでは第 1 レベルのページ テーブルと第 2 レベルのページ テーブルが使用されます。 マッピング粒度セグメント マッピングには、1M セクションと 16M スーパーセクションの 2 つのマッピング粒度があり、ページ マッピングのマッピング粒度には、4K スモール ページ、64K ラージ ページ、および古い 1K タイニー ページが含まれます。 推奨学習:以上がLinux に mmu が必要な理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。