CN111128269B - 一种ddr比特延迟对齐方法、装置及存储介质 - Google Patents
一种ddr比特延迟对齐方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111128269B CN111128269B CN201911151623.8A CN201911151623A CN111128269B CN 111128269 B CN111128269 B CN 111128269B CN 201911151623 A CN201911151623 A CN 201911151623A CN 111128269 B CN111128269 B CN 111128269B
- Authority
- CN
- China
- Prior art keywords
- data
- delay
- bit
- read
- read data
- 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
Images
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/409—Read-write [R-W] 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/408—Address circuits
-
- 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
Abstract
本发明实施例提供DDR比特延迟对齐方法,通过可靠的读写操作后根据获得的数据调整DQS延迟找到DQ比特延迟边界,并重新读取写入的数据,再根据DQ比特的错误情况,调整正确DQ比特的延迟,逐步缩减正确DQ比特和错误DQ比特的延迟差异,达到各个DQ数据比特对齐的目的,具有操作简单,且能最大限度的达到DQ数据各比特延迟对齐的效果,执行本方案延迟校准后,不考虑亚稳态的情况下DQ数据各比特的延迟差异不会超过最小的延迟单元,实际调整受亚稳态影响延迟差异也是接近最小的延迟单元。该方案调整方向明确不反复,避免了数据采样因亚稳态而来回调整无法收敛的情况,有效减小了校准时间,达到对齐DQ比特的目的。
Description
技术领域
本发明实施例涉及但不限于DDR内存数据读写领域,具体而言,涉及但不限于一种DDR比特延迟对齐方法、装置及存储介质。
背景技术
DDR SDRAM,即双倍速率同步动态随机存储器。SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输。而DDR内存则是在一个时钟周期内传输两次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的接口频率下达到更高的数据传输率。
DDR PHY在上电后通过一系列的读写操作来调整DDR接口的读写时序,使数据采样时序达到最佳状态。理想情况下,DQS时钟相移90度可获得DQ数据的最佳采样点。
而在实际使用过程中,由于PCB走线、封装走线及片内走线会存在长度的差异,这将导致传递到DDR控制器的信号线延迟情况不一致。该不一致有两个情况,第一种情况是DQS和DQ数据信号未对齐,导致内部生成的采样时钟信号inner_dqs的边沿落于内部被采样的DQ数据的未稳定的时间区域,进而导致数据读取出错;第二种情况是DQ数据各个比特未对齐,导致时序余量减小,降低了系统对环境适应的能力,并可能导致数据读取错误。
为了获得DQ数据的最佳采样点,一种做法是采用对输入的DQS时钟进行延迟校准的方式来生成内部采样时钟inner_dqs,但该做法仅解决了第一种情况描述的问题,忽略了线延迟造成的DQ数据各个比特未对齐的问题。一种做法是按BIT对DQ数据进行移位,从而使inner_dqs时钟与各DQ BIT数据中间对齐,但逐一控制各DQ BIT数据来与内部采样时钟对齐将导致内部控制逻辑设计过于复杂,且将导致校准时间过长。
发明内容
本发明实施例提供的DDR比特延迟对齐方法和装置,主要解决的技术问题是DQ比特对齐时间长,且来回调整导致的无法收敛的问题。
为解决上述技术问题,本发明实施例提供一种DDR比特延迟对齐方法,包括:
向三个地址段写入数据,读取所述三个地址段的数据,并作为第一读数据;
判断所述第一读数据是否符合所述写入数据;
如是,根据所述第一读数据减小时钟信号DQS延迟,直到重新读取的所述三个地址段的数据不符合所述写入数据,获得DQ比特延迟边界,并将重新读取的数据作为第二读数据;
根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界。
可选的,所述三个地址段包括:第一地址段、第二地址段、第三地址段;
所述向三个地址段写入数据包括:向所述第一地址段写入特定数据,向所述第二地址段写入特定数据,向所述第三地址段写入特定数据;各地址段写入的特定数据不同;
所述特定数据包括以下任一:0x0、0x55、0xaa。
可选的,所述向每个地址段写入特定数据之前包括:
向其它地址段写入与每个地址段相同的数据;向每个地址段写入特定数据之后还包括:向其它地址段写入与每个地址段相同的数据;
所述读取所述三个地址段的数据包括:
按照先后顺序分别对所述第一地址段、所述第二地址段、所述第一地址段、所述第三地址段进行数据读取。
可选的,
当所述第一读数据不符合所述写入数据时;
根据所述第一读数据调整DQS延迟,重新读取所述三个地址段的数据,作为新的第一读数据,直到读取的第一读数据符合所述写入数据后,根据所述第一读数据减小DQS延迟,获得DQ比特延迟边界。
可选的,所述根据所述第一读数据调整DQS延迟包括:
当所述第一读数据为前错位时,则增加DQS延迟;
或
当所述第一读数据为后错位时,则减少DQS延迟。
可选的,所述根据所述第一读数据减小时钟信号DQS延迟,直到重新读取的所述三个地址段的数据不符合所述写入数据,获得DQ比特延迟边界,并将重新读取的数据作为第二读数据包括:
根据所述第一读数据减小时钟信号DQS延迟,当DQS延迟减小到DQS延迟边界时读取的所述三个地址段的数据仍然符合所述写入数据时,结束对DQS延迟的减小,获得DQ比特延迟边界,并将此次读取的数据作为第二读数据。
可选的,所述根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界后还包括:
读取所述三个地址段的数据,作为新的第二读数据,当所述新的第二读数据中仍存在正确DQ比特时,则根据所述新的第二读数据中错误DQ比特,增加所述新的第二读数据中正确DQ比特的延迟,直到所述新的第二读数据中所有DQ比特均为错误DQ比特,增加延迟后的DQ比特未超出所述DQ比特延迟边界。
可选的,所述根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界还包括:
根据所述第二读数据中各DQ比特的错误情况,并行增加所述第二读数据中多个正确DQ比特的延迟,增加延迟后的各DQ比特均未超出所述DQ比特延迟边界。
进一步的,本发明实施例还提供一种DDR比特延迟对齐装置,包括:
数据读写模块;数据采样模块,数字延迟模块,校准控制模块;
所述数据读写模块,用于向三个地址段写入数据,读取所述三个地址段的数据,并作为第一读数据;
所述校准控制模块包括:第一校准模块,第二校准模块;
所述第一校准模块用于判断所述第一读数据是否符合所述写入数据;
如是,根据所述第一读数据减小时钟信号DQS延迟,直到重新读取的所述三个地址段的数据不符合所述写入数据,获得DQ比特延迟边界,将重新读取的数据作为第二读数据;
所述第二校准模块用于根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界。
本发明实施例还提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的DDR比特延迟对齐方法的步骤。
本发明的有益效果是:
根据本发明实施例提供的DDR比特延迟对齐方法、装置以及计算机存储介质,通过向三个地址段写入数据,读取所述三个地址段的数据,并作为第一读数据;判断所述第一读数据是否符合所述写入数据;如是,根据所述第一读数据减小时钟信号DQS延迟,直到重新读取的所述三个地址段的数据不符合所述写入数据,获得DQ比特延迟边界,将重新读取的数据作为第二读数据;根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界。本发明根据读数据,逐步调整DQS延迟以得到DQ比特延迟边界,再根据错误DQ比特逐步调整正确DQ比特的延迟来缩减各比特延迟差异,操作上简单,且能最大限度的达到DQ数据各比特延迟对齐的效果,执行本方案延迟校准后,不考虑亚稳态的情况下DQ数据各比特的延迟差异不会超过最小的延迟单元,实际调整受亚稳态影响延迟差异也是接近最小的延迟单元。本发明调整方向明确不反复,避免了数据采样因亚稳态而来回调整无法收敛的情况,有效减小了DQ比特对齐时间,可提高DQ比特对齐速率。另外,DQ各比特延迟调整并行进行也在一定程度上提高了效率。
附图说明
图1为本发明实施例一的DDR比特延迟对齐方法基本流程示意图;
图2为本发明实施例一的DQ数据比特前错位错误示意图;
图3为本发明实施例一的DQ数据比特后错位错误示意图;
图4为本发明实施例一的通过DDR比特延迟对齐方法对齐后各DQ比特数据示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
为了解决DQ比特对齐时间长,且来回调整导致无法收敛的问题,请参见图1,图1为本发明实施例提供的DDR比特延迟对齐方法基本流程示意图,该DDR比特延迟对齐方法包括:
S101、向三个地址段写入数据,读取三个地址段的数据,并作为第一读数据;
在本实施例中,三个地址段包括:第一地址段、第二地址段、第三地址段;需要理解的是,各地址段的地址不同。向三个地址段写入数据包括:向所述第一地址段写入特定数据,向所述第二地址段写入特定数据,向所述第三地址段写入特定数据;各地址段写入的特定数据不同;需要理解的是,向各地址段写入特定数据包括:向各地址段写入多Byte特定数据;上述特定数据包括但不限于以下任意一个:0x0、0x55、0xaa等数据;具体可以为:向第一地址段写入多Byte的0x0、第二地址段写入多Byte的0x55、第三地址段写入多Byte的0xaa。在本实施例中,优选的,向各地址段写入8byte的特定数据。需要注意的是,本发明实施例并不限制第一地址段、第二地址段、第三地址段分别写入的数据;第一地址段、第二地址段、第三地址段都可以写入0x0、0x55、0xaa等数据中的任意一个。
需要注意的是,为了使得读取的数据更为清晰明了,优选的,第一地址段、第二地址段、第三地址段写入的特定数据不同。需要注意的是,本实施例并不限制写入数据的地址段的具体数量,可以根据需求向三个及三个以上地址段写入数据,也即向至少三个地址段写入数据。
在本实施例中,为了保证三个地址段写入数据的可靠性,因此在向三个地址段写入数据之前还包括:向其它地址段写入与每个地址段相同的数据;向每个地址段写入特定数据之后还包括:向其它地址段写入与每个地址段相同的数据。具体的可以是,例如:需要向第一地址段:0x0、第二地址段0x8、第三地址段0x10三个地址段分别写入8Byte的0x0、8Byte的0x55、8Byte的0xaa,此时可以通过连续的写命令实现数据无缝写入,此时其他地址段均使用0x18时,依次向0x18地址段写入8Byte的0x0,向0x0地址段写入8Byte的0x0,向0x18地址段写入8Byte的0x0,向0x18地址段写入8Byte的0x55,向0x08地址段写入8Byte的0x55,向0x18地址段写入8Byte的0x55,向0x18地址段写入8Byte的0xaa,向0x10地址段写入8Byte的0xaa,向0x18地址段写入8Byte的0xaa,共9个Burst的无缝写入;需要理解的是,本实施例并不用于限定其它地址段使用相同的地址,在向三个地址段写入数据前后可以向不同地址段写入相同数据,例如,在向第一地址段:0x0写入8Byte的0x55前,可以向0x15的地址段写入8Byte的0x55;在向第一地址段:0x0写入8Byte的0x55后,可以向0x18的地址段写入8Byte的0x55。
需要理解的是,在一些实施例中,为了提高效率降低DDR访问控制逻辑复杂度,在保证数据稳定的前提下,可以合并相邻其他地址段的写入,例如,当其他地址段为0x18时,存在向0x18地址段写入8Byte的0x55,向0x18地址段写入8Byte的0xaa,可以合并为向0x18地址段写入4Byte的0x55和4Byte的0xaa。如上所述需要理解的是,本实施例并不用于限定两个相邻其他地址段一定要合并为一个其他地址段,相关人员可以灵活设定。具体的可以是,例如:需要向第一地址段:0x0、第二地址段0x8、第三地址段0x10三个地址段分别写入8Byte的0x0、8Byte的0x55、8Byte的0xaa,此时可以通过连续的写命令实现数据无缝写入,此时其他地址段为0x18时,依次向0x18地址段写入8Byte的0x0,向0x0地址段写入8Byte的0x0,向0x18地址段写入8Byte的0x0,向0x18地址段写入8Byte的0x55,向0x08地址段写入8Byte的0x55,向0x18地址段写入4Byte的0x55和4Byte的0xaa,向0x10地址段写入8Byte的0xaa,向0x18地址段写入8Byte的0xaa,共8个Burst的无缝写入。
在本实施例中,读取三个地址的数据包括:按照先后顺序对第一地址段、第二地址段、第一地址段、第三地址段进行数据读取,需要理解的是,本实施例中,进行数据读取时可以为通过连续的读命令实现数据无缝读取。也即共发出四次Burst读命令,根据四次读命令发起四次Burst读操作,四次Burst读命令连续无缝读。需要注意的是数据无缝写入、读取是指控制好连续读写命令的时间间隔,以实现数据的无缝传输。
S102、判断第一读数据是否符合写入数据,如否,转到S103,如是,转到S104;
在本实施例中,由于版图、封装、PCB设计及其他外界因素等各种因素,使得DQS与DQ以及DQ各比特之间存在延迟差异,在实际使用过程中,会对DQS及DQ各比特延迟进行调整,避免数据写入及读取出现错误。校准时将写入数据作为预期数据,当读取的数据与写入数据一致时,则第一读数据符合写入数据,此时转到S104,但同时也因为DQS与DQ以及DQ各比特之间存在延迟影响,导致可能存在第一读数据与写入数据不一致,也即第一读数据不符合写入数据情况,当第一读数据不符合写入数据时,转到S103。
S103、根据第一读数据调整DQS延迟,重新读取所述三个地址段的数据,作为新的第一读数据,直到读取的第一读数据符合所述写入数据,转到S104;
在本实施例中,当第一读数据不符合写入数据时,通过调整时钟信号DQS的延迟,使得第一读数据符合写入数据;需要注意的是,调整时钟信号DQS的延迟之前,还包括:判断第一读数据是前错位错误还是后错位错误导致的不符合写入数据,上述第一读数据是前错位错误包括:错误出现在单个Burst读操作的读数据的前几个数据;上述第一读数据是后错位错误包括:错误出现在单个Burst读操作的读数据的后几个数据。也即,第一读数据中包括:第一地址段读数据、第二地址段读数据、第三地址段读数据;当错误出现在任一地址段读数据的前几个数据时,则第一读数据为前错位,如图2所示,第一读数据中,起始地址0x00Burst数据中第一个数据出现错误,或起始地址0x08Burst数据中第一个数据出现错误,此时,则判定当前第一数据为前错位错误;需要注意的是,受亚稳态的影响不一定起始地址0x00Burst和起始地址0x08Burst数据的第一个数据均出现错误,即有可能均出现错误,也有可能其中一个出现错误,并且可能是第一个数据出现错误同时第二个数据也出现错误,并不限定仅可能第一个数据才会出现错误;当错误出现在任一地址段读数据的后几个数据时,则第一读数据为后错位错误,如图3所示,第一读数据中,起始地址0x00Burst数据中第8个数据出现错误,或起始地址0x08Burst数据中第8个数据出现错误,此时,则判定当前第一数据为后错位错误。需要注意的是,受亚稳态的影响不一定起始地址0x00Burst和起始地址0x08Burst数据的第8个数据均出现错误,即有可能均出现错误,也有可能其中一个出现错误,并且可能是第8个数据出现错误同时第7个数据也出现错误,并不限定仅可能第8个数据才会出现错误;
需要注意的是,根据第一读数据调整DQS延迟包括:当第一读数据为前错位错误时,则增加DQS延迟;和当第一读数据为后错位错误时,则减少DQS延迟。
需要注意的是,根据第一读数据调整DQS延迟,重新读取三个地址段的数据,作为新的第一读数据,可能存在新的第一读数据仍然不符合写入数据,此时,则根据新的第一读数据调整DQS延迟,直到获得的新的第一读数据符合写入数据。也即,本实施例中每次调整DQS完成后都要重新获取三个地址段的数据,并判断新的第一读数据是否符合写入数据,如果不符合则继续根据新的第一读数据调整DQS延迟,直到获取到的第一读数据符合写入数据,此时转到S104。
S104、根据第一读数据减小时钟信号DQS延迟,直到重新读取的三个地址段的数据不符合写入数据,获得DQ比特延迟边界,将重新读取的数据作为第二读数据;
在本实施例中,通过符合写入数据的第一读数据来获得DQ比特延迟边界,具体是,通过减小时钟信号DQS延迟,直到重新读取的三个地址段的数据不符合写入数据,获得DQ比特延迟边界,并将重新读取的数据作为第二读数据;需要注意的是,减小DQS延迟后,重新读取的三个地址段的数据可能仍然符合写入数据,此时则根据重新读取的三个地址段的数据,继续减少DQS延迟,直到重新读取的数据不符合写入数据,获得DQ比特延迟边界,此时则将该重新读取的数据作为第二读数据。也即,本实施例中,通过减小时钟信号DQS延迟,直到重新读取的三个地址段的数据不符合写入数据,并将重新读取的数据作为第二读数据,可以存在多次减小时钟信号DQS延迟,直到读取的三个地址段的数据不符合写入数据,每次减小时钟信号DQS延迟后,都需要读取三个地址段数据,判断读取到的三个地址段数据是否符合写入数据,直到读取的三个地址段的数据不符合写入数据,获得DQ比特延迟边界,并将读取到的不符合写入数据的三个地址段数据作为第二读数据。
需要注意的是,根据第一读数据减小时钟信号DQS延迟,直到重新读取的三个地址段的数据不符合写入数据,获得DQ比特延迟边界,并将重新读取的数据作为第二读数据还包括:根据第一读数据降低时钟信号DQS延迟,当DQS延迟减小到DQS延迟边界读取的三个地址段的数据仍然符合写入数据时,结束对DQS延迟的减小,获得DQ比特延迟边界,并将此次读取的数据作为第二读数据。在本实施例中,当DQS延迟减小到DQS延迟边界时表示DQS延迟已经无法减小,此时,则结束对DQS延迟的减小,将此次读取的数据作为第二读数据。
S105、根据第二读数据中各DQ比特的错误情况,增加第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出DQ比特延迟边界。
在本实施例中,根据第二读数据中各DQ比特的错误情况,增加第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出DQ比特延迟边界后还包括:
读取三个地址段的数据,作为新的第二读数据,当新的第二读数据中仍存在正确DQ比特时,则根据新的第二读数据中各DQ比特的错误情况,增加第二读数据中正确DQ比特的延迟,直到新的第二读数据中不存在正确的DQ比特,增加延迟后的DQ比特未超出DQ比特延迟边界。也即,本实施例中,每次根据新的第二读数据中各DQ比特的错误情况,增加第二读数据中正确DQ比特的延迟,增加第二读数据中正确DQ比特的延迟后,都需要重新读取三个地址段的数据,并根据重新读取的数据中各DQ比特的错误情况来增加重新读取的数据中正确DQ比特的延迟,直到增加延迟后的DQ比特都为错误DQ比特,此时,则认为各DQ比特处于对齐状态。
需要注意的是,根据第二读数据中各DQ比特的错误情况,增加第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出DQ比特延迟边界还包括:根据第二读数据中各DQ比特的错误情况情况,并行增加第二读数据中正确DQ比特的延迟,增加延迟后的各DQ比特均未超出DQ比特延迟边界。也即,当第二读数据中存在多个正确DQ比特时,可以根据第二读数据中各DQ比特的错误情况,每次增加一个正确DQ比特的延迟,然后重新读取三个地址段中的数据。也可以根据第二读数据中各DQ比特的错误情况,增加所有正确DQ比特的延迟,需要注意的是,增加所有正确的DQ比特延迟可以是,各正确DQ比特的延迟增加量不同,也可以是各正确DQ比特的延迟增加量相同。
在本实施例中,根据第二读数据中各DQ比特的错误情况,增加第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出DQ比特延迟边界,增加延迟后重新读取数据作为新的第二读数据,直到新的第二读数据中各DQ比特对应期望的数据结果均有错,也即所有DQ比特皆错误时,则认为各DQ比特处于对齐状态,也即调整完后的各DQ比特对齐,如图4所示。
需要注意的是,根据第二读数据中各DQ比特的错误情况,增加第二读数据中正确DQ比特的延迟,若增加延迟后的DQ比特达到DQ比特延迟边界时仍未对齐,则认为超出调整范围或正规设计范围。所述的正规设计范围指,在版图、封装及PCB板设计中,DDR数据、时钟之间的skew有严格的要求,在满足设计要求的情况下,不会出现DQS与DQ或DQ各比特之间延迟差异异常大的情况
本发明实施例提供的DDR比特延迟对齐方法,通过向三个地址段写入数据,读取三个地址段的数据,并作为第一读数据;判断第一读数据是否符合写入数据;如是,根据第一读数据获得DQ延迟边界,具体是通过减小时钟信号DQS延迟,直到重新读取的三个地址段的数据不符合写入数据,来获得DQ延迟边界,并将重新读取的数据作为第二读数据;根据第二读数据中各DQ比特的错误情况,增加第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特延迟未超出DQ比特延迟边界;本发明根据读数据,逐步调整DQS延迟以得到DQ延迟边界,再根据各DQ比特的错误情况逐步调整正确DQ比特的延迟来缩减各比特延迟差异,操作上简单,且能最大限度的达到DQ数据各比特延迟对齐的目的,执行本方案延迟校准后,不考虑亚稳态的情况下DQ数据各比特的延迟差异不会超过最小的延迟单元,实际调整受亚稳态影响延迟差异也是接近最小的延迟单元。该方案调整方向明确不反复,避免了数据采样因亚稳态而来回调整无法收敛的情况,有效减小了DQ比特对齐时间,可提高DQ比特对齐速率。另外,DQ各比特延迟调整并行进行也在一定程度上提高了效率。
实施例二:
为了更好的理解本发明,本实施例提供一种更加具体的示例进行说明。
在本实施例中以X8 DDR4应用于2400Mbps速率为例进行说明;
DDR SRAM传输速率为2400Mbps时,DQ数据宽度约为0.416ns。设计时,要求版图、封装、PCB设计及其他外界因素等各种因素对DQS与DQ和DQ各比特之间的延迟影响差异在一个DQ数据宽度内,这样,结合版图等实际因素考虑,选择DDR控制器内DQS默认增加延迟约0.405ns,DQS最大可调整延迟约2.755ns,DQ的默认增加延迟0ns,DQ各比特最大可调整延迟约0.515ns(不同工艺corner,温度,电压情况下延迟单元延迟会出现差异)。
按照本发明提供的一种DDR比特信号对齐的装置进行DDR控制器设计,校准控制模块的校准流程按照本发明的方法进行设计。校准过程如下:
对齐校准启动后,校准控制模块先通过Burst写操作向DDR存储器中三个地址段写入多Byte特定数据,上述三个地址段为:0x0、0x08、0x10,也即依次对起始地址0x18、0x0、0x18、0x18、0x08、0x18、0x10、0x18进行Burst长度为8的数据写入,共8个Burst的无缝写入,写入数据依次为8个Byte的0x0、8个Byte的0x0、8个Byte的0x0、8个Byte的0x55、8个Byte的0x55、4个Byte的0x55和4个Byte的0xaa、8个Byte的0xaa、8个Byte的0xaa。
再对三个地址段的数据进行读取并与写入数据对应的期望值对比,根据读取数据先调整时钟信号DQS的延迟。所述的对三个地址段的读取,指依次对起始地址0x0、0x8、0x0、0x10进行Burst长度为8Byte的无缝数据读取。这样,若数据采样正确,依次读回的期望数据应是8byte 0x00,8byte 0x55,8byte 0x00,8byte 0xaa,则DQ0、DQ2、DQ4、DQ6的输入期望依次为8个0x0、8个0x1、8个0x0、8个0x0,DQ1、DQ3、DQ5、DQ7的期望输入依次为8个0x0、8个0x0、8个0x0、8个0x1。读数据是前错位,则逐步增加DQS的延迟,若读数据是后错位则逐步减小DQS的延迟,直到读数据正确。本实施中DQS默认增加延迟约0.405ns,DQS与DQ和DQ各比特的延迟不会超过一个数据周期,DQS增加、减小预留的延迟余量足够。读结果正确后,逐步减小DQS延迟,直到读结果有错或DQS延迟减小到0。
最后,根据读数据各DQ比特的错误情况进行增加延迟调整,仅调整正确的DQ比特的延迟,不调整错误的DQ比特,使两者的延迟差距逐步减小,直到读数据所有的DQ比特均有错误则指示对齐校准完成。在本实施例设计中,延迟差异不会超过一个数据周期,所提供的延迟调整范围不会出现校准失败的情况。
实施例三:
本实施例还提供了一种DDR比特延迟对齐装置,包括数据读写模块;数据采样模块,数字延迟模块,校准控制模块;
所述数据读写模块,用于向三个地址段写入数据,读取所述三个地址段的数据,并作为第一读数据;
所述校准控制模块包括:第一校准模块,第二校准模块;
所述第一校准模块用于判断所述第一读数据是否符合所述写入数据;
如是,根据所述第一读数据获得DQ比特延迟边界,通过减小时钟信号DQS延迟,直到重新读取的所述三个地址段的数据不符合所述写入数据,获得DQ比特延迟边界,并控制所述数据读写模块重新读取所述三个地址段的数据,将重新读取的数据作为第二读数据;
所述第二校准模块用于根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界。
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read-Only Memory,只读存储器),EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现以实施例一或实施例二中DDR比特延迟对齐方法的任一步骤。
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种DDR比特延迟对齐方法,其特征在于,包括:
向三个地址段写入数据,读取所述三个地址段的数据,并作为第一读数据;
判断所述第一读数据是否符合所述写入数据;如否,根据所述第一读数据调整DQS延迟,重新读取所述三个地址段的数据,作为新的第一读数据,直到读取的第一读数据符合所述写入数据;
如是,根据所述第一读数据减小时钟信号DQS延迟,直到重新读取的所述三个地址段的数据不符合所述写入数据,获得DQ比特延迟边界,并将重新读取的数据作为第二读数据;
根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界。
2.如权利要求1所述的DDR比特延迟对齐方法,其特征在于,所述三个地址段包括:第一地址段、第二地址段、第三地址段;
所述向三个地址段写入数据包括:向所述第一地址段写入特定数据,向所述第二地址段写入特定数据,向所述第三地址段写入特定数据;各地址段写入的特定数据不同;
所述特定数据包括以下任一:
0x0、0x55、0xaa。
3.如权利要求1所述的DDR比特延迟对齐方法,其特征在于,向每个地址段写入特定数据之前包括:向其它地址段写入与每个地址段相同的数据;向每个地址段写入特定数据之后还包括:向其它地址段写入与每个地址段相同的数据;
所述读取所述三个地址段的数据包括:
按照先后顺序分别对第一地址段、第二地址段、第三地址段进行数据读取。
4.如权利要求1所述的DDR比特延迟对齐方法,其特征在于,所述根据所述第一读数据调整DQS延迟包括:
当所述第一读数据为前错位错误时,则增加DQS延迟;
或
当所述第一读数据为后错位错误时,则减少DQS延迟。
5.如权利要求1-4任一项所述的DDR比特延迟对齐方法,其特征在于,所述根据所述第一读数据减小时钟信号DQS延迟,直到重新读取的所述三个地址段的数据不符合所述写入数据,获得DQ比特延迟边界,并将重新读取的数据作为第二读数据包括:
根据所述第一读数据减小时钟信号DQS延迟,当DQS延迟减小到DQS延迟边界时读取的所述三个地址段的数据仍然符合所述写入数据时,结束对DQS延迟的减小,获得DQ比特延迟边界,并将此次读取的数据作为第二读数据。
6.如权利要求5所述的DDR比特延迟对齐方法,其特征在于,所述根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确的DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界后还包括:
读取所述三个地址段的数据,作为新的第二读数据,当所述新的第二读数据中仍存在正确的DQ比特时,则根据所述新的第二读数据中错误DQ比特,增加所述新的第二读数据中正确DQ比特的延迟,重新读取所述三个地址段的数据,作为新的第二读数据,直到所述新的第二读数据中所有DQ比特均为错误DQ比特,增加延迟后的DQ比特延迟未超出所述DQ比特延迟边界。
7.如权利要求5所述的DDR比特延迟对齐方法,其特征在于,所述根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界还包括:
根据所述第二读数据中各DQ比特的错误情况,并行增加所述第二读数据中多个正确DQ比特的延迟,增加延迟后的各DQ比特延迟均未超出所述DQ比特延迟边界。
8.一种DDR比特延迟对齐装置,其特征在于,包括:数据读写模块;数据采样模块,数字延迟模块,校准控制模块;
所述数据读写模块,用于向三个地址段写入数据,读取所述三个地址段的数据,并作为第一读数据;
所述校准控制模块包括:第一校准模块,第二校准模块;
所述第一校准模块用于判断所述第一读数据是否符合所述写入数据;如否,根据所述第一读数据调整DQS延迟,重新读取所述三个地址段的数据,作为新的第一读数据,直到读取的第一读数据符合所述写入数据;
如是,根据所述第一读数据减小时钟信号DQS延迟,直到重新读取的所述三个地址段的数据不符合所述写入数据,获得DQ比特延迟边界,将重新读取的数据作为第二读数据;
所述第二校准模块用于根据所述第二读数据中各DQ比特的错误情况,增加所述第二读数据中正确DQ比特的延迟,增加延迟后的DQ比特未超出所述DQ比特延迟边界。
9.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任一项所述的DDR比特延迟对齐方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911151623.8A CN111128269B (zh) | 2019-11-21 | 2019-11-21 | 一种ddr比特延迟对齐方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911151623.8A CN111128269B (zh) | 2019-11-21 | 2019-11-21 | 一种ddr比特延迟对齐方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111128269A CN111128269A (zh) | 2020-05-08 |
CN111128269B true CN111128269B (zh) | 2023-05-23 |
Family
ID=70496134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911151623.8A Active CN111128269B (zh) | 2019-11-21 | 2019-11-21 | 一种ddr比特延迟对齐方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111128269B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112017727B (zh) * | 2020-08-28 | 2023-04-07 | 成都海光集成电路设计有限公司 | 接口测试方法、装置、处理器和电子设备 |
CN116665731B (zh) * | 2023-08-02 | 2023-10-03 | 成都智多晶科技有限公司 | 一种ddr存储器采样校准方法及ddr存储器 |
CN116954306B (zh) * | 2023-09-20 | 2024-01-02 | 芯动微电子科技(珠海)有限公司 | 一种时钟移相方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102347081A (zh) * | 2010-07-30 | 2012-02-08 | 联芯科技有限公司 | 用于ddr控制器中dqs延迟的相位校准方法及装置 |
US8565033B1 (en) * | 2011-05-31 | 2013-10-22 | Altera Corporation | Methods for calibrating memory interface circuitry |
CN108646984A (zh) * | 2018-05-16 | 2018-10-12 | 华为技术有限公司 | 一种dqs位置调整方法和装置 |
-
2019
- 2019-11-21 CN CN201911151623.8A patent/CN111128269B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102347081A (zh) * | 2010-07-30 | 2012-02-08 | 联芯科技有限公司 | 用于ddr控制器中dqs延迟的相位校准方法及装置 |
US8565033B1 (en) * | 2011-05-31 | 2013-10-22 | Altera Corporation | Methods for calibrating memory interface circuitry |
CN108646984A (zh) * | 2018-05-16 | 2018-10-12 | 华为技术有限公司 | 一种dqs位置调整方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111128269A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11348632B2 (en) | Double data rate (DDR) memory controller apparatus and method | |
CN111128269B (zh) | 一种ddr比特延迟对齐方法、装置及存储介质 | |
US9081516B2 (en) | Application memory preservation for dynamic calibration of memory interfaces | |
US7937641B2 (en) | Memory modules with error detection and correction | |
US7975164B2 (en) | DDR memory controller | |
US10332575B2 (en) | Signal training for prevention of metastability due to clocking indeterminacy | |
US7808849B2 (en) | Read leveling of memory units designed to receive access requests in a sequential chained topology | |
US8531897B2 (en) | Delay control circuit and semiconductor memory device including the same | |
US8737161B1 (en) | Write-leveling system and method | |
US20190235760A1 (en) | Write level initialization syncronization | |
US9285828B2 (en) | Memory system with improved bus timing calibration | |
US10942541B1 (en) | Connection interface circuit, memory storage device and signal generation method | |
US11127438B1 (en) | Background interface training using secondary senses | |
TWI744105B (zh) | 運用於記憶體系統的多循環寫入均衡程序的處理方法 | |
JP2013196644A (ja) | ストレージデバイス及びその制御方法 | |
CN112447210B (zh) | 连接接口电路、存储器存储装置及信号产生方法 | |
KR102504176B1 (ko) | 반도체장치 |
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 |