同じ64ビットの理念を持ったプロセッサに、インテルItaniumプロセッサファミリというシリーズがあります。しかし、このItaniumプロセッサは、現状のx64とは命令セットに互換性がありません。ですから、たとえばItaniumプロセッサファミリ向けに開発されたアプリケーションは、x64で動作しませんし、その逆も同じです。そのため、それぞれのプラットホーム用にアプリケーションを作成する場合は、現状では各プロセッサファミリ向けにコンパイルを行う必要があります。
また、これら2種類のプロセッサファミリには、別々のOSが必要となります。特定のプラットホーム構成においてどのOSが利用できるかは、各OSベンダーに問い合わせて確認する必要があります。
現在発売されている32ビットOSは、x64と従来のIA-32のどちらのプラットホームでも実行することができます。しかし、32ビットOSを使用した場合、x64の利点を最大限に生かすことはできません。x64の機能をフル活用したい場合は、x64対応プロセッサをそろえるだけでなく、64ビットに拡張されたOSと64ビット対応アプリケーションを使用する必要があります。この64ビットOSや64ビット対応アプリケーションは、従来の32ビットシステム上では使用することができません。各プロセッサとソフトウェアの互換性をTable3にまとめておきます。
|
比較的新しい32ビットのx86プロセッサでは、SSE/SSE2といったSIMD拡張命令を使うことができます。AMD64とEM64Tのそれぞれも、それらのSIMD拡張命令を利用することができます。
それと、たとえばPentiumVプロセッサ以降で利用可能になった便利な命令(cmovなど)が、どちらのプロセッサでも最初から使えるという点はパフォーマンス面で非常に有利だといえます。
ただ、現状ではインテルのEM64Tは、AMD独自の拡張命令である3DNow!命令セットをサポートしていません。逆に、SSE3は初期のAMD64ではサポートされていませんが、EM64Tではサポートされています。
EM64Tでは、32ビットおよび64ビットアプリケーションのいずれにおいても、インテルハイパースレッディングテクノロジによって複数のスレッドを効率的に処理し、高いパフォーマンスを得ることができます。ハイパースレッディングテクノロジを持たないAMD64では、その恩恵を受けることはできません。
メジャーなところでは、マイクロソフトから提供されているコンパイラ(Platform SDKのβ版に付属)や、インテルFortran/C++コンパイラRev8.1以降がx64に対応しています。また、Windows版およびLinux版インテルVTuneアナライザ7.2以降でEM64Tにも対応しています。
|
Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.