物理アドレス拡張(PAE)とは
物理アドレス拡張(Physical Address Extension, PAE)は、
インテル社の
IA-32アーキテクチャにおいて、4GiBを超える物理メモリ空間を扱うための技術です。
P6マイクロアーキテクチャで導入され、
Pentium Pro以降のプロセッサで利用可能になりました。
PAEの概要
IA-32アーキテクチャでは、通常32ビットのアドレス空間を使用するため、最大4GiBの物理メモリしか扱えません。PAEを使用すると、このアドレス空間を36ビット以上に拡張し、最大64GiB以上の物理メモリ空間を扱うことが可能になります。
ただし、PAEは物理アドレス空間のみを拡張するもので、仮想アドレス空間は4GiBのままです。PAEでは、ページテーブルのエントリを32ビットから64ビットに拡張することで、物理メモリ空間へのアクセスを実現します。
ページテーブルの構造
PAEでは、ページサイズは4KiBで、ページテーブルのサイズは1ページのままです。そのため、ページテーブルのエントリ数は一段あたり1024から512に減少します。この減少を補うため、PAEでは4エントリを持つページテーブルが最上位に1段追加されます。
具体的には、以下のような構造になります。
最上位ページテーブル(4エントリ)
└── ページテーブル(512エントリ)
└── ページテーブル(512エントリ)
└── ページテーブル(512エントリ)
└── ページ(4KiB)
64ビット世代への拡張
AMD社のAMD64アーキテクチャや、
インテルの互換性のあるIntel 64アーキテクチャでは、PAEのページテーブルエントリの構造を維持したまま、512エントリを持つ4段のページテーブル構造を採用し、仮想アドレス空間を48ビット、物理アドレス空間を52ビットまで拡張しました。また、ユーザー命令セットでは64ビットでアドレッシングが可能になっています。
これらの拡張を実装したプロセッサを
IA-32のPAE互換として使用する場合、物理アドレス空間の範囲は64ビットモードで使用した場合と同等になります。このx64のページテーブルエントリではNXビットもサポートされるため、4GBの物理空間しかサポートしないWindows XP SP3などのOSでもデータ実行防止のために有効にされることがあります。
PAEの利点
- - 大容量メモリの利用: 4GiBを超える物理メモリを利用できるようになるため、大規模なアプリケーションや仮想化環境でのパフォーマンス向上が期待できます。
- - データ実行防止(DEP)の利用: NXビットをサポートすることで、セキュリティ機能が強化され、マルウェアなどの攻撃からシステムを保護できます。
注意点
- - 仮想アドレス空間: PAEは物理アドレス空間のみを拡張するため、仮想アドレス空間は4GiBのままです。そのため、1つのプロセスが直接アクセスできるメモリ空間は4GiBに制限されます。複数のプロセスで4GiB以上のメモリを使用するには、OSによるメモリ管理が必要です。
- - 対応プロセッサ: 一部のPentium MやVIA C3などのプロセッサでは、PAEに対応していない製品もあるため、注意が必要です。
まとめ
PAEは、
IA-32アーキテクチャで大容量メモリを扱うための重要な技術です。物理アドレス空間を拡張することで、より多くのメモリを効率的に利用できるようになり、システムのパフォーマンス向上に貢献します。
関連用語