■後藤弘茂のWeekly海外ニュース■5W以下のローパワープロセッサの開発へ向かうIntel |
Justin R. Rattner(ジャスティン・R・ラトナー)氏 |
Intelは、Corporate Technology Groupを再編。システム関連の研究を強化するために、Systems Technology Labを設立した。同ラボを担当するJustin R. Rattner(ジャスティン・R・ラトナー)氏(Senior Fellow, Corporate Technology Group, Senior Director, Systems Technology Lab)に、Intelテクノロジの今後の展望を伺った。
●プロセッサとシステムの研究が融合へ
【Q】 以前あなたはIntelのCPU研究を担当するMicroprocessor Research Labsを率いていた。今は、システム研究を担当するSystems Technology Labを担当している。Intel自身のフォーカスも、プロセッサからシステムへと変わりつつあるように見えるが。
【Rattner氏】 実際には「これはプロセッサ研究、こちらはシステム研究」といった切り分けはどんどん難しくなっている。それは、プロセッサが統合化へ向かっているからだ。
例えば、プロセッサは、周辺機能を取り込むシステムオンチップ(System on a Chip:SOC)へも進んでいる。SOCでは、各コンポーネントをモジュラー設計にし、オンダイにさまざまな要素を載せる。こうした製品としては、「Timna(ティムナ)」(発売されなかったPentium IIIベースのSOC製品)を以前開発したが、今後も、さらにSOCの方向へと向かって行くだろう。
【Q】 プロセッサ自体が、システムオンチップへと向かい、そのために、システムレベルでの研究を強化する必要が出てきたということか。
【Rattner氏】 マルチコア化も、システムレベルの研究をプロセッサに応用することを求めている。マルチコア環境やメニイコア環境(Intelは10個程度以上の多数のCPUコアを搭載したマルチコアをメニイコアと呼んでいる)によって、SMPシステムがシングルコアになりつつあるからだ。
従来のプロセッサ研究は、マイクロアーキテクチャにフォーカスしてきた。スーパースカラ、アウトオブオーダ、投機実行……。しかし、プロセッサがマルチコア化すると、課題は、どうやってプロセッサ(コア)をインターコネクト、協調、同期、コミュニケーションさせるか、といった事柄になる。これらは、伝統的にはシステムの課題だったが、マルチコア・メニイコアではプロセッサの課題となる。
もともと、私はIntelでのキャリアの大半をシステム側で過ごして来た。まず、'80年代半ばから10年は、私はハイパフォーマンスコンピューティング(HPC)とスーパーコンピュータにフォーカスしていた。次に私は、Enterprise Architecture Labを任された。これは、Enterprise Platform Groupの一部だった。その当時、私は、クラスタサーバーにフォーカスし、クラスタ間のインターコネクトのためにInfiniBandテクノロジを開発した。これまでのシステムの経験が、今後のプロセッサ研究にも活きる。
マルチコア・メニイコア化で、プロセッサ研究の方向性も変わる。これまでは、命令レベルの並列性(Instruction Level Pararelism:ILP)をできる限り向上させようとしてきた。だが、今は、マイクロアーキテクチャをアグレッシブに向上させる方向からは後退していると思う。命令レベルの並列性から、スレッドレベルの並列性(TLP:Thread-Level Parallelism)へと重点が移っているからだ。ILPとTLPの間で、最適なバランスを取ることが重要になる。単純に、できるだけ多くの命令/クロックを達成しようという旧来のマイクロアーキテクチャ設計プロセスとは、異なるシステムトレードオフが出てくる。
●CPUのフォーカスは電力効率(Power Efficiency)向上へ
【Q】 システムとプロセッサの関係では、消費電力=熱も重大な問題だと考えている。CPUの消費電力はシステムに搭載できる限界に近づいている。
【Rattner氏】 Intelの最近のロードマップを見れば分かるとおり、我々は、方向を変えた。CPUが、周波数至上だったこれまでの路線から離れる必要があることは明白だ。熱設計の限界を考慮し、もっと電力効率(Power Efficiency)にフォーカスしたアーキテクチャが必要だ。この問題は、パット(Patrick P. Gelsinger氏、Intel CTO & Senior Vice President)がISSCC 2001のキーノートで初めて指摘した。パットがその時示したのは、このまま行くとCPUの電力密度が上昇して太陽表面温度と同じ温度になってしまうということだ(笑)。200~500WのCPUを搭載できるシステムを作ることはできない。
そのため、我々は電力効率の高いCPUアーキテクチャの開発にフォーカスしている。Pentium Mは、その最初のステージで、例えば、DothanはBaniasよりも、さらにパフォーマンス/ワットとパフォーマンス/平方mmが向上している。この方向を我々はさらに押し進める。ただし、消費電力は抑えなければならないが、パフォーマンス向上を止めることは望んでいない。我々は、電力効率を高めることで、パフォーマンスと消費電力の最適化が可能だと信じている。興味があるなら、研究開発の例を話すことができるが。
【Q】 Intelの研究者が発表した「PARROT」と呼ぶ高い電力効率のマイクロアーキテクチャの論文を読んだ。
【Rattner氏】 そう、PARROTこそ、好例だ。まさに、今、私が示唆していたのがPARROTのことだ。論文を読んだならわかっているだろうが、PARROTでは、ホットトレース(プログラム中で頻繁に使われるコード部分)を最適化することで効率を上げる。PARROTのようなテクニックなら、将来のプロセッサにおいて、パフォーマンスを高めながら、電力効率も同時に高めることができる。こうした方向を追求して行く。
●携帯機器向けの5W以下のローパワープロセッサの開発へ
【Q】 Systems Technology Labは、従来のノートPCよりももっと小型の機器向けの、極めて消費電力の低いプロセッサも研究していると聞いた。
【Rattner氏】 そうだ。我々は、Intelアーキテクチャ(IA)を、もっともローパワー(低消費電力)のスペースまでもたらすことを考えている。つまり、Intelアーキテクチャとフル互換のデバイスを、5W以下のレベルに持って行く。将来、非常に小さな機器にも、Intelアーキテクチャのプロセッサを搭載できるようになるだろう。それについては、昨年多くの研究を行ない、完全に可能だと確信を持っている。
ローパワーと言ってもフィーチャは犠牲にしない。我々は、全ての“T(Technology)”、つまり、HT(Hyper-Threading)、VT(Vanderpool)、LT(LaGrande)、さらにCT(Clackamas)と呼んでいた64bit技術まで、すべてをローパワープロセッサに搭載できると考えている。
【Q】 携帯機器向けのローパワープロセッサでは、ARMとMIPSが現在は主流となっている。一般に、RISC(縮小命令セットコンピュータ)系アーキテクチャの方がローパワーでは有利だと考えられているが、CISC(複雑命令セットコンピュータ)のIntelアーキテクチャが入ることができるのか。
【Rattner氏】 覚えているだろうか、ハイパフォーマンスプロセッサでも同じことがあった。'80年代の終わり頃から'90年代の初めにかけては、RISCが唯一のハイパフォーマンスアーキテクチャだと言われていた。IBMやSun Microsystemsなど、誰もがCISCは絶対にRISCに競合できないと主張した。Intelアーキテクチャはもう性能を伸ばすことができないと。
ところが、Pentium Proが登場したら、状況は一変した。Pentium Proは、当時のどのRISCプロセッサよりも速かった(笑)。少なくとも短期的には、Alphaプロセッサよりも速かった。
現在、業界の多くの人は、Intelアーキテクチャがローパワースペースに入ることはできないと考えている。しかし、私は、ハイパフォーマンススペースで成し遂げたのと同じことを、今回も我々が達成できると考えている。少なくとも、Intelアーキテクチャ自体にはローパワープロセッサに入るための実装上の壁はない。我々はXScaleを開発して、ローパワープロセッサの設計上の課題は十分に理解した。
【Q】 興味深いのはAMDも同様のことを言っていることだ。AMDのFred Weber(フレッド・ウェバー)氏(Corporate Vice President and Chief Technical Officer)は、昨年のMicroprocessor Forumで、命令セットアーキテクチャ(ISA)はローパワーCPUの設計の障壁にはならないと説明した。AMDも同様に、IA-32互換デバイスを携帯機器にもたらそうとしている。
【Rattner氏】 私は、ISAが障壁にならないという意見に基本的には異論はない。しかし、個々の要素で見ると、多少、説明が必要だろう。まず、(CISCであるIA命令セットの)可変長命令のデコーダは、(固定長命令のRISCのデコーダ)より電力を消費する。IntelやAMDのプロセッサのサーマルマップ(温度分布図)を見れば、チップ上の最も熱いエリアがデコーダ部分であることがわかるはずだ。
ここで重要なのは、プロセッサのパフォーマンスは平均消費電力で制約されるのではなく、ピーク温度で制約されることだ。そのため、ホットスポットであるデコーダが、CPUの動作周波数の制約になる。なぜなら、その部分のジャンクション温度が既定値を超えないようにしなければならないからだ。その意味では、ISAはゼロコストではない。フレッドと、ちょっと相違があるのはその部分で、デコーダの電力効率に関しては、固定長命令セットアーキテクチャの方がどうしても有利になる。
もう1つの要素はキャッシュアクセスだ。Intelアーキテクチャでは、よりキャッシュインテンシブになる。レジスタファイルが少ないためで、それがデータキャッシュに負担をかける。それに対して、(RISC系CPUのように)レジスタファイルが大きいと、データキャッシュへの負担は小さくなる。その方が、電力消費の面では有利だ。ここにもトレードオフがある。
これらのペナルティは、電力&面積効率の面からは、おそらく10~20%のレンジだと思う。正確な数字を出すのは難しいが、ゼロコストでないことは確かだ。
ただし、パフォーマンス面を見ると、面白い逆転がある。なぜなら、CISCは、RISCよりもより多くの命令を実行できるからだ。これは、CISCの方がコード密度(プログラムサイズ当たりの命令数)が高くなるからだ。この問題を解決するために、ARMアーキテクチャはThumb命令セット(16bitのサブセット命令セット)を開発しているが、一般的にCISCの方が有利となる。
電力効率で見ると、実行する命令はできるだけ少ない方が有利だ。そのため、ここでは逆に可変長が有利になる。こうしたトレードオフの結果、ローパワーの固定長命令セットプロセッサに対して、ローパワーのIntelアーキテクチャプロセッサも競争できるだろう。ダイサイズは多少(RISCより)増えるが、十分、競合できる範囲だと考えている。今後数年で、そうしたローパワーのIAプロセッサが登場するだろう。
●よりシンプルなコアアーキテクチャへの回帰も
【Q】 PC向けCPUも電力効率を追求している。ローパワープロセッサの研究との関連性はあるのか。
【Rattner氏】 ローパワープロセッサの研究には、二次効果がある。それは、ローパワーの研究の成果が、コアの効率の向上に結びついていることだ。我々は、大きなプロセッサコアのパフォーマンスのかなりの部分を維持しながら、プロセッサコアをドラマティックに小さくする設計を学びつつある。
Alphaプロセッサの各世代の、電力と(ダイ)面積の効率を比較した興味深い研究がある。その研究によると、電力と面積の効率では、初期のAlphaが、最新のAlpha EV7やEV8の何倍も優れているという。パフォーマンスを2倍にするために、ダイ面積は約4~5倍に増えている。性能向上分に対して二乗分の面積が必要とされるわけで、面積の割に非常に小さなパフォーマンス向上しか得られていない。
この“二乗の法則”のインパクトは、これまで重視されていなかった。だが、パフォーマンス/ワットとパフォーマンス/ユニット面積にフォーカスすると、この問題が重要となる。
そこで、我々はシンプルなマイクロアーキテクチャへの後戻りも考えている。シンプルであれば、より電力と面積の効率が上がるからだ。我々は、内部的にはさまざまな研究を行なっており、小さなコアでも十分に大きなコアに匹敵するパフォーマンスを達成できると考えている。これは、特に、マルチコア・メニイコアの設計でも重要になると考えている。
シンプルなプロセッサは漏れ(リーク)電流の管理でも利点がある。(ユニット毎に)ONにしたりOFFにしたりといった、ステートの管理もシンプルになるからだ。
【Q】 ローパワープロセッサ向けに開発するプロセッサコアは、将来的にはPC向けのプロセッサコアと共通になる可能性があるのか。
【Rattner氏】 いや、それは難しいだろう。PC向けの電力効率設計のプロセッサを、もっとも低消費電力が要求される市場に適応させることはできない。ここは一番難しいところだ。1Wあるいは0.5WのCPUは、多分、ノートPC向けのCPUとは異なるコアになるだろう。研究の成果は、活かされるだろうが。
【Q】 Intelは現在、デスクトップPC、ノートPC、サーバーのそれぞれに異なるマイクロアーキテクチャのCPUを開発している。マルチコア時代にも、PCやサーバーに、異なるマイクロアーキテクチャを続けるのか。それとも、電力効率の高いCPUコアへと収束させて行くのか。
【Rattner氏】 今後は、コアによる差別化は減って、“アンコア”による差別化が増えて行くだろう。アンコアと我々が呼んでいるのは、キャッシュ、バスインターフェイスなどCPUコア以外の部分で、TLBのライン数なども含まれる。
我々は、できるだけコアの数を減らし、同じコアをベースに、各市場の電力とパフォーマンスの要求に最適化した製品を設計して行くつもりだ。差別化のフォーカスは、コアではなく、アンコアの部分になる。例えば、ノートPCなら、最適な量のキャッシュとメモリ帯域をプロセッサに実装する。メモリコントローラの統合も求められるかもしれない。
また、各市場に向けてコアの数も変えるだろう。例えば、デスクトップは2コアで、サーバーは4コアといった差別化になるかもしれない。
いずれにせよ、モバイルとデスクトップとサーバーそれぞれに異なるマイクロアーキテクチャを開発するのは、時間も人もかかりすぎる。基本的には、1個か2個のコア設計を、異なる市場に最適化して提供することになるだろう。
●100コア以上を載せた大規模なメニイコアも視野に
【Q】 CPUコア数は、今後世代毎に、8コアや16コアへと増えて行くのか。
【Rattner氏】 そうなるだろう。今は10コア程度の話をしているが、5年後には、多分、100コア以上が視野に入ってくるだろう。私がかつて扱っていたような、大規模SMPシステムがワンチップに収まるようになる。
マルチコア、メニイコアは、伝統的な大規模SMPと比べるとさまざまな利点がある。まず、SMPと比べると、ずっと効率的になる。プロセッサ間のコミュニケーションや同期、キャッシュtoキャッシュの伝達は、オ-バーヘッドがずっと小さくなる。メニイコアになったら、全てはオンダイになるからだ。例えば、キャッシュ間コミュニケーションは、今日では数百nsecから、場合によってはmsecかかる。ところが、メニイコアでは、それが数nsecで済むようになる。
【Q】 PCへのマルチコア、メニイコア導入への課題は、ソフトウェア側の並列性にある。
【Rattner氏】 指摘の通りだ。サーバーでは、多くのサーバーアプリケーションが、多くのコアを効率的に使うことができる。だから、IBMは最初にPower4でデュアルコアを採用し、Power5でも継続する。SunもマルチコアCPU「Niagara」を発表した。サーバーでは、方向性は固まっている。
しかし、現在のクライアントアプリケーションでは、多くのコアを使わせることは難しい。だから、パットは、将来のコンピューティングインテンシブワークロードに注目していると強調していたわけだ。4/8/16プロセッサに最適化した新世代のアプリケーションは、クライアントに新しい機能をもたらすだろう。だが、ISVが現在のオフィスアプリケーションを4/8/16プロセッサに最適化して書き直すとは思えない。
並列化では、アムダールの法則(プログラム中の並列化できない部分が、並列マシンの性能向上の壁となる)が課題となる。しかし、将来のアプリケーションでは、アムダールの法則が制約要素になるとは思わない。それは、プログラムサイズが大きくなると、逐次実行部分より、並列化が可能な部分の方が急激に増えるからだ。そのため、大きなプログラムになればなるほど、(並列性の)効率がアップする。だから、大規模な並列スーパーコンピュータがこれだけ成功している。
誰も指摘しないが、アムダールの法則はプログラムのサイズが固定されていると仮定しているように思う。確かに、プログラムサイズが固定されていれば制約になるが、将来のアプリケーションではプログラムサイズも拡大するため、並列性が高まる。
●OSのスレッドスケジューリング手法の改革も
【Q】 マルチコア、メニイコアを導入するためには、OS側のスレッドスケジューリングも変える必要があるのではないのか。
【Rattner氏】 今のOS、WindowsやLinuxは、1~2のプロセッサ上で小さな数のスレッドをスケジュールすることに最適化されて開発されている。
そこで、我々は、多数のプロセッサとスレッドを走らせることに最適化した異なる種類のスレッドスケジューリング手法を考えている。よく知られているのは「ギャングスケジューリング(Gang Scheduling)」という概念だ。ギャングスケジューリングでは、複数プロセッサ(コア)を集団(Gang)として扱い同期させてスケジュールする。スレッド集団を、プロセッサ群に対してスケジュールする。これは、今日のOSのスケジューリングとは異なり、根本的な変革になるだろう。
我々は、現在、WindowsとLinuxコミュニティとともに、そうしたスケジューリングの改良を実現しようと考えている。ただし、変わるのはOSカーネルの内部設計だけで、その上に、完全に従来と互換のOS環境をくみ上げることができる。
さらに、将来、コア数が数百になったら、次はコアのパーティショニングが一般的になるだろう。今日、大規模SMPでは、CPU群のパーティショニングを行なっているが、それと同じことがオンダイで行なわれるようになる、複数のコアで構成されるパーティションに、アプリケーションを割り当てるようになる。それぞれのプロセッサコアグループが、それぞれヒューマンインターフェイスや、データマイニングといったアプリケーションに割り当てられる。そして、ごく少数のコアが、Webブラウザのような伝統的なアプリケーションに割り当てられるだろう。
【Q】 それは、Vanderpool(Intelの仮想マシン支援ハードウェアアーキテクチャ)による仮想マシンとも組み合わせることができそうだ。
【Rattner氏】 その通りだ。Vanderpoolは、この構想の一部だ。将来は、仮想パーティショニングと物理パーティショニングで、ある種の連携が取られるようになるだろう。例えば、パーティションの中だけにコヒーレンシを制限するといった。ただし、これは将来の“T”になるだろうが。
□関連記事(2004年11月30日)
[Reported by 後藤 弘茂(Hiroshige Goto)]