(57)【要約】１つのコンピューティング・システム内の複数のドメイン間でトランザクションを通信する複数のポートを有する相互接続を含むトランザクションを通信する方法を提供する。各ポートは、ドメインのサブセットに関連付けられている。相互接続は、トランザクションの第１の部分を送信する第１の信号パス、トランザクションの第２の部分を送信する第２の信号パスを含む。複数のドメインと関連付けられている１つのポートから発行されたトランザクションが識別される。トランザクションの第１、第２の部分の一方のエラーが識別される。エラーの識別に応じてトランザクションがキャンセルされる。トランザクションを通信するコンピューティング・システムは、第１、第２のデバイスを含む。第１のデバイスは、トランザクションの第１の部分を受信する。第２のデバイスは、第１のデバイスに関してロックステップでトランザクションの第２の部分を受信する。第１、第２のデバイスはそれぞれ、トランザクションの第１、第２の部分の一方のエラーを識別するように構成され、エラーを識別する第１、第２のデバイスの一方は、エラーの識別に応じてトランザクションの第１、第２の部分の他方に関連付けられているデバイスに通知信号を送信する。
2005508045.tif 000002
【特許請求の範囲】
【請求項１】
１つのコンピューティング・システム内の複数のドメイン間でトランザクションを通信するための複数のポートを有し、各ポートがドメインのサブセットに関連付けられており、トランザクションの第１の部分を送信する第１の信号パス、およびトランザクションの第２の部分を送信する第２の信号パスを含む、相互接続を提供することと、
複数のドメインに関連付けられているポートの１つから発行されたトランザクションを識別することと、
トランザクションの第１の部分および第２の部分の一方のエラーを識別することと、
エラーの識別に応じてトランザクションをキャンセルすることと
を備える方法。
【請求項２】
トランザクションの第１および第２の部分が制御情報およびペイロード情報を含み、第１および第２の部分の制御情報は同じであり、第１および第２の部分のペイロード情報は異なり、本方法でエラーを識別することが第１および第２の部分の制御情報のエラーを識別することをさらに備える請求項１に記載の方法。
【請求項３】
エラーを識別することがパリティ検査を行うことをさらに備える請求項１に記載の方法。
【請求項４】
トランザクションの第１および第２の部分がそれぞれ制御情報を含み、エラーを識別することが第１および第２の部分の制御情報のパリティ検査を行うことをさらに備える請求項１に記載の方法。
【請求項５】
相互接続が、第１の信号パスに関連付けられた第１のアービタ、および第２の信号パスに関連付けられた第２のアービタをさらに備え、トランザクションの第１および第２の部分の一方のエラーを識別することに応じて、トランザクションの第１および第２の部分のもう一方に関連付けられた第１および第２のアービタの一方に通知信号を送信することをさらに備える請求項１に記載の方法。
【請求項６】
将来のトランザクションが誤ったトランザクションを発したポートから発行されるのを阻止することをさらに備える請求項１に記載の方法。
【請求項７】
エラーを識別する前にトランザクションを停止することをさらに備える請求項１に記載の方法。
【請求項８】
第１のデバイスでトランザクションの第１の部分を受信することと、
第２のデバイスで、第１のデバイスに関してロックステップでトランザクションの第２の部分を受信することと、
トランザクションの第１の部分および第２の部分の一方のエラーを識別することと、
エラーを識別することに応じてトランザクションの第１および第２の部分のもう一方に関連付けられたデバイスに通知すること
を備えるトランザクションを通信する方法。
【請求項９】
もう一方のデバイスに通知することに応じてトランザクションをキャンセルすることをさらに備える請求項８に記載の方法。
【請求項１０】
トランザクションの第１および第２の部分が制御情報およびペイロード情報を含み、第１および第２の部分の制御情報は同じであり、第１および第２の部分のペイロード情報は異なり、本方法でエラーを識別することが第１および第２の部分の制御情報のエラーを識別することをさらに備える請求項８に記載の方法。
【請求項１１】
エラーを識別することがパリティ検査を行うことをさらに備える請求項８に記載の方法。
【請求項１２】
トランザクションの第１および第２の部分がそれぞれ制御情報を含み、エラーを識別することが第１および第２の部分の制御情報のパリティ検査を行うことをさらに備える請求項８に記載の方法。
【請求項１３】
トランザクションを第１および第２のデバイスに発行するポートを提供することと、
将来のトランザクションが通知信号に応じてトランザクションを発したポートから発行されるのを阻止すること
をさらに備える請求項８に記載の方法。
【請求項１４】
エラーを識別する前に第１および第２のデバイスでトランザクションを停止することをさらに備える請求項８に記載の方法。
【請求項１５】
複数のシステム・ドメインと、
トランザクションの第１の部分を送信する第１の信号パス、およびトランザクションの第２の部分を送信する第２の信号パスを含み、システム・ドメイン間での通信を行う複数のポートを有する相互接続と、
第１の信号パスに関連付けられ、複数のドメインに関連付けられたポートから発行されたトランザクションを識別し、第１の部分またはトランザクションのエラーを検出するように構成された第１のアービタと、
第２の信号パスに関連付けられ、複数のドメインに関連付けられたポートから発行されたトランザクションの第２の部分のエラーを識別するように構成された第２のアービタとを備え、第１および第２のアービタが、トランザクションの第１および第２の部分のいずれかのエラーを識別することに応じてトランザクションをキャンセルするように構成されている
コンピューティング・システム。
【請求項１６】
トランザクションの第１および第２の部分が制御情報およびペイロード情報を含み、第１および第２の部分の制御情報は同じであり、第１および第２の部分のペイロード情報は異なり、第１および第２のアービタがそれぞれ第１および第２の部分の制御情報のエラーを識別するように構成されている請求項１５に記載のシステム。
【請求項１７】
第１および第２のアービタがパリティ検査を行うように構成されている請求項１５に記載のシステム。
【請求項１８】
トランザクションの第１および第２の部分がそれぞれ制御情報を含み、第１および第２のアービタが第１および第２の部分の制御情報のパリティ検査を行うように構成されている請求項１５に記載のシステム。
【請求項１９】
第１および第２のアービタの一方が、トランザクションの第１および第２の部分の一方のエラーを識別することに応じて、第１および第２のアービタのもう一方に通知信号を送信するようにさらに構成されている請求項１５に記載のシステム。
【請求項２０】
第１および第２のアービタが、将来のトランザクションが誤ったトランザクションを発したポートから発行されるのを阻止するようにさらに構成されている請求項１５に記載のシステム。
【請求項２１】
第１および第２のアービタが、エラーを識別する前に、複数のドメインに関連付けられたポートから発行されたトランザクションを停止するように構成されている請求項１５に記載のシステム。
【請求項２２】
トランザクションの第１の部分を受信するように構成されている第１のデバイスと、
第１のデバイスに対してロックステップでトランザクションの第２の部分を受信するように構成されている第２のデバイスとを備え、第１および第２のデバイスがそれぞれトランザクションの第１および第２の部分の一方のエラーを識別するようにさらに構成され、エラーを識別する第１および第２のデバイスの一方が、エラーを識別することに応じてトランザクションの第１および第２の部分のもう一方に関連付けられたデバイスに通知信号を送信するようにさらに構成されている、トランザクションを通信するためのコンピューティング・システム。
【請求項２３】
第１および第２のデバイスが、通知信号に応じてトランザクションをキャンセルするようにさらに構成されている請求項２２に記載のシステム。
【請求項２４】
トランザクションの第１および第２の部分が制御情報およびペイロード情報を含み、第１および第２の部分の制御情報は同じであり、第１および第２の部分のペイロード情報は異なり、第１および第２のデバイスがそれぞれ第１および第２の部分の制御情報のエラーを識別するようにさらに構成されている請求項２２に記載のシステム。
【請求項２５】
第１および第２のデバイスがそれぞれ第１および第２の部分のパリティ検査を行うようにさらに構成されている請求項２２に記載のシステム。
【請求項２６】
トランザクションの第１および第２の部分がそれぞれ制御情報を含み、第１および第２のデバイスがそれぞれ第１および第２の部分の制御情報のパリティ検査を行うことによってエラーを識別するようにさらに構成されている請求項２２に記載のシステム。
【請求項２７】
第１および第２のデバイスが、エラーを識別する前にトランザクションを停止するように構成されている請求項２２に記載のシステム。
【請求項２８】
第１のシステム・ドメインと、
第２のシステム・ドメインと、
第１および第２のシステム・ドメイン間の相互接続であって、２つの半分部分を備え、各半分部分が第１および第２のドメイン間のトランザクションの一部分を送信し、エラーが識別された場合、２つの部分をエラー・チェックして、トランザクションをキャンセルするように構成されている相互接続と
を備えるコンピューティング・システム。
【請求項２９】
トランザクションが制御情報およびペイロード情報を含み、第１の半分部分に関連付けられた部分、および第２の半分部分に関連付けられた部分の制御情報が同じであり、第１の半分部分に関連付けられた部分、および第２の半分部分に関連付けられた部分のペイロード情報が異なり、相互接続が部分の制御情報のエラーを識別するように構成されている請求項２８に記載のシステム。
【請求項３０】
相互接続が部分のパリティ検査を行うように構成されている請求項２８に記載のシステム。
【請求項３１】
トランザクションが制御情報を含み、相互接続が第１の半分部分に関連付けられた部分、および第２の半分部分に関連付けられた部分の制御情報のパリティ検査を行うように構成されている請求項２８に記載のシステム。
【請求項３２】
第１および第２の半分部分の一方が、エラーの識別に応じて、もう一方の半分部分に通知するようにさらに構成されている請求項２８に記載のシステム。
【請求項３３】
相互接続が、トランザクションを発する少なくとも１つのポートを含み、第１および第２の半分部分が、将来のトランザクションがトランザクションを発したポートから発行されるのを阻止するようにさらに構成されている請求項２８に記載のシステム。
【請求項３４】
相互接続が、エラーを識別する前にトランザクションを停止するように構成されている請求項２８に記載のシステム。
【請求項３５】
トランザクションの第１の部分を送信する第１の手段、およびトランザクションの第２の部分を送信する第２の手段を含むコンピューティング・システム内の複数のドメイン間でトランザクションを通信する手段と、
トランザクションの第１および第２の部分の一方のエラーを識別する手段と、
エラーの識別に応じてトランザクションをキャンセルする手段と
を備えるシステム。
【請求項３６】
トランザクションの第１の部分を受信する手段と、
第１の部分を受信する手段に関してロックステップでトランザクションの第２の部分を受信する手段と、
トランザクションの第１の部分および第２の部分の一方のエラーを識別する手段と、
エラーを識別することに応じてトランザクションの第１および第２の部分のもう一方に関連付けられた手段に通知信号を送信する手段と
を備えるシステム。
【発明の詳細な説明】
【０００１】
発明の背景
１．発明の分野
本発明は一般にコンピュータ・システムに関し、より詳細には、コンピュータ・システム内のドメイン間のトランザクションを調停する方法とそのための装置に関する。
【０００２】
２．関連技術の説明
ネットワーク・コンピューティングは、インターネットの出現も手伝って、ここ数年にわたり劇的に増加している。業界では、インターネットを使用して製品データを顧客に配布する、注文を受ける、従業員間の通信を向上させるなど、ネットワークを介して企業にアプリケーションを提供するアプリケーション・サービス・プロバイダ（ＡＳＰ）が著しく成長するなどの傾向がある。
【０００３】
一般に企業は、他の企業より競争上有利な立場を維持するためにネットワーク・コンピューティングを利用する。したがって、開発者は一般に、ネットワーク環境で使用するプロセッサベースのシステムを開発するとき、顧客の期待に添うようにするためにいくつかの要因を考慮に入れる。こうした要因には、例えば、こうしたシステムの機能性、信頼性、拡張性、および性能などがある。
【０００４】
ネットワーク環境で使用するプロセッサベースのシステムの一例として、ミッドレンジ・サーバ・システムがある。単一のミッドレンジ・サーバ・システムを複数のオペレーティング・ドメイン用に構成することができ、ドメインは、オペレーティング・システム・ドメイン自身のインスタンスを実行して、構成された１つまたは複数のタスクを行うことによって個別のマシンとして働くことができる。
【０００５】
統合されたシステム内に実質的に独立したオペレーティング・システム・ドメインを設けることによって、そうでなければ異なる複数のマシンで行わなければならない様々なタスクを顧客が実行できるようになるので、その利点は容易に理解できるであろう。しかし、システム内の複数のシステム・ドメインを管理することは、時として大変な仕事であることがわかることがある。というのは、こうしたシステムの設計者にとって、顧客の要求にも合うように機能するシステムを構築するには、リソースの数が限られているためである。例えば、１つのシステム内で１つまたは複数のシステム・ドメインを管理することによって、そうでなければ他の機能を顧客に提供するために使用し得る貴重なハードウェア・リソースを消耗することがある。
【０００６】
プロセッサベースのシステムの可用性を向上させるために、冗長ハードウェアを用意することができる。１つの構成要素に障害が生じた場合、システム内でその機能を引き継ぐようにその冗長ハードウェアの片方を構成することができる。システムが、障害が生じるまでは常に２つの冗長構成要素のうちの一方のみを使用するように構成されている場合、未使用の構成要素の処理の可能性は認識されていない。
【０００７】
本発明は、上記の１つまたは複数の問題の影響を克服し、あるいは少なくとも低減することを対象としている。
【０００８】
発明の概要
本発明の一態様がトランザクションを通信するための方法に見られる。この方法は、１つのコンピューティング・システム内の複数のドメイン間でトランザクションを通信する複数のポートを有する相互接続を設けることを含む。各ポートは、ドメインのサブセットに関連付けられている。相互接続は、トランザクションの第１の部分を送信する第１の信号パス、およびトランザクションの第２の部分を送信する第２の信号パスを含む。複数のドメインに関連付けられている１つのポートから発行されたトランザクションが識別される。トランザクションの第１および第２の部分の一方のエラーを識別する。エラーの識別に応じてトランザクションをキャンセルする。
【０００９】
本発明の別の態様は、第１および第２のデバイスを含む、トランザクションを通信するためのコンピューティング・システムに見られる。第１のデバイスは、トランザクションの第１の部分を受信するように構成される。第２のデバイスは、第１のデバイスに関してロックステップでトランザクションの第２の部分を受信するように構成される。第１および第２のデバイスはそれぞれ、トランザクションの第１および第２の部分の一方のエラーを識別するように構成され、エラーを識別する第１および第２のデバイスの一方は、エラーの識別に応じてトランザクションの第１および第２の部分の他方に関連付けられているデバイスに通知信号を送信するように構成されている。
【００１０】
本発明は、以下の説明を添付の図面と併せ読めば理解できよう。図面中、同様の参照番号は同様の要素を示す。
【００１１】
本発明は、様々な変更形態および代替形態が可能であるが、その特定の実施形態を図面に一例として示しており、本明細書で詳しく説明する。しかし、特定の実施形態の本明細書での説明は、本発明を開示された特定の形態に限定するものではなく、むしろその意図は、頭記の特許請求の範囲で定義される本発明の意図および範囲内に含まれるすべての変更、均等物、および代替をカバーすることであることを理解されたい。
【００１２】
特定の実施形態の詳細な説明
本発明の実施形態の例を以下で説明する。わかりやすくするために、実際の実装の特徴をすべて本明細書に記載しているわけではない。こうした実際の実施形態の開発では、それぞれ実装によって異なる、システム関連の制約、企業関連の制約への準拠など、開発者固有の目的を達成するために数多くの実装固有の決定が行われるべきであることは当然理解されよう。さらに、こうした開発の取組みは複雑で時間がかかる場合があるが、この開示の利益を受ける当分野の技術者には日常業務となり得ることは理解されよう。
【００１３】
ここで図１を参照すると、本発明の一実施形態によるコンピューティング・システム１００のブロック図が示してある。コンピューティング・システム１００は、センタープレーン１１５に結合されている複数のシステム制御ボード１０５（１）、１０５（２）、および複数のシステム・ボード１１０（１）〜１１０（ｎ）を含む。説明のために、ライン１０６（１〜２）およびライン１０８（１）〜１０８（ｎ）を使用して、システム制御ボード１０５（１）、１０５（２）およびシステム・ボード１１０（１）〜１１０（ｎ）がそれぞれセンタープレーン１１５に結合されているのを示している。しかし、本開示の利益を受ける当分野の技術者には理解できるように、システム制御ボード１０５（１）、１０５（２）およびシステム・ボード１１０（１）〜１１０（ｎ）を任意の様々な方法でセンタープレーン１１５に結合することができる。こうした方法には、それだけには限定されないが、エッジ・コネクタ、ケーブル、または他の使用可能なインターフェースなどがある。システム・ボード１１０（１）〜１１０（ｎ）は、システム制御ボード１０５（１）、１０５（２）と同じ手法を使用してセンタープレーン１１５とインターフェースをとることができるが、これは、本発明の実施に必須ではない。システム制御ボード１０５（１）、１０５（２）およびシステム・ボードのセット１１０（１）〜１１０（ｎ）を異なるタイプのインターフェースを使用してセンタープレーン１１５に接続してもよい。
【００１４】
実施形態の例では、制御ボード１０５（１）、１０５（２）の一方が、コンピューティング・システム１００のオペレーション全体を管理し、第１のボードに障害が生じた場合に他方が冗長性および自動フェイルオーバを提供する。本発明は、そのようには限定されないが、実施形態の例では、第１のシステム制御ボード１０５（１）が「メイン」のシステム制御ボードとして働き、第２のシステム制御ボード１０５（２）が代替のホットスワップ式の交換可能なシステム制御ボードとして働く。一般に、所与の瞬間、２つのシステム制御ボード１０５（１）と１０５（２）の一方が、コンピューティング・システム１００のオペレーション全体をアクティブに制御している。したがって、「アクティブなシステム制御ボード」という用語は、本明細書で使用する場合、その瞬間どちらのボードがコンピューティング・システム１００のオペレーションを管理しているかに応じて、システム制御ボード１０５（１）、１０５（２）のいずれか一方を指す。しかし、実施形態の中には、単一のシステム制御ボード１１５（１）のみを使用するものもあることに注意されたい。
【００１５】
センタープレーン１１５は、システム・ボード１１０（１）〜１１０（ｎ）の通信路として働く。システム・ボード１１０（１）〜１１０（ｎ）の半分をセンタープレーン１１５の片側に接続し、残りの半分をセンタープレーン１１５の反対側に接続することができる。実施形態の例では、センタープレーン１１５は、必要に応じて、最高ｎ個までのシステム・ボード１１０（１）〜１１０（ｎ）とシステム制御ボード１０５（１）、１０５（２）が互いに通信できるようにするｎ×ｎのクロスバーを含む。特定の一実施形態では、ｎ＝１８である。したがって、センタープレーン１１５によって、２つのシステム制御ボード１０５（１）、１０５（２）が互いに、または他のシステム・ボード１１０（１）〜１１０（ｎ）と通信できるとともに、システム・ボード１１０（１）〜１１０（ｎ）が互いに通信できる。
【００１６】
次に図２を参照すると、各システム・ボード１１０（１）〜１１０（ｎ）は、実施形態の例では、構成システム・ボード２００、入出力（Ｉ／Ｏ）ボード２０５、および拡張ボード２１０を含む１つまたは複数のボードを備えている。したがって、システム・ボード１１０（１）〜１１０（ｎ）のそれぞれは、ボードの「セット」である。代替の実施形態では、ボードのセットを使用しなくてもよい、あるいは異なる数の構成ボードを備えるボードのセットを使用することができることに注意されたい。１つまたは複数の構成システム・ボード２００、Ｉ／Ｏボード２０５、および拡張ボード２１０の機能を単一のボードに組み込むことができることを本開示の利益を受ける当分野の技術者であれば理解されよう。逆にいえば、その機能を、示したように相互接続できる任意の数のボードに行き渡らせることができる。したがって、ボードのセット１１０（１）〜１１０（ｎ）の構成ボードの数は、１から任意の数までとすることができる。また、この数には実用的な上限値があることを、本開示の利益を受ける当分野の技術者であれば理解されよう。上限値は一般に、ボードの数が増えると、性能が低下し、保守性が複雑になり、信頼性が損なわれる傾向にあるということに起因する。しかし、これは実装固有の問題である。本発明の観点では、ボードのセット１１０（１）〜１１０（ｎ）のボードの数は重要ではない。
【００１７】
構成システム・ボード２００は、オペレーティング・システムの部分を含めて、アプリケーションを実行するために、プロセッサ（図示せず）とメモリ（図示せず）を含むことができる。プロセッサは、例えば、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃから入手可能なＵｌｔｒａＳＰＡＲＣ（商標）６４ビット・プロセッサ、Ｉｎｔｅｌ  ＣｏｒｐｏｒａｔｉｏｎのＩｔａｎｉｕｍ（商標）、Ｐｅｎｔｉｕｍ（登録商標）、またはＡｌｐｈａ（商標）クラスのプロセッサ、またはＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，  ＩｎｃのＡｔｈｌｏｎ（商標）またはＤｕｒｏｎ（商標）クラスのプロセッサのいずれかでよい。特定の一実装形態では、コンピューティング・システム１００として、本出願の譲受人、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃから市販されているＵＮＩＸ（登録商標）ベースのオペレーティング・システム（Ｓｏｌａｒｉｓ（商標）ＯＳなど）を使用している。しかし本発明は、実質上任意のオペレーティング・システムで使用できる。Ｉ／Ｏボード２０５は、コンピューティング・システム１００にインストールされているＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｆａｃｅ）カード（図示せず）、光カード（図示せず）などのＩ／Ｏカードを管理することができる。
【００１８】
拡張ボード２１０は、実施形態の例では、一般にシステム・ボード２００とＩ／Ｏボード２０５をセンタープレーン１１５にインターフェースさせるマルチプレクサ（例えば２対１マルチプレクサ）として働く。センタープレーン１１５はボード２００、２０５とインターフェースをとるためのスロットを１つしか備えていないものもある。
【００１９】
実施形態の例では、コンピューティング・システム１００は、複数のシステム・ドメインに動的に分割されることがある。その際、各ドメインは、個別のブート・ディスク（例えばオペレーティング・システムの特定のインスタンスを実行するため）、個別のディスク記憶装置、ネットワーク・インターフェース、および／またはＩ／Ｏインターフェースを有することができる。システム・ドメインは、Ｉ／ＯアセンブルおよびＣＰＵ／メモリ・リソースの混合体である。システム・ドメインは、他のシステム・ドメインの障害（オペレーティング・システムのエラー、ソフトウェアのエラー、ＣＰＵ／メモリ障害、Ｉ／Ｏアセンブリ障害など）から隔離される。各ドメインは、ユーザが構成した様々なサービスを実行する個別のマシンとして動作することができる。例えば、１つまたは複数のドメインを、アプリケーション・サーバ、Ｗｅｂサーバ、データベース・サーバなどに指定することができる。各ドメインは、それ自体のオペレーティング・システムを実行し、他のドメインのオペレーションを妨げることなく再構成することができる。本発明はそのように限定はされないが、分割は、実施形態の例では、以下にさらに詳しく説明するように動的に扱われる。
【００２０】
図２は、実施形態の例のコンピューティング・システム１００で、少なくとも２つのドメインが定義されている構成の例を示している。第１のドメインは、縦断面線で識別されており、システム・ボード１１０（ｎ／２＋２）、システム・ボード１１０（１）の構成システム・ボード２００、およびシステム・ボード１１０（２）のＩ／Ｏボード２０５を含む。第２のドメインは、実施形態の例では、システム・ボード１１０（３）、１１０（ｎ／２＋１）、および１１０（ｎ／２＋３）、システム・ボード１１０（１）のＩ／Ｏボード２０５、およびシステム・ボード１１０（２）の構成システム・ボード２００を含む。
【００２１】
１つのドメインは、システム・ボード１１０（１）〜１１０（ｎ）全体、選択されたシステム・ボード１１０（１）〜１１０（ｎ）の１つまたは複数のボード（構成システム・ボード２００、Ｉ／Ｏボード２０５など）、またはその組合せで形成することができる。必ずしも必要ではないが、各システム・ボード１１０（１）〜１１０（ｎ）を個別のドメインとして定義することが可能である。例えば、各システム・ボード１１０（１）〜１１０（ｎ）がそれ自体ドメインである場合、コンピューティング・システム１００は、考えられる限りでは、最高「ｎ」個（すなわちシステム・ボードの数）までの異なるドメインを有することができる。同じシステム・ボード１１０（１）〜１１０（ｎ）からの２つのボード（例えば構成システム・ボード２００、Ｉ／Ｏボード２０５）が異なるドメインにあるとき、こうした構成は「分割拡張機構（ｓｐｌｉｔ ｅｘｐａｎｄｅｒ）」と呼ばれる。システム・ボード１１０（１）〜１１０（ｎ）の拡張ボード２１０は、各ドメインごとにトランザクションを分離させておく。物理的な近さは、システム・ドメインのボードには要求されない。分割拡張機構の構成が、Ｄｏｎａｌｄ  Ｋａｎｅ、Ｓｔｅｖｅｎ  Ｅ．Ｗｅｉｓｓ、Ｅｒｉｃ  Ｇｒａｆ、およびＡｎｄｒｅｗ  Ｐｈｅｌｐｓによる「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＰＲＯＶＩＤＩＮＧ  ＥＲＲＯＲ  ＩＳＯＬＡＴＩＯＮ  ＩＮ  Ａ  ＭＵＬＴＩ−ＤＯＭＡＩＮ  ＣＯＭＰＵＴＥＲ  ＳＹＳＴＥＭ」という名称の米国特許出願第０９／９６３，０８２号（弁理士整理番号２０７０．００４７００、顧客整理番号Ｐ６７６３）により詳しく記載されている。
【００２２】
しかし本発明は、システム・ドメインの形成が動的に行われるコンピューティング・システムに限定されていないことに注意されたい。例えば、いくつかの実施形態では、システム・リソースの様々なシステム・ドメインへの割振りをコンピューティング・システム全体のリセット後のみに制限しているものがある。さらに、リソースを、手動または自動（すなわち、１つまたは複数のシステム制御ボード１０５（１）、１０５（２）の自動制御下）のいずれかでシステム・ドメインに割り振ることができる。システム・ドメインを作成し、削除するやり方、および既存のシステム・ドメインにリソースを割り振る、または割り振り直すやり方は、本発明の実施にとって重要ではない。
【００２３】
図１に戻って、システム・ボード１１０（１）〜１１０（ｎ）間の通信は、センタープレーン１１５を介して実行される。図３Ａに示すように、センタープレーン１１５は、実施形態の例では、システム・ボード１１０（１）〜１１０（ｎ）で定義されたシステム・ドメイン間でそれぞれのデータ信号、アドレス信号、および応答信号を送信するためのデータ相互接続３００、アドレス相互接続３０５、および応答相互接続３１０を含む。より詳細には、データ相互接続３００およびライン３１５はデータ信号パスを、アドレス相互接続３０５およびライン３２０はアドレス信号パスを、応答相互接続３１０およびライン３２５は応答信号パスを備えている。したがってセンタープレーン１１５は、ドメイン内およびドメイン間の通信を可能にするために個別のデータ・パス、アドレス・パス、および応答信号パスを提供する３つの相互接続３００、３０５、３１０を含む。
【００２４】
図３Ａでは、システム・ボード１１０（１）〜１１０（ｎ）と相互接続３００、３０５、３１０の間に複数のポイントツーポイント接続がある。図３Ａに示した信号パスは、多数の個々の信号パスの集まりである。各個々の信号パスは数ビット幅に及ぶ。例えば特定の一実施形態では、データ・パスは２８８ビット幅、アドレス・パスは１４８ビット幅、応答パスは６６ビット幅である。したがって、各ライン３１５、３２０、３２５は数ビット幅に及ぶ。各個々の信号パスは、２つの半分部分を備える。
【００２５】
オペレーションの「通常の」モードでは、コンピューティング・システム１００は、所与のトランザクションの情報を２つのメッセージに分割し、それぞれの個々の信号パスの２つの半分に２つのメッセージを並列に送信する。例えば、データ・トランザクションのペイロードを２つの部分に分割して、１つのペイロード部分を信号パスのそれぞれの半分に乗せて送信することができる。各半分のトランザクションの制御情報は、両方の半分のトランザクションに対して同じである。実施形態の例では、制御情報はパリティ検査で保護され、ペイロード情報は、１ビット・エラーの訂正および２ビット・エラーの検出を行うことができるエラー検出および訂正（ＥＣＣ）コードで保護される。
【００２６】
本発明によれば、コンピューティング・システム１００は、半分の信号パスの片方に障害が起こると、「低下モード」になる。実施形態の例の低下モードでは、すべての情報が単一の半分のパスに乗せて単一メッセージとして送信される。これによって、通常モードの２倍のサイクルがかかるが、コンピューティング・システム１００は、障害が起こった部分も含めて、障害が回復するまで依然として使用可能である。
【００２７】
図３Ａに示すように、システム制御ボード１０５（１）、１０５（２）は、データ信号パス、アドレス信号パス、応答信号パスを介さない。システム制御ボード１０５（１）、１０５（２）は、代わりに、それぞれコンソール接続３２８（１）、３２８（２）を介して相互接続３００、３０５、３１０に接続されている。システム制御ボード１０５（１）、１０５（２）は、以下により十分に説明するように、コンソール接続３２８（１）、３２８（２）を介した相互接続３００、３０５、３１０を構成する。
【００２８】
次に図３Ｂを参照すると、各相互接続３００、３０５、３１０は、２つの半分部分３３０（１）および３３０（２）を含んでいる。各半分部分３３０（１）、３３０（２）は、１つまたは複数のＡＳＩＣ（図示せず）によって実装され、ｍ個の受信ポート３３５（１）〜３３５（ｍ）およびｍ個の送信ポート３４０（１）〜３４０（ｍ）を有する。ここでは、ｍは、コンピューティング・システム１００にある拡張ボード２１０の数である。したがって、１８の拡張ボードがある場合、各半分部分３３０は、１８の受信ポート３３５と１８の送信ポート３４０を含む。各半分部分３３０（１）、３３０（２）は、個々の信号パスの半分の情報を扱うため、ポート３３５（１）〜３３５（ｍ）、３４０（１）〜３４０（ｍ）のそれぞれは、個々の信号パスのビット幅の半分である。
【００２９】
図３Ｃに示すように、各半分部分３３０（１）、３３０（２）はそれぞれ、アービタ３３１（１）、３３１（２）、およびクロスバー・スイッチ３３２（１）、３３２（２）を含む。アービタ３３１（１）、３３１（２）は、メッセージの半分の両方が適切な順序で宛先に送られるよう同時性を維持するために、ロックステップ方法で動作する。説明のために、図３Ｄに示した、システム・ボード１１０（１）の拡張ボード２１０にあるスイッチ３８０と、システム・ボード１１０（ｎ）の拡張ボード２１０にあるスイッチ３８０の間の個々のデータ信号パス３４５について考察する。各拡張ボード２１０は、この特定の実施形態では、以下により十分説明するやり方でトランザクションが送受信されるスイッチ３８０を含む。アドレス信号パスおよび応答信号パスは、例えばデータ相互接続３００の代わりにアドレス相互接続３０５が使用されるといった明白な変更を除いて、同じように構成される。
【００３０】
図３Ｅに示すように、各スイッチ３８０は、それぞれの応答信号パス、データ信号パス、アドレス信号パスを介して受信される情報を扱うアドレス／応答スイッチ３５０とデータ・スイッチ３５５を含む。したがって、スイッチ３８０は、そのそれぞれのシステム・ボード１１０（１）〜１１０（ｎ）のすべての信号パスのトランザクションを扱う。スイッチ３８０のこれらのスイッチの数は、本発明にとって重要ではないことに注意されたい。例えば、実施形態の中には、１〜３までの任意の数を使用するものもある。応答／アドレス・スイッチ３５０およびデータ・スイッチ３５５は、コンソール接続３２８（１）、３２８（２）を介して構成することも可能なＡＳＩＣ（図示せず）にも実装される。
【００３１】
図３Ｄに戻って、個々のデータ信号パス３４５は、第１の半分部分３６０（１）および第２の半分部分３６０（２）を備える。コンピューティング・システム１００が通常モードで動作するとき、所与のトランザクションに関する情報は２つの部分に分けられ、各部分は、それぞれのメッセージに制御情報を含む共通のヘッダに包含される。次いで各メッセージは、個々のデータ信号パス３４５（データ相互接続３００のそれぞれの半分部分３３０（１）、３３０（２）を含む）のそれぞれの半分部分３６０（１）、３６０（２）を介して、一方のスイッチ３８０からもう一方のスイッチ３８０に送信される。
【００３２】
例えば、図３Ｄの個々のデータ信号パス３４５など、信号パスの数およびタイプは実装固有である。実施形態の例では、３種類の個別の信号パス、すなわちデータ、アドレス、応答の信号パスがある。各システム・ボード１１０（１）の各拡張ボード２１０の間に各種類の信号パスが１つある。したがって実施形態の例では、（３×ｎ×ｎ）の信号パスがある。一実施態様では、ｎ＝１であり、計９７２の信号パスが得られる。しかしこの数は、信号パスの種類の数および拡張ボード２１０の数に応じて異なっていてよい。
【００３３】
実施形態の例では、コンピューティング・システム１００が対称的な物理構成を有することに注意されたい。つまり、システム・ボード１１０（１）〜１１０（ｎ）の半分は、物理的にセンタープレーン１１５の片側に配置され、システム・ボード１１０（１）〜１１０（ｎ）のもう一方の半分は、物理的にセンタープレーン１１５の反対側に配置される。特定の一実施態様ではｎ＝１８であり、したがってシステム・ボード１１０（１）〜１１０（９）はセンタープレーン１１５の片側に、システム・ボード１１０（１０）〜１１０（１８）は反対側にある。さらに、実施形態の例では、第１のシステム制御ボード１０５（１）と第２のシステム制御ボード１０５（２）は、センタープレーン１１５に対して互いに対角線上に配置される。ボード１０５（１）、１０５（２）、１１０（１）〜１１０（ｎ）を図のように対称的に配置することによって、センタープレーン１１５の両側でインターフェース接続をうまく利用することができる。しかし、本発明は、対称的な物理構成を使用するコンピューティング・システムに限定されない。したがって、代替実施形態の中には、システム制御ボード１０５（１）、１０５（２）、センタープレーン１１５、およびシステム・ボード１１０（１）〜１１０（ｎ）の物理的構成が非対照的なものもある。
【００３４】
図３Ｃに戻って、スイッチ３８０は、トランザクションの２つの半分部分をアービタ３３１（１）、３３１（２）のそれぞれに、それぞれパス３６０（１）、３６０（２）を介してルーティングする。このルーティングは、トランザクションのビットスライシングと呼ばれる。ビットスライシング構成では、同じトランザクションの部分を扱う２つまたは複数の任意の構成要素が、同時に同じようにこれらの部分に作用する必要がある。同時に起こるこのアクションをロックステップ・オペレーションと呼ぶ。ドメインを交差するトランザクションの場合、１つのドメインでのトランザクションのエラーによって、別のドメインが使用するポート３３５（１）〜３３５（ｍ）、３４０（１）〜３４０（ｍ）に関して、アービタ３３１（１）、３３１（２）のロックステップ・オペレーションが喪失する可能性がある。したがって、トランザクションが複数のドメインによって共有されるポート３３５（１）〜３３５（ｍ）を介して受信された場合、誤ったトランザクションを引き起こした１つのドメインでのハードウェアの障害によって、ロックステップの喪失のために別のドメインで問題が起きるのを防ぐようにするために追加のチェックが行われる。異なるドメイン間で共有されるポート３３５（１）〜３３５（ｍ）のこの監視によって、フォールト・トレランスに関してドメインのさらなる分離が行われる。共有ドメイン・ポート３３５（１）３３５（ｍ）は、複数のドメインにトランザクションを通信する権限が与えられているポート３３５（１）〜３３５（ｍ）を含む。分割拡張機構に関連付けられているポート３３５（１）〜３３５（ｍ）から発行されるトランザクションは、共有ドメイン・ポート３３５（１）〜３３５（ｍ）から発行されるものとしても扱われる。というのは、構成システム・ボード２００およびＩ／Ｏボード２０５は異なるドメインにあり、分割拡張機構での個々のトランザクションがドメインを交差しているかどうかは容易にはわからないためである。
【００３５】
トランザクションは、ビットスライスされており、パス３６０（１）、３６０（２）を介して同時に送信されるため、二分されたトランザクションの一方に制御情報のエラーがある場合がある。トランザクションのエラーのない部分が送信を許可され、エラー部分が送信を禁止された場合、アービタ３３１（１）、３３１（２）はもはや互いにロックステップではなくなる。ロックステップの喪失によって、コンピューティング・システム１００の他のドメインが影響を受けることになる。
【００３６】
３つのドメインＡ、Ｂ、Ｃを有するシステム構成を考察する。ドメインＡ、Ｂに関連付けられている分割拡張機構からのトランザクションのエラーによって、ドメインＡ、Ｂに関連付けられているすべてのポート３３５（１）〜３３５（ｍ）のロックステップが失われる可能性がある。別の分割拡張機構を、ドメインＢ、Ｃに関連付けることができる。ドメインＡ、Ｂに関連付けられているポート３３５（１）〜３３５（ｍ）のロックステップの喪失は、第２の分割拡張機構のために、最終的にドメインＣに広がることになる。したがって、次いでドメインＣに関連付けられているすべてのポート３３５（１）〜３３５（ｍ）のロックステップが失われる。
【００３７】
複数のドメインに影響を与えるおそれのあるトランザクションに関する問題を検出するには、アービタ３３１（１）、３３１（２）は、エラーをチェックできるように、共有ドメイン・ポート３３５（１）〜３３５（ｍ）に関連付けられているすべてのトランザクションに２サイクル遅延を課す。アービタ３３１（１）、３３１（２）は、失敗したエラー・チェックを通信するためにコリーグ通知（ｃｏｌｌｅａｇｕｅ ｎｏｔｉｆｉｃａｔｉｏｎ）信号を交換する。実施形態の例では、アービタ３３１（１）、３３１（２）は、トランザクションの各半分に関連付けられている制御情報のパリティ検査を行う。パリティ検査では、エラーは検出できるが、訂正はできない。トランザクションのペイロード部分は、ＥＣＣコードで保護されるため、ペイロードのエラーを検出し、おそらく他のドメインを危険にさらすことなく下流で訂正することができる。しかし、誤った制御情報が他のドメインに影響を与える可能性があるため、制御情報にエラーのある任意のトランザクションは、クロスバー・スイッチ３３２（１）、３３２（２）に送信されない。
【００３８】
遅延によって、アービタ３３１（１）、３３１（２）は、トランザクションが影響を受ける前に、共有ドメイン・ポート３３５（１）〜３３５（ｍ）からのトランザクションのパリティ検査を行うことができる。アービタ３３１（１）、３３１（２）は、いずれかの半分部分がエラーであることがわかった場合、トランザクションを中止する。いずれかのアービタ３３１（１）、３３１（２）は、制御情報のパリティ・エラーを検出した場合、もう一方のアービタ３３１（１）、３３１（２）にコリーグ通知信号を送信する。両方のアービタ３３１（１）、３３１（２）がパリティ・エラーを検出した場合、両方ともがコリーグ通知信号を送信する。
【００３９】
もう一方のアービタ３３１（１）、３３１（２）からコリーグ通知信号を受信した後、両方のアービタ３３１（１）、３３１（２）は、現在のトランザクションを中止して、誤ったトランザクションを発行したポートがさらにトランザクションを発行しないようにする。相互接続３００、３０５、３１０の各ポートは、他のポートのどれにそれがアクセスするかを指定する関連したマスクを有する。アービタ３３１（１）、３３１（２）は、誤ったポートが阻止されるように他のすべてのポートにマスクを設定することによって誤ったトランザクションに関連付けられているポートからの他のトランザクションを使用不可にすることができる。
【００４０】
実施形態の例では、コリーグ通知信号は、両方とも１である２つの開始ビット、５ビットのバイナリ・ポート番号識別子、および３ビットのチェックサムで構成されるシリアルのビットストリームである。チェックサムは、開始ビットおよびポート番号のバイナリ合計である。チェックサムは６未満である。各アービタ３３１（１）、３３１（２）は、この信号の２つのコピーを同期してそのコリーグに送信する。アービタ３３１（１）、３３１（２）の複数のポートがコリーグ通知へのアクセスを同時に要求することができるため、通知回路は、選択的に一度に１つのポートがシリアル通知（ｓｅｒｉａｌ ｎｏｔｉｆｙ）を発することができるようにする調停機能を実装することができる。
【００４１】
受信側アービタ３３１（１）、３３１（２）は、コリーグ通知信号の第１のビットが１であると認識されたときにすぐに停止する。その後、シリアル通知をデコードできるまで、その停止が受信側回路によって保持される。関係するポートがデコードされ、チェックサムが有効であるとわかったら、すべてのドメインに対する停止が解除され、影響を受けたドメインが停止コマンドを実行するように指示される。また、影響を受けたポートは、害のあるトランザクションが受信バッファに押し入ることができないように、かつ／または調停サービスを要求できないようにすることによって、害のあるトランザクションをフラッシュする。
【００４２】
コリーグ通知メッセージを受け取ると、アービタ３３１（１）、３３１（２）は、２つのシリアル・ビットストリームのそれぞれを、適切な通知があるかどうかチェックし、次いで２つの通知を比較する。適切な通知には、以下の特徴がある。
・両方とも１の連続する２つの開始ビット
・正当な５ビットのポート番号。正当＝０×０００００ないし０×１０００１
・上記のチェックサムに等しい３ビットのチェックサム
【００４３】
有効な通知イベントの識別の後、エラーを識別したアービタ３３１（１）、３３１（２）は、他のエラー処理ができるようにするためにエラー・メッセージをシステム制御ボード１０５（１）、１０５（２）に送信する。また、システム制御ボード１０５（１）、１０５（２）は、使用不可なポートを考慮してコンピューティング・システム１００を動的に再構成する。
【００４４】
図４を参照すると、本発明の一実施形態に従ってコンピュータ・システム内のドメイン間のトランザクションを調停する方法の概略ブロック図を示している。ブロック４００では、１つのコンピューティング・システム内の複数のドメイン間でトランザクションを通信する複数のポートを有する相互接続が提供される。各ポートは、ドメインのサブセットに関連付けられている。相互接続は、トランザクションの第１の部分を送信する第１の信号パス、およびトランザクションの第２の部分を送信する第２の信号パスを含む。ブロック４１０で、複数のドメインと関連付けられているポートの１つから発行されたトランザクションが識別される。ブロック４２０で、トランザクションの第１の部分および第２の部分の一方のエラーが識別される。ブロック４３０で、エラーの識別に応じてトランザクションがキャンセルされる。
【００４５】
共有ドメイン・ポート３３５（１）〜３３５（ｍ）から発行されるトランザクションのエラーを識別し、こうしたトランザクションが影響を受けないようにすることによって、コンピューティング・システム１００の安定性が向上する。こうした監督によって、個々のドメインは他のドメインの障害を受けにくくなるので、頑強性が向上する。
【００４６】
本発明は、様々な、しかし本明細書の教示の利益を受ける当分野の技術者には明らかな同等のやり方で変更し実行することができるため、上述した特定の実施形態は、例として示しているにすぎない。さらに、頭記の特許請求の範囲に記載したもの以外、本明細書に示した構造および設計の詳細に限定するものではない。したがって、上記に開示した特定の実施形態は、改変または変更することができ、こうしたすべての変形形態は、本発明の範囲および意図の中に含まれるものとみなされることは明らかである。したがって、本明細書で要求する保護を頭記の特許請求の範囲に記載している。
【図面の簡単な説明】
【図１】
本発明の一実施形態に従ってコンピューティング・システムを示す様式的なブロック図である。
【図２】
本発明の一実施形態に従って、図１のシステムで使用できるシステム・ドメイン構成の一例を示すブロック図である。
【図３Ａ】
本発明の一実施形態に従って図１および２のコンピューティング・システムの信号パスの様々な態様を示す図である。
【図３Ｂ】
本発明の一実施形態に従って図１および２のコンピューティング・システムの信号パスの様々な態様を示す図である。
【図３Ｃ】
本発明の一実施形態に従って図１および２のコンピューティング・システムの信号パスの様々な態様を示す図である。
【図３Ｄ】
本発明の一実施形態に従って図１および２のコンピューティング・システムの信号パスの様々な態様を示す図である。
【図３Ｅ】
本発明の一実施形態に従って図１および２のコンピューティング・システムの信号パスの様々な態様を示す図である。
【図４】
本発明の一実施形態に従ってコンピュータ・システム内のドメイン間のトランザクションを調停する方法を示す概略ブロック図である。
【図１】
2005508045.tif 000003
【図２】
2005508045.tif 000004
【図３Ａ】
2005508045.tif 000005
【図３Ｂ】
2005508045.tif 000006
【図３Ｃ】
2005508045.tif 000007
【図３Ｄ】
2005508045.tif 000008
【図３Ｅ】
2005508045.tif 000009
【図４】
2005508045.tif 000010
【国際公開パンフレット】
2005508045.tif 000011
2005508045.tif 000012
2005508045.tif 000013
2005508045.tif 000014
2005508045.tif 000015
2005508045.tif 000016
2005508045.tif 000017
2005508045.tif 000018
2005508045.tif 000019
2005508045.tif 000020
2005508045.tif 000021
2005508045.tif 000022
2005508045.tif 000023
2005508045.tif 000024
2005508045.tif 000025
2005508045.tif 000026
2005508045.tif 000027
2005508045.tif 000028
2005508045.tif 000029
2005508045.tif 000030
【国際調査報告】
2005508045.tif 000031
2005508045.tif 000032
2005508045.tif 000033