1.DDR3简介
DDR3 SDRAM,全称第三代双倍速率同步动态随机存取存储器,简称 DDR3,双倍速率(double-data-rate),是指时钟的上升沿和下降沿都发生数据传输;同步,是指DDR3数据的读取写入是按时钟同步的;动态,是指DDR3中的数据掉电无法保存,且需要周期性的刷新,才能保持数据;随机,是指可以随机操作任一地址的数据。DDR3是当今较为常见的一种储存器,在计算机及嵌入式产品中得到广泛应用,特别是应用在涉及到大量数据交互的场合,比如电脑的内存条。其具有以下特点:1.掉电无法保存数据,需要周期性的刷新。2.时钟上升沿和下降沿都会传输数据。3.突发传输,突发长度Burst Length一般为8。当数据存入DDR3时先指定一个bank地址,再指定行地址,最后指定列地址。因此DDR3的存储容量计算公式为bank数×行数×列数×存储单元容量。举个例子,bank address位宽为3,Row address位宽为14,Column address为10,所以它的地址大小等于即 2^3* 2^14* 2^10=2^27=128M,数据位宽为16bit,所以容量大小为 128M*16bit,也就是 256MByte。
-
2.DDR3结构与原理
-
2.1DDR3结构解析
以我板子上的MT41K256M16TW-107 IT为例进行介绍,该芯片容量为512Mb,数据接口是 16bit,内存数据主频高达 1600MHZ,数据带宽可达 1600MHz*64bit。其模块组成如下图所示。
各端口的功能如下:
A[14:13], A12/BC#, A11, A10/AP, A[9:0]:地址输入——为ACTIVATE命令提供行地址,为READ/WRITE命令提供列地址和自动预充电位(A10),以便从某个bank的内存阵列中选择一个位置。在PRECHARGE命令期间采样的A10决定PRECHARGE是否适用于一个bank(A10 LOW,由BA[2:0]选择bank)或所有bank(A10 HIGH)。地址输入还提供LOAD MODE命令期间的操作码。地址输入被引用到VREFCA。A12/ BC#:当在模式寄存器(MR)中启用时,在READ和WRITE命令期间对A12进行采样,以确定是否执行突发切碎(动态)(HIGH = BL8或无突发切碎,LOW = BC4)。
BA[2:0]:bank地址输入——BA[2:0]定义了激活、读、写或预充值命令被应用到的bank。BA[2:0]定义在LOAD mode命令期间加载哪个模式寄存器(MR0, MR1, MR2或MR3)。BA[2:0]的参考是VREFCA。
CK, CK#:时钟——CK和CK#是差分时钟输入。所有的控制和地址输入信号都在CK的正沿和CK#的负沿的交叉处采样。输出数据频闪(DQS, DQS#)参考CK和CK#的交叉点。
CKE:时钟使能——CKE使能(高电平)和禁用(低电平) DRAM内部电路和时钟。启用/禁用的具体电路取决于DDR3 SDRAM配置和工作模式。取CKE LOW提供PRECHARGE下电和SELF REFRESH操作(所有bank空闲),或有效掉电(在任何bank中都是行有效)。CKE对于断电进入和退出以及自刷新进入都是同步的。对于自刷新退出,CKE是异步的。掉电期间,输入缓冲区(不包括CK、CK#、CKE、RESET#和ODT)被禁用。在SELF REFRESH期间禁用输入缓冲区(不包括CKE和RESET#)。CKE的参考是VREFCA。
CS#:片选信号——CS#使能(低)和禁止(高)命令解码器。当CS#为HIGH时,所有命令都被屏蔽。CS#为具有多个等级的系统提供了外部等级选择。CS#被认为是命令代码的一部分。CS#的参考是VREFCA。
LDM:输入数据掩码——LDM是一个低字节,用于写入数据的输入掩码信号。在写数据期间,当LDM与输入数据一起被HIGH采样时,低字节的输入数据被屏蔽。虽然LDM球只有输入,但LDM负载的设计与DQ和DQS球的负载相匹配。LDM的参考是VREFCA。
ODT:片上终止——ODT使能(高)和禁用(低) DDR3 SDRAM内部的终止电阻。当在正常操作中启用时,ODT仅应用于以下模块:DQ[15:0],LDQS, LDQS#,UDQS, UDQS#,LDM和x16的UDM;DQ0[7:0],DQS, DQS#,DM/TDQS, NF/TDQS#(当TDQS开启时);DQ[3:0],DQS, DQS#和DM用于x4。如果通过LOAD MODE命令禁用ODT输入,则忽略该输入。ODT的参考是VREFCA。
RAS#, CAS#, WE#:命令输入——RAS#、CAS#和WE#(以及CS#)定义要输入的命令,并引用到VREFCA。
RESET#:复位信号——Reset #是参考VSS的有源LOW CMOS输入。RESET#输入接收器是一个CMOS输入,定义为直流HIGH 0.8 × VDD和直流LOW 0.2 × VDDQ的轨对轨信号。断言是异步的。
UDM:输入数据掩码——UDM是一个上字节,写数据的输入掩码信号。当UDM与WRITE访问期间的输入数据一起被采样为HIGH时,上字节输入数据被屏蔽。虽然UDM球仅用于输入,但UDM加载的设计与DQ和DQS球的加载相匹配。UDM的参考是VREFCA。
DQ[7:0]:数据输入/输出——用于x16配置的双向数据总线的低字节。DQ[7:0] 的参考是VREFCA。
DQ[15:8]:数据输入/输出——用于x16配置的双向数据总线的上字节。DQ[15:8] 的参考是VREFCA。
LDQS, LDQS#:低字节数据频闪——带读数据的输出。与读数据边对齐。带写数据的输入。居中对齐以写入数据。
UDQS, UDQS#:高字节数据频闪——带读数据的输出。与读数据边对齐。带写数据的输入。DQS在写数据时居中对齐。
ZQ:输出驱动校准的外部参考,应连接240ohm到VSSQ。
2.2存储原理
存储原理示意图:行选与列选信号将使存储电容与外界间的传输电路导通,从而可进行放电(读取)与充电(写入)。另外,图中刷新放大器的设计并不固定,目前这一功能被并入读出放大器(Sense Amplifier ,简称S-AMP);
-
2.3SD