Jump to content 日本-日本語
製品  >  HP ProLiant サーバ  >  技術情報  >  White Paper

whitepaper

技術資料

HP ProLiant サーバ

目次

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

PDFファイル ダウンロード

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

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


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

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

32ビット動作


32ビットプロセッサには、32ビット幅の汎用レジスタ(GPR)があり、32ビット幅の整数データストリームに対して動作することができます。さらに、32ビットアーキテクチャが話題になるときに一般に了解されているとおり、32ビットプロセッサは1つのレジスタに32ビットのメモリアドレスデータを保持することができ、アドレス可能なメモリは最大4GBです。

x86アーキテクチャでは、PAE (Physical Addressing Extensions: 物理アドレス拡張)もサポートされています。これはアドレス空間を拡張して36ビットアドレッシングを可能にし、アドレス可能な物理メモリを最大64 GBにするものです。ただし、OSとアプリケーションで、追加のメモリアドレッシングを利用できる必要があります3 。XeonファミリプロセッサとOpteronプロセッサでは、32ビットアドレッシングに加えて36ビットPAEもサポートされています。

表2に示すように、XeonファミリプロセッサとOpteronプロセッサに共通のx86の32ビット命令セットには以下のようなものがあります。

  • 標準x86 - 汎用演算機能です。
  • SIMD (Single Input Multiple Data)命令 - 1 つのコマンドで複数のデータ項目を同時に処理することができます。MMX、Streaming SIMD Extensions (SSE)、およびSSE2があります。
  • x87浮動小数点命令
 
表 2. IntelプロセッサとAMDプロセッサに共通な32ビットx86命令
命令名 説明 レジスタのタイプ レジスタのサイズ レジスタ数
標準X86 論理演算、数値演算、アドレス計算、およびメモリポインタ保持用の命令 GPR 32ビット 8
MMX 整数(整数データ型に集約)に対して64ビットSIMD処理を行うためのマルチメディア命令 MMX 64ビット 8
x87 浮動小数点計算用命令 FP 80ビット* 8
SSEおよびSSE2 SSEはMMXの命令に改良を加え、128ビットSIMD浮動小数点処理を可能にしました。SSE2は、IA-32アーキテクチャに64ビット パラレル浮動小数点数値サポートを導入しました。また、古い命令を拡張して新しい命令を追加し、128ビットSIMD整数をサポートします。 XMM 128ビット 8
* 「Introduction to 64-bit Computing and x86-64」という記事によると「x87は80ビットレジスタを使用して倍精度での浮動小数点計算を実行します。フロートそのものは64ビットですが、プロセッサがそれを内部的に80ビットフォーマットに変換して計算時に精度を向上させます4」 。

両者の32ビット命令セットには重要な相違点が2つあります。SSE3と3Dnow!のサポートです。最新のPentium 4とXeonプロセッサはSSE3命令をサポートしています。SSE3命令には、SSEテクノロジ、SSE2テクノロジ、およびx87浮動小数点演算機能を高速化する13の命令が含まれています。AMDはOpteronの将来のバージョンでSSE3をサポートすると見込まれています5

OpteronはAMD 3Dnow!命令をサポートしています。IntelがMMX命令を導入して、それほど広く使用されていなかったときに、AMDは独自バージョンのマルチメディア命令を開発しました。それが3DNow!命令です。3DNow!セットにはSIMD命令が追加されて、グラフィックの負荷が大きいアプリケーションやマルチメディアアプリケーションのベクター処理(浮動小数点)要件を改善しています。3DNow!命令はMMX命令と同じレジスタを使用しています。

   
 
3 詳細は『IA-32 Intel Architecture Software Developer’s Manual』第3巻の第3章「36-Bit Physical Addressing Using the PAE Paging Mechanism」(http://www.intel.com/design/pentium4/manuals/index_new.htmから入手可)を参照。
4 Jon Stokes『Introduction to 64ビット Computing and x86-64』(http://arstechnica.com/cpu/03q1/x86-64/x86-64-1.htmlから入手可)
5 TechReport Webサイトで報告されたScott Wasson『Future Athlon 64s to include SSE3 support』の報告(2004年3月2日 http://techreport.com/onearticle.x/6363)による。
 

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命令用の8個の128ビットレジスタ(Xeonの場合はSSE3命令にも使用)
 
32ビットレジスタと64ビットレジスタの違い
図 1. 32ビットレジスタと64ビットレジスタの違い
(出典: 『AMD Opteron Coverage-Part 1: Intro to Opteron/K8 Architecture6 2003年4月23日)
 
 

【動作モード】

これらのプロセッサでは、64ビット ロングモード、64ビット互換モード、および32ビット レガシーモードの3つの異なる動作モードが使用されます。64ビット ロングモードを使用するには、64ビットOSと、64ビットレジスタを使用できるように再コンパイルされたアプリケーションが必要です。言い替えると、拡張されたレジスタの機能を最大限に活用できるのは、OSとアプリケーションの両方が64ビットをサポートしているときだけです。64ビット互換モードには64ビットOSが必要ですが、32ビットアプリケーションを使用できます。OSは追加されたレジスタを使用することができますが、32ビットアプリケーションは拡張レジスタをサポートしていないため使用できません。レガシーモードで動作する場合、プロセッサは32ビットプロセッサとまったく同様に動作し、追加のレジスタは使用されません(表3)。
表 3. XeonファミリプロセッサとOpteronプロセッサの動作モード7
モード 必要OS アプリケーションの再コンパイルは必要か 拡張レジスタは使用可能か GPR幅(ビット)
64ビット ロングモード 64ビットOS はい はい 64
64ビット互換モード 64ビットOS いいえ はい(OS)
いいえ(アプリケーション)
32
32ビット レガシーモード 32ビットOSまたは16ビットOS いいえ いい 32

6  www.anandtech.com/cpuchipsets/showdoc.aspx?i=1815から入手可。
7  『Intel Extended Memory 64 Technology Software Developer’s Guide』第1巻
(ftp://download.intel.com/technology/64bitextensions/30083402.pdfから入手可)および『AMD64 Architecture Programmer’s Manual, Vol. 1: Application Programming』
(www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24592.pdfから入手可)

【メモリアドレッシング】

XeonファミリプロセッサもOpteronプロセッサも64ビットレジスタの64ビットすべてを使用してメモリをアドレッシングしているわけではありません。64ビットで表せる数は非常に大きいので(264ビット=16エクサバイト) 8 、現行のアプリケーションは、ローカルメモリでもページファイルでも、これほどの大きさのメモリをサポートできません。さらに、64ビットすべてを使用してメモリをアドレッシングすると、アーキテクチャが必要以上に複雑になり空間とリソースを無駄にする可能性があります。大半のメモリアクセスではそのように大きい数を使用してアドレスを識別する必要がないので、メモリアドレスを64ビット持っていても、ゼロで埋められた余分のビットがたくさん付加されるだけです。このため、64ビットのロングモードで動作するとき、Xeonファミリプロセッサは最大48ビットの仮想メモリ(256TB)と36ビットの物理メモリ(64GB)をサポートします。Opteronプロセッサ、64ビットのロングモードで動作するときは、最大48ビットの仮想メモリ(256TB)と40ビットの物理メモリ(1TB)をサポートします。
   
 
8 付録Bで、エクサバイトなど、あまりよく知られていない単位について説明しています。

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