1. ホーム
  2. x86-64

[解決済み] x86-64の仮想アドレス空間はなぜ48ビットしかないのですか?

2022-05-14 08:44:38

疑問点

ある本で次のように書かれていました。

32 ビット プロセッサは 2^32 の可能なアドレスを持っているが、現在の 64 ビット プロセッサは 48 ビットのアドレス空間を持っている

私の予想では、64 ビット プロセッサであれば、アドレス空間も 2^64 であるべきだと考えていました。

ですから、この制限の理由は何なのかと思っていたのです。

どのように解決するのですか?

必要なのはそれだけだからです。48 ビットで、256 テラバイトのアドレス空間が得られます。これはかなりの量です。それ以上を必要とするシステムには、すぐには出会えないでしょう。

そこで、CPUメーカーは近道をしました。CPUメーカーは、64ビットの完全なアドレス空間を可能にする命令セットを使用しますが、現在のCPUは下位48ビットしか使用しません。その代わり、何年も必要とされない大きなアドレス空間を処理するためにトランジスタを浪費していたのです。

ですから、48ビットの限界に近づいたら、完全なアドレス空間を扱うCPUをリリースすればいいだけで、命令セットを変更する必要はありませんし、互換性を壊すこともないのです。