「IA-64」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
→‎採用: マイクロソフト, RedHat等を追加
m →‎採用: 撤退年
102行目: 102行目:
|[[日本電気|NEC]] ||2002 ||- ||Express5800/1000</BR>[[ACOS-4]]一部モデル ||
|[[日本電気|NEC]] ||2002 ||- ||Express5800/1000</BR>[[ACOS-4]]一部モデル ||
|-
|-
|[[富士通]] ||2005 ||- ||PRIMEQUEST ||[[Xeon]]へ移行表明<ref>[http://itpro.nikkeibp.co.jp/article/NEWS/20100331/346499/ 富士通がハイエンドサーバーPRIMEQUESTの新版、CPUをItaniumからXeonへ変更]</ref>
|[[富士通]] ||2005 ||2010 ||PRIMEQUEST ||[[Xeon]]へ移行表明<ref>[http://itpro.nikkeibp.co.jp/article/NEWS/20100331/346499/ 富士通がハイエンドサーバーPRIMEQUESTの新版、CPUをItaniumからXeonへ変更]</ref>
|-
|-
|rowspan="2"|[[マイクロソフト]] ||2001 ||2005 ||[[Microsoft Windows XP|Windows XP]]||
|rowspan="2"|[[マイクロソフト]] ||2001 ||2005 ||[[Microsoft Windows XP|Windows XP]]||

2010年4月8日 (木) 11:10時点における版

IA-64Intel Architecture 64、あいえーろくじゅうよん)はインテルヒューレット・パッカードが共同で開発した、64ビットマイクロプロセッサアーキテクチャであり、ItaniumItanium 2で採用されている。

特徴としてEPICアーキテクチャを採用し、多数のレジスタを持つ。インテルの従来の32ビットであるIA-32(x86)とは、命令セットの互換性は無いが、IA-32のエミュレーションモードを持つ。IA-64は当初はIA-32の後継ともされたが、実際にはx86を64ビットに拡張したx64の普及もあり、特定用途に留まっている。

名称

正式には「Intel Architecture 64」で、インテルの戦略面の強い用語である。現在では、既存のx86ベースの64ビット化であるIntel 64などが主流となった影響か、インテルの資料でも「IA-64」の用語は減少し、Itanium 2などの説明も「EPICアーキテクチャを採用した」など個別の技術名が使われている。

概要

インテル1990年代に、x86で32ビットのパーソナルコンピュータ市場では主流となったが、64ビットのサーバ市場はいわゆるRISC陣営(SPARCMIPSPA-RISCPOWERなど)に占められており、また32ビット市場でもAMDなど互換プロセッサーメーカーの攻勢を受けていた。

インテルRISC陣営の一社であるヒューレット・パッカード (HP)と提携し、HPのVLIW技術(後に改良版のEPICアーキテクチャ)を採用するIA-64の共同開発を発表した。この際、従来の32ビットまでのx86アーキテクチャをIA-32と呼び、将来的にはIA-64に置き換えられるとした。またHPはIA-64を自社のPA-RISCの後継と位置づけた。

この提携の目的は、インテルには上位サーバ市場への本格進出と互換プロセッサーメーカーの振り切り、更にはWindows NTでRISC(MIPSAlphaPowerPC)もサポートしたマイクロソフトへの牽制、またHPには次世代プロセッサーの開発費用分担と事実上の業界標準への狙いがあったと言われるが、PC市場のインテル独占状態がサーバ市場にも及ぶと考えられ業界に衝撃を与えた。またIA-64は既存のIA-32とは互換性が無い(エミュレーションのみ)事も広く議論となった。

しかしIA-64は、Itaniumの開発遅延と性能の低さ、結果としてHP(およびHPと提携する日本電気日立製作所)以外の採用メーカーの少なさ、サポートOSの少なさ、その間の競合プロセッサ(SPARCPOWERなど)の性能向上、更にはx86市場の64ビット化にはx64(IA-64を批判したAMDによるAMD64、およびインテル版実装のIntel 64)が普及してしまった。2005年9月にはデルがIA-64から撤退した。POWERを持つIBM2005年以降はほとんど採用していない。

IA-64は現状では、HP(およびHPと提携する日本電気、日立製作所)のPA-RISC後継、およびレジスタ数が多いなどエミュレーションによって異なるアーキテクチャからの移行が容易な事もあり、一部の無停止コンピュータHP Integrity NonStopなど)、メインフレームオフィスコンピュータ富士通、日本電気、Bullなど)の置き換えプロセッサが中心となっている。

歴史

  • 1994年 インテルとHPがIA-64の共同開発を発表
  • 1999年 インテルとHPがIA-64の詳細を発表
  • 2001年 Itanium発表
  • 2005年1月 マイクロソフトがItanium用Windows XPの販売停止(以後はWindows Serverのみ)
  • 2005年9月 Itanium Solutions Alliance (ISA)発足
  • 2006年 Itanium 2発表(後にItaniumと改称)
  • 2010年4月 マイクロソフトが、現在のWindows Server 2008 R2 などを最後に、Itanium対応製品を開発しないと表明[1]

アーキテクチャ

主流となっているアウト・オブ・オーダー実行設計では、複雑なデコーダシステムがパイプラインに入ってきた命令を調べ、並行して実行できる命令を選んで実行していく。

A := B + C;
D := F + G;

例えば上記の2行のコードは互いに影響しないので同時に実行できる。したがってこれらはふたつの実行ユニットにそれぞれ渡されて並行して実行される。命令レベルの並列性を引き出すことが最近のCPUで性能を向上させる基本である。

コードが並行して実行できるかどうかを予測することは難しい。多くの場合、ある命令が別のある命令に依存しているかどうかは様々な条件に左右される。先にあげた例が次のようになっていたらどうだろうか。

A := B + C;
IF A = 5 THEN D := F + G;

こうなると計算自体は依存していないのだが、ふたつめの加算結果をDに格納するかどうかはひとつめの計算結果に依存する。

このような場合、CPUは一般的には結果を推量する。例えば、IFが90%の確率で成立する場合、ふたつめの加算処理は別の実行ユニットに渡されて実行される。ところがその推量が間違っていた場合、ふたつめの加算をなかったことにしなければならず、大きな性能低下を招く。最近のCPUの性能向上は推量ロジックがいかに高確率で推量するかにかかっているが、改善は徐々に始まったところである。

IA-64はコンパイラにその仕事を任せている。プログラムをCPUが実行する前にコンパイラがコードを調査してCPUが実行時にするような判断を行う。どのパスを通るかを決めたら、コンパイラは並行して実行できる命令を集め、ひとつの大きな命令に入れる。そして、それを並べてプログラムを作成する。 これをVLIW"very long instruction word"(非常に長い命令語)という。

CPUからコンパイラにこの仕事を移管することは、いくつかの利点がある。第一にコンパイラはコードを時間をかけて調べることが出来る。これはとにかく高速に実行しなければならないCPUにはない利点である。したがってコンパイラの方がチップで実行する場合よりも予測精度を高められる。第二に予測回路は非常に複雑であり、これをコンパイラに移管することで回路を大きく削減できる。CPUは調べて推量する必要がないので、命令を分割して各実行ユニットに渡してやればよい。第三にコンパイラで推量をするのは一回限りなので、CPUで実行するたびに推量するより効率的である。

欠点としては、プログラムの実際の動きはコード生成時に完全に予測できるとは限らないということが挙げられる。実際の動きは入力されるデータの内容に大きく左右される。アウト・オブ・オーダー実行ロジックを持つ主流のCPUは実行時に実際のデータに基づいて決定できるのに対して、コンパイラは入力データを推量することしかできない。したがって、コンパイラがCPUよりも予測を失敗する可能性がある。つまりVLIWの性能はコンパイラの性能に大きく依存する。VLIWはマイクロプロセッサのハードウェアの複雑さを低減する代わりにコンパイラの複雑さを要求するものである。

レジスタ

IA-64アーキテクチャは、128本の64ビット整数レジスタ(r0 - r127)と128本の82ビット浮動小数点レジスタ(f0 - f127)という非常に多くのレジスタを定義している。

整数レジスタ

128本の64ビット整数レジスタ(r0 - r127)の内、汎用レジスタとしてはr0 - r31の32本が使われる(r0はゼロレジスタで、読み出すと常に 0 を返し、書き込むと例外が発生する)。 残りの96本(r32 - r127)はレジスタスタックエンジン (Register Stack Engine; RSE) を使ったレジスタローテーションという手法で管理され、プロシージャ呼び出し間で名前が変更される可能性がある。これは多くのRISCプロセッサに見られるレジスタ・ウィンドウを洗練させたもので、AMD Am29000のオーバーラップウィンドウサイズを変更可能なレジスタ・ウィンドウとの類似性が指摘されるが、IA-64ではプレディケーションと組み合わせることで、ループを自動的に展開して実行することができる。

命令セット

本アーキテクチャはマルチメディア演算や浮動小数点演算に関する命令も用意している。

典型的なVLIWではロング命令ワードの各サブ命令の位置が特定の機能ユニットに対応しているが、Itaniumではサブ命令の配置についていくつかの組み合わせ(バンドル)を用意していて、その中にはシリアル実行モードとパラレル実行モードのバランスをとるものもある。バンドルのエンコーディングには将来のIA-64の拡張のために空きがある。加えて、Itaniumは個別に設定可能なプリディケートレジスタ(predicate register)を持っており、各命令について実行時に出力するか否かを決定できる。

Itaniumは、起動した時点ではいくつかの命令実行機能が動作しないようになっている。ブートストラップが実行されるとまずExtensible Firmware Interface(EFI)がロードされ、追加の命令がチップ内のメモリに格納される。続いてプロセッサモード(64ビットか32ビットか)や他のブート時の設定が行われる。この設計によりItaniumシステムはEFIプログラムの内容によって異なった機能を展開できる。

IA-32サポート

IA-32をサポートするため、Itaniumは特殊なジャンプ命令で32ビットモードに移行する。IA-32命令はItaniumの各機能ユニットで実行される。しかし、ItaniumはEPICスタイルの命令を高速に実行するよう設計されているため、アウト・オブ・オーダー実行機能を持っておらず、IA-32コードの実行はIA-64モードと比較してもPentium系プロセッサと比較しても非常に性能的に不利である。例えば、Itaniumの機能ユニットは通常のALUでの計算の副作用のため整数フラグを自動的には生成しないし、境界が整っていないメモリロードを複数続けて行うようにはできていない。LinuxWindows上で動作するIA-32ソフトウェアエミュレーターがあるが、ハードウェアがIA-32モードで実行するよりもエミュレータで実行した方が約50%高性能である。

Windowsエミュレータはマイクロソフトから、LinuxエミュレータはNovellのようなLinuxベンダーから入手可能である。Itanium 2のMontecitoからはハードウエアデコーダは削除され、Extensible Firmware Interface(EFI)でIA-32エミュレータがロードされる様になった。

採用

IA-64(Itanium)の主な採用ベンダー
社名 採用年 撤退年 主な製品 備考
コンパック 2001 2001 Proliant 590
IBM 2001 2005 x440, x455
Dell 2001 2005 PowerEdge 7250
ユニシス 2002 2009 ES7000
HP 2001 - Integrity
(NonStopを含む)
2004年 設計より撤退
SGI 2001 - Altix 4000
日立 2001 - BladeSymphony 1000
Bull 2002 - NovaScale
NEC 2002 - Express5800/1000
ACOS-4一部モデル
富士通 2005 2010 PRIMEQUEST Xeonへ移行表明[2]
マイクロソフト 2001 2005 Windows XP
2002 2010 Windows Server Windows Server2008まで
レッドハット 2001 2009 RHEL RHEL5まで[3]
Itaniumサーバーの販売予測の歴史(水色・青・緑が各年時点での予測、赤が実績)[4][5]

IA-64(Itanium, Itanium-2)は64ビットのハイエンドのマイクロプロセッサとして登場し、その競合製品は当初はMIPSやAlphaなどを含めた各社RISCプロセッサであったが、現在はIBMPOWERサン・マイクロシステムズおよび富士通UltraSPARC、そしてAMDを含めたx64である。

2001年の初代Itaniumリリース時は、各社が従来のx86RISCと平行して採用製品を発表したが、開発の遅れや価格性能比など課題もあり、2005年頃より撤退するベンダーが続いている。この結果、各社独自のメインフレームオフィスコンピュータなどの代替需要の比率が高まっている。なお、2005年には当初より共同開発を続けていたHPが、設計からは撤退した。

オペレーティングシステムも、マイクロソフト2005年にWindows XP Professional 64-bit Itanium Edition の販売を終了して x64 Edition を販売開始し、更に2010年4月には残るサーバー製品である Windows Server も今後の開発中止を表明した。

参照

  1. ^ 次期版Windows ServerはItaniumサポートなし
  2. ^ 富士通がハイエンドサーバーPRIMEQUESTの新版、CPUをItaniumからXeonへ変更
  3. ^ Red Hat、バージョン6でItaniumサポート打ち切り
  4. ^ Mining Itanium”. CNet News (2005年12月7日). 2007年3月19日閲覧。
  5. ^ Shankland, Stephen (2006年2月14日). “Analyst firm offers rosy view of Itanium”. CNet News. 2007年3月20日閲覧。

関連項目

外部リンク