JP2002259352A - マルチプロセッサシステム装置 - Google Patents

マルチプロセッサシステム装置

Info

Publication number
JP2002259352A
JP2002259352A JP2001056475A JP2001056475A JP2002259352A JP 2002259352 A JP2002259352 A JP 2002259352A JP 2001056475 A JP2001056475 A JP 2001056475A JP 2001056475 A JP2001056475 A JP 2001056475A JP 2002259352 A JP2002259352 A JP 2002259352A
Authority
JP
Japan
Prior art keywords
packet
network
switch
output terminal
multiprocessor system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001056475A
Other languages
English (en)
Inventor
Tomohiro Morimura
知弘 森村
Hideharu Amano
英晴 天野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Semiconductor Technology Academic Research Center
Original Assignee
Semiconductor Technology Academic Research Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Semiconductor Technology Academic Research Center filed Critical Semiconductor Technology Academic Research Center
Priority to JP2001056475A priority Critical patent/JP2002259352A/ja
Priority to EP02004651A priority patent/EP1237092B1/en
Priority to DE60208252T priority patent/DE60208252T2/de
Priority to US10/085,132 priority patent/US7203816B2/en
Publication of JP2002259352A publication Critical patent/JP2002259352A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17393Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 コンパイラが容易に静的スケジューリングを
行うことができ、一般的な同時アクセスパターンに対し
て無衝突なパケット転送を実現することができるマルチ
プロセッサシステム装置を得る。 【解決手段】 各プロセッサエレメント間を、階層構造
の多段結合網で接続し、該多段結合網を構成する各スイ
ッチエレメントに対して、あらかじめコンパイラによっ
て静的にスケジューリングを行い、階層構造の多段結合
網を無衝突でエミュレーションするようにした。更に、
階層構造の多段結合網の基本網にクロス網を使用して1
つのクロス網内でパケット転送を行う場合、レベル1の
エクスチェンジャのスイッチエレメントSE0〜SE3
に対するスケジューリングを行った際、調停に負けたパ
ケットをスイッチエレメントSE0〜SE3の他のスイ
ッチエレメントにおける空きスイッチを使用して転送す
るようにようにした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のプロセッサ
を使用したマルチプロセッサシステム装置に関し、特
に、多数のプロセッサとメモリモジュールを多段のスイ
ッチ(多段結合網)によって接続する構成をなすマルチ
プロセッサシステム装置に関する。
【0002】
【従来の技術】多数のプロセッサとメモリモジュールを
スイッチによって接続する構成を有するマルチプロセッ
サシステム装置において、1つのスイッチに複数のパケ
ットが集中して衝突した場合、データ処理に時間を要し
データ処理性能が低下するという問題があった。このた
め、スイッチにおけるパケットの衝突を低減することが
できるノンブロッキング網、リアレンジブル網及びブロ
ッキング網が提案されていた。
【0003】ノンブロッキング網は、クロスバ網やクロ
ス(Clos)網等があり、スケジューリングによって出線競
合を回避すればスイッチ内では衝突が起きることはな
い。また、リアレンジブル網は、それぞれのスイッチ構
成要素の設定をスケジュールすることによって衝突をな
くすことができる。一方、ブロッキング網は、一般的に
はスケジューリングによって衝突をなくすことができな
いが、一定のアクセスパターンに対してはスケジューリ
ングによって衝突をなくすことができる。
【0004】
【発明が解決しようとする課題】しかし、ノンブロッキ
ング網では、プロセッサ及びメモリモジュールの数に対
するハードウェア量の増加が大きいため、大規模なシス
テムに使用するとコストが膨大なものとなる。また、リ
アレンジブル網は、ノンブロッキング網と比較してハー
ドウェアのコストは小さいが、スケジューリングに要す
る時間が多大なものとなり、マルチプロセッサでの利用
は困難であった。更に、従来のブロッキング網のスケジ
ューリングは、一定のアクセスパターンの並べ換えに対
してのみ無衝突にする方法であり、マルチプロセッサで
実際に利用することができるのは、配列要素が一定の順
番に並んでいる特殊な場合に制限されていた。
【0005】本発明は、上記のような問題を解決するた
めになされたものであり、多数のマルチプロセッサとメ
モリモジュールを使用した大規模なシステムに対して、
コンパイラが容易に静的スケジューリングを行うことが
でき、一般的な同時アクセスパターンに対して無衝突な
パケット転送を実現することができるマルチプロセッサ
システム装置を得ることを目的とする。
【0006】
【課題を解決するための手段】この発明に係るマルチプ
ロセッサシステム装置は、複数のプロセッサが所定のネ
ットワークを介して相互に接続されてなるマルチプロセ
ッサシステム装置において、プロセッサ、メモリ部及び
ネットワークとのインタフェースを行うインタフェース
部からなる複数のプロセッサエレメントと、該各プロセ
ッサエレメント間の接続を行う多段のスイッチによって
構成された、階層構造を有する多段結合網とを備え、各
プロセッサエレメント及び多段結合網は、所定の数を基
数とした階層構造にクラスタリングされると共に、各時
刻ごとに生成された多段結合網における各スイッチの状
態を示すスイッチ状態表を用いてあらかじめ静的にスケ
ジューリングされたスケジュールに基づいて、プロセッ
サエレメント間のパケット転送を行うものである。
【0007】また、上記階層構造を有する多段結合網
は、下位階層から上位階層にパケット転送を行うアップ
ストリーム用の結合網と、上位階層から下位階層にパケ
ット転送を行うダウンストリーム用の結合網とをそれぞ
れ備えるようにしてもよい。
【0008】具体的には、上記スイッチ状態表は、各ス
イッチごとの、出力端子を保持しているパケットの情報
と、該出力端子を要求しているパケットの情報と、該出
力端子の状態を示した情報とで構成されるようにした。
【0009】また、上記各プロセッサエレメント及び多
段結合網は、1つのスイッチの出力端子を同一時刻で複
数のパケットが要求した場合、所定の方法で調停が行わ
れ、該出力端子を保持できなかったパケットは、他の時
刻のスイッチ状態表で該出力端子を要求するようにして
スケジューリングされたスケジュールにしたがって、プ
ロセッサエレメント間のパケット転送を行うようにし
た。
【0010】一方、上記多段結合網がクロス網の場合、
各プロセッサエレメント及び多段結合網は、1つのクロ
ス網内のパケット転送時に、1つのスイッチの出力端子
を同一時刻で複数のパケットが要求した場合、所定の方
法で調停が行われ、該出力端子を保持できなかったパケ
ットは、パケットの要求がない他のスイッチの出力端子
を要求するようにしてスケジューリングされたスケジュ
ールにしたがって、プロセッサエレメント間のパケット
転送を行うようにしてもよい。
【0011】具体的には、上記各パケットに対するスケ
ジューリングを、コンパイラによってあらかじめ行うよ
うにした。
【0012】
【発明の実施の形態】次に、図面に示す実施の形態に基
づいて、本発明を詳細に説明する。 第1の実施の形態.図1は、本発明の第1の実施の形態
におけるマルチプロセッサシステム装置の例を示した概
略のブロック図である。図1において、マルチプロセッ
サシステム装置1は、数十から数千程度のプロセッサエ
レメントPEを、階層構造をもつ多段結合網(Multistag
e Interconnection Network:MIN)で接続してなる。な
お、図1では、3階層の場合を例にして示している。
【0013】マルチプロセッサシステム装置1は、クラ
スタD0〜Dx(xは、x>0の整数)、及び該各クラ
スタD0〜Dx間の接続を行う結合網(Interconnection
Network)E0で構成されている。更に、各クラスタD
0〜Dxは、クラスタA0〜An(nは、n>0の整
数)、及び該各クラスタA0〜An間の接続を行う結合
網C0〜Cxでそれぞれ構成されている。また、各クラ
スタA0〜Anは、プロセッサエレメントPE0〜PE
m(mは、m>0の整数)、及び該各プロセッサエレメ
ントPE0〜PEm間の接続を行う結合網B0〜Bnで
それぞれ構成されている。
【0014】すなわち、マルチプロセッサシステム装置
1では、数百〜数千のプロセッサエレメントPEを結合
するためにネットワークを階層構造に分離し、十数〜数
十のプロセッサエレメントPEを、中規模なマルチプロ
セッサシステム装置に採用される多段結合網という複数
のスイッチを数段にわたって接続し、目的のプロセッサ
エレメントPEへは、途中のスイッチの切り換えによっ
て転送経路が形成されている。
【0015】プロセッサエレメントPE0〜PEmはそ
れぞれ同じ構成であることからプロセッサエレメントP
Ei(i=0〜m)を例にして説明する。図2は、プロセ
ッサエレメントPEiの構成例を示した概略のブロック
図である。図2において、プロセッサエレメントPEi
は、プロセッサPU、メモリME及びネットワークイン
タフェースNIで構成されている。プロセッサPUとメ
モリMEは接続され、更にプロセッサPU及びメモリM
EはネットワークインタフェースNIを介して対応する
結合網Biに接続されている。
【0016】このような構成において、各クラスタA0
〜Anにおける同一クラスタ内のプロセッサエレメント
間の接続を行う構成をレベル0とし、各クラスタA0〜
An間での接続を行う構成をレベル1とし、各クラスタ
D0〜Dx間での接続を行う構成をレベル2とする。す
なわち、各クラスタA0〜Anがレベル0であり、各ク
ラスタD0〜Dxがレベル1であり、結合網E0がレベ
ル2となり、レベル0〜2の3階層を形成している。言
いかえれば、各クラスタD0〜Dx及び結合網E0はク
ラスタF0とすることができ、クラスタF0がレベル2
となる。
【0017】ここで、一般的な多段結合網の1つである
クロス(Clos)網の例を図3に示す。クロス網では、各段
のスイッチの役割から1段目をディストリビュータ(dis
tributor)、2段目をエクスチェンジャ(exchanger)、3
段目をコンセントレータ(concentrator)と呼ぶ。なお、
図3では、4入力4出力のスイッチを使用し、4つの該
スイッチで各段を構成した場合を例にして示している。
【0018】多段結合網は、結合しているノードの数、
すなわちマルチプロセッサシステム装置ではプロセッサ
エレメントPEの数(m+1)と構成要素のスイッチにお
ける入力端子又は出力端子の数kによって、すべてのプ
ロセッサエレメントPEに対して転送経路が形成可能と
なる段数は、log(m+1)となる。図3では、相対
するプロセッサエレメントPEは、同じプロセッサエレ
メントを示していることからm+1=16となりk=4
である。
【0019】このため、スイッチを2段介することによ
ってすべてのプロセッサエレメントPEへの転送経路が
形成されるが、より大きな転送容量を得ると共に転送経
路に冗長性を持たせるために3段のスイッチによってク
ロス網が構成されている。すなわち、1つのプロセッサ
エレメントPEには、ディストリビュータをなすスイッ
チエレメントの1つの入力端子とコンセントレータをな
すスイッチエレメントの1つの出力端子が対応して接続
されている。
【0020】このような多段結合網は、構成スイッチの
入出力数と段数及び構成スイッチの数によって、ノンブ
ロッキング、リアレンジブル及びブロッキングの3通り
に分類することができる。ノンブロッキングは、静的
に、転送データの衝突を起こさない転送経路を設定する
ことができ、リアレンジブルは、転送データの衝突が発
生した場合に、転送経路を再設定することによって無衝
突な経路を形成することができる。ブロッキングは、転
送データの衝突が発生した場合に、転送経路を再設定し
ても無衝突な経路を形成することができない。例えば、
図3で示したクロス網では、構成スイッチの入力端子数
又は出力端子数をkとし、中間段のスイッチ数をpとす
ると、p>(2k−1)のときはノンブロッキング、p≧
kのときはリアレンジブル、p<kのときはブロッキン
グとなる。
【0021】一方、多段結合網で数百〜数千ものプロセ
ッサエレメントPEを接続することは、ハードウェア的
に困難で現実的ではない。このため、数個のプロセッサ
エレメントPEをクロスバ(Crossbar)スイッチに接続し
てレベル0のネットワークとすると共に、該クロスバス
イッチを入力とする多段結合網で十数〜数十のプロセッ
サエレメントPEを結合してレベル1のネットワークと
する。更に、複数の該多段結合網を結合するための拡張
段を複数のスイッチで形成してレベル2のネットワーク
とする。
【0022】同様に、システム装置の規模に応じた階層
の拡張段を付加することによって大規模なシステム装置
を相互結合させて、多段結合網を基本網とした階層構造
に拡張させることにより、スケーラビリティを得ること
ができる。このように、各階層のネットワークは、1つ
のサブネットワークとしてとらえることが可能であるた
め、各階層レベルに応じてレベルs(sは、s>0の整
数)のネットワークNWsと呼ぶ。
【0023】このような実例として、クロス網を基本多
段結合網とした階層構造ネットワークについて説明す
る。図4及び図5は、基本網となるクロス網内における
階層サブネットワークの例を示した図であり、図4は、
クロス網内におけるレベル0のネットワークの例を、図
5は、クロス網内におけるレベル1のネットワークの例
を示している。なお、図4及び図5では、4つのプロセ
ッサエレメントPE0〜PE3を有する4つのクラスタ
A0〜A3を例にして示している。
【0024】図4及び図5において、スイッチエレメン
トSD0〜SD3は、クロス網のディストリビュータを
なし、スイッチエレメントSE0〜SE3は、クロス網
のエクスチェンジャをなし、スイッチエレメントSC0
〜SC3は、クロス網のコンセントレータをなしてい
る。また、スイッチエレメントSD0〜SD3,SE0
〜SE3,SC0〜SC3は、それぞれ4入力4出力の
スイッチエレメントをなしている。
【0025】スイッチエレメントSD0及びSC0は、
接続された各プロセッサエレメントPE0〜PE3と共
にクラスタA0を形成し、スイッチエレメントSD1及
びSC1は、接続された各プロセッサエレメントPE0
〜PE3と共にクラスタA1を形成している。同様に、
スイッチエレメントSD2及びSC2は、接続された各
プロセッサエレメントPE0〜PE3と共にクラスタA
2を形成し、スイッチエレメントSD3及びSC3は、
接続された各プロセッサエレメントPE0〜PE3と共
にクラスタA3を形成している。
【0026】結合網C0をなすスイッチングエレメント
SE0〜SE3が、例えば図4の矢印で示すように入力
端子と同じ出力端子へストレートにスイッチングされる
と、レベル0のネットワークが形成され、クラスタA0
〜A3における同一クラスタ内でのデータ転送が実現す
る。これに対して、結合網C0をなすスイッチングエレ
メントSE0〜SE3が、例えば図5の矢印で示すよう
に入力端子が異なる出力端子にクロスしてスイッチング
されると、エクスチェンジャをなす2段目のスイッチエ
レメントSE0〜SE3が、レベル1のネットワークを
なし、クラスタA0〜A3における異なるクラスタ間で
のデータ転送が実現する。
【0027】このように、エクスチェンジャをなす2段
目のスイッチエレメントSE0〜SE3は、スイッチと
しての役割を果たした場合、レベル1のネットワークと
して動作し、スイッチとしての役割を果たさなかった場
合は、レベル0のネットワークとして動作したことにな
る。すなわち、1つのクロス網内には、レベル0のネッ
トワークとレベル1のネットワークという2つのサブネ
ットワークが存在することになる。
【0028】次に、クロス網間を接続する拡張段、すな
わち図1の結合網E0について説明する。図6は、階層
構造クラスタリングを実現したマルチプロセッサシステ
ム装置1の例を示した図である。なお、図6では、説明
を分かりやすくするために、4を基数、すなわち4つの
プロセッサエレメントPE0〜PE3を有する4つのク
ラスタA0〜A3を備えた4つのクラスタD0〜D3で
構成される階層構造クラスタリングを実現した場合を例
にして示し、プロセッサエレメントは省略して示してい
る。
【0029】図6において、16個のプロセッサエレメ
ントまでをクロス網で直接結合してクラスタD0〜D3
をそれぞれ形成し、該クロス網同士、すなわちクラスタ
D0〜D3を、付加した拡張段であるレベル2のネット
ワークにおけるエクスチェンジャをなすスイッチエレメ
ントSEa0〜SEa3を使用して相互結合を行う。該
スイッチエレメントSEa0〜SEa3は、それぞれ4
入力4出力のスイッチエレメントをなし、図1の結合網
E0をなす。またこの場合、各クロス網内のスイッチエ
レメントSE0〜SE3は、スイッチエレメントSEa
0〜SEa3に接続するための1入力1出力が追加さ
れ、5入力5出力となる。
【0030】また、更に多くのプロセッサエレメントを
結合させる場合は、レベル2のネットワークを相互結合
させるためのレベル3のネットワークとしてレベル3の
エクスチェンジャを付加する。すなわち、図1で示した
すべての構成を有するクラスタが複数存在し、該各クラ
スタ間の結合を行う結合網を設けて4階層にする。この
ように、階層数Rである場合、結合されるプロセッサエ
レメントの数Nは、基本網である多段結合網に接続され
るプロセッサエレメント数(m+1)から、下記(1)式
のようになる。 N=(m+1)×k(R−1)………………(1)
【0031】また、図6のマルチプロセッサシステム装
置1において、m+1=k×kとなることから、上記
(1)式は下記(2)式のようになる。 N=k×k×k(R−1)=k(R+1)………………(2)
【0032】次に、上記のような階層構造を有する多段
結合網の静的スケジューリング方法について説明する。
階層構造を有する多段結合網において静的スケジューリ
ングする場合の前提条件として、すべてのデータ転送
は、コンパイラにおけるスケジューラによって完全に静
的解析がなされ、どのタイミングでどこあてのパケット
が転送されるという情報が分かっている上でデータアク
セスをスケジューリングするものとする。
【0033】静的にスケジューリングするためには各時
刻におけるスイッチの状態を把握しなければならず、各
スイッチエレメントの出力端子ごとに、「現在時刻」、
「保持ポート」、「保持クロック」、「ポート要求待ち
行列」及び「状態」といった各項目から成り立つスイッ
チ状態表を作成する。なお、「保持ポート」とは、この
出力端子を保持している入力ポート番号であり、「保持
クロック」とは、保持しているサイクル(クロック)数で
ある。また、「ポート要求待ち行列」とは、この出力端
子を要求している入力端子番号を入れる待ち行列であ
り、「状態」とは、この出力端子の状態を示しリリース
(RELEASED)とホールド(HOLD)の2つの状態がある。
【0034】図7は、スイッチ状態表の例を示した図で
ある。なお、図7では、4入力4出力のスイッチエレメ
ントの場合を例にして示している。図7において、現在
時刻が157843のときにおける各スイッチの状態を
示しており、出力端子#0が入力端子#3によって2ク
ロック保持されている。したがって、この2クロックの
間は、他の入力端子のパケットが出力端子#0を獲得す
ることはできない。また、出力端子#1は開放されてい
るが、入力端子#0と#2の各パケットが出力端子#1
の獲得要求を出している。出力端子#2及び#3におい
ても開放されているが、入力端子#1のパケットが出力
端子#2の獲得要求を出している。
【0035】各スイッチエレメントにおけるすべてのス
イッチにおいて図7で示したようなスイッチ状態表が作
成され、コンパイラにおけるスケジューラは該スイッチ
状態表に基づいてスケジューリングを行う。図7の出力
端子#1のように、ポート要求待ち行列に2つ以上の獲
得要求がある場合は、パケットの優先度に基づいて調停
され、調停に負けたパケットのアクセスは後の時刻にず
らされる。
【0036】一方、調停に勝ったパケットは、出力端子
を獲得して保持ポートと保持クロックに記載され、保持
クロックが1となる時刻まで保持ポートに記載されると
共に状態をホールドにしてスイッチ状態表が作成され
る。このようなことから、最終的にはすべてのアクセス
時間分のスイッチ状態表が必要になるが、ある時刻のア
クセスのパケットをスケジュールするときに必要なスイ
ッチ状態表は、該時刻よりも後のものだけであるため、
該時刻よりも前の時刻のスイッチ状態表は破棄すること
ができる。
【0037】次に、コンパイラによって行われる、スイ
ッチ状態表を使用した静的スケジューリング方法につい
て説明する。なお、ある時刻Tsに発行されるパケット
の集合Utsを、Uts=p0,p1,……,pNと表すこと
とし、以下静的スケジューリング方法の各処理におい
て、特に明記しない場合はすべてコンパイラによって行
われるものである。
【0038】まず、パケット集合Utsの要素であるパケ
ットpj(j=0〜N)に対して、対応するディストリ
ビュータのスイッチエレメントにおけるスイッチ状態表
を、パケットのヘッダ(ルーティングタグ等)に応じて作
成する。また、スイッチ状態表の現在時刻をTsに設定
する。次に、すべてのパケットp1〜pNに対して、ディ
ストリビュータのスイッチエレメントにおけるスイッチ
状態表が作成されると、スイッチ状態表におけるポート
要求待ち行列内の入力端子のパケットに対して調停を行
う。調停に負けたパケットは、パケット集合Utsから除
かれて次の時刻Ts+1に発行されるパケット集合Uts+1
に加えられる。
【0039】一方、調停に勝ったパケットに対しては、
獲得した出力端子のスイッチ状態表を、保持クロック数
分だけ作成又は書き換えを行う。各スイッチエレメント
におけるすべてのスイッチに対する状態が決定すると、
出力に応じて対応する次の段のスイッチに対するスイッ
チ状態表を作成又は書き換えを行う。このときのスイッ
チ状態表は、現在時刻を1つ進めたときのスイッチ状態
を示す。このような処理を繰り返し、目的地に到着した
パケットはその都度パケット集合Utsから取り除かれ、
パケット集合Utsが空集合になるまでこのような処理を
繰り返す。
【0040】上記のような操作によってある時刻Tsに
発行されたパケットは、無衝突に調整及びスケジューリ
ングされる。また、上記の操作で、パケット集合内に同
じノードから発行されるパケットが2つある場合、その
内1つは次の時刻のパケット集合に入れられるため、パ
ケットのアクセスが集中している場合は、1つずつパケ
ット集合がずれていくことになる。該スケジューリング
対象の時刻Tsと同様の処理を全時刻に対して行うこと
によって静的にパケット転送を完全にスケジューリング
することができる。
【0041】図8〜図10は、スイッチ状態表を使用し
た静的なスケジューリング方法を示したフローチャート
であり、図8〜図10を用いて静的なスケジューリング
処理の流れについてもう少し詳細に説明する。なお、図
8〜図10では、ある時刻Tsに発行されるパケットの
集合Utsを、Uts=p0,p1,……,pNと表すことと
する。また、図8〜図10の各フローで行われる処理
は、特に明記しない限りコンパイラによって行われる。
【0042】図8において、まず最初に時刻Tsに発行
されるパケット集合Utsを1段目の各スイッチの入力端
子にエントリする(ステップS1)。なお、多段結合網
の段数は、入力側から数字を1から昇順に振るものとす
る。次に、現在注目しているスイッチの段数STcurを
1に設定すると共に、現在処理している最高位の階層数
Rcurを1に設定する(ステップS2)。この後、段数
STcurの各スイッチに対してスケジューリングを行う
(ステップS3)。段数STcurの各スイッチに下位階
層へのリンクが存在しているか否かを調べ(ステップS
4)、存在している場合は(YES)、段数STcurを
下位階層の段数に設定し現在時刻Tcurを1つ進め(ス
テップS5)、この後ステップS3に戻る。
【0043】一方、ステップS4で、下位階層へのリン
クが存在していなかった場合(NO)、段数STcurの
各スイッチに上位階層へのリンクが存在しているか否か
を調べ(ステップS6)、存在している場合は(YE
S)、現在処理している最高位の階層数Rcurを1増や
すと共に現在注目しているスイッチの段数STcurを該
階層数Rcurと同じ数に設定した(ステップS7)後、
ステップS3に戻る。また、ステップS6で、上位階層
へのリンクが存在していなかった場合(NO)、本フロ
ーは終了する。
【0044】ここで、図8のステップS3で示したスケ
ジューリング処理について、図9のフローチャートを用
いてもう少し詳細に説明する。図9において、最初に、
段数STcurに属するすべてのスイッチエレメントに対
して、入力端子にエントリされたパケットの行き先出力
端子番号に基づいて、対応する時刻Tcurのスイッチ状
態表のポート要求待ち行列に入力端子番号をエントリす
る(ステップS11)。次に、段数STcurに属する各
スイッチエレメントに対して順に0から番号を振り、注
目しているスイッチエレメント番号SWcurを0に設定
する(ステップS12)。
【0045】この後、SWcurのスイッチエレメントに
対して、スイッチ状態表によるスケジューリングを行い
(ステップS13)、現在注目している段数STcurが
最終段であるか否かを調べる(ステップS14)。ステ
ップS14で、最終段である場合(YES)、出力端子
にエントリされたパケットを到着パケットとしてパケッ
ト集合Utsから削除する(ステップS15)。更に、注
目しているスイッチエレメント番号SWcurを1つ進め
(ステップS16)、該スイッチエレメント番号SWcu
rがその段数STcurの全スイッチ数Nst未満であるか否
かを調べる(ステップS17)。
【0046】ステップS17で、全スイッチ数Nst未満
である場合(YES)、本フローは終了して図8のステ
ップS4に進む。また、ステップS17で、全スイッチ
数Nst未満でない場合(NO)、ステップS13に戻
る。また、ステップS14で、最終段でなかった場合
(NO)、出力端子にエントリされたパケットを接続さ
れている次の段のスイッチの入力端子にエントリさせ
(ステップS18)、ステップS16に進む。
【0047】ここで、図9のステップS13で示したス
ケジューリング処理について、図10のフローチャート
を用いてもう少し詳細に説明する。図10において、ス
イッチ状態表の注目している出力端子番号POcurを0
に設定し(ステップS21)、該出力端子番号POcur
にポート要求待ち行列があるか否かを調べる(ステップ
S22)。ステップS22で、ポート要求待ち行列があ
る場合は(YES)、パケットのヘッダ内の優先度に基
づいて調停を行い(ステップS23)、ポート要求待ち
行列から1つのパケットを選択し(ステップS24)、
該パケットが調停に勝ったか否かを調べる(ステップS
25)。
【0048】ステップS25で、選択したパケットが調
停に勝つと(YES)、該パケットを書き込むスイッチ
状態表の時刻Thを時刻Tcurに設定する(ステップS2
6)。この後、該パケットの入力端子番号を、時刻Th
におけるスイッチ状態表の獲得した出力端子番号の保持
ポートに書き込み(ステップS27)、該パケットが通
過するのに要するクロック数を保持クロックに書き込む
(ステップS28)。次に、保持クロックに書き込まれ
たクロック数を1つ減らし、現在時刻Thを1つ進め
(ステップS29)、保持クロックに書き込まれたクロ
ック数が0でないか否かを調べる(ステップS30)。
ステップS30で、0でない場合は(YES)、ステッ
プS27に戻り、0の場合は(NO)、ステップS22
に戻る。
【0049】一方、ステップS25で、取り出したパケ
ットが調停に負けると(NO)、負けたパケットをパケ
ット集合Utsから取り除き、次の時刻のパケット集合U
ts+1に加え、同じノードの後続パケットの発行の重複が
なくなるまで1つずつパケット集合をずらし(ステップ
S31)、ステップS22に戻る。また、ステップS2
2で、ポート要求待ち行列がない場合は(NO)、出力
端子番号POcurを1つ進め(ステップS32)、出力
端子番号POcurがスイッチの出力端子数Nport未満で
あるか否かを調べる(ステップS33)。ステップS3
3で、出力端子数Nport未満である場合(YES)、ス
テップS22に戻り、出力端子数Nport未満でない場合
(NO)は、本フローは終了して図9のステップS14
に進む。
【0050】上記のようなスケジューリング方法に対し
て、具体的な例を示しながら説明する。例えば、アクセ
ス発行時刻Tsのパケットのスケジューリングにおい
て、時刻15000のある階層ネットワークに属するス
イッチが図11で示したような状況である場合について
説明する。なお、図11では、エクスチェンジャを構成
する5入力5出力のスイッチエレメントを例にして示し
ている。図11において、出力端子#2は、入力端子#
4によって2クロックだけ保持されている。入力端子の
パケットは、ルーティングタグによって適切な出力端子
のポート要求待ち行列に入る。図11のスイッチ状態表
は、スケジューリングが行われる前の状態を示してお
り、コンパイラは、図11のスイッチ状態表を基にして
調停を行い、図12で示したスイッチ状態表を作成す
る。
【0051】図11において、出線競合があるのは出力
端子#1であり、この場合、コンパイラは、パケットの
ヘッダ内の優先度に応じて調停を行う。仮に入力端子#
1のパケットが調停に勝ったとすると、調停に負けた入
力端子#0のパケットは、コンパイラによって、アクセ
ス発行時刻Tsのパケット集合Utsの要素から取り除か
れ、次の発行時刻のパケット集合Uts+1に加えられ、図
12のように入力端子#0のパケットが出力端子#1に
対するエントリから外される。調停に勝った入力端子#
1のパケットは、コンパイラによって、図12のように
出力端子#1の保持ポートに入れられると共に出力端子
#1の保持クロックに1が書き込まれ、更に出力端子#
1の状態がホールドに設定される。
【0052】次に、出力端子#2においては、図11の
ようにすでに状態がホールドに設定され入力端子#4の
パケットによって2クロック保持されている。このた
め、出力端子#2を要求している入力端子#3のパケッ
トは、調停に負けたパケットと同様に、コンパイラによ
って、パケット集合Utsの要素から取り除かれて、次の
発行時刻のパケット集合Uts+1に加えられ、図12のよ
うに入力端子#3のパケットが出力端子#2に対するエ
ントリから外される。出力端子#4においては、図11
のように状態がリリースに設定されており競合する入力
端子のパケットもないことから、入力端子#2のパケッ
トは、コンパイラによって、図12のように出力端子#
4の保持ポートに入れられると共に出力端子#4の保持
クロックに1が書き込まれ、更に出力端子#4の状態が
ホールドに設定される。
【0053】このように、調停が完了して図12のスイ
ッチ状態表が作成されると、コンパイラによって、現在
時刻が1つ進められ、出力端子を獲得したパケットは、
該出力端子に接続されるスイッチの入力端子にエントリ
され、出力端子#4のパケットは、上位階層のスイッチ
の入力端子にエントリされる。該エントリされたパケッ
トは、コンパイラによって、上記と同様にポート要求待
ち行列にエントリし、調停及び出力端子の獲得操作を目
的地に到着するまで繰り返される。なお、上記説明で
は、階層構造化する多段結合網としてクロス網を使用し
た場合を例にして示した。しかし、本発明は、これに限
定するものではなく、オメガ(Omega)網、ベースライン
(Baseline)網、デルタ(Delta)網及び「Generalized Cub
e」等の一般的な多段結合網を使用して階層構造化を行
うようにしても実現することができる。
【0054】ここで、上記スケジューリング方法では、
調停に負けたパケットは次以降の時刻のパケット集合に
加えられるようにした。これに対して、1つのクロス網
内でパケット転送を行う場合は、レベル1のエクスチェ
ンジャのスイッチエレメントに対するスケジューリング
を行った際、調停に負けたパケットをレベル1のエクス
チェンジャの他のスイッチエレメントにおける空きのス
イッチを使用して転送するようにしてもよい。このよう
にする場合のスケジューリング方法について、図13の
1つのクロス網、すなわちクラスタD0を例にして説明
する。
【0055】クロス網の性質上、クロス網内の目的地へ
の経路は、2段目のエクスチェンジャと3段目のコンセ
ントレータによって決定されることから、1段目のディ
ストリビュータは任意の出力を選んでよい。クロス網の
転送性能は、2段目のエクスチェンジャのスケジューリ
ング性能に大きく依存するため、2段目のエクスチェン
ジャのスケジューリング結果に応じた出力端子に転送す
る。したがって、2段目のエクスチェンジャのスケジュ
ーリングを先に行ってから、1段目のディストリビュー
タのスケジューリングを行う。
【0056】クロス網の転送性能は、2段目のエクスチ
ェンジャのスケジューリング性能に左右されるため、非
常に重要である。2段目のエクスチェンジャを効率よく
生かすために上記のようなスイッチ状態表の他に、クラ
スタ別アクセスリストAL(Access List)とクラスタ別
空きポートカウンタVPC(Varid Port Counter)をスケ
ジューリングで使用する。クラスタ別アクセスリスト
(以下、アクセスリストと呼ぶ)ALとは、各レベル0
のクラスタから出力されたパケットが、どのレベル0の
クラスタに向かっているかを記録したリストであり、ク
ラスタ別空きポートカウンタ(以下、空きポートカウン
タと呼ぶ)VPCは、各レベル0のクラスタごとに、接
続されている出力端子がいくつあるかを表すカウンタで
ある。
【0057】ここで、コンパイラによって行われるアク
セスリストAL及び空きポートカウンタVPCの作成方
法について、図13を用いて説明する。なお、図13に
おいても、4を基数、すなわち4つのプロセッサエレメ
ントPE0〜PE3を有する4つのクラスタA0〜A3
を備える4つのクラスタD0〜D3で構成された階層構
造クラスタリングを実現した場合を例にして示してい
る。クラスタD0は、クラスタA0〜A3及びエクスチ
ェンジャをなすスイッチエレメントSE0〜SE3で構
成されている。更に、クラスタA0〜A3は、対応する
スイッチエレメントSD0〜SD3及びSC0〜SC3
とプロセッサエレメントPE0〜PE3からそれぞれ形
成されている。
【0058】このような構成において、まず、アクセス
リストALの作成方法について説明する。コンパイラ
は、スイッチエレメントSD0からスイッチエレメント
SE0〜SE3に転送されたすべてのパケットのヘッダ
を調べ、該各パケットにおけるあて先のクラスタ番号を
アクセスリストALにそれぞれ書き込む。例えば、スイ
ッチエレメントSD0からの各パケットは、スイッチエ
レメントSE0〜SE3のルーティングタグとして、ク
ラスタA1及びA3の2つの要素を有していた場合、ア
クセスリストALにおけるクラスタA0には、クラスタ
番号A1及びA3が書き込まれる。
【0059】次に、空きポートカウンタVPCの作成方
法について説明する。コンパイラは、作成したアクセス
リストALに基づいて、クラスタA0〜A3ごとに、割
り当てられる出力端子の空きがいくつあるかを表すカウ
ント値CT0〜CT3を下記(3)式から対応させて算
出する。 CTg=(2段目のスイッチ数)−(クラスタ別アクセスリストの要素数)……… ………(3) なお、上記(3)式において、g=0〜3である。例え
ば、クラスタA0に対するカウント値CT0は、CT0
=4−2=2となる。
【0060】次に、アクセスリストAL及び空きポート
カウンタVPCを用いてコンパイラによって行われるス
ケジューリングアルゴリズムについて説明する。ただ
し、現在のアクセスリストをALcurとし、調停後のア
クセスリストをALnewとする。まず、コンパイラは、
現在のアクセスリストALcurにおける要素数が最も少
ないクラスタのパケットから順に、スイッチエレメント
SE0から順に優先的に割り当てていく。次に、コンパ
イラは、アクセスリストALcurにおける1つのクラス
タの要素(あて先クラスタ番号)において、パケットの
送り主とあて先が同じクラスタである要素の優先度を最
も低くし、同じでない場合は、例えばあて先のクラスタ
番号の小さい方から順に割り当てる。なお、あて先のク
ラスタ番号の大きい方から順に割り当てるようにしても
よい。
【0061】また、コンパイラは、アクセスリストAL
curの要素に対応する空きポートカウンタが0である場
合、必然的にスケジューリング不能となり、該要素を現
在の時刻のパケット集合から取り除き、次の時刻のパケ
ット集合に加える。このようなパケットの割り当てで競
合が発生した場合、コンパイラは、パケットの優先度又
はラウンドロビン方式等で調停を行う。該調停に勝った
パケットは、コンパイラによって、アクセスリストAL
curの要素から取り除かれ、対応する空きポートカウン
タVPCにおける端子数を示すカウント値をデクリメン
トする。この後、コンパイラは、対応する出力端子のス
イッチ状態表に調停に勝ったパケットの入力端子番号を
記入し、調停に勝ったクラスタに処理済みのチェックを
入れる。
【0062】次に、コンパイラは、調停に負けたパケッ
トと、調停に勝ったパケットと同じあて先のクラスタを
指定しているパケットとを、現在時刻のアクセスリスト
ALcurから取り除き、次の時刻のアクセスリストALn
ewに移動させる。コンパイラは、このような処理を、ア
クセスリストALcurのすべてのクラスタA0〜A3に
対して行って処理済みチェックを入れるまで行う。アク
セスリストALcurにおけるすべてのクラスタA0〜A
3に処理済みチェックを入れると、コンパイラは、アク
セスリストALcurの全要素をアクセスリストALnewに
移し、該アクセスリストALnewをALcurとして上記一
連の処理を各クラスタごとの要素がすべてなくなるまで
行う。
【0063】図14は、アクセスリストAL及び空きポ
ートカウンタVPCを使用したクロス網内のスケジュー
リング方法を示したフローチャートであり、図14を用
いてクロス網内のスケジューリング処理の流れについて
もう少し詳細に説明する。なお、図14の各フローで行
われる処理は、特に明記しない限りコンパイラによって
行われる。図14において、まず最初に、クロス網内の
レベル0のクラスタでアクセスリストALが空でないク
ラスタの集合UCLの内、最も要素の少ないクラスタを
現在注目しているクラスタ番号CLcurに設定する(ス
テップS41)。なお、最も要素数が少ないクラスタが
複数ある場合は、いずれか1つを選択してクラスタ番号
CLcurに設定する。
【0064】次に、クラスタ番号CLcurのクラスタに
おけるアクセスリストALcurの要素であるパケットを
1つ選択し(ステップS42)、該選択したパケットに
おけるあて先クラスタの空きポートカウンタVPCが0
であるか否かを調べる(ステップS43)。ステップS
43で、空きポートカウンタVPCが0である場合(Y
ES)、選択したパケットを、パケット集合Utsとアク
セスリストALcurから取り除き、次の時刻のパケット
集合Uts+1にずらし、時刻Ts以降の時刻に発行される
該パケットは、重複がなくなるまで後の時刻のパケット
集合にずらされ(ステップS44)、ステップS42に
戻る。
【0065】また、ステップS43で、空きポートカウ
ンタVPCが0でない場合(NO)、選択したパケット
を、空いている出力端子があるスイッチエレメントSE
0〜SE3の内、最も番号の小さいスイッチエレメント
の出力端子に割り当てる(ステップS45)。次に、ク
ラスタ集合UCLにおいて、アクセスリストALcurで
競合したパケットを有するクラスタの有無を調べ(ステ
ップS46)、競合したパケットを有するクラスタがあ
る場合(YES)、該競合したパケットをアクセスリス
トALcurから取り除いてアクセスリストALnewに加え
(ステップS47)、ステップS46に戻る。
【0066】また、ステップS46で、競合したパケッ
トを有するクラスタがない場合(NO)、対応する空き
ポートカウンタVPCのカウント値を1つ減らし、現在
注目しているクラスタ番号CLcurをクラスタ集合UC
Lから削除する(ステップS48)。次に、クラスタ集
合UCLが空集合でないか否かを調べ(ステップS4
9)、空集合でない場合は(YES)、ステップS41
に戻る。また、ステップS49で、空集合の場合は(N
O)、アクセスリストALcurの全パケットをアクセス
リストALnewに移して該アクセスリストALnewをAL
curとし、アクセスリストが空でないクラスタをクラス
タ集合UCLの要素とする(ステップS50)。次に、
クラスタ集合UCLが空集合か否かを調べ(ステップS
51)、空集合の場合は(YES)、本フローは終了
し、空集合でない場合は(NO)、ステップS41に戻
る。
【0067】このようなコンパイラによる処理を、具体
的な例を用いて説明する。図15は、アクセスリストA
Lcurの初期状態の例を示した図であり、図16は、空
きポートカウンタVPCの初期状態の例を示した図であ
る。図15及び図16で示した場合を例にして説明す
る。まず、コンパイラは、アクセスリストALcurにお
ける要素数の最も少ないクラスタA1におけるあて先が
クラスタA2であるパケットを処理し、アクセスリスト
ALcurから削除する。更に、コンパイラは、レベル1
のエクスチェンジャをなすスイッチエレメントSE0の
出力端子#2を確保してスイッチ状態表に記録する。
【0068】次に、コンパイラは、空きポートカウンタ
VPCにおける出力端子#2のカウント値を1減らし、
アクセスリストALcurのクラスタA1に処理済みのチ
ェックを入れる。一方、コンパイラは、空きポートカウ
ンタVPCにおける出力端子#2のカウンタ値が0であ
ることから、アクセスリストALcurにおいて、クラス
タA3におけるあて先がクラスタA2であるパケットを
削除して、再転送するために次の時刻のアクセスリスト
ALnewに移す。
【0069】次に、コンパイラは、アクセスリストAL
curにおいて、要素数が次に少ないクラスタA3におけ
るあて先がクラスタA0であるパケットを、スイッチエ
レメントSE0の出力端子#0を確保してスイッチ状態
表に記録する。更に、コンパイラは、空きポートカウン
タVPCの出力端子#0のカウント値を1減らし、アク
セスリストALcurのクラスタA3に処理済みのチェッ
クを入れる。
【0070】同様に、コンパイラは、アクセスリストA
Lcurにおいて、クラスタA2におけるあて先がクラス
タA0であるパケットを削除して、再転送するために次
の時刻のアクセスリストALnewに移す。この時点で、
クラスタA0及びA2の要素数が共に2つとなることか
ら、コンパイラは、調停を行ってクラスタA0を先に処
理するものとする。コンパイラは、アクセスリストAL
curにおけるクラスタA0のあて先がクラスタA1であ
るパケットを、スイッチエレメントSE0の出力端子#
1に割り当ててスイッチ状態表に記録し、アクセスリス
トALcurから削除する。
【0071】更に、コンパイラは、空きポートカウンタ
VPCにおける出力端子#1のカウント値を1減らし、
アクセスリストALcurのクラスタA0に処理済みのチ
ェックを入れる。この後、コンパイラは、アクセスリス
トALcurにおいて、クラスタA2におけるあて先がク
ラスタA1であるパケットを削除して、再転送するため
に次の時刻のアクセスリストALnewに移す。最後に、
コンパイラは、処理済みのチェックが入っていないクラ
スタA2におけるあて先がクラスタA3であるパケット
を同様にして処理する。
【0072】更に、コンパイラは、空きポートカウンタ
VPCの出力端子#3のカウンタ値を1減らし、アクセ
スリストALcurのクラスタA2に処理済みのチェック
を入れてアクセスリストALcurに対する処理が終了す
る。図17は、クラスタA0〜A3の各パケットを1つ
ずつ処理した後のアクセスリストALnewを示し、図1
8は、クラスタA0〜A3の各パケットを1つずつ処理
した後の空きポートカウンタVPCを示している。
【0073】次に、コンパイラは、新たなアクセスリス
トALcurに対して、上記と同様の処理を行う。この
際、パケットは、コンパイラによって、スイッチエレメ
ントSE1の出力端子に割り当てられる点が異なる。こ
のため、アクセスリストALnewがALcurになるごと
に、コンパイラによって割り当てられるスイッチエレメ
ントが1つずつずれていくことになる。最終的に、コン
パイラによってスケジューリングが施されたパケットの
経路は、図19の矢印のようになる。
【0074】なお、上記コンパイラによるスケジューリ
ングでは、1つのスイッチの出力端子を同一時刻で複数
のパケットが要求した場合に調停が行われ、出力端子を
確保することができなかったパケットは次の時刻のスイ
ッチ状態表で該出力端子を要求する場合を例にして説明
したが、これは一例であり、出力端子を確保することが
できなかったパケットが、その前の時刻のスイッチ状態
表といったように他の時刻のスイッチ状態表で所望の出
力端子を要求するようにしてもよい。
【0075】このように、本第1の実施の形態における
マルチプロセッサシステム装置は、各プロセッサエレメ
ント間を、階層構造を有する多段結合網で接続し、該多
段結合網を構成する各スイッチに対して、あらかじめコ
ンパイラによって静的にスケジューリングを行い、階層
構造を有する多段結合網を無衝突でエミュレーションす
るようにした。このことから、パケットの衝突時に動的
に行っていたパケットの待ち合わせを、すべてコンパイ
ル時に管理することができるため、パケットの動的な待
ち合わせに必要なFIFO等のハードウェアを大幅に削
減することができプロセッサ間での無同期実行を行うた
めのネットワーク環境を整えることができる。更に、マ
ルチプロセッサシステム装置において無同期実行を可能
にすることができるため、同期させるためのハードウェ
アのオーバヘッドを削減することができ、並列処理の効
率を向上させることができる。
【0076】また、階層構造を有する多段結合網の基本
網にクロス網を使用して1つのクロス網内でパケット転
送を行う場合、レベル1のエクスチェンジャのスイッチ
エレメントに対するスケジューリングを行った際、調停
に負けたパケットをレベル1のエクスチェンジャの他の
スイッチエレメントにおける空きのスイッチを使用して
転送するようにしてもよい。このようにすることによっ
て、パケット転送効率を向上させることができる。
【0077】第2の実施の形態.上記第1の実施の形態
では、クロス網間を接続するための2段目のレベル1の
エクスチェンジャ、すなわち図6における各クロス網内
のそれぞれのスイッチエレメントSE0〜SE3にすべ
てのパケットが集中する構造であるため、ホットスポッ
ト(hot spot)が形成されて性能が著しく低下する場合
があった。このことから、上位階層から下位階層へ配送
するダウンストリーム用のスイッチとして、レベル1の
コンセントレータを付加するようにしてもよく、このよ
うにしたものを本発明の第2の実施の形態とする。な
お、本第2の実施の形態におけるマルチプロセッサシス
テム装置の例を示した概略のブロック図、及びプロセッ
サエレメントの構成例を示した概略のブロック図は、図
1及び図2と同様であるので省略する。
【0078】図20及び図21は、本発明の第2の実施
の形態における階層構造クラスタリングを実現したマル
チプロセッサシステム装置の例を示した図である。図2
0は、各クロス網と拡張ネットワークとのアップリンク
結合を示しており、図21は、各クロス網と拡張ネット
ワークとのダウンリンク結合を示している。なお、図2
0及び図21では、図6と同じものは同じ符号で示して
おり、ここではその説明を省略すると共に図6との相違
点のみ説明する。また、図20及び図21においても、
4を基数、すなわち4つのプロセッサエレメントPE0
〜PE3を有する4つのクラスタA0〜A3を備える4
つのクラスタD0〜D3で構成された階層構造クラスタ
リングを実現した場合を例にして示し、プロセッサエレ
メントは省略して示している。
【0079】図20及び図21における図6との相違点
は、レベル1のエクスチェンジャにおける、上位階層ネ
ットワークへのパケット配送機能(アップストリーム)
と、下位階層ネットワークへのパケット配送機能(ダウ
ンストリーム)を2つに分け、上位階層から下位階層へ
パケットを配送するダウンストリーム用のスイッチとし
てスイッチングエレメントSCb0〜SCb3からなる
レベル1のコンセントレータを付加すると共に、下位階
層から上位階層へパケットを配送するアップストリーム
は、第1の実施の形態と同様に各クラスタD0〜D3に
おけるそれぞれのスイッチングエレメントSE0〜SE
3からなるレベル1のエクスチェンジャによって行われ
る。
【0080】あるプロセッサエレメント内のプロセッサ
PUが、他のプロセッサエレメントPEのプロセッサP
Uとデータの授受を行う場合、相手のプロセッサエレメ
ントPEのメモリMEにデータを書き込むことによって
通信を行う。メモリMEにデータが書き込まれたプロセ
ッサエレメントのプロセッサPUは、メモリMEに書き
込まれたデータを読み出すことによりデータ通信が成立
する。
【0081】以下、プロセッサエレメント間のデータ通
信の流れについて図22を用いて説明する。図22にお
いて、プロセッサエレメントPEaからプロセッサエレ
メントPEbにデータ転送する場合を例にして説明す
る。まず、プロセッサエレメントPEaにおいて、プロ
セッサPUaからネットワークインタフェースNIaに
アドレス及び転送データが送られる。
【0082】次に、ネットワークインタフェースNIa
は、入力されたアドレスに基づいてパケットを生成し、
階層構造の多段結合網MINにパケットを投入する。該
投入されたパケットは、階層構造の多段結合網MINを
介して、プロセッサエレメントPEbのネットワークイ
ンタフェースNIbに入力され、該ネットワークインタ
フェースNIbは、入力されたパケットを解体してメモ
リMEbに書き込む。プロセッサPUbは、メモリME
bに書き込まれたデータを読み出してデータ通信が完了
する。
【0083】ここで、レベル1のエクスチェンジャに送
り出されたパケットが、同一のクロス網内で処理される
パケット、すなわちデスティネーションが同一クロス網
内である場合について図3を用いて説明する。図3にお
いて、プロセッサエレメントからパケットが、1段目の
ディストリビュータに送り出され、該1段目のディスト
リビュータでスイッチングされて2段目のレベル1のエ
クスチェンジャに送られる。レベル1のエクスチェンジ
ャに送り出されたパケットは、該レベル1のエクスチェ
ンジャによって、最終段のレベル0のコンセントレータ
にスイッチングされて送り出される。
【0084】更に、レベル0のコンセントレータに送り
出されたパケットは、レベル0のコンセントレータで適
切にスイッチングされて、デスティネーションのプロセ
ッサエレメントに送り出されて階層構造の多段結合網M
INでのデータ通信が完了する。なお、あて先のプロセ
ッサエレメントに送り出されたパケットは、図22で説
明したように、プロセッサエレメントのメモリに格納さ
れる。
【0085】次に、レベル1のエクスチェンジャに送り
出されたパケットが、他のクロス網で処理されるパケッ
ト、すなわちデスティネーションが他のクロス網である
場合について図23を用いて説明する。なお、図23で
は、プロセッサエレメントPEaからプロセッサエレメ
ントPEbにデータ転送する場合を例にして説明する。
レベル1のエクスチェンジャをなすスイッチエレメント
SE1に送り出されたパケットは、該スイッチエレメン
トSE1によって、拡張段への出力端子にスイッチング
され、同一レベルのクラスタ内に入るまで上位階層のエ
クスチェンジャ、この場合レベル2のエクスチェンジャ
をなすスイッチエレメントSEa1に送られる。
【0086】同一クラスタ内に入ったパケットは、適切
な出力にスイッチングされて階層を下る。例えば図23
の場合、スイッチエレメントSEa1に送られたパケッ
トは、スイッチエレメントSEa1によって、ダウンス
トリームのレベル1のコンセントレータをなすスイッチ
エレメントSCb1に転送される。スイッチエレメント
SCb1に転送されたパケットは、スイッチエレメント
SCb1で適切にスイッチングされて、デスティネーシ
ョンのプロセッサエレメントであるプロセッサエレメン
トPEbに送り出される。このようにして、階層構造の
多段結合網MINでのデータ通信が完了する。このよう
な構成において、階層構造を有する多段結合網の静的ス
ケジューリング方法は上記第1の実施の形態と同様であ
るのでその説明を省略する。
【0087】このように、本第2実施の形態におけるマ
ルチプロセッサシステム装置は、上位階層から下位階層
へ配送するダウンストリーム用のスイッチとして、スイ
ッチングエレメントSCb0〜SCb3からなるレベル
1のコンセントレータを付加し、下位階層から上位階層
へパケットを配送するアップストリームは、スイッチン
グエレメントSE0〜SE3からなるレベル1のエクス
チェンジャによって行うようにした。このことから、ク
ロス網間を接続するためのレベル1のエクスチェンジャ
にすべてのパケットが集中しないようにしてホットスポ
ットの形成を防止し、マルチプロセッサシステム装置の
性能向上を図ることができる。
【0088】
【発明の効果】上記の説明から明らかなように、本発明
のマルチプロセッサシステム装置によれば、各プロセッ
サエレメント及び多段結合網を、所定の数を基数とした
階層構造にクラスタリングすると共に、各時刻ごとに生
成された多段結合網における各スイッチの状態を示すス
イッチ状態表を用いてあらかじめ静的にスケジューリン
グされたスケジュールに基づいて、プロセッサエレメン
ト間のパケット転送を行うようにした。このことから、
マルチプロセッサシステム装置において無同期実行を可
能にすることができるため、同期させるためのハードウ
ェアのオーバヘッドを削減することができ、並列処理の
効率を向上させることができる。
【0089】また、上記階層構造を有する多段結合網
は、下位階層から上位階層へパケット転送を行うアップ
ストリーム用の結合網と、上位階層から下位階層へパケ
ット転送を行うダウンストリーム用の結合網とをそれぞ
れ備えるようにした。このことから、クロス網間を接続
するためのエクスチェンジャをなす結合網にすべてのパ
ケットが集中しないようにしてホットスポットの形成を
防止し、マルチプロセッサシステム装置の性能向上を図
ることができる。
【0090】具体的には、上記スイッチ状態表を、各ス
イッチごとの、出力端子を保持しているパケットの情報
と、該出力端子を要求しているパケットの情報と、該出
力端子の状態を示した情報とで構成した。このことか
ら、各プロセッサエレメント及び多段結合網からなる大
規模なシステムに対する静的なスケジューリングを容易
に行うことができる。
【0091】また、多段結合網における1つのスイッチ
の出力端子を同一時刻で複数のパケットが要求した場
合、所定の方法で調停が行われ、該出力端子を保持でき
なかったパケットは、他の時刻のスイッチ状態表で該出
力端子を要求するようにしてスケジューリングされたス
ケジュールにしたがって、プロセッサエレメント間のパ
ケット転送を行うようにした。このことから、一般的な
同時アクセスパターンに対して、無衝突のパケット転送
を実現することができる。
【0092】一方、上記多段結合網がクロス網の場合、
1つのクロス網内のパケット転送時に、多段結合網にお
ける1つのスイッチの出力端子を同一時刻で複数のパケ
ットが要求した場合、所定の方法で調停が行われ、該出
力端子を保持できなかったパケットは、パケットの要求
がない他のスイッチの出力端子を要求するようにしてス
ケジューリングされたスケジュールにしたがって、プロ
セッサエレメント間のパケット転送を行うようにしても
よい。このようにすることによって、パケット転送効率
を向上させることができ、マルチプロセッサシステム装
置の性能向上を図ることができる。
【0093】具体的には、各パケットに対するスケジュ
ーリングをあらかじめコンパイラによって行うようにし
た。このことから、パケットの衝突時に動的に行ってい
たパケットの待ち合わせを、すべてコンパイル時に管理
することができるため、パケットの動的な待ち合わせに
必要なFIFO等のハードウェアを大幅に削減すること
ができプロセッサ間での無同期実行を行うためのネット
ワーク環境を整えることができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態におけるマルチプ
ロセッサシステム装置の例を示した概略のブロック図で
ある。
【図2】 プロセッサエレメントの構成例を示した概略
のブロック図である。
【図3】 クロス網の例を示した図である。
【図4】 クロス網内におけるレベル0のネットワーク
の例を示した図である。
【図5】 クロス網内におけるレベル1のネットワーク
の例を示した図である。
【図6】 階層構造クラスタリングを実現したマルチプ
ロセッサシステム装置の例を示した図である。
【図7】 スイッチ状態表の例を示した図である。
【図8】 スイッチ状態表を使用した静的スケジューリ
ング方法を示したフローチャートである。
【図9】 スイッチ状態表を使用した静的スケジューリ
ング方法を示したフローチャートである。
【図10】 スイッチ状態表を使用した静的スケジュー
リング方法を示したフローチャートである。
【図11】 調停を行う前のスイッチ状態表の例を示し
た図である。
【図12】 調停を行った後のスイッチ状態表の例を示
した図である。
【図13】 クロス網の例を示した図である。
【図14】 アクセスリストAL及び空きポートカウン
タVPCを使用したクロス網内のスケジューリング方法
を示したフローチャートである。
【図15】 アクセスリストALcurの初期状態の例を
示した図である。
【図16】 空きポートカウンタVPCの初期状態の例
を示した図である。
【図17】 各パケットを1つずつ処理した後のアクセ
スリストALnewの例を示した図である。
【図18】 各パケットを1つずつ処理した後の空きポ
ートカウンタVPCの例を示した図である。
【図19】 スケジューリング後の各パケットの経路を
示した図である。
【図20】 本発明の第2の実施の形態における階層構
造クラスタリングを実現したマルチプロセッサシステム
装置の例を示した図である。
【図21】 図20のマルチプロセッサシステム装置に
おける各クロス網と拡張ネットワークとのダウンリンク
結合例を示した図である。
【図22】 プロセッサエレメント間のデータ通信の流
れの例を示した図である。
【図23】 図20のマルチプロセッサシステム装置1
aにおけるプロセッサエレメント間のパケット転送の流
れの例を示した図である。
【符号の説明】
1,1a マルチプロセッサシステム装置 PE,PE0〜PEm プロセッサエレメント A0〜An レベル0のクラスタ B0〜Bn レベル0の結合網 C0〜Cx レベル1の結合網 D0〜Dx レベル1のクラスタ E0 レベル2の結合網 PU,PUa,PUb プロセッサ ME,MEa,MEb メモリ NI,NIa,NIb ネットワークインタフェース SC0〜SC3 コンセントレータ(レベル0)のスイ
ッチエレメント SD0〜SD3 ディストリビュータ(レベル0)のス
イッチエレメント SE0〜SE3 エクスチェンジャ(レベル0,1)の
スイッチエレメント SEa0〜SEa3 エクスチェンジャ(レベル2)の
スイッチエレメント SCb0〜SCb3 コンセントレータ(レベル1)の
スイッチエレメント

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサがネットワークを介し
    て相互に接続されてなるマルチプロセッサシステム装置
    において、 プロセッサ、メモリ部及び上記ネットワークとのインタ
    フェースを行うインタフェース部からなる複数のプロセ
    ッサエレメントと、 該各プロセッサエレメント間の接続を行う多段のスイッ
    チによって構成された、階層構造を有する多段結合網
    と、を備え、 上記各プロセッサエレメント及び多段結合網は、所定の
    数を基数とした階層構造にクラスタリングされると共
    に、各時刻ごとに生成された上記多段結合網における各
    スイッチの状態を示すスイッチ状態表を用いてあらかじ
    め静的にスケジューリングされたスケジュールに基づい
    て、プロセッサエレメント間のパケット転送を行うこと
    を特徴とするマルチプロセッサシステム装置。
  2. 【請求項2】 上記階層構造を有する多段結合網は、下
    位階層から上位階層にパケット転送を行うアップストリ
    ーム用の結合網と、上位階層から下位階層にパケット転
    送を行うダウンストリーム用の結合網とをそれぞれ備え
    ることを特徴とする請求項1記載のマルチプロセッサシ
    ステム装置。
  3. 【請求項3】 上記スイッチ状態表は、各スイッチごと
    の、出力端子を保持しているパケットの情報と、該出力
    端子を要求しているパケットの情報と、該出力端子の状
    態を示した情報とで構成されることを特徴とする請求項
    1又は2記載のマルチプロセッサシステム装置。
  4. 【請求項4】 上記各プロセッサエレメント及び多段結
    合網は、1つのスイッチの出力端子を同一時刻で複数の
    パケットが要求した場合、所定の方法で調停が行われ、
    該出力端子を保持できなかったパケットは、他の時刻の
    スイッチ状態表で該出力端子を要求するようにしてスケ
    ジューリングされたスケジュールにしたがって、プロセ
    ッサエレメント間のパケット転送を行うことを特徴とす
    る請求項1,2又は3記載のマルチプロセッサシステム
    装置。
  5. 【請求項5】 上記多段結合網は、クロス網であり、上
    記各プロセッサエレメント及び多段結合網は、1つのク
    ロス網内のパケット転送時に、1つのスイッチの出力端
    子を同一時刻で複数のパケットが要求した場合、所定の
    方法で調停が行われ、該出力端子を保持できなかったパ
    ケットは、パケットの要求がない他のスイッチの出力端
    子を要求するようにしてスケジューリングされたスケジ
    ュールにしたがって、プロセッサエレメント間のパケッ
    ト転送を行うことを特徴とする請求項4記載のマルチプ
    ロセッサシステム装置。
  6. 【請求項6】 上記各パケットに対するスケジューリン
    グは、コンパイラによってあらかじめ行われることを特
    徴とする請求項1、2、3、4又は5記載のマルチプロ
    セッサシステム装置。
JP2001056475A 2001-03-01 2001-03-01 マルチプロセッサシステム装置 Pending JP2002259352A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001056475A JP2002259352A (ja) 2001-03-01 2001-03-01 マルチプロセッサシステム装置
EP02004651A EP1237092B1 (en) 2001-03-01 2002-02-28 Multi-processor system apparatus with a multiple stage connection arrangement
DE60208252T DE60208252T2 (de) 2001-03-01 2002-02-28 Vorrichtung für ein Mehrrechnersystem mit einer mehrstufigen Verbindungsanordnung
US10/085,132 US7203816B2 (en) 2001-03-01 2002-03-01 Multi-processor system apparatus allowing a compiler to conduct a static scheduling process over a large scale system of processors and memory modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001056475A JP2002259352A (ja) 2001-03-01 2001-03-01 マルチプロセッサシステム装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006067883A Division JP2006236362A (ja) 2006-03-13 2006-03-13 マルチプロセッサシステム装置

Publications (1)

Publication Number Publication Date
JP2002259352A true JP2002259352A (ja) 2002-09-13

Family

ID=18916497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001056475A Pending JP2002259352A (ja) 2001-03-01 2001-03-01 マルチプロセッサシステム装置

Country Status (4)

Country Link
US (1) US7203816B2 (ja)
EP (1) EP1237092B1 (ja)
JP (1) JP2002259352A (ja)
DE (1) DE60208252T2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100380327C (zh) * 2004-11-17 2008-04-09 雷西昂公司 用于在高性能计算系统中调度的系统和方法
JP2012022578A (ja) * 2010-07-15 2012-02-02 Fujitsu Ltd 情報処理方法、装置及びプログラム
JP2012098881A (ja) * 2010-11-01 2012-05-24 Fujitsu Ltd 情報処理方法、装置及びプログラム
WO2013111547A1 (ja) * 2012-01-24 2013-08-01 日本電気株式会社 経路制御装置、制御情報生成方法及びプログラムが格納された非一時的なコンピュータ可読媒体
JP2013161184A (ja) * 2012-02-02 2013-08-19 Canon Inc プロセッサ間通信制御方法及びシステム
TWI714184B (zh) * 2019-07-25 2020-12-21 中華電信股份有限公司 多階層網路樣式比對方法
CN117082014A (zh) * 2023-10-17 2023-11-17 苏州元脑智能科技有限公司 Clos网络、构建方法、传输方法、系统、设备和介质

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078177A (ja) * 2003-08-28 2005-03-24 Nec Electronics Corp 並列演算装置
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US7685354B1 (en) * 2004-06-30 2010-03-23 Sun Microsystems, Inc. Multiple-core processor with flexible mapping of processor cores to cache banks
US8098676B2 (en) * 2004-08-12 2012-01-17 Intel Corporation Techniques to utilize queues for network interface devices
JP2006215816A (ja) * 2005-02-03 2006-08-17 Fujitsu Ltd 情報処理システムおよび情報処理システムの制御方法
EP1808774A1 (en) * 2005-12-22 2007-07-18 St Microelectronics S.A. A hierarchical reconfigurable computer architecture
US20080181210A1 (en) * 2007-01-31 2008-07-31 Finisar Corporation Processing register values in multi-process chip architectures
JP2009199433A (ja) * 2008-02-22 2009-09-03 Fujitsu Ltd ネットワーク処理装置およびネットワーク処理プログラム
WO2010048875A1 (zh) * 2008-10-29 2010-05-06 华为技术有限公司 一种集群系统扩容方法、装置及集群系统
US8995456B2 (en) * 2009-04-08 2015-03-31 Empire Technology Development Llc Space-space-memory (SSM) Clos-network packet switch
US8675673B2 (en) 2009-07-29 2014-03-18 New Jersey Institute Of Technology Forwarding cells of partitioned data through a three-stage Clos-network packet switch with memory at each stage
US8274988B2 (en) * 2009-07-29 2012-09-25 New Jersey Institute Of Technology Forwarding data through a three-stage Clos-network packet switch with memory at each stage
US9047417B2 (en) 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
TWI503742B (zh) * 2014-04-21 2015-10-11 Nat Univ Tsing Hua 多核心處理器系統及其排程方法
US10664251B2 (en) 2018-10-05 2020-05-26 International Business Machines Corporation Analytics driven compiler
CN113810273B (zh) * 2020-06-16 2024-10-15 深圳市中兴微电子技术有限公司 一种路径确定方法、装置、设备及存储介质
CN113630347B (zh) * 2021-08-13 2023-02-28 山东云海国创云计算装备产业创新中心有限公司 一种数据传输方法、系统、存储介质及设备
WO2025133973A1 (en) * 2023-12-22 2025-06-26 Ramot At Tel-Aviv University Ltd. System and method for parallel algorithm and scalable architecture for routing in beneš networks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU645785B2 (en) * 1990-01-05 1994-01-27 Maspar Computer Corporation Parallel processor memory system
US5453978A (en) 1994-04-04 1995-09-26 International Business Machines Corporation Technique for accomplishing deadlock free routing through a multi-stage cross-point packet switch
US5945922A (en) * 1996-09-06 1999-08-31 Lucent Technologies Inc. Widesense nonblocking switching networks
US6031835A (en) * 1997-04-04 2000-02-29 International Business Machines Corporation Method for deadlock free and and reliable routing in a packet switched network
US6247077B1 (en) * 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
US6791939B1 (en) * 1999-06-02 2004-09-14 Sun Microsystems, Inc. Dynamic generation of deadlock-free routings
US6606326B1 (en) * 1999-07-02 2003-08-12 International Business Machines Corporation Packet switch employing dynamic transfer of data packet from central shared queue path to cross-point switching matrix path

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100380327C (zh) * 2004-11-17 2008-04-09 雷西昂公司 用于在高性能计算系统中调度的系统和方法
JP2012022578A (ja) * 2010-07-15 2012-02-02 Fujitsu Ltd 情報処理方法、装置及びプログラム
JP2012098881A (ja) * 2010-11-01 2012-05-24 Fujitsu Ltd 情報処理方法、装置及びプログラム
WO2013111547A1 (ja) * 2012-01-24 2013-08-01 日本電気株式会社 経路制御装置、制御情報生成方法及びプログラムが格納された非一時的なコンピュータ可読媒体
JP2013161184A (ja) * 2012-02-02 2013-08-19 Canon Inc プロセッサ間通信制御方法及びシステム
TWI714184B (zh) * 2019-07-25 2020-12-21 中華電信股份有限公司 多階層網路樣式比對方法
CN117082014A (zh) * 2023-10-17 2023-11-17 苏州元脑智能科技有限公司 Clos网络、构建方法、传输方法、系统、设备和介质
CN117082014B (zh) * 2023-10-17 2024-01-23 苏州元脑智能科技有限公司 Clos网络、构建方法、传输方法、系统、设备和介质

Also Published As

Publication number Publication date
US20020147851A1 (en) 2002-10-10
US7203816B2 (en) 2007-04-10
DE60208252T2 (de) 2006-09-07
EP1237092A3 (en) 2004-05-19
EP1237092B1 (en) 2005-12-28
EP1237092A2 (en) 2002-09-04
DE60208252D1 (de) 2006-02-02

Similar Documents

Publication Publication Date Title
JP2002259352A (ja) マルチプロセッサシステム装置
EP1193922B1 (en) Pipelined scheduling method and scheduler
US4623996A (en) Packet switched multiple queue NXM switch node and processing method
Tamir et al. Dynamically-allocated multi-queue buffers for VLSI communication switches
CA2268361C (en) Rotator switch data path structures
US20030103500A1 (en) Apparatus and method for a fault-tolerant scalable switch fabric with quality-of-service (QOS) support
CN104247354B (zh) 接口装置以及总线系统
KR100205062B1 (ko) 계층 상호연결망을 위한 크로스바 라우팅 스위치
May et al. Transputer and Routers: components for concurrent machines
US7400629B2 (en) CAM based system and method for re-sequencing data packets
US20090262744A1 (en) Switching network
Nong et al. Analysis of nonblocking ATM switches with multiple input queues
JP2016501474A (ja) 分散型スイッチレス相互接続
US6888841B1 (en) Pipelined scheduling technique
US7142546B2 (en) Distributed pipeline scheduling method and system
US20050190795A1 (en) Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots
JP2006236362A (ja) マルチプロセッサシステム装置
Tse Switch fabric architecture analysis for a scalable bi-directionally reconfigurable IP router
CN112988651B (zh) 计算系统、计算处理器和数据处理方法
Chung et al. Restriction-Free Adaptive Wormhole Routing in Multicomputer Networks
Patel New protocol for multistage interconnection networks
US20190327189A1 (en) Hierarchical switching devices
Mukhopadhyaya Deflection routing in buffered binary hypercube switches
Cosmas et al. Approaches to simulation of ATM networks and exchanges using distributed processing techniques
Mukhopadhyaya Deflection routing in buffered binary hypercube switches.

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050614

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060117