原生与桥接PCIE芯片技术深入分析解析
10年的时间对于一个人意味着什么?他可能从毛头小伙变成朗朗俊男,可能从儿立之年跨入不惑之岁;10年的时间对于一种总线又意味着什么呢?从先进到落后,甚至被淘汰……
总线的发展历程
PCI作为个人电脑中不可缺少的最基本的I/O总线,已经忠实的服役了10年。10年前当PCI刚刚取代ISA的时候,系统总线的传输速率有了质的飞跃,当时PCI具有许多非常超前的设计和相对ISA来说更加大的带宽,应付数据传输是措措有余。
但是随着时间的推移,当很多人还仅仅将电脑的用途定义在上上网、打打字的时候,新一代的图形加速卡、声卡、更高速的硬盘以及处理器纷纷出现,日益庞大的数据量给PCI总线亮起了红灯。
出于无奈将图形数据传输独立出了PCI,接着是南桥与北桥之间的独立数据传输通道将PCI进一步从IDE设备中解脱出来。尽管如此,面对日益发展的高速网络设备甚至声卡,PCI都已经力不从心,整个系统迫切需要一种新型总线来提供更加适宜的数据传输环境。于是,PCI-Express来了。
PCI Express
PCI-Express相对于传统总线的最大改进在于点对点协议和串行的传输方式,未来系统总线与各种设备之间的连接方式都将逐步转变成这种形式,包括线缆界面与芯片界面之间的连接,电缆同驱动设备之间的连接,连接插槽同PCI-Express扩展卡之间的连接等。
PCI总线的发展规划图
相对于PCI传统的共享式并行总线,PCI-Express具有许多先进的特性:PCI-Express的连接允许每个设备拥有各自独立的数据传输资源。PCI-Express具有更加先进的物理结构,可以更加轻松的实现双向的数据传输。
PCI-Express在设计过程中充分考虑了新总线对于软件和操作系统带来得负担,新总线通过保留传统的PCI总线设备初始化和内存操作模式来保证支持PCI设备的软件的兼容性,这意味着驱动程序和操作系统不必为数据传输环境的改变而“背负责任”。
PCI-Express支持弹性的多路讯道连接模式,一个标准的PCI-Express连接可能包含多个“lane”(讯道),当需要增加数据传输带宽时,PCI-Express可以方便地通过增加lane的数目来达到目的。
具有单个lane的PCI-Express×1可以提供单向250MB/S的带宽,而具有16个lane的PCI-Express×16可以达到双向8GB/S的空前水平。这使得PCI-Express×16成为目前取代AGP总线来担当显示部分数据传输的非常好的选择。
AGP实际上是一个独立于PCI以外的单独与CPU以及北桥连接的总线,它具有4倍于PCI的数据带宽(AGP1×),支持许多当时很前卫的特性。比如直接调用内存进行存储操作,它为新出现的高速显卡提供了更加充足的数据传输资源。但是,刚刚出现的AGP由于过分依赖北桥和系统内存,而当时的北桥和内存速度却远远跟不上系统,所以被戏称为“图形减速器”。
随着时间的推移,内存速度不断地提升,再加上AGP总线自身的不断提速,AGP终于发展成了一个相当成熟的总线,为高速显卡提供了充足的数据传输资源。
随着显示核心的发展,GPU的填充率在迅速的提升,目前的AGP8×所能提供的2.1GB/S的带宽已经渐渐无法满足新一代GPU极高的填充率,数据传输资源的不足导致GPU的运算能力无法得到充分的发挥。程序员不得不将一部分运算交还给CPU,这使得本来就负担沉重的CPU运算能力更加捉襟见肘,而且也限制了渲染任务中各种效果的应用。
PCI-Express的出现给问题的解决带来了转机,更好的数据传输环境给GPU性能的充分发挥提供了良好的条件,也为未来图形处理的数据运算环境的改进和CPU的真正解放打下了基础。
尽管PCI-Express相对于支持PCI设备的软件而言在兼容性方面没有什么问题,但是相对于接口,由于数据传输环境的改变,新一代显卡必须改变数据接口形式以适应新的变化。虽然PCI-Express得到主板芯片组的完美支持以及普及还需要时日,但是ATI和NVIDIA都已经迫不及待的宣布了自己目前的PCI-Express产品计划。
同以往一样,这次两家公司的发展方向再一次形成了对抗。ATI为我们提供了完整的全新设计的兼容PCI-Express的GPU产品线,该组产品提供GPU芯片本地支持PCI-Express的解决方案。而NVIDIA则提供了通过桥接芯片(HSI芯片)来使自己目前的AGP产品直接兼容PCI-Express的解决方案。
Native,通畅的路。
ATI将自己的解决方案称为Native,即所谓“原生”。根据ATI的资料来看,ATI采用的具体方法是重新设计当前的AGP产品,改变GPU内部的数据接口形式,在保证处理性能不变和控制成本的前提下尽量使新产品利用PCI-Express总线的优越特性。
同时尽量保留原来的AGP总线中有积极意义的特性,比如DIME操作、边带寻址等。通过在其芯片内部去除造成延迟的其他因素,ATI的产品利用PCI-Express的良好潜在性能,在进行数据传输时,ATI宣称其产品可以完整的利用PCI-Express×16的全部带宽,包括上行和下行。同时,ATI的资料中还暗示其产品中拥有某些桥接芯片所不能实现的特殊功能。
ATI的PCI-EXPRESS解决方案
采用原生PCI—Express接口设计的R423
ATI的原生解决方案实际上从新设计了GPU的内部接口部分的结构,直接从GPU芯片的层面实现了与PCI-Express的互连,并能保证GPU能够最直接的利用PCI-Express总线的各种特性。
相对而言,ATI的解决方案更加简洁容易理解(虽然在设计上是两回事)。原生的特点在于没有其他互连层的延迟和干扰,这对于数据传输所需的理论带宽很重要,原生方案原则上可以保证GPU完全利用PCI-Express上行和下行各4GB的理论带宽,这将使得GPU 6.4GB/S左右的填充率在数据交换方面得到充分的保证。
同时,原生方案不会给显卡制造商带来成本负担。不过原生方案并不是没有成本增加,ATI为了生产新设计的原生设计的GPU不得不更改自己的芯片流水线,让原本支持AGP的GPU下线,修改流水线后再让支持PCI-Express的GPU上线,这带来了大约2000万美元的支出。支持这种特性的ATI产品包括X800系列,X700系列,X600系列以及X300系列GPU。
HSI,宽敞的桥。
NVIDIAPCI-Express解决方案
根据NVIDIA的产品资料,其PCI-Express解决方案的重点在于保留现有的GPU设计,在此基础上通过在板卡或者核心中增加一个高速桥接芯片,即HSI。以此作为PCI-Express同GPU之间联系的桥梁,这个桥接芯片是一个可逆AGP的PCI-Express接口,这个接口已经完全受软件监控。
起初,HSI被用来桥接AGP图形芯片到PCI-Express总线上,但是随着NV43的推出,这种芯片也会用来连接采用原生PCI-Express设计的GPU到AGP总线上。
采用内部桥接的NV45
HSI设计的特点与原生设计最大的不同在于其在GPU和总线之间添加了一个互连层,通过互连层实现GPU中现有的数据接口与不同类型总线之间的连接和数据传输。
GeforceFX5950PCX的桥接芯片
这种设计显得非常灵活,NVIDIA可以根据不同的需求生产不同的GPU,这使得NVIDIA可以更加自如的控制其流水线上的成本,并且更加方便地使自己的原生方案的GPU可以很快的进入AGP领域。
但是,这种设计的潜在缺陷是明显的,由于多余互连层的加入,数据传输的环境势必受到影响。而且,由于HSI芯片会增加大约5美圆左右的生产成本,而这部分成本肯定要由显卡生产厂商来承担,这对于现在刺刀见红的市场竞争来说具有极大的影响。
来自ELSA的FX5950PCX显卡
支持HSI方案的NVIDIA产品包括GeforcePCX系列,包括Geforce5950PCX,Geforce5750PCX,5550PCX,以及Geforce 6800PCX系列,另外还有Geforce6600 AGP系列。
ATI将自己的原生解决方案比喻为一条直路,而将桥接方案比喻成架桥,并认为“有路何需架桥?”。那么原生和桥接方案究竟孰优孰劣呢?
在理论传输方面,原生方案具有巨大的优势,设计特点决定了原生方案理论上可以完全不受限制的利用PCI-Express×16所能提供的近乎全部带宽。
而桥接方案由于受限于GPU内部的AGP接口速度而无法发挥PCI-Express×16的全部带宽,根据NVIDIA的说法,为了最大限度的保护PCI-Express的数据传输资源,目前的GeforcePCX系列产品的内部AGP接口已经从8×调整到了16×。这样算来,即使在最理想状态下,NVIDIA的产品也仅仅能利用PCI-Express×16的一半带宽,即4GB/S。理论测试证实了原生方案的优势。
原生方案及桥接芯片的理论测试
从图中我们可以看到,在支持PCI-Express的芯片组上,采用原生方案的GPU的理论数据传输能力几乎是采用传统设计的两倍。同时,我们也注意到目前的芯片组还没有完全发挥出PCI-Express×16的潜力,这是目前芯片组设计方面所面临的重要问题。理论部分如此,那么在实际应用中呢?我们采用最新的PCI-Express版本的6800Ultra与X800 XT PCI-E进行对比测试。
研发代号:NV45/R423
产品型号:GeForce 6800 Ultra/RADEON X800 XT
接口方式:PCI-E ×16/PCI-E ×16
核心频率(MHz):400/500
像素渲染流水线数量:16/16
理论填充率(M Pixels/s):6400/8000
顶点渲染器数量:6/6
显存类型:DDR3/DDR3
显存频率(MHz):1100/1000
显存位宽(bit):256/256
显存带宽(GB/s):35.2/32.0
制造工艺:0.13μm/0.13μm
晶体管数量:2.22亿/1.6~1.8亿
DirectX版本:9.0/9.0
PS版本:3.0/2.0
VS版本:3.0/2.0
华硕EAX800XT PCI-E样卡
华硕6800Ultra PCI-E样卡
华硕EAX800XT PCI-E核心
华硕6800Ultra PCI-E样卡核心
显卡,项目:NV45,NV45,R423,R423
No AF No FSAA,4XAF 4XFSAA/No AF No FSAA/4XAF 4XFSAA
3Dmark 03 build 340总分
1024X768,11747,7412,12076,7428
1280X1024,9353,5595,9754,5542
1600X1200,7593,4328,7954,4289
单像素填充率M Texels/s,3292.2,N/A,2911.4,N/A
多像素填充率M Texels/s,6281.4,N/A,6858.7,N/A
AquaMark3 总分
1024X768,65.83,53.92,54.56,49.02
1280X1024,61.10,43.72,49.40,42.09
1600X1200,55.36,34.92,44.12,35.50
DOOM3
1024X768,83.5,59.2,77.2,47.8
1280X1024,80.8,51.0,61.7,34.4
1600X1200,69.6,38.4,47.8,25.6
Quake Ⅲ
1024X768,427.7,424.1,436.3,388.6
1280X1024,421.0,388.9,418.9,304.2
1600X1200,411.0,327.0,383.0,226.7
UT2003 得分
1024X768,168.1,167.3,176.8,173.8
1280X1024,166.8,155.9,175.7,155.6
1600X1200,166.3,133.9,172.9,126.9
FarCry mp-dam
1024X768,95.6,93.6,112.2,101.3
1280X1024,94.5,1.6,103.5,72.7
1600X1200,90.2,82.3,88.8,54.1
我们发现,在实际应用中原生方案并没有表现出过人的优势,性能上与采用HSI的桥接方案相当,并没有出现理论测试中那种成绩上的飞跃,也没有体现出PCI-Express的设计特点。这又是为什么呢?
首先,在实际应用中有效的可利用的PCI-Express的带宽比理论带宽重要的多。PCI-Express的有效带宽计算公式如下:有效数据带宽 = 总线带宽 ×[请求大小/(请求大小+附加信息包详细程度)]× 效率。
由于显卡具备输出端的工作特点,GPU在实际操作过程中的数据传输往往倾斜于上行,也就是从总线向GPU内部传输数据,这就使得PCI-Express×16巨大的下行数据传输能力在大多数时间成为了摆设。
由于桥接+现有芯片的方案提供了4GB左右的数据传输能力,相对而言已经能够达到PCI-Express上行数据的传输能力,这就使得NVIDIA的产品在实际应用中并不会受到比ATI更多的来自数据传输的限制。
其次,NVIDIA的GPU支持最大单次64byte的数据请求包,并能为这个请求附加20byte左右的附加信息包,更大的数据传输包以及附加信息包可以保证尽可能大的数据请求以及对更加完整的对请求的附加描述。
尽管附加描述包的出现会占用一定的带宽,但是对于较大量的单次数据传输而言,详尽的请求附加描述可以保证尽可能正确有效的内容发送,其结果就是相应的应请求发送的单次数据完整适应度的增加。
这种设计保证了数据传输通道可以被高效率的利用,使得HSI方案所提供的数据带宽能够被完全利用。相对的,ATI的GPU所支持的数据请求包的大小仅为32byte,这大大限制了ATI的GPU利用数据传输通道的能力。据称,ATI的GPU对于PCI-Express带宽的有效利用律仅仅达到了65%,即2.5GB/S。
最后,由于在设计的时候充分考虑到了多余互连层带来得潜伏期的问题,NVIDIA的HSI芯片的设计潜伏期大大低于芯片组和PCI-Express的潜伏期。更高的响应速度可以使HSI先于芯片组和总线做出反应,不会影响到数据传输的过程。因此NVIDIA的产品中并没有出现明显的ATI所预言的添加互连层带来的数据传输周期延迟问题。
综上所述,即使在大量数据充塞数据传输通道的情况下,HSI桥接方案也能保证很高的效率,保证GPU在实际应用中不会受到来自数据传输方面的限制。也许你依然认为桥接方案的延迟要远远落后于原生方案,并且无法接受现实应用中原生方案的表现。其实,我们可以想到一个很方便类比的例子——Athlon64和HyperTransport。
Athlon64和HyperTransport的连接非常类似于HSI桥接芯片,像PCI-Express一样,HyperTransport也是一个高速的,窄通道的,基于数据包传输模式的连接。它与CPU和总线的连接和从PCI-Express到HSI到GPU的过程很相似。
在Athlon64发布时,很多人对于这样一个快速的窄带接口是否可以让CPU与慢速宽通道的总线配合抱持着怀疑的态度。但是现在看来,这种担心是完全多余的,Athlon64的实际表现说明了一切。桥接的解决方案的关键在于响应速度,只要响应速度足够高,那么桥接方案不会对系统性能造成很大的影响。
另外,HSI桥接方案的作用还体现在了AGP领域的应用。由于PCI-Express的普及速度落后于ATI的预期,使得ATI现在不得不面对一个异常尴尬的场面,它不得不使用老式的AGP接口形式的9800pro来跟NVIDIA全新的6600GT的AGP版本进行对抗。
显而易见,这场对抗是一场不公平的,对ATI而言是根本毫无胜算的对抗,9800pro的实际性能甚至不如超频后的6200……但是ATI不得不面对这个现实。
由于NVIDIA的HSI芯片具有逆向传输设计,这使得NVIDIA的原生PCI-Express方案的GPU可以畅通无阻的进入AGP领域,而ATI的X700系列的AGP版本要等到05年的第一季度才能出现,这不仅仅给ATI带来了研发和生产的负担,最致命的是这段时间的市场真空期所造成的损失几乎是无法弥补的,当X700的AGP版本进入市场时,6600系列的AGP版本早已占领市场多时。可以说HSI芯片的真正价值在AGP市场得到了没有任何质疑成分的成功。
当然,桥接方案尽管很成功,但它毕竟是个过渡的解决方案。从NVIDIA迅速推出了自己的GPU原生解决方案就可以充分说明这一点。毕竟能够充分利用PCI-Express总线的所有潜在特性是所有厂商都梦寐以求的,这样才能从根本上完全发挥设备的全部性能。
而且从市场角度考虑,原生解决方案也是最终的大势所趋,毕竟AGP最终将会面临淘汰。当PCI-Express×16接口统一图形接口市场的时候,HSI桥接解决方案肯定会被市场抛弃。不过就现阶段而言,HSI桥接技术的价值还是非常巨大的。
在下一阶段,厂商研发的重点将转换到如何更加高效的利用PCI-Express的现有资源上,随着接口资源的更高效利用,也许实现将CPU从图形运算中完全解放出来并不是梦想,让我们共同期待着这一天的到来吧。