米Intelにとってx86戦線の切り札となる次世代IA-32プロセッサ「Willamette(ウイラメット)」がいよいよベールを脱いだ。その正体は、予測を大きく上回るほど、高クロック化に向けたチューンがなされた、“Speed Demon”CPUだった。
Intelは、今週開催されたカンファレンス「Intel Developer Forum(IDF)」で、Willametteを1.5GHzで動作させるデモを行なった。OEMメーカーによると、Intelは、このWillametteを今年第4四半期の頭に、1.4GHzで出荷する予定だという。それも、特殊な冷却装置ではなく、放熱フィンとファンの組み合わせでこのクロックを達成する見込みだ。圧倒的なまでのクロック。クロックなら、Willametteが2000年の最強のCPUになることは間違いがない。
Willametteは、0.18ミクロン版Pentium III(Coppermine:カッパーマイン)と、基本的に同じプロセステクノロジで製造されると見られる。つまり、Coppermineの1GHzに対してWillametteが1.4GHzということは、同じプロセス技術でも、Willametteの方が1.4倍も高いクロックを達成できることを示している。一体、どうしてこんなことが可能になったのだろう。
●新機軸満載のWillamette
Intelのアルバート・ユー上級副社長は、IDFのキーノートスピーチの中で、Willametteのマイクロアーキテクチャについて簡単に説明している。また、IntelはIDFでの発表に合わせ「Willamette Processor Software Developer's Guide」を公開した。じつは、今回のIDFは都合で出席できなかったため、IDFのセッション内容はまだ入手できていない。そのため、公開されたデータと、OEMメーカーなどからの情報をもとに、Willametteの姿を分析してみた。
まず、公式に明らかになった情報は以下の通りだ
・ハイパーパイプライン
20ステージの極めて深いパイプライン
・クロックの2倍で動作する整数演算ユニット
・ストリーミングSIMD拡張命令(Streaming SIMD Extensions)2
76の新命令
68のMMX命令の拡張
・アドバンスダイナミックエグゼキューション(Advance Dynamic Execution)
P6のダイナミックエグゼキューションの拡張
深いインストラクションウィンドウ
・高度な分岐予測
・トレースキャッシュ(Execution Trace Cache)
x86命令から変換した内部命令μops命令をストアする
・新システムバス
転送レート400MHz(クアッドパンプ)、64ビット
帯域3.2 GB/sec
ソースシンクロナスクロッキング
・オンダイ(On-Die)の広帯域低レイテンシの2次キャッシュ
・高スループットのx86命令デコーダ
・PGAパッケージ
・サーバー版CPUは「Foster(フォスタ)」
・チップセットは「Tehama(テハマ)」
デュアルRambusチャネル(メモリ帯域3.2 GB/sec)搭載
・サーバー版チップセットは「Colusa(コルサ)」
・サンプル出荷中、量産出荷は今年後半
これに、OEMメーカーなどからの情報を加えてみる
・256KBの2次キャッシュ
・Fosterに1MB 3次キャッシュ版
・新しいソケット
Willamette--423ピン(socket W)
Foster--603ピン(socket F)
・Tehama
デュアルCPU対応
64/128/256Mbit DRDRAM
AGP 4Xモード
ICH2(LAN MACレイヤ、USBポート4、ATA100など)
615ピンPGA
フリップチップ実装
・Colusa
クアッドCPU対応
512Mbit DRDRAMまで対応
AGP 4Xモード
・Tulloch
廉価版チップセット
シングルRambusチャネル
・Intel製Willamette/Tehamaマザーボード「Garibaldi」ATX
●異常なほど深いパイプライン
Willametteの高クロックのカギは、このハイパーパイプラインだ。20ステージというのは、異常なほど深いパイプラインだ。パイプラインは、細分化されればされるほど1段のゲート数が減るため、原理的に高クロック化が容易になる。RISC全盛期には、7ステージ以上でスーパーパイプラインと呼ばれ、Pentium Pro(P6)やAthlonではこれが10段以上になったが、Willametteはさらに大きく飛躍した。WillametteがP6コア(Pentium Pro/II/III系CPUコア)より高クロックを達成できたのは、この深いパイプライン化による。
しかし、パイプラインが深くなると、分岐予測がミスした場合のペナルティが大きくなるという問題が生じる。予測が外れると、パイプラインですでに実行していた分岐命令に続く命令の処理をいったんご破算にして、分岐先の命令の読み込みから再開しなければならないからだ。そのため、パイプラインが深くなればなるほど、このロスは大きくなり、クロックが上がっても性能が上がらなくなってしまう。
こうした関係にあるため、パイプラインの深化は、必ず分岐予測精度の向上とペアでなければ意味をなさない。従来のP6コアの分岐予測精度は90%程度で、最新のCPUアーキテクチャの95%クラスの分岐予測と比べると精度が低かった。90%と95%だとそれほど違いがないように見えるかもしれないが、これは予測が外れる確率が5%対10%ということで、性能では大きな開きになる。信号が2倍ある道をクルマで疾走することを考えてみれば、この違いがわかる。
そこで、Intelは、「Willametteでは分岐予測アルゴリズムをP6より大幅に強化し、最新の予測技法をすべて組み合わせた」としている。しかし、その内容やどの程度まで精度が向上したのかは、まだ明かされていない。
●トレースキャッシュでx86デコードの制約を軽減
Willametteのアーキテクチャの目玉のひとつはトレースキャッシュ(Execution Trace Cache)の採用だ。Intelのドキュメントによると、これはx86命令をプリデコードして変換した内部命令「μops」をストアするという。ストアしておいたμopsを実行する場合には、複雑なx86命令をデコードしてμopsへ変換するという手間のかかる作業を省略できるため、パイプラインは実質的に短くなる。
このトレースキャッシュの量やアルゴリズムなどは、現時点では(IDFのセッション資料が入手できていないため)まだわからない。しかし、x86命令のデコードのオーバーヘッドは大きいため、かなりの効果は期待できるだろう。例えば、分岐予測がミスした場合でも、トレースキャッシュに分岐先のコードがあれば、ロスを大幅に縮小できる。つまり、トレースキャッシュは、パイプラインを深くすることにも役立っているわけだ。また、Intelのドキュメントでは、トレースキャッシュの採用により、Willametteのx86デコーダはスーパースカラー化の必要がなくなったとしている。
面白いのは、最新のx86 CPUの中に、同じようにx86命令から変換したネイティブの命令をキャッシュするアーキテクチャがあることだ。それは、米Transmetaの「Crusoe(クルーソ)」だ。クルーソでは、コードモーフィングソフトウェア(CMS)が、x86命令をCrusoeのVLIW命令に変換する際に、コードブロック毎にキャッシュに格納することで、変換のオーバーヘッドを削減する。最大の違いは、Intelがハードウェアでインプリメンテートしたのに対して、Transmetaではこの機能をソフトウェアで実現したことだ。
また、Willametteでは、P6に対してx86デコーダ自体も強化された。P6では、デコーダは3ユニットあったものの、すべてのx86命令をデコードできるのは1ユニットだけで、あとの2ユニットは単純命令しかデコードできず、x86命令デコードのスループットが低かった。しかし、Willametteでは、こうした制約はなくなったようだ。Willametteが完全に同等のデコーダを3ユニット備えたとすると、x86命令デコードの機能はAthlonと同等になる。
トレースキャッシュの搭載とデコーダの改良によって、Willametteでは、P6と比べて、μopsが内部の演算ユニットに円滑に供給され、パイプラインの稼働率が高くなると思われる。
●制御できる内部命令を大幅に増やす
演算ユニットやスケジューラも改良された。
Willametteでは、整数演算ユニットを、CPUクロックの2倍のクロックで動作させている。つまり、CPUクロックが1.5GHzなら、局所的に3GHz相当で動作するわけだ。この機能に関してはまだ詳細がわからないが、Intelのドキュメントでは、目的はある種のインテジャのオペレーションでのレイテンシを短くすることとなっている。このほか、Willametteでは、P6と比べて浮動小数点演算の性能をアップした。P6と比べると、同クロックでも高いパフォーマンスを達成するという。
また、Willametteでは、深いインストラクションウィンドウズを備え、オンザフライでコントロールできる内部命令の数を増やした。P6では、40個のμopsを投機実行できるだけだったが、Willametteでは、リオーダーバッファ(ROB)を大幅に深くすることで、制御できる命令数を大幅に増やしたという。パイプラインが深くなったことを考えると当然だが、これにより、データキャッシュミス時などに、データ待ちでストールしてしまうといった問題を回避しやすくなる。ちなみに、Athlonでは72個のx86命令を同時に制御することができる。
このように、WillametteはP6コアと比べると、大幅にアーキテクチャが拡張されている。それもそのはずで、Willametteは'95年発表のP6コアから5年振りに登場する新アーキテクチャで、その間に世間では1世代CPUアーキテクチャが更新されている。つまり、P6より2世代分進歩したのがWillametteということになるわけだ。このWillametteを、ボリュームゾーンにもってこれた時、Intelはようやく安心できるようになるだろう。来週は、Willametteの普及の予測と、SSE2の戦略などを分析してみたい。
(2000年2月18日)
[Reported by 後藤 弘茂]