专利名称::同步存储器读取数据捕获的制作方法
技术领域:
:0001本发明总的涉及同步存储器和相关的存储器控制器。更具体的,本发明涉及在存储器控制器与同步存储器之间使用双向数据总线和双向数据选通信号的读取和写数据的控制和传输。
背景技术:
:0002在源同步信令中,由发送装置来驱动数据选通时钟和数据。从发送器到接收器的时钟和数据路径是匹配的。在接收装置,使用数据选通时钟以锁存输入数据。在双倍数据速率(DDR)SDRAM存储器系统中,外部数据总线是双向的。写数据是从存储器控制器向存储器发送,读取数据是从存储器向控制器发送。当没有数据被发送时,总线返回由总线传送线路端电压限定的三态电平。0003双向数据选通时钟的控制也依赖于哪个装置正在驱动数据到数据总线来变化。控制器和存储器装置上的数据选通时钟输入必须被使能信号门控以阻止由三态时钟输入电平创建的伪时钟边沿触发内部数据捕获。当既不是存储器控制器也不是存储器正在驱动数据选通时,将由端电阻器将数据选通线拉至总线端电压。对于DDR和DDR2存储器,端电压Vterm是Vddq/2,其与输入缓存器参考电压Vref相同。结果,数据选通输入缓存器产生不确定的值,其依赖于噪声可在'0,和T之间变化。因为写数据指令和写数据自身从控制器同步到达源并且这两组信号之间的时滞将小于一位周期,所以在存储器芯片上该操作可以容易完成。在数据选通时钟DQS的第一个作用边沿之前,存在2位前同步码周期,在此期间DQS被驱为低。在此期间,存储器芯片能够给出使能信号。0004在读取操作期间,双向总线上的读取命令和读取数据之间的对准非常不确定。依赖于系统配置和运行条件,通过命令和地址输出驱动器、通过连接到存储器装置的封装和印刷电路板、之后通过读取数据输出緩存器、封装和印刷电路板、最后通过存储器控制器的输入緩存器的延迟可以改变多个位周期。0005与读取命令和数据的该对准相关联的第一个问题是在系统初始化时确定何时定位读取数据DQS使能信号以使其在2位前同步码内下降。第二个问题是如何调整在操作期间由温度或供电电压漂移产生的时序漂移。第三个问题是当DQS时钟和主系统时钟CLK之间的相位完全随机时,如何传输被DQS时钟输入的数据到系统时钟域。0006因为在单数据速率SDRAM中不存在DQS时钟并且读取数据必须满足与主系统时钟CLK相关的建立和保持需求,所以这些问题在单数据速率SDRAM中不存在,其中主系统时钟CLK产生自控制器。0007因为各读取和写数据总线存在有它们自己的专用时钟,所以四倍数据速率(QDR)SRAM没有该问题。由于时钟并非必须为三态,所以不存在任何不确定状态。0008在2005年5月3日授权给A.M.Schoenfeld等的美国专利6889336中7〉开了一种到DDRSDRAM的双向^:据选通信号的应用。以初始DDR运行速度DDR267和DDR333,2位前同步码周期仍然相对大,分别为7.5ns和6.66ns。4吏用内部DQS使能的固定时序仍然可能适应一定范围的系统设计和运行条件。对于从DDR2-400到DDR2-800范围内的DDR400和DDR2装置,存在动态调整DQS使能时间的需要。一组从片间控制器到DDRSDRAM的典型的循环读取时序延迟的实例如下0009延迟来自最小最大命令锁存到控制器管脚1.0ns3.0nsPCB印制线到DDRSDRAM0.5nsL5nsSDRAM命令输入到数据输出-0.5ns0.5nsPCB印制线到控制器0.5ns1.5ns控制器管脚到数据锁存1.0ns3.0ns总计2.5ns9.5ns0010在用于DDR400的数据速率和更高的数据速率,读取数据时序可以改变大于DQS前同步码间隔的宽度。固定时序不是稳健的方案。0011例如,在日期为2005年2月的LSILogic0.11umDDR2PHY文档cw000733—1—0中描述了DQS门控的几种实现。PHY实际上支持^f吏用被称作GATEON的信号来使能DQS读取选通的3种不同方法。80012第一种方法"可编程的GATEON(门通)"允许用户基于可编程的延迟寄存器和发出读取命令的时间来编程GATEON的时序。在此方案中,需要读取数据训练。读取数据训练涉及以不同延迟寄存器设置尝试多个读取操作、找到正确地接收期望的数据的设置,并且随后设置延迟寄存器于导通范围的中间的某处。此方法的缺点在于,其需要在控制器某处的较高水平智能和系统初始化期间的大量时间以确定最适宜的设置。同样,在操作期间它不能适应时序漂移。0013第二种方法被称作"反馈GATEON"。产生信号并发送到管脚,以同样的方式产生命令。能够沿与命令信号具有相同长度和负载的PCB印制线发送此信号到存储器并返回至控制器。在控制器,所延迟的信号被用于触发DQS使能。此方法的缺点在于它需要2个附加管脚、PCB印制线和功耗。其不能将实际命令与读取数据循环延迟完美的匹配。0014最后一种方法^C称作"外部GATEON",其中用户以某种方式产生GATEON信号。该方法也需要至少一个附加管脚。其也需要模拟实际数据总线的行为的一些相互连接。
发明内容0015根据一个主要方面,本发明提供一种用于控制存储器的方法,该方法包括测量存储器和存储器控制器之间的读取延迟;将初始化序列写到存储器的预定位置;将读取命令发送到存储器以读取预定位置并接收所返回的数据信号;并且在发送读取命令后的预定时间,采样所返回的数据信号以产生初始化样本,该初始化样本被用于确定存储器和存储器控制器之间的读取延迟。0016例如,存4诸器包括DDRSDRAM存储器或具有双向源同步选通的双向总线上的/人装置。0017根据另一个主要方面,本发明提供一种用于控制存储器的存储器控制器,该控制器包括读取延迟确定电路和DQS使能电路;在初始化期间,读取延迟确定电路确定在发送读取命令到存储器和接收返回的数据信号之间的读取延迟,读取延迟确定电路包括在预定时间采样数据以产生初始化样本的电路,和存储关于初始化样本的每个排列的各自读取延迟的查找表;DQS电路适用于根据读取延迟来门控所接收的DQS时钟信90018例如,存储器包括DDRSDRAM存储器。0019本发明的一个实施例提供在存储器控制器中用于控制存储器的方法,该存储器包括具有源同步时钟控制的双向读取/写总线和双向数据选通,所述方法包括通过下述步骤测量存储器和存储器控制器之间的读取延迟存储器控制器将Gray(格雷)码初始化序列写到存储器的预定位置;存储器控制器将读取命令发送到存储器以读取预定位置并接收所返回的数据信号;在发送读取命令后的预定时间,存储器控制器采样所返回的数据信号以产生初始化样本;使用初始化样本以确定存储器和存储器控制器之间的读取延迟。0020本发明的另一实施例提供一种用于控制存储器的存储器控制器,该存储器包括具有源同步时钟控制的双向读取/写总线和双向数据选通,该控制器包括读取延迟确定电路和数据选通使能电路;在初始化期间,读取延迟确定电路确定在发送读取命令到DDRSDRAM和接收返回的数据信号之间的读取延迟,读取延迟确定电路包括在预定时间釆样数据以产生初始化样本的电路,和存储关于初始化样本的每个排列的各自读取延迟的表查找功能;数据选通使能电路适用于根据读取延迟来门控所接收的DQS。0021本发明的另一实施例提供一种与存储器一起使用的数据选通使能电路,该存储器包括具有源同步时钟控制的双向读取/写总线和双向数据选通,该电路包括用于接收数据选通信号的输入;用于产生所门控的数据选通信号的输出;数据选通使能和数据选通禁止;根据选择输入来门控数据选通信号的多路复用器;设置选择输入以在数据选通使能的激活时选择数据选通信号,且设置选择输入以在数据选通禁止的激活时和跟随数据选通信号的下一个上升沿来取消选择数据选通信号的选择输入发生器电路。0022本发明的另一实施例提供一种漂移检测器电路,包括用于与输入时钟信号同步地锁存主时钟的第一相位的第一值的第一电路;用于与输入时钟信号同步地锁存主时钟的第二相位的第二值的第二电路;其中第一值或者第二值中的变化指示输入时钟信号相对于主时钟源已经漂移了至少预定数量。0023本发明的实施例提供了一种快照数据训练方法,以在单个读取操作中确定DQS使能信号的最优时序。这是通过首先将格雷码计数序列写到存储器和随后在单个突发(burst)中将其读回来实现的。控制器在发出命令的时间的固定间隔来采样读取突发以确定循环延迟。简单的真值表查找确定最优的DQS使能时序用于正常读取。0024有利的,在正常读取操作期间,使能的DQS信号的第一正边沿被用于釆样每次发出命令所使能的计数器。如果计数器样本变化,指示已经发生时序漂移,可调整DQS使能信号以补偿漂移并维持处于DQS前同步码中心的位置。此技术也可被应用于使用反复方法以在上电时确定DQS使能时序的系统。0025本发明的另一个实施例是基于计数器的DQS锁存样本的简单、低等待时间时钟域跨越电路(crossingcircuit)。0026对于那些本领域普通技术人员通过结合附图阅读本发明的具体实施例的下列描述,本发明的其它方面和特点将变得清楚。0027现在将参考附图仅以实例的方式描述本发明的实施例,其中图1是本发明实施例提供的具有读取延迟确定的SDRAM装置的框图2A、2B和2C是用于读取延迟确定的示例性时序图3是对应于图2A、2B和2C的实例的用于根据初始化样本来确定读取延迟的查找表;图4是对应于图2A、2B和2C的实例的用于接收存储器控制器中的读取数据和用于产生初始化样本的电路图5是读取延迟确定方法的另一个时序图6是对应于图5的实例的查找表;图7是对应于图5的实例的用于接收读取数据和产生初始化样本的电路的电路图8A是用于一_^已经确定读取延迟时用于使能DQS的示例性电路的电路图8B是对应于图8A的时序图的实例;图9A是用于检测数据选通漂移的电路的电路图;和图9B是对应于图9A的电路的时序图的实例。具体实施例方式0028在下面本发明的示例实施例的详细描述中,参考附图,其中附图构成本发明的一部分并以可实现本发明的特定具体实施例的方式示出。以足够的细节来描述这些实施例以使本领域普通技术人员能实现本发明,并且可以理解在不脱离本发明的范围的情况下可以采用其它实施例并且可以做出逻辑的、机械的、电的和其它的改变。因此,下面的详细描述不被认为用于限制本发明,并且本发明的范围由所附权利要求书限定。0029现在参考图1,示出通过下列连接来连接到DDR-SDRAM22的存储器控制器20,该连接包括用于发送来自存储器控制器20的地址、命令和时钟到DDRSDRAM22的单向总线24;用于将数据写到DDRSDRAM22和从存储器读取数据的双向总线26,总线26上的信号被标识为"DQ";用于传递数据选通时钟(DQS)的双向连接28。在写操作,由存储器控制器20和写数据同步地产生DQS。在读取操作,从DDRSDRAM22读取数据,并由存储器同步产生DQS。存储器控制器20具有读取延迟确定电路30,其确定存储器控制器20和DDRSDRAM22之间的读取延迟。存储器控制器20具有DQS使能电路32,其根据读取延迟确定电路30的输出基于输入的DQS信号28产生门控DQS信号34。0030对于此实例,存储器控制器是以主时钟运行的同步ASIC电路。控制器内的主DLL(未示出)得出相位被锁定到主时钟的0°相位差时钟,也可以是90。、180°和270°相位(未示出)。同样位于控制器内的从DLL(未示出)创建恒定的90°相移。0031现在将进一步参考图1和图2A、2B和2C的时序图以更详细的实例的方式描述读取延迟确定电路30的功能性。在上电时,存储器控制器20首先等待DLL锁定并且可靠地生成0。、卯°、180°和270°相位,和DQS的卯。延迟形式。这将允许控制器的数据输入锁存来可靠的捕获读取数据。随后控制器20发送合适的上电命令到DDRSDRAM22。随之将初始化序列写到存储器,例如,将突发中的2位格雷码序列写到存储器中的连续字节的位置。注意到格雷码不是唯一的,任意格雷码都能被采用。位Q到位3包括2位格雷码的LSB,而位4到位7包括2位格雷码的MSB,如下0032__时间I位#<table>tableseeoriginaldocumentpage13</column></row><table>0033格雷码才莫式确保在任意一个时间只有一位变化且两位之间延迟的任何细微差别将不导致错误的计数。将每个格雷码位写到多个位置(如上例的4位.)允许如下详细所述的并行获得多个样本。0034图2A示出最大读取延迟情况的时序图;图2B示出标称读取延迟情况的时序图,且图2C示出最小读取延迟情况的时序图。这些时序图中的每个示出0。时4中40,5位格雷码计数器42、44、46、48和50,命令序列52,DQS54,DQ56,DQS9058,DQ060,DQ162和count—en64。0035在每种情况,格雷码计数器具有以与0。时钟40的相同周期交变的第一位C。42,以0°时钟周期的二倍的周期振荡的第二位d44,以0°时钟周期的四倍的周期振荡的第三位C246,以0°时钟周期的八倍的周期振荡的第四位C348,和以0°时钟周期的十六倍的周期振荡的第五位(:450。五位42、44、46、48和50的时序使得以在0。时钟的每四分之一循环上变化的码字产生五位格雷码。0036如上所述已经将格雷码写到存储器,以在0°时钟40的上升沿上的作为命令序列52的一部分的READ命令66来继续确定读取延迟的过程。响应READ命令,由说明最小读取等待时间(RL)的count-en64的下降沿来使能格雷码计数器42、44、46、48和50。在图示的实例中,假设最小读取等待时间是3个时钟周期。如果系统中没有其它延迟,则在此时间结束时数据将开始到达存储器控制器。0037但是,假设系统中存在一些其它的延迟,在后来的某时间启动DQS54,DQS54的第一上升沿示出为之前有2位前同步码68。注意到当DQS未被作用时,其处于逻辑高和逻辑低之间的近于中间的高阻抗状态。DQS54作用足够长以完成特定块长度的读:取。随之为后同步码69,在后同步码69之后其返回高阻抗状态。0038从存储器与DQS54同步接收数据信号DQ56。因为其是双倍数据速率系统,对于DQS54的每个上升沿和每个下降沿于DQ56上接收位。为了执行快照数据训练,发出读取命令66,其与如上所述的格雷码序列被写入的存储器中的地址相关。DQS9058是DQ56的90°相移形式,其产生为允许采样边沿位于所接收数据脉冲的中间的中心。这可以例如使用从DLL产生。DQO60示出在DQS9058的上升沿上锁存的数据,而DQ162示出在DQS9058的下降沿锁存的数据。0039在图2A,2B和2C中,DQ,DQ0和DQ1采用了简写符号以概述从所存储的格雷码的所有8位中读取的位。DQ,DQ0和DQ1均示出了在给定的时刻从所存储的2位格雷码中读取的内容。DQ,DQ0和DQ1="00"表示在此时间期间从第一位被写入的任意存储器位置读取的格雷码的第一位为"0",且从第二位被写入的任意存储器位置读取的格雷码的第二位为"0"。1又在图2B中示出了单独位DQpDQs的全部细节。0040比较图2A,2B和2C,可以看到依赖于读取延迟,读取数据DQ56在不同时间开始从存储器到达,并且不同时间可以与格雷码计数器42、44、46、48和50的不同状态相关Jf关。0041在图2B中总的以70表示的第一个实例实现中,8个输入位中的每个具有各自的额外的输入锁存,其以控制器时钟的单相位来采样输入所锁存的读取数据DQO。在图2B中,8位上的数据以从DQo到DQ7的120、122、124、126、128、130、132、134表示。可以看到从DQ。到DQ3的位捕获2位格雷码的LSB,而从DQ4到DQ7的位捕获二位格雷码的MSB。在图示的实例中,假设DQo和DQ"乂0。相位锁存;DQ,和DQ5以90°相位锁存;DQ2和DQ6以180°相位锁存;DQ3和DQ以270。相位锁存。通过在限定的时刻采样这8个锁存的内容,产生初始化样本。在图示的实例中,发出READ命令后在7个完整时钟周期获得0。样本,随后获得90°、180°和270°样本。0°样本被标记为b。和b4,90°样本被标记为b,和b5,180°才羊本^皮标记为&和b6,270°才羊本—皮标记为h和b7。0042如图3的实例方式所示,初始化样本的不同排列被组织到真值表中。此表格可以实现为逻辑电路,例如存储器控制器中的寄存器或只读存储器(ROM)。在此情况下,在以采样相位组织位的表中示出初始化14样本。每个初始化样本具有8位,表才各中的第一个2位是以0°相位采样的2位(在图2B的实例中是b。和bJ;下一个2位是以90。相位釆样的位(在图2B的实例中是bi和b5);下一个2位是以180。相位采样的2位(在图2B的实例中是位h和b6);下一个2位是以270。相位采样的2位(在图2B的实例中是位b3和b7)。如上所述,格雷码序列已经被写入存储器对该方法是必要的,其中2位格雷码序列的第一位被写入每个字节的位0至3,2位格雷码序列的第二位被写入每一字节的位4至7。0043替代地,仅采用2位格雷码序列被写入的2位也可产生相同的初始化样本。这在图2B中总的以72表示的第二实例所示,其中假设在DQ。上读取第一位,在DQ4上读取第二位。在此情况中,有必要以所有4个时钟相位来采样DQ。和DQ4的每个。然后可使用8个样本以产生与如上所述的相同的初始化样本。0044图2A示出最大延迟情况。在此情况下,0°、90°、180°和270°样本是"00000000"。从时序图,可以看出DQS90第一上升沿的正常操作发生在格雷码计数15附近。由于DQS54具有2位前同步码,在格雷码计数13处使能DQS将确保其对于第一上升沿被使能。对于突发长度为4时,在大约格雷码计数20处禁止DQS,然而对于突发长度为8时,在大约格雷码计数28处禁止DQS。参考图3的真值表,可以看到此信息被输入到与初始化样本"00QO00GO"有关的表中。0045图2B示出标称延迟情况。0°、90°、180°和270。样本是"01111111"并对应于图3中的表的第六行。最后,图2C示出了最小延迟情况且O。、90°、180°和270°样本是"10101010",这对应于图3中的真值表的第一行。此表在右边的两列中也包括应该被用于根据延迟来采样DQO和DQ1的时钟相位的指示。这详细说明了如何移动数据到控制器的时钟域中,即基于控制器的主时钟使用主0°时钟的上升沿或下降沿同步从存储器读取到控制器的数据以锁存数据。0046已经确定读取延迟,图1的DQS使能电路32使能/禁止输入的DQS和/或DQS90。更具体的,在正常读取操作期间,控制器发出具有块长度BL=8和读取等待时间RL=3(在此实例中)的READ命令。给出count—en信号以跟随在发出读取命令之后的第三时钟边沿从0开始格雷码计数器。数据不能早于此到达。注意到,计数器是在任意时间仅单个位变化的格雷码计数器。计数值不对应于正常的二进制编码方案。计数器每1/415时钟周期增加。一旦计数器达到用于使能或禁止的表中所存储的值(用于先前所测量的延迟),DQS相应地被使能或禁止。0047另外,在对应于数据突发中的数据的第一位的上升沿,计数器值通过所使能的DQS时钟锁存。该值对应于真值表中的行。如果该值与先前读取周期中的或在前面段落所描述的初始化序列相同,则循环延迟已保持恒量。如果该值是不同的,则时序已经漂移,控制器必须更新DQS使能时序。0048现在参考图4,示出了根据本发明的一个实施例用于通过图1的双向总线26接收单个位的存储器控制器中的功能电路。示出标识为DQS—EN80的DQS使能,这是由图1的DQS使能电路34产生的DQS使能输入。DQS使能80门控DQS90输入58,和反向的DQS90输入82。记得DQS90是从DDRSDRAM22到存储器控制器20发送的DQS的90。相移形式。DQSTB0具有对应于DQS90的上升沿的上升沿;而DQSTB183具有对应于DQS卯的下降沿的上升沿。在DQn56上接收数据信号,DQn56连接到在DQS90的上升沿锁存的触发器84和在DQS90的下降沿锁存的D触发器86的D输入。触发器84输出DQO88,这是DQS90的上升沿锁存的数据。触发器86输出DQ190,这是DQS90的下降沿锁存的数据。0049提供电路85以采样DQO88和DQ190,并产生重新调整时间以与0°时钟同步的输出89和90。这是通过触发器92和94在0°和180°时钟相位采样DQO并根据多路复用器选择输入mux—sel101通过多路复用器100在0°样本和180°样本之间选择来获得。所采用的mux—sel值是读取延迟的函数,并存储在如上所述的查找表中。随后由D触发器104在0°时钟相位釆样该输出以产生输出89。由D触发器96在180。采样DQ1卯,而0°样本对应于D触发器86的输出。DQ1比DQO晚半个时钟周期有效。这有效地重新调整DQO和DQ1数据的时间以在相同的间隔内有效。多路复用器102选择180°样本或0°样本,并再次根据多路复用器选"f奪输入mux—sel101。使用D触发器106以0°时钟相位采样所选择的输出以产生输出卯。0050图示的实例还包括一对触发器108和110,以用于重新调整输出89和90的时间到RTL(寄存器传输语言)时钟输入120的目的。全部的时钟控制的llT出以109和111标识,这些分別对应于l命入56的偶lt位和奇数位。至此关于控制器-存储器接口的位0和位1讨论的整个电路被重复用于接口的每位。用于个人计算机的当前设计的典型接口宽度是64位,但是其它应用具有不同的宽度。0051提供电路122以用于产生初始化样本的目的。这包括了采样DQ088的D触发器112。使用触发器114将其重新调整时间到0°时钟。可选的,使用触发器116将其重新调整时间到RTL时钟。0052为实现对应于图2B的第一实例70的功能,依赖于在接口的哪个位上执行了电路122,用不同时钟相位采样DQO。在图示实例中,对于DQo和DQ4,在0°时钟相位发生采样。对于DQi和DQ5,在90°时钟相位发生采样。对于DQ2和DQ6,在180°时钟相位发生采样。最后,对于DQ3和DQ7,在270°时钟相位发生采样。然后全部结果是8位初始化样本,其可与图3的查找表一起使用以确定读取延迟是什么。这又被用于确定何时使能DQS_enable80用于正常操作。替代地,在对应于图2B的第二实例72的实现中,其中2个位每个被采样4次,电路122可以仅需要被实现用于接口的两位,但是需要执行4次以使在0。、90°、180。和270°时钟相位中的每个采样每位。0053注意到在可选电路实现中,可以复制电路122用于接口的每个位,以使对于所有位逻辑是同样的。0054根据输入,初始化样本的输出连续地变化。在初始READ命令之后的预定时间,初始化样本是"有效的"。0055另一个实施例允许较大范围的等待时间。需要3位格雷码用于写入存储器的初始化模式以覆盖16位周期的延迟范围。不再可能用每位一个采样锁存来捕获在单个字节宽度接口中的3位的所有4个采样相位。需要12位宽度接口或者在分开的读取操作中可以顺序采样单独的格雷码位。0056现在参考图5,示出了被用于描述本发明实施例的时序图。在此实施例中,采用3位格雷码而不是上面所述的2位格雷码。例如,被写入存储器中的16个连续12位位置中的连续字节位置的格雷码可能如下<table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table>0057为了读出整个16个存储器位置,执行2个BL8(突发长度为8)READ命令。这被标识在命令序列200中,其中存在BL8READ201和第二BL8READ203。不是如图3所示情况使用由专用硬件实现的格雷计数器,以RTL实现格雷码计数器(未示)。在此情况下,格雷码计数器CK202使用第一READ命令201在0处开始计数。所接收的DQS在204示出。0058对于最小延迟情况(RL=3),总的以220标识,DQS在时钟计数为12时具有第一上升沿。所接收的DQ位的简写符号被标识为206;90度DQS时钟标识为208;DQS90的DQO(在上升沿上获得的样本)和DQ1(在下降沿上获得的样本)分别被标识为210和212。对于图示实例,假设初始化样本产生于时钟计数为40、41、42、43期间,其结果是之后存在标识为215的有效初始化样本。然后将该有效初始化样本与查找表一起使用以确定读取延迟是什么,随后确定何时使能DQS—enable。0059总的以222标识最大延迟情况。在此情况下,直到可适应的最大读取延迟之后的时钟计数为40之后才发生DQS90的上升沿。0060图6示出此实例的查找表。在此情况下,时序参考格雷码计数器202。0061图7是示出用于图5的实施例的输入DQ电路的实例的电路图。此电路基本与图4的电路相同。在此情况下,用于12位的釆样电路产生用于DQo,DQ4,DQ8的0。样本,用于DQ1;DQ5,DQ9的90°样本,用于DQ2,DQ6,DQ,o的180°样本,和用于DQ3,DQ7,DQn的270。样本。结果为可被用于在图6的查找表中查找合适的行的12位初始化样本。0062更普遍的,可使用N位格雷码。N-位格雷码具有2N个码字。在此情况下,存储器控制器通过将2N个码字中的每个写到2N"个连续地址中的一对地址中来将格雷码初始化序列写到存储器的预定位置。这可包括将N位写到2N"个地址中的每个,在这种情况下,以4个时钟相位釆样格雷码的每位。可选的,这可包括通过将g,、gl、gl、gl.....gn、gn、gn、gn写到地址对来将各自的格雷码码字gi、g2.....gn的位以4N位写到2"+1个地址的每个。在此情况下,以4个时钟相位釆样格雷码的每位包括接收4N个数据信号,和以第一时钟相位采样N个数据信号,以第二时钟相位采样另一个N个数据信号,以第三时钟相位釆样另一个N个数据信号,以第四时钟相位采样另一个N个数据信号。0063上面的详细描述已经集中于用于测量读耳又延迟的^/L制。已经确定了延迟是什么,图1的DQS使能电路32根据这样确定的延迟继续门控DQS信号。现在将参考图8A描述用于DQS使能电路32的具体电路的实例。这里假设通过接口从存储器接收DQS158和标记为DQS#160的DQS的反向二者。存在用于使图8A的DQS使能电路向后兼容这样的DDR存储器设计的电路180,其中仅存在DQS信号、且没有DQS弁,此处称为的DDRl,与具有二个信号的DDR2存储器不同。因此,在DDR1实现中,DQS^需要由存储器控制器产生以用于那种情况。电路180在DDR1和DDR2模式之间选择。剩余的电路182负责产生门控的DQS弁信号172(标记为dqsb—i)和门控的DQS信号173(标记为dqs—i)。如果不需要向后兼容,则电路180不是必要的。0064电路182具有第一D触发器144用于从控制器接收输入141,其在对应于由初始化样本确定的读取路径延迟的时间被给出,指示何时使能DQS。其还在140接收标记为CLK(N)的时钟输入,这指示控制器能够选择时钟相位用于此输入。触发器144产生输出dqs—enable—ff148。类似的,第二D触发器146从控制器接收输入143,其指示何时禁止DQS。第二D触发器146由时钟输入142时钟控制,时钟输入142与被用于时钟控制第一触发器144的时钟140之间相位相差180°。D触发器146产生dqs—disable—ff输出150。dqs—enable—ff148和dqs—disable—ff150的反向在与门152中组合,与门152的输出被连接到SR触发器154的S(设置)输入。dqs—disable—ff150的反向也被连接到SR触发器154的D输入。触发器154的Q输出是dqs—enable—i156,且这被连接到第一多路复用器170和第二多路复用器171的多路复用器选择输入。多路复用器170的两个输入包括DQS弁输入168和VDD169。多路复用器170的输出是dqsb—i,且这也被输入到SR触发器154的时钟输入。多路复用器171的两个输入包括DQS输入166和VSS177。多路复用器171的输出是dqs—i。0065现在参考图8B的时序图描述图8A电路的运行。图8B示出DQS166,DQS#168,dqs—enable—ff148,dqs—disable—ff150,dqs_enable_i156和dqsbj172中的每个的图。注意到和dqsb—i172同步使能dqs—i173。在发送读取命令之后的一些点,在由先前测量的读取延迟所确定的时间,在存储器控制器的控制下D触发器144的输入141变高。这由时钟输入140的上升沿时钟输入。对于图8B的实例,可以看到dqs—enable_ff178在270°时钟相位变高。当这变高,与门152的输出变高,且SR触发器154的设置输入又导致dqs—enable—i转变为高。在图8B中,可以看出dqs—enable—i156稍微在270°时钟相位之后转变为高。一旦dqs_enable—i156是高,多路复用器170的DQS#输入168被选择,则因此DQS弁出现在dqsb—i172上。当在随后的时间dqs—enable_ff148变低,SR触发器154的设置输入变低,但是因为D输入是dqs—disable—ff150的反向,所以D输入为高。从而,dqs—enable—i156到现在一直保持高。dqs—enable—ff148的上升沿和DQS166的第一上升沿之间的时间大于四分之一个时钟周期。这表示用于DQS的时序和使用主控制器的时序之间的漂移的容差。下述的电路用于检测何时大于90°的漂移已经发生,以使可以重新调整dqs一enable的时序。0066为了禁止DQS弁,在之后的一些时间在存储器控制器的控制下D触发器146的禁止输入143变高。这由比被用于时钟输入D触发器144的使能输入的时钟晚180°的时钟进行时钟输入。这产生了20dqs—disable—ff输出150,其反向输入被连接到SR触发器154的D输入。因此,在SR触发器154的时钟输入的下一个上升沿(即DQS弁的下一个上升沿),dqs—enable—i变低。这取消选择多路复用器170的DQS#输入168,且dqsb—i172转变为VDD。因此,在时序图中可以看到,在dqs—disable—ff变高后,直到dqsb—i的下一个上升沿,dqs—enablej变低。0067已经描述了用于产生多路复用器选择输入156的具体的电路,图8A中总地标识为197。更一般的,可以使用选择输入发生器电路,其设置选择输入以在数据选通使能的激活时选择数据选通信号,和设置选择输入以在数据选通禁止的激活时和跟随数据选通信号的下一个上升沿取消选择数据选通信号。0068电路180简单地提供了一种用于从DDR1实现的单个DQS输入158产生DQS#168和DQS166的才几制。DQS弁输入160对于DDR1实现不存在。电路180包括第一和第二多路复用器162、164。连接它们每个以接收DQS输入158和DQS弁输入160。多路复用器162总是选择DQS158。当DDR2为低,多路复用器164选择DQS输出168为DQS弁输入160。否则其从DQS158的反向产生。包括总是选择DQS158的多路复用器162确保DQS和DQS存上的相等的负载。0069根据从存储器控制器接收的时钟在存储器中产生DQS和DQS#。但是,到在存储器控制器处接收返回DQS时,通过存储器的电路和通过DQS输出的反向输出,此时钟已经从存储器控制器传送到存储器。结果是存在由存储器控制器接收的DQS和DQS弁输出和图8B的DQS使能的日于序和dqs—enable—ff、dqs_disable—ff、dqs—enable—i和dqsb—i的相应的时序之间的一些漂移。但是,更一般的,在任意DDRSDRAM实现中,DQS信号可被期望为关于主时钟稍许漂移。本发明的另一实施例提供用于检测此漂移的机制,特别用于检测何时漂移大于90°。一旦漂移已经达到90。,通过更新DQS使能和禁止信号的时序可改正此漂移。0070现在参考图9A,示出了由本发明的实施例提供的数据选通漂移检测器的电路图。所示的DQS输入l卯驱动2个D触发器191和193的时钟输入。触发器191的D输入从主DLL200接收0。时钟,而触发器192的D输入接收主DLL200的90°相位。第一触发器191的输出196被标记为漂移〈1〉,而第二触发器193的输出198被标记为漂移<0>,共同标记为"漂移输出"。0071参考图9B的时序图现在将描述图9A的电路的操作。示出的是0。时钟200、90。时钟202、DQS190和漂移〈1:0>196、198。当DQS190从0转变为1(上升沿),0°和90°时钟200、202的状态被锁存到漂移输出196、198。图9B中示出了可被锁存的内容的4个例子。在204处的第一个例子中,漂移输出196、198是"10"。在稍后的采样时刻206(DQS190的下一个上升沿)漂移采样仍是"10"。在稍后的采样时刻208,漂移输出196、198现在为"11"。在稍后的采样时刻210这再次为真。在采样时刻208漂移输出从"10"变化为"11"的事实表示已经发生漂移大于90°的事实。存储器控制器随后使用该信息以更新DQS使能和禁止时间。0072注意到图8A的DQS使能电路可以与用于确定读取延迟的任意机制一起使用。而且,图9A的数据选通漂移^^测器可被用于接收相对于主时钟漂移的DQS信号的任意电路。特殊应用可以在采用上述读取延迟确定方法和电路和/或上述DQS使能方案的电路中。0073已经描述了非常具体的漂移检测器电路。更一般的,提供第一电路,其与输入时钟信号同步的锁存主时钟的第一相位的第一值。在上面实例中,第一电路是D触发器,但是其它实现是可能的。存在与输入时钟信号同步的锁存主时钟的第二相位的第二值的第二电路。在上面实例中,第二电路是D触发器,但是其它实现是可能的。第一值或第二值中的变化指示输入时钟信号已经相对于主时钟源漂移了至少预定数量。对于所述的具体实例,第一时钟相位是基于主时钟的0°时钟,第二时钟相位是基于主时钟的90。时钟,预定数量是四分之一的时钟周期,但是通过合适的选择两个时钟的相位可以检测其它漂移。0074上面的具体实例涉及DDR1和DDR2。更一般的,本发明的实施例可被应用于所有使用双向数据选通的产业标准DDRDRAM,包括DDR,DDR2,DDR3和各种版本的GDDR。仍然更一4殳的,本发明的实施例可被应用于包括具有源同步时钟控制的双向读取/写入总线和双向数据选通的存储器。上述DQS是这样的双向数据选通的具体实例。在更一般的上下文中,提供数据选通使能电路以使能数据选通,DQS使能电路是这个的具体实例。0075它们也可^皮用于QDR和QDR2SRAM以通过门控数据时钟来节省内部时钟功率和实现时钟域跨越。0076而且,可以使用此处所述的方法和电路以确定读取延迟,用22于除了使能DQS外的目的。具体实例是确定漂移和在时钟边界上跨越数据。0077它们也可用在高速串行接口中。在上述的实施例中,为了简单,可以如图所示互相连接装置元件和电路。在本发明的实际应用中,对于半导体IC和DRAM装置,元件、电路等可直接互相连接。同样,元件、电路等也可通过对于半导体IC和DRAM装置的运行是必要的其它元件、电路等间接的互相连接。因此,在半导体IC和DRAM装置的实际的配置中,电路元件和装置被互相耦合(直接或间接的连接)。0078本发明的上述实施例仅意于为实例。不脱离仅由后附的权利要求书限定的本发明范围的情况下,本领域普通技术人员可以对具体实施例进4于改变、^'f改和变化。2权利要求1.一种用于控制同步存储器的方法,包括通过下述步骤建立所述存储器和存储器控制器之间的读取数据路径延迟所述存储器控制器将初始化序列写到所述存储器的预定位置;所述存储器控制器将读取命令发送到所述存储器以读取所述预定位置并接收所返回的数据信号;在发送所述读取命令后的预定时间,所述存储器控制器采样所返回的数据信号以产生初始化样本;使用所述初始化样本以确定所述存储器和所述存储器控制器之间的读取延迟。2.根据权利要求1所述的方法,进一步包括通过下述步骤在正在进行的基础上从存储器执行读取;发送读取命令;响应所述读取命令接收数据信号并与所述数据信号同步的接收数据选通信号;根据读取延迟使能所述数据选通信号。3.根据权利要求1和2中任一项所述的方法,其中采样所返回的数据信号包括-.以4个时钟相位采样才各雷码的每一位。4.根据权利要求3所述的方法,其中所述格雷码是具有2W个码字的N-位格雷码;所述存储器控制器将格雷码初始化序列写到存储器的预定位置包括将所述2N个码字中的每个写到2"+1个连续地址中的地址对。5.根据权利要求4所述的方法,其中将所述2N个码字写到2N+1个连续地址包括将N位写到所述2N+1个地址中的每个;以4个时钟相位采样所述格雷码的每位包括采样各自的读取信号,关于其以4个时钟相位写所述N-位格雷码的第n位,其中n=0,...,N-l。6.根据权利要求4所述的方法,其中将所述2N个码字写到2N"个连续地址包括通过将g,、gl、gl、gl,...,gn、gn、gn、gn写到地址对来将各自的格雷码码字g2.....gn的位以4N位写到2N"地址中的每个;以4个时钟相位釆样所述格雷码的每位包括响应所述读取命令,接收4N个数据信号作为所述所返回的数据信号;以第一时钟相位采样N个数据信号;以第二时钟相位采样另一个N个数据信号;以第三时钟相位采样另一个N个数据信号;和以第四时钟相位采样另一个N个数据信号。7.根据权利要求6所述的方法,其中N二2。8.根据权利要求6所述的方法,其中N-3。9.根据权利要求1至8中任一项所述的方法,进一步包括对于多个读取延迟中的每个,存储所期望的初始化样本;其中使用所述初始化序列以确定存储器和存储器控制器之间的读取延迟包括查找存储用于初始化序列的读取延迟。10.根据权利要求9所述的方法,其中,对于多个读取延迟中的每个,存储所期望的初始化序列包括对于每个读取延迟确定计数器的状态,并与所述初始化序列关联存储所述计数器状态,所述方法进一步包括在正在进行的基础上,对于每个读取命令,在发送读取命令之后开始所述计数器,并当所述码计数器到达对于所确定的读取延迟的计数器状态时使能所述数据选通。11.根据权利要求IO所述的方法,其中计数器是以四分之一时钟相位增加的硬件实现的格雷码计数器。12.根据权利要求IO所述的方法,其中计数器是以四分之一时钟相位增加的RTL计数器。13.根据权利要求1至12中任一项所述的方法,进一步包括在正在进行的基础上确定是否存在时钟漂移,且如果存在,更新所述读取延迟。14.根据权利要求1至13中任一项所述的方法,进一步包括禁止说明读取突发长度的数据选通信号和连续的读取命令。15.根据权利要求1至14中任一项所述的方法,进一步包括对于每个延迟存储指示何时使能所述数据选通的使能计数;存储指示何时禁止所述数据选通的禁止计数;和存储在0度还是180度时钟相位采样用于数据恢复的标识。16.根据权利要求1至15中任一项所述的方法,进一步包括重新调整读取数据信号的时间到RTL时钟。17.—种适用于实现用于控制存储器的方法的存储器控制器,所述存储器包括具有源同步时钟控制的双向读取/写入总线和双向数据选通,所述方法包括通过下述步骤测量所述存储器和所述存储器控制器之间的读取延迟所述存储器控制器将格雷码初始化序列写到存储器的预定位置;所述存储器控制器将读取命令发送到所述存储器以读取所述预定位置并接收所返回的数据信号;在发送所述读取命令后的预定时间,所述存储器控制器采样所返回的数据信号以产生初始化样本;使用所述初始化样本以确定所述存储器和所述存储器控制器之间的读耳又延迟。18.—种存储器控制器,用于控制包括具有源同步时钟控制的双向读取/写总线和双向数据选通的存储器,所述控制器包括读取延迟确定电路和数据选通使能电路;在初始化期间,所述读取延迟确定电路确定在发送读取命令到存储器和接收返回的数据信号之间的读取延迟,所述读取延迟确定电路包括在预定时间采样数据以产生初始化样本的电路,和存储关于所述初始化样本的每个排列的各自的读取延迟的表查找功能;所述数据选通使能电路适用于根据读取延迟门控所接收的DQS。19.根据权利要求18所述的存储器控制器,进一步包括下述电路中的至少一个用于在0。样本和180°样本之间选择的电路;和用于重新调整数据信号的时间到主时钟的电路。20.根据权利要求18和19中任一项所述的存储器控制器,其中所述表查找功能对于所述初始化序列的每个排列存储数据选通使能计数数据选通禁止计数;对于正常读取操作在0度还是180度采样;存储器。21.—种与包括具有源同步时钟控制的双向读取/写总线和双向数据选通的存储器一起使用的数据选通使能电路,所述数据选通使能电路包括用于接收具有上升和下降沿的数据选通信号的输入;用于产生所门控的数据选通信号的输出;根据选择输入门控所述数据选通信号的多路复用器;被连接以接收数据选通使能和数据选通禁止的选择输入发生器电路;其设置所述选择输入以在数据选通使能的激活时选择数据选通信号,且其设置所述选择输入以在数据选通禁止的激活时和跟随数据选通信号的下一个沿取消选择所述数据选通信号。22.根据权利要求21的数据选通使能电路,其中所述选择输入发生器电路包括接收所述数据选通使能的第一D触发器;接收所述数据选通禁止的第二D触发器;组合第一D触发器和第二D触发器的输出的与门;由所门控的数据选通信号时钟控制的SR触发器,所述SR触发器具有用于接收所述第二D触发器的输出的D输入,并具有用于接收与门的输出的S输入,并具有作为选择输入功能的Q输出,使得当使能输入变为激活时,所述选择输入不同步的选择所述数据选通信号,且当所述数据选通禁止输入变为激活时,所述选择输入在所述数据选通信号的下一个上升沿上将其反应。23.根据权利要求21和22中任一项所述的数据选通使能电路,进一步适用于使用所述选择输入产生所门控的反向数据选通信号。24.根据权利要求23所述的数据选通使能电路,进一步包括用于在接收数据选通信号并产生反向数据选通信号的运行的第一模式和接收数据选通信号和反向数据选通信号的运行的第二模式之间选择的电路。25.—种漂移检测器电路,包括用于与输入时钟信号同步的锁存主时钟的第一时钟相位的第一值的第一电路;用于与输入时钟信号同步的锁存主时钟的第二时钟相位的第二值的第二电路;其中第一值或第二值中的变化指示输入时钟信号相对于主时钟源已经漂移了至少预定数量。26.根据权利要求25的漂移检测器电路,其中第一电路包括第一D触发器,连接第一D触发器以接收到第一D触发器的第一时钟输入的输入时钟信号,第一D触发器具有接收主时钟的第一时钟相位的第一D输入,并具有产生第一值的第一Q输出;和第二电路包括第二D触发器,连接第二D触发器以接收到第二D触发器的第二时钟输入的输入时钟信号,第二D触发器具有接收主时钟的第二时钟相位的第二D输入,并具有产生第二值的第二Q输出。27.根据权利要求25和26中任一项所述的漂移检测器电路,其中第一时钟相位是基于主时钟的0°时钟,且第二时钟相位是基于主时钟的90°时钟,且所述预定数量是四分之一时钟周期。28.根据权利要求26所述的漂移检测器电路,包括主从DLL以从主时钟产生第一时钟相位和第二时钟相位。全文摘要本发明提供一种快照数据训练的方法,以在单个读取操作中确定DQS使能信号的最优时序。这是通过首先将格雷码计数序列写到存储器和随后在单个突发中将其读回来实现的。控制器以发出命令的时间的固定间隔采样读取突发以确定循环延迟。简单的真值表查找确定最优的DQS使能时序用于正常读取。有利的,在正常读取操作期间,所使能的DQS信号的第一正边沿被用于采样在每次发出命令使能的计数器。如果计数器样本变化,指示已经发生时序漂移,可调整DQS使能信号以补偿漂移并维持处于DQS前同步码中心的位置。此技术也可被应用于使用反复方法以在上电时确定DQS使能时序的系统。本发明的另一个实施例是基于计数器的DQS锁存样本的简单、低等待时间时钟域跨越电路。文档编号G11B27/10GK101479802SQ200780024668公开日2009年7月8日申请日期2007年5月7日优先权日2006年6月30日发明者P·吉利厄姆,R·麦肯齐申请人:莫塞德技术公司