(57)【要約】  エラー訂正回路は、クロック信号を受信可能に構成されたエラー訂正回路であって、第１の入力および第２の入力から第１の出力を生成するように構成された構成要素と、第１の出力と、第１の入力と、第２の入力とに基づいて、第１の出力にエラーが検出されたか否かを示すエラーフラグを生成するように構成されたエラー検出器と、第１の出力と、第１の入力と、第２の入力とに基づいて、タイミングとなる事象から始まる第１の期間後に訂正出力を生成するのに適した訂正生成器と、タイミングとなる事象から始まる第２の期間後にエラー訂正回路の出力を生成するように構成された出力生成器とを有し、エラーフラッグが、第１の出力においてエラーが検出されたことを示しているときに、第２の期間は第１の期間より長くなり、それ以外は、第２の期間は第１の期間と同じか、または、短くなる。エラーフラッグが第１の出力においてエラーが検出されたことを示しているときに、エラー訂正回路の出力は、第１の出力と訂正出力との組み合わせを有することにより第１の出力で検出されたエラーが訂正され、それ以外は、エラー訂正回路の出力が第１の出力に一致する。
2014525705.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号を受信可能に構成されたエラー訂正回路であって、
第１の入力および第２の入力から第１の出力を生成するように構成された構成要素と、
前記第１の出力と、前記第１の入力と、前記第２の入力とに基づいて、第１の出力にエラーが検出されたか否かを示すエラーフラグを生成するように構成されたエラー検出器と、
前記第１の出力と、前記第１の入力と、前記第２の入力とに基づいて、クロック信号のタイミングとなる事象から始まる第１の期間後に訂正出力を生成するのに適した訂正生成器と、
前記クロック信号のタイミングとなる事象から始まる第２の期間後にエラー訂正回路の出力を生成するように構成された出力生成器とを有し、
前記エラーフラッグが、前記第１の出力においてエラーが検出されたことを示しているときに、前記第２の期間は前記第１の期間より長くなり、
前記エラーフラッグが、前記第１の出力においてエラーが検出されていないことを示しているときに、前記第２の期間は前記第１の期間と同じか、または、短くなり、
前記エラーフラッグが前記第１の出力においてエラーが検出されたことを示しているときに、エラー訂正回路の前記出力は、前記第１の出力と前記訂正出力との組み合わせを有することにより前記第１の出力で検出されたエラーが訂正されるか、または、前記エラーフラッグが前記第１の出力においてエラーが検出されたことを示しているときに、エラー訂正回路の前記出力が前記第１の出力に一致することを特徴とするエラー訂正回路。
【請求項２】
前記出力生成器は、出力を有する出力レジスタを有し、前記出力レジスタの前記出力は、前記エラー訂正回路の前記出力であり、
前記エラーフラグが前記第１の出力にエラーがあることを示しているときに、前記出力生成器は、前記出力レジスタが前記出力を更新するのを遅らせるように構成されることで、前記第２の期間を前記第１の期間より長くさせることを特徴とする請求項１に記載のエラー訂正回路。
【請求項３】
前記出力生成器は、前記クロック信号と、前記エラーフラグとに基づいてゲートクロックを生成するように構成されている出力可能化要素を有し、
前記エラーフラグが前記第１の出力にエラーが検出されたことを示しているときに、前記出力レジスタは自身に入力されたクロックにおいて、前記ゲートクロックを受信することで前記出力レジスタがその出力の更新を遅らせることを特徴とする請求項１または２に記載のエラー訂正回路。
【請求項４】
チェックビット生成器をさらに有し、
前記チェックビット生成器は、前記第１の入力と前記第２の入力とに基づいて、少なくとも１つのチェックビットを生成するように構成され、
前記エラー検出器と、前記訂正生成器とは、それぞれ、前記第１の出力と、前記少なくとも１つのチェックビットとに基づいて、前記エラーフラグと、前記訂正出力とを生成するように構成されていることを特徴とする請求項１乃至３の何れか１項に記載のエラー訂正回路。
【請求項５】
前記エラー検出器は、前記第１の出力と前記少なくとも１つのチェックビットとに基づいて前記エラーフラグを生成するように構成され、
前記エラーフラグは、前記エラー検出器が、前記エラー検出器が検出可能な複数の異なったエラーのうちから任意の１つのエラーを検出したかどうかを示し、
前記複数の異なったエラーは、前記第１の出力に含まれるエラーと、前記少なくとも１つのチェックビットに含まれるエラーとを有することを特徴とする請求項４に記載のエラー訂正回路。
【請求項６】
前記訂正生成器は、前記第１の出力と前記少なくとも１つのチェックビットとに基づいて、前記訂正出力を生成するのに適しており、前記訂正出力は、複数の異なるエラーのうち任意の１つのエラーを訂正するのに適しており、
前記複数の異なったエラーは、前記第１の出力に含まれるエラーと、前記少なくとも１つのチェックビットに含まれるエラーとを有することを特徴とする請求項４または５に記載のエラー訂正回路。
【請求項７】
前記チェックビット生成器は、前記第１の出力を個別に生成することなく、前記第１の入力と前記第２の入力とから、直接的に前記少なくとも１つのチェックビットを生成するように構成されていることを特徴とする請求項４乃至６の何れか１項に記載のエラー訂正回路。
【請求項８】
前記訂正生成器は、エラー位置決め多項式を生成し、前記エラー位置決め多項式の根を求めることにより前記訂正出力を生成し、
前記訂正生成器は前記第１の出力に対応した根のみを求めることを特徴とする請求項１乃至７の何れか１項に記載のエラー訂正回路。
【請求項９】
前記出力を生成するように構成された前記構成要素は、前記第１の入力と前記第２の入力とに算術演算を施すことによって前記第１の出力を生成するように構成されていることを特徴とする請求項１乃至８の何れか１項に記載のエラー訂正回路。
【請求項１０】
前記算術演算は、ガロア体GF(2k)における乗算といった有限体の算術演算である請求項９に記載のエラー訂正回路。
【請求項１１】
図３から図６を参照して記載されるエラー訂正回路に相当するエラー訂正回路。
【請求項１２】
第１の入力と、第２の入力とから第１の出力を生成するように構成された構成要素と、
前記第１の出力と前記第１の入力と前記第２の入力とに基づいて、前記第１の出力のエラーを訂正するために前記第１の出力に結合することが可能な訂正出力を生成するように構成された訂正生成器と、
前記訂正出力と前記第１の出力とを結合し、第１の出力に含まれるエラーが訂正された第２の出力を生成するように構成された結合器とを有するエラー訂正回路。
【請求項１３】
チェックビット生成器をさらに有し、
前記チェックビット生成器は、前記第１の入力と前記第２の入力とに基づいて、少なくとも１つのチェックビットを生成するように構成され、
前記訂正生成器は、前記第１の出力と、前記少なくとも１つのチェックビットとに基づいて、前記訂正出力とを生成するように構成されていることを特徴とする請求項１２に記載のエラー訂正回路。
【請求項１４】
前記チェックビット生成器は、前記第１の出力を個別に生成することなく、前記第１の入力と前記第２の入力とから直接的に前記少なくとも１つのチェックビットを生成するように構成されていることを特徴とする請求項１３に記載のエラー訂正回路。
【請求項１５】
前記エラー検出器は、前記第１の出力と前記少なくとも１つのチェックビットとに基づいて前記エラーフラグを生成するように構成され、
前記エラーフラグは、前記エラー検出器が、前記エラー検出器が検出可能な複数の異なったエラーのうちから任意の１つのエラーを検出したかどうかを示し、
前記複数の異なったエラーは、前記第１の出力に含まれるエラーと、前記少なくとも１つのチェックビットに含まれるエラーとを有することを特徴とする請求項１３または１４に記載のエラー訂正回路。
【請求項１６】
前記訂正生成器は、前記第１の出力と前記少なくとも１つのチェックビットとに基づいて、前記訂正出力を生成するのに適しており、前記訂正出力は、複数の異なるエラーのうち任意の１つのエラーを訂正するのに適しており、
前記複数の異なったエラーは、前記第１の出力に含まれるエラーと、前記少なくとも１つのチェックビットに含まれるエラーとを有することを特徴とする請求項１３乃至１５の何れか１項に記載のエラー訂正回路。
【請求項１７】
前記訂正生成器は、エラー位置決め多項式を生成し、前記エラー位置決め多項式の根を求めることにより前記訂正出力を生成し、
前記訂正生成器は前記第１の出力に対応した根のみを求めることを特徴とする請求項１２乃至１６の何れか１項に記載のエラー訂正回路。
【請求項１８】
前記出力を生成するように構成された前記構成要素は、前記第１の入力と前記第２の入力とに算術演算を施すことによって前記第１の出力を生成するように構成されていることを特徴とする請求項１２乃至１７の何れか１項に記載のエラー訂正回路。
【請求項１９】
前記算術演算は、ガロア体GF(2k)における乗算といった有限体の算術演算である請求項１８に記載のエラー訂正回路。
【請求項２０】
前記出力は、複数のビットを有し、
前記訂正生成器は、前記出力ビットを第１のグループの組に割当て、前記第１のグループの組の各グループに第１のエラー検出ステップを実行し、前記出力ビットを第２のグループの組に割り当て、前記第２のグループの組の各グループに第２のエラー検出ステップを実行し、エラーの位置を特定するエラー位置ステップを実行するために前記第１のエラー検出ステップと前記第２のエラー検出ステップとの結果を使用するように構成されることを特徴とする請求項１乃至１９の何れか１項に記載のエラー訂正回路。
【請求項２１】
複数の出力ビットを有するシステム出力を受信し、
前記複数の出力ビットを第１のグループの組に割当て、前記第１のグループの組の各グループに第１のエラー検出ステップを実行し、
前記複数の出力ビットを第２のグループの組に割り当て、前記第２のグループの組の各グループに第２のエラー検出ステップを実行し、
エラーの位置を特定するエラー位置ステップを実行するために前記第１のエラー検出ステップと前記第２のエラー検出ステップとの結果を使用し、
前記受信した出力と、前記エラー位置ステップの前記結果とから、訂正された出力を生成するように構成されることを特徴とするエラー訂正回路。
【請求項２２】
各出力ビットは、前記第１のグループの組の１つのグループと、前記第２のグループの組の１つのグループとの要素であることを特徴とする請求項２０または２１に記載のエラー訂正回路。
【請求項２３】
前記第１のグループの組と前記第２のグループの組とは、前記出力ビットの各ビットに対して、前記各ビットが要素となっている第１のグループの組のグループを特定すること、および、前記各ビットが要素となっている第２のグループの組のグループを特定すること、によって出力ビットを一意的に特定するように構成されていることを特徴とする請求項２０乃至２２の何れか１項に記載のエラー訂正回路。
【請求項２４】
割当てサブ回路、第１のエラー検出サブ回路、第２のエラー検出サブ回路、エラー位置サブ回路、訂正サブ回路の少なくとも１つをさらに有することを特徴とする請求項２０乃至２３の何れか１項に記載のエラー訂正回路。
【請求項２５】
前記各エラー検出ステップは、関連するグループのビットエラーの数を特定するように構成されていることを特徴とする請求項２０乃至２４に記載のエラー訂正回路。
【請求項２６】
前記各エラー検出ステップは、関連するグループのエラー検出符号を生成するように構成されていることを特徴とする請求項２０乃至２５の何れか１項に記載のエラー訂正回路。
【請求項２７】
図１、２、または、図３，４を参照して記載されるエラー訂正回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はエラー訂正に関する。本発明は、エラーを起こしても全体に悪影響を及ぼさない回路、例えば、算術演算を行う回路やほかの回路の設計へ応用性がある。本発明のいくつかの側面は、通信やメモリの設計におけるエラー訂正などの他の領域への応用性がある。
【背景技術】
【０００２】
現代のデジタル回路は、ますます、大きくかつ複雑になっており、従って、様々な理由からエラーの影響を受けやすくなっている。例えば、回路のスケールが減少すると、データを表現するために使用される電圧が低くなり、一般にエラーの機会が増大する。例えば、回路が用いられる環境においてエネルギー粒子が回路のビットフリッピングを引き起こした結果、または、単純に製造時のエラーの結果によってエラーが起こりうる。エラーを引き起こすためにエネルギー粒子が意図的に照射されると、例えば、暗号文において、エラーの原因が増大しうる。従って、デジタル回路においてエラーの検出訂正はますます重要になっている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
例えば、ガロア体GF(2ｋ)における算術のような有限体算術は、暗号文を含む多くに利用されている。例えば、暗号文において、耐障害性のある回路が切望されている。これは、回路が暗号文の操作を行っている間に、当該回路に障害を引き起こすことで秘密情報を獲得することが可能になるからである。暗号文において耐障害性のある回路に対して、並列エラー検出（concurrent error detection）と訂正機能を有した有限体乗算回路が提案されている。しかしながら、これらは、非常に大きいか、または、単一のエラー訂正のみを行うかのいずれか一方である傾向がある。
【課題を解決するための手段】
【０００４】
１つの側面において、本発明は、第１の入力と、第２の入力とから第１の出力を生成するように構成された構成要素と、前記第１の出力と前記第１の入力と前記第２の入力とに基づいて、前記第１の出力のエラーを訂正するために前記第１の出力に結合することが可能な訂正出力を生成するように構成された訂正生成器と、前記訂正出力と前記第１の出力とを結合し、第１の出力に含まれるエラーが訂正された第２の出力を生成するように構成された結合器とを有するエラー訂正回路とを提供している。前記訂正生成器は、好ましくは、ＢＣＨ符号を用いて訂正出力を生成するように構成されている。ＢＣＨによる符号と復号とを使用することは、出力を生成する回路の要素における複数のエラーを訂正するたの非常に効果的である。
【０００５】
前記回路は、第１、２の入力といった、少なくとも１つの入力を受信し、構成要素が第１の出力を生成するのと平行して訂正出力をこの入力から生成することが可能であり、前記少なくとも１つの入力が、受信されたときにエラー訂正データを有していないにも関わらず、第１のエラーによって発生したエラーを訂正することが可能である。いくつかの場合には、前記回路は訂正データをオンザフライで生成し、またいくつかの例では、回路は、前記少なくとも１つの入力を構成要素から受信したのと同じクロック周期において第１の結果を訂正することができる。
【０００６】
また、前記回路は、チェックビット生成器をさらに有し、前記チェックビット生成器は、前記第１の入力と前記第２の入力とに基づいて、少なくとも１つのチェックビットを生成するように構成され、前記訂正生成器は、前記第１の出力と、前記少なくとも１つのチェックビットとに基づいて、前記訂正出力とを生成するように構成されている。
【０００７】
また、前記チェックビット生成器は、前記第１の出力を個別に生成することなく、前記第１の入力と前記第２の入力とから直接的に前記少なくとも１つのチェックビットを生成するように構成されている。
【０００８】
また、前記エラー検出器は、前記第１の出力と前記少なくとも１つのチェックビットとに基づいて前記エラーフラグを生成するように構成され、前記エラーフラグは、前記エラー検出器が、前記エラー検出器が検出可能な複数の異なったエラーのうちから任意の１つのエラーを検出したかどうかを示し、前記複数の異なったエラーは、前記第１の出力に含まれるエラーと、前記少なくとも１つのチェックビットに含まれるエラーとを有する。
【０００９】
また、前記訂正生成器は、前記第１の出力と前記少なくとも１つのチェックビットとに基づいて、前記訂正出力を生成するのに適しており、前記訂正出力は、複数の異なるエラーのうち任意の１つのエラーを訂正するように適しており、前記複数の異なったエラーは、前記第１の出力に含まれるエラーと、前記少なくとも１つのチェックビットに含まれるエラーとを有する。
【００１０】
また、前記訂正生成器は、エラー位置決め多項式を生成し、前記エラー位置決め多項式の根を求めることにより前記訂正出力を生成し、前記訂正生成器は前記第１の出力に対応した根のみを求める。これにより、訂正生成器のサイズを著しく最小化することができる。
【００１１】
また、前記出力を生成するように構成された前記構成要素は、前記第１の入力と前記第２の入力とに算術演算を施すことによって前記第１の出力を生成するように構成されている。
【００１２】
また、前記算術演算は、ガロア体GF(2k)における乗算といった有限体の算術演算である。
【００１３】
別の側面において、本発明が提供するエラー訂正回路は、クロック信号を受信可能に構成されたエラー訂正回路であって、第１の入力および第２の入力から第１の出力を生成するように構成された構成要素と、前記第１の出力と、前記第１の入力と、前記第２の入力とに基づいて、第１の出力にエラーが検出されたか否かを示すエラーフラグを生成するように構成されたエラー検出器と、前記第１の出力と、前記第１の入力と、前記第２の入力とに基づいて、クロック信号のタイミングとなる事象から始まる第１の期間後に訂正出力を生成するのに適した訂正生成器と、前記クロック信号のタイミングとなる事象から始まる第２の期間後にエラー訂正回路の出力を生成するように構成された出力生成器とを有し、前記エラーフラッグが、前記第１の出力においてエラーが検出されたことを示しているときに、前記第２の期間は前記第１の期間より長くなり、それ以外は、前記第２の期間は前記第１の期間と同じか、または、短くなる。前記エラーフラッグが前記第１の出力においてエラーが検出されたことを示しているときに、エラー訂正回路の前記出力は、前記第１の出力と前記訂正出力との組み合わせを有することにより前記第１の出力で検出されたエラーが訂正され、それ以外は、エラー訂正回路の前記出力が前記第１の出力に一致する。
【００１４】
本発明の上記の側面による回路は、エラー耐性のある回路設計のみならず、通信やメモリ、その他に適応される。これらは、暗号文や、通信、メモリシステムなどにおいて、データが処理される割合を増加するために用いられることができる。
【００１５】
また、前記出力生成器は、出力を有する出力レジスタを有し、前記出力レジスタの前記出力は、前記エラー訂正回路の前記出力であり、前記エラーフラグが前記第１の出力にエラーがあることを示しているときに、前記出力生成器は、前記出力レジスタが前記出力を更新するのを遅らせるように構成されることで、前記第２の期間を前記第１の期間より長くさせる。
【００１６】
また、前記出力生成器は、前記クロック信号と、前記エラーフラグとに基づいてゲートクロックを生成するように構成されている出力可能化要素を有し、前記エラーフラグが前記第１の出力にエラーが検出されたことを示しているときに、前記出力レジスタは自身に入力されたクロックにおいて、前記ゲートクロックを受信することで前記出力レジスタがその出力の更新を禁止させる。
【００１７】
例えば、受信したクロック信号は、第２の期間より短い一定の期間を有していても良い。第１の出力にエラーが検出されるまで、ゲートクロックは、受信したクロック信号と略同じ周期であり、この時点において、訂正生成器が適切な訂正出力を生成するために、ゲートクロックの少なくとも１回の周期が延長される。
【００１８】
また、前記回路は、チェックビット生成器をさらに有し、前記チェックビット生成器は、前記第１の入力と前記第２の入力とに基づいて、少なくとも１つのチェックビットを生成するように構成され、前記エラー検出器と、前記訂正生成器とは、それぞれ、前記第１の出力と、前記少なくとも１つのチェックビットとに基づいて、前記エラーフラグと、前記訂正出力とを生成するように構成されている。
【００１９】
また、前記エラー検出器は、前記第１の出力と前記少なくとも１つのチェックビットとに基づいて前記エラーフラグを生成するように構成され、前記エラーフラグは、前記エラー検出器が、前記エラー検出器が検出可能な複数の異なったエラーのうちから任意の１つのエラーを検出したかどうかを示し、前記複数の異なったエラーは、前記第１の出力に含まれるエラーと、前記少なくとも１つのチェックビットに含まれるエラーとを有する。
【００２０】
従来の技術と比較して、チェックビット生成器のエラーがよりよく検出される。
【００２１】
前記訂正生成器は、前記第１の出力と前記少なくとも１つのチェックビットとに基づいて、前記訂正出力を生成するのに適しており、前記訂正出力は、複数の異なるエラーのうち任意の１つのエラーを訂正するのに適しており、前記複数の異なったエラーは、前記第１の出力に含まれるエラーと、前記少なくとも１つのチェックビットに含まれるエラーとを有する。
【００２２】
従来の技術と比較して、チェックビット生成器のエラーがよりよく検出される。
【００２３】
また、前記チェックビット生成器は、前記第１の出力を個別に生成することなく、前記第１の入力と前記第２の入力とから、直接的に前記少なくとも１つのチェックビットを生成するように構成されている。
【００２４】
また、前記訂正生成器は、エラー位置決め多項式を生成し、前記エラー位置決め多項式の根を求めることにより前記訂正出力を生成し、前記訂正生成器は前記第１の出力に対応した根のみを求める。
【００２５】
また、前記出力を生成するように構成された前記構成要素は、前記第１の入力と前記第２の入力とに算術演算を施すことによって前記第１の出力を生成するように構成されている。
【００２６】
また、前記算術演算は、ガロア体GF(2k)における乗算といった有限体の算術演算である。
【００２７】
本発明の前記第１、２の側面において、前記出力は、複数のビットを有し、前記訂正生成器は、前記出力ビットを第１のグループの組に割当て、前記第１のグループの組の各グループに第１のエラー検出ステップを実行し、前記出力ビットを第２のグループの組に割り当て、前記第２のグループの組の各グループに第２のエラー検出ステップを実行し、エラーの位置を特定するエラー位置ステップを実行するために前記第１のエラー検出ステップと前記第２のエラー検出ステップとの結果を使用するように構成される。
【００２８】
さらなる側面において、本発明は、複数の出力ビットを有するシステム出力を受信し、前記複数の出力ビットを第１のグループの組に割当て、前記第１のグループの組の各グループに第１のエラー検出ステップを実行し、前記複数の出力ビットを第２のグループの組に割り当て、前記第２のグループの組の各グループに第２のエラー検出ステップを実行し、エラーの位置を特定するエラー位置ステップを実行するために前記第１のエラー検出ステップと前記第２のエラー検出ステップとの結果を使用し、前記受信した出力と、前記エラー位置ステップの前記結果とから、訂正された出力を生成するように構成されることを特徴とするエラー訂正回路を提供している。
【００２９】
本発明のかかる側面によるいくつかの回路において、エラー訂正が効果的な方法で実行可能であり、比較的多い数のエラーを訂正することができるので、比較的少ないスペースのオーバーヘッドを有する回路でエラー訂正を実行することができる。
【００３０】
また、前記第１のグループの組と前記第２のグループの組とは、前記出力ビットの各ビットに対して、前記各ビットが要素となっている第１のグループの組のグループを特定すること、および、前記各ビットが要素となっている第２のグループの組のグループを特定すること、によって出力ビットを一意的に特定するように構成されている。
【００３１】
例えば、出力ビットが、列と行とからなる長方形のテーブルに配列されるときには、第１のグループの組は行を有し、第２のグループの組は列を有してよく、また、その逆でも良い。しかし、当然のことながら、出力のビットは、何れかの順番でテーブル内に配置される。
【００３２】
前記回路は各ステップを実行するサブ回路を有するように構成されている。例えば、前記回路は、割当サブ回路、第１のエラー検出サブ回路、第２のエラー検出サブ回路、エラー位置サブ回路、訂正サブ回路の少なくとも１つを含んでいても良い。
【００３３】
エラー検出ステップ、または、エラー検出回路は、関連するグループのエラーの数を決定するように構成されている。例えば、エラー検出ステップ、または、エラー検出回路は、各グループに対して、パリティ符号のようなエラー検出符号を生成するように構成されている。
【００３４】
第１の組におけるグループは全て同じサイズであっても良く、または、異なったサイズであっても良い。第２の組におけるグループは全て同じサイズであっても良く、または、異なったサイズであっても良い。第１の組におけるグループのサイズは、第２の組におけるグループと同じサイズか、または、異なるサイズであっても良い。
【００３５】
前記システムは、乗算器のような機能的な回路であってもよい。この場合には、出力は少なくとも１つの入力に実行された機能の結果となる。別の場合には、システムは、通信が伝達されるチャネルであっても良い。この場合には、出力は、前記チャネルから受信された通信であっても良い。別の場合には、システムはメモリ回路であっても良い。この場合には、出力はメモリ回路から読み出されたデータであっても良い。
【００３６】
前記回路はさらに、以下に説明する図面とともに、ほんの一例として示す本発明の実施の形態の少なくとも１つにおける少なくとも１つの機能の任意の組合わせを有していても良い。
【図面の簡単な説明】
【００３７】
【図１】第１の実施の形態における、有限体乗算を行い、並列エラー検出を行う能力を有する回路の概略ブロック図。
【図２】訂正生成ブロックの構成要素を示す概略ブロック図。
【図３】第２の実施の形態における、有限体乗算を行い、並列エラー検出を行う能力を有する回路の概略ブロック図。
【図４】図３のエラー検出サブ回路の構成要件を示す概略ブロック図。
【図５】図３の回路における、異なる構成要件を経ることによる各伝搬遅延を表すいくつかの時間期間を示す時間記録。
【図６】図３の回路におけるいくつかの信号を示すタイミング図。
【図７】本発明の第３の実施の形態におけるエラー訂正回路の概略ブロック図。
【図８】図７の回路で生成されたチェックビットを示す表。
【図９】図７の回路で訂正されるエラーの組合わせのいくつかの例を示す表。
【図１０】図７の実施の形態の変形例における、訂正可能なエラーの組合わせのいくつかの例を示す表。
【図１１】さらなる実施の形態におけるにおける、訂正可能なエラーの組合わせのいくつかの例を示す表。
【図１２】１８０ｎｍおよび１９０ｎｍの技術を用いた異なるサイズの乗算回路の面積を示すグラフ。
【図１３】ビットのテーブルにおける各列の乗算エラーを訂正するための、ハミングコードを用いた１８０ｎｍおよび９０ｎｍの技術を用いた異なるサイズの乗算器のエラー検出および訂正回路の面積を示すグラフ。
【図１４】ＢＣＨ符号を用い、かつ、１８０ｎｍおよび９０ｎｍの技術を用いた異なるサイズの乗算器のためのエラー検出および訂正回路の面積を示すグラフ
【図１５】図１３のエラー検出および訂正を有する乗算回路の消費電力を示した図。
【図１６】図１４のエラー検出および訂正を有する乗算回路の消費電力を示した図。
【発明を実施するための最良の形態】
【００３８】
本発明の第１の実施の形態において、図１を参照すると、回路１００は、パラレル入力１０５ａ、１０５ｂおよびパラレル出力１０５ｃと共に、有限体乗算サブ回路１０５を有している。有限体乗算サブ回路１０５は積Ｃを出力１０５ｃにおいて生成するように構成されている。積Ｃは、ガロア体GF(2k)上において、２つのパラレル入力１０５ａ、１０５ｂで受け取った２つの演算対象Ａ、Ｂを掛け合わせたことの結果である。ここで、２つの演算対象はガロア体GF(2k)の要素である。２つのパラレル入力１０５ａ、１０５ｂ、及び、パラレル出力１０５ｃは、ｋビットの幅を持つ、即ち、ｋビットからなる。
【００３９】
別の実施の形態において、有限体乗算サブ回路１０５は、逆数演算（multiplicative inversion）、または、指数（例えば、二乗）演算のようなほかの有限体算術を実行する回路に置き換えてもよい。いくつかの実施の形態において、有限乗算サブ回路１０５は、例えば、２の補数の２進演算といった有限体算術以外の算術を行う回路に置き換えても良い。
【００４０】
第１の実施の形態において、回路１００は、ｋビットのパラレル入力１１０ａ、１１０ｂおよびｎ−ｋビットのパラレル出力１１０ｃと共にチェックビット生成器１１０を備える。ｎ−ｋビットのパラレル出力１１０ｃはいくつかの実施の形態においてシングルビットの出力である。
【００４１】
チェックビット生成器１１０は、乗算サブ回路１０５と同様に、２つの演算対象Ａ、Ｂを受信し、パラレル出力１１０ｃにおいてパリティワード（parity word）Ｐを生成する。いくつかの実施の形態において、パリティワードＰはパリティビットに置き換えても良い。
【００４２】
チェックビット生成器１１０は、パラレル出力１１０ｃにおいてパリティワードＰを生成する論理回路を有する。パリティワードＰは、２つのパラレル入力１１０ａ、１１０ｂで受信した２つの演算対象Ａ、Ｂに対して実行される有限体乗算とＢＣＨ符号化の組合わせによって生成される。チェックビット生成器１１０の論理回路は、まず乗算結果を生成し、その乗算結果からパリティワードＰを生成するよりむしろ、演算対象Ａ、Ｂから直接パリティワードＰが生成されるように構成されている。この構成は発明者がより効果的（例えば、遅延が少なく、かつ／または、論理ゲートが少ない）であることを見出している。チェックビット生成器１１０は、積Ｃに対応する乗算結果を出力しない。
【００４３】
この実施の形態において、チェックビット生成器１１０の論理は、ガロア体GF(2k)において積を定義する従来の式を（有限体乗算サブ回路１０５で行われる乗算と同じ種類の乗算である）、２進(n,k,t)ＢＣＨ符号のパリティビットを定義する従来の式に代入することにより導かれる。ここで、kは、例えば、２つの演算対象Ａ、Ｂや積Ｃのそれぞれに対応する「メッセージ」のビット数である。tは、回路１００が常に訂正することのできるエラー（それがどこで起ころうとも）の数（より多い数のエラーが訂正されうるが、しかしすべての場合においてではない）。n-kは、パリティワードＰのビット数である。
【００４４】
回路１００は、２つの入力１１５ａ、１１５ｂ、および、出力１１５ｃと共に訂正生成器１１５を有する。２つの出力１１５ａ、１１５ｂは、それぞれ、乗算サブ回路１０５の出力１０５ｃと、チェックビット生成器１１０の出力１１０ｃと、幅を同じくして接続されている。出力１１５ｃはｋビットのパラレル出力である。
【００４５】
訂正生成器１１５は、積ＣとパリティワードＰとを２つの入力１１５ａ、１１５ｂで受信し、訂正値Ｅを出力１１５Ｃで生成するように構成されている。本実施の形態において、訂正生成器１１５は、後ほど図２を参照して詳述するように、積ＣとパリティワードＰに対してＢＣＨ複合化を行うことにより訂正値Ｅを生成する論理回路を有している。
【００４６】
回路１００は、さらに、２つのｋビットパラレル入力１２０ａ、１２０ｂと、ｋビットパラレル出力１２０ｃと共に結合サブ回路１２０を有する。パラレル入力１２０ａ、１２０ｂは、それぞれ、乗算サブ回路１０５の出力１０５ｃと、訂正生成器１１５の出力１１５ｃとに接続されている。
【００４７】
結合サブ回路１２０は、積Ｃと訂正値Ｅとを受信し、パラレル出力１２０ｃにおいて訂正された積Ｃ´を生成するように構成されている。本実施の形態において、結合サブ回路１２０は、不図示の複数のＸＯＲゲートより構成されている。ＸＯＲゲートのそれぞれが、パラレル出力１２０ｃにおける各ビットに対応する。積Ｃの各ビットは、ＸＯＲゲートの対応する１つによって実行される排他的論路和演算によって訂正値Ｅの対応するビットに結合される。これにより、積Ｃのエラービットが反転され、訂正された積Ｃ´が得られ、積Ｃのエラービットが訂正される。ここで、積Ｃのエラービットの反転とは、論理値０は論理値１に反転されること、あるいは、その逆である。
【００４８】
図２に示すように、訂正生成器１１５は、シンドローム生成器（syndrome generator）１２５と、エラー位置決め器（error locator）１３０とを有する。訂正生成器１１５は、自身の出力１１５ｃにおいて、ｋビットの訂正値Ｅを生成する。図２において、訂正値Ｅはek-1,…,e0のように個別に示されている。
【００４９】
シンドローム生成器１２５は２つの入力１２５ａ、１２５ｂとｔビット幅のパラレル出力１２５ｃとを有する。２つの入力１２５ａ、１２５ｂは、訂正生成器１１５の２つのパラレル入力１１５ａ、１１５ｂと、そのビット幅を同じにして接続されている。シンドローム生成器１２５は、積ＣとパリティワードＰを受信し、出力１２５ｃにおいて、エラー位置多項式St,…,S1を生成する。シンドローム生成器１２５は、良く知られたPeterson-Gorenstein-Zierlerアルゴリズムを用いて、エラー位置多項式St,…,S1を生成する。しかし、当業者に明らかな、エラー位置多項式St,…,S1を生成するのに適した他の方法が、別の実施の形態で用いられても良い。
【００５０】
エラー位置決め器１３０は、ｔビット幅のパラレル入力１３０ａと、ｋビット幅のパラレル出力１３０ｃとを有している。パラレル出力１３０ａは、シンドローム生成器１２５の出力と接続され、パラレル出力１３０ｃは訂正生成器１１５の出力１１５ｃと接続されている。
【００５１】
エラー位置決め器１３０は、エラー位置多項式St,…,S1を受信し、ｋ個のエラーロケータ（locator）ek-1,…,e0からなる訂正値Ｅを出力１３０ｃにおいて生成する。本実施の形態では、エラーロケータは、良く知られたChien検出アルゴリズムを用いて、エラー位置多項式St,…,S1の根（roots）を求めることにより生成される。本実施の形態では、パリティワードＰの訂正は要求されていない。このため、エラー位置決め器１３０は、パリティワードＰに対応する根（roots）を求めない。これによって、パリティワードＰに対応した根を求めることが要求された場合と比較して、エラー位置決め器１３０の論理回路の量を減少することができる。別の実施の形態では、エラーロケータ１３０はパリティワードＰに対応する根を求めても良い。このような実施の形態において、訂正生成器の出力は、ｔ＋ｋビット幅であっても良く、エラー訂正器は複数の異なったエラーの任意の一つを訂正するのに適した訂正値を出力において生成するように構成されていてもよい。ここで、複数の異なったエラーは、パリティワードのエラーや積のエラーを含む。
【００５２】
図３を参照すると、本発明の第２の実施の形態において、回路２００は、有限体乗算サブ回路２０５と、チェックビット生成器２１０と、訂正生成器２１５と、結合サブ回路２２０とを有している。これらの各構成要素は第１の実施の形態の対応する（名前の同じ）構成要素と略同一である。乗算サブ回路２０５と、チェックビット生成器２１０と、訂正生成器２１５とは、第１の実施の形態と同じ方法で接続されており、これらの構成要素に関してはこれ以上述べる必要はない。
【００５３】
回路２００は、さらに、エラー検出サブ回路２５０と、ビットマスクサブ回路２５５と、出力可能化回路２６０と、出力レジスタ２６５とを有している。
【００５４】
エラー検出サブ回路２５０は、２つの入力２５０ａ、２５０ｂと、１ビット出力２５０ｃとを有している。２つの入力２５０ａ、２５０ｂは、それぞれ、乗算サブ回路２０５の出力２０５ｃと、チェックビット生成器２１０の出力２１０ｃと、幅を同じくして、接続されている。エラー検出サブ回路２５０は、積Ｃのエラーを検出し、パリティワードＰのエラーを検出し、これらのエラーが個別に起こったか、あるいは、一緒に起こったかを検出する。これにより、エラー検出サブ回路２５０は、複数の異なるエラーの少なくとも一つを検出することができる。
【００５５】
エラー検出サブ回路２５０は、チェックビット生成器２１０と接続されているため、２つの演算対象Ａ、Ｂから直接チェックビットを生成する必要はない。これは、エラー検出サブ回路２５０と、訂正生成器２１５との有利なリソース共有とみなせるだろう。これは、共通するモジュール（チェックビット生成器２１０）が両者のためにパリティワードＰを生成するのに用いられているからであり、それぞれが２つの演算対象Ａ、Ｂから直接にパリティワードＰを導出するための論理回路を有しているのではないからである。
【００５６】
図４に示すように、エラー検出サブ回路２５０は、チェックビット生成モジュール２５１と比較モジュール２５２とを有している。
【００５７】
チェックビット生成モジュール２５１は、ｋビットパラレル入力２５１ａと、ｎ−ｋビット幅のパラレル出力２５１ｃとを執している。パラレル入力２５１ａは、エラー検出サブ回路２５０の１つ目のパラレル入力２５０ａ接続されている。
【００５８】
チェックビット生成モジュール２５１は、積Ｃを受信し、その出力２５１ｃにおいて追加パリティワードＰ´を生成するように構成されている。追加パリティワードＰ´は、チェックビット生成器２１０によってパリティワードＰを生成するのに用いられるＢＣＨ符号化に対応する方法で生成される。従って、パリティワードＰにエラーが無く、積Ｃにエラーが無い場合には、追加パリティワードＰ´は、パリティワードＰと等しくなる。
【００５９】
比較モジュール２５２は２つの入力２５２ａ、２５２ｂと、１ビットの出力２５２ｃとを有している。出力２５２ｃは、エラー検出サブ回路２５０の出力２５０ｃと接続されている。２つの入力２５２ａ、２５２ｂは、それぞれ、チェックビット生成モジュール２５１の出力２５１ｃと、エラー検出サブ回路２５０の２つ目の入力２５０ｂとに、それらと幅を同じくして接続されている。
【００６０】
比較モジュール２５２は、追加パリティワードＰ´とパリティワードＰとを受信し、エラーフラグＦをその出力２５２ｃにおいて生成する。エラーフラグＦは、複数のエラーのうちのいずれか一つが検出されたかを示している。ここで、複数のエラーは、積Ｃのエラーと、パリティワードＰのエラーとを含む。
【００６１】
ほかの構成も可能であるが、本実施の形態において、比較モジュール２５２は、排他的論理和モジュール２５３と、評価モジュール２５４とからなる。
【００６２】
排他的論理和モジュール２５３は、それぞれｎ−ｋビット幅を有する２つのパラレル入力２５３ａ、２５３ｂと、同じ幅のパラレル出力２５３ｃとを有している。パラレル入力２５３ａ、２５３ｂは、それぞれ、チェックビット生成モジュール２５１の出力２５１ｃとエラー検出サブ回路２５０のパラレル入力２５０ｂの２つ目と接続されている。
【００６３】
排他的論理和モジュール２５３は、パリティワードＰと追加パリティワードＰ´とを受信し、その出力２５３ｃにおいて、パリティワードＰ、Ｐ´に対してビット単位の排他的論理和演算を実行することによって第３パリティワードＰ″を出力するように構成されている。
【００６４】
評価モジュール２５４は、ｎ−ｋビット幅のパラレル入力２５４ａと、１ビット出力２５４ｃとを有する。パラレル入力２５４ａは、排他的論理和モジュール２５３のパラレル出力２５３ｃと接続されている。出力２５４ｃは比較モジュール２５２の出力２５２ｃと接続されている。
【００６５】
評価モジュール２５４は第３のパリティワードＰ″を受信し、そのすべてのビットが論理値０であるかを判定する評価を行い、その出力２５４ｃにおいてエラーフラグＦを出力する。第３のパリティワードＰ″の全てのビットがゼロであれば、評価モジュール２５４は、積Ｃ、または、パリティワードＰにエラーが存在しないことを示す論理値１にエラーフラグＦの値を設定する。それ以外の場合には、評価モジュール２５４は、複数のエラーのうちの１つが検出されたことを示す論理値０にエラーフラグＦの値を設定する。
【００６６】
再び図３に戻ると、ビットマスクサブ回路２５５は、２つの入力２５５ａ、２５５と、ｋビットのパラレル出力２５５ｃとを有する。２つの入力２５５ａ、２５５ｂは、それぞれ、エラー検出サブ回路２５０の出力２５０ｃと、訂正生成器２１５の出力２１５ｃとに、幅を同じくして接続されている。
【００６７】
ビットマスクサブ回路２５５はエラーフラグＦと訂正値Ｅとを受信し、出力２５５ｃにおいてマスクされた訂正値Ｅ´を生成するように構成されている。エラーフラグＦが論理値１に設定されているならば（エラーが検出されなかったら）、ビットマスクサブ回路２５５は、マスクされた訂正値Ｅ´の全てのビットを論理値０に設定する。それ以外の場合には、マスクされた訂正値Ｅ´のすべてのビット値を訂正値Ｅの対応するビットと等しくなるように設定する。
【００６８】
当然の効果として、例えば、積Ｃ、または、パリティワードＰにおいてエラーが検出されない場合、ビットマスクサブ回路２５５は訂正値Ｅを出力しない。ほかの適した構成も可能であるが、本実施の形態において、マスクされた訂正値Ｅ´は、訂正値Ｅと、エラーフラグＦの論理反転（即ち、論理値１が論理値０に反転されるか、その逆）とのビット単位の論理積演算の結果として得られる。
【００６９】
結合サブ回路２２０は２つのｋビットパラレル入力２２０ａ、２２０ｂと、ｋビットのパラレル出力２２０ｃとを有している。パラレル入力２２０ａ、２２０ｂは、それぞれ、乗算サブ回路２０５の出力２０５ｃと、ビットマスクサブ回路２５の出力２５５ｃとに接続されている。
【００７０】
結合サブ回路２２０は、マスクされた訂正値Ｅ´と、積Ｃとを受信し、その出力２２０ｃにおいて訂正された積Ｃ´を出力する。ほかの構成も可能であるが、本実施の形態において、結合サブ回路２２０は、図示せぬ複数の排他的論理和ゲートを有し、それぞれは、出力２２０ｃの各ビットに対応する。積Ｃの各ビットは、（対応するＸＯＲゲートによる）排他的論理和演算によって、マスクされた訂正値Ｅ´の対応するビットと結合される。
【００７１】
エラーフラグＦが論理値０に設定されていた場合（即ち、エラーが起こった場合）には、マスクされた訂正値Ｅ´は訂正値Ｅと等しくなる。従って、積Ｃとマスクされた訂正値Ｅ´に実行される排他的論理和演算は、積Ｃのエラービットを訂正された積Ｃ´に訂正させる。
【００７２】
エラーフラグＦが論理値１に設定されていた場合には、訂正された積Ｃ´の値は訂正値Ｃの値と等しくなる。これは、マスクされた訂正値Ｅ´の各ビットが論理値０に設定されるからである。
【００７３】
出力可能化サブ回路２６０は、２つの１ビット入力２６０ａ、２６０ｂと、１ビット出力２６０ｃとを有している。入力２６０ａ、２６０ｂは、回路クロックと、エラー検出サブ回路２５０の出力２５０ｃとに接続されている。
【００７４】
出力可能化サブ回路２６０はエラーフラグＦとクロック信号ＣＬＫとを受信し、出力２６０ｃにおいてゲートクロック信号ＥＣＬＫを生成する。エラーフラグＦが論理値０に設定されていた場合、ゲートクロック信号ＥＣＬＫは論理値０に設定される。本実施の形態において、出力可能化サブ回路２６０は、ＡＮＤゲートからなり、入力２６０ａ、２６０ｂにおいて、エラーフラグＦとクロック信号ＣＬＫを受信し、出力２６０ｃにおいてゲートクロック信号ＥＣＬＫを出力するように構成されている。
【００７５】
出力レジスタ２６５は、ｋビットの入力２６５ａと、クロック入力２６５ｂと、ｋビットの出力２６５ｃとを有する。入力２６５ａは、結合サブ回路２２０の出力２２０ｃに接続され、入力２６５ｂは出力可能化サブ回路２６０の出力２６０ｃと接続されている。
【００７６】
出力レジスタ２６５は、訂正された積Ｃ´と、ゲートクロック信号ＥＣＬＫとを受信し、出力２６５ｃにおいて、ゲートクロック信号ＥＣＬＫのタイミングとなる事象（例えば、立ち上がりエッジ、または、立下りエッジ）に応じて、訂正された積Ｃ´に対応した回路出力Ｃｏｕｔを生成するように構成されている。
【００７７】
図５の時間記録５００を参照すると、１クロック信号ＣＬＫの第１の立ち上がりクロックエッジ（あるいは、立下りエッジのような、クロック信号ＣＬＫの他のタイミングとなる事象）から始まる第１の期間Tdetect経過後、エラー検出サブ回路２５０は、その出力２５０ｃにおいて、エラーフラグＦを生成する。１回目の期間Tdetectが終わる前に、乗算サブ回路２０５は、その出力２０５ｃにおいて積Ｃを出力している。
【００７８】
クロックシグナルＣＬＫは、第１の期間Tdetectより長いクロック周期Tclockを有している。
【００７９】
エラーフラグＦが論理値１に設定されているとき、即ち、積Ｃにエラーが無いとき、出力可能化サブ回路２６０の入力２６０ｂで受信したクロック信号ＣＬＫの立ち上がりエッジ（または、クロックシグナルＣＬＫのそのほかのタイミングとなる事象）によって、論理値１が出力可能化回路２６０の出力２６０ｃにおいて生成される。例えば、上記立ち上がりエッジは、ゲートクロックシグナルＥＣＬＫの立ち上がりエッジ（または、クロックシグナルＣＬＫに対応したタイミングとなる事象に対応する他のタイミングとなる事象）を引き起こす。従って、エラーフラグＦがエラーが検出されていないことを示すとき、出力レジスタ２６５は、その出力２６５ｃにおいて、クロック周期Tclockとおよそ同じ周期後に、積Ｃに対応した回路出力Coutを生成する。
【００８０】
クロック信号ＣＬＫの立ち上がりエッジ（あるいはクロック信号ＣＬＫの何れかのタイミングとなる事象）から始まる第２の期間Tcorrectが経過した後、訂正生成器２１５は、その出力２１５ｃにおいて訂正出力Ｅを生成する。第２の期間Tcorrectは第１の期間Tdetectより長く、かつ、クロック周期Tclockよりも長い。
【００８１】
第１の期間Tdetectが終了したときから始まり、第２の期間Tcorrectが終了した時点で終わる第２の期間Tcorrectの後半に、乗算サブ回路２０５は、その出力２０５ｃにおいて積Ｃを生成するが、訂正生成器２１５は、その出力２１５ｃにおいて、対応する訂正出力Ｅをまだ生成していない。従って、第２の期間Tcorrectが終了するまで、積Ｃの何れのエラーも、訂正された積Ｃ´として訂正されない。それ以前には、訂正生成器２１５が対応する訂正出力Ｅを出力していないからである。
【００８２】
積Ｃにおいて検出されたエラーが訂正された積Ｃ´として訂正されるまで、出力可能化サブ回路２６０は、出力レジスタ２６５が訂正された積Ｃ´に対応する回路出力Coutを生成するのを防止するように構成されている。クロック周期の終了前に、積Ｃにおいて検出されたエラーによって、エラーフラグＦは論理値０に設定され、エラーフラグＦの論理値０によりゲートクロック信号ＥＣＬＫは論理値０に設定される。これにより、クロック信号ＣＬＫの次の立ち上がりエッジ（あるいは、クロック信号ＣＬＫの他のタイミングとなる事象）は、出力可能化サブ回路の出力２６０ｃにおけるゲートクロック信号ＥＣＬＫに伝搬しない。これにより、少なくともクロック信号ＣＬＫの次の立ち上がりエッジ（あるいは、クロック信号ＣＬＫの他のタイミングとなる事象）までは論理値０が維持される。これにより、訂正生成器２１５が、その出力２１５ｃにおいて、訂正値Ｅを生成するのに必要な時間を確保することが可能になる。尚、訂正値Ｅは検出されたエラーを訂正するため積Ｃと結合される。
【００８３】
クロック周期Tclockは第２の期間Tcorrectより短いため、クロック周期Tclockが第２の期間Tcorrectと同じかそれより長い場合に比べて、回路２００は、与えられた期間においてより多い乗算結果を生成することが潜在的に可能である。
【００８４】
当業者であれば、クロック周期Tclockを第２の期間Tcorrectと同じかそれより長くして、任意のクロック周期において積Ｃにおいて検出されたエラーが必要に応じて訂正できるようにすることを考えるだろう。しかしながら、一般に、エラーは相対的にめったに起こるものではない。第２の期間Tcorrectより短いクロック周期Tclockを用いること、および、積Ｃにおいてエラーが検出されたときに（訂正出力Ｅを生成するのに必要な時間を延長するため）出力レジスタ２６５がその出力を更新することを防ぐことにより、与えられた期間により多くの乗算結果を生成することが可能になる。
【００８５】
例として、図６を参照して回路２００の動作を説明する。
【００８６】
初めに、クロック信号ＣＬＫの２周期の間に、回路２００は演算対象Ａ、Ｂ（Ａ１、Ｂ１、およびＡ２、Ｂ２）を受信し、これらより積Ｃの訂正値（Ｃ１およびＣ２）が生成される。この２周期の間、エラー検出サブ回路２５０は、フラグＦを、エラーが検出されないことを示す論理値１に設定する。
【００８７】
積Ｃの値（Ｃ３）にエラーがあると、クロック信号ＣＬＫの３周期目において、このエラーがエラー検出サブ回路２５０によって検出され、フラグＦが論理値０に設定される。フラグＦが論理値０に設定されているため、出力可能化サブ回路２６０は、ゲートクロックｅｃｌｋを論理値０に設定する。
【００８８】
４周期目の開始時である、クロック信号ＣＬＫの次の立ち上がりエッジで、フラグＦは論理値０を維持している。これにより、論理値１へ移行するクロック信号ｃｌｋに応答してゲートクロックｅｃｌｋが論理値１を設定することが防止される。この結果、積Ｃの誤った値（Ｃ３）は、出力レジスタ２６５の出力２６５ｃにおいて生成されない。これによって、訂正生成器２１５が適切な訂正値Ｅを生成する時間が提供される。続いて、第４周期の終了前に、結合回路２２０は、対応するマスクされた訂正値Ｅ´を受信し、このマスクされた訂正値Ｅ´が積Ｃの誤った値（Ｃ３）と結合され、訂正された積Ｃ´が生成される。
【００８９】
クロック信号ｃｌｋの第５周期目において、演算対象Ａ、Ｂの２つの値（Ａ４、Ｂ４）が導入され、訂正値（Ｃ４）を有する積Ｃが生成される。このときには積Ｃにエラーは検出されないため、エラー検出回路２５０はフラグＦを論理値１に設定する。これにより、クロック信号ｃｌｋが論理値１に設定されるときに、ゲートクロックｅｃｌｋが論理値１に変化する。ゲートクロックｅｃｌｋが論理値０から論理値１に変化することにより、出力レジスタ２６５の出力２６５ｃにおいて、訂正された積Ｃ´の値が回路出力Ｃｏｕｔとして生成される。
【００９０】
クロック信号ｃｌｋの６周期目において、積Ｃの訂正された値（Ｃ４）が、回路出力Ｃｏｕｔとして、出力レジスタ２６５の出力２６５ｃに生成される。
【００９１】
図７に示すように、第３の実施の形態におけるエラー訂正回路は、機能ブロックとして、サブ回路３０５を有している。サブ回路３０５は、同じ幅ｍを有する２つのパラレル入力３０５ａ、３０５ｂと、幅ｍの出力３０５ｃとを有する。この機能ブロックは、入力３０５ａ、３０５ｂのそれぞれで演算対象Ａ、Ｂを受信し、これらの演算対象に作用して出力Ｃを生成する。本実施の形態では、作用は乗算であり、機能ブロック３０５は、第１の実施の形態と同じ乗算器である。機能ブロック３０５においてエラーを検出し訂正するために、回路はさらに、パリティ予想サブ回路３１０と、訂正ブロックとしてのサブ回路３１５とを有している。パリティ予想器３１０は、入力として、機能ブロックと同じ幅ｍを有する２つのパラレル入力３１０ａ、３１０ｂと、幅ｋの出力３１０ｃとを有している。パリティ予想器３１０は、その入力において、演算対象Ａ、Ｂを受信し、これらからパリティコードを生成する。このパリティコードは、後述する機能ブロック３０５の出力に実行される符号化ステップの結果として生成されるべきパリティーコードの予想である。訂正ブロック３１５は、機能ブロック３０５の出力３０５ｃと同じ幅ｍの第１の入力３１５ａと、パリティ予想器３１０からの出力と同じ幅ｍの第２の入力３１５ｂと、機能ブロック３０５の出力３０５ｃと同じ幅ｍの出力３１５ｃとを有する。訂正ブロック３１５は、その第１の入力３１５ａにおいて、機能ブロック３０５から出力された結果Ｃを受信し、結果Ｃからパリティコードを生成するように構成されている。パリティ予想器３１０は、エラーが無かった場合に、任意の演算結果Ａ、Ｂに対して自信が生成する予想されたパリティコードが、訂正ブロックにおいて生成されるものと同じになるように構成されている。訂正ブロックは、パリティ予想器３１０から受け取ったパリティコードと、自身が結果Ｃから生成したパリティコードとを比較し、結果Ｃのエラーを検出しその位置を決め、エラーを訂正する。これにより訂正された出力Ｃ´が生成される。
【００９２】
図８を参照して、機能ブロックで生成され、訂正ブロック３１５へ出力され、パリティ予想器３１０で予想されるパリティコードについて説明する。この実施の形態では、機能ブロックから出力される結果Ｃは、Ｃ０からＣ１９までの２０ビットの出力コードである。一般的に、パリティコードは、結果のビットＣ０からＣ１９を、第１のグループの組（この場合には５ビットの４つの行）に分割し、各グループ（即ち、各行）のパリティコードを生成する。さらに、前記結果のビットを第２のグループの組（この場合には、４ビットの５つの列）に分割し、各グループ（各列）のパリティコードを生成する。各グループのパリティコードは、ハミング符号やＢＣＨ符号などの、グループのエラーの数を決定するのに使用可能なものであって、しかし、グループにおけるエラーの位置を決定するのに使用されない適切な方法で生成することができる。パリティ予想器より出力されるパリティコードは複数のパリティコードの組である。ここで、この複数のパリティコードのそれぞれは、訂正ブロック３１５のビットに配置された複数のグループの１つに対して生成されたパリティコードの１つと対応する。訂正ブロック３１５において出力Ｃから生成されたパリティコードとパリティ予想器３１０で生成されたパリティコードとを比較することにより、訂正ブロック３１５は、第１のグループの組（各行）におけるエラーの数と、第２のグループの組（各列）のエラーの数とを決めることが可能である。これらの数から、エラーの数が極めて多くない限り、エラーの厳密な場所を特定することができる。これは、１つの行と、１つの列との任意の組合わせは、出力における１つのビットを一意に特定するからである。エラーの位置が特定されると、訂正ブロックはそれらのエラーを訂正し、訂正された出力Ｃ´を生成する。
【００９３】
当然のことながら、訂正ブロックは、上記の各ステップを実行するように構成された個別のサブ回路を有していてもよい。本実施の形態では、訂正ブロックは、第１の割当てサブ回路３１５ｄと、第２の割当てサブ回路３１５ｅと、第１のパリティコード生成サブ回路３１５ｆと、第２のパリティコード生成サブ回路３１５ｇと、第１のエラー検出サブ回路３１５ｈと、第２のエラー検出サブ回路３１５ｉと、エラー位置サブ回路３１５ｊと、エラー訂正サブ回路３１５ｋとを有している。第１の割当てサブ回路３１５ｄは、出力ビットを第１のグループの組に割り当てるように構成されている。第２の割当てサブ回路３１５ｅは、出力ビットを第２のグループの組に割り当てるように構成されている。第１のパリティコード生成サブ回路３１５ｆは、第１のグループの組の各グループに対するパリティコードを生成するように構成されている。第２のパリティコード生成器３１５ｇは、第２のグループの組の各グループに対するパリティコードを生成するように構成されている。第１のエラー検出サブ回路３１５ｈは、第１のパリティコードの組と、パリティ予想器で生成された対応するコードとを比較し、第１のビットグループの組の各グループにおけるエラーの数を決定するように構成されている。第２のエラー検出サブ回路３１５ｉは、第２のパリティコードの組と、パリティ予想器で生成された対応するコードとを比較し、第２のビットグループの組の各グループにおけるエラーの数を決定するように構成されている。エラー位置回路３１５ｊは、パリティコードの両方の組の比較結果から、出力Ｃにおけるエラーの位置を特定するように構成されている。エラー訂正サブ回路３１５ｋは、出力Ｃを訂正して、訂正された出力Ｃ´を生成するように構成されている。当然のことながら、上記の各機能は回路における個別の専用部分によって実行されていなくともよく、他の実施の形態において、サブ回路は、上記の２以上の機能の組合わせを実行するように構成されていてもよい。
【００９４】
当然のことながら、２つのグループの組は、行および列からなる長方形の表によって容易に視覚化可能であるが、割当てステップは、各ビットを２つのグループに割当てさえすればよい。即ち、１つは第１の組であり、もう一つは第２の組である。例えば、図８に示される割り当てでは、ビットＣ０からＣ１９は、出力において番号順に配置され、初めの５ビットは第１の組の第１のグループ（第１の行に対応）に割り当てられ、続く５ビットのブロックは、第１の組の続くグループに配置される。第１のビットから始まる５ビットおきのビットが第２の組における第１のグループ（第１の列に対応）に割当てられ、第２のビットから始まる５ビットおきのビットが第２のグループに割当てられ、以下同様である。当然のことながら、どのビットがどのグループに割当てられるかは重要ではない。図８のテーブルのフォーマットを考慮すれば、２０ビットは、任意の方法で、テーブルの２０セルに配置されてよく、ビットは行と列とにグループ分けされてよく、出力におけるそれらの位置に規則的な関係がなくともよい。
【００９５】
本実施の形態では、各列の二重エラーを検出可能な単純なハミング符号や、各列の６つのエラーを検出するＢＣＨ符号を用いて、パリティコードは生成された。列と行とを単位としたパリティ符号の符号化をよりよく理解するため、機能ブロックの例となる２０ビットのパラレル有限体乗算器を考慮しつつ、訂正ブロック３１５で実行されたようなパリティ符号化の手順を、一つの例となる回路と共に、より詳細に説明する。
ハミングコードパリティを用いたエラー検出
【００９６】
２０ビットは、４つ行と５つの列とからなる図８の表に配置される。出力Ｃの２０ビットはＣ０からＣ１９の順に特定され、図８の表のように配置される。行はハミング符号、とくに各行はHam(9,5)符号によって符号化される。言い換えれば、１つの行において、二重エラー（即ち、２ビットまでのエラー）を検出するために４ビットのパリティが必要となる。第１の行における４つのパリティ情報は以下の式より得られる。
P1 = C0 ・ C2 ・ C4            (1)
P2 = C1 ・ C2 ・ C3 ・ C4        (2)
P3 = C0 ・ C3 ・ C4            (3)
P4 = C1 ・ C2 ・ C4            (4)
【００９７】
同様に、各行は個別に符号化され、異なるコードワード（code word）として扱われ、４つの４ビットパリティコードをもたらす。４つのパリティコードの１つは図８の各行に対応する。各列は単純にパリティを用いて符号化される。各２ビットは、図８に示す列パリティビットＣＰを生成することによって保護される。第１、２の列の列パリティは、下記に示す式によって決定される。残る３つの列パリティは、以下のＣＰ０からＣＰ３までと厳密に同じ方法によって生成される。
CP0 = C0 ・ C10              (5)
CP1 = C5 ・ C15              (6)
CP2 = C1 ・ C11              (7)
CP3 = C6 ・ C16              (8)
【００９８】
式（１）から式（４）の組は、即ち、行に関するエラー検出符号は、各行において２つまで、複数のエラーが起きたことを検出するように構成されている。同様に、各列に関して計算される式（５）から式（８）は、各列に関して２つまでのエラーの存在を検出することができる。エラーが極めて多くないという前提において、列と行とに関するエラー検出符号によって、エラーである特定の１つのビット、もしくは、特定の複数のビットを検出可能である。例えば、Ｃ６のビットにエラーが１つのみあるときには、１つの列（２列目）に１つのエラーのみが検出され、１つの行（２行目）に１つのエラーが検出される。従って、行２で列２のビットがエラーであるビットと特定される。このように、列と行とを使用すること、より一般的には、２つの異なるグループの組を使用することをここでは交差パリティエラー訂正（cross parity error correction）と呼ぶ。この技術によって訂正することのできるエラーのパターンを図９に示す。
【００９９】
パリティ予想器３１０は、機能ブロックからの出力におけるビットを２つのグループの組に割り当て、それらのグループのパリティコードを導出する機能ブロック３０５や訂正ブロック３１５におけるサブ回路３１５の構成と単純に同じものであっても良い。しかしながら、本実施の形態では、スペースを抑制し、回路を単純化するため、パリティ予想器は、もっとも簡便に、中間のステップの結果Ｃを導出することなくシステムの入力Ａ、Ｂからパリティ符号を導出するように構成されている。これにより、結果Ｃを具体的に導出する必要が無いため、回路のサイズを著しく縮小することができる。
複数エラー訂正
【０１００】
上記の記載は、第１のグループの組（行）と第２のグループの組（列）との両方からどのようにエラーが検出されるかを説明した。しかし、当然ながら、エラーを特定するだけではそれらを訂正することにはならない。エラービットの位置を特定し、それらを訂正するためには、古典的なエラー訂正符号を用いて、（復号器と呼ばれる別個の回路小区画を必要とする）別個の処理が必要である。
【０１０１】
上述のシステムにおいて、かなり単純な交差符号（cross codes）を使用して、複雑な復号器を排除することが可能であり、訂正ブロックが、訂正を行うための単純なＡＮＤ−ＸＯＲ論理回路を有して、当該回路を使用するように構成される。例えば、図９（ａ）に示すように、ビットは図８と同じ表に配列され、Ｃ０、Ｃ１、Ｃ５、Ｃ６はエラーであるとする。システムは、行１のハミング符号を用いて行１に２つのエラービット（Ｃ０およびＣ２）があることを検出し、同様に、行２のハミング符号により行２に２つのエラービット（Ｃ５およびＣ６）があることを検出する。しかし、これらの符号は、単独では、行１と行２の２ビットがエラーであることのみを決めることができるが、その位置までを決めることはできない。各行のどのビットにエラーがあるかを見出すため、ビットＣ０はＣＰ０に保護され、ビットＣ５はＣＰ１に保護されるように、システムは列パリティを使用するように構成されている。同様に、ビットＣ２、Ｃ７はＣＰ２、ＣＰ３に保護されている。行と列とのパリティの組合わせを用いることにより、訂正ブロック３１５は、どのビットにエラーがあるかを決定するように構成されている。同様に、ビットＣ３，Ｃ１８がエラーであれば、この方法でその２つを検出することが可能だし、Ｃ１２、Ｃ１６がエラーであっても同様に検出することが可能である。図９（ｂ）、９（ｃ）、９（ｄ）に示すように、検出可能な他のビットエラーのグループは以下のようである。Ｃ１、Ｃ２、Ｃ５とＣ６；Ｃ１１、Ｃ１３とＣ１７；Ｃ３、Ｃ７とＣ９；Ｃ２とＣ３；Ｃ６とＣ１１；Ｃ１２とＣ１４；Ｃ０、Ｃ１、Ｃ２、Ｃ５、Ｃ６とＣ７；Ｃ１２、Ｃ１３、Ｃ１４、Ｃ１７、Ｃ１８とＣ１９。
【０１０２】
図１０に示すように、さらなる実施の形態において、機能ブロックは６４ビットの有限体乗算器である。この場合には、訂正ブロックは、１６ビットの行を４つ有する表を定義する。本実施の形態において、訂正ブロックは、ＢＣＨ符号を用いており、各行のエラー（行エラー検出）の数をハミング符号で検出できる各行のエラーの数より多くしている。図１０は、６４ビットの有限体乗算器のエラーのパターンの例を示している。有限体乗算器はＢＣＨ符号を各行に配置し、単純なパリティ符号を各列に配置することができる。例えば、BCH(3,1,16)符号によって、各行に６つのエラーまでを検出することができる。このため、単純なハミング符号に比べて訂正されるビットの数を明らかに増加させることができる。
ＢＣＨ符号パリティを用いたエラー検出
【０１０３】
ビットパラレルなＢＣＨ符号に基づいた複数のエラー検出の基本的な原理と構造を図８で用いた２０ビットの乗算を用いて説明する。当然のことながら、当業者であれば、この原理を６４ビットの乗算に対して拡張することは可能である。BCH(15,5,7)の簡単な場合について考える。ここで、n=15、k=5である。この例では、GF(2k)上のビットパラレルなＰＢ乗算について考える。まず、ＢＣＨ符号として第１の５ビットの行を考える。従って、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とする。すると、６ビットの検出のための、第１の行に対するパリティの式は以下のようになる。
P(x) = p9x9 + p8x8 + p7x7 + p6x6 + p5x5 + p4x4 + p3x3 + p2x2 + p1x1 + p0 (12)
【０１０６】
３ビット訂正のＢＣＨ符号を考えるならば、単一のコードワード（code word）において、６ビットのエラーを検出可能である。そのため、５ビット符号における複数のエラーを検出するには、１０個のパリティビットが必要である。１０個のパリティビットは以下のように与えられる。
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)上の多項式に基づいた乗算のための低複雑度なビットパラレルアーキテクチャ」、アイトリプルイートランスコンピューターズ、５３号、８巻、９４５−９５９ページ、２００４年（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）に基づいたＢＣＨ符号のパターンの例を図１１に示す。このシステムは、各１６ビットの行に６ビットのエラーを検出可能なＢＣＨ符号が用いられるように構成されている。各４ビット列において、ハミング符号に基づいた構成（scheme）のような単純なパリティ符号が用いられるように構成されている。従って、各列において２つのエラーを検出可能であり、各行において６つのエラーを検出可能である。これは、この技術が特定の１２ビットのエラーまでを検出可能であることを意味している。図１１において、いくつかのパターン例はハイライトで示されている。類似のパターンは同じグループの複数のエラーを示している。
デジットシリアル乗算器（Digit Serial Multipliers）上の交差符号（Cross Codes）
【０１０９】
ワードレベル乗算器（word level multiplier）や、デジットシリアル乗算器(digit serial multiplier)といったより実践的な乗算器のために提案された交差パリティ構成（cross parity scheme）について考察する。実験的な目的のため、１６３ビットデジットシリアル乗算器を考える。この１６３ビットデジタル乗算器は、NISTやFIPSによって設定された安全なECC演算に対して標準的なサイズである。１６３ビットの複数のエラーを訂正できるデジットシリアル乗算器を統合的扱うのは初めての試みであろう。これは、従来のエラー検出と訂正が可能な技術は、ビットパラレルな乗算器により良く適合しているためである。即ち、ビットパラレルな乗算器は、パラレルコンプレックスエラー検出（parallel complex error detection）や、実際の乗算器の論理回路とパラレルに動作する復号処理や訂正処理の部分による大きな面積のオーバーヘッドを有しているからである。
【０１１０】
図１２を参照して、１０ビット、１５ビット、２０ビット、３２ビット、４８ビット、６４ビット、および、９０ビットの乗算器のサイズに必要となる空間をよりよく理解するために、デジタルシリアル乗算器の構成（scheme）に関する提案された構成（scheme）の複雑度を評価する。
【０１１１】
この実験のためのデジットシリアル乗算回路（digit serial multiplication circuit）は、単一の加算器、乗算器アーキテクチャ（single accumulator multiplier architecture）を用いて構成されている。乗算アルゴリズムは以下のようである。
2014525705.tif 000003
実験結果
【０１１２】
ハミングに則った符号と、ＢＣＨに則った符号との行動モデルは、ＶＨＤＬを用いて実行され、モデルシムシミュレータ（Modelsim simulator）を用いてそれらの機能的な正確さが確認される。様々なサイズのビットパラレルな乗算器（１０、１５、２０、３２、４８、６４、９０ビットの乗算器の構造を含む）について、構成（scheme）が確認され、検証されている。設計はシノプシス（Synopsys）の設計したコンパイラによって統合されている。面積の変動や、これらの設計の電力はＴＳＭＣテクノロジーズ（TSMC technologies）の１８０ｎｍ、９０ｎｍの両方を用いて評価されている。
提案された実装の面積および電力の解析
【０１１３】
図１２は、様々なサイズのビットパラレルな乗算器の消費空間を示している。図１３、１４は、１８０ｎｍと９０ｎｍの技術の両方の（パリティ生成器を含む）エラー訂正ブロックの面積を示している。図１３から明らかなように、ＢＣＨに基づいた技術の消費空間は、ハミングに基づいた符号よりわずかに高いだけである。これは、両方の符号において面積を著しく占有する復号器の区域を、単純な交差パリティ（cross parity）のエラー検出器および訂正器に置き換えることが可能だからである。
【０１１４】
表１は、提案された交差パリティ（cross parity）に基づいた方法の面積のオーバーヘッドを示している。ＢＣＨとハミングとに基づいた構成（scheme）の面積のオーバーヘッドは著しく近いことが実験の解析によりわかる。非常に単純な１０ビットの乗算器に関する面積のオーバーヘッドはわずかに１４２％である。乗算器のサイズが大きくなるに従って、パリティ生成回路と訂正ロジック回路とによる面積のオーバーヘッドのパーセンテージは小さくなり、最終的に複数のエラーを検出可能な９０ビットの乗算器ではわずかに１０１％になる。単一エラー訂正符号に基づく古典的な乗算エラー訂正の構成（scheme）と比較して、これはかなり小さな値である。この設計は、すべてのパターンのエラーを扱うことはできないものの、本提案の構成（scheme）の範囲外であって、訂正できないエラーのパターンはほとんど起こることがない。これは、複数のビットフリップ（bit flip）を招く放射粒子の衝突の確率は、例えば、１００万クロックサイクルに１回だからである。従って提案された構成（scheme）は、１０１％程度の面積のオーバーヘッドによって、優れたエラーマスキングの能力を提供する。
様々な乗算器のサイズの面積のオーバーヘッドの比較
【表１】
2014525705.tif 000004
【０１１５】
表２は、我々の交差パリティ（cross parity）符号のやり方と、オープンになっている文献における、他のエラー訂正の構成（scheme）とを比較している。ここでは、文献として以下のものが挙げられる。
レイハニ‐マゾレー、エムエーハサン、「GF(2m)上の多項式に基づいた乗算のための低複雑度なビットパラレルアーキテクチャ」、アイトリプルイートランスコンピューターズ、５３号、８巻、９４５−９５９ページ、２００４年（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）
ジェイマシュー、ジェイシン、エーエムジャビー、エムホセイナバディ、ディーケープラダン「ＬＤＰＣ符号を用いた耐障害性のビットパラレルな有限体乗算器」、回路とシステムにおけるアイトリプルイー国際シンポジウム会報、２００８年、１６８４−１６８７ページ（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）
エムポーラッカパランビル、ジェイマシュー、エーエムジャビー、ディーケープラダン、エスピーモハンティ、「有限体乗算回路上のＢＣＨコードに基づいたマルチビットエラー訂正」、第１２回高品質電子設計に関するアイトリプルイー国際シンポジウム会報、２０１１年、６１５−６２０ページ（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）
【０１１６】
公平な比較のため、我々は３２ビットの乗算器を使用した。我々の方法は、他の従来の設計と比較して、より少ない面積のオーバーヘッドで、より多くのエラーの数を訂正した。
【表２】
2014525705.tif 000005
【０１１７】
本提案構成（scheme）の電力消費について分析した。図１５、１６は、ハミングを基礎とした設計とBCHを基礎とした設計との消費電力の比較を示している。２つの構成（scheme）は面積のオーバーヘッドも同等であるが、消費電力も大まかには同じである。
【０１１８】
図７から１６に示した上述の実施の形態は回路の設計に関するものであるが、他の実施の形態において、システムは、通信が転送されるチャネルであり、出力はこのチャネルから受信した通信である。パリティ予想器は、チャネルの送信端として構成され、送信前に通信によってパリティ符号を生成し、生成されたパリティ符号を通信によって送信するように構成されている。訂正ブロックは、システムの受信端として構成され、パリティ予想器からのパリティ符号と共にチャネルを介してメッセージを受信するように構成されている。訂正ブロックは、受信したメッセージに上述した訂正ステップを実行することが可能である。別の場合には、システムは、メモリ回路であっても良い。この場合には、出力はメモリ回路から受け取ったデータであってもよく、さらに、パリティ予想器で生成されたパリティはメモリに記憶され、当該データと共に読み出されることにより、訂正回路が読み出されたデータに訂正ステップを行うことが可能になるようにしてもよい。
【０１１９】
以上の実施音形態は単なる例として記載したにすぎず、本発明の範囲は以下の請求項によって定義される。
【図１】
2014525705.tif 000006
【図２】
2014525705.tif 000007
【図３】
2014525705.tif 000008
【図４】
2014525705.tif 000009
【図５】
2014525705.tif 000010
【図６】
2014525705.tif 000011
【図７】
2014525705.tif 000012
【図８】
2014525705.tif 000013
【図９】
2014525705.tif 000014
【図１０】
2014525705.tif 000015
【図１１】
2014525705.tif 000016
【図１２】
2014525705.tif 000017
【図１３】
2014525705.tif 000018
【図１４】
2014525705.tif 000019
【図１５】
2014525705.tif 000020
【図１６】
2014525705.tif 000021
【国際調査報告】
2014525705.tif 000022
2014525705.tif 000023
2014525705.tif 000024
2014525705.tif 000025
2014525705.tif 000026