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

謎が多いK10アーキテクチャの方向性




●今後2~3世代に渡ってCPUコア数を倍々に

AMDのイノベーションプライオリティリスト
(別ウインドウで開きます)
PDF版はこちら
 AMDの次世代CPUアーキテクチャ「K9」はキャンセルになり、「K10」も最初の予想より後ろへずれ込んでいる。CPUコアのエンハンスについては、AMDが2005年11月のAnalyst Dayで示した、2008年までのイノベーションプライオリティリスト(開発重要度一覧)にも出てこない状況だ。そのため、AMDのCPUコアアーキテクチャの動向はわかりにくい。それだけ、まだK10が揺れているのかもしれない。

 現在のCPU業界の技術トレンドには、いくつかの重要なポイントがある。

 もっとも議論となっているのは、マルチスレッド性能を重視するか、シングルスレッド性能を重視するか。マルチスレッド性能を重視するなら、コアはあまり複雑にせずに、ダイ(半導体本体)エリアを小さく消費電力を小さくした方がいい。コアをより複雑または高周波数にすると、ダイや消費電力が大きくなり、マルチコア化のスピードが鈍るが、シングルスレッド性能は上がる。AMDはどんな戦略を取ろうとしているのか。

 まず、AMDは、CPUのシングルコアパフォーマンスの向上がスローダウンしたことは明瞭に認めている。Dirk Meyer(ダーク・メイヤー)氏(President & COO, Microprocessor Solutions Sector)が、昨年6月の「VIA Technology Forum(VTF)」のキーノートスピーチで使ったスライドでは、AMDはK9以降は動作周波数も引き上げてCPUコアパフォーマンスを上げようとしていた形跡がある。しかし、今ではAMDは2003年以前に考えていたようなペースでは、シングルコア/シングルスレッド性能は上げるつもりがない。

VTFで使用されたスライド
(別ウインドウで開きます)
PDF版はこちら
 一方、マルチコア化については、AMDは過去2年の数回のカンファレンスでビジョンを示している。

 「マルチコアでは、2、4、8、16(コア)までを推測できる。業界は、65nmプロセスを立ち上げており、45nmや32nmテクノロジについても、メドが立っている。そのため、少なくとも2~3(プロセス)テクノロジ世代に渡って、プロセッサコアを倍々にできると、容易に予測できる」とMeyer氏は、VTFで語っていた。つまり、3世代に渡ってコアをシュリンク&倍増させていくことで、技術上は16コアまでは簡単に増やす目算があると言っているわけだ。AMDも比重がマルチコア化にあることは間違いがない。この部分だけを見ると、AMDがCPUコアのパフォーマンス拡張はストップさせて、コア数の増加やコア以外の部分の拡張だけに注力しているように見える。

●マルチスレッドとシングルスレッドのバランス

スレッド並列性の有効さ
(別ウインドウで開きます)
PDF版はこちら
 しかし、注意深く見ると、そうではないことがわかる。まず、どこまでのスレッド並列性が有効かについては、AMDは常に疑問を呈している。AMDが2004年11月のAnalyst Dayで当時のCTOだったFred Weber(フレッド・ウエバー)氏が使い、VTFではMeyer氏も見せたスライドを見てみよう。

 PCは1個のボールを1本のバットで打つピッチング方式、サーバー&ワークステーションは複数ラインを同時に耕す耕耘機方式、HPC(High Performance Computing)は多数のアリが同時に働くコロニー方式という例えだ。つまり、現状のインストールドベースのソフトウェアだと、PCは主に1個のコアから、サーバー&ワークステーションは2~8コア程度からしか恩恵を受けられないと説明している。ちなみにAMDは、特定コードをアクセラレートするヘテロジニアスマルチコアの構想も持っているが、ここでは単純化してマルチコアとして考えることにする。

 ポイントは、いつになればPCレベルでもTLPがより効くようになるのかだが、AMDはこれについて慎重な見方をしている。2005年6月のAnalyst Dayでは、AMDのChuck Moore氏(Senior AMD Fellow)が、マルチスレッド化されたパラレルアプリケーションを「コンピュータ科学の聖杯(なかなか見つからない探求の目標)」と位置づけた。

 ここがボトルネックなのは誰の目にも明らかで、どうやればパラレルアプリケーションを容易に開発できるようになるかが、マルチコアCPUでのTLPの実効率向上の大きなカギとなる。最大の問題は、まだ回答のメドすら立っていないこと。ここで、楽観的なビジョンを示さないあたりに、AMDの姿勢がよく現れている。これは、マルチスレッド化に対して楽観的な見通しを語る幹部が多いIntelと対照的だ(ただし、Intelはそう言いながらもCPUコアのパフォーマンス拡張は続ける)。

 そして、6月のAnalyst Dayでは、AMDは「顧客は、長期的にシングルスレッドパフォーマンスの向上にも価値を見いだし続けるだろう」と指摘。適切なレートでの移行を理解することが重要だと結論づけ、市場毎に複数の異なるCPUコア設計を用いてゆくだろうと説明している。つまり、マルチコア化を促進するものの、高パフォーマンスコアの開発も継続し、異なるタイプのコアを平行して提供することも辞さないと言っているわけだ。

パラレリズムに対するAMDの見解
(別ウインドウで開きます)
PDF版は3枚分まとめてこちら

 マルチスレッド化に対するAMDのこの姿勢は、過去2年、ほぼ一貫している。こうしたAMDの発言を見る限り、現在開発中のK10については、シングルコア/シングルスレッドパフォーマンスについても、かなりの向上を目指すことはまず間違いがない。つまり、プロセス微細化で増えるトランジスタは、コア数を増やすことに使うだけでなく、コアをよりリッチにする方向にも使うわけだ。

●K10アーキテクチャに何が入っていないか

 今のところK10アーキテクチャに何が含まれているのかは明確ではない。しかし、K10に何が採用されていないかだけは、ある程度わかっている。それは、一時AMDのアーキテクトだったAndy Glew氏のWeb上の履歴のおかげだ。Glew氏は、以前、K10のために提案したものの、AMDに拒否されてしまった技術をリストアップしていた。Glew氏が提案したのは、かなり尖ったアーキテクチャだった。

 提案は、CPUをマルチスレッド&マルチクラスタの構成にし、マイクロアーキテクチャの全レベルでマルチレベル化、さらにさまざまなマルチスレッディングテクニックを実装するというものだったようだ。例えば、スケジューラやインストラクションウインドウ、ストアバッファ、レジスタファイル、ブランチプレディクタなどをマルチレベルにする。加えて、投機マルチスレッディング(SpMT:Speculative Multithreading)、非明示的マルチスレッディング(IMT:Implicit Multithreading)、スキップアヘッドマルチスレッディング(SkMT:Skipahead Multithreading)といった技法を持ち込む。

 Glew氏と同様に元Intelのアーキテクト(P6, Willamette)だったRobert P. Colwell氏は、同僚だったGlew氏について“アイデアの源泉”と表現している。この提案リストを見ると、その理由がよくわかる。Glew氏について触れられているのは、Colwell氏が最近出版した自著『The Pentium Chronicles: The People, Passion, and Politics Behind Intel's Landmark Chips』(2005/12, Wiley-IEEE Computer Society Press)の中。5人で構成されたP6(Pentium Pro)アーキテクトチームでは、Colwell氏がSenior Engineer、Glew氏がJunior Engineerでアイデア出し係だったという。

 Glew氏の提案には、聞き慣れない技術もあるが、Intelやそれ以外のCPU研究者の論文などで類似と見られる技術もある。例えば、投機マルチスレッディングや自動スレッド生成は、Intelが数年前からさかんに提唱し、研究者が論文も出している。投機マルチスレッディングは、シングルスレッドのプログラムを、マルチスレッドに分解して投機的に実行することで並列化しようというアプローチだ。スケジューリングの2階層化のアイデアは、Intelが研究している「Power AwaReness thRough selective dynamically Optimized Traces(PARROT)」アーキテクチャでも述べられている。PARROTの例は、再スケジューリングすることで、さらに命令レベルの並列化を高めるアプローチだ。

 要は、まだ商用プロセッサでは取り入れられておらず、研究レベルで知られているような新技術を、ガンガン入れたCPUアーキテクチャを提案したわけだ。これは、いかにもIntelのP6/NetBurstチーム出身らしい提案に見える。

●K10のためのシミュレーションツール

 AMDは、これらの手法を、K10で取り入れなかったと見られるが、その理由はわからない。可能性として考えやすいのは、AMDがそこまでラディカルなアプローチは望まなかったことだ。スケジューリングやマルチスレッディングをある程度以上に複雑化することは、得策ではないと考えたのかもしれない。

 コアが肥大化するとマルチコア化のペースが落ち、コアが複雑化すると開発期間が長くなり、高クロック化(クリティカルパスつぶし)も難しくなる。そう考えると、AMDが、K10に、過剰なアイデアを盛り込むのを避けるのは納得ができる。おそらく、検証もある程度行ない、ダイの大きさや電力とのトレードオフも検討したはずだ。

 実際、Glew氏は、投機マルチスレッディングのシミュレーションについても触れていた。また、Glew氏は、AMD在籍時に、シミュレータ体系の定義にも協力したようだ。これは、インストラクションとマイクロインストラクションセットのセマンティックを、マイクロアーキテクチャのディテールから明確に区分する方法論だとされていた。

 最新CPUでは、アーキテクチャを検証するためのシミュレータが非常に重要になる。The Pentium Chroniclesによると、IntelのP6開発の際には、まずツールを作るところから開発をスタートさせたという。P6では、Colwell氏らが「DFA(Data Flow Analyzer)」と呼ぶツールを開発し、データフローをシミュレートして並列性を検証し開発を成功させた。ちなみに、AMDも、10年ほど前に、AMDのアーキテクトで当時ディレクタだったMike Johnson氏(著書「スーパースカラ・プロセッサ」でも有名)が来日した際に、シミュレータツールを公開したことがある。

 Glew氏はAMD時代の職歴の中で、Intelの「Willy」シミュレータを超える技法にも触れている。The Pentium Chroniclesによると、WillyはIntelのWillamette(Pentium 4)チームのMike Haretel氏が開発したシミュレータで、Willamette開発のツールとして使われたという。つまり、K10開発の要(かなめ)となるシミュレータのベース技術に、Glew氏は経験を反映させたと見られる。

 では、ラディカルなアーキテクチャは採用しなかったK10は、どんなアプローチを取るのだろう。シングルコアパフォーマンスの向上を望むとすれば、それなりにかなりの拡張を行なうはずだ。少なくとも、CPUコアの拡張を小幅に留めたK7→K8よりは大きなステップになるだろう。

□関連記事
【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年2月2日)

[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.