在Cypress Radeon HD 5800系列显卡发布之时,我们曾对其进行了一番详细介绍,不过由于篇幅所限,很多有趣的新东西都没有深入展开,这里再集中补充一下,涉及核心架构、集成音频、各向异性过滤和反锯齿等等。
一、核心架构
从本质上说,Cypress仍在延续R600以来引入的统一渲染架构,只是在RV770的基础上进行了大范围增强,由800多名硬件工程师、200多名软件工程师在全球六个城市(包括上海)研发,历时十八个月。
从最底层的流处理单元(SPU)开始:AMD在SPU里增加了很多新的硬件指令,并提升了现有指令的执行速度,DX11所要求的Bit Count、Insert、Extrac等操作也加入了进来,另外反常值(Denormal Number)也可以全速处理了。
新增指令中最重要的大概就是绝对误差和(Sum of Absolute Differences)了,简写为SAD。因为在运动估计(Motion Estimation)中的应用,它对视频编码和计算视觉都非常重要。RV770只能软件模拟,每次计算都需要12个循环,而Cypress仅需一个循环,结果就是新核心视频编码速度能提高两倍以上。
以下是Cypress SP能在每一个时钟循环里的作为:
一个32-bit FP MAD 两个64-bit FP MUL/ADD 一个64-bit FP MAD 四个24-bit Int MUL/ADD 一个32-bit FP MAD (SFU)
在SIMD阵列层次上,Cypress和RV770看起来完全一样,而变化都是内在的:一级纹理缓存容量还是16KB,但纹理数据读取速度提升至1TB/s;同时新增了一个容量8KB的独立一级缓存,用于计算工作;另外每个SIMD的本地数据共享容量也翻了一番,达到32KB;最后纹理单元也进行了重新加工,填充速度大大加快。
继续提高到整体架构层次,可以看出Cypress的SIMD阵列从10个翻番到了20个,因此流处理器和纹理单元的数量都增加了一倍,分别达到1600个和80个。为了满足如此众多的单元,四个二级缓存的容量也从64KB翻番到了128KB,能以435GB/s的速度为一级缓存输送数据,而RV770只有384GB/s。另外全局数据共享容量翻了两番,达到64KB。
很多人从架构图上看认为Cypress其实是“双核”架构,不过是两个RV770封装在一起而已。事实上当然没这么简单,AMD表示如此布局只是因为核心规模过于庞大。试想:如果AMD掌握了如此程度的二合一封装技术,何必还要再搞个单卡双芯的Radeon HD 5870 X2呢?
再看看如下方式的RV770和Cypress的架构示意图就更清楚了:
RV770
Cypress
ROP光栅化单元数量同样翻倍,现已有32个,目的也是为了满足所有SIMD的需要。除了数量上的变化,ROP单元本身也进行了大幅增强以提高性能,必须现在可以更快地执行色彩清理(Color Clear),因为很多游戏在两帧之间需要进行数百次这种操作;另外它们还要处理一部分AMD重新引入的超级采样反锯齿(SSAA),这个后边再细说。
最后是所谓的图形引擎(graphics engine),主要是为了兼容DX11。AMD(ATI)推广多年而未普及的Tessellation已经纳入DX11范畴,Tessellator也成为DX11流水线的一部分,具备Hull Shader和Domain Shader能力,还有减少细分曲面残影的新算法。此外光栅(Rasterizer)也增加了一个,目的还是为了满足SIMD。