一种确定NAND闪存读取电压的方法及装置与流程

文档序号:24625169发布日期:2021-04-09 20:32阅读:159来源:国知局
一种确定NAND闪存读取电压的方法及装置与流程

本申请涉及但不限于计算机领域,尤其涉及确定nand闪存读取电压的方法及装置。



背景技术:

由于制作工艺或者硬件电气特性的影响,存储在nand闪存(nandflash)中的数据位会发生反转。当前使用nand闪存的产品中,都会通过解码模块对nand闪存进行解码,当发生反转的数据量较大并超出硬件纠错模块的纠错能力时,可能就会产生数据丢失。

nand闪存中的块可能包括两种状态,一种状态是块(block)中存在未被编程(program)的页(page),这种块称为未完全编程块(openblock),另一种状态是块中所有的页均被编程,这种块称为完全编程块(closeblock)。

目前,在选择读取电压对nand闪存进行数据读取时,通常不区分块的类型,在对所有的块解码失败(eccfail)的页进行重读时采用相同的读取方法。但是由于openblock和closeblock存在较大的差异,使得重读效果不理想。



技术实现要素:

本申请所要解决的技术是提供一种确定nand闪存读取电压的方法及装置,可以确定用于读取未完全编程块的读取电压组,从而提高nand闪存的读取效率。

为了解决上述技术问题,本申请提供了一种确定nand闪存读取电压的方法,包括:

确定样本未完全编程块包含的解码失败的页,其中,所述样本未完全编程块为nand闪存中含有未被编程的页的块;

根据获取到的所述nand闪存对应的多个电压组,确定使用每个电压组重读所述解码失败的页时成功解回的页的页数;其中,每个电压组合包括多个读取电压;

根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组。

在一种示例性实例中,根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组,包括:

按照每个电压组对应的成功解回的页的页数由高到低的顺序,选择至少一个电压组作为用于读取所述未完全编程块的读取电压组。

在一种示例性实例中,所述方法还包括:

当重读未完全编程块包含的解码失败的页时,使用所述用于读取未完全编程块的读取电压组重读所述解码失败的页。

在一种示例性实例中,所述选择至少一个电压组作为用于读取所述未完全编程块的读取电压组之后,所述方法还包括:

当选择两个以上电压组作为用于读取未完全编程块的读取电压组时,根据选择的每个电压组对应的成功解回的页的页数,设置每个电压组的优先级,其中,所述优先级与所述成功解回的页的页数正相关。

在一种示例性实例中,所述方法还包括:

当重读未完全编程块包含的解码失败的页时,按照电压组的优先级由高到低的顺序,使用用于读取未完全编程块的读取电压组重读所述解码失败的页。

本申请还提供一种确定nand闪存读取电压的装置,所述装置包括:存储器和处理器;

所述存储器,用于保存用于确定nand闪存读取电压的程序;

所述处理器,用于读取执行所述用于确定nand闪存读取电压的程序,执行如下操作:

确定样本未完全编程块包含的解码失败的页,其中,所述样本未完全编程块为nand闪存中含有未被编程的页的块;

根据获取到的所述nand闪存对应的多个电压组,确定使用每个电压组重读所述解码失败的页时成功解回的页的页数;其中,每个电压组合包括多个读取电压;

根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组。

在一种示例性实例中,根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组,包括:

按照每个电压组对应的成功解回的页的页数由高到低的顺序,选择至少一个电压组作为用于读取所述未完全编程块的读取电压组。

在一种示例性实例中,所述处理器,用于读取执行所述用于确定nand闪存读取电压的程序,还执行如下操作:

所述选择至少一个电压组作为用于读取所述未完全编程块的读取电压组之后,当选择两个以上电压组作为用于读取未完全编程块的读取电压组时,根据选择的每个电压组对应的成功解回的页的页数,设置每个电压组的优先级,其中,所述优先级与所述成功解回的页的页数正相关。

在一种示例性实例中,所述处理器,用于读取执行所述用于确定nand闪存读取电压的程序,还执行如下操作:

当重读未完全编程块包含的解码失败的页时,按照电压组的优先级由高到低的顺序,使用用于读取未完全编程块的读取电压组重读所述解码失败的页。

本申请还提供一种计算机存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行前述任一所述的确定nand闪存读取电压的方法。

本申请提供一种确定nand闪存读取电压的方法及装置,所述方法包括:确定样本未完全编程块包含的解码失败的页,其中,所述样本未完全编程块为nand闪存中含有未被编程的页的块;根据获取到的所述nand闪存对应的多个电压组,确定使用每个电压组重读所述解码失败的页时成功解回的页的页数;其中,每个电压组合包括多个读取电压;根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组。上述技术方案可以确定用于读取未完全编程块的读取电压组,通过该读取电压组重读未完全编程块的解码失败的页可以提高重读的效率,从而可以提高nand闪存的读取效率。

附图说明

附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1是本申请实施例一的确定nand闪存读取电压的方法的流程图;

图2是本申请实施例一的确定nand闪存读取电压的装置的结构示意图。

具体实施方式

本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。

本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。

此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。

实施例一

如图1所示,本实施例提供一种确定nand闪存读取电压的方法,包括:

步骤s101、确定样本未完全编程块包含的解码失败的页,其中,所述样本未完全编程块为nand闪存中含有未被编程的页的块;

步骤s102、根据获取到的所述nand闪存对应的多个电压组,确定使用每个电压组重读所述解码失败的页时成功解回的页的页数;其中,每个电压组合包括多个读取电压;

步骤s103、根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组。

本实施例中,样本未完全编程块是用于作为样本的未完全编程块,可以预先选定一个或者多个未完全编程块,将这些未完全编程块作为样本未完全编程块,然后通过样本未完全编程块确定用于读取未完全编程块的读取电压组。

本实施例中,解回是指将解码失败的页中的错误数据解回来,当使用某一电压组重读一解码失败的页时,可能会将该页中的错误数据解回来,也可能无法将该页中的错误数据解回来。成功解回的页是指成功将解码失败的页中的错误数据解回来的页。本实施例中的解回也就是将错误数据纠正回来。上述技术方案可以确定用于读取未完全编程块的读取电压组,通过该读取电压组重读未完全编程块的解码失败的页可以提高解回解码失败的页的成功率,从而提高重读的效率,进而可以提高nand闪存的读取效率。

在一种示例性实例中,所述样本未完全编程块的数量为多个;

所述根据获取到的所述nand闪存对应的多个电压组,确定使用每个电压组重读所述解码失败的页时成功解回的页的页数,包括:

根据获取到的所述nand闪存对应的多个电压组,使用所述多个电压组中的每个电压组分别重读所有样本未完全编程块包含的解码失败的页;

统计每个电压组重读所述解码失败的页时成功解回的页的页数;

根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组,包括:

按照每个电压组对应的成功解回的页的页数由高到低的顺序,选择至少一个电压组作为用于读取所述未完全编程块的读取电压组。

在一种示例性实例中,所述方法还包括:

当重读未完全编程块包含的解码失败的页时,使用所述用于读取未完全编程块的读取电压组重读所述解码失败的页。

本实施例中,未完全编码块为nand闪存中含有未被编程的页的块,该未完全编码块可以是样本未完全编码块,也可以除样本未完全编码块以外其外的未完全编码块,也就是说,当确定用于读取未完全编程块的读取电压组重读所述解码失败的页之后,可以通过这个读取电压组重读任何一个未完全编程块包含的解码失败的页。此外,用于读取未完全编程块的读取电压组还可以通过不断学习进行更新,从而不断优化用于读取未完全编程块的读取电压组。

在一种示例性实例中,未完全编程块所述选择至少一个电压组作为用于读取所述未完全编程块的读取电压组之后,所述方法还包括:

当选择两个以上电压组作为用于读取未完全编程块的读取电压组时,根据选择的每个电压组对应的成功解回的页的页数,设置每个电压组的优先级,其中,所述优先级与所述成功解回的页的页数正相关。

在一种示例性实例中,所述方法还包括:

当重读未完全编程块包含的解码失败的页时,按照电压组的优先级由高到低的顺序,使用所述用于读取未完全编程块的读取电压组重读所述解码失败的页。

本实施例中,当用于读取未完全编程块的读取电压组包括多个电压组时,可以为每个电压组设置优先级,当重读未完全编程块包含的解码失败的页时,先使用优先级最高的电压组重读解码失败的页,如果能够将解码失败的页全部解回,则可以不使用其它的电压组,如果还有未被解回的页,则使用优先级次之的电压组重读剩下的解码失败的页。

如图2所示,本实施例还提供一种确定nand闪存读取电压的装置,所述装置包括:存储器10和处理器11;

所述存储器10,用于保存用于确定nand闪存读取电压的程序;

所述处理器11,用于读取执行所述用于确定nand闪存读取电压的程序,执行如下操作:

确定样本未完全编程块包含的解码失败的页,其中,所述样本未完全编程块为nand闪存中含有未被编程的页的块;

根据获取到的所述nand闪存对应的多个电压组,确定使用每个电压组重读所述解码失败的页时成功解回的页的页数;其中,每个电压组合包括多个读取电压;

根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组。

在一种示例性实例中,所述样本未完全编程块的数量为多个;

所述根据获取到的所述nand闪存对应的多个电压组,确定使用每个电压组重读所述解码失败的页时成功解回的页的页数,包括:

根据获取到的所述nand闪存对应的多个电压组,使用所述多个电压组中的每个电压组分别重读所有样本未完全编程块包含的解码失败的页;

统计每个电压组重读所述解码失败的页时成功解回的页的页数;

根据每个电压组对应的成功解回的页的页数,选择至少一个电压组作为用于读取未完全编程块的读取电压组,包括:

按照每个电压组对应的成功解回的页的页数由高到低的顺序,选择至少一个电压组作为用于读取所述未完全编程块的读取电压组。

在一种示例性实例中,所述处理器11,用于读取执行所述用于确定nand闪存读取电压的程序,还执行如下操作:

当重读未完全编程块包含的解码失败的页时,使用所述用于读取未完全编程块的读取电压组重读所述解码失败的页

在一种示例性实例中,所述处理器11,用于读取执行所述用于确定nand闪存读取电压的程序,还执行如下操作:

所述选择至少一个电压组作为用于读取所述未完全编程块的读取电压组之后,当选择两个以上电压组作为用于读取未完全编程块的读取电压组时,根据选择的每个电压组对应的成功解回的页的页数,设置每个电压组的优先级,其中,所述优先级与所述成功解回的页的页数正相关。

在一种示例性实例中,所述处理器11,用于读取执行所述用于确定nand闪存读取电压的程序,还执行如下操作:

当重读未完全编程块包含的解码失败的页时,按照电压组的优先级由高到低的顺序,使用所述用于读取未完全编程块的读取电压组重读所述解码失败的页。

本实施例还提供一种计算机存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行前述任一所述的确定nand闪存读取电压的方法。

示例一

下面通过示例进一步说明本申请的确定nand闪存读取电压的方法。

本示例中,选取某一类型的nand闪存,将该nand闪存中的多个未完全编程块openblock作为样本openblock。

步骤一、确定每个样本未完全编程块包含的有效页,使用默认电压读取每个有效页,确定出现解码失败(eccfail)的页;

假设选取5个样本openblock,包括块1、块2、块3、块4和块5。

其中,块1包括100个页,其中有91页被编程了,其余9个页未被编程,则这91个被编程的页为有效页,出现eccfail的页有8页;

块2包括100个页,其中有90页被编程了,其余10个页未被编程,则这90个被编程的页为有效页,出现eccfail的页有18页;

块3包括100个页,其中有89页被编程了,其余11个页未被编程,则这89个被编程的页为有效页,出现eccfail的页有7页;

块4包括100个页,其中有99页被编程了,其余1个页未被编程,则这99个被编程的页为有效页,出现eccfail的页有16页;

块5包括100个页,其中有95页被编程了,其余5个页未被编程,则这95个被编程的页为有效页,出现eccfail的页有17页。

本示例中,默认电压通常指0偏移的读取值,有效数据是指在nand闪存中写入的主机发送的数据,或者写入的用作标记的数据,这些是需要后续使用的数据,因此将这类数据称为有效数据。

有效数据是相对于无效数据而言,由于nand闪存的特性,有时需要将整个block的数据写满,这时剩下的page若是没有需要写入的数据需,就会在剩下的page中写入随机数据或者数据0,目的只是为了把整个block的数据写满,这些数据没有其它作用,因此将这类数据称为无效数据。

步骤二、根据获取到的nand闪存对应的多个电压组,确定使用每个电压组重读所述解码失败的页时成功解回的页的页数;

本示例中,可以预先获取nand闪存厂商提供的重读表,重读表中记录多个电压组。此外,也可以对厂商提供的重读表进行修改和更新,例如对厂商提供的重读表中的电压组中一个或者多个读取电压修改,还可以在厂商提供的重读表中增加自定义的电压组。

假设当前重读表中包含以下五个电压组,每个电压组中包括7个读取电压,如下述所示:

第一组{0xff,0x05,0x06,0xfa,0x10,0x03,0xfb}、

第二组{0xfc,0x00,0x01,0xfe,0x03,0x03,0xfc}、

第三组{0xfa,0x01,0x06,0xfb,0x15,0x07,0xfc}、

第四组{0xff,0x00,0x01,0xff,0x03,0x04,0xfc}、

第五组{0xef,0x00,0x03,0xfd,0x00,0x03,0xfa}。

本示例中,可以将5个样本openblock分别包含的eccfail的页总和在一起,也就是一共是8+18+7+16+17=66页。然后分别使用五个电压组重读这66个eccfail的页。

假设第一组对应的成功重读的eccfail的页为30页;

第二组对应的成功重读的eccfail的页为45页;

第三组对应的成功重读的eccfail的页为21页;

第四组对应的成功重读的eccfail的页为50页;

第五组对应的成功重读的eccfail的页为61页。

步骤三、按照每个电压组对应的成功解回的页的页数由高到低的顺序,选择至少一个电压组作为用于读取openblock的读取电压组;

本示例中,可以选择一个电压组,也可以选择多个电压组。

如果选择一个电压组,则选择成功重读的eccfail的页的页数最多的电压组,以上述假设为例,则选择第五组,将这个电压组作为用于读取openblock的读取电压组。当后续在使用中,任意openblock中出现eccfail的页时,使用第五组重读eccfail的页。

如果选择多个电压组,则按照成功重读的eccfail的页的页数由高到低的顺序进行选择,假设选择2个电压组,则选择第五组和第四组。当后续在使用中,任意openblock中出现eccfail的页时,使用第五组和第四组重读eccfail的页。在使用第五组和第四组重读eccfail的页时,可以先使用第五组,也可以先使用第四组。

此外,当选择多个电压组时,还可以设置每个电压组的优先级。例如,以上述选择第五组和第四组为例,由于第五组对应的是61页,第四组对应的是50页,则设置第五组的优先级高于第四组的优先级。当后续在使用中,任意openblock中出现eccfail的页时,按照第五组和第四组的优先级的顺序,先使用第五组重读eccfail的页,如果第五组重读之后还有eccfail的页,则使用第四组重读eccfail的页。

通过上述技术方案,可以优化未完全编程块的读取电压组,当openblock出现eccfail的页时使用优化后的读取电压组,就可以提高解码失败的页解回的成功率,避免由于读取电压选取不准确导致的多次重读,从而提高了openblock的读取效率,提升了产品的读取性能和稳定性。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1