CN112134573B - 用于将数据存储在存储器装置内的方法和检索数据的方法 - Google Patents

用于将数据存储在存储器装置内的方法和检索数据的方法 Download PDF

Info

Publication number
CN112134573B
CN112134573B CN202010533531.2A CN202010533531A CN112134573B CN 112134573 B CN112134573 B CN 112134573B CN 202010533531 A CN202010533531 A CN 202010533531A CN 112134573 B CN112134573 B CN 112134573B
Authority
CN
China
Prior art keywords
codewords
data
codeword
sub
larger
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
CN202010533531.2A
Other languages
English (en)
Other versions
CN112134573A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN112134573A publication Critical patent/CN112134573A/zh
Application granted granted Critical
Publication of CN112134573B publication Critical patent/CN112134573B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • H03M13/2915Product codes with an error detection code in one dimension
    • 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
    • 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
    • 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon 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/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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

公开了一种用于将数据存储在存储器装置内的方法和检索数据的方法。一种用于将数据存储在存储器装置内的方法包括接收将被存储的数据。对接收到的数据进行编码。将编码的数据存储在存储器装置内。对接收到的数据进行编码的步骤包括将所述数据编码为两个或更多个子码字。所述两个或更多个子码字中的每个包括多个外码字。所述多个外码字中的两个或更多个被分组以形成比所述多个外码字中的每个大的更大码字,并且所述更大码字被构造为纠正通过所述多个外码字不能单独纠正的错误和/或擦除。

Description

用于将数据存储在存储器装置内的方法和检索数据的方法
本申请要求于2019年6月25日在美国专利商标局提交的第16/452,240号美国专利申请的权益,所述美国专利申请的公开通过引用整体包含于此。
技术领域
本公开涉及纠错编码,更具体地,涉及具有局部性的广义级联纠错编码方案。
背景技术
已经将纠错编码方案开发作为确保跨噪声信道的准确数字通信的方式。因此,由于噪声信道可导致在传输期间丢失或改变传输的数据,所以即使在丢失或改变一些数据的情况下,也可使用纠错编码来确保准确的解码。
最近,纠错编码已用于在存储器装置内存储数据。由于还存在存储在存储器单元内的数据可在被读取之前丢失或改变的可能性,因此纠错编码可用于确保存储器装置内的数据的准确存储。
用于纠错编码的一种常见方案是里德-所罗门(RC)码。根据这种方法,数据块被表示为称为符号的元素的集合。将一些校验符号添加到数据,使得可在对数据进行解码时纠正不正确或丢失的符号。
用于纠错编码的另一常见方案是低密度奇偶校验(LDPC)码。根据这种方法,将奇偶校验符号添加到数据。可使用稀疏二分图来构造这些奇偶校验符号。
在诸如以上的纠错码方案中,数据和校验符号被一起组合成称为码字的串。在解码时,通常必须在整个码字中的数据中的任何数据可被解码之前接收到整个码字。这产生了两个权衡。根据第一种权衡,使用较多数量的校验符号即使在更多错误的情况下也可允许准确解码,但是使用较少数量的校验符号可允许较少的开销并因此允许更多编码数据被存储在具有固定大小的存储器装置内并且还可允许更快的解码。根据第二种权衡,虽然较长的码字可需要较少的开销,从而允许更多编码数据被存储在存储器装置内,但是在数据可被解码之前更多数据必须被接收,导致从存储器装置读取数据的增大的延迟。相反,使用较短的码字可减少延迟但也会增大开销,从而允许较少的数据被存储在存储器装置中,和/或需要更多的计算资源来执行解码。
发明内容
一种用于将数据存储在存储器装置内的方法包括接收将被存储的数据。对接收到的数据进行编码。将编码的数据存储在存储器装置内。对接收到的数据进行编码的步骤包括将所述数据编码为两个或更多个子码字。所述两个或更多个子码字中的每个包括多个外码字。所述多个外码字中的两个或更多个被分组以形成比所述多个外码字中的每个大的更大码字,并且所述更大码字被构造为纠正通过所述多个外码字不能单独纠正的错误和/或擦除。
一种用于在存储器装置内检索数据的方法包括从存储器装置读取存储的数据。对读取的数据进行解码。对读取的数据进行解码的步骤包括对读取的数据的子码字进行单独解码。当读取的数据的子码字不能被解码时,对读取的数据进行解码的步骤包括对多个外码字进行解码,所述多个外码字中的每个外码字包括两个或更多个子码字,所述两个或更多个子码字包括不能被单独解码的子码字。
一种用于将数据存储在存储器装置内的方法包括接收将被存储的数据。对接收到的数据进行编码。将编码的数据存储在存储器装置内。对接收到的数据进行编码的步骤包括:在第一层编码内将所述数据编码为多个子码字;在第二层编码内将所述多个子码字分组为多个外码字;以及将所述多个外码字分组为大于所述多个外码字中的每个的至少一个更大码字。
附图说明
当本公开及其许多附带方面参照以下在结合附图时考虑的详细描述变得更好理解时,将容易地获得本公开及其许多附带方面的更完整的理解,其中:
图1是示出根据本发明的示例性实施例的数据分组的示意图;
图2是示出根据本发明的示例性实施例的用于数据分组的方法的示意图;
图3是示出根据本发明的示例性实施例的用于对数据进行编码和解码的方法的流程图;
图4是应用了根据本发明构思的一些实施例的存储器的存储器系统的框图;以及
图5示出能够实现根据本公开的实施例的方法和设备的计算机系统的示例。
具体实施方式
在描述附图中示出的本公开的示例性实施例时,为了清楚起见,采用特定术语。然而,本公开不意在限于如此选择的特定术语,并且将理解,每个特定元素包括以类似的方式进行操作的所有技术等同物。
本发明的示例性实施例提供用于对数据进行编码的方法,该数据用于跨噪声信道的传输或者用于向存储器装置进行存储和从存储器装置进行检索,该方法不仅允许使用较少的校验符号来对较短的码字进行编码的优点(诸如,较少的延迟),还允许使用较多的校验符号对较长的码字进行编码的优点(诸如,较高的数据准确性和容纳较多错误的能力)。根据这些方法,数据可被编码为具有相对较少的校验符号的较短的码字或子码字,并且这些较短的码字或子码字的组可被组合成包括附加校验符号的较大的码字或码字组。然后可尽可能最大程度地对具有较少的校验符号的较短的码字或子码字执行解码,并且在解码例如由于针对其没有足够的校验符号来纠正的过多的错误而不成功的情况下,可在较大的码字或码字组的完全接收时,对较大的码字或码字组再次执行解码。
如在此使用的,较小的码字中的符号的分组在此可被称为子码字,而较大的码字中的符号的分组在此可被称为分组的码字。因此,数据可被编码为可通过接收整个子码字而局部解码的子码字,然后一组子码字可被组合为分组的码字,分组的码字的数据可在接收到整个分组的码字时被解码,如果不可仅基于子码字对数据进行解码,则可能是在子码字中存在太多错误而难以进行准确的解码的情况。因此,最常见的是,可在整体地接收到每个子码字时对数据进行解码,从而减少延迟。但是,在不可对特定子码字的数据进行解码的情况下,可在接收到整个分组的码字时对数据进行解码,从而提供数据准确性的增加的水平。
此外,本发明的示例性实施例还可将分组的码字的集合分组为码字超组。因此,如果不可根据子码字或分组的码字准确地对数据进行解码,则可在接收到码字超组时对数据进行解码。在每个级别,可存在更多的校验符号,使得准确地对数据进行解码的可能性在每个级别增加。将进一步理解的是,如果需要,码字超组本身可被分组为具有附加校验符号的下一级别分组,使得在码字超组的数据不可被准确解码的情况下,数据可根据下一级别分组被解码。理论上,可使用任何数量的下一级别分组。例如,可使用2、3、4、5、6或更多级别的分组。然而,为了提供简化的解释的目的,在此将根据以下内容来描述本发明的示例性实施例:数据被编码为子码字,子码字被编码为分组的码字,分组的码字被编码为码字超组,其中,在每个分组添加一个或多个校验符号。在图1中示出这个构思,图1是示出根据本发明的示例性实施例的数据分组的示意图。
如通过图1可看出,可将编码数据为数据符号11,并且在子码字13内可存在多个数据符号11以及一些数量的校验符号12。在分组的码字14内可存在一些数量的子码字13以及一些数量的校验符号12。因此,每个子码字13是分组的码字14内的符号。
在码字超组15内也可存在一些数量的分组的码字14以及一些数量的校验符号12。因此,每个分组的码字14是码字超组15内的符号。可存在如此配置的任意数量的码字超组15。
任何合适的编码方案可用于将数据编码成数据符号。例如,可使用里德-所罗门(RS)或者可使用博斯-乔赫里-霍克文黑姆(BCH)。因此,当BCH编码可用于将数据编码成子码字时,BCH还可再次用于将子码字编码成分组的码字并将分组的码字编码成码字超组。
根据本发明的另一示例性实施例,可通过根据里德-所罗门(RS)编码或一些其他类似的编码技术对数据进行编码,然后将多个数据RS码以及用于冗余的一个或多个附加RS码分组,然后针对数据RS码和冗余RS码的集合构造单个奇偶校验矩阵,来将数据编码为具有如上所述的局部或总体解码的能力。这个方法可从图2看出,图2是示出根据本发明的示例性实施例的数据分组的方法的示意图。
如从图2可看出,数据可被编码为基本数据RS码21的集合,一个或多个冗余RS码22可与这些基本数据RS码21一起被分组,使得单个奇偶校验矩阵23可从冗余RS码22和基本数据RS码21被构造。以这种方式,可在作为局部级别的RS码级别对数据进行解码,如果不可从RS码级别准确地对数据进行解码,则在连同奇偶校验矩阵一起接收到RS码(基本数据和冗余数据)的整个集合时,可使用冗余数据RS码和奇偶校验矩阵对可能在局部级别不可解码的数据进行解码。
图3是示出根据本发明的示例性实施例的用于对数据进行编码和解码的方法的流程图。首先可接收数据(步骤S31)。然后可根据上述嵌套的方式对接收到的数据进行编码(步骤S32)。然后可将编码的数据存储在存储器装置中(步骤S33)。稍后,可开始检索存储在存储器装置中的数据。作为该检索的一部分,可检索第一符号集合(步骤S34)。如果可仅基于第一符号集合的信息对第一符号集合进行解码(是,步骤S35),则可对其数据进行解码而无需等待将被检索的整组符号集合(步骤S36),然后可以以类似的方式检索并解码下一符号集合。然而,如果不可仅基于第一符号集合的信息对第一符号集合进行解码(否,步骤S35),则可检索包括第一符号集合的一组符号集合(步骤S37)。然后,可在检索到整组符号之后基于该组符号的信息对该组符号的第一符号集合和其他符号集合进行解码(步骤S38)。此后,可以以相同的方式检索并解码附加数据。
如上所述,本公开的示例性实施例可对将被存储在存储器系统中的数据进行编码,然后可对从存储器系统检索的数据进行解码。图4是应用了根据本发明构思的一些实施例的存储器的存储器系统的框图。参照图4,存储器系统包括存储器控制器400和非易失性存储器装置410。
非易失性存储器装置410可以是但不限于闪存装置、NAND闪存装置、相变RAM(PRAM)、铁电RAM(FRAM)、磁性RAM(MRAM)等。根据发明构思的至少一个示例实施例,非易失性存储器装置410可包括多个NAND闪存装置。非易失性存储器装置410可具有平面结构或者三维(3D)存储器单元结构,其中,3D存储器单元结构具有堆叠的存储器单元。
非易失性存储器装置410可包括存储器单元阵列415、X解码器420、电压生成器414、I/O缓冲器417、页缓冲器416、控制逻辑412和寄存器413,存储器单元阵列415、X解码器420、电压生成器414、I/O缓冲器417、页缓冲器416和控制逻辑412中的每个可被实现为一个或多个电路。非易失性存储器装置410还可包括输入/输出(I/O)垫411。
存储器单元阵列415包括多条字线和多条位线。存储器单元阵列415中的每个存储器单元可被实现为非易失性存储器单元。例如,存储器单元阵列415中的每个存储器单元可具有例如浮置栅极或电荷存储层(诸如,电荷俘获层)。
存储器单元阵列415可包括多个块和多个页。每个块包括多个页。例如,第一块418可包括第一多个页1至N,而第二块419可包括第二多个页1至N,其中,N是大于1的整数。页可以是编程操作和读取操作的单位,块可以是擦除操作的单位。
控制逻辑412控制非易失性存储器装置410的整体操作。当从存储器控制器400接收到命令CMD时,控制逻辑412对命令CMD进行解释并根据解释的命令CMD控制非易失性存储器装置410执行操作(例如,编程操作、读取操作、读取重试操作或擦除操作)。
X解码器420由控制逻辑412控制,并根据行地址驱动存储器单元阵列415中的多条字线中的至少一条字线。
电压生成器414由控制逻辑412控制以生成编程操作、读取操作或擦除操作所需的一个或多个电压,并将生成的电压提供给由X解码器420选择的一个或多个行。
页缓冲器416由控制逻辑412控制,并根据操作模式(例如,读取操作或编程操作)作为感测放大器或写入驱动器进行操作。
I/O垫411和I/O缓冲器417可用作外部装置(例如,存储器控制器400或主机)与非易失性存储器装置410之间交换的数据的I/O路径。
存储器控制器400可包括微处理器401、只读存储器(ROM)403、随机存取存储器(RAM)402、编码器404、解码器405、存储器接口406和总线407。存储器控制器400的元件401至406可通过总线407彼此电连接。
微处理器401控制包括存储器控制器400的存储器系统的整体操作。微处理器401是通过生成控制信号来控制其他元件的电路。当电力被供应给存储器系统时,微处理器401在RAM 402上驱动用于操作存储器系统的固件(例如,存储在ROM 403中),从而控制存储器系统的整体操作。根据发明构思的至少一个示例实施例,微处理器401还可发出指令,以控制存储器控制器400的其他元件(包括例如ROM 403、RAM 402、编码器404、解码器405、存储器接口406和总线407中的一些或全部)的操作。根据发明构思的至少一个示例性实施例,在此描述的由存储器控制器400执行的任何操作可由微处理器401执行,或者在微处理器401的控制下被执行。根据发明构思的至少一个示例性实施例,在此描述的由存储器控制器400执行的任何操作可由微处理器401执行,或者在微处理器401的控制下被执行,微处理器401执行与该操作对应并包括在程序代码(例如,存储在ROM 403中)中的指令。
虽然存储器系统的驱动固件代码被存储在ROM 403中,但是发明构思的一个或多个示例实施例不限于此。固件代码还可被存储在非易失性存储器装置410的一部分中。因此,微处理器401的控制或干预不仅可包括微处理器401的直接控制,还可包括作为由微处理器401驱动的软件的固件的干预。
作为用作缓冲器的存储器的RAM 402可存储:从主机或微处理器401输入的初始命令、数据和各种变量,或者从非易失性存储器装置410输出的数据。RAM 402可存储输入到非易失性存储器装置410的数据、各种参数和变量以及从非易失性存储器装置410输出的数据、各种参数和变量。
存储器接口406可用作存储器控制器400与非易失性存储器装置410之间的接口。存储器接口406连接到非易失性存储器装置410的I/O垫411并且可与I/O垫411交换数据。此外,存储器接口406可创建适用于非易失性存储器装置410的命令,并可将创建的命令提供给非易失性存储器装置410的I/O垫411。存储器接口406提供将由非易失性存储器装置410执行的命令以及非易失性存储器装置410的地址ADD。
根据发明构思的至少一个示例性实施例,解码器405可以是被配置为以上述方式对数据进行解码的纠错码(ECC)解码器,编码器404可以是被配置为以上述方式对数据进行编码的ECC编码器。根据发明构思的至少一个示例性实施例,解码器405和编码器404以上述方式执行错误位纠正。在数据被提供给非易失性存储器装置410之前,编码器404可通过对数据执行纠错编码,来生成添加有一个或多个奇偶校验位和/或冗余位的数据。一个或多个奇偶校验位和/或冗余位可被存储在非易失性存储器装置410中。
解码器405可对输出数据执行纠错解码,基于纠错解码的结果确定纠错解码是否成功,并且基于确定结果输出指令信号。读取数据可被发送至解码器405,解码器405可使用一个或多个奇偶校验位和/或冗余位来纠正数据的错误位。当错误位的数量超过可被纠正的错误位的限制时,解码器405可如上详细描述的那样根据更高级别的数据组织进行解码。在一个示例性实施例中,编码器404和解码器405可使用已经适用于如上面详细描述的那样进行操作的博斯-乔赫里-霍克文黑姆(BCH)的变型来执行纠错。
本发明的示例性实施例可应用于被称为超博斯-乔赫里-霍克文黑姆(SBCH)的BCH的变型。SBCH是由若干短二进制博斯-乔赫里-霍克文黑姆(BCH)码和非二进制里德-所罗门(RS)码组成的多级代数码。与需要在变量节点与校验节点之间迭代地交换大量软信息的低密度奇偶校验(LDPC)码的消息传递解码算法相反,SBCH码的解码算法是使用针对短分量BCH和RS码的标准代数解码模式而完全代数的。因此,SBCH解码器的功耗显著小于相应的LDPC解码器的功耗。
根据SBCH方案:
-长度为n的二进制码
-长度为nrows的里德-所罗门(RS)码
■与以上码相关联的SBCH码:
所有的二进制矩阵使得:
●针对所有的i,ci:=(cij)j∈C0
●针对所有的
(这里,是所谓的“增量校验子”)
根据本公开的示例性实施例,RS码“粘合”码字的行。为了在解码处理中正确使用RS码,整个接收到的字被访问。然而,如以上所讨论的那样,本发明的示例性实施例可实现部分解码。这里,随着接收到的字的越来越大的组块(chunk)被访问,帧错误率(FER)降低。
根据本公开的示例性实施例,可利用局部性来实现部分解码。例如,如果块长度为4千字节,则可实现以下内容:
■以FER≈10-3对每1千字节(“1/4块”)进行解码
■以通常的FER≈10-11对完整的4千字节块进行解码
■在对1/4块的解码失败的情况下:读取所有的块(4千字节)
以这种方式,可以以高概率大幅度减少延迟。如上所述,这可通过经由外部RS码将SBCH字的行“粘合”在一起来实现。为了允许局部性,RS码可被具有局部性的码替换。局部性可使每组行能够“局部粘合”。因此,一组行中的各种字可使用替换RS码的局部码的局部属性“互相帮助”,而不需要使用不在该组中的行。然而,不同组的行仍通过局部码的全局依赖性连接。因此,在局部组失败的情况下,可通过访问所有行来执行成功的解码。
以上详细描述的本发明的示例性实施例可被视为落入若干可行的实施例中。在此提供实施例A1和A2作为示例。这两种方法举例说明了可用于实现本发明的两种可选的算法。
根据A1方法,这里令q是质数的幂,令α1、α2、…、αn是F=GF(q)的不同的非零元素,并且令v1、v2、…、vn是V的非零元素(不必是不同的)。F上的广义的里德-所罗门(简称,GRS)码是具有奇偶校验矩阵的F上的线性[n,k,d]码C。
Hgrs=H·V
其中,V=diag(v1、v2、…、vn),如以上RS中那样定义H:
得到的码是具有最小距离d=n-k+1的MDS。取整数r并赋予得到的GRS码通过GRSn,k,r来表示。它具有以下校验矩阵:
码定义。接下来,通过确定正整数参数q、s≥1、n1、…、ns、b、c(使得N≡n1+…+ns<q)并且通过F的α1、α2、…、αN(不同非零元素)来定义线性码C*。赋予N0=0并且针对1≤i≤s集合:Ni=n1+…+ni。注意Ns=N。C*的元素在FN中。针对1≤i≤s定义:
Hi=Hb,0N(i-1)+1N(i-1)+2,..........,αN(i)]
H(1)=Hb,012,…,αN]=[H1,H2,…,Hs]
并定义:
H(2)=Hc,b12,…,αN],
注意H*是可纠正a+b个错误的FN上的RS的校验矩阵。
接下来,针对x=[x1,…,xN]T∈FN定义:
x[i]=[xN(i-1)+1,xN(i-1)+2,..........,xN(i)]
这里,如下定义C*,针对x=[x1,…,xN]T∈FN,认为当且仅当针对1≤i≤s时x∈C*
Hi·x[i]=0和H(2)·x。
注意针对v=[v1,…,vN]T∈FN认为:
H(1)·v=[H1,H2,…,Hs]·v=H1·v[1]+H2·v[2]+…+Hs·v[s]
遵循如果x∈C*则H(1)·x=0并且H(2)·x=0,因此H*·x=0。
解码。令x=[x1,…,xN]T∈C*为发送字,令y=[y1,…,yN]T∈FN为接收字。解码器通过将标准的RS解码方法应用于每个子间隔y[i]来开始。它可纠正i个错误和j个擦除的任何组合,使得:在每个子间隔y[i],2i+j≤b。当这完成时,子间隔中的一些将被清除所有错误。调用得到的字z=[z1,…,zN]T∈FN。由于H*·x=0,因此认为RS解码器现在可应用于z以纠正i个剩余错误和j个剩余擦除的任何组合,使得2i+j≤b+c。例如,如果除了一个子字之外的所有子字在第一轮中被解码并且在该一个未解码的子字中错误的数量不超过b+c,则这是有效的。
如上所提及的那样,在A2实施例中,RSt的分组变为GCCRS码字。以下是GCCRS系列码的描述。在这个系列码中,RS用作内码和外码二者。
这里,GCCRS是F=GF(q)上的线性码C,线性码C由以下参数确定:质数的幂q、正整数T、J、m、整数序列J=R(1)≥R(2)≥…≥R(T)=0和T个校验矩阵H1、…、HT∈Fm×N。C从内码演变而来,其中,
Ct={x∈FN:Hj·x=0针对1≤j≤t},t∈[T]
可选地,声明在Ct中的条件,使得关于(H1、…、HT)的x的前t个校验子为零。通常在实践中Ct是可纠正t个错误的BCH或可纠正t/2个错误的RS。通过c=[c1 T,…,cJ T]T给出码字c∈C,其中,cj∈C1,并且wt=[c1·Ht,…,cJ·Ht]在RS(qm,J,J-R(t))中。也就是说,RS字wt在长度为J且维度为J-R(t)的扩展字段K=GF(qm)上。该RS码可纠正i个错误和j个擦除的任何组合,使得2i+j≤R(t)。注意wt具有冗余的R(t)个K-符号,这通常需要码C的冗余的m×R(t)个符号。因此,总冗余是F的m×Σ1≤t≤TR(t)个符号。
因此,本发明的示例性实施例将一些GCCRS字C’1、…、C’L分组在一起,使得它们中的每个可以以独立方式以高概率被解码。然而,通过将一些附加的冗余添加到整个组,包括C’1、…、C’L的更大码字被形成为具有更高的解码成功的概率。添加的冗余可替代所述分量码字的一些信息符号。
本解码方案以每个单独GCC码字C’i的单独解码开始。在组中的GCC字中的一些不可被解码的情况下,针对t=1:T,标准的RS解码器被应用于以上提及的每个C’i的RS码字(这里称为wt,i(参见上面的wt))。在解码针对任何wt,i(对于i∈[L])失败的情况下,通过局部RS辅助的解码方案被使用。例如,如以上概述的那样,在尝试完成RS字{wt,i}1≤i≤L的组的解码中,可使用以上两种方法中的任何一种。
在另一实施例中,如果分量GCC字中的一些在第一轮中解码失败,则解码的字在本发明规定的添加的冗余的帮助下有助于对来自在第一轮中没有被解码的组C’1、…、C’L的每个分量码字进行第二轮单独解码。
本发明基于纠错码(ECC)。在ECC技术中,存在强调的有限整数r=2、3…和有限代数域F,使得F的每个符号包括r个比特。[n k]线性码C与其条目在F中的奇偶校验矩阵相关联。这里,n和k是作为码C的参数的正整数(n大于k),n是符号中的码长度,k是码维度。C中的码字是来自F的其与相关联的奇偶校验矩阵的乘积为零的n个符号的向量。
为了简单起见,字在此将表示来自F的n个符号的任何向量。给定的字的校验子表示该字与奇偶校验矩阵的行的标量积。给定的字的第一校验子是该字与奇偶校验矩阵的第一行的标量积。给定的字的第二校验子是该字与第二行的标量积等。当解码器知道更多的校验子时,它可纠正更多的错误。
GCC码的基本理念是将共享相同的奇偶校验矩阵的一些小码字(例如,BCH码的)分组在一起,其中,每个小码字也被称为子字。它们以这样的方式被分组:当收集到来自每个子字的第一个校验子时,以RS形成码字。这个码字可被称为RS1。当从这些字中的每个收集到第二个校验子时也是如此—这个码字被称为RS2等。实际上,RS1通常是零字,并且这些RS字的码率逐渐增大。
(i)GCC编码处理通过以下事实来实现:通过针对每个小字赋予r个比特的冗余,可使每个小字的每个校验子等于任意规定的符号。
(ii)如在此所述,GCC理念向前推进了一步。将一些GCC字分组在一起并使用(i)形成附加结构:针对t=1、2、3…级联来自每个GCC码字的RSt字产生更大码字。这种方法的优点在于:在不可解码的单个GCC字的不可能情况下,该单个GCC字与组中的其他GCC字的协作在大多数情况下实现成功的第二轮解码。
(ii)的示例。在下面的简化示例中,存在2个GCC字,每个GCC字包括3个小的子码字和3层校验子。
(1)与GCC_word_1相关联的校验子:
(2)与GCC_word_2相关联的校验子:
在这个示例中:
校验子(1,1,1)=校验子(1,1,2)=校验子(1,1,3)=0
校验子(2,1,1)=校验子(2,1,2)=校验子(2,1,3)=0
并且:
[校验子(1,2,1),校验子(1,2,2),校验子(1,2,3)]是RS字(RS2)
[校验子(2,2,1),校验子(2,2,2),校验子(2,2,3)]是RS字(RS2)
此外,当这两个RS字级联时,结果可以是也作为码字的:
[校验子(1,2,1),校验子(1,2,2),校验子(1,2,3),校验子(2,2,1),校验子(2,2,2),校验子(2,2,3)]同样地,
[校验子(1,3,1),校验子(1,3,2),校验子(1,3,3)]是RS字(RS3)
[校验子(2,3,1),校验子(2,3,2),校验子(2,3,3)]是RS字(RS3)
当这两个RS字级联时,结果可以是也作为码字的:
[校验子(1,3,1),校验子(1,3,2),校验子(1,3,3),校验子(2,3,1),校验子(2,3,2),校验子(2,3,3)]
注意,通常在技术实现中,每个GCC字包括更多数量的子码字和校验子。因此,针对所有的参数,该简化的示例仅用于说明。
部分(ii)包含发明的主要要求。下面描述两个实施例A1和A2。
(iii)在A1中,RSt的以上分组变为更大的RS字,在A2中,RSt的分组变为GCCRS码字,这是在此描述的概念。
图5示出可实现本公开的方法和系统的计算机系统的示例。本公开的系统和方法可以以在计算机系统(例如,大型机、个人计算机(PC)、手持式计算机、服务器等)上运行的软件应用的形式实现。软件应用可被存储在由计算机系统本地可访问并经由到网络(例如,局域网或因特网)的硬连线或无线连接可访问的记录介质上。
通常称为系统1000的计算机系统可包括例如中央处理器(CPU)1001、随机存取存储器(RAM)1004、打印机接口1010、显示单元1011、局域网(LAN)数据传输控制器1005、LAN接口1006、网络控制器1003、内部总线1002以及一个或多个输入装置1009(例如,键盘、鼠标等)。如图所示,系统1000可经由链路1007连接到数据存储装置(例如,硬盘1008)。
在此描述的示例性实施例是说明性的,并且在不脱离本公开的精神或所附权利要求的范围的情况下可引入许多变型。例如,在本公开和所附权利要求的范围内,不同的示例性实施例的元素和/或特征可彼此组合和/或彼此替换。

Claims (20)

1.一种用于将数据存储在存储器装置内的方法,包括:
接收将被存储的数据;
对接收到的数据进行编码;以及
将编码的数据存储在存储器装置内,
其中,对接收到的数据进行编码的步骤包括将所述数据编码为均能够以第一级纠错独立解码以重构接收到的数据的两个或更多个子码字,
其中,所述两个或更多个子码字中的每个包括多个外码字,
其中,所述多个外码字中的两个或更多个被分组以形成比所述多个外码字中的每个大的更大码字,并且所述更大码字能够以第二级纠错独立解码以重构接收到的数据,第二级纠错比第一级纠错更鲁棒。
2.根据权利要求1所述的方法,其中,所述更大码字单独地比所述多个外码字包括更多的所述数据的冗余。
3.根据权利要求1所述的方法,其中,包括所述多个外码字中的所述两个或更多个的所述更大码字是广义级联码码字。
4.根据权利要求1所述的方法,其中,所述两个或更多个子码字中的每个是广义级联码码字,并且所述多个外码字和所述更大码字中的每个是里德-所罗门码字。
5.根据权利要求1所述的方法,其中,所述两个或更多个子码字中的每个表示第一层编码,所述多个外码字中的每个表示第二层编码,所述更大码字表示第三层编码。
6.根据权利要求1所述的方法,其中,使用通过级联所述多个外码字中的每个的奇偶校验矩阵形成的由所述更大码字的奇偶校验矩阵的第一若干行包括的矩阵,能够独立解码所述更大码字。
7.根据权利要求1所述的方法,其中,所述两个或更多个子码字中的每个包括所述多个外码字中的多层外码字,并且在所述多层中的每层,将所述多个外码字中的相应的外码字分组在一起构成广义级联码码字。
8.一种用于在存储器装置内检索数据的方法,包括:
从存储器装置读取存储的数据;以及
对读取的数据进行解码,
其中,对读取的数据进行解码的步骤包括对读取的数据的子码字进行单独解码,以重构原始数据,并且
其中,当读取的数据的子码字不能被解码时,对读取的数据进行解码的步骤包括对多个外码字进行解码,而不对读取的数据的子码字单独解码,所述多个外码字中的每个外码字包括两个或更多个子码字,所述两个或更多个子码字包括不能被单独编码以重构原始数据的子码字。
9.根据权利要求8所述的方法,其中,所述多个外码字构成比所述多个外码字中的每个大的更大码字。
10.根据权利要求9所述的方法,其中,所述更大码字单独地比所述多个外码字包括更多的存储的数据的冗余。
11.根据权利要求9所述的方法,其中,包括所述多个外码字的所述更大码字是广义级联码码字。
12.根据权利要求9所述的方法,其中,所述两个或更多个子码字中的每个是广义级联码码字,并且所述多个外码字和所述更大码字中的每个是里德-所罗门码字。
13.根据权利要求9所述的方法,其中,所述两个或更多个子码字中的每个表示第一层编码,所述多个外码字中的每个表示第二层编码,所述更大码字表示第三层编码。
14.根据权利要求9所述的方法,其中,当读取的数据的子码字不能被解码时,对读取的数据进行解码的步骤包括:使用通过级联所述多个外码字中的每个的奇偶校验矩阵形成的由所述更大码字的奇偶校验矩阵的第一若干行包括的矩阵。
15.根据权利要求9所述的方法,其中,所述两个或更多个子码字中的每个包括所述多个外码字中的多层外码字,并且在所述多层中的每层,将所述多个外码字中的相应的外码字分组在一起构成广义级联码码字。
16.一种用于将数据存储在存储器装置内的方法,包括:
接收将被存储的数据;
对接收到的数据进行编码;以及
将编码的数据存储在存储器装置内,
其中,对接收到的数据进行编码的步骤包括:
在第一层编码内将所述数据编码为均能够以第一级纠错独立解码以重构接收到的数据的多个子码字;
在第二层编码内将所述多个子码字分组为能够以第二级纠错独立解码以重构接收到的数据的多个外码字,第二级纠错比第一级纠错更鲁棒;以及
将所述多个外码字分组为大于所述多个外码字中的每个的至少一个更大码字,所述更大码字能够以第三级纠错独立解码以重构接收到的数据,第三级纠错比第二级纠错更鲁棒。
17.根据权利要求16所述的方法,其中,所述至少一个更大码字单独地比所述多个外码字包括更多的所述数据的冗余。
18.根据权利要求16所述的方法,其中,使用通过级联所述多个外码字中的每个的奇偶校验矩阵形成的由所述更大码字的奇偶校验矩阵的第一若干行包括的矩阵,能够独立解码所述更大码字。
19.根据权利要求16所述的方法,其中,每个子码字包括多层外码字,并且在所述多层中的每层,相应的外码字被一起分组为广义级联码码字;或者,每个外码字包括多层子码字,并且在所述多层中的每层,相应的子码字被一起分组为广义级联码码字。
20.根据权利要求16所述的方法,还包括:
从存储器装置读取存储的数据;以及
对读取的数据进行解码,
其中,对读取的数据进行解码的步骤包括对读取的数据的子码字进行单独解码,
其中,当读取的数据的子码字中的一个不能被解码时,对读取的数据进行解码的步骤包括对所述多个外码字进行解码,所述多个外码字包括不能被单独编码的子码字。
CN202010533531.2A 2019-06-25 2020-06-12 用于将数据存储在存储器装置内的方法和检索数据的方法 Active CN112134573B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/452,240 2019-06-25
US16/452,240 US11031956B2 (en) 2019-06-25 2019-06-25 Generalized concatenated error correction coding scheme with locality

Publications (2)

Publication Number Publication Date
CN112134573A CN112134573A (zh) 2020-12-25
CN112134573B true CN112134573B (zh) 2024-02-23

Family

ID=73747190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010533531.2A Active CN112134573B (zh) 2019-06-25 2020-06-12 用于将数据存储在存储器装置内的方法和检索数据的方法

Country Status (4)

Country Link
US (1) US11031956B2 (zh)
KR (1) KR20210001927A (zh)
CN (1) CN112134573B (zh)
DE (1) DE102019119753A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11387848B1 (en) * 2021-03-11 2022-07-12 Samsung Electronics Co., Ltd. Hierarchical error correction code
CN114142871B (zh) * 2021-12-03 2022-06-24 北京得瑞领新科技有限公司 一种可提前终止迭代的增量计算的ldpc校验方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1647392A (zh) * 2002-04-05 2005-07-27 皇家飞利浦电子股份有限公司 用于将附加纠错层嵌入到纠错码中的方法和设备
CN101427495A (zh) * 2006-02-21 2009-05-06 数字方敦股份有限公司 用于通信系统的基于多域的码生成器的解码器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177658B2 (en) * 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US8605905B2 (en) * 2010-08-30 2013-12-10 Futurewei Technologies, Inc. System and method for securing wireless transmissions
US8862960B2 (en) * 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
US8954822B2 (en) * 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9405624B2 (en) * 2014-06-19 2016-08-02 Seagate Technology Llc On-die error detection and correction during multi-step programming
US9734009B2 (en) * 2015-10-08 2017-08-15 Sandisk Technologies Llc Data encoding techniques for a device
US10404280B2 (en) * 2015-11-19 2019-09-03 Westhold Corporation Error correction using cyclic code-based LDPC codes
US10340950B2 (en) * 2017-08-21 2019-07-02 Qualcomm Incorporated Reducing the search space of maximum-likelihood decoding for polar codes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1647392A (zh) * 2002-04-05 2005-07-27 皇家飞利浦电子股份有限公司 用于将附加纠错层嵌入到纠错码中的方法和设备
CN101427495A (zh) * 2006-02-21 2009-05-06 数字方敦股份有限公司 用于通信系统的基于多域的码生成器的解码器

Also Published As

Publication number Publication date
KR20210001927A (ko) 2021-01-06
DE102019119753A1 (de) 2020-12-31
DE102019119753A9 (de) 2021-09-09
US11031956B2 (en) 2021-06-08
US20200412386A1 (en) 2020-12-31
CN112134573A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
US9070453B2 (en) Multiple programming of flash memory without erase
KR102706994B1 (ko) 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
KR102257050B1 (ko) 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US9710327B2 (en) Flash memory system and operating method thereof
US11184026B2 (en) Super-HPC error correction code
KR20090099757A (ko) 메모리 장치 및 인코딩/디코딩 방법
KR102707643B1 (ko) 오류 정정 회로 및 이를 포함하는 메모리 컨트롤러
KR102556479B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
WO2011121490A1 (en) Two -level bch codes for solid state storage devices
US11632135B2 (en) Apparatuses and methods for interleaved BCH codes
US11581906B1 (en) Hierarchical error correction code decoding using multistage concatenated codes
CN112134573B (zh) 用于将数据存储在存储器装置内的方法和检索数据的方法
US10693503B2 (en) Polar code decoding apparatus and method
CN111756385A (zh) 错误校正解码器
WO2019246527A1 (en) Method and apparatus for improved data recovery in data storage systems
KR102314481B1 (ko) Siso 복호 방법, 디코더 및 반도체 메모리 시스템
US10855314B2 (en) Generating and using invertible, shortened Bose-Chaudhuri-Hocquenghem codewords
US9639421B2 (en) Operating method of flash memory system
US11258464B1 (en) Codeword concatenation for correcting errors in data storage devices
KR20210100357A (ko) Ldpc 디코더, ldpc 디코더의 동작 방법 및 반도체 메모리 시스템
CN116743188A (zh) 存储系统和控制存储系统的方法
US11204834B1 (en) Implementation of keeping data integrity in multiple dimensions
US10528496B2 (en) Controller and operating method thereof
US11394403B1 (en) Error correction based on rate adaptive low density parity check (LDPC) codes with flexible column weights in the parity check matrices
KR102532611B1 (ko) 컨트롤러 및 그것의 동작 방법

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