(57)【要約】【課題】マルチプロセッサシステムについて、複数のプロセッサ間でのデータ転送をより効率的に行えるようにする。【解決手段】複数のプロセッサ４が設けられるとともに、複数の入出力ポート８を有するクロスバスイッチ５やクロスバスイッチ１２がプロセッサ間でのデータ転送ために複数段で設けられているマルチプロセッサシステムについて、データ転送で使用する候補となる複数の入出力ポートを、それぞれに優先度を与えてプロセッサごとに記録したスイッチ接続テーブル１１をクロスバスイッチのスイッチ制御部９に生成させ、このスイッチ接続テーブルに基づいてクロスバスイッチを制御するようにしている。【選択図】図１
2006146391.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサが設けられるとともに、複数の入出力ポートを有するクロスバスイッチが前記各プロセッサ間でのデータ転送ために複数段で設けられているマルチプロセッサシステムにおいて、
前記データ転送で使用可能な複数の前記入出力ポートを、それぞれに優先度を与えて前記プロセッサごとに記録したスイッチ接続テーブルを前記クロスバスイッチのスイッチ制御部に生成させ、このスイッチ接続テーブルに基づいて前記クロスバスイッチを制御するようにされていることを特徴とするマルチプロセッサシステム。
【請求項２】
前記スイッチ接続テーブルは、転送試行用のパケットの転送により、前記複数のプロセッサに対して可能な全ての転送経路についてデータ転送を試行する処理、前記データ転送試行で、前記複数の各クロスバスイッチにおける前記入出力ポートの接続に関する情報を前記複数のプロセッサごとに取得する処理、前記接続情報から前記複数のプロセッサごとにそこへのデータ転送に用いることが可能な前記入出力ポートについて優先度を求める処理、および優先度を求めた入出力ポートについて、転送先のプロセッサ、前記入出力ポートおよび前記優先度の関係をテーブル化する処理を経てなされるようにされている請求項１に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを有するマルチプロセッサシステムに関し、特にマルチプロセッサシステムにおける各プロセッサ間でのデータ転送の効率改善に関する。
【背景技術】
【０００２】
最近のマルチプロセッサシステムは、プロセッサの数がますます増大する傾向にある。プロセッサの数が増えるとプロセッサ間でのデータ転送を効率的に行うことが難しくなり、マルチプロセッサシステムの性能向上のためにプロセッサの数を増やしても、プロセッサ数の増加に見合った性能向上を得られなくなる。このような問題に対処する技術として例えば特許文献１に開示される例が知られている。特許文献１の技術では、クロスバスイッチを複数段で設けることにより効率的なデータ転送を可能としている。
【０００３】
【特許文献１】特開２００１−１６７０６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術は、クロスバスイッチを複数段で設けることにより、それなりにデータ転送の効率を高めることができる。しかし、特許文献１の技術は、クロスバスイッチを複数段で設ける方式で可能なデータ転送効率を十分に実現しているとはいい難く、さらにデータ転送効率を高める余地が残されている。
【０００５】
本発明は、このような事情を背景になされたものであり、より効率的なデータ転送を可能とするマルチプロセッサシステムの提供を目的としている。
【課題を解決するための手段】
【０００６】
上記目的のために本発明では、複数のプロセッサが設けられるとともに、複数の入出力ポートを有するクロスバスイッチが前記各プロセッサ間でのデータ転送ために複数段で設けられているマルチプロセッサシステムにおいて、前記データ転送で使用可能な複数の前記入出力ポートを、それぞれに優先度を与えて前記プロセッサごとに記録したスイッチ接続テーブルを前記クロスバスイッチのスイッチ制御部に生成させ、このスイッチ接続テーブルに基づいて前記クロスバスイッチを制御するようにされていることを特徴としている。
【０００７】
また本発明では上記のようなマルチプロセッサシステムについて、前記スイッチ接続テーブルは、転送試行用のパケットの転送により、前記複数のプロセッサに対して可能な全ての転送経路についてデータ転送を試行する処理、前記データ転送試行で、前記複数の各クロスバスイッチにおける前記入出力ポートの接続に関する情報を前記複数のプロセッサごとに取得する処理、前記接続情報から前記複数のプロセッサごとにそこへのデータ転送に用いることが可能な前記入出力ポートについて優先度を求める処理、および優先度を求めた入出力ポートについて、転送先のプロセッサ、前記入出力ポートおよび前記優先度の関係をテーブル化する処理を経てなすようにしている。
【発明の効果】
【０００８】
本発明では、クロスバスイッチのスイッチ制御部に生成させたスイッチ接続テーブルに基づいてクロスバスイッチを制御するようにしている。そのスイッチ接続テーブルは、データ転送で使用する候補となる複数の入出力ポートに優先度を与えてプロセッサごとに記録したものであり、このようなスイッチ接続テーブルを用いることにより、使用可能な転送経路の内から、最も経路が短くて転送時間が最小となる転送経路を選択してデータの転送を行うことができるようになり、より効率的にデータ転送を行うことが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施する上で好ましい形態について説明する。図１に、第１の実施形態によるマルチプロセッサシステムの構成を示す。本実施形態のマルチプロセッサシステムは、複数の演算処理装置１、具体的には２つの演算処理装置１ａ、１ｂを備えている。演算処理装置１ａ、１ｂは、ともに同じ構成であり、図では演算処理装置１ａについてだけその構成を示し、演算処理装置１ｂについては構成の図示を省略してある。
【００１０】
演算処理装置１は、複数のプロセッサボード２、具体的には４つのプロセッサボード２ａ〜２ｄを備えるとともに、クロスバスイッチボード３を備えている。プロセッサボード２ａ〜２ｄは、ともに同じ構成であり、図ではプロセッサボード２ａについてだけその構成を示し、プロセッサボード２ｂ〜２ｄについては構成の図示を省略してある。
【００１１】
プロセッサボード２は、複数のプロセッサユニット４、具体的には４つのプロセッサユニット４ａ〜４ｄを備えるとともに、第１のクロスバスイッチ５を備える。プロセッサユニット４は、プロセッサ６とパケット転送部７を備えており、プロセッサ６には、プロセッサＩＤが付されている。プロセッサＩＤは、マルチプロセッサシステム内の全てのプロセッサ６に固有の番号（例えば０〜ｎ）として付される。第１のクロスバスイッチ５は、複数の入出力ポート８、具体的には６つの入出力ポート８ａ〜８ｆを備える。入出力ポート８ａ〜８ｆには、それぞれポート番号（例えば０〜５）が与えられている。また第１のクロスバスイッチ５はスイッチ制御部９を備える。そしてスイッチ制御部９は、後述のようにして生成されるスイッチ接続テーブル１１を有する。
【００１２】
クロスバスイッチボード３は、複数の第２のクロスバスイッチ１２、具体的には２つの第２のクロスバスイッチ１２ａ、１２ｂを備える。第２のクロスバスイッチ１２は、第１のクロスバスイッチ５と同一の構成であり、図ではその構成の図示を省略してある。
【００１３】
プロセッサユニット４は、第１のクロスバスイッチ５の入出力ポート８に接続されている。図の例では、プロセッサユニット４ａが入出力ポート８ａに、プロセッサユニット４ｂが入出力ポート８ｂに、プロセッサユニット４ｃが入出力ポート８ｃに、プロセッサユニット４ｄが入出力ポート８ｄにそれぞれ接続されている。一方、第１のクロスバスイッチ５は、クロスバスイッチボード３の第２のクロスバスイッチ１２ａ、１２ｂのそれぞれに接続されている。図の例では、入出力ポート８ｅを介して第２のクロスバスイッチ１２ａに接続され、入出力ポート８ｆを介して第２のクロスバスイッチ１２ｂに接続されている。なおクロスバスイッチボード３は演算処理装置１ｂについても同様な接続がなされるが、図ではその接続を２本の矢印で簡略化して示してある。以上のように、クロスバスイッチボード３は、プロセッサボード２ａ〜２ｄ間の接続に介在するとともに、演算処理装置１ａ、１ｂ間の接続に介在している。すなわち各プロセッサユニット４は、第１のクロスバスイッチ５と第２のクロスバスイッチ１２による複数段構造で互いの接続をなせるようにされている。
【００１４】
次に、以上のようなマルチプロセッサシステムにおけるデータ転送処理について説明する。本発明によるマルチプロセッサシステムは、システム起動時などに行われる試行転送でスイッチ接続テーブル１１を生成させ、このスイッチ接続テーブル１１に基づいてクロスバスイッチを制御しながらデータ転送を行う。スイッチ接続テーブル１１は、プロセッサごとのデータ転送経路に関する情報、より具体的には、各クロスバスイッチでプロセッサごとに使用候補となる入出力ポートの情報をテーブル化したものである。スイッチ接続テーブルを生成するには、転送試行用のパケットの転送により、可能な全ての転送経路についてデータ転送を試行する。つまり転送試行用パケットを全てのプロセッサから可能な全ての転送経路で全てのプロセッサに対して転送する。そのデータ転送試行では、転送元のプロセッサごとに各クロスバスイッチにおける入出力ポートの接続に関して接続情報（スイッチ接続情報）を取得する。接続情報は、転送試行用パケットが１つの入出力ポートを通過するごとに所定の値が加算される経路長情報を含んでおり、その経路長情報の値が小さいほど大きな優先度が与えられる。この優先度は、試行転送における転送試行用パケットの転送元のプロセッサについて使用可能な入出力ポート、つまり転送元のプロセッサに対してデータ転送をする際に使用可能な入出力ポートの優先度でもある。この場合の入出力ポートの優先度は、優先度の高い入出力ポートを選択することで、より経路長の短いデータ転送経路により転送を行える、という意味での優先度となる。こうしてプロセッサごとにそこへのデータ転送の際に各クロスバスイッチで使用可能な入出力ポートの優先度が求まったら、転送先のプロセッサ、入出力ポートおよび優先度の関係をテーブル化してスイッチ接続テーブルを生成させる。
【００１５】
以下では、こうしたスイッチ接続テーブルの生成を具体的的な例で説明する。図２に示すように、システム起動時に各プロセッサユニット４は、それぞれのパケット転送部７から転送試行用パケットとしてＩＤパケット２０を第１のクロスバスイッチ５に順次送信する（第１次の試行転送）。すなわちプロセッサＩＤ＝０のプロセッサユニット４からはＩＤパケット２０−０、プロセッサＩＤ＝１のプロセッサユニット４からはＩＤパケット２０−１、プロセッサＩＤ＝２のプロセッサユニット４からはＩＤパケット２０−２、……、プロセッサＩＤ＝ｎのプロセッサユニット４からはＩＤパケット２０−ｎというように、各プロセッサユニット４はそれぞれ第１のクロスバスイッチ５にＩＤパケット２０を順次送信する。ＩＤパケット２０は、送信元のプロセッサのプロセッサＩＤを含むとともに、例えば初期値として「０」が設定された経路長情報を含んでいる。なお図２では、ＩＤパケット２０についてＩＤパケット２０−０だけを示してあり、他は省略してある。
【００１６】
ＩＤパケット２０を受信した第１のクロスバスイッチ５は、プロセッサユニット４ごとに接続情報（スイッチ接続情報）２１をスイッチ接続テーブル１１に登録する。接続情報２１は、ＩＤパケット２０を受信した入出力ポート８のポート番号、プロセッサＩＤ、および１つの入出力ポートを通過するごとに所定の値、例えば「１」が加算される経路長情報を含む。ここで、ＩＤパケット２０は、それぞれの送信元のプロセッサユニット４が接続されている入出力ポート８で受信される。したがってＩＤパケット２０を受信した入出力ポート８のポート番号とプロセッサＩＤにより、プロセッサユニット４ａ〜４ｄそれぞれのクロスバスイッチ５の入出力ポート８に対する接続関係を把握することができる。
【００１７】
接続情報２１の登録に際しては、接続情報２１に優先度を与える。システム起動後の最初の接続情報は優先度１位とされる。同一のプロセッサについて複数の接続情報が登録された場合には、それぞれの経路長情報を比較し、経路長情報の値が小さい順で優先度を与える。この優先度は、上述のように、あるプロセッサについての、当該プロセッサへのデータ転送に用いることが可能な入出力ポートの優先度でもある。
【００１８】
次いで、第１のクロスバスイッチ５は、優先度１位の接続情報を与えたＩＤパケット２０を、それを受信した入出力ポート８以外の全ての入出力ポート８に送信する（第２次の試行転送）。例えばＩＤパケット２０−０の場合、それを受信するのは入出力ポート８ａであるので、入出力ポート８ａ以外の全ての入出力ポート８にＩＤパケット２０−０が送信される。したがってこの第２次の試行転送ではＩＤパケット２０−０は、第１のクロスバスイッチ５の入出力ポート８ｅや入出力ポート８ｆから第２のクロスバスイッチ１２ａや第２のクロスバスイッチ１２ｂにも送信される。また第１のクロスバスイッチ５の入出力ポート８ｂ、８ｃ、８ｄに送信されたＩＤパケット２０−０は、これら各入出力ポート８に接続している各プロセッサに送信される。このような第２次の試行転送がなされると、第１次の試行転送の場合と同様にして、第２次の試行転送における接続情報がスイッチ接続テーブル１１に登録され、その優先度が与えられる。
【００１９】
以上のような試行転送を順次繰り返すことにより、ＩＤパケット２０はその送信元のプロセッサ以外の全てのプロセッサに対して可能な全ての転送経路で送信され、この間に各クロスバスイッチ（各プロセッサボードにおける１つの第１のクロスバスイッチとクロスバスイッチボードにおける２つの第２のクロスバスイッチ）でプロセッサごとの可能な転送経路の全てについて接続情報が得られる。そこで、この接続情報から上述のようにしてプロセッサユニットごとにそこへのデータ転送に用いる入出力ポートの優先度をクロスバスイッチごとに求め、その優先度の高い入出力ポートの内のいくつかを残し、それについて図３に示す例のように、転送先のプロセッサユニットのプロセッサＩＤ、入出力ポート（接続ポート）および優先度の関係をテーブル化してスイッチ接続テーブル１１を生成する。なお、ＩＤパケット２０がプロセッサユニット４のいずれかに到達すれば、そのプロセッサユニット４に対する試行転送はそこで終了となる。
【００２０】
次に、以上のようにしてスイッチ接続情報が生成されたスイッチ接続テーブルを用いてなされるデータ転送について説明する。一つのプロセッサユニットが他のプロセッサユニットに対してデータを転送するには、転送先のプロセッサユニットのプロセッサＩＤが記録されたヘッダと転送データを含むパケットをパケット転送部からクロスバスイッチ５へ送信する。ヘッダにおけるプロセッサＩＤの記録は、システム内の全てのプロセッサユニットの数と同数のビットで構成される。図３に示すのは、プロセッサＩＤ番号が０であるプロセッサユニットからプロセッサＩＤ番号が１であるプロセッサユニットとプロセッサＩＤ番号が５であるプロセッサユニットに対してデータを転送する場合の例である。なお図３ではヘッダのビット数が８とされているが、図１のマルチプロセッサシステムは３２個のプロセッサユニットを有しており、実際にはヘッダのビット数は３２となる。
【００２１】
図３の例においてパケット３０を受信したクロスバスイッチ５は、転送先のプロセッサユニットＩＤをもとにスイッチ接続テーブル１１を参照し、パケット３０の送信に用いる入出力ポート８を選択する。入出力ポート８の選択は、入出力ポートの優先度に基づいてなされる。すなわちスイッチ接続テーブル１１を参照して、まず最も優先度が高い入出力ポートを選択する。そしてその入出力ポートが他のパケットを転送中でなければ、その入出力ポートからパケット３０を送信する。もし優先度最上位の入出力ポートが他のパケットを転送中である場合には、優先度が次に高い入出力ポートを選択し、同様な処理を行う。いずれかの入出力ポートを選択してそこからパケット３０を送信する際に、クロスバスイッチボード５は、パケット３０のヘッダを書き換える。すなわちパケット３０のヘッダに記録されている複数の転送先プロセッサユニットから、選択された入出力ポートを用いるプロセッサユニットだけを残すようにパケット３０のヘッダを書き換える。
【００２２】
以上のような処理は各クロスバスイッチで行われる。そしてこうした処理により、使用可能な転送経路の内から、最も経路が短くて転送時間が最小となる転送経路を選択しつつ、パケット３０が転送先のプロセッサユニットに転送される。この結果、より効率的にデータ転送を行うことが可能となる。
【００２３】
図４に示すのは第２の実施形態によるマルチプロセッサシステムである。本実施形態のマルチプロセッサシステムも基本的には第１の実施形態におけるそれと同様である。相違していのは、第１のクロスバスイッチをクロスバスイッチボードに搭載するようにしている点である。すなわち本実施形態のマルチプロセッサシステムは、ともに同じ構成とされた２つの演算処理装置１０１ａ、１０１ｂを備えている。
【００２４】
演算処理装置１０１は、４つのプロセッサボード１０２ａ〜１０２ｄを備えるとともに、クロスバスイッチボード１０３を備えている。プロセッサボード１０２ａ〜１０２ｄは、ともに同じ構成であり、図１におけるのと同様な４つのプロセッサユニット４ａ〜４ｄを備える。クロスバスイッチボード１０３は、図１におけるのと同様な第１の第１のクロスバスイッチ５を１つ備えるとともに、図１におけるのと同様な第２のクロスバスイッチ１２を２つ備える。この他の構成については第１の実施形態の場合と同様なので、共通する要素には同一の符号を付し、それらについての説明を省略する。また本実施形態のマルチプロセッサシステムにおけるスイッチ接続テーブル１１へのスイッチ接続情報の生成やデータ転送処理も第１の実施形態の場合と同様なので説明を省略する。
【００２５】
ここでマルチプロセッサシステムにおける演算処理装置の数、演算処理装置に搭載されるプロセッサボードの数、プロセッサボードに搭載されるプロセッサユニットの数、クロスバスイッチボードの数、クロスバスイッチボードに搭載されるクロスバスイッチの数、それに各クロスバスイッチ間の接続関係は、マルチプロセッサシステムの用途などに応じて適宜に設定されるものであり、上述の実施形態例に限定されるものではない。
【産業上の利用可能性】
【００２６】
本発明は、マルチプロセッサシステムにおけるデータ転送効率を高めるものであり、マルチプロセッサシステムの分野に広く利用することができる。
【図面の簡単な説明】
【００２７】
【図１】第１の実施形態によるマルチプロセッサシステムの構成を示す図である。
【図２】スイッチ接続情報を生成する処理をイメージ化して示す図である。
【図３】データ転送処理をイメージ化して示す図である。
【図４】第２の実施形態によるマルチプロセッサシステムの構成を示す図である。
【符号の説明】
【００２８】
４    プロセッサユニット
５    第１のクロスバスイッチ
８    入出力ポート
９    スイッチ制御部
１１    スイッチ接続テーブル
１２    第２のクロスバスイッチ
２０    データ転送試行用パケット
２１    接続情報
【図１】
2006146391.tif 000003
【図２】
2006146391.tif 000004
【図３】
2006146391.tif 000005
【図４】
2006146391.tif 000006