●AMDが早くもK7のサンプルを公開
K7が500MHzで動いた。
AMDは、11月16日からラスベガスで始まったCOMDEX Fallで、'99年に投入する次期MPU製品「AMD-K7」と「Sharptooth」のデモを行なった。Sharptoothでは400MHz版とPentium II 450MHz版の性能比較をマスコミや顧客に公開。また、AMD-K7では実際のサンプルチップが500MHzで動作するデモを同じく特定のメディアと顧客に見せた。Sharptoothは'99年第1四半期に、AMD-K7は'99年前半中に、それぞれ出荷する予定だ。このデモで、AMDは同社のそのロードマップが決して絵物語ではなく、リアルであることを証明したことになる。
Sharptoothは以前「AMD-K6-3」と呼ばれていたK6-2の強化版。K6-2コアに256KBの2次キャッシュSRAMを統合、フルスピードアクセスを可能にする。統合により、512KBの2次キャッシュを外付けにしたPentium IIよりパフォーマンスで上回るとAMDはいう。
しかし、Sharptooth以上に業界の関心を集めているのは、AMDがK7のデモを行なうということだ。この時点でSharptoothのサンプルが動いていることは何の不思議もないが、K7のサンプルがあるということは、インパクトがある。それは、K7のアーキテクチャが大胆で、さらにAMDの掲げる目標があまりに高いからだ。AMDとしても「K7の実物が動いている」ということをなんとしても早く顧客やメディアに示す必要があった。
デモではK7を500MHzで駆動。一連のベンチマークの実行や、DVDコンテンツのソフトウェア再生を実演した。ただし、ベンチマークでは、AMDはベンチマークの結果自体は明かさなかった。また、K6-2に対して、同一クロックでどれだけ性能がアップするかも、明らかにはしなかった。
だが、アーキテクチャ的にはK7は高性能を達成しても何の不思議もない。たとえば、K7の実行ユニットは、3つの整数演算ユニット(IEU)、3つのアドレス生成ユニット(AGU)、3つの浮動小数点演算/MMX/3DNow!ユニットの合計9個。それぞれのユニットに対して、同時に内部命令を発行(イシュー)できる。つまり、9命令の同時発行が可能ということになる。これはPentium IIの5命令を大きく上回る。
また、AMDは0.25版のK7は、最初から500MHz以上で出荷、0.18ミクロンでは1GHzを目指す。これも、アーキテクチャを見ると説得力がある。K7は、整数演算で10段、浮動小数点演算で15段という深いパイプライン構造になっているからだ。パイプラインを深くすることで、1ステージで通過するゲート数を減らし、高クロックを実現できる。10月のMPU業界カンファレンス「Microprocessor Forum」でK7のプレゼンテーションを行なったAMDのDirk Meyer氏(K7 ディレクタ)は、高クロックで有名なDECのRISCプロセッサ「Alpha 21064/21264」のアーキテクトのひとりだった。それだけに、K7の高クロック化は現実味がある。
●Intelのロードマップの巨大な空白
K7が、もしアーキテクチャで示される通りのパフォーマンスを発揮し、ディープパイプライン化によって高クロックも達成し、しかも順調に生産できたとすると、x86最速プロセッサのタイトルを初めてIntelから奪う可能性が出てくる。
「AMDがIntelを追い越す!?」と言うと信じられないかも知れないが、じつは、これも背景を知れば、それほど不思議なことではない。というのは、Intelのロードマップに大きな空白があいているからだ。
K7のトランジスタ数は2,200万で、Pentium II(750万)の3倍。原則論で言うなら、3倍のリソースを費やせば、高性能を実現できるのは当然だと言える。また、K7は0.25ミクロンでは184平方mmとやや大きめのダイサイズ(半導体本体の面積)で、0.18ミクロンの製造プロセスに移って125平方mmになり、ボリュームゾーンに入ってくるチップだ。それに対して、Pentium IIは0.25ミクロンで131平方mmになってボリュームゾーンに入って来た。つまり、Pentium IIとK7では、1ジェネレーション違うわけだ。
ところが、Intelは、K7に当たるジェネレーションのMPUを持っていない。Intelのロードマップのその部分には、じつは大きな空白がある。振り返ってみると、Intelは、Pentium(P5)を'93年に、Pentium Pro(P6)を'95年に発表した。この間は約2年半。この時、インテル日本法人は、2つのチームが交互にMPUを開発しているためIntelでは2年置きに新設計のMPUを投入できると説明した。その通りなら、Intelは、'97年か'98年に次の世代のMPUを発表しなければならなかった。ところが、この時期に次世代MPUコアの発表はなく、'99年に登場するKatmaiもP6コアを拡張したものだ。それどころか、Intelの次のIA-32(x86)MPU「Willamette(ウイラメット)」は、2000年ごろに登場すると見られている。つまり、Intelは5年もの間新しいコアを投入しないという、異常な事態に陥っているのだ。
Intelは、Pentium II Xeonを発表したり、KNIを発表したりと、盛んにプロセッサを強化しているように見せているが、じつは、コアのアーキテクチャは5年間変えていない。というか、変えることができない。これは、追い抜かして下さいといわんがばかりの状況だ。
●MercedがIntelのロードマップに空白を開けた
Intelのロードマップにこんな巨大な空白が開いたのは、まちがいなくMerced開発の影響だ。そもそも、Intelは、Pentiumの開発が終わった時点で、P6後継のx86プロセッサとしてP7の開発を始めていた。ところが、同社は'94年6月に方向を大きく転換、Hewlett Packardと提携して、新しいアーキテクチャ「IA-64」のMPU「Merced」を開発することを発表した。その結果、P6の次に出てくるはずのP7がMercedに変わってしまい、その部分がすっぽりロードマップ上の空白になってしまったようだ。世代的に見るなら、Willametteは本来はP7の次、P8とでも言うべき世代になるはずで、その間に1世代抜けている。
つまり、要約すると、AMDは当たり前のコースでどんどん1世代ごとにMPUを開発してきたのに、Intelは1世代空けてしまった。これはそういう単純な話なのだ。今のAMDは、NexGenの買収や旧DECなどからの人材流入により開発チームが強化され、新しいMPUコアを2つ平行して開発して交互に出せるようになっている。それに対して、IntelはIA-64に開発リソースをかなり取られていて、x86のロードマップに1世代分の空白が開いてしまったというわけだ。
もちろん、K7の未来はまだ未知数で、IntelのMPUとバスの互換性がないMPUがどこまで成功できるかはまだわからない。しかし、性能面では追い越す可能性は結構ある。そして、Intelにとっていやなことに、IDT/Centaur TechnologyやNational Semiconductor/Cyrixといった他のx86互換メーカーも世代を進め、新しいコアを投入してくる。それらはK7ほどアグレッシブではないが、コアアーキテクチャの古いPentium II/Katmaiのミッドレンジから下の市場への脅威に十分なりうる。パフォーマンスギャップが小さくなりつつあるのだ。これは、すべてIntelが新世代のコアアーキテクチャを投入できないから生じている問題だ。
だが、IntelもMercedのプロジェクトを始めた時に、この危険には十分気がついていたはずだ。Intelが製造プロセスの微細化に拍車をかけて、プロセス技術による高クロック化で差をつけようと急いでいるのは、アーキテクチャ面での不利を承知しているからかも知れない。また、これは、Intelがこうした危険も覚悟で、IA-64による大ホームランに賭けているというという決意も示している。ここで、ある程度追いつかれても、IA-64で一気に引き離せば、最後に笑うのはIntelだと考えているのではないだろうか。
●リッチなK7のアーキテクチャ
最後に、ざっとK7のアーキテクチャを振り返ってみよう。
K7では、これまでのMPUにない、9命令同時発行を実現したが、それらの実行ユニットに命令を供給するデコーダも強化された。K7では、どんな組み合わせでも、3つのx86命令を同時にデコードできる。Pentium IIも3個のx86デコーダを備えているが、複雑な命令をデコードできるのはそのうちのひとつだけで、あとの2つは単純な命令に限られている。K7の方が、原理的にはデコーダの性能がずっといいことになる。
Pentium IIやK6では、x86命令をRISC風の内部命令にいったん変換する。この時、メモリアクセスを含む演算命令は、演算命令とメモリアクセス命令に分離される。ところが、K7では、x86命令を内部命令「MacroOp」に変換する際に、こうした分解を行なわない。メモリアクセスを含むx86命令は、演算オペレーションとロード/ストアオペレーションの2つのオペレーションを含む1個のMacroOpに変換する。MacroOpは、スケジューラ回路で初めてオペレーションに分解されて、実行ユニットに対して、実行できるもの順(アウトオブオーダー)に発行される仕組みだ。この仕組みによって、K7ではPentium IIやK6よりもデコーダの負担を減らし、それで3命令の同時デコードを可能にしたようだ。
K7のデモでは、3D描画の速さがとくに目を引いたが、それも当然だ。浮動小数点演算ユニットは3本パイプラインで、フルにパイプライン化されている。10月のMPU業界カンファレンス「Microprocessor Forum」でK7のプレゼンテーションを行なったAMDのDirk Meyer氏(K7 ディレクタ)は、K7の浮動小数点演算ユニットについて「これまでのx86プロセッサでもっとも性能が高い」と誇らしげに語っていた。
K7では、キャッシュも強化される。64KBのデータキャッシュと64KBの命令キャッシュの合計128KBの1次キャッシュを搭載。また、システムバスと分離された、専用の2次キャッシュのバスも持つ。つまり、Pentium IIと同じ構造を取るわけだ。実際、K7は写真のようにSlot 1と物理的に同じ形状のスロットに挿す基板として提供される。デモルームでは、このK7カートリッジの中身も公開したが、それを見ると、K7と2次キャッシュSRAM2個を実装する形になっている。これを見る限り、一定量の2次キャッシュまではサポートできるタグRAMは内蔵しているようだ。K7では、512KB~8MBまでの2次キャッシュをサポート。2次キャッシュのインターフェイス速度は設定可能で、2倍の速度でデータを転送する「DDR(ダブルデータレート) SRAM」もサポートするという。
さて、写真を見てもわかる通り、K7は物理的にはSlot 1互換のモジュールで提供される。しかし、互換なのは物理的な形状だけで、フロントサイドバスのプロトコル自体は異なる。K7はAlpha用に開発されたEV6バスをライセンスを受けて採用している。EV6バスは、最高400MHzまでサポートするが、K7ではメインストリームのデスクトップもカバーするため200MHz(100MHzのバスクロックの両エッジに同期)にしている。また、完全なスプリットトランザクション型バスで、1個のMPUにつき最高20個までのトランザクションを同時に実行できる。
EV6バスはPentium IIバスと異なり、ポイントツーポイント方式を取っている。CPUバスを複数のMPUで共有することはできない。そのため、K7でマルチプロセッサ構成をするには、チップセット側が複数のCPUバスを備えている必要がある。この方式は、チップセットへの負担は大きいが、バスの負担は減るので、EV6のような高速なバスを実装するには向いているのだ。
('98年11月18日)
[Reported by 後藤 弘茂]