(57)【特許請求の範囲】
【請求項１】
クロスバー（１０２）のストールした出力キュー（３０４）の情報をクリアするシステム（１００）であって、
前記クロスバーは、
複数の時限ポート（２０４）
を備え、
各時限ポートは、
前記クロスバーに存在する少なくとも１つの他の時限ポート（２０４Ａ）から少なくとも１つの情報を受信する出力キュー（３０４Ｂ）と、
該出力キューに存在する出口キュー（３１０Ｂ）と、
第１の所定の時間の満了時に該出口キューの前記情報のクリアを引き起こすように、該出口キューに結合されて、前記受信された情報が該出口キューに存在する時間を監視する第１のキュータイマ（３０６Ｂ）と、
或るエレメント（２０２Ａ）から別の情報を受信する入力キュー（３０２Ａ）であって、該別の情報は、前記出力キューに結合されている別のエレメント（２０２Ｂ）を宛先とする、入力キュー（３０２Ａ）と、
該入力キューに存在する第２の出口キュー（５０４Ａ）と、
該第２の出口キューに結合される第２のキュータイマ（５０２Ａ）であって、前記第１の所定の時間よりも長い第２の所定の時間の満了時に、該第２の出口キューの前記別の情報のクリアを引き起こすように、該受信された別の情報が該第２の出口キューに存在する時間を監視する、第２のキュータイマ（５０２Ａ）と
を備える
システム。
【請求項２】
前記キュータイマは、
前記所定の時間を計測する状態マシン（４０２）と、
前記所定の時間の満了時に前記出口キューから前記情報をクリアさせるコントローラ（４０４）と
を備える
請求項１に記載のシステム。
【請求項３】
前記キュータイマは、
前記所定の時間を計測し、該所定の時間の満了時に前記出口キューから前記情報をクリアさせるプロセッサ（４０６）と、
該プロセッサに結合されて、前記所定の時間が記憶されるメモリ（４０８）と
を備える
請求項１に記載のシステム。
【請求項４】
クロスバーのストールした出力キューの情報をクリアするための方法（６００）であって、
前記出力キューに存在する出口キュー内へ１つの情報を通信すること（６０４）と、
該１つの情報が該出口キューに存在する時間を監視すること（６０６）と、
該監視された時間が第１の所定の時間を超えた時、前記出口キューから前記１つの情報をクリアすること（６０８）と、
入力キューに存在する第２の出口キュー内へ別の情報を通信することと、
該別の情報が該第２の出口キューに存在する、前記第１の所定の時間よりも長い第２の時間を監視することと、
該監視された第２の時間が第２の所定の時間を超えた時、前記別の情報を前記第２の出口キューからクリアすることと
を含む方法。
【請求項５】
前記監視された時間が前記所定の時間を超えた時、複数の対応する情報キューに存在する複数の他の情報をクリアすること
をさらに含む請求項４に記載の方法。
【請求項６】
前記出口キューに結合されている情報キューに存在する別の情報をクリアした後、該出口キュー内へ該別の情報を通信することと、
該別の情報が該出口キューに存在する時間を監視することと
をさらに含む請求項４に記載の方法。
【請求項７】
前記監視された時間が前記所定の時間を超えた時、前記別の情報を前記出口キューからクリアすること
をさらに含む請求項６に記載の方法。
【請求項８】
前記クリアすることは、
前記監視された時間が前記所定の時間を超えた時、複数の他の情報を複数の情報キューから同時にクリアすること
をさらに含む
請求項４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施の形態は、包括的にはコンピュータシステムに関し、より詳細には、クロスバーのストールした出力キューの情報をクリアするためのシステム及び方法に関する。
【背景技術】
【０００２】
対称型マルチプロセシング（ＳＭＰ）システム等のマルチプロセッサシステムは、単一のオペレーティングシステムの管理下でタスクを独立に実行する、多くの並列動作する中央処理装置（ＣＰＵ）を使用する。１つのタイプのマルチプロセッサシステムは、高帯域幅のポイントツーポイントリンク（従来の共有バスアーキテクチャではない）を使用して、ＣＰＵと、入出力（Ｉ／Ｏ）デバイス、メモリユニット、及び／又は他のＣＰＵとの間の直接接続を提供する複数のＣＰＵに基づいている。
【０００３】
互いに極めて接近して存在するＣＰＵの小さなグループは、同じダイ及び／又はチップボード上に集約することができる。このようなグループ、すなわちクラスタは、さらにパーティション（ｎＰＡＲ）に集約することができる。複数のｎＰＡＲは、比較的大きなＳＭＰシステムから構成することができる。各ｎＰＡＲには、無関係な機能又はアクティビティを実行するようにタスクを与えることができる。
【０００４】
一方、さまざまなｎＰＡＲは、入出力（Ｉ／Ｏ）コントローラ等の他のデバイス、ＳＭＰシステム内で遠隔に位置する、そのｎＰＡＲ内の他のＣＰＵ、又は異なるｎＰＡＲ内の他のＣＰＵへ、ＳＭＰシステムの全体にわたって情報を通信することが必要な場合がある。したがって、通信パスをＳＭＰシステムの全体にわたって確立しなければならない。このような通信パスは、クロスバーを使用して確立することができる。通常、パス冗長性の提供及び／又はＳＭＰシステムのモジュール構築の容易化のために多数のクロスバーを使用することができる。
【０００５】
クロスバーは、情報の受信用の入力キュー及び情報の送信用の出力キューを使用する。１つのタイプのＳＭＰシステムは、パケットベースの通信プロトコルを使用する。各パケットは、送信デバイス（ＳＭＰ  ＣＰＵの１つ等）を特定する送信元情報と、目的とする宛先デバイスを特定する宛先情報とを含む。
【０００６】
情報は、クロスバーに到着すると、その情報が到着した接続部に結合されている入力キューに記憶される。クロスバーコントローラシステムは、次に、その情報が送信されるクロスバーの出力キューを特定する。この出力キューは、宛先デバイス又は（さらにルーティングが必要とされる場合には）別のクロスバーに結合されている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
宛先デバイスは、無効にされる（disabled）可能性があり、又は当該宛先デバイスが通信結合されているクロスバーの出力キューから情報を受け取ることができない動作モードにある可能性もある。したがって、情報はその出力キューに保持される。出力キューの情報がストールするので、他の情報をその出力キューから外部へ通信することができない。すなわち、出力キューはストールしてしまう。
【０００８】
ストールしたデバイス又は他のデバイスを宛先としている場合がある他の情報が、その後、ストールした出力キュー内に通信される場合、この後続の情報は、ストールのためにそのキューから外部へ通信することができない。さらに、ストールしたデバイスを宛先とする情報が他のキューでストールを引き起こすと、ストールはＳＭＰシステムを通じて伝播するおそれがある。このようなストールのシナリオでは、ＳＭＰシステムの他のｎＰＡＲの動作が悪影響を受けるおそれがある。極端な状況では、ＳＭＰシステム全体がストールするおそれがあり、制御されていないシステムシャットダウンに強制的に陥るおそれがある。
【課題を解決するための手段】
【０００９】
クロスバーのストールした出力キューの情報をクリアするさまざまな実施の形態が開示される。一実施の形態は、クロスバーに存在する少なくとも１つの他の時限ポートから少なくとも１つの情報を受信する出力キューと、この出力キューに存在する出口キューと、所定の時間の満了時にこの出口キューの情報のクリアを引き起こすように、この出口キューに結合されて、受信された情報がこの出口キューに存在する時間を監視するキュータイマとを備える。
【００１０】
別の実施の形態は、出力キューに存在する出口キュー内へ１つの情報を通信すること、この１つの情報がこの出口キューに存在する時間を監視すること、及び、この監視された時間が所定の時間を超えた時、出口キューから１つの情報をクリアすることを含む方法である。
【００１１】
図面の構成要素は、必ずしも互いに相対的に同一の縮尺であるとは限らない。同じ参照符号は、いくつかの図を通して対応する部分を示している。
【発明を実施するための最良の形態】
【００１２】
図１は、時限ポートクロスバー（timed port crossbar）１０２の実施の形態を使用する対称型マルチプロセシング（ＳＭＰ）システム１００のブロック図である。この例示のＳＭＰシステム１００は、複数のエレメントクラスタを備える。クラスタは、上述したように、複数のコンポーネントで構成され、これら複数のコンポーネントは、中央処理装置（ＣＰＵ）、ディレクトリ、入出力（Ｉ／Ｏ）デバイス、及び／又は他のデバイスを含む。
【００１３】
１つのタイプのマルチプロセッサシステムは、高帯域幅のポイントツーポイントリンク１０６を使用する、複数の並列動作するＣＰＵ及び他のデバイスに基づいている。ポイントツーポイントリンク１０６は、共有ファブリック１０８を介して、エレメントクラスタ１０４間、エレメント１１０間、又はエレメントクラスタ１０４とエレメント１１０との間の接続を提供する（エレメント１１０は、Ｉ／Ｏデバイス、メモリユニット、及び／又は他のＣＰＵ等の単一のエレメントとすることができる）。説明に役立つ一例として、１つのタイプの高帯域幅ポイントツーポイントリンク１０６は、並直列変換器／直並列変換器（ＳＥＲＤＥＳ）リンクである。各ＳＥＲＤＥＳリンクは、１方向当たり２つの計４つの高速ピンを使用して、双方向通信をサポートする。
【００１４】
共有ファブリック１０８は、複数の時限ポートクロスバー１０２及びクロスバーファブリック１１２で構成されている。時限ポートクロスバー１０２は、接続部１１４を介してさまざまな接続トポロジーの下で互いに結合されている。いくつかの実施の形態では、接続部１１４はＳＥＲＤＥＳリンクである。ただし、さまざまな実施の形態では、任意の適した接続部の形態を使用することができる。
【００１５】
説明の目的のために、簡略化されたＳＭＰシステム１００は、パーティションＡ  １１６及びパーティションＢ  １１８の２つのパーティション（ｎＰＡＲ）に分割されている。上述したように、複数のｎＰＡＲは、比較的大きなＳＭＰシステムから構成することができる。各ｎＰＡＲには、唯一の機能又はアクティビティを実行するようにタスクを与えることができる。
【００１６】
ＣＰＵ又は他のデバイスが、共通ファブリック１０８を介して遠隔のデバイスへ情報を通信する必要がある場合、それらのデバイスが結合されている時限ポートクロスバー１０２が、クロスバーファブリック１１２を介して相互間の接続を提供する。いくつかのトポロジーでは、クロスバーファブリック１１２内にもクロスバー（図示せず）が存在する場合がある（このようなクロスバーは、時限ポートクロスバー１０２の実施の形態とすることができ、且つ／又は、従来のクロスバーとすることができる）。
【００１７】
いくつかのトポロジーでは、２つ以上のエレメントクラスタ１０４のコンポーネントを、単一の時限ポートクロスバー１０２を介して互いに直接結合することができる。たとえば、パーティションＡのエレメントは、単一の時限ポートクロスバー１０２を介してパーティションＢのエレメントに結合することができる。又は、パーティションＡの第１のクラスタのエレメントを、単一の時限ポートクロスバー１０２を介してパーティションＡの別のクラスタのエレメントに結合することができる。さらに、時限ポートクロスバー１０２の実施の形態は、共有ファブリック１０８のクロスバーのすべてに使用することができ、又は共有ファブリック１０８の選択された部分に限定することもできる（他の部分は従来のクロスバーを使用する）。したがって、ｎＰＡＲを有するＳＭＰシステム又はｎＰＡＲを有しないＳＭＰシステムのさまざまな可能なトポロジーはほぼ制限がないことが理解され、図１のＳＭＰシステム１００は、説明を目的とする非常に簡略化されたブロック図であることが理解される。時限ポートクロスバー１０２の実施の形態を使用するＳＭＰシステム１００のトポロジーのこのようなすべての変形は、本開示の範囲内に含まれることが意図されている。
【００１８】
図２は、時限ポートクロスバー１０２の一例示の実施の形態をさらに詳細に示すブロック図である。説明の目的のために、時限ポートクロスバー１０２は、エレメントクラスタ１０４のエレメント２０２間の接続を提供するものとして示されている。上述したように、このようなエレメントは、ＣＰＵ、ディレクトリ、Ｉ／Ｏデバイス、又は他のデバイスとすることができる。さらに、時限ポートクロスバー１０２は、オプションとして、エレメント１１０（Ｉ／Ｏデバイス、別の時限ポートクロスバー１０２、別のクロスバー等であるが、これらに限定されるものではない）への接続を提供することができる。
【００１９】
時限ポートクロスバー１０２は、以下でさらに詳述する複数の時限ポート２０４で構成されている。時限ポート２０４は、接続部２０８を介し、クロスバー内部接続ファブリック２０６を通って互いに結合されている。さまざまなタイプの接続部２０８及びファブリック２０６、並びに、それらを使用して時限ポート２０４間の接続を提供する方法が、当該技術分野で理解されており、本明細書では詳細に説明しない。時限ポート２０４間の結合を提供するこのようなすべてのトポロジー及びハードウェア構成は、本開示の範囲内に含まれるように意図されている。
【００２０】
好ましい一実施の形態では、高速リンク１０６は、時限ポート２０４内へ及び時限ポート２０４外への双方向通信を提供する２つの通信パス２１０及び２１２で構成されている。パス２１０は、時限ポート２０４内から、時限ポート２０４が結合されているエレメント２０２への情報のフローを提供する。パス２１２は、時限ポート２０４が結合されているエレメント２０２から時限ポート２０４内への情報のフローを提供する。限定ではなく例として、４つの高速ピン（１つの方向当たり２つのピン）を使用して双方向通信をサポートする上述したＳＥＲＤＥＳリンクでは、パス２１０がそれらピンのうちの２つに対応し、パス２１２が他の２つのピンに対応する。
【００２１】
図３は、４つの時限ポート２０４を有する時限ポートクロスバー１０２の一実施の形態をさらに詳細に示すブロック図である（この図３では、参照符号Ａ〜Ｃは、この例示の時限ポートクロスバー１０２内のエレメントの特定のロケーションを特定するのに使用される）。したがって、時限ポートクロスバー１０２は、４ポートクロスバーとみなすことができる。時限ポートクロスバー１０２の代替的な実施の形態は、５つ以上の時限ポート２０４を有することができることが十分理解される。
【００２２】
各時限ポート２０４は、入力キュー３０２、出力キュー３０４、及びキュータイマ３０６を備える。入力キュー３０２及び出力キュー３０４は、１つ又は複数の情報キュー３０８、３１２をそれぞれ備える（４つの情報キューが便宜上示されている）。各情報キュー３０８、３１２は、単一の情報を記憶するように構成されている。
【００２３】
一例示の実施の形態では、情報キュー３０８、３１２は直列に接続されて、１つの情報が情報キュー３０８、３１２の最初のものに到着するようにされている。その後、この１つの情報は、直列に又は順次、情報キュー３０８、３１２の最後のものへ伝播される。この情報キュー３０８、３１２の最後のものは、以下、「出口」キューと呼ぶ。この１つの情報が出口キューに存在している時、次に、その情報をそのキューに結合された出力接続部上へ通信することができる。
【００２４】
他の実施の形態では、出力キュー（及び入力キュー）は、他のメモリベースの媒体及びアーキテクチャを使用してインプリメントすることができる。たとえば、ランダムアクセスメモリ（ＲＡＭ）が情報を記憶することができる。その情報のロケーションは、ポインタ又は他の適した識別子によって特定することができる。別の実施の形態では、ラッチアレイ等が使用される。
【００２５】
入力キュー３０２及び出力キュー３０４は、情報を受信し、記憶し、そして別のコンポーネントへ通信することができる任意の適した媒体を使用してインプリメントすることができる。便宜上、出力キュー３０４は、自身の出口キューが参照符号３１０で特定されている。（シリアルキューの実施の形態では、シリアルキューの実施の形態を図３の説明図と同様に構成することができる。ＲＡＭ又はラッチの実施の形態では、出口キューは、次にキューから外部へ通信される情報のロケーションを示すポインタ又は他の適した識別子に対応する。）
【００２６】
たとえば、エレメント２０２Ａは、パス２１０Ａ及び２１２Ａを介して、時限ポート２０４Ａに結合することができる。エレメント２０２Ｂ、２０２Ｃ、及び２０２Ｄも同様に、それらの各時限ポート２０４Ｂ〜２０４Ｄに結合される。エレメント２０２Ａは、１つの情報をエレメント２０２Ｂへ通信する必要があるものと仮定すると、通信プロセスは、この情報が、入力キュー３０２Ａの最初の情報キュー３０８Ａ内へパス２１２Ａを介して通信されることで開始する。複数の情報キュー３０８Ａが存在する場合、情報は、接続部３１４Ａ上への通信準備ができるように、キュー３０８Ａの最後のもの（出口キュー）へシリアルにシフトされるか、又は、順次通信される。
【００２７】
さまざまな実施の形態では、時限ポートクロスバー１０２は、パス３１４及び３１６を介して、時限ポート２０４Ａと時限ポート２０４Ｂとの間でパスを確立するように自身を構成する。パスが確立されると、１つの情報は、出力キュー３０４Ｂの最初の情報キュー３１２Ｂへ通信することができる。複数の情報キュー３１２Ｂが存在する場合、この情報は、パス２１０Ｂ上への通信準備ができるように、出口キュー３１０Ｂへシリアルにシフトされるか、又は、順次通信される。エレメント２０２Ｂが情報を受信する準備ができると、情報は、出口キュー３１０Ｂから接続部２１０Ｂ上へ通信される。
【００２８】
同様に、エレメント２０２Ａが、エレメント２０２Ｃへ１つの情報を通信する必要がある場合、この情報は、入力キュー３０２Ａ内へ通信される。次に、パス３１４、３１８が、時限ポートクロスバー１０２によって出力キュー３０４Ｃへ構成される。情報は、次に、出力キュー３０４Ｃへ通信される。エレメント２０２Ｃが情報を受け取る準備ができると、情報は、出口キュー３１０Ｃから接続部２１０Ｃ上へ出力される。同様に、エレメント２０２Ａがエレメント２０２Ｄへ情報を通信する必要がある場合、その情報は、入力キュー３０２Ａ、パス３１４、３２０、出力キュー３０４Ｄを介して通信され、エレメント２０２Ｄが情報を受け取る準備ができると、その情報は接続部２１０Ｄ上へ出力される。
【００２９】
従来のクロスバーを使用する従来のＳＭＰシステムにおける同様の情報通信を有する上述した例に戻って、いくつかの状況では、エレメント２０２Ｂは、エレメント２０２Ａからエレメント２０２Ｂへ通信される情報を受信できない場合がある。このような状況において、従来のクロスバーでは、情報は、エレメント２０２Ｂに結合されている出力キューに不定期間の間保持される。すなわち、情報はストールする。エレメント２０２Ｂが、正しく機能しない場合ないしは故障している場合、情報は、（システムがクラッシュするか、ないしはリセットされるまで）出力キューから外部へ決して通信され得ない。さらに、情報が、エレメント２０２Ｂに結合されているキューから出力されない場合、従来のクロスバーの他のキューが、通信される順番を待っている情報で渋滞（backup）するように、他の情報の通信の渋滞が存在する場合がある。すなわち、ストールは、従来のクロスバーの他の入力キュー及び／又は出力キューを通じて伝播する場合がある。他の入力キュー及び／又は出力キューがストールする（もはや情報の受信も通信もできない）と、他のクロスバーの入力キュー及び／又は出力キューは、影響を受ける場合がある。したがって、ＳＭＰシステム全体が動作しなくなるおそれがあり、当該技術分野で言及されるように、ＳＭＰシステムは、制御されない望ましくない方法で「クラッシュ」することになる。
【００３０】
時限ポートクロスバー１０２の実施の形態は、出力キュー３０４のストールした情報の影響を軽減するように構成されている。キュータイマ３０６の一実施の形態は、その各出口キュー３１０に通信結合されて、１つの情報が出口キュー３１０に存在する時間を監視する。出口キュー３１０から外部への情報の通信がない状態で、所定の期間が満了すると、キュータイマ３０６は、出口キュー３１０にストールした情報をクリアさせる。ここで、クリアとは、出口キュー３１０から情報を廃棄、消去、ないしは削除することを指す。
【００３１】
図４Ａは、時限ポート２０４の一実施の形態のさらに詳細を示すブロック図である。この例示の実施の形態は、状態マシン４０２及びコントローラ４０４を備える。状態マシン４０２は、時間計測動作を実行する。状態マシンは、情報が出口キュー３１０内に到着すると時間の監視を開始する。このような時間計測は、サイクル、又は、時間に対応する別の適した測定単位でリアルタイムに行うことができる。所定の期間の満了前に、情報が出口キュー３１０から外部へ通信された場合、時間計測機能はリセットされる。一方、情報が、所定の期間の終了までに出口キュー３１０から外部へ通信されなかった場合、状態マシン４０２は、タイムアウト信号をコントローラ４０４へ通信する。コントローラ４０４は、次に、出口キュー３１０の情報をクリアさせる（情報は廃棄、消去、ないしは削除される）。
【００３２】
図４Ｂは、プロセッサ４０６及びメモリ４０８を使用してインプリメントされる一代替的な実施の形態を示している。ここで、プロセッサ４０６は、上述した状態マシン４０２によって実行される時間計測と同様に、情報が出口キュー３１０に存在する期間を計測する。時間計測期間４１０は、メモリ４０８の或る領域内に事前にプログラミングされている。情報が出口キュー３１０においてストールする場合、ロジック４１２（プロセッサ４０６による実行のためにメモリ４０８からすでに取り去られている）は、出口キュー３１０の情報をクリアさせる制御信号をプロセッサに生成させる。
【００３３】
状態マシン及びコントローラを使用して、又は、プロセッサ及びメモリによってインプリメントされる、キュータイマ３０６の代替的な実施の形態は、複数の出力キューを監視するとともに制御するように構成できることが十分理解される。出口キュー３１０（図１〜図３）の時間監視機能及びストールした情報のクリア機能は、時限ポートクロスバー１０２によって実行される他の機能と共にインプリメントすることができる。たとえば、出口キュー３１０の時間監視機能及び／又はストールした情報のクリア機能は、時限ポートクロスバー１０２を通る通信パスを決定するとともに有効にする（enable）同じコンポーネントが実行することができる。さらに、状態コントローラ、プロセッサ、コントローラ、及び／又はメモリの組み合わせを使用して他の実施の形態をインプリメントすることもできる。
【００３４】
上述したように、各キュータイマ３０６は、情報がその各出口キュー３１０に存在していた時間の長さを監視するように構成されている。所定の期間の満了後、キュータイマ３０６は、少なくとも出口キュー３１０の内容をクリアさせる。したがって、渋滞が時限ポートクロスバー１０２の他のキューで発生していた場合、情報をクリアすることによって、他の情報が他の入力キュー及び／又は出力キューを通って伝播することが可能になる。
【００３５】
簡略化された仮説的な説明例を提供する。入力キュー３０２Ａ〜３０２Ｃは４つの情報キュー３０８をそれぞれ有するものと仮定する。すなわち、入力キュー３０２Ａ〜３０２Ｃのそれぞれには、４つの情報についての十分なストレージが存在する。同様に、出力キュー３０４Ａ〜３０４Ｃは、４つの情報についての十分なストレージが存在するように４つの情報キュー（３つの情報キュー３１２及び出口キュー３１０）を有する。
【００３６】
仮説的な動作プロセスの或る時点において、エレメント２０２Ａは、５つの情報をエレメント２０２Ｂへ通信する必要があり、次に、１つの情報をエレメント２０２Ｃへ通信する必要があるものと仮定する。最初の４つの情報は、エレメント２０２Ａから入力キュー３０２Ａを通って出力キュー３０４Ｂ内へシリアル形式又は順次形式で通信される。この時点で、出力キュー３０４Ｂはフルになり、出口キュー３１０Ｂの最初の情報がエレメント２０２Ｂへ通信されるまで、さらに情報を追加して受け取ることができない。
【００３７】
５番目の情報がエレメント２０２Ａによって送信されると、その情報は、情報キュー３０８Ａの最後のもの（出口キュー）に保持され、出力キュー３０４Ｂへ通信される順番を待つ。次に、エレメント２０２Ｃを宛先とする１つの情報が入力キュー３０２Ａ内へエレメント２０２Ａによって通信されるものと仮定する。情報が情報キュー３０８Ａを通ってシリアル形式又は順次形式で通信されるので、エレメント２０２Ｃを宛先とする情報は、５番目の情報（現在、入力キュー３０２Ａの出口キューに存在する）が接続部３１４上へ出力された後となるまで、通信することができない。
【００３８】
従来のクロスバーにおけるストールの上述した例と同様に、エレメント２０２Ｂは、出力キュー３０４Ｂから情報を受信できないものと仮定する。したがって、出力キュー３０４Ｂは、接続部２１０Ｂ上へ最初の情報を通信することができない。すなわち、最初の情報は、出口キュー３１０Ｂで行き詰る。情報が出力キュー３０４Ｂを通って移動しないので、出力キュー３０４Ｂはストールする。
【００３９】
さらに、（出力キュー３０４Ｂはフルであるから）入力キュー３０２Ａで渋滞している５番目の情報を出力キュー３０４Ｂへ通信することができないので、５番目の情報は、入力キュー３０２Ａでストールする。すなわち、入力キュー３０２Ａもストールする。したがって、この簡略化された例では、先に通信された、エレメント２０２Ｃを宛先とする最初の情報は、入力キュー３０２Ａから出力キュー３０４Ｃへ通信することができない。
【００４０】
エレメント２０２Ａから通信された（エレメント２０２Ｂを宛先とする）最初の情報が出口キュー３１０Ｂに到着すると、キュータイマ３０６Ｂは、その時間計測プロセスを開始する。所定の時間計測期間の満了時に、最初の情報が出口キュー３１０Ｂから外部へ通信されていないとの判断がなされる。次に、キュータイマ３０６Ｂは、少なくとも最初の情報を出口キュー３１０Ｂからクリアさせる。
【００４１】
次に、２番目の情報が出口キュー３１０Ｂ内へ移動することができる。したがって、入力キュー３０２Ａにある５番目の情報を出力キュー３０４Ｂへ通信することができる。５番目の情報が入力キュー３０２Ａから外部へ移動された後、エレメント２０２Ｃを宛先とする最初の情報は、この簡略化された例では、入力キュー３０２Ａの出口キューの位置へ移動する。次に、エレメント２０２Ｃを宛先とするこの最初の情報を出力キュー３０４Ｃへ通信することができる。すなわち、入力キュー３０２Ａはもはやストールしていない。
【００４２】
エレメント２０２Ｂが出力キュー３０４Ｂからの情報を受け取ることができない場合、時限ポートクロスバー１０２の他のキューへ他の情報を通信できるように、ストールした情報を周期的にクリアすることができる。したがって、他のエレメントへの情報フローの渋滞又はストールは回避され、ＳＭＰシステムのオペレーションを継続することを可能にすることができる。
【００４３】
一代替的な実施の形態では、出力キュー３１０の各キュータイマ３０６がタイムアウトした場合、出力キュー３１０のすべての情報がクリアされる。そして、新しい情報が出口キュー３１０内に到着した時、時間計測プロセスが開始する。このような実施の形態は、遠隔ポートのストールをより迅速にクリアすることができる。
【００４４】
別の実施の形態では、別のシステムが、ストールしたエレメントのステータスを監視するように構成される。エレメントが出力キュー３０４から情報を受信できない間、時限ポート２０４は、他の時限ポート２０４から出力キュー３０４内に入る、新しく受信された情報を連続的にクリアする。ストールしたエレメントが復旧し、情報を受信可能となると、出力キュー３０４を通じて情報を通信するプロセスが再開する。
【００４５】
図５は、入力キュー３０２を通る情報のフローを監視するキュータイマ５０２を有する時限ポートクロスバー１０２の一実施の形態を示すブロック図である。上述したキュータイマ３０６と同様に、キュータイマ５０２は、その各出口キュー５０４に通信結合され、その出口キュー５０４の内外への情報のフローを監視する。出口キュー５０４から外部への情報の通信がない状態で、第２の所定の期間が満了すると、キュータイマ５０２は、出口キュー５０４においてストールした情報をクリアさせる。この実施の形態によれば、情報が出口キュー５０４から尚早にクリアされないように、キュータイマ５０２によって使用される第２の期間は、キュータイマ３０６によって使用される期間よりも長い。
【００４６】
説明に役立つ一例として、複数の時限ポート２０４が、多くの情報をエレメント２０２Ｂへ通信しようと試みている場合がある（上述した仮説的な例を参照）。エレメント２０２Ｂは、出口キュー３１０Ｂからの情報の受信中でなく、且つ、この例では、多くの情報が、他の時限ポート２０４において一列に列を成しているので、出力キュー３０４にのみ結合されるキュータイマを有する上述した実施の形態では、エレメント２０２Ｂを宛先とするすべての情報の最終的なクリアには、望ましくない長いクリア時間を要する場合がある。しかしながら、図５に示す実施の形態によって、ストールしたエレメント２０２Ｂを宛先とする情報は、入力キュー３０２においてストールするので、キュータイマ５０２は、このような情報のストールを検出することが可能になる。したがって、第２の期間の満了後、出口キュー５０４に存在する（ストールしたエレメント２０２Ｂを宛先とする）情報をクリアすることができる。
【００４７】
図６は、時限ポートクロスバー１０２（図１〜図３）の一実施の形態によって使用されるプロセスを示すフローチャート６００を示している。図６のフローチャート６００は、ロジック４１２（図４Ｂ）を実施するための一実施の形態のアーキテクチャ、機能、及び動作を示している。一代替的な実施の形態は、図４Ａに示すような状態マシンとして構成されたハードウェアで、フローチャート６００のロジックをインプリメントする。この点に関して、各ブロックは、指定された論理機能（複数可）を実施するための１つ又は複数の実行可能命令を含むコードモジュール、コードセグメント、又はコード部を表すことができる。代替的な実施の形態では、ブロックで示される機能は、図６に示す順序以外で並べることができるか、又は追加機能を含めることができることにも留意されたい。以下でさらに明確にするように、たとえば、図６に連続して示す２つのブロックを、実際にはほぼ同時に実行することができるか、それらのブロックを、時に逆の順序で実行することができるか、又は関与する機能に応じて、ブロックのいくつかは、すべての場合において実行されるとは限らない場合がある。このようなすべての変更及び変形は、本明細書における本開示の範囲内に含まれるように意図されている。
【００４８】
プロセスは、ブロック６０２で開始する。ブロック６０４において、１つの情報が、出力キューに存在する出口キュー内へ通信される。ブロック６０６において、この１つの情報が出口キューに存在する時間が監視される。ブロック６０８において、監視された時間が所定の時間を超えると、この１つの情報は、出口キューからクリアされる。プロセスはブロック６１０で終了する。
【００４９】
メモリ４０８（図４）においてインプリメントされる時限ポートクロスバー１０２の実施の形態は、任意の適したコンピュータ可読媒体を使用してインプリメントすることができる。本明細書の文脈において、「コンピュータ可読媒体」は、命令実行システム、命令実行装置、及び／又は命令実行デバイスに関連付けられるデータ、それらの装置等によって使用されるデータ、又はそれらの装置等と共に使用されるデータの記憶、通信、伝播、又は輸送を行うことができる任意の手段とすることができる。コンピュータ可読媒体は、限定ではなく例として、現在知られているか又は今後開発される、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置、デバイス、又は伝播媒体とすることができる。
【００５０】
上述した実施の形態は、開示したシステム及び方法の単なる例に過ぎないことが強調されるべきである。上述した実施の形態に対して多くの変形及び変更を行うことができる。このようなすべての変更及び変形は、本明細書における本開示の範囲内に含まれるように意図されている。
【図面の簡単な説明】
【００５１】
【図１】時限ポートクロスバーの実施の形態を使用する対称型マルチプロセシング（ＳＭＰ）システムのブロック図である。
【図２】時限ポートクロスバーの一例示の実施の形態をさらに詳細に示すブロック図である。
【図３】４つの時限ポートを有する時限ポートクロスバーの一実施の形態をさらに詳細に示すブロック図である。
【図４Ａ】時限ポートの一実施の形態のさらなる詳細を示すブロック図である。
【図４Ｂ】時限ポートの一実施の形態のさらなる詳細を示すブロック図である。
【図５】入力キューを通る情報のフローを監視するキュータイマを有する時限ポートクロスバーの一実施の形態を示すブロック図である。
【図６】時限ポートクロスバーの一実施の形態によって使用されるプロセスを示すフローチャートである。
【符号の説明】
【００５２】
１００・・・ＳＭＰシステム
１０２・・・時限ポートクロスバー
１０４・・・エレメントクラスタ
１０６・・・ポイントツーポイントリンク
１０８・・・共有ファブリック
１１０・・・エレメント
１１２・・・クロスバーファブリック
１１４・・・接続部
１１６・・・パーティションＡ
１１８・・・パーティションＢ
２０２・・・エレメント
２０４・・・時限ポート
２０６・・・クロスバー内部接続ファブリック
２０８・・・接続部
２１０，２１２・・・通信パス
３０２・・・入力キュー
３０４・・・出力キュー
３０６・・・キュータイマ
３０８，３１２・・・情報キュー
３１０・・・出口キュー
３１４，３１６，３１８，３２０・・・パス
４０２・・・状態マシン
４０４・・・コントローラ
４０６・・・プロセッサ
４０８・・・メモリ
４１０・・・時間計測期間
４１２・・・ロジック
５０２・・・キュータイマ
５０４・・・出口キュー
【図１】
0004576399.tif 000002
【図２】
0004576399.tif 000003
【図３】
0004576399.tif 000004
【図４Ａ】
0004576399.tif 000005
【図４Ｂ】
0004576399.tif 000006
【図５】
0004576399.tif 000007
【図６】
0004576399.tif 000008