(57)【特許請求の範囲】
【請求項１】
ｋ記号情報量を表すｎ記号コード語をコード語ごとに有するコードに基づくデータ処理システムであって、
ｎ−ｋ≧２及びｋ≧２とし、１個のコード語中の少なくとも２個の少なくとも２個の記号に対して少なくとも単一記号の誤り訂正可能性及び複数の誤り修正可能性を同時に有し、
ａ．コード語を受信するとともにそのコード語からｋ個の記号のデータ語を取得する入力部を有するデコーダ段と、
ｂ．前記デコーダ段に接続され、前記データ語を処理し、メモリアドレス及び他のデータ語を展開するプロセッサ段と、
ｃ．複数のエンコーダモジュールを有し、前記データ語の選択の各々の同一データ語のバージョンを前記デコーダ段から意図的に受信し、各エンコーダモジュールで、互いに相違するコード記号への復号化を行う符号化段と、
ｄ．前記エンコーダモジュールのうちの対応するものにそれぞれ接続した複数のメモリモジュールを有し、前記メモリアドレスのうちの関連のメモリアドレスの制御の下で、前記関連のコード語の全てのコード記号の読出し及び書き込みを行う記憶段と、
ｅ．前記メモリモジュールに接続され、読み出された任意のコード語を前記デコーダ段に帰還する帰還手段とを具えるデータ処理システムにおいて、
前記データ処理システムが、少なくとも１個のデータ処理ユニットを有し、そのユニットのうちの任意のものが、２個以上かつｎ個未満の互いに相違するエンコーダモジュールを有し、そのエンコーダモジュールが、前記バージョンの一つを一括して処理する対応したデータ処理ユニットに並列接続され、前記データ処理ユニットの各メモリモジュールに、前記対応するデータ処理ユニットで展開したデータ語バージョンの論理和記号をそれぞれ格納することを特徴とするデータ処理システム。
【請求項２】
１個のコード語中の少なくとも２個の記号に対して単一の記号誤り訂正可能性及び複数の誤り修正可能性を有する１００％冗長４記号コード語のコードに基づくデータ処理システムであって、
ａ．コード語を受信するとともにそのコード語から２個の記号のデータ語を取得する入力部を有するデコーダ段と、
ｂ．前記デコーダ段に接続され、前記データ語を処理し、メモリアドレス及び他のデータ語を展開するプロセッサ段と、
ｃ．複数のエンコーダモジュールを有し、前記データ語の選択の各々の同一データ語のバージョンを前記デコーダ段から意図的に受信し、各エンコーダモジュールで、互いに相違するコード記号への復号化を行う符号化段と、
ｄ．前記エンコーダモジュールのうちの対応するものにそれぞれ接続した複数のメモリモジュールを有し、前記メモリアドレスの制御の下で、関連のコード語の全てのコード記号の読出し及び書き込みを行う記憶段と、
ｅ．前記メモリモジュールに接続され、読み出された任意のコード語を前記デコーダ段に帰還する帰還手段とを具えるデータ処理システムにおいて、
前記データ処理システムが、少なくとも１個のデータ処理ユニットを有し、そのユニットのうちの任意のものが、２個以上かつ４個未満の互いに相違するエンコーダモジュールを有し、そのエンコーダモジュールが、前記バージョンの一つを一括して処理する対応したデータ処理ユニットに並列接続され、前記データ処理ユニットの各メモリモジュールに、前記対応するデータ処理ユニットで展開したデータ語バージョンの論理和記号をそれぞれ格納することを特徴とするデータ処理システム。
【請求項３】
少なくとも（１２，８，３）ハミングコードに等しい誤り保護機能で５０％冗長コード後を格納する３個の互いに相違するエンコーダモジュールを有する単一の処理ユニットを具えることを特徴とする請求項２記載のデータ処理システム。
【請求項４】
各々が２個の独自のエンコーダモジュールを有する２個の処理ユニットを具え、そのエンコーダモジュールがそれぞれ、１００％冗長コード語を格納する間関連のモメリモジュールに接続して、任意の２ビット誤りパターンを訂正可能にし、消去された第１の記号の存在の下で、第２の記号の任意の誤りを検出可能にし又はそのような第２の記号の任意の単一ビット誤りを訂正可能にし、前記メモリモジュールに関連したデータワードを任意の２コード記号から検索可能にしたことを特徴とする請求項２記載のデータ処理システム。
【請求項５】
前記データ処理ユニットが、第１データ処理ユニット、第２データ処理ユニット、第３データ処理ユニット及び第４データ処理ユニットを具え、これら第１データ処理ユニット、第２データ処理ユニット、第３データ処理ユニット及び第４データ処理ユニットがそれぞれ、第１データ処理ユニットと第３データ処理ユニットとの間又は第２データ処理ユニットと第４データ処理ユニットとの間で独自の２個のエンコーダモジュールを有し、前記１００％冗長コード語の二つの同一バージョンを格納する関連のメモリモジュールに接続し、そのようなコード語が、前記第１データ処理ユニット、第２データ処理ユニット、第３データ処理ユニット及び第４データ処理ユニットの各々から１個のコード語を取得するとともに、前記データ処理ユニットのうちの任意のものへの帰還を可能とし、前記第１データ処理ユニット、第２データ処理ユニット、第３データ処理ユニット及び第４データ処理ユニットのうちの任意の１個が不能状態の下で、任意のコード語を、前記メモリモジュールに完全に格納したことを特徴とする請求項２記載のデータ処理システム。
【請求項６】
１個のコード語中の少なくとも２個の記号に対して単一の記号誤り訂正可能性及び複数の誤り修正可能性を有する１００％冗長４記号コード語のコードに基づくデータ処理システムであって、
ａ．コード語を受信するとともにそのコード語からデータ語を取得する入力部を有するデコーダ段と、
ｂ．前記デコーダ段に接続され、前記データ語を処理し、メモリアドレス及び他のデータ語を展開するプロセッサ段と、
ｃ．複数のエンコーダモジュールを有し、前記データ語の選択の各々の同一データ語のバージョンを前記デコーダ段から意図的に受信し、各エンコーダモジュールで、互いに相違するコード記号への復号化を行う符号化段と、
ｄ．前記エンコーダモジュールのうちの対応するものにそれぞれ接続した複数のメモリモジュールを有し、前記メモリアドレスの制御の下で、関連のコード語の全てのコード記号の読出し及び書き込みを行う記憶段と、
ｅ．前記メモリモジュールに接続され、読み出された任意のコード語を前記デコーダ段に帰還する帰還手段とを具えるデータ処理システムにおいて、
前記データ処理システムが、３個のデータ処理ユニットを有し、そのユニットの各々が、１個の独自のエンコーダモジュールを有し、そのエンコーダモジュールが、エミュレートされた５０％データ語バージョンに基づいて３個のコード記号を一斉に発生させる対応するデータ処理モジュールに並列接続され、任意の処理ユニットが、３個のコード記号及びダミーコード語の記号を受信するとともにダミーデータ語の記号を出力するデコーダモジュールを有することを特徴とするデータ処理システム。
【発明の詳細な説明】
【０００１】
【技術分野】
本発明は、１個のコード語中の少なくとも２個の記号に対して単一の記号誤り訂正可能性及び複数の誤り修正可能性を有する１００％冗長４記号コード語のコードに基づくデータ処理システムであって、
ａ．コード語を受信するとともにそのコード語から２個の記号のデータ語を取得する入力部を有するデコーダ段と、
ｂ．前記デコーダ段に接続され、前記データ語を処理し、メモリアドレス及び他のデータ語を展開するプロセッサ段と、
ｃ．複数のエンコーダモジュールを有し、前記データ語の選択の各々の同一データ語のバージョンを前記デコーダ段から意図的に受信し、各エンコーダモジュールで、互いに相違するコード記号への復号化を行う符号化段と、
ｄ．前記エンコーダモジュールのうちの対応するものにそれぞれ接続した複数のメモリモジュールを有し、前記メモリアドレスの制御の下で、関連のコード語の全てのコード記号の読出し及び書き込みを行う記憶段と、
ｅ．前記メモリモジュールに接続され、読み出された任意のコード語を前記デコーダ段に帰還する帰還手段とを具えるデータ処理システムに関するものである。
【０００２】
【背景技術】
米国特許番号第４５１２０２０号（特願昭５７−１６４，８１３号：データ処理装置及びマルチプレクサ計算機システム）、特にその図２４は、全体のシステムを不作動状態にすることなく１個のモジュールの故障を許容する４個のモジュールのシステムを記載している。コード語の記号は、４ビットに関して、一様な長さの複数ビットを有する。訂正可能とは、任意の外乱を定量的に決定できるとともにそれに応じて復元できることを意味する。その結果、「どこに」外乱が生じるか及び「何が」外乱であるかの質問に回答がなされる。単一ビットのレベルでは、これら二つの概念は同一である。複数ビットの記号のレベルでは、外乱を受けた記号の指示は、訂正を実現するための最初のステップにすぎない。一方、修正可能とは、誤りの影響を取るに足らないものにできることを意味すると理解されている。これは、完全な訂正に加えて、無効なすなわち「消去された」１個以上の特定の記号が現れるおそれを伴い、その結果、その記号はコード語のデータ内容を検索することができない。当然、そのような消去によって、コード語の残りの部分が他の外乱に対して強固でなくなる。更に高いレベルでは、修正可能性は、コードの適切なレベルにおいて誤りの検出のみに制約されるおそれがある。この場合、有効に採られる手段は、ソフトの誤りを意識しないと推定する動作の再試行、バックグランドメモリのような高レベルの権限に対するリソース又は出くわした未訂正に対する保護を行うことである。
【０００３】
【発明の開示】
（４，２）コードは通常、４モジュールシステムにおいてマップされ、その結果、任意の符号の誤りはモジュールの誤りに対応し、その逆も成り立つ。ハードウェアは、電話交換制御のような安全システムにおける使用に魅力的である。本発明の目的は、特に、上記（４，２）システム及びそれに匹敵するシステム、モジュールと記号との間の直接的な対応が放棄された他の形態、拡張したシステム又は良好なコスト対結果を実現する更に制約された形態に対して適用されたモジュラハードウェアを用いることである。標準的なハードウェアを使用することの他の利点は、開発費をそのようなハードウェアの多数のコピーに割り当て、これによって全体に亘る価格を低下させる。
【０００４】
その態様の一つによれば、本発明は、冒頭で説明したデータ処理システムにおいて、前記データ処理システムが、少なくとも１個のデータ処理ユニットを有し、そのユニットのうちの任意のものが、２個以上かつ４個未満の互いに相違するエンコーダモジュールを有し、そのエンコーダモジュールが、前記バージョンの一つを一括して処理する対応したデータ処理ユニットに並列接続され、前記データ処理ユニットの各メモリモジュールに、前記対応するデータ処理ユニットで展開したデータ語バージョンの論理和記号をそれぞれ格納することを特徴とするデータ処理システムを提供する。
【０００５】
単一データ処理モジュールの故障又は機能不全は、従来に比べて重大な影響を有するようになっている。一方、コード記号レベルの機能不全に対する本発明の強固さは、従来と比較され、同時に、後に説明するような容易に評価できる形態の柔軟性を提供する。
【０００６】
上記説明では、（ｎ，ｋ）＝（４，２）コードを取り扱っているが、（６，４），（８，４）及び（８，５）コードのような他のコードに対しても同様な考察を適用することができ、適用できるコードはこれらのコードに限定されない。これらコードは、語ごとに多数の記号を有するので、当業者には容易に理解できるように、保護の目安が大きくなり若しくは高効率（＝低い部分的な冗長度）を有し、（多数の個別の記号の間でデータビットを分割する）更に短い記号を許容し、又はそれらを組み合わせた利点を有する。それにもかかわらず、（４，２）コードと同一の利益を実現する。当業者は、記号のビット長に応じたｎ，ｋの最大値を認識する。
【０００７】
その結果、本発明の広い態様によれば、ｋ記号情報量を表すｎ記号コード語をコード語ごとに有するコードに基づくデータ処理システムであって、
ｎ−ｋ≧２及びｋ≧２とし、１個のコード語中の少なくとも２個の少なくとも２個の記号に対して少なくとも単一記号の誤り訂正可能性及び複数の誤り修正可能性を同時に有し、
ａ．コード語を受信するとともにそのコード語からｋ個の記号のデータ語を取得する入力部を有するデコーダ段と、
ｂ．前記デコーダ段に接続され、前記データ語を処理し、メモリアドレス及び他のデータ語を展開するプロセッサ段と、
ｃ．複数のエンコーダモジュールを有し、前記データ語の選択の各々の同一データ語のバージョンを前記デコーダ段から意図的に受信し、各エンコーダモジュールで、互いに相違するコード記号への復号化を行う符号化段と、
ｄ．前記エンコーダモジュールのうちの対応するものにそれぞれ接続した複数のメモリモジュールを有し、前記メモリアドレスのうちの関連のメモリアドレスの制御の下で、前記関連のコード語の全てのコード記号の読出し及び書き込みを行う記憶段と、
ｅ．前記メモリモジュールに接続され、読み出された任意のコード語を前記デコーダ段に帰還する帰還手段とを具えるデータ処理システムにおいて、
前記データ処理システムが、少なくとも１個のデータ処理ユニットを有し、そのユニットのうちの任意のものが、２個以上かつｎ個未満の互いに相違するエンコーダモジュールを有し、そのエンコーダモジュールが、前記バージョンの一つを一括して処理する対応したデータ処理ユニットに並列接続され、前記データ処理ユニットの各メモリモジュールに、前記対応するデータ処理ユニットで展開したデータ語バージョンの論理和記号をそれぞれ格納することを特徴とするデータ処理システムを提供する。
【０００８】
多重エンコーダモジュールは、米国特許番号第４６３３４７２号（特願昭５８−１９５，３９９号：マルチプレクサ計算機装置及びそこで使用されている計算機モジュール）に記載されている。ここでは、最初に引用した従来技術による標準的な４，２システムにおいて、各ユニットは、局所的に発生したデータ語からコード記号を発生させて標準的なローカルメモリモジュールに格納するための標準的なエンコーダモジュールを有する。さらに、特にＩ／Ｏのために、第２メモリモジュールが第２エンコーダモジュール及び相補的なデコーダモジュールとともに存在する。しかしながら、そのように符号化された記号は、第２メモリモジュールに格納するために使用され、一括して復号化するために第１メモリモジュールから読み出されたコード記号と組み合わせて使用されない。その結果、この特定の参照文献は、データ語レベルで相互に非同期状態で作動する２個のエンコーダモジュールを有する。本発明によれば、複数のエンコーダモジュールは、他の機能をそれぞれ代わりに果たすために存在するのではなく、単一のデータ語の内容すなわち理論的又は意図的に同一とする必要がある単一のデータ語又は２（以上）のデータ語に基づいて機能する。少なくともデータ処理ユニットのレベルで（４，２）コードを用いる場合、誤り修正可能性は、完全な（４，２）システムに比べて低くなる。
【０００９】
本発明の他の態様によれば、少なくとも（１２，８，３）ハミングコードに等しい誤り保護機能で５０％冗長コード後を格納する３個の互いに相違するエンコーダモジュールを有する単一の処理ユニットを具えることを特徴とするデータ処理システムを提供する。後に説明するように、柔軟な修正可能性は、同一の冗長性を有する（１２，８，３）ハミングコードに対して十分に向上する。
【００１０】
本発明の他の態様によれば、各々が２個の独自のエンコーダモジュールを有する２個の処理ユニットを具え、そのエンコーダモジュールがそれぞれ、１００％冗長コード語を格納する間関連のモメリモジュールに接続して、任意の２ビット誤りパターンを訂正可能にし、消去された第１の記号の存在の下で、第２の記号の任意の誤りを検出可能にし又はそのような第２の記号の任意の単一ビット誤りを訂正可能にし、前記メモリモジュールに関連したデータワードを任意の２コード記号から検索可能にしたことを特徴とするデータ処理システムを提供する。このようにして、記号レベルにおいて、（４，２）システムと同一の保護が行われ、ユニットレベルにおいて、保護が少なくなり、これは、プロセッサコストを減少させることによって軽減される。
【００１１】
本発明の他の態様によれば、前記データ処理ユニットが、第１データ処理ユニット、第２データ処理ユニット、第３データ処理ユニット及び第４データ処理ユニットを具え、これら第１データ処理ユニット、第２データ処理ユニット、第３データ処理ユニット及び第４データ処理ユニットがそれぞれ、第１データ処理ユニットと第３データ処理ユニットとの間又は第２データ処理ユニットと第４データ処理ユニットとの間で独自の２個のエンコーダモジュールを有し、前記１００％冗長コード語の二つの同一バージョンを格納する関連のメモリモジュールに接続し、そのようなコード語が、前記第１データ処理ユニット、第２データ処理ユニット、第３データ処理ユニット及び第４データ処理ユニットの各々から１個のコード語を取得するとともに、前記データ処理ユニットのうちの任意のものへの帰還を可能とし、前記第１データ処理ユニット、第２データ処理ユニット、第３データ処理ユニット及び第４データ処理ユニットのうちの任意の１個が不能状態の下で、任意のコード語を、前記メモリモジュールに完全に格納したことを特徴とするデータ処理システムを提供する。このようにして、擬似的な４倍の（４，２）システムに比べて誤り保護が更に向上した４倍システムを実現する。
【００１２】
本発明の他の態様によれば、前記データ処理システムが、３個のデータ処理ユニットを有し、そのユニットの各々が、１個の独自のエンコーダモジュールを有し、そのエンコーダモジュールが、エミュレートされた５０％データ語バージョンに基づいて３個のコード記号を一斉に発生させる対応するデータ処理モジュールに並列接続され、任意の処理ユニットが、３個のコード記号及びダミーコード語の記号を受信するとともにダミーデータ語の記号を出力するデコーダモジュールを有することを特徴とするデータ処理システムを提供する（４，２）システムのアプリケーションを提供する。ダミー記号を使用したとしても、基本的な（３，１）システムが、標準的な（４，２）システムと同一のハードウェアに基づいて実現され、容易に考えられる最適な（３，１）システムと同程度に良好な誤り保護機能を有する。
【００１３】
ここで説明したように（４，２）システム上で見出された種々の表現に加えて、ｎ−ｋ≧２，ｋ≧２又はｎ＞４を有する他の（ｎ，ｋ）システムに対して同様なバージョンを構築することができ、かつ、（リード−ソロモンコードのような）線形な記号の訂正可能性に加えて、他の拡張した誤り訂正機能を、ビット非記号レベル上の追加の誤り保護に起因して構築することができる。実際には、このような追加の誤り保護は、ビットで計数された実際の記号長に対して用いることができる数に比べて小さい記号数で実現可能である。例えば、（６，４）コードを、５個のエンコーダモジュールを有する１個のユニット、それぞれが２個のエンコーダモジュールを有する３個のユニット又は各々が２個のエンコーダユニットを有する６個のユニットとして用いることができる。（８，４）コードを、６若しくは７個のエンコーダモジュールを有する１個のユニット、各々が４個のエンコーダモジュールを有する２個のユニット又は各々が２個のエンコーダもジュークを有する４個のユニットとして用いることができる。図５を参照して後に説明する（６，４）コードは、各々が１個のエンコーダモジュール及び３個のダミー記号を有する５個のユニットを有する。（８，４）コードは、各々が１個のエンコーダモジュール及び３個のダミー記号を有する７個のユニットを有する。他の多数の実現は、（ｎ，ｋ）システム技術の作業者に明らかである。一般に、（ｎ，ｋ）コードを、種々の（ｍ，ｌ）システムを構築するのに使用することができ、この場合、Ｉ≦ｍ≦ｎ及び１≦ｌ≦ｋである。
【００１４】
本発明の好適な実施例を、図面を参照して説明する。
【００１５】
【実施例】
コンピュータシステムにおいて、信頼性を向上させるためにしばしば誤り訂正コードが使用される。その一例は、メモリから受信したデータの単一ビット誤りを訂正するハミングコードである。
【００１６】
しかしながら、一般的なアプローチは（ｎ，ｋ）概念のコンピュータである。このアプローチは、プロセッサの冗長性とメモリの冗長性との間の比を選択する機会を与える。これは、ｎ及びｋに対して適切な値を選択することによってコストに対する信頼性を最適化できることを意味する。
【００１７】
例えば、ｎ＝３及びｋ＝１となるように値を選択すると、ＴＭＲ（３モジュール冗長）システムが得られる。この場合、全てのハードウェアは３倍になる。ｎ＝４及びｋ＝２となるように値を選択すると、（４，２）概念のシステムが得られる。この場合、プロセッサ論理は４倍となるが、メモリは２倍となるだけである。システムのうちの最も高価な部分は、通常、メモリである。したがって、（４，２）概念のコンピュータのコストを、（３，１）概念のコンピュータのコストより低くすることができる。
【００１８】
（ｎ，ｋ）概念のコンピュータにおいて、誤り訂正／検出コードが用いられる。このコードは、（ｎ，ｋ）コードと称される。従来のＴＭＲシステムに対して、反復コードが用いられる。このコードは最適ではない。（４，２）概念に対して、（４，２）コードが用いられる。（４，２）概念及び（４，２）コードの特性は、最初に説明した参考文献に記載されている。
【００１９】
（４，２）コードを、他のシステムにおいても効果的に用いることができる。今後、一般的には（４，２）コードを用いる。単一ユニットのシステムでは、ハミングコードの代わりに（４，２）コードを用いることが示されている。また、（２，１）概念の（２倍）システムにおける（４，２）コードの利点も説明されている。（３，１）概念のコンピュータにおいても（４，２）コードを用いることができることを示している。（４，２）概念のコンピュータの使用についての簡単な説明を行う。
【００２０】
ここで説明する方法は、１≦ｍ≦ｎかつ１≦ｌ≦ｋの場合、（ｎ，ｋ）コード及び（ｍ，ｌ）概念のシステムの組合せの使用に一般化することができる。しかしながら、ｎ，ｋ，ｍ及びｌの値に応じて、互いに相違する特性が現れる。方法の一例を説明する。
【００２１】
以下、４ビット記号に対する（４，２）概念のコンピュータの簡単な説明を最初に行う。以後、（４，２）コードの特性の概念を説明する。（４，２）概念のコンピュータは、４個のユニットから構成される（図１参照）。２０のような各ユニットは、一連の４記号入力２記号出力デコーダモジュール２２、プロセッサモジュール２４、エンコーダモジュール２６及びメモリモジュール２８を具える。メモリモジュール２８のデータ入力は、エンコーダモジュール２６から供給される。アドレス入力３０をエンコーダモジュール２６から供給する必要はない。その理由は、アドレス入力３０がメモリアドレス間のシャフリングのみを表し、利用できるアドレス範囲が減少するからである。簡潔のために、制御経路及び４個のユニット間の相互の同期を示さない。（ｎ，ｋ）概念のコンピュータではｎ個のモジュールが同期をとるとともに決定性を有するように設計されているものと仮定される。以下、プロセッサ／メモリ通信のみを説明する。外部のシステムとの通信を説明しない。
【００２２】
書込み中、各プロセッサは、エンコーダを通じてメモリにデータを書き込む。エンコーダは、互いに相違する記号Ｇ０，Ｇ１，Ｇ２，Ｇ３によって表した各モジュールにおいて互いに相違する。このようにして、８ビットの情報が１６ビットコード語に符号化される。しかしながら、各ユニットは、このコード語のうちの４ビット（コード記号）のみを格納する。プロセッサがメモリから情報を読み出すと、デコーダによって４記号が各ユニットで受信される。誤りの量が所定の最大値を超えない場合、デコーダは、各ユニットのプロセッサに対して原始情報を発生させる。しかしながら、実際には、各ユニットは、互いに相違する４個全てのエンコーダモジュールを実現するために同一のハードウェアを有することができ、これがシリコン領域の僅かな増加のみを示す限り、このことは、製造すべき互いに同一の回路（ユニット）の個数が４倍に増加する利点に優る。
【００２３】
訂正し得る誤りの量は、（４，２）コードの特性によって与えられる。以下、（４，２）コードの最も重要な特性をリストする。次に、これらの特性は、（４，２）コードを他のシステムで使用する方法を決定する。ここで、４ビット記号に対するこれらの特性は以下の通りである。
１．任意の単一記号誤りの訂正。
２．任意の二重ビット誤りの訂正。
３．１記号が消去された場合、他の記号誤りを検出することができる。
４．１記号が消去された場合、単一ビット誤りを訂正することができる。
５．任意の２記号から原始情報を検索することができる。
６．２記号は原始情報の記号となる。
特性３から、消去された１個の記号を有するコード語の最小の記号重み（＝零でないコード記号の個数）が２に等しくなることが観察される。
【００２４】
単一ユニットのシステムにおける（４，２）コードの使用
（４，２）コードを、（１２，８，３）ハミングコードの代わりとして単一ユニットのシステムで使用することができる。図２に示すような本発明によるシステムは、（１記号入力が使用されない）４記号デコーダ４０と、プロセッサモジュール４２と、各々が関連のメモリモジュール４４，４６，４８に信号を供給する３個の互いに相違するエンコーダモジュールＧ０，Ｇ１，Ｇ２とを有する。これらは、プロセッサモジュール４２によって再びアドレス指定される。ハミングコードシステムに関して、余分なコストが含まれず、記憶量は同一である。しかしながら、（４，２）コードの実現が更に提案されている。以下、単一システムにおける（４，２）コードの簡単な説明を行う。
【００２５】
書込み中、８ビットの情報語は、エンコーダＧ０，Ｇ１，Ｇ２によって３通りの互いに相違する方法で符号化される。その結果、３通りの４ビットのコード記号となる。その各々は、関連のメモリモジュールに書込まれる。一般に、ユニット内では、種々のメモリモジュールを、更に大きなメモリユニットの（バンク又はブロックの）一部とすることができる。読出しサイクル中、３個のコード記号はデコーダによって受信される。デコーダは消去モードにある。それは、メモリに格納されなかった第４の記号を消去する。デコーダは、１２ビットのコード語を、プロセッサに供給される８ビットの情報語に復号化する。
【００２６】
以下の誤り検出／訂正機能をこのようにして利用することができる。
・単一ビット誤り訂正
・単一記号誤り検出
単一ビット誤り訂正は特性４から導き出される。これまで、ハミングコードを用いることによって全く同一の結果が得られた。しかしながら、ビット誤りが重大な誤りであるとわかる場合、デコーダを単一モードに切り替えるのは容易であり、その結果、２通りの４ビットの記号のみがデコーダの出力を決定する。このようにして、一つが不良である１２ビットの代わりに、８ビットのみがデコーダの出力を決定する。その結果、他のビット誤りが原因で出力が誤りである可能性が、本来の可能性の８／１１まで減少する。
【００２７】
消去された１個の記号を有するコード語の記号重みが少なくとも２であることによって、単一記号誤りも検出できる（特性３）と結論付けられる。これは、各々が４ビット幅のメモリバンクとしてメモリを設計した場合に有用である。そのようなバンクの故障を検出することができる。
【００２８】
（４，２）コードによる解決は、システムの設計者／ユーザが適切な方法を選択することによってシステムの信頼性を最大にすることができるという意味で柔軟である。これは、全体的にストラテジに依存する。ハードウェアは全く同一である。
【００２９】
（２，１）概念における（４，２）コードの使用
図３は、（４，２）コードを２倍システムで好適に利用できる方法を示す。左側のユニットは、デコーダモジュール６０と、プロセッサモジュール６２と、アドレスバス６４と、モメリモジュールＭ３，Ｍ２にそれぞれ接続したエンコーダモジュールＧ３，Ｇ２とを有する。右側のユニットは、メモリモジュールＭ１，Ｍ０にそれぞれ接続したエンコーダモジュールＧ１，Ｇ０を除いて構造的に同一である。当然、全てのメモリモジュールは構造的に同一である。ここで、同一のエンコーダ及びデコーダは、（４，２）概念のコンピュータのように２倍システムで用いられる。同一タイプの誤りによって同一動作とならないので、誤り制御のみが互いに相違する。２倍システムで用いられる（４，２）コードの利点は、誤りのタイプと故障又はシステムのデグラデーションのタイプとの間の関係に応じて設計者又はユーザがその誤り処理機構に適合できる点である。（４，２）コードの代案として（２，１）コードがある。しかしながら、（４，２）コードが最適である。その理由は、（４，２）コードが（２，１）コードとして使用されるからである。このセクションの残りの部分において、（４，２）コードを有する２倍システムのアーキテクチャを先ず説明する。以後、誤り処理機構の柔軟性を、複数例とともに説明する。
【００３０】
（４，２）コードは４コード記号から構成される。任意の対のコード記号から原始情報を検索することができる（特性５）。２倍システムは２個のユニットから構成される。各ユニットは、プロセッサの書込みサイクル中に情報記号を２コード記号に符号化するために２個のエンコーダモジュールを有する。各ユニットは、互いに相違する２コード記号をメモリに書き込む。４コード記号はコード語を構成する。一方の対のコード記号がユニット０のメモリに書き込まれ、他方の対のコード記号がユニット１のメモリに書き込まれる。
【００３１】
プロセッサの読出しサイクル中、４コード記号がデコーダの入力部でラッチされる。誤りが発生しない場合、両方のプロセッサモジュールは、同一の訂正情報を受信する。しかしながら、誤りが発生すると、デコーダが誤りを検出し、可能な場合には誤りを訂正する。以下、誤り検出の結果に関して３例を説明する。
【００３２】
可能性の一つは、誤りの検出後、従来の２倍システムと全く同じことが行われる。誤りが発生すると直ぐに、処理を停止するとともに、診断プログラムによって故障を特定することを試みる。これは、２倍システムの基本手順である。（４，２）コードは、以下に示すように更なる柔軟性を示す（以下の表を参照のこと。）。
【表１】
0003654655.tif 000002
【００３３】
従来の２倍システムにおいて、メモリの単一ビット誤りを補正するためにハミングコードがしばしば使用されている。これによって、メモリのコストがワード長に応じて２５−５０％まで増大する。それは、８ビット語に対して５０％となる。メモリがシステムの最も高価な部分であるので、これは、全体のコストに対して大きな影響を及ぼす。ここに提案するシステムにおいて、単一ビット誤り訂正に対してハミングコードを用いることができるが、そのようにする必要はない。実際には、ここに提案したシステムにおいても（メモリを増大させることなく）単一ビット誤り訂正を利用できる。
【００３４】
（４，２）コードは単一ビット誤り又は２ビット誤りを訂正することができる。したがって、２倍システムにおいて訂正機能（の一部）を用いることができる。しかしながら、訂正機能（の一部）の使用が訂正誤り／検出誤りのおそれの増大も伴うことを理解すべきである。例えば、ユニットが故障した場合、ユニットによって二つの誤りのある記号が発生し、デコーダは、システムを停止させている間に単一ビット誤りを訂正する。単一ビット誤り訂正が用いられない場合、２記号誤りが検出される。
【００３５】
三つの基本要素は、２倍システムの信頼性を決定する。
・診断プログラムのカバレージファクタ。
・ハードビット誤りとソフトビット誤りの両方及びチップ故障に対するメモリの信頼性。
・プロセッサ論理の信頼性。
２倍システムで（４，２）コードを用いることによって、コストを増大させる方法を用いることなく２倍システムの信頼性を最適にする機会を与える。結局、ハミングコードを用いないことを決定した場合、コストは低下する。
【００３６】
４倍モジュラ冗長システム
図４は、４個のユニットから構成した４倍モジュラ冗長システムを示す。左側のユニットは、並列な２個の１６ビットデコーダモジュールを有し、その各々は、８ビットの２記号のデータ語に変換するための１６ビットコード語を受信する。当然、二つのデコーダモジュールを単一デコーダハードウェア８０にマップすることができ、それは、二つの意図的に同一にしたコード語で交互に動作する。そのように発生した二つのデータ語は、当然意図的に同一とされる。二つのデータ語はプロセッサモジュール８２で処理され、それを、並列な２個の同一の８ビットプロセッサモジュール又は第１及び第２の８ビットプロセッサを交互にエミュレートする８ビット幅の単一プロセッサモジュールとする。次に、処理結果は、それがメモリモジュールアドレスの場合、８ビットの結合幅のそれに関連したメモリモジュール８４をアドレス指定する。図において、これを単一ブロックとして示す。物理的には、それを、個別に起動可能な二つのメモリバンク又は単一のメモリバンクとして実現することができる。処理結果がデータである場合、モジュールＧ３，Ｇ２が作動する。そのように発生したデータ語が奇数データ語である場合、それはエンコーダモジュールＧ３に供給される。データ語が偶数データ語である場合、それはエンコーダモジュールＧ２に供給される。第２処理ユニットは、「奇数」と「偶数」とを入れ替えた点を除いて第１処理ユニットと同一であり、それは、入れ替えた位置を有するエンコーダモジュールＧ３，Ｇ２によって表される。左側から３番目及び４番目の処理ユニットは、エンコーダモジュールＧ１，Ｇ０を除いて、それ以前の２個の処理ユニットと同一である。
【００３７】
これまで説明したストラテジを実行するのに必要な他の論理を、簡単のために示さない。上記システムは、３，２／２，３／１，０／０，１に従って要約した各モジュールに対する記号の属性を有することができる。僅かに互いに相違する属性は、以下の通りである。
０，３／３，２／２，１／１，０
二つの形態はそれぞれ特有の利点を有する。第２のものは、２個のユニットが故障した際に、故障のパターンに関係なく互いに相違する三つのコード記号を処理する。以後、第１の形態を考慮する。
【００３８】
ここで、一般に、４倍プロセッサ及び制御論理を、４倍メモリを用いることなく開発することができる。標準的な（４，２）概念のコンピュータは、例えば２倍の容量のメモリのみを有する。（４，２）コードを、４倍メモリを有する４倍システムでも用いることができる（（４，１）概念のシステム）。以下、（４，２）概念のコンピュータと４倍システムとの間の違いを最初に説明する。以下、（４，１）概念のシステムにおける（４，２）コードの使用の（不）利益を説明する。
【００３９】
（４，２）概念のコンピュータと４倍システムとの間の主な違いは、コスト及びデグラデーション適応性である。
【００４０】
４倍システムのコストは単一ユニットシステムのコストの４倍となる。（４，２）概念のコンピュータのコストは、メモリが最も高価な部分であるために単一ユニットシステムのコストの２−３倍となる。（４，２）概念のコンピュータは、１個のユニットの故障を許容し、動作中の３個のユニットを有するシステムへの切替を行う。故障中のユニットが既知でない場合、故障中のユニットを更に許容することができない。
【００４１】
４倍システムは、１個のユニットの故障を許容することができ、この場合、３倍システムへの切替を行う。それは、故障したユニットの他のユニットに対するメッセージが一貫性のない、すなわち、他のユニットが実際に受信した情報に同意しない場合を除いて、３倍システムとして別の１個のユニットの故障を許容する。動作するユニットが２個しか残らない場合、システムは、２倍（フェールセーフ）システムとして動作することができる。その結果、４倍システムは、（４，２）概念のシステムよりも信頼性があるが、（４，２）概念のシステムよりも（２倍まで）高価なものとなる。（４，２）コードを使用しうる方法は、各ユニットのコード記号の重複によるものではない。互いに相違する２個のエンコーダの記号を１個のユニットにマップする方法の一つを図４に示す。
【００４２】
しかしながら、ＴＭＲシステムを通じた４倍システムの２倍システムへのデグラデーションは、以下説明するように複雑なプロセスとなる。１個のユニットの各デコーダモジュールは、単一記号誤りを訂正することができる。その結果、１個のユニットが故障するおそれがある。この場合、各々が３記号からなる二つのコード語が残される。互いに相違するユニットのデコーダモジュール間の通信が可能でない場合、ユニットの故障を更に許容することができない。しかしながら、１個のユニットからの二つのコード記号は常に原始情報を表す。二つのコード語の６個のコード記号は常に少なくとも符号重み４を有し、それは、単一記号誤りを常に訂正できるとともに第２の誤りを常に検出できることを意味する。６個のコード記号を結合することによって、１個のユニットの故障を再び許容することができる。ユニットが故障する場合、これは、システムが２倍システムにデグラデーションすることを意味する。
【００４３】
４倍システムにおいて（４，２）コードを使用することによって、システムの設計者／ユーザに対して再び柔軟性を与える。しかしながら、４倍アーキテクチャの復号化形態は、最大の訂正／検出機能を得る必要がある場合には特に複雑となる。
【００４４】
種々のユニットに対する種々のエンコーダモジュールの第２の属性を用いることによって、図４の配置を変更することができる。１個の故障ユニット及び３個の故障ユニットの状況に対して、状況は、上記機構と同一である。しかしながら、２個のユニットが故障すると、システムは常に、互いに相違するユニットからそれぞれ二つのうちの利用できる互いに相違する３個の２倍記号を有する。これによって、２倍記号が同一であるか否かに依存して種々のあり得るストラテジを提供するとともに、２倍記号の内外の種々のビット誤りの一部の修正可能性を提供する。
【００４５】
エンコーダモジュールと処理ユニットとの他の全ての結合によって、記号のリナンバリングのみを減少させる。
【００４６】
３個のユニットのシステムにおける（４，２）コードの使用
図５は、３個のユニットのシステムにおける（４，２）コードの使用を示す。左側のユニットは、標準的なデコーダ１００と、プロセッサ１０２と、エンコーダモジュール１０４と、メモリモジュール１０６とを有する。他の２個のユニットは、図示したそれぞれが互いに相違するエンコーダモジュールＧ３，Ｇ２，Ｇ１の使用を除いて同一である。特に３倍モジュラ冗長（ＴＭＲ）システム用にコードを設計したとしても、（４，２）コードは、最適な（３，１）コードと同程度に適切である。
【００４７】
ＴＭＲシステムにおける（４，２）コードの使用への基本アプローチは、コードの短縮である。これは、以下のようにして実現することができる。４ビット情報語（ニブル）に対してデフォールトニブルを付加する。このようにしてバイト（８ビット）が得られる。それは、情報の４ビット及び値が予め既知の４ビット（すなわちダミー記号）から構成される。情報が予め既知であるニブルを、好適には３個のモジュールの各々において同一にする。図示した例に対して、省略値を零に選択し又は零にエミュレートする。バイトは、エンコーダに対する入力として用いられる。エンコーダモジュールによって、プロセッサの書込みサイクル中にメモリに格納される４ビットコード記号を発生させる。
【００４８】
（４，２）コード語は、４個のコード記号からなる。コード記号のうちの１個は４ビット情報ニブルであり、それ以外のコード記号は、予め既知のニブルである（特性６）。読出し中、３個のコード記号はデコーダによって受信される。４番目の記号が予め既知であるので、４番目の記号もデコーダによって受信される。デコーダは、１個の記号を訂正することができる４個のコード記号を有する。これは、１個のモジュールの故障を許容できることを意味する。３個全てのモジュールが動作可能である場合、二つのランダムビット誤りを、コード語の１６ビットで訂正することができる。コード語の１個の記号の値は常に同一である。その結果、二つのランダムビット誤りを１２ビットのコード語で訂正することができる。
【００４９】
１個のモジュールが故障するとともにデコーダが消去モードに切り替わると仮定する。この場合、システムは２倍システムへのデグラデーションを行う。３個の消去されていない記号のうちの１個は予め既知である。任意の誤りを常に検出することができる。その理由は、消去されたコード語の記号重みが少なくとも２となるからである。その結果、２倍システムが得られる。単一ビット誤り訂正に対して冗長の一部を使用するとともの記号誤り検出に対して残りの部分を使用することもできる。システムの設計者／ユーザは、図３を用いて既に説明したのと同様にシステムの信頼性を最大にする機会を有する。
【００５０】
一般的な考察の一部
これまで、４ビット記号及び１．．４プロセッサユニットに関して（４，２）コードを説明した。長い記号に対して、アプリケーションは同様であり、１ビット誤りレベル上では保護機能が増大する。
【００５１】
Ａ．一般的な（ｎ，ｋ）コードに対して、任意の個数ｉの記号が消去される（ｉ≦ｎ−ｋ）。Ｌのデータ語長で、各エンコーダモジュールによって、Ｌ／ｋの記号長を発生させる。このコードは、適切な数のユニットを有する図２，３，４に従った形態で使用される。例えば、図１のシステムは、適切な誤り訂正を行う度に、任意の個数のエンコーダモジュールｋ，ｋ＋１．．．ｎ−１を作動させる。
【００５２】
Ｂ．他の可能性は図５に従うものであり、この場合、各ユニットは、デコーダモジュールの入力部、デコーダモジュールの出力部及びエンコーダモジュールの入力部において、ｉ＝１．．ｋ−１記号をダミー記号として取り扱う。図３に示すように、好適な値は零に等しくなる。全体のシステムは適切な個数のユニットを必要とし、用いられる（ｎ，ｋ）コードによって（ｎ−ｉ，ｋ−ｉ）システムまで減少する。
【００５３】
一般的に図４に類似する他の解決では、ユニット中にｉ（ｉをｋ，ｎの共通因子とする。）個のエンコーダモジュールを追加するとともに関連のユニットで１個のプロセッサモジュールのみを使用する。
【００５４】
Ｄ．図４に類似する他の方法では、任意のユニットでｉ個のエンコーダをシャッフルして使用する。この場合、ｉをｎの因子とするが、ｋの因子とする必要はない。これによって、（ｎ，ｋ）コードを（ｎ，ｋ／ｉ）コードに変換する。
【００５５】
（４，２）コードの場合、これらＡ，Ｂ，Ｃ，Ｄの場合にはそれぞれ以下のようになる。
（４，２）→Ａ→（３，２）
（４，２）→Ｂ→（３，１）
（４，２）→Ｃ→（２，１）
（４，２）→Ｄ→（４，１）
【００５６】
（８，５）コードから開始する連続的なグレースフルデグラデーションの場合は、次のようにして実現される。
（８，５）→Ａ→（７，５）→Ｂ→（６，４）→Ｃ→（３，２）→Ｄ→（３，１）
【図面の簡単な説明】
【図１】  通常の（４，２）システムを示す。
【図２】  単一ユニットのシステムの（４，２）コードの使用を示す。
【図３】  ２個のユニットのシステムの（４，２）コードの使用を示す。
【図４】  （４，１）システムの（４，２）コードの使用を示す。
【図５】  ３個のユニットのシステムの（４，２）コードの使用を示す。
【符号の説明】
２０  ユニット
２２，６０  デコーダモジュール
２４，４２，６２，８２  プロセッサモジュール
２６，１０４，Ｇ１，Ｇ２，Ｇ３  エンコーダモジュール
２８，４４，４６，４８，８４，１０６  メモリモジュール
３０  アドレス入力
４０  ４記号デコーダ
６４  アドレスバス
８０  単一デコーダハードウェア
１００  標準デコーダ
１０２  プロセッサ
【図１】
0003654655.tif 000003
【図２】
0003654655.tif 000004
【図３】
0003654655.tif 000005
【図４】
0003654655.tif 000006
【図５】
0003654655.tif 000007