JP2005293557A - 復号器、データ記憶装置およびデータの誤り訂正の方法 - Google Patents

復号器、データ記憶装置およびデータの誤り訂正の方法 Download PDF

Info

Publication number
JP2005293557A
JP2005293557A JP2005042272A JP2005042272A JP2005293557A JP 2005293557 A JP2005293557 A JP 2005293557A JP 2005042272 A JP2005042272 A JP 2005042272A JP 2005042272 A JP2005042272 A JP 2005042272A JP 2005293557 A JP2005293557 A JP 2005293557A
Authority
JP
Japan
Prior art keywords
data
decoder
partial
error
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005042272A
Other languages
English (en)
Other versions
JP4733403B2 (ja
Inventor
Matt Ball
マット・ボール
Justin Koller
ジャスティン・コラー
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.)
Quantum Corp
Original Assignee
Quantum Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quantum Corp filed Critical Quantum Corp
Publication of JP2005293557A publication Critical patent/JP2005293557A/ja
Application granted granted Critical
Publication of JP4733403B2 publication Critical patent/JP4733403B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/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/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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 複数のセルを含む、データの誤りを訂正する復号器を提供する。
【解決手段】 各セルは、データブロックおよび1つまたは複数の冗長ブロックに基づいて部分シンドロームを生成する。各セルは、誤りを有するデータブロックの位置を特定する誤り位置行列の逆行列の部分に基づいて、部分誤り値を生成する。複数のセルに接続される加算論理が、複数のセルによって生成された部分誤り値に基づいて、誤り値を生成する。誤り値は、誤りを有するデータブロックの誤りを訂正する。
【選択図】 図1

Description

背景
発明の分野
本願は、一般に、誤り訂正符号(たとえば、ボース−チャウドゥーリー−オッカンガム(Bose-Chaudhuri-Hocquenghem)(BCH)符号、リード−ソロモン(Reed-Solomon)符号など)を用いるデータの誤り訂正に関し、より特定的には、部分シンドローム発生を伴うセルを用いる誤り訂正復号器に関する。
関連技術
データの誤り訂正は、データ記憶装置、電気通信システムなどの多様な分野で用いられる。たとえば、データ記憶装置では、データは、記憶装置の記憶媒体にデータを書込むことによって格納される。格納されたデータは、記憶媒体からそのデータを読出すことによって記憶装置から後に検索され得る。しかしながら、多くの理由により、記憶装置から検索されたデータに誤りが存在する場合がある。つまり、格納されたデータが検索できないか、または記憶媒体に最初に格納されたデータとは異なっていることがある。たとえば、記憶媒体に格納されたデータの一部は時間が経つと劣化することがあり、格納されたデータの一部を後で正確に読出すことができなくなってしまう。
従来の誤り訂正手法は、データの1つまたは複数の冗長ブロックを生成すること、または符号化することを含み、それをデータの誤りを訂正するために復号化プロセスで用いることができる。典型的には、復号化プロセスは特別なハードウェアを用いて実行され、複雑で変更の困難なものとなりがちである。
概要
1つの例示的な実施例では、データの誤りを訂正する復号器は、複数のセルを含む。各セルは、データブロックおよび1つまたは複数の冗長ブロックに基づいて、部分シンドロームを生成する。各セルは、誤りを有するデータブロックの位置を特定する、誤り位置行列の逆行列の部分に基づいて、部分誤り値を生成する。複数のセルに接続される加算論理は、複数のセルによって生成される部分誤り値に基づいて誤り値を生成する。誤り値は、誤りを有するデータブロックの誤りを訂正する。
詳細な説明
以下の説明は、多数の特定の構成、パラメータなどを明示する。しかしながら、このような説明が、この発明の範囲に対する限定とは意図されず、例示的な実施例のよりよい説明をもたらすために提供されることが認識される。
例として、記憶装置のデータの誤り訂正が以下に説明される。しかしながら、誤り訂正は電気通信を含む多様な分野で用いられ得ることが認識される。
図1を参照すると、記憶装置104に接続されるホスト端末102が示される。ホストコンピュータ102は、任意の種類のコンピュータ、たとえばパーソナルコンピュータ、ワークステーション、サーバなどであり得る。記憶装置104は任意の種類の記憶ドライ
ブ、たとえばテープドライブ、ハードドライブなどであり得る。ホスト端末102を任意の数の記憶装置104に接続でき、任意の数のホスト端末102を1つまたは複数の記憶装置104に接続できることが認識される。
引続き図1を参照すると、例示的な一実施例において、記憶装置104は、記憶装置104に格納されたデータの誤りを検出して訂正するよう構成される。より具体的には、記憶装置104に格納されたデータが検索されるときにたとえばその検索されたデータが記憶装置104に最初に格納されていたデータと異なる場合、または格納されたデータを検索できない場合に、記憶装置104は、検索されたデータの誤りを訂正するために、誤り訂正符号(ECC)冗長ブロックとも呼ばれる冗長ブロックを用いるよう設定される。加えて、検索されたデータの誤りを検出するために、巡回冗長検査(CRC)符号などの内部符号が用いられ得る。しかしながらリード−ソロモン符号などの誤り訂正符号が、誤りを訂正するためとともに検出するためにも用いられ得ることが認識される。
図1に示された実施例において、記憶装置104は、記憶媒体106、チャネルおよび読出/書込ヘッド108、プロセッサ110、および誤り検出/訂正ユニット112を含む。記憶装置104において、データは記憶媒体106に格納される。読出/書込ヘッド108は、記憶媒体106にデータの読出および/または書込を行なう。プロセッサ110は、チャネルおよび読出/書込ヘッド108の動作を含む、記憶装置104の動作を制御する。以下により詳細に説明されるように、誤り検出/訂正ユニット112は、記憶媒体106に格納されたデータの誤りを検出して訂正する。
この例示的な実施例において、誤り検出/訂正ユニット112は、データバッファ114、冗長ブロック符号器/復号器116、および内部符号符号器/復号器118を含む。データが記憶媒体106に格納されるべき場合、データがホスト端末102から受取られてデータバッファ114に書込まれる。冗長ブロック符号器/復号器116は、データバッファ114のデータに対して冗長ブロックを生成する。内部符号符号器/復号器118は、データバッファ114のデータに対して内部符号(たとえば、CRC符号、リード−ソロモン符号など)を生成する。次に、読出/書込ヘッド108は、データと、生成された冗長ブロックおよび内部符号とを記憶媒体106に書込む。
データが記憶媒体106から読出されるべき場合、読出/書込ヘッド108は、記憶媒体106からデータバッファ114にデータ、冗長ブロック、および内部符号を読出す。以下により詳細に説明されるように、記憶媒体106から読出されたデータのどのような誤りも、内部符号および冗長ブロックを用いて検出され、訂正される。次に、このデータがホスト端末102に転送され得る。
この例示的実施例において、データはホスト端末102と記憶装置104との間をデータレコードとして転送され、このデータレコードはバッファに格納される。データレコードは、予め規定された長さ、たとえば2kバイト、4kバイト、6kバイトなどのデータブロックに分割される。しかしながら、さまざまな長さのデータブロックを用い得ることが認識される。
記憶媒体106からデータブロックが検索された後、誤りを有する検索されたデータブロックが検出され、そこで検索されたデータブロックの誤りは、検索されたデータブロックのデータが読出せないか、またはデータブロックが記憶媒体106に最初に格納されたときのデータブロックのデータとは異なることを示す。たとえば、検索されたデータブロックのデータが、データブロックが記憶媒体106に最初に格納されたときのデータブロックのデータとは異なる場合、CRC符号が検出のために用いられ得る。より具体的には、記憶媒体106にデータブロックを格納する前に、そのデータブロックに対してCRC
符号が生成され、記憶媒体106にデータブロックとともに格納される。データブロックが後に検索されると、その検索されたデータブロックに対して新規のCRC符号が生成される。次に、この新規のCRC符号が、記憶媒体106から検索されたCRC符号と比較される。記憶媒体106から検索されたこのCRC符号は、検索されたデータブロックに対応しており、検索されたデータブロックを記憶媒体106に格納する前に、この検索されたデータブロックに対して最初に生成されたものである。新規のCRC符号と検索されたCRC符号とが異なる場合、そのデータブロックに誤りが検出される。しかしながら、リード−ソロモン符号を含む多様なタイプの誤り訂正符号が用いられ得ることが認識される。
この例示的実施例において、誤り位置行列は、記憶媒体から検索された、誤りを有するデータの位置を特定する。たとえば、ある例示的な誤り位置行列は下記のように表わされる。
Figure 2005293557
ここで、Xは誤りの位置であり、ρは誤りのあるデータブロックおよび冗長ブロックの総数である。
この例示的な実施例において、誤り位置行列の逆行列が生成される。たとえば、上記の例における例示的な誤り位置行列の逆行列は下記のように表わされる。
Figure 2005293557
誤り位置行列はヴァンデルモンド(Vandermonde)行列であって、O(ρ3)演算を必要とする一般的な逆行列と比較すると、一般に、逆数の演算にO(ρ2)演算を必要とすることに注意されたい。ヴァンデルモンド行列における行は、ゼロから始まり、昇冪で累乗された定数値からなる。誤り位置行列の逆行列は、多様な行列反転手法を用いてファームウェアまたはハードウェアによって生成され得る。
この例示的な実施例において、検索されたデータブロックの誤りを訂正するために冗長ブロックが用いられる。より具体的には、記憶媒体106にデータブロックを格納する前に、そのデータブロックに基づいて冗長ブロックが生成され、記憶媒体106にデータブロックとともに格納される。データブロックが後に検索されたときに、誤りを有していると識別されたデータブロックは、冗長ブロックを用いて訂正される。
この例示的な実施例において、冗長ブロックはボース−チャウドゥーリー−オッカンガム(BCH)符号であり、より特定的にはリード−ソロモン符号である。リード−ソロモン符号のより詳細な説明については、この明細書においてその全体が引用によって援用される、1972年、MITプレス(MIT Press)、ピーターソン(Peterson)およびウェルドン(Weldon)による「誤り訂正符号(Error Correcting Codes)」第2版が参照される。しかしながら、さまざまな種類の誤り訂正符号を用い得ることが認識される。
この例示的な実施例において、データブロックの集合、冗長ブロックの集合、および内部符号の冗長シンボルの集合は、「エンティティ」と呼ばれるグループとしてまとめて読出および書込が行なわれ得る。たとえば図2を参照すると、エンティティ202は、16個のデータブロック204、4個の冗長ブロック206、および内部符号208の20個の冗長シンボルを有していることが示される。しかしながら、エンティティ202がさまざまな数のデータブロック204、冗長ブロック206、および内部符号208の冗長シンボルを含み得ることが認識される。たとえば、エンティティ202は、32個のデータブロック204および8個の冗長ブロック206、112個のデータブロック204および16個の冗長ブロック206、などを含み得る。加えて、内部符号208の冗長シンボルは、データブロック204または冗長ブロック206の中で誤りを検出、かつ訂正することができる。
図2は、エンティティ202がデータバッファ114(図1)に格納されている形を示す。しかしながら、エンティティ202が図2に示された形で物理的に存在しなくてよいことが認識される。また、エンティティ202のデータ、より特定的にはデータブロック204のデータが、1つのファイルに対応する必要がないことも認識される。むしろ、この例示的な実施例において、ホスト端末102(図1)から検索されたデータはインタリーブされる。したがって、特定のデータブロック204のデータは、ホスト端末102(図1)から受取られた別個のファイルの、それぞれの一部に対応し得る。
図2はまた、エンティティ202のデータブロック204、冗長ブロック206、および内部符号208の冗長シンボル間の論理関係を示す。図3を参照すると、データブロック204、冗長ブロック206、および内部符号208の冗長シンボル間の論理関係をより明らかに示すために、エンティティ202の部分がより詳細に示される。
図3において、内部符号208の冗長シンボルは、CRC符号として示される。しかしながら、リード−ソロモン符号のような多様なタイプの誤り検出または誤り訂正符号が用いられ得ることが認識される。
この例示的な実施例において、内部符号208の冗長シンボルは、データブロック204または冗長ブロック206に対応しており、データブロック204または冗長ブロック206の誤りを検出するために用いられる。たとえばCRC符号のCRC19は、エンティティ202のデータブロックD19に対応する。したがって、データブロックD19の誤りを検出するために、記憶媒体106(図1)からデータブロックD19を検索した後、検索されたデータブロックD19に対して新規のCRC符号であるCRC19´が生成される。次に、新規のCRC符号であるCRC19´と、記憶媒体106(図1)から検索され、検索されたデータブロックD19に対応するCRC符号(すなわちCRC符号であるCRC19)とが比較される。新規のCRC符号であるCRC19´と検索されたCRC符号であるCRC19とが異なる場合、データブロックD19に誤りが検出される。
この例示的実施例において、冗長ブロックの個数が、訂正され得るデータブロックの最大個数を決定する。したがって、図2に示される例において、合計で4個の冗長ブロック206を用いて、最大で4個の誤りデータブロック204を訂正することが可能である。
この例示的な実施例において、各冗長ブロック206はエンティティ202のすべてのデータブロックのデータに基づいて生成される。たとえば冗長ブロックE0、E1、E2、およびE3の各々は、データブロックD4、…、D18、およびD19のデータに基づいて生成される。上述のように、図1を参照すると、冗長ブロックは冗長ブロック符号器/復号器116によって生成される。また上述のように、冗長ブロックは、ホスト端末102から受取られたデータに対して最初に生成される。次に、生成された冗長ブロックと受取られたデータとが記憶媒体106に格納される。
再び図3を参照すると、冗長ブロックE0、E1、E2、およびE3は同じ集合のデータ(すなわちエンティティ202のデータブロック204)に基づいて生成されており、各冗長ブロック206は互いに固有である。より具体的には、この実施例において、冗長ブロックE0、E1、E2、およびE3はボース−チャウドゥーリー−オッカンガム(BCH)符号であり、より特定的にはリード−ソロモン符号である。
図1を参照すると、この例示的実施例において、冗長ブロック符号器/復号器116は、記憶媒体106にデータブロックとともに格納される冗長ブロックを生成するための符号器として動作する。冗長ブロック符号器/復号器116は、記憶媒体106から検索されたデータブロックの誤りを訂正するための復号器として動作する。しかしながら、冗長ブロック符号器/復号器116は、記憶装置104の中で別個のコンポーネント(すなわち、符号器コンポーネントおよび復号器コンポーネント)として実現され得ることが認識される。
図4を参照すると、記憶媒体から検索されたデータブロックの誤りを訂正するための、例示的な符号器400が示される。上述のように、符号器400は、冗長ブロック符号器/復号器116(図1)の統合された部分として実現されるか、または記憶装置104(図1)の中で別個のコンポーネントとして実現されてもよい。
図4に示されるように、符号器400は複数のセル402と複数のセル402に接続される加算論理404とを含む。各セル402は、記憶媒体から検索された冗長ブロックとデータブロックとに基づいて部分シンドロームを生成する。各セル402はさらに、記憶媒体から検索された誤りを有するデータブロックの位置を特定する、誤り位置行列の逆行列の部分に基づいて部分誤り値を生成する。上述のように、誤り位置行列の逆行列は、ファームウェアまたはハードウェアによって生成され得る。加算論理404は、複数のセル402によって生成される部分誤り値に基づいて、記憶媒体から検索されたデータブロックの誤りを訂正する、誤り値を生成する。
図1を参照すると、上述のように、記憶媒体106から検索されたデータブロックおよび冗長ブロックはデータバッファ114に保持される。より特定的には、図2を参照すると、1つの例示的実施例において、データブロック204および冗長ブロック206はデータバッファ114(図1)にエンティティ202の形で格納され得る。
図4を再び参照すると、この例示的実施例において、複数のセル402はライン406を介してデータバッファ114(図1)に接続される。各セル402は、データバッファ114(図1)に格納されるエンティティ202(図2)の一部を入力として受取る。より特定的には、各セル402はエンティティ202(図2)の部分をキャッシュバーストで読出す。
図2を参照すると、この例示的実施例において、各キャッシュバーストは単一のデータブロック204または冗長ブロック206の一部である。加えて、この例示的実施例にお
いて、データブロック204および冗長ブロック206の部分はラスタパターンで読出される。
たとえば、各キャッシュバーストが32バイト長であると仮定する。第1のデータブロック204の第1の32バイトが第1のキャッシュバーストで読出される。次に、エンティティ202の次の15個のデータブロック204および4個の冗長ブロック206の各々の第1の32バイトが、次の19個のキャッシュバーストで読出される。最後の冗長ブロック206の第1の32バイトが読出された後、第1のデータブロック204の次の第2の32バイトが読出され、次いで、エンティティ202の次の15個のデータブロック204および4個の冗長ブロック206の各々の次の第2の32バイトが読出される。この態様で、エンティティ202のデータブロック204および冗長ブロック206は、32バイト部分ずつラスタパターンでキャッシュバーストで読出される。しかしながら、キャッシュバーストのサイズは変動してもよく、データブロック204および冗長ブロック206は多様なパターンで読出され得ることが認識される。たとえば、各キャッシュバーストは32バイトではなく64バイトでもよい。
この例示的実施例において、エンティティ202のデータブロック204および冗長ブロック206の各々の部分は、符号語210として論理的にグループ化され得る。たとえば、データブロック204および冗長ブロック206の各々の第1の部分は第1の符号語210として論理的にグループ化されることができ、それは図2の第1の列に対応する。データブロック204および冗長ブロック206の各々の第2のバイトは、第2の符号語210として論理的にグループ化されることができ、それは図2の第2の列に対応する。
この例示的実施例において、符号語210は1バイト幅である。したがって、データブロック204および冗長ブロック206が2kバイト長である場合、エンティティ202のデータブロック204および冗長ブロック206は、2000個の別個独立の符号語210へと論理的にグループ化され得る。加えて、データブロック204および冗長ブロック206が、それぞれが32ビットである16個の長語に対応する32バイトのキャッシュバーストを用いて読出される場合、32個の符号語210の各部分が一度に読出される。
再び図4を参照すると、この例示的実施例において、復号器400のセル402の個数はエンティティ202の冗長ブロック206(図2)の個数に対応し、それは次に、訂正され得るデータブロック204の最大個数に対応する。したがって、復号器400は訂正されるべきデータブロック204の最大個数に基づいて修正される。たとえば、最大4個のデータブロック204が訂正される場合、復号器400は4個のセル402を含むように変形される。同様に、最大16個または32個のデータブロック204が訂正される場合、復号器400は16個または32個のセル402を含むように変形される。
図5を参照すると、例示的セル402が示される。この例示的実施例において、各セル402は、入力論理502、キュー504、乗算器506、マルチプレクサ508、キュー510およびキュー512を含む。
上述のように、各セル402は、記憶媒体から検索されたデータブロックおよび1つまたは複数の冗長ブロックに基づいて部分シンドロームを生成する。図6を参照すると、セル402(図4)において部分シンドロームを生成する、例示的な読出プロセス600が示される。
602において、セル402(図4)は読出モードに設定される。図5を参照すると、この例示的実施例において、入力論理502はデータバッファ114(図1)に接続され
るライン406から、および乗算器506の出力に接続されるフィードバックライン514から、入力を受取るよう設定される。より特定的には、図7を参照すると、マルチプレクサ702は、ライン406およびフィードバックライン514に接続されるXORゲート704から入力を受取るよう設定される。図5を参照すると、乗算器506は、入力論理502によって生成される中間結果を保持するキュー504から、および生成多項式の根を保持するキュー510から、入力を受取るよう設定される。より特定的には、入力がキュー510およびキュー512に接続されるマルチプレクサ508は、キュー510から入力を受取るよう設定される。
図6を参照すると、604において、セル402(図4)はデータバッファ114(図1)からデータを読出す。この例示的実施例において、セル402(図4)は、データバッファ114(図1)に格納されたエンティティ202(図2)から、データブロックまたは冗長ブロックの一部をキャッシュバーストとして読出す。
たとえばデータは、データバッファ114(図1)から、16個の長語に対応する32バイトのキャッシュバーストで読出され得る。図5を参照すると、ライン406およびフィードバックライン514は32ビット幅であり、そのためセル402は32ビット(1つの長語)を一度に処理できる。しかしながら、ライン406およびフィードバックライン514は任意のサイズでもよく、セル402は一度に何ビットでも処理できることが認識される。
606において、データバッファ114(図1)から読出されたデータは、乗算器506(図5)からの出力と合計される。図5を参照すると、この例示的実施例において、入力論理502は、ライン406を介した、エンティティ202(図2)から読出されたキャッシュバーストと、フィードバックライン514を介した乗算器506の出力とに対して、排他的論理和(XOR)演算を実行する。上述のように、図7を参照して、入力論理502は、XOR演算を実行することのできるXORゲート704を含む。しかしながら、入力論理502は、多様なタイプおよび個数の論理ゲートを含む、データバッファ114(図1)から読出されたデータを乗算器506(図5)の出力と合計するための多様なコンポーネントを含み得ることが認識される。
図6を参照すると、608において、データバッファ114(図1)から読出されたデータと乗算器506(図5)の出力との合計が中間結果として格納される。図5を参照すると、この例示的実施例において、入力論理502によって生成される中間結果はキュー504に格納される。
この例示的実施例において、キュー504のエントリのサイズおよび個数は、データバッファ114(図1)からデータを読出すのに用いられるキャッシュバーストのサイズ、および、ライン406とフィードバックライン514とのサイズに基づいて決定される。たとえば、16個の長語に対応する32バイトのキャッシュバーストでデータバッファ114(図1)からデータが読出され、ライン516およびフィードバックライン514が32ビット幅である場合、キャッシュバーストの各長語は乗算器506の出力と合計され、キュー504のエントリとして格納される。したがって、この例によれば、キュー504は8個のエントリを含み、各エントリは32ビット長である。キャッシュバーストのサイズが変更されると、キュー504のサイズもさらに変更され得る。たとえばキャッシュバーストが64バイト長の場合、キュー504は各々が32ビット長の16個のエントリを含むことができる。
図6を参照すると610において、中間結果は生成多項式の根で乗算される。図5を参照するとこの例示的実施例において、乗算器506は、キュー504に格納される中間結
果とキュー510に格納される生成多項式の根との間でガロア体乗算を実行する、ガロア体乗算器(Galois Field Multiplier)である。
この例示的実施例において、乗算器506は複数の並列なガロア体乗算を実行する。たとえば、キュー504の各エントリが32ビット長の場合、キュー504のエントリの32ビットのデータが、4個の並列な8ビットのガロア体要素としてフォーマットされ得る。次に乗算器506は、キュー504の32ビット長のエントリとキュー510の生成多項式の8ビットの根との間で4個の並列な8×8のガロア体乗算を実行することができる。
図6を参照すると612において、エンティティ202(図2)のすべてのデータブロックおよび冗長ブロックが処理されていない場合、ループ604からループ612は、次のデータブロックまたは冗長ブロックを処理するために反復される。この例示的実施例において、次に処理されるべきデータブロックが誤りを有すると判断されたときは、604において、データバッファ114(図1)からキャッシュバーストを読出すのではなく、すべてゼロが読出される。すべてのデータブロックおよび冗長ブロックの処理が済めば、読出プロセス600は614において終了する。
この例示的実施例において、ループ604からループ612の反復の回数は、エンティティ202(図2)のデータブロックおよび冗長ブロックの個数に対応する。たとえば図3を参照して、エンティティ202の部分が32バイト長のキャッシュバーストで読出されると仮定する。ループ604からループ612(図6)の第1の反復において、データブロックD19の第1の32バイトを含む第1のキャッシュバーストが読出され、処理される。ループ604からループ612(図6)の第2の反復において、データブロックD18の第1の32バイトを含む第2のキャッシュバーストが読出され、処理される。データブロックD4が誤りを有すると識別されたと仮定する。すると、ループ604からループ612(図6)の第16の反復において、データブロックD4からキャッシュバーストを読出すのではなく、すべてゼロが読出され、処理される。この例において、ループ604からループ612(図6)は、16個のデータブロックおよび4個の冗長ブロックすべてを処理するために20回反復される。
図5を参照すると、ループ604からループ612(図6)の第1の反復において、第1のキャッシュバーストと乗算器506の出力との合計の結果は、第1のキャッシュバーストで読出されたデータであることに注意されたい。なぜなら、キュー504は空で乗算器506の出力はゼロだからである。第2の反復において、キュー504は第1のキャッシュバーストで読出されたデータを保持し、乗算器506の出力は、第1のキャッシュバーストで読出されたデータを生成多項式の根で乗算したものである。したがって、第2のキャッシュバーストと乗算器506の出力との合計の結果は、第2のキャッシュバーストで読出されたデータと、第1のキャッシュバーストで読出されたデータを生成多項式の根で乗算した結果との合計である。次にこの結果は新しい中間結果としてキュー504に格納される。すべてのデータブロックおよび冗長ブロックの処理が済んで、読出プロセス600が614(図6)において終了するとき、各セル402のキュー504に格納されている最終的な結果は、各セル402の部分シンドロームである。
再び図4を参照するとこの例示的実施例において、各セル402は生成多項式の異なる根を用いる。したがって、複数のセル402の各々において異なる部分シンドロームが生成される。
Figure 2005293557
複数のセル402の生成多項式の根が逐次的である必要がある一方で、シーケンスはいずれの数から開始してもよい。たとえば、各セル402は生成多項式の根であるαn+lを用いることができ、ここでnはセルのシーケンス番号であり、lは各セル402の固定定数である。
Figure 2005293557
読出プロセス600(図6)が終了した後、各セル402は、生成された部分シンドロームおよび誤り位置行列の逆行列の部分に基づいて、部分誤り値を生成する。図8を参照すると、セル402(図4)で部分誤り値を生成する例示的な書込プロセス800が示される。
802において、セル402(図4)は書込モードに設定される。図5を参照すると、この例示的実施例において、入力論理502は、フィードバックライン516から入力を受取るよう設定され、フィードバックライン516は、前の読出プロセスでセル402に生成された部分シンドロームを保持するキュー504に接続される。より特定的には、図7を参照すると、マルチプレクサ702はフィードバックライン516から入力を受取るように設定される。図5を参照すると、乗算器506は、キュー504、および、誤り位置行列の逆行列の部分を保持するキュー512から入力を受取るよう設定される。より特定的には、キュー510およびキュー512に入力が接続されたマルチプレクサ508は、キュー512から入力を受取るよう設定される。
上述のように、誤り位置行列は、記憶媒体から検索された誤りを有するデータブロックの位置を特定する。たとえば、例示的な誤り位置行列は下記のように表わされる。
Figure 2005293557
ここでXは誤りの位置であり、ρは誤りのあるデータブロックおよび冗長ブロックの総数である。誤り位置行列の逆行列は下記のように表わされる。
Figure 2005293557
さらに上述のように、この例示的実施例において、誤り位置行列の逆行列はファームウェアまたはハードウェアによって生成され得る。
Figure 2005293557
Figure 2005293557
図8を参照すると、806において、セル402(図4)によって生成された部分誤り値が加算論理404(図4)に送られる。図4を参照すると、上述の例において、セル402(0)、セル402(1)、…、セル402(ρ−1)によって生成された部分誤り値y0(0)、y0(1)、…、およびy0(ρ−1)が加算論理404に送られる。
加算論理404は、誤り値を生成するため、セル402によって生成された部分誤り値を合計する。上述の例において、第1の誤り値Y0は、セル402(0)、セル402(1)、…、セル402(ρ−1)によって生成された部分誤り値y0(0)、y0(1)、…、およびy0(ρ−1)を合計することによって生成される。
図9を参照すると、この例示的実施例において、加算論理404はセル402(図4)の出力のガロア体和を演算する、XORゲート902のアレイを含むことができる。しかしながら、加算論理404は、多様なタイプおよび個数の論理コンポーネントを含む、セル402(図4)の出力のガロア体和を演算する多様なコンポーネントを含むことができることが認識される。
Figure 2005293557
Figure 2005293557
Figure 2005293557
図5を参照すると、次に書込プロセス800(図8)を反復して部分誤り値の他の集合を生成することができ、それらを合計して他の誤り値を生成することができ、次にその生成された他の誤り値を用いて、誤りのある他のデータブロックの部分を訂正することができる。たとえば第2の反復において、部分誤り値の第2の集合が生成され、合計されて、第2の誤り値が生成される。
Figure 2005293557
806(図8)の第2の反復において、セル402(0)、セル402(1)、…、およびセル402(ρ−1)によって生成される部分誤り値y1(0)、y1(1)、…、およびy1(ρ−1)の第2の集合が、加算論理404に送られる。次に部分誤り値y1(0)、y1(1)、…、およびy1(ρ−1)を合計することによって、第2の誤り値Y1が生成される。
書込プロセス800(図8)を反復し、生成された部分誤り値の集合を合計することによって、誤りを有すると識別されるデータブロックの部分を訂正するための誤り値が生成され得る。書込プロセス800(図8)が反復される回数および生成される誤り値の個数は、誤りを有すると識別されたデータブロックの個数(すなわち、ρ個)に基づいて決定され得る。代替として、書込プロセス800(図8)が反復される回数および生成される誤り値の個数は、訂正され得るデータブロックの最大個数に設定されることができ、それはエンティティ202(図2)の冗長ブロックの個数に対応する。
書込プロセス800(図8)が完了した後で、読出プロセス600(図6)を再び反復して、データバッファ114(図1)に格納されたデータブロックおよび冗長ブロックの他の部分を処理することができ、次いで、書込プロセス800(図8)を再び反復して、誤りを有するデータブロックの他の部分で誤りを訂正することができる。この例示的実施例において、読出プロセス600(図6)を再び反復させる前に、キュー504(図5)がクリアされる。
たとえば、図3を参照して、エンティティ202の部分が32バイトの長さのキャッシュバーストで読出されると仮定する。読出プロセス600(図6)が反復され、各データブロック204および各冗長ブロック206の第1の32バイトを読出し、処理して、部分シンドロームを生成する。次に書込プロセス800(図8)が反復されて誤り値を生成し、誤りを有するデータブロック204の第1の32バイトにおける誤りを訂正する。キュー504(図5)がクリアされ、次に読出プロセス600(図6)が再び反復されて、各データブロック204および各冗長ブロック206の第2の32バイトを読出し、処理して、部分シンドロームの他の集合を生成する。次に書込プロセス800(図8)が再び反復されて誤り値を生成し、誤りを有するデータブロック204の第2の32バイトにおける誤りを訂正する。この態様で、各データブロック204および各冗長ブロック206のすべての部分が読出プロセス600(図6)を用いて読出され、処理されて、誤りを有するデータブロックのすべての部分が書込プロセス800(図8)を用いて訂正される。
例示的な実施例について説明されたが、本発明の精神および/または範囲を逸脱することなく多様な変形がなされ得る。たとえば図4を参照すると、復号器400が記憶装置と接続して説明されるが、復号器400は多様な装置と接続して用いることができ、また、たとえば電気通信システムの一部のような、誤りをもたらすチャネルを介してデータが受取られる、多様な分野で用いられることができる認識されるべきである。したがって本発明は、上記に説明され、図面に示された具体的形態に限定されるものと解されてはならない。
例示的な記憶装置に接続された例示的なホスト端末を示す図である。 データブロック、冗長ブロック、および巡回冗長検査符号の集合を有する例示的なエンティティを示す図である。 図2の例示的なエンティティの部分を示す図である。 例示的な復号器を示す図である。 図4で示された例示的な復号器の例示的なセルを示す図である。 図5で示された例示的なセルによって実行される例示的な読出プロセスを示す図である。 図5で示された例示的なセルの部分を示す図である。 図5で示された例示的なセルによって実行される例示的な書込プロセスを示す図である。 図5で示された例示的なセルの他の部分を示す図である。
符号の説明
102 ホスト端末、104 記憶装置、106 記憶媒体、108 チャネルおよび読出/書込ヘッド、110 プロセッサ、112 誤り検出/訂正ユニット、114 データバッファ、116 冗長ブロック符号器/復号器、118 内部符号符号器/復号器、400 復号器、402 セル、404 加算論理

Claims (46)

  1. データの誤りを訂正する復号器であって、
    複数のセルを含み、各セルは、データブロックおよび1つまたは複数の冗長ブロックに基づいて部分シンドロームを生成し、かつ、部分シンドロームと誤りを有するデータブロックの位置を特定する誤り位置行列の逆行列の部分とに基づいて部分誤り値を生成するよう構成され、さらに、
    複数のセルに接続される加算論理を含み、加算論理は、複数のセルによって生成される部分誤り値に基づいて誤り値を生成するよう構成され、誤り値はデータブロックの1つにある誤りを訂正する、復号器。
  2. 複数のセルの中のセルの個数は冗長ブロックの個数に等しい、請求項1に記載の復号器。
  3. 各セルは、
    入力論理と、
    入力論理に接続される第1のキューと、
    入力論理および第1のキューに接続される乗算器とを含む、請求項1に記載の復号器。
  4. 各セルは、読出モードで部分シンドロームを生成するよう動作する、請求項1に記載の復号器。
  5. セルが読出モードで動作するとき、セルの入力論理は、乗算器と、データブロックおよび1つまたは複数の冗長ブロックを保持するデータバッファとから入力を受取るよう設定される、請求項4に記載の復号器。
  6. 入力論理は乗算器およびデータバッファからの入力の合計を生成し、合計は第1のキューに格納される、請求項5に記載の復号器。
  7. 入力論理は、入力がデータバッファおよび乗算器に接続され、かつ出力が合計を生成するために第1のキューに接続される排他的論理和(XOR)ゲートを含む、請求項6に記載の復号器。
  8. セルが読出モードで動作するとき、乗算器は、生成多項式の根と第1のキューからの合計とを受取るよう設定される、請求項6に記載の復号器。
  9. 乗算器は、生成多項式の根と合計との間でガロア体乗算を実行するガロア体乗算器である、請求項8に記載の復号器。
  10. 乗算器は、生成多項式の根と合計との間で複数の並列なガロア体乗算を実行する複数のガロア体乗算器を含む、請求項9に記載の復号器。
  11. 複数のセルの各セルは、異なる部分シンドロームを生成するために生成多項式の異なる根を受取るよう設定される、請求項8に記載の復号器。
  12. 生成多項式の根は、ハードワイヤードの定数、またはファームウェアによって設定されるレジスタである、請求項8に記載の復号器。
  13. 生成多項式の根を保持する第2のキューと、
    入力が第2のキューに接続され出力が乗算器に接続されるマルチプレクサとをさらに含
    み、マルチプレクサは、セルが読出モードで動作するとき第2のキューを乗算器に接続するよう設定される、請求項8に記載の復号器。
  14. 各セルは、書込モードで部分誤り値を生成するよう動作する、請求項4に記載の復号器。
  15. セルが書込モードで動作するとき、セルの入力論理は、読出モード中にセルによって生成される部分シンドロームを保持するキューから入力を受取るよう設定される、請求項14に記載の復号器。
  16. 乗算器は、部分シンドロームと誤り位置行列の逆行列の部分の要素との間でガロア体乗算を実行するガロア体乗算器である、請求項15に記載の復号器。
  17. 乗算器は、部分シンドロームと誤り位置行列の逆行列の部分の要素との間で複数の並列なガロア体乗算を実行する複数のガロア体乗算器を含む、請求項16に記載の復号器。
  18. 複数のセルの各セルは、異なる部分誤り値を生成するために誤り位置行列の異なる部分を受取るよう設定される、請求項14に記載の復号器。
  19. 誤り位置行列の部分を保持する第3のキューと、
    入力が第3のキューに接続され出力が乗算器に接続されるマルチプレクサとをさらに含み、マルチプレクサは、セルが書込モードで動作するとき第3のキューを乗算器に接続するよう設定される、請求項14に記載の復号器。
  20. 加算論理はXORゲートのアレイを含む、請求項1に記載の復号器。
  21. 誤り位置行列の逆行列は、ファームウェアまたはハードウェアによって生成される、請求項1に記載の復号器。
  22. 復号器はデータ記憶装置のコンポーネントであって、データブロックおよび1つまたは複数の冗長ブロックが、記憶媒体から検索され、データ記憶装置のデータバッファに保持される、請求項1に記載の復号器。
  23. 記憶媒体から検索されたデータの誤りを訂正するよう構成されるデータ記憶装置であって、
    記憶媒体から検索されたデータブロックおよび1つまたは複数の冗長ブロックを保持するよう構成されるデータバッファと、
    データバッファに接続される復号器とを含み、復号器は、
    データバッファに保持されるデータブロックおよび1つまたは複数の冗長ブロックにアクセスする複数のセルを含み、各セルは、検索されたデータブロックおよび1つまたは複数の冗長ブロックに基づいて部分シンドロームを生成するよう構成され、かつ、部分シンドロームおよび誤り位置行列の逆行列の部分に基づいて部分誤り値を生成するよう構成され、復号器はさらに、
    複数のセルに接続される加算論理を含み、加算論理は、複数のセルによって生成された部分誤り値に基づいて誤り値を生成するよう構成され、誤り値はデータブロックの誤りを訂正する、データ記憶装置。
  24. 複数のセルの中のセルの個数は、記憶媒体から検索される冗長ブロックの個数に等しい、請求項23に記載の記憶データ装置。
  25. 各セルは、
    入力論理と、
    入力論理に接続される第1のキューと、
    入力論理および第1のキューに接続される乗算器と、
    乗算器に接続される第2のキューとを含み、第2のキューは生成多項式の根を保持し、さらに、
    乗算器に接続される第3のキューを含み、第3のキューは誤り位置行列の逆行列の部分を保持する、請求項23に記載のデータ記憶装置。
  26. 各セルは、読出モードで部分シンドロームを生成するよう動作し、書込モードで部分誤り値を生成するよう動作する、請求項25に記載のデータ記憶装置。
  27. セルが読出モードで動作する場合、
    セルの入力論理は、乗算器とデータバッファとから受取った入力の合計を生成し、合計を第1のキューに格納し、さらに、
    乗算器は、第2のキューからの生成多項式の根と第1のキューからの合計とを乗算する、請求項26に記載のデータ記憶装置。
  28. セルが書込モードで動作する場合、
    セルの入力論理は第1のキューから合計を受取り、さらに、
    乗算器は、キューに保持される合計と、第3のキューに保持される誤り位置行列の逆行列の部分の要素とを乗算する、請求項27に記載のデータ記憶装置。
  29. 複数のセルの各セルは、異なる部分シンドロームを生成するために生成多項式の異なる根を受取るよう設定され、また、異なる部分誤り値を生成するために誤り位置行列の逆行列の異なる部分を受取るよう設定される、請求項28に記載のデータ記憶装置。
  30. 乗算器は、複数の並列なガロア体乗算を実行するための複数のガロア体乗算器を含む、請求項28に記載のデータ記憶装置。
  31. 加算論理は、排他的論理和(XOR)ゲートのアレイを含む、請求項23に記載のデータ記憶装置。
  32. 誤り位置行列の逆行列は、ファームウェアまたはハードウェアによって生成される、請求項23に記載のデータ記憶装置。
  33. データの誤りを訂正する方法であって、
    データブロックおよび1つまたは複数の冗長ブロックを受取るステップと、
    受取られたデータブロックで誤りを有するものの位置を伴う誤り位置行列の逆行列を生成するステップと、
    復号器の複数のセルにおいて複数の部分シンドロームを生成するステップとを含み、複数の部分シンドロームの各々は、受取られたデータブロックおよび1つまたは複数の冗長ブロックに基づいて複数のセルの各々において生成され、さらに、
    複数のセルにおいて複数の部分誤り値を生成するステップを含み、複数の部分誤り値の各々は、部分シンドロームおよび誤り位置行列の逆行列の部分に基づいて複数のセルの各々において生成され、さらに、
    複数のセルによって生成される複数の部分誤り値に基づいて誤り値を生成するステップを含む、方法。
  34. 受取られたデータブロックおよび1つまたは複数の冗長ブロックはデータバッファに保
    持され、複数の部分シンドロームを生成するステップは、
    複数のセルの各々において、
    a) データバッファからデータを読出すステップと、
    b) データバッファから読出されたデータと乗算器からの出力との合計を生成するステップと、
    c) 合計を格納するステップと、
    d) 生成多項式の根と合計とを乗算するステップと、
    e) ステップa)からステップd)までを反復して、データバッファに保持されるデータブロックおよび1つまたは複数の冗長ブロックをすべて処理するステップとを含み、データバッファに保持されるデータブロックおよび1つまたは複数の冗長ブロックがすべて処理されたとき、合計が部分シンドロームである、請求項32に記載の方法。
  35. 請求項34のステップa)からステップd)までを反復する回数は、データバッファに保持されるデータブロックおよび冗長ブロックの個数に等しい、請求項34に記載の方法。
  36. ステップa)の反復において、誤りを有するデータブロックからデータが読出されようとするとき、誤りを有するデータブロックからのデータではなくすべて0を読出す、請求項34に記載の方法。
  37. 生成多項式の根と合計とを乗算するステップは、
    複数のガロア体乗算器を用いて、生成多項式の根と合計との間で複数の並列なガロア体乗算を実行するステップを含む、請求項34に記載の方法。
  38. 複数の部分誤り値を生成するステップは、
    請求項34のステップa)からステップe)までが完了した後、複数のセルの各々において、
    f) 部分誤り値を生成するために、部分シンドロームを誤り位置行列の逆行列の部分の要素で乗算するステップと、
    g) 部分誤り値を、複数のセルの各々によって生成された部分誤り値と合計するために送るステップとを含む、請求項34に記載の方法。
  39. h) 誤り値を生成するために、複数のセルの各々によって生成された部分誤り値を合計するステップと、
    i) 誤り値を、誤りを有するデータブロックを訂正するためにデータバッファに書込むステップとを含む、請求項38に記載の方法。
  40. j) 誤りを有する他のデータブロックを訂正するために、請求項38のステップf)およびステップg)、ならびに請求項39のステップh)およびステップi)を繰返すステップをさらに含む、請求項39に記載の方法。
  41. 請求項38のステップf)およびステップg)、ならびに請求項39のステップh)およびステップi)を繰返す回数は、誤りを有するデータブロックの個数に等しい、請求項40に記載の方法。
  42. 請求項38のステップf)およびステップg)、ならびに請求項39のステップh)およびステップi)を繰返す回数は、データバッファに保持される冗長ブロックの個数に等しい、請求項40に記載の方法。
  43. 合計がクリアされ、請求項34のステップa)からステップe)まで、請求項38のス
    テップf)およびステップg)、請求項39のステップh)およびステップi)ならびに請求項40のステップj)が繰返されて、データバッファに保持されるデータブロックおよび1つまたは複数の冗長ブロックの他の部分を処理する、請求項40に記載の方法。
  44. 部分シンドロームを誤り位置行列の逆行列の部分の要素で乗算するステップは、
    複数のガロア体乗算器を用いて、部分シンドロームと誤り位置行列の逆行列の部分の要素との間で複数の並列なガロア体乗算を実行するステップを含む、請求項38に記載の方法。
  45. データブロックおよび1つまたは複数の冗長ブロックを受取るステップは、データ記憶装置の記憶媒体からデータブロックおよび1つまたは複数の冗長ブロックを検索するステップを含む、請求項33に記載の方法。
  46. 誤り位置行列の逆行列は、ファームウェアまたはハードウェアによって生成される、請求項33に記載の方法。
JP2005042272A 2004-02-19 2005-02-18 復号器、データ記憶装置およびデータの誤り訂正の方法 Expired - Fee Related JP4733403B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/782990 2004-02-19
US10/782,990 US7228490B2 (en) 2004-02-19 2004-02-19 Error correction decoder using cells with partial syndrome generation

Publications (2)

Publication Number Publication Date
JP2005293557A true JP2005293557A (ja) 2005-10-20
JP4733403B2 JP4733403B2 (ja) 2011-07-27

Family

ID=34861115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005042272A Expired - Fee Related JP4733403B2 (ja) 2004-02-19 2005-02-18 復号器、データ記憶装置およびデータの誤り訂正の方法

Country Status (4)

Country Link
US (1) US7228490B2 (ja)
EP (1) EP1589665B1 (ja)
JP (1) JP4733403B2 (ja)
DE (1) DE602005000251T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021125089A (ja) * 2020-02-07 2021-08-30 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7431585B2 (en) * 2002-01-24 2008-10-07 Applied Materials, Inc. Apparatus and method for heating substrates
US7426678B1 (en) * 2004-07-20 2008-09-16 Xilinx, Inc. Error checking parity and syndrome of a block of data with relocated parity bits
US7694208B2 (en) * 2005-12-20 2010-04-06 Quantum Corporation Error correction algorithm using interleaved parity check and Reed-Solomon code
KR100833600B1 (ko) * 2006-08-25 2008-05-30 삼성전자주식회사 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
US8271857B2 (en) * 2008-05-13 2012-09-18 International Business Machines Corporation Correcting errors in longitudinal position (LPOS) words
US9179362B2 (en) * 2011-08-25 2015-11-03 Texas Instruments Incorporated Systems and methods for networking coding using Reed-Solomon codes
US10181864B2 (en) * 2016-02-26 2019-01-15 Altera Corporation Methods and apparatus for performing reed-solomon encoding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04364139A (ja) * 1991-05-10 1992-12-16 Mitsui Toatsu Chem Inc プロピレンの部分酸化物の製造方法
JPH04365139A (ja) * 1991-06-13 1992-12-17 Sharp Corp 誤り訂正処理用シンドローム演算回路
JPH08139612A (ja) * 1994-11-08 1996-05-31 Asahi Kasei Micro Syst Kk リード・ソロモン誤り訂正符号復号化回路
JP2002280909A (ja) * 2001-03-22 2002-09-27 Sanyo Electric Co Ltd エラー訂正装置
JP2004007217A (ja) * 2002-05-31 2004-01-08 Rikogaku Shinkokai バイト誤り訂正・検出方法及び装置

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4646303A (en) 1983-10-05 1987-02-24 Nippon Gakki Seizo Kabushiki Kaisha Data error detection and correction circuit
JPH0812612B2 (ja) 1983-10-31 1996-02-07 株式会社日立製作所 誤り訂正方法及び装置
JPH0770177B2 (ja) 1984-01-25 1995-07-31 株式会社日立製作所 ディジタル信号再生装置
NL8400630A (nl) 1984-02-29 1985-09-16 Philips Nv Decodeerinrichting voor een stroom van codesymbolen die woordsgewijze beschermd zijn door een dubbele reed-solomon-code met een minimum hamming-afstand van 5 over de codesymbolen en een verbladeringsmechanisme tussen de beide codes, alsmede speler voorzien van zo een decodeerinrichting.
US4777635A (en) 1986-08-08 1988-10-11 Data Systems Technology Corp. Reed-Solomon code encoder and syndrome generator circuit
FR2605769B1 (fr) 1986-10-22 1988-12-09 Thomson Csf Operateur polynomial dans les corps de galois et processeur de traitement de signal numerique comportant un tel operateur
US5325373A (en) 1986-12-22 1994-06-28 Canon Kabushiki Kaisha Apparatus for encoding and decoding reed-solomon code
JPS63193723A (ja) 1987-02-06 1988-08-11 Sony Corp リ−ドソロモン符号の復号方法
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US5430739A (en) 1990-03-27 1995-07-04 National Science Council Real-time Reed-Solomon decoder
US5285455A (en) 1992-02-03 1994-02-08 Lsi Logic Corporation Serial data encoder
US5471485A (en) 1992-11-24 1995-11-28 Lsi Logic Corporation Reed-solomon decoder using discrete time delay in power sum computation
US5444719A (en) 1993-01-26 1995-08-22 International Business Machines Corporation Adjustable error-correction composite Reed-Solomon encoder/syndrome generator
US5383204A (en) 1993-06-29 1995-01-17 Mitsubishi Semiconductor America, Inc. Parallel encoding apparatus and method implementing cyclic redundancy check and Reed-Solomon codes
US5771244A (en) 1994-03-09 1998-06-23 University Of Southern California Universal Reed-Solomon coder/encoder
FR2721774B1 (fr) 1994-06-27 1996-09-06 Sgs Thomson Microelectronics Décodeur reed-solomon.
US5555250A (en) * 1994-10-14 1996-09-10 Compaq Computer Corporation Data error detection and correction system
JPH10505938A (ja) 1995-07-19 1998-06-09 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ マルチフレーム誤り保護機能を有する可逆マルチトラック磁気テープ記憶システム
US5719884A (en) 1995-07-27 1998-02-17 Hewlett-Packard Company Error correction method and apparatus based on two-dimensional code array with reduced redundancy
US5889792A (en) 1996-10-01 1999-03-30 Intel Corporation Method and apparatus for generating syndromes associated with a block of data that employs re-encoding the block of data
GB9622539D0 (en) 1996-10-30 1997-01-08 Discovision Ass Galois field multiplier for reed-solomon decoder
US5948117A (en) 1997-01-23 1999-09-07 Quantum Corporation Modified Reed-Solomon error correction system using (W+i+1)-bit representations of symbols of GF(2w+i)
US5901158A (en) * 1997-04-22 1999-05-04 Quantum Corporation Error correction encoder/decoder
JP3850511B2 (ja) 1997-05-07 2006-11-29 日本テキサス・インスツルメンツ株式会社 リードソロモン復号装置
JPH10322226A (ja) 1997-05-14 1998-12-04 Texas Instr Japan Ltd リードソロモン復号方法
US5889793A (en) 1997-06-27 1999-03-30 Integrated Device Technology, Inc. Methods and apparatus for error correction
JPH1131977A (ja) 1997-07-10 1999-02-02 Sony Corp 誤り訂正符号演算器
KR100256250B1 (ko) 1997-08-30 2000-05-15 김영환 직렬화된 리드 솔리몬 복호장치
US6041431A (en) * 1997-09-19 2000-03-21 Adapter, Inc. Method and apparatus for performing error correction code operations
JPH11196006A (ja) 1997-12-26 1999-07-21 Nec Corp 並列処理シンドロ−ム計算回路及びリ−ド・ソロモン複合化回路
US6327690B1 (en) 1999-02-04 2001-12-04 Intel Corporation Integrated reed-solomon error correction code encoder and syndrome generator
US6347389B1 (en) 1999-03-23 2002-02-12 Storage Technology Corporation Pipelined high speed reed-solomon error/erasure decoder
US6341362B1 (en) 1999-04-22 2002-01-22 Vlsi Technology, Inc. Extended symbol Galois field error correcting device
JP3502583B2 (ja) * 1999-10-25 2004-03-02 松下電器産業株式会社 誤り訂正方法および誤り訂正装置
US6651208B1 (en) * 2000-04-04 2003-11-18 Mosel Vitelic Corporation Method and system for multiple column syndrome generation
GB0031436D0 (en) * 2000-12-22 2001-02-07 Koninkl Philips Electronics Nv Method and apparatus for data reproduction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04364139A (ja) * 1991-05-10 1992-12-16 Mitsui Toatsu Chem Inc プロピレンの部分酸化物の製造方法
JPH04365139A (ja) * 1991-06-13 1992-12-17 Sharp Corp 誤り訂正処理用シンドローム演算回路
JPH08139612A (ja) * 1994-11-08 1996-05-31 Asahi Kasei Micro Syst Kk リード・ソロモン誤り訂正符号復号化回路
JP2002280909A (ja) * 2001-03-22 2002-09-27 Sanyo Electric Co Ltd エラー訂正装置
JP2004007217A (ja) * 2002-05-31 2004-01-08 Rikogaku Shinkokai バイト誤り訂正・検出方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021125089A (ja) * 2020-02-07 2021-08-30 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
JP7400514B2 (ja) 2020-02-07 2023-12-19 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム

Also Published As

Publication number Publication date
EP1589665A1 (en) 2005-10-26
US20050188293A1 (en) 2005-08-25
DE602005000251D1 (de) 2006-12-28
DE602005000251T2 (de) 2007-06-14
JP4733403B2 (ja) 2011-07-27
US7228490B2 (en) 2007-06-05
EP1589665B1 (en) 2006-11-15

Similar Documents

Publication Publication Date Title
US4706250A (en) Method and apparatus for correcting multibyte errors having improved two-level code structure
US6615387B1 (en) Method and apparatus for error detection
US5680340A (en) Low order first bit serial finite field multiplier
JP4733403B2 (ja) 復号器、データ記憶装置およびデータの誤り訂正の方法
US4525838A (en) Multibyte error correcting system involving a two-level code structure
US7278085B1 (en) Simple error-correction codes for data buffers
EP1828899B1 (en) Method and system for syndrome generation and data recovery
US4504948A (en) Syndrome processing unit for multibyte error correcting systems
US6725416B2 (en) Forward error correction apparatus and methods
US6279137B1 (en) System and method for a storage-efficient parallel Chien Search
JP2007274239A (ja) 誤り訂正装置
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
KR19990028201A (ko) 10 비트 리드-솔로몬 에러 정정 모듈을 위한 전용 alu구조
JP2009295273A (ja) 誤り訂正符号エンティティのための消失訂正のコンピュータ実現化方法
US8201061B2 (en) Decoding error correction codes using a modular single recursion implementation
US10606697B2 (en) Method and apparatus for improved data recovery in data storage systems
US7290197B2 (en) Correcting data using redundancy blocks
US6643819B1 (en) Hybrid root-finding technique
US20080140740A1 (en) Systems and methods for processing data sets in parallel
US7228467B2 (en) Correcting data having more data blocks with errors than redundancy blocks
US20070192669A1 (en) Combined encoder/syndrome generator with reduced delay
KR100594002B1 (ko) 가변 처리가 가능한 파이프라인 구조의 리드 솔로몬 복호기
EP0341851A2 (en) Method and apparatus for interleaved encoding
JPH07226687A (ja) 誤り訂正処理装置
JP2622383B2 (ja) ロングディスタンスコードの誤り訂正装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110422

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees