説明

半導体集積回路装置、経路決定回路及び経路決定方法

【課題】NoCにおけるルーティングにおいて、FIFOの個数を増加させることなく、ルータ間におけるパケット通信の回数を削減すること。
【解決手段】NoCにおけるIPコア間の経路を決定する経路決定回路であって、リクエストを送信した第1のIPコアから出力された目的地情報に基づいて、第1のIPコアから目的地の第2のIPコアまでの複数の経路候補を算出する経路候補算出部と、複数の経路候補の各経路候補上のルータの混雑度に基づいて、複数の経路候補のうちの最も混雑度が低い経路候補を経路として選択する経路選択部と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路装置、経路決定回路及び経路決定方法プログラムに関し、特に、ネットワークオンチップ(NoC:Network on Chip)、NoCに含まれるIPコア間の通信経路を決定する経路決定回路及び経路決定方法に関する。
【背景技術】
【0002】
近年、半導体プロセスの微細化が進むにつれて、単一のチップ内に搭載し得るIP(Intellectual Property)コアの個数が増加している。IPコア数の増加に伴い、IPコア同士を接続する配線の本数が増加するとともに複雑化し、配線上を流れるデータ量も増加してきている。
【0003】
このような状況に対処するために、ネットワークオンチップ(NoC:Network on Chip)が提案された。また、NoCにおけるデータの通信経路を設定する方法として、様々な方法が提案されている。特に、IPコア間のデータの通信経路を可能な限り短くするとともに、配線の混雑を回避して、通信の回数を削減するとともに消費電力を抑えることができるような通信経路決定手法が望まれている。例えば、非特許文献1に、NoCの技術動向が記載されている。
【0004】
図11は、NoCにおける処理について説明するための図である。従来のバス配線によると、図11におけるマスタ(Master)IPコアIPmとスレーブ(Slave)IPコアIPsとが、直接接続される。一方、NoCでは、ネットワークインタフェース(Network Interface)NImが、マスタIPコアIPmから出力された信号を束ねてパケット信号に変換(以下「パケット化」という)する。パケット化された信号は、フリットというパケットの構成単位に分割され、ルータRmを介して時分割多重で目的地まで転送され、ネットワークインタフェースNIsで元のバス信号の状態に戻され(以下「デパケット」という)、スレーブIPコアIPsに渡される。
【0005】
なお、パケット化された信号(パケット信号)である1番目のフリットF1には、制御信号(Control Signal)が挿入される。また、2番目以降のフリットF2、F3、…、Fnには、データ(Data)が挿入される。上記手法を用いることによって、総配線長を削減することができる。
【0006】
図12は、パケットのルーティングについて説明するための図である。図のように出発地から目的地までパケットを送信することを「ルーティング」という。図12を参照すると、ルータR1からルータR9へのルーティング経路が点線で示されている。また、ルータとルータとの間における通信を1回行うことを「1ホップ」という。図12に示したルーティング経路におけるホップ数は4である。
【0007】
図13は、NoCにおけるオンチップルータのハードウェア構成を一例として示す図である。図13左上の図を参照すると、オンチップルータでは各方向(X−,X+,Y−,Y+,CORE)からの入力ごとにFIFO FIFO1〜FIFO5が用意されている。FIFO FIFO1〜FIFO5に溜まったパケットは、調停部(Arbiter)ARBITARによって調停され、クロスバXBARにより、図13右下の図のように各方向(X−,X+,Y−,Y+,CORE)に出力される。調停部ARBITARは、ルータ内の複数のFIFO FIFO1〜FIFO5から1つを選択する。クロスバXBARは、FIFO FIFO1〜FIFO5から出力されたパケットの出力ポートを選択する。
【0008】
なお、特許文献1において、ネットワークオンチップ(NoC)に関し、集積プロセッサ(Integrated Processor)ブロック、ルータ、メモリ通信コントローラ及びネットワークインタフェース・コントローラを含み、各集積プロセッサブロックはルータにメモリ通信コントローラ及びネットワークインタフェース・コントローラを介して結合され、各メモリ通信コントローラは集積プロセッサブロック及びメモリ間の通信を制御する技術が記載されている。
【0009】
また、特許文献2において、inclusive route指定をした場合、始点ノードから終点ノードまでの経路で経路重複がなく、かつ、できるだけリンクコストが小さくなる経路を計算する経路計算装置が記載されている。
【0010】
さらに、特許文献3において、互いの間で通信できかつ処理できる複数の要素又はリソース、並びにネットワークにおける通信を初期設定することができる少なくとも1つの要素又は「ネットワーク・コントローラ」から成るネットワークオンチップが記載されている。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2009−110512号公報
【特許文献2】特開2008−054233号公報
【特許文献3】特開2006−101525号公報
【非特許文献】
【0012】
【非特許文献1】松谷宏紀、“Network−on−Chip最前線 〜研究の始め方から最新動向まで〜 松谷@慶應 Revised version(Aug 21,2008)”[平成22年3月8日検索]、インターネット<URL:http://www.cis.fukuoka−u.ac.jp/〜casfukuoka/files/matsutani_kyushu2008.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0013】
以下の分析は、本発明者によってなされたものである。
【0014】
図14は、従来の適応型ルーティングに基づく動作について説明するための図である。ここでは、図14の左上のIPコアIPaから右下のIPコアIPbまでのルーティングを行なうものとする。図14を参照すると、ルータRa、Rbと、IPコアIPa、IPbと、パケットのルーティング経路が示されている。
【0015】
適応型ルーティングにおいては、パケット通信の出発地(ルータRa)から目的地(ルータRb)まで複数の通信経路があり、通信経路途中の混雑度に応じて1つの経路が選ばれる。すなわち、各ルータ内で混雑度に応じてパケットを送信する方向が決定され、目的地まで上記通信経路に沿ってパケットが送信される。なお、かかる手法以外に、出発地のルータRaが目的地までの経路を決定する手法、プログラマがソフトウェアで経路を決定する手法もある。しかし、混雑を避けてパケット通信が行われることにより、目的地から遠ざかる経路が採用され、パケットが目的地まで最短経路(すなわち最小のホップ数)で送信されない場合も生じることから、消費電力が増大するという問題がある。
【0016】
図15は、デッドロックについて説明するための図である。デッドロックとは、適応型ルーティングを行うことによって、通信経路の途中に循環経路が構成され、これによってパケットの通信がストップしてしまう現象をいう。
【0017】
図15を参照すると、パケットの循環経路が一例として示されている。出発地から目的地までのルーティング経路の途中に循環経路が構成され、かつ、ルータRp内のFIFO FIFOpがパケットで一杯になると、いずれのルータも次のルータにパケットを送信することができなくなる。
【0018】
図16は、図15に示したデッドロックを回避するために、新たにルータRq内にFIFO FIFOqを追加して経路を多重化した構成を示す図である。このように、経路を多重化することによって、循環経路が形成されるのを防ぐことができる。
【0019】
図14〜図16を参照して説明した上記の方法によると、目的地までのパケット通信を行う過程で、最短経路を経由することなくパケット通信を行われることがあり、ルータとルータとの間におけるパケット通信の回数(ホップ数)が増加するおそれがある。一方、図15及び図16を参照して説明したように、デッドロックを回避するためにFIFOを追加すると、駆動されるFIFOの個数が増加する。したがって、上記の適応型ルーティングによると、パケット通信の回数が増加し、又は、駆動されるFIFOの個数が増加することにより、消費電力が増大するという問題がある。
【0020】
そこで、NoCにおけるルーティングにおいて、FIFOの個数を増加させることなく、ルータ間におけるパケット通信の回数を削減することが課題となる。本発明の目的は、かかる課題を解決する半導体集積回路装置、経路決定回路及び経路決定方法を提供することにある。
【課題を解決するための手段】
【0021】
本発明の第1の視点に係る経路決定回路は、
NoC(Network on Chip)におけるIP(Intellectual Property)コア間の経路を決定する経路決定回路であって、
リクエストを送信した第1のIPコアから出力された目的地情報に基づいて、該第1のIPコアから目的地の第2のIPコアまでの複数の経路候補を算出する経路候補算出部と、
前記複数の経路候補の各経路候補上のルータの混雑度に基づいて、前記複数の経路候補のうちの最も混雑度が低い経路候補を経路として選択する経路選択部と、を備えている。
【0022】
本発明の第2の視点に係る半導体集積回路装置は、
複数のIP(Intellectual Property)コアと、
上記第1の視点に係る経路決定回路とを備え、
前記経路決定回路により前記複数のIPコア間の経路を決定する。
【0023】
本発明の第3の視点に係る経路決定方法は、
NoC(Network on Chip)におけるIP(Intellectual Property)コア間の経路を経路決定回路により決定する経路決定方法であって、
リクエストを送信した第1のIPコアから出力された目的地情報に基づいて、該第1のIPコアから目的地の第2のIPコアまでの複数の経路候補を算出する工程と、
前記複数の経路候補の各経路候補上のルータの混雑度に基づいて、前記複数の経路候補のうちの最も混雑度が低い経路候補を経路として選択する工程と、を含む。
【発明の効果】
【0024】
本発明に係る半導体集積回路装置、経路決定回路及び経路決定方法によると、NoCにおけるルーティングにおいて、FIFOの個数を増加させることなく、ルータ間におけるパケット通信の回数を削減することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の実施形態に係る経路決定回路を備えた半導体集積回路装置の構成を概略的に示す図である。
【図2】本発明の実施形態に係る経路決定回路とNoCとの間における接続関係を示す図である。
【図3】IPコアIP1からIPコアIP9までパケットがルーティングされる場合における経路候補となる経路を算出するルールについて説明するための図である。
【図4】本実施形態に係る経路決定回路の構成を示すブロック図である。
【図5】本実施形態に係る経路決定回路の全体の動作を示すフローチャートである。
【図6】本実施形態に係る経路決定回路における調停部の動作を示すフローチャートである。
【図7】本実施形態に係る経路決定回路における経路候補算出部の動作を示すフローチャートである。
【図8】本実施形態に係る経路決定回路における経路選択部の動作を示すフローチャートである。
【図9】本実施形態に係る経路決定回路における経路情報送信部の動作を示すフローチャートである。
【図10】従来の適応型ルーティングと本発明に係る経路決定回路との性能を比較した表である。
【図11】従来のNoCにおける処理について説明するための図である。
【図12】従来のパケットのルーティングについて説明するための図である。
【図13】従来のNoCにおけるオンチップルータのハードウェア構成を一例として示す図である。
【図14】従来の適応型ルーティングに基づく動作について説明するための図である。
【図15】従来技術におけるデッドロックについて説明するための図である。
【図16】従来技術におけるデッドロックを回避するために、経路を多重化(FIFOを追加)した構成を示す図である。
【発明を実施するための形態】
【0026】
本発明の第1の展開形態によると、上記第1の視点に係る経路決定回路が提供される。
【0027】
本発明の第2の展開形態によると、前記経路候補算出部は、前記第1のIPコアから前記第2のIPコアまでの最短の経路を、前記複数の経路候補として算出する、経路決定回路が提供される。
【0028】
本発明の第3の展開形態によると、前記経路候補算出部は、前記第1のIPコアのXY座標と前記第2のIPコアのXY座標とから、X座標の移動距離とY座標の移動距離とを算出し、算出した両座標の移動距離に基づいて、前記複数の経路候補を算出する、経路決定回路。
【0029】
本発明の第4の展開形態によると、前記経路選択部は、前記複数の経路候補の各経路候補上のルータのFIFOに格納されているパケットの数の和を求め、求めた和が最小の経路候補を経路として選択する、経路決定回路が提供される。
【0030】
本発明の第5の展開形態によると、前記経路選択部は、2回目以降の経路選択において、選択した経路上の各ルータのFIFOに格納されているパケットの数に、前記第1のIPコアから出力されたデータのバースト長に応じた値を加えたものを各ルータのFIFOに格納されているパケットの数とみなして前記和を求める、経路決定回路が提供される。
【0031】
本発明の第6の展開形態によると、複数のIPコアからリクエストを受信した場合に、各IPコアに付与された優先順位に従って一のIPコアを前記第1のIPコアとして選択する調停部をさらに備えている、経路決定回路が提供される。
【0032】
本発明の第7の展開形態によると、選択された経路の情報を保持するとともに、該経路上のルータに送信する経路情報送信部をさらに備えている、経路決定回路が提供される。
【0033】
本発明の第8の展開形態によると、
複数のIP(Intellectual Property)コアと、
請求項1乃至7のいずれか1項に記載の経路決定回路とを備え、
前記経路決定回路により前記複数のIPコア間の経路を決定する、半導体集積回路装置が提供される。
【0034】
本発明の第9の展開形態によると、上記第3の視点に係る経路決定方法が提供される。
【0035】
本発明に係る半導体集積回路装置、経路決定回路及び経路決定方法によると、NoCにおけるルーティングにおいて、FIFOの個数を増加させることなく、ルータ間におけるパケット通信の回数を削減することができる。
【0036】
(実施形態)
本発明の実施形態に係る経路決定回路について、図面を参照して説明する。図1は、本実施形態に係る経路決定回路400を備えた、ネットワークオンチップ(NoC:Network on Chip)に基づく半導体集積回路装置の構成を概略的に示す図である。
【0037】
図1を参照すると、半導体集積回路装置は、さらに、機能ブロック(プロセッサ、アプリケーション専用回路など)であるIPコアIP1〜IP9と、IPコアから出力された信号をパケット化するともに、パケット化された信号をデパケットするネットワークインタフェースNI1〜NI9と、パケット化された信号を目的地まで転送するルータR1〜R9を備えている。
【0038】
図1を参照すると、信号105は、IPコアIP1〜IP9から経路決定回路400へ出力される信号を表す。信号106は、ルータR1〜R9から経路決定回路400へ出力される信号を表す。信号107は、経路決定回路400からルータR1〜R9へ出力される信号を表す。
【0039】
経路決定回路400は、IPコアIPx(x=1〜9)から、経路決定回路400へリクエスト信号REQ、バースト長信号BURST、目的地信号DESTINATION(例えば目的地のアドレス情報を含む信号)を含む信号105を受信すると、ルータRx(x=1〜9)のパケットを保存するFIFOに格納されているパケットの数を表すカウント信号FIFO_COUNTを含む信号106をルータRxから取得する。
【0040】
経路決定回路400は、パケット通信の出発地から目的地までの複数の経路候補を求める。また、経路決定回路400は、求めた各経路候補上のルータに格納されたパケット数の和を算出し、最もパケットの数が少ない(すなわち混雑度が低い)経路候補を経路として選択する。さらに、経路決定回路400は、選択した経路上の各ルータに経路情報を含む信号107を送信する。
【0041】
経路決定回路400は、経路情報を送信する際、選択した経路上のルータのFIFOに格納されたパケットの数に、出発地のIPコアから出力されるデータのバースト長に応じた値(以下「予測値」という)を加算する。経路決定回路400は、次回以降の経路決定の際に、FIFOに格納されたパケット数に予測値を加算したものを、FIFOに格納されたパケット数とみなして、上記のパケット数の総和を求める。なお、加算した予測値に対応するパケットが通過した場合には、上記のみなしを取り止める。
【0042】
図2は、経路決定回路400とNoCとの間における接続関係を示す図である。図2を参照すると、経路決定回路400と、IPコアIP及びルータRとが接続されている。
【0043】
図2を参照すると、信号201は、IPコアIP−ネットワークインタフェースNI間のハンドシェーク信号及びデータを表す。また、信号202は、ネットワークインタフェースNI−ルータR間のパケット化された信号を表す。
【0044】
IPコアIPは、リクエスト信号REQ、目的地信号DESTINATION及びバースト長信号BURSTを経路決定回路400に出力する。
【0045】
ルータRは、パケットを保持するFIFO FIFOdと、ルーティング経路情報を保持するFIFO FIFOrとを備えている。ルータRは、FIFO FIFOdの混雑度を表すFIFO_COUNTと、FIFOdに実際にパケットが通過したかを示すパケット通過信号PASS_PACKETを、経路決定回路400に出力する。また、ルータRは、経路を保存するFIFO FIFOrがいっぱいである場合には、フル信号DIREC_FULLを経路決定回路400に出力する。
【0046】
一方、経路決定回路400は、FIFO FIFOdのいずれかを選択するFIFO選択信号SEL_FIFOと、FIFO選択信号SEL_FIFOによって選択されたFIFO FIFOdに溜まったパケットをいずれの方向に出力するかを決める方向信号DIRECとを、ルータRに出力する。方向信号DIRECは、FIFO FIFOrに保存される。実際にパケットが通過した場合には、FIFO FIFOrに格納された方向信号DIRECは削除される。なお、方向信号DIRECを保存するFIFO FIFOrの段数を増やすことで、経路が重複した場合においても、複数のリクエストの経路情報をルータRに記憶させることができる。
【0047】
次に、経路決定回路400による、経路決定のルールについて説明する。経路決定回路400は、例えば、以下のルール(A)〜(G)にしたがって経路を決定する。
【0048】
(A)同時に2つ以上のIPコアからリクエストが経路決定回路400に入力された場合、IPコアの優先度が高いものから先に経路決定が行われる。
(B)経路決定時に目的地まで遠回りはしないようにする。例えば、目的地が出発地の右下の方向に存在する場合には、パケットを上方向ないし左方向に移動させない。すなわち、パケットを移動させる方向は、上下左右(X+,X−,Y+,Y−)の方向のうちの2方向に限られる。
(C)図3を参照して以下で説明する方法により、目的地までの経路候補を算出する。なお、経路候補を所定の方法で算出することで、IPコアの数が増えたときに膨大な数の経路を検討せねばならなくなるのを防ぐことができる。本実施形態の方法によると、経路候補の数は、1〜4のいずれかに制限することができる。
(D)ルータは、ラウンドロビン方式でFIFOに格納されているパケットを出力する。
(E)経路決定は早いもの順に行われ、先に出された命令に対する経路が優先的に決定される。
(F)経路が決定された場合、決定された経路上のルータのFIFOに格納されたパケット数に予測値を加算する。
(G)予測値は、予測値に対応するパケットが通過した際に削除する。
【0049】
図3は、出発地であるIPコアIP1から目的地であるIPコアIP9まで、パケットがルーティングされる場合に、経路候補を算出する方法について説明するための図である。ここでは、一例として、経路決定回路400によって算出される経路候補の数は、1〜4とする。
【0050】
第1の経路候補RT1は、次の手順に従って求められる。
(1)出発地(IPコアIP1)から目的地(IPコアIP9)のX座標まで移動
(2)出発地(IPコアIP1)から目的地(IPコアIP9)のY座標まで移動
出発地から目的地までY方向への移動がない場合には、上記のルール(B)により、(1)のみにより、経路候補RT1が算出される。
【0051】
第2の経路候補RT2は、次の手順に従って求められる。
(1)出発地(IPコアIP1)から目的地(IPコアIP9)のY座標まで移動
(2)出発地(IPコアIP1)から目的地(IPコアIP9)のX座標まで移動
出発地から目的地までX方向への移動がない場合には、上記のルール(B)により、(1)のみにより、経路候補RT2が算出される。
【0052】
第3の経路候補RT3は、次の手順に従って求められる。
(1)出発地(IPコアIP1)から目的地(IPコアIP9)のX/2座標まで移動
(2)出発地(IPコアIP1)から目的地(IPコアIP9)のY座標まで移動
(3)出発地(IPコアIP1)から目的地(IPコアIP9)のX座標まで移動
出発地から目的地までX方向又はY方向のいずれか一方向への移動である場合には、上記のルール(B)により、経路候補RT3は設定されない。また、X方向への移動が1である場合にも、経路候補RT3は設定されない。
【0053】
第4の経路候補RT4は、次の手順に従って求められる。
(1)出発地(IPコアIP1)から目的地(IPコアIP9)のY/2座標まで移動
(2)出発地(IPコアIP1)から目的地(IPコアIP9)のX座標まで移動
(3)出発地(IPコアIP1)から目的地(IPコアIP9)のY座標まで移動
出発地から目的地までX方向又はY方向のいずれか一方向への移動である場合には、上記のルール(B)により、経路候補RT4は設定されない。また、Y方向への移動が1である場合にも、経路候補RT4は設定されない。
【0054】
図4は、経路決定回路の構成の一例を示した図である。図4を参照すると、経路決定回路は、調停部(Arbiter)401、経路候補算出部(Routing Computation)402、経路選択部(FIFO Management & Route Compare)403、及び、経路情報送信部(Route Buffer)404を備えている。
【0055】
調停部401は、各IPコアから出力された要求(リクエスト)を調停する。調停部401は、複数のIPコアから出力されたリクエスト信号REQを入力信号とし、優先順位の高いIPコアのリクエスト信号REQを1つ選択して、リクエスト選択信号SEL_REQとして出力する。
【0056】
経路候補算出部402は、パケットのルーティング経路候補を算出する。経路候補算出部402は、調停部401により選択されたリクエスト信号REQを出力したIPコアの座標(予めIPコアごとにユーザが設定した出発地の座標)と、リクエスト信号REQを出力したIPコアから出力された目的地信号DESTINATIONとに基づいて、(多くとも4つの)経路候補信号Route1〜4を出力する。
【0057】
経路選択部403は、パケットのルーティング経路を決定する。経路選択部403は、経路候補算出部402から出力された経路候補信号Route1〜4と、ルータRから送信されたルータR内のパケットを保存するFIFO FIFOdにいくつパケットが溜まっているかを表すカウント信号FIFO_COUNTと、経路情報送信部404のFIFOがフル(Full)の場合に出力されるフル信号FULLを入力とし、経路候補信号Route1〜4の全経路候補の中の最も混雑度の低い(すなわち、パケット数を加算した値が最小の)経路を選択して、経路選択信号SEL_ROUTEとして出力する。
【0058】
また、経路選択部403は、経路を選択した際に、選択した経路上のルータ内のFIFOに調停部401で選択されたIPコアから出力されたバースト長信号BURSTと、ルータから送信されたパケット通過信号PASS_PACKETとを入力とし、選択した経路上を実際にパケットが通過したときに、予測値を削除する。
【0059】
経路情報送信部404は、パケットのルーティング経路情報の保存と送信を行う。経路情報送信部404は、経路選択部403で選択された経路選択信号SEL_ROUTEと、各ルータ内の経路情報を保存するFIFO FIFOrが空いているか否かを表す信号DIREC_FULLを入力とし、ルータ内の経路情報を保存したFIFOを選択するFIFO選択信号SEL_FIFOと、パケットの送信方向を示す方向信号DIRECとをパケット通信経路上のルータへ出力し、経路選択信号SEL_ROUTEを保存するFIFOがいっぱいであれば、経路選択部403にフル信号FULLを出力する。
【0060】
図5は、本実施形態の経路決定回路の全体の動作、すなわち、図4に示した各機能ブロック(調停部401、経路候補算出部402、経路選択部403、及び、経路情報送信部404)の動作を統合して示すフローチャートである。ここでは、各機能ブロックの動作について、図6〜9を参照して説明する。
【0061】
図6は、調停部401の動作を示すフローチャートである。図6を参照して、調停部401の動作について説明する。
【0062】
調停部401は、(ステップS601)でIPコアから送信されたリクエスト信号REQの有無を監視し(ステップS601)、リクエスト信号REQがない場合には(ステップS601のNo)、経路選択部403の処理(図8のステップS801)に移る。
【0063】
一方、チップ内のいずれかのIPコアからリクエスト信号REQを受信した場合には(ステップS601のYes)、調停部401は、リクエスト信号REQを出力している各IPコアの優先順位を比較し、最も優先度が高いIPコアを選択する(ステップS602)。なお、IPコアの優先順位は、ユーザによって予め設定されたものであってもよい。
【0064】
図7は、経路候補算出部402の動作を示すフローチャートである。図7を参照して、経路候補算出部402の動作について説明する。
【0065】
経路候補算出部402は、調停部401によって選択された(図6のステップS602)IPコアの目的地信号DESTINATIONを取得し、リクエスト信号REQを出力したIPコア(すなわち出発地のIPコア)の座標情報と、出発地のIPコアから出力された目的地信号DESTINATIONとから、出発地のIPコアと目的地のIPコアの座標を比較する(ステップS701)。なお、各IPコアの座標情報を予め設定して、経路候補算出部402内に保存しておくことが好ましい。また、出発地のIPコアの座標は、調停部401で選択されたリクエスト信号REQに基づいて判別する。
【0066】
経路候補算出部402は、上記出発地と目的地の座標を比較した結果から、目的地までのXY座標の移動する距離を割り出し、目的地までの移動がX方向及びY方向の双方であるか否かを判定する(ステップS702)。
【0067】
目的地までの移動がX方向又はY方向のいずれか一方だけであれば(ステップS702のNo)、経路候補算出部402は、目的地までX方向の移動があるか否かを判定する(ステップS703)。
【0068】
目的地までX方向への移動がない場合には(ステップS703のNo)、経路候補算出部402は、図3を参照して説明した経路候補RT2のみを算出する(ステップS704)。一方、X方向への移動が含まれる場合には(ステップS703のYes)、経路候補算出部402は、経路候補RT1のみを算出する(ステップS705)。
【0069】
目的地までX方向及びY方向の両方向への移動がある場合には(ステップS702のYes)、S706に進み、経路候補算出部402は、目的地までのX方向への移動が1であるか否かを判定する(ステップS706)。
【0070】
X方向への移動が1である場合には(ステップS706のYes)、経路候補算出部402は、目的地までのY方向への移動が1であるか否かを判定する(ステップS707)。
【0071】
目的地までのY方向への移動が1である場合には(ステップS707のYes)、経路候補算出部402は、経路候補RT1及びRT2の2つの経路候補を算出する(ステップS708)。
【0072】
一方、Y方向への移動が1でない場合には(ステップS707のNo)、経路候補算出部402は、経路候補RT1、RT2及びRT4の3つの経路候補を算出する(ステップS709)。
【0073】
目的地までのX方向への移動が1でない場合には(ステップS706のNo)、経路候補算出部402は、目的地までのY方向への移動が1であるか否かを判定する(ステップS710)。
【0074】
目的地までY方向への移動が1である場合には(ステップS710のYes)、経路候補算出部402は、経路候補RT1〜RT3の3つの経路候補を算出する(ステップS711)。
【0075】
一方、目的地までY方向への移動が1でない場合には(ステップS710のNo)、経路候補算出部402は、経路候補RT1〜RT4の4つの経路候補を算出する(ステップS712)。
【0076】
図8は、経路選択部403の動作を示すフローチャートである。図8を参照して、経路選択部403の動作について説明する。
【0077】
経路選択部403は、予測値を加えたFIFOにパケットが通過したかどうかを監視する(ステップS801)。パケットが通過したことを示すパケット通過信号PASS_PACKETがアクティブである場合には(ステップS801のYes)、経路選択部403は、通過したパケットの分だけ予測値を差し引く(ステップS802)。一方、パケット通過信号PASS_PACKETがノンアクティブであり、パケットが通過しなければ(ステップS801のNo)、ステップS802の処理は行われない。
【0078】
ステップS801又はS802の処理後、調停部401の処理によって1つのIPコアが選択され(図6のステップS602)、経路候補算出部402の処理によってルーティング経路候補が算出される(図7)。
【0079】
経路候補が算出された後、経路選択部403は、調停部401によって選択されたIPコアから出力されたバースト長信号BURSTを取得するとともに、チップ内の各ルータから各ルータ内の混雑度を示すカウント信号FIFO_COUNTを取得する(ステップS803)。
【0080】
各ルータから混雑度を示すカウント信号FIFO_COUNTを取得した後、経路選択部403は、算出された各経路候補上のルータ内のFIFOに溜まっているパケットの数を加算し、経路ごとに重みづけを行う(ステップS804)。
【0081】
次に、経路選択部403は、算出された経路候補が複数であるか否かを判定する(ステップS805)。複数でない場合には(ステップS805のNo)、ステップS807に進む。一方、算出された経路候補が複数である場合には(ステップS805のYes)、経路選択部403は、各経路の混雑度を比較し、上記比較した結果から混雑度の最も低い(上記加算した値が一番小さい)経路を選択する(ステップS806)。
【0082】
次に、経路選択部403は、経路決定回路400内の経路を保存するFIFO FIFOrが空いているか否かを判定する(ステップS807)。空いていない場合には(ステップS807のNo)、経路選択部403は、経路を保存するFIFO FIFOrが空くまで待たされる。
【0083】
一方、FIFO FIFOrが空いている場合には(ステップS807のYes)、経路選択部403は、図4を参照して説明した経路情報送信部404のFIFOに経路情報を保存するとともに、経路選択部403の内部において、ステップS803で取得したバースト長信号BURSTに含まれるバースト長分の予測値を加える(ステップS808)。
【0084】
経路情報を保存した後、処理はステップS801に戻り、ステップS808以降における経路情報送信部404の処理とは、独立に行われる。
【0085】
図9は、経路情報送信部404の動作を示すフローチャートである。図9を参照して、経路情報送信部404の動作について説明する。
【0086】
まず、経路情報送信部404は、各ルータから出力される各ルータ内の経路を保存するFIFOがいっぱいであるか否かを判定する(ステップS901)。
【0087】
各ルータから出力される各ルータ内の経路を保存するFIFO FIFOrがいっぱいであるか否かを示すフル信号DIREC_FULLがアクティブであり、ルータに経路情報を送信不可能であれば(ステップS901のNo)、経路情報送信部404は、送信可能となるまで待つ。
【0088】
一方、フル信号DIREC_FULLがノンアクティブであり、経路情報がルータに送信可能であれば(ステップS901のYes)、経路情報送信部404は、図8のフローで選択した混雑度が低い経路上の各ルータに、いずれのFIFOのパケットを送信するかを示す信号であるFIFO選択信号SEL_FIFOと、いずれの方向に送信するかを示す信号である方向信号DIRECを送信する(ステップS902)。
【0089】
各ルータに経路情報を送信後、経路情報送信部404は、経路決定回路400内の経路を保存するFIFOから上記の送信した経路情報を削除する(ステップS903)。
【0090】
従来の適応型ルーティングによると、ルータとルータとの間におけるパケット通信の際、空いているルータに次々とパケットが送信されるため、目的地から遠ざかる場合もあり、余分なルータ−ルータ間のパケット通信を行うことにより消費電力が増大する問題がある。
【0091】
しかし、本発明に係る経路決定回路400によると、かかる問題を解消し、消費電力削減することができる。その理由は、次の通りである。
【0092】
本発明に係る経路決定回路400は、オンチップバスであるNoC(Network on Chip)において、各ルータの混雑度を逐次把握する機能と各IPコアに優先順位を設け、各IPコアから複数のリクエストがあった場合はIPコアの優先順位にしたがってIPコアを選択する手段と、選択されたIPコアから出力された目的地情報から、デッドロックを回避し、目的地までの最短の経路候補を数通り算出する手段と、算出された数通りの各経路候補上のルータ内に溜まっているパケットを加算し、各経路候補の重み付けを行う手段と、重み付けを行った結果から、混雑を避ける経路を選択する手段とを有する。
【0093】
また、経路決定回路400は、経路決定を行った経路上のルータのFIFOに各IPコアから出力されたバースト長を考慮した予測値(例えば、バースト長が5であれば予測値を「5」とする)を加え、次回からの経路決定の判断材料とする手段を有する。
【0094】
特に、本発明に係る経路決定回路400は、IPコア−IPコア間のパケット通信時にパケット通信の出発地のIPコアから目的地のIPコアまでの経路決定の際に、出発地のIPコアから目的地のIPコアまでの最短の経路候補を複数算出する手段と、複数算出した経路候補上のパケットの混雑状況を把握し、複数の経路候補の中から一番混雑が少ないルーティング経路を選択する手段とを有する。
【0095】
このとき、つねにパケットの混雑を避けた最短経路(ルータ−ルータ間のパケット転送の回数を最小にする)をとるようにすることによって、ルータ内のFIFOの駆動回数を抑えることができ、消費電力及びレイテンシを削減することができる。
【0096】
図10は、従来の適応型ルーティングにおける消費電力、スループット及び面積を1.0とした場合における、本実施形態に係る経路決定回路400によるルーティングの性能を示す表である。
【0097】
本実施形態の経路決定回路400によって、各ルータの混雑度を随時把握し、混雑を避けた最短経路に設定することによってルーティングのホップ数を最低限に抑えることができ、ルータ内のFIFOの駆動回数を削減することができる。経路決定回路400を追加することによる消費電力増加はあるものの、経路決定回路400内の駆動するFIFO及び論理と、従来の適応型ルーティングによって最短経路を通らないパケット通信の際に駆動するFIFO及び論理とを比較すると、経路決定回路400内のFIFO及び論理はルータ内のFIFO及び論理に比べて少なく、経路決定回路400は経路決定の際に一度FIFO及び論理を駆動すればよい。一方、従来の適応型ルーティングによると、最短経路で目的地までのルーティング行われず、ルータ間のホップ数が増加する。また、従来の適応型ルーティングでは、目的地までの余分なルータ−ルータ間の通信は一度に限らず、複数回行われることがある。
【0098】
したがって、従来の適応型ルーティングにおけるルータ内のFIFO/論理の駆動回数は、本実施形態の経路決定回路400のFIFO/論理の駆動回数よりも多いと考えられる。ゆえに、本実施形態の経路決定回路400によると、従来の適応型ルーティングと比較して、消費電力を削減することができる。
【0099】
また、本実施形態の経路決定回路400によると、混雑を回避しつつ、目的地まで最短の経路を決定することができることから、ルーティングのホップ数を抑えることができる。ルーティングのホップ数を抑えることによって、レイテンシを短縮することができ、結果的に全体のスループットを向上させることができる。
【0100】
したがって、本実施形態の経路決定回路400によると、従来の適応型ルーティングと比較して、レイテンシが短縮されるとともにスループットも向上する。
【0101】
さらに、図15及び図16を参照して説明したように、従来の適応型ルーティングでは、デッドロックを回避するためにルータ内のFIFOを多重化する。一方、本実施形態の経路決定回路400によると、デッドロックを回避するルーティングアルゴリズムを用いることから、ルータ内のFIFOの多重化を行う必要がなく、面積を半分(0.5)程度に抑えることができる。
【0102】
したがって、本実施形態の経路決定回路400によると、経路決定回路400を追加する分を考慮しても、従来の適応型ルーティングと比較すると、一例として、面積を3割程度削減することができる。
【0103】
なお、上記の特許文献及び非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0104】
105〜107、201、202 信号
400 経路決定回路
401、ARBITER 調停部(Arbiter)
402 経路候補算出部(Routing Computation)
403 経路選択部(FIFO Management & Route Compare)
404 経路情報送信部(Route Buffer)
BURST バースト長信号
DESTINATION 目的地信号
DIREC 方向信号
DIREC_FULL、FULL フル信号
F1〜Fn フリット
FIFO1〜FIFO5、FIFOd、FIFOp、FIFOq、FIFOr FIFO
FIFO_COUNT カウント信号
IP、IP1〜IP9、IPx、IPm、IPs、IPa、IPb IP(Intellectual Property)コア
NI1〜NI9、NIm、NIs ネットワークインタフェース(NI:Network Interface)
PASS_PACKET パケット通過信号
R、R1〜R9、Rx、Ra、Rb、Rm、Rp、Rq、Rs ルータ(Router)
REQ リクエスト信号
Route1〜Route4 経路候補信号
RT1〜RT4 経路候補
SEL_FIFO FIFO選択信号
SEL_REQ リクエスト選択信号
SEL_ROUTE 経路選択信号
XBAR クロスバ

【特許請求の範囲】
【請求項1】
NoC(Network on Chip)におけるIP(Intellectual Property)コア間の経路を決定する経路決定回路であって、
リクエストを送信した第1のIPコアから出力された目的地情報に基づいて、該第1のIPコアから目的地の第2のIPコアまでの複数の経路候補を算出する経路候補算出部と、
前記複数の経路候補の各経路候補上のルータの混雑度に基づいて、前記複数の経路候補のうちの最も混雑度が低い経路候補を経路として選択する経路選択部と、を備えていることを特徴とする経路決定回路。
【請求項2】
前記経路候補算出部は、前記第1のIPコアから前記第2のIPコアまでの最短の経路を、前記複数の経路候補として算出することを特徴とする、請求項1に記載の経路決定回路。
【請求項3】
前記経路候補算出部は、前記第1のIPコアのXY座標と前記第2のIPコアのXY座標とから、X座標の移動距離とY座標の移動距離とを算出し、算出した両座標の移動距離に基づいて、前記複数の経路候補を算出することを特徴とする、請求項1又は2に記載の経路決定回路。
【請求項4】
前記経路選択部は、前記複数の経路候補の各経路候補上のルータのFIFOに格納されているパケットの数の和を求め、求めた和が最小の経路候補を経路として選択することを特徴とする、請求項1乃至3のいずれか1項に記載の経路決定回路。
【請求項5】
前記経路選択部は、2回目以降の経路選択において、選択した経路上の各ルータのFIFOに格納されているパケットの数に、前記第1のIPコアから出力されたデータのバースト長に応じた値を加えたものを各ルータのFIFOに格納されているパケットの数とみなして前記和を求めることを特徴とする、請求項4に記載の経路決定回路。
【請求項6】
複数のIPコアからリクエストを受信した場合に、各IPコアに付与された優先順位に従って一のIPコアを前記第1のIPコアとして選択する調停部をさらに備えていることを特徴とする、請求項1乃至5のいずれか1項に記載の経路決定回路。
【請求項7】
選択された経路の情報を保持するとともに、該経路上のルータに送信する経路情報送信部をさらに備えていることを特徴とする、請求項1乃至6のいずれか1項に記載の経路決定回路。
【請求項8】
複数のIP(Intellectual Property)コアと、
請求項1乃至7のいずれか1項に記載の経路決定回路とを備え、
前記経路決定回路により前記複数のIPコア間の経路を決定することを特徴とする半導体集積回路装置。
【請求項9】
NoC(Network on Chip)におけるIP(Intellectual Property)コア間の経路を経路決定回路により決定する経路決定方法であって、
リクエストを送信した第1のIPコアから出力された目的地情報に基づいて、該第1のIPコアから目的地の第2のIPコアまでの複数の経路候補を算出する工程と、
前記複数の経路候補の各経路候補上のルータの混雑度に基づいて、前記複数の経路候補のうちの最も混雑度が低い経路候補を経路として選択する工程と、を含むことを特徴とする経路決定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate