説明

データ転送システム、スイッチ及びデータ転送方法プロセッサ間ネットワーク

【課題】プロセッサ間で転送するパケットの転送時間の偏りを低減することができるデータ転送システム、スイッチ及びデータ転送方法を提供すること。
【解決手段】本発明にかかるデータ転送システムは、複数のプロセッサと、複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部20を備える。データ転送部20は、次の転送先が同じ競合データについて調停を実行する調停手段259と、調停を行った競合データの競合数を示す強度情報を次の転送先に送信する強度情報通知手段260を有する。調停手段259は、調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送システム、スイッチ及びデータ転送方法に関し、特に、複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を実行する技術に関する。
【背景技術】
【0002】
並列コンピュータのプロセッサ間ネットワークとして、Fat Treeが非特許文献1に開示されている。Fat Treeの例として、4入力4出力のスイッチ1501で構成された16入力16出力のFat Treeネットワークを図19に示す。スイッチ1501間の信号線1502は双方向リンクを意味している。Fat Treeにプロセッサ0〜プロセッサ15までの16個のプロセッサ1503が接続されている。なお、図19では、スイッチ、プロセッサ及び信号線のそれぞれは、1つを除き符号の図示を省略している。
【0003】
次にFat Treeでのルーティングの例を図20に示す。スイッチ1501は、パケットが上方向へFat Treeを上る時は入力ポートの対向の出力ポートを使うルーティングを行う。Fat Treeでは、パケットは、送り元プロセッサと宛先プロセッサの共通のスイッチまでFat Treeを上り、共通のスイッチまで上がって折り返して下に降りる。たとえば、プロセッサ4(1601)からプロセッサ15(1602)への通信は、スイッチA(1603)が共通のスイッチになる。そのため、パケットは、スイッチA(1603)まで上がって折り返す。プロセッサ0(1604)からプロセッサ3(1605)への通信は、スイッチB(1606)が共通のスイッチになる。そのため、パケットは、スイッチB(1606)まで上がって折り返す。共通のスイッチは、パケットがFat Treeを上がっていく時に各スイッチによって行われるルーティングによって変わる。しかし、どこまで(何段目まで)上がるかは、送り元プロセッサと送り先プロセッサによって決まり、ルーティングによって変わらない。
【0004】
従って、ある送り先プロセッサへ通信する場合、何個のスイッチを経由するかは送り元プロセッサによって異なってくる。たとえば、パケットをプロセッサ15(1602)へ送る場合、プロセッサ14(1607)から送ったパケットはスイッチC(1605)1個を経由するだけでプロセッサ15(1602)に到着する。プロセッサ12(1609)とプロセッサ13(1610)から送ったパケットは、スイッチを3個経由してプロセッサ15(1602)に到着する。パケットをプロセッサ0〜プロセッサ11から送った場合は、パケットがスイッチ5個を経由してプロセッサ15(1602)に到着する。ここで、Fat Treeを上がっていくパケットのルーティングは入力ポートの対向の出力ポートを使用することにしている。そのため、パケットがFat Treeを上がっていく時には、スイッチでパケットの競合は発生しない。パケットがFat Treeを下っていく時にスイッチでパケットの競合が発生する。
【0005】
図21にスイッチの構成の一例を示す。スイッチは、各入力ポート1702〜1705と各出力ポート1706〜1709にはFIFO(First In First Out)メモリ1710〜1717がある。FIFOメモリ1710〜1717は、クロスバスイッチ1718によって相互に接続されている。同じ出力ポート行きのパケットが複数の入力ポートから来た場合には、パケットが競合することになる。パケットが競合した場合、クロスバスイッチ1718において調停回路1719によって1つの入力ポートから入力されたパケットが選ばれる。選ばれたパケットは、クロスバスイッチ1718を抜けて、出力ポート1706〜1709のFIFOメモリ1714〜1717に書き込まれる。選ばれなかった入力ポートのパケットは入力ポートのFIFOメモリ1710〜1713で選ばれるまで待たされる。一般に調停回路1719での調停アルゴリズムは、競合したパケットのそれぞれが公平に選択されるように作られる。すなわち、あるパケットが競合調停で負け続けて飢餓状態が発生しないように作られる。N個のパケットが競合する場合は、その競合調停でそれぞれのパケットが選ばれる確率はN分の1と見ることができる(Nは、2以上の正整数)。
【0006】
Fat Treeを下っていく時に1個スイッチを経由するということは、競合調停によってパケットが待たされる可能性があるということである。スイッチは4入力4出力なので、パケットがある出力ポートに行く場合には、3個の入力ポートから入力されたパケット間で競合が発生する可能性がある。従って、パケットがFat Treeを下っていく時に経由するスイッチの個数が多いほど、パケットが競合調停で待たされる可能性が高くなる。
【0007】
たとえば、図22に示すプロセッサ0(1801)からプロセッサ15(1802)への通信の場合は、スイッチD(1803)、スイッチE(1804)、スイッチF(1805)のそれぞれで競合が発生する。各スイッチでは3個のパケットが競合するので、各スイッチにおける競合調停でそれぞれのパケットが選ばれる確立は3分の1となる。従って、プロセッサ0(1801)からプロセッサ15(1802)へ送られるパケットは、そのパケットが経由する3つのスイッチの全てで、そのパケットを含む3つのパケットの競合が発生した場合、27分の1の確率で到着することになる。
【0008】
一方、図23に示すプロセッサ12(1901)からプロセッサ15(1902)への通信の場合は、スイッチE(1903)とスイッチF(1904)でパケットの競合が発生する。各スイッチでは3個のパケットが競合するので、各スイッチにおける競合調停でそれぞれのパケットが選ばれる確率は3分の1となる。従って、プロセッサ12(1901)からプロセッサ15(1902)へ送られるパケットは、そのパケットが経由する2つのスイッチの全てで、そのパケットを含む3つのパケット間の競合が発生した場合、9分の1の確率で到着することになる。
【0009】
図24に示すプロセッサ14(2001)からプロセッサ15(2002)への通信の場合は、スイッチF(2003)でパケットの競合が発生する。各スイッチでは3個のパケットが競合するので、各スイッチにおける競合調停でそれぞれのパケットが選ばれる確率は3分の1となる。従って、プロセッサ14(2001)からプロセッサ15(2002)へ送られるパケットは、そのパケットが経由する1つのスイッチで、そのパケットを含む3つのパケット間の競合が発生した場合、3分の1の確率で到着することになる。
【0010】
このように、Fat Treeでのルーティングでは、あるプロセッサへパケットを送信する場合に、送り元のプロセッサの位置が異なると、パケットが到着するまでに経由するスイッチ数が異なる。そのために、パケットが到着するまでにパケットに対して行われる競合調停の回数が異なり、パケットが到着する確率が異なることになる。つまり、パケットを送信するプロセッサの位置によって、パケットが到着するまでの時間に偏りができてしまうという問題がある。
【0011】
このようにパケットが転送先に到着するまでの時間に偏りができてしまうと、転送先に到着するまでに時間のかかるパケットによる処理がボトルネックとなってしまい、並列コンピュータシステム全体として処理遅延が発生してしまうという問題がある。
【0012】
なお、特許文献1には、長経路のパケットや経路上の競合により待たされたパケットによるレイテンシの低下を抑制する優先調停システムが開示されている。この優先調停システムは、複数のCPU、複数の共有資源、ルーティングテーブル及び複数のクロスバ、を備える。CPUは、リクエストパケットを共有資源に送信するときに、自CPUに対応するルーティングテーブルから、送信先の共有資源に対応するレイテンシ値を取り出して、リクエストパケットのパケットヘッダに設定する。クロスバは、複数のパケットを受信したときに、受信した複数のパケットのレイテンシ値を比較して、レイテンシ値が大きなパケットを優先的に通過させる。
【0013】
しかし、特許文献1に開示の技術は、調停を実行する場合に、各入力ポートから競合するデータを入力する選択割合を、各入力ポートに対応する強度情報に基づいて決定する技術を開示したものではない。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2009−194510号公報
【非特許文献】
【0015】
【非特許文献1】"Fat-Trees: Universal Networks for Hardware-Efficient Supercomputing", C. E. Leiserson, IEEE Transactions on Computers, Vol.C-34, No.10, Oct 1985.
【発明の概要】
【発明が解決しようとする課題】
【0016】
背景技術として説明したように、非特許文献1に開示されている技術では、プロセッサ間で転送するパケットの転送時間に偏りができてしまうという問題がある。
【0017】
本発明の目的は、上述した課題を解決するために、プロセッサ間で転送するパケットの転送時間の偏りを低減することができるデータ転送システム、スイッチ及びデータ転送方法を提供することにある。
【課題を解決するための手段】
【0018】
本発明の第1の態様にかかるデータ転送システムは、複数のプロセッサと、当該複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部とを備えたデータ転送システムであって、前記データ転送部は、次の転送先が同じ競合データについて調停を実行する調停手段と、調停を行った競合データの競合数を示す強度情報を次の転送先に送信する強度情報通知手段と、を有し、前記調停手段は、複数のデータ転送部から複数の入力ポートを介して競合データを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定するものである。
【0019】
本発明の第2の態様にかかるデータ転送システムは、複数のプロセッサと、当該複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部とを備えたデータ転送システムであって、前記プロセッサは、初期値を示す強度情報を次の転送先に送信し、前記データ転送部は、次の転送先が同じ競合データについて調停を実行する調停手段と、複数のデータ転送部から複数の入力ポートを介して強度情報を受信した場合に、受信した強度情報のそれぞれが示す値の合計値を示す強度情報を生成して、複数の次の転送先のそれぞれに対して複数の出力ポートを介して同じ強度情報を送信する強度情報通知手段と、を有し、前記調停手段は、複数のデータ転送部から複数の入力ポートを介して複数のデータを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す値の多さに関する入力ポート間の割合に応じて決定するものである。
【0020】
本発明の第3の態様にかかるデータ転送システムは、複数のプロセッサと、当該複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部とを備えたデータ転送システムであって、前記データ転送部は、複数のデータ転送部からデータが入力される複数の入力ポートのそれぞれについて、入力ポートに対して前記複数のプロセッサからデータが転送される転送経路数を示す転送経路数情報を格納する記憶手段と、次に転送する先が同じ競合データについて調停を実行する調停手段と、を有し、前記調停手段は、複数のデータ転送部から複数の入力ポートを介して複数のデータを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートについての転送経路数情報が示す転送経路数の多さに関する入力ポート間の割合に応じて決定するものである。
【0021】
本発明の第4の態様にかかるスイッチは、それぞれが複数接続され、複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行するスイッチであって、次の転送先が同じ競合データについて調停を実行する調停手段と、調停を行った競合データの競合数を示す強度情報を次の転送先に送信する強度情報通知手段と、を有し、前記調停手段は、複数のデータ転送部から複数の入力ポートを介して競合データを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定するものである。
【0022】
本発明の第5の態様にかかるデータ転送方法は、複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部のそれぞれにおけるデータ転送方法であって、次の転送先が同じ競合データについて調停を実行する調停ステップと、調停を行った競合データの競合数を示す強度情報を次の転送先に送信する強度情報通知ステップと、を備え、前記調停ステップでは、複数のデータ転送部から複数の入力ポートを介して競合データを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定するものである。
【発明の効果】
【0023】
上述した本発明の各態様により、プロセッサ間で転送するパケットの転送時間の偏りを低減することができるデータ転送システム、スイッチ及びデータ転送方法を提供することができる。
【図面の簡単な説明】
【0024】
【図1】本発明の第1の実施の形態の並列コンピュータの概要となるデータ転送システムの構成を示す図である。
【図2】本発明の第1の実施の形態の並列コンピュータのスイッチの概要となるデータ転送部の構成を示す図である。
【図3】本発明の第1の実施の形態の並列コンピュータのプロセッサ間ネットワークを示す図である。
【図4】本発明の第1の実施の形態の並列コンピュータのプロセッサ間ネットワークのスイッチの構成を示す図である。
【図5】本発明の第1の実施の形態の並列コンピュータのプロセッサ間ネットワークのスイッチの調停回路の構成を示す図である。
【図6】本発明の第1の実施の形態の並列コンピュータのパケットヘッダを示す図である。
【図7】本発明の第1の実施の形態の並列コンピュータの調停回路での処理を説明するフローチャートである。
【図8A】本発明の実施の形態の並列コンピュータの調停回路の状態の一例を示す図である。
【図8B】本発明の実施の形態の並列コンピュータのスイッチにおいてパケットが競合した状態の一例を示す図である。
【図9A】本発明の実施の形態の並列コンピュータの調停回路の状態の一例を示す図である。
【図9B】本発明の実施の形態の並列コンピュータのスイッチにおいてパケットが競合した状態の一例を示す図である。
【図10A】本発明の実施の形態の並列コンピュータの調停回路の状態の一例を示す図である。
【図10B】本発明の実施の形態の並列コンピュータのスイッチにおいてパケットが競合した状態の一例を示す図である。
【図11A】本発明の実施の形態の並列コンピュータの調停回路の状態の一例を示す図である。
【図11B】本発明の実施の形態の並列コンピュータのスイッチにおいてパケットが競合した状態の一例を示す図である。
【図12A】本発明の実施の形態の並列コンピュータの調停回路の状態の一例を示す図である。
【図12B】本発明の実施の形態の並列コンピュータのスイッチにおいてパケットが競合した状態の一例を示す図である。
【図13A】本発明の実施の形態の並列コンピュータの調停回路の状態の一例を示す図である。
【図13B】本発明の実施の形態の並列コンピュータのスイッチにおいてパケットが競合した状態の一例を示す図である。
【図14A】本発明の実施の形態の並列コンピュータの調停回路の状態の一例を示す図である。
【図14B】本発明の実施の形態の並列コンピュータのスイッチにおいてパケットが競合した状態の一例を示す図である。
【図15】本発明の第2の実施の形態の並列コンピュータのスイッチの概要となるデータ転送部の構成を示す図である。
【図16】本発明の第2の実施の形態の並列コンピュータの調停回路の構成を示す図である。
【図17】本発明の第3の実施の形態の並列コンピュータのスイッチの概要となるデータ転送部の構成を示す図である。
【図18】本発明の第3の実施の形態の並列コンピュータのスイッチの構成を示す図である。
【図19】Fat Treeネットワークの構成を示す図である。
【図20】Fat Treeネットワークのルーティングを説明する図である。
【図21】スイッチの構成の一例を示す図である。
【図22】Fat Treeネットワークでの問題点を説明する図である。
【図23】Fat Treeネットワークでの問題点を説明する図である。
【図24】Fat Treeネットワークでの問題点を説明する図である。
【発明を実施するための形態】
【0025】
発明の第1の実施の形態.
まず、図1を参照して、本発明の第1の実施の形態にかかる並列コンピュータの概要となるデータ転送システムについて説明する。図1は、本発明の第1の実施の形態にかかる並列コンピュータの概要となるデータ転送システムの構成を示す図である。
【0026】
データ転送システム5は、複数のプロセッサ501〜516及び複数のデータ転送部517〜536を有する。データ転送部517〜536は、複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する。
【0027】
続いて、図2を参照して、本発明の第1の実施の形態にかかる並列コンピュータのスイッチの概要となるデータ転送部517〜536について説明する。図2は、本発明の第1の実施の形態にかかる並列コンピュータのスイッチの概要となるデータ転送部517〜536の構成を示す図である。
【0028】
データ転送部20は、入力ポート251〜254、出力ポート255〜258、調停手段259及び強度情報通知手段260を有する。
入力ポート251〜254のそれぞれは、複数のデータ転送部517〜536のうち、いずれかから送信されたデータを入力する。
出力ポート255〜256のそれぞれは、複数のプロセッサ501〜516及び複数のデータ転送部517〜536のうち、いずれかに送信されるデータを出力する。
調停手段259は、次の転送先が同じ競合データについて調停を実行する。また、調停手段259は、複数のデータ転送部から複数の入力ポートを介して競合データを受信して調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定する。
強度情報通知手段260は、調停を行った競合データの競合数を示す強度情報を次の転送先に送信する。
【0029】
続いて、本発明の第1の実施の形態にかかるデータ転送部20の処理について説明する。
調停手段259は、複数のデータ転送部から入力ポートのそれぞれを介して、次の転送先が同じ競合データを受信した場合、受信した競合データの調停を実行する。調停手段259は、調停において、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定する。調停手段259は、決定した選択割合で、競合データの調停を実行する。
強度情報通知手段260は、調停を行った競合データの競合数を示す強度情報を次の転送先に送信する。
【0030】
次に、本発明の実施の形態について図面を参照して、本発明の第1の実施の形態にかかる並列コンピュータについて詳細に説明する。図3を参照すると、本発明の第1の実施の形態としての並列コンピュータが示されている。
並列コンピュータ1は、プロセッサ101〜116、及び、プロセス間ネットワーク10を有する。プロセス間ネットワーク102は、スイッチ116〜136を有する。
【0031】
図3において、複数のプロセッサ101〜116がプロセッサ間ネットワーク10によって接続されている。ここでは、16個のプロセッサ101〜116がプロセッサ間ネットワーク10に接続された並列コンピュータを示しているが、プロセッサ間ネットワーク10に接続されるプロセッサ101〜116の数は任意である。プロセッサ間ネットワーク10は、4入力4出力のスイッチ117〜136によって構成される。つまり、スイッチ117〜136は、4つの入力ポートと4つの出力ポートとを有する。プロセス間ネットワーク10は、Fat Treeのトポロジとなっている。
【0032】
ここでは、プロセッサ間ネットワークFat Treeは4入力4出力のスイッチ117〜136によって構成されているが、N入力N出力(Nは任意の数)のスイッチで構成されていてもよい。ここで、最上段スイッチ133〜136でのポート番号は、左から順に0、1、2、3と付けることにする。また、中段のスイッチ125〜132と、最下段のスイッチ1117〜124のポート番号は、下側の左から0、1、上側の左から2、3と付けることにする。
【0033】
つまり、スイッチ116〜135は、ポート番号が0〜3の4つの入力ポートと、ポート番号が0〜3の4つの出力ポートとを有する。そして、図2に示すように、ポート番号0〜3の入力ポート及び出力ポートのそれぞれは、いずれか1つのプロセッサ又はスイッチと接続される。例えば、スイッチ131のポート番号0の入力ポートは、スイッチ123のポート番号2の出力ポートから出力されたパケットが入力される。また、スイッチ131のポート番号0の出力ポートは、スイッチ123のポート番号2の入力ポートにパケットを出力する。
【0034】
図4を参照すると、図3に示す4入力4出力のスイッチ116〜135の1つの実施例が示されている。スイッチ201は、4つの入力ポート202〜205と4つの出力ポート206〜209をもつ。スイッチ201は、各入力ポート202〜205のそれぞれに対応するように、入力FIFOメモリ210〜213と、調停での強度を格納する強度レジスタ223〜226とを有する。入力FIFOメモリ210〜213は、自身に対応する入力ポート202〜205に入力されたパケットがFIFO方式で格納される。入力FIFOメモリ210〜213のそれぞれは、FIFOの先頭のパケットのパケットヘッダ含まれる調停での強度を、自身に対応する強度レジスタ223〜226のそれぞれに出力する。入力FIFOメモリ210〜213は、例えば、FIFOにパケットが格納されていない場合、0を強度レジスタ223〜226に格納する。なお、パケットのパケットヘッダに含まれる調停での強度については、後に詳述する。調停回路219〜222は、調停手段259及び強度通知手段260として機能する。
【0035】
強度レジスタ223〜226には入力FIFOメモリ210〜213から出力された調停での強度が格納される。強度レジスタ223〜226は、自身に格納された調停での強度を示す信号を調停回路219〜222に出力する。また、入力FIFOメモリ210〜213は、自身に格納された先頭のパケットを、マルチプレクサ(MUX)227〜230に出力する。また、入力FIFOメモリ210〜213は、パケットを出力しているときに、そのパケットを出力する出力ポートに対応する調停回路に、調停参加信号(図示せず)を出力する。
【0036】
入力FIFOメモリ210〜213は、例えば、パケットのパケットヘッダに含まれる送り先プロセッサ番号に基づいて、パケットを出力する出力ポートを判定する。例えば、入力FIFOメモリ210〜213は、送り先プロセッサ番号からパケットを出力すべき出力ポートを求めることができるルーティングテーブルが格納される。そして、入力FIFOメモリ210〜213は、自身に格納されるルーティングテーブルに基づいて、パケットを出力する出力ポートを判定する。なお、パケットのパケットヘッダに含まれる送り先プロセッサ番号については、後に詳述する。
【0037】
スイッチ201は、各出力ポート206〜209のそれぞれに対応するように、調停回路219〜222と出力FIFOメモリ215〜218とを有する。また、スイッチ201は、クロスバスイッチ214を有する。クロスバスイッチ214は、出力ポート206〜209のそれぞれに対応するように、マルチプレクサ(MUX)227〜230を有する。クロスバスイッチ214が、入力FIFOメモリ210〜213と出力FIFOメモリ215〜218を接続している。
【0038】
調停回路219〜222は、各強度レジスタ223〜226から出力された調停での強度と、各入力FIFOメモリ210〜213から出力された調停参加信号をもとに、クロスバスイッチ214内の対応するマルチプレクサ(MUX)227〜230を制御してパケットをルーティングする。マルチプレクサ227〜230は、自身に対応する調停回路からの制御に応じて、入力FIFOメモリ210〜213のそれぞれから出力されたパケットのいずれかを選択して、自身に対応する出力FIFOメモリ215〜218に出力する。
【0039】
次に図5を使って、調停回路219〜222の詳細な構成を説明する。調停回路301は、強度カウンタ302〜305、選択回路306、1減算器307〜310、マルチプレクサ(MUX)311〜314、強度計算回路315及び強度合計レジスタ316を有する。
【0040】
調停回路301には、4つの入力ポート202〜205のそれぞれに対応する強度317〜320と調停参加信号321〜324が入力される。また、調停回路301は、各入力ポートに対応して、4つの強度カウンタ302〜305と、4つの1減算器307〜310と、4つのマルチプレクサ(MUX)311〜314とを有する。調停回路301に入力された強度317〜320は、自身に対応するマルチプレクサ(MUX)と、強度計算回路315とに入力される。調停回路301に入力された調停参加信号321〜324は、選択回路306及び強度計算回路315に入力される。
【0041】
マルチプレクサ(MUX)311〜314は、自身に入力された強度317〜320、又は、1減算器307〜310から出力された強度カウンタ値のいずれかを選択して強度カウンタ302〜305に出力する。強度カウンタ302〜305には、マルチプレクサ(MUX)311〜314から出力された強度317〜320又は強度カウンタ値が、強度カウンタ値として格納される。つまり、強度カウンタ302〜305に格納される強度カウンタ値をカウントダウンする場合、マルチプレクサ(MUX)311〜314は、1減算器307〜310から出力された強度カウンタ値を選択して強度カウンタ302〜305に出力する。強度カウンタ302〜305は、強度カウンタ値を選択回路306に出力する。
【0042】
選択回路306は、強度カウンタ302〜305から出力された強度カウンタ値と、調停参加信号321〜324とに基づいて、1つの入力ポートのパケットを選択する。選択回路306は、選択した入力ポートのパケットを選択して出力するように制御する選択信号を、マルチプレクサ(MUX)227〜230に出力する。選択処理については、後で図7を使って説明する。
【0043】
強度計算回路315は、強度317〜320と調停参加信号321〜324を使って、調停参加している入力ポートの強度の合計値を算出する。強度計算回路315は、算出した強度の合計値を強度合計レジスタ316に書き込む。そして、調停回路301は、クロスバスイッチ214から出ていくパケットのパケットヘッダに強度合計レジスタ316内の強度の合計値を書き込む。
【0044】
次に本実施の形態でのパケットのパケットヘッダについて、図6に示す。パケットヘッダには、送り先プロセッサ番号401と、送り元プロセッサ番号402と、調停での強度403、書き込みアドレス404、データ長405が格納される。パケットヘッダの後には、データ長405で示されたバイト数のデータ(図示せず)が続く。プロセッサ101〜115は、パケットを送る時に、調停での強度403を1に初期化する。調停での強度403は、各スイッチ117〜136通過時にスイッチ117〜136で更新される。書き込みアドレス404は、パケットが送り先のプロセッサに到着した場合に、データが書き込まれるメモリ上のアドレスである。
【0045】
次に、図5の調停回路301での処理について、図7使って説明する。
まず、調停回路301は、すべての強度カウンタ302〜305を対応する強度レジスタ223〜226から出力された強度317〜320で初期化する(ステップS101)。これは、マルチプレクサ(MUX)311〜314で強度317〜320を選択することにより行う。また、この時に、調停回路301は、強度合計レジスタ316に0を格納して、強度合計レジスタ316を初期化する。
【0046】
次に、選択回路306は、入力FIFOメモリ210〜213から出力された調停参加信号321〜324を参照し、新たな調停参加者を受け付ける(ステップS102)。具体的には、選択回路306は、入力FIFOメモリ210〜213のいずれかから調停参加信号が入力された場合、入力された調停参加信号に対応する入力ポートを調停参加者として決定する。また、この時に、強度計算回路315は、強度317〜320のうち、調停参加している入力ポートに対応する強度の合計値を強度合計レジスタ316に格納する。以降、選択回路306は、再びステップS101になるまで、一度参加した調停参加者を、調停参加者として認識し続ける。
【0047】
次に、調停回路301は、すべての調停参加者の強度カウンタの値が1かどうかを調べる(ステップS103)。すべての調停参加者の強度カウンタの値が1でない場合(ステップS103:いいえ)は、選択回路306は、強度カウンタの値が最も大きい調停参加者を選択する(ステップS104)。具体的には、選択回路306は、最も大きい強度カウンタ値を出力する強度カウンタに対応する入力ポートの入力FIFOメモリから出力されたパケットを選択する選択信号をクロスバスイッチ214のマルチプレクサ(MUX)に出力する。なお、選択回路306は、選択する入力FIFOメモリから、調停参加信号が出力されていない場合は、調停参加信号が出力されるのを待ってから、その入力FIFOメモリから出力されたパケットを選択する。これによって、選択回路306が含まれる調停回路に対応する出力ポートに、その出力ポート以外へのパケットを誤って出力しないようにする。選択回路306は、調停回路301は、そのパケットがクロスバスイッチ214を抜けてきた時点で強度合計レジスタ316の強度の合計値をパケットヘッダの調停での強度のフィールドに書き込む(ステップS105)。
【0048】
そして、選択回路306は、強度カウンタ値が最も大きい調停参加者として選択した入力ポートに対応する強度カウンタの値をデクリメントする(ステップS106)。強度カウンタ302〜305の値のデクリメントは、マルチプレクサ(MUX)311〜314で1減算器307〜310の方を選択することにより行う。この選択は、例えば、選択回路306が、マルチプレクサ(MUX)311〜314に、1減算器307〜310からの出力を選択する選択信号を出力することにより行う。
【0049】
その後、選択回路306は、ステップS102にすすみ、入力ポートからの調停参加信号321〜324を参照し、新たな調停参加者を受け付ける(ステップS102)。このときに、入力FIFOメモリ210〜213は、選択されたパケットの次にFIFOに含まれるパケットを、FIFOの先頭のパケットにする。そして、入力FIFOメモリ210〜213は、先頭のパケットを、マルチプレクサ(MUX)227〜230に出力する。また、選択回路306は、この時点で、新たに調停参加者として選択していない入力ポートに対応する調停参加信号が入力されている場合、その入力ポートを新たな調停参加者として受け入れる。その場合、選択回路306は、その入力ポートに対応する強度カウンタを初期化する。また、強度計算回路315は、新たに調停参加者として参加した入力ポートに対応する強度と、強度合計レジスタ316に格納された強度の合計値との合計値を、強度合計レジスタ316に格納する。
【0050】
次にステップS103で、すべての調停参加者の強度カウンタの値が1であった場合について説明する(ステップS103:はい)。調停回路301は、まず、強度カウンタの値が1の調停参加者を1人選択する(ステップS107)。選択の仕方は、予め決められた優先順位でもラウンドロビンでもよい。そして、選択回路306は、選択した入力ポートに対応する入力FIFOメモリから出力されたパケットを選択する選択信号をクロスバスイッチ214のマルチプレクサ(MUX)に出力する。調停回路301は、そのパケットがクロスバスイッチ214を抜けてきた時点で強度合計レジスタ316の強度の合計値をパケットヘッダの調停での強度のフィールドに書き込む(ステップS108)。そして、選択した入力ポートに対応する強度カウンタの値をデクリメントする(ステップS109)。次に、調停回路301は、強度カウンタの値が1となった調停参加者のうちで選ばれていない調停参加者がいるかどうかを調べる(ステップS110)。つまり、調停回路301は、値が0になっていない強度カウンタに対応する調停参加者がいるかどうかを調べる。選ばれていない調停参加者がいる場合(ステップS110:はい)は、ステップS107に戻る。そうでない場合(ステップS110:いいえ)は、ステップS101へ戻り、強度カウンタ302〜305を初期化する。
【0051】
以上に説明したように、調停回路301は、調停参加した入力ポートのそれぞれに入力されたパケットに含まれる強度を、入力ポートのそれぞれから選択して次段に出力するパケットの数としている。言い換えると、調停回路301は、調停参加した入力ポートのそれぞれに入力されたパケットに含まれる強度を、入力ポートのそれぞれから調停対象として取り込むパケット数としている。よって、調停参加した入力ポートのそれぞれからの強度の合計値は、調停回路301が調停対象としたパケット数となる。言い換えると、強度の合計値は、それぞれの出力先が競合することによって、調停回路301によって調停が行われたパケットの競合数である。そして、調停回路301は、強度の合計値を、強度としてパケットに含めて、そのパケットを次段に出力するようにしている。つまり、これによって、各スイッチは、複数の次段のスイッチのそれぞれについて、次段のスイッチに転送するパケットが自身に集中する度合いを、強度として次段のスイッチに伝えることができる。
【0052】
そのため、調停回路301は、入力ポートのそれぞれに入力されたパケットに含まれる強度が示す競合数分のパケットを、それぞれの入力ポートから選択して次段に出力するようにしている。つまり、これにより、調停回路301は、より多くのパケットを出力するスイッチからパケットが入力される入力ポートから、より多くのパケットを次段に出力するようにすることができる。
【0053】
次に、図8〜図14を使って、プロセッサ0(101)〜プロセッサ14(115)がプロセッサ15(116)に通信する場合の、本発明での動作と効果を説明する。
【0054】
図8Bは、スイッチ804においてパケットが競合した状態を示す図である。図8Bは、スイッチ 804において、プロセッサ0(801)、プロセッサ4(802)、プロセッサ8(803)からプロセッサ15(805)へ送信されたパケットが競合した場合について例示している。スイッチ804での出力ポート3の調停回路の状態を図8Aに図示している。入力ポート0〜2の強度カウンタ806〜809には、初期値として、プロセッサ801、802、803のそれぞれから送信されたパケットのパケットヘッダの調停での強度1が格納される。また、入力ポート0〜2が調停参加しているので、調停参加810〜812に1が、調停参加813に0が格納されている。
【0055】
ここで、調停参加810〜813は、例えば、調停回路が有する調停参加レジスタである。調停回路は、入力ポート0〜3のそれぞれに対応する調停参加レジスタを有する。調停回路は、ステップS102において、調停参加信号が入力された場合、その調停参加信号に対応する入力ポートの調停参加レジスタに1を格納する。調停回路は、ステップS101において、調停参加レジスタに0を格納して初期化する。
【0056】
そして、強度合計レジスタ814には、調停での強度の合計である3が格納される。調停回路301は、スイッチ804を通過し出力ポート3に出力されるパケットのパケットヘッダの調停での強度に3を格納する。図7のステップS101で強度カウンタを初期化したあとは、調停参加しているポート0〜2の強度カウンタ806〜808の値はすべて1なので、調停回路301は、ステップS103の後に、ステップS107の処理を実行する。
【0057】
図9Bは、スイッチ904においてパケットが競合した状態を示す図である。図9Bは、スイッチ904において、プロセッサ2(901)、プロセッサ6(902)、プロセッサ10(903)からプロセッサ15(905)へ送信されたパケットが競合した場合について例示している。スイッチ904での出力ポート3の調停回路の状態を図9Aに図示している。入力ポート0〜2の強度カウンタ906〜908には、初期値として、プロセッサ901、902、903のそれぞれから送信されたパケットのパケットヘッダの調停での強度1が格納される。また、入力ポート0〜2が調停参加しているので、調停参加910〜912に1が、調停参加913に0が格納されている。そして、強度合計レジスタ914には、調停での強度の合計である3が格納される。スイッチ904を通過し出力ポート3に出力されるパケットのパケットヘッダの調停での強度には3が格納される。調停回路301は、図7のステップS101で強度カウンタを初期化したあとは、調停参加しているポート0〜2の強度カウンタ906〜908の値はすべて1なので、ステップS103の後に、ステップS107の処理を実行する。
【0058】
図10Bは、スイッチ1004においてパケットが競合した状態を示す図である。図10Bは、スイッチ 1004において、プロセッサ1(1001)、プロセッサ5(1002)、プロセッサ9(1003)からプロセッサ15(1005)へ送信されたパケットが競合した場合について例示している。スイッチ1004での出力ポート3の調停回路の状態を図10Aに図示している。入力ポート0〜2の強度カウンタ1006〜1008には、初期値として、プロセッサ1001、1002、1003のそれぞれから送信されたパケットのパケットヘッダの調停での強度1が格納される。また、入力ポート0〜2が調停参加しているので、調停参加1010〜1012に1が、調停参加1013に0が格納されている。そして、強度合計レジスタ1014には、調停での強度の合計である3が格納される。スイッチ1004を通過し出力ポート3に出力されるパケットのパケットヘッダの調停での強度には3が格納される。調停回路301は、図7のステップS101で強度カウンタを初期化したあとは、調停参加しているポート0〜2の強度カウンタ1006〜1008の値はすべて1なので、ステップS103の後に、ステップS107の処理を実行する。
【0059】
図11Bは、スイッチ1104においてパケットが競合した状態を示す図である。図11Bは、スイッチ1104において、プロセッサ3(1101)、プロセッサ7(1102)、プロセッサ11(1103)からプロセッサ15(1105)へ送信されたパケットが競合した場合について例示している。スイッチ1104での出力ポート3の調停回路の状態を図11Aに図示している。入力ポート0〜2の強度カウンタ1106〜1108には、初期値として、プロセッサ1101、1102、1103のそれぞれから送信されたパケットのパケットヘッダの調停での強度1が格納される。また、入力ポート0〜2が調停参加しているので、調停参加 1110〜1112に1が、調停参加1113に0が格納されている。そして、強度合計レジスタ1114には、調停での強度の合計である3が格納される。スイッチ 1104を通過し出力ポート3に出力されるパケットのパケットヘッダの調停での強度には3が格納される。調停回路301は、図7のステップS101で強度カウンタを初期化したあとは、調停参加しているポート0〜2の強度レジスタ1106〜1108の値はすべて1なので、ステップS103の後に、ステップS107の処理を実行する。
【0060】
図12Bは、スイッチ1204においてパケットが競合した状態を示す図である。図12Bは、スイッチ1204において、プロセッサ12(1203)とスイッチ1201とスイッチ1202とから送信されたパケットが競合した場合について例示している。スイッチ1204での出力ポート1の調停回路を図12Aに図示している。入力ポート0の強度カウンタ1206には、初期値として、プロセッサ12(1203)からのパケットのパケットヘッダの調停での強度1が格納される。また、入力ポート2と入力ポート3の強度カウンタ1208、1209には、初期値として、スイッチ1201とスイッチ1202からのパケットのパケットヘッダの調停での強度3が格納される。つまり、ここでは、スイッチ1201とスイッチ1202のそれぞれおいて、パケットが競合して、パケットヘッダの調停での強度が3に更新された場合について例示している。
【0061】
また、入力ポート0、入力ポート2、入力ポート3が調停参加しているので、調停参加1210、1212、1213に1が、調停参加1211に0が格納されている。そして、強度合計レジスタ1214には、調停での強度の合計である7が格納される。スイッチ 1204を通過し出力ポート1に出力されるパケットのパケットヘッダの調停での強度には7が格納される。調停回路301は、図7のステップS101で強度カウンタを初期化したあとは、参加者の強度カウンタの値は1、3、3となっているので、ステップS103の後に、強度カウンタの値が1、1、1になるまでは、ステップS104の処理を実行する。このときに実行されるステップS104の処理では、入力ポート2と入力ポート3からのパケットが選択される。調停回路301は、強度カウンタの値が1、1、1になれば、ステップS103の後に、ステップS107の処理を実行する。そして、ステップS107〜S110の処理において、入力ポート0、入力ポート2、入力ポート3からパケットが1つずつ選択される。
【0062】
図13Bは、スイッチ1304においてパケットが競合した状態を示す図である。スイッチ1304では、プロセッサ13(1303)とスイッチ1301とスイッチ1302とから送信されたパケットが競合した場合について例示している。スイッチ1304での出力ポート1の調停回路を図13Aに図示している。入力ポート0の強度カウンタ1306には、初期値として、プロセッサ13(1303)からのパケットのパケットヘッダの調停での強度1が格納される。また、入力ポート2と入力ポート3の強度レジスタ1308、1309には、初期値として、スイッチ1301とスイッチ1302からのパケットのパケットヘッダの調停での強度3が格納される。つまり、ここでは、スイッチ1301とスイッチ1302のそれぞれおいて、パケットが競合して、パケットヘッダの調停での強度が3に更新された場合について例示している。
【0063】
また、入力ポート0、入力ポート2、入力ポート3が調停参加しているので、調停参加 1310、1312、1313に1が、調停参加 1311に0が格納されている。そして、強度合計レジスタ1314には、調停での強度の合計である7が格納される。スイッチ 1304を通過し出力ポート1に出力されるパケットのパケットヘッダの調停での強度には7が格納される。調停回路301は、図7のステップS101で強度カウンタを初期化したあとは、参加者の強度カウンタの値は1、3、3となっているので、ステップS103の後に、強度カウンタの値が1、1、1になるまでは、ステップS104の処理を実行する。このときに実行されるステップS104の処理では、入力ポート2と入力ポート3からのパケットが選択される。調停回路301は、強度カウンタの値が1、1、1になれば、ステップS103の後に、ステップS107の処理を実行する。そして、ステップS107〜S110の処理において、入力ポート0、入力ポート2、入力ポート3からパケットが1つずつ選択される。
【0064】
図14Bは、スイッチ1404においてパケットが競合した状態を示す図である。スイッチ1404では、プロセッサ14(1403)とスイッチ1401とスイッチ1402とから送信されたパケットが競合した場合について例示している。スイッチ1404での出力ポート1の調停回路を図14Aに図示している。入力ポート0の強度カウンタ1406には、初期値として、プロセッサ14(1403)からのパケットのパケットヘッダの調停での強度1が格納される。また、入力ポート2と入力ポート3の強度レジスタ1408、1409には、初期値として、スイッチ1401とスイッチ1402からのパケットのパケットヘッダの調停での強度7が格納される。つまり、ここでは、スイッチ1401とスイッチ1402のそれぞれと、それぞれのスイッチの前段のスイッチにおいて、パケットが競合して、パケットヘッダの調停での強度が7に更新された場合について例示している。
【0065】
また、入力ポート0、入力ポート2、入力ポート3が調停参加しているので、調停参加 1410、1412、1413に1が、調停参加1411に0が格納されている。そして、強度合計レジスタ1414には、調停での強度の合計である15が格納される。スイッチ 1404を通過し出力ポート1に出力されるパケットのパケットヘッダの調停での強度には15が格納される。調停回路301は、図7のステップS101で強度カウンタを初期化したあとは、参加者の強度カウンタの値は1、7、7となっているので、ステップS103の後に、強度カウンタの値が1、1、1になるまでは、ステップS104の処理を実行する。このときに実行されるステップS104の処理では、入力ポート2と入力ポート3からのパケットが選択される。調停回路301は、強度カウンタの値が1、1、1になれば、ステップS103の後に、ステップS107の処理を実行する。そして、ステップS107〜S110の処理において、入力ポート0、入力ポート2、入力ポート3からパケットが1つずつ選択される。
【0066】
次に、この場合の各プロセッサからプロセッサ15への到着確率を計算する。それぞれの経由するスイッチ数が異なる、プロセッサ0、プロセッサ12、プロセッサ14からのパケットの到着確率を計算する。まず、プロセッサ0からのパケットは、3つのスイッチを経由する。それぞれのスイッチにおいて3つのパケットが競合した場合に、それぞれのスイッチにおいて、プロセッサ0から送信したパケットが選択される確率は、3分の1、7分の3、15分の7になる。よって、これらの確率の積は、15分の1になる。次にプロセッサ12からのパケットは、2つのスイッチを経由する。それぞれのスイッチにおいて3つのパケットが競合した場合に、それぞれのスイッチにおいて、プロセッサ12から送信したパケットが選択される確率は、7分の1、15分の7になるよって、これらの確率の積は15分の1になる。最後にプロセッサ14からのパケットは、1つのスイッチを経由して15分の1となる。
【0067】
このように、本実施の形態では、プロセッサ0〜14のそれぞれからプロセッサ15に出力されるパケットのように、それぞれのパケットが経由するスイッチ数が異なってもプロセッサ15への到着確率が15分の1となる。したがって、どのプロセッサから出力されるパケットも転送先のプロセッサに到着する確率が同じになることがわかる。つまり、どのプロセッサから出力されるパケットも転送先のプロセッサに到着するまでにかかる時間を一定化することができる。つまり、本発明の第1の実施の形態によれば、プロセッサ間で転送するパケットの転送時間の偏りを低減することができる。
【0068】
発明の第2の実施の形態.
続いて、図15を参照して、本発明の第2の実施の形態にかかる並列コンピュータのスイッチの概要となるデータ転送部について説明する。図15は、本発明の第2の実施の形態にかかる並列コンピュータのスイッチの概要となるデータ転送部の構成を示す図である。なお、本発明の第2の実施の形態にかかる並列コンピュータの概要となるデータ転送システムの構成は、発明の第1の実施の形態にかかるデータ転送システムの構成と同様であるため、説明を省略する。
【0069】
データ転送部60は、入力ポート651〜654、出力ポート655〜658、調停手段659及び強度情報通知手段660を有する。
入力ポート651〜654のそれぞれは、複数のデータ転送部517〜536のうち、いずれかから送信されたデータを入力する。
出力ポート655〜656のそれぞれは、複数のプロセッサ501〜516及び複数のデータ転送部517〜536のうち、いずれかに送信されるデータを出力する。
調停手段659は、次の転送先が同じ競合データについて調停を実行する。また、調停手段659は、複数のデータ転送部から複数の入力ポートを介して複数のデータを受信して調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す値の多さに関する入力ポート間の割合に応じて決定する。
強度情報通知手段660は、複数のデータ転送部から複数の入力ポートを介して強度情報を受信した場合に、受信した強度情報のそれぞれが示す値の合計値を示す強度情報を生成する。強度情報通知手段660は、生成した強度情報を複数の次の転送先のそれぞれに対して複数の出力ポートを介して同じ強度情報を送信する。
【0070】
続いて、本発明の第2の実施の形態にかかるデータ転送部60の処理について説明する。
複数のプロセッサ501〜516は、初期値を示す強度情報を転送先のデータ転送部に出力する。強度情報通知手段660は、複数のデータ転送部から複数の入力ポートを介して強度情報を受信した場合に、受信した強度情報のそれぞれが示す値の合計値を示す強度情報を生成する。強度情報通知手段660は、生成した強度情報を複数の次の転送先のそれぞれに対して複数の出力ポートを介して同じ強度情報を送信する。
調停手段659は、複数のデータ転送部から入力ポートのそれぞれを介して、次の転送先が同じ競合データを受信した場合、受信した競合データの調停を実行する。調停手段659は、調停において、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す値の多さに関する入力ポート間の割合に応じて決定する。調停手段659は、決定した選択割合で、競合データの調停を実行する。
【0071】
続いて、本発明の第2の実施の形態にかかる並列コンピュータについて詳細に説明する。図16を参照して、本発明の第2の実施の形態にかかる調停回路601について説明する。なお、本発明の第2の実施の形態にかかる並列コンピュータ及びスイッチの構成は、発明の第1の実施の形態にかかる並列コンピュータ及びスイッチの構成と同様であるため、説明を省略する。また、本発明の第2の実施の形態にかかる調停回路601の処理についても、図7に示す処理と同様であるため、説明を省略する。
【0072】
図16を参照すると、本発明の第2の実施の形態としての並列コンピュータのプロセッサ間ネットワークを構成するスイッチの中の調停回路 601が示されている。第2の実施の形態が第1の実施の形態と異なるのは、調停回路601の部分である。本実施の形態の調停回路601は、強度計算回路615に調停参加信号621〜624が入力されない点が、第1の実施の形態の調停回路301と異なる。
【0073】
第2の実施の形態の調停回路601の強度計算回路615は、調停参加の状態を考慮せずに、強度の合計値を計算する。そして、強度計算回路615は、算出した強度の合計値を強度合計レジスタ616に格納する。調停回路601は、次段のスイッチに送出するパケットのパケットヘッダの調停での強度に、強度合計レジスタ616に格納された強度の合計値を設定する。調停回路601は、例えば、ステップS102のタイミングで、強度617〜620の合計値を強度合計レジスタ616に格納するようにしてもよい。また、調停回路601は、ステップS102のタイミングで、強度617〜620のうち、強度が0から0以外の値に変化した強度と、強度合計レジスタ616に格納される値との合計値を強度合計レジスタ616に格納するようにしてもよい。
【0074】
以上に説明したように、まず、プロセッサ101〜116は、パケットの強度に初期値1を設定して出力する。調停回路601は、所定の期間内に、入力ポートのそれぞれに入力されたパケットに含まれる強度の合計値を、強度としてパケットに含めて、そのパケットを次段のスイッチのそれぞれに出力するようにしている。つまり、これによって、各スイッチは、パケットが自身に集中する度合いを、強度として次段のスイッチに伝えることができる。
【0075】
そして、調停回路601は、入力ポートのそれぞれに入力されたパケットに含まれる強度が示す値分のパケットを、それぞれの入力ポートから選択して次段に出力するようにしている。つまり、これにより、調停回路601は、より多くのパケットを出力するスイッチからパケットが入力される入力ポートから、より多くのパケットを次段に出力するようにすることができる。
【0076】
つまり、本発明の第2の実施の形態によれば、プロセッサ間で転送するパケットの転送時間の偏りを低減することができる。また、本発明の第2の実施の形態では、入力FIFOバッファ223〜226から強度計算回路615に調停参加信号を伝送する信号線が不要となるため、回路規模を抑えることができる。
【0077】
発明の第3の実施の形態.
続いて、図17を参照して、本発明の第3の実施の形態にかかる並列コンピュータのスイッチの概要となるデータ転送部について説明する。図17は、本発明の第3の実施の形態にかかる並列コンピュータのスイッチの概要となるデータ転送部の構成を示す図である。なお、本発明の第3の実施の形態にかかる並列コンピュータの概要となるデータ転送システムの構成は、発明の第1の実施の形態にかかるデータ転送システムの構成と同様であるため、説明を省略する。
【0078】
データ転送部70は、入力ポート751〜754、出力ポート755〜758、調停手段759及び記憶手段760を有する。
入力ポート751〜754のそれぞれは、複数のデータ転送部のうち、いずれかから送信されたデータを入力する。
出力ポート755〜756のそれぞれは、複数のプロセッサ及び複数のデータ転送部のうち、いずれかに送信されるデータを出力する。
調停手段759は、次の転送先が同じ競合データについて調停を実行する。また、調停手段759は、複数のデータ転送部から複数の入力ポートを介して複数のデータを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートについての転送経路数情報が示す転送経路数の多さに関する入力ポート間の割合に応じて決定する。
記憶手段760は、複数のデータ転送部から自データ転送部にデータが入力される複数の入力ポートのそれぞれについて、前記複数のプロセッサから入力ポートにデータが転送される転送経路数を示す転送経路数情報を格納する。
【0079】
続いて、本発明の第3の実施の形態にかかるデータ転送部70の処理について説明する。
調停手段759は、複数のデータ転送部から入力ポートのそれぞれを介して、次の転送先が同じ競合データを受信した場合、受信した競合データの調停を実行する。調停手段759は、調停において、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートについての転送経路数情報が示す転送経路数の多さに関する入力ポート間の割合に応じて決定する。調停手段759は、決定した選択割合で、競合データの調停を実行する。
【0080】
続いて、本発明の第3の実施の形態にかかる並列コンピュータについて詳細に説明する。図18を参照して、本発明の第2の実施の形態にかかるスイッチ701について説明する。なお、本発明の第3の実施の形態にかかる並列コンピュータの構成は、発明の第1の実施の形態にかかる並列コンピュータの構成と同様であるため、説明を省略する。本発明の第3の実施の形態にかかる調停回路の構成は、強度計算回路315及び強度合計レジスタ316を有しない点を除き、発明の第1の実施の形態にかかる並列コンピュータの構成と同様であるため、説明を省略する。また、本発明の第3の実施の形態にかかる調停回路の処理についても、図7に示す処理と同様であるため、説明を省略する。
【0081】
図18を参照すると、本発明の第3の実施の形態としての並列コンピュータのプロセッサ間ネットワークを構成するスイッチ701が示されている。第3の実施の形態が第1の実施の形態と異なるのは、スイッチ701で、強度レジスタ723〜726に設定する調停での強度をパケットヘッダから読み出して設定するのではなく、スイッチの接続形態からあらかじめ設定しておくことである。
【0082】
具体的には、それぞれの強度レジスタ723〜726に、それぞれの強度レジスタ723〜726に対応する入力ポートに対してプロセッサ101〜116からパケットが転送される転送経路数を格納する。ここで、図12Bに例示するスイッチ1204を例に挙げて説明する。スイッチ1204の入力ポート0には、1つのプロセッサ12からパケットが転送される。したがって、入力ポート0に対応する入力強度レジスタ0(723)には1が格納される。スイッチ1204の入力ポート1には、1つのプロセッサ14からパケットが転送される。よって、入力ポート1に対応する入力強度レジスタ1(724)には1が格納される。スイッチ1204の入力ポート2には、3つのプロセッサ0、4、8からパケットが転送される。よって、入力ポート2に対応する入力強度レジスタ2(725)には3が格納される。スイッチ1204の入力ポート3には、3つのプロセッサ1、5、9からパケットが転送される。よって、入力ポート3に対応する入力強度レジスタ3(726)には3が格納される。
【0083】
以上に説明したように、強度レジスタ723〜726には、強度レジスタ723〜726に対応する入力ポートに入力されるパケットがプロセッサ101〜116から転送される転送経路数が強度として格納されている。ここで、入力ポートに対してプロセッサ101〜116からデータが転送される転送経路数が多い場合、その入力ポートに入力されるパケット数も多くなる。つまり、スイッチは、強度レジスタ723〜726のそれぞれに格納される強度は、入力ポート702〜705のそれぞれにパケットが集中する度合いとなる。
【0084】
そして、調停回路719〜722は、入力ポートのそれぞれに対応する強度レジスタ723〜726から出力される強度が示す転送経路数分のパケットを、それぞれの入力ポートから選択して次段に出力するようにしている。つまり、これにより、調停回路601は、より多くのパケットを出力するスイッチからパケットが入力される入力ポートから、より多くのパケットを次段に出力するようにすることができる。
【0085】
つまり、本発明の第3の実施の形態によれば、プロセッサ間で転送するパケットの転送時間の偏りを低減することができる。また、本発明の第3の実施の形態では、強度計算回路及び強度合計レジスタと、調停回路719〜722にいてパケットに強度を設定する処理と、入力FIFOメモリ710〜713において強度レジスタに強度を設定する処理とが不要となるため、回路規模を抑えることができる。また、パケットに調停での強度を格納する領域も不要となるため、プロセス間ネットワークにおいて転送されるデータ量を低減することもできる。
【0086】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0087】
プロセッサの数及びプロセス間ネットワークを構成するスイッチの数は、本実施の形態において例示した数に限られない。また、プロセス間ネットワークの構成は、本実施の形態において例示した構成に限られない。つまり、本発明は、本実施の形態において例示したように、スイッチが多段に接続されていないプロセス間ネットワークにも適用することができる。
【0088】
本発明の第1及び第2の実施の形態では、調停回路は、調停を実行する場合に、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する数を、各入力ポートから受信した強度が示す値として決定しているが、これに限られない。調停回路は、調停を実行する場合に、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度の多さに関する入力ポート間の割合に応じて決定するようにしてもよい。このようにしても、より多くのパケットを出力するスイッチからパケットが入力される入力ポートから、より多くのパケットを次段に出力するようにすることができるため、プロセッサ間で転送するパケットの転送時間の偏りを低減することができる。
【0089】
本発明の第1及び第2の実施の形態では、スイッチは、調停での強度をパケットに含めて出力するようにしているが、これに限られない。例えば、スイッチは、パケットとは、別にそのパケットと対応付けて調停での強度を示す強度情報を出力するようにしてもよい。
【0090】
本発明の第3の実施の形態では、調停回路は、調停を実行する場合に、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する数を、各入力ポートについての転送経路数情報が示す転送経路数として決定しているが、これに限られない。調停回路は、調停を実行する場合に、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートについての転送経路数情報が示す転送経路数の多さに関する入力ポート間の割合に応じて決定するようにしてもよい。このようにしても、より多くのパケットが入力される入力ポートから、より多くのパケットを次段に出力するようにすることができるため、プロセッサ間で転送するパケットの転送時間の偏りを低減することができる。
【0091】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0092】
(付記1)複数のプロセッサと、当該複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部とを備えたデータ転送システムであって、前記データ転送部は、次の転送先が同じ競合データについて調停を実行する調停手段と、調停を行った競合データの競合数を示す強度情報を次の転送先に送信する強度情報通知手段と、を有し、前記調停手段は、複数のデータ転送部から複数の入力ポートを介して競合データを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定するデータ転送システム。
【0093】
(付記2)前記強度情報通知手段は、前記調停を行った競合データのそれぞれに対応付けて、当該調停を行った競合データの競合数を示す強度情報を次の転送先に送信し、前記調停手段は、それぞれが複数の出力ポートのそれぞれに対応し、対応する出力ポートを介して次の転送先に送信される競合データについて、前記調停を実行する複数の調停回路を含み、前記調停回路は、前記各入力ポートから受信した強度情報のうち、当該調停回路に対応する出力ポートを介して送信される競合データに対応付けられた強度情報に基づいて、前記選択割合を決定する付記1に記載のデータ転送システム。
【0094】
(付記3)前記強度情報通知手段は、それぞれが前記複数の出力ポートのそれぞれに対応し、対応する出力ポートを介して送信される競合データのそれぞれに前記強度情報を対応付けて、当該出力ポートを介して次の転送先に送信する複数の強度情報通知回路を含み、前記強度情報通知回路は、当該強度情報通知回路に対応する出力ポートを介して送信される競合データに対応付けられた強度情報に基づいて、前記競合データの競合数を算出する付記2に記載のデータ転送システム。
【0095】
(付記4)前記調整回路は、前記調停を実行する場合には、それぞれが前記複数の入力ポートのそれぞれに対応し、対応する入力ポートを選択し、その入力ポートから競合データを入力した数をカウントする複数のカウンタを含み、当該複数のカウンタのカウント数のそれぞれが、当該複数のカウンタに対応する入力ポートから受信した強度情報が示す競合数のそれぞれと一致まで、前記複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する付記2又は3に記載のデータ転送システム。
【0096】
(付記5)前記調停手段は、より多い競合数を示す強度情報を受信した入力ポートからの競合データを優先して、次の転送先に送信する付記1乃至4に記載のデータ転送システム。
【0097】
(付記6)前記競合データは、データ転送先のプロセッサを示す転送先プロセッサ情報を含むパケットであり、前記データ転送部は、前記パケットに含まれる出力先プロセッサ情報に基づいて、前記パケットをルーティングするスイッチである付記1乃至5のいずれか1項に記載のデータ転送システム。
【0098】
(付記7)前記強度情報通知手段は、前記調停を行った競合データのそれぞれに、当該調停を行った競合データの競合数を示す強度情報を含めて送信する付記2乃至4のいずれか1項に記載のデータ転送システム。
【0099】
(付記8)前記データ転送システムは、前記複数のデータ転送部が多段に接続されたプロセス間ネットワークをさらに備えた付記1乃至7のいずれか1項に記載のデータ転送システム。
【符号の説明】
【0100】
1 並列コンピュータ
5 データ転送システム
10 プロセッサ間ネットワーク
20、60、70 データ転送部
101、102、103、104、105、106、107、108、109、110、111、112、113、114、115、116、501、502、503、504、505、506、507、508、509、510、511、512、513、514、515、516、801、802,803、805、901、902、903、905、1001、1002、1003、1005、1101、1102、1103、1105、1203、1303、1403、1503、1601、1602、1604、1605、1607、1609、1610、1801、1802、1901、1902、2001、2002 プロセッサ
117、118、119、120、121、122、123、124、125、126、127、128、129、130、131、132、132、133、134、135、136、201、517、518、519、520、521、522、523、524、525、526、527、528、529、530、531、532、533、534、535、536、701、804、904、1004、1104、1201、1202、1204、1301、1302、1304、1401、1402、1404、1501、1604、1603、1606、1608、1701、1803、1804、1805、1903、1904、2003 スイッチ
202、203、204、205、251、252、253、254、651、652、653、654、702、703、704、705、751、752、753、754、1702、1703、1704、1705 入力ポート
206、207、208、209、255、256、257、258、655、656、657、658、706、707、708、709、755、756、757、758、1706、1707、1708、1709 出力ポート
210、211、212、213、710、711、712、713 入力FIFOメモリ
214、714、1718 クロスバスイッチ
215、216、217、218、715、716、717、718 出力FIFOメモリ
219、220、221、222、301、601、719、720、721、722、1719 調停回路
223、224、225、226、723、724、725、726 強度レジスタ
227、228、229、230、311、312、313、314、611、612、613、614、727、728、729、730 マルチプレクサ(MUX)
259、659、759 調停手段
260、660、760 強度情報通知手段
302、303、304、305、602、603、604、605 強度カウンタ
306、606 選択回路
307、308、309、310、607、608、609、610 1減算器
315、615 強度計算回路
316、616 強度合計レジスタ
317、318、319、320、617、618、619、620 強度
321、322、323、324、621、622、623、624 調停参加信号
401 送り先プロセッサ番号
402 送り元プロセッサ番号
403 調停での強度
404 書き込みアドレス
405 データ長
806、807、808、809、906、907、908、909、1006、1007、1008、1009、1106、1107、1108、1109、1206、1207、1208、1209、1306、1307、1308、1309、1406、1407、1408、1409 強度カウンタ値
810、811、812、813、910、911、912、913、1010、1011、1012、1013、1110、1111、1112、1113、1210、1211、1212、1213、1310、1311、1312、1313、1410、1411、1412、1413 調停参加信号値
814、914、1014、1114、1214、1314、1414 強度合計レジスタ値
1502 信号線
1710、1711、1712、1713、1714、1715、1716、1717 FIFOメモリ

【特許請求の範囲】
【請求項1】
複数のプロセッサと、当該複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部とを備えたデータ転送システムであって、
前記データ転送部は、
次の転送先が同じ競合データについて調停を実行する調停手段と、
調停を行った競合データの競合数を示す強度情報を次の転送先に送信する強度情報通知手段と、を有し、
前記調停手段は、複数のデータ転送部から複数の入力ポートを介して競合データを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定する
データ転送システム。
【請求項2】
前記強度情報通知手段は、前記調停を行った競合データのそれぞれに対応付けて、当該調停を行った競合データの競合数を示す強度情報を次の転送先に送信し、
前記調停手段は、それぞれが複数の出力ポートのそれぞれに対応し、対応する出力ポートを介して次の転送先に送信される競合データについて、前記調停を実行する複数の調停回路を含み、
前記調停回路は、前記各入力ポートから受信した強度情報のうち、当該調停回路に対応する出力ポートを介して送信される競合データに対応付けられた強度情報に基づいて、前記選択割合を決定する請求項1に記載のデータ転送システム。
【請求項3】
前記強度情報通知手段は、それぞれが前記複数の出力ポートのそれぞれに対応し、対応する出力ポートを介して送信される競合データのそれぞれに前記強度情報を対応付けて、当該出力ポートを介して次の転送先に送信する複数の強度情報通知回路を含み、
前記強度情報通知回路は、当該強度情報通知回路に対応する出力ポートを介して送信される競合データに対応付けられた強度情報に基づいて、前記競合データの競合数を算出する請求項2に記載のデータ転送システム。
【請求項4】
前記調整回路は、前記調停を実行する場合には、それぞれが前記複数の入力ポートのそれぞれに対応し、対応する入力ポートを選択し、その入力ポートから競合データを入力した数をカウントする複数のカウンタを含み、当該複数のカウンタのカウント数のそれぞれが、当該複数のカウンタに対応する入力ポートから受信した強度情報が示す競合数のそれぞれと一致まで、前記複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する請求項2又は3に記載のデータ転送システム。
【請求項5】
前記調停手段は、より多い競合数を示す強度情報を受信した入力ポートからの競合データを優先して、次の転送先に送信する請求項1乃至4に記載のデータ転送システム。
【請求項6】
前記競合データは、データ転送先のプロセッサを示す転送先プロセッサ情報を含むパケットであり、
前記データ転送部は、前記パケットに含まれる出力先プロセッサ情報に基づいて、前記パケットをルーティングするスイッチである請求項1乃至5のいずれか1項に記載のデータ転送システム。
【請求項7】
複数のプロセッサと、当該複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部とを備えたデータ転送システムであって、
前記プロセッサは、
初期値を示す強度情報を次の転送先に送信し、
前記データ転送部は、
次の転送先が同じ競合データについて調停を実行する調停手段と、
複数のデータ転送部から複数の入力ポートを介して強度情報を受信した場合に、受信した強度情報のそれぞれが示す値の合計値を示す強度情報を生成して、複数の次の転送先のそれぞれに対して複数の出力ポートを介して同じ強度情報を送信する強度情報通知手段と、を有し、
前記調停手段は、複数のデータ転送部から複数の入力ポートを介して複数のデータを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す値の多さに関する入力ポート間の割合に応じて決定する
データ転送システム。
【請求項8】
複数のプロセッサと、当該複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部とを備えたデータ転送システムであって、
前記データ転送部は、
複数のデータ転送部からデータが入力される複数の入力ポートのそれぞれについて、入力ポートに対して前記複数のプロセッサからデータが転送される転送経路数を示す転送経路数情報を格納する記憶手段と、
次に転送する先が同じ競合データについて調停を実行する調停手段と、を有し、
前記調停手段は、複数のデータ転送部から複数の入力ポートを介して複数のデータを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートについての転送経路数情報が示す転送経路数の多さに関する入力ポート間の割合に応じて決定する
データ転送システム。
【請求項9】
それぞれが複数接続され、複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行するスイッチであって、
次の転送先が同じ競合データについて調停を実行する調停手段と、
調停を行った競合データの競合数を示す強度情報を次の転送先に送信する強度情報通知手段と、を有し、
前記調停手段は、複数のデータ転送部から複数の入力ポートを介して競合データを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定する
スイッチ。
【請求項10】
複数のプロセッサに含まれる一のプロセッサから他のプロセッサに対するデータ転送を複数の入力及び出力ポートを介して実行する複数のデータ転送部のそれぞれにおけるデータ転送方法であって、
次の転送先が同じ競合データについて調停を実行する調停ステップと、
調停を行った競合データの競合数を示す強度情報を次の転送先に送信する強度情報通知ステップと、を備え、
前記調停ステップでは、複数のデータ転送部から複数の入力ポートを介して競合データを受信して前記調停を実行する場合には、複数の入力ポートの中でそれぞれの入力ポートを選択し、その入力ポートから競合データを入力する割合を示す選択割合を、各入力ポートから受信した強度情報が示す競合数の多さに関する入力ポート間の割合に応じて決定する
データ転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図14A】
image rotate

【図14B】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2012−43363(P2012−43363A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−186327(P2010−186327)
【出願日】平成22年8月23日(2010.8.23)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】