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

PowerPC 970はApple Computerに何をもたらすのか




●MacintoshのためのPowerPC 970?

 新時代のPowerPCとなる「PowerPC 970」。このCPUは、本当にMacintoshに搭載されるのか。答えは、おそらくイエスだ。というのは、PowerPC 970の仕様を見る限り、Apple Computerのために作られたとしか思えないからだ。

 まず、多少混乱があるようなので明確にしておくと、PowerPC 970のマルチメディア拡張は、MotorolaのPowerPC G4のマルチメディア拡張「AltiVec」と互換だ。10月15/16日に開催された「Microprocessor Forum(MPF) 2002」(米サンノゼ)で、IBMのPeter Sandon氏(Senior PowerPC Processor Architect, IBM Microelectronics)は次のように語っている。「PowerPC 970のマルチメディア命令拡張は、IBMが共同開発しAltiVecデザインでインプリメントされた命令拡張と同じもの」。

SIMD/ベクタ演算ユニットの概要

 PowerPC 970の「SIMD/Vector Engine」と呼ばれるSIMD/ベクタ演算ユニットの、仕様は次のようになっている。

  • 162のSIMD命令
  • 128bitレジスタ×32個
  • 4個の短精度浮動小数点データをパック
  • 4/8/16個の整数データをパック

 また、SIMD/ベクタユニットの構成は、演算を行なう「Vector ALU」とレジスタのオーガナイズを行う「Vector Permute」との2つで、ALUはさらに下のように3つのユニットに分かれる。

  • Vector Permute
  • Vector ALU
    • Vector Simple(整数演算)
    • Vector Complex(整数演算)
    • Vector Floating Point(浮動小数点演算)

 これを見る限り、PowerPC 970のSIMD/ベクタ演算ユニットは、MotorolaのAltiVecのインプリメントとうり二つだ。拡張命令数やフォーマットはもちろん演算ユニットや発行ポートの構成も同じ。AltiVecの最大の特徴である、独立したVector Permuteユニットも備える。つまり、命令セットが互換というだけでなく、インプリメント自体も非常に似ている。ということは、PowerPC G4のAltiVec向けに行なった最適化は、そのままPowerPC 970でも有効ということが想像される。

 もともとAltiVecはアーキテクチャもインプリメントも、PC向けマルチメディア演算ユニットとしては非常に強力で、それがMacintoshに強力なマルチメディア性能をもたらしてきた。PowerPC系がPowerPC 603時代からの古いマイクロアーキテクチャを引きずりながらも、Macintoshを成長させ続けることができたのはAltiVecのおかげだったと言っていい。そして、PowerPC 970では、そのAltiVecの処理性能も(データはないが)高クロック化のために上がると推測される。

 では、AltiVec互換のマルチメディア拡張を持つ強力な新PowerPCを欲しがっているのは誰か。それは、すでにAltiVecベースにソフト環境を構築してきたApple Computerだ。Apple Computerは、PowerPC 970のようなCPUを切実に必要としている。1つは、PCとしてのMacintoshの性能を継続して向上させるために。もう1つは、Macintoshアーキテクチャベースのワークステーションとサーバーのために。

 Mac OSがMac OS Xになりワークステーションやサーバー分野もカバーできるように進化したのに、現状では、CPUが不釣り合いなほど弱い。そのため、Microprocessor Forumを主催するIn-Stat/MDRのTom R. Halfhill氏(Senior Analyst)は「ロジカルな顧客はAppleだ」と言う。

●PowerPCを新アーキテクチャで64bitに拡張

 PowerPC 970は、Macintoshベースのサーバーの可能性を広げる。それは、PowerPC 970が64bit/32bit CPUだからだ。PowerPCはもともとのアーキテクチャが64bitも想定した上で作られ、64bit版のPowerPC 620も作られたことは作られた。しかし、このCPUは登場が遅すぎ、また、オリジナルのアーキテクチャでは64bitモードと32bitモードを切り替えない限り、既存の32bitコードを走らせることはできなかった。

 PowerPC 970の64bit拡張は、この問題を回避するデザインになっている。これは、'99年に発表されたPowerPCの命令セット拡張「Book E」に基づいている。Book Eでは、32bitと64bitはモード切り替えを排除し、その代わり、新しい64bit命令が定義されている。つまり、新たな64bitのインプリメント方法が定義された。これに準拠すると、既存の32bitコードと新しい64bitコードを、モード切り替えなしで走らせることができる。

 ちなみに、PowerPC 970の64bit拡張は、同じ演算ユニットで32bitと64bitの両方の演算を実行するようになっている。「32bitは64bitと同じパイプラインで走る」と、IBMはパフォーマンスペナルティがないことを強調している。

 こうしたPowerPC 970の64bit拡張は、フィロソフィとしてはAMDのHammerアーキテクチャの64bit拡張に近い。32bitから64bitへのシームレスな移行と、両bit幅での演算が同じように速いというのが共通するトレンドのようだ。

 また、PowerPC 970では、32bit OSが32bitメモリ空間の4GB以上のメモリ空間にもアクセスできる。これは、新しい「Segment Lookaside Buffer(SLB)」の最初の16エントリをセグメントレジスタとして使うことで実現する。

PowerPC 970の基本ダイアグラム PowerPC 970のスペック

●モバイルでは強みを発揮する

 ただし、PowerPC 970は新しいコアロジックチップを必要とする。それは、CPUバスが従来のPowerPCとは全く異なるからだ。32bitのユニダイレクションバスで、双方向で64bit構成、ポイントツーポイントで、ソースシンクロナス。これを最高ベース450MHzの900MHzのビットレートで駆動できる。実効帯域は6.4GB/secだという。PC向けCPUでは最高のバス帯域だ。

PowerPC 970のバス PowerPC 970のパフォーマンス

 システム上でのインプリメントで、ひとつ難しいのは、このバスに見合うメモリ帯域の確保だ。IntelのFSBなら800MHzに相当する高帯域バスだ。来年後半で、この6.4GB/secを達成できる可能性のある最適なメモリは、DDR IIベースDDR400のデュアルチャネルだ。しかし、来年後半にDDR IIが広く供給されているかというと、そうではない。ただし、このバスはかなりの余裕があるように見えるので、最初はスピードを下げるという選択肢もあるかもしれない。

 PowerPC 970は、最高性能のPowerBookも実現できる。PowerPC 970の消費電力は1.8GHz時に42W。パフォーマンス/消費電力は、Pentium 4系やAthlon/Hammer系よりはるかに効率がいい。ボルテージスケーリングすれば、通常、50%程度の消費電力で70%程度の周波数が実現できる。つまり、計算上は20Wちょっとの消費電力で1.2GHz程度は達成できることになる。90nmプロセスの「CMOS-9S」に移行すれば、同じTDP(Thermal Design Power:熱設計消費電力)で1.8GHzを達成できる計算になる。PowerPC 970は従来のPowerPCよりMHz当たりのパフォーマンスが高いので、パフォーマンス/消費電力は既存のPC向けCPU中最高クラスになるだろう。

●Appleに何をもたらすのか

 では、Apple ComputerがもしこのPowerPC 970を採用するとしたら、それは何をMacintoshにもたらすのだろう。

 まず、Appleの防衛の役には立つ。コンテンツ制作といったMacintoshのハイエンドユースの部分が、Windows系に流れるのをせき止めることができる。それ以上に、本格的なサーバー&ワークステーションの方向へとMacintoshを拡張することで、Macintosh市場を上に伸ばすことができる。また、PC市場でも、先が見えないMotorola系PowerPCのためにMacintoshの前途が曇る心配は、これで一応なくなった。Macintoshにとっては朗報なのは確かだ。

 だが、Macintoshの市場を広げる役にすぐに立つかというと、それはまだわからない。登場時にはCPUコストも高くつくし、IBMも高マージンを取ろうとするだろうからだ。そのため、PowerPC 970は、Macintoshに来るとしても、しばらくはハイエンドに留まると思われる。つまり、すぐにはボリュームゾーンの市場を広げる役には立たないだろう。

 また、スケールエコノミの点でも今のところは不利だ。x86系CPUの有利な点は、圧倒的な数量が出るために、CPUの膨大な開発コストを容易に償却できる点だ。そのため、高パフォーマンスのCPUが比較的安価で供給される。だが、今のMacintoshの場合には、そうしたスケールエコノミの利点が働きにくい。それは、PowerPC 970がどれだけ市場を広げられるかにかかっている。

 こうした状況を見ると、このCPUは少なくとも2年前に登場すべきだったと思われる。2000年に、0.18μmプロセスでPowerPC 970が1GHz程度で登場していれば、市場へのインパクトもずっと大きかったろう。ダイ(半導体本体)が大きくハイエンド市場に限られていたとしても、将来への展望をMac OS Xと同時に明確に示すことができた。

 結局、PowerPCがPC向けプロセッサとして、現在抱えている問題は、PowerPC 603/604以来、根本のマイクロアーキテクチャを刷新せずにここまで来たことにある。CPUの性能は、プロセスの微細化とマイクロアーキテクチャの進化でもたらされる。今回が、PowerPCの歴史で初めてと言っていいほどの大規模なマイクロアーキテクチャの革新で、それはややペースが遅すぎるような気がする。

 とはいえ、Motorola/Appleとの共同作業からいったん手を引いた('98年)IBMが戻ってくるとしたら、PowerPCのマイクロアーキテクチャにはまだ継続して革新がもたらされ続ける可能性がある。

●CPUの今後が透けて見える?

 PowerPC 970では、Macintoshとの関係以上に面白いこともある。それは、PowerPC 970を見ていると、IBMが次のCPUアーキテクチャを作るとしたらどうなるのかが、ある程度透けて見えるような気がするからだ。

 PowerPC 970のトレードオフは明白で、パイプラインが深くなり分岐ミスのペナルティが大きくなり、それでも効率を落とさないようにするためにコントロール系のロジックが増える。つまり、今のx86 CPUが抱えるのと同様の問題を抱え始めている。そうなった理由は、ひとえにPowerPCのバイナリを守る必要があるからだ。

 しかし、もしフルスクラッチで新CPUのための命令セットを作るならどうなのか。1つの解は、もっとシンプルな命令セットにしてしまうことだ。例えば、POWER4アーキテクチャの内部命令である、PowerPC命令のサブセットのような。そうすれば、複雑なデコードの負担を減らして、高クロックかつ高効率が得られる。RISCの原点に回帰すると考えてもいい。もちろん、その他の諸々の複雑性も取り去ればいい。例えば、PowerPCはバイエンディアン対応だが、これも片方に絞れば複雑度は減る。

 また、PowerPC 970を見ていると、シングルスレッド処理での性能の限界も見えてきている。PowerPC 970の兄貴分であるPOWER4は、2つのCPUコアをワンチップに納めたCMPとなっている。'99年のMPFでPOWER4を初めて発表した際IBMは、1つのCPUコアで命令発行数を増やしても、CPUが複雑になるわりに性能が上がらないため、CMPにしたと説明していた。つまり、もうPowerPC 970以上に複雑なCPUコアを作ってもシングルスレッド処理では性能が向上しにくいから、POWER4では2つのスレッドを並列処理するアーキテクチャにしたわけだ。つまり、PowerPCでも、シングルスレッド処理の限界が近づいてきていることになる。今後のCPUを設計するとなると、何らかの「スレッドレベル並列処理(TLP:Thread-Level Parallelism)」が必要となる。

 というあたりで、PowerPCベースで開発されていると言われる「Cell」のような、新アーキテクチャのCPUを推測してみるのも面白い。

□関連記事
【10月21日】【海外】究極のMacintosh用CPU「PowerPC 970」
http://pc.watch.impress.co.jp/docs/2002/1021/kaigai01.htm

バックナンバー

(2002年10月22日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


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

Copyright (c) 2002 Impress Corporation All rights reserved.