物理アドレス拡張
物理アドレス拡張(ぶつりあどれすかくちょう、Physical Address Extension)、略称、PAEはインテル社のIA-32アーキテクチャで4GiB以上のメモリを扱う技術。
P6マイクロアーキテクチャで追加されたアドレス空間の拡張機能であり、Pentium Pro以降およびその同世代の互換プロセッサで利用できる。ただし、一部のPentium MやVIA C3などのプロセッサにおいてはPAEに対応しない製品もある[1]。
概要
[編集]PAEを使用した場合には、IA-32アーキテクチャのアドレスラインである32ビットを36ビット以上のメモリ空間に拡張する。これにより、IA-32の標準では最大4GiBまでしか使用できなかった物理メモリ空間を、最大64GiB以上使用できるようになる。しかしながら、仮想アドレス空間は4GiBのままであり、ページテーブルのエントリを32ビットから64ビットに拡張することによって物理メモリ空間にアクセスする事となる。ページサイズは4KiBで、ページテーブルのサイズは1ページのままであるので、ページテーブルのエントリの数が一段あたり1024から512になる。これを補うために、PAEにおいては、4エントリを持ったページテーブルが最上位に1段追加される。
-
通常ページテーブルの4KBページ
-
通常ページテーブルの4MB ページ
-
PAE有効時のページテーブルの4KBページ
-
PAE有効時のページテーブルの2MBページ
64ビット世代の拡張
[編集]AMD社のAMD64アーキテクチャおよび、インテルの互換性のあるIntel 64アーキテクチャでは、PAEのページテーブルエントリの構造を保ったまま、512エントリを持った4段のページテーブル構造にすることによって仮想アドレス空間を48ビット、そして物理アドレス空間を52ビットまで拡張した。また、ユーザー命令セットでは64ビットでアドレッシング可能となっており、2008年4月の時点では、一般的となっている。
これらの拡張を実装したプロセッサをIA-32のPAE互換として使用する場合、物理アドレス空間の範囲は64ビットモードで使った場合と同等となる。このx64のページテーブルエントリでNXビットもサポートされるため、4GBの物理空間しかサポートしないWindows XP SP3等のOSでもデータ実行防止のため有効にされることがある。
脚注
[編集]- ^ 吉田史 (2012年3月9日). “2012年3月9日号 12.04の開発・インストーラーとPAE非対応CPU・Clickpad Detection・Ubuntu Magazine Japan Vol.07・juju Charm Contest・FCM#58・UWN#255”. 技術評論社. 2013年5月19日閲覧。