JP2014525705A - デジタルエラー訂正 - Google Patents

デジタルエラー訂正 Download PDF

Info

Publication number
JP2014525705A
JP2014525705A JP2014526546A JP2014526546A JP2014525705A JP 2014525705 A JP2014525705 A JP 2014525705A JP 2014526546 A JP2014526546 A JP 2014526546A JP 2014526546 A JP2014526546 A JP 2014526546A JP 2014525705 A JP2014525705 A JP 2014525705A
Authority
JP
Japan
Prior art keywords
output
error
correction circuit
correction
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014526546A
Other languages
English (en)
Other versions
JP2014525705A5 (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 JP2014525705A publication Critical patent/JP2014525705A/ja
Publication of JP2014525705A5 publication Critical patent/JP2014525705A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

エラー訂正回路は、クロック信号を受信可能に構成されたエラー訂正回路であって、第1の入力および第2の入力から第1の出力を生成するように構成された構成要素と、第1の出力と、第1の入力と、第2の入力とに基づいて、第1の出力にエラーが検出されたか否かを示すエラーフラグを生成するように構成されたエラー検出器と、第1の出力と、第1の入力と、第2の入力とに基づいて、タイミングとなる事象から始まる第1の期間後に訂正出力を生成するのに適した訂正生成器と、タイミングとなる事象から始まる第2の期間後にエラー訂正回路の出力を生成するように構成された出力生成器とを有し、エラーフラッグが、第1の出力においてエラーが検出されたことを示しているときに、第2の期間は第1の期間より長くなり、それ以外は、第2の期間は第1の期間と同じか、または、短くなる。エラーフラッグが第1の出力においてエラーが検出されたことを示しているときに、エラー訂正回路の出力は、第1の出力と訂正出力との組み合わせを有することにより第1の出力で検出されたエラーが訂正され、それ以外は、エラー訂正回路の出力が第1の出力に一致する。

Description

本発明はエラー訂正に関する。本発明は、エラーを起こしても全体に悪影響を及ぼさない回路、例えば、算術演算を行う回路やほかの回路の設計へ応用性がある。本発明のいくつかの側面は、通信やメモリの設計におけるエラー訂正などの他の領域への応用性がある。
現代のデジタル回路は、ますます、大きくかつ複雑になっており、従って、様々な理由からエラーの影響を受けやすくなっている。例えば、回路のスケールが減少すると、データを表現するために使用される電圧が低くなり、一般にエラーの機会が増大する。例えば、回路が用いられる環境においてエネルギー粒子が回路のビットフリッピングを引き起こした結果、または、単純に製造時のエラーの結果によってエラーが起こりうる。エラーを引き起こすためにエネルギー粒子が意図的に照射されると、例えば、暗号文において、エラーの原因が増大しうる。従って、デジタル回路においてエラーの検出訂正はますます重要になっている。
例えば、ガロア体GF(2)における算術のような有限体算術は、暗号文を含む多くに利用されている。例えば、暗号文において、耐障害性のある回路が切望されている。これは、回路が暗号文の操作を行っている間に、当該回路に障害を引き起こすことで秘密情報を獲得することが可能になるからである。暗号文において耐障害性のある回路に対して、並列エラー検出(concurrent error detection)と訂正機能を有した有限体乗算回路が提案されている。しかしながら、これらは、非常に大きいか、または、単一のエラー訂正のみを行うかのいずれか一方である傾向がある。
1つの側面において、本発明は、第1の入力と、第2の入力とから第1の出力を生成するように構成された構成要素と、前記第1の出力と前記第1の入力と前記第2の入力とに基づいて、前記第1の出力のエラーを訂正するために前記第1の出力に結合することが可能な訂正出力を生成するように構成された訂正生成器と、前記訂正出力と前記第1の出力とを結合し、第1の出力に含まれるエラーが訂正された第2の出力を生成するように構成された結合器とを有するエラー訂正回路とを提供している。前記訂正生成器は、好ましくは、BCH符号を用いて訂正出力を生成するように構成されている。BCHによる符号と復号とを使用することは、出力を生成する回路の要素における複数のエラーを訂正するたの非常に効果的である。
前記回路は、第1、2の入力といった、少なくとも1つの入力を受信し、構成要素が第1の出力を生成するのと平行して訂正出力をこの入力から生成することが可能であり、前記少なくとも1つの入力が、受信されたときにエラー訂正データを有していないにも関わらず、第1のエラーによって発生したエラーを訂正することが可能である。いくつかの場合には、前記回路は訂正データをオンザフライで生成し、またいくつかの例では、回路は、前記少なくとも1つの入力を構成要素から受信したのと同じクロック周期において第1の結果を訂正することができる。
また、前記回路は、チェックビット生成器をさらに有し、前記チェックビット生成器は、前記第1の入力と前記第2の入力とに基づいて、少なくとも1つのチェックビットを生成するように構成され、前記訂正生成器は、前記第1の出力と、前記少なくとも1つのチェックビットとに基づいて、前記訂正出力とを生成するように構成されている。
また、前記チェックビット生成器は、前記第1の出力を個別に生成することなく、前記第1の入力と前記第2の入力とから直接的に前記少なくとも1つのチェックビットを生成するように構成されている。
また、前記エラー検出器は、前記第1の出力と前記少なくとも1つのチェックビットとに基づいて前記エラーフラグを生成するように構成され、前記エラーフラグは、前記エラー検出器が、前記エラー検出器が検出可能な複数の異なったエラーのうちから任意の1つのエラーを検出したかどうかを示し、前記複数の異なったエラーは、前記第1の出力に含まれるエラーと、前記少なくとも1つのチェックビットに含まれるエラーとを有する。
また、前記訂正生成器は、前記第1の出力と前記少なくとも1つのチェックビットとに基づいて、前記訂正出力を生成するのに適しており、前記訂正出力は、複数の異なるエラーのうち任意の1つのエラーを訂正するように適しており、前記複数の異なったエラーは、前記第1の出力に含まれるエラーと、前記少なくとも1つのチェックビットに含まれるエラーとを有する。
また、前記訂正生成器は、エラー位置決め多項式を生成し、前記エラー位置決め多項式の根を求めることにより前記訂正出力を生成し、前記訂正生成器は前記第1の出力に対応した根のみを求める。これにより、訂正生成器のサイズを著しく最小化することができる。
また、前記出力を生成するように構成された前記構成要素は、前記第1の入力と前記第2の入力とに算術演算を施すことによって前記第1の出力を生成するように構成されている。
また、前記算術演算は、ガロア体GF(2k)における乗算といった有限体の算術演算である。
別の側面において、本発明が提供するエラー訂正回路は、クロック信号を受信可能に構成されたエラー訂正回路であって、第1の入力および第2の入力から第1の出力を生成するように構成された構成要素と、前記第1の出力と、前記第1の入力と、前記第2の入力とに基づいて、第1の出力にエラーが検出されたか否かを示すエラーフラグを生成するように構成されたエラー検出器と、前記第1の出力と、前記第1の入力と、前記第2の入力とに基づいて、クロック信号のタイミングとなる事象から始まる第1の期間後に訂正出力を生成するのに適した訂正生成器と、前記クロック信号のタイミングとなる事象から始まる第2の期間後にエラー訂正回路の出力を生成するように構成された出力生成器とを有し、前記エラーフラッグが、前記第1の出力においてエラーが検出されたことを示しているときに、前記第2の期間は前記第1の期間より長くなり、それ以外は、前記第2の期間は前記第1の期間と同じか、または、短くなる。前記エラーフラッグが前記第1の出力においてエラーが検出されたことを示しているときに、エラー訂正回路の前記出力は、前記第1の出力と前記訂正出力との組み合わせを有することにより前記第1の出力で検出されたエラーが訂正され、それ以外は、エラー訂正回路の前記出力が前記第1の出力に一致する。
本発明の上記の側面による回路は、エラー耐性のある回路設計のみならず、通信やメモリ、その他に適応される。これらは、暗号文や、通信、メモリシステムなどにおいて、データが処理される割合を増加するために用いられることができる。
また、前記出力生成器は、出力を有する出力レジスタを有し、前記出力レジスタの前記出力は、前記エラー訂正回路の前記出力であり、前記エラーフラグが前記第1の出力にエラーがあることを示しているときに、前記出力生成器は、前記出力レジスタが前記出力を更新するのを遅らせるように構成されることで、前記第2の期間を前記第1の期間より長くさせる。
また、前記出力生成器は、前記クロック信号と、前記エラーフラグとに基づいてゲートクロックを生成するように構成されている出力可能化要素を有し、前記エラーフラグが前記第1の出力にエラーが検出されたことを示しているときに、前記出力レジスタは自身に入力されたクロックにおいて、前記ゲートクロックを受信することで前記出力レジスタがその出力の更新を禁止させる。
例えば、受信したクロック信号は、第2の期間より短い一定の期間を有していても良い。第1の出力にエラーが検出されるまで、ゲートクロックは、受信したクロック信号と略同じ周期であり、この時点において、訂正生成器が適切な訂正出力を生成するために、ゲートクロックの少なくとも1回の周期が延長される。
また、前記回路は、チェックビット生成器をさらに有し、前記チェックビット生成器は、前記第1の入力と前記第2の入力とに基づいて、少なくとも1つのチェックビットを生成するように構成され、前記エラー検出器と、前記訂正生成器とは、それぞれ、前記第1の出力と、前記少なくとも1つのチェックビットとに基づいて、前記エラーフラグと、前記訂正出力とを生成するように構成されている。
また、前記エラー検出器は、前記第1の出力と前記少なくとも1つのチェックビットとに基づいて前記エラーフラグを生成するように構成され、前記エラーフラグは、前記エラー検出器が、前記エラー検出器が検出可能な複数の異なったエラーのうちから任意の1つのエラーを検出したかどうかを示し、前記複数の異なったエラーは、前記第1の出力に含まれるエラーと、前記少なくとも1つのチェックビットに含まれるエラーとを有する。
従来の技術と比較して、チェックビット生成器のエラーがよりよく検出される。
前記訂正生成器は、前記第1の出力と前記少なくとも1つのチェックビットとに基づいて、前記訂正出力を生成するのに適しており、前記訂正出力は、複数の異なるエラーのうち任意の1つのエラーを訂正するのに適しており、前記複数の異なったエラーは、前記第1の出力に含まれるエラーと、前記少なくとも1つのチェックビットに含まれるエラーとを有する。
従来の技術と比較して、チェックビット生成器のエラーがよりよく検出される。
また、前記チェックビット生成器は、前記第1の出力を個別に生成することなく、前記第1の入力と前記第2の入力とから、直接的に前記少なくとも1つのチェックビットを生成するように構成されている。
また、前記訂正生成器は、エラー位置決め多項式を生成し、前記エラー位置決め多項式の根を求めることにより前記訂正出力を生成し、前記訂正生成器は前記第1の出力に対応した根のみを求める。
また、前記出力を生成するように構成された前記構成要素は、前記第1の入力と前記第2の入力とに算術演算を施すことによって前記第1の出力を生成するように構成されている。
また、前記算術演算は、ガロア体GF(2k)における乗算といった有限体の算術演算である。
本発明の前記第1、2の側面において、前記出力は、複数のビットを有し、前記訂正生成器は、前記出力ビットを第1のグループの組に割当て、前記第1のグループの組の各グループに第1のエラー検出ステップを実行し、前記出力ビットを第2のグループの組に割り当て、前記第2のグループの組の各グループに第2のエラー検出ステップを実行し、エラーの位置を特定するエラー位置ステップを実行するために前記第1のエラー検出ステップと前記第2のエラー検出ステップとの結果を使用するように構成される。
さらなる側面において、本発明は、複数の出力ビットを有するシステム出力を受信し、前記複数の出力ビットを第1のグループの組に割当て、前記第1のグループの組の各グループに第1のエラー検出ステップを実行し、前記複数の出力ビットを第2のグループの組に割り当て、前記第2のグループの組の各グループに第2のエラー検出ステップを実行し、エラーの位置を特定するエラー位置ステップを実行するために前記第1のエラー検出ステップと前記第2のエラー検出ステップとの結果を使用し、前記受信した出力と、前記エラー位置ステップの前記結果とから、訂正された出力を生成するように構成されることを特徴とするエラー訂正回路を提供している。
本発明のかかる側面によるいくつかの回路において、エラー訂正が効果的な方法で実行可能であり、比較的多い数のエラーを訂正することができるので、比較的少ないスペースのオーバーヘッドを有する回路でエラー訂正を実行することができる。
また、前記第1のグループの組と前記第2のグループの組とは、前記出力ビットの各ビットに対して、前記各ビットが要素となっている第1のグループの組のグループを特定すること、および、前記各ビットが要素となっている第2のグループの組のグループを特定すること、によって出力ビットを一意的に特定するように構成されている。
例えば、出力ビットが、列と行とからなる長方形のテーブルに配列されるときには、第1のグループの組は行を有し、第2のグループの組は列を有してよく、また、その逆でも良い。しかし、当然のことながら、出力のビットは、何れかの順番でテーブル内に配置される。
前記回路は各ステップを実行するサブ回路を有するように構成されている。例えば、前記回路は、割当サブ回路、第1のエラー検出サブ回路、第2のエラー検出サブ回路、エラー位置サブ回路、訂正サブ回路の少なくとも1つを含んでいても良い。
エラー検出ステップ、または、エラー検出回路は、関連するグループのエラーの数を決定するように構成されている。例えば、エラー検出ステップ、または、エラー検出回路は、各グループに対して、パリティ符号のようなエラー検出符号を生成するように構成されている。
第1の組におけるグループは全て同じサイズであっても良く、または、異なったサイズであっても良い。第2の組におけるグループは全て同じサイズであっても良く、または、異なったサイズであっても良い。第1の組におけるグループのサイズは、第2の組におけるグループと同じサイズか、または、異なるサイズであっても良い。
前記システムは、乗算器のような機能的な回路であってもよい。この場合には、出力は少なくとも1つの入力に実行された機能の結果となる。別の場合には、システムは、通信が伝達されるチャネルであっても良い。この場合には、出力は、前記チャネルから受信された通信であっても良い。別の場合には、システムはメモリ回路であっても良い。この場合には、出力はメモリ回路から読み出されたデータであっても良い。
前記回路はさらに、以下に説明する図面とともに、ほんの一例として示す本発明の実施の形態の少なくとも1つにおける少なくとも1つの機能の任意の組合わせを有していても良い。
第1の実施の形態における、有限体乗算を行い、並列エラー検出を行う能力を有する回路の概略ブロック図。 訂正生成ブロックの構成要素を示す概略ブロック図。 第2の実施の形態における、有限体乗算を行い、並列エラー検出を行う能力を有する回路の概略ブロック図。 図3のエラー検出サブ回路の構成要件を示す概略ブロック図。 図3の回路における、異なる構成要件を経ることによる各伝搬遅延を表すいくつかの時間期間を示す時間記録。 図3の回路におけるいくつかの信号を示すタイミング図。 本発明の第3の実施の形態におけるエラー訂正回路の概略ブロック図。 図7の回路で生成されたチェックビットを示す表。 図7の回路で訂正されるエラーの組合わせのいくつかの例を示す表。 図7の実施の形態の変形例における、訂正可能なエラーの組合わせのいくつかの例を示す表。 さらなる実施の形態におけるにおける、訂正可能なエラーの組合わせのいくつかの例を示す表。 180nmおよび190nmの技術を用いた異なるサイズの乗算回路の面積を示すグラフ。 ビットのテーブルにおける各列の乗算エラーを訂正するための、ハミングコードを用いた180nmおよび90nmの技術を用いた異なるサイズの乗算器のエラー検出および訂正回路の面積を示すグラフ。 BCH符号を用い、かつ、180nmおよび90nmの技術を用いた異なるサイズの乗算器のためのエラー検出および訂正回路の面積を示すグラフ 図13のエラー検出および訂正を有する乗算回路の消費電力を示した図。 図14のエラー検出および訂正を有する乗算回路の消費電力を示した図。
本発明の第1の実施の形態において、図1を参照すると、回路100は、パラレル入力105a、105bおよびパラレル出力105cと共に、有限体乗算サブ回路105を有している。有限体乗算サブ回路105は積Cを出力105cにおいて生成するように構成されている。積Cは、ガロア体GF(2k)上において、2つのパラレル入力105a、105bで受け取った2つの演算対象A、Bを掛け合わせたことの結果である。ここで、2つの演算対象はガロア体GF(2k)の要素である。2つのパラレル入力105a、105b、及び、パラレル出力105cは、kビットの幅を持つ、即ち、kビットからなる。
別の実施の形態において、有限体乗算サブ回路105は、逆数演算(multiplicative inversion)、または、指数(例えば、二乗)演算のようなほかの有限体算術を実行する回路に置き換えてもよい。いくつかの実施の形態において、有限乗算サブ回路105は、例えば、2の補数の2進演算といった有限体算術以外の算術を行う回路に置き換えても良い。
第1の実施の形態において、回路100は、kビットのパラレル入力110a、110bおよびn−kビットのパラレル出力110cと共にチェックビット生成器110を備える。n−kビットのパラレル出力110cはいくつかの実施の形態においてシングルビットの出力である。
チェックビット生成器110は、乗算サブ回路105と同様に、2つの演算対象A、Bを受信し、パラレル出力110cにおいてパリティワード(parity word)Pを生成する。いくつかの実施の形態において、パリティワードPはパリティビットに置き換えても良い。
チェックビット生成器110は、パラレル出力110cにおいてパリティワードPを生成する論理回路を有する。パリティワードPは、2つのパラレル入力110a、110bで受信した2つの演算対象A、Bに対して実行される有限体乗算とBCH符号化の組合わせによって生成される。チェックビット生成器110の論理回路は、まず乗算結果を生成し、その乗算結果からパリティワードPを生成するよりむしろ、演算対象A、Bから直接パリティワードPが生成されるように構成されている。この構成は発明者がより効果的(例えば、遅延が少なく、かつ/または、論理ゲートが少ない)であることを見出している。チェックビット生成器110は、積Cに対応する乗算結果を出力しない。
この実施の形態において、チェックビット生成器110の論理は、ガロア体GF(2k)において積を定義する従来の式を(有限体乗算サブ回路105で行われる乗算と同じ種類の乗算である)、2進(n,k,t)BCH符号のパリティビットを定義する従来の式に代入することにより導かれる。ここで、kは、例えば、2つの演算対象A、Bや積Cのそれぞれに対応する「メッセージ」のビット数である。tは、回路100が常に訂正することのできるエラー(それがどこで起ころうとも)の数(より多い数のエラーが訂正されうるが、しかしすべての場合においてではない)。n-kは、パリティワードPのビット数である。
回路100は、2つの入力115a、115b、および、出力115cと共に訂正生成器115を有する。2つの出力115a、115bは、それぞれ、乗算サブ回路105の出力105cと、チェックビット生成器110の出力110cと、幅を同じくして接続されている。出力115cはkビットのパラレル出力である。
訂正生成器115は、積CとパリティワードPとを2つの入力115a、115bで受信し、訂正値Eを出力115Cで生成するように構成されている。本実施の形態において、訂正生成器115は、後ほど図2を参照して詳述するように、積CとパリティワードPに対してBCH複合化を行うことにより訂正値Eを生成する論理回路を有している。
回路100は、さらに、2つのkビットパラレル入力120a、120bと、kビットパラレル出力120cと共に結合サブ回路120を有する。パラレル入力120a、120bは、それぞれ、乗算サブ回路105の出力105cと、訂正生成器115の出力115cとに接続されている。
結合サブ回路120は、積Cと訂正値Eとを受信し、パラレル出力120cにおいて訂正された積C´を生成するように構成されている。本実施の形態において、結合サブ回路120は、不図示の複数のXORゲートより構成されている。XORゲートのそれぞれが、パラレル出力120cにおける各ビットに対応する。積Cの各ビットは、XORゲートの対応する1つによって実行される排他的論路和演算によって訂正値Eの対応するビットに結合される。これにより、積Cのエラービットが反転され、訂正された積C´が得られ、積Cのエラービットが訂正される。ここで、積Cのエラービットの反転とは、論理値0は論理値1に反転されること、あるいは、その逆である。
図2に示すように、訂正生成器115は、シンドローム生成器(syndrome generator)125と、エラー位置決め器(error locator)130とを有する。訂正生成器115は、自身の出力115cにおいて、kビットの訂正値Eを生成する。図2において、訂正値Eはek-1,…,e0のように個別に示されている。
シンドローム生成器125は2つの入力125a、125bとtビット幅のパラレル出力125cとを有する。2つの入力125a、125bは、訂正生成器115の2つのパラレル入力115a、115bと、そのビット幅を同じにして接続されている。シンドローム生成器125は、積CとパリティワードPを受信し、出力125cにおいて、エラー位置多項式St,…,S1を生成する。シンドローム生成器125は、良く知られたPeterson-Gorenstein-Zierlerアルゴリズムを用いて、エラー位置多項式St,…,S1を生成する。しかし、当業者に明らかな、エラー位置多項式St,…,S1を生成するのに適した他の方法が、別の実施の形態で用いられても良い。
エラー位置決め器130は、tビット幅のパラレル入力130aと、kビット幅のパラレル出力130cとを有している。パラレル出力130aは、シンドローム生成器125の出力と接続され、パラレル出力130cは訂正生成器115の出力115cと接続されている。
エラー位置決め器130は、エラー位置多項式St,…,S1を受信し、k個のエラーロケータ(locator)ek-1,…,e0からなる訂正値Eを出力130cにおいて生成する。本実施の形態では、エラーロケータは、良く知られたChien検出アルゴリズムを用いて、エラー位置多項式St,…,S1の根(roots)を求めることにより生成される。本実施の形態では、パリティワードPの訂正は要求されていない。このため、エラー位置決め器130は、パリティワードPに対応する根(roots)を求めない。これによって、パリティワードPに対応した根を求めることが要求された場合と比較して、エラー位置決め器130の論理回路の量を減少することができる。別の実施の形態では、エラーロケータ130はパリティワードPに対応する根を求めても良い。このような実施の形態において、訂正生成器の出力は、t+kビット幅であっても良く、エラー訂正器は複数の異なったエラーの任意の一つを訂正するのに適した訂正値を出力において生成するように構成されていてもよい。ここで、複数の異なったエラーは、パリティワードのエラーや積のエラーを含む。
図3を参照すると、本発明の第2の実施の形態において、回路200は、有限体乗算サブ回路205と、チェックビット生成器210と、訂正生成器215と、結合サブ回路220とを有している。これらの各構成要素は第1の実施の形態の対応する(名前の同じ)構成要素と略同一である。乗算サブ回路205と、チェックビット生成器210と、訂正生成器215とは、第1の実施の形態と同じ方法で接続されており、これらの構成要素に関してはこれ以上述べる必要はない。
回路200は、さらに、エラー検出サブ回路250と、ビットマスクサブ回路255と、出力可能化回路260と、出力レジスタ265とを有している。
エラー検出サブ回路250は、2つの入力250a、250bと、1ビット出力250cとを有している。2つの入力250a、250bは、それぞれ、乗算サブ回路205の出力205cと、チェックビット生成器210の出力210cと、幅を同じくして、接続されている。エラー検出サブ回路250は、積Cのエラーを検出し、パリティワードPのエラーを検出し、これらのエラーが個別に起こったか、あるいは、一緒に起こったかを検出する。これにより、エラー検出サブ回路250は、複数の異なるエラーの少なくとも一つを検出することができる。
エラー検出サブ回路250は、チェックビット生成器210と接続されているため、2つの演算対象A、Bから直接チェックビットを生成する必要はない。これは、エラー検出サブ回路250と、訂正生成器215との有利なリソース共有とみなせるだろう。これは、共通するモジュール(チェックビット生成器210)が両者のためにパリティワードPを生成するのに用いられているからであり、それぞれが2つの演算対象A、Bから直接にパリティワードPを導出するための論理回路を有しているのではないからである。
図4に示すように、エラー検出サブ回路250は、チェックビット生成モジュール251と比較モジュール252とを有している。
チェックビット生成モジュール251は、kビットパラレル入力251aと、n−kビット幅のパラレル出力251cとを執している。パラレル入力251aは、エラー検出サブ回路250の1つ目のパラレル入力250a接続されている。
チェックビット生成モジュール251は、積Cを受信し、その出力251cにおいて追加パリティワードP´を生成するように構成されている。追加パリティワードP´は、チェックビット生成器210によってパリティワードPを生成するのに用いられるBCH符号化に対応する方法で生成される。従って、パリティワードPにエラーが無く、積Cにエラーが無い場合には、追加パリティワードP´は、パリティワードPと等しくなる。
比較モジュール252は2つの入力252a、252bと、1ビットの出力252cとを有している。出力252cは、エラー検出サブ回路250の出力250cと接続されている。2つの入力252a、252bは、それぞれ、チェックビット生成モジュール251の出力251cと、エラー検出サブ回路250の2つ目の入力250bとに、それらと幅を同じくして接続されている。
比較モジュール252は、追加パリティワードP´とパリティワードPとを受信し、エラーフラグFをその出力252cにおいて生成する。エラーフラグFは、複数のエラーのうちのいずれか一つが検出されたかを示している。ここで、複数のエラーは、積Cのエラーと、パリティワードPのエラーとを含む。
ほかの構成も可能であるが、本実施の形態において、比較モジュール252は、排他的論理和モジュール253と、評価モジュール254とからなる。
排他的論理和モジュール253は、それぞれn−kビット幅を有する2つのパラレル入力253a、253bと、同じ幅のパラレル出力253cとを有している。パラレル入力253a、253bは、それぞれ、チェックビット生成モジュール251の出力251cとエラー検出サブ回路250のパラレル入力250bの2つ目と接続されている。
排他的論理和モジュール253は、パリティワードPと追加パリティワードP´とを受信し、その出力253cにおいて、パリティワードP、P´に対してビット単位の排他的論理和演算を実行することによって第3パリティワードP″を出力するように構成されている。
評価モジュール254は、n−kビット幅のパラレル入力254aと、1ビット出力254cとを有する。パラレル入力254aは、排他的論理和モジュール253のパラレル出力253cと接続されている。出力254cは比較モジュール252の出力252cと接続されている。
評価モジュール254は第3のパリティワードP″を受信し、そのすべてのビットが論理値0であるかを判定する評価を行い、その出力254cにおいてエラーフラグFを出力する。第3のパリティワードP″の全てのビットがゼロであれば、評価モジュール254は、積C、または、パリティワードPにエラーが存在しないことを示す論理値1にエラーフラグFの値を設定する。それ以外の場合には、評価モジュール254は、複数のエラーのうちの1つが検出されたことを示す論理値0にエラーフラグFの値を設定する。
再び図3に戻ると、ビットマスクサブ回路255は、2つの入力255a、255と、kビットのパラレル出力255cとを有する。2つの入力255a、255bは、それぞれ、エラー検出サブ回路250の出力250cと、訂正生成器215の出力215cとに、幅を同じくして接続されている。
ビットマスクサブ回路255はエラーフラグFと訂正値Eとを受信し、出力255cにおいてマスクされた訂正値E´を生成するように構成されている。エラーフラグFが論理値1に設定されているならば(エラーが検出されなかったら)、ビットマスクサブ回路255は、マスクされた訂正値E´の全てのビットを論理値0に設定する。それ以外の場合には、マスクされた訂正値E´のすべてのビット値を訂正値Eの対応するビットと等しくなるように設定する。
当然の効果として、例えば、積C、または、パリティワードPにおいてエラーが検出されない場合、ビットマスクサブ回路255は訂正値Eを出力しない。ほかの適した構成も可能であるが、本実施の形態において、マスクされた訂正値E´は、訂正値Eと、エラーフラグFの論理反転(即ち、論理値1が論理値0に反転されるか、その逆)とのビット単位の論理積演算の結果として得られる。
結合サブ回路220は2つのkビットパラレル入力220a、220bと、kビットのパラレル出力220cとを有している。パラレル入力220a、220bは、それぞれ、乗算サブ回路205の出力205cと、ビットマスクサブ回路25の出力255cとに接続されている。
結合サブ回路220は、マスクされた訂正値E´と、積Cとを受信し、その出力220cにおいて訂正された積C´を出力する。ほかの構成も可能であるが、本実施の形態において、結合サブ回路220は、図示せぬ複数の排他的論理和ゲートを有し、それぞれは、出力220cの各ビットに対応する。積Cの各ビットは、(対応するXORゲートによる)排他的論理和演算によって、マスクされた訂正値E´の対応するビットと結合される。
エラーフラグFが論理値0に設定されていた場合(即ち、エラーが起こった場合)には、マスクされた訂正値E´は訂正値Eと等しくなる。従って、積Cとマスクされた訂正値E´に実行される排他的論理和演算は、積Cのエラービットを訂正された積C´に訂正させる。
エラーフラグFが論理値1に設定されていた場合には、訂正された積C´の値は訂正値Cの値と等しくなる。これは、マスクされた訂正値E´の各ビットが論理値0に設定されるからである。
出力可能化サブ回路260は、2つの1ビット入力260a、260bと、1ビット出力260cとを有している。入力260a、260bは、回路クロックと、エラー検出サブ回路250の出力250cとに接続されている。
出力可能化サブ回路260はエラーフラグFとクロック信号CLKとを受信し、出力260cにおいてゲートクロック信号ECLKを生成する。エラーフラグFが論理値0に設定されていた場合、ゲートクロック信号ECLKは論理値0に設定される。本実施の形態において、出力可能化サブ回路260は、ANDゲートからなり、入力260a、260bにおいて、エラーフラグFとクロック信号CLKを受信し、出力260cにおいてゲートクロック信号ECLKを出力するように構成されている。
出力レジスタ265は、kビットの入力265aと、クロック入力265bと、kビットの出力265cとを有する。入力265aは、結合サブ回路220の出力220cに接続され、入力265bは出力可能化サブ回路260の出力260cと接続されている。
出力レジスタ265は、訂正された積C´と、ゲートクロック信号ECLKとを受信し、出力265cにおいて、ゲートクロック信号ECLKのタイミングとなる事象(例えば、立ち上がりエッジ、または、立下りエッジ)に応じて、訂正された積C´に対応した回路出力Coutを生成するように構成されている。
図5の時間記録500を参照すると、1クロック信号CLKの第1の立ち上がりクロックエッジ(あるいは、立下りエッジのような、クロック信号CLKの他のタイミングとなる事象)から始まる第1の期間Tdetect経過後、エラー検出サブ回路250は、その出力250cにおいて、エラーフラグFを生成する。1回目の期間Tdetectが終わる前に、乗算サブ回路205は、その出力205cにおいて積Cを出力している。
クロックシグナルCLKは、第1の期間Tdetectより長いクロック周期Tclockを有している。
エラーフラグFが論理値1に設定されているとき、即ち、積Cにエラーが無いとき、出力可能化サブ回路260の入力260bで受信したクロック信号CLKの立ち上がりエッジ(または、クロックシグナルCLKのそのほかのタイミングとなる事象)によって、論理値1が出力可能化回路260の出力260cにおいて生成される。例えば、上記立ち上がりエッジは、ゲートクロックシグナルECLKの立ち上がりエッジ(または、クロックシグナルCLKに対応したタイミングとなる事象に対応する他のタイミングとなる事象)を引き起こす。従って、エラーフラグFがエラーが検出されていないことを示すとき、出力レジスタ265は、その出力265cにおいて、クロック周期Tclockとおよそ同じ周期後に、積Cに対応した回路出力Coutを生成する。
クロック信号CLKの立ち上がりエッジ(あるいはクロック信号CLKの何れかのタイミングとなる事象)から始まる第2の期間Tcorrectが経過した後、訂正生成器215は、その出力215cにおいて訂正出力Eを生成する。第2の期間Tcorrectは第1の期間Tdetectより長く、かつ、クロック周期Tclockよりも長い。
第1の期間Tdetectが終了したときから始まり、第2の期間Tcorrectが終了した時点で終わる第2の期間Tcorrectの後半に、乗算サブ回路205は、その出力205cにおいて積Cを生成するが、訂正生成器215は、その出力215cにおいて、対応する訂正出力Eをまだ生成していない。従って、第2の期間Tcorrectが終了するまで、積Cの何れのエラーも、訂正された積C´として訂正されない。それ以前には、訂正生成器215が対応する訂正出力Eを出力していないからである。
積Cにおいて検出されたエラーが訂正された積C´として訂正されるまで、出力可能化サブ回路260は、出力レジスタ265が訂正された積C´に対応する回路出力Coutを生成するのを防止するように構成されている。クロック周期の終了前に、積Cにおいて検出されたエラーによって、エラーフラグFは論理値0に設定され、エラーフラグFの論理値0によりゲートクロック信号ECLKは論理値0に設定される。これにより、クロック信号CLKの次の立ち上がりエッジ(あるいは、クロック信号CLKの他のタイミングとなる事象)は、出力可能化サブ回路の出力260cにおけるゲートクロック信号ECLKに伝搬しない。これにより、少なくともクロック信号CLKの次の立ち上がりエッジ(あるいは、クロック信号CLKの他のタイミングとなる事象)までは論理値0が維持される。これにより、訂正生成器215が、その出力215cにおいて、訂正値Eを生成するのに必要な時間を確保することが可能になる。尚、訂正値Eは検出されたエラーを訂正するため積Cと結合される。
クロック周期Tclockは第2の期間Tcorrectより短いため、クロック周期Tclockが第2の期間Tcorrectと同じかそれより長い場合に比べて、回路200は、与えられた期間においてより多い乗算結果を生成することが潜在的に可能である。
当業者であれば、クロック周期Tclockを第2の期間Tcorrectと同じかそれより長くして、任意のクロック周期において積Cにおいて検出されたエラーが必要に応じて訂正できるようにすることを考えるだろう。しかしながら、一般に、エラーは相対的にめったに起こるものではない。第2の期間Tcorrectより短いクロック周期Tclockを用いること、および、積Cにおいてエラーが検出されたときに(訂正出力Eを生成するのに必要な時間を延長するため)出力レジスタ265がその出力を更新することを防ぐことにより、与えられた期間により多くの乗算結果を生成することが可能になる。
例として、図6を参照して回路200の動作を説明する。
初めに、クロック信号CLKの2周期の間に、回路200は演算対象A、B(A1、B1、およびA2、B2)を受信し、これらより積Cの訂正値(C1およびC2)が生成される。この2周期の間、エラー検出サブ回路250は、フラグFを、エラーが検出されないことを示す論理値1に設定する。
積Cの値(C3)にエラーがあると、クロック信号CLKの3周期目において、このエラーがエラー検出サブ回路250によって検出され、フラグFが論理値0に設定される。フラグFが論理値0に設定されているため、出力可能化サブ回路260は、ゲートクロックeclkを論理値0に設定する。
4周期目の開始時である、クロック信号CLKの次の立ち上がりエッジで、フラグFは論理値0を維持している。これにより、論理値1へ移行するクロック信号clkに応答してゲートクロックeclkが論理値1を設定することが防止される。この結果、積Cの誤った値(C3)は、出力レジスタ265の出力265cにおいて生成されない。これによって、訂正生成器215が適切な訂正値Eを生成する時間が提供される。続いて、第4周期の終了前に、結合回路220は、対応するマスクされた訂正値E´を受信し、このマスクされた訂正値E´が積Cの誤った値(C3)と結合され、訂正された積C´が生成される。
クロック信号clkの第5周期目において、演算対象A、Bの2つの値(A4、B4)が導入され、訂正値(C4)を有する積Cが生成される。このときには積Cにエラーは検出されないため、エラー検出回路250はフラグFを論理値1に設定する。これにより、クロック信号clkが論理値1に設定されるときに、ゲートクロックeclkが論理値1に変化する。ゲートクロックeclkが論理値0から論理値1に変化することにより、出力レジスタ265の出力265cにおいて、訂正された積C´の値が回路出力Coutとして生成される。
クロック信号clkの6周期目において、積Cの訂正された値(C4)が、回路出力Coutとして、出力レジスタ265の出力265cに生成される。
図7に示すように、第3の実施の形態におけるエラー訂正回路は、機能ブロックとして、サブ回路305を有している。サブ回路305は、同じ幅mを有する2つのパラレル入力305a、305bと、幅mの出力305cとを有する。この機能ブロックは、入力305a、305bのそれぞれで演算対象A、Bを受信し、これらの演算対象に作用して出力Cを生成する。本実施の形態では、作用は乗算であり、機能ブロック305は、第1の実施の形態と同じ乗算器である。機能ブロック305においてエラーを検出し訂正するために、回路はさらに、パリティ予想サブ回路310と、訂正ブロックとしてのサブ回路315とを有している。パリティ予想器310は、入力として、機能ブロックと同じ幅mを有する2つのパラレル入力310a、310bと、幅kの出力310cとを有している。パリティ予想器310は、その入力において、演算対象A、Bを受信し、これらからパリティコードを生成する。このパリティコードは、後述する機能ブロック305の出力に実行される符号化ステップの結果として生成されるべきパリティーコードの予想である。訂正ブロック315は、機能ブロック305の出力305cと同じ幅mの第1の入力315aと、パリティ予想器310からの出力と同じ幅mの第2の入力315bと、機能ブロック305の出力305cと同じ幅mの出力315cとを有する。訂正ブロック315は、その第1の入力315aにおいて、機能ブロック305から出力された結果Cを受信し、結果Cからパリティコードを生成するように構成されている。パリティ予想器310は、エラーが無かった場合に、任意の演算結果A、Bに対して自信が生成する予想されたパリティコードが、訂正ブロックにおいて生成されるものと同じになるように構成されている。訂正ブロックは、パリティ予想器310から受け取ったパリティコードと、自身が結果Cから生成したパリティコードとを比較し、結果Cのエラーを検出しその位置を決め、エラーを訂正する。これにより訂正された出力C´が生成される。
図8を参照して、機能ブロックで生成され、訂正ブロック315へ出力され、パリティ予想器310で予想されるパリティコードについて説明する。この実施の形態では、機能ブロックから出力される結果Cは、C0からC19までの20ビットの出力コードである。一般的に、パリティコードは、結果のビットC0からC19を、第1のグループの組(この場合には5ビットの4つの行)に分割し、各グループ(即ち、各行)のパリティコードを生成する。さらに、前記結果のビットを第2のグループの組(この場合には、4ビットの5つの列)に分割し、各グループ(各列)のパリティコードを生成する。各グループのパリティコードは、ハミング符号やBCH符号などの、グループのエラーの数を決定するのに使用可能なものであって、しかし、グループにおけるエラーの位置を決定するのに使用されない適切な方法で生成することができる。パリティ予想器より出力されるパリティコードは複数のパリティコードの組である。ここで、この複数のパリティコードのそれぞれは、訂正ブロック315のビットに配置された複数のグループの1つに対して生成されたパリティコードの1つと対応する。訂正ブロック315において出力Cから生成されたパリティコードとパリティ予想器310で生成されたパリティコードとを比較することにより、訂正ブロック315は、第1のグループの組(各行)におけるエラーの数と、第2のグループの組(各列)のエラーの数とを決めることが可能である。これらの数から、エラーの数が極めて多くない限り、エラーの厳密な場所を特定することができる。これは、1つの行と、1つの列との任意の組合わせは、出力における1つのビットを一意に特定するからである。エラーの位置が特定されると、訂正ブロックはそれらのエラーを訂正し、訂正された出力C´を生成する。
当然のことながら、訂正ブロックは、上記の各ステップを実行するように構成された個別のサブ回路を有していてもよい。本実施の形態では、訂正ブロックは、第1の割当てサブ回路315dと、第2の割当てサブ回路315eと、第1のパリティコード生成サブ回路315fと、第2のパリティコード生成サブ回路315gと、第1のエラー検出サブ回路315hと、第2のエラー検出サブ回路315iと、エラー位置サブ回路315jと、エラー訂正サブ回路315kとを有している。第1の割当てサブ回路315dは、出力ビットを第1のグループの組に割り当てるように構成されている。第2の割当てサブ回路315eは、出力ビットを第2のグループの組に割り当てるように構成されている。第1のパリティコード生成サブ回路315fは、第1のグループの組の各グループに対するパリティコードを生成するように構成されている。第2のパリティコード生成器315gは、第2のグループの組の各グループに対するパリティコードを生成するように構成されている。第1のエラー検出サブ回路315hは、第1のパリティコードの組と、パリティ予想器で生成された対応するコードとを比較し、第1のビットグループの組の各グループにおけるエラーの数を決定するように構成されている。第2のエラー検出サブ回路315iは、第2のパリティコードの組と、パリティ予想器で生成された対応するコードとを比較し、第2のビットグループの組の各グループにおけるエラーの数を決定するように構成されている。エラー位置回路315jは、パリティコードの両方の組の比較結果から、出力Cにおけるエラーの位置を特定するように構成されている。エラー訂正サブ回路315kは、出力Cを訂正して、訂正された出力C´を生成するように構成されている。当然のことながら、上記の各機能は回路における個別の専用部分によって実行されていなくともよく、他の実施の形態において、サブ回路は、上記の2以上の機能の組合わせを実行するように構成されていてもよい。
当然のことながら、2つのグループの組は、行および列からなる長方形の表によって容易に視覚化可能であるが、割当てステップは、各ビットを2つのグループに割当てさえすればよい。即ち、1つは第1の組であり、もう一つは第2の組である。例えば、図8に示される割り当てでは、ビットC0からC19は、出力において番号順に配置され、初めの5ビットは第1の組の第1のグループ(第1の行に対応)に割り当てられ、続く5ビットのブロックは、第1の組の続くグループに配置される。第1のビットから始まる5ビットおきのビットが第2の組における第1のグループ(第1の列に対応)に割当てられ、第2のビットから始まる5ビットおきのビットが第2のグループに割当てられ、以下同様である。当然のことながら、どのビットがどのグループに割当てられるかは重要ではない。図8のテーブルのフォーマットを考慮すれば、20ビットは、任意の方法で、テーブルの20セルに配置されてよく、ビットは行と列とにグループ分けされてよく、出力におけるそれらの位置に規則的な関係がなくともよい。
本実施の形態では、各列の二重エラーを検出可能な単純なハミング符号や、各列の6つのエラーを検出するBCH符号を用いて、パリティコードは生成された。列と行とを単位としたパリティ符号の符号化をよりよく理解するため、機能ブロックの例となる20ビットのパラレル有限体乗算器を考慮しつつ、訂正ブロック315で実行されたようなパリティ符号化の手順を、一つの例となる回路と共に、より詳細に説明する。
ハミングコードパリティを用いたエラー検出
20ビットは、4つ行と5つの列とからなる図8の表に配置される。出力Cの20ビットはC0からC19の順に特定され、図8の表のように配置される。行はハミング符号、とくに各行はHam(9,5)符号によって符号化される。言い換えれば、1つの行において、二重エラー(即ち、2ビットまでのエラー)を検出するために4ビットのパリティが必要となる。第1の行における4つのパリティ情報は以下の式より得られる。
P1 = C0 ・ C2 ・ C4 (1)
P2 = C1 ・ C2 ・ C3 ・ C4 (2)
P3 = C0 ・ C3 ・ C4 (3)
P4 = C1 ・ C2 ・ C4 (4)
同様に、各行は個別に符号化され、異なるコードワード(code word)として扱われ、4つの4ビットパリティコードをもたらす。4つのパリティコードの1つは図8の各行に対応する。各列は単純にパリティを用いて符号化される。各2ビットは、図8に示す列パリティビットCPを生成することによって保護される。第1、2の列の列パリティは、下記に示す式によって決定される。残る3つの列パリティは、以下のCP0からCP3までと厳密に同じ方法によって生成される。
CP0 = C0 ・ C10 (5)
CP1 = C5 ・ C15 (6)
CP2 = C1 ・ C11 (7)
CP3 = C6 ・ C16 (8)
式(1)から式(4)の組は、即ち、行に関するエラー検出符号は、各行において2つまで、複数のエラーが起きたことを検出するように構成されている。同様に、各列に関して計算される式(5)から式(8)は、各列に関して2つまでのエラーの存在を検出することができる。エラーが極めて多くないという前提において、列と行とに関するエラー検出符号によって、エラーである特定の1つのビット、もしくは、特定の複数のビットを検出可能である。例えば、C6のビットにエラーが1つのみあるときには、1つの列(2列目)に1つのエラーのみが検出され、1つの行(2行目)に1つのエラーが検出される。従って、行2で列2のビットがエラーであるビットと特定される。このように、列と行とを使用すること、より一般的には、2つの異なるグループの組を使用することをここでは交差パリティエラー訂正(cross parity error correction)と呼ぶ。この技術によって訂正することのできるエラーのパターンを図9に示す。
パリティ予想器310は、機能ブロックからの出力におけるビットを2つのグループの組に割り当て、それらのグループのパリティコードを導出する機能ブロック305や訂正ブロック315におけるサブ回路315の構成と単純に同じものであっても良い。しかしながら、本実施の形態では、スペースを抑制し、回路を単純化するため、パリティ予想器は、もっとも簡便に、中間のステップの結果Cを導出することなくシステムの入力A、Bからパリティ符号を導出するように構成されている。これにより、結果Cを具体的に導出する必要が無いため、回路のサイズを著しく縮小することができる。
複数エラー訂正
上記の記載は、第1のグループの組(行)と第2のグループの組(列)との両方からどのようにエラーが検出されるかを説明した。しかし、当然ながら、エラーを特定するだけではそれらを訂正することにはならない。エラービットの位置を特定し、それらを訂正するためには、古典的なエラー訂正符号を用いて、(復号器と呼ばれる別個の回路小区画を必要とする)別個の処理が必要である。
上述のシステムにおいて、かなり単純な交差符号(cross codes)を使用して、複雑な復号器を排除することが可能であり、訂正ブロックが、訂正を行うための単純なAND−XOR論理回路を有して、当該回路を使用するように構成される。例えば、図9(a)に示すように、ビットは図8と同じ表に配列され、C0、C1、C5、C6はエラーであるとする。システムは、行1のハミング符号を用いて行1に2つのエラービット(C0およびC2)があることを検出し、同様に、行2のハミング符号により行2に2つのエラービット(C5およびC6)があることを検出する。しかし、これらの符号は、単独では、行1と行2の2ビットがエラーであることのみを決めることができるが、その位置までを決めることはできない。各行のどのビットにエラーがあるかを見出すため、ビットC0はCP0に保護され、ビットC5はCP1に保護されるように、システムは列パリティを使用するように構成されている。同様に、ビットC2、C7はCP2、CP3に保護されている。行と列とのパリティの組合わせを用いることにより、訂正ブロック315は、どのビットにエラーがあるかを決定するように構成されている。同様に、ビットC3,C18がエラーであれば、この方法でその2つを検出することが可能だし、C12、C16がエラーであっても同様に検出することが可能である。図9(b)、9(c)、9(d)に示すように、検出可能な他のビットエラーのグループは以下のようである。C1、C2、C5とC6;C11、C13とC17;C3、C7とC9;C2とC3;C6とC11;C12とC14;C0、C1、C2、C5、C6とC7;C12、C13、C14、C17、C18とC19。
図10に示すように、さらなる実施の形態において、機能ブロックは64ビットの有限体乗算器である。この場合には、訂正ブロックは、16ビットの行を4つ有する表を定義する。本実施の形態において、訂正ブロックは、BCH符号を用いており、各行のエラー(行エラー検出)の数をハミング符号で検出できる各行のエラーの数より多くしている。図10は、64ビットの有限体乗算器のエラーのパターンの例を示している。有限体乗算器はBCH符号を各行に配置し、単純なパリティ符号を各列に配置することができる。例えば、BCH(3,1,16)符号によって、各行に6つのエラーまでを検出することができる。このため、単純なハミング符号に比べて訂正されるビットの数を明らかに増加させることができる。
BCH符号パリティを用いたエラー検出
ビットパラレルなBCH符号に基づいた複数のエラー検出の基本的な原理と構造を図8で用いた20ビットの乗算を用いて説明する。当然のことながら、当業者であれば、この原理を64ビットの乗算に対して拡張することは可能である。BCH(15,5,7)の簡単な場合について考える。ここで、n=15、k=5である。この例では、GF(2k)上のビットパラレルなPB乗算について考える。まず、BCH符号として第1の5ビットの行を考える。従って、n=15、k=5では、以下の式が得られる。
M(x) = C4x4+C3x3+C2x2+C1x+C0 (9)
xn-kM(x) = xn-k(C4x4 + C3x3 + C2x2 + C1x + C0)
= C4x14 +C3x13 +C2x12 +C1x11 +C0x10 (10)
パリティチェックビットは以下のように生成される。
P(x) = xn-kM(x) modg(x) (11)
生成多項式をg(x) = x10+x8+x5+x4+x2+x+1とする。すると、6ビットの検出のための、第1の行に対するパリティの式は以下のようになる。
P(x) = p9x9 + p8x8 + p7x7 + p6x6 + p5x5 + p4x4 + p3x3 + p2x2 + p1x1 + p0 (12)
3ビット訂正のBCH符号を考えるならば、単一のコードワード(code word)において、6ビットのエラーを検出可能である。そのため、5ビット符号における複数のエラーを検出するには、10個のパリティビットが必要である。10個のパリティビットは以下のように与えられる。
p0 = c0+c2+c4, p0 = d0+d2+d4+e0+e1+ e2+e3,
p1=c0+c1+c2+c3+c4, p1=d0+d1+d2+d3+d4,
p2=c0+c1+c3, p2=d0+d1+d3+e1+e2+e3,
p3=c1+c2+c4, p3=d1+d2+d4+e0+e2+e3,
p4=c0+c3+c4, p4= d0+d3+d4+e0+e2,
p5=c0+c1+c2, p5=d0+d1+d2+e2,
p6=c1+c2+c3, p6=d1+d2+d3+e0+e3,
p7=c2+c3+c4, p7=d2+d3+d4+e1,
p8=c0+c2+c3, p8=d0+d2+d3+e0+e1+e3,
p9=c1+c3+c4, p9=d0+d3+d4+e0+e2
ここで、dxとexとは以下の文献より得られる乗算の内積の項である。
レイハニ‐マゾレー、エムエーハサン、「GF(2m)上の多項式に基づいた乗算のための低複雑度なビットパラレルアーキテクチャ」、アイトリプルイートランスコンピューターズ、53号、8巻、945−959ページ、2004年(Reyhani-Masoleh and M. A. Hasan, “Low Complexity Bit Parallel Architectures for Polynomial Basis Multiplication over GF(2m),” IEEE Trans. Computers, vol. 53, no. 8, pp. 945-959, 2004)
交差パリティ符号(cross parity code)に基づいたBCH符号のパターンの例を図11に示す。このシステムは、各16ビットの行に6ビットのエラーを検出可能なBCH符号が用いられるように構成されている。各4ビット列において、ハミング符号に基づいた構成(scheme)のような単純なパリティ符号が用いられるように構成されている。従って、各列において2つのエラーを検出可能であり、各行において6つのエラーを検出可能である。これは、この技術が特定の12ビットのエラーまでを検出可能であることを意味している。図11において、いくつかのパターン例はハイライトで示されている。類似のパターンは同じグループの複数のエラーを示している。
デジットシリアル乗算器(Digit Serial Multipliers)上の交差符号(Cross Codes)
ワードレベル乗算器(word level multiplier)や、デジットシリアル乗算器(digit serial multiplier)といったより実践的な乗算器のために提案された交差パリティ構成(cross parity scheme)について考察する。実験的な目的のため、163ビットデジットシリアル乗算器を考える。この163ビットデジタル乗算器は、NISTやFIPSによって設定された安全なECC演算に対して標準的なサイズである。163ビットの複数のエラーを訂正できるデジットシリアル乗算器を統合的扱うのは初めての試みであろう。これは、従来のエラー検出と訂正が可能な技術は、ビットパラレルな乗算器により良く適合しているためである。即ち、ビットパラレルな乗算器は、パラレルコンプレックスエラー検出(parallel complex error detection)や、実際の乗算器の論理回路とパラレルに動作する復号処理や訂正処理の部分による大きな面積のオーバーヘッドを有しているからである。
図12を参照して、10ビット、15ビット、20ビット、32ビット、48ビット、64ビット、および、90ビットの乗算器のサイズに必要となる空間をよりよく理解するために、デジタルシリアル乗算器の構成(scheme)に関する提案された構成(scheme)の複雑度を評価する。
この実験のためのデジットシリアル乗算回路(digit serial multiplication circuit)は、単一の加算器、乗算器アーキテクチャ(single accumulator multiplier architecture)を用いて構成されている。乗算アルゴリズムは以下のようである。
Figure 2014525705
実験結果
ハミングに則った符号と、BCHに則った符号との行動モデルは、VHDLを用いて実行され、モデルシムシミュレータ(Modelsim simulator)を用いてそれらの機能的な正確さが確認される。様々なサイズのビットパラレルな乗算器(10、15、20、32、48、64、90ビットの乗算器の構造を含む)について、構成(scheme)が確認され、検証されている。設計はシノプシス(Synopsys)の設計したコンパイラによって統合されている。面積の変動や、これらの設計の電力はTSMCテクノロジーズ(TSMC technologies)の180nm、90nmの両方を用いて評価されている。
提案された実装の面積および電力の解析
図12は、様々なサイズのビットパラレルな乗算器の消費空間を示している。図13、14は、180nmと90nmの技術の両方の(パリティ生成器を含む)エラー訂正ブロックの面積を示している。図13から明らかなように、BCHに基づいた技術の消費空間は、ハミングに基づいた符号よりわずかに高いだけである。これは、両方の符号において面積を著しく占有する復号器の区域を、単純な交差パリティ(cross parity)のエラー検出器および訂正器に置き換えることが可能だからである。
表1は、提案された交差パリティ(cross parity)に基づいた方法の面積のオーバーヘッドを示している。BCHとハミングとに基づいた構成(scheme)の面積のオーバーヘッドは著しく近いことが実験の解析によりわかる。非常に単純な10ビットの乗算器に関する面積のオーバーヘッドはわずかに142%である。乗算器のサイズが大きくなるに従って、パリティ生成回路と訂正ロジック回路とによる面積のオーバーヘッドのパーセンテージは小さくなり、最終的に複数のエラーを検出可能な90ビットの乗算器ではわずかに101%になる。単一エラー訂正符号に基づく古典的な乗算エラー訂正の構成(scheme)と比較して、これはかなり小さな値である。この設計は、すべてのパターンのエラーを扱うことはできないものの、本提案の構成(scheme)の範囲外であって、訂正できないエラーのパターンはほとんど起こることがない。これは、複数のビットフリップ(bit flip)を招く放射粒子の衝突の確率は、例えば、100万クロックサイクルに1回だからである。従って提案された構成(scheme)は、101%程度の面積のオーバーヘッドによって、優れたエラーマスキングの能力を提供する。
様々な乗算器のサイズの面積のオーバーヘッドの比較
Figure 2014525705
表2は、我々の交差パリティ(cross parity)符号のやり方と、オープンになっている文献における、他のエラー訂正の構成(scheme)とを比較している。ここでは、文献として以下のものが挙げられる。
レイハニ‐マゾレー、エムエーハサン、「GF(2m)上の多項式に基づいた乗算のための低複雑度なビットパラレルアーキテクチャ」、アイトリプルイートランスコンピューターズ、53号、8巻、945−959ページ、2004年(A. Reyhani-Masoleh and M. A. Hasan, “Low Complexity Bit Parallel Architectures for Polynomial Basis Multiplication over GF(2m),” IEEE Trans. Computers, vol. 53, no. 8, pp. 945-959, 2004)
ジェイマシュー、ジェイシン、エーエムジャビー、エムホセイナバディ、ディーケープラダン「LDPC符号を用いた耐障害性のビットパラレルな有限体乗算器」、回路とシステムにおけるアイトリプルイー国際シンポジウム会報、2008年、1684−1687ページ(J. Mathew, J. Singh, A. M. Jabir, M. Hosseinabady, and D. K. Pradhan, “Fault Tolerant Bit Parallel Finite Field Multipliers using LDPC Codes,” in Proceedings of the IEEE International Symposium on Circuits and Systems, 2008, pp. 1684-1687)
エムポーラッカパランビル、ジェイマシュー、エーエムジャビー、ディーケープラダン、エスピーモハンティ、「有限体乗算回路上のBCHコードに基づいたマルチビットエラー訂正」、第12回高品質電子設計に関するアイトリプルイー国際シンポジウム会報、2011年、615−620ページ(M. Poolakkaparambil, J. Mathew, A. M. Jabir, D. K. Pradhan, and S. P. Mohanty, “BCH Code Based Multiple Bit Error Correction in Finite Field Multiplier Circuits,” in Proceedings of the 12th IEEE International Symposium on Quality Electronic Design, 2011, pp. 615-620)
公平な比較のため、我々は32ビットの乗算器を使用した。我々の方法は、他の従来の設計と比較して、より少ない面積のオーバーヘッドで、より多くのエラーの数を訂正した。
Figure 2014525705
本提案構成(scheme)の電力消費について分析した。図15、16は、ハミングを基礎とした設計とBCHを基礎とした設計との消費電力の比較を示している。2つの構成(scheme)は面積のオーバーヘッドも同等であるが、消費電力も大まかには同じである。
図7から16に示した上述の実施の形態は回路の設計に関するものであるが、他の実施の形態において、システムは、通信が転送されるチャネルであり、出力はこのチャネルから受信した通信である。パリティ予想器は、チャネルの送信端として構成され、送信前に通信によってパリティ符号を生成し、生成されたパリティ符号を通信によって送信するように構成されている。訂正ブロックは、システムの受信端として構成され、パリティ予想器からのパリティ符号と共にチャネルを介してメッセージを受信するように構成されている。訂正ブロックは、受信したメッセージに上述した訂正ステップを実行することが可能である。別の場合には、システムは、メモリ回路であっても良い。この場合には、出力はメモリ回路から受け取ったデータであってもよく、さらに、パリティ予想器で生成されたパリティはメモリに記憶され、当該データと共に読み出されることにより、訂正回路が読み出されたデータに訂正ステップを行うことが可能になるようにしてもよい。
以上の実施音形態は単なる例として記載したにすぎず、本発明の範囲は以下の請求項によって定義される。

Claims (27)

  1. クロック信号を受信可能に構成されたエラー訂正回路であって、
    第1の入力および第2の入力から第1の出力を生成するように構成された構成要素と、
    前記第1の出力と、前記第1の入力と、前記第2の入力とに基づいて、第1の出力にエラーが検出されたか否かを示すエラーフラグを生成するように構成されたエラー検出器と、
    前記第1の出力と、前記第1の入力と、前記第2の入力とに基づいて、クロック信号のタイミングとなる事象から始まる第1の期間後に訂正出力を生成するのに適した訂正生成器と、
    前記クロック信号のタイミングとなる事象から始まる第2の期間後にエラー訂正回路の出力を生成するように構成された出力生成器とを有し、
    前記エラーフラッグが、前記第1の出力においてエラーが検出されたことを示しているときに、前記第2の期間は前記第1の期間より長くなり、
    前記エラーフラッグが、前記第1の出力においてエラーが検出されていないことを示しているときに、前記第2の期間は前記第1の期間と同じか、または、短くなり、
    前記エラーフラッグが前記第1の出力においてエラーが検出されたことを示しているときに、エラー訂正回路の前記出力は、前記第1の出力と前記訂正出力との組み合わせを有することにより前記第1の出力で検出されたエラーが訂正されるか、または、前記エラーフラッグが前記第1の出力においてエラーが検出されたことを示しているときに、エラー訂正回路の前記出力が前記第1の出力に一致することを特徴とするエラー訂正回路。
  2. 前記出力生成器は、出力を有する出力レジスタを有し、前記出力レジスタの前記出力は、前記エラー訂正回路の前記出力であり、
    前記エラーフラグが前記第1の出力にエラーがあることを示しているときに、前記出力生成器は、前記出力レジスタが前記出力を更新するのを遅らせるように構成されることで、前記第2の期間を前記第1の期間より長くさせることを特徴とする請求項1に記載のエラー訂正回路。
  3. 前記出力生成器は、前記クロック信号と、前記エラーフラグとに基づいてゲートクロックを生成するように構成されている出力可能化要素を有し、
    前記エラーフラグが前記第1の出力にエラーが検出されたことを示しているときに、前記出力レジスタは自身に入力されたクロックにおいて、前記ゲートクロックを受信することで前記出力レジスタがその出力の更新を遅らせることを特徴とする請求項1または2に記載のエラー訂正回路。
  4. チェックビット生成器をさらに有し、
    前記チェックビット生成器は、前記第1の入力と前記第2の入力とに基づいて、少なくとも1つのチェックビットを生成するように構成され、
    前記エラー検出器と、前記訂正生成器とは、それぞれ、前記第1の出力と、前記少なくとも1つのチェックビットとに基づいて、前記エラーフラグと、前記訂正出力とを生成するように構成されていることを特徴とする請求項1乃至3の何れか1項に記載のエラー訂正回路。
  5. 前記エラー検出器は、前記第1の出力と前記少なくとも1つのチェックビットとに基づいて前記エラーフラグを生成するように構成され、
    前記エラーフラグは、前記エラー検出器が、前記エラー検出器が検出可能な複数の異なったエラーのうちから任意の1つのエラーを検出したかどうかを示し、
    前記複数の異なったエラーは、前記第1の出力に含まれるエラーと、前記少なくとも1つのチェックビットに含まれるエラーとを有することを特徴とする請求項4に記載のエラー訂正回路。
  6. 前記訂正生成器は、前記第1の出力と前記少なくとも1つのチェックビットとに基づいて、前記訂正出力を生成するのに適しており、前記訂正出力は、複数の異なるエラーのうち任意の1つのエラーを訂正するのに適しており、
    前記複数の異なったエラーは、前記第1の出力に含まれるエラーと、前記少なくとも1つのチェックビットに含まれるエラーとを有することを特徴とする請求項4または5に記載のエラー訂正回路。
  7. 前記チェックビット生成器は、前記第1の出力を個別に生成することなく、前記第1の入力と前記第2の入力とから、直接的に前記少なくとも1つのチェックビットを生成するように構成されていることを特徴とする請求項4乃至6の何れか1項に記載のエラー訂正回路。
  8. 前記訂正生成器は、エラー位置決め多項式を生成し、前記エラー位置決め多項式の根を求めることにより前記訂正出力を生成し、
    前記訂正生成器は前記第1の出力に対応した根のみを求めることを特徴とする請求項1乃至7の何れか1項に記載のエラー訂正回路。
  9. 前記出力を生成するように構成された前記構成要素は、前記第1の入力と前記第2の入力とに算術演算を施すことによって前記第1の出力を生成するように構成されていることを特徴とする請求項1乃至8の何れか1項に記載のエラー訂正回路。
  10. 前記算術演算は、ガロア体GF(2k)における乗算といった有限体の算術演算である請求項9に記載のエラー訂正回路。
  11. 図3から図6を参照して記載されるエラー訂正回路に相当するエラー訂正回路。
  12. 第1の入力と、第2の入力とから第1の出力を生成するように構成された構成要素と、
    前記第1の出力と前記第1の入力と前記第2の入力とに基づいて、前記第1の出力のエラーを訂正するために前記第1の出力に結合することが可能な訂正出力を生成するように構成された訂正生成器と、
    前記訂正出力と前記第1の出力とを結合し、第1の出力に含まれるエラーが訂正された第2の出力を生成するように構成された結合器とを有するエラー訂正回路。
  13. チェックビット生成器をさらに有し、
    前記チェックビット生成器は、前記第1の入力と前記第2の入力とに基づいて、少なくとも1つのチェックビットを生成するように構成され、
    前記訂正生成器は、前記第1の出力と、前記少なくとも1つのチェックビットとに基づいて、前記訂正出力とを生成するように構成されていることを特徴とする請求項12に記載のエラー訂正回路。
  14. 前記チェックビット生成器は、前記第1の出力を個別に生成することなく、前記第1の入力と前記第2の入力とから直接的に前記少なくとも1つのチェックビットを生成するように構成されていることを特徴とする請求項13に記載のエラー訂正回路。
  15. 前記エラー検出器は、前記第1の出力と前記少なくとも1つのチェックビットとに基づいて前記エラーフラグを生成するように構成され、
    前記エラーフラグは、前記エラー検出器が、前記エラー検出器が検出可能な複数の異なったエラーのうちから任意の1つのエラーを検出したかどうかを示し、
    前記複数の異なったエラーは、前記第1の出力に含まれるエラーと、前記少なくとも1つのチェックビットに含まれるエラーとを有することを特徴とする請求項13または14に記載のエラー訂正回路。
  16. 前記訂正生成器は、前記第1の出力と前記少なくとも1つのチェックビットとに基づいて、前記訂正出力を生成するのに適しており、前記訂正出力は、複数の異なるエラーのうち任意の1つのエラーを訂正するのに適しており、
    前記複数の異なったエラーは、前記第1の出力に含まれるエラーと、前記少なくとも1つのチェックビットに含まれるエラーとを有することを特徴とする請求項13乃至15の何れか1項に記載のエラー訂正回路。
  17. 前記訂正生成器は、エラー位置決め多項式を生成し、前記エラー位置決め多項式の根を求めることにより前記訂正出力を生成し、
    前記訂正生成器は前記第1の出力に対応した根のみを求めることを特徴とする請求項12乃至16の何れか1項に記載のエラー訂正回路。
  18. 前記出力を生成するように構成された前記構成要素は、前記第1の入力と前記第2の入力とに算術演算を施すことによって前記第1の出力を生成するように構成されていることを特徴とする請求項12乃至17の何れか1項に記載のエラー訂正回路。
  19. 前記算術演算は、ガロア体GF(2k)における乗算といった有限体の算術演算である請求項18に記載のエラー訂正回路。
  20. 前記出力は、複数のビットを有し、
    前記訂正生成器は、前記出力ビットを第1のグループの組に割当て、前記第1のグループの組の各グループに第1のエラー検出ステップを実行し、前記出力ビットを第2のグループの組に割り当て、前記第2のグループの組の各グループに第2のエラー検出ステップを実行し、エラーの位置を特定するエラー位置ステップを実行するために前記第1のエラー検出ステップと前記第2のエラー検出ステップとの結果を使用するように構成されることを特徴とする請求項1乃至19の何れか1項に記載のエラー訂正回路。
  21. 複数の出力ビットを有するシステム出力を受信し、
    前記複数の出力ビットを第1のグループの組に割当て、前記第1のグループの組の各グループに第1のエラー検出ステップを実行し、
    前記複数の出力ビットを第2のグループの組に割り当て、前記第2のグループの組の各グループに第2のエラー検出ステップを実行し、
    エラーの位置を特定するエラー位置ステップを実行するために前記第1のエラー検出ステップと前記第2のエラー検出ステップとの結果を使用し、
    前記受信した出力と、前記エラー位置ステップの前記結果とから、訂正された出力を生成するように構成されることを特徴とするエラー訂正回路。
  22. 各出力ビットは、前記第1のグループの組の1つのグループと、前記第2のグループの組の1つのグループとの要素であることを特徴とする請求項20または21に記載のエラー訂正回路。
  23. 前記第1のグループの組と前記第2のグループの組とは、前記出力ビットの各ビットに対して、前記各ビットが要素となっている第1のグループの組のグループを特定すること、および、前記各ビットが要素となっている第2のグループの組のグループを特定すること、によって出力ビットを一意的に特定するように構成されていることを特徴とする請求項20乃至22の何れか1項に記載のエラー訂正回路。
  24. 割当てサブ回路、第1のエラー検出サブ回路、第2のエラー検出サブ回路、エラー位置サブ回路、訂正サブ回路の少なくとも1つをさらに有することを特徴とする請求項20乃至23の何れか1項に記載のエラー訂正回路。
  25. 前記各エラー検出ステップは、関連するグループのビットエラーの数を特定するように構成されていることを特徴とする請求項20乃至24に記載のエラー訂正回路。
  26. 前記各エラー検出ステップは、関連するグループのエラー検出符号を生成するように構成されていることを特徴とする請求項20乃至25の何れか1項に記載のエラー訂正回路。
  27. 図1、2、または、図3,4を参照して記載されるエラー訂正回路。
JP2014526546A 2011-08-26 2012-08-10 デジタルエラー訂正 Pending JP2014525705A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1114831.9 2011-08-26
GBGB1114831.9A GB201114831D0 (en) 2011-08-26 2011-08-26 Circuit with error correction
US201261608694P 2012-03-09 2012-03-09
US61/608,694 2012-03-09
PCT/GB2012/051953 WO2013030528A2 (en) 2011-08-26 2012-08-10 Digital error correction

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017019887A Division JP6259537B2 (ja) 2011-08-26 2017-02-06 デジタルエラー訂正

Publications (2)

Publication Number Publication Date
JP2014525705A true JP2014525705A (ja) 2014-09-29
JP2014525705A5 JP2014525705A5 (ja) 2015-09-03

Family

ID=44838816

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014526546A Pending JP2014525705A (ja) 2011-08-26 2012-08-10 デジタルエラー訂正
JP2017019887A Active JP6259537B2 (ja) 2011-08-26 2017-02-06 デジタルエラー訂正

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017019887A Active JP6259537B2 (ja) 2011-08-26 2017-02-06 デジタルエラー訂正

Country Status (9)

Country Link
US (1) US9645886B2 (ja)
EP (2) EP2748707B1 (ja)
JP (2) JP2014525705A (ja)
KR (1) KR102015148B1 (ja)
CN (1) CN103890732B (ja)
CA (1) CA2846292C (ja)
ES (1) ES2552305T3 (ja)
GB (1) GB201114831D0 (ja)
WO (1) WO2013030528A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319179B1 (en) * 2013-04-09 2016-04-19 Marvell International Ltd. Methods and apparatus for generating expanded code words to support error correction in a data communication system
DE102013219088B9 (de) * 2013-09-23 2018-07-19 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
US9800271B2 (en) * 2015-09-14 2017-10-24 Qualcomm Incorporated Error correction and decoding
KR101670615B1 (ko) * 2015-12-03 2016-10-28 한양대학교 산학협력단 블록 데이터 어레이를 이용한 오류 정정 장치 및 방법
EP3361637A1 (en) * 2017-02-09 2018-08-15 Nxp B.V. A method, and a synchronous digital circuit, for preventing propagation of set-up timing data errors
CN107423153B (zh) * 2017-07-24 2020-01-21 上海交通大学 一种用于错误检测与校正技术的校正电路
KR20200015999A (ko) * 2018-08-06 2020-02-14 에스케이하이닉스 주식회사 예측 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템
CN109361502B (zh) * 2018-12-07 2022-03-15 上海爱信诺航芯电子科技有限公司 一种抵御能量分析攻击的解密方法及解密电路
WO2023080892A1 (en) * 2021-11-04 2023-05-11 Pqsecure Technologies, Llc Method and architecture for computing extension field arithmetic in a cryptosystem

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006318461A (ja) * 2005-05-10 2006-11-24 Hewlett-Packard Development Co Lp 水平及び垂直のエラー訂正符号化(ecc)システム及び方法
JP2009301194A (ja) * 2008-06-11 2009-12-24 Toshiba Corp 半導体記憶装置の制御システム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3771126A (en) * 1972-04-10 1973-11-06 Bell Telephone Labor Inc Error correction for self-synchronized scramblers
US4241446A (en) * 1978-10-16 1980-12-23 Honeywell Information Systems Inc. Apparatus for performing single error correction and double error detection
US4277844A (en) * 1979-07-26 1981-07-07 Storage Technology Corporation Method of detecting and correcting errors in digital data storage systems
JPS6276825A (ja) * 1985-09-30 1987-04-08 Hitachi Ltd 符号誤り訂正方法
JPS62234426A (ja) * 1986-04-04 1987-10-14 Sony Corp エラ−訂正方法
US4833678A (en) * 1987-07-22 1989-05-23 Cyclotomics, Inc. Hard-wired serial Galois field decoder
EP0668561B1 (en) * 1994-02-22 2002-04-10 Siemens Aktiengesellschaft A flexible ECC/parity bit architecture
US5774481A (en) * 1995-03-31 1998-06-30 International Business Machines Corporation Reduced gate error detection and correction circuit
US5790567A (en) * 1995-08-28 1998-08-04 California Institute Of Technology Parallel processing spacecraft communication system
JP3468657B2 (ja) * 1997-02-21 2003-11-17 松下電器産業株式会社 誤り訂正付遅延検波器
KR100287018B1 (ko) * 1998-08-07 2001-04-16 윤종용 에러 정정 회로를 구비한 반도체 메모리 장치
US6637002B1 (en) * 1998-10-21 2003-10-21 Maxtor Corporation Decoder for error correcting block codes
KR100292788B1 (ko) * 1998-12-31 2001-06-15 장근호 에러검출 및 정정회로
US6738942B1 (en) * 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
JP3752995B2 (ja) * 2000-09-27 2006-03-08 日本ビクター株式会社 情報記録再生装置
US6732325B1 (en) * 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
US20030041300A1 (en) * 2001-08-23 2003-02-27 Koninklijke Philips Electronics N.V. Universal device for processing Reed-Solomon forward error-correction encoded messages
US20030061558A1 (en) * 2001-09-25 2003-03-27 Fackenthal Richard E. Double error correcting code system
KR20040102106A (ko) * 2002-04-18 2004-12-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 신호, 저장매체, 인코딩방법 및 장치, 디코딩방법 및 장치
US7266749B1 (en) * 2002-06-27 2007-09-04 Legend Silicon Corporation Trellis construction based on parity check matrix for BCH code
US7403964B2 (en) * 2002-10-22 2008-07-22 Broadcom Corporation Galois field multiplier array for use within a finite field arithmetic unit
US7278080B2 (en) 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US8832523B2 (en) * 2006-03-03 2014-09-09 Ternarylogic Llc Multi-state symbol error correction in matrix based codes
US7546510B2 (en) * 2003-12-30 2009-06-09 Sandisk Il Ltd. Compact high-speed single-bit error-correction circuit
JP2007013806A (ja) 2005-07-01 2007-01-18 Sony Corp 誤り訂正処理装置
GB2428496A (en) * 2005-07-15 2007-01-31 Global Silicon Ltd Error correction for flash memory
KR20080054412A (ko) * 2005-09-27 2008-06-17 엔엑스피 비 브이 에러 검출/보정 회로 및 방법과, 전자 메모리 소자 또는메모리 모듈
US7810015B2 (en) * 2005-11-28 2010-10-05 Stmicroelectronics Sa Decoding with a concatenated error correcting code
CN100507878C (zh) * 2005-11-30 2009-07-01 株式会社东芝 访问控制设备、方法和存储器访问控制设备、方法
CN101374217B (zh) * 2007-08-22 2010-06-09 联咏科技股份有限公司 具有错误校正装置的数据限幅器
US8316277B2 (en) * 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US8464141B2 (en) * 2008-08-13 2013-06-11 Infineon Technologies Ag Programmable error correction capability for BCH codes
US8639960B2 (en) * 2011-05-27 2014-01-28 Arm Limited Verifying state integrity in state retention circuits

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006318461A (ja) * 2005-05-10 2006-11-24 Hewlett-Packard Development Co Lp 水平及び垂直のエラー訂正符号化(ecc)システム及び方法
JP2009301194A (ja) * 2008-06-11 2009-12-24 Toshiba Corp 半導体記憶装置の制御システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016017736; J. Mathew et al.: 'Fault tolerant bit parallel finite field multipliers using LDPC codes' 2008 IEEE International Symposium on Circuits and Systems , 20080521, pp.1684-1687 *

Also Published As

Publication number Publication date
US20140229786A1 (en) 2014-08-14
US9645886B2 (en) 2017-05-09
JP2017118563A (ja) 2017-06-29
ES2552305T3 (es) 2015-11-27
EP2975522A3 (en) 2016-03-02
GB201114831D0 (en) 2011-10-12
JP6259537B2 (ja) 2018-01-10
KR20140074305A (ko) 2014-06-17
WO2013030528A2 (en) 2013-03-07
CN103890732A (zh) 2014-06-25
WO2013030528A3 (en) 2013-08-29
CA2846292C (en) 2020-10-06
CN103890732B (zh) 2017-08-22
CA2846292A1 (en) 2013-03-07
KR102015148B1 (ko) 2019-08-27
EP2975522A2 (en) 2016-01-20
EP2748707B1 (en) 2015-10-07
EP2748707A2 (en) 2014-07-02

Similar Documents

Publication Publication Date Title
JP6259537B2 (ja) デジタルエラー訂正
Pontarelli et al. Low delay single symbol error correction codes based on reed solomon codes
CN105302740A (zh) 利用扰码器旁通的编码器
Rahman et al. Soft error tolerance using horizontal-vertical-double-bit diagonal parity method
Hamidi et al. Analysis and design of an abft and parity-checking technique in high performance computing systems
Badack et al. Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors
KR101569637B1 (ko) 테스트 신드롬을 이용한 반복 복호 과정이 없는 연판정 bch 복호 방법 및 장치
Khorasani et al. Analyzing area penalty of 32-Bit fault tolerant ALU using BCH code
Gao et al. An efficient fault-tolerance design for integer parallel matrix–vector multiplications
Mădălin et al. Unidirectional error detection, localization and correction for DRAMs: Application to on-line DRAM repair strategies
Dong et al. A universal, low-delay, SEC-DEC-TAEC code for state register protection
Farheen et al. Error Detection and Correction Using RP SEC-DED
US9520899B2 (en) Method for generating a maximized linear correcting code, method and device for decoding such a code
Sundary et al. Multiple error detection and correction over GF (2 m) using novel cross parity code
TWI527383B (zh) A Fast BCH Code Decoding Method
Li et al. A method to design 5-bit burst error correction code against the multiple bit upset (MBU) in memories
KR101226439B1 (ko) 리드-솔로몬 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법
US20160336971A1 (en) Consensus decoding algorithm for generalized reed-solomon codes
Tarrillo et al. Evaluation of a new low cost software level fault tolerance technique to cope with soft errors
Asha et al. Implementation of Sha-3 for Security and Error Detection and Correction Mechanism to Enhance Memory Reliabilty
Kurian et al. Performance comparison of an error correction technique in memory
Neagu et al. Modified berger codes for on-line DRAM repair strategies
REDDY et al. Enhanced Decimal Matrix Code for Detection and Correction of Multiple Cell Upsets in SRAM
Wei et al. An enhanced decoder for multiple-bit error correcting BCH codes
KUMAR et al. Improved Fault Tolerant Mechanism and Area Optimization using DMC

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150709

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160810

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161011