(57)【要約】【課題】スループットを向上させることを課題とする。【解決手段】クロスバ１００は、入力ポートＡ、入力ポートＢ、入力ポートＣおよび入力ポートＤそれぞれに、データ転送先が「宛先Ｗ」および「宛先Ｙ」であるデータパケットをキューイングする入力キューおよびデータ転送先が「宛先Ｘ」および「宛先Ｚ」であるデータパケットをキューイングする入力キューを多段に配設した入力キュー群と、入力ポートに入力されたデータパケットのデータ転送先（すなわち、「宛先Ｗ」および「宛先Ｙ」、或いは「宛先Ｘ」および「宛先Ｚ」）に応じて当該データパケットを入力キュー群に振り分ける振分処理部１１０とを備える。【選択図】        図１
2006039677.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力ポートおよび複数の出力ポートを有するクロスバであって、
各入力ポートごとに、入力キューが多段に配設され、かつ該入力キューがデータ転送先の出力ポートごとに配設された入力キュー群と、
入力ポートに入力された入力データのデータ転送先に応じて当該入力データを前記入力キュー群に振り分ける振分処理手段と、
を備えたことを特徴とするクロスバ。
【請求項２】
前記入力キュー群のＦＩＦＯバッファの段数を既存の入力キューのＦＩＦＯバッファの段数に比較して少なくしたことを特徴とする請求項１に記載のクロスバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の入力ポートおよび複数の出力ポートを有するクロスバに関し、特に、
スループットを向上させることができるクロスバに関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータなどの情報処理装置に求められる性能は、年々高まっており、複数の計算機をネットワークを介して接続してクラスタ構成としたり、一つの計算機のＣＰＵの数を増やすＳＭＰ（Symmetric Parallel）構成を採用するなどして性能を向上することが一般的におこなわれている。
【０００３】
このように、高性能な情報処理装置を実現する際には、複数のＣＰＵやメモリ間での転送速度を高速化するために、入力ポート（例えば、ＣＰＵなどのノードに接続されたポート）と出力ポート（例えば、メモリ・モジュールなどのノードに接続されたポート）とを動的に選択し、該選択された入力ポートおよび出力ポート間をデータ転送経路として接続し、該接続されたデータ転送経路でノード間のデータ転送をおこなうクロスバが内部通信機構として採用されている（例えば、特許文献１参照。）。
【０００４】
かかるクロスバによれば、データの入力側（送信側）と出力側（受信側）とを一対一で直結させることができるため、データの衝突や混線などの問題が起こりにくく、転送速度を向上させることが可能になる。なお、デジタル交換機が普及する以前には、電話局の交換機にもかかるクロスバ方式が採用されていた。
【０００５】
【特許文献１】特開２００２−５５９６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の従来技術（特許文献１）では、先頭のデータパケットの転送先がビジーであるとき、後続（２番目以降）のデータパケットの転送先がビジーでない場合でも後続のデータパケットのデータ転送処理が待機状態となるため、スループットが制限されるという問題点があった。
【０００７】
そこで、本発明は、上述した従来技術による課題（問題点）を解消するためになされたものであり、先頭のデータパケットのビジー状態（ポート競合）に起因して後続のデータパケットのデータ転送処理が待機状態に陥ることを回避し、もってスループットを向上させることができるクロスバを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１の発明に係るクロスバは、複数の入力ポートおよび複数の出力ポートを有するクロスバであって、各入力ポートごとに、入力キューが多段に配設され、かつ該入力キューがデータ転送先の出力ポートごとに配設された入力キュー群と、入力ポートに入力された入力データのデータ転送先に応じて当該入力データを前記入力キュー群に振り分ける振分処理手段と、を備えたことを特徴とする。
【０００９】
また、請求項２の発明に係るクロスバは、上記の発明において、前記入力キュー群のＦＩＦＯバッファの段数を既存の入力キューのＦＩＦＯバッファの段数に比較して少なくしたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、各入力ポートごとに、入力キューが多段に配設され、かつ該入力キューがデータ転送先の出力ポートごとに配設された入力キュー群を具備させ、入力ポートに入力された入力データのデータ転送先に応じて当該入力データを入力キュー群に振り分けることとしたので、先頭のデータパケットの転送先がビジーである場合でも後続のデータパケットのデータ転送処理を並列化しておこなうことができ、スループットを向上させることが可能なクロスバが得られるという効果を奏する。
【００１１】
また、本発明によれば、入力キュー群のＦＩＦＯバッファの段数を既存の入力キューのＦＩＦＯバッファの段数に比較して少なくすることとしたので、既存のクロスバと同じ或いはより少ないハード量でスループットを向上させることが可能なクロスバが得られるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、本発明に係るクロスバをコンピュータシステムに搭載した場合の好適な実施例を詳細に説明する。なお、以下では、本実施例に係るクロスバについて説明した後に、他の実施例として種々の変形例を説明することとする。
【実施例】
【００１３】
本実施例に係るクロスバについて説明する。図１は、本発明に係るクロスバを含むコンピュータシステムの構成を示す構成図である。このコンピュータシステム１は、同図に示すように、ノードＰ−１〜ノードＰ−４と、ノードＭ−１〜ノードＭ−４とがクロスバ１００を介して接続された構成となる。
【００１４】
かかるコンピュータシステム１において、クロスバ１００は、入力ポートＡ〜入力ポートＤそれぞれにノードＰ−１〜ノードＰ−４のプロセッサが接続され、出力ポートＷ〜出力ポートＺそれぞれにノードＭ−１〜ノードＭ−４のメモリ・モジュールが接続された構成を有する。
【００１５】
ここで、本発明に係るクロスバ１００は、各入力ポートごとに、入力キューが多段に配設され、かつ該入力キューがデータ転送先の出力ポートごとに配設された入力キュー群を具備させ、入力ポートに入力された入力データのデータ転送先に応じて当該入力データを入力キュー群に振り分ける構成を採用した点に主たる特徴があり、これによって、スループットを向上させることができるようにしている。
【００１６】
この主たる特徴を具体的に説明すると、一般的に、既存のクロスバ２００（上記の従来技術）では、各入力キューに格納されたデータパケットのキューイングをおこなってデータ転送処理をおこなう対象となるデータパケットを抽出し、該抽出されたデータパケットに含まれるルーティング経路をもとに、ノードＰ−１〜ノードＰ−４のプロセッサ、並びにノードＭ−１〜ノードＭ−４のメモリ・モジュールの中から入力側のノードおよび出力側のノードをそれぞれ選定する。そして、このクロスバ２００は、このようにして選定された入力側のノードおよび出力側のノードに接続された入力ポートおよび出力ポートを結ぶ経路をデータ転送経路（ルーティング経路）として接続し、該接続されたデータ転送経路でノード間のデータ転送処理をおこなう。
【００１７】
このため、既存のクロスバ２００では、各プロセッサ（例えば、ノードＰ−１、ノードＰ−２、ノードＰ−３およびノードＰ−４）からのアクセス要求が異なるメモリ・モジュール（例えば、ノードＭ−１、ノードＭ−２、ノードＭ−３およびノードＭ−４）に対するアクセス要求である場合には、これらのデータ転送処理を並列化しておこなうことができる（図７参照）。
【００１８】
ところが、かかる既存のクロスバ２００では、先頭のデータパケットの転送先がビジーであるとき、後続（２番目以降）のデータパケットの転送先がビジーでない場合でも後続のデータパケットのデータ転送処理が待機状態となるため、スループットが制限されるという課題があった。
【００１９】
例えば、図７に示す例では、入力ポートＡに配設された入力キュー１５および入力ポートＢに配設された入力キュー２５における先頭のデータパケットの転送先がともに「宛先Ｙ（すなわち、ノードＭ−３）」であるため、ポート競合が発生する。このため、後続（２番目以降）のデータパケットの転送先がビジーでない場合でも、かかるポート競合が解消されるまで後続（２番目以降）のデータパケットのデータ転送処理が待機状態となるため、スループットが制限されてしまう。
【００２０】
そこで、本発明に係るクロスバ１００では、先頭のデータパケットのビジー状態（ポート競合）に起因して後続のデータパケットのデータ転送処理が待機状態に陥ることを回避するために、各入力ポートごとに、入力キューが多段に配設され、かつ該入力キューがデータ転送先の出力ポートごとに配設された入力キュー群を具備することとした。
【００２１】
これを具体的に説明すると、このクロスバ１００は、入力ポートＡ、入力ポートＢ、入力ポートＣおよび入力ポートＤそれぞれに、データ転送先が「宛先Ｗ」および「宛先Ｙ」であるデータパケットをキューイングする入力キュー１０ａおよびデータ転送先が「宛先Ｘ」および「宛先Ｚ」であるデータパケットをキューイングする入力キュー１０ｂを多段に配設した入力キュー群１０、以下、同様に、入力キュー２０ａおよび入力キュー２０ｂを多段に配設した入力キュー群２０、入力キュー３０ａおよび入力キュー３０ｂを多段に配設した入力キュー群３０並びに入力キュー４０ａおよび入力キュー４０ｂを多段に配設した入力キュー群４０を具備する。
【００２２】
そして、このクロスバ１００は、１つの入力ポートに対して多段に配設された入力キューに入力ポートから入力されたデータパケットを振り分ける振分処理部１１０を備えている。この振分処理部１１０は、入力ポート（例えば、入力ポートＡ）に入力されたデータパケットのデータ転送先（すなわち、「宛先Ｗ」および「宛先Ｙ」、或いは「宛先Ｘ」および「宛先Ｚ」）に応じて当該データパケットを入力キュー群（すなわち、入力キュー群１０における入力キュー１０ａ若しくは入力キュー１０ｂのいずれか）に振り分ける処理部である。
【００２３】
このように、各入力ポートごとに、入力キューが多段に配設され、かつ該入力キューがデータ転送先の出力ポートごとに配設された入力キュー群を具備させ、入力ポートに入力された入力データのデータ転送先に応じて当該入力データを入力キュー群に振り分けることで、「入力ポート数＞出力ポート数」とすることができる。
【００２４】
つまり、図１に示した例で言えば、入力ポートＡおよび入力ポートＢにおける先頭のデータパケットのデータ転送先がともに「宛先Ｙ」であり、入力キュー１０ａおよび入力キュー２０ａでポート競合が発生した場合でも、入力ポートＡの後続のデータパケット「宛先Ｘ」および入力ポートＢの後続のデータパケット「宛先Ｚ」は、入力キュー１０ｂ或いは入力キュー２０ｂに格納されることとなるため、先頭のデータパケットの転送先がビジーである場合でも後続のデータパケットのデータ転送処理を並列化しておこなうことができる。
【００２５】
したがって、上記した従来技術の例で言えば、入力ポートごとに入力キューを１対１に配設することで、後続のデータパケットのデータ転送処理が待機状態に陥るというスループットを向上させる上でのボトルネックを看過するのではなく、各入力ポートごとに、入力キューが多段に配設され、かつ該入力キューがデータ転送先の出力ポートごとに配設された入力キュー群を具備させ、入力ポートに入力された入力データのデータ転送先に応じて当該入力データを入力キュー群に振り分けるよう構成することで、先頭のデータパケットの転送先がビジーである場合でも後続のデータパケットのデータ転送処理を並列化しておこなうことができ、スループットを向上させることが可能になる。
【００２６】
なお、本実施例では、データ転送先（すなわち、「宛先Ｗ」、「宛先Ｙ」、「宛先Ｘ」および「宛先Ｚ」）を「宛先Ｗ」および「宛先Ｙ」のグループと、「宛先Ｘ」および「宛先Ｚ」のグループとに２分割して、入力キューを２段に配列した入力キュー群を具備する実施例について説明したが、本発明はこれに限定されるものではなく、図２に示すように、データ転送先を「宛先Ｗ」、「宛先Ｙ」、「宛先Ｘ」および「宛先Ｚ」それぞれに４分割して、入力キューを４段に配列した入力キュー群を具備するようにしても良い。
【００２７】
また、本実施例では、入力側の４つのノード（すなわち、ノードＰ−１〜ノードＰ−４のプロセッサ）と、出力側の４つのノード（すなわち、ノードＭ−１〜ノードＭ−４のメモリ・モジュール）とを備えたコンピュータシステムに本発明に係るクロスバを適用した場合の実施例について説明したが、本発明はこれに限定されるものではなく、図３に示すように、入力側のノード数（すなわち、ノードＰ−１〜ノードＰ−ｎのプロセッサ）および出力側のノード数（すなわち、ノードＭ−１〜ノードＭ−ｎのメモリ・モジュール）が任意のノード数に変化した場合でも同様に適用することができる。
【００２８】
ここで、上述してきた本発明に係るクロスバの効果をシミュレーション結果（図４および図５）と照らし合わせて説明する。図４および図５は、以下に示す条件のもとで得られたスループットおよびビジー率のシミュレーション結果の一例を示す図である。
（１）入力ポート数および出力ポート数は、１２ｐｏｒｔ。
（２）すべての入力ポートにランダムに絶え間なく（同期を取って）ｐａｃｋｅｔ信号を送る。なお、このシミュレーション結果は、１万ｃｙｃｌｅ後のものである。
（３）「入力ポート＝出力ポート」は、なし。
（４）各入力ポートに対する入力キューがどれか１つでも満杯になったときをビジーとし、ビジーとなった入力ポートからのデータパケットの入力は、受け付けない。
（５）出力キューのＦＩＦＯバッファの段数は、無限大。
【００２９】
図４および図５に示すように、入力キューの分割数および入力キューのＦＩＦＯバッファの段数がともに多いほど、スループットが上がり、入力キューのビジー率が下がることがわかる。そして、このシミュレーション結果は、分割数が「１」である場合のクロスバ（すなわち、既存のクロスバ）に比較して分割数が複数であるクロスバ（すなわち、本発明に係るクロスバ）の方がスループットが高くおよびビジー率が低いことを顕著に示している。
【００３０】
つまり、このシミュレーション結果は、先頭のデータパケットの転送先がビジーであるとき、後続（２番目以降）のデータパケットの転送先がビジーでないケースが多々存在することを示すものであり、本発明に係るクロスバが奏する効果が絶大なものであることを証明するものであると言うことができる。
【００３１】
また、本発明では、スループットを向上させ、ビジー率を低減させることができるので、入力キュー群のＦＩＦＯバッファの段数を既存の入力キューのＦＩＦＯバッファの段数に比較して少なくするようにクロスバを構成しても良い。例えば、図１に示すクロスバ１００は、各入力キュー群（すなわち、入力キュー群１０、入力キュー群２０、入力キュー群３０および入力キュー群４０）で用いるＦＩＦＯバッファの段数を既存の入力キューのＦＩＦＯバッファの段数と同数（すなわち、４段）用いた構成であるが、図６に示すように、各入力キュー群で用いるＦＩＦＯバッファの段数（例えば、２段）を既存の入力キューのＦＩＦＯバッファの段数（すなわち、４段）に比較して少なくした構成を採用する。
【００３２】
すなわち、これによって、既存のクロスバと同じハード量でスループットを向上させることが可能になる。さらに、データパケットをキューイングする頻度が低い入力キュー群或いは入力キューのＦＩＦＯバッファの段数をさらに少なくすることで、既存のクロスバより少ないハード量でスループットを向上させることができる。
【００３３】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００３４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明に係るクロスバを含むコンピュータシステムの構成を示す構成図である。
【図２】本発明に係るクロスバの変形例を説明するための説明図である。
【図３】本発明に係るクロスバの変形例を説明するための説明図である。
【図４】スループットに関するシミュレーション結果の一例を示す図である。
【図５】ビジー率に関するシミュレーション結果の一例を示す図である。
【図６】入力キューのＦＩＦＯバッファの段数を減らした場合におけるコンピュータシステムの構成を示す構成図である。
【図７】従来技術に係るクロスバを含むコンピュータシステムの構成を示す構成図である。
【符号の説明】
【００３６】
１    コンピュータシステム
１０、２０、３０、４０  入力キュー群
１０ａ、１０ｂ、２０ａ、２０ｂ、３０ａ、３０ｂ、４０ａ、４０ｂ  入力キュー
６０、７０、８０、９０  出力キュー
１００    クロスバ
１１０    振分処理部
【図１】
2006039677.tif 000003
【図２】
2006039677.tif 000004
【図３】
2006039677.tif 000005
【図４】
2006039677.tif 000006
【図５】
2006039677.tif 000007
【図６】
2006039677.tif 000008
【図７】
2006039677.tif 000009