IA-64最初のMercedは、Intelプロセッサという出自故、IA-32(x86)互換という宿命を背負うことになったが、それ以外の部分ではどうだったのかといえば、競合RISCプロセッサメーカ(IBM社、Sun社、等々)との戦いにも赤信号が灯っていた。究極的な理由をどこに求めるかは立場によって様々であるが、私はVLIWをベースとしたことが原因の大きな一つであったと考える。
VLIWは、その名のごとく大変長い命令(Very Long Instruction Word=VLIW)、つまり、複数の命令を大きな一つの命令単位としてまとめ、それをプロセッサ内部の複数の演算ユニットにより同時に実行させることに特徴がある。この複数の命令を一つにまとめる(同時に実行させる)という作業をプロセッサ内部のハードウェアで実現せず、プロセッサ内部で実行する前、プログラムソースコードをコンパイルする時に依存関係を確認して「複数の命令を一つにまとめる」ことで実現するのである。これはうまく行けば、分岐予測や投機実行が必要でなくなるばかりか、大変高い命令実行効率を実現できるとなるが、そう簡単に行かないのがVLIWがこれまでうまくいかなかった理由、要は「理想を現実に適用する」という段階で困難を伴ったからに他ならない。
Mercedは、VLIWの弱点を補ったEPICアーキテクチャと命名した改良版を採用した。特に複数命令の依存関係を明示化することに注力したが、VLIWのアキレス腱である「NOP」命令の大量投入を避けることができなかった。また、プロセッサバスがボトルネックとなり、特にマルチプロセッサ(コア)間のデータ依存性に処理時間の多くを取られてしまうと言う、ハイエンド向け用途としてはパフォーマンスに致命的な不足をもたらしてしまった。「大変長い命令」は、それだけでボトルネックの要因となってしまったのである。現在ではプロセッサバスも高速化し、外部メモリとのバス帯域占有についても大容量キャッシュメモリを搭載することによって、ようやくボトルネックは過去のものとなってはいるが、ハードウェアリソースの見込み違いとされても仕方ない。
このことは、同じVLIW構造を採ったTransmeta社(昨年消滅)のCrusoe及び後継のEfficeonを見れば再確認できよう。Crusoeは、Intel社が持たない低消費電力プロセッサとして登場したが、いわゆるx86命令をCrusoeネィティヴ命令に動的コンパイルするという、謂わばエミュレーション技術で対抗したが、変換までに時間を要することと、動的コンパイルのため大量の「NOP」命令を積み込まざるを得なかったことから、ネイティヴ命令実行効率(意味はないが「NOP」命令を含む)はP6系プロセッサよりもはるかに高かったが、x86命令単位での実行効率はほとんど違いはなかった。むしろ、P6系プロセッサ内部でのμOPs分割にも及ばなかったとなるだろう。続くEfficeonは、打倒Banias(Pentium M)を高らかに宣言して、Pentium Mよりも後に投入したにもかかわらず、まったく太刀打ちできなかった。Transmeta社の生きる道はハイエンドMobileプロセッサでなく、統合Mobileプロセッサだと思われていたが、ハイエンドで戦えなければ利益が望めないという至極真っ当な理由でIntel社に戦いを挑んだが、P6改のBaniasはVLIWに勝利したのである。静的コンパイルのMercedと単純に比較はできないが、VLIWがこれまでうまくいかなかった理由をMercedの失敗に挙げざるを得ない。
さて、VLIWの話はこのくらいにしておいて、予定としていた1998年にリリースできず、性能が芳しくないという風評(そしてそれは現実となる)の中、翌1999年は背水の陣を敷く。ようやく、となるが5月26日(日本時間27日)、IA-64命令セットアーキテクチャの詳細を発表し、いよいよ登場間近であると雰囲気作りを行い、8月のIDFではMercedのサンプルチップを公開しデモを見せた。そして10月のMicroprocessor Forumというイヴェントに前後して製品ブランド名「Itanium」を発表したのだが……。ここで、IA-64の存立基盤を揺るがす大事件が勃発した。それはAMD社による──
「x86-64」の発表
であった。Itaniumデビューというべきこの時期に、AMD社は「x86-64」の存在を公にし、アーキテクチャの概要を発表した。それは、32-bit x86(IA-32)を自然な形で64-bit拡張を施し、64-bit環境と32-bit環境の高い親和性を目指したもので、発表当初は「なぜ、これをIntel社が発表しないのか?」と思ったほどだった。「x86-64」は、その後に微細な改良を加えて「AMD64」と名前を変え、PC市場における最大の有力者Microsoft社の支持を取り付けることに成功する。Intel社は当初、「x86-64」を相手にしない(かつての「蒋介石を相手とせず」みたいなもの)という姿勢でいたが、IA-64がまったく振るわず、正式にリリースできていない状態で遅延を繰り返していたことから、心中を察するに余りあるところである。Intel社内部でも、MercedをスキップしてMcKinleyを早期リリースするという話や、AMD社に先は越されたが、IA-32を64-bit拡張させる話、あるいはIA-64をIA-32と相互互換をはかろうという話など、様々な話が聞こえてきたが、急にどうこうできるものではなかった。2000年2月には、ISSCC2000において「Itaniumは800MHzからスタート」すると発表し、年内のリリースを目論んだが、これも成功せず、ついに2001年に入ってItanium(Merced)後継プロセッサであるMcKinley搭載システムが展示・デモされる事態にまでなっていた。さすがにことここにいたってリリースしないわけにはいかなくなり、2001年5月29日、ようやくItaniumは正式発表されたのである。そのプロセッサは733MHz版と800MHz版。コアクロックのスピードで議論されるべきものではないとは言え、Pentium III系、Pentium 4系、Athlon系が皆1GHzをはるかに超える時期にハイエンドがこれでは、当然他RISC 64-bitプロセッサに太刀打ちなどできなかった。
この発表から1年も経たない2002年4月25日、Itanium 2ブランドが発表され、年内にはItanium 2(McKinley)がリリース。Itaniumは長い開発期間と比べて圧倒的に短い寿命を終えたのである。
この項、終了。
>この項、終了。
IA-64,まだまだこれからですよね(^^)
これでおしまいだとしたら残念です.
投稿情報: カレッカ | 2010/04/13 19:19
カレッカ様、コメントありがとうございます。
IA-64の歴史については、ようやくリリースまでこぎ着けたところですが、今回(4月14日)違う話題をとりあげたようにこの回で終了…というわけではなく、IA-64の歴史ばかりとならないよう、いったん中断しただけです。
というわけで、近日中の再開を予定しているので、ご期待ください。
投稿情報: XWIN II | 2010/04/14 07:50