坏块筛选方法、装置、计算机可读存储介质及电子设备
文献发布时间:2023-06-19 12:10:19
技术领域
本发明涉及数据存储领域,尤其涉及一种坏块筛选方法、装置、计算机可读存储介质及电子设备。
背景技术
NAND flash(NAND闪存)颗粒由于出厂坏块和生长坏块的存在,需要在量产之前进行严格的质量评估和筛选。一般情况下筛选流程会包含对NAND flash整个数据空间若干轮的擦除(erase)、编程(program)、读(read),对erase、program中出现错误的块(block)直接标记为坏块,而read流程的坏块筛选比较复杂,一般来说主控都会有page(页)的bit(比特)翻转统计功能,通过在read前设置较低的bit翻转对比阈值,可以将page对应的颗粒质量分为较好、较差两类,较差的page会进行进一步甄别,通常采用读该page的原始数据(rawdata)的方式,跟标准raw data进行数据对比,得到真实的bit翻转个数,再跟坏块的bit翻转阈值对比,来决定当前page所在的block是否被标记为坏块;还有另外一种read流程的坏块筛选策略,直接开启读重试和深度读重试功能,对read失败的page,直接将page所在的block标记为坏块。这两种read流程的坏块筛选策略都是根据单次read的结果进行判断,考虑到bit翻转的概率性,这种筛选策略可能会造成坏块漏筛选的情况。
发明内容
本发明所要解决的技术问题是:提供了一种坏块筛选方法、装置、计算机可读存储介质及电子设备,能够更准确地筛选坏块,避免了坏块遗漏。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种坏块筛选方法,包括步骤:
多次读取NAND闪存的待筛选块的当前页的原始数据,得到第一数据集合;
基于所述第一数据集合与标准原始数据得到比特翻转个数集合;
判断所述比特翻转个数集合中任一比特翻转个数是否超过第一预设阈值,若是,则将所述当前页对应的待筛选块标记为坏块,若否,则判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种坏块筛选装置,包括:
数据获取模块,用于多次读取NAND闪存的待筛选块的当前页的原始数据,得到第一数据集合;
比特翻转个数统计模块,用于基于所述初始数据集合与标准原始数据得到比特翻转个数集合;
坏块筛选模块,用于判断所述比特翻转个数集合中任一比特翻转个数是否超过第一预设阈值,若是,则将所述当前页对应的待筛选块标记为坏块,若否,则判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述坏块筛选方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述坏块筛选方法中的各个步骤。
本发明的有益效果在于:
多次读取NAND闪存的待筛选块的当前页的原始数据,基于读取结果最终得到比特翻转个数集合,基于比特翻转个数集合判断待筛选块是否为坏块,不再像现有技术中只根据单次读的结果判断坏块,由于比特翻转存在概率性,多次读取页的原始数据,最终获取比特翻转累计数据集合,将比特翻转的概率性转换成了确定性趋势,基于比特翻转个数集合进行坏块判断,有效防止了比特翻转概率性导致遗漏统计比特翻转个数的情况,能够更准确地筛选坏块,避免了坏块遗漏。
附图说明
图1本发明实施例的一种坏块筛选方法的步骤流程图;
图2为本发明实施例的一种坏块筛选装置的结构示意图;
图3为本发明实施例的一种电子设备的结构示意图;
图4为本发明实施例的坏块筛选方法的比特翻转个数集合的绘制图;
图4(a)为本发明实施例的坏块筛选方法中比特翻转个数集合处于稳定状态且未超过比特翻转坏块阈值的情况的绘制图;
图4(b)为本发明实施例的坏块筛选方法中比特翻转个数集合处于稳定状态但超过比特翻转坏块阈值的情况的绘制图;
图4(c)为本发明实施例的坏块筛选方法中比特翻转个数集合处于稳定状态但超过比特翻转坏块阈值的情况的绘制图;
图4(d)为本发明实施例的坏块筛选方法中比特翻转个数集合处于发散状态且超过比特翻转坏块阈值的情况的绘制图;
图4(e)为本发明实施例的坏块筛选方法中比特翻转个数集合处于发散状态且超过比特翻转坏块阈值的情况的绘制图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种坏块筛选方法,包括步骤:
多次读取NAND闪存的待筛选块的当前页的原始数据,得到第一数据集合;
基于所述第一数据集合与标准原始数据得到比特翻转个数集合;
判断所述比特翻转个数集合中任一比特翻转个数是否超过第一预设阈值,若是,则将所述当前页对应的待筛选块标记为坏块,若否,则判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块。
从上述描述可知,本发明的有益效果在于:多次读取NAND闪存的待筛选块的当前页的原始数据,基于读取结果最终得到比特翻转个数集合,基于比特翻转个数集合判断待筛选块是否为坏块,不再像现有技术中只根据单次读的结果判断坏块,由于比特翻转存在概率性,多次读取页的原始数据,最终获取比特翻转累计数据集合,将比特翻转的概率性转换成了确定性趋势,基于比特翻转个数集合进行坏块判断,有效防止了比特翻转概率性导致遗漏统计比特翻转个数的情况,能够更准确地筛选坏块,避免了坏块遗漏。
进一步地,所述多次读取NAND闪存的待筛选块的当前页的原始数据之前还包括步骤:
以块为单位对所述NAND闪存进行遍历直至遍历完所述NAND闪存的所有块;
对于遍历到的待筛选块,以页为单位对所述待筛选块进行遍历直至遍历完所述待筛选块的所有页;
对于遍历到的目标页,将所述目标页标记为当前页。
由上述描述可知,对NAND闪存的所有块的所有页进行遍历,对于遍历到的目标页,将其标记为当前页,便于对其对应的块进行坏块筛选,能够避免遗漏未检测的页。
进一步地,还包括步骤:
根据预设数据打散规则以及所述当前页的数据模板生成标准原始数据。
由上述描述可知,根据预设数据打散规则以及当前页的数据模板生成的标准原始数据,能够使后续得到的比特翻转个数集合更加准确,从而提高了测试的准确性。
进一步地,所述基于所述第一数据集合与标准原始数据得到比特翻转个数集合包括:
将所述第一数据集合与所述标准原始数据进行异或操作,得到第二数据集合;
基于所述第二数据集合中的第二数据进行或运算得到第三数据集合;
确定所述第三数据集合中每一第三数据的比特1的个数,得到比特翻转个数集合。
进一步地,所述将所述第一数据集合与所述标准原始数据进行异或操作,得到第二数据集合包括:
所述第二数据集合中的第i个元素Pi为:
式中,Ai表示所述第一数据集合中的第i个元素,B0表示所述标准原始数据,j表示所述第一数据集合的元素个数,
由上述描述可知,将第一数据集合与标准原始数据进行异或,得到第二数据集合,能够体现第一数据集合中所出现比特翻转的位置。
进一步地,所述基于所述第二数据集合中的第二数据进行或运算得到第三数据集合包括:
所述第三数据集合中的第k个元素Wk为:
Wk=Pk∨P(k-1)∨P(k-2)∨...∨P(k-(k-1))k=1,2,...,h;
式中,Pk表示所述第二数据集合中的第k个元素,h表示所述第二数据集合的元素个数,∨表示或运算。
由上述描述可知,由于比特1表示当前比特出现了翻转,比特0表示当前比特没有出现翻转,基于第二数据集合中的第二数据进行或运算,得到第三数据集合,然后确定第三数据集合中每一第三数据的比特1的个数,得到比特翻转个数集合,能够准确地得到多次读取中每次读取累计的比特翻转个数。
进一步地,所述判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块包括:
获取所述比特翻转个数集合的最后预设个数的比特翻转个数,得到目标比特翻转个数集合;
计算所述目标比特翻转个数集合中相邻的比特翻转个数的差值,得到多个比特翻转个数差值;
判断所述多个比特翻转个数差值是否均小于第二预设阈值,若是,则将所述当前页对应的待筛选块标记为好块,若否,则将所述当前页对应的待筛选块标记为坏块。
由上述描述可知,若最后预设个数的比特翻转个数之间的差值小于第二预设阈值,则可以认为该比特翻转个数集合趋于稳定,即使再多次读取页的原始数据,比特翻转个数也不会增加,将比特翻转的概率性转换成了确定性趋势,提高了坏块筛选的准确性。
请参照图2,本发明另一实施例提供了一种坏块筛选装置,包括:
数据获取模块,用于多次读取NAND闪存的待筛选块的当前页的原始数据,得到第一数据集合;
比特翻转个数统计模块,用于基于所述初始数据集合与标准原始数据得到比特翻转个数集合;
坏块筛选模块,用于判断所述比特翻转个数集合中任一比特翻转个数是否超过第一预设阈值,若是,则将所述当前页对应的待筛选块标记为坏块,若否,则判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述坏块筛选方法中的各个步骤。
请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述坏块筛选方法中的各个步骤。
本发明上述坏块筛选方法,装置、计算机可读存储介质及电子设备能够适用于任何类型的NAND闪存的坏块筛选中,比如单层单元(SLC)、多层单元(MLC)和三层单元(TLC),以下通过具体实施方式进行说明:
实施例一
请参照图1,本实施例的一种坏块筛选方法,包括步骤:
S0、以块为单位对所述NAND闪存进行遍历直至遍历完所述NAND闪存的所有块;
对于遍历到的待筛选块,以页为单位对所述待筛选块进行遍历直至遍历完所述待筛选块的所有页;
对于遍历到的目标页,将所述目标页标记为当前页;
S1、多次读取NAND闪存的待筛选块的当前页的原始数据,得到第一数据集合;
其中,读取次数可以根据实际情况需要进行设定,本实施例中设定读取次数为10次;
具体的,读取10次NAND闪存的待筛选块的当前页的raw data,得到数据集合A,包含元素A1,A2,…,A10;
S2、根据预设数据打散规则以及当前页的数据模板生成标准原始数据;
其中,预设数据打散规则为当前主控的数据打散规则;
具体的,根据当前主控的数据打散规则以及当前页的数据模板,生成标准原始数据B0;
S3、基于所述第一数据集合与标准原始数据得到比特翻转个数集合;
具体的,将所述第一数据集合与所述标准原始数据进行异或操作,得到第二数据集合;
其中,所述第二数据集合中的第i个元素Pi为:
式中,Ai表示所述第一数据集合中的第i个元素,B0表示所述标准原始数据,j表示所述第一数据集合的元素个数,
具体的,将第一数据集合A中的A1,A2,…,A10分别与标准原始数据B0进行异或,得到第二数据集合P,包含元素P1,P2,…,P10;
假设第一数据集合A中的A1=01101,A2=01010,A3=01110,B0=01100,那么
基于所述第二数据集合中的第二数据进行或运算得到第三数据集合;
其中,所述第三数据集合中的第k个元素Wk为:
Wk=Pk∨P(k-1)∨P(k-2)∨...∨P(k-(k-1))k=1,2,...,h;
式中,Pk表示所述第二数据集合中的第k个元素,h表示所述第二数据集合的元素个数,∨表示或运算;
确定所述第三数据集合中每一第三数据的比特1的个数,得到比特翻转个数集合;
具体的,第三数据集合W,包含元素W1,W2,…,W10,W1=P1,W2=P1∨P2,W3=P1∨P2∨P3,依此类推;
确定第三数据集合W中每一第三数据的bit1的个数,得到比特翻转个数集合D,包含元素D1,D2,…,D10;
如上述,P1=00001,P2=00110,P3=00010,那么W1=P1=00001,W2=P1∨P2=00111,W3=P1∨P2∨P3=00111,由于W1的bit1的个数为1,W2的bit1的个数为3,W3的bit1的个数为3,所以D1=1,D2=3,D3=3;
通过第一数据集合A与标准原始数据进行异或操作得到的第二数据集合P体现了出现比特翻转的bit的位置,基于第二数据集合P中的第二数据进行或运算得到的第三数据集合W体现了每次读取累计出现比特翻转的bit的位置,即W1体现了第一次读取出现比特翻转的bit的位置,W2体现了前两次读取累计出现比特翻转的bit的位置,W3体现了前三次读取累计出现比特翻转的bit的位置,依此类推,而分别确定W1~W10的bit1的个数得到D1~D10,比特翻转个数集合D则体现了每次读取累计出现的比特翻转个数,即D1体现了第一次读取出现的比特翻转个数,D2体现了前两次读取累计出现的比特翻转个数,依此类推;
S4、判断所述比特翻转个数集合中任一比特翻转个数是否超过第一预设阈值,若是,则将所述当前页对应的待筛选块标记为坏块,若否,则判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块。
实施例二
请参照图1、4,本实施例在实施例一的基础上进一步限定了如何基于比特翻转个数集合进行坏块筛选,具体为:
比特翻转个数集合D中的D1~D10是一组顺序递增的数据,前后两个值的差值是前后两次读取的raw data所新增的比特翻转个数,该新增比特翻转个数表示颗粒的比特翻转的随机性,比特翻转个数集合D中每一个值的大小表示当前颗粒可能出现的比特翻转个数,值越大,越有可能出现ECC(Error Correcting Code,错误检查和纠正)纠正不回来的情况;
如图4所示,比特翻转个数(即图4中的bit翻转累计计数)作为纵坐标,read(读取)次数作为横坐标,绘制图形,可能出现图4中的几种情况,图4中的折线表示10次读取对应的比特翻转个数,直线表示比特翻转坏块阈值TH0,可以看到,图4(a)、图4(b)、图4(c)中的比特翻转个数在测试次数内逐渐趋于稳定,图4(d)、图4(e)中比特翻转个数在测试次数内没有趋于稳定,依旧呈现增加趋势;
因此,图4中不存在坏块的只有图4(a)的情况,当然还有另一种情况,即在测试次数内,比特翻转个数虽然没有趋于稳定,但也没有超过比特翻转坏块阈值TH0;
S4、判断所述比特翻转个数集合中任一比特翻转个数是否超过第一预设阈值,若是,则将所述当前页对应的待筛选块标记为坏块,若否,则判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块;
本实施例中,第一预设阈值为比特翻转坏块阈值TH0;
具体的,所述判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块包括:
获取所述比特翻转个数集合的最后预设个数的比特翻转个数,得到目标比特翻转个数集合;
计算所述目标比特翻转个数集合中相邻的比特翻转个数的差值,得到多个比特翻转个数差值;
判断所述多个比特翻转个数差值是否均小于第二预设阈值,若是,则将所述当前页对应的待筛选块标记为好块,若否,则将所述当前页对应的待筛选块标记为坏块;
其中,预设个数可以根据实际情况需要进行设定,本实施例中预设个数为3个;
具体为,判断比特翻转个数集合D任一比特翻转个数是否超过TH0,若是,则将当前页对应的待筛选块标记为坏块,假设D8和D9超过了TH0,那么则将当前页对应的待筛选块标记为坏块;若否,获取比特翻转个数集合D的最后3个的比特翻转个数,得到目标比特翻转个数集合,即D8、D9、D10;
分别计算D8与D9的差值,D9与D10的差值,得到多个比特翻转个数差值,即G1和G2;
判断G1和G2是否均小于TH1,若是,则将当前页对应的待筛选块标记为好块,若否,则将当前页对应的待筛选块标记为坏块,假设G1为10,G2为17,TH1为15,那么将当前页对应的待筛选块标记为坏块。
实施例三
请参照图2,一种坏块筛选装置,包括:
数据获取模块,用于多次读取NAND闪存的待筛选块的当前页的原始数据,得到第一数据集合;
比特翻转个数统计模块,用于基于所述初始数据集合与标准原始数据得到比特翻转个数集合;
坏块筛选模块,用于判断所述比特翻转个数集合中任一比特翻转个数是否超过第一预设阈值,若是,则将所述当前页对应的待筛选块标记为坏块,若否,则判断所述比特翻转个数集合是否为稳定状态,若否,则将所述当前页对应的待筛选块标记为坏块。
实施例四
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现实施例一或实施例二中坏块筛选方法的各个步骤。
实施例五
请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一或实施例二中坏块筛选方法的各个步骤。
综上所述,本发明提供的一种坏块筛选方法、装置、可读存储介质及电子设备,以块为单位对NAND闪存进行遍历直至遍历完NAND闪存的所有块,对于遍历到的待筛选块,以页为单位对待筛选块进行遍历直至遍历完待筛选块的所有页,对于遍历到的目标页,将该目标页标记为当前页,能够避免遗漏未检测的页;多次读取NAND闪存的待筛选块的当前页的原始数据,得到第一数据集合,将其与标准原始数据进行异或操作,得到第二数据集合,能够体现第一数据集合中所出现比特翻转的位置;基于第二数据集合中的第二数据进行或运算得到第三数据集合,确定其中每一第三数据的比特1的个数,得到比特翻转个数集合,能够准确地得到多次读取中每次读取累计的比特翻转个数;判断比特翻转个数集合中任一比特翻转个数是否超过第一预设阈值,若是,则将当前页对应的待筛选块标记为坏块,若否,则获取比特翻转个数集合的最后预设个数的比特翻转个数,得到目标比特翻转个数集合,计算其中相邻的比特翻转个数的差值,得到多个比特翻转个数差值,根据其是否均小于第二预设阈值来判断当前页对应的待筛选块是否为坏块,将比特翻转的概率性转换成了确定性趋势,基于比特翻转累计数据集合进行坏块判断,有效防止了比特翻转概率性导致遗漏统计比特翻转个数的情况,能够更准确地筛选坏块,避免了坏块遗漏。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
- 坏块筛选方法、装置、计算机可读存储介质及电子设备
- 匹配筛选方法、装置、电子设备和计算机可读存储介质