●CPUの動作クロックは3.2GHz
Microsoftは、MTVでのXbox 360特別番組放送に合わせて、日本でもXenonのお披露目イベントを行なった。イベントではスペックの説明はほとんどなかったものの、Xenonのスペック資料を配付。Xenonの大まかな姿は明らかになった。 まず、XenonのCPUから。CPUの動作周波数は3.2GHz。これは、かなりがんばったスペックだ。ゲーム機のCPUの周波数は、PCのCPUのそれとは意味が異なる。半導体製品の場合、1枚のウェハから、高速で駆動できるチップから低速でないと動かないチップまで、様々なチップが採れる。PCのCPUの場合は、周波数の異なる数種類のスキューを用意し、高クロック品は高価格で、低クロック品は低価格で販売する。 しかし、ゲーム機の場合は、ターゲット周波数に達しないCPUは、使いようがないため捨てるしかない。そのため、ゲーム機では、歩留まりを上げるために、できるだけ多くのチップが、ターゲット周波数以上で動作するようにしなければならない。したがって、ターゲット周波数は、大半のチップが動作する低めの周波数に設定する。つまり、簡単に言えば、XenonのCPUのスペックが3.2GHzということは、製造するチップの大半が3.2GHz以上で動作することを意味する。 動作周波数が3.2GHzであることから、Xenon CPUの製造プロセス技術は90nmであることが類推できる。これは、現在、安定して使用可能なプロセス技術で、Power系を3GHzで動作させることができるのは90nmプロセスだからだ。 ●115.2 GFLOPSの演算性能のXenon CPU CPUコアはワンチップに3個で、共有のL2キャッシュを1MB持つ。ISAは基本的にはPowerPC互換。シンメトリックなマルチコア構成で各CPUコアの構成は全く同じだと言う。CPUコア自体の概要はまだわからないが、3つのCPUコアにそれぞれベクタ演算ユニットである「VMX(MotorolaのAltiVec相当のSIMDユニット)」が1基ずつ搭載されている。 公開されているXenon CPUの浮動小数点演算性能は115.2GFLOPS。3コア分なので、悪くない演算性能だ。もちろん、マルチスレッドでこの性能を使い切ることができればの話だが。計算上の理論性能は、Intelのデュアルコア「Smithfield」の4倍程度になる。ちなみに、Cellプロセッサは4GHz時に、アプリケーション用CPUコアの「SPE(Synergistic Processor Element)」の演算性能で256GFLOPS。Xenonは、理論値では約半分程度となるが、CellもPS3搭載時には周波数が下がると見られるため、差はもう少し縮まるだろう。 ではXenonの115.2 GFLOPSの内容はどうなっているのだろう。まずVMXのSIMD演算性能は計算では下のようになる
となると残りは38.4GFLOPS分。こちらは、非ベクタのFPU(浮動小数点演算ユニット)の性能だと推測される。CPUコアがPowerPC 970(G5)系だとしたらFPUは各2基ずつあるので、おそらく下のようになる。
逆を言えば、このことは、Xenon CPUコアがPowerPC 970系と似た構成であることを示唆している。VMXとFPUのイシューポートも分離されていて、並列に命令発行できることも示している。もっとも、Xenonでは1基の倍精度FPUだけを各CPUコアに載せて、1基のFPUで2wayの単精度浮動小数点演算をできるようにした可能性も残ってはいる。ゲームの場合は、倍精度の浮動小数点演算性能はあまり必要とされていないからだ。FPUは必要なトランジスタ数が多く、高コストなので、ここを節約するのは合理的だ。 ●VMXのレジスタを128本に拡張 VMX自体も拡張されている。PowerPC系のVMXは、もともと128bitレジスタを32本備えていた。しかし、Xenon CPUのVMXは、各CPUコアに128本のVMXレジスタ(VRF)がある。明記されていないが、これは物理レジスタだけでなく論理レジスタも128本になっていると見られる。また、Xenon CPUコアはそれぞれ2wayのマルチスレッドで、レジスタリソースを2重に備えるため、物理的なVMXレジスタ数は各CPUコア256本ずつとなる。 面白いことに、このレジスタ本数は、PS3のCellプロセッサの、アプリケーション用CPUコア「SPE(Synergistic Processor Element)」のSIMD演算ユニットのレジスタ本数と同じだ。Cellでは、ループアンローリング(ループの展開)による処理高速化のためには、レジスタ本数をここまで増やす必要があると説明していた。レジスタ競合を避けるために、ループ内のレジスタを、コンパイラレベルで多くの論理レジスタに割り振る必要があるためだ。Xenonも同じ思想でレジスタ本数を増やした可能性がある。だとしたら、Xenon CPUについても、SPEのコンパイラと似たようなループアンローリングによる最適化を行なうコンパイラが提供されていることになる。 ゲームアプリケーションプログラムのような場合、ループで大量データを処理する場合が多いと推測される。プログラムの場合は、小さなコード部分が、CPUの処理時間のほとんどを占める(パレートの法則)ため、局所性の強いプログラム部分に多いループを最適化することは、性能上大きな意味がある。 現実問題、現在のCPUでは、トランジスタ資産自体は豊富にあるので、レジスタ本数を増やすことは、製造面ではそんなに大きな問題ではない。レジスタ本数を増やす場合の問題は、スレッドを切り替える場合、コンテクストスイッチングに時間がかかるようになってしまうことだ。このペナルティを軽減するために、Xenon CPUではマルチスレッディングをサポートしているのかもしれない。 もっとも、VMXを使うタスクが限られているとすれば、方策は他にもあると、CPUに詳しいライターの塩田紳二氏は指摘する。例えば、VMXを特定のタスクにバインドして、VMXレジスタだけは通常は待避しないようにブロックすることもできる。そうすれば、待避する必要があるのは32本ずつの64bitのGPRとFPRだけで済むので、コンテクストスイッチングは軽くなる。 ゲーム機の場合、特定のプログラミングコミュニティに特定のプログラムを書いてもらうだけなので、こうしたアーキテクチャの拡張は、比較的やりやすい。 ●2wayのマルチスレッドアーキテクチャ すでに説明したように、Xenon CPUでは各CPUコアが2スレッドを並列実行できる。そのため、3CPUコアでは合計6スレッドの並列度となる。ただし、2つのスレッドを完全に同時実行できるHyper-ThreadingライクなSMT(Simultaneous Multithreading)かどうかはまだわからない。 例えば、CellのPowerPCコアであるPPE(Power Processor Element)は、2スレッドの命令を1サイクル毎に切り替えて実行する「Fine-Grain」型のマルチスレッディングを行なっている。これは、CellのPPEが比較的シンプルコアで、複雑な命令スケジューリングをハードウェアで行わないからだ。通常は、out-of-order型のスケジューラで、SMTの管理も行なう。 しかし、Xenon CPUがPowerPC 970系と同等のCPUコアなら、当然out-of-order型のスケジューリングも行なうはずだ。そのため、SMT型のマルチスレッド制御を、比較的容易に実装することができる。 Xenon CPUのFSB(フロントサイドバス)は21.6GB/secの帯域。バスアーキテクチャが現在のPowerPC 970系と同じだとすれば、高速パラレルのユニダイレクションバスで、片方向が10.8GB/secずつということになる。XDR DRAMメモリインターフェイスをCPUに内蔵するCellと異なり、メモリインターフェイスはCPU側には持っていない。CPU側に接続されたメモリを共有するPS3とは構成が異なる。 XenonのCPUについては、まだマイクロアーキテクチャの詳細がわからないため、パフォーマンスも不明部分が多い。PowerPC 970系とどの程度近似なのかもわからない。ただし、予想できるのは、CellのPowerPCコアであるPPEほどシンプルアーキテクチャではない可能性が高い。Cellは9コアを集積するために、各CPUコアをシンプル化した。それに対して、Microsoftのフィロソフィは、汎用コンピューティングの性能は維持することで、そのために、Xenon CPUは、比較的リッチなCPUコアを備えていると推測される。集積するコア数も3個と少ないため、複雑度の高いコアでも、Cellと同程度のコストのダイ(半導体本体)に納められるかもしれない。
□関連記事 (2005年5月14日) [Reported by 後藤 弘茂(Hiroshige Goto)]
【PC Watchホームページ】
|
|