JP5083464B2 - ネットワークオンチップとネットワークルーティング方法とシステム - Google Patents

ネットワークオンチップとネットワークルーティング方法とシステム Download PDF

Info

Publication number
JP5083464B2
JP5083464B2 JP2011516016A JP2011516016A JP5083464B2 JP 5083464 B2 JP5083464 B2 JP 5083464B2 JP 2011516016 A JP2011516016 A JP 2011516016A JP 2011516016 A JP2011516016 A JP 2011516016A JP 5083464 B2 JP5083464 B2 JP 5083464B2
Authority
JP
Japan
Prior art keywords
router
routing
packet
main
network
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
JP2011516016A
Other languages
English (en)
Other versions
JPWO2010137572A1 (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 JP2011516016A priority Critical patent/JP5083464B2/ja
Publication of JPWO2010137572A1 publication Critical patent/JPWO2010137572A1/ja
Application granted granted Critical
Publication of JP5083464B2 publication Critical patent/JP5083464B2/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/42Centralised routing

Landscapes

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

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2009−125580号(2009年 5月25日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、半導体集積回路装置とネットワークルーティング方法に関し、特に、複数のIP(Intellectual Property)コアを集積したLSI集積回路(System On a Chip(SoC))における、IPコア間のデータ交信用ネットワークオンチップ(Network on a Chip: NoC)に適用して好適な装置と方法に関する。
従来、複数のIP(Intellectual Property)コアを集積したLSI集積回路(SoC:System On a Chip)において、IPコア間の接続はバスを用いて行っている。例えば、ARM社が提唱するAMBA(ARM社の登録商標)は、このようなバスの業界標準となっている。このAMBAは、コア数の増加、チップの複雑化に対応し、AHB(Advanced High performance Bus)、マルチレイヤAHB、AXI(Advanced eXtensible Interface)というように進化してきた。
しかしながら、バス構成では、配線長が長くなり周波数の向上に対応しづらくなる。また、複数IPからのアクセス競合に対する調停を集中的に行う必要がある。そのため、IP数の変動に対して、バスを作り直す必要が生じることなどの問題が生じている。
これらの問題に対して、現状では、バスを階層的に接続することによって、ローカリティを持たせて対処する方法が、高性能なSoCでは積極的に行われてきた。
一方で、データをパケット化して送ることにより、通信のローカリティを有効に活用しつつ、調停を各ルータに分散させることによってスケーラビリティを確保可能なNoC(Network on Chip)は、米国Stanford大学のDally, W.J.等の以下の非特許文献1で提案され、近年積極的に研究されてきた。実際のチップに採用された例として、TILERA社のTILE64、Intel社の80コアチップ、 CEA−LetiのFAUSTチップ、STMicro社のSTNoC等があげられる。
これらは、基本的に、図15に示すように、ルータ302と通信チャネル305によってネットワークを構成しており、図16に示すような複数フリットから構成されたパケットをこれらのネットワークに流すことによって、交信を実現する。
ここで、各ルータ302は、受け取ったパケットを、送信先のネットワークインタフェース(NIF)に送るために適切な出力ポートに送出する。
このとき、ルータ302内で送信先のアドレスやIDを見た上で、ある一定規則に基づき、次のホップに向けた送出先を決定するルーティング・プロトコル方式と、
送信側のネットワークインタフェースにおいて、送信先までのルーティングを全て決定してしまい、ルーティング情報をパケットに含めるソースルーティング方式と、
が存在する。
<ルーティング・プロトコル方式>
ルーティング・プロトコル方式は、入力チャネルから入ってきたパケットを解析し、アドレスやIDを抽出、この情報を基にルータに備えられているテーブルなどサーチし、当該パケットをどの出力チャネルに出力するかを決定し、その後、該出力チャネルに対しての調停を行い、パケットを出力する。
従って、出力先の決定に、論理的な動作が数ステップ入ることになる。
また、ルーティングを変更する際には、変更に関わる全てのルータにおいてルーティング規則の更新が必要となる。
ルーティングに必要となるステップ数を削減する技術としては、ルーティング計算を一つ前のルータで行う「Next Routing Computation」手法が提案されている。これは、図17を例にとると、ルータR0からルータR1を介してルータR5に至るパケットがあった場合、ルータR1のルーティング計算をルータR0で、ルータR5のルーティング計算をR1で行う手法である。
さらに、仮想的にエクスプレス(Express)チャネルを張る方法や、予測ルーティングを行う方法などが提案されている。例えば、以下のような非特許文献2,3などが、その例である。
非特許文献2の手法では、図17に示すように、いくつかの中継ルータによるルーティング計算や調停などをバイパスする仮想チャネルを張ることによって、中継ルータで必要なパイプライン段数を削減する。バイパス時には、2サイクルでルータを通過する。
図17において、ルータ351は双方向のチャネル352で接続されている。ここで、ルータR1からルータR15への交信が多数存在する場合、仮想エクスプレスチャネル354を定義する。
ルータR2、R7、R11では、このチャネルで到着したパケットのルーティング計算、スイッチ調停などを省くことができる。このように、ルータR1からルータR3へのレイテンシとルータR3からR15へのレイテンシを短縮するものである。
一方、非特許文献3の手法は、到着したパケットに対して、ルーティング計算を行うのと並行して、ある一定の予測ルールに基づき、投機的にパケットの出力方向を予測し、その方向のスイッチ調停、スイッチ通過を行い、出力してしまうことによって、投機が成功した場合には、ルーティング計算のサイクル分のレイテンシ短縮を図るものである。
ルーティング計算の結果、この予測がはずれた場合には、出力ラッチや投機的に出力した方向のルータ内の入力ラッチ、入力データFIFO(First In First Out)に存在する当該パケットのフリットを取り消し、正しい出力方向に対するスイッチ調停、スイッチ通過を再度行う。
<ソースルーティング方式>
ソースルーティング方式では、各ルータにおける出力チャネル情報を、送信側のネットワークインタフェースにおいて、あらかじめパケットに埋め込むことにより、各ルータでは、この情報を抽出するだけでルーティングを完了できる。
例えば、Intel社の80−Tile 1.28TFLOPS Network−on−Chipでは、このソースルーティング方式を採用している(非特許文献4)。図18は、このチップにおけるパケットのフリット0を示している。図18に示すように、このチップでは、出力側ネットワークインタフェースでルータ毎に出力先を示したDID(Destination IDs)361を10ホップ分生成し、パケット内に定義している。これに従って、ルータは出力ポートを決定する。
従って、各ルータは、DIDの値を抽出するだけで、ルーティングが可能である。このように、ソースルーティング方式は、各ルータの構造を簡単化することができる。
TCP/IP(Transport Control Protocol/Internet Protocol)などのコンピュータ間のLAN(Local Area Network)などでも、ソースルーティング方式はオプションとしてサポートされている。
これは、パケットが経由するネットワークの物理的な位置をIPアドレスとしてパケット中に明記しておき、これに従ってパケットをルーティングするものである。これには、ストリクト・ソースルーティング方式とルーズ・ソースルーティング方式の2種類が用意されている。
<ストリクト・ソースルーティング方式>
ストリクト・ソースルーティング方式は、ホップするすべてのネットワーク地点を、送信側のネットワークインタフェースにおいて、パケット中に明記したものであり、明記されていないネットワーク地点に達したパケットは破棄される。
<ルーズ・ソースルーティング方式>
一方、ルーズ・ソースルーティング方式は、一部のネットワーク地点のみをパケット中に明記し、その間はルータによって補完したルーティングを許す方式で、明記されたネットワーク地点以外では、ルーティング・プロトコル(routing protocol)方式によって、各ネットワーク地点でルーティングを行い、パケット転送を行う。
いずれの場合も、指定できるルータの最大ホップ数は9である。これらは、ルータのテストに用いられることが多い。
図19に、このソースルーティングの場合のパケットフォーマットを示す。図19において、オプションタイプ381が指定のオプションの場合、ソースルーティング方式となり、オプション長で指定されたIPアドレス分のソースルーティングが行える。
オプション長382の後は、オプションポインタ383と指定されたオプション長に相当するIPアドレス384が続く。nは最大9であることから、10以上のIPアドレスを指定することはできない。
特許文献1には、送信元と送信先との間のホップ数が大きい大規模のアドホックネットワークにおいて、小さな負荷で経路を修復できる経路修復方法が開示されている。送信元ノードAと送信先ノードKとの間に9個の無線ノードB,C…Jを中継する経路が確立されており、経路上では所定のホップ数ごとに管理ノードA,F,Kが配置されている。無線ノードI,J間の経路が消失すると、これを検知した無線ノードIが送信元方向で直近の管理ノードFを宛先としてRERR(経路無効通知)を送信する。このRERRを受信した管理ノードFは、送信先方向で直近の管理ノード(ここでは、送信先ノードK)を宛先とするRepair_REQ(経路修復要求)を送信して局所的な経路修復を実施し、消失した経路をバイパスする新たな経路を2つの管理ノードF,K間に確立する。特許文献2には、複数のモジュール(IP;A-D、M)を接続し、モジュール(IP;A-D、M)間の通信を可能にする相互接続手段(N)を有する電子装置(システム・オン・チップ)が提供され、通信リソースは、利用可能な通信帯域を分割して共有するタイムスロットに基づく時分割多重アクセスに関し、電子装置は、複数のモジュール(IP;A-D、M)のうち少なくとも1つを相互接続手段(N)に結合する少なくとも1つのネットワークインタフェースを更に有し、ネットワークインタフェース(NI)は、少なくとも1つの更なるネットワークインタフェース(NI)に少なくとも1つの接続を確立するように適合され、少なくとも1つの接続は、少なくとも1つのチャネル(a-d)を有する。少なくとも1つのネットワークインタフェース(NI)は、少なくとも1つのチャネル(a-d)のタイムスロットを予約する少なくとも1つのスロットテーブル(ST1-ST11)を有する。タイムスロットは、同じネットワークインタフェース(NI)に関連するチャネル(a-d)間で共有される構成が開示されている。
特開2008−283260号公報 特表2009−502080号公報
"Route Packets, Not Wires: On−Chip Interconnection Networks" Dally, W.J. Towles, B. Design Automation Conference, 2001. page: 684− 689 " Toward Ideal On−Chip Communication Using Express Virtual Channels", Kumar, A., Li−Shiuan Peh, Kundu, P., Jha, N.K., Micro, IEEE Volume 28, Issue 1, Jan.−Feb. 2008 Page(s):80 − 90 "予測機構を持つルータを用いた低遅延チップ内ネットワークに関する研究"鯉渕道紘 吉永努 村上弘和 松谷宏紀 天野英晴,先進的計算基盤システムシンポジウム SACSIS’08 論文集, pp.393−401, Jun 2008 An 80−Tile 1.28TFLOPS Network−on−Chip in 65nm CMOS Sriram Vangal, Jason Howard, Gregory Ruhl, Saurabh Dighe, Howard Wilson, James Tschanz, David Finan, Priya Iyer, Arvind Singh, Tiju Jacob, Shailendra Jain, Sriram Venkataraman, Yatin Hoskote, Nitin Borkar IEEE International Solid State Circuit Conference 2007, pp98−99
上記特許文献1、2及び非特許文献1〜4の全開示内容はその引用をもって本書に繰込み記載する。
以下に本発明による分析を与える。
ネットワークオンチップ(NoC)は、システムバスをネットワーク構成、パケットベース交信に置き換えることによって、効率化と性能向上を図ることを主眼としている。
しかしながら、従来の技術における各ルータがルーティング計算を行う方式によるルーティングでは、ルーティング計算によって、各ルータの遅延や面積が増加する。具体的には、IDやアドレスからネットワーク出力先を決定するためのテーブルや演算論理が必要となる。
IDが増えた場合には、テーブルの物量やテーブル引きの電力、遅延が増加する。
遅延が増加した場合には、ネットワークの周波数を落としてスループットを落とすか、パイプライン段数を増やす必要が生じる。
パイプライン段数の増加は、ルーティング計算中、パケットを格納するためのバッファの要求量が増すという問題が生じる。
また、ルーティングのレイテンシの増加を抑える各種提案も、ルータの複雑度を増加させ、物量が増えるという問題が生じる。
さらに、これらの方法の場合、障害やネットワーク混雑などの事情でルーティングを変更する場合には、各ルータのテーブル内容、もしくは演算論理を書き換える必要がある。
一方、ソースルーティング方式の場合、ルータの簡単化、高速化は可能であるが、送信側から受信側に至るまでに通過するルータのホップ数が一定でないため、パケット内にルーティング情報を格納する領域を可変長で確保する必要が生じる。
もしくは固定長にした場合、小ホップ数の交信では無駄なフィールドが増えることや、このフィールドを制限する場合には、ホップ数が限られ、スケーラビリティを阻害する。
また、ホップ数が多くなる場合、最初に送信元ネットワークインタフェースでルーティングを計算する計算量が増加し、遅延物量が増加することや、ルート途中で何からの事情が生じた場合に、最初に指定されたルーティングを変更しづらく、動的なルーティングへの適用力が劣る。
したがって、本発明の目的はネットワークオンチップの低レイテンシ化、低コスト化、高信頼化を図る方法、装置、システムを提供することにある。
本発明によれば、複数の情報処理ユニット、記憶ユニット、インタフェースユニットが1又は複数チップに集積され、前記ユニット間をネットワークインタフェース、交信路、ネットワークルータから構成されるネットワークをあわせて集積し、ユニット間の情報をパケットで前記ネットワークを介して交信を行い情報処理を行う情報処理半導体素子であって、ネットワークルータは、メインルータ群と他のルータ群の複数のグループに分けられ、ルータを通る回数であるホップ数が規定の回数以内に受信先に到着できない場合には、メインルータを通り、メインルータを通る毎に、ルータを通る回数をリセットし、前記規定回数を満たすようにルーティングを行う、ネットワークルータが提供される。
本発明によれば、ネットワークオンチップの低レイテンシ化、低コスト化、高信頼化を図ることができる。
本発明の一実施形態のオンチップネットワークを用いたマルチコアSoCの全体ブロック図である。 本発明の一実施形態におけるメインルータのブロック図である。 本発明の一実施形態におけるサブルータのブロック図である。 本発明の一実施形態におけるパケットのフォーマットを示す図である。 本発明の実施の形態におけるB3のネットワークインタフェース出力時のフリット0,1のフォーマットを示す図である。 本発明の実施の形態におけるE3のメインルータ出力時のフリット0のフォーマットを示す図である。 本発明の実施の形態におけるF6のメインルータ出力時のフリット0のフォーマットを示す図である。 本発明の実施の形態におけるパケットのルート情報を格納したフリットのフォーマットを示す図である。 本発明の実施の形態におけるB3のネットワークインタフェース出力時のフリット0のフォーマットを示す図である。 本発明の実施の形態におけるオンチップネットワークを用いたマルチコアSoCの全体構成を示す図である。 本発明の実施の形態におけるB3のネットワークインタフェース出力時のパケットのフォーマットを示す図である。 本発明の実施の形態におけるE3のメインルータ出力時のパケットのフォーマットを示す図である。 本発明の実施の形態におけるF6のメインルータ出力時のパケットのフォーマットを示す図である。 本発明の実施の形態におけるG6のネットワークインタフェースによって生成される応答パケットのフォーマットを示す図である。 ネットワークオンチップを採用したSoCのブロック図である。 ネットワークオンチップにおけるパケットのフォーマットを示す図である。 関連技術のExpress Pathを説明した概念を示す図である。 関連技術のルート情報を示したパケットのフォーマットを示す図である。 関連技術のTCP/IPのソースルーティング時のパケットフォーマット図である。
はじめに、本発明の基本原理を説明し、つづいて具体的な実施例に即して説明する。
本発明においては、NoC中に存在するルータをメインルータとサブルータの2種類に分ける。
ネットワークのパケットは、まず、送信元のネットワークインタフェースにおいて、適切なメインルータまで、又は、近接するネットワークインタフェースが送信先の場合には、それまでのルーティングを、一括して、ソースルーティング方式を取る。
メインルータに届いたパケットは、当該メインルータにおいて、同様に、次のメインルータ、又は、送信先のネットワークインタフェースまでのルーティングを、一括して、ソースルーティング方式によってルーティングする。これらの一連の動作によって、サブルータでは、ネットワークインタフェース又はメインルータが行った部分的なルーティング情報に従って、ルーティングを行う。これにより、サブルータが簡単化され、物量とレイテンシ、消費電力削減が可能になる。
一方、メインルータは、ルーティング計算が若干複雑化するが、どちらにしても自ルータからの出力に関するルート計算を行う必要があるので、計算のケースが増えるのみであり、サブルータの削減分ほどの複雑化は生じない。
また、サブルータネットワーク中のメインルータの比率を下げることによって、全体のコストを下げることが可能である。
本発明においては、NoCルーティングの基本を提案する。
ネットワーク中に、規定ホップ数以内でメインルータから別のメインルータへ到達できるような範囲で、メインルータを配置し、それ以外をサブルータとして配したネットワークトポロジを用意し、パケットは、規定ホップ数以内で、メインルータから次のメインルータまで、又は、受信側ネットワークインタフェースに至る経路を通るように制御されるルーティング方法が提供される。
すなわち、規定ホップ数を超えてメインルータを通らないルーティングは行わないことを意味している。
本発明の第2の側面において、メインルータは、次のメインルータまでの規定ホップ数以内のルーティングを一括して行い、サブルータは、このメインルータが行ったルーティング情報に従って、パケットを処理する。従って、サブルータは、到着したパケットに対して、メインルータが行ったルーティング情報に基づき、ルーティングを行う。サブルータは、主体的に、ルーティングの計算を行う必要はない。
本発明の第3の側面においては、メインルータで行ったサブルータ分のルーティング情報をパケット中の特定フリットに書き込む。サブルータは、この特定フリットを参照することによってルーティングを行う。サブルータも。必要に応じて、この特定フリットのルーティング情報を修正することは可能である。サブルータは、ルーティングの計算を行わない。
本発明の第4の側面においては、後段メインルータのルーティングが、前段のメインルータによってルーティング計算ができる場合には、後段のメインルータは、サブルータと同様に、前段メインルータのルーティング情報を基に、ルーティングを行う。これにより、特にメインルータに接続されるIPが受信先の場合に、ルーティングコストを下げることが可能となる。
本発明において、ホップ数の制限は、パケット中の特定フリットの限定されたデータ領域に書き込めるルーティング情報の制約から生じる。
各サブルータのルーティング情報を固定されたビット数の領域でそのまま表現した場合には、ホップ数の制限はこの固定されたビット数の領域をいくつとれるかで一意に決定される。しかしながら、特に、メッシュ構成を採ったオンチップネットワークでは、パケットの直進が最も多いルーティングとなると予想される。
そこで、本発明の第5、第6の側面においては、このルーティング情報に反復回数という概念を加えることにより、ルーティング情報を圧縮し、到達可能なホップ数を増やし、メインルータにホップする回数を減少させる。
このような工夫を加えた場合でも、ホップ回数の規定により、従来ネットワークオンチップと比べ、メインルータにパケットが集中する可能性がある。従って、交信が集中するIP近傍のメインルータでネットワーク混雑により性能が低下する可能性がある。
そこで、本発明の第7の側面においては、これらの問題に対応するために、交信が集中するIP近傍にメインルータを増やしたり、予備のメインルータとして配置したものを状況に応じて、サブルータやメインルータとして用いて負荷を分散させる仕組みが提供される。
本発明の第8−第10の側面においては、ネットワークの信頼性の向上を図る。本発明におけるオンチップネットワークは、メインルータに、自律的な一定の機能を持たせ、サブルータは、従属的に動作をさせることによって、ネットワーク全体の最適化を図る。
本発明の第8の側面においては、メインルータは、近傍のネットワークの故障状況、混雑状況を把握し、それに応じたルーティングを行う。
また、本発明の第9の側面においては、サブルータ又はリンクの故障を検出した場合には、サブルータは、到着したパケットを、故障検出していない利用可能なチャネルを用いて、パケット内の情報に依らず、メインルータに戻すルーティングを行う。
本発明の第10の側面においては、メインルータは、故障の状況を把握しており、これに基づき回避ルーティングを行う。
また、本発明の第11の側面においては、ネットワーク全体の冗長度を上げることなく、メインルータのハードウェア信頼性をサブルータよりも向上させてネットワーク全体の信頼性を保つ。本発明の第11の側面においては、サブルータに対するルーティング情報を、メインルータを通る毎にパケットにフリットを追加する。これにより、送信側ネットワークインタフェースからパケットが送出される時点では、最初のメインルータに至るまでのルーティング情報のみを保持しているが、受信先ネットワークインタフェースに到達する際には、送信側から受信先までのすべてのルーティング情報を保持することになり、それに応じてパケットのフリット数を増加させるものである。
これにより、故障を検出した場合の再送処理、データ受信の確認処理、データリード要求に対する応答処理の際に、このルーティング情報を基に、送信側にパケットを新たなルーティング計算を行うことなく、戻すことが可能になる。
このようなルーティングは、すべてのパケットに対して行うことも可能であるし、必要性の高い一部のパケットに対してのみ行うことも可能である。
また、送信側にパケットを戻す際には、本発明では、メインルータもサブルータ同様に自律的なルーティングを行わずにパケット転送を行うことになる。
<実施形態1>
本発明の一実施形態について図面を参照して詳細に説明する。図1は、本発明の一つの実施形態を適用したマルチコアSoC全体の構成を示すである。本実施形態では、2次元メッシュ構造のオンチップネットワーク構成を採っている。図1において、マルチコアSoC10は、複数のIP(Intellectual Property)コア1を持つ。各々のIPコア1は、各々ネットワークインタフェース2を介し、通信チャネル5に接続される。通信チャネル5は、これらのネットワークインタフェース2と、メインルータ4又はサブルータ3との接続、交信を行うためのものである。メインルータ4とサブルータ3はそれぞれ一定の割合でマルチコアSoC10上に配置される。
図2は、図1のメインルータ4の構成を示す図である。図2を参照すると、メインルータは、NESWの4方向とメインルータ自身が直接接続しているIP(Intellectual Property)からの入力信号を受ける入力ラッチ21n、21e、21s、21w、21iと、
送り先からルートを計算するルート計算部22n、22e、22s、22w、22iと、
ルート計算の結果に基づいてルーティング・フリットを生成するルーティングフリット生成部23n、23e、23s、23w、23iと、
ルーティングフリット生成部23n、23e、23s、23w、23iの結果と入力ラッチ21n、21e、21s、21w、21iからの直接の情報との一方をそれぞれ選択するセレクタ24n、24e、24s、24w、24iと、
セレクタ24n、24e、24s、24w、24iでの選択結果をそれぞれ蓄える入力FIFO(First In First OUT:先入れ先出し型記憶装置)25n、25e、25s、25w、25iと、
各入力信号の出力先をアービタ27で調停し、各々のセレクタ28n、28e、28s、28w、28iによって、いずれか方向の入力FIFO25n、25e、25s、25w、25iからの出力を選択するクロスバスイッチ26と、
クロスバスイッチ26のセレクタ28n、28e、28s、28w、28iによる選択結果をそれぞれラッチする出力バッファ29n、29e、29s、29w、29iと、
を備え、出力バッファ29n、29e、29s、29w、29iでのラッチ結果が出力される。
図3は、図1のサブルータ3の構成を示す図である。図3を参照すると、サブルータはルーティングを行う機構を保持していないので、図2のメインルータ4に比して大幅に簡単化される。すなわち、入力データは直接入力FIFO45n、45e、45s、45w、45iに格納された上で、クロスバスイッチ46に至る。クロスバスイッチ46は、各入力信号の出力先をアービタ47で調停し、各々のセレクタ48n、48e、48s、48w、48iによって、いずれか方向の入力FIFO45からの出力を選択する。この選択結果を出力バッファ49n、49e、49s、49w、49iによってラッチされ、その後出力される。
図4は、本実施形態におけるパケットのフォーマットの一例を示している。図4を参照すると、パケットは、フリット0からフリット6を含む。各フリットは、サイドバンド82とパケットボディ86を含む。サイドバンド82は、パケットボディ86の属性を示し、有効ビット83、先頭ビット84、終端ビット85を含み、それぞれフリットデータが有効か、パケットの先頭フリットか、終端フリットかを示している。パケットボディ86は、フリット毎に、データの意味が異なっている。
本実施形態では、フリット0は、ソースルーティングのための複数のルート情報87(ルート情報1〜4)とそれに関わる制御情報88を含む。
フリット1は、パケット全体のフリット長89、ターゲットIPの位置情報90、それらに関わる制御情報91を含む。
フリット2は、このパケットのアクセス属性92とアクセスアドレス93を含む。
フリット3からフリット6は、データ94が格納されている。
ルート情報87は、それぞれ、サブルータ5に入ったときに、当該パケットをどの方向に出力するかを指示したものである。
本実施例では、ルート情報1からルート情報4までの4個の情報を格納できることから、メインルータ又は目的地までに通るサブルータのホップ数は最大4となる。
また、複数のルート情報87のうち、どれを参照すべきかのポインタ情報が制御情報88に格納されている。
アクセス属性92は、リード要求、リード応答、ライト要求等の属性があげられる。
以下、パケットの例を時間順に示して、本実施形態の動作を説明する。ここでは、図1のB3に位置するIPコア1から、G6に位置するIPコア1へパケットを送る場合について説明する。
最初に、B3側のIPに接続されているネットワークインタフェース2は、途中のホップ数4以内で目的地へのルーティング上ふさわしいメインルータまでのルーティングを行う。
本実施例では、4ホップ以内で目的のIPコアに到達できないことから、E3に位置するメインルータ、又は、C5に位置するメインルータに送ることとなる。ここでは、E3に送るものとする。その場合、B3のネットワークインタフェース2出力時点におけるパケットのフリット0、フリット1は、図5に示したようになる。
すなわち、図5において、図4のルート情報1〜4(87)は、それぞれ101〜104に格納され、ルート情報101〜103がE方向、ルート情報104は有効な値でないため、Invalid(無効)となる。
また、図4の制御情報88は、105で3となり、有効なデータが3個入っており、次にルート情報103を参照すべきであるということを示している。
また、ターゲットIPの位置が107に「G6」が格納され、フリット長106に8が格納されている。
このパケットは、B3のサブルータ3で、制御情報105が3であるため、ルート情報103を参照し、E側、すなわちC3側に出力される。この出力時点で、制御情報105は、B3のサブルータ3で1減算され、2とする。
C3のサブルータでは、同様に制御情報105が2であるため、ルート情報102を参照、E側すなわちD3に出力され、制御情報105はさらに1減算され1となる。
D3でも同様で、制御情報は0となった上で、E3に位置するメインルータ4に本パケットは到着する。
E3に位置するメインルータ4において、ルート計算部22wは、フリット1のターゲット位置情報90が108に示されるように、G6であることをデコードし、さらにG6には、ホップ数4以内で到達できないと判断する。
従って、最も近いF6のメインルータまでのルーティングを行う。
この場合、E3のメインルータ出力はE方向、すなわちF3となり、その後は。S方向に3ホップ進むため、パケット0は、図6に示されたように置き換えられる。すなわち、ルート情報111〜113がS方向、ルート情報114は有効な値でないため、Invalidとなる。
また、制御情報88(図4参照)は、115で3となり、ルート情報113をポインタとして示している。このフリットは、ルーティングフリット生成部23w(図2参照)で生成される。
これにより、先ほどの動作と同じように、F3、F4、F5のサブルータ3を経由して、F6のメインルータに至る。
F6に位置するメインルータ4において、ルート計算部22nは、フリット1のターゲット位置情報90(図4参照)が108に示されるようにG6であることをデコードし、さらに、G6にはホップ数4以内で到達できると判断する。
従って、ターゲット位置G6までのルーティングを行い、この場合、F6のメインルータ出力はE方向、すなわちG6となり、パケット0は、図7のように置き換えられる。
すなわち、ルート情報121には、IPコアへの取り込みということが示され、ルート情報122〜124は有効な値でないため、Invalidとなる。
また、制御情報88(図4参照)は、125で1となり、ルート情報121をポインタとして示している。このフリットは、ルーティングフリット生成部23n(図2参照)で生成される。
これにより、G6のサブルータ3は取り込んだパケットのルート情報121を基に、当該パケットをG6のIPコア1に送ることができる。以上のようなルーティングによって、B3からG6へのデータの交信が可能になることがわかる。
このとき、実際のルーティング計算を行ったのは、B3のネットワークインタフェースとE3、F6のメインルータ4だけであり、B3、C3、D3、F3、F4、F5、G6のサブルータ3では、フリット0のルート情報87のみを参照して、ルーティングを行っている。このため、ルータの簡単化とルータを通過する遅延の短縮が可能である。
メインルータ4におけるルーティング計算は、ターゲットIP位置情報90からメインルータ4の座標をX軸、Y軸それぞれ減算した絶対値を加算する。この加算結果が最短のホップ数となるので、この加算結果が規定値を超えていないかどうかを判断する。該加算結果が規定値を超えていない場合には、この受信先までの各サブルータのルーティング情報をフリット0のルート情報87に書き込む。
該加算結果が規定値を超えている場合には、最もその受信先に近いメインルータを到達可能なメインルータ群から一つ選択し、このメインルータまでのサブルータのルーティング情報をフリット0のルート情報87に書き込むことによって実現される。
図5から図7の例では、サブルータのルーティング情報のみを、フリット0のルート情報87のフィールドに書き込んでいるが、メインルータの出力方向も同様に書き込む仕様とすることも可能である。この場合、メインルータから次のメインルータ又は受信先までのルーティング情報が、完全な形でフリット0に残ることになる。
また、メインルータ4において、パケットが到着した際に、制御情報88(図4参照)を読み取り、0の値となっていない場合には、前段のメインルータ4で行ったルーティングが終わっていないことを判断できるため、当該メインルータ4において自律的なルーティングを行わないと判断し、フリット0中のルート情報87を基に、ルーティングを行い、隣接するメインルータ4又はサブルータ3にパケットを転送する。
この判断論理を加えることにより、オンチップネットワーク中のすべてのメインルータ4で自律的なルーティング計算を行う必要がなくなるため、メインルータ4の負荷を軽減することが可能である。
しかしながら、メインルータ4は自律的なルーティングを行う能力を備えているため、当該メインルータ4を含んだルーティングが行われており、自律的なルーティングを行う必要がない場合においても、ルート情報87(図4参照)を破棄し、再度ルーティングを行い、あらたなルート情報87を書き込んだ上でパケットを送出することも可能である。
一方で、2次元メッシュやそれに準じたネットワークトポロジを採ったオンチップネットワークでは、パケットは直進する確率が高くなる。このため、その特性を活かして、同一方向への転送回数を反復数としてルート情報に加えることにより、よりホップ数の多いルーティング情報を限られたフリットの領域に記すことが可能である。請求項5、6はこのような考え方に基づいたものである。
図8に、このような情報を記したフリット0の例を示す。図8において、ルート情報137と制御情報138は、図4で示したルート情報87と制御情報88と同様であり、それぞれルータからどの方向へ出力するかという情報と、現在どの部分のルーティングまで完了しているかのポインタを示すものである。ここに、反復回数情報139を加える。
反復回数情報139は、それぞれのルート情報137が何回繰り返されるかを示したものである。それぞれ、現在、何回反復したかの情報は、反復回数情報139をサブルータで更新してもよいし、制御情報138中のポインタに反復回数を含めた情報を持たせることも可能である。
図9は、図1のB3に位置するIPコア1から、G6に位置するIPコア1への書き込みのパケットを送る場合に、本発明を適用した場合の、B3側のIPに接続されているネットワークインタフェース2が出力するパケットのフリット0を示したものである。
本実施例では、図1における、F6に位置するメインルータ4までのルーティングをB3のネットワークインタフェース2が行っており、先に示した例と異なり、E3に位置するメインルータ4は、請求項4の発明に従ってサブルータと同様で自律的なルーティングを行わないものとしている。
図9において、フリット0は、B3を出た後E方向に4ホップ、S方向に3ホップ進んでF6のメインルータ4に至るとしており、ホップ数の合計7が制御情報146に書き込まれている。進む方向はこの2種であるため、ルート情報3、反復情報3の144、145エントリはそれぞれInvalidとされる。一方、まず、E方向へ4ホップ進むので、ルート情報2の142はE、反復情報2の143は4とされる。
これにより、B3、C3、D3、E3、F3、F4、F5の各ルータは、制御情報146を1減算しながら、当該パケットをF6のメインルータ4に転送する。
F6のメインルータ4は、到着したパケットの制御情報146が0であるため、ルーティングを行い、図7と同様のフリット0を生成し、E方向へパケットを送出する。これによって、パケットを所望のIPへ転送することができる。
E3のメインルータ4通過時に、例えばF3のルータやチャネルに故障や混在が生じている場合には、E3のメインルータ4は新たなルーティング計算を行い、その結果をフリット0に書き込んで別のルートで転送を行っても良いことは勿論である。
フリットに書き込むルート情報のビットフィールドの制限から、整数の一意の値でホップ数を制限していたが、このようにルート情報に反復回数などの概念を加えると、高い反復回数ではホップ数の制限を緩和することが可能になる。このため、ホップ数の上限を、ある一定のルート情報フィールドおよび反復回数フィールドに入る範囲という状態することもできる。それによっても、ある程度の頻度でメインルータ4を通るルーティングをすることによって、故障、混雑を回避できる性質を残すことができる。
ここでは、反復数とルート情報フィールドとを明確に分離したが、さらに圧縮率を高めた方法でルート情報を特定フリットに書き込んでもよい。
本発明における、ルーティング手法を用いた場合には、サブルータ3のハードウェアコストや電力、レイテンシを短縮することが可能になるが、メインルータ4を経由するようなルーティングを行うために、メインルータ4にアクセスが集中しやすくなる傾向が生じる。
本発明においては、メインルータ4とサブルータ3の配置分けは、ホップ数の上限以内に必ずメインルータ4を配置し、それ以外は、自由に、メインルータ4とサブルータ3を配置できる。従って、トラフィックが集中しそうなIPコア1が存在する場合、IPコア1の周辺にメインルータ4を集中的に配置して、特定のメインルータ4へのアクセスを緩和することも可能である。
図10は、マルチコアSoC全体構成を示す図である。図10のネットワークは、図1と同様であるが、トラフィックの混雑するIPコア151がD2の位置に存在する。そのため、近傍のB2、E3などのメインルータ154への負荷が集中する可能性がある。それを回避するために、予備のメインルータ156を、B3、D4、E1、F2に配置している。
これらの予備のメインルータ156は、通常は、サブルータ153と同様に動作する。すわなち、予備のメインルータ156までのルーティング情報を付加したパケットを、他のメインルータ154やネットワークインタフェース153は生成しないため、自律的なルーティングを行わないものである。
しかしながら、D2に位置するIPコア151へのアクセスが集中し、B2、E3に位置するメインルータ154へのチャネル155が混雑した場合には、その情報がB3、D4、E1、F2に配置している予備のメインルータ156に伝えられる。この場合、これらの予備のメインルータ156は、通過するパケットを、予備のメインルータ156内で再ルーティングして、B2、E3に位置するメインルータ4を通らずに、D2へ至るようにパケットを再ルーティングする。これにより、B2、E3のメインルータ4の負荷を軽減することが可能になる。
このような負荷分散や故障回避の仕組みのために、本発明(請求項8)では、近傍のリンク、サブルータの混雑状況を把握する手段を備える。例えば、メインルータ4はリンクにおけるパケットの通過率、サブルータ3の各出力チャネルのパケット競合率、動作異常時にはその情報などを、各サブルータに最も近いメインルータ4との間の専用信号線やサブルータ3からメインルータ4への制御用パケットを用いて収集する。
これらの情報を基にメインルータ4は、近傍のパケット混雑状況や故障状況を把握し、混雑を避けるルーティングを、到着したパケットに対して行う。
また、本発明(請求項4)によって、自律的にルーティングする必要のないパケットがメインルータ4又は予備のメインルータ6に到着した場合でも、このような状況の場合には、ルート情報87を破棄し、再度故障や混雑を回避したルーティングを行い、あらたなルート情報87を書き込んだ上でパケットを送出することも可能である。
また、サブルータ3が故障した場合、自律的なルーティング能力を具備していないため、利用可能なチャネルの中からどこにパケットを送出すればよいかを判断することができない。
従って、本発明(請求項9)におけるサブルータ3は、故障を検出した際には、利用可能なチャネルの中から、近傍のメインルータ4に最もホップ数が近く到達できるルートを選択し、フリット0の制御情報88を0として送出する。
このようなパケットを受け取るルータがメインルータ4の場合には、そのままターゲットIP位置情報90で再度ルーティングを行う。
一方、サブルータ3の場合には、前段のサブルータと同様に、利用可能なチャネルの中から、近傍のメインルータ4に最もホップ数が近く到達できるルートを選択し、フリット0の制御情報88を0として送出する。この処理を繰り返すことによりメインルータ4に到達し、再度正しいルーティング情報によりパケットの伝送を再開可能である。
これにより、サブルータ3はほとんどハードウェア複雑度を上昇することなく、ネットワークの信頼性を向上させることができる。
一方で、メインルータ4は自律的な動作を求められるので、第10発明で記したように、メインルータ4には、エラーに備えた冗長論理、又はエラー訂正検出機能を備えることにより、第9発明と組み合わせて、オンチップネットワーク全体の信頼性を向上させることも可能である。
最後に本発明(請求項11)を説明する。今まで説明してきた発明では、ルート情報は、メインルータ4又はネットワークインタフェース2が生成し、メインルータ4は、到着したパケットが保持する、当該メインルータまでのルート情報をフリットから削除し、新たなルート情報を同一のフリット、本実施の形態では、フリット0に書き込んで、パケットの転送を行っていた。
この方法では、パケット長、すなわち1パケットが持つフリット数が送信元から受信先まで変化せず、ソースルーティング方式の問題の一つであった、ルーティングのホップ数が増加するとパケット長が増えて、また送信側がルーティングを行うコストが大きくなるという問題を解決可能である。
しかしながら、例えば、リード要求のようなパケットは、送信元のIPコアに向けて、要求を受け取ったIPコアが、データを応答する必要がある。
また、それ以外にも受領通知や、エラー発生時に送信元のIPコアに向けて応答パケットを送り返す必要が生じることがある。ルート情報を送信元からすべて保持しておけば、応答パケットでは、メインルータ4又はネットワークインタフェース2はルーティング計算を省くことが可能となる。
本発明(請求項11)では、メインルータ4でルーティングを行うたびにルート情報が入ったフリットを追加してゆくことにより、送信元からのルート情報をすべてパケット内に維持する方法を提案する。
図11は、図1のB3に位置するIPコア1から、G6に位置するIPコア1へパケットを送る場合の、B3に位置するネットワークインタフェース2の送出時点でのパケット201の構成を示している。ここでは、ルート情報207、制御情報208などに格納されているデータは、図6と同様である、ネットワークインタフェース2の行う処理は同等である。
当該パケット201が、E3に位置するメインルータ4に到着した際、同様にルーティングを行うが、図12に示したように、図11の時点のフリット0がフリット2に移され、制御情報212は図12に示したように過去のルーティングのログである旨のフラグがセットされる。
また、パケット201のフリット長がのびるため、フリット長ビット209は1加算され、8となる。また、新たに追加されるフリット0では、ルート情報に207に本メインルータ4からの出力チャネルも書き加えられるため、SEEEという値が格納される。
同様に、F6に位置するメインルータ4では、図13に示すように、フリット2がフリット3に、フリット0がフリット2にそれぞれ移動され、新たなフリット0を加える、フリット長209はさらに1加算され9となる。
これにより、当該パケットがG6に到達した時点では、B3までのすべてのルーティング情報がフリットに記載されていることになる。
その後、G6からB3へ応答パケットを送る場合には、図14に示したように、受け取ったルーティング情報の方向と順序を逆にして制御情報フィールド212をルーティング予告として、折り返す。これにより、応答パケットはルーティング計算を行うことなく、パケットをB3に位置するIPコア1まで送り返すことが可能になる。
もちろん、このような、ルート情報をパケットに残すルーティングは特定属性のパケット転送のみに行うことも可能である。
以下に本実施形態の作用効果を説明する。
メインルータによって、複数ルータのルーティング計算を一括して行い、他のサブルータはそれに従ってパケット転送を行うことになるので、サブルータの簡単化を図ることができる。全体として、ネットワークレイテンシの短縮と面積コスト、電力コストの削減が可能になる。
また、ソースルーティング方式の欠点であったスケーラビリティの問題と、ローカルに生じた不具合、混雑への対応が容易にできるようになり、ネットワークの高信頼化を図ることができる。
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 IPコア
2 ネットワークインタフェース
3 サブルータ
4 メインルータ
5 チャネル
10 マルチコアSoC(System on a Chip)
21 入力ラッチ
22 ルート計算部
23 ルーティングフリット生成部
24 セレクタ
25 入力FIFO(First In First Out)バッファ
26 クロスバスイッチ
27 アービタ
28 セレクタ
29 出力バッファ
45 入力FIFO(First In First Out)バッファ
46 クロスバスイッチ
47 アービタ
48 セレクタ
49 出力バッファ
81 パケット
82 サイドバンド属性信号
83 有効ビット
84 先頭ビット
85 終端ビット
86 パケットボディ
87 ルート情報フィールド
88 制御情報フィールド
89 フリット長フィールド
90 ターゲットIP位置情報フィールド
91 制御情報フィールド
92 アクセス属性フィールド
93 アクセスアドレスフィールド
94 データフィールド
101 ルート情報フィールド1
102 ルート情報フィールド2
103 ルート情報フィールド3
104 ルート情報フィールド4
105 制御情報フィールド
106 フリット長フィールド
107 ターゲットIP位置情報フィールド
108 制御情報フィールド
111 ルート情報フィールド1
112 ルート情報フィールド2
113 ルート情報フィールド3
114 ルート情報フィールド4
115 制御情報フィールド
121 ルート情報フィールド1
122 ルート情報フィールド2
123 ルート情報フィールド3
124 ルート情報フィールド4
125 制御情報フィールド
137 ルート情報フィールド
138 制御情報フィールド
139 反復回数フィールド
140 ルート情報フィールド
141 反復回数フィールド
142 ルート情報フィールド
143 反復回数フィールド
144 ルート情報フィールド
145 反復回数フィールド
146 制御情報フィールド
151 IPコア
152 ネットワークインタフェース
153 サブルータ
154 メインルータ
155 チャネル
156 予備のメインルータ
160 マルチコアSoC(System on a Chip)
201 パケット
202 サイドバンド属性信号
203 有効ビット
204 先頭ビット
205 終端ビット
206 パケットボディ
207 ルート情報フィールド
208 制御情報フィールド
209 フリット長フィールド
210 ターゲットIP位置情報フィールド
211 制御情報フィールド
212 制御情報フィールド
301 マルチコアSoC(System on a Chip)
302 ルータ
303 IPコア
304 ネットワークインタフェース
305 チャネル
321 パケットボディ信号
322 サイドバンド属性信号
323 ターゲットIP位置情報
324 フリット長
325 制御情報
326 アクセスアドレス
327 アクセス属性など
328 データ
351 ルータ
352 通信チャネル
353 交信例に用いられる通信チャネル
354 交信例に用いられる仮想Expressチャネル
361 DID(Destination IDs)
362 Chained Header
381 オプションタイプフィールド
382 オプション長フィールド
383 ポインタフィールド
384 IPアドレスフィールド

Claims (36)

  1. 複数の情報処理ユニット又は記憶ユニット、インタフェースユニットが1又は複数チップに集積され、前記ユニット間を接続するネットワークであって、ネットワークインタフェース、交信路、ネットワークルータから構成されるネットワークをあわせて1又は複数チップに集積し、
    前記ユニット間の情報をパケットにて前記ネットワークを介して交信し情報処理を行う半導体装置において、
    ネットワークルータを、メインルータ群と他のルータ群の複数のグループに分け、
    前記ルータを通る回数であるホップ数が規定の回数以内に受信先に到着できない場合には、前記メインルータを通り、前記メインルータを通る毎に、ルータを通る回数をリセットし、前記規定回数を満たすようにルーティングを行う、半導体装置。
  2. 前記メインルータは、ルーティングを計算する手段を備え、
    前記メインルータと、前記メインルータ又は前記ネットワークインタフェースがルーティングした情報に従ってルーティングを行うサブルータと、
    を備えている、請求項1記載の半導体装置。
  3. 前記メインルータは、
    パケットから、データの受信先を示すID又はアドレスから、パケットの前記メインルータからの出力先のルーティングと、前記規定回数以内のサブルータのルーティングを行う手段を備え、
    前記サブルータ分のルーティング情報を、パケット中の前記メインルータに到達するためのルート情報を記したフリットを更新して書き込み、対応するルータに対して、パケットを送出し、
    前記パケットを受信したサブルータは、前記ルーティング情報に従って、ルーティングを行い、前記ルーティング情報を更新する、請求項1記載の半導体装置。
  4. 前記メインルータは、
    規定回数以内の前段に通った別のメインルータ、又は、送信側のネットワークインタフェースによってルーティングを決定されていた場合、自律的にルーティングを行わず、前段のメインルータが指定したルーティングに従ってパケットをルーティングする、請求項1記載の半導体装置。
  5. 前記メインルータは、
    前記サブルータのルーティングを行う手段を備え、
    サブルーティング情報をフリットに圧縮エンコードして格納し、
    前記サブルータは圧縮エンコードした前記情報を伸張して得た情報に従ってルーティングを行う、請求項2記載の半導体装置。
  6. 規定のフリットに圧縮して格納できるルーティング情報によって決定されるホップ数までサブルータで連続してホップすることが許容され、
    ルーティング到達場所へ至るルーティングに対する圧縮率によって規定ホップ回数が異なる、請求項5記載の半導体装置。
  7. あらかじめネットワークの混雑が予想されるIPに接続されるルータおよびその近傍に、前記メインルータを、他のネットワークルータの前記メインルータの割合よりも多く配置する、ことを特徴とする請求項1記載の半導体装置。
  8. 前記メインルータは、周囲のリンク、前記サブルータの混雑および故障を把握する手段を備え、混雑ないし故障を回避するように前記サブルータのルーティングを行う、請求項2記載の半導体装置。
  9. 故障が生じた前記サブルータは、前記ルータ内の利用可能なリソースを使用し、到着したパケットを近傍のメインルータに戻す制御を行う請求項2記載の半導体装置。
  10. 前記メインルータには、冗長論理、エラー検出訂正機能を備え、
    リンク又は前記サブルータで発生した故障に対して、パケットが前記メインルータに到着した時点で訂正を行うと共に、メインルータが故障した場合に、前記冗長論理によって回復する、請求項2記載の半導体装置。
  11. 前記メインルータが行ったルーティング情報を、パケット中の前記メインルータに到達するためのルート上に記したフリットを更新して書き込むと共に、前記書き換え前のフリット情報を、パケットの別の位置に移動、追記することにより、前記パケットの送信元からのルート情報を、パケット中に保持する、請求項1記載の半導体装置。
  12. 請求項1乃至11のいずれか1項に記載の半導体装置をオンチップで備えたネットワークオンチップ装置。
  13. 複数の情報処理ユニット又は記憶ユニット、インタフェースユニットが1又は複数チップに集積され、前記ユニット間を接続するネットワークであって、ネットワークインタフェース、交信路、ネットワークルータから構成されるネットワークをあわせて集積し、
    ユニット間の情報をパケットにて前記ネットワークを介して交信し情報処理を行い、
    ネットワークルータは、メインルータ群と他のルータ群の複数のグループに分けられ、
    ルータを通る回数であるホップ数が規定の回数以内に受信先に到着できない場合には、前記メインルータを通り、
    前記メインルータを通る毎に、ルータを通る回数をリセットし、前記規定回数を満たすようにルーティングを行う、ネットワークルーティング方法。
  14. 前記メインルータは、ルーティングを計算し、
    前記メインルータ又は前記ネットワークインタフェースがルーティングした情報に従って、ルーティングを行うサブルータと、
    を備えている、請求項13記載のネットワークルーティング方法。
  15. 前記メインルータは、
    パケットから、データの受信先を示すID又はアドレスから、パケットの前記メインルータからの出力先のルーティングと、前記規定回数以内のサブルータのルーティングを行い、
    前記サブルータ分のルーティング情報を、パケット中の前記メインルータに到達するためのルート情報を記したフリットを更新して書き込み、対応するルータに対して、パケットを送出し、
    前記パケットを受信したサブルータは、前記ルーティング情報に従って、ルーティングを行い、前記ルーティング情報を更新する、請求項13記載のネットワークルーティング方法。
  16. 前記メインルータは、
    規定回数以内の前段に通った別のメインルータ、又は、送信側のネットワークインタフェースによってルーティングを決定されていた場合、自律的にルーティングを行わず、前段のメインルータが指定したルーティングに従ってパケットをルーティングする、請求項13記載のネットワークルーティング方法。
  17. 前記メインルータは、
    前記サブルータのルーティングを行い、
    サブルーティング情報をフリットに圧縮エンコードして格納し、
    前記サブルータは圧縮エンコードした前記情報を伸張して得た情報に従ってルーティングを行う、請求項14記載のネットワークルーティング方法。
  18. 規定のフリットに圧縮して格納できるルーティング情報によって決定されるホップ数まで前記サブルータで連続してホップすることが許容され、
    ルーティング到達場所へ至るルーティングに対する圧縮率によって規定ホップ回数が異なる、請求項17記載のネットワークルーティング方法。
  19. あらかじめネットワークの混雑が予想されるIPに接続されるルータおよびその近傍に、前記メインルータを、他のネットワークルータの前記メインルータの割合よりも多く配置する、ことを特徴とする請求項13記載のネットワークルーティング方法。
  20. 前記メインルータは、周囲のリンク、前記サブルータの混雑および故障を把握し、混雑ないし故障を回避するように前記サブルータのルーティングを行う、請求項14記載のネットワークルーティング方法。
  21. 故障が生じた前記サブルータは、前記ルータ内の利用可能なリソースを使用し、到着したパケットを近傍の前記メインルータに戻す制御を行う請求項14記載のネットワークルーティング方法。
  22. 前記メインルータには、冗長論理、エラー検出訂正機能を備え、
    リンク又は前記サブルータで発生した故障に対して、パケットが前記メインルータに到着した時点で訂正を行うと共に、前記メインルータが故障した場合に、前記冗長論理によって回復する、請求項14記載のネットワークルーティング方法。
  23. 前記メインルータが行ったルーティング情報を、パケット中の前記メインルータに到達するためのルート情報を記したフリットを更新して書き込むと共に、前記書き換え前のフリット情報を、パケットの別の位置に移動、追記することにより、前記パケットの送信元からのルート情報を、パケット中に保持する、請求項13記載のネットワークルーティング方法。
  24. 複数の情報処理ユニット又は記憶ユニット、インタフェースユニットのユニット間を接続するネットワークであって、ネットワークインタフェース、交信路、ネットワークルータから構成されるネットワークを備え、前記ユニット間の情報をパケットにて前記ネットワークを介して交信し情報処理を行うネットワークシステムであって、
    ネットワークルータを、メインルータ群と他のルータ群の複数のグループに分け、
    前記ルータを通る回数であるホップ数が規定の回数以内に受信先に到着できない場合には、前記メインルータを通り、前記メインルータを通る毎に、ルータを通る回数をリセットし、前記規定回数を満たすようにルーティングを行う、ネットワークシステム。
  25. 前記メインルータは、ルーティングを計算する手段を備え、
    前記メインルータと、前記メインルータ又は前記ネットワークインタフェースがルーティングした情報に従ってルーティングを行うサブルータと、
    を備えている、請求項24記載のネットワークシステム。
  26. 前記メインルータは、
    パケットから、データの受信先を示すID又はアドレスから、パケットの前記メインルータからの出力先のルーティングと、前記規定回数以内のサブルータのルーティングを行う手段を備え、
    前記サブルータ分のルーティング情報を、パケット中の前記メインルータに到達するためのルート情報を記したフリットを更新して書き込み、対応するルータに対して、パケットを送出し、
    前記パケットを受信したサブルータは、前記ルーティング情報に従って、ルーティングを行い、前記ルーティング情報を更新する、請求項24記載のネットワークシステム。
  27. 前記メインルータは、
    規定回数以内の前段に通った別のメインルータ、又は、送信側のネットワークインタフェースによってルーティングを決定されていた場合、自律的にルーティングを行わず、前段のメインルータが指定したルーティングに従ってパケットをルーティングする、請求項24記載のネットワークシステム。
  28. 前記メインルータは、
    前記サブルータのルーティングを行う手段を備え、
    サブルーティング情報をフリットに圧縮エンコードして格納し、
    前記サブルータは圧縮エンコードした前記情報を伸張して得た情報に従ってルーティングを行う、請求項25記載のネットワークシステム。
  29. 規定のフリットに圧縮して格納できるルーティング情報によって決定されるホップ数までサブルータで連続してホップすることが許容され、
    ルーティング到達場所へ至るルーティングに対する圧縮率によって規定ホップ回数が異なる、請求項25記載のネットワークシステム。
  30. あらかじめネットワークの混雑が予想されるIPに接続されるルータおよびその近傍に、前記メインルータを、他のネットワークルータの前記メインルータの割合よりも多く配置する、ことを特徴とする請求項24記載のネットワークシステム。
  31. 前記メインルータは、周囲のリンク、前記サブルータの混雑および故障を把握する手段を備え、混雑ないし故障を回避するように前記サブルータのルーティングを行う、請求項25記載のネットワークシステム。
  32. 故障が生じた前記サブルータは、前記ルータ内の利用可能なリソースを使用し、到着したパケットを近傍のメインルータに戻す制御を行う請求項25記載のネットワークシステム。
  33. 前記メインルータには、冗長論理、エラー検出訂正機能を備え、
    リンク又は前記サブルータで発生した故障に対して、パケットが前記メインルータに到着した時点で訂正を行うと共に、メインルータが故障した場合に、前記冗長論理によって回復する、請求項25記載のネットワークシステム。
  34. 前記メインルータが行ったルーティング情報を、パケット中の前記メインルータに到達するためのルート上に記したフリットを更新して書き込むと共に、前記書き換え前のフリット情報を、パケットの別の位置に移動、追記することにより、前記パケットの送信元からのルート情報を、パケット中に保持する、請求項24記載のネットワークシステム。
  35. 前記メインルータは、
    入力信号を受ける入力ラッチと、
    送り先からルートを計算するルート計算部と、
    前記ルート計算部でのルート計算の結果に基づいてルーティング・フリットを生成するルーティングフリット生成部と、
    前記ルーティングフリット生成部で生成されたルーティング・フリットと前記入力ラッチからの情報との一方を選択するセレクタと、
    前記セレクタでの選択結果をそれぞれ蓄える入力FIFO(First In First Out)と、
    クロスバスイッチによる選択結果をそれぞれラッチする出力バッファと、
    を含む組を、
    各方路と前記メインルータ自身が直接接続しているIP(Intellectual Property)に対応して備え、
    入力信号の出力先を調整するアービタと、いずれか方向の前記入力FIFOからの出力を選択するセレクタを備えたクロスバスイッチを各方路及びIPに対応した複数の前記入力FIFOと複数の前記出力バッファとの間に備えている、請求項24又は25記載のネットワークシステム。
  36. 前記サブルータは、
    入力信号を入力する入力FIFO(First In First Out)と、
    クロスバスイッチによる選択結果をそれぞれラッチする出力バッファと、
    を含む組を、
    各方路と前記サブルータ自身が直接接続しているIP(Intellectual Property)に対応して備え、
    入力信号の出力先を調整するアービタと、いずれか方向の前記入力FIFOからの出力を選択するセレクタと、を備えたクロスバスイッチを、各方路及びIPに対応した複数の前記入力FIFOと複数の前記出力バッファとの間に備えている、請求項25記載のネットワークシステム。
JP2011516016A 2009-05-25 2010-05-25 ネットワークオンチップとネットワークルーティング方法とシステム Expired - Fee Related JP5083464B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011516016A JP5083464B2 (ja) 2009-05-25 2010-05-25 ネットワークオンチップとネットワークルーティング方法とシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009125580 2009-05-25
JP2009125580 2009-05-25
JP2011516016A JP5083464B2 (ja) 2009-05-25 2010-05-25 ネットワークオンチップとネットワークルーティング方法とシステム
PCT/JP2010/058780 WO2010137572A1 (ja) 2009-05-25 2010-05-25 ネットワークオンチップとネットワークルーティング方法とシステム

Publications (2)

Publication Number Publication Date
JPWO2010137572A1 JPWO2010137572A1 (ja) 2012-11-15
JP5083464B2 true JP5083464B2 (ja) 2012-11-28

Family

ID=43222680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011516016A Expired - Fee Related JP5083464B2 (ja) 2009-05-25 2010-05-25 ネットワークオンチップとネットワークルーティング方法とシステム

Country Status (2)

Country Link
JP (1) JP5083464B2 (ja)
WO (1) WO2010137572A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5543894B2 (ja) * 2010-10-21 2014-07-09 ルネサスエレクトロニクス株式会社 NoCシステム及び入力切替装置
US8713240B2 (en) 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8929373B2 (en) * 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8713234B2 (en) 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
KR101373778B1 (ko) 2012-02-13 2014-03-14 한양대학교 산학협력단 시스템 온 칩의 내부 통신을 위한 네트워크 온 칩 및 데이터 전송 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
JP5624579B2 (ja) * 2012-03-23 2014-11-12 株式会社東芝 オンチップルータ
JP5847887B2 (ja) * 2014-06-17 2016-01-27 株式会社東芝 オンチップルータ及びそれを用いたマルチコアシステム
JP6846027B2 (ja) * 2016-05-19 2021-03-24 公立大学法人会津大学 ネットワークオンチップ用の欠陥耐性ルータ
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
IL315283A (en) * 2018-03-30 2024-10-01 Google Llc Mediation parts of transactions in ritualistic channels attributed to connection
US20190302861A1 (en) 2018-03-30 2019-10-03 Provino Technologies, Inc. Protocol level control for system on a chip (soc) agent reset and power management
WO2020103041A1 (zh) * 2018-11-21 2020-05-28 深圳市柔宇科技有限公司 蓝牙连接控制方法及路由器
US12095653B2 (en) * 2021-06-15 2024-09-17 Applied Materials, Inc. Router architecture for multi-dimensional topologies in on-chip and on-package networks
CN113839878B (zh) * 2021-09-26 2023-05-23 南京宁麒智能计算芯片研究院有限公司 一种面向数据密集型应用的片上网络近似通信系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200501503008; 安生 健一朗、鯉渕 道紘、山田 裕、上楽 明也、天野 英晴: 'ネットワークオンチップにおけるローカルラベリング方式の評価' 電子情報通信学会論文誌 (J88-D-I) 第6号 第J88-D-I巻, 20050601, p.1076-1090, 社団法人電子情報通信学会 *
JPN6012040894; William J. Dally and Brian Towles: 'Route Packets, Not Wires: On-Chip Interconnection Networks' Proceedings of the 38th annual Design Automation Conference , 2001, p.684-689, ACM *
JPN6012040895; Young Bok Kim and Yong-Bin Kim: 'Fault Tolerant Source Routing for Network-on-chip' Proceedings of the 22nd IEEE International Symposium on Defect and Fault-Tolerance in VLSI Systems , 2007, p.12-20, IEEE Computer Society *
JPN6012040896; 安生 健一朗、鯉渕 道紘、山田 裕、上楽 明也、天野 英晴: 'ネットワークオンチップにおけるローカルラベリング方式の評価' 電子情報通信学会論文誌 (J88-D-I) 第6号 第J88-D-I巻, 20050601, p.1076-1090, 社団法人電子情報通信学会 *

Also Published As

Publication number Publication date
JPWO2010137572A1 (ja) 2012-11-15
WO2010137572A1 (ja) 2010-12-02

Similar Documents

Publication Publication Date Title
JP5083464B2 (ja) ネットワークオンチップとネットワークルーティング方法とシステム
US8819616B2 (en) Asymmetric mesh NoC topologies
JP5276220B2 (ja) バス制御装置およびバス制御装置に指示を出力する制御装置
KR101809396B1 (ko) 분산된 직접 상호 접속 네트워크에서 패킷을 라우팅하는 방법
Bartic et al. Topology adaptive network-on-chip design and implementation
JP6093867B2 (ja) インターコネクトにおける不均一なチャネル容量
JP2012090129A (ja) NoCシステム及び入力切替装置
Nosrati et al. G-CARA: A Global Congestion-Aware Routing Algorithm for traffic management in 3D networks-on-chip
CN105075199A (zh) 具有到每一资源的多个分布式连接的直接网络
Liu et al. An encapsulated packet-selection routing for network on chip
Erickson et al. An optimal single-path routing algorithm in the datacenter network DPillar
Cota et al. NoC basics
Qiao et al. A New Hierarchical Interconnection network for multi-core processor
Bourduas et al. Latency reduction of global traffic in wormhole-routed meshes using hierarchical rings for global routing
Qasem et al. Square-octagon interconnection architecture for network-on-chips
Wang et al. A routing-table-based adaptive and minimal routing scheme on network-on-chip architectures
Satish et al. Comparative performance analysis of routing topology for noc architecture
Moadeli et al. Quarc: A novel network-on-chip architecture
Wang et al. X-network: An area-efficient and high-performance on-chip wormhole-switching network
Yang et al. RIPNoC: A distributed routing scheme for balancing on-chip network load
MM et al. Dynamic communication performance of a hierarchical torus network under non-uniform traffic patterns
Prasad et al. Efasbran: error free adaptive shared buffer router architecture for network on chip
Lee et al. BusMesh NoC: A novel NoC architecture comprised of bus-based connection and global mesh routers
Sllame et al. A comparative study between fat tree and mesh network-on-chip interconnection architectures
Veeraprathap et al. Network on chip design and implementation on FPGA with advanced hardware and networking functionalities

Legal Events

Date Code Title Description
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: 20120807

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120820

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees