1、DDR3详解1DDR3(double-data-rate three synchronous dynamic random access memory)即第三代双倍数据率同步动态随机存取存储器。是应用在计算机及电子产品领域的一种高带宽并行数据总线。DDR3在DDR2的基础上继承发展而来,其数据传输速度为DDR2的两倍。内存相关工作流程与参数内存相关工作流程与参数了解DDR3,首先从认识内存相关工作流程与参数开始,这样会比较容易理解一些参数在其中所起到的作用。这部分的讲述运用DDR3的简化时序图。23DDR3的内部是一个存储阵列,将数据填进去,你可以把它想象成一张表格。和表格的检索原理一样,先指
2、定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑Bank(Logical Bank,下面简称Bank)。DDR3内部Bank示意图,这是一个NXN的阵列,B代表Bank地址编号,C代表列地址编号,R代表行地址编号。如果寻址命令是B1、R2、C6,就能确定地址是图中红格的位置4目前DDR3系统而言,还存在物理Bank的概念,这是对内存子系统的一个相关术语,并不针对内存芯片。内存为了保证CPU正常工作,必须一次传输完CPU在一个传输周期内所需要的数据。而CPU在一
3、个传输周期能接受的数据容量就是CPU数据总线的位宽,单位是bit(位)。控制内存与CPU之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU数据总线的位宽,这个位宽就称为物理Bank(Physical Bank,有的资料称之为Rank)的位宽。目前这个位宽基本为64bit。5在实际工作中,Bank地址与相应的行地址是同时发出的,此时这个命令称之为“行激活”(Row Active)。在此之后,将发送列地址寻址命令与具体的操作命令(是读还是写),这两个命令也是同时发出的,所以一般都会以“读/写命令”来表示列寻址。根据相关的标准,从行有效到读/写命令发出之间的间隔被定义为tRCD,即RAS
4、to CAS Delay(RAS至CAS延迟,RAS就是行地址选通脉冲,CAS就是列地址选通脉冲),我们可以理解为行选通周期。tRCD是DDR的一个重要时序参数,广义的tRCD以时钟周期(tCK,Clock Time)数为单位,比如tRCD=3,就代表延迟周期为三个时钟周期。6接下来,相关的列地址被选中之后,将会触发数据传输,但从存储单元中输出到真正出现在内存芯片的 I/O 接口之间还需要一定的时间(数据触发本身就有延迟,而且还需要进行信号放大),这段时间就是非常著名的 CL(CAS Latency,列地址脉冲选通潜伏期)。CL 的数值与 tRCD 一样,以时钟周期数表示。不过CL只是针对读取
5、操作。BL=47目前内存的读写基本都是连续的,因为与CPU交换的数据量以一个Cache Line(即CPU内Cache的存储单位)的容量为准,一般为64字节。而现有的Rank位宽为8字节(64bit),那么就要一次连续传输8次,这就涉及到我们也经常能遇到的突发传输的概念。突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,简称BL)。谈到了突发长度时。如果BL=4,那么也就是说一次就传送464bit的数据。但是,如果其中的第二笔数据是不需要的,怎么办?还都传输吗?为了屏蔽不需要的数据,人们采用了数据掩码(Data I/
6、O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消哪些输出或输入的数据。这里需要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽。8数据选通脉冲DQS DQS是DDR中的重要功能,主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。DQS是双向信号,在写入时用来传送由北桥发来的DQS信号,读取时,则由芯片生成DQS向北桥发送。可以说,它就是数据的同步信号。在读取时,DQS与数据信号同时生成(也是在CK与CK#的交叉点)。而DDR内存中的CL也就是从CAS 发出到DQS生成的间隔,数据真正出现在数据I/O总线上相对于D
7、QS触发的时间间隔被称为Tac。实际上,DQS生成时,芯片内部的预取已经完毕了,由于预取的原因,实际的数据传出可能会提前于DQS发生(数据提前于DQS传出)。9DQS是了保证接收方的选择数据,DQS在读取时与数据同步传输。但由于芯片有预取的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各I/O端口的出现时间可能有快有慢,会与DQS有一定的间隔,这也就是要有一个tAC规定的原因。而在接收方,一切必须保证同步接收,不能有tAC之类的偏差。这样在写入时,芯片不再自己生成DQS,而以发送方传来的DQS为基准,并相应延后一定的时间,在DQS的中部为数据周期的选取分割点(在读取时分割点
8、就是上下沿),从这里分隔开两个传输周期。这样做的好处是,由于各数据信号都会有一个逻辑电平保持周期,即使发送时不同步,在DQS上下沿时都处于保持周期中,此时数据接收触发的准确性无疑是最高的。在写入时,以DQS的高/低电平期中部为数据周期分割点,而不是上/下沿,但数据的读取触发仍为DQS的上/下沿.1011写入延时 在上面的DQS写入时序图中可以发现,在发出写入命令后,DQS与写入数据要等一段时间才会送达。这个周期被称为DQS相对于写入命令的延迟时间(tDQSS)。tDQSS是DDR内存写入操作的一个重要参数,太短的话恐怕接受有误,太长则会造成总线空闲。tDQSS 最短不能小于0.75个时钟周期,
9、最长不能超过1.25个时钟周期。正常情况下,tDQSS是一个时钟周期,但写入时接受方的时钟只用来控制命令信号的同步,而数据的接受则完全依靠DQS进行同步,所以DQS与时钟不同步也无所谓。12内存的工作速度内存的工作速度内存技术从SDR,DDR,DDR2,DDR3一路发展而来,传输速度以指数递增,除了晶圆制造工艺的提升因素之外,还因为采用了Double Data Rate以及Prefetch两项技术。实际上,无论是SDR还是DDR或DDR2、3,内存芯片内部的核心时钟基本上是保持一致的,都是100MHz到200MHz(某些厂商生产的超频内存除外)。13DDR即Double Data Rate技术
10、使数据传输速度较SDR提升了一倍。如下图所示,SDR仅在时钟的上升沿传输数据,而DDR在时钟信号上、下沿同时传输数据。例如同为133MHz时钟,DDR却可以达到266Mb/s的数传速度。14Double Data Rate技术使数据外传速度提升了一倍,而芯片内部数据数据传输速度的提升则是通过Prefetch技术实现的。所谓Prefetch简单的说就是在一个内核时钟周期同时寻址多个存储单元并将这些数据以并行的方式统一传输到IO Buffer中,之后以更高的外传速度将IO Buffer中的数据传输出去。这个更高的速度在DDR I上就是通过Double Data Rate实现的,也正因为如此,DDR
11、 I外部Clock管脚的频率与芯片内部的核心频率是保持一致的。如下图所示为DDR I 的Prefetch过程中,在16位的内存芯片中一次将2个16bit数据从内核传输到外部MUX单元,之后分别在Clock信号的上、下沿分两次将这2 x 16bit数据传输给北桥或其他内存控制器,整个过程经历的时间恰好为一个内核时钟周期。15发展到DDR2,芯片内核每次Prefetch 4倍的数据至IO Buffer中,为了进一步提高外传速度,芯片的内核时钟与外部接口时钟(即我们平时接触到的Clock管脚时钟)不再是同一时钟,外部Clock时钟频率变为内核时钟的2倍。同理,DDR3每次Prefetch 8倍的数据
12、,其芯片Clock频率为内核频率的4 4倍,即JEDEC标准(JESD79-3)规定的400MHz至800MHz,再加上在Clock信号上、下跳变沿同时传输数据,DDR3的数据传输速率便达到了800MT/s到1600MT/s。具体到内存条速度,我们以PC3-12800为例,其采用的DDR3-1600芯片核心频率为200MHz,经过Prefetch后Clock信号频率到达800MHz,再经过Double Data Rate后芯片数据传输速率为1600 MT/s,内存条每次传输64比特或者说8字节数据,1600 x8便得到12800MB/s的峰值比特率。161718DDR3与与DDR2的差异的差异
13、19DDR3测试测试JEDEC标准规定的DDR3测试主要分为三个方面,分别为:时钟测试时序测试电气性能测试其中时钟测试主要测试时钟信号的周期、上下沿脉宽、周期抖动以及连续n周期累积误差等指标;时序测试主要测试数据读写时的建立保持时间相关参数;电气性能测试主要测试信号完整性相关指标,主要包括各信号的斜率以及直/交流逻辑高/低电平等指标。20重点测试项目:写数据时l DQ的tDS与tDHl DQS与CK的时序(tDQSS,tDSS,tDSH)读数据时l DQS与DQ的skew:tDQSQl DQ输出参考DQS的保持时间:tQH 时钟l CK/CK#满足高低电平时间的要求tCH和tCLl 时钟的信号质量和抖动21其他l 命令、地址信号与CK的时序tIS和tIHl 数据DQ、DQS、命令、地址信号的信号质量、上升和下降 时间及转换速率l 电源纹波22232425