(57)【要約】  ネットワークスイッチは、ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送する。入力手段は、入力スロットに応じてバッファ手段を選択して入力ポートから入力されるデータをバッファ手段へ転送する選択手段と、入力スロットとバッファ手段の対応関係を格納する入力スロット対応管理表と、入力ポートの通信帯域幅を制御する入力ポート管理情報とを備える。出力手段は、出力スロットに応じてバッファ手段を選択して出力ポートへ出力されるデータを選択されたバッファ手段から出力ポートへ転送する多重化手段と、出力スロットとバッファ手段の対応関係を格納する出力スロット対応管理表と、出力ポートの通信帯域幅を制御する出力ポート管理情報とを備える。
2010104033.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワークスイッチを有する通信システムであって、
前記ネットワークスイッチは、
ノード間で転送されるデータを入力する複数の入力手段と、
前記データを出力する複数の出力手段と、
前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、
複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、
複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、
前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送し、
前記入力手段は、
前記スロットで転送される前記データを入力するための入力ポートと、
入力ポート制御部とを備え、
前記入力ポート制御部は、
前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、
前記選択手段が前記入力スロットに応じて前記バッファを選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、
前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備え、
前記出力手段は、
前記スロットで転送される前記データを出力するための出力ポートと、
出力ポート制御部とを備え、
前記出力ポート制御部は、
前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、
前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、
前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備えることを特徴とするプロセッサ間通信システム。
【請求項２】
複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、
複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、
複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする請求項１に記載のプロセッサ間通信システム。
【請求項３】
前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、
前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、請求項１又は２に記載のプロセッサ間通信システム。
【請求項４】
前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、
前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、
前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、
前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、請求項１から３のいずれか１項に記載のプロセッサ間通信システム。
【請求項５】
複数のネットワークスイッチを用いた通信方法であって、
前記ネットワークスイッチが、複数の入力手段、複数のバッファ手段、複数の出力手段を介して、ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて、時分割多重で転送し、
前記複数の入力手段が、
前記データが入力される入力スロットに応じて前記バッファ手段を選択するための前記入力スロットと前記バッファ手段の対応関係を入力スロット対応管理表に格納し、
入力ポート管理情報により前記入力ポートの通信帯域幅を制御し、
前記入力ポートから、前記スロットで転送される前記データを入力し、
前記入力スロット対応管理表に基づいて前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送し、
前記複数の出力手段が、
前記データが出力される出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を出力スロット対応管理表に格納し、
出力ポート管理情報により前記出力ポートの通信帯域幅を制御し、
前記出力スロット対応管理表に基づいて前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送し、
前記出力ポートから、前記スロットで転送される前記データを出力することを特徴とするプロセッサ間通信方法。
【請求項６】
複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、
複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、
複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする請求項５に記載のプロセッサ間通信方法。
【請求項７】
前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、
前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、請求項５又は６に記載のプロセッサ間通信方法。
【請求項８】
前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、
前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、
前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、
前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、請求項５から７のいずれか１項に記載のプロセッサ間通信方法。
【請求項９】
ノード間で転送されるデータを入力する複数の入力手段と、
前記データを出力する複数の出力手段と、
前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、
複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、
複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、
前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送し、
前記入力手段は、
前記スロットで転送される前記データを入力するための入力ポートと、
入力ポート制御部とを備え、
前記入力ポート制御部は、
前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、
前記選択手段が前記入力スロットに応じて前記バッファを選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、
前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備え、
前記出力手段は、
前記スロットで転送される前記データを出力するための出力ポートと、
出力ポート制御部とを備え、
前記出力ポート制御部は、
前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、
前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、
前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備えることを特徴とするネットワークスイッチ。
【請求項１０】
複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、
複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、
複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする請求項９に記載のプロセッサ間通信ネットワークスイッチ。
【請求項１１】
前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、
前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、請求項９又は１０に記載のネットワークスイッチ。
【請求項１２】
前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、
前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、
前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、
前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、請求項９から１１のいずれか１項に記載のネットワークスイッチ。
【請求項１３】
請求項９から１２のいずれか１項に記載のネットワークスイッチを備えたことを特徴とする並列計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理（機能）ノードから構成される並列処理（並列計算）システムにおける機能ノード間通信方式であるプロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システムに関し、特に機能ノード間の通信帯域幅を保証するための通信システム及び通信方法に関する。
【背景技術】
【０００２】
システムＬＳＩの高機能化、大規模化によりＬＳＩの中に多数の機能ノード（演算、記憶、ＩＯ（入出力）等の機能を要する処理の構成要素）が搭載されるようになってきている。これら複数の機能ノードは協調して１つの処理を行う並列計算システムということができる。複数の機能ノード間でデータの転送を行う必要がある。機能ノード数が少ない場合は、機能ノード間のデータの転送はバスという１つの通信路を時分割で共有し通信を行うことが一般的であったが、機能ノード数が多くなると、同時に大量のデータを転送するとバスが性能のボトルネックとなる。そのため、近年、多数の機能ノードを搭載するシステムＬＳＩにおいては、機能ノード間の通信にネットワークを使うことが考えられるようになっている。システムＬＳＩ内の機能ノードをネットワークで接続する手法は、ＮｏＣ（Network On Chip）として知られている。【０００３】
図２は、２次元メッシュ構成の並列計算システム１０００の構成例である。この並列計算システム１０００は、複数の機能ノード２００と、機能ノード２００間を接続する複数のネットワークスイッチ１００とから構成される。機能ノード２００間の通信は、このネットワークスイッチ１００を介して行われる。【０００４】
典型的なオンチップネットワーク用のネットワークスイッチ（オンチップルータ）が、非特許文献１に記載されている（図１３）。従来のネットワークスイッチは、パケットヘッダに格納された送信先のノードアドレスに基づき動的に経路を決めるため、転送されるパケットの混雑度に応じて不確定な時間、転送が待たされることがある。ルーティングアルゴリズムによってはデッドロックを生じる場合もあるが、仮想チャネルを導入することによりデッドロックを回避し、またパケットの滞留も緩和することができる。【０００５】
図１３は、２チャネルの仮想チャネルを持つネットワークスイッチ１００の例である。このネットワークスイッチ１００は、５つの入力ポート１１０と、５つの出力ポート１２０と、５×５のクロスバスイッチと、アービターユニットと、５つのＦＩＦＯ（First-In
First-Out）バッファとを備える。この場合、各入力ポート１１０から各出力ポート１２０へのデータ転送は、クロスバスイッチを介して行われる。しかし、この場合も転送時間は不確定であり、機能ノード間の通信において通信帯域幅を保証したパケットの転送を行うことは困難であった。この場合、ノード間の通信帯域幅を保証するためには、ネットワークスイッチ１００の性能を要求通信帯域幅に比べて必要以上の大きく設計する等で対応していた。【０００６】
図１４は、特許文献１および非特許文献２で開示されている、時分割多重スイッチである。この時分割多重スイッチを構成するネットワークスイッチ１００は、５つの入力ポート１１０と、５つの出力ポート１２０と、５×５のクロスバスイッチと、スロットテーブル７００と、５つのＦＩＦＯバッファとを備える。この場合、入力ポート１１０から出力ポート１２０へのデータ転送は、クロスバスイッチを介して行われる。図１４に示す時分割多重スイッチにおいては、フレームという単位時間をスロットというより小さな時間に分割してクロスバスイッチの制御を行う。このクロスバスイッチは、あらかじめスロットテーブル７００に格納しておいた接続情報に基づいて制御される。ある入力ポート１１０から出力ポート１２０へのデータ転送に必要なデータ転送の通信帯域幅に応じてスロットを割り当てることにより、通信帯域幅を保証した通信が可能である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００７−５００９８５号公報（カラム１８〜２１、図１）
【非特許文献】
【０００８】
【非特許文献１】Matsutani H, Koibuchi M, Wang D, Amano H著. 2008年. Adding Slow-Silent Virtual Channels for Low-Power On-Chip Networks. Proceedings of the International Symposium on Networks-on-Chip (NOCS'08). :pp. 23-32.
【非特許文献２】Leijten, J.A.J.; van Meerbergen, J.L.; Timmer, A.H.; Jess, J.A.G.著. 23-26 Feb. 1998年2月23日〜26日、Stream communication between real-time tasks in a high-performance multiprocessor、Design, Automation and Test in Europe, 1998年., Proceedings、pp.125-131(図5、図7)
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、この特許文献１に開示された時分割多重スイッチには、以下のような問題がある。【００１０】
すなわち、この時分割多重スイッチでは、通信の状況によって、各入出力ポートが要求する通信帯域幅が均等でない場合は、無駄な電力を消費するということである。この問題が発生する原因は、各入力ポート、各出力ポートに要求される通信帯域幅は一般的には異なるが、全部の入出力ポートが、全入出力ポートのうち最大の通信帯域幅を必要とする入出力ポートと同じ通信帯域幅で動作するためである。【００１１】
本発明の目的は、複数の機能ノード間の通信帯域幅を保証し、かつ低電力な機能ノード間通信システム及び通信方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明に係るプロセッサ間通信システムは、複数のネットワークスイッチを有する。【００１３】
前記ネットワークスイッチは、ノード間で転送されるデータを入力する複数の入力手段と、前記データを出力する複数の出力手段と、前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送する。【００１４】
前記入力手段は、前記スロットで転送される前記データを入力するための入力ポートと、入力ポート制御部とを備える。前記入力ポート制御部は、前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、前記選択手段が前記入力スロットに応じて前記バッファ手段を選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備える。【００１５】
前記出力手段は、前記スロットで転送される前記データを出力するための出力ポートと、出力ポート制御部とを備える。前記出力ポート制御部は、前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備える。【００１６】
本発明に係るプロセッサ間通信方法は、複数のネットワークスイッチを用いた通信方法である。【００１７】
前記ネットワークスイッチは、複数の入力手段、複数のバッファ手段、複数の出力手段を介して、ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて、時分割多重で転送する。【００１８】
前記複数の入力手段は、前記データが入力される入力スロットに応じて前記バッファ手段を選択するための前記入力スロットと前記バッファ手段の対応関係を入力スロット対応管理表に格納し、入力ポート管理情報により前記入力ポートの通信帯域幅を制御し、前記入力ポートから、前記スロットで転送される前記データを入力し、前記入力スロット対応管理表に基づいて前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する。【００１９】
前記複数の出力手段は、前記データが出力される出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を出力スロット対応管理表に格納し、出力ポート管理情報により前記出力ポートの通信帯域幅を制御し、前記出力スロット対応管理表に基づいて前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送し、前記出力ポートから、前記スロットで転送される前記データを出力する。
【発明の効果】
【００２０】
本発明によれば、ノード間で転送されるデータは単位時間を複数の区間に分割したスロットに割り当てられて時分割多重で転送され、ネットワークスイッチの入力ポート、出力ポートへのデータの転送は、入力スロット対応管理表、出力スロット対応管理表としてあらかじめ設定された情報に基づき行われる。このため、入力ポート、出力ポート間の転送は一定時間で確実に行うことが可能で、通信帯域幅を保証した通信が可能である。【００２１】
また、本発明によれば、ネットワークスイッチの各入力ポート、出力ポートは、それぞれ入力ポート管理情報、出力ポート管理情報により個別に通信帯域幅を設定可能で、要求された通信帯域幅に応じて必要最低限の通信帯域幅を設定することで、低電力な通信が可能である。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係るネットワークスイッチの構成を示すブロック図である。
【図２】図１のネットワークスイッチを用いた２次元メッシュ構成の並列計算システムの構成例を示すブロック図である。
【図３】図２の複数の機能ノードで構成されるプロセスの構成例である。
【図４】図３のプロセスを図２の並列計算システムへマッピングした場合のマッピング例を説明するブロック図である。
【図５】（ａ）〜（ｃ）は、ネットワークスイッチの入出力ポートへの通信帯域幅の割り当て例の説明図である。
【図６】図５の入力ポートのスロットと出力ポートのスロットの割り当て例に従うデータ転送を説明するタイミングチャートである。
【図７】図１の入力スロット対応管理表の構成例を示す図である。
【図８】図１の出力スロット対応管理表の構成例を示す図である。
【図９】図１の出力スロット対応管理表の作成アルゴリズムを示すフローチャートである。
【図１０】図１の入出力スロット対応管理表の設定例を示すブロック図である。
【図１１】図１の入力ポート制御部の動作を説明するフローチャートである。
【図１２】図１の出力ポート制御部の動作を説明するフローチャートである。
【図１３】非特許文献１に記載されているオンチップネットワーク用ネットワークスイッチの構成例を示すブロック図である。
【図１４】特許文献１で開示されている、時分割多重スイッチの構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２４】
図１は、本発明の実施形態によるプロセッサ間通信システムを用いたネットワークスイッチ１００の構成を示すブロック図である。図１に示すネットワークスイッチ１００は、複数（図１では５つ）の入力ポート１１０と、複数（図１では５つ）の出力ポート１２０と、各入力ポート１１０に対応する入力ポート制御部１３０と、各出力ポート１２０に対応する出力ポート制御部１４０と、各入力ポート１１０から各出力ポート１２０へのデータの転送を仲介する複数のバッファＢＵＦ１５０とを有する。このうち、複数の入力ポート１１０及び入力ポート制御部１３０は、複数の入力手段に、複数の出力ポート１２０及び出力ポート制御部１４０とは、複数の出力手段に、複数のバッファＢＵＦ１５０は、複数のバッファ手段に、それぞれ対応する。
【００２５】
入力ポート制御部１３０は、入力ポート１１０のデータをどの出力ポート側のバッファＢＵＦ１５０に転送するかを選択する選択部ＳＥＬ１３１と、入力ポート１１０のデータをどの出力ポート側のバッファＢＵＦ１５０に転送するかの情報を管理している入力スロット対応管理表１３２と、入力ポート１１０の通信帯域幅を制御するための入力ポート管理情報１３３とを有する。
【００２６】
出力ポート制御部１４０は、どの入力ポート側のバッファＢＵＦ１５０のデータを出力ポート１２０へ転送するかを選択し、多重化して出力する多重化部ＭＵＸ１４１と、どのように多重化するかの情報を管理している出力スロット対応管理表１４２と、出力ポート１２０の通信帯域幅を制御するための出力ポート管理情報１４３とを有する。
【００２７】
各入力ポート制御部１３０の動作は、入力ポート制御部設定信号１６０によって変更可能である。また、各出力ポート制御部１４０の動作は、出力ポート制御部設定信号１７０によって変更可能である。
【００２８】
図１に示すネットワークスイッチ１００では、５入力５出力の構成を示してあるが、本発明はこれに限定されるものではなく、これ以外のＮ入力Ｍ出力の構成へは容易に対応可能である。
【００２９】
図２は、ネットワークスイッチ１００を用いた２次元メッシュ構成の並列計算システム１０００の構成例である。図２に示す並列計算システム１０００は、複数の機能ノード２００と、複数のネットワークスイッチ１００とから構成される。
【００３０】
ネットワークスイッチ１００は、２次元の格子上の通信路を形成している。各ネットワークスイッチ１００に対応して各機能ノード２００が存在する。このため、ネットワークスイッチ１００は、図中の上下左右の隣接する他の４つのネットワークスイッチ１００と、隣接する１つの機能ノード２００との間でテータを転送するために５つの入力ポートと、５つの出力ポートを持つ。
【００３１】
機能ノード２００は、演算機能、記憶機能、ＩＯ機能等の機能を有する処理の構成要素である。機能ノード２００は、１種類ではなく、複数の異なる機能を有する機能ノードが混在していても良い。
【００３２】
図２に示す並列計算システム１０００は、２次元メッシュ構成の例であるが、本発明はこれに限定されるものではなく、他のトポロジーを採用した構成であっても良い。
【００３３】
図３は、複数の機能ノード２００で構成されるプロセス３００の構成例である。プロセス３００は、ある目的を持った一連の処理で、データの入力、演算、出力等の機能から構成される。図３では、入出力用に２つのＩＯノード（ｎ１、ｎ６）、演算用に４つの演算ノード（ｎ２、ｎ３、ｎ４、ｎ５）、処理の中間結果等のデータを格納するための記憶ノード（ｎ７、ｎ８、ｎ９）から構成されるプロセス３００の例を示している。プロセスを構成する各機能ノード２００は、お互いにデータを転送するために通信経路（ｌｎｋ１、ｌｎｋ２、…、ｌｎｋ１９）４００を持つ。プロセス３００が全体として処理を効率的に行うためには、通信経路４００において十分な通信帯域幅でデータの転送を行う必要がある。
【００３４】
図４は、図３のプロセス３００を図２の並列計算システム１０００にマッピングした例である。図４の並列計算システム１０００は、８つの演算ノード２００ａ、４つの記憶ノード２００ｂ、４つのＩＯノード２００ｃから構成される。これら機能ノードにプロセス３００の各機能ノードを割り当てる。機能ノード間の通信経路４００は、複数のネットワークスイッチ１００を用いて構成する。マッピングされたプロセス３００が所定の性能を達成するためには、それぞれの機能ノード２００が所定の性能で処理を進めるとともに、それぞれの通信経路４００が所定の通信帯域幅を保証してデータを転送する必要がある。
【００３５】
図５は、ネットワークスイッチ１００に要求される通信帯域幅の割り当てを説明したものである。
【００３６】
図５（ａ）は、ネットワークスイッチ１００を経由する複数の通信経路４００を示したものである。ここでは、Ｌ１、Ｌ２、Ｌ３、Ｌ４の４つの通信経路（リンク）４００が１つのネットワークスイッチ１００を経由している。ネットワークスイッチ１００には、２次元メッシュ構成の互いに直交するＸＹ方向に沿って隣接する他の４つのネットワークスイッチ１００側にそれぞれ対応するＸ−、Ｘ＋、Ｙ−、Ｙ＋側と、隣接する１つの機能ノード２００側に対応するＣｏｒｅ（コア）側とにそれぞれ入力ポート１１０と出力ポート１２０を持つ。通信経路Ｌ１によるテータ転送では、データはＣｏｒｅ側の入力ポート１１０からネットワークスイッチ１００に入り、Ｘ＋側の出力ポート１２０から出てゆく。Ｘ−側の入力ポート１１０は、２つの通信経路Ｌ２、Ｌ３で共有しており、Ｘ＋側の出力ポート１２０は、３つの通信経路Ｌ１、Ｌ３、Ｌ４で共有している。
【００３７】
図５（ｂ）は、それぞれの通信経路４００が要求する通信帯域幅の例である。帯域幅の数字は単位時間あたりの転送容量で、実現可能な通信帯域幅の最小値（ｗとする）を単位としてあらわしている。
【００３８】
図５（ｃ）は、通信経路４００が図４（ｂ）の通信帯域幅を要求したときに、ネットワークスイッチ１００の各入力ポート１１０、各出力ポート１２０にそれぞれ割り当てるべき通信帯域幅を示したものである。
【００３９】
本実施形態によれば、通信帯域幅の割り当ては、最小通信帯域幅ｗの１倍（１ｗ）から最大通信帯域幅（Ｎｗ）の範囲で、最小通信帯域幅（ｗ）の任意の整数倍に設定可能である。入力ポート１１０、出力ポート１２０の通信帯域幅は、入力ポート１１０、出力ポート１２０の動作周波数として設定することも可能である。例えば、最小通信帯域幅ｗを実現する動作周波数をｆとすると、１ｆ、２ｆ、３ｆ、…、Ｎｆと整数倍の周波数を設定することで、最低通信帯域幅ｗの１倍からＮ倍までの任意の通信帯域幅を実現できる。
【００４０】
本実施形態のネットワークスイッチ１００では、各入力ポート制御部１３０の入力ポート管理情報１３３によって、入力ポート１１０の動作周波数を設定することができる。また、各出力ポート制御部１４０の出力ポート管理情報１４３によって、出力ポート１２０の動作周波数を設定することができる。図５では、説明の簡単化のために最小通信帯域幅に対して２倍、４倍、８倍と２の冪で設定する場合の例を示しているが、以下の説明は、任意の整数倍で設定する場合でも適用可能である。
【００４１】
図５では、Ｘ−側のポート位置にある入力ポート１００は、２つの通信経路Ｌ２、Ｌ３で共有しており、２つの通信経路Ｌ２、Ｌ３の要求する通信帯域幅２ｗ、４ｗの合計６ｗ以上の通信帯域幅を割り当てる必要がある。この場合、最大通信帯域幅を８ｗとすると、Ｘ−側のポート位置にある入力ポート１００には、最大通信帯域幅８ｗを割り当てる。Ｘ＋側出力ポート１２０は、３つの通信経路Ｌ１、Ｌ３、Ｌ４で共有されており、要求通信帯域幅１ｗ、４ｗ、３ｗの合計は８ｗなので、８ｗの通信帯域幅を割り当てる。Ｙ＋、Ｘ＋側入力ポート１１０を経由する通信経路４００は存在しないので、通信帯域幅は割り当てない。同様に、Ｃｏｒｅ、Ｙ−、Ｘ−側出力ポート１２０を経由する通信経路４００は存在しないので、通信帯域幅は割り当てない。
【００４２】
図６は、図５で説明したネットワークスイッチ１００において各通信経路４００で指定されたデータ転送がどのように行われるかを示したものである。
【００４３】
本実施形態では、ノード間で転送されるデータは単位時間を複数の区間に分割したスロットに割り当てられ時分割多重で転送される。単位時間をフレーム５００と呼ぶ。ある時刻のフレーム５００をＦｊとすると、連続するフレーム５００は、Ｆｊ＋１とあらわす。フレーム５００の時間区間は、最小通信帯域幅ｗから最大通信帯域幅Ｎｗに対応して、１分割、２分割、…、Ｎ分割される。分割されたフレーム５００は、スロット６００と呼ぶ。スロット６００は、分割数をｋとした場合、時間の順にＳ０、Ｓ１、…、Ｓｋ−１として区別される。図５では、最大通信帯域幅Ｎｗは８ｗ（Ｎ＝８）のため、分割数はｋ＝８となり、スロット６００はＳ０、Ｓ１、…、Ｓ７として区分される。
【００４４】
図６は、図５（ｃ）で説明した各入力ポート１１０、各出力ポート１２０への通信帯域幅の割り当てに応じて、各入力ポート１１０、各出力ポート１２０のフレーム５００の分割を表している。通信帯域幅の割り当てられていない入出力ポートは、省略している。
【００４５】
Ｃｏｒｅ側入力ポート１１０は、通信経路Ｌ１だけが経由しており、最小通信帯域幅ｗが割り当てられている。したがって、Ｃｏｒｅ側入力ポート１１０のフレーム５００は、１分割で１スロットＳ０だけから構成される。
【００４６】
Ｘ−側入力ポート１１０は、２つの通信経路Ｌ２、Ｌ３が共有しており、それぞれ２ｗ、４ｗの通信帯域幅を要求しているので、２ｗ＋４ｗ＝６ｗ以上の８ｗの通信帯域幅を割り当てている。そのため、Ｘ−側入力ポート１１０のフレーム５００は、８分割され、８つのスロット６００で構成される。フレーム５００の分割によらず、各スロット６００は、最小通信帯域幅ｗの通信帯域幅を持つ必要がある。このため、Ｘ−側入力ポート１１０は、最小通信帯域幅ｗの８倍の通信帯域幅を実現できるよう高速で動作させる。Ｘ−側入力ポート１１０の８つのスロット６００のうち、Ｓ０、Ｓ１は、通信経路Ｌ２に割り当てられ、Ｓ２、Ｓ３、Ｓ４、Ｓ５は、通信経路Ｌ３に割り当てられている。
【００４７】
Ｙ＋側出力ポート１２０には、通信経路Ｌ２が割り当てられている。通信経路Ｌ２は、２ｗの通信帯域幅を要求しているので、Ｙ＋側出力ポート１２０には、２ｗの通信帯域幅を割り当てている。
【００４８】
Ｘ＋側出力ポート１２０は、３つの通信経路Ｌ１、Ｌ３、Ｌ４が共有しており、それぞれ１ｗ、４ｗ、３ｗの通信帯域幅を要求しているので、１ｗ＋４ｗ＋３ｗ＝８ｗの通信帯域幅を割り当てている。
【００４９】
４つの通信経路Ｌ１、Ｌ２、Ｌ３、Ｌ４は、それぞれ、Ｃｏｒｅ側、Ｘ−側、Ｙ−側の入力ポート１１０のスロット６００に割り当てられて、ネットワークスイッチ１００に入力される。通信経路Ｌ１は、Ｃｏｒｅ側入力ポート１１０のスロットＳ０に、通信経路Ｌ２は、Ｘ−側入力ポート１１０のスロットＳ０、Ｓ１に、通信経路Ｌ３は、Ｘ−側入力ポート１１０のスロットＳ２、Ｓ３、Ｓ４、Ｓ５に、通信経路Ｌ４は、Ｙ−側入力ポート１１０のスロットＳ０、Ｓ１、Ｓ２に割り当てられている。
【００５０】
同様に、４つの通信経路Ｌ１、Ｌ２、Ｌ３、Ｌ４は、それぞれ、Ｙ＋側、Ｘ＋側の出力ポート１２０のスロット６００に割り当てられて、ネットワークスイッチ１００から出力される。通信経路Ｌ１は、Ｘ＋側出力ポート１２０のスロットＳ１に、通信経路Ｌ２は、Ｙ＋側出力ポート１２０のスロットＳ１、Ｓ０に、通信経路Ｌ３は、Ｘ＋側出力ポート１２０のスロットＳ３、Ｓ５、Ｓ７、Ｓ０に、通信経路Ｌ４は、Ｘ＋側出力ポート１２０のスロットＳ２、Ｓ４、Ｓ６に割り当てられている。
【００５１】
図６では、各通信経路の入力ポート１１０のスロット６００と出力ポート１２０のスロット６００の対応を矢印で示している。通信経路Ｌ３を例に、この対応付けを説明する。
【００５２】
入力ポート１１０のスロット６００をＳＩとし、出力ポート１２０のスロット６００をＳＯとすると、入力ポートスロットＳＩと出力ポートスロットＳＯの時間的関係は、次の条件を満たすように割り当てる。
【００５３】
入力ポートスロットＳＩの終了時刻≦出力ポートスロットＳＯの開始時刻  （式１）
入力ポートスロットＳＩが属しているフレーム５００をＦｊとした場合、式１の条件を満たし、他の入力ポート１１０のスロット６００と対応付けされていない出力ポート１２０のスロット６００がフレームＦｊの時間区間に存在しない場合は、フレームＦｊの次の時間区間であるフレームＦｊ＋１の出力ポート１２０のスロット６００に出力ポートスロットＳＯを対応付ける。
【００５４】
例えば、図６では、通信経路Ｌ１のＣｏｒｅ側の入力ポート１１０のスロットＳ０が、次のフレーム５００のＸ＋側の出力ポート１２０のスロットＳ１に対応付けられている。また、通信経路Ｌ３のＸ−側の入力ポート１１０のスロットＳ５が、次のフレーム５００のＸ＋側の出力ポート１２０のスロットＳ０に対応付けられている。
【００５５】
各入力ポート１１０、各出力ポート１２０に割り当てられている通信帯域幅が、各入力ポート１１０、各出力ポート１２０を通る通信経路４００が要求している通信帯域幅の合計と同じか、大きい場合は、必ず式１の条件を満たすような入力ポート１１０のスロット６００と出力ポート１２０のスロット６００の対応付けが可能である。
【００５６】
本実施形態では、入力ポート１１０のスロット６００と出力ポート１２０のスロット６００の対応付けは、入力スロット対応管理表１３２、出力スロット対応管理表１４２という２種類の管理表で実現する。ネットワークスイッチ１００の各入力ポート制御部１３０は、対応する入力ポート１１０の各スロット６００をどの出力ポート１２０に転送するかの対応付けを入力スロット対応管理表１３２として管理する。
【００５７】
図７は、入力スロット対応管理表１３２の構成例である。入力ポート１１０のフレーム５００がｋ個のスロット６００に分割されている場合は、入力スロット対応管理表１３２は入力スロットＳ０、Ｓ１、…、Ｓｋ−１に対応してｋ個のエントリをもつ１次元の表として実現できる。各エントリには、転送すべき出力ポート１２０の識別情報を格納する。ネットワークスイッチ１００の各出力ポート制御部１４０は、対応する出力ポート１２０の各スロット６００へどの入力ポート１１０からデータを転送するかの対応付けを出力スロット対応管理表１４２として管理する。
【００５８】
図８は、出力スロット対応管理表１４２の構成例である。出力ポート１２０のフレーム５００がｋ個のスロット６００に分割されている場合は、出力スロット対応管理表１４２は出力スロットＳ０、Ｓ１、…、Ｓｋ−１に対応してｋ個のエントリを持つ１次元の表として実現できる。各エントリには、各出力スロット６００に転送すべき入力ポート１１０の識別情報を格納する。
【００５９】
ネットワークスイッチ１００の入力ポート制御部１３０は、入力スロット対応管理表１３２の情報に基づき、入力ポート１１０のスロット６００のデータを指定された出力ポート１１０側のバッファＢＵＦ１５０へ転送する。入スロット対応管理表１３２が図７のように構成される場合は、入力ポート１１０にＳ０、Ｓ１、…、Ｓｋ−１の順に到着するスロット６００のデータを入力スロット対応管理表１３２の出力ポート識別情報で指定されるバッファＢＵＦ１５０に転送するように選択部ＳＥＬ１３１で転送先を選択する。
【００６０】
ネットワークスイッチ１００の出力ポート制御部１４０は、出力スロット対応管理表１４２の情報に基づき、どの入力側ＢＵＦ１５０から出力ポート１２０のスロット６００へ転送するかを決定し、出力ポート１２０のスロット６００へ多重化して出力する。出力スロット対応管理表１４２が図８のように構成される場合は、出力ポート１２０のスロットＳ０、Ｓ１、…、Ｓｋ−１の順に出力すべきデータを、出力スロット対応管理表１４２の入力ポート識別情報で指定されるＢＵＦ１５０からとりだし、多重化部ＭＵＸ１４１で多重化して出力ポート１２０から出力する。
【００６１】
以上により、各通信経路４００が要求する通信帯域幅を保証した通信が可能となる。また、ネットワークスイッチ１００の各入力ポート１１０、各出力ポート１２０は要求された通信帯域幅を実現可能な最低限の速度で動作することができる。
【００６２】
次に、入力スロット対応管理表１３２、出力スロット対応管理表１４２の作成アルゴリズムについて説明する。
【００６３】
図４で説明した、並列計算システム１０００へのプロセスのマッピングは完了しているものとする。機能ノード２００間を接続する、通信経路４００が具体的にどのネットワークスイッチ１００を経由するかの決定は、経路探索問題として知られている問題で、多くのアルゴリズムが提案されている。したがって、各ネットワークスイッチ１００を通る通信経路４００がどの入力ポート１１０から入力され、どの出力ポート１２０から出力されるかは、図５（ａ）で示したように与えられているものとする。
【００６４】
入力ポート１１０の各スロット６００にどの通信経路４００が割り当てられているかは、次のようにして決定できる。
【００６５】
ネットワークスイッチ１００の各入力ポート１１０のスロット６００への通信経路４００の割り当ては、この入力ポート１１０にデータを出力する前段のネットワークスイッチ１００の出力ポート１２０の出力ポート制御部１４０によって決定される。さらにさかのぼれば、並列計算システム１０００を構成する機能ノード２００の出力ポート１２０によって決定される。機能ノード２００の出力ポート１２０には、その出力ポート１２０を介する通信経路４００の通信帯域幅に必要なスロット数が割り当てられる。割り当てられたスロット６００と通信経路４００の対応付けは任意でよい。
【００６６】
ネットワークスイッチ１００の入力ポート１１０の各スロット６００と通信経路４００の対応付けが既知であれば、入力スロット対応管理表１３２と、出力スロット対応管理表１４２とから、入力ポート１１０のスロット６００が、どの出力ポート１２０のどのスロット６００と対応付けられているかがわかる。すなわち、出力ポート１２０のどのスロット６００にどの通信経路４００が対応付けられているかわかる。
【００６７】
ネットワークスイッチ１００を経由するすべての通信経路４００に関して、通信経路４００の送信元の機能ノード２００から、当該ネットワークスイッチ１００に至る全ネットワークスイッチ１００に関して、上記手続きを繰り返すことにより、当該ネットワークスイッチ１００の入力ポート１１０の各スロット６００と対応付けられている通信経路４００がわかる。入力ポート１１０から入力された通信経路４００のデータは、どの出力ポート１２０へ転送すべきかは、経路探索アルゴリズムによってあらかじめ計算されている。したがって、入力ポート１１０の入力スロット対応管理表１３２の各スロットＳ０、Ｓ１、…、Ｓｋ−１のエントリには、対応する通信経路４００のデータを転送すべき出力ポート１２０の識別子を格納すればよい。
【００６８】
図９を用いて、ネットワークスイッチ１１０の出力ポート制御部１４０の出力スロット対応管理表１４２の作成方法を説明する。当該ネットワークスイッチ１１０の各入力ポート１１０の入力スロット対応管理表１３２は、与えられているものとする。
【００６９】
ステップＳ１０１で、当該ネットワークスイッチ１００の各入力ポート１１０に関してステップＳ１０２〜Ｓ１０６を繰り返す。ステップＳ１０２〜Ｓ１０６の繰り返しの間は、選択されている入力ポート１１０を入力ポート識別子Ｐｉｎで識別する。
【００７０】
ステップＳ１０２で、入力ポート識別子Ｐｉｎで指示される入力スロット対応管理表１３２の空でない各エントリ［Ｓｉｎ、Ｐｏｕｔ］について、ステップＳ１０３〜Ｓ１０６を繰り返す。ここで、Ｓｉｎは入力スロット番号、ＰｏｕｔはＳｉｎのデータを転送すべき出力ポート１２０の出力ポート識別子である。
【００７１】
ステップＳ１０３で、出力ポート識別子Ｐｏｕｔの出力スロット対応管理表１４２をＯＳＴｏｕｔとする。
【００７２】
ステップＳ１０４の条件判断では、ＯＳＴｏｕｔの空きスロットＳｏｕｔのうち、スロット開始時刻がスロットＳｉｎの終了時刻と同じか、遅いものがあるかどうかを判定する。もしあれば、ステップＳ１０５で、ＯＳＴｏｕｔの空きスロットＳｏｕｔに入力ポート識別子Ｐｉｎを対応付ける。もしステップ１０４の条件に合致する空きスロットＳｏｕｔがＯＳＴｏｕｔに存在しない場合、入力側のスロットＳｉｎは同じフレーム５００内の出力側のスロットに対応付けることができないということである。したがって、入力側のスロットＳｉｎは、現在のフレーム５００の次のフレーム５００のスロットで出力側のスロットに対応付ける（ステップＳ１０６）。
【００７３】
ネットワークスイッチ１００の各入力ポート１１０、各出力ポート１２０に対する通信帯域の割り当てが、図５（ｃ）で説明したように割り当てられている場合、以上により、ネットワークスイッチ１００の各入力ポート１１０のスロット６００に対し、式１の条件を満たすような対応付けを必ず行うことができる。
【００７４】
入力スロット対応管理表１３２、出力スロット対応管理表１４２の作成アルゴリズムはここで説明した以外にも多様なアルゴリズムが考えられるが、式１の条件を満たすことができれば、任意の対応付けで、本実施形態のネットワークスイッチ１００は正しく動作する。
【００７５】
次に、ネットワークスイッチ１００の各入力ポート１１０の入力ポート制御部１３０、各出力ポート１２０の出力ポート制御部１４０の動作を、フローチャートを用いて説明する。
【００７６】
図１０は、図６で説明したスロット割り当て例に対応する、入力スロット対応管理表１３２、出力スロット対応管理表１４２の設定例である。
【００７７】
図１１は、入力ポート制御部１３２の動作のフローチャートである。ネットワークスイッチ１００の入力ポート１１０のスロット６００の総数をＮｉｎ、入力ポート１１０の現在のスロット番号をＳｉｎとする（ステップＳ２０１）。入力ポート制御部１３２は、ステップＳ２０２〜Ｓ２０４を繰り返す。
【００７８】
ステップＳ２０２で、入力スロット対応管理表１３２から現在スロット番号Ｓｉｎに対応する出力ポート識別子Ｐｏｕｔを検索する。ステップＳ２０３で、入力ポート１１０のデータを出力ポート識別子Ｐｏｕｔで指示されるバッファＢＵＦ１５０に転送する。以上で、所定の出力ポート１２０へ入力ポート１１０のデータが転送される。ステップＳ２０４で、入力ポート１１０の現在のスロット番号Ｓｉｎを更新する。
【００７９】
入力ポート制御部１３０は、入力ポート１１０のスロット６００の開始と終了に同期してステップＳ２０３のデータ転送を行う。同期のために必要な情報としては、スロット６００の時間間隔、総スロット数がある。これらの情報は、入力ポート管理情報１３３に格納される。入力ポート制御部１３０は、入力ポート１１０に要求されている通信帯域幅に応じて動作周波数を設定することも可能である。入力ポート管理情報１３３には、動作周波数を設定することも可能である。
【００８０】
図１２は、出力ポート制御部１４２の動作のフローチャートである。ネットワークスイッチ１００の出力ポート１２０のスロット６００の総数をＮｏｕｔ、出力ポート１２０の現在のスロット番号をＳｏｕｔとする（ステップＳ３０１）。出力ポート制御部１４２は、ステップＳ３０２〜３０４を繰り返す。
【００８１】
ステップＳ３０２で、出力スロット対応管理表１４２から現在スロット番号Ｓｏｕｔに対応する入力ポート識別子Ｐｉｎを検索する。ステップＳ３０３で、入力ポート識別子Ｐｉｎで指示されるバッファＢＵＦ１５０のデータを出力ポート１２０に転送する。ステップＳ３０４で、出力ポート１２０の現在のスロット番号Ｓｏｕｔを更新する。
【００８２】
出力ポート制御部１４０は、出力ポート１２０のスロット６００の開始と終了に同期して、ステップＳ３０３のデータ転送を行う。同期のために必要な情報としては、スロット６００の時間間隔、総スロット数がある。これらの情報は、出力ポート管理情報１４３に格納される。出力ポート制御部１４０は、出力ポート１２０に要求されている通信帯域幅に応じて動作周波数を設定することも可能である。出力ポート管理情報１４３には、動作周波数を設定することも可能である。
【００８３】
本実施形態では、ネットワークスイッチ１００の各入力ポート制御部１３０、各出力ポート制御部１４０は異なる動作周波数で動作することができる。このため、バッファＢＵＦ１５０の入力と出力は異なる周波数で動作可能なように構成する。
【００８４】
以上により、機能ノード２００間で転送されるデータは、単位時間であるフレーム５００を複数の区間に分割したスロット６００に割り当てられ、時分割多重で転送される。このとき、ネットワークスイッチ１００の入力ポート１１０、出力ポート１２０へのデータの転送は、入力スロット対応管理表１３２、出力スロット対応管理表１４２としてあらかじめ設定された情報に基づき行われる。このため、入力ポート１１０、出力ポート１２０間の転送は、一定時間で確実に行うことが可能で、通信帯域幅を保証した通信が可能となる。また、ネットワークスイッチ１００の各入力ポート１１０、出力ポート１２０は、それぞれ入力ポート管理情報１３３、出力ポート管理情報１４３により個別に通信帯域幅を設定可能で、要求された通信帯域幅に応じて必要最低限の通信帯域幅を設定することで、低電力な通信が可能となる。
【００８５】
以上説明したように、本実施形態では、ネットワークスイッチ１００は、複数の入力ポート１１０と、複数の出力ポート１２０と、各入力ポート１１０に対応する入力ポート制御部１３０と、各出力ポート１２０に対応する出力ポート制御部１４０と、各入力ポート１１０から各出力ポート１２０へのデータの転送を仲介する複数のバッファＢＵＦ１５０とを有する。入力ポート１１０は、入力スロット対応管理表１３２に基づき独立に入力スロットのデータをバッファ１５０に転送する。出力ポート１２０は、出力スロット対応管理表１４２に基づき独立にバッファ１５０から出力スロットにデータを転送する。
【００８６】
これにより、本実施形態によれば、通信帯域幅を保証して通信を行うための時分割多重スイッチにおいて、通信の状況によって、各入出力ポートが要求する通信帯域幅が均等でない場合も、各入出力ポートが独立に必要最低限の通信帯域幅を保証して動作可能で、かつ無駄な電力を消費することのないプロセッサ間通信システム及び通信方法を提供することができる。
【００８７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
【００８８】
（付記１）複数のネットワークスイッチを有する通信システムであって、前記ネットワークスイッチは、ノード間で転送されるデータを入力する複数の入力手段と、前記データを出力する複数の出力手段と、前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送し、前記入力手段は、前記スロットで転送される前記データを入力するための入力ポートと、入力ポート制御部とを備え、前記入力ポート制御部は、前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、前記選択手段が前記入力スロットに応じて前記バッファを選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備え、前記出力手段は、前記スロットで転送される前記データを出力するための出力ポートと、出力ポート制御部とを備え、前記出力ポート制御部は、前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備えることを特徴とするプロセッサ間通信システム。
【００８９】
（付記２）複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする付記１に記載のプロセッサ間通信システム。
【００９０】
（付記３）前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、付記１又は２に記載のプロセッサ間通信システム。
【００９１】
（付記４）前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、付記１から３のいずれか１項に記載のプロセッサ間通信システム。
【００９２】
（付記５）複数のネットワークスイッチを用いた通信方法であって、前記ネットワークスイッチが、複数の入力手段、複数のバッファ手段、複数の出力手段を介して、ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて、時分割多重で転送し、前記複数の入力手段が、前記データが入力される入力スロットに応じて前記バッファ手段を選択するための前記入力スロットと前記バッファ手段の対応関係を入力スロット対応管理表に格納し、入力ポート管理情報により前記入力ポートの通信帯域幅を制御し、前記入力ポートから、前記スロットで転送される前記データを入力し、前記入力スロット対応管理表に基づいて前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送し、前記複数の出力手段が、前記データが出力される出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を出力スロット対応管理表に格納し、出力ポート管理情報により前記出力ポートの通信帯域幅を制御し、前記出力スロット対応管理表に基づいて前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送し、前記出力ポートから、前記スロットで転送される前記データを出力することを特徴とするプロセッサ間通信方法。
【００９３】
（付記６）複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする付記５に記載のプロセッサ間通信方法。
【００９４】
（付記７）前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、付記５又は６に記載のプロセッサ間通信方法。
【００９５】
（付記８）前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、請求項５から７のいずれか１項に記載のプロセッサ間通信方法。
【００９６】
（付記９）ノード間で転送されるデータを入力する複数の入力手段と、前記データを出力する複数の出力手段と、前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送し、前記入力手段は、前記スロットで転送される前記データを入力するための入力ポートと、入力ポート制御部とを備え、前記入力ポート制御部は、前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、前記選択手段が前記入力スロットに応じて前記バッファを選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備え、前記出力手段は、前記スロットで転送される前記データを出力するための出力ポートと、出力ポート制御部とを備え、前記出力ポート制御部は、前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備えることを特徴とするネットワークスイッチ。
【００９７】
（付記１０）複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする付記９に記載のプロセッサ間通信ネットワークスイッチ。
【００９８】
（付記１１）前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、付記９又は１０に記載のネットワークスイッチ。
【００９９】
（付記１２）前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、付記９から１１のいずれか１項に記載のネットワークスイッチ。
【０１００】
（付記１３）付記９から１２のいずれか１項に記載のネットワークスイッチを備えたことを特徴とする並列計算システム。
【０１０１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１０２】
この出願は、２００９年３月９日に出願された日本出願特願２００９−０５５０３０号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１０３】
本発明は、複数の機能ノードから構成されるマルチコアシステムをリアルタイム性、低電力性が重要な組込み制御といった用途に適用できる。また、本発明は、複数のプロセスをそれぞれ自動並列化コンパイラでそれぞれのプロセスごとに複数コア用に最適化して１つの並列計算システム上でお互いに干渉することなく実行する、といった用途にも適用可能である。
【符号の説明】
【０１０４】
１００  ネットワークスイッチ
１１０  入力ポート
１２０  出力ポート
１３０  入力ポート制御部
１３１  選択部
１３２  入力スロット対応管理表
１３３  入力ポート管理情報
１４０  出力ポート制御部
１４１  多重化部
１４２  出力スロット対応管理表
１４３  出力ポート管理情報
１５０  バッファ
１６０  入力ポート制御部設定信号
１７０  出力ポート制御部設定信号
２００  機能ノード
２００ａ  演算ノード
２００ｂ  記憶ノード
２００ｃ  ＩＯノード
３００  プロセス
４００  通信経路
５００  フレーム
６００  スロット
７００  スロットテーブル
１０００  並列計算システム
【図１】
2010104033.tif 000003
【図２】
2010104033.tif 000004
【図３】
2010104033.tif 000005
【図４】
2010104033.tif 000006
【図５】
2010104033.tif 000007
【図６】
2010104033.tif 000008
【図７】
2010104033.tif 000009
【図８】
2010104033.tif 000010
【図９】
2010104033.tif 000011
【図１０】
2010104033.tif 000012
【図１１】
2010104033.tif 000013
【図１２】
2010104033.tif 000014
【図１３】
2010104033.tif 000015
【図１４】
2010104033.tif 000016
【国際調査報告】
2010104033.tif 000017
2010104033.tif 000018
2010104033.tif 000019