PR

 64ビットWindowsの魅力は、何と言っても扱えるメモリー空間や物理メモリーの容量が増えること。さらに、処理の64ビット化により、性能の向上も期待できる。しかしながら、64ビットWindowsには互換性に関するさまざまな制約が見受けられるのも事実だ。ここでは、64ビットWindowsが抱える、互換性の問題点を探っていこう。

 64ビットWindowsでは、64ビットソフトと32ビットソフトの両方が動作する。64ビットWindowsの内部では64ビット命令で処理しているのだが、32ビットソフトとは「WOW64(Windows on Windows 64)」を介してやり取りする。WOW64とは、32ビットソフトの命令を64ビット命令に変換するモジュールだ。WOW64を搭載したことで、32ビットソフトとの互換性を確保している(図1)。

【64ビットWindowsでも32ビットソフトが動作する】
図1 64ビットWindowsには、32ビットソフトの命令を64ビット命令に変換する「WOW64(Windows on Windows 64)」と呼ぶモジュールを搭載する。これにより64ビットWindowsでも、32ビットソフトが動作する
図1 64ビットWindowsには、32ビットソフトの命令を64ビット命令に変換する「WOW64(Windows on Windows 64)」と呼ぶモジュールを搭載する。これにより64ビットWindowsでも、32ビットソフトが動作する

 64ビットWindowsを実行するには、CPUも64ビット処理に対応している必要がある。最近のCPUはほとんど対応済みだ。実は、この64ビットCPUにも、従来の32ビットCPUと互換性を保つ仕組みがある。64ビットCPUの内部には「レジスター」と呼ぶデータの格納庫があり、プログラムの命令に従ってこのデータを演算処理していく(図2)。32ビットCPUでは、レジスターのデータ幅が32ビットになっているが、64ビットCPUではそのまま64ビットに拡張している。これにより、32ビットのデータと64ビットのデータを両方扱える。さらに64ビットCPUでは、レジスターの数を32ビットCPUの倍となる16個に増やし、データを効率的に処理できるようにした。

【64ビットCPUのレジスター】
図2 64ビットCPUは、データを格納する「レジスター」を32ビットから64ビットに拡張した。しかし、32ビットのデータも格納できるため、既存の32ビットCPUとの互換性は保たれている。レジスターの数は8個から16個になった
図2 64ビットCPUは、データを格納する「レジスター」を32ビットから64ビットに拡張した。しかし、32ビットのデータも格納できるため、既存の32ビットCPUとの互換性は保たれている。レジスターの数は8個から16個になった
[画像のクリックで拡大表示]