後藤弘茂のWeekly海外ニュース

ヘテロジニアスマルチコアも視野に入れたAMD




●2008年までの技術改革のプライオリティリスト

 AMDの将来技術ビジョンは、過去2年ほどで大きく変わった。CPUコアを2年サイクルで刷新し、CPUコア自体のシングルスレッドパフォーマンスを伸ばそうという方向は、少なくとも当面は消えた。その代わり、CPUコアをマルチコア化して、スレッドレベルの並列性を高め、コンピューティングのスループットを重視する技術方向へとシフトした。さらに、異なる種類のCPUコアを混在させるヘテロジニアスマルチコア(Heterogeneous Multi-core)アーキテクチャも検討している。AMDのCPU技術は、明らかに節目を迎えた。

 下のスライドは、AMDが2005年11月に開催したアナリスト向けカンファレンス「Analyst Day」のプレゼンテーションのもの。CPUのシリコンレベルでの改革の、2008年までのプライオリティリストだ。つまり、AMDが描いている命令セットとマイクロアーキテクチャ(CPUの実装)の短期的なプランだ。

 この中で、非常に興味深いのは、マイクロアーキテクチャの改革としてリストされている技術群だ。AMDはHyperTransport 3.0と4.0、マルチコア化、スケーラブルSMP構成、オンチップコプロセッサを、マイクロアーキテクチャ上の改革として挙げている。これを、下の2003年10月のMicroprocessor Forumのプレゼンテーションと比べてみると何が脱落したかよくわかる。

2003年10月のMicroprocessor Forumでのプレゼンテーション
(別ウインドウで開きます)
PDF版はこちら
2005年11月のAnalyst Dayでのプレゼンテーション
(別ウインドウで開きます)
PDF版はこちら

 2年間で、「10GHz動作」、「より高パフォーマンスのスーパースカラアウトオブオーダCPUコア」、「スレッド化アーキテクチャ(Threaded architectures)」といった項目が抜けた。「ブランチ&メモリヒント」は、明示的なら命令セット拡張、明示的でないならマイクロアーキテクチャだが、これもリストからはなくなっている。しかし、それ以外の項目のうちマイクロアーキテクチャに属するものはほぼそのまま残っている。「GHzパフォーマンスI/O」は「HyperTransport 3.0/4.0」に、「チップレベルマルチプロセッシング」は「マルチコアアーキテクチャ」に、「大スケールMP(Multi-Processor)マシン」は「スケーラブルSMPアーキテクチャ」に言葉が置き換わっただけだ(HyperTransportについては速度向上以外の拡張も増えた可能性が高いが)。

 この2つのリストを見ると、AMDに何が起こったかがよくわかる。スライドが示唆するのは、AMDが少なくとも2008年までの期間では、CPUコア内部の大幅な改革は当面行なわないことだ。10GHz動作で、大幅に命令並列性の高いCPUコアの投入は、近いうちにはない。その一方で、マルチコアの構成や制御、インターコネクトの改革などは、短期中期的に行なっていく。マイクロアーキテクチャ改革といっても、2003年から2005年の間で、CPUコア内部の拡張はすっかり消え、CPUコア以外の部分の改革だけが残ったことになる。

●AMD幹部が初めてヘテロジニアスマルチコアの可能性を示唆

 とはいえ、それが、AMDのCPU革新のペースが鈍化したことを意味しているわけではない。それは、AMDがメインCPUコア以外の部分の拡張では、かなりラディカルな手法を考えているからだ。

 特に重要なのは、AMDが「オンチップコプロセッサ(On-chip coprocessor)」を、開発のプライオリティに挙げていることだ。つまり、メインCPUコア以外に、サブのプロセッサコアも同じチップに搭載する、『ヘテロジニアス型のマルチコアCPU』の可能性もAMDは検討している。

 ヘテロジニアスマルチコアは、PLAYSTATION 3(PS3)に搭載される「Cell」が採ったCPU構成だ。異種コア混載CPUは以前からあったが、コンピュータ用の汎用CPUコアと組み合わせるのがCell以降の技術トレンドとして浮上している。Intelの中期ビジョンにある「メニイコア(Many-core)」プロセッサも、ヘテロジニアスマルチコアだ。ただし、ヘテロジニアスマルチコアは、有効性について、最も議論が紛糾しているアーキテクチャでもある。AMDはそれについて、積極的にR&Dを進めているとしている。

 面白いのは、オンチップコプロセッサが2003年10月のプレゼンテーションにはなく、2005年に新たに加わった“唯一の”拡張プランである点だ。AMDはCPUコアアーキテクチャの拡張は先送りにし、その代わりに、コプロセッサを開発して載せるというプランへ転換したように見える。

 AMDのオンチップコプロセッサについては、昨年の2回のAnalyst Day以前にも説明されている。2005年6月のComputex時に開催されたカンファレンス「VIA Technology Forum(VTF)」で、AMDのDirk Meyer(ダーク・マイヤー)氏(当時President & COO, Microprocessor Solutions Sector)がもう少し詳しい方向性を示している。下が、この時のプレゼンテーションだ。

2005年6月のVTFでのプレゼンテーション
(別ウインドウで開きます)
PDF版はこちら

●特定処理向けのコプロセッサを搭載へ?

 Meyer氏は、VTFで、CPU性能の向上の方向性の1つとして、TCP/IPスタック処理やベクタ演算、DSP、仮想マシン(VM)実行といった特定コードのアクセラレーションの可能性を説明。その中で、特定処理向けの専用プロセッサをオンダイに載せる可能性を示唆した。Meyer氏のスピーチは次のようなものだった。

 「(マルチコア以外の)もう1つの(パフォーマンス向上の)側面は、特定目的のアプリケーション向けのハードウェアを増やすことだ。例えば、TCP/IPスタック。コンピュテーション向けの大きなプロセッサと、ネットワーク向けの小さなプロセッサの組み合わせといった、“ヘテロジニアスマルチコアプロセッサ”も容易に想像できる。(ネットワーク向けプロセッサは)TCP/IPスタックを非常に効率的かつ、非常に低消費電力に処理できる。

 別な例はベクタ演算だ。依然としてアプリケーションのベクタ化は関心を集めており、x86アーキテクチャのよりいっそうのベクタ拡張も推測できる。DSP拡張も同様だ」

 この時、Meyer氏は明確に、ヘテロジニアスマルチコアというキーワードを混ぜて、説明している。AMD幹部の口から、ヘテロジニアスマルチコアという言葉を聞いたのは、これが初めてだった。

 AMDの構想は、従来型の汎用の大型のCPUコアと、TCP/IPスタックの処理に特化した低消費電力でTCP/IP処理効率がいい小型プロセッサコアを組み合わせるといった方向性だ。また、載せるコプロセッサがTCP/IP特化コアではなく、ベクタに特化したコアなら、Cellと同じようなアーキテクチャになる。

 VMアクセラレーションについては、VTF時のスピーチでは、ヘテロジニアスマルチコアが絡むかどうかはわからない。VTFでの説明は、特定コードアクセラレーションについてであって、その手法の1つとしてヘテロジニアスマルチコアもありうると説明された。上の拡張リストが、イコールコプロセッサというわけではない。ただし、仮想マシンに占有CPUコアを割り当て、管理用CPUコアがそれを制御するといったアプローチは考えられないわけではない。

●まだ不鮮明なコプロセッサ計画の現実プラン

 AMDのコプロセッサビジョンについては、命令セットやメインCPUコアとの統合など、鍵となるアーキテクチャについては、まだ一切わからない。だが、実現するとなったら、何らかの形でソフトウェア層(OSなど)の対応が必要となることは確実だと思われる。

 ヘテロジニアスマルチコアのアプローチは、CPUの高効率化では非常に効果が高い。それぞれの処理に特化した、コンパクトなCPUコアを複数個載せれば、汎用の巨大なCPUコアで処理するよりも効率は高くなる。しかし、その反面、ソフトウェア側の複雑性を増す危険性をはらんでいる。例えば、CellではメインのCPUコア「PPE(Power Processor Element)」とサブCPUコア「SPE(Synergistic Processor Element)」では命令セットが異なる。そのため、SPEとSPE向けコードを制御するためのソフトウェア層がOSやハイパーバイザに組み込まれる。

 命令セットについてAMDのMeyer氏は、VTF時には、コードベースの互換性は非常に重要だと指摘していた。しかし、例えばTCP/IP向けのヘテロジニアスマルチコアを採用するなら、TCP/IPスタックだけを明示的に別コアで走らせる必要がある。それには、走らせるコードが何であるのかを把握しているソフトウェア側(OSなど)の対応は必要だろう。

 また、CPUの適用分野によって必要なコプロセッサの種類も異なってくる。マルチメディア系処理で効果を発揮するベクタ演算プロセッサは、PCでは有用だがサーバーでは意味が薄い。サーバーでは、TCP/IPやVMのアクセラレーションが重要だ。そうした背景からは、PCとサーバーでは異なるコプロセッサ構成も考えられるが、そうしたバリエーションは、CPUの製品構成をますます複雑にして、ソフトウェア側の最適化を難しくしてしまう。プログラミングモデルをシンプルに保ちながら、ヘテロジニアスマルチコアへと持って行くのは難しそうだ。

 もっとも、このオンチップコプロセッサのプランが、AMDの中でどこまで具体化しているかは、まだわからない。AMD関係者と話した感触では、具体的に2008年までに実装することが決まっているという雰囲気ではなさそうだ。AMDは、ちゃんとリストに2008年までのイノベーションの“プライオリティリスト”だと逃げを打ってある。おそらく、実現するのも2008年より先になるのではないだろうか。ハードウェア上の実装は簡単でも、ソフトウェア側の準備を整えるとある程度の時間はかかるからだ。

●命令セット拡張のロードマップも作成

 ソフトウェア側の対応という点では、AMDは命令セットの拡充についても、ビジョンを示している。Analyst Dayで示されたのは、パーティションドAMD PowerNOW! (命令)、FPU拡張(命令)、それに仮想化の命令拡張「Pacifica(パシフィカ)」とセキュリティ命令拡張「Presidio(プレシディオ)」のセットだ。Pacifica/Presidioは、すでに知られているように独自の命令拡張で、AMDはMicrosoftと最初にこの拡張をスタートさせたのはAMDだと主張している。それ以外にも、独自命令拡張が今後実装されることがわかる。

 AMDは命令セット拡張についてロードマップを作成したようだ。一時AMDのCPUアーキテクトだったAndy Glew氏は、Web上の自分の履歴の中で、その件に触れていた。それによると、Glew氏はAMDのCPUアーキテクチャの方向性を定義する「AMD Architecture Review Board (ARB)」に参加、そこで、「命令セットアーキテクチャロードマップ(Instruction Set Architecture Roadmap)」提案を書いたと言う。これは、AMDにとって、最初の長期的な命令セット拡張のプランで、その提案を部分的にAMDが採用したという。つまり、いつまでにどんな命令セット拡張を行なうかを、今のAMDはロードマップとして持っていることになる。AMDの発表は、そのロードマップに従っていると推定される。

 こうしたビジョンが示すのは、AMDが命令セット拡張に非常に自信を持っているということだ。AMDは、64bit拡張の「AMD64」を事実上のスタンダードにし、結局はIntelがすり合わせるようになった。それまでは、命令セット拡張では、AMDは常にIntelの風下に置かれ、結局はIntelがスタンダード化した拡張を取り入れざるを得なかった。AMDが、初めてメジャーな命令セット拡張で、完全勝利を得たことになる。こうした経験をもとに、AMDは積極的に命令拡張でリードして行こうとしているように見える。

 こうして概観すると、AMDがCPUコア内部のマイクロアーキテクチャ以外の部分では、かなりラディカルな拡張を考えていることがよくわかる。逆を言えば、そのためにメインCPUコアの拡張は先送りにされているのかもしれない。

□関連記事
【1月23日】【海外】市場ごとに仕様を変えるAMDのCPU戦略
http://pc.watch.impress.co.jp/docs/2006/0123/kaigai234.htm
【1月19日】【海外】K8以降大きく変わったAMDのCPU開発サイクル
http://pc.watch.impress.co.jp/docs/2006/0119/kaigai233.htm

バックナンバー

(2006年1月30日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2006 Impress Watch Corporation, an Impress Group company. All rights reserved.