一种确定最优延时的方法及设备与流程

文档序号:15686159发布日期:2018-10-16 21:04阅读:183来源:国知局

本发明涉及电子电路技术领域,特别涉及一种确定最优延时的方法及设备。



背景技术:

现有技术中的控制器在读写存储器时,由于设计误差、阻抗匹配等因素常常导致链路延时错误从而无法正确输出读、写、时钟的时序波形,因此在设计中会对连接至存储器的链路设计延时电路对电路的延时进行控制,以确保调节时序的相位输出正确时序。但是设计太多级延时电路会造成使用者无法快速、有效的延时,从而造成不能稳定读写存储器,因此需要确定最优延时值用以对每条链路进行延时控制。

现有技术得中到最优延时方法主要以测试为主,即通过示波器测量或者通过后级仿真得到每个延时单元的延时时间,然后计算出链路延时控制的最优延时值。采用上述方法确定最优延时值后,一旦改变链路布局布线或者板材质量出现问题,就需要重新进行试验、测试,存在耗费时间、耗费人力、效率低下等问题。

综上,现有技术中只能通过人工测试的方式获得链路的最优延时值,存在过多人工操作并且无法灵活、高效确定链路的最优延时值。



技术实现要素:

本发明提供一种确定最优延时的方法及设备,用以解决现有技术中存在的只能通过人工测试的方式获得链路的最优延时值,存在过多人工操作并且无法灵活、高效确定链路的最优延时值的问题。

本发明提供的确定最优延时的方法,包括:

从第一延时集合中确定目标链路对应的可用延时集合,其中使用所述可用延时集合中的延时值作为目标链路的延时值进行读写操作时,至少一次读写操作后与所述目标链路连接的存储器在同一存储地址的写入值与写入后的读取值相同;

根据所述可用延时集合中的延时值,确定所述目标链路对应的最优延时值。

可选地,所述从第一延时集合中确定目标链路对应的可用延时集合,包括:

分别将所述第一延时集合中的每一个延时值作为所述目标链路的延时值进行数据的读写操作,并根据读写操作结果从所述第一延时集合中确定目标链路对应的可用延时集合;或

将所述第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为所述目标链路的延时值进行数据的读写操作,并将第一次和最后一次使所述存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值以及位于这两个第一延时值之间的至少一个延时值加入到可用延时集合中,所述n为小于第一延时集合中延时值总数的自然数;或

将所述第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为所述目标链路的延时值进行数据的读写操作,并将第一次和最后一次使所述存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值加入到可用延时集合中,所述n为小于第一延时集合中延时值总数的自然数。

可选地,所述从第一延时集合中确定目标链路对应的可用延时集合,包括:

通过控制基准链路的延时值,从所述第一延时集合中确定目标链路对应的可用延时集合;

当所述目标链路是输入数据链路或输出数据链路时,所述基准数据链路为输入数据链路和输出数据链路中除所述目标链路以外的链路;

当所述目标链路是时钟链路时,基准链路包括输入数据链路和输出数据链路。

可选地,所述通过控制基准链路的延时值,从所述第一延时集合中确定目标链路对应的可用延时集合,包括:

从所述第一延时集合中选取第一延时值作为所述目标链路的延时值;

针对所述第一延时值,从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作,并判断使用所述第一延时值以及使用所述基准延时值时所述存储器在同一存储地址的写入值与写入后的读取值是否相同,其中所述m为小于第二延时集合中延时值总数的自然数;

若至少一次读写操作后所述存储器在同一存储地址的写入值与写入后的读取值相同,则将所述第一延时值作为可用延时集合中的延时值。

可选地,所述从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作之前,还包括:

将所述第二延时集合中的延时值进行排序。

可选地,所述根据所述可用延时集合中的延时值,确定所述目标链路对应的最优延时值,包括:

将所述可用延时集合中最大的可用延时值和最小的可用延时值的均值作为所述最优延时值;或

将所述可用延时集合中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为所述最优延时值;或

确定第一延时集合中位于所述可用延时值集合中的最大和最小的可用延时值之间的延时值,以及将确定的所述延时值中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为所述最优延时值。

本发明提供的一种确定最优延时的设备,包括:

可用延时集合确定模块,用于从第一延时集合中确定目标链路对应的可用延时集合,其中使用所述可用延时集合中的延时值作为目标链路的延时值进行读写操作时,至少一次读写操作后与所述目标链路连接的存储器在同一存储地址的写入值与写入后的读取值相同;

最优延时值确定模块,用于根据所述可用延时集合中的延时值,确定所述目标链路对应的最优延时值。

可选地,所述可用延时集合确定模块具体用于:

分别将所述第一延时集合中的每一个延时值作为所述目标链路的延时值进行数据的读写操作,并根据读写操作结果从所述第一延时集合中确定目标链路对应的可用延时集合;或

将所述第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为所述目标链路的延时值进行数据的读写操作,并将第一次和最后一次使所述存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值以及位于这两个第一延时值之间的至少一个延时值加入到可用延时集合中,所述n为小于第一延时集合中延时值总数的自然数;或

将所述第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为所述目标链路的延时值进行数据的读写操作,并将第一次和最后一次使所述存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值加入到可用延时集合中,所述n为小于第一延时集合中延时值总数的自然数。

可选地,所述可用延时集合确定模块具体用于:

通过控制基准链路的延时值,从所述第一延时集合中确定目标链路对应的可用延时集合;

当所述目标链路是输入数据链路或输出数据链路时,所述基准数据链路为输入数据链路和输出数据链路中除所述目标链路以外的链路;

当所述目标链路是时钟链路时,基准链路包括输入数据链路和输出数据链路。

可选地,所述可用延时集合确定模块具体用于:

从所述第一延时集合中选取第一延时值作为所述目标链路的延时值;

针对所述第一延时值,从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作,并判断使用所述第一延时值以及使用所述基准延时值时所述存储器在同一存储地址的写入值与写入后的读取值是否相同,其中所述m为小于第二延时集合中延时值总数的自然数;

若至少一次读写操作后所述存储器在同一存储地址的写入值与写入后的读取值相同,则将所述第一延时值作为可用延时集合中的延时值。

可选地,所述可用延时集合确定模块还用于:

将所述第二延时集合中的延时值进行排序之后,从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作。

可选地,所述最优延时值确定模块具体用于:

将所述可用延时集合中最大的可用延时值和最小的可用延时值的均值作为所述最优延时值;或

将所述可用延时集合中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为所述最优延时值;或

确定第一延时集合中位于所述可用延时值集合中的最大和最小的可用延时值之间的延时值,以及将确定的所述延时值中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为所述最优延时值。

根据本发明实施例提供的确定最优延时的方法,能够从第一延时集合中确定目标链路对应的可用延时集合,进一步根据可用延时集合中的延时值确定目标链路对应的最优延时值,其中使用可用延时集合中的延时值进行读写操作时,至少一次读写操作后与目标链路连接的存储器在同一存储地址的写入值与写入后的读取值相同,采用以上方法能够准确和高效地实现链路的最优延时值的确定,避免了由于只能通过人工测试的方式确定最优延时值造成的存在过多人工操作并且无法灵活、高效确定链路的最优延时值的问题。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种确定最优延时的方法的步骤示意图;

图2为本发明实施例提供的与存储器连接的链路结构示意图;

图3为本发明实施例提供的最优延时值的特性示意图;

图4为本发明实施例提供的一种确定最优延时的方法的具体流程示意图(一);

图5为本发明实施例提供的一种确定最优延时的方法的具体流程示意图(二);

图6为本发明实施例提供的一种确定最优延时的方法的具体流程示意图(三);

图7为本发明实施例提供的一种确定最优延时的方法的具体流程示意图(四);

图8为本发明实施例提供的一种确定最优延时的方法的具体流程示意图(五);

图9为本发明实施例提供的一种确定最优延时的设备的结构示意图(一);

图10为本发明实施例提供的一种确定最优延时的设备的结构示意图(二);

图11为本发明实施例提供的一种确定最优延时的设备的结构示意图(三)。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

以图1说明本发明实施例中确定最优延时的方法,该方法包括以下步骤:

步骤101:从第一延时集合中确定目标链路对应的可用延时集合,其中使用可用延时集合中的延时值作为目标链路的延时值进行读写操作时,至少一次读写操作后与目标链路连接的存储器在同一存储地址的写入值与写入后的读取值相同;

步骤102:根据可用延时集合中的延时值,确定目标链路对应的最优延时值。

在本发明实施例中,在从第一延时集合中确定目标链路对应的可用延时集合后,进一步根据可用延时集合中的延时值,确定目标链路对应的最优延时值,能够实现最优延时值的确定,其中使用可用延时集合中的延时值作为目标链路的延时值进行读写操作时,至少一次读写操作后与目标链路连接的存储器在同一存储地址的写入值与写入后的读取值相同。根据以上方法,实现了人工检测最优延时链路以外的确定与存储器相连的链路的最优延时值的方法。

其中,可用延时集合是指可用延时值的集合,其中可用延时值是指能够使得存储器在某一存储地址的写入值与存储器在写入后对同一存储地址进行读取所得的读取值相同的目标链路的延时值。

举例来说,若对于连接至存储器o的目标链路p,目标链路p的可用延时值之一为延时值x,则在使用延时值x对目标链路p进行延时控制时,若此时存储器o在存储地址y进行写入操作,写入值为k,之后使存储器读取存储地址y得到读取值l,则存储器的写入值k与读取值l为相同的数据值。

本发明实施例中的第一延时集合可以是预设的最优延时值可能的取值的集合,例如,预先选择n个延时值作为第一延时集合中的延时值,n为正整数。

本发明实施例中,第一延时集合中的延时值可以是延时时间,延时时间可以均匀分布,例如,第一延时集合包括0.1秒、0.2秒以及0.3秒等至少一个延时时间;延时时间也可以不均匀分布,例如,第一延时集合包括0.1秒、0.3秒、0.5秒等至少一个延时时间。

第一延时集合中的延时值也可以是至少一个由延时等级表示的延时时间,其中每一级延时等级对应单位延时时间,例如,单位延时时间为0.1秒,第一延时集合中包括第一级延时值、第二级延时值、第三级延时值……以及第m级延时值,则第一级延时值表示的延时时间为0.1秒,第二级延时值表示的延时时间为0.2秒,第三级延时值表示的延时时间值为0.3秒……第m级延时值表示的延时时间为m/10秒,其中m为正整数。又如,可以设定第一延时集合包括等级为1至64级的延时值,每一级延时值之间的延时时间相差s秒,其中s为正数。

本发明实施例中,目标链路是指存储器连接的链路中需要确定对应的最优延时值的链路。如图2所示,存储器201相连的链路包括时钟链路202以及数据链路203;每条链路具有延时控制模块204,用于对链路传输的信号根据延时值进行延时控制;对于时钟链路202,延时控制模块对输入到存储器方向的传输信号进行延时控制;对于数据链路203,延时控制模块对通过输入数据链路输入到存储器方向的传输信号以及通过输出数据链路从存储器输出方向的传输信号进行延时控制。为了准确进行链路的延时控制,需要确定时钟链路、输入数据链路以及输出数据链路的最优延时值。在确定待测链路的最优延时值时,可以将其他链路的延时值设置为默认延时值,或者设置为已经确定的该条链路对应的最优延时值。其中,默认延时值,可以是根据存储器的读写操作经验确定的能够使存储器进行正常的读写工作的延时值。

举例来说,在确定输入数据链路的最优延时值时,目标链路是指输入存储器方向的数据链路。可以在确定目标链路的最优延时值时,将输出数据链路的延时值设置为输出数据链路对应的默认延时值或者最优延时值,以及可以将时钟链路的延时值设置为时钟链路对应的默认延时值或者最优延时值。

本发明实施例中,在根据第一延时集合确定可用延时集合后,从可用延时集合中确定一个目标链路对应的最优延时值。

可选地,若无法从第一延时集合中确定满足条件的可用延时集合,则提示当前第一延时集合中不存在可用延时值,需要重新设置等信息。

例如,第一延时集合包括0.1秒、0.2秒以及0.3秒的延时值,若判断无法从中确定可用延时集合,则可以提示第一延时集合中不存在可用延时值,请重新设置第一延时集合。

本发明实施例中,可以采用存储器的突发读写访问机制或块(brust)读写访问机制进行读写操作,以提高确定最优延时值的效率。

可选地,根据下列方式判断第一延时集合中的延时值是否是可用延时集合中的延时值:从第一延时集合中选取第一延时值作为目标链路的延时值进行数据的读写操作;若使用第一延时值时存储器在同一存储地址的写入值与写入后的读取值相同,则将该第一延时值作为可用延时集合中的延时值。

本发明实施例中,在从第一延时集合中选取第一延时值作为目标链路的延时值并进行数据的读写操作后,根据读写操作时存储器在同一存储地址的写入值与写入后的读取值判断是否将延时值作为可用延时集合中的延时值:若存储器在同一存储地址的写入值与写入后的读取值相同,则确定当前使用的第一延时值为可用延时集合中的延时值;否则,确定当前使用的第一延时值不是可用延时集合中的延时值。其中,在进行存储器的读写操作时,可以将默认延时值作为延时值对其他连接到存储器的链路进行延时控制。

举例来说,可以将第一延时集合中的延时值x对目标链路p进行延时控制,此时使存储器o在存储地址y进行写入操作,写入值为k,之后使存储器读取存储地址y得到读取值l,若判断存储器o的写入值k与存储器o的读取值l相同,则确定第一延时值x是可用延时集合中的延时值。其中,可以将默认延时值w作为其他链路的延时值。

可选地,从第一延时集合中确定目标链路对应的可用延时集合,包括:

分别将第一延时集合中的每一个延时值作为目标链路的延时值进行数据的读写操作,并根据读写操作结果从第一延时集合中确定目标链路对应的可用延时集合;或

将第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为目标链路的延时值进行数据的读写操作,并将第一次和最后一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值以及位于这两个第一延时值之间的至少一个延时值加入到可用延时集合中,n为小于第一延时集合中第一延时值总数的自然数;或

将第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为目标链路的延时值进行数据的读写操作,并将第一次和最后一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值加入到可用延时集合中,n为小于第一延时集合中延时值总数的自然数。

其中,第一延时值是指从第一延时集合中选取的需要作为目标链路的延时值进行读写操作的延时值。

本发明实施例中,从第一延时集合中确定可用延时集合的方法有至少三种,下面分别予以说明:

方式一,将第一延时集合中的全部延时值分别作为目标链路的延时值使存储器进行读写操作,并根据读写操作的结果判断第一延时集合中的每一个延时值是否符合可用延时集合的条件,即进行读写操作时,是否能够至少一次使存储器在同一存储地址的写入值与写入后的读取值相同,之后,将全部可以作为可用延时集合中延时值的延时值的集合确定为可用延时集合。

其中,本发明实施例中的读写操作是指存储器根据写入值在存储地址先进行数据的写入操作,之后在同一存储地址进行数据的读写操作并得到读取值。

举例来说,第一延时集合中包括延时值a、延时值b、延时值c以及延时值d,将延时值a、延时值b、延时值c以及延时值d分别作为目标链路的延时值进行存储器的读写操作,若根据读写操作的结果,能够确定使用延时值b以及延时值d时存储器的读写操作得到的写入值与读取值相同,且延时值a以及延时值c时存储器的读写操作得到的写入值与读取值不相同,则将延时值b以及延时值d的集合作为可用延时集合。

方式二,将第一延时集合中的延时值进行排序(例如按照延时值的大小进行排序),按照排序后的顺序每隔n个延时值选取一个第一延时值作为目标链路的延时值进行数据的读写操作,并将全部第一延时值中第一次和最后一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值以及位于这两个第一延时值之间的至少一个延时值加入到可用延时集合中,n为小于第一延时集合中延时值总数的自然数。

本发明实施例中,根据上述方式二确定可用延时集合的方法不需要对第一延时集合中的每一个延时值都进行判断,在确定可用延时集合时,只需要确定第一个使存储器在同一存储地址的写入值与写入后的读取值不相同的第一延时值(以下简称为第一目标值),以及确定最后一次使存储器的写入值和读取值相同的第一延时值(以下简称为第二目标值)即可确定可用延时集合,即将第一目标值和第二目标值以及排序后的第一延时集合中位于第一目标值和第二目标值之间的延时值作为可用延时集合中的延时值。其中,第一延时值是从第一延时集合中选取的在存储器进行读写操作时需要作为延时值对目标链路进行延时控制的延时值。

其中,可以根据以下方法确定第二目标值:在确定第一目标值后,确定此后第一次使存储器在同一存储地址的写入值与写入后的读取值不相同的第一延时值(以下简称为第三目标值),将第三目标值之前使用的一个第一延时值作为第二目标值。

举例来说,将第一延时集合中的延时值按照大小顺序进行排列,得到延时值a、延时值b、延时值c、延时值d、延时值e、延时值f以及延时值g的排列顺序,若取n为0,则选取的第一延时值分别为延时值a、延时值b、延时值c、延时值d、延时值e、延时值f以及延时值g,之后分别将选取的第一延时值作为当前目标链路的延时值进行读写操作,若根据读写操作的结果,延时值b、延时值c、延时值d以及延时值e能够使存储区的写入值与读取值相同,而使用延时值f进行延时控制时存储器的写入值与读取值不同,因此确定延时值b为第一目标值,且延时值f为确定第一目标值之后第一个使存储器在同一存储地址的写入值与写入后的读取值不相同的第一延时值(即第三目标值),因此确定延时值e为第二目标值,此时,不再需要根据延时值g进行延时控制并进行读写操作就能够确定第一延时集合中的可用延时集合,可以确定第一目标值、第二目标值以及第一延时集合中位于第一目标值和第二目标值之间的延时值为可用延时集合中的延时值,即延时值b、延时值c、延时值d以及延时值e为当前目标链路对应的可用延时集合中的延时值;

若取n为1,则每隔1个延时值进行选取,所得的第一延时值分别为延时值a、延时值c、延时值e以及延时值g,将第一延时值分别作为目标链路的延时值并进行存储器的读写操作,若根据读写操作的结果,延时值c以及延时值e能够使存储区的写入值与读取值相同,而延时值a和延时值g无法使存储区的写入值与读取值相同,因此确定延时值c为第一目标值,且延时值g为第三目标值,即延时值e为第二目标值,此时,可以确定延时值c、延时值e为当前目标链路对应的可用延时集合中的延时值,并且,排序后的第一延时集合中位于第一延时集合中延时值c与延时值e之间的延时值d也属于可用延时集合中的延时值。

另外,若在确定第一目标值后,剩余的全部第一延时值均能够使储器在同一存储地址的写入值与写入后的读取值相同,则第一目标值和最后一个使用的第一延时值以及排序后第一延时值集合中位于这两个第一延时值之间的延时值均是可用延时集合中的延时值。

方式三,将第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为目标链路的延时值进行数据的读写操作,并将第一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值(即第一目标值)和最后一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值(即第二目标值)加入到可用延时集合中,n为小于第一延时集合中延时值总数的自然数。

其中,可以根据以下方法确定第二目标值:在确定第一目标值后,确定此后第一次使存储器在同一存储地址的写入值与写入后的读取值不相同的第一延时值(以下简称为第三目标值),将第三目标值之前使用的一个第一延时值作为第二目标值。

根据方法三,将第一目标值和第二目标值加入可用延时值集合,可以不需要将第一延时集合中位于第一目标值和第二目标值之间的延时值加入可用延时集合。

举例来说,将第一延时集合中的延时值按照大小顺序进行排列,得到延时值a、延时值b、延时值c、延时值d、延时值e、延时值f以及延时值g的排列顺序,若取n为0,则选取的第一延时值分别为延时值a、延时值b、延时值c、延时值d、延时值e、延时值f以及延时值g,之后分别将选取的第一延时值作为当前目标链路的延时值进行读写操作,若根据读写操作的结果,延时值b、延时值c、延时值d以及延时值e能够使存储区的写入值与读取值相同,而使用延时值f进行延时控制时存储器的写入值与读取值不同,因此确定延时值b为第一目标值,且延时值f为确定第一目标值之后第一个使存储器在同一存储地址的写入值与写入后的读取值不相同的第一延时值(即第三目标值),因此确定延时值e为第二目标值,此时,不再需要根据延时值g进行延时控制并进行读写操作就能够确定第一延时集合中的可用延时集合,可以确定第一目标值、第二目标值为可用延时集合中的延时值,即延时值b和延时值e为当前目标链路对应的可用延时集合中的延时值;

若取n为1,则每隔1个延时值进行选取,所得的第一延时值分别为延时值a、延时值c、延时值e以及延时值g,将第一延时值分别作为目标链路的延时值并进行存储器的读写操作,若根据读写操作的结果,延时值c以及延时值e能够使存储区的写入值与读取值相同,而延时值a和延时值g无法使存储区的写入值与读取值相同,因此确定延时值c为第一目标值,且延时值g为第三目标值,即延时值e为第二目标值,此时,可以确定延时值c和延时值e为可用延时集合中的延时值。

在从第一延时集合中选取第一延时值时,n值的大小会影响从第一延时集合中选取的第一延时值的数量,进而影响确定的最优延时值的准确度和确定最优延时值所需的时间,即,n越大则选取的第一延时值的数量越小,确定的最优延时值的准确度越低,进行最优延时值确定所需的时间越短;n越小则选取的第一延时值的数量越大,确定的最优延时值的准确度越高,进行最优延时值确定所需的时间越长。

在具体实施中,可以根据需求确定n的取值,例如,若对最优延时值的精度要求较高,可选择较小的n值进行最优延时值的确定;若对确定最优延时值的速度要求较高,可选择较大的n值进行最优延时值的确定。

可选地,从第一延时集合中确定目标链路对应的可用延时集合,包括:通过控制基准链路的延时值,从第一延时集合中确定目标链路对应的可用延时集合;当目标链路是输入数据链路或输出数据链路时,基准数据链路为输入数据链路和输出数据链路中除目标链路以外的链路;当目标链路是时钟链路时,基准链路包括输入数据链路和输出数据链路。

本发明实施例中,从第一延时集合中确定目标链路对应的可用延时集合时,可以通过控制基准链路的延时值,从第一延时集合中确定目标链路对应的可用延时集合,其中,若目标链路是输入数据链路或输出数据链路,则基准数据链路为输入数据链路和输出数据链路中除目标链路以外的链路;若目标链路是时钟链路,则基准链路包括输入数据链路和输出数据链路。

例如,在确定输入数据链路的最优延时值时,可以将输出数据链路作为基准链路并对其延时值进行控制,可以将输出数据链路的延时值设定为默认延时值,以判断输入数据链路的延时值发生变化时存储器在同一存储地址的写入值与写入后的读取值是否相同;也可以从预设的集合中选择输出数据链路的延时值,并通过改变输出数据链路的延时值判断改变输出数据链路的延时值能否在输入数据链路的延时值发生变化时使存储器在同一存储地址的写入值与写入后的读取值相同。同理,在确定输出数据链路的最优延时值时,可以将输入数据链路作为基准链路并对其延时值进行控制。

另外,在确定时钟链路的最优延时值时,可以将输入数据链路以及输出数据链路作为基准链路并对其延时值进行控制,其中,对输入数据链路和输出数据链路设置的延时值可以相同,也可以不同。

例如,将输入数据链路的延时值设置为已经确定的最优延时值以及将输出数据链路的延时值设置为已经确定的最优延时值;也可以将输入数据链路的延时值设置为其他能够使储器正常进行读写工作的延时值,以及将输出数据链路的延时值设置为其他能够使储器正常进行读写工作的延时值;也可以将输入数据链路和输出数据链路中的一条链路的延时值设置为最优延时值,以及将另一条链路的延时值设置为其他能够使储器正常进行读写工作的延时值。

可选地,通过控制基准链路的延时值,从第一延时集合中确定目标链路对应的可用延时集合,包括:从第一延时集合中选取第一延时值作为目标链路的延时值;针对第一延时值,从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作,并判断使用第一延时值以及使用基准延时值时存储器在同一存储地址的写入值与写入后的读取值是否相同,其中m为小于第二延时集合中延时值总数的自然数;若至少一次读写操作后存储器在同一存储地址的写入值与写入后的读取值相同,则将第一延时值作为可用延时集合中的延时值。

本发明实施例中,在从第一延时集合中选取第一延时值作为目标链路的延时值后,可以从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作。

在将第一延时值作为目标链路的延时值后,若从第二延时值集合中选取的至少一个基准延时值作为基准链路的延时值时,存储器读写操作时获取的写入值与读取值相同,则确定目标链路使用的第一延时值属于可用延时集合,此时不再需要将未使用过的基准延时值作为基准链路的延时值进行读写操作;另外,在将第一延时值作为目标链路的延时值后,若从第二延时值集合中选取的全部基准延时值作为基准链路的延时值时,存储器读写操作时获取的写入值与读取值均不同,则确定目标链路当前使用的第一延时值不属于可用延时集合。

其中,在从第二延时集合中选取基准延时值时,可以每隔m个延时值选取一个基准延时值,以加快确定最优延时值的速度,其中m为小于第二延时集合中延时值总数的自然数。

举例来说,在从第一延时集合中选取第一延时值作为目标链路的延时值之后,从第二延时集合中选取基准延时值,假设第二延时集合中包括延时值a、延时值b、延时值c以及延时值d,若m为0,则选取延时值a、延时值b、延时值c以及延时值d分别作为基准延时值并分别作为基准链路的延时值进行读写操作,若根据读写操作的结果,能够确定使用延时值a、延时值b、延时值c以及延时值d中的任意一个延时值时存储器的读写操作得到的写入值与读取值相同,则能够确定目标链路当前使用的第一延时值是可用延时集合中的延时值;若分别使用延时值a、延时值b、延时值c以及延时值d作为基准链路的延时值进行读写操作时,存储器的读写操作得到的写入值与读取值均不相同,则确定当前目标链路使用的第一延时值不属于可用延时集合中的延时值。

若取m为1,则可以选取延时值a和延时值c作为基准延时值并分别作为基准链路的延时值进行读写操作,若使用延时值a或延时值c作为基准链路的延时值进行读写操作时存储器的读写操作得到的写入值与读取值相同,则能够确定目标链路当前使用的第一延时值是可用延时集合中的延时值;若分别使用延时值a和延时值c作为基准链路的延时值进行读写操作时存储器的读写操作得到的写入值与读取值均不相同,则确定当前目标链路使用的第一延时值不属于可用延时集合中的延时值。

在从第二延时集合中选取基准延时值时,m值的大小会影响从第二延时集合中选取的基准延时值的数量,进而影响确定的目标链路的最优延时值的准确度和确定最优延时值所需的时间,即,m越大则选取的基准延时值的数量越小,确定的目标链路的最优延时值的准确度越低,进行最优延时值确定所需的时间越短;m越小则选取的基准延时值的数量越大,确定的目标链路的最优延时值的准确度越高,进行最优延时值确定所需的时间越长。

在具体实施中,可以根据需求确定m的取值,例如,若对目标链路的最优延时值的精度要求较高,可选择较小的m值进行最优延时值的确定;若对确定最优延时值的速度要求较高,可选择较大的m值进行最优延时值的确定。

另外,本发明实施例中的第二延时集合可以与第一延时集合相同。

可选地,从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作之前,还包括:将第二延时集合中的延时值进行排序。

本发明实施例中,在从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作之前,可以对第二延时值集合中的延时值进行排序,以加快最优延时值的确定速度。

举例来说,在选取第一延时值作为目标链路的延时值后,可用对第二延时集合中的延时值进行排序后(例如按照延时值的大小进行排序),得到延时值a、延时值b、延时值c以及延时值d的排列顺序,若取m为0,则选取的基准延时值分别为延时值a、延时值b、延时值c以及延时值d,之后按照确定的顺序分别将选取的基准延时值作为基准链路的延时值进行读写操作,并根据读写操作的结果判断目标链路当前的延时值是否属于可用延时集合中的延时值,其中,若延时值a、延时值b、延时值c以及延时值d中的任意一个作为基准链路的延时值进行读写操作时存储器的读写操作得到的写入值与读取值相同,则能够确定目标链路当前使用的第一延时值属于可用延时集合,而无需再将其他未使用过的基准延时值作为基准链路的延时值进行读写操作。另外,m也可以为大于0并且小于第二延时集合中延时值总数的其他自然数。

另外,在本发明实施例中可以也可以不按照延时值的大小确定第二集合中的基准延时值使用的先后顺序,只需要从第二集合中选择至少一个基准延时值作为基准链路的延时值。

可选地,在第一延时集合中的延时值在第一次使得存储器在同一存储地址的写入值与写入后的读取值相同后,记录判断标识位;以及可以在记录判断标识位后确定第一个使得存储器在同一存储地址的写入值与写入后的读取值不相同的第一延时值后清除判断标识位。

本发明实施例中,若在选取第一延时值之前对第一延时集合中的延时值进行排序,则可以根据判断标识位判断第一延时值是否是第一目标值:在确定第一延时值使得存储器在同一存储地址的写入值与写入后的读取值相同后,若当前不存在判断标识位,则确定该第一延时值为第一目标值,并且可以记录判断标识位;若当前已经存在判断标识位,则确定该第一延时值不是第一目标值。

另外,可以根据判断标识位判断第一延时值是否是第三目标值:在确定第一延时值使得存储器在同一存储地址的写入值与写入后的读取值不相同后,若判断当前不存在判断标识位,则确定该第一延时值不是第三目标值;若当前已经存在判断标识位,则确定该第一延时值是第三目标值,并且清除判断标识位。在确定第三目标值之后,可以确定第三目标值之前一个使用的第一延时值为第二目标值。

举例来说,在按照由大到小的顺序对第一延时集合中的延时值进行排序后,按照如下顺序确定选取的第一延时值的使用顺序:延时值a先于延时值b使用,并且延时值b先于延时值c使用,若经过读写操作确定延时值a使得存储器在同一存储地址的写入值与写入后的读取值相同,则可以确定延时值a为第一目标值,此时可以记录判断标识位,此后,若延时值b使得存储器在同一存储地址的写入值与写入后的读取值相同,此时由于已经存在判断标识位,因此延时值b不是第一目标值;若延时值c使得存储器在同一存储地址的写入值与写入后的读取值不相同,此时需要判断是否存在判断标识位,若存在,则将延时值c确定为第三目标值,并且确定延时值b为第二目标值。

可选地,根据可用延时集合中的延时值,确定目标链路对应的最优延时值,包括:

将可用延时集合中最大的可用延时值和最小的可用延时值的均值作为最优延时值;或

将可用延时集合中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为最优延时值;或

确定第一延时集合中位于可用延时值集合中的最大和最小的可用延时值之间的延时值,以及将确定的延时值中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为最优延时值。

本发明实施例中,在从第一延时集合中确定目标链路对应的可用延时集合后,需要根据可用延时集合中的延时值确定目标链路对应的最优延时值。其中,可以将可用延时集合中最大的可用延时值和最小的可用延时值的均值作为最优延时值;也可以将可用延时集合中与最大的可用延时值和最小的可用延时值的至少一个可用延时值中的任意一个作为最优延时值;也可以先确定第一延时集合中位于可用延时值集合中的最大和最小的可用延时值之间的延时值,再将确定的延时值中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为最优延时值。

根据如图3所示的延时电路的延时值特性,在能够使存储器在同一存储地址的写入值与写入后的读取值系统的可用延时值范围(最大可用延时值与最小可用延时值之间)中,使用更靠近中间位置的延时值对延时电路进行控制能够提高存储器工作的稳定性,因此,从确定的可用延时集合中确定更靠近中间位置的延时值(即大小与最大的可用延时值和最小的可用延时值的均值更为接近的延时值)作为最优延时值。

举例来说,若确定的可用延时集合为1秒、2秒、3秒、4秒以及5秒,则可以将最大可用延时值5秒以及最小可用延时值1秒的均值3秒作为最优延时值;若确定的可用延时集合为1秒、2秒、3秒以及6秒,则可以将与最大可用延时值6秒以及最小可用延时值1秒的均值3.5秒最为接近的延时值3秒作为最优延时值;若确定的可用延时集合为1秒、2秒、3秒、4秒以及6秒,则可以将与最大可用延时值6秒以及最小可用延时值1秒的均值3.5秒最为接近的延时值3秒和4秒中的任意一个作为最优延时值。

另外,也可以根据可用延时集合中的最大可用延时值和最小可用延时值确定最优延时值,例如,可用延时集合中只包含第一目标值和第二目标值,则可以根据第一目标值和第二目标值确定最优延时值。例如,根据可用延时集合确定可用延时集合中的最大可用延时值为3秒,最小可用延时值为1秒,可以在第一延时集合中确定位于最大可用延时值3秒和最小可用延时值1秒之间的延时值,并从确定的延时值中与最大可用延时值3秒和最小可用延时值1秒的均值2秒最为接近的延时值作为最优延时值,例如,若第一延时值集合中包含2秒,则可以将2秒作为最优延时值,若第一延时值集合中包含1.9秒和2.1秒,则可以将1.9秒或2.1秒作为最优延时值。

如图4所示,在确定目标链路的最优延时值时,将连接至存储器的其他链路的延时值设置为可用值,则针对目标链路,可以将全部第一延时集合中的延时值分别作为目标链路的延时值并确定最优延时值。具体来说,本发明实施例确定最优延时值的方法包括以下步骤:

步骤401:将第一延时集合中的延时值设定为目标链路的延时值;

步骤402:存储器进行读写操作,记录写入值以及写入后对同一存储地址的读取值;

步骤403:判断写入值与读取值是否相同,若相同,则执行步骤404,否则执行步骤405;

步骤404:确定当前使用的延时值为可用延时值,之后执行步骤405;

步骤405:判断第一延时集合中是否存在未使用过的延时值,若是,则执行步骤406,否则执行步骤407;

步骤406:将第一延时集合中未使用过的延时值作为目标链路的延时值,之后执行步骤402;

步骤407:从确定的可用延时值之中确定最优延时值,之后结束本流程。

如图5所示,在确定目标链路的最优延时值时,若将连接至存储器的其他链路的延时值设置为可用值,则针对目标链路,可以采用先排序后从第一延时集合中确定可用延时集合进而根据可用延时集合确定最优延时值的方法确定最优延时值,其中,可用延时集合包含第一目标值、第二目标值以及第一延时集合中位于第一目标值和第二目标值之间的延时值。具体来说,本发明实施例确定最优延时值的方法包括以下步骤:

步骤501:将第一延时集合中的延时值按大小顺序确定延时值的顺序,并按照确定的顺序每隔n个延时值选取第一延时值,n为小于第一延时集合中延时值总数的自然数;

步骤502:将第一个使用的第一延时值设定为目标链路的延时值;

步骤503:存储器进行读写操作,获取写入值以及写入后对同一存储地址的读取值;

步骤504:判断写入值与读取值是否相同,若相同,则执行步骤505,否则执行步骤506;

步骤505:判断是否存在判断标识位,若是,则执行步骤507,否则执行步骤508;

步骤506:判断是否存在判断标识位,若是,则执行步骤509,否则执行步骤507;

步骤507:判断是否存在未使用过的第一延时值,若是,则执行步骤511,否则执行步骤512;

步骤508:将当前使用的第一延时值确定为第一目标值,并设置判断标识位,之后执行步骤507;

步骤509:将当前使用的第一延时值确定为第三目标值,并清除判断标识位;

步骤510:将第三目标值之前使用的一个第一延时值确定为第二目标值,之后执行步骤515;

步骤511:按照确定的顺序将下一个第一延时值设定为目标链路的延时值,之后执行步骤503;

步骤512:判断当前是否已经确定出第一目标值,若是,则执行步骤513,否则执行步骤514;

步骤513:将第一目标值、当前使用的第一延时值以及第一目标值和当前使用的第一延时值之间的延时值作为可用延时值,之后执行步骤516;

步骤514:提示第一延时集合中不存在可用延时值,之后结束本流程;

步骤515:将第一目标值、第二目标值以及第一目标值和第二目标值之间的延时值作为可用延时值;

步骤516:从确定的可用延时值之中确定最优延时值,之后结束本流程。

本发明实施例中,若需要对连接到存储器的连接到同一个存储器的输入数据链路以及输出数据链路分别进行最优延时值的确定,可以从中确定一条目标链路,将另外一条链路作为基准链路,先确定目标链路的最优延时值。

如图6所示,在从输入数据链路以及输出数据链路中选择目标链路并确定目标链路的最优延时值时,若将全部第一延时集合中的第一延时值分别作为目标链路的延时值,则确定最优延时值的方法包括以下步骤:

步骤601:确定目标链路和基准链路;

步骤602:将第一延时集合中的延时值作为目标链路的延时值;

步骤603:将第二延时集合中的延时值作为基准链路的延时值;

步骤604:存储器进行读写操作,获取写入值以及写入后对同一存储地址的读取值;

步骤605:判断写入值与读取值是否相同,若相同,则执行步骤606,否则执行步骤607;

步骤606:确定当前使用的延时值为可用延时值,之后执行步骤608;

步骤607:判断第二延时集合中是否存在尚未使用过的延时值,若是,则执行步骤609,否则执行步骤608;

步骤608:判断第一延时集合中是否存在尚未使用过的延时值,若是,则执行步骤610,否则执行步骤611;

步骤609:将第二延时集合中未使用过的延时值设置为基准链路的延时值,之后执行步骤604;

步骤610:将第一延时集合中未使用过的延时值设置为目标链路的延时值,之后执行步骤603;

步骤611:判断是否存在可用延时值,若是,则执行步骤612,否则执行步骤613;

步骤612:从确定的可用延时值中确定最优延时值,之后结束本流程;

步骤613:提示第一延时集合中不存在可用延时值,之后结束本流程。

在确定目标链路的最优延时值后,可以将确定的最优延时值设置为目标链路的最优延时值,之后,将基准链路作为新的目标链路,采用如图4或图5所示的方法重新确定新的目标链路的最优延时值。

如图7所示,在从输入数据链路以及输出数据链路中选择目标链路并确定目标链路的最优延时值时,若将第一延时集合中的延时值按照延时值的大小确定作为目标链路的延时值的先后顺序,并按照确定的先后顺序作为目标链路的延时值,之后从第一延时集合中确定可用延时集合进而根据可用延时集合确定最优延时值的方法确定最优延时值,其中,可用延时集合包含第一目标值、第二目标值以及第一延时集合中位于第一目标值和第二目标值之间的延时值,则本发明实施例提供的确定最优延时值的方法包括以下步骤:

步骤701:确定目标链路和基准链路;

步骤702:将第一延时集合中的延时值按大小顺序确定延时值的顺序,并按照确定的顺序每隔n个延时值选取第一延时值,n为小于第一延时集合中延时值总数的自然数;

步骤703:按照确定的顺序将第一个使用的第一延时值设定为目标链路的延时值;

步骤704:将第二延时集合中的延时值确定为基准链路的延时值;

步骤705:存储器进行读写操作,获取写入值以及写入后对同一存储地址的读取值;

步骤706:判断写入值与读取值是否相同,若相同,则执行步骤707,否则执行步骤708;

步骤707:判断是否存在判断标识位,若是,则执行步骤709,否则执行步骤710;

步骤708:判断第二延时集合中是否存在未使用过的延时值,若是,则执行步骤711,否则执行步骤712;

步骤709:判断是否存在未使用过的第一延时值,若是,则执行步骤713,否则执行步骤714;

步骤710:将当前使用的第一延时值确定为第一目标值,并设置判断标识位,之后执行步骤709;

步骤711:将第二延时集合中未使用过的延时值作为基准链路的延时值,之后执行步骤705;

步骤712:判断是否存在判断标识位,若是,则执行步骤715,否则执行步骤709;

步骤713:按照确定的顺序将下一个第一延时值设定为目标链路的延时值,之后执行步骤704;

步骤714:判断当前是否已经确定出第一目标值,若是,则执行步骤718,否则执行步骤719;

步骤715:将当前使用的第一延时值确定第三目标值,并清除判断标识位;

步骤716:将第三目标值之前使用的一个第一延时值确定为第二目标值;

步骤717:将第一目标值、第二目标值以及第一目标值和第二目标值之间的延时值作为可用延时值,之后执行步骤720;

步骤718:将第一目标值、当前使用的第一延时值以及第一目标值和当前使用的第一延时值之间的延时值作为可用延时值,之后执行步骤720;

步骤719:提示第一延时集合中不存在可用延时值,之后结束本流程;

步骤720:从确定的可用延时值之中确定最优延时值,之后结束本流程。

在确定目标链路的最优延时值后,可以将确定的最优延时值设置为目标链路的最优延时值,之后,可以将基准链路作为新的目标链路,采用如图4或图5所示的方法重新确定新的目标链路的最优延时值。

另外,在将输入数据链路以及输出数据链路的延时值设置为最优延时值后,在将时钟链路作为目标链路确定最优延时值时,可以采用图4或者图5所示的确定最优延时值方法。

如图8所示,在从输入数据链路以及输出数据链路中选择目标链路并确定目标链路的最优延时值时,若将第一延时集合中的延时值按照延时值的大小确定作为目标链路的延时值的先后顺序,以及将第二延时集合中的延时值按照延时值的大小确定作为目标链路的延时值的先后顺序,并按照确定的先后顺序作为目标链路的延时值,之后后从第一延时集合中确定可用延时集合进而根据可用延时集合确定最优延时值的方法确定最优延时值,其中,可用延时集合包含第一目标值、第二目标值以及第一延时集合中位于第一目标值和第二目标值之间的延时值,则本发明实施例提供的确定最优延时值的方法包括以下步骤:

步骤801:确定目标链路和基准链路;

步骤802:将第一延时集合中的延时值按大小顺序确定延时值的顺序,并按照确定的顺序每隔n个延时值选取第一延时值,n为小于第一延时集合中延时值总数的自然数,以及将第二延时集合中的延时值按大小顺序确定延时值的顺序,按照确定的顺序每隔m个延时值选取基准延时值,m为小于第二延时集合中延时值总数的自然数;

步骤803:按照确定的顺序将第一个使用的第一延时值设定为目标链路的延时值;

步骤804:按照确定的顺序将第一个使用的基准延时值确定为基准链路的延时值;

步骤805:存储器进行读写操作,获取写入值以及写入后对同一存储地址的读取值;

步骤806:判断写入值与读取值是否相同,若相同,则执行步骤807,否则执行步骤808;

步骤807:判断是否存在判断标识位,若是,则执行步骤809,否则执行步骤810;

步骤808:判断是否存在未使用过的基准延时值,若是,则执行步骤811,否则执行步骤812;

步骤809:判断是否存在未使用过的第一延时值,若是,则执行步骤813,否则执行步骤814;

步骤810:将当前使用的第一延时值确定为第一目标值,并设置判断标识位,之后执行步骤809;

步骤811:按照确定的顺序将下一个使用的基准延时值作为基准链路的延时值,之后执行步骤805;

步骤812:判断是否存在判断标识位,若是,则执行步骤815,否则执行步骤809;

步骤813:按照确定的顺序将下一个第一延时值设定为目标链路的延时值,之后执行步骤804;

步骤814:判断当前是否已经确定出第一目标值,若是,则执行步骤818,否则执行步骤819;

步骤815:将当前使用的第一延时值确定第三目标值,并清除判断标识位;

步骤816:将第三目标值之前使用的一个第一延时值确定为第二目标值;

步骤817:将第一目标值、第二目标值以及第一目标值和第二目标值之间的延时值作为可用延时值,之后执行步骤820;

步骤818:将第一目标值、当前使用的第一延时值以及第一目标值和当前使用的第一延时值之间的延时值作为可用延时值,之后执行步骤820;

步骤819:提示第一延时集合中不存在可用延时值,之后结束本流程;

步骤820:从确定的可用延时值之中确定最优延时值,之后结束本流程。

在确定目标链路的最优延时值后,可以将确定的最优延时值设置为目标链路的最优延时值,之后,可以将基准链路作为新的目标链路,采用如图4或图5所示的方法重新确定新的目标链路的最优延时值。

另外,在将输入数据链路以及输出数据链路的延时值设置为最优延时值后,在将时钟链路作为目标链路确定最优延时值时,可以采用图4或者图5所示的确定最优延时值方法。

基于同一发明构思,本发现实施例还提供了一种确定最优延时的设备,由于该设备解决问题的原理与本发明实施例提供的确定最优延时的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。

如图9所示,本发明提供的一种确定最优延时的设备,包括:

本发明提供的一种确定最优延时的设备,包括:

可用延时集合确定模块901,用于从第一延时集合中确定目标链路对应的可用延时集合,其中使用所述可用延时集合中的延时值作为目标链路的延时值进行读写操作时,至少一次读写操作后与所述目标链路连接的存储器在同一存储地址的写入值与写入后的读取值相同;

最优延时值确定模块902,用于根据所述可用延时集合中的延时值,确定所述目标链路对应的最优延时值。

可选地,可用延时集合确定模块901具体用于:

分别将所述第一延时集合中的每一个延时值作为所述目标链路的延时值进行数据的读写操作,并根据读写操作结果从所述第一延时集合中确定目标链路对应的可用延时集合;或

将所述第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为所述目标链路的延时值进行数据的读写操作,并将第一次和最后一次使所述存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值以及位于这两个第一延时值之间的至少一个延时值加入到可用延时集合中,所述n为小于第一延时集合中延时值总数的自然数;或

将所述第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值作为所述目标链路的延时值进行数据的读写操作,并将第一次和最后一次使所述存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值加入到可用延时集合中,所述n为小于第一延时集合中延时值总数的自然数。

可选地,可用延时集合确定模块901具体用于:

通过控制基准链路的延时值,从所述第一延时集合中确定目标链路对应的可用延时集合;

当所述目标链路是输入数据链路或输出数据链路时,所述基准数据链路为输入数据链路和输出数据链路中除所述目标链路以外的链路;

当所述目标链路是时钟链路时,基准链路包括输入数据链路和输出数据链路。

可选地,可用延时集合确定模块901具体用于:

从所述第一延时集合中选取第一延时值作为所述目标链路的延时值;

针对所述第一延时值,从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作,并判断使用所述第一延时值以及使用所述基准延时值时所述存储器在同一存储地址的写入值与写入后的读取值是否相同,其中所述m为小于第二延时集合中延时值总数的自然数;

若至少一次读写操作后所述存储器在同一存储地址的写入值与写入后的读取值相同,则将所述第一延时值作为可用延时集合中的延时值。

可选地,可用延时集合确定模块901还用于:

将所述第二延时集合中的延时值进行排序之后,从第二延时值集合中每隔m个延时值选取一个基准延时值作为基准链路的延时值进行数据的读写操作。

可选地,最优延时值确定模块902具体用于:

将所述可用延时集合中最大的可用延时值和最小的可用延时值的均值作为所述最优延时值;或

将所述可用延时集合中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为所述最优延时值;或

确定第一延时集合中位于所述可用延时值集合中的最大和最小的可用延时值之间的延时值,以及将确定的所述延时值中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为所述最优延时值。

如图10所示,本发明实施例提供的一种确定最优延时的设备包括可用延时选取单元1001、数据验证单元1002、延时控制模块1003以及存储器1004;

其中,可用延时选取单元1001用于从第一延时集合中确定目标链路对应的可用延时集合,其中使用可用延时集合中的延时值作为目标链路的延时值进行读写操作时,至少一次读写操作后与目标链路连接的存储器1004在同一存储地址的写入值与写入后的读取值相同,目标链路为输入数据链路1005、输出数据链路1006以及时钟链路1007中的任意一条链路;

可用延时选取单元1001还用于根据可用延时集合中的延时值,确定目标链路对应的最优延时值。

可选地,可用延时选取单元1001还用于确定目标链路和/或基准链路。

可选地,数据验证单元1002用于根据可用延时选取单元1001的指示验证存储器1004在同一存储地址的写入值与写入后的读取值是否相同。例如,数据验证单元1002通过发送读写时序命令对存储器1004读写操作的结果进行判断。

可选地,存储器1004用于根据可用延时选取单元1001的指示在同一存储地址进行数据的存储和读取操作。

可选地,延时控制模块1003用于根据可用延时选取单元1001指示的延时值对连接到存储器的链路进行延时控制。

可选地,可用延时选取单元1001还用于:通过延时控制模块1003分别将第一延时集合中的每一个延时值作为目标链路的延时值,之后指示存储器1004进行数据的读写操作,并根据数据验证单元1002发送的读写操作结果从第一延时集合中确定目标链路对应的可用延时集合;或将第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值通过延时控制模块1003将选取的第一延时值作为目标链路的延时值,之后指示存储器1004进行数据的读写操作,并根据数据验证单元1002发送的读写操作结果将第一次和最后一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值以及位于这两个第一延时值之间的至少一个延时值加入到可用延时集合中,n为小于第一延时集合中延时值总数的自然数;或将第一延时集合中的延时值进行排序,按照排序后的顺序每隔n个延时值选取一个第一延时值通过延时控制模块1003将选取的第一延时值作为目标链路的延时值,之后指示存储器1004进行数据的读写操作,并根据数据验证单元1002发送的读写操作结果将第一次和最后一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值加入到可用延时集合中,n为小于第一延时集合中延时值总数的自然数。

可选地,可用延时选取单元1001还用于:通过延时控制模块1003控制基准链路的延时值,从第一延时集合中确定目标链路对应的可用延时集合;当目标链路是输入数据链路1005或输出数据链路1006时,基准数据链路为输入数据链路1005和输出数据链路1006中除目标链路以外的链路;当目标链路是时钟链路1007时,基准链路包括输入数据链路1005和输出数据链路1006。

可选地,可用延时选取单元1001还用于:从第一延时集合中选取第一延时值,并通过延时控制模块1003将选取的第一延时值作为目标链路的延时值进行延时控制;针对第一延时值,从第二延时值集合中每隔m个延时值选取一个基准延时值,以及通过延时控制模块1003将选取的基准延时值作为基准链路的延时值进行延时控制,之后指示存储器1004进行数据的读写操作,并根据数据验证单元1002发送的读写操作结果判断使用第一延时值以及使用基准延时值进行延时控制时存储器1004在同一存储地址的写入值与写入后的读取值是否相同,其中m为小于第二延时集合中延时值总数的自然数;若通过数据验证单元1002发送的读写操作结果判断至少一次读写操作后存储器1004在同一存储地址的写入值与写入后的读取值相同,则将第一延时值作为可用延时集合中的延时值。

可选地,可用延时选取单元1001还用于:将第二延时集合中的延时值进行排序之后,从第二延时值集合中每隔m个延时值选取一个基准延时值,并通过延时控制模块1003将选取的基准延时值作为基准链路的延时值,之后通过存储器1004进行数据的读写操作。

可选地,可用延时选取单元1001还用于:将可用延时集合中最大的可用延时值和最小的可用延时值的均值作为最优延时值;或将可用延时集合中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为最优延时值;或确定第一延时集合中位于可用延时值集合中的最大和最小的可用延时值之间的延时值,以及将确定的延时值中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为最优延时值。

可选地,可用延时选取单元1001还用于:在通过延时控制模块1003将与存储器链接的其他链路的延时值设置为可用值之后,从第一延时集合中确定目标链路对应的可用延时集合。

可选地,可用延时选取单元1001可以是cpu(centralprocessingunit,中央处理器)等处理器。

可选地,数据验证单元1002可以是存储器校验器件。

可选地,延时控制模块1003可以是存储器延时链路中的延时控制模块。

如图11所示,本发明实施例提供的可用延时选取单元1001具体包括控制模块1102、可用延时模块1103、目标链路控制模块1104、基准链路控制模块1105、延时值排序模块1106、延时值配置模块1107;

其中,控制模块1102用于通过可用延时模块1103从第一延时集合中确定目标链路对应的可用延时集合,其中使用可用延时集合中的延时值作为目标链路的延时值进行读写操作时,至少一次读写操作后与目标链路连接的存储器1004在同一存储地址的写入值与写入后的读取值相同,目标链路为输入数据链路1005、输出数据链路1006以及时钟链路1007中的任意一条链路;控制模块1102还用于根据可用延时集合中的延时值,确定目标链路对应的最优延时值。

可选地,控制模块1102还用于确定目标链路和/或基准链路。

可选地,控制模块1102还用于:指示目标链路控制模块1104确定目标链路对应的延时值;控制模块1102还用于:指示基准链路控制模块1105确定基准链路对应的延时值。

可选地,控制模块1102还用于通过存储器控制器单元1101控制存储器进行读写操作;其中存储器控制器单元可以是用于控制存储器的存储器控制器。

可选地,控制模块1102还用于:通过延时值配置模块1107指示延时控制模块1003分别将第一延时集合中的每一个延时值作为目标链路的延时值,之后通过存储器控制器单元1101指示存储器1004进行数据的读写操作,并根据数据验证单元1002发送的读写操作结果指示可用延时模块1103从第一延时集合中确定目标链路对应的可用延时集合;或

指示延时值排序模块1106将第一延时集合中的延时值进行排序,按照排序后的顺序通过目标链路控制模块1104每隔n个延时值选取一个第一延时值并通过延时值配置模块1107指示延时控制模块1003将第一延时值作为目标链路的延时值,之后通过存储器控制器单元1101指示存储器1004进行数据的读写操作,并根据数据验证单元1002发送的读写操作结果指示可用延时模块1103将第一次和最后一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值以及位于这两个第一延时值之间的至少一个延时值加入到可用延时集合中,n为小于第一延时集合中延时值总数的自然数;或

指示延时值排序模块1106将第一延时集合中的延时值进行排序,按照排序后的顺序通过目标链路控制模块1104每隔n个延时值选取一个第一延时值并通过延时值配置模块1107指示延时控制模块1003将第一延时值作为目标链路的延时值,之后通过存储器控制器单元1101指示存储器1004进行数据的读写操作,并根据数据验证单元1002发送的读写操作结果指示可用延时模块1103将第一次和最后一次使存储器在同一存储地址的至少一次写入值与写入后的读取值相同的第一延时值加入到可用延时集合中,n为小于第一延时集合中延时值总数的自然数。

可选地,控制模块1102还用于:通过延时值配置模块1107指示延时控制模块1003控制基准链路的延时值,通过目标链路控制模块1104从第一延时集合中确定目标链路对应的可用延时集合;当目标链路是输入数据链路1005或输出数据链路1006时,基准数据链路为输入数据链路1005和输出数据链路1006中除目标链路以外的链路;当目标链路是时钟链路1007时,基准链路包括输入数据链路1005和输出数据链路1006。

可选地,控制模块1102还用于:通过目标链路控制模块1104从第一延时集合中选取第一延时值,并通过延时值配置模块1107指示延时控制模块1003将选取的第一延时值作为目标链路的延时值进行延时控制;针对第一延时值,通过基准链路控制模块1105从第二延时值集合中每隔m个延时值选取一个基准延时值,并通过延时值配置模块1107指示延时控制模块1003将选取的基准延时值作为基准链路的延时值进行延时控制,之后通过存储器控制器单元1101指示存储器1004进行数据的读写操作,并根据数据验证单元1002发送的读写操作结果判断使用第一延时值以及使用基准延时值进行延时控制时存储器1004在同一存储地址的写入值与写入后的读取值是否相同,其中m为小于第二延时集合中延时值总数的自然数;若通过数据验证单元1002发送的读写操作结果判断至少一次读写操作后存储器1004在同一存储地址的写入值与写入后的读取值相同,则指示可用延时模块1103将第一延时值作为可用延时集合中的延时值。

可选地,控制模块1102还用于:指示延时值排序模块1106将第二延时集合中的延时值进行排序之后,通过基准链路控制模块1105从第二延时值集合中每隔m个延时值选取一个基准延时值,之后通过延时值配置模块1107指示延时控制模块1003将选取的基准延时值作为基准链路的延时值,之后通过存储器控制器单元1101指示存储器1004进行数据的读写操作。

可选地,控制模块1102还用于:将可用延时集合中最大的可用延时值和最小的可用延时值的均值作为最优延时值;或将可用延时集合中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为最优延时值;或确定第一延时集合中位于可用延时值集合中的最大和最小的可用延时值之间的延时值,以及将确定的延时值中与最大的可用延时值和最小的可用延时值的均值最为接近的至少一个可用延时值中的任意一个作为最优延时值。

可选地,控制模块1102还用于:在通过延时值配置模块1107指示延时控制模块1003将与存储器链接的其他链路的延时值设置为可用值之后,从第一延时集合中确定目标链路对应的可用延时集合。

可选地,可用延时模块1103也可以与控制模块1102合并为一个功能模块。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1