MCPLive > 杂志文章 > GDDR5的死敌 让人欢喜让人忧的XDR2显存

GDDR5的死敌 让人欢喜让人忧的XDR2显存

2009-07-08CleanBlue《微型计算机》2009年6月上

很显然,这是一个对数据带宽极度渴求的时代:CPU总是在等待内存数据、GPU总是处于显存读写之中……计算机的内存从单通道到双通道,从SDR到DDR3,带宽在不停的增加;图形核心的显存控制器从128-bit到512-bit,甚至在用上了GDDR5显存后,依旧发觉需要更多的带宽。2005年,30GB/s的数据带宽一般可满足显卡需求;现在,GeForce GTX 285带来了超过140GB/s的显存带宽,而在接下来的2010年, GPU很可能需要超过500GB/s的数据带宽。

为了进一步了解数据带宽的重要性,我们不妨来看看目前高端显卡的设计是如何考虑的:由于256-bit的显存位宽难以满足需求(也可以认为是显存速度过慢),设计师们不得不使用512-bit位宽来连接显存。这使得显卡PCB布线变得困难、版型变长、层数变多,随之而来的就是成本升高。不仅如此,在使用了并行总线技术后,显存数据在高频下工作显得越来越脆弱:布线越复杂、信号干扰越严重。如果使用层数更多的PCB,成本越来越高,同时显存控制单元单元也要占用大量晶体管和晶片面积。

毫无疑问,显存需要改革。GDDR4?由于无法达到更高的频率,它已经被证明不合适,
GDDR5?GDDR5单颗芯片位宽为32-bit,能带来大约20GB/s的数据传输速率。即使使用512-bit显存控制器,也只能达到320GB/s。如果在频率上不能进一步快速上升的话,GDDR5依旧难以满足未来显卡的需求。在这种情况下,我们有必要将目光转向其它存储设备。XDR2,作为目前RDRAM阵营中性能强悍、速度快的存储方案,很快就进入了研发人员的视野。

从参数说起——XDR2的彻底变革

我们先用一张图表来对比XDR2和GDDR阵营,图1表示的是各种存储芯片的单芯片速度。目前GDDR3高频率在2400MHz左右,相当于单芯片(32-bit,2.4×32÷8)带宽为9.6GB/s;而GDDR5从3.2Gbps起跳,终可达到6Gbps的速度,目前GDDR5单芯片速度可达20GB/s。相比之下,XDR从3.2Gbps起跳,将达到6.8Gbps的快速度。

那么XDR2呢?XDR2频率从6.4GHz起跳,终可以达到12.8GHz的惊人高度!即使按照6.4Gbps的低规格来计算,如果XDR2采用和GDDR5相同的32-bit位宽,那么起始速度就将达到25.6GB/s!这还只是XDR2的基础速度,在进一步提升规格后,它在32-bit位宽下的速度将达到惊人的
51.2GB/s。如果你并不明白这个速度的意义,我们可以比较下目前NVIDIA当红的显卡GeForce GTS 250,它在使用了0.8ns/2200MHz的GDDR3显存、搭配G92核心的256-bit显存位宽后的显存带宽为70.4GB/s。

而它如果搭配XDR2,32-bit位宽带来的带宽是51.2GB/s,64-bit的XDR2就已经达到了
102.4GB/s。如果位宽也升级到256-bit,那么XDR2的带宽速度将达到409.6GB/s!如果GeForce
GTS 250采用XDR2作为显存的话,在布线和设计方面将大大降低难度。


图1

高速只是XDR2优势的一方面。我们知道,目前高档显卡多采用1GB以上的高速显存配置,如
Radeon HD 4970显卡,采用1GB GDDR5显存,使用了单独两相显存供电方案。这说明GDDR5的显存功耗还是比较大的,进一步提升频率后,GDDR5很可能在功耗和散热方面遇到难题。


图2

相比之下,XDR2在功耗方面做出了优化。根据Rambus提供的资料来看(图1),XDR2在同等带宽下可比GDDR5芯片节约30%左右的电能,或者在同等耗电下,比GDDR5多提供约50%的数据带宽(其中绝大部分系统结构是设计上的因素)。从图2我们也能看出,XDR2能够比GDDR5在未来发展中提供具有潜力的发展空间。GDDR5单芯片带宽几乎在25GB/s左右止步不前,而XDR2在32-bit下能提供多达51.8GB/s的带宽。那么究竟是什么新技术的应用,让XDR2内存有如此强大的性能呢?

五大法宝——XDR2的技术突破

正如同PCI发展到PCI-Express,IDE发展至SATA一样,从RDRAM开始,Rambus公司坚持的串行发展路线,在今天终于得到了有利的印证。XDR2正是串行通信技术得到了长足发展的产物。

何为串行和并行?

简单来说,串行是用窄位宽高频率来传输数据,就像两车道的高速公路,车速可以高达300km/s;并行是用宽位宽和较低频率来传输数据,相当于6车道的城市公交,速度虽然只有300km/h,但是一次可以开六辆车。

目前正式发布的XDR2内存芯片的标准设计位宽为16-bit,目前传输速率高为8Gbps,单颗
XDR2芯片的数据带宽就将达到16GB/s(8×16÷8=16GB/s)。从整体结构来看,XDR2在内部架构的设计上和XDR非常类似。大的革新莫过于XIO2(第二代X DR2 IO控制器)以及XMC2(第二代
XDR2存储控制器)。


图3

从图3可以看到,每一颗存储芯片通过五条总线和XIO2以及XMC2直接相连。其中RQ总线用于传输寻址和控制命令,DQ总线用于数据传输。

根据Rambus披露的相关资料来看,XDR2基本沿用了XDR的设计思路,在为影响传输速度和带宽的频率方面,XDR2做出了如下调整:

1.XDR2在内部传输速度上比XDR更进一步,比如XDR2的总线频率比XDR提升了25%,达到
500MHz。
2.RQ总线的速度更是提升了2.5倍,由XDR的800MHz提升至2GHz。更高频率有助于降低整个系统的潜伏时间,提升响应速度。
3.为关键的数据传输DQ总线,XDR2提升到了16倍传输速度,高可以达到每总线
12.8Gbps的传输速度,这是整个XDR2技术提升速度的关键性因素。

当然,上述技术仅仅是表面上描述XDR2终性能提升的数值。辉煌的表面数据背后都是复杂的技术研究。那么XDR2有哪些法宝达到这么强悍的性能呢?我们分为下面五大技术解决方案:

法宝一:高速传输的基础——高达16倍的数据传输速率

对于存储设备来说,我们为关心的是它的速度。没错,我们反复强调,16倍的数据传输速率是XDR2核心和关键的技术进步(图4)。在串行总线中,如果无法维持更多的一次传输数据量,那么只有依靠极高的频率在同样的时间内尽可能多地传输数据。


图4

在每个时钟周期内,XDR采用了16倍传输速度。在同样的技术点上,GDDR只能在同时钟周期内传输2次,GDDR2则是4次、GDDR5也只有8次。但是GDDR系列先天的并行总线令其难以持续扩展频率,数据信号也会在高频下会变得非常脆弱,进一步发展比较困难。

XDR2的DQ总线的实际运行频率仅为800MHz,但是其经过16倍“增速”之后,名义运行速度高达12.8GHz,不过高频运行并不是单纯的提升速度就可以完成的,为了保证16倍数据传输速度的成功运行,XDR2还采用了众多辅助技术。


图5:未采用信号纠正技术时杂乱无章

从理论来说,更高的传输速度要求更低的错误率。比如在12.8Gbps的传输速度下,每传输15个单位的数据,数据错误多只能有一个。但实际传输过程中,数据信号不可能时刻运行在理想位置。特别是在高频运行的情况下,信号会更为脆弱(如信号的振幅、相位、位宽等都会由于干扰而产生变化)并导致严重的数据错误(图5)。为了避免这样的错误产生,XDR2采用了几种信号纠正技术来保证数据正确率(图6)。


图6:综合使用各种信号纠正技术后,信号清晰有序

Rambus宣称在XDR2中至少使用了6种技术来减少传输中的误差。其中比较重要的是
Enhanced FlexPhase时序调整技术,有关Enhanced FlexPhase的内容,我们将本文的另一部分详细叙述。除此之外,降低相位杂讯,并提供比目标资料传输率更多的频率倍数。其它如减少缓冲大小、管理电路信号,降低敏感电路的杂讯、减少由供电带来的杂讯并降低能耗等,都被用于保证高频率下数据传输的有效性。

总的来说,在应用了16倍数据传输技术后,XDR2能够在每个时钟周期内传输更多的数据,弥补串行传输的先天不足,并且简化了芯片的布线、针脚设计等问题。需要说明的是,作为XDR2速度提升技术的核心,16倍数据传输技术并非单独的一个技术,它是更多的技术综合运用的结果。

法宝二:超强纠错功能——Enhanced FlexPhase时序调整技术

时序调整是什么?时序又是什么?很简单,时序就是操作时间的运行顺序。比如在3秒钟内得完成这个操作,内存的刷新时间必须控制在2个时钟周期内。那么时序调整就是由于时序不能满足需求,而做出的调整。很常见的一个问题是:信号无法同步到达芯片。比如在采用GDDR体系结构的设计方案中,对信号线的长度提出了严格要求。因此我们常常看到设计师采用了蛇形走线方案来统一信号线长度。从信号传输要求上来讲,信号线越短、所受到的干扰越小,自身对外界发出的干扰也越小。但由于PCB层数限制、成本限制等原因,信号线已经有越来越长的趋势。


图7

作为时序调整的重要技术之一,Enhanced FlexPhase(以下简称“EFP”)不仅被用于XDR2芯片中,在GDDR中也有大量应用(图7)。在GDDR结构的芯片中,信号同步往往需要使用EFP加入校正信号偏移的设计或者预先写入信号错位(preskew)的资料。这是一种“预先纠错”的方法,它多被用于那些持续性和重复性出现的误差上。打个比方来说,如果你每次8点15分起床到公司都迟到的话,那么你可以使用EFP技术,把你的表拨快5分钟,虽然表上显示的依旧是8点15分,实际上你8点10分就起床了,这样就不会迟到被扣钱。

XDR2芯片为了达到12.8Gbps的高速传输,也使用了EFP技术。在XDR2中,EFP技术可以测定并存储不同信号线两端的相位差。不论是存储芯片的“读操作”还是“写操作”,EFP均可确定并校正由于信号线的设计问题带来的时序延迟。这就为工程师们设计布线提供了更大的方便。不仅如此,EFP技术配合一些分析软件,可帮助技术人员测量芯片错误率,确定干扰来源。这些都有助于芯片在高频率下稳定运行,并持续正确存储数据。在使用了EFP技术之后,整个存储芯片的配置更为简化,在设计成本上也有一定的降低。

法宝三:让线路设计更简单、更方便——FlexLink C/A介面技术

串行技术其大的优势就是使用更少的数据和更高的频率。这一点我们之前已经叙述过多次,比如GDDR3芯片至少需要28根线路来连接存储控制器和芯片。在应用了FlexLink Command/
Address介面技术(图8)的XDR2上,只需要2根数据线。其中一个重要原因就是引入了FlexLink C/A介面,这是一种非常优秀的全速、可扩展、点对点的技术解决方案。


图8

FlexLink C/A带给XDR2极强的容量扩展灵活性,如一个存储控制器拥有4根控制线路和32根数据线路的话,既可以给单个芯片连接4根控制线路和32个数据总线并片实现128-bit位宽,也可以分别控制两个芯片,平均每个芯片2根控制线路和16根数据线路总线,这样的话两颗芯片每颗提供64-bit位宽,共128-bit。这样设计可以在不增加位宽的基础上,迅速通过多颗芯片并联来提升存储容量。FlexLink C/A大可扩展至同时连接4颗芯片,在位宽不改变的情况下容量翻两番。

除了在芯片存储容量上体现出灵活性外,对一些位宽需求不同的场合,FlexLink C/A也给出了颇为灵活的方案。如同一颗芯片,在全速运行时可以满载1根C/A线路和32个DQ总线,实现128bit的总线位宽(每DQ4bit),也可以实现4根C/A线路和8个DQ总线,借以实现32bit总线位宽。

借助于FlexLink C/A,无论是扩展容量还是扩展位宽,设计都变得极为简单,只要通过线路的调整以及总线连接方式的改变就能轻松达到目标。并且FlexLink C/A大幅度减少了针脚数量、降低了系统布线难度、同时也减低了成本和功耗。

法宝四:串行传输的根本技术——全面差异存储结构(FDMA)

在解决了高速、传输信号纠错、传输线的设计后,针对信号传输的根本:数据传输方法,
XDR2又带来了什么呢?

在之前的XDR中,Rambus已经使用过差异化存储结构。简单的说,这种存储方式利用两条信号线之间的差值来确认传输的有效性,比传统的信号传输方式抗干扰能力更强(图9、图10)。


图9:差异化传输示意图

在传统的传输方式中,设计者会给出一个参考电压,而其它所有的信号线均根据参考电压值来传输数据。如信号线电压值高于或者等于参考电压,则视为信号1;如果信号线电压值低于参考电压,则视为信号0。在传输电压较高的时候,这种传输方法尚有不错的空间用于应对干扰。比如参考电压4V,那么给0信号给予0V电压,4V和0V电压之间差距非常明显,易于识别。但是目前芯片电压持续下降,甚至不足1V。在面临复杂干扰的情况下,这种信号传输方式就难以为继。


图10:XDR2使用的全面差异化传输(FDMA)

差异化传输则另辟蹊径。这种传输方式使用两条线路,当直流电通过某一条线路时,线路中的电阻两端就会反映出电压。再根据电流的极性就可以确定是数据1还是0。面对严重干扰时,由于无论是对比端还是测量端的电压都会同步上升(下降),因此差异化传输拥有出色的抗干扰性能。即使芯片电压降低至0.1V,通过差异化电路的传输,信号依旧可以完整正确的传输。

在XDR中,这种差异化传输方式仅用于信号线(DQ线),而作为控制线的C/A线并未采用。在XDR2中,C/A线也终于被纳入差异化传输中,这就意味着XDR2实现了全面差异化存储结构。高频率的信号脆弱性不复存在,XDR2依靠全面差异化,彻底解决了信号干扰的问题。

法宝五:创新的数据效能提高技术——微线程架构

在处理器中有微线程,在显卡中也有微线程的概念,那么内存的微线程是什么?会带来什么好处?它会给予我们更快的访问速度和更省电的访问方式吗?别着急,请往下看。

我们知道,对DRAM的访问可以被分为行访问和列访问(你完全可以把行访问想象成二维坐标轴的X轴,而把列访问想象成Y轴)。由于设计和访问规则的限制,在传统的DRAM中进行一次行访问,至少需要访问512-bit的数据,512-bit被称为行粒度;执行一次列访问,至少需要128-bit的数据,128-bit被称为列粒度。所谓“粒度”,就是你访问数据小的度量标准。哪怕你在某一行仅仅需要1-bit的数据,你都得把512-bit的数据全部访问一遍才行。打个比方来说,如果你去图书馆找书,知道书存放在三号书架,为了找到这本书,你必须将三号书架上所有的书都看一遍,哪怕你已经找到了你想要的目标,反正不把书架上的书都看完,你压根别想拿走。

可能有些用户认为几百bit的数据是多么的微小!对显卡来说,这样大的粒度,让一些小三角形的数据信息存储成为一个麻烦的问题。我们可以这样计算:如果某三角形占据了6个像素,每像素4-bit的话,一共就是24-bit的信息。当然,你可以轻松认为这24-bit信息都在一行或者一列中。实际上显存在存储数据时,不会将数据都塞在某处集中处理。也就是说三角形的信息不可能都存放在同一列(一行)中。这个三角形可能被放在2个列中,也可能被放在4个列中。

总之,三角形的数据是分散放着的。如果三角形的数据被放在2列中,则需要读写256-bit的数据,如果放在4列中,则需要读写512-bit的数据。三角形本身只有24-bit,幸运的话,只需要多找
232(256-24)个无用的数据就可以读出三角形了,如果你不幸运,那么你就被迫做了95.31%的无用功(1-24÷512=0.9531)。为什么要做这么多无用功?很简单,粒度,凡是经过的行和列的数据都必须访问,这就是小粒度过大的后果。


图11

从上面的分析我们可以看出,过大的行粒度和列粒度的存在导致显存访问数据时做了大量的无用功。为了解决这个问题,XDR2提出了更新的处理方法——XDR2集成RDRAM的双数据通道技术(图11),但数据通道却是分别独立的,这有效降低了行粒度和列粒度。

根据Rambus数据,XDR2的行粒度为128-bit,而列粒度为32-bit,仅为传统粒度的25%。这就意味着你如果寻找24-bit的数据,2次找到的话则仅仅多找40-bit(32×2-24)即可,不幸的情况,你也仅仅多耗费了81.25%的时间,节省了约14%。更小的粒度的意义不仅仅在于提高访问或者读取数据的有效性上,在图形计算中,更为精细的三角形应用越来越广泛,更小的粒度对降低显存无用功非常有意义。而在流体力学计算等对小数据量非常敏感的计算中,更小的粒度更是能明显提升存储单元的效能。另外,更少的访问会降低能耗,因为无论是数据存储还是传输,都需要耗费大量的能量。这是XDR2相对GDDR5节能的重要方面。

总结:XDR2,成功的技术,堪忧的前景

从上述分析可以看出,Rambus在整个XDR2的技术研发和操作上是非常成功的。不过我们担忧的并不是它的技术规范,而是市场推广。相比GDDR和DDR的庞大市场占有率,在PC机方面,
XDR2的占有率依旧是0。虽然XDR已经成功入驻了PS3,给Rambus带来了一丝希望的曙光,但对于这样一个需要全新的设备和生产线才能生产出的产品,如果不是大规模平摊成本的话,几乎没有任何一家厂商愿意冒如此大的风险去生产它,因此终Rambus的发展肯定还是需要PC机的辅助。

我们已经看到了RDRAM的失败先例,随后的XDR的小规模应用应该算作是不错的兆头。面对强大的GDDR5,XDR2完全有能力将其在技术上挑于马下。Rambus已经为我们展示了它在知识产权保护上的能力,但是市场推广方面还需要进一步的努力才行。说不定在下一次的NVIDIA或AMD的高端显卡上,我们就能看到XDR2给我们带来的惊喜。毕竟XDR2是非常有潜力的出色存储技术。

分享到:

用户评论

用户名:

密码: