● 统一缓冲体系
Tahiti另一个巨大的改进来自缓冲体系的大幅调整。Tahiti架构的缓冲体系不仅对原有的GDS以及LDS等Shared资源进行了调整和重新布置,更引入了非常重要的多级unified cache。
不同于传统的被所有VLIW CORE共享使用的整体GDS,Tahiti架构的每个CU拥有至少32K的独立的GDS(Golbal Data Share),这个尺寸完全符合微软在DirectX 11中的硬性规定。GDS中可以划分出16K空间作为L1 Data cache,Tahiti构架的多级cache体系属于包含式结构,L2保存了全部的L1数据且能够允许L1数据进行回写,结合AMD的官方描述,我们认为在宏观范围内Tahiti的Shared存在32K GDS+0K L1 Data cache+“16K L2 Data cache”或者16K GDS+16K L1 Data cache两种组合方式。
Tahiti构架缓冲体系
除了GDS+L1共享构成的以及缓冲体系,Tahiti构架的每个CU还拥有独享的LDS(Local Data Share),LDS在RV770以后的AMD构架中均有出现并为所有VLIW CORE共享,而此次在Tahiti中,LDS与GDS一样被打散到了每一个CU中,变成了专享的二级补充Shared。
除了一级缓冲和Shared,Tahiti的CU单元还拥有共享的L1 Instruction cache和Kernel cache,每4个CU共享16K的L1 Instruction cache和32K的Kernel cache。
Tahiti构架缓冲体系细节(引自后藤弘茂blog)
最后,Tahiti构架拥有沟通上级缓冲与显存的L2 Data cache,L2 cache与MC一一对应,因此Tahiti共拥有6组合计768K的L2 cache。L2 cache面向所有CU中的单元开放,ALU可以用它缓冲数据,TMU也可以用它充当Texture cache。
Fermi构架缓冲与单元的关系
整体来说,Tahiti的缓冲体系与Fermi存在很大的相似度,无论是可共享/切换的一级Shared/L1机制,还是面向所有单元并可以同时充当Texture cache的L2,Tahiti与Fermi在缓冲体上都已经处在了一致的状态。两者最大的区别,在于Tahiti采用了指令和数据缓存分离的方式,同时在L1与Shared的切换方式及尺寸上与Fermi存在差异。相对来说,Tahiti的切换及分配方式更加灵活多样,但同时也对cache的操作切换控制提出了更高的要求。
推荐经销商