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