根据固态存储器的擦除计数进行误差校正的方法和装置的制作方法

文档序号:6594280阅读:248来源:国知局
专利名称:根据固态存储器的擦除计数进行误差校正的方法和装置的制作方法
技术领域
本发明涉及用于校正在从诸如闪存的存储器读取的数据中的误差的装置、方法和 计算机介质。
背景技术
非易失性存储器是可以保持它所存储的数据而无需电源的存储器类型。存在具 有不同的读/写和擦除能力、访问时间、数据保持(retention)、数据持续周期(endurance cycle)等的几种类型的非易失性存储器。电可擦除可编程只读存储器(EEPROM)能够在每 字节的级别上执行读写操作,这意味着可以单独读和写每个存储器位置。由快闪型浮置栅极晶体管或单元组成的闪存是在功能上和性能上与EPROM存储 器相似的非易失性存储器;闪存具有相对不昂贵的优势,虽然它工作在某些限制下。不能向 在闪存上之前写过的位置重写而不首先擦除整个存储器部分,即,必须在可以再次编程闪 存单元之前擦除它们(例如编程到“1”)。闪存可以仅仅擦除相对大的单元组,其通常被称 为擦除块(例如,对于许多当前的商业设备,大小为16KB至2MB——预期随着具有更高容量 的设备变得商业可用时,擦除块的大小将在未来增加)。闪存器件中的误差校ιΗ闪存以及其他存储器(例如磁存储器、光存储和易失性存储器)的一个显著特征 是这些存储器是“破坏的(corrupting)介质”——一个或多个误差有时被引入到被写到存 储器的原始数据中,使得当从存储器读回数据时,可能在“被翻转(flipped) ”状态中读取一 个或多个信息比特。为了克服该现象并使NAND型存储器可由实际的应用使用,结合这些存储器使用 纠错码(ECC)是常用的技术。正存在对于处理闪存器件中以及包括除了闪存之外的固态存储器的存储器件中 的误差校正的改善的技术和装置的需要。器件架构的讨论图IA(现有技术)是闪存存储器件260 (现有技术)的框图。闪存存储器件包括 闪存270以及可操作来读取数据并将数据写到闪存270的快闪控制器280。在这里使用 术语“编程(program) ”、“编程(programming) ”、“被编程”和“可编程”可分别与术语“写 (write) ”、“写(writing) ”、“被写”和“可写”互换,以表示将数据存储在闪存中。闪存存储器件的一个例子是“外围快闪存储器件”。在计算领域中公知的是诸如 USB闪存驱动器(UFD)、PC卡以及与数字相机、音乐播放器、手持和掌上计算机以及蜂窝电 话一起使用的小存储卡的形式的外围闪存器件。
图IB(现有技术)是与主机设备310(例如,膝上型或台式或手持计算机、数字相 机、移动电话、音乐播放器和视频游戏控制台)“耦接”或者被配置为经由器件侧接口 250与 主机设备310交换数据的外围闪存存储器件260* (星号表示闪存存储器件是外围闪存存储 器件)的框图。外围闪存存储器件260*和主机设备310使用主机侧接口 350和器件侧接 口 250 (例如,分别是USB或SD接口)经由通信链路300相互通信。虽然在附图中将外围闪存存储器件260*图示为与主机设备310相分离的器件,但 是要认识到,在一些实现方式中,可以将闪存存储器件260*部署在主机设备310的框架内。在一个例子中,闪存存储器件260*向主机设备310提供数据读和数据写服务。通 过快闪控制器280将闪存存储器件260*从主机设备310接收的数据写到闪存270。此外, 响应于由闪存存储器接收的“数据读”请求,快闪控制器280从闪存270读取数据。可以在“读取时间”或任何稍后的时间校正所读数据中的误差。可以至少部分地 由快闪控制器280、至少部分地由主机设备310 (例如,通过主机侧处理器320执行RAM 330 中的可执行代码340或以任何其他方式)、以及任何其他位置并以任何其他方式来执行误 差校正。技术人员将认识到,“外围闪存器件”不是唯一一类闪存存储器件。例如,某些移动 电话、台式或膝上型计算机、PDA设备或其他电子设备也可以包括闪存和快闪控制器,并且 可能不是一定要被配置为与主机设备耦接和/或为主机设备提供数据读服务和/或数据写 服务。技术人员将认识到,在图1A-1B中描述的闪存器件仅仅是一类外围非易失性存储 存储器器件,并且其他存储器器件可以包括其他类型的固态存储器,比如光存储器和磁阻 (magnetoresistive)随机存取存储器(MRAM)。

发明内容
各种实施例解决了这些和相关问题,在这里提供了包括方法和系统的那些实施例 的例子。现在第一次公开一种用于处理误差校正的方法,该方法包括a)维持固态存储器 的至少一个块的擦除计数;b)从具有相关联的擦除计数的存储器块之一读取数据;C)根据 所述存储器块的相关联擦除计数,实现以下的至少之一 i)选择第一解码器和第二解码器 之一;以及ii)选择第一解码器模式和第二解码器模式之一 ;d)仅使用所选择的解码器或 所选择的模式来校正所读取的数据中的误差。在一些实施例中,固态存储器是闪存。在一些实施例中,由固态存储器所驻留的存储器件的器件控制器来执行维持、读 取、影响和校正中的至少一个。在一些实施例中,存储器件经由设备间接口操作地与主机设备耦接,以及其中该 方法还包括e)从存储器件向主机设备发送误差校正过的数据。现在第一次公开一种用于处理误差校正的方法,该方法包括a)维持固态存储器 的至少一个块的擦除计数;b)从具有相关联的擦除计数的存储器块之一读取数据;C)根 据所述相关联的擦除计数,实现以下的至少一个i)决定A)尝试使用较轻权重解码器来 校正误差,还是B)尝试仅使用比所述较轻权重解码器更重的较重权重解码器来校正误差;
7ii)决定A)尝试使用较快解码器来校正误差,还是B)尝试仅使用比所述较快解码器更慢 的较慢解码器来校正误差;iii)决定A)尝试使用具体解码器的较轻权重模式来校正误 差,还是B)尝试仅使用所述具体解码器的比所述较轻权重模式更重的较重权重模式来校 正误差;以及iv)决定A)尝试使用具体解码器的较快模式来校正误差,还是B)尝试仅使 用所述具体解码器的比所述较快模式更慢的较慢模式来校正误差;以及d)根据所述决定 中的至少一个,校正在读取的数据中的误差。在一些实施例中,由固态存储器所驻留的存储器件的器件控制器来执行维持、读 取、一个或多个决定以及校正中的至少一个。现在第一次公开一种用于处理误差校正的方法,该方法包括a)维持固态存储器 的至少一个块的擦除计数;b)从具有相关联的擦除计数的存储器块之一读取数据;C)根据 所述相关联的擦除计数,确定以下的至少一个i)模式转换条件;以及ii)误差校正尝试资 源预算;d)使用误差校正参数的第一集合进行校正在读取的数据中的误差的第一尝试;以 及e)在校正误差的所述第一尝试不成功的情况下,使用误差校正参数的第二集合进行校 正在读取的数据中的误差的第二尝试,所述第二尝试根据如下至少之一而定i)所述第一 尝试对所述模式转换条件的触发;以及ii)所述第一尝试对所述资源预算的耗尽。在一些实施例中,i)该方法包括确定模式转换条件;以及ii)第二尝试根据至少 第一尝试对模式转换条件的触发而定。在一些实施例中,i)该方法包括确定资源预算;以及ii)第二尝试根据至少第一 尝试对资源预算的耗尽而定。在一些实施例中,从由以下构成的组中选择至少一个误差校正参数i)用于从多 个解码器中选择解码器的选择参数(例如,描述解码器“重度(heaviness)”或“解码器速 度”的参数);ii)用于从多个解码器模式中选择给定解码器的解码器模式的解码器模式参 数(例如,描述解码器模式“重度”或解码器模式“速度”的参数);iii)所读取的数据的比 特概率值;iv)软比特的数量;以及ν)解码器总线宽度。在一些实施例中,从由以下构成的组中选择模式转换条件i)超时条件;ii)迭代 数量条件;以及iii) CPU周期量数条件。在一些实施例中,从由以下构成的组中选择误差校正尝试资源预算i)时间预 算;ii) CPU周期预算;以及iii)迭代预算。在一些实施例中,由固态存储器所驻留的存储器件的器件控制器来执行维持、读 取、确定以及一个或多个尝试中的至少一个。现在第一次公开一种用于处理误差校正的方法,该方法包括a)维持存储器的至 少一个块的擦除计数;b)从具有相关联的擦除计数的存储器块之一读取数据;C)根据所述 相关联的擦除计数,实现以下的至少一个i)确定针对所述数据要读取的软比特的数量; 以及ii)选择解码总线宽度大小;以及d)在确定所述软比特的数量的情况下,读取针对所 述数据的所述数量的软比特;以及e)尝试使用以下的至少一个来校正所述数据中的误差 i)所选择的解码总线宽度大小;以及ii)读取的软比特。在一些实施例中,i)该方法包括确定针对数据要读取的软比特数量,并读取针对 该数据的该数量的软比特;以及ii)尝试包括尝试使用至少所读取的软比特来校正数据中 的误差。
在一些实施例中,i)该方法包括选择解码总线宽度大小;以及ii)尝试包括尝试 使用所读取的解码总线宽度大小来校正数据中的误差。在一些实施例中,由固态存储器所驻留的存储器件的器件控制器来执行维持、一 个或多个读取、确定、选择和尝试中的至少一个。现在第一次公开一种数据存储器件,包括a)固态存储器;以及b)器件控制器, 工作来i)维持所述固态存储器的至少一个块的擦除计数;ii)从具有相关联的擦除计数 的存储器块之一读取数据;iii)根据该存储器块的相关联的擦除计数,实现以下的至少一 个A)选择第一解码器和第二解码器之一;以及B)选择第一解码器模式和第二解码器模式 之一;以及iv)仅使用所选择的解码器或所选择的模式来校正在读取的数据中的误差。现在第一次公开一种数据存储器件,包括a)固态存储器;以及b)控制器,工作 来i)维持所述固态存储器的至少一个块的擦除计数;ii)从具有相关联的擦除计数的存 储器块之一读取数据;iii)根据所述相关联的擦除计数,实现以下的至少一个A)决定1) 尝试使用较轻权重解码器来校正误差,还是II)尝试仅使用比所述较轻权重解码器更重的 较重权重解码器来校正误差;B)决定1)尝试使用较快解码器来校正误差,还是II)尝试 仅使用比所述较快解码器更慢的较慢解码器来校正误差;C)决定1)尝试使用具体解码器 的较轻权重模式来校正误差,还是II)尝试仅使用所述具体解码器的比所述较轻权重模式 更重的较重权重模式来校正误差;以及D)决定1)尝试使用具体解码器的较快模式来校 正误差,还是II)尝试仅使用所述具体解码器的比所述较快模式更慢的较慢模式来校正误 差;以及iv)根据所述决定中的至少一个,校正在读取的数据中的误差。现在第一次公开一种数据存储器件,包括一种数据存储器件,包括a)固态存储 器;以及b)器件控制器,工作来i)维持所述固态存储器的至少一个块的擦除计数;ii)从 具有相关联的擦除计数的存储器块之一读取数据;iii)根据所述相关联的擦除计数,确定 以下的至少一个A)模式转换条件;以及B)误差校正尝试资源预算;iv)使用误差校正参 数的第一集合进行校正在读取的数据中的误差的第一尝试;以及ν)在校正误差的所述第 一尝试不成功的情况下,使用误差校正参数的第二集合进行校正在读取的数据中的误差的 第二尝试,所述第二尝试根据以下的至少一个而定A)所述第一尝试对所述模式转换条件 的触发;以及B)所述第一尝试对所述资源预算的耗尽。现在第一次公开一种数据存储器件,包括a)固态存储器;以及b)器件控制器,工 作来i)维持所述固态存储器的至少一个块的擦除计数;ii)从具有相关联的擦除计数的 存储器块之一读取数据;iii)根据所述相关联的擦除计数,实现以下的至少一个:A)确定 针对所述数据要读取的软比特的数量;以及B)选择解码总线宽度大小;以及iv)在确定所 述软比特的数量情况下,读取针对所述数据的所述数量的软比特;以及ν)尝试使用以下的 至少一个来校正所述数据中的误差A)所选择的解码总线宽度大小;以及B)所读取的软比 特。要注意的是,与某些实施例有关的上述特征还可以被包括在其他实施例中,除非 在下面指出与这里描述的相反。


图IA是闪存存储器件的框图。
图IB是与主机设备耦接的外围闪存存储器件的框图。图2A是使用根据一个或多个存储器块的擦除计数而选择的解码器来校正误差的 一个例程的流程图。图2B是使用根据一个或多个存储器块而选择的解码器模式来校正误差的一个例 程的流程图。图3A是误差校正的一个例程的流程图,其中视一个或多个存储器块的擦除计数 而定,使用较轻权重解码器来尝试校正误差。图3B是误差校正的一个例程的流程图,其中视一个或多个存储器块的擦除计数 而定,使用较快的解码器来尝试校正误差。图3C是误差校正的一个例程的流程图,其中视一个或多个存储器块的擦除计数 而定,使用较轻权重解码器模式来尝试校正误差。图3D是误差校正的一个例程的流程图,其中视一个或多个存储器块的擦除计数 而定,使用较快解码器模式来尝试校正误差。图4A是误差校正的一个例程的流程图,其中根据一个或多个存储器块的擦除计 数来确定模式转换触发条件。图4B是误差校正的一个例程的流程图,其中根据一个或多个存储器块的擦除计 数来确定误差校正尝试的资源预算。图5A-5B是如下例程的流程图,其中根据一个或多个存储器块的擦除计数来确定 针对误差校正尝试而要读取的软比特数。图6A-6B是误差校正的例程的流程图,其中根据一个或多个存储器块的擦除计数 来确定解码器总线宽度。
具体实施例方式参考附图,通过参考示例实施例给出的详细描述,将更好地理解下面的权利要求。 描述、实施例和附图将不被认为限制权利要求的范围。应该理解,当前公开的处理误差校正 的方法和装置的每个特征在每个实现方式中并不都是一定需要的。还应该理解,贯穿于示 出或描述过程或方法的本公开,可以按任何顺序或同时执行该方法的各步骤,除非上下文 清楚地表明一个步骤取决于首先执行的另一步骤。如贯穿本申请所使用的,词“可以”用于 允许的意思(即,意味“具有......的可能性”),而不是强制的意思。本发明人现在公开其中根据从其读取数据的一个或多个存储器块的擦除计数来 执行对从固态存储器读取的数据的ECC解码的几种技术。不希望被任何特定理论所界定,要注意,当多次擦除固态存储器(例如,闪存、 MRAM或任何其他类型的固态存储器)时,这可能降低作为存储介质的存储器的质量。同样, 已经被擦除了数据达相对“大”次数的固态存储器(或其一部分)可能是相比于已经被擦 除了数据达相对“小”次数的固态存储器(或其一部分)“更差”或“更不可靠”或“更破坏 的”存储介质。现在描述其中根据从其读取数据的一个或多个块的擦除计数来执行对从存储器 读取的数据的ECC解码的几种技术。在从具有“高擦除计数”的一个或多个块读取数据的 情况下,这可能指示该一个或多个存储器块作为存储介质相对“更不可靠”——同样,从“更不可靠”的一个或多个存储器块读回的数据可能包括相对“大”数量的误差。在该情况下, 可以使用适合于校正在具有相对“大数量”误差的数据中的误差的“悲观(pessimistic)” 技术。相反,在从具有“低擦除计数”的一个或多个块读取数据的情况下,这可能指示该一 个或多个块作为存储介质“更可靠”,并且可以使用适合于校正在具有相对“小数量”误差的 数据中的误差的“乐观(optimistic)”技术。第一技术(参见参考图2A的讨论)涉及如下情形,其中当校正从一个或多个存储 器块读取的数据中的误差时,可以使用“较轻权重解码器”或“较重权重”解码器。在从其 读取数据的一个或多个存储器块的擦试计数相对“高”(指示该一个或多个存储器块经受了 相对大量的磨损)的情况下,这可能指示从其读取了数据的一个或多个存储器块的“质量” 可能相对“低”。在该情况下,“高”擦除计数因而可以指示在校正误差时利用更“悲观”技 术并利用“较重权重”解码器是有益的,即便较重权重解码器可能较慢和/或需要更多计算 资源(例如CPU周期、电力和/或存储器资源)。相反,在擦除计数相对“低”的情况下,这 可能指示从其读取了数据的一个或多个存储器块的“质量”可能相对“高”,并且利用“较低 权重”解码器可能是有益的。第二技术(参见参考图3A-3D的讨论)涉及“试错(trial-and-error),,解码例 程。“试错解码例程”工作如下首先,尝试使用相对“轻权重”或“快”解码器(或解码器模 式)来校正误差。在该尝试成功的情况下,能够“享受”相对快的解码和/或消耗相对少的 计算资源的解码。否则,如果该尝试失败,则使用较慢和/或消耗更多计算资源、但更不太 可能使校正误差失败的“较重权重”(或较慢)解码器(或解码器模式)来校正数据中的误 差。根据该第二技术,现在公开了如果从具有相对“高”擦除计数的一个块或多个块读 取数据,则应该采用悲观方法,并且“悲观地”跳过尝试使用较轻权重或较快(但较不可靠) 解码器(或模式)来解码误差的步骤是有益的。在该情况下,其中不尝试使用无论如何可 能失败的低权重和/或快解码器的该“悲观”方法可能对于节约时间和/或节省计算资源 是有用的。相反,如果从具有相对“低”擦除计数的一个块或多个块读取数据,则可以假设 轻权重和/或快解码器更不太可能失败。从而,在从与该“较低”擦除计数相关联的(一个 或多个)块读取数据的情况下,对较轻权重和/或较快解码器可能失败的“冒险”可能是有 益的。从而,在从与该“较低”擦除计数相关联的一个或多个块读取数据的情况下,在尝试 “较可靠”的较重权重和/或较慢解码器(或模式)之前尝试使用较轻权重和/或较快解码 器(或模式)来解码数据可能是有益的。第三技术(例如参见参考图4A-4B的讨论)也涉及“试错”解码例程。根据与该 第三技术相关的一些实施例,首先尝试使用适合于处理“较少”数量误差的较轻权重解码器 和/或较快解码器和/或解码器模式(或解码器)来校正误差。如果该第一尝试失败(例 如,如果该第一尝试在给定时间量内没有成功,从而触发一些“超时”条件),则进行第二尝 试以使用适合于处理“较大”数量误差的较重权重和/或较慢解码器和/或模式(或解码 器)来校正误差。现在公开在从具有“高”擦除计数的固态存储器的一个或多个块读取数据(即,期 望针对其校正误差的数据)的情况下,则仅以“悲观”方式——即通过投入相对“少”的资 源来执行尝试使用较轻权重或较快(但较不可靠)解码器(或模式)来解码误差的步骤可能是有益的。从而,在一个例子中,如果使用“较轻权重”或“较快解码器”来校正误差的尝 试没有相对“快”地(在“小的超时值”内)成功,则⑴相对“快”地丢弃该尝试(即认为 “失败”),并且(ii)然后使用较慢和/或较重权重和/或更适合于处理“较大”数量误差的 不同解码器和/或解码器模式来执行校正误差的“新”的尝试。相反,在从具有“高”擦除计数的固态存储器的一个或多个块读取将被校正的数据 的情况下,则以更“乐观”方式——即通过在轻权重和/或较快解码器(或解码模式)中投 入“更多”资源来执行尝试使用较轻权重或较快(但较不可靠)解码器(或模式)来解码 误差的步骤可能是有益的。从而,在一个例子中,如果使用“较轻权重”或“较快解码器”来 校正误差的尝试没有相对“快”地成功,则仍然可以假设还是存在该尝试将最终成功的某些 可能性。因而,在该例子中,在“前进”到使用“较重权重”和/或“较慢”的解码器或模式来 校正误差的尝试之前,对使用“较重权重”和/或“较慢”的解码器或模式来校正误差的初 始尝试“给予机会”一例如,允许其在被指定为失败之前工作更长时间段(或更多CPU周 期)。第四技术(例如参见参考图5A-5B的讨论)涉及决定将被读取来校正误差的软比 特(soft bit)的数量。在美国专利申请11/642,708和11/651,483中讨论了将软比特用 来改善存储器中的误差校正能力,通过全部引用将这两者中的每个合并于此。因为读取软 比特导致在时间和功率上的花费,所以存在其中ECC解码器首先尝试解码数据而根本不读 取软比特(或者仅读取“低”数量的软比特)的许多情形。如果失败,则可以读取一个或多 个软比特,并且可以进行另一解码尝试。如果该第二尝试也失败,则读取更多软比特,并且 进行另一解码尝试。该过程可以继续迭代(iterate),直到解码成功或者达到了可用软比特 的最大数量。现在公开可以根据从其读取数据的一个或多个存储器块的擦除计数来决定多少 软比特将被读取并用于初始尝试(例如参见图5A的步骤S419)、和/或决定在初始尝试失 败之后要读取多少另外的软比特(参见例如图5B的步骤S473)。从而,在该擦除计数相对“高”的情况下,可以采用“悲观”方法,并且在使用零或 “小”数量软比特的迭代不太可能成功(即,因为数据可能包含许多误差,从而可能要求较大 数量软比特来校正“有噪声的”数据中的误差)的假设下,可以跳过这些迭代(或者在失败 之后,可以读取相对“大”数量的软比特)。相反,在该擦除计数(即,从其读取数据的存储器的一个或多个块的擦除计数)相 对“低”的情况下,可以采用“乐观”方法,并且在该情形下,在有可能数据是相对“高”质量 的、以及不使用软比特或使用相对“小”数量的软比特具有合理的成功机会的假设下,尝试 使用零或“小”数量软比特来校正误差可能是有益的。第五技术(例如参见图6A)涉及解码器总线的宽度。现在公开在从具有相对“高” 擦除计数的一个或多个存储器块读取数据的情况下,这指示数据可能是低质量的,并且可 能优选相对“悲观”方法以校正误差。从而,在该情形下,使用较大的解码器总线来校正误 差可能是有益的,即使较大的解码器总线可能较慢和/或要求更多的计算资源。相反,在从具有相对“低”擦除计数的一个或多个存储器块读取数据的情况下,这 指示数据可能是高质量的,并且可能优选尝试用较小的解码器总线来校正误差的相对“乐 观”方法以校正误差。
12
贯穿本公开,当在“闪存”方面解释某些教导时,要认识到,这些教导也可以应用到 除了闪存之外的其他固态存储器——例如光存储器或MRAM。技术人员将认识到,可以将当前公开的用于校正误差的技术与用于校正在从存储 器读取的数据中的误差的任何其他技术相结合。在描述附图之前,给出了在闪存中使用ECC的一般概况,并且提供了各个术语的 定义(在接下来的两部分中)。闪存器件中的误差校IH在下面给出了在闪存中使用ECC的一般概况,包括如下步骤(1)在将数据写到存储器之前,将ECC算法应用到数据以便计算之后用于误差检 测和校正的另外的(即冗余)比特。这些冗余比特通常被称为“奇偶比特”或“奇偶位”。被 输入到ECC模块中的数据和由该模块输出的奇偶位的组合被称为码字。到ECC模块的输入 数据的每个不同的值得到不同的码字。(2)将整个码字(即原始数据和奇偶位)记录到闪存。应该注意,NAND型闪存的 实际大小大于原始数据的大小,并且存储器被设计为也容纳奇偶位。(3)当从存储器获取(retrieve)数据时,再次读取整个码字,并且将ECC算法应用 于该数据和奇偶位,以便检测并校正可能的“比特翻转”(即误差)。应该注意,可以通过硬件、软件或者硬件和软件的组合来进行ECC的实现。此夕卜, 可以在存储器器件内、存储器器件控制器内、主机计算机内实现ECC,或者可以在系统的这 些部件之间“分布” ECC。常用的算法包括里德-所罗门(Reed-Solomon)、BCH、汉明(Hamming)和许多其他 算法。每个ECC算法由两部分组成——接收数据比特并生成奇偶比特(或者等效地,生成 码字)的部分,以及接收码字并生成校正过的数据比特的部分。第一部分被称为“编码器” 并在写期间使用,而第二部分被称为“解码器”并在读期间使用。这两部分的每个可以以硬 件或软件实现,并且也能够一部分以硬件实现而另一部分以软件实现。对于每个部分,也能 够以硬件和软件的组合来实现。接收数据比特并生成相应码字被称为“编码”。接收码字并生成校正过的数据比特 被称为“解码”。应该注意,实际上有两种ECC。在码字中保留数据比特的身份(identity)的上述 种类ECC被称为“系统性(systematic) ” ECC。在“非系统性” ECC中,将数据比特转换为其 中不保留原始数据比特的身份的码字。选择如像BCH的算法作为将在闪存系统中使用的ECC算法不唯一地限定所选方 案。任何这样的ECC算法实际上不是单一的算法,而是算法族。在相同族内的算法本身之 间在它们能够保护的数据比特量方面不同。需要保护100个数据比特的算法不同于需要保 护10000个数据比特的算法,即使这两个算法通常非常相似、并工作在相同的原理下。但是,甚至都保护相同数量的数据比特的相同家族的两个算法也不是一定相同。 各算法可能在所提供的可靠性等级方面,或者等效地——在算法能够校正的数据中的比特 误差数量方面不同。例如,一个系统可能需要针对多达3个比特误差的任何组合(而不是 针对4个或更多比特误差的发生)而保护1000个数据比特的组块(chunk),而在另一系统 中,期望高得多的可靠性,因此需要针对多达10个比特误差的任何组合而保护1000个数据比特的组块。通常,针对更多误差的保护需要使用更多的奇偶比特(或更长的码字),使得 ECC方案不太“有效”,其中通过码字中数据比特的数量与码字中比特的总数量(在对称ECC 中,包括数据比特和奇偶比特)的比率来测量效率。该测量通常被称为ECC编码的“速率”。不同的ECC算法和实现方式在其他方面——编码过程的速度、解码过程的速度、编 码过程的复杂性、解码过程的复杂性、到解码器的输入中可接受的误差率(根据存储单元 的质量来定义)等等也不同。编码和解码的复杂性很重要,不仅因为它影响操作的速度,而 且因为它影响ECC方案的硬件实现方式的功耗和硅面积(silicon area) 0从而,显然,为存储器系统选择ECC解决方案涉及多个考虑之间的复杂的折衷方 案。通常在ECC设计领域中的一些非限制的经验法则(rules-of-thumb)是a.对于给定的存储器可靠性,输出可靠性越好(或者等效地,可校正的误差数量 越多),码速率越低(或者等效地,对于系统性ECC,需要的奇偶比特越多)b.对于给定的存储器可靠性,输出可靠性越好,解码器越复杂。c.对于输出可靠性的给定等级,码速率越高,解码器越复杂。d.对于输出可靠性的给定等级,码速率越高,解码越慢。当设计ECC解决方案时,通常从解码器的输入处的误差率(由存储单元的质量规 定)和期望的输出可靠性(由应用的要求规定)开始。基于这些数字,通常选择特定的ECC 族,计算所需要的奇偶比特数,然后估算编码器和解码器的速度和复杂度。在一些情况下,对于系统的设计者最重要的考虑是解码的速度,因为这可能对从 存储器读出数据的速度进行限制。在这样的情况下,设计者可能遇到进退两难的情形—— 达到输出可靠性要求所需要的ECC方案可能却得到具有慢操作的相当复杂的解码器,不满 足系统的速度目标。但是,另一方面,选择相对简单并得到快解码的ECC方案不提供所需要 的输出可靠性等级。^X为了方便,在这里的描述的上下文中,在此给出各个术语。到明示地或暗示地、在 本申请中的此处或其他地方提供定义的程度,这样的定义被理解为与由相关领域中技术人 员定义的术语的使用相一致。此外,将以与这样的使用相一致的最宽泛的可能含义来解释 这样的定义。因为某些类型的固态存储器(例如闪存、光存储器或MRAM)是“破坏的介质”,所 以有时一个或多个误差被引入到被写到存储器的“原始”数据中,使得当从存储器读回数据 (即,原始数据的表示)时,一个或多个信息比特被“翻转”。本发明的实施例涉及“存储器块”的“擦除计数”。存储器“块”是用于擦除的存储 器的最小“组块(chunk)”或量。在与闪存有关的一个例子中,块包括一些数量的闪存单元, 例如,至少几十或几百或几千或更多闪存单元。对于其他类型的存储器,例如RAM,“块”可 以是单个存储器单元或者多个存储器单元。对于存储器的给定块的“擦除计数”是指示到目前为止固态存储器的块已被擦除 了多少次的计数器。无论何时擦除存储器的块时,该擦除计数可以递增。如前所述,如果块 具有相对“大”的擦除计数,则这可能指示该块是易有误差的相对“差”的存储介质。本发明的实施例涉及“维持闪存的至少一个块的擦除计数”。可以在主机侧和/或 器件侧维持擦除计数,并且可以将擦除计数存储在易失性(例如RAM或寄存器)和/或非易失性存储器(例如,闪存)的任何组合中。在一个例子中,擦除计数被存储在控制器的晶 片(die)上。在另一例子中,擦除计数被存储在闪存晶片之一中。可以将擦除计数存储在 单个位置中和/或在多个位置之间分布擦除计数。在一个非限制的例子中,可以将擦除计 数存储在用于实现在闪存块之间的磨损校平(wear leveling)的数据结构中。在一些非限制的例子(但不是所有实施例)中,无论何时向固态存储器写入时,必 须首先擦除固态存储器,作为写过程的一部分。在这样的系统中,“擦除计数”可以至少部分 地描述给定块已被写入的次数。可以使用维持擦除计数的任何技术,包括但不限于在如下中公开的技术=Logfren 等人的美国专利No. 6230233,Wells的美国专利No. 5341339,Jou等人的美国专利 No. 5568423,Assar 等人的美国专利No. 5388083,Harari 的美国专利No. 5712819,Harari 的 美国专利No. 6570790,Harari的美国专利No. 5963480,Chang等人的美国专利No. 6831865, 通过全部引用将其的每个合并于此。根据从存储器读回的数据来重建原始的、没有误差的数据的过程是“校正误差”。 虽然以复数使用术语“校正误差”,但是要认识到“校正误差”也指校正单个误差。要认识到 在一些实施例中,误差的“校正”也可以包括校正误差的一个或多个失败的尝试。如前所述,为了校正误差,可以使用“解码器”,以便从码字的表示中恢复原始数 据。一些实施例涉及多个解码器,包括“较轻权重”解码器和“较重权重解码器”。术语“较重权重”和“较轻权重”用于比较两个解码器和/或单个解码器的两个模 式。“较重权重”解码器(或单个解码器的较重权重模式)(i)消耗比“较轻权重”对应方更 多的电流,和/或(ii)需要比“较轻权重”对应方更多的存储器(用于解码器自身的计算 机可执行代码,和/或用于存储在校正误差时计算的“中间结果”的更多存储器),和/或 (iii)需要比“较轻权重”对应方更多的计算操作。一些实施例涉及根据从其读取数据的一个或多个存储器块的擦除计数来确定要 读取和/或在误差校正中使用的“软比特”的数量。“软比特”是与估算的可靠性测量相组 合的比特值的估算。通常,相同的数字充当比特值的估算和可靠性测量两者。例如,对数似 然比(LLR)的符号(sign)是由LLR表示的比特值的估算,以及LLR的量值是该估算的可靠 性的量度。在一些实施例中,可以通过使用比将数据写入单元中的分辨率“更高的分辨率”从 存储器读取来计算和/或确定“软比特”。使用“更高分辨率”读取的另外的比特可以给出 数据比特值的任何估算的“可靠性”的一定指示。在一个例子中,可以使用区分电压带的界 限的不同“参考电压”来将数据写到存储器,并且可以通过使用位于电压带内的参考电压或 者“一部分的(fractional)参考电压”读回数据来生成软比特。技术人员参考例如Ban的 美国专利7023735,其通过全部引用被合并于此。当根据一个或多个软比特校正数据时,这 对于改善误差校正例程可能是有用的——然而,存在与确定(一个或多个)软比特相关联 的在时间和/或计算资源方面的花费。初步讨论维持擦除计数以及从固态存储器读取数据(图2A-2B、3A-3D、4A-4B、 5A-5B.6A-6D的步骤MU和S423的讨论)在步骤S411中,对至少一个存储器块维持擦除计数。如前所述,可以在任何位置 中和/或以任何方式维持擦除计数。在一个非限制的例子中,由快闪控制器280维持擦除计数。在一个非限制的例子中,擦除计数被维持在数据结构中(例如,存储在非易失性存储 器中)——例如,还用于磨损校平目的的数据结构。在步骤S423中,从一个或多个存储器块读回数据。可以确定从其读取数据的一 个或多个存储器块的擦除计数——例如,通过在适当的数据结构中实现(effect) “查找表 (look-up)” 来确定。图 2A-2B、3A_3D 的讨论考虑具有如下特征的两个解码器(或者能够以两个不同模式工作的一个解码 器)a.第一解码器(或解码器模式)较快和/或“较轻权重”,但是另一方面,不保证 在产生解码处理的结果中成功。b.第二解码器(或解码器模式)较慢和/或“较重权重”,但是保证总是产生解码 过程的正确结果(或者至少更可能产生解码处理的正确结果)。通常,数据中的误差数量越多,第一解码器越频繁地失败。不幸的是,当从存储器 读回数据时,不总是先验地(a-priori)知道在所读回的数据中有多少误差。从而,不总是 知道是否需要“较重权重”解码器(或单个解码器的较重权重模式),或者“较轻权重”解码 器是否将足够。本发明人现在公开在从其读取数据的一个或多个存储器块的擦除计数的数量相 对“低”的情况下,这可能指示读回的数据可能具有好的“质量”,并且可以选择用于校正误 差的相对“乐观”技术来校正在步骤S615或S625中所读取的数据中的误差。从而,在该情 况下,“冒险”使用“较轻权重”解码器(或单个解码器的较轻权重模式)来校正误差可能是 有益的。否则,使用“较重权重”解码器或单个解码器的较重权重模式来校正误差可能是优 选的。现在参考图2A。在步骤S615中,根据从其读取数据的一个或多个块的擦除计数, 从多个候选解码器中选择解码器。在步骤S619中,仅使用所选择的解码器而不使用未选择的“被拒绝的”解码器来 校正误差。现在参考图2B。在步骤S625中,根据从其读取数据的一个或多个块的擦除计数, 从多个候选解码器模式中选择给定解码器的模式。在步骤S629中,仅使用所选择的解码器模式而不使用未选择的“被拒绝的”解码 器模式来校正误差。现在参考图3A。在步骤S651中,根据从其读取数据的一个或多个块的擦除计数,决定是否尝试使 用较轻权重解码器(即多个候选解码器中的较轻权重解码器)来校正误差。在从其读取数据的固态存储器的一个或多个块的擦除计数相对“低”的情况下, 这可能指示所读回的数据可能具有好的“质量”,并且可以采用相对“乐观”的误差校正策 略。从而,在该情景下,在步骤S655中尝试使用较轻权重解码器来校正误差。如果较轻权 重解码器成功(参见步骤S659),则不需要尝试使用较重权重解码器来校正误差(参见步骤 S667)。如果较轻权重解码器校正误差失败,则S663尝试使用较重权重解码器来校正误差。此外,要注意的是,参考步骤S651,在从其读取数据的一个或多个块的擦除计数相对“高”的情况下,这可能指示所读回的数据可能具有“差”的质量,并且可以采用相对“悲 观”的误差校正策略。在该情景下,能够跳过步骤S665,并尝试使用较重权重解码器而不是 较轻权重解码器来校正误差(步骤S663中)。现在参考图3B。在步骤S851中,根据擦除计数,决定是否尝试使用较快解码器(即多个候选解码 器中的较快的解码器)来校正误差。在擦除计数“低”、并且采用相对“乐观”的误差校正策略的情况下,可以在步骤 S855中尝试使用较快解码器来校正误差。如果较快解码器成功(参见步骤S859),则不需 要尝试使用较慢解码器来校正误差(参见步骤S867)。如果较快解码器校正误差失败,则 S863尝试使用较慢解码器来校正误差。此外,要注意的是,参考步骤S851,擦除计数“高”并且采用相对“悲观”的误差校 正策略,能够跳过步骤S865,并尝试使用较慢解码器而不是较快解码器来校正误差(在步 骤S863中)。现在参考图3C。在步骤S671中,根据一个或多个块的擦除计数,决定是否尝试使用较轻权重模式 (即给定解码器的多个候选解码器模式中的较轻权重模式)来校正误差。在擦除计数“低”并且采用相对“乐观”的误差校正策略的情况下,在步骤S675中 可以尝试使用较轻权重模式来校正误差。如果较轻权重模式成功(参见步骤S679),则不 需要尝试使用较重权重模式来校正误差(参见步骤S687)。如果较轻权重模式校正误差失 败,则S683尝试使用较重权重模式来校正误差。此外,要注意的是,参考步骤S671,在擦除计数“高”并且采用相对“悲观”的误差 校正策略的情况下,能够跳过步骤S675,并尝试使用较重权重模式而不是较轻权重模式来 校正误差(在步骤S683中)。现在参考图3D。在步骤S871中,根据(一个或多个)存储器块的擦除计数,决定是否尝试使用较 快解码器模式(即多个候选解码器模式中的较快解码器模式)来校正误差。在擦除计数“低”并且采用相对“乐观”的误差校正策略的情况下,在步骤S875中 可以尝试使用较快解码器模式来校正误差。如果较快解码器模式成功(参见步骤S879),则 不需要尝试使用较慢解码器模式来校正误差(参见步骤S887)。如果较快解码器模式校正 误差失败,则S883尝试使用较慢解码器模式来校正误差。此外,要注意的是,参考步骤S871,在擦除计数“高”并且采用相对“悲观”的误差 校正策略的情况下,可能优选跳过步骤S865,并尝试使用较慢解码器模式而不是较快解码 器模式来校正误差(在步骤S863中)。图4A-4B的讨论图4A-4B是如下技术的框图,其中(i)进行校正误差的第一尝试(在步骤S519); ( )在某个时间点,如果第一尝试没有成功地校正误差,则中止第一尝试,并进行校正误差 的第二尝试(在步骤S539中)。图4A-4B涉及建立并实施确定何时认为第一尝试失败并中 止的策略。该决定并非微不足道——在校正误差的第一尝试(在步骤S519中)“过早地” 被认为失败的情况下,这可能导致不必要地慢和/或耗费资源的误差校正过程,因为在第一尝试如果被允许来运行其过程而将已经成功/足够时,进行了 一个或多个“额外的/不必 要的”校正误差的尝试。另一方面,在到第二尝试的转换被不必要地延迟、并且花费了“太 多”时间/资源来执行第一尝试的情况下,这也可能导致不必要地慢的和/或耗费资源的误 差校正过程。在图4A-4B中,公开了可以根据从其读取将被校正误差的数据的一个或多个存储 器块的一个或多个擦除计数来建立并实行用于确定何时第一尝试被认为失败(因而被中 止)的策略。在图4A-4B中,在步骤S519中,使用在步骤S515中建立的一个或多个误差校正参 数的“第一集合”来进行第一尝试,并在步骤S539中,使用在步骤S535中建立的一个或多个 误差校正参数的“第二集合”来进行第二尝试。在图4A和4B两者中,在如在步骤S523确 定的第一尝试成功的情况下,不需要在步骤S539中进行另外的尝试(参见步骤S527)。图4A涉及用于决定何时从步骤S519中的校正误差的第一尝试“转换 (transition) ” (从而中止第一尝试)到步骤S539中的校正误差的第二尝试的标准。在一个或多个存储器块的擦除计数“低”的情况下,则根据第一尝试将成功具有 相对“高”的机会的假设,可以采用乐观方法。从而,在该情况下,在步骤S511中确定的 “模式转换条件”可以是对于相对“快”或“轻权重”的初始误差校正尝试而言相对“慷慨 (generous),,的条件(可以至少部分地在步骤S515和/或步骤S535中如何“快”或“慢” 或“重权重”或“轻权重”地建立尝试)。相反,在擦除计数“高”的情况下,则可以采用悲观 方法,并且在步骤S511中确定的“模式转换条件”可以是对于相对“快”或“轻权重”的初试 误差校正尝试而言“更吝啬(stingy) ”的条件,因为假设了这些初始尝试无论如何将失败具 有高可能性。“模式转换条件”是确定第一尝试已经失败并且到不同的“模式”的转换被准许、以 便进行校正误差的“第二”或“不同的”尝试的条件。如图4A所示,如果在步骤S531中触 发模式转换条件,则在步骤S535和S539中进行校正误差的新的尝试;如果在第一尝试期间 的任何给定时间没有触发该条件,则在步骤S525中第一尝试继续。在一个例子中,“转换条件”与“超时条件”有关——即,在步骤S531中确定允许步 骤S519和S534的第一尝试“运行”多少时间,而不“中止”该尝试并开始具有不同的误差 校正参数的“新尝试”。在另一例子中,第一尝试本身利用迭代例程,并且“转换条件”与“迭 代数量条件”有关——即,在“所利用的迭代例程”被认为失败并为了“新的”或第二尝试而 将其中止之前允许运行多少个步骤的“所利用的迭代例程”而没有成功校正误差。在另一 例子中,“转换条件”与可以在中止第一尝试之前由该第一尝试“消耗”或使用的CPU周期的 数量有关。图4A(和4B)的教导可应用到任何“迭代例程”,其中在步骤S519中进行“第一尝 试”,然后,如果该第一尝试“不成功”,则在之后进行“第二尝试”。从而,在不同例子中,“模式转换”涉及⑴从给定解码器的较轻模式移动到较重模 式,或者(ii)从使用由多个解码器中选择的第一解码器的第一 “模式”移动到使用从多个 解码器中选择的第二解码器的第二“模式”,或者(iii)对于软解码器,从与比特概率值的 第一集合相关联的第一模式移动到与比特概率值的第二集合相关联的第二模式,或者(iv) 从使用第一数量(即非负整数)的软比特的第一模式移动到使用第二数量的软比特的第二模式,以及(V)从具有第一解码器总线宽度的第一模式移动到具有第二解码器总线宽度的 第二模式(参见图6B)。要认识到,所提供的此列表是例示性的而不是穷尽的列表。在图4B中,根据从其读取数据(即,针对其尝试误差校正)的存储器块的一个或 多个擦除计数,为第一尝试提供“预算”。该预算可以是时间预算或CPU周期数量预算或迭 代数量预算,或者是可以由第一尝试“消耗”的任何其他类型的“资源”预算。在另一例子 中,该预算可以是被允许分配来存储在第一尝试中使用的“中间结果”的易失性存储器的最 大量。在擦除计数相对“低”的情况下,在步骤S561中可以分配“较大”的预算;在擦除 计数相对“高”的情况下,可以分配“较小”的预算。在步骤S561中,确定该迭代步骤误差校 正资源预算,并在步骤S565中,确定该资源预算是否已耗尽。如果该预算已耗尽,则在步骤 S535和S539中进行校正误差的新尝试;如果在第一尝试期间该预算还没有耗尽,则在步骤 S525中校正误差的第一尝试继续。图5A-5B的讨论图5A-5B涉及确定将被读取来校正误差的软比特数量的技术(同样参见上面参考 图5A-5B的讨论)。在图5A的步骤S419中,确定将被读取来用于校正误差的初始尝试的软 比特数量。根据与(在步骤S423中)从其读取将被校正误差的数据的一个或多个目标存 储器块相关联的(在步骤S415中确定的)擦除计数来确定该软比特数量。在步骤S427中,读取所确定的数量的软比特,并在步骤S431中,尝试使用这些软 比特来校正数据(即步骤S423中所读取的数据)中的误差。在该尝试成功的情况下(参 见步骤S439),不需要(参见步骤S443)继续误差校正过程。如果该尝试不成功,则可以在 步骤S435中读取一个或多个另外的软比特。要注意的是,图5A(以及本公开提供的所有附图)中的步骤的顺序不是限制性 的——例如,可以在步骤S419的确定之前执行步骤S423中从固态存储器的(一个或多个) 目标块中读取数据。现在参考图5B。在可选的步骤S461中,读取某个数量N的软比特,其中N是非负整 数(如果N是零,则跳过步骤S461,并且步骤S431中校正误差的第一尝试不利用软比特)。 在步骤S431中,尝试校正误差(如果软比特可用,则使用软比特)。如果该尝试成功(参见 步骤S665),则不需要(参见步骤S469)继续误差校正过程。如果该尝试不成功,则在步骤 S473中确定将读取多少软比特(即,用于校正误差的后续尝试中)——根据与步骤S415和 S423的一个或多个目标存储器块相关联的擦除计数来确定该数量。在步骤S477中,读取该数量(即在步骤S473中确定的数量)的软比特——在步 骤S431中使用这些软比特。图6A的讨论图6是根据从其读取数据的存储器的一个或多个块的擦除计数来校正误差的技 术的流程图。软解码器通过向码字的每个比特分配概率(例如,比特值是1而不是0的概率) 并运行多个迭代而工作,其中在每次迭代中,每个比特的概率根据其他比特的当前概率而 改变。
19
不是软解码器的任何解码器在这里被称为“代数解码器”。该类型的计算被表达为利用“消息传递(passing)”技术,因为每个比特向其对等 方“传递消息”。在实现这样的解码器时的主要设计决定是消息传递的总线宽度。使用宽总 线(例如10比特)保证如果算法可以应对误差,则该算法确实将收敛到正确的数据。但是 另一方面,在这样的设计中解码器的功耗高。使用窄总线(例如3比特)提供低得多的功 耗,但是在具有相对大数量误差的情况下,解码器可能不能收敛到正确的数据(即使在相 应的宽总线解码器中正确地解码相同样式(pattern)的数据和误差)。用于消息传递的比 特数量对解码过程的功耗具有显著影响——比特数量越多,功耗越高。该现象的原因之一是在解码操作期间将软解码器的消息和信道输入(软值)存储 在大功耗RAM中。例如,当例如对每个消息使用3比特而不是10比特时,可以关闭70%的 RAM。节省功耗的另一来源是处理这些传递消息的处理单元。很明显对3比特而不是10比 特执行计算需要更小且更低功耗的单元。能够实现其中可以在解码开始时设置“消息传递”中的比特数量的软解码器。从 而,在一些实施例中,根据从其读取数据的一个或多个块的擦除计数来选择解码总线宽度 大小。在指示“乐观情形”的擦除计数“低”的情况下,能够选择较小的解码总线宽度大小, 从而校正误差。否则,可能优选选择较大的解码总线宽度大小。这在图6A中图示地示出。在步骤S751中,根据从其读取数据的一个或多个块的 擦除计数来选择解码器总线宽度。在步骤S755中,根据所选择的解码器总线宽度值来校正误差。图6B的讨论在图6B中,步骤S411、S423和S751与图6A中的相同。在步骤S775中,尝试使用在步骤S751中选择的所选解码器总线宽度来校正误差。 如果该尝试成功(参见步骤S779),则不需要(参见步骤S787)继续误差校正过程。否则, 如果该尝试没有成功(参见步骤S783),则选择新的解码器总线宽度,并进行校正误差的新
尝试ο另外的讨论要注意,可以在“器件侧”或“主机侧”实现这里公开的任何技术。在一个具体例 子中,这里公开的任何步骤或步骤的组合(包括但不限于如下步骤维持擦除计数、读取数 据或软比特、校正误差、进行校正误差的尝试、选择解码器或模式或软比特数、确定是否利 用给定解码器或解码器模式、选择解码器总线宽度、确定或实行转换条件或资源预算等等) 可以由快闪器件260的器件控制器280 (或包括固态存储器的任何其他数据存储器件)—— 例如,外围存储器件260*的器件控制器来实现。在一些实施例中,在“器件侧”校正数据中的误差之后,可以将被校正误差的数据 从存储器件260*经由各自的设备间接口发送给主机设备310。这(与步骤S425的数据读 取和任何误差校正一起)可以响应于由主机310发送给外围存储器件260*以读取存储在 固态非易失性存储器(例如闪存270)内的数据的请求而执行。器件控制器280可以包括任何一个或多个软件和/或固件和/或硬件元件,包括 但不限于一个或多个现场可编程逻辑阵列(FPLA)元件、一个或多个硬连线的逻辑元件、一 个或多个现场可编程门阵列(FPGA)元件以及一个或多个专用集成电路(ASIC)元件。可以在控制器280中使用任何指令集架构,包括但不限于精简指令集计算机(RISC)架构和/或 复杂指令集计算机(CISC)架构。可以以硬件、由硬件执行的计算机可读代码模块和固件的任何组合来实现任何所 公开的技术。本发明的实施例提供了用于实现任何公开的技术的装置和计算机介质。在这里引用的所有参考文件通过全部引用而被合并。参考文件的引用不构成该参 考文件是现有技术的认可。还要注意的是,上述任何实施例还可以包括在计算机可读介质之上接收、发送或 存储实现上面结合附图描述的操作的指令和/或数据。一般来说,计算机可读介质可以 包括诸如磁介质或快闪介质或光介质、例如盘或CD-ROM的存储介质或存储器介质、诸如 RAM、ROM等的易失性或非易失性介质、以及诸如经由诸如网络和/或无线链路的通信介质 传送的电、电磁或数字信号的传输介质或信号。因而描述了上述示例实施例,对于本领域技术人员将明显的是,不脱离如在下文 中陈述的权利要求的范围和精神,各种等效物、变更、修改及其改进是可能的。特别是,不同 的实施例可以包括不同于在此所述的特征的组合。从而,权利要求不限于前述讨论。
2权利要求
1.一种用于处理误差校正的方法,所述方法包括a)维持固态存储器的至少一个块的擦除计数;b)从具有相关联的擦除计数的存储器块之一读取数据;c)根据所述存储器块的相关联擦除计数,实现以下的至少之一 i)选择第一解码器和第二解码器之一;以及 )选择第一解码器模式和第二解码器模式之一;d)仅使用所选择的解码器或所选择的模式来校正所读取的数据中的误差。
2.根据权利要求1所述的方法,其中所述固态存储器是闪存。
3.根据权利要求1所述的方法,其中由所述固态存储器所驻留的存储器件的器件控制 器来执行所述维持、所述读取、所述实行和所述校正中的至少一个。
4.根据权利要求3所述的方法,其中所述存储器件经由设备间接口操作性地与主机设 备耦接,以及其中所述方法还包括e)从所述存储器件向所述主机设备发送误差校正过的数据。
5.一种用于处理误差校正的方法,所述方法包括a)维持固态存储器的至少一个块的擦除计数;b)从具有相关联的擦除计数的存储器块之一读取数据;c)根据所述相关联的擦除计数,实现以下的至少一个 i)决定A)尝试使用较轻权重解码器来校正误差,还是B)尝试仅使用比所述较轻权重解码器更重的较重权重解码器来校正误差; )决定A)尝试使用较快解码器来校正误差,还是B)尝试仅使用比所述较快解码器更慢的较慢解码器来校正误差;iii)决定A)尝试使用具体解码器的较轻权重模式来校正误差,还是B)尝试仅使用所述具体解码器的比所述较轻权重模式更重的较重权重模式来校正误 差;以及iv)决定A)尝试使用具体解码器的较快模式来校正误差,还是B)尝试仅使用所述具体解码器的比所述较快模式更慢的较慢模式来校正误差;以及d)根据所述决定中的至少一个,校正在读取的数据中的误差。
6.根据权利要求5所述的方法,其中由所述固态存储器所驻留的存储器件的器件控制 器来执行所述维持、所述读取、一个或多个所述决定以及所述校正中的至少一个。
7.一种用于处理误差校正的方法,所述方法包括a)维持固态存储器的至少一个块的擦除计数;b)从具有相关联的擦除计数的存储器块之一读取数据;c)根据所述相关联的擦除计数,确定以下的至少一个 i)模式转换条件;以及 )误差校正尝试资源预算;d)使用误差校正参数的第一集合进行校正在读取的数据中的误差的第一尝试;以及e)在校正误差的所述第一尝试不成功的情况下,使用误差校正参数的第二集合进行校 正在读取的数据中的误差的第二尝试,所述第二尝试根据如下至少之一而定i)所述第一尝试对所述模式转换条件的触发;以及 )所述第一尝试对所述资源预算的耗尽。
8.根据权利要求7所述的方法,其中i)所述方法包括确定所述模式转换条件;以及 )所述第二尝试根据至少所述第一尝试对所述模式转换条件的触发而定。
9.根据权利要求7所述的方法,其中i)所述方法包括确定所述资源预算;以及 )所述第二尝试根据至少所述第一尝试对所述资源预算的耗尽而定。
10.根据权利要求7所述的方法,其中从由以下构成的组中选择至少一个误差校正参数i)用于从多个解码器中选择解码器的选择参数; )用于从多个解码器模式中选择给定解码器的解码器模式的解码器模式参数;iii)所读取的数据的比特概率值;iv)软比特数量;以及 ν)解码器总线宽度。
11.根据权利要求7所述的方法,其中从由以下构成的组中选择所述模式转换条件 i)超时条件; )迭代数量条件;以及 iii)CPU周期数量条件。
12.根据权利要求7所述的方法,其中从由以下构成的组中选择所述误差校正尝试资 源预算i)时间预算;ii)CPU周期预算;以及iii)迭代预算。
13.根据权利要求7所述的方法,其中由所述固态存储器所驻留的存储器件的器件控 制器来执行所述维持、所述读取、所述确定以及一个或多个所述尝试中的至少一个。
14.一种用于处理误差校正的方法,所述方法包括a)维持存储器的至少一个块的擦除计数;b)从具有相关联的擦除计数的存储器块之一读取数据;c)根据所述相关联的擦除计数,实现以下的至少一个 i)确定针对所述数据要读取的软比特的数量;以及 )选择解码总线宽度大小;以及d)在确定所述软比特的数量的情况下,读取针对所述数据的所述数量的软比特;以及e)尝试使用以下的至少一个来校正所述数据中的误差 i)所选择的解码总线宽度大小;以及; )读取的软比特。
15.根据权利要求14所述的方法,其中i)所述方法包括确定针对所述数据要读取的软比特的数量,并读取针对所述数据的所 述数量的软比特;以及 )所述尝试包括尝试至少使用所读取的软比特来校正所述数据中的误差。
16.根据权利要求14所述的方法,其中i)所述方法包括选择所述解码总线宽度大小;以及 )所述尝试包括尝试使用所选择的解码总线宽度大小来校正所述数据中的误差。
17.根据权利要求14所述的方法,其中由固态存储器所驻留的存储器件的器件控制器 来执行所述维持、一个或多个所述读取、所述确定、所述选择和所述尝试中的至少一个。
18.一种数据存储器件,包括a)固态存储器;以及b)器件控制器,工作来i)维持所述固态存储器的至少一个块的擦除计数; )从具有相关联的擦除计数的存储器块之一读取数据;iii)根据该存储器块的相关联的擦除计数,实现以下的至少一个A)选择第一解码器和第二解码器之一;以及B)选择第一解码器模式和第二解码器模式之一;以及iv)仅使用所选择的解码器或所选择的模式来校正在读取的数据中的误差。
19.一种数据存储器件,包括a)固态存储器;以及b)控制器,工作来i)维持所述固态存储器的至少一个块的擦除计数; )从具有相关联的擦除计数的存储器块之一读取数据;iii)根据所述相关联的擦除计数,实现以下的至少一个A)决定I)尝试使用较轻权重解码器来校正误差,还是II)尝试仅使用比所述较轻权重解码器更重的较重权重解码器来校正误差;B)决定I)尝试使用较快解码器来校正误差,还是II)尝试仅使用比所述较快解码器更慢的较慢解码器来校正误差;C)决定I)尝试使用具体解码器的较轻权重模式来校正误差,还是II)尝试仅使用所述具体解码器的比所述较轻权重模式更重的较重权重模式来校正误 差;以及D)决定I)尝试使用具体解码器的较快模式来校正误差,还是II)尝试仅使用所述具体解码器的比所述较快模式更慢的较慢模式来校正误差;以及iv)根据所述决定中的至少一个,校正在读取的数据中的误差。
20.一种数据存储器件,包括a)固态存储器;以及b)器件控制器,工作来i)维持所述固态存储器的至少一个块的擦除计数; )从具有相关联的擦除计数的存储器块之一读取数据;iii)根据所述相关联的擦除计数,确定以下的至少一个A)模式转换条件;以及B)误差校正尝试资源预算;iv)使用误差校正参数的第一集合进行校正在读取的数据中的误差的第一尝试;以及 ν)在校正误差的所述第一尝试不成功的情况下,使用误差校正参数的第二集合进行校正在读取的数据中的误差的第二尝试,所述第二尝试根据以下的至少一个而定A)所述第一尝试对所述模式转换条件的触发;以及B)所述第一尝试对所述资源预算的耗尽。
21. 一种数据存储器件,包括a)固态存储器;以及b)器件控制器,工作来i)维持所述固态存储器的至少一个块的擦除计数; )从具有相关联的擦除计数的存储器块之一读取数据;iii)根据所述相关联的擦除计数,实现以下的至少一个A)确定针对所述数据要读取的软比特的数量;以及B)选择解码总线宽度大小;以及iv)在确定所述软比特的数量情况下,读取针对所述数据的所述数量的软比特;以及 ν)尝试使用以下的至少一个来校正所述数据中的误差Α)所选择的解码总线宽度大小;以及 B)所读取的软比特。
全文摘要
本发明的实施例涉及维持固态存储器的至少一个块的擦除计数的方法和设备。根据存储器块的相关联的擦除计数来校正在从固态存储器读取的数据中的误差。在一些实施例中,可以根据从其读取数据的存储器块的相关联的擦除计数来实现以下误差校正操作中的一个或多个(i)选择解码器和/或解码器模式;(ii)决定尝试使用较轻权重的权重解码器(模式)和/或较重权重解码器(模式)和/或较快解码器(模式)和/或较慢解码器(模式)校正误差;(iii)确定模式转换和/或误差校正尝试资源预算;(iv)确定软比特的数量;以及(v)选择解码总线宽度大小。
文档编号G06F11/10GK102099793SQ200980128383
公开日2011年6月15日 申请日期2009年5月6日 优先权日2008年6月24日
发明者伊丹.奥尔罗德, 伊兰.沙伦, 梅纳汉.拉瑟 申请人:桑迪士克以色列有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1