其后的几年时间里,故事的走向似乎有些乏味。由于DirectX 9.0C的快速普及,以及其本身的完善所带来的更长的更新周期,无论NVIDIA还是ATI都有充足的时间和空间陆续成熟和完善着自己的构架。ATI从最初的慌乱中镇定下来之后,将原本的R400重新设计成代号Fudo的R520,由于NV40的成功,R520好像并没有达到“扬眉吐气”的级别,甚至还遭遇了IC工艺史上第一次深亚微米屏障带来的制造问题——吸湿和孪晶。而NVIDIA则将NV40进一步完善成了G70,同样由于NV40的成功,人们觉得G70本来就该是这个样子,没什么值得高兴的。
尽管从NV40到G70,NVIDIA继续玩了一把谍报战,在产品代号的突然转变上又坑的ATI冒了一身的冷汗。但由于DirectX 9.0C本身的限制,G70相对于NV40仅仅是完善和进一步拓展规模,因此ATI并没有像上次那样遭遇严重的尴尬。R520和G70在结构上也开始有了不小的趋同倾向,像素处理单元领域仿佛陷入了一篇沉闷之中。还好,这种乏味并没有持续很久,相对平静的生活在持续了1代产品周期之后被打破了。
因为一代天骄来了。
一代天骄R580
在Shader Modle3.0时代末期,人们开始思考即将到来的未来究竟需要怎样的硬件。尽管新的DirectX Next Preview泄露出了一定的关于微软未来在图形领域的规划方案,比如说Unified Shader,但这仅仅是对于shader执行的一个细节而已,真正影响未来走向的新版本API的灵魂,或者说强调的方向并未被众人所知。Shader Modle3.0强调的是长到近乎无限的指令长度,以及由此引发的更加庞大的Pixel Shader Program数量,那Shader Modle4.0所要强调的又会是什么呢?
ATI站出来大声说——我知道了!是吞吐!
如果以常规的眼光出发,由于Shader Modle3.0的成功,顺应强调指令长度以及更庞大Shader Program数量的做法势必会为Shader Modle3.0的应用带来更好的性能,所以吞吐在当时来看是一个非常不错的选择。而按照这种眼光,微软也会尽可能多的在新版本的Shader Modle中照顾旧有版本的特色,因此吞吐必定会是下一个版本的Shader Modle所要强调的方向之一。于是,为了给这条道路积累经验,同时为了让当下的Shader Modle3.0产品更具竞争力,ATI完成了被誉为“一代天骄”的R580的研发。
作为R520的继任者,R580拥有了Shader Modle3.0时代唯一的一次构架突破,他将传统的每个shader unit的ALU体系数量原先的1个提升到了3个,这一改动让R580在流水线总数不变的前提下拥有了3倍于R520的Shader Program吞吐能力。这种构架的绝对性能在当时是相当恐怖的,其对手G71尽管拥有更多的流水线和co-issue能力,但都不足以弥补绝对像素处理能力的差异。R580的构架设计赢得了所有人,尤其是程序员们的一致好评,它带来了极其强劲的Shader Modle3.0性能,同时也满足了当时通过更多像素效果来提升整体视觉效果的诉求。R580获得了胜利,成了Shader Modle3.0时代当之无愧的单芯卡皇,在一片溢美的赞誉之声中,3:1“黄金构架”的一代天骄将ATI的声望推向了顶峰。
可笑的是,这种溢美的赞誉和承认以及性能的胜利,跟不太久的过去里发生的另一次胜利一样,向获胜方传递了一个非常错误的信号——我真的好强大,强大的我说什么就是什么,我可以预言未来,掌握一切,I'm the King of the World!
呵呵,难道你不觉得这一幕非常眼熟么?拜这种眼熟所赐,又一段精彩的胜负大战即将上演。尽管命运仿佛早已按照某个非常幽默的程式将剧本写完了,但这并不妨碍我们来欣赏一下这一幕注定结局的情节。