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

揺れるSCEの次世代ゲーム機「PlayStation 4」プラン



●ヘテロジニアスコンピューティング化と次期ゲームコンソール

 ソニー・コンピュータエンタテインメント(SCE)の次期ゲームコンソール(据え置きゲーム機)「PlayStation 4(PS4)」のプランは依然として揺れているようだ。PS4の心臓部であるCPUについては、今年(2009年)夏頃は「Cell Broadband Engine(Cell B.E.)」の拡張版を使う方向に傾いていると伝えられていた。これは、演算プロセッサである「SPU(Synergistic Processor Unit)」のメモリアーキテクチャを変更したバージョンだと言われていた。しかし、現在は、それ以外のプランが浮上していると伝えられ、再びPS4の行方は混沌として来た。プランの中には、普通のマルチコアCPUも含まれていると言われている。

 次世代ゲームコンソールに対しては、Intelも「Larrabee(ララビー)」を積極的に売り込んできた。しかし、結果として、ゲームコンソールベンダー3社(SCE、任天堂、Microsoft)はLarrabeeを採用しないようだ。

 また、3社がいずれも2009年にアーキテクチャの探求を行なっていることから、次世代機が登場する時期は2012年前後(2011年は難しく、遅ければ2013年)になると予想される(中継ぎと見られるWii HDなどは除く)。チップの開発から製造までは、それだけ時間がかかる。短期間で綱渡り的に開発したXbox 360ですら、下のスライドのようにCPUの設計コンセプト固めから製造まで24カ月が必要だった。ちなみに、次世代機はPSP2などの携帯ゲーム機の方が先に登場する。

Xbox 360のCPU

 次期ゲームコンソールアーキテクチャのポイントは2つ。1つは、プロセッサ業界で進みつつあるヘテロジニアス(Heterogeneous:異種混合)コンピューティングの波にどれだけ乗るのか。現在展望されているヘテロジニアスマルチコアでは、従来型のスーパースカラCPUの延長にあるCPUコアと、データ並列演算を強化したプロセッサコアの2種類を組み合わせる。この構成は、トランジスタ数や消費電力当たりの演算パフォーマンス(特に浮動小数点演算、データ並列)を引き上げるため、原理的にはゲームコンソールと相性がいい。

 ヘテロジニアス化の波は、そもそもPLAYSTATION 3(PS3)のCell B.E.が引き起こしたもので、その時点では、ゲームコンソールが明瞭なアーキテクチャ変革のリーダーだった。次期ゲームコンソールアーキテクチャのポイントの2つ目は、次の世代もゲームコンソールがテクノロジリーダーであり得るのかという点にある。SCEのPS4プランの揺れは、この2つのポイントが揺れていることを示している。

CPUアーキテクチャのトレンドと性能

●Larrabeeも検討したSCEのPS4プラン

 SCEは昨年(2008年)の中盤に、大手ゲームベンダーに対して次世代のPS4についての聞き取り調査を行なった。この時、SCEはCell B.E.の拡張版を使うとしたら、どんなことを望むのかというトーンで調査を行なっている。例えば、SPUの数はどの程度欲しいのか、プログラミング面での困難はどこにあり、どんな改良を望むのかといった形でだ。

 その後、SCEは2008年夏にIntelがLarrabeeアーキテクチャを発表すると、積極的に情報収集に動き始めた。これは、SCEの上層部がLarrabeeに強い関心を持ったためだと言われている。おそらく、CPUとGPUをワンチップで兼用することで、コストダウンが容易であると考えたためと推測される。x86命令セットの拡張命令の形を取るLarrabeeでは、プログラミングが容易になると期待したことも要素として考えられる。

 2008年の終わり頃から2009年頭になると、SCEがIntelとコンタクトを行ないLarrabeeの評価を始めようとしているという話が聞こえ始めた。Intelは2009年には、ある程度の数の顧客にLarrabeeボードを評価に出したため、SCEが評価を行なったこと自体は不思議はない。しかし、他の評価サイトなどから聞こえてくる声から判断して、おそらくSCE内での評価の結果もかんばしいものではなかったと考えられる。

 現状のLarrabeeアーキテクチャでは、現在の3Dグラフィックスパイプラインのパフォーマンス/電力効率は高くないからだ。ある業界関係者は「SCE関係者はLarrabeeについて、PS5やPS6の参考にはなるが、PS4には無理だろうと漏らしている」と語っていた。SCEがどの程度真剣にLarrabeeを検討したのかはわからないが、現状ではPS4にLarrabeeを搭載する線はほぼ消えているようだ。

Larrabeeの概要

●クラウドまで意識したCell B.E.のハードウェアアーキテクチャ

 その一方で聞こえてきたのは、これまでのCell B.E.の経験を活かした上で、アーキテクチャを拡張するというプランだ。

 Cell B.E.の難しさは、8個(使えるのは7個)搭載された演算プロセッサコアSPUのプログラミングにある。SPUは256KBのローカルメモリ「Local Store(LS)」を備えており、メインメモリDRAMとの間はDMAでデータとプログラムを転送しなければならない。その点が、各コアがメインメモリに直接アクセスが可能で、コア内部のメモリはハードウェアキャッシュとなっている通常のPC用マルチコアCPUとは大きく異なっている。

Cellの構造

 SCEがこうしたアーキテクチャを取った理由は2つ。1つは、キャッシュコヒーレンシのためのプロトコルが内部バストラフィックを食ってしまうのを防ぐため。コア数が増えれば増えるほど、コヒーレンシトラフィックがバスに重くのしかかる。内部バスの効率化と、将来的にコア数を増やすスケーラビリティを考えた場合、コヒーレンシを持たせない方が有利となる。

 もう1つの理由は、クラウドコンピューティング的な使い方をした場合のプログラムのポータビリティを高めること。Cell B.E.のSPUプログラムでは、LSに対するメモリアドレス空間はポータブルだ。つまり、ローカルのCell B.E.で実行する場合も、ネットワークの向こう側のCell B.E.で実行する場合も、同じアドレス空間になり、何も変えずに実行できる。この点で、Cell B.E.は、クラウドコンピューティングを最初から考慮して設計された最初の汎用CPUと言える。クラウドで実行した時に、最も効率よく働くCPUアーキテクチャを目指した。

 こうして見ると、Cell B.E.のアーキテクチャは、将来を見通したものであったことがよくわかる。しかし、それは将来への発展があってこそ生きるものだった。

 PS3をローンチさせると、聞こえてきたのは、プログラムの困難さに苦しむ声だった。特にネックになったのは、SPUでのLSの容量の制約と、LSとメインメモリ間のDMA転送の煩雑さだった。Cell B.E.の高い演算能力はPS3の最大の武器だったが、それを引き出すことができるデベロッパが限られるという問題を抱えてしまった。

 この問題は、現在も、まだ尾を引いている。例えば、欧米に多いマルチプラットフォームタイトルは、PCと似たようなマルチコア構成であるためプログラムしやすいXbox 360をターゲットに開発。それをベースにPS3に移植し、よりGPU性能を活かしたバージョンをPCに移植するといったパターンが多い。その場合、PS3のメインCPUコアである「PPU(Power Processor Unit)」がXbox 360 CPUと命令レベルでの共通性があるため、PPUに主に移植し、SPUはほとんど使わない場合が多い。こうしたタイトル制作では、PS3の演算パフォーマンスの利点は活かされない。

Cellのダイアグラム
Cellのコンピューティングのビジョン

●複数存在するPS4のアーキテクチャプラン

 SCEやCell B.E.開発に加わったソニー、東芝、IBMの技術陣もこうした問題は認識しており、早い段階からCell B.E.の修正プランは考えられていた。1つは、ハードウェアで支援する仮想メモリ的な手法によって、メインからLSへのデータ転送を隠蔽する方法だったと言われている。

 おそらく、このプランは、LSを仮想化し、プログラム側からは、容量の制約がないように見えるようにするものだったと考えられる。その場合、実際にはメインメモリ上に仮想メモリがあっても、プログラマが転送は意識する必要がなくなる。LSに分散したメモリアーキテクチャはそのままだが、DMA転送の煩雑さを隠蔽できる分だけ、プログラミングは容易になっただろう。ただし、現在のLSのように短レイテンシを常に期待できるという利点はなくなったはずだ。

 もう一歩進んだプランは、SPUのLSを、ハードウェア管理のキャッシュにしてしまうものだと言われている。DMAを介さずに直接メインメモリにアクセスできるようにする。通常のPC向けCPUと同じで、単一のメモリ上で容易にプログラムを組めるアーキテクチャだ。

 このアプローチの場合、コヒーレントトラフィックで内部バスが食われるため、SPU数を多くした場合には問題が生じる。しかし、それはフィルタリング(コヒーレンシを取る必要がないSPU群間はトラフィックをフィルタしてしまう)で軽減する。このプランでのSPUは、一時「SPU2」とも呼ばれていた。ハードウェア(FPGA)ベースのシミュレータも作られていると言われている。

 SCEは、2009年夏頃は、この修正版SPUを使った拡張版Cell B.E.をPS4のコアとして検討していた形跡がある。少なくとも、有力候補であったことは確かだ。しかし、最近になり、別なプランもあると言われ始めている。こちらのプランは情報がまだ錯綜しているため、概要を断定することができない。しかし、大筋では、ヘテロジニアスマルチコア構成を捨てた、PCライクなマルチコアのプランだと言われている。

 もし、こうしたプランが検討されているとすれば、その目的は、現在のソフトウェアデベロッパからの不満を抑え、プログラミングを容易にするためと推定される。Xbox 360が同様の構成で成功しているからだ。しかし、それは、Cell B.E.で開いたヘテロジニアスコンピューティングの思想を真っ向から否定することになる。もっとも、柔軟なGPUを別立てで持ち、そちらを汎用コンピューティングにも使うとしたら、システム全体ではヘテロジニアス構成となる。

 具体的な動きが一切見えてこないところを見ると、今のところ、まだSCEはアーキテクチャを決定していない可能性が高い。しかし、SCEは、CPUアーキテクチャの方向性の根源に踏み込んだ変更も視野に入れているようだ。