Jump to content 日本-日本語
≫  お問い合わせ

製品とサービス  >  HP ProLiant サーバ  >  技術情報  >  White Paper

whitepaper

技術資料

HP ProLiant サーバ

目次

概要 / 本書で使用している略語 / はじめに
  マイクロアーキテクチャの類似性
  マイクロアーキテクチャの相違点
  システムアーキテクチャの相違点
  32ビットパフォーマンスの比較
  まとめ / 付録A / 関連情報 / ご意見をお寄せください

PDFファイル ダウンロード

このホワイトペーパーのPDFファイルをこちらからダウンロードしてご覧下さい。
(PDFファイル、909KB)
コンテンツに進む

業界標準サーバ用のx86プロセッサの特性 - AMD OpteronおよびIntel Xeon
技術概要、第2版


マイクロアーキテクチャの類似性

XeonファミリプロセッサもOpteronプロセッサも、32ビットアプリケーション資産との互換性を保つために、x86命令セットアーキテクチャに準拠しています。このため、プログラミングレベルでは、どちらのプロセッサも同じように動作します。言い替えれば、ソフトウェア/ハードウェアインタフェースでは、それぞれのプロセッサのソフトウェアインタフェースは、x86 アーキテクチャのメモリアドレス指定サイズ、命令セット、およびレジスタ設計に関しては変わっていません。

32ビット動作

32ビットプロセッサには、32ビット幅の汎用レジスタ(GPR)があり、32ビット幅の整数データストリームに対して動作することができます。 さらに、32ビットプロセッサは1つのレジスタに32ビットのメモリアドレスデータを保持することができ、アドレス可能なメモリは最大4GBです。
x86アーキテクチャでは、PAE (Physical Addressing Extensions: 物理アドレス拡張)もサポートされています。これはアドレス空間を拡張して36ビットアドレス指定を可能にし、アドレス可能な物理メモリを最大64 GBにするものです。 ただし、OSとアプリケーションで、追加のメモリアドレス指定が利用できる必要があります。4  Xeon ファミリプロセッサとOpteronプロセッサでは、32ビットアドレス指定に加えて、36ビットPAEもサポートされています。
表3に示すように、XeonファミリプロセッサとOpteronプロセッサに共通のx86の32ビット命令セットには、以下のものが含まれます。
  • 汎用演算機能である標準x86命令。
  • SIMD (Single Input Multiple Data)命令 - 1つのコマンドで複数のデータ項目を同時に処理することができます。MMX、Streaming SIMD Extensions (SSE)、SSE2、およびSSE3の命令があります。
  • x87浮動小数点命令
 
表3. IntelプロセッサとAMDプロセッサに共通な32ビットx86命令
命令名 説明 レジスタのタイプ レジスタのサイズ レジスタ数
標準X86 論理演算、数値演算、アドレス計算、およびメモリポインタ保持用の命令 GPR 32ビット 8
MMX プロセッサの64ビットSIMD処理を可能とするマルチメディア命令 MMX 64ビット 8
x87 浮動小数点計算用命令 FP 80ビット* 8
SSE、SSE2、 SSE3 SSEはMMXの命令に改良を加え、128ビットSIMD浮動小数点処理を可能にしました
SSE2は、64ビットパラレル浮動小数点数値サポートを追加しました。 また128ビットSIMD整数処理をサポートする新しい命令も追加しました。
SSE3命令には、SSEテクノロジ、SSE2テクノロジ、およびx87浮動小数点演算機能を高速化する13の命令が含まれています。
XMM 128ビット 8
* Jon “Hannibal” Stokesによる「Introduction to 64-bit Computing and x86-64 このリンクをクリックすると、HP社外へリンクします。 」という記事によると、「x87は80ビットレジスタを使用して倍精度での浮動小数点計算を実行します。浮動小数そのものは64ビットですが、プロセッサがそれを内部的に80ビットフォーマットに変換して計算時に精度を向上させます 」5

32ビット命令セットでは両者の間に些少な相違点が1つあります。OpteronプロセッサはAMD 3Dnow!™ 命令をサポートしますが、Intelプロセッサはサポートしません。IntelがMMX命令を導入したときには、それほど普及せず、AMDは独自バージョンのマルチメディア命令を開発しました。それが3DNow!™ 命令です。3DNow!™ セットにはSIMD命令が追加されて、グラフィックの負荷が大きいアプリケーションやマルチメディア アプリケーションのベクトル処理(浮動小数点)要件を改善しています。3DNow!™ 命令はMMX命令と同じレジスタを使用しています。
4 詳細は『IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル』下巻
(ftp://download.intel.co.jp/jp/developer/jpdoc/ia32_arh_dev_man_vol3_i.pdf このリンクをクリックすると、HP社外へリンクします。の第3章にある「PAEページング・メカニズムを使用した36ビット物理アドレス指定」を参照。
5 http://arstechnica.com/cpu/03q1/x86-64/x86-64-1.html このリンクをクリックすると、HP社外へリンクします。 (英語)から入手可

64ビット動作

64ビットアーキテクチャは、1つの処理ステップで64ビットのデータを操作できるレジスタおよび演算装置を持っています。レジスタはアドレスをメモリに格納するため、64ビットアーキテクチャでは、直接アドレス指定可能なメモリが32ビットプロセッサよりはるかに大きな容量になります。このため、64ビットアーキテクチャは、(たとえばデータマイニング処理などで)大量のメモリを使用でき、また、たとえば科学や工学のモデリングプログラムで使用される負荷の大きい浮動小数点計算などのように大量の数値を操作できることにより、優れたパフォーマンスを実現しています。

命令セットとレジスタ
先に触れたとおり、AMD64命令において64ビット拡張機能を最初に開発したのがAMDです。その後、IntelがEM64T命令セットを開発しました。これはAMD64の64ビットコンピューティングとの間に幅広い互換性を持つものでした。AMD64命令とEM64T命令のどちらでも、Opteronと最新のXeonプロセッサに用意された64ビット幅のレジスタの優位性を活用することができます。これらのレジスタがアプリケーションで使用されるのは、プロセッサを64ビット ロングモードで実行している場合だけです。AMD64命令やEM64T命令をサポートするために、レジスタは次のように拡張されました。
  • 8個の64ビットGPR
  • オリジナルの8個の32ビットGPRを64ビットに拡張
  • SSE、SSE2、SSE3命令用の8個の新しい128ビットレジスタ
 
図2. 32ビットレジスタと64ビットレジスタの相違
図2. 32ビットレジスタと64ビットレジスタの相違
 
出典: 『AMD Opteron - Part 1: Intro to Opteron/K8 Architecture このリンクをクリックすると、HP社外へリンクします。 』 Anand Lal Shimpi著、2003年4月23日
 
動作モード
これらのプロセッサでは、64ビット ロングモード、64ビット互換モード、および32ビット レガシーモードの3つの異なる動作モードが使用されます。64ビット ロングモードを使用するには、64ビットOSと、64ビットレジスタを使用できるように再コンパイルされたアプリケーションが必要です。つまり、拡張されたレジスタの機能を最大限に活用できるのは、OSとアプリケーションの両方が64ビットをサポートしているときだけです。64ビット互換モードには64ビットOSが必要ですが、32ビットアプリケーションを使用できます。OSは追加されたレジスタを使用することができますが、32ビットアプリケーションは拡張レジスタをサポートしていないため使用できません。レガシーモードで動作する場合、プロセッサは32ビットプロセッサとまったく同様に動作し、追加のレジスタは使用できません(表4)。

表4. XeonファミリプロセッサとOpteronプロセッサの動作モード 6
モード 必要なOS アプリケーションの再コンパイルは必要か 拡張レジスタは使用可能か GPR幅(ビット)
64ビット ロングモード 64ビットOS 必要 可能 64
64ビット互換モード 64ビットOS 不要 可能(OS)不可能(アプリケーション) 32
32ビット レガシーモード 32ビットOSまたは16ビットOS 不要 不可能 32

メモリアドレス指定能力
XeonとOpteronのすべてのレジスタは少なくとも64ビット幅ですが、XeonファミリプロセッサとOpteronプロセッサはメモリのアドレス指定に64ビットすべてを使用することはありません。 64ビットで表せる数は非常に大きくなるため(264ビット=16エクサバイト)、現行のアプリケーションはローカルメモリでもページファイルでも、この大きさのメモリをサポートできません。7 さらに、64ビットすべてを使用してメモリをアドレス指定すると、アーキテクチャが必要以上に複雑になり、空間とリソースを無駄にする可能性があります。大半のメモリアクセスではそのように大きい数を使用してアドレスを識別する必要がないので、メモリアドレスを64ビット持っていても、ゼロで埋められた余分なビットがたくさん付加されるだけです。このため、64ビットのロングモードで動作するとき、XeonファミリプロセッサとOpteronプロセッサは、最大40ビットの物理メモリ(1TB)と48ビットの仮想メモリ(256TB)をサポートします。
6 『インテル® エクステンデッド・メモリ 64 テクノロジ・ソフトウェア・デベロッパーズ・ガイド』第1巻(ftp://download.intel.co.jp/jp/developer/jpdoc/em64t_vol1_30083402_i.pdf このリンクをクリックすると、HP社外へリンクします。 から入手可)および『AMD64 Architecture Programmer’s Manual, Vol. 1: Application Programming』(www.amd.com/us-en/assets/
content_type/white_papers_and_tech_docs/24592.pdf
このリンクをクリックすると、HP社外へリンクします。 から入手可)
7 付録Bで、エクサバイトなど、あまりよく知られていない単位について説明しています。

前のページへ 次のページへ
PDFファイルをご覧いただくには、Adobe® Reader® が必要です。
アドビシステムズ社のウェブサイト より、ダウンロード(無料)の上ご覧ください。
印刷用画面へ印刷用画面へ
プライバシー ご利用条件・免責事項