PlayStation 5の設計思想はXbox Series X以上に現行世代と“別モノ”

Computer
ComputerGame
この記事は約19分で読めます。
記事内に広告が含まれる場合があります。

後々見返す時にまとまった情報がないと探すのが面倒なので、3月18日に公開されたソニーの次世代家庭用ゲーム機「PlayStation 5」の情報をまとめた。情報元はSIE PS5 リードシステム開発者のMark Cerny氏による公式プレゼンテーション動画と、それを受けてDigital Foundryから公開された詳報です。

Xbox Series X単体の細かい話は別記事にまとめ済み。

スポンサーリンク

基本仕様では動作クロックなどが新たに公開

公開された基本スペックは以下の表の通り。比較対象としてPlayStation 4 ProとPlayStation 4、Xbox Series Xも併記しています。

仕様PlayStation 5Xbox Series XPlayStation 4 ProPlayStation 4
CPU8コア/16スレッド @ 最大3.5 GHz(可変)8コア/16スレッド
@ 3.66 GHz (@ 16スレッド) / 3.8 GHz (@ 8スレッド)
8コア / 2.1 GHz8コア / 1.6 GHz
CPUアーキテクチャZen 2Zen 2JaguarJaguar
GPU (FLOPS値はFP32)36 CUs @ 最大2.23 GHz(可変), 10.28 TFLOPs52 CUs @ 1,825 MHz, 12.155 TFLOPS36 CUs @ 911 MHz, 4.198 TFLOPS18 CUs @ 800 MHz, 1.84 TFLOPs
GPUアーキテクチャRDNA 2ベースRDNA 2ベースGCNベースGCNベース
メモリ / メモリバス16 GB GDDR6 / 256-bit16 GB GDDR6 (2 GB ×6 + 1 GB ×4) / 320-bit8 GB GDDR5 / 256-bit8 GB GDDR5 / 256-bit
メモリ帯域幅448 GB/s10GB (GPU Optimal): 560 GB/s
6GB (Standard): 336 GB/s
218 GB/s176 GB/s
内蔵ストレージカスタム825GB SSDカスタム1TB NVMe SSD1TB HDD500GB HDD
I/Oスループット5.5 GB/s
圧縮転送時: 8~9 GB/s
2.4 GB/s
圧縮転送時: 4.8 GB/s
約50~100 MB/s約50~100 MB/s
拡張ストレージM.2 NVMe SSDスロット次世代NVMe SSDUSB HDDUSB HDD
光学ドライブ4K UHD-BD4K UHD-BDBDBD

すでにCPUが8コア/16スレッドのZen 2で、GPUがRDNA 2ベースであることは発表済みのため、仕様表の新情報は動作クロックについてくらい。

SoCのクロック制御概念図 (Image Credit: SIE)

動作クロックはCPUで最大3.5 GHz、GPUで最大2.23 GHz。ただしクロック固定動作のPS4やXSXと異なり可変クロックのため、常に最大クロックで動く訳ではない。

PS5のGPUはXSXより「FLOPSの分だけ低性能」とは言いきれない?

RDNA 2のコンピュートユニット(CU)のトランジスタ密度はPS4世代のCUよりも62%高く、トランジスタ数で換算すればPS5の36 CUsはPS4の58 CUs相当。加えて、PS5のCUはPS4より2倍以上高いクロックで動作しているので実効性能はかなり上がっているハズ。

GPUに関連してCerny氏は、「36 CU @ 1 GHzのGPU」と「48 CU @ 750 MHzのGPU」を比べたとき、それぞれのFLOPSは同じ4.6 TFLOPSになるが、実ゲームの動作は同じにならないと説明。FLOPSはベクトル演算の指標で、ベクトル演算はGPUが担う処理の一部でしかないというのが理由だそう。

具体的には、前述の例のようにクロックが33%高い場合なら、ラスタライズの処理は33%高速になりコマンドバッファの処理速度とL1/L2キャッシュの帯域幅が大きく向上する。

計算上同じFLOPSでもクロックが異なればゲーム体験も異なる (Image Credit: SIE)

直接言及はしていないものの、同氏の発言からは「PS5とXSXのGPUを比べると、CU数では劣るがクロックで勝っているため、FLOPSだけで性能差を測ることはできない」というニュアンスが汲み取れる。実際にXSXとの16 CUの差を+400 MHzのクロックで埋められるのかはともかく、単純にFLOPS差で「PS5のGPUはXSXより18%遅い」とは言い切れないのは確かでしょう。

可変クロック=PS5の個体差で動作クロックも変わる、訳ではない

可変クロックとなると気になるのが、「室温やチップの個体差で動作クロックが変わるのか?」ですが、結論から言うと変わりません。

PS5のブーストクロックは、PS5の冷却機構の性能を基にSoCへ電力の供給量を設定するという仕組み。従来の家庭用ゲーム機ではクロックは一定で、処理負荷に応じて消費電力が変化する(XSXもコレ)のに対し、PS5は基本的に一定の電力で動き、負荷に応じてクロックを変動させる。

固定クロックの場合、負荷によらずクロックが一定のため、「アイドル状態は消費電力が小さい=低発熱」であると同時に、「フルロードでは消費電力が増大=発熱もその分跳ね上がる」。言い換えると、極端に負荷が高い場合、冷却機構の想定以上に温度が上がってしまう可能性がある。

Cerny氏は「PS4の冷却設計は最適ではなかったかもしれない」と認めた上で、SoCに対する供給電力の上限を設けることでPS5では熱設計の問題を簡素化したと説明。

実際、PS4世代で重量級タイトルの1つである『Monster Hunter: World』をPS4 Proで遊ぶと、ファンがブン回り掃除機のような轟音を立てるので、SIEがPS4 ProでSoCの発熱を甘く見ていたのは事実でしょう。

話を戻すと、PS5では供給電力に上限を設けて発熱量の最大値を定めることで、どんな負荷でも確実に冷やしきれる冷却システムの設計を可能にしている。ついでに、開発者側からすると最高負荷シーンにおけるSoCからの発熱の推測も不要になっているのも利点と言える。

一貫した動作を実現するタスクベースのクロック制御

SIEがアピールするように、可変クロックにはメリットが多数ある一方で、クロック制御の目安に(PCやスマートフォンなどと同じく)SoCダイの温度を使ってしまうと、「PS5間で動作に差が生じてしまう」という問題が生じる。

原因は「設置場所などによって周辺環境の温度が異なる」、「同じ周波数でもSoCの個体差で温度が異なる」の2つで、多数のプレイヤーに同じゲーム体験を提供するため、異なる環境/異なる個体でも同じように動く“動作の一貫性”が求められる家庭用ゲーム機では、個体差が発生するのは問題になる(そうでないとアタリ個体あるいはハズレ個体が生まれてしまう)。

SIEはその解決策として、PS5ではCPUとGPUのアクティビティ情報に基づいてクロックを制御するアルゴリズムを実装。これによってPS5間の動作に一貫性を持たせている。

クロック制御を司るのはSoC内部の電力制御ユニットで、CPU / GPU / メモリインターフェイスの動作を常時監視してそれぞれのタスクを評価。タスク評価では、搭載SoCの特性に基づいて消費電力を判断するのではなく、SoCの動作をシミュレーションした「ソフトウェアモデルSoC」が使われ、この一般化されたモデルに基づいて評価を行うことで動作の一貫性を実現している。

結果、同じゲームをプレイしてゲーム内の同じ場所に行けば、全てのPS5が同じ用に動作し、SoCのトランジスタがアタリかハズレかは無関係で、テレビ台の上にあろうと冷蔵庫の中にあろうと、全てのPS5が同じCPU/GPUクロックで動く(Cerny氏)。

これだけの工夫を組み込んでまで、可変クロックを導入したのは凄い。

クロックブーストの遅延を最小に抑えてTime Constantを短縮

開発者にとって重要な要素となるのが、CPUとGPUがタスクに見合ったクロックに達するまでに必要な時間を指す「Time Constant (時定数)」で、PS5における時定数は非常に短く、数フレーム間だけの高負荷でもラグなしにすぐスロットルが効くほか、開発者がCPUとGPUがどの程度電力を使用しているかを正確に把握できる(Cerny氏)。

ゲームエンジンの最適化については、与えられた電力レベルに対して最適なパフォーマンスを実現するために、PS5のゲーム開発ではこれまでと違う形で最適化が行われる(同氏)。

PS5への最適化で鍵となるのは消費電力で、開発者はGPUから同じ(演算やレンダリングの)結果を得られる範囲で消費電力が小さくなるように最適化してやれば、下がった電力の分クロックが上昇=処理が高速化できる。

なお、Digital Foundryが複数の開発者から得た情報では、現状のPS5開発キットはGPUクロックを2.23GHzに維持するためにCPUクロックを制限しているとのこと。

ただし、現行ゲームエンジンは性能の低いJaguarコア(PS4)を念頭に設計されているため、スループットが2倍になったとしても(PS4の30fpsタイトルを60fpsで動かすとか)Zen 2コアにとって負荷が軽く、低クロックで十分処理できるため、クロックの制限は理に適っていると言える。

余剰電力は動的に割り振る「SmartShift」

可変クロックに関連して、PS5はAMDが「SmartShift」と呼ぶ仕組みを採用している。前述の通り、CPUとGPUにはそれぞれ最大供給電力が設定されていますが、例えばCPUが電力を使わない場合には余剰分がGPUに回される。

ちなみに、SoC全体の最大供給電力は、CPUとGPU両方が最大クロック(3.5 GHzと2.23 GHz)で動作するのに十分な量で、最高速動作のためにどちらかを制限する必要はない(Cerny氏)。

動作ターゲットとするのはホットスポットが重なるポイント (Image Credit: SIE)

SIEではホットスポット(CPUとGPUの熱密度)が同じになるクロックの組み合わせを見つけ出したとのことで、恐らく(SoCが発熱vs性能比で最高効率になる)そのポイントを基準にクロックが制御されると思われる。

スポンサーリンク

後方互換性確保のためにGPUにロジック実装、CPUもカスタム

PS5では、PS4/PS4 Proのタイトルが遊べる後方互換性が確保されている(流石にx86でなくPowerPCがベースのCell Broadband Engineが載っていたPS3との互換性維持は無理があるので切り捨てられた)。

実装については、PS3のようにPS2のハードをほぼそのままブチ込んで動かすような力づくの実装ではなく、SoCを使った互換動作で対応している。

PS3時代の後方互換性概念図。単純明快だが高コストな実装だった (Image Credit: SIE)

PS5は、PS4とPS4 ProからGPU/CPUともに新アーキテクチャへ刷新されたため、PS4世代との下位互換性を確保するべく、PS5ではRDNA 2 GPUに追加のロジックが追加されているとのこと。

CPUについては、Jaguar CPU用に作られたゲームロジックはZen 2 CPUで正常に動作する(Cerny氏)が、命令の実行タイミングが大きく異なる場合がある(PS4比でクロックが倍以上高いので)ことから、AMDと協力して特定のZen 2コアをカスタムしている。

表現的に、“特定のZen 2コア”は8コアの内の一部コアの意味で、それを互換動作用にカスタム(故意にクロックを上げない動作モードを追加するとか)しているのではないかと思われる。

PS5の前世代互換はSoCの互換動作で対応する(Image Credit: SIE)

なお、SIEはPS4のゲーム開発者に対して、7月13日以降にSIEへ提出されるタイトルについてはPS5との後方互換性確認も必要になると通達を送っているとのこと。

パッケージの互換性表示に関しては、ゲームとして動作してもPS5で特定のモードをサポートしていないような場合には、「PS5対応」表示ができない。また、7月13日以前に提出されたタイトルについても、PS5との後方互換対応を“強く推奨”されているとのこと。実際、認定が7月13日以前になる『Ghost of Tshushima』もPS5互換タイトルとして発売される。

なんにせよ、PS4世代の互換動作は一部タイトルしか遊べないということはないようで安心。

お蔵入りになったハズの「プリミティブシェーダー」採用の謎

GPUの機能面ではRDNA 2ベースの他製品と同等のものを備え、三角形やその他プリミティブの制御とGeometry Culling(ジオメトリカリング: プレイヤーの視点から見えないなどの理由で最終的に表示されなかったり、切り捨てられたりするレンダリング要素を排除する最適化を指す)の簡単な最適化を実現している。

新実装の「Geometry Engine(ジオメトリエンジン)」は、トライアングルやその他のプリミティブの大規模な制御を可能にするもので、ジオメトリカリングのための最適化を簡単に行うための機構。

そしてここで登場するのが「Primitive Shader(プリミティブシェーダー)」の搭載ですが、これが西川善司氏も言及している通りかなり謎。

GPUのプログラマブルシェーダは、DirectX 8で追加された「Vertex Shader(頂点シェーダー)」、DirectX 10で追加されたポリゴンの増減を司る「ジオメトリシェーダ―」、DirectX 11で追加された「Hull Shader(ハルシェーダー)」とポリゴン分割ユニットの「Tessellator(テッセレータ)」、さらに「Domain Shader(ドメインシェーダー)」(3つまとめて「Tessellation Stage(テッセレーションステージ)」とも呼ぶ)が順に追加された。

最後のテッセレーションステージは、「遠い3Dモデルは簡略化した少ないポリゴンで描画」、「近い3Dモデルは詳細なディテールの多ポリゴンで描画」、「その中間はポリゴンを適宜分割して適切な詳細度の3Dモデルを生成、描画」という仕組みを実装するためのものだったが、活用するには、3Dモデルのデータ構造をテッセレーションステージに適した仕様にしてやらないと動かないという問題があり、これが面倒で開発者から敬遠されてしまった。

さらにテッセレーションステージ以前から使われていたテクニックである、遠/中/近3段階のディティールの3Dモデルを用意して視点からの距離に合わせてモデルを切り換える「Level of Detail (LoD)」でも動的なキャラクターなら視覚的な差があまりなかったという事情もあって、活用されることなく今に至っている。

結局、実装が面倒な割に大して速くもならなかったため、頂点シェーダー以外まともに使われていないというのが現状のようです。

無駄の多かったジオメトリパイプラインを最適化したPrimitive Shader (Image via 4gamer.net)

そういった背景の中、お荷物扱いになっているジオメトリシェーダーとテッセレーションステージをなんとかするべく、2017年にAMDが発表した新たなジオメトリパイプラインがプリミティブシェーダー。

簡単に言えば、後から機能を追加したせいで無駄が多すぎた各シェーダーを処理順に並べ替えたり、最適化したもの。

ところがAMDは大々的に発表こそしたものの、結局2020年の今に至るまで実際のゲーム開発には使える状態には無く、ドライバーレベルのサポートも止めてしまい(APIとしては生きている?らしい)、日の目を見ることのないまま事実上開発が凍結されている。

Mesh Shaderのレンダリングパイプライン(Image via 4gamer.net)

一方、AMDのライバルであるNVIDIAも、2018年に新プログラマブルシェーダーとして「Mesh Shader(メッシュシェーダー)」を発表。

メッシュシェーダーは、従来のLoDシステムと同じく遠/中/近の3Dモデルを用意しつつ、それぞれの中間のモデルをメッシュシェーダが自動生成することで、無段階のLoDを実現する。

正確には、メッシュシェーダーと同時に「Task Shader(タスクシェーダー)」も追加され、タスクシェーダーが描画する3Dモデルに対する視点の距離と向きに応じてLoDレベルを計算、次にLoDレベルに応じたディテールの3Dモデル(とは言っても実際の処理はポリゴン単位)をメッシュシェーダが生成する。

ただし、(テッセレーションステージほど面倒ではないらしいものの)「異なるLoDレベルの3Dモデル同士に対してポリゴンがどう対応するか」というトポロジーの定義は必要なため、従来型の離散的LoDシステムを採用したグラフィックスエンジンが、メッシュを使えば無調整で無段階のLoDシステムとして動く、という訳ではない。

PS5はPrimitive Shaderを採用 (Image Credit: SIE)

話を戻すと、メッシュシェーダーはMicrosoftのレンダリングAPI「DirectX」(正確にはDirect3D)に組み込まれて標準規格になり、当然Xbox Series Xもメッシュシェーダーに対応する。DirectXに組み込まれた以上、GeForceはもちろん次期Radeon GPUにもメッシュシェーダーが(ほぼ確実に)実装される。

PlayStationの場合、独自のレンダリングAPIを用意してDirectXには対応しないとは言え、GPU側が対応するのだから、普通に考えれば他社と足並みを揃えてPS5もメッシュシェーダーを採用するものと考えられていた……にもかかわらず、何故かPS5ではプリミティブシェーダーをサポートするという謎の判断が下ったらしい。

開発者からすればPS5だけが異なる頂点パイプラインを採用しているという状況な訳で、クロスプラットフォームタイトルの開発者は頭を抱えそう。最悪、頂点シェーダー以外使われないままの現状が続くことになりかねないと思いますが、どういう意図なのだろう。

レイトレーシングアクセラレーションをシェーダに統合

次世代NaviやXSX同様、レイトレーシングハードウェアはシェーダーに組み込まれ統合されている仕様。反射やアンビエントオクルージョン、シャドウ、グローバルイルミネーションなどのレイトレーシング実装が可能になるほか、音響面でも活用するとのこと。

BVHの生成をハードウェアでアクセラレーションする (Image Credit: SIE)
グラフィックスの描画以外でもRay Tracingを活用 (Image Credit: SIE)

Xbox Series Xと実装が同じはずなので細かい話はそちらを参照ください。

超高速SSDを実現する専用ハードウェアの実装

さて、PS5で最大の特徴となりそうなのは、ストレージ周りの設計でしょう。

Cerny氏によれば、世界中のゲーム開発者やパブリッシャーから受けた次世代ゲーム機への要望で、トップだったのはSSDを搭載することだったとか。

HDDから大きく高速化されるSSD (Image Credit: SIE)

PS5で実装されるSSDは非常に高速性に重きを置いた設計で、PS4から2桁以上高速化され理論上は16GBのデータをわずか2秒で転送できる。この大幅な高速化を実現するため、SSDをメインプロセッサへシームレスに接続するためのカスタムハードウェアが多数実装されている。

カスタムされたフラッシュメモリは12chのインターフェイスでカスタムコントローラに結合、5.5GB/sの高速転送が可能な825GBストレージを構成している。容量が中途半端だが、ソニーの設計では825GBという容量が12chのインターフェースには最適だったらしい。

カスタムフラッシュコントローラは、PCI Express 4.0 x4接続でメインSoCと接続され、ストレージのボトルネックを解消するべく設計された特注のハードウェアブロックを多数搭載。アクセス優先度レベルが6段階あるのも特徴で、開発者がゲームの状況に応じてデータの転送に優先順位をつけられる。

このコントローラは、業界標準規格となっているzlibのハードウェア解凍に加えてRAD Game Toolsが開発する「Kraken」フォーマットをサポートしており、zlibから追加で10%の圧縮が可能。これによってハードウェア帯域の5.5GB/sに対して8~9GB/sの実効速度が得られる。

ちなみにコントローラではなくCPUでKrakenの解凍処理を実行すると、Zen 2の9コアに相当する負荷が掛かるとのこと。重すぎる……

カスタムフラッシュコントローラ (Image Credit: SIE)

さらに、専用のDMAコントローラ(これもZen 2コア1または2コア相当)が転送データを必要な場所に誘導、2つの専用カスタムプロセッサがIOとメモリマッピング処理を行う。その上でコヒーレンシエンジンが整理係として動作する。

コヒーレンシ(メモリ間の保持データの同期)は頻発する処理ですが、最も問題になるのはGPUキャッシュの古いデータで、SSDからデータがロードされるたびにGPUキャッシュを丸ごとフラッシュしていると、GPU性能に大きな影響を及ぼす可能性がある。これをコヒーレンシエンジンが解決してくれるということのようです。

I/Oユニットの全体像 (Image Credit: SIE)

市販SSDを装着してのストレージ拡張に対応、でも使える製品は未登場

ストレージ容量は825GBなわけですが、この容量では大作を何本か買ってしまうと容量不足になるのは自明。そのためPS5では、PS4時代のように市販のストレージ(NVMe SSD)を装着して容量を拡張できる。

問題は、PS5の内蔵ストレージとして使える仕様のSSDが現状存在しない点。PCIe 4.0 x4接続のNVMe SSDはいくつかあるものの、帯域幅がPS5内蔵SSDほど速くないことや、現行のNVMeプロトコルは優先度が2段階しか設けられていないため、6優先度を要求するPS5ではゲームデータの格納先として使えない。

そのため、SIEでは正常に動作する製品を検証してリストを公開する予定とのこと。Cerny氏は、市販のSSDではNVMe仕様外の6段階優先度が実装できない以上、優先度の問題を隠蔽できるだけの余剰速度を持ったSSDが必要になると考えているらしい。

それだけ高速なSSDとなると、出始めはかなり高額になると思われる上、M.2側のSSDコントローラが爆熱になりそうなので、PS5の発売から暫くはストレージが増やせないと考えておいたほうが良さそう。

ただし、NVMeプロトコルの今後のバージョンアップで、6段階(またはそれ以上)のアクセス優先度が実装される可能性もある。

スポンサーリンク

音響周り……はまたいずれ

ここまで書いて面倒になってきたのでHRTFとか音響周りの話はいつかまとめておこうと思います……

コメント

タイトルとURLをコピーしました