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

PlayStation 4の強力なカスタム設計セカンダリチップ

GDCで明らかになったPS4の機能とハード、ソフト

 ソニー・コンピュータエンタテインメント(SCE)の次世代ゲーム機「PlayStation 4(PS4)」のハードとソフトの両面の実像が明らかになりつつある。サンフランシスコで開催されたGDC(Game Developers Conference)では、PS4のさまざまな機能とソフト、サービスが明らかにされた。そこで浮かび上がったのは、カスタム設計のセカンダリチップが、意外と重要な役割を果たしていることだ。

 セカンダリチップに多くの機能を持たせていることは、PS4のAPUの構成がAMDの標準的なAPUとは大きく異なっている可能性を示唆している。下の図はPS4のAPUの想定構成図だ。左側のI/O回りをクエスチョンにしているのは、ディスプレイへの出力がAPU側にあるかどうかがわからなくなって来たからだ。通常は、APUは多用途に使えるシリアル系のI/Oを多レーン備えているが、PS4では、それらはセカンダリチップとの接続だけに使われているかも知れない。

PS4 APUのアーキテクチャ想定図
PDF版はこちら

 その一方で、APU内部の拡張はある程度見えてきた。以前にレポートした通り、GPUコアはコンピュート機能が拡張されている。これは、コンピュートタスクのディスパッチユニットを拡張したもので、細粒度で多数のコンピュートタスクを、グラフィックスタスクと並列に各CU(Compute Unit)に実行させるための機能拡張だ。だが、その他にも、AMD APUのGPUとメモリインターフェイスの間の2系統のバスが拡張されていることは確実だ。

PS4のGPGPU
PDF版はこちら

 APUの内部バスはほかのAMD APUと共通のバスで、1つは、「Garlic(ガーリック)」の通称で呼ばれる「Radeon Memory Bus(RMB)」。GarlicはGPUのメモリコントローラと、DRAMコントローラを直結する。もう1つは、Onion(オニオン)と呼ばれる「Fusion Compute Link(FCL)」で、こちらはCPUのメモリバスを経由する。このうちGarlicは、一般的なAPUの2倍の幅があるPS4のメモリインターフェイスに合わせて拡張されているはずだ。また、Onionも、PS4の説明にあるCPUコアとGPUコアがフルに共有メモリ領域にアクセスできるという機能のために拡張されているはずだ。従来のAPUのOnionにはパフォーマンスの問題があるため、その点が改良されていると見られる。

リッチな機能を持つセカンダリチップ

 PS4のメインチップセットは、AMDのアーキテクチャをベースに拡張したカスタムのAPUと、もう1つペアとなるカスタムのセカンダリチップの2チップ構成を見られる。このセカンダリチップの正体が、徐々に明らかになりつつある。

 SCEは、メインのAPUを使うことなく、APUに接続されるカスタム設計のセカンダリチップによってバックグラウンドプロセッシングができることを明らかにしている。GDCでは、ゲームプレイの動画エンコードも別チップで行なうことが明確にされた。

 そのため、セカンダリチップは、PCのチップセットと異なり、かなりの機能を備えたマルチメディア&コミュニケーションチップであると見られる。そして、セカンダリチップがそうした機能を備えているとすれば、それはPS4の仕様策定の段階から、すでにゲームプレイのビデオキャプチャやバックグラウンド作業などを想定していたことになる。チップ設計に関わるため、設計当初から仕様とユーセージを想定していなければ、実現できないからだ。

 シンプルに言えば、PS4はチップ設計の段階から、ネットワークコミュニケーションやゲームプレイの共有といった、ソーシャルな機能を充実されることを念頭に置いて作られている。PS4で謳っているソーシャル機能は、付け焼き刃的に後から加えられたものではなく、PS4の設計当初から重視されていた。

シェア機能を実現するためのハードウェア技術

 今回、GDCの技術セッションでは、PS4のゲームプレイ動画のキャプチャ機能が紹介された。この機能については、ニューヨークでのPS4発表時にも説明されたが、GDCではより詳細が明らかにされた。

PS4の共有機能

 PS4では、常に最新の数分間のゲームプレイのビデオを自動記録させておくことができる。そのため、ユーザーは自分のゲームプレイを数分間まで過去に遡ってキャプチャして、保存したりネットにアップロードすることができる。例えば、ゲームのボス戦の後に、それを遡ってクライマックスのビデオをクリップして共有できる。ゲームプログラム側は、保存するプレイビデオに、チャプター情報のマーカーを挟むことができる。ユーザーはそのマーカーを元に、録画されたビデオを編集することが可能だ。

 こうしたシェア機能には、新しいPS4のコントローラについている「シェアボタン(Share Button)」で簡単にアクセスできる。シェアボタンはコントローラの左手側についている物理的なボタンだ。

PS4のコントローラとシェアボタン

 シェアボタンを押すと、ゲームプレイ中でもシェアメニューが開く。あるいは、シェアボタンを長押しすることで、画面のスクリーンショットを取ることもできる。シェアメニュからは、スクリーンショットやプレイビデオを他のユーザーとシェアしたり配信したりといった選択ができる。例えば、Facebookに簡単にコメント付きでアップロードできる。また、PS4システムがスタンバイ状態にある場合も、バックグラウンドでアップロードできる。このほか、PS4では、ゲームプレイをライブでストリームすることもできる。他のユーザーがそのゲームプレイビデオを見て、コメントすることも可能だという。シェアしたスクリーンショットやビデオ、あるいはストリームは、PS4以外の端末からも見ることができる。

 最大のポイントは、PS4では、こういった機能は、ゲーム側のリソースを一切消費することなく実行されるという点だ。それは、このシェアの画面管理の機能が別チップで行なわれるためだという。

 「セパレートのチップにハードウェアベースのビデオデコーダとエンコーダが載っている。そのため、ゲームに必要なリソースは一切(プレイ動画のキャプチャに)使うことがない。メモリもCPUも帯域も一切使わない」とSCEAは説明する。

 ゲームプレイのビデオのエンコードはAPUでは行なわれない。全ての作業が、完全に別チップで行なわれると見ていい。10年前なら、この説明ならエンコーダ専用チップがついていると考えたろうが、現在ならそれはありえない。チップの機能集積が進んでいるからで、カスタム設計のセカンダリチップ側に、こうしたシェアのためのハードウェア機能も搭載されていると見られる。

シェア機能を搭載するとみられるカスタムのセカンダリチップ

 そして、このことは、APUからの画面出力が、いったんセカンダリチップを経由してディスプレイに出力される可能性があることを示している。つまり、PS4では、ディスプレイ出力インターフェイスはAPUではなく、セカンダリチップに搭載されている可能性がある。画面出力をセカンダリチップを経由して出すなら、セカンダリチップの内部で画面をエンコードしてバッファすることも容易になる。もちろん、APUから出力しながら別系統でセカンダリチップに送ることも可能だが、セカンダリチップから出力すると考えた方がより自然だ。

 また、SCEAは説明の中で別チップにエンコーダだけでなくデコーダも載っていると言っていた。このことは、例えばBDの再生のような動画デコードも、セカンダリチップだけで実現できる可能性を示している。AMD GPU/APUの通常のビデオコーデックではなく、独自のフル機能のビデオコーデックをセカンダリチップに持っているかも知れない。

 もし、そうした構成を取るなら、セカンダリチップ側にも、マイクロコントローラ以上のプロセッサコアと一定量以上のメモリが必要となる。逆にそうしたCPUコアを載せるなら、さまざまなことをセカンダリチップだけで実行することが容易になる。メモリは外付けチップにするとコストがかさむが、eDRAMもファウンドリを制限するので難しいため、どうなっているのか推測しにくい。

PS4の概要
PDF版はこちら

PS4の出力系はセカンダリチップ側にある?

 先述の通り、PS4のゲームプレイビデオのキャプチャ機能が示唆するのは、この機能が、後から加えられたものではなく、PS4の設計初期の段階から意図されていたものであることだ。なぜなら、それに合わせたチップ構成とチップ設計を取らない限り実現できないためで、そのためには、APUとセカンダリチップの設計当初から明確に機能が規定されている必要がある。そして、チップの仕様を決めて設計をスタートするには長い期間が必要だ。実際のところ、自分のゲームプレイを、さまざまな手段で録画したりキャプチャしたことがあるゲーマーは少なくないはずで、そうしたニーズを最初から汲み取っていたと言える。

 また、この機能が示しているのは、SCEがPS4の設計において、メインのCPUコアやGPUコアはAMDアーキテクチャをベースにするものの、チップレベルでゲーム機として差別化するかを深く検討したことだ。そもそも、明らかになりつつあるPS4のセカンダリチップの設計は、こうして見るとAMD的ではない。むしろ、家電に慣れたソニーの匂いがする。セカンダリチップの設計はAMDではなく、SCE自身が行なっている可能性がある。

 PS4で、ディスプレイ出力をセカンダリチップ側から行なっているとすると、それはディスプレイ出力の自由度に大きく関わる。セカンダリチップがSCE設計で、そちらから出力するとしたら、ディスプレイ出力の構成はAMDの標準的なAPUとは、かなり構成が異なっている可能性がある。

 通常のAMDのAPUは、画面出力のためのインターフェイスも含めて全てAPU内部に備える。下の図はK10ベースのLlano(ラノ)の全体図と出力インターフェイスの構成図だが、Trinity(トリニティ)でも大きくは違わない。SerDesが共通化されており、PCI Expressとデジタルディスプレイ出力はある程度自由に組み合わせられるようになっている。

Llanoの全体図と出力インターフェイス
Llanoのアーキテクチャ
PDF版はこちら

 AMD APUのI/Oの仕組みは合理的にできていて、最小のダイ面積で、フレキシブルなインターフェイス構成を取ることができるようになっている。もし、PS4がこうした出力インターフェイスの仕組みを取っているなら、例えば、3画面出力は簡単に実現できるだろう。3出力インターフェイスの端子を揃えることもできるし、DisplayPortで出してデイジーチェーン接続で3画面の対応もできるからだ。

 もちろん、異なるレンダリング面への出力は、GPUコア内部に備えているディスプレイパイプラインの数に依存する。しかし、大きな解像度の画面をレンダリングして、それを3画面分割で出すなら、ディスプレイパイプラインが例え2本しかなくても3画面出力は可能だ。

 しかし、一見するとわかる通り、AMD APUの出力構成はDisplayPortに最適化されている。PCI ExpressとSerDesが共用になっていることは、エンベデッドクロックでPCI Expressと親和性の高いDisplayPortに有利で、TMDSベースのHDMIには最適化されていない。SCEが自社のセカンダリチップを設計するなら、PCにフォーカスしたAPUの出力インターフェイスの設計に合わせる必要は何も無い。家電の世界で標準となっているHDMI系に合わせるのが自然だ。

 もし、ディスプレイ出力がセカンダリチップ側にあり、セカンダリチップからの出力が物理的な実装で固定されている場合は、PS4のディスプレイ出力は実装に依存する。そして、HDMIはライセンス料が相対的に高いため複数出力の実装がコスト的に難しい。HDMIで3出力といった構成がチップレベルで想定されているかどうかは、わからない。DisplayPortがチップに実装されていればデイジーチェーン接続できるので問題はないが、家電側でのDisplayPortの普及度を考えると、ネイティブにサポートしているかどうかはわからない。ただし、SCEが4Kディスプレイ出力も将来的な視野に入れているとすると、インターフェイス構成も、また変わって来る。

(後藤 弘茂 (Hiroshige Goto)E-mail