DDR2 SDRAM引入的新技术
DDR2(Double Data Rate 2,两倍数据速率,版本2) SDRAM,是由JEDEC标准组织开发的基于DDR SDRAM的升级存储技术。 相对于DDR SDRAM,虽然其仍然保持了一个时钟周期完成两次数据传输的特性,但DDR2 SDRAM在数据传输率、延时、功耗等方面都有了显著提高,而这些性能的提高,主要来源于以下技术的提升:ODT,Post CAS,4n数据预取,封装等。
* ODT
ODT(On-Die Termination),即芯片内部匹配终结。
在DDR SDRAM应 用中,需要通过大量的外部电阻上拉到VTT电平(1.25V)以实现信号匹配,以16位芯片为例,以下信号需要通过这种方式进行匹 配:CK,CK#,DQ[15:0],LDQS,UDQS, ADDR[10:0],RAS#,CAS#,WE#,即一片芯片需要34个外部上拉电阻,极大的占用了宝贵的PCB面积。同时,由于 DQ[15:0],LDQS,UDQS等信号是双向信号,即读和写时,对匹配电阻的位置有不同要求,因此在电阻布局时很难在两个方向上同时实现最佳的信号 完整性。
在DDR2 SDRAM中,采用ODT技术将许多外部的匹配电阻移到芯片内部从而节省了大量的PCB板上面积。另外,ODT技术允许存储控制器(如下文的 MPC8548 CPU)通过配置DDR2 SDRAM的内部寄存器以及控制ODT信号,来实现对匹配电阻的值及其开关状态进行控制,从而可以实现读,写操作时最佳的信号完整性。

图1 ODT功能图
DDR2 SDRAM芯片提供一个ODT引脚来控制开或关芯片内部的终结电阻。在只有一个DDR2 SDRAM芯片作为存储器控制器的负载的情况下,写操作时,由于DDR2 SDRAM作为接收端,所以ODT引脚为高电平以打开芯片内部终结电阻;读操作时,由于DDR2 SDRAM作为发送端,所以ODT引脚为低电平以关闭芯片内部终结电阻。其中,ODT引脚的状态由存储器控制器(如MPC8548)来控制。
ODT终端电阻值RTT可以通过DDR2 SDRAM内 部的EMR寄存器来设定:首先配置EMR[15:14]=01来选定该寄存器工作于EMR(扩展模式寄存器)模式,然后通过EMR[6]和EMR[2]两 位来设置内部RTT的值,允许选择为RTT关闭,75欧姆,150欧姆,50欧姆这四种模式。以选择75欧姆这种模式为例,图1中,DQ引脚内部的上拉电 阻和下拉电阻将配置为150欧姆。
需要注意,DDR2 SDRAM的ODT技术,只是对DQ,DQS,DM这些信号(在选择了差分DQS的情况下,也包括DQS#信号)实现了内部匹配。而地址和控制信号等仍需要通过外部匹配。
* Posted CAS
以读DDR2 SDRAM为例。

图2 多块数据读取时的间隙问题
DDR2 SDRAM和DDR SDRAM一样,是通过Bank(块地址),Row(行地址)和Column(列地址)三者结合实现寻址。每一次对DDR2 SDRAM的 操作,都以ACTIVE命令(图2的ACT命令,通过有效#RAS信号实现)开始,在发出该命令的同时,通过地址信号线发出本次操作的Bank和Row地 址,此后等待tRCD时间后,发起READ/AUTO PRECHARGE命令(图2 的RD AP命令,通过有效#CAS信号实现),该命令的作用是发出读取命令,同时通过地址信号线发出本次操作的Column地址。最后,等待CAS Latency时间之后,数据即通过数据总线输出。
由于DDR2 SDRAM的存储空间相对DDR SDRAM有所增加,因此Bank数目也有所增加。例如,DDR SDRAM单片最大容量为1Gbit,Bank数目是4,而DDR2 SDRAM单片最大容量为2Gbit,Bank数目达到了8。DDR SDRAM的Bank数目最少是2,而DDR2 SDRAM的Bank数目最少是4。为了提高性能,经常需要在一个Bank的操作完成之前插入对下一个Bank的操作。如图2,在发出对Bank0的 ACT命令之后,无需等待对应的RD AP命令发出,只用满足tRRD时间要求,即可发出对另一个Bank的ACT命令。
按照这种工作模式,从图2中可以发现,对Bank2的ACT命令实际上延迟了一个时钟周期,该命令本来应该在RD AP(Bank 0)的位置出现,但由于RD AP(Bank 0)命令已经出现在该时钟周期(占用了地址总线,以发出Column地址),从硬件信号上来说,即在这个周期已经使能了CAS#信号,所以无法使能对应另 一个Bank的RAS#信号,因此只能延时一个时钟周期。其结果是,本来应该是流水线式的数据输出流被打断,Bank1的数据输出后,需要等待一个时钟周 期,Bank2的数据才得到输出。数据流间隙的出现,将影响芯片的性能。
针对这个问题,DDR2 SDRAM做了改进。DDR2 SDRAM允许RD AP命令提前发出,甚至可以紧跟ACT命令发出,但是要等待一个Additive Latency(即AL,附加延时)后,该RD AP命令才能执行。如图3所示。

图3 引入附加延迟AL的DDR2 SDRAM读取模式【1】
在图3中,AL设置为tRCD-1,此时,可以实现ACT和RD AP命令背靠背的发出,只不过,DDR2 SDRAM需要抑制RD AP命令,直到AL延时满足后才能执行。

图4 引入AL后的多Bank数据读取
如图4,引入AL并设置AL为tRCD-1后,对于多个Bank数据读取,输出数据流之间不再出现间隙。
这种为了避免ACT命令和RD AP命令冲突而提出的技术就叫做Posted CAS技术。其本质就是将CAS#信号的使能时间段(即RD AP命令)直接插入到紧跟RAS#信号的使能时间段(即ACT命令)之后,虽然读和写操作并没有得到提前,总的延迟时间也没有发生改变,但引入这种技术 后,可以避免在多Bank操作中的一个Bank的CAS#信号和其他Bank的RAS#信号发生冲突,从而提高了存储芯片的使用效率。
可以通过配置DDR2 SDRAM芯片内部的EMR寄存器的第3~5位,将附加延时AL配置为0~5个时钟周期。
* 4n数据预取
DDR SDRAM的数据预取能力是2,即芯片内部能以2倍于时钟运行的速度预取数据,从而使得芯片内核工作频率仅需要为外部数据传输率的一半。DDR2 SDRAM的数据预取能力是4,即芯片内核工作频率仅需要为外部数据传输率的1/4。而对于SDRAM,芯片内核工作频率等于外部数据传输速率。所以在同 样的内核频率下,DDR SDRAM的数据传输速率比SDRAM高一倍,而DDR2 SDRAM的数据传输率比DDR SDRAM又高一倍。
例如,DDR2和DDR1 SDRAM的外部数据传输率都为400Mb/s的情况下,对于DDR2 SDRAM而言,其内核工作频率仅需要为100MHz,而对于DDR SDRAM,其内核工作频率需要为200MHz,如果是SDRAM,则其内核频率要求为400MHz,正是因为如此高的内核频率无法在技术上实现,因而 SDRAM的数据传输率无法达到400Mb/s。
利用这项技术,DDR2 SDRAM可以在不提高内核工作频率的前提下(即无需对芯片做大的技术革新),大大提高外部数据传输速率,从而获得更高的性能。值得提及的是,目前正在研 发的DDR3 SDRAM技术,其数据传输率比DDR2 SDRAM又有大幅度提高,其并不是源于技术上的巨大变革,而是因为采用了8n数据预取技术。
根据数据传输速率的不同,DDR SDRAM有如下系列:266Mb/s,333Mb/s, 400Mb/s,而DDR2 SDRAM有如下系列:400Mb/s,533Mb/s, 667Mb/s,800Mb/s, 1066Mb/s。可以看出,DDR2 SDRAM直接从DDR SDRAM的最高的数据传输率起步,最高可以达到1066Mb/s以上,该性能的大幅提升,正是利用了这种4倍数据预取技术。
图5提供了DDR SDRAM和DDR2 SDRAM的数据预取框图以便比较。

图5 16位存储芯片的数据预取框图
* 差分DQS/DQS#信号
DDR SDRAM采用单端DQS信号。
如前文所述,目前广泛应用的DDR2 SDRAM,数据传输率最高已经达到1066Mbit/s,即DQS和DQ的变化率都将达到一秒钟1066M次,其中,DQS作为数据信号DQ的采样参考源,如果采用单端信号已经不足以保证其在高速变化时的信号完整性。
采用差分DQS/DQS#信号,其优势在于:减少信号间串扰的影响,减少DQS输出脉宽对工作电压和温度稳定性的依赖等。因而,建议在使用数据传输率为533Mb/s以上的DDR2 SDRAM系列时,尽量采用差分DQS/DQS#信号。
使能差分DQS信号是通过设置DDR2 SDRAM的EMR寄存器的第10位为0来实现。
* 功耗和封装
DDR SDRAM的电平常用SSTL-2,即信号引脚是利用2.5V电源供电,而DDR2 SDRAM则采用SSTL-18电平,即信号引脚是利用1.8V电源供电。在相同存储容量和相同数据传输率的情况下,DDR2 SDRAM将有更低的功耗。
DDR SDRAM的封装种类有:66引脚的TSOP封装,60引脚的FBGA封装。由于DDR SDRAM的数据传输率不是特别高,因此TSOP封装能较好的工作在这种频率上。而DDR2 SDRAM的最高数据传输率已经达到1066Mb/s,在高频下,TSOP封装的过长的引脚将产生很高的感抗和寄生电容,严重影响芯片工作的稳定性。
DDR2 SDRAM直接采用FBGA封装,基于其良好的电气性能和散热性,保证了芯片在高速工作下的稳定性。
由于DDR2 SDRAM有4位,8位,16位(芯片的DQ引脚的数目,16位表示芯片有16根DQ引脚)三种不同系列,因而无法采用统一引脚数目的封装。目前,4位和8位的芯片采用60或者68引脚的FBGA封装,16位的芯片采用92或者84引脚的FBGA封装。