Ultra-Threaded Pixel Shader Engine
上文我们提及到R520核心的Pixel Shader数目和上代比较没有很大的改变,都是停留在16条流水线上,不过ATi却藉著经过改良的Ultra-Threaded Pixel Shader Engine,从而提升了核心的渲染能力。其实传统的Pixel Shader架构设计造成大量的延迟及浪费运算周期,另一个主要的浪费在动态分支Dynamic Branching的执行能力上,这更是Pixel Shader 3.0中常用的指令,令Pixel Shader程序可以执行不同的分支或是根据运算而循环执行,而R520核心则会进一步优化Dynamic Branching的运算。
Ultra-Threaded Pixel Shader Engine能把一个具大的Pixel Shader的运算分拆为大量较小的执行绪,然后平衡地分给各个Pixel Shader Core Unit,在同样的Shader程序下其执行绪被分割成细少的Pixel Blocks,因此为排除了部份Unit需要等待其他Unit完成的结果而造成闲置,减少了不必要的延迟并提供更快的执行效率,而且R520绘图更能同时处理高达512个执行绪并放在每个Pixel Shader Core,并能执行Shader程序于2x2的Pixel Blocks,大大提高了Dynamic Branching的执行效率。
另外Untra-Threaded Pixel Shader Engine如发现了有Pixel Shader Unit处于闲置,将会立即向它指示新的执行绪而不会被浪费,如果闲置的原因是在等待其他Pixel Shader Unit的结果,他会被冻结其现有工作并闲出其他ALUs来执行其他指令,因此ATi宣声其R520核心比上代被有效使用率提升达90%以上。
Vertex Shader Engine : 128Bit Floating Point Rendering
在Vertex Shader方面,ATi终于加入了Vertex Shader 3.0版本的支援了,并可执行1个128Bit Floating Point Data或是四个32Bit的组合,再结合R520拥有8个Vertex Shader单元并提供每笔能生成两个Vertices,因此Radeon X1800是全球首个Vertex Shader引擎能每秒执行10 Billion Vertex Shader指令。