先進のキャッシュシステムを採用したGeForce GTX 4x0

DirectX 10でジオメトリシェーダの仕組みが採用され、GPUはその内部で処理対象データが増殖する仕組みを持つようになった。DirectX 11ではテッセレーションステージが採用されたため、この「GPU内部でのデータ増殖」に拍車が掛かることになる。DirectX 11世代のGPUは、DirectX 10世代のGPU以上に、GPU内部のデータパスが複雑になるのだ。

そこで、今世代のGPUに対して、ATIとNVIDIAの両社は、GPU内部のキャッシュシステムの改善に力を入れている。

Radeon HD 5870では、L1テクスチャキャッシュからSIMD Engineへの伝送帯域を1TB/secにまで高めている。先代のRadeon HD 4870では480GB/secだったので、その速度向上比は2倍以上になる。なお、L1テクスチャキャッシュの容量そのものは先代Radeon HD 48x0と同じ8kBのままで、GeForce GTX 4x0よりも容量が小さい。

しかし、Radeon HD 58x0では、テクスチャユニットに、地味ながらも先進的な新機能を実装することで、そのL1テクスチャキャッシュの容量の小ささをカバーする。それは、圧縮したままのテクスチャデータを内部バスに流してテクスチャユニット側で展開できる仕組みだ。

シーンを別の視点などからテクスチャにレンダリングして、これをテクスチャ素材として最終的なシーンレンダリングに活用するマルチパスレンダリングというテクニックは、現在のシェーダベースのグラフィックスでは今やありふれたテクニックだが、最近ではシーンだけでなく、物理シミュレーションなどをGPUで処理し、その結果をデータテーブルとしてテクスチャにレンダリングし、これを最終的なシーンレンダリングに活用する手法も一般化してきている。

このテクスチャ参照頻度がますます増えていく中で、Radeon HD 48x0までは、テクスチャユニットからテクスチャデータを参照するときに、そのテクスチャが圧縮されている場合は、これをレンダーバックエンド(ROPシステム)側でデコードしてからテクスチャユニットへ伝送していた。Radeon HD 58x0では、テクスチャユニット自身が圧縮されたテクスチャを展開して参照できるため、L1テクスチャキャッシュの使用容量も実質的に小さくでき、さらにレンダーバックエンドとL1テクスチャキャッシュを結ぶ内部バスに流れるデータを圧縮済みのままにできるため、帯域幅の消費を抑えることができるというのだ。2倍以上に高められたL1テクスチャキャッシュのバス性能と相まって高いテクスチャアクセス性能を発揮するはず……というのがATIの主張だ。

Radeon HD 58x0のキャッシュシステムはL1テクスチャキャッシュとメモリコントローラごとに備え付けられたL2キャッシュで構成される

Radeon HD 58x0のL2キャッシュはメモリコントローラ側に実装されており、これもRadeon HD 48x0と同じ設計だ。L2キャッシュの容量はメモリコントローラ1基あたり先代Radeon HD 48x0の2倍の128kB。すなわちメモリコントローラが4基あるRadeon HD 58x0全体では512KBということになる。なお、L2キャッシュ→L1テクスチャキャッシュへの伝送速度は435GB/secで、ここはRadeon HD 5870とRadeon HD 4870の動作クロック比分の性能向上に留まる。