JP4392025B2 - 障害条件に対するオートノミック・バスの再構成 - Google Patents

障害条件に対するオートノミック・バスの再構成 Download PDF

Info

Publication number
JP4392025B2
JP4392025B2 JP2006525832A JP2006525832A JP4392025B2 JP 4392025 B2 JP4392025 B2 JP 4392025B2 JP 2006525832 A JP2006525832 A JP 2006525832A JP 2006525832 A JP2006525832 A JP 2006525832A JP 4392025 B2 JP4392025 B2 JP 4392025B2
Authority
JP
Japan
Prior art keywords
bit
signal
data
electronic unit
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006525832A
Other languages
English (en)
Other versions
JP2007505380A (ja
JP2007505380A5 (ja
Inventor
ボーケンハーゲン、ジョン、マイケル
ザンブランネン、ローラ、マリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007505380A publication Critical patent/JP2007505380A/ja
Publication of JP2007505380A5 publication Critical patent/JP2007505380A5/ja
Application granted granted Critical
Publication of JP4392025B2 publication Critical patent/JP4392025B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Dc Digital Transmission (AREA)
  • Small-Scale Networks (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、一般に、信号バスによって結合された構成要素を有する電子システムに関する。とりわけ本発明は、信号バス内の1つまたは複数の信号伝導体に障害を有する信号バスに関する。
電子システムは、一般に、信号伝導体によって相互接続された複数の電子ユニットを備える。これらの信号伝導体は、通常、銅、アルミニウム、または他のこうした材料で製造された導電性パスである。別の方法として、光ファイバも信号を伝導する。
たとえば、半導体チップは、ワイヤボンディングまたはフリップ・チップ技法を使用してモジュール上の信号伝導体に電気的に結合された信号を駆動および受信する。さらにモジュールは、通常、銅製ピン、はんだ柱、または他の手段を使用してプリント配線板(PWB)信号伝導体に結合される。PWB上の信号伝導体は1つのモジュールを他のモジュールと相互接続し、さらに信号をPWBエッジ・コネクタまたはケーブル・コネクタにルーティングする。PWBエッジ・コネクタおよびケーブル・コネクタは、バックプレーンまたはケーブルを使用して、1つのPWBを他のPWBと相互接続する際に使用される。半導体チップの中であっても、極めて微細な導電体がチップ上の回路と論理ユニットとの間で信号をルーティングする。
論理的に関係する信号導電体のグループが、信号バスと呼ばれる。たとえば、プロセッサ・チップは、データがほぼ並列に流れる指定数の信号導電体を有する信号バスによってメモリ制御チップに接続される。すなわち、プロセッサ・チップが8ビット・バスによってメモリ・コントロールに結合される場合、プロセッサ・チップは、信号バスの信号導電体それぞれで1ビット、8ビットのデータ(1バイト)をほぼ同時に送信する。たとえばプロセッサ・チップは、例のメモリ制御チップに1回に1バイトのアドレスを伝送し、メモリ制御チップから1回に1バイトのデータを再受信する。
経済的および物理的要因によって、電子素子を相互接続するために使用可能な信号導電体の数が制限される。たとえば、モジュールとカードとの間の各相互接続は約1.2円(約1ペニー)かかる。かなり価格に敏感な電子ユニット上に多数の相互接続があるのは妥当ではない。さらにPWB上に多くの構成要素が取り付けられると、多数の相互接続がPWB内に配線レイヤを追加させることになり、PWBのコストが上がる。多くの相互接続が使用される場合、電子ユニット間の配線はかなり費用がかかり、密集した多くの導電体ケーブルは扱いにくく、コストがかかり、信頼性の点からみて問題である。ある時点で、コストがかかり信頼性が低くなるだけでなく、より多くの相互接続を追加するのが物理的に不可能になる。
通常、1つの電子ユニットが別の電子ユニットにデータ・ブロックを伝送しなければならない。しばしばデータ・ブロックは、比較的大規模である。たとえば、何らかの最新のコンピュータ・システム内のキャッシュ・ラインは64バイトまたは128バイト長さである。このブロック(すなわちキャッシュ・ライン)が8バイトの信号バスを介して送信されることになる場合、転送を完了するにはそれぞれ8または16のバス・サイクル(ビート)が必要である。多くの応用例では、より少ない信号導電体を有する信号バスを介して、より大規模なデータ・ブロックが転送される場合さえある。
現在の電子システムは、確実に動作することが期待される。ビジネス用に信頼された市販のコンピュータ・システムでのダウンタイムは、売り上げの損失により多額の犠牲を払う可能性がある。さらに、こうしたダウンタイムは顧客をいらいらさせ、競争相手に向かわせてしまう可能性がある。多くの市販のシステムは、時刻、曜日の制限なく(すなわち常時)動作するように当てにされる。ピーク時に機能を停止させる予期せぬ障害は、非常に重大な問題である。通常、こうした市販システムのユーザは、障害が発生した場合に、たとえ性能がわずかに低下してもオペレーションが続行されることを好む。ユーザは、より都合のよい時間に障害を修復するようなプランを立てることができる。軍用システムも電子システムに対する依存度が高く、さらに過酷な使い方および厳しい環境にさらされる可能性がある。戦闘状態では、予備部品(新しいケーブル、新しいPWBなど)が入手不可能な場合がある。したがって多くの軍事適用例では、わずかな性能低下での継続オペレーションが好ましい。
信号バスは、信号バスに関連付けられた1つまたは複数の信号導電体を有し、通常、信号バスは8の倍数の信号導電体を有する。しばしば、単一の特別な信号導電体がパリティ・ビットを搬送する。たとえば、8つの信号導電体を有する信号バスは、パリティを搬送する9番目の(パリティ)信号導電体も有する。送信側ユニット上のパリティ生成器は、バス上の論理「1」の数が必ず奇数になる(または、他の実施形態では必ず偶数になる)ように、パリティ上の論理値を生成する。受信側ユニット上のパリティ・チェッカは、受信した論理「1」の数が予想通りである(すなわち「奇数」または「偶数」)かどうかをチェックする。こうしたパリティ生成/チェック・システムは、信号バス上で単一の障害を検出することはできるが、障害を修正することはできない。パリティ・エラーが検出された場合、その信号バスはもはやデータの伝送に使用できない。追加の信号導電体を使用して、多くの適用例で単一の障害を修正し、2つの障害を検出することが可能な、「エラー修正コード」(ECC)をインプリメントすることができる。ECCの使用により、追加の信号導電体に関連付けられた追加のコストが発生する。データの伝送時にエラーを発見しこれに対処するために使用される他の技法が、巡回冗長コード(CRC)の使用である。
多くの最新の電子システムは、信号バス内の障害に関する詳細を決定するための「ワイヤ・テスト」プロシージャを実行する機能を有する。たとえば第1の電子ユニットは、信号導電体上で所定のパターンの論理「1」および「0」を駆動する。信号導電体によって第1のユニットに結合された第2の電子ユニットは、信号導電体からデータを受信し、受信したパターンと所定のパターンとを比較する。受信したパターンが所定のパターンと同じでない場合、信号導電体、ドライバ、またはレシーバに障害がある。こうしたパスは、信号バスをパリティ使用不可または使用可にすることになる。単一のエラー修正、2つのエラー検出を有するECCを採用している信号バスであっても、ECCバス内の他の障害がECCバスを使用不可にすることもあるため、危険にさらされることになる。2つの信号導電体内の障害が、単一ビット修正のECCを有する信号バスであっても使用不可にすることがある。
米国特許第5440538号は、通信チャネル上での通信のための通信システムおよび方法を開示する。好ましくは高速マルチプレクサおよびデマルチプレクサ集積回路からなる置換スイッチは、障害のあるリンクを冗長予備リンクにマッピングして、通信がチャネルを横切って続行できるようにする。
米国特許第6018810号は、64ビット・データ幅の上位または下位いずれかの32ビット部分で発生した障害から回復可能な、コンピュータ・システムにおける耐障害64ビット・データ幅周辺構成要素相互接続(PCI)バス・システムを開示する。
米国特許第5717852号は、データがバス・マスタとバス・スレーブとの間でバスを介して転送されている際にバス内で障害が発生した場合、バスを介したデータ転送が停止されることを開示する。その後、このデータは障害のないバスを介して再転送される。
本発明の目的は、障害のある信号導電体を有する信号バスが低下した性能で動作できるようにする、方法および装置を提供することである。
第1の態様によれば、ゼロから「K−1」の信号伝導体に障害がある「K」の信号導電体を有する信号バスを介して、第1の電子ユニットから第2の電子ユニットへデータの「J」ビット・ブロックを伝送するための方法が提供され、この方法は、信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップと、信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップによって発見された情報を使用して、第1の電子ユニットおよび第2の電子ユニットにおける信号導電体の障害状況を設定するステップと、信号バスにおいて障害のある信号導電体の数「F」を決定するステップと、信号バスにおいて障害のない信号導電体の数「K−F」を決定するステップと、「J/(K−F)」ビートと、残りがある場合は追加のビートとを使用して、「K−F」の障害のない信号導電体を介してデータの「J」ビット・ブロックを伝送するステップと、を有する。
好ましい実施形態では、この方法は、第1の電子ユニット上のデータの「J」ビット・ブロックからビットの「K−F」ビット・グループを選択するステップと、信号バスにおける「K−F」の障害のない信号導電体を使用して、ビットの「K−F」ビット・グループを第1の電子ユニットから第2の電子ユニットに伝送するステップと、すべての「K−F」ビット・グループが伝送されるまで上記ステップを反復するステップと、信号バスの追加ビートを使用して、第1の電子ユニット上にデータの「J」ビット・ブロックの残りのビットがあればそれを「K−F」の障害のない信号導電体の一部またはすべてを使用して第2の電子ユニットに伝送するステップと、を有する。
好ましくは、障害のある信号導電体を有する信号バスがわずかに低下した性能で動作できるようにする、方法および装置が提供される。
好ましい実施形態では、伝送するステップは、データの「J」ビット・ブロックからデータの「K」ビット・グループを選択するステップと、「K−F」の障害のない導電体を使用して、データの「K」ビット・グループのうちの「K−F」ビットをビート上で伝送するステップと、信号バス内の障害のある「F」導電体により、ビート上で伝送できない「K」ビット・グループ内の「F」ビットを格納するステップと、データの「J」ビット・ブロックのうちのすべての「J」ビットが選択されるまで、上記3つのステップを反復するステップと、「K−F」の障害のない信号導電体のうちの1つまたは複数を使用して、格納された「F」ビットを1つまたは複数の追加ビート上で伝送するステップと、をさらに有する。
好ましい実施形態では、「F」ビットを格納するステップは、「F」ビットのうちの少なくとも1ビットをシフト・レジスタの第1のエンドにシフトするステップをさらに含む。
好ましい実施形態では、シフト・レジスタのビットのうちの少なくとも1つを障害のない信号導電体に伝送するステップを含む。
好ましい実施形態では、シフト・レジスタ内の特定ビットを、障害のない信号導電体に結合するために位置合わせするように移動するステップを含む。
好ましい実施形態では、第2の電子ユニットで「J/(K−F)」ビートについて1ビートあたり「K−F」ビットを格納するステップと、「J/(K−F)」で残りが生じる場合、追加ビート内に残りのビットを格納するステップとを含む。
本発明は、好ましくは、内部の信号導電体に障害がある信号バスによって、第2の電子ユニットに結合された第1の電子ユニットを有する電子システムの、連続するが性能低下したオペレーションを可能にする、方法および装置を提供する。好ましくは、信号バス内の障害のない信号導電体が識別され、好ましくは、すべての障害のない信号導電体を利用する伝送シーケンスで、伝送を完了するための最低数のビート(バス・サイクル)を使用して、第1の電子ユニットが第2の電子ユニットへデータ・ブロックを伝送する。第1の電子ユニットは、好ましくは、「K」の信号導電体を有する信号バスを介して「J」ビットを有するデータ・ブロックを伝送するように設計される。第2の電子ユニットは、好ましくはデータ・ブロックを受信する。電子システムは、たとえば「ワイヤ・テスト」または他の手段を使用して、信号バス内の障害のある信号導電体および障害のない信号導電体を識別し、好ましくは、障害のある信号導電体の識別を第1の電子ユニットおよび第2の電子ユニットに格納する。好ましい実施形態によれば、「F」は信号バス内の障害のある導電体の数である。第1の電子ユニットは、好ましくは障害のある信号導電体の識別を使用してその伝送を変更し、伝送を実施するために1つまたは複数の追加ビートを使用して、残りの「K−F」信号導電体を介して「J」ビット・ブロックを伝送シーケンスとして送信する。第2の電子ユニットは、好ましくは障害のある信号導電体の識別を使用し、障害のない「K−F」信号導電体を介して伝送シーケンスに従って「J」ビット・ブロックを受信する。
一実施形態では、「K」信号導電体を有する信号バスを介して「J」ビットを有するデータ・ブロックを伝送する必要のある電子システムにおいて、伝送シーケンスで「J/K」バス・サイクル(ビート)が使用され、障害のある信号導電体がない場合、転送を完了する。信号バス内の「F」信号導電体に障害がある場合、伝送シーケンスが必要とするビートの数は「J/(K−F)」であり、分割によって残りが出た場合はこれに1ビートが加えられる。
「K」信号導電体を有し、そのうちの「F」に障害がある信号バスを有する実施形態では、伝送シーケンスは「J」ビットのデータを有するデータ・ブロックから1ビートについて「K」ビットを選択する。「J/K」ビートそれぞれについて「K−F」ビットが伝送され、その後の伝送では1ビートにつきFビットが格納される。「J/(K−F)−J/K」の追加ビート(分割により残りが出た場合はさらに1ビート追加)を使用して、「J/K」ビート中に送信されなかった各ビートから格納されたビットを伝送する。
「K」信号導電体を有し、そのうちの「F」に障害がある信号バスを有する実施形態では、伝送シーケンスは「J」ビットのデータを有する第1の電子ユニット内のデータ・ブロックから1ビートについて「K−F」ビットを選択する。J/(K−F)ビートそれぞれについて「K−F」ビットが伝送される。分割により残りが出た場合はさらに1ビートが使用される)。
他の態様によれば、伝送用に「J」ビットを保持する第1の電子ユニット内のデータの第1ブロックと、「J」ビットを有するデータの第2ブロックを保持することが可能な第2の電子ユニット内のストレージと、第1の電子ユニットを第2の電子ユニットに結合する「K」信号導電体を有し、「F」の障害のある信号導電体および「K−F」の障害のない信号導電体を有する信号バスと、第1の電子ユニットおよび第2の電子ユニットに結合され、信号バス上で「F」の障害のある信号導電体および「K−F」の障害のない信号導電体を識別すること、ならびに第1の電子ユニットおよび第2の電子ユニット内に障害識別情報を格納することが可能な、診断ユニットと、障害識別情報に応答して、「K−F」の障害のない導電体のみを使用し、「J/(K−F)」ビートおよび残りがある場合は追加のビートを使用して「J」ビットのデータを伝送する、第1の電子ユニット内の駆動シーケンサと、を有する、第1の電子ユニットから第2の電子ユニットにデータの「J」ビット・ブロックを伝送するための装置が提供される。
好ましい実施形態では、データの第1ブロックは、一度に「K」ビットのグループを選択することによって選択可能である。
好ましい実施形態では、駆動シーケンサは、データの第1ブロックから一度に「K−F」ビットを選択すること、および選択された「K−F」ビットを信号バスの「K−F」の障害のない信号導電体上で駆動することが可能であり、さらに駆動シーケンサは、「J/(K−F)」に残りがある場合は追加のビートについて「K−F」ビットより少ないビットを選択することができる。
好ましい実施形態では、駆動シーケンサは使用不可にすることが可能なドライバをさらに有し、駆動シーケンサは障害のある信号導電体に結合されたドライバを使用不可にする。
好ましい実施形態では、第2の電子ユニットは、信号バスおよび診断ユニットに結合された受信シーケンサをさらに有し、受信シーケンサは一度に「K−F」ビットをデータの第2ブロックに格納することが可能であり、「K−F」ビットは信号バスの「K−F」の障害のない信号導電体から受信され、さらに受信シーケンサは、「J/(K−F)」に残りがある場合は「K−F」ビットより少ないビットを選択することができる。
他の態様によれば、第1の電子ユニットから第2の電子ユニットへ信号バスを介してデータ・ブロックを伝送するための方法が提供され、信号バス内の障害のない信号導電体を識別するステップと、伝送シーケンスを使用して第1の電子ユニットから第2の電子ユニットへデータ・ブロックを伝送するステップと、を有し、伝送シーケンスは信号バス内のすべての障害のない信号導電体を利用し、伝送シーケンスは、データ・ブロックの伝送を完了するために最低数のビートを使用する。
好ましい実施形態では、前述の方法は、信号バス内の障害のある信号導電体を識別するステップと、障害のある信号導電体に結合されたドライバを高インピーダンス状態に切り替えるステップと、をさらに有する。
好ましい実施形態では、障害のない信号導電体はパワー・オン・シーケンス中に識別される。
好ましい実施形態では、障害のない信号導電体は、パリティ・エラー、エラー修正コード・エラー、または巡回冗長検査エラーの結果として実行されるワイヤ・テストによって識別される。
次に本発明の諸実施形態について、単なる例として以下の図面を参照しながら説明する。
しかしながら、添付の図面は本発明の単なる典型的な諸実施形態を示したものに過ぎず、その範囲を限定するとみなされることはなく、他の等しく効果的な諸実施形態が可能であることに留意されたい。
好ましくは、内部の信号導電体に障害がある信号バスによって、第2の電子ユニットに結合された第1の電子ユニットを有する電子システムの、連続するが性能低下したオペレーションを可能にする、方法および装置が提供される。信号バス内の障害のない信号導電体が識別され、すべての障害のない信号導電体を利用する伝送シーケンスで、伝送を完了するための最低数のビート(バス・サイクル)を使用して、第1の電子ユニットが第2の電子ユニットへデータ・ブロックを伝送する。第1の電子ユニットは、「K」の信号導電体を有する信号バスを介して「J」ビットを有するデータ・ブロックを伝送するように設計される。第2の電子ユニットはデータ・ブロックを受信する。電子システムは、「ワイヤ・テスト」または他の手段を使用して、信号バス内の障害のある信号導電体を識別し、障害のある信号導電体の識別を第1の電子ユニットおよび第2の電子ユニットに格納する。障害のある導電体の数が「F」である。第1の電子ユニットは、障害のある信号導電体の識別を使用してその伝送を変更し、伝送を実施するために1つまたは複数の追加ビートを使用して、障害のない「K−F」信号導電体を介して「J」ビット・ブロックを送信する。第2の電子ユニットは、障害のある信号導電体の識別を使用し、障害のある「K−F」信号導電体を介して「J」ビット・ブロックを受信する。一般に「F」は「K−1」までの任意の数とすることが可能であるが、説明を簡単にするために、以下の例では単一の障害が想定される。さらに説明を簡単にするために、以下の例では、8ビット信号バスを介して64ビットのデータ・ブロックが転送されると想定する。
図1は、全体として100と示された電子システムの高水準ブロック図である。電子システム100は、以下でチップ1と呼ばれる第1の電子ユニット1と、以下でチップ5と呼ばれる第2の電子ユニット5とを有する。電子ユニット1および電子ユニット5は、半導体チップ、モジュール、プリント配線板(PWB)、または電子格納装置(enclosure)を含むがこれらに限定されることのない、任意の電子構成要素とすることができる。「チップ」を使用して、説明のための具体例が提供される。チップ1は、各ビート(バス・サイクル)上で伝送されることになるビット数、および伝送を完了するために必要なビート数を定義する伝送シーケンスを使用して、チップ5へと駆動しなければならないデータの第1ブロック10を含み、これはチップ5でデータの第2ブロック50に格納されることになる。転送が成功した後、データの第2ブロック50は、伝送開始以前のデータの第1ブロック10と同じである。データの第1ブロック10およびデータの第2ブロック50は一般に各チップのレジスタに格納されるが、キャッシュまたは他のメモリなどの任意の形のストレージとすることも可能である。データの第1ブロック10からのデータは、信号バス95を介してチップ1からチップ5へと転送される。図1の例におけるデータの第1ブロックは8バイト(すなわち64ビット)を含む。図1では、信号バス95は8つの信号導電体を有するように示される。前述の経済的および物理的な点から、信号バスは通常「狭く(narrow)」(すなわち、比較的少ない信号導電体を有し)、転送されるデータ・ブロック内のビット数よりもかなり狭い。信号バス96は例示のために8つの信号導電体を有するように示されているが、これよりも広いかまたは狭い信号バスが企図され、さらに信号バスは、パリティまたはエラー修正コード信号導電体を具体化することも可能である。信号導電体上に障害(ドライバまたはレシーバの障害を含む)がない場合、8つの信号バス・サイクル(ビート)を使用して、データの第1ブロック10内のすべてのデータがチップ5に転送される。各ビート中に、情報の8ビット(1バイト)の選択グループが伝送される。選択グループは、信号バス95を駆動するドライバの入力へとルーティングするために、データの第1ブロック10から(または以下で論じるように他のストレージから)選択されるビット・グループである。図1で10A〜10Hとして示されるバイト0〜7は所定の順序で、この例ではデータのブロック10から順番に選択され、信号バス95を介して一度に1バイトが伝送される。チップ5は各バイトを受信し、各バイトをデータの第2ブロック50の50A〜50Hと示されたバイト0〜7に格納する。
データの第1ブロック10およびデータの第2ブロック50は、データの第1ブロック10およびデータの第2ブロック50内のデータの各バイトをそれぞれ駆動シーケンサ11および受信シーケンサ51に結合する、1バイト幅のバスを有するように示されるが、他のインプリメンテーションも企図される。一実施形態(図示せず)では、たとえばデータの第1のブロック50は、データが一度に8ビットだけシフトされるシフト・レジスタであり、シフト・レジスタの単一バイトのみが駆動シーケンサ11に結合される。他の実施形態(図示せず)では、データの第1ブロック10は8つの8ビット・レジスタのレジスタ・スタックであり、関連する3ビット・アドレスを有するレジスタ・スタックは、スタック内の任意のレジスタをアドレス指定することができる。チップ5のデータの第2ブロック50について、同様の実施形態が企図される。
図1では、信号バス95の信号導電体のうちの1つに障害96が示される。障害96は、信号導電体の部分95Bと信号導電体の部分95B’とを分離する。障害96は、信号導電体内の不連続または切れ目である場合があり、時には「オープン回路」と呼ばれる。障害96は、電源への望ましくない接続である場合もある。いずれの場合も、部分95Bおよび95B’からなる信号導電体は確実に情報を伝送することができない。障害96は信号バス95上の2つの信号間の短絡である場合もあり、信号バス95は2つの障害を有することになるが、現在の例では単一の障害を想定している。2つの障害に対処するためには、図の例で示された以外に追加の論理ブロックが必要である。しかしながら、当業者であれば理解されるように、追加の論理は図示された論理と同様である。
システムの立ち上げ(bringup)時あるいはパリティ・チェック、CRC、またはECCエラーに応答して実行される「ワイヤ・テスト」中に、障害が識別され、診断ユニット98に格納される。障害の通信は信号導電体91および信号導電体92を介して送られる。信号導電体91および92は単一の信号導電体であるか、または複数の信号導電体を有するバスとすることができる。診断ユニット98は、電子システムの障害を検査する任意のユニットである。たとえばIBM(IBM Corporationの商標)のiSeries(IBM Corporationの商標)コンピュータでは、診断ユニットは「サービス・プロセッサ」と呼ばれる。
図2は、信号バス95に障害がない場合に、信号バス95を介してデータの第1ブロック10におけるデータの通常の転送中に実行される伝送シーケンスを示す。第1のビート中にバイト0が転送される。第2のビート中にバイト1が転送される。最終バイトであるバイト7は、第8番ビートで転送される。
図3は、信号バス95内の信号伝導体のうちの1つに障害がある場合、信号バス95を介してデータの第1ブロック10におけるデータの転送を実施する伝送シーケンスを示す。例示のために、信号バス95の信号導電体「Z」上のビットは障害が原因で転送することができない。チップ1の駆動シーケンサ11は障害を認識しているが、データ転送の最初の8つのビートそれぞれについて1バイト(この例では)の選択グループを選択する。これは、障害がない場合のオペレーションと同様である。図3は、各ビートのビット「Z」が転送されないことを示す。(たとえば、バイト0、ビット「Z」なしは、バイト0がビート1中にドライバのデータ入力にルーティングされたが、バイト0のビット「Z」は信号導電体「Z」上の障害96が原因で転送されなかったことを意味する。)有利には、ビット「Z」のドライバは非導電状態(しばしば「使用不可」または「トライステート(tristate)」と呼ばれる)に置かれる。識別された障害が短絡である可能性があり、障害が接地電源に対する短絡である場合は大量の電力が消散される可能性があり、特定のビットが論理「1」である。駆動シーケンサ11(図1を参照)は、第1の8つのビート中に送信されなかった8ビットを格納し、各ビートについてビット「Z」を格納する。第9番ビート中に、格納された8つの「Z」ビットを含む選択グループがドライバにルーティングされる。「Z」ビットのうちの7つが転送される。8番目の「Z」ビットは、障害のために第9番ビート上では転送できない。その後8番目の「Z」ビットは、信号バス95内の障害のない信号導電体を使用して、第10番ビート上で転送される。
データ・ブロック10内のビット数(64ビット)および信号バス95内の信号導電体の数(8)は単なる例示的な値であり、任意のサイズのデータ・ブロックおよびバス内の任意数の信号導電体が企図される。さらに電子システムの中には、データ・ブロックのデータ部分の伝送に先立って、伝送されることになるブロックのサイズに関する情報を含む「ヘッダ」を送信することで、データ・ブロックの変更が可能なものもある。本考察では、ヘッダはデータ・ブロックの一部とみなされる。
図4は、駆動シーケンサ11の詳細なブロック図を伴うチップ1を示す図である。駆動マルチプレクサは、データの第1ブロック10の8バイトそれぞれに結合され、データの第1ブロック10の8バイトのうちのいずれかを駆動マルチプレクサ20の出力に選択することができる。駆動マルチプレクサ20は、結合35によって駆動ビット・レジスタ27にも結合される。駆動ビート・コントローラ23は、9バイト(すなわちデータの第1ブロック10からの8バイト、および駆動レジスタ27からのバイト)のうちのどれが駆動マルチプレクサ20によって選択されるかを判別する信号30によって、駆動マルチプレクサ20に結合される。選択されたバイトはドライバ24のデータ入力に結合される。選択されたバイトは、駆動セレクト21にも結合される。駆動ビート・コントローラ23からの信号34は、信号バス95内のどの信号導電体に障害があるかを駆動セレクト21に伝える。これは前述のように、現在選択されたバイト内のビットであり、信号バス95内の信号導電体の障害96により、後で伝送するために駆動ビット・レジスタ27に格納されていなければならない。選択されたビットは駆動ビット・レジスタ27に結合され、駆動ビート・コントローラ23からの信号32によって制御されるように駆動ビット・レジスタ27に格納される。有利には、駆動ビット・レジスタ27はシフト・レジスタであるが、他の実施形態も企図される。8ビート後、駆動ビット・レジスタ27は障害96によって伝送できなかった8ビット(バイト0〜7それぞれから1ビット)すべてを含む。第9番ビートで、駆動ビート・コントローラ23の制御下の信号30により、駆動マルチプレクサ20によって駆動ビット・レジスタ27内の8ビットが選択される。これら8ビットのうちの7ビットは、信号バス95によって再度伝送される。1ビットは障害96により依然として送信できない。さらに駆動ビート・コントローラ23は、駆動ビット・レジスタ27内のビットの「回転」を実行するように、結合32を介して駆動ビット・レジスタ27に信号通知する。図4では、信号33が駆動ビット・レジスタ27の第1エンドを駆動ビット・レジスタ27の第2エンドに結合する。回転中、駆動ビット・レジスタ27の一番右の7つのビットが1ビット位置ずつ左にシフトし、一番左のビットが回転して一番右のビットになる。第10番ビート中に、駆動ビート・コントローラ23の制御下で、駆動マルチプレクサ20によって駆動ビット・レジスタ27の今回転したコンテンツが再度選択される。7つのビットは信号バス95を介して再度伝送され、1つのビットはこの例の障害96により伝送されない。しかしながら、駆動ビット・レジスタ27での回転オペレーションにより、第9番ビートで送信されなかったビットは異なる信号導電体を介して駆動され、第10番ビートで首尾良く伝送される。電子システムが、複数の障害のある信号導電体をサポートするように設計されている場合、駆動ビット・レジスタ27は、特定のビートで転送できない追加ビットを保持するために複製され(図示せず)、駆動セレクト21は、駆動マルチプレクサ20の出力から追加ビットを選択し、この追加ビットを駆動ビット・レジスタ27の複製に格納するように設計される。駆動ビット・レジスタ27内の「回転」オペレーションは例示のために説明したものであるが、伝送できなかったビットを第10番ビートで障害のない信号導電体にルーティングされるように移動させるのに好適な、駆動レジスタ27におけるビットの任意の所定の動きが企図される。他の実施形態(図示せず)では、駆動マルチプレクサ20は前述のように駆動ビット・レジスタ27に結合された第9番入力バイトを有するが、さらに、駆動ビット・レジスタ27のビットに結合された第10番入力バイトも有し、駆動ビット・レジスタ27のビットは、駆動ビット・レジスタ27の第9番バイト結合とは異なる所定の順序で駆動マルチプレクサ20に結合される。駆動ビート・コントローラ23は、駆動マルチプレクサ20が、第9番ビート中の第9番入力バイト結合および第10番ビート中の第10番入力バイト結合を選択するように制御する。
図5は、各ビートに先立つ駆動ビット・レジスタ27のコンテンツを示す図である。ビット「Z」は、障害のある信号バス95内の信号導電体上で駆動されることになるデータのビットである。ビート1に先立って、駆動ビット・レジスタ27にシフトされているビットはない。ビート1中には、バイト0のビット「Z」が駆動ビット・レジスタ27の一番右のビット位置にシフトされる。ビート2中には、バイト1のビット「Z」が駆動ビット・レジスタ27の一番右の位置にシフトされる。ビート8の後(図5ではプレ・ビート9と示される)、各バイトのビット「Z」が駆動ビット・レジスタ27に格納される。これら8つのバイトは、前述のように第9番ビート中に駆動マルチプレクサ20によって選択される。第9番ビートの後、前述のように駆動ビット・レジスタ27で回転オペレーションが実行され、第10番ビート用に選択されたデータは図5では「プレ・ビート10」として示される。すべての「Z」ビットは駆動ビット・レジスタ27に残ったままであるが、1ビット位置ずつ回転されるため、ドライバ24によって信号バス95上の異なる信号導電体で駆動するようにルーティングされることになる。したがって、第9番ビートでは転送できなかった「Z」ビットは、第10番ビートで首尾良く転送される。
図6は、チップ5の拡張ブロック図である。受信シーケンサ51は、信号バス95上で信号を受信するのに好適なレシーバ60を含む。受信シーケンサ51は、信号92によって前述の診断ユニット98に結合されるレシーバ・ビート・コントローラ61も有する。レシーバ・ビート・コントローラ61には、障害のある信号導電体が信号バス95内にある場合はそれがどれであるかが、診断ユニット98によって伝えられる。
ディストリビュータ63は、内部バス56でレシーバ60と結合され、信号55(複数の信号を有する場合がある)によってレシーバ・ビート・コントローラ61と結合される。ディストリビュータ63は、レシーバ60によって出力された信号を、データの第2ブロック50内の適切なビットに分配することができる。障害がない場合、ディストリビュータ63は(この例では)8ビートそれぞれで、単に1バイトのデータを内部バス56からデータの第2ブロック60の適切なバイトに移動させるだけである。(前述の考察により)信号導電体「Z」に障害96が存在する場合、(この例では)2つの追加ビートが必要である。第9番ビート中、内部バス56は7つの有効ビットおよび1つの無効ビットを有する。第9番ビートでは、内部バス56上の8ビットそれぞれが、データの第2ブロック50の各バイト(すなわちバイト0〜7)にあるそれぞれ「Z番目」のビットに駆動される。第9番ビートの後、データの第2ブロック50は63の有効ビットおよび1つの無効ビットを含む。第10番ビート中、内部バス56は再度7つの有効ビットおよび1つの無効ビットを有する。有効ビットのうちの6つのみが、第9番ビート中にデータの第2ブロック50に首尾良く書き込まれたデータである。7番目の有効ビットは、第10番ビート中にデータの第2ブロック50内の残りの無効ビットを含むバイトの「Z番目」のビットに向けて送られる。たとえば、信号バス95のビット2上に障害96が存在する場合、第10番ビートでデータの第2ブロック50に書き込まれたビットはバイト2のビット2であるが、伝送されたデータは前述のように駆動ビット・レジスタ27内で1ビットずつ回転されているため、この書き込みのためのデータは信号バス95のビット3から取得される。
図7は、ディストリビュータ63の1ビットに対してディストリビュータ機能を実行する論理63Aの例示セットをより詳細に示す図である。レジスタ・ビット70は、データの第2ブロック50のうちの1ビットであり、図示された例では、バイト「M」のビット「N」である。レジスタ・ビット70のデータ入力Dはセレクタ72に結合され、これが、10未満の任意のビートについて内部バス56の「第N番」ビットである「rcvrビットN」を選択する。第10番ビートでは、伝送に先立ってビット・レジスタ27を駆動することによって実行されるデータの回転を反映するために「rcvrビットN(回転済み)」が選択される。レジスタ・ビット70のデータ入力D上のデータは、入力C上の信号によって刻時される。「CLK」は、図7に示された論理式に従ってゲートされるシステム・クロックである。レジスタ・ビット70は、CLKがアクティブであり「ビートM」がアサートされた場合、クロックを受信することになる。たとえば、バイト2のすべてのビットが第2ビート上で刻時されることになる。レジスタ・ビット70は、信号バス95上のビット「N」に障害がある場合、第9番ビート中にも(CLKがアクティブの間に)クロックを受信することになる。たとえば、信号バス95のビット2に障害があり、レジスタ・ビット70がデータの第2ブロック50内の任意のバイトのビット2である場合、レジスタ・ビット70は刻時されることになる。レジスタ・ビット70は、第10番ビートがデータの第2ブロック50に書き込まなければならない最終ビットである場合、このビート中にも(CLKがアクティブの間に)刻時されることになる。信号バス95のビット2に障害がある例について続けると、レジスタ・ビット70がバイト2のビット2を表す場合、レジスタ・ビット70は第10番サイクルでクロックを受信することになる。ディストリビュータ63は、信号バス95上のビットに障害があるとすればどのビットにあるか、および現在は何番ビートであるか、についての情報を受け取る。
図8は、本発明の他の実施形態を示す。この実施形態も、信号バス内の信号導電体に障害のある電子システムの連続オペレーション機能を提供し、実際には、障害なしおよび障害ありのどちらのオペレーションでも前述の実施形態と同じ数のサイクルを使用する。この実施形態では、以下で説明するように、ビットが選択される方法が異なる。図8の実施形態は、図1の診断ユニット98と同様に、信号バス上の障害を識別すること、およびその障害の識別を第1の電子ユニットおよび第2の電子ユニットに送ることが可能な、診断ユニット298を示す。
チップ201(前述のように「チップ」は例示のためにのみ使用され、実際は、チップ201はモジュール、PWB、電子格納装置、または任意の他の電子ユニットとすることができる)は、データの第1ブロック201をチップ205内のデータの第2ブロック250に転送する必要がある。駆動チップ201と同様に、受信チップ205は任意の電子ユニットを表すことが意図される。図8に示された例では、データの第1ブロック201が64ビット(0〜63)を有し、データの第2のブロック250が64ビット(0〜63)を有する。データの第1ブロック201およびデータの第2のブロック250は、物理的にレジスタ、キャッシュ、シフト・レジスタ、または任意の他のストレージ手段に常駐することができる。信号バス295は8ビットを有する。第1の部分295Bおよび第2の部分295B’を有する信号導電体には、障害296があるものとして示される。障害296はオープン回路または短絡とすることが可能であり、どちらのタイプの障害も信号導電体を動作不能にする。図1の障害96と同様に、障害296は信号バス295の信号導電体間の短絡とすることができるが、この例では説明をわかりやすくするために単一の障害について論じる。信号NENは、信号バス295上でドライバを論理的に使用不可(トライステート)にするためにしばしば使用される、「非使用可能(not enable)」信号である。オプションであるが、これは他の信号と論理的に組み合わせて、信号バス295全体のすべてのドライバ、または障害のある信号導電体に結合された単一のドライバのみを使用不可にする方法について説明しやすくするために示される。
障害296がない場合、駆動シーケンサ211は、データの第1ブロック201から内部バスSEL8A(0〜7)を介して一度に8ビットの「障害のない選択グループ」を選択し、この8ビットを8ビートそれぞれで信号バス295を介してほぼ並列に駆動する。受信シーケンサ251は、各ビートから8ビットのデータを受信し、SEL8B(0〜7)を介してこの8ビットをデータの第2ブロック250内の適切なビットに転送する。前述のように、信号導電体内の障害296の存在および識別は、診断ユニット298により、駆動シーケンサ211および受信シーケンサ251へそれぞれ信号291および292を介して伝えられる。
障害296が存在する場合、駆動シーケンサ211は、データの第1ブロック201から内部バスSEL7A(0〜6)を介して一度に(この例ではビート1〜9で)7ビットの「障害のある選択グループ」を選択し、この選択された7ビットを信号バス295の7つの障害のない信号導電体を介して転送する。次に受信シーケンサ251が1ビートにつき7ビットを受信し、SEL7B(0〜6)を介してこれらをデータの第2ブロック250に転送する。(この例の)第10番ビートでは、この例の最終ビットであるビット63が選択されて障害のない信号導電体で伝送され、この最終ビットはデータの第2ブロック250の正しいビットに格納される。図9および図10は、障害が存在しない場合の8つのビートおよび伝送されるデータと、障害が存在する場合の10のビートおよび各ビート中に伝送されるビットとを示す。
図11は、駆動シーケンサ211の例示的実施形態を示す。ビット障害レジスタ259は8ビットを有し、各ビットは信号バス295内の信号導電体に対応する。信号導電体に障害がある場合、ビット障害レジスタ259内の対応するビットは論理「1」に設定され、奏でない場合、対応するビットは論理「0」に設定される。したがって、BF(0)=「1」は、信号バス295のビット0上に障害があることを意味する。ORゲートのカスケードは、論理「1」を有するビット障害レジスタ259内のビットで始まる論理「1」を生成する。たとえばBF(3)=「1」の場合、F0、F1、F2は「0」であるが、F3、F4、F5、F6、およびBIT FAULTは「1」である。
BIT FAULT=「1」の場合、障害が存在し、(この例の)データ転送は10ビート、最初の9ビートそれぞれの7ビット、および第10番ビートの1ビットで構成されることになる。
BIT FAULT=「0」の場合、セレクタAA0〜AA7はバスSEL8A(0〜7)からデータを選択する。BIT FAULT=「1」の場合、セレクタAA0〜AA7はSEL7A(0〜6)からデータを選択するが、こうしたビットの一部またはすべては以下で説明するようにシフトすることができる。セレクタA0〜A5は、SEL7A(0〜6)のすべてのビットを障害のない信号導電体にシフトするためのメカニズムを提供する。
たとえば、信号バス295の信号導電体ビット(0)であるBUS(0)が、障害を有するものと識別されたと想定する(BUS(0)のドライバ、信号導電体、およびレシーバ回路を含む可能性がある)。BUS(0)のドライバは使用可能入力Eを有し、入力Eが論理「0」の場合にドライバを使用不可にする。BUS(0)が障害を有する場合、BF(0)=「1」である。BF(0)はNOR A0への入力であり、BF(0)=「1」は、BUS(0)のドライバが使用不可であることを保証する。F0はセレクタA0を制御し、F0=「1」は、セレクタAA1を介してBUS(1)のドライバのデータ入力Dに結合されるセレクタA0でSEL7A(0)を選択する。同様に、SEL7A(1)はBUS(2)のドライバの入力Dにルーティングされ、SEL7A(2)はBUS(3)のドライバの入力Dにルーティングされる、という具合である。SEL7A(6)は直接SELAA7にルーティングされ、BUS(7)で駆動される。この方法では、BUS(0)は迂回され、SEL7Aの7つのビットは障害のない信号導電体BUS(1〜7)で駆動される。
より簡単ではあるが第2の例として、BUS(4)上に障害が存在する場合、SEL7A(0)はBUS(0)にルーティングされて駆動し、SEL7A(1)はBUS(1)で駆動し、SEL7A(2)はBUS(2)で駆動し、SEL7A(3)はBUS(3)で駆動する。SEL7A(4)はBUS(5)で駆動し、SEL7A(5)はBUS(6)で駆動し、SEL7A(6)はBUS(7)で駆動する。BUS(4)のドライバはBF(4)によって使用不可とされる。SEL7Aの7つのビットは、障害のない信号導電体に再度ルーティングされる。
信号バス295は、NOR A0〜A7へのアサート信号であり、8つすべてのドライバの使用可能入力で論理「0」を保証する、NEN=「1」によって、完全に使用不可とすることが可能である。NENは、設計者が信号バス295上のすべてのドライバを論理的に使用不可にできることを希望する場合に使用される、オプション信号である。
当業者であれば、説明をわかりやすくするために示された詳細な論理では単一の障害のある信号導電体をサポートしているが、「F」が多くなるにつれて一度により少ない信号導電体をルーティングするために、追加の選択グループ(たとえば、それぞれ2つまたは3つの障害のある信号導電体に対処するための「SEL6A」、「SEL5A」)を追加のセレクタに結合できることを理解されよう。
図12は、受信シーケンサ251の実施形態を示す。ビット障害受信レジスタ260は、ビット障害レジスタ259と同じビット・パターンを含み、各ビットは信号バス295内の信号導電体に対応する。ビット障害レジスタ260は、信号292を介して診断ユニット298からロードされる。記載されたように、ビット障害受信レジスタ260の論理「1」を含み、これに続く論理「1」を生成するために、ORゲートのカスケードが再度提供される。たとえば、RBF(0)=「1」の場合、RF0、RF1、RF2、RF3、RF4、RF5、RF6、およびRECEIVE BIT FAULTはすべて「1」である。
レシーバB0〜B7はそれぞれBUS(0〜7)を受信し、それぞれSEL8B(0〜7)を出力する。信号導電体に1つの障害が存在する場合、7つのビットのみが(7つの障害のない信号導電体で)伝送され、7つのビットはSEL8B(0〜7)からSEL7B(0〜6)に正しくマッピングされなければならない。このマッピングは、事実上、7つのビットを信号バス295の7つの障害のない信号導電体に導くために駆動シーケンサ211によって実行されるマッピングに対応する。
RF0〜RF7およびセレクタB0〜B6がこのマッピングを提供する。RBF(0)=「1」の場合、(信号バス295の信号導電体ビット「0」に障害があることを示す)RF0=「1」であり、セレクタB0はSEL7B(0)として出力するためにSEL8B(1)を選択するように制御される。同様に、信号RF1、RF2、RF3、RF4、RF5、およびRF6を使用して、SEL8B(2)はSEL7B(1)に駆動され、SEL8B(3)はSEL7B(2)に駆動され、SEL8B(4)はSEL7B(3)に駆動され、SEL8B(5)はSEL7B(4)に駆動され、SEL8B(6)はSEL7B(5)に駆動され、SEL8B(7)はSEL7B(6)に駆動される。同様に、BUS(6)に障害がある場合、BUS(0〜5)はSEL7B(0〜5)にルーティングされ、BUS(7)はSEL7B(6)にルーティングされる。
一実施形態(図示せず)では、複数の障害のある信号導電体に対処するように設計され、障害のない信号導電体から、データの第2ブロック250に結合されたより少ない信号を有する信号グループへと信号をルーティングする際に使用される追加のセレクタを備えた、追加のセレクタおよびORが使用される。たとえば前述のように、一実施形態で2つの障害のある信号に対処する場合、(上記の命名規則を使用して)、「SEL6B」信号セットならびにSEL7B信号セットが必要である。
図13は、受信された適切なビットを受信レジスタ250の正しいビットにゲートするために使用される詳細な論理の一実施形態を示す。診断ユニット298からの信号292は、ビート番号を含む。代替の実施形態(図示せず)では、受信シーケンサ251はそれ自体でビートをカウントする。グループ復号278は、ビート番号および受信ビット障害(図12からのビット障害受信レジスタ260)を使用して8ビットの「EN8−BIT−GROUP」ワードを生成し、そのうちの1ビットが、信号バス295上に障害が存在しない場合、特定ビートに対してSEL8Bからデータを受信しなければならない、受信レジスタ250内の8ビットの刻時を制御するために、各ビートに対して使用可能となる。グループ復号278は、10ビット・ワード「EN7−BIT−GROUP」も出力し、そのうちの1ビットが、信号バス295の信号導電体上に障害が存在する場合に発生する10ビートそれぞれに対して使用可能となる。レジスタ・ビット272のデータ入力(受信レジスタ250内の特定ビット「X」)はセレクタ270に結合され、これが、RECEIVE BIT FAULT=「1」の場合にバスSEL7Bのビット「M」を選択し、RECEIVE BIT FAULT=「0」の場合にSEL8Bのビット「N」を選択する。たとえば、SEL7B(0)は、受信レジスタ250のビット0、6、13、55、および64に結合される。SEL7B(1)はビット1、7、14、56に結合される。SEL8B(0)はビット0、7、15、56に結合される。
ANDゲート271は、第1の入力でシステム・クロックCLKを受信する。AND 271の第2の入力は、図12で生成されるように示されたRECEIVE BIT FAULTによって制御されるセレクタ277に結合される。障害が存在する場合、RECEIVE BIT FAULT=「1」であり、セレクタ277は「EN7−BIT−GROUP(A)」を選択することになり、ここで「A」は10ビット・ワードのビットであり、「EN7−BIT−GROUP」274は、レジスタ・ビット272が入っているデータの第2ブロック250の特定の7ビット・グループに適用される。たとえば、データの第2ブロック250のビット0〜6は、ビート1によって転送された7ビットが送信するビット・グループに入っており、第1のビート中にそれら7つのレジスタ・ビットに対するクロックを使用可能にするために、EN7−BIT−GROUPのビット0は「1」となる。第10番ビートで「EN7−BIT−GROUP」内のビットが「1」の場合、(この例では)レシーバ・レジスタ250の1つのレジスタ・ビット(すなわちビット63)のみが影響を受けることに留意されたい。
前述のように、一実施形態では、追加の障害のある信号導電体に対処する。たとえば、2つの障害のある信号導電体に対処する場合、グループ復号278は6ビット・グループならびに7ビット・グループおよび8ビット・グループを使用可能にしなければならない。当業者であれば理解されるように、セレクタ270には適切な「SEL6B」ビット用の他の入力がなければならず、セレクタ277は適切な「EN6−BIT−GROUP」ビット用の第3の入力に対処しなければならない。
図14は、障害信号導電体を有する可能性のある信号バスを介した、第1の電子ユニットから第2の電子ユニットへのデータ・ブロックの転送を可能にする、伝送シーケンス方法300の高水準流れ図を示す。この方法はブロック301で開始される。ブロック302では、診断ユニットが信号バス内で障害のある信号導電体および障害のない信号導電体を決定する。第1の電子ユニットは、最低数のビートを使用し障害のないすべての信号導電体を利用する伝送シーケンスを使用して、信号バスを介してデータの第1のブロックを第2の電子ユニットに転送する。第1の電子ユニットは、データの「J」ビット・ブロックを「K」ビット信号バスの第2の電子ユニットに伝送しなければならない。「F」は、診断ユニットによって識別された障害のある信号導電体の数である。「F」=0の場合、障害は識別されなかった。本発明では、好ましくは「K−1」までの任意数の障害が企図される。ブロック303では、診断ユニットが第1の(駆動)電子ユニットおよび第2の(受信)電子ユニットで障害状況を設定する。ブロック304では、転送を完了するのに十分なバス・サイクル(ビート)を使用して、信号バス内の障害のない信号導電体を介してデータの「J」ビット・ブロックが伝送される。第2の電子ユニットは、障害のない信号導電体を介してデータの「J」ビット・ブロックを受信する。この方法はブロック305で終了する。有利には、障害のある信号導電体に結合されたドライバは使用不可となる。
図15は、方法300のブロック304の一実施形態である、方法320の流れ図を示す。方法はブロック321で開始される。ブロック322で、ビート・カウントが初期設定される。ブロック323で、データのバイトが選択される。選択されたビット数は、データ・ブロックが転送される際に介する信号バス内の信号導電体の合計数であり、ここでは1バイト幅の信号バスであると想定して例示のために「バイト」が使用される。例示のために64ビットのデータ・ブロックが想定されるが、好ましくは本発明は64ビットのデータ・ブロックに限定されるものではない。説明を簡単にするために、単一の障害のある信号導電体が想定されるが、上記で説明したように「K−1」までの任意数の障害ビットが想定される。ブロック324で、障害のある信号導電体を介した伝送が予定された選択されたバイトのビットが格納される。有利には、ビットはシフト・レジスタに格納され、シフト・レジスタは制御信号に応答してそのビットを回転させることができる。ブロック325で、選択されたバイトがドライバのデータ入力にルーティングされ、信号バスを介して駆動される。障害のある信号導電体は、障害のある信号導電体に結合されたドライバのデータ入力にルーティングされたビットを伝送することができず、有利には、障害が短絡である場合に発生し得る高電流が流れるのを防ぐために、そのドライバは使用不可にされる(トライステートされる、または高インピーダンス状態に切り替えられるとも言われる)。ドライバが使用不可になる場合、「高インピーダンス」とは、ドライバの出力が駆動されている伝送線よりも少なくとも1桁高いインピーダンスであることを意味し、通常は数十万オーム、あるいはメガオームの場合もある。ブロック326で、通常の(障害のない信号導電体)伝送に必要なビート数が完了したかどうかがチェックされる。完了していない場合、ブロック342でビート・カウントが増分され、制御はブロック323に渡される。通常のビート・カウントに達している場合、ブロック327で障害が識別されたかどうかがチェックされる。識別されない場合、伝送は完了する。障害が識別された場合、ブロック328は格納されたビットのバイトを選択し(この例では、64ビットのデータ・ブロックが8ビット・バスを介して伝送されることになり、単一の障害が想定され、その結果8ビットが格納される)、それらを信号バスのドライバのデータ入力にルーティングする。8ビットのうちの7ビットは、前述のように他のビートで伝送される。ブロック329は格納されたデータ内でビットを回転させ、その結果すべてのビットが異なる所定の位置に移動される。前述のように、有利には、格納されたビットはすべてのビットが1ポジション移動されるビット回転が可能なシフト・レジスタにあり、一方のエンドにあるビットが他方のエンドにある第1のビット位置に回転される。ブロック340で、格納されたビットが再度選択され、信号バス上のドライバのデータ入力にルーティングされて、最終ビートで駆動される。ここで、前のバス・ビートで伝送できなかったビットが異なるドライバに向けて送られ、障害のない信号導電体を介して首尾良く駆動される。第2の(受信)電子ユニットは障害のある信号導電体を認識しており、障害のある信号導電体が存在する場合に使用された伝送プロトコルがわかるように設計され、伝送されたビットを第2の電子ユニットのメモリの正しいビット位置に適切に移動させることができる。
図16は、図14のブロック304の第2の実施形態を示す。ブロック361は、信号バスを介してデータ・ブロックを第1の電子ユニットから第2の電子ユニットへ転送する方法を開始する。ブロック362でビート・カウントが初期設定され、転送されることになる合計ビット数と、信号バスで使用可能な障害のない信号導電体の数から、必要なビート数が決定される。ブロック363で、転送されることになるブロックからデータのグループが選択され、このグループのサイズは信号バス内の障害のない信号導電体の数に等しい。ブロック364で、選択されたデータのグループは、障害のない信号導電体を介して第1の電子ユニットによって第2の電子ユニットに伝送される。ブロック365は、最後のビートが完了したかどうかを判別し、完了していない場合、ブロック366はビート・カウンタを増分し、ブロック363に制御を渡す。最後のビートが完了している場合、制御はブロック367に渡され、ここで方法は完了する。
前述の内容は本発明の諸実施形態を対象とするものであるが、本発明の基本範囲を逸脱することなく本発明の他の実施形態を考案することが可能であり、その範囲は添付の特許請求の範囲によって決定される。
好ましい実施形態に従った、信号バスによって結合された2つの電子ユニットを示す高水準ブロック図である。各電子ユニットはデータ・ブロック用のストレージを有する。信号バスの1つの信号導電体上に例示的障害が示される。 (好ましい実施形態に従った)障害のない信号バスの、タイミング図および各ビート上を送信されるデータの記述を示す図である。 (好ましい実施形態に従った)障害のある信号導電体を備えた信号バスの、タイミング図および各ビート上を送信されるデータの記述を示す図である。 好ましい実施形態に従った、信号バスを介してデータ・ブロックを駆動する電子ユニットの詳細なブロック図である。駆動シーケンサの拡張ブロック図が示される。 好ましい実施形態に従った、データのビートが障害のある信号導電体を有する信号バスを介して送信される際の、図3に示された駆動ビット・レジスタ・ブロックのコンテンツを示す図である。 好ましい実施形態に従った、障害のある信号導電体を有する信号バスを介して駆動電子ユニットによって送信されたデータ・ブロックを受信する、電子ユニットを示す拡張ブロック図である。 好ましい実施形態に従った、図6に示されたディストリビュータ・ブロックの1ビット部分の細部を示す図である。 本発明の第2の実施形態を示す高水準ブロック図である。駆動電子ユニット(例示的な図では駆動チップ)が、障害のある信号導電体を有する信号バスを介して第2の電子ユニット(例示的な図では受信チップ)に結合される。障害のある信号導電体が識別されるか否かに応じて、伝送されることになるデータのブロックから異なるサイズのデータのグループが選択される。 本発明の実施形態に従った、通常のデータ伝送(すなわち障害のない信号導電体が識別された場合)に関するタイミング図を示す図である。 本発明の実施形態に従った、障害のある信号導電体が識別された場合のデータ伝送に関するタイミング図を示す図である。 第2の実施形態に従った、図8に示されたドライバ制御ブロックを示す詳細なブロック図である。 第2の実施形態に従った、図8に示されたレシーバ制御ブロックを示す詳細なブロック図である。 第2の実施形態に従った、図8に示された受信レジスタの特定ビットに正しいデータをラッチする制御論理を示す詳細なブロック図である。 本発明の一実施形態で開示された方法を示す、高水準流れ図である。 本発明の一実施形態に従った、図14の流れ図のブロック304の詳細な拡張を示す流れ図である。 本発明の一実施形態に従った、図14の流れ図のブロック304の詳細な代替の拡張を示す流れ図である。

Claims (5)

  1. ゼロから「K−1」の信号伝導体に障害がある「K」の信号導電体を有する信号バスを介して、第1の電子ユニットから第2の電子ユニットへデータの「J」ビット・ブロックを伝送するための方法であって、前記方法が、
    前記信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップと、
    前記信号バスにおいて障害ありおよび障害なしの信号導電体を識別するステップによって発見された情報を使用して、前記第1の電子ユニットおよび前記第2の電子ユニットにおける前記信号導電体の障害状況を設定するステップと、
    前記信号バスにおいて障害のある信号導電体の数「F」を決定するステップと、
    前記信号バスにおいて障害のない信号導電体の数「K−F」を決定するステップと、
    「J/(K−F)」ビートと、残りがある場合は追加のビートとを使用して、前記「K−F」の障害のない信号導電体を介してデータの「J」ビット・ブロックを伝送するステップと、を有する方法であり、
    前記伝送するステップが、
    前記データの「J」ビット・ブロックからデータの「K」ビット・グループを選択するステップと、
    前記「K−F」の障害のない信号導電体を使用して、前記データの「K」ビット・グループのうちの「K−F」ビットをビート上で伝送するステップと、
    前記信号バス内の前記障害のある「F」信号導電体により、前記ビート上で伝送できない前記「K」ビット・グループ内の前記「F」ビットを格納するステップと、
    前記データの「J」ビット・ブロックのうちのすべての「J」ビットが選択されるまで、前記3つのステップを反復するステップと、
    前記「K−F」の障害のない信号導電体のうちの1つまたは複数を使用して、前記格納された「F」ビットを1つまたは複数の追加ビート上で伝送するステップと、をさらに有し、
    前記「F」ビットを格納するステップが、
    前記「F」ビットのうちの少なくとも1ビットをシフト・レジスタの第1のエンドにシフトするステップを有し、
    前記追加ビート上で伝送するステップが、
    前記シフト・レジスタのビットのうちの少なくとも1つを障害のない信号導電体に伝送するステップ、をさらに有する、
    方法。
  2. 前記シフト・レジスタ内の特定ビットを、障害のない信号導電体に結合するために位置合わせするように移動するステップをさらに有する、請求項1に記載の方法。
  3. 前記第2の電子ユニットで「J/(K−F)」ビートについて1ビートあたり「K−F」ビットを格納するステップと、
    「J/(K−F)」で残りが生じる場合、追加ビート内に残りのビットを格納するステップと、をさらに有する、請求項1に記載の方法。
  4. 前記第1の電子ユニット上のデータの前記「J」ビット・ブロックからビットの「K−F」ビット・グループを選択するステップと、
    前記信号バスにおける前記「K−F」の障害のない信号導電体を使用して、前記ビットの「K−F」ビット・グループを前記第1の電子ユニットから前記第2の電子ユニットに伝送するステップと、
    すべての「K−F」ビット・グループが伝送されるまで前記ステップを反復するステップと、
    前記信号バスの追加ビートを使用して、前記第1の電子ユニット上に前記データの「J」ビット・ブロックの残りのビットがあればそれを前記「K−F」の障害のない信号導電体の一部またはすべてを使用して前記第2の電子ユニットに伝送するステップと、
    をさらに有する、請求項1に記載の方法。
  5. 第1の電子ユニットから第2の電子ユニットへデータの「J」ビット・ブロックを伝送するための装置であって、
    伝送用に「J」ビットを保持する前記第1の電子ユニット内のデータの第1ブロックと、
    「J」ビットを有するデータの第2ブロックを保持することが可能な第2の電子ユニット内のストレージと、
    前記第1の電子ユニットを前記第2の電子ユニットに結合する「K」の信号導電体を有し(Kは1より大きい)、1つの障害のある信号導電体および「K−1」の障害のない信号導電体を有する、信号バスと、
    前記第1の電子ユニットおよび前記第2の電子ユニットに結合され、前記信号バス上で前記1つの障害のある信号導電体および前記「K−1」の障害のない信号導電体を識別すること、ならびに前記第1の電子ユニットおよび前記第2の電子ユニット内に障害識別情報を格納することが可能な、診断ユニットと、
    前記障害識別情報に応答して、前記「K−1」の障害のない導電体のみを使用し、「J/(K−1)」ビートおよび残りがある場合は追加のビートを使用して前記「J」ビットのデータを伝送する、前記第1の電子ユニット内の駆動シーケンサと、
    「K」ビットを有するシフト・レジスタであって、各ビートの間、前記シフト・レジスタの第1のエンドで前記障害のある信号導電体に向けられるビットを受け取るように構成され、前記シフト・レジスタが一杯になると第1の回転のために回転され、前記第1の回転の間、前記シフト・レジスタの第2のエンドのビットが前記シフト・レジスタの第1のエンドで受け取られるように構成される、前記シフト・レジスタと、を有し、

    前記装置は、前記第1の回転に続いて、前記シフト・レジスタの「K−1」ビットを障害のない信号導電体に伝送するように構成され、
    前記シフト・レジスタは、さらに第2の回転のために回転され、前記第2の回転の間、前記シフト・レジスタの第2のエンドのビットが前記シフト・レジスタの第1のエンドで受け取られるように構成され、
    前記装置は、前記第2の回転に続いて、残りの伝送されていない「J」ビットを前記障害のない信号導電体に伝送するように構成される、
    装置。
JP2006525832A 2003-09-11 2004-09-10 障害条件に対するオートノミック・バスの再構成 Expired - Fee Related JP4392025B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/660,217 US7392445B2 (en) 2003-09-11 2003-09-11 Autonomic bus reconfiguration for fault conditions
PCT/EP2004/052135 WO2005024633A1 (en) 2003-09-11 2004-09-10 Autonomic bus reconfiguration for fault conditions

Publications (3)

Publication Number Publication Date
JP2007505380A JP2007505380A (ja) 2007-03-08
JP2007505380A5 JP2007505380A5 (ja) 2009-07-02
JP4392025B2 true JP4392025B2 (ja) 2009-12-24

Family

ID=34273623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006525832A Expired - Fee Related JP4392025B2 (ja) 2003-09-11 2004-09-10 障害条件に対するオートノミック・バスの再構成

Country Status (9)

Country Link
US (1) US7392445B2 (ja)
EP (1) EP1683018B1 (ja)
JP (1) JP4392025B2 (ja)
KR (1) KR20060061359A (ja)
CN (1) CN100419701C (ja)
AT (1) ATE367606T1 (ja)
DE (1) DE602004007681T2 (ja)
TW (1) TWI300527B (ja)
WO (1) WO2005024633A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070233930A1 (en) * 2006-03-14 2007-10-04 International Business Machines Corporation System and method of resizing PCI Express bus widths on-demand
US8953292B2 (en) * 2007-05-30 2015-02-10 Infineon Technologies Ag Bus interface and method for short-circuit detection
WO2009144824A1 (ja) * 2008-05-30 2009-12-03 富士通株式会社 情報処理装置、転送回路及び情報処理装置のエラー制御方法
JP5163298B2 (ja) * 2008-06-04 2013-03-13 富士通株式会社 情報処理装置、データ伝送装置及びデータ伝送方法
KR101593702B1 (ko) 2009-03-22 2016-02-15 엘지전자 주식회사 무선 통신 시스템에서 참조 신호 전송 방법 및 장치
US9454419B2 (en) 2013-07-18 2016-09-27 Advanced Micro Devices, Inc. Partitionable data bus
WO2015006946A1 (en) * 2013-07-18 2015-01-22 Advanced Micro Devices, Inc. Partitionable data bus
US10642951B1 (en) * 2018-03-07 2020-05-05 Xilinx, Inc. Register pull-out for sequential circuit blocks in circuit designs

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2473820A1 (fr) * 1980-01-11 1981-07-17 Telecommunications Sa Procede et systeme d'initialisation de la securisation d'une ligne d'une artere de transmission numerique
JP2825630B2 (ja) * 1990-09-07 1998-11-18 株式会社日立製作所 回線切替方式
JPH06259343A (ja) * 1993-03-10 1994-09-16 Hitachi Ltd 多重バス制御方式及びそれを用いたシステム
US5440538A (en) * 1993-09-23 1995-08-08 Massachusetts Institute Of Technology Communication system with redundant links and data bit time multiplexing
US5678065A (en) * 1994-09-19 1997-10-14 Advanced Micro Devices, Inc. Computer system employing an enable line for selectively adjusting a peripheral bus clock frequency
US5875301A (en) * 1994-12-19 1999-02-23 Apple Computer, Inc. Method and apparatus for the addition and removal of nodes from a common interconnect
US5867645A (en) 1996-09-30 1999-02-02 Compaq Computer Corp. Extended-bus functionality in conjunction with non-extended-bus functionality in the same bus system
US6366557B1 (en) * 1997-10-31 2002-04-02 Nortel Networks Limited Method and apparatus for a Gigabit Ethernet MAC (GMAC)
US6018810A (en) * 1997-12-12 2000-01-25 Compaq Computer Corporation Fault-tolerant interconnection means in a computer system
JP3994360B2 (ja) * 1998-05-20 2007-10-17 ソニー株式会社 情報処理装置、情報処理方法、および記録媒体
US7100071B2 (en) * 1998-07-16 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for allocating fail-over memory
US6466718B1 (en) * 1999-12-29 2002-10-15 Emc Corporation Method and apparatus for transmitting fiber-channel and non-fiber channel signals through common cable
US6574753B1 (en) * 2000-01-10 2003-06-03 Emc Corporation Peer link fault isolation
JP2003014819A (ja) * 2001-07-03 2003-01-15 Matsushita Electric Ind Co Ltd 半導体配線基板,半導体デバイス,半導体デバイスのテスト方法及びその実装方法
KR100448709B1 (ko) * 2001-11-29 2004-09-13 삼성전자주식회사 데이터 버스 시스템 및 그 제어방법
US6898730B1 (en) * 2001-11-30 2005-05-24 Western Digital Technologies, Inc. System and method for fail-over switching in a disk storage medium
JP4188602B2 (ja) * 2002-01-10 2008-11-26 株式会社日立製作所 クラスタ型ディスク制御装置及びその制御方法
US6918068B2 (en) * 2002-04-08 2005-07-12 Harris Corporation Fault-tolerant communications system and associated methods
US7362697B2 (en) * 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove

Also Published As

Publication number Publication date
KR20060061359A (ko) 2006-06-07
US20050058086A1 (en) 2005-03-17
JP2007505380A (ja) 2007-03-08
WO2005024633A1 (en) 2005-03-17
EP1683018B1 (en) 2007-07-18
TW200516402A (en) 2005-05-16
TWI300527B (en) 2008-09-01
CN1849589A (zh) 2006-10-18
DE602004007681T2 (de) 2008-04-30
DE602004007681D1 (de) 2007-08-30
US7392445B2 (en) 2008-06-24
CN100419701C (zh) 2008-09-17
EP1683018A1 (en) 2006-07-26
ATE367606T1 (de) 2007-08-15

Similar Documents

Publication Publication Date Title
US8799702B2 (en) Cable redundancy and failover for multi-lane PCI express IO interconnections
US8645747B2 (en) Cable redundancy and failover for multi-lane PCI express IO interconnections
US8018837B2 (en) Self-healing chip-to-chip interface
US8090976B2 (en) Error correction for digital systems
US7080288B2 (en) Method and apparatus for interface failure survivability using error correction
US5959914A (en) Memory controller with error correction memory test application
TW202230147A (zh) 儲存系統及其操作方法、以及提供抹除碼保護的系統
JP4392025B2 (ja) 障害条件に対するオートノミック・バスの再構成
US5448572A (en) Spare signal line switching method and apparatus
US7328368B2 (en) Dynamic interconnect width reduction to improve interconnect availability
JPS6014347A (ja) 障害検出装置
US7401271B1 (en) Testing system and method of using same
JP4497963B2 (ja) ストレージ装置
EP0856799A2 (en) Information transfer apparatus having ring topology
JP2005196331A (ja) ディスクアレイ装置及びディスクアレイ装置の構成変更方法
US7660334B1 (en) Single printed circuit board configuration for a data storage system
JP2006119878A (ja) ディスクアレイ装置及びディスクアレイ装置の故障検出方法
JPH06131289A (ja) 機番設定方式
JPH04302333A (ja) データ処理装置
JPH05347653A (ja) データ伝送障害検出方式
JPH04287256A (ja) 出力バッファ障害検出方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090512

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090512

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090929

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091008

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees