CN103329104A - 使用另外的错误校正编码数据的数据恢复 - Google Patents
使用另外的错误校正编码数据的数据恢复 Download PDFInfo
- Publication number
- CN103329104A CN103329104A CN2012800059786A CN201280005978A CN103329104A CN 103329104 A CN103329104 A CN 103329104A CN 2012800059786 A CN2012800059786 A CN 2012800059786A CN 201280005978 A CN201280005978 A CN 201280005978A CN 103329104 A CN103329104 A CN 103329104A
- Authority
- CN
- China
- Prior art keywords
- data
- ecc
- block
- storage device
- leaf
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Abstract
在数据存储器件中的接收包括数据块和用于该数据块的主错误校正编码(ECC)数据的方法。该数据块包括数据的第一子块和数据的第二子块。该方法还包括开始ECC操作以使用该主ECC数据处理该数据块。响应于ECC操作指示该数据块中的不可校正的错误,获取在该数据块外部的第一另外的ECC数据,并且开始第二ECC操作以使用该第一另外的ECC数据来处理数据的第一子块。
Description
技术领域
本公开一般涉及数据恢复。
背景技术
将数据存储在存储器器件中的能力随着技术的进步而不断改进。例如,快闪存储器使得能够以可以通过每个存储器单元存储多个数据位而增强的存储密度来非易失性地存储数据。但是,由于存储器的物理情况,比如热噪声、宇宙射线或者对存储器的物理组件的损坏,被写到存储器的数据可能被无意地更改。通常使用错误校正编码(ECC)方案来校正在数据中可能发生的错误。这样的ECC方案通常包括使用冗余信息来编码数据、提供从错误的强健恢复,但是也增加了制造成本并且降低了存储器器件的数据存储密度。
被选择用于提供对于存储器器件的预期范围的操作情况的错误校正能力的ECC方案可能不足以校正在制造期间遇到的情况所产生的错误。例如,可以在将存储器器件粘附到印刷电路板(PCB)之前将内容预加载到存储器器件中。将存储器器件粘附到PCB可以包括抛光、回流(reflow)或者其他工艺。在这样的工艺期间对预加载的数据发生的错误可能超过ECC方案的错误校正能力。由于一个或多个其他工艺,错误可能发生在预加载的数据中。例如,一些存储器器件可能经历了存储的数据基于数据存储在器件中的时间长度而带来的恶化。
发明内容
通过提供在数据块外部的并且对应于数据块的子块的另外的ECC数据来向数据块提供增强的错误校正。如果数据块和该数据块的主奇偶校验位具有太多要使用该奇偶校验位校正的错误,则可以使用另外的ECC数据单独校正一个或多个子块。另外的ECC数据可以包括专用于单个子块的另外的奇偶校验位以使能够校正子块中的除了可使用主奇偶校验位校正的之外的更大数量的错误。
可以在数据存储器件中提供另外的ECC数据以使能够保护在抛光或回流工艺期间可能被破坏的预加载的内容。可以进行数据校正过程以在需要时使用另外的ECC数据来恢复破坏的预加载的内容。在恢复预加载的内容之后,存储了另外的ECC数据的存储器位置可以保留该另外的ECC数据或者可选地可以被释放以增加存储器中的可用空间。
附图说明
图1是用于提供使用另外的错误校正编码(ECC)数据的数据恢复的系统的具体示例实施例的框图;
图2是在图1的存储器112处存储的预加载的内容和另外的ECC数据的第一示例实施例的概略图;
图3是在图1的存储器112处存储的预加载的数据和另外的ECC数据的第二示例实施例的概略图;
图4是提供使用另外的错误校正编码(ECC)数据的数据恢复的方法的第一示例实施例的流程图;
图5是提供使用另外的错误校正编码(ECC)数据的数据恢复的方法的第二示例实施例的流程图;以及
图6是提供使用另外的错误校正编码(ECC)数据的数据恢复的方法的第三示例实施例的流程图。
具体实施方式
参考图1,绘出了存储使得能够恢复数据的另外的奇偶校验位的系统,并且一般将其指定为100。系统100包括可以操作地耦接到主机设备104的数据存储器件102。数据存储器件102包括存储使能校正超过主ECC编码方案的错误校正能力的被破坏的数据。
主机设备104可以配置为提供要存储在数据存储器件102处的数据或者请求从数据存储器件102读取的数据。例如,主机设备104可以包括移动电话、音乐或视频播放器、游戏控制台、电子书阅读器、个人数字助理(PDA)、诸如膝上型计算机或笔记本计算机的计算机、任何其他电子设备或者其任意组合。
数据存储器件102包括耦接到存储器112的控制器110。为了例示,数据存储器件102可以是存储卡,比如安全数据SD卡、微SD卡、迷你SD.TM卡(特拉华,威尔明顿,SD-3C LLC的商标)、多媒体卡.TM(MMC.TM)卡(维吉尼亚,阿灵顿,JEDEC固态技术协会的商标)或者致密快闪(CF)卡(加利福尼亚、米尔皮塔斯,桑迪士克公司的商标)。作为另一例子,数据存储器件102可以配置为耦接到主机设备104作为嵌入式存储器,比如eMMC(维吉尼亚,阿灵顿,JEDEC固态技术协会的商标)和eSD,作为示例性的例子。作为另一示例性的例子,数据存储器件102可以包括包含用于数据存储的一个或多个旋转盘的硬碟盘。
存储器112可以包括非易失性存储器器件,比如快闪存储器。数据存储器件102可以是以下之一:快闪存储卡、通用串行总线(USB)、快闪盘、固态盘(SSD)和嵌入式快闪存储器。作为另一例子,存储器112可以是三维(3D)存储器,数据存储器件102可以配置为耦接到主机设备104作为嵌入式存储器。或者,数据存储器件102可以配置为可移除地耦接到主机设备104,比如存储卡或者USB快闪驱动器(UFD)。在一些实现方式中,数据存储器件102可以是硬盘或者其他类型的存储器件。
控制器110包括错误校正编码(ECC)引擎114。ECC引擎114配置为接收可以包括用户数据和奇偶校验位的编码的数据并且在可能导致对存储在存储器112处的数据的破坏的诸如回流事件的破坏事件之后解码该编码的数据。
存储器112可以包括预加载的内容区160和另外的奇偶校验位区162。预加载的内容可以包括由存储器112或者数据存储器件102的制造商存储在存储器112处的数据。例如,在存储器112被粘附到印刷电路板(PBC)之前,预加载的内容可以存储在存储器112中。存储器112到PCB的粘附可以包括可能将存储器112暴露于升高的温度的回流事件,比如焊接、红外线(IR)或者其他回流类型。因此,存储在存储器112中的预加载的内容可能经历比通常在正常操作期间经历的错误率更高的错误率。
ECC页120被例示为内容存储的代表单元。代表的ECC页120包括数据块122和主ECC数据124。例如,数据块122可以包括已经存储在存储器112处的数据,并且主ECC数据124可以包括已经使用错误校正编码产生来形成ECC页120的奇偶校验位。主ECC数据124的奇偶校验位可以由ECC引擎114使用来使能检测和校正发生在ECC页120中的一个或多个错误。
另外的奇偶校验区162可以包括与存储在存储器112中的数据、比如预加载的内容区160中的数据对应的另外的奇偶校验位。如所示,另外的奇偶校验区162包括第一另外的ECC数据130、第二另外的ECC数据132和第三另外的ECC数据134。另外的ECC数据130-134的每个可以对应于预加载的内容区160中的数据块的一部分。例如,第一另外的ECC数据130可以包括提供对于数据库122的第一子块126的冗余性的第一另外的奇偶校验(AP)位。为了例示,可以通过仅编码第一子块126(即,不编码第二子块128)以产生码字来产生第一另外的ECC数据130。在产生的码字中包括的奇偶校验位可以被存储为第一另外的ECC数据130,并且当与第一子块126组合并且提供给ECC引擎114时可以使能检测和校正错误。类似地,第二另外的ECC数据132可以可由ECC引擎114使用来校正数据块122内的多个子块中的另一单个子块中的错误。例如,第二另外的ECC数据132可以可由ECC引擎114使用来进行用于第二子块128的错误校正。
因为诸如第一另外的ECC数据130的另外的ECC数据可以提供对于单个子块而不是整个数据块的错误恢复,所以与主ECC数据124的错误校正能力相比,校正子块内的错误的数据校正能力可以增强。为了例示,发生在组合的第一子块126和第二子块128中的多个错误可能超过使用主ECC数据124的错误校正能力,而当单独应用于第一子块126时,可能不超过使用第一另外的ECC数据130(例如使用另外的奇偶校验)的错误校正能力。
控制器110可以配置为在ECC引擎114处开始第一ECC操作150以使用诸如主ECC数据124的用于数据块的主ECC数据来处理诸如数据块122的数据块。子块126和128的每个以及主ECC数据124可能包括错误,在图1中例示为阴影的数据块。响应于第一ECC操作150指示例示为解码失败指示156地指示数据块122中的不可校正的错误,控制器110可以配置为从存储器112取得在数据库122外的第一另外的ECC数据。例如,控制器110可以从存储器112的另外的奇偶校验区162获取第一另外的ECC数据130。
控制器110可以配置为在第二ECC操作152中使用第一另外的ECC数据130来处理数据块122的第一子块126。如所示,第二ECC操作152可以导致校正发生在第一子块126中的错误,得到第一子块127的校正了错误的版本。
在成功解码第一子块126以产生校正了错误的第一子块127之后,控制器110可以配置为在ECC引擎114处开始第三ECC操作154。除了从存储器112原始获取的第二子块128和主ECC数据124之外,可以使用校正了错误的第一子块127进行第三ECC操作154。因为数据的一部分已经被错误校正,所以ECC页中的错误的总数可以减小并且可能落在ECC引擎114使用主ECC数据124的错误校正能力内。因此,第三ECC操作154可以产生包括第一校正了错误的子块127和校正了错误的第二子块129的校正了错误的数据块。
尽管图1例示了使用另外的奇偶校验位(即在第二ECC操作152中)进行单个ECC操作,但是控制器110可以配置为进行多个第二ECC操作,每个第二ECC操作配置为使用其他另外的奇偶校验块来解码数据块122的其他子块。为了例示,当第二另外的ECC数据132对应于第二子块128时,第二ECC操作152后可以跟随使用第二另外的ECC数据132校正第二子块128的另一ECC操作。子块的依次处理可以继续,直到已经使用另外的ECC数据分别处理了ECC页120的所有子块。在子块的处理之后,可以绕过使用主ECC数据124的第三ECC操作154,因为已经检测并校正了各个子块中的所有错误。
在另一实现方式中,在进行第三ECC操作154并且确定第二子块128和其余的ECC数据124继续具有超过ECC引擎114使用主ECC数据124的错误校正能力的多个错误之后,可以进行使用另外的奇偶校验位的一个或多个另外的ECC操作。例如,在接收到在第三ECC操作154期间数据块112中存在不可校正的错误的指示之后,可以由控制器110开始第四ECC操作以使用第二另外的ECC数据132解码第二子块128。
尽管图1例示了在预加载的内容区160中的单个代表性ECC页120,但是应该理解,预加载的内容的多个ECC页可以被包括在存储器112中。另外,尽管另外的奇偶校验区162被例示为包括代表性的另外的ECC数据130-134,但是应该理解,足够量的另外的ECC数据可以被存储在存储器112中以提供对于预加载的内容的另外的错误校正能力。尽管存储器112被例示为具有单个预加载的内容区160和另外的奇偶校验区162,但是在其他实现方式中,存储器112可以包括多个预加载的内容区、多个另外的奇偶校验区或者其组合。
通过包括预加载的内容区160中的内容以及包括另外的奇偶校验位来提供对于预加载的内容的另外的错误校正能力,在回流工艺、抛光工艺或者另一事件期间可能发生的数据破坏可能是可恢复的,即使超过使用主ECC数据的错误校正能力。因此,作为例子,在将数据存储器件102安装到移动或者电子设备内的印刷电路板之后,控制器110可以开始扫描预加载的内容区160、进行错误校正、并将校正了错误的数据重新存储到存储器112的数据校正过程。可以通过开始诸如第二ECC操作152的第二ECC操作来校正被确定为使用主ECC数据不可恢复的ECC页,在该第二ECC操作中,用于每个子块的另外的ECC数据被获取以提供另外的错误校正能力以及从引起错误的事件的数据恢复。参考图4进一步详细描述数据校正过程的例子。
图2绘出存储预加载的内容和另外的ECC数据的存储器结构的第一示例实施例200。第一字线202可以包括预加载的内容,比如存储在图1的存储器112中的预加载的内容。例如,第一字线202可以包括包含第一代表性ECC页206的四个ECC页。每个ECC页可以包括一个或多个子块,比如第一代表性子块212和第二代表性子块214。每个ECC页还可以包括包含用于第一子块212和第二子块214的错误校正的奇偶校验位的诸如代表性主ECC数据218的主ECC数据。
第二字线204存储另外的ECC数据。如所示,第二字线204包括包含代表性第二ECC页208的多个ECC页。第二字线204的每个ECC页包括与第一字线202的一个或多个子块对应的另外的ECC数据(例如,另外的奇偶校验位)的多个块。如所示,第二代表性ECC页208包括第一另外的ECC数据220、第二另外的ECC数据222、第三另外的ECC数据224和第四另外的ECC数据226。第二ECC页208还包括主ECC数据228,其提供了对于可能发生在另外的ECC数据220-226的任意一个中的错误的错误校正能力。
另外的ECC数据220-226的每个对应于预加载的内容的子块。例如,按照与关于图1所例示和描述的方式,第一字线202的每个ECC页的第一子块可以单独被编码并且得到的另外的奇偶校验位被存储在第二ECC页208中。第二ECC页208包括另外的ECC数据的四个集合220-226,因此提供了对于整个第一字线202的另外的ECC数据。这样,第二字线204可以提供对于存储了预加载的内容的总共四条字线的数据恢复的另外的ECC数据。
在一些实现方式中,第一字线202的ECC页的一个或多个子块不具有对应的另外的奇偶校验位。例如,第二子块214可能未被另外的ECC数据保护。尽管主ECC数据218可能不足以校正组合的子块212和214中的错误,但是主ECC数据218可能足以在已经使用第二另外的ECC数据222校正了第一子块212之后校正第二子块214中的错误。在其他实现方式中,可以使用另外的ECC数据来保护ECC页的所有子块,如关于图3所述。
图3绘出存储预加载的内容和用于该预加载的内容的另外的ECC数据的存储器结构。第一字线302在包括第一代表性ECC页306的多个ECC页中存储预加载的内容。第一ECC页306包括四个子块310-316以及主ECC数据部分318。第二字线304包括另外的ECC数据。
如所示,第二字线304的每个ECC页包括四个子块,每个子块包括与预加载的内容对应的另外的ECC数据。第二字线304的第一页的第一子块320提供对于第一子块310的另外的ECC数据。第二字线304的第二页的第一子块322提供对于第二子块312的另外的ECC数据。第二字线304的第三ECC页的第一子块324提供对于第三子块314的另外的ECC数据。第二字线304的第四ECC页的第一子块326提供对于第一ECC页306的第四子块316的另外的ECC数据。
图3例示可以提供另外的奇偶校验位用于具有预加载的内容的多个子块的ECC页的各个子块。图3还例示了用于单个ECC页的多个子块的另外的ECC数据可以被存储在另外的ECC数据的分离的不同的ECC页处。此外,应该理解,也可以用另外的ECC数据保护图2的第二字线204或者图3的第二字线304,该第二字线204或第二字线304每个存储了用于帮助预加载的内容的数据恢复的另外的ECC数据。
例如,在图2的第二ECC页208中发生的错误可能是通过应用使用主奇偶校验位228的ECC操作可校正的。如果发生在第二ECC页208中的多个错误超出了使用主奇偶校验位228的错误校正能力,则包含另外的ECC数据220-226的一个或多个子块可以被提供给ECC引擎,作为要使用在存储器中存储的又一些另外的ECC奇偶校验位来以类似于图1的第二ECC操作152的方式解码的子块。因此,可以提供另外的字线以包括另外的奇偶校验位、以使能另外的奇偶校验位的错误恢复,这又使能预加载的数据的错误恢复。
主ECC数据和另外的ECC数据、诸如图2的主ECC数据218和第二另外的ECC数据222,可以包括任意类型的ECC数据。例如,主ECC数据218和第二另外的ECC数据222可以包括奇偶校验位或者根据Bose-Chaudhuri-Hocquenghem(BCH)编码、Reed-Solomon编码、低密度奇偶校验位校验(LDPC)编码或者另一类型的编码的其他冗余信息。主ECC数据和另外的ECC数据可以使用相同的编码方案,比如BCH方案。或者,主ECC数据和另外的ECC数据可以使用不同的编码方案。主ECC数据和另外的ECC数据可以包含相同数量的奇偶校验位,或者可以包含不同数量的奇偶校验位。
内容数据可以被存储在扇区(例如ECC扇区,比如图1的ECC页120)中。扇区可以被组织在字线中,如图2-3所示。尽管图2-3例示了诸如对于NAND快闪存储器阵列的内容数据和另外的ECC数据在字线中的组织,但是可以使用其他类型的存储器和其他存储器架构。
错误校正可以是在ECC方案中使用的奇偶校验字节的数量的函数。例如,图2-3中的每条字线可以存储8千字节(KB)的内容数据,加上奇偶校验位和头部数据。每条字线被例示为包含四个ECC页,并且每个ECC页(例如第一ECC页206)可以包括230字节的主ECC数据(“主奇偶校验位”)加上2KB的内容数据。尽管通过增加主奇偶校验位的数量可以改善ECC页的错误校正能力,但是这样的增加能导致可能增加存储器的成本的(例如NAND快闪实现方式中的)存储器阵列的大小的增加。
对于ECC页的大块或者子块可以产生另外的奇偶校验位。可以对于所有内容数据产生另外的奇偶校验位。每个ECC页可以包括其原始的奇偶校验位(主奇偶校验位)以覆盖2千字节的数据,并且还可以与(例如230字节的)另外的奇偶校验位相关联以提供对于ECC页的最左一半(或者最右一半)的错误检测和校正,比如图2所示。在一些实施例中,可以对于图3所示的ECC页的每四分之一、对于如关于图1所述的ECC页的两个一半或者根据一个或多个其他配置添加另外的奇偶校验位。确定要使用哪种另外的奇偶校验位的配置可以基于有多少存储将用于该另外的奇偶校验位。
另外的奇偶校验位可以被存储在为存储另外的奇偶校验位而留出的块中。例如,图1的另外的奇偶校验区162可以包括专用于存储另外的奇偶校验数据的存储器阵列的一个或多个块。每个块可以包括多条字线,每条字线包含另外的奇偶校验位的一个或多个扇区或ECC页,如图2-3所示。
参考图4,绘出了校正数据存储器件中的预加载的内容的方法的具体实施例。该方法被例示为以在402处,数据存储器件制造商用内容490、另外的奇偶校验位492和用于定位另外的数据的表494预加载数据存储器件而开始.例如,表494对于诸如图1的控制器110的数据存储器件的控制器是可访问的,以使该控制器能够定位对于预加载的内容的具体ECC页的另外的奇偶校验位。表494可以被布置为由字线地址和ECC页指示符索引以定位包括相应的另外的ECC数据块的存储器地址或位置的项。数据存储器件制造商可以将预加载的器件404提供给主机制造商。例如,主机制造商可以制造包括具有预加载的内容的嵌入式数据存储器件的便携式电子设备。
在408,主机制造商可以接收预加载的数据存储器件404,并且可以将该器件404固定到印刷电路板406。将器件404固定到印刷电路板406可能将器件404暴露于一个或多个数据破坏事件。为了例示,固定器件404可以包括抛光器件404、回流或可能破坏预加载的数据的一个或多个其他事件。在处理该器件404之后,比如在将器件404固定到PCB 406之后,在410,主机制造商可以开始数据校正过程。
数据校正过程可以由诸如图1的控制器110的数据存储器件的控制器进行。数据校正过程可以包括在412处,使用主ECC数据解码预加载的内容的ECC页。例如,图1的控制器110可以配置为开始扫描存储器112以检查预加载的内容区160的每个ECC页并使用诸如主ECC数据124的主ECC数据解码每个ECC页。在414,可以确定ECC页是否可使用主ECC数据校正。响应于在414确定主ECC数据足够校正该ECC页,该数据校正过程可以包括在416确定是否仍存在要分析的另外的预加载的内容。当仍存在要分析的另外的预加载的内容时,在418,可以获取预加载的内容的下一ECC页,并且处理返回以在412使用主ECC数据解码预加载的内容的该下一ECC页。
响应于在414确定使用主ECC数据不可校正该ECC页,在420处理可以通过获取对于ECC页的子块的另外的奇偶校验位而继续。在422,子块可以单独被解码,比如关于图1的第二ECC操作所例示以及描述的。在424,可以用校正了错误的子块来更新ECC页,并且处理可以返回到412,在那里可以使用主ECC数据来解码包括校正了错误的子块的ECC页。例如,该解码可以对应于图1的第三ECC操作154。
在416确定所有预加载的内容已经被分析之后,该数据校正过程可以包括在426释放包含另外的奇偶校验位的存储器。例如,可以通过更新文件系统表以指示包含另外的ECC数据的存储器位置未被使用来释放包含该另外的数据的存储器位置。在其中另外的ECC数据被存储在快闪存储器阵列的一个或多个块中的示例实现方式中,包含另外的ECC数据的块可以被擦除并且标记为可用于存储数据。或者,另外的奇偶校验位可以不被释放,并且可以由控制器保留在存储器中,以使在预加载的内容中将来存在错误的情况下能够由数据存储器件进行另外的ECC校正。
尽管关于在数据破坏事件发生在制造期间之后校正预加载的内容来描述了数据校正过程,但是在其他实现方式中,可以在其他情况下进行数据校正过程。例如,数据校正过程可以用于恢复已经由另外的ECC数据保护的用户数据以提供更高的错误校正能力。
关于图4所述的数据校正过程可以是可以由存储器器件的控制器或处理器进行的特殊固件过程。该过程可以包括读取字线中的每个ECC页并且确定是否可以用主奇偶校验位校正破坏的数据内容。如果不能用主奇偶校验位校正该数据内容,则可以获取对于该ECC页的另外的奇偶校验位并且将使用获取的另外的奇偶校验位来校正相应的数据字段(例如由另外的奇偶校验位保护的一个或多个子块)。在使用该另外的奇偶校验位校正该一个或多个子块之后,然后可以使用主奇偶校验位来校正其余的错误。
或者,可以随着数据从存储器读出“实时地(on the fly)”而不是在专门的数据校正过程期间进行错误检测和校正。因此与在单个过程中进行对于所有预加载的内容数据的数据校正相反,可以递增地进行错误校正。
提供另外的ECC数据使得能够增加用于字线的奇偶校验位而不增加存储器的大小(即,不增加用于容纳另外的奇偶校验位的图1的主ECC数据124的大小)。提供和使用另外的ECC数据的方法可以与任意的ECC技术(例如BCH、Reed-Solomon等)一起使用。如结合图1-4所述的增强的错误校正可以通过由控制器执行的固件应用于现有的控制器中,并且可以用于克服由于焊接或者其他制造工艺引起的对预加载的内容数据的破坏。
图5是使用另外的ECC数据的方法500的具体实施例的流程图。方法500可以在诸如图1的控制器110的数据存储器件的控制器中进行。方法500包括在502接收包括数据块和对于该数据块的主ECC数据的数据。该数据块包括多个子块(例如,数据的第一子块和数据的第二子块)。例如,控制器110可以向存储器112发送包括ECC页120的地址的指令,该ECC页120的地址用于控制器110读取ECC页120。在发送该指令之后,控制器110可以从存储器112接收与该ECC页120对应的数据块。
在504,开始使用主ECC数据处理数据块的ECC操作。例如,控制器110可以开始图1的第一ECC操作150以使用主ECC数据124处理数据块122。为了例示,图1的控制器110可以将接收的数据块和主ECC数据提供给ECC引擎114的输入。控制器110还可以将控制信号提供给ECC引擎114以致使ECC引擎114使用在ECC引擎114的输入处的该数据块和该主ECC数据进行ECC解码操作。
响应于该ECC操作指示数据块中的不可校正的错误,获取在数据块外部的第一另外的ECC数据。该第一另外的ECC数据对应于数据的第一子块。在506,开始第二ECC操作以使用第一另外的ECC数据来处理数据的第一子块。例如,控制器110可以向存储器112发送包括第一另外的ECC数据130的地址的读指令。在发送该指令之后,控制器110可以接收来自存储器112的该第一另外的ECC数据130。控制器110可以将第一子块126和第一另外的ECC数据130提供给ECC引擎114的输入。控制器110还可以向ECC引擎114提供控制信号以开始解码操作。该解码操作可以对应于图2的第二ECC操作152。
可以从存储器的第一字线获取数据块和主ECC数据作为第一ECC页,比如图2的第一ECC页206,并且可以从存储器的第二字线获取该第一另外的ECC数据作为第二ECC页的一部分,比如存储第二另外的ECC数据222的图2的第二ECC页208的第二子块。第二ECC页可以包括用于校正第一ECC页的第一子块中的错误的第一另外的ECC数据以及用于校正第一ECC页的第二子块中的错误的第二另外的ECC数据。第二ECC页还可以包括用于校正第一另外的ECC数据和第二另外的ECC数据中的错误的主奇偶校验位,比如图2的主ECC数据228。
在一些实现方式中,控制器可以经由一个或多个计算、比如通过向数据块的位置应用一个或多个加法或乘法因子来确定第一另外的ECC数据的位置。例如,可以进行一系列计算以将图2-3的第一ECC页206或306映射到第二ECC页208或308的相应子块。
在一些实现方式中,可以通过基于数据的存储器地址进行表查找操作来确定第一另外的ECC数据的位置。第一另外的ECC数据的位置可以进一步基于第一子块在数据块内的位置。为了例示,控制器110可以访问可以在图1的存储器112中存储的或者在对于控制器110可访问的其他存储器处的表。控制器110可以提供该数据的地址,比如用于在定位该表的元素时使用的块内的块号和字线号的指示符。控制器110还可以提供数据在字线内的位置的指示,比如字线内的ECC页的索引。提供的位置信息可以用于定位存储了第一另外的ECC数据130的位置的表元素。第一另外的ECC数据130的位置可以从该表获取并且用于从存储器112获取第一另外的ECC数据130。
可以在进行第一ECC操作150和第二ECC操作152的诸如图1的ECC引擎114的数据存储器件的公共ECC引擎处进行ECC操作和第一子块ECC操作。或者,可以在数据存储器件的不同ECC引擎处进行ECC操作和第一子块ECC操作。主ECC数据和第一另外的ECC数据可以具有相同数量的奇偶校验位。或者,主ECC数据可以具有第一数量的奇偶校验位并且第一另外的ECC数据可以具有第二数量的奇偶校验位,第二数量不同于第一数量。
在506,在第二ECC操作期间校正了第一子块中的错误之后,在508,可以开始使用主ECC数据来处理数据块的第三ECC操作。例如,第三ECC操作可以对应于图1的第三ECC操作154。在其他实现方式中,可以使用另外的ECC数据对数据块的所有子块进行错误校正并且可以绕过使用主ECC数据的错误校正。
在诸如图4中所述的实现方式中,数据可以对应于存储在数据存储器件中的预加载的内容。在数据破坏事件发生之后在用于校正预加载的内容并将其重新存储在数据存储器件中的数据校正过程期间,可以进行开始所述ECC操作。例如,数据破坏事件可能是由用于将该数据存储器件粘附到印刷电路板的焊接或回流工艺导致的。在其他实现方式中,数据可以不对应于预加载的内容,而是可以包括由另外的ECC数据保护的用户数据以提供更高的错误校正能力。
图6例示提供另外的ECC数据的方法600的具体实施例。可以在包括存储器和错误校正编码(ECC)引擎、诸如图1的数据存储器件102的存储器112和ECC引擎114的数据存储器件中进行方法600。方法600包括在602将包括数据块和第一主ECC数据的第一ECC页存储到存储器。第一主ECC数据可由ECC引擎使用来校正第一ECC页中的错误。例如,第一ECC页可以是图2的第一ECC页206。
在604,包括第一另外的ECC数据的第二ECC页被存储到存储器。该第一另外的ECC数据可由ECC引擎使用来校正该数据块内的多个子块中的单个子块中的错误。例如,第二ECC页可以是图2的第二ECC页208。
在606,可以存储将第一ECC页的地址与第二ECC页的位置相关联的表。该表可以被存储以使得数据存储器件能够在第一ECC页中发生的错误数量超过ECC引擎使用主ECC数据的校正能力时定位第二ECC页。
在一个示例实现方式中,方法600可以由图4的数据存储器件制造商控制以形成预加载的器件404。第一ECC页可以是被存储到存储器的第一部分的预加载的内容的部分,并且第二ECC页可以是被存储到存储器的第二部分的另外的奇偶校验位的部分。可以在焊接或回流工艺期间升高数据存储器件的温度之前将该预加载的内容和另外的奇偶校验位存储到存储器,比如关于图4的主机制造工艺所描述的。
尽管在此示出的各个组件被例示为块组件并且按一般术语描述,但是这样的组件可以包括一个或多个微处理器、状态机或者配置为使得图1的数据存储器件102能够进行属于这样的组件的具体功能的其他电路。例如,图1的控制器110可以表示物理组件,比如硬件控制器、状态机、逻辑电路或者其他结构,以使该数据存储器件102能够使用另外的ECC数据进行子块数据校正。
控制器110可以包括用于使用另外的ECC数据实现错误校正的专用硬件(即电路)。或者,控制器110可以使用被编程为确定何时获取和使用另外的ECC数据来解码ECC页的子块的微处理器或微控制器,来使用另外的ECC数据实现错误校正。在一个具体实施例中,控制器110包括由处理器执行的可执行指令和被存储在存储器112处的指令。或者,或另外,由可以在控制器110中包括的处理器执行的可执行指令可以被存储在不是存储器112的部分的单独的存储器位置处,比如存储在只读存储器(ROM)处。
在一个具体实施例中,数据存储器件102可以是配置为选择性地耦接到一个或多个外部设备的便携式设备。但是,在其他实施例中,数据存储器件102可以被粘附或嵌入在一个或多个主机设备内,比如在便携式通信设备的外壳内。例如,数据存储器件102可以在诸如无线电话、个人数字助理(PDA)、游戏设备或控制台、便携式导航设备或使用内部非易失性存储器的其他设备的封装的装置内。在一个具体实施例中,数据存储器件102包括非易失性存储器,比如快闪存储器(例如NAND、NOR、多级单元(MLC)、划分的位线NOR(DINOR)、AND、高电容耦合率(HiCR)、不对称无接触晶体管(ACT)或其他快闪存储器)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)或任意其他类型的存储器。
在此描述的实施例的例示意图提供对各个实施例的一般理解。可以利用并从本公开得出其他实施例,以便可以进行结构和逻辑替换和改变而不脱离本公开的范围。本公开意图覆盖各个实施例的任意以及所有随后的调整或变型。因而,本公开和附图将被认为是例示的而不是限制的。
上述的主题将被认为是例示的而不是限制的,并且所附权利要求意图覆盖落在本公开的范围内的所有这样的修改、增强和其他实施例。因此,达法律允许的最大程度,本发明的范围将由以下权利要求及其等效物的最宽可允许解释来确定,并且不应由以上详细描述限制或限定。
Claims (33)
1.一种方法,包括:
在数据存储器件的控制器中,进行:
接收包括数据块和对于该数据块的主错误校正编码(ECC)数据的数据,该数据块包括数据的第一子块和数据的第二子块;
开始ECC操作以使用主ECC数据处理该数据块;以及
响应于所述ECC操作指示该数据块中的不可校正的错误,获取在该数据块外部的第一另外的ECC数据,其中,该第一另外的ECC数据对应于数据的第一子块,并且开始第二ECC操作以使用该第一另外的ECC数据来处理数据的第一子块。
2.如权利要求1所述的方法,还包括在该第二ECC操作期间校正该第一子块中的错误之后,开始第三ECC操作以使用该主ECC数据处理该数据块。
3.如权利要求1所述的方法,其中该数据对应于存储在数据存储器件中的预加载的内容,以及其中在数据破坏事件发生之后在用于校正该预加载的内容并将其重新存储在数据存储器件中的数据校正过程期间,进行开始所述ECC操作。
4.如权利要求3所述的方法,其中该数据破坏事件是由用于将数据存储器件粘附到印刷电路板的焊接或回流工艺导致的。
5.如权利要求1所述的方法,其中从存储器的第一字线获取该数据块和该主ECC数据作为第一ECC页,以及其中从存储器的第二字线获取第一另外的ECC数据作为第二ECC页的一部分。
6.如权利要求5所述的方法,其中该第二ECC页包括用于校正第一ECC页的第一子块中的错误的第一另外的ECC数据以及用于校正第一ECC页的第二子块中的错误的第二另外的ECC数据。
7.如权利要求6所述的方法,其中该第二ECC页还包括用于校正第一另外的ECC数据和第二另外的ECC数据中的错误的主奇偶校验位。
8.如权利要求1所述的方法,其中该主ECC数据和该第一另外的ECC数据具有相同数量的奇偶校验位。
9.如权利要求1所述的方法,其中该主ECC数据具有第一数量的奇偶校验位,并且该第一另外的ECC数据具有第二数量的奇偶校验位,该第二数量不同于该第一数量。
10.如权利要求1所述的方法,其中在数据存储器件的公共ECC引擎处进行该ECC操作和第一子块ECC操作。
11.如权利要求所述的方法,还包括进行表查找操作以基于数据的存储器地址确定第一另外的ECC数据的位置。
12.如权利要求11所述的方法,其中该第一另外的ECC数据的位置进一步基于第一子块在该数据块内的位置。
13.一种方法,包括:
在包括存储器和错误校正编码(ECC)引擎的数据存储器件中,进行:
将包括数据块和第一主ECC数据的第一ECC页存储到该存储器,其中该第一主ECC数据可由该ECC引擎使用来校正该第一ECC页中的错误;以及
将包括第一另外的ECC数据的第二ECC页存储到该存储器,其中该第一另外的ECC数据可由该ECC引擎使用来校正该数据块内的多个子块中的单个子块中的错误。
14.如权利要求13所述的方法,还包括存储将该第一ECC页的地址与该第二ECC页的位置相关联的表,以使得当在该第一ECC页中发生的错误的数量超过该ECC引擎使用该主ECC数据的校正能力时,该数据存储器件能够定位该第二ECC页。
15.如权利要求13所述的方法,其中该第一ECC页是存储到该存储器的第一部分的预加载的内容的部分,并且该第二ECC页是存储到该存储器的第二部分的另外的奇偶校验位的部分。
16.如权利要求15所述的方法,其中在焊接或回流工艺期间升高数据存储器件的温度之前将该预加载的内容和该另外的奇偶校验位存储到存储器。
17.一种数据存储器件,包括:
存储器器件;以及
控制器,耦接到该存储器,其中该控制器包括错误校正编码(ECC)引擎,
其中该控制器配置为在该ECC引擎处开始第一ECC操作以使用对于数据块的主ECC数据来处理该数据块,以及
其中该控制器配置为响应于该第一ECC操作指示该数据块中的不可校正的错误,从存储器获取在该数据块外部的第一另外的ECC数据并开始第二ECC操作以使用该第一另外的ECC数据来处理该数据块的第一子块。
18.如权利要求17所述的数据存储器件,其中包括该数据块和该主ECC数据的数据对应于存储在存储器中的预加载的内容,以及其中在数据破坏事件发生之后在用于校正该预加载的内容并将其重新存储在存储器中的数据校正过程期间,进行开始所述ECC操作。
19.如权利要求18所述的数据存储器件,其中该数据破坏事件是由用于将数据存储器件粘附到印刷电路板的焊接或回流工艺导致的。
20.如权利要求18所述的数据存储器件,其中该控制器配置为在完成该数据校正过程之后将该第一另外的ECC数据保持在该存储器中。
21.如权利要求18所述的数据存储器件,其中该控制器配置为在完成该数据校正过程之后释放存储该第一另外的ECC数据的存储器的一部分。
22.如权利要求18所述的数据存储器件,其中该控制器配置为在完成该数据校正过程之后保持该第一另外的ECC数据。
23.如权利要求18所述的数据存储器件,其中该控制器配置为从存储器的第一字线从第一ECC页获取该数据块和该主ECC数据,并从该存储器的第二字线获取该第一另外的ECC数据作为第二ECC页的一部分。
24.如权利要求23所述的数据存储器件,其中该第二ECC页包括用于校正该第一ECC页的第一子块中的错误的第一另外的ECC数据以及用于校正该第一ECC页的第二子块中的错误的第二另外的ECC数据。
25.如权利要求24所述的数据存储器件,其中该第二ECC页还包括用于校正该第一另外的ECC数据和该第二另外的ECC数据中的错误的主奇偶校验位。
26.如权利要求17所述的数据存储器件,其中该主ECC数据和该第一另外的ECC数据具有相同数量的奇偶校验位。
27.如权利要求17所述的数据存储器件,其中该主ECC数据具有第一数量的奇偶校验位,并且该第一另外的ECC数据具有第二数量的奇偶校验位,该第二数量不同于该第一数量。
28.如权利要求17所述的数据存储器件,其中该控制器配置为进行表查找操作以基于数据块的存储器地址确定第一另外的ECC数据的位置。
29.如权利要求28所述的数据存储器件,其中该第一另外的ECC数据的位置还基于该第一子块在该数据块内的位置。
30.如权利要求17所述的数据存储器件,其中该存储器是快闪存储器。
31.如权利要求30所述的数据存储器件,其中该数据存储器件是以下之一:
快闪存储卡;
通用串行总线(USB)快闪盘;
固态盘(SSD);以及
嵌入式快闪存储器。
32.如权利要求17所述的数据存储器件,其中该存储器是三维(3D)存储器。
33.如权利要求17所述的数据存储器件,其中该数据存储器件配置为耦接到主机设备作为嵌入式存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/023,147 | 2011-02-08 | ||
US13/023,147 US8484542B2 (en) | 2011-02-08 | 2011-02-08 | Data recovery using additional error correction coding data |
PCT/US2012/023735 WO2012109101A1 (en) | 2011-02-08 | 2012-02-03 | Data recovery using additional error correction coding data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103329104A true CN103329104A (zh) | 2013-09-25 |
CN103329104B CN103329104B (zh) | 2016-08-10 |
Family
ID=45569776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280005978.6A Expired - Fee Related CN103329104B (zh) | 2011-02-08 | 2012-02-03 | 使用另外的错误校正编码数据的数据恢复 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8484542B2 (zh) |
EP (1) | EP2673709B1 (zh) |
KR (1) | KR101394596B1 (zh) |
CN (1) | CN103329104B (zh) |
TW (1) | TW201245953A (zh) |
WO (1) | WO2012109101A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750617A (zh) * | 2013-12-31 | 2015-07-01 | 慧荣科技股份有限公司 | 电子装置及其数据维护方法 |
CN106104491A (zh) * | 2014-03-01 | 2016-11-09 | 希耐克斯实验室公司 | 具有数据保护机制的计算系统及其操作方法 |
CN106445723A (zh) * | 2015-08-10 | 2017-02-22 | 慧荣科技股份有限公司 | 存取闪存模块的方法、闪存控制器以及记忆装置 |
CN106575256A (zh) * | 2014-06-19 | 2017-04-19 | 桑迪士克科技有限责任公司 | 子块垃圾收集 |
CN107015886A (zh) * | 2015-11-20 | 2017-08-04 | 三星电子株式会社 | 操作存储设备的方法和操作包括其的数据处理系统的方法 |
CN107564568A (zh) * | 2016-06-30 | 2018-01-09 | 台湾积体电路制造股份有限公司 | 存储器阵列中的错误校正方法及实施其的系统 |
CN108052414A (zh) * | 2017-12-28 | 2018-05-18 | 湖南国科微电子股份有限公司 | 一种提升ssd工作温度范围的方法及系统 |
CN108073469A (zh) * | 2016-11-18 | 2018-05-25 | 爱思开海力士有限公司 | 用于通用产品代码的数据映射方案 |
CN108389602A (zh) * | 2017-02-02 | 2018-08-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109961817A (zh) * | 2017-12-26 | 2019-07-02 | 南亚科技股份有限公司 | 动态随机存取存储器及其操作方法 |
CN110148434A (zh) * | 2018-02-13 | 2019-08-20 | 三星电子株式会社 | 半导体存储器件、存储系统和操作半导体存储器件的方法 |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8418026B2 (en) * | 2010-10-27 | 2013-04-09 | Sandisk Technologies Inc. | Hybrid error correction coding to address uncorrectable errors |
KR101751506B1 (ko) * | 2011-03-28 | 2017-06-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 배드 영역 관리 방법 |
US10031850B2 (en) * | 2011-06-07 | 2018-07-24 | Sandisk Technologies Llc | System and method to buffer data |
JP5426711B2 (ja) * | 2011-06-08 | 2014-02-26 | パナソニック株式会社 | メモリコントローラ及び不揮発性記憶装置 |
KR20130012737A (ko) * | 2011-07-26 | 2013-02-05 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 포함하는 반도체 시스템 |
US20130117632A1 (en) * | 2011-11-08 | 2013-05-09 | Sony Corporation | Storage control apparatus |
JP2013109567A (ja) * | 2011-11-21 | 2013-06-06 | Toshiba Corp | ストレージデバイス及び誤り訂正方法 |
US8694862B2 (en) * | 2012-04-20 | 2014-04-08 | Arm Limited | Data processing apparatus using implicit data storage data storage and method of implicit data storage |
US9804917B2 (en) * | 2012-09-25 | 2017-10-31 | Hewlett Packard Enterprise Development Lp | Notification of address range including non-correctable error |
US9059736B2 (en) * | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
US8904250B2 (en) * | 2013-02-14 | 2014-12-02 | Micron Technology, Inc. | Autorecovery after manufacturing/system integration |
US9367391B2 (en) | 2013-03-15 | 2016-06-14 | Micron Technology, Inc. | Error correction operations in a memory device |
US9569308B1 (en) | 2013-07-15 | 2017-02-14 | Rambus Inc. | Reduced-overhead error detection and correction |
US9213595B2 (en) * | 2013-10-15 | 2015-12-15 | International Business Machines Corporation | Handling errors in ternary content addressable memories |
JP6028709B2 (ja) * | 2013-10-18 | 2016-11-16 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
US9229806B2 (en) | 2013-11-14 | 2016-01-05 | Sandisk Technologies Inc. | Block closure techniques for a data storage device |
US9165670B2 (en) * | 2013-11-14 | 2015-10-20 | Sandisk Technologies Inc. | Data retention detection techniques for a data storage device |
US10417090B2 (en) | 2013-12-23 | 2019-09-17 | Cnex Labs, Inc. | Computing system with data protection mechanism and method of operation thereof |
US9323607B2 (en) | 2014-04-29 | 2016-04-26 | Seagate Technology Llc | Data recovery once ECC fails to correct the data |
US10146482B2 (en) | 2014-08-01 | 2018-12-04 | Toshiba Memory Corporation | Global error recovery system |
US9583206B2 (en) | 2014-10-02 | 2017-02-28 | Sandisk Technologies Llc | Data storage device having reflow awareness |
WO2016051599A1 (ja) * | 2014-10-03 | 2016-04-07 | 株式会社日立製作所 | メモリコントローラ及びデータ制御方法 |
US10248497B2 (en) * | 2014-10-22 | 2019-04-02 | Advanced Micro Devices, Inc. | Error detection and correction utilizing locally stored parity information |
US9472270B2 (en) | 2014-10-24 | 2016-10-18 | Sandisk Technologies Llc | Nonvolatile storage reflow detection |
KR20160059050A (ko) | 2014-11-17 | 2016-05-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9786386B2 (en) * | 2015-02-27 | 2017-10-10 | Microsoft Technology Licensing, Llc | Dynamic approximate storage for custom applications |
US9811420B2 (en) | 2015-03-27 | 2017-11-07 | Intel Corporation | Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC) |
TWI541809B (zh) | 2015-04-24 | 2016-07-11 | 群聯電子股份有限公司 | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 |
US10063263B2 (en) * | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Extended error correction coding data storage |
US9734009B2 (en) * | 2015-10-08 | 2017-08-15 | Sandisk Technologies Llc | Data encoding techniques for a device |
US10284232B2 (en) * | 2015-10-28 | 2019-05-07 | Pure Storage, Inc. | Dynamic error processing in a storage device |
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
US9946596B2 (en) | 2016-01-29 | 2018-04-17 | Toshiba Memory Corporation | Global error recovery system |
US10318378B2 (en) * | 2016-02-25 | 2019-06-11 | Micron Technology, Inc | Redundant array of independent NAND for a three-dimensional memory array |
US10324782B1 (en) | 2016-03-24 | 2019-06-18 | Emc Corporation | Hiccup management in a storage array |
US10101934B1 (en) | 2016-03-24 | 2018-10-16 | Emc Corporation | Memory allocation balancing for storage systems |
US10705907B1 (en) | 2016-03-24 | 2020-07-07 | EMC IP Holding Company LLC | Data protection in a heterogeneous random access storage array |
TWI582581B (zh) * | 2016-05-13 | 2017-05-11 | 群暉科技股份有限公司 | 用來於一冗餘儲存系統中進行資料修復之方法與裝置 |
US10152371B1 (en) * | 2016-09-30 | 2018-12-11 | EMC IP Holding Company LLC | End-to-end data protection for distributed storage |
US10223008B1 (en) | 2016-09-30 | 2019-03-05 | EMC IP Holding Company LLC | Storage array sizing for compressed applications |
US10255172B1 (en) | 2016-09-30 | 2019-04-09 | EMC IP Holding Company LLC | Controlled testing using code error injection |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10817388B1 (en) | 2017-07-21 | 2020-10-27 | EMC IP Holding Company LLC | Recovery of tree data in a geographically distributed environment |
US10684780B1 (en) | 2017-07-27 | 2020-06-16 | EMC IP Holding Company LLC | Time sensitive data convolution and de-convolution |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10528260B1 (en) | 2017-10-26 | 2020-01-07 | EMC IP Holding Company LLC | Opportunistic ‘XOR’ of data for geographically diverse storage |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10817374B2 (en) | 2018-04-12 | 2020-10-27 | EMC IP Holding Company LLC | Meta chunks |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US10936196B2 (en) | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US10719250B2 (en) * | 2018-06-29 | 2020-07-21 | EMC IP Holding Company LLC | System and method for combining erasure-coded protection sets |
US10795759B2 (en) | 2018-09-10 | 2020-10-06 | Micron Technology, Inc. | Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories |
KR20200042360A (ko) | 2018-10-15 | 2020-04-23 | 에스케이하이닉스 주식회사 | 에러 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템 |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US10768840B2 (en) | 2019-01-04 | 2020-09-08 | EMC IP Holding Company LLC | Updating protection sets in a geographically distributed storage environment |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
KR20200099438A (ko) | 2019-02-14 | 2020-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 |
US10983883B2 (en) | 2019-03-27 | 2021-04-20 | Spin Memory, Inc. | Error recovery in magnetic random access memory after reflow soldering |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
KR20210015087A (ko) | 2019-07-31 | 2021-02-10 | 에스케이하이닉스 주식회사 | 오류 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템 |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
EP3849089A1 (en) | 2020-01-09 | 2021-07-14 | Microsoft Technology Licensing, LLC | Encoding for data recovery in storage systems |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11218165B2 (en) * | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11043266B1 (en) | 2020-06-15 | 2021-06-22 | Western Digital Technologies, Inc. | Multi-level read after heating event in non-volatile storage |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
KR20220074079A (ko) | 2020-11-27 | 2022-06-03 | 삼성전자주식회사 | 스토리지 컨트롤러 및 스토리지 컨트롤러의 에러 복구 방법 |
US11468963B2 (en) * | 2020-12-08 | 2022-10-11 | Macronix International Co., Ltd. | Memory device and read method thereof |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
KR20230026016A (ko) * | 2021-08-17 | 2023-02-24 | 삼성전자주식회사 | 스토리지 장치 |
US20240054048A1 (en) * | 2022-08-09 | 2024-02-15 | Micron Technology, Inc. | Multi-layer code rate architecture for special event protection with reduced performance penalty |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1167981A (zh) * | 1995-12-25 | 1997-12-17 | 索尼公司 | 编码数字信号的解码装置和方法 |
US6092231A (en) * | 1998-06-12 | 2000-07-18 | Qlogic Corporation | Circuit and method for rapid checking of error correction codes using cyclic redundancy check |
US20050091569A1 (en) * | 2003-10-24 | 2005-04-28 | Hon Hai Precision Industry Co., Ltd. | System and method for securely storing data in a memory |
WO2009086412A1 (en) * | 2007-12-27 | 2009-07-09 | Pliant Technology, Inc. | Patrol function used in flash storage controller to detect data errors |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978958A (en) * | 1995-04-03 | 1999-11-02 | Matsushita Electric Industrial Co., Ltd. | Data transmission system, data recording and reproducing apparatus and recording medium each having data structure of error correcting code |
JP3975245B2 (ja) | 1999-12-16 | 2007-09-12 | 株式会社ルネサステクノロジ | 記録再生装置および半導体メモリ |
US6757862B1 (en) * | 2000-08-21 | 2004-06-29 | Handspring, Inc. | Method and apparatus for digital data error correction coding |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7173852B2 (en) | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
US7171591B2 (en) | 2003-12-23 | 2007-01-30 | International Business Machines Corporation | Method and apparatus for encoding special uncorrectable errors in an error correction code |
JP4828816B2 (ja) * | 2004-10-25 | 2011-11-30 | 株式会社東芝 | メモリカード、半導体装置、及びメモリカードの制御方法 |
US7849381B2 (en) * | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
US7562283B2 (en) | 2005-12-27 | 2009-07-14 | D.S.P. Group Ltd. | Systems and methods for error correction using binary coded hexidecimal or hamming decoding |
US7809994B2 (en) * | 2006-05-17 | 2010-10-05 | Sandisk Corporation | Error correction coding for multiple-sector pages in flash memory devices |
KR100842680B1 (ko) | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
US7958427B1 (en) * | 2007-03-30 | 2011-06-07 | Link—A—Media Devices Corporation | ECC with out of order completion |
US8136008B1 (en) * | 2007-03-30 | 2012-03-13 | Link—A—Media Devices Corporation | ECC with out of order completion |
US8370715B2 (en) | 2007-04-12 | 2013-02-05 | International Business Machines Corporation | Error checking addressable blocks in storage |
US8051358B2 (en) | 2007-07-06 | 2011-11-01 | Micron Technology, Inc. | Error recovery storage along a nand-flash string |
US7747903B2 (en) * | 2007-07-09 | 2010-06-29 | Micron Technology, Inc. | Error correction for memory |
US8095851B2 (en) * | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
CN101140809A (zh) * | 2007-09-07 | 2008-03-12 | 炬力集成电路设计有限公司 | 支持流水线纠错码和可配置操作的flash控制器及其控制方法 |
JP4538034B2 (ja) * | 2007-09-26 | 2010-09-08 | 株式会社東芝 | 半導体記憶装置、及びその制御方法 |
US7859931B2 (en) * | 2007-12-14 | 2010-12-28 | Hynix Semiconductor Inc. | Refresh period signal generator with digital temperature information generation function |
US8276028B2 (en) | 2008-05-23 | 2012-09-25 | Intel Corporation | Using error information from nearby locations to recover uncorrectable data in non-volatile memory |
US7859932B2 (en) * | 2008-12-18 | 2010-12-28 | Sandisk Corporation | Data refresh for non-volatile storage |
-
2011
- 2011-02-08 US US13/023,147 patent/US8484542B2/en active Active
-
2012
- 2012-02-03 KR KR1020137021030A patent/KR101394596B1/ko active IP Right Grant
- 2012-02-03 WO PCT/US2012/023735 patent/WO2012109101A1/en active Application Filing
- 2012-02-03 EP EP12703224.1A patent/EP2673709B1/en active Active
- 2012-02-03 CN CN201280005978.6A patent/CN103329104B/zh not_active Expired - Fee Related
- 2012-02-07 TW TW101103943A patent/TW201245953A/zh unknown
-
2013
- 2013-06-10 US US13/913,845 patent/US8806297B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1167981A (zh) * | 1995-12-25 | 1997-12-17 | 索尼公司 | 编码数字信号的解码装置和方法 |
US6092231A (en) * | 1998-06-12 | 2000-07-18 | Qlogic Corporation | Circuit and method for rapid checking of error correction codes using cyclic redundancy check |
US20050091569A1 (en) * | 2003-10-24 | 2005-04-28 | Hon Hai Precision Industry Co., Ltd. | System and method for securely storing data in a memory |
WO2009086412A1 (en) * | 2007-12-27 | 2009-07-09 | Pliant Technology, Inc. | Patrol function used in flash storage controller to detect data errors |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750617A (zh) * | 2013-12-31 | 2015-07-01 | 慧荣科技股份有限公司 | 电子装置及其数据维护方法 |
CN106104491A (zh) * | 2014-03-01 | 2016-11-09 | 希耐克斯实验室公司 | 具有数据保护机制的计算系统及其操作方法 |
CN106575256A (zh) * | 2014-06-19 | 2017-04-19 | 桑迪士克科技有限责任公司 | 子块垃圾收集 |
CN106575256B (zh) * | 2014-06-19 | 2019-10-25 | 桑迪士克科技有限责任公司 | 子块垃圾收集 |
CN106445723B (zh) * | 2015-08-10 | 2019-04-26 | 慧荣科技股份有限公司 | 存取闪存模块的方法、闪存控制器以及记忆装置 |
CN106445723A (zh) * | 2015-08-10 | 2017-02-22 | 慧荣科技股份有限公司 | 存取闪存模块的方法、闪存控制器以及记忆装置 |
US10324789B2 (en) | 2015-08-10 | 2019-06-18 | Silicon Motion Inc. | Flash memory controller and memory device for accessing flash memory module, and associated method |
CN107015886A (zh) * | 2015-11-20 | 2017-08-04 | 三星电子株式会社 | 操作存储设备的方法和操作包括其的数据处理系统的方法 |
CN107015886B (zh) * | 2015-11-20 | 2021-12-21 | 三星电子株式会社 | 操作存储设备的方法和操作包括其的数据处理系统的方法 |
CN107564568A (zh) * | 2016-06-30 | 2018-01-09 | 台湾积体电路制造股份有限公司 | 存储器阵列中的错误校正方法及实施其的系统 |
US10558525B2 (en) | 2016-06-30 | 2020-02-11 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method of correcting errors in a memory array and a system for implementing the same |
CN107564568B (zh) * | 2016-06-30 | 2020-08-14 | 台湾积体电路制造股份有限公司 | 存储器阵列中的错误校正方法及实施其的系统 |
US11294764B2 (en) | 2016-06-30 | 2022-04-05 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method of correcting errors in a memory array and method of screening weak bits in the same |
US11714717B2 (en) | 2016-06-30 | 2023-08-01 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method of correcting errors in a memory array and method of screening weak bits in the same |
CN108073469A (zh) * | 2016-11-18 | 2018-05-25 | 爱思开海力士有限公司 | 用于通用产品代码的数据映射方案 |
CN108073469B (zh) * | 2016-11-18 | 2021-06-25 | 爱思开海力士有限公司 | 用于通用产品代码的数据映射方案 |
CN108389602A (zh) * | 2017-02-02 | 2018-08-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108389602B (zh) * | 2017-02-02 | 2021-11-12 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109961817A (zh) * | 2017-12-26 | 2019-07-02 | 南亚科技股份有限公司 | 动态随机存取存储器及其操作方法 |
CN108052414A (zh) * | 2017-12-28 | 2018-05-18 | 湖南国科微电子股份有限公司 | 一种提升ssd工作温度范围的方法及系统 |
CN110148434A (zh) * | 2018-02-13 | 2019-08-20 | 三星电子株式会社 | 半导体存储器件、存储系统和操作半导体存储器件的方法 |
CN110148434B (zh) * | 2018-02-13 | 2024-03-08 | 三星电子株式会社 | 半导体存储器件、存储系统和操作半导体存储器件的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012109101A1 (en) | 2012-08-16 |
US8806297B2 (en) | 2014-08-12 |
US20120204077A1 (en) | 2012-08-09 |
KR20130101149A (ko) | 2013-09-12 |
TW201245953A (en) | 2012-11-16 |
EP2673709A1 (en) | 2013-12-18 |
US8484542B2 (en) | 2013-07-09 |
US20130275832A1 (en) | 2013-10-17 |
EP2673709B1 (en) | 2019-06-12 |
KR101394596B1 (ko) | 2014-05-14 |
CN103329104B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103329104A (zh) | 使用另外的错误校正编码数据的数据恢复 | |
CN108062258B (zh) | 用于错误恢复的循环交错的xor阵列 | |
US8719677B2 (en) | Using ECC encoding to verify an ECC decode operation | |
CN106169312B (zh) | 用于快闪存储的广义乘积码 | |
US8566675B2 (en) | Data handling | |
US9229802B2 (en) | Non-systematic coded error correction | |
US7865809B1 (en) | Data error detection and correction in non-volatile memory devices | |
EP2513795B1 (en) | Auxiliary parity bits for data written in multi-level cells | |
US20140189468A1 (en) | Memory devices and systems configured to adjust a size of an ecc coverage area | |
WO2013096581A1 (en) | Multi-phase ecc encoding using algebraic codes | |
KR20120137354A (ko) | 슬라이딩-윈도우 에러 정정 | |
US9003264B1 (en) | Systems, methods, and devices for multi-dimensional flash RAID data protection | |
TW201346923A (zh) | 使用單一錯誤偵測奇偶校驗的抹除修正 | |
US9979417B2 (en) | Enhanced chip-kill schemes by using ECC syndrome pattern | |
KR20160039153A (ko) | 에러 정정 코드(ecc) 에러 핸들링을 위한 방법 및 디바이스 | |
CN104252317A (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
US11115062B2 (en) | Memory system with adaptive threshold decoding and method of operating such memory system | |
CN102890969B (zh) | 数据处理方法、存储器控制器及存储器储存装置 | |
US9996412B2 (en) | Enhanced chip-kill schemes by using sub-trunk CRC | |
CN103098378A (zh) | 分布式ecc处理的系统和方法 | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器系统及其操作方法 | |
CN108073469B (zh) | 用于通用产品代码的数据映射方案 | |
CN114613419A (zh) | 控制器和包括控制器的存储器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: texas Patentee after: DELPHI INT OPERATIONS LUX SRL Address before: texas Patentee before: Sandisk Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160810 Termination date: 20200203 |
|
CF01 | Termination of patent right due to non-payment of annual fee |