ホームページ  >  記事  >  運用・保守  >  Linux に mmu が必要な理由

Linux に mmu が必要な理由

WBOY
WBOYオリジナル
2022-08-17 17:45:262606ブラウズ

mmu は仮想メモリ管理のサポートを提供するために使用できるため、mmu は「Memory Management Unit」の略で、仮想メモリと物理メモリを管理するために中央プロセッサで使用される制御回路です。また、仮想アドレスを物理アドレスにマッピングし、メモリ アクセス許可のためのハードウェア メカニズムを提供する役割も果たします。

Linux に mmu が必要な理由

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Linux に mmu が必要な理由

現在のオペレーティング システムでは一般に仮想メモリ管理 (仮想メモリ管理) メカニズムが採用されており、プロセッサ内の MMU (メモリ管理ユニット) からのサポートが必要になるためです。

MMU (メモリ管理ユニット): メモリ管理ユニットは、仮想メモリと物理メモリを管理するために中央処理装置 (CPU) で使用される制御回路であり、仮想アドレスを物理アドレスにマッピングする役割も果たします。メモリアクセス許可のためのハードウェアメカニズムを提供します。

メモリ管理ユニット (MMU) の主な機能は、仮想アドレス (仮想メモリ アドレス) を物理アドレス (物理アドレス) に変換することです。さらに、メモリ保護、キャッシュ制御、バス調停、バンク切り替えも実装できます。

動作メカニズム

Linux に mmu が必要な理由

CPU は要求された仮想アドレスを MMU に渡し、次に MMU に渡します。まずキャッシュTLB(Translation Lookaside Buffer)で変換関係を検索し、該当する物理アドレスが見つかった場合は直接アクセスし、見つからない場合はアドレス変換テーブル(Translation Table)から検索して計算します。

仮想アドレス

最新のメモリ管理ユニットは、仮想アドレス空間 (プロセッサが使用するアドレスの範囲) をページ単位で分割します。ページ サイズは 2 の n 乗で、通常は数 KB です。したがって、仮想アドレスは、仮想ページ番号とオフセットの 2 つの部分に分割されます。

Linux に mmu が必要な理由

ページ テーブル エントリ

上記の仮想ページ番号からページ テーブル内で見つかった物理ページ テーブル番号を格納するエントリがページ テーブル item( PTE)。 PTE は通常 1 ワードの長さを占め、物理ページ番号だけでなく、書き換えフラグ ビット (ダーティ ビット)、アクセス制御ビット (アクセス ビット)、読み書きを許可するプロセス タイプ (ユーザー/スーパーバイザ モード) も含まれます。 、およびキャッシュおよびマッピングできるかどうか (PTE の最後の 2 桁)。

#マッピング

マッピング方法

マッピング方法には、セグメント マッピングとページ マッピングの 2 つがあります。セグメント マッピングでは第 1 レベルのページ テーブルのみが使用され、ページ マッピングでは第 1 レベルのページ テーブルと第 2 レベルのページ テーブルが使用されます。

マッピング粒度

セグメント マッピングには、1M セクションと 16M スーパーセクションの 2 つのマッピング粒度があり、ページ マッピングのマッピング粒度には、4K スモール ページ、64K ラージ ページ、および古い 1K タイニー ページが含まれます。

Linux に mmu が必要な理由

推奨学習:

Linux ビデオ チュートリアル

以上がLinux に mmu が必要な理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。