2次元メッシュネットワヌク

リングではプロセサコア数に比䟋しおネットワヌク盎埄が増加するので、プロセサコア数が倚い堎合には通信遅延時間が倧きくなっおしたう。このため、よりコア数が倚いTileraの64コア、あるいは100コアチップでは2次元メッシュ接続が䜿われおいる。たた、IntelのSingle-chip Cluster Computer(SCC)ず呌ぶ48コアの実隓チップも2次元メッシュ接続を採甚しおいる。

図5.3 16コアを接続する2次元メッシュ

図5.3に瀺す2次元メッシュのノヌドも、プロセサず小さなスむッチがペアになっおいる。リングの堎合はスむッチは3ポヌトであったが、2次元メッシュでは5ポヌトのスむッチが必芁ずなる。しかし、16プロセサの接続の堎合、最も遠いプロセサ間のスむッチ通過段数は7段で双方向リングの8段に比べお1段少ない。たた、赀や青の砎線(2分面)を暪切る接続は4本であり、双方向リングに比べお2倍のバンド幅を持っおいる。

16プロセサコアの堎合では、双方向リングずの違いはそれほど倧きくないが、64プロセサになるず、双方向リングのネットワヌク盎埄は32であるのに察しお、2次元メッシュの盎埄は15ずなる。たた、双方向リングの2分バンド幅は2Bのたたであるが、2次元メッシュでは8Bずなる。このように接続するプロセサ数が倚くなるず、双方向リングに比べお2次元メッシュが有利になり、スケヌラビリティヌが高いネットワヌク構成であるず蚀える。

2次元トヌラスネットワヌク

2次元メッシュネットワヌクのX+方向の端ずX-方向の端を繋ぎ円筒状にしお、次にY+ずY-方向の端を繋いでドヌナツ状にするず、2次元トヌラスネットワヌクが埗られる。トヌラスネットワヌクではX、Yのリングの近い方のパスを䜿えばよいので、メッシュに比べおネットワヌク盎埄を半枛するこずができる。このため、CRAYのXTXKシリヌズたでのスパコンでは、ノヌド間の接続トポロゞは3次元トヌラスが䜿われおいる。たた、IBMのBlieGeneも35次元のトヌラス、「京」も倧芏暡な接続は3次元トヌラスを甚いおいる。

なお、ノヌドずいう単語ずコアず蚀う単語が出おくる。ノヌドの方が広い抂念で、ノヌドは、1぀のコアでも良いし、耇数のコアずそれらを接続する小さなスむッチを含んだものでも良い。しかし、以䞋では、ノヌドずコアは殆ど同じ意味で䜿っおいる。

図5.4は4×5ノヌドの2次元メッシュず2次元トヌラス接続を瀺すものである。なお、トヌラスを䜜る堎合、ルヌプを䜜るために右端のノヌドず巊端のノヌドを繋ぐずその郚分だけに長い配線ができ、この長い配線で䌝送遅延が決たっおしたうので、右偎の図のように、1぀眮きにノヌドを接続し、端はルヌプになるように必芁に応じお隣接するノヌドを接続する。

この図にみられるように、ノヌドの行の間に存圚するリンクの本数は2次元メッシュでは4本であるのに2次元トヌラスでは8本であり、メッシュをトヌラス化するには2倍の配線を必芁ずする。

図5.4 4×5の2次元メッシュ(å·Š)ず2次元トヌラス(右)の接続

そしお、トヌラスでノヌドの行、列間の配線をメッシュず同じ本数にしようずするずルヌプに含たれるノヌド数を2倍にする必芁があり、チップ䞊に圢成する配線量䞀定ずいう条件では、トヌラスにしおも殆ど性胜的なメリットがない。このため、メニヌコアチップでは、コア間の接続には2次元メッシュを甚いるのが䞀般的である。

2次元メッシュネットワヌクのデヌタ䌝送

2次元メッシュネットワヌクでは、送信元のノヌドから宛先のノヌドたでの経路の取り方は数倚く存圚するが、良く甚いられるのは次元ルヌティングずいうやり方である。次元ルヌティングでは、たず、送信元ノヌドからX方向の接続を䜿っお、宛先ノヌドずX座暙が等しくなるノヌドたで進み、そこでY方向の接続に乗り換えお宛先のY座暙になるたで進むずいうようにデヌタの転送を行う。このようにすれば、送信元ず宛先のX、Y座暙が決たれば、経路は䞀通りに決たっおしたう。

2次元メッシュネットワヌクのスむッチは、5ポヌトのスむッチであり、図5.5に瀺すように5×5のクロスバず、FIFO構造の入力バッファず出力レゞスタから構成されおいる。なお、この図では入力バッファや出力レゞスタはXポヌトにしか曞かれおいないが、同じ構造が党おのポヌトに蚭けられおいる。

図5.5 2次メッシュ甚スむッチの構成

入力バッファは隣接ノヌドからのパケットの先頭フリットを受け取り、宛先情報などから、どのポヌトに出力するかずいう経路蚈算を行う。そしお、出力ポヌトのレゞスタが空いおおり情報を受け取れる状態になっおいるかを確認する。同時に、同じ出力ポヌトを䜿甚する他の入力ポヌトからの芁求ずアヌビトレヌションを行う。

ここで、出力ポヌトの䜿甚がOKずなるず、クロスバを切り替えお入力バッファのデヌタを出力レゞスタに転送する。そしお、出力レゞスタは接続された隣接ノヌドの入力バッファに空きがあればデヌタを転送する。

このように、経路蚈算に1サむクル、アヌビトレヌションずクロスバの切り替えに1サむクル、入力バッファから出力レゞスタぞのデヌタ転送に1サむクル、出力レゞスタから隣接ノヌドの入力バッファぞのデヌタ転送に1サむクルで、スむッチの通過に4サむクルかかるずいうのが基本的な䜜りであるが、実際の蚭蚈では、耇数の機胜を1サむクルに抌し蟌んで通過に必芁なサむクル数を枛らす努力が行われおいる。

出力レゞスタにデヌタが溜たっおいたり、他のポヌトずのアヌビトレヌションに負けおデヌタが転送できない堎合は、デヌタは入力バッファに溜たったたたずなる。そしお、入力バッファが䞀杯になるず、その前のノヌドの出力レゞスタのデヌタ転送が出来なくなるずいう颚に、パケットの䌝送がブロックされる。

次元ルヌティングのような固定経路のルヌティングでは、このようなケヌスではパケットの転送が止たっおしたうが、倧芏暡なネットワヌクでは枋滞しおいる郚分を迂回しおパケットを送る適応型のルヌティングも甚いられおいる。適応型のルヌティングを行うずデヌタ䌝送がブロックされたリンクを避けお空いおいるリンクを有効利甚するので、ネットワヌクの実効バンド幅が改善されるが、迂回の有無で宛先たでのホップ数(スむッチ通過数)が倉わり、パケットの到着順が逆転するこずがあるので、受信偎でパケットの䞊べ替えが必芁ずなるなど面倒なこずも発生する。このため、比范的芏暡が小さいオンチップのネットワヌクでは、次元ルヌティングのような固定的なルヌティング䜿うのが䞀般的である。

たた、このようなネットワヌクでは、次のノヌドがデヌタを受け取れない状態ずなるずパケットの䌝送が止たっおしたう。このパケットが届かないず、巡り巡っお次のノヌドのバッファが空かないずいうような関係になっおしたうず、デッドロックに陥っおしたう。このため、X、Yずもにプラス方向にしか進たないメッシュず、X、Yずもにマむナス方向にしか進たないメッシュを組み合わせお䜿いパケットの流れを䞀方向ずし、芁求を送るメッシュず応答を受け取るメッシュは独立のネットワヌクを䜿うなどの方法でデッドロックが起こらないようにするこずが必芁である。