VGLeaks: PS4はhUMA技術を利用している(2) | みらいマニアックス !

VGLeaks: PS4はhUMA技術を利用している(2)

五種類のバッファ

- GPUが使用するシステムメモリバッファは、5つのメモリタイプの一つとしてタグ付けされている
- 最初の3つでは、CPUからのアクセスは非常に限られており、主要なアクセスはGPUからのものになる

(RO)読み取り専用バッファ
「RO」バッファはCUからの読み取りであり、書き込まれることはない。例:テクスチャや頂点テーブルなど
ROバッファへのアクセスでは、 L1キャッシュはコヒーレンシを喪失しない。コヒーレンシの問題を引き起こすのは書込み操作であるためだ

(PV)プライベートバッファ
「PV」バッファは、単一のスレッドグループによるプライベートメモリからの読み取り/書き込み。例:スクラッチバッファ
PVバッファへのアクセスでは、 L1キャッシュはコヒーレンシを喪失しない。なぜなら、コヒーレンシの問題を引き起こすのは共有メモリ領域への書き込みだからだ

(GC)GPUコヒーレント
「GC」バッファは、CUによる、ドローコールやディスパッチの結果として読み取り/書き込み。例:後にジオメトリシェーダによって参照される頂点シェーダのアウトプット
深度バッファとレンダターゲットはGCメモリではない。それらはCUではなく、DBのやCBにある専用のハードウェアにより書き込まれるため。GCバッファへの書き込みが許可されているため、それらへのアクセスは、 L1キャッシュとのコヒーレンシが喪失する可能性がある


- 残る2つは、CPUとGPUの両方からのアクセス可能

(SC)システムコヒーレント
「SC」バッファは、 CPUとGPUの両方によって読み書きされるメモリ。例:CPUがGPUの読み取りを構成する、あるいはCPUとGPUとの間のコミュンケーションに使用される構造
SCバッファは、最大のコヒーレンシの問題を引き起こす。L1キャッシュのコヒーレンシ喪失だけでなく、L1・L2とシステムメモリやCPUキャッシュとのコヒーレンシが喪失する可能性ががある

(UC)>非キャッシュ
「UC」バッファは、SCと全く同様に、CPUとGPUの両方により読み書きされるメモリ。
UCバッファは、 GPU L1やL2にキャッシュされることはないため、コヒーレンシの問題は生じない
UCアクセスでは、新たなオニオン+バス(オニオンバスと同様の限られた帯域幅のバス)を用いる
UCアクセスは同じラインの繰返し読み取りやインクリメントなライン更新があり、非常に非効率である


- 最初の3つ(RO、PV、GC)はCPUからアクセス可能だが注意が必要。例:新しい場所へのテクスチャコピー

CPUは非キャッシュでテクスチャデータを書き込み、その後手動でGPUキャッシュをフラッシュする
GPUはその後、ガーリック・バスを通じ、ROメモリとしてテクスチャにアクセスすることができる
これにより二つの危険性が回避される。CPUからのテクスチャデータの書き込み非キャッシュで行うため、CPUのキャッシュに残るデータはなく、GPUはオニオンではなくガーリックを自由に使用できる。CPUはテクスチャ設定後にGPUキャッシュをフラッシュするため、 GPUのL1およびL2に古いデータが残るおそれはない。


NS: VGleaks  PlayStation 4 includes hUMA technology


みらい的コメント:


非常に興味深い。なるほどねェと思うことしきり。