CPU黒歴史 周回遅れの性能を20年間供給したItanium
文●大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII
2021年08月16日 12時00分
今回は、久々にCPU黒歴史をお届けしよう。黒歴史シリーズそのものも、公式には連載211回のIntel G965が最後だったので8年ぶりである。
さて、久々の黒歴史であるが、ついにインテルのItaniumが最終製品の出荷を完了した。現時点でark.intel.comを参照すると、まだItanium 9750以外は出荷中に見えるが、実は2019年1月末の製品変更通知で、Itanium 9700シリーズとIntel C112/C114チップセットは2020年1月30日に受注を終了、2021年7月29日に出荷を完了することが明らかにされている。
その最終出荷日を先月末に迎えたわけで、現状すべてのItaniumが製造中止になっているわけだ。そこで、晴れて(?)黒歴史入りしたItaniumを改めて振り返りつつまとめてみたい。
最初の製品であるMercedから開発が難航
発売されることなく後継モデルへ
Itaniumの場合、もう最初のMercedがケチの付きまくりだったことが最初の要因である。Mercedは連載121回で説明したが、以下の問題があった。
- 当時のインテルとしては経験のないダイサイズ(正確なサイズは未公表ながら300mm2を超えていたとされる。ちなみに同じ0.18μmを使うWillametteは216mm2だった)で、歩留まりが極端に悪かったうえ、物理設計(配置配線)に猛烈に手間取った
- 266MHz/128bitのFSBに問題が出まくった。Mercedはサーバー向けということで、FSBの配線引き回し距離も長めであり、そうでなくても困難だった電気的な信号の収束がさらに困難になった
- コンパイラの最適化が全然進まず、ピーク性能はともかく実効性能が低いままだった
当初1999年中に出荷予定だったMercedは2001年6月まで出荷が遅延。この時点でMercedの性能は同じインテルのWillametteベースXeon(Foster)にも劣る有様で、結局Mercedは開発用機材として開発者にサンプル供与して終わりとし、続くMckinleyシリーズを正式に“Itanium 2”として製品出荷することになった。
Mckinleyが登場したのは2002年のことで、もうこの時点でItaniumを使ってハイエンドサーバー機を出荷しようと目論んでいたベンダーからすると3年遅れになる。結果から言えば、この3年の遅れがItanium全体に致命的なダメージを与えたと言わざるを得ないだろう。
初の出荷製品となるMckinleyは
Xeonより性能が悪い
Itanium製品のロードマップを下図に示す。ここから順次説明していく。
Mercedに代わり、2002年6月に発表されたのがItanium 2ことMckinleyである。国内では発売が2002年7月にずれ込んだが、本国では6月末に発売されている。実質的にはこれがItaniumの最初の製品であるが、多少動作周波数やFSB周波数を引き上げたとはいえ、その前年にはFosterベースのXeon(WillametteのXeon版)が発表されており、こと32bitアプリケーションの性能に関してはこのFosterには敵わなかった(おおむね3分の2の動作周波数のPentium IIに同等とされたので、1GHzのItanium 2がだいたい667MHzのPentium II相当である)。
Xeonの側は、2002年2月にはさらに動作周波数を引き上げたPrestonia(NorthwoodのXeon版)を投入、さらにXeon MP向けに3次キャッシュを追加したGallatinを追加投入するなど、どんどん性能改善がなされており、この勢いに追従するのは難しかった。
なんというか、4PのXeon MPと16P構成のItanium 2が同等性能という、やや悲しい状況である。もちろんXeonにはないRAS機能や、64bitメモリーアドレス空間といったメリットはまだ確かにItaniumにはあり、こうした点を買われてシステムとしてリリースはされていた。
とはいえ、性能の劣勢は少しでも削りたい。そこで2003年にはプロセスを130nmに微細化し、動作周波数を引き上げるとともに2次キャッシュを最大6MBまで増やしたMadisonベースのItaniumが投入される。動作周波数もさることながら内部構造の改良もなされ、平均して30~50%の性能改善が可能と説明された。
このMadisonには、派生型としてまずDeerfieldが投入される。Deerfieldはワークステーション向けに低電圧動作としたもので、消費電力は62Wまで下がっている。
もともとHPなどはMickinleyをベースに、なかば無理やりItanium 2ベースのワークステーションを開発していたという話は連載540回でも少し触れたが、130WのCPUをデュアル構成でワークステーション筐体にぶっこむというのは、当時としては電源供給と放熱の両面でチャレンジであり、そうしたニーズに向けたのがDeerfieldというわけだ。
2004年に投入されたHondoは、インテルの製品ではない。これはHPが開発した独自プロセッサーで、2つのMadisonと32MB 4次キャッシュ(これはPentium II/IIIなどと同じようにSRAMチップを実装する形で実現された)を、既存のMadisonのソケットに装着できるようにするモジュールだ。
発表そのものは2003年2月に行なわれたが、出荷は2004年に入ってからとなった。ちなみにこんなものを開発したのはもちろんHPだけであり、対応するのもHPのSX1000というチップセットのみである。
ライバルのAMDがOpteronを市場に投入
インテルはItaniumよりx64プロセッサーの開発に注力
Madisonは2004年11月に動作周波数を引き上げるとともに3次キャッシュ9MBまで拡充している(Madison-9M)。またDeerfieldの後継としてもう少し動作周波数を引き上げて最大2P構成となったFanwoodベースのItanium 2も同じく2004年11月に発表されている。
ではこれでだいぶマシになったか? といえば、むしろ状況は悪くなった。最大の理由はAMDによるOpteronの投入である。
AMDは1999年のMicroProcessor Forumでx86-64を発表した。もっともこの時点ではまだ具体的な製品計画はなかったが、2001年には初代OpteronことSledgeHammerのアーキテクチャーを発表。2002年にはXeonとの性能比較を紹介した。実際のOpteronの製品出荷は2003年4月であったが、このOpteronの投入はItaniumの将来をほぼ決定的にした。
インテルは2002年当時、まだx86-64には及び腰であった。当時のインテルの考えは、x86は命令体系が複雑であり、将来性能を引き上げる際にはこの命令体系の複雑さがボトルネックになると考えていた。複雑にしたのはインテル自身だろう、という突っ込みもなくはないが、それはおいておく。
それもあって64bitに移行するにあたっては、クリーンな命令セットの方が好ましいと考えていた。64bitでItaniumを推進していた最大の理由がこれである。それもあって、クライアント向けの64bit命令は、まったく異なるもの(Itaniumとの互換性があったかどうかも不明)を考えていた。これがYamhillである。
この考え方そのものは珍しくない。最近で言えば、Armは64bitのArm命令(AArch64)を32bit(AArch32)とまったく互換性のない、かなりクリーンなものにした。現実問題として64bit Arm命令はすでに広範に普及していることを考えれば、必ずしも互換性を保つことは必要ではない、とは言える。
ただこれに反発したのがマイクロソフトである、という話は連載24回でした通りだ。この結果としてインテルは、x86-64をベースに、Opteronと互角以上に戦えるサーバー向けプロセッサーを投入する必要性が生まれた。そして、本来ならItaniumに注がれたであろう開発パワーは、x64プロセッサーの開発に注がれることになってしまった。
ここで冒頭の話に戻る。もしMercedが当初のスケジュール通り1999年に出荷されていたら、もう2003年の時点では少なからぬサーバー向けアプリケーションがItaniumで動いており、Itaniumの改良そのものももっと進んでいたはずだ。
2002年に130nmプロセスが利用可能になっていたわけで、Madisonが2002年に、次のMontecitoは2004年に出ていた可能性は高い。こうなるとOpteronに十分勝る性能を実現しており、すでに多数存在していただろうサーバー向けアプリケーションをもって確実にシェアを握っていたと思われる。もちろんそれでも長期的にはx86-64に市場は奪われたかもしれないが、少なくともずっとマシになっていただろう。
実際はMadisonの性能は、例えばSPECint_base2000だと日立のBladeSymphony(1.66GHz/9MB Itanium 2)で1502、一方2004年6月に発表されたXeon 3.6GHz+SuperMicro X6DH8/E-G2の構成で1651といったところで、ギリギリXeonに追いついていないが、これは2004年発表の製品同士の比較である。
もしMadison-9Mが2002年に出ていれば、性能比較はXeon 2.8GHzあたりになり、これを搭載したHP Proliant BL40pの性能は1202ほど。十分にx86に勝てていることがわかる。
HPがItaniumの開発を中止
インテルも開発トップが辞任
x86の64bit拡張をインテルも受け入れざるを得なくなったことで、Itaniumは急速に影が薄くなっていく。2006年7月には90nmプロセスを利用したデュアルコア構成となり、しかもマルチスレッド(SMTではなくCGMT:Coarse-Grain Multithreadingという実装である)を実装、さらに仮想化サポートなども加えたMontecitoベースのItanium 9000シリーズが発表されるが、これに先立ちIBMとDellはItanium搭載製品の販売を2005年中に中止した。
HPはItaniumの開発を中止。開発部隊はまるごとインテルに移籍となった。なによりインテルでItanium推進の旗振り役であったMike Fister氏(SVP, Enterprise Platforms Group)が2004年5月にインテルを辞任したことで、Itaniumは推進力を失うことになる。
この結果、Itanium 9000のあたりからインテルのItaniumに対するメッセージは次第に変化してきた。相変わらず性能や消費電力効率は誇るが、その対象は全世代製品(Madison)や他社のRISCベースメインフレーム(IBMのPOWER5など)であり、Xeonとの性能比較はめっきり姿を消した。
そしてXeon系列との差について「Itaniumは基本設計の時点からRASなどの高信頼性機能を組み込んでおり、コンシューマー向けのコアに後付けでRAS機能を付加したXeonとは異なる」という表現で、この時点でも残る、いわゆるRISCメインフレーム市場を本格的に攻略しにいく姿勢を示した。2007年にItanium Solution Allianceの発表会が開催されているが、この内容を見るとこうした傾向がはっきりわかる。
2007年には、このMontecitoの機能強化版としてMontvaleがItanium 9100シリーズとして投入される。動作周波数はおおむね同等ながら、FSBの動作周波数が引き上げられるとともに、DBS(Demand Base Switching)という省電力機構の搭載、さらに一部製品では2つのコアを同期して動かすことで片方のコアが故障時に直ちに代替作業を行なうLockStep機能が搭載された。
LockStepは、かつてTandemのIntegrity S2で実装された仕組みで、最近では自動車向けなどの「止まると人命に関わるシステム」などで広く使われているが、これをチップ内部で実装した形だ。
ただ、その一方で性能そのものはMontecito→Montvaleではほぼ同じであったし、DBSの搭載でシステム負荷が低い時の消費電力を減らすことで長期的にならした場合のTCO削減は実現できたものの、稼働時の消費電力そのものは同じであった。
開発の遅れが致命傷となったTukwila
多くのベンダーがItaniumに見切りをつける
Montvaleの後継であるTukwilaはいろいろ苦難の道を歩むことになった。インテルとしては、Xeon系列とItanium系列で別々のプラットフォームなのは無駄に開発や検証コストがかかるだけであり、早い時期にこれを一本化したかった。
最初にこれを実現しようとしたのがRichfordプラットフォームで、おそらくQPIの原型になるI/Fを利用したものだったと思われるが、これは2005年にキャンセル。2006年にこれの後継としてRosehillプラットフォームという名前も出てきたが、これもいつの間にか消えてしまった。
ちなみにRichford/RosehillはItanium側のコード名で、Xeon側はこれをReidlandプラットフォームと呼び、これのチップセットがWhitefieldだったが、これらはすべてキャンセルになった。
この結果として、Montvaleの時点でもチップセットそのものはMckinleyと同じIntel E8870であり、さすがにプラットフォームとして陳腐化が激しかった。結局、インテルのチップセットを使っていたIBM/Dellは早々とItaniumから撤退。残るベンダーは自前チップセット(HP/富士通/NEC/日立/SGI)を使うか、他社のチップセット(UNISYS/BullがNEC、シーメンスが富士通)を使うか、といった状況になっていた。
TukwilaはFSBからQPIにI/Fを変更することで、こうした状況を改善する予定であった。ところが当初2007年中にリリース予定だったTukwilaは、まず2008年末出荷になり、ついで2009年半ばを経て、2009年2月には改めてデザイン変更のため遅れるとアナウンス。最終的に2010年2月にやっと出荷になった。
内部そのものは90nm→65nmへの微細化、これにともないコア数の増加、3次キャッシュの容量増加、それとQPIの実装が主なポイントで、なぜこれで3年も遅れるんだ? という感じであるが、ダイサイズは700mm2を超える巨大なものだっただけに、いろいろ苦労はあったのだろう。
ただこの3年の遅れは致命的で、多くのベンダーがItaniumに見切りをつけるのに十分な期間であった。すさまじく印象的なのはNECである。もともと同社はACOS-4シリーズというメインフレーム用に、2001年まで独自のプロセッサーを開発していた。
2001年のものはNOAH-5という180nmプロセスで製造されたCPUであるが、この後NECはItaniumでNOAHのエミュレーションをする形で新製品を投入していた。ところがさっぱり出ないTukwilaにしびれを切らしたのか、2011年に40nmプロセスを使ったNOAH-6を開発、ACOSシリーズの新製品をこのNOAH-6に切り替えるという荒業を成し遂げる。NOAH-6は中身はNOAH-5のままでプロセスを微細化しただけに近いのだが、こういう形でNECはItaniumから手を引くことになる。
もうこの時点で主要な顧客はHPしか残っていなかった。実際、この頃になるとハードウェアメーカーだけでなくソフトウェアメーカーまでどんどん撤退を始める。例えばRedHatは2009年、RHEL6ではItaniumをサポートしないことを表明しているし、マイクロソフトも2010年にサポート打ち切りを表明。2011年にはOracleも打ち切りを表明し、HPとの間で裁判沙汰となった。もうこの時点で、Itaniumの顧客は事実上HPしかなくなったと考えても大きく間違ってはいないだろう。
そういう状況でまだ新製品を作ったのは偉いというべきか。2012年にはPoulsonコアのItanium 9500を発表する。こちらは45nmプロセスを飛ばして65nm→32nmに移行させ、コア数も倍増(最大8コア)。さらに内部の同時発行命令数を6→12に倍増。3次キャッシュの大容量化やQPIの高速化など、打てる手は全部打ちました、といった格好の構成になっている。
ただItaniumの場合はVLIWがゆえに、12に倍増した実行ユニットをフルに使うためにはアプリケーションの再コンパイルが必要であり、互換性を保ったままでは性能向上がなかった。動作周波数は多少上がったものの、同時期のx86(というより、もうx64)プロセッサーには遠く及ばない程度。頼みの綱だった高信頼性向けにしても、もうこの時期のXeonにはItaniumと変わらないレベルのRAS機能が搭載されており、唯一搭載されていないのはLockStep程度。ただこれはシステムレベルで実現している例が多数あり、もはやItaniumのアドバンテージは皆無になっていた。
最終的に2017年に、わずかに動作周波数を引き上げたKittsonをItanium 9700としてリリースするが、これに要した期間はなんと5年。もうItaniumの開発そのものが行なわれていないことを示すのに十分な証拠と言えるだろう。
そもそもPoulsonの時にはリリースが出たが、Kittsonではリリースもなく、単にark.intel.comにエントリーが追加されただけである。この扱いを見れば黒歴史呼ばわりしても差し支えないだろう。
Tukwilaの遅延は、ラクダの背を折る最後の一藁であったとは思う。その意味ではTukwilaにも黒歴史入りの責任は若干あると思うが、根本的なところではMercedが2年遅れたことがすべてのタイムラインを狂わせ、輝かしい未来への道を閉ざした最大の要因だ。
そのタイムラインの遅れを最後まで修正しきれなかったのが決定打で、最後にTukwilaで止めを刺した。それでもそんな黒歴史プロセッサーを20年に渡って供給してきたインテルは偉い、ということなのかもしれないが。
■関連記事