2

現在 、Galvinの本によるオペレーティングシステムの原則を調べています。楽しく読んでいますが、質問があります。

64 ビットのオペレーティング システムを使用している場合、(CPU が生成する) 論理アドレス空間は 64 ビットにできると言えますか? つまり、物理メモリに多数のフレームをマップできます。32 ビット OS を使用している場合、CPU は最大 2^32 の論理アドレス空間を生成できます。

あれは正しいですか?

4

1 に答える 1

6

並べ替えですが、これらの名前の有用性を低下させる多くの技術があります。

まず、オペレーティング システムにとって重要なサイズには、アドレス サイズとデータ サイズの 2 つがあります。アドレス サイズは使用可能なアドレス空間の大きさを決定し、データ サイズは単一ワード操作で使用できるデータ量を決定します。私の経験では、オペレーティング システムは通常、データ サイズによって識別されます。つまり、アドレス サイズは別のものである可能性があります。

以下は、アーキテクチャの例とそのアドレスとデータ サイズです。表が示すように、今日の最も一般的な 32 ビットと 64 ビットのアーキテクチャは同じデータ サイズとアドレス サイズを持っているため、あなたの説明は部分的に正しいのです。16 ビット モードの x86 プロセッサは、データ サイズよりもアドレス サイズが大きいことに注意してください。これは、アドレッシングで使用される追加のセグメント レジスタが原因で、アーキテクチャの制限が緩和されます。

                 アドレスサイズ データサイズ
x86 16 ビット 20 ビット 16 ビット
x86 32 ビット 32 ビット 32 ビット
x86 64 ビット 64 ビット 64 ビット
ARM 32 ビット 32 ビット 32 ビット
ARM 64 ビット 64 ビット 64 ビット

ただし、アドレス サイズは、使用できる論理アドレス空間の大きさを必ずしも示しているわけではありません。スペースをより小さな領域に制限する制限がある可能性があります。たとえば、現在の x86-64 プロセッサは 64 ビット アドレス空間をサポートしていません。代わりに、アドレスの上位 16 ビットがビット 47 の符号拡張である必要があり、16 EiB ではなく 256 TiBの 2 48アドレス空間が可能になります。これにより、プロセッサで使用する必要があるアドレス ラインの数が減り、現在使用されているよりもはるかに多くのアドレスを使用できます。

最後に、これまでのすべては、論理アドレス空間または仮想アドレス空間を参照していました。物理アドレス空間のサイズは異なる場合があります。新しい 32 ビットの x86 システムには、36 ビットの物理アドレスを有効にする物理アドレス拡張機能があり、x86-64 システムは 52 ビットの物理アドレス空間に制限されていますが、これはメモリ コントローラー/マザーボードによってさらに制限される可能性があります。論理アドレス空間が物理アドレス空間よりも大きい場合、物理アドレス空間全体を一度に複数の場所にマップできます。論理アドレス空間が小さい場合、複数の完全なアドレス空間を同時に物理メモリに格納できます。

于 2013-07-10T22:33:05.417 に答える