(57)【要約】データのアービトレーションおよび伝送のための方法および機構。第１のトランザクションおよび第２のトランザクションが検出される。第１のトランザクションは第１のドメインをターゲットとし、第２のトランザクションは第１のドメインとは異なる第２のドメインをターゲットとする。トランザクションを受け取った後、それぞれの対応するアービトレーション・ドメインが決定される。アービトレーション・ドメインが等しくないことを検出すると、これに応答して第１および第２のトランザクションを同時に伝送することができる。ただし、アービトレーション・ドメインが等しいと判定されると、アービトレーションが実行され、第１および第２のトランザクションの伝送はシリアル化される。さらに、受け取られたそれぞれのトランザクションに対応してマスクを生成することも企図されている。生成されるマスクには、対応するトランザクションのターゲット・ドメインの表示が含まれる。トランザクションが伝送用ポートに搬送されると、そのマスクも同様に搬送される。各ポートには、接続先のドメインを示すドメイン・ベクトル・レジスタが含まれる。受け取られたマスクとドメイン・ベクトル・レジスタとを比較することにより、トランザクションがポートで出力されるかどうかに関する判定が行われる。
2005502267.tif 000002
【特許請求の範囲】
【請求項１】
第１のドメインをターゲットとする第１のトランザクションを受け取ること、
第２のドメインをターゲットとする第２のトランザクションを受け取ること、
前記第１のトランザクションに対応する第１のアービトレーション・ドメインを決定すること、
前記第２のトランザクションに対応する第２のアービトレーション・ドメインを決定すること、
前記第１のアービトレーション・ドメインが前記第２のアービトレーション定義に等しくないことの検出に応答して、前記第１および第２のトランザクションを同時に伝送すること、および
前記第１のアービトレーション・ドメインが前記第２のアービトレーション定義に等しいことの検出に応答して、前記第１および第２のトランザクションの伝送をシリアル化すること
を含むデータを伝送する方法。
【請求項２】
前記第１のトランザクションに対応する、前記第１のドメインを示す第１のマスクを生成すること、および
前記第２のトランザクションに対応する、前記第２のドメインを示す第２のマスクを生成することをさらに含む請求項１に記載の方法。
【請求項３】
前記第１および第２のトランザクションを同時に伝送することが、
前記第１のトランザクションを第１のポートに搬送すること、
前記第２のトランザクションを第２のポートに搬送すること、
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に応答して、前記第１のトランザクションを前記第１のポートを介して伝送すること、および、
前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に応答して、前記第２のトランザクションを前記第２のポートを介して伝送することを含む請求項２に記載の方法。
【請求項４】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれる請求項３に記載の方法。
【請求項５】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれる請求項４に記載の方法。
【請求項６】
前記第１および第２のアービトレーション・ドメインを決定することに、ルックアップ・テーブルを照会することが含まれる請求項５に記載の方法。
【請求項７】
第１のポートが前記第１のドメインに結合され、前記第２のドメインには結合されておらず、第２のポートが前記第１のドメインおよび前記第２のドメインに結合され、前記第１および第２のトランザクションをシリアル化することが、
前記第１のトランザクションを前記第１のポートおよび前記第２のポートに同時に搬送すること、および
前記第２のトランザクションを前記第１のポートおよび前記第２のポートに同時に搬送することを含み、
前記第１のトランザクションを前記第１のポートおよび前記第２のポートに搬送した後に、前記第２のトランザクションが前記第１のポートおよび前記第２のポートに搬送される請求項２に記載の方法。
【請求項８】
前記第１のトランザクションが前記第１のポートを介して伝送できることの検出に応答して、前記第１のポートを介して前記第１のトランザクションを伝送すること、
前記第１のトランザクションが前記第２のポートを介して伝送できることの検出に応答して、前記第２のポートを介して前記第１のトランザクションを伝送すること、
前記第２のトランザクションが前記第１のポートを介して伝送できることの検出に応答して、前記第１のポートを介して前記第２のトランザクションを伝送すること、および
前記第２のトランザクションが前記第２のポートを介して伝送できることの検出に応答して、前記第２のポートを介して前記第２のトランザクションを伝送することをさらに含む請求項７に記載の方法。
【請求項９】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第１のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第１のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第２のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれる請求項８に記載の方法。
【請求項１０】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第１のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれる請求項９に記載の方法。
【請求項１１】
前記第１のトランザクションが前記第１のポートを介して伝送できないことの検出に応答して、前記第１のポートを介した前記第１のトランザクションの伝送を抑止すること、
前記第１のトランザクションが前記第２のポートを介して伝送できないことの検出に応答して、前記第２のポートを介した前記第１のトランザクションの伝送を抑止すること、
前記第２のトランザクションが前記第１のポートを介して伝送できないことの検出に応答して、前記第１のポートを介した前記第２のトランザクションの伝送を抑止すること、および
前記第２のトランザクションが前記第２のポートを介して伝送できないことの検出に応答して、前記第２のポートを介した前記第２のトランザクションの伝送を抑止することをさらに含む請求項８に記載の方法。
【請求項１２】
前記第１および第２のアービトレーション・ドメインを決定することに、ルックアップ・テーブルを照会することが含まれる請求項１１に記載の方法。
【請求項１３】
前記第１および第２のトランザクションを同時に伝送することが、
前記第１のトランザクションを第１のポートに搬送すること、
前記第２のトランザクションを第２のポートに搬送すること、
前記第１のトランザクションが前記第１のポートを介して搬送できることを示す前記第１のトランザクションに対応する識別子の検出に応答して、前記第１のトランザクションを前記第１のポートを介して伝送すること、および、
前記第２のトランザクションが前記第２のポートを介して搬送できることを示す前記第２のトランザクションに対応する識別子の検出に応答して、前記第２のトランザクションを前記第２のポートを介して伝送することを含む請求項１に記載の方法。
【請求項１４】
第１の出力ポートと、
第２の出力ポートと、
第１のドメインをターゲットとする第１のトランザクションおよび第２のドメインをターゲットとする第２のトランザクションを検出するように構成され、前記第１のトランザクションに対応する第１のアービトレーション・ドメインと、前記第２のトランザクションに対応する第２のアービトレーション・ドメインとを決定するように構成されたアービトレーション・ユニットと
を備えるスイッチであって、
前記第１のアービトレーション・ドメインが前記第２のアービトレーション定義に等しくないことの検出に応答して、前記第１および第２のトランザクションを同時に伝送するように構成され、前記第１のアービトレーション・ドメインが前記第２のアービトレーション定義に等しいことの検出に応答して、前記第１および第２のトランザクションをシリアルに伝送するように構成されたスイッチ。
【請求項１５】
さらに前記アービトレーション・ユニットが、
前記第１のトランザクションに対応する、前記第１のドメインを示す第１のマスクを生成し、
前記第２のトランザクションに対応する、前記第２のドメインを示す第２のマスクを生成するように構成された請求項１４に記載のスイッチ。
【請求項１６】
前記第１および第２のトランザクションを同時に伝送する際に、前記スイッチが、
前記第１のトランザクションを第１のポートに搬送し、
前記第２のトランザクションを第２のポートに搬送し、
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に応答して、前記第１のトランザクションを前記第１のポートを介して伝送し、
前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に応答して、前記第２のトランザクションを前記第２のポートを介して伝送するように構成された請求項１５に記載のスイッチ。
【請求項１７】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれる請求項１６に記載のスイッチ。
【請求項１８】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれる請求項１７に記載のスイッチ。
【請求項１９】
前記アービトレーション・ユニットが、ルックアップ・テーブルの照会によって前記第１および第２のアービトレーション・ドメインを決定するように構成された請求項１８に記載のスイッチ。
【請求項２０】
第１のポートが前記第１のドメインに結合され、前記第２のドメインには結合されておらず、第２のポートが前記第１のドメインおよび前記第２のドメインに結合され、前記スイッチが、
前記第１のトランザクションを前記第１のポートおよび前記第２のポートに同時に搬送すること、および
前記第２のトランザクションを前記第１のポートおよび前記第２のポートに同時に搬送することによって、前記第１および第２のトランザクションをシリアル化するように構成され、
前記第１のトランザクションを前記第１のポートおよび前記第２のポートに搬送した後に、前記第２のトランザクションが前記第１のポートおよび前記第２のポートに搬送される請求項１５に記載のスイッチ。
【請求項２１】
前記第１のトランザクションの前記第１のポートへの前記搬送と、前記第２のトランザクションの前記第２のポートへの前記搬送とに続いて、さらに前記スイッチが、
前記第１のトランザクションが前記第１のポートを介して伝送できることの検出に応答して、前記第１のポートを介して前記第１のトランザクションを伝送し、
前記第１のトランザクションが前記第２のポートを介して伝送できることの検出に応答して、前記第２のポートを介して前記第１のトランザクションを伝送し、
前記第２のトランザクションが前記第１のポートを介して伝送できることの検出に応答して、前記第１のポートを介して前記第２のトランザクションを伝送し、
前記第２のトランザクションが前記第２のポートを介して伝送できることの検出に応答して、前記第２のポートを介して前記第２のトランザクションを伝送するように構成された請求項２０に記載のスイッチ。
【請求項２２】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第１のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第１のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第２のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれる請求項２１に記載のスイッチ。
【請求項２３】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第１のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれる請求項２２に記載のスイッチ。
【請求項２４】
前記第１のトランザクションが前記第１のポートを介して伝送できないことの検出に応答して、前記第１のポートを介した前記第１のトランザクションの伝送を抑止すること、
前記第１のトランザクションが前記第２のポートを介して伝送できないことの検出に応答して、前記第２のポートを介した前記第１のトランザクションの伝送を抑止すること、
前記第２のトランザクションが前記第１のポートを介して伝送できないことの検出に応答して、前記第１のポートを介した前記第２のトランザクションの伝送を抑止すること、および
前記第２のトランザクションが前記第２のポートを介して伝送できないことの検出に応答して、前記第２のポートを介した前記第２のトランザクションの伝送を抑止することをさらに含む請求項２１に記載のスイッチ。
【請求項２５】
前記アービトレーション・ユニットが、ルックアップ・テーブルの照会によって前記第１および第２のアービトレーション・ドメインを決定するように構成された請求項２４に記載のスイッチ。
【請求項２６】
前記第１および第２のトランザクションを同時に伝送するために、前記スイッチが、
前記第１のトランザクションを前記第１の出力ポートに搬送し、
前記第２のトランザクションを前記第２の出力ポートに搬送し、
前記第１のトランザクションが前記第１の出力ポートを介して搬送できることを示す前記第１のトランザクションに対応する識別子の検出に応答して、前記第１のトランザクションを前記第１の出力ポートを介して伝送し、
前記第２のトランザクションが前記第２の出力ポートを介して搬送できることを示す前記第２のトランザクションに対応する識別子の検出に応答して、前記第２のトランザクションを前記第２のポートを介して伝送するように構成された請求項１４に記載のスイッチ。
【請求項２７】
第１のドメインに対応する第１のノードと、
第２のドメインに対応する第２のノードと、
前記第１のノードおよび前記第２のノードに結合されたスイッチとを備えるシステムであって、前記スイッチが、
前記第１のドメインをターゲットとする第１のトランザクションおよび前記第２のドメインをターゲットとする第２のトランザクションを検出し、
前記第１のトランザクションに対応する第１のアービトレーション・ドメインと、前記第２のトランザクションに対応する第２のアービトレーション・ドメインとを決定し、
前記第１のアービトレーション・ドメインが前記第２のアービトレーション定義に等しくないことの検出に応答して、前記第１および第２のトランザクションを同時に伝送し、
前記第１のアービトレーション・ドメインが前記第２のアービトレーション定義に等しいことの検出に応答して、前記第１および第２のトランザクションをシリアルに伝送するように構成されたシステム。
【請求項２８】
さらに前記スイッチが、
前記第１のトランザクションに対応する、前記第１のドメインを示す第１のマスクを生成し、
前記第２のトランザクションに対応する、前記第２のドメインを示す第２のマスクを生成するように構成された請求項２７に記載のシステム。
【請求項２９】
前記第１および第２のトランザクションを同時に伝送する際に、前記スイッチが、
前記第１のトランザクションを前記スイッチの第１のポートに搬送し、
前記第２のトランザクションを前記スイッチの第２のポートに搬送し、
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に応答して、前記第１のトランザクションを前記第１のポートを介して伝送し、
前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に応答して、前記第２のトランザクションを前記第２のポートを介して伝送するように構成された請求項２８に記載のシステム。
【請求項３０】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれる請求項２９に記載のシステム。
【請求項３１】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれる請求項３０に記載のシステム。
【請求項３２】
前記スイッチが、ルックアップ・テーブルの照会によって前記第１および第２のアービトレーション・ドメインを決定するように構成された請求項３１に記載のシステム。
【請求項３３】
前記スイッチの第１のポートが前記第１のドメインに結合され、前記第２のドメインには結合されておらず、前記スイッチの第２のポートが前記第１のドメインおよび前記第２のドメインに結合され、前記スイッチが、
前記第１のトランザクションを前記第１のポートおよび前記第２のポートに同時に搬送すること、および
前記第２のトランザクションを前記第１のポートおよび前記第２のポートに同時に搬送することによって、前記第１および第２のトランザクションをシリアル化するように構成され、
前記第１のトランザクションを前記第１のポートおよび前記第２のポートに搬送した後に、前記第２のトランザクションが前記第１のポートおよび前記第２のポートに搬送される請求項２８に記載のシステム。
【請求項３４】
前記第１のトランザクションの前記第１のポートへの前記搬送と、前記第２のトランザクションの前記第２のポートへの前記搬送とに続いて、さらに前記スイッチが、
前記第１のトランザクションが前記第１のポートを介して伝送できることの検出に応答して、前記第１のポートを介して前記第１のトランザクションを伝送し、
前記第１のトランザクションが前記第２のポートを介して伝送できることの検出に応答して、前記第２のポートを介して前記第１のトランザクションを伝送し、
前記第２のトランザクションが前記第１のポートを介して伝送できることの検出に応答して、前記第１のポートを介して前記第２のトランザクションを伝送し、
前記第２のトランザクションが前記第２のポートを介して伝送できることの検出に応答して、前記第２のポートを介して前記第２のトランザクションを伝送するように構成された請求項３３に記載のシステム。
【請求項３５】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第１のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第１のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第２のマスクを前記第１のポートのドメイン・ベクトル・レジスタと比較することが含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のマスクを前記第２のポートのドメイン・ベクトル・レジスタと比較することが含まれる請求項３４に記載のシステム。
【請求項３６】
前記第１のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第１のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第１のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第２のポートを介して搬送できることの検出に、前記第２のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれ、前記第２のトランザクションが前記第１のポートを介して搬送できることの検出に、前記第１のポートの前記ドメイン・ベクトル・レジスタが、前記第２のマスクで設定されたビットに対応するビット設定を有すると判定することがさらに含まれる請求項３５に記載のシステム。
【請求項３７】
前記第１のトランザクションが前記第１のポートを介して伝送できないことの検出に応答して、前記第１のポートを介した前記第１のトランザクションの伝送を抑止すること、
前記第１のトランザクションが前記第２のポートを介して伝送できないことの検出に応答して、前記第２のポートを介した前記第１のトランザクションの伝送を抑止すること、
前記第２のトランザクションが前記第１のポートを介して伝送できないことの検出に応答して、前記第１のポートを介した前記第２のトランザクションの伝送を抑止すること、および
前記第２のトランザクションが前記第２のポートを介して伝送できないことの検出に応答して、前記第２のポートを介した前記第２のトランザクションの伝送を抑止することをさらに含む請求項３４に記載のシステム。
【請求項３８】
前記スイッチが、ルックアップ・テーブルの照会によって前記第１および第２のアービトレーション・ドメインを決定するように構成された請求項３７に記載のシステム。
【請求項３９】
前記スイッチが、
前記第１のトランザクションを第１のポートに搬送すること、
前記第２のトランザクションを第２のポートに搬送すること、
前記第１のトランザクションが前記第１のポートを介して搬送できることを示す前記第１のトランザクションに対応する識別子の検出に応答して、前記第１のトランザクションを前記第１のポートを介して伝送すること、および
前記第２のトランザクションが前記第２のポートを介して搬送できることを示す前記第２のトランザクションに対応する識別子の検出に応答して、前記第２のトランザクションを前記第２のポートを介して伝送することによって、前記第１および第２のトランザクションを同時に伝送するように構成された請求項２７に記載のシステム。
【発明の詳細な説明】
【０００１】
（発明の背景）
発明の分野
本発明はデジタル通信の分野に関し、より具体的に言えば、マルチドメイン内での通信のアービトレーションに関する。
【０００２】
関連分野の説明
データ通信の分野では、様々なデバイス間で通信を可能にするために、これらのデバイス間に通信ネットワークを作成することが一般的である。さらに、こうしたネットワークは、一定のデバイスがいくつかのデバイスとは通信可能であるが他のいくつかのデバイスとは通信不能であるように構成することも一般的である。たとえば、企業ネットワークは、銀行のニーズを満たすためにいくつかのプロセッサで構成されたサーバを含むことができる。サービスを受ける銀行は、銀行の日常業務に関与している人を含むプロダクション・コミュニティを有することがある。さらに銀行は、新しい銀行業務用コンピュータ・アプリケーションの開発およびテストに携わる人を含む開発コミュニティを有することがある。さらに銀行は、銀行に関する情報またはサービスをインターネット・ユーザが取得できるようにする公開Ｗｅｂサイトを有することがある。これらのユーザ・コミュニティはそれぞれ、場合によっては相互に排他的な様々なデータ・セットへのアクセスを必要とする。
【０００３】
企業ネットワークでは、一部のコンピュータ・リソースを１つのコミュニティのユーザ専用とし、その他のリソースを複数のコミュニティのユーザで共用することができる。リソースを区分することにより、これらコミュニティを分離する様々なドメインを作成することができる。一般に、１つのドメイン内での通信は他のドメインには見えない。ドメインを使用する目的の１つは、隔離することである。ドメインを相互に隔離することによって、１つのドメイン内での問題が他のドメインに影響を与えるのを防ぐことができる。シングル・ドメイン・デバイスとは、１つのドメイン内のユーザまたはプロセスに代わって情報を処理するデバイス（たとえば、プロセッサ、コンピュータ、ネットワーク機器など）のことである。ただし場合によっては、コスト上または技術上の制約によるなどの理由で、１つのデバイスを使用してマルチドメインに対応することが必要な、または望ましい場合がある。マルチドメイン・デバイスとは、マルチドメイン内のユーザまたはプロセスに代わって情報を処理するデバイスのことである。
【０００４】
図１は、通信ネットワーク１００の一実施形態を示す図である。図１には、スイッチ１１０に結合されたノード１０１、１０２、１０３、１０４、１０５、１０６が含まれる。スイッチ１１０は、ノード１０１、１０２、１０３、１０４、１０５、１０６の間で情報を経路指定するように構成される。ノード１０１、１０２、１０３、１０４、１０５、１０６はそれぞれ、１つまたは複数のプロセッサ、ワークステーション、ネットワーク、または他のコンピュータ・リソースを備えることができる。したがって通信ネットワーク１００は、複数のプロセッサを備えたシングルボード、ローカル・エリア・ネットワークなどを備えることができる。図１の実施形態では、４つのドメインＡ、Ｂ、Ｃ、Ｄを作成するために、リソースが区分されている。ドメインＡ  １２０にはノード１０１とノード１０６が含まれる。ドメインＢ  １３０にはノード１０１、１０３、１０４が含まれる。ドメインＣ  １４０にはノード１０２とノード１０３が含まれる。ドメインＤにはノード１０５が含まれる。一般に、１つのドメイン内でブロードキャストされるすべての通信は、そのドメインのすべてのメンバには見えるが、そのドメインの外にいるメンバには見えない。一般にドメインとは、論理的なコンピュータ・システムとして動作するクライアント・グループのことである。したがって、ドメインＡ  １２０内のノード１０１によってブロードキャストされるすべての通信はノード１０１と１０６に見え、その逆もまた同様である。同様に、ドメインＢ  １３０内のノード１０４によってブロードキャストされるすべての通信は、ノード１０１、１０３、１０４には明らかになる。ただし、ノード１０６はドメインＡ  １２０の一部であり、ノード１０４はドメインＢ  １３０の一部であるため、ノード１０４または１０６のいずれかからのブロードキャストは他方には見えない。さらにノード１０５はドメインＤ  １５０の唯一のメンバであるため、ドメインＤ  １５０内でのノード１０５によるブロードキャストは、ノード１０５にのみ見える。したがって、ノード１０２、１０４、１０５、１０６をシングル・ドメイン・ノードとし、ノード１０１と１０３をマルチドメイン・ノードとすることができる。さらに、スイッチ１１０はドメインＡ  １２０、ドメインＢ  １３０、ドメインＣ  １４０、およびドメインＤ  １５０に結合されているため、スイッチ１１０をマルチドメイン・デバイスとすることができる。
【０００５】
次に図２を見ると、スイッチ１１０の一実施形態が示されている。図に示された例示的な実施形態には、ノード１０１、１０２、１０３、１０４、１０５、１０６から受け取ったデータを格納するように構成された、待ち行列２０２、２０４、２０６、２０８が含まれる。待ち行列２０２はエントリ２０２Ａ〜２０２Ｃを含み、待ち行列２０４はエントリ２０４Ａ〜２０４Ｃを含み、待ち行列２０６はエントリ２０６Ａ〜２０６Ｃを含み、待ち行列２０８はエントリ２０８Ａ〜２０８Ｃを含む。本明細書で特定の参照番号とその後に続く文字によって表される要素は、集合的に参照番号のみで表されることになる。たとえば、待ち行列エントリ２０２Ａ〜２０２Ｃは、集合的に待ち行列２０２と呼ばれる。さらにスイッチ１１０には、出力ポート２１２、２１４、２１６、２１８、２２０、２２２が含まれている。ポート２１２はドメインＡ  １２０にデータを搬送するように構成され、ポート２１４はドメインＢ  １３０にデータを搬送するように構成され、ポート２１６はドメインＣ  １４０にデータを搬送するように構成され、ポート２１８はドメインＡ  １２０とＢ  １３０にデータを搬送するように構成され、ポート２２０はドメインＢ  １３０とＣ  １４０にデータを搬送するように構成され、ポート２２２はドメインＤ  １２０にデータを搬送するように構成される。
【０００６】
図２の例では、待ち行列エントリ２０２ＡはドメインＡ  １２０宛のデータを格納し、待ち行列エントリ２０４ＡはドメインＢ  １３０宛のデータを格納し、待ち行列エントリ２０６ＡはドメインＣ  １４０宛のデータを格納し、待ち行列エントリ２０８ＡはドメインＤ  １５０宛のデータを格納する。図示された構成では、待ち行列２０２〜２０８がそれぞれ同時に、ポート２１２〜２２２のうち１つまたは複数にデータを搬送することができる。さらにポート２１２〜２２２はそれぞれ、ポート２１２〜２２２のうち他のポートが現在データを搬送中であるか否かに関係なく、データを搬送するように構成される。したがって、ポート２１２〜２２２はそれぞれ、同時にデータを搬送するように構成される。
【０００７】
スイッチ１１０はマルチドメイン・デバイスであるので、ポート２１２〜２２２が同時に伝送できるデータについて一定の制限を課さなければならない。たとえば一般に、待ち行列エントリ２０２ＡにあるデータはドメインＡ  １２０宛であり、ポート２１２と２１８を介して搬送される。また、待ち行列エントリ２０４ＡにあるデータはドメインＢ  １３０宛であり、ポート２１４と２１８を介して搬送される。ただし、ポート２１８はドメインＡ  １２０とＢ  １３０の両方宛にデータを搬送するので、ドメインＡ  １２０宛のデータとＢ  １３０宛のデータを同時に搬送することはできない。したがって、ドメインＡ  １２０宛のデータはドメインＢ  １３０宛のデータとシリアル化しなければならない。同様に、ポート２２０はドメインＢ  １３０とＣ  １４０にデータを搬送するように構成されている。したがって、ドメインＢ  １３０宛のデータはドメインＣ  １４０宛のデータとシリアル化しなければならない。ただし、ドメインＢ  １３０宛のデータはドメインＡ  １２０宛のデータともシリアル化しなければならないため、ドメインＣ  １４０宛のデータはドメインＡ  １２０宛のデータとも同様にシリアル化しなければならない。最後に、ドメインＤ  １５０宛のデータは他のドメイン宛のデータとシリアル化する必要はなく、他のトランザクション・データと同時に搬送することができる。
【０００８】
一般に、トランザクションの正しいオペレーションおよび順序付けを確実にするため、ドメイン内のすべてのノードはドメイン内のブロードキャストを同時に見るべきである。あるいは、ドメイン内のすべてのノードは、ドメイン内のすべてのブロードキャストを同じ順序で見るべきである。たとえば、１つのドメイン内で２つのトランザクションＡとＢがブロードキャストされる場合、そのドメイン内のすべてのノードはトランザクションを同じ順序で見るべきである。データが適切な順序でドメインに確実に送られるようにするため、マルチドメイン・スイッチ１１０は、所与のサイクルで単一の待ち行列からのデータのみを搬送することによって、すべてのデータの伝送をシリアル化するように構成可能である。たとえば、第１に待ち行列２０２から、次に待ち行列２０４から、次に待ち行列２０６から、次に待ち行列２０８からデータを搬送することによって、データを連続して搬送することができる。ただし、こうしたシリアル化方式は、同時に搬送される可能性のあるデータには反映されないため、スイッチ１１０の全有効帯域幅が減少し、システム性能が劇的に低下する可能性がある。
【０００９】
そこで、順序付け関係を必要とするデータ間での識別およびアービトレーションのための方法および機構が望まれる。
【００１０】
（発明の概要）
データのアービトレーションと伝送のための方法および機構が企図されている。第１のトランザクションと第２のトランザクションが受け取られる。第１のトランザクションは第１のドメインをターゲットとし、第２のトランザクションは第１のドメインとは異なる第２のドメインをターゲットとする。トランザクションを受け取った後、それぞれの対応するアービトレーション・ドメインが決定される。アービトレーション・ドメインが等しくないことを検出すると、これに応答して第１および第２のトランザクションを同時に伝送することができる。ただし、アービトレーション・ドメインが等しいと判定されると、アービトレーションを実行しなければならず、第１および第２のトランザクションの伝送はシリアル化される。一実施態様では、トランザクションは、アービトレーション・ドメインに含まれるドメインに結合されたスイッチ内のすべてのポートに搬送される。さらに、受け取られたそれぞれのトランザクションに対応してマスクを生成することも企図されている。生成されるマスクには、対応するトランザクションのターゲット・ドメインの表示が含まれる。トランザクションが伝送用ポートに搬送されると、そのマスクも同様に搬送される。各ポートには、接続先のドメインを示すドメイン・ベクトル・レジスタが含まれる。受け取られたマスクとドメイン・ベクトル・レジスタとを比較することにより、トランザクションがポートで出力されるかどうかに関する判定が行われる。マスクとベクトル・レジスタを使用する代わりに、対応する宛先ドメインがそのポートに結合されているかどうかを判定するように構成された、トランザクションの宛先ドメインＩＤをポートに搬送することができる。上記に加えて、トランザクションに対応するアービトレーション・ドメイン内の任意のドメインに結合された出力用のすべてのポートにトランザクションを搬送することも企図されている。トランザクションを受け取るポートは、その後、トランザクションの宛先ドメインがそのポートに結合されている場合に限り、トランザクションを転送することができる。
【００１１】
本発明は、様々な修正形態および代替形式が可能であり、その特定の実施形態が例として図面に示されており、本明細書で詳細に説明される。ただし、この図面および詳細な説明は、本発明を開示された特定の形式に限定することを意図するものではなく、その反対に本発明は、添付の特許請求の範囲に定義された本発明の精神および範囲を逸脱することのないすべての修正形態、等価形態、および代替形態をカバーするものである。
【００１２】
（詳細な説明）
アービトレーション・ドメイン
前述のように、マルチドメインを対象とするかまたはそのメンバであるデバイスは、順序付けを必要とするトランザクションを順序付けするためのアービトレーション機構を必要とする場合がある。上記の例では、マルチドメインに結合されたポートを備えたスイッチ１１０が例示された。同様に、マルチドメインからのトランザクションを受け取るために結合されたマルチドメイン・デバイスは、特別な要件を有する場合がある。たとえば、プロセッサを含むノードがドメインＤとＥに結合されると仮定する。ノードはドメインＤとＥの両方でのすべてのブロードキャストがわかるように構成される。ノードの「可観測性ドメイン」は、そのノードがブロードキャストを観測できるドメインの結合体である。したがって、ドメインＤとＥ内のすべてのブロードキャストがわかるように構成されたノードの可観測性ドメインには、ドメインＤとＥが含まれる。典型的には、コヒーレンス・プロトコルは、トランザクションの厳密な順序付けおよび／または同時状態遷移を必要とする。あるいは、ブロードキャスト・パケットがプロセッサを中断させるように、通信プロトコルを構成することができる。したがって、特定のマルチドメイン処理ノードは、１回につき１つのドメインからのブロードキャストしか処理できない場合がある。したがって、効果的なアービトレーション機構を適所に配置することが不可欠となる。
【００１３】
上記の問題に対処する機構を提供するためには、２つの基本的なステップが使用できる。第１に、順序付けを必要とするトランザクションをそのように認識しなければならない。第２に、そうしたトランザクションのうち２つまたはそれ以上を識別したときに、そうしたトランザクションの順序付けを確立しなければならない。一実施形態では、相互に順序付けしなければならないトランザクションの識別に使用される、「アービトレーション・ドメイン」と呼ばれる仮想ドメインが定義される。図３は、ノードおよびそれらに対応する可観測性ドメインを示すテーブル３００である。テーブルの１行目３０２は、ドメインＡとＢに属するノード１０１を示す。２行目３０４は、ドメインＣに属するノード１０２を示す。３行目３０６は、ドメインＢとＣに属するノード１０３を示す。４行目３０８は、ドメインＢに属するノード１０４を示す。５行目３１０は、ドメインＡに属するノード１０６を示す。最後に６行目３１２は、ドメインＤに属するノード１０５を示す。
【００１４】
テーブル３００は、ノード１０１と１０３がそれぞれマルチドメイン・デバイスであることを示している。前述のように、各ノードはその対応するドメイン内でのすべてのブロードキャストがわかるように結合される。したがって、ノード１０１はドメインＡとＢ内でのすべてのブロードキャストがわかる。さらに前述のように、ノード１０１はドメインＡとＢの両方に結合されるため、ドメインＡをターゲットとするトランザクションはドメインＢをターゲットとするトランザクションとシリアル化しなければならない。同様に、ノード１０３はドメインＢとＣの両方に結合されるため、ドメインＢをターゲットとするトランザクションはドメインＣをターゲットとするトランザクションとシリアル化しなければならない。したがって、ドメインＡ、Ｂ、Ｃでのトランザクションは相互にシリアル化しなければならず、「アービトレーション・ドメイン」を形成するように組み合わせなければならない。
【００１５】
一般に、共通ドメインを含むすべてのマルチドメイン・デバイスは、アービトレーション・ドメインを形成するのに使用することができる。結果として生じるアービトレーション・ドメインには、マルチドメイン・デバイスに結合されたすべてのドメインが含まれる。図３の例では、マルチドメイン・デバイス１０１がマルチドメイン・デバイス１０３とドメインＢを共用する。したがって、ノード１０１（ＡとＢ）に対応するすべての可観測性ドメインと、ノード１０３（ＢとＣ）に対応するすべての可観測性ドメインとは、ドメインＡ、Ｂ、Ｃを含むアービトレーション・ドメインを形成するように組み合わされる。この仮想アービトレーション・ドメインを使用して、順序付けしなければならないトランザクションを識別することができる。具体的に言えば、同じアービトレーション・ドメインに対応する２つまたはそれ以上のトランザクションを相互に順序付けしなければならない。
【００１６】
一実施形態では、システム内のアービトレーション・ドメインは、システムの初期設定時に識別および構成することができる。たとえばシステム管理者は、システムに結合されたサービス・プロセッサを使用して、スイッチおよびシステム内の他のデバイスを構成することができる。一実施形態では、ルーティング・テーブルまたはシステム内の他のデータ構造を増補して、アービトレーション・ドメインに関する情報を含めることができる。他の実施形態では、他のデータ構造またはデバイスを使用してもよい。
【００１７】
図３Ａは、選択したノードのアービトレーション・ドメインを決定するための方法を示す一実施形態である。図示された例では、選択したノードのアービトレーション・ドメインが決定されるだけではなく、その特定のアービトレーション・ドメインを有するすべてのノードも同様に識別される。したがって、１つのノードのアービトレーション・ドメインを決定することは、通常、いくつかの他のノードのアービトレーション・ドメインも同様に決定することになる。
【００１８】
図３Ａでは、初めに、アービトレーション（ＡＲＢ）ドメインが決定される予定の「候補」ノードが選択される（ブロック３３０）。次に、候補ノードに対応するすべての可観測性（ＯＢＳ）ドメインが識別される（ブロック３３２）。その後、識別された各ＯＢＳドメインについて、反復プロセスを使用して、候補ノードに対応するアービトレーションＡＲＢドメインを構築することができる。第１に、まだチェックされていない識別されたＯＢＳドメインのうち１つが選択され、ＡＲＢドメインに追加され、「チェック」または処理される（ブロック３３４）。まだチェックされていない識別されたＯＢＳドメインがない場合（ブロック３３６）、処理は完了する（ブロック３４４）。まだチェックされていないＯＢＳドメインがある場合（ブロック３３６）、現在考慮の対象となっているＯＢＳドメインに属する他のノードがあるかどうかが判定される（ブロック３３８）。考慮の対象となっているＯＢＳドメインに属するノードが見つからない場合、処理はブロック３３４に戻る。考慮の対象となっているＯＢＳドメインに属するノードが見つかった場合（ブロック３３８）、見つかったノードは、候補ノード用に決定されるＡＲＢドメインも有するノードとして識別され（ブロック３３９）、見つかったノードのうちいずれかが複数のＯＢＳドメインのメンバである（すなわちマルチドメイン・ノードである）かどうかが判定される（ブロック３４０）。マルチドメイン・ノードであるノードが他にない場合（ブロック３４０）、処理はブロック３３４に戻る。他のいずれかのノードが他のＯＢＳドメインのメンバでもある場合、それらの他のＯＢＳドメインは、チェックを必要とするＯＢＳドメインとして識別されて（ブロック３４２）、処理はブロック３３４に戻る。反復プロセスが完了すると、候補ノードのＡＲＢドメインが作成される。さらに、このＡＲＢドメインを有する他のすべてのノードも同様に識別される。
【００１９】
図４は、アービトレーション・ドメインを決定するために上記の方法がどのように使用できるかを示す一実施形態である。図４は、３つの列４０１、４０３、４０５を含むテーブル４００を示す。テーブル４００は単なる例であって、本明細書では例示的な目的で使用されることを意図している。列４０１は特定のノードを識別する。列４０３はノードに対応する可観測性ドメインを識別する。列４０５はノードに対応するアービトレーション・ドメインを識別する。一実施形態では、ノードをそれら特定のドメインのメンバにすることによって、ノードに対応する可観測性ドメインを明示的に決定することができる。ノードとノードが属する可観測性ドメインとの間のこの関係は、典型的にはテーブル、データベース、またはシステム内の他の構造で維持することができる。この情報を、対応するアービトレーション・ドメインを決定する際に使用することができる。さらにテーブル４００には、それぞれ異なるノードに対応する行４０２〜４１６も含まれる。
【００２０】
上記方法を使用して、ノードに対応するアービトレーション・ドメインを決定することができる。初めに、ノード１０１〜１０８のリストに対応するアービトレーション・ドメインを要求することができる。一例として、上記方法に従ってノード１０２が選択される（ブロック３３０）。次に、ノード１０２に対応する唯一の可観測性ドメインとして、ドメインＣが識別される（ブロック３３２）。したがってドメインＣは、識別された可観測性ドメインのリストに加えられる。次に、上記方法のブロック３３４に従って処理するためにドメインＣが選択される。ドメインＣは第一にアービトレーション・ドメイン・リストに加えられる。それでもなお、まだチェックされていないドメイン、ドメインＣがあるため（意思決定ブロック３３６）、方法のブロック３３６からブロック３３８に進む。ブロック３３８にしたがって、ドメインＣのメンバである他のいずれかのノードがあるかどうかを判定する。テーブル４００を検索し、同様に可観測性ドメインＣのメンバであるとしてノード１０３を識別し、それを識別されたノードのリストに加える（ブロック３３９）。次にブロック３４０で、ノード１０３がマルチドメイン・ノードであるかどうかを判定する。ノード１０３は可観測性ドメインＢとＣのメンバであるため、ノード１０３はマルチドメイン・ノードであり、識別された可観測性ドメインのリストにドメインＢが加えられる（ブロック３４２）。ブロック３３４に戻り、処理のためにドメインＢを選択する。ドメインＢがアービトレーション・ドメイン・リストに加えられる（ブロック３３４）。その後テーブル４００で、ドメインＢのメンバである他のノードを検索する（ブロック３３８）。ノード１０１と１０４は、どちらもドメインＢのメンバであるとして識別され、識別されたノードのリストに加えられる（ブロック３３９）。ノード１０１はドメインＡとＢのメンバであるため（ブロック３４０）、識別された可観測性ドメインのリストにドメインＡが加えられる。処理はブロック３３４に戻り、処理のためにドメインＡが選択される。ドメインＡが、アービトレーション・ドメイン・リストに加えられる。同様に、ドメインＡのメンバとしてノード１０６が見つけられる。ただし、ノード１０６はマルチドメイン・ノードではなく、識別されたドメインのリストに加えられる他のドメインもない。最後に、まだチェックされていない可観測性ドメインがなければ（ブロック３３６）、処理は完了する（ブロック３４４）。上記処理に続き、ドメインＡ、Ｂ、Ｃを含むアービトレーション・ドメインが、行４０２〜４１０に示されるように、ノード１０１〜１０６に対応するものとして識別される。
【００２１】
アービトレーション・ドメインは、相互に順序付けされるトランザクションを識別するように働き、さらに、同時に伝送可能なトランザクションを識別する際にも使用可能である。たとえば、テーブル４００を基準として使用し、第１のトランザクションがドメインＡをターゲットとし、第２のトランザクションがドメインＣをターゲットとし、第３のトランザクションがドメインＥをターゲットとすると仮定した場合、順序付けに関する一定の決定を行うことができる。ドメインＡとＣをターゲットとするトランザクションは、どちらも同じアービトレーション・ドメインに対応するため、これらのトランザクションを同時に伝送することは不可能であり、これら２つのトランザクションに対応するアービトレーションを実行しなければならない。このアービトレーションを実行する場合、１つのトランザクションが他方よりも先に伝送されるものとして選択されることになる。ただし、ドメインＥをターゲットとするトランザクションは、他の２つのトランザクションと同じアービトレーション・ドメインに属していないため、このトランザクションは他のトランザクションとは関係なく伝送することができる。したがって一例では、ドメインＡへのトランザクションは、ドメインＥへのトランザクションと同時に伝送することができる。その後、ドメインＣへのトランザクションを伝送することができる。シリアル化が必要なトランザクションのみがシリアル化されるので有利である。
【００２２】
トランザクションのターゲット・ドメインの識別
一実施形態では、ルックアップ・テーブルを使用して、ノードとトランザクションに対応するドメインを識別することができる。たとえば、図３および４に示されたものと同様のルックアップ・テーブルは、スイッチ、またはノードとドメインとの間の関係を示す他のデバイスで維持することができる。一実施形態では、各ノードがＩＤまたはアドレスを有するようにしてもよい。新しいノードがドメインに追加されると、新しいノードのＩＤとそれに対応するドメインを使用して、テーブル内に新しいエントリが作成される。ルックアップ・テーブル内の情報に基づいて、前述のように、対応するアービトレーション・ドメインを決定することができる。様々な実施形態は、対応するアービトレーション・ドメインを決定するための回路および／またはソフトウェアを含むことができる。あるいは、システム管理者が、アービトレーション・ドメインを手操作でテーブルに入力することもできる。
【００２３】
こうしたルックアップ・テーブルを使用して、スイッチは、第１のトランザクションのターゲット・ドメインおよびそのターゲット・ドメインに対応するアービトレーション・ドメインを決定することができる。たとえば、テーブル４００がスイッチ内に維持されていて、ノード１０６に対応する宛先アドレスを備えたトランザクションをスイッチが受け取ると想定する。ルックアップ・テーブルを参照することにより、スイッチはノード１０６がドメインＡに属すると判定することができる。さらにスイッチは、ドメインＡが、ドメインＡ、Ｂ、Ｃで表されるアービトレーション・ドメインに対応すると判定することができる。したがって、スイッチがアービトレーション・ドメインＡ、Ｂ、Ｃを有する保留中の他のトランザクションを有する場合、そのスイッチは、第１のトランザクションを使用して、これらの他のトランザクションを順序付けすることができる。またスイッチは、第１のトランザクションのアービトレーション・ドメインに対応するアービトレーション・ドメインを有していないドメインをターゲットとする他のトランザクションが、第１のトランザクションと同時に搬送可能であると判定することもできる。
【００２４】
次に図５では、スイッチ５１０の一実施形態が示される。スイッチ５１０は、待ち行列５０２〜５０８およびポート５１２〜５２６を含む。さらにスイッチ５１０は、アービトレーション・ユニット５００も含む。最後に、各ポート５１２〜５２６は、対応するドメイン・ベクトル・レジスタ５３０Ａ〜５３０Ｈをそれぞれ含む。スイッチ５１０は待ち行列５０２〜５０８を備えるように図示されているが、任意の好適なタイプの記憶域構造を使用してよい。さらにレジスタ５３０は、アービトレーション・ユニット５００の外部にあるものとして図示されているが、アービトレーション・ユニット５００に含めることができる。
【００２５】
図５の一実施形態では、レジスタ５３０は対応するポートが結合されるドメインを示すように構成されている。各レジスタ５３０は、ポートを結合することのできる各ドメイン用のビットを含む。図示された例では、各レジスタは６つのビットを含み、各ビットはドメインＡ〜Ｆのうち１つに対応する。レジスタ内の１つのビットがバイナリ値「１」に設定されると、対応するポートは対応するドメインにデータを搬送するように結合される。レジスタ内の１つのビットがバイナリ値「０」に設定されると、対応するポートは対応するドメインにデータを搬送するように結合されない。図５に示されるように、レジスタの右端のビットはドメインＡに対応し、右から２番目のビットはドメインＢに対応し、右から３番目のビットはドメインＣに対応し、右から４番目のビットはドメインＤに対応し、右から５番目のビットはドメインＥに対応し、右から６番目のビットはドメインＦに対応する。したがって、レジスタ５３０Ａは、対応するポート５１２がドメインＡに結合されることを示すようにその右端のビットが設定されている。レジスタ５３０Ｇは、対応するポート５２４がドメインＢとＣの両方に結合されることを示すように、右から２番目と３番目のビットが設定されている。
【００２６】
アービトレーション
一般にアービトレーション・ユニット５００は、待ち行列５０２〜５０８内に受け取ったデータを検出し、どのデータが同時に搬送可能であるかおよびどのデータが同時に搬送可能でないかを判定するように構成される。一実施形態では、アービトレーション・ユニット５００が図４のものと同様のルックアップ・テーブルを含む。待ち行列５０２Ａ、５０４Ａ、５０６Ａ、５０８Ａの先頭にあるデータは、ポート５１２〜５２６を介して搬送する準備のできたデータを表す。アービトレーション・ユニット５００は、待ち行列５０２〜５０８の先頭にあるデータを検出し、そのデータの宛先を決定し、各データに対応するアービトレーション・ドメインを決定し、そのデータを伝送用ポート５１２〜５２６に搬送するように構成される。
【００２７】
図５の例では、待ち行列エントリ５０２Ａに格納されたデータがドメインＡに対応する宛先またはターゲット・アドレスを有する。待ち行列エントリ５０４Ａに格納されたデータがドメインＢに対応するターゲット・アドレスを有する。待ち行列エントリ５０６Ａに格納されたデータがドメインＤに対応するターゲット・アドレスを有する。待ち行列エントリ５０８Ａに格納されたデータがドメインＦに対応するターゲット・アドレスを有する。待ち行列５０２〜５０８内のトランザクションが、図４のテーブルに示されたドメインに対応すると想定すると、ドメインＡとＢは、ドメインＡ、Ｂ、Ｃを含むアービトレーション・ドメインのメンバである。ドメインＤは、ドメインＤとＥを含むアービトレーション・ドメインのメンバである。ドメインＦはドメインＦのみを含むアービトレーション・ドメインのメンバである。データＡ  ５０２ＡとデータＢ  ５０４Ａが同じアービトレーション・ドメインに対応するものであると判定すると、アービトレーション・ユニット５００は、データＡ  ５０２ＡとデータＢ  ５０４Ａの伝送をシリアル化するように構成されている。アービトレーション・ユニット５００は、任意の好適な選択アルゴリズムに従って、第１の伝送用にデータＡ  ５０２ＡまたはデータＢ  ５０４Ａのいずれかを選択するように構成されている。さらにアービトレーション・ユニット５００は、データＤ  ５０６ＡまたはデータＦ  ５０８Ａのどちらも、待ち行列位置５０２Ａ〜５０８Ａの任意の他のデータとアービトレーション・ドメインを共用していないことを判定するようにも構成されている。したがって、データＤ  ５０６ＡとデータＦ  ５０８Ａは、現在待ち行列位置５０２Ａ〜５０８Ａにある他のデータと同時に搬送することができる。
【００２８】
アービトレーション・ドメインに関するアービトレーション・ユニット５００の判定に基づいて、アービトレーション・ユニット５００は伝送用ポート５１２〜５２６にデータを搬送するように構成されている。この例では、アービトレーション・ユニット５００がデータＢ  ５０４Ａより前にデータＡ  ５０２Ａを伝送用に選択すると想定する。したがって、アービトレーション・ユニット５００は、伝送用のデータＡ  ５０２Ａ、データＤ  ５０６Ａ、データＦ  ５０８Ａを搬送する。アービトレーション・ユニット５００は、データを待ち行列５０２〜５０８から、伝送されるデータに対応するアービトレーション・ドメインに結合されたすべてのポートに搬送するように構成されている。たとえばデータＡ  ５０２Ａは、ドメインＡ、Ｂ、Ｃを含むアービトレーション・ドメインに対応する。したがって、データＡ  ５０２Ａは、ドメインＡ、Ｂ、またはＣのうちいずれかに結合されたすべてのポートに搬送される。この場合データＡ  ５０２Ａは、ポート５１２、５１４、５１６、５２２、５２４に搬送される。データＤ  ５０６Ａは、ポート５１８と５２６に搬送される。データＦ  ５０８Ａはポート５２０に搬送される。
【００２９】
アービトレーション・ユニット５００は、データを待ち行列５０２〜５０８からポート５１２〜５２６に搬送することに加えて、データの宛先ドメインを示すマスクを各データとともに搬送するようにも構成されている。したがってデータＡ  ５０２Ａは、Ａの宛先ドメインを示すマスクと共に搬送される。データＤ  ５０６ＡはＤの宛先ドメインを示すマスクと共に搬送され、データＦ  ５０８ＡはＦの宛先ドメインを示すマスクと共に搬送される。ポート５１２〜５２６はそれぞれ、受け取ったデータに対応するマスクをそのドメイン・ベクトル・レジスタ５３０Ａ〜５３０Ｈと比較する。マスクによって示される宛先ドメインがポートに結合されているとポートが判定した場合、データは伝送される。これに対して、ポートが結合されるドメインをマスクが示していない場合、データは伝送されない。
【００３０】
一実施形態では、各データと共に搬送されるマスクが、それらのドメイン・ベクトル・レジスタ５３０に対応する６つのビットを含むことができる。したがって、データＡ  ５０２Ａと共に搬送されるマスクは、右端のビットがドメインＡの宛先を示すように設定され、残りのビットは消去される。マスク内の対応するビットは、データの伝送を実行可能または禁止するために、ドメイン・ベクトル・レジスタ内のビットと比較することが可能である。マスク内の設定されたビットに対応するように設定されたビットがドメイン・ベクトル・レジスタにある場合、データの伝送は実行可能となる。図５の例では、データＡ  ５０２Ａはポート５１２、５１４、５１６、５２２、５２４に搬送される。データＡ  ５０２Ａと共に搬送されるマスクは、右端のビットがＡの宛先ドメインを示すように設定されている。ドメイン・ベクトル・レジスタ５３０Ａと５３０Ｆのみが、対応する設定された右端のビットを有するため、データＡ  ５０２Ａはポート５１２と５２２を介してのみ搬送される。ポート５１４、５１６、５２４は、単にアイドル・パケットを駆動できるだけである。同様にデータＤ  ５０６Ａは、右端から４番目のビットがＤの宛先ドメインを示すように設定されたマスクと共に、ポート５１８と５２６に搬送される。ベクトル・レジスタ５３０Ｄと５３０Ｈは両方とも対応する設定されたビットを有するため、データＤ  ５０６Ａはポート５１８と５２６を駆動する。
【００３１】
たとえスイッチがブロードキャスト・トランザクションのターゲット・ドメインに結合されていない場合でも、ドメイン・アービトレーションはスイッチ内でのブロードキャスト・トランザクション用に実行されるものであることに留意されたい。図５Ａと５Ｂはこのケースを示す図である。図５Ａは、スイッチの階層５４０、５４２、５４４を含むシステム５９０を示す図である。スイッチ２  ５４２は、ドメインＡ  ５５０、Ｂ  ５５２、Ｃ  ５５４に結合される。スイッチ３  ５４４は、ドメインＣ  ５５４とＤ  ５５６に結合される。図示された実施形態では、スイッチ５４２と５４４の両方に、任意のドメイン５５０〜５５６へのブロードキャスト・トランザクションがわかることになる。たとえば、ドメインＢ  ５５２内のノードがドメインＢ  ５５２をターゲットとするトランザクションをブロードキャストすると、このブロードキャスト・トランザクションはスイッチ２  ５４２によって受け取られ、次にこれがトランザクションをスイッチ１  ５４０に搬送する。次にスイッチ１  ５４０はブロードキャスト・トランザクションをスイッチ２  ５４２とスイッチ３  ５４４の両方に搬送する。スイッチ３  ５４４は、ドメインＢ  ５５２をターゲットとするブロードキャスト・トランザクションを受け取る。ただし、スイッチ３  ５４４はドメインＢ  ５５２に結合されていない。図５Ｂは、スイッチ３  ５４４がブロードキャスト・トランザクションを受け取った後の状態の例を示す図である。
【００３２】
図５Ｂは、スイッチ３  ５４４の一実施形態を示す簡略化された構成図である。スイッチ３  ５４４には、アービトレーション・ユニット５５０、待ち行列５６０と５６２、およびポート５７２と５７４が含まれる。図５Ｂに示されるように、ドメインＢ  ５５２をターゲットとする受け取られたブロードキャスト・トランザクションは、待ち行列エントリ５６２Ａにある。図示された例では、ドメインＣ  ５５４をターゲットとする他のブロードキャスト・トランザクションが、待ち行列エントリ５６０Ａにある。スイッチ５５４はドメインＢ  ５５２に結合されていないため、エントリ５６０Ａのトランザクションが、エントリ５６２ＡのドメインＢ  ５５２をターゲットとするトランザクションに関係なく伝送可能であると想定される、偽の仮定が生じる可能性がある。ただし、たとえスイッチ５５４がドメインＢ  ５５２に結合されていないとしても、５６０Ａと５６２Ａのどちらのエントリのトランザクション間でも、ドメイン・アービトレーションが実行される。この方法で、システム５９０内のすべてのブロードキャストについて一貫性が維持される。図５Ｂに示された実施形態では、ドメインＢ  ５５２にブロードキャストされるトランザクションのために、アイドル・パケットを伝送することができる。
【００３３】
図６は、アービトレーションと伝送の方法の一実施形態を示す図である。初めに、伝送準備のできたトランザクションが検出される（ブロック６０２）。続いて、検出されたトランザクションに対応するアービトレーション・ドメインが識別される（ブロック６０４）。トランザクションのうち２つまたはそれ以上が合致するアービトレーション・ドメインを有する場合（ブロック６０６）、トランザクションのうち１つを搬送用に選択するためのアービトレーションが実行される（ブロック６０８）。合致するアービトレーション・ドメインを有するトランザクションがない場合、またはアービトレーション（ブロック６０８）の後、選択されたトランザクションとマスクが出力ポートに搬送される（ブロック６１０）。選択された各トランザクションは、対応するトランザクションのアービトレーション・ドメインに含まれるドメインに結合されたすべてのポートに搬送される。選択されたトランザクションには、一般に、アービトレーションに勝ったトランザクション、および／または他のトランザクションに合致するアービトレーション・ドメインを持たないトランザクションが含まれることになる。選択された各トランザクションは、トランザクションがターゲットとするドメインを示すマスクと共に搬送される。その後、トランザクション・マスクは、搬送されたポートのドメイン・ベクトル・レジスタと比較される（ブロック６１２）。マスクが、ドメイン・ベクトル・レジスタによって示されるＯＢＳドメインと合致するターゲット・ドメインを示す場合（ブロック６１４）、データはポート上に出力される（ブロック６１８）。これに対して、マスクが、ポートのドメイン・ベクトル・レジスタによって示されるＯＢＳドメインと合致しないターゲット・ドメインを示す場合、トランザクションはブロードキャストされない（ブロック６１６）。ブロック６１６に示されるように、トランザクションがブロードキャストされない場合、様々な実施形態では、アイドル・パケットの搬送、ポイント・ツー・ポイント・トランザクションの搬送、またはその他の方法を含むことができる。
【００３４】
前述のように、代替実施形態は、マスクとドメイン・ベクトル・レジスタを使用しない場合がある。たとえば一実施形態では、マスクをポートに搬送するのではなく、宛先ドメインＩＤを対応するデータと共にポートに搬送する場合がある。その後、各ポートは、ポートがドメインＩＤによって示されるドメインに結合されているかどうかを判定するように構成されている。こうした判定は、テーブル・ルックアップまたは任意の他の好適な方法によって実行することができる。ポートが宛先ドメインに結合されている場合、トランザクションを伝送することができる。多くの代替実施形態が可能であり、企図されている。
【００３５】
一実施形態では、アービトレーション・ユニット５００は、アービトレーションを容易にするために、トランザクションのターゲット・ドメインを変換するように構成されている。図７は、アービトレーション・ユニット５００が使用するための代替ルックアップ・テーブルを示す図である。図７の実施形態では、テーブル７００に、ドメインＡ〜Ｆそれぞれに対する行が含まれる。各行には、そのドメインのメンバであるノード７２２、そのドメインに対応するアービトレーション・ドメイン７２４、およびそのドメインに対応する擬似ドメイン７２６が含まれる。擬似ドメイン列７２６は、トランザクションのターゲット・ドメインを、アービトレーションで使用するドメイン名に変換するのに使用される。擬似ドメイン名は、各アービトレーション・ドメインごとに選択される。したがって、合致するアービトレーション・ドメイン７２４を備えた各ドメイン７２０は、同じ擬似ドメイン７２６を有する。図７の実施形態例では、アービトレーション・ドメイン「Ａ  Ｂ  Ｃ」を表すために擬似ドメイン名「Ａ」が任意に選択されている。同様に、アービトレーション・ドメイン「Ｄ  Ｅ」を表すために、擬似ドメイン名「Ｄ」が選択された。
【００３６】
擬似ドメイン名７２６を使用すると、同時に伝送することのできないトランザクションが容易に識別される。同じ擬似ドメイン名７２６を備えた２つのトランザクションは、同時に伝送することができない。たとえば、アービトレーション・ユニット５００が３つのトランザクションの伝送準備ができていることを検出した場合、アービトレーション・ユニット５００はこのトランザクションのターゲット・ドメインを使用して、ルックアップ・テーブル７００に索引付けすることができる。３つのトランザクションがそれぞれＡ、Ｂ、Ｃのドメイン宛先を有する場合、それらの擬似ドメインはすべて「Ａ」である。したがって、３つのトランザクションは同時に伝送することができず、シリアル化しなければならない。一実施形態では、３つのトランザクションの伝送は、ラウンド・ロビン方式でスケジューリング（すなわち、第１のサイクルではドメインＡをターゲットにしたトランザクション、第２のサイクルではドメインＢをターゲットにしたトランザクション、さらに第３のサイクルではドメインＣをターゲットにしたトランザクションを搬送する）しなければならない。こうしたスケジューリング・アルゴリズムは、任意の特定の待ち行列またはリソースの枯渇を防ぐ役目を果たすことができる。ただし、任意の好適なアルゴリズムを使用することができる。
【００３７】
図８は、スイッチの階層が使用されるシステムの一実施形態を示す図である。スイッチ階層は、１つのスイッチが適応できるよりも多数のノード間で通信することが望まれる場合に使用することができる。スイッチ階層には多くの他の使用目的が可能であり、企図されている。図８には、スイッチ１１０Ａ、スイッチ１１０Ｂ、スイッチ１２２という３つのスイッチが示されている。スイッチ１１０Ａ、ノード１０１〜１０６、ならびにドメインＡ  １２０、Ｂ  １３０、Ｃ  １４０、Ｄ  １５０を含むグループ８００は、一般に、スイッチ１１０Ａがノード１０１〜１０６だけでなくスイッチ１２２に結合されていることを除き、前述の通りである。同様に、グループ８０２は、ノード１０７、１０８、１０９、１１１、１１２、１１３、スイッチ１２２に結合されたスイッチ１１０Ｂを含む。スイッチ１１０Ａと１１０Ｂはそれぞれ、前述のようにドメイン・アービトレーションを実行するように構成される。
【００３８】
図８に示された実施形態例では、ドメインＡ、Ｂ、Ｃ、Ｄがそれぞれ、グループ８００と８０２の両方にノードを含む。たとえばドメインＡ  １２０と１２０Ａは、ノード１０１、１０６、１０７、１１２、１１３を含む。同様に、ドメインＤ１５０と１５０Ａはノード１０５と１１１を含む。したがって、ノードＤ  １５０と１５０Ａ内でのブロードキャストは、ノード１０５と１１１の両方にわかることになる。一実施形態では、アービトレーション・ドメインの方法および機構が第１レベル・スイッチ１１０Ａと１１０Ｂでのみ実行される。スイッチ１２２は、アービトレーション・ドメインを識別し、前述のアービトレーションを実行するように構成される必要がない。図示された実施形態では、スイッチ１１０Ａによってノード１０１〜１０６から受け取られたブロードキャスト・トランザクションは、スイッチ１２２に搬送される。同様に、スイッチ１１０Ｂによって受け取られたブロードキャスト・トランザクションがスイッチ１２２に搬送される。スイッチ１２２は、受け取られたブロードキャスト・トランザクションを、受け取られたときの順序で再搬送するように構成されている。たとえば、スイッチ１２２が、第１のクロック・サイクルでドメインＤをターゲットとする第１のブロードキャスト・トランザクションを受け取り、次にクロック・サイクルでドメインＤをターゲットとする第２のブロードキャスト・トランザクションを受け取った場合、スイッチ１２２は、第１のブロードキャスト・トランザクションの次に第２のブロードキャスト・トランザクションを再搬送することになる。この方法では、スイッチ１１０は同じ順序でスイッチ１２２からブロードキャスト・トランザクションを受け取ることになる。さらにスイッチ１２２は、対応するブロードキャスト・トランザクションをスイッチ１１０Ａと１１０Ｂへ同時に搬送するようにしてもよい。この方法では、スイッチ１１０は、同じ順序でブロードキャスト・トランザクションを受け取るだけでなく、ほぼ同時に受け取ることもできる。スイッチ１２２からブロードキャスト・トランザクションを受け取ると、その後スイッチ１１０はそれぞれドメイン・アービトレーションを実行し、前述のようにトランザクションを伝送することができる。多数のノードを収容し、ドメイン・アービトレーションを実行するスイッチ階層を使用することができるので、有利である。
【００３９】
一般に、スイッチ階層を使用する場合、ドメイン・アービトレーションは階層の１レベルでのみ実行できる。ただし、第１レベル以外のレベルのスイッチ、すなわち複数レベルのスイッチが、前述のようにアービトレーションを実行するように構成されている構成を含む多数の他の構成が可能であり、企図されている。さらに他の実施形態は、第１のレベルのスイッチでドメイン・アービトレーションが実行された後に、階層の次のレベルのスイッチにトランザクションが搬送されるスイッチ階層を含むことができる。たとえば、スイッチ１１０は、ドメイン・アービトレーションを実行した後に、ブロードキャスト・トランザクションをスイッチ１２２に搬送することができる。さらに、図８の例は２つのレベルの階層を示すものであるが、いくつのレベルの階層でも使用可能である。図９は、３レベルの階層を含むスイッチ階層９００の一例である。図９は、スイッチ９２２Ａ〜９２２Ｂに結合されたスイッチ９１０Ａ〜９１０Ｅを含み、スイッチ９２２Ａ〜９２２Ｂがスイッチ９５０に結合される。スイッチ９１０を階層の第１レベルとみなし、スイッチ９２２を階層の第２レベルとみなし、スイッチ９５０を階層の第３レベルとすることができる。図９の実施形態の例では、スイッチ９１０をそれぞれ、さらに１つまたは複数のドメイン内にある１つまたは複数のノードに結合することができる。一実施形態では、結合されたノードからスイッチ９１０Ａと９１０Ｂによって受け取られたブロードキャスト・トランザクションが、スイッチ９２２Ａと９２２Ｂにそれぞれ搬送される。スイッチ９２２によって受け取られたブロードキャスト・トランザクションがスイッチ９５０に搬送される。次にスイッチ９５０は受け取ったブロードキャスト・トランザクションをスイッチ９２２に搬送し、次にスイッチ９２２はそのトランザクションをスイッチ９１０に搬送する。次にスイッチ９１０は、前述のようにドメイン・アービトレーションを実行し、トランザクションを伝送することができる。図８の説明で論じたように、ドメイン・アービトレーションがいつおよびどのスイッチで実行できるかは、様々な組合せが可能である。
【００４０】
上記の説明は、主にマルチドメイン・デバイスでのアービトレーションの方法および機構について述べたものであるが、この方法および機構は、シングル・ドメイン・デバイスでも同様に使用可能であることに留意されたい。ある点で、シングル・ドメイン・デバイスは、受け取られたすべてのブロードキャスト・トランザクションが同じアービトレーション・ドメインを有する退化したケースであるとみることができる。したがって、ドメイン・アービトレーションは、シングル・ドメイン・デバイス内でも同様に順序付け機構として働くことができる。
【００４１】
当分野の技術者であれば、上記の開示を完全に理解した後で様々な変形形態および修正形態が明らかになろう。添付の特許請求の範囲は、こうしたすべての変形形態および修正形態を含むと解釈するものとする。
【図面の簡単な説明】
【図１】
通信ネットワークの一実施形態を示す図である。
【図２】
スイッチの一実施形態を示す構成図である。
【図３】
ルックアップ・テーブルの一実施形態を示す図である。
【図３Ａ】
アービトレーション・ドメインを決定するための方法の一実施形態を示す流れ図である。
【図４】
ルックアップ・テーブルの一実施形態を示す図である。
【図５】
スイッチの一実施形態を示す構成図である。
【図５Ａ】
システムの一実施形態を示す図である。
【図５Ｂ】
スイッチの一実施形態を示す図である。
【図６】
アービトレーションおよび伝送の方法の一実施形態を示す流れ図である。
【図７】
ルックアップ・テーブルの一実施形態を示す図である。
【図８】
スイッチの階層を使用するシステムの一実施形態を示す図である。
【図９】
スイッチの階層を使用するシステムの一実施形態を示す図である。
【図１】
2005502267.tif 000003
【図２】
2005502267.tif 000004
【図３】
2005502267.tif 000005
【図３Ａ】
2005502267.tif 000006
【図４】
2005502267.tif 000007
【図５】
2005502267.tif 000008
【図５Ａ】
2005502267.tif 000009
【図５Ｂ】
2005502267.tif 000010
【図６】
2005502267.tif 000011
【図７】
2005502267.tif 000012
【図８】
2005502267.tif 000013
【図９】
2005502267.tif 000014
【国際公開パンフレット】
2005502267.tif 000015
2005502267.tif 000016
2005502267.tif 000017
2005502267.tif 000018
2005502267.tif 000019
2005502267.tif 000020
2005502267.tif 000021
2005502267.tif 000022
2005502267.tif 000023
2005502267.tif 000024
2005502267.tif 000025
2005502267.tif 000026
2005502267.tif 000027
2005502267.tif 000028
2005502267.tif 000029
2005502267.tif 000030
2005502267.tif 000031
2005502267.tif 000032
2005502267.tif 000033
2005502267.tif 000034
2005502267.tif 000035
2005502267.tif 000036
2005502267.tif 000037
2005502267.tif 000038
2005502267.tif 000039
2005502267.tif 000040
2005502267.tif 000041
2005502267.tif 000042
2005502267.tif 000043
2005502267.tif 000044
2005502267.tif 000045
2005502267.tif 000046
【国際公開パンフレット（コレクトバージョン）】
2005502267.tif 000047
【国際調査報告】
2005502267.tif 000048
2005502267.tif 000049