2017-01-15 5 views
6

Linux(3.19)x86-64マシンでCR4レジスタのPAEビットがオンになっていることに気付きました。 PAE機能は64Gbまでの物理アドレスにアクセスすることを可能にしますが、ロングモードが有効な場合にはなぜそれが必要なのか分かりません。私はしばらくそれを見てきましたが、満足できる答えは見つかりませんでした。x86-64ビットプロセッサーのPAE - Linuxカーネル

提案がありますか?

答えて

7

IA-32eページングを使用しています。

論理プロセッサは、IA-32Eページングを使用する場合CR0.PG = 1、CR4.PAE = 1、及びIA32_EFER.LME = 1. IA-32Eページングと
、線形アドレスCR3の内容を使用して配置されたメモリ内ページング構造の階層を使用して変換されます。
IA-32eページングは​​、48ビットのリニアアドレスを52ビットの物理アドレスに変換します。
52ビットは4PBに対応しますが、リニアアドレスは48ビットに制限されています。最大で256Tバイトのリニアアドレス空間には、任意の でアクセスできます。

  1. 32ビットページング(CR0.PG = 1とCR4.PAE = 0)
  2. PAEページング(


x86プロセッサは、三のページング・モードをサポートCR0.PG = 1,CR4.PAE = 1およびIA32_EFER.LME = 0)

  • IA-32Eページング(CR0.PG = 1、CR4.PAE = 1、及びIA32_EFER.LME = 1)画像として
  • 差異をまとめた表は、ここで報告されています( 、残念ながら)

    Differences between the three paging modes on x86

    関連する問題