【IT168 专题报道】终于,ATI在10月6日推出了它最新的图形芯片——R520,结束了大家漫长的等待。
按照ATI原来的计划,R520早在7月份就应该发布,以应付它的对手NVIDIA在6月份推出的G70, 但是由于芯片设计上的问题,R520足足推出晚了三个月才现身,这令投资者开始怀疑ATI的设计能力,因此ATI的股票曾一度大幅下跌,更谣传其将被其他公司收购。不过ATI终究没有让大家失望,R520还是赶在今年内推出了。
全新设计:R520选择90纳米工艺的原因
ATI花了不少功夫在R520的设计上,图形芯片里面很多内部结构都经过重新设计,因此晶体管数目达到了恐怖的3亿2100万!如此数目众多的晶体管,ATI不得不使用0.09微米的制造工艺,才能使芯片达到更高的频率,而发热量控制在可以接受的水平。
Ultra-Threading超标量技术:CPU技术在显卡上的应用
SM3.0规范规定图形芯片的pixel shader单元必须支持Dynamic Branch,即动态分支跳转(这在CPU里早已实现),简单的说就是:处理单元根据实时运算得出来数值,直接执行应该执行的指令,而不是一味按照程序的指令一路执行下去。有了动态分支跳转,开发人员就可以优化pixel shader指令,把经常执行的都放到前面,加快渲染速度。
不过问题也就随即出现,由于传统的图形处理架构对数据是并行处理的,动态分支跳转会使得有些结果出来的早,有些结果出来得晚,那么就破坏了图形架构的并行性,也一定程度上抵消了动态分支跳转所带来的好处。
ATI重新设计了图形pixel shader处理单元,让它可以实现超标量、多线程执行,当一个处理单元先处理完可以不用等待其他单元,而是直接处理下一批数据。
R520的pixel shader引擎会把要处理的象素分成许多4x4大小的块,每块用一个pixel shader单元处理,一次处理称为一个线程,由一个最多支持512个线程的“中央分派单元”分派各个pixel shader处理单元,pixel shader处理单元被称作Quad Pixel Shader Core,可以同时在一个2x2的象素上执行Shader指令。中央分派单元发现某个处理单元闲置的时候,它会把等待分配的线程分配给它;当中央分派单元发现某个处理单元的线程因为需要等待某些数据而停滞的时候,它会暂时停止这个线程,让处理单元先处理其他线程,等条件满足了才继续处理暂停的线程。
有了这种机制,R520可以让pixel shader单元的利用率达到90%。当大量需要动态分支预测的游戏出现的时候,R520的优势将会非常明显。
Shader单元:向大统一迈进一步
R520将全程使用FP32——128-bit浮点精度处理,所有低于这个精度的数据都将自动转换到128-bit精度,在保证性能的同时,让你在游戏中获得最高的精度。
谣传R520会使用统一shader架构,但是从图上的我们看到还有vertex shader和pixel shader,只是后面多了一个processor。
Vertex Shader单元:残缺的3.0规范
R520内建8个vertex shader处理器,支持最多1024条指令和动态分支跳转。每个Vertex Shader处理器可以在一个时钟周期内同时处理一条128-bit向量指令和一条32-bit标量,那么8个Vertex Shader在一个时钟周期内就可以处理2个顶点的转换,Vertex Shader指令运算速度达到100亿条/秒。
尽管ATI宣称R520 Vertex Shader 3.0,但我们却发现它缺少对Vertex Shader 3.0的一个重要规范的支持——那就是vertex texture fetch(顶点纹理获取),从图中我们没有发现Vertex Shader中包含与纹理读取有关的单元。
Pixel Shader单元:永不空闲的16管线
R520完全支持Pixel Shader3.0。在前面我们已经讲过ATI为R520的Pixel Shader单元引入了Ultra-Threading技术,所有的Pixel Shader处理器由一个中央分派单元监控,保证没有处理器是空闲的,籍以提高分支跳转的性能。R520拥有4组Quad Pixel Shader,共16个Pixel Shader处理器(即常说的管线),每个处理器可以在一个时钟周期内进行一次分支转跳操作、执行2条标量指令和2条3分量的向量指令。16个纹理寻址ALU可以保证16个Pixel Shader处理器同时读取纹理数据也不会出现资源冲突。
灵活的架构:相互独立的Shader单元
R520的Shader单元都是一个一个独立的功能单元,所以ATI可以很方便地减少这些单元的数目,降低晶体管数量和价格,推出面向不同用户的产品。
显存大革命:创新环形总线的可编程显存控制器
图形芯片的显存控制器架构已经有很长很长一段时间没有什么改变了。一直以来厂商对显存控制器的改进都只局限在小修小改上。为了提高显存带宽,ATI设计了全新的环形总线控制器。提高显存带宽有很多种方法:可以提高接口的位数和频率,也可以降低延迟和更好地管理缓存,还可以改进内存分配方案和数据压缩技术。ATI设计的环形总线显存控制器,把所有的优化方案一并包括在内。
要理解环形总线结构带来的好处,我们必须理解显卡显存系统的C/S(客户端/服务器)特性。显卡的其他部件,如GPU、PCI-E总线、Shader单元、纹理单元等,都要连接到显存控制器读写数据,那么这些单元就是客户端,显存控制器则是服务器端。所有对显存的读写都要向显存控制器发出请求。开发人员要做的就是怎么让显存数据的来回传输更有效率。客户设备数量的增加,显存的读写请求也随之增加,因此需要一个更好路由数据的方法。
R520包含两条传输方向正好相反256-bit数据环,这就是所谓512-bit显存总线,然而实际与显存连接的数据通路才256-bit而已。一直以来ATI的图形芯片设计都将显存控制器置于芯片的中心位置,需要很复杂的布线才能把各个客户端设备与显存控制器连接起来,而环形总线结构,布线都放在了芯片边缘,大大简化了线路的复杂性从而提高信号的始终频率。数据每经过1/4个环,都要经过一个Ring Stop的终结点,那是连接显存地方。
大家可能觉得,R520的显存控制器除了使用环形总线,就没有什么特色了,那你可猜错了!R520的显存控制器的工作并没有固定的运行模式,它是可编程的!ATI可以在驱动中为不同的程序或游戏设定不同的运行模式,提高显存的带宽和利用效率。这点已经被事实证明。
在前几代的产品中,ATI把256-bit的显存接口,分成了4个64-bit的通道,而在R520中,却把它分成了8个32-bit的,这样的好处是,当需要传输一个32-bit的小数据时,如果使用64-bit的通道,那么整个通道都会被占用,极大地浪费数据带宽,而使用32-bit的通道却不会出现这种情况。
更先进的缓存机制
R520的显存控制器有一个比前几代产品更智能的仲裁逻辑,它使用一个反馈系统来收集每个客户端设备的读写请求信息,再通过一个算法从这些数据中计算出一个优先值赋给该设备。同时仲裁逻辑根据每个客户端设备需要等待的时间,来判断优先值的好坏,记下哪些情况会使性能下降,所有这些信息都会作为下次计算优先值的衡量参数,使之更准确。
前几代的产品,ATI使用的都是直接映射缓存系统,这意味着显存某一段区域固定被映射到特定缓存中,如果客户端设备同时想向位置不同但却映射到同一缓存的地方读写数据,那么就会产生冲突。
因此R520使用了广泛应用于CPU中的全关联缓存设计,图形芯片所有的纹理、颜色、深度和蜡纸缓存都可以随机映射到任何显存位置。任何空余的显存,都可以充分被利用。
全角度AF和自适应AA
ATI显卡一向以画质好而著称,这次R520再接再厉,再给我们带来一个好东西——全角度AF。
传统的AF对角度有明显的依赖性,例如到在45度的地方,AF算法不能准确地计算出合适的纹理值,使得纹理显得模糊不清,如果用特定的纹理来测试的话就会出现所谓的微光现象:
ATI在R520中很好解决了这个问题。
测试图片不能说明什么问题,我们看看游戏中的截图:
留意远处的墙壁,不支持全角度AF的7800GT远处的墙壁显得很模糊,而R520的却仍旧非常清晰。当然达到这个效果,必须选用最高的AF设置,这势必影响游戏速度,看来只有高端的X1800系列才能够用上了……
R520加入的另一项新功能就是自适应AA。自适应AA首先出现在NVIDIA的7800上(NVIDIA管它叫透明度自适应AA),随后ATI的程序员HUMUS用软件方式实现了ATI显卡的自适应AA。到底R520用的是软件实现还是硬件实现,或者是ATI、NVIDIA都是用软件实现等等这些问题,就只有它们两家公司知道了,我们要做的就是比较它们的效果:
从上面的截图来看,ATI的自适应AA要比NVIDIA的来得模糊些。R520在4X的时候好一些,而7800GT在8xS的时候效果明显比R520要高出一节,由此推测ATI使用的是HUMUS的软件方法。
支持Avivo,H.264新一代高清视频
Avivo是ATI对视频处理的一系列定义的总称,包括了整个视频信号的捕捉、编码、解码、后期处理过程。所有这些过程都由ATI的硬件处理,然后发送到显示屏幕。支持Avivo的硬件不仅可以对MPEG-2、MPEG-4、VC-1和WMV9进行硬解码,而且还支持最新的H.264高清晰视频。R520作为ATI新一代的图形产品,自然会包含Avivo技术,它使用的10-bit位宽数模转换器DAC和TMDS(Transition-Minimized Differential Signaling)能够保证高质量的模拟与DVI信号输出。
ATI宣称R520比X850能够剔除多60%的隐藏象素。减少无用象素的渲染,将显著提高显卡的速度。
ATI从X800系列开始引入了3Dc压缩技术,可以减少“法向量图”等纹理的大小,R520在此基础上更进一步,提出3Dc+,在原基础上增加了8-bit整型纹理2:1压缩,那么对于含有两个8-bit分量的“法向量图”或者普通纹理,就可以达到4:1的压缩比例。
结语
ATI抱着原来9700的架构已经有三代产品的时间,每次的升级都只是对原来的架构进行一些修改,而它的对手NVIDIA早在6X00系列开始就升级到SM3.0架构,所以6800的改进版G70更好地支持SM3.0。由于之前架构上的落后,导致ATI需要花更多的时间研发新架构,R520不得不推迟到现在发布。
不过也正是因为不受前一代架构的限制和更长的研发时间,ATI可以把很多新的东西都加到R520里面,像Ultra-Threading和环形总线的可编程显存控制器,这些新的东西都产生了实际的效果。
从网上铺天盖地的测试来看,晚了4个月的R520和G70性能属于同一个水平;从架构上看,R520将对ATI未来的架构产生很大的影响,拥有中央分派单元的Pixel Shader可能成为统一Shader架构的雏形,可编程显存控制器、全关联映射(fully associative mapping)这些都是统一Shader架构必需的条件。
虽然大部分消费者更注重的是产品的性能和价格,只有狂热玩家才会对产品的细节感兴趣,但是如果要购买到自己满意的产品,我们必须对自己想购买的产品有所了解才能在选择到最合适自己的,我想大家都会赞同这点,这也是写这篇文章的目的。