JP6884138B2 - 低電力ダブルエラー訂正−トリプルエラー検出(dec−ted)デコーダ - Google Patents

低電力ダブルエラー訂正−トリプルエラー検出(dec−ted)デコーダ Download PDF

Info

Publication number
JP6884138B2
JP6884138B2 JP2018511372A JP2018511372A JP6884138B2 JP 6884138 B2 JP6884138 B2 JP 6884138B2 JP 2018511372 A JP2018511372 A JP 2018511372A JP 2018511372 A JP2018511372 A JP 2018511372A JP 6884138 B2 JP6884138 B2 JP 6884138B2
Authority
JP
Japan
Prior art keywords
output
error
decoder
double
vector signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018511372A
Other languages
English (en)
Other versions
JP2018533254A5 (ja
JP2018533254A (ja
Inventor
ソン−オク・チョン
サラ・チェ
ビョン・ギュ・ソン
テフイ・ナ
ジス・キム
ジュン・ピル・キム
スンリュル・キム
テヒョン・キム
スン・ヒョク・カン
Original Assignee
クアルコム,インコーポレイテッド
インダストリー−アカデミック コーポレーション ファウンデーション,ヨンセイ ユニバーシティ
インダストリー−アカデミック コーポレーション ファウンデーション,ヨンセイ ユニバーシティ
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 クアルコム,インコーポレイテッド, インダストリー−アカデミック コーポレーション ファウンデーション,ヨンセイ ユニバーシティ, インダストリー−アカデミック コーポレーション ファウンデーション,ヨンセイ ユニバーシティ filed Critical クアルコム,インコーポレイテッド
Publication of JP2018533254A publication Critical patent/JP2018533254A/ja
Publication of JP2018533254A5 publication Critical patent/JP2018533254A5/ja
Application granted granted Critical
Publication of JP6884138B2 publication Critical patent/JP6884138B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/1575Direct 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
    • 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/617Polynomial operations, e.g. operations related to generator polynomials or parity-check polynomials
    • 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/6502Reduction of hardware complexity or efficient processing

Landscapes

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

Description

本明細書で説明する様々な実施形態は、エラー訂正に関し、より詳細には、シングルビットおよび複数ビットのエラー訂正に関する。
メモリなどのデジタル装置およびデジタルデバイスにおけるエラー検出および訂正のための様々な方式が考案されてきた。メモリデバイスにおけるエラー訂正の分野では、エラー検出とエラー訂正は、別々に実行される場合がある。たとえば、ダブルビットエラーが検出された場合、シングルビットエラーの訂正を可能にする、シングルエラー訂正-ダブルエラー検出(SEC-DED:single error correcting-double error detecting)などの方式が考案されてきた。しかしながら、複数ビットエラーの場合、従来のSEC-DED方式は、これらのエラーを緩和できるほど十分に強力でないことがある。
複数ビットエラーの問題に対処するために、より強力なエラー検出および訂正方式が考案されてきた。たとえば、従来のSEC-DED方式よりも強力なエラー訂正機能を提供する、ダブルエラー訂正-トリプルエラー検出(DEC-TED:double error correcting-triple error detecting)などの方式が考案されてきた。しかしながら、DEC-TEDに通常必要な回路の面積は、SEC-DEDに必要な面積よりもはるかに大きい。さらに、従来のDEC-TED回路は、通常、従来のSEC-DED回路よりも多くの電力を消費し、従来のSEC-DED回路よりも長いレイテンシまたは時間遅延をもたらす。たとえば、シングルエラーを訂正するためにDEC-TED回路が利用されるとき、電力消費量および時間遅延は、SEC-DED回路よりもはるかに大きい。
さらに、シングルビットまたは複数ビットのエラー訂正用のエラー訂正コードを実装する純粋な組合せ回路は、エラー位置特定復号(error location decoding)における無効な遷移のために入力が変化するとき、通常、大量の動的電力を消費する場合がある。エラー検出および訂正、特に低電力メモリチップなどの低電力集積回路デバイスにおける複数ビットエラー検出および訂正に必要な電力消費量を低減することが望ましい。
本開示の例示的な実施形態は、電力消費量が低減されたメモリにおけるダブルエラー訂正の装置および方法を対象とする。
一実施形態では、エラー検出および訂正装置が提供され、本エラー検出および訂正装置は、入力データにおけるシングルエラーを位置特定するように構成されるシングルエラー位置特定デコーダと、入力データにおけるダブルエラーを位置特定するように構成されるダブルエラー位置特定デコーダと、訂正された出力データを生成するためにシングルエラー位置特定デコーダおよびダブルエラー位置特定デコーダに結合されるエラー訂正器とを備える。
別の実施形態では、エラー検出および訂正装置が提供され、本エラー検出および訂正装置は、入力データにおけるシングルエラーを位置特定するためにシングルエラー位置特定復号を行うための手段と、入力データにおけるダブルエラーを位置特定するためにダブルエラー位置特定復号を行うための手段と、シングルエラーおよびダブルエラーに基づいて、訂正された出力データを生成するためにエラーを訂正するための手段とを備える。
別の実施形態では、エラー検出および訂正装置が提供され、本エラー検出および訂正装置は、入力データにおけるシングルエラーを位置特定するように構成される論理と、入力データにおけるダブルエラーを位置特定するように構成される論理と、シングルエラーおよびダブルエラーに基づいて、訂正された出力データを生成するように構成される論理とを備える。
また別の実施形態では、メモリが提供され、本メモリは、メモリセルと、メモリセルから入力データを受け取り、訂正された出力データをメモリセルに伝送するために結合されるエラー検出および訂正装置とを備え、本エラー検出および訂正装置は、入力データにおけるシングルエラーを位置特定するように構成されるシングルエラー位置特定デコーダと、入力データにおけるダブルエラーを位置特定するように構成されるダブルエラー位置特定デコーダと、訂正された出力データを生成するためにシングルエラー位置特定デコーダおよびダブルエラー位置特定デコーダに結合されるエラー訂正器とを備える。
添付の図面は、本開示の実施形態の説明を助けるために提示され、実施形態の限定ではなく、実施形態の例示のためのみに提供される。
エラー検出および訂正装置の一実施形態を示すブロック図である。 フリップフロップおよびタイミングコントローラを有するエラー検出および訂正装置の別の実施形態を示すブロック図である。 図2のエラー訂正および復号装置の実施形態におけるタイミングコントローラとしての遅延線の一実施形態を示すブロック図である。 フリップフロップと、タイミングコントローラと、別個のシングルエラー訂正(SEC)およびダブルエラー訂正(DEC)エラー位置特定デコーダと、マルチプレクサと、フラグ生成器とを有するエラー検出および訂正装置のまた別の実施形態を示すブロック図である。 エラー検出機能および訂正機能を実行するように構成される論理を有するエラー検出および訂正装置の一実施形態を示すブロック図である。 エラー検出および訂正装置を実装する場合があるメモリデバイスの一実施形態を示すブロック図である。
本開示の態様は、特定の実施形態を対象とする以下の説明および関連する図面において説明される。本開示の範囲から逸脱することなく、代替実施形態を考案してもよい。さらに、本開示の関連する詳細を不明瞭にしないように、よく知られている要素については詳細に説明しないか、または省略する。
「例示的」という単語は、本明細書では、「例、実例、または例証として機能する」を意味するために使用される。「例示的」として本明細書で説明するいかなる実施形態も、他の実施形態よりも好ましい、または有利であると必ずしも解釈されるべきでない。同様に、「実施形態」という用語は、すべての実施形態が、後述の特徴、利点または動作モードを含むことを必要とするものではない。
本明細書で使用する用語は、特定の実施形態について説明するためのものにすぎず、様々な実施形態を限定するものではない。本明細書では、文脈がそうでないことを明確に示すのでない限り、単数形"a"、"an"、および"the"は複数形も含むものとする。本明細書で使用するとき、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループの存在または追加を排除するものではないことがさらに理解されよう。さらに、「または」という単語は、ブール演算子"OR"と同じ意味を有し、すなわち、"OR"は、「どちらか」および「両方」の可能性を含み、別段に明記されていない限り、「排他的論理和」("XOR")に限定されないことを理解されたい。2つの隣接する単語間のシンボル"/"は、別段に明記されていない限り、「または」と同じ意味を有することも理解されたい。さらに、「〜に接続される」、「〜に結合される」、または「〜と通信している」などの句は、別段に明記されていない限り、直接接続に限定されない。
さらに、多くの実施形態は、たとえば、コンピューティングデバイスの要素によって実行される動作のシーケンスの観点から説明される。本明細書において説明される様々な動作は、特定の回路、たとえば中央処理装置(CPU)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または様々な他のタイプの汎用もしくは専用のプロセッサもしくは回路によって実行されることがあり、1つまたは複数のプロセッサによって実行されるプログラム命令によって実行されることがあり、あるいは両方の組合せによって実行されることがあることが認識されよう。さらに、本明細書で説明するこれらの動作のシーケンスは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させる、対応するコンピュータ命令のセットがその中に格納された任意の形態のコンピュータ可読記憶媒体内に完全に具現化されるとみなすことができる。したがって、本開示の様々な態様は、すべてが特許請求される主題の範囲内のものであると考えられるいくつかの異なる形態において具現化されてもよい。加えて、本明細書で説明する実施形態ごとに、任意のそのような実施形態の対応する形式は、本明細書では、たとえば、説明する動作を実行する「ように構成される論理」として説明される場合がある。
図1は、データ入力(databit_in)102と、エラーチェック入力(checkbit_in)104と、訂正されたデータ出力(databit_out)106とを有するエラー検出および訂正装置100の一実施形態を示すブロック図である。そのようなエラー訂正コードデコーダは、たとえば、スピン転送トルクマグネティックランダムアクセスメモリ(STT-MRAM)などのメモリデバイスにおいて、データエラーを訂正するための様々なデジタル装置またはデバイス内に実装される場合がある。本開示の実施形態によるエラー訂正コードデコーダが、当業者によって様々な他の装置またはデバイスにおいて使用される場合もあることが了解されよう。図1を参照すると、エラー検出および訂正装置100は、データ入力(databit_in)102およびエラーチェック入力(checkbit_in)104を受け取るように構成されるシンドローム生成器108を含む。一実施形態では、シンドローム生成器108は、データ入力(databit_in)102およびエラーチェック入力(checkbit_in)104に応答して、第1のベクトル信号出力(S0)、第2のベクトル信号出力(S1)、および第3のベクトル信号出力(S3)を生成することが可能である。
一実施形態では、シンドローム生成器108はパリティチェック行列デコーダを備え、エラーチェック入力(checkbit_in)104はパリティチェックビット入力を備える。そのようなシンドローム生成器108は、多くの既知のエラー訂正コード(ECC)のうちの1つを使用することによって構成されてもよい。一実施形態では、パリティチェック行列デコーダは、XORツリーベースのパリティチェック行列デコーダを備えてもよい。たとえば、シンドローム生成器108は、ダブルエラー訂正トリプルエラー検出(DEC-TED)Bose-Chaudhuri-Hocquenghem(BCH)コードなどのECCを実装することによって構成される場合があるが、αはガロア体GF(2n)における原始元である。
Figure 0006884138
上記のパリティチェック行列によって生成されるシンドロームは、3つの部分に分割される場合がある。
S = v・HT = [v・l,v・H1 T,v・H3 T] = [S0,S1,S3]
代替実施形態では、エラー検出および訂正のために、他のタイプのシンドローム生成器が実装される場合もある。
図1に示す実施形態では、エラー検出および訂正装置100はまた、シンドローム生成器108から第1のベクトル信号出力(S0)、第2のベクトル信号出力(S1)、および第3のベクトル信号出力(S3)を受け取り、シンドローム生成器108からの3つのベクトル信号S0、S1、およびS3のうちの少なくとも2つに基づいてシングルエラー訂正出力(SEC_output)およびダブルエラー訂正出力(DEC_output)を生成するように構成されるコントローラ110を含む。
一実施形態では、コントローラ110は、シングルエラー訂正(SEC)エラー位置特定デコーダ118およびダブルエラー訂正(DEC)エラー位置特定デコーダ120にそれぞれ伝送される、シングルエラー訂正出力(SEC_output)およびダブルエラー訂正出力(DEC_output)を生成するように実装される。SECエラー位置特定デコーダ118およびDECエラー位置特定デコーダ120について以下でさらに詳細に説明する。一実施形態では、同時にアクティブに動作するSECエラー位置特定デコーダ118とDECエラー位置特定デコーダ120を有しないことによって、エラー検出および訂正装置100の遅延および動的な電力消費量を低減することが望ましい。たとえば、データ入力のエラーがシングルエラーである場合、DECエラー位置特定デコーダ120は、アクティブであるべきでない。同様に、エラーがダブルエラーである場合、SECエラー位置特定デコーダ118は、アクティブであるべきでない。
一実施形態では、上記の条件を満たすために、コントローラ110のシングルエラー訂正出力(SEC_output)およびダブルエラー訂正出力(DEC_output)が設定される。たとえば、データ入力がシングルエラーを有すると仮定されることを意味する、シンドローム生成器108からの第1のベクトル信号出力(S0)が1つである場合、コントローラ110のダブルエラー訂正出力(DEC_output)はゼロベクトルである。対照的に、データ入力がダブルエラーを有すると仮定されることを意味する、シンドローム生成器108からの第1のベクトル信号出力(S0)が0である場合、コントローラのシングルエラー訂正出力(SEC_output)はゼロベクトルである。
一実施形態では、コントローラ110の出力SEC_outputおよびDEC_outputは、シンドローム生成器108からの第1のベクトル信号出力(S0)、第2のベクトル信号出力(S1)、および第3のベクトル信号出力(S3)に基づいて以下の式によって生成される場合がある。
SEC_output=S0*[S1,S3]
DEC_output=(~S0)*[S1,S3]
ここで、"~"は論理補数または"NOT"を示す。トリプルエラーの場合、S0は、シングルエラーの場合と同じ1である。
図1に示す実施形態では、エラー検出および訂正装置100は、シンドローム生成器108から第1のベクトル信号出力(S0)、第2のベクトル信号出力(S1)、および第3のベクトル信号出力(S3)を受け取るために結合される入力と、シンドローム生成器108から受け取った3つのベクトル信号S0、S1、およびS3に基づいてダブルエラー検出出力(AL_DED)114を生成する出力とを有する、ダブルエラー検出器112をさらに含む。
一実施形態では、ダブルエラー検出器112からのダブルエラー検出出力(AL_DED)114は、シンドローム生成器108からの第2のベクトル信号出力(S1)および第3のベクトル信号出力(S3)に基づいて以下の式によって生成される場合がある。
AL_DED = S1 3+S3
さらなる実施形態では、図1に示すように、エラー検出および訂正装置100内にフラグ生成器116が設けられる。一実施形態では、ゼロエラーからトリプルエラーまでのエラーの数を決定するために、フラグ生成器116が設けられる。一実施形態では、フラグ生成器116は、ゼロエラー、シングルエラー、ダブルエラー、またはトリプルエラーの2ビットインジケータとしてエラー検出および訂正装置100から出力されるエラーフラグ(error_flag)122と呼ばれる2ビット変数を生成する。
一実施形態では、エラーフラグ(error_flag)122は、ダブルエラー検出器112からのダブルエラー検出出力(AL_DED)114およびシンドローム生成器108からの第1のベクトル信号出力(S0)に基づいて決定される場合がある。
Figure 0006884138
上記の表によれば、error_flagとS0との間の関係は、次のように表現することができる。
error_flagの最上位ビット(MSB) = AL_DED
error_flagの最下位ビット(LSB) = S0
上記で説明したように、SECエラー位置特定デコーダ118はシングルエラーを位置特定するために設けられ、DECエラー位置特定デコーダ120はダブルエラーを位置特定するために設けられる。一実施形態では、SECエラー位置特定デコーダ118は、コントローラ110からシングルエラー訂正出力(SEC_output)を受け取るように結合され、コントローラ110からのSEC_outputに基づいてシングルエラー位置特定デコーダ出力(e_sec)124を出力する。一実施形態では、DECエラー位置特定デコーダ120は、コントローラ110からダブルエラー訂正出力(DEC_output)を受け取るように結合され、コントローラ110からのDEC_outputに基づいてダブルエラー位置特定デコーダ出力(e_dec)126を出力する。
一実施形態では、マルチプレクサ出力130を生成するために、エラー検出および訂正装置100内にマルチプレクサ128が設けられる。図1に示す実施形態では、マルチプレクサ128は、シングルエラー位置特定デコーダ出力(e_sec)124に結合される第1の入力と、ダブルエラー位置特定デコーダ出力(e_dec)126に結合される第2の入力と、制御入力132に基づいてシングルエラー位置特定デコーダ出力(e_sec)またはダブルエラー位置特定デコーダ出力(e_dec)のいずれかを出力するためのマルチプレクサ出力130とを有する2:1マルチプレクサを備える。
図1に示す実施形態では、マルチプレクサ128用の制御入力132は、ダブルエラー検出器112からのダブルエラー検出出力(AL_DED)の論理補数を受け取る入力である。一実施形態では、(~AL_DED)である制御信号は、マルチプレクサ128の制御入力132において、次の関係に従ってマルチプレクサ128の出力130を決定する。
Figure 0006884138
本実施形態では、データ入力におけるダブルエラーまでのビットエラーが訂正される場合がある。本実施形態では、トリプルエラーは訂正可能でない場合があるが、フラグ生成器116によって生成されるエラーフラグ122は、トリプルエラーの存在を示す場合がある。たとえば、上記のTable 1(表1)に関して説明する実施形態では、11個の2ビットエラーフラグが、トリプルエラーの存在を示す。
上記で説明した実施形態では、エラーの数と、シンドローム生成器108からの第1のベクトル信号出力(S0)と、SECエラー位置特定デコーダ118からの出力(e_sec)124と、DECエラー位置特定デコーダ120からの出力(e_dec)126と、AL_DEDの論理補数(~AL_DED)と、マルチプレクサ128の出力(e)130との関係が、次の表にまとめられる。
Figure 0006884138
さらなる実施形態では、入力データ(databit_in)を受け取るように結合されるデータ入力と、マルチプレクサ128のエラーベクトル出力(e)130に結合されるエラーベクトル入力と、訂正されたデータを出力する出力106(databit_out)とを有する、エラー訂正器134が設けられる。
図2は、フリップフロップと、タイミングコントローラと、別個でないSECおよびDECエラー位置特定デコーダとをマルチプレクサとともに含む、エラー検出および訂正装置200の別の実施形態を示すブロック図である。図2では、エラー検出および訂正装置200は、データ入力(databit_in)202と、エラーチェック入力(checkbit_in)204と、制御入力206と、訂正されたデータ出力(databit_out)208と、シングルエラー検出出力(AL_SED)210と、トリプルエラー検出出力(AL_TED)212とを有する。図2に示す実施形態では、エラー検出および訂正装置200は、シンドローム生成器214を含む。一実施形態では、図2のシンドローム生成器214は、図1に示し上記で説明したように、シンドローム生成器108と同様である場合がある。たとえば、図2のシンドローム生成器214は、図1に示した実施形態に関して上記で説明したように、BCHコードを使用してXORツリーベースのパリティチェック行列デコーダなどのパリティチェック行列デコーダを備えてもよい。
図2に示す実施形態では、タイミングコントローラ216が設けられる。一実施形態では、タイミングコントローラ216は、図3を参照しながら以下でさらに詳細に説明する実施形態の遅延線を含む。図2を参照すると、タイミングコントローラ216は、制御入力206に結合され、制御出力218において制御入力206からの入来信号がタイミングコントローラ216を出る前に、所与の時間量だけ、その入来信号を遅延させる。一実施形態では、エラー検出および訂正装置200は、シンドローム生成器214の出力に結合されるデータ入力222と、タイミングコントローラ216の制御出力218に結合されるトグル入力224と、シンドローム生成器214から受け取ったシンドロームおよびタイミングコントローラ216の制御出力218に基づいて配信されたシンドローム出力226を出力する出力とを有するフリップフロップ220を含む。
一実施形態では、エラー位置特定デコーダ228が、エラー検出および訂正装置200内に設けられる。一実施形態では、エラー位置特定デコーダ228は、フリップフロップ220から配信されたシンドローム出力226を受け取るように結合される入力と、エラー位置特定デコーダ出力230と、シングルエラーデコーダ出力(SED)232と、ダブルエラーデコーダ出力(DED)234とを有する。図2に示す実施形態では、エラー訂正器236が、エラー検出および訂正装置200内に設けられる。一実施形態では、エラー訂正器236は、データ入力(databit_in)202に結合される第1の入力と、エラー位置特定デコーダ出力230に結合される第2の入力と、エラー検出および訂正装置200の訂正されたデータ出力(databit_out)208を生成する出力とを有する。
一実施形態では、エラー検出および訂正装置200はまた、シングルエラー検出出力(AL_SED)210と、トリプルエラー検出出力(AL_TED)212とを生成するエラー検出器238を含む。一実施形態では、エラー検出器238は、フリップフロップ220から配信されたシンドローム出力226を受け取るように結合される第1の入力と、シングルエラーデコーダ出力(SED)232を受け取るように結合される第2の入力と、エラー位置特定デコーダ228からのダブルエラーデコーダ出力(DED)234を受け取るように結合される第3の入力とを有する。
一実施形態では、エラー検出器238は、配信されたシンドローム出力226を受け取るように結合される入力と、シングルエラー検出出力(AL_SED)210を出力するように構成される出力とを有するORゲート240を含む。さらなる実施形態では、エラー検出器238はまた、ORゲート240の出力に結合される第1の入力と、シングルエラーデコーダ出力(SED)232の補数に結合される第2の入力と、ダブルエラーデコーダ出力(DED)234の補数に結合される第3の入力とを有するANDゲート242を含む。図2に示す実施形態では、ANDゲート242の出力は、トリプルエラー検出出力(AL_TED)212である。
図3は、図2のエラー検出および訂正装置の実施形態におけるフリップフロップ220のための制御信号を生成するための遅延線300を備えるタイミングコントローラ216の一実施形態を示すブロック図である。一実施形態では、制御入力206は、正の立上りエッジを有するクロック信号302を受け取り、クロック信号302の正の立上りエッジは、クロック信号302が遅延線300の出力218を出るとき、所与の時間量だけ遅延する。
一実施形態では、複数の論理ゲートまたはバッファが、クロック信号302の伝播を遅延させるために遅延線300内に設けられてもよい。図3に示す実施形態では、遅延線300は、ANDゲート304a、304b、304c、および304dなどの1つまたは複数のANDゲートと、NANDゲート306などの1つまたは複数のNANDゲートと、遅延線300の入力206から出力218までのクロック信号302の伝搬を遅延させるためのバッファ308a、308b、および308cなどの1つまたは複数のバッファとを含む。他のタイプの論理ゲート、バッファ、または遅延線は、本開示の範囲内で実装される場合もある。さらに、図3は、Dフリップフロップなどの正のエッジトリガのフリップフロップ220を示すが、他の実施形態では、他のタイプのフリップフロップが実装される場合がある。たとえば、正のエッジトリガの代わりに、負のエッジトリガなどの他のタイプのトリガが、実装される場合がある。
一実施形態では、図2に示すように、エラー位置特定デコーダ228における無効な遷移の確率を低減するために、図3の遅延線300およびフリップフロップ220が実装される。遅延線300によって提供される時間遅延の設定量があれば、クロック信号302は、シンドロームが確定された後に、フリップフロップ220に達し、シンドロームは、無効な遷移を避けるためにシンドロームが確定された後にのみ、配信されたシンドロームとしてフリップフロップ220によってエラー位置特定デコーダ228に配信される。一実施形態では、シンドローム生成器214によって生成されたシンドロームの最悪の遅延を模倣するために、遅延線300が設けられる。一実施形態では、データおよびエラーチェック(databit_in)および(checkbit_in)入力202および204から、シンドローム生成器214の出力までの回路のクリティカルパスを模倣することによって、遅延線300が作成される。このクリティカルパスの最悪の場合の時間遅延は、シンドロームを確定するのに必要な最大時間(TI-S)である。
一実施形態では、適切なフリップフロップ動作を確実にするために、遅延線300は、エラー検出および訂正装置200の総遅延がわずかに増加しても、遅延線300によって生成された総時間遅延がシンドロームを確定するのに必要な最大時間(TI-S)よりもわずかに大きくなるように設計される場合がある。たとえば、図3に示す実施形態では、シンドローム入力からシンドローム出力までのクリティカルパス上のシンドロームを確定するのに必要な最大時間(TI-S)を模倣するために、ANDゲート304a、304b、304c、および304d、ならびにNANDゲート306などのいくつかの論理ゲートが実装されてもよく、追加の時間遅延を生成するためにバッファ308a、308b、および308cなどのバッファが追加されてもよい。
図4は、フリップフロップを有するエラー検出および訂正装置と、タイミングコントローラと、別個のシングルエラー訂正(SEC)およびダブルエラー訂正(DEC)エラー位置特定デコーダと、マルチプレクサと、フラグ生成器とのまた別の実施形態を示すブロック図である。図4に示す実施形態では、エラー検出および訂正装置400は、データ入力(databit_in)402と、エラーチェック入力(checkbit_in)404と、訂正されたデータ出力(databit_out)406とを有する。本実施形態では、エラー検出および訂正装置400は、データ入力(databit_in)402およびエラーチェック入力(checkbit_in)404を受け取るように構成されるシンドローム生成器408を含む。
一実施形態では、シンドローム生成器408は、図1に示し上記で説明した実施形態におけるシンドローム生成器108と同様に、データ入力(databit_in)402およびエラーチェック入力(checkbit_in)404に応答して、第1のベクトル信号出力(S0)、第2のベクトル信号出力(S1)、および第3のベクトル信号出力(S3)を生成することが可能である。一実施形態では、シンドローム生成器408はパリティチェック行列デコーダを備え、エラーチェック入力(checkbit_in)404はパリティチェックビット入力を備える。一実施形態では、パリティチェック行列デコーダは、XORツリーベースのパリティチェック行列デコーダを備えてもよい。たとえば、シンドローム生成器408は、BCHコードなどの任意の既知のECCを実装することによって構成される場合がある。
図4に示す実施形態では、エラー検出および訂正装置400はまた、シンドローム生成器408から第1のベクトル信号出力(S0)、第2のベクトル信号出力(S1)、および第3のベクトル信号出力(S3)を受け取り、シンドローム生成器108からの3つのベクトル信号S0、S1、およびS3に基づいてシングルエラー訂正出力(SEC_output)およびダブルエラー訂正出力(DEC_output)を生成するように構成されるコントローラ410を含む。一実施形態では、SEC_outputおよびDEC_outputは、図1に関して上記で説明したものと同様に生成される場合がある。
図4に示す実施形態では、エラー検出および訂正装置400は、シンドローム生成器108から第1のベクトル信号出力(S0)、第2のベクトル信号出力(S1)、および第3のベクトル信号出力(S3)を受け取るために結合される入力と、シンドローム生成器408からの3つのベクトル信号S0、S1、およびS3のうちの少なくとも2つに基づいてダブルエラー検出出力(AL_DED)414を生成する出力とを有する、ダブルエラー検出器412をさらに含む。
一実施形態では、ダブルエラー検出器412からのダブルエラー検出出力(AL_DED)414は、シンドローム生成器108から受け取った第2のベクトル信号出力(S1)および第3のベクトル信号出力(S3)に基づいて図1に関して上記で説明したものと同じ式によって生成される場合がある。
AL_DED=S1 3+S3
一実施形態では、図1に関して上記で説明した実施形態と同様に図4に示す、エラー検出および訂正装置400内にフラグ生成器416が設けられる。図4を参照すると、フラグ生成器416は、ゼロエラー、シングルエラー、ダブルエラー、またはトリプルエラーの2ビットインジケータとしてエラー検出および訂正装置400から出力される2ビットエラーフラグ(error_flag)422を生成する。一実施形態では、図1に関して上記で説明したTable 1(表1)による、ゼロエラー、シングルエラー、ダブルエラー、またはトリプルエラーの存在を示すために、2ビットエラーフラグ(error_flag)422が生成される場合がある。
図4を参照すると、クロック信号を受信する制御入力426と、時間遅延クロック出力を生成する出力428とを有するタイミングコントローラ424が設けられる。一実施形態では、タイミングコントローラ424は、図3に示し上記で説明したように、遅延線300などの遅延線を備えてもよい。たとえば、そのような遅延線は、図3に示したように、ANDゲートまたはNANDゲートなどの1つもしくは複数の論理ゲート、または1つもしくは複数のバッファ、または論理ゲートとバッファの組合せを備えてもよい。図4を参照すると、タイミングコントローラ424の出力428から出力される時間遅延クロックが、2つのフリップフロップ430および432のためのトグル入力として提供される。
図4に示す実施形態では、コントローラ410からシングルエラー訂正出力(SEC_output)を受け取るためのデータ入力434と、タイミングコントローラ424から出力される時間遅延クロックを受け取るためのトグル入力436とを含む、第1のフリップフロップ430が提供される。一実施形態では、第1のフリップフロップ430は、正のエッジトリガを有するDフリップフロップを備える。同様に、コントローラ410からダブルエラー訂正出力(DEC_output)を受け取るためのデータ入力438と、タイミングコントローラ424から出力される時間遅延クロックを受け取るためのトグル入力440とを含む、第2のフリップフロップ432が提供される。さらなる実施形態では、第2のフリップフロップ432は、正のエッジトリガを有するDフリップフロップを備える場合もある。代替実施形態では、他のタイプのフリップフロップが実装されてもよく、フリップフロップのトリガは、クロック信号による正のエッジトリガである必要はない。
図4に示す実施形態では、第1のフリップフロップ430は、シングルエラー訂正(SEC)エラー位置特定デコーダ444に配信されたSEC_output442を出力するが、第2のフリップフロップ432は、ダブルエラー訂正(DEC)エラー位置特定デコーダ448に配信されたDEC_output446を出力する。SEC_outputおよびDEC_outputは、図1に関して上記で説明したものと同様にコントローラ410によって生成される場合がある。無効な遷移を避けるためにシンドロームが確定された後にのみ、SEC_outputおよびDEC_outputがそれぞれSECエラー位置特定デコーダ444およびDECエラー位置特定デコーダ448に配信されることを確実にするために、図4に示すように、本実施形態では、第1および第2のフリップフロップ430および432が設けられる。
一実施形態では、図1に関して上記で説明したものと同様に、図4のSECエラー位置特定デコーダ444およびDECエラー位置特定デコーダ448は、それぞれ、シングルエラー位置特定デコーダ出力(e_sec)450およびダブルエラー位置特定デコーダ出力(e_dec)452を生成する。図4を参照すると、マルチプレクサ454は、シングルエラー位置特定デコーダ出力(e_sec)450を受け取るように結合される第1の入力と、ダブルエラー位置特定デコーダ出力(e_dec)452を受け取るように結合される第2の入力と、制御入力456とを有する。一実施形態では、制御入力456は、図1に関して上記で説明したものと同様に、AL_DEDの論理補数を受け取るように結合される。一実施形態では、たとえば、Table 2(表2)およびTable 3(表3)に記載された関係に従って、図1に関して上記で説明したものと同様に、マルチプレクサ454の出力(e)458が選択される。
さらなる実施形態では、図4のエラー検出および訂正装置400内にエラー訂正器460が設けられる。一実施形態では、エラー訂正器は、入力データ(databit_in)を受け取るように結合されるデータ入力と、マルチプレクサ454のエラーベクトル出力(e)458に結合されるエラーベクトル入力と、訂正されたデータを出力する出力406(databit_out)とを有する。
図5は、エラー検出機能および訂正機能を実行するように構成される論理を有するエラー検出および訂正装置の一実施形態を示す簡略ブロック図である。図5に示す実施形態では、エラー検出および訂正装置500は、ブロック505においてシングルエラーを位置特定するように構成される論理と、ダブルエラーを位置特定するように構成される論理510と、訂正された出力データを生成するように構成される論理515とを含む。ブロック505、510、および515に示す、シングルエラーを位置特定するように構成される論理、ダブルエラーを位置特定するように構成される論理、および訂正された出力データを生成するように構成される論理の各々は、図1〜図4に関して上記で説明したエラー検出および訂正装置の様々な実施形態において1つまたは複数の要素を含む場合がある。
図6は、エラー検出および訂正装置を実装する場合があるメモリデバイスの一実施形態を示すブロック図である。図6に示す実施形態では、メモリ600は、メモリセル605およびエラー検出および訂正装置610を含む。エラー検出および訂正装置610は、メモリセル605と同じチップ上に統合されるか、または別個のチップ上に設けられる場合がある。図6に示すように、メモリセルからの生データは、矢印615に沿って、エラー検出および訂正のためのエラー検出および訂正装置610に伝送される場合があり、エラー検出および訂正装置610からの訂正されたデータは、矢印620に沿って、メモリセル605に再び伝送される場合がある。エラー検出および訂正装置610は、図1〜図4に関して上記で説明した様々な実施形態のうちのいずれかを含んでもよい。
当業者は、情報および信号が、様々な異なる技術および技法のうちのいずれかを使用して表現される場合があることを了解するであろう。たとえば、上の説明全体にわたって言及される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表現される場合がある。
さらに、本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことが、当業者には了解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、上記では、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、全般的にそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるかそれともソフトウェアとして実装されるかは、特定の適用例および全体的な装置に課される設計制約によって決まる。当業者は、説明した機能を具体的な用途ごとに様々な方法で実施してもよいが、そのような実施の判断は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で開示する実施形態に関して説明した方法、シーケンス、またはアルゴリズムは、ハードウェア内で直接、プロセッサによって実行されるソフトウェアモジュール内で、または2つの組合せで具現化される場合がある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態の記憶媒体に存在する場合がある。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態では、記憶媒体はプロセッサと一体である場合がある。
したがって、本開示の実施形態は、エラー検出および訂正のための方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本開示は図示の例に限定されず、本明細書で説明する機能を実行するためのいかなる手段も、本開示の実施形態に含まれる。
これまでの開示は例示的な実施形態を示しているが、添付の特許請求の範囲を逸脱することなく、本明細書において様々な変更および修正を行うことができることに留意されたい。本明細書で説明した実施形態による方法クレームの機能、ステップ、または動作は、別段に明記されていない限り、任意の特定の順序で実行される必要はない。さらに、要素は単数形で記載または請求されている場合があるが、単数形への限定が明示的に述べられていない限り、複数形が企図される。
100 エラー検出および訂正装置
102 データ入力
104 エラーチェック入力
106 訂正されたデータ出力
108 シンドローム生成器
110 コントローラ
112 ダブルエラー検出器
114 ダブルエラー検出出力
116 フラグ生成器
118 シングルエラー訂正(SEC)エラー位置特定デコーダ
120 ダブルエラー訂正(DEC)エラー位置特定デコーダ
122 エラーフラグ
124 シングルエラー位置特定デコーダ出力
126 ダブルエラー位置特定デコーダ出力
128 マルチプレクサ
130 マルチプレクサ出力
132 制御入力
134 エラー訂正器
200 エラー検出および訂正装置
202 データ入力
204 エラーチェック入力
206 制御入力
208 訂正されたデータ出力
210 シングルエラー検出出力
212 トリプルエラー検出出力
214 シンドローム生成器
216 タイミングコントローラ
218 制御出力
220 フリップフロップ
222 データ入力
224 トグル入力
226 シンドローム出力
228 エラー位置特定デコーダ
230 エラー位置特定デコーダ出力
232 シングルエラーデコーダ出力
234 ダブルエラーデコーダ出力
236 エラー訂正器
238 エラー検出器
240 ORゲート
242 ANDゲート
300 遅延線
302 クロック信号
304 ANDゲート
306 NANDゲート
308 バッファ
400 エラー検出および訂正装置
402 データ入力
404 エラーチェック入力
406 訂正されたデータ出力
408 シンドローム生成器
410 コントローラ
412 ダブルエラー検出器
414 ダブルエラー検出出力
416 フラグ生成器
422 2ビットエラーフラグ
424 タイミングコントローラ
426 制御入力
428 出力
430 第1のフリップフロップ
432 第2のフリップフロップ
434 データ入力
436 トグル入力
438 データ入力
440 トグル入力
442 SEC_output
444 SECエラー位置特定デコーダ
446 DEC_output
448 DECエラー位置特定デコーダ
450 シングルエラー位置特定デコーダ出力
452 ダブルエラー位置特定デコーダ出力
454 マルチプレクサ
456 制御入力
458 エラーベクトル出力
460 エラー訂正器
500 エラー検出および訂正装置
600 メモリ
605 メモリセル
610 エラー検出および訂正装置

Claims (15)

  1. 入力データを受け取り、かつ前記入力データに基づいて第1のベクトル信号出力および1つまたは複数の追加のベクトル信号出力を生成するように構成されるシンドローム生成器と、
    前記第1のベクトル信号出力および前記1つまたは複数の追加のベクトル信号出力を受け取り、かつ前記第1のベクトル信号出力および前記1つまたは複数の追加のベクトル信号出力に基づいてシングルエラー訂正出力およびダブルエラー訂正出力を生成するように構成されるコントローラと、
    前記入力データにおけるシングルエラーを位置特定するように構成されるシングルエラー位置特定デコーダであって、前記シングルエラー訂正出力を受け取り、かつシングルエラー位置特定デコーダ出力を生成するように構成される、シングルエラー位置特定デコーダと、
    前記入力データにおけるダブルエラーを位置特定するように構成されるダブルエラー位置特定デコーダであって、前記ダブルエラー訂正出力を受け取り、かつダブルエラー位置特定デコーダ出力を出力するように構成される、ダブルエラー位置特定デコーダと、
    訂正された出力データを生成するために前記シングルエラー位置特定デコーダおよび前記ダブルエラー位置特定デコーダに結合されるエラー訂正器と
    を備え、
    前記コントローラが、前記シングルエラー訂正出力および前記ダブルエラー訂正出力に基づいて特定のデータ入力上のエラー位置特定を実行するために前記シングルエラー位置特定デコーダおよび前記ダブルエラー位置特定デコーダのうちの1つだけを選択し、かつ前記選択されなかったエラー位置特定デコーダを非アクティブ化するように構成される、
    エラー検出および訂正装置。
  2. 前記シンドローム生成器がパリティチェック行列デコーダを備える、請求項1に記載の装置。
  3. 前記パリティチェック行列デコーダが、XORツリーベースのパリティチェック行列デコーダを備える、請求項2に記載の装置。
  4. 前記シンドローム生成器から前記第1のベクトル信号出力および前記1つまたは複数の追加のベクトル信号出力を受け取るように構成されるダブルエラー検出器をさらに備える、請求項1に記載の装置。
  5. 前記ダブルエラー検出器が、前記第1のベクトル信号出力および前記1つまたは複数の追加のベクトル信号出力のうちの2つまたはそれ以上に基づいてダブルエラー検出出力を生成するように構成される、請求項4に記載の装置。
  6. 前記ダブルエラー検出器から前記ダブルエラー検出出力をかつ前記シンドローム生成器から前記第1のベクトル信号出力を受け取り、かつ前記ダブルエラー検出出力および前記第1のベクトル信号出力に基づいてエラーフラグを生成するように構成されるフラグ生成器をさらに備える、請求項5に記載の装置。
  7. 前記シングルエラー位置特定デコーダ出力に結合される第1の入力と、
    前記ダブルエラー位置特定デコーダ出力に結合される第2の入力と
    を備える、マルチプレクサをさらに備える、請求項5に記載の装置。
  8. 前記マルチプレクサが、
    前記ダブルエラー検出出力を受け取るように構成される制御入力と、
    前記制御入力に基づいて、前記シングルエラー位置特定デコーダ出力または前記ダブルエラー位置特定デコーダ出力のいずれかを出力するように構成される出力と
    をさらに備える、請求項7に記載の装置。
  9. 前記エラー訂正器が、
    前記入力データを受け取るように構成される入力と、
    前記マルチプレクサの前記出力に結合されるエラー位置特定デコーダ入力と、
    前記入力データおよび前記エラー位置特定デコーダ入力に基づいて前記訂正された出力データを出力するように構成される出力と
    さらに備える、請求項8に記載の装置。
  10. 制御入力および制御出力を有するタイミングコントローラと、
    前記シングルエラー訂正出力を受け取るように結合される入力と、前記タイミングコントローラの前記制御出力に結合されるトグル入力と、第1の配信されたシンドローム出力を出力するように構成される出力とを備える第1のフリップフロップと、
    前記ダブルエラー訂正出力を受け取るように結合される入力と、前記タイミングコントローラの前記制御出力に結合されるトグル入力と、第2の配信されたシンドローム出力を出力するように構成される出力とを備える第2のフリップフロップと
    をさらに備える、請求項1に記載の装置。
  11. 前記タイミングコントローラが遅延ユニットを備える、請求項10に記載の装置。
  12. 前記遅延ユニットが1つまたは複数の論理ゲートを備える、請求項11に記載の装置。
  13. 前記第1のフリップフロップが第1の正のエッジトリガのフリップフロップを備え、前記第2のフリップフロップが第2の正のエッジトリガのフリップフロップを備える、請求項10に記載の装置。
  14. メモリセルと、
    前記メモリセルから入力データを受け取り、訂正された出力データを前記メモリセルに伝送するように結合されるエラー検出および訂正装置であって、
    入力データを受け取り、かつ前記入力データに基づいて第1のベクトル信号出力および1つまたは複数の追加のベクトル信号出力を生成するように構成されるシンドローム生成器と、
    前記第1のベクトル信号出力および前記1つまたは複数の追加のベクトル信号出力を受け取り、かつ前記第1のベクトル信号出力および前記1つまたは複数の追加のベクトル信号出力に基づいてシングルエラー訂正出力およびダブルエラー訂正出力を生成するように構成されるコントローラと、
    前記入力データにおけるシングルエラーを位置特定するように構成されるシングルエラー位置特定デコーダであって、前記シングルエラー訂正出力を受け取り、かつシングルエラー位置特定デコーダ出力を生成するように構成される、シングルエラー位置特定デコーダと、
    前記入力データにおけるダブルエラーを位置特定するように構成されるダブルエラー位置特定デコーダであって、前記ダブルエラー訂正出力を受け取り、かつダブルエラー位置特定デコーダ出力を出力するように構成される、ダブルエラー位置特定デコーダと、
    訂正された出力データを生成するために前記シングルエラー位置特定デコーダおよび前記ダブルエラー位置特定デコーダに結合されるエラー訂正器と
    を備え、
    前記コントローラが、前記シングルエラー訂正出力および前記ダブルエラー訂正出力に基づいて特定のデータ入力上のエラー位置特定を実行するために前記シングルエラー位置特定デコーダおよび前記ダブルエラー位置特定デコーダのうちの1つだけを選択し、かつ前記選択されなかったエラー位置特定デコーダを非アクティブ化するように構成される、
    エラー検出および訂正装置と
    を備える、メモリ。
  15. シンドロームを生成するステップであって、入力データを受け取り、かつ前記入力データに基づいて第1のベクトル信号出力および1つまたは複数の追加のベクトル信号出力を生成するステップを含む、ステップと、
    特定のデータ入力がシングルエラーを有すると予測されるか、またはダブルエラーを有すると予測されるかを決定するステップであって、前記決定するステップがシングルエラー訂正出力およびダブルエラー訂正出力を生成するステップを含み、前記生成するステップが前記第1のベクトル信号出力および前記1つまたは複数の追加のベクトル信号出力を受け取り、かつ前記第1のベクトル信号出力および前記1つまたは複数の追加のベクトル信号出力に基づいて前記シングルエラー訂正出力および前記ダブルエラー訂正出力を生成するステップを含む、ステップと、
    前記決定するステップに基づいて前記特定のデータ入力上のエラー位置特定を実行するために、前記入力データにおけるシングルエラーを位置特定するように構成されるシングルエラー位置特定デコーダと、前記入力データにおけるダブルエラーを位置特定するように構成されるダブルエラー位置特定デコーダとのうちの1つだけを選択するステップと、
    前記選択されなかったエラー位置特定デコーダを非アクティブ化するステップと
    を備える、エラー復号の方法。
JP2018511372A 2015-09-14 2016-08-25 低電力ダブルエラー訂正−トリプルエラー検出(dec−ted)デコーダ Active JP6884138B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/852,988 2015-09-14
US14/852,988 US9800271B2 (en) 2015-09-14 2015-09-14 Error correction and decoding
PCT/US2016/048604 WO2017048474A1 (en) 2015-09-14 2016-08-25 Low-power double error correcting-triple error detecting (deb-ted) decoder

Publications (3)

Publication Number Publication Date
JP2018533254A JP2018533254A (ja) 2018-11-08
JP2018533254A5 JP2018533254A5 (ja) 2019-09-19
JP6884138B2 true JP6884138B2 (ja) 2021-06-09

Family

ID=56896776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018511372A Active JP6884138B2 (ja) 2015-09-14 2016-08-25 低電力ダブルエラー訂正−トリプルエラー検出(dec−ted)デコーダ

Country Status (7)

Country Link
US (2) US9800271B2 (ja)
EP (1) EP3350930B1 (ja)
JP (1) JP6884138B2 (ja)
KR (1) KR102599033B1 (ja)
CN (1) CN108055876B (ja)
TW (2) TWI625943B (ja)
WO (1) WO2017048474A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800271B2 (en) 2015-09-14 2017-10-24 Qualcomm Incorporated Error correction and decoding
US10268539B2 (en) * 2015-12-28 2019-04-23 Intel Corporation Apparatus and method for multi-bit error detection and correction
KR102453437B1 (ko) 2018-01-25 2022-10-12 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR102583797B1 (ko) * 2018-04-09 2023-10-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102105428B1 (ko) * 2018-08-29 2020-04-28 남서울대학교 산학협력단 Sec부호에서 멀티오류정정을 위한 복호기 및 그 복호 방법
KR102045437B1 (ko) * 2018-09-07 2019-12-02 고려대학교 산학협력단 저복잡도 신드롬 기반 복호 장치 및 그 방법
RU2704499C1 (ru) * 2018-11-22 2019-10-29 Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный университет аэрокосмического приборостроения" Декодер кода Боуза-Чоудхури-Хоквингема с каноническим декодером Хэмминга
US11016843B2 (en) * 2018-12-06 2021-05-25 Micron Technology, Inc. Direct-input redundancy scheme with adaptive syndrome decoder
KR20200074467A (ko) * 2018-12-17 2020-06-25 삼성전자주식회사 에러 정정 코드 회로, 반도체 메모리 장치 및 메모리 시스템
CN111835320A (zh) * 2019-04-22 2020-10-27 珠海格力电器股份有限公司 一种信号的边沿检测装置
KR20210014034A (ko) * 2019-07-29 2021-02-08 에스케이하이닉스 주식회사 낮은 레이턴시를 갖는 에러정정코드 디코더
US11095313B2 (en) 2019-10-21 2021-08-17 International Business Machines Corporation Employing single error correction and triple error detection to optimize bandwidth and resilience under multiple bit failures
KR20210092391A (ko) * 2020-01-16 2021-07-26 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치
JP2023005919A (ja) * 2021-06-29 2023-01-18 ルネサスエレクトロニクス株式会社 半導体装置および誤り検出方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623155A (en) * 1969-12-24 1971-11-23 Ibm Optimum apparatus and method for check bit generation and error detection, location and correction
US3650107A (en) * 1970-08-12 1972-03-21 Sperry Rand Corp Power transmission
US4030067A (en) 1975-12-29 1977-06-14 Honeywell Information Systems, Inc. Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes
US4397022A (en) * 1981-01-30 1983-08-02 Weng Ming I Weighted erasure codec for the (24, 12) extended Golay code
US4556977A (en) 1983-09-15 1985-12-03 International Business Machines Corporation Decoding of BCH double error correction - triple error detection (DEC-TED) codes
US4979174A (en) * 1988-12-29 1990-12-18 At&T Bell Laboratories Error correction and detection apparatus and method
US5323402A (en) * 1991-02-14 1994-06-21 The Mitre Corporation Programmable systolic BCH decoder
KR950008789B1 (ko) * 1992-07-30 1995-08-08 삼성전자주식회사 멀티-이씨씨(ecc)회로를 내장하는 반도체 메모리 장치
DE69317766T2 (de) 1993-06-10 1998-07-30 Bull Hn Information Syst Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)
JP2691973B2 (ja) * 1994-10-20 1997-12-17 博一 岡野 単一誤り訂正および多重誤り検出bch符号の復号装置
US5666371A (en) * 1995-02-24 1997-09-09 Unisys Corporation Method and apparatus for detecting errors in a system that employs multi-bit wide memory elements
JP3258897B2 (ja) * 1996-03-18 2002-02-18 富士通株式会社 軟判定誤り訂正復号装置
TW432362B (en) * 1997-04-02 2001-05-01 Matsushita Electric Ind Co Ltd High speed data input-output device which fetches data into internal memory and performs operations on the data before outputting the data
US6662336B1 (en) * 1999-07-06 2003-12-09 Cirrus Logic, Inc. Error correction method and apparatus
US6662333B1 (en) * 2000-02-04 2003-12-09 Hewlett-Packard Development Company, L.P. Shared error correction for memory design
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US7634709B2 (en) 2001-10-05 2009-12-15 Unisys Corporation Familial correction with non-familial double bit error detection
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
GB2391769B (en) * 2002-07-31 2005-07-06 Hewlett Packard Co Reed-Solomon decoder and decoding method for errors and erasures decoding
TWI234937B (en) * 2003-05-22 2005-06-21 Edimax Technology Co Ltd Encoding technology to detect and correct error
JP3892832B2 (ja) * 2003-08-11 2007-03-14 株式会社東芝 半導体記憶装置
US7243293B2 (en) * 2003-12-23 2007-07-10 International Business Machines Corporation (18, 9) Error correction code for double error correction and triple error detection
DE602004026707D1 (de) 2004-06-30 2010-06-02 St Microelectronics Srl Verfahren und Vorrichtung für die Fehlerkorrektur in elektronischen Speichern
US7502986B2 (en) * 2005-02-09 2009-03-10 International Business Machines Corporation Method and apparatus for collecting failure information on error correction code (ECC) protected data
KR100732628B1 (ko) * 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7793195B1 (en) * 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
JP5162763B2 (ja) * 2007-08-07 2013-03-13 株式会社メガチップス メモリアクセスシステム
KR101433620B1 (ko) * 2007-08-17 2014-08-25 삼성전자주식회사 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법
CN101493804B (zh) * 2008-01-24 2011-07-20 国际商业机器公司 数据总线***及其编解码器和编解码方法
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
US8261165B2 (en) 2008-11-14 2012-09-04 Silicon Laboratories Inc. Multi-syndrome error correction circuit
TWI399042B (zh) * 2009-06-06 2013-06-11 Univ Ishou To detect the wrong position of the detection device
US8381083B2 (en) * 2009-10-22 2013-02-19 Arm Limited Error control coding for single error correction and double error detection
WO2011109713A2 (en) 2010-03-05 2011-09-09 Board Of Regents Of The University Of Texas System Error detecting/correcting code enhanced self-checked/corrected/timed nanoelectronic circuits
US8984367B2 (en) * 2011-02-25 2015-03-17 Altera Corporation Error detection and correction circuitry
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
GB201114831D0 (en) * 2011-08-26 2011-10-12 Univ Oxford Brookes Circuit with error correction
US8762821B2 (en) * 2012-03-30 2014-06-24 Intel Corporation Method of correcting adjacent errors by using BCH-based error correction coding
US8694862B2 (en) * 2012-04-20 2014-04-08 Arm Limited Data processing apparatus using implicit data storage data storage and method of implicit data storage
US8745472B2 (en) 2012-09-01 2014-06-03 Texas Instruments Incorporated Memory with segmented error correction codes
US8984368B2 (en) * 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
US9246516B2 (en) * 2012-12-20 2016-01-26 Intel Corporation Techniques for error correction of encoded data
US9054742B2 (en) * 2013-03-14 2015-06-09 Intel Corporation Error and erasure decoding apparatus and method
US9417957B2 (en) * 2013-10-04 2016-08-16 Infineon Technologies Ag Method of detecting bit errors, an electronic circuit for detecting bit errors, and a data storage device
US9800271B2 (en) 2015-09-14 2017-10-24 Qualcomm Incorporated Error correction and decoding

Also Published As

Publication number Publication date
EP3350930B1 (en) 2023-07-26
KR20180053700A (ko) 2018-05-23
US20170077963A1 (en) 2017-03-16
KR102599033B1 (ko) 2023-11-03
US9800271B2 (en) 2017-10-24
EP3350930A1 (en) 2018-07-25
US10263645B2 (en) 2019-04-16
JP2018533254A (ja) 2018-11-08
TW201714411A (zh) 2017-04-16
CN108055876B (zh) 2022-11-18
US20180019767A1 (en) 2018-01-18
TWI625943B (zh) 2018-06-01
TWI662796B (zh) 2019-06-11
TW201818666A (zh) 2018-05-16
CN108055876A (zh) 2018-05-18
WO2017048474A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
JP6884138B2 (ja) 低電力ダブルエラー訂正−トリプルエラー検出(dec−ted)デコーダ
US11349496B2 (en) Memory controller and method of data bus inversion using an error detection correction code
US10230402B2 (en) Data processing apparatus
KR102231294B1 (ko) 복수의 레벨의 오류 정정을 제공하는 정보 처리 장치 및 시스템, 및 그것의 동작 방법
US20160378594A1 (en) Method and apparatus to decode low density parity codes
CN110322922B (zh) 带内动态随机存取存储器纠错编码的设备和***
US9239755B2 (en) Semiconductor device and semiconductor system including the same
US9928135B2 (en) Non-local error detection in processor systems
US9275758B2 (en) Error detection circuit and semiconductor integrated circuit using the same
Farheen et al. Error Detection and Correction Using RP SEC-DED
JP3743915B2 (ja) スポッティバイト誤り訂正・検出方法及び装置
US9032270B2 (en) Device and method for storing encoded and/or decoded codes by re-using encoder
BR112018004992B1 (pt) Aparelho e método de detecção e correção de erros para um código bose-chaudhuri-hocquenghem, bch, de correção de erros duplos e detecção de erros triplos, dec-ted, e, memória
Kwon et al. EPA ECC: Error-Pattern-Aligned ECC for HBM2E
TW202109545A (zh) 記憶體裝置及其資料存取方法
JP2010140132A (ja) メモリシステム及びメモリコントローラ
WO2017030680A1 (en) N-bit compare logic with single-ended inputs
JPH02190938A (ja) パリティチェック装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190805

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200923

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210511

R150 Certificate of patent or registration of utility model

Ref document number: 6884138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150