「Linux カーネルについて」を読んでいます。
64 ビット アーキテクチャのページング
前のセクションで説明したように、2 レベルのページングは 32 ビット マイクロプロセッサで一般的に使用されています。ただし、2 レベルのページングは、64 ビット アーキテクチャを採用するコンピューターには適していません。その理由を説明するために、思考実験を使用してみましょう。
まず、標準のページ サイズを 4 KB と想定します。1 KB は 2 10アドレスの範囲をカバーするため、4 KB は 2 12 アドレスをカバーするため、オフセット フィールドは 12 ビットです。これにより、最大 52 ビットの線形アドレスが、テーブル フィールドとディレクトリ フィールドの間で分配されます。アドレス指定に 64 ビットのうち 48 ビットのみを使用することにした場合 (この制限により、快適な 256 TB のアドレス空間が得られます!)、残りの 48-12 = 36 ビットをテーブル フィールドとディレクトリ フィールドに分割する必要があります。これら 2 つのフィールドのそれぞれに 18 ビットを予約することにした場合、各プロセスのページ ディレクトリとページ テーブルの両方に 2 18エントリ、つまり 256,000 を超えるエントリが含まれるはずです。
「アドレス指定に64ビットのうち48ビットのみを使用することにした場合」。なんで?& なぜ 48 ビットだけなのですか? なぜ他の番号ではないのですか?
まあ、私は普通の PC ユーザーであり、プログラマーです。32ビットのアドレッシング、つまりプロセスごとの4GB(より正確には2GB / 3GB)のアドレス空間が限界であるとは信じがたいです。本当にこの制限に遭遇した場合。例を教えてください。
Windowsのこの制限は何ですか?
仮想メモリ != 物理メモリ & プロセッサ アドレス ピンは、仮想メモリとは何の関係もないことを知っています。これはまったく別の質問です。プロセッサのアドレス ピンの数 (= アドレス バスのサイズ) を知る方法。http://ark.intel.comプロセッサの仕様には、この仕様は含まれていません。
答え:
最初の質問に対する合理的な回答については、Paul Betts の回答を参照してください。