●あまりに強力なCellプロセッサ
2005年のPlayStation 3のCPU「Cell」は、おそらくワンチップに32個のサブプロセッサを搭載し、256基の演算ユニットを持ち、最大1,024個の32bitデータの演算を並列に行なうことができると推定される。処理性能は、浮動小数点演算で最大1TeraFLOPS(Floating Operations per Second)と、ちょと前のスパコン並みに達するだろう。演算性能では、同時期のx86 CPU、例えばIntelの「Nehalem(ネハレム)」などをはるかに凌駕すると考えられる。ただし、チップのトランジスタ数も、数億から10億個レベルと、大きく跳ね上がるだろう。 PlayStation 3のグラフィックスチップもおそらくCellテクノロジベース、Cellの外部メモリはRambusの「Yellowstone(イエローストーン)」DRAM、チップ間インターコネクトもRambusの「Redwood(レッドウッド)」テクノロジを使うと想定される。また、PlayStation 2のコアチップセット「Emotion Engine(エモーションエンジン)」「Graphics Synthesizer(グラフィックスシンセサイザ)」をワンチップ化した互換チップ、I/O(ネットワークを除く)チップが搭載されると推測される。 ソニー・コンピューターエンタテインメント(SCEI)は、まだ次世代PlayStationの技術概要については一切明かしていない。しかし、SCEIがCellに関連して日米で出願した特許のいくつかが公開され始めており、その内容からPlayStation 3とPlayStation 3を取り巻くCellネットワークの輪郭が明らかになりつつある。 特許文書を見る限り、Cellは極度にスケーラブルなアーキテクチャだ。以前から言われているように、PlayStation 3だけでなく、PDAからサーバーまで幅広い分野をカバーできる。そして、それぞれの用途向けに異なる構成のCellを作ることができるアーキテクチャになっている。 そのため、特許文書から、PlayStation 3用のCellの構成を完全に特定することは難しい。しかし、特許の中で好適(preferred embodiment)、つまり望ましいとされている構成をPlayStation 3用と仮定すると、つじつまが合う部分が多い。そのため、ここではそう仮定して、PlayStation 3の構造を推定してみたい。 ●マトリョーシカのようなCellアーキテクチャ
Cellプロセッサのアーキテクチャの、ハードウェア面での特徴は『入れ子構造』だ。マトリョーシカのように、プロセッサが階層構造で格納されている。 Cellの基本となるのは「Processor Element(PE)」と呼ばれるCPUコア。これが、単体で動作できる最小単位となる。特許文書にあるCellプロセッサの望ましい例では、ワンチップにこのPEが4ユニット含まれている。PlayStation 3のCellもその構造である可能性が高い。通常のCPU的に考えれば、4つのCPUコアを搭載したマルチチップ構成だと考えればいい。もちろんPEが1個の構成のCellプロセッサも、携帯機器用などで考えられる。Cell内の各PEは「Broadband Engine (BE) Bus」と呼ばれるバスで連結される。 Cellが通常のCPUと異なるのは、このPEの中にさらに従属的なプロセッサユニット「Attached Processing Unit (APU)」を複数搭載する点だ。PEには、この他、各APUをコントロールする「Processing Unit (PU)」と、メモリアクセスを担当する「Direct Memory Access Controller (DMAC)」が含まれる。PUは「APU remote procedure call (ARPC)」と呼ぶ内部命令を使ってAPU群を制御する。PC的な考え方としては、各APUが個別のスレッドを処理する、スレッド並列化CPUで、PUがスレッドスケジューリングユニットと見ることもできる。 1個のPEに内蔵されるAPUの数は固定されていない。しかし、特許文書の例では1個のPEに8個のAPUを内蔵するのが好ましいとされている。PlayStation 3のCellもこの構造である可能性が高い。ただし、機器によってはAPUが4個や6個という構成も考えられる。PEの中のPUとDMACとAPUは、「Local PE bus」と呼ばれる内部バスで接続される。 各APUの中には複数の演算ユニットが含まれる。特許文書の例だと、4個の浮動小数点演算ユニットと4個の整数演算ユニットが搭載されている。どちらもSIMD(Single Instruction, Multiple Data)処理ユニットであることが望ましいとされている。この他、各APUには128本の128bitレジスタ(浮動小数点と整数で共用?)と128KBのローカルメモリが搭載される。 ちなみに、演算ユニット群とレジスタの間のバスは、レジスタ→演算ユニット群が384bit、演算ユニット群→レジスタが128bit。つまり、4つの演算ユニットは、128bitレジスタに対して、3読み出し+1個書き込みを並列に行なうことができるわけだ。これは、浮動小数点ユニット群も整数ユニット群も同じ。 ちなみに、バス幅とレジスタ幅が128bitであることから、APUは浮動小数点/整数ともに128bit幅のSIMDが想定されていることがわかる。典型的には32bit×4、つまり、浮動小数点なら単精度データ4個のSIMD演算ができると推定される。早い話がx86系CPUのSSE2ユニットや、GPUのProgramable Shaderと同じタイプだ。
●512個の演算を並列に行なうCell
では、PlayStation 3のCellが、特許文書の好適例と同じ構成であると想定したら処理性能はどうなるのか。まず、演算の並列度を見てみよう。 各Cellが4つのPEで構成され、各PEが8個のAPUを備え、各APUが4個の浮動小数点ユニットと4個の整数ユニットを持ち、各演算ユニットが通常4データをSIMD演算できるとする。そうすると、次のようになる。
4データ×4演算ユニット×8APU×4PE=512個の演算になる。だから、Cellは1クロック当たり、最大で、512個の32bit浮動小数点演算と、512個の32bit整数演算を同時に行なう能力があるというわけだ。 では、Cellの動作周波数はどのあたりをターゲットにしているのか。特許文書によると、Cellの浮動小数点ユニットは、32GFLOPSの性能が望ましいとされている。日本の特許文書だとこれが1個の浮動小数点ユニットの性能のようにも読めるが、米国の文書だと複数形になっているため、これは4個のユニットの合計で32GFLOPSだと明確にわかる。そうすると、逆算するとCellの動作周波数は2GHzが見込まれていることがわかる。 では、512個のデータの並列処理で2GHz動作で性能はどうなるのか。512×2GHzで、浮動小数点演算はピークが1TeraFLOPSとなる。整数演算も同じだ。ちなみに、以前のSCEIの発表資料では、「1つのCellがTeraFLOPS級の演算性能」を達成するとされていた。つまり、特許文書の構成でのCellの性能と、ピタリと一致するわけだ。このことからも、PlayStation 3のCellが、特許文書の望ましい構成例と似ていると推測される。 Cellについては、この他にも驚くほど多くのことが特許文書から推定できる。ソフトウェアオブジェクトの構成、オンチップのネットワークインターフェイス、APUとメモリバンクを合致させるDRAMコントロールなど、Cellには他にも興味深いアーキテクチャが満載される。意表を突くアーキテクチャのオンパレードに近い。 しかし、特許からではまだわからないことも多い。例えば、特許文書だけでは、CellのメインメモリがEmbedded DRAMなのか外付けDRAMなのかわからない。しかし、これについては外付けで、RambusのYellowstone DRAMを使うと信じるに足る理由がいくつかある。今後、こうしたPlayStation 3のアーキテクチャの別な側面も、順次レポートしたい。 (2003年5月29日) [Reported by 後藤 弘茂(Hiroshige Goto)]
【PC Watchホームページ】
|
|