| | | [文章导读] | | | 经过漫长一个月的等待后,ATi在5月4日正式推出了他们的新一代图形芯片R420。 | |
| | [文章信息] | | | 作者: | 姑苏飘雪 | | 时间: | 2004-05-09 | | 出处: | 天极Myhard | | 责编: | 寒冬 | |
| |
| | | |
|
|
|
|
|
|
此项技术可将显示核心完成的混合运算结果存储起来,而新一轮的运算将以此为基本,省去了极为占用显存带宽的顶点数据、三角形主体Z轴数据的每次重新存储与读取,从而使像素和顶点的着色过程更加迅速。其最终目的在于节省显存带宽,以提升显示核心的渲染处理效率。R420中这个“stage”设计有点类似于CPU中的管线设计原理,但新的指令要等上一个指令的级完成后才能开始,无疑为会增加延迟,而还可能会带来一个最大问题:分支预测错误。
我们知道,程序指令通常都有各类型的条件分支语句,通过验证条件决定执行路线。因此,目前CPU内执行单元内是通过一项特殊的预测机制选择一条路线直接执行(这样可以避免验证语句而处于等待情况),然后在后面进行验证。如果预测正确则继续往下执行,如果发现之前的预测错误,那么就必须返回原地重新开始,之前的指令就会被作废。
如果R420采用了CPU中的分支预测处理机制,意味着随着频率的增加出现分支预测错误的机会将会越多,越多在管线内的指令会被清掉,而且所花重新让管道填满的时间也会越多。但这样的设计有一个诱人的优点:可以较易增加核心工作频率。
从目前的情况来看,R420似乎采用了CPU中的管线设计理念:如超高的工作频率,极优异的超频性能(目前国外一个硬件网站已经将X800 XT的核心频率超到了700MHz以上)都似乎在说明这一点。但这只是本人的猜测而已,具体情况还要看ATI以后公布的技术资料。
与先前架构相比,虽然R420的功能性大大增加了,但它仍不能支持pixel shaders动态程序流程分支控制。因此,ATI不宣称R420支持pixel shaders3.0,pixel shaders3.0和2.X版本不同,支持动态程序流程分支控制是shaders3.0版本的一个必备要求。
当然ATI也知道shaders3.0模式的优点,但他们认为shaders3.0应用时代还未到来:因为在现在架构使用动态程序流程分支控制将会出现一个不可避免的问题—性能下降。甚至NVIDIA对动态程序流程分支控制的态度也不是很明朗,毫无疑问这并不是厂商们所期待的。从效果方面来说,Pixel Shader 3.0跟2.0的效果,对肉眼来说是没有什么差异的。
而且大部分的游戏跟程序所需的指令集,在Pixel Shader 2.0的便足以应付,加上短时间之内也不会有什么支持Pixel Shader 3.0的软件急需使用这样的规格,更何况目前Pixel Shader 2.0的规格并未完全发挥。同时,要引入动态程序流程分支控制功能,ATI将需要对R420的像素着色引擎架构进行很大修改,因为一开始它仅仅针对非线性shader处理。
因此考虑利与弊后,ATI工程师决定放弃对shaders3.0的全面支持。相反他们很可能引入一个精简版本:除了不支持动态程序流程分支控制外,拥有shaders3.0的其它功能,它将被称为shaders 2.b。
不过,随着R420的发布,ATI将推出经过优化后的shader编译器。这样R420的像素着色引擎将具有更高运算能力,这应该是最为行之有效的方法。所以首要目标是最大化减小像素引擎中闲置的ALU数量,因此,编译器将分析初始化shader代码并且重编排,让它们能被并行处理。
2、顶点着色管线
顶点着色引擎上,R420与此前R3XX的架构相比改动并不是很大,主要是改进了顶点着色引擎的功能性。
与NV40一样,R420的顶点着色管线达到了6组(而此前的R360只有4组顶点着色管线),具备每秒7.8亿个顶点的生成能力。虽然相对R360来说,R420在顶点处理单元数量上没有翻倍,但是凭借较高的核心频率顶点生成能力还是可以达到Radeon 9800的两倍左右。
|
|
|
|
|
|