JP5847887B2 - オンチップルータ及びそれを用いたマルチコアシステム - Google Patents

オンチップルータ及びそれを用いたマルチコアシステム Download PDF

Info

Publication number
JP5847887B2
JP5847887B2 JP2014124443A JP2014124443A JP5847887B2 JP 5847887 B2 JP5847887 B2 JP 5847887B2 JP 2014124443 A JP2014124443 A JP 2014124443A JP 2014124443 A JP2014124443 A JP 2014124443A JP 5847887 B2 JP5847887 B2 JP 5847887B2
Authority
JP
Japan
Prior art keywords
router
output port
packet
identifier
field
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
JP2014124443A
Other languages
English (en)
Other versions
JP2014209764A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014124443A priority Critical patent/JP5847887B2/ja
Publication of JP2014209764A publication Critical patent/JP2014209764A/ja
Application granted granted Critical
Publication of JP5847887B2 publication Critical patent/JP5847887B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、オンチップルータ及びそれを用いたマルチコアシステムに関する。
マルチコアシステムでは、多数のプロセッサコア(以下、単に「コア」という。)間や、コアとメモリ間を接続するバス配線が長くなる傾向がある。このため、配線資源の確保、また、データを送受信するタイミング合わせが困難である。タイミングを合わせるために、マルチコアシステムの最大動作周波数が制限される。
上記のタイミング問題を解決する技術として、ネットワークオンチップ(NoC)と呼ばれる技術がある。この技術では、イーサネット等のようにデータをパケット化し、パケットをオンチップルータ(以下、単に「ルータ」という。)を介して所望のターゲット(コア、メモリ)へ転送する。
パケットを転送する方式には、主に、適応型ルーティング方式とソースルーティング(固定型ルーティングとも呼ばれる。)方式がある。適応型ルーティング方式では、パケットを受信したルータが、パケットの宛先アドレスに基づいて経路計算を行い、次の転送先を決定する。この方式の長所は、パケットのヘッダ長が短いことであるが、短所は中継ルータによる経路計算の負荷が大きいことである。
一方のソースルーティング方式では、送信元のコア(もしくはルータ、イニシエータ、ネットワークインタフェース)が、パケットの転送経路を予め全て計算し、転送経路に関する情報をヘッダに格納する。転送経路は、最初に一意に決められ、経路の混雑情報等によって動的に変更されることはない。この方式の長所は、中継ルータによる経路計算の負荷が低減されることであり、短所は適応型ルーティング方式と比べてヘッダ長が長くなるということである。
上記のように、ソースルーティング方式においては、中継ルータの数が増えるほど、パケットのヘッダ長が長くなりバッファの使用量が増え、それによってレイテンシが増大するという問題があった。
特表2008−518511号公報
本発明が解決しようとする課題は、ソースルーティング方式を採用したマルチコアシステムにおいて、パケットのヘッダ長を短くし、レイテンシを減少させることが可能なオンチップルータ及びそれを用いたマルチコアシステムを提供することである。
実施形態のオンチップルータは、パケットを受信する複数の入力ポートと、前記パケットを送信する複数の出力ポートと、前記各入力ポートに対応して設けられ、前記入力ポートを介して受信されたパケットの少なくとも一部を蓄積する複数のバッファと、前記パケットが前記複数の出力ポートのいずれかから送信されるように、前記パケットの出力先を切り替えるスイッチ部と、前記各バッファに対応して設けられた複数のホップフィールド抽出部を有するヘッダ解析部と、前記ホップフィールド抽出部により抽出されたホップフィールドの出力ポート情報が示す出力ポートから前記パケットが送信されるように、前記スイッチ部を制御するスイッチ制御部と、を備える。
前記各ホップフィールド抽出部は、対応する前記バッファに蓄積された前記パケットのヘッダ情報を入力し、出力ポート情報を格納した複数のホップフィールドから、前記入力ポートを介して受信したパケットが出力される出力ポートを示す出力ポート情報を格納したホップフィールドを抽出する。
実施形態のオンチップルータは、ヘッダ書換部をさらに備える。前記ヘッダ書換部は、前記スイッチ部から出力されたパケットを入力し、前記複数のホップフィールドのうち、前記パケットの出力先のオンチップルータが前記パケットの転送に使用するホップフィールドの出力ポート情報を、デコードされた出力ポート情報に書き換え、前記出力ポート情報を書き換えたパケットを前記出力ポートに出力する。
ツリー型のマルチコアシステムの一例を示す図である。 ネットワークオンチップのパケットの全体構造の概略を示す図である。 ソースルーティング方式のパケットのヘッダの一例を示す図である。 経路情報を圧縮したパケットのヘッダの一例を示す図である。 第1の実施形態に係るルータの概略的な構成を示す図である。 第1の実施形態に係るルータの一部の詳細な構成を示す図である。 ソースルーティング方式のパケットのヘッダの一例を示す図である。 経路情報を圧縮したパケットのヘッダの一例を示す図である。 第2の実施形態に係るルータの概略的な構成を示す図である。 第2の実施形態に係るルータの一部の詳細な構成を示す図である。 第2の実施形態に係る出力ポート選択部の詳細な構成を示す図である。 ソースルーティング方式のパケットのヘッダの一例を示す図である。 経路情報を圧縮したパケットのヘッダの一例を示す図である。 第3の実施形態に係る出力ポート選択部の詳細な構成を示す図である。 メッシュ型のマルチコアシステムの構成例を示す図である。
本発明に係る実施形態について説明する前に、従来のソースルーティング方式によるパケットの転送について説明する。
図1は、ソースルーティング方式のネットワークオンチップを適用した、ツリー型のマルチコアシステムの一例を示している。このマルチコアシステムは、16個のコア101〜116と、6個のルータ201〜206と、4個のメモリ301〜304と、1個のI/Oポート401とを備える。なお、図1においてルータを示す円内の数字は、ルータの識別子(ID)を示している。即ち、ルータ201〜206の識別子はそれぞれ、0〜5である。
コア101〜116は、ルータ201〜206を介して、メモリ301〜304およびI/Oポート401と接続されている。例えば、コア101〜104は、ルータ201およびルータ205を介してメモリ301〜304と接続されている。
コア101〜116は、メモリ301〜304に対して、読み出しおよび書き込み等を要求するためのリクエストパケットを送信する。パケットを受信したメモリは、読み出しデータ等を格納したパケットを、リクエストパケットを発信した発信元コアに返す。
図2は、マルチコアシステムの通信で用いられるパケットの全体構造を示している。パケットは、宛先や転送経路などに関する情報が格納されるヘッダと、書き込みデータ又は読み出しデータ等が格納されるボディとから構成される。ヘッダおよびボディはフリット(Flit)と呼ばれるデータ単位から構成されている。なお、1フリットあたりのビット数は、例えばコアのビット数(32bit)に等しいがこれに限らない。図2の例では、ヘッダは2つのヘッダフリット0、1からなり、ボディは5つのボディフリット0〜4からなる。発信元コア、または、コアやメモリからリクエストパケットを受信した最初のルータが、図2に示すようなパケットを生成する。
図3は、パケットのヘッダの一例を示している。ヘッダフリット0は、コマンドフィールド(Cmd)と、宛先アドレスフィールド(Dest Address)と、ソースコアフィールド(Src Core)と、ホップフィールド(Hop1 OutPort)とを有する。ヘッダフリット1は、4個のホップフィールド(Hop2〜5 OutPort)を有する。
Cmdは、パケットの種類(読み出しリクエスト、書き込みリクエスト、読み出しレスポンス、書き込みレスポンスなど)を示すコマンドフィールドである。Dest Addressは、メモリの宛先アドレスを格納する宛先アドレスフィールドである。Src Coreは、リクエストパケットを発信した発信元コアの識別子を格納するソースコアフィールドである。
Hop OutPortは、出力ポート情報を格納するホップフィールドである。出力ポート情報は、受信パケットを出力する出力ポートを示し、例えば、出力ポート番号である。図3の例では、ワンホットビット形式の出力ポート情報が格納されている。この場合、ホップフィールドのビット数と出力ポート数が等しい。本実施形態では、ビットが“1”である出力ポートからパケットを出力する。例えば、出力ポート情報“0001”は、ポート番号0の出力ポートからパケットを出力することを示し、“0100”は、ポート番号2の出力ポートからパケットを出力することを示す。図1に示す“0”、“1”、・・・は、出力ポート番号である。例えば、ルータ201は出力ポート“0”を介してルータ205と接続されており、ルータ205は出力ポート“2”を介してメモリ303と接続されている。
ソースルーティング方式においては、中継ルータの数が増えるほど、ホップフィールドの数が増える。このため、ヘッダ長は、中継ルータの数が増えるにつれて長くなる傾向にある。
発信元コアから最初にパケットを受信したルータは、Hop1 OutPortに格納された出力ポート情報を参照してパケットの出力先を決める。図3の例では、最初のルータはポート番号“0”の出力ポートからパケットを送信する。2番目のルータはHop2 OutPortを参照し、出力ポート番号“1”の出力ポートからパケットを送信する。以下同様に、3番目、4番目、5番目のルータは、それぞれ出力ポート番号“2”、“3”、“0”の出力ポートからパケットを送信する。
以下、本発明に係る実施形態について図面を参照しながら説明する。なお、各図において同等の機能を有する構成要素には同一の符号を付し、同一符号の構成要素の詳しい説明は繰り返さない。
(第1の実施形態)
第1の実施形態では、ホップフィールドにエンコードされた出力ポート情報を格納したパケットを用いる。パケットを受信したルータは、次段のルータで使用される出力ポート情報をデコードしてワンホットビット形式に書き換えた後、次段のルータに送信する。これにより、パケットのヘッダ長を可及的に短くしつつ、出力ポートを迅速に決めてパケットの転送処理時間を短縮することができる。
図4は、第1の実施形態で用いられる、経路情報を圧縮したパケットのヘッダの一例を示している。最初のルータが使用するHop1 OutPortについてはワンホットビット形式で出力ポート情報を格納し、2番目以降のルータが使用するHop2〜9 OutPortについては、出力ポートの番号を例えば16進数で格納する。即ち、最初の転送で使用されるホップフィールド以外のホップフィールドに格納された出力ポート情報は、エンコードされている。このため、中継ルータの数が同じであれば、図3で説明したパケットよりもヘッダ長を短くすることができる。
次に、図5を用いて、第1の実施形態に係るルータ10の概略的な構成を説明する。図5は、ルータ10の概略的な構成図である。ルータ10は、5入力5出力のルータであり、入力ポート部と、スイッチ部22と、ヘッダ解析部23と、スイッチ制御部24と、ヘッダ書換部25a〜25eと、パケットを送信する出力ポート26a〜26eとを有する。ここで、入力ポート部は、パケットを受信する入力ポート20a〜20eと、受信したパケットを一旦格納するバッファ21a〜21eとを有する。
バッファ21a〜21eはそれぞれ、入力ポート20a〜20eに対応して設けられ、入力ポートを介して受信したパケットの少なくとも一部を蓄積する。なお、バッファは、1フリット以上の容量を有する。
スイッチ部22は、バッファ21a〜21eからパケットを入力し、パケットが出力ポート26a〜26eのうちのいずれかから送信されるように、パケットの出力先を切り替える。スイッチ部22は、ヘッダ解析部23により抽出されたホップフィールドの出力ポート情報に基づき、出力ポート26a〜26eのうちいずれかを選択して切り替える。
図6は、第1の実施形態に係るルータ10の一部の詳細な構成図である。ヘッダ解析部23は、自ルータで用いるホップフィールドをパケットのヘッダ情報から抽出する。また、ヘッダ解析部23は、図6に示すように、バッファ21a〜21eに対応して設けられた複数のホップフィールド抽出部23a〜23eを有する。このように入力ポートの数だけホップフィールド抽出部を設けることで、複数の入力ポートが同時にパケットを受信した場合ついてもパケットの転送が可能となるとともに、複数の出力ポートから同時にパケットを送信することが可能となる。
ホップフィールド抽出部は、対応するバッファに蓄積されたパケットのヘッダ情報から、自ルータで使用する出力ポート情報を格納したホップフィールドを抽出する。図1において、例えばコア101がメモリ301にリクエストパケットを送信する場合、ルータ201のホップフィールド抽出部23aはHop1 OutPortを抽出し、ルータ205のホップフィールド抽出部23aはHop2 OutPortを抽出する。
スイッチ制御部24は、ホップフィールド抽出部23a〜23eにより抽出されたホップフィールドの出力ポート情報が示す出力ポートからパケットが送信されるように、スイッチ部22を制御する。スイッチ制御部24は、抽出されたホップフィールドの出力ポート情報を用いて、選択信号を生成する。
ヘッダ書換部25a〜25eは、入力されたパケットの複数のホップフィールドのうち、パケットの出力先のオンチップルータ(即ち、次段のルータ)がパケットの転送に使用するホップフィールドの出力ポート情報をデコードする。そして、ヘッダ書換部は、次段のルータが使用するホップフィールドの出力ポート情報をデコードした出力ポート情報に書き換えたパケットを選択された出力ポートに出力する。なお、出力ポート情報のデコード処理は、パケットのボディフリットに格納されたデータに対する処理と並行して行うことができる。そのため、レイテンシの増大に繋がらない。
なお、ヘッダ書換部は、ヘッダ長が長くなることを防止するため、パケットの転送に使用したホップフィールドを削除する。先の例の場合、ルータ201のヘッダ書換部25aは、Hop1 OutPortを削除し、Hop2 OutPort以降のホップフィールドをヘッダの前に詰める。
次に、図6を用いて、スイッチ部22、ヘッダ解析部23(ホップフィールド抽出部23a〜23e)およびスイッチ制御部24の詳細な構成について説明する。
スイッチ部22は、出力ポート26a〜26eに対応して設けられたマルチプレクサ22a〜22eを有する。マルチプレクサ22a〜22eの各々は、全てのバッファ21a〜21eと接続されている。
ホップフィールド抽出部23a〜23eはそれぞれ、対応するバッファ21a〜21eに蓄積されたパケットのヘッダ情報を解析し、抽出したホップフィールドに格納された出力ポート情報(ワンホットビット形式)をスイッチ制御部24に送信する。
スイッチ制御部24は、ワンホットビット形式の出力ポート情報を用いて、選択信号を生成し、マルチプレクサに送信する。マルチプレクサは、スイッチ制御部24が生成した選択信号に基づいて、バッファ21a〜21eのうちのいずれかに蓄積されたパケットを、対応する出力ポートに接続されたヘッダ書換部に出力する。
なお、スイッチ制御部24は、好ましくは、出力ポートの使用を調停する機能を有する。即ち、異なる入力ポート経由で複数のパケットを受信し、かつ、それらのパケットの出力先が同じである場合に、スイッチ制御部24は、それらのパケットが所定のルールに基づいて送信されるようにスイッチ部22を制御する。例えば、受信した複数のパケットを、バッファ21a,21b,21c,21d,21e,21a・・・に蓄積されたパケットの順で出力するようにスイッチ部22を制御する。その他、入力ポートに優先度を設定しておき、優先度の高い入力ポート経由で受信したパケットを優先的に送信するようにスイッチ部22を制御してもよい。また、パケットに優先度を設定しておき、優先度の高いパケットを優先的に送信するようにスイッチ部22を制御してもよい。 第1の実施形態では、ホップフィールドにエンコードされた出力ポート情報を格納することで、ヘッダ長を短くしている。さらに、次段のルータが使用するホップフィールドの出力ポート情報をデコードした情報(即ち、ワンホットビット形式の情報)に書き換えて、次段のルータに転送する。言い換えると、自ルータで用いる出力ポート情報は、既に前段のルータにてデコードしたワンホットビット形式に変換されている。これにより、パケットを受信したルータは、ヘッダ解析部23での出力ポート情報のデコードを行う必要が無くなり、出力ポートを迅速に決めることが可能になる。また、自ルータで用いたホップフィールドを削除するため、デコードによるヘッダの長さは長くならない。その結果、第1の実施形態によれば、ヘッダ長を可及的に短くしつつ、レイテンシを減少させることができる。さらに、ヘッダ解析部23でのデコード処理が不要であるため、ヘッダ解析部23およびスイッチ制御部24を簡素で高速な回路で実現することができる。
以下に説明する第2および第3の実施形態では、ネットワーク内のトラフィックの偏りを利用して、パケット中の経路情報を圧縮する。
(第2の実施形態)
第2の実施形態では、ホップフィールドの有効/無効を示すバリッドフラグが設けられたパケットを用いる。パケットを受信したルータは、受信パケットのヘッダに有効なホップフィールドが存在しない場合、そのパケットをデフォルト設定の出力ポートから送信する。
図7は、各ホップフィールドに対応してバリッドフラグが設けられたパケットのヘッダの一例を示している。ホップフィールドのそれぞれの前に、バリッドフラグが設けられている。この例では、バリッドフラグが“1”である場合は、対応するホップフィールドが有効(Valid)であることを示し、バリッドフラグが“0”である場合は、対応するホップフィールドが無効(Invalid)であることを示している。
図7は、コア101がメモリ303に読み出し要求を行う際に用いられるパケットの例である。コマンドフィールドの“RRQ”はリードリクエスト(Read ReQuest)を示し、ソースコアフィールドの“core0”はコア101の識別子を示している。また、Hop1 OutPortおよびHop2 OutPortは有効であり、Hop3〜5 OutPortは無効である。
パケットを受信したルータは、自ルータに対応するホップフィールドのバリッドフラグが有効を示す場合、ホップフィールドに格納された出力ポート情報に基づいて、対応する出力ポートからパケットを出力する。一方、バリッドフラグが無効を示す場合、デフォルト設定された出力ポートからパケットを出力する。
以下、図7のパケットを受信した場合の動作について説明する。コア101からパケットを受信したルータ201は、Hop1 Validを参照する。Hop1 Valid が“1”であるため、Hop1 OutPortは有効である。ルータ201は、Hop1 OutPortに格納された出力ポート情報が示す出力ポート“0”からパケットをルータ205に送信する。パケットを受信したルータ205は、Hop2 Validを参照する。Hop2 Valid が“1”であるため、Hop2 OutPortは有効である。ルータ205はHop2 OutPortに格納された出力ポート情報が示す出力ポート“2”からパケットをメモリ303に送信する。
ところで、所定のアプリケーションが動作した場合、コアが特定のメモリ等に頻繁にアクセスすることにより、パケットは高い頻度で特定の経路を経由する。このような場合、ルータは特定(デフォルト設定)の出力ポートからパケットを出力するようにスイッチ部を制御する。例えば、各ルータにおける特定の出力ポートを“0”とする。なお、特定の出力ポートは、ルータ毎に設定してもよい。
図8は、経路情報を圧縮したパケットのヘッダの一例を示している。Hop Validには、Hop OutPortが無効であることを示す“0”が格納されている。なお、Hop OutPortに格納される情報はdon’t careである。
図8のパケットを受信した場合の動作について説明する。まず、コア101からパケットを受信したルータ201は、有効なホップフィールドがあるか否かを判定する。判定の結果、ヘッダに有効なホップフィールドが存在しないため、ルータ201は、パケットをデフォルト設定の出力ポート“0”からルータ205に送信する。ルータ205は、ルータ201と同様の処理を行う。有効なホップフィールドが存在しないため、ルータ205は出力ポート“0”からパケットをメモリ301に送信する。
第2の実施形態では、ホップフィールドに対して有効/無効を示すバリッドフラグを設け、有効なホップフィールドが存在しない場合、デフォルト設定の出力ポートからパケットを送信する。これにより、デフォルト設定の出力ポートからパケットを送信する場合の経路情報を省略することができ、パケットのヘッダ長を短くすることができる。
次に、第2の実施形態に係るルータの構成例について、図9〜図11を用いて説明する。図9は、第2の実施形態に係るルータ10Aの概略的な構成を示している。図10は、スイッチ部22、ヘッダ解析部(出力ポート選択部27a〜27e)およびスイッチ制御部24の構成を示している。図11は、出力ポート選択部27a〜27eの詳細な構成を示している。
図9のルータ10Aは、5入力5出力のルータであり、入力ポート20a〜20eと、バッファ21a〜21eと、スイッチ部22と、ヘッダ解析部27と、スイッチ制御部24と、出力ポート26a〜26eとを備える。以下、第1の実施形態と異なる構成についてのみ説明する。
図10に示すスイッチ制御部24は、出力ポート選択部27a〜27eにより選択された出力ポート情報を用いて、選択信号を生成する。
ヘッダ解析部27は、バッファ21a〜21eに対応して設けられた出力ポート選択部27a〜27eを有する。このように入力ポートの数だけ出力ポート選択部を設けることで、複数の入力ポートが同時にパケットを受信した場合ついてもパケットの転送が可能となるとともに、複数の出力ポートから同時にパケットを送信することが可能となる。
出力ポート選択部は、対応するバッファに蓄積されたパケットのヘッダ情報から、自ルータに対応するホップフィールドのバリッドフラグが有効か無効か判定する。自ルータに対応するホップフィールドのバリッドフラグが有効を示す場合、そのホップフィールドに格納された出力ポート情報を選択する。一方、ヘッダに有効なホップフィールドが存在しない場合、デフォルト設定の出力ポート情報を選択する。
図11に示すように、出力ポート選択部27a〜27eはそれぞれ、ホップフィールド抽出部31と、バリッドフラグ抽出部32と、設定レジスタ33と、マルチプレクサ34とを備えている。ホップフィールド抽出部31は、パケットのヘッダから、自ルータに対応するホップフィールドHopX OutPortを抽出する。バリッドフラグ抽出部32は、パケットのヘッダから、自ルータに対応するバリッドフラグHopX Validを抽出する。設定レジスタ33は、デフォルト設定の出力ポート情報を記憶する。なお、デフォルト設定の出力ポート情報は、固定値でもよいし、コアから随時設定されてもよい。後者の場合は、例えば、マルチコアシステム上で動作するアプリケーションの種類に応じて、トラフィックの偏りが変化する場合に有効である。また、デフォルト設定の出力ポート情報は、無効な識別子であってもよい。
マルチプレクサ34は、バリッドフラグ抽出部32からの有効/無効を示す信号に応じて、ホップフィールド抽出部31または設定レジスタ33からの出力ポート情報をスイッチ制御部24に出力する。より詳しくは、マルチプレクサ34は、バリッドフラグ抽出部32から“1”が入力された場合にはホップフィールド抽出部31の信号を出力し、バリッドフラグ抽出部32から“0”が入力された場合には設定レジスタ33からの信号を出力する。
以上説明したように、第2の実施形態では、アクセス・トラフィックの偏りを利用して、ヘッダに格納する経路情報を圧縮する。その結果、パケットのヘッダ長を短くすることができ、メモリやI/Oポートにアクセスする際のレイテンシを減少させることができる。また、消費電力を削減することもできる。
なお、第2の実施形態によるルータは、スイッチ部においてパケットの転送に用いた出力ポート情報を格納するホップフィールドを削除するヘッダ書換部を備えてもよい。このヘッダ書換部は、当該ホップフィールドが削除されたパケットを出力ポートに送信する。これにより、パケットがルータを経由するたびに、ヘッダ長を短くすることができる。
(第3の実施形態)
第3の実施形態では、バリッドフラグに代えて、ルータ識別子フィールドを設ける。ルータにおいて出力ポートを指定する場合は、ルータ識別子フィールドにそのルータの識別子を格納し、対応するホップフィールドに出力ポート情報を格納する。一方、出力ポートを指定しない(デフォルト設定の)ルータの識別子は、ルータ識別子フィールドに無効なルータ識別子を格納するか、または、ルータ識別子フィールドを使用しない。
ルータはパケットを受信すると、自身の識別子を格納するルータ識別子フィールドを検索する。検索の結果、自身の識別子を格納するルータ識別子フィールドが存在した場合、ルータは対応するホップフィールドに格納された出力ポートからパケットを送信する。一方、自ルータの識別子を格納したフィールドが存在しない場合には、ルータはデフォルト設定の出力ポートからパケットを送信する。
以下、図12のパケットを受信した場合の動作について説明する。図12は、各ホップフィールドに対応してルータ識別子フィールド(HopX Router ID)が設けられたパケットのヘッダの一例を示している。ルータ識別子フィールドには、対応するホップフィールドを使用するルータの識別子が格納されている。なお、特定の出力ポートを指定しないHopX Router IDには無効なルータの識別子が格納されている。
図12のパケットは、図1において、コア101がI/Oポート401に読み出し要求を行う際の例である。ルータ201は、ルータ識別子フィールドに自身の識別子“0”と同じ値が格納されているか検索する。そして、Hop1 Router IDの値が自身の識別子に一致するため、ルータ201は、Hop1 OutPortに格納された出力ポート“1”からパケットをルータ206に送信する。ルータ206は、ルータ識別子フィールドを検索する。そして、Hop2 Router IDの値が自身の識別子“5”に一致するため、ルータ206はHop2 OutPortに格納された出力ポート“0”からパケットをI/Oポート401に送信する。
以下、図13のパケットを受信した場合の動作について説明する。図13は、経路情報を圧縮したパケットのヘッダの一例を示している。Hop Router IDには“4”が格納され、Hop OutPortには“0”が格納されている。図13のパケットは、コア101からルータ201に送信されたものとする。
まず、ルータ201は、ルータ識別子フィールドを検索する。検索の結果、自身の識別子と一致するルータ識別子フィールドが存在しないため、ルータ201は、パケットをデフォルト設定の出力ポート“0”からルータ205に送信する。ルータ205は、ルータ識別子フィールドを検索する。検索の結果、自身の識別子と一致するルータ識別子フィールドHop Router IDが存在するので、対応するHop OutPortに格納された出力ポート“0”からパケットをメモリ301に送信する。このようにして、コア101から送信されたパケットはメモリ301に転送される。
第3の実施形態では、経路上アクセス頻度の高い出力ポートをデフォルト設定しておき、パケットの経路情報を省略する。これにより、ヘッダ長の短いパケットを用いてパケットの転送を行うことができる。
次に、第3の実施形態に係るルータの構成について、第2の実施形態に係るルータとの相違点のみを説明する。第3の実施形態に係るルータは、ルータ10Aのヘッダ解析部27に代えてヘッダ解析部28を備える。このヘッダ解析部28は、バッファ21a〜21eに対応して設けられた複数の出力ポート選択部28a〜28eを有する。
出力ポート選択部は、受信したパケットのヘッダに、自ルータの識別子と等しい識別子を格納したルータ識別子フィールドが存在する場合、ルータ識別子フィールドに対応付けられたホップフィールドに格納された出力ポート情報を選択し、そうでなければ、デフォルト設定の出力ポート情報を選択する。
図14は、出力ポート選択部の構成図である。出力ポート選択部28a〜28eは、ホップフィールド抽出部31と、設定レジスタ33と、ルータ識別子フィールド抽出部35と、比較器36と、マルチプレクサ37と、を備えている。ホップフィールド抽出部31と設定レジスタ33は第2の実施形態と同じなので説明を省略する。
ルータ識別子フィールド抽出部35は、ヘッダからルータ識別子フィールドに格納された識別子の値を抽出する。ヘッダが複数のルータ識別子フィールドを含む場合、ルータ識別子フィールド抽出部35は、各々のルータ識別子フィールドに格納された識別子の値を全て抽出する。
比較器36は、抽出された値を自ルータの識別子と比較し、両者が一致する場合には“1”を出力し、不一致の場合には“0”を出力する。ルータ識別子フィールド抽出部35が複数の値を抽出した場合、比較器36は、自ルータの識別子と一致する値があるかどうか検索し、ある場合には“1”を出力し、ない場合には“0”を出力する。
ホップフィールド抽出部31は、自ルータIDが格納されたルータ識別子フィールドに対応するホップフィールドを抽出する。
マルチプレクサ37は、比較器36からの信号に応じて、ホップフィールド抽出部31または設定レジスタ33の出力ポート情報をスイッチ制御部24に出力する。より詳しくは、マルチプレクサ37は、比較器36から“1”を入力した場合にはホップフィールド抽出部31から出力ポート情報を出力し、比較器36から“0”を入力した場合には設定レジスタ33から出力ポート情報を出力する。
第3の実施形態によれば、ヘッダに自身の識別子が存在するか否かにより、出力ポートが決定される。すなわち、デフォルト設定が可能な出力ポートへの出力に対しては、ルータ識別子フィールドの設定を省略することができる。例えば、図1において、コア101がメモリ301〜304のいずれかにアクセスする頻度が高い場合には、コア101はルータ205までの経路の設定を省略し、ルータ識別子フィールドにルータ205の識別子“4”を設定し、対応するホップフィールドに出力先となるポート番号情報を格納したパケットを生成すればよい。このように第3の実施形態では、パケット転送経路の任意の区間について個別に出力ポートを指定することができる。
なお、第3の実施形態によるルータは、スイッチ部においてパケットの転送に用いた出力ポート情報を格納するホップフィールドを削除するヘッダ書換部を備えてもよい。このヘッダ書換部は、当該ホップフィールドが削除されたパケットを出力ポートに送信する。これにより、パケットがルータを経由するたびに、ヘッダ長を短くすることができる。
以上説明したように、第3の実施形態では、パケットの転送経路の一部のみに、アクセス頻度の偏りがあるマルチコアシステムにおいても、アクセス・トラフィックの偏りを利用して、ヘッダに格納する経路情報を圧縮する。その結果、パケットのヘッダ長を短くすることができ、メモリやI/Oポートにアクセスする際のレイテンシを減少させることができる。また、消費電力を削減することもできる。
本発明に係る3つの実施形態について説明した。第2および第3の実施形態をより一般的に言えば、ホップフィールドと対応付けられた判定フィールド(バリッドフラグ、ルータ識別子フィールド)に基づいて、出力ポートを選択する。即ち、ヘッダ解析部(出力ポート選択部)は、受信したパケットのヘッダ情報を解析し、判定フィールドに基づいて、デフォルト設定の出力ポート情報、またはホップフィールドに格納された出力ポート情報を選択する。
なお、本発明のマルチコアシステムのネットワーク構成は、図1に示すようなツリー型のトポロジに限らず、図15に示すようなメッシュ型のトポロジでもよい。図15のマルチコアシステムは、コア101〜116と、ルータ201〜220と、メモリ301〜304とを含んでいる。ルータ201〜220は格子状に配置され、メッシュ型のネットワークを構成している。この場合、ルータがネットワークにおける自身の位置および転送先の位置を把握できるように、ルータ識別子をルータの水平・垂直位置(x座標、y座標)等で指定する。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
10,10A ルータ
20a,20b,20c,20d,20e 入力ポート
21a,21b,21c,21d,21e バッファ
22 スイッチ部
22a,22b,22c,22d,22e マルチプレクサ
23 ヘッダ解析部
23a,23b,23c,23d,23e ホップフィールド抽出部
24 スイッチ制御部
25a,25b,25c,25d,25e ヘッダ書換部
26a,26b,26c,26d,26e 出力ポート
27 ヘッダ解析部
27a,27b,27c,27d,27e 出力ポート選択部
28a,28b,28c,28d,28e 出力ポート選択部
31 ホップフィールド抽出部
32 バリッドフラグ抽出部
33 設定レジスタ
34,37 マルチプレクサ
35 ルータ識別子フィールド抽出部
36 比較器
101〜116 コア
201〜206 ルータ
301〜304 メモリ
401 I/Oポート

Claims (2)

  1. パケットを受信する、入力ポート部と、
    前記パケットを送信する、複数の出力ポートと、
    前記パケットの出力ポートを示す出力ポート情報が格納されたホップフィールドに対応付けられた、オンチップルータの識別子を格納するルータ識別子フィールドに基づいて、デフォルト設定の出力ポート情報または前記ホップフィールドに格納された出力ポート情報を選択する、ヘッダ解析部と、
    前記選択された出力ポート情報に基づき、前記複数の出力ポートのうちいずれかを選択して切り替える、スイッチ部と、
    を備え
    前記ヘッダ解析部は、自ルータの識別子と等しい識別子を格納したルータ識別子フィールドが存在する場合、前記ルータ識別子フィールドに対応付けられたホップフィールドに格納された出力ポート情報を選択し、そうでなければ、前記デフォルト設定の出力ポート情報を選択することを特徴とするオンチップルータ。
  2. プロセッサコア、オンチップルータおよびメモリを備えるマルチコアシステムであって、
    前記オンチップルータは、
    パケットを受信する、入力ポート部と、
    前記パケットを送信する、複数の出力ポートと、
    前記パケットの出力ポートを示す出力ポート情報が格納されたホップフィールドに対応付けられた、オンチップルータの識別子を格納するルータ識別子フィールドに基づいて、デフォルト設定の出力ポート情報または前記ホップフィールドに格納された出力ポート情報を選択する、ヘッダ解析部と、
    前記選択された出力ポート情報に基づき、前記複数の出力ポートのうちいずれかを選択して切り替える、スイッチ部と、を備え
    前記ヘッダ解析部は、自ルータの識別子と等しい識別子を格納したルータ識別子フィールドが存在する場合、前記ルータ識別子フィールドに対応付けられたホップフィールドに格納された出力ポート情報を選択し、そうでなければ、前記デフォルト設定の出力ポート情報を選択することを特徴とするマルチコアシステム。
JP2014124443A 2014-06-17 2014-06-17 オンチップルータ及びそれを用いたマルチコアシステム Expired - Fee Related JP5847887B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014124443A JP5847887B2 (ja) 2014-06-17 2014-06-17 オンチップルータ及びそれを用いたマルチコアシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014124443A JP5847887B2 (ja) 2014-06-17 2014-06-17 オンチップルータ及びそれを用いたマルチコアシステム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012067923A Division JP5624579B2 (ja) 2012-03-23 2012-03-23 オンチップルータ

Publications (2)

Publication Number Publication Date
JP2014209764A JP2014209764A (ja) 2014-11-06
JP5847887B2 true JP5847887B2 (ja) 2016-01-27

Family

ID=51903677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014124443A Expired - Fee Related JP5847887B2 (ja) 2014-06-17 2014-06-17 オンチップルータ及びそれを用いたマルチコアシステム

Country Status (1)

Country Link
JP (1) JP5847887B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139673A (ko) 2018-03-30 2020-12-14 프로비노 테크놀로지스, 아이엔씨. 시스템 온 칩(SoC) 에이전트 리셋 및 전력 관리를 위한 프로토콜 레벨 제어
KR20200135780A (ko) 2018-03-30 2020-12-03 프로비노 테크놀로지스, 아이엔씨. 인터커넥트와 연관된 가상 채널을 통한 트랜잭션의 부분들 중재하기
CN111917640B (zh) 2019-05-09 2023-06-06 华为技术有限公司 SRv6网络生成段列表、报文转发的方法、设备和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005045681A (ja) * 2003-07-24 2005-02-17 Nec Engineering Ltd スイッチネットワーク装置及びその転送制御方法
WO2010137572A1 (ja) * 2009-05-25 2010-12-02 日本電気株式会社 ネットワークオンチップとネットワークルーティング方法とシステム

Also Published As

Publication number Publication date
JP2014209764A (ja) 2014-11-06

Similar Documents

Publication Publication Date Title
JP5624579B2 (ja) オンチップルータ
US8601423B1 (en) Asymmetric mesh NoC topologies
US8848703B2 (en) On-chip router and multi-core system using the same
US8638665B2 (en) Router, information processing device having said router, and packet routing method
US8937958B2 (en) Router and many-core system
CN109698788A (zh) 流量转发方法和流量转发装置
US20150195191A1 (en) Parallel computer, node apparatus, and control method for the parallel computer
WO2014096970A2 (en) Memory sharing in a network device
US9306844B2 (en) Zero-cycle router for networks on-chip
JP5847887B2 (ja) オンチップルータ及びそれを用いたマルチコアシステム
US9942146B2 (en) Router path selection and creation in a single clock cycle
US8812787B2 (en) Router and many-core system
CN112491715B (zh) 路由装置及片上网络的路由设备
JP2016032288A (ja) バッファを有しないnocのデータ処理方法、及びnoc電子素子
JP2011151547A (ja) パケット伝送方法およびパケット伝送装置
EP2405362B1 (en) A connection arrangement
US9413654B2 (en) System, relay device, method, and medium
JP6586374B2 (ja) 通信装置、経路管理サーバ、通信方法、および仮想ポート割当方法
WO2020004015A1 (ja) 動的可変容量メモリ装置及び記憶容量動的可変方法
US20160112318A1 (en) Information processing system, method, and information processing apparatus
JP6581062B2 (ja) 通信装置、システム、方法およびプログラム
JP2007013856A (ja) テーブル装置及びこれを用いたアドレス検索装置
CN107005488A (zh) 通用队列
Sahu Bidirectional Network-on-Chip Router Implementation Using VHDL
JP5639965B2 (ja) 非同期動作検索回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150820

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: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151125

R151 Written notification of patent or utility model registration

Ref document number: 5847887

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees