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

ポラックの法則を破るためのマルチコア




●遅すぎたIntelとCPU業界のターン

2001年ISSCCでのGelsinger氏のpresentationでのデュアルコアの説明

 「Intelも業界も、どちらも、もっと早くターンするべきだった」、「それについてはがっかりしている」

 こう語るのはIntelのPatrick P. Gelsinger(パット・P・ゲルシンガー)CTO兼上級副社長(CTO & Senior Vice President)。同氏は、3年半前のISSCCのキーノートスピーチで、近い将来にCPUの消費電力が急増するため、プロセス技術、回路設計技術、CPUアーキテクチャなどさまざまなレベルでの取り組みが必要になると予言した。“もっと速くターンするべきだった”というのは、この問題に対するIntelと業界の対応についてのコメントだ。

 Intel CPUについて言うと、この“ターン”が一番遅れているのはCPUアーキテクチャの開発だ。IntelやAMDなどCPUベンダーの多くは、中期的にCPUコアアーキテクチャを変革する必要がある。それは、CPU進化の方向性が、電力効率を高めるためにマルチコア(デュアルコアを含む)化に向かったためだ。

 IntelとAMDが、それぞれもともと進めていた次世代CPUコアの開発をキャンセルしたのは偶然ではない。Intelは2005~6年に投入する予定だった「Nehalem(ネハーレン)」をキャンセル、AMDも同時期に予定していた「K9」プロジェクトをやめている。ちなみに、AMDは「K9(英語では犬種canineと同じ発音)という名前が悪かった」(Jonathan Seckler氏、Senior Product Manager, Microprocessor Business Unit, Computation Products Group)と冗談めかしているが、根本の理由はCPU開発の方向性がマルチコアに変わったことにあるという。

 一定の熱枠(Thermal Envelop)に複数のCPUコアを納めるためには、各CPUコアのTDP(Thermal Design Power:熱設計消費電力)を抑え、パフォーマンス/電力やパフォーマンス/クロックを高める必要がある。つまり、パワーエフィシェント(効率的)なCPUコア開発がカギとなる。CPUメーカーはその方向へ進んでおり、ここへ来てパワーエフィシェントな次世代CPUアーキテクチャの一端が見え始めた。

 例えば、Intelは「PARROT(Power AwaReness thRough selective dynamically Optimized Traces)」と呼ばれる非常に高効率の新CPUアーキテクチャの研究発表を学会やIntel Developer Forum(IDF)で行なっている。PARROTは、CPUのパフォーマンスを向上させながら消費電力を下げることを可能にするアーキテクチャで、こうしたアプローチがIntelの今後のCPUに取り入れられて行くと見られる。また、AMDも、同様に効率を高めることに焦点を置いたCPUアーキテクチャ(K10?)を開発していると推測される。

●伝統的なスケーリングの終焉

Processor Forum 04でのIBMのpresentation

 現在のCPUが行き詰まっている原因は、プロセスの微細化によるスケーリングが効きにくくなっているからだ。IBMのBernard Meyerson氏(VP and Chief Technologist, System and Technology Group)は、今年10月のProcessor Forumで、「The end of classical scaling(伝統的なスケーリングの終焉)」という言葉でこの問題を指摘した。

 すなわち、従来はムーアの法則に沿ってプロセスが微細化すると、(1)トランジスタが高速になり、(2)トランジスタが小型化してコストが安くなり、(3)消費電力が低くなり、(4)より多くの機能をチップに搭載できるようになった。ところが、トランジスタが小さくなった結果、構成要素が原子レベルにまで微細化してしまった。つまり、これ以上小さくできない限界に近づいてしまったわけだ。

 例えば、ゲート絶縁膜が現在のように6原子分程度の厚みにまで薄くなると、原子1個分のばらつき(厚みの増減)は33%のばらつきになってしまう。また、リーク(漏れ)電流も急増してしまう。そのため、絶縁膜厚や電源電圧をスケールダウンすることが難しくなりつつある。

 もっとも、Meyerson氏はこうした危機は過去にも発生したことがあると指摘した。それは、バイポーラプロセスで製造していたメインフレームプロセッサで、'80年代に同様の消費電力の爆発的な増大の危機を迎えたという。しかし、この時は、より消費電力の少ないCMOSプロセスへと移行することで、問題を解決できた。今回の問題がより解決困難なのは、その時のような抜本的な代替技術が見あたらないためだ。そのため、トランジスタ構造の改良や材料の改良、CPUアーキテクチャの改良といった様々な側面でのイノベーションが必要となる。


●ポラックの法則で非効率にCPU性能を向上

2001年ISSCCでのGelsinger氏のpresentationでのポラックの法則の説明

 CPUアーキテクチャの改革が必要なのは、これまでのスーパースカラCPUが非常に低い効率でしかパフォーマンスを向上させてこなかったからだ。従来のCPUアーキテクチャのアプローチの場合、CPUのトランジスタ数を増やしてもリニアには性能が向上しない。

 Intelによると、CPUのダイまたはトランジスタ数を2倍に増やしても、性能は約1.4倍程度にしか伸びないとう経験則があるという。つまり、「CPUの性能向上は、ダイサイズ(トランジスタ)の増加の平方根分にしかならない」わけだ。この経験則を発見したのは、IntelのMicroprocessor Research Labs(MRL)のディレクタを務めていたフレッド・ポラック(Fred Pollack)氏で、そのため、Gelsinger氏は“ポラックの法則”と命名した。

 ポラックの法則では、CPUアーキテクチャを一新してトランジスタ数を2倍に増やしても、性能は2の平方根である約1.4倍にしか伸びない。しかし、ダイ=トランジスタ数が2倍になれば、同じプロセス技術なら消費電力も2倍になる。つまり、これまでのCPUは、性能を1.4倍伸ばすために、消費電力を2倍に引き上げてきたわけだ。非常に非効率なアプローチで性能を伸ばしてきたことになる。

 それでもこの非効率性がこれまで問題にならなかったのは、プロセスのスケーリングに助けられていたからだ。半導体業界は、0.35μm以降は、プロセスルール1世代ごとにトランジスタのゲート長などを“0.7倍(0.7X)”かそれ以下にスケールしてきた。トランジスタ面積は“0.7X”の二乗になるので、0.7×0.7≒0.5Xとなる。つまり、トランジスタを倍増させても、同じダイサイズ(半導体本体の面積)とコストにできるわけだ。

 アクティブ消費電力もかつては同様に0.7Xの法則が効いた。消費電力は、キャパシタンス×電圧の二乗×動作周波数に比例する。かつては、キャパシタンスも電圧も0.7Xずつ下がったため、同じ周波数なら、消費電力は(同じ周波数で同じトランジスタ数なら)0.33Xに下がった。動作周波数はゲート遅延が0.7Xかそれ以下になるので、1.4~1.5Xに向上するが、それでも消費電力は0.5Xになる。だから、トランジスタ数を2Xに増やしても、問題がなかったわけだ。

◎同じアーキテクチャで1世代プロセスを縮小
トランジスタ数1X
ダイサイズ0.5X
周波数1.5X
電圧0.7X
消費電力0.5X
パフォーマンス1.5X
電力密度1X
パフォーマンス/電力2.8X
◎プロセス縮小とともに新アーキテクチャを導入
トランジスタ数2X
ダイサイズ1X
周波数1.5X
消費電力1X
電圧0.7X
パフォーマンス2.2X(ポラックの法則に依った場合)
電力密度1X
パフォーマンス/電力2X(ポラックの法則に依った場合)

●0.13μm以降の世代で電力効率が一気に悪化

IDFでのIntelの説明New Paradigms and Metrics for Scalability

 ところが、すでに述べたように現在のCMOSプロセスは微細化の限界に近づき、プロセスのスケーリングの歯車が狂い始めた。まず、現在はプロセス世代毎に電圧は0.9Xしか下がらなくなっている。さらに、遅延時間の縮小も0.7Xから0.75Xへと鈍化しつつある。その結果、新アーキテクチャを取った場合には、ダイサイズは同じに止めることはできても、消費電力は1.5倍に上がってしまう。そして、パフォーマンス/電力は1.2Xにまでスケールアップが落ちてしまう。

 つまり、従来の手法でCPUのパフォーマンスを伸ばそうとすると、パフォーマンス/電力の伸びが極度に低くなってしまうわけだ。パフォーマンス/電力が1.2Xということは、同じ電力枠の中では1.2倍にしか性能を向上させられないことを意味する。それでは、新アーキテクチャを投入する意味が薄くなってしまう。

 こうした状況であるため、一定の電力枠の中で性能を根本から伸ばそうとすると、ポラックの法則を破る必要が出てきた。その切り札がマルチコアだったというわけだ。


◎同じアーキテクチャで1世代プロセスを縮小
トランジスタ数1X
ダイサイズ0.5X
周波数1.35X
電圧0.9X
消費電力0.75X
パフォーマンス1.5X
電力密度1X
パフォーマンス/電力1.75X
◎プロセス縮小とともに新アーキテクチャを導入
トランジスタ数2X
ダイサイズ1X
周波数1.35X
電圧0.9X
消費電力1.5X
パフォーマンス2.2X
電力密度1X
パフォーマンス/電力1.2X

●マルチコアがポラックの法則を破る

 これまでのCPUの性能向上の効率が悪かった最大の理由は、並列実行に壁があったためだ。現在の手法で、CPU内部でリアルタイムで命令スケジューリングを行なっても、並列性はなかなか高まらない。今のスーパースカラCPUは、IPC(instruction per cycle)を高めるために、膨大な命令スケジューリング機構を搭載している。実行ユニット以外の回路のために、どんどん肥大化してきたわけだ。

 だが、デュアルコアならポラックの法則の壁を破ることができる。2つのCPUコアが、依存性のない2つのスレッドを並列に実行するなら、理論上はピークで2倍の並列度を実現できる。つまり、ダイサイズを2倍にしても、理論上の性能は2倍近くになる。そうすると、理論上の各パラメータは下のようになる。

◎プロセス縮小とともにデュアルコアを導入
トランジスタ数2X
ダイサイズ1X
周波数1.35X
電圧0.9X
消費電力1.5X
パフォーマンス2.7X
電力密度1X
パフォーマンス/電力1.75X

 つまり、理論上は、デュアル/マルチコアにすれば、ポラックの法則の呪縛を脱し、現在のプロセス微細化の行き詰まり時期でも効率よくCPUの性能を向上させることができるようになる。同じ電力枠に納める場合には、1.75Xに性能を伸ばすこともできる。これを見ると、Intelがシングルコアの性能を強化する路線を捨てた理由はよくわかる。

 とはいえ、デュアルコアへと向かったとしても、問題はまだ残っている。まず、Intelの場合は、すでにシングルコアCPUで、一般的なPCシステムのTDPの枠ぎりぎりに近いレベルに達してしまっている。そのために、デュアルコアにした場合には周波数を抑えなければならない。つまり、今後2~3世代のCPUでは、動作周波数を引き上げようとしたら、CPUコアの電力効率を現在のNetBurstより大幅に向上させる必要がある。

 また、ソフトウェア側の並列化(マルチスレッド化)の限界があるため、PCは当面はデュアルコアに留まるとみられる。つまり、プロセス世代毎にCPUコアを倍々にすることは難しい。そのため、各CPUコア内部の並列性の強化も、当面は必要だ。それも、プロセス微細化での消費電力低減が期待できない中で、消費電力を上げずに性能向上を実現する必要がある。

 こうして見ると、Intelは今後、CPUコアはアーキテクチャ的に消費電力を下げながら、パフォーマンスも高めるという、一見相反する要求を満たして行く必要があることがわかる。そして、IntelのCPU開発陣は、その目標に向かって戦っている。おそらく、その回答の1つがPARROTだ。次の記事で、PARROTの内容について解説したい。

□関連記事
【10月30日】【海外】3ステップでマルチコア化を進めるIntelのサーバー&ワークステーション系CPU
http://pc.watch.impress.co.jp/docs/2004/1030/kaigai130.htm
【10月22日】【海外】デュアルコアCPU“Smithfield”は来年第3四半期に登場
http://pc.watch.impress.co.jp/docs/2004/1022/kaigai128.htm
【6月9日】【海外】AMDが2005年にデュアルコアCPUを投入
http://pc.watch.impress.co.jp/docs/2004/0609/kaigai095.htm

バックナンバー

(2004年11月5日)

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


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright ©2004 Impress Corporation, an Impress Group company. All rights reserved.