(57)【特許請求の範囲】
【請求項１】
データメッセージの伝送中に配線故障を検出するための方法であって、前記データメッセージは、データ部と、前記データ部に関連づけられた第１のエラーコード（ＥＣ）部とからなり、
前記データ部および前記第１のＥＣ部に存在する特定ビットの数を表すカウンタ値を決定するステップであって、前記特定ビットが、２進数の１と２進数のゼロからなるグループから選択される、ステップと、
前記カウンタ値に関連づけられる第２のＥＣ部を形成するステップと、
前記カウンタ値および前記第２のＥＣ部とともに前記データメッセージを符号化するステップと、
前記データメッセージの伝送中に、配線故障によるエラーが前記データ部に存在するか否かを判定するために、受信体が、前記符号化されたカウンタ値を使用するステップ
を含む、方法。
【請求項２】
前記使用するステップが、
前記メッセージを、前記データ部及び前記第１のＥＣ部からなる第１のサブメッセージと、前記カウンタ値及び前記第２のＥＣ部からなる第２のサブメッセージとを有する、少なくとも２つのサブメッセージに分割するステップと、
前記第１及び第２のサブメッセージを復号化するステップと、
前記第１のサブメッセージに存在する特定ビットの数を表す別のカウンタ値を決定するステップと、
前記別のカウンタ値と前記第２のサブメッセージのカウンタ値を比較するステップと、
前記比較ステップが、前記別のカウンタ値が前記第２のサブメッセージのカウンタ値と異なることを示す場合に、エラーを通知するステップ
を含む、請求項１の方法。
【請求項３】
データメッセージの伝送中に配線故障を検出するための方法であって、前記データメッセージは、データ部分を含み、
前記データ部分に存在する特定ビットの数を表すカウンタ値を決定するステップであって、前記特定ビットが、２進数の１と２進数のゼロからなるグループから選択される、ステップと、
高次ビットを除去することにより前記カウンタ値の切り捨てを行うステップであって、これにより、残りのビットの数が、前記データ部分を伝送するのに必要なサイクル数の２倍に等しい数までカウントするのに十分なものとなるようにする、ステップと、
前記切り捨てがなされたカウンタ値とともに前記データメッセージを符号化するステップと、
前記データメッセージの伝送中に、配線故障によるエラーが前記データ部分に存在するか否かを判定するために、受信体が、前記符号化されたカウンタ値を使用するステップ
を含む、方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、エラー訂正コードに関し、より詳細には、配線故障、特に縮退故障（stuck-at-fault）による配線故障を検出するエラー訂正コードに関する。
【０００２】
【従来の技術】
従来技術において、配線を介して伝送されるデータは、エラーを生じやすい。すなわち、２進数の１が歪んで２進数の０として現れ、またその逆の場合もある。エラーは、データストリームの１ビットがエラーとなるシングルビットエラーの場合もあり、データストリームの２ビットがエラーとなるダブルビットエラーの場合もある。なお、典型的には、データは、１本の配線ではなく１組の配線を介して伝送されるが、１本及び複数本の配線伝送システムのいずれにおいても、エラーが生じる可能性がある。さらに、データは、配線の数よりはるかに多いため、複数サイクルで送信され、たとえば、１６本の配線が４回のサイクルで６４ビットを送信する。したがって、複数サイクルでエラーが生じるおそれがある。システムの中には、データをパケット化する、すなわち、特定のサイズのデータパケットでデータを送出する、ものもある。したがって、異なるデータパケットでエラーが生じる可能性がある。典型的なエラーの原因の１つは、配線故障である。配線のショートまたは断線により、故障信号が配線で送出され得る。これらの故障は、２つのタイプのうちの一つに分類される。第１のタイプは、配線が１縮退故障(stuck-at-one)または０縮退故障(stuck-at-zero)である場合である。この場合、入力に関係なく、配線は、１（１縮退故障の場合）またはゼロ（０縮退故障の場合）のみを中継し、信号を切り換えることはない。第２のタイプは、悪質な(malicious)故障である。このタイプの故障では、入力がどうであれ配線の出力が切り替わっていく。たとえば、入力がゼロの場合、配線出力は１またはゼロのいずれかとなり、入力が１であっても、配線出力は１またはゼロのいずれかとなる。すなわち、配線の挙動は予測不能である。さらに、配線故障が正しい結果を搬送することがあるため、エラーが隠されてしまう場合がある。
【０００３】
かかるエラーを検出するために、ＥＣＣコードをデータとともに伝送する。巡回符号は、配線故障を検出することができるＥＣＣコードの一種である。巡回符号は、重要なコードのクラスである。これらのコードのジェネレータ／パリティマトリクスは、行(row)の周期的なシフトにより形成される。これらは、多数のランダムエラー、バイトエラーおよびバーストエラーを検出／訂正するのに効率的な巡回符号である。巡回符号については、T.R.N., RaoおよびE. Fujiwaraによる「Error Control Coding for Computer Systems」（Prentice Hall, Englewood Cliffs, New Jersey 07632,ISBN 0-13-28395-9）に詳細が記載されており、参照によりこれを本明細書中に組み込む。巡回符号は、悪質な故障を検出することを目的としており、従って、故障は、悪質な故障であると推定する。巡回符号は後者を対象にしているため、縮体故障を検査する場合よりも多くのビットを必要とし、必要なビット数は、設計者が残しておかなければならないビット数より多いことがある。たとえば、３２バイト（＝２５６ビット）からなるデータメッセージを想定する。シングルビットエラー訂正およびダブルビットエラー検出を可能にするために、１０ビットが余分に必要であり、シングルエラー訂正には９ビットが必要となるが、これは、２9が（２５６＋９）より大きい２のべき数のうち最も小さいベキ数であるからである。１０番目のビットは、ダブルビットエラーを検出するために使用され、合計２６６ビットになる。したがって、シングルエラー訂正およびダブルエラー検出を行うために１０ビットが必要になる。これら２６６ビットを１０本の配線で送る場合、６本の配線が２７ビットを搬送し、４本の配線が２６ビットを搬送する。したがって、配線故障が最大２７ビットに影響を及ぼす。悪質な配線故障を検出するために、２７の追加ビットが必要となるが、これについては、RaoおよびFujiwaraによる前記書籍にある、（γ度の）ｇ（ｘ）により生成された巡回符号が、長さγ以下の任意のバーストを検出できるという定理３．７を参照されたい。これにより、合計２９３ビットで、配線故障に加えて２本の連続配線にわたる長さ２７以下の任意のバーストを検出する。したがって、合計３７ビットがエラー検出に必要となる。これによるオーバーヘッドは大きく、伝送用のシステム資源の多くの部分が消費される。
【０００４】
３７ビットは２９３ビットのわずか１３％にすぎないが、より高い割合のオーバヘッドは、エラー検出、特にデータをブロックまたはパケットで伝送する時に必要な余分なビットに起因することがある。たとえば、１ブロックのデータが、１０本の配線にわたる７サイクルのデータで構成され、１ブロックあたり合計７０ビットであるとする。このとき、２５６ビットでは４ブロック（３．６ブロックを切り上げる）、２９３ビットでは５ブロック（４．１ブロックを切り上げる）がそれぞれ必要となる。したがって、エラー検出には余分なブロック、すなわち２０％の余分なビットが必要になる。
【０００５】
データ伝送にオーバヘッドが生じることに加え、巡回符号は、実施するのがより複雑である。受信側でデコードすることは、巡回符号を実施するための多くの異なる手段が存在するので複雑である。
【０００６】
【発明が解決しようとする課題】
したがって、大きなオーバヘッドを生じず、かつ、実施が容易な配線縮退故障を検出するエラー検出メカニズムが当該技術において必要とされている。
【０００７】
【課題を解決するための手段】
これら及びその他の目的、特徴および技術的利点は、エラー検出メカニズム（エラー検出手段）を用いて配線縮退故障を検出するシステムおよび方法により達成される。本メカニズムを用いて、配線縮退故障検出が可能な既存のＥＣＣコードを強化することが可能である。たとえば、既存のＥＣＣコードは、データ伝送においてランダムなシングルエラーやダブルエラー（ＳＥＣ−ＤＥＤ）を検出できるが、一方、本発明のメカニズムは、配線故障を検出し、その故障した配線上を伝送されたデータのエラーを特定する。本発明のメカニズムは、メッセージ用の既存のＥＣＣコードを含む、メッセージ内の１（または０）の数を決定して、この情報をそのメッセージに付加する。このカウント値は、それ自体、メッセージに使用される同一のＥＣＣコードにより保護される。受信側でメッセージを復号化（デコード）する場合、任意の配線障害による縮退故障（縮退故障配線障害、配線縮退故障）が、付加された情報をメッセージの内容と比較することにより検出される。
【０００８】
本メカニズムは、配線縮退故障を検出することに加え、復号後のデータ部分において、０から１への遷移数が１から０への遷移数に等しくない場合、任意の数の複数エラー検出することもできる。従来技術の巡回符号に対する本発明のメカニズムの利点は、必要なチェックビットの数が少なくて済むことと、実施が比較的簡単であること、そして、必要な追加チェックビットの数と配線故障検出をトレードオフできることである。本発明のメカニズムは、コードワードが、配線故障が生じている状態で複数サイクルにわたって伝送される際に生じる複数エラーの検出に特に有用である。
【０００９】
本発明のメカニズムは、縮退故障および最も悪質な配線故障を検出するものである。本発明のメカニズムは、すべての悪質な配線故障を検出するものではなく、特に、ＥＣＣ復号後に０から１への遷移数が１から０への遷移数と等しい場合には、配線故障を検出しない。したがって、本発明は、データ伝送において、１または０の数を変化させる予測可能な故障、たとえば、配線が０または１に固定される縮退故障、を検出することを主な目的とする。本発明のメカニズムは、データ伝送において使用される配線数に応じてスケーリングすることが可能である。
【００１０】
以上、以下の発明の詳細な説明をよりよく理解できるように、本発明の特徴および技術的利点をかなり広義に概説した。本発明の特許請求の範囲の主題を構成する本発明の他の特徴および利点を以下で説明する。なお、開示された概念および特定の実施形態を、本発明と同じ目的を実施するための他の構造を修正または設計する基本として、容易に利用することができるということは当業者には明らかであろう。また、かかる等価な構成が、特許請求の範囲に記載される本発明の思想および範囲から逸脱しないことも当業者には理解されるはずである。
【００１１】
【発明の実施の形態】
本発明およびその利点をより十分に理解できるようにするために、添付図面を参照して以下に説明する。
【００１２】
本発明のエラー検出メカニズムは、図１に示すようにメッセージを符号化する。本発明のメカニズムにより、エラー訂正コード（ＥＣＣ）（もしあれば）が、実データに作用する（または、演算を施す）ことができる（１１）。次に、本メカニズムは、データビットおよび関連するＥＣＣチェックビット（もしあれば）を、その「データ」として処理し、これを配線縮退故障から保護する。本発明のメカニズムは、データ部分、すなわち、実データおよびチェックビットにおける１の数をカウントし（１２）、この数をカウンタ値として記憶する。本発明のメカニズムは、カウンタ値がデータ部分と同一のＥＣＣ方式により保護されるようにＥＣＣチェックビットを追加する（１３）ことによってカウンタ値ビットを保護することができる。したがって、本発明のメカニズムは、４つの部分、すなわち、図２に示すように、実データ部２１と、実データを保護するＥＣＣチェックビット２２と、実データとそのチェックビットにおける１の数を有するカウンタ値２３と、データ部と同一のＥＣＣ能力でカウンタ値を保護するチェックビット２４とから構成されるデータメッセージ２０を形成する（１４）。したがって、伝送メッセージは、実データ、実データＥＣＣ、カウンタ値およびカウンタ値ＥＣＣで符号化される。そしてメッセージは、伝送線または他の伝送システムを介して目的地に伝送される。なお、シングルエラー訂正およびダブルエラー検出（ＳＥＣ−ＤＥＤ）コードのＥＣＣ能力に関して本発明を説明したが、本発明は、パリティを含む任意のＥＣＣコードを用いて動作することもできる。さらに、１の数をカウントすることに関して本発明を説明したが、本発明は、１をカウントする代わりに０をカウントすることによって演算することもできる。
【００１３】
メッセージの宛先に配置される本発明のメカニズムの第２の例は、図３に示すようにメッセージを復号化する。復号時、メッセージは２つのサブメッセージに分割される（３１）。第１のサブメッセージは実データと実データＥＣＣからなり、第２のサブメッセージはカウンタ値とカウンタ値ＥＣＣからなる。第１および第２のサブメッセージは、次に符号化に使用されたＥＣＣメカニズムにしたがって別々に復号される（３２）。実データまたはカウンタ値のいずれかにシングルビットエラーがあれば、これを検出してそれぞれのＥＣＣにより訂正する（３３）。実データまたはカウンタ値のいずれかにダブルエラーがあれば、それぞれのＥＣＣによりこれを検出する（３３）。ダブルエラーが発見されると、メッセージは破棄され、再送またはリトライ信号がメッセージの送信元に送信される。ＳＥＣ−ＤＥＤが完了すると、配線故障を検出することができる。次に、本発明のメカニズムは、復号化された実データと実データＥＣＣにおける１の数をカウントする（３４）。復号化されたカウンタ値を、復号化された実データと実データＥＣＣチェックビットにおいてカウントされた１の数と比較（３５）して、配線縮退故障が存在するか否かを判定する（３６）。このチェックにおいて、悪質な配線故障を含む複数エラーが存在していれば、複数エラーが相殺されない限り、これも検出される。なお、悪質な配線故障では、故障した配線により伝送された値がランダムに変更される。複数エラーの相殺は、０から１への遷移数が１から０への遷移数と等しい場合に起こる。カウンタ値が実データと実データＥＣＣにおける１の数と一致しない場合、エラーが通知される（または、エラーフラグが立てられる）（３７）。配線エラーが検出されると、データは破損された（データに誤りがある）とみなされる。別のシステムでは別のエラー回復メカニズムを呼び出すことができる。配線エラーが検出されなかった場合は、メッセージの伝送中に検出可能なエラーが発生しなかった（３８）ということになる。
【００１４】
たとえば、６４ビットの実データを有するメッセージパケットを転送する、１７ビット幅、すなわち１７本の配線幅のチャンネルを考える。さらに、すべてのシングルエラーが訂正され、すべてのダブルエラーが検出され、配線故障が検出されると想定する。ＳＥＣ−ＤＥＤコードでは、（７２，６４）ＥＣＣコードを形成する８チェックビットが必要とされる。このコードは、配線故障を検出する能力を有していないため、最大５つのエラーを招く可能性がある。ここで、７２ビットは１７本の配線上で送信されるため、少なくとも１本の配線がメッセージの５ビットを搬送し、この配線が故障すると、最大５つのエラーが発生することに留意されたい。実データと実データＥＣＣとを足すと７２ビットであるので、実データと実データＥＣＣとを合わせて、合計７２個の１を有することがある。したがって、カウンタ値は７ビット値になる。カウンタ値自体は、（１２，７）ＳＥＣ−ＤＥＤ  ＥＣＣコードを形成する５ビットのＥＣＣにより保護される。このため、本発明のメカニズムにより形成されるメッセージは８４ビットであり、このうち６４ビットが実データである。メッセージは、（８４，６４）コードとなる。符号化されたメッセージは、（チャンネルが１７本の配線で構成されるため）チャンネルを介して５サイクルにわたって伝送される。
【００１５】
カウンタ値は、実データと同一のＥＣＣで保護されるため、メッセージ全体は、所望のＥＣＣ（この場合、ＳＥＣ−ＤＥＤ）で保護されることが保証される。たとえば、カウンタ値がＥＣＣで保護されないとすると、カウンタ値のシングルビットエラーにより、実データに実データＥＣＣを加えたもの（以下ではこれを、実データ＋実データＥＣＣとも記載）に対する１の数に不整合が生じる。この不整合により、誤った配線故障フラグが発光される。さらに、配線エラーは、検出にかからないエラーパターンで発生する場合がある。たとえば、３つのエラーが実データ＋実データＥＣＣの７２ビットにあり、１つのエラーがカウンタ値にある、合計４つのエラーをもたらす配線故障によるエラーパターンがある。（７２，６４）ＥＣＣは、３つのエラーの検出を保証しないため、復号化されたビットパターンに２つまたは４つのエラーが生じうる。カウンタ値のビットの１つが変化すると、誤ったデータが伝送される可能性がある。また、配線故障に伴う他のエラーパターンが検出されない可能性もある。このため、カウンタ値をいくつかのＥＣＣで保護することで、これらの問題を防止する。
【００１６】
しかしながら、カウンタ値にカウンタ値ＥＣＣを加えたもの（以下ではこれを、カウンタ値＋カウンタ値ＥＣＣとも記載）が同一配線上で２ビットを越えることはない。たとえば、伝送用に１７本の配線があれば、ＳＥＣ−ＤＥＤ  ＥＣＣの場合、カウンタ値＋カウンタ値ＥＣＣが３４ビットを越えることはない。すなわち、カウンタ値＋カウンタ値ＥＣＣが、伝送チャンネルの配線幅の２倍を越えることはない。この制限により、配線故障によるカウンタ値のエラーは、ＥＣＣにより確実に検出される。このため、カウンタ値の任意のシングルエラーは訂正され、カウンタ値の任意のダブルエラーは、それが、偶発故障または配線故障によるものであっても、検出することができる。したがって、カウンタ値は、シングルエラー訂正、ダブルエラー検出および配線故障検出により保護される。なお、この制限は、使用されるＥＣＣのタイプが、メッセージのサイズならびに検出可能なエラー数にも影響を及ぼすため、使用されるＥＣＣのタイプによって異なる。たとえば、シングルエラー検出（ＳＥＤ）ＥＣＣを使用する場合、シングルエラーのみが検出可能であるため、カウンタ値とカウンタ値ＥＣＣを加えたものが配線サイズを超えることはないが、ＥＣＣのサイズは、ＳＥＤのビット数がＳＥＣ−ＤＥＤより少ないことから小さくなる。実データ上で使用されるＥＣＣがパリティビットの場合、カウンタ（値）自体およびパリティビットが配線故障に対して保護されるとすれば、パリティビットによりカウンタ値を保護するだけで十分である。一般に、カウンタ値とカウンタ値ＥＣＣを足したもののサイズは、チャンネルのサイズに、ＥＣＣにより検出可能なエラー数を掛けたもののサイズより大きくはない。なお、異なるタイプのＥＣＣを使用することもできる。たとえば、ＳＥＣ−ＤＥＤ  ＥＣＣ、ＳＥＤ  ＥＣＣまたはダブルエラー訂正―トリプルエラー検出ＥＣＣコード、あるいはその他任意のタイプのＥＣＣコードによりデータを保護するこができる。
【００１７】
しかしながら、本発明のエラー検出メカニズムは、カウンタ値とカウンタ値ＥＣＣの合計が上記の制限を上回る状況に適応できるように再構成可能である。たとえば、上述の（７２，６４）コードを用い、チャンネルを１７ビット幅ではなく５ビット幅にする。カウンタ値およびカウンタ値ＥＣＣのサブメッセージは依然として合計１２ビットであり、（１２，７）コードが形成される。このため、サブメッセージの２ビットが、３番目のサイクルで伝送される（すなわち、最初の２サイクルで１０ビットが送信される）。３ビットが少なくとも１本の配線で送信されると、ＳＥＣ−ＤＥＤ  ＥＣＣは、カウンタ値の精度を保証することができない。
【００１８】
第１の解決策は、各カウンタ値それぞれがＥＣＣチェックビットを有する複数のカウンタ値を使用することである。たとえば、ＥＣＣがＳＥＣ−ＤＥＤの場合、カウンタ値およびカウンタ値ＥＣＣチェックビットが配線幅の２倍より大きいときは、第１のカウンタ値とそのＥＣＣチェックビットにおける１の数をカウントすることによって第２のカウンタ値が形成される。第２のカウンタ値は、ＥＣＣチェックビットを添付される。このプロセスは、最後のカウンタ値とそのＥＣＣチェックビットが配線幅の２倍より小さくなるまで再帰的(recursively)に続行される。第１のカウンタ値は（log ｋ）ビットを有する。ここで、ｋは情報ビットの数である。第２のカウンタ値は、必要であれば、（log（log ｋ））ビットを有する。図５は、上記例による第１の解決策を示したものであり、ＳＥＣ−ＤＥＤ  ＥＣＣビットを含む、７２個のデータビット５１、ｄ0…ｄ71と、ＳＥＣ−ＤＥＤ  ＥＣＣビットを含む１２個の第１のカウンタ値ビット５２、Ｃ0…Ｃ11と、を含むデータパケットメッセージ５０が形成されている。この例では第２のカウンタ値が必要とされる。第２のカウンタ値は、第１のカウンタ値における１の数を保持するものであり、１２ビットコードにおける１の数を保持するために４ビット幅である必要がある。４ビットの第２のカウンタ値を保護するために、４ビットのＥＣＣが必要とされる。これにより、（８，４）ＳＥＣ−ＤＥＤコード５３、すなわちＡＣ0…ＡＣ7が形成される。これらの８ビットは、２サイクルで５本の配線上を伝送可能である。第２のカウンタ値および第２のカウンタ値ＥＣＣを３サイクルより少ないサイクルで伝送可能であるため、第３のカウンタは必要ではない。なお、このコードは、第３のサブメッセージを形成し、他の２つのサブメッセージとは別々に復号化される。したがって、合計２０ビットのカウンタ値およびカウンタ値ＥＣＣが実データおよび実データＥＣＣに添付される。
【００１９】
第２の解決策は、カウンタ値を追加せずに、第１のカウンタ値ＥＣＣの選択されたビットを別々に保護するものである。カウンタ値の該ビットは、ＥＣＣ後に、任意のグループにおける合計ビット数がチャンネル幅の２倍を超えないように別々のグループで符号化される。すなわち、カウンタ値の該ビットは複数のＥＣＣコードに分割される。図６は、この例による第２の解決策を示すものであって、ＳＥＣ−ＤＥＤ  ＥＣＣビットを含む、７２個のデータビット６１、ｄ0…ｄ71と、ＳＥＣ−ＤＥＤ  ＥＣＣビットを含む１０個の第１のカウンタ値ビット６２、Ｃ0…Ｃ9と、を含むデータパケットメッセージ６０が形成されている。第１の解決策の場合、カウンタ値とＥＣＣ５２を足したものが１２ビット幅であったが、この例では、コードの全サイズを最大１０ビットとすることができる。７ビットのカウンタ値の５ビットは、５ビットのＥＣＣにより保護可能であり、このため、（１０，５）ＳＥＣ−ＤＥＤ  ＥＣＣコード６２が形成される。なお、１０ビットは２サイクルで伝送されるため、この（１０，５）コードで十分である。カウンタ値の残りの２ビットは、４ビットのＥＣＣで保護され、このため（６，２）コード６３が形成される。したがって、本解決策により、合計１６ビットのカウンタ値およびカウンタ値ＥＣＣが実データおよび実データＥＣＣに添付されることになる。なお、この例では、第２の解決策は、第１の解決策より良好な結果をもたらすが、値が異なると結果も異なる。いずれの解決策においても、カウンタ値は保護される。
【００２０】
以下に別の例を挙げる。６４ビットが５本の配線を用いて伝送され、所望のエラー検出により、配線縮退故障に加えて、任意のシングルエラーも検出する場合を考える。この場合、シングルエラー検出メカニズムは、６５ビット（データに６４ビット＋パリティビットに１ビット）を必要とする。図７は、第１の解決策における、例として６４ビットであるメッセージデータパケット７０を示しており、このパケットは、６４個のデータビット７１、ｄ0…ｄ63と、データビット７１に対するパリティビットＰｄ７２とを含む。このため、６５ビットが５本の配線で伝送されることにより、７ビット幅のカウンタビット、すなわちＣ0〜Ｃ6７３が必要とされる。これらの７ビットのカウンタビットは、別のパリティビットであるＰＣ７４により保護され、従って８ビットが必要となる。これらの８ビットは配線故障を受けやすい（１本の配線を２回通過するビットもある）ため、４ビット幅、すなわちＡＣ0〜ＡＣ3７５の第２のカウンタが必要であり、パリティＰＡＣ７６がこのカウンタビットを合計５ビットで保護する。５本の配線があるため、さらに多くのカウンタは必要ない。第２の解決策は、７ビットカウンタの４ビットを取り、パリティがこれを保護するものである（図８）。残りの３ビットはパリティを別に保護するためのものである。図８は、第２の解決策において、例として６４データビットを有するメッセージデータパケット８０を示しており、このパケットは、６４個のデータビット８１、ｄ0…ｄ63と、データビット８１に対するパリティビットＰｄ８２とを含む。このため、６５ビットが５本の配線で伝送されることにより、７ビットの幅を有するカウンタが必要とされる。第２の解決策は、最大サイズが５ビットとなるように、５本の配線でカウンタ（値）を複数部分に分割する。１つのパリティビットが保護用に必要とされるため、カウンタ（値）は最大４ビットのセグメントに分割される。このため、カウンタ（値）の４ビットＣ0〜Ｃ3８３がパリティビットＰＣＬ８４により保護され、カウンタ（値）の３ビットＣ4〜Ｃ6がパリティビットＰＣＨ８５により保護される。なお、カウンタ（値）は下位４ビットと上位３ビットにセグメント化されるものとして図示されているが、他の分割も可能である。配線（縮退）故障検出によってシングルエラーがカバーされるため、パリティビットはシングルエラーを検出するためには不要である。しかしながら、それらは、配線故障検出がすべてのタイプのＥＣＣ（たとえば、ＳＥＣ−ＤＥＤ）をカバーし得ないため一例として使用される。
【００２１】
第３の解決策は、カウンタ値のサイズを縮小する、すなわち、幅がより小さいカウンタ値を使用することである。カウンタ値が小さいと、サブメッセージが小さくなる。さらに、カウンタ値が小さいと、保護に必要なＥＣＣビットが少なくなり、この結果サブメッセージが小さくなる。上述の例において、チャンネルが１７ビット幅であって、６４ビットの実データと８ビットのＥＣＣチェックビットを有するメッセージパケット９０を転送し、図９に示すような（７２，６４）コードを形成する場合を考える。なお、７２ビットは１７の配線上を５サイクルで送信されるため、少なくとも１本の配線が５ビットのメッセージを搬送し、この配線が故障または縮退故障した場合は、５つのエラーが発生する。従って、配線縮退故障は、−５（すなわち、配線は０に固定されているが、実際の値は１である場合）乃至＋５（すなわち、配線は１に固定されているが、実際の値は０である場合）だけカウンタ（値）に影響を及ぼすにすぎない。したがって、幅４ビットのカウンタ（値）は、１０の幅を許容できるため、この幅のカウンタ（値）で十分である。このため、カウンタ値を保護するために、前述の実施形態で必要される（１２，７）コードではなく、（８，４）ＳＥＣ−ＤＥＤ  ＥＣＣコード９２、すなわち、Ｃ0〜Ｃ7が必要とされる。一般に、カウンタ値は、全コードワードを伝送するサイクル数の２倍の対数（底２）の上限である幅を有する必要がある。したがって、本例では、１６を法とする（モジュロ１６）１の数がカウントされる。これは、１を加え、モジュロ演算を行うことにより実行されるが、カウント中は、全幅を有することになるが、送信中は、余分な上部ビットを切り離すことが可能である。第３の解決策は好ましい実施形態である。
【００２２】
なお、設計者は、（チェックビットの数に換算して）検出とオーバヘッドとをトレードオフすることにより、信頼性を低くした場合に必要とされるビット数よりカウンタ値ビットを少なくすることを決定することもできる。すなわち、カウンタビットの数を、配線縮退故障検出を行うのに必要な数より少なくすることができるが、その場合は、配線縮退故障検出を保証することはできない。
【００２３】
また、カウンタ値および実データビットは、チェックビットに不足がある場合、ともにＥＣＣにより保護され得る（または、結合して保護されるＥＣＣになり得る）。しかしながら、これは、配線故障または縮退故障に対する完全なカバレージを提供するものではない。たとえば、簡単なパリティ保護がなされたデータおよびカウンタ（値）があり、該データにおいて１ビットを変化させ、かつカウンタ（値）（最下位ビット）において１ビットを変化させる配線故障が発生したとする。パリティは、エラーを検出せず、カウンタ（値）もまた検出しない。従って、上記例では、カウンタ（値）に４ビットが、データに６４ビットが必要とされる。これらの６８ビットを保護するために、８ビットのＥＣＣデータが必要とされるため、（７６，６８）ＳＥＣ−ＤＥＤ  ＥＣＣコードが形成される。
【００２４】
さらに、単一の配線故障を検出することができるが、０から１への遷移数が１から０への遷移数と等しい場合には、複数の配線故障を検出できない場合がある。このため、複数の配線故障のいくつかについては検出することができるが、すべての配線故障を検出できるわけではない。
【００２５】
さらに、本発明は、複数の配線を含む任意のデータ伝送環境においても動作可能であり、たとえば、ＬＡＮ、ＷＡＮまたはインターネットを介して接続された２つのコンピュータ間でＥＣＣが使用される。また、本発明は、コンピュータシステム内部の、たとえば、ＲＡＭとＣＰＵ間のデータ伝送にも使用可能である。これは、特にマルチプロセッサシステムについていえる。
【００２６】
図４は、本発明に使用されるように構成されたコンピュータシステム４００を示す。データビットを送信するために使用される配線は、バス４０２、または４０５と４０６を結合するバス、あるいはネットワーク４１２である。システム４００において、中央処理装置（ＣＰＵ）４０１は、バス４０２に結合される。さらに、バス４０２は、ランダムアクセスメモリ（ＲＡＭ）４０３、読み取り専用メモリ（ＲＯＭ）４０４、入出力（Ｉ／Ｏ）カード４０５、通信カード４１１、ユーザインターフェースカード４０８およびディスプレイカード４０９に結合される。ＲＡＭ４０３およびＲＯＭ４０４は、当該技術において周知のように、ユーザとシステムデータとプログラムとを保持する。Ｉ／Ｏカード４０５は、ハードドライブ４０６等の記憶装置をコンピュータシステムに接続する。通信カード４１１は、コンピュータシステムをローカルネットワーク、広域ネットワークまたはインターネットネットワーク４１２に結合するよう構成されている。ユーザインターフェースカード４０８は、キーボード４１３、ポインティングデバイス４０７等のユーザ入力装置をコンピュータシステム４００に結合する。最後に、ディスプレイカード４０９は、ＣＰＵ４０１により駆動されて、表示装置４１０の表示を制御する。ＣＰＵ４０１は、ＨＰ  ＰＡ−８２００等の任意の汎用ＣＰＵとすることができる。しかしながら、本発明は、ＣＰＵ４０１が、本明細書において説明したような本発明の動作をサポートする限り、ＣＰＵ４０１のアーキテクチャにより制限されるものではない。なお、エラーコード（ＥＣ）という用語は、訂正および／または検出を意味する。
【００２７】
本発明およびその利点を詳細に説明してきたが、特許請求の範囲により規定される本発明の思想および範囲から逸脱することなく、本明細書で説明した事項について種々の変更、置換および修正を行うことができることが理解されよう。
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
１．データメッセージの伝送中に配線故障を検出するための方法であって、前記データメッセージ（２０）は、データ部（２１）と、前記データ部に関連づけられた第１のエラーコード（ＥＣ）部（２２）とからなり、
前記データ部および前記第１のＥＣ部に存在する特定ビットの数を表すカウンタ値（２３）を決定するステップ（１２）であって、前記特定ビットが、２進数の１と２進数のゼロからなるグループから選択される、ステップと、
前記カウンタ値に関連づけられる第２のＥＣ部（２４）を形成するステップ（１３）と、
前記カウンタ値および前記第２のＥＣ部を用いて前記データメッセージを符号化するステップ（１４）と、
前記データメッセージの伝送中に、配線故障によるエラーが前記データ部に存在するか否かを判定するために、受信体が、前記符号化されたカウンタ値を使用するステップ
からなる、方法。
２．前記第１のＥＣ部（２２）および前記第２のＥＣ部（２４）が、シングルエラー訂正コードおよびダブルエラー検出コードである、上項１の方法。
３．前記第１のＥＣ部（２２）および前記第２のＥＣ部（２４）が、シングルエラー検出コードである、上項１の方法。
４．前記使用するステップが、
前記メッセージ（２０）を、前記データ部（２１）及び前記第１のＥＣ部（２２）からなる第１のサブメッセージと、前記カウンタ値（２３）及び前記第２のＥＣ部（２４）からなる第２のサブメッセージとを有する、少なくとも２つのサブメッセージに分割するステップ（３１）と、
前記第１及び第２のサブメッセージを復号化するステップ（３２）と、
前記第１のサブメッセージに存在する特定ビットの数を表す別のカウンタ値を決定するステップ（３４）と、
前記別のカウンタ値と前記第２のサブメッセージのカウンタ値を比較するステップ（３５）と、
前記比較ステップが、前記別のカウンタ値が前記第２のサブメッセージのカウンタ値と異なることを示す場合に、エラーを通知するステップ（３７）
からなる、上項１の方法。
５．前記使用するステップが、
前記第１のＥＣ部（２２）によって前記第１のサブメッセージにおけるエラーを検出するステップと、
前記第２のＥＣ部（２４）によって前記第２のサブメッセージにおけるエラーを検出するステップ
をさらに含み、
エラー検出する前記ステップが、別のカウンタ値を決定する前記ステップに先立って行われる、上項４の方法。
６．前記カウンタ値（２３）と前記第２のＥＣ部（２４）のサイズが、前記メッセージの伝送時に使用される伝送経路の幅と比較して、前記第２のＥＣ部により保護可能なサイズより大きく、
先行するカウンタ値および先行するのＥＣ部に存在する特定ビットの数を表す次のカウンタ値を生成するステップと、
前記次のカウンタ値と関連づけられた次のＥＣ部を形成するステップと、
前記次のカウンタ値と前記次のＥＣ部のサイズが、前記伝送経路の幅と比較して、前記次のＥＣ部により保護可能なサイズ程度（または、サイズ以下）になるまで、前記生成するステップと形成するステップを繰り返すステップ
からさらになる、上項１の方法。
７．前記カウンタ値（２３）および前記第２のＥＣ部（２４）のサイズが、前記メッセージの伝送時に使用される伝送経路の幅と比較して、前記第２のＥＣ部により保護可能なサイズより大きく、
前記カウンタ値を複数のカウンタ値部分に分割するステップと、
複数のＥＣ部を形成するステップであって、各ＥＣ部が、前記複数のカウンタ値部分の特定の１つと関連づけられる、ステップ
からさらになる上項１の方法であって、前記各カウンタ値部分およびそれに関連づけられたＥＣ部のサイズが、前記伝送経路の幅と比較して、前記関連づけられたＥＣ部により保護可能なサイズ程度（または、サイズ以下）である、方法。
８．高次ビットを除去することにより前記カウンタ値（２３）を切り捨てるステップであって、これにより、残りのビットが、前記データ部（２１）および前記第１のＥＣ部（２２）を伝送するのに必要なサイクル数の２倍を示すのに十分な幅となるようにする、ステップをさらに含み、
前記切り捨てるステップが、前記第２のＥＣ部（２４）を形成する前記ステップに先立って行われる、上項１の方法。
【００２８】
【発明の効果】
本発明によれば、大きなオーバヘッドを生じず、かつ、実施が容易な、配線縮退故障を検出するエラー検出メカニズムを提供することができる。
【図面の簡単な説明】
【図１】メッセージを符号化する本発明のメカニズムのフロー図を示す。
【図２】図１により符号化されたメッセージを示す。
【図３】図２のメッセージを復号化する本発明のメカニズムのフロー図を示す。
【図４】図１および図３の本発明を実施するよう構成されたコンピュータシステムのブロック図を示す。
【図５】図１の本発明の１実施態様によって形成される図２のデータメッセージの例を示す。
【図６】図１の本発明の、図５とは異なる実施態様によって形成される図２のデータメッセージの例を示す。
【図７】図１の本発明の、図５及び６とは異なる実施態様によって形成される図２のデータメッセージの例を示す。
【図８】図１の本発明の、図５、６及び７とは異なる実施態様によって形成される図２のデータメッセージの例を示す。
【図９】図１の本発明の、図５、６、７及び８とは異なる実施態様によって形成される図２のデータメッセージの例を示す。
【符号の説明】
２０    データメッセージ
２１    実データ部
２２    ＥＣＣチェックビット（第１のＥＣ部）
２３    カウンタ値
２４    ＥＣＣチェックビット（第２のＥＣ部）
【図１】
0004053228.tif 000002
【図２】
0004053228.tif 000003
【図３】
0004053228.tif 000004
【図４】
0004053228.tif 000005
【図５】
0004053228.tif 000006
【図６】
0004053228.tif 000007
【図７】
0004053228.tif 000008
【図８】
0004053228.tif 000009
【図９】
0004053228.tif 000010