ゲーム機技術総合

興味を持ったことを書いていきます。

<ド素人目線>PS5の内部構造?錯綜する噂と明らかになった点

 

9/21 更新

 CPUは統合型L3キャッシュを採用している?

この話はPS5ローンチ後にRed Gaming Techの独自ソースにより公表されました。

内容としてはPS5のCPU基本設計はZen2に基づくもののL3キャッシュに関してはZen3と同じように統合型のL3キャッシュを採用してるとのことでした。

Zen2世代では1CCDに対して2CCX構成をとっており、L3キャッシュは各CCXのExcrusive Cacheとして存在。つまり別のCCX内のL3キャッシュにアクセスする場合はレイテンシが発生するためパフォーマンスに影響するとのことでした。

CCXの構成は初代Zenのころから1CCX=4コアになっており、CCXを2つ束ねた形で一つのダイに納める形で8コアCPUを実現しました。

Zen2でIO分離方式を採用してもこのCCX構成は基本的に受け継がれる形でした。

これがZen3からは改善され各CCXのL3キャッシュが統合化され実質的に1CCDに1CCX=8コアという形になりました。

ascii.jp

話をPS5に戻します。

Red Gaming Techによれば

The L3 cache is unified like Zen 3, but it’s only 8MB according to what I am told. This information I am pretty confident in as two people have told me this,

 つまり二人の匿名の開発者から話を聞いたそうです。

事前にPS5システムで統合型L3キャッシュ前提の特許図があったことからこの説を裏付けるものではないかと大いに期待されることとなります。(関連特許が見つけられませんでした。あくまで噂なんですかね)

 

そんな中で時は流れ、今年の二月ごろ有志によるPS5のダイ解析が行われたところ

 

どうやらL3キャッシュは統合化されてはいないらしく、CPUの配置もRenoirに近いところからZen2そのものに間違いないとは判明しました。

PS5に統合型キャッシュが採用されてるならZen3のように一体となったCCXデザインが採用されてなければおかしいからです。

PS5の場合は各CCXがそれぞれInfinity Fabric IOにつながるようなデザインなので直接、隣のCCXのL3キャッシュにアクセスすることは物理的にあり得ないという見解ですね。

PS5やRenoir世代のZen2の場合、別のCCXのL3キャッシュにアクセスする場合はIOを経由する形になるからレイテンシが発生する流れになるわけです。

ちなみにこれがZen3のレイアウト

 しかし、この解析で思わぬことが判明しました...

 

 SIMD部分に手を加えている?

 PS5のCPUがZen2そのものではなく、何かしらの手が加えられてるのではないかという話が浮上しましたそれが上のツイートです。

詳細を言うとSIMDユニットが半減してるのではないかという疑惑です。

写真のとおり、SIMDユニットのサイズがPC向けのZen2とPS5では異なります。

Zen2からSIMDユニットは256bitまで拡張されAVX命令をネイティブに実行できるようになっていますが、ゲームにおいてはあまり使われないことからSIEの方針によりオミットされたのではないかということです。(浮動小数点演算ではGPUのが速いですし、SIMDにわざわざ最適化しても正直微妙なケースが多いらしい)

 しかし、後に改めて詳細な解析を行ったところ

 SIMDユニット自体はZen2と同じものを実装してるとのこと。

ではなぜ削除されたように見えたのかについては、レジスタファイルが減ってる可能性があるとのことです。

 ZenからZen2、Zen3のFPレジスタSIMD長に違いはあれど160個、固定の数値となっていますが、PS5の場合は120個に落としてる可能性が確認できたということです。

((9/21 追記

当初、レジスタファイル数の削除が確認されたと記述しましたが、続報があります。

レジスタファイル削除ではなく、設計最適化による縮小化の可能性が提示されました。

現時点では確定とも言えないで追記ということで対応させていただきます。

Zen2 vs PS5 FP Register

))

理由に関してはわかりませんが、すでに述べた通りゲーム用途で過剰なSIMD性能をCPUに求めるのは無意味であるということです。(実際のところは最適化が難しく、思うような性能が担保できないという点)

数は減ってるといえども個数自体は全体の1/4程度を削っただけでレジスタが枯渇しない限り、性能低下は少ないといえるかもしれません。

結果的にオミットされた分だけSIMDユニットを縮小させることができ、おそらく電力面で言えば意図的にSIMD処理を抑えることで省電力化を達成したのかもしれません。

SIMD処理における発熱はAVXクロックの名前で知られてる通り、専用クロックプロファイルを設定して発熱を抑えてることでも知られてます。

SIMDユニットの発熱に関しては、Xboxを有するライバルのMicrosoftもその点は認識しており、本体の熱設計に関してのプレゼンで紹介されてました。

https://images.anandtech.com/doci/16489/ISSCC2021-3_1-page-031.jpg

Xbox Series X SoC: Power, Thermal, and Yield Tradeoffs

見ての通りGPUより、CPUのSIMDユニットが高発熱の傾向にあります。

SIEはこれを嫌がったためにこのような設計をしたのかもしれません。(面白いことにXbox SeiresはSとXともにフルのSIMDユニットを採用しておりPS5とはまた異なる選択をしました。)

 終わりに

ここまでいろいろと書いてきましたが、実のところ情報をすべて有志の検証結果から引用しています。

SIEはPS5のアーキテクチャ詳細に関して、GDC2020の「The Road to PS5」 以降、

詳細を公にはしてません。

そのため公式の情報はかなり抽象的なものになっており、詳細なアーキテクチャに関しては謎に満ちています。(SIEの秘密主義はPS4Proのころから表れてますね...)

幸いSoCの解析が進み、ダイレイアウトからCPU、GPU、IOブロックの詳細が鮮明に映し出されました。

いろいろ物議をかもしそうなところもありますが、今回は扱いやすそうなCPUに限って取り上げてみました。

また、何かあれば記事に書き出そうと思います。

それでは、また。