x64のレジスタ拡張(2/2 ページ)
x64の大きな特徴の1つに、レジスタの拡張が挙げられます。今回は、この部分を中心に解説していきます(特集:64ビットコンピューティング最前線)。
そのほかの64ビットシステムとの互換性
同じ64ビットの理念を持ったプロセッサに、インテルItaniumプロセッサファミリというシリーズがあります。しかし、このItaniumプロセッサは、現状のx64とは命令セットに互換性がありません。ですから、たとえばItaniumプロセッサファミリ向けに開発されたアプリケーションは、x64で動作しませんし、その逆も同じです。そのため、それぞれのプラットホーム用にアプリケーションを作成する場合は、現状では各プロセッサファミリ向けにコンパイルを行う必要があります。
また、これら2種類のプロセッサファミリには、別々のOSが必要となります。特定のプラットホーム構成においてどのOSが利用できるかは、各OSベンダーに問い合わせて確認する必要があります。
従来の32ビットシステムとの互換性
現在発売されている32ビットOSは、x64と従来のIA-32のどちらのプラットホームでも実行することができます。しかし、32ビットOSを使用した場合、x64の利点を最大限に生かすことはできません。x64の機能をフル活用したい場合は、x64対応プロセッサをそろえるだけでなく、64ビットに拡張されたOSと64ビット対応アプリケーションを使用する必要があります。この64ビットOSや64ビット対応アプリケーションは、従来の32ビットシステム上では使用することができません。各プロセッサとソフトウェアの互換性をTable3にまとめておきます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
AMD64とEM64Tの拡張命令セット互換性
比較的新しい32ビットのx86プロセッサでは、SSE/SSE2といったSIMD拡張命令を使うことができます。AMD64とEM64Tのそれぞれも、それらのSIMD拡張命令を利用することができます。
それと、たとえばPentiumVプロセッサ以降で利用可能になった便利な命令(cmovなど)が、どちらのプロセッサでも最初から使えるという点はパフォーマンス面で非常に有利だといえます。
ただ、現状ではインテルのEM64Tは、AMD独自の拡張命令である3DNow!命令セットをサポートしていません。逆に、SSE3は初期のAMD64ではサポートされていませんが、EM64Tではサポートされています。
ハイパースレッディングテクノロジ
EM64Tでは、32ビットおよび64ビットアプリケーションのいずれにおいても、インテルハイパースレッディングテクノロジによって複数のスレッドを効率的に処理し、高いパフォーマンスを得ることができます。ハイパースレッディングテクノロジを持たないAMD64では、その恩恵を受けることはできません。
x64対応コンパイラと最適化ツール
メジャーなところでは、マイクロソフトから提供されているコンパイラ(Platform SDKのβ版に付属)や、インテルFortran/C++コンパイラRev8.1以降がx64に対応しています。また、Windows版およびLinux版インテルVTuneアナライザ7.2以降でEM64Tにも対応しています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
関連記事
- 特集:64ビットコンピューティング最前線
- あなたホントに64ビットを説明できますか?
- 64ビットへの移行で懸念される問題――基礎編
- 64ビット対応プロセッサを3分で理解する
- 64ビットになると何が変わる?――64ビットプログラミングのデータモデル
- 64ビットプログラミングのポイント
- 時代に遅れないためのWin64用アプリケーション開発
- 64ビットWindows環境の開発で注意したいポイント
- 言えないと恥ずかしいAMD64とEM64Tの違い
- x64の3つの動作モードを知る
関連リンク
Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.