存储器设备中的增强的错误校正的制作方法

文档序号:6498121阅读:166来源:国知局
存储器设备中的增强的错误校正的制作方法
【专利摘要】校正存储的数据的方法包括读取存储在非易失性存储器的部分中的数据。该方法包括对于读取的数据的每个特定位位置,响应于检测到读取的数据不同于该特定位位置的相应参考值,更新与该特定位位置相关联的数据错误实例的计数。进行对该部分的读取以及对数据错误实例的计数的更新达特定数量的重复。该方法包括将具有等于重复的该特定数量的数据错误实例的相关联计数的每个位位置识别为复发错误位位置。
【专利说明】存储器设备中的增强的错误校正
[0001] 要求优先权
[0002] 本申请要求来自2011年12月8日在印度提交的专利申请No. 3445/MUM/2011的 优先权,其全部内容合并于此。

【技术领域】
[0003] 本公开大体涉及数据存储。

【背景技术】
[0004] 在存储器设备中存储数据的能力随着技术的进步而改进。例如,闪存设备可以使 能够在半导体器件处非易失性地存储数据,该半导体器件可以包括一个或多个存储器核 心,并且每个核心可以位于相应的存储器裸片上。
[0005] 可能由于对存储器裸片的存储元件的写入、读取、擦除和其他存储器操作而发生 存储元件的磨损。当存储元件经历过度磨损时,其可能不再是可靠的储存元件。
[0006] 可以对存储的数据使用错误校正码来应用错误校正,并且错误校正可以校正已经 篡改了存储的数据的错误。错误校正消耗时间和计算资源。降低错误校正计算时间将得到 更高的计算效率。


【发明内容】

[0007] 在非易失性存储器设备内的存储元件的特定位位置可以被识别为复发 (recurring)错误位位置。响应于对存储在非易失性存储器的部分处的特定数据的请求,在 处于复发错误位位置处的部分内的每个数据位可以改变,并且包括改变的位的该特定数据 可以被发送到错误校正码(ECC)解码器,然后ECC解码器校正该数据并将校正后的数据提 供给请求者。可以通过读取存储器的部分的每个数据位达第一数量的次数并将数据位的每 个读取值与参考值比较,来识别(identify)复发错误位位置。对于第一数量的次数的每次 的读取值不同于参考值的数据的位位置被识别为复发错误位位置。当数据(例如ECC页) 第一次被写到非易失性存储器的部分时,可以识别复发错误位位置。可以存储复发错误位 位置用于在稍后从该非易失性存储器读取该数据时使用。

【专利附图】

【附图说明】
[0008] 图1是配置为识别非易失性存储器中的复发错误位位置的数据存储设备的框图;
[0009] 图2是识别数据存储设备中的复发错误位位置的方法的特定实施例的流程图; [0010] 图3是识别数据存储设备中的复发错误位位置的方法的另一实施例的流程图;
[0011] 图4是识别数据存储设备中的复发错误位位置的方法的另一实施例的流程图;以 及
[0012] 图5是识别数据存储设备中的复发错误位位置的方法的另一实施例的流程图。

【具体实施方式】
[0013] 数据可以存储在非易失性存储器的部分(例如页或块)内。例如,在非易失性存储 器的该部分中的每个存储元件可以存储一位或多位数据。当数据被写到存储器的该部分, 并且稍后从该非易失性存储器的该部分读取时,读取的数据的一位或多位可能不同于原始 写入的数据。例如,可能由该非易失性存储器中的有缺陷的存储元件(例如由于与存储器 单元的有故障的电连接引起的)、由影响存储元件中存储的数据的但是不是由有缺陷的存 储元件导致的诸如编程干扰或读取干扰的物理效应、或者由诸如热噪声或宇宙射线的一个 或多个其他机制而导致有错误的位。
[0014] 特定位位置在从非易失性存储器对相应位的一个或多个读取与被写到非易失性 存储器的位值不一致时被识别为错误位位置。当对于给定数量的连续读取,每个读取值与 写入的数据值不一致时,该特定位位置可以被识别为复发错误位位置。
[0015] 识别复发错误位位置在校正读取错误时可以是有利的。例如,通过将存储器的部 分中存储的数据的第一位位置(例如存储在该存储器的页、字线、错误校正码(ECC)页、块 或者另一部分中的数据的第一位位置)识别为复发错误位位置,当请求该第一位位置的存 储的值时,可以通过改变、即翻转(flip)存储的值来校正该存储的值。
[0016] 每个复发错误位位置的指示符可以被存储在存储器的另一部分中或者存储在另 一存储器中。在从存储器对该数据的随后的读取中,可以通过基于存储的指示符而更新、即 翻转与每个复发错误位位置对应的存储的值来简化错误校正。
[0017] 翻转存储的值通常涉及比通过ECC解码的错误校正更少的计算。为了例示,当复 发错误位位置被识别并且从存储器读取数据(即位值)时,与该复发错误位位置对应的位 值可以被假设为有错误的。可以通过对该位值应用逻辑非(NOT)操作来校正该位值。但是, 使用错误校正编码校正位错误可以包括应用多个计算以确定数据中存在的多个错误、基于 多个计算的结果产生错误位置多项式、以及计算该错误位置多项式的解。计算的错误位置 多项式的解可以指示有错误位的位位置,其然后可以被校正。
[0018] 对读取的数据的错误校正因此被简化,因为改变再复发位错误位置处的位值可以 矫正该数据值的许多或所有错误。任何剩余的错误可以经由以与对原始读取的数据使用 ECC解码相比降低的功耗和降低的等待时间的ECC解码来校正。
[0019] 图1是数据存储设备100的特定实施例的例示。数据存储设备100包括存储器 102。数据存储设备100还包括控制器104和接口 116。控制器104包括处理器108和错误 校正编码(ECC)引擎110。控制器104还包括参考数据存储装置112和数据错误计数存储 装置114。数据存储设备100配置为经由接口 116耦接到主机106。
[0020] 数据存储设备100可以被包括在存储卡中,比如安全数字SD?卡、microSD?· 卡、miniSD. TM 卡(特拉华州威尔明顿的 SD-3C LLC 的商标)、MultiMediaCard. TM(MMC. TM) 卡(弗吉尼亚州阿灵顿的JEDEC固态技术协会的商标)、或者CompactFlash? (CF)卡(力口 利福尼亚州米尔皮塔斯的SanDisk公司的商标)。可替换地,数据存储设备100可以是主机 设备中的嵌入式存储器,作为例示性的例子,比如eMMC? (弗吉尼亚州阿灵顿的JEDEC 固态技术协会的商标)存储器或者eSD存储器。
[0021] 存储器102包括多个存储元件和复发错误位位置存储装置134。存储器102可以 包括多级单元(MLC)存储元件并且还可以包括单级单元(SLC)存储元件。例如,在一个特 定实施例中,存储器102包括字线WL0-WL9,每个字线包括多个MLC存储元件。可替换地,字 线WL0-WL9可以包括SLC存储元件。存储在字线WL0-WL9的一个或多个中的数据的位位置 可以与存储元件在字线中的位置相关。例如,在SLC实现方式中,WL0的每个存储元件可以 存储单个位的数据。为了例示,数据的在位位置0处的位值可以被存储在耦合到WL0和位 线〇 (BL0)的存储元件处,数据的在位位置1处的位置可以被存储在耦合到WL0和BL1的存 储元件处,等等。可替换地,在MLC实现方式中,WL0的每个存储元件可以存储多位数据,因 此可能不具有向SLC例子中那样的在WL/BL位置和位位置之间一对一的对应性。在一个特 定实施例中,复发错误位位置存储装置(storage) 134可以包括SLC存储元件。为了例示, 复发错误位位置存储装置134可以是存储器102的与字线WL0-WL9不同的SLC部分。
[0022] 存储器102可以存储读取模块118、比较器模块120、错误日志更新模块122和复 发错误位位置存储模块124。模块118、120、122和124的每个可以包括处理器可执行指令。
[0023] 控制器104配置为访问存储器102。控制器104可以对存储器102内的特定位位 置进行写入、读取、另一存储器操作或其任意组合。处理器108可以执行模块118、120、122 或124的任意一个中的处理器可执行指令。例如,当处理器108执行读取模块118中的处 理器可执行指令时,可以从存储器102读取一位或多位数据。
[0024] 在操作中,控制器104可以向存储器102的包括一个或多个字线的部分、比如代表 部分103写入数据。例如,控制器104可以将数据写到存储器102的部分103内的字线WL0 和WL1中的每个位位置。写到字线WL0和WL1的数据还可以暂时存储在参考数据存储装置 112 中。
[0025] 在将该数据写到存储器102的部分103之后,控制器104可以识别复发错误位位 置以帮助稍后对该数据的读取。例如,复发错误位位置可以被识别为由来自主机设备106 的写入命令触发的数据写入操作的部分。作为另一例子,复发错误位位置可以被识别为在 垃圾收集操作、存储器刷新操作或者另一存储器操作期间的数据写入的部分。响应于将数 据写到字线WL0和WL1,处理器108可以通过将从WL0和WL1读取的数据(即被写到WL0和 WL1的可能包括一个或多个错误的数据的表示)与存储在参考数据存储装置112中的参考 数据比较来识别复发错误位位置。例如,控制器104可以命令存储器102进行一系列读取 操作以从字线WL0和WL1的存储元件取回位值用于与存储在参考数据存储装置112中的数 据比较。
[0026] 处理器108可以将取回的数据表示的每个位与参考数据存储装置112中的相应位 比较。例如,在读取的数据中的位位置0处的位值可以与存储在参考数据存储装置112中 的位位置0处的相应位值126比较。如果在该数据表示中的位位置0处的位值与位值126 一致,则数据错误计数存储装置114中的位错误计数130不递增。如果在该数据表示中的 位位置0处的位置不同于位值126,则位错误计数130递增。
[0027] 处理器108可以进行在字线0和字线1中存储的数据的每个位位置处的值与在参 考数据存储装置112处存储的相应参考位值的比较。其中参考值不同于在相应的位位置处 的数据表示的每个实例导致递增数据错误计数存储装置114中的相应位错误计数。控制器 114可以将该数据表示的每个位值与存储在参考数据存储装置112中的相应参考值比较并 且当在存储的数据表示和相应的参考值之间存在差别时可以递增相应的位错误计数。
[0028] 在已经对从字线WL0和WL1读取的数据表示的每个位位置进行比较之后,控制器 104可以第二次读取字线WL0和WL1中的数据表示。在第二次读取数据表示之后,可以在每 个位位置和参考数据存储装置112中的相应的参考值之间进行比较。可以在数据错误计数 存储装置114处维持每个位位置的位错误计数。例如,当确定在特定位位置处的存储的数 据表示和相应的参考值之间的差别时,可以递增相应的位错误计数。处理器108可以例如 通过执行错误日志更新模块122中的指令来更新数据错误计数存储装置114中的位错误计 数。可以重复对字线WL0和WL1的读取,并且可以在每个读取之后进行比较和数据错误计 数存储装置114更新。控制器104可以进行对字线WL0和WL1的总共特定数量的读取以及 随后的与相应的参考值的比较。例如,控制器104可以进行对字线WL0和WL1的总共20个 读取,并且可以对于20个读取的每个比较每个读取的位值与参考数据存储装置112中的相 应参考值。
[0029] 在完成特定数量的重复即读取和比较之后,对于每个位位置,执行复发错误位位 置存储模块122中的指令的处理器108将每个错误计数与读取的特定数量比较。例如,包 括对WL0的20个读取和对WL1的20个读取的总共20个重复可以由处理器108执行。尽 管使用20个重复作为例示性例子,但是特定数量的重复替代地可以是例如大于1个重复、 至少15个重复、至少50个重复或者另一数量的重复。当与任何特定位位置相关联的数据 错误计数等于重复的特定数量(例如20个重复)时,指示在每个读取之后以及在每个重复 期间所考虑的特定位位置与参考值相比已经示出数据表示中的错误,该特定位位置被识别 为复发错误位位置。处理器108可以存储与该特定位位置相关联的指示该特定位位置是复 发错误位位置的指示符。该指示符可以存储在复发错误位位置存储装置134中。复发错误 位位置存储装置134可以在存储器102的SLC部分中以与存储器102的MLC部分中的复发 错误位指示符的存储相比提供经过长的时间段而维持准确性的更大可能性。
[0030] 除了将数据写到存储器102的部分103之外,控制器104还可以将数据写到存储 器102的其他部分。例如,作为例示性的非限制例子,部分可以包括诸如WL6的单个字线、诸 如字线WL2和WL3的两条字线或者多于两条字线。在将数据写到存储器102的每个实例, 控制器104可以另外将该数据存储在参考数据存储装置112处。因此,参考数据存储装置 112可以用作被写到存储器102的数据的暂时存储,并且可以提供用于与从存储器102读回 的数据表示的比较的参考值。
[0031] 例如,每次发生向存储器102的部分的写入时,数据错误计数存储装置114可以被 初始化,例如所有数据错误计数可以被复位到0。作为数据写入操作的部分,在数据已被写 到存储器102的部分之后,可以从存储器102的该部分读取该数据,并且控制器104可以执 行读取的数据中的位值和存储在参考数据存储装置112中的位值之间的比较。与每个位位 置对应的位错误计数可以维持在数据错误计数存储装置114处,并且处理器108可以在每 次确定在特定位位置处的读取的数据的位置和在参考数据存储装置112处存储的相应参 考值之间的差别时更新位错误计数。在进行了预定数量的读取和比较之后,可以通过包括 与被识别为复发错误位位置的每个位位置对应的指示符来更新复发错误位位置存储装置 134。
[0032] 因此,当数据被写到存储器102时,可以测试存储的数据(例如重复地读取并与参 考值比较)来确定哪些位位置是复发错误位位置,并且可以将每个复发错误位位置的指示 符存储在复发错误位位置存储装置134处。例如,被写到存储器102的每个部分的数据可 以在将该数据写到该部分的每次发生时被测试。
[0033] 除了作为对存储器102的数据写入操作的部分而确定复发错误位位置之外,在另 一实现方式中,可以作为测试整个存储器102的部分而确定复发错误位位置。例如,可以将 测试数据写到存储器102的每个部分,并且可以识别从每个部分读取的测试数据中的复发 错误位位置。可以进行对存储器102的特定部分的随后写入,并且可以基于存储在复发错 误位位置存储装置134处的指示符至少部分地校正在写入之后的随后的读取。在测试实现 方式中,可以使用诸如块或者块组的存储器的更大的部分来确定复发错误位位置。
[0034] 可以使用识别的复发错误位位置来至少部分地校正从存储器102读取的数据。例 如,响应于对诸如存储在字线WL0和WL1中的数据的存储在存储器102的部分中的特定数 据的读取请求,可以校正每个复发错误位位置中的预期的错误,并且可以将请求的数据发 送到ECC引擎110以被解码。ECC引擎110可以检测和校正在存储器102的存储该请求的 数据的部分内的另外的错误。通过在将取回的数据发送到ECC引擎110之前校正每个复发 错误位位置,可以得到对ECC引擎110的更有效的使用,因为在得到的数据中ECC引擎110 可以具有更少的错误来检测和校正。
[0035] 图2是可以在图1的数据存储设备100的控制器104中进行的校正存储的数据 的方法的特定实施例的例示。参考图2,在201,重复数量η被初始化为值1。在202,读取 存储在非易失性存储器的第一部分中的数据。例如,可以读取存储在图1的存储器102的 WL0和WL1中的数据。在204,对于读取的数据的每个特定位位置,可以响应于检测到读取 的位值不同于该特定位位置的相应参考位值而更新(即递增)与该特定位位置相关联的位 错误实例的计数。例如,响应于检测到从图1的存储器102读取的在位位置0处的位值不 同于参考值126,可以递增位错误计数130。如果在206重复数量η不等于重复的特定数量 N TQT (例如,15个重复、20个重复、50个重复或者另一数量的重复),则在207,递增η,并且在 202再次读取该非易失性存储器的第一部分中存储的数据。
[0036] 如果在206重复数量η等于NTQT (即所有重复都完成),则前进到208,具有等于重 复的特定数量NTOT的数据错误实例的相关联的计数的每个位位置被识别为复发错误位位 置。例如,在图1中,如果存储在位错误计数130中的值等于N TOT,则位位置0被识别为复发 错误位位置。在读取的数据中位位置〇是复发错误位位置的指示可以被存储在复发错误位 位置存储装置134中。该方法结束于210。
[0037] 通过确定哪些位位置是复发错误位位置,可以在稍后读取数据时校正与复发错误 位位置对应的位置。因此可以在将该数据提供给ECC解码器之前校正出现在该数据中的错 误的有效(significant)部分。因此,与对从存储器原始读取的数据的ECC解码相比,对部 分校正的数据的ECC解码可以消耗更少的功率并且可以更迅速地完成。
[0038] 图3是在诸如图1的数据存储设备100的数据存储设备处存储数据的方法的特定 实施例。在302,进行对存储在非易失性存储器的部分中的数据的第一读取以产生第一读 取数据。例如,可以从存储器102的WL0读取该第一读取数据并将其提供给图1的控制器 104。
[0039] 在304,可以通过将该第一读取数据与参考数据比较来确定第一组错误位位置。例 如,可以将该第一读取数据与存储在图1的参考数据存储装置112处的数据比较,并且可 以将第一组错误位位置识别为其中该第一读取数据不匹配于存储在参考数据存储装置112 处的数据的位位置。
[0040] 在306,可以进行对存储在该非易失性存储器的该部分中的数据的第二读取以产 生第二读取数据。例如,可以从存储器102的WL0读取该第二读取数据并将其提供给图1 的控制器104。在308,可以通过将该第二读取数据与该参考数据比较来确定第二组错误位 位置。例如,可以将该第二读取数据与存储在图1的参考数据存储装置112处的数据比较, 并且可以将第二组错误位位置识别为其中第二读取数据不匹配于在参考数据存储装置112 处存储的数据的位位置。
[0041] 在310,基于准则从第一组错误位置和第二组错误位值识别该数据的复发错误位 位置。例如,该准则可以指定在该第一组错误位位置中和该第二组错误位位置中包括的每 个特定错误位位置被识别为复发错误位位置。
[0042] 在另一例子中,进行对该数据的包括第一读取和第二读取的多个读取以产生多个 读取数据。对于每个读取数据,通过将该读取数据与参考数据比较而确定相应组的错误位 位置。以满足指定在各组的错误位位置中包括特定位位置的实例的计数与读取总计数的特 定比率的阈值准则为条件,该准则可以将该特定位位置识别为复发错误位位置。为了例示, 该阈值准则可以指示如果位位置是18/20组错误位置中的错误位位置(即,进行20个读取 以产生20组错误位置,并且在在该20组错误位置中的至少18组中出现相同的位位置),则 该位位置可以被识别为复发错误位位置。可以基于计算、模拟、实验结果或其任意组合,以 通过考虑到复发错误位位置的可能的错误来识别以及存储复发错误位位置指示符的成本, 而识别复发错误位位置,以确定提供整体增强的错误校正的阈值比率来确定该阈值比率。 在一些实施例中,该阈值比率可以等于1(例如20/20)。在其他实施例中,该阈值比率可以 小于1。
[0043] 图4是在诸如图1的数据存储设备100的数据存储设备处存储数据的方法的特定 实施例。例如,该方法可以由控制器104结合在图1的存储器102中存储数据而进行。在 402,重复数量η被初始化为η = 1。在404,对位位置进行参考的整数索引i被初始化为值 1。在406,读取存储在位位置中的数据。例如,在图1中,执行读取模块118中的指令的控 制器104可以读取位位置0中的数据(例如存储在存储器102的WL0/BL0处的存储元件中 的数据位)。作为例子,控制器104可以通过从存储器102取回从WL0读取的一页或多页数 据并解析读取的数据,以识别与该读取的数据的位位置〇对应的位值,来读取与位位置〇对 应的数据。
[0044] 在408,进行读取的位置与对应于位位置i的参考值的比较。例如,执行比较器模 块120中的指令的控制器104可以比较位位置0中的位值与存储在参考数据存储装置112 中的参考值126。如果读取的位值不同于相应的参考值,则在410,更新即递增与该特定位 位置相关联的位错误实例的计数。例如,如果与位位置〇对应的读取的位值不同于参考值 126,则递增存储在位错误计数130中的值。在408,如果读取的位值不是不同于参考数据, 则不递增位错误实例的计数。
[0045] 在412,确定是否已经考虑了所有的位位置(即,i = i = iTQT,其中iTQT是位位置 的总数)。在414,如果i〈i = iTra,则索引i递增,并且在406读取下一顺序的位位置i中 的数据。否则,如果i = iTOT,即该存储器的部分内的所有位位置i已经与相应的参考值比 较,则在416确定重复数量η是否等于重复的总数NTra。如果还没有满足重复的总数NTOT (即 N尹NTQT),则在418,递增N,并且在404,初始化位位置索引i,并且重复对每个位位置的读 取以及与相应的参考值的比较。
[0046] 返回到416,如果已经满足重复的总数NTQT (即N = NTQT),则在420,初始化位位置 i。在422,在每个位置i,将位错误实例的计数与NTra比较。对于特定位置i,如果位错误实 例的计数等于N TOT,则在424,将该特定位位置识别为复发错误位位置。例如,在图1中,通 过将与位位置0处的位值相关联的数据错误计数130与重复的特定数量比较,位位置0可 以被识别为复发错误位位置,并且与位位置〇相关联的指示符可以被存储在复发错误位位 置存储装置134中。前进到426,在426,确定是否已经考虑了所有的位位置i以确定它们 是否是复发错误位位置。在426,该方法评估i是否等于i TOT。如果没有考虑所有的位位置 i,则在428,递增索引i,并且返回到422,对于下一顺序的位位置i确定位错误实例的相应 计数是否等于NTQT。否则,如果位错误实例的计数等于N TQT,则在424,该位位置被识别为复 发错误位位置。
[0047] 如果对于位位置i数据错误实例的计数不等于NTOT,则在422,位位置i不是复发 错误位位置,并且前进到426,确定是否已经考虑了所有的i值。如果没有对所有的i值考 虑它们是否是复发错误位位置,则在428,将索引i递增,并且在422,对下一顺序的位位置 测试是否位错误实例的相关联的计数等于N tot。
[0048] 在一个特定实施例中,在识别了每个复发错误位位置之后,在430,响应于读取数 据的请求,可以通过改变即翻转与每个复发错误位位置对应的位值来产生更新后的数据。 翻转与每个复发错误位位置对应的位置可以减少随后的比如ECC解码器中的错误校正,因 为与识别的复发错误位位置对应的存储的值在ECC解码之前被校正。在432,可以在ECC解 码器处解码更新后的数据。该方法结束于434。
[0049] 图5例示在诸如图1的数据存储设备100的数据存储设备处存储数据并且使用与 图4的方法相比减少的总数量的读取和比较来确定复发错误位位置的方法的特定实施例。 在502,重复数量η被初始化为0。另外,所有错误计数被复位到0。在502,读取列表初始 地包括所有位位置i TOT。例如,图1的控制器104可以通过初始地构成指示要从存储器102 读取的数据的所有位位置的列表(例如单独链接的列表)来初始化并维持读取列表。尽管 描述为列表,但是在其他实施方式中,替代地可以是用诸如阵列或者位串的另一数据结构。
[0050] 在504,递增重复数量η。在506,读取在读取列表上的每个位位置中的数据。在 508,将对于特定位位置的读取的位值与相应的参考数据比较。例如,在图1中,可以将对 于位位置0的读取的位置与相应的参考值126比较。如果读取的位置等于该参考值,则在 512,从读取列表中移除位位置i。因此,其中读取的位置等于相应的参考值的任何比较导致 该特定位位置被从读取列表、即可能的复发错误位位置的列表中删除,并且在随后的重复 中不测试该特定位位置。
[0051] 如果对于位位置i的读取的位值等于相应的参考值,则在514,该方法对于第η重 复评估该读取列表中的所有位位置是否都已经与相应的参考值比较。如果该读取列表中的 另外的位位置还没有与其相应的参考值比较,则在516该方法前进到该读取列表中出现的 下一位位置,并且返回到508。
[0052] 在510,确定是否所有的重复都已经完成。如果在所有重复完成之前要完成另外的 重复(即η尹NTOT),则在520,返回到读取列表中的第一剩余位位置,该方法然后返回到504 并且将重复计数器η递增。通过考虑存储的数据表示并将读取的值与相应的参考值比较来 考虑在读取列表上剩余的每个位位置。
[0053] 在已经完成所有读取之后,即n = NTOT,在读取列表上的每个剩余的位位置被识别 为复发错误位位置。在522,存储识别的复发错误位位置的指示符。指示符可以存储在例如 图1的复发错误位位置存储装置134中。
[0054] 与图4的方法相比,从读取列表移除其读取值等于参考值的每个位位置可以减少 读取和比较的总数。响应于读取值不同于相应的参考值的每个实例,特定位位置被表示为 复发错误位位置。通过从读取列表移除具有其中读取值等于参考值的实例的位位置,与图4 的方法相比,对剩余的读取列表条目的随后的读取和比较的数量可以减少。减少读取和比 较可以减少处理使用,得到对控制器的更有效的使用。
[0055] 尽管在此绘出的各种组件被例示为块组件并以一般术语描述,但是这样的组件可 以包括微处理器、状态机或者配置为使能图1的数据存储设备100的其他电路以进行属于 这样的组件的特定功能或者其任意组合。例如,图1的控制器104可以包括诸如硬件控制 器、状态机、逻辑电路或者另一结构的物理组件以管理数据存储设备中的磨损均衡以及将 数据从存储器裸片传送到存储器堆叠的另一存储器裸片。
[0056] 或者,或另外,图1的数据存储设备100可以包括可以由控制器104执行来实现读 取、比较、更新和存储中的一个或多个功能的可执行指令。这些指令可以存储在诸如存储器 102的非易失性存储器中或者随机存取存储器中。例如,指令可以在读取模块118、比较器 模块120、错误日志更新模块112和复发错误位位置存储模块124中的一个或多个内,其每 个可以存储在图1的存储器102中。或者,或另外,由控制器执行的可执行指令可以存储在 不是存储器102的部分的单独的存储器处,比如只读存储器(ROM)。
[0057] 数据存储设备100可以被包括在配置为选择性地耦合到一个或多个外部设备的 便携式设备中。数据存储设备1〇〇可以是可移除的,比如通用串行总线(USB)驱动器或存 储卡。或者,数据存储设备100可以附接或者嵌入在一个或多个主机设备内,比如在便携式 通信设备的外壳内。例如,数据存储设备100可以在诸如无线电话、个人数字助理(PDA)、游 戏设备或控制台、便携式导航设备、接收机设备或者使用内部非易失性存储器的其他设备 的封装的装置内。数据存储设备100可以包括诸如闪存(例如NAND、N0R、多级单元(MLC)、 划分位线N0R(DIN0R)、AND、高电容耦合比(HiCR)、非对称无接触晶体管(ACT)或者其他闪 存)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPR0M)、只读存储 器(ROM)、一次可编程存储器(0ΤΡ)或任意其他类型的非易失性存储器的非易失性存储器。
[0058] 在此所述的实施例的例示意图提供对各种实施例的一般理解。可以利用并从本公 开得到其他实施例,使得可以不脱离本公开的范围而做出结构和逻辑上的替换和改变。本 公开意图覆盖对各种实施例的任意以及所有随后的适应或变型。因而,本公开和附图将被 认为是例示性的而不是限制性的。
【权利要求】
1. 一种方法,包括: 读取存储在非易失性存储器的部分中的数据; 对于读取的数据的每个特定位位置,响应于检测到读取的数据不同于该特定位位置的 相应参考值,更新与该特定位位置相关联的数据错误实例的计数; 其中进行对该部分的读取以及对数据错误实例的计数的更新达特定数量的重复;以及 将具有等于重复的该特定数量的数据错误实例的相关联计数的每个位位置识别为复 发错误位位置。
2. 如权利要求1所述的方法,还包括将所述复发错误位位置的每个的指示符存储在该 非易失性存储器中。
3. 如权利要求2所述的方法,其中每个指示符被存储在所述非易失性存储器的单级单 元(SLC)部分中,该SLC部分不同于所述部分。
4. 如权利要求1所述的方法,其中从所述部分的不同的存储元件读取所述数据的每 位,以及其中所述部分的每个存储元件是多级单元(MLC)元件。
5. 如权利要求1所述的方法,其中所述非易失性存储器是闪存。
6. 如权利要求1所述的方法,其中所述非易失性存储器是NAND闪存。
7. 如权利要求1所述的方法,其中响应于向所述非易失性存储器的所述部分写入参考 数据而识别所述复发错误位位置。
8. 如权利要求7所述的方法,其中响应于接收到存储所述参考数据的请求而向所述部 分写入所述参考数据。
9. 如权利要求1所述的方法,该方法还包括响应于接收到读取所述数据的请求,通过 改变在每个复发错误位位置处的位值来产生更新后的数据。
10. 如权利要求9所述的方法,还包括在错误校正编码(ECC)解码器处解码所述更新后 的数据。
11. 如权利要求1所述的方法,其中重复的特定数量至少是十五。
12. 如权利要求1所述的方法,其中重复的特定数量至少是五十。
13. -种数据存储设备,包括: 非易失性存储器,包括包含多个位位置的部分;以及 控制器,该控制器配置为在进行向该非易失性存储器的该部分写入数据的写入操作之 后: 读取在该非易失性存储器的该部分的所述多个位位置的每个处存储的位值; 对于所述多个位位置的每个特定位位置,响应于检测到从该特定位位置读取的位值不 同于该特定位位置的相应参考值,更新与该特定位位置相关联的数据错误实例的计数,其 中进行读取以及对数据错误实例的计数的更新达特定数量的重复,其中重复的该特定数量 大于一;以及 将具有等于重复的该特定数量的数据错误实例的相关联计数的每个位位置识别为复 发错误位位置。
14. 如权利要求13所述的数据存储设备,其中所述控制器还配置为存储每个复发错误 位位置的指示符,每个指示符识别相应的位位置。
15. 如权利要求13所述的数据存储设备,其中每个指示符存储在所述非易失性存储器 的单级单元(SLC)部分中。
16. 如权利要求13所述的数据存储设备,其中从所述部分的不同的存储元件读取每个 位值,以及其中每个存储元件是多级单元(MLC)元件。
17. 如权利要求13所述的数据存储设备,其中响应于向所述部分写入参考数据,识别 所述复发错误位位置。
18. 如权利要求13所述的数据存储设备,其中所述控制器还配置为响应于接收到读取 所述数据的请求而读取所述位值。
19. 如权利要求18所述的数据存储设备,其中响应于接收到读取所述数据的请求,所 述控制器还配置为通过改变在每个复发错误位位置处的位值来产生更新后的数据,所述更 新后的数据包括改变的位值。
20. 如权利要求19所述的数据存储设备,其中所述控制器还配置为将包括每个位位置 的每个值的更新后的数据传送到错误校正编码(ECC)解码器。
21. 如权利要求13所述的数据存储设备,其中所述非易失性存储器是NAND闪存。
22. -种方法,包括: 进行对存储在非易失性存储器的部分中的数据的第一读取以产生第一读取数据; 通过将该第一读取数据与参考数据比较而确定第一组错误位位置; 进行对存储在所述非易失性存储器的所述部分中的数据的第二读取以产生第二读取 数据; 通过将该第二读取数据与所述参考数据比较而确定第二组错误位位置;以及 基于准则从第一组错误位置和从第二组错误位置识别复发错误位位置。
23. 如权利要求22所述的方法,其中所述准则指定被识别为复发错误位位置的每个特 定位位置是以以下为条件:该特定位位置被包括在所述第一组错误位位置和所述第二组错 误位位置中。
24. 如权利要求22所述的方法,还包括: 进行对所述数据的多个读取,包括第一读取和第二读取,以产生多个读取数据; 对于每个读取的数据,通过将读取的数据与所述参考数据比较而确定相应组的错误位 位置;以及 其中以以下为条件,所述准则将特定位位置识别为复发错误位位置:满足阈值准则,该 阈值准则指定所述组的错误位位置中包括该特定位位置的实例的计数与读取的总数的特 定比率。
【文档编号】G06F11/07GK104094237SQ201280068965
【公开日】2014年10月8日 申请日期:2012年11月9日 优先权日:2011年12月8日
【发明者】S.赛弗加潘迪安 申请人:桑迪士克科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1