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

Intelが欲しかったのはCompaqの持つAlpha EV8のテクノロジ


●最先端アーキテクチャのAlpha EV8

 IntelはCompaq Computerの何が欲しかったのか。

 Intelは、先月、Compaqと戦略的な提携を結んだ。その中には、CompaqのItanium採用(2004年)計画と、Compaqが持っているAlphaプロセッサ&コンパイラ技術とリソースのIntelへの提供が含まれる。Intelは、この提携でItaniumにCompaqという大きなサポーターを得たわけだが、本当の狙いはAlpha技術の獲得だったかもしれない。というのは、Compaqの次々世代CPU「Alpha EV8」が、現在発表されているCPUの中でもっともラディカルなアーキテクチャのCPUだからだ。何がラディカルか、それは、EV8が「スレッドレベルパラレリズム(Thread-Level Parallelism:TLP)」技術を本格的にインプリメントする初めてのアーキテクチャだからで、Intelもこの技術に取り組んでいるからだ。

 TLPは、'99年秋のCPU関連カンファレンス「Microprocessor Forum」で大いに話題になった新CPU技術(論文はその数年前から多数出ていた)だ。1つのCPUコアまたは複数CPUコアを統合したワンチップで、複数のスレッドを並列に実行できるようにする技術を総称として使われている。これまで、CPUアーキテクチャの先端トレンドは、単純なパイプライン処理から、命令を実行時に並列化するスーパースカラへ、そして命令セットレベルで並列化するインストラクションレベルパラレリズム(Instruction-Level Parallelism:ILP)へと移り変わってきた。そして、このトレンドの最新の流れがTLPなのだ。

 これまでのCPUは,単一のCPUでは、異なるスレッドの処理を並列に実行することはできなかった。どれだけたくさん演算機を持っていても、1つのCPUでは一度に1つのスレッドしか実行できない。そのため、命令実行の並列化には限界が見えてきていた。


●TLPがCPUの並列処理を向上させる

 例えば、Pentium 4やAthlonのようなスーパースカラ型x86 CPUでは、1サイクルで実行できる命令数(instruction per cycle:IPC)の平均値は2.5命令/サイクルが限界値だと言われている。それに対して、IA-64のようなILP CPUはずっと限界が高く、4.x命令/サイクルあたりまで行くと言われている。つまり、同じクロックなら性能は2倍になるわけだ。

 しかし、ILPでも5命令/サイクル以上は難しい。これは、ILPを推進するIntel自身も、Fred Pollack氏(Intel Fellow,Director, Intel Architecture Strategic Planning, Intel Architecture Group)のプレゼンテーション「New Microarchitecture Challenges in the Coming Generations of CMOS Process Technologies( http://www.intel.com/research/mrl/library/index.htm )」で指摘している。

 IPCが上がらなくなる原因のひとつは、ILPにしても、ひとつのインストラクションフロー(プログラム中の命令の流れ)の中で命令スケジューリングをする点は変わらないからだ。そのため、データのディペンデンシが壁となってどうしてもIPCをある程度以上は上げられない。

 ところが、TLPを使うと、こうした壁があってもIPCを上げることができるようになる。それは、TLPでは複数スレッドを並列実行できる=複数のインストラクションフローの処理を並列化できるからだ。そのため、TLPアーキテクチャCPUでは、実質的なIPCを、これまでのCPUより大幅に高めることができる。言い換えると、CPUの並列化を、実行レベルから命令レベルへ、さらにスレッドレベルへと引き上げることで、より高度な並列化を実現する、CPUアーキテクチャの大きなパラダイムシフトというわけだ。


●もっとも進歩したTLPアーキテクチャのEV8

 TLPの実現には様々なアプローチがある。もっとも単純なものは、ワンチップに複数のCPUコアを載せてしまう「Chip multiprocessor」で、IBMの「Power4」やSun Microsystemsの「MAJC-5200」などがこの方法を採る。それに対して、Alpha EV8はもっとアグレッシブで、最大4個のスレッドを管理する機能「Simultaneous Multithreading(SMT)」をCPUに搭載する。SMTは、CPUのリソースをフレキシブルに各スレッドに振り分けて,効果的な並列処理を行なう技術だ。つまり、EV8では、4ウエイのマルチプロセッサシステムと同じことを、ワンチップで実現できることになる。

 EV8のSMTでは,CPUは仮想的に4つの「TPU(Thread Processing Unit)」を持ち、それぞれが異なるスレッドを並列に実行する。各TPUは、それぞれ個別のプログラムカウンタとレジスタマップを持つが、実行ユニットや物理レジスタといったCPUのハードウェアリソースのほとんどは各TPUで共有される。各スレッドごとに論理レジスタに異なる物理レジスタがマッピングされるので、同時に複数のスレッドを走らせていてもレジスタの競合を避けられる。CPUコアは8命令同時発行が可能なスーパースカラで、異なるスレッドの命令を混在させて同時発行できる。

 EV8のアプローチの利点は明確だ。それは、CPUのリソースをそれほど消費せずに高効率のTLPを実現できることだ。Chip multiprocessorだと2スレッドの同時実行には2つのCPUコアが必要となるが、EV8の場合にはSMTのコントロール機構とCPUリソースの拡張で4スレッドに対応できる。つまり、EV8は現状で、もっとも効率的で進化したTLPアーキテクチャというわけだ。今のところ、主要CPUでこうしたアプローチの設計を発表しているものはEV8しかない。

 そして、IntelもこのEV8と同じようなTLPのインプリメンテーションを考えているフシがある。IntelがTLPを採用しようと動いているのは確実で、今年2月の「2001 ISSCC (IEEE国際固体回路会議)」でも、Intelのパット・ゲルシンガー副社長兼CTO(Intel Architecture Group)が「マルチスレッドCPU」アーキテクチャを研究していることを明かしている。その際に、ロジック数の増加を抑えながら性能を上げることができる効率的なアプローチとしてTLPを挙げているからだ。


●IntelとAMDに受け継がれるAlphaの流れ

 というわけで、TLPが次のCPUアーキテクチャのパラダイムであり、Intelがその採用を検討しており、EV8が現状でもっとも進歩したTLPアーキテクチャなら、Intelがそれを求めたとしても不思議ではない。IntelはILPを取り入れる決断を下した時も、ILP研究でリードしていたHewlett Packard(HP)と手を組んだのだから。だとすると、Alphaの遺産はIntelで生きることになる。

 面白いのは、ライバルであるAMDのAthlonやHammerも、旧Alphaのアーキテクトやエンジニアが中心となって開発していることだ。Alphaは消えゆく運命にあるが、そのテクノロジとフレーバーは、AMDとIntelに残ることになるのかもしれない。それだけ、Alphaがとんがった設計のCPUファミリだったという証明でもある。

 では、IntelがTLPを取り入れるとして、それはIA-32とIA-64のどちらのアーキテクチャになるのだろう。おそらく、両方だろう。Intelは、IA-64とIA-32の性能を平行してスケールアップさせてゆく計画で、そのためにはTLPが必要だからだ。

 もう少し詳しく見ると、まず、IA-64でTLPを取り入れるのはほぼ確実だ。というのは、もともとサーバー&ワークステーションはマルチプロセッサシステムでマルチスレッド実行をするのが当たり前だからだ。また、IA-64は高価格CPUなので、ダイサイズ(半導体本体の面積)を食ってもどんどん先端テクノロジを載せることができる。そして、IA-64が2~3世代でILPの限界に達してしまうなら、その先はTLPの併用しか道はないだろう。そのため、最短の期間でTLPへ持って行くと思われる。ステップとしては、まず、Chip multiprocessorをやり、次にEV8のようなTLPを早ければ2005年頃には採用するのではなかろうか。

 一方、IA-32は事情が若干異なる。ダイサイズの制約がある上に、ソフトウェア環境もない。デスクトップではマルチプロセッサはあってもデュアル止まり、OSの対応もそこまででアプリケーションは対応していないからだ。だが、IntelのPollack氏は、TLPがクライアントマシンでも有用になると指摘している。どうやって? それは投機マルチスレッディングによってだ。デスクトップやモバイルCPUでTLPを有効にする投機マルチスレッディングについては、また別な機会にレポートしたい。

□関連記事
【6月26日】Compaq、64bitプラットフォームをIntelに統一
~AlphaはIntelへ移転、2004年で中止?
http://pc.watch.impress.co.jp/docs/article/20010626/compaq.htm


バックナンバー

(2001年7月18日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


ウォッチ編集部内PC Watch担当 pc-watch-info@impress.co.jp

Copyright (c) 2001 impress corporation All rights reserved.