延迟校正方法、电路、装置、设备及计算机可读存储介质
技术领域
本公开涉及信号处理技术领域,尤其涉及一种延迟校正方法、电路、装置、设备及计算机可读存储介质。
背景技术
在现代计算机体系结构下,影响系统性能的两个主要因素是中央处理器(CPU)的计算能力和内存的访问效率。CPU的计算能力经过多年的发展,已有长足进步,但是内存技术的提升却没有跟上CPU发展的步伐,成为了当前计算机性能提升的主要瓶颈。如今,CPU的处理能力已经远远超过内存的数据吞吐率,当数据还没有从内存中读取回来时,CPU只能处于空闲状态。为了解决这种带宽不匹配的问题,CPU普遍采用多级缓存策略,将CPU可能需要的数据提前从内存转移到片上缓存中,这样当CPU需要使用这些数据时,就可以高效的从缓存中直接读取,但同等数据容量的片上缓存成本要远高于片外内存颗粒,因此采用多级缓存策略的代价是成本的增加,而且无法从根本上解决内存的访问效率对系统性能的影响。
为了提升内存的访问效率,现有技术中主要存在两种方案,一种是增加内存的数据位宽,例如HBM技术,这种方案的优点是可以用较低的时钟频率获得较大的带宽并且功耗也较低,但由于其需要采用堆叠技术,因此生产难度大,成本高,目前基本只应用于高端显卡;另一种是提高内存的数据速率,例如GDDR6(Graphics Double Data Rate,version 6,第6代双倍数据传输率存储器)技术,这种方案的优点是生产工艺成熟,成本低,但由于时钟频率的提升会导致数据的有效采样窗口非常小,比如16Gbps的GDDR6,其有效数据采样窗口的理论值仅为62.5ps,再加上高速信号在实际使用过程中会受到各种影响,真正有效的采样窗口可能都达不到30ps,这就对于内存控制器的设计提出了很大的挑战。
另外,为了使内存控制器能够正确的从GDDR颗粒中读取数据,GDDR的技术规范提供了一种数据训练方法,来帮助内存控制器找到有效数据采样窗口,但是这种方法需要占用内存的带宽,因此一般只是在GDDR颗粒初始化的过程中做一次,在GDDR颗粒正常工作的过程中不会再做。同时,由于GDDR颗粒在工作过程中,温度、电压等条件会发生变化,这也会导致GDDR颗粒的有效数据采样窗口发生偏移,一旦无法正确的从GDDR颗粒中读取数据,内存控制器不得不停止正常的工作,重新去寻找有效数据采样窗口,这样就会造成内存带宽的损失。
发明内容
为了解决上述现有技术中存在的问题,本公开实施例提供了一种延迟校正方法、电路、装置、设备及计算机可读存储介质。
第一方面,本公开实施例提供了一种延迟校正方法,包括:
设置第一采样时钟延迟值并进行数据采样得到第一采样数据,其中,所述第一采样时钟延迟值用于控制第一采样时钟的延迟,以确定第一数据采样窗口的第一采样点;
设置第二采样时钟延迟值并进行数据采样得到第二采样数据,其中,所述第二采样时钟延迟值用于控制第二采样时钟的延迟,以确定第二数据采样窗口的第二采样点;
改变所述第二采样时钟延迟值,并根据所述第一采样数据与第二采样数据的比较结果,对于所述第一采样时钟延迟值进行校正。
在本公开一实施方式中,所述设置第一采样时钟延迟值并进行数据采样得到第一采样数据,包括:
设置第一采样时钟延迟值;
调整所述第一采样时钟延迟值,使得所述第一采样点位于所述第一数据采样窗口的中心;
基于所述第一采样时钟延迟值进行数据采样,得到第一采样数据。
在本公开一实施方式中,所述设置第二采样时钟延迟值并进行数据采样得到第二采样数据,包括:
设置第二采样时钟延迟初始值;
基于所述第二采样时钟延迟初始值进行数据采样,得到第二采样数据。
在本公开一实施方式中,所述第二采样时钟延迟值的初始值与所述第一采样时钟延迟值相同。
在本公开一实施方式中,所述改变所述第二采样时钟延迟值,并根据所述第一采样数据与第二采样数据的比较结果,对于所述第一采样时钟延迟值进行校正,包括:
改变所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,确定目标数据采样窗口的边界点;
根据所述第一采样时钟延迟值与所述边界点之间的距离差,对于所述第一采样时钟延迟值进行校正。
在本公开一实施方式中,所述改变所述第二采样时钟延迟值,并当所述第一采样数据与第二采样数据不相同时,确定目标数据采样窗口的边界点,包括:
减小所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值确定为所述目标数据采样窗口的第一边界点;
增大所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值确定为所述目标数据采样窗口的第二边界点。
在本公开一实施方式中,所述根据所述第一采样时钟延迟值与所述边界点之间的距离差,对于所述第一采样时钟延迟值进行校正,包括:
计算所述第一采样时钟延迟值与所述第一边界点之间的第一距离;
计算所述第一采样时钟延迟值与所述第二边界点之间的第二距离;
计算所述第一距离与第二距离之间的距离差;
根据所述距离差对于所述第一采样时钟延迟值进行校正。
第二方面,本公开实施例提供了一种延迟校正电路,包括:时钟器、第一延迟链电路、第一采样器、第二延迟链电路、第二采样器、比较器和校正器,其中:
所述第一延迟链电路与所述时钟器连接,用于生成第一采样时钟延迟值和第一采样时钟,所述第一采样时钟延迟值用于控制第一采样时钟的延迟;
所述第二延迟链电路与所述时钟器连接,用于生成第二采样时钟延迟值和第二采样时钟,所述第二采样时钟延迟值用于控制第二采样时钟的延迟,且在延迟校正过程中是可变的;
所述第一采样器与所述第一延迟链电路连接,用于根据所述第一采样时钟进行数据采样,得到第一采样数据;
所述第二采样器与所述第二延迟链电路连接,用于根据所述第二采样时钟进行数据采样,得到第二采样数据;
所述比较器分别与所述第一采样器和所述第二采样器连接,用于对于所述第一采样数据和第二采样数据进行比较;
所述校正器与所述比较器连接,用于根据比较结果获得所述第一采样时钟延迟值的校正值,并将所述校正值发送给所述第一延迟链电路。
在本公开一实施方式中,所述第一延迟链电路包括:第一设置器和第一调节器,其中:
所述第一设置器用于设置第一采样时钟延迟值;
所述第一调节器与所述第一设置器连接,用于调整所述第一采样时钟延迟值,使得所述第一采样点位于所述第一数据采样窗口的中心。
在本公开一实施方式中,所述第二延迟链电路包括:第二设置器和第二调节器,其中:
所述第二设置器用于设置第二采样时钟延迟初始值;
所述第二调节器与所述第二设置器连接,用于改变所述第二采样时钟延迟值。
在本公开一实施方式中,所述第二采样时钟延迟值的初始值与所述第一采样时钟延迟值相同。
在本公开一实施方式中,所述比较器包括:记录器和计算器,其中:
所述记录器用于当所述第二采样数据与第一采样数据不相同时,记录目标数据采样窗口的边界点;
所述计算器与所述记录器连接,用于计算所述第一采样时钟延迟值与所述边界点之间的距离差,以使所述校正器根据所述距离差获得所述第一采样时钟延迟值的校正值。
在本公开一实施方式中,当所述第二调节器减小所述第二采样时钟延迟值时,所述记录器在所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值记录为所述目标数据采样窗口的第一边界点;当所述第二调节器增大所述第二采样时钟延迟值时,所述记录器在所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值记录为所述目标数据采样窗口的第二边界点。
在本公开一实施方式中,所述计算器包括:
第一计算器,用于计算所述第一采样时钟延迟值与所述第一边界点之间的第一距离;
第二计算器,用于计算所述第一采样时钟延迟值与所述第二边界点之间的第二距离;
第三计算器,用于计算所述第一距离与第二距离之间的距离差。
第三方面,本公开实施例提供了一种延迟校正装置,包括:
第一设置模块,被配置为设置第一采样时钟延迟值并进行数据采样得到第一采样数据,其中,所述第一采样时钟延迟值用于控制第一采样时钟的延迟,以确定第一数据采样窗口的第一采样点;
第二设置模块,被配置为设置第二采样时钟延迟值并进行数据采样得到第二采样数据,其中,所述第二采样时钟延迟值用于控制第二采样时钟的延迟,以确定第二数据采样窗口的第二采样点;
校正模块,被配置为改变所述第二采样时钟延迟值,并根据所述第一采样数据与第二采样数据的比较结果,对于所述第一采样时钟延迟值进行校正。
在本公开一实施方式中,所述第一设置模块包括:
第一设置子模块,被配置为设置第一采样时钟延迟值;
调整子模块,被配置为调整所述第一采样时钟延迟值,使得所述第一采样点位于所述第一数据采样窗口的中心;
第一采样子模块,被配置为基于所述第一采样时钟延迟值进行数据采样,得到第一采样数据。
在本公开一实施方式中,所述第二设置模块包括:
第二设置子模块,被配置为设置第二采样时钟延迟初始值;
第二采样子模块,被配置为基于所述第二采样时钟延迟初始值进行数据采样,得到第二采样数据。
在本公开一实施方式中,所述第二采样时钟延迟值的初始值与所述第一采样时钟延迟值相同。
在本公开一实施方式中,所述校正模块包括:
确定子模块,被配置为改变所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,确定目标数据采样窗口的边界点;
第一校正子模块,被配置为根据所述第一采样时钟延迟值与所述边界点之间的距离差,对于所述第一采样时钟延迟值进行校正。
在本公开一实施方式中,所述确定子模块包括:
第一确定子模块,被配置为减小所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值确定为所述目标数据采样窗口的第一边界点;
第二确定子模块,被配置为增大所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值确定为所述目标数据采样窗口的第二边界点。
在本公开一实施方式中,所述第一校正子模块包括:
第一计算子模块,被配置为计算所述第一采样时钟延迟值与所述第一边界点之间的第一距离;
第二计算子模块,被配置为计算所述第一采样时钟延迟值与所述第二边界点之间的第二距离;
第三计算子模块,被配置为计算所述第一距离与第二距离之间的距离差;
第二校正子模块,被配置为根据所述距离差对于所述第一采样时钟延迟值进行校正。
第四方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持延迟校正装置执行上述第一方面中延迟校正方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述延迟校正装置还可以包括通信接口,用于延迟校正装置与其他设备或通信网络通信。
第五方面,本公开实施例提供了一种计算机可读存储介质,用于存储延迟校正装置所用的计算机指令,其包含用于执行上述第一方面中延迟校正方法为延迟校正装置所涉及的计算机指令。
本公开实施例提供的技术方案可以包括以下有益效果:
上述技术方案设置了两路延迟链进行采样时钟延迟控制,对于同一数据信号进行采集,借助其中一路采样时钟延迟的变化,获取两路不同采样数据,并进一步通过两路不同采样数据的比较,对于采样时钟延迟值进行校正。该技术方案能够对于有效数据采样窗口进行自适应跟踪,能够实现在不增加生产难度、不增加成本、不影响内存带宽的前提下,使得内存控制器在各种环境下均可以稳定的从像GDDR这种高数据速率的内存颗粒中读取正确数据的技术效果。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本发明实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1是根据本公开一示例性实施例的延迟校正方法的流程图;
图2是根据本公开一示例性实施例的延迟校正方法的步骤S101的流程图;
图3是根据本公开一示例性实施例的延迟校正方法的步骤S102的流程图;
图4是根据本公开一示例性实施例的延迟校正方法的步骤S103的流程图;
图5是根据本公开一示例性实施例的延迟校正方法的步骤S401的流程图;
图6是根据本公开一示例性实施例的延迟校正方法的步骤S402的流程图;
图7是根据本公开一示例性实施例的延迟校正电路的结构示意图;
图8是根据本公开一示例性实施例的延迟校正装置的结构框图;
图9示出根据本公开一实施方式的电子设备的结构框图;
图10是适于用来实现根据本公开一实施方式的延迟校正方法的计算机系统的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
本公开实施例提供的技术方案设置了两路延迟链进行采样时钟延迟控制,对于同一数据信号进行采集,借助其中一路采样时钟延迟的变化,获取两路不同采样数据,并进一步通过两路不同采样数据的比较,对于采样时钟延迟值进行校正。该技术方案能够对于有效数据采样窗口进行自适应跟踪,能够实现在不增加生产难度、不增加成本、不影响内存带宽的前提下,使得内存控制器在各种环境下均可以稳定的从像GDDR这种高数据速率的内存颗粒中读取正确数据的技术效果。
图1示出根据本公开一实施方式的延迟校正方法的流程图,如图1所示,所述延迟校正方法包括以下步骤S101-S103:
在步骤S101中,设置第一采样时钟延迟值并进行数据采样得到第一采样数据,其中,所述第一采样时钟延迟值用于控制第一采样时钟的延迟,以确定第一数据采样窗口的第一采样点;
在步骤S102中,设置第二采样时钟延迟值并进行数据采样得到第二采样数据,其中,所述第二采样时钟延迟值用于控制第二采样时钟的延迟,以确定第二数据采样窗口的第二采样点;
在步骤S103中,改变所述第二采样时钟延迟值,并根据所述第一采样数据与第二采样数据的比较结果,对于所述第一采样时钟延迟值进行校正。
上文提及,在现代计算机体系结构下,影响系统性能的两个主要因素是中央处理器(CPU)的计算能力和内存的访问效率。CPU的计算能力经过多年的发展,已有长足进步,但是内存技术的提升却没有跟上CPU发展的步伐,成为了当前计算机性能提升的主要瓶颈。对于内存访问效率的提升,现有技术手段或者生产难度大、成本高,或者会造成内存带宽的损失。
考虑到上述问题,同时考虑到为了实现数据训练,寻找有效的数据采样窗口,通常会在内存控制器中设有延迟链(delaychain)电路去控制采样时钟的延迟。因此,在该实施方式中,提出一种延迟校正方法,该方法设置了两路延迟链进行采样时钟延迟控制,对于同一数据信号进行采集,借助其中一路采样时钟延迟的变化,获取两路不同采样数据,并进一步通过两路不同采样数据的比较,对于采样时钟延迟值进行校正。该技术方案能够对于有效数据采样窗口进行自适应跟踪,能够实现在不增加生产难度、不增加成本、不影响内存带宽的前提下,使得内存控制器在各种环境下均可以稳定的从像GDDR这种高数据速率的内存颗粒中读取正确数据的技术效果。
具体地,在该实施方式中,首先设置第一条延迟链电路的采样时钟延迟值,即第一采样时钟延迟值。其中,所述第一条延迟链电路是用于产生第一采样时钟延迟值的电路,而所述第一采样时钟延迟值用于控制第一采样时钟的延迟,以确定第一数据采样窗口的第一采样点然后进行后续数据采样得到第一采样数据。其中,所述第一采样时钟延迟值在数据采样周期中是相对固定不变的,所述数据采样周期可以指代整个数据采样过程,也可以指代借助第二采样时钟延迟值进行调整前的数据采样阶段。
然后设置第二条延迟链电路的采样时钟延迟值,即第二采样时钟延迟值。其中,所述第二条延迟链电路是用于产生第二采样时钟延迟值的电路,而所述第二采样时钟延迟值用于控制第二采样时钟的延迟,以确定第二数据采样窗口的第二采样点然后进行对于同一数据的采样操作得到第二采样数据。其中,所述第二采样时钟延迟值在数据采样过程中是可调可变的,并依据变化的第二采样时钟延迟值进行数据采样得到的第二采样数据作为参考数据,将其与所述第一采样数据进行比较,以根据比较结果对于所述第一采样时钟延迟值进行校正。
在本实施例的一个可选实现方式中,如图2所示,所述步骤S101,即设置第一采样时钟延迟值并进行数据采样得到第一采样数据的步骤,包括以下步骤S201-S203:
在步骤S201中,设置第一采样时钟延迟值;
在步骤S202中,调整所述第一采样时钟延迟值,使得所述第一采样点位于所述第一数据采样窗口的中心;
在步骤S203中,基于所述第一采样时钟延迟值进行数据采样,得到第一采样数据。
为了获得相对准确的初步采样数据,在该实施方式中,首先设置第一条延迟链电路的第一采样时钟延迟值;然后对于所述第一采样时钟延迟值进行调整,以寻找有效的数据采样窗口,并借助对于所述第一采样时钟延迟值的调整,使得根据所述第一采样时钟延迟值产生的所述第一采样点成为当前最佳采样点,即使得所述第一采样点位于所述第一数据采样窗口的中心;最后基于调整后得到的所述第一采样时钟延迟值进行数据采样,得到第一采样数据。
在本实施例的一个可选实现方式中,如图3所示,所述步骤S102,即设置第二采样时钟延迟值并进行数据采样得到第二采样数据的步骤,包括以下步骤S301-S302:
在步骤S301中,设置第二采样时钟延迟初始值;
在步骤S302中,基于所述第二采样时钟延迟初始值进行数据采样,得到第二采样数据。
为了能够提供用于调整第一采样时钟延迟值的参考值,在该实施方式中,设置一第二条延迟链电路,以获得第二采样数据,后续借助与第一采样数据的比较来对所述第一采样时钟延迟值进行调整。具体地,首先设置第二采样时钟延迟初始值;然后基于所述第二采样时钟延迟初始值进行数据采样,得到第二采样数据,其中,所述第二采样时钟延迟值的初始值与所述第一采样时钟延迟值相同。
为了统一采样时钟延迟值的生成规则,在本实施例的一个可选实现方式中,用于产生所述第二采样时钟延迟初始值的第二条延迟链电路与所述第一条延迟链电路在物理上的布局完全相同。
在本实施例的一个可选实现方式中,如图4所示,所述步骤S103,即改变所述第二采样时钟延迟值,并根据所述第一采样数据与第二采样数据的比较结果,对于所述第一采样时钟延迟值进行校正的步骤,包括以下步骤S401-S402:
在步骤S401中,改变所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,确定目标数据采样窗口的边界点;
在步骤S402中,根据所述第一采样时钟延迟值与所述边界点之间的距离差,对于所述第一采样时钟延迟值进行校正。
在开始进行数据采样时,所述第一采样时钟延迟值先保持不变,根据确定的第一采样点进行正常的数据采样,同时,第二路数据采样也开始进行,但第二路数据采样过程中,需要对于所述第二采样时钟延迟值进行调整,采集得到第二采样数据,并借助所述第二采样数据与第一采样数据之间的区别,判断当前延迟值是否处于有效数据采样窗口内,以及是否到达目标数据采样窗口的边界点,其中,所述目标数据采样窗口指的是有效数据采样窗口。
具体地,在第二路数据采样过程中,改变所述第二采样时钟延迟值,并当得到的所述第二采样数据与第一采样数据不相同时,确定目标数据采样窗口的边界点;然后根据所述第一采样时钟延迟值与所述边界点之间的距离差,对于所述第一采样时钟延迟值进行校正。
在本实施例的一个可选实现方式中,如图5所示,所述步骤S401,即改变所述第二采样时钟延迟值,并当所述第一采样数据与第二采样数据不相同时,确定目标数据采样窗口的边界点的步骤,包括以下步骤S501-S502:
在步骤S501中,减小所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值确定为所述目标数据采样窗口的第一边界点;
在步骤S502中,增大所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值确定为所述目标数据采样窗口的第二边界点。
在对于所述第二采样时钟延迟值进行调整的过程中,首先从初始值开始不断减小所述第二采样时钟延迟值,同时对于得到的第二采样数据与根据所述第一采样时钟延迟值得到的第一采样数据进行比较。若所述第二采样数据与第一采样数据相同,则说明当前采样时钟延迟值仍处于有效数据采样窗口内,当所述第二采样数据与第一采样数据不相同时,就说明当前延迟值为所述有效数据采样窗口的一个边界值。然后不断增加所述第二采样时钟延迟值,同时对于得到的第二采样数据与根据所述第一采样时钟延迟值得到的第一采样数据进行比较,类似地,若所述第二采样数据与第一采样数据相同,则说明当前采样时钟延迟值仍处于有效数据采样窗口内,当所述第二采样数据与第一采样数据不相同时,就说明当前延迟值为所述有效数据采样窗口的另一个边界值。这样,通过不断的减小、增加、改变所述第二采样时钟延迟值,以及对于两路采样数据的比较,可确定所述目标数据采样窗口的边界点。
在本实施例的一个可选实现方式中,如图6所示,所述步骤S402,即根据所述第一采样时钟延迟值与所述边界点之间的距离差,对于所述第一采样时钟延迟值进行校正的步骤,包括以下步骤S601-S604:
在步骤S601中,计算所述第一采样时钟延迟值与所述第一边界点之间的第一距离;
在步骤S602中,计算所述第一采样时钟延迟值与所述第二边界点之间的第二距离;
在步骤S603中,计算所述第一距离与第二距离之间的距离差;
在步骤S604中,根据所述距离差对于所述第一采样时钟延迟值进行校正。
在该实施方式中,在确定所述有效数据采样窗口的边界点之后,首先计算所述第一采样时钟延迟值与所述第一边界点之间的第一距离;然后计算所述第一采样时钟延迟值与所述第二边界点之间的第二距离;然后计算所述第一距离与第二距离之间的距离差,以判断所述有效数据采样窗口是否向左或者向右发生偏移;最后根据所述距离差对于所述第一采样时钟延迟值进行校正,以达到跟踪有效数据采样窗口的目的。
上述的调整、检测、计算以及校正过程会不断的循环进行,每一个循环都可认为是一个数据采样周期或者说一个数据采样校正周期,以此来保证内存控制器可以始终稳定的采样得到正确的数据。基于上述技术方案,当所述有效数据采样窗口发生变化时,无需使用数据训练方法重新寻找有效数据采样窗口,借助对于正常采样数据使用的第一采样时钟延迟值的调整,就可以追踪得到准确的有效数据采样窗口。很显然,该技术方案能够实现在不增加生产难度、不增加成本、不影响内存带宽的前提下,使得内存控制器在各种环境下均可以稳定的从像GDDR这种高数据速率的内存颗粒中读取正确数据的技术效果。
根据本公开的另一方面,提出一种延迟校正电路,如图7所示,所述延迟校正电路包括:时钟器707、第一延迟链电路701、第一采样器702、第二延迟链电路703、第二采样器704、比较器705和校正器706,其中:
所述第一延迟链电路701与所述时钟器707连接,用于生成第一采样时钟延迟值和第一采样时钟,所述第一采样时钟延迟值用于控制第一采样时钟的延迟;
所述第二延迟链电路703与所述时钟器707连接,用于生成第二采样时钟延迟值和第二采样时钟,所述第二采样时钟延迟值用于控制第二采样时钟的延迟,且在延迟校正过程中是可变的;
所述第一采样器702与所述第一延迟链电路701连接,用于根据所述第一采样时钟进行数据采样,得到第一采样数据;
所述第二采样器704与所述第二延迟链电路703连接,用于根据所述第二采样时钟进行数据采样,得到第二采样数据;
所述比较器705分别与所述第一采样器702和所述第二采样器704连接,用于对于所述第一采样数据和第二采样数据进行比较;
所述校正器706与所述比较器705连接,用于根据比较结果获得所述第一采样时钟延迟值的校正值,并将所述校正值发送给所述第一延迟链电路701。
上文提及,在现代计算机体系结构下,影响系统性能的两个主要因素是中央处理器(CPU)的计算能力和内存的访问效率。CPU的计算能力经过多年的发展,已有长足进步,但是内存技术的提升却没有跟上CPU发展的步伐,成为了当前计算机性能提升的主要瓶颈。对于内存访问效率的提升,现有技术手段或者生产难度大、成本高,或者会造成内存带宽的损失。
考虑到上述问题,同时考虑到为了实现数据训练,寻找有效的数据采样窗口,通常会在内存控制器中设有延迟链(delaychain)电路去控制采样时钟的延迟。因此,在该实施方式中,提出一种延迟校正电路,该电路设置了两路延迟链电路进行采样时钟延迟控制,对于同一数据信号进行采集,借助其中一路采样时钟延迟的变化,获取两路不同采样数据,并进一步通过两路不同采样数据的比较,获取采样时钟延迟值的校正值,进而对于采样时钟延迟值进行校正。该技术方案能够对于有效数据采样窗口进行自适应跟踪,能够实现在不增加生产难度、不增加成本、不影响内存带宽的前提下,使得内存控制器在各种环境下均可以稳定的从像GDDR这种高数据速率的内存颗粒中读取正确数据的技术效果。
其中,所述第一条延迟链电路是用于产生第一采样时钟延迟值的电路,而所述第一采样时钟延迟值用于控制第一采样时钟的延迟生成第一采样时钟,以确定第一数据采样窗口的第一采样点然后进行后续数据采样得到第一采样数据。其中,所述第一采样时钟延迟值在数据采样周期中是相对固定不变的,所述数据采样周期可以指代整个数据采样过程,也可以指代借助第二采样时钟延迟值进行调整前的数据采样阶段。
其中,所述第二条延迟链电路是用于产生第二采样时钟延迟值的电路,而所述第二采样时钟延迟值用于控制第二采样时钟的延迟生成第二采样时钟,以确定第二数据采样窗口的第二采样点然后进行对于同一数据的采样操作得到第二采样数据。其中,所述第二采样时钟延迟值在数据采样过程中是可调可变的,并依据变化的第二采样时钟延迟值进行数据采样得到的第二采样数据作为参考数据,将其与所述第一采样数据进行比较,以根据比较结果获取所述第一采样时钟延迟值的校正值,进而对于所述第一采样时钟延迟值进行校正。
在本实施例的一个可选实现方式中,所述第一延迟链电路包括:第一设置器和第一调节器,其中:
所述第一设置器用于设置第一采样时钟延迟值;
所述第一调节器与所述第一设置器连接,用于调整所述第一采样时钟延迟值,使得所述第一采样点位于所述第一数据采样窗口的中心。
在该实施方式中,所述第一设置器设置了第一采样时钟延迟值后,所述第一调节器对于所述第一采样时钟延迟值进行调整,以寻找有效的数据采样窗口,并借助对于所述第一采样时钟延迟值的调整,使得根据所述第一采样时钟延迟值产生的所述第一采样点成为当前最佳采样点,即使得所述第一采样点位于所述第一数据采样窗口的中心,后续采样器可基于调整后得到的所述第一采样时钟延迟值而生成的第一采样时钟进行数据采样,得到第一采样数据。
在本实施例的一个可选实现方式中,所述第二延迟链电路包括:第二设置器和第二调节器,其中:
所述第二设置器用于设置第二采样时钟延迟初始值;
所述第二调节器与所述第二设置器连接,用于改变所述第二采样时钟延迟值。
在该实施方式中,所述第二设置器设置了第二采样时钟延迟初始值后,采样器就可根据所述第二采样时钟延迟初始值生成的第二采样时钟进行采样得到第二采样数据,后续所述第二调节器再对所述第二采样时钟延迟值进行改变,以得到不同的第二采样数据。
在本实施例的一个可选实现方式中,所述第二采样时钟延迟值的初始值与所述第一采样时钟延迟值相同。
在本实施例的一个可选实现方式中,所述比较器包括:记录器和计算器,其中:
所述记录器用于当所述第二采样数据与第一采样数据不相同时,记录目标数据采样窗口的边界点;
所述计算器与所述记录器连接,用于计算所述第一采样时钟延迟值与所述边界点之间的距离差,以使所述校正器根据所述距离差获得所述第一采样时钟延迟值的校正值,将校正值发送给所述第一延迟链电路,以对于所述第一采样时钟延迟值进行校正。
更为具体地,在本实施例的一个可选实现方式中,当所述第二调节器减小所述第二采样时钟延迟值时,所述记录器在所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值记录为所述目标数据采样窗口的第一边界点;当所述第二调节器增大所述第二采样时钟延迟值时,所述记录器在所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值记录为所述目标数据采样窗口的第二边界点。
更为具体地,在本实施例的一个可选实现方式中,所述计算器包括:
第一计算器,用于计算所述第一采样时钟延迟值与所述第一边界点之间的第一距离;
第二计算器,用于计算所述第一采样时钟延迟值与所述第二边界点之间的第二距离;
第三计算器,用于计算所述第一距离与第二距离之间的距离差。
在上述实现方式中,在采样器开始进行数据采样时,所述第一采样时钟延迟值先保持不变,采样器根据确定的第一采样点进行正常的数据采样,同时,采样器的第二路数据采样也开始进行,但第二路数据采样过程中,第二调节器会对于所述第二采样时钟延迟值进行调整,采集得到不同的第二采样数据,具体地,首先从初始值开始不断减小所述第二采样时钟延迟值,同时比较器对于得到的第二采样数据与根据所述第一采样时钟延迟值得到的第一采样数据进行比较。若所述第二采样数据与第一采样数据相同,则说明当前采样时钟延迟值仍处于有效数据采样窗口内,当所述第二采样数据与第一采样数据不相同时,就说明当前延迟值为所述有效数据采样窗口的一个边界值。然后不断增加所述第二采样时钟延迟值,同时对于得到的第二采样数据与根据所述第一采样时钟延迟值得到的第一采样数据进行比较,类似地,若所述第二采样数据与第一采样数据相同,则说明当前采样时钟延迟值仍处于有效数据采样窗口内,当所述第二采样数据与第一采样数据不相同时,就说明当前延迟值为所述有效数据采样窗口的另一个边界值。这样,通过不断的减小、增加、改变所述第二采样时钟延迟值,以及对于两路采样数据的比较,可确定所述目标数据采样窗口的边界点。之后,通过计算所述第一采样时钟延迟值与所述第一边界点之间的第一距离、所述第一采样时钟延迟值与所述第二边界点之间的第二距离,以及所述第一距离与第二距离之间的距离差,来判断所述有效数据采样窗口是否向左或者向右发生偏移,最后再根据所述距离差获得所述第一采样时钟延迟值的校正值,以对于所述第一采样时钟延迟值进行校正,以达到跟踪有效数据采样窗口的目的。
根据本公开的另一方面,提出一种延迟校正装置。图8示出根据本公开一实施方式的延迟校正装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图8所示,所述延迟校正装置包括:
第一设置模块801,被配置为设置第一采样时钟延迟值并进行数据采样得到第一采样数据,其中,所述第一采样时钟延迟值用于控制第一采样时钟的延迟,以确定第一数据采样窗口的第一采样点;
第二设置模块802,被配置为设置第二采样时钟延迟值并进行数据采样得到第二采样数据,其中,所述第二采样时钟延迟值用于控制第二采样时钟的延迟,以确定第二数据采样窗口的第二采样点;
校正模块803,被配置为改变所述第二采样时钟延迟值,并根据所述第一采样数据与第二采样数据的比较结果,对于所述第一采样时钟延迟值进行校正。
在本实施例的一个可选实现方式中,所述第一设置模块包括:
第一设置子模块,被配置为设置第一采样时钟延迟值;
调整子模块,被配置为调整所述第一采样时钟延迟值,使得所述第一采样点位于所述第一数据采样窗口的中心;
第一采样子模块,被配置为基于所述第一采样时钟延迟值进行数据采样,得到第一采样数据。
在本实施例的一个可选实现方式中,所述第二设置模块包括:
第二设置子模块,被配置为设置第二采样时钟延迟初始值;
第二采样子模块,被配置为基于所述第二采样时钟延迟初始值进行数据采样,得到第二采样数据。
在本实施例的一个可选实现方式中,所述第二采样时钟延迟值的初始值与所述第一采样时钟延迟值相同。
在本实施例的一个可选实现方式中,所述校正模块包括:
确定子模块,被配置为改变所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,确定目标数据采样窗口的边界点;
第一校正子模块,被配置为根据所述第一采样时钟延迟值与所述边界点之间的距离差,对于所述第一采样时钟延迟值进行校正。
在本实施例的一个可选实现方式中,所述确定子模块包括:
第一确定子模块,被配置为减小所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值确定为所述目标数据采样窗口的第一边界点;
第二确定子模块,被配置为增大所述第二采样时钟延迟值,并当所述第二采样数据与第一采样数据不相同时,将当前第二采样时钟延迟值确定为所述目标数据采样窗口的第二边界点。
在本实施例的一个可选实现方式中,所述第一校正子模块包括:
第一计算子模块,被配置为计算所述第一采样时钟延迟值与所述第一边界点之间的第一距离;
第二计算子模块,被配置为计算所述第一采样时钟延迟值与所述第二边界点之间的第二距离;
第三计算子模块,被配置为计算所述第一距离与第二距离之间的距离差;
第二校正子模块,被配置为根据所述距离差对于所述第一采样时钟延迟值进行校正。
本实施例提出的延迟校正装置与图1所示实施例及相关实施例中提出的延迟校正方法对应一致,具体细节可参见上述对延迟校正方法的描述,在此不再赘述。
本公开还公开了一种电子设备,图9示出根据本公开一实施方式的电子设备的结构框图,如图9所示,所述电子设备900包括存储器901和处理器902;其中,
所述存储器901用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器902执行以实现上述任一方法步骤。
图10适于用来实现根据本公开实施方式的延迟校正方法的计算机系统的结构示意图。
如图10所示,计算机系统1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行上述实施方式中的各种处理。在RAM1003中,还存储有系统1000操作所需的各种程序和数据。CPU1001、ROM1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行上述延迟校正方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。