(57)【要約】  調停方法は、各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートからのデータを複数の出力ポートのうち任意の出力ポートへ転送するための経路制御を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停処理と、前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停処理を含む。前記第１及び第２の調停処理で用いる調停アルゴリズムは、トリガに応答して一定期間時分割アルゴリズムに切り替える。
2010113262.tif 000002
【特許請求の範囲】
【請求項１】
各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートからのデータを複数の出力ポートのうち任意の出力ポートへ転送するための経路制御を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停処理と、
前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停処理と、
トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える処理を含む、調停方法。
【請求項２】
前記第２の調停処理において任意の入力ポートからの経路制御要求が一定期間採用されない場合に前記任意の入力ポートに対して前記任意の入力ポートからの経路制御要求を一旦キャンセルするリトライ指示を出力して前記第１の調停処理で再度調停を行い、前記リトライ指示の頻度が閾値に達したことを前記トリガとする、請求項１記載の調停方法。
【請求項３】
前記複数の入力ポートにおける各キュー内のデータが全て空になったことをトリガとして前記調停アルゴリズムを前記任意の調停アルゴリズムに戻す、請求項２記載の調停方法。
【請求項４】
前記第１の調停処理において少なくとも１つの入力ポートにおけるデッドロックが検出されたことを前記トリガとする、請求項１記載の調停方法。
【請求項５】
前記任意の調停アルゴリズムは、ＬＲＵ（Least Recently Used）アルゴリズム、ラウンドロビンアルゴリズム、及び固定プライオリティアルゴリズムからなるグループから選択された１つのアルゴリズムである、請求項１乃至４のいずれか１項記載の調停方法。
【請求項６】
各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートからのデータを複数の出力ポートのうち任意の出力ポートへ転送するための経路制御要求を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停回路と、
前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停回路と、
トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える調停切替回路を備えた、調停回路。
【請求項７】
前記第２の調停回路において任意の入力ポートからの経路制御要求が一定期間採用されない場合に前記任意の入力ポートに対して前記任意の入力ポートからの経路制御要求を一旦キャンセルするリトライ指示が出力されて前記第１の調停回路は再度調停を行い、
前記調停切替回路は、前記リトライ指示の頻度が閾値に達したことを前記トリガとする、請求項６記載の調停回路。
【請求項８】
前記調停切替回路は、前記複数の入力ポートにおける各キュー内のデータが全て空になったことをトリガとして前記調停アルゴリズムを前記任意の調停アルゴリズムに戻す、請求項７記載の調停回路。
【請求項９】
前記調停切替回路は、前記第１の調停回路において少なくとも１つの入力ポートにおけるデッドロックが検出されたことを前記トリガとする、請求項６記載の調停回路。
【請求項１０】
前記任意の調停アルゴリズムは、ＬＲＵ（Least Recently Used）アルゴリズム、ラウンドロビンアルゴリズム、及び固定プライオリティアルゴリズムからなるグループから選択された１つのアルゴリズムである、請求項６乃至９のいずれか１項記載の調停回路。
【請求項１１】
複数のプロセッサ及びメモリを有するシステムと、複数の入出力インタフェースを有する入出力システムを接続する装置であって、
各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートと、
複数の出力ポートと、
前記複数の入力ポートからのデータを前記複数の出力ポートのうち任意の出力ポートへ転送するための経路制御を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停回路と、
前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停回路と、
トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える調停切替回路を備えた、装置。
【請求項１２】
前記第２の調停回路において任意の入力ポートからの経路制御要求が一定期間採用されない場合に前記任意の入力ポートに対して前記任意の入力ポートからの経路制御要求を一旦キャンセルするリトライ指示が出力されて前記第１の調停回路は再度調停を行い、
前記調停切替回路は、前記リトライ指示の頻度が閾値に達したことを前記トリガとする、請求項１１記載の装置。
【請求項１３】
前記調停切替回路は、前記複数の入力ポートにおける各キュー内のデータが全て空になったことをトリガとして前記調停アルゴリズムを前記任意の調停アルゴリズムに戻す、請求項１２記載の装置。
【請求項１４】
前記調停切替回路は、前記第１の調停回路において少なくとも１つの入力ポートにおけるデッドロックが検出されたことを前記トリガとする、請求項１１記載の装置。
【請求項１５】
前記任意の調停アルゴリズムは、ＬＲＵ（Least Recently Used）アルゴリズム、ラウンドロビンアルゴリズム、及び固定プライオリティアルゴリズムからなるグループから選択された１つのアルゴリズムである、請求項１１乃至１４のいずれか１項記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、調停方法、調停回路、及び調停回路を備えた装置に係り、特に並列計算機等に適した調停方法、調停回路、及び調停回路を備えた装置に関する。
【背景技術】
【０００２】
図１は、並列計算機の一例を示すブロック図である。並列計算機１は、図１に示す如く接続された複数のシステムボード（ＳＢ：System board）１２、クロスバースイッチ１４、及び複数の入出力ボード（ＩＯＢ：Input Output Board）１５を有する。各ＳＢ１２は、複数の中央処理装置（ＣＰＵ：Central Processing Unit）１１及び複数のメモリ１３を有する。各ＩＯＢ１５は、複数の入力部及び複数の出力部（又は、入出力インタフェース）を有する。クロスバースイッチ１４は、一方のＳＢ１２と接続される入力ポートＡＩ及び出力ポートＡＯ、他方のＳＢ１２と接続される入力ポートＢＩ及び出力ポートＢＯ、一方のＩＯＢ１５と接続される入力ポートＣＩ及び出力ポートＣＩ、及び他方のＩＯＢ１５と接続される入力ポートＤＩ及び出力ポートＤＯを有する。【０００３】
クロスバースイッチ１４は、上記の如き複数の入力ポート及び複数の出力ポートを有し、ＳＢ１２やＩＯＢ１５等の任意のノードからのデータとしてのパケットを他のノードへ転送するためのルーティング（経路制御）を行う。デッドロックを避けるために、クロスバースイッチ１４は１つのポートについて複数の仮想的なチャネルを持つ構成を有する。つまり、クロスバースイッチ１４は物理的には複数のポートを有し、各ポートは論理的には複数のチャネル（即ち、仮想的なチャネル）を有するが、任意の時点では１つのポートで１つのチャネルのみ選択可能である。【０００４】
クロスバースイッチ１４において、複数のポート及び複数のチャネルからのパケットを調停する調停回路は、全てのポート及び全てのチャネルを平等に扱うことが理想的である。図２は、このような理想的な調停回路を示す図である。図２において、調停回路１７は、入力ポートＡＩからのチャネルＣ０，Ｃ１の入力、入力ポートＢＩからのチャネルＣ０，Ｃ１の入力、入力ポートＣＩからのチャネルＣ０，Ｃ１の入力、及び入力ポートＤＩからのチャネルＣ０，Ｃ１の入力に対して調停処理を行い、調停処理の結果に基づいて１つの入力ポートからのルーティング要求（経路制御要求）を任意の出力ポートへ出力する。【０００５】
しかし、実際の回路設計では、図２のような構成を有する調停回路１７を作成することは物理的に難しく、信号遅延を考慮した設計とすることも難しい。このため、図３のような２段構成の調停回路が提案されている。【０００６】
図３は、調停回路の一例を示す図である。図３において、キュー調停回路１８−１は、各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩ毎のキューＡＱ，ＢＱ，ＣＱ，ＤＱからパケットを選択し、ポート間調停回路１８−２は、複数の入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩから１つのポートを選択する。キューＡＱ，ＢＱ，ＣＱ，ＤＱは、クロスバースイッチ１４内の対応するバッファ（図示せず）に保持されており、図３ではキューＡＱ，ＢＱ，ＣＱ，ＤＱのブロックがこれらのバッファに相当する。このように、調停回路１８は、２種類の調停回路１８−１，１８−２を有する２段構成である。【０００７】
図４は、キュー調停回路１８−１の構成を示す図である。図４に示すように、各チャネルＣ０，Ｃ１毎のキューの集まりに対して、平等な調停となるような調停アルゴリズムが用いられる。図４は、調停アルゴリズムとしてＬＲＵ（Least Recently Used）アルゴリズムが用いられる場合を示す。これにより、セレクタ１８１は、ＬＲＵアルゴリズム部１８０がＬＲＵアルゴリズムに基づいて求めた演算結果に応じてチャネルＣ０，Ｃ１のうち一方のキューを選択出力する。【０００８】
ポート間調停回路１８−２の図示は省略するが、チャネルＣ０，Ｃ１毎のキューの集まりの代わりに、入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩ毎のキューの集まりに対してＬＲＵ等のキュー調停回路１８−１と同じ調停アルゴリズムを用いて調停を行う。資源枯渇等のために、ポート間調停回路１８−１においてキュー調停回路１８−１からの経路制御要求（ルーティングリクエスト）が長時間採用されずにストール状態が続く場合には、デッドロックを防止するために一旦上記要求をキャンセルして別の要求を出し直すようなリトライ制御を行う。【０００９】
上記の如き調停回路１８は、全体としては平等に調停を行っているように見えるが、あるパケットに着目して見たときに、キュー調停回路１８−１からポート間調停回路１８−２へ一向に出力されない状態のキューが発生する可能性があり、このような状態をライブロックと言う。しかし、調停アルゴリズムにＬＲＵアルゴリズムではなく時分割アルゴリズムを用いたのでは、ライブロックは防止できても、調停時間が長くなり、並列計算機１の性能を低下させてしまう。
【特許文献１】特開２００１−２２７１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来の調停方法では、ライブロックを防止しようとすると調停時間が長くなってしまうという問題があり、その結果並列計算機の性能を低下させてしまうという問題もあった。【００１１】
そこで、本発明は、調停時間の増加を抑制してライブロックを防止することのできる調停方法、調停回路、及び調停回路を備えた装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一観点によれば、各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートからのデータを複数の出力ポートのうち任意の出力ポートへ転送するための経路制御を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停処理と、前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停処理と、トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える処理を含む調停方法が提供される。【００１３】
本発明の一観点によれば、各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートからのデータを複数の出力ポートのうち任意の出力ポートへ転送するための経路制御を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停回路と、前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停回路と、トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える調停切替回路を備えた調停回路が提供される。【００１４】
本発明の一観点によれば、複数のプロセッサ及びメモリを有するシステムと、複数の入出力インタフェースを有する入出力システムを接続する装置であって、各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートと、複数の出力ポートと、前記複数の入力ポートからのデータを前記複数の出力ポートのうち任意の出力ポートへ転送するための経路制御を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停回路と、前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停回路と、トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える調停切替回路を備えた装置が提供される。
【発明の効果】
【００１５】
開示の調停方法、調停回路、及び調停回路を備えた装置によれば、調停時間の増加を抑制してライブロックを防止することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】並列計算機の一例を示すブロック図である。
【図２】理想的な調停回路を示す図である。
【図３】調停回路の一例を示す図である。
【図４】キュー調停回路の構成を示す図である。
【図５】第１実施例における調停回路の一例を示す図である。
【図６】調停切替回路の構成を示す図である。
【図７】キュー調停回路の構成を示す図である。
【図８】入力ポートＡＩのキューＡＱの状態の一例を示す図である。
【図９】ＬＲＵアルゴリズムに基づくクロック毎の調停結果を示す図である。
【図１０】時分割アルゴリズムに基づくクロック毎の調停結果を示す図である。
【図１１】第２実施例における調停回路の一例を示す図である。
【図１２】キュー調停回路の構成を示す図である。
【図１３】調停切替回路の構成を示す図である。
【図１４】第３実施例における調停回路の一例を示す図である。
【図１５】調停切替回路の構成を示す図である。
【符号の説明】
【００１７】
１      並列計算機
１１      ＣＰＵ
１２      ＳＢ
１３      メモリ
１４      クロスバースイッチ
１５      ＩＣＢ
２８，２８Ａ，２８Ｂ      調停回路
２８−１，２８−１Ａ      キュー調停回路
２８−２      ポート調停回路
３０，３０Ａ，３０Ｂ      調停切替回路
【発明を実施するための最良の形態】
【００１８】
開示の調停方法、調停回路、及び調停回路を備えた装置によれば、各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートからのデータを複数の出力ポートのうち任意の出力ポートへ転送するためのルーティング（経路制御）を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、第１の調停処理により各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行い、第２の調停処理により複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う。又、トリガに応答して、一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える。【００１９】
これにより、調停時間の増加を抑制してライブロックを防止することが可能となる。【００２０】
以下に、開示の調停方法、調停回路、及び調停回路を備えた装置の各実施例を、図５以降と共に説明する。
【実施例】
【００２１】
図５は、第１実施例における調停回路の一例を示す図である。図５に示す調停回路２８は、例えば図１に示す並列計算機１のクロスバースイッチ１４内に設けられているものとする。図５中、図１と同一部分には同一符号を付し、その説明は省略する。【００２２】
図５に示す調停回路２８は、キュー調停回路２８−１、ポート調停回路２８−２、及び調停切替回路３０を有する。キュー調停回路２８−１は、各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩ毎のキューＡＱ，ＢＱ，ＣＱ，ＤＱからデータとしてのパケットを選択し、ポート間調停回路２８−２は、複数の入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩから１つのポートを選択する。このように、調停回路２８は、２種類の調停回路２８−１，２８−２を有する２段構成である。【００２３】
キュー調停回路２８−１は、調停切替回路３０により指示された第１又は第２の調停アルゴリズムに基づいたキューの調停を行う。同様に、ポート調停回路２８−２は、調停切替回路３０により指示された第１又は第２の調停アルゴリズムに基づいたポートの調停を行う。【００２４】
キュー調停回路２８−１からポート調停回路２８−２への調停リクエストがある一定期間採用（又は、選択）されない場合、キュー調停回路２８−１はこの調停リクエストを一旦キャンセルして別の調停リクエストを再度要求する。この調停リクエストのキャンセルを通知するのが図５に示すリトライである。【００２５】
調停切替回路３０は、各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩにおけるリトライの頻度を監視し、リトライの頻度が閾値に達すると調停回路２８−１，２８−２の調停アルゴリズムを第１の調停アルゴリズムから第２の調停アルゴリズムに切り替える指示を出力する。調停切替回路３０は、キュー調停回路２８−１に調停切替信号ＡＲＢ＿ＥＮ及び調停アルゴリズムを指示する選択信号ＡＲＢ＿ＳＥＬ１を供給し、ポート調停回路２８−２に調停切替信号ＡＲＢ＿ＥＮ及び調停アルゴリズムを指示する選択信号ＡＲＢ＿ＳＥＬ２を供給する。各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩのリトライの頻度が閾値に達すると、調停切替回路３０は調停アルゴリズムの切り替えを許可する調停切替信号ＡＲＢ＿ＥＮをアサートすることで調停回路２８−１，２８−２の調停アルゴリズムを選択信号ＡＲＢ＿ＳＥＬ１，ＡＲＢ＿ＳＥＬ２が指示する調停アルゴリズムに切り替えるよう指示する。【００２６】
第１及び第２の調停アルゴリズムは、互いに異なる調停アルゴリズムであり、本実施例では第１の調停アルゴリズムがＬＲＵアルゴリズムであり、第２の調停アルゴリズムが時分割アルゴリズムである。尚、第１の調停アルゴリズムはＬＲＵアルゴリズムに限定されるものではなく、例えばラウンドロビンで選択を行うラウンドロビンアルゴリズム、固定の優先順位で選択を行う固定プライオリティアルゴリズム等を用いても良いことは言うまでもない。【００２７】
図６は、調停切替回路３０の構成を示す図である。調停切替回路３０は、図６に示す如く接続されたフリーランカウンタ３１、頻度監視カウンタ３２、オア回路３３，３４、一定時間計測カウンタ３５、及びデコーダ３６を有する。この例では、カウンタ３１，３２，３５は、夫々１０ビットカウンタ、４ビットカウンタ、１０ビットカウンタである。【００２８】
フリーランカウンタ３１のカウント値が最大値（例えば１０２４サイクル）に達すると、フリーランカウンタ３１からのクリア信号が頻度監視カウンタ３２のクリア端子ｃｌｒに入力されて頻度監視カウンタ３２がクリアされる。各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩに対するリトライ指示は、オア回路３３を介して頻度監視カウンタ３２のカウントアップ端子ｕｐに入力され、頻度管理カウンタ３２は各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩに対するリトライ指示の回数をカウントさせる。カウントしたリトライ指示の頻度がある閾値（例えば１５回／１０２４サイクル）に達すると、頻度監視カウンタ３２はオア回路３４を介して一定時間計測カウンタ３５のカウントアップ端子ｕｐに信号を入力して一定時間計測カウンタ３５のカウントをスタートさせる。一定時間計測カウンタ３５が一定時間をカウントする間（即ち、カウント値が一定値を超えるまで）、出力する調停切替信号ＡＲＢ＿ＥＮをアサートする。調停切替信号ＡＲＢ＿ＥＮがアサートされている期間は調停アルゴリズムがＬＲＵアルゴリズムから時分割アルゴリズムに切り替えられる。一定時間計測カウンタ３５が一定時間をカウントすると（カウント値が一定値を超えると）、カウント値が０となり調停切替信号ＡＲＢ＿ＥＮがでデアサートされるので、調停アルゴリズムは元のＬＲＵアルゴリズムに戻される。調停切替信号ＡＲＢ＿ＥＮは、オア回路３４にフィードバックされる。一方、調停切替信号ＡＲＢ＿ＥＮは、デコーダ３６に入力され、デコーダ３６からは選択信号ＡＲＢ＿ＳＥＬ１，ＡＲＢ＿ＳＥＬ２が出力される。【００２９】
図７は、キュー調停回路２８−１の構成を示す図である。ポート調停回路２８−２は、キュー調停回路２８−１と同じ構成の回路で実現できるので、ポート調停回路２８−２の構成の図示及び説明は省略する。ただし、図７の調停回路をポート調停回路２８−２として使用する場合には、選択信号ＡＲＢ＿ＳＥＬ１の代わりに選択信号ＡＲＢ＿ＳＥＬ２が入力されることは言うまでもない。【００３０】
キュー調停回路２８−１は、図７に示す如く接続されたＬＲＵアルゴリズム部２８１、セレクタ２８２，２８３、アンド回路２８４，２８５、オア回路２８６、及びカウンタ２８７を有する。セレクタ２８２には、ＬＲＵアルゴリズム部２８１に従った信号及び選択信号ＡＲＢ＿ＳＥＬ１が入力され、調停切替信号ＡＲＢ＿ＥＮにより出力が選択される。セレクタ２８３には、例えば入力ポートＡＩにおけるキューＡＱが入力され、セレクタ２８２の出力信号により出力が選択される。各アンド回路２８４，２８５には、セレクタ２８３の出力信号及び出力ポートビジー信号が入力される。アンド回路２８４からはルーティングリクエスト（経路制御要求）が出力される。【００３１】
アンド回路２８５からはストール信号が出力されてオア回路２８６及びカウンタ２８７のカウントアップ端子ｕｐに入力される。カウンタ２８７の出力信号はＬＲＵアルゴリズム部２８１及びオア回路２８６に入力されると共に、この場合は入力ポートＡＩに対するリトライ指示として調停切替回路３０に入力される。オア回路２８６の出力信号はカウンタ２８７のクリア端子ｃｌｒに入力されるので、カウンタ２８７のカウント値が一定値に達するとカウンタ２８７はクリアされる。カウンタ２８７は、例えば４ビットカウンタである。【００３２】
これにより、キュー調停回路２８−１は、通常時はＬＲＵアルゴリズム部２８１によるＬＲＵアルゴリズムに従って調停を行うが、アサートされた調停切替信号ＡＲＢ＿ＥＮ信号によって時分割アルゴリズムに従った調停に切り替えられる。この調停切替信号ＡＲＢ＿ＥＮが一定時間後にデアサートされると、調停アルゴリズムは時分割アルゴリズムからＬＲＵアルゴリズムに戻される。【００３３】
次に、本実施例においてどのようにしてライブロックが防止されるかを、図８〜図１０と共に説明する。クロスバースイッチ１４は物理的には複数のポートを有し、各ポートは論理的には複数のチャネル（即ち、仮想的なチャネル）を有するが、任意の時点では１つのポートで１つのチャネルのみ選択可能である。【００３４】
図８は、入力ポートＡＩのキューＡＱの状態の一例を示す図である。図９は、ＬＲＵアルゴリズムに基づくクロック毎の調停結果を示す図であり、図１０は、時分割アルゴリズムに基づくクロック毎の調停結果を示す図である。図９及び図１０は一例として、出力ポートＤＯの出力ポートビジー信号、リトライ指示の有無、入力ポートＡＩ，ＢＩ，ＣＩ、及び調停結果を示す。出力ポートビジー信号は、「１」の場合にその出力ポートがビジーであることを示す。又、リトライ指示の有無は、「１」の場合にリトライ指示が有ることを示す。又、Ａ１ｘ，Ａ２ｘは入力ポートＡＩにおけるチャネルＣ０，Ｃ１側のパケット、Ｂ１ｘ，Ｂ２ｘは入力ポートＢＩにおける仮想的なチャネルＣ０，Ｃ１側のパケット、Ｃ１ｘ，Ｃ２ｘはは入力ポートＣＩにおけるチャネルＣ０，Ｃ１側のパケットを示す。【００３５】
説明の便宜上、例えば図８のように、入力ポートＡＩのキューＡＱに全て出力ポートＤＯ向けのチャネルＣ０側のパケットＡ１０，Ａ１１，Ａ１２及びチャネルＣ１側のパケットＡ２０，Ａ２１，Ａ２２がクロスバースイッチ１４内のバッファに滞留しているとする。図８は入力ポートＡＩのみについて示すが、入力ポートＢＩ，ＣＩについて以下の如き調停が行われることは言うまでもない。【００３６】
これら各入力ポートＡＩ，ＢＩ，ＣＩから出力ポートＤＯへの調停は、通常時はＬＲＵアルゴリズムに従って図９のように調停される。図９は、サイクル単位の調停を示し、出力ポートビジー信号が「１」であり出力ポートＤＯがビジーであることを示すサイクルでは、出力ポートＤＯが資源ビジーのために調停を行うことはできない。又、リトライ指示の有無が「１」でありリトライ指示が有ることを示すサイクルでは、各入力ポートＡＩ，ＢＩ，ＣＩのルーティングリクエストを一旦キャンセルしてから再度調停を行う。従って、キャンセルされたパケットはＬＲＵアルゴリズムによれば最低順位を有することになる。図９の例では、出力ポートＤＯが恒常的に資源ビジーとなっており、一定間隔で1個ずつしかパケットを調停できない状態に陥っている。このような場合、入力ポートＡＩで見ると、図８のキューＡＱのチャネルＣ０側のパケットＡ１ｘのみが処理されており、キューＡＱのチャネルＣ１側のパケットＡ２ｘはクロスバースイッチ１４内のバッファに滞留したままの状態に陥っている。更に、後続のパケットがチャネルＣ０側のパケットＡ１ｘのキューに追加投入されると、チャネルＣ１側のパケットＡ２ｘのキューがライブロックしてしまう。【００３７】
一方、図９と同じような状況下で、図１０に示すような、時分割の調停アルゴリズムを用いた場合は、ある一定時間に同一入力ポート及び同一チャネルのキューを固定的に調停し、更にこのような調停を全入力ポートの全チャネルに平等に割り当てる。このため、一部のチャネルのライブロックは発生しないことがわかる。【００３８】
尚、単に時分割アルゴリズムのみによる調停を行うだけでは並列計算機１の性能が低下してしまうが、ライブロックに陥っていると懸念される場合にのみ調停アルゴリズムをＬＲＵアルゴリズムから時分割アルゴリズムに切り替えることで、並列計算機１の性能低下を抑制しつつライブロックを防止することが可能となる。【００３９】
上記第１実施例では、調停アルゴリズムの切り替えをリトライ指示の頻度が閾値に達したことをトリガとして行っているが、調停アルゴリズムの切り替えはリトライ指示の頻度以外をトリガとしても良いことは言うまでもない。【００４０】
図１１は、第２実施例における調停回路の一例を示す図である。図１１に示す調停回路２８Ａは、例えば図１に示す並列計算機１のクロスバースイッチ１４内に設けられているものとする。図１１中、図５と同一部分には同一符号を付し、その説明は省略する。【００４１】
本実施例では、各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩ毎のロック情報が対応するキュー調停回路２８−１Ａから調停切替回路３０Ａに供給される点が上記第１実施例と異なる。【００４２】
図１２は、キュー調停回路２８−１Ａの構成を示す図である。図１２中、図７と同一部分には同一符号を付し、その説明は省略する。図１２において、各アンド回路３０１，３０２には、セレクタ２８２の出力信号、出力ポートビジー信号、及び入力ポートＡＩにおけるチャネルＣ０側のパケットＡ１ｘ（ルーティングリクエスト）が入力される。各アンド回路３１１，３１２には、セレクタ２８２の出力信号、出力ポートビジー信号、及び入力ポートＡＩにおけるチャネルＣ１側のパケットＡ２ｘ（ルーティングリクエスト）が入力される。【００４３】
図１２において、アンド回路３０１の出力信号は、ハイレベルであると入力ポートＡＩにおけるチャネルＣ０側のパケットＡ１ｘが調停されなかったことを示し、カウンタ３０３のカウントタップ端子ｕｐに入力される。アンド回路３０２の出力信号は、ハイレベルであると入力ポートＡＩにおけるチャネルＣ０側のパケットＡ１ｘが調停されたことを示し、オア回路３０４を介してカウンタ３０３のクリア端子ｃｌｒに入力される。カウンタ３０３は、例えば４ビットカウンタである。カウンタ３０３の出力信号は、入力ポートＡＩにおけるチャネルＣ０側のパケットＡ１ｘをロックするポートＡ１ロック信号として調停切替回路３０Ａへ出力されると共に、オア回路３０４にフィードバックされる。カウンタ３０３のカウント値が一定値に達すると、カウンタ３０３の出力信号（ポートＡ１ロック信号）は、入力ポートＡＩにおけるチャネルＣ０側のパケットＡ１ｘがデッドロックした状態であることを示す。【００４４】
アンド回路３１１の出力信号は、ハイレベルであると入力ポートＡＩにおけるチャネルＣ１側のパケットＡ２ｘが調停されなかったことを示し、カウンタ３１３のカウントタップ端子ｕｐに入力される。アンド回路３１２の出力信号は、ハイレベルであると入力ポートＡＩにおけるチャネルＣ１側のパケットＡ２ｘが調停されたことを示し、オア回路３１４を介してカウンタ３１３のクリア端子ｃｌｒに入力される。カウンタ３１３は、例えば４ビットカウンタである。カウンタ３１３の出力信号は、入力ポートＡＩにおけるチャネルＣ１側のパケットＡ２ｘをロックするポートＡ２ロック信号として調停切替回路３０Ａへ出力されると共に、オア回路３１４にフィードバックされる。カウンタ３１３のカウント値が一定値に達すると、カウンタ３１３の出力信号（ポートＡ２ロック信号）は、入力ポートＡＩにおけるチャネルＣ１側のパケットＡ２ｘがデッドロックした状態であることを示す。【００４５】
図１３は、調停切替回路３０Ａの構成を示す図である。図１３中、図６と同一部分には同一符号を付し、その説明は省略する。【００４６】
図１３において、調停切替回路３０Ａは、オア回路３３０，３４、一定時間計測カウンタ３５、及びデコーダ３６を有する。オア回路３３０には、各キュー調停回路２８−１Ａで検出されたロック情報、即ち、入力ポートＡＩに対するポートＡ１，Ａ２ロック信号、入力ポートＢＩに対するポートＢ１，Ｂ２ロック信号、入力ポートＣＩに対するポートＣ１，Ｃ２ロック信号、及び入力ポートＤＩに対するポートＤ１，Ｄ２ロック信号が入力される。オア回路３３０の出力信号は、オア回路３４の一方の入力に供給される。【００４７】
各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩからのロック情報が入力されると、一定時間計測カウンタ３５が一定時間をカウントする間（即ち、カウント値が一定値を超えるまで）、出力する調停切替信号ＡＲＢ＿ＥＮをアサートする。調停切替信号ＡＲＢ＿ＥＮがアサートされている期間は調停アルゴリズムがＬＲＵアルゴリズムから時分割アルゴリズムに切り替えられる。一定時間計測カウンタ３５が一定時間をカウントすると（カウント値が一定値を超えると）、カウント値が０となり調停切替信号ＡＲＢ＿ＥＮがでデアサートされるので、調停アルゴリズムは元のＬＲＵアルゴリズムに戻される。【００４８】
これにより、本実施例では、調停アルゴリズムの切り替えを少なくとも１つの入力ポートにおけるデッドロックをトリガとして行うことができる。【００４９】
図１４は、第３実施例における調停回路の一例を示す図である。図１４に示す調停回路２８Ｂは、例えば図１に示す並列計算機１のクロスバースイッチ１４内に設けられているものとする。図１４中、図５と同一部分には同一符号を付し、その説明は省略する。【００５０】
本実施例では、各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩのキューＡＱ，ＢＱ，ＣＱ，ＤＱが空になったことを示すエンプティー信号ＥＭＰＴＹ＿Ａ，ＥＭＰＴＹ＿Ｂ，ＥＭＰＴＹ＿Ｃ，ＥＭＰＴＹ＿Ｄがバッファから調停切替回路３０Ｂに供給されると共に、調停切替回路３０Ｂが調停アルゴリズムをＬＲＵアルゴリズムから時分割アルゴリズムに切り替えている期間はパケットの投入を抑えるインヒビット信号ＩＮＨを各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩに供給する点が上記第１実施例と異なる。【００５１】
図１５は、調停切替回路３０Ｂの構成を示す図である。図１５中、図６と同一部分には同一符号を付し、その説明は省略する。【００５２】
図１５において、アンド回路４０１には、各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩのキューＡＱ，ＢＱ，ＣＱ，ＤＱが空になったことを示すエンプティー信号ＥＭＰＴＹ＿Ａ，ＥＭＰＴＹ＿Ｂ，ＥＭＰＴＹ＿Ｃ，ＥＭＰＴＹ＿Ｄがバッファから入力される。アンド回路４０１の出力信号は、一定時間計測カウンタ３５のクリア端子ｃｌｒに入力される。これにより、各キューＡＱ，ＢＱ，ＣＱ，ＤＱからのエンプティー信号ＥＭＰＴＹ＿Ａ，ＥＭＰＴＹ＿Ｂ，ＥＭＰＴＹ＿Ｃ，ＥＭＰＴＹ＿Ｄが全てアサートされると、一定時間計測カウンタ３５のカウント値は一定時間の計測を終了する前であっても０にクリアされる。又、一定時間計測カウンタ３５が出力する調停切替信号ＡＲＢ＿ＥＮは、バッファ４０２を介してインヒビット信号ＩＮＨとして各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩに入力される。【００５３】
これにより、調停切替信号ＡＲＢ＿ＥＮがアサートされている期間は、アサートされたインヒビット信号ＩＮＨが各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩに供給されるので、各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩへのパケットの投入が抑えられる。一方、調停切替信号ＡＲＢ＿ＥＮがアサートされている期間は調停アルゴリズムがＬＲＵアルゴリズムから時分割アルゴリズムに切り替えられているが、各入力ポートＡＩ，ＢＩ，ＣＩ，ＤＩのキューＡＱ，ＢＱ，ＣＱ，ＤＱが全て空になりエンプティー信号ＥＭＰＴＹ＿Ａ，ＥＭＰＴＹ＿Ｂ，ＥＭＰＴＹ＿Ｃ，ＥＭＰＴＹ＿Ｄが全てアサートされると、一定時間計測カウンタ３５のカウント値がその時点で０にクリアされる。一定時間計測カウンタ３５のカウント値が０にクリアされると、調停切替信号ＡＲＢ＿ＥＮがでデアサートされるので、調停アルゴリズムは元のＬＲＵアルゴリズムに戻される。【００５４】
これにより、本実施例では、調停アルゴリズムの切り替えをリトライ指示の頻度が閾値に達したことをトリガとして行い、且つ、各キューＱＡ，ＱＢ，ＱＣ，ＱＤ内のパケットが全て空になったことをトリガとして元の調停アルゴリズムに戻すことができる。
【産業上の利用可能性】
【００５５】
開示の調停方法、調停回路、及び調停回路を備えた装置は、クロスバースイッチや、クロスバースイッチを有する並列計算機等調停処理を要する各種装置に適用可能である。【００５６】
以上、開示の調停方法、調停回路、及び調停回路を備えた装置を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図１】
2010113262.tif 000003
【図２】
2010113262.tif 000004
【図３】
2010113262.tif 000005
【図４】
2010113262.tif 000006
【図５】
2010113262.tif 000007
【図６】
2010113262.tif 000008
【図７】
2010113262.tif 000009
【図８】
2010113262.tif 000010
【図９】
2010113262.tif 000011
【図１０】
2010113262.tif 000012
【図１１】
2010113262.tif 000013
【図１２】
2010113262.tif 000014
【図１３】
2010113262.tif 000015
【図１４】
2010113262.tif 000016
【図１５】
2010113262.tif 000017
【手続補正書】
【提出日】平成23年9月14日(2011.9.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートからのデータを複数の出力ポートのうち任意の出力ポートへ転送するための経路制御を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停処理と、
前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停処理と、
トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える処理を含む、調停方法。
【請求項２】
前記第２の調停処理において任意の入力ポートからの経路制御要求が一定期間採用されない場合に前記任意の入力ポートに対して前記任意の入力ポートからの経路制御要求を一旦キャンセルするリトライ指示を出力して前記第１の調停処理で再度調停を行い、前記リトライ指示の頻度が閾値に達したことを前記トリガとする、請求項１記載の調停方法。
【請求項３】
前記複数の入力ポートにおける各キュー内のデータが全て空になったことをトリガとして前記調停アルゴリズムを前記任意の調停アルゴリズムに戻す、請求項２記載の調停方法。
【請求項４】
前記第１の調停処理において少なくとも１つの入力ポートにおけるデッドロックが検出されたことを前記トリガとする、請求項１記載の調停方法。
【請求項５】
各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートからのデータを複数の出力ポートのうち任意の出力ポートへ転送するための経路制御要求を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停回路と、
前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停回路と、
トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える調停切替回路を備えた、調停回路。
【請求項６】
前記第２の調停回路において任意の入力ポートからの経路制御要求が一定期間採用されない場合に前記任意の入力ポートに対して前記任意の入力ポートからの経路制御要求を一旦キャンセルするリトライ指示が出力されて前記第１の調停回路は再度調停を行い、
前記調停切替回路は、前記リトライ指示の頻度が閾値に達したことを前記トリガとする、請求項５記載の調停回路。
【請求項７】
前記調停切替回路は、前記複数の入力ポートにおける各キュー内のデータが全て空になったことをトリガとして前記調停アルゴリズムを前記任意の調停アルゴリズムに戻す、請求項６記載の調停回路。
【請求項８】
前記調停切替回路は、前記第１の調停回路において少なくとも１つの入力ポートにおけるデッドロックが検出されたことを前記トリガとする、請求項５記載の調停回路。
【請求項９】
前記任意の調停アルゴリズムは、ＬＲＵ（Least Recently Used）アルゴリズム、ラウンドロビンアルゴリズム、及び固定プライオリティアルゴリズムからなるグループから選択された１つのアルゴリズムである、請求項５乃至８のいずれか１項記載の調停回路。
【請求項１０】
複数のプロセッサ及びメモリを有するシステムと、複数の入出力インタフェースを有する入出力システムを接続する装置であって、
各々が論理的には複数の仮想的なチャネルを有する物理的には複数の入力ポートと、
複数の出力ポートと、
前記複数の入力ポートからのデータを前記複数の出力ポートのうち任意の出力ポートへ転送するための経路制御を行う際に、任意の時点では１つの入力ポートで１つのチャネルのみ選択可能であり、各入力ポートのチャネル間の調停を時分割アルゴリズム以外の任意の調停アルゴリズムに従って行う第１の調停回路と、
前記複数の入力ポート間の調停を前記任意の調停アルゴリズムに従って行う第２の調停回路と、
トリガに応答して一定期間前記第１及び第２の調停処理で用いる調停アルゴリズムを時分割アルゴリズムに切り替える調停切替回路を備えた、装置。
【国際調査報告】
2010113262.tif 000018
2010113262.tif 000019