(57)【要約】【課題】障害のある信号導電体を有する信号バスが低下した性能で動作できるようにする、方法および装置を提供すること。【解決手段】データ・ブロックが、第１の電子ユニットから第２の電子ユニットへ信号バスを介して転送される。伝送シーケンスは、伝送を完了するのに必要な最低数のビートを使用し、障害のないすべての信号導電体を使用してデータ・ブロックを送信する。【選択図】  図１
2007505380.tif 000002
【特許請求の範囲】
【請求項１】
ゼロから「Ｋ−１」の信号伝導体に障害がある「Ｋ」の信号導電体を有する信号バスを介して、第１の電子ユニットから第２の電子ユニットへデータの「Ｊ」ビット・ブロックを伝送するための方法であって、
前記信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップと、
前記信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップによって発見された情報を使用して、前記第１の電子ユニットおよび前記第２の電子ユニットにおける前記信号導電体の障害状況を設定するステップと、
前記信号バスにおいて障害のある信号導電体の数「Ｆ」を決定するステップと、
前記信号バスにおいて障害のない信号導電体の数「Ｋ−Ｆ」を決定するステップと、
「Ｊ／（Ｋ−Ｆ）」ビートと、残りがある場合は追加のビートとを使用して、前記「Ｋ−Ｆ」の障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックを伝送するステップと、
を有する方法。
【請求項２】
前記伝送するステップが、
前記データの「Ｊ」ビット・ブロックからデータの「Ｋ」ビット・グループを選択するステップと、
前記「Ｋ−Ｆ」の障害のない導電体を使用して、前記データの「Ｋ」ビット・グループのうちの「Ｋ−Ｆ」ビットをビート上で伝送するステップと、
前記信号バス内の前記障害のある「Ｆ」導電体により、前記ビート上で伝送できない前記「Ｋ」ビット・グループ内の前記「Ｆ」ビットを格納するステップと、
前記データの「Ｊ」ビット・ブロックのうちのすべての「Ｊ」ビットが選択されるまで、前記３つのステップを反復するステップと、
前記「Ｋ−Ｆ」の障害のない信号導電体のうちの１つまたは複数を使用して、前記格納された「Ｆ」ビットを１つまたは複数の追加ビート上で伝送するステップと、
をさらに有する、請求項１に記載の方法。
【請求項３】
前記「Ｆ」ビットを格納するステップが、前記「Ｆ」ビットのうちの少なくとも１ビットをシフト・レジスタの第１のエンドにシフトするステップをさらに有する、請求項２に記載の方法。
【請求項４】
前記シフト・レジスタのビットのうちの少なくとも１つを障害のない信号導電体に伝送するステップをさらに有する、請求項３に記載の方法。
【請求項５】
前記シフト・レジスタ内の特定ビットを、障害のない信号導電体に結合するために位置合わせするように移動するステップをさらに有する、請求項４に記載の方法。
【請求項６】
前記第２の電子ユニットで「Ｊ／（Ｋ−Ｆ）」ビートについて１ビートあたり「Ｋ−Ｆ」ビットを格納するステップと、
「Ｊ／（Ｋ−Ｆ）」で残りが生じる場合、追加ビート内に残りのビットを格納するステップと、
をさらに有する、請求項２に記載の方法。
【請求項７】
前記第１の電子ユニット上のデータの前記「Ｊ」ビット・ブロックからビットの「Ｋ−Ｆ」ビット・グループを選択するステップと、
前記信号バスにおける前記「Ｋ−Ｆ」の障害のない信号導電体を使用して、前記ビットの「Ｋ−Ｆ」ビット・グループを前記第１の電子ユニットから前記第２の電子ユニットに伝送するステップと、
すべての「Ｋ−Ｆ」ビット・グループが伝送されるまで前記ステップを反復するステップと、
前記信号バスの追加ビートを使用して、前記第１の電子ユニット上に前記データの「Ｊ」ビット・ブロックの残りのビットがあればそれを前記「Ｋ−Ｆ」の障害のない信号導電体の一部またはすべてを使用して前記第２の電子ユニットに伝送するステップと、
をさらに有する、請求項１に記載の方法。
【請求項８】
伝送用に「Ｊ」ビットを保持する第１の電子ユニット内のデータの第１ブロックと、
「Ｊ」ビットを有するデータの第２ブロックを保持することが可能な第２の電子ユニット内のストレージと、
前記第１の電子ユニットを前記第２の電子ユニットに結合する「Ｋ」信号導電体を有し、「Ｆ」の障害のある信号導電体および「Ｋ−Ｆ」の障害のない信号導電体を有する、信号バスと、
前記第１の電子ユニットおよび前記第２の電子ユニットに結合され、前記信号バス上で前記「Ｆ」の障害のある信号導電体および前記「Ｋ−Ｆ」の障害のない信号導電体を識別すること、ならびに前記第１の電子ユニットおよび前記第２の電子ユニット内に障害識別情報を格納することが可能な、診断ユニットと、
前記障害識別情報に応答して、前記「Ｋ−Ｆ」の障害のない導電体のみを使用し、「Ｊ／（Ｋ−Ｆ）」ビートおよび残りがある場合は追加のビートを使用して前記「Ｊ」ビットのデータを伝送する、前記第１の電子ユニット内の駆動シーケンサと、
を有する、第１の電子ユニットから第２の電子ユニットにデータの「Ｊ」ビット・ブロックを伝送するための装置。
【請求項９】
前記データの第１ブロックが、一度に「Ｋ」ビットのグループを選択することによって選択可能な、請求項８に記載の装置。
【請求項１０】
前記駆動シーケンサが、前記データの第１ブロックから一度に「Ｋ−Ｆ」ビットを選択すること、および前記選択された「Ｋ−Ｆ」ビットを前記信号バスの前記「Ｋ−Ｆ」の障害のない信号導電体上で駆動することが可能であり、さらに前記駆動シーケンサが、「Ｊ／（Ｋ−Ｆ）」に残りがある場合は追加のビートについて「Ｋ−Ｆ」ビットより少ないビットを選択することが可能な、請求項８に記載の装置。
【請求項１１】
前記駆動シーケンサが使用不可にすることが可能なドライバをさらに有し、前記駆動シーケンサが障害のある信号導電体に結合されたドライバを使用不可にする、請求項１０に記載の装置。
【請求項１２】
前記第２の電子ユニットが、前記信号バスおよび前記診断ユニットに結合された受信シーケンサをさらに有し、前記受信シーケンサは一度に「Ｋ−Ｆ」ビットを前記データの第２ブロックに格納することが可能であり、前記「Ｋ−Ｆ」ビットは前記信号バスの「Ｋ−Ｆ」の障害のない信号導電体から受信され、さらに前記受信シーケンサは、「Ｊ／（Ｋ−Ｆ）」に残りがある場合は「Ｋ−Ｆ」ビットより少ないビットを選択することが可能な、請求項１０に記載の装置。
【請求項１３】
第１の電子ユニットから第２の電子ユニットへ信号バスを介してデータ・ブロックを伝送するための方法であって、
前記信号バス内の障害のない信号導電体を識別するステップと、
前記伝送シーケンスを使用して前記第１の電子ユニットから前記第２の電子ユニットへデータ・ブロックを伝送するステップであって、前記伝送シーケンスは前記信号バス内のすべての障害のない信号導電体を利用する、伝送するステップと、
を有し、前記伝送シーケンスが前記データ・ブロックの伝送を完了するために最低数のビートを使用する、方法。
【請求項１４】
前記障害のない信号導電体がパワー・オン・シーケンス中に識別される、請求項１３に記載の方法。
【請求項１５】
前記障害のない信号導電体が、パリティ・エラー、エラー修正コード・エラー、または巡回冗長検査エラーの結果として実行されるワイヤ・テストによって識別される、請求項１３に記載の方法。
【請求項１６】
前記信号バス内の障害のある信号導電体を識別するステップと、
前記障害のある信号導電体に結合されたドライバを高インピーダンス状態に切り替えるステップと、
をさらに有する、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、信号バスによって結合された構成要素を有する電子システムに関する。とりわけ本発明は、信号バス内の１つまたは複数の信号伝導体に障害を有する信号バスに関する。
【背景技術】
【０００２】
電子システムは、一般に、信号伝導体によって相互接続された複数の電子ユニットを備える。これらの信号伝導体は、通常、銅、アルミニウム、または他のこうした材料で製造された導電性パスである。別の方法として、光ファイバも信号を伝導する。
【０００３】
たとえば、半導体チップは、ワイヤボンディングまたはフリップ・チップ技法を使用してモジュール上の信号伝導体に電気的に結合された信号を駆動および受信する。さらにモジュールは、通常、銅製ピン、はんだ柱、または他の手段を使用してプリント配線板（ＰＷＢ）信号伝導体に結合される。ＰＷＢ上の信号伝導体は１つのモジュールを他のモジュールと相互接続し、さらに信号をＰＷＢエッジ・コネクタまたはケーブル・コネクタにルーティングする。ＰＷＢエッジ・コネクタおよびケーブル・コネクタは、バックプレーンまたはケーブルを使用して、１つのＰＷＢを他のＰＷＢと相互接続する際に使用される。半導体チップの中であっても、極めて微細な導電体がチップ上の回路と論理ユニットとの間で信号をルーティングする。
【０００４】
論理的に関係する信号導電体のグループが、信号バスと呼ばれる。たとえば、プロセッサ・チップは、データがほぼ並列に流れる指定数の信号導電体を有する信号バスによってメモリ制御チップに接続される。すなわち、プロセッサ・チップが８ビット・バスによってメモリ・コントロールに結合される場合、プロセッサ・チップは、信号バスの信号導電体それぞれで１ビット、８ビットのデータ（１バイト）をほぼ同時に送信する。たとえばプロセッサ・チップは、例のメモリ制御チップに１回に１バイトのアドレスを伝送し、メモリ制御チップから１回に１バイトのデータを再受信する。
【０００５】
経済的および物理的要因によって、電子素子を相互接続するために使用可能な信号導電体の数が制限される。たとえば、モジュールとカードとの間の各相互接続は約１．２円（約１ペニー）かかる。かなり価格に敏感な電子ユニット上に多数の相互接続があるのは妥当ではない。さらにＰＷＢ上に多くの構成要素が取り付けられると、多数の相互接続がＰＷＢ内に配線レイヤを追加させることになり、ＰＷＢのコストが上がる。多くの相互接続が使用される場合、電子ユニット間の配線はかなり費用がかかり、密集した多くの導電体ケーブルは扱いにくく、コストがかかり、信頼性の点からみて問題である。ある時点で、コストがかかり信頼性が低くなるだけでなく、より多くの相互接続を追加するのが物理的に不可能になる。
【０００６】
通常、１つの電子ユニットが別の電子ユニットにデータ・ブロックを伝送しなければならない。しばしばデータ・ブロックは、比較的大規模である。たとえば、何らかの最新のコンピュータ・システム内のキャッシュ・ラインは６４バイトまたは１２８バイト長さである。このブロック（すなわちキャッシュ・ライン）が８バイトの信号バスを介して送信されることになる場合、転送を完了するにはそれぞれ８または１６のバス・サイクル（ビート）が必要である。多くの応用例では、より少ない信号導電体を有する信号バスを介して、より大規模なデータ・ブロックが転送される場合さえある。
【０００７】
現在の電子システムは、確実に動作することが期待される。ビジネス用に信頼された市販のコンピュータ・システムでのダウンタイムは、売り上げの損失により多額の犠牲を払う可能性がある。さらに、こうしたダウンタイムは顧客をいらいらさせ、競争相手に向かわせてしまう可能性がある。多くの市販のシステムは、時刻、曜日の制限なく（すなわち常時）動作するように当てにされる。ピーク時に機能を停止させる予期せぬ障害は、非常に重大な問題である。通常、こうした市販システムのユーザは、障害が発生した場合に、たとえ性能がわずかに低下してもオペレーションが続行されることを好む。ユーザは、より都合のよい時間に障害を修復するようなプランを立てることができる。軍用システムも電子システムに対する依存度が高く、さらに過酷な使い方および厳しい環境にさらされる可能性がある。戦闘状態では、予備部品（新しいケーブル、新しいＰＷＢなど）が入手不可能な場合がある。したがって多くの軍事適用例では、わずかな性能低下での継続オペレーションが好ましい。
【０００８】
信号バスは、信号バスに関連付けられた１つまたは複数の信号導電体を有し、通常、信号バスは８の倍数の信号導電体を有する。しばしば、単一の特別な信号導電体がパリティ・ビットを搬送する。たとえば、８つの信号導電体を有する信号バスは、パリティを搬送する９番目の（パリティ）信号導電体も有する。送信側ユニット上のパリティ生成器は、バス上の論理「１」の数が必ず奇数になる（または、他の実施形態では必ず偶数になる）ように、パリティ上の論理値を生成する。受信側ユニット上のパリティ・チェッカは、受信した論理「１」の数が予想通りである（すなわち「奇数」または「偶数」）かどうかをチェックする。こうしたパリティ生成／チェック・システムは、信号バス上で単一の障害を検出することはできるが、障害を修正することはできない。パリティ・エラーが検出された場合、その信号バスはもはやデータの伝送に使用できない。追加の信号導電体を使用して、多くの適用例で単一の障害を修正し、２つの障害を検出することが可能な、「エラー修正コード」（ＥＣＣ）をインプリメントすることができる。ＥＣＣの使用により、追加の信号導電体に関連付けられた追加のコストが発生する。データの伝送時にエラーを発見しこれに対処するために使用される他の技法が、巡回冗長コード（ＣＲＣ）の使用である。
【０００９】
多くの最新の電子システムは、信号バス内の障害に関する詳細を決定するための「ワイヤ・テスト」プロシージャを実行する機能を有する。たとえば第１の電子ユニットは、信号導電体上で所定のパターンの論理「１」および「０」を駆動する。信号導電体によって第１のユニットに結合された第２の電子ユニットは、信号導電体からデータを受信し、受信したパターンと所定のパターンとを比較する。受信したパターンが所定のパターンと同じでない場合、信号導電体、ドライバ、またはレシーバに障害がある。こうしたパスは、信号バスをパリティ使用不可または使用可にすることになる。単一のエラー修正、２つのエラー検出を有するＥＣＣを採用している信号バスであっても、ＥＣＣバス内の他の障害がＥＣＣバスを使用不可にすることもあるため、危険にさらされることになる。２つの信号導電体内の障害が、単一ビット修正のＥＣＣを有する信号バスであっても使用不可にすることがある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、障害のある信号導電体を有する信号バスが低下した性能で動作できるようにする、方法および装置を提供することである。
【課題を解決するための手段】
【００１１】
第１の態様によれば、ゼロから「Ｋ−１」の信号伝導体に障害がある「Ｋ」の信号導電体を有する信号バスを介して、第１の電子ユニットから第２の電子ユニットへデータの「Ｊ」ビット・ブロックを伝送するための方法が提供され、この方法は、信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップと、信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップによって発見された情報を使用して、第１の電子ユニットおよび第２の電子ユニットにおける信号導電体の障害状況を設定するステップと、信号バスにおいて障害のある信号導電体の数「Ｆ」を決定するステップと、信号バスにおいて障害のない信号導電体の数「Ｋ−Ｆ」を決定するステップと、「Ｊ／（Ｋ−Ｆ）」ビートと、残りがある場合は追加のビートとを使用して、「Ｋ−Ｆ」の障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックを伝送するステップと、を有する。
【００１２】
好ましい実施形態では、この方法は、第１の電子ユニット上のデータの「Ｊ」ビット・ブロックからビットの「Ｋ−Ｆ」ビット・グループを選択するステップと、信号バスにおける「Ｋ−Ｆ」の障害のない信号導電体を使用して、ビットの「Ｋ−Ｆ」ビット・グループを第１の電子ユニットから第２の電子ユニットに伝送するステップと、すべての「Ｋ−Ｆ」ビット・グループが伝送されるまで上記ステップを反復するステップと、信号バスの追加ビートを使用して、第１の電子ユニット上にデータの「Ｊ」ビット・ブロックの残りのビットがあればそれを「Ｋ−Ｆ」の障害のない信号導電体の一部またはすべてを使用して第２の電子ユニットに伝送するステップと、を有する。
【００１３】
好ましくは、障害のある信号導電体を有する信号バスがわずかに低下した性能で動作できるようにする、方法および装置が提供される。
【００１４】
好ましい実施形態では、伝送するステップは、データの「Ｊ」ビット・ブロックからデータの「Ｋ」ビット・グループを選択するステップと、「Ｋ−Ｆ」の障害のない導電体を使用して、データの「Ｋ」ビット・グループのうちの「Ｋ−Ｆ」ビットをビート上で伝送するステップと、信号バス内の障害のある「Ｆ」導電体により、ビート上で伝送できない「Ｋ」ビット・グループ内の「Ｆ」ビットを格納するステップと、データの「Ｊ」ビット・ブロックのうちのすべての「Ｊ」ビットが選択されるまで、上記３つのステップを反復するステップと、「Ｋ−Ｆ」の障害のない信号導電体のうちの１つまたは複数を使用して、格納された「Ｆ」ビットを１つまたは複数の追加ビート上で伝送するステップと、をさらに有する。
【００１５】
好ましい実施形態では、「Ｆ」ビットを格納するステップは、「Ｆ」ビットのうちの少なくとも１ビットをシフト・レジスタの第１のエンドにシフトするステップをさらに含む。
【００１６】
好ましい実施形態では、シフト・レジスタのビットのうちの少なくとも１つを障害のない信号導電体に伝送するステップを含む。
【００１７】
好ましい実施形態では、シフト・レジスタ内の特定ビットを、障害のない信号導電体に結合するために位置合わせするように移動するステップを含む。
【００１８】
好ましい実施形態では、第２の電子ユニットで「Ｊ／（Ｋ−Ｆ）」ビートについて１ビートあたり「Ｋ−Ｆ」ビットを格納するステップと、「Ｊ／（Ｋ−Ｆ）」で残りが生じる場合、追加ビート内に残りのビットを格納するステップとを含む。
【００１９】
本発明は、好ましくは、内部の信号導電体に障害がある信号バスによって、第２の電子ユニットに結合された第１の電子ユニットを有する電子システムの、連続するが性能低下したオペレーションを可能にする、方法および装置を提供する。好ましくは、信号バス内の障害のない信号導電体が識別され、好ましくは、すべての障害のない信号導電体を利用する伝送シーケンスで、伝送を完了するための最低数のビート（バス・サイクル）を使用して、第１の電子ユニットが第２の電子ユニットへデータ・ブロックを伝送する。第１の電子ユニットは、好ましくは、「Ｋ」の信号導電体を有する信号バスを介して「Ｊ」ビットを有するデータ・ブロックを伝送するように設計される。第２の電子ユニットは、好ましくはデータ・ブロックを受信する。電子システムは、たとえば「ワイヤ・テスト」または他の手段を使用して、信号バス内の障害のある信号導電体および障害のない信号導電体を識別し、好ましくは、障害のある信号導電体の識別を第１の電子ユニットおよび第２の電子ユニットに格納する。好ましい実施形態によれば、「Ｆ」は信号バス内の障害のある導電体の数である。第１の電子ユニットは、好ましくは障害のある信号導電体の識別を使用してその伝送を変更し、伝送を実施するために１つまたは複数の追加ビートを使用して、残りの「Ｋ−Ｆ」信号導電体を介して「Ｊ」ビット・ブロックを伝送シーケンスとして送信する。第２の電子ユニットは、好ましくは障害のある信号導電体の識別を使用し、障害のない「Ｋ−Ｆ」信号導電体を介して伝送シーケンスに従って「Ｊ」ビット・ブロックを受信する。
【００２０】
一実施形態では、「Ｋ」信号導電体を有する信号バスを介して「Ｊ」ビットを有するデータ・ブロックを伝送する必要のある電子システムにおいて、伝送シーケンスで「Ｊ／Ｋ」バス・サイクル（ビート）が使用され、障害のある信号導電体がない場合、転送を完了する。信号バス内の「Ｆ」信号導電体に障害がある場合、伝送シーケンスが必要とするビートの数は「Ｊ／（Ｋ−Ｆ）」であり、分割によって残りが出た場合はこれに１ビートが加えられる。
【００２１】
「Ｋ」信号導電体を有し、そのうちの「Ｆ」に障害がある信号バスを有する実施形態では、伝送シーケンスは「Ｊ」ビットのデータを有するデータ・ブロックから１ビートについて「Ｋ」ビットを選択する。「Ｊ／Ｋ」ビートそれぞれについて「Ｋ−Ｆ」ビットが伝送され、その後の伝送では１ビートにつきＦビットが格納される。「Ｊ／（Ｋ−Ｆ）−Ｊ／Ｋ」の追加ビート（分割により残りが出た場合はさらに１ビート追加）を使用して、「Ｊ／Ｋ」ビート中に送信されなかった各ビートから格納されたビットを伝送する。
【００２２】
「Ｋ」信号導電体を有し、そのうちの「Ｆ」に障害がある信号バスを有する実施形態では、伝送シーケンスは「Ｊ」ビットのデータを有する第１の電子ユニット内のデータ・ブロックから１ビートについて「Ｋ−Ｆ」ビットを選択する。Ｊ／（Ｋ−Ｆ）ビートそれぞれについて「Ｋ−Ｆ」ビットが伝送される。分割により残りが出た場合はさらに１ビートが使用される）。
【００２３】
他の態様によれば、伝送用に「Ｊ」ビットを保持する第１の電子ユニット内のデータの第１ブロックと、「Ｊ」ビットを有するデータの第２ブロックを保持することが可能な第２の電子ユニット内のストレージと、第１の電子ユニットを第２の電子ユニットに結合する「Ｋ」信号導電体を有し、「Ｆ」の障害のある信号導電体および「Ｋ−Ｆ」の障害のない信号導電体を有する信号バスと、第１の電子ユニットおよび第２の電子ユニットに結合され、信号バス上で「Ｆ」の障害のある信号導電体および「Ｋ−Ｆ」の障害のない信号導電体を識別すること、ならびに第１の電子ユニットおよび第２の電子ユニット内に障害識別情報を格納することが可能な、診断ユニットと、障害識別情報に応答して、「Ｋ−Ｆ」の障害のない導電体のみを使用し、「Ｊ／（Ｋ−Ｆ）」ビートおよび残りがある場合は追加のビートを使用して「Ｊ」ビットのデータを伝送する、第１の電子ユニット内の駆動シーケンサと、を有する、第１の電子ユニットから第２の電子ユニットにデータの「Ｊ」ビット・ブロックを伝送するための装置が提供される。
【００２４】
好ましい実施形態では、データの第１ブロックは、一度に「Ｋ」ビットのグループを選択することによって選択可能である。
【００２５】
好ましい実施形態では、駆動シーケンサは、データの第１ブロックから一度に「Ｋ−Ｆ」ビットを選択すること、および選択された「Ｋ−Ｆ」ビットを信号バスの「Ｋ−Ｆ」の障害のない信号導電体上で駆動することが可能であり、さらに駆動シーケンサは、「Ｊ／（Ｋ−Ｆ）」に残りがある場合は追加のビートについて「Ｋ−Ｆ」ビットより少ないビットを選択することができる。
【００２６】
好ましい実施形態では、駆動シーケンサは使用不可にすることが可能なドライバをさらに有し、駆動シーケンサは障害のある信号導電体に結合されたドライバを使用不可にする。
【００２７】
好ましい実施形態では、第２の電子ユニットは、信号バスおよび診断ユニットに結合された受信シーケンサをさらに有し、受信シーケンサは一度に「Ｋ−Ｆ」ビットをデータの第２ブロックに格納することが可能であり、「Ｋ−Ｆ」ビットは信号バスの「Ｋ−Ｆ」の障害のない信号導電体から受信され、さらに受信シーケンサは、「Ｊ／（Ｋ−Ｆ）」に残りがある場合は「Ｋ−Ｆ」ビットより少ないビットを選択することができる。
【００２８】
他の態様によれば、第１の電子ユニットから第２の電子ユニットへ信号バスを介してデータ・ブロックを伝送するための方法が提供され、信号バス内の障害のない信号導電体を識別するステップと、伝送シーケンスを使用して第１の電子ユニットから第２の電子ユニットへデータ・ブロックを伝送するステップと、を有し、伝送シーケンスは信号バス内のすべての障害のない信号導電体を利用し、伝送シーケンスは、データ・ブロックの伝送を完了するために最低数のビートを使用する。
【００２９】
好ましい実施形態では、前述の方法は、信号バス内の障害のある信号導電体を識別するステップと、障害のある信号導電体に結合されたドライバを高インピーダンス状態に切り替えるステップと、をさらに有する。
【００３０】
好ましい実施形態では、障害のない信号導電体はパワー・オン・シーケンス中に識別される。
【００３１】
好ましい実施形態では、障害のない信号導電体は、パリティ・エラー、エラー修正コード・エラー、または巡回冗長検査エラーの結果として実行されるワイヤ・テストによって識別される。
【００３２】
次に本発明の諸実施形態について、単なる例として以下の図面を参照しながら説明する。
【００３３】
しかしながら、添付の図面は本発明の単なる典型的な諸実施形態を示したものに過ぎず、その範囲を限定するとみなされることはなく、他の等しく効果的な諸実施形態が可能であることに留意されたい。
【発明を実施するための最良の形態】
【００３４】
好ましくは、内部の信号導電体に障害がある信号バスによって、第２の電子ユニットに結合された第１の電子ユニットを有する電子システムの、連続するが性能低下したオペレーションを可能にする、方法および装置が提供される。信号バス内の障害のない信号導電体が識別され、すべての障害のない信号導電体を利用する伝送シーケンスで、伝送を完了するための最低数のビート（バス・サイクル）を使用して、第１の電子ユニットが第２の電子ユニットへデータ・ブロックを伝送する。第１の電子ユニットは、「Ｋ」の信号導電体を有する信号バスを介して「Ｊ」ビットを有するデータ・ブロックを伝送するように設計される。第２の電子ユニットはデータ・ブロックを受信する。電子システムは、「ワイヤ・テスト」または他の手段を使用して、信号バス内の障害のある信号導電体を識別し、障害のある信号導電体の識別を第１の電子ユニットおよび第２の電子ユニットに格納する。障害のある導電体の数が「Ｆ」である。第１の電子ユニットは、障害のある信号導電体の識別を使用してその伝送を変更し、伝送を実施するために１つまたは複数の追加ビートを使用して、障害のない「Ｋ−Ｆ」信号導電体を介して「Ｊ」ビット・ブロックを送信する。第２の電子ユニットは、障害のある信号導電体の識別を使用し、障害のある「Ｋ−Ｆ」信号導電体を介して「Ｊ」ビット・ブロックを受信する。一般に「Ｆ」は「Ｋ−１」までの任意の数とすることが可能であるが、説明を簡単にするために、以下の例では単一の障害が想定される。さらに説明を簡単にするために、以下の例では、８ビット信号バスを介して６４ビットのデータ・ブロックが転送されると想定する。
【００３５】
図１は、全体として１００と示された電子システムの高水準ブロック図である。電子システム１００は、以下でチップ１と呼ばれる第１の電子ユニット１と、以下でチップ５と呼ばれる第２の電子ユニット５とを有する。電子ユニット１および電子ユニット５は、半導体チップ、モジュール、プリント配線板（ＰＷＢ）、または電子格納装置（ｅｎｃｌｏｓｕｒｅ）を含むがこれらに限定されることのない、任意の電子構成要素とすることができる。「チップ」を使用して、説明のための具体例が提供される。チップ１は、各ビート（バス・サイクル）上で伝送されることになるビット数、および伝送を完了するために必要なビート数を定義する伝送シーケンスを使用して、チップ５へと駆動しなければならないデータの第１ブロック１０を含み、これはチップ５でデータの第２ブロック５０に格納されることになる。転送が成功した後、データの第２ブロック５０は、伝送開始以前のデータの第１ブロック１０と同じである。データの第１ブロック１０およびデータの第２ブロック５０は一般に各チップのレジスタに格納されるが、キャッシュまたは他のメモリなどの任意の形のストレージとすることも可能である。データの第１ブロック１０からのデータは、信号バス９５を介してチップ１からチップ５へと転送される。図１の例におけるデータの第１ブロックは８バイト（すなわち６４ビット）を含む。図１では、信号バス９５は８つの信号導電体を有するように示される。前述の経済的および物理的な点から、信号バスは通常「狭く（ｎａｒｒｏｗ）」（すなわち、比較的少ない信号導電体を有し）、転送されるデータ・ブロック内のビット数よりもかなり狭い。信号バス９６は例示のために８つの信号導電体を有するように示されているが、これよりも広いかまたは狭い信号バスが企図され、さらに信号バスは、パリティまたはエラー修正コード信号導電体を具体化することも可能である。信号導電体上に障害（ドライバまたはレシーバの障害を含む）がない場合、８つの信号バス・サイクル（ビート）を使用して、データの第１ブロック１０内のすべてのデータがチップ５に転送される。各ビート中に、情報の８ビット（１バイト）の選択グループが伝送される。選択グループは、信号バス９５を駆動するドライバの入力へとルーティングするために、データの第１ブロック１０から（または以下で論じるように他のストレージから）選択されるビット・グループである。図１で１０Ａ〜１０Ｈとして示されるバイト０〜７は所定の順序で、この例ではデータのブロック１０から順番に選択され、信号バス９５を介して一度に１バイトが伝送される。チップ５は各バイトを受信し、各バイトをデータの第２ブロック５０の５０Ａ〜５０Ｈと示されたバイト０〜７に格納する。
【００３６】
データの第１ブロック１０およびデータの第２ブロック５０は、データの第１ブロック１０およびデータの第２ブロック５０内のデータの各バイトをそれぞれ駆動シーケンサ１１および受信シーケンサ５１に結合する、１バイト幅のバスを有するように示されるが、他のインプリメンテーションも企図される。一実施形態（図示せず）では、たとえばデータの第１のブロック５０は、データが一度に８ビットだけシフトされるシフト・レジスタであり、シフト・レジスタの単一バイトのみが駆動シーケンサ１１に結合される。他の実施形態（図示せず）では、データの第１ブロック１０は８つの８ビット・レジスタのレジスタ・スタックであり、関連する３ビット・アドレスを有するレジスタ・スタックは、スタック内の任意のレジスタをアドレス指定することができる。チップ５のデータの第２ブロック５０について、同様の実施形態が企図される。
【００３７】
図１では、信号バス９５の信号導電体のうちの１つに障害９６が示される。障害９６は、信号導電体の部分９５Ｂと信号導電体の部分９５Ｂ’とを分離する。障害９６は、信号導電体内の不連続または切れ目である場合があり、時には「オープン回路」と呼ばれる。障害９６は、電源への望ましくない接続である場合もある。いずれの場合も、部分９５Ｂおよび９５Ｂ’からなる信号導電体は確実に情報を伝送することができない。障害９６は信号バス９５上の２つの信号間の短絡である場合もあり、信号バス９５は２つの障害を有することになるが、現在の例では単一の障害を想定している。２つの障害に対処するためには、図の例で示された以外に追加の論理ブロックが必要である。しかしながら、当業者であれば理解されるように、追加の論理は図示された論理と同様である。
【００３８】
システムの立ち上げ（ｂｒｉｎｇｕｐ）時あるいはパリティ・チェック、ＣＲＣ、またはＥＣＣエラーに応答して実行される「ワイヤ・テスト」中に、障害が識別され、診断ユニット９８に格納される。障害の通信は信号導電体９１および信号導電体９２を介して送られる。信号導電体９１および９２は単一の信号導電体であるか、または複数の信号導電体を有するバスとすることができる。診断ユニット９８は、電子システムの障害を検査する任意のユニットである。たとえばＩＢＭ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）のｉＳｅｒｉｅｓ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）コンピュータでは、診断ユニットは「サービス・プロセッサ」と呼ばれる。
【００３９】
図２は、信号バス９５に障害がない場合に、信号バス９５を介してデータの第１ブロック１０におけるデータの通常の転送中に実行される伝送シーケンスを示す。第１のビート中にバイト０が転送される。第２のビート中にバイト１が転送される。最終バイトであるバイト７は、第８番ビートで転送される。
【００４０】
図３は、信号バス９５内の信号伝導体のうちの１つに障害がある場合、信号バス９５を介してデータの第１ブロック１０におけるデータの転送を実施する伝送シーケンスを示す。例示のために、信号バス９５の信号導電体「Ｚ」上のビットは障害が原因で転送することができない。チップ１の駆動シーケンサ１１は障害を認識しているが、データ転送の最初の８つのビートそれぞれについて１バイト（この例では）の選択グループを選択する。これは、障害がない場合のオペレーションと同様である。図３は、各ビートのビット「Ｚ」が転送されないことを示す。（たとえば、バイト０、ビット「Ｚ」なしは、バイト０がビート１中にドライバのデータ入力にルーティングされたが、バイト０のビット「Ｚ」は信号導電体「Ｚ」上の障害９６が原因で転送されなかったことを意味する。）有利には、ビット「Ｚ」のドライバは非導電状態（しばしば「使用不可」または「トライステート（ｔｒｉｓｔａｔｅ）」と呼ばれる）に置かれる。識別された障害が短絡である可能性があり、障害が接地電源に対する短絡である場合は大量の電力が消散される可能性があり、特定のビットが論理「１」である。駆動シーケンサ１１（図１を参照）は、第１の８つのビート中に送信されなかった８ビットを格納し、各ビートについてビット「Ｚ」を格納する。第９番ビート中に、格納された８つの「Ｚ」ビットを含む選択グループがドライバにルーティングされる。「Ｚ」ビットのうちの７つが転送される。８番目の「Ｚ」ビットは、障害のために第９番ビート上では転送できない。その後８番目の「Ｚ」ビットは、信号バス９５内の障害のない信号導電体を使用して、第１０番ビート上で転送される。
【００４１】
データ・ブロック１０内のビット数（６４ビット）および信号バス９５内の信号導電体の数（８）は単なる例示的な値であり、任意のサイズのデータ・ブロックおよびバス内の任意数の信号導電体が企図される。さらに電子システムの中には、データ・ブロックのデータ部分の伝送に先立って、伝送されることになるブロックのサイズに関する情報を含む「ヘッダ」を送信することで、データ・ブロックの変更が可能なものもある。本考察では、ヘッダはデータ・ブロックの一部とみなされる。
【００４２】
図４は、駆動シーケンサ１１の詳細なブロック図を伴うチップ１を示す図である。駆動マルチプレクサは、データの第１ブロック１０の８バイトそれぞれに結合され、データの第１ブロック１０の８バイトのうちのいずれかを駆動マルチプレクサ２０の出力に選択することができる。駆動マルチプレクサ２０は、結合３５によって駆動ビット・レジスタ２７にも結合される。駆動ビート・コントローラ２３は、９バイト（すなわちデータの第１ブロック１０からの８バイト、および駆動レジスタ２７からのバイト）のうちのどれが駆動マルチプレクサ２０によって選択されるかを判別する信号３０によって、駆動マルチプレクサ２０に結合される。選択されたバイトはドライバ２４のデータ入力に結合される。選択されたバイトは、駆動セレクト２１にも結合される。駆動ビート・コントローラ２３からの信号３４は、信号バス９５内のどの信号導電体に障害があるかを駆動セレクト２１に伝える。これは前述のように、現在選択されたバイト内のビットであり、信号バス９５内の信号導電体の障害９６により、後で伝送するために駆動ビット・レジスタ２７に格納されていなければならない。選択されたビットは駆動ビット・レジスタ２７に結合され、駆動ビート・コントローラ２３からの信号３２によって制御されるように駆動ビット・レジスタ２７に格納される。有利には、駆動ビット・レジスタ２７はシフト・レジスタであるが、他の実施形態も企図される。８ビート後、駆動ビット・レジスタ２７は障害９６によって伝送できなかった８ビット（バイト０〜７それぞれから１ビット）すべてを含む。第９番ビートで、駆動ビート・コントローラ２３の制御下の信号３０により、駆動マルチプレクサ２０によって駆動ビット・レジスタ２７内の８ビットが選択される。これら８ビットのうちの７ビットは、信号バス９５によって再度伝送される。１ビットは障害９６により依然として送信できない。さらに駆動ビート・コントローラ２３は、駆動ビット・レジスタ２７内のビットの「回転」を実行するように、結合３２を介して駆動ビット・レジスタ２７に信号通知する。図４では、信号３３が駆動ビット・レジスタ２７の第１エンドを駆動ビット・レジスタ２７の第２エンドに結合する。回転中、駆動ビット・レジスタ２７の一番右の７つのビットが１ビット位置ずつ左にシフトし、一番左のビットが回転して一番右のビットになる。第１０番ビート中に、駆動ビート・コントローラ２３の制御下で、駆動マルチプレクサ２０によって駆動ビット・レジスタ２７の今回転したコンテンツが再度選択される。７つのビットは信号バス９５を介して再度伝送され、１つのビットはこの例の障害９６により伝送されない。しかしながら、駆動ビット・レジスタ２７での回転オペレーションにより、第９番ビートで送信されなかったビットは異なる信号導電体を介して駆動され、第１０番ビートで首尾良く伝送される。電子システムが、複数の障害のある信号導電体をサポートするように設計されている場合、駆動ビット・レジスタ２７は、特定のビートで転送できない追加ビットを保持するために複製され（図示せず）、駆動セレクト２１は、駆動マルチプレクサ２０の出力から追加ビットを選択し、この追加ビットを駆動ビット・レジスタ２７の複製に格納するように設計される。駆動ビット・レジスタ２７内の「回転」オペレーションは例示のために説明したものであるが、伝送できなかったビットを第１０番ビートで障害のない信号導電体にルーティングされるように移動させるのに好適な、駆動レジスタ２７におけるビットの任意の所定の動きが企図される。他の実施形態（図示せず）では、駆動マルチプレクサ２０は前述のように駆動ビット・レジスタ２７に結合された第９番入力バイトを有するが、さらに、駆動ビット・レジスタ２７のビットに結合された第１０番入力バイトも有し、駆動ビット・レジスタ２７のビットは、駆動ビット・レジスタ２７の第９番バイト結合とは異なる所定の順序で駆動マルチプレクサ２０に結合される。駆動ビート・コントローラ２３は、駆動マルチプレクサ２０が、第９番ビート中の第９番入力バイト結合および第１０番ビート中の第１０番入力バイト結合を選択するように制御する。
【００４３】
図５は、各ビートに先立つ駆動ビット・レジスタ２７のコンテンツを示す図である。ビット「Ｚ」は、障害のある信号バス９５内の信号導電体上で駆動されることになるデータのビットである。ビート１に先立って、駆動ビット・レジスタ２７にシフトされているビットはない。ビート１中には、バイト０のビット「Ｚ」が駆動ビット・レジスタ２７の一番右のビット位置にシフトされる。ビート２中には、バイト１のビット「Ｚ」が駆動ビット・レジスタ２７の一番右の位置にシフトされる。ビート８の後（図５ではプレ・ビート９と示される）、各バイトのビット「Ｚ」が駆動ビット・レジスタ２７に格納される。これら８つのバイトは、前述のように第９番ビート中に駆動マルチプレクサ２０によって選択される。第９番ビートの後、前述のように駆動ビット・レジスタ２７で回転オペレーションが実行され、第１０番ビート用に選択されたデータは図５では「プレ・ビート１０」として示される。すべての「Ｚ」ビットは駆動ビット・レジスタ２７に残ったままであるが、１ビット位置ずつ回転されるため、ドライバ２４によって信号バス９５上の異なる信号導電体で駆動するようにルーティングされることになる。したがって、第９番ビートでは転送できなかった「Ｚ」ビットは、第１０番ビートで首尾良く転送される。
【００４４】
図６は、チップ５の拡張ブロック図である。受信シーケンサ５１は、信号バス９５上で信号を受信するのに好適なレシーバ６０を含む。受信シーケンサ５１は、信号９２によって前述の診断ユニット９８に結合されるレシーバ・ビート・コントローラ６１も有する。レシーバ・ビート・コントローラ６１には、障害のある信号導電体が信号バス９５内にある場合はそれがどれであるかが、診断ユニット９８によって伝えられる。
【００４５】
ディストリビュータ６３は、内部バス５６でレシーバ６０と結合され、信号５５（複数の信号を有する場合がある）によってレシーバ・ビート・コントローラ６１と結合される。ディストリビュータ６３は、レシーバ６０によって出力された信号を、データの第２ブロック５０内の適切なビットに分配することができる。障害がない場合、ディストリビュータ６３は（この例では）８ビートそれぞれで、単に１バイトのデータを内部バス５６からデータの第２ブロック６０の適切なバイトに移動させるだけである。（前述の考察により）信号導電体「Ｚ」に障害９６が存在する場合、（この例では）２つの追加ビートが必要である。第９番ビート中、内部バス５６は７つの有効ビットおよび１つの無効ビットを有する。第９番ビートでは、内部バス５６上の８ビットそれぞれが、データの第２ブロック５０の各バイト（すなわちバイト０〜７）にあるそれぞれ「Ｚ番目」のビットに駆動される。第９番ビートの後、データの第２ブロック５０は６３の有効ビットおよび１つの無効ビットを含む。第１０番ビート中、内部バス５６は再度７つの有効ビットおよび１つの無効ビットを有する。有効ビットのうちの６つのみが、第９番ビート中にデータの第２ブロック５０に首尾良く書き込まれたデータである。７番目の有効ビットは、第１０番ビート中にデータの第２ブロック５０内の残りの無効ビットを含むバイトの「Ｚ番目」のビットに向けて送られる。たとえば、信号バス９５のビット２上に障害９６が存在する場合、第１０番ビートでデータの第２ブロック５０に書き込まれたビットはバイト２のビット２であるが、伝送されたデータは前述のように駆動ビット・レジスタ２７内で１ビットずつ回転されているため、この書き込みのためのデータは信号バス９５のビット３から取得される。
【００４６】
図７は、ディストリビュータ６３の１ビットに対してディストリビュータ機能を実行する論理６３Ａの例示セットをより詳細に示す図である。レジスタ・ビット７０は、データの第２ブロック５０のうちの１ビットであり、図示された例では、バイト「Ｍ」のビット「Ｎ」である。レジスタ・ビット７０のデータ入力Ｄはセレクタ７２に結合され、これが、１０未満の任意のビートについて内部バス５６の「第Ｎ番」ビットである「ｒｃｖｒビットＮ」を選択する。第１０番ビートでは、伝送に先立ってビット・レジスタ２７を駆動することによって実行されるデータの回転を反映するために「ｒｃｖｒビットＮ（回転済み）」が選択される。レジスタ・ビット７０のデータ入力Ｄ上のデータは、入力Ｃ上の信号によって刻時される。「ＣＬＫ」は、図７に示された論理式に従ってゲートされるシステム・クロックである。レジスタ・ビット７０は、ＣＬＫがアクティブであり「ビートＭ」がアサートされた場合、クロックを受信することになる。たとえば、バイト２のすべてのビットが第２ビート上で刻時されることになる。レジスタ・ビット７０は、信号バス９５上のビット「Ｎ」に障害がある場合、第９番ビート中にも（ＣＬＫがアクティブの間に）クロックを受信することになる。たとえば、信号バス９５のビット２に障害があり、レジスタ・ビット７０がデータの第２ブロック５０内の任意のバイトのビット２である場合、レジスタ・ビット７０は刻時されることになる。レジスタ・ビット７０は、第１０番ビートがデータの第２ブロック５０に書き込まなければならない最終ビットである場合、このビート中にも（ＣＬＫがアクティブの間に）刻時されることになる。信号バス９５のビット２に障害がある例について続けると、レジスタ・ビット７０がバイト２のビット２を表す場合、レジスタ・ビット７０は第１０番サイクルでクロックを受信することになる。ディストリビュータ６３は、信号バス９５上のビットに障害があるとすればどのビットにあるか、および現在は何番ビートであるか、についての情報を受け取る。
【００４７】
図８は、本発明の他の実施形態を示す。この実施形態も、信号バス内の信号導電体に障害のある電子システムの連続オペレーション機能を提供し、実際には、障害なしおよび障害ありのどちらのオペレーションでも前述の実施形態と同じ数のサイクルを使用する。この実施形態では、以下で説明するように、ビットが選択される方法が異なる。図８の実施形態は、図１の診断ユニット９８と同様に、信号バス上の障害を識別すること、およびその障害の識別を第１の電子ユニットおよび第２の電子ユニットに送ることが可能な、診断ユニット２９８を示す。
【００４８】
チップ２０１（前述のように「チップ」は例示のためにのみ使用され、実際は、チップ２０１はモジュール、ＰＷＢ、電子格納装置、または任意の他の電子ユニットとすることができる）は、データの第１ブロック２０１をチップ２０５内のデータの第２ブロック２５０に転送する必要がある。駆動チップ２０１と同様に、受信チップ２０５は任意の電子ユニットを表すことが意図される。図８に示された例では、データの第１ブロック２０１が６４ビット（０〜６３）を有し、データの第２のブロック２５０が６４ビット（０〜６３）を有する。データの第１ブロック２０１およびデータの第２のブロック２５０は、物理的にレジスタ、キャッシュ、シフト・レジスタ、または任意の他のストレージ手段に常駐することができる。信号バス２９５は８ビットを有する。第１の部分２９５Ｂおよび第２の部分２９５Ｂ’を有する信号導電体には、障害２９６があるものとして示される。障害２９６はオープン回路または短絡とすることが可能であり、どちらのタイプの障害も信号導電体を動作不能にする。図１の障害９６と同様に、障害２９６は信号バス２９５の信号導電体間の短絡とすることができるが、この例では説明をわかりやすくするために単一の障害について論じる。信号ＮＥＮは、信号バス２９５上でドライバを論理的に使用不可（トライステート）にするためにしばしば使用される、「非使用可能（ｎｏｔ  ｅｎａｂｌｅ）」信号である。オプションであるが、これは他の信号と論理的に組み合わせて、信号バス２９５全体のすべてのドライバ、または障害のある信号導電体に結合された単一のドライバのみを使用不可にする方法について説明しやすくするために示される。
【００４９】
障害２９６がない場合、駆動シーケンサ２１１は、データの第１ブロック２０１から内部バスＳＥＬ８Ａ（０〜７）を介して一度に８ビットの「障害のない選択グループ」を選択し、この８ビットを８ビートそれぞれで信号バス２９５を介してほぼ並列に駆動する。受信シーケンサ２５１は、各ビートから８ビットのデータを受信し、ＳＥＬ８Ｂ（０〜７）を介してこの８ビットをデータの第２ブロック２５０内の適切なビットに転送する。前述のように、信号導電体内の障害２９６の存在および識別は、診断ユニット２９８により、駆動シーケンサ２１１および受信シーケンサ２５１へそれぞれ信号２９１および２９２を介して伝えられる。
【００５０】
障害２９６が存在する場合、駆動シーケンサ２１１は、データの第１ブロック２０１から内部バスＳＥＬ７Ａ（０〜６）を介して一度に（この例ではビート１〜９で）７ビットの「障害のある選択グループ」を選択し、この選択された７ビットを信号バス２９５の７つの障害のない信号導電体を介して転送する。次に受信シーケンサ２５１が１ビートにつき７ビットを受信し、ＳＥＬ７Ｂ（０〜６）を介してこれらをデータの第２ブロック２５０に転送する。（この例の）第１０番ビートでは、この例の最終ビットであるビット６３が選択されて障害のない信号導電体で伝送され、この最終ビットはデータの第２ブロック２５０の正しいビットに格納される。図９および図１０は、障害が存在しない場合の８つのビートおよび伝送されるデータと、障害が存在する場合の１０のビートおよび各ビート中に伝送されるビットとを示す。
【００５１】
図１１は、駆動シーケンサ２１１の例示的実施形態を示す。ビット障害レジスタ２５９は８ビットを有し、各ビットは信号バス２９５内の信号導電体に対応する。信号導電体に障害がある場合、ビット障害レジスタ２５９内の対応するビットは論理「１」に設定され、奏でない場合、対応するビットは論理「０」に設定される。したがって、ＢＦ（０）＝「１」は、信号バス２９５のビット０上に障害があることを意味する。ＯＲゲートのカスケードは、論理「１」を有するビット障害レジスタ２５９内のビットで始まる論理「１」を生成する。たとえばＢＦ（３）＝「１」の場合、Ｆ０、Ｆ１、Ｆ２は「０」であるが、Ｆ３、Ｆ４、Ｆ５、Ｆ６、およびＢＩＴ  ＦＡＵＬＴは「１」である。
【００５２】
ＢＩＴ  ＦＡＵＬＴ＝「１」の場合、障害が存在し、（この例の）データ転送は１０ビート、最初の９ビートそれぞれの７ビット、および第１０番ビートの１ビットで構成されることになる。
【００５３】
ＢＩＴ  ＦＡＵＬＴ＝「０」の場合、セレクタＡＡ０〜ＡＡ７はバスＳＥＬ８Ａ（０〜７）からデータを選択する。ＢＩＴ  ＦＡＵＬＴ＝「１」の場合、セレクタＡＡ０〜ＡＡ７はＳＥＬ７Ａ（０〜６）からデータを選択するが、こうしたビットの一部またはすべては以下で説明するようにシフトすることができる。セレクタＡ０〜Ａ５は、ＳＥＬ７Ａ（０〜６）のすべてのビットを障害のない信号導電体にシフトするためのメカニズムを提供する。
【００５４】
たとえば、信号バス２９５の信号導電体ビット（０）であるＢＵＳ（０）が、障害を有するものと識別されたと想定する（ＢＵＳ（０）のドライバ、信号導電体、およびレシーバ回路を含む可能性がある）。ＢＵＳ（０）のドライバは使用可能入力Ｅを有し、入力Ｅが論理「０」の場合にドライバを使用不可にする。ＢＵＳ（０）が障害を有する場合、ＢＦ（０）＝「１」である。ＢＦ（０）はＮＯＲ  Ａ０への入力であり、ＢＦ（０）＝「１」は、ＢＵＳ（０）のドライバが使用不可であることを保証する。Ｆ０はセレクタＡ０を制御し、Ｆ０＝「１」は、セレクタＡＡ１を介してＢＵＳ（１）のドライバのデータ入力Ｄに結合されるセレクタＡ０でＳＥＬ７Ａ（０）を選択する。同様に、ＳＥＬ７Ａ（１）はＢＵＳ（２）のドライバの入力Ｄにルーティングされ、ＳＥＬ７Ａ（２）はＢＵＳ（３）のドライバの入力Ｄにルーティングされる、という具合である。ＳＥＬ７Ａ（６）は直接ＳＥＬＡＡ７にルーティングされ、ＢＵＳ（７）で駆動される。この方法では、ＢＵＳ（０）は迂回され、ＳＥＬ７Ａの７つのビットは障害のない信号導電体ＢＵＳ（１〜７）で駆動される。
【００５５】
より簡単ではあるが第２の例として、ＢＵＳ（４）上に障害が存在する場合、ＳＥＬ７Ａ（０）はＢＵＳ（０）にルーティングされて駆動し、ＳＥＬ７Ａ（１）はＢＵＳ（１）で駆動し、ＳＥＬ７Ａ（２）はＢＵＳ（２）で駆動し、ＳＥＬ７Ａ（３）はＢＵＳ（３）で駆動する。ＳＥＬ７Ａ（４）はＢＵＳ（５）で駆動し、ＳＥＬ７Ａ（５）はＢＵＳ（６）で駆動し、ＳＥＬ７Ａ（６）はＢＵＳ（７）で駆動する。ＢＵＳ（４）のドライバはＢＦ（４）によって使用不可とされる。ＳＥＬ７Ａの７つのビットは、障害のない信号導電体に再度ルーティングされる。
【００５６】
信号バス２９５は、ＮＯＲ  Ａ０〜Ａ７へのアサート信号であり、８つすべてのドライバの使用可能入力で論理「０」を保証する、ＮＥＮ＝「１」によって、完全に使用不可とすることが可能である。ＮＥＮは、設計者が信号バス２９５上のすべてのドライバを論理的に使用不可にできることを希望する場合に使用される、オプション信号である。
【００５７】
当業者であれば、説明をわかりやすくするために示された詳細な論理では単一の障害のある信号導電体をサポートしているが、「Ｆ」が多くなるにつれて一度により少ない信号導電体をルーティングするために、追加の選択グループ（たとえば、それぞれ２つまたは３つの障害のある信号導電体に対処するための「ＳＥＬ６Ａ」、「ＳＥＬ５Ａ」）を追加のセレクタに結合できることを理解されよう。
【００５８】
図１２は、受信シーケンサ２５１の実施形態を示す。ビット障害受信レジスタ２６０は、ビット障害レジスタ２５９と同じビット・パターンを含み、各ビットは信号バス２９５内の信号導電体に対応する。ビット障害レジスタ２６０は、信号２９２を介して診断ユニット２９８からロードされる。記載されたように、ビット障害受信レジスタ２６０の論理「１」を含み、これに続く論理「１」を生成するために、ＯＲゲートのカスケードが再度提供される。たとえば、ＲＢＦ（０）＝「１」の場合、ＲＦ０、ＲＦ１、ＲＦ２、ＲＦ３、ＲＦ４、ＲＦ５、ＲＦ６、およびＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴはすべて「１」である。
【００５９】
レシーバＢ０〜Ｂ７はそれぞれＢＵＳ（０〜７）を受信し、それぞれＳＥＬ８Ｂ（０〜７）を出力する。信号導電体に１つの障害が存在する場合、７つのビットのみが（７つの障害のない信号導電体で）伝送され、７つのビットはＳＥＬ８Ｂ（０〜７）からＳＥＬ７Ｂ（０〜６）に正しくマッピングされなければならない。このマッピングは、事実上、７つのビットを信号バス２９５の７つの障害のない信号導電体に導くために駆動シーケンサ２１１によって実行されるマッピングに対応する。
【００６０】
ＲＦ０〜ＲＦ７およびセレクタＢ０〜Ｂ６がこのマッピングを提供する。ＲＢＦ（０）＝「１」の場合、（信号バス２９５の信号導電体ビット「０」に障害があることを示す）ＲＦ０＝「１」であり、セレクタＢ０はＳＥＬ７Ｂ（０）として出力するためにＳＥＬ８Ｂ（１）を選択するように制御される。同様に、信号ＲＦ１、ＲＦ２、ＲＦ３、ＲＦ４、ＲＦ５、およびＲＦ６を使用して、ＳＥＬ８Ｂ（２）はＳＥＬ７Ｂ（１）に駆動され、ＳＥＬ８Ｂ（３）はＳＥＬ７Ｂ（２）に駆動され、ＳＥＬ８Ｂ（４）はＳＥＬ７Ｂ（３）に駆動され、ＳＥＬ８Ｂ（５）はＳＥＬ７Ｂ（４）に駆動され、ＳＥＬ８Ｂ（６）はＳＥＬ７Ｂ（５）に駆動され、ＳＥＬ８Ｂ（７）はＳＥＬ７Ｂ（６）に駆動される。同様に、ＢＵＳ（６）に障害がある場合、ＢＵＳ（０〜５）はＳＥＬ７Ｂ（０〜５）にルーティングされ、ＢＵＳ（７）はＳＥＬ７Ｂ（６）にルーティングされる。
【００６１】
一実施形態（図示せず）では、複数の障害のある信号導電体に対処するように設計され、障害のない信号導電体から、データの第２ブロック２５０に結合されたより少ない信号を有する信号グループへと信号をルーティングする際に使用される追加のセレクタを備えた、追加のセレクタおよびＯＲが使用される。たとえば前述のように、一実施形態で２つの障害のある信号に対処する場合、（上記の命名規則を使用して）、「ＳＥＬ６Ｂ」信号セットならびにＳＥＬ７Ｂ信号セットが必要である。
【００６２】
図１３は、受信された適切なビットを受信レジスタ２５０の正しいビットにゲートするために使用される詳細な論理の一実施形態を示す。診断ユニット２９８からの信号２９２は、ビート番号を含む。代替の実施形態（図示せず）では、受信シーケンサ２５１はそれ自体でビートをカウントする。グループ復号２７８は、ビート番号および受信ビット障害（図１２からのビット障害受信レジスタ２６０）を使用して８ビットの「ＥＮ８−ＢＩＴ−ＧＲＯＵＰ」ワードを生成し、そのうちの１ビットが、信号バス２９５上に障害が存在しない場合、特定ビートに対してＳＥＬ８Ｂからデータを受信しなければならない、受信レジスタ２５０内の８ビットの刻時を制御するために、各ビートに対して使用可能となる。グループ復号２７８は、１０ビット・ワード「ＥＮ７−ＢＩＴ−ＧＲＯＵＰ」も出力し、そのうちの１ビットが、信号バス２９５の信号導電体上に障害が存在する場合に発生する１０ビートそれぞれに対して使用可能となる。レジスタ・ビット２７２のデータ入力（受信レジスタ２５０内の特定ビット「Ｘ」）はセレクタ２７０に結合され、これが、ＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴ＝「１」の場合にバスＳＥＬ７Ｂのビット「Ｍ」を選択し、ＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴ＝「０」の場合にＳＥＬ８Ｂのビット「Ｎ」を選択する。たとえば、ＳＥＬ７Ｂ（０）は、受信レジスタ２５０のビット０、６、１３、５５、および６４に結合される。ＳＥＬ７Ｂ（１）はビット１、７、１４、５６に結合される。ＳＥＬ８Ｂ（０）はビット０、７、１５、５６に結合される。
【００６３】
ＡＮＤゲート２７１は、第１の入力でシステム・クロックＣＬＫを受信する。ＡＮＤ  ２７１の第２の入力は、図１２で生成されるように示されたＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴによって制御されるセレクタ２７７に結合される。障害が存在する場合、ＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴ＝「１」であり、セレクタ２７７は「ＥＮ７−ＢＩＴ−ＧＲＯＵＰ（Ａ）」を選択することになり、ここで「Ａ」は１０ビット・ワードのビットであり、「ＥＮ７−ＢＩＴ−ＧＲＯＵＰ」２７４は、レジスタ・ビット２７２が入っているデータの第２ブロック２５０の特定の７ビット・グループに適用される。たとえば、データの第２ブロック２５０のビット０〜６は、ビート１によって転送された７ビットが送信するビット・グループに入っており、第１のビート中にそれら７つのレジスタ・ビットに対するクロックを使用可能にするために、ＥＮ７−ＢＩＴ−ＧＲＯＵＰのビット０は「１」となる。第１０番ビートで「ＥＮ７−ＢＩＴ−ＧＲＯＵＰ」内のビットが「１」の場合、（この例では）レシーバ・レジスタ２５０の１つのレジスタ・ビット（すなわちビット６３）のみが影響を受けることに留意されたい。
【００６４】
前述のように、一実施形態では、追加の障害のある信号導電体に対処する。たとえば、２つの障害のある信号導電体に対処する場合、グループ復号２７８は６ビット・グループならびに７ビット・グループおよび８ビット・グループを使用可能にしなければならない。当業者であれば理解されるように、セレクタ２７０には適切な「ＳＥＬ６Ｂ」ビット用の他の入力がなければならず、セレクタ２７７は適切な「ＥＮ６−ＢＩＴ−ＧＲＯＵＰ」ビット用の第３の入力に対処しなければならない。
【００６５】
図１４は、障害信号導電体を有する可能性のある信号バスを介した、第１の電子ユニットから第２の電子ユニットへのデータ・ブロックの転送を可能にする、伝送シーケンス方法３００の高水準流れ図を示す。この方法はブロック３０１で開始される。ブロック３０２では、診断ユニットが信号バス内で障害のある信号導電体および障害のない信号導電体を決定する。第１の電子ユニットは、最低数のビートを使用し障害のないすべての信号導電体を利用する伝送シーケンスを使用して、信号バスを介してデータの第１のブロックを第２の電子ユニットに転送する。第１の電子ユニットは、データの「Ｊ」ビット・ブロックを「Ｋ」ビット信号バスの第２の電子ユニットに伝送しなければならない。「Ｆ」は、診断ユニットによって識別された障害のある信号導電体の数である。「Ｆ」＝０の場合、障害は識別されなかった。本発明では、好ましくは「Ｋ−１」までの任意数の障害が企図される。ブロック３０３では、診断ユニットが第１の（駆動）電子ユニットおよび第２の（受信）電子ユニットで障害状況を設定する。ブロック３０４では、転送を完了するのに十分なバス・サイクル（ビート）を使用して、信号バス内の障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックが伝送される。第２の電子ユニットは、障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックを受信する。この方法はブロック３０５で終了する。有利には、障害のある信号導電体に結合されたドライバは使用不可となる。
【００６６】
図１５は、方法３００のブロック３０４の一実施形態である、方法３２０の流れ図を示す。方法はブロック３２１で開始される。ブロック３２２で、ビート・カウントが初期設定される。ブロック３２３で、データのバイトが選択される。選択されたビット数は、データ・ブロックが転送される際に介する信号バス内の信号導電体の合計数であり、ここでは１バイト幅の信号バスであると想定して例示のために「バイト」が使用される。例示のために６４ビットのデータ・ブロックが想定されるが、好ましくは本発明は６４ビットのデータ・ブロックに限定されるものではない。説明を簡単にするために、単一の障害のある信号導電体が想定されるが、上記で説明したように「Ｋ−１」までの任意数の障害ビットが想定される。ブロック３２４で、障害のある信号導電体を介した伝送が予定された選択されたバイトのビットが格納される。有利には、ビットはシフト・レジスタに格納され、シフト・レジスタは制御信号に応答してそのビットを回転させることができる。ブロック３２５で、選択されたバイトがドライバのデータ入力にルーティングされ、信号バスを介して駆動される。障害のある信号導電体は、障害のある信号導電体に結合されたドライバのデータ入力にルーティングされたビットを伝送することができず、有利には、障害が短絡である場合に発生し得る高電流が流れるのを防ぐために、そのドライバは使用不可にされる（トライステートされる、または高インピーダンス状態に切り替えられるとも言われる）。ドライバが使用不可になる場合、「高インピーダンス」とは、ドライバの出力が駆動されている伝送線よりも少なくとも１桁高いインピーダンスであることを意味し、通常は数十万オーム、あるいはメガオームの場合もある。ブロック３２６で、通常の（障害のない信号導電体）伝送に必要なビート数が完了したかどうかがチェックされる。完了していない場合、ブロック３４２でビート・カウントが増分され、制御はブロック３２３に渡される。通常のビート・カウントに達している場合、ブロック３２７で障害が識別されたかどうかがチェックされる。識別されない場合、伝送は完了する。障害が識別された場合、ブロック３２８は格納されたビットのバイトを選択し（この例では、６４ビットのデータ・ブロックが８ビット・バスを介して伝送されることになり、単一の障害が想定され、その結果８ビットが格納される）、それらを信号バスのドライバのデータ入力にルーティングする。８ビットのうちの７ビットは、前述のように他のビートで伝送される。ブロック３２９は格納されたデータ内でビットを回転させ、その結果すべてのビットが異なる所定の位置に移動される。前述のように、有利には、格納されたビットはすべてのビットが１ポジション移動されるビット回転が可能なシフト・レジスタにあり、一方のエンドにあるビットが他方のエンドにある第１のビット位置に回転される。ブロック３４０で、格納されたビットが再度選択され、信号バス上のドライバのデータ入力にルーティングされて、最終ビートで駆動される。ここで、前のバス・ビートで伝送できなかったビットが異なるドライバに向けて送られ、障害のない信号導電体を介して首尾良く駆動される。第２の（受信）電子ユニットは障害のある信号導電体を認識しており、障害のある信号導電体が存在する場合に使用された伝送プロトコルがわかるように設計され、伝送されたビットを第２の電子ユニットのメモリの正しいビット位置に適切に移動させることができる。
【００６７】
図１６は、図１４のブロック３０４の第２の実施形態を示す。ブロック３６１は、信号バスを介してデータ・ブロックを第１の電子ユニットから第２の電子ユニットへ転送する方法を開始する。ブロック３６２でビート・カウントが初期設定され、転送されることになる合計ビット数と、信号バスで使用可能な障害のない信号導電体の数から、必要なビート数が決定される。ブロック３６３で、転送されることになるブロックからデータのグループが選択され、このグループのサイズは信号バス内の障害のない信号導電体の数に等しい。ブロック３６４で、選択されたデータのグループは、障害のない信号導電体を介して第１の電子ユニットによって第２の電子ユニットに伝送される。ブロック３６５は、最後のビートが完了したかどうかを判別し、完了していない場合、ブロック３６６はビート・カウンタを増分し、ブロック３６３に制御を渡す。最後のビートが完了している場合、制御はブロック３６７に渡され、ここで方法は完了する。
【００６８】
前述の内容は本発明の諸実施形態を対象とするものであるが、本発明の基本範囲を逸脱することなく本発明の他の実施形態を考案することが可能であり、その範囲は添付の特許請求の範囲によって決定される。
【図面の簡単な説明】
【００６９】
【図１】好ましい実施形態に従った、信号バスによって結合された２つの電子ユニットを示す高水準ブロック図である。各電子ユニットはデータ・ブロック用のストレージを有する。信号バスの１つの信号導電体上に例示的障害が示される。
【図２】（好ましい実施形態に従った）障害のない信号バスの、タイミング図および各ビート上を送信されるデータの記述を示す図である。
【図３】（好ましい実施形態に従った）障害のある信号導電体を備えた信号バスの、タイミング図および各ビート上を送信されるデータの記述を示す図である。
【図４】好ましい実施形態に従った、信号バスを介してデータ・ブロックを駆動する電子ユニットの詳細なブロック図である。駆動シーケンサの拡張ブロック図が示される。
【図５】好ましい実施形態に従った、データのビートが障害のある信号導電体を有する信号バスを介して送信される際の、図３に示された駆動ビット・レジスタ・ブロックのコンテンツを示す図である。
【図６】好ましい実施形態に従った、障害のある信号導電体を有する信号バスを介して駆動電子ユニットによって送信されたデータ・ブロックを受信する、電子ユニットを示す拡張ブロック図である。
【図７】好ましい実施形態に従った、図６に示されたディストリビュータ・ブロックの１ビット部分の細部を示す図である。
【図８】本発明の第２の実施形態を示す高水準ブロック図である。駆動電子ユニット（例示的な図では駆動チップ）が、障害のある信号導電体を有する信号バスを介して第２の電子ユニット（例示的な図では受信チップ）に結合される。障害のある信号導電体が識別されるか否かに応じて、伝送されることになるデータのブロックから異なるサイズのデータのグループが選択される。
【図９】本発明の実施形態に従った、通常のデータ伝送（すなわち障害のない信号導電体が識別された場合）に関するタイミング図を示す図である。
【図１０】本発明の実施形態に従った、障害のある信号導電体が識別された場合のデータ伝送に関するタイミング図を示す図である。
【図１１】第２の実施形態に従った、図８に示されたドライバ制御ブロックを示す詳細なブロック図である。
【図１２】第２の実施形態に従った、図８に示されたレシーバ制御ブロックを示す詳細なブロック図である。
【図１３】第２の実施形態に従った、図８に示された受信レジスタの特定ビットに正しいデータをラッチする制御論理を示す詳細なブロック図である。
【図１４】本発明の一実施形態で開示された方法を示す、高水準流れ図である。
【図１５】本発明の一実施形態に従った、図１４の流れ図のブロック３０４の詳細な拡張を示す流れ図である。
【図１６】本発明の一実施形態に従った、図１４の流れ図のブロック３０４の詳細な代替の拡張を示す流れ図である。
【図１】
2007505380.tif 000003
【図２】
2007505380.tif 000004
【図３】
2007505380.tif 000005
【図４】
2007505380.tif 000006
【図５】
2007505380.tif 000007
【図６】
2007505380.tif 000008
【図７】
2007505380.tif 000009
【図８】
2007505380.tif 000010
【図９】
2007505380.tif 000011
【図１０】
2007505380.tif 000012
【図１１】
2007505380.tif 000013
【図１２】
2007505380.tif 000014
【図１３】
2007505380.tif 000015
【図１４】
2007505380.tif 000016
【図１５】
2007505380.tif 000017
【図１６】
2007505380.tif 000018
【手続補正書】
【提出日】平成17年7月8日(2005.7.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、信号バスによって結合された構成要素を有する電子システムに関する。とりわけ本発明は、信号バス内の１つまたは複数の信号伝導体に障害を有する信号バスに関する。
【背景技術】
【０００２】
電子システムは、一般に、信号伝導体によって相互接続された複数の電子ユニットを備える。これらの信号伝導体は、通常、銅、アルミニウム、または他のこうした材料で製造された導電性パスである。別の方法として、光ファイバも信号を伝導する。
【０００３】
たとえば、半導体チップは、ワイヤボンディングまたはフリップ・チップ技法を使用してモジュール上の信号伝導体に電気的に結合された信号を駆動および受信する。さらにモジュールは、通常、銅製ピン、はんだ柱、または他の手段を使用してプリント配線板（ＰＷＢ）信号伝導体に結合される。ＰＷＢ上の信号伝導体は１つのモジュールを他のモジュールと相互接続し、さらに信号をＰＷＢエッジ・コネクタまたはケーブル・コネクタにルーティングする。ＰＷＢエッジ・コネクタおよびケーブル・コネクタは、バックプレーンまたはケーブルを使用して、１つのＰＷＢを他のＰＷＢと相互接続する際に使用される。半導体チップの中であっても、極めて微細な導電体がチップ上の回路と論理ユニットとの間で信号をルーティングする。
【０００４】
論理的に関係する信号導電体のグループが、信号バスと呼ばれる。たとえば、プロセッサ・チップは、データがほぼ並列に流れる指定数の信号導電体を有する信号バスによってメモリ制御チップに接続される。すなわち、プロセッサ・チップが８ビット・バスによってメモリ・コントロールに結合される場合、プロセッサ・チップは、信号バスの信号導電体それぞれで１ビット、８ビットのデータ（１バイト）をほぼ同時に送信する。たとえばプロセッサ・チップは、例のメモリ制御チップに１回に１バイトのアドレスを伝送し、メモリ制御チップから１回に１バイトのデータを再受信する。
【０００５】
経済的および物理的要因によって、電子素子を相互接続するために使用可能な信号導電体の数が制限される。たとえば、モジュールとカードとの間の各相互接続は約１．２円（約１ペニー）かかる。かなり価格に敏感な電子ユニット上に多数の相互接続があるのは妥当ではない。さらにＰＷＢ上に多くの構成要素が取り付けられると、多数の相互接続がＰＷＢ内に配線レイヤを追加させることになり、ＰＷＢのコストが上がる。多くの相互接続が使用される場合、電子ユニット間の配線はかなり費用がかかり、密集した多くの導電体ケーブルは扱いにくく、コストがかかり、信頼性の点からみて問題である。ある時点で、コストがかかり信頼性が低くなるだけでなく、より多くの相互接続を追加するのが物理的に不可能になる。
【０００６】
通常、１つの電子ユニットが別の電子ユニットにデータ・ブロックを伝送しなければならない。しばしばデータ・ブロックは、比較的大規模である。たとえば、何らかの最新のコンピュータ・システム内のキャッシュ・ラインは６４バイトまたは１２８バイト長さである。このブロック（すなわちキャッシュ・ライン）が８バイトの信号バスを介して送信されることになる場合、転送を完了するにはそれぞれ８または１６のバス・サイクル（ビート）が必要である。多くの応用例では、より少ない信号導電体を有する信号バスを介して、より大規模なデータ・ブロックが転送される場合さえある。
【０００７】
現在の電子システムは、確実に動作することが期待される。ビジネス用に信頼された市販のコンピュータ・システムでのダウンタイムは、売り上げの損失により多額の犠牲を払う可能性がある。さらに、こうしたダウンタイムは顧客をいらいらさせ、競争相手に向かわせてしまう可能性がある。多くの市販のシステムは、時刻、曜日の制限なく（すなわち常時）動作するように当てにされる。ピーク時に機能を停止させる予期せぬ障害は、非常に重大な問題である。通常、こうした市販システムのユーザは、障害が発生した場合に、たとえ性能がわずかに低下してもオペレーションが続行されることを好む。ユーザは、より都合のよい時間に障害を修復するようなプランを立てることができる。軍用システムも電子システムに対する依存度が高く、さらに過酷な使い方および厳しい環境にさらされる可能性がある。戦闘状態では、予備部品（新しいケーブル、新しいＰＷＢなど）が入手不可能な場合がある。したがって多くの軍事適用例では、わずかな性能低下での継続オペレーションが好ましい。
【０００８】
信号バスは、信号バスに関連付けられた１つまたは複数の信号導電体を有し、通常、信号バスは８の倍数の信号導電体を有する。しばしば、単一の特別な信号導電体がパリティ・ビットを搬送する。たとえば、８つの信号導電体を有する信号バスは、パリティを搬送する９番目の（パリティ）信号導電体も有する。送信側ユニット上のパリティ生成器は、バス上の論理「１」の数が必ず奇数になる（または、他の実施形態では必ず偶数になる）ように、パリティ上の論理値を生成する。受信側ユニット上のパリティ・チェッカは、受信した論理「１」の数が予想通りである（すなわち「奇数」または「偶数」）かどうかをチェックする。こうしたパリティ生成／チェック・システムは、信号バス上で単一の障害を検出することはできるが、障害を修正することはできない。パリティ・エラーが検出された場合、その信号バスはもはやデータの伝送に使用できない。追加の信号導電体を使用して、多くの適用例で単一の障害を修正し、２つの障害を検出することが可能な、「エラー修正コード」（ＥＣＣ）をインプリメントすることができる。ＥＣＣの使用により、追加の信号導電体に関連付けられた追加のコストが発生する。データの伝送時にエラーを発見しこれに対処するために使用される他の技法が、巡回冗長コード（ＣＲＣ）の使用である。
【０００９】
多くの最新の電子システムは、信号バス内の障害に関する詳細を決定するための「ワイヤ・テスト」プロシージャを実行する機能を有する。たとえば第１の電子ユニットは、信号導電体上で所定のパターンの論理「１」および「０」を駆動する。信号導電体によって第１のユニットに結合された第２の電子ユニットは、信号導電体からデータを受信し、受信したパターンと所定のパターンとを比較する。受信したパターンが所定のパターンと同じでない場合、信号導電体、ドライバ、またはレシーバに障害がある。こうしたパスは、信号バスをパリティ使用不可または使用可にすることになる。単一のエラー修正、２つのエラー検出を有するＥＣＣを採用している信号バスであっても、ＥＣＣバス内の他の障害がＥＣＣバスを使用不可にすることもあるため、危険にさらされることになる。２つの信号導電体内の障害が、単一ビット修正のＥＣＣを有する信号バスであっても使用不可にすることがある。
【００１０】
米国特許第５４４０５３８号は、通信チャネル上での通信のための通信システムおよび方法を開示する。好ましくは高速マルチプレクサおよびデマルチプレクサ集積回路からなる置換スイッチは、障害のあるリンクを冗長予備リンクにマッピングして、通信がチャネルを横切って続行できるようにする。
【００１１】
米国特許第６０１８８１０号は、６４ビット・データ幅の上位または下位いずれかの３２ビット部分で発生した障害から回復可能な、コンピュータ・システムにおける耐障害６４ビット・データ幅周辺構成要素相互接続（ＰＣＩ）バス・システムを開示する。
【００１２】
米国特許第５７１７８５２号は、データがバス・マスタとバス・スレーブとの間でバスを介して転送されている際にバス内で障害が発生した場合、バスを介したデータ転送が停止されることを開示する。その後、このデータは障害のないバスを介して再転送される。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、障害のある信号導電体を有する信号バスが低下した性能で動作できるようにする、方法および装置を提供することである。
【課題を解決するための手段】
【００１４】
第１の態様によれば、ゼロから「Ｋ−１」の信号伝導体に障害がある「Ｋ」の信号導電体を有する信号バスを介して、第１の電子ユニットから第２の電子ユニットへデータの「Ｊ」ビット・ブロックを伝送するための方法が提供され、この方法は、信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップと、信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップによって発見された情報を使用して、第１の電子ユニットおよび第２の電子ユニットにおける信号導電体の障害状況を設定するステップと、信号バスにおいて障害のある信号導電体の数「Ｆ」を決定するステップと、信号バスにおいて障害のない信号導電体の数「Ｋ−Ｆ」を決定するステップと、「Ｊ／（Ｋ−Ｆ）」ビートと、残りがある場合は追加のビートとを使用して、「Ｋ−Ｆ」の障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックを伝送するステップと、を有する。
【００１５】
好ましい実施形態では、この方法は、第１の電子ユニット上のデータの「Ｊ」ビット・ブロックからビットの「Ｋ−Ｆ」ビット・グループを選択するステップと、信号バスにおける「Ｋ−Ｆ」の障害のない信号導電体を使用して、ビットの「Ｋ−Ｆ」ビット・グループを第１の電子ユニットから第２の電子ユニットに伝送するステップと、すべての「Ｋ−Ｆ」ビット・グループが伝送されるまで上記ステップを反復するステップと、信号バスの追加ビートを使用して、第１の電子ユニット上にデータの「Ｊ」ビット・ブロックの残りのビットがあればそれを「Ｋ−Ｆ」の障害のない信号導電体の一部またはすべてを使用して第２の電子ユニットに伝送するステップと、を有する。
【００１６】
好ましくは、障害のある信号導電体を有する信号バスがわずかに低下した性能で動作できるようにする、方法および装置が提供される。
【００１７】
好ましい実施形態では、伝送するステップは、データの「Ｊ」ビット・ブロックからデータの「Ｋ」ビット・グループを選択するステップと、「Ｋ−Ｆ」の障害のない導電体を使用して、データの「Ｋ」ビット・グループのうちの「Ｋ−Ｆ」ビットをビート上で伝送するステップと、信号バス内の障害のある「Ｆ」導電体により、ビート上で伝送できない「Ｋ」ビット・グループ内の「Ｆ」ビットを格納するステップと、データの「Ｊ」ビット・ブロックのうちのすべての「Ｊ」ビットが選択されるまで、上記３つのステップを反復するステップと、「Ｋ−Ｆ」の障害のない信号導電体のうちの１つまたは複数を使用して、格納された「Ｆ」ビットを１つまたは複数の追加ビート上で伝送するステップと、をさらに有する。
【００１８】
好ましい実施形態では、「Ｆ」ビットを格納するステップは、「Ｆ」ビットのうちの少なくとも１ビットをシフト・レジスタの第１のエンドにシフトするステップをさらに含む。
【００１９】
好ましい実施形態では、シフト・レジスタのビットのうちの少なくとも１つを障害のない信号導電体に伝送するステップを含む。
【００２０】
好ましい実施形態では、シフト・レジスタ内の特定ビットを、障害のない信号導電体に結合するために位置合わせするように移動するステップを含む。
【００２１】
好ましい実施形態では、第２の電子ユニットで「Ｊ／（Ｋ−Ｆ）」ビートについて１ビートあたり「Ｋ−Ｆ」ビットを格納するステップと、「Ｊ／（Ｋ−Ｆ）」で残りが生じる場合、追加ビート内に残りのビットを格納するステップとを含む。
【００２２】
本発明は、好ましくは、内部の信号導電体に障害がある信号バスによって、第２の電子ユニットに結合された第１の電子ユニットを有する電子システムの、連続するが性能低下したオペレーションを可能にする、方法および装置を提供する。好ましくは、信号バス内の障害のない信号導電体が識別され、好ましくは、すべての障害のない信号導電体を利用する伝送シーケンスで、伝送を完了するための最低数のビート（バス・サイクル）を使用して、第１の電子ユニットが第２の電子ユニットへデータ・ブロックを伝送する。第１の電子ユニットは、好ましくは、「Ｋ」の信号導電体を有する信号バスを介して「Ｊ」ビットを有するデータ・ブロックを伝送するように設計される。第２の電子ユニットは、好ましくはデータ・ブロックを受信する。電子システムは、たとえば「ワイヤ・テスト」または他の手段を使用して、信号バス内の障害のある信号導電体および障害のない信号導電体を識別し、好ましくは、障害のある信号導電体の識別を第１の電子ユニットおよび第２の電子ユニットに格納する。好ましい実施形態によれば、「Ｆ」は信号バス内の障害のある導電体の数である。第１の電子ユニットは、好ましくは障害のある信号導電体の識別を使用してその伝送を変更し、伝送を実施するために１つまたは複数の追加ビートを使用して、残りの「Ｋ−Ｆ」信号導電体を介して「Ｊ」ビット・ブロックを伝送シーケンスとして送信する。第２の電子ユニットは、好ましくは障害のある信号導電体の識別を使用し、障害のない「Ｋ−Ｆ」信号導電体を介して伝送シーケンスに従って「Ｊ」ビット・ブロックを受信する。
【００２３】
一実施形態では、「Ｋ」信号導電体を有する信号バスを介して「Ｊ」ビットを有するデータ・ブロックを伝送する必要のある電子システムにおいて、伝送シーケンスで「Ｊ／Ｋ」バス・サイクル（ビート）が使用され、障害のある信号導電体がない場合、転送を完了する。信号バス内の「Ｆ」信号導電体に障害がある場合、伝送シーケンスが必要とするビートの数は「Ｊ／（Ｋ−Ｆ）」であり、分割によって残りが出た場合はこれに１ビートが加えられる。
【００２４】
「Ｋ」信号導電体を有し、そのうちの「Ｆ」に障害がある信号バスを有する実施形態では、伝送シーケンスは「Ｊ」ビットのデータを有するデータ・ブロックから１ビートについて「Ｋ」ビットを選択する。「Ｊ／Ｋ」ビートそれぞれについて「Ｋ−Ｆ」ビットが伝送され、その後の伝送では１ビートにつきＦビットが格納される。「Ｊ／（Ｋ−Ｆ）−Ｊ／Ｋ」の追加ビート（分割により残りが出た場合はさらに１ビート追加）を使用して、「Ｊ／Ｋ」ビート中に送信されなかった各ビートから格納されたビットを伝送する。
【００２５】
「Ｋ」信号導電体を有し、そのうちの「Ｆ」に障害がある信号バスを有する実施形態では、伝送シーケンスは「Ｊ」ビットのデータを有する第１の電子ユニット内のデータ・ブロックから１ビートについて「Ｋ−Ｆ」ビットを選択する。Ｊ／（Ｋ−Ｆ）ビートそれぞれについて「Ｋ−Ｆ」ビットが伝送される。分割により残りが出た場合はさらに１ビートが使用される）。
【００２６】
他の態様によれば、伝送用に「Ｊ」ビットを保持する第１の電子ユニット内のデータの第１ブロックと、「Ｊ」ビットを有するデータの第２ブロックを保持することが可能な第２の電子ユニット内のストレージと、第１の電子ユニットを第２の電子ユニットに結合する「Ｋ」信号導電体を有し、「Ｆ」の障害のある信号導電体および「Ｋ−Ｆ」の障害のない信号導電体を有する信号バスと、第１の電子ユニットおよび第２の電子ユニットに結合され、信号バス上で「Ｆ」の障害のある信号導電体および「Ｋ−Ｆ」の障害のない信号導電体を識別すること、ならびに第１の電子ユニットおよび第２の電子ユニット内に障害識別情報を格納することが可能な、診断ユニットと、障害識別情報に応答して、「Ｋ−Ｆ」の障害のない導電体のみを使用し、「Ｊ／（Ｋ−Ｆ）」ビートおよび残りがある場合は追加のビートを使用して「Ｊ」ビットのデータを伝送する、第１の電子ユニット内の駆動シーケンサと、を有する、第１の電子ユニットから第２の電子ユニットにデータの「Ｊ」ビット・ブロックを伝送するための装置が提供される。
【００２７】
好ましい実施形態では、データの第１ブロックは、一度に「Ｋ」ビットのグループを選択することによって選択可能である。
【００２８】
好ましい実施形態では、駆動シーケンサは、データの第１ブロックから一度に「Ｋ−Ｆ」ビットを選択すること、および選択された「Ｋ−Ｆ」ビットを信号バスの「Ｋ−Ｆ」の障害のない信号導電体上で駆動することが可能であり、さらに駆動シーケンサは、「Ｊ／（Ｋ−Ｆ）」に残りがある場合は追加のビートについて「Ｋ−Ｆ」ビットより少ないビットを選択することができる。
【００２９】
好ましい実施形態では、駆動シーケンサは使用不可にすることが可能なドライバをさらに有し、駆動シーケンサは障害のある信号導電体に結合されたドライバを使用不可にする。
【００３０】
好ましい実施形態では、第２の電子ユニットは、信号バスおよび診断ユニットに結合された受信シーケンサをさらに有し、受信シーケンサは一度に「Ｋ−Ｆ」ビットをデータの第２ブロックに格納することが可能であり、「Ｋ−Ｆ」ビットは信号バスの「Ｋ−Ｆ」の障害のない信号導電体から受信され、さらに受信シーケンサは、「Ｊ／（Ｋ−Ｆ）」に残りがある場合は「Ｋ−Ｆ」ビットより少ないビットを選択することができる。
【００３１】
他の態様によれば、第１の電子ユニットから第２の電子ユニットへ信号バスを介してデータ・ブロックを伝送するための方法が提供され、信号バス内の障害のない信号導電体を識別するステップと、伝送シーケンスを使用して第１の電子ユニットから第２の電子ユニットへデータ・ブロックを伝送するステップと、を有し、伝送シーケンスは信号バス内のすべての障害のない信号導電体を利用し、伝送シーケンスは、データ・ブロックの伝送を完了するために最低数のビートを使用する。
【００３２】
好ましい実施形態では、前述の方法は、信号バス内の障害のある信号導電体を識別するステップと、障害のある信号導電体に結合されたドライバを高インピーダンス状態に切り替えるステップと、をさらに有する。
【００３３】
好ましい実施形態では、障害のない信号導電体はパワー・オン・シーケンス中に識別される。
【００３４】
好ましい実施形態では、障害のない信号導電体は、パリティ・エラー、エラー修正コード・エラー、または巡回冗長検査エラーの結果として実行されるワイヤ・テストによって識別される。
【００３５】
次に本発明の諸実施形態について、単なる例として以下の図面を参照しながら説明する。
【００３６】
しかしながら、添付の図面は本発明の単なる典型的な諸実施形態を示したものに過ぎず、その範囲を限定するとみなされることはなく、他の等しく効果的な諸実施形態が可能であることに留意されたい。
【発明を実施するための最良の形態】
【００３７】
好ましくは、内部の信号導電体に障害がある信号バスによって、第２の電子ユニットに結合された第１の電子ユニットを有する電子システムの、連続するが性能低下したオペレーションを可能にする、方法および装置が提供される。信号バス内の障害のない信号導電体が識別され、すべての障害のない信号導電体を利用する伝送シーケンスで、伝送を完了するための最低数のビート（バス・サイクル）を使用して、第１の電子ユニットが第２の電子ユニットへデータ・ブロックを伝送する。第１の電子ユニットは、「Ｋ」の信号導電体を有する信号バスを介して「Ｊ」ビットを有するデータ・ブロックを伝送するように設計される。第２の電子ユニットはデータ・ブロックを受信する。電子システムは、「ワイヤ・テスト」または他の手段を使用して、信号バス内の障害のある信号導電体を識別し、障害のある信号導電体の識別を第１の電子ユニットおよび第２の電子ユニットに格納する。障害のある導電体の数が「Ｆ」である。第１の電子ユニットは、障害のある信号導電体の識別を使用してその伝送を変更し、伝送を実施するために１つまたは複数の追加ビートを使用して、障害のない「Ｋ−Ｆ」信号導電体を介して「Ｊ」ビット・ブロックを送信する。第２の電子ユニットは、障害のある信号導電体の識別を使用し、障害のある「Ｋ−Ｆ」信号導電体を介して「Ｊ」ビット・ブロックを受信する。一般に「Ｆ」は「Ｋ−１」までの任意の数とすることが可能であるが、説明を簡単にするために、以下の例では単一の障害が想定される。さらに説明を簡単にするために、以下の例では、８ビット信号バスを介して６４ビットのデータ・ブロックが転送されると想定する。
【００３８】
図１は、全体として１００と示された電子システムの高水準ブロック図である。電子システム１００は、以下でチップ１と呼ばれる第１の電子ユニット１と、以下でチップ５と呼ばれる第２の電子ユニット５とを有する。電子ユニット１および電子ユニット５は、半導体チップ、モジュール、プリント配線板（ＰＷＢ）、または電子格納装置（ｅｎｃｌｏｓｕｒｅ）を含むがこれらに限定されることのない、任意の電子構成要素とすることができる。「チップ」を使用して、説明のための具体例が提供される。チップ１は、各ビート（バス・サイクル）上で伝送されることになるビット数、および伝送を完了するために必要なビート数を定義する伝送シーケンスを使用して、チップ５へと駆動しなければならないデータの第１ブロック１０を含み、これはチップ５でデータの第２ブロック５０に格納されることになる。転送が成功した後、データの第２ブロック５０は、伝送開始以前のデータの第１ブロック１０と同じである。データの第１ブロック１０およびデータの第２ブロック５０は一般に各チップのレジスタに格納されるが、キャッシュまたは他のメモリなどの任意の形のストレージとすることも可能である。データの第１ブロック１０からのデータは、信号バス９５を介してチップ１からチップ５へと転送される。図１の例におけるデータの第１ブロックは８バイト（すなわち６４ビット）を含む。図１では、信号バス９５は８つの信号導電体を有するように示される。前述の経済的および物理的な点から、信号バスは通常「狭く（ｎａｒｒｏｗ）」（すなわち、比較的少ない信号導電体を有し）、転送されるデータ・ブロック内のビット数よりもかなり狭い。信号バス９６は例示のために８つの信号導電体を有するように示されているが、これよりも広いかまたは狭い信号バスが企図され、さらに信号バスは、パリティまたはエラー修正コード信号導電体を具体化することも可能である。信号導電体上に障害（ドライバまたはレシーバの障害を含む）がない場合、８つの信号バス・サイクル（ビート）を使用して、データの第１ブロック１０内のすべてのデータがチップ５に転送される。各ビート中に、情報の８ビット（１バイト）の選択グループが伝送される。選択グループは、信号バス９５を駆動するドライバの入力へとルーティングするために、データの第１ブロック１０から（または以下で論じるように他のストレージから）選択されるビット・グループである。図１で１０Ａ〜１０Ｈとして示されるバイト０〜７は所定の順序で、この例ではデータのブロック１０から順番に選択され、信号バス９５を介して一度に１バイトが伝送される。チップ５は各バイトを受信し、各バイトをデータの第２ブロック５０の５０Ａ〜５０Ｈと示されたバイト０〜７に格納する。
【００３９】
データの第１ブロック１０およびデータの第２ブロック５０は、データの第１ブロック１０およびデータの第２ブロック５０内のデータの各バイトをそれぞれ駆動シーケンサ１１および受信シーケンサ５１に結合する、１バイト幅のバスを有するように示されるが、他のインプリメンテーションも企図される。一実施形態（図示せず）では、たとえばデータの第１のブロック５０は、データが一度に８ビットだけシフトされるシフト・レジスタであり、シフト・レジスタの単一バイトのみが駆動シーケンサ１１に結合される。他の実施形態（図示せず）では、データの第１ブロック１０は８つの８ビット・レジスタのレジスタ・スタックであり、関連する３ビット・アドレスを有するレジスタ・スタックは、スタック内の任意のレジスタをアドレス指定することができる。チップ５のデータの第２ブロック５０について、同様の実施形態が企図される。
【００４０】
図１では、信号バス９５の信号導電体のうちの１つに障害９６が示される。障害９６は、信号導電体の部分９５Ｂと信号導電体の部分９５Ｂ’とを分離する。障害９６は、信号導電体内の不連続または切れ目である場合があり、時には「オープン回路」と呼ばれる。障害９６は、電源への望ましくない接続である場合もある。いずれの場合も、部分９５Ｂおよび９５Ｂ’からなる信号導電体は確実に情報を伝送することができない。障害９６は信号バス９５上の２つの信号間の短絡である場合もあり、信号バス９５は２つの障害を有することになるが、現在の例では単一の障害を想定している。２つの障害に対処するためには、図の例で示された以外に追加の論理ブロックが必要である。しかしながら、当業者であれば理解されるように、追加の論理は図示された論理と同様である。
【００４１】
システムの立ち上げ（ｂｒｉｎｇｕｐ）時あるいはパリティ・チェック、ＣＲＣ、またはＥＣＣエラーに応答して実行される「ワイヤ・テスト」中に、障害が識別され、診断ユニット９８に格納される。障害の通信は信号導電体９１および信号導電体９２を介して送られる。信号導電体９１および９２は単一の信号導電体であるか、または複数の信号導電体を有するバスとすることができる。診断ユニット９８は、電子システムの障害を検査する任意のユニットである。たとえばＩＢＭ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）のｉＳｅｒｉｅｓ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）コンピュータでは、診断ユニットは「サービス・プロセッサ」と呼ばれる。
【００４２】
図２は、信号バス９５に障害がない場合に、信号バス９５を介してデータの第１ブロック１０におけるデータの通常の転送中に実行される伝送シーケンスを示す。第１のビート中にバイト０が転送される。第２のビート中にバイト１が転送される。最終バイトであるバイト７は、第８番ビートで転送される。
【００４３】
図３は、信号バス９５内の信号伝導体のうちの１つに障害がある場合、信号バス９５を介してデータの第１ブロック１０におけるデータの転送を実施する伝送シーケンスを示す。例示のために、信号バス９５の信号導電体「Ｚ」上のビットは障害が原因で転送することができない。チップ１の駆動シーケンサ１１は障害を認識しているが、データ転送の最初の８つのビートそれぞれについて１バイト（この例では）の選択グループを選択する。これは、障害がない場合のオペレーションと同様である。図３は、各ビートのビット「Ｚ」が転送されないことを示す。（たとえば、バイト０、ビット「Ｚ」なしは、バイト０がビート１中にドライバのデータ入力にルーティングされたが、バイト０のビット「Ｚ」は信号導電体「Ｚ」上の障害９６が原因で転送されなかったことを意味する。）有利には、ビット「Ｚ」のドライバは非導電状態（しばしば「使用不可」または「トライステート（ｔｒｉｓｔａｔｅ）」と呼ばれる）に置かれる。識別された障害が短絡である可能性があり、障害が接地電源に対する短絡である場合は大量の電力が消散される可能性があり、特定のビットが論理「１」である。駆動シーケンサ１１（図１を参照）は、第１の８つのビート中に送信されなかった８ビットを格納し、各ビートについてビット「Ｚ」を格納する。第９番ビート中に、格納された８つの「Ｚ」ビットを含む選択グループがドライバにルーティングされる。「Ｚ」ビットのうちの７つが転送される。８番目の「Ｚ」ビットは、障害のために第９番ビート上では転送できない。その後８番目の「Ｚ」ビットは、信号バス９５内の障害のない信号導電体を使用して、第１０番ビート上で転送される。
【００４４】
データ・ブロック１０内のビット数（６４ビット）および信号バス９５内の信号導電体の数（８）は単なる例示的な値であり、任意のサイズのデータ・ブロックおよびバス内の任意数の信号導電体が企図される。さらに電子システムの中には、データ・ブロックのデータ部分の伝送に先立って、伝送されることになるブロックのサイズに関する情報を含む「ヘッダ」を送信することで、データ・ブロックの変更が可能なものもある。本考察では、ヘッダはデータ・ブロックの一部とみなされる。
【００４５】
図４は、駆動シーケンサ１１の詳細なブロック図を伴うチップ１を示す図である。駆動マルチプレクサは、データの第１ブロック１０の８バイトそれぞれに結合され、データの第１ブロック１０の８バイトのうちのいずれかを駆動マルチプレクサ２０の出力に選択することができる。駆動マルチプレクサ２０は、結合３５によって駆動ビット・レジスタ２７にも結合される。駆動ビート・コントローラ２３は、９バイト（すなわちデータの第１ブロック１０からの８バイト、および駆動レジスタ２７からのバイト）のうちのどれが駆動マルチプレクサ２０によって選択されるかを判別する信号３０によって、駆動マルチプレクサ２０に結合される。選択されたバイトはドライバ２４のデータ入力に結合される。選択されたバイトは、駆動セレクト２１にも結合される。駆動ビート・コントローラ２３からの信号３４は、信号バス９５内のどの信号導電体に障害があるかを駆動セレクト２１に伝える。これは前述のように、現在選択されたバイト内のビットであり、信号バス９５内の信号導電体の障害９６により、後で伝送するために駆動ビット・レジスタ２７に格納されていなければならない。選択されたビットは駆動ビット・レジスタ２７に結合され、駆動ビート・コントローラ２３からの信号３２によって制御されるように駆動ビット・レジスタ２７に格納される。有利には、駆動ビット・レジスタ２７はシフト・レジスタであるが、他の実施形態も企図される。８ビート後、駆動ビット・レジスタ２７は障害９６によって伝送できなかった８ビット（バイト０〜７それぞれから１ビット）すべてを含む。第９番ビートで、駆動ビート・コントローラ２３の制御下の信号３０により、駆動マルチプレクサ２０によって駆動ビット・レジスタ２７内の８ビットが選択される。これら８ビットのうちの７ビットは、信号バス９５によって再度伝送される。１ビットは障害９６により依然として送信できない。さらに駆動ビート・コントローラ２３は、駆動ビット・レジスタ２７内のビットの「回転」を実行するように、結合３２を介して駆動ビット・レジスタ２７に信号通知する。図４では、信号３３が駆動ビット・レジスタ２７の第１エンドを駆動ビット・レジスタ２７の第２エンドに結合する。回転中、駆動ビット・レジスタ２７の一番右の７つのビットが１ビット位置ずつ左にシフトし、一番左のビットが回転して一番右のビットになる。第１０番ビート中に、駆動ビート・コントローラ２３の制御下で、駆動マルチプレクサ２０によって駆動ビット・レジスタ２７の今回転したコンテンツが再度選択される。７つのビットは信号バス９５を介して再度伝送され、１つのビットはこの例の障害９６により伝送されない。しかしながら、駆動ビット・レジスタ２７での回転オペレーションにより、第９番ビートで送信されなかったビットは異なる信号導電体を介して駆動され、第１０番ビートで首尾良く伝送される。電子システムが、複数の障害のある信号導電体をサポートするように設計されている場合、駆動ビット・レジスタ２７は、特定のビートで転送できない追加ビットを保持するために複製され（図示せず）、駆動セレクト２１は、駆動マルチプレクサ２０の出力から追加ビットを選択し、この追加ビットを駆動ビット・レジスタ２７の複製に格納するように設計される。駆動ビット・レジスタ２７内の「回転」オペレーションは例示のために説明したものであるが、伝送できなかったビットを第１０番ビートで障害のない信号導電体にルーティングされるように移動させるのに好適な、駆動レジスタ２７におけるビットの任意の所定の動きが企図される。他の実施形態（図示せず）では、駆動マルチプレクサ２０は前述のように駆動ビット・レジスタ２７に結合された第９番入力バイトを有するが、さらに、駆動ビット・レジスタ２７のビットに結合された第１０番入力バイトも有し、駆動ビット・レジスタ２７のビットは、駆動ビット・レジスタ２７の第９番バイト結合とは異なる所定の順序で駆動マルチプレクサ２０に結合される。駆動ビート・コントローラ２３は、駆動マルチプレクサ２０が、第９番ビート中の第９番入力バイト結合および第１０番ビート中の第１０番入力バイト結合を選択するように制御する。
【００４６】
図５は、各ビートに先立つ駆動ビット・レジスタ２７のコンテンツを示す図である。ビット「Ｚ」は、障害のある信号バス９５内の信号導電体上で駆動されることになるデータのビットである。ビート１に先立って、駆動ビット・レジスタ２７にシフトされているビットはない。ビート１中には、バイト０のビット「Ｚ」が駆動ビット・レジスタ２７の一番右のビット位置にシフトされる。ビート２中には、バイト１のビット「Ｚ」が駆動ビット・レジスタ２７の一番右の位置にシフトされる。ビート８の後（図５ではプレ・ビート９と示される）、各バイトのビット「Ｚ」が駆動ビット・レジスタ２７に格納される。これら８つのバイトは、前述のように第９番ビート中に駆動マルチプレクサ２０によって選択される。第９番ビートの後、前述のように駆動ビット・レジスタ２７で回転オペレーションが実行され、第１０番ビート用に選択されたデータは図５では「プレ・ビート１０」として示される。すべての「Ｚ」ビットは駆動ビット・レジスタ２７に残ったままであるが、１ビット位置ずつ回転されるため、ドライバ２４によって信号バス９５上の異なる信号導電体で駆動するようにルーティングされることになる。したがって、第９番ビートでは転送できなかった「Ｚ」ビットは、第１０番ビートで首尾良く転送される。
【００４７】
図６は、チップ５の拡張ブロック図である。受信シーケンサ５１は、信号バス９５上で信号を受信するのに好適なレシーバ６０を含む。受信シーケンサ５１は、信号９２によって前述の診断ユニット９８に結合されるレシーバ・ビート・コントローラ６１も有する。レシーバ・ビート・コントローラ６１には、障害のある信号導電体が信号バス９５内にある場合はそれがどれであるかが、診断ユニット９８によって伝えられる。
【００４８】
ディストリビュータ６３は、内部バス５６でレシーバ６０と結合され、信号５５（複数の信号を有する場合がある）によってレシーバ・ビート・コントローラ６１と結合される。ディストリビュータ６３は、レシーバ６０によって出力された信号を、データの第２ブロック５０内の適切なビットに分配することができる。障害がない場合、ディストリビュータ６３は（この例では）８ビートそれぞれで、単に１バイトのデータを内部バス５６からデータの第２ブロック６０の適切なバイトに移動させるだけである。（前述の考察により）信号導電体「Ｚ」に障害９６が存在する場合、（この例では）２つの追加ビートが必要である。第９番ビート中、内部バス５６は７つの有効ビットおよび１つの無効ビットを有する。第９番ビートでは、内部バス５６上の８ビットそれぞれが、データの第２ブロック５０の各バイト（すなわちバイト０〜７）にあるそれぞれ「Ｚ番目」のビットに駆動される。第９番ビートの後、データの第２ブロック５０は６３の有効ビットおよび１つの無効ビットを含む。第１０番ビート中、内部バス５６は再度７つの有効ビットおよび１つの無効ビットを有する。有効ビットのうちの６つのみが、第９番ビート中にデータの第２ブロック５０に首尾良く書き込まれたデータである。７番目の有効ビットは、第１０番ビート中にデータの第２ブロック５０内の残りの無効ビットを含むバイトの「Ｚ番目」のビットに向けて送られる。たとえば、信号バス９５のビット２上に障害９６が存在する場合、第１０番ビートでデータの第２ブロック５０に書き込まれたビットはバイト２のビット２であるが、伝送されたデータは前述のように駆動ビット・レジスタ２７内で１ビットずつ回転されているため、この書き込みのためのデータは信号バス９５のビット３から取得される。
【００４９】
図７は、ディストリビュータ６３の１ビットに対してディストリビュータ機能を実行する論理６３Ａの例示セットをより詳細に示す図である。レジスタ・ビット７０は、データの第２ブロック５０のうちの１ビットであり、図示された例では、バイト「Ｍ」のビット「Ｎ」である。レジスタ・ビット７０のデータ入力Ｄはセレクタ７２に結合され、これが、１０未満の任意のビートについて内部バス５６の「第Ｎ番」ビットである「ｒｃｖｒビットＮ」を選択する。第１０番ビートでは、伝送に先立ってビット・レジスタ２７を駆動することによって実行されるデータの回転を反映するために「ｒｃｖｒビットＮ（回転済み）」が選択される。レジスタ・ビット７０のデータ入力Ｄ上のデータは、入力Ｃ上の信号によって刻時される。「ＣＬＫ」は、図７に示された論理式に従ってゲートされるシステム・クロックである。レジスタ・ビット７０は、ＣＬＫがアクティブであり「ビートＭ」がアサートされた場合、クロックを受信することになる。たとえば、バイト２のすべてのビットが第２ビート上で刻時されることになる。レジスタ・ビット７０は、信号バス９５上のビット「Ｎ」に障害がある場合、第９番ビート中にも（ＣＬＫがアクティブの間に）クロックを受信することになる。たとえば、信号バス９５のビット２に障害があり、レジスタ・ビット７０がデータの第２ブロック５０内の任意のバイトのビット２である場合、レジスタ・ビット７０は刻時されることになる。レジスタ・ビット７０は、第１０番ビートがデータの第２ブロック５０に書き込まなければならない最終ビットである場合、このビート中にも（ＣＬＫがアクティブの間に）刻時されることになる。信号バス９５のビット２に障害がある例について続けると、レジスタ・ビット７０がバイト２のビット２を表す場合、レジスタ・ビット７０は第１０番サイクルでクロックを受信することになる。ディストリビュータ６３は、信号バス９５上のビットに障害があるとすればどのビットにあるか、および現在は何番ビートであるか、についての情報を受け取る。
【００５０】
図８は、本発明の他の実施形態を示す。この実施形態も、信号バス内の信号導電体に障害のある電子システムの連続オペレーション機能を提供し、実際には、障害なしおよび障害ありのどちらのオペレーションでも前述の実施形態と同じ数のサイクルを使用する。この実施形態では、以下で説明するように、ビットが選択される方法が異なる。図８の実施形態は、図１の診断ユニット９８と同様に、信号バス上の障害を識別すること、およびその障害の識別を第１の電子ユニットおよび第２の電子ユニットに送ることが可能な、診断ユニット２９８を示す。
【００５１】
チップ２０１（前述のように「チップ」は例示のためにのみ使用され、実際は、チップ２０１はモジュール、ＰＷＢ、電子格納装置、または任意の他の電子ユニットとすることができる）は、データの第１ブロック２０１をチップ２０５内のデータの第２ブロック２５０に転送する必要がある。駆動チップ２０１と同様に、受信チップ２０５は任意の電子ユニットを表すことが意図される。図８に示された例では、データの第１ブロック２０１が６４ビット（０〜６３）を有し、データの第２のブロック２５０が６４ビット（０〜６３）を有する。データの第１ブロック２０１およびデータの第２のブロック２５０は、物理的にレジスタ、キャッシュ、シフト・レジスタ、または任意の他のストレージ手段に常駐することができる。信号バス２９５は８ビットを有する。第１の部分２９５Ｂおよび第２の部分２９５Ｂ’を有する信号導電体には、障害２９６があるものとして示される。障害２９６はオープン回路または短絡とすることが可能であり、どちらのタイプの障害も信号導電体を動作不能にする。図１の障害９６と同様に、障害２９６は信号バス２９５の信号導電体間の短絡とすることができるが、この例では説明をわかりやすくするために単一の障害について論じる。信号ＮＥＮは、信号バス２９５上でドライバを論理的に使用不可（トライステート）にするためにしばしば使用される、「非使用可能（ｎｏｔ  ｅｎａｂｌｅ）」信号である。オプションであるが、これは他の信号と論理的に組み合わせて、信号バス２９５全体のすべてのドライバ、または障害のある信号導電体に結合された単一のドライバのみを使用不可にする方法について説明しやすくするために示される。
【００５２】
障害２９６がない場合、駆動シーケンサ２１１は、データの第１ブロック２０１から内部バスＳＥＬ８Ａ（０〜７）を介して一度に８ビットの「障害のない選択グループ」を選択し、この８ビットを８ビートそれぞれで信号バス２９５を介してほぼ並列に駆動する。受信シーケンサ２５１は、各ビートから８ビットのデータを受信し、ＳＥＬ８Ｂ（０〜７）を介してこの８ビットをデータの第２ブロック２５０内の適切なビットに転送する。前述のように、信号導電体内の障害２９６の存在および識別は、診断ユニット２９８により、駆動シーケンサ２１１および受信シーケンサ２５１へそれぞれ信号２９１および２９２を介して伝えられる。
【００５３】
障害２９６が存在する場合、駆動シーケンサ２１１は、データの第１ブロック２０１から内部バスＳＥＬ７Ａ（０〜６）を介して一度に（この例ではビート１〜９で）７ビットの「障害のある選択グループ」を選択し、この選択された７ビットを信号バス２９５の７つの障害のない信号導電体を介して転送する。次に受信シーケンサ２５１が１ビートにつき７ビットを受信し、ＳＥＬ７Ｂ（０〜６）を介してこれらをデータの第２ブロック２５０に転送する。（この例の）第１０番ビートでは、この例の最終ビットであるビット６３が選択されて障害のない信号導電体で伝送され、この最終ビットはデータの第２ブロック２５０の正しいビットに格納される。図９および図１０は、障害が存在しない場合の８つのビートおよび伝送されるデータと、障害が存在する場合の１０のビートおよび各ビート中に伝送されるビットとを示す。
【００５４】
図１１は、駆動シーケンサ２１１の例示的実施形態を示す。ビット障害レジスタ２５９は８ビットを有し、各ビットは信号バス２９５内の信号導電体に対応する。信号導電体に障害がある場合、ビット障害レジスタ２５９内の対応するビットは論理「１」に設定され、奏でない場合、対応するビットは論理「０」に設定される。したがって、ＢＦ（０）＝「１」は、信号バス２９５のビット０上に障害があることを意味する。ＯＲゲートのカスケードは、論理「１」を有するビット障害レジスタ２５９内のビットで始まる論理「１」を生成する。たとえばＢＦ（３）＝「１」の場合、Ｆ０、Ｆ１、Ｆ２は「０」であるが、Ｆ３、Ｆ４、Ｆ５、Ｆ６、およびＢＩＴ  ＦＡＵＬＴは「１」である。
【００５５】
ＢＩＴ  ＦＡＵＬＴ＝「１」の場合、障害が存在し、（この例の）データ転送は１０ビート、最初の９ビートそれぞれの７ビット、および第１０番ビートの１ビットで構成されることになる。
【００５６】
ＢＩＴ  ＦＡＵＬＴ＝「０」の場合、セレクタＡＡ０〜ＡＡ７はバスＳＥＬ８Ａ（０〜７）からデータを選択する。ＢＩＴ  ＦＡＵＬＴ＝「１」の場合、セレクタＡＡ０〜ＡＡ７はＳＥＬ７Ａ（０〜６）からデータを選択するが、こうしたビットの一部またはすべては以下で説明するようにシフトすることができる。セレクタＡ０〜Ａ５は、ＳＥＬ７Ａ（０〜６）のすべてのビットを障害のない信号導電体にシフトするためのメカニズムを提供する。
【００５７】
たとえば、信号バス２９５の信号導電体ビット（０）であるＢＵＳ（０）が、障害を有するものと識別されたと想定する（ＢＵＳ（０）のドライバ、信号導電体、およびレシーバ回路を含む可能性がある）。ＢＵＳ（０）のドライバは使用可能入力Ｅを有し、入力Ｅが論理「０」の場合にドライバを使用不可にする。ＢＵＳ（０）が障害を有する場合、ＢＦ（０）＝「１」である。ＢＦ（０）はＮＯＲ  Ａ０への入力であり、ＢＦ（０）＝「１」は、ＢＵＳ（０）のドライバが使用不可であることを保証する。Ｆ０はセレクタＡ０を制御し、Ｆ０＝「１」は、セレクタＡＡ１を介してＢＵＳ（１）のドライバのデータ入力Ｄに結合されるセレクタＡ０でＳＥＬ７Ａ（０）を選択する。同様に、ＳＥＬ７Ａ（１）はＢＵＳ（２）のドライバの入力Ｄにルーティングされ、ＳＥＬ７Ａ（２）はＢＵＳ（３）のドライバの入力Ｄにルーティングされる、という具合である。ＳＥＬ７Ａ（６）は直接ＳＥＬＡＡ７にルーティングされ、ＢＵＳ（７）で駆動される。この方法では、ＢＵＳ（０）は迂回され、ＳＥＬ７Ａの７つのビットは障害のない信号導電体ＢＵＳ（１〜７）で駆動される。
【００５８】
より簡単ではあるが第２の例として、ＢＵＳ（４）上に障害が存在する場合、ＳＥＬ７Ａ（０）はＢＵＳ（０）にルーティングされて駆動し、ＳＥＬ７Ａ（１）はＢＵＳ（１）で駆動し、ＳＥＬ７Ａ（２）はＢＵＳ（２）で駆動し、ＳＥＬ７Ａ（３）はＢＵＳ（３）で駆動する。ＳＥＬ７Ａ（４）はＢＵＳ（５）で駆動し、ＳＥＬ７Ａ（５）はＢＵＳ（６）で駆動し、ＳＥＬ７Ａ（６）はＢＵＳ（７）で駆動する。ＢＵＳ（４）のドライバはＢＦ（４）によって使用不可とされる。ＳＥＬ７Ａの７つのビットは、障害のない信号導電体に再度ルーティングされる。
【００５９】
信号バス２９５は、ＮＯＲ  Ａ０〜Ａ７へのアサート信号であり、８つすべてのドライバの使用可能入力で論理「０」を保証する、ＮＥＮ＝「１」によって、完全に使用不可とすることが可能である。ＮＥＮは、設計者が信号バス２９５上のすべてのドライバを論理的に使用不可にできることを希望する場合に使用される、オプション信号である。
【００６０】
当業者であれば、説明をわかりやすくするために示された詳細な論理では単一の障害のある信号導電体をサポートしているが、「Ｆ」が多くなるにつれて一度により少ない信号導電体をルーティングするために、追加の選択グループ（たとえば、それぞれ２つまたは３つの障害のある信号導電体に対処するための「ＳＥＬ６Ａ」、「ＳＥＬ５Ａ」）を追加のセレクタに結合できることを理解されよう。
【００６１】
図１２は、受信シーケンサ２５１の実施形態を示す。ビット障害受信レジスタ２６０は、ビット障害レジスタ２５９と同じビット・パターンを含み、各ビットは信号バス２９５内の信号導電体に対応する。ビット障害レジスタ２６０は、信号２９２を介して診断ユニット２９８からロードされる。記載されたように、ビット障害受信レジスタ２６０の論理「１」を含み、これに続く論理「１」を生成するために、ＯＲゲートのカスケードが再度提供される。たとえば、ＲＢＦ（０）＝「１」の場合、ＲＦ０、ＲＦ１、ＲＦ２、ＲＦ３、ＲＦ４、ＲＦ５、ＲＦ６、およびＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴはすべて「１」である。
【００６２】
レシーバＢ０〜Ｂ７はそれぞれＢＵＳ（０〜７）を受信し、それぞれＳＥＬ８Ｂ（０〜７）を出力する。信号導電体に１つの障害が存在する場合、７つのビットのみが（７つの障害のない信号導電体で）伝送され、７つのビットはＳＥＬ８Ｂ（０〜７）からＳＥＬ７Ｂ（０〜６）に正しくマッピングされなければならない。このマッピングは、事実上、７つのビットを信号バス２９５の７つの障害のない信号導電体に導くために駆動シーケンサ２１１によって実行されるマッピングに対応する。
【００６３】
ＲＦ０〜ＲＦ７およびセレクタＢ０〜Ｂ６がこのマッピングを提供する。ＲＢＦ（０）＝「１」の場合、（信号バス２９５の信号導電体ビット「０」に障害があることを示す）ＲＦ０＝「１」であり、セレクタＢ０はＳＥＬ７Ｂ（０）として出力するためにＳＥＬ８Ｂ（１）を選択するように制御される。同様に、信号ＲＦ１、ＲＦ２、ＲＦ３、ＲＦ４、ＲＦ５、およびＲＦ６を使用して、ＳＥＬ８Ｂ（２）はＳＥＬ７Ｂ（１）に駆動され、ＳＥＬ８Ｂ（３）はＳＥＬ７Ｂ（２）に駆動され、ＳＥＬ８Ｂ（４）はＳＥＬ７Ｂ（３）に駆動され、ＳＥＬ８Ｂ（５）はＳＥＬ７Ｂ（４）に駆動され、ＳＥＬ８Ｂ（６）はＳＥＬ７Ｂ（５）に駆動され、ＳＥＬ８Ｂ（７）はＳＥＬ７Ｂ（６）に駆動される。同様に、ＢＵＳ（６）に障害がある場合、ＢＵＳ（０〜５）はＳＥＬ７Ｂ（０〜５）にルーティングされ、ＢＵＳ（７）はＳＥＬ７Ｂ（６）にルーティングされる。
【００６４】
一実施形態（図示せず）では、複数の障害のある信号導電体に対処するように設計され、障害のない信号導電体から、データの第２ブロック２５０に結合されたより少ない信号を有する信号グループへと信号をルーティングする際に使用される追加のセレクタを備えた、追加のセレクタおよびＯＲが使用される。たとえば前述のように、一実施形態で２つの障害のある信号に対処する場合、（上記の命名規則を使用して）、「ＳＥＬ６Ｂ」信号セットならびにＳＥＬ７Ｂ信号セットが必要である。
【００６５】
図１３は、受信された適切なビットを受信レジスタ２５０の正しいビットにゲートするために使用される詳細な論理の一実施形態を示す。診断ユニット２９８からの信号２９２は、ビート番号を含む。代替の実施形態（図示せず）では、受信シーケンサ２５１はそれ自体でビートをカウントする。グループ復号２７８は、ビート番号および受信ビット障害（図１２からのビット障害受信レジスタ２６０）を使用して８ビットの「ＥＮ８−ＢＩＴ−ＧＲＯＵＰ」ワードを生成し、そのうちの１ビットが、信号バス２９５上に障害が存在しない場合、特定ビートに対してＳＥＬ８Ｂからデータを受信しなければならない、受信レジスタ２５０内の８ビットの刻時を制御するために、各ビートに対して使用可能となる。グループ復号２７８は、１０ビット・ワード「ＥＮ７−ＢＩＴ−ＧＲＯＵＰ」も出力し、そのうちの１ビットが、信号バス２９５の信号導電体上に障害が存在する場合に発生する１０ビートそれぞれに対して使用可能となる。レジスタ・ビット２７２のデータ入力（受信レジスタ２５０内の特定ビット「Ｘ」）はセレクタ２７０に結合され、これが、ＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴ＝「１」の場合にバスＳＥＬ７Ｂのビット「Ｍ」を選択し、ＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴ＝「０」の場合にＳＥＬ８Ｂのビット「Ｎ」を選択する。たとえば、ＳＥＬ７Ｂ（０）は、受信レジスタ２５０のビット０、６、１３、５５、および６４に結合される。ＳＥＬ７Ｂ（１）はビット１、７、１４、５６に結合される。ＳＥＬ８Ｂ（０）はビット０、７、１５、５６に結合される。
【００６６】
ＡＮＤゲート２７１は、第１の入力でシステム・クロックＣＬＫを受信する。ＡＮＤ  ２７１の第２の入力は、図１２で生成されるように示されたＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴによって制御されるセレクタ２７７に結合される。障害が存在する場合、ＲＥＣＥＩＶＥ  ＢＩＴ  ＦＡＵＬＴ＝「１」であり、セレクタ２７７は「ＥＮ７−ＢＩＴ−ＧＲＯＵＰ（Ａ）」を選択することになり、ここで「Ａ」は１０ビット・ワードのビットであり、「ＥＮ７−ＢＩＴ−ＧＲＯＵＰ」２７４は、レジスタ・ビット２７２が入っているデータの第２ブロック２５０の特定の７ビット・グループに適用される。たとえば、データの第２ブロック２５０のビット０〜６は、ビート１によって転送された７ビットが送信するビット・グループに入っており、第１のビート中にそれら７つのレジスタ・ビットに対するクロックを使用可能にするために、ＥＮ７−ＢＩＴ−ＧＲＯＵＰのビット０は「１」となる。第１０番ビートで「ＥＮ７−ＢＩＴ−ＧＲＯＵＰ」内のビットが「１」の場合、（この例では）レシーバ・レジスタ２５０の１つのレジスタ・ビット（すなわちビット６３）のみが影響を受けることに留意されたい。
【００６７】
前述のように、一実施形態では、追加の障害のある信号導電体に対処する。たとえば、２つの障害のある信号導電体に対処する場合、グループ復号２７８は６ビット・グループならびに７ビット・グループおよび８ビット・グループを使用可能にしなければならない。当業者であれば理解されるように、セレクタ２７０には適切な「ＳＥＬ６Ｂ」ビット用の他の入力がなければならず、セレクタ２７７は適切な「ＥＮ６−ＢＩＴ−ＧＲＯＵＰ」ビット用の第３の入力に対処しなければならない。
【００６８】
図１４は、障害信号導電体を有する可能性のある信号バスを介した、第１の電子ユニットから第２の電子ユニットへのデータ・ブロックの転送を可能にする、伝送シーケンス方法３００の高水準流れ図を示す。この方法はブロック３０１で開始される。ブロック３０２では、診断ユニットが信号バス内で障害のある信号導電体および障害のない信号導電体を決定する。第１の電子ユニットは、最低数のビートを使用し障害のないすべての信号導電体を利用する伝送シーケンスを使用して、信号バスを介してデータの第１のブロックを第２の電子ユニットに転送する。第１の電子ユニットは、データの「Ｊ」ビット・ブロックを「Ｋ」ビット信号バスの第２の電子ユニットに伝送しなければならない。「Ｆ」は、診断ユニットによって識別された障害のある信号導電体の数である。「Ｆ」＝０の場合、障害は識別されなかった。本発明では、好ましくは「Ｋ−１」までの任意数の障害が企図される。ブロック３０３では、診断ユニットが第１の（駆動）電子ユニットおよび第２の（受信）電子ユニットで障害状況を設定する。ブロック３０４では、転送を完了するのに十分なバス・サイクル（ビート）を使用して、信号バス内の障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックが伝送される。第２の電子ユニットは、障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックを受信する。この方法はブロック３０５で終了する。有利には、障害のある信号導電体に結合されたドライバは使用不可となる。
【００６９】
図１５は、方法３００のブロック３０４の一実施形態である、方法３２０の流れ図を示す。方法はブロック３２１で開始される。ブロック３２２で、ビート・カウントが初期設定される。ブロック３２３で、データのバイトが選択される。選択されたビット数は、データ・ブロックが転送される際に介する信号バス内の信号導電体の合計数であり、ここでは１バイト幅の信号バスであると想定して例示のために「バイト」が使用される。例示のために６４ビットのデータ・ブロックが想定されるが、好ましくは本発明は６４ビットのデータ・ブロックに限定されるものではない。説明を簡単にするために、単一の障害のある信号導電体が想定されるが、上記で説明したように「Ｋ−１」までの任意数の障害ビットが想定される。ブロック３２４で、障害のある信号導電体を介した伝送が予定された選択されたバイトのビットが格納される。有利には、ビットはシフト・レジスタに格納され、シフト・レジスタは制御信号に応答してそのビットを回転させることができる。ブロック３２５で、選択されたバイトがドライバのデータ入力にルーティングされ、信号バスを介して駆動される。障害のある信号導電体は、障害のある信号導電体に結合されたドライバのデータ入力にルーティングされたビットを伝送することができず、有利には、障害が短絡である場合に発生し得る高電流が流れるのを防ぐために、そのドライバは使用不可にされる（トライステートされる、または高インピーダンス状態に切り替えられるとも言われる）。ドライバが使用不可になる場合、「高インピーダンス」とは、ドライバの出力が駆動されている伝送線よりも少なくとも１桁高いインピーダンスであることを意味し、通常は数十万オーム、あるいはメガオームの場合もある。ブロック３２６で、通常の（障害のない信号導電体）伝送に必要なビート数が完了したかどうかがチェックされる。完了していない場合、ブロック３４２でビート・カウントが増分され、制御はブロック３２３に渡される。通常のビート・カウントに達している場合、ブロック３２７で障害が識別されたかどうかがチェックされる。識別されない場合、伝送は完了する。障害が識別された場合、ブロック３２８は格納されたビットのバイトを選択し（この例では、６４ビットのデータ・ブロックが８ビット・バスを介して伝送されることになり、単一の障害が想定され、その結果８ビットが格納される）、それらを信号バスのドライバのデータ入力にルーティングする。８ビットのうちの７ビットは、前述のように他のビートで伝送される。ブロック３２９は格納されたデータ内でビットを回転させ、その結果すべてのビットが異なる所定の位置に移動される。前述のように、有利には、格納されたビットはすべてのビットが１ポジション移動されるビット回転が可能なシフト・レジスタにあり、一方のエンドにあるビットが他方のエンドにある第１のビット位置に回転される。ブロック３４０で、格納されたビットが再度選択され、信号バス上のドライバのデータ入力にルーティングされて、最終ビートで駆動される。ここで、前のバス・ビートで伝送できなかったビットが異なるドライバに向けて送られ、障害のない信号導電体を介して首尾良く駆動される。第２の（受信）電子ユニットは障害のある信号導電体を認識しており、障害のある信号導電体が存在する場合に使用された伝送プロトコルがわかるように設計され、伝送されたビットを第２の電子ユニットのメモリの正しいビット位置に適切に移動させることができる。
【００７０】
図１６は、図１４のブロック３０４の第２の実施形態を示す。ブロック３６１は、信号バスを介してデータ・ブロックを第１の電子ユニットから第２の電子ユニットへ転送する方法を開始する。ブロック３６２でビート・カウントが初期設定され、転送されることになる合計ビット数と、信号バスで使用可能な障害のない信号導電体の数から、必要なビート数が決定される。ブロック３６３で、転送されることになるブロックからデータのグループが選択され、このグループのサイズは信号バス内の障害のない信号導電体の数に等しい。ブロック３６４で、選択されたデータのグループは、障害のない信号導電体を介して第１の電子ユニットによって第２の電子ユニットに伝送される。ブロック３６５は、最後のビートが完了したかどうかを判別し、完了していない場合、ブロック３６６はビート・カウンタを増分し、ブロック３６３に制御を渡す。最後のビートが完了している場合、制御はブロック３６７に渡され、ここで方法は完了する。
【００７１】
前述の内容は本発明の諸実施形態を対象とするものであるが、本発明の基本範囲を逸脱することなく本発明の他の実施形態を考案することが可能であり、その範囲は添付の特許請求の範囲によって決定される。
【図面の簡単な説明】
【００７２】
【図１】好ましい実施形態に従った、信号バスによって結合された２つの電子ユニットを示す高水準ブロック図である。各電子ユニットはデータ・ブロック用のストレージを有する。信号バスの１つの信号導電体上に例示的障害が示される。
【図２】（好ましい実施形態に従った）障害のない信号バスの、タイミング図および各ビート上を送信されるデータの記述を示す図である。
【図３】（好ましい実施形態に従った）障害のある信号導電体を備えた信号バスの、タイミング図および各ビート上を送信されるデータの記述を示す図である。
【図４】好ましい実施形態に従った、信号バスを介してデータ・ブロックを駆動する電子ユニットの詳細なブロック図である。駆動シーケンサの拡張ブロック図が示される。
【図５】好ましい実施形態に従った、データのビートが障害のある信号導電体を有する信号バスを介して送信される際の、図３に示された駆動ビット・レジスタ・ブロックのコンテンツを示す図である。
【図６】好ましい実施形態に従った、障害のある信号導電体を有する信号バスを介して駆動電子ユニットによって送信されたデータ・ブロックを受信する、電子ユニットを示す拡張ブロック図である。
【図７】好ましい実施形態に従った、図６に示されたディストリビュータ・ブロックの１ビット部分の細部を示す図である。
【図８】本発明の第２の実施形態を示す高水準ブロック図である。駆動電子ユニット（例示的な図では駆動チップ）が、障害のある信号導電体を有する信号バスを介して第２の電子ユニット（例示的な図では受信チップ）に結合される。障害のある信号導電体が識別されるか否かに応じて、伝送されることになるデータのブロックから異なるサイズのデータのグループが選択される。
【図９】本発明の実施形態に従った、通常のデータ伝送（すなわち障害のない信号導電体が識別された場合）に関するタイミング図を示す図である。
【図１０】本発明の実施形態に従った、障害のある信号導電体が識別された場合のデータ伝送に関するタイミング図を示す図である。
【図１１】第２の実施形態に従った、図８に示されたドライバ制御ブロックを示す詳細なブロック図である。
【図１２】第２の実施形態に従った、図８に示されたレシーバ制御ブロックを示す詳細なブロック図である。
【図１３】第２の実施形態に従った、図８に示された受信レジスタの特定ビットに正しいデータをラッチする制御論理を示す詳細なブロック図である。
【図１４】本発明の一実施形態で開示された方法を示す、高水準流れ図である。
【図１５】本発明の一実施形態に従った、図１４の流れ図のブロック３０４の詳細な拡張を示す流れ図である。
【図１６】本発明の一実施形態に従った、図１４の流れ図のブロック３０４の詳細な代替の拡張を示す流れ図である。
【手続補正書】
【提出日】平成17年10月21日(2005.10.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ゼロから「Ｋ−１」の信号伝導体に障害がある「Ｋ」の信号導電体を有する信号バスを介して、第１の電子ユニットから第２の電子ユニットへデータの「Ｊ」ビット・ブロックを伝送するための方法であって、
前記信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップと、
前記信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップによって発見された情報を使用して、前記第１の電子ユニットおよび前記第２の電子ユニットにおける前記信号導電体の障害状況を設定するステップと、
前記信号バスにおいて障害のある信号導電体の数「Ｆ」を決定するステップと、
前記信号バスにおいて障害のない信号導電体の数「Ｋ−Ｆ」を決定するステップと、
「Ｊ／（Ｋ−Ｆ）」ビートと、残りがある場合は追加のビートとを使用して、前記「Ｋ−Ｆ」の障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックを伝送するステップと、
を有する方法であり、
前記伝送するステップが、
前記データの「Ｊ」ビット・ブロックからデータの「Ｋ」ビット・グループを選択するステップと、
前記「Ｋ−Ｆ」の障害のない導電体を使用して、前記データの「Ｋ」ビット・グループのうちの「Ｋ−Ｆ」ビットをビート上で伝送するステップと、
前記信号バス内の前記障害のある「Ｆ」導電体により、前記ビート上で伝送できない前記「Ｋ」ビット・グループ内の前記「Ｆ」ビットを格納するステップと、
前記データの「Ｊ」ビット・ブロックのうちのすべての「Ｊ」ビットが選択されるまで、前記３つのステップを反復するステップと、
前記「Ｋ−Ｆ」の障害のない信号導電体のうちの１つまたは複数を使用して、前記格納された「Ｆ」ビットを１つまたは複数の追加ビート上で伝送するステップと、
をさらに有する、方法。
【請求項２】
前記「Ｆ」ビットを格納するステップが、前記「Ｆ」ビットのうちの少なくとも１ビットをシフト・レジスタの第１のエンドにシフトするステップをさらに有する、請求項１に記載の方法。
【請求項３】
前記シフト・レジスタのビットのうちの少なくとも１つを障害のない信号導電体に伝送するステップをさらに有する、請求項２に記載の方法。
【請求項４】
前記シフト・レジスタ内の特定ビットを、障害のない信号導電体に結合するために位置合わせするように移動するステップをさらに有する、請求項３に記載の方法。
【請求項５】
前記第２の電子ユニットで「Ｊ／（Ｋ−Ｆ）」ビートについて１ビートあたり「Ｋ−Ｆ」ビットを格納するステップと、
「Ｊ／（Ｋ−Ｆ）」で残りが生じる場合、追加ビート内に残りのビットを格納するステップと、
をさらに有する、請求項１に記載の方法。
【請求項６】
ゼロから「Ｋ−１」の信号伝導体に障害がある「Ｋ」の信号導電体を有する信号バスを介して、第１の電子ユニットから第２の電子ユニットへデータの「Ｊ」ビット・ブロックを伝送するための方法であって、
前記信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップと、
前記信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップによって発見された情報を使用して、前記第１の電子ユニットおよび前記第２の電子ユニットにおける前記信号導電体の障害状況を設定するステップと、
前記信号バスにおいて障害のある信号導電体の数「Ｆ」を決定するステップと、
前記信号バスにおいて障害のない信号導電体の数「Ｋ−Ｆ」を決定するステップと、
「Ｊ／（Ｋ−Ｆ）」ビートと、残りがある場合は追加のビートとを使用して、前記「Ｋ−Ｆ」の障害のない信号導電体を介してデータの「Ｊ」ビット・ブロックを伝送するステップと、
を有する方法であり、
前記第１の電子ユニット上のデータの前記「Ｊ」ビット・ブロックからビットの「Ｋ−Ｆ」ビット・グループを選択するステップと、
前記信号バスにおける前記「Ｋ−Ｆ」の障害のない信号導電体を使用して、前記ビットの「Ｋ−Ｆ」ビット・グループを前記第１の電子ユニットから前記第２の電子ユニットに伝送するステップと、
すべての「Ｋ−Ｆ」ビット・グループが伝送されるまで前記ステップを反復するステップと、
前記信号バスの追加ビートを使用して、前記第１の電子ユニット上に前記データの「Ｊ」ビット・ブロックの残りのビットがあればそれを前記「Ｋ−Ｆ」の障害のない信号導電体の一部またはすべてを使用して前記第２の電子ユニットに伝送するステップと、
をさらに有し、
前記障害のない導電体を介して前記ビットのＫ−Ｆビット・グループを伝送する場合に、前記データのＪビット・ブロックのビット順序が維持される、方法。
【請求項７】
伝送用に「Ｊ」ビットを保持する第１の電子ユニット内のデータの第１ブロックと、
「Ｊ」ビットを有するデータの第２ブロックを保持することが可能な第２の電子ユニット内のストレージと、
前記第１の電子ユニットを前記第２の電子ユニットに結合する「Ｋ」信号導電体を有し、「Ｆ」の障害のある信号導電体および「Ｋ−Ｆ」の障害のない信号導電体を有する、信号バスと、
前記第１の電子ユニットおよび前記第２の電子ユニットに結合され、前記信号バス上で前記「Ｆ」の障害のある信号導電体および前記「Ｋ−Ｆ」の障害のない信号導電体を識別すること、ならびに前記第１の電子ユニットおよび前記第２の電子ユニット内に障害識別情報を格納することが可能な、診断ユニットと、
前記障害識別情報に応答して、前記「Ｋ−Ｆ」の障害のない導電体のみを使用し、「Ｊ／（Ｋ−Ｆ）」ビートおよび残りがある場合は追加のビートを使用して前記「Ｊ」ビットのデータを伝送する、前記第１の電子ユニット内の駆動シーケンサと、
を有する、第１の電子ユニットから第２の電子ユニットにデータの「Ｊ」ビット・ブロックを伝送するための装置であって、
前記伝送するための駆動シーケンサ手段は、
前記データの「Ｊ」ビット・ブロックからデータの「Ｋ」ビット・グループを選択するための手段と、
前記「Ｋ−Ｆ」の障害のない導電体を使用して、前記データの「Ｋ」ビット・グループのうちの「Ｋ−Ｆ」ビットをビート上で伝送するための手段と、
前記信号バス内の前記障害のある「Ｆ」導電体により、前記ビート上で伝送できない前記「Ｋ」ビット・グループ内の前記「Ｆ」ビットを格納するための手段と、
前記データの「Ｊ」ビット・ブロックのうちのすべての「Ｊ」ビットが選択されるまで、前記ビットの選択、伝送、および格納の反復を実行可能にするための手段と、
前記「Ｋ−Ｆ」の障害のない信号導電体のうちの１つまたは複数を使用して、前記格納された「Ｆ」ビットを１つまたは複数の追加ビート上で伝送するための手段と、
をさらに有する、装置。
【請求項８】
前記駆動シーケンサが使用不可にすることが可能なドライバをさらに有し、前記駆動シーケンサが障害のある信号導電体に結合されたドライバを使用不可にする、請求項７に記載の装置。
【請求項９】
前記第２の電子ユニットが、前記信号バスおよび前記診断ユニットに結合された受信シーケンサをさらに有し、前記受信シーケンサは一度に「Ｋ−Ｆ」ビットを前記データの第２ブロックに格納することが可能であり、前記「Ｋ−Ｆ」ビットは前記信号バスの「Ｋ−Ｆ」の障害のない信号導電体から受信され、さらに前記受信シーケンサは、「Ｊ／（Ｋ−Ｆ）」に残りがある場合は「Ｋ−Ｆ」ビットより少ないビットを選択することが可能な、請求項７に記載の装置。
【請求項１０】
伝送用に「Ｊ」ビットを保持する第１の電子ユニット内のデータの第１ブロックと、
「Ｊ」ビットを有するデータの第２ブロックを保持することが可能な第２の電子ユニット内のストレージと、
前記第１の電子ユニットを前記第２の電子ユニットに結合する「Ｋ」信号導電体を有し、「Ｆ」の障害のある信号導電体および「Ｋ−Ｆ」の障害のない信号導電体を有する、信号バスと、
前記第１の電子ユニットおよび前記第２の電子ユニットに結合され、前記信号バス上で前記「Ｆ」の障害のある信号導電体および前記「Ｋ−Ｆ」の障害のない信号導電体を識別すること、ならびに前記第１の電子ユニットおよび前記第２の電子ユニット内に障害識別情報を格納することが可能な、診断ユニットと、
前記障害識別情報に応答して、前記「Ｋ−Ｆ」の障害のない導電体のみを使用し、「Ｊ／（Ｋ−Ｆ）」ビートおよび残りがある場合は追加のビートを使用して前記「Ｊ」ビットのデータを伝送する、前記第１の電子ユニット内の駆動シーケンサと、
を有する、第１の電子ユニットから第２の電子ユニットにデータの「Ｊ」ビット・ブロックを伝送するための装置であって、
前記駆動シーケンサは、
前記第１の電子ユニット上のデータの前記「Ｊ」ビット・ブロックからビットの「Ｋ−Ｆ」ビット・グループを選択するための手段と、
前記信号バスにおける前記「Ｋ−Ｆ」の障害のない信号導電体を使用して、前記ビットの「Ｋ−Ｆ」ビット・グループを前記第１の電子ユニットから前記第２の電子ユニットに伝送するための手段と、
すべての「Ｋ−Ｆ」ビット・グループが伝送されるまで前記ビットの選択および伝送の反復を実行可能にするための手段と、
前記信号バスの追加ビートを使用して、前記第１の電子ユニット上に前記データの「Ｊ」ビット・ブロックの残りのビットがあればそれを前記「Ｋ−Ｆ」の障害のない信号導電体の一部またはすべてを使用して前記第２の電子ユニットに伝送するための手段と、
をさらに有し、
前記装置は、前記障害のない導電体を介して前記ビットのＫ−Ｆビット・グループを伝送する場合に、前記データのＪビット・ブロックのビット順序を維持するように動作可能である、装置。
【請求項１１】
前記障害のない信号導電体がパワー・オン・シーケンス中に識別される、請求項１から６のいずれか一項に記載の方法。
【請求項１２】
前記障害のない信号導電体が、パリティ・エラー、エラー修正コード・エラー、または巡回冗長検査エラーの結果として実行されるワイヤ・テストによって識別される、請求項１から６のいずれか一項に記載の方法。
【請求項１３】
応答して前記信号バス内の障害のある信号導電体を識別するステップに応答して、前記障害のある信号導電体に結合されたドライバを高インピーダンス状態に切り替えるステップをさらに有する、請求項１から６のいずれか一項に記載の方法。
【国際調査報告】
2007505380.tif 000019
2007505380.tif 000020
2007505380.tif 000021