CN116665731B - 一种ddr存储器采样校准方法及ddr存储器 - Google Patents
一种ddr存储器采样校准方法及ddr存储器 Download PDFInfo
- Publication number
- CN116665731B CN116665731B CN202310963996.5A CN202310963996A CN116665731B CN 116665731 B CN116665731 B CN 116665731B CN 202310963996 A CN202310963996 A CN 202310963996A CN 116665731 B CN116665731 B CN 116665731B
- Authority
- CN
- China
- Prior art keywords
- sampling
- readclksel
- data
- parameter
- data bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005070 sampling Methods 0.000 title claims abstract description 261
- 230000015654 memory Effects 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 17
- 230000003111 delayed effect Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 4
- 238000003708 edge detection Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/023—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Dram (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种DDR存储器采样校准方法及DDR存储器,该方法包括:初始化readclksel;B、接收读数据和第一采样时钟,根据readclksel暂定第一采样时钟的有效区间;对该区间内第一采样时钟的上下边沿数进行检测;若上下边沿数错误,判断readclksel是否已遍历完;若未完,调整readclksel后返回B;否则执行F;E、若上下边沿数正确,记录readclksel并判断readclksel是否已遍历完;若未完,调整readclksel后返回B,否则执行F;F、根据所记录的readclksel确定最终有效区间,并依此生成第二采样时钟进行采样。本发明可提高DDR存储器的采样精度。
Description
技术领域
本发明属于DDR(Double Data Rate,双倍数据速率)存储器领域,具体涉及一种DDR存储器采样校准方法及DDR存储器。
背景技术
DDR存储器中对读数据(DQ)进行采样的过程大致包括:接收DQ和采样时钟(DQS),将DQS偏转90°生成DQSR90,根据DQSR90对DQ进行采样。
在实际情况中,同一组DQS中的脉冲到达DDR控制器的时间有所偏差,相应的会导致DQSR90出现偏差,最终导致对DQ的采样结果中各数据比特之间的间隔也有所偏差,影响采样精度,因此有必要在DDR存储器中进行采样校准。
现有技术中,DDR协议中规定了DDR存储器从接收读命令到读数据发送之间有一个RL(Read Latency,读延迟)时序间隔,在此期间DDR控制器会框出DQS的有效区间,当一组DQS到达时,会检测有效区间内DQS的上下边沿,如果有效区间内DQS的上下边沿数正确,则直接将有效区间内的DQS翻转90°得到DQSR90;如果不正确,则在时间维度上调整DQS直至有效区间内DQS的上下边沿数正确,然后将调整后的有效区间内的DQS翻转90°得到DQSR90。
然而,仅确保有效区间内DQS的上下边沿数正确,并不能确保最终的采样结果足够精确。
发明内容
为了解决现有技术中所存在的上述问题,本发明提供了一种DDR存储器采样校准方法及DDR存储器。
本发明要解决的技术问题通过以下技术方案实现:
一种DDR存储器采样校准方法,包括:
A、初始化readclksel参数;该readclksel参数用于调整DDR存储器的第一采样时钟的有效区间;
B、发送读命令以接收读数据和第一采样时钟,并根据当前的readclksel参数暂定第一采样时钟的有效区间;
C、对当前有效区间内第一采样时钟的上下边沿数进行检测;
D、若第一采样时钟的上下边沿数错误,则判断readclksel参数可调整的有效区间是否已全部取完;若未取完,则调整readclksel参数的取值,然后返回步骤B;若已取完,执行步骤F;
E、若第一采样时钟的上下边沿数正确,则记录当前的readclksel参数,并判断readclksel参数可调整的有效区间是否已全部取完;若未取完,则调整readclksel参数的取值,然后返回步骤B;若已取完,执行步骤F;
F、根据所记录的readclksel参数确定最终有效区间,并将最终有效区间内的第一采样时钟翻转90°得到校准后的第二采样时钟,以利用所述第二采样时钟对读数据进行采样。
可选地,所述初始化readclksel参数,包括:初始化readclksel参数为最小取值;
所述调整readclksel参数的取值,包括:按预设步进将readclksel参数调大一档;
所述根据所记录的readclksel参数确定最终有效区间,包括:
取最早记录的readclksel参数和最晚记录的readclksel参数两者的中间值,作为最终有效区间。
可选地,所述方法还包括:
当readclksel参数可调整的有效区间已全部取完,且没有记录任何readclksel参数时,执行数据写读;
根据数据写读结果对第一采样时钟的有效区间或第一采样时钟做延迟处理,然后再次执行步骤A及后续步骤。
可选地,在利用所述第二采样时钟对读数据进行采样之前,所述方法还包括:
G、在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿进行采样。
可选地,在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿位置进行采样,包括:
判断每个采样脉冲对准的数据比特是否位于该采样脉冲的正确采样范围的边沿位置;如果有数据比特位于边沿位置,则在时间维度上挪动该数据比特,使其位于正确采样范围内且不位于边沿位置。
可选地,在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿位置进行采样,包括:
针对每个数据比特,在时间维度上将其挪动至其对准的采样脉冲的正确采样范围的左边沿;继续在时间维度上将该数据比特挪动至其对准的采样脉冲的正确采样范围的右边沿,并记录将该数据比特从左边沿挪动到右边沿的挪动步数;继续在时间维度上将该数据比特延迟一半所述挪动步数。
可选地,在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿位置进行采样,包括:
判断每个采样脉冲对准的数据比特是否位于该采样脉冲的正确采样范围的边沿位置;
如果有数据比特位于正确采样范围的左边沿,则以最小步数在时间维度上向右挪动该数据比特,使其位于正确采样范围内;
如果有数据比特位于正确采样范围的右边沿,则以最小步数在时间维度上向左挪动该数据比特,使其位于正确采样范围内且靠近右边沿;
在确保所有数据比特均位于正确采样范围内后,针对每个数据比特,在时间维度上将其挪动至正确采样范围的左边沿;继续在时间维度上将该数据比特挪动至正确采样范围的右边沿,并记录将该数据比特从左边沿挪动到右边沿的挪动步数;继续在时间维度上将该数据比特延迟一半所述挪动步数。
可选地,所述方法还包括:
当一半所述挪动步数超出数据比特的可挪动范围时,执行数据写读;
根据数据写读结果对读数据做延迟处理,然后再次执行步骤G。
可选地,所述方法还包括:
监测数据比特的第一标志位和第二标志位,以在所述第一标志位和/或所述第二标志位变为有效时停止挪动数据比特;
监测数据比特的第三标志位;当所述第三标志位变为有效时,执行数据写读;根据数据写读结果对第二采样时钟或读数据做延迟处理,然后再次执行步骤G;
其中,所述第一标志位有效表示数据比特位于正确采样范围的左边沿,所述第二标志位有效表示数据比特位于正确采样范围的右边沿;所述第三标志位在一半所述挪动步数超出数据比特的可挪动范围时有效,以及在所述第一标志位和所述第二标志位同时有效时有效。
本发明还提供了一种DDR存储器,所述DDR存储器中存放有计算机程序,当所述计算机程序被执行时,实现上述任一种DDR存储器采样校准方法。
本发明提供的DDR存储器采样校准方法中,利用readclksel参数对DDR存储器的第一采样时钟的有效区间进行遍历,并相应记录第一采样时钟的上下边沿数正确的所有情况下的readclksel参数,然后根据这些readclksel参数确定最终有效区间,相较于现有技术仅使用一种有效区间的方式来生成DQSR90的方式来说,本发明综合考虑了所有的有效区间,并据此确定更为合适的最终有效区间,这样可以有效的摒除DQS上的毛刺,获得更为干净的DQS,从而生成更精确的DQSR90来对读数据进行采样,因此本发明可以提高最终的采样结果的准确率。
附图说明
图1是本发明实施例提供的一种DDR存储器采样校准方法的流程图;
图2是本发明实施例提供的另一种DDR存储器采样校准方法的流程图;
图3是DQSR90在DQ边沿采样从而导致采样错误的示意图;
图4是采样脉冲对数据比特的左边沿进行采样的示意图;
图5是采样脉冲对数据比特的右边沿进行采样的示意图;
图6是采样脉冲对数据比特的中间位置进行采样的示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
为了提高DDR存储器的采样精度,本发明实施例提供了一种DDR存储器采样校准方法,该方法应用于DDR存储器。
如图1所示,本发明实施例提供的DDR存储器采样校准方法包括以下步骤:
A、初始化readclksel参数;该readclksel参数用于调整DDR存储器的第一采样时钟的有效区间;
具体的,该readclksel参数具有多个取值,每种取值对应第一采样时钟的一个有效区间。因此调整readclksel参数的取值,便可以达到调整第一采样时钟的有效区间的目的。
B、发送读命令以接收读数据和第一采样时钟,并根据当前的readclksel参数暂定第一采样时钟的有效区间;
这里,读数据即DQ,第一采样时钟即DQS。根据当前的readclksel参数暂定第一采样时钟的有效区间,即是将当前的readclksel参数对应的有效区间暂定为第一采样时钟的有效区间。
C、对当前有效区间内第一采样时钟的上下边沿数进行检测。
这里,关于对采样时钟的边沿数进行检测的方式可参见相关现有技术,本发明实施例不做赘述。
D、若第一采样时钟的上下边沿数错误,则判断readclksel参数可调整的有效区间是否已全部取完;
若未取完,则调整readclksel参数的取值,然后返回步骤B;若已取完,执行步骤F。
E、若第一采样时钟的上下边沿数正确,则记录当前的readclksel参数,并判断readclksel参数可调整的有效区间是否已全部取完;
若未取完,则调整readclksel参数的取值,然后返回步骤B;若已取完,执行步骤F。
F、根据所记录的readclksel参数确定最终有效区间,并将最终有效区间内的第一采样时钟翻转90°得到校准后的第二采样时钟,以利用第二采样时钟对读数据进行采样。
这里,第二采样时钟即DQSR90。
该步骤F中,根据所记录的readclksel参数确定最终有效区间的具体实现方式存在多种。
示例性的,在一种实现方式中,上述步骤A中初始化readclksel参数,可以包括:初始化readclksel参数为最小取值;上述步骤D和步骤E中调整readclksel参数的取值,可以包括:按预设步进将readclksel参数调大一档;相应的,该步骤F中根据所记录的readclksel参数确定最终有效区间,可以包括:取最早记录的readclksel参数和最晚记录的readclksel参数两者的中间值,作为最终有效区间。
举例而言,DDR控制器输出read信号与readclksel参数;该read信号即读命令,该read信号用于生成dqs_ena信号,该dqs_ena信号是DQS的门控使能信号,用于在时间轴上框出DQS的有效区间;readclksel参数用于调整dqs_ena信号,以便调整有效区间的位置,该readclksel参数初始为0,每次调整readclksel参数都给readclksel参数加1,相应的将有效区间移动1/4,readclksel参数总的可调整范围为15/4T,因此readclksel参数的最大取值为15,最小取值为0,可调整的有效区间一共有16种。T表示第一采样时钟的时钟周期。
其中,每设定readclksel参数的一种取值时,dqs_ena信号根据该取值对应的有效区间框出DQS的有效区间;然后,对该有效区间内DQS的上下边沿个数进行检测,如果数量正确,则记录当前的readclksel参数,并将readclksel参数+1,然后返回步骤B继续迭代,直到readclksel参数等于15时停止迭代。如果数量不正确,则直接将readclksel参数+1,并返回步骤B继续迭代,同样直到readclksel参数等于15时停止迭代。readclksel参数等于15后,进入步骤F,此时记录的readclksel参数的取值可以包括0~15中的多个数值,通常为4个左右。然后取其中最早记录的数值以及最晚记录的数值两者的中间值,该中间值对应的dqs_ena信号所框出的有效区间即是最终有效区间。
在另一种实现方式中,上述步骤A中初始化readclksel参数,可以包括:初始化readclksel参数为最大取值;上述步骤D和步骤E中调整readclksel参数的取值,可以包括:按预设步进将readclksel参数调小一档;相应的,该步骤F中根据所记录的readclksel参数确定最终有效区间,可以包括:取最早记录的readclksel参数和最晚记录的readclksel参数两者的中间值,作为最终有效区间。
本发明实施例提供的DDR存储器采样校准方法中,利用readclksel参数对DDR存储器的第一采样时钟的有效区间进行遍历,并相应记录第一采样时钟的上下边沿数正确的所有情况下的readclksel参数,然后根据这些readclksel参数确定最终有效区间,相较于现有技术仅使用一种有效区间的方式来生成DQSR90的方式来说,本发明实施例综合考虑了所有有效区间,并据此确定更为合适的最终有效区间,这样可以有效的摒除DQS上的毛刺,获得更为干净的DQS,从而生成更精确的DQSR90来对读数据进行采样,因此本发明实施例可以提高最终的采样结果的准确率。
另外,当readclksel参数可调整的有效区间已全部取完,且没有记录任何readclksel参数时,本发明实施例提供的DDR存储器采样校准方法,还可以包括:执行数据写读;根据数据写读结果对第一采样时钟的有效区间或第一采样时钟做延迟处理;然后再次执行步骤A及后续步骤。
具体而言,如果数据写读结果表明第一采样时钟滞后于有效区间过多,则可以给有效区间增加延迟,从而减少两者之间的差距;如果写读结果表明有效区间滞后于第一采样时钟过多,则可以给第一采样时钟增加延迟,从而减少两者之间的差距。
在一个实施例中,如图2所示,在利用第二采样时钟对读数据进行采样之前,本发明实施例提供的DDR存储器采样校准方法,还可以包括:
G、在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿进行采样。
可以理解的是,即使前期已经通过调整第一采样时钟的有效区间生成了更为精确的第二采样时钟,但是仍无法杜绝第二采样时钟的采样脉冲对数据比特的边沿进行采样的情况。正常情况下,对数据比特的边沿进行采样并不影响采样结果的正确性。但是如果数据比特的信号电平波动较大的情况下,例如在上升沿或下降沿处产生毛刺的情况,那么在边沿位置进行采样,便很有可能采样错误,如图3所示。因此,本发明实施例在利用第二采样时钟对读数据进行采样之前,通过在时域维度上进一步对读数据进行调整,将其调整到采样脉冲的最优采样位置,从而避免采样错误的情况产生。
具体的,该步骤G中在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿进行采样的具体实现方式存在多种。
示例性的,在第一种实现方式中,在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿进行采样,可以包括:
判断每个采样脉冲对准的数据比特是否位于该采样脉冲的正确采样范围的边沿位置;如果有数据比特位于边沿位置,则在时间维度上挪动该数据比特,使其位于正确采样范围内且不位于边沿位置。
其中,采样脉冲正确采样是指:在采样脉冲不动的情况下,其对准的数据比特在时间轴上前后移动时,采样脉冲对该数据比特的采样结果稳定不变。因此,采样脉冲的正确采样范围其实是采样脉冲对其对准的数据比特进行采样时,在采样正确的前提下,该数据比特可前后移动的范围。
在第二种实现方式中,在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿进行采样,可以包括:
针对每个数据比特,在时间维度上将其挪动至其对准的采样脉冲的正确采样范围的左边沿;继续在时间维度上将该数据比特挪动至其对准的采样脉冲的正确采样范围的右边沿,并记录将该数据比特从左边沿挪动到右边沿的挪动步数;继续在时间维度上将该数据比特延迟该挪动步数的一半。
参见图4~图5所示,Clock表示第二采样时钟,del_mid表示读数据,del_minus表示将del_mid在时间轴上向前挪动时形成的一组新数据,del_plus表示将del_mid在时间轴上向后挪动时形成的另一组新数据。其中,del_mid以一定的挪动步长进行挪动,挪动过程中,采样脉冲对del_minus和del_mid同时进行连续采样,一开始采样结果是一致的,随着del_minus和del_mid之间的间隔越来越远,在某一时刻采样脉冲对del_minus和del_mid的采样结果产生了不一致,此时采样脉冲对准的数据比特就到达了正确采样范围的左边沿,如图4所示。同理,在挪动del_mid的过程中,采样脉冲对del_mid和del_plus同时进行连续采样,一开始采样结果是一致的,随着del_mid和del_plus之间的间隔越来越远,在某一时刻采样脉冲对del_mid和del_plus的采样结果产生了不一致,此时采样脉冲对准的数据比特就到达了正确采样范围的右边沿,如图5所示。记录数据比特从左边沿挪动到右边沿的挪动步数,然后将数据比特延迟该挪动步数的一半,便可以将数据比特调整到采样脉冲的正确采样范围的中间,如图6所示。
可以理解的是,在理想情况下,第二采样时钟的采样脉冲恰好对准的是数据比特的中间位置,这样采样准确性是最高的。然而在实际应用中,由于读路径上DQS和DQ间的负载不均衡,导致两者之间的延迟发生了改变,此时便可以利用该第二种实现方式补偿读路径上DQS和DQ间的负载不均衡,从而使第二采样时钟的采样脉冲恰好对准数据比特的中间位置,实现正确采样。
另外,有些极端情况下,由于读路径上DQS和DQ间的负载不均衡问题严重,读来的数据比特有可能位于第二采样时钟的正确采样范围之外,却又十分靠近正确采样范围的边沿位置。此时,由于该数据比特十分靠近正确采样范围的边沿位置,因此如果边沿检测窗口偏大,则该数据比特就会被认为已经位于正确采样范围的左边沿或右边沿,此时按照第二种实现方式便会将该数据比特直接向另一边沿挪动,这样统计出来的挪动步数就会偏多;相应的,按照统计出来的挪动步数的一半挪动数据比特时,就会导致数据比特延迟过多,反而导致采样脉冲对不准数据比特的中间位置。因此,为了避免这种情况发生,上述步骤G可以进一步优化为如下所示的过程:
判断每个采样脉冲对准的数据比特是否位于该采样脉冲的正确采样范围的边沿位置;
如果有数据比特位于其对准的采样脉冲的正确采样范围的左边沿,则以最小步数在时间维度上向右挪动该数据比特,使其位于正确采样范围内;
如果有数据比特位于其对准的采样脉冲的正确采样范围的右边沿,则以最小步数在时间维度上向左挪动该数据比特,使其位于正确采样范围内;
在确保所有数据比特均位于正确采样范围内后,针对每个数据比特,在时间维度上将其挪动至正确采样范围的左边沿;继续在时间维度上将该数据比特挪动至正确采样范围的右边沿,并记录将该数据比特从左边沿挪动到右边沿的挪动步数;继续在时间维度上将该数据比特延迟该挪动步数的一半。
由此,先按照挪动步长将数据比特移动到正确采样范围内的边沿位置,然后再从左边沿移动到右边沿,从而统计出更为准确的挪动步数,确保采样脉冲能够对准数据比特的中间位置进行采样。
另外,在图3所示实施例的基础上,如果在将数据比特延迟一半挪动步数时发现该一半挪动步数超出了数据比特的可挪动范围时,本发明实施例提供的DDR存储器采样校准方法,还可以包括:执行数据写读;根据数据写读结果对读数据做延迟处理;然后再次执行步骤G。
具体的,如果数据写读结果表明第二采样时钟滞后于读数据过多,则可以给读数据增加延迟,从而减少两者之间的差距;如果写读结果表明有读数据滞后于第二采样时钟过多,则可以给读数据减少延迟,从而减少两者之间的差距。
其中,数据比特的可挪动范围是1/4T±window/2。也就是说,在将数据比特在时间轴上向前挪动的过程中,当其对应的采样脉冲比该数据比特早1/4T(-window/2)时,数据比特就到了正确采样范围的左边沿,当该数据比特比其对应的采样脉冲早1/4T(-window/2)时,该数据比特就到了正确采样范围的右边沿。其中,window是DDR的边沿检测窗口,其大小可以根据DDR的读写速率调整,当读写速率较快时,window可以设置得小一些,这是因为读写速率快时时钟周期T小,所以想要可挪动范围大一些,就要把window设置得小一点;反之,当读写速率慢时,window可以设置得大一些。
可选地,在一种实现方式中,本发明实施例提供的DDR存储器采样校准方法,还可以包括:
(1)监测数据比特的第一标志位和第二标志位,以在第一标志位和/或第二标志位变为有效时停止挪动数据比特;
(2)监测数据比特的第三标志位;当第三标志位变为有效时,执行数据写读;根据数据写读结果对第二采样时钟或读数据做延迟处理,然后再次执行步骤G。
其中,第一标志位有效表示数据比特位于正确采样范围的左边沿,第二标志位有效表示数据比特位于正确采样范围的右边沿。
例如,在关于步骤G的第二种和第三种实现方式中,在时间维度上挪动数据比特时,便可以通过监测第一标志位的方式来确定是否已将数据比特挪动至左边沿,以及通过监测第二标志位的方式来确定是否已将数据比特挪动至右边沿。当然,在关于步骤G的第一种实现方式中,也可以通过监测第一标志位和第二标志位的方式来确定是否将数据比特挪进了正确采样范围内。
第三标志位有效的情况包括两种,一种情况是步骤G中在时间维度上将该数据比特延迟一半挪动步数时,如果该一半挪动步数超出数据比特的可挪动范围时,则第三标志位变为有效;另一种情况则是在第一标志位和第二标志位同时有效时,该第三标志位变为有效。
在实际应用中,并不排除DDR控制器检测到第一标志位和第二标志位同时有效的异常情况产生,例如当读数据的信号质量不太稳定、信号质量很差时,会有glitch(差错)或毛刺出现。这种异常情况下,会对校准造成影响,无法进行正常准确的校准,因此继续挪动数据比特是没有必要的,故而可以停止挪动数据比特。
在一个优选的示例中,在利用第二采样时钟对读数据进行采样之前,针对每个数据比特,可以首先确认其第一标志位或第二标志位是否被拉高,这里假设第一标志位和第二标志位高电平有效;如果有,则表示该数据比特目前位于正确采样范围的边沿位置,因此先将该数据比特以最小步数挪动至该正确采样范围之内,此时第二标志位拉低。在所有数据比特均位于正确采样范围后,针对每个数据比特,通过增加采样延迟的方式,使该数据比特相对于其对准的采样脉冲向左挪动,直到其第一标志位被拉高;记录此时设置的采样延迟的数值为delay1。然后,通过减少采样延迟的方式,使该数据比特相对于其对准的采样脉冲向右挪动,直到其第二标志位被拉高,记录此时设置的采样延迟的数值为delay2;用delay2-delay1得到从左到右的挪动步数。然后,恢复第二采样时钟,将数据比特延迟该挪动步数的一半,便可使采样脉冲对准数据比特的中间位置。
基于同一发明构思,本发明实施例还提供了一种DDR存储器,该DDR存储器中存放有计算机程序,当该计算机程序被执行时,实现上述的任一种DDR存储器采样校准方法。
本发明实施例提供的DDR存储器,首先通过调整DQS的有效区间,生成更为精确的DQSR90;然后,通过调整DQ的数据比特,将数据比特调整到最佳的采样位置,确保一组DQ之间的间隔不会过大,避免在数据比特的边沿位置进行采样,提高了采样准确性。
本发明还提供了一种计算机可读存储介质。在该计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时,实现上述任一种DDR存储器采样校准方法所述的方法步骤。
可选地,该计算机可读存储介质可以为非易失性存储器(Non-Volatile Memory,NVM),例如为至少一个磁盘存储器。
可选的,该计算机可读存储介质还可以是至少一个位于远离处理器的存储装置。
在本发明的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一种DDR存储器采样校准方法所述的方法步骤。
需要说明的是,对于DDR存储器存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与本发明的一些方面相一致的装置和方法的例子。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图以及公开内容,可理解并实现所述公开实施例的其他变化。在本发明的描述中,“包括”一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况,“多个”的含义是两个或两个以上,除非另有明确具体的限定。此外,相互不同的实施例中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式,这里将它们都统称为“模块”或“系统”。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种DDR存储器采样校准方法,其特征在于,包括:
A、初始化readclksel参数;该readclksel参数用于调整DDR存储器的第一采样时钟的有效区间;
B、发送读命令以接收读数据和第一采样时钟,并根据当前的readclksel参数暂定第一采样时钟的有效区间;
C、对当前有效区间内第一采样时钟的上下边沿数进行检测;
D、若第一采样时钟的上下边沿数错误,则判断readclksel参数可调整的有效区间是否已全部取完;若未取完,则调整readclksel参数的取值,然后返回步骤B;若已取完,执行步骤F;
E、若第一采样时钟的上下边沿数正确,则记录当前的readclksel参数,并判断readclksel参数可调整的有效区间是否已全部取完;若未取完,则调整readclksel参数的取值,然后返回步骤B;若已取完,执行步骤F;
F、根据所记录的readclksel参数确定最终有效区间,并将最终有效区间内的第一采样时钟翻转90°得到校准后的第二采样时钟,以利用所述第二采样时钟对读数据进行采样;
在利用所述第二采样时钟对读数据进行采样之前,所述方法还包括:在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿进行采样;
所述在时域维度上挪动读数据的数据比特,以避免第二采样时钟的采样脉冲在数据比特的边沿位置进行采样,包括:
针对每个数据比特,在时间维度上将其挪动至其对准的采样脉冲的正确采样范围的左边沿;继续在时间维度上将该数据比特挪动至其对准的采样脉冲的正确采样范围的右边沿,并记录将该数据比特从左边沿挪动到右边沿的挪动步数;继续在时间维度上将该数据比特延迟一半所述挪动步数;
或者,
判断每个采样脉冲对准的数据比特是否位于该采样脉冲的正确采样范围的边沿位置;如果有数据比特位于正确采样范围的左边沿,则以最小步数在时间维度上向右挪动该数据比特,使其位于正确采样范围内;如果有数据比特位于正确采样范围的右边沿,则以最小步数在时间维度上向左挪动该数据比特,使其位于正确采样范围内且靠近右边沿;在确保所有数据比特均位于正确采样范围内后,针对每个数据比特,在时间维度上将其挪动至正确采样范围的左边沿;继续在时间维度上将该数据比特挪动至正确采样范围的右边沿,并记录将该数据比特从左边沿挪动到右边沿的挪动步数;继续在时间维度上将该数据比特延迟一半所述挪动步数。
2.根据权利要求1所述的DDR存储器采样校准方法,其特征在于,
所述初始化readclksel参数,包括:初始化readclksel参数为最小取值;
所述调整readclksel参数的取值,包括:按预设步进将readclksel参数调大一档;
所述根据所记录的readclksel参数确定最终有效区间,包括:
取最早记录的readclksel参数和最晚记录的readclksel参数两者的中间值,作为最终有效区间。
3.根据权利要求1所述的DDR存储器采样校准方法,其特征在于,所述方法还包括:
当readclksel参数可调整的有效区间已全部取完,且没有记录任何readclksel参数时,执行数据写读;
根据数据写读结果对第一采样时钟的有效区间或第一采样时钟做延迟处理,然后再次执行步骤A及后续步骤。
4.根据权利要求1所述的DDR存储器采样校准方法,其特征在于,所述方法还包括:
当一半所述挪动步数超出数据比特的可挪动范围时,执行数据写读;
根据数据写读结果对读数据做延迟处理,然后再次执行步骤G。
5.根据权利要求1所述的DDR存储器采样校准方法,其特征在于,所述方法还包括:
监测数据比特的第一标志位和第二标志位,以在所述第一标志位和/或所述第二标志位变为有效时停止挪动数据比特;
监测数据比特的第三标志位;当所述第三标志位变为有效时,执行数据写读;根据数据写读结果对第二采样时钟或读数据做延迟处理,然后再次执行步骤G;
其中,所述第一标志位有效表示数据比特位于正确采样范围的左边沿,所述第二标志位有效表示数据比特位于正确采样范围的右边沿;所述第三标志位在一半所述挪动步数超出数据比特的可挪动范围时有效,以及在所述第一标志位和所述第二标志位同时有效时有效。
6.一种DDR存储器,其特征在于,所述DDR存储器中存放有计算机程序,当所述计算机程序被执行时,实现如权利要求1~5任一项所述的DDR存储器采样校准方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963996.5A CN116665731B (zh) | 2023-08-02 | 2023-08-02 | 一种ddr存储器采样校准方法及ddr存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310963996.5A CN116665731B (zh) | 2023-08-02 | 2023-08-02 | 一种ddr存储器采样校准方法及ddr存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116665731A CN116665731A (zh) | 2023-08-29 |
CN116665731B true CN116665731B (zh) | 2023-10-03 |
Family
ID=87710189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310963996.5A Active CN116665731B (zh) | 2023-08-02 | 2023-08-02 | 一种ddr存储器采样校准方法及ddr存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116665731B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446841A (zh) * | 2008-12-01 | 2009-06-03 | 炬才微电子(深圳)有限公司 | 确定存储器控制器时钟校准值的方法及系统 |
CN102347081A (zh) * | 2010-07-30 | 2012-02-08 | 联芯科技有限公司 | 用于ddr控制器中dqs延迟的相位校准方法及装置 |
CN107093451A (zh) * | 2017-03-22 | 2017-08-25 | 建荣半导体(深圳)有限公司 | Ddr sdram控制电路、ddr sdram芯片、pcb板及电子设备 |
CN108922571A (zh) * | 2018-08-02 | 2018-11-30 | 珠海市微半导体有限公司 | 一种ddr内存的读数据信号处理电路及读数据处理方法 |
US10297311B1 (en) * | 2018-01-30 | 2019-05-21 | Cadence Design Systems, Inc. | Systems and methods for memory protocol training |
CN110428856A (zh) * | 2019-07-29 | 2019-11-08 | 珠海市一微半导体有限公司 | 一种用于读写ddr内存的延时参数优化方法和系统 |
CN111128269A (zh) * | 2019-11-21 | 2020-05-08 | 深圳市国微电子有限公司 | 一种ddr比特延迟对齐方法、装置及存储介质 |
CN113626352A (zh) * | 2021-07-01 | 2021-11-09 | 珠海全志科技股份有限公司 | 内存控制器的读取校准方法、计算机装置和可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10034852A1 (de) * | 2000-07-18 | 2002-02-07 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Einlesen und zur Überprüfung der zeitlichen Lage von aus einem zu testenden Speicherbaustein ausgelesenen Datenantwortsignalen |
US8661285B2 (en) * | 2008-06-06 | 2014-02-25 | Uniquify, Incorporated | Dynamically calibrated DDR memory controller |
US9431091B2 (en) * | 2008-06-06 | 2016-08-30 | Uniquify, Inc. | Multiple gating modes and half-frequency dynamic calibration for DDR memory controllers |
US9105327B2 (en) * | 2013-04-12 | 2015-08-11 | Arm Limited | Memory controller using a data strobe signal and method of calibrating data strobe signal in a memory controller |
US10580476B2 (en) * | 2018-01-11 | 2020-03-03 | International Business Machines Corporation | Simulating a single data rate (SDR) mode on a dual data rate (DDR) memory controller for calibrating DDR memory coarse alignment |
CN108646984B (zh) * | 2018-05-16 | 2020-01-03 | 华为技术有限公司 | 一种dqs位置调整方法和装置 |
-
2023
- 2023-08-02 CN CN202310963996.5A patent/CN116665731B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446841A (zh) * | 2008-12-01 | 2009-06-03 | 炬才微电子(深圳)有限公司 | 确定存储器控制器时钟校准值的方法及系统 |
CN102347081A (zh) * | 2010-07-30 | 2012-02-08 | 联芯科技有限公司 | 用于ddr控制器中dqs延迟的相位校准方法及装置 |
CN107093451A (zh) * | 2017-03-22 | 2017-08-25 | 建荣半导体(深圳)有限公司 | Ddr sdram控制电路、ddr sdram芯片、pcb板及电子设备 |
US10297311B1 (en) * | 2018-01-30 | 2019-05-21 | Cadence Design Systems, Inc. | Systems and methods for memory protocol training |
CN108922571A (zh) * | 2018-08-02 | 2018-11-30 | 珠海市微半导体有限公司 | 一种ddr内存的读数据信号处理电路及读数据处理方法 |
CN110428856A (zh) * | 2019-07-29 | 2019-11-08 | 珠海市一微半导体有限公司 | 一种用于读写ddr内存的延时参数优化方法和系统 |
CN111128269A (zh) * | 2019-11-21 | 2020-05-08 | 深圳市国微电子有限公司 | 一种ddr比特延迟对齐方法、装置及存储介质 |
CN113626352A (zh) * | 2021-07-01 | 2021-11-09 | 珠海全志科技股份有限公司 | 内存控制器的读取校准方法、计算机装置和可读存储介质 |
Non-Patent Citations (2)
Title |
---|
A 256-Mb Double-Data-Rate SDRAM with a 10-mW Analog DLL Circuit;Hideharu Yahata;《2000 Symposium on VLSI Circuits. Digest of Technical Papers (Cat. No.00CH37103)》;74-75 * |
胡迎刚.《VIVADO环境下IP核应用研究[M]》.成都:西南交通大学出版社,2020,210-211. * |
Also Published As
Publication number | Publication date |
---|---|
CN116665731A (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11430494B2 (en) | DQS position adjustment method, controller and network device | |
CN108922570B (zh) | 读dqs信号的相位偏移检测方法、训练方法、电路及系统 | |
US7366862B2 (en) | Method and apparatus for self-adjusting input delay in DDR-based memory systems | |
US8502577B2 (en) | Phase correction circuit, data alignment circuit and method of aligning data using the same | |
EP1679607A2 (en) | A memory controller with an adaptive timing system for controlling access to the memory | |
US20080276133A1 (en) | Software-Controlled Dynamic DDR Calibration | |
WO2010038422A1 (ja) | メモリインターフェース | |
CN111243635A (zh) | 写数据采样信号时序监测方法、监测电路和存储器 | |
US8582376B2 (en) | Timing adjustment circuit for a memory interface and method of adjusting timing for memory interface | |
US10545866B1 (en) | Method and system for efficient re-determination of a data valid window | |
CN116665731B (zh) | 一种ddr存储器采样校准方法及ddr存储器 | |
JP2005531099A (ja) | 自己較正センス増幅器のストローブ | |
US8804441B1 (en) | Methods and systems for detecting and correcting timing signal drift in memory systems | |
WO2021128874A1 (zh) | 内存接口写入均衡的控制方法及装置 | |
CN113626352B (zh) | 内存控制器的读取校准方法、计算机装置和可读存储介质 | |
US20140372787A1 (en) | Methods for dynamically adaptive bit-leveling by sweep sampling with automatic jitter avoidance | |
CN104599706A (zh) | 随机存取存储器及调整随机存取存储器读取时序的方法 | |
US10902896B2 (en) | Memory circuit and method thereof | |
US20070195615A1 (en) | Method and circuit for real-time calibrating data control signal and data signal | |
US9019804B1 (en) | Timing loop with large pull-in range | |
KR101300036B1 (ko) | 메모리 세팅 조건을 결정하는 메모리 테스트 장치 및 그방법 | |
CN115292215A (zh) | 一种基于fpga的ddr3物理层校准方法 | |
CN116564380B (zh) | Dram中门控脉冲信号的校正方法和装置 | |
US7191279B2 (en) | Schmoo runtime reduction and dynamic calibration based on a DLL lock value | |
US20240126704A1 (en) | Data input device and processing method for input data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |