JP5387918B2 - ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法 - Google Patents

ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法 Download PDF

Info

Publication number
JP5387918B2
JP5387918B2 JP2010510160A JP2010510160A JP5387918B2 JP 5387918 B2 JP5387918 B2 JP 5387918B2 JP 2010510160 A JP2010510160 A JP 2010510160A JP 2010510160 A JP2010510160 A JP 2010510160A JP 5387918 B2 JP5387918 B2 JP 5387918B2
Authority
JP
Japan
Prior art keywords
packet
router
arrival time
input
unit
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.)
Expired - Fee Related
Application number
JP2010510160A
Other languages
English (en)
Other versions
JPWO2009133918A1 (ja
Inventor
将通 高木
淳 鳥居
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010510160A priority Critical patent/JP5387918B2/ja
Publication of JPWO2009133918A1 publication Critical patent/JPWO2009133918A1/ja
Application granted granted Critical
Publication of JP5387918B2 publication Critical patent/JP5387918B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1546Non-blocking multistage, e.g. Clos using pipelined operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/251Cut-through or wormhole routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケットをルーティングするルータ、そのルータを有する情報処理装置及びパケットのルーティング方法に関する。
プロセステクノロジの進展によって、1つのチップに多数のIntellectual Property (IP)を搭載することが可能になり、多機能、高性能への要求をこの手法で満たすようになった。
このようなチップでは1つのIPは他の多くのIPと通信せねばならず、通信網が必要となる。この目的に応じて、IPを、ポイントツーポイントのチャネルとルータで、構造化された方法で結合する方法が提案されており、Network on Chip(NoC)と呼ばれている。
図1に、NoC技術を用いた情報処理装置の一般的な構造を示す。図1に示すように、IP、ネットワークインターフェイス、ルータからなる構成要素が2次元に配列されており、図1の左部に、隣接する二つの構成要素が一部拡大図により示されている。
IP101−1はインターフェイスとなるネットワークインターフェイス102−1を通じてネットワークノードとなるルータ103−1に接続される。またIP101−2はインターフェイスとなるネットワークインターフェイス102−2を通じてネットワークノードとなるルータ103−2に接続される。ルータ103−1、103−2はポイントツーポイントのチャネル104によって接続される。ここで、IP101−1、101−は、プロセッサ、DSP(Digital Signal Processor)、又はメモリコントローラなどのハードウェアモジュールである。
IP間は、パケットと呼ばれるデータをやりとりすることで通信を行う。隣接するIP101−1とIP101−2との間では、まずIP101−1はルータ103−1にパケットを渡す。このパケットは、送信元のIPに隣接するルータ103−1から、送信先のIP101−2に隣接するルータ103−2へと移動し、最後に、送信先のIP101−2に到達する。IP101−1とIP101−2とが隣接してない場合には、パケットは、ルータ103−1から、1又は複数のルータを介してルータ103−2へと移動する。
図1に示す各ルータは、複数の入力チャネルと複数の出力チャネルをつなぎ、パケットを受け渡す働きをする。つまり、各ルータは入力チャネルから来たパケットを適切な出力チャネルに出力し、次のルータにパケットを渡す。なお、ルータ間で転送されるデータの単位をフリットと呼び、パケットは1以上のフリットからなる。そのため、ルータ間で1パケットを送る場合、実際には、1個以上のヘッダフリットと、0個以上の後続フリットを送る。
ルータの処理は4つの作業からなる。つまり、次のルータを決定するルーティング計算(Routing Calculation(RC))と、入力パケットにバーチャルチャネル番号を割り当てるバーチャルチャネル割り当て(Virtual Channel Allocation(VA))と、入力されたパケットのルータ内クロスバーの出力チャネル要求を調停し、調停結果に従ってクロスバーの入出力接続関係を設定するスイッチ割り当て(Switch Allocation(SA))と、フリットがクロスバー内を移動するスイッチ転送(Switch Traversal(ST))とである。
図2に代表的なルータのブロック図を示す。SAを、入出力対応関係割当て処理とも呼ぶ。なお、図2においてはルータの他に図1のIPに対応するIP部212も示している。
次に、パケットをルーティングするルータとIPとを含む装置の関連技術について説明する。
図2を参照すると、フリットを入力チャネル201から入力し、入力ポート部202にバッファし、ルーティング計算部206が、次のホップはどのルータか、すなわち、どの出力チャネルから出力するかを決定する。
バーチャルチャネル割当て部207は、パケットのバーチャルチャネル番号を決定する。スイッチ割当て部209が、入力チャネル201あるいは入力ポート部202にある複数のパケットについて、出力チャネルの間の調停を行い、クロスバー部210の入出力関係を決定する。そして、フリットはクロスバー部210を通って、適切な出力チャネル211に出力される。バーチャルチャネル割当て部207へは、クレジット入力208が入力され、入力ポート部202からクレジット出力216が出力される。
非特許文献1では、ルータの4つの作業をなるべく並列に、また、パイプライン的に行うことにより、ルータの処理時間の短縮と、スループット向上を図る手法が示されている。これらの動作の間には依存があるため、処理は1ステージにはならない。例えば、RCとSAの間には依存がある。このため、パイプラインステージは例えば4ステージとなる。図3(A)にパイプラインステージの構成例を示す。
非特許文献2では、ルータの作業を前倒しすることで、ルータの処理時間を短縮する。すなわち、パケットが、あるルータに到着した際に、次のルータの分のRouting Calculation(RC)を行っておく。こうすることでRCの作業を前倒しする。図3(B)にこの手法を適用した後のパイプラインステージの構成例を示す。
非特許文献3では、VAの作業とSAの作業を投機的に並列実行することで、ルータの処理時間を短縮する。図3(C)にこの手法を適用した後のパイプラインステージの構成例を示す。
ここで、図4を参照すると、関連技術に係る、ルータ(例えば、非特許文献4)は、予測部303が、フリットが到着するであろう入力チャネル301に対し、出力チャネル311を予測する。その後フリットを入力チャネル301から入力する。パケットはクロスバー部310を通って、出力チャネル311に出力される。バーチャルチャネル割当て部307へは、クレジット入力308が入力され、入力ポート部302からクレジット出力316が出力される。ルーティング計算部306、バーチャルチャネル割当部307、スイッチ割当部309は、それぞれルーティング計算部206、バーチャルチャネル割当部207、スイッチ割当部209と同様な機能を有する。IP部312、クロスバー部310もIP部212、クロスバー部210と同様な機能を有する。
予測は、ルーティング計算部306によって検証され、予測ミスの際は、パケットは次のルータに到達する前に無効化される。予測により、予めクロスバースイッチの入出力接続関係設定処理を行っておくことで、Switch Allocation(SA)ステージの動作を前倒しする。図3(D)にこの手法を適用した場合のパイプラインステージの構成例を示す。
又、図5を参照すると、関連技術に係るルータ(例えば、非特許文献5)は、データを送る場合は、制御パケットをデータパケットより前の時刻に宛先のルータに送信する。制御パケットが経路途中のルータに入力されると、ルーティング計算部402が、出力チャネルを決定する。さらに、出力スケジュール部403が、出力チャネルが空いていて、次のルータの入力バッファも空いている時刻を計算し、出力予約テーブル部404に記録する。そして、入力スケジュール部405が、データパケットが到着する時刻と、到着した際に格納する入力バッファの番号と、データパケットが出力チャネル410に移動する時刻とを入力予約テーブル部406に記録する。更に、データパケットが出力チャネル410に移動する時刻と、データパケットを格納する入力バッファの番号と、出力チャネル番号とを出力予約テーブル部404に記録する。出力予約テーブル部404へは、クレジット入力416が入力され、入力ポート部408からクレジット出力417が出力される。制御パケット出力チャネル418は出力スケジュール部403に接続される。
なお、図2、図4及び図5においては、入力ポート部202、302、408の入力ポートの数がN個として示されるが、図1に示すNoC技術を用いた情報処理装置では各ルータは5つの入力ポートを持ち、Nは5となる。図2、図4においては、ルーティング計算部206、306は1つだけ示されているが、実際は入力ポートの数だけ設けられる。
又、NoCに係る技術文献として特許文献1、特許文献2及び特許文献3が存在する。
特開2006−254450号公報 特開2007−110706号公報 特表平11−504496号公報
William James Dally and Brian Towles, "PrincIPles and Practices of Interconnection Networks", Morgan Kaufmann Publishers, pp. 305-312, 2004. M. Galles, "Scalable PIPelined Interconnect for Distributed Endpoint Routing: The SGI Spider ChIP", In proc. Hot Interconnects IV Symp., pp. 141-146, Aug. 1996. Li-Shiuan Peh, William J. Dally, "A Delay Model and Speculative Architecture for PIPelined Routers", In proceedings of the 7th International Symposium on High-Performance Computer Architecture, 2001. 鎌倉 正司郎, 吉永 努, 鯉渕 道紘,"2D トーラスネットワークにおける動的予測ルーティング", SWoPP2006, 2006. Li-Shiuan Peh and William J. Dally, "Flit-Reservation Flow Control", In proceedings of the 6th International Symposium on High-Performance Computer Architecture, pp. 73-84, January 2000.
しかしながら、上述の特許文献1、特許文献2及び特許文献3は、単に、あるルータから受け取ったフリットを、クロスバースイッチによって、更に別のルータに転送する技術についてその概略を述べたものに過ぎず、ルーティング時間の短縮には言及していないという課題がある。
又、関連技術に係るルータの第1の問題点は、一定の時間間隔のパケットのやり取りに関しては、入力チャネルと出力チャネルの予測の精度が低くなり、ルータの処理時間の短縮ができないことがあることである。
例えば、非特許文献4に係るパケットのルータは、ある入力チャネルについて、出力チャネルの過去の履歴を参照して、予測を行う。
現在のサイクルをtとして、mを自然数として、t-1、t-2、…、t-mとm個さかのぼった履歴を、kを自然数として、t-1-k、t-2-k、…、t-m-kの履歴と比較して、mが最大となるような一致する履歴を探し、そのときのm、kの値をm'、k'として、t-k'の出力チャネルを、tの出力チャネルと予測する。
図6にその例を示す。図6の表は、あるルータのある入力チャネルについて、4種類のパケットが各サイクルに要求する出力チャネルを示している。ここで、”A”、”B”、”C”、”D"は4種の出力チャネルとする。なお、ここで1サイクルとは、1のルータが動作に要する最小の時間、例えばパケットが1のルータを通過する場合に要する最小の時間であるとする。
出力チャネルAでは、要求するパケットは8サイクルの間隔の通信で送信されるとする。出力チャネルBでは、要求するパケットは7サイクルの間隔の通信で送信されるとする。出力チャネルCでは、要求するパケットは6サイクルの間隔の通信で送信されるとする。出力チャネルDでは、要求するパケットは5サイクルの間隔の通信で送信されるとする。このとき、図6の表に示すように、過去に要求された出力チャネルの履歴から、将来に要求されるであろう出力チャネルを予測することは難しい。このため、入力チャネルと出力チャネルの予測の精度が低くなり、ルータの処理時間の短縮ができないことがある。
関連技術に係るルータの第2の課題は、ネットワークに投入される制御パケットの量が増大し、ネットワークの遅延の増大を招くことである。
例えば、非特許文献5に係るパケットのルータは、データパケットを送信する前に、制御パケットを送信する。制御パケットをデータパケットと同じネットワークに投入する場合、そのネットワークに投入されるパケット数が増大し、ネットワークの遅延の増大を招く。
本発明は上記の課題に鑑みてなされたものであり、コンピュータ又はIPのネットワークのルータにおいて、前倒し処理することで、ルーティングの時間を短縮するようなルータ、情報処理装置及びパケットのルーティング方法を提供することを典型的(exemplary)な目的とする。
上述の課題を解決するため、本発明に係る典型的なルータは、複数回一定の時間間隔で送信されるパケット、及び該パケットに先行して送信される制御パケットが複数の入力チャネルからそれぞれ入力される入力ポート部と、
前記入力ポート部の複数の出力と複数の入力チャネルと複数の出力チャネルとを接続するクロスバー部と、
前記複数回、前記クロスバー部に対して、前記パケットが出力されると予想される出力チャネルを、前記フリット到着時刻の前に要求するフリット到着時刻管理部と、
該要求に対して前記入力ポート部の複数の出力と前記出力チャネルとの接続関係を設定する入出力接続関係設定処理を前記フリット到着時刻の前に行い、該要求が複数あって輻輳した場合は、前記フリット到着時刻の前に該要求を調停して前記入出力接続関係設定処理を行う、スイッチ割当て部と、
前記入出力接続関係設定処理が前記パケットの実際のルーティングと一致しているか否かを検証するスイッチ割当て検証部と、
を備え、
前記フリット到着時刻管理部は、前記制御パケットから、前記パケットの送信開始時刻と、前記パケットの送信間隔と、を含む制御パケット情報を取得し、前記パケットを受信する時刻であるフリット到着時刻を前記制御パケット情報に基づいて算出し、該フリット到着時刻と、前記制御パケット情報に含まれる前記送信間隔と、前記制御パケットの入力チャネル及び出力チャネルとを記録し、該記録に基づいて前記複数回の前記要求を行い、
前記クロスバー部は、前記入出力接続関係処理の結果を用いて到着したパケットのスイッチングを行うルータである。
上述の課題を解決するため、本発明に係る典型的なパケットのルーティング方法は、 送信元がパケットを複数回一定の時間間隔で送信する場合、前記パケットの送信開始時刻と、前記パケットの送信間隔と、を含む制御パケット情報を制御パケットに記録する手順と、
前記制御パケットを、前記パケットの送信に先行して送信する制御パケット投入手順と、
ルータが前記パケットの送信先までの経路の途中に存する場合に、前記ルータで、前記制御パケットを受信し、該受信した前記制御パケットから前記制御パケット情報を取得し、前記パケットを最初に受信する時刻であるフリット到着時刻を前記制御パケット情報に基づいて算出し、該フリット到着時刻と、前記制御パケット情報に含まれる前記送信間隔と、前記制御パケットの入力チャネル及び出力チャネルとを記録し、該記録に基づいて、前記ルータのクロスバー部に対して、前記パケットが出力されると予想される出力チャネルを、前記フリット到着時刻の前に要求するフリット到着時刻管理手順と、
該要求に対して前記入力チャネルと前記出力チャネルとの接続関係を設定する入出力接続関係設定処理を前記フリット到着時刻の前に行い、該要求が複数あって輻輳した場合は、前記フリット到着時刻の前に該要求を調停して前記入出力接続関係設定処理を行う、スイッチ割当て手順と、
前記入出力接続関係処理の結果を用いて、前記クロスバー部が到着したパケットのスイッチングを行う手順と、
前記入出力接続関係設定処理が前記パケットの実際のルーティングと一致しているか否かを検証するスイッチ割当て検証手順と、
を備えることを特徴とするパケットのルーティング方法である。
本発明によれば、ルータにあらかじめパケットの経路が知らされるので、クロスバー部の処理が前倒しされ、ルーティングの処理時間を短縮することができる。
また、制御パケットをパケット送信に対応させて毎回送る必要がないので、ネットワークに投入されるパケット数を減少させることができる。
Network on Chip(NoC)技術を用いた情報処理装置の例を示した図である。 関連技術のルータのブロック図である。 関連技術と、本発明のルータのパイプラインステージの構成を示した図である。 関連技術のルータのブロック図である。 関連技術のルータのブロック図である。 一定間隔でパケットを送信する例における、あるルータで要求される出力チャネルを時系列で示した図である。 本発明の第1の実施の形態に係るルータのブロック図である。 本発明の第1の実施の形態に係るルータ、及びIPにおける処理例を示すフローチャートである。 本発明の第1の実施の形態に係るルータ、及びIPにおける処理例を示すフローチャートである。 本発明の第1の実施の形態に係るルータ、及びIPにおける処理例を示すフローチャートである。 本発明の第1の実施の形態の具体例における、IPとルータのネットワークの図である。 本発明の第1の実施の形態の具体例において、各ルータのフリット到着時刻管理部に記録されるデータを示す表である。 本発明の第2の実施の形態に係るルータのブロック図である。 本発明の第2の実施の形態に係るルータ、及びIPにおける処理例を示すフローチャートである。 本発明の第2の実施の形態に係るルータ、及びIPにおける処理例を示すフローチャートである。 本発明の第2の実施の形態に係るルータ、及びIPにおける処理例を示すフローチャートである。 本発明の第2の実施の形態に係るルータ、及びIPにおける処理例を示すフローチャートである。 パケットの経路について、直進の例を示す図である。 本発明の第2の実施の形態の具体例における、ルータとネットワークの図である。 本発明の第2の実施の形態の具体例において、各ルータのフリット到着時刻管理部に記録されるデータを示す表である。 図7の一部のブロック間の接続関係を示すブロック図である。 図13の一部のブロック間の接続関係を示すブロック図である。
次に、本発明の実施の形態について図面を参照して詳細に説明する。なお、本発明に係わる情報処理装置は本発明に係わるルータを有する装置であり、代表的にはNoC技術を用いた半導体チップがあげられ、以下に説明する実施形態においてもかかる例について説明するが、かかる例に限定されるものでない。また、本発明に係わるルータの構成はコンピュータネットワークにおけるルータにも適用することができる。
[第1の実施の形態]
図7は、本発明の第1の実施の形態に係るルータのブロック図である。図7ではIP51をルータの他に示している。図21は図7の一部のブロック間の接続関係を示すブロック図である。図21において、フリット到着時刻管理部503−1〜503−Nは図7のフリット到着時刻管理部503、ルーティング計算部506−1〜506−Nは図7のルーティング計算部506、バーチャルチャネル割り当て部507−1〜507−Nは図7のバーチャルチャネル割り当て部507に対応する。
図7を参照すると、本発明の第1の実施の形態に係るルータは、前のホップとなるルータからパケット(フリット)を入力する入力チャネル501と、フリットをバッファする入力ポート部502と、フリット到着時刻管理部503と、フリットに対し次のホップのルータを決定するルーティング計算部506と、パケットに対しバーチャルチャネル番号を割り当てるバーチャルチャネル割り当て部507と、ルータ内部のクロスバーの、フリットの間での調停と、入力チャネルと出力チャネルの接続関係の設定を行うスイッチ割り当て部509と、入力チャネル(入力ポート部の出力)と出力チャネルを接続するクロスバー部510と、を備える。フリット到着時刻管理部503は、一定間隔のパケット送信について、フリットの到着時刻、入力チャネル、出力チャネル、間隔、送信の回数、間隔のずれ幅の最大値を記録し、さらに、記録したフリット到着時刻とその間隔にしたがって複数回、フリット到着時刻の前に、クロスバー部510に対して、パケットが入力される入力チャネルに対して、入力チャネルのパケットが出力されると予想される出力チャネルを要求する。
また本発明の第1の実施の形態に係るルータは、次のルータに接続する出力チャネル511と、通信主体となるプロセッサなどからなるIP部512と、一定間隔のパケットの送信についての情報を制御パケットに書き込み、ネットワークに投入する制御パケット投入部513と、スイッチ割当て部509によってフリット到着前に行われたクロスバー部の入力チャネルと出力チャネルの接続関係が正しかったかどうか検証するスイッチ割当て検証部517とを備える。
IP部512と制御パケット投入部513とは、IP51を構成し、IP51は図11のIP51−1〜IP51−4のそれぞれに該当する。図7のIP部512と制御パケット投入部513以外の構成部はルータを構成し、図11のルータ52−1〜ルータ52−4のそれぞれに該当する。フリット到着時刻管理部503、ルーティング計算部506、バーチャルチャネル割当部507は入力ポートの数だけ設けられる。図11では入力ポートの数は5つなので、フリット到着時刻管理部503、ルーティング計算部506、バーチャルチャネル割当部507は5こずつ設けられることになる。入力ポートの数だけ設けられたバーチャルチャネル割当て部507へは、クレジット入力508がそれぞれ入力され、入力ポート部502からクレジット出力516が出力される。
図7を参照すると、本発明の第1の実施の形態にかかるルータは以下の動作を行う装置である。つまり、制御パケット投入部513が、IP部512からの一定間隔のパケットの送信について、その開始時刻、間隔と送信の回数と間隔のずれ幅の最大値がIP部512によって書き込まれた制御パケットを、IP部512の複数回のパケット送信に対して1回だけネットワークに投入する。
フリット到着時刻管理部503は、入力チャネル501から制御パケットを入力し、フリットの到着時刻、入力チャネル、出力チャネル、間隔、回数、間隔のずれ幅の最大値を記録する。フリット到着時刻管理部503は、更に、記録したフリット到着時刻とその間隔にしたがって複数回、フリット到着時刻の前に、クロスバー部510に対して、入力チャネルに入力されるフリットが出力されると予想される出力チャネルを要求する。
スイッチ割当て部509は、この要求に対する調停と、調停の結果に基づくクロスバー部510の入出力接続関係設定処理をフリット到着時刻の前に行う。
クロスバー部510は、予め行われていた入出力対応関係割当ての結果を用いて到着したフリットのスイッチングを行い、結果として、入力チャネルに対する調停と、入出力接続関係設定処理を前倒しし、ルーティングの時間を短縮する。
スイッチ割当て検証部517は、予め行われていた入出力接続関係設定処理が実際到着したフリットのルーティングと一致しているか否かを検証する。又、制御パケットや、それに記録された一定間隔で送信が行われるパケットに加え、それ以外のパケットについて、以下の動作を行う。
入力ポート部502は入力チャネル501から入力したフリットをバッファする。ルーティング計算部506は、入力したフリットに対して次のルータを計算する。
バーチャルチャネル割り当て部507は入力したパケットに対するバーチャルチャネル番号を決定する。スイッチ割り当て部509はクロスバー部510の入力チャネルに対する出力チャネルの要求の調停と、入力チャネルと出力チャネルの接続関係の設定を行う。
クロスバー部510はフリットを適切な出力チャネル511に送出する。
次に本実施の形態に係るルータにおける一定間隔のパケットの送信に対する動作について、図7、図8〜図10を参照して説明する。ここで、図8〜図10は、本発明の第1の実施の形態に係るルータにおける処理例を示すフローチャートである。
まず、ルータに接続されたIP部512が、一定の時間間隔で、ある送信先のIP部512にパケットを送信するとする。図8に示すように、IP部512は、この送信先と、送信開始時刻と、送信回数と、送信間隔と、送信間隔のずれ幅の最大値とを、制御パケット情報として制御パケットに記録し、制御パケット投入部513を通して入力ポート部502に入力する(ステップS1101)。
送信開始時刻は、IP部512が送信を開始する時刻を、サイクル数で計ったものでもよい。送信先は、IPやルータの番号で表現してもよいし、IPやルータに到るクロスバー部510の出力チャネルの番号の列で表現してもよい。
ルータの処理において、入力チャネル501あるいは入力ポート部502からのクロスバー部510の出力チャネルへの要求の調停と、クロスバー部510の入力チャネルと出力チャネルの接続関係の設定の作業のパイプラインステージをSwitch Allocation(SA)ステージと呼ぶ。
SAステージを前倒しできない際にパケットがルータを通過する時間をTsとし、SAステージを前倒しできる際の時間、すなわちパケットがルータを通過する最短の時間をTfとした場合、制御パケットを送るタイミングは、送信先までのホップ数をHとして、(Ts−Tf)×Hサイクル以上前でもよい。
制御パケットを、送信元IPからルータを経て送信先IPへ送り、制御パケットを用いて、IP部512からの経過時間を計っていく(ステップS1102)。この際に、IP部512が後に送るパケットと同じ経路をたどるように制御パケットを送る。IP部512からの経過時間はサイクル数で計ってもよいし、ホップ数を数えることで計ってもよい。
経路の途中にあるルータがこの制御パケットを受信し、フリット到着時刻管理部503が、制御パケットの情報を記録する(ステップS1103)。チャネルを通過する時間をTpとしたとき、記録する情報は、フリットに記録された送信開始時刻にH×(Tf+Tp)を加えたものを到着時刻としたものと(Hはホップ数)、制御パケットが入力された入力チャネルの番号と、制御パケットを次のルータにホップさせるクロスバー部510の出力チャネルの番号と、フリットの送信回数と、送信間隔と、送信間隔のずれ幅の最大値とである。
フリット到着時刻管理部503は、図9のステップS1104において、フリット到着時刻の記録のエントリについて、現在のサイクル(時刻)が、到着時刻に送信間隔のずれ幅の最大値を足したものより大きくなったものが存在する場合(YES)、すなわち、到着時刻に送信間隔のずれ幅の最大値を加えた時刻になってもフリットが到着しないエントリが存在する場合、当該フリット到着時刻の記録のエントリを消去する(ステップS1105)。こうすることで、送信回数が不明な場合でも送信が終わったものに対してエントリを消去できる。又、到着時刻のずれが大きい場合は、一定間隔で送信される他のパケットに与えるべき出力チャネルを与えてしまう可能性が高まるが、ステップS1104及びステップS1105での操作によってそのような場合を避けることができる。
フリット到着時刻管理部503は、フリット到着時刻の記録のエントリについて、現在のサイクル(時刻)が、フリット到着時刻の1つ前のサイクル以上で、当該フリット到着時刻に送信間隔のずれ幅の最大値を足したもの以下になっているようなものを探し、そのようなエントリに対し、ルータ内のクロスバー部510の出力チャネルをスイッチ割り当て部509に対して要求する(ステップS1106)。入力バッファにバッファリングされていて、かつSAステージが前倒しされていないフリット、入力チャネルに到着して、かつSAステージが前倒しされていないフリットについても、クロスバー部の出力チャネルが要求される。
スイッチ割り当て部509はクロスバー部510の出力チャネルに対する要求が輻輳した場合、これらの要求の調停を行い、さらに認められた要求に対してクロスバー部510の入力ポートと出力チャネルの接続関係の設定を行う(ステップS1107)。
この際に、フリットに与えられた優先度を用いて同じ入力ポート番号を持つ要求同士あるいは同じ出力チャネル番号を持つ要求同士を調停してもよい。また、要求が満たされなかった場合は、次のサイクルに再び要求を行う。
現在入力チャネルや入力ポートに存在するフリットもスイッチ割当て部509に要求を出す。スイッチ割当て部509は、これらの要求とフリット到着時刻管理部503からの要求をまとめて同じように扱い、要求の調停と、入力ポートに対する出力チャネルの接続関係の設定を行ってもよい。要求が輻輳する場合としては、具体的には、例えば次にあげる状態がある。1つのルータに他のルータから一の入力ポートに制御パケットが入力されて、その入力ポートに接続されるフリット到着時刻管理部503からスイッチ割り当て部509に、クロスバー部510の出力チャネルに対する要求が出されたものとする。一方、当該1つのルータに、そのルータと接続される制御パケット投入部513から他の入力ポートに制御パケットが入力されて、その他の入力ポートに接続される他のフリット到着時刻管理部503からスイッチ割り当て部509に、クロスバー部510の出力チャネルに対する要求が出されたとする。この場合に、クロスバー部510の出力チャネルに対する要求が輻輳し、スイッチ割り当て部509が調停を行う。
続く、図10のステップS1201では、フリット到着時刻管理部503が予期した入力チャネルにフリットが到着したか否かを判別し、到着した場合(YES)、ステップS1202へ進む。そうでない場合(NO)、ステップS1209へ進む。
予期した入力チャネルにフリットが到着しない場合は、例えば、非特許文献4のような関連技術と同じ方法でルーティングを行う(ステップS1209)。そして、手順はステップS1206へ進む。
クロスバー部510が、予め行われていた入出力対応関係割当てを用いてスイッチングを行うことで、SAのステージの時間を前倒しし、フリットは次のルータに送られる(ステップS1202)。図3(C)に関連技術におけるルータの作業のパイプラインステージを示す。関連技術ではSA、STの作業を行う。ここでSAのステージが前倒しされることによって、実質STのステージのみとなり、ルーティングの時間が短縮される。なお、VAのステージもSAのステージと同じタイミングで行うことによって前倒しをすることができる。
ステップS1203では、スイッチ割当て検証部517が、予期したフリットがルータに到着したか否かを判定し、到着した場合(YES)、ステップS1205へ進み、そうでない場合(NO)、ステップS1204へ進む。このステップS1203での判定は、スイッチ割当て検証部517が、フリットが到着した後に、ルーティング計算部506によりフリットが出力されるべきクロスバー部510の出力チャネルを計算し、その結果が、予め行われていたクロスバー部510の入出力対応関係割当てと一致していた場合に”YES”と判定するという方法で行う。
スイッチ割当て検証部517は、SAステージの前倒しを行い、かつ、予期していないフリットがルータに到着した際は、フリットを、次のルータに到着する前に無効化する(ステップS1204)。無効化は、フリットがチャネルに出力されないようにしてもよい。
ステップS1205では、フリット到着時刻管理部503が、そのエントリについて、送信回数を1減らし、ゼロになった場合はエントリを消去する。ゼロにならなかった場合はフリット到着時刻に送信間隔を足しこむ。
サイクル数を1進め(ステップS1206)、図8に示すステップS1102に戻る。
続いて、図11、図8〜図10を参照して、第1の実施の形態に係るルータを含む、NoC技術を用いた情報処理装置の具体例を説明する。
図11は、4つのIPからなるネットワークを示す。図11に示すように、IPとルータからなる構成要素が2次元に配列されている。IP51−1が、時刻5から、IP51−4に、時間間隔5でパケットを送るとする。パケットは、ルータ52−1、52−2、52−4の順に辿るとする。ここで、チャネルを通過する時間Tpを1サイクル、SAステージを前倒しできない際パケットがルータを通過する時間Tsを2サイクル、SAステージを前倒しできる際パケットがルータを通過する時間Tfを1サイクルとする。なお、以下に記す時刻においても、その単位はサイクルであるとして、上述の条件で、以下、時系列での本実施の形態の動作について詳述する。
時刻0に、IP51−1が、制御パケットの内容を、送信先がIP51−4、制御パケットの送信後に送信されるパケット(フリット)の送信開始時刻が5、時間間隔が5サイクル、回数が2、送信間隔のずれ幅の最大値を2サイクルと設定する。そして、IP51−1が制御パケット投入部513を通じてIP51−4に向けて制御パケットを送る(ステップS1101)。
時刻0に、ルータ52−1は、制御パケットがIP51−1から到着したため、内部クロスバーを、IP51−1が入力、ルータ52−2が出力となるよう設定する。SAステージが前倒しできないため、制御パケットは時刻3にルータ52−2に到着する。制御パケットを用いてその経過時間を計るため、制御パケットにIP51−1からのホップ数1を記録する(ステップS1102)。
ルータ52−1は、制御パケットの内容をフリット到着時刻管理部503に記録する。記録する内容は、フリット到着時刻が5、入力チャネルがIP51−1、出力チャネルがルータ52−2、送信回数が2、送信間隔のずれ幅の最大値が2サイクルである(ステップS1103)。
時刻0においては、ステップS1104からステップS1107、ステップS1201からステップS1205の処理は行われず、時刻であるサイクル数が1に進む(ステップS1206)。
時刻1においては、ステップS1102からステップS1107、ステップS1201からステップS1205の処理は行われず、時刻であるサイクル数が2に進む(ステップS1206)。
時刻2においては、ステップS1102からステップS1107、ステップS1201からステップS1205の処理は行われず、時刻であるサイクル数が3に進む(ステップS1206)。
時刻3に、ルータ52−2は、制御パケットがルータ52−1から到着したため、内部クロスバーをルータ52−1が入力、ルータ52−4が出力となるよう設定する。制御パケットは時刻6にルータ52−4に到着するので、制御パケットを用いてその経過時間を計るため、制御パケットにIP51−1からのホップ数2を記録する(ステップS1102)。
又、ルータ52−2は、制御パケットの内容をフリット到着時刻管理部503に記録する。記録する内容は、フリット到着時刻が7、入力チャネルがルータ52−1、出力チャネルがルータ52−4、送信回数が2、送信間隔のずれ幅の最大値が2サイクルである(ステップS1103)。
フリット到着時刻は、IP51−1から送信されたフリットがルータ52−2へ到着する時刻であり、制御パケットに記録された開始時刻に、ホップ数1に(Tf+Tp)を乗じたものを加えたものである。
時刻3においては、ステップS1104からステップS1107、ステップS1201からステップS1205の処理は行われず、時刻であるサイクル数が4に進む(ステップS1206)。
時刻4においては、ステップS1102からステップS1105の処理は行われない。ルータ52−1において、フリット到着時刻管理部503のエントリの1つのフリット到着時刻が5であり、次のサイクルであるため、スイッチ割り当て部509に、ルータ52−1の内部クロスバーについて、IP51−1に接続されている入力ポートに対して、ルータ52−2に接続されている出力チャネルを要求する(ステップS1106)。
スイッチ割り当て部509は、出力チャネルに対する調停を行う。この場合、要求は1つだけなので、要求を認める。さらに、クロスバー部510の設定を行う。すなわち、IP51−1に接続されている入力ポートに対して、ルータ52−2に接続されている出力チャネルがつながるように設定する(ステップS1107)。また、複数の要求が競合し、複数の「定期的到着の予告」が同じタイミングで同じ出力チャネルを要求したときは、スイッチ割り当て部509で調停されて、片方の要求が負ける。両方のパケットが同じタイミングで入力チャネルに到着した場合は、負けた方は(ステップS1201でNoの方を辿って)、従来の(3段くらいの)パイプラインステージを経てルーティングされて、余分な遅延時間が追加される。この遅延時間は、勝った方は出力チャネル要求を停止し、負けた方は出力チャネル要求を、当該ルータに実際に対応するパケットが到着するまでしばらく出し続ける(ステップS1104、S1106、S1205)。
時刻4においては、ステップS1201からステップS1205の処理は行われず、時刻であるサイクル数が5に進む(ステップS1206)。
時刻5においては、ステップS1102からステップS1107の処理は行われない。
時刻5に、IP51−1がIP51−4をあて先としてフリットを送ろうと試みる場合、ルータ52−1の、IP51−1に接続されている入力チャネルに対してフリットが投入される。この場合は、フリット到着時刻管理部503が予期した入力チャネルにフリットが到着したため、予め行われていた入出力接続関係を用いてクロスバー部510はスイッチングを行う(ステップS1202)。つまり、先の制御パケットの送信での、IP51−1が入力、ルータ52−2が出力となるようなクロスバー部510の設定を用いる。
これにより、SAステージが前倒しされたため、ルータを通過する時間はTf(=1サイクル)、チャネルを通過する時間はTp(=1サイクル)となり、パケットは時刻7にルータ52−2に到着する。クロスバー部510の接続設定が予めなされていない場合は、ルータを通過する時間はTs(=2サイクル)、チャネルを通過する時間はTp(=1サイクル)となり、パケットは時刻8にルータ52−3に到着することになる。
このフリットはフリット到着時刻管理部503が予期したフリットであったので、ルータ52−1のフリット到着時刻管理部503の該当エントリについて、送信回数を1減らして1にする。さらに、フリット到着時刻に送信間隔5を足しこんで10とする(ステップS1203、S1205)。
時刻であるサイクル数が6に進む(ステップS1206)。
時刻6に、ルータ52−4は、制御パケットがルータ52−2から到着したため、クロスバー部をルータ52−2が入力、IP51−4が出力となるよう設定する。制御パケットは送信先のIP51−4に隣接するルータに到着したため、これ以上作業を行わない。又、ルータ52−4は、制御パケットの内容をフリット到着時刻管理部503に記録する。記録する内容は、フリット到着時刻が9、入力チャネルがルータ52−2、出力チャネルがIP51−4、送信回数が2、送信間隔のずれ幅の最大値が2である(ステップS1103)。
ここで、フリット到着時刻は、IP51−1から送信されたフリットがルータ52−4へ到着する時刻であり、制御パケットに記録された開始時刻に、ホップ数2に(Tf+Tp)を乗じたものを加えたものである。図12に、各ルータのフリット到着時刻管理部に記録される項目を示す。制御パケットは、IP部512が後に送るパケットと同じ経路をたどるように送られるので、図12の入力チャネル及び出力ポート(出力チャネル)は、各ルータで制御パケットを送受信した入力チャネル及び出力ポートである。
時刻6においては、ステップS1104からステップS1105の処理は行われない。
ルータ52−2において、フリット到着時刻管理部503のエントリの1つのフリット到着時刻が7であり、次のサイクルであるため、スイッチ割り当て部509に、ルータ52−2のクロスバー部について、ルータ52−1に接続されている入力チャネルに対して、ルータ52−4に接続されている出力チャネルを要求する(ステップS1106)。
スイッチ割り当て部509は、出力チャネルに対する調停を行う。この場合、要求は1つだけなので、要求を認める。さらに、クロスバー部510の設定を行う。すなわち、ルータ52−1に接続されている入力チャネルに対して、ルータ52−4に接続されている出力チャネルがつながるように設定する(ステップS1107)。
時刻6においては、ステップS1201からステップS1205の処理は行われない。
時刻であるサイクル数が7に進む(ステップS1206)。
時刻7においては、ステップS1102からステップS1107の処理は行われない。
時刻7に、フリットがルータ52−2に到着する。フリット到着時刻管理部503が予期した入力チャネルにフリットが到着したため、予め行われていた入出力対応関係割当てを用いてスイッチングを行う(ステップS1201、S1202)。SAステージが前倒しされたため、フリットは時刻9にルータ52−4に到着する。
このフリットはフリット到着時刻管理部503が予期したフリットであったので、ルータ52−2のフリット到着時刻管理部503の該当エントリについて、送信回数を1減らして1にする。さらに、フリット到着時刻に送信間隔5を足しこんで12とする(ステップS1203、S1205)。
時刻であるサイクル数が8に進む(ステップS1206)。
以降、同様に繰り返してフリットがIP52−4に向かって進んでいく。時刻8に、ルータ52−4のクロスバー部510がルータ52−2が入力、IP51−4が出力となるよう調停、設定される。時刻9にフリットがルータ52−4に到着し、この設定を用いて、時刻11にIP52−4に到着する。
時刻9に、ルータ52−1のクロスバー部510がIP51−1が入力、ルータ52−2が出力となるよう調停、設定される。時刻10に、再び、フリットがIP51−1によりルータ52−1に投入され、時刻12にルータ52−2に到着する。この際に、ルータ52−1のフリット到着時刻管理部503のエントリの送信回数はゼロに減ぜられ、このエントリは消去される。
時刻11に、ルータ52−2のクロスバー部510が、ルータ52−1が入力、ルータ52−4が出力となるよう調停、設定される。時刻12に、フリットがルータ52−2に到着し、時刻14にルータ52−4に到着する。この際に、ルータ52−2のフリット到着時刻管理部503のエントリの送信回数はゼロに減ぜられ、このエントリは消去される。
時刻13に、ルータ52−4のクロスバー部510がルータ52−2が入力、IP51−4が出力となるよう調停、設定される。時刻14に、フリットがルータ52−4に到着し、時刻16にIP51−4に到着する。この際に、ルータ52−4のフリット到着時刻管理部503のエントリの送信回数はゼロに減ぜられ、このエントリは消去される。
この一連の動作により、一定間隔の、2回のパケット送信の処理が終了する。
以上説明したように、第1の実施の形態によれば、ルーティングの処理時間を短縮することができる。
その第1の理由は、一定間隔でパケットを送信する場合、クロスバー部510の入出力対応関係割当て処理に必要な情報を制御パケットに載せて、送信元から送信先に送ることにより、経路の途中にあるルータに対して、入出力対応関係割当て処理(SA)に必要な情報が知らされるため、クロスバー部510の入出力対応関係割当てを前倒して処理することができる。このことによって、パケットが到着してから入出力対応関係割当て処理を行う必要がなくなるためである。
その第2の理由は、一定の時間間隔のパケットの送信について、そのフリットの到着時刻、入力チャネル、出力チャネル、間隔、回数、間隔のずれ幅の最大値をルータに記録することにより、従来のパケットのルータ(例えば、非特許文献4)において、ある入力チャネルに到着するフリットが要求する出力チャネルの予測が失敗するような場合にも、入力チャネルと出力チャネルの対応関係を正しく把握しルータ内のクロスバーの入出力対応関係割当てを前倒しすることができるためである。
又、第1の実施の形態の具体例によれば、ルーティングの処理時間を短縮する際に、ネットワークの遅延の増大を抑えることができる。
その理由は、従来のパケットのルータ(例えば、非特許文献5)は、データパケットを送信する前に、制御パケットを送信するが、本発明では、一定の時間間隔のパケットの送信について、最初に制御パケットを送れば、そのフリットの到着時刻、入力チャネル、出力チャネル、間隔、回数、間隔のずれ幅の最大値はルータのフリット到着時刻管理部503に記録され、何度も再利用されるため、毎回制御パケットを送る必要がないため、ネットワークに投入されるパケット数が減少するためである。
[第2の実施の形態]
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。ここで図13は、本発明の第2の実施の形態に係るルータのブロック図である。図13ではIP51をルータの他に示している。図22は図13の一部のブロック間の接続関係を示すブロック図である。図22において、フリット到着時刻管理部503’−1〜503’−Nは図13のフリット到着時刻管理部503’、ルーティング計算部506−1〜506−Nは図13のルーティング計算部506、バーチャルチャネル割り当て部507−1〜507−Nは図13のバーチャルチャネル割り当て部507に対応する。
図13を参照すると、本発明の第2の実施の形態にかかるルータは、前のホップとなるルータからフリットを入力する入力チャネル501と、フリットをバッファする入力ポート部502と、フリット到着時刻管理部503’と、フリットに対し次のホップのルータを決定するルーティング計算部506と、パケットに対しバーチャルチャネル番号を割り当てるバーチャルチャネル割り当て部507と、ルータ内部のクロスバーの、フリットの間での調停と、入力チャネルと出力チャネルの接続関係の設定を行うスイッチ割り当て部509’と、入力チャネルと出力チャネルを接続するクロスバー部510と、を備える。フリット到着時刻管理部503’は、一定間隔のパケット送信について、フリットの到着時刻、入力チャネル、出力チャネル、間隔と、送信の回数と、間隔のずれ幅の最大値を記録し、さらに、記録したフリット到着時刻とその間隔にしたがって複数回、フリット到着時刻の前に、クロスバー部510に対して、パケットが入力される入力チャネルに対して、パケットが出力されると予想される出力チャネルを要求する。
本発明の第2の実施の形態にかかるルータは、次のルータに接続する出力チャネル511と、通信主体となるプロセッサなどからなるIP部512と、一定間隔のパケットの送信についての情報を制御パケットに書き込み、ネットワークに投入する制御パケット投入部513と、スイッチ割当て部509によってフリット到着前に行われたクロスバー部の入力チャネルと出力チャネルの接続関係が正しかったかどうか検証するスイッチ割当て検証部517とを備える。
IP部512と制御パケット投入部513とは、IP51を構成し、IP51は図18及び図19のIP51−1〜IP51−6のそれぞれに該当する。図13のIP部512と制御パケット投入部513以外の構成部はルータを構成し、図13のルータ52−1〜ルータ52−6のそれぞれに該当する。フリット到着時刻管理部503’、ルーティング計算部506、バーチャルチャネル割当部507は入力ポートの数だけ設けられる。図18及び図19では入力ポートの数は5つなので、フリット到着時刻管理部503’、ルーティング計算部506、バーチャルチャネル割当部507は5こずつ設けられることになる。入力ポートの数だけ設けられたバーチャルチャネル割当て部507へは、クレジット入力508がそれぞれ入力され、入力ポート部502からクレジット出力516が出力される。
図13を参照すると、本発明の第2の実施の形態にかかるルータは以下の動作を行う装置である。つまり、制御パケット投入部513が、IP部512の一定間隔のパケットの送信について、その開始時刻、間隔と送信の回数と間隔のずれ幅の最大値を制御パケットに書き込み、その制御パケットを、IP部512の複数回のパケット送信に対して1回だけネットワークに投入する。
フリット到着時刻管理部503’は、入力チャネル501から制御パケットを入力し、経路がルータに対して直進でないときのみ、フリットの到着時刻、入力チャネル、出力チャネル、間隔、送信の回数、間隔のずれ幅の最大値を記録する。
すなわち、経路が屈曲する箇所に存するルータにおいて、制御パケットを受信し、フリットの到着時刻、入力チャネル、出力チャネル、間隔、送信の回数、間隔のずれ幅の最大値を記録することになる。
フリット到着時刻管理部503’は、更に、記録したフリット到着時刻とその間隔にしたがって複数回、フリット到着時刻の前に、クロスバー部510に対して、フリットが入力される入力チャネルに対して、フリットが出力されると予想される出力チャネルを要求する。
スイッチ割り当て部509’は、この要求に対する調停と、調停の結果に基づくクロスバー部510の入出力接続関係設定処理をフリット到着時刻の前に行う。
スイッチ割り当て部509’は、出力チャネルを要求していない入力チャネルについては、ルータに対して直進となるように、入力チャネルに対する出力チャネルの設定を行う。
クロスバー部510は、予め行われていた入出力対応関係割当ての結果を用いて到着したフリットのスイッチングを行い、結果として、入力チャネルに対する調停と、入出力接続関係設定処理を前倒しし、ルーティングの時間を短縮する。
スイッチ割当て検証部517は、予め行われていた入出力接続関係設定処理が実際到着したフリットのルーティングと一致しているか否かを検証する。又、制御パケットや、それに記録された一定間隔で送信が行われるパケットに加え、それ以外のパケットについて、以下の動作を行う。
入力ポート部502は入力チャネル501から入力したフリットをバッファする。
ルーティング計算部506は、入力したフリットに対して次のルータを計算する。
バーチャルチャネル割り当て部507は入力したパケットに対するバーチャルチャネル番号を決定する。
スイッチ割り当て部509’はクロスバー部510の入力チャネルに対する出力チャネルの要求の調停と、入力チャネルと出力チャネルの接続関係の設定を行う。
クロスバー部510はフリットを適切な出力チャネル511に送出する。
次に本実施の形態にかかるルータ における一定間隔のパケットの送信に対する動作について、図13、図14〜図17を参照して説明する。ここで、図14〜図17は、本発明の第2の実施の形態に係るルータにおける処理例を示すフローチャートである。
まず、ルータに接続されたIP部512が、一定の時間間隔で、ある送信先のIP部512にパケットを送信するとする。IP部512は、この送信先と、送信開始時刻と、送信回数と、送信間隔と、送信間隔のずれ幅の最大値を制御パケットに記録し、制御パケット投入部513を通して入力ポート部502に入力する(ステップS1401)。
送信開始時刻は、IP部512が送信を開始する時刻を、サイクル数で計ったものでもよい。送信先は、IPやルータの番号で表現してもよいし、IPやルータに到るクロスバー部510の出力チャネルの番号の列で表現してもよい。
ルータの処理において、入力チャネル501あるいは入力ポート部502からのクロスバー部510の出力チャネルへの要求の調停と、クロスバー部510の入力ポートと出力チャネルの接続関係の設定の作業のパイプラインステージをSwitch Allocation(SA)ステージと呼ぶ。
SAステージを前倒しできない際、パケットがルータを通過する時間をTsとする。SAステージを前倒しできる際の時間をTfとした場合、制御パケットを送るタイミングは、送信先までのホップ数をHとして、(Ts−Tf)×Hサイクル以上前でもよい。
制御パケットを、送信元IPからルータを経て送信先IPへ送り、制御パケットは、IP部512からの経過時間を計っていく。(ステップS1402)。この際に、IP部512が後に送るパケットと同じ経路をたどるように制御パケットを送る。制御パケットを用いて、IP部512からの経過時間をサイクル数で計ってもよいし、ホップ数を数えることで計ってもよい。
経路の途中にあるルータがこの制御パケットを受信し、次のホップのルータが入力チャネルに対して直進でなかった場合には、フリット到着時刻管理部503’が、制御用パケットの情報を記録する(ステップS1403)。直進ではあるとは、メッシュやトーラスネットワークなど、ルータに割り当てられた座標について、1つの次元の座標のみが変化する場合を指す。
図18に直進の例を示す。この例では、点線で記した経路がルータ52−2に対して直進である。
又、ステップS1403において、チャネルを通過する時間をTpとしたとき、記録する情報は、フリットに記録された送信開始時刻にH×(Tf+Tp)を加えたものを到着時刻としたものと(Hはホップ数)、制御パケットが入力された入力チャネルの番号と、制御パケットの次のホップのルータに対応する出力チャネルの番号と、フリットに記録された送信回数と、送信間隔と、送信間隔のずれ幅の最大値である。
ステップS1404からステップS1406については、第1の実施の形態のステップS1104からステップS1106と同様であるので、説明を省略する。
スイッチ割り当て部509’はクロスバー部510の出力チャネルに対する要求の調停を行い、要求が行われた出力チャネルについては調停結果に基づいて、要求が行われなかった出力チャネルについてはルータに対して直進となるように、クロスバー部510の入力ポートと出力チャネルの接続関係の設定を行う(ステップS1407)。
この際に、フリットに与えられた優先度を用いて同じ入力ポート番号を持つ要求同士あるいは同じ出力チャネル番号を持つ要求同士を調停してもよい。また、要求が満たされなかった場合は、次のサイクルに再び要求を行う。
続く、図18のステップS1501では、フリット到着時刻管理部503が予期した入力チャネルにフリットが到着したか否かを判別し、到着した場合(YES)、ステップS1502へ進む。そうでない場合(NO)、ステップS1509へ進む。
予期した入力チャネルにフリットが到着しない場合は、例えば、非特許文献4のような関連技術と同じ方法でルーティングを行う(ステップS1509)。そして、手順はステップS1506へ進む。
クロスバー部510が、予め行われていた入出力対応関係割当てを用いてスイッチングを行うことで、SAのステージの時間を前倒しし、フリットは次のルータに送られる(ステップS1502)。図3(C)に関連技術におけるルータの作業のパイプラインステージを示す。関連技術ではSA、STの作業を行う。ここでSAのステージが前倒しされることによって、実質STのステージのみとなり、ルーティングの時間が短縮される。なお、VAのステージもSAのステージと同じタイミングで行うことによって前倒しをすることができる。
ステップS1503では、スイッチ割当て検証部517が、予期したフリットがルータに到着したか否かを判定し、到着した場合(YES)、ステップS1505へ進み、そうでない場合(NO)、ステップS1506へ進む。このステップS1503での判定は、スイッチ割当て検証部517が、フリットが到着した後に、ルーティング計算部506によりフリットが出力されるべきクロスバー部510の出力チャネルを計算し、その結果が、予め行われていたクロスバー部510の入出力対応関係割当てと一致していた場合にYESと判定するという方法で行う。
フリット到着時刻管理部503’が、そのエントリについて、送信回数を1減らし、ゼロになった場合はエントリを消去する。ゼロにならなかった場合はフリット到着時刻に送信間隔を足しこむ(ステップS1505)。
ステップS1506では、スイッチ割当て検証部517は、フリット到着時刻管理部503’によるスイッチ割当てと、入力チャネルについてルータに対して直進となるようなスイッチ割当ての両方について、その割当てが正しかったかどうか判定し、正しかった場合(YES)、ステップS1508へ進み、そうでない場合(NO)、ステップS1507へ進む。このステップS1506での判定は、スイッチ割当て検証部517が、フリットが到着した後に、ルーティング計算部506によりフリットが出力されるべきクロスバー部510の出力チャネルを計算し、その結果が、予め行われていたクロスバー部510の入出力対応関係割当てと一致していた場合にYESと判定するという方法で行う。
スイッチ割当て検証部517は、正しくなかった場合は、フリットを、次のルータに到着する前に無効化する(ステップS1507)。無効化は、フリットがチャネルに出力されないようにしてもよい。
サイクル数を1進め、図14のステップS1402に戻る(ステップS1508)。
続いて、図19、図14〜図17を参照して、第2の実施の形態に係るルータの具体例を説明する。図19に示すように、IPとルータからなる構成要素が2次元に配列されている。
図19は、6つのIPからなるネットワークを示す。IP51−1が、時刻5から、IP51−6に、時間間隔5でパケットを送るとする。パケットは、ルータ52−1、2、3、6の順に辿るとする。ここで、チャネルを通過する時間Tpを1サイクル、SAステージを前倒しできない際パケットがルータを通過する時間Tsを2サイクル、SAステージを前倒しできる際パケットがルータを通過する時間Tfを1サイクルとする。なお、以下に記す時刻においても、その単位はサイクルであるとして、上述の条件で、以下、時系列での本実施の形態の動作について詳述する。
時刻0に、IP51−1が、制御パケットの内容を、送信先がIP51−6、送信開始時刻が5、時間間隔が5サイクル、回数が2、送信間隔のずれ幅の最大値を2サイクルと設定する。そして、IP51−1が制御パケット投入部513を通じてIP51−6に制御パケットを送る(ステップS1401)。
時刻0に、ルータ52−1に制御パケットがIP51−1から到着する。SAステージが前倒しできないため、制御パケットは時刻3にルータ52−2に到着する。制御パケットを用いてその経過時間を計るため、IP51−1からのホップ数1を記録する(ステップS1402)。
ルータ52−1は、制御パケットの内容をフリット到着時刻管理部503’に記録する。記録する内容は、フリット到着時刻が5、入力チャネルがIP51−1、出力チャネルがルータ52−2、送信回数が2、送信間隔のずれ幅の最大値が2サイクルである(ステップS1403)。
時刻0においては、ステップS1404からステップS1407、ステップS1501からステップS1507の処理は行われず、時刻であるサイクル数が1に進む(ステップS1508)。
時刻1においては、ステップS1402からステップS1407、ステップS1501からステップS1507の処理は行われず、時刻であるサイクル数が2に進む(ステップS1508)。
時刻2においては、ステップS1402からステップS1407、ステップS1501からステップS1507の処理は行われず、時刻であるサイクル数が3に進む(ステップS1508)。
時刻3に、ルータ52−2に制御パケットがルータ52−1から到着する。制御パケットは時刻6にルータ52−4に到着する。制御パケットを用いてその経過時間を計るため、制御パケットにIP51−1からのホップ数2を記録する(ステップS1402)。
又、制御パケットは、ルータ52−2を直進する、つまりルータ52−1から到着してルータ52−3へ進むため、制御パケットの内容をフリット到着時刻管理部503’に記録しない(ステップS1403)。
時刻3においては、ステップS1404からステップS1407、ステップS1501からステップS1507の処理は行われず、時刻であるサイクル数が4に進む(ステップS1508)。
時刻4においては、ステップS1402からステップS1405の処理は行われない。ルータ52−1において、フリット到着時刻管理部503’のエントリの1つのフリット到着時刻が5であり、次のサイクルであるため、スイッチ割り当て部509に、ルータ52−1のクロスバー部510について、IP51−1に接続されている入力ポートに対して、ルータ52−2に接続されている出力チャネルを要求する(ステップS1406)。
スイッチ割り当て部509は、出力チャネルに対する調停を行う。この場合、要求は1つだけなので、要求を認める。さらに、クロスバー部510の設定を行う。すなわち、IP51−1に接続されている入力ポートに対して、ルータ52−2に接続されている出力チャネルがつながるように設定する(ステップS1407)。
時刻4においては、ステップS1501からステップS1507の処理は行われず、時刻であるサイクル数が5に進む(ステップS1508)。
時刻5においては、ステップS1402からステップS1407の処理は行われない。
時刻5に、IP51−1がIP51−6をあて先としてフリットを送ろうと試みる場合、ルータ52−1の、IP51−1に接続されている入力チャネルに対してフリットが投入される。この場合は、フリット到着時刻管理部503’が予期した入力チャネルにフリットが到着したため、予め行われていた入出力接続関係を用いてクロスバー部510はスイッチングを行う(ステップS1502)。つまり、先のサイクルでの、IP51−1が入力、ルータ52−2が出力となるようなクロスバー部510の設定を用いる。
これにより、SAステージが前倒しされたため、ルータを通過する時間はTf(=1サイクル)、チャネルを通過する時間はTp(=1サイクル)となり、パケットは時刻7にルータ52−2に到着する。クロスバー部510の接続設定が予めなされていない場合は、ルータを通過する時間はTs(=2サイクル)、チャネルを通過する時間はTp(=1サイクル)となり、パケットは時刻8にルータ52−3に到着することになる。
このフリットはフリット到着時刻管理部503’が予期したフリットであったので、ルータ52−1のフリット到着時刻管理部503’の該当エントリについて、送信回数を1減らして1にする。さらに、フリット到着時刻に送信間隔5を足しこんで10とする(ステップS1503、S1505)。
このフリットはフリット到着時刻管理部503’が予期したフリットであったので、フリット到着時刻管理部503’によるスイッチ割当てが正しかったことになり、時刻であるサイクル数が6に進む(ステップS1506、S1508)。
時刻6に、制御パケットがルータ52−2からルータ52−3に到着する。また、ルータ52−3は、制御パケットの内容をフリット到着時刻管理部503’に記録する。記録する内容は、フリット到着時刻が9、入力チャネルがルータ52−2、出力チャネルがルータ52−6、送信回数が2、送信間隔のずれ幅の最大値が2である(ステップS1403)。
ここで、フリット到着時刻は、IP51−1から送信されたフリットがルータ52−3へ到着する時刻であり、制御パケットに記録された開始時刻に、ホップ数2に(Tf+Tp)を乗じたものを加えたものである。
時刻6においては、ステップS1404からステップS1405の処理は行われない。
ルータ52−2において、フリット到着時刻管理部503’はスイッチ割り当て部509に出力チャネルを要求しない(ステップ1406)。従って、スイッチ割当て部509はルータ52−1に接続されている入力チャネルに対し、ルータ52−3に接続されている出力チャネルがつながるように設定する(ステップS1407)。
時刻6においては、ステップS1501からステップS1507の処理は行われない。
送信開始からのサイクル数が7に進む(ステップS1508)。
時刻7においては、ステップS1402からステップS1407の処理は行われない。
時刻7に、フリットがルータ52−2に到着する。フリット到着時刻管理部503’が予期した入力チャネルにフリットが到着したわけではないため、関連技術と同様の方法でルーティングする(ステップS1501、S1509)。直前のサイクルで、直進するように、つまりルータ52−1からルータ52−3へ進むようにクロスバー部510が設定されており、これはこのフリットに対して正しい設定である(ステップS1506)。SAステージが前倒しされたため、フリットは時刻9にルータ52−3に到着する。
時刻であるサイクル数が8に進む(ステップS1508)。
時刻7においては、ステップS1402からステップS1405の処理は行われない。
ルータ52−3において、フリット到着時刻管理部503’のエントリの1つのフリット到着時刻が9であり、次のサイクルであるため、スイッチ割り当て部509に、ルータ52−3のクロスバー部510について、ルータ52−2に接続されている入力チャネルに対して、ルータ52−6に接続されている出力チャネルを要求する(ステップ1406)。
スイッチ割り当て部509は、出力チャネルに対する調停を行う。この場合、要求は1つだけなので、要求を認める。さらに、クロスバー部510の設定を行う。すなわち、ルータ52−2に接続されている入力チャネルに対して、ルータ52−6に接続されている出力チャネルがつながるように設定する(ステップS1407)。
時刻8においては、ステップS1501からステップS1507の処理は行われない。
時刻であるサイクル数が9に進む(ステップS1508)。
時刻9に、制御パケットがルータ52−3からルータ52−6に到着する。制御パケットは送信先のIP51−6に隣接するルータに到着したため、これ以上作業を行わない。また、ルータ52−6は、制御パケットの内容をフリット到着時刻管理部503’に記録する。記録する内容は、フリット到着時刻が11、入力チャネルがルータ52−3、出力チャネルがIP51−6、送信回数が2、送信間隔のずれ幅の最大値が2である(ステップS1403)。フリット到着時刻は、IP51−1から送信されたフリットがルータ52−6へ到着する時刻であり、制御パケットに記録された開始時刻に、ホップ数3に(Tf+Tp)を乗じたものを加えたものである。図20に、各ルータのフリット到着時刻管理部に記録される項目を示す。
時刻9に、ステップS1404はNoである。
時刻9に、ルータ52−1において、フリット到着時刻管理部503’のエントリの1つのフリット到着時刻が10であり、次のサイクルであるため、ルータ52−1のクロスバー部510は、IP51−1が入力、ルータ52−2が出力となるよう調停、設定される(ステップS1406、S1407)。これは、IP51−1からの2回目の送信に相当する。
時刻9に、フリットがルータ52−3に到着する。フリット到着時刻管理部503’が予期した入力チャネルにフリットが到着したため、予め行われていた入出力対応関係割当てを用いてスイッチングを行う(ステップS1501、S1502)。SAステージが前倒しされたため、フリットは時刻9にルータ52−6に到着する。
このフリットはフリット到着時刻管理部503’が予期したフリットであったので、ルータ52−3のフリット到着時刻管理部503’の該当エントリについて、送信回数を1減らして1にする。さらに、フリット到着時刻に送信間隔5を足しこんで12とする(ステップS1503、S1505)。
ルータ52−3のフリット到着時刻管理部503’によるスイッチの割当て、つまり、ルータ52−2からルータ52−6への割当ては正しかったので、時刻であるサイクルが10に進む(ステップS1506、S1508)。
以降の処理の実行は省略しながら説明する。
時刻10に、再び、フリットがIP51−1によりルータ52−1に投入され、時刻12にルータ52−2に到着する。この際に、ルータ52−1のフリット到着時刻管理部503’のエントリの送信回数はゼロに減ぜられ、このエントリは消去される。
時刻10に、ルータ52−6のクロスバー部510がルータ52−3が入力、IP51−6が出力となるよう調停、設定される。時刻11にフリットがルータ52−6に到着し、この設定を用いて、時刻13にIP51−6に到着する。
時刻11に、ルータ52−2のクロスバー部510がルータ52−1が入力、ルータ52−3が出力となるよう設定される。これは、フリット到着時刻管理部503’によるものではなく、出力チャネルの要求がなかったため、直進に設定されたためであることに注意されたい。時刻12に、フリットがルータ52−2に到着し、時刻14にルータ52−3に到着する。
時刻13に、ルータ52−3のクロスバー部510がルータ52−2が入力、ルータ52−6が出力となるよう調停、設定される。時刻14に、フリットがルータ52−3に到着し、時刻16にルータ52−6に到着する。この際に、ルータ52−3のフリット到着時刻管理部503’のエントリの送信回数はゼロに減ぜられ、このエントリは消去される。
時刻15に、ルータ52−6のクロスバー部510がルータ52−3が入力、IP51−6が出力となるよう調停、設定される。時刻16に、フリットがルータ52−6に到着し、時刻18にIP51−6に到着する。この際に、ルータ52−6のフリット到着時刻管理部503’のエントリの送信回数はゼロに減ぜられ、このエントリは消去される。
この一連の動作により、一定間隔の、2回のパケット送信の処理が終了する。
第2の実施の形態の具体例による、第1の実施の形態の具体例による効果以外の効果は以下の通りである。つまり、ルータ52−2のフリット到着時刻管理部が何も記録する必要がないため、フリット到着時刻管理部の記憶容量を削減することができる。
以上説明したように、本実施の形態によれば、ルーティングの処理時間を短縮することができる。
その第1の理由は、一定間隔でパケットを送信する場合、ルータ内部のクロスバーの入出力対応関係割当て処理に必要な情報を制御パケットに載せて、送信元から送信先に送ることにより、経路の途中にあるルータに対して、入出力対応関係割当て処理に必要な情報が知らされるため、ルータ内のクロスバーの入出力対応関係割当てを前倒して処理できる。これによって、パケットが到着してから入出力対応関係割当て処理を行う必要がなくなるためである。
その第2の理由は、一定の時間間隔のパケットの送信について、フリットの到着時刻、入力チャネル、出力チャネル、間隔、回数、間隔のずれ幅の最大 値をルータに記録することにより、従来のパケットのルータ(例えば、非特許文献4)においてある入力チャネルに到着するフリットが要求する出力チャネルの予測が失敗するような場合にも、入力チャネルと出力チャネルの対応関係を正しく把握しルータ内のクロスバーの入出力対応関係割当てを前倒しすることができるためである。
又、本実施の形態によれば、ルーティングの処理時間を短縮する際に、ネットワークの遅延の増大を抑えることができる。
その理由は、従来のパケットのルータ(例えば、非特許文献5)は、データパケットを送信する前に、制御パケットを送信するが、本発明では、一定の時間間隔のパケットの送信ついて、最初に制御パケットを送れば、そのフリットの到着時刻、入力チャネル、出力チャネル、間隔、回数、間隔のずれ幅の最大値はルータに記録され、何度も再利用されるため、毎回制御パケットを送る必要がないため、ネットワークに投入されるパケット数が減少するためである。
更に、本実施の形態によれば、ルーティングの処理時間を短縮するため、一定の時間間隔のパケットの送信について、そのフリットの到着時刻、入力チャネル、出力チャネル、間隔、回数、間隔のずれ幅の最大値をルータに記録する際に、その記録と、記録の管理部の量を削減できる。
その理由は、一定の時間間隔のパケットの送信について、その経路上の全てのルータについて、そのフリットの到着時刻、入力チャネル、出力チャネル、間隔、回数、間隔のずれ幅の最大値を記録するのではなく、経路のうち、ルータに対して直進する部分については、そのルータには記録しないためである。直進部分は、フリット到着時刻管理部は動作せず、スイッチ割当て部が代わりにSAステージの前倒し作業を行うからである。
[その他の実施の形態]
以上、本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。例えば、前記各実施の形態において、バーチャルチャネル割当て部を省略した構成にすることも可能である。
以上、本発明の代表的な実施形態について説明したが、本発明は、本願の請求の範囲によって規定される、その精神または主要な特徴から逸脱することなく、他の種々の形で実施することができる。そのため、前述した各実施形態は単なる例示にすぎず、限定的に解釈されるべきではない。本発明の範囲は特許請求の範囲によって示すものであって、明細書や要約書の記載には拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更はすべて本発明の範囲内のものである。
本願は、2008年4月30日に出願された特願2008−119019号を基礎とする優先権を主張するものである。そして、特願2008−119019号に開示された全ての内容は本願の内容に含まれる。
101 IP
102 ネットワークインターフェイス
103 ルータ
104 チャネル
201 入力チャネル
202 入力ポート部
206 ルーティング計算部
207 バーチャルチャネル割り当て部
208 クレジット入力
209 スイッチ割り当て部
210 クロスバー部
211 出力チャネル
212 IP部
216 クレジット出力
301 入力チャネル
302 入力ポート部
303 予測部
306 ルーティング計算部
307 バーチャルチャネル割り当て部
308 クレジット入力
309 スイッチ割り当て部
310 クロスバー部
311 出力チャネル
312 IP部
316 クレジット出力
401 制御パケット入力チャネル
402 ルーティング計算部
403 出力スケジュール部
404 出力予約テーブル部
405 入力スケジュール部
406 入力予約テーブル部
407 入力チャネル
408 入力ポート部
409 クロスバー部
410 出力チャネル
411 IP部
416 クレジット入力
417 クレジット出力
418 制御パケット出力チャネル
501 入力チャネル
502 入力ポート部
503,503’ フリット到着時刻管理部
506 ルーティング計算部
507 バーチャルチャネル割り当て部
508 クレジット入力
509,509’ スイッチ割り当て部
510 クロスバー部
511 出力チャネル
512 IP部
513 制御パケット投入部
516 クレジット出力
517 スイッチ割当て検証部

Claims (19)

  1. 複数回一定の時間間隔で送信されるパケット、及び該パケットに先行して送信される制御パケットが複数の入力チャネルからそれぞれ入力される入力ポート部と、
    前記入力ポート部の複数の出力と複数の入力チャネルと複数の出力チャネルとを接続するクロスバー部と、
    前記複数回、前記クロスバー部に対して、前記パケットが出力されると予想される出力チャネルを、前記パケットを受信する時刻であるフリット到着時刻の前に要求するフリット到着時刻管理部と、
    該要求に対して前記入力ポート部の出力と前記出力チャネルとの接続関係を設定する入出力接続関係設定処理を前記フリット到着時刻の前に行い、該要求が複数あって輻輳した場合は、前記フリット到着時刻の前に該要求を調停して前記入出力接続関係設定処理を行う、スイッチ割当て部と、
    前記入出力接続関係設定処理が前記パケットの実際のルーティングと一致しているか否かを検証するスイッチ割当て検証部と、
    を備え、
    前記フリット到着時刻管理部は、前記制御パケットから、前記パケットの送信開始時刻と、前記パケットの送信間隔と、を含む制御パケット情報を取得し、前記フリット到着時刻を前記制御パケット情報に基づいて算出し、該フリット到着時刻と、前記制御パケット情報に含まれる前記送信間隔と、前記制御パケットの入力チャネル及び出力チャネルとを記録し、該記録に基づいて前記複数回の前記要求を行い、
    前記クロスバー部は、前記入出力接続関係設定処理の結果を用いて到着したパケットのスイッチングを行うルータ。
  2. 前記フリット到着時刻管理部は、前記制御パケットに記録された前記送信開始時刻に、パケットがルータを通過する最短の時間とパケットがチャネルを通過する時間との和に送信元から前記請求項1に記載のルータにたどり着くまでに経由するルータの数を乗じた値を加えたものを前記フリット到着時刻とすることを特徴とする請求項1に記載のルータ。
  3. 前記フリット到着時刻管理部は、1のルータが動作に要する最小の時間を1サイクルとした場合、現在の時刻が、前記フリット到着時刻よりも1サイクル以内前の段階であって、前記フリット到着時刻に前記送信間隔のずれ幅の最大値を加えたもの以下であるときを前記フリット到着時刻の前であるとする請求項1又は2に記載のルータ。
  4. 前記クロスバー部に対して、前記入力チャネル及び前記入力ポート部に存在するパケットが出力チャネルを要求し、
    前記スイッチ割当て部は、前記入力チャネル及び前記入力ポート部に存在するパケットからの要求と前記フリット到着時刻管理部からの要求との調停を行い、調停された要求に対して前記入力ポート部の出力と前記出力チャネルとの接続関係を設定する入出力接続関係設定処理を、前記フリット到着時刻の前に行うことを特徴とする請求項1乃至3のいずれか1項に記載のルータ。
  5. 前記制御パケットに、前記パケットの送信回数が記録され、
    前記フリット到着時刻管理部は、前記制御パケットに記録されている前記パケットの送信回数を記録し、更に、前記パケットの到着回数が、該送信回数に達した場合に、自身が記録している前記フリット到着時刻の記録のエントリを消去することを特徴とする請求項1乃至4のいずれか1項に記載のルータ。
  6. 前記制御パケットに、前記パケットの送信間隔のずれ幅の最大値が記録され、
    前記フリット到着時刻管理部は、前記フリット到着時刻の記録のうち、該到着時刻に前記送信間隔のずれ幅の最大値を加えた時刻になってもパケットが到着しないエントリが存在する場合、そのエントリを消去することを特徴とする請求項1乃至5のいずれか1項に記載のルータ。
  7. 請求項1乃至6のいずれか1項に記載のルータを用いた情報処理装置であって、
    該ルータと、該ルータに前記パケット及び前記制御パケットを送信するIntellectual Property(IP)とを備えた構成要素が2次元に配され、
    前記IPは、前記パケットを複数回一定の時間間隔で送信するとともに、前記パケットの送信開始時刻と、前記パケットの送信間隔と、を含む制御パケット情報を前記制御パケットに記録するIP部と、前記制御パケットを前記パケットの送信に先行して送信する制御パケット投入部と、を有する情報処理装置。
  8. 前記ルータは、前記パケットの送信元となる前記IPから前記パケットの送信先となる前記IPまでの経路にあり、且つ前記経路を屈曲させるルータであり、該ルータの前記フリット到着時刻管理部が、複数回前記クロスバー部に対して、前記パケットが出力されると予想される出力チャネルを、前記フリット到着時刻の前に要求する請求項7に記載の情報処理装置。
  9. 前記ルータの前記スイッチ割当て部は、前記フリット到着時刻管理部からの前記要求が出力チャネルを要求していない場合、経路がルータに対して直進となるように、入力チャネルに対する出力チャネルの設定を行うことを特徴とする請求項8に記載の情報処理装置。
  10. 前記ルータの前記スイッチ割当て検証部は、経路がルータに対して直進となるように、入力チャネルに対する出力チャネルが設定された場合にも、該設定が実際のルーティングと一致しているか否かを検証することを特徴とする請求項9に記載の情報処理装置。
  11. 送信元がパケットを複数回一定の時間間隔で送信する場合、前記パケットの送信開始時刻と、前記パケットの送信間隔と、を含む制御パケット情報を制御パケットに記録する手順と、
    前記制御パケットを、前記パケットの送信に先行して送信する制御パケット投入手順と、
    ルータが前記パケットの送信先までの経路の途中に存する場合に、前記ルータで、前記制御パケットを受信し、該受信した前記制御パケットから前記制御パケット情報を取得し、前記パケットを最初に受信する時刻であるフリット到着時刻を前記制御パケット情報に基づいて算出し、該フリット到着時刻と、前記制御パケット情報に含まれる前記送信間隔と、前記制御パケットの入力チャネル及び出力チャネルとを記録し、該記録に基づいて、前記ルータのクロスバー部に対して、前記パケットが出力されると予想される出力チャネルを、前記フリット到着時刻の前に要求するフリット到着時刻管理手順と、
    該要求に対して前記入力チャネルと前記出力チャネルとの接続関係を設定する入出力接続関係設定処理を前記フリット到着時刻の前に行い、該要求が複数あって輻輳した場合は、前記フリット到着時刻の前に該要求を調停して前記入出力接続関係設定処理を行う、スイッチ割当て手順と、
    前記入出力接続関係設定処理の結果を用いて、前記クロスバー部が到着したパケットのスイッチングを行う手順と、
    前記入出力接続関係設定処理が前記パケットの実際のルーティングと一致しているか否かを検証するスイッチ割当て検証手順と、
    を備えることを特徴とするパケットのルーティング方法。
  12. 前記フリット到着時刻管理手順は、前記制御パケットに記録された前記送信開始時刻に、パケットがルータを通過する最短の時間とパケットがチャネルを通過する時間との和に送信元から前記パケットの送信先までの経路の途中に存する前記ルータにたどり着くまでに経由するルータの数を乗じた値を加えたものを前記フリット到着時刻とすることを特徴とする請求項11に記載のパケットのルーティング方法。
  13. 前記フリット到着時刻管理手順は、1のルータが動作に要する最小の時間を1サイクルとした場合、現在の時刻が前記フリット到着時刻よりも1サイクル以内前の段階であって、前記フリット到着時刻に前記送信間隔のずれ幅の最大値を加えたもの以下であるときを前記フリット到着時刻の前であるとする請求項11又は12に記載のパケットのルーティング方法。
  14. 前記クロスバー部に対して、前記入力チャネル及び前記入力ポートに存在するパケットが出力チャネルを要求した場合に、
    前記スイッチ割当て手順は、前記入力チャネル及び前記入力ポートに存在するパケットからの要求と前記フリット到着時刻管理部からの要求との調停を行い、調停された要求に対して前記入力チャネルと前記出力チャネルとの接続関係を設定する入出力接続関係設定処理を、前記フリット到着時刻の前に行うことを特徴とする請求項11乃至13のいずれか1項に記載のパケットのルーティング方法。
  15. 前記制御パケット投入手順で、前記制御パケットに、前記パケットの送信回数を記録し、
    前記フリット到着時刻管理手順は、前記制御パケットに記録されているパケットの送信回数を記録し、更に、前記パケットの到着回数が、該送信回数に達した場合に、自身が記録している前記フリット到着時刻の記録のエントリを消去することを特徴とする請求項11乃至14のいずれか1項に記載のパケットのルーティング方法。
  16. 前記制御パケット投入手順は、前記制御パケットに、前記パケットの送信間隔のずれ幅の最大値を記録し、
    前記フリット到着時刻管理手順は、前記フリット到着時刻の記録のうち、該到着時刻に前記送信間隔のずれ幅の最大値を加えた時刻になってもパケットが到着しないエントリが存在する場合、そのエントリを消去することを特徴とする請求項11乃至15のいずれか1項に記載のパケットのルーティング方法。
  17. 前記ルータは、前記パケットの送信元から前記パケットの送信先までの経路にあり、且つ前記経路を屈曲させるルータであり、該ルータで前記フリット到着時刻管理手順が行われることを特徴とする請求項11乃至16のいずれか1項に記載のパケットのルーティング方法。
  18. 前記ルータでの前記スイッチ割当て手順は、前記フリット到着時刻管理手順からの前記要求が出力チャネルを要求していない場合、経路がルータに対して直進となるように、入力チャネルに対する出力チャネルの設定を行うことを特徴とする請求項17に記載のパケットのルーティング方法。
  19. 前記ルータでの前記スイッチ割当て検証手順は、経路がルータに対して直進となるように、入力チャネルに対する出力チャネルが設定された場合にも、該設定が実際のルーティングと一致しているか否かを検証することを特徴とする請求項18に記載のパケットのルーティング方法。
JP2010510160A 2008-04-30 2009-04-30 ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法 Expired - Fee Related JP5387918B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010510160A JP5387918B2 (ja) 2008-04-30 2009-04-30 ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008119019 2008-04-30
JP2008119019 2008-04-30
PCT/JP2009/058455 WO2009133918A1 (ja) 2008-04-30 2009-04-30 ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法
JP2010510160A JP5387918B2 (ja) 2008-04-30 2009-04-30 ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法

Publications (2)

Publication Number Publication Date
JPWO2009133918A1 JPWO2009133918A1 (ja) 2011-09-01
JP5387918B2 true JP5387918B2 (ja) 2014-01-15

Family

ID=41255134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010510160A Expired - Fee Related JP5387918B2 (ja) 2008-04-30 2009-04-30 ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法

Country Status (4)

Country Link
US (1) US8638665B2 (ja)
EP (1) EP2280513B1 (ja)
JP (1) JP5387918B2 (ja)
WO (1) WO2009133918A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5544856B2 (ja) * 2009-12-11 2014-07-09 日本電気株式会社 調停装置、調停方法及びプログラム
CN102893268B (zh) * 2010-05-27 2015-11-25 松下电器产业株式会社 总线控制装置以及向总线控制装置输出指示的控制装置
CN102523764B (zh) 2010-09-03 2015-02-18 松下电器产业株式会社 中继装置
JP2012146201A (ja) 2011-01-13 2012-08-02 Toshiba Corp オンチップルータ及びそれを用いたマルチコアシステム
WO2013014851A1 (ja) * 2011-07-22 2013-01-31 パナソニック株式会社 中継装置
US8711867B2 (en) 2011-08-26 2014-04-29 Sonics, Inc. Credit flow control scheme in a router with flexible link widths utilizing minimal storage
US8798038B2 (en) 2011-08-26 2014-08-05 Sonics, Inc. Efficient header generation in packetized protocols for flexible system on chip architectures
WO2013054497A1 (ja) * 2011-10-14 2013-04-18 パナソニック株式会社 中継器、中継器の制御方法、およびコンピュータプログラム
US9170979B2 (en) * 2012-03-23 2015-10-27 Arm Limited Converging interconnect node controlling operation related to associated future item in dependence upon data predicted based on current transaction data item passing through
KR20140011531A (ko) * 2012-06-29 2014-01-29 한국전자통신연구원 가상 포트를 고려한 패킷 스케줄링 방법 및 그 장치
US10027433B2 (en) * 2013-06-19 2018-07-17 Netspeed Systems Multiple clock domains in NoC
US9548945B2 (en) * 2013-12-27 2017-01-17 Cavium, Inc. Matrix of on-chip routers interconnecting a plurality of processing engines and a method of routing using thereof
US9620213B2 (en) 2013-12-27 2017-04-11 Cavium, Inc. Method and system for reconfigurable parallel lookups using multiple shared memories
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US9379963B2 (en) 2013-12-30 2016-06-28 Cavium, Inc. Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine
US9419912B2 (en) 2014-02-11 2016-08-16 International Business Machines Corporation Selective underflow protection in a network switch
TWI531187B (zh) * 2014-11-24 2016-04-21 財團法人工業技術研究院 晶片上網路之時序功率估算裝置與方法
US10152112B2 (en) 2015-06-10 2018-12-11 Sonics, Inc. Power manager with a power switch arbitrator
CN111182548B (zh) * 2018-11-09 2021-08-31 华为技术有限公司 伪网络设备识别方法及通信装置
CN114448870B (zh) * 2022-01-28 2023-03-03 西安电子科技大学 路由器延时模型、搭建方法及基于其的片上网络路由算法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08251196A (ja) * 1995-03-15 1996-09-27 Toshiba Corp 並列計算機
JP2007500985A (ja) * 2003-05-14 2007-01-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 時分割多重化回路切り換えルータ

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838684A (en) 1996-02-22 1998-11-17 Fujitsu, Ltd. Low latency, high clock frequency plesioasynchronous packet-based crossbar switching chip system and method
US6285679B1 (en) * 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6956861B2 (en) * 2002-04-16 2005-10-18 Interactics Holdings, Llc Controlled shared memory smart switch system
US20050027880A1 (en) * 2003-08-01 2005-02-03 Darel Emmot System and method for routing information in a nodal computer network
US7852836B2 (en) * 2003-11-19 2010-12-14 Cray Inc. Reduced arbitration routing system and method
FR2883117B1 (fr) 2005-03-08 2007-04-27 Commissariat Energie Atomique Architecture de noeud de communication dans un systeme de reseau sur puce globalement asynchrone.
KR100675850B1 (ko) 2005-10-12 2007-02-02 삼성전자주식회사 AXI 프로토콜을 적용한 NoC 시스템
KR101355626B1 (ko) * 2007-07-20 2014-01-27 삼성전자주식회사 네트워크 제어 장치
US7783823B2 (en) * 2007-07-31 2010-08-24 Hewlett-Packard Development Company, L.P. Hardware device data buffer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08251196A (ja) * 1995-03-15 1996-09-27 Toshiba Corp 並列計算機
JP2007500985A (ja) * 2003-05-14 2007-01-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 時分割多重化回路切り換えルータ

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200701313004; 村上 弘和: '通信予測機構を用いた低遅延ネットワークの構成方法と評価' 情報処理学会研究報告 第2007巻 第115号, 20071121, p.27〜p.32, 社団法人情報処理学会 *
JPN6009025337; 村上 弘和: '通信予測機構を用いた低遅延ネットワークの構成方法と評価' 情報処理学会研究報告 第2007巻 第115号, 20071121, p.27〜p.32, 社団法人情報処理学会 *
JPN6013023066; Stuijk, S. et al.: 'Resource-Efficient Routing and Scheduling of Time-Constrained Network-on-Chip Communication' Proceedings of the 9th EUROMICRO Conference on Digital System Design (DSD 2006) , 2006, pp. 45-52 *
JPN7013001791; Shi, Z. et al.: 'Real-Time Communication Analysis for On-Chip Networks with Wormhole Switching' Second ACM/IEEE International Symposium on Networks-on-Chip (NoCS 2008) , 20080407, pp. 161-170 *

Also Published As

Publication number Publication date
US20110026405A1 (en) 2011-02-03
JPWO2009133918A1 (ja) 2011-09-01
EP2280513B1 (en) 2015-07-01
EP2280513A1 (en) 2011-02-02
US8638665B2 (en) 2014-01-28
WO2009133918A1 (ja) 2009-11-05
EP2280513A4 (en) 2014-01-22

Similar Documents

Publication Publication Date Title
JP5387918B2 (ja) ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法
JP6060316B2 (ja) NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体
JP5195933B2 (ja) 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体
US7551564B2 (en) Flow control method and apparatus for single packet arrival on a bidirectional ring interconnect
EP1854254B1 (en) A method of and a system for controlling access to a shared resource
KR20170015320A (ko) 네트워크 온 칩 설계를 위한 트랜잭션 트래픽 스펙
JP4820466B2 (ja) 半導体システム、中継器およびチップ回路
WO2017084331A1 (zh) 互连电路的数据处理装置和方法
JP5965464B2 (ja) バッファを有しないnocのデータ処理方法、及びnoc電子素子
CN108768778B (zh) 一种网络时延计算方法、装置、设备及存储介质
US10599347B2 (en) Information processing system, information processing apparatus, and method for controlling information processing system
Katta et al. SB-Router: A swapped buffer activated low latency network-on-chip router
Wissem et al. A quality of service network on chip based on a new priority arbitration mechanism
US20090161659A1 (en) On-chip apparatus and method of network controlling
KR101373778B1 (ko) 시스템 온 칩의 내부 통신을 위한 네트워크 온 칩 및 데이터 전송 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
JP5556377B2 (ja) 並列計算システム、プロセッサ、ネットワークスイッチ装置、及び通信方法
JP2015069345A (ja) 情報処理装置,データ転送装置,およびデータ転送方法
Singh et al. Design and implementation of network‐on‐chip router using multi‐priority based iterative round‐robin matching with slip
Daf et al. Performance and Evaluation of Loopback Virtual Channel Router with Heterogeneous Router for On-Chip Network
JP5880169B2 (ja) バス回路
Escobar et al. Performance evaluation of a Network on a Chip router using SystemC and TLM 2.0
Lai et al. An accurate and highly-efficient performance evaluation approach based on queuing model for on-chip network
JP2011193258A (ja) 半導体集積回路装置、経路決定回路及び経路決定方法
Oveis-Gharan et al. Packet-based Adaptive Virtual Channel Configuration for NoC Systems
Dai et al. PPS: A Low-Latency and Low-Complexity Switching Architecture Based on Packet Prefetch and Arbitration Prediction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130925

R150 Certificate of patent or registration of utility model

Ref document number: 5387918

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees