JP2013243582A - NoCルータ及びネットワークインタフェース並びにNoCシステム - Google Patents

NoCルータ及びネットワークインタフェース並びにNoCシステム Download PDF

Info

Publication number
JP2013243582A
JP2013243582A JP2012116465A JP2012116465A JP2013243582A JP 2013243582 A JP2013243582 A JP 2013243582A JP 2012116465 A JP2012116465 A JP 2012116465A JP 2012116465 A JP2012116465 A JP 2012116465A JP 2013243582 A JP2013243582 A JP 2013243582A
Authority
JP
Japan
Prior art keywords
destination
group
router
noc
axis
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
JP2012116465A
Other languages
English (en)
Inventor
Masahiro Tokuoka
正寛 徳岡
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012116465A priority Critical patent/JP2013243582A/ja
Publication of JP2013243582A publication Critical patent/JP2013243582A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】簡単な制御でNoCシステムの転送効率を高める。
【解決手段】NoCルータは、宛先情報が複数の宛先を示すフリットグループに対応する。該NoCルータにおいて、宛先グループ分割部132は、フリットグループの宛先情報が示す複数の宛先を1つ以上の宛先グループに分割する。具体的には、到達するまでの転送経路のうちの、該NoCルータを起点とする一部の経路を共有可能な各宛先が、該一部の経路に出力する方向をグループ転送方向とする宛先グループに含まれるように、上記複数の宛先の分割をする。転送実行部134は、宛先グループ分割部132によりより得られた宛先グループ毎に、該宛先グループに含まれない各宛先を宛先情報から削除した上で、フリットグループ内の各フリットを、該宛先グループのグループ転送方向に順次転送する。
【選択図】図4

Description

本発明は、ルーティング技術、例えばNoC(Network on Chip)システムにおけるルーティング技術に関する。
近年、半導体プロセスの微細化につれ、1つのチップ内に搭載できるプロセッサ・コア(Processor Core)などのIP(Intellectual Property:知能素子)の数は、増加の一途を辿っている。IP数の増加に伴い、IPを繋ぐ配線は複雑化し、配線数も増加している。このような背景において、従来のオン・チップ・バスに代わる結合網として、NoC(Network on Chip)が注目されている(非特許文献1)。
図27は、NoCシステムのネットワークトポロジを示す。図中丸は、NoCルータを示す。なお、以下の説明において、「NoCルータ」を単に「ルータ」とも呼ぶ。
NoCは、ツリー(Tree)型、メッシュ(Mesh)型など様々なトポロジーを有する。メッシュ型は、グリッド(Grid)型とも呼ばれる。
図27の左部に示すように、ツリー型では、複数のルータが階層的に接続され、上位階層の各ルータは、直下の階層の各ルータと接続されている。図27の左部の例は、3階層のツリー型を示しているが、ツリーの階層は2以上の何階層であってもかまわない。
図27の右部に示すように、メッシュ型では、複数のルータが格子状に配置され、各ルータは、上下左右に位置する他のルータと直接接続されている。メッシュ型を例にして、NoCのルータのハードウェア構造を説明する。
図28は、非特許文献1のスライド32の一部を抽出して符号を追加したものであり、5入力5出力のルータ10の概略を示す。図中「X+」、「X−」、「Y+」、「Y−」は、ルータ10の「右隣」、「左隣」、「真下」、「真上」のルータ(隣接ルータ)を夫々示し、図中「CORE」は、ルータ10と接続されたプロセッサ・コアなどのIPである。
図29は、図28におけるルータ10と、CORE及び各隣接ルータとの座標関係が分かるように示した図である。図29から分かるように、ルータ10は、COREと、4つの隣接ルータとに接続されている。
図28に示すように、ルータ10は、5本のパス11によりCORE及び4つの隣接ルータと夫々接続されており、5つのFIFO12と、調停器(図中ARBITER)14と、XBAR16を有する。なお、図示していないが、ルータとCOREの間にネットワークインタフェース(NI:Network Interface)という装置が設けられており、ルータとCOREは、該NIを介して送受信を行う。
5つのFIFO12は、5つのパス11に夫々接続されており、当該パス11に接続されたCOREまたは隣接ルータからのパケットを一時的に格納する。
調停器14は、5つのFIFO12に夫々格納されたパケットの宛先に応じて、該パケットの出力先の調停を行う。XBAR16は、スイッチ機能を有し、調停器14の調停結果の出力先にパケットを出力する。例えば、「X+」のルータから、CORE宛てのパケットが入力されると、該パケットは、「X+」のルータに対応するFIFO12に一時格納された後、COREに出力される。また、例えば、「X+」のルータから、「Y+」のルータに接続されたIP(図示せず)宛てのパケットが入力されると、該パケットは、「X+」のルータに対応するFIFO12に一時格納された後、「Y+」のルータに出力される。
図30を参照し、あるIPから別のIPに送信する場合の信号の流れの例を用いて、NoCのパケットの構成を説明する。
図30の例において、IP20は、送信側IPすなわちマスターであり、IP30は、受信側IPすなわちスレーブである。IP20から送出された信号は、NI22、ルータ24、ルータ26、NI28を経由して、IP30に到達する。なお、ルータ24からルータ26までは、さらに他のルータを経由する場合もある。
ルータ24は、NI22を介してIP20と接続されたルータであり、ルータ26は、NI28を介してIP30と接続されたルータである。
NI22は、IP20が送出した信号をパケット化して、複数のフリットを得てルータ24に出力する。
NI22により得られた複数のフリットのうちの先頭のフリットは、ヘッドフリットと呼ばれ、ヘッダ42、制御信号部44(Control Signal)、送信元を示す出発地情報46(Source)、目的地を示す宛先情報48(Destination)を有する。出発地情報46と宛先情報48は、アドレス情報であり、送信元(ここではIP20)と目的地(ここではIP30)の夫々のアドレスである。なお、メッシュ型のNoCシステムでは、出発地情報46と宛先情報48は、例えばX軸とY軸における座標値で表わすことができる。
2番目からの各フリットは、ボディフリットと呼ばれ、信号の中身を示すデータが挿入されている。ボディフリットのうちの末尾のフリットは、テイルフリットと呼ばれる。
なお、バスプロトコルによっては、アドレス情報は、2番目のフリット(ヘッドフリットの次のフリット)に含まれる場合もある。
各フリットのヘッダ42には、ヘッドフリットであるか、テイルフリットであるか、アドレス情報が含まれるフリットであるかなど、該フリットの種類を示す情報が含まれている。
以下の説明において、送信元のIPから送出した1つの信号をパケット化して得た、ヘッドフリットからテイルフリットまでの複数のフリットを、1つの「フリットグループ」という。
ルータ24は、NI22からの各フリットを、時分割多重で順次転送する。具体的には、1つのフリットグループに対して、宛先情報48から次のルータを決定し、ヘッドフリットからテイルフリットまでの各フリットを、次のルータに順次転送する。
ルータ24からの各フリットは、ルータ24とルータ26の間のルータを経由して、ルータ26に到達する。ルータ26は、宛先情報48から該フリットグループの目的地が自身であると判断して、各フリットをNI28に順次出力する。
NI28は、ルータ26からの、1つのフリットグループを構成する複数のフリットを、IPが送受信する信号に復元してIP30に出力する。NI28によるこの復元処理は、NI22が行う「パケット化」とは逆の処理であり、以下「デパケット」という。
このようにして、マスターとしてのIP20から、スレーブとしてのIP30への送信が実現される。
NoCシステムでは、転送先となる次のルータ(すなわち転送方向)を決定するルーティング手法に応じて、固定型と適応型に分けられる。
固定型のNoCシステムでは、2つのフリットグループの出発地と宛先が夫々同一である場合に、該2つのフリットグループは、必ず同一の経路で転送される。メッシュ型を例にして、固定型と適応型のルーティング手法のアルゴリズムの一例を説明する。
固定型のルーティング手法の一例では、各ルータは、宛先に到達するまでに1つの転送方向(X+、X−、Y+、Y−のうちの1つへ向かう方向)のみを必要とするフリットグループを、該1つの転送方向へ転送し、互いに垂直する2つの転送方向を必要とするフリットグループを、該2つの転送方向のうちのX軸の転送方向へ転送する。
例えば、「X+」へ向かう方向への転送のみを必要とするフリットグループは、「X+」に転送され、「X+」と「Y+」の両方に向かう方向への転送を必要とするフリットグループも、「X+」に転送される。
適応型のルーティング手法の一例では、2つのフリットグループの出発地と宛先が夫々同一であっても、該2つのフリットグループは、必ずしも同一の経路で転送されるとは限らない。例えば、転送経路の混雑状況に応じて次のルータを決定する適応型のNoCシステムが知られている。このようなNoCシステムの場合、例えば、「X+」へ向かう方向への転送のみを必要とするフリットグループ(フリットグループA)と、「X+」及び「Y+」の両方に向かう方向への転送を必要とするフリットグループ(フリットグループB)が同時にある場合に、フリットグループAは、「X+」に転送され、フリットグループBは、「Y+」に転送される。
なお、特許文献1に開示された転送経路決定手法をNoCシステムに適用した場合に、該NoCシステムは、適応型のNoCシステムになると考えられる。
特開平08−185380号公報
Network−on−Chip最前線、Revised Version、2008年8月26日、インターネット<http:/www.am.ics.keio.ac.jp/members/matutani/papers/matsutani_kyushu2008.ppt>
ここで、メッシュ型を例にして、固定型のルーティング手法を適用したNoCシステムによるフリットグループの転送態様の一例を考える。
図31において、白丸は、自身と接続されたIP(より正確には該IPとの間に設けられたNI)からフリットグループを受信して他のルータに転送するルータであり、黒丸は、宛先に該当する各ルータを示す。また、2つの数字前の「R」はルータを示し、「R」に続く2つの数字は、該ルータのX座標値とY座標値を夫々示す。なお、各細線枠の全ての頂点にルータが設けられているが、図中において一部省略している。これらに関しては、以降に説明するこの種の各図面においても同様である。
ルータR00に接続されたIP(図示せず)がルータR65とルータR88にデータを送信する場合に、2つのフリットグループがルータR00に出力される。この2つのフリットグループは、宛先情報が夫々ルータR65とルータR88である。これについて、ルータR65へ送信するデータと、ルータR88に送信するデータとが同じものであっても同様である。
図31には、ルータR00が、宛先がルータR65であるフリットグループ(フリットグループAとする)、及び宛先がルータR88であるフリットグループ(フリットグループBであるとする)をIPから受信し、この2つのフリットグループをルータR65とルータR88に夫々転送する場合の転送経路を示す。なお、例として、図31に示すNoCシステムにおける各ルータは、X軸に沿った転送方向及びY軸に沿った転送方向の両方を必要とする宛先を、X軸に沿って転送するようになっているとする。
図31において、実線の太線は、フリットグループAの転送経路であり、点線の太線は、フリットグループBの転送経路である。
フリットグループAは、宛先がルータR65であるため、「X+」方向と「Y+」方向の2つの転送方向を必要とする。そのため、ルータR00は、フリットグループAを「X+」に転送する。このようにして、フリットグループAは、ルータR00とルータR60の間の各ルータを経由して、ルータR60に到達する。
ルータR60は、フリットグループAの必要な転送方向が「Y+」方向のみであるため、フリットグループAを「Y+」に転送する。ルータR60とルータR65間の各ルータを経由して、宛先のルータR65に到達する。
NoCシステムにおいて、2つのルータ間の1回の転送が1ホップと呼ばれる。通常、同じフリットグループ内の各フリットが同一の経路で順次転送されるため、1つのフリットグループの転送に用いられるホップ数は、1つのフリットの転送に用いられるホップ数と、該フリットグループ内に含まれるフリット数とを乗算して得た数である。本明細書において、便宜上、フリットグループ内の1つのフリットの転送に用いられるホップ数を、該フリットグループの転送に用いられるホップ数として説明をする。
図31に示すように、該例では、フリットグループAは、目的地に到達するまでに11ホップを必要とする。
同様に、フリットグループBは、ルータR00から、ルータR00とルータR80間の各ルータを経由して、ルータR80に到達する。そして、ルータR80から、ルータR80とルータR88間の各ルータを経由して、宛先のルータR88に到達する。フリットグループBは、目的地に到達するまでに16ホップを必要とする。
すなわち、ルータR00からルータR65とルータR88の両方にフリットグループを転送するために、計27ホップが必要である。
図31から分かるように、フリットグループAの転送経路と、フリットグループBの転送経路は、共通した部分(ルータR00からルータR60までの経路)がある。そのため、例えば、ルータR10がフリットグループAをルータR20に転送している最中にフリットグループBがルータR10に到達しても、フリットグループAの転送が完了するまで、フリットグループBは、転送されない。
これでは、システム全体の転送効率が低下する。この問題は、一部の経路を共有する宛先が多いほど、顕著になる。
適応型のルーティング手法は、例えば、ルータR10がフリットグループAをルータR20に転送している最中にフリットグループBがルータR10に到達した場合に、フリットグループBをY+(ルータR11)に転送することで、転送効率の低下を回避することができる。しかし、適応型のルーティングは、制御が複雑であり、各ルータの処理負荷が大きくなるという問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、NoCシステムにおいて、フリットグループ内の各フリットを順次転送するNoCルータは、宛先情報が複数の宛先を示すフリットグループに対して、前記複数の宛先を1つ以上の宛先グループに分割すると共に、前記宛先グループ毎に、該宛先グループに含まれない各宛先を前記宛先情報から削除した上で、前記フリットグループ内の各フリットを、前記宛先グループのグループ転送方向に順次転送する。
該NoCルータは、到達するまでの転送経路のうちの、前記NoCルータを起点とする一部の経路を共有可能な各宛先が、前記一部の経路に出力する方向を前記グループ転送方向とする宛先グループに含まれるように、前記複数の宛先の分割を行う。
別の一実施の形態によれば、NoCシステムにおけるIPとNoCルータの間に接続されたネットワークインタフェースは、前記IPから受信したデータをパケット化してフリットグループを生成する際に、前記IPにより前記データに対して複数の宛先を指定したときに、該複数の宛先を示す宛先情報を生成して前記フリットグループ内の1つのフリットに格納する。
なお、上記実施の形態のNoCルータによるルーティング方法、上記ネットワークインタフェースによるパケット化の方法、上記NoCルータと上記ネットワークインタフェースを備えたシステムなども、実施の形態としては有効である。
上記各実施の形態によれば、簡単な制御でNoCシステムの転送効率を高めることができる。
第1の実施の形態にかかるツリー型のNoCシステムを示す図である。 図1に示すNoCシステムにおけるネットワークインタフェースを示す図である。 図2に示すネットワークインタフェースにより生成したフリットグループ内の、宛先情報が含まれるフリットの例を示す図である。 図1に示すNoCシステムにおけるルータを示す図である。 図1に示すNoCシステムのルータによる処理の流れの一例を示すフローチャートである(その1)。 図1に示すNoCシステムのルータによる処理の流れの一例を示すフローチャートである(その2)。 図1に示すNoCシステムのルータによる処理の流れの一例を示すフローチャートである(その3)。 図1に示すNoCシステムによるフリットグループの転送態様の一例を示す図である。 図1に示すNoCシステムによる効果を説明するための図である(その1)。 図1に示すNoCシステムによる効果を説明するための図である(その2)。 図1に示すNoCシステムにおける宛先グループ分割部による別の分割手法を説明するための図である。 第2の実施の形態にかかるメッシュ型のNoCシステムを示す図である。 図12に示すNoCシステムにおけるルータを示す図である。 図13に示すルータの宛先グループ分割部による処理の流れの一例を示すフローチャートである。 図13に示すルータにおける宛先グループ分割部の回路構成の一例を示す図である。 図12に示すNoCシステムによるフリットグループの転送態様の一例を示す図である(その1)。 図12に示すNoCシステムによるフリットグループの転送態様の一例を示す図である(その2)。 図12に示すNoCシステムによるフリットグループの転送態様の一例を示す図である(その3)。 第3の実施の形態にかかるメッシュ型のNoCシステムによるフリットグループの転送態様の一例を示す図である。 第4の実施の形態にかかるメッシュ型のNoCシステムによるフリットグループの転送態様の一例を示す図である(その1)。 第4の実施の形態にかかるメッシュ型のNoCシステムによるフリットグループの転送態様の一例を示す図である(その2)。 第4の実施の形態にかかるメッシュ型のNoCシステムによるフリットグループの転送態様の一例を示す図である(その3)。 第5の実施の形態にかかるメッシュ型のNoCシステムによるフリットグループの転送態様の一例を示す図である(その1)。 第5の実施の形態にかかるメッシュ型のNoCシステムによるフリットグループの転送態様の一例を示す図である(その2)。 第6の実施の形態にかかるメッシュ型のNoCシステムによるフリットグループの転送態様の一例を示す図である(その1)。 第6の実施の形態にかかるメッシュ型のNoCシステムによるフリットグループの転送態様の一例を示す図である(その2)。 NoCシステムのネットワークトポロジを示す図である。 メッシュ型のNoCシステムにおけるルータのハードウェア構成を説明するための図である。 図28に示すルータと、該ルータと接続された他の機能ブロックとの座標関係を説明するための図である。 NoCのパケット構成を説明するための図である。 固定型のNoCシステムによるフリットグループの転送態様の一例を示す図である。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
<第1の実施の形態>
図1は、第1の実施の形態にかかるNoCシステム100を示す。NoCシステム100は、ツリー型のNoCシステムであり、大きい矩形により示される複数のルータ(R11〜R34)を備える。また、夫々のルータは、小さい矩形により示されるNI(Network Interface)を介して、丸により示されるプロセッサ・コアなどのIPと接続されている。
NoCシステム100は、例として3階層を有し、第1の階層にはR11とR12の2つのルータが設けられており、第2の階層にはR21〜R23の3つのルータが設けられている。また、第3の階層には、R31〜R34の4つのルータが設けられている。第1の階層の各ルータと第3の階層の各ルータは、第2の階層の全てのルータと接続されている。なお、同階層のルータ同士は、互いに接続されていない。
図1において、「R」がルータを示し、Rに続く2つの数字は、該ルータが設けられた階層と、該階層における位置(例えば配列順)を夫々示す。例えば、R22は、第2の階層の2番目に設けられたルータを意味する。
NoCシステム100において、各ルータに夫々接続されたIPとNIは、同一の構成を有する。ここで、ルータR11に接続されたNI11とIP11を代表にして説明する。なお、図1に示す例では、各ルータは、1つのNIを介して1つのIPと接続されるようになっているが、ルータには、必ずIPが接続されるとは限らず、また、接続されるIPの数も1つとは限らない。
IP11は、NI11にデータを出力する際に、該データの宛先を複数指定可能である。この点を除き、IP11は、通常のNoCシステムにおけるIPと同様である。
NI11は、IP11により1つのデータに対して複数の宛先を指定可能であると共に、複数の宛先が指定されたデータをパケット化する際に、宛先情報を含むフリット(以下「宛先情報フリット」という)における宛先情報として、IP11により指定された複数の宛先を示すものを生成する。この点を除き、NI11は、通常のNoCシステムにおけるNIと同様である。そのため、NI11について、パケット化と関連する構成についてのみを説明し、他の構成を省略する。
図2は、NI11を示す。NI11は、受信部112、パケット化部114、送信部116を備える。
受信部112は、IP11から、データD0、及び該データD0の複数の目的地を夫々示すアドレスAD1、AD2、・・・を受信すると、それらをパケット化部114に出力する。
パケット化部114は、受信部112からのデータD0と、複数のアドレスとからフリットグループFLGを生成する。フリットグループFLGは、ヘッドフリットFL1と、ボディフリットFL2、・・・を備え、ボディフリットの最後のフリットは、テイルフリットである。また、フリットグループFLGには、宛先情報フリットが含まれている。本実施の形態において、例として、宛先情報フリットは、ヘッドフリットFL1である。
図3は、NI11により生成された宛先情報フリット(ここではヘッドフリットFL1)を示す。宛先情報フリットFL1は、ヘッダ122、制御信号部124、出発地情報126、宛先情報128を備える。
ヘッダ122、制御信号部124、出発地情報126は、従来のNoCシステムにおける宛先情報フリットの相対応するものと夫々同様である。例えば、ヘッダ122は、該フリットがヘッドフリットと宛先情報フリットであることを示す情報が含まれている。
宛先情報128は、複数の宛先(宛先DES1、宛先DES2、・・・)を示す情報であり、これらの宛先は、アドレスAD1、アドレスAD2と夫々同一である。宛先DES1は、例えば、階層と、該階層における位置を示すものである。
NoCシステム100の各ルータは、自身と接続されたNIと、他のルータからフリットグループを受信し、受信したフリットグループを上記NI、または他のルータに転送する。これらのルータは、宛先情報が複数の宛先を示すフリットグループに対応する。
宛先情報が複数の宛先を示すフリットグループを受信したときに、ルータは、これらの複数の宛先を1つ以上の宛先グループに分割すると共に、宛先グループ毎に、該フリットグループを転送する。宛先情報が1つの宛先を示すフリットグループの場合には、通常のNoCシステムにおけるルータと同様の処理を行うため、NoCシステム100の各ルータについて、宛先情報が複数の宛先を示すフリットグループのルーティング処理に関連することについてのみ説明する。
図4は、NoCシステム100におけるルータを示す。図示のように、該ルータは、宛先グループ分割部132、転送実行部134を備える。
宛先グループ分割部132は、宛先情報フリット(ここではヘッドフリットFL1)が入力され、宛先情報フリットFL1に含まれる宛先情報128が示す複数の宛先を1つ以上の宛先グループに分割する。具体的には、到達するまでの転送経路のうちの、当該NoCルータを起点とする一部の経路を共有可能な各宛先が、該一部の経路に出力する方向をグループ転送方向とする宛先グループに含まれるように、宛先情報128が示す複数の宛先を1つ以上の宛先グループ(宛先グループDESG1、宛先グループDESG2、・・)に分割する。
転送実行部134は、フリットグループの全てのフリットが入力され、宛先グループ分割部132により得られた宛先グループ毎に、該宛先グループに含まれない各宛先を宛先情報128から削除した上で、該フリットグループ内の各フリットを、該宛先グループのグループ転送方向に順次転送する。
図5〜図7を参照して、宛先グループ分割部132の処理をより具体的に説明する。
これらの図は、宛先グループ分割部132による処理の流れの一例をフローチャートである。説明上の便宜のため、NoCシステム100において、各ルータに1つのIPのみが接続されているとする。
図5に示すように、宛先グループ分割部132は、まず、フリットグループの宛先情報128が示す複数の宛先のうちの1つ目の宛先が、自身が設けられたルータに該当するか否かを確認する(S100、S102)。
該宛先が、宛先グループ分割部132自身が設けられたルータに該当する場合、宛先グループ分割部132は、該ルータに向かう方向をグループ転送方向とする宛先グループ(IPグループ)を生成すると共に、該宛先を該IPグループに割り当てる(S102:Yes、S104)。
一方、該宛先が、宛先グループ分割部132が設けられたルータに該当しない場合には、宛先グループ分割部132は、さらに、該宛先が下の階層(1つ下の階層と2つ下の階層)に位置するルータに該当するか否かを確認する(S102:No、S106)。
該宛先が下の階層に位置するルータである場合、宛先グループ分割部132は、第1の処理を行う(S106:Yes、S110)。
第1の処理の流れは、図6のフローチャートに示されている。図6に示すように、この場合、宛先グループ分割部132は、1つ下の階層に位置するいずれかのルータに向かう方向をグループ転送方向とする宛先グループ(下グループ)が既にあるか否かを確認する(S112)。
処理対象の宛先1つ目の宛先である場合、宛先グループがまだ1つも生成されていないため、宛先グループ分割部132は、下グループが無いと判断し、1つの下グループを生成する(S112:No、S124)。なお、この下グループのグループ転送方向は、例えば、宛先グループ分割部132により、1つ下の階層に位置する任意の1つのルータに向かうように決定される。
一方、ステップS112において、下グループが既にある場合には(S112:Yes)、宛先グループ分割部132は、処理対象の宛先が1つ下の階層のルータに該当するか否かを確認する(S114)。
該宛先が2つ以上下の階層に位置するルータに該当する場合、すなわち、ステップS114において「該当しない」結果になった場合には(S114:No)、宛先グループ分割部132は、該宛先を、ステップS112で確認した下グループに割り当てる(S122)。なお、ステップS112で確認した下グループが複数ある場合には、宛先グループ分割部132は、該宛先をこれらの下グループのうちのいずれか1つに割り当てるようにすればよい。
ステップS114において「該当する」結果になった場合、すなわち、処理対象の宛先が1つ下の階層に位置するルータに該当する場合、宛先グループ分割部132は、ステップS112で確認した下グループのグループ転送方向が、処理対象の宛先に該当するルータに向かう方向であるか否かを確認する(S114:Yes、S116)。
下グループのグループ転送方向が処理対象の宛先に該当するルータに向かう方向である場合(S116:Yes)、宛先グループ分割部132は、該宛先を、ステップS112で確認した下グループに割り当てる(S122)。
下グループのグループ転送方向が処理対象の宛先に該当するルータとは異なるルータに向かう方向である場合、宛先グループ分割部132は、処理対象の宛先に該当するルータに向かう方向をグループ転送方向とする新たな下グループを生成すると共に、生成した下グループに該宛先を割り当てる(S116:No、S124)。
宛先グループ分割部132は、このようにして、自身が設けられた階層より下の階層に位置するルータに該当する宛先を処理する。
図5に戻る。
処理対象の宛先が、宛先グループ分割部132の設けられたルータでもなければ、下の階層に位置するルータにも該当しない場合には(S102:No、S106:No)、宛先グループ分割部132は、該宛先が、上の階層(1つ上の階層と2つ上の階層)に位置するルータに該当するか否かを確認する(S130)。
該宛先が上の階層に位置するルータである場合、宛先グループ分割部132は、第2の処理を行う(S130:Yes、S140)。
第2の処理の流れは、図7のフローチャートに示されている。図7に示すように、この場合、宛先グループ分割部132は、1つ上の階層に位置するいずれかのルータに向かう方向をグループ転送方向とする宛先グループ(上グループ)が既にあるか否かを確認する(S142)。
処理対象の宛先1つ目の宛先である場合、宛先グループがまだ1つも生成されていないため、宛先グループ分割部132は、上グループが無いと判断し、1つの上グループを生成する(S142:No、S154)。なお、この上グループのグループ転送方向は、例えば、宛先グループ分割部132により、1つ上の階層に位置する任意の1つのルータに向かうように決定される。
一方、ステップS142において、上グループが既にある場合には(S142:Yes)、宛先グループ分割部132は、処理対象の宛先が1つ上の階層のルータに該当するか否かを確認する(S144)。
該宛先が2つ以上上の階層に位置するルータに該当する場合、すなわち、ステップS144において「該当しない」結果になった場合には(S144:No)、宛先グループ分割部132は、該宛先を、ステップS142で確認した上グループに割り当てる(S152)。なお、ステップS142で確認した上グループが複数ある場合には、宛先グループ分割部132は、該宛先をこれらの上グループのうちのいずれか1つに割り当てるようにすればよい。
ステップS144において「該当する」結果になった場合、すなわち、処理対象の宛先が1つ上の階層に位置するルータに該当する場合、宛先グループ分割部132は、ステップS142で確認した上グループのグループ転送方向が、処理対象の宛先に該当するルータに向かう方向であるか否かを確認する(S144:Yes、S146)。
上グループのグループ転送方向が処理対象の宛先に該当するルータに向かう方向である場合(S146:Yes)、宛先グループ分割部132は、該宛先を、ステップS142で確認した上グループに割り当てる(S122)。
上グループのグループ転送方向が処理対象の宛先に該当するルータとは異なるルータに向かう方向である場合、宛先グループ分割部132は、処理対象の宛先に該当するルータに向かう方向をグループ転送方向とする新たな上グループを生成すると共に、生成した上グループに該宛先を割り当てる(S146:No、S154)。
宛先グループ分割部132は、このようにして、自身が設けられた階層より上の階層に位置するルータに該当する宛先を処理する。
図5に戻る。
処理対象の宛先が、宛先グループ分割部132の設けられたルータが位置する階層と同階層の他のルータである場合(S102:No、S106:No、S130:No)、宛先グループ分割部132は、下グループが既にあれば、該宛先を該下グループに割り当てる(S160:Yes、S162)。
下グループが無く、上グループがある場合(S160:No、S170:Yes)、宛先グループ分割部132は、該宛先を該上グループに割り当てる(S172)。
下グループと上グループのいずれも無い場合には(S160:No、S170:No)、宛先グループ分割部132は、自身が設けられたルータの位置する階層が一番下の階層であるか否かに応じて異なるグループ生成する。具体的には、宛先グループ分割部132は、自身が設けられたルータの位置する階層が一番下の階層ではないときに、1つの下グループを生成すると共に、生成した下グループに該宛先を割り当てる(S174:No、S176)。一方、自身が設けられたルータの位置する階層が一番下の階層であるときには、宛先グループ分割部132は、1つの上グループを生成すると共に、生成した上グループに該宛先を割り当てる(S174:Yes、S178)。
宛先グループ分割部132は、ステップS102からの処理を、最後の宛先の処理が完了するまで繰り返す(S180:No、S182、S102〜)。
最後の宛先の処理の完了をもって、フリットグループに含まれる複数の宛先は、1つ以上の宛先グループ(IPグループ、下グループ、上グループ)に分割される。
図8は、本実施の形態のNoCシステム100におけるフリットグループの転送態様の一例を示す。図8は、ルータR12、ルータR22、ルータR33の3つを宛先とするフリットグループがルータR11から転送する例である。
なお、このフリットグループの宛先情報128が示す3つの宛先が、R33、R12、R22である。
ルータR11は、まず、1つ目の宛先(ルータR33)を処理する。ルータR33が2つ下の階層に位置するルータであるため、ルータR11は、1つの下グループを生成し、ルータR33を該下グループに割り当てる。なお、この下グループのグループ転送方向が、ルータR23に向かう方向であるとする。
次いで、ルータR11は、2つ目の宛先(ルータR12)を処理する。ルータR12が、ルータR11と同階層に位置し、かつ、既に下グループがあるため、ルータR11は、ルータR12を該下グループに割り当てる。その結果、ルータR23をグループ転送方向とする下グループには、ルータR12とルータR33が含まれることになる。
次いで、ルータR11は、最後の宛先(ルータR22)を処理する。ルータR22は、1つ下の階層に位置する。また、下グループが既にあるものの、該下グループのグループ転送方向がルータR23に向かう方向であり、ルータR22に向かう方向ではないため、ルータR11は、ルータR22に向かう方向をグループ転送方向とする下グループを新たに生成すると共に、ルータR22をこの下グループに割り当てる。
その結果、ルータR23には、宛先情報がルータR12とルータR33を示すフリットグループが転送され、ルータR22には、宛先情報がルータR22のみを示すフリットグループが転送される。
ルータR22は、該フリットグループを自身と接続されたIPに転送する。
ルータR23の処理を説明する。
ルータR12が1つ上の階層に位置し、かつ、上グループが無いため、ルータR23は、ルータR12に向かう方向をグループ転送方向とする上グループを生成し、ルータR12を該上グループに割り当てる。
また、ルータR33が1つ下の階層に位置し、かつ、下グループが無いため、ルータR23は、ルータR33に向かう方向をグループ転送方向とする下グループを生成し、ルータR33を該下グループに割り当てる。
その結果、ルータR12には、宛先情報がルータR12のみを示すフリットグループが転送され、ルータR33には、宛先情報がルータR33のみを示すフリットグループが転送される。ルータR12とルータR33は、自身に接続されたIPに、受信したフリットグループを転送する。
図8に示すように、NoCシステム100において、ルータR11に接続されたIPからルータR12、ルータR22、ルータR33へ同じデータを送信する場合に、4ホップで全ての目的地にデータが到達する。
ここで、NoCシステム100が従来のNoCシステムであると仮定して、ルータR11に接続されたIPからルータR12、ルータR22、ルータR33へ同じデータを送信する場合、全ての目的地にデータが到達するまでにかかるホップ数を考える。
図9は、固定型のNoCシステム場合の例である。また、ルータR11から、ルータR12とルータR33のいずれにフリットグループを転送するときも、ルータR23が経由されるようになっているとする。
図9に示すように、この場合、ルータR11→ルータR22の転送、ルータR11→R23→R33の転送、ルータR11→R23→R12の転送が行われ、計5ホップが必要である。
また、例えば、R12を宛先とするフリットグループ(フリットグループA)がルータR11によりルータR23に転送されているときに、ルータR33を宛先とするフリットグループ(フリットグループB)がNIからルータR11に出力されても、フリットグループAの転送が完了するまで、フリットグループBの転送が開始されない。
図10は、適応型のNoCシステム場合の例であり、ルータR11からルータ12への転送はルータR21を経由し、ルータR11からルータR33への転送はルータR23を経由しているようになっているとする。
図10に示すように、この場合、ルータR11→ルータR22の転送、ルータR11→R23→R33の転送、ルータR11→R21→R12の転送が行われ、図9に示す固定型の場合と同様に、計5ホップが必要である。
このように、本実施の形態のNoCシステム100によれば、従来の固定型と適応型のいずれのタイプのNoCシステムよりも、ホップ数を削減することができる。
なお、図8に示す例では、1ホップの削減効果しか得られていない。勿論、階層数が多いほど、また、一度に送信する宛先数が多いほど、NoCシステム100によるホップ数の削減効果は、大きくなる。
さらに、NoCシステム100は、従来の固定型のNoCシステムと比べ、転送経路の一部が重複する複数の宛先への転送時に生じる待ちを回避し、転送効率を一層高めることができる。また、適応型のNoCシステムと比べ、制御が簡単であり、ルータの負荷が小さいという利点もある。
ここで、図8に戻る。図8に示す例では、ルータR11は、2つの下グループを生成している。しかし、ルータR12とルータR33への転送も、ルータR22を経由するようにすることができる。
このようなことを実現するために、NoCシステム100における宛先グループ分割部132は、下記のように宛先の分割を行うことが好ましい。
つまり、宛先グループ分割部132は、フリットグループの宛先情報が示す複数の宛先のうちに、1つ下の階層に位置するNoCルータ(第1のNoCルータとする)に該当する宛先がある場合に、該宛先と、2つ以上下の階層に位置するNoCルータに該当する各宛先とが、第1のNoCルータに向かう方向をグループ転送方向とする下グループに含まれるようにする。
さらに、宛先グループ分割部132は、自身が設けられたNoCルータと同階層に位置する他のNoCルータに該当する各宛先が、他の宛先を含む1つの下グループ、または、他の宛先を含む1つの上グループに含まれるようにする。
同様に、宛先グループ分割部132は、フリットグループの宛先情報が示す複数の宛先のうちに、1つ上の階層に位置するNoCルータ(第2のNoCルータとする)に該当する宛先がある場合に、該宛先と、2つ以上上の階層に位置するNoCルータに該当する各宛先とが、第2のNoCルータに向かう方向をグループ転送方向とする上グループに含まれるようにする。
宛先グループ分割部132がこのように分割を行う場合、図8に示すフリットグループの転送態様は、図11に示すようになる。
ルータR11にとって、ルータR22が第1のNoCルータであり、ルータR33が2つ下の階層に位置するルータであり、ルータR12が同階層のルータである。そのため、宛先グループ分割部132は、ルータR22に向かう方向をグループ転送方向とする下グループを生成して、全ての宛先(ルータR22、ルータR33、ルータR12)を該下グループに割り当てる。
その結果、ルータR11から1つのフリットグループのみが転送される。このフリットグループは、ルータR22に転送され、宛先情報が、ルータR22、ルータR33、ルータR12の3つを示す。
ルータR22は、宛先情報からルータR12とルータR33を削除し、ルータR12のみを示す宛先情報を有するフリットグループをIPに転送する。
また、ルータR22は、宛先情報からルータR22とルータR33を削除し、ルータR12のみを示す宛先情報を有するフリットグループをルータR12に転送する。
さらに、ルータR22は、宛先情報からルータR22とルータR12を削除し、ルータR33のみを示す宛先情報を有するフリットグループをルータR33に転送する。
図11に示すように、この例では、NoCシステム100において、ルータR11に接続されたIPからルータR12、ルータR22、ルータR33へ同じデータを送信する場合、3ホップで全ての目的地にデータが到達する。図8と図11を比較すると明らかように、ホップ数の削減効果は、一層高められている。
なお、上記において、例として、現在のルータと同階層の他のルータに該当する宛先は、下グループに割り当てられるようになっている。現在のルータが第2の階層以下の階層に位置する場合には、同階層の他のルータに該当する宛先を、上グループに割り当てるようにしてもよい。
<第2の実施の形態>
図12は、第2の実施の形態にかかるNoCシステム200を示す。NoCシステム200は、メッシュ型のNoCシステムである。図12において、丸(202)はプロセッサ・コアなどのIPであり、小さい矩形(204)はNI(Network Interface)であり、大きい矩形(210)はルータである。
IP202は、第1の実施の形態にかかるNoCシステム100においてIP11と同様に、1つのデータに対して複数の目的地を指定できる。また、NI204も、NoCシステム100においてNI11と同様に、IP202からのデータをパケット化する際に、該データに対してIP202が指定した複数の目的地を含む宛先情報を生成する。NI204により作成された宛先情報フリットのフォーマットは、例えば図3に示したものと同様である。
なお、図12に示す例では、各ルータ210は、1つのNI204を介して1つのIP202と接続されるようになっているが、ルータ210には、必ずIPが接続されるとは限らず、また、接続されるIPの数も1つとは限らない。
図13は、NoCシステム200におけるルータ210を示す。分かりやすいように、図13は、ルータ210に対して、フリットグループが入力される側と、フリットグループを出力する側とを分けて示している。
なお、図13に示すルータ210は、5入力5出力のルータであり、右隣のルータ(X+)、左隣のルータ(X−)、真上のルータ(Y+)、真下のルータ(Y−)、IP202からフリットグループが入力され、これらの機能ブロックにフリットグループを出力する。
ここで、IP202が接続されており、かつ、上下左右に計4つの隣接ルータがあるルータ210を説明する。IP202が接続されていない場合には、IP202との間の入出力を含む処理をしない。また、上下左右の4つの方向のうちのいずれかの方向に隣接ルータが接続されていない場合には、該方向の隣接ルータとの間の入出力を含む処理をしない。例えば、NoCシステム200の左下端のルータ210は、左と真下の隣接ルータがないため、これらのルータとの間の入出力処理をしない。これらに関して、以下の説明において繰り返さない。
図13に示すように、ルータ210は、5つのバッファ(FIFO220〜228)、調停器230、ROM240、転送実行部260を備える。転送実行部260は、5つのセレクタ(セレクタ270〜278)、5つの宛先情報書換部(宛先情報書換部280〜288)を有する。
FIFO220〜228は、右隣ルータ、左ルータ、真上ルータ、真下ルータ、IP202(すなわちNI204)に夫々対応し、これらの機能ブロックから送信されてきたフリットグループを一時的に格納する。
調停器230は、FIFO220〜228のうちのどのバッファ内に格納されたフリットグループを転送するかの調停を行い、調停の結果に応じたFIFO選択信号S1を宛先グループ分割部300に出力する。
ROM240は、宛先グループ分割部300による処理のアルゴリズムを記述したプログラムPを格納しており、NoCシステム200の起動時に宛先グループ分割部300にロードされる。つまり、ROM240に格納されたプログラムPを変更することにより、宛先グループ分割部300の処理を変更可能である。
宛先グループ分割部300は、プログラムPの実行と、後述する各ハードウェアブロックとの協働により、調停器230からのFIFO選択信号S1が示すFIFOからフリットグループの宛先情報フリット(ヘッドフリットとする)を読み出して、該宛先情報が示す複数の宛先を1つ以上の宛先グループに分割する。
本実施の形態において、宛先グループ分割部300は、到達するまでの転送経路のうちの、当該ルータ210を起点とする一部の経路を共有可能な各宛先が、該一部の経路に出力する方向をグループ転送方向とする宛先グループに含まれるように、宛先情報128が示す複数の宛先を1つ以上の宛先グループに分割する。そして、分割の結果に応じて転送実行部260を制御する。
より具体的には、宛先グループ分割部300は、到達するまでに、ルータ210に接続されたIP202へ向かう方向と、X軸の正方向(X+へ向かう方向)と、X軸の負方向(X−へ向かう方向)と、Y軸の正方向(Y+へ向かう方向)と、Y軸の負方向(Y−へ向かう方向)の5つの方向のうちの同一の1つの方向への転送が必要な各宛先が、該同一の1つの方向をグループ転送方向とする1つの宛先グループに含まれるように、フリットグループの宛先情報128に含まれる複数の宛先を1つ以上の宛先グループに分割する。
図14のフローチャートを参照して、宛先グループ分割部300による宛先の分割処理の流れを説明する。
本実施の形態において、宛先情報が示す各宛先は、該宛先に該当するルータの座標値(X座標値,Y座標値)である。
図14に示すように、宛先グループ分割部300は、まず、フリットグループの宛先情報が示す複数の宛先のうちの、1番目の宛先のX座標値が、宛先グループ分割部300自身が設けられたルータ210のX座標値(X0)と一致するか否かを確認する(S200)。
そして、1番目の宛先のX座標値とX0が一致する場合に、宛先グループ分割部300は、さらに、該宛先のY座標値が、宛先グループ分割部300自身が設けられたルータ210のY座標値(Y0)と一致するか否かを確認する(S202:Yes、S210)。
宛先のY座標値とY0が一致する場合に、宛先グループ分割部300は、自身が設けられたルータが該宛先に該当するとして、該宛先を、IPへ向かう方向をグループ転送方向とするIPグループに決定する(S210:Yes、S212)。
一方、該宛先は、X座標値がX0と一致し、Y座標値がY0と一致しない場合には(S202:Yes、S210:No)、宛先グループ分割部300は、該宛先のY座標値がY0より大きいときには、上の隣接ルータに向かう方向をグループ転送方向とする「Y+グループ」に該宛先を割り当てる(S214:Yes、S216)。また、該宛先のY座標値がY0より小さいときには、宛先グループ分割部300は、下の隣接ルータに向かう方向をグループ転送方向とする「Y−」グループに該宛先を割り当てる(S214:No、S218)。
ステップS202において、宛先のX座標値とX0が一致しない場合に(S202:No)、宛先グループ分割部300は、該宛先のX座標値がX0より大きいときには、右隣ルータに向かう方向をグループ転送方向とする「X+グループ」に該宛先を割り当てる(S204:Yes、S206)。一方、該宛先のX座標値がX0より小さいときには、左隣ルータに向かう方向をグループ転送方向とする「X−」グループに該宛先を割り当てる(S204:No、S208)。
宛先グループ分割部300は、フリットグループの宛先情報が示す複数の宛先のうちの最後の宛先に対する上述の処理が完了するまで、ステップS202からの処理を繰り返す(S220:No、S222、S202〜)。
このように、宛先グループ分割部300は、X軸に沿った1つの転送方向のみが必要な宛先を、該転送方向をグループ転送方向とする宛先グループに決定する。また、宛先グループ分割部300は、Y軸に沿った1つの転送方向のみが必要な宛先を、該転送方向をグループ転送方向とする宛先グループに決定する。
X軸とY軸の両方に夫々沿った2つの転送方向が必要な宛先の場合、宛先グループ分割部300は、X軸を優先軸として、該宛先を、上記2つの転送方向のうちの、X軸に沿った転送方向をグループ転送方向とする宛先グループに決定する。
宛先グループ分割部300がFIFO220〜228のいずれか1つに格納されたフリットグループの宛先情報フリットFL1を読み出し、宛先グループを決定した後に、該フリットグループの各フリットは、当該FIFOから転送実行部260に出力される。
転送実行部260は、宛先グループ分割部300により得られた宛先グループ毎に、該宛先グループ内の宛先のみを含むものに宛先情報を書き換えた上で、該フリットグループ内の各フリットを、該宛先グループのグループ転送方向に順次転送する。
転送実行部260において、セレクタ270〜278の夫々は、5つのFIFO220〜228の全てに接続されている。すなわち、いずれのFIFOから出力されたフリットグループも、セレクタ270〜278に入力される。
セレクタ270〜278は、宛先グループ分割部300からのイネーブル信号ENにより制御される。イネーブル信号ENは、セレクタ270〜278のうちの1つ以上を選択的にイネーブルする信号である。
セレクタ270〜278のうちのイネーブルされた各セレクタは、選択動作を行う。その結果、FIFO220〜228のうちに、宛先グループ分割部300により宛先情報フリットが読みされたFIFOにおける先頭のフリットグループは、イネーブルされたセレクタから出力される。
宛先情報書換部280〜288は、セレクタ270〜278と一対一に接続しており、セレクタ270〜278の出力は、宛先情報書換部280〜288に夫々出力される。
例えば、セレクタ270とセレクタ272がイネーブルされた場合に、宛先情報書換部280と宛先情報書換部282に同一のフリットグループが入力され、セレクタ270のみがイネーブルされた場合には、宛先情報書換部280にのみフリットグループが入力される。
後に詳細を説明するが、宛先グループ分割部300は、セレクタ270〜278のうちのイネーブルした各セレクタに夫々対応する宛先情報書換部に、異なる座標情報COを入力する。1つの座標情報COは、宛先グループ分割部300により得られた1つの宛先グループに含まれる全ての宛先を示すものである。
宛先情報書換部280〜288のうちの、座標情報COが入力された宛先情報書換部は、入力されたフリットグループ内の宛先情報フリットに含まれる宛先情報を、座標情報COに書き換えた上で、該フリットグループを出力する。
なお、宛先情報書換部280〜288は、右隣のルータ(X+)と、左隣のルータ(X−)と、真上のルータ(Y+)と、真下のルータ(Y−)、IP202(正確にはNI204)に夫々接続されている。
図15は、宛先グループ分割部300の構成の一例を示す。図15に示す例では、宛先グループ分割部300は、セレクタ310、宛先解析部312、受信レジスタ314、座標レジスタ316、比較器318、比較器320、座標演算部322、セレクタ324、レジスタ326、送信レジスタ330を備える。
セレクタ310は、調停器230からのFIFO選択信号S1が示すFIFOを選択し、該FIFOの先頭にあるフリットグループの宛先情報フリット(ヘッドフリットFL1)を宛先解析部312に出力する。
宛先解析部312は、宛先情報フリットFL1に含まれる宛先情報を解析し、該宛先情報が示す各宛先を抽出して受信レジスタ314に格納する。前述した通り、本実施の形態において、宛先は、該宛先に該当するルータの座標値である。
受信レジスタ314は、宛先解析部312が得た各宛先を格納すると共に、座標演算部322からのレジスタ選択信号S2に従って、該レジスタ選択信号S2が示す1つの宛先を出力する。なお、座標演算部322は、受信レジスタ314に格納された最後の宛先が出力されるまで、各宛先が順次出力されるように、レジスタ選択信号S2を受信レジスタ314に出力する。
座標レジスタ316は、宛先グループ分割部300自身が設けられたルータ210の座標値(X0,Y0)を格納している。
比較器318は、座標レジスタ316に格納されたX座標値(X0)と、受信レジスタ314が出力した宛先のX座標値とを比較し、「一致」、「X+」、「X−」のいずれか1つを示す比較結果を座標演算部322に出力する。
比較器318は、具体的には、座標レジスタ316に格納されたX座標値(X0)と、受信レジスタ314からのX座標値とが同一である場合に「一致」を示す信号を出力する。また、受信レジスタ314からのX座標値がX0より大きいときには、比較器318は、「X+」を示す信号を出力する。また、受信レジスタ314からのX座標値がX0より小さいときには、比較器318は、「X−」を示す信号を出力する。
すなわち、比較器318が出力した信号は、当該宛先が、到達するまでに、X軸における転送が必要か否か、必要な場合には正方向か負方向のいずれの方向への転送が必要であるかを示す信号である。
比較器320は、座標レジスタ316に格納されたY座標値(Y0)と、受信レジスタ314が出力した宛先のY座標値とを比較し、「一致」、「Y+」、「Y−」のいずれか1つを示す比較結果を座標演算部322に出力する。
比較器320は、具体的には、座標レジスタ316に格納されたY座標値(Y0)と、受信レジスタ314からのY座標値とが同一である場合に「一致」を示す信号を出力する。また、受信レジスタ314からのY座標値がY0より大きいときには、比較器320は、「Y+」を示す信号を出力する。また、受信レジスタ314からのY座標値がY0より小さいときには、比較器320は、「Y−」を示す信号を出力する。
すなわち、比較器320が出力した信号は、当該宛先が、Y軸における転送が必要であるか否か、必要な場合には正方向か負方向のいずれの方向への転送が必要であるかを示す信号である。
受信レジスタ314が座標演算部322からのレジスタ選択信号S2に従って出力した宛先の座標値は、レジスタ326にも出力される。
レジスタ326は、バッファとして機能するレジスタであり、受信レジスタ314からの宛先の座標値を一時的に格納する。
座標演算部322は、ROM240からロードしたプログラムPを実行し、比較器318と比較器320からの比較結果に応じて、該宛先が属すべき宛先グループを決定する。そして、座標演算部322は、決定に応じて、イネーブル信号ENを生成してセレクタ270〜278のうちの該当するセレクタに出力すると共に、宛先グループ選択信号S3を生成してセレクタ324に出力する。
セレクタ324は、座標演算部322から宛先グループ選択信号S3を受信すると、レジスタ326に格納されている宛先を、送信レジスタ330に出力する。
送信レジスタ330は、宛先情報書換部280〜288に夫々対応する領域を有し、各領域は、複数の宛先を格納できる。
座標演算部322が出力した宛先グループ選択信号S3は、送信レジスタ330の5つ領域のうちの1つを示すものであり、セレクタ324は、宛先グループ選択信号S3に従って、レジスタ326に格納された宛先を、宛先グループ選択信号S3が示す領域に出力する。
受信レジスタ314に格納された全ての宛先が送信レジスタ330に書き込まれた後に、宛先情報書換部280〜288のうちの該当する各宛先情報書換部は、送信レジスタ330の対応する領域から、該領域に格納された各宛先を読み出す。これらの宛先は、前述した座標情報COである。
図16は、NoCシステム200によるフリットグループの転送態様の一例を示す図である。この例において、IPからフリットグループを受信するルータと、各宛先に該当する夫々のルータとの位置関係は、図31に示す例と同様である。
ルータR00は、IPから受信したフリットグループの宛先情報がルータR65とルータR88を示し、いずれの宛先もX軸の正方向とY軸の正方向への転送が必要であるため、該フリットグループをX軸の正方向に沿って右のルータに転送する。
ルータR00とルータR60の間の各ルータも、ルータR00と同様の転送をするため、ルータR60が受信したフリットグループの宛先情報は、相変わらずルータR65とルータR88を示す。
ルータR60にとって、ルータR65に該当する宛先が、Y軸の正方向への転送のみを必要とし、ルータR88に該当する宛先が、X軸の正方向とY軸の正方向への転送が必要である。そのため、ルータR60は、ルータR65が、Y軸の正方向をグループ転送方向とする宛先グループに含まれ、ルータR88が、X軸の正方向をグループ転送方向とする宛先グループに含まれるように該2つの宛先を2つの宛先グループに分割する。
その結果、宛先情報がルータR65のみを示すフリットグループがルータR60から1つ上のルータに転送され、ルータR60とルータR65間の各ルータを経由して、目的地のルータR65に到達する。
また、宛先情報がルータR88のみを示すフリットグループがルータR60から右に転送され、ルータR60とルータR80間の各ルータを経由してルータR80に到達し、ルータR80により1つ上のルータに転送され、ルータR80とルータR88間の各ルータを経由して、目的地のルータR88に到達する。
図16に示すように、この例の場合には、全ての宛先にフリットグループが到達するまで、21ホップが必要である。
対して、図31の場合には、必要なホップ数が27である。
なお、図31は、固定型のNoCシステムの場合の例を示している。適応型の従来のNoCシステムにおいて、ルータR00からルータR65とルータR88へ2つのフリットグループを転送する場合に、該2つのフリットグループの転送経路に共通した部分が無いようにすることができるが、かかるホップ数は、固定型のNoCシステムの場合と変わらない。
以上の説明から分かるように、本実施の形態のNoCシステム200によれば、従来の固定型と適応型のいずれのタイプのNoCシステムよりも、ホップ数を削減することができる。
また、固定型のNoCシステムと比べ、転送経路の一部が重複する複数の宛先への転送時に生じる待ちを回避し、転送効率をより高めることができる。適応型のNoCシステムと比べ、制御が簡単であり、ルータの負荷が小さいという利点がある。
後の他の実施の形態と比較するために、NoCシステム200によるフリットグループの転送態様の他の2つの例を図17と図18に示す。この2つの例において、全ての宛先にフリットグループが到達するまでに必要なホップ数は、夫々41と48である。
<第3の実施の形態>
第2の実施の形態にかかるNoCシステム200において、宛先グループ分割部300は、X軸を優先軸とし、X軸とY軸の両方に沿った転送方向が必要な宛先を、該2つの転送方向のうちの、X軸に沿った転送方向をグループ転送方向とする宛先グループに振り分けている。
例えば、図16に示すように、ルータR60にとって、ルータR88が、ルータR60を原点とした座標系の第1象限にあり、X軸の正方向とY軸の正方向の両方の転送方向が必要な宛先である。そのため、ルータR60は、ルータR88を、X軸の正方向をグループ転送方向とする宛先グループに決定する。
本第3の実施の形態も、メッシュ型のNoCシステムであり、それに設けられた各ルータの宛先グループ分割部がY軸を優先軸とする点以外、第2の実施の形態にかかるNoCシステム200と同様である。
すなわち、本実施の形態のNoCシステムにおいて、宛先グループ分割部は、X軸とY軸の両方に沿った転送方向が必要な宛先を、該2つの転送方向のうちのY軸に沿った転送方向をグループ転送方向とする宛先グループに決定する。
図19は、本第3の実施の形態にかかるNoCシステムによるフリットグループの転送態様の一例を示す図である。この例において、IPからフリットグループを受信するルータと、各宛先に該当する夫々のルータとの位置関係は、図31に示す例と同様である。
ルータR00は、IPから受信したフリットグループの宛先情報がルータR65とルータR88を示し、いずれの宛先もX軸の正方向とY軸の正方向への転送が必要であるため、該フリットグループをY軸の正方向に沿って上のルータに転送する。
ルータR00とルータR05の間の各ルータも、ルータR00と同様の転送をするため、ルータR05が受信したフリットグループの宛先情報は、相変わらずルータR65とルータR88を示す。
ルータR05にとって、ルータR65に該当する宛先が、X軸の正方向への転送のみを必要とし、ルータR88に該当する宛先が、X軸の正方向とY軸の正方向への転送が必要である。そのため、ルータR05は、ルータR65が、X軸の正方向をグループ転送方向とする宛先グループに含まれ、ルータR88が、Y軸の正方向をグループ転送方向とする宛先グループに含まれるように該2つの宛先を2つの宛先グループに分割する。
その結果、宛先情報がルータR65のみを示すフリットグループがルータR05から1つ右のルータに転送され、ルータR05とルータR65間の各ルータを経由して、目的地のルータR65に到達する。
また、宛先情報がルータR88のみを示すフリットグループがルータR05から右に転送され、ルータR05とルータR08間の各ルータを経由してルータR08に到達し、ルータR00により1つ右のルータに転送され、ルータR08とルータR88間の各ルータを経由して、目的地のルータR88に到達する。
図19に示すように、この例の場合には、全ての宛先にフリットグループが到達するまで、22ホップが必要である。
すなわち、本第3の実施の形態にかかるNoCシステムも、NoCシステム200と同様に、従来の固定型と適応型のいずれのタイプのNoCシステムよりも、ホップ数を削減することができる。勿論、NoCシステム200により得られる他の効果も得ることができる。
<第4の実施の形態>
第4の実施の形態も、メッシュ型のNoCシステムである。該NoCシステムは、それに設けられた各ルータの宛先グループ分割部による優先軸を決める手法が、第2の実施の形態にかかるNoCシステム200における宛先グループ分割部300の手法と異なる点を除き、NoCシステム200と同様である。
本実施の形態のNoCシステムにおいて、宛先グループ分割部は、フリットグループの宛先情報が示す複数の宛先に、X軸とY軸のうちの片方に沿った転送方向のみを必要とする宛先が無い場合には、NoCシステム200の宛先グループ分割部300と同様の手法で、X軸を優先軸にして該複数の宛先を分割する。
一方、フリットグループの複数の宛先のうちに、X軸とY軸のうちの片方に沿った転送方向のみを必要とする宛先がある場合に、宛先グループ分割部は、該転送方向を優先軸に決定する。そのため、該転送方向のみを必要とする全ての宛先と共に、必要な転送方向のうちに上記転送方向が含まれる全ての宛先は、同一のフリットグループに決定される。
例えば、X軸の正方向への転送のみを必要とする宛先がある場合に、X軸が優先軸に決定される。そのため、X軸の正方向への転送のみを必要とする全ての宛先と共に、Y軸の正方向とY軸の負方向のいずれか一方と、X軸の正方向との両方の転送方向が必要な各宛先は、X軸の正方向をグループ転送方向とする宛先グループに振り分けられる。
また、例えば、Y軸の負方向への転送のみを必要とする宛先がある場合に、Y軸が優先軸に決定される。そのため、Y軸の負方向への転送のみを必要とする全ての宛先と共に、X軸の正方向とX軸の負方向のいずれか一方と、Y軸の負方向の両方の転送方向とが必要な各宛先は、Y軸の負方向をグループ転送方向とする宛先グループに振り分けられる。
さらに、フリットグループの複数の宛先に、X軸とY軸の一方に沿った転送方向のみを必要とする宛先に加え、X軸とY軸の他方に沿った転送方向のみを有する宛先もある場合には、宛先グループ分割部は、X軸を優先軸に決定する。
例えば、X軸の正方向への転送のみを必要とする宛先と、Y軸の負方向への転送のみを必要とする宛先がある場合に、X軸が優先軸に決定される。そのため、X軸の正方向への転送のみを必要とする全ての宛先と共に、Y軸の正方向とY軸の負方向のいずれか一方と、X軸の正方向との両方の転送方向が必要な各宛先は、X軸の正方向をグループ転送方向とする宛先グループに振り分けられる。Y軸の負方向への転送のみを必要とする各宛先は、Y軸の負方向をグループ転送方向とする宛先グループに決定される。
図20は、本第4の実施の形態にかかるNoCシステムによるフリットグループの転送態様の一例を示す図である。この例において、IPからフリットグループを受信するルータと、各宛先に該当する夫々のルータとの位置関係は、図31と、NoCシステム200を説明する際に例示した図16に示す例と同様である。
ルータR00〜R60までは、図16に示した例の場合と同様である。
ルータR60にとって、ルータR65に該当する宛先が、Y軸の正方向への転送のみを必要とし、ルータR88に該当する宛先が、X軸の正方向とY軸の正方向への転送が必要である。従って、ルータR60は、Y軸を優先軸に決定する。その結果、ルータR65とルータR88は、同一のフリットグループに決定され、ルータR60の1つ上のルータに転送される。
ルータR60とルータR65の間の各ルータも、ルータR60と同様の転送をするため、ルータR65に到達した宛先グループの宛先情報には、ルータR65とルータR88の両方が含まれたままである。
そして、宛先情報がルータR65のみを示すフリットグループは、ルータR65のIPに転送され、宛先情報がルータR88のみを示すフリットグループは、ルータR65とルータR85の間の各ルータ、ルータR85、ルータR85とルータR88の間の各ルータを経由してルータR88に到達し、ルータR88のIPに転送される。
図20に示すように、この例の場合には、全ての宛先にフリットグループが到達するまで、16ホップが必要である。
以上の説明から明らかなように、本第4の実施の形態にかかるNoCシステムも、従来のNoCシステムに比べ、NoCシステム200と同様の効果を得ることができる。
図21と図22は、本第4の実施の形態のNoCシステムによるフリットグループの転送態様の他の2つの例を示す。この2つの例は、NoCシステム200を説明する時に例示した図17と図18に示す例と夫々対応する。
図20では、フリットグループの複数の宛先に、X軸とY軸の一方に沿った転送方向のみを必要とする宛先に加え、X軸とY軸の他方に沿った転送方向のみを有する宛先もある場合を例示していない。この場合について、図21と図22に例示しているが、図21におけるルータR00を代表にして説明する。
図21に示す例において、ルータR00にとって、ルータR10、ルータR20は、X軸の正方向への転送のみを必要とする宛先である。また、ルータR04は、Y軸の正方向への転送のみを必要とする宛先である。他の各宛先は、X軸の正方向とY軸の正方向の両方への転送が必要な宛先である。
そのため、ルータR00は、X軸を優先軸に決定する。その結果、宛先情報がルータR04のみを示すフリットグループは、ルータR00の1つ上のルータに転送され、宛先ジ情報が他の全てのルータを示すフリットグループは、ルータR00の右隣のルータに転送される。
ここで、図16〜図18と、図20〜図22とを参照して、本第4の実施の形態にかかるNoCシステムとNoCシステム200の転送効率を比較する。
まず、図16と図20を比較する。
図16に示すように、NoCシステム200の場合、全てのフリットグループが目的地に到達するまでに必要なホップ数は、21である。
対して、図20に示すように、本第4の実施の形態にかかるNoCシステムでは、全てのフリットグループが目的地に到達するまでに必要なホップ数は、16である。
次いで、図17と図21を比較する。
図17に示すように、NoCシステム200の場合、全てのフリットグループが目的地に到達するまでに必要なホップ数は、41である。
対して、図21に示すように、本第4の実施の形態にかかるNoCシステムでは、全てのフリットグループが目的地に到達するまでに必要なホップ数は、37である。
最後に、図18と図22を比較する。
図18に示すように、NoCシステム200の場合、全てのフリットグループが目的地に到達するまでに必要なホップ数は、48である。
対して、図22に示すように、本第4の実施の形態にかかるNoCシステムでは、全てのフリットグループが目的地に到達するまでに必要なホップ数は、20である。
NoCシステム200では、宛先グループ分割部300は、優先軸をX軸に固定している。
対して、本第4の実施の形態にかかるNoCシステムでは、宛先グループ分割部は、フリットグループの複数の宛先に、X軸とY軸のうちの片方に沿った転送方向のみを必要とする宛先があるときに、該転送方向を優先軸に決定する。その結果、多くの場合において、NoCシステム200より、さらに多くのホップ数を削減することができる。これについては、第3の実施の形態にかかるNoCシステムと比べた場合においても同様である。
<第5の実施の形態>
第4の実施の形態にかかるNoCシステムでは、宛先グループ分割部は、フリットグループの複数の宛先に、X軸とY軸の一方に沿った転送方向のみを必要とする宛先に加え、X軸とY軸の他方に沿った転送方向のみを有する宛先もある場合には、X軸を優先軸に決定する。
本第5の実施の形態は、メッシュ型のNoCシステムである。該NoCシステムおいて、各ルータの宛先グループ分割部は、X軸とY軸の一方に沿った転送方向のみを必要とする宛先に加え、X軸とY軸の他方に沿った転送方向のみを有する宛先もある場合には、Y軸を優先軸に決定する。この点を除き、本第5の実施の形態にかかるNoCシステムは、第4の実施の形態のNoCシステムと同様である。
該NoCシステムは、従来のNoCシステムと比べ、第2の実施の形態にかかるNoCシステム200と同様の効果を得ることができる。これについては、明らかであるため、従来のNoCシステムと比較するための例示を省略する。
図23と図24は、本第5の実施の形態のNoCシステムによるフリットグループの転送態様の2つの例を示す。この2つの例は、NoCシステム200を説明する時に例示した図17と図18に示す例と夫々対応する。
本第5の実施の形態にかかるNoCシステムは、第4の実施の形態にかかるNoCシステムと同様に、多くの場合において、NoCシステム200より、さらに多くのホップ数を削減することができる。これについて、図17と図23の比較、図18と図24の比較からも明らかである。
<第6の実施の形態>
第6の実施の形態も、メッシュ型のNoCシステムである。該NoCシステムは、各ルータの宛先グループ分割部による優先軸を決める手法が、第5の実施の形態にかかるNoCシステムにおける宛先グループ分割部の手法と異なる点を除き、第5の実施の形態のNoCシステムと同様である。
また、優先軸を決める手法においても、X軸とY軸の一方に沿った転送方向のみを必要とする宛先に加え、X軸とY軸の他方に沿った転送方向のみを有する宛先もある場合においてのみ、第5の実施の形態のNoCシステムと異なる。説明上の便宜のため、以下、この場合に該当するときに、X軸とY軸の一方に沿った転送方向のみを必要とする宛先を「第1の宛先」といい、X軸とY軸の他方に沿った転送方向のみを有する宛先を「第2の宛先」という。
前述したように、第5の実施の形態のNoCシステムにおいて、宛先グループ分割部は、フリットグループの複数の宛先に第1の宛先と第2の宛先がある場合に、Y軸を優先軸に決定する。
なお、第4の実施の形態のNoCシステムにおいて、宛先グループ分割部は、フリットグループの複数の宛先に、第1の宛先と第2の宛先がある場合に、X軸を優先軸に決定している。
対して、本第6の実施の形態のNoCシステムでは、宛先グループ分割部は、第1の宛先と第2の宛先がある場合に、固定した軸を優先軸に決める手法を用いず、フリットグループの転送軸に応じて優先軸を決定する。
ここでいう「転送軸」は、1つ前のルータからフリットグループが転送されてきた際に沿った軸を意味する。例えば、1つ前のルータと現在のルータのY座標値が同じである場合に、フリットグループの転送軸はX軸になる。また、1つ前のルータと現在のルータのX座標値が同じである場合に、フリットグループの転送軸はY軸になる。
通常のNoCシステムにおけるルータの構成を示す図28から分かるように、NoCシステムのルータには、転送軸の正方向と負方向毎にバッファ(図28におけるFIFO12)が設けられている。また、IPに対応するバッファも設けられている。
そのため、本第6の実施の形態のNoCシステムにおいて、宛先グループ分割部は、処理対象となるフリットグループがいずれのバッファに格納されているかに基づいて、該フリットグループがIPから転送されたか否かを確認することができると共に、他のルータから転送されてきたフリットグループの場合には、その転送軸の確認もできる。
本第6のNoCシステムにおける宛先グループ分割部は、フリットグループの複数の宛先のうちに、第1の宛先と第2の宛先がある場合に、X軸とY軸のうちの、転送軸と異なる一方を優先軸に決定する。
例えば、右隣のルータから転送されてきたフリットグループの場合、転送軸がX軸となる。このフリットグループの複数の宛先に第1の宛先と第2の宛先の両方がある場合に、宛先グループ分割部は、Y軸を優先軸に決定する。
図25と図26は、本第6の実施の形態のNoCシステムによるフリットグループの転送態様の2つの例を示す。この2つの例は、第5の実施の形態を説明する時に例示した図23と図24に示す例と夫々対応する。
図23と図25を比較すると、例えば、ルータR01によるグループ分けが異なることが分かる。
図23において、ルータR01は、第1の宛先(ルータR81)と、第2の宛先(ルータR04)があるため、優先軸をY軸に決定する。その結果、宛先情報がルータR81ののみを示すフリットグループは、ルータR01から右に転送され、宛先情報が他の全ての目的地を示すフリットグループは、ルータR01から上に転送される。
一方、図25において、ルータR01が受信したフリットグループは、ルータR00から転送されてきたものであり、転送軸がY軸になる。そのため、ルータR01は、優先軸をX軸に決定する。その結果、宛先情報がルータR04ののみを示すフリットグループは、ルータR01から上に転送され、宛先情報が他の全ての目的地を示すフリットグループは、ルータR01から右に転送される。
図23に示すように、第5の実施の形態のNoCシステムの場合、全てのフリットグループが目的地に到達するまでに必要なホップ数は、35である。
対して、図25に示すように、本第6の実施の形態にかかるNoCシステムでは、全てのフリットグループが目的地に到達するまでに必要なホップ数は、39である。
また、図24に示すように、第5の実施の形態のNoCシステムの場合、全てのフリットグループが目的地に到達するまでに必要なホップ数は、20である。
対して、図26に示すように、本第6の実施の形態にかかるNoCシステムでは、全てのフリットグループが目的地に到達するまでに必要なホップ数は、20である。
第6の実施の形態にかかるNoCシステムは、従来のNoCシステムと比べ、第2〜第5の各実施の形態にかかるNoCシステムと同様の効果を得ることができる。これについては、明らかであるため、従来のNoCシステムと比較するための例示を省略する。
また、第4と第5の実施の形態にかかるNoCシステムと同様に、多くの場合において、第2の実施の形態のNoCシステム200より、さらに多くのホップ数を削減することができる。
但し、第4と第5の実施の形態にかかるNoCシステムより、常に多くのホップ数を削減することができるとは限らない。
しかしながら、本第6の実施の形態にかかるNoCシステムは、第1の宛先と第2の宛先がある場合に、転送軸に応じて優先軸を決定するため、宛先情報が示す宛先の数が多いほど、また、これらの宛先のばらつきが大きいほど、優先軸が頻繁に変化する。その結果、宛先情報が示す宛先の数が多いほど、また、これらの宛先のばらつきが大きい場合には、第4と第5の実施の形態にかかるNoCシステムより、多くのホップ数を削減できる可能性が大きい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
例えば、上述した各実施の形態において、まず、どのフリットグループを先に転送するかの調停が行われ、そして、調停の結果に応じて選択されたフリットグループに対して、宛先グループの割当てが行われるようになっている。上記調停、宛先グループの割当ての順序は、前後してもよい。
具体的には、例えば、全てのバッファにある全てのフリットグループについて、宛先情報が含まれるフリット(例えばヘッドフリット)をバッファから読み出し、読み出したフリット毎に、該フリットに含まれるアドレス情報に基づいて宛先グループの割当てをしてから上記調停を行い、調停の結果に応じて選択されたフリットグループを、該フリットグループに対する宛先グループの割当ての結果に基づいて転送するようにしてもよい。
10 ルータ 11 パス
12 FIFO 14 調停器
16 XBAR 20 IP
22 ネットワークインタフェース 24 ルータ
26 ルータ 28 NI
30 IP 42 ヘッダ
44 制御信号部 46 出発地情報
48 宛先情報 100 NoCシステム
112 受信部 114 パケット化部
116 送信部 122 ヘッダ
124 制御信号部 126 出発地情報
128 宛先情報 132 宛先グループ分割部
134 転送実行部 200 NoCシステム
202 IP 204 ネットワークインタフェース
210 ルータ 220〜228 FIFO
230 調停器 240 ROM
260 転送実行部 270〜278 セレクタ
280〜288 宛先情報書換部 300 宛先グループ分割部
310 セレクタ 312 宛先解析部
314 受信レジスタ 316 座標レジスタ
318 比較器 320 比較器
322 座標演算部 324 セレクタ
326 レジスタ 330 送信レジスタ
AD1、AD2 アドレス
CO 座標情報
D0 データ
DES1、DES2 宛先
DESG1、DESG2 宛先グループ
EN イネーブル信号
FL1、FL2、FL3 フリット
FLG フリットグループ
NI ネットワークインタフェース
P プログラム
R00〜R88 NoCルータ
S1 FIFO選択信号
S2 レジスタ選択信号
S3 宛先グループ選択信号

Claims (14)

  1. NoC(NoC:Network on Chip)システムにおいて、ヘッドフリットからテイルフリットまでの複数のフリットを有し、1つの前記フリットに宛先情報が含まれるフリットグループ内の各フリットを順次転送するNoCルータであって、
    前記宛先情報が複数の宛先を示す前記フリットグループに対して、
    到達するまでの転送経路のうちの、前記NoCルータを起点とする一部の経路を共有可能な各宛先が、前記一部の経路に出力する方向をグループ転送方向とする宛先グループに含まれるように、前記複数の宛先を1つ以上の前記宛先グループに分割する宛先グループ分割部と、
    前記宛先グループ分割部により得られた前記宛先グループ毎に、該宛先グループに含まれない各宛先を前記宛先情報から削除した上で、前記フリットグループ内の各フリットを、前記宛先グループの前記グループ転送方向に順次転送する転送実行部と、
    を備えるNoCルータ。
  2. メッシュ型のNoCシステムに設けられ、
    前記宛先グループ分割部は、
    到達するまでに、前記NoCルータに接続されたIP(Intellectual Property)へ向かう方向と、X軸の正方向と、X軸の負方向と、Y軸の正方向と、Y軸の負方向の5つの方向のうちの同一の1つの方向への転送が必要な各宛先が、前記同一の1つの方向を前記グループ転送方向とする1つの前記宛先グループに含まれるように、前記複数の宛先を1つ以上の前記宛先グループに分割する
    請求項1に記載のNoCルータ。
  3. 前記宛先グループ分割部は、
    X軸とY軸のいずれか一方を優先軸とし、
    X軸とY軸の両方に夫々沿った2つの転送方向が必要な宛先を、前記2つの転送方向のうちの前記優先軸に沿った転送方向を前記グループ転送方向とする前記宛先グループに決定する、
    請求項2に記載のNoCルータ。
  4. 前記宛先グループ分割部は、
    X軸とY軸の片方に沿った転送方向のみを必要とする第1の宛先がある場合に、前記片方の軸を前記優先軸に決定する、
    請求項3に記載のNoCルータ。
  5. 前記宛先グループ分割部は、
    前記第1の宛先と共に、X軸とY軸の他方に沿った転送方向のみを必要とする第2の宛先がある場合に、X軸とY軸のいずれか一方を前記優先軸に決定する、
    請求項4に記載のNoCルータ。
  6. 前記フリットグループは、X軸とY軸のいずれか一方である転送軸に沿って転送されてきたものであり、
    前記宛先グループ分割部は、
    前記第1の宛先と前記第2の宛先がある場合に、X軸とY軸のうちの、前記転送軸と異なる一方を前記優先軸に決定する、
    請求項5に記載のNoCルータ。
  7. 前記宛先情報は、前記複数の宛先毎の座標値を示しうるものであり、
    前記宛先グループ分割部は、
    前記複数の宛先毎に、該宛先の座標値と前記NoCルータの座標値との比較をし、前記比較結果に応じて前記複数の宛先を分割する、
    請求項2から6のいずれか1項に記載のNoCルータ。
  8. ツリー型のNoCシステムに設けられ、
    前記宛先グループ分割部は、前記複数の宛先のうちの、2つ以上下の階層に位置するNoCルータに該当する各宛先が同一の1つの下グループに含まれ、2つ以上上の階層に位置するNoCルータに該当する各宛先が同一の1つの上グループに含まれるように、前記複数の宛先を1つ以上の前記宛先グループに分割し、
    前記下グループは、1つ下の階層に位置するNoCルータのうちのいずれか1つへ向かう方向を前記グループ転送方向とする前記宛先グループであり、
    前記上グループは、1つ上の階層に位置するNoCルータのうちのいずれか1つへ向かう方向を前記グループ転送方向とする前記宛先グループである、
    請求項1に記載のNoCルータ。
  9. 前記宛先グループ分割部は、
    前記複数の宛先のうちに、1つ下の階層に位置するNoCルータである第1のNoCルータに該当する宛先がある場合に、該宛先と、2つ以上下の階層に位置するNoCルータに該当する各宛先とが、前記第1のNoCルータに向かう方向を前記グループ転送方向とする前記下グループに含まれ、
    前記複数の宛先のうちに、1つ上の階層に位置するNoCルータである第2のNoCルータに該当する宛先がある場合に、該宛先と、2つ以上上の階層に位置するNoCルータに該当する各宛先とが、前記第2のNoCルータに向かう方向を前記グループ転送方向とする前記上グループに含まれるように、
    前記複数の宛先を1つ以上の前記宛先グループに分割する、
    請求項8に記載のNoCルータ。
  10. 前記宛先グループ分割部は、
    前記複数の宛先のうちの、前記宛先グループ分割部が設けられたNoCルータと同階層に位置する他のNoCルータに該当する各宛先が、他の宛先を含む1つの前記下グループ、または、他の宛先を含む1つの前記上グループに含まれるように、
    前記複数の宛先を1つ以上の前記宛先グループに分割する、
    請求項8または9に記載のNoCルータ。
  11. NoC(NoC:Network on Chip)システムにおけるIP(Intellectual Property)とNoCルータの間に接続されたネットワークインタフェースであって、
    前記IPが出力したデータを受信する受信部と、
    前記受信部により受信したデータをパケット化して、ヘッドフリットからテイルフリットまでの複数のフリットを有し、1つの前記フリットに宛先情報が含まれるフリットグループを生成するパケット化部と、
    前記パケット化部により生成したフリットグループ内の各フリットを前記NoCルータに順次出力する送信部とを備え、
    前記受信部は、前記IPにより前記データに対して複数の宛先を指定可能であり、
    前記パケット化部は、前記宛先情報として前記複数の宛先を示すものを生成する、
    ネットワークインタフェース。
  12. NoC(NoC:Network on Chip)システムであって、
    ヘッドフリットからテイルフリットまでの複数のフリットを有し、1つの前記フリットに宛先情報が含まれるフリットグループ内の各フリットを順次転送する複数のNoCルータと、
    複数のIP(Intellectual Property)と、
    複数のネットワークインタフェースであって、各前記ネットワークフェースが、1つの前記NoCルータと1つの前記IPの間に接続され、前記IPが出力したデータをパケット化し、前記フリットグループを得て前記NoCルータに出力する前記複数のネットワークインタフェースとを備え、
    前記IPは、出力する前記データに対して複数の宛先を指定可能であり、
    前記ネットワークインタフェースは、前記データに対応する前記フリットグループを生成する際に、前記宛先情報として前記複数の宛先を示すものを生成し、
    前記NoCルータは、
    到達するまでの転送経路のうちの、前記NoCルータを起点とする一部の経路を共有可能な各宛先が、前記一部の経路に出力する方向をグループ転送方向とする宛先グループに含まれるように、前記複数の宛先を1つ以上の前記宛先グループに分割する宛先グループ分割部と、
    前記宛先グループ分割部により得られた前記宛先グループ毎に、該宛先グループに含まれない各宛先を前記宛先情報から削除した上で、前記フリットグループ内の各フリットを、前記宛先グループの前記グループ転送方向に順次転送する転送実行部と、
    を備えるNoCシステム。
  13. メッシュ型であり、
    前記NoCルータにおける前記宛先グループ分割部は、
    到達するまでに、前記NoCルータに接続されたIP(Intellectual Property)へ向かう方向と、X軸の正方向と、X軸の負方向と、Y軸の正方向と、Y軸の負方向の5つの方向のうちの同一の1つの方向への転送が必要な各宛先が、前記同一の1つの方向を前記グループ転送方向とする1つの前記宛先グループに含まれるように、前記複数の宛先を1つ以上の前記宛先グループに分割する、
    請求項12に記載のNoCシステム。
  14. ツリー型であり、
    前記NoCルータにおける前記宛先グループ分割部は、前記複数の宛先のうちの、2つ以上下の階層に位置するNoCルータに該当する各宛先が同一の1つの下グループに含まれ、2つ以上上の階層に位置するNoCルータに該当する各宛先が同一の1つの上グループに含まれるように、前記複数の宛先を1つ以上の前記宛先グループに分割し、
    前記下グループは、1つ下の階層に位置するNoCルータのうちのいずれか1つへ向かう方向を前記グループ転送方向とする前記宛先グループであり、
    前記上グループは、1つ上の階層に位置するNoCルータのうちのいずれか1つへ向かう方向を前記グループ転送方向とする前記宛先グループである、
    請求項13に記載のNoCシステム。
JP2012116465A 2012-05-22 2012-05-22 NoCルータ及びネットワークインタフェース並びにNoCシステム Pending JP2013243582A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012116465A JP2013243582A (ja) 2012-05-22 2012-05-22 NoCルータ及びネットワークインタフェース並びにNoCシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012116465A JP2013243582A (ja) 2012-05-22 2012-05-22 NoCルータ及びネットワークインタフェース並びにNoCシステム

Publications (1)

Publication Number Publication Date
JP2013243582A true JP2013243582A (ja) 2013-12-05

Family

ID=49844049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012116465A Pending JP2013243582A (ja) 2012-05-22 2012-05-22 NoCルータ及びネットワークインタフェース並びにNoCシステム

Country Status (1)

Country Link
JP (1) JP2013243582A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102187325B1 (ko) * 2019-09-02 2020-12-04 성균관대학교산학협력단 네트워크-온-칩의 신뢰성 향상을 위한 제어 신호의 오류 정정 기법 및 이를 위한 장치
CN113162906A (zh) * 2021-02-26 2021-07-23 西安微电子技术研究所 一种NoC传输方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102187325B1 (ko) * 2019-09-02 2020-12-04 성균관대학교산학협력단 네트워크-온-칩의 신뢰성 향상을 위한 제어 신호의 오류 정정 기법 및 이를 위한 장치
CN113162906A (zh) * 2021-02-26 2021-07-23 西安微电子技术研究所 一种NoC传输方法

Similar Documents

Publication Publication Date Title
JP5543894B2 (ja) NoCシステム及び入力切替装置
US8819611B2 (en) Asymmetric mesh NoC topologies
Schonwald et al. Fully adaptive fault-tolerant routing algorithm for network-on-chip architectures
JP6093867B2 (ja) インターコネクトにおける不均一なチャネル容量
CN103986664B (zh) 一种用于片上网络的混合互连Mesh拓扑结构及其路由算法
US9077616B2 (en) T-star interconnection network topology
JP5083464B2 (ja) ネットワークオンチップとネットワークルーティング方法とシステム
JP5276220B2 (ja) バス制御装置およびバス制御装置に指示を出力する制御装置
US10218581B2 (en) Generation of network-on-chip layout based on user specified topological constraints
US10091091B2 (en) Direct network having plural distributed connections to each resource
CN104579951B (zh) 片上网络中新颖的故障与拥塞模型下的容错方法
US10305825B2 (en) Bus control device, relay device, and bus system
US20070140280A1 (en) Computer chip for connecting devices on the chip utilizing star-torus topology
CN116886591B (zh) 计算机网络系统及路由方法
Uma et al. Network-on-chip (noc)-routing techniques: A study and analysis
JP2013243582A (ja) NoCルータ及びネットワークインタフェース並びにNoCシステム
CN116915708A (zh) 路由数据包的方法、处理器及可读存储介质
US9864728B2 (en) Automatic generation of physically aware aggregation/distribution networks
Rantala et al. Multi network interface architectures for fault tolerant Network-on-Chip
JP2019176255A (ja) ネットワークシステム、制御装置、処理規則設定方法及びプログラム
CN110825689B (zh) 电子芯片的实现方法及电子芯片
JP2016225729A (ja) ネットワークシステム、データ転送制御方法及び制御装置
Bourduas et al. Latency reduction of global traffic in wormhole-routed meshes using hierarchical rings for global routing
Khan Performance Analysis of XY Routing Algorithm using 2-D Mesh (M x N) Topology
Yang et al. RIPNoC: A distributed routing scheme for balancing on-chip network load