CN109716661A - 用于存储装置的阶梯码编码及解码的设备及方法 - Google Patents
用于存储装置的阶梯码编码及解码的设备及方法 Download PDFInfo
- Publication number
- CN109716661A CN109716661A CN201780056514.0A CN201780056514A CN109716661A CN 109716661 A CN109716661 A CN 109716661A CN 201780056514 A CN201780056514 A CN 201780056514A CN 109716661 A CN109716661 A CN 109716661A
- Authority
- CN
- China
- Prior art keywords
- code word
- component code
- syndrome
- ladder
- code
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 33
- 238000003860 storage Methods 0.000 title claims description 20
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 97
- 238000012937 correction Methods 0.000 claims abstract description 22
- 230000004044 response Effects 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1525—Determination and particular use of error location polynomials
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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/2918—Coding, 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 with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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/2927—Decoding strategies
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2948—Iterative decoding
- H03M13/2951—Iterative decoding using iteration stopping criteria
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明提供一种设备。所述设备包括第一校验子运算电路,所述第一校验子运算电路经配置以接收具有多个行及多个列的码字且进一步经配置以运算所述码字的第一分量码字的至少部分的第一校验子。所述设备进一步包括第二校验子运算电路,所述第二校验子运算电路经配置以接收所述码字且运算所述码字的第二分量码字的至少部分的第二校验子。所述设备进一步包括位校正电路,所述位校正电路经配置以至少部分基于所述第一校验子及所述第二校验子中的至少一者而校正所述码字中的一或多个错误位,其中所述第一分量码字及所述第二分量码字跨越所述码字的两个或两个以上行及两个或两个以上列。
Description
背景技术
阶梯码是一种可在前向错误校正方案中实施的类型的乘积码。阶梯码包含布置成阶梯图案的数个块。每一块可包含数据位及奇偶校验位。在传统阶梯码中,每一个别线及每一个别列是包括数据位及奇偶校验位的单个分量码字。分量码字跨越邻近块以根据错误校正码(ECC)方案形成有效码字,例如博斯-乔达利-霍昆格姆(BCH)码。因为块经布置成阶梯图案,所以可在水平方向及垂直方向两者上形成分量码字。即,对于块中的任何给定数据位,位是水平码字及垂直码字的部分。相应地,每一数据位经双重编码且可使用两个单独分量码字独立地校正。
发明内容
根据一个方面,一种设备包括第一校验子运算电路,所述第一校验子运算电路经配置以接收具有多个行及多个列的码字且进一步经配置以运算所述码字的第一分量码字的至少部分的第一校验子。第二校验子运算电路经配置以接收所述码字且运算所述码字的第二分量码字的至少部分的第二校验子。位校正电路经配置以至少部分基于所述第一校验子及所述第二校验子中的至少一者而校正所述码字中的一或多个错误位,其中所述第一分量码字及所述第二分量码字跨越所述码字的两个或两个以上行及两个或两个以上列。
根据另一方面,一种方法包括通过阶梯码编码器电路生成阶梯码,所述阶梯码包括:多个水平分量码字,其跨越所述阶梯码的块的多个行;及多个垂直分量码字,其跨越所述阶梯码的所述块的多个列,其中所述多个分量码字中的水平分量码字及所述多个垂直分量码字中的垂直分量码字编码多个数据位。将所述阶梯码存储在存储器阵列中。通过阶梯码解码器电路解码所述块以检索所述多个数据位且提供所述多个数据位。
根据又一方面,一种方法包括:接收阶梯码的块;解码所述块;及确定所述块是否被成功解码。响应于确定所述块未被成功解码,反复接收所述阶梯码的额外块,基于所述额外块而解码所述块,且确定所述块是否被成功解码。响应于确定所述块被成功解码,提供所述块。
根据进一步方面,一种方法包括编码具有多个垂直分量码字及多个水平分量码字的阶梯码中的一组数据,其中所述垂直分量码字中的每一者跨越所述阶梯码的两个或两个以上行且所述水平分量码字中的每一者跨越所述阶梯码的两个或两个以上列。
附图说明
图1是根据本发明的实施例的存储器***的框图。
图2是根据本发明的实施例的实例阶梯码。
图3是根据本发明的实施例的实例阶梯码块。
图4是根据本发明的实施例的实例分量码字。
图5是根据本发明的实施例的实例阶梯码。
图6是根据本发明的实施例的解码器电路的框图。
图7是根据本发明的实施例的实例阶梯码。
图8是说明根据本发明的实施例的解码阶梯码的方法的流程图。
图9是根据本发明的实施例的存储器的框图。
具体实施方式
下文中陈述某些细节以提供对本发明的实施例的充分理解。然而,所属领域技术人员将清楚,可在无这些特定细节的情况下实践本发明的实施例。此外,本文中描述的本发明的特定实施例通过实例提供且不应用来将本发明的范围限于这些特定实施例。在其它情况下,尚未详细展示众所周知电路、控制信号、时序协议及软件操作以避免不必要地混淆本发明。如本文中使用,在阶梯码的背景下,可互换地使用术语“区段”、“块”及“码字”。
本发明的实施例意识到,传统阶梯码通常要求布置成多个大块(例如,16KB块)的大码字以实现令人满意的错误校正能力。此类大码字在一些背景(例如光学通信)下可能是可容许的,但在通常操纵较小区段中的数据的应用(例如存储应用)中,解码布置成多个大块的此类大码字是浪费处理及电力资源。举例来说,许多存储器***(例如NAND快闪存储器)通常以4KB区段为单位进行数据请求。为存取4KB值数据,实施传统大码字解码(对于16KB区段)将是低效的。因此,本发明的实施例揭示用于实施阶梯码ECC方案的***及方法,所述方案利用阶梯码的益处同时具有可对于较小数据请求实施的有效解码手段,例如存储***。
图1是根据本发明的实施例的存储器***(通常指定为100)的框图。存储器***100包含主机102及存储器装置104。存储器装置104包含控制电路106及存储器阵列108。控制电路106包含阶梯码(SCC)编码器电路110及SCC解码器电路112。在各种实施例中,控制电路106可任选地包含BCH编码器电路114及BCH解码器电路116。
主机102可为基于处理器的***,例如膝上型计算机、桌上型计算机、智能电话或能够与存储器装置104通信的任何其它电子装置。主机102可经配置以将存储器请求(例如,读取/写入请求)提交给存储器装置104。主机102可进一步经配置以提交及接收与从存储器装置104检索或存储器装置104中存储的存储器请求相关联的数据(例如,读取数据及写入数据)。
存储器装置104包含存储器阵列108。存储器阵列108可包含存储器单元(例如,非易失性存储器单元)的一或多个阵列。所述阵列可包含NAND快闪存储器单元、NOR快闪存储器单元、相变存储器(PCM)单元或其组合。实施例不限于特定类型的存储器装置。举例来说,存储器装置104可包含RAM、ROM、HDD、DRAM、SDRAM、PCRAM、RRAM、快闪存储器或任何其它类型的存储器。
存储器装置104进一步包含控制电路106。控制电路106经配置以响应于从主机102接收的存储器命令而对存储器阵列108执行存储器操作。控制电路106可进一步经配置以编码及解码存储在存储器阵列108中的数据。使用ECC编码数据可允许在从存储器检索数据时校正错误数据位。举例来说,控制电路106可使用SCC编码器电路110及任选BCH编码器电路114编码数据且将经编码数据位及奇偶校验位存储在存储器阵列108中。控制电路106可进一步经配置以使用SCC解码器电路112及任选BCH解码器电路116解码存储在存储器阵列108中的数据。
在各种实施例中,BCH编码器电路114可经配置以根据具有相对小校正能力的外部BCH码(例如,具有25位的校正能力的4KB BCH码)编码从主机102接收的写入数据。BCH码是“外部”码,这是因为其在使用SCC编码器110编码数据之前编码数据。尽管关于BCH码进行描述,但所属领域技术人员将意识到,可使用任何适合编码方法作为外部码,且本文中揭示的实施例不限于BCH码。举例来说,在一个实施例中,外部码可为里德所罗门码。外部BCH码可帮助补偿由使用相对小阶梯块(例如,96×96位块)所致的阶梯码的增加错误平层,如下文中进一步详细描述。BCH编码器114可进一步经配置以将BCH编码的结果提供到SCC编码器电路110。
SCC编码器电路110可为经配置以根据小块阶梯码编码数据的电路。在包含BCH编码器电路114的实施例中,SCC编码器电路110可从BCH编码器电路114接收经编码数据。在排除BCH编码器电路114的实施例中,SCC编码器电路110可经配置以编码从主机102接收的写入数据。在各种实施例中,BCH编码器电路114及SCC编码器电路110可经配置以并行编码写入数据的不同部分使得编码同时发生。举例来说,一旦BCH编码器电路114已编码第一码字,便可将第一码字提供到SCC编码器电路110以供编码,同时BCH编码器电路114编码第二码字。下文中关于图2到5进一步详细描述根据本发明的阶梯编码的细节。
SCC解码器电路112可经配置以解码通过SCC编码器电路110生成的小块阶梯码。举例来说,响应于来自主机102的读取命令,控制电路106可从存储器阵列108检索经请求的编码数据,且SCC解码器电路112可解码经检索数据。任选BCH解码器电路116可经配置以对经接收数据执行BCH解码且将经解码数据提供到主机102。在具有任选BCH解码器电路116的实施例中,SCC解码器电路112可解码阶梯码以生成提供到BCH解码器电路116的BCH编码读取数据。接着,BCH解码器电路116可解码BCH编码读取数据以生成经请求读取数据且将经请求读取数据提供到主机102。在不包含BCH解码器电路116的实施例中,SCC解码器电路112可解码阶梯码且将经请求读取数据提供到主机102。类似于编码器电路,SCC解码器电路112及任选BCH解码器电路116可并行执行解码操作。举例来说,一旦SCC解码器电路112已解码第一码字,BCH解码器电路116便可开始解码第一码字同时SCC解码器电路112开始解码第二码字。下文中关于图6进一步详细描述根据本发明的阶梯解码的细节。
图2是根据本发明的实施例的实例阶梯码(通常指定为200)。阶梯码200可(例如)通过图1的SCC编码器电路110生成且存储在存储器阵列108中。阶梯码200通常包含初始零块202、数个SCC块204(1)到204(N)、倒数第二块206及终端块208。初始零块202可包含位阵列,其中每一位经设置为预定值。举例来说,初始零块202中的位中的每一者可经设置为逻辑0。替代地,可使用其它已知值。类似地,倒数第二块206及终端块208可包括完全零逻辑值,唯从前块中的非零数据位或奇偶校验位生成的非零奇偶校验位除外,如下文中进一步详细论述。SCC块204(1)到204(N)中的每一者可包含多个数据位210及奇偶校验位212。数据位210及奇偶校验位212,以及初始零块202、倒数第二块206及终端块208的位可经布置成阶梯码200的水平分量码字及垂直分量码字。如下文中关于图3到6进一步详细描述,分量码字可经布置使得每一水平码字跨越多个列且每一垂直码字跨越多个行。如图2中展示,初始零块202、SCC块204(1)到204(N)、倒数第二块206及终端块208可经布置成具有交替定位在前块附近或下方的块的阶梯图案。关于图3到5进一步详细论述数据位210及奇偶校验位212的特定布置。
图3是根据本发明的实施例的实例阶梯码块(通常指定为300)。阶梯码块300包含多个数据位310及多个奇偶校验位312。阶梯码块300可为m×m块,包含m×(m-r)个数据位310及m×r个奇偶校验位312。阶梯码块300的数据位310及奇偶校验位312可与另一阶梯码块(图3中未展示)的数据位及奇偶校验字组合以根据特定编码方案(例如BCH码)形成多个有效码字。
图4是根据本发明的实施例的实例分量码字(通常指定为400)。分量码字400包含多个数据位410及多个奇偶校验位412。分量码字400可为水平分量码字且可跨越两个阶梯码块。在图4的实施例中,分量码字400跨越阶梯码块402及404。可跨阶梯码块402及404的多个行及列包裹分量码字400的数据位410。在图4的实施例中,分量码字400跨越总计2m个列(块402及404中的每一者中的m个列)及n个行。类似地,垂直码字可跨越2m个行及n个列。虽然图4为了方便起见在每一行末尾处展示奇偶校验位,但所属领域技术人员将明白,奇偶校验位可经定位在分量码字中的任何点处,例如在分量码字中的所有数据位410的末尾处。通过跨多个行及列包裹数据位410及奇偶校验位412,可减小阶梯码中的个别块的大小同时维持较长分量码字的校正能力。在各种实施例中,可取决于性能要求而调整阶梯码中的块的特定大小以及块的数目。举例来说,与具有较宽松时序要求的实施例相比,可使用较小数目的块实施具有严格时序要求的实施例。通过减小块的数目,可减少解码所要的时间。
在传统阶梯码中,分量码字不跨越多个行。即,传统阶梯码具有n=1。这种格式要求具有大块大小的长码字以便实现足够数据校正能力。此类大阶梯码块虽然适于一些应用,但对于其它应用(例如存储器应用,其中数据通常以小得多的区段大小交换)来说尚不可接受。举例来说,如光学通信中使用的传统阶梯码在约16KB块中传输数据,其中总阶梯码与100KB一样大或更大。然而,在各种其它应用(例如存储应用)中,典型块大小理想地小得多(例如,对于存储应用来说是4KB)。可在光学通信中使用的大块在利用较小事务的应用(例如存储)中完全不实用。然而,通过跨多个行扩展分量码字400,如本文中揭示的阶梯码可受益于长分量码字的错误校正能力,而不导致不实用块大小。
图5是根据本发明的实施例的实例阶梯码(通常指定为500)。阶梯码500可经实施为图2的阶梯码200。阶梯码500包含多个水平分量码字502及垂直码字504。水平分量码字502及垂直分量码字504可在顶点506处相交。水平分量码字502可跨越多个行且垂直分量码字504可跨越多个列。即,每一分量码字的长度可大于阶梯梯级的长度。因此,根据预定包裹方案包裹每一分量码字。举例来说,在一个实施例中,当码字达到存储在行中的位的极限(例如,2m个位)时,接着可将下一位存储在下一行的开端处。在另一实施例中,可以蛇形方式存储分量码字的位,其中在一个行(或列)中位从左存储到右(或顶部到底部),且在后续行(或列)中,在相反方向上存储位。虽然特定包裹方案对于编码目的来说不重要,但在解码阶梯码时,必须知道包裹方案以确保响应于检测错误位而校正正确位。
因为水平分量码字502及垂直分量码字504中的每一者是n×2m位长,所以每一顶点506保护n×n子块。在具有单行分量码字及单列分量码字的传统阶梯码中,任何相交分量码字对将保护交点处的单个位。相比之下,根据本发明的实施例的阶梯码可保护顶点506处的n×n子块,这意味着可基于分量码字的奇偶校验位校正受保护顶点内的错误位。在一个实施例中,可如下建构阶梯码:m=48,r=5,L=16,且n=6,其中每一分量码字是具有576个数据位、32个奇偶校验位及t=3个位的校正能力的BCH码字。
在各种实施例中,跨多个列或行组织分量码字可增大在分量码字中出现不可使用标准解码技术校正的错误的可能性。在传统阶梯码中,每一位受两个分量码字保护。可出现不可校正错误(通常被称为失速模式),其中错误位属于与对于每一分量码字可校正相比具有更高数目的错误的分量码字(水平及垂直两者)。失速模式在具有包裹分量码字的阶梯码中可能更普遍,这是因为与错误位将出现在传统阶梯码的单个位顶点中相比,错误位将出现在n×n顶点506中的可能性增大。额外外部码(例如具有小校正能力的BCH码)可用来在使用阶梯码编码数据之前编码数据以补偿失速模式的增大可能性。举例来说,参考图1,任选BCH编码器电路114可用来执行这种功能。通过包含具有相对低校正能力的外部BCH码,可使用外部BCH码校正继阶梯解码后的任何残留位错误。在一个实例中,外部BCH码可具有t=25个位的校正能力。
图6是根据本发明的实施例的SCC解码器电路(通常指定为600)的框图。SCC解码器电路600可经实施为图1的SCC解码器电路112。通常,SCC解码器电路600经配置以解码具有分量码字的阶梯码,每一分量码字跨越多个列及多个行,如上文中关于图5论述。SCC解码器电路600包含水平校验子运算电路602、垂直校验子运算电路604、水平校验子存储器606、垂直校验子存储器608、混合解码电路610、映射器电路612、阶梯校验子更新电路614、BCH校验子运算电路616、BCH校验子更新电路614、伯利坎普电路620、陈氏搜索电路622、缓冲器624及XOR触发器626。
水平校验子运算电路602可经配置以计算阶梯码中的水平分量码字的完整或部分校验子。如所属领域技术人员将明白,校验子解码是一种解码线性码(例如BCH码)的高度有效方法。校验子指示分量码字中的错误的位置。可基于给定分量码字中的所有或一些经接收数据位及奇偶校验位而计算所述分量码字的完整或部分校验子。在各种实施例中,可通过SCC解码器电路600连续接收分量码字位。在一个实施例中,可对于水平分量码字接收经接收位使得在分量码字的奇偶校验位之前接收分量码字的数据位。随着(例如,从存储器阵列108)接收分量码字,水平校验子运算电路602可计算水平分量码字的校验子以识别经接收码字中的一或多个错误的位置。随着分量码字位仍正被接收,水平校验子运算电路602可运算水平分量码字的校验子,直到已对于分量码字接收所有分量码字位(数据位及奇偶校验位)且完成校验子计算。
水平校验子存储器606通常可为任何类型的存储器。水平校验子存储器606可经配置以存储一或多个块的水平分量码字的完整或部分校验子。在各种实施例中,水平校验子存储器606可经配置以存储至少两个块的分量码字的校验子。通过存储一个以上块的校验子,水平校验子存储器606可使水平校验子运算电路602能够开始对后续块进行校验子运算,同时对先前块执行进一步运算及校正。在一个实施例中,水平校验子存储器606经配置以存储跨越两个块的水平分量码字的所有校验子。通过存储给定块对的所有分量码字,可基于对相交分量码字(即,垂直分量码字)的校正而更新校验子。
垂直校验子运算电路604经配置以计算阶梯码中的垂直分量码字的完整或部分校验子。可将完整或部分垂直校验子存储在垂直校验子存储器608中。在各种实施例中,垂直校验子运算电路604可经配置以计算垂直分量码字的部分校验子同时水平校验子运算电路602正在计算水平分量码字的校验子。
垂直校验子存储器608通常可为任何类型的存储器。垂直校验子存储器608可经配置以存储阶梯码的一或多个块的分量码字的完整或部分校验子。在各种实施例中,垂直校验子存储器608可经配置以存储阶梯码的至少两个块的校验子。通过存储两个或两个以上块的分量码字的校验子,垂直校验子存储器608可使垂直校验子运算电路604能够开始对后续块进行校验子运算同时对先前块执行进一步运算及校正。
现将在图5中展示的阶梯码的背景下描述水平校验子运算电路602、垂直校验子运算电路604、水平校验子存储器606及垂直校验子存储器608的实例操作。可通过水平校验子运算电路602对于水平分量码字502连续接收数据位及/或奇偶校验位。随着接收所述位,水平校验子运算电路602计算水平分量码字502的校验子且将所得校验子存储在水平校验子存储器606中。水平分量码字的位可同时提供到垂直校验子运算电路604。如上所述,具有经包裹数据位及奇偶校验位的水平分量码字及垂直分量码字在n×n顶点506处重叠。尽管在这个实例中并非在单个串流中接收垂直分量码字504的所有位,因为所述位与水平分量码字502在一起,但随着SCC解码器电路600继续处理给定块的水平分量码字502,垂直校验子运算电路604可计算垂直分量码字的部分校验子且反复建置垂直校验子。
举例来说,水平校验子运算电路602可接收水平分量码字(例如,6行数据位及奇偶校验位)且开始运算水平分量码字的水平校验子。一旦接收所有位,水平校验子运算电路602便可能已计算完整水平分量码字502的校验子且将结果存储在水平校验子存储器606中。同时,对于水平分量码字502相交的每一n×n顶点506,垂直校验子运算电路604可计算与顶点506相交的垂直分量码字504的部分校验子。一旦水平校验子运算电路602完成对于第一水平分量码字502的校验子计算,水平校验子运算电路602便移到下一水平分量码字502。类似地,垂直校验子运算电路604开始计算与第二水平分量码字502重叠的垂直分量码字504的部分校验子。通过与水平校验子同时运算部分垂直校验子,可增加校验子运算的速度及效率。特定来说,一旦对于水平梯级(例如,8个水平分量码字,每一水平分量码字跨越6行)完成校验子计算,便部分运算阶梯码中的下一梯级的垂直校验子。接着,随着水平校验子运算电路开始计算阶梯码500中的下一梯级的校验子,计算剩余部分垂直校验子。因此,SSC解码器电路600避免同时计算水平分量码字502及垂直分量码字504的校验子,这实现比传统阶梯码解码方法更有效的解码。
混合解码电路610可经配置以分别存取存储在水平校验子存储器606及垂直校验子存储器608中的水平校验子及垂直校验子,且基于相应校验子确定水平分量码字及垂直分量码字中的经检测错误的位置。在各种实施例中,混合解码电路610可独立于用来生成阶梯码的特定包裹方案而确定错误位的位置。举例来说,混合解码电路610可指示分量码字中的错误位的位置(例如,距分量码字的开端的位置),但未必指示阶梯码中的错误位的位置(例如,阶梯码中的特定行及列)。
映射器612经配置以将来自混合解码电路610的经识别位错误的位置转译成正在解码的特定块中的位位置。如上文中论述,可跨阶梯码的块中的多个行及/或列包裹分量码字。当混合解码电路610确定错误位的位置时,其独立于用于生成阶梯码的特定包裹方案而如此做。映射器612参照特定映像方案以便确定要求校正的阶梯码的块内的错误位的实际位置(例如,特定行及列,与分量码字中的位置相对)。
阶梯校验子更新电路614经配置以基于如通过混合解码电路610及映射器612所确定的错误位的位置而更新存储在水平校验子存储器606及垂直校验子存储器608中的经计算校验子。如上文中论述,垂直校验子运算电路604可计算部分垂直校验子,同时水平校验子运算电路602计算完整水平分量码字的校验子。然而,当混合解码电路610确定水平分量码字(或垂直分量码字)中的位需要校正时,那个经校正位可影响对于顶点506处的垂直分量码字的部分所计算的部分垂直校验子及/或水平分量码字的校验子的计算。阶梯校验子更新电路614存取水平校验子存储器606及/或垂直校验子存储器608且基于错误位的经识别位置而更新经计算校验子。因此,随着混合解码电路610及映射器612确定错误位的位置,可实时更新校验子。经更新校验子可指示分量码字中的额外错误位。因此,可将经更新校验子提供到阶梯校验子更新电路614,阶梯校验子更新电路614可基于经更新校验子而确定进一步更新是否必要。
如上文中论述,可使用任选外部BCH码(或其它类型的码)进一步编码阶梯码。在此类实施例中,BCH校验子运算电路616可经配置以计算外部BCH码的校验子。在各种实施例中,BCH校验子运算电路616可经配置以与运算阶梯码的分量码字的校验子的水平校验子运算电路602及垂直校验子运算电路604并行地运算BCH校验子。类似于阶梯校验子更新电路614,随着通过混合解码电路610及映射器612校正错误位,BCH校验子更新电路614可经配置以基于经校正位而更新通过BCH校验子运算电路616所计算的校验子。因此,映射器612可耦合到BCH校验子更新电路614以校正经运算BCH校验子。
伯利坎普电路620及陈氏搜索电路622经配置以执行与外部BCH码相关联的操作。举例来说,伯利坎普电路620可经配置以确定用于定位BCH码中的错误的多项式。在各种实施例中,伯利坎普电路620实施伯利坎普-梅西算法,以基于通过BCH校验子运算电路616及BCH校验子更新电路614所确定的校验子而识别错误***多项式。陈氏搜索电路622可经配置以确定通过伯利坎普电路620所确定的多项式的根。可使用经识别根来确定经解码数据中的哪些位要求校正。
缓冲器624经配置以存储要提供的数据位。在各种实施例中,缓冲器624可经配置以一次存储两个或两个以上块的数据位。举例来说,缓冲器624可经配置以存储两个块(例如,两个4KB码字)的数据位。上文中关于水平校验子运算电路602、水平校验子运算电路604、BCH校验子运算电路616及图6的其它块所描述的电路及操作都在校验子域中操作。即,当混合解码电路610及映射器612识别错误位的位置时,阶梯校验子更新电路614负责校正经计算校验子。一旦使用分量码字及外部BCH码的校验子识别错误位,便可在完整码字(即,阶梯码的块)中校正那些经识别位,接着将所述经识别位提供到主机102以供使用。为校正经请求码字中的位,可将数据位存储在缓冲器624中,且可通过XOR触发器626校正经识别错误数据位。在各种实施例中,码字是4KB码字,如通常在各种存储器装置中使用。XOR触发器626可经配置以基于通过映射器612及外部BCH码(如通过BCH校验子运算电路616、BCH校验子更新电路614、伯利坎普电路620及陈氏搜索电路622解码)所识别的错误位的位置而选择性地更改完整码字内的位的逻辑状态。一旦已校正经识别错误位,便可将经校正码字提供到主机102。
图7是根据本发明的实施例的实例阶梯码(通常指定为700)。在某些存储应用中,阶梯码可经建构使得码字大于经请求区段的大小。即,在此类应用中,码字可能无需限于大约4KB。较大码字实现较低错误平层,这可消除对上文中描述的外部BCH码的需求。此类应用实例包含(但不限于):由循序读取及写入主导的应用,例如串流;由循序写入但未必循序读取主导的应用;及其中数据并不频繁存取且因此不经受严格延时目标的冷存储应用。图7及8描述实现若干层硬输入解码(每一层具有增大校正能力)的带窗解码策略。
阶梯码700包含布置成阶梯图案的数个块702。块702包含水平分量码字704及垂直分量码字706。每一分量码字704、706包含数个数据位708及数个奇偶校验位710。在图7的实例实施例中,每一块是288×288个位。每一分量码字704、706包含544个数据位708及32个奇偶校验位710。因此,每一分量码字704配合在阶梯码的单个行或列内。对于每一梯级,阶梯码700包含保护数据位708的256个垂直分量码字706及保护水平奇偶校验位710的32个垂直分量码字706。在具有12个块的实例实施例中,每一梯级(即,阶梯码700中的邻近块对)包含大约20KB的数据位708及奇偶校验位710,且整个12块阶梯码包含大约124KB的数据位。在数据的经请求区段大致上小于阶梯码的情况下,解码整个阶梯码700以获取经请求区段将是低效的。因此,实施例揭示用于解码具有变化校正能力的经请求区段的带窗解码方案。
图8是说明根据本发明的实施例的解码阶梯码的方法(通常指定为800)的流程图。在操作802中,控制电路(例如控制电路106)从块Bi读取分量码字。在各种实施例中,块Bi可为阶梯码的中心块。即,在阶梯码中的块Bi之前及之后可能存在相等数目的块。在其它实施例中,块Bi可为除阶梯码的中心块以外的块。在操作804中,控制电路解码块Bi的分量码字。通常可以任何适当手段执行块Bi解码。在各种实施例中,解码块Bi的分量码字的机制取决于用来建构阶梯码的分量码字的编码的类型。举例来说,可使用BCH码编码分量码字,在这种情况中,使用BCH解码来解码分量码字。
在决策框806中,控制电路确定操作804的解码操作是否成功。在各种实施例中,可基于用来建构分量码字的编码机制而完全校正出现在分量码字中的错误的数目。举例来说,如果每一分量码字具有t=3的校正能力,那么可使用分量码字的奇偶校验位校正每一分量码字的最多3个数据位。替代地,与可仅使用分量码字的奇偶校验位校正相比,分量码字中可能存在更多错误。举例来说,如果分量码字具有t=3的校正能力,但分量码字包含四个错误位,那么无法仅使用分量码字的奇偶校验位校正分量码字。如果解码成功(决策框806,YES(是)分支),那么在操作808中将块传回到主机(即,请求块的处理器)。控制电路可经由一或多个数据总线将块提供到主机。如果控制电路确定解码不成功(决策框806,NO(否)分支),那么在操作810中控制电路从块Bi-j及Bi+j读取分量码字。控制电路可从块Bi的任一侧检索块。因为阶梯码中的每一位受两个分量码字(即,水平分量码字及垂直分量码字)保护,所以将解码操作扩展到块Bi的任一侧上的块可使额外位能够在码字中解码。
在操作812中,控制电路对经检索额外块及块Bi执行解码。额外块可小于完整阶梯码。举例来说,可基于块Bi的任一侧上的一个额外块或两个额外块等解码块Bi。可基于用来编码数据的编码机制以类似于初始解码的方式执行解码。通过解码初始块的任一侧上的额外块,块Bi中包含基于仅那个码字的奇偶校验位的不可校正错误的分量码字可通过使用周围块的重叠分量码字确定位的值来校正。举例来说,参考图7,如果水平分量码字704包含比可使用与那个分量码字相关联的奇偶校验位710校正更多的错误位,那么可采用垂直分量码字706的解码来解码水平分量码字704的位。
在决策框814中,控制电路确定块Bi在操作812中是否被成功解码。如果块Bi被成功解码(决策框814,是分支),那么在操作808中控制电路将经请求区段传回到主机。如果控制电路814确定块Bi未被成功解码(决策框814,否分支),那么在决策框816中控制电路确定整个阶梯码是否已被解码。如果整个阶梯码已被解码(决策框Bi,是分支),那么在操作818中控制电路起始错误恢复且方法800的执行终止。如果控制电路确定整个阶梯码尚未被解码(决策框816,否分支),那么控制电路增加要解码块的范围中包含的块的数目,且前进到在操作810中读取新较大窗中的块的分量码字。方法800可反复,直到经请求区段被成功解码或直到完整阶梯码被解码且起始错误恢复。反复解码增加数目的块使经请求区段能够提供到主机,同时通过将解码操作限于仅解码经请求区段所需的那些块来最小化解码时间。因此,当仅解码阶梯码的部分对满足主机的请求来说必需时,解码操作避免消耗不必要资源来解码完整阶梯码。
图9说明根据本发明的实施例的包含存储器装置900的设备。存储器装置900包含具有经配置以存储数据的多个存储器单元的存储器阵列960。可在所述阵列中通过各种信号线、字线(WL)及/或位线(BL)的使用存取存储器单元。存储器单元可为非易失性存储器单元(例如NAND或NOR快闪存储器单元、相变存储器单元),或通常可为任何类型的存储器单元。存储器阵列960的存储器单元可经布置成存储器阵列架构。举例来说,在一个实施例中,存储器单元经布置成3D交叉点架构。在其它实施例中,可使用其它存储器阵列架构,举例来说,单级交叉点架构等。存储器单元可为经配置以对于一个数据位存储数据的单电平单元。存储器单元也可为经配置以对于一个以上数据位存储数据的多电平单元。
可通过数据选通总线(未展示)传输数据选通信号DQS。可使用DQS信号来提供用于将数据传送到存储器装置900或从存储器装置900传送数据的时序信息。I/O总线928连接到I/O控制电路920,I/O控制电路920在I/O总线928与内部数据总线922、内部地址总线924及/或内部命令总线926之间投送数据信号、地址信息信号及其它信号。I/O控制电路920通过状态寄存器总线932耦合到状态寄存器934。可通过I/O控制电路920响应于提供到存储器装置100的读取状态命令而提供由状态寄存器934存储的状态位。状态位可具有相应值以指示存储器及其操作的各种方面的状态条件。I/O控制电路920还可经配置以对存储在存储器阵列960中或从存储器阵列960检索的数据执行编码及解码操作。在各种实施例中,I/O控制电路920可经实施为图1的控制电路106。
存储器装置900还包含控制逻辑910,控制逻辑910在外部或通过命令总线926接收数个控制信号938以控制存储器装置900的操作。可使用任何适当接口协议来实施控制信号938。举例来说,控制信号938可基于引脚(如常见于动态随机存取存储器及快闪存储器(例如,NAND快闪存储器)中)或基于操作码。实例控制信号938包含时钟信号、读取/写入信号、时钟启用信号等。命令寄存器936耦合到内部命令总线926以存储通过I/O控制电路920所接收的信息且将信息提供到控制逻辑910。控制逻辑910可通过状态寄存器总线932进一步存取状态寄存器934,(举例来说)以随着状态条件改变而更新状态位。控制逻辑910可经配置以将内部控制信号提供到存储器装置900的各种电路。举例来说,响应于接收存储器存取命令(例如,读取、写入),控制逻辑910可提供内部控制信号以控制各种存储器存取电路执行存储器存取操作。各种存储器存取电路是在存储器存取操作期间使用,且通常可包含电路,例如行解码器及列解码器、电荷泵电路、信号线驱动器、数据及快取寄存器、I/O电路以及其它电路。
可使用行解码器940及列解码器950来为存储器操作(举例来说,读取及写入操作)选择存储器单元的块。行解码器940及/或列解码器950可包含经配置以将偏压信号提供到存储器阵列960中的一或多个信号线的一或多个信号线驱动器。
数据I/O电路970包含经配置以基于从控制逻辑910接收的信号而促进I/O控制电路920与存储器阵列960之间的数据传送的一或多个电路。在各种实施例中,数据I/O电路970可包含一或多个寄存器、缓冲器及用于管理存储器阵列960与I/O控制电路920之间的数据传送的其它电路。举例来说,在写入操作期间,I/O控制电路920通过I/O总线928接收要写入的数据且经由内部数据总线922将数据提供到数据I/O电路970。数据I/O电路970基于由控制逻辑910在通过行解码器940及列解码器950指定的位置处提供的控制信号而将数据写入到存储器阵列960。在读取操作期间,数据I/O电路970基于由控制逻辑910在通过行解码器940及列解码器950指定的地址处提供的控制信号而从存储器阵列960读取数据。数据I/O电路970经由内部数据总线922将读取数据提供到I/O控制电路920。接着,I/O控制电路920在I/O总线928上提供读取数据。
所属领域一般技术人员将进一步明白,结合本文中揭示的实施例描述的各种说明性逻辑块、配置、模块、电路及算法步骤可经实施为电子硬件、由处理器执行的计算机软件或两者的组合。各种说明性组件、块、配置、模块、电路及步骤已在上文中通常按照其功能性进行描述。所属领域技术人员可对于每一特定应用以变化方式实施所描述功能性,但此类实施方案决策不应解释为导致脱离本发明的范围。
提供所揭示实施例的先前描述以使所属领域技术人员能够制作或使用所揭示实施例。所属领域技术人员将容易明白这些实施例的各种修改,且本文中定义的原理可应用于其它实施例而不脱离本发明的范围。因此,本发明并非旨在限于本文中展示的实施例而应符合与如先前描述的原理及新颖特征一致的可能最广泛范围。
Claims (25)
1.一种设备,其包括:
第一校验子运算电路,其经配置以接收具有多个行及多个列的码字且进一步经配置以运算所述码字的第一分量码字的至少部分的第一校验子;
第二校验子运算电路,其经配置以接收所述码字且运算所述码字的第二分量码字的至少部分的第二校验子;及
位校正电路,其经配置以至少部分基于所述第一校验子及所述第二校验子中的至少一者而校正所述码字中的一或多个错误位,
其中所述第一分量码字及所述第二分量码字跨越所述码字的两个或两个以上行及两个或两个以上列。
2.根据权利要求1所述的设备,其进一步包括:
解码器电路,其经配置以识别所述第一分量码字或所述第二分量码字中的一或多个错误位的位置。
3.根据权利要求2所述的设备,其进一步包括:
映射器电路,其经配置以将所述第一分量码字或所述第二分量码字中的所述一或多个错误位的所述位置转译成所述码字中的所述一或多个错误位的位置。
4.根据权利要求3所述的设备,其进一步包括:
校验子更新电路,其经配置以基于所述码字中的所述一或多个错误位的所述位置而更新所述第一校验子及所述第二校验子中的至少一者。
5.根据权利要求1所述的设备,其中所述码字是阶梯码的部分。
6.根据权利要求5所述的设备,其中通过外部码编码所述阶梯码。
7.根据权利要求6所述的设备,其进一步包括经配置以基于所述外部码运算所述码字的校验子的第三校验子运算电路。
8.一种方法,其包括:
通过阶梯码编码器电路生成阶梯码,所述阶梯码包括:
多个水平分量码字,其跨越所述阶梯码的块的多个行;及
多个垂直分量码字,其跨越所述阶梯码的所述块的多个列,
其中所述多个分量码字中的水平分量码字及所述多个垂直分量码字中的垂直分量码字编码多个数据位;
将所述阶梯码存储在存储器阵列中;
通过阶梯码解码器电路解码所述块以检索所述多个数据位;及
提供所述多个数据位。
9.根据权利要求8所述的方法,其中解码所述块包括:
生成所述水平分量码字及所述垂直分量码字中的一者的校验子;
生成所述水平分量码字及所述垂直分量码字中的另一者的部分校验子;及
至少部分基于所述校验子及所述部分校验子而识别所述多个数据位的错误数据位。
10.根据权利要求9所述的方法,其进一步包括:
校正所述错误数据位。
11.根据权利要求9所述的方法,其进一步包括:
至少部分基于所述经识别错误数据位而更新所述校验子及所述部分校验子。
12.根据权利要求9所述的方法,其中识别所述错误位包括:
确定所述块中的所述错误数据位的位置。
13.一种方法,其包括:
接收阶梯码的块;
解码所述块;
确定所述块是否被成功解码;
响应于确定所述块未被成功解码,反复接收所述阶梯码的额外块,基于所述额外块而解码所述块,且确定所述块是否被成功解码;及
响应于确定所述块被成功解码,提供所述块。
14.根据权利要求13所述的方法,其中阶梯码的所述块包括多个垂直分量码字及多个水平分量码字。
15.根据权利要求14所述的方法,其中所述块包括多个位且通过至少一个垂直分量码字及至少一个水平分量码字编码所述多个位中的每一位。
16.根据权利要求15所述的方法,其中所述多个垂直分量码字及所述多个水平分量码字包括BCH码。
17.根据权利要求13所述的方法,其中对于每一反复,接收两个额外块。
18.根据权利要求13所述的方法,其中确定所述块是否被成功解码包括:
在未成功解码所述块的情况下确定所述阶梯码中的所有所述块是否已被解码;及
响应于在未成功解码所述块的情况下确定所述块已被解码,起始错误恢复操作。
19.根据权利要求18所述的方法,其中所述块位于所述阶梯码的中心。
20.一种方法,其包括:
编码具有多个垂直分量码字及多个水平分量码字的阶梯码中的一组数据,其中所述垂直分量码字中的每一者跨越所述阶梯码的两个或两个以上行且所述水平分量码字中的每一者跨越所述阶梯码的两个或两个以上列。
21.根据权利要求20所述的方法,其中所述多个水平分量码字中的水平分量码字与所述多个垂直分量码字中的垂直分量码字在顶点处重叠。
22.根据权利要求21所述的方法,其中所述顶点包括所述组数据中的数据阵列。
23.根据权利要求21所述的方法,其进一步包括:
解码所述组数据,其中解码所述组数据包括:
运算所述多个水平分量码字中的水平分量码字的完整校验子;及
运算所述多个垂直分量码字的重叠垂直分量码字的部分校验子。
24.根据权利要求21所述的方法,其进一步包括:
解码所述组数据,其中解码所述组数据包括:
运算所述多个垂直分量码字中的垂直分量码字的完整校验子;及
运算所述多个水平分量码字的重叠水平分量码字的部分校验子。
25.根据权利要求20所述的方法,其中所述组数据包括BCH码字。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/267,967 | 2016-09-16 | ||
US15/267,967 US10110256B2 (en) | 2016-09-16 | 2016-09-16 | Apparatuses and methods for staircase code encoding and decoding for storage devices |
PCT/US2017/047530 WO2018052652A1 (en) | 2016-09-16 | 2017-08-18 | Apparatuses and methods for staircase code encoding and decoding for storage devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109716661A true CN109716661A (zh) | 2019-05-03 |
Family
ID=61618060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780056514.0A Pending CN109716661A (zh) | 2016-09-16 | 2017-08-18 | 用于存储装置的阶梯码编码及解码的设备及方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10110256B2 (zh) |
EP (1) | EP3513497A4 (zh) |
KR (1) | KR102226607B1 (zh) |
CN (1) | CN109716661A (zh) |
TW (1) | TWI646545B (zh) |
WO (1) | WO2018052652A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148522A (zh) * | 2019-06-28 | 2020-12-29 | 西部数据技术公司 | 快闪存储器中的错误校正方案 |
CN113254258A (zh) * | 2020-02-07 | 2021-08-13 | 美光科技公司 | 用于错误校正的设备、***及方法 |
WO2024026584A1 (en) * | 2022-07-30 | 2024-02-08 | Qualcomm Incorporated | Techniques for staircase encoding with block-code-based shaping |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10110256B2 (en) | 2016-09-16 | 2018-10-23 | Micron Technology, Inc. | Apparatuses and methods for staircase code encoding and decoding for storage devices |
CN109245846B (zh) * | 2017-07-10 | 2022-07-05 | 中兴通讯股份有限公司 | 一种阶梯码解码方法和阶梯码解码装置 |
CN109245847B (zh) * | 2017-07-10 | 2022-04-05 | 中兴通讯股份有限公司 | 一种阶梯码解码方法和阶梯码解码装置 |
CN109787641B (zh) * | 2017-11-15 | 2024-02-06 | 中兴通讯股份有限公司 | staircase码的解码方法、装置及存储介质 |
US10831596B2 (en) * | 2018-01-22 | 2020-11-10 | Micron Technology, Inc. | Enhanced error correcting code capability using variable logical to physical associations of a data block |
US11061771B2 (en) * | 2019-03-01 | 2021-07-13 | Micron Technology, Inc. | Extended error detection for a memory device |
US11057060B1 (en) * | 2020-03-23 | 2021-07-06 | Sage Microelectronics Corporation | Method and apparatus for matrix flipping error correction |
US11709734B2 (en) * | 2021-04-30 | 2023-07-25 | Micron Technology, Inc. | Error correction with syndrome computation in a memory device |
CN115276796A (zh) * | 2022-06-23 | 2022-11-01 | 兰州理工大学 | 一种基于阶梯码的超奈奎斯特速率大气光传输方法 |
CN116708842B (zh) * | 2023-08-01 | 2023-12-12 | 国网安徽省电力有限公司超高压分公司 | 用于高速视频传输的阶梯码编码调制方法、设备和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553533B2 (en) * | 1998-02-05 | 2003-04-22 | International Business Machines Corporation | Method and apparatus for detecting and correcting errors and erasures in product ECC-coded data arrays for DVD and similar storage subsystems |
US20060279437A1 (en) * | 2005-06-10 | 2006-12-14 | Digital Fountain, Inc. | Forward error-correcting (fec) coding and streaming |
US7594156B2 (en) * | 2001-12-20 | 2009-09-22 | Philippe Mejean | High-efficiency compact turbo-decoder |
US7774688B1 (en) * | 2006-10-11 | 2010-08-10 | Marvell International Ltd. | Hardware efficient decoding system for Bose, Ray-Chaudhuri, Hocquenghem (BCH) product codes |
US20120266051A1 (en) * | 2011-04-13 | 2012-10-18 | Cortina Systems, Inc. | Staircase forward error correction coding |
US8656244B1 (en) * | 2010-10-29 | 2014-02-18 | Massachusetts Institute Of Technology | Rate adaptive nonbinary LDPC codes with low encoding complexity |
US20140215292A1 (en) * | 2013-01-29 | 2014-07-31 | Qualcomm Incorporated | Lt staircase fec code |
CN105429646A (zh) * | 2015-06-30 | 2016-03-23 | 南京大学 | 一种咬尾阶梯码的编码及解码方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009004601A2 (en) * | 2007-07-02 | 2009-01-08 | Technology From Ideas Limited | Generation of parity-check matrices |
US8359526B2 (en) * | 2007-07-05 | 2013-01-22 | Samsung Electronics Co., Ltd. | Apparatus for processing streams and method thereof |
TWI427937B (zh) * | 2007-11-26 | 2014-02-21 | Sony Corp | Data processing device and data processing method |
JP2013183205A (ja) * | 2012-02-29 | 2013-09-12 | Nagoya Institute Of Technology | マルチレート線形符号のレート推定方法及び送受信装置 |
JP2014039227A (ja) * | 2012-08-20 | 2014-02-27 | Nagoya Institute Of Technology | 送受信システム |
BR112015030894B1 (pt) * | 2013-09-12 | 2023-03-14 | Sony Corporation | Dispositivo codificador, transmissor e receptor |
JP6539210B2 (ja) * | 2013-11-15 | 2019-07-03 | 日本放送協会 | 送信装置及び受信装置 |
EP3070850B1 (en) * | 2013-11-15 | 2019-07-17 | Nippon Hoso Kyokai | Encoder and decoder for an ldpc code of rate 93/120 and length 44880 |
US20150264404A1 (en) * | 2014-03-17 | 2015-09-17 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US20150311920A1 (en) * | 2014-04-25 | 2015-10-29 | Agency For Science, Technology And Research | Decoder for a memory device, memory device and method of decoding a memory device |
JP2016213701A (ja) * | 2015-05-11 | 2016-12-15 | 富士通株式会社 | 誤り訂正方法、半導体装置、送受信モジュールおよび伝送装置 |
US10277905B2 (en) * | 2015-09-14 | 2019-04-30 | Google Llc | Transform selection for non-baseband signal coding |
US9998148B2 (en) * | 2015-12-01 | 2018-06-12 | SK Hynix Inc. | Techniques for low complexity turbo product code decoding |
US10200066B2 (en) * | 2016-03-09 | 2019-02-05 | SK Hynix Inc. | Code reconstruction scheme for multiple code rate TPC decoder |
US10110256B2 (en) | 2016-09-16 | 2018-10-23 | Micron Technology, Inc. | Apparatuses and methods for staircase code encoding and decoding for storage devices |
-
2016
- 2016-09-16 US US15/267,967 patent/US10110256B2/en active Active
-
2017
- 2017-08-18 CN CN201780056514.0A patent/CN109716661A/zh active Pending
- 2017-08-18 WO PCT/US2017/047530 patent/WO2018052652A1/en unknown
- 2017-08-18 KR KR1020197008539A patent/KR102226607B1/ko active IP Right Grant
- 2017-08-18 EP EP17851282.8A patent/EP3513497A4/en not_active Withdrawn
- 2017-08-28 TW TW106129186A patent/TWI646545B/zh active
-
2018
- 2018-10-16 US US16/162,278 patent/US10693504B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553533B2 (en) * | 1998-02-05 | 2003-04-22 | International Business Machines Corporation | Method and apparatus for detecting and correcting errors and erasures in product ECC-coded data arrays for DVD and similar storage subsystems |
US7594156B2 (en) * | 2001-12-20 | 2009-09-22 | Philippe Mejean | High-efficiency compact turbo-decoder |
US20060279437A1 (en) * | 2005-06-10 | 2006-12-14 | Digital Fountain, Inc. | Forward error-correcting (fec) coding and streaming |
US7774688B1 (en) * | 2006-10-11 | 2010-08-10 | Marvell International Ltd. | Hardware efficient decoding system for Bose, Ray-Chaudhuri, Hocquenghem (BCH) product codes |
US8656244B1 (en) * | 2010-10-29 | 2014-02-18 | Massachusetts Institute Of Technology | Rate adaptive nonbinary LDPC codes with low encoding complexity |
US20120266051A1 (en) * | 2011-04-13 | 2012-10-18 | Cortina Systems, Inc. | Staircase forward error correction coding |
US20140237325A1 (en) * | 2011-04-13 | 2014-08-21 | Cortina Systems, Inc. | Staircase forward error correction coding |
US20140215292A1 (en) * | 2013-01-29 | 2014-07-31 | Qualcomm Incorporated | Lt staircase fec code |
CN105429646A (zh) * | 2015-06-30 | 2016-03-23 | 南京大学 | 一种咬尾阶梯码的编码及解码方法 |
Non-Patent Citations (1)
Title |
---|
H. ERNST等: ""Transport Layer Coding for the Land Mobile Satellite Channel"", 《2004 IEEE 59TH VEHICULAR TECHNOLOGY CONFERENCE. VTC 2004-SPRING (IEEE CAT. NO.04CH37514)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148522A (zh) * | 2019-06-28 | 2020-12-29 | 西部数据技术公司 | 快闪存储器中的错误校正方案 |
CN113254258A (zh) * | 2020-02-07 | 2021-08-13 | 美光科技公司 | 用于错误校正的设备、***及方法 |
WO2024026584A1 (en) * | 2022-07-30 | 2024-02-08 | Qualcomm Incorporated | Techniques for staircase encoding with block-code-based shaping |
Also Published As
Publication number | Publication date |
---|---|
KR20190034699A (ko) | 2019-04-02 |
US10693504B2 (en) | 2020-06-23 |
US20180083653A1 (en) | 2018-03-22 |
EP3513497A1 (en) | 2019-07-24 |
TWI646545B (zh) | 2019-01-01 |
US20190058493A1 (en) | 2019-02-21 |
KR102226607B1 (ko) | 2021-03-15 |
US10110256B2 (en) | 2018-10-23 |
WO2018052652A1 (en) | 2018-03-22 |
EP3513497A4 (en) | 2020-08-26 |
TW201814719A (zh) | 2018-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109716661A (zh) | 用于存储装置的阶梯码编码及解码的设备及方法 | |
KR102179228B1 (ko) | 메모리에서의 티어드 오류 정정 코드(ecc) 동작 | |
US10218789B2 (en) | Erasure correcting coding using temporary erasure data | |
US10847246B2 (en) | Memory systems performing reconfigurable error correction operation using ECC engine with fixed error correction capability | |
KR101659888B1 (ko) | 플래시 메모리 제어 방법, 제어기 및 전자 장치 | |
US9262268B2 (en) | Method to distribute user data and error correction data over different page types by leveraging error rate variations | |
US8010875B2 (en) | Error correcting code with chip kill capability and power saving enhancement | |
US9268632B2 (en) | Memory device with ECC history table | |
TW200935233A (en) | System and method for data read of a synchronous serial interface NAND | |
CN101573694A (zh) | 用于小数据结构的ecc保护的方法、***和装置 | |
US10461777B2 (en) | Error locator polynomial decoder and method | |
US10097208B2 (en) | Error locator polynomial decoder method | |
JP2015509640A (ja) | 誤り訂正符号の編成を含む装置および方法 | |
CN111566738B (zh) | 存储器***中的有效和选择性的备用位 | |
US11232821B2 (en) | Memory system | |
CN111858131A (zh) | 提供针对交叉点存储器中的行方向和列方向的纠错的技术 | |
US10572189B2 (en) | Method and decoder to adjust an error locator polynomial based on an error parity | |
US9836350B2 (en) | Joint decoding of rewriting NVM error sectors | |
US10186302B2 (en) | Semiconductor systems performing double-write operations and methods of operating the same | |
US20160283325A1 (en) | Errors and erasures decoding from multiple memory devices | |
US20180097528A1 (en) | Error locator polynomial decoder and method | |
KR20160075001A (ko) | 플래시 메모리 시스템 동작 방법 | |
US20170170848A1 (en) | Video server device and writing/reading data method | |
CN108574495B (zh) | 错误定位多项式解码器及方法 | |
CN104364773B (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 | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240119 |