■後藤弘茂のWeekly海外ニュース■マルチコア/メニイコア時代のCPUアーキテクチャ |
CPUベンダーは、2個のCPUコアを1チップに統合するデュアルコアから、3個以上のコアを搭載するマルチコアへと、コアレベルの並列度の向上に走り始めた。Intelは、さらに、10~100個あるいはそれ以上の数のコアの搭載を目指すメニイコア(Many-Core)もターゲットに掲げている。
IntelのMulticore説明会でのプレゼンテーション |
こうした急激なマルチコアシフトを受けて、CPUコアアーキテクチャも変わりつつある。PCやサーバー向けのハイエンドCPUは、これまである程度似通った方法で高速化を追求してきた。ある程度の違いはあるものの、スーパーパイプライン、スーパースカラ、投機実行、out-of-order実行など、基本の仕組みはほとんどのCPUで共通している。だが、今後はマルチ/メニイコア化に向けて、CPUアーキテクチャは再び多様化の時代を迎える可能性がある。CPUコアのアーキテクチャ自体を変えないと、急激なコア数の拡大は見込めないからだ。
2005~6年に登場するPC向けデュアルコアCPUは、IntelとAMDともに、現在のCPUアーキテクチャのまま、コア数を2倍に増している。この手法なら、アーキテクチャ上のシングルスレッド性能はそのままで、マルチスレッド性能を上げて行くことができる。また、CPU設計が容易なことも利点だ。
問題は、パフォーマンス/ダイエリアとパフォーマンス/電力だ。
現在のデスクトップPC向けCPUコアはダイエリア(半導体チップ上の面積)が比較的大きい。微細化すれば小さくなって行くが、セオリー通りだとしても1プロセス世代の微細化で1/2づつにしかコアは小さくならない。そのため、デュアルコアやクアッドコアはともかく、10コア以上を近い時期に低コストのチップに載せることは難しい。
デスクトップPC向けCPUコアはパフォーマンス/TDP(Thermal Design Power:熱設計消費電力)とパフォーマンス/平均消費電力が非常に高いことも問題だ。悪いことに、現在はプロセスが微細化しても消費電力はあまり下がらない。そのため、現行のCPUコアアーキテクチャをマルチ/メニイコア世代でも継続する場合には、TDPが大きな壁になってしまう。130WのTDP枠の中で8コアを搭載しようとしたら、1つのコア当たりのTDPを10W台に納めなければならないからだ。回路技術やプロセス技術の改良で、この問題は緩和されて行くと見られるが、時間はかかる。
●コンプレックスかシンプルかの分かれ道
こうしたハードルを破るために、やらなければならないことは明白だ。それは、パフォーマンス/ダイエリアとパフォーマンス/TDPの高いCPUを作ることだ。そのため、今後は、次のようなオルタナティブへ進むと推測される。
(1) CPUアーキテクチャを、より効率が高くなる方向へと拡張する
この手法では、CPUコアのパフォーマンスを向上させながら、電力効率を上げることができる。つまり、シングルスレッド性能を上げながら、マルチコア化でマルチスレッド性能を上げることができる。以前紹介した、Intelが研究中のCPUアーキテクチャ「PARROT(Power AwaReness thRough selective dynamically Optimized Traces)」は、まさにこの好例だ。PARROTでは、39%の電力アップで45%の性能アップが見込めると論文では説明している。
この手法のトレードオフはダイサイズだ。PARROTのようなアーキテクチャでは、ダイ当たりのパフォーマンスは高くなるものの、ダイ自体は肥大してしまう。そのため、後述する2つの手法と比べると、CPUに搭載できるコア数は少なくなり、パフォーマンス/ダイエリアは相対的に低くなる可能性がある。マルチスレッド性能よりもシングルスレッド性能の向上をより重視した方法だ。その意味では、PC向けのアプローチと言える。
(2) よりシンプルなCPUアーキテクチャへと戻る
これはポラックの法則を逆利用する手法だ。CPUはポラックの法則で、2倍にダイを増やして1.4倍に性能を向上させてきた。だったら、ダイを1/2にしても性能は1/1.4にしか下がらないことになる。例えば、CPUアーキテクチャを2世代巻き戻せば、ダイは1/4になるが性能は1/2にとどまる原理となる。上の手法(1)と比べると、コアを小さくできる分、比較的簡単にダイ&電力効率のいいマルチコアCPUを作ることができる。
ポラックの法則によるパフォーマンス/ダイ面積 PDF版はこちら |
Sun Microsystemsが開発しているサーバーCPU「Niagara(ナイアガラ)」が、典型的な例だ。NiagaraではシングルイシューのシンプルなパイプラインのCPUコアを8つ束ねている。
Intelも、ローパワーCPUではシンプルアーキテクチャのCPUコアを研究しており、その成果はマルチコア/メニイコアCPUにも反映されるという。IntelのSystems Technology Labを統括するJustin R. Rattner(ジャスティン・R・ラトナー)氏(Senior Fellow, Corporate Technology Group, Senior Director, Systems Technology Lab)は次のように語る。
「ローパワープロセッサの研究には、二次効果がある。それは、ローパワーの研究の成果が、コアの効率の向上に結びついていることだ。我々は、大きなプロセッサコアのパフォーマンスのかなりの部分を維持しながら、プロセッサコアをドラマティックに小さくする設計を学びつつある」
このアプローチのトレードオフはシングルスレッド性能だ。CPUコア自体のパフォーマンスは比較的低いため、どうしてもシングルスレッド性能は落ちてしまう。よりマルチスレッド性能に寄った方法だ。エッジサーバーのようなシステムに向いたアプローチだと言われている。
ちなみに、NiagaraのCPUコアは、さらにマルチスレッドに寄ったアーキテクチャとなっている。Niagaraでは、各CPUコアが4WAYのマルチスレッド処理ができるようになっており、見かけ上は最大32スレッドを同時に走らせることができる。つまり、単純にCPUアーキテクチャを巻き戻すのではなく、マルチスレッドに特化したアーキテクチャ拡張を行なっているわけだ。
●特定用途に特化したCPUコアを作る
(3) 特定用途向け機能を強化したCPUコアでCPUを構成する
この手法は、CPUに今後要求される処理が変わってくることを前提としている。マルチメディアや大規模データの解析、シミュレーションといった処理が、パフォーマンスが求められるエリアだとすれば、それに合わせたCPUコアを用意すればいいことになる。
最も合理的な解は、浮動小数点系のSIMD(Single Instruction, Multiple Data)型のショートベクタ演算ユニットで、MIMD(Multiple Instruction, Multiple Data)型演算にも対応することになるだろうか。この場合も、(2)と同様にCPUコア自体はシンプルな構成にして、マルチスレッド性能を追求することになる。
マルチコアに向けたCPUアーキテクチャの方向性 PDF版はこちら |
ソニー・コンピュータエンタテインメント(SCEI)とIBM、東芝で開発しているCellプロセッサがこのアプローチの例だと思われる。また、IBMのスーパーコンピュータ向けCPU「BlueGene/L」プロセッサも、こうした例だと考えていいかもしれない。BlueGene/Lでは、PowerPC 440系CPUコアに2個の浮動小数点演算ユニットを搭載し、64bit幅のSIMD/MIMD演算をできるようにしている。
こうした特定用途に特化したCPUコアの場合は、用途に合ったプログラムについてはパフォーマンス/電力&ダイが非常に高くなる。問題点は、(2)と同様に、シングルスレッドの性能が落ちてしまう点だ。スーパーコンピュータなどには合ったアプローチかもしれない。
ただし、シングルスレッド性能は、CPUに汎用性の高い従来型のスーパースカラCPUコアも混載すれば、この問題は解決できる。スカラ処理部分の多い従来型のプログラムは汎用CPUコアで実行し、ベクタ系演算はベクタに特化したCPUコアで実行すれば両対応ができる。Cellプロセッサは、おそらく比較的大きな汎用CPUコアが1個と、SIMD/MIMDのベクタ演算に特化したストリーミングCPUコア8個の組み合わせになると推測される。
この手のアプローチでは、こうした非対称な組み合わせの方が一般的になるかもしれない。もっとも、その場合には、OSとアプリケーション側の対応が必要になる。ソフトウェア側が、明示的にスレッドを振り分ける必要がある。
このように、今後のCPUは、上に挙げた3方向にきっちりと分かれるのではなく、Cellのように複数の手法を組み合わせた解も多くなると推測される。Intelのメニイコアも、おそらくは、そうした複合アプローチの方向にある。
Intelが示した図を見る限り、メニイコアとは従来タイプまたは(1)のタイプの大きなスカラCPUコアと、(2)か(3)のタイプの小さなCPUコアの組み合わせになると見られる。つまり、対称型のコア構成ではなく、異種類コアの混載という方法を取るわけだ。確かに、これなら10年程度で数十コアから100コアのメニイコアを実現できる。
興味深いのは、同じPC/サーバー市場にいながら、ここでもまたIntelとAMDで意見が分かれることだ。Intelが数十コアや100コア以上を搭載するメニイコアに向かって走るのに対して、AMDは2~8コアのマルチコアが当面は適切というスタンスを取る。両社の視点が分かれるのは、“アムダールの法則”に対する見解が分かれるからだ。
□関連記事
【12月24日】【海外】ポラックの法則に破れてキャンセルされた「Tejas」
http://pc.watch.impress.co.jp/docs/2004/1224/kaigai144.htm
【12月20日】【海外】65nmプロセスで製造されるPS3メディアプロセッサ
http://pc.watch.impress.co.jp/docs/2004/1220/kaigai142.htm
【12月15日】【海外】なぜPS3のメディアプロセッサはCellではなくNVIDIAなのか
http://pc.watch.impress.co.jp/docs/2004/1215/kaigai141.htm
【11月30日】【海外】5W以下のローパワープロセッサの開発へ向かうIntel
http://pc.watch.impress.co.jp/docs/2004/1130/kaigai136.htm
(2004年12月28日)
[Reported by 後藤 弘茂(Hiroshige Goto)]