CN115881183B - 训练触发方法、装置、设备及存储介质 - Google Patents
训练触发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115881183B CN115881183B CN202211718061.2A CN202211718061A CN115881183B CN 115881183 B CN115881183 B CN 115881183B CN 202211718061 A CN202211718061 A CN 202211718061A CN 115881183 B CN115881183 B CN 115881183B
- Authority
- CN
- China
- Prior art keywords
- delay line
- delay
- read
- write
- data window
- 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
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本申请提供了一种训练触发方法、装置、设备及存储介质,其中,该方法包括:由主延时线测量一个周期的需要的延时单元数量,并将延时单元数量下发给各从延时线;由写延时线和读延时线分别在对应一个周期的延时单元数量范围内对写延时线和读延时线的延时进行调整,通过训练,分别得到读写延时线对应的有效数据窗口,并完成读写延时线的延时调整;系统运行过程中,通过读写延时线的延时变化与有效数据窗口的比较确定是否重新进行训练,若是,则向主机发送训练信号,以使得主机根据训练信号进行训练操作。本申请可以只在必要的时候,例如读写延时线的延时偏离有效数据窗口的时候进行训练,避免定期训练带来的带宽消耗过大、资源占用过多的问题。
Description
技术领域
本申请涉及数据传输技术领域,具体而言,涉及一种训练触发方法、装置、设备及存储介质。
背景技术
随着NAND FLASH存储器的速率和工艺的不断提升,工艺、电压和温度的变化对设备的性能影响越来越大,因此在访问Flash的过程中,由于温度和电压等因素的变化,导致各个数据以及数据探针的延时发生变化,数据的有效采样窗口也会发生变化,因此需要不断的对读写数据或数据探针信号的延时进行调节,让数据的窗口满足协议的要求,实现可靠传输。
目前对读写数据或数据探针信号的延时调节主要是通过对NAND FLASH进行训练实现的,通过训练调整信号占空比、数据信号窗口以及数据单元延时,以实现高速可靠的数据的并行传输。
但是,目前大多采用定时触发的方式进行训练,因此导致主机资源浪费,也会额外消耗Nand Flash访问带宽,导致整个系统的性能降低。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种训练触发方法、装置、设备及存储介质,以解决现有技术中定时触发训练导致系统性能降低的问题。
为实现上述目的,本申请采用的技术方案如下:
第一方面,本申请提供了一种训练触发方法,应用于数字延时线装置,所述数字延时线装置包括:主延时线和多个从延时线,所述多个从延时线包括:写延时线和读延时线,所述方法包括:
由所述主延时线测量一个周期的延时单元数量,并将所述延时单元数量下发给各所述从延时线;
由所述写延时线和所述读延时线在训练过程中分别根据所述延时单元数量对所述写延时线和所述读延时线的延时进行调整,确定所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口,并确定所述写延时线的延时和所述读延时线的延时;
根据写延时线的延时、所述读延时线的延时、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练,若是,则向主机发送训练信号,以使得主机根据所述训练信号进行训练操作。
可选的,所述由所述主延时线测量一个周期延时单元数量,包括:
由所述主延时线记录所述主延时线的输入相位,并逐步增加所述主延时线选中的延时单元数量;
由所述主延时线判断所述主延时线的输出相位和所述输入相位是否对齐,若是,将当前选中的延时单元数量作为所述一个周期的延时单元数量。
可选的,所述由所述写延时线和所述读延时线在训练过程中分别根据所述延时单元数量对所述写延时线和所述读延时线的延时进行调整,确定所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口,并确定所述写延时线的延时和所述读延时线的延时,包括:
由所述写延时线在延时单元数量范围内,遍历所有的延时,将不发生写错误的写延时线的延时范围作为所述写延时线的有效数据窗口,并根据所述写延时线的有效数据窗口确定所述写延时线的延时;
由所述读延时线在所述延时单元数量范围内,遍历所有的延时,将不发生读错误的读延时线的延时范围作为所述读延时线的有效数据窗口,并根据所述读延时线的有效数据窗口确定所述读延时线的延时。
可选的,根据所述写延时线的有效数据窗口确定所述写延时线的延时,包括:
将所述写延时线的有效数据窗口的中心位置作为所述写延时线的延时;
所述根据所述读延时线的有效数据窗口确定所述读延时线的延时,包括:
将所述读延时线的有效数据窗口的中心位置作为所述读延时线的延时。
可选的,根据写延时线的延时、所述读延时线的延时、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练,包括:
确定所述写延时线的延时变化值与所述读延时线的延时变化值;
根据所述写延时线的延时变化值、所述读延时线的延时变化值、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练。
可选的,所述根据所述写延时线的延时变化值、所述读延时线的延时变化值、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练,包括:
将所述写延时线的延时变化值与所述写延时线的有效数据窗口的一半进行比较,得到第一比较结果;
将所述读延时线的延时变化值与所述读延时线的有效数据窗口的一半进行比较,得到第二比较结果;
根据所述第一比较结果和所述第二比较结果确定是否重新进行训练。
可选的,所述根据所述第一比较结果和所述第二比较结果确定是否重新进行训练,包括:
若所述第一比较结果指示需要重新进行写训练,或所述第二比较结果指示需要重新进行读训练,则重新进行训练。
第二方面,本申请提供了一种训练触发装置,所述装置包括:
测量模块,用于测量一个周期的延时单元数量,并将所述延时单元数量下发给各从延时线;
调整模块,用于在训练过程中分别根据所述延时单元数量对所述写延时线和所述读延时线的延时进行调整,确定所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口,并确定所述写延时线的延时和所述读延时线的延时;
确定模块,用于根据写延时线的延时、所述读延时线的延时、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练,若是,则向主机发送训练信号,以使得主机根据所述训练信号进行训练操作。
可选的,所述测量模块具体用于:
记录所述主延时线的输入相位,并逐步增加所述主延时线选中的延时单元数量;
判断所述主延时线的输出相位和所述输入相位是否对齐,若是,将当前选中的延时单元数量作为所述一个周期的延时单元数量。
可选的,所述调整模块具体用于:
在延时单元数量范围内,遍历所有的延时,将不发生写错误的写延时线的延时范围作为所述写延时线的有效数据窗口,并根据所述写延时线的有效数据窗口确定所述写延时线的延时;
在所述延时单元数量范围内,遍历所有的延时,将不发生读错误的读延时线的延时范围作为所述读延时线的有效数据窗口,并根据所述读延时线的有效数据窗口确定所述读延时线的延时。
可选的,所述调整模块具体用于:
将所述写延时线的有效数据窗口的中心位置作为所述写延时线的延时;
将所述读延时线的有效数据窗口的中心位置作为所述读延时线的延时。
可选的,所述确定模块具体用于:
确定所述写延时线的延时变化值与所述读延时线的延时变化值;
根据所述写延时线的延时变化值、所述读延时线的延时变化值、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练。
可选的,所述确定模块具体用于:
将所述写延时线的延时变化值与所述写延时线的有效数据窗口的一半进行比较,得到第一比较结果;
将所述读延时线的延时变化值与所述读延时线的有效数据窗口的一半进行比较,得到第二比较结果;
根据所述第一比较结果和所述第二比较结果确定是否重新进行训练。
可选的,所述确定模块具体用于:
若所述第一比较结果指示需要重新进行写训练,或所述第二比较结果指示需要重新进行读训练,则重新进行训练。
第三方面,本申请提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述训练触发方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述训练触发方法的步骤。
本申请的有益效果是:由主延时线测量一个周期的需要的延时单元数量,并将延时单元数量下发给各从延时线;由写延时线和读延时线分别在对应一个周期的延时单元数量范围内对写延时线和读延时线的延时进行调整,通过训练,分别得到读延时线和写延时线对应的有效数据窗口,并完成读延时线和写延时线的延时调整;系统运行过程中,通过读延时线和写延时线的延时变化与有效数据窗口的比较确定是否重新进行训练,若是,则向主机发送训练信号,以使得主机根据训练信号进行训练操作。本申请可以只在必要的时候,例如读写延时线的延时偏离有效数据窗口的时候进行训练,避免定期训练带来的带宽消耗过大、资源占用过多的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种NAND FLASH存储接口的架构示意图;
图2示出了本申请实施例提供的一种数字延时线装置的架构示意图;
图3示出了本申请实施例提供的一种训练触发方法的流程图;
图4示出了本申请实施例提供的一种确定延时单元数量方法的流程图;
图5示出了本申请实施例提供的一种主延时线测量时钟的结构示意图;
图6示出了本申请实施例提供的一种确定从延时线延时的流程图;
图7示出了本申请实施例提供的一种确定是否重新进行训练的流程图;
图8示出了本申请实施例提供的又一种确定是否重新进行训练的流程图;
图9示出了本申请实施例提供的一种训练触发装置的结构示意图;
图10示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
在NAND FLASH存储系统的接口部分主要由控制器和ONFI PHY(Open NAND F lash I nterface Phys ica l)两部分组成,控制器要负责ONFI协议层的处理,提供具有丰富特性和灵活的Nand F l ash解决方案;它将来自HOST的请求转换为满足ONFI协议的请求并进行调度,使得系统的性能得到最大化。
如图1所示,一般对于F l ash控制器来说,HOST侧的接口为AXI总线接口;对于一个SOC芯片来说,HOST可以通过AXI总线来访问我们的F l ash,它看到的F l ash就是一个存储实体,它看不到F l ash具体协议相关的东西,所以HOST发过来的就是一系列符合AXI总线标准的读写突发,那么控制器需要做的首先是将AXI标准的读写转换为符合NANDFLASH标准的操作指令,然后再经过调度将这些操作指令发送给PHY,然后经过PHY传递到Fl ash去进行访问;另外控制器里面可能还有一些boot和ECC管理相关的处理等。系统性能最大化,指的就是控制器里面经过合理设计,让访问F l ash的速率尽量达到最大化,从而提升整体的性能。
图1中,ONFI PHY是访问NAND FLASH的物理接口,内部包含了丰富的高速的IO资源和DDL(Digita l De l ay Li ne)资源,在PHY和NAND FLASH之间,数据通过8个DQ bits的数据信号和一个DQS数据探针信号进行数据的传输,在工艺,电压和温度等因素的影响下,PHY和F l ash之间的各个DQ比特以及DQS比特之间并不是等长的,即每个DQ或者DQS到达PHY(读F l ash方向)或者F l ash(写F l ash方向)的时间并不一致,有的DQ比特到达的早,有的DQ比特达到的晚,因此在温度和电压发生变化时,各个DQ比特和DQS的延时也会发生变化,通过对DDL的延时调节,可以灵活的调整读写数据(DQ)和数据探针(DQS)之间的相位关系,使得读写访问的数据窗口最大化,实现高速并行数据的可靠传输。
从ONFI4.1开始,协议规定NAND FLASH的速率超过了800MT/s之后,需要对NANDFLASH进行训练,训练主要包括DCC(Duty Cyc l e correct ion)训练,读训练和写训练,其中读训练和写训练是通过调整ONFI PHY内部的数据或数据探针对应的DDL的延迟来进行的。除了在系统初始化时,需要对NAND FLASH进行训练外,在访问NAND FLASH的过程中,如果芯片的温度和电压发生变化,初始化训练之后设定的数据或数据探针的延时可能会发生变化,当变化过大时,可能会导致读写失败,因此需要在访问过程中进行动态的训练。
当前存储系统,一般使用定时的触发的方式来实现动态训练。由于在训练过程中,F l ash正常的读写访问操作是需暂停的,训练的过程会消耗NAND FLASH的访问带宽;而在实际应用中,可能在某一段时间内温度和电压波动较小并未导致数据探针偏离数据窗口,此时并不需要进行重新训练的操作。所以使用传统定时触发的训练方式,不仅占用了额外的主机资源,也消耗掉额外的NAND FLASH访问带宽,导致整个系统的性能降低。
因此,如何合理的实现NAND FLASH中的读写训练触发就成为了亟待解决的问题。
基于上述问题,本申请提出一种训练触发方法,可以应用于图1中的ONF I PHY的数字延时装置中,如图2所示,是本申请给出的一种数字延时装置的示意图,该装置包括:主延时线和多个从延时线,参照图2,多个从延时线中包括:写延时线以及读延时线。其中Write DQS这个从延时线是将PHY时钟经过延时调节直接输出作为输出给F l ash的DQS信号,也可以作为一个写备份延时线。
接下来结合图3,对本申请的训练触发方法进行说明,该方法的执行主体可以是图2所示的数字延时装置,如图3所示,该方法包括:
S301:由主延时线测量一个周期的延时单元数量,并将延时单元数量下发给各从延时线。
可选的,通过逐步增加主延时线的延时,让主延时线的输入时钟相位和输出时钟相位对齐,此时,主延时线选中的延时单元数量就是一个周期需要的延时单元数量。
可选的,主延时线测量得到一个周期的延时单元的数量之后,可以将数量下发给各从延时线,参照图2,主延时线可以将延时单元数量下发给读延时线和写延时线,以及写备份延时线。
S302:由写延时线和读延时线在训练过程中分别根据延时单元数量对写延时线和读延时线的延时进行调整,确定写延时线的有效数据窗口以及读延时线的有效数据窗口,并确定写延时线的延时和读延时线的延时。
可选的,读延时线可以是图2中的最后一行的从延时线(即Read DQ),可以用于调节读方向上的延时。
可选的,写延时线可以是图2中第三行的从延时线(即Wr ite DQ),可以用于调节输出给F l ash的各个DQ比特的延时,参照图2,写延时线可以包括一个所有DQ公共部分的大的延时线以及与8个DQ比特对应的小延时线,公共的大的延时线可以用来整体调节所有DQ的延时的,各个DQ比特对应的小延时线可以用来独立调整各个DQ比特的延时的,从而对各个DQ比特进行对齐。
可选的,在训练过程中,可以由写延时线和读延时线分别根据一个周期的延时单元数量确定写延时线和读延时线的延时单元数量的可调整范围,并在改范围内对写延时线的延时和读延时线的延时进行调整,分别得到读延时线和写延时线对应的有效数据窗口,并确定写延时线的延时和读延时线的延时。
示例性的,假设一个周期的延时单元数量为10,写延时线和读延时线就可以在0-10的范围内分别进行延时的调整,即在该范围内调整延时单元的数量,以得到读延时线和写延时线对应的有效数据窗口,并确定写延时线的延时和读延时线的延时。
S303:根据写延时线的延时、读延时线的延时、写延时线的有效数据窗口以及读延时线的有效数据窗口确定是否重新进行训练,若是,则向主机发送训练信号,以使得主机根据训练信号进行训练操作。
可选的,系统运行过程中,由于温度电压等因素变化的影响,单个延时单元的延时时间可能会发生变化,从而导致写延时线和读延时线的延时发生变化,将该变化与读写延时线的有效数据窗口值进行比较,若读延时线或者写延时线的延时即将达到有效数据窗口的边界,则说明此时需要进行重新训练,以保证数据读写的可靠。
值得说明的是,读训练和写训练一般是同步进行的,因此无论是当读延时线或写延时线的延时超出有效数据窗口范围,都需要重新进行读训练和写训练,以调节各个DQ比特的延时,并重新得到读写延时线的有效数据窗口。
本申请实施例可以实现只在必要的时候,例如读写延时线的延时偏离有效数据窗口的时候进行训练,避免定期训练带来的带宽消耗过大、资源占用过多的问题。
接下来对上述由主延时线测量一个周期的延时单元数量的步骤进行说明,如图4所示,上述S301步骤包括:
S401:由主延时线记录主延时线的输入相位,并逐步增加主延时线选中的延时单元数量。
可选的,图2中的主延时线的详细示意图可以如图5所示,参照图5,主延时线及其控制逻辑可以通过一个锁相的机制实现一个周期的延时单元数量的测量。
S402:由主延时线判断主延时线的输出相位和输入相位是否对齐,若是,将当前选中的延时单元数量作为一个周期的延时单元数量。
示例性的,参照图5,PHY的时钟输入给主延时线进行延时调节的同时,也输出给鉴相逻辑;初始状态下,主延时线的延时为0,因此其输入和输出时钟的相位是对齐的,然后通过不断增加主延时线的延时,等到下一次主延时线的输入和输出相位对齐后,认为主延时线锁定,此时主延时线的延时就是一个时钟周期,主延时线选中的延时单元数量就是一个时钟周期需要的延时单元的数量。
接下来对上述由写延时线和读延时线在训练过程中分别根据延时单元数量对写延时线和读延时线的延时进行调整,确定写延时线的有效数据窗口以及读延时线的有效数据窗口,并确定写延时线的延时和读延时线的延时的步骤进行说明,如图6所示,上述S302步骤包括:
S601:由写延时线在延时单元数量范围内,遍历所有的延时,将不发生写错误的写延时线的延时范围作为写延时线的有效数据窗口,并根据写延时线的有效数据窗口确定写延时线的延时。
可选的,写延时线的延时单元数量范围可以是根据一个周期的延时单元数量确定的写延时线可以进行调节的延时单元的数量范围。
示例性的,假设主延时线确定的延时单元数量是10,那么写延时线就可以根据延时单元数量确定第一数量可调区间为0-10,并在该区间内通过逐个增加或逐个减小延时单元的数量,遍历所有的延时,将不发生写错误的写延时线的延时范围作为写延时线的有效数据窗口。
可选的,写延时线可以将不发生写错误的写延时线的最小延时和最大延时的差值作为写延时线的有效数据窗口。
示例性的,假设有效数据窗口用D_Wi n表示,那么D_Wi n的计算方式可以是D_Win=d ly_max-d ly_mi n,其中d ly_max是读或者写数据不发生错时对应延时线的最大延时值,d ly_mi n是读或写数据不发生错误的最小延时值。
S602:由读延时线在延时单元数量范围内,遍历所有的延时,将不发生读错误的读延时线的延时范围作为读延时线的有效数据窗口,并根据读延时线的有效数据窗口确定读延时线的延时。
可选的,读延时线的延时单元数量范围可以是根据一个周期的延时单元数量确定的读延时线可以进行调节的延时单元的数量范围。
可选的,读延时线的待调整延时单元数量的上限可以是主延时线确定的延时单元数量。写延时线和读延时线可以是相互独立的两个从延时线。
示例性的,假设主延时线确定的延时单元数量是10,那么读延时线就可以根据延时单元数量确定第一数量可调区间为0-10,并在该区间内通过逐个增加或逐个减小延时单元的数量,遍历所有延时,将不发生读错误的读延时线的延时范围作为读延时线的有效数据窗口。
在确定写延时线和读延时线的有效数据窗口之后,写延时线和读延时线就可以根据有效数据窗口确定写延时线的延时和读延时线的延时,上述S601-S602步骤包括:
将写延时线的有效数据窗口的中心位置作为写延时线的延时。
示例性的,假设有效数据窗口D_Wi n=d ly_max-d ly_mi n,一个周期T的延时单元数量为e_trai n个,那么每个延时单元的延时可以为T/e_trai n,就可以确定写延时线的延时值为d ly_trai n=(d ly_mi n+d ly_max)/2,写延时线需要的延时单元数量就是(d ly_mi n+d ly_max)/2/(T/e_trai n)=e_trai n*(d ly_mi n+d ly_max)/2T。
将读延时线的有效数据窗口的中心位置作为读延时线的延时。
值得说明的是,读延时线和写延时线的有效数据窗口是独立的两个有效数据窗口,即可以确定不发生读错误的最大延时值和最小延时值的差值,作为读延时线的有效数据窗口;不发生写错误的最大延时值和最小延时值的差值,作为写延时线的有效数据窗口,并分别根据其有效数据窗口确定写延时线的延时和读延时线的延时。
可选的,可以将读延时线的有效数据窗口的中心位置所指示的延时作为读延时线的延时,读延时线的延时确定步骤可以与前述写延时线的延时确定步骤相同,本申请在此不作赘述。
以下是对上述S303步骤中,根据写延时线的延时、读延时线的延时、写延时线的有效数据窗口以及读延时线的有效数据窗口确定是否重新进行训练的具体说明,如图7所示,该步骤包括:
S701:确定写延时线的延时变化值与读延时线的延时变化值。
值得说明的是,当系统在运行过程中,若温度或电压等发生变化,导致延时单元的延时发生变化,此时每个延时单元的延时会发生变化,那么主延时线和从延时线的总延时都会发生变化。
可选的,写延时线和读延时线的延时变化值可以是与初始的每个延时单元的延时值相比,温度电压发生变化导致延时单元的延时发生变化后的各延时单元的延时值。
示例性的,假设此时主延时线测量一个时钟周期T需要延时单元的数量变为e_curr;此时每个延时单元的延时变为T/e_curr。
对于任意从延时线,由于延时单元延时的变化,导致当前延时变为:
d ly_curr=(T/e_curr)*(e_trai n*(d ly_mi n+d ly_max)/2T)
=(e_trai n/e_curr)*(d ly_mi n+d ly_max)/2
那么该从延时线的延时变化值d ly_var=|d ly_curr-d ly_trai n|,即为(|e_trai n-e_curr|/e_curr)*(d ly_mi n+d ly_max)/2。
S702:根据写延时线的延时变化值、读延时线的延时变化值、写延时线的有效数据窗口以及读延时线的有效数据窗口确定是否重新进行训练。
可选的,通过将写延时线的延时变化值和写延时线的有效数据窗口进行比对,可以确定当前写延时线的延时是否偏移了写延时线的有效数据窗口,从而确定是否需要重新进行写训练。
可选的,通过将读延时线的延时变化值和读延时线的有效数据窗口进行比对,可以确定当前读延时线的延时是否偏移了读延时线的有效数据窗口,从而确定是否需要重新进行读训练。
以下是对上述S702中,根据写延时线的延时变化值、读延时线的延时变化值、写延时线的有效数据窗口以及读延时线的有效数据窗口确定是否重新进行训练的进一步说明,如图8所示,上述S702步骤包括:
S801:将写延时线的延时变化值与写延时线的有效数据窗口的一半进行比较,得到第一比较结果。
可选的,第一比较结果可以指示是否需要重新进行写训练。
示例性的,可以首先用有效数据窗口减去预设阈值,再将得到的结果的一半与写延时线的延时变化值进行对比,确定写延时线的延时值是否超过有效数据窗口的边界,若超过了有效数据窗口的边界,则可以说明需要重新进行写训练,其中,预设阈值可以是用户定义的值。
S802:将读延时线的延时变化值与读延时线的有效数据窗口的一半进行比较,得到第二比较结果。
可选的,第二比较结果可以指示是否需要重新进行读训练。
示例性的,假设预设阈值为de l ta,当读延时线或写延时线中延时变化值和有效数据窗口满足d l y_var>=(D_Wi n/2-de l ta)的关系,就可以确定从延时线的延时变化超过有效数据窗口的边界,此时就需要重新进行读写训练。
值得注意的是,de l ta是一个用户定义的系统margi n,由于温度电压等因素对延时的影响并不是线性的,因此de l ta的值可以通过系统可配置的margi n值根据实际使用场景进行灵活调整。
S803:根据第一比较结果和第二比较结果确定是否重新进行训练。
可选的,根据写延时线的第一比较结果和读延时线的第二比较结果,可以确定是否需要重新进行训练。
接下来对上述S803中根据第一比较结果和第二比较结果确定是否重新进行训练作进一步说明。
若第一比较结果指示需要重新进行写训练,或第二比较结果指示需要重新进行读训练,则重新进行训练。
值得说明的是,读训练与写训练在运行时,读写功能是暂时无法正常运行的,因此只要第一比较结果指示需要重新进行写训练,或是第二比较结果指示需要重新进行读训练,本申请的数字延时线装置都可以重新进行读写训练,以使得读延时线和写延时线的数据和数据探针保持一个最优的相位关系,使得读写访问数据的有效数据窗口最大化,实现高速并行数据的可靠传输。
基于同一发明构思,本申请实施例中还提供了与训练触发方法对应的训练触发装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述训练触发方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图9所示,为本申请实施例提供的一种训练触发装置的示意图,所述装置包括:测量模块901、调整模块902、确定模块903;其中:
测量模块901,用于测量一个周期的延时单元数量,并将延时单元数量下发给各从延时线;
调整模块902,用于在训练过程中分别根据延时单元数量对写延时线和读延时线的延时进行调整,确定写延时线的有效数据窗口以及读延时线的有效数据窗口,并确定写延时线的延时和读延时线的延时;
确定模块903,用于根据写延时线的延时、读延时线的延时、写延时线的有效数据窗口以及读延时线的有效数据窗口确定是否重新进行训练,若是,则向主机发送训练信号,以使得主机根据训练信号进行训练操作。
可选的,测量模块901具体用于:
记录主延时线的输入相位,并逐步增加主延时线选中的延时单元数量;
判断主延时线的输出相位和输入相位是否对齐,若是,将当前选中的延时单元数量作为一个周期的延时单元数量。
可选的,调整模块902具体用于:
在延时单元数量范围内,遍历所有的延时,将不发生写错误的写延时线的延时范围作为写延时线的有效数据窗口,并根据写延时线的有效数据窗口确定写延时线的延时;
在延时单元数量范围内,遍历所有的延时,将不发生读错误的读延时线的延时范围作为读延时线的有效数据窗口,并根据读延时线的有效数据窗口确定读延时线的延时。
可选的,调整模块902具体用于:
将写延时线的有效数据窗口的中心位置作为写延时线的延时;
将读延时线的有效数据窗口的中心位置作为读延时线的延时。
可选的,确定模块903具体用于:
确定写延时线的延时变化值与读延时线的延时变化值;
根据写延时线的延时变化值、读延时线的延时变化值、写延时线的有效数据窗口以及读延时线的有效数据窗口确定是否重新进行训练。
可选的,确定模块903具体用于:
将写延时线的延时变化值与写延时线的有效数据窗口的一半进行比较,得到第一比较结果;
将读延时线的延时变化值与读延时线的有效数据窗口的一半进行比较,得到第二比较结果;
根据第一比较结果和第二比较结果确定是否重新进行训练。
可选的,确定模块903具体用于:
若第一比较结果指示需要重新进行写训练,或第二比较结果指示需要重新进行读训练,则重新进行训练。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本申请实施例还提供了一种电子设备,如图10所示,为本申请实施例提供的电子设备结构示意图,包括:处理器1001、存储器1002和总线。所述存储器1002存储有所述处理器1001可执行的机器可读指令(比如,图9中的装置中测量模块901、调整模块902、确定模块903对应的执行指令等),当计算机设备运行时,所述处理器1001与所述存储器1002之间通过总线通信,所述机器可读指令被所述处理器1001执行时执行上述训练触发方法的处理。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述训练触发方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-On ly Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种训练触发方法,其特征在于,应用于数字延时线装置,所述数字延时线装置包括:主延时线和多个从延时线,所述多个从延时线包括:写延时线和读延时线,所述方法包括:
由所述主延时线测量一个周期的延时单元数量,并将所述延时单元数量下发给各所述从延时线;
由所述写延时线和所述读延时线在训练过程中分别根据所述延时单元数量对所述写延时线和所述读延时线的延时进行调整,确定所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口,并确定所述写延时线的延时和所述读延时线的延时;
根据写延时线的延时、所述读延时线的延时、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练,若是,则向主机发送训练信号,以使得主机根据所述训练信号进行训练操作。
2.根据权利要求1所述的方法,其特征在于,所述由所述主延时线测量一个周期延时单元数量,包括:
由所述主延时线记录所述主延时线的输入相位,并逐步增加所述主延时线选中的延时单元数量;
由所述主延时线判断所述主延时线的输出相位和所述输入相位是否对齐,若是,将当前选中的延时单元数量作为所述一个周期的延时单元数量。
3.根据权利要求1所述的方法,其特征在于,所述由所述写延时线和所述读延时线在训练过程中分别根据所述延时单元数量对所述写延时线和所述读延时线的延时进行调整,确定所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口,并确定所述写延时线的延时和所述读延时线的延时,包括:
由所述写延时线在延时单元数量范围内,遍历所有的延时,将不发生写错误的写延时线的延时范围作为所述写延时线的有效数据窗口,并根据所述写延时线的有效数据窗口确定所述写延时线的延时;
由所述读延时线在所述延时单元数量范围内,遍历所有的延时,将不发生读错误的读延时线的延时范围作为所述读延时线的有效数据窗口,并根据所述读延时线的有效数据窗口确定所述读延时线的延时。
4.根据权利要求3所述的方法,其特征在于,根据所述写延时线的有效数据窗口确定所述写延时线的延时,包括:
将所述写延时线的有效数据窗口的中心位置作为所述写延时线的延时;
所述根据所述读延时线的有效数据窗口确定所述读延时线的延时,包括:
将所述读延时线的有效数据窗口的中心位置作为所述读延时线的延时。
5.根据权利要求1所述的方法,其特征在于,根据写延时线的延时、所述读延时线的延时、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练,包括:
确定所述写延时线的延时变化值与所述读延时线的延时变化值;
根据所述写延时线的延时变化值、所述读延时线的延时变化值、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练。
6.根据权利要求5所述的方法,其特征在于,所述根据所述写延时线的延时变化值、所述读延时线的延时变化值、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练,包括:
将所述写延时线的延时变化值与所述写延时线的有效数据窗口的一半进行比较,得到第一比较结果;
将所述读延时线的延时变化值与所述读延时线的有效数据窗口的一半进行比较,得到第二比较结果;
根据所述第一比较结果和所述第二比较结果确定是否重新进行训练。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一比较结果和所述第二比较结果确定是否重新进行训练,包括:
若所述第一比较结果指示需要重新进行写训练,或所述第二比较结果指示需要重新进行读训练,则重新进行训练。
8.一种训练触发装置,其特征在于,包括:
测量模块,用于测量一个周期的延时单元数量,并将所述延时单元数量下发给各从延时线;
调整模块,用于在训练过程中分别根据所述延时单元数量对写延时线和读延时线的延时进行调整,确定所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口,并确定所述写延时线的延时和所述读延时线的延时;
确定模块,用于根据写延时线的延时、所述读延时线的延时、所述写延时线的有效数据窗口以及所述读延时线的有效数据窗口确定是否重新进行训练,若是,则向主机发送训练信号,以使得主机根据所述训练信号进行训练操作。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如权利要求1至7任一项所述的训练触发方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一项所述的训练触发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718061.2A CN115881183B (zh) | 2022-12-29 | 2022-12-29 | 训练触发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718061.2A CN115881183B (zh) | 2022-12-29 | 2022-12-29 | 训练触发方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115881183A CN115881183A (zh) | 2023-03-31 |
CN115881183B true CN115881183B (zh) | 2023-10-10 |
Family
ID=85757357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211718061.2A Active CN115881183B (zh) | 2022-12-29 | 2022-12-29 | 训练触发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115881183B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118072775B (zh) * | 2023-12-31 | 2024-08-30 | 博越微电子(江苏)有限公司 | 一种分段式设计的onfi延时调节装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102637155A (zh) * | 2012-01-10 | 2012-08-15 | 江苏中科梦兰电子科技有限公司 | 通过训练加修正配置ddr3中数据选通信号延时的方法 |
CN115116489A (zh) * | 2022-06-30 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 高带宽存储器的derr管脚的训练方法和相关装置 |
-
2022
- 2022-12-29 CN CN202211718061.2A patent/CN115881183B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102637155A (zh) * | 2012-01-10 | 2012-08-15 | 江苏中科梦兰电子科技有限公司 | 通过训练加修正配置ddr3中数据选通信号延时的方法 |
CN115116489A (zh) * | 2022-06-30 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 高带宽存储器的derr管脚的训练方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115881183A (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7594088B2 (en) | System and method for an asynchronous data buffer having buffer write and read pointers | |
US7434081B2 (en) | System and method for read synchronization of memory modules | |
WO2021207919A1 (zh) | 控制器、存储器件访问系统、电子设备和数据传输方法 | |
US10783950B2 (en) | Memory management systems and methods using a management communication bus | |
US20060218331A1 (en) | System and method for communicating the synchronization status of memory modules during initialization of the memory modules | |
US10120590B2 (en) | Method for providing read data flow control or error reporting using a read data strobe | |
CN115881183B (zh) | 训练触发方法、装置、设备及存储介质 | |
JP2011204254A (ja) | 構成可能な相互接続トポロジを用いたi/o帯域幅の適応割当て | |
US11829626B2 (en) | Storage device and operating method of storage device | |
US20130254444A1 (en) | Image processing apparatus | |
US20230113337A1 (en) | Memory module and computing device containing the memory module | |
US20180225236A1 (en) | Memory controller, storage device, information processing system, and memory control method | |
CN101989466B (zh) | 应用于同步动态随机存取内存接口的数据截取及时序漂移侦测的装置及方法 | |
TWI819635B (zh) | 記憶體控制系統與記憶體控制方法 | |
CN102279801B (zh) | 存储器共享系统及方法 | |
CN110265075B (zh) | 一种内存接口的控制方法和系统 | |
WO2022179368A1 (zh) | 优化闪存颗粒的方法和相关装置 | |
CN115113926A (zh) | 指令字处理电路、芯片及方法 | |
CN105531681A (zh) | 存储装置、存储系统以及存储装置控制方法 | |
EP3992803A2 (en) | Storage device and operating method of storage device | |
CN117290265B (zh) | 一种自适应调节同异步接口装置、方法和芯片 | |
US20220309009A1 (en) | Methods of controlling power consumption, boards, electronic devices and storage media | |
CN108898036B (zh) | 一种数据读写控制方法 | |
CN117251390A (zh) | 存储器控制系统与存储器控制方法 | |
CN109582615A (zh) | 一种ddr3控制系统 |
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 |