CN111341374B - 存储器的测试方法、装置及可读存储器 - Google Patents
存储器的测试方法、装置及可读存储器 Download PDFInfo
- Publication number
- CN111341374B CN111341374B CN201811546780.4A CN201811546780A CN111341374B CN 111341374 B CN111341374 B CN 111341374B CN 201811546780 A CN201811546780 A CN 201811546780A CN 111341374 B CN111341374 B CN 111341374B
- Authority
- CN
- China
- Prior art keywords
- read
- write
- memory
- mapping value
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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/54—Arrangements for designing test circuits, e.g. design for test [DFT] tools
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
Abstract
本发明涉及了一种存储器的测试方法、装置及可读存储器,该测试方法包括:对存储器进行读写操作,通过预设的映射算法根据写数据得到目标写映射值;通过所述预设的映射算法根据读数据得到目标读映射值,通过比较所述目标读映射值和所述目标写映射值判断所述存储器是否存在故障。实施本发明的技术方案,可节省存储空间,且应用范围更广。
Description
技术领域
本发明涉及存储器测试领域,尤其涉及一种存储器的测试方法、装置及可读存储器。
背景技术
在SOC系统中,随着集成电路集成度和复杂度的提高,嵌入式存储器所占芯片面积越来越大,由于嵌入式存储器中晶体管密集,存在高布线密度、高复杂度和高工作频率等因素,嵌入式存储器的故障率也越来越高,这可能会导致芯片良率的下降。对于存在故障的嵌入式存储器有可能可以通过一些方法进行修补,使之能正常地工作,所以,正确的测试出嵌入式存储器是否存在故障是一个很重要的问题。
传统的存储器测试方法都是比较读写数据是否相同,通过比较读写数据来判断存储器是否存在故障,写入的数据如果是一些有规律的数据,读数据时可以根据这些规律生成写入数据并与读出数据进行比较。如果写入的数据是无规律可循的数据,则需要把这些数据存储起来,等到读数据时再和这些存储的写数据进行比较,这样就需要较大的存储空间,会导致存储器测试成本大大增加。实际上,传统的存储器测试方法,基本上都是写入一些有规律的数据,然后再读出这些数据,通过比较读写数据来判断存储器是否存在故障。例如,常见的存储器测试方法是March C算法,在嵌入式存储器测试中的应用非常广泛,并且有着非常好的测试效果。March C算法分为6步,下面是对算法的描述:
1.对所有存储单元写0。
2.对所有存储单元按照升序读0,写1。
3.对所有存储单元按照升序读1,写0。
4.对所有存储单元按照降序读0,写1。
5.对所有存储单元按照降序读1,写0。
6.对所有存储单元读0。
对于大多数的故障,传统的存储器测试方法都可以测试出来,但是对于某些偶合故障可能无法测试出。例如某个存储单元的几个存储位同时跳变到0或者是1,这种故障是传统的存储器测试方法无法测试到的,原因在于传统的存储器测试方法写入读出的数据本身就有规律,因此限制了存储器测试方法的应用。
发明内容
本发明要解决的技术问题在于,针对现有技术中存在需要较大的存储空间或应用范围小的缺陷,提供一种存储器的测试方法、装置及可读存储器,可节省存储空间,且方法灵活,可检测更多类型的故障,应用范围更广。
本发明解决其技术问题所采用的技术方案是:构造一种存储器的测试方法,包括:
对存储器进行读写操作,通过预设的映射算法根据写数据得到目标写映射值;通过所述预设的映射算法根据读数据得到目标读映射值,通过比较所述目标读映射值和所述目标写映射值判断所述存储器是否存在故障。
在本发明的存储器的测试方法中,
在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值;
当满足对比条件时,将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值,并通过对比所述目标写映射值和所述目标读映射值判断所述存储器是否存在故障;
当不满足对比条件时,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
在本发明的存储器的测试方法中,
在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成一个写组合项,存储至少一个所述写组合项,根据所述存储的写组合项与前一写映射值生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成一个读组合项,存储至少一个所述读组合项,根据所述存储的读组合项与前一读映射值生成当前读映射值;
当满足对比条件时,将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值,并通过对比所述目标写映射值和所述目标读映射值判断所述存储器是否存在故障;
当不满足对比条件时,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
在本发明的存储器的测试方法中,
在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值,包括:
在对所述存储器的当前存储单元进行写数据时,根据当前存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值,包括:
在对所述存储器的当前存储单元进行读数据时,根据当前存储单元的读数据生成当前写组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值。
在本发明的存储器的测试方法中,
用于生成所述目标写映射值的每个写组合项有且仅有一个对应的读组合项,所述对应的读组合项为用于生成所述目标读映射值的读组合项中的一个;所述对应关系是基于在原子读写操作中用于生成所述写组合项的写数据和用于生成对应读组合项的读数据来自相同的存储单元。
在本发明的存储器的测试方法中,
根据以下方式生成写组合项:
将所述至少一个存储单元的写数据与地址进行计算,以生成写组合项;或者,
将所述至少一个存储单元的写数据进行计算,以生成写组合项;
根据以下方式生成读组合项:
将所述至少一个存储单元的读数据与地址进行计算,以生成读组合项;或者,
将所述至少一个存储单元的读数据进行计算,以生成读组合项。
在本发明的存储器的测试方法中,
所述预设的映射算法满足以下条件中的部分或全部:
基于所述预设的映射算法用于生成所述目标写映射值的写组合项个数和基于所述预设的映射算法用于生成所述目标读映射的读组合项个数均为M,且M为大于等于1的整数;
通过所述预设的映射算法计算得到的每个写映射值和通过所述预设的映射算法计算得到的每个读映射值的长度均小于等于N个字节;
当写数据的数值确定后,通过所述映射算法的计算只得到一个对应的写映射值,当读数据的数值确定后,通过所述映射算法的计算只得到一个对应的读映射值;
当基于所述映射算法计算得到的目标映射值为任意值的概率小于一个固定概率值a,且所述目标读映射值和所述目标写映射值相同时,没有测试到故障的概率为1-a;
当读组合项组成的读组合序列与写组合项组成的写组合序列为置换组合序列时,则通过所述预设的映射算法计算得到的所述目标读映射值和所述目标写映射值相同。
本发明还构造一种存储器的测试装置,包括:
读写模块,用于对存储器进行读写操作;
计算模块,用于通过预设的映射算法根据写数据得到目标写映射值,及通过所述预设的映射算法根据读数据得到目标读映射值;
比较模块,用于通过比较所述目标读映射值和所述目标写映射值判断所述存储器是否存在故障。
在本发明的存储器的测试装置中,所述计算模块包括:
第一计算单元,用于在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
第二计算单元,用于在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值;
判断单元,用于判断是否满足对比条件,若是,则将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值;若否,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
本发明还构造一种存储器的测试装置,包括处理器及用于存储计算机程序的第一存储器,所述处理器在执行所述计算机程序时实现以上方法的步骤。
本发明还构造一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上方法的步骤。
实施本发明的技术方案,在对存储器进行读写操作时,还会通过预设的映射算法根据写数据得到目标写映射值,及通过相同的映射算法根据读数据得到目标读映射值,然后再通过比较所述目标读映射值和所述目标写映射值判断所述存储器是否存在故障。这样,对于已经进行过映射计算的读/写数据,可将其丢弃,不再需要保存。相比现有的测试方式,一方面,可大大降低额外的存储空间,降低测试成本;另一方面,由于不是直接比较写数据与读数据,所以能测试出更多的存储器故障,应用范围更广。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中:
图1是本发明存储器的测试方法实施例二的流程图;
图2是本发明存储器的测试装置实施例一的逻辑结构图。
具体实施方式
首先,对本申请的一些技术术语做如下说明:
存储器:存放程序和数据的器件;
存储位:存放一个二进制数位的存储单元,是存储器最小的存储单位,或称记忆单元;
存储字:一个数(n位二进制位)作为一个整体存入或取出时,称存储字;
存储单元:存放一个存储字的若干个记忆单元组成一个存储单元;
存储单元地址:存储单元的编号;
寻址:由地址寻找数据,从对应地址的存储单元中访存数据;
组合项:使用一个或者多个存储单元的地址和/或数据按照一定的方法计算得到的结果;
组合序列:把组合项作为元素按照一定的顺序排成的序列;
映射值:使用预设的映射算法对组合项进行计算得到的结果;
置换组合序列:如果一个组合序列中的任意一个组合项均能在另一个组合序列中找到相同的组合项,反之,另一个组合序列中的任意一个组合项也均能在此组合序列中找到相同的组合项,且读写组合序列中的元素个数相同,那么这两个组合序列互为置换组合序列;
相同组合序列:如果两个互为置换组合序列的组合序列中的各组合项排列顺序相同,那么这两个组合序列相同。
原子读写操作:一个存储单元在进行了本次写操作以后要进行了本次读操作后才能进行下一次写操作。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明实施例中通过对存储器的读写操作进行存储器故障测试,读写操作的顺序由测试程序决定,遵循先写后读的原则,第一次进行写操作后,可以继续对其他存储单元进行写操作然后再进行读操作,也可以写一次读一次等。
下面将参考附图并结合实施例来详细说明本申请。在本发明存储器的测试方法的一个实施例中,进行以下步骤:对存储器进行读写操作,通过预设的映射算法根据写数据得到目标写映射值;通过所述预设的映射算法根据读数据得到目标读映射值,通过比较所述目标读映射值和所述目标写映射值判断所述存储器是否存在故障。实施该实施例的技术方案,由于在对存储器进行读写操作时,对写数据/读数据按照预设的预设算法进行计算,这样,对已运算过的写数据/读数据可进行丢弃,不再需要保存,节省了存储空间,而且,由于不是直接比较写数据与读数据,所以能测试出更多的存储器故障,应用范围更广。需要说明的是,本实施例中通过预设的映射算法根据写数据/读数据得到目标写映射值和目标读映射值,包括根据写数据与写地址计算得到目标写映射值,以及根据读数据与读地址计算得到目标读映射值,当然也可以不用地址,仅用写数据/读数据分别计算出写映射值/读映射值。当然基于预设的映射算法的不同,还有可能加入其他计算元素,但一定会用到写数据/读数据,本实施例对其他计算元素不做限制。
在本发明的一个实施例中,在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值;
当满足对比条件时,将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值,并通过对比所述目标写映射值和所述目标读映射值判断所述存储器是否存在故障;
当不满足对比条件时,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
可选地,在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值,包括:
在对所述存储器的当前存储单元进行写数据时,根据当前存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值,包括:
在对所述存储器的当前存储单元进行读数据时,根据当前存储单元的读数据生成当前写组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值。
图1是本发明存储器的测试方法实施例二的一个流程图,该实施例的测试方法包括以下步骤:
步骤S10.在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
步骤S20.在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值;
步骤S30.判断是否满足对比条件,若是,则执行步骤S40;若否,则执行步骤S50;
步骤S40.将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值,并通过对比所述目标写映射值和所述目标读映射值判断所述存储器是否存在故障。
步骤S50.在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。关于该实施例的测试方法,有以下几点需说明:
1.对存储器的各个存储单元所写入的数据可为无规律的随机数,也可为有规律的数据。
2.在对存储器进行测试时,可对该存储器的所有存储单元进行测试,也可仅对该存储器的部分存储单元进行测试,也就是说,在进行写操作时,可在该存储器的每个存储单元都写入测试数据,也可仅对该存储器的部分存储单元写入测试数据。
3.在对存储器进行读写操作时,存储器的写顺序和读顺序可相同,也可不同,例如,写顺序为按存储器中各存储单元地址的升序写入,读顺序为按存储器中各存储单元地址的降序读出,反之亦然。此外,什么时候进行S10的操作,什么时候进行S20的操作是由测试程序决定的,可能进行了两次S10才进行S20,本实施例中仅仅是一次读写操作的举例,不对其顺序进行限定。
4.针对存储器的某一或某些存储单元,可对其进行单次的读写操作,也可对其进行多次读写操作,以提高测试准确性,而且,多次写入的数据可相同,也可不同。在对某一或某些存储单元进行多次读写操作时,需保证:当对该存储单元进行某一写操作(即,写入了某一测试数据)后,必须在对该存储单元进行了相对应的读数据(即,读出了该测试数据)后,才能进行下一次的写操作(即,写入另一测试数据),即,需遵循原子读写操作。
5.在写操作中第一使用预设的映射算法进行计算时,所对应的前一写映射值为第一预设值,同样地,在读操作中第一使用预设的映射算法进行计算时,所对应的前一读映射值也为第一预设值。该第一预设值可根据需要进行定义,例如为0或1,但要求写操作中的第一预设值和读操作中的第一预设值相同。
6.对比条件可为系统默认,也可由用户自行设置,例如,设置读写顺序、设置读写次数等。
在一个可选实施例中,步骤S10可为:在对所述存储器的当前存储单元进行写数据时,根据当前存储单元的写数据生成当前写组合项,使用预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值。步骤S20可为:在对所述存储器的当前存储单元进行读数据时,根据当前存储单元的读数据生成当前写组合项,使用预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值。
可选地,在一种实施例中,由于在对存储器进行读写操作时,每次对当前存储单元进行完写数据后,便根据当前存储单元的写数据生成当前写组合项,然后再进行映射计算以得到当前写映射值,同样地,每次对当前存储单元进行完读数据后,便根据当前存储单元的读数据生成当前读组合项,然后再进行映射计算以得到当前读映射值,这样,只需对当前写映射值/当前读映射值进行保存即可,可进一步节省存储空间。
可选地,在一种实施例中,由于在对存储器进行读写操作时,每次对当前存储单元进行完写数据后,保存该写数据,待进行完多个存储单元的写数据后,例如3个存储单元的写数据操作后,根据该多个存储单元的写数据生成当前写组合项,同理,生成当前读组合项,进而得到当前写映射值/当前读映射值。这种方式在测试过程中存储的数据相对多一些,但是计算量相对少一些,对于某些测试场景具有优势。
可选地,在一种实施例中,由于在对存储器进行读写操作时,每次对当前存储单元进行完写数据后,根据当前存储单元的写数据生成一个写中间项,并保存该写中间项,待进行完多个存储单元的写数据得到每个存储单元的写数据对应的写中间项后,根据该多个写中间项得到当前写组合项,并计算当前写映射值,同理得到当前读映射值。这种方式在测试过程中需要保留每个存储单元对应的读/写中间项,相对于前面的方式计算量和存储量相对适中,对于某些测试场景具有优势。
在一个可选实施例中,在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成一个写组合项,存储至少一个所述写组合项,根据所述存储的写组合项与前一写映射值生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成一个读组合项,存储至少一个所述读组合项,根据所述存储的读组合项与前一读映射值生成当前读映射值;
当满足对比条件时,将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值,并通过对比所述目标写映射值和所述目标读映射值判断所述存储器是否存在故障;
当不满足对比条件时,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
例如,该实施例的测试方法包括以下步骤:
S100.在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成一个写组合项,存储至少一个所述写组合项,根据所述存储的写组合项与前一写映射值生成当前写映射值;
S200.在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成一个读组合项,存储至少一个所述读组合项,根据所述存储的读组合项与前一读映射值生成当前读映射值;
S300.判断是否满足对比条件,若是,则执行步骤S400;若否,则执行步骤S500;
S400.将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值,并通过对比所述目标写映射值和所述目标读映射值判断所述存储器是否存在故障。
S500.在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
对于S100-S500的说明与对S10-S50的说明相同,此处不再赘述。需要补充的是,S100-S500的实施例虽然增加了存储空间,但是减少了计算量,因此在有些应用场景中具有优势。
在一个可选实施例中,用于生成所述目标写映射值的每个写组合项有且仅有一个对应的读组合项,所述对应的读组合项为用于生成所述目标读映射值的读组合项中的一个;所述对应关系是基于在原子读写操作中用于生成所述写组合项的写数据和用于生成对应读组合项的读数据来自相同的存储单元。需要说明的是,上述相同的存储单元可以是一个也可以是多个。例如,生成一个写组合项的写数据来自存储单元1、存储单元2、存储单元3,则生成一个对应读组合项的读数据也要来自存储单元1、存储单元2、存储单元3,且上述写数据和上述读数据要是原子读写操作中的写/读数据。
在一个可选实施例中,步骤S10或S100中,生成写组合项(S10中的当前写组合项或S100中的一个写组合项)的方式为:将所述至少一个存储单元的写数据与地址进行计算,以生成写组合项;或者,将所述至少一个存储单元的写数据进行计算,以生成写组合项。步骤S20或步骤S200中,生成读组合项(S20中的当前读组合项或S200中的一个读组合项)的方式为:将所述至少一个存储单元的读数据与地址进行计算,以生成读组合项;或者,将所述至少一个存储单元的读数据进行计算,以生成读组合项。
在一个具体例子中,生成写组合项的方式为:将当前存储单元的地址左移8位,再与写数据进行或运算。相应地,生成读组合项的方式为:将当前存储单元的地址左移8位,再与读数据进行或运算。在另一个具体例子中,生成写组合项的方式为:将当前存储单元的地址加1,再与写数据相乘。相应地,生成读组合项的方式为:将当前存储单元的地址加1,再与读数据相乘。
在一个可选实施例中,如果生成一个组合项需要至少两个存储单元的数据,那么,步骤S10中,生成当前写组合项的方式为:将所述存储器中至少两个存储单元的写数据进行组合,以生成当前写组合项;步骤S20中,生成当前读组合项的方式为:将所述存储器中至少两个存储单元的读数据进行组合,以生成当前读组合项。当然,在其它实施例中,也可先根据存储器中一个存储单元的写数据生成一写中间项,再将相邻近的至少两个写中间项进行组合,以生成当前写组合项。相应地,对于当前读组合项,其生成方式为:先根据存储器中一个存储单元的读数据生成一读中间项,再将相邻近的至少两个读中间项进行组合,以生成当前读组合项。
进一步地,通过使用预设的映射算法,可将各个组合项映射到一个长度有限的数字,即,映射值,从而解决了测试过程中占用存储空间大,且测试数据不够灵活,有的测试故障无法检测的技术问题。映射算法在设计时,优选满足以下的特性:
1.组合序列的长度不固定。
2.映射值是一串长度有限的数字。
3.对于给定的一个组合序列,有且只有一个映射值与之对应。
4.不同的组合序列有可能对应相同的映射值。
5.映射算法可以分步计算,每次计算只需要使用组合序列中的一部分数据。
6.映射算法计算得到任意一个映射值的概率小于一个固定概率值a,这时当读写映射值相同时,没有测试到故障的概率为1-a。
7.如果读写组合序列不相同,那么映射算法对于置换组合序列得到的映射值相同。
通过按照以上规则设计映射算法,可以使准确测试存储器故障的概率达到非常接近于100%。
为了使得预设的映射算法能够帮助解决上述技术问题,所述预设的映射算法需要满足以下条件中的部分或全部:
基于所述预设的映射算法用于生成所述目标写映射值的写组合项个数和基于所述预设的映射算法用于生成所述目标读映射的读组合项个数均为M,且M为大于等于1的整数;(说明生成目标写/读映射值的写/读组合项的个数是不确定的,可以根据需要设定,反映出测试数据的设置更灵活。)
通过所述预设的映射算法计算得到的每个所述当前写映射值和通过所述预设的映射算法计算得到的每个所述当前读映射值的长度均小于等于N个字节;(说明通过预设映射算法计算出来的映射值的长度是有限定的,这样有利于节省存储空间。)
当写数据的数值确定后,通过所述映射算法的计算只得到一个对应的写映射值,当读数据的数值确定后,通过所述映射算法的计算只得到一个对应的读映射值;(说明当输入确定时,通过映射算法计算得到的结果是唯一的,有利于进行故障的判断。)
当基于所述映射算法计算得到的目标映射值为任意值的概率小于一个固定概率值a,且所述目标读映射值和所述目标写映射值相同时,没有测试到故障的概率为1-a;(说明映射算法对测试故障的测试成功率是可控的。)
当读组合项组成的读组合序列与写组合项组成的写组合序列为置换组合序列时,则通过所述预设的映射算法计算得到的所述目标读映射值和所述目标写映射值相同。(说明映射算法可以适用于置换之和序列的情况,当然也可以适用于相同组合序列的情况。)
在一个可选实施例中,预设的映射算法包括下列中的一种或至少两种的组合:加法运算、乘法运算、取模运算、或运算、预设位数的截取。
在一个具体例子中,生成当前写/读映射值的步骤包括:
将前一写/读映射值左移16位,以生成第一中间值;
将当前写/读组合项与所述第一中间值进行或运算,以生成第二中间值;
将所述第二中间值对第二预设值取模,以生成当前写/读映射值。
在另一个具体例子中,生成当前写/读映射值的步骤包括:
对当前写/读组合项取平方,以生成平方值;
对所述平方值进行第一预设位数的截取,以获取截取值;
将所述截取值与前一写/读映射值进行相加,以生成第三中间值;
对所述第三中间值进行第二预设位数的截取,以生成当前写/读映射值。
在再一个具体例子中,生成当前写/读映射值的步骤包括:
将当前写/读组合项与前一写/读映射值进行相加,以生成当前写/读映射值。
图2是本发明存储器的测试装置实施例一的逻辑结构图,该实施例的测试装置包括读写模块10、计算模块20及比较模块30。其中,读写模块10用于对存储器进行读写操作;计算模块20用于通过预设的映射算法根据写数据得到目标写映射值,及通过所述预设的映射算法根据读数据得到目标读映射值;比较模块30用于通过比较所述目标读映射值和所述目标写映射值判断所述存储器是否存在故障。
进一步地,计算模块20包括第一计算单元、第二计算单元和判断单元,其中,第一计算单元用于在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;第二计算单元用于在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值;判断单元用于判断是否满足对比条件,若是,则将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值;若否,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
本发明还构造一种存储器的测试装置,包括处理器及用于存储计算机程序的第一存储器,该处理器在执行计算机程序时实现以上方法的步骤。
本发明还构造一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如以上方法的步骤。
下面将以几个具体实施例来说明测试过程:
在一个具体实施例中,假设待测试的存储器有4个存储单元,每个存储单元存储8个存储位,并且假设写入4个存储单元的数据分别为:0x59,0x62,0xae,0xe2,4个存储单元的地址分别为:0x00,0x01,0x02,0x03。另外,组合项的计算方式为:把每个存储单元的地址左移8位,再与对应地址的数据进行或运算;映射算法为:把第一个组合项对0xc34f取模,得到结果作为当前的映射值,把其余的组合项和前一映射值左移16位相或,得到的结果对0xc34f取模,每次取模的结果作为当前映射值,直到计算完所有的组合项,并得到最终的映射值。
在测试时,首先按照存储单元的地址升序写入这些数据,然后再按照地址升序读出这些数据。在写步骤中,按照以上的组合项计算方式,可依次得到0x0059,0x0162,0x02ae,0x03e2这4个组合项,再按照组合项生成顺序把这4个组合项排列得到写组合序列(0x0059,0x0162,0x02ae,0x03e2)。在进行映射计算时,首先,用第一个组合项对0xc34f取模得到第1步的映射值0x59。然后,把该映射值0x59左移16位之后与第二个组合项0x0162进行或运算,得到0x590162,再将0x590162对0xc34f取模得到第2步的映射值0x8196。接着,再把第2步的映射值0x8196左移16位之后与第三个组合项0x02ae进行或运算得到0x819602ae,再用0x819602ae对0xc34f取模得到第3步的映射值0x8a68,依次计算下去直至获得第4步的映射值,即,最终的写映射值0x4a2c。在读步骤中,按照同样的方法计算组合项及计算映射值,如果读步骤与写步骤获得了相同的映射值,则表示没有测试到存储器故障的概率大于99.997%,实际应用中可以认为是没有测试到故障,如果两者不等,则说明存储器存在故障。
在另一个具体实施例中,利用本申请的测试方法来实现march C测试。假设待测试的存储器有4个存储单元,每个存储单元存储8个存储位。按照march C算法,第1步对4个存储单元写0,第2步按照地址升序读出每个存储单元的数据,同时对每个存储单元写0xff,第3步按照地址升序读出每个存储单元的数据,同时对每个存储单元写0x0,第4步按照地址降序读出每个存储单元的数据,同时对每个存储单元写0xff,第5步按照地址降序读出每个存储单元的数据,同时对每个存储单元写0x0,第6步读出每个存储单元的数据。综合一下,就是依次写了以下数据:0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00。另外,组合项的计算方式为:依次把2个存储单元的数据作为一个组合项,该方式只使用数据,不使用地址,来计算组合项。映射算法为:映射算法为对每个组合项取平方得到一个平方值,截取结果的bits8到bits23的值并称之为截取值,依次对每个组合项进行相同的处理并把得到的截取值相加,每次相加的结果只取低16bits,把最终得到的值作为映射值。
在测试时,在写步骤中,由于可得到以下10个组合项:0x0000,0x0000,0xffff,0xffff,0x0000,0x0000,0xffff,0xffff,0x0000,0x0000,按照组合项得生成顺序排列为组合序列(0x0000,0x0000,0xffff,0xffff,0x0000,0x0000,0xffff,0xffff,0x0000,0x0000)。第1个组合项的截取值:0x0000*0x0000=0x0000,截取中间16bits等于0x0000,取第1个组合项的截取值的低16bits作为第1步的映射值0x0000。第2个组合项的截取值:0x0000*0x0000=0x0000,截取中间16bits等于0x0000。把2组合项的截取值加上第1步的映射值可得到:0x0000+0x0000=0x0000,取最低16bits等于0x0000作为第2步的映射值0x0000。第3个组合项的截取值:0xffff*0xffff=0xfffe0001,截取中间16bits等于0xfe00。把3组合项的截取值和第2步的映射值相加得到:0x0000+0xfe00=0xfe00,取最低16bits等于0xfe00,作为第3步的映射值0xfe00。第4个组合项的截取值:0xffff*0xffff=0xfffe0001,截取中间16bits等于0xfe00,把4组合项的截取值和第3步的映射值相加得到:0xfe00+0xfe00=0x1fc00,取最低16bits等于0xfc00,作为第4步的映射值0xfc00。依次计算下去,最终得到映射值0xf800。
在读步骤中,按照同样的方法计算组合项及计算映射值,如果得到同样的映射值,表示没有测试到存储器故障的概率大于99.97%,基本上也可以认为是没有测试到故障。如果存储器存在故障,那么读数据和写数据可能不完全一样。假设读出数据为:0x00,0x00,0x00,0x10,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xfe,0xff,0xff,0x00,0x00,0x00,0x00,这样,得到的读组合序列为:(0x0000,0x0010,0xffff,0xffff,0x0000,0x0000,0xfffe,0xffff,0x0000,0x0000),按照相同的映射值计算方法得到的映射值为:0xf604,此时,由于计算出来的读写映射值不同,则表示测试到了存储器故障。
在再一个具体实施例中,假设待测试的存储器有4个存储单元,每个存储单元存储8个存储位,4个存储单元的地址分别为:0x00,0x01,0x02,0x03。该实施例所采用的组合项的计算方式为:把每个存储单元的地址加1,再与写入/读出数据相乘;所采用的映射算法为:把每个组合项相加。另外,假设该存储器存在故障,存储单元1的bit0和bit3只能同时为0或者为1,当这2个存储位被写入不同值时,这2个存储位为0。在此需说明的是,如果用march C算法检测这个存储器时,由于当存储单元1被写0x00或者0xff时,存储单元1均能正确地写入数据,读存储单元1时也能读取到正确的数据,因此无法检测到故障,但是,使用本申请的测试方法就可测试出该存储器故障。
在测试时,首先对存储器按照地址升序分别在4个存储单元中写入:0x34,0x68,0x7a,0xb4,再按照地址降序读出每个存储单元的数据。由于存储器存在故障,读出来的数据依次为:0xb4,0x7a,0x60,0x34。然后,按照地址降序分别在4个存储单元中写入:0xa3,0xc6,0x27,0x94,再按照地址升序读出每个存储单元的数据,所读出的数据分别为:0x94,0x26,0xc6,0xa3。按照组合项的计算方式,可得到写的组合项分别为:0x0034,0x00d0,0x016e,0x02d0,0x028c,0x0252,0x004e,0x0094,写步骤的组合序列为(0x0034,0x00d0,0x016e,0x02d0,0x028c,0x0252,0x004e,0x0094)。按照组合项的计算方式,可得到读的组合项分别为:0x02d0,0x016e,0x00c0,0x0034,0x0094,0x004c,0x0252,0x028c,读步骤的组合序列为(0x02d0,0x016e,0x00c0,0x0034,0x0094,0x004c,0x0252,0x028c)。按照映射算的计算方式,对于写组合序列,最后得到的映射值为0x0b02;对于写组合序列,最后得到的映射值为0x0af0。因为读写的映射值不同,所以可确定存储器存在故障,因此,可测试出march C算法无法测试出故障。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何纂改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (9)
1.一种存储器的测试方法,其特征在于,包括:
对存储器进行读写操作,通过预设的映射算法根据写数据得到目标写映射值;通过所述预设的映射算法根据读数据得到目标读映射值,通过比较所述目标读映射值和所述目标写映射值判断所述存储器是否存在故障;
在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值;
当满足对比条件时,将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值,并通过对比所述目标写映射值和所述目标读映射值判断所述存储器是否存在故障;
当不满足对比条件时,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
2.根据权利要求1所述的存储器的测试方法,其特征在于,
在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成一个写组合项,存储至少一个所述写组合项,根据所述存储的写组合项与前一写映射值生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成一个读组合项,存储至少一个所述读组合项,根据所述存储的读组合项与前一读映射值生成当前读映射值;
当满足对比条件时,将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值,并通过对比所述目标写映射值和所述目标读映射值判断所述存储器是否存在故障;
当不满足对比条件时,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
3.根据权利要求1所述的存储器的测试方法,其特征在于,
在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值,包括:
在对所述存储器的当前存储单元进行写数据时,根据当前存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值,包括:
在对所述存储器的当前存储单元进行读数据时,根据当前存储单元的读数据生成当前写组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值。
4.根据权利要求2-3任一所述的存储器的测试方法,其特征在于,
用于生成所述目标写映射值的每个写组合项有且仅有一个对应的读组合项,所述对应的读组合项为用于生成所述目标读映射值的读组合项中的一个;所述对应关系是基于在原子读写操作中用于生成所述写组合项的写数据和用于生成对应读组合项的读数据来自相同的存储单元。
5.根据权利要求2-3任一所述的存储器的测试方法,其特征在于,根据以下方式生成写组合项:
将所述至少一个存储单元的写数据与地址进行计算,以生成写组合项;或者,
将所述至少一个存储单元的写数据进行计算,以生成写组合项;
根据以下方式生成读组合项:
将所述至少一个存储单元的读数据与地址进行计算,以生成读组合项;或者,
将所述至少一个存储单元的读数据进行计算,以生成读组合项。
6.根据权利要求2-3任一项所述的存储器的测试方法,其特征在于,所述预设的映射算法满足以下条件中的部分或全部:
基于所述预设的映射算法用于生成所述目标写映射值的写组合项个数和基于所述预设的映射算法用于生成所述目标读映射的读组合项个数均为M,且M为大于等于1的整数;
通过所述预设的映射算法计算得到的每个写映射值和通过所述预设的映射算法计算得到的每个读映射值的长度均小于等于N个字节;
当写数据的数值确定后,通过所述映射算法的计算只得到一个对应的写映射值,当读数据的数值确定后,通过所述映射算法的计算只得到一个对应的读映射值;
当基于所述映射算法计算得到的目标映射值为任意值的概率小于一个固定概率值a,且所述目标读映射值和所述目标写映射值相同时,没有测试到故障的概率为1-a;
当读组合项组成的读组合序列与写组合项组成的写组合序列为置换组合序列时,则通过所述预设的映射算法计算得到的所述目标读映射值和所述目标写映射值相同。
7.一种存储器的测试装置,其特征在于,包括:
读写模块,用于对存储器进行读写操作;
计算模块,用于通过预设的映射算法根据写数据得到目标写映射值,及通过所述预设的映射算法根据读数据得到目标读映射值;
比较模块,用于通过比较所述目标读映射值和所述目标写映射值判断所述存储器是否存在故障;
所述计算模块包括:
第一计算单元,用于在对所述存储器进行写数据时,根据所述存储器中至少一个存储单元的写数据生成当前写组合项,使用所述预设的映射算法对所述当前写组合项及前一写映射值进行计算以生成当前写映射值;
第二计算单元,用于在对所述存储器进行读数据时,根据所述存储器中至少一个存储单元的读数据生成当前读组合项,使用所述预设的映射算法对所述当前读组合项及前一读映射值进行计算以生成当前读映射值;
判断单元,用于判断是否满足对比条件,若是,则将所述当前写映射值作为目标写映射值,及将所述当前读映射值作为目标读映射值;若否,在对存储器进行读写的过程中继续生成新的当前写映射值和当前读映射值。
8.一种存储器的测试装置,包括处理器及用于存储计算机程序的第一存储器,其特征在于,所述处理器在执行所述计算机程序时实现权利要求1-6任一项所述方法的步骤。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811546780.4A CN111341374B (zh) | 2018-12-18 | 2018-12-18 | 存储器的测试方法、装置及可读存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811546780.4A CN111341374B (zh) | 2018-12-18 | 2018-12-18 | 存储器的测试方法、装置及可读存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111341374A CN111341374A (zh) | 2020-06-26 |
CN111341374B true CN111341374B (zh) | 2022-03-15 |
Family
ID=71181356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811546780.4A Active CN111341374B (zh) | 2018-12-18 | 2018-12-18 | 存储器的测试方法、装置及可读存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111341374B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742795A (zh) * | 2020-05-27 | 2021-12-03 | 台湾积体电路制造股份有限公司 | 对集成电路中的半导体存储器的安全级别进行认证的方法 |
CN112182586B (zh) * | 2020-09-29 | 2024-02-13 | 中电海康无锡科技有限公司 | 一种mcu读写保护的测试方法、装置及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1921019A (zh) * | 2005-08-24 | 2007-02-28 | 英业达股份有限公司 | 通过数据压缩处理以测试存储器的方法 |
CN104484129A (zh) * | 2014-12-05 | 2015-04-01 | 盛科网络(苏州)有限公司 | 一读一写存储器、多读多写存储器及其读写方法 |
CN105741883A (zh) * | 2016-01-28 | 2016-07-06 | 深圳市硅格半导体股份有限公司 | 测试方法和装置 |
CN107066208A (zh) * | 2017-04-19 | 2017-08-18 | 江苏大学 | 一种外存设备的非对称读写方法及nvm外存设备 |
US9773318B2 (en) * | 2015-10-02 | 2017-09-26 | Varian Medical Systems, Inc. | Systems and methods for detecting camera defect caused by exposure to radiation |
CN108039190A (zh) * | 2017-12-15 | 2018-05-15 | 北京京存技术有限公司 | 一种测试方法及装置 |
CN108364670A (zh) * | 2018-02-06 | 2018-08-03 | 珠海全志科技股份有限公司 | 读写压力测试方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170123881A1 (en) * | 2015-10-30 | 2017-05-04 | Samsung Electronics Co., Ltd. | Test method of volatile memory device embedded in electronic device |
US10153760B2 (en) * | 2016-05-24 | 2018-12-11 | Psemi Corporation | Reconfigurable direct mapping for RF switch control |
-
2018
- 2018-12-18 CN CN201811546780.4A patent/CN111341374B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1921019A (zh) * | 2005-08-24 | 2007-02-28 | 英业达股份有限公司 | 通过数据压缩处理以测试存储器的方法 |
CN104484129A (zh) * | 2014-12-05 | 2015-04-01 | 盛科网络(苏州)有限公司 | 一读一写存储器、多读多写存储器及其读写方法 |
US9773318B2 (en) * | 2015-10-02 | 2017-09-26 | Varian Medical Systems, Inc. | Systems and methods for detecting camera defect caused by exposure to radiation |
CN105741883A (zh) * | 2016-01-28 | 2016-07-06 | 深圳市硅格半导体股份有限公司 | 测试方法和装置 |
CN107066208A (zh) * | 2017-04-19 | 2017-08-18 | 江苏大学 | 一种外存设备的非对称读写方法及nvm外存设备 |
CN108039190A (zh) * | 2017-12-15 | 2018-05-15 | 北京京存技术有限公司 | 一种测试方法及装置 |
CN108364670A (zh) * | 2018-02-06 | 2018-08-03 | 珠海全志科技股份有限公司 | 读写压力测试方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111341374A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108133732B (zh) | 闪存芯片的性能测试方法、装置、设备及存储介质 | |
US8145985B2 (en) | Error detection schemes for a unified cache in a data processing system | |
US7461208B1 (en) | Circuitry and method for accessing an associative cache with parallel determination of data and data availability | |
US8621264B2 (en) | Backup line allocation apparatus, memory repairing apparatus, backup line allocation method, memory manufacturing method, and recording medium | |
US10303479B2 (en) | Efficient random number generation for update events in multi-bank conditional branch predictor | |
KR20110001881A (ko) | 비트 에러 임계값 및 메모리 장치의 리맵핑 | |
US11868692B2 (en) | Address generators for verifying integrated circuit hardware designs for cache memory | |
US9558852B2 (en) | Method and apparatus for defect repair in NAND memory device | |
US11113145B2 (en) | Memory device, semiconductor device, and semiconductor system | |
CN111341374B (zh) | 存储器的测试方法、装置及可读存储器 | |
US20150143188A1 (en) | Methods for accessing a storage unit of a flash memory and apparatuses using the same | |
CN103714010B (zh) | 存储设备写入方法及存储设备 | |
JP2010198657A (ja) | メモリ装置 | |
CN111078462A (zh) | 数据校验方法及电路 | |
CN116663491B (zh) | 基于bdd求解功能覆盖组条件约束语句的方法、设备和介质 | |
US20120117337A1 (en) | Semiconductor integrated circuit and exponent calculation method | |
CN115270690B (zh) | 查找空闲存储的装置、方法及芯片 | |
US8635566B2 (en) | Parity error detection verification | |
US8359528B2 (en) | Parity look-ahead scheme for tag cache memory | |
US5799172A (en) | Method of simulating an integrated circuit | |
CN104424060B (zh) | 一种用于确定故障的方法和装置 | |
JP5982148B2 (ja) | 半導体記憶装置 | |
US11868644B1 (en) | Techinques for tracking frequently accessed memory | |
US6502177B1 (en) | Single cycle linear address calculation for relative branch addressing | |
US11537522B2 (en) | Determining a tag value for use in a tag-guarded memory |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Zone C, floor 1, plant 1, No.1, Keji 4th Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province 519085 Applicant after: ACTIONS TECHNOLOGY Co.,Ltd. Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province Applicant before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |