特集
» 2005年06月29日 00時00分 公開

x64のレジスタ拡張(2/2 ページ)

[ch3,C MAGAZINE]
前のページへ 1|2       

そのほかの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にまとめておきます。

Table3 64ビットと32ビット対応プロセッサ比較
プロセッサ 64ビットソフトウェア 32ビットソフトウェア
AMD64/IA-32e
(AMD64/EM64Tなどのx64)
○ネイティブ対応 ○ネイティブ対応
Intel IA-64
(Itanium/Itanium2)
○ネイティブ対応 △エミュレーション対応
IA-32
(Pentium4/Athlon XPなど、
現在主流の32ビットプロセッサ)
×非対応 ○ネイティブ対応

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にも対応しています。

Column EM64TのXeonとItanium
  64ビット拡張機能を備えたインテルXeonプロセッサは、多数の32ビットアプリケーションにネイティブ32ビット並みのパフォーマンスを発揮すると同時に、もっと多くのメモリを使用する64ビット処理のためにプログラムを再コンパイルして使用することも可能です。
  一方、インテルItanium2プロセッサは、x86のソフトウェアをエミュレーションという形で32ビットアプリケーションを実行することは可能ですが、やはりネイティブのXeon 32ビット並みのパフォーマンスには達しません。
  整数演算性能という点では、64ビット拡張機能を備えたインテルXeonプロセッサとItaniumプロセッサの間にはほとんど差異はありませんが、浮動小数点の演算についてはItaniumプロセッサのほうが高速に処理することが可能です。
  また、トランザクション処理やエンタープライズアプリケーションのパフォーマンスについても、ItaniumプロセッサのほうがXeonプロセッサよりも高速です。

  これらの相違を考慮すると、Xeonプロセッサは既存の資産をうまく生かしながら64ビット環境へとお手軽に移行することが可能な高性能プロセッサで、Itaniumプロセッサはデータベースやハイエンドエンタープライズアプリケーションや多くの科学技術計算、および解析アプリケーションなどにより適した、新しい環境を構築する場合などにお勧めなプロセッサであるといえるかもしれません。

前のページへ 1|2       

Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.

注目のテーマ