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

モバイルSoCにおけるダークシリコンの呪縛



●なぜARMやPowerVRがヘテロジニアスコンピューティングなのか

 ARMを初めとするモバイル向けのプロセッサIPベンダーは、なぜヘテロジニアスコンピューティングへと急旋回し始めたのか。ARMやImagination Technologies(PowerVR)、Texas Instrumentsなど各社は、AMDのヘテロジニアスコンピューティングフレームワーク「HSA(Heterogeneous System Architecture)」に乗ることを先月発表した。彼らがヘテロジニアスコンピューティングに向かうのは、モバイルSOC(System on a Chip)の前に、「ダークシリコン」問題が立ちふさがっているからだ。

AMD Fusion Developer Summit(AFDS)の壇上に集まったARMやImagination TechnologiesなどHSA賛同企業の顔ぶれ

 ダークシリコンとは、消費電力の制約から、シリコンチップ上で電力を供給してオンにできないエリアのことを示す。実質的にCPUと同時にオンにできないエリアであり、何もしなければ使うことができないムダなエリアとなってしまう。この先、プロセスの微細化が進むと、ダークシリコンエリアがダイ(半導体本体)上に生じ、さらに微細化とともにその面積が増えて行く。

 理由は、チップ上の回路の電力消費が、プロセスの微細化ほどスケールダウンしないためだ。微細化とともにCPUコアが小さくなって行っても、電力はそれに見合うほど小さくならない。そのために、チップに載せることができるCPUコア数が、段々と減って行く。これがダークシリコン問題で、この問題を回避するためにヘテロジニアスコンピューティングに向かわなければならない状況になっている。少なくともARMはそう説明している。

 ダークシリコンという言葉は、最近の半導体業界の流行語の1つだ。宇宙物理学の「暗黒物質(ダークマター)」を連想させるが、ダークなのは電力面での話だ。ここ1年ほどは、プロセッサや半導体の学会や、プロセッサベンダーのカンファレンスに参加すると、必ずこの用語を耳にした。NVIDIAの設計者も、雑談の際に、ダークリシコンを何度も口にしていた。この言葉が、プロセッサ関係者の関心の的になっていることが分かる。しかし、言葉として流行り始めたのは割と最近だ。

 ARMは数年前からダークシリコンという用語を使っている。2010年のプロセッサカンファレンス「Hot Chips」では、University of California San Diegoが「GreenDroid」チップを発表した際にこの用語を使った。広く使われるようになったのは、昨年(2011年)のコンピュータアーキテクチャのシンポジウム「International Symposium on Computer Architecture (ISCA' 11)」に「Dark Silicon and the End of Multicore Scaling」と題した論文が出てからだろう。今年(2012年)のISCA12では、この問題を扱ったワークショップ「Dark Silicon Workshop 2012」が併設されていた。ワークショップのキックオフの講演は、GreenDroidの研究者が行なっている。

 ISCAの論文のタイトルからわかるように、ダークシリコンは、マルチコアのスケーリングの前に立ちふさがる。つまり、ダークシリコン問題によって、マルチコアでCPUコア数を増やすことができなくなる。少なくとも対称型のマルチコア時代の終焉をもたらす。パフォーマンスPCとサーバー向けCPUは、コア数をどんどん増やして来たが、その時代が終わろうとしている。そして、モバイルSoCは、一足先に、その問題に直面する。

●CMOSスケーリングの鈍化が産んだダークシリコン

 ダークシリコン問題の大元は、ムーアの法則とCMOSスケーリングの乖離にある。ムーアの法則では、12~18カ月で同じ面積に載せられる半導体のデバイス集積度が2倍になる。実際には、過去十数年間のCMOSは、2年毎にプロセスノードがリニアに0.7倍にスケールダウンして集積度が2倍になるペースで推移している。そして、ムーアの法則とともに、CMOSスケーリングで、デバイスのサイズだけでなく、駆動電圧やゲート酸化膜厚といった要素もスケールダウンしてきた。下のスライドは、2006年のHot ChipsでのIBMのキーノートスピーチのもので、左の図が伝統的スケーリングを示している。

これまでのCMOSのスケーリング

 このCMOSスケーリングは、DRAMの発明者として有名なIBMのRobert H. Dennard氏が提唱し始めたため、「Dennardスケーリング」とも呼ばれる。

 従来のCMOSスケーリング(Dennardスケーリング)では、トランジスタが微細化し、ゲート長が元の70%に短くなると、駆動電圧(Vdd)も70%へと下がり、キャパシタンスも70%に減少し、ゲート酸化膜厚(Oxide Thickness:Tox)も同様に薄くなった。ゲート酸化膜が薄くなると,トランジスタのスイッチングが速くなり、トランジスタが1.4倍の高速動作が可能になる。

 伝統的CMOSスケーリングでは、動作周波数が1.4倍になることで増える電力は、キャパシタンスが70%に減ることで相殺できる。そして、面積当たりのトランジスタ数が2倍増することで増える電力は、電圧が70%になることで相殺できる。電力は電圧の2乗に比例するからだ。そのため、電力を増やさずに、トランジスタ数を2倍に、周波数を1.4倍にする、フリーランチを享受できた。下のDark Silicon Workshop 2012の「Is Dark Silicon Useful?」のスライドは、その関係をうまく図式化している。


 しかし、130nm以降は、実際のVddが伝統的スケーリングから乖離し始め、続いてToxも乖離した。つまり、ゲート酸化膜厚は薄くならなくなり、電圧は下がらなくなった。言い換えると、トランジスタの高速化と、消費電力の低減がぐっと鈍化したことになる。その結果、微細化によってトランジスタ密度が高まると、面積当たりの電力が上がるようになってしまった。IBMは2004年頃からこの現象を伝統的CMOSスケーリングの終焉として、今後のチップ設計の大きな壁になると説明してきた。


●プロセスが微細化するにつれて増えるダークシリコン

 伝統的CMOSスケーリングの終焉は、現在、プロセッサの「稼働率の壁(Utilization Wall)」となり始めている。これがダークシリコンの問題だ。下は、UCSDのHot Chips 22でのGreenDroidのプレゼンテーションだ。

稼働率の壁

 例えば、電圧が全く下がらないと理論上どうなるのか。下のスライドがそれを示している。65nmで4コアを載せることができたチップ面積には、32nmに微細化すると、理論上は同じアーキテクチャのプロセッサを16コア載せることができる。ところが、65nmで4コア時と同じ電力を保とうとすると、16コアのうち4コアをアクティブにしたら、残りの12コア分のエリアはダークにしなければならなくなる。稼働率は1/4だ。あるいは、8コアを低い周波数で動作させることで、電力を抑えたディム状態にして、稼働率を1/2に上げるしかない。


 これと、ほぼ同じことを、ARMも昨年のAMDのカンファレンス「AMD Fusion Developer Summit(AFDS)」のキーノートスピーチで言っている。下はその時のスライドで、下の列のチップ(四角い部分)の暗いエリアがダークシリコンだ。プロセスが微細化するとともに、ダークシリコンの部分が増えて行く。

AMD Fusion Developer Summitのキーノートより
電力のスケーリングの問題がシステムの制約に

 昨年のISCAのDark Silicon and the End of Multicore Scalingは、この問題を、ITRSのロードマップの数値などをベースに、実際のプロセッサの性能効率からモデル化して推測している。それによると、22nmプロセスでも21%がダークシリコンになってしまうという。その結果、パフォーマンスは、5プロセス世代後の8nmプロセスでも、45nmプロセス時の7.9倍にしか向上しないと予測している。ARMは、「人によって数字の違いがあっても、ダークシリコン面積が増えて行くことが半導体業界の共通認識だ」と説明している。

●ターボモードもダークシリコン問題から

 CPUコアをフルに稼働させると、消費電力が排熱枠(TDP:Thermal Design Power:熱設計消費電力)を越えてしまう。電力を供給しないダークシリコンまたは、電力消費が少ないディムシリコン部分を増やさなければプロセッサが成り立たない。この問題は、現在のプロセッサに共通した問題となっている。

 IntelやAMDのPC&サーバー向けCPUでは、この問題にどうやって対処しているのか。対応作の1つは、ターボモードだ。動作周波数をプロセス世代毎に引き上げるではなく、排熱枠に余裕がある時だけ、各CPUコアの周波数を個別に上げるようにする。本来なら、全コアを4GHzで動作させるはずだった世代で、ベース周波数を3.4GHzにしておいて、ターボ時にだけ4GHzに引き上げる。トランジスタのディレイの短縮から本来期待される動作周波数より、ベース周波数を下げることで電力枠に収めている。PCの負荷の場合は、全てのコアがフル稼働するチャンスはそれほど多くないため、これで十分に成り立つ。

 この手法では、実質的には動作周波数をフラット(またはフラットに近く)に抑えることで電力を抑えている。しかし、メーカーは、その逆に「ターボで周波数を上げている」と宣伝することで、ポジティブなイメージに転化している。見方によっては、マーケティングのマジックだ。もちろん、これだけでは、根本解決にはなっていないので、IntelもAMDも、ヘテロジニアスコンピューティングへと向かっている。

●ダークシリコンをどうやって埋めるかが課題

 プロセス微細化につれて、増えて行くダークシリコン。この問題への対処策として、まず、ダークシリコン部分を使わずに、チップを小さくするという方法がある。しかし、I/Oパッドエリアはスケールダウンしないし、電力密度が上がるという問題もある。実際には、モバイルSoC(System on a Chip)では、電力密度が大きな足かせで、この方法は絶対に取ることができない。

 別なアプローチとして、チップの動作周波数を下げるという方法もある。NVIDIAのKeplerが採ったのはこの方法だ。しかし、各プロセッサベンダーが最も力を入れているのはヘテロジニアスマルチコア化の道だ。シリアルタスクに最適化した大型のCPUコアと、パラレルタスクに最適化したGPUのような小型ハイスループットコアを組み合わせる。

 ISCA'11での論文「Dark Silicon and the End of Multicore Scaling」では、この手法をDynamic Multicoreと呼んでいた。これは、CPUコアとGPUコアはそれぞれが同時にピーク負荷になるようなワークロードが少ないという前提に立っている。CPUコアがフルに動作している時は、GPUコアをシャットダウンし、逆にGPUコアが高負荷の時はCPUコアをシャットダウンする。実際には、動的に周波数と電圧を制御すれば、柔軟な負荷分散も可能になる。

 これは、見方によってはダークシリコン部分をGPUコアで埋めることだ。実際、現在のダークシリコンについての議論は、ダークシリコン部分をいかに上手に使うかというポイントに移っている。問題提起は終わって、ダークシリコンの活かし方へと進んだ。電力密度の問題で、チップサイズを小さくできない以上、ダークシリコンを使うしかないからだ。

 ちなみに、GPUコアの先には、さらに特定用途向けの回路という道がある。特定用途や特定ロジック向けの回路をハードワイヤード化すれば、電力効率がさらに高まる。特定アクセラレータでダークシリコンを埋めることで、より効率を上げるという。GreenDroidがそうしたアーキテクチャを提案している。

ダークシリコンの対策
特定用途回路を実装

 GPUアーキテクチャなら、任天堂の3DSに採用されたDMPのシェーダアクセラレータを、シェーダプロセッサと組み合わせれば、まさにこのアプローチになる。最短距離にいるのはDMPかも知れない。

●ヘテロジニアスコンピューティングへと急ぐ必要があるARM

 ダークシリコン問題とヘテロジニアスマルチコアの関係を簡単に図式化したのが下の図だ。ポイントはダークシリコン部分をどう埋めるかという点にある。現状での解決策は、ヘテロジニアス構成にあると考えている人が多く、多くのメーカーがその方向に向かっている。

ダークシリコン問題とヘテロジニアスマルチコア

 ARMは、ダークシリコン部分を、これまでと違う使い方をしなければならず、その解はヘテロジニアスコンピューティングだと、明確に結論づけている。モバイルSoCは、PC向けプロセッサと比べると、TDP(Thermal Design Power:熱設計消費電力)の枠が低く、電力密度も大きな問題になるため、切羽詰まっている。AMDと連携して、HSA(Heterogeneous System Architecture)のソフトウェアスタックに対応しようとしているのは、ヘテロジニアスコンピューティングを速く立ち上げる必要があるからだ。

ARMの考える対策
GPUが答えの1つ
GPUの課題

 NVIDIAがTegraのGPUコアを汎用のCUDAコアにしようとしているのも同じ理由だ。Tegra3ではクアッドコア(物理的には4コア)の構成を取ったが、今後は、CUDAコアを載せて、そちらを増やす方向へと向かう。これも、ダークシリコン問題が迫っているからだと考えられる。CPUやGPUは、今、ダークシリコン問題を中心に動いている。