DDRSDRAM技术专题
DDR SDRAM技术专题DDR SDRAM是“双倍数据速率同步动态随机访问存储器”double date rate synchronous dynamic random access memory的缩写,是一种低成本、高容量的存储器,在计算机、消费类电子、通信等领域中一些要求高容量存储空间的场合有着广泛的应用。本技术专题试图以从事DDR SDRAM使用及其控制器设计的电子工程师的角度对DDR SDRAM进行较为详细的讨论。 我们希望本技术专题能够为广大电子设计工程师提供有益的参考。1. DDR SDRAM概述SDRAM是同步动态随机访问存储器的缩写,是一种低成本、高容量的存储器。它在计算机、消费类电子、通信等领域中一些要求高容量存储空间的场合有着广泛的应用。 传统的SDRAM采用一种单倍数据速率(SDR)的结构执行访问操作,它在每个时钟周期的上升沿传输数据,因此SDR SDRAM的带宽等于其时钟其频率乘以其数据总线宽度 w=f*bus。例如,如果SDR SDRAM的操作频率为100MHz,其数据总线宽度为16位,则其总线带宽为100MHz x 16 bit = 1600Mbit/S,也就是1.6Gbps。而对带宽的需求是无休止的!为了增加总线带宽,如果使用传统的方法,我们要么增加数据总线宽度,要么提高其操作频率。那么,有没有可能在既不增加数据总线宽度也不提高工作频率的条件下增加总线带宽呢?为适应这种需求,DDR SDRAM出现了! DDR SDRAM使用一种双倍数据速率的结构来获得高性能的操作。双倍数据速率结构本质上是一种2n预取结构,在输入/输出管脚上,每个时钟周期可以传输两个字。对于一次DDR SDRAM的访问操作(写操作、读操作),在芯片的内部,一个时钟周期执行一个位宽为2n的数据传输,而在DDR SDRAM器件的管脚上则每半个时钟周期执行一次n位的数据传输。因此,DDR SDRAM的总线带宽为:工作频率×数据总线宽度×2 可见,在相同的数据总线宽度和工作频率下,DDR SDRAM的总线带宽比SDR SDRAM的总线带宽提高了一倍。 概括起来,DDR SDRAM具有如下特点:· 双倍数据速率结构,每个时钟周期完成两次数据传输;· 双向的数据选通信号(DQS)伴随数据一起传输。在接收侧,它用来捕获数据;· 在读操作过程中,DQS与数据沿对齐,在写操作过程中,DQS与数据中央对齐;· 差分的时钟输入(CK与/CK);· DLL将DQ和DQS的跃变与CK的跃变对齐;· 在每个CK的上升沿接收命令字;数据和数据掩码参考于DQS的上升沿和下降沿;· 内部的四个BANK可以并发操作;· 写数据时支持数据掩码(DM);· 支持的突发长度:2、4、或8;· CAS潜伏期:2或2.5,DDR 400还包括CL = 3 · 为每一次突发访问提供了AUTOPRECHARGE选项;· 自动刷新与自刷新模式;· 2.5V(SSTL_2兼容)I/O;· 对于DDR200、DDR266、DDR333:VDDQ为+2.5 V ±0.2 V;对于DDR400:+ VDDQ为2.6 ±0.1 V;· 对于DDR200、DDR266、DDR333:VDD为+3.3 V ±0.3 V或+2.5 V ±0.2 V;对于DDR400:+ VDDQ为2.6 ±0.1 V;2. DDR SDRAM与SDR SDRAM的功能比较在对DDR SDRAM进行详细描述之前,我们首先对DDR SDRAM与SDR SDRAM的功能作一个简要的对比。 下表列出了它们之间在外部接口上的一些不同之处: SDR SDRAM与DDR SDRAM的内部存储核本质上是相同的。它们都具有相同的寻址和命令控制接口;都具有4个BANK的存储阵列;都具有相同的刷新要求。它们之间基本的不同点在于数据接口。 SDR SDRAM的数据接口是一个系统同步的设计,它仅仅在时钟的上升沿捕获数据。它的内、外部数据总线具有相同的宽度,当数据穿越I/O缓冲器时被顺序地锁存到内部存储阵列。SDR SDRAM还支持一个DQM信号,它在写操作过程中作为数据掩码使用;在读操作过程中作为输出使能使用。 DDR SDRAM的数据接口是一个源同步的设计,数据在每个时钟周期被捕获两次,并伴随一个双向的数据选通信号。 DDR SDRAM采用了一种2n预取结构,它的内部数据总线宽度是外部数据总线宽度的两倍。这就使得内部存储单元以成对的方式向I/O缓冲器传递数据。DDR SDRAM在读操作时没有输出使能信号,但它支持一个BURST TERMINATE命令来快速中止正在执行的READ命令。在WRITE操作过程中,DM信号被用来屏蔽无效的写数据。DDR SDRAM的命令总线包括时钟使能、芯片选择、行地址、列地址、BANK地址、以及写使能信号。DDR SDRAM采用一对差分时钟(CK和CK#)进行工作,DDR SDRAM的命令信号(地址和控制信号)使用CK的上升沿锁存。与SDR SDRAM不同,DDR SDRAM采用一个双向的数据选通信号(DQS)伴随着数据一起传输。DQS信号在DDR SDRAM的读访问操作中由DDR SDRAM输出并与数据总线沿对齐,而在写访问操作中由DDR SDRAM控制器输出,并与数据总线中央对齐。DDR SDRAM的输入数据使用DQS的上升沿和下降沿进行锁存,而其输出数据则以DQS的上升沿和下降沿作为参考时钟。在CK的上升沿和下降沿进行锁存? 接下来,我们首先对DDR SDRAM的功能作一个简要的描述,然后我们会对DDR SDRAM的一些基本概念以及各种操作进行详细的描述。3. DDR SDRAM功能描述DDR SDRAM是一种高速CMOS动态随机访问存储器,它在内部被配制成4 个BANK的DRAM,外部数据具有X4位、X8位、X16位三种宽度。DDR SDRAM具有如下的容量:· 64Mb(即67,108,864位):16 M X4 (4 M X4 X4 banks)、8 M X8 (2 M X8 X4 banks)、4 M X16 (1 M X16 X4 banks);· 128Mb(即134,217,728位):32 M X4 (4 M X4 X4 banks)、16 M X8 (2 M X8 X4 banks)、8 M X16 (1 M X16 X4 banks);· 256Mb(即268,435,456位):64 M X4 (4 M X4 X4 banks)、32 M X8 (2 M X8 X4 banks)、16 M X16 (1 M X16 X4 banks);· 512Mb(即536,870,912位):128 M X4 (4 M X4 X4 banks)、64 M X8 (2 M X8 X4 banks)、32 M X16 (1 M X16 X4 banks);· 1Gb(即1,073,741,824位):256 M X4 (4 M X4 X4 banks)、128 M X8 (2 M X8 X4 banks)、64 M X16 (1 M X16 X4 banks);DDR SDRAM中每一个BANK中的存储单元被组织成正方阵列,由若干行和若干列组成,这些存储单元通过行和列的地址译码器来寻址。对于任何一个单元的读操作,整个行均被读出,然后重新写回(刷新)。对于任何一个单元的写操作,整个行均被读出,然后改变其中一个单元的值,最后将整个行写回。DDR SDRAM的功能框图如下图所示。 DDR SDRAM的接口信号描述如下表所示: 对DDR SDRAM不同容量、不同数据宽度的寻址信号如下图所示: DDR SDRAM在上电后必须由一个初始化操作来配置DDR SDRAM的模式寄存器,模式寄存器的设置决定了DDR SDRAM的工作模式。 为了减少IO引脚的数量,DDR SDRAM的行地址和列地址复用相同的地址引脚。因此,在访问DDR SDRAM的时候,要先由ACTIVE命令来激活需要访问的BANK、并锁存行地址(BA0、BA1用来选择BANK;A0A13用来选择行),然后才能发布READ或WRITE命令。对应于READ或WRITE命令的地址信号用来选择突发访问的起始列地址。 DDR SDRAM使用双倍数据速率结构来获得高速操作。双倍数据速率结构本质上是一个2n预取结构,在I/O管脚上,它每个时钟周期传输两个数据字,也就是每半个时钟周期传输一个数据字。而对应DDR SDRAM内部的DRAM核,则每个时钟周期执行2n位宽度的数据传输。在没有数据传输的时候,DQ、DQS、DM可以处于悬浮态。对DDR SDRAM的读访问和写访问都是面向突发的,访问操作从一个选定的位置开始,以可编程的顺序持续几个可编程数目的位置。 DDR SDRAM的存储单元由电容组成,我们知道,电容总是趋向于释放电荷,因此DDR SDRAM还需要周期性的刷新操作,只有这样才能保证其存储的数据不会丢失。DDR SDRAM的生产厂商规定,DDR SDRAM的每一行都必须在64ms以内刷新一次。 在以后的章节中,我们会对DDR SDRAM的初始化、模式寄存器定义、DDR SDRAM操作的一些基本概念、命令描述和操作进行详细的描述。4. DDR SDRAM的初始化DDR SDRAM是一种易失性存储器器件,也就是说,当器件掉电后,存储在DDR SDRAM中的所有内容及其配置信息将会丢失。DDR SDRAM每次上电后,必须按一定的顺序来初始化其内部状态机并配置用户定义的操作参数,否则会引起不可预料的操作结果。在本节中,我们会对DDR SDRAM的初始化顺序进行详细描述(有关模式寄存器的具体含义我们会在下一节中详细描述)。 我们首先讨论DDR SDAM的上电顺序。DDR SDRAM的上电必须满足下列之一的条件:· VDD和VDDQ从同一个电源转换器提供,并且· VTT被限制成1.35V,并且· VREF设置成VDDQ/2。 或者:· VDDQ在VDD之后或与VDD一起提供,并满足VDDQ < VDD+0.3V,并且· VTT在VDDQ之后或与VDDQ一起提供,并满足VTT < VDDQ+0.3V,并且· VREF在VDDQ之后或与VDDQ一起提供,并满足VREF < VDDQ+0.3V。 上述的两个条件中,至少有一个必须被满足。 DDR SDRAM每次上电后,必须按下列顺序进行初始化。1. 将时钟使能信号(CKE)驱动成LVCMOS低电平LVCMOS低电平?SSTL_2电平?。CKE是一个SSTL_2电平的输入信号,但在施加了VDD电源后可以检测一个LVCMOS 低电平。在上电过程中将CKE保持为LVCMOS低电平,能够阻止DDR SDRAM接收不期望的命令,并能够保证DQ和DQS输出在正常操作之前保持为高阻状态;2. 在为DDR SDRAM提供了稳定的电源供应并将CKE保持为低后,我们就可以为DDR SDRAM提供一个稳定的时钟;3. 在向DDR SDRAM发布命令之前,必须等待至少200us;4. 为了初始化DDR SDRAM的内部逻辑,将CKE置为SSTL_2逻辑高并在命令总线上发布一个NOP命令或一个DESELECT命令。注意,此时CKE输入从LVCMOS输入转变为SSTL_2输入并保持为SSTL_2输入;5. 发布一个PRECHARGE ALL命令;6. 在