CN117174160A - 指令的测试方法、装置、测试平台及可读存储介质 - Google Patents
指令的测试方法、装置、测试平台及可读存储介质 Download PDFInfo
- Publication number
- CN117174160A CN117174160A CN202210583104.4A CN202210583104A CN117174160A CN 117174160 A CN117174160 A CN 117174160A CN 202210583104 A CN202210583104 A CN 202210583104A CN 117174160 A CN117174160 A CN 117174160A
- Authority
- CN
- China
- Prior art keywords
- instruction
- historical
- time
- time interval
- memory
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000015654 memory Effects 0.000 claims description 150
- 238000012545 processing Methods 0.000 claims description 12
- 238000010998 test method Methods 0.000 claims description 4
- 239000004065 semiconductor Substances 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 12
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 102100040858 Dual specificity protein kinase CLK4 Human genes 0.000 description 1
- 101000749298 Homo sapiens Dual specificity protein kinase CLK4 Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037452 priming Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开实施例提供了一种指令的测试方法、装置、测试平台及可读存储介质,涉及半导体技术领域,当测试平台存在待向存储器发送的目标指令时,根据目标指令与各个历史指令之间的最小时间间隔,以及各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,在空置指令之后,向存储器发送目标指令,可以不需要人工参与,高效的确定指令之间的时间间隔,从而准确发送各个指令。
Description
技术领域
本公开实施例涉及半导体技术领域,尤其涉及一种指令的测试方法、装置、测试平台及可读存储介质。
背景技术
在半导体技术领域,存储器会涉及很多种不同的指令,由于存储器内部电路需要时间来响应接收到的指令,因此不同指令之间需要间隔一定的时间。
由于存储器涉及的指令种类众多,多种指令在两两组合后需要确定的时间间隔的数量也会非常多。因此,在日常测试工作中,测试平台如何高效的确定指令之间发送的时间间隔,向存储器准确发送各个指令,是目前亟需解决的技术问题。
发明内容
本公开实施例提供了一种指令的测试方法、装置、测试平台及可读存储介质,测试平台可以高效的确定指令之间发送的时间间隔,进而向存储器准确发送各个指令。
第一方面,本公开提供了一种指令的测试方法,该方法应用于测试平台,包括:
当所述测试平台存在待向存储器发送的目标指令时,确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔;所述各个历史指令与所述目标指令存在时序约束;
根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,所述空置指令在最后一个所述历史指令之后、所述目标指令之前发送;
在所述空置指令之后,向所述存储器发送所述目标指令。
在一种可行的实施方式中,所述根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,包括:
根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,分别确定所述目标指令相对于所述各个历史指令的第一等待时长;
当所述目标指令相对于所述各个历史指令的第一等待时长不均为零时,将所述目标指令相对于所述各个历史指令的第一等待时长中的最大值确定为所述空置指令的时长;
当所述目标指令相对于所述各个历史指令的第一等待时长均为零时,确定所述空置指令的时长为零。
在一种可行的实施方式中,所述根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,分别确定所述目标指令相对于所述各个历史指令的第一等待时长,包括:
分别比较所述目标指令与所述各个历史指令之间的最小时间间隔是否大于所述各个历史指令的发出时刻与当前时刻的时间间隔;
若所述目标指令与所述各个历史指令中的第一历史指令之间的第一最小时间间隔,大于所述第一历史指令的发出时刻与当前时刻的第一时间间隔,则将所述第一最小时间间隔与所述第一时间间隔的差值确定为所述目标指令相对于所述第一历史指令的第一等待时长;
若所述第一最小时间间隔小于或等于所述第一时间间隔,则确定所述目标指令相对于所述第一历史指令的第一等待时长为零。
在一种可行的实施方式中,所述在所述空置指令之后,向所述存储器发送所述目标指令,包括:
当所述空置指令的时长为零时,立即向所述存储器发送所述目标指令;
当所述空置指令的时长不为零时,根据所述当前时刻与所述空置指令的时长,确定所述目标指令的发送时间,并在所述目标指令的发送时间到达时向所述存储器发送所述目标指令。
在一种可行的实施方式中,所述确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔之前,还包括:
获取所述存储器对应的时序约束文件;
基于所述时序约束文件,查找出所述测试平台已向所述存储器发送的与所述目标指令存在时序约束的各个历史指令。
在一种可行的实施方式中,所述确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,包括:
根据所述存储器的配置信息,确定所述存储器当前的工作模式;
根据所述存储器在当前的工作模式下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
在一种可行的实施方式中,所述确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,包括:
确定所述存储器当前的时序速率;
根据所述存储器在当前的时序速率下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
第二方面,本公开提供了一种指令的测试装置,应用于测试平台,包括:
确定模块,用于当所述测试平台存在待向存储器发送的目标指令时,确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔;所述各个历史指令与所述目标指令存在时序约束;
处理模块,用于根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,所述空置指令在最后一个所述历史指令之后、所述目标指令之前发送;
发送模块,用于在所述空置指令之后,向所述存储器发送所述目标指令。
在一种可行的实施方式中,所述处理模块用于:
根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,分别确定所述目标指令相对于所述各个历史指令的第一等待时长;
当所述目标指令相对于所述各个历史指令的第一等待时长不均为零时,将所述目标指令相对于所述各个历史指令的第一等待时长中的最大值确定为所述空置指令的时长;
当所述目标指令相对于所述各个历史指令的第一等待时长均为零时,确定所述空置指令的时长为零。
在一种可行的实施方式中,所述处理模块用于:
分别比较所述目标指令与所述各个历史指令之间的最小时间间隔是否大于所述各个历史指令的发出时刻与当前时刻的时间间隔;
若所述目标指令与所述各个历史指令中的第一历史指令之间的第一最小时间间隔,大于所述第一历史指令的发出时刻与当前时刻的第一时间间隔,则将所述第一最小时间间隔与所述第一时间间隔的差值确定为所述目标指令相对于所述第一历史指令的第一等待时长;
若所述第一最小时间间隔小于或等于所述第一时间间隔,则确定所述目标指令相对于所述第一历史指令的第一等待时长为零。
在一种可行的实施方式中,所述发送模块用于:
当所述空置指令的时长为零时,立即向所述存储器发送所述目标指令;
当所述空置指令的时长不为零时,根据所述当前时刻与所述空置指令的时长,确定所述目标指令的发送时间,并在所述目标指令的发送时间到达时向所述存储器发送所述目标指令。
在一种可行的实施方式中,还包括查找模块,用于:
获取所述存储器对应的时序约束文件;
基于所述时序约束文件,查找出所述测试平台已向所述存储器发送的与所述目标指令存在时序约束的各个历史指令。
在一种可行的实施方式中,所述确定模块用于:
根据所述存储器的配置信息,确定所述存储器当前的工作模式;
根据所述存储器在当前的工作模式下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
在一种可行的实施方式中,所述确定模块用于:
确定所述存储器当前的时序速率;
根据所述存储器在当前的时序速率下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
第三方面,本公开提供了一种测试平台,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面提供的指令的测试方法。
第四方面,本公开提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面提供的指令的测试方法。
本公开实施例提供的指令的测试方法、装置、测试平台及可读存储介质,当测试平台存在待向存储器发送的目标指令时,根据目标指令与各个历史指令之间的最小时间间隔,以及各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,在空置指令之后,向存储器发送目标指令,可以不需要人工参与,高效的确定指令之间的时间间隔,从而准确发送各个指令。
附图说明
图1为本公开实施例中提供的一种指令测试系统的架构示意图;
图2为本公开实施例中提供的一种指令的测试方法的步骤流程示意图一;
图3为本公开实施例中提供的一种存取DRAM的命令信号的时间限制的时序示意图;
图4为本公开实施例中各个历史指令与目标指令的发送时间示意图一;
图5为本公开实施例中提供的一种指令的测试方法的步骤流程示意图二;
图6为本公开实施例中各个历史指令与目标指令的发送时间示意图二;
图7为本公开实施例中提供的一种指令的测试装置的程序模块示意图;
图8为本公开实施例提供的一种测试平台的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。此外,虽然本公开中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本公开中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本公开的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本公开中说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换,例如能够根据本公开实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本公开实施例中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
本公开实施例可以应用于半导体领域,例如可以应用于存储器测试环节中。
在半导体领域中,存储器会涉及很多种不同的指令。以动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)为例,DRAM常见的指令有Active指令、Precharge指令、Read指令、Write指令、模式寄存器写入(Mode Register Write,简称MRW)指令、模式寄存器读取(Mode Register Read,简称MRR)指令、Refersh指令、Self-Refrresh指令、Powerdown指令等。
可以理解的时,每当有指令发送至存储器时,存储器内部电路都需要一定的时间来响应接收到的指令,因此为了保障存储器能够响应每一条指令,向存储器发送的不同指令之间需要间隔一定的时间。例如,工业标准制定协会(Joint Electron DeviceEngineering Council,简称JEDEC)标准性能评估组织(Standard PerformanceEvaluation Corporation,简称SPEC)通常会对不同DRAM产品的指令进行详细定义,并规定出两两指令之间的最小间隔时间。
在实际应用过程中,由于存储器涉及的指令种类众多,多种指令在两两组合后形成的最小时间间隔的数量也会非常多,且最小间隔时间还受到存储器运行速率、模式配置、存储结构选择等因素的影响,因此计算两两指令之间的最小间隔时间复杂且繁琐。
目前,在日常测试工作中,很大一部分内容就是编写测试激励,而测试激励实质上是存储器在各种工作情况一个个指令的组合,这些指令间的时间间隔必须要根据SPEC的定义最小间隔时间来控制,否则就是非法或是无效的激励,没有测试意义。
然而,如果每次添加新的激励都需要测试人员重新计算指令间的间隔时间,那么测试人员的工作量无疑是巨大的,因此,如何自动计算两两指令间的最小时间间隔,是目前亟需解决的技术问题。
面对上述技术问题,本公开实施例中提供了一种指令的测试方法,当测试平台存在待向存储器发送的目标指令时,根据目标指令与各个历史指令之间的最小时间间隔,以及各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,在空置指令之后,向存储器发送目标指令,由此可以不需要人工参与,高效的确定指令之间的时间间隔,从而准确发送各个指令。详细过程可以参照以下实施例。
参照图1,图1为本公开实施例中提供的一种指令测试系统的架构示意图。
在本公开一些实施例中,上述指令测试系统包括测试平台101与存储器102,其中,测试平台101与存储器102通信连接。
其中,测试平台101可以模拟出各种类型的存储器所使用的各种指令,在测试过程中,测试平台101可以向存储器102发送各种不同指令,以及控制各个指令之间的发送时间间隔。
另外,测试平台101还可以具有接收信号、数据处理、验证等功能,如检查存储器102是否成功执行各指令等。
可选的,存储器102可以为各种类型的存储器,如DRAM、只读存储器(ROM)、随机读写存储器(RAM)等,本公开实施例中不做限制。
参照图2,图2为本公开实施例中提供的一种指令的测试方法的步骤流程示意图一。在本公开一些实施例中,上述指令的测试方法包括:
S201、当测试平台存在待向存储器发送的目标指令时,确定目标指令与已向存储器发送的各个历史指令之间的最小时间间隔,以及各个历史指令的发出时刻与当前时刻的时间间隔。
其中,上述各个历史指令与目标指令存在时序约束。
在一些实施例中,时序约束主要包括周期约束、偏移约束、静态时序路径约束等。
示例性的,以常见的建立时间(setup time)与保持时间(hold time)为例,建立时间是指在时钟有效沿之前,数据输入端信号必须保持稳定的最短时间;保持时间是指在时钟有效沿之后,数据输入端信号必须保持稳定的最短时间。
可以理解的是,在理想情况下,只要在时钟有效沿来临时,有效数据也来临(时钟有效沿之前或同时),则时序逻辑元件便能够正确采集到数据;而在时钟有效沿之后(或同时),即使数据发生变化,也不会影响时序逻辑元件的输出了。然而在实际情况中,时钟沿打开开关需要时间,逻辑门的状态改变(电容充放电等)也都需要时间,因此数据的采集是需要一定时间的,在这个时间内数据不能发生变化,即在时钟有效沿来临之前,数据必须提前一个最小时间量“预先准备好”,这个最小时间量就是上述建立时间。另外,时钟沿关闭开关也需要时间,如果在这个时间段内数据有变化的话,那么新数据就有可能被传递到下一级,进而发生错误,所以数据必须保持一定时间不变,即在时钟有效沿来临之后,数据必须保持一个最小时间量“不能变化”,这个最小时间量就是上述保持时间。
为了更好的理解本公开实施例,参照图3,图3为本公开实施例中提供的一种存取DRAM的命令信号的时间限制的时序示意图。
在图3中,为了简便起见,省略了DRAM相关的地址信号与数据信号波形。在时序示意图中,启动信号(active command)10表示行存取时间,其是在DRAM控制器发给DRAM的行地址时,预充命令(预充信号)20表示一个预充命令时间,其是在DRAM控制器发给DRAM的预充命令时。需要注意的是,在一个DRAM的规格中定义的行启动时间(row active time)tRAS,需要在启动信号10与预充信号20之间存在。换句话说,行启动时间tRAS需要一个绝对时间差(absolute timing gap),存在于DRAM的行启动与预充DRAM的该启动的行之间。
举例来说,当启动时间tRAS是20ns,DRAM控制器在发送启动信号10之后的20ns内不能发送预充信号20给DRAM,否则发送的预充信号20就是无效信号。为了满足tRAS这个条件,DRAM控制器可使用一计数器来对DRAM控制器以及DRAM的相应的时钟周期数计数。举例来说,如果DRAM子系统的时钟CLK的频率是200MHz(即时钟周期是5ns),DRAM控制器会如下操作:发送启动信号10;计数至少CLK4个时钟周期;发送预充信号20。
在本公开一些实施例中,当测试平台每次发送一个新的指令时,首先计算该指令在当前配置和速率下与之前各个存在时序约束的历史指令之间的最小时间间隔,同时,测试平台实时记录下上述各个历史指令发出之后到当前时刻的时间间隔。
为了更好的理解本公开实施例,参照图4,图4为本公开实施例中各个历史指令与目标指令的发送时间示意图一。
如图4所示,假设测试平台在当前时刻tf存在待向存储器发送的目标指令F,确定测试平台已发送的指令中,指令a、指令b及指令c与目标指令F存在时序约束,则分别确定目标指令F与指令a、指令b及指令c之间的最小时间间隔,同时确定指令a的发出时刻ta与当前时刻tf的时间间隔、指令b的发出时刻tb与当前时刻tf的时间间隔、指令c的发出时刻tc与当前时刻tf的时间间隔。
S202、根据目标指令与各个历史指令之间的最小时间间隔,以及各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长。
其中,上述空置指令在最后一个历史指令之后、目标指令之前发送。
可以理解的是,如果某个历史指令的发出时刻与当前时刻的时间间隔大于或等于该历史指令与目标指令之间的最小时间间隔,则当目标指令立即发送之后,该历史指令与目标指令之间能够满足时序要求;如果某个历史指令的发出时刻与当前时刻的时间间隔小于该历史指令与目标指令之间的最小时间间隔,则当目标指令立即发送之后,由于该历史指令与目标指令之间无法满足时序要求,因此存储器可能会无法响应或者出现响应错误。
在一些实施例中,如果某个历史指令的发出时刻与当前时刻的时间间隔小于该历史指令与目标指令之间的最小时间间隔,则为了使该历史指令与目标指令之间能够满足时序要求,可以根据该历史指令与目标指令之间的最小时间间隔,以及该历史指令的发出时刻与当前时刻的时间间隔,发送一个空置指令,等该空置指令结束后,再发送目标指令。由于该空置指令具有一定的时长,相当于从当前时刻起,等待一定时长之后,再发送目标指令。
在一些实施例中,如果测试平台已向存储器发送的指令中存在多个与当前要发送的目标指令存在时序约束的历史指令时,可以确定出目标指令相对于各个历史指令的等待时长,然后在目标指令相对于各个历史指令的等待时长中取最大值,作为空置指令的时长。
S203、在空置指令之后,向存储器发送目标指令。
在一些实施例中,在确定空置指令的时长后,发送空置指令,并在空置指令结束后,向存储器发送目标指令。相当于是从当前时刻开始计时,在等待空置指令的时长后再发送目标指令,由此可以保证在目标指令发送之后,目标指令与上述各个历史指令均能够满足时序要求。
本公开实施例提供的指令的测试方法,当测试平台存在待向存储器发送的目标指令时,根据目标指令与各个历史指令之间的最小时间间隔,以及各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,在空置指令之后,向存储器发送目标指令,可以不需要人工参与,高效的确定指令之间的时间间隔,从而准确发送各个指令。
基于上述实施例中描述的内容,在一些实施例中,参照图5,图5为本公开实施例中提供的一种指令的测试方法的步骤流程示意图二。在本公开一些实施例中,上述指令的测试方法包括:
S501、当测试平台存在待向存储器发送的目标指令时,确定目标指令与已向存储器发送的各个历史指令之间的最小时间间隔,以及各个历史指令的发出时刻与当前时刻的时间间隔。
其中,上述各个历史指令与目标指令存在时序约束。
在一些实施例中,测试平台可以预先获取存储器对应的时序约束文件;当测试平台存在待向存储器发送的目标指令时,基于该时序约束文件,查找出测试平台已向存储器发送的与目标指令存在时序约束的各个历史指令。
在本公开一些实施例中,当测试平台存在待向存储器发送的目标指令时,可以获取存储器对应的标准规则文件,从标准规则文件中确定出目标指令与上述各个历史指令之间的最小时间间隔。
在本公开另一些实施例中,当测试平台存在待向存储器发送的目标指令时,可以根据存储器的配置信息,确定存储器当前的工作模式;根据存储器在当前的工作模式下各个指令之间的最小时间间隔,确定出目标指令与上述各个历史指令之间的最小时间间隔。
可以理解的是,当存储器对应的配置信息不同时,其对应的工作模式也会不同。
示例性的,以全新低功耗内存标准(Low Power Double Data Rate 5,简称LPDDR5)DRAM为例,LPDDR5 DRAM支持三种工作模式,即Bank-Group模式(配置4个Bank,4Bank-Group)、8Bank模式(配置8个Bank,no Bank-Group)以及16Bank模式(配置16个Bank,no Bank-Group)。
其中,当存储器处于不同的工作模式时,所对应的速度也会存在区别,如Bank-Group模式适用于高于3200Mbps的速度,并允许16和32比特的突发长度。8Bank模式支持突发长度为32比特的所有速度,而16Bank模式则支持突发长度为16或32比特的3200Mbps以下的速度。
由于存储器在不同的工作模式下的速度不同,因此存储器在不同的工作模式下所采用的时钟信号也会不同,由此可能会导致相同两个指令之间的最小时间间隔不同。
例如,假设Bank-Group模式采用的时钟信号的周期为X(ns),16Bank模式采用的时钟信号的周期为Y(ns),某两个指令之间的最小时间间隔为n个时钟周期,其中,X≠Y。则在Bank-Group模式下,上述两个指令之间的最小时间间隔为n*X(ns);在16Bank模式下,上述两个指令之间的最小时间间隔为n*Y(ns)。
在本公开又一些实施例中,当测试平台存在待向存储器发送的目标指令时,可以先确定存储器当前的时序速率;根据存储器在当前的时序速率下各个指令之间的最小时间间隔,确定目标指令与所述各个历史指令之间的最小时间间隔。
其中,由于存储器在不同的时序速率下,所采用的时钟信号的周期会不同,因此,当存储器的时序速率不同时,相同两个指令之间的最小时间间隔可能也会不同。
例如,假设在标准协议中已经规定了某两个指令之间的最小时间间隔为max(5,12nWCK),则在当12nWCK>5时,上述两个指令之间的最小时间间隔由存储器的时钟信号来决定,即存储器当前的时序速率越高,上述两个指令之间的最小时间间隔越小。
S502、根据目标指令与各个历史指令之间的最小时间间隔,以及各个历史指令的发出时刻与当前时刻的时间间隔,分别确定目标指令相对于各个历史指令的第一等待时长。
在一些实施例中,可以分别比较目标指令与各个历史指令之间的最小时间间隔是否大于各个历史指令的发出时刻与当前时刻的时间间隔;若目标指令与各个历史指令中的第一历史指令之间的第一最小时间间隔,大于第一历史指令的发出时刻与当前时刻的第一时间间隔,则将第一最小时间间隔与上述第一时间间隔的差值确定为目标指令相对于上述第一历史指令的第一等待时长;若上述第一最小时间间隔小于或等于上述第一时间间隔,则确定目标指令相对于上述第一历史指令的第一等待时长为零。
为了更好的理解本公开实施例,仍旧参照图4,假设测试平台在当前时刻tf存在待向存储器发送的目标指令F,确定测试平台已发送的指令中,指令a、指令b及指令c与目标指令F存在时序约束,分别确定目标指令F与指令a、指令b及指令c之间的最小时间间隔为m1、m2、m3;同时确定指令a的发出时刻ta与当前时刻tf的时间间隔为k1、指令b的发出时刻tb与当前时刻tf的时间间隔为k2、指令c的发出时刻tc与当前时刻tf的时间间隔为k3。
则在一些实施例中,若m1>k1,则目标指令F相对于指令a的第一等待时长d1为:d1=m1-k1;若m1≤k1,则d1=0。
若m2>k2,则目标指令F相对于指令b的第一等待时长d2为:d2=m2-k2;若m2≤k2,则d2=0。
若m2>k2,则目标指令F相对于指令c的第一等待时长d3为:d3=m3-k3;若m3≤k3,则d3=0。
S503、判断目标指令相对于各个历史指令的第一等待时长是否均为零;当目标指令相对于各个历史指令的第一等待时长不均为零时,执行S504与S505;当目标指令相对于各个历史指令的第一等待时长均为零时,执行S506。
S504、将目标指令相对于各个历史指令的第一等待时长中的最大值确定为空置指令的时长。
在一些实施例中,当目标指令相对于各个历史指令的第一等待时长不均为零时,说明目标指令需要等待一定时长之后才能再发送。为了确保目标指令发送之后,目标指令与各个历史指令均满足时序要求,因此可以选择目标指令相对于各个历史指令的第一等待时长中的最大值作为空置指令的时长。
S505、根据当前时刻与空置指令的时长,确定目标指令的发送时间,并在目标指令的发送时间到达时向存储器发送目标指令。
在一些实施例中,确定空置指令的时长之后,即可根据当前时刻与空置指令的时长,确定目标指令的发送时间。例如,假设当前时刻为tf,空置指令的时长为T,则可以确定目标指令的发送时间为tf+T。
在确定目标指令的发送时间之后,监测测试平台的时钟,当监测到目标指令的发送时间到达时,立即向存储器发送目标指令。
S506、确定空置指令的时长为零,立即向存储器发送目标指令。
在一些实施例中,当目标指令相对于各个历史指令的第一等待时长均为零时,说明各个历史指令的发出时刻与当前时刻的时间间隔均大于或等于各个历史指令与目标指令之间的最小时间间隔,此种情况下,测试平台无需等待,可以直接向存储器发送目标指令。
本公开实施例提供的指令的测试方法,当测试平台存在待向存储器发送的目标指令时,先确定目标指令与各个历史指令之间的最小时间间隔,同时记录各个历史指令的发出时刻与当前时刻的时间间隔,根据目标指令与各个历史指令之间的最小时间间隔是否大于各个历史指令的发出时刻与当前时刻的时间间隔,来确定目标指令相对于各个历史指令的等待时长,选择目标指令相对于各个历史指令的等待时长中的最大值作为空置指令的时长,由此可以保证目标指令在发送之后,与上述各个历史指令之间均能够满足时序要求。
基于上述实施例中所描述的内容,为了更好的理解本公开实施例,参照图6,图6为本公开实施例中各个历史指令与目标指令的发送时间示意图二。
在本公开一些实施例中,假设测试平台在当前时刻存在待向存储器发送的目标指令F,确定测试平台已发送的指令中,指令a、指令b及指令c与目标指令F存在时序约束,若分别确定目标指令F相对于指令a的第一等待时长为d1,目标指令F相对于指令b的第一等待时长为d2,目标指令F相对于指令c的第一等待时长为d3,则取上述d1、d2、d3的最大值作为空置指令的时长。
在本公开一些实施例中,在确定出空置指令的时长后,还可以确定出指令c与目标指令F的时间间隔。其中,指令c与目标指令F的时间间隔为指令c的发出时刻与当前时刻的时间间隔+空置指令的时长。
本公开实施例提供的指令的测试方法,当测试平台存在待向存储器发送的目标指令时,可以根据确定的目标指令相对于各个历史指令的等待时长,来自动确定出目标指令的发送时间,此过程不需要人工参与,由此可以有效提升存储器的测试效率。
基于上述实施例中所描述的内容,本公开实施例中还提供一种指令的测试装置,应用于测试平台,参照图7,图7为本公开实施例中提供的一种指令的测试装置的程序模块示意图,该指令的测试装置包括:
确定模块701,用于当所述测试平台存在待向存储器发送的目标指令时,确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔;所述各个历史指令与所述目标指令存在时序约束。
处理模块702,用于根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,所述空置指令在最后一个所述历史指令之后、所述目标指令之前发送。
发送模块703,用于在所述空置指令之后,向所述存储器发送所述目标指令。
在一种可行的实施方式中,处理模块702用于:
根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,分别确定所述目标指令相对于所述各个历史指令的第一等待时长;
当所述目标指令相对于所述各个历史指令的第一等待时长不均为零时,将所述目标指令相对于所述各个历史指令的第一等待时长中的最大值确定为所述空置指令的时长;
当所述目标指令相对于所述各个历史指令的第一等待时长均为零时,确定所述空置指令的时长为零。
在一种可行的实施方式中,处理模块702用于:
分别比较所述目标指令与所述各个历史指令之间的最小时间间隔是否大于所述各个历史指令的发出时刻与当前时刻的时间间隔;
若所述目标指令与所述各个历史指令中的第一历史指令之间的第一最小时间间隔,大于所述第一历史指令的发出时刻与当前时刻的第一时间间隔,则将所述第一最小时间间隔与所述第一时间间隔的差值确定为所述目标指令相对于所述第一历史指令的第一等待时长;
若所述第一最小时间间隔小于或等于所述第一时间间隔,则确定所述目标指令相对于所述第一历史指令的第一等待时长为零。
在一种可行的实施方式中,发送模块703用于:
当所述空置指令的时长为零时,立即向所述存储器发送所述目标指令;
当所述空置指令的时长不为零时,根据所述当前时刻与所述空置指令的时长,确定所述目标指令的发送时间,并在所述目标指令的发送时间到达时向所述存储器发送所述目标指令。
在一种可行的实施方式中,还包括查找模块,用于:
获取所述存储器对应的时序约束文件;
基于所述时序约束文件,查找出所述测试平台已向所述存储器发送的与所述目标指令存在时序约束的各个历史指令。
在一种可行的实施方式中,确定模块701用于:
根据所述存储器的配置信息,确定所述存储器当前的工作模式;
根据所述存储器在当前的工作模式下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
在一种可行的实施方式中,确定模块701用于:
确定所述存储器当前的时序速率;
根据所述存储器在当前的时序速率下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
需要说明的是,本公开实施例中确定模块701、处理模块702及发送模块703具体执行的内容可以参阅图1至图6所示实施例中相关内容,此处不做赘述。
进一步的,基于上述实施例中所描述的内容,本公开实施例中还提供了一种测试平台,该测试平台包括至少一个处理器和存储器;其中,存储器存储计算机执行指令;上述至少一个处理器执行存储器存储的计算机执行指令,以实现如上述实施例中描述的指令的测试方法中的各个步骤,本实施例此处不再赘述。
为了更好的理解本公开实施例,参照图8,图8为本公开实施例提供的一种测试平台的硬件结构示意图。
如图8所示,本实施例的测试平台80包括:处理器801以及存储器802;其中:
存储器802,用于存储计算机执行指令;
处理器801,用于执行存储器存储的计算机执行指令,以实现上述实施例中描述的指令的测试方法中的各个步骤,具体可以参见前述方法实施例中的相关描述。
可选地,存储器802既可以是独立的,也可以跟处理器801集成在一起。
当存储器802独立设置时,该设备还包括总线803,用于连接存储器802和处理器801。
进一步的,基于上述实施例中所描述的内容,本公开实施例中还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,以实现如上述实施例中描述的指令的测试方法中的各个步骤,本实施例此处不再赘述。
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
Claims (16)
1.一种指令的测试方法,其特征在于,所述方法应用于测试平台,包括:
当所述测试平台存在待向存储器发送的目标指令时,确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔;所述各个历史指令与所述目标指令存在时序约束;
根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,所述空置指令在最后一个所述历史指令之后、所述目标指令之前发送;
在所述空置指令之后,向所述存储器发送所述目标指令。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,包括:
根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,分别确定所述目标指令相对于所述各个历史指令的第一等待时长;
当所述目标指令相对于所述各个历史指令的第一等待时长不均为零时,将所述目标指令相对于所述各个历史指令的第一等待时长中的最大值确定为所述空置指令的时长;
当所述目标指令相对于所述各个历史指令的第一等待时长均为零时,确定所述空置指令的时长为零。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,分别确定所述目标指令相对于所述各个历史指令的第一等待时长,包括:
分别比较所述目标指令与所述各个历史指令之间的最小时间间隔是否大于所述各个历史指令的发出时刻与当前时刻的时间间隔;
若所述目标指令与所述各个历史指令中的第一历史指令之间的第一最小时间间隔,大于所述第一历史指令的发出时刻与当前时刻的第一时间间隔,则将所述第一最小时间间隔与所述第一时间间隔的差值确定为所述目标指令相对于所述第一历史指令的第一等待时长;
若所述第一最小时间间隔小于或等于所述第一时间间隔,则确定所述目标指令相对于所述第一历史指令的第一等待时长为零。
4.根据权利要求2所述的方法,其特征在于,所述在所述空置指令之后,向所述存储器发送所述目标指令,包括:
当所述空置指令的时长为零时,立即向所述存储器发送所述目标指令;
当所述空置指令的时长不为零时,根据所述当前时刻与所述空置指令的时长,确定所述目标指令的发送时间,并在所述目标指令的发送时间到达时向所述存储器发送所述目标指令。
5.根据权利要求1所述的方法,其特征在于,所述确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔之前,还包括:
获取所述存储器对应的时序约束文件;
基于所述时序约束文件,查找出所述测试平台已向所述存储器发送的与所述目标指令存在时序约束的各个历史指令。
6.根据权利要求1所述的方法,其特征在于,所述确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,包括:
根据所述存储器的配置信息,确定所述存储器当前的工作模式;
根据所述存储器在当前的工作模式下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
7.根据权利要求1所述的方法,其特征在于,所述确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,包括:
确定所述存储器当前的时序速率;
根据所述存储器在当前的时序速率下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
8.一种指令的测试装置,其特征在于,应用于测试平台,包括:
确定模块,用于当所述测试平台存在待向存储器发送的目标指令时,确定所述目标指令与已向所述存储器发送的各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔;所述各个历史指令与所述目标指令存在时序约束;
处理模块,用于根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,确定空置指令的时长,所述空置指令在最后一个所述历史指令之后、所述目标指令之前发送;
发送模块,用于在所述空置指令之后,向所述存储器发送所述目标指令。
9.根据权利要求8所述的装置,其特征在于,所述处理模块用于:
根据所述目标指令与所述各个历史指令之间的最小时间间隔,以及所述各个历史指令的发出时刻与当前时刻的时间间隔,分别确定所述目标指令相对于所述各个历史指令的第一等待时长;
当所述目标指令相对于所述各个历史指令的第一等待时长不均为零时,将所述目标指令相对于所述各个历史指令的第一等待时长中的最大值确定为所述空置指令的时长;
当所述目标指令相对于所述各个历史指令的第一等待时长均为零时,确定所述空置指令的时长为零。
10.根据权利要求9所述的装置,其特征在于,所述处理模块用于:
分别比较所述目标指令与所述各个历史指令之间的最小时间间隔是否大于所述各个历史指令的发出时刻与当前时刻的时间间隔;
若所述目标指令与所述各个历史指令中的第一历史指令之间的第一最小时间间隔,大于所述第一历史指令的发出时刻与当前时刻的第一时间间隔,则将所述第一最小时间间隔与所述第一时间间隔的差值确定为所述目标指令相对于所述第一历史指令的第一等待时长;
若所述第一最小时间间隔小于或等于所述第一时间间隔,则确定所述目标指令相对于所述第一历史指令的第一等待时长为零。
11.根据权利要求9所述的装置,其特征在于,所述发送模块用于:
当所述空置指令的时长为零时,立即向所述存储器发送所述目标指令;
当所述空置指令的时长不为零时,根据所述当前时刻与所述空置指令的时长,确定所述目标指令的发送时间,并在所述目标指令的发送时间到达时向所述存储器发送所述目标指令。
12.根据权利要求8所述的装置,其特征在于,还包括查找模块,用于:
获取所述存储器对应的时序约束文件;
基于所述时序约束文件,查找出所述测试平台已向所述存储器发送的与所述目标指令存在时序约束的各个历史指令。
13.根据权利要求8所述的装置,其特征在于,所述确定模块用于:
根据所述存储器的配置信息,确定所述存储器当前的工作模式;
根据所述存储器在当前的工作模式下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
14.根据权利要求8所述的装置,其特征在于,所述确定模块用于:
确定所述存储器当前的时序速率;
根据所述存储器在当前的时序速率下各个指令之间的最小时间间隔,确定所述目标指令与所述各个历史指令之间的最小时间间隔。
15.一种测试平台,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的指令的测试方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的指令的测试方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210583104.4A CN117174160A (zh) | 2022-05-26 | 2022-05-26 | 指令的测试方法、装置、测试平台及可读存储介质 |
PCT/CN2022/096076 WO2023226061A1 (zh) | 2022-05-26 | 2022-05-30 | 指令的测试方法、装置、测试平台及可读存储介质 |
US17/899,056 US11977465B2 (en) | 2022-05-26 | 2022-08-30 | Method for testing a command, an apparatus for testing a command and a readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210583104.4A CN117174160A (zh) | 2022-05-26 | 2022-05-26 | 指令的测试方法、装置、测试平台及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117174160A true CN117174160A (zh) | 2023-12-05 |
Family
ID=88918292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210583104.4A Pending CN117174160A (zh) | 2022-05-26 | 2022-05-26 | 指令的测试方法、装置、测试平台及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117174160A (zh) |
WO (1) | WO2023226061A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5188134B2 (ja) * | 2007-10-03 | 2013-04-24 | キヤノン株式会社 | メモリアクセス制御装置及びメモリアクセス制御方法 |
GB201500446D0 (en) * | 2015-01-12 | 2015-02-25 | Univ Manchester | Monitoring device |
CN108139994B (zh) * | 2016-05-28 | 2020-03-20 | 华为技术有限公司 | 内存访问方法及内存控制器 |
KR20210112557A (ko) * | 2020-03-05 | 2021-09-15 | 에스케이하이닉스 주식회사 | 메모리 장치에서 연속으로 수행되는 다수의 커맨드 동작에 필요한 파워값을 정확하게 예측할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20220046211A (ko) * | 2020-10-07 | 2022-04-14 | 에스케이하이닉스 주식회사 | 저항성 메모리 장치를 제어하기 위한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
-
2022
- 2022-05-26 CN CN202210583104.4A patent/CN117174160A/zh active Pending
- 2022-05-30 WO PCT/CN2022/096076 patent/WO2023226061A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023226061A1 (zh) | 2023-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101903865B (zh) | 测试可重新配置测试器的方法 | |
US6636957B2 (en) | Method and apparatus for configuring and initializing a memory device and a memory channel | |
CN106556793B (zh) | 芯片测试系统及测试方法 | |
US8225064B2 (en) | Storage region allocation system, storage region allocation method, and control apparatus | |
US8448029B2 (en) | Multiprocessor system having multiple watchdog timers and method of operation | |
EP1127307A1 (en) | A method and apparatus for restoring a memory device channel when exiting a low power state | |
CN106856098B (zh) | 一种用于DRAM或eDRAM刷新的装置及其方法 | |
CN103811048A (zh) | 一种混合存储器结构的低功耗刷新方法 | |
EP2519953A2 (en) | Robust memory link testing using memory controller | |
CN113383317B (zh) | 一种处理装置、方法及相关设备 | |
CN102169463B (zh) | 一种基于iic总线的制造信息的获取方法和设备 | |
JP2022172443A (ja) | メモリチップロウハンマー脅威バックプレッシャー信号およびホスト側応答に関する方法および装置 | |
US11977465B2 (en) | Method for testing a command, an apparatus for testing a command and a readable storage medium | |
CN106128499A (zh) | 一种用于DRAM或eDRAM刷新的装置及刷新方法 | |
EP3736682A1 (en) | Refreshing method, apparatus and system, and memory controller | |
CN117174160A (zh) | 指令的测试方法、装置、测试平台及可读存储介质 | |
CN104915316A (zh) | 通信设备 | |
CN105446863A (zh) | 具有记录能力的电子装置与电路状态记录方法 | |
CN111984478A (zh) | 一种eeprom芯片传递式测试方法及系统 | |
CN113741678A (zh) | 从空闲模式到操作模式的功率管理和交错转换 | |
JP3629056B2 (ja) | ランダムアクセスメモリのメモリチップ拡張制御方法及び装置 | |
US11526204B2 (en) | Power management and transitioning cores within a multicore system from idle mode to operational mode over a period of time | |
CN1532701B (zh) | 存储器不稳定仍维持系统稳定度的系统及存储器控制方法 | |
CN117008843B (zh) | 控制页链表构建装置和电子设备 | |
US6950921B2 (en) | Method for operating an integrated memory unit partitioned by an external control signal |
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 |