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

マルチコア+マルチスレッド+動的スケジューリングへと向かうIA-64




●IA-64の性能&機能強化を急ぐIntel

 Intelは「IA-64」系プロセッサの高パフォーマンス化を急がなくてはならない。IA-32アーキテクチャの64bit拡張「64bit Extension Technology(通称IA-32e)」の発表で、64bitアドレッシングというIA-32に対する利点を失ったからだ。実装上の論理/物理アドレス空間では、依然としてIA-64の方が有利だが、最もわかりやすい差別化ポイントはなくなった。

 そのため、IA-64は、これまで以上にアーキテクチャ上のプロセッシングパワーを謳わなければならない状況になっている。そのためか、IntelはIA-64のマイクロアーキテクチャの改革に拍車をかけている。

 IA-64の今後の進化の方向は明確だ。

○マルチコア(Multi-Core)
○SMT(Simultaneous Multithreading)?
○ダイナミックスケジューリング
○仮想マシン支援機能
○ハードウェアセキュリティ機能
○パフォーマンス/消費電力向上技術

 これらの要素が、おそらく2006年の「Tukwila(タックウイラ)」世代までに揃う。つまり、IntelのクライアントCPU系と同様に、アーキテクチャ面での大幅な拡張が今後数年で行なわれる。Intelは上から下まで、全CPUラインナップでアーキテクチャ改革を行なおうとしているようだ。

●TLPへと一直線に向かうItanium

 まず、大きな流れは「スレッドレベル並列処理(TLP:Thread-Level Parallelism)」の強化だ。今後のIA-64プロセッサは1つのCPUチップの中に複数のCPUコアを納め、さらに各CPUコアが複数スレッドを同時処理できるメカニズムを備えてゆく。マルチコアの最初の世代は2005年の90nmプロセス世代の「Montecito(モンテシト)」となる。Montecitoは、2つのCPUコアとL3までのキャッシュを内蔵する。ただし、予想とは異なりそれぞれのCPUコアが独立したL3までのキャッシュを搭載し、アービタでそれを調停する。

Montecitoのアーキテクチャ
PDF版はこちら

 また、Montecitoは「Coarse-Grain Multi-threading」を支援するハードウェアを実装するようだ。Hyper-Threadingなどの「サイマルテニアスマルチスレッディング(Simultaneous Multithreading:SMT)」技術は複数のスレッドの命令を混在して走らせることができる。しかし、Coarse-Grain Multi-threadingでは複数スレッドで単純にパイプラインのタイムシェアリングを行なうだけだ。Montecitoは、2スレッドを特定のスイッチングイベントで切り替える処理をハードウェアで行なうらしい。両スレッドは、それぞれ独立したアーキテクチュラルステイトを保持するため、見かけ上は2つの論理プロセッサに見えるという。IDFでは、今回スケジュールの関係で参加できなかったセッションで、このアーキテクチャの説明も行なわれた。

 Coarse-Grain Multi-threadingのように粒度の荒いマルチスレッディングの場合、SMTのように効率的なリソースの使い方はできない。しかし、メモリアクセスレイテンシの隠蔽などには効果があるはずだ。

 IntelがMontecitoでSMTを導入しないのは、IA-64プロセッサは命令レベルの動的なスケジューリング機構を備えていないためだ。最初から動的な命令スケジューリングを備えるPentium 4系CPUはSMTを比較的簡単に実装できるが、IA-64ではSMTを実装しようとすると、動的スケジューリングも必要になってくる。

 そのため、Intelは次の世代のIA-64アーキテクチャでは、SMTと動的スケジューリングを同じタイミングで投入すると推測される。

●IA-32同様に動的スケジューリングを実装へ

Intel Michael J. Fister氏

 MontecitoまでのIA-64系CPUは、いずれもItanium 2(McKinley:マッキンリ)アーキテクチャの流れをくむ。しかし、2006年には、全く新しいアーキテクチャの、次世代IA-64プロセッサが投入される。これが65nmプロセス版のTukwilaだ。Tukwilaは、つい最近まで「Tanglewood(タングルウッド)」と呼ばれていたCPUと全く同じものだ。単なるコードネームの変更に過ぎないという。

 Intelは、現在Tukwilaについて、2個よりも多い数のCPUコアを内蔵するマルチコアとしか明かしていない。しかし、この世代ではSMTと動的スケジューリングの両方を実装するものと推測される。それについて、Intelでエンタープライズ系製品部門を統括するMichael J. Fister(マイケル・J・フィスター)氏(Senior Vice President & General Manager)は次のように答えている。

[Q] 「Intelの研究者が発表した研究論文を読むと、SMTと動的スケジューリングをIA-64プロセッサに実装すれば性能が大幅に向上するという。Intelは、すでにHyper-ThreadingをIA-64にもたらすことを明かしているが、動的スケジューリングはいつ導入するのか」

[Fister氏] 「いい質問だが、今のところ答えることはできない。なぜなら、あまり多くの秘密を語ると、彼(Intelの広報担当者)が私を殺すだろうからだ(笑)。まだあと数年は死にたくないな(笑)。

 しかしながら、それ(動的スケジューリング)が今後提供されるアーキテクチャのピースになることは確かだ。問題は、(CPUを設計する場合に)シンプルなコアがいいのか、より複雑なコアがいいのかという点にある。より大きく複雑なコアをひとつ(CPUに)載せるた方がいいのか、それともよりシンプルなコアをより多く載せた方がいいのかは、興味深い技術論議だ。

 わかりやすく言うと、穴掘り仕事をやらせる時に、体が大きくて力の強い男をひとり雇って掘らせるのと、そんなに強くはない男をたくさん雇って掘らせるのと、どちらが効率がいいのか。これを、慎重に考える必要がある。

 じつは、これが我々がTukwilaに何個のコアをダイ(半導体本体)に載せているのか明かさない理由でもある。なぜなら、(コア数を明かすと)Tukwilaのコアがどれだけの大きさでどれだけの強さなのかわかってしまうからだ」

 つまり、動的スケジューリングやSMTはどこかの時点で持ってくるが、それにはトレードオフがある。それらの機能を実装することでCPUコアが大きくなりすぎると、1CPUに搭載できるCPUコア数が減ってしまい、逆にパフォーマンスでは不利になってしまうというわけだ。すなわち、Tukwilaが非常に多くのCPUコア(8個とか)を搭載しているのなら、各CPUコアの機能拡張は最小限だろうし、Tukwilaがそこそこの数のCPUコア(4個とか)しか搭載していないのならSMTや動的スケジューリングを搭載していると思われる。

 静的コンパイルで最大限のスケジューリングを行なうはずのIA-64に動的スケジューリングが加わるというのは不思議に聞こえるかもしれない。しかし、あるIntel関係者は、動的スケジューリングはIA-64の当然の進化だと語る。「IA-32がシリアルな命令実行から動的スケジューリングへと進化して行ったように、IA-64も動的スケジューリングへ向かう。そうしないと、コアの性能向上は難しいからだ」。

 ただし、IA-64に実装されるスケジューリングハードは、IA-32とは異なった内容にはなるだろう。

●仮想マシンテクノロジも実装へ

 IntelはIA-64プロセッサにも仮想マシン支援ハードウェアも実装する。IA-64の仮想マシン化も、IA-32の仮想マシン技術「Vanderpool(バンダプール)」と同様に新しい特権レベルを設けることをベースに実現すると見られる。ただし、IA-64での仮想マシンは、IA-32のVanderpoolよりもパワフルで多機能なものになるという。それは、仮想マシン化はサーバーサイドでより必要とされているからだ。IBMがメインフレームシリーズで導入しているような高度な仮想マシン技術を持ってくるという。それによって仮想マシンの効率と信頼性を大幅にアップさせる。

 また、サーバーサイドでも、Intelは自社でバーチャルマシンマネージャ(VMM:Virtual Machine Manager)ソフトウェアを提供するつもりはない。VMMについては、Intelは中立の立場を貫くという。Intelは、完全にハードを仮想化する「ハイパーバイザ」ソフト込みでCPUを提供、OSベンダーがその上でOSを走らせるという選択肢もあるが、それは今のところ考えていないという。

 CPUの仮想マシン支援とハードウェアセキュリティ(パーティショニング)は、ベースは同じメカニズムを使うと推測される。そのため、仮想マシンが実装される時には、ハードウェアセキュリティ機能も実装されるだろう。この2機能はMontecitoの機能リストに入っていないことから、Tukwila世代になると推測される。

 また、IntelはMontecitoから、拡張版SpeedStep(Geyserville-2)のような周波数&電圧のスケーリングを実装する。また、消費電力を食わないソフトウェアの実行時には、周波数を引き上げる新テクニック「Foxton(フォクストン)」も実装する。こうしたトレンドは、デスクトップCPUでも共通だ。

 ちなみに、Itanium 2ファミリの現在のTDP枠は、ハイパフォーマンスサーバーは130W、DPクラスは99W、低消費電力DPは62W。以前は途方もなく感じられたこの消費電力も、今ではIntelのデスクトップCPUが追いついて来たために、それほど高く感じられない。「Prescott(プレスコット)」のLGA775世代ではTDPは115Wに、2005年のデスクトップCPU「Tejas(テハス)」ではTDPは125Wに達してしまうからだ。

 そのため、Intelは現状でもパフォーマンス/消費電力では、Itanium 2の方が有利だと説明している。このほか、Montecitoはキャッシュのエラーチェックのメカニズム「PELLSTON(ペルストン)」テクノロジも備えている。

Intelサーバー/ワークステーション用CPUロードマップ
PDF版はこちら

●IA-32eはエミュレーションでサポート

 IntelはIA-64とIA-32の互換性確保についても、新しいアプローチを始めている。現在のIA-64系CPUは、IA-32のデコーダ/スケジューリングハードウェアも備えている。しかし、1月からはIA-64上でのIA-32エミュレーションレイヤー「IA-32EL」の提供も始めている。そして、IntelはIA-32ELを拡張することで、IA-32eにも対応するつもりだ。

 Fister氏は、IDFのキーノートスピーチ後のQAセッションで、IA-64でのIA-32eサポートについての質問に答え「我々はELソフトに自信を持っている。Itaniumのクロックが上がればELも早くなる」「将来に(Itaniumの)ハードウェアを変更するつもりはない」と語った。

 つまり、IA-64プロセッサでは、IA-32eサポートをハードウェアとして実装するのではなく、IA-32ELでソフトウェアとして実装するつもりのようだ。そして、IA-64系が今後クロックが向上すると、EL上でのIA-32/IA-32eの性能向上も果たされるというわけだ。別のIntel関係者も「IA-32ELの重要な目的のひとつはIA-32eのサポートにある」と証言する。

 Itanium(VLIW)+IA-32EL(トランスレーションレイヤ)は、まるでTransmetaアーキテクチャだ。しかし、IntelはIA-32ELでアグレッシブなスケジューリングを行ない、IA-32/32eの性能を追求するつもりはないようだ。もっとも、Tukwila世代でダイナミックスケジューリングが入ると、命令レベルのスケジューリングが可能になるため、IA-32ELでアグレッシブなスケジューリングを行なわなくても性能が向上するかもしれない。また、Tukwila以降のIA-64プロセッサでは、盲腸であるIA-32フロントエンドもなくなるかもしれない。

 こうして概観するだけで、じつに膨大な技術ピースが今後のIA-64プロセッサにはめ込まれて行くことがわかる。IA-32同様に、IA-64もアーキテクチャ拡張の嵐に突入してゆくことになる。

□関連記事
【2003年9月19日】【海外】IDFで明らかになったIntelの将来CPU計画
~すべてのCPUはマルチコアへ
http://pc.watch.impress.co.jp/docs/2003/0919/kaigai025.htm

バックナンバー

(2004年3月5日)

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


【PC Watchホームページ】


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

Copyright (c) 2004 Impress Corporation All rights reserved.