“在经过数月的延迟后,这款代号R600的RADEON HD 2900XT终于正式发布了,面对这款架构全面革新的产品,PCINLIFE经过精心的策划完成了这篇测试报告,希望以深入浅出的方式为大家全面展现RADEON X2900 XT的实力。”

R600包含有4个SIMD单元矩阵,每个矩阵内有16个SIMD单元,每个SIMD单元内有四"瘦"一"胖"共计五个逻辑运算单元(ALU)以及一个分支执行单元。
16个SIMD单元同一时间内执行一个线程,各SIMD单元都有自己的寄存器供SIMD内的执行单元共享。
SIMD采用超标量+VLIW(甚长指令)设计。游戏的shader指令经过驱动的JIT(即时)编译器编译优化后,变成GPU能识别的机器码并被捆绑成长度数百位元的VLIW指令串包。
VLIW指令包到达指令序列器后,会被动态重新安排,序列器会把不相依的指令捆绑成能够尽可能让SIMD单元并行执行的指令串,交给SIMD单元执行。
最理想的状况下,每个SIMD单元能够执行5条算法指令,整个R600的峰值运算指令吞吐率可以达到每个周期320条或者说没每秒2400千亿条指令。
不过需要注意的是,天底下没有哪一个指令序列器、编译器是能在任何情况下确保100%的超标量执行能力,有些指令本身即使在采用了寄存器重命名等先进技术的处理器上,仍然会存在相依性的问题而无法实现超标量执行。
例如:
指令一:a=b+c
指令二:d=a*e
这两条指令中,第二条指令中的a必须等待第一条指令的运算结果,出现这样的情况时候,两条指令大多数情况下就不能实现超标量执行了。
相比之下,虽然G80跑的shader也肯定会出现相依性的指令,但是G80的SP都有自己完全独立的资源(开发人员编写shader程序的时候,只需要考虑单个SP的执行即可),SIMD指令在G80上都是串列地在SP执行,因此上面的两条指令在G80上执行,G80的运算资源依然可以达到100%的利用,而在R600上可能只有50%不到(ATI提供的资料是最糟糕的1D相依情况下是20%)的资源利用率。
因此,在为R600编写shader的时候,一定要必须尽量避免相依性的情况出现,只有这样才能让驱动程序的JIT编译器充分发挥VLIW优化策略。