一步成高手:终极图解内存(下篇)

一步成高手:终极图解内存(下篇) - 电脑诊所 - 电脑教程网

一步成高手:终极图解内存(下篇)

日期:2006-04-18   荐:
如日中天——DDR SDRAM(上)DDR SDRAM全称为Double Data Rate SDRAM,中文名为“双倍数据流SDRAM”。DDR SDRAM在原有的SDRAM的基础上改进而来。也正因为如此,DDR能够凭借着转产成本优势来打败昔日的对手RDRAM,成为当今的主流。由于SDRAM的结构与操作在上文已有详细阐述,所以本文只着重讲讲DDR的原理和DDR SDRAM相对于传统SDRAM(又称SDR SDRAM)的不同。

点击查看大图 ·内存不能存为“Read”有这么几种原因
·让有限的内存用在刀刃上的几招
·kingston(金士顿)内存编号识别方法
·琳动分析:系统多少内存才算够?
·生化危机4-内存修改 Biohazard 4
·内存引起的主机无响应故障
·解决内存不为读或写的问题
·手把手教你内存终极变相“造假”大法
·玩家顶级装备 WINTEC AMPX内存性能测试
·不可不信!10M内存换来的美丽苹果


DDR SDRAM可在一个时钟周期内传送两次数据

一、DDR的基本原理

有很多文章都在探讨DDR的原理,但似乎也不得要领,甚至还带出一些错误的观点。首先我们看看一张DDR正规的时序图。



DDR SDRAM读操作时序图

从中可以发现它多了两个信号: CLK#与DQS,CLK#与正常CLK时钟相位相反,形成差分时钟信号。而数据的传输在CLK与CLK#的交叉点进行,可见在CLK的上升与下降沿(此时正好是CLK#的上升沿)都有数据被触发,从而实现DDR。在此,我们可以说通过差分信号达到了DDR的目的,甚至讲CLK#帮助了第二个数据的触发,但这只是对表面现象的简单描述,从严格的定义上讲并不能这么说。之所以能实现DDR,还要从其内部的改进说起。

点击查看大图

DDR内存芯片的内部结构图,注意比较上文中SDRAM的结构图

这也是一颗128Mbit的内存芯片,标称规格也与前文的SDRAM一样为32×4bit。从图中可以看出来,白色区域内与SDRAM的结构基本相同,但请注意灰色区域,这是与SDRAM的不同之处。首先就是内部的L-Bank规格。SDRAM中L-Bank存储单元的容量与芯片位宽相同,但在DDR SDRAM中并不是这样,存储单元的容量是芯片位宽的一倍,所以在此不能再套用讲解SDRAM时 “芯片位宽=存储单元容量” 的公式了。也因此,真正的行、列地址数量也与同规格SDRAM不一样了。

以本芯片为例,在读取时,L-Bank在内部时钟信号的触发下一次传送8bit的数据给读取锁存器,再分成两路4bit数据传给复用器,由后者将它们合并为一路4bit数据流,然后由发送器在DQS的控制下在外部时钟上升与下降沿分两次传输4bit的数据给北桥。这样,如果时钟频率为100MHz,那么在I/O端口处,由于是上下沿触发,那么就是传输频率就是200MHz。

现在大家基本明白DDR SDRAM的工作原理了吧,这种内部存储单元容量(也可以称为芯片内部总线位宽)=2×芯片位宽(也可称为芯片I/O总线位宽)的设计,就是所谓的两位预取(2-bit Prefetch),有的公司则贴切的称之为2-n Prefetch(n代表芯片位宽)。

二、DDR SDRAM与SDRAM的不同

DDR SDRAM与SDRAM的不同主要体现在以下几个方面。

DDR SDRAM与SDRAM的主要不同对比表

点击查看大图



DDR SDRAM与SDRAM一样,在开机时也要进行MRS,不过由于操作功能的增多,DDR SDRAM在MRS之前还多了一EMRS阶段(Extended Mode Register Set,扩展模式寄存器设置),这个扩展模式寄存器控制着DLL的有效/禁止、输出驱动强度、QFC 有效/无效等。



由于EMRS与MRS的操作方法与SDRAM的MRS大同小异,在此就不再列出具体的模式表了,有兴趣的话可查看相关的DDR内存资料。下面我们就着重说说DDR SDRAM的新设计与新功能。


[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  


如日中天——DDR SDRAM(下)

1、 差分时钟

差分时钟(参见上文“DDR SDRAM读操作时序图”)是DDR的一个必要设计,但CK#的作用,并不能理解为第二个触发时钟(你可以在讲述DDR原理时简单地这么比喻),而是起到触发时钟校准的作用。由于数据是在CK的上下沿触发,造成传输周期缩短了一半,因此必须要保证传输周期的稳定以确保数据的正确传输,这就要求CK的上下沿间距要有精确的控制。但因为温度、电阻性能的改变等原因,CK上下沿间距可能发生变化,此时与其反相的CK#就起到纠正的作用(CK上升快下降慢,CK#则是上升慢下降快)。而由于上下沿触发的原因,也使CL=1.5和2.5成为可能,并容易实现。



与CK反相的CK#保证了触发时机的准确性

2、 数据选取脉冲(DQS)

DQS是DDR SDRAM中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个DQS信号线,它是双向的,在写入时它用来传送由北桥发来的DQS信号,读取时,则由芯片生成DQS向北桥发送。完全可以说,它就是数据的同步信号。

在读取时,DQS与数据信号同时生成(也是在CK与CK#的交叉点)。而DDR内存中的CL也就是从CAS发出到DQS生成的间隔,数据真正出现在数据I/O总线上相对于DQS触发的时间间隔被称为tAC。注意,这与SDRAM中的tAC的不同。实际上,DQS生成时,芯片内部的预取已经完毕了,tAC是指上文结构图中灰色部分的数据输出时间,由于预取的原因,实际的数据传出可能会提前于DQS发生(数据提前于DQS传出)。由于是并行传输,DDR内存对tAC也有一定的要求,对于DDR266,tAC的允许范围是±0.75ns,对于DDR333,则是±0.7ns,有关它们的时序图示见前文,其中CL里包含了一段DQS的导入期。

前文已经说了DQS是了保证接收放的选择数据, DQS在读取时与数据同步传输,那么接收时也是以DQS的上下沿为准吗?不,如果以DQS的上下沿区分数据周期的危险很大。由于芯片有预取的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各I/O端口的出现时间可能有快有慢,会与DQS有一定的间隔,这也就是为什么要有一个tAC规定的原因。而在接收方,一切必须保证同步接收,不能有tAC之类的偏差。这样在写入时,芯片不再自己生成DQS,而以发送方传来的DQS为基准,并相应延后一定的时间,在DQS的中部为数据周期的选取分割点(在读取时分割点就是上下沿),从这里分隔开两个传输周期。这样做的好处是,由于各数据信号都会有一个逻辑电平保持周期,即使发送时不同步,在DQS上下沿时都处于保持周期中,此时数据接收触发的准确性无疑是最高的。




在写入时,以DQS的高/低电平期中部为数据周期分割点,而不是上/下沿,但数据的接收触发仍为DQS的上/下沿

3、 写入延迟

在上面的DQS写入时序图中,可以发现写入延迟已经不是0了,在发出写入命令后,DQS与写入数据要等一段时间才会送达。这个周期被称为DQS相对于写入命令的延迟时间(tDQSS, WRITE Command to the first corresponding rising edge of DQS),对于这个时间大家应该很好理解了。

为什么要有这样的延迟设计呢?原因也在于同步,毕竟一个时钟周期两次传送,需要很高的控制精度,它必须要等接收方做好充分的准备才行。tDQSS是DDR内存写入操作的一个重要参数,太短的话恐怕接受有误,太长则会造成总线空闲。tDQSS最短不能小于0.75个时钟周期,最长不能超过1.25个时钟周期。有人可能会说,如果这样,DQS不就与芯片内的时钟不同步了吗?对,正常情况下,tDQSS是一个时钟周期,但写入时接受方的时钟只用来控制命令信号的同步,而数据的接受则完全依靠DQS进行同步,所以DQS与时钟不同步也无所谓。不过,tDQSS产生了一个不利影响——读后写操作延迟的增加,如果CL=2.5,还要在tDQSS基础上加入半个时钟周期,因为命令都要在CK的上升沿发出。

点击查看大图

当CL=2.5时,读后写的延迟将为tDQSS+0.5个时钟周期(图中BL=2)

另外,DDR内存的数据真正写入由于要经过更多步骤的处理,所以写回时间(tWR)也明显延长,一般在3个时钟周期左右,而在DDR-Ⅱ规范中更是将tWR列为模式寄存器的一项,可见它的重要性。



4、 突发长度与写入掩码

在DDR SDRAM中,突发长度只有2、4、8三种选择,没有了随机存取的操作(突发长度为1)和全页式突发。这是为什么呢?因为L-Bank一次就存取两倍于芯片位宽的数据,所以芯片至少也要进行两次传输才可以,否则内部多出来的数据怎么处理?而全页式突发事实证明在PC内存中是很难用得上的,所以被取消也不希奇。

但是,突发长度的定义也与SDRAM的不一样了(见本章节最前那幅DDR简示图),它不再指所连续寻址的存储单元数量,而是指连续的传输周期数,每次是一个芯片位宽的数据。对于突发写入,如果其中有不想存入的数据,仍可以运用DM信号进行屏蔽。DM信号和数据信号同时发出,接收方在DQS的上升与下降沿来判断DM的状态,如果DM为高电平,那么之前从DQS中部选取的数据就被屏蔽了。有人可能会觉得,DM是输入信号,意味着芯片不能发出DM信号给北桥作为屏蔽读取数据的参考。其实,该读哪个数据也是由北桥芯片决定的,所以芯片也无需参与北桥的工作,哪个数据是有用的就留给北桥自己去选吧。

 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  


5、 延迟锁定回路(DLL)

DDR SDRAM对时钟的精确性有着很高的要求,而DDR SDRAM有两个时钟,一个是外部的总线时钟,一个是内部的工作时钟,在理论上DDR SDRAM这两个时钟应该是同步的,但由于种种原因,如温度、电压波动而产生延迟使两者很难同步,更何况时钟频率本身也有不稳定的情况(SDRAM也内部时钟,不过因为它的工作/传输频率较低,所以内外同步问题并不突出)。DDR SDRAM的tAC就是因为内部时钟与外部时钟有偏差而引起的,它很可能造成因数据不同步而产生错误的恶果。实际上,不同步就是一种正/负延迟,如果延迟不可避免,那么若是设定一个延迟值,如一个时钟周期,那么内外时钟的上升与下降沿还是同步的。鉴于外部时钟周期也不会绝对统一,所以需要根据外部时钟动态修正内部时钟的延迟来实现与外部时钟的同步,这就是DLL的任务。

DLL不同于主板上的PLL,它不涉及频率与电压转换,而是生成一个延迟量给内部时钟。目前DLL有两种实现方法,一个是时钟频率测量法(CFM,Clock Frequency Measurement),一个是时钟比较法(CC,Clock Comparator)。CFM是测量外部时钟的频率周期,然后以此周期为延迟值控制内部时钟,这样内外时钟正好就相差了一个时钟周期,从而实现同步。DLL就这样反复测量反复控制延迟值,使内部时钟与外部时钟保持同步。

CC的方法则是比较内外部时钟的长短,如果内部时钟周期短了,就将所少的延迟加到下一个内部时钟周期里,然后再与外部时钟做比较,若是内部时钟周期长了,就将多出的延迟从下一个内部时钟中刨除,如此往复,最终使内外时钟同步。



CFM式DLL工作示意图



CC式DLL工作示意图

CFM与CC各有优缺点,CFM的校正速度快,仅用两个时钟周期,但容易受到噪音干扰,并且如果测量失误,则内部的延迟就永远错下去了。CC的优点则是更稳定可靠,如果比较失败,延迟受影响的只是一个数据(而且不会太严重),不会涉及到后面的延迟修正,但它的修正时间要比CFM长。DLL功能在DDR SDRAM中可以被禁止,但仅限于除错与评估操作,正常工作状态是自动有效的。


昔日贵族——Rambus DRAM(一)

谈起DDR SDRAM与Rambus DRAM(简称RDRAM)之间的恩怨,很多人现在还是津津乐道。的确,上一世纪末的内存大战虽胜负已分,但至今仍余波未平。在主流市场DDR SDRAM成为王者,RDRAM则沦为“高端贵族”。

Rambus公司于1990年3月成立,之后不久就有了Rambus的核心专利——RSL(Rambus Signaling Level,Rambus发信电平技术)。Rambus内存最早出现于1995年12月,那时它与任天堂64(Nintendo64)游戏机一起发售,但名声不大。从1996年12月开始,Rambus与Intel合作开发,准备将Rambus推广到PC领域。到Rambus内存真正亮相于PC市场时已经是1999年11月了。




一、RDRAM简介

RDRAM与DDR SDRAM一样,也是一种采用双沿触发技术的内存, 但它在结构、控制体系方面相对于传统SDRAM有着不小的变化,首先我们来看看它与SDRAM之间的简单比较。

点击查看大图



RDRAM与传统SDRAM的架构比较

从架构比较图中,可以看出RDRAM在工作方式上与SDRAM有了很大不同。SDRAM需要多颗芯片并联组成P-Bank与北桥沟通,而在RDRAM架构中每个芯片就是一个单独工作的读写单元,芯片的位宽就是与北桥接口的位宽,所以如果想用ECC,就要用专门的ECC型芯片,也因此有了16/18bit的两种规格。而芯片的位宽就是一个RDRAM通道的位宽(本文以16bit芯片为例进行介绍)。

为了达到更高的容量,在一个通道中将多颗RDRAM芯片串起来,形成RIMM(Rambus Interface Memory Module,Rambus接口内存模组),如果主板允许,完全可以设计一个超长的内存插槽与模组,但现实中肯定不能这么做,所以在主板上Rambus又把模组串起来组成通道。由于是串联的形式,所以要求起始端与终结端形成一个完整的通路,而RIMM就是这个通路的串联器,因此Rambus要求所有的插槽必须插满,如果没有RIMM则用C-RIMM(Continuity RIMM,RIMM续连器)代替,以达到联通RSL信号并行终结器的目的。工作时,RDRAM每次寻址一颗芯片,所需要的数据则由通道数据总线传送到北桥,而不像SDRAM那样由所在模组直接通过DIMM接口传向北桥,也因此RIMM的引脚定义几乎是左右对称的。

由于位宽的降低,为保证高带宽,RDRAM使用了更高的时钟频率(这就意味着它不可能与系统时钟同步,所以只能叫RDRAM而不是RSDRAM),芯片的工作频率明显高于SDRAM/DDR,这样芯片的工作热量也急剧上升,为此Rambus在官方规范中规定RIMM必须配备散热片,从而成了现在这个样子。

 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  





32bit位宽PC1066芯片标准的RIMM,它是目前PC领域中性能最高的RDRAM产品




二、RDRAM的结构简介

1、 RDRAM的L-Bank结构

RDRAM的内部仍主要由L-Bank构成,但它的设计与SDRAM家族有很大的不同。首先,每个L-Bank有两个数据通道A和B,各为8bit位宽(ECC型号为9bit,这种设计就是Direct DRAM较以前RDRAM的不同),每个端口都配有S-AMP。根据L-Bank数量与S-AMP的分配方式不同,目前RDRAM共有三种内核结构,分别是32s、16d与4i。

较早时,RDRAM的设计是16d,所谓的d是指Double(双),即除了0与15号L-Bank,其余相邻的L-Bank每个数据通道(A和B)共用一个S-AMP。


点击查看大图

16d L-Bank结构

后来分别向高端和低端领域发展了32s与4i技术。前者的s代表Split,它将原来的16d内核分割为两个部分,各为16d结构,0、15、16、31号L-Bank的每个数据通道各自独占一个S-AMP。4i则与传统的SDRAM相似,i代表Independent(独立),只有4个L-Bank,各L-Bank的每个数据通道有单独的S-AMP。




32s L-Bank结构




4i L-Bank结构

上文已经讲过,L-Bank数越多,造成L-Bank寻址冲突的机率就越小,但理论上L-Bank越多,所用的S-AMP也就越多, RDRAM内存核心加工与面积控制的难度就越大,因此32s与16d都采用了共享S-AMP的设计。但即使这样,RDRAM的生产成本仍被限制在较高的水平上,在早期这成为了RDRAM难以普及的重要原因。而4i就是为解决这一问题而出现的方案,成本更低,但性能也较前两者降低了。

另外,由于共享S-AMP的设计,除了个别独有S-AMP的L-Bank,其他的L-Bank每次预充电操作也都是成双成对的。为此,在逻辑控制上,RDRAM的操作要尽量避免相邻L-Bank前后进行,否则也会降低RDRAM的实际效率。

2、RDRAM的主要特点

目前RDRAM主要有两个容量规格——128Mbit和256Mbit。L-Bank中存储单元的容量也并不等于RDRAM的接口位宽,而是它的8倍,因此可以说RDRAM是一种8bit预取设计,这是它最主要的特点。对于16bit芯片,其存储单元的容量为128bit,这些数据分别从通道A和B传输至L-Bank,也就是说L-Bank两端的S-AMP一次各负责72bit数据的传输。由于预取为8bit,所以RDRAM的突发长度也固定为8,因为如果再高,对于PC应用将不太适合。不过需要特别注意的是,一个字节的数据不是由数据通道中的8条数据线进行并排传输,而是一个字节由一条数据线进行8次传输,这一点也与SDRAM不同,它意味着北桥在进行数据读/写时,必须要等8个周期之后才能完成,中途不能停止。也就是说,读取时目前的北桥(如850)一次接收128bit(16字节)的数据,然后再转换为两个64bit数据分两次向CPU传送。

由于RDRAM的存储单元容量很大,所以RDRAM的行列地址线也大为减少,以256Mbit的4i结构的RDRAM为例,行地址为12bit(4096),列地址为7bit(128)。如果是32s结构的,由于L-Bank地址的增多,行列地址要更少(分别是9和7bit)。而且RDRAM的行列地址线是独立的,但是RDRAM的行与列地址线各自只有3条和5条,显然不够用,Rambus又是怎么搞定的呢?这就涉及到RDRAM具体的操作设计了。
昔日贵族——Rambus DRAM(二)

三、 RDRAM的具体操作与相关技术

1、 初始化与命令包

RDRAM也有一个控制寄存器,在开机初始化过程中用来对RDRAM芯片进行配置,有的信息由北桥动态写入(如芯片地址、自刷新模式等),有的则是出厂时就设置好不能更改的(如刷新计数、生产商信息、支持的协议版本等)。在初始化之后,RDRAM才能进入正常的工作状态。
RDRAM的读写操作过程与SDRAM基本是一样的,也要进行片选、L-Bank定址、行/列寻址等操作(此时的行就是指RDRAM内存系统中的页),但由于它的每次操作只针对一颗芯片,所以具体操作起来有很大不同,这主要体现在“命令包”的方式上。



RDRAM读取时序图,以PC800为例,400MHz时钟频率。

在上图中,我们可以看到行寻址命令与列寻址(读)命令并没有同时发出,而且各自占用了10ns的时间。我们算一算,对于PC800,10ns相当于8个传输周期。难道是传输有延迟?从行列地址的设计,就能猜到这是一个命令包形式的操作。
所谓的命令包,就是将一组命令集合在一起,统一发出。在RDRAM中,行命令包与列命令包都分为两种,一种是正常的读/写操作命令,一种是芯片操作命令(如数据掩码、预充电、刷新、电源管理等)。现在我们就看看行与列读/写命令包都包含哪些信息。



 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  


行读/写命令包的信息组成





列读/写命令包的信息组成



至于操作命令包就不在此多说了,因为构成的形式基本就是这样,每次用8个传输周期进行命令发送。而且由于RDRAM的命令代码很多,也比较复杂,在本专题中也不用一一列出,关键在于让大家明白RDRAM的寻址是怎么一回事即可,剩下的具体代码定义,如果有兴趣大家可以自行研究。



2、 操作时序计算

通过上面的时序图,我们可以发现RDRAM计算时序的方法与SDRAM家族不一样,这在比较两者间时序效率时有着关键的影响。

Rambus的时序规定与FPE/EDO内存时一样,在读取时延用了tRAC、tCAC的定义,前者是行访问周期(RAC,RAS Access Cycle/Delay),后者是列访问周期(CAC,CAS Access Cycle/ Delay),你可以把它等同于SDRAM中的CL,但决不能在RDRAM中引入CL这个概念。在写入时则将tCAC替换为tCWD(CAS to Write Delay)。它们的单位都是时钟周期,对于PC800,一个时钟周期就是2.5ns,对于PC1066就是1.876ns了。显然,时钟频率越高,延迟周期就越短。

但是这些时序是从命令包发送完毕开始计算,SDRAM则是在命令发送同时开始计算。因此,在计算RDRAM的操作延迟时,命令包本身占用的时间也必须要考虑进来。

3、 写入延迟与掩码操作

RDRAM为写入设置了专用的延迟tCWD,这并不是被迫而是有意设计的。RDRAM不需要DQS之类的信号进行同步操作,数据是可以立即接受的,但出于总线利用率的考虑,RDRAM加入了写入延迟,它略短于tCAC。在具体操作中,芯片上没有引脚控制写入允许/禁止,一切的命令在命令包中进行定义,所以读命令可以在写过程中发出,经过tCAC后有效。这样在写后读操作中,除了tCAC与tCWD之间的差距外(估计是留给写回的时间),几乎没有任何停顿,而不像SDR/DDR SDRAM中有较大延迟。

在写入过程中,数据都是先存在写入缓冲区中,这个操作的目的在于等待掩码的控制。RDRAM的数据掩码只对写入有效,当收到掩码命令后,RDRAM将指定的引脚数据从缓冲区中删除,之后再进行真正的写入。
昔日贵族——Rambus DRAM(三)

4、多通道技术与多通道模组

PC800的速度在当时可算是RDRAM的一极限,但它的1.6GB/s带宽并不能满足高端应用的需要,而且DDR一方主推的产品是P2100的DDR-266,为此RDRAM利用双通道技术来弥补带宽上的不足。简单的说,它就像一个用于内存的RAID,两个通道的数据在RAC一端进行分割(写)与合并(读),两个通道的RIMM缺一不可并要求结构完全一致,因为寻址信号是一样的,必须适用于两个RIMM,这也就意味着两个RIMM的存储轨迹也是一样。但是,数据的寻址延迟并没有变化,只是连续传输率提高了一倍达到3.2GB/s(两个PC800通道),而且总的内存容量也增加了一倍。时至今日,虽然RDRAM使用窄位宽设计,但毕竟不是串行的方式,提升频率也越来越困难,最新的PC1066标准也只达到2.1GB/s的带宽,此时双通道设计几乎成为RDRAM的标配。可以说没有双通道技术的支持,RDRAM是很难走到今天的。




RDRAM双通道结构

以前,双通道技术是以两条RIMM来实现,在双通道已经是RDRAM标准设计的今天,这种设计的弊病很明显,比如客户的购置成本、主板的布线设计等。为此,在一些内存厂商的支持下,RDRAM出现了多通道模组设计,其主体思路就是将每个通道的信号终结电路移植到模组上来,在一个模组上实现多通道传输。




32bit的RIMM设计,每个通道的终结器做在了模组上

目前PC市场上32bit RIMM逐渐开始流行并终将取代传统的双通道设计,对于64bit RIMM,由于是4通道设计,得需要4通道北桥芯片的支持,所以目前不可能在台式机领域里普及。


点击查看大图

不同规格的RIMM间比较




5、 黄石技术

黄石(Yellowstone)是Rambus为了适应未来带宽的需要而开发的信号与数据传输技术,其主要的技术特点有四个:




 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  


黄石技术的物理系统结构

A、3.2GHz传输频率,未来可高达6.4GHz,按16bit位宽计算,带宽可达6.4GB/s,双通道应用则为12.8GB/s。

B、极低电压的差分RSL信号(DRSL),降低电源消耗并保证信号质量与制造成本。信号电压差值只有200mV,是目前电压差最小的内存信号技术。




DRSL发信技术与其他内存接口发信技术的比较

C、八倍数据流技术(ODR,Octal Data Rate)。目前采用黄石技术的RDRAM,时钟频率仍是400MHz,但芯片内部通过专用的锁相回路(PLL)将其转换为1.6GHz的内部时钟,然后在此基础上使用DDR技术,从而能在一个时钟周期内传输8次数据。数据传输频率也因此达到了3.2GHz。




ODR操作示意图

D、固定相位技术(FleXPhase),使内存生产者不再费力的去调校PCB的设计以减少延迟/潜伏期对数据/时钟间同步的影响。固定相位技术使信号本身就具备了数据/时钟同步与自校准能力,从而使外围有关时序跟踪的设计与布线变得非常简单,并有助于提高同步性,提高总线利用率。

黄石技术于2001年10月2日正式发布,但是虽然它有这样那样的优点,但从最近的资料中显示,Rambus主要将其定位于消费电子、网络、通信和图形设备市场。对于目前的桌面PC市场,黄石在近期应用的可能性并不大。




Rambus展示的用于显卡的点对点黄石RDRAM显存方案
昔日贵族——Rambus DRAM(四)

1、 延迟与总线利用率的比较

仍以PC800为例,由于tRAC已经包括了从行选通至数据输出的所有延迟,与是否双通道无关,所以我们只需将它再加上命令包的占用时间即可算出RDRAM一次访问所需要的时间。PC800的tRAC基本都是40ns(16个时钟周期),加上命令包占用的4个时钟周期10ns,总共耗时为50ns。而这是在行关闭的情况下,没有计算预充电的时间tRP,它一般为12个时钟周期(加上命令包时间),即30ns,共计80ns。显然,时钟频率越高,延迟就会越短。下面就来比较一下读取操作时RDRAM与DDR SDRAM的延迟。

读取操作时RDRAM与DDR SDRAM的延迟比较表


点击查看大图

从对比表中可以看出,RDRAM相对于DDR SDRAM在首次寻址时的确存在较大的延迟,即使是最新的PC1066,在与DDR-333的比较中也不占优势。不过,借助于双通道的设计,RDRAM在高数据量传输应用中的优势还是比较明显的。另外,在总线的利用率方面RDRAM的设计也居领先地位,这为保证它的总体效率提供了坚实的保障。

各内存的总线效率比较




这个对比表是东芝公司经过反复实验而得出的结论,它是通过一些典型的操作(如写-读-读),结合不同页命中情况下的时序,以及刷新对内存操作的影响等分析而得出的。由于DDR SDRAM在L-Bank数量上占劣势,所以出现L-Bank寻址冲突的可能性要大为提高,而且在写后读操作中,RDRAM的延迟也明显小于SDRAM家族,因此虽然PC800的峰值带宽不如DDR-266,但综合效率要更好。这可以解释为什么在一些测试中,RDRAM明显比DDR领先的原因。不过,在以零散数据为主的操作中,RDRAM的固定传输周期以及高延迟就成为了性能的障碍。

从前面的分析可以看出,SDRAM/DDR在数据控制上的灵活性要比RDRAM高,首次访问的延迟也更短,因此在某些操作中,即使带宽比RDRAM系统小,性能仍不见得落后。比如845D/E在某些应用测试中,完全可以与双通道PC1066一较高低。而Intel决定在高端服务器领域使用DDR芯片组,也基本是出于这个考虑,因为在服务器的操作中,零散型存取操作所占比例很大。相反,若大规模连续存取操作占比例很大(如视频与音频工作站),那么可能就要考虑RDRAM了。

2、 未来竞争展望

目前随着多通道技术在DDR上的普及,RDRAM在带宽上的优势也变得不明显了。所以,RDRAM如果不及时提高单通道的性能,很快会被强大的DDR家族赶出台式机领域。但RDRAM的时钟频率已经很高了,再向上提高已经很难,不少RDRAM厂商都表示,800MHz时钟频率可能将是RDRAM的一个巨大门槛,即使能超过,成本可能也是惊人的,要知道目前533/400MHz的RIMM就已使用了8层PCB,800MHz时PCB成本将很难控制。这也是为什么RDRAM急于推出32bit与64bit RIMM的原因,毕竟内存这种高带宽应用设备,还是需要一定位宽的保证。而且高位宽的同步性也不像想象中的那么难以控制,DQS的设计就很大程度地解决了这一问题,所以,DDR可以借助较少的转产成本,较低的PCB成本(即使是DDR-Ⅱ也是6层设计),成为PC内存的首选产品。

 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  


现在再去争论RDRAM与DDR谁胜谁败已经没有意义,RDRAM已经很难再在主流市场重振雄风。这主要不是它的技术限制,而是早期的市场动作与成本的压力造成的。虽然现在4i芯片开始起步,但支持这种结构的芯片组还很难找到(至少850E不支持)。在820时代,RDRAM由于成本而没有打开市场,现在可以通过降低成本来提高竞争力,但DDR一方也有了多通道技术。Rambus也因此明智地将黄石定位于专用/定制市场。这样,在今后很长一段时间里我们只有看DDR的独角戏了。
明日之星——DDR-Ⅱ与DDR-Ⅲ(一)

作为DDR的接班人,DDR-Ⅱ在规范制定之初就引起了广泛的关注,进入2002年,三星、Elpida、Hynix、Micron等都相继发布了DDR-Ⅱ芯片(最早由三星在5月28日发布),让人觉得DDR-Ⅱ突然和我们近了。可是,DDR-Ⅱ规范却一直没有正式公开,在JEDEC上仍只有一篇ATi技术人员写的,在目前看来有些内容都已过时的简要介绍。

原来,DDR-Ⅱ标准到2002年10月完成度也没有达到100%(厂商透露大约为95%),而上述厂商所推出的芯片也在不断的修改中,预计正式的规范将在明年第一季度推出。不过,DDR-Ⅱ的主体设计已经完成,不会有大的改动,所以通过这些“试验性”芯片,我们仍可掌握DDR-Ⅱ的主要信息。

DDR-Ⅱ相对于DDR 的主要改进如下:

DDR-Ⅱ与目前的DDR对比表



由于DDR-Ⅱ相对DDR-I的设计变动并不大,因此很多操作就不在此详细介绍了,本文重点阐述DDR-Ⅱ的一些重要变化。

一、 DDR-Ⅱ内存结构

DDR-Ⅱ内存的预取设计是4bit,通过DDR的讲述,大家现在应该知道是什么意思了吧。

上文已经说过,SDRAM有两个时钟,一个是内部时钟,一个是外部时钟。在SDRAM与DDR时代,这两个时钟频率是相同的,但在DDR-Ⅱ内存中,内部时钟变成了外部时钟的一半。以DDR-Ⅱ 400为例,数据传输频率为400MHz(对于每个数据引脚,则是400Mbps/pin),外部时钟频率为200MHz,内部时钟频率为100MHz。因为内部一次传输的数据就可供外部接口传输4次,虽然以DDR方式传输,但数据传输频率的基准——外部时钟频率仍要是内部时钟的两倍才行。就如RDRAM PC800一样,其内部时钟频率也为100MHz,是传输频率的1/8。




DDR-Ⅱ、DDR与SDRAM的操作时钟比较

所以,当预取容量超过接口一次DDR的传输量时,内部时钟必须降低(除非数据传输不是DDR方式,而是一个时钟周期4次)。如果内部时钟也达到200MHz,那外部时钟也要达到400MHz,这会使成本有大幅度提高。因此,DDR-Ⅱ虽然实现了4-bit预取,但在实际效能上,与DDR是一样的。在上面那幅比较图中,可以看出厂商们的一种误导,它虽然表示出在相同的核心频率下,DDR-Ⅱ达到了两倍于DDR的的带宽,但前提是DDR-Ⅱ的外部时钟频率也是DDR和SDRAM的两倍。在DDR的时钟频率已经达到166/200MHz的今天,再用100MHz去比较,显然意义不大。这点也请大家们注意识别,上图更多的是说明DDR-Ⅱ内外时钟的差异。毕竟内部时钟由外部决定,所以外部时钟才是比较的根本基准。

总之,现在大家要明确认识,在外部时钟频率相同的情况下,DDR-Ⅱ与DDR的带宽一样。

二、 DDR-Ⅱ的新操作与新时序设计

1、片外驱动调校(OCD,Off-Chip Driver)

DDR-Ⅱ内存在开机时也会有初始化过程,同时在EMRS中加入了新设置选项,由于大同小异,在此就不多说了。在EMRS阶段,DDR-Ⅱ加入了可选的OCD功能。OCD的主要用意在于调整I/O接口端的电压,来补偿上拉与下拉电阻值。目的是让DQS与DQ数据信号之间的偏差降低到最小。调校期间,分别测试DQS高电平/DQ高电平,与DQS低电平/DQ高电平时的同步情况,如果不满足要求,则通过设定突发长度的地址线来传送上拉/下拉电阻等级(加一档或减一档),直到测试合格才退出OCD操作。



OCD的作用在于调整DQS与DQ之间的同步,以确保信号的完整与可靠性

不过,据一些厂商的技术人员介绍,一般情况下有DQS#(差分DQS时)就基本可以保证同步的准确性,而且OCD的调整对其他操作也有一定影响,因此在普通台式机上不需要用OCD功能,它一般只会出现在高端产品中,如对数据完整性非常敏感的服务器等。

2、片内终结(ODT,On-Die Termination)

所谓的终结,就是让信号被电路的终端被吸收掉,而不会在电路上形成反射,造成对后面信号的影响。在DDR时代,控制与数据信号的终结在主板上完成,每块DDR主板在DIMM槽的旁边都会有一个终结电压岛的设计,它主要由一排终结电阻构成。长期以来,这个电压岛一直是DDR主板设计上的一个难点。而ODT的出现,则将这个难点消灭了。

顾名思义,ODT就是将终结电阻移植到了芯片内部,主板上不在有终结电路。ODT的功能与禁止由北桥芯片控制,ODT所终结的信号包括DQS、RDQS(为8bit位宽芯片增设的专用DQS读取信号,主要用来简化一个模组中同时使用4与8bit位宽芯片时的控制设计)、DQ、DM等。需要不需要该芯片进行终结由北桥控制。
那么具体的终结操作如果实现呢?首先要确定系统中有几条模组,并因此来决定终结的等效电阻值,有150和75Ω两档,这一切由北桥在开机进行EMRS时进行设置。




在向内存写入时,如果只有一条DIMM,那么这条DIMM就自己进行终结,终结电阻等效为150Ω。如果为两条DIMM,一条工作时,另一条负责终结,但等效电阻为75Ω




 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  


在从内存读出时,终结操作也将在北桥内进行,如果有两条DIMM,不工作的那一条将会终结信号在另一方向的余波,等效电阻也因DIMM的数量而有两种设置


点击查看大图

两个DIMM在交错工作中的ODT情况,第一个模组工作时,第二个模组进行终结操作,等第二个模组工作时,第一个模组进行终结操作

现在我们应该基本了解了ODT的功能,它在很大程度上减少了内存芯片在读取时的I/O功率消耗,并简化了主板的设计,降低了主板成本。而且ODT也要比主板终结更及时有效,从而也成为了提高信号质量的重要功能,这有助于降低日后DDR-Ⅱ进一步提速的难度。但是,由于为了确保信号的有效终结,终结操作期将会比数据传输期稍长,从而多占用一个时钟周期的时间而造成总线空闲。不过,有些厂商的技术人员称,通过精确设置tDQSS,可以避免出现总线空闲。
3、前置CAS、附加潜伏期与写入潜伏期

前置CAS(Posted CAS)是为了解决DDR内存中指令冲突而设计的功能。它允许CAS信号紧随RAS发送,相对于以往的DDR等于将CAS前置了。这样,地址线可以立刻空出来,便于后面的行有效命令发出,避免造成命令冲突而被迫延后的情况发生,但读/写操作并没有因此而提前,仍有要保证有足够的延迟/潜伏期,为此,DDR-Ⅱ引入了附加潜伏期的概念(AL,Additive Latency),与CL一样,单位为时钟周期数。AL+CL被定义为读取潜伏期(RL,Read Latency),相应的,DDR-Ⅱ还对写入潜伏期(WL,Write Latency)制定了标准,WL是指从写入命令发出到第一笔数据输入的潜伏期,不要将它和tDQSS弄混了,后者是指DQS而不是数据。按规定,WL=RL-1,即AL+CL-1。


点击查看大图

在没有前置CAS功能时,对其他L-Bank的寻址操作可能会因当前行的CAS命令占用地址线而延后,并使数据I/O总线出现空闲,当使用前置CAS后,消除了命令冲突并使数据I/O总线的利率提高




设置Posted-CAS后,必须附加潜伏期以保证应有延迟,此时读取潜伏期(RL)就等于AL+CL,从中可以看出AL的值为CL+tRCD-1

DDR-Ⅱ中CL最低值为3,最高为5,并且不再有x.5的设计,而AL值则为0-4。当AL设为0时,前置CAS无效,即为传统DDR模式的操作。不过前置CAS在解决命令冲突的时间也带来了新的问题——在背靠背式读取时,仍将经过AL+CL的潜伏期才能读取数据,比传统的只有CL相比,读取的延迟反而增加了。因此,AL=0是默认设置,只有在那些读写命令非常频繁的操作场合,才建议启动前置CAS功能(如服务器等),对于台式机用户,前置CAS的优点不足以抵消其带来的不利影响。




由于有了AL,在同一行中进行再读取时,在CL的基础上仍将增加AL造成的延迟,从而影响了性能

三、 DDR-Ⅱ未来发展与DDR-Ⅲ

1、 DDR-Ⅱ 的发展计划

虽然目前多家厂商都推出了DDR-Ⅱ内存芯片,但从DDR官方组织JEDEC方面得到的信息表明,距离DDR-Ⅱ内存大规模上市还很遥远,2004年才会是DDR-Ⅱ普通的阶段。而由于三星、南亚与Micron公司的大力推广,这期间JEDEC很可能会接受DDR-400标准,目前的争执主要在于能否在DDR-I的体系下保证DDR-400的可靠性。对此(成为JEDEC正式标准),三星与南亚公司都表示了很强的信心。
笔者认为,DDR-400应该会获得认可,毕竟市场上是有需要的,而让市场去等一年的时间迎接DDR-Ⅱ 400似乎并不现实。不过,多通道技术在DDR领域里的普及,可能也会改变JEDEC对认证DDR-400的想法,但关键要看多通道的性价比能不能填补这一空档,否则DDR-400就是一个最佳的选择(在完整/进阶版完稿之后又传来了Intel准备支持DDR-400的消息,可见DDR-400的前途)。




三星公司展示的DDR-333(下)与DDR-400(上)内存模组




三星是DDR-400的主推厂商,但请注意DDR-400的电压变化,它可能是引起兼容性问题的根源之一

也由于多通道的出现,市场上对DDR-Ⅱ的渴望也并不大,毕竟它与同频的DDR-I内存的带宽一样。而从上文可以看出,DDR-Ⅱ相对于DDR-I的不同设计很多都集中在了如何在更高的工作(时钟)频率下保证数据的可靠。只有当DDR-Ⅱ依靠自身的特有功能与设计来获得更高的时钟频率时,再配合多通道,才会真正拉开与DDR-I的距离,那时也就是DDR-Ⅱ普及的开始。但笔者预测DDR-Ⅱ 400将像DDR-200一样,注定是一个一出生就过时的标准,DDR-Ⅱ至少要从533开始流行。不过在目前情况下,我们还不必太在意DDR-Ⅱ的进展情况,说句实话,它离我们还很远。今天的介绍只是让大家对其有一个大概的了解。
2、DDR-Ⅱ时代的封装技术

可以肯定的是TSOP-II将在DDR-Ⅱ时代彻底退出内存封装市场。并且将会出现改良型的CSP——WLP(Wafer Level Packaging,晶圆级封装),它是比CSP更为贴近芯片尺寸的封装方法,由于在晶圆上就做好了封装布线,因此在可靠性方面达到了更高的水平。不过,外在的模样仍与现在的CSP封装差不多,WLP更多的改进是在其内部。

 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  


另外值得一提的是为了应付更高容量的需求而采用的SiP封装技术,它是System-in-a-Package的缩写,有时又称之为Stacked Pakage,可以看作是一种集成封装技术。它将多枚内存芯片核心堆叠在一起,然后统一封装成一颗芯片,在有限的面积内通过充分利用空间达到容量倍增的目的。SiP并不是内存中专用的封装技术,原来是用于多种不同功能的芯片统一封装(如一颗嵌入式CPU+DRAM芯片)。



点击查看大图

目前的SiP技术可以在CSP的基础上最多堆叠4枚内存芯片

3、DDR-Ⅲ简介

DDR-Ⅲ的设计始于2001年5月,目前只有一个大概的规格。按照JEDEC的计划,DDR-Ⅲ将在2007年正式出台,数据传输率至少从667MHz开始,预取数据容量大于4bit(很可能采用RDRAM那样的8bit设计),而且工作电压比1.8V更低,寄生干扰也将进一步减少。显然,它离我们更是遥远,还不到谈论它还的时候,要知道半导体技术日新月异, DDR-Ⅲ完全有可能因此而中途改变设计。在此,我们就当个小花边新闻吧。
没有我不行——内存模组(上)

内存模组是内存在PC系统中的最终体现形式,所以在本专题的最后,我们来简要谈谈内存模的类型和未来的发展情况。不过,本章节只介绍DIMM,而不涉及RIMM(其实两者的很多概念是相通的)。目前经常见到的模组主要有五种:

1、 Unbuffered DIMM:无缓冲型模组,这是我们平时所用到的标准DIMM,分有ECC和无ECC两种,简称Unb-DIMM。

2、 Regustered DIMM:寄存型模组,这是高端服务器所使用的DIMM,分有ECC和无ECC两种,但市场上几乎都是ECC的,简称Reg-DIMM。

3、 SO-DIMM:Small Outline DIMM,小外型DIMM,笔记本电脑中所使用的DIMM,分ECC和无ECC两种,DDR-Ⅱ时代仅有无ECC的型号。

4、 Micro-DIMM:微型DIMM,供小型笔记本电脑或手持式设备使用的DIMM。

5、 Mini-DIMM:DDR-Ⅱ时代新出现的模组类型,它是Regustered DIMM的缩小版本,用于刀片式服务器等对体积要求苛刻的高端领域。

各类型内存DIMM对比表







三星公司DDR-333标准的SO-DIMM,容量高达512MB

本文将重点讲一下Unb与Reg-DIMM,和未来模组技术的发展

一、Unb与Reg-DIMM的区别

Unb与Reg-DIMM的最大区别在于模组上有无寄存器。在高容量模组上,内存芯片数量很多,而且在需要大容量内存的工作场合,内存模组的安插数量也是很多的,这使命令与寻址信号的稳定性受到了严峻考验。很多芯片组的资料中都说明只有使用Reg-DIMM才能达到标称的最高内存容量,从这点就能猜到寄存器的作用——稳定命令/地址信号,隔离外部干扰。




Reg-DIMM工作示意图,命令与地址信号通过寄存器中继传输至内存芯片

在工作时,命令地址信号会先送入寄存器进行“净化”并进入锁存状态,然后再发送至内存芯片,芯片中的数据则不经过寄存器而直接传向北桥。由于要经过中继传输,所以内存操作的时序也会因此而增加一个时钟周期,这是它所带来的一个弊端,但在高端应用中,内存系统的稳定可靠的重要性远在性能之上,所以Reg-DIMM一般只用于高端市场,并且需要芯片组的支持才行(主要是Reg所引起的时序变化)。而在高端设备中,ECC基本都是必须的,因此市场上的Reg-DIMM也都无一例外的是ECC型模组,虽然也有无ECC的Reg-DIMM设计标准。

另外,为了保证内存工作时钟的稳定,Reg-DIMM上还要有一颗PLL对时钟信号对主板发来的时钟信号进行跟踪/锁定。在SDRAM时代,这并不是必须的设计,但到了DDR时代,由于对时钟的敏感性,PLL成为了必备元件。




DDR内存模组的结构图,寄存器与PLL是它相对于Unb-DIMM的最大不同

现在再回头看看Unb-DIMM,就很明白了。它关键就少了寄存器,但为什么不称之为Unregistered-DIMM呢?其实,Buffered与Registered是Reg-DIMM的两种工作模式,前者在Reg-DIMM上并不常用,它是以时钟异步方式工作的,输出信号的再驱动不与时钟同步,Registered模式下输入信号的再驱动则与时钟同步。显然,Buffered模式下的性能要更低一些。不过,从原理上讲Registered模式也是一种缓冲操作,只是与时钟同步而已。在SDRAM的Reg-DIMM上,Buffered与Registered模式通过REGE信号控制,但到了DDR SDRAM-DIMM时代,可能由于性能的原因Buffered模式被取消了。

在Unb-DIMM上,没有寄存器也就没了这个Buffer,但它仍可具备ECC功能。这里需要强调的是,ECC与Registered是两码事,前者是在逻辑上保证数据的安全,后者是在物理上保证内存系统的稳定工作。




 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  

标签: