-1

Arm V7 ISA がプログラムに 4 ギガの仮想アドレス空間を提供することを読みました。すべてのコードが 4 キロバイト以内に収まるプログラムを使用する場合、私の質問は、4 ギガのスペース全体がページ テーブルにマップされているかどうかです。ページ テーブルを構築するための短い記述子形式を採用し、4k の粒度を使用します。ページ テーブルを保持するには、RAM に多くのスペースが必要です。したがって、単一のプロセスの 4GB のスペース全体がマップされているのではなく、その一部のみがマップされていると思います。これは正しいです?それが正しい場合、テーブルにマップされている VA の量はどのように決定されますか?

4

1 に答える 1

0

ARM では、ページ テーブルには複数のレベルがあります。私が覚えている限り、最初のレベルには 4096 のエントリがあり、それぞれが 1MB のセクションを記述しています。

そこから、4KB セクションを記述する 256 エントリを含む第 2 レベルのページ テーブルへのポインタを指定することで、1MB セクションを 4KB サイズ (またはそれ以上 - 他のサイズは覚えていません) に分割できます。

最上位の 1MB セクションはすべてマップする必要があります。それらを何かにマップする必要があるかどうかは、OS によって決定されます。領域が必要ない場合、一部の OS はページ フォールトへのエントリを埋めるだけです。

メモリ空間全体を 4KB のチャンクに分割したくないのは確かです。ページ テーブルのサイズは膨大になります。

于 2014-05-12T07:12:13.580 に答える