理想化的DX9架构,ATi的乌托邦世界
托马斯·莫尔(ThomnasMore,1478-1535年)这位英国人曾写过一部小说《乌托邦》,在这部小说中作者根据当时英国的社会现状描绘出了一个名为乌托邦的梦话世界,虽然这样的世界从来都没有存在过,但对于理想化的追求从来都不乏痴人。就像ATi这次的RV560/570,这两款芯片就是ATi研发们追求理想化DX9架构的产物,从中我们可以看见这些工程师们心中的乌托邦世界。

从上面ATi的这份针对3D游戏中使用Pixel Shaders操作的比例调查来看,ATi的工程师任务在Vertex Shader与Pixel Shader两种操作中,Pixel Shader操作在3D游戏中的负荷正在逐年增加,因此在以后的GPU发展中应当逐年增加GPU中Pixel Shader操作单元的对Vertex Shader的比率,以适应3D游戏发展的趋势。

在Pixel Shader操作中,又分为Texture操作与Arithmetic操作两种,在ATi针对Pixel Shader内部负载的调查中:Arithmetic操作在近几年所占的比重越来越来大,从上面的图表中我们可以看到,在2006年每一个Pixel Shader操作中Arithmetic操作的负荷超过了80%,当然Texture操作的负荷也是在逐年增长,只是其负荷的增长远不及 Arithmetic操作来的明显。这其中的一个重要原因是Texture操作需要通过显存控制器去拾取纹理数据,操作需要占用大量的显存容量及带宽,在使用上不及Arithmetic操作来的灵活。

既然从上面两张图表我们可以得知ATi对图形渲染未来发展的理解,那么接下来我们就来看看ATi对Shader Model3.0的理解。Shader Model3.0是Microsoft开发的一种编程语言,其针对Pixel Shader部分提供可编程管理,可以实现多元化的功能,此外Shader Model3.0还为程序员提供了各种不同的API,如HDR(High Dynamic Render)API和Vertex Shader3.0部分的运动模糊效果。
Shader Model3.0除了提供一些额外的功能特性外,还针对了编程语言本身提供了动态流程管理(Dynamic Flow Control)简称DFC,DFC旨在帮助使用Shader Model3.0框架的程序员更好的协调各线程间的通讯,以优化该架构的并行计算能力。ATi对于Shader Model3.0的理解主要体现在DFC上,而Radeon X1K Series的Ultra-Threaded Pixel Shader Engine就是DFC在硬件层级的体现,Ultra-Threaded Pixel Shader Engine是通过一个Ultra-Threaded Dispatch Processor对最多512条线程进行监控、管理,以实现程序员Shader Model3.0语言编写中的线程通讯、共享资源闭锁互斥等多线程程序编写的手段,以达到更佳的Shader Model3.0程序执行效率。
通过上面三个子项目的分析,我们不难总结出ATi在新一代GPU设计中理想的架构是:Pixel Shader操作单元要比Vertex Shader操作单元占的比重大,在Pixel Shader操作单元内部,Arithmetic操作单元数量要比Texture单元数量多,而在架构设计方面,尽力配合Shader Model3.0语言中的动态流程管理,优化多线程编译的并行执行效率。从上面对Radeon X1K Series的Ultra-Threaded Pixel Shader Engine解析来看,ATi的确在这些设计上对于并行编译做出了相应的设计,再下面来看看Pixel Shader中关于Texture与Arithmetic的部分。