CN114283873A - 闪存检测方法及闪存检测系统 - Google Patents
闪存检测方法及闪存检测系统 Download PDFInfo
- Publication number
- CN114283873A CN114283873A CN202111342765.XA CN202111342765A CN114283873A CN 114283873 A CN114283873 A CN 114283873A CN 202111342765 A CN202111342765 A CN 202111342765A CN 114283873 A CN114283873 A CN 114283873A
- Authority
- CN
- China
- Prior art keywords
- block
- tested
- data
- current page
- bit
- 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
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及数据存储技术领域,公开了一种闪存检测方法及闪存检测系统。闪存检测方法包括:从待测试Die中挑选待测试块,建立坏块表;以块为单位对待测试块执行擦除命令,将发生擦除错误的块在坏块表中的标记更新为第一标记;对通过擦除测试的待测试块执行写读操作,确定当前页的第一比特翻转个数;对第一比特翻转个数超过第一预设阈值的页,多次读取当前页的原始数据,根据读取结果确定第二比特翻转个数;若第二比特翻转个数超过第二预设阈值,则将当前页所在的块在坏块表中的标记更新为第二标记。本发明提供的技术方案进一步挖掘了那些虽然某次擦除读写成功但是实际上性能不稳定、极容易出错的块,能够更准确地筛选坏块,使闪存检测更加彻底。
Description
技术领域
本发明涉及存储器技术领域,尤其涉及一种闪存检测方法及闪存检测系统。
背景技术
闪存颗粒由于其物理特性会概率性存在坏块,而坏块则会严重影响到闪存设备的读写性能,因此需要在封装之前对Die进行质量检测和筛选,尽量防止将坏块多、质量差的颗粒当作正常颗粒使用,从而影响使用体验。
目前闪存颗粒中坏块的检测,通常是结合高温测试环境,对闪存颗粒中的块进行擦除(erase)、编程(program)、读(read)操作,将这些操作过程中出现失败的块,或者闪存上原始数据比特翻转个数超过比特筛选阈值的块视为坏块。由于闪存颗粒中数据的比特翻转存在概率性,在有限的读操作测试过程中筛选坏块,可能会存在坏块漏筛选的情况。
发明内容
本发明的主要目的在于提供一种闪存检测方法及闪存检测系统,旨在解决坏块漏检及闪存检测不够彻底的技术问题。
本发明第一方面提供了一种闪存检测方法,包括:
从待测试Die中挑选待测试块,建立坏块表;
以块为单位对所述待测试块依次执行擦除命令,将发生擦除错误的块所对应的坏块表中的标记更新为第一标记;
在擦除所述待测试块并更新所述坏块表后,对所述待测试块执行写读操作,确定所述待测试块中当前页的第一比特翻转个数;
判断所述第一比特翻转个数是否超过第一预设阈值;
若所述第一比特翻转个数超过所述第一预设阈值,则多次读取当前页的原始数据,根据多次读取结果确定当前页的第二比特翻转个数;
判断所述第二比特翻转个数是否超过第二预设阈值;
若所述第二比特翻转个数超过所述第二预设阈值,则将当前页所在的块所对应的坏块表中的标记更新为第二标记。
可选的,在本发明第一方面的第一种实现方式中,一个Die至少包含两个Plane,一个Plane包括多个块,所述从待测试Die中挑选待测试块,建立坏块表包括:
从所述待测试Die中均匀挑选待测试块,使得每个Plane被选中的块个数相同且被选中的块与未被选中的块之间间隔均匀;
创建用于记录待测试块的测试结果的坏块表,其中,所述坏块表中每一个待测试块分别对应一个用于标识测试结果的标记。
可选的,在本发明第一方面的第二种实现方式中,所述以块为单位对所述待测试块依次执行擦除命令,将发生擦除错误的待测试块在坏块表中对应的标记更新为第一标记包括:
以块为单位遍历所述待测试块,并对当前遍历的待测试块执行擦除操作;
判断当前遍历的待测试块执行擦除操作是否失败,若是,则将所述坏块表中当前遍历的待测试块对应的标记更新为第一标记;
判断当前遍历的待测试块是否为最后的待测试块,若是,则结束遍历。
可选的,在本发明第一方面的第三种实现方式中,所述判断当前遍历的待测试块执行擦除操作是否失败包括:
判断执行擦除操作后待测试块的任一存储单元的临界电压是否大于预置门坎值;
若执行擦除操作后待测试块的任一存储单元的临界电压大于所述预置门坎值,则判定执行擦除操作失败。
可选的,在本发明第一方面的第四种实现方式中,所述在擦除所述待测试块并更新所述坏块表后,对所述待测试块执行写读操作,确定所述待测试块中当前页的第一比特翻转个数包括:
以块为单位遍历待测试块,查看所述坏块表中当前遍历的待测试块对应的标记;
判断所述坏块表中当前遍历的待测试块对应的标记是否为第一标记,若否,则将预设测试数据写入当前遍历的待测试块中;
判断当前遍历的待测试块的写操作是否失败,若是,则将所述坏块表中当前遍历的待测试块对应的标记更新为第三标记,若否,则以页为单位对当前遍历的待测试块进行遍历,对遍历到的当前页执行读操作;
判断当前页执行读操作是否失败,若是,则将所述坏块表中当前页所在的块对应的标记更新为第四标记,若否,则确定当前页的第一比特翻转个数。
可选的,在本发明第一方面的第五种实现方式中,所述判断当前页执行读操作是否失败包括:
对当前页执行读操作,当读取的数据与预设测试数据存在部分不同时,则判定当前页执行读操作失败。
可选的,在本发明第一方面的第六种实现方式中,若所述第一比特翻转个数超过所述第一预设阈值,则多次读取当前页的原始数据,根据多次读取结果确定当前页的第二比特翻转个数,包括:
若所述第一比特翻转个数超过所述第一预设阈值,则多次读取所述当前页的原始数据,得到第一数据集合A={A1,A2…,Ai,…,An},i=1,2,…,n,Ai表示第i次读取的结果,为第i个第一数据;
将所述第一数据集合中的各第一数据分别与预置标准原始数据进行异或运算,得到第二数据集合P={P1,P2,…,Pi,…,Pn},其中,Pi为第i个第二数据,Ai表示第一数据集合中的第i个数据,B0表示标准原始数据,n表示第一数据集合中的数据个数;
对所述第二数据集合中的各第二数据进行或运算,得到第三数据R,其中,R=P1∨…∨Pi∨…∨Pn,i=1,2,3,…,n;
统计所述第三数据中比特值为1的个数,得到第二比特翻转个数。
本发明第二方面提供了一种闪存检测系统;
所述闪存检测系统包括闪存设备、主机、测试板,所述闪存设备包含多个Die,每一Die中包括多个块;所述主机耦合到所述闪存设备;所述主机与所述测试板信号连接;
所述主机用于:从待测试Die中挑选待测试块,建立坏块表并向所述测试板发送擦除命令,将发生擦除错误的块所对应的坏块表中的标记更新为第一标记;
所述测试板用于:接收所述主机发送的擦除命令,以块为单位对所述待测试块依次执行擦除命令,并将执行结果发送给所述主机;接收所述主机发送的写读操作命令,对所述待测试块执行写读操作并将执行结果发送给所述主机;接收所述主机发送的读操作命令并对当前页多次执行读操作命令,并将多次读取结果发送给所述主机;
所述主机还用于:在擦除所述待测试块并更新所述坏块表后,向所述测试板发送写读操作命令,根据执行结果确定所述待测试块中当前页的第一比特翻转个数;判断所述第一比特翻转个数是否超过第一预设阈值;若所述第一比特翻转个数超过所述第一预设阈值,则向所述测试板发送多次读取当前页的原始数据的命令,根据多次读取结果确定当前页的第二比特翻转个数;判断所述第二比特翻转个数是否超过第二预设阈值;若所述第二比特翻转个数超过所述第二预设阈值,则将当前页所在的块所对应的坏块表中的标记更新为第二标记。
可选的,在本发明第二方面的第一种实现方式中,
所述主机还用于:以块为单位遍历待测试块,查看所述坏块表中当前遍历的待测试块对应的标记;判断所述坏块表中当前遍历的待测试块对应的标记是否为第一标记,若否,则将写命令发送给所述测试板;
所述测试板还用于:执行所述主机发送的写命令,将预设测试数据写入当前遍历的待测试块中并将写命令执行结果发送给所述主机;
所述主机还用于:判断当前遍历的待测试块的写操作是否失败,若是,则将所述坏块表中当前遍历的待测试块对应的标记更新为第三标记,若否,则以页为单位对当前遍历的待测试块进行遍历,向所述测试板发送对遍历到的当前页的读命令;
所述测试板还用于:接收所述主机发送的当前页的读命令,对当前页执行读操作并将读取结果发送给所述主机;
所述主机还用于:判断当前页执行读操作是否失败,若是,则将所述坏块表中当前页所在的块对应的标记更新为第四标记,若否,则确定当前页的第一比特翻转个数。
可选的,在本发明第二方面的第二种实现方式中,
所述主机还用于:若所述第一比特翻转个数超过所述第一预设阈值,则向所述测试板发送多次读取当前页的原始数据的命令;
所述测试板还用于:对当前页多次执行读命令,得到第一数据集合A={A1,A2…,Ai,…,An},i=1,2,…,n,Ai表示第i次读取的结果,为第i个第一数据,并将所述第一数据集合发送给所述主机;
所述主机还用于:将所述第一数据集合中的各第一数据分别与预置标准原始数据进行异或运算,得到第二数据集合P={P1,P2,…,Pi,…,Pn},其中,Pi为第i个第二数据,Ai表示第一数据集合中的第i个数据,B0表示标准原始数据,n表示第一数据集合中的数据个数;
所述主机还用于:对所述第二数据集合中的各第二数据进行或运算,得到第三数据R,其中,R=P1∨…∨Pi∨…∨Pn,i=1,2,3,…,n;统计所述第三数据中比特值为1的个数,得到第二比特翻转个数。
本发明提供的技术方案中,对待测试Die中的若干块进行了有代表性的、均匀的筛选,提高了测试效率;在对被选择的待测试块的擦写读操作过程中,除了对常规测试下出现操作失败的块进行坏块标记之外,还会对部分未出现操作失败,但是第一比特翻转个数超过第一预设阈值的页,进行进一步的读测试,根据多次读取原始数据的结果确定第二比特翻转个数,把第二比特翻转个数超过第二预设阈值的页所在的块也标记为坏块,进一步挖掘了那些虽然某次擦除读写成功但是实际上性能不稳定、极容易出错的块,能够更准确地筛选坏块,使闪存检测更加彻底。
附图说明
图1为本发明实施例中闪存检测方法的第一个实施例示意图;
图2为本发明实施例中闪存检测方法的第二个实施例示意图;
图3为本发明实施例中闪存检测方法的第三个实施例示意图;
图4为本发明实施例中闪存检测方法的第四个实施例示意图;
图5为本发明实施例中闪存检测系统一实施例示意图。
具体实施方式
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中闪存检测方法的一个实施例包括:
101、从待测试Die中挑选待测试块,建立坏块表;
可以理解的是,本发明的执行主体为闪存检测装置。
可选的,一个Die至少包含两个Plane,一个Plane包括多个块,所述从待测试Die中挑选待测试块,建立坏块表包括:
从所述待测试Die中均匀挑选待测试块,使得每个Plane被选中的块个数相同且被选中的块与未被选中的块之间间隔均匀;
创建用于记录待测试块的测试结果的坏块表,其中,所述坏块表中每一个待测试块分别对应一个用于标识测试结果的标记。
示例性的,假设待测试Die中包含2个Plane,每个Plane分别包含6行3列共18个块,用Bij表示第i(i=1,2…,6)行第j(i=1,2…,6)列位置的块,第1~3列为第一个Plane,第4~6列为第二个Plane。那么被选择的待测试块集合可以为{B12,B14,B16,B21,B23,B25,B32,B34,B36,B41,B43,B45,B52,B54,B56,B61,B63,B65},则可实现每个Plane选择9个块,且被选择的块是有代表性的、均匀的分布在Plane中。
本实施例中,对于不同测试结果用不同的标记来标识,并记录在坏块表中,具体的标记方式不做限定,示例性的,可以分别用数字0、1、2、3来标记出四种不同的测试结果。
102、以块为单位对所述待测试块依次执行擦除命令,将发生擦除错误的块所对应的坏块表中的标记更新为第一标记;
103、在擦除所述待测试块并更新所述坏块表后,对所述待测试块执行写读操作,确定所述待测试块中当前页的第一比特翻转个数;
本实施例中,写读操作是指对待测试块中的每一页都依次执行写操作和读操作。写操作会将测试数据写入当前页,读操作会读取当前页,第一比特翻转个数是指读操作读取到的数据中比特位发生翻转的个数,即读取的数据出错的比特个数。当读取数据出错的比特个数在当前页所在块的纠错码可纠正的范围内,读操作会成功,纠错码会纠正出错的比特位并返回出错的比特个数,即第一比特翻转个数。
104、判断所述第一比特翻转个数是否超过第一预设阈值;
本实施例中,第一预设阈值为预设阈值,可根据实际测试需求动态设置。第一预设阈值应该小于纠错码可纠正的最大比特位数。
105、若所述第一比特翻转个数超过所述第一预设阈值,则多次读取当前页的原始数据,根据多次读取结果确定当前页的第二比特翻转个数;
本实施例中,第一预设阈值可以设定为接近纠错码最大纠错位数的值。当第一比特翻转个数超过第一预设阈值,但是又小于纠错码最大纠错位数时,当前页的读操作可以成功,但是当前页的读操作性能不够稳定,下一次读操作出错的可能性很大,因此当前页所在的块可能为潜在坏块,可以视作疑似坏块。
本实施例中,对疑似坏块做进一步的读操作测试。在当前页的一次读操作中,若当前页的第一比特翻转个数超过第一阈值,则多次读取当前页的原始数据,此时读取的原始数据未经过纠错码纠正,保留了其出错的比特位,多次读操作可以得到多个未经纠错码纠正的读取结果,根据这些读取结果可以进一步确认当前页的第二比特翻转个数。
本实施例中,第二比特翻转个数是当前页在多次读取过程中出现的比特位翻转错误的位置的个数之和,同样位置的比特位多次出错,只统计一次。
106、判断所述第二比特翻转个数是否超过第二预设阈值;
本实施例中,第二预设阈值为预设阈值,可根据实际需要动态设置,第二预设阈值应该小于纠错码可纠正的最大比特位数。
107、若所述第二比特翻转个数超过所述第二预设阈值,则将当前页所在的块所对应的坏块表中的标记更新为第二标记。
本实施例中,第二预设阈值可以设定为接近或等于纠错码最大纠错位数的值。当第二比特翻转个数超过第二预设阈值,则说明当前页在未来的读操作中,极有可能发生读操作失败的情况,进一步说明当前页所在的块为读写性能接近坏块的块,可以视作坏块。
本发明实施例中,对待测试Die中的若干块进行了有代表性的、均匀的筛选,大大减少了需要测试的块的数量,提高了测试效率;在对被选择的待测试块的擦写读操作过程中,除了将常规测试下出现操作失败的块筛选出来之外,还会对那些第一比特翻转个数超过第一预设阈值的页所在的疑似坏块进行进一步的多次读测试,进一步挖掘了那些虽然一次擦除读写成功但是实际上性能不稳定、极容易出错的块,能够更准确地筛选坏块,避免了坏块遗漏,使闪存检测更加彻底,保证通过测试的Die的质量和性能。
请参阅图2,本发明实施例中闪存检测方法的第二个实施例包括:
201、从待测试Die中挑选待测试块,建立坏块表;
202、以块为单位遍历所述待测试块,并对当前遍历的待测试块执行擦除操作;
203、判断当前遍历的待测试块执行擦除操作是否失败;
若当前遍历的待测试块执行擦除操作失败,则执行步骤204,否则,执行步骤205;
进一步的,当前遍历的待测试块擦除操作后有任一存储单元的临界电压大于预置门坎值,则擦除操作失败。
204、则将所述坏块表中当前遍历的待测试块对应的标记更新为第一标记;
本实施例中,第一标记标识的坏块类型为执行擦除操作失败的块。
205、判断当前遍历的待测试块是否为最后的待测试块;
若当前遍历的待测试块是否为最后的待测试块,则遍历完成,执行步骤207,若否,则执行步骤206;
206、遍历下一个待测试块;
207、在擦除所述待测试块并更新所述坏块表后,对所述待测试块执行写读操作,确定所述待测试块中当前页的第一比特翻转个数;
208、判断所述第一比特翻转个数是否超过第一预设阈值;
209、若所述第一比特翻转个数超过所述第一预设阈值,则多次读取当前页的原始数据,根据多次读取结果确定当前页的第二比特翻转个数;
210、判断所述第二比特翻转个数是否超过第二预设阈值;
211、若所述第二比特翻转个数超过所述第二预设阈值,则将当前页所在的块所对应的坏块表中的标记更新为第二标记。
本实施例中,需要说明的是,步骤207至211与图1所示的第一个实施例中的步骤103至107类似,具体此处不再赘述。
本发明实施例中,从待测试Die中挑选待测试块,建立坏块表后,对所有待测试块一次进行擦除操作,并将擦除失败的块在坏块表中标识测试结果的标记更新为第一标记。坏块表中的测试结果标识不仅可以表示是否为坏块,还会记录不同的坏块类型。此处第一标记的具体表现形式不做限定,示例的,可以用数字“0”作为第一标记来标识擦除失败的坏块。在闪存可以进行的操作中,擦除操作必须以块为单位进行,写读操作以块中的页为单位进行。本发明实施例先对待测试块进行完整的擦除测试,对通过擦除测试的块,再以页为单位依次进行进一步的写读测试,既符合闪存的特性,又借助坏块表的记录避免了对擦除失败的坏块进行写读测试的无效测试,降低了闪存检测的时间成本。
请参阅图3,本发明实施例中闪存检测方法的第三个实施例包括:
301、从待测试Die中挑选待测试块,建立坏块表;
302、以块为单位对所述待测试块依次执行擦除命令,将发生擦除错误的块所对应的坏块表中的标记更新为第一标记;
本实施例中,需要说明的是,步骤301至302与图1所示的第一个实施例中的步骤101至102类似,具体此处不再赘述
303、以块为单位遍历待测试块,查看所述坏块表中当前遍历的待测试块对应的标记;
本实施例中,步骤302中对所述待测试块依次擦除之后,擦除失败的块所对应的坏块表中的测试结果标识已被更新为第一标记,在步骤303中查看坏块表中的测试结果,对于已经擦除失败的块,即测试结果标识为第一标记的块来说,无需进行写读操作测试。
304、判断所述坏块表中当前遍历的待测试块对应的标记是否为第一标记;
若是,则执行步骤305,若否,则执行步骤306。
在本实施例中,坏块表被标识为第一标记的块为擦除操作失败的坏块,无需再进一步测试。
305、遍历下一个待测试块;
306、将预设测试数据写入当前遍历的待测试块中;
本实施例中,对待测试块的写操作是指遍历块当中的所有页,将测试数据写入待测试块中的所有页。写入不同测试块的测试数据可以是相同或不同的测试数据。
307、判断当前遍历的待测试块的写操作是否失败;
若是,则执行步骤308,若否,则执行步骤309。
本实施例中,对遍历到的待测试块中的所有页进行写操作测试,过程中任一页的写操作失败,均代表当前块的写操作失败。
308、将所述坏块表中当前遍历的待测试块对应的标记更新为第三标记;
步骤308完成后,执行步骤305。
本实施例中,第三标记标识的测试结果为执行写操作失败的块。此处第三标记的具体表现形式不做限定,示例的,可以用数字“2”作为第三标记来标识写操作失败的坏块。
309、以页为单位对当前遍历的待测试块进行遍历,对遍历到的当前页执行读操作;
本实施例中,通过写操作测试的块会进一步以页为单位进行读操作测试。
310、当前页执行读操作是否失败;
若是,执行步骤311,若否,执行步骤312。
本实施例中,若读取的数据与对应写入的测试数据有部分不同,则说明读操作失败。读取到的数据是经过纠错码纠正过的数据,如果当前读取到的数据翻转比特数超过了当前页所在块的纠错码可以纠正的最大比特位数,就会出现读操作失败。闪存检测中读操作以页为单位进行,对遍历到的待测试块中的所有页进行读操作测试,过程中任一页的读操作失败,均代表当前块的读操作失败。
311、将所述坏块表中当前页所在的块对应的标记更新为第四标记;步骤311完成后,执行步骤305。
本实施例中,第四标记标识的测试结果为执行读操作失败的块。此处第四标记的具体表现形式不做限定,示例的,可以用数字“3”作为第四标记来标识读操作失败的坏块。
312、确定所述当前页的第一比特翻转个数;
本实施例中,第一比特翻转个数是指第一比特翻转个数是指读操作读取到的数据中比特位发生翻转的个数,由读操作过程中当前页所在块的纠错码返回。
313、判断所述第一比特翻转个数是否超过第一预设阈值;
314、若所述第一比特翻转个数超过所述第一预设阈值,则多次读取当前页的原始数据,根据多次读取结果确定当前页的第二比特翻转个数;
315、判断所述第二比特翻转个数是否超过第二预设阈值;
316、若所述第二比特翻转个数超过所述第二预设阈值,则将当前页所在的块所对应的坏块表中的标记更新为第二标记;
步骤316完成后,执行步骤305。
本实施例中,需要说明的是,步骤313至316与第一个实施例中的步骤104至107类似,具体此处不再赘述。
本发明实施例中,在对待测试块进行遍历完成擦除测试之后,对待测试块的每一页进行写读测试,分别将出现写操作失败的页所在的块标记为第三标记,将出现读操作失败的页所在的块标记为第四标记,相应标记均更新在坏块表中。对读操作成功但是第一比特翻转个数超过第一预设阈值的页,其所在的块视为疑似坏块,会对该页进一步进行多次读操作以确定该页所在的块的读性能,这一部分将在下一个实施例中详细说明。
请参阅图4,本发明实施例中闪存检测方法的第四个实施例包括:
401、从待测试Die中挑选待测试块,建立坏块表;
402、以块为单位对所述待测试块依次执行擦除命令,将发生擦除错误的块所对应的坏块表中的标记更新为第一标记;
403、在擦除所述待测试块并更新所述坏块表后,对所述待测试块执行写读操作,确定所述待测试块中当前页的第一比特翻转个数;
本实施例中,需要说明的是,步骤401至403与第一个实施例中的步骤101至103类似,具体此处不再赘述
404、判断所述第一比特翻转个数是否超过第一预设阈值;
若是,则执行步骤405,若否,则执行步骤412;
本实施例中,当前页的第一比特翻转个数超过第一预设阈值,表示当前页的虽然可以正常读取,但是其读取出错的位数很多,这代表当前页所在的块性能不稳定。第一预设阈值可根据实际需求动态设定。
405、若所述第一比特翻转个数超过所述第一预设阈值,则多次读取所述当前页的原始数据,得到第一数据集合;
本实施例中,对读操作成功但是第一比特翻转位数超过第一预设阈值的页做进一步的多次读操作测试,此时读到的数据未经过纠错码纠错,保留了每次实际出错的比特位置。示例性的,假设进行了5次读操作,那么第一数据集合A会包含5个未经纠错码纠错的数据{A1,A2,A3,A4,A5},均为当前页的读取结果。
406、将所述第一数据集合中的各第一数据分别与预置标准原始数据进行异或运算,得到第二数据集合;
本实施例中,标准原始数据为当前页实际存储的数据,也就是预设测试数据,理想情况下,读操作读到的数据没有出错的比特位,与预设测试数据完全相同。异或操作为逻辑运算,值相同的两个值异或结果为0,值不同两个值异或结果则为1,假设二进制数字a=1100,b=1001,那么a与b异或的结果则为0101。
示例性的,本实施例当中的读操作为5次,得到第一数据集合A={A1,A2,A3,A4,A5},标准原始数据为B0,那么第二数据集合P={P1,P2,P3,P4,P5},Pi为A中数据Ai,与B0异或得到,Pi作为异或结果,它的比特位记录了Ai,与B0比特值是否相同的情况,若Pi的每个比特位为0,则表示Ai,与B0完全相同,Pi中比特值为1的比特位,实际上是Ai,与B0比特值不同的比特位,也就是Ai中出错的比特位。
407、对所述第二数据集合中的各第二数据进行或运算,得到第三数据;
本实施例中,或运算为逻辑运算,只有所有的值均为0,或运算的结果才会为0,其他情况结果均为1。假设二进制数字a=1100,b=1001,那么a与b或运算的结果则为1101。第二数据集合中的第二数据Pi记录了Ai中出错的比特位,对第二数据集合中的所有第二数据进行或运算,最后的结果即记录了多次读操作中出过错的比特位。
示例的,假设标准原始数据B0=10101010,5次读操作得到的第一数据集合为A={00101010,10101000,10101000,00101010,00101010},其中第1、4、5次读操作是第1个比特位出错,第2、3次读操作是第7个比特位出错,因此步骤406得到的第二数据集合P={10000000,00000010,00000010,1000000,1000000},最后对P中所有数据或运算后的结果R=10000010,R的第1、7比特位为1,表示这5次读操作,第1位和第7位出过错。
408、统计所述第三数据中比特值为1的个数,得到第二比特翻转个数;
本实施例中,第三数据R记录了多次读操作所有出过错的比特位,因此统计第三数据的比特1的个数,实际上是多次读操作中所有出错的比特位数,多次出错的位只会统计一次,最后的结果即为第二比特翻转个数。当前页的第二比特翻转个数越高,表示当前页所在块的性能越不稳定,在未来出现读操作失败的可能性越大。
409、判断所述第二比特翻转个数是否超过第二预设阈值;
410、若所述第二比特翻转个数超过所述第二预设阈值,则将当前页所在的块所对应的坏块表中的标记更新为第二标记;
若是,则执行步骤411,若否,则执行步骤412。
本实施例中409、410步骤与第一个实施例的106、107步骤类似,此处不再赘述。
411、遍历下一个待测试块;
本实施例中的写读测试会遍历所有待测试块。
412、判断当前页是否是其所在块的最后一页;
若是,则执行步骤411,若不是,则执行步骤413。
413、遍历当前块的下一页;
本发明实施例中,对读操作成功但是第一比特翻转个数超过第一预设阈值的当前页,进行进一步的多次读操作测试,统计多次读操作中所有出过错的比特位数作为第二比特翻转个数,第二比特翻转个数越高,表示当前页所在块的性能越不稳定,越可能出现读操作失败,为了避免此类疑似坏块影响存储器整体性能,因此将第二比特翻转个数超出第二预设阈值的页所在的块视为坏块,用第二标记标识,并更新在坏块表中,第二预设阈值可根据实际需求动态设定。
请参阅图5,图5为本发明实施例中闪存检测系统一实施例示意图。本实施例中,闪存检测系统包括:
闪存设备500,包含多个Die,每一Die中包括多个块,例如是固态硬盘、闪存盘或其他类似设备;
主机501,耦合到闪存设备500,发出擦写读等测试命令,收取并进一步处理命令执行结果;
测试板502,与主机501连接,与测试板502信号连接,接受、执行测试命令,发送命令执行结果。
本实施例中,主机501从待测试Die中挑选待测试块,建立坏块表并向测试板502发送擦除命令,将发生擦除错误的块所对应的坏块表中的标记更新为第一标记;测试板502接收主机501发送的擦除命令,以块为单位对待测试块依次执行擦除命令,并将执行结果发送给主机501;接收主机501发送的写读操作命令,对待测试块执行写读操作并将执行结果发送给主机501;接收主机501发送的读操作命令并对当前页多次执行读操作命令,并将多次读取结果发送给主机501;
主机501还用于:在擦除待测试块并更新坏块表后,向测试板502发送写读操作命令,根据执行结果确定待测试块中当前页的第一比特翻转个数;判断所述第一比特翻转个数是否超过第一预设阈值;若所述第一比特翻转个数超过所述第一预设阈值,则向测试板502发送多次读取当前页的原始数据的命令,根据多次读取结果确定当前页的第二比特翻转个数;判断当前页的第二比特翻转个数是否超过第二预设阈值;若是,则将当前页所在的块所对应的坏块表中的标记更新为第二标记。
在一实施例中,所述主机501还用于:以块为单位遍历待测试块,查看坏块表中当前遍历的待测试块对应的标记;判断坏块表中当前遍历的待测试块对应的标记是否为第一标记,若否,则将写命令发送给测试板502;
测试板502还用于:执行所述主机发送的写命令,将预设测试数据写入当前遍历的待测试块中并将写命令执行结果发送给主机501;
主机501还用于:判断当前遍历的待测试块的写操作是否失败,若是,则将坏块表中当前遍历的待测试块对应的标记更新为第三标记,若否,则以页为单位对当前遍历的待测试块进行遍历,向测试板502发送对遍历到的当前页的读命令;
测试板502还用于:接收主机501发送的当前页的读命令,对当前页执行读操作并将读取结果发送给主机501;
主机501还用于:判断当前页执行读操作是否失败,若是,则将坏块表中当前页所在的块对应的标记更新为第四标记,若否,则确定当前页的第一比特翻转个数。
在一实施例中,所述主机还用于:若第一比特翻转个数超过第一预设阈值,则向502测试板发送多次读取当前页的原始数据的命令;
测试板502还用于:对当前页多次执行读命令,得到第一数据集合A={A1,A2…,Ai,…,An},i=1,2,…,n,Ai表示第i次读取的结果,为第i个第一数据,并将所述第一数据集合发送给主机501;
主机501还用于:将第一数据集合中的各第一数据分别与预置标准原始数据进行异或运算,得到第二数据集合P={P1,P2,…,Pi,…,Pn},其中,Pi为第i个第二数据,Ai表示第一数据集合中的第i个数据,B0表示标准原始数据,n表示第一数据集合中的数据个数;
主机501还用于:对第二数据集合中的各第二数据进行或运算,得到第三数据R,其中,R=P1∨…∨Pi∨…∨Pn,i=1,2,3,…,n;统计第三数据中比特值为1的个数,得到第二比特翻转个数。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种闪存检测方法,其特征在于,所述闪存检测方法包括:
从待测试Die中挑选待测试块,建立坏块表;
以块为单位对所述待测试块依次执行擦除命令,将发生擦除错误的块所对应的坏块表中的标记更新为第一标记;
在擦除所述待测试块并更新所述坏块表后,对所述待测试块执行写读操作,确定所述待测试块中当前页的第一比特翻转个数;
判断所述第一比特翻转个数是否超过第一预设阈值;
若所述第一比特翻转个数超过所述第一预设阈值,则多次读取当前页的原始数据,根据多次读取结果确定当前页的第二比特翻转个数;
判断所述第二比特翻转个数是否超过第二预设阈值;
若所述第二比特翻转个数超过所述第二预设阈值,则将当前页所在的块所对应的坏块表中的标记更新为第二标记。
2.根据权利要求1所述的闪存检测方法,其特征在于,一个Die至少包含两个Plane,一个Plane包括多个块,所述从待测试Die中挑选待测试块,建立坏块表包括:
从所述待测试Die中均匀挑选待测试块,使得每个Plane被选中的块个数相同且被选中的块与未被选中的块之间间隔均匀;
创建用于记录待测试块的测试结果的坏块表,其中,所述坏块表中每一个待测试块分别对应一个用于标识测试结果的标记。
3.根据权利要求1所述的闪存检测方法,其特征在于,所述以块为单位对所述待测试块依次执行擦除命令,将发生擦除错误的待测试块在坏块表中对应的标记更新为第一标记包括:
以块为单位遍历所述待测试块,并对当前遍历的待测试块执行擦除操作;
判断当前遍历的待测试块执行擦除操作是否失败,若是,则将所述坏块表中当前遍历的待测试块对应的标记更新为第一标记;
判断当前遍历的待测试块是否为最后的待测试块,若是,则结束遍历。
4.根据权利要求3所述的闪存检测方法,其特征在于,所述判断当前遍历的待测试块执行擦除操作是否失败包括:
判断执行擦除操作后待测试块的任一存储单元的临界电压是否大于预置门坎值;
若执行擦除操作后待测试块的任一存储单元的临界电压大于所述预置门坎值,则判定执行擦除操作失败。
5.根据权利要求1所述的闪存检测方法,其特征在于,所述在擦除所述待测试块并更新所述坏块表后,对所述待测试块执行写读操作,确定所述待测试块中当前页的第一比特翻转个数包括:
以块为单位遍历待测试块,查看所述坏块表中当前遍历的待测试块对应的标记;
判断所述坏块表中当前遍历的待测试块对应的标记是否为第一标记,若否,则将预设测试数据写入当前遍历的待测试块中;
判断当前遍历的待测试块的写操作是否失败,若是,则将所述坏块表中当前遍历的待测试块对应的标记更新为第三标记,若否,则以页为单位对当前遍历的待测试块进行遍历,对遍历到的当前页执行读操作;
判断当前页执行读操作是否失败,若是,则将所述坏块表中当前页所在的块对应的标记更新为第四标记,若否,则确定当前页的第一比特翻转个数。
6.根据权利要求5所述的闪存检测方法,其特征在于,所述判断当前页执行读操作是否失败包括:
对当前页执行读操作,当读取的数据与预设测试数据存在部分不同时,则判定当前页执行读操作失败。
7.根据权利要求1所述的闪存检测方法,其特征在于,若所述第一比特翻转个数超过所述第一预设阈值,则多次读取当前页的原始数据,根据多次读取结果确定当前页的第二比特翻转个数,包括:
若所述第一比特翻转个数超过所述第一预设阈值,则多次读取所述当前页的原始数据,得到第一数据集合A={A1,A2…,Ai,…,An},i=1,2,…,n,Ai表示第i次读取的结果,为第i个第一数据;
将所述第一数据集合中的各第一数据分别与预置标准原始数据进行异或运算,得到第二数据集合P={P1,P2,…,Pi,…,Pn},其中,Pi为第i个第二数据,Ai表示第一数据集合中的第i个数据,B0表示标准原始数据,n表示第一数据集合中的数据个数;
对所述第二数据集合中的各第二数据进行或运算,得到第三数据R,其中,R=P1∨…∨Pi∨…∨Pn,i=1,2,3,…,n;
统计所述第三数据中比特值为1的个数,得到第二比特翻转个数。
8.一种闪存检测系统,其特征在于,所述闪存检测系统包括闪存设备、主机、测试板,所述闪存设备包含多个Die,每一Die中包括多个块;所述主机耦合到所述闪存设备;所述主机与所述测试板信号连接;
所述主机用于:从待测试Die中挑选待测试块,建立坏块表并向所述测试板发送擦除命令,将发生擦除错误的块所对应的坏块表中的标记更新为第一标记;
所述测试板用于:接收所述主机发送的擦除命令,以块为单位对所述待测试块依次执行擦除命令,并将执行结果发送给所述主机;接收所述主机发送的写读操作命令,对所述待测试块执行写读操作并将执行结果发送给所述主机;接收所述主机发送的读操作命令并对当前页多次执行读操作命令,并将多次读取结果发送给所述主机;
所述主机还用于:在擦除所述待测试块并更新所述坏块表后,向所述测试板发送写读操作命令,根据执行结果确定所述待测试块中当前页的第一比特翻转个数;判断所述第一比特翻转个数是否超过第一预设阈值;若所述第一比特翻转个数超过所述第一预设阈值,则向所述测试板发送多次读取当前页的原始数据的命令,根据多次读取结果确定当前页的第二比特翻转个数;判断所述第二比特翻转个数是否超过第二预设阈值;若所述第二比特翻转个数超过所述第二预设阈值,则将当前页所在的块所对应的坏块表中的标记更新为第二标记。
9.根据权利要求8所述的闪存检测系统,其特征在于,所述主机还用于:以块为单位遍历待测试块,查看所述坏块表中当前遍历的待测试块对应的标记;判断所述坏块表中当前遍历的待测试块对应的标记是否为第一标记,若否,则将写命令发送给所述测试板;
所述测试板还用于:执行所述主机发送的写命令,将预设测试数据写入当前遍历的待测试块中并将写命令执行结果发送给所述主机;
所述主机还用于:判断当前遍历的待测试块的写操作是否失败,若是,则将所述坏块表中当前遍历的待测试块对应的标记更新为第三标记,若否,则以页为单位对当前遍历的待测试块进行遍历,向所述测试板发送对遍历到的当前页的读命令;
所述测试板还用于:接收所述主机发送的当前页的读命令,对当前页执行读操作并将读取结果发送给所述主机;
所述主机还用于:判断当前页执行读操作是否失败,若是,则将所述坏块表中当前页所在的块对应的标记更新为第四标记,若否,则确定当前页的第一比特翻转个数。
10.根据权利要求8所述的闪存检测系统,其特征在于,所述主机还用于:若所述第一比特翻转个数超过所述第一预设阈值,则向所述测试板发送多次读取当前页的原始数据的命令;
所述测试板还用于:对当前页多次执行读命令,得到第一数据集合A={A1,A2…,Ai,…,An},i=1,2,…,n,Ai表示第i次读取的结果,为第i个第一数据,并将所述第一数据集合发送给所述主机;
所述主机还用于:将所述第一数据集合中的各第一数据分别与预置标准原始数据进行异或运算,得到第二数据集合P={P1,P2,…,Pi,…,Pn},其中,Pi为第i个第二数据,Ai表示第一数据集合中的第i个数据,B0表示标准原始数据,n表示第一数据集合中的数据个数;
所述主机还用于:对所述第二数据集合中的各第二数据进行或运算,得到第三数据R,其中,R=P1∨…∨Pi∨…∨Pn,i=1,2,3,…,n;统计所述第三数据中比特值为1的个数,得到第二比特翻转个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111342765.XA CN114283873A (zh) | 2021-11-12 | 2021-11-12 | 闪存检测方法及闪存检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111342765.XA CN114283873A (zh) | 2021-11-12 | 2021-11-12 | 闪存检测方法及闪存检测系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114283873A true CN114283873A (zh) | 2022-04-05 |
Family
ID=80869230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111342765.XA Pending CN114283873A (zh) | 2021-11-12 | 2021-11-12 | 闪存检测方法及闪存检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114283873A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116612803A (zh) * | 2023-05-18 | 2023-08-18 | 珠海妙存科技有限公司 | 一种闪存的测试方法、系统、装置及存储介质 |
CN116880782A (zh) * | 2023-09-08 | 2023-10-13 | 合肥康芯威存储技术有限公司 | 一种内嵌式存储器及其测试方法 |
CN116913364A (zh) * | 2023-06-27 | 2023-10-20 | 珠海妙存科技有限公司 | 闪存读干扰测试方法和系统、电子设备、存储介质 |
-
2021
- 2021-11-12 CN CN202111342765.XA patent/CN114283873A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116612803A (zh) * | 2023-05-18 | 2023-08-18 | 珠海妙存科技有限公司 | 一种闪存的测试方法、系统、装置及存储介质 |
CN116612803B (zh) * | 2023-05-18 | 2024-02-23 | 珠海妙存科技有限公司 | 一种闪存的测试方法、系统、装置及存储介质 |
CN116913364A (zh) * | 2023-06-27 | 2023-10-20 | 珠海妙存科技有限公司 | 闪存读干扰测试方法和系统、电子设备、存储介质 |
CN116880782A (zh) * | 2023-09-08 | 2023-10-13 | 合肥康芯威存储技术有限公司 | 一种内嵌式存储器及其测试方法 |
CN116880782B (zh) * | 2023-09-08 | 2023-12-05 | 合肥康芯威存储技术有限公司 | 一种内嵌式存储器及其测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114283873A (zh) | 闪存检测方法及闪存检测系统 | |
KR920005297B1 (ko) | 고장 방지 컴퓨터 메모리 시스템 | |
CN102171659B (zh) | 非易失性存储器中的数据错误恢复 | |
US4479214A (en) | System for updating error map of fault tolerant memory | |
US10755787B2 (en) | Efficient post programming verification in a nonvolatile memory | |
JP2000173289A5 (zh) | ||
US9514843B2 (en) | Methods for accessing a storage unit of a flash memory and apparatuses using the same | |
EP2715541B1 (en) | Mram field disturb detection and recovery | |
US20080282120A1 (en) | Memory structure, repair system and method for testing the same | |
US6842867B2 (en) | System and method for identifying memory modules having a failing or defective address | |
CN116880782B (zh) | 一种内嵌式存储器及其测试方法 | |
CN101339525A (zh) | 一种对数据进行错误检测的方法、系统和设备 | |
US10353769B2 (en) | Recovering from addressing fault in a non-volatile memory | |
CN111459708B (zh) | 坏块处理方法及装置 | |
US9021340B2 (en) | Error recovery using erasures for NAND Flash | |
CN112542199A (zh) | 检测flash存储出错的方法、电路、存储介质和终端 | |
US20100318874A1 (en) | Electronic memory device and method for error correcting thereof | |
CN113223583B (zh) | NAND Flash坏块内数据重读的方法、电子设备及存储介质 | |
CN111552582B (zh) | 筛选闪存弱块的方法、装置和固态硬盘 | |
EP0533608A2 (en) | Method and apparatus for ensuring the recoverability of vital data in a data processing system | |
US11361221B2 (en) | Method of training artificial intelligence to estimate lifetime of storage device | |
CN114203252A (zh) | 非易失存储器的坏块检测方法、装置、设备及存储介质 | |
CN108231134B (zh) | Ram良率补救方法及装置 | |
KR100307517B1 (ko) | 플래시메모리의디펙트셀검출방법 | |
CN112349341B (zh) | Lpddr测试方法、装置、可读存储介质及电子设备 |
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 |