CN112346903B - 用于执行内建式自我测试的独立磁盘冗余数组译码*** - Google Patents
用于执行内建式自我测试的独立磁盘冗余数组译码*** Download PDFInfo
- Publication number
- CN112346903B CN112346903B CN202011105319.2A CN202011105319A CN112346903B CN 112346903 B CN112346903 B CN 112346903B CN 202011105319 A CN202011105319 A CN 202011105319A CN 112346903 B CN112346903 B CN 112346903B
- Authority
- CN
- China
- Prior art keywords
- reed
- solomon
- codeword
- decoder
- syndrome
- 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
Links
Classifications
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- 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/1515—Reed-Solomon 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/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
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computer Hardware Design (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种用于执行内建式自我测试的独立磁盘冗余数组译码***,包括有一错误***区块,用于将错误***至一第一里德索罗门(RS)码字以及一第二RS码字;一独立磁盘冗余数组译码器包括有一储存器用于储存所述第一码字的一校正子、一第一RS译码器以及一第二RS译码器用于分别储存所述第一RS码字以及所述第二RS码字,以及分别根据所述第一RS码字的所述奇偶数据以及所述第二RS码字的所述奇偶数据来对所述第一RS码字以及所述第二RS码字进行译码,以产生所述第一RS码字的一更新后校正子以及所述第二RS码字的一更新后校正子。相较于现有技术,本发明所提出的技术方案使用更小的带宽,且不需要外接储存器。
Description
本申请是申请日为2017年03月08日、申请号为201710136379.2、发明创造名称为“用于执行内建式自我测试的独立磁盘冗余数组译码***”的中国发明申请的分案申请。
技术领域
本发明涉及一种错误更正码(error correcting code,ECC)技术,尤其涉及一种具有降低的带宽(bandwidth)的独立磁盘冗余数组(Redundant Array of IndependentDisks,RAID)错误更正码。
背景技术
闪存是一种高效能、低功耗且非挥发性的储存装置,基于这些特性,闪存已被广泛地应用于行动装置。闪存的一项缺点是,随着使用时间的增加,储存单元会逐渐地衰退,这意味着数据准位(例如0或1)的正确性也会因而降低。在某些情况下,因数据准位不正确而衍生的错误无法被更正,造成储存单元变得无法使用。
错误更正码技术是通过找出关联于数据准位的错误并且将其更正来延长储存单元的使用寿命。举例来说,低密度奇偶校验(low-density parity check,LDPC)译码即为错误更正码的一例,这是一种比较强力的错误更正码技术。然而,即使是低密度奇偶校验码仍有一定机率会在特定的原始错误位率(Raw Error Bit rate)下失败。为了避免无法通过低密度奇偶校验编码来找出有效码字的情况,一些辅助性的错误更正码解决方案已被提出,以侦测/更正无法单独被低密度奇偶校验所解决的错误,其中一个方案是采用编码独立磁盘冗余数组校验(encoding RAID check)。
独立磁盘冗余数组(RAID)是一种虚拟架构,是将多种磁盘组件合并于单一逻辑单元。有效字可通过以下方式来还原:通过将程序代码分割至多个磁盘、将单一磁盘中的程序代码镜像(mirroring)到另一磁盘中,以及取得利用奇偶性符元等。RAID level 6使用里德索罗门(Reed-Solomon,RS)码,每一码是由2位组(2-byte)的符元(symbol)组成。数据是以双分布式奇偶校验(double distributed parity)的方式来写入到多个磁盘,也就是说,两个奇偶校验区块会被发散到所有的成员磁盘(member disk)。当低密度奇偶校验译码器无法还原有效码字时,独立磁盘冗余数组的奇偶数据可使用为辅助性的错误更正码。
数据会通过分成多个区块(chunk)以及加入里德索罗门码来进行独立磁盘冗余数组编码,接着,独立磁盘冗余数组数据(也就是通过独立磁盘冗余数组编码后的数据)会被输入至低密度奇偶校验编码器并且储存于闪存,以便输出至低密度奇偶校验译码器。在进行低密度奇偶校验译码之后,若一码字失败(也就是低密度奇偶校验错误更正码不足以还原正确的数据),独立磁盘冗余数组数据译码是通过对RAID引擎输入无效(non-valid)码字、以及输入独立磁盘冗余数组数据奇偶数据以产生一校正子(syndrome)来执行。在执行一定次数的迭代后,所述校正子应可满足矩阵方程式,也就是校正子为零。而在此时,原始数据可通过更新后的校正子来还原。
上述作法的缺点在于,独立磁盘冗余数组数据引擎必须储存全部的码字,且在每次迭代中必须输入64位的奇偶数据(对应于四个RS符元)至独立磁盘冗余数组译码器,因而占用极大的带宽。
发明内容
本发明的目的之一在于公开内建自测试(Built in Self-Test,BIST)功能,以降低独立磁盘冗余数组数据译码引擎在带宽以及储存空间上的需求。
本发明的一实施例公开了一种用于执行内建式自我测试(Built in Self-Test,BIST)的独立磁盘冗余数组(Redundant Array of Independent Disks,RAID)译码***,包括有一错误***区块(Error Insertion Block)以及一独立磁盘冗余数组译码器。所述错误***区块用于将错误***至一第一里德索罗门(Reed-Solomon,RS)码字(Codeword)以及一第二RS码字。所述独立磁盘冗余数组译码器包括有一储存器、一第一RS译码器以及一第二RS译码器。所述储存器用于储存所述第一码字的一校正子(syndrome)、所述第二个码字的一校正子、所述第一RS码字的奇偶数据(parity data),以及所述第二RS码字的奇偶数据。所述第一RS译码器以及所述第二RS译码器用于分别储存所述第一RS码字以及所述第二RS码字,以及分别根据所述第一RS码字的所述奇偶数据以及所述第二RS码字的所述奇偶数据来对所述第一RS码字以及所述第二RS码字进行译码,以产生所述第一RS码字的一更新后校正子以及所述第二RS码字的一更新后校正子。所述独立磁盘冗余数组译码器不会对所述第一里德索罗门码字以及所述第二里德索罗门码字进行镜像,以及当所述第一RS码字的所述更新后校正子以及所述第二RS码字的所述更新后校正子都为零时,所述第一RS码字的所述更新后校正子以及所述第二RS码字的所述更新后校正子是用来分别对所述第一RS码字以及所述第二RS码字进行错误校正。
根据本发明的另一实施例,第二RS码字是所述第一RS码字的镜像(mirror),以使所述第一RS码字的奇偶数据相同于所述第二RS码字的奇偶数据;以及所述储存器储存所述第一RS码字以及所述第二RS码字其中一者的奇偶数据,并且储存具有错误的所述第一RS码字以及所述第二RS码字中的一者。所述多任务器通过对储存在所述储存器中的所述奇偶数据进行镜像,来分别将所述第一RS码字的奇偶数据以及所述第二个码字的奇偶数据输入至所述第一RS译码器以及所述第二RS译码器。
附图说明
图1是根据现有技术的RAID编码***的示意图。
图2是根据本发明的第一实施例的RAID译码***的示意图。
图3是图2所示的RAID译码***的独立磁盘冗余数组译码器中示意图。
图4是图2所示的RAID译码***执行一结果校验操作的示意图。
图5是根据本发明的第二实施例的RAID译码***的示意图。
图6是图5所示的RAID译码***中的独立磁盘冗余数组译码器的示意图。
其中,附图标记说明如下:
100 独立磁盘冗余数组编码***
110 随机数字产生器
150 独立磁盘冗余数组编码器
200 独立磁盘冗余数组译码***
210 随机数字产生器
220 错误***区块
230 种子库
241~244 里德索罗门译码引擎
245 储存器
250 独立磁盘冗余数组译码器
260 结果校验区块
500 独立磁盘冗余数组译码***
510 随机数字产生器
520 错误***区块
541~544 译码引擎
545 储存器
547 多任务器
550 独立磁盘冗余数组译码器
具体实施方式
本发明包括两种实施例来公开实用的内建自测试(Built-In Self-Test,BIST)功能,相较现有技术,本发明使用较小的带宽来进行独立磁盘冗余数组(Redundant Array ofIndependent Disks,RAID)数据译码。
根据前述的现有技术,在进行独立磁盘冗余数组编码的过程中,数据是被分割为多个区块并且使用里德索罗门(Reed-Solomon,RS)码来加入独立磁盘冗余数组奇偶性。请参考图1,图1是根据现有技术的独立磁盘冗余数组编码***100的示意图。独立磁盘冗余数组编码***100是由随机数字产生器110以及独立磁盘冗余数组编码器150所组成。在RAIDlevel 6中,用来进行编码的频带具有4个RS符元的宽度,其中每一RS符元是二字组的数据(2bytes data),因此每一区块是用64元数据来编码。随机数字产生器110产生了32位的分割数据(striped data),所述分割数据接着会被镜像而建立四个RS符元(即64位),所述64位数据接着会被输入至独立磁盘冗余数组编码器150以产生奇偶数据。由于所述64位数据是通过对原始的32位数据进行镜像(mirror)来产生,奇偶数据也可通过镜像来产生。
通过判断错误更正是否有正确地进行,内建自测试(Built-In Self-Test,BIST)功能可使***校正其译码引擎。在一标准的内建自测试中,会刻意将错误***由随机数字产生器产生的数据。在进行译码后,合成(resultant)数据可通过校验来判断在已得知错误的正确位置以及数值的情况下,无错误的(error-free)码字是否可以被还原。
在现有技术的内建自测试中,具有错误的码字会被输入至并且储存于独立磁盘冗余数组译码器中。奇偶数据从外部输入至独立磁盘冗余数组译码引擎,以产生并且更新所述码字的校正子(syndrome),而这些校正子之后可用来更正数据。独立磁盘冗余数组译码引擎因此必须储存更正后的码字以及带有错误的原始码字,本实施例的目标在于降低内建自测试所需的带宽以及所需的储存空间。
图2是根据本发明的第一实施例的独立磁盘冗余数组译码***200的示意图,独立磁盘冗余数组译码***200包括随机数字产生器210、错误***区块220、种子库(SEEDpool)230,以及独立磁盘冗余数组译码器250。独立磁盘冗余数组译码器250包括四个里德索罗门译码引擎241~244(标注为RSDEC)以及一储存器245。当随机数字产生器210产生数据时,错误会被刻意地***错误***区块220中。带有错误的码字会被输入至独立磁盘冗余数组译码器250中,并且也会被输入至种子库230中,其中种子库230储存辨识所述码字的每一区块的数据值,使得带有错误的码字可于之后被还原。随机数字产生器220会如同现有技术产生32位数据,但本发明并不会对数据进行镜像,因此总共只有随机数字产生器210所产生的32位数据(即两个里德索罗门码字的数据)会被输入至独立磁盘冗余数组译码器250。
如上所述,仅有一半的数据被输入至独立磁盘冗余数组译码器250,故RS译码引擎241~244中只有一半的RS译码引擎需要被使用,而本实施例使用RS译码引擎241、242来译码数据。此外,由于储存器245仅需要储存对应于两个码字的校正子,用来解码所述码字的奇偶数据可储存于储存器245的剩余空间。值得注意的是,相较于现有技术,本发明只需要一半的奇偶数据,因为本发明没有进行数据镜像。
参考图3,图3是图2所示的独立磁盘冗余数组译码***中的独立磁盘冗余数组译码器的示意图。如图3所示,带有错误的码字会先被输入至独立磁盘冗余数组译码器250中的两个里德索罗门译码引擎241、242,而里德索罗门译码引擎241、242会输出至储存器245以分别更新对应每一个码字的校正子。在第二次迭代中,上述校正子以及两个码字的奇偶数据会被输入至RS译码引擎241、242,以产生更新后的校正子,其中多任务器247是用来进行对于输入数据或奇偶数据的选取。以此类推,奇偶数据以及更新后校正子会以迭代的方式重复输入一定次数,直到校正子等于零,此时可进行结果校验(result check)操作。
图4是图2所示的独立磁盘冗余数组译码***执行一结果校验操作的示意图。种子库230是用来控制随机数字产生器210输出对应于两个码字的32位数据,以对带有错误的原始码字进行还原。独立磁盘冗余数组译码器250会输出所述两个码字的最终更新后校正子以及所有的带有错误的原始码字,且所述最终更新后校正子会被传送至结果校验区块260,其中所述最终更新后校正子是用来校正码字。由于已得知错误的值与位置,故可判断出独立磁盘冗余数组译码***200是否已经能够对原始的码字进行还原。
除了以上实施例,本发明还公开一第二实施例来进一步降低带宽以及简化译码程序。
图5是根据本发明的第二实施例的独立磁盘冗余数组译码***500的示意图,独立磁盘冗余数组译码***500包括随机数字产生器510、错误***区块520以及独立磁盘冗余数组译码器550。独立磁盘冗余数组译码器550包括四个RS译码引擎541~544(标注为RSDEC),以及一储存器545。在本实施例中,随机数字产生器510只输出16位,再通过镜像的方式产生32位数据,即两个码字。上述两个码字会输入至错误***区块520,接着,合成(resultant)数据会输入至独立磁盘冗余数组译码器550,而不会输入至一种子库。由于32位数据只具有一个对应的RS符元(奇偶数据),因此在本实施例中只需要使用到第一实施例一半的储存空间,而剩余的空间是直接储存上述带有错误的两个码字中的一者。请注意,由于两个码字是相同,上述储存的码字既等同于输入至译码引擎541的第一个码字输入,也等同于输入至译码引擎542的第二个码字输入。
译码程序请参见图6,图6是图5所示的独立磁盘冗余数组译码***中的独立磁盘冗余数组译码器的示意图。在第一次迭代中,输入数据(即带有错误的码字)是输入至RS译码引擎541、542,以产生所述码字的校正子,其中若两个RS译码引擎都操作正确,所述码字的校正子会彼此相同。奇偶数据会在下一次迭代中直接地通过多任务器547来输入至RS译码器541、542,但奇偶数据在被输入之前会先被镜像(mirrored)。此外,所述校正子会跟着被更新,其中若两个RS译码器都正常运作,则校正子应为相同。当更新后的校正子等于零时,这表示错误可被更正,且最终的更新后校正子是用于对所述码字进行错误更正码操作。
在本实施例中,独立磁盘冗余数组译码器550储存了更正后的码字以及带有错误的原始码字,因此这些的数值都可直接地输出至结果校验区块260,以确认所有错误都已找出并且已更正。
本发明公开针对独立磁盘冗余数组译码器的功能内建自测试的两个实施例如上,相较于现有技术,本发明实施例使用更小的带宽,且不需要外接储存器。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种用于执行内建式自我测试的独立磁盘冗余数组译码***,其特征在于,所述独立磁盘冗余数组译码***还包括有:
一错误***区块,用于将错误***至一第一里德索罗门码字以及一第二里德索罗门码字;以及
一独立磁盘冗余数组译码器,包括有:
一储存器,用于储存所述第一里德索罗门码字的一校正子、所述第二里德索罗门码字的一校正子、所述第一里德索罗门码字的奇偶数据,以及所述第二里德索罗门码字的奇偶数据;
一第一里德索罗门译码器,用于储存所述第一里德索罗门码字,以及根据所述第一里德索罗门码字的所述奇偶数据来对所述第一里德索罗门码字进行译码,以产生所述第一里德索罗门码字的一更新后校正子;以及
一第二里德索罗门译码器,用于储存所述第二里德索罗门码字,以及根据所述第二里德索罗门码字的所述奇偶数据来对所述第二里德索罗门码字进行译码,以产生所述第二里德索罗门码字的一更新后校正子;
其中所述独立磁盘冗余数组译码器不会对所述第一里德索罗门码字以及所述第二里德索罗门码字进行镜像,以及
当所述第一里德索罗门码字的所述更新后校正子以及所述第二里德索罗门码字的所述更新后校正子都为零时,所述第一里德索罗门码字的所述更新后校正子以及所述第二里德索罗门码字的所述更新后校正子是用来分别对所述第一里德索罗门码字以及所述第二里德索罗门码字进行错误校正。
2.如权利要求1所述的独立磁盘冗余数组译码***,其特征在于,所述独立磁盘冗余数组译码***还包括有:
一多任务器,耦接于所述储存器、所述第一里德索罗门译码器以及所述第二里德索罗门译码器之间,所述多任务器用于在一第一次迭代中将所述第一里德索罗门码字输入至所述第一里德索罗门译码器以及将所述第二里德索罗门码字输入至所述第二里德索罗门译码器,以及在后续的迭代中将所述第一里德索罗门码字的所述奇偶数据输入至所述第一里德索罗门译码器以及将所述第二里德索罗门码字的所述奇偶数据输入至所述第二里德索罗门译码器,以分别更新所述第一里德索罗门码字的所述校正子以及所述第二里德索罗门码字的所述校正子。
3.如权利要求1所述的独立磁盘冗余数组译码***,其特征在于,所述独立磁盘冗余数组译码***还包括有:
一随机数字产生器,用于产生数据至所述错误***区块;以及
一种子库,耦接于所述错误***区块与所述随机数字产生器之间,所述种子库用于储存对应于具有错误***其中的所述第一里德索罗门码字的多个数据值以及对应于具有错误***其中的所述第二里德索罗门码字的多个数据值,并且于所述第一里德索罗门码字的所述更新后校正子以及所述第二里德索罗门码字的所述更新后校正子都为零时,使用所述多个值来控制所述随机数字产生器产生具有错误***其中的所述第一里德索罗门码字以及所述第二里德索罗门码字。
4.如权利要求3所述的独立磁盘冗余数组译码***,其特征在于,所述独立磁盘冗余数组译码***还包括有:
一结果校验区块,耦接于所述随机数字产生器以及所述独立磁盘冗余数组译码器,所述结果校验区块用于接收具有错误***其中的所述第一里德索罗门码字与所述第二里德索罗门码字以及更正错误后的所述第一里德索罗门码字以及所述第二里德索罗门码字,并且判断数据的正确性。
5.一种用于执行内建式自我测试的独立磁盘冗余数组译码***,其特征在于,所述独立磁盘冗余数组译码***还包括有:
一错误***区块,用于将错误***至一第一里德索罗门码字以及一第二里德索罗门码字;以及
一独立磁盘冗余数组译码器,包括有:
一储存器,用于储存所述第一里德索罗门码字的一校正子以及所述第二里德索罗门码字的一校正子;
一第一里德索罗门译码器,用于储存所述第一里德索罗门码字,以及根据所述第一里德索罗门码字的奇偶数据来对所述第一里德索罗门码字进行译码,以产生所述第一里德索罗门码字的一更新后校正子;以及
一第二里德索罗门译码器,用于储存所述第二里德索罗门码字,以及根据所述第二里德索罗门码字的奇偶数据来对所述第二里德索罗门码字进行译码,以产生所述第二里德索罗门码字的一更新后校正子;
其中所述第二里德索罗门码字是所述第一里德索罗门码字的镜像,所述第一里德索罗门码字的所述奇偶数据相同于所述第二里德索罗门码字的所述奇偶数据,所述储存器储存所述第一里德索罗门码字以及所述第二里德索罗门码字其中之一的奇偶数据,当所述第一里德索罗门码字的所述更新后校正子以及所述第二里德索罗门码字的所述更新后校正子都为零时,所述第一里德索罗门码字的所述更新后校正子以及所述第二里德索罗门码字的所述更新后校正子是用来分别对所述第一里德索罗门码字以及所述第二里德索罗门码字进行错误校正。
6.如权利要求5所述的独立磁盘冗余数组译码***,其特征在于,所述独立磁盘冗余数组译码***还包括有:
一随机数字产生器,用于产生数据至所述错误***区块。
7.如权利要求5所述的独立磁盘冗余数组译码***,其特征在于,所述储存器储存具有错误的所述第一里德索罗门码字以及所述第二里德索罗门码字中的其中之一。
8.如权利要求5所述的独立磁盘冗余数组译码***,其特征在于,所述独立磁盘冗余数组译码***还包括有:
一结果校验区块,耦接于所述独立磁盘冗余数组译码器,所述结果校验区块用于接收具有错误***其中的所述第一里德索罗门码字以及所述第二里德索罗门码字的其中之一以及更正错误后的所述第一里德索罗门码字以及所述第二里德索罗门码字,并且判断数据的正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011105319.2A CN112346903B (zh) | 2016-03-18 | 2017-03-08 | 用于执行内建式自我测试的独立磁盘冗余数组译码*** |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/073,665 US9899104B2 (en) | 2016-03-18 | 2016-03-18 | Raid decoding architecture with reduced bandwidth |
US15/073,665 | 2016-03-18 | ||
CN201710136379.2A CN107402860B (zh) | 2016-03-18 | 2017-03-08 | 用于执行内建式自我测试的独立磁盘冗余数组译码*** |
CN202011105319.2A CN112346903B (zh) | 2016-03-18 | 2017-03-08 | 用于执行内建式自我测试的独立磁盘冗余数组译码*** |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710136379.2A Division CN107402860B (zh) | 2016-03-18 | 2017-03-08 | 用于执行内建式自我测试的独立磁盘冗余数组译码*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112346903A CN112346903A (zh) | 2021-02-09 |
CN112346903B true CN112346903B (zh) | 2023-08-08 |
Family
ID=59855972
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710136379.2A Active CN107402860B (zh) | 2016-03-18 | 2017-03-08 | 用于执行内建式自我测试的独立磁盘冗余数组译码*** |
CN202011105319.2A Active CN112346903B (zh) | 2016-03-18 | 2017-03-08 | 用于执行内建式自我测试的独立磁盘冗余数组译码*** |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710136379.2A Active CN107402860B (zh) | 2016-03-18 | 2017-03-08 | 用于执行内建式自我测试的独立磁盘冗余数组译码*** |
Country Status (3)
Country | Link |
---|---|
US (2) | US9899104B2 (zh) |
CN (2) | CN107402860B (zh) |
TW (1) | TWI627834B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387254B2 (en) * | 2017-10-12 | 2019-08-20 | Samsung Electronics Co, Ltd. | Bose-chaudhuri-hocquenchem (BCH) encoding and decoding tailored for redundant array of inexpensive disks (RAID) |
TWI625735B (zh) * | 2017-11-01 | 2018-06-01 | 大心電子股份有限公司 | 記憶體管理方法以及儲存控制器 |
US11121806B2 (en) * | 2018-09-07 | 2021-09-14 | Qualcomm Incorporated | Decoding performance |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990051448A (ko) * | 1997-12-19 | 1999-07-05 | 강상훈 | 리드-솔로몬 디코더의 N+α개 피포 설계 방법 |
CN101309086A (zh) * | 2008-06-27 | 2008-11-19 | 东南大学 | 里德-所罗门码级联反馈***卷积码的***的译码方法 |
CN102222026A (zh) * | 2010-04-16 | 2011-10-19 | Lsi公司 | 定位和校正损坏的数据或校正子块 |
CN104052576A (zh) * | 2014-06-07 | 2014-09-17 | 华中科技大学 | 一种云存储下基于纠错码的数据恢复方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19725581C2 (de) | 1997-06-17 | 2000-06-08 | Siemens Ag | Verfahren zur Funktionsüberprüfung von Speicherzellen eines integrierten Speichers |
US7571372B1 (en) * | 2005-06-23 | 2009-08-04 | Marvell International Ltd. | Methods and algorithms for joint channel-code decoding of linear block codes |
US7930586B1 (en) * | 2008-02-07 | 2011-04-19 | At&T Intellectual Property Ii, L.P. | Error rate reduction for memory arrays |
KR101623119B1 (ko) * | 2010-02-01 | 2016-05-20 | 삼성전자주식회사 | 솔리드 스테이트 드라이브의 에러 제어 방법 |
US8522122B2 (en) * | 2011-01-29 | 2013-08-27 | International Business Machines Corporation | Correcting memory device and memory channel failures in the presence of known memory device failures |
US8914687B2 (en) * | 2011-04-15 | 2014-12-16 | Advanced Micro Devices, Inc. | Providing test coverage of integrated ECC logic en embedded memory |
US8954825B2 (en) * | 2012-03-06 | 2015-02-10 | Micron Technology, Inc. | Apparatuses and methods including error correction code organization |
WO2014003599A1 (en) * | 2012-06-29 | 2014-01-03 | Ems Corparation | Redundant disc encoding via erasure decoding |
KR101255265B1 (ko) * | 2012-08-13 | 2013-04-15 | 주식회사 유니테스트 | 솔리드 스테이트 드라이브 테스터에서 에러 발생장치 |
-
2016
- 2016-03-18 US US15/073,665 patent/US9899104B2/en active Active
-
2017
- 2017-01-03 TW TW106100009A patent/TWI627834B/zh active
- 2017-03-08 CN CN201710136379.2A patent/CN107402860B/zh active Active
- 2017-03-08 CN CN202011105319.2A patent/CN112346903B/zh active Active
-
2018
- 2018-01-01 US US15/859,716 patent/US20180122494A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990051448A (ko) * | 1997-12-19 | 1999-07-05 | 강상훈 | 리드-솔로몬 디코더의 N+α개 피포 설계 방법 |
CN101309086A (zh) * | 2008-06-27 | 2008-11-19 | 东南大学 | 里德-所罗门码级联反馈***卷积码的***的译码方法 |
CN102222026A (zh) * | 2010-04-16 | 2011-10-19 | Lsi公司 | 定位和校正损坏的数据或校正子块 |
CN104052576A (zh) * | 2014-06-07 | 2014-09-17 | 华中科技大学 | 一种云存储下基于纠错码的数据恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180122494A1 (en) | 2018-05-03 |
TWI627834B (zh) | 2018-06-21 |
TW201735550A (zh) | 2017-10-01 |
US20170271029A1 (en) | 2017-09-21 |
CN112346903A (zh) | 2021-02-09 |
CN107402860A (zh) | 2017-11-28 |
US9899104B2 (en) | 2018-02-20 |
CN107402860B (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11740960B2 (en) | Detection and correction of data bit errors using error correction codes | |
US8645789B2 (en) | Multi-phase ECC encoding using algebraic codes | |
US9075745B1 (en) | System and method for adding a drive to a storage system having multiple drives | |
US20160164543A1 (en) | Turbo product codes for nand flash | |
US8806295B2 (en) | Mis-correction and no-correction rates for error control | |
US8181094B2 (en) | System to improve error correction using variable latency and associated methods | |
KR20080064029A (ko) | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 | |
CN101211667A (zh) | 降低误纠概率的纠错电路和方法和包括该电路的存储设备 | |
US9391641B2 (en) | Syndrome tables for decoding turbo-product codes | |
US9654147B2 (en) | Concatenated error correction device | |
CN112346903B (zh) | 用于执行内建式自我测试的独立磁盘冗余数组译码*** | |
US20180011757A1 (en) | Error correction code management of write-once memory codes | |
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
US9189327B2 (en) | Error-correcting code distribution for memory systems | |
US20160139988A1 (en) | Memory unit | |
WO2016122515A1 (en) | Erasure multi-checksum error correction code | |
JP2020046823A (ja) | メモリシステム | |
US7340666B1 (en) | Method and apparatus for using memory compression to enhance error correction | |
US20160147598A1 (en) | Operating a memory unit | |
CN113168882B (zh) | 一种编码方法、译码方法以及存储控制器 | |
CN110113058B (zh) | 编译码方法、装置、设备及计算机可读存储介质 | |
JP2022500918A (ja) | ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 | |
CN111989745A (zh) | 通用高和低随机位纠错逻辑 | |
KR101355988B1 (ko) | 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치 | |
KR20170067656A (ko) | Nand 플래시용 터보 프로덕트 코드 |
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 |