CN112068778B - 用于保持从存储阵列中读取的数据的完整性的方法和设备 - Google Patents

用于保持从存储阵列中读取的数据的完整性的方法和设备 Download PDF

Info

Publication number
CN112068778B
CN112068778B CN202010922155.6A CN202010922155A CN112068778B CN 112068778 B CN112068778 B CN 112068778B CN 202010922155 A CN202010922155 A CN 202010922155A CN 112068778 B CN112068778 B CN 112068778B
Authority
CN
China
Prior art keywords
errors
data bits
array
data
error matrix
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.)
Active
Application number
CN202010922155.6A
Other languages
English (en)
Other versions
CN112068778A (zh
Inventor
骆建军
刘海銮
楚传仁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sage Microelectronics Corp
Original Assignee
Sage Microelectronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sage Microelectronics Corp filed Critical Sage Microelectronics Corp
Publication of CN112068778A publication Critical patent/CN112068778A/zh
Application granted granted Critical
Publication of CN112068778B publication Critical patent/CN112068778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/458Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种用于保障从存储阵列中读取的数据的完整性的方法和设备。根据本发明的一个方面,所述方法包括:接收数据位阵列;通过合并所述数据位阵列中的错误形成至少一个错误矩阵;将所述错误矩阵中的数据位的值从“1”翻转到“0”或从“0”翻转到“1”,并用所述错误矩阵中的已翻转数据位来更新所述数据位阵列;沿着第一维度将第一预定义ECC解码操作应用于具有已翻转数据位的所述数据位阵列,以检测并校正所述已翻转数据位中的错误以产生具有一些已校正数据位的所述数据位阵列;及,沿着第二维度将第二预定义ECC解码操作应用于具有一些已校正数据位的所述数据位阵列,以检测并校正所述已翻转数据位中的剩余的错误。

Description

用于保持从存储阵列中读取的数据的完整性的方法和设备
技术领域
本发明大体上涉及存储的数据管理领域,更具体地涉及数据管理中的数据完整性及纠错,以及用矩阵翻转纠错的方法和设备。
背景技术
每时每刻都在创建各种各样的电子数据。现在比以往任何时候都更为需要保留或存储数据。已经开发了各种各样的技术和装置来存储这些数据。数据存储常常包含硬件组件和存储介质,以保存数据信息。存储介质的实例包含穿孔卡片、硬盘、软盘、磁带、光盘及半导体。在以半导体为基础的存储介质中,闪存(flash memory)是一种可电擦除和重新编程的非易失性存储器,在许多应用中得到了广泛的应用。闪存的常见用途是固态驱动器(SSD,俗称固态硬盘),它可以以非常小的尺寸存储大量的数据,从而为许多行业和消费者提供各种新的应用。
闪存的问题之一是由于存储器磨损、读干扰、写干扰、过度编程、电荷泄露等引起的数据错误。随着NAND(与非)闪存技术的发展和多层级单元(MLC)技术的进步,尤其是纳米级工艺几何结构的发展,这些错误越来越引起人们的关注。纠错码(Error CorrectionCode or Error Correcting Code,简称ECC)普遍应用于NAND闪存,以检测和校正闪存中可能出现的误码。然而,闪存的误码率随着编程/擦除周期的数目及技术的扩展而增加。因此,需要使用ECC来校正更多的错误,同时不需要为纠错码分配太多空间。在不添加额外成本或不影响操作性能的情况下,还需要一种技术,该技术可轻松用于支持更高的误码率,并提高NAND闪存的寿命。
ECC是一种结合冗余信息对原始消息进行编码的算法。所述冗余允许接收器检测可能出现在所述消息中的任何位置的有限数目的错误,并且如果错误数量在限制范围内,则通常可以更正这些错误。ECC可检测并校正的错误的数目取决于所使用的基础编码方案。一个常见的例子是汉明码(Hamming code)。在许多汉明码当中,一个典型的汉明码(7,4)通过增加三个奇偶校验位将四位数据编码成七位。在闪存阵列的容量给定的情况下,分配的奇偶校验位越多,则所述闪存阵列可提供的存储容量越少。因此,还需要在不损害存储介质(例如,闪存阵列)的存储容量的情况下提高纠错能力(correcting limit)的技术。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
本发明大体涉及在ECC用于数据阵列(例如闪存中的数据位)时提高纠错能力的方法和设备。根据本发明的一个方面,将传输或存储在不可靠的环境中的数据在两个维度中进行ECC编码。取决于实施方案,所述数据可在编码之前被压缩。当被请求时,ECC编码的数据首先在两个维度中被解码,在确定错误矩阵中的错误面积是在预定义纠错能力范围内时,随后进行在本文中所称的矩阵翻转纠错。
根据本发明的又一方面,可使用ECC及矩阵翻转纠错对ECC编码的数据进行迭代解码以提高ECC中的纠错能力。
根据本发明的又一方面,基于ECC的解码操作在控制器或处理器中实现,所述控制器或处理器被提供来访问例如闪存阵列中存储的数据。所述处理器还可用以根据预定义ECC编码规则来对原始数据进行编码。根据本发明的一个实施例,此处理器被设计成执行固件或代码以完成对数据进行编码或解码的操作。
根据本发明的又一方面,当一个维度中的错误超过ECC可校正的最大错误数目,但仍小于一个阈值时,这些错误被隔离并形成矩阵(也称为错误矩阵)的形式,随后这些错误通过翻转所述错误矩阵中的数据位而被校正。
本发明可实施为一种设备、方法及系统的一部分。不同实施方案可产生不同益处、目标和优点。在一个实施例中,本发明是一种用于保障从存储阵列中读取的数据的完整性的方法,所述方法包括:接收数据阵列;通过合并所述数据位阵列中的错误形成至少一个错误矩阵;将所述错误矩阵中的数据位的值全部反转,例如从“1”翻转到“0”或从“0”翻转到“1”,并用所述错误矩阵中的已翻转数据位来更新所述数据位阵列;沿着第一维度将第一预定义ECC解码操作应用于包含已翻转数据位的所述数据位阵列,以检测并校正所述已翻转数据位中的错误以产生具有一些已校正数据位的所述数据位阵列;及,沿着第二维度将第二预定义ECC解码操作应用于具有一些已校正数据位的所述数据位阵列,以检测并校正所述已翻转数据位中的剩余的错误。
根据另一实施例,本发明是一种用于保障数据读取的完整性的设备,所述设备包括:存储区,其用于保存代码;处理器,其耦合到所述存储区,执行所述代码且执行以上方法的操作。
所述第一预定义ECC解码操作定义有所述第一预定义ECC解码操作能够校正的第一最大错误数目MAX1st,所述第二预定义ECC定义有所述第二预定义ECC能够校正的第二最大错误数目MAX2nd,所述错误矩阵中的行中的错误的数目在(MAX1st+1,2MAX1st+1)内,所述错误矩阵中的列中的错误的数目在(MAX2nd+1,2MAX2nd+1)内。取决于具体的实施例,在阵列中的数据位表示时,MAX1st或MAX2nd既可为MAXROW,又可以是MAXCOL,其分别指代数据位的行或列。
关于本发明的其他目的,特征以及优点,下面将结合附图在具体实施方式中详细描述。
附图说明
接下来的具体实施方式、后面的权利要求以及附图将有助于了解本发明的具体特征,各实施例以及优点,其中:
图1示出了包含SSD控制器、RAM缓冲器、闪存阵列和主机接口的固态装置(SSD)的示例性架构;
图2示出了在水平方向及垂直方向两个维度上应用ECC编码的实例;
图3A示出了根据本发明的一个实施例的将数据流写入到闪存阵列中的流程;
图3B示出了根据本发明的一个实施例的检测及校正存储的数据中的错误的流程;
图4A示出了示例性的数据位阵列,其中一些数据位被损坏,假设每个数据位存储于一个M×N排布的存储单元中;
图4B示出了具有较多错误的数据位阵列的另一示例性示例;
图4C示出了图4B的数据位阵列已根据ECC解码沿着一个维度(例如,水平或行)被校正后的数据位阵列;
图4D示出了在错误的数目已经超过ECC能校正的最大错误数目(MAXROW)时,对所述数据位阵列沿另一个维度(例如,垂直或列)应用ECC解码后的示意图;
图4E示出了多排(行及列)中的错误超过最大错误数目MAXROW或MAXCOL的情形;
图4F示出了因为一排中的错误的数目超过最大错误数目MAXROW或MAXCOL而无法由ECC垂直地或水平地校正的数据位阵列的布局;
图4G示出了图4F的重新布置,其中剩余的错误被重新布置,从而形成大于MAXROW×MAXCOL的3×4错误矩阵;
图4H示出了3×4错误矩阵以及在翻转所述错误矩阵中的错误位之后得到的两个示例性矩阵,其中假设MAXROW=2且MAXCOL=3;
图4I示出了扩展的4×5错误矩阵的另一实例,其中假设MAXROW=2且MAXCOL=3;
图5A示出了根据本发明的一个实施例的矩阵翻转纠错的流程;和
图5B示出了形成若干错误矩阵的示例。
具体实施方式
本发明的详细描述主要通过程序、步骤、逻辑块、过程或其他象征性的描述来直接或间接地模拟本发明技术方案的运作。为透彻的理解本发明,在接下来的描述中陈述了很多特定细节。而在没有这些特定细节时,本发明则可能仍可实现。所属领域内的技术人员使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他们的工作本质。换句话说,为避免混淆本发明的目的,由于熟知的方法和程序已经容易理解,因此它们并未被详细描述。
此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。此外,表示一个或多个实施例的方法、流程图或功能框图中的模块顺序并非固定的指代任何特定顺序,也不构成对本发明的限制。
本发明中的重要目的、优点和益处之一是保障数据完整性和提高数据在通信或存储单元中尤其在NAND闪存单元中的可靠性。图1示出了包含SSD控制器102、RAM缓冲器104、闪存阵列106及主机接口108的固态装置(SSD,也可以称之为固态硬盘或固态驱动器)100的示例性架构。SSD控制器102管理存储在所述闪存阵列(或称闪存封装)106上的数据并与主机装置通信。当主机装置需要从SSD 100中读取数据或将数据写入到所述SSD100中时,其将与SSD控制器102通信。通过主机接口108(例如,eSATA、USB、eMMC、CF卡、SD/micro SD卡及PCIe),来自主机装置(图中未示)的数据在SSD控制器102中被耦合、处理,且存储在存储介质中,即存储在闪存阵列106中。各种映射表由SSD控制器102维护,以记录所述数据如何在闪存阵列106上分布的位置,其中一张或多张映射表记录数据或数据位(data bits,或称数据比特)在闪存阵列106中存储的位置。在一些高性能的SSD中,所述RAM缓冲器104被提供以增加实时可用的映射表数据的量并且高速缓存已经主机装置写入的数据。
SSD控制器102包含闪存控制器110、处理器112和缓冲器管理器114。在处理器112的控制下,闪存控制器110和缓冲器管理器114执行某一固件以管理所述数据在所述闪存阵列106中的确切的存储位置及存储方式,以及当主机装置需要所述数据中的一些或全部时可以有选择性地定位并读出存储的数据。
本发明中的目标、优点及益处之一是矩阵翻转纠错的设计扩大了ECC具有的纠错能力(correcting limit)。由于NAND闪存的固有不可靠的性质,NAND闪存中的所存储的数据可能无法保证其正确的值,即NAND闪存中的存储的数据位可能意外地翻转。由于受此影响的数据位的数量在统计学上很小,而且很多可以被指出来,所以闪存控制器110可被控制以执行协调级别的纠错,以实现所需的信赖度及可靠性。
如本领域已知的,纠错码(ECC)是以二进制数字形式传输数据的编码方案,以至于即使一些位被错误地翻转,所述数据也可被恢复。几乎所有数据传输情况都有使用不同的ECC方法,尤其时在数据存储时,ECC防止数据损坏。在一个实施方案中,ECC是一种算法,表示在数据序列中嵌入或添加一些冗余信息,以至于可基于冗余信息检测并校正被意外地翻转(例如,从“0”到“1”或从“1”到“0”)的有限数目的数据位。当数据存储在非易失性存储器中时,至关重要的是要有可检测并校正一定数目的错误的机制。
纠错码(ECC)可将k个数据位编码为被称作码字的n位的块。块码(线性或非线性)在固定的数据长度下有效地工作,获取k个数据位并且计算m个校验位,其中m=n-k。一般来说,m越大,那么ECC能够校正的错误越多。为了最大化给定的闪存阵列中的数据存储容量,长度m实际上是有限的。本文中的错误通常指一个或多个其值被意外翻转的数据位或数据比特。
根据一个实施例,在将数据写入到闪存阵列时,ECC的校验位连同所述数据(原始、经过预处理或经过压缩)一起被记录并存储,从而产生ECC编码数据或码字。在已编码数据被回读时,重新计算并分析已经存储在闪存阵列上的ECC的校验位以恢复所述数据。图2示出了在水平方向及垂直方向两个维度上应用ECC编码的实例。与简单的将ECC编码应用于一连串数据位(也可称为一个数据比特序列)一次的传统使用不同,根据一个实施例,ECC编码首先水平地应用于所述数据,然后垂直地应用于所述数据,反之亦可以。在操作中,沿着水平方向的原始数据首先运用预定义ECC方案来编码,从而产生若干行码字(原始数据+ECC的校验位或其它比特)R1、R2……RN。
根据一个实施例,使用基于汉明码(Hamming code)的ECC方案。汉明码是一组纠错码,其可用于检测并校正被引入到编码数据的错误。举例来说,如果数据位(也可称数据比特)的数目是7,那么冗余位(也可称冗余比特)的数目是4,从而满足2r≥m+r+1,其中r=冗余位,m=数据位。在所述数据位用所述冗余位编码之后,码字的长度是11个位。图2示出了在每一行中,数据位为D1位或宽度为X,校验或冗余位为E1位。即使所述冗余位被集中地、图形化地显示在所述数据位的末尾,所属领域的技术人员可了解,这E1个冗余位常常在D1个数据位内编码。
现在存在N行码字。垂直地应用预定义ECC方案。尽管垂直地应用的ECC方案不必与已经水平地应用的ECC方案相同,但在本文中假设垂直应用的ECC和水平应用的ECC都是相同的。一个差异是沿着垂直方向(第二维度)的数据位并非来自一行的数据位。这些数据位是来自各行码字,并按照ECC方案通过一组冗余码进行编码。所属领域的技术人员应理解,如上文所描述的ECC操作可首先垂直地应用,接着水平地被应用。本领域内的普通技术人员熟知的是,在数据写入的过程中应用的ECC是ECC编码操作,在数据读出的过程中应用的ECC是ECC解码操作。为了简单,在本文中的有的地方未具体写明ECC是用于编码,还是解码,但是本领域内的普通技术人员根据其应用的位置,理所当然的知道ECC是用于解码还是编码。
图2示出了根据本发明的一个实施例的运用ECC对原始数据位进行编码的另一方式。在操作中,预定义的ECC操作同时或依次应用于水平及垂直数据位。在冗余位嵌入于原始数据位中的状况下,它们可被放置到一排数据位的端部,以确保原始数据位均通过ECC进行编码。
图3A示出了根据本发明的一个实施例的将数据流写入到闪存阵列中的流程300。可结合图3A到3B来较佳地了解所述流程300,所述流程300可以以硬件或软件(例如,固件)与硬件的组合的方式来实施。所述流程300在302处接收或耦合数据流时开始。所述数据流可以是来自主机装置(例如,笔记本电脑)的文件、相片及音频/视频。当用户希望将文件存储到存储装置(例如,SSD固态装置100)中时,接收所述数据流。
在304处,可首先预处理所述数据流,例如根据压缩方案压缩所述数据流。在306处,根据所选择的ECC(例如,汉明码或BCH码)基于预处理后的数据流形成数据包。如本文中所使用的,数据包是具有固定长度的一系列数据位,固定长度的一个实例是数据位刚好放入到所述闪存阵列中的部分或一页(page)中,而块(block)是刚好放入到所述闪存阵列中的块中的码元序列。应注意,块是闪存中可被擦除的最小单元,而页是闪存中可被编程(即,被写入其中)的最小单元。块大小通常在4到8MB的范围内,页大小通常在8到16KB的范围内。NAND闪存的架构意味着数据通常以页的形式被写入或读取,其典型的大小在4KB与16KB之间,但仅可在由多个页组成的整个块的层级上被擦除,其大小时以MB为单位。为了促进描述本发明,本文中的(数据)页通常被图形化的地表示为沿一个方向的一系列单元,例如水平(数据)页或垂直(数据)页,以指示页中的存储单元,即使它们在物理上可能是多行的,都被用于沿一维存储。
在308处,沿一个维度将预定义的ECC应用于形成的数据包。在操作中,来自ECC的已编码数据位、任何填补位(如果需要的话)(具有已知值)及冗余位被写入到所述闪存阵列中。在310处,过程300返回306,其中形成沿着另一维度的数据包。在一个实施例中,维度是2,即水平及垂直。如果第一遍是用于水平维度,那么第二遍用于垂直维度。如上文所描述,数据包是在第一遍中形成的所有数据包上形成的。在为来自ECC的冗余位保留用空间的情况下,添加具有已知值的额外填补位以填充待写入在闪存阵列中的页。
现返回参考图3A,码字存储在图2示出的分配空间中并且由一个或多个映射表管理。在312处,当数据的数据位存储在所述闪存阵列中时,同时生成或更新映射表以记录。一旦数据被水平且垂直地编码,那么过程300继续至314以将数据全部写入到所述闪存阵列中。
图3B示出了根据本发明的一个实施例的检测及校正所存储的数据中的错误的流程340。可结合图2及图3A较佳地了解所述流程340,所述流程340以硬件或以软件(例如,固件)与硬件的组合来实施。在存在来自主机装置(例如,媒体播放器)的文件的数据请求时,所述流程340开始,其中所述文件的数据存储在所述闪存阵列中。在接收所述请求后,所述闪存控制器检查可存储在单独的存储器(例如,RAM)或所述闪存阵列中的映射表。基于给定映射表,所请求文件的数据被在所述闪存阵列中定位,数据位被读出以在其被发出或变得可用于主机装置之前首先被错误检测及校正。
所述映射表是为了方便将来自文件系统的逻辑地址转换为所述闪存阵列的物理地址。当所述文件被写入或保存在所述闪存中时,创建或更新映射表。在344处,访问存储的映射表,以在346处基于所述映射表读出与所请求文件相关的数据位。然而,存储的一些数据位可能已损坏,例如“1”到“0”或“0”到“1”。
在348处,根据登记的ECC检查这些数据位以查看是否存在任何错误。如果存在一些错误,根据错误的数目,它们可以很容易地被纠正或通过额外的努力来纠正。对于每次ECC,如果错误的数目超过阈值(校正极限),那么无法校正所述错误且将报告错误。在350处,在另一维度中根据登记的ECC再次检查这些数据位以查看是否存在任何错误。如果存在一些错误,根据错误的数目,它们可以很容易地被纠正或通过额外的努力来纠正。
在352处,过程340执行矩阵翻转纠错(matrix flipping error correction)。应理解,在两个维度中分别并且有可能重复地应用ECC解码操作后,过程340进行到352。为了帮助在352处理解在本发明的一个实施例中如何检测并校正错误,现参考图4A,其示出了示例性数据位阵列400,假设每一数据位处于或来自存储单元M×N中的一个。黑点表示一组随机错误。可了解,因为错误的数目小于ECC沿行或列可校正的最大错误数目(MAX),假设MAXROW及MAXCOL均至少为2,这些错误可以轻松的被用于编述这些数据的ECC检测且校正。
图4B示出了另一示例性数据位阵列410,标记了较多错误。如果行中的错误的数目EROW或列中的错误的数目ECOL小于最大错误数目MAX(即,MAXROW或MAXCOL),那么该行或列中的错误为可校正的。但如果行或列中的错误的数目大于MAX,那么该行或列中的错误不再为可校正的,从而产生损坏的数据。本发明中的目标、优点及益处之一是已校正数据中的一些仍可以通过一些额外的工作量来校正。
图4C为图4B所示的数据位阵列410沿着行已根据ECC被校正后的示意图。假设用于行的最大错误数目MAX(MAXROW)是2。换句话说,如果位错误的数目小于MAXROW,那么所述行中的错误为可校正的。如图4C所示,除了一行中的错误因为该行中的错误的数目超过MAXROW而未被校正外,其余行中的所有错误均已被校正(显示为缩小黑点)。由于所述数据位是2维存储的,因此可再次在所有列上应用ECC纠错。图4D示出了当垂直地应用ECC时错误的数目超过MAXROW的行中的错误被校正(显示为较小黑点)的示意图。应注意,可重复应用ECC以按需要进一步校正错误。
图4E示出了其中多排(行及列)中的错误全部超过MAXROW或MAXCOL的情形450。首先在所述行上应用所述ECC解码操作,之后在所述列上应用所述ECC解码操作,以校正可校正的那些错误,从而得到图4F中所示的数据布局460,其中具有无法仅仅通过垂直地或水平地应用ECC操作而校正的错误,因为这些排中的错误的数目超过MAXROW或MAXCOL。换句话说,ECC解码操作可被先水平地应用,之后垂直地应用,或反之亦然,此外,因为已校正的错误将用于促进其它错误的校正,所述ECC解码操作可再次被先水平地应用,之后垂直地应用。
从一个角度来看,在将ECC解码操作应用于数据布局450之后,数据布局460中的错误被隔离或突显出来。换句话说,可以知道存在错误的块或集群。对所述集群的简单校正将校正所述集群中的所有错误。在操作中,所述集群中的所有数据位被反转或翻转,即将其中的“1”改变为“0”以及将其中的“0”改变为“1”。这样,数据布局450中的所有错误都被校正。
当块或矩阵中的错误的数目在限制内时,图4F中的情形会起作用。图4G示出了图4F中的仍具有错误的行的重新布置,其中假设MAXROW=2且MAXCOL=3。当这些错误被翻转时,错误将缩减。图4H示出了3×4错误矩阵480的实例。假设MAXROW=2且MAXCOL=3,在翻转所述错误矩阵480中的错误位之后得到的两个示例性矩阵482及494。换句话说,当一行中的三个错误全部被反转或翻转时,所述三个错误将不产生错误或产生一个错误,这意味着三个错误中没有一个是绝对确定的但在盲目地或不确定地校正三个错误之后确定存在至多一个可能的错误。尽管如此,这种矩阵翻转纠错仍可以帮助缩减一行中的错误的数目。同样地,这种矩阵翻转纠错也同样可以减少所述列中的错误的数目。在错误的数目减少的情况下,可再次应用普通的ECC操作以检测不确定的错误或随后运用校验码校正所述错误。因此,可推断当错误矩阵大于(MAXROW,MAXCOL)时,无法使用普通的ECC操作校正所述错误。然而,如果在翻转位值之后的错误矩阵小于(MAXROW,MAXCOL),那么可校正这些错误。
图4I示出了错误矩阵4×5的另一实例486。仍假设MAXROW=2并且MAXCOL=3。在翻转所述错误矩阵486之后,示例性矩阵488仍显示每一行中不超过两个错误并且每一列中不超过三个错误。普通的ECC将不会帮助校正错误矩阵486。可推断,如果所述错误矩阵中的错误的数目小于(2MAXROW+1,2MAXCOL+1),那么仍可校正错误矩阵中的错误。矩阵翻转纠错的目标、优点及益处之一是减少所述错误矩阵中的错误的数目以便再次应用ECC。
图5A示出了根据本发明的一个实施例的矩阵翻转纠错的流程500。可结合图3B及图4A到4I而较佳地了解所述流程500,并且所述流程500以硬件或以软件(例如,固件)与硬件的组合来实施。所述流程500可被视为执行图3B中的352处的操作。
如上文所描述,视需要在两个维度中或重复地应用相应ECC解码操作之后,所述数据阵列现在被提供到所述流程500。假设所述数据阵列仍具有错误。这些错误常常存在于行列交织的的卡盘或块中,因为ECC已经检测到并校正孤立的一些错误。过程500从502进行到504,其中形成错误矩阵。图4F及图4G共同说明根据错误在矩阵中的位置通过交换具有错误的行及/或列而形成错误矩阵的实例。在考虑范围的情况下,基于由矩阵翻转纠错在行及列上提供的限制,形成错误矩阵。图5B示出了形成若干错误矩阵的实例530。所有矩阵彼此隔离使得各自可被个别地处理。如果无法形成标准矩阵,那么根据一个实施例,具有已知值的元素(即数据位)可作为填补元素来添加以完成所述错误矩阵。图5B中的错误矩阵536显示了具有三个填补元素(减小的黑点为已知值的填补元素)。
流程500接着进行到508,确定错误矩阵的大小,之后在510处,错误矩阵中的所有数据位(元素)的值被翻转。在512处,流程500确定是否处理完所有错误矩阵。在所有错误矩阵都被翻转之后,在514处,用所述错误矩阵中的已翻转数据位来更新所述数据位阵列,之后再次在两个维度上将ECC解码操作应用于更新的数据阵列以进行检测和校正。
现返回参考图3B,通过包含矩阵翻转纠错的基础ECC解码来检测和校正被读出数据位中的可能错误。在354处,移除所有已知的所填补数据位。如上文所描述,所填补数据位均为已知值。根据一个实施例,这些所填补数据位的位置也用于促进在348处校正这些位置中的一些或全部处的可能错误以进一步缩减错误。还应注意,一些填补数据位用作参数,以指示闪存中的下一页中的后续内容。当一个压缩数据段被分成两个或多个片段,分布在一个或多个页面上时,可能需要一些参数或符号来指示下一个片段在哪里,以便于来自多个页面的数据段的恢复。读出解码后的数据,并假设可纠正的错误已被纠正。
虽然已参考特定实施例描述本发明,但描述说明本发明并且不应被理解为限制本发明。所属领域的技术人员可在不脱离如所附权利要求书限定的本发明的真实精神和范围的情况下对优选实施例做出本发明的各种修改。因此,本发明的范围由所附权利要求书而非前文实施例的描述限定。

Claims (16)

1.一种用于保障从存储阵列中读取的数据的完整性的方法,所述方法包括:
接收数据位阵列;
通过合并所述数据位阵列中的错误形成至少一个错误矩阵;
将所述错误矩阵中的数据位的值从“1”翻转到“0”或从“0”翻转到“1”,并用所述错误矩阵中的已翻转数据位来更新所述数据位阵列;
沿着第一维度将第一预定义ECC解码操作应用于具有已翻转数据位的所述数据位阵列,以检测并校正所述已翻转数据位中的错误以产生具有一些已校正数据位的所述数据位阵列;及
沿着第二维度将第二预定义ECC解码操作应用于具有一些已校正数据位的所述数据位阵列,以检测并校正所述已翻转数据位中的剩余的错误。
2.根据权利要求1所述的方法,其中所述数据位阵列来自存储阵列。
3.根据权利要求2所述的方法,其中所述存储阵列为闪存。
4.根据权利要求1所述的方法,其中所述形成至少一个错误矩阵包括:
交换所述数据位阵列中具有一些错误的列;及
交换所述数据位阵列中具有一些错误的行以形成所述错误矩阵。
5.根据权利要求4所述的方法,其进一步包括:
如果所述错误不足以形成所述错误矩阵,那么将具有已知值的一些数据位包含在所述错误矩阵中。
6.根据权利要求1所述的方法,其中所述第一预定义ECC解码操作定义有所述第一预定义ECC解码操作能够校正的第一最大错误数目MAX1st,所述第二预定义ECC解码操作定义有所述第二预定义ECC解码操作能够校正的第二最大错误数目MAX2nd,其中所述错误矩阵中的行中的错误的数目大于MAX1st,所述错误矩阵中的列中的错误的数目大于MAX2nd
7.根据权利要求6所述的方法,其中所述错误矩阵中的行中的错误的数目小于(2MAX1st+1),所述错误矩阵中的列中的错误的数目小于(2MAX2nd+1)。
8.根据权利要求1所述的方法,其中所述第一预定义ECC解码操作及所述第二预定义ECC解码操作为相同的或不同的。
9.一种用于保障数据读取的完整性的设备,所述设备包括:
存储区,其用于保存代码;
处理器,其耦合到所述存储区,执行所述代码以执行以下操作:
接收数据位阵列;
通过合并所述数据位阵列中的错误形成至少一个错误矩阵;
将所述错误矩阵中的数据位的值从“1”翻转到“0”或从“0”翻转到“1”,并用所述错误矩阵中的已翻转数据位来更新所述数据位阵列;
沿着第一维度将第一预定义ECC解码操作应用于具有已翻转数据位的所述数据位阵列,以检测并校正所述已翻转数据位中的错误以产生具有一些已校正数据位的所述数据位阵列;及
沿着第二维度将第二预定义ECC解码操作应用于具有一些已校正数据的所述数据位阵列,以检测并校正所述已翻转数据位中的剩余的错误。
10.根据权利要求9所述的设备,其中所述数据位阵列来自存储阵列。
11.根据权利要求10所述的设备,其中所述存储阵列为闪存。
12.根据权利要求9所述的设备,其中所述形成至少一个错误矩阵包括:
交换所述数据位阵列中具有一些错误的列;及
交换所述数据位阵列中具有一些错误的行以形成所述错误矩阵。
13.根据权利要求12所述的设备,其进一步包括:
如果所述错误不足以形成所述错误矩阵,那么将具有已知值的一些数据位包含在所述错误矩阵中。
14.根据权利要求9所述的设备,其中所述第一预定义ECC解码操作定义有所述第一预定义ECC解码操作能够校正的第一最大错误数目MAX1st,所述第二预定义ECC解码操作定义有所述第二预定义ECC解码操作能够校正的第二最大错误数目MAX2nd,其中所述错误矩阵中的行中的错误的数目大于MAX1st,所述错误矩阵中的列中的错误的数目大于MAX2nd
15.根据权利要求14所述的设备,其中所述错误矩阵中的行中的错误的数目小于(2MAX1st+1),所述错误矩阵中的列中的错误的数目小于(2MAX2nd+1)。
16.根据权利要求9所述的设备,其中所述第一预定义ECC解码操作及所述第二预定义ECC解码操作为相同的或不同的。
CN202010922155.6A 2020-03-23 2020-09-04 用于保持从存储阵列中读取的数据的完整性的方法和设备 Active CN112068778B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/827,192 US11057060B1 (en) 2020-03-23 2020-03-23 Method and apparatus for matrix flipping error correction
US16/827,192 2020-03-23

Publications (2)

Publication Number Publication Date
CN112068778A CN112068778A (zh) 2020-12-11
CN112068778B true CN112068778B (zh) 2022-04-26

Family

ID=73665476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010922155.6A Active CN112068778B (zh) 2020-03-23 2020-09-04 用于保持从存储阵列中读取的数据的完整性的方法和设备

Country Status (2)

Country Link
US (1) US11057060B1 (zh)
CN (1) CN112068778B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10951239B2 (en) * 2018-02-20 2021-03-16 Micron Technology, Inc. Performing a decoding operation to simulate switching a bit of an identified set of bits of a data block
US11657889B2 (en) * 2020-03-23 2023-05-23 Intel Corporation Error correction for dynamic data in a memory that is row addressable and column addressable
US11385962B2 (en) * 2020-11-05 2022-07-12 Sage Microelectronics Corporation Method and apparatus for error correction encoding compressed data
CN114153648B (zh) * 2021-12-03 2022-09-16 海光信息技术股份有限公司 数据读取、写入方法及装置、软错误处理系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1175771A (zh) * 1996-08-13 1998-03-11 索尼公司 用数据行和列译码错误标记来对数据译码的设备和方法
CN1855297A (zh) * 2005-04-21 2006-11-01 海力士半导体有限公司 包括失效单元校正电路的非易失性铁电存储器装置
CN101256803A (zh) * 2006-12-26 2008-09-03 恩益禧电子股份有限公司 错误校正设备和记录及再现设备
TW201007748A (en) * 2008-06-22 2010-02-16 Sandisk Il Ltd Method and apparatus for error correction
CN103136126A (zh) * 2011-12-05 2013-06-05 杭州华澜微科技有限公司 一种可保障数据安全性的数据安全存储设备的实现方法
CN104851458A (zh) * 2014-02-18 2015-08-19 群联电子股份有限公司 解码方法、存储器存储装置与存储器控制电路单元
CN109669800A (zh) * 2017-10-13 2019-04-23 爱思开海力士有限公司 用于写入路径错误的高效数据恢复

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619913B2 (ja) * 1984-03-30 1994-03-16 パイオニア株式会社 ビデオフオ−マツト信号に担持されるデ−タのエラ−訂正方式
US5271022A (en) * 1989-09-29 1993-12-14 Cyclotomics, Incorporated Digital optical sound system
JP3447942B2 (ja) * 1998-01-14 2003-09-16 パイオニア株式会社 情報記録装置および情報記録方法
US7069494B2 (en) * 2003-04-17 2006-06-27 International Business Machines Corporation Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
US8117519B2 (en) * 2008-01-15 2012-02-14 Micron Technology, Inc. Memory apparatus and method using erasure error correction to reduce power consumption
JP5007676B2 (ja) * 2008-01-31 2012-08-22 富士通株式会社 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
JP5269151B2 (ja) * 2011-06-09 2013-08-21 シャープ株式会社 半導体記憶装置
CN103559914B (zh) * 2013-10-31 2016-03-23 西安紫光国芯半导体有限公司 Ecc存储器存储不同长度数据的方法
US20150127956A1 (en) * 2013-11-01 2015-05-07 Sage Microelectronics Corp. Stored device with partitions
US9329930B2 (en) * 2014-04-18 2016-05-03 Qualcomm Incorporated Cache memory error detection circuits for detecting bit flips in valid indicators in cache memory following invalidate operations, and related methods and processor-based systems
US10230401B2 (en) * 2015-03-10 2019-03-12 Toshiba Memory Corporation Memory controller for a non-volatile memory, memory system and method
US20160266971A1 (en) * 2015-03-10 2016-09-15 Kabushiki Kaisha Toshiba Memory system, memory controller and memory control method
WO2017138235A1 (ja) * 2016-02-08 2017-08-17 ソニー株式会社 メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法
US10108512B2 (en) * 2016-04-01 2018-10-23 Intel Corporation Validation of memory on-die error correction code
KR102673873B1 (ko) * 2016-06-30 2024-06-10 삼성전자주식회사 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템
US10110256B2 (en) * 2016-09-16 2018-10-23 Micron Technology, Inc. Apparatuses and methods for staircase code encoding and decoding for storage devices
US10547332B2 (en) * 2017-02-01 2020-01-28 Tsofun Algorithm Ltd. Device, system and method of implementing product error correction codes for fast encoding and decoding
JP2019054448A (ja) * 2017-09-15 2019-04-04 東芝メモリ株式会社 メモリシステム
JP2020135391A (ja) * 2019-02-19 2020-08-31 キオクシア株式会社 メモリシステム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1175771A (zh) * 1996-08-13 1998-03-11 索尼公司 用数据行和列译码错误标记来对数据译码的设备和方法
CN1855297A (zh) * 2005-04-21 2006-11-01 海力士半导体有限公司 包括失效单元校正电路的非易失性铁电存储器装置
CN101256803A (zh) * 2006-12-26 2008-09-03 恩益禧电子股份有限公司 错误校正设备和记录及再现设备
TW201007748A (en) * 2008-06-22 2010-02-16 Sandisk Il Ltd Method and apparatus for error correction
CN103136126A (zh) * 2011-12-05 2013-06-05 杭州华澜微科技有限公司 一种可保障数据安全性的数据安全存储设备的实现方法
CN104851458A (zh) * 2014-02-18 2015-08-19 群联电子股份有限公司 解码方法、存储器存储装置与存储器控制电路单元
CN109669800A (zh) * 2017-10-13 2019-04-23 爱思开海力士有限公司 用于写入路径错误的高效数据恢复

Also Published As

Publication number Publication date
US11057060B1 (en) 2021-07-06
CN112068778A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
US10740175B2 (en) Pool-level solid state drive error correction
CN112068778B (zh) 用于保持从存储阵列中读取的数据的完整性的方法和设备
US10536172B2 (en) ECC and raid-type decoding
US9195539B2 (en) Method for reading data from block of flash memory and associated memory device
US9390774B2 (en) Systems and methods of storing data
KR101877106B1 (ko) 데이터 스토리지 시스템들에 대한 데이터 신뢰도 스킴들
CN112486725B (zh) 一种对压缩数据进行纠错编码的方法和装置
CN110597654B (zh) 用于超快的具有奇偶校验的纠错码的系统和方法
US20170255518A1 (en) Ecc decoding using raid-type parity
CN115083486A (zh) 带有混合奇偶的tlc数据编程
US20160283319A1 (en) Data storage device and encoding method thereof
US8856616B1 (en) Two dimensional encoding for non-volatile memory blocks
KR20190038964A (ko) 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법
CN109872764B (zh) 一种多级存储单元闪存的ecc多码率编解码系统及方法
US20180203625A1 (en) Storage system with multi-dimensional data protection mechanism and method of operation thereof
US11204834B1 (en) Implementation of keeping data integrity in multiple dimensions
CN108154903B (zh) 快闪存储器的写入控制方法、读取控制方法及装置
CN117785025B (zh) Ecc与raid5混合编码优化ssd读性能的方法
CN114446356A (zh) Qlc数据编程
CN117409844A (zh) 数据恢复方法、存储器存储装置及存储器控制器
CN117409845A (zh) 分组管理方法、存储器存储装置及存储器控制器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant