(57)【特許請求の範囲】
【請求項１】
互いに通信リンケージを介して接続された複数のノードを含むコンピュータシステムであって、前記複数のノードそれぞれは、１つ以上の機能ユニットとエラー処理手段とを含み、前記ノードそれぞれのエラー処理手段は、前記１つ以上の機能ユニットと接続され、前記通信リンケージを介して他のノードのエラー処理手段と接続され、
前記複数のノードそれぞれにおいて、
前記機能ユニットそれぞれは、
自らに生起するエラーを監視し、エラーが生起したときに、エラー信号を、前記エラー処理手段に対して送出し、
同じノードの前記機能ユニットの内、エラーを生起したいずれかから送出されたエラー信号を、前記同じノードのエラー処理手段を介して受信してロギングし、
前記エラー処理手段は、
前記エラー信号がロギングされたことを、同じノードに含まれる前記機能ユニットの内、前記エラー信号を送出した機能ユニット以外の機能ユニットに対して送出し、
前記受信されたエラー信号を、前記通信リンケージを介して、他のノードの前記エラー処理手段に対して送出する
コンピュータシステム。
【請求項２】
前記他のノードの処理手段に対するエラー信号の送出は、メッセージがノードからノードへと直列に渡ってゆくリングリンケージを介して行われる
請求項１に記載のコンピュータシステム。
【請求項３】
前記他のノードの処理手段に対するエラー信号の送出は、クロック信号を用いて行われ、
前記他のノードの処理手段に対してエラー信号が送出された後に、前記クロック信号は停止される
請求項２に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は多ノード多重プロセッサシステムにおけるエラー管理に係り、とりわけ該システムにおけるエラー情報のノード単位の配信に関する。
【０００２】
【従来の技術】
スケーラブルコヒーレントインターフェース（Ｓｃａｌａｂｌｅ  Ｃｏｈｅｒｅｎｔ  Ｉｎｔｅｒｆａｃｅ：ＳＣＩ）システムの１つのノードにエラーが発生すると、他のエラーが発生し、これがシステム全体に高速に伝搬して異なるノード上に多数のエラー信号が発生することがある。該エラー信号は、全て最初のエラー状態に起因するものである可能性がある。システムを正常化するためには、これらのエラーをそれぞれ解消しなければならない。しかし、多数のエラー信号のどれが最初のエラーを表わし、どのエラー信号が最初のエラーから派生したものであるかを判定することは非常に困難である。
【０００３】
このような状況の一例として、ある特定のノードにおける単純なタイムアウトがある。局所ノードがタイムアウトエラーを検出し、それをログする。その間に、遠隔ノードが同じ記憶位置へのアクセスを試みている場合がある。この場合、該遠隔ノードもタイムアウトエラーをログする。遠隔ノード側から見ると、目標ノードのメモリが適正に動作していないこと、あるいはその遠隔ノードを目標メモリに接続するリンケージが適正に機能していないことを判定することは容易ではない。
【０００４】
この特定のエラーをデバッグする上で最も重要なことは、その局所エラーが最初にログされたことを知ることである。
【０００５】
【発明が解決しようとする課題】
このようなエラーの順序付けは現在のところ不可能である。なぜなら、エラーがログされるとき、時間情報が関係付けられることはないためである。エラーはあるノードのある場所にログされたビットに過ぎない。各エラーに対するタイムスタンプを用いるためには、異なるクロックおよび異なるノードをナノ秒オーダーにもなる非常に高い精度で同期しなければならず、非常に困難である。該システムに生じるオーバーヘッドは過大なものとなる。
【０００６】
したがって、当該技術分野において、多ノードシステムの１つのノードに発生するが、多数の他のノードにおいてエラー状態のログを生じさせる可能性のあるエラーを隔離する技術が必要とされている。
【０００７】
さらに、当該技術分野において、該システムであって、ログされたエラーに関わるオーバーヘッドを大幅に増大させることのない技術が必要とされている。
【０００８】
またさらに、当該技術分野において、１つのノードにおけるエラー状態の結果として、多数のノードに発生し得るエラーの発生順序を判定する技術を確立することが必要とされている。
【０００９】
【課題を解決するための手段】
通常、ＳＣＩシステムはＰＡＣ（Ｐｒｏｃｅｓｓｏｒ  Ａｇｅｎｔ  Ｃｈｉｐｓ）、ＲＡＣ（Ｃｒｏｓｓ  Ｂａｒ  Ｒｏｕｔｅｒ  Ｃｈｉｐｓ）、ＭＡＣ（Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｈｉｐｓ）およびＴＡＣ等の各種の機能ユニットを接続するエラー信号を有する。これらの信号は双方向であり、１つの機能ユニットがエラー状態を判定すると、他の全ての機能ユニットにエラー信号が送られる。これを受けた機能ユニットは他の機能ユニットでエラーが検出されたことをログする。
【００１０】
本発明の一実施形態において、ＳＣＩアイドル記号の１ビットは、システム内の１つのノードから他の全てのノードへのハードエラー信号の伝搬にのみ用いられる。各ノードのコマンドおよび状態レジスタを用いて該ハードエラー信号の伝搬が制御される。このシステムはエラーメッセージが各ＳＣＩリング上の次のノードに送られるまでクロック停止機能を遅延させる機能を有する。
【００１１】
クロック停止遅延機能は、エラーメッセージを次のノードに渡す前にクロックを停止したい場合には無効にすることができる。これは、クロック停止の遅延によってＴＡＣ内の重要な状態が失われる可能性がある場合に重要である。
【００１２】
また、このシステムはエラー封じ込め（ｃｏｎｔａｉｎｍｅｎｔ）クラスタ制御システムと協働して、エラーが特定の確立されたノードクラスタを越えて伝搬されることを防止するように設計されている。
【００１３】
したがって、本発明の技術的利点の１つは、多ノード多重プロセッサシステムの各ノードにノードおよびシステム上でのエラーの伝搬を制御するための中央制御ポイントが設けられることである。
【００１４】
本発明の他の技術的利点は、エラーメッセージをＳＣＩノード間リンク上の高優先順位プロトコルにマップされた１つのビットを用いてノード間でやり取りし得ることである。
【００１５】
本発明の他の技術的利点は、通常エラーが判定されると停止される各ＴＡＣにおけるクロックが、少なくとも該エラーが次のノードに渡される間継続し得ることである。
【００１６】
本発明の他の技術的利点は、ある特定の条件下でＴＡＣのクロックがただちに停止して、エラーの根本原因の判定に必須の状態が保存されることである。
【００１７】
本発明の他の技術的利点は、ある特定の条件下でエラー信号が所定のノードクラスタに封じ込められる（ｃｏｎｔａｉｎｅｄ）ことである。
【００１８】
以上は、以下の本発明の詳細な説明の理解を助けるために、本発明の特徴および技術的利点を概観したものである。以下には本発明の他の特徴および利点も説明され、これらも本発明の特許請求の対象となる。当業者には、ここに開示する概念および具体的実施形態を本発明の目的を達成するための変更および他の構造の設計の基礎として容易に利用可能であることは明らかであろう。また、当業者にはかかる均等な構造は特許請求の範囲に定める本発明の精神および範囲から逸脱するものでないことが理解されよう。
【００１９】
【発明の実施の形態】
図１には多ノード多重プロセッサコンピュータシステムの１つのノード１０を示す。このシステムは全体として図１に示すようなノードを複数有する。
【００２０】
以下、プロセッサ１１０はプロセッサ１１０−１乃至１１０−１６の総称を示し、ＰＡＣ１１１はＰＡＣ１１１−１乃至ＰＡＣ１１１−８の総称を示し、ＲＡＣ１１２はＲＡＣ１１２−１乃至ＲＡＣ１１２−４の総称を示し、ＭＡＣ１１３はＭＡＣ１１３−１乃至ＭＡＣ１１３−８の総称を示し、ＴＡＣ１１５はＴＡＣ１１５−１乃至ＴＡＣ１１５−８の総称を示すものとする。また、プロセッサ２１０はプロセッサ２１０−１乃至２１０−１６の総称を示し、ＰＡＣ２１１はＰＡＣ２１１−１乃至ＰＡＣ２１１−８の総称を示し、ＲＡＣ２１２はＲＡＣ２１２−１乃至ＲＡＣ２１２−４の総称を示し、ＭＡＣ２１３はＭＡＣ２１３−１乃至ＭＡＣ２１３−８の総称を示し、ＴＡＣ２１５はＴＡＣ２１５−１乃至ＴＡＣ２１５−８の総称を示すものとする。
【００２１】
示される実施形態における各ノードは、プロセッサ１１０−１乃至プロセッサ１１０−１６のように最高で１６個のプロセッサを支援することができる。これらのプロセッサはプロセッサエージェントチップ（Ｐｒｏｃｅｓｓｏｒ  Ａｇｅｎｔ  Ｃｈｉｐｓ：ＰＡＣ）１１１に接続されている。各ＰＡＣ１１１はこれに関係付けられた２つ、あるいはそれ以上のプロセッサ１１０からの要求をクロスバールータチップ（Ｃｒｏｓｓ  Ｂａｒ  Ｒｏｕｔｅｒ  Ｃｈｉｐｓ：ＲＡＣ）１１２を介してメモリアクセスチップ（Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｈｉｐｓ：ＭＡＣ）１１３に送出し、さらにメモリからの応答を要求元のプロセッサに転送する機能を有する。各ＰＡＣ１１１は入出力（Ｉ／Ｏ）サブシステム１１７を有する。各ＭＡＣ１１３はこれに関係付けられたコヒーレントメモリ１１４へのアクセスを制御する。各ＭＡＣ１１３はコヒーレントメモリ１１４の４つのバンクに接続されている。但し、図１では簡略化のため２つのみが示されている。コヒーレントメモリ１１４の各バンクは４つのデュアルインラインメモリモジュールボード（ＤＩＭＭ）を有する。
【００２２】
プロセッサ１１０がメモリ、あるいは他の資源へのアクセス要求を生成すると、対応するＰＡＣ１１１が該要求を適当なＲＡＣ１１２を介してＭＡＣ１１３−１に送る。その要求が局所ノード上のコヒーレントメモリ１１４−１を宛先とするものである場合、ＭＡＣ１１３−１はこれに取り付けられたコヒーレントメモリ１１４−１にアクセスする。その要求が他のノード上のメモリを宛先とするものである場合、ＭＡＣ１１３−１はその要求をＴＡＣ１１５−１に転送する。ＴＡＣ１１５−１はノードとＳＣＩリング１１６との間のインターフェースである。ＴＡＣ１１５−１はトロイダルアクセスチップ（ｔｏｒｏｉｄａｌ  ａｃｃｅｓｓ  ｃｈｉｐ）あるいはＳＣＩコントローラとしても知られる。ＳＣＩリング１１６は多ノードシステム内のノードを相互接続する。
【００２３】
図２には多数のノードの接続態様を示し、エラー信号の共通のレシーバユニットへの局所的相互接続を含む。以下、ユーティリティ論理２５−０はノード０のユーティリティ論理を示し、ユーティリティ論理２５は各ノードのユーティリティ論理の総称を示すものとする。ＰＡＣ１１１−１、ＲＡＣ１１２−１、ＭＡＣ１１３−１およびＴＡＣ１１５−１等の各機能ユニットは、ユーティリティ論理２５−０に直接接続されており、該ユーティリティ論理２５−０は全ての信号の論理積をとる。機能ユニットとレシーバユニットとの間のエラーの接続は結線２１、２２、２３、２４によって行なわれる。これには、ＭＡＣ１１３−１等の１つのゲートアレイがエラーを検出すると、該ゲートアレイは結線２１上にゼロアウト（ｚｅｒｏ  ｏｕｔ）を送信し、これがＴＡＣ１１５−１およびユーティリティ論理２５−０に伝搬される。ユーティリティ論理２５は受信した信号と他の受信入力との論理積をとり、これらのアウトを結線２２、２３上に送信する。したがって、数クロックサイクルの内に、あるノード上の全ての機能ユニットが他の機能ユニットにおいてエラーが検出されたことを知ることになる。
【００２４】
エラーを検出した最初の機能ユニット（この場合、ＭＡＣ１１３−１）は具体的エラーをログする。他の全ての機能ユニットは、単に他の機能ユニットがエラーを検出したことをログするのみである。
【００２５】
ＳＣＩリング１１６、１１８は、次の隣接ノードへの相互接続に用いられる。これはリング接続であり、３つ以上のノードが存在する場合リングが続いていく（図示せず）。このリング接続はバスを含み、このバスにおいてはアイドル記号データストリームを用いてノード間のハードエラー通信がピギーバック方式で行なわれる。
【００２６】
上述したように、ＴＡＣ１１５−１がＭＡＣ１１３−１から直接に、あるいは結線２１を介してユーティリティ論理２５からエラー信号を受け取ると、ＴＡＣ１１５−１は該エラー信号をアイドル記号データストリームのある特定のビット位置に入れる。これによってハードエラーの発生を示す。これに対して、ＴＡＣ１１５自体がリングから受け取る他のノードからの任意の大域（ｇｌｏｂａｌ）エラーをログする。これはＴＡＣ１１５から結線２１を介して受信側ノードの局所のユーティリティ論理２５に送られる信号によって行なわれる。ノード０でエラーが発生すると、他の全てのノード上の全ての機能ユニットには、該エラーがいずれかの遠隔ノードで発生したことがわかる。したがって、各ノードには局所エラーがあったか、あるいは遠隔エラーが問題の源であるかがわかる。
【００２７】
例えば、ノード１のＴＡＣ２１５−４はＳＣＩリング１１８からエラー信号を受け取り、結線２２１−４上に０を送信し、これがＭＡＣ２１３−４および局所のユーティリティ論理２５−１に送られる。その後、局所のユーティリティ論理２５−１が該エラー信号を論理積し、これを結線２２２、２２３上に送信する。これによって、遠隔のエラー信号はノード１の他の全ての機能ユニットに送られる。
【００２８】
エラーを受け取ったＴＡＣは該エラーをログし、その特定のリング上の、次に利用可能となるアイドル記号を待ち、次のノードにハードエラーパケットを中継する。基本的には、ハードエラービットを有するアイドル記号である該ハードエラーパケットは、最も高い優先順位を有する。ＴＡＣが他のパケットを送信中でない限り、該ハードエラーパケットはただちに送信される。このような状況においては、ハードエラーパケットは現行のパケットの後の最初の記号上で送信される。
【００２９】
図３はリング構成の定義を示す図である。各ＴＡＣに含まれるコマンド状態レジスタ（Ｃｏｍｍａｎｄｓ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ）、すなわちＣＳＲは大域ハードエラーの他のノードへの配信の状態を制御する。本明細書において重要なフィールドは、Ｘ大域エラーイネーブル（Ｘ  ＧＥＥ）、Ｙ大域エラーイネーブル（Ｙ  ＧＥＥ）およびクロック停止遅延である。Ｘ  ＧＥＥはＸリング上でのエラーの送信を可能とし、Ｙ  ＧＥＥはＹリング上での送信を可能とする。エラー信号はＴＡＣが局所の機能ユニットにエラーを送信可能であり、Ｘ大域エラー、Ｙ大域エラーあるいはその両方がイネーブルされているときにのみ送信される。また、該コマンド状態レジスタはクロック停止遅延を制御する。
【００３０】
このシステムはエラー検出サイクル中にクロックを停止する機能を有する。この論理は各ＴＡＣに対する局所的なものであるため、クロック停止はエラー信号の受信後、非常に迅速に実行することができる。したがって、システムが長いデータパケットを送信中である場合、クロックはエラー信号が次の利用可能なアイドル記号上でリングに返される前に停止することがでる。これによって、他のノードがエラーメッセージを受信することが防止される。
【００３１】
この問題を防止するために、大域エラー信号がＳＣＩリングを介して次のノードに送られるまで、遅延クロック停止ビットを用いてクロックの停止が遅延される。
【００３２】
しかし、クロック停止を遅延することによって情報が損失することがある。クロックの即時停止はこれに対応するために設計されている。このような状況では、ハードエラーがＳＣＩリング上に伝搬されたかどうかにかかわりなく、クロックをただちに停止することができる。
【００３３】
Ｘ大域エラーイネーブルおよびＹ大域エラーイネーブルは、本願と同一の譲受人に譲渡された１９９６年９月２７日出願の「ＥＲＲＯＲ  ＣＯＮＴＡＩＮＭＥＮＴ  ＣＬＵＳＴＥＲ  ｏｆ  ＮＯＤＥＳ」と題する米国特許出願第０８／７２０，３６８号で説明されている、エラー封じ込めクラスタ分割と協働するように設計されている。エラー封じ込めクラスタが、封じ込めクラスタに対してＸリングのみを用いるように設定されている場合、大域エラーがワイヤリング（ｗｉｒｅ  ｒｉｎｇ）上に送信されると、これはエラー封じ込めの概念そのものに反することになる。各ＴＡＣに別々のイネーブルを設けることによって、このシステムはエラー封じ込めクラスタと協働してエラーを所望のクラスタ内に封じ込める。
【００３４】
図４はアイドル記号の記述を示す図である。ＨＥＲＲで示すビットは、他のノードへの大域エラーの送信に用いられる本発明に係るハードエラービットである。該ハードエラービットが１であるとき、遠隔ノードにそのハードエラー論理が設定される。図３に示される遠隔ノードでは、イネーブルを用いてエラーの確認および／または次のノードへの伝搬が行なわれるかどうかが判定される。ＳＣＩシステム中の他の全てのヘッダにビットを追加する代わりに、１つのハードエラービットで目的が達成される。これは、アイドル記号に最高の優先順位を与えることによって、可能な限り高速に到着するためである。ＳＣＩストリームに追加アイドル記号を加えてもエラーは稀であるためアプリケーションの性能には影響を生じない。
【００３５】
本発明およびその利点を詳細に説明したが、特許請求の範囲に定める本発明の精神および範囲から逸脱することなくさまざまな変更、代替および改変が可能であることを理解されたい。
【００３６】
以下に本発明の実施の形態を要約する。
１．  複数の機能ユニットを具備する各ノードを有し、機能ユニットのそれぞれは機能ユニットに生じるエラーを監視し、エラーが発生したときエラー信号を送信することができ、異なるノード間の通信リンケージを有する多ノードコンピュータエラー信号配信システムにおいて、各ノードに設けられ、ノードの任意の機能ユニットから送られたエラー信号を前記ノードの前記機能ユニットから受信し、前記受信されたエラー信号をログする受信手段を具備し、前記受信手段が、特定の機能ユニットからのログされたエラー信号に応答して前記ノードの他の機能ユニットのそれぞれに特定の前記ノードがエラー信号をログしたことを示すエラー信号を送信する動作をする手段と、特定の機能ユニットからのログされたエラー信号に応じて前記ログされたエラー信号を他のノードのそれぞれに結び付けられた受信手段に通信する動作をする手段とを含むことを特徴とする多ノードコンピュータエラー信号配信システム。
【００３７】
２．  前記通信手段はメッセージがノード間を順次やりとりされるリングリンケージである上記１に記載の多ノードコンピュータエラー信号配信システム。
【００３８】
３．  前記通信手段はさらに前記リングリンケージに特定のビットを配置する手段を含む上記２記載の多ノードコンピュータエラー信号配信システム。
【００３９】
４．  各ノードに設けられた、前記受信されたエラー信号が次のノードに渡されるまで前記ノードにおけるクロックの停止を抑止する抑止手段を含む上記２記載の多ノードコンピュータエラー信号配信システム。
【００４０】
５．  前記抑止手段を抑止する手段を含む上記４記載の多ノードコンピュータエラー信号配信システム。
【００４１】
６．  第１のノードの機能ユニットにおけるエラーから少なくとも１つの他のノードにエラー信号が生じ得るときに多ノードＳＣＩコンピュータシステム内のエラーを追跡する多ノードコンピュータエラー信号配信方法において、
前記第１のノードで発生する全てのエラーをログし、
他のノードのそれぞれに特定のクロックサイクル中に前記他のノードのそれぞれに対して遠隔のノードで少なくとも１つのエラーが発生したことの通知を配信する多ノードコンピュータエラー信号配信方法。
【００４２】
７．  前記配信するステップが他のノードに配信するため特定のノード内の全ての機能ユニットからのエラー信号の全てを加算して１つのエラー信号を形成する上記６記載の多ノードコンピュータエラー信号配信方法。
【００４３】
８．  各ノードは複数の機能ユニットを有し、機能ユニットのそれぞれは機能ユニットに生じるエラーを監視し、機能ユニットはエラーが発生したときエラー信号を送信する多ノード多重プロセッサＳＣＩコンピュータシステムのノード間のエラー信号の配信を制御する多ノードコンピュータエラー信号配信方法において、
各ノードの共通のポイントにおいて前記ノードの機能ユニットから送信されるエラー信号を受信し、
特定の機能ユニットから受信された信号に応答して前記ノードの他の機能ユニットのそれぞれにエラー信号を送信し、
特定の機能ユニットから受信された信号に応答してＳＣＩリンクを介して次のノードにエラー信号を送信する多ノードコンピュータエラー信号配信方法。
【００４４】
９．  前記受信されたエラー信号が前記次のノードに渡されるまで各ノードにおけるクロックの停止を抑止する上記６または８記載の多ノードコンピュータエラー信号配信方法。
【００４５】
１０．  前記次のノードにおいて前記次のノードの共通のポイントにエラー信号を送り、
他のノードから受信された信号に応答して前記次のノードの他の機能ユニットのそれぞれにエラー信号を送信し、
他のノードから受信された信号に応答してＳＣＩリンクを介して次のノードにエラー信号を送信する上記８記載の多ノードコンピュータエラー信号配信方法。
【００４６】
【発明の効果】
上述のように、本発明によれば、ＳＣＩノード間リンク上の高優先順位プロトコルにマップされた１つのビットを用いてノード間でやり取りし、エラーが判定されるとＴＡＣのクロックがただちに停止して、エラーの根本原因の判定に必須の状態を保存することができる。
【図面の簡単な説明】
【図１】多ノード多重プロセッサシステムの１つのノードを示す図である。
【図２】通信リンクで相互接続された２つの典型的なノードを示す図である。
【図３】リング構成の定義を示す図である。
【図４】ノード間でのハードエラー信号の伝搬に用いられるアイドル記号の記述を示す図である。
【符号の説明】
１０  ノード
１１０  プロセッサ
１１１  プロセッサエージェントチップ（ＰＡＣ）
１１２  クロスバールータチップ（ＲＡＣ）
１１３、２１３  メモリアクセスチップ（ＭＡＣ）
１１４  コヒーレントメモリ
１１５、２１５  ＴＡＣ
１１６、１１８  ＳＣＩリング
１１７  入出力（Ｉ／Ｏ）サブシステム
２１、２２、２３、２４、２２１−４、２２２、２２３  結線
２５  ユーティリティ論理
【図１】
0003613505.tif 000002
【図２】
0003613505.tif 000003
【図３】
0003613505.tif 000004
【図４】
0003613505.tif 000005