当Blogでも何度か標記の話題については展開したことがあるが、VAIO新春モデルにおいて多くが64-bit Windows専用マシンとなった今、改めて検討してみたいと思う。とはいえ、まずは64-bit時代とはどういうものを指すのかの定義が必要だろう。私は次のように考える。
64-bit時代とは、PCに搭載されるOS、主要アプリケーションソフトウェア等がすべて64-bit(ここではいわゆるx64)環境をサポートし、32-bit互換環境をほとんど必要としなくなる状態、かつ32-bit環境よりも確実に高速化することをいう。
つまり、ハードウェアやOSは64-bit環境をサポートしていても、その上で動作するアプリケーションソフトウェアが32-bit環境のエミュレーションで動作するのは論外。また、同一ハードウェア上で同じ処理を64-bit環境よりも32-bit環境で行った方が速いというのも論外。要は、名実共に64-bit環境に対応していなければならない、というわけだ。
この視点を持って、まずはハードウェアから確認すると、マイクロプロセッサについてはIntel社及びAMD社いずれのものも、ほとんどがx64をサポートしているので、これは問題ない。しかし、システムバス周りはまったく問題がないとは言い切れない。中でも重要なものは、メモリバス、メモリサブシステムについてである。言うまでもないが、32-bitプロセッサよりも64-bitプロセッサの方が扱うデータ量(命令含む)は多くなるので、プロセッサ内蔵キャッシュメモリからこぼれたものはすべてシステム(メモリ)バス経由でいわゆるメインメモリ(物理メモリ、RAM)にアクセスするようになる。実際、どの程度のバス占有密度(割合)にもよるが、32-bitレベルでいっぱいいっぱいだった場合は、確実に64-bitレベルになれば当然厳しくなるだろう。逆にゆとりがあるのであれば、ここは問題とはなりにくい。とはいえ、キャッシュメモリも含めて32-bitから64-bitに移行すれば、確実にメモリ占有量は増えることになる。
また、メインメモリの容量も問題となる。Windowsの場合、32-bit版においては通常2GB分のメモリアドレスをシステムソフトウェアの使用領域として占有しているが、実は必要なシステムソフトウェアを割り当てられないのが現状である。つまり、必要に応じてロード及びリロードを繰り返す(再割り当てする)ことになり、システムパフォーマンスの低下につながっているのだ。ただ、別の見方をすれば、メインメモリの容量を抑えることにつながっているため、それほど多くのメモリを搭載していなくてもうまくアプリケーションソフトウェアを実行させることが可能となっている。
これが64-bit版になると、メモリアドレスが拡張されることで基本的にすべてのシステムソフトウェアをロード(アドレスマッピング)させておくことが可能となる。もちろん、すべてがメインメモリに割り当てられているわけではないが、システム側の要求に従って2GBを大きく超える割り当ても可能になる。このことは、アプリケーションソフトウェア側から見れば、メインメモリへの割り当てが減ることを意味する。つまり、メインメモリはあればあるほど64-bit版には効果はあるが、メインメモリが少ない場合は32-bit版よりも都合が悪いことになる。
以上、マイクロプロセッサ及びメインメモリ周辺について見てきたが、ほとんどのマイクロプロセッサがx64をサポートしていることからアーキテクチャレベルでは問題はないものの、取り扱うデータ量が増えることから、内蔵キャッシュメモリの容量を圧迫する要因になり得る。そしてメモリバス及びメインメモリの容量もより多く要求する傾向であるから、同じことをするにも32-bit環境より多くのメインメモリを必要とする。従って、32-bit環境で扱うことが可能なメインメモリ(物理メモリ)上限の3GBまででは、一時的な瞬間風速を除けば、一般的に32-bit環境より64-bit環境の方がパフォーマンスが劣ることになる。
では、どの程度のメインメモリを搭載すれば、64-bit環境の方がパフォーマンスが確実にあがるといえるだろうか。一般的に32-bitプログラムよりも64-bitプログラムの方が、バイナリレベルで20~30パーセントほどサイズ(データ量)が大きくなる。このことだけを考えれば、3GBの1.3倍超となる4GBもあれば、ほぼ同等かそれ以上となるが、先に挙げたWindowsにおけるシステムソフトウェアのロード(アドレスマッピング)のように他の要因もあるため、6GB(2GB × 3DIMM)あるいは8GB以上となるだろう。こうなると、今度はチップセット(メモリマネージャ)側の制限にひっかかることになり、8GBまでが上限となるものがほとんどなのが現状である。
小結としてまとめると、64-bit環境が32-bit環境を上回るには、システムバス強化に加え、中でもメインメモリの容量を6~8GB以上とする必要がある。ただし、これを実現するPC(ハードウェア環境)は少なくはないが、メモリサブシステムに制限があるものがそれなりに存在する。よって、4GB程度では32-bit環境と同等であるので、積極的に64-bit環境に移行する理由とはならない、と結論づけられる。
コメント