(57)【特許請求の範囲】
【請求項１】
エラー訂正対象のデータについてのシンドロームを作成するシンドローム作成部と、該シンドローム作成部により作成された前記シンドロームをデコードし前記データの訂正ビットを指示する訂正信号を出力するシンドロームデコード部と、該シンドロームデコード部からの前記訂正信号に応じて前記データを訂正するデータ訂正部とをそなえてなるエラー訂正回路における障害の有無を検出するためのチェック方法であって、
該シンドローム作成部と同一機能を有する回路により、前記データについてのチェック用シンドロームを作成し、
該シンドロームデコード部と同一機能を有する回路により、前記チェック用シンドロームをデコードして前記データの訂正ビットを指示するチェック用訂正信号を出力し、
訂正前のデータと該データ訂正部により訂正されたデータとを比較して、該データ訂正部による訂正ビット位置を検出し、
検出された前記訂正ビット位置と前記チェック用訂正信号に含まれる訂正ビット位置情報とを比較して、該エラー訂正回路における障害の有無／訂正データの妥当性を判定することを特徴とする、エラー訂正回路のチェック方法。
【請求項２】
エラー訂正対象のデータについてのシンドロームを作成する第１シンドローム作成部と、
該第１シンドローム作成部により作成された前記シンドロームをデコードし、前記データの訂正ビットを指示する訂正信号を出力する第１シンドロームデコード部と、
該第１シンドロームデコード部からの前記訂正信号に応じて前記データを訂正するデータ訂正部とをそなえてなるエラー訂正回路において、
前記データについてのチェック用シンドロームを作成する第２シンドローム作成部と、
該第２シンドローム作成部により作成された前記チェック用シンドロームをデコードし、前記データの訂正ビットを指示するチェック用訂正信号を出力する第２シンドロームデコード部と、
該データ訂正部による訂正ビット位置を検出すべく、訂正前のデータと該データ訂正部により訂正されたデータとを比較する第１比較部と、
該エラー訂正回路における障害の有無／訂正データの妥当性を判定すべく、該第１比較部により検出された前記訂正ビット位置と該第２シンドロームデコード部からのチェック用訂正信号に含まれる訂正ビット位置情報とを比較する第２比較部とをそなえたことを特徴とする、チェック機能付きエラー訂正回路。
【請求項３】
該第２比較部が、前記データにおいて誤訂正されたビット位置を特定すべく、該第１比較部により検出された前記訂正ビット位置と該第２シンドロームデコード部からのチェック用訂正信号に含まれる訂正ビット位置情報とをビット毎に比較することを特徴とする、請求項２記載のチェック機能付きエラー訂正回路。
【請求項４】
該エラー訂正回路における障害の発生部位を特定すべく、該第１シンドローム作成部により作成された前記シンドロームと該第２シンドローム作成部により作成された前記チェック用シンドロームとを比較する第３比較部をそなえたことを特徴とする、請求項２または請求項３に記載のチェック機能付きエラー訂正回路。
【請求項５】
該エラー訂正回路における障害の発生部位を特定すべく、該第１シンドロームデコード部からの前記訂正信号と該第２シンドロームデコード部からの前記チェック用訂正信号とを比較する第４比較部をそなえたことを特徴とする、請求項２〜請求項４のいずれか１項に記載のチェック機能付きエラー訂正回路。
【発明の詳細な説明】
（目次）
発明の属する技術分野
従来の技術（図６，図７）
発明が解決しようとする課題
課題を解決するための手段（図１）
発明の実施の形態（図２〜図５）
発明の効果
【０００１】
【発明の属する技術分野】
本発明は、例えば通信用伝送線や情報機器のメモリなどの、データが損傷を受けやすい箇所にそなえられ、データの誤りを検出した場合にその誤りを訂正するエラー訂正回路に関し、特に、そのエラー訂正回路における障害の有無を検出するためのチェック方法、および、その方法を適用されたチェック機能付きエラー訂正回路に関する。
【０００２】
【従来の技術】
一般に、エラー訂正回路〔以下、ＥＣＣ（Error Correction Circuit）という場合がある〕は、コンピュータシステム，記憶装置，通信装置など、データエラーが発生する可能性のある種々の系にそなえられ、データの誤り（エラー）を検出した場合にその誤りを訂正するものである。
【０００３】
図６は一般的なエラー訂正回路（ＥＣＣ）を有するシステムの構成を示すブロック図である。この図６に示すシステムは、ＣＰＵ（Central Processing Unit)１がメモリ２に対してアクセスしながらデータ処理を行なう、一般的なデータ処理システムである。このようなシステムにおいて、メモリ２は、データエラーの発生する可能性がある部分であり、メモリ２で発生したデータエラーを訂正すべく、通常、ＣＰＵ１とメモリ２との間に、チェックビット作成・付加回路３およびエラー訂正回路（ＥＣＣ）４がそなえられている。
【０００４】
ここで、ＣＰＵ１は、メモリ２から読み出したデータを用いてデータ処理を行なうとともに、データ処理を行なって得られたデータをメモリ２へ書き込む。ＣＰＵ１がメモリ２にデータを書き込む際、チェックビット作成・付加回路３は、エラーチェック・訂正を行なうためのチェックビットを書込データに応じて作成し、そのチェックビットを書込データに付加して書込データとともにメモリ２に書き込む。そして、ＣＰＵ１がメモリ２からデータを読み出す際、ＥＣＣ４は、メモリ２からの読み出されたデータのエラーチェックを、チェックビットを用いて行ない、エラーがある場合にはそのエラーの訂正を行なう。
【０００５】
図７は一般的なエラー訂正回路（ＥＣＣ）の構成を示すブロック図である。この図７に示すように、ＥＣＣ４は、シンドローム作成部（ＳＧ：Syndrome Generator）４１，シンドロームデコード部（ＳＤ：Syndrome Decoder）４２，データ訂正部（ＣＲ：Correction）４３およびラッチ４４，４５を有して構成されている。
【０００６】
シンドローム作成部４１は、チェックビットを含む読出データについてのシンドロームを作成し、シンドロームデコード部４２は、シンドローム作成部４１により作成されたシンドロームをデコードし、読出データに訂正可能なエラー（Correctable Error)が発生している場合、シンドロームの情報に基づいて訂正すべきビット（訂正ビット）を特定し、そのビットを指示する訂正信号をデータ訂正部４３に出力する。シンドロームをデコードした結果、訂正不可能なエラー（Uncorrectable Error)が発生していることが判明した場合、シンドロームデコード部４２は、その旨をＣＰＵ１に報告する。
【０００７】
データ訂正部４３は、メモリ２からの読出データに訂正可能なエラーが発生している場合、シンドロームデコード部４２からの訂正信号に応じて、メモリ２からの読出データのうちのエラービットを訂正した後、ＣＰＵ１へ出力する。なお、読出データにエラーが発生していない場合、データ訂正部４３は、メモリ２からの読出データをそのままＣＰＵ１へ出力する。
【０００８】
なお、シンドローム作成部４１で作成されたシンドロームは、ラッチ４４により一時的に保持されてからシンドロームデコード部４２へ出力されるとともに、メモリ２からの読出データは、ラッチ４５により一時的に保持されてからデータ訂正部４３へ出力されるようになっている。
上述のようにして、ＥＣＣ４を有するシステムでは、メモリ２からのデータ読出時に種々の要因（データバスへのノイズ混入，ＲＡＭのソフトエラー等）により発生したデータエラーを検出し、訂正可能なエラーである場合にはエラー訂正を行なう一方、訂正不可能なエラーである場合にはその旨を通知してデータ読出処理を停止するなどの処置を採る。これにより、システム全体としての信頼性の向上をはかっている。
【０００９】
ところで、上述のようなＥＣＣ４において、シンドローム作成部４１，シンドロームデコード部４２，データ訂正部４３またはラッチ４４，４５の故障や、これらの各部４１〜４５をつなぐ信号線の故障が生じると、誤りのないデータを訂正してしまったり、訂正が必要なデータを訂正せずに出力してしまったりする場合がある。このようにしてＥＣＣ４から出力されたデータは、正常なデータであるとみなされて使用されるため、システム全体を誤動作させてしまうおそれがある。
【００１０】
このようなＥＣＣ４における障害の有無を検出してシステムの信頼性を向上させるべく、従来、例えば特開平４−８１１３１号公報や特開平５−１０８３８５号公報に開示されるようなチェック手法が提案されている。
特開平４−８１１３１号公報に開示された技術では、読出データに１ビットエラーが生じていることを検知した場合に、読出データのチェックビットのパリティと読出データのシンドロームビットのパリティとの排他的論理和（E-OR：Exclusive OR）を得るとともに、前記１ビットエラーを訂正した後のデータについて作成されるチェックビットのパリティを得た後、これらの排他的論理和とチェックビットのパリティとを比較することにより、ＥＣＣのチェックを行なっている。
【００１１】
また、特開平５−１０８３８５号公報に開示された技術では、読出直後のデータとエラー訂正後のデータとを比較し、異なる値となっているビットの数（エラービットの数）Ｍを得てから、その数Ｍが所定値Ｎ以下であるか否かを判断することによりエラー訂正回路の正常性を確認している。
【００１２】
【発明が解決しようとする課題】
しかしながら、前者の技術のように、シンドロームやチェックビットのパリティからＥＣＣの妥当性を検証する手法では、ＥＣＣ内で同時に２ビットのエラーが発生した場合やある１ビットの訂正ミスなどを起こした場合、誤訂正を見逃してしまうほか、誤訂正したビット（訂正エラーの発生したビット）の位置を特定することができない。このようなエラーは、信号線が１本断線するだけで容易に起こり得るため、十分に考慮する必要がある。
【００１３】
また、後者の技術では、エラービットの数Ｍが所定値Ｎを超えた場合に異常が生じたものと判定しているため、その判定を行なう回路で発生した異常や、多ビット訂正回路内における１ビットの異常（例えば４ビットの訂正可能な回路において、３ビットエラーにもかかわらず４ビットの訂正を行なった場合）など、検出できない異常が多くあるほか、誤訂正したビットの位置を特定することもできない。
【００１４】
一方、コンピュータシステムや通信装置など、デジタルデータを扱う装置は、近年、稀に見る早さで高速化されている。このような装置において非同期回路からデジタルデータを受信する場合、そのデジタルデータを“０”および“１”のいずれにも特定できない不定状態、即ち、メタステーブル（Meta-Stable)状態が生じる場合がある。
【００１５】
このようなメタステーブル状態を解消するために、一般に、非同期回路からデータを受信する系では、そのデータを保持するラッチを複数段そなえている。つまり、これらのラッチに非同期回路からのデータを順次保持させながら、データの安定化（非同期信号の同期化）をはかっている。このとき、ラッチの段数が多い程、より確実にメタステーブル状態は解消される。
【００１６】
しかし、ラッチの段数が多いと、当然、データを受け取ってから実際に利用するまでにかかる時間が長くなってしまう。また、ラッチの段数を多くしてデータをラッチにより長時間保持するするように構成したとしても、データがメタステーブル状態になる確率を無視できるくらいまで小さくできるだけであって、メタステーブル状態が全く起こり得なくなるわけではない。
【００１７】
メタステーブル状態になった場合、図７に示したＥＣＣ４では、シンドローム作成部４１へ入力されるデータとラッチ４５を経由してデータ訂正部４３へ入力されるデータとが異なる状況が生じ、ラッチ４４で受けるシンドロームの値と、ラッチ４５で受けるデータの値とに矛盾を生じる可能性がある。このような矛盾が生じた場合、訂正エラーを生じることになるが、前述した従来の技術では、そのような訂正エラーを常に確実に検出することができない。
【００１８】
より高い信頼性を要求されるシステムでは、上述のようなメタステーブル状態に起因する訂正エラーをも確実に検出できるようにすることが望まれる。また、メタステーブル状態に起因する訂正エラーをも確実に検出できるようにすれば、メタステーブル状態を解消するためのラッチ段数を多くする必要がなくなるので、ラッチ段数を少なくし、データを受け取ってから実際に利用するまでにかかる時間を短くすることができる。
【００１９】
本発明は、このような課題に鑑み創案されたもので、エラー訂正回路の故障に起因する訂正エラーやメタステーブル状態に起因する訂正エラーを確実に検出できるとともにその訂正エラーの発生ビットを特定できるようにして、デジタルデータを取り扱うシステムの信頼性を高めるとともに、メタステーブル状態の回避に要する時間を短縮して動作速度の高速化を実現した、エラー訂正回路のチェック方法およびチェック機能付きエラー訂正回路を提供することを目的とする。
【００２０】
【課題を解決するための手段】
上記目的を達成するために、本発明のエラー訂正回路のチェック方法（請求項１）は、エラー訂正対象のデータについてのシンドロームを作成するシンドローム作成部と、該シンドローム作成部により作成された前記シンドロームをデコードし前記データの訂正ビットを指示する訂正信号を出力するシンドロームデコード部と、該シンドロームデコード部からの前記訂正信号に応じて前記データを訂正するデータ訂正部とをそなえてなるエラー訂正回路における障害の有無を検出するためのチェック方法であって、該シンドローム作成部と同一機能を有する回路により前記データについてのチェック用シンドロームを作成し、該シンドロームデコード部と同一機能を有する回路により前記チェック用シンドロームをデコードして前記データの訂正ビットを指示するチェック用訂正信号を出力し、訂正前のデータと該データ訂正部により訂正されたデータとを比較して該データ訂正部による訂正ビット位置を検出し、検出された前記訂正ビット位置と前記チェック用訂正信号に含まれる訂正ビット位置情報とを比較して該エラー訂正回路における障害の有無／訂正データの妥当性を判定することを特徴としている。
【００２１】
一方、図１は、本発明の請求項２〜請求項５に記載されたチェック機能付きエラー訂正回路の原理的な構成を示すブロック図である。この図１に示すように、本発明のチェック機能付きエラー訂正回路１０は、第１シンドローム作成部１１，第１シンドロームデコード部１２，データ訂正部１３，第２シンドローム作成部１４，第２シンドロームデコード部１５，第１比較部１６，第２比較部１７，第３比較部１８および第４比較部１９から構成されている。
【００２２】
ここで、第１シンドローム作成部１１は、エラー訂正対象のデータについてのシンドロームを作成するものであり、第１シンドロームデコード部１２は、第１シンドローム作成部１１により作成された前記シンドロームをデコードし前記データの訂正ビットを指示する訂正信号を出力するものであり、データ訂正部１３は、第１シンドロームデコード部１２からの前記訂正信号に応じて前記データを訂正するものである。
【００２３】
また、第２シンドローム作成部１４は、第１シンドローム作成部１１と同一機能を有する回路で、前記データについてのチェック用シンドロームを作成するものであり、第２シンドロームデコード部１５は、第１シンドロームデコード部１２と同一機能を有する回路で、第２シンドローム作成部１４により作成された前記チェック用シンドロームをデコードし前記データの訂正ビットを指示するチェック用訂正信号を出力するものである。
【００２４】
そして、第１比較部１６は、データ訂正部１３による訂正ビット位置を検出すべく訂正前のデータとデータ訂正部１３により訂正されたデータとを比較するものであり、第２比較部１７は、障害の有無／訂正データの妥当性を判定すべく第１比較部１６により検出された前記訂正ビット位置と第２シンドロームデコード部１５からのチェック用訂正信号に含まれる訂正ビット位置情報とを比較するものである（請求項２）。
【００２５】
このとき、第２比較部１７は、前記データにおいて誤訂正されたビット位置を特定すべく、第１比較部１６により検出された前記訂正ビット位置と第２シンドロームデコード部１５からのチェック用訂正信号に含まれる訂正ビット位置情報とをビット毎に比較する（請求項３）。
また、第３比較部１８は、エラー訂正回路１０における障害の発生部位を特定すべく、第１シンドローム作成部１１により作成された前記シンドロームと第２シンドローム作成部１４により作成された前記チェック用シンドロームとを比較するものである（請求項４）。
【００２６】
さらに、第４比較部１９は、エラー訂正回路１０における障害の発生部位を特定すべく、第１シンドロームデコード部１２からの前記訂正信号と第２シンドロームデコード部１５からの前記チェック用訂正信号とを比較するものである（請求項５）。
上述した本発明のチェック機能付きエラー訂正回路１０では、第１シンドローム作成部１１，第１シンドロームデコード部１２およびデータ訂正部１３が通常のエラー訂正回路として機能し、第２シンドローム作成部１４，第２シンドロームデコード部１５，第１比較部１６，第２比較部１７，第３比較部１８および第４比較部１９が、第１シンドローム作成部１１，第１シンドロームデコード部１２およびデータ訂正部１３における障害の有無や、訂正データの妥当性を判定するチェック機能を果たす。
【００２７】
第２シンドローム作成部１４および第２シンドロームデコード部１５は、それぞれ、第１シンドローム作成部１１および第１シンドロームデコード部１２と同一機能を有する回路であり、第２シンドローム作成部１４によりエラー訂正対象のデータについてのチェック用シンドロームが得られるとともに、第２シンドロームデコード部１５により前記チェック用シンドロームがデコードされて前記データの訂正ビットを指示するチェック用訂正信号が得られる。
【００２８】
エラー訂正対象のデータが本発明のチェック機能付きエラー訂正回路１０に入力されると、第１シンドローム作成部１１では、入力されたデータからシンドロームを作成する。このシンドロームは、第１シンドロームデコード部１２に入力され、第１シンドロームデコード部１２によりデータに訂正可能なエラーが発生していると判断された場合、データ訂正部１３により元のデータを訂正する。
【００２９】
データ訂正部１３で訂正されたデータは、第１比較部１６により訂正前のデータと比較される。これにより、どのビットが訂正されたか、つまり訂正ビット位置を検出することができる。また、これと同時に、訂正前のデータを、第２シンドローム作成部１４および第２シンドロームデコード部１５を通すことにより、訂正すべきデータのビット位置を指示しうるチェック用訂正信号が得られる。
【００３０】
チェック用訂正信号で指示されるビット位置と、第１比較部１６で得られた訂正ビット位置とは、通常一致しなければならないので、これらビット位置を第２比較部１７で比較することにより、エラー訂正対象のデータの入力側からデータ訂正部１３に至るまでの回路上の故障や、データ訂正部１３による訂正エラーなどを発見することができる。このとき、第２比較部１７において、第２シンドロームデコード部１５からのチェック用訂正信号と第２比較部１６からの訂正ビット位置とをビット毎に比較することにより、値が一致しないビットが、即ち誤って訂正されたデータビットであると特定することができる。
【００３１】
また、第１シンドローム作成部１１で作成されたシンドロームと第２シンドローム作成部１４で作成されたチェック用シンドロームとは第３比較部１８で比較され、不一致の場合、第３比較部１８からシンドロームエラーが発生した旨が出力される。
エラー訂正対象のデータにおいて発生したエラーが訂正不可能なものである場合、第１シンドロームデコード部１２は、訂正不可能なエラーが発生したことを検知して報告する。また、第１シンドローム作成部１１における回路異常によってその出力のシンドロームが訂正不可能なエラーを表すシンドロームとなった場合も、第１シンドロームデコード部１２は訂正不可能なエラーであることを報告する。
【００３２】
後者のように第１シンドローム作成部１１における回路異常によって訂正不可能なエラーが生じた場合、通常、第１シンドローム作成部１１からのシンドロームと第２シンドローム作成部１４からのチェック用シンドロームとは不一致となるため、その不一致が第３比較部１８により検出されてシンドロームエラーとして報告される。前者のようにエラー訂正対象のデータに元々訂正不可能なエラーが発生している場合には、通常、第１シンドローム作成部１１からのシンドロームと第２シンドローム作成部１４からのチェック用シンドロームとが一致するため、第３比較部１８からシンドロームエラーは報告されない。従って、訂正不可能なエラーが発生した場合、第３比較部１８による比較結果を参照することにより、そのエラーが、元々のデータに発生しているものであるか、第１シンドローム作成部１１における回路異常によって生じたものかを区別することが可能になる。
【００３３】
また、エラー訂正対象のデータにエラーが発生していない場合や、エラー訂正対象のデータに訂正可能なエラーが発生している場合には、第２比較部１７による比較結果と、第３比較部１８による比較結果と、第４比較部１９による比較結果とに基づいて、エラー訂正回路１０における障害の発生部位を特定することができる。
【００３４】
例えば、第２比較部１７による比較結果のみが不一致であれば、データ訂正部１３に障害が有るものと判断することができる。また、第２比較部１７および第４比較部１９による比較結果がいずれも不一致であれば、少なくとも第１シンドロームデコード部１２（もしくは第２シンドロームデコード部１５）に障害が有るものと判断することができる。さらに、第３比較部１８による比較結果が不一致であれば、少なくとも第１シンドローム作成部１１（もしくは第２シンドローム作成部１４）に障害が有るものと判断することができる。
【００３５】
上述のように、本発明のエラー訂正回路のチェック方法（請求項１〜請求項４）およびチェック機能付きエラー訂正回路（請求項５〜請求項８）を用いることにより、エラー訂正回路１０における障害の有無／訂正データの妥当性が判定され、エラー訂正回路１０の故障に起因する訂正エラーやメタステーブル状態に起因する訂正エラーを確実に検出できるとともに、その訂正エラーの発生ビットや障害の発生箇所を特定できる。
【００３６】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図２は本発明の一実施形態としてのチェック機能付きエラー訂正回路の構成を示すブロック図であり、本実施形態のエラー訂正回路（ＥＣＣ）４０も、例えば図６に示した一般的なデータ処理システムにおける、メモリ（ＭＳＵ：Main Storage Unit)から読み出されたデータをエラー訂正対象としている。メモリに格納されているデータには、前述した通り、エラーチェック・訂正を行なうためのチェックビットが付加されている。
【００３７】
例えば本実施形態では、６４ビットのデータに１６ビットのチェックビットＣ０：Ｃ７を付加しており、メモリから読み出されたデータは、８０ビットのデータRD<0:63,C0:C15> となっており、本実施形態のエラー訂正回路４０は、８０ビットデータについて、後述するごとく、Ｓ４ＥＣ−Ｄ４ＥＤ（Single 4bits block Error Correction- Double 4bits block Error Detection)を実現するものである。
【００３８】
さて、図２に示すように、本実施形態のチェック機能付きエラー訂正回路４０は、図７に示した従来のＥＣＣ４と同様のシンドローム作成部（ＳＧ）４１，シンドロームデコード部（ＳＤ）４２，データ訂正部（ＣＲ）４３およびラッチ４４，４５を有するほか、チェック用シンドローム作成部（ＳＧＣ：Syndrome Generator for Check）４６，チェック用シンドロームデコード部（ＳＤＣ：Syndrome Decoder for Check）４７および排他的論理和ゲート（E-OR）４８〜５１を有して構成されている。
【００３９】
本実施形態のチェック機能付きエラー訂正回路４０では、シンドローム作成部４１，シンドロームデコード部４２，データ訂正部４３およびラッチ４４，４５が、従来のＥＣＣ４と同様に機能する部分であり、シンドローム作成部４１，シンドロームデコード部４２およびデータ訂正部４３は、それぞれ、図１における第１シンドローム作成部１１，第１シンドロームデコード部１２およびデータ訂正部１３に対応している。
【００４０】
つまり、シンドローム作成部４１は、チェックビットを含む読出データ（エラー訂正対象のデータ）RD<0:63,C0:C15> についてのシンドロームSYND<0:15>を作成し、シンドロームデコード部４２は、シンドローム作成部４１により作成されたシンドロームSYND<0:15>をデコードし、読出データRD<0:63,C0:C15> に訂正可能なエラー（Correctable Error)が発生している場合、シンドロームSYND<0:15>に基づいて訂正すべきビット（訂正ビット）を特定し、そのビットを指示するデータ訂正信号DCS<0:63> をデータ訂正部４３に出力する。シンドロームSYND<0:15>をデコードした結果、訂正不可能なエラー（Uncorrectable Error)が発生していることが判明した場合、シンドロームデコード部４２は、その旨をＣＰＵ１（図６参照）に報告する。
【００４１】
データ訂正部４３は、読出データRD<0:63,C0:C15> に訂正可能なエラーが発生している場合、シンドロームデコード部４２からのデータ訂正信号DCS<0:63> に応じて、読出データRD<0:63,C0:C15> のうちのエラービットを訂正した後、ＣＰＵ１へ出力する。なお、読出データRD<0:63,C0:C15> にエラーが発生していない場合、データ訂正部４３は、メモリ２からの読出データRD<0:63,C0:C15> をそのままＣＰＵ１へ出力する。
【００４２】
なお、シンドローム作成部４１で作成されたシンドロームSYND<0:15>は、ラッチ４４により一時的に保持されてからシンドロームデコード部４２へ出力されるとともに、メモリ２からの読出データRD<0:63,C0:C15> は、ラッチ４５により一時的に保持されてからデータ訂正部４３へ出力されるようになっている。データ訂正部４３に入力されるデータは、図２において“RD 1L（Read Data １τ Late)<0:63>”として表記されており、この表記は、読出データがラッチ４５により１クロックタイミング（１τ）だけ遅延されていることを示している。
【００４３】
そして、本実施形態のチェック機能付きエラー訂正回路４０において、チェック用シンドローム作成部４６，チェック用シンドロームデコード部４７および排他的論理和ゲート４８〜５１が、シンドローム作成部４１，シンドロームデコード部４２およびデータ訂正部４３における障害の有無や、訂正データの妥当性を判定するチェック機能を果たす部分であり、それぞれ、図１における第２シンドローム作成部１４，第２シンドロームデコード部１５，第１比較部１６，第２比較部１７，第３比較部１８および第４比較部１９に対応している。
【００４４】
ここで、チェック用シンドローム作成部４６は、シンドローム作成部４１と全く同じ回路構成を有し同一の機能を果たす回路で、読出データRD<0:63,C0:C15> についてのチェック用シンドロームSYNDC<0:15> を作成するものであり、チェック用シンドロームデコード部４７は、シンドロームデコード部４２と全く同じ回路構成を有し同一機能を果たす回路で、チェック用シンドローム作成部４６により作成されたチェック用シンドロームSYNDC<0:15> をデコードし読出データRD<0:63,C0:C15> の訂正ビットを指示するチェック用データ訂正信号DCSC<0:63>を出力するものである。
【００４５】
排他的論理和ゲート（E-OR；第１比較部）４８は、訂正前のデータRD 1L<0:63>とデータ訂正部４３により訂正されたデータとをビット毎に比較、即ち、これらの排他的論理和（E-OR）をビット毎に算出し、その結果をデータ訂正部４３による訂正ビット位置CBL(Correct Bit Location)<0:63> として検出・出力するものである。つまり、排他的論理和ゲート４８から出力されるCBL<0:63> においては、データ訂正部４３により訂正されたビット位置に“１”が立つことになる。
【００４６】
排他的論理和ゲート（E-OR；第２比較部）４９は、排他的論理和ゲート４８からの訂正ビット位置CBL<0:63> と、チェック用シンドロームデコード部４７からのチェック用データ訂正信号DCSC<0:63>とをビット毎に比較、即ち、これらの排他的論理和（E-OR）をビット毎に算出し、その結果を、誤って訂正されたビット位置の情報ECB(Error Correct Bit)<0:63>として出力するものである。つまり、排他的論理和ゲート４９から出力されるECB<0:63> においては、データ訂正部４３により誤って訂正されたビット位置に“１”が立つことになる。
【００４７】
排他的論理和ゲート（E-OR；第３比較部）５０は、シンドローム作成部４１により作成されたシンドロームSYND<0:15>と、チェック用シンドローム作成部４６により作成されたチェック用シンドロームSYNDC<0:15> とをビット毎に比較、即ち、これらの排他的論理和をビット毎に算出し、その結果をシンドロームエラーの発生情報SE(Syndrome Error)<0:15>として出力するものである。つまり、排他的論理和ゲート５０から出力されるSE<0:15>においては、シンドロームにおいて不一致の生じているビット位置に“１”が立つことになる。
【００４８】
排他的論理和ゲート（E-OR；第４比較部）５１は、シンドロームデコード部４２からのデータ訂正信号DCS<0:63> とチェック用シンドロームデコード部４７からのチェック用データ訂正信号DCSC<0:63>  とをビット毎に比較、即ち、これらの排他的論理和をビット毎に算出し、その結果をデータ訂正信号DCS<0:63> のエラー情報DCSE<0:63>として出力するものである。つまり、排他的論理和ゲート５１から出力されるDCSE<0:63>においては、データ訂正信号においてエラーの生じているビット位置に“１”が立つことになる。
【００４９】
ところで、本実施形態のチェック機能付きエラー訂正回路４０は、前述した通り、１６ビットのチェックビットを含む８０ビットデータについて、Ｓ４ＥＣ−Ｄ４ＥＤを実現するものである。６４ビットのデータ（D00:D63)に対して１６ビットのチェックビット（C00:C15)が付加され、１ブロックは４ビットから構成されており、１つのデータは全部で２０個のブロックから構成される。Ｓ４ＥＣ−Ｄ４ＥＤでは、１ブロック内の４ビットまでの誤り(Single Block Error)の完全訂正と、任意の２ブロックに跨がる８ビットまでの誤り(Double Block Error)の完全検出とが実現される。
【００５０】
ここで、Ｓ４ＥＣ−Ｄ４ＥＤの論理を表す場合、Ｈマトリクスと呼ばれるパリティ検査行列が用いられる。図３は、Ｓ４ＥＣ−Ｄ４ＥＤのＨマトリクスを示す図である。図３に示すＨマトリクスを用いる場合、チェックビット C00〜C15 は以下の式で算出されてデータに付与される。これらのチェックビット C00〜C15 の算出は、図６に示したチェックビット作成・付加回路３により行なわれることになる。なお、以下に記載される式中において、"(+)”は排他的論理和の演算子である。
【００５１】
0004213814.tif 000002
0004213814.tif 000003
また、図３に示すＨマトリクスを用いる場合、シンドロームビットS00 〜S15 (SYN<0:15>,SYNC<0:15>)は、シンドローム作成部４１，４６により、以下の式で算出される。
【００５２】
0004213814.tif 000004
0004213814.tif 000005
次に、本実施形態のエラー訂正回路４０におけるデータエラーの判定論理について説明する。例えば図３に示すＨマトリクスにおいて一点鎖線で囲んだ部分のデータを抜き出して以下のように定める。
【００５３】
【数１】
0004213814.tif 000006
【００５４】
また、
【００５５】
【数２】
0004213814.tif 000007
【００５６】
とすると、上式で得られる値R0〜R3に応じて、データエラーの発生状態が、図４に従って判定される。なお、図４はデータエラーの判定論理を示す図である。
この図４に示すように、R0〜R3が全て０であれば、データエラーは発生しておらず、R0〜R3のうちいずれか１つのみが１であれば、シングルブロックエラーが発生しているものと判定される。また、(R0,R1,R2,R3) = (0,0,1,1),(0,1,0,1),(0,1,1,0),(1,0,0,1),(1,0,1,0),(1,1,0,0),(1,1,0,1),(1,1,1,0),(1,1,1,1) の場合、ダブルブロックエラーが発生しているものと判定される。
【００５７】
さらに、(R0,R1,R2,R3) = (1,0,1,1) の場合、T2 = aiT0 且つT3 = aiT2 を満たすｉが存在すれば、ｉ位置でのシングルブロックエラーが発生しているものと判定され、存在しなければダブルブロックエラーが発生しているものと判定される。また、(R0,R1,R2,R3) = (0,1,1,1) の場合、T2 = aiT3 且つT3 = aiT1 を満たすｉが存在すれば、ｉ＋８位置でのシングルブロックエラーが発生しているものと判定され、存在しなければダブルブロックエラーが発生しているものと判定される。なお、ｉ＝０，１，２，…，７である。
【００５８】
次に、上述のような論理でデータエラーの判定・訂正を行なうエラー訂正回路４０において、障害の有無を検出するチェック動作について説明する。
エラー訂正対象の読出データRD<0:63,C0:C15> が本実施形態のチェック機能付きエラー訂正回路４０に入力されると、シンドローム作成部４１では、入力された読出データRD<0:63,C0:C15> に基づいてシンドロームSYND<0:15>が前述のようにして算出・作成され、シンドロームデコード部４２に入力される。
【００５９】
シンドロームデコード部４２は、シンドロームSYND<0:15>をデコードし、読出データRD<0:63,C0:C15> に訂正可能なエラーが発生している場合、シンドロームSYND<0:15>に基づいて訂正ビットを特定し、そのビットを指示するデータ訂正信号DCS<0:63> をデータ訂正部４３に出力する。シンドロームSYND<0:15>をデコードした結果、訂正不可能なエラーが発生していることが判明した場合、シンドロームデコード部４２は、その旨をＣＰＵ１に報告する。
【００６０】
データ訂正部４３は、読出データRD<0:63,C0:C15> に訂正可能なエラーが発生している場合、シンドロームデコード部４２からのデータ訂正信号DCS<0:63> に応じて、読出データRD<0:63,C0:C15> のうちのエラービットを訂正した後、ＣＰＵ１へ出力する。なお、読出データRD<0:63,C0:C15> にエラーが発生していない場合、データ訂正部４３は、メモリ２からの読出データRD<0:63,C0:C15> をそのままＣＰＵ１へ出力する。
【００６１】
データ訂正部４３で訂正されたデータは、排他的論理和ゲート４８により訂正前のデータRD 1L<0:63>と比較される。これにより、どのビットが訂正されたか、つまり訂正ビット位置CBL<0:63> が検出される。また、これと同時に、訂正前の読出データRD 1L<0:63,C0:C15> を、チェック用シンドローム作成部４６およびチェック用シンドロームデコード部４７を通すことにより、訂正すべきデータのビット位置を指示しうるチェック用データ訂正信号DCSC<0:63>が得られる。
【００６２】
チェック用データ訂正信号DCSC<0:63>で指示されるビット位置と、排他的論理和ゲート４８からの訂正ビット位置CBL<0:63> とは、通常一致しなければならないので、これらビット位置を排他的論理和ゲート４９で比較することにより、読出データRD<0:63,C0:C15> の入力側からデータ訂正部４３に至るまでの回路上の故障や、データ訂正部４３による訂正エラーなどを発見することができる。
【００６３】
このとき、排他的論理和ゲート４９からのECB<0:63> は、排他的論理和ゲート４８からの訂正ビット位置CBL<0:63> と、チェック用シンドロームデコード部４７からのチェック用データ訂正信号DCSC<0:63>とをビット毎に比較した結果である。このECB<0:63> に“１”のビットがある場合、つまり、エラーが検出された場合、“１”の立ったビット位置において、訂正されたビット位置CBL<0:63> と、訂正すべきビット位置を示すDCSC<0:63>とが一致していないということである。
【００６４】
即ち、データ訂正部４３で訂正を施したビットと、訂正前の読出データRD 1L<0:63>から得られた訂正すべきビット位置とが一致していないということであり、シンドローム作成部４１，シンドロームデコード部４２，データ訂正部４３，チェック用シンドローム作成部４６およびチェック用シンドロームデコード部４７と、これらをつなぐ信号線とのどこかで異常が生じたものと判断することができる。また、誤って訂正されたビットの位置は、ECB<0:63> において“１”の立ったビットとして、確実に特定されることになる。
【００６５】
また、本実施形態のチェック機能付きエラー訂正回路４０では、シンドローム作成部４１からのシンドロームSYND<0:15>とチェック用シンドローム作成部４６からのチェック用シンドロームSYNDC<0:15> とを、排他的論理和ゲート５０で比較することにより、シンドロームSYND<0:15>が正常であるかどうかを判断している。排他的論理和ゲート５０による比較結果が不一致であった場合、つまり、排他的論理和ゲート５０からの出力であるSE<0:15>に“１”のビットがある場合、２つのシンドローム作成部４１，４６のうちのどちらかで不具合が生じたものと判断することができる。
【００６６】
ここで、訂正不可能なデータエラーが発生している場合、シンドロームデコード部４２は、そのことを検知して報告する。また、シンドローム作成部４１における回路異常等によってその出力のシンドロームSYND<0:15>が訂正不可能なエラーを表すシンドロームとなった場合も、シンドロームデコード部４２は訂正不可能なエラーであることを報告する。
【００６７】
後者のようにシンドローム作成部４１における回路異常等によって訂正不可能なエラーが生じた場合には、通常、シンドローム作成部４１からのシンドロームSYND<0:15>とチェック用シンドローム作成部４６からのチェック用シンドロームSYNDC<0:15> とは不一致となる。このとき、前述した通り、排他的論理和ゲート５０からの出力であるSE<0:15>に、“１”のビットが存在することになるので、シンドローム作成部４１における回路異常等に起因して訂正不可能なエラーが生じたものと判断することができる。
【００６８】
一方、前者のようにエラー訂正対象のデータに元々訂正不可能なエラーが発生している場合には、通常、シンドローム作成部４１からのシンドロームSYND<0:15>とチェック用シンドローム作成部４６からのチェック用シンドロームSYNDC<0:15> とが一致するため、排他的論理和ゲート５０からの出力であるSE<0:15>は全て“０”のまま、つまり、シンドロームエラーは報告されない。
【００６９】
従って、訂正不可能なエラーが発生した場合、排他的論理和ゲート５０による比較結果SE<0:15>を参照することにより、そのエラーが、元々のデータに発生しているものであるか、シンドローム作成部４１における回路異常等によって生じたものかを区別することが可能になる。
また、エラー訂正対象の読出データRD<0:63,C0:C15> にエラーが発生していない場合や、エラー訂正対象のデータRD<0:63,C0:C15> に訂正可能なエラーが発生している場合には、排他的論理和ゲート４９〜５１からの出力ECB<0:63> ，SE<0:15>，DCSE<0:63>に基づいて、エラー訂正回路４０における障害の発生部位を特定することができる。
【００７０】
例えば、SE<0:15>，DCSE<0:63>の全てのビットが“０”である時に排他的論理和ゲート４９からのECB<0:63> に“１”のビットが存在する場合、つまり、排他的論理和ゲート４９による比較結果のみが不一致である場合には、データ訂正部４３に障害が有るものと判断することができる。
また、SE<0:15>の全てのビットが“０”である時に排他的論理和ゲート４９からのECB<0:63> に“１”のビットが存在し且つ排他的論理和ゲート５１からのDCSE<0:63>に“１”のビットが存在する場合、つまり、排他的論理和ゲート４９および５１による比較結果がいずれも不一致である場合には、シンドロームデコード部４２（もしくはチェック用シンドロームデコード部４７）のどこかに障害が有るものと判断することができる。
【００７１】
次に、本実施形態のチェック機能付きエラー訂正回路４０においてエラーが発生した時に、どのようなチェック動作が行なわれるかについて、より具体的に説明する。
〔１〕読出データRD<0:63,C0:C15> がエラーをもたない場合
シンドローム作成部４１、もしくは、このシンドローム作成部４１からのシンドロームSYND<0:15>を受けるラッチ４４が故障した場合、シンドロームSYND<0:15>が破壊される。シンドロームデコード部４２は、破壊されたシンドロームSYND<0:15>を受けて、発生したエラーが訂正可能か不可能かを判断し、訂正不可能と判断した場合、その旨を報告する一方、訂正可能と判断した場合、データ訂正信号DCS<0:63> をデータ訂正部４３へ出力する。
【００７２】
データ訂正部４３は、データ訂正信号DCS<0:63> に基づいて、読出データRD 1L<0:63>を訂正してから出力する。このように訂正を行なった場合、訂正前のデータRD 1L<0:63>と訂正後のデータとは、排他的論理和ゲート４８で比較され、データ訂正部４３により訂正されたビットの位置CBL<0:63> が得られる。
同時に、チェック用シンドローム作成部４６およびチェック用シンドロームデコード部４７により、読出データRD 1L<0:63,C0:C15> に基づいて、訂正すべきビットの位置を示すチェック用データ訂正信号DCSC<0:63>が得られる。
【００７３】
今、読出データRD 1L<0:63,C0:C15> はエラーをもたないので、DCSC<0:63>の全てのビットは“０”となる。このため、CBL<0:63> とDCSC<0:63>とを比較すると明らかに不一致のビットが存在し、排他的論理和ゲート４９からのECB<0:63> によりエラーが報告される。同様に、DCS<0:63> とDCSC<0:63>とを比較しても明らかに不一致のビットが存在し、排他的論理和ゲート５１からのDCSE<0:63>によりエラーが報告される。
【００７４】
このとき、シンドローム作成部４１およびラッチ４４を経由したシンドロームSYND<0:15>と、これらを経由していない読出データRD 1L<0:63,C0:C15> に基づいてチェック用シンドローム作成部４６で作成されたチェック用シンドロームSYNDC<0:15> とも不一致となり、排他的論理和ゲート５０からのSE<0:15>によりシンドロームエラーが報告される。これにより、少なくとも、シンドローム作成部４１もしくはラッチ４４で何らかの障害が発生していることを認識できる。
【００７５】
また、シンドロームデコード部４２で故障が発生したためにデータ訂正部４３で誤った訂正がなされた場合には、前述と同様、チェック用シンドロームデコード部４７からのDCSC<0:63>の全てのビットは“０”であるにも係わらず、CBL<0:63> およびDCS<0:63> には“１”のビットが存在することになり、排他的論理和ゲート４９からのECB<0:63> と排他的論理和ゲート５１からのDCSE<0:63>とによりエラーが報告される。しかし、このときは、シンドロームSYND<0:15>とチェック用シンドロームSYNDC<0:15> とが一致するため、排他的論理和ゲート５０からのSE<0:15>の全てのビットは“０”となる。このようなエラー報告から、少なくとも、シンドロームデコード部４２で何らかの障害が発生していることを認識できる。
【００７６】
さらに、データ訂正部４３で障害が発生しているために、データ訂正部４３で誤った訂正がなされた場合には、シンドロームデコード部４２からのDCS<0:63> の全てのビットとチェック用シンドロームデコード部４７からのDCSC<0:63>の全てのビットとは“０”であるにも係わらず、CBL<0:63> には“１”のビットが存在することになり、排他的論理和ゲート４９からのECB<0:63> によりエラーが報告される。このとき、DCS<0:63> とDCSC<0:63>とは一致するので、排他的論理和ゲート５１からのDCSE<0:63>の全てのビットは“０”となるとともに、排他的論理和ゲート５０からのSE<0:15>の全てのビットは“０”となる。このようなエラー報告から、データ訂正部４３で何らかの障害が発生していることを認識できる。
【００７７】
〔２〕読出データRD<0:63,C0:C15> が訂正可能なエラーをもつ場合
シンドローム作成部４１、もしくは、このシンドローム作成部４１からのシンドロームSYND<0:15>を受けるラッチ４４が故障し、シンドロームSYND<0:15>が破壊されると、そのシンドロームSYND<0:15>は、訂正不可能なエラーを示すシンドローム、もしくは、読出データRD<0:63,C0:C15> における実際のエラービットの位置とは異なる位置のビットを訂正ビットとして指示するシンドロームに変わってしまう。
【００７８】
前者のようにシンドロームSYND<0:15>が変化した場合には、シンドロームデコード部４２は、訂正不可能なエラーが発生した旨を報告する。
一方、後者のようにシンドロームSYND<0:15>が変化した場合、シンドロームデコード部４２は、データ訂正信号DCS<0:63> をデータ訂正部４３へ出力し、データ訂正部４３は、データ訂正信号DCS<0:63> に基づいて、読出データRD 1L<0:63>を訂正してから出力する。このように訂正を行なった場合、本来の読出データRD<0:63,C0:C15> のエラービットの位置つまりチェック用シンドロームデコード部４７からのDCSC<0:63>と、データ訂正信号DCS<0:63> とが異なり、そのデータ訂正信号DCS<0:63> に基づいて訂正されたビット位置CBL<0:63> と、チェック用シンドロームデコード部４７からのDCSC<0:63>とも異なる。従って、排他的論理和ゲート４９からのECB<0:63> と排他的論理和ゲート５１からのDCSE<0:63>とによりエラーが報告される。
【００７９】
このとき、シンドローム作成部４１およびラッチ４４を経由したシンドロームSYND<0:15>と、これらを経由していない読出データRD 1L<0:63,C0:C15> に基づいてチェック用シンドローム作成部４６で作成されたチェック用シンドロームSYNDC<0:15> とも不一致となり、排他的論理和ゲート５０からのSE<0:15>によりシンドロームエラーが報告される。これにより、少なくとも、シンドローム作成部４１もしくはラッチ４４で何らかの障害が発生していることを認識できる。
【００８０】
また、シンドロームデコード部４２で障害が発生した場合にも、データ訂正部４３において、読出データRD<0:63,C0:C15> における実際のエラービットの位置とは異なる位置のビットを訂正してしまう。このように訂正を行なった場合も、本来の読出データRD<0:63,C0:C15> のエラービットの位置つまりチェック用シンドロームデコード部４７からのDCSC<0:63>と、データ訂正信号DCS<0:63> とが異なり、そのデータ訂正信号DCS<0:63> に基づいて訂正されたビット位置CBL<0:63> と、チェック用シンドロームデコード部４７からのDCSC<0:63>とも異なる。従って、排他的論理和ゲート４９からのECB<0:63> と排他的論理和ゲート５１からのDCSE<0:63>とによりエラーが報告される。しかし、このときは、シンドロームSYND<0:15>とチェック用シンドロームSYNDC<0:15> とが一致するため、排他的論理和ゲート５０からのSE<0:16>の全てのビットは“０”となる。このようなエラー報告から、少なくとも、シンドロームデコード部４２で何らかの障害が発生していることを認識できる。
【００８１】
さらに、データ訂正部４３で障害が発生しているために、データ訂正部４３で誤った訂正がなされた場合には、シンドロームデコード部４２からのDCS<0:63> とチェック用シンドロームデコード部４７からのDCSC<0:63>とは同じであるにも係わらず、CBL<0:63> がDCSC<0:63>と違う値をもってしまい、排他的論理和ゲート４９からのECB<0:63> によりエラーが報告される。このとき、DCS<0:63> とDCSC<0:63>とは一致するので、排他的論理和ゲート５１からのDCSE<0:63>の全てのビットは“０”となるとともに、排他的論理和ゲート５０からのSE<0:16>の全てのビットは“０”となる。このようなエラー報告から、データ訂正部４３で何らかの障害が発生していることを認識できる。
【００８２】
〔３〕読出データRD<0:63,C0:C15> が訂正不可能なエラーをもつ場合
シンドローム作成部４１、もしくは、このシンドローム作成部４１からのシンドロームSYND<0:15>を受けるラッチ４４が故障している時には、シンドローム作成部４１およびラッチ４４を経由したシンドロームSYND<0:15>と、これらを経由していない読出データRD 1L<0:63,C0:C15> に基づいてチェック用シンドローム作成部４６で作成されたチェック用シンドロームSYNDC<0:15> とが異なり、排他的論理和ゲート５０からのSE<0:15>によりシンドロームエラーが報告される。
【００８３】
また、シンドロームデコード部４２で障害が発生した場合、ほとんどの場合、シンドロームデコード部４２により訂正不可能なエラーが報告されることになる。ごく稀に、シンドロームデコード部４２が、訂正可能なエラーが生じているものと認識し、データ訂正信号DCS<0:63> をデータ訂正部４３へ出力したとしても、CBL<0:63> とチェック用シンドロームデコード部４７からのDCSC<0:63>との間で矛盾（不一致）が生じ、排他的論理和ゲート４９からのECB<0:63> によりエラーが報告される。
【００８４】
このように、本発明の一実施形態によれば、エラー訂正回路４０の故障に起因する訂正エラーを確実に検出でき、その訂正エラーの発生ビットを特定できるとともに、エラー訂正回路４０に障害の発生箇所についても、ある程度特定することができる。従って、コンピュータシステムや通信装置などの、デジタルデータを取り扱う装置の信頼性を大幅に高めることができる。
【００８５】
ところで、図５は、本発明の一実施形態としてのチェック機能付きエラー訂正回路の変形例の構成を示すブロック図である。この図５に示す変形例では、本実施形態のチェック機能付きエラー訂正回路４０が、非同期回路から入力される非同期信号をエラー訂正対象のデータとしている。この場合、図５に示すように、図２に示したものと同様のチェック機能付きエラー訂正回路４０の前段に所定段数のラッチ５２が直列的に挿入される。なお、図５に示すチェック機能付きエラー訂正回路４０では、ラッチ４４，４５が最終段のラッチとなっている。
【００８６】
従来、エラー訂正回路前段に挿入するラッチの段数は、メタステーブル状態の発生確率をどの程度まで抑制するかに応じて決定されている。つまり、メタステーブル状態の発生確率を極めて小さくしたい場合には、挿入すべきラッチの段数を多くする必要がある。このようにラッチの段数が増加すると、前述した通り、データを受け取ってから実際に利用するまでにかかる時間が長くなってしまうほか、ラッチの段数を多くしたとしても、メタステーブル状態が全く起こり得なくなるわけではない。
【００８７】
しかし、本実施形態のチェック機能付きエラー訂正回路４０では、万一、メタステーブル状態が生じ、ラッチ４４で受けるシンドロームの値とラッチ４５で受けるデータの値とに矛盾を生じたとしても、その矛盾が、前述のごとく、訂正エラーとして常に確実に検出することができる。
従って、どうしても避けられないメタステーブル状態が発生したとしても、本実施形態のチェック機能付きエラー訂正回路４０では訂正データの妥当性をチェックできる。このため、メタステーブル状態に起因するエラーをもったデータを正常なデータとして出力してしまいメタステーブル状態がシステム全体の重大なエラーへと発展するような事態を、確実に回避することができる。
【００８８】
このように、本実施形態のチェック機能付きエラー訂正回路４０を用いることにより、メタステーブル状態に起因する訂正エラーをも確実に検出・回避することができる。また、メタステーブル状態に起因する訂正エラーを確実に検出・回避することができるので、メタステーブル状態を解消するためのラッチ５２の段数を少なくすることができ、データを受け取ってから実際に利用するまでにかかる時間を短くすることができる。つまり、システムの高い信頼性を保ちながら、メタステーブル状態の回避に要する時間を短縮することができ、動作速度の高速化を実現することができる。
【００８９】
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００９０】
【発明の効果】
以上詳述したように、本発明のエラー訂正回路のチェック方法（請求項１）およびチェック機能付きエラー訂正回路（請求項２〜請求項５）によれば、エラー訂正回路の故障に起因する訂正エラーやメタステーブル状態に起因する訂正エラーを確実に検出できるとともに、その訂正エラーの発生ビットや障害の発生箇所を特定できるので、デジタルデータを取り扱うシステムの信頼性を大幅に高めることができるとともに、メタステーブル状態の回避に要する時間を短縮して動作速度の高速化を実現することができる。
【図面の簡単な説明】
【図１】本発明のチェック機能付きエラー訂正回路の原理的な構成を示すブロック図である。
【図２】本発明の一実施形態としてのチェック機能付きエラー訂正回路の構成を示すブロック図である。
【図３】Ｓ４ＥＣ−Ｄ４ＥＤのＨマトリクスを示す図である。
【図４】データエラーの判定論理を示す図である。
【図５】本発明の一実施形態としてのチェック機能付きエラー訂正回路の変形例の構成を示すブロック図である。
【図６】一般的なエラー訂正回路（ＥＣＣ）を有するシステムの構成を示すブロック図である。
【図７】一般的なエラー訂正回路（ＥＣＣ）の構成を示すブロック図である。
【符号の説明】
１  ＣＰＵ
２  メモリ
３  チェックビット作成・付加回路
４  エラー訂正回路（ＥＣＣ）
１０  チェック機能付きエラー訂正回路
１１  第１シンドローム作成部
１２  第１シンドロームデコード部
１３  データ訂正部
１４  第２シンドローム作成部
１５  第２シンドロームデコード部
１６  第１比較部
１７  第２比較部
１８  第３比較部
１９  第４比較部
４０  チェック機能付きエラー訂正回路
４１  シンドローム作成部（ＳＧ；第１シンドローム作成部）
４２  シンドロームデコード部（ＳＤ；第１シンドロームデコード部）
４３  データ訂正部（ＣＲ）
４４，４５  ラッチ
４６  チェック用シンドローム作成部（ＳＧＣ；第２シンドローム作成部）
４７  チェック用シンドロームデコード部（ＳＤＣ；第２シンドロームデコード部）
４８  排他的論理和ゲート（E-OR；第１比較部）
４９  排他的論理和ゲート（E-OR；第２比較部）
５０  排他的論理和ゲート（E-OR；第３比較部）
５１  排他的論理和ゲート（E-OR；第４比較部）
５２  ラッチ
【図１】
0004213814.tif 000008
【図２】
0004213814.tif 000009
【図３】
0004213814.tif 000010
【図４】
0004213814.tif 000011
【図５】
0004213814.tif 000012
【図６】
0004213814.tif 000013
【図７】
0004213814.tif 000014