通过训练加修正配置ddr3中数据选通信号延时的方法

文档序号:6362858阅读:806来源:国知局
专利名称:通过训练加修正配置ddr3中数据选通信号延时的方法
技术领域
本发明涉及计算机领域的内存控制器,尤其是DDR3内存控制器写操作数据选通信号延时配置方法。
背景技术
双倍数据速率2 (DDR2)中,内存模组(Module)上,时钟信号(Clock)、地址信号(Address)、命令信号(Command)、控制信号(Controll)米用T型走线方式导致这些信号在传输的过程中反射及衰减严重,导致了 DDR2的数据传输频率受到限制。在双倍数据速率 3 (DDR3)中,内存模组上,时钟信号、地址信号、命令信号、控制信号采用飞越总线(Fly-ByBus)走线方式,以尽量减少这些信号的反射与衰减,让内存频率能够跑的更高。DDR3采用Fly-By Bus走线方式之后,频率的瓶颈是解决了,可是同时又带来一个麻烦,那就是同一个通道(Channel)内每个内存芯片接收到时钟信号、地址信号、命令信号、控制信号的时间都不一样,因为Fly-By Bus走线依次经过每个内存芯片,而信号在印制电路板传输线(PCB Trace)上面传输必然带来物理延时。举例说明,在DDR3无缓冲双列直插模组中,Fly-By Bus走线经过的第一个内存芯片与经过的最后一个内存芯片之间的时钟信号延时差达到Ins之多。在DDR3中,800MT/s对应的时钟长度为2. 5ns,1600MT/s对应的时钟长度为I. 25ns,足可以看出在DDR3中,Fly-By Bus走线经过的第一个内存芯片与经过的最后一个内存芯片之间的延时差不容忽视。写操作中,内存芯片要求控制器发来的数据选通信号(DQS)的上升沿和控制器发来的时钟信号(Clock)的上升沿尽量对齐。每个内存芯片接收到时钟信号的时间点是不一样的,换句话说,内存控制器需要对各个数据组的写操作数据选通信号(Write DQS)延时做
单独配置。内存控制器要保证所有内存芯片都能正常接收控制器发来的数据,每个内存芯片都需满足DQS上升沿与Clock上升沿之间的相位差(tDQSS)的规范(Spec)。理论上tDQSS越小越好,即Write DQS与Clock完全对齐。按照固态技术协会(JEDEC)协议的定义,
tDQSS I <l/4Tck, Tck指时钟周期,即数据选通信号与时钟信号之间的相位差允许达到25%的时钟周期长度。在JEDEC协议中,定义了一种叫做写水准测量(Write Leveling)的方式,以让所有内存芯片满足DQS上升沿与Clock上升沿之间的相位差tDQSS的规范(Spec)。写水准测量方式的实现步骤如下
1、上电之后,开始内存正常读写操作之前,让内存控制器进入写水准测量模式;
2、内存控制器往内存芯片发不同相位的DQS,即将WriteDQS的延时值一直从大往小设置,每设置一个延时值,内存控制器对应发出一个DQS ;
3、内存芯片用控制器发过来的DQS去采样Clock;
4、当采样到的Clock由O变为I时,从某个数据信号(DQ)反馈值给控制器;
5、控制器收到反馈后,将当前的WriteDQS延时值作为最终值。
该写水准测量方式需要在内存控制器定义大量的Write Leveling寄存器,并需要大量相应代码配合完成控制器与内存芯片之间的交互,手段复杂,给实践应用造成很多不便。专利公开号为CN1855302A的专利申请公开了一种用于DRAM器件的数据选通同步的方法和设备,该申请提供了用于检测数据选通信号和时钟信号之间的相位差、并使用所检测到的相位差来调节信号定时的方法,该方法主要是通过添加相位检测电路和可调节延迟电路的方式实现数据选通同步。由于该方法是对硬件做出的改进,对技术工艺水平要求较高,同时也增加了产品成本。

发明内容
为了解决采用Fly-By走线方式带来的内存控制器对各个数据组Write DQS延时配置的难题,实现合理配置数据组的写操作数据选通信号延时值,本发明提供了一种通过训练加修正配置DDR3中数据选通信号延时的方法,其基本原理是利用DDR3内存模组的时钟信号的飞越总线(Fly-By Bus)走线经过的每个内存芯片之间时钟信号(Clock)走线的物理延时差,即飞越总线在相邻两两内存芯片之间的延时差值,来修正数据组的Write DQS延时值。本发明方法主要包括如下步骤
步骤一印制电路板PCB设计中,通道内所有数据组做严格延时等长控制,而非线长等长控制,并且需要计入内存控制器芯片内部封装延时;
步骤二 进行写操作数据选通信号延时训练所需的基本配置,给每个数据组配置一个能够满足基本的读操作的参数,包括控制器接受数据窗口开启的时机、读操作中数据选通信号针对数据的延时、写操作中数据针对数据选通信号的延时;
步骤三进行通道内所有数据组的写操作数据选通信号延时训练,然后统计得到所有数据组写操作数据选通信号延时可配置的范围;
步骤四根据内存模组的时钟信号的飞越总线在相邻两两内存芯片之间的延时差值来制作修正表,并根据修正表修正各个数据组写操作数据选通信号延时可配置的范围;
步骤五对各个数据组的修正后写操作数据选通信号延时可配置的最大值与最小值分别求平均值,将该平均值作为写操作数据选通信号延时最终值;
步骤六将各个数据组的写操作数据选通信号延时最终值写入相应的延时寄存器,控制相应写操作时序。本发明方法中,严格延时等长控制是指从内存控制器芯片内部延时加上PCB板上的各段PCB走线的总延时,在数据组与数据组之间保持严格的总延时等长,而非线长等长控制,且总延时需要计入内存控制器所在芯片的芯片内部引脚封装延时;数据组与数据组之间总延时的差值需要控制在40ps以下。本方法步骤二中的基本配置如下控制器接受数据窗口开启的时机需选择在读准备过程中,可配置宽度大于O. 9个时钟周期;所述读操作中数据选通信号针对数据的延时、 写操作中数据针对数据选通信号的延时均配置为O. 25个时钟周期。本方法的写操作数据选通信号延时训练的步骤如下
(I)先对某一数据组进行写操作数据选通信号延时训练,将此数据组的写操作数据选通信号的延时值设为寄存器本身能设的最大值;
(2)发出写操作;
(3)发出读操作,读取步骤(2)的写操作写进去的值,检查此数据组读取的值是否正
确;
(4)将此数据组的写操作数据选通信号的延时值逐一减小,每次减小I;每设一个数据选通信号延时值就做一次写操作,检查读取的值与写进去的值是否一致;
(5)以满足写进去再读出来数据组对应值正确为条件,统计此数据组可配置的写操作数据选通信号延时值的范围,即写进去再读出来正确的写操作数据选通信号延时值的最小值与最大值;
(6)完成此数据组的写操作数据选通信号延时训练,并按以上步骤完成通道内所有数据组的写操作数据选通信号延时训练。本方法的修正步骤之前需要先根据各个数据组写操作数据选通信号延时可配置的范围值大小判断是不需修正的有效值,还是需要修正的无效值
(1)若等于写操作数据选通信号延时寄存器能设的最大值或者最小值,那么遭遇边界,为无效值,遭遇边界的无效值需要根据修正表进行修正;
(2)若大于写操作数据选通信号延时寄存器能设大的最小值且小于能设的最大值,那么为有效值,修正值和原来值相等。修正是以被修正数据组对应的内存芯片与作为修正基准的内存芯片之间的时钟信号的飞越总线走线延时差为修正幅度,具体计算方法为将内存芯片相邻两两之间的长度差值记为Ltc和Lw,其中Lw代表内存模组上位于中间的两个芯片之间的长度差值,Ltc代表其余的相邻芯片两两之间的长度差值;将U、Lw转化为延时差值Τφ和ΤΨ,Τφ=174ρ8/inch* U,Tw=174ps/inch* Lw ;再将Τφ、ΤΨ转化为对应写操作数据选通信号延时寄存器最小单元个数Φ和Ψ,Φ= ΤΦΑ, Ψ=ΤΨΛ,其中t是写操作数据选通信号延时寄存器最小单元;Φ和Ψ便是用来修正写操作数据选通信号延时可配置范围的修正值。本发明方法与JEDEC中定义的复杂的Write Leveling方式比较而言,相同点是都通过内存控制器与内存芯片的交流来完成,不同点是交流反馈方式Write Leveling方式中,控制器在不同DQS延时设置下发出DQS,内存芯片在用内存控制器发来的DQS采样到Clock从O到I的变化时,从某个数据信号(DQ)反馈,告知控制器当前设置是好的。而本方法是通过控制器在不同DQS延时设置下,先发出写操作,再发出读操作,看是否正确来找到写操作数据选通信号(Write DQS)延时可配置的范围。得到各个数据组Write DQS延时可配置范围之后,再经过相应算法得到各个数据组Write DQS延时的最终值。本方法不需要控制器在发出不同Write DQS延时值设置时等待内存芯片的特定信号反馈,内存芯片也不需要在发现Write DQS能正常采样Clock时给内存控制器输出一个指定信号,而是通过写数据进去再读出来比较看是否正确,这样的方法简单实用,容易操作,且不论内存模组是使用16位位宽、8位位宽还是4位位宽内存芯片,内存模组端的内存芯片的分布是否均匀,本发明方法均适用。


图I是通过训练加修正合理配置写操作数据选通信号(Write DQS)延时值的原理框图。图2是印制电路板(PCB)设计延时等长要求示意图。图3是满足DDR3无缓冲双列直插内存模组设计规范的8位位宽组成的内存模组的时钟信号(Clock)的飞越总线(Fly-By Bus)走线示意图。图4是修正值Φ和修正值Ψ计算方法示意图。图5是针对8个最小值与8个最大值的修正表。图6是写操作数据选通信号(Write DQS)延时值计算方法示意图。
具体实施例方式下面结合附图和实施例对本发明作进一步详细说明。目前在DDR3的内存模组(Module)中,由8位位宽内存芯片组成占绝大多数,本发明方法具体讲述8位位宽组成的内存模组的写操作数据选通信号(Write DQS)延时配置方法。本发明方法以满足DDR3无缓冲双列直插内存模组设计规范(DDR3 SDRAM UnbufferedDIMM Design Specification)的8位位宽组成的内存模组为例,来示意每个数据组数据选通信号延时训练(Write DQS Training)结束后的最小值及最大值的具体修正方法,并通过 Write DQS延时值计算方法,计算得到各个数据组最终的Write DQS延时值。图I示出了通过训练加修正合理配置Write DQS延时值的原理。如图I所示,本发明方法,为实现DDR3中Write DQS延时合理配置,步骤如下
(1)印制电路板(PCB)设计中,通道(Channel)内所有数据组做严格延时等长控制,而非线长等长控制,并且需要计入内存控制器芯片内部封装延时;
(2)开始写操作数据选通信号延时训练(WriteDQS Training)之前,完成训练所需的基本配置先给每个数据组配置一个能够满足基本的读操作的参数,包括控制器接受数据窗口开启的时机、读操作中DQS针对DQ的延时,再给每个数据组配置写操作中DQ针对DQS的延时;
(3)开始训练,先完成数据组O的训练,步骤如下
a、将数据组O的WriteDQS的延时值设为寄存器本身能设的最大值,假设为N ;
b、发出写操作;
C、再发出读操作去读刚写进去的值,检查读出来数据组O对应值是否正确;
d、将数据组O的WriteDQS的延时值逐一减小,每次减小1,每设一个延时值就做一次写操作,看读出来的值和写进去的值是否一致;
e、以满足写进去再读出来数据组O对应值正确为条件,统计数据组O的WriteDQS延时值的可配置范围,记为
,Omin为满足条件的最小值,Omax为满足条件的最大值;
f、完成数据组O的训练。(4)按照步骤(3)的方法,完成通道内所有数据组的Write DQS Training,统计得到所有数据组Write DQS延时可配置的范围如下
弟7数据组[7min,7max]
弟6数据组[6min,6max]
弟5数据组[5min,5max]
弟4数据组[4min, 4max]弟3数据组[3min,3max]
弟2数据组[2min,2max]
弟I数据组[lmin,Imax]
第O数据组[Omin, OmaJ
每个数据组包括一个最小值与一个最大值,8个数据组将对应8个最小值与8个最大值。(5)制作相应修正表,对8个最小值与8个最大值进行修正。修正表的制作利用的是,内存模组的时钟信号的飞越总线在相邻两两内存芯片之间的延时差值。修正后,所有数 据组Write DQS延时可配置的范围变为(r仅为了区分修正前后的值,无确定涵义)
弟 7 数据组[7min_r,7max_r]
弟 6 数据组[6min_r,6max_r]
弟 5 数据组[5min_r,5max_r]
弟 4 数据组[4min_r,4max_r]
弟 3 数据组[3min_r,3max_r]
弟2数据组[2.1,2max_J 弟 I 数据组[lmin-r,Imax-J 第 O 数据组[0min_r,OmaxJ
(6)对8个最小值与8个最大值进行修正之后,通过Write DQS延时值计算方法,得到各个数据组Write DQS延时最终值。(7)将各个数据组Write DQS延时最终值写入相应的延时寄存器,控制相应写操作时序。图2示出了印制电路板(PCB)设计延时等长要求。如图2所示,数据组与数据组之间也得保持严格的延时等长控制。通常在DDR3的PCB设计中,都需要数据组与数据组之间做延时等长控制。但是本发明方法中,要求数据组与数据组之间做严格的延时等长控制,数据组与数据组之间的延时差值要求很小。控制数据组与数据组之间的等长,是通过控制各个数据组的DQS的等长来实现。严格的延时等长控制主要包括三点。第一点,在PCB设计中,等长控制,按照总延时来控制,而不按照总线长来控制,原因是表层走线和内层走线的单位长度延时值也不一样,总延时等于各段走线的延时总和;第二点,总延时计算的两个端点,其中一个端点为内存插槽引脚,另外一个端点在内存控制器内部,即总延时需要计入内存控制器所在芯片的芯片内部引脚封装延时;第三点,数据组与数据组之间的总延时的差值要控制在40ps以下。图中TDCTTD7分别对应表示数据组O至数据组7的DQS的延时值。开始写操作数据选通信号延时训练之前,完成训练所需的基本配置。先给每个数据组配置一个能够满足基本的读操作的参数,包括控制器接受数据窗口开启的时机、读操作中数据选通信号(DQS)针对数据(DQ)的延时,再给每个数据组配置写操作中数据(DQ)针对数据选通信号(DQS)的延时。因为本发明方法中使用的Write DQS Training,对内存本身只是低强度的读写,这三点基本参数配置要求比较低。根据固态技术协会(JEDEC)的定义,控制器接受数据窗口开启的时机只要选在读准备(Read Preamble)过程中就可,可配置的宽度大于O. 9个时钟周期。读操作中数据选通信号(DQS)针对数据(DQ)的延时,和写操作中数据(DQ)针对数据选通信号(DQS)的延时都是配置为O. 25个时钟周期。按照Write DQS Training方法,完成各个数据组的选通信号延时训练,统计得到所有数据组Write DQS延时可配置的范围。该发明方法,统计得到的所有数据组Write DQS延时可配置的范围通常需要修正。需要修正的原因主要有两方面一方面是Write DQS延时寄存器本身有最大值及最小值限制,因为寄存器本身通常不能设置为负值,最小值通常为0,最大值通常最大不超过I个时钟周期;另一方面,根据固态技术协会(JEDEC)的定义,内存芯片接收到控制器发来的数据选通信号上升沿与时钟的上升沿相位差不能超过O. 25个时钟周期,也就是说每个数据组Write DQS延时值能满足写进去读出来正确的范围宽度为O. 5个周期左右。而时钟信号的飞越总线走线经过8位位宽组成的模组的第一个内存芯片与最后一个内存芯片之间的物理延时差很大,这样就导致8个max值和8个min值中有部分值会遭遇边界,遭遇边界的值 为无效值,这些无效值需要修正。修正的原理主要有两方面,一方面是满足DDR3无缓冲双列直插内存模组设计规范(DDR3 SDRAM Unbuffered DIMM Design Specification)的 8 位位宽组成的内存模组,内存芯片的摆布对称均匀,有规律。图3示出了满足DDR3无缓冲双列直插内存模组设计规范的8位位宽组成的内存模组的时钟信号的飞越总线走线。如图3所示,同步随机动态存储芯片(SDRAM)在内存模组上均匀分布,时钟信号的飞越总线走线,在左边4个SDRAM (SDRAMO, SDRAMU SDRAM2、SDRAM3)相邻两两之间的走线长度值相同,这个长度值都为Ltc,在右边4个SDRAM (SDRAM4、SDRAM5、SDRAM6、SDRAM7)相邻两两之间走线长度值相同,这个长度值也都为U,SDRAM3和SDRAM4之间的走线长度值为Lw。也就是说,整个内存模组上内存芯片相邻两两之间的长度差值只有两个,U和Lw。修正原理的另一方面是,满足DDR3无缓冲双列直插内存模组设计规范的8位位宽组成的内存模组上,时钟信号的飞越总线走线依次经过SDRAMO、SDRAMU SDRAM2、SDRAM3、SDRAM4、SDRAM5、SDRAM6、SDRAM7。假设Write DQS延时寄存器本身没有最大最小值限制,理论上应会出现
^min〉6min〉5min〉4min〉8min〉3min〉2min〉lmin〉0min
^max〉6max ^ ^max〉4max ^ ^max ^ ^max ^ ^max〉lmax〉0max
可以看出7min理论上最大,遭遇最小值边界概率最小,通常不需要修正;8个max值之间的大小关系可以看出Omax作理论上最小,遭遇最大值边界概率最小,通常不需要修正,因此将7min及Omax作为修正的基准值。也就是说,8个最小值和8个最大值中,遭遇边界的无效值就用7min或Omax为基准进行修正。制作修正表时,需要将内存芯片相邻两两之间的长度差值转化为延时差值Τφ和ΤΨ,然后再转化为对应Write DQS延时寄存器最小单元个数Φ和Ψ。如图4所示,通常情况下,Ltc和Lw均为内层走线。Φ= (174ps/inch) * L0/tΨ= (174ps/inch) *LW/1
t是Write DQS延时寄存器最小单元,单位为ps。Ltc和Lw的单位为inch。图5示出了针对8个最小值与8个最大值的修正表。修正时,首先根据值大小判断是为有效 值还是无效值,
(I)如果等于Write DQS延时寄存器能设的最大值或者最小值,那么遭遇边界,为无效值,遭遇边界的无效值需要根据修正表进行修正。修正时以7min或Omax为基准的,以被修正数据组对应的内存芯片与内存芯片7或者内存芯片O之间的时钟信号的飞越总线走线延时差为修正幅度。(2)大于Write DQS延时寄存器能设大的最小值且小于能设的最大值,那么为有效值,修正值和原来值相等。将8个各个数据组的Write DQS延时可配置的范围修正以后,接下来,在已修正的8个最小值和8个最大值基础上,根据相应Write DQS延时值计算方法计算出最终结果值。图6示出了每个数据Write DQS延时的最终值计算方法。本发明方法中,每个数据组修正之后Write DQS延时可配置最小值与最大值分别求算术平均值,作为各个数据组Write DQS延时最终值。将这些最终值写入相应寄存器,用来控制写操作时序。
权利要求
1.一种通过训练加修正配置DDR3中数据选通信号延时的方法,其特征在于,包括如下步骤 步骤一印制电路板PCB设计中,通道内所有数据组做严格延时等长控制; 步骤二 进行写操作数据选通信号延时训练所需的基本配置,给每个数据组配置一个能够满足基本的读操作的参数,包括控制器接受数据窗口开启的时机、读操作中数据选通信号针对数据的延时、写操作中数据针对数据选通信号的延时; 步骤三进行通道内所有数据组的写操作数据选通信号延时训练,然后统计得到所有数据组写操作数据选通信号延时可配置的范围; 步骤四根据内存模组的时钟信号的飞越总线在相邻两两内存芯片之间的延时差值来制作修正表,并根据修正表修正各个数据组写操作数据选通信号延时可配置的范围; 步骤五对各个数据组的修正后写操作数据选通信号延时可配置的最大值与最小值分别求平均值,将该平均值作为写操作数据选通信号延时最终值; 步骤六将各个数据组的写操作数据选通信号延时最终值写入相应的延时寄存器,控制相应写操作时序。
2.根据权利要求I所述的方法,其特征是所述严格延时等长控制是指从内存控制器芯片内部延时加上PCB板上的各段PCB走线的总延时,在数据组与数据组之间保持严格的总延时等长,而非线长等长控制,且总延时需要计入内存控制器所在芯片的芯片内部引脚封装延时。
3.根据权利要求2所述的方法,其特征是所述数据组与数据组之间总延时的差值需要控制在40ps以下。
4.根据权利要求I所述的方法,其特征是所述控制器接受数据窗口开启的时机需选择在读准备过程中,可配置宽度大于O. 9个时钟周期;所述读操作中数据选通信号针对数据的延时、写操作中数据针对数据选通信号的延时均配置为O. 25个时钟周期。
5.根据权利要求I所述的方法,其特征是所述写操作数据选通信号延时训练的步骤如下 (1)先对某一数据组进行写操作数据选通信号延时训练,将此数据组的写操作数据选通信号的延时值设为寄存器本身能设的最大值; (2)发出写操作; (3)发出读操作,读取步骤(2)写操作写进去的值,检查此数据组读取的值是否正确; (4)将此数据组的写操作数据选通信号的延时值逐一减小,每次减小I;每设一个数据选通信号延时值就做一次写操作,检查读取的值与写进去的值是否一致; (5)以满足写进去再读出来数据组对应值正确为条件,统计此数据组可配置的写操作数据选通信号延时值的范围,即写进去再读出来正确的写操作数据选通信号延时值的最小值与最大值; (6)完成此数据组的写操作数据选通信号延时训练,并按以上步骤完成通道内所有数据组的写操作数据选通信号延时训练。
6.根据权利要求I所述的方法,其特征是所述修正之前需要先根据各个数据组写操作数据选通信号延时可配置的范围值大小,来判断是不需修正的有效值,还是需要修正的无效值(1)若等于写操作数据选通信号延时寄存器能设的最大值或者最小值,那么遭遇边界,为无效值,遭遇边界的无效值需要根据修正表进行修正; (2)若大于写操作数据选通信号延时寄存器能设大的最小值且小于能设的最大值,那么为有效值,修正值和原来值相等。
7.根据权利要求6所述的方法,其特征是所述修正是以被修正数据组对应的内存芯片与作为修正基准的内存芯片之间的时钟信号的飞越总线走线延时差为修正幅度,具体计算方法为将内存芯片相邻两两之间的长度差值记为Ltc和Lw,其中Lw代表内存模组上位于中间的两个芯片之间的长度差值,U代表其余的相邻芯片两两之间的长度差值;将U、Lw 转化为延时差值 Τφ 和 ΤΨ,T0=174ps/inch* U,Tw=174ps/inch* Lw ;再将 Τφ、ΤΨ 转化为对应写操作数据选通信号延时寄存器最小单元个数Φ和Ψ,Φ= ΤΦΑ, Ψ=ΤΨΛ,其中t是写操作数据选通信号延时寄存器最小单元;Φ和Ψ便是用来修正写操作数据选通信号延时可配置范围的修正值。
全文摘要
本发明公开了一种通过训练加修正配置DDR3中数据选通信号延时的方法,以实现合理配置数据组的写操作数据选通信号延时值。本发明方法主要是通过训练找出每个数据组能完成正常写入再读出正确的Write DQS延时值的范围,再根据时钟信号的飞越总线走线经过所有内存芯片相邻两两之间的延时差值,对Write DQS延时值范围进行修正,最后对各个数据组的修正后Write DQS延时可配置的最大值与最小值分别求平均值,作为最终的每个数据组的Write DQS的延时值。本发明通过写数据进去再读出来的方式比较是否正确,简单实用,容易操作。
文档编号G06F13/20GK102637155SQ20121000499
公开日2012年8月15日 申请日期2012年1月10日 优先权日2012年1月10日
发明者吴少刚, 周国强, 张斌, 张福新, 钱宇力 申请人:江苏中科梦兰电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1