第1页:序:不得不说的话
SDRAM内存模组的物理Bank与芯片位宽
SDRAM的逻辑Bank与芯片容量表示方法
第2页:SDRAM的引脚与封装
SDRAM芯片初始化、行有效、列读写时序
SDRAM的读/写时序与突发长度
SDRAM芯片的预充电与刷新操作
第3页:图解SDRAM工作流程:仓库物语
第4页:SDRAM的结构、时序与性能的关系
第5页:如日中天——DDR SDRAM
第6页:昔日贵族——Rambus DRAM
第7页:明日之星——DDR-Ⅱ与DDR-Ⅲ
第8页:没有我不行——内存模组
昔日贵族——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必须配备散热片,从而成了现在这个样子。

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次传输(即串行传输,这也是为什么有人说RDRAM是串行内存的原因),这一点也与SDRAM不同,它意味着北桥在进行数据读/写时,必须要等8个周期之后才能完成,中途不能停止。也就是说,读取时目前的北桥(如850)一次接收128bit(16字节)的数据,然后再转换为两个64bit数据分两次向CPU传送。

RDRAM虽然每个数据通道是串行传输,但总体上讲,仍然存在数据块(一次传输的128bit)同步的问题,因此严格的讲,RDRAM从系统架构上讲并不是串行内存
由于RDRAM的存储单元容量很大,所以RDRAM的行列地址线也大为减少,以256Mbit的4i结构的RDRAM为例,行地址为12bit(4096),列地址为7bit(128)。如果是32s结构的,由于L-Bank地址的增多,行列地址要更少(分别是9和7bit)。而且RDRAM的行列地址线是独立的,但是RDRAM的行与列地址线各自只有3条和5条,显然不够用,Rambus又是怎么搞定的呢?这就涉及到RDRAM具体的操作设计了。
三、 RDRAM的具体操作与相关技术
1、 初始化与命令包
RDRAM也有一个控制寄存器,在开机初始化过程中用来对RDRAM芯片进行配置,有的信息由北桥动态写入(如芯片地址、自刷新模式等),有的则是出厂时就设置好不能更改的(如刷新计数、生产商信息、支持的协议版本等)。在初始化之后,RDRAM才能进入正常的工作状态。 RDRAM的读写操作过程与SDRAM基本是一样的,也要进行片选、L-Bank定址、行/列寻址等操作(此时的行就是指RDRAM内存系统中的页),但由于它的每次操作只针对一颗芯片,所以具体操作起来有很大不同,这主要体现在“命令包”的方式上。

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

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


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

至于操作命令包就不在此多说了,因为构成的形式基本就是这样,每次用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将指定的引脚数据从缓冲区中删除,之后再进行真正的写入。
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为了适应未来带宽的需要而开发的信号与数据传输技术,其主要的技术特点有四个:

黄石技术的物理系统结构
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的设计以减少延迟/潜伏期对数据/时钟间同步的影响。固定相位技术使信号本身就具备了数据/时钟同步与自校准能力,从而使外围有关时序跟踪的设计与布线变得非常简单,并有助于提高同步性,提高总线利用率。

Rambus展示的用于显卡的点对点黄石RDRAM显存方案
黄石技术于2001年10月2日正式发布,但是虽然它有这样那样的优点,但从最近的资料中显示,Rambus主要将其定位于消费电子、网络、通信和图形设备市场。对于目前的桌面PC市场,黄石在近期应用的可能性并不大。
四、 目前的RDRAM与DDR SDRAM的比较
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内存的首选产品。
现在再去争论RDRAM与DDR谁胜谁败已经没有意义,RDRAM已经很难再在主流市场重振雄风。这主要不是它的技术限制,而是早期的市场动作与成本的压力造成的。虽然现在4i芯片开始起步,但支持这种结构的芯片组还很难找到(至少850E不支持)。在820时代,RDRAM由于成本而没有打开市场,现在可以通过降低成本来提高竞争力,但DDR一方也有了多通道技术。Rambus也因此明智地将黄石定位于专用/定制市场。这样,在今后很长一段时间里我们只有看DDR的独角戏了。





