CN117095736A - 存储器的测试方法及测试装置、电子设备和可读存储介质 - Google Patents

存储器的测试方法及测试装置、电子设备和可读存储介质 Download PDF

Info

Publication number
CN117095736A
CN117095736A CN202210519509.1A CN202210519509A CN117095736A CN 117095736 A CN117095736 A CN 117095736A CN 202210519509 A CN202210519509 A CN 202210519509A CN 117095736 A CN117095736 A CN 117095736A
Authority
CN
China
Prior art keywords
instruction
cas
command
signal
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
Application number
CN202210519509.1A
Other languages
English (en)
Inventor
李钰
赵北游
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changxin Memory Technologies Inc
Original Assignee
Changxin Memory Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changxin Memory Technologies Inc filed Critical Changxin Memory Technologies Inc
Priority to CN202210519509.1A priority Critical patent/CN117095736A/zh
Priority to PCT/CN2022/098451 priority patent/WO2023216357A1/zh
Priority to US17/954,556 priority patent/US20230014477A1/en
Publication of CN117095736A publication Critical patent/CN117095736A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56012Timing aspects, clock generation, synchronisation

Abstract

本公开涉及存储器测试技术领域,尤其涉及一种存储器的测试方法及测试装置、电子设备和计算机可读存储介质。其中,存储器的测试方法,包括:向存储器发送指令信号,所述指令信号包括随机产生的写入指令或读出指令;检测所述指令信号的具体类型,以在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令;使所述存储器运行所述指令信号、插入的所述有效CAS指令、所述冗余CAS指令和/或所述无效命令,并测试所述存储器的运行情况。通过该存储器的测试方法能够随机插入不同的CAS指令和无效命令,从而能够尽可能全面的模拟存储器在实际使用过程中可能遇到的所有情况。

Description

存储器的测试方法及测试装置、电子设备和可读存储介质
技术领域
本公开涉及存储器测试技术领域,尤其涉及一种存储器的测试方法及测试装置、电子设备和可读存储介质。
背景技术
存储器测试领域中,为了尽可能的使得测试的结果更加准确,需要尽可能的插入不同的CAS指令。但是,CAS指令的使用场景要求和时序均必须满足存储器中的协议规范。并且各个CAS指令之间是存在相关性的,因此各个CAS指令之间也必须满足协议规范,不能够出现错误的情况,以影响后续的操作。
但是,目前在本领域中所采用的存储器测试方法为了满足协议规范,不能够实现尽可能插入不同CAS指令的要求,这也就使得现有的存储器测试方法无法模拟存储器在实际使用过程中可能遇到的所有情况,并且操作较为复杂。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于克服上述现有技术的不足,提供一种存储器的测试方法及测试装置、电子设备和可读存储介质。该存储器的测试方法能够尽可能全面的模拟存储器在实际使用过程中可能遇到的所有情况。
本公开一方面提供了一种存储器的测试方法,包括:
向存储器发送指令信号,所述指令信号包括随机产生的写入指令或读出指令;
检测所述指令信号的具体类型,以在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令;
使所述存储器运行所述指令信号、插入的所述有效CAS指令、所述冗余CAS指令和/或所述无效命令,并测试所述存储器的运行情况。
在本公开的一种示例性实施例中,所述在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令,包括:
检测前一所述有效CAS指令的类型并判断是否可以保证当前所述指令信号的执行;
若是,则检测当前所述指令信号与前一所述有效CAS指令之间的时间间隔;
判断所述时间间隔和将要插入的无效命令的时间总和是否大于前一所述有效CAS指令的维持时间,在所述维持时间内,所述写入指令或所述读出指令能够被执行;
若所述时间总和大于所述维持时间,则判断所述时间间隔是否大于所述维持时间,若是,则在当前所述指令信号之前插入保证所述指令信号运行的所述有效CAS指令,且在插入的所述有效CAS指令和当前所述指令信号之间随机插入所述冗余CAS指令和/或所述无效命令。
在本公开的一种示例性实施例中,还包括:若所述时间间隔等于所述维持时间,则在剩余所述维持时间内,执行当前所述指令信号,或者,则插入保证当前所述指令信号运行的所述有效CAS指令,并在插入的所述有效CAS指令的维持时间内先插入所述冗余CAS指令和/或所述无效命令再执行当前所述指令信号。
在本公开的一种示例性实施例中,还包括:若所述时间间隔小于所述维持时间,则在剩余所述维持时间内直接执行当前所述指令信号,或者,则在剩余所述维持时间内,先插入所述冗余CAS指令和/或所述无效命令,再执行当前所述指令信号,或者,则插入保证当前所述指令信号运行的所述有效CAS指令,并在插入的所述有效CAS指令的维持时间内先插入所述冗余CAS指令和/或所述无效命令再执行当前所述指令信号。
在本公开的一种示例性实施例中,还包括:若所述时间总和等于所述维持时间,则插入所述无效命令,且在剩余所述维持时间内执行当前所述指令信号,或者,在插入所述无效命令后插入保证当前所述指令信号运行的所述有效CAS指令,并在插入的所述有效CAS指令的维持时间内插入所述冗余CAS指令后执行当前所述指令信号。
在本公开的一种示例性实施例中,还包括:若所述时间总和小于所述维持时间,则插入所述无效命令,且在剩余所述维持时间内先插入所述冗余CAS指令,再执行当前所述指令信号,或者,在插入所述无效命令后插入保证当前所述指令信号运行的所述有效CAS指令,并在插入的所述有效CAS指令的维持时间内插入所述冗余CAS指令并执行当前所述指令信号。
在本公开的一种示例性实施例中,所述维持时间为前一所述有效CAS指令的最大维持时间,或者,前一所述有效CAS指令的最小维持时间,或者,所有所述有效CAS指令的平均维持时间。
在本公开的一种示例性实施例中,在前一所述有效CAS指令的维持时间内插入的所述有效CAS指令之后,在当前所述指令信号之前,插入的所述冗余CAS指令和/或无效命令总共不超过7个。
在本公开的一种示例性实施例中,所述测试方法还包括:
在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令时,对随机插入的所述有效CAS指令、随机产生并插入的所述无关的冗余CAS指令和无效命令的数量进行统计;
在所述存储器运行完当前时钟周期内的所述指令信号、插入的所述有效CAS指令、所述冗余CAS指令和/或所述无效命令之后,将在当前时钟周期内统计的所述有效CAS指令、所述冗余CAS指令和所述无效命令的数量清零。
在本公开的一种示例性实施例中,检测前一所述有效CAS指令的类型包括:
当检测到的前一所述有效CAS指令的类型为CAS_FS指令时,保留所述CAS_FS指令;
当检测到的前一所述有效CAS指令的类型为除CAS_FS指令之外的其余CAS指令时,忽略所述其余CAS指令。
在本公开的一种示例性实施例中,随机产生并插入的所述冗余CAS指令的数量为多个,所述冗余CAS指定具有多种类型。
在本公开的一种示例性实施例中,所述冗余CAS指令信号包括:CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种;
其中,所述CAS_WRX指令用于随机写入数据,所述CAS_WRSB指令用于重复写入高字节数据,所述CAS_DC指令用于拷贝第一次突发的数据并存储。
在本公开的一种示例性实施例中,所述写入指令包括:存储器写入指令和寄存器写入指令;
所述读出指令包括:存储器读出指令和寄存器读出指令。
本公开另一方面提供了一种存储器的测试装置,包括:
指令信号发生器,与所述存储器连接,且所述指令信号发生器用于向所述存储器发送指令信号;
检测器,与所述指令信号发生器连接,用于检测所述指令信号的具体类型;
随机信号发生器,与所述检测器连接,且所述随机信号发生器用于在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令;
测试器,与所述存储器连接,用于测试存储器的运行情况;
其中,所述指令信号包括随机产生的写入指令或读出指令。
在本公开的一种示例性实施例中,所述随机信号发生器包括:
检测组件,用于检测前一所述有效CAS指令的类型,并用于检测当前所述指令信号与前一所述有效CAS指令之间的时间间隔;
判断组件,用于判断前一所述有效CAS指令是否可以保证当前所述指令信号的执行,并用于判断所述时间间隔和将要插入的无效命令的时间总和是否大于前一所述有效CAS指令的维持时间,以及用于在所述时间总和大于所述维持时间时,判断所述时间间隔是否大于所述维持时间;
信号发生组件,用于在所述时间间隔大于所述维持时间时,在当前所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且用于在插入的所述有效CAS指令和当前所述指令信号之间随机插入所述冗余CAS指令和/或所述无效命令。
在本公开的一种示例性实施例中,所述测试装置还包括:
计数器,用于对随机插入的所述有效CAS指令、随机产生并插入的所述无关的冗余CAS指令和所述无效命令的数量进行统计。
本公开的再一方面提供了一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的存储器的测试方法。
本公开的又一方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的存储器的测试方法。
本公开提供的技术方案可以达到以下有益效果:
本公开提供了一种存储器的测试方法,该存储器的测试方法能够随机产生写入指令或者读出指令,以此增加了该测试方法的随机性,也就能够扩大测试的场景覆盖率,以检测存储器在各个场景下的运行情况。
并且,该存储器的测试方法还能够检测指令信号的具体类型,以在指令信号之前随机插入保证指令信号运行的有效CAS指令,且能够随机产生并插入与指令信号无关的冗余CAS指令和/或无效命令。
也就因该,测试方法能够保证所插入的CAS指令均符合协议规范的要求,使得测试过程中不会出现错误的情况而影响后续的测试和操作。
并且,随机产生和插入CAS指令和无效命令还能够进一步地提高该测试方法的随机性,使得其在测试的过程中能够尽可能全面的模拟存储器在实际使用过程中可能遇到的所有情况。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本公开一示例性实施例的存储器的测试方法的流程示意图;
图2示出了根据本公开一示例性实施例的图1中步骤S20中部分流程示意图;
图3示出了根据本公开另一示例性实施例的图1中步骤S20中部分流程示意图;
图4示出了根据本公开再一示例性实施例的图1中步骤S20中部分流程示意图;
图5示出了根据本公开又一示例性实施例的图1中步骤S20中部分流程示意图;
图6示出了根据本公开另一示例性实施例的存储器的测试方法的流程示意图;
图7示出了根据本公开一示例性实施例的图2中步骤S201的流程示意图
图8示出了根据本公开一示例性实施例的存储器的测试装置的模块结构示意图;
图9示出了根据本公开一示例性实施例的电子设备的模块结构示意图;
图10示出了根据本公开一示例性实施例的计算机可读介质的示意图。
附图标记说明:
1、存储器;
2、存储器的测试装置;21、指令信号发生器;22、检测器;23、随机信号发生器;24、测试器;25、计数器;231、检测组件;232、判断组件;233、信号发生组件;2321、计算元件;2322、采集元件;2323、判断元件;
3、电子设备;31、处理器;32、存储器;33、总线;34、显示单元;35、I/O接口;36、网络适配器;37、外部设备;321、随机存取存储单元;322、高速缓存存储单元;323、只读存储单元;324、程序/实用工具;325、程序模块;
4、计算机程序。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本公开将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
用语“一个”、“一”、“该”、“所述”和“至少一个”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
随着电子设备(例如:手机、计算机、平板电脑、电视和智能手表等)的使用场景和使用要求的不断提高,以及目前对于电子设备在使用过程中的稳定性要求不断提升。作为电子设备中不可或缺的存储器的性能和稳定性也需要不断地进行提高。
在本领域中,目前所使用的存储器可以包括:静态随机存取存储器(SRAM,StaticRandom-Access Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。其中,动态随机存取存储器可以包括:Rambus动态随机存取存储器(RDRAM,Rambus DynamicRandom Access Memory)和双倍速率同步动态随机存储器(DDR,Double Data RateSynchronous Dynamic RandomAccess Memory,DDR SDRAM)等。
为了保证存储器在后续使用的过程中具有良好的性能和稳定性,就需要在使用前对存储器的性能和稳定性进行全面的测试和验证。这就需要尽可能的在测试过程中模拟出存储器在后续使用过程中的所有可能出现的情况进行全面的测试和验证。
但是,本公开的申请人经过对现有的存储器的测试方法进行了认真的研究之后发现现有的存储器的测试方法不能够实现尽可能随机插入不同CAS指令的要求,这也就使得现有的存储器的测试方法不能够在测试的过程中尽可能的模拟所有存储器可能遇到的情况,从而使得通过现有的存储器的测试方法对存储器进行测试时场景覆盖率较低,并且操作较为复杂。
为了解决上述技术问题,本公开的发明人经过认真的思考,付出了大量的创造性劳动之后,他发明了一种新的存储器的测试方法,能够扩大测试的场景覆盖率,从而能够在测试的过程中能够尽可能全面的模拟存储器在实际使用过程中可能遇到的所有情况。
在本公开的一个实施例中,如图1所示,存储器的测试方法可以包括:
步骤S10、向存储器发送指令信号,指令信号包括随机产生的写入指令或读出指令。
步骤S20、检测指令信号的具体类型,以在指令信号之前随机插入保证指令信号运行的有效CAS指令,且随机产生并插入与指令信号无关的冗余CAS指令和/或无效命令。
步骤S30、使存储器运行指令信号、插入的有效CAS指令、冗余CAS指令和/或无效命令,并测试存储器的运行情况。
下面以LPDDR5存储器为例,对上述存储器的测试方法进行详细说明:
在步骤S10中,可以利用指令信号发送器向存储器发送指令信号。该指令信号可以包括写入指令或者读出指令。其中,写入指令可以包括:存储器写入指令(wr)和寄存器写入指令(mwr);读出指令信号可以包括:存储器读出指令(rd)和寄存器读出指令(mrr)。
上述向存储器发送的指令信号可以为单个指令信号或者由多个指令信号组成的指令串。例如:可以向存储器发送一个单一的写入指令或者读出指令,该写入指令或者读出指令可以在第一采样时刻被采样;或者可以向存储器发送一个指令串,该指令串可以包括多个写入指令和/或读出指令以及其他指令,并且该指令串符合先入先出队列。举例而言:该指令串可以为wr、rd、wr、rd、mrr,此时指令串中第一个指令为wr,则此时存储器运行时先运行wr,在wr这个指令运行完以后才开始运行rd,以此类推,rd运行完之后开始运行第二个wr,第二个wr运行完以后运行第二个rd,最后运行mrr指令结束整个流程。
在本实施例中,指令信号可以随机产生,即:本公开不需要事先设定所需要插入的指令信号的类型,指令信号发送器可以在各种类型的指令信号中随机选择插入的指令信号,从而能够以此增加该存储器的测试方法的随机性,也就能够扩大测试的场景覆盖率,以检测存储器在各个场景下的运行情况。
在上述步骤S20中,可以首先检测指令信号的具体类型,以判断向存储器所发送的随机的指令信号是写入指令、读出指令或者其他指令信号。当指令信号发送器向存储器发送的指令信号为由多个指令信号组成的指令串的时候,可以同时对指令串中的所有指令的具体类型进行检测,也可以在不同的时刻分时对指令串中的各个指令的具体类型进行检测。
在本实施例中,在检测完指令信号的具体类型之后,可以在指令信号之前随机插入保证指令信号运行的有效CAS指令。由于存储器运行指令时满足先入先出队列,由于在先入先出队列中,后一个指令信号需要在前一个指令信号运行完之后才能够开始运行,并且前一个指令信号运行完之后就会引退。所以此时在指令信号之前插入保证指令信号运行的有效CAS指令是为了保证与该CAS指令相邻的下一个指令信号运行。举例而言:当指令串为wr、rd、wr、rd、nrr的时候,可以在第一个wr指令之前随机插入一个保证其运行的有效CAS指令,在获取对应的有效CAS指令之后,可以保证与其相邻的下一个wr指令(即第一个wr指令)运行;并且第一个wr指令运行完之后就会引退,所以在rd指令之前随机插入的有效CAS指令是为了保证该有效CAS指令之后的rd指令运行。
本公开利用先入先出队列的方式发送指令信号,能够在测试的过程中提前知道前后各个指令信号运行的顺序,从而能够实现随机插入有效CAS指令的目的。并且,由于本公开的指令信号时随机生成的,有效CAS指令也是随机生成和插入的,也就因此能够增强测试的准确性和随机性。
在本公开的一个实施例中,有效CAS指令可以包括:CAS_WR指令、CAS_FS指令和CAS_RD指令。但不限于此,该有效CAS指令还可以包括:CAS_OFF指令等,这均在本公开的保护范围之内。其中,CAS_WR可以用于同步写时钟,以使得与其相邻的下一个wr或者mwr指令可以运行。CAS_RD指令可以用于同步读时钟,以使得与其相邻的下一个rd或者mrr指令运行。CAD_FS指令可以用于同步前一写时钟或者读时钟。
也就因此,当检测到的当前指令信号的具体类型为所述写入指令时,可以在写入指令之前随机插入CAS_WR指令或者CAS_FS指令,以此能够保证当前的写入指令能够正常运行。当检测到当前指令信号的具体类型为读出指令时,可以在读出指令之前随机插入CAS_RD指令或者CAS_FS指令,以此能够保证当前的读出指令能够正常运行。需要说明的是,当在写入指令和读出指令之前插入CAS_FS指令时,需要保证前一有效CAS指令还在其维持时间内。
在本实施例中,上述所述的每一个有效CAS指令均具有维持时间,如果紧接的上一个CAS_WR指令的维持时间还未消失,那么当前的wr指令前面不需要在同步写时钟,也就可以不用在当前wr指令前插入一个新的CAS_WR指令。如果紧接的上一个CAS_WR指令的维持时间消失,那么当前的weite指令运行前必须要使用CAS_WR指令来同步写时钟,以保证当前的wr指令能够运行。
同理,如果紧接的上一个CAS_RD指令的维持时间还未消失,那么当前的rd指令前面不需要在同步读时钟,也就可以不用在当前rd指令前插入一个新的CAS_RD指令。如果紧接的上一个CAS_RD指令的维持时间消失,那么当前的rd指令运行前必须要使用CAS_RD指令来同步读时钟,以保证当前的rd指令能够运行。
如果前一个指令信号是rd指令,当前指令信号为wr指令,那么当前的wr指令前必须要插入一个CAS_WR指令。反之,如果前一个指令信号是wr指令,当前指令信号为rd指令,那么当前的rd指令前必须要插入一个CAS_RD指令。
需要说明的是,由于本公开的指令信号满足先入先出队列的要求,所以上述所说的前一个指令信号可以理解为已经运行完成并且引退的指令信号,而当前指令信号可以理解为在与其相邻的前一个指令信号运行完成后即将开始运行的指令信号。
如果当前指令信号为wr指令,并且在当前指令信号前的运行了CAS_FS指令以同步了写时钟,此时可以不用在当前的wr指令前插入CAS_WR指令。并且,如果在这种情况下,后续的指令信号均为wr指令的话,那么在CAS_FS指令的维持时间内,在后续的wr指令信号前也均不需要再插入CAS_WR指令。
如果当前指令信号为rd指令,并且在当前指令信号前的运行了CAS_FS指令以同步了读时钟,此时可以不用在当前的rd指令前插入CAS_RD指令。并且,如果在这种情况下,后续的指令信号均为rd指令的话,那么在CAS_FS指令的维持时间内,在后续的wr指令信号前也均不需要再插入CAS_RD指令。
上述CAD_OFF指令可以用来结束当前的时钟同步状态。既可以理解为:如果紧接的上一个CAS_WR指令或者同步写时钟的CAS_FS指令的维持时间还未消失,可以插入一个CAD_OFF指令结束写时钟同步状态,此时当前的wr指令前就必须重新插入一个CAS_WR指令来再一次同步写时钟,才可以保证当前的wr指令运行。同理,如果紧接的上一个CAS_RD指令或者同步读时钟的CAS_FS指令的维持时间还未消失,可以插入一个CAD_OFF指令结束读时钟同步状态,此时当前的rd指令前就必须重新插入一个CAS_RD指令来再一次同步读时钟,才可以保证当前的rd指令运行。
另外,如果在当前指令信号运行前出现了断电情况,则在断电时会立刻结束时钟的同步状态。此时,若要在通电后继续运行当前指令信号,则必须在当前指令信号前随机插入保证该当前指令信号运行的有效CAS指令。例如:如果当前指令信号为wr指令,此时如果出现断电情况,则在通电后必须在该wr指令之前插入CAS_WR指令以同步写时钟;同理,如果当前指令信号为rd指令,此时如果出现断电情况,则在通电后必须在该rd指令之前插入CAS_RD指令以同步读时钟。
在本实施例中,还可以随机产生并插入与指令信号无关的冗余CAS指令,冗余CAS指令可以插入在指令信号之前,也可以插入在指令信号之后。通过随机产生并插入冗余CAS指令,能够进一步增强指令插入的随机性,从而能够进一步使得该存储器的测试方法在测试的过程中能够尽可能多的模拟存储器在实际运行过程中所能够遇到的情况,以保证通过测试后的存储器在实际使用过程中能够具有较高的稳定性。
在本公开的一个实施例中,随机产生并插入的冗余CAS指令的数量可以为多个,即可以理解的是:在指令信号之前可以插入多个冗余CAS指令,或者在指令信号之后可以插入多个冗余CAS指令,亦或者可以在指定信号之前和之后均插入至少一个冗余CAS指令。
上述冗余CAS指令具有多种类型。举例而言:冗余CAS指令信号可以包括:CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种。其中,CAS_WRX指令可以用于写入随机数据;CAS_WRSB指令可以用于重复写入高字节数据,并且当CAS_WRSB指令为1时,高字节[15:8]均为1,当CAS_WRSB指令为0时,高字节[15:8]均为0;CAS_DC指令可以用于拷贝第一次突发的数据并存储。但不限于此,冗余CAS指令还可以包括其他的CAS指令。
在本公开的一个实施例中,如图2所示,上述在指令信号之前随机插入保证指令信号运行的有效CAS指令,且随机产生并插入与指令信号无关的冗余CAS指令和/或无效命令可以包括:
步骤S201、检测前一有效CAS指令的类型并判断是否可以保证当前指令信号的执行;
步骤S202、若是,则检测当前指令信号与前一有效CAS指令之间的时间间隔;
步骤S203、判断时间间隔和将要插入的无效命令的时间总和是否大于前一有效CAS指令的维持时间,在维持时间内,写入指令或读出指令能够被执行;
步骤S204、若时间总和大于维持时间,则判断时间间隔是否大于维持时间,若是,则在当前指令信号之前插入保证指令信号运行的有效CAS指令,且在插入的有效CAS指令和当前指令信号之间随机插入冗余CAS指令和/或无效命令。
下面通过举例对上述步骤S201~S204进行详细说明:
在当前的指令信号为wr时,可以检测前一有效CAS指令的类型。若前一有效CAS指令的类型为CAS_WR指令时,可以判断前一有效CAS指令可以保证当前指令信号wr能够执行。此时,可以检测该wr指令与检测到的CAS_WR指令之间的时间间隔。
可以计算wr指令与检测到的CAS_WR指令之间的时间间隔和将要在wr指令前插入的无效命令的时间总和,或者计算时间间隔和将要在wr指令前插入的无效命令和/或冗余CAS指令的时间总和。可以获取CAS_WR指令的维持时间,并判断上述时间总和是否大于CAS_WR指令的维持时间。
若上述时间总和大于检测到的CAS_WR指令的维持时间时,则表示当wr指令要运行的时候,CAS_WR指令的维持时间可能结束,写时钟此时就有可能会处于未同步状态。
此时,为了进一步判断wr指令要运行时写时钟的同步状态,可以再判断上述时间间隔是否大于CAS_WR指令的维持时间。若上述时间间隔大于CAS_WR指令的维持时间,则表示当wr指令要运行时写时钟一定处于未同步状态。从而,为了保证当前wr指令的正常运行,此时就需要在该wr指令之前随机插入一个新的CAS_WR指令,以用于再次同步写时钟。并且,可以在插入的有效CAS指令和该wr指令之间随机插入冗余CAS指令和/或无效命令。
同理,在当前的指令信号为rd时,可以检测前一有效CAS指令的类型。若前一有效CAS指令的类型为CAS_RD指令时,可以判断前一有效CAS指令可以保证当前指令信号rd能够执行。此时,可以检测该rd指令与检测到的CAS_RD指令之间的时间间隔。
可以计算rd指令与检测到的CAS_RD指令之间的时间间隔和将要在rd指令前插入的无效命令的时间总和,或者计算时间间隔和将要在rd指令前插入的无效命令和/或冗余CAS指令的时间总和。可以获取CAS_RD指令的维持时间,并判断上述时间总和是否大于CAS_RD指令的维持时间。
若上述时间总和大于检测到的CAS_RD指令的维持时间时,则表示当rd指令要运行的时候,CAS_Rd指令的维持时间可能消失,读时钟此时就有可能会处于未同步状态。
此时,为了进一步判断rd指令要运行时写时钟的同步状态,可以再判断上述时间间隔是否大于CAS_RD指令的维持时间。若上述时间间隔大于CAS_RD指令的维持时间,则表示当rd指令要运行时读时钟一定处于未同步状态。从而,为了保证当前rd指令的正常运行,此时就需要在该rd指令之前随机插入一个新的CAS_RD指令,以用于再次同步读时钟。并且,可以在插入的有效CAS指令和该rd指令之间随机插入冗余CAS指令和/或无效命令。
从而,通过本实施例提供的测试方式,可以扩充冗余CAS指令插入的情况,从而可以进一步测试存储器在插入冗余CAS指令时候运行的稳定性。
另外,在本实施例中,若检测前一有效CAS指令的类型不能够保证当前指令信号的执行的时候,则在此时就需要在该指令信号之前插入与能够保证该指令信号运行的有效CAS指令,以使得该指令信号能够正常运行。
在本公开的一个实施例中,若当前指令信号与前一有效CAS指令之间的时间间隔等于前一有效CAS指令的维持时间时,可以在前一有效CAS指令的剩余维持时间内,执行当前指令信号,或者在当前指令信号前插入保证当前指令信号运行的有效CAS指令,并在插入有效CAS指令的维持时间内先插入冗余CAS指令和/或无效命令再执行当前指令信号。从而,本公开通过上述两种执行指令信号的方式能够进一步扩充对存储器的测试场景。
举例而言:若当前的指令信号为wr,前一有效CAS指令为CAS_WR指令,在wr指令与该CAS_WR指令之间的时间间隔等于CAS_WR指令的维持时间时,可以认为写时钟依然是同步的,所以此时可以在CAS_WR指令的剩余维持时间内直接执行当前wr指令;或者在当前wr指令前插入CAS_FS指令,并在CAS_FS指令的维持时间内先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再执行当前wr指令。
需要说明的是,上述实施例中冗余CAS指令和/或无效命令仅仅插入了一次,即:在插入有效CAS指令后再插入冗余CAS指令和/或无效命令。
但是,在本实施例中,冗余CAS指令和/或无效命令可以多次插入。即:可以在插入有效CAS指令之前先插入一次冗余CAS指令和/或无效命令,并在插入有效CAS指令之后再插入一次冗余CAS指令和/或无效命令。例如:在wr指令与该CAS_WR指令之间的时间间隔等于CAS_WR指令的维持时间时,可以先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再插入CAS_FS指令,并在CAS_FS后再插入一次CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,最后执行该wr指令。需要说明的是,在计算时间间隔时,由于指令信号的时间在提前确定的,因此即便没有运行到需要执行当前指令信号的时刻,也可以知道当前指令信号与前一有效CAS指令之间的间隔,因此,可以先插入冗余CAS指令和/或无效命令,只需要保证插入的CAS_FS指令能够有效同步写时钟或读时钟即可。
同理,若当前的指令信号为rd,前一有效CAS指令为CAS_RD指令,在rd指令与该CAS_RD指令之间的时间间隔等于CAS_RD指令的维持时间时,可以认为读时钟依然是同步的,所以此时可以在CAS_RD指令的剩余维持时间内直接执行当前rd指令;或者在当前rd指令前插入CAS_FS指令,并在CAS_FS指令的维持时间内先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再执行当前rd指令。
并且在本实施例中,在rd指令与该CAS_RD指令之间的时间间隔等于CAS_RD指令的维持时间时,还可以先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再插入CAS_FS指令,并在CAS_FS后再插入一次CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,最后执行该rd指令。
在本公开的一个实施例中,若当前指令信号与前一所述有效CAS指令之间的时间间隔小于前一有效CAS指令的维持时间时,可以在剩余维持时间内直接执行当前指令信号;或者在剩余维持时间内,先插入冗余CAS指令和/或无效命令,再执行当前的指令信号;或者插入保证当前指令信号运行的有效CAS指令,并在插入的有效CAS指令的维持时间内先插入冗余CAS指令和/或无效命令再执行当前指令信号。从而,本公开通过上述三种不同的执行指令信号的方式能够更进一步扩充对存储器的测试场景。
举例而言:若当前的指令信号为wr,前一有效CAS指令为CAS_WR指令,在wr指令与该CAS_WR指令之间的时间间隔小于CAS_WR指令的维持时间时,可以认为写时钟依然是同步的,所以此时可以在CAS_WR指令的剩余维持时间内直接执行当前wr指令;或者,可以在CAS_WR指令的剩余维持时间内,先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再执行wr指令;又或者在当前wr指令前插入CAS_FS指令,并在CAS_FS指令的维持时间内先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再执行当前wr指令。
同理,若当前的指令信号为rd,前一有效CAS指令为CAS_RD指令,在rd指令与该CAS_RD指令之间的时间间隔小于CAS_RD指令的维持时间时,可以认为读时钟依然是同步的,所以此时可以在CAS_RD指令的剩余维持时间内直接执行当前rd指令;或者,可以在CAS_RD指令的剩余维持时间内,先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再执行rd指令;又或者在当前rd指令前插入CAS_FS指令,并在CAS_FS指令的维持时间内先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再执行当前rd指令。
同样,在本实施例中,也可以多次插入冗余CAS指令和/或无效命令。例如:在wr指令与该CAS_WR指令之间的时间间隔小于CAS_WR指令的维持时间时,还可以先插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,再插入CAS_FS指令,并在CAS_FS后再插入一次CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令和/或无效命令,最后执行该wr指令。
在本公开的一个实施例中,若时间间隔和将要插入的无效命令的时间总和等于维持时间,则可以插入无效命令,且可以在剩余维持时间内执行当前指令信号;或者,可以在插入无效命令后插入保证当前指令信号运行的有效CAS指令,并在插入的有效CAS指令的维持时间内插入冗余CAS指令后执行当前所述指令信号。从而,本公开将时间总和等于维持时间时指令信号运行的情况分成上述两种不同的方式,以此能够进一步扩充对存储器的测试场景。
举例而言:若当前的指令信号为wr指令,前一有效CAS指令为CAS_WR指令,并且时间间隔和将要插入的无效命令的时间总和等于维持时间时,可以认为当前的wr指令要运行时,CAS_WR指令依然在维持,此时写时钟是处于同步状态的。此时,可以在指令信号之前将无效命令插入,并能够正常执行该指令信号;或者,可以在插入无效命令后,插入CAS_FS指令,并插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令,再执行当前wr指令。
同时,在本实施例中,无效命令可以多次插入。例如:可以先插入无效命令,再插入CAS_FS指令,并插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令,再冗余CAS指令插入后,再插入一次无效命令,最后在执行wr指令。
同理,若当前的指令信号为rd指令,前一有效CAS指令为CAS_RD指令,并且时间间隔和将要插入的无效命令的时间总和等于维持时间时,可以认为当前的rd指令要运行时,CAS_RD指令依然在维持,此时读时钟是处于同步状态的。此时,可以在指令信号之前将无效命令插入,并能够正常执行该指令信号;或者,可以在插入无效命令后,插入CAS_FS指令,并插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令,再执行当前rd指令。
并且,还可以先插入无效命令,再插入CAS_FS指令,并插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令,再冗余CAS指令插入后,再插入一次无效命令,最后在执行当前rd指令。
在本公开的一个实施例中,若时间间隔和将要插入的无效命令的时间总和小于维持时间,则可以插入无效命令,且可以在剩余维持时间内先插入冗余指令,再执行当前指令信号;或者,可以在插入无效命令后插入保证当前指令信号运行的有效CAS指令,并在插入的有效CAS指令的维持时间内插入冗余CAS指令后执行当前所述指令信号。从而,本公开将时间总和小于维持时间时指令信号运行的情况分成上述两种不同的方式,以此能够覆盖存储器更多的测试场景。
举例而言:若当前的指令信号为wr指令,前一有效CAS指令为CAS_WR指令,并且时间间隔和将要插入的无效命令的时间总和小于维持时间时,可以认为当前的wr指令要运行时,CAS_WR指令依然在维持并且还可以具有多余的维持时间,此时写时钟是处于同步状态的。此时,可以在指令信号之前将无效命令插入,并且由于还具有多余的维持时间,从而可以在剩余维持时间内插入CAS_FS指令,并插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令,并能够正常执行该指令信号;或者,可以在插入无效命令后,插入CAS_FS指令,并插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令,再执行当前wr指令。
同理,若当前的指令信号为rd指令,前一有效CAS指令为CAS_RD指令,并且时间间隔和将要插入的无效命令的时间总和小于维持时间时,可以认为当前的rd指令要运行时,CAS_RD指令依然在维持并且还可以具有多余的维持时间,此时写时钟是处于同步状态的。此时,可以在rd指令之前将无效命令插入,并且由于还具有多余的维持时间,从而可以在剩余维持时间内插入CAS_FS指令,并插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令,并能够正常执行该rd指令;或者,可以在插入无效命令后,插入CAS_FS指令,并插入CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种冗余CAS指令,再执行当前rd指令。
同时,在本实施例中,无效命令也可以多次插入,这也在本公开的保护范围之内。
在本公开的一个实施例中,在前一所述有效CAS指令的维持时间内插入的所述有效CAS指令之后,在当前所述指令信号之前,插入的所述冗余指令和/或无效命令总共不超过7个,以防止无效命令无法被执行而使得存储器运行错误。在本实施例中,在前一所述有效CAS指令的维持时间内插入所述有效CAS指令可以为CAS_FS指令。
在本公开的一个实施例中,上述维持时间可以为前一有效CAS指令的最大维持时间,或者为前一有效CAS指令的最小维持时间,又或者为所有有效CAS指令的平均维持时间。
在本公开的另一个实施例中,若时间总和大于维持时间时,可以不再判断时间间隔是否大于维持时间。即:如图3所示,上述S20可以包括:步骤S201、检测前一有效CAS指令并判断是否可以保证当前指令信号的执行;步骤S202、若是,则检测当前指令信号与前一指令信号之间的时间间隔;步骤S203、判断时间间隔和将要插入的无效命令的时间总和是否大于前一有效CAS指令的最大维持时间,在最大维持时间内,写入指令或读出指令能够被执行;步骤S204、若时间总和大于最大维持时间,则在当前指令信号之前随机插入保证指令信号运行的有效CAS指令,若时间总和小于最大维持时间,则在当前指令信号所在时刻与最大维持时间的结束时刻之间随机插入与指令信号无关的冗余CAS指令,并在最大维持时间结束后,基于下一指令信号随机插入保证下一指令信号运行的有效CAS指令。
在本公开的另一个实施例中,如图4所示,上述S20可以包括:步骤S201、计算各所有有效CAS指令的最大维持时间;步骤S202、检测当前指令信号与前一指令信号之间的时间间隔;步骤S203、判断时间间隔和将要插入的无效命令的时间总和是否大于各有效CAS指令的最大维持时间;步骤S204、若时间总和大于所有有效CAS指令的最大维持时间,则在当前指令信号之前随机插入保证指令信号运行的有效CAS指令,若时间总和小于所有有效CAS指令的最大维持时间最大维持时间,则在当前指令信号所在时刻与最大维持时间的结束时刻之间随机插入与指令信号无关的冗余CAS指令,并在最大维持时间结束后,基于下一指令信号随机插入保证下一指令信号运行的有效CAS指令。
在本公开的一个实施例中,如图5所示,上述S20可以包括:步骤S201、计算各有效CAS指令的最小维持时间;步骤S202、检测当前指令信号与前一指令信号之间的时间间隔;步骤S203、判断时间间隔和将要插入的无效命令的时间总和是否大于各有效CAS指令的最小维持时间,在最小维持时间内,写入指令或读出指令可被执行;步骤S204、若时间总和大于所有有效CAS指令的最小维持时间,则在当前指令信号之前随机插入保证指令信号运行的有效CAS指令,若时间总和小于所有有效CAS指令的最小维持时间,则在当前指令信号所在时刻与最小维持时间的结束时刻之间随机插入与指令信号无关的冗余CAS指令,并在最小维持时间结束后,基于下一指令信号随机插入保证下一指令信号运行的有效CAS指令。
在本公开的一个实施例中,如图6所示,所述测试方法还可以包括:
步骤S40、在指令信号之前随机插入保证指令信号运行的有效CAS指令,且随机产生并插入与指令信号无关的冗余CAS指令和/或无效命令时,对随机插入的有效CAS指令、随机产生并插入的无关的冗余CAS指令和无效命令的数量进行统计。
步骤S50、在存储器运行完当前时钟周期内的指令信号、插入的有效CAS指令、冗余CAS指令和/或无效命令之后,将在当前时钟周期内统计的有效CAS指令、冗余CAS指令和无效命令的数量清零。
在本实施例中,可以使用计数器对随机插入的有效CAS指令、随机产生并插入的无关的冗余CAS指令和无效命令的数量进行统计,但不限于此,也可以使用其他元件对其数量进行统计,这均在本公开的保护范围之内。
在本公开的一个实施例中,如图7所示,检测前一有效CAS指令的类型可以包括:
步骤S2011、当检测到的前一有效CAS指令的类型为CAS_FS指令时,保留CAS_FS指令。
步骤S2012、当检测到的前一有效CAS指令的类型为除CAS_FS指令之外的其余CAS指令时,忽略其余CAS指令。
在本实施例中,由于CAS_FS指令仍处于维持时间时,是无法在CAS_FS指令和与其相邻的下一个指令信号之间插入其他有效CAS指令的。所以,当检测到前一有效CAS指令的类型为CAS_FS指令时,通过保留CAS_FS指令,能够弥补无法在CAS_FS指令和与其相邻的下一个指令信号之间插入其他有效CAS指令的缺陷。
如图8所示,本公开另一方面提供了一种存储器的测试装置2,该存储器的测试装置2能够采用上述所述的存储器1的测试方法。通过该存储器的测试装置2能够在测试的过程中能够尽可能全面的模拟存储器1在实际使用过程中可能遇到的所有情况。
本公开所提供的存储器的测试装置2可以包括:指令信号发生器21、检测器22、随机信号发生器23和测试器24。
其中,指令信号发生器21可以与存储器1连接,以用于向存储器1发送指令信号。该指令信号发生器21可以为处理器31或者测试用的主机等,本公开对此不做限制,可以根据测试的具体环境进行选择,这均在本公开的保护范围之内。并且,指令信号发生器21所发出的指令信号可以包括随机产生的写入指令或者读取指令。
检测器22可以与指令信号发生器21连接,以用于检测指令信号的具体类型,并且可以将检测到的指令信号的具体类型信息发送给随机信号发生器23。
随机信号发生器23可以与检测器22连接,以用于接收由检测器22发来的其检测到的指令信号的具体类型信息。并且,随机信号发生器23可以用于在指令信号之前随机插入保证指令信号运行的有效CAS指令,还能够随机产生并插入与指令信号无关的冗余CAS指令和/或无效命令。
测试器24可以与存储器1连接,以用于测试存储器1的运行情况。
本公开所提供的随机信号发生器23还可以包括:检测组件231、判断组件232和信号发生组件233。
在本公开的一个实施例中,检测组件231可以用于检测前一有效CAS指令的类型,并用于检测当前指令信号与前一指令信号之间的时间间隔。
判断组件232可以用于判断前一有效CAS指令是否可以保证当前指令信号的执行,并用于判断时间间隔和将要插入的无效命令的时间总和是否大于前一有效CAS指令的最大维持时间,以及用于在时间总和大于维持时间时,判断时间间隔是否大于维持时间。
信号发生组件233可以用于在时间间隔大于维持时间时,在当前指令信号之前随机插入保证指令信号运行的有效CAS指令,且用于在插入的有效CAS指令和当前指令信号之间随机插入冗余CAS指令和/或无效命令。
在本实施例中,检测组件231在检测到前一有效CAS指令的类型为CAS_FS指令时,可以保留CAS_FS指令;并且,该检测组件231还可以在检测到的前一有效CAS指令的类型为除CAS_FS指令之外的其余CAS指令时,忽略其余CAS指令。该检测器22通过这种方式能够弥补无法在CAS_FS指令和与其相邻的下一个指令信号之间插入其他有效CAS指令的缺陷。
在本实施例中,判断组件232还可以包括:计算元件2321、采集元件2322和判断元件2323。其中,计算元件2321可以用于计算时间间隔和将要插入的无效命令的时间总和;采集元件2322可以用于获取前一有效CAS指令的维持时间;判断元件2323可以用于对时间总和以及前一有效CAS指令的维持时间进行比较,以判断时间总和是否大于前一所述有效CAS指令的维持时间。
在本公开的另一个实施例中,检测组件231可以用于计算各有效CAS指令的最大维持时间,并且检测当前指令信号与前一指令信号之间的时间间隔。
判断组件232可以用于判断时间间隔和将要插入的无效命令的时间总和是否大于各有效CAS指令的最大维持时间。
信号发生组件233可以用于在时间总和大于最大维持时间时,在当前指令信号之前随机插入保证指令信号运行的有效CAS指令;以及用于在时间总和小于所述最大维持时间时,在当前指令信号所在时刻与最大维持时间的结束时刻之间随机插入与指令信号无关的冗余CAS指令,并在最大维持时间结束后,基于下一指令信号随机插入保证下一指令信号运行的有效CAS指令。
在本公开的又一个实施例中,检测组件231可以用于计算各有效CAS指令的最小维持时间,并检测当前指令信号与前一指令信号之间的时间间隔。
判断组件232可以用于判断时间间隔和将要插入的无效命令的时间总和是否大于各有效CAS指令的最小维持时间。
信号发生组件233可以用于在时间总和大于时最小维持时间,在当前指令信号之前随机插入保证指令信号运行的有效CAS指令;以及能够在时间总和小于最小维持时间时,在当前指令信号所在时刻与最小维持时间的结束时刻之间随机插入与指令信号无关的冗余CAS指令,并在最小维持时间结束后,基于下一指令信号随机插入保证下一指令信号运行的有效CAS指令。
在本公开的一个实施例中,上述各实施例中的信号发生组件233还可以用于产生和插入无效命令。并且,在前一有效CAS指令的维持时间内插入的有效CAS指令之后,在当前指令信号之前,信号发生组件233插入的冗余CAS指令和/或无效命令总共不超过7个。
在本公开的一个实施例中,存储器的测试装置2还可以包括:计数器25。该计数器25可以用于对随机插入的有效CAS指令、随机产生并插入的无关的冗余CAS指令和无效命令的数量进行统计。
需要说明的是,由于本部分所阐述的存储器的测试装置2可以应用上述所述的存储器1的测试方法。所以,针对存储器的测试装置2中所应用的具体方法以及其所带来的技术效果不在此进行阐述,可以参照上述对存储器1的测试方法的具体阐述。并且,对于各个指令信号的类型、有效CAS指令的类型、冗余CAS指令的类型等内容也不在此再次进行赘述,同样可以参考上述对存储器1的测试方法的具体阐述。
本公开的又一个方面提供了一种电子设备3。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图9来描述根据本发明的这种实施例的电子设备3。图9所示的电子设备3仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,电子设备3以通用计算设备的形式表现。电子设备3的组件可以包括但不限于:至少一个处理器31、至少一个存储器32、连接不同系统组件的总线33、显示单元34。
其中,所述存储器32存储有程序代码,所述程序代码可以被所述处理器31执行,使得所述处理器31执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。例如,所述处理器31可以配置为经由执行可执行指令来执行如图1中所示的步骤S10~S30或者图6中所示的步骤S10~S50。
存储器32可以用于存储处理器31的可执行指令。其可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)321和/或高速缓存存储单元322,还可以进一步包括只读存储单元(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块325的程序/实用工具324,这样的程序模块325包括但不限于:操作系统、一个或者多个应用程序、其它程序模块325以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线33可以为表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备3也可以与一个或多个外部设备37(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备3交互的设备通信,和/或与使得该电子设备3能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,电子设备3还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与电子设备3的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备3使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
本公开的再一个方面,如图10所示,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的计算机程序4。在一些可能的实施例中,本发明的各个方面还可以实现为一种计算机程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
参考图10所示,描述了根据本发明的实施例的用于实现上述存储器的测试方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (18)

1.一种存储器的测试方法,其特征在于,包括:
向存储器发送指令信号,所述指令信号包括随机产生的写入指令或读出指令;
检测所述指令信号的具体类型,以在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令;
使所述存储器运行所述指令信号、插入的所述有效CAS指令、所述冗余CAS指令和/或所述无效命令,并测试所述存储器的运行情况。
2.根据权利要求1所述的存储器的测试方法,其特征在于,所述在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令,包括:
检测前一所述有效CAS指令的类型并判断是否可以保证当前所述指令信号的执行;
若是,则检测当前所述指令信号与前一所述有效CAS指令之间的时间间隔;
判断所述时间间隔和将要插入的无效命令的时间总和是否大于前一所述有效CAS指令的维持时间,在所述维持时间内,所述写入指令或所述读出指令能够被执行;
若所述时间总和大于所述维持时间,则判断所述时间间隔是否大于所述维持时间,若是,则在当前所述指令信号之前插入保证所述指令信号运行的所述有效CAS指令,且在插入的所述有效CAS指令和当前所述指令信号之间随机插入所述冗余CAS指令和/或所述无效命令。
3.根据权利要求2所述的存储器的测试方法,其特征在于,还包括:若所述时间间隔等于所述维持时间,则在剩余所述维持时间内,执行当前所述指令信号,或者,则插入保证当前所述指令信号运行的所述有效CAS指令,并在插入的所述有效CAS指令的维持时间内先插入所述冗余CAS指令和/或所述无效命令再执行当前所述指令信号。
4.根据权利要求2所述的存储器的测试方法,其特征在于,还包括:若所述时间间隔小于所述维持时间,则在剩余所述维持时间内直接执行当前所述指令信号,或者,则在剩余所述维持时间内,先插入所述冗余CAS指令和/或所述无效命令,再执行当前所述指令信号,或者,则插入保证当前所述指令信号运行的所述有效CAS指令,并在插入的所述有效CAS指令的维持时间内先插入所述冗余CAS指令和/或所述无效命令再执行当前所述指令信号。
5.根据权利要求2所述的存储器的测试方法,其特征在于,还包括:若所述时间总和等于所述维持时间,则插入所述无效命令,且在剩余所述维持时间内执行当前所述指令信号,或者,在插入所述无效命令后插入保证当前所述指令信号运行的所述有效CAS指令,并在插入的所述有效CAS指令的维持时间内插入所述冗余CAS指令后执行当前所述指令信号。
6.根据权利要求2所述的存储器的测试方法,其特征在于,还包括:若所述时间总和小于所述维持时间,则插入所述无效命令,且在剩余所述维持时间内先插入所述冗余CAS指令,再执行当前所述指令信号,或者,在插入所述无效命令后插入保证当前所述指令信号运行的所述有效CAS指令,并在插入的所述有效CAS指令的维持时间内插入所述冗余CAS指令并执行当前所述指令信号。
7.根据权利要求2~6所述的存储器的测试方法,其特征在于,所述维持时间为前一所述有效CAS指令的最大维持时间,或者,前一所述有效CAS指令的最小维持时间,或者,所有所述有效CAS指令的平均维持时间。
8.根据权利要求3~6所述的存储器的测试方法,其特征在于,在前一所述有效CAS指令的维持时间内插入的所述有效CAS指令之后,在当前所述指令信号之前,插入的所述冗余CAS指令和/或无效命令总共不超过7个。
9.根据权利要求1所述的存储器的测试方法,其特征在于,所述测试方法还包括:
在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令时,对随机插入的所述有效CAS指令、随机产生并插入的所述无关的冗余CAS指令和无效命令的数量进行统计;
在所述存储器运行完当前时钟周期内的所述指令信号、插入的所述有效CAS指令、所述冗余CAS指令和/或所述无效命令之后,将在当前时钟周期内统计的所述有效CAS指令、所述冗余CAS指令和所述无效命令的数量清零。
10.根据权利要求5所述的存储器的测试方法,其特征在于,检测前一所述有效CAS指令的类型包括:
当检测到的前一所述有效CAS指令的类型为CAS_FS指令时,保留所述CAS_FS指令;
当检测到的前一所述有效CAS指令的类型为除CAS_FS指令之外的其余CAS指令时,忽略所述其余CAS指令。
11.根据权利要求1所述的存储器的测试方法,其特征在于,随机产生并插入的所述冗余CAS指令的数量为多个,所述冗余CAS指令具有多种类型。
12.根据权利要求1或11所述的存储器的测试方法,其特征在于,所述冗余CAS指令信号包括:CAS_WRX指令、CAS_WRSB指令和CAS_DC指令中的一种或多种;
其中,所述CAS_WRX指令用于随机写入数据,所述CAS_WRSB指令用于重复写入高字节数据,所述CAS_DC指令用于拷贝第一次突发的数据并存储。
13.根据权利要求1所述的存储器的测试方法,其特征在于,
所述写入指令包括:存储器写入指令和寄存器写入指令;
所述读出指令包括:存储器读出指令和寄存器读出指令。
14.一种存储器的测试装置,其特征在于,包括:
指令信号发生器,与所述存储器连接,且所述指令信号发生器用于向所述存储器发送指令信号;
检测器,与所述指令信号发生器连接,用于检测所述指令信号的具体类型;
随机信号发生器,与所述检测器连接,且所述随机信号发生器用于在所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且随机产生并插入与所述指令信号无关的冗余CAS指令和/或无效命令;
测试器,与所述存储器连接,用于测试存储器的运行情况;
其中,所述指令信号包括随机产生的写入指令或读出指令。
15.根据权利要求14所述的存储器的测试装置,其特征在于,所述随机信号发生器包括:
检测组件,用于检测前一所述有效CAS指令的类型,并用于检测当前所述指令信号与前一所述有效CAS指令之间的时间间隔;
判断组件,用于判断前一所述有效CAS指令是否可以保证当前所述指令信号的执行,并用于判断所述时间间隔和将要插入的无效命令的时间总和是否大于前一所述有效CAS指令的维持时间,以及用于在所述时间总和大于所述维持时间时,判断所述时间间隔是否大于所述维持时间;
信号发生组件,用于在所述时间间隔大于所述维持时间时,在当前所述指令信号之前随机插入保证所述指令信号运行的有效CAS指令,且用于在插入的所述有效CAS指令和当前所述指令信号之间随机插入所述冗余CAS指令和/或所述无效命令。
16.根据权利要求14所述的存储器的测试装置,其特征在于,所述测试装置还包括:
计数器,用于对随机插入的所述有效CAS指令、随机产生并插入的所述无关的冗余CAS指令和所述无效命令的数量进行统计。
17.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-13中任意一项所述的存储器的测试方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-13中任意一项所述的存储器的测试方法。
CN202210519509.1A 2022-05-12 2022-05-12 存储器的测试方法及测试装置、电子设备和可读存储介质 Pending CN117095736A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210519509.1A CN117095736A (zh) 2022-05-12 2022-05-12 存储器的测试方法及测试装置、电子设备和可读存储介质
PCT/CN2022/098451 WO2023216357A1 (zh) 2022-05-12 2022-06-13 存储器的测试方法及测试装置、电子设备和可读存储介质
US17/954,556 US20230014477A1 (en) 2022-05-12 2022-09-28 Method and device for testing memory, and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210519509.1A CN117095736A (zh) 2022-05-12 2022-05-12 存储器的测试方法及测试装置、电子设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN117095736A true CN117095736A (zh) 2023-11-21

Family

ID=88729539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210519509.1A Pending CN117095736A (zh) 2022-05-12 2022-05-12 存储器的测试方法及测试装置、电子设备和可读存储介质

Country Status (2)

Country Link
CN (1) CN117095736A (zh)
WO (1) WO2023216357A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117476086A (zh) * 2023-12-26 2024-01-30 成都佰维存储科技有限公司 存储器性能测试方法、装置、可读存储介质及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100216313B1 (ko) * 1997-06-30 1999-08-16 윤종용 클록 변조 기법을 사용한 고속 메모리 소자의 검사방법
KR20200052649A (ko) * 2018-11-07 2020-05-15 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
US11348656B2 (en) * 2020-02-27 2022-05-31 EMC IP Holding Company LLC Efficient resource sharing
CN112992251B (zh) * 2021-04-09 2022-05-17 长鑫存储技术有限公司 存储器地址测试电路、方法、存储器与电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117476086A (zh) * 2023-12-26 2024-01-30 成都佰维存储科技有限公司 存储器性能测试方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
WO2023216357A1 (zh) 2023-11-16

Similar Documents

Publication Publication Date Title
US20190056761A1 (en) Data transfer between asynchronous clock domains
US8522067B2 (en) Variable latency interface for read/write channels
CN203457123U (zh) 用于时钟布置的装置和系统
US8448172B2 (en) Controlling parallel execution of plural simulation programs
US8223136B2 (en) Error detection and prevention inacoustic data
JP7313368B2 (ja) 同期信号ブロックの伝送方法、装置、及び記憶媒体
US9820248B2 (en) Network clock synchronization
CN117095736A (zh) 存储器的测试方法及测试装置、电子设备和可读存储介质
CN108874441B (zh) 一种板卡配置方法、装置、服务器和存储介质
US20120158394A1 (en) Simulation apparatus and method for multicore system
WO2018026452A1 (en) System and method for distributing and replaying trigger packets via a variable latency bus interconnect
CN109101281A (zh) 一种通用的热插拔检测方法
CN112926285A (zh) 芯片验证方法、平台、装置、设备和存储介质
US20230014477A1 (en) Method and device for testing memory, and readable storage medium
TWI682184B (zh) 單一可現場規劃閘陣列中多排組數位刺激響應之技術
CN115691648A (zh) 存储器可靠性测试方法及装置、存储介质、电子设备
CN104471645B (zh) 采用检错编码的事务的存储器设备的定时优化装置和方法
CN109344630B (zh) 区块生成方法、装置、设备和存储介质
CN102385547A (zh) 一种dram控制器时序校验功能的验证方法及系统
CN116820867B (zh) 一种芯片调试方法、装置及芯片
CN114968689B (zh) Fpga器件、基于fpga器件的mipi协议层测试装置和方法
CN109426589A (zh) 一种文件修复方法及装置
WO2023245762A9 (zh) 存储芯片测试方法及装置、介质及设备
CN115629929A (zh) 一种内存错误检测方法、系统和设备
CN117130919A (zh) 大图加载问题检测方法、装置、设备及计算机介质

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