JP5814298B2 - ルータ - Google Patents

ルータ Download PDF

Info

Publication number
JP5814298B2
JP5814298B2 JP2013111244A JP2013111244A JP5814298B2 JP 5814298 B2 JP5814298 B2 JP 5814298B2 JP 2013111244 A JP2013111244 A JP 2013111244A JP 2013111244 A JP2013111244 A JP 2013111244A JP 5814298 B2 JP5814298 B2 JP 5814298B2
Authority
JP
Japan
Prior art keywords
router
multicast
input signal
input
flit
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
JP2013111244A
Other languages
English (en)
Other versions
JP2014230261A (ja
Inventor
中村 宏
宏 中村
遠 和
遠 和
忍 三輪
忍 三輪
Original Assignee
株式会社半導体理工学研究センター
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 株式会社半導体理工学研究センター filed Critical 株式会社半導体理工学研究センター
Priority to JP2013111244A priority Critical patent/JP5814298B2/ja
Publication of JP2014230261A publication Critical patent/JP2014230261A/ja
Application granted granted Critical
Publication of JP5814298B2 publication Critical patent/JP5814298B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、ルータに関する。
近年、NoC(Network on Chip)を用いたメニーコアSoC(System on Chip)が着目されている。NoCはでは、ルータを用いてパケットが複数のコア間で送受信される。
ルータのレイテンシは、システム性能を決める主要因となる。そのため、種々のルータ・アーキテクチャに関する研究が進められている。
Li-Shiuan Peh他著、"A Delay Model and Speculative Architecture gor Pipelined Routers"、Proceedings of the Seventh International Symposium on high-Performance Computer Architecture (HPCA’01)、2001年 H.Matsutani他著、"Prediction Router: a low-latency on-chip router architecture with multiple predictors"、IEEE Transactions on Computers、60(6): 783-799、2011年
動作速度を向上出来るルータを提供する。
実施形態のルータによれば、入力信号を受信する複数の入力ポートと、前記入力ポートで受信された前記入力信号をマルチキャスト可能なスイッチと、前記スイッチで送信された前記入力信号を一時的に保持し、外部へ出力する複数のレジスタと、前記スイッチに対して前記入力信号をマルチキャストで送信させると共に、前記マルチキャストによる送信のうち、正しい宛先への送信を有効とし、誤った宛先への送信を無効とする制御部と、を備え、前記スイッチは、クロスバースイッチである。
第1実施形態に係るメニーコアプロセッサのブロック図。 第1実施形態に係るプロセッサコアのブロック図。 パケットの構成を示すブロック図。 第1実施形態に係るルータのブロック図。 第1実施形態に係るルータの動作を示すフローチャート。 第1実施形態に係るルータのパイプライン処理を示すタイムチャート。 第1実施形態に係るルータのパイプライン処理を示すタイムチャート。 第1実施形態に係るルータのブロック図。 第1実施形態に係るルータのブロック図。 第1実施形態に係るルータのブロック図。 ルータのパイプライン処理を示すタイムチャート。 ルータのパイプライン処理を示すタイムチャート。 ルータのパイプライン処理を示すタイムチャート。 各種ルータの比較結果を示すグラフ。 各種ルータの比較結果を示すグラフ。 ルータの動作条件を示す図。 第2実施形態に係る転送ルールを示すダイアグラム。 第2実施形態に係るプロセッサの一部領域を示すブロック図。 第2実施形態に係るルータの動作を示すフローチャート。 第2実施形態に係るルータのブロック図。 第2実施形態に係る転送ルールを示すダイアグラム。 第2実施形態に係るルータのブロック図。 第3実施形態に係るルータの動作を示すフローチャート。 第3実施形態に係るルータのブロック図。 第1乃至第3実施形態の変形例に係るメニーコアプロセッサのブロック図。 第1乃至第3実施形態の変形例に係る優先度テーブルを示すダイアグラム。 第1乃至第3実施形態の変形例に係る優先度テーブルを示すダイアグラム。 第1乃至第3実施形態の変形例に係るルータの動作を示すフローチャート。
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
1.第1実施形態
第1実施形態に係るルータについて説明する。本実施形態では一例として、メニーコアプロセッサ(many core processor)に使用されるルータについて説明する。
1.1 メニーコアプロセッサの全体構成について
まず、本実施形態に係るメニーコアプロセッサの構成について、図1を用いて説明する。図1はメニーコアプロセッサのブロック図である。
図示するようにメニーコアプロセッサ1は、16個のプロセッサコア10(10−1〜10−16)を備えている。本例におけるプロセッサコア10の数は16個であるが、もちろんこれは一例に過ぎず、32個や64個等でも良く、複数であれば限定されない。また図1では、プロセッサコア10が(4×4)のマトリクス状に配置されているが、プロセッサコア10のレイアウトもこれに限定されるものではない。
メニーコアプロセッサ1は更に、各プロセッサコア10に対応付けて設けられたルータ11(11−1〜11−16)を備えている。隣接するルータ11間は、配線13によって接続される。ルータ11は、プロセッサコア10間におけるデータの送受信を制御する。すなわち、プロセッサコア10間において、データはパケットとして送受信される。そしてルータ11は、受信したパケットの宛先に基づいて、対応付けられたプロセッサコア10にパケットを送信し、または別のプロセッサコア10に対応付けられたルータ11にパケットを送信する。
図2は、プロセッサコア10の構成を示すブロック図である。図示するようにプロセッサコア10は、コア部20、キャッシュメモリ21、及びメモリコントローラ22を備えている。コア部20は一次キャッシュメモリを含み、対応するルータ11と配線によって通信可能に接続されている。そしてコア部20は、ルータ11からパケットを受信し、受信したパケットを用いて各種の演算を行い、またパケットをルータ11に送信する。キャッシュメモリ21は、コア部20に対する二次キャッシュ(L2キャッシュ)として機能する。キャッシュメモリ21も、対応するルータ11と配線によって通信可能に接続されている。そして、ルータ11からパケットを受信し、これを一時的に保持し、またパケットをルータ11に送信する。メモリコントローラ22は、プロセッサ1外部のメインメモリへのデータ要求を調停する。例えばメモリコントローラ22は、L2キャッシュ21でキャッシュミスが発生した場合、L2キャッシュ21(あるいはキャッシュコントローラ)の生成した、メインメモリへのデータ要求パケットを受信する。そしてメモリコントローラ22は、このデータ要求パケットに基づいてメインメモリへアクセスし、データ要求パケットを生成したL2キャッシュ21、及び当該データを要求したコア部20に対して転送する。
なおメモリコントローラ22は、一部のルータ11にのみ対応付けて設けられるのが一般的である。すなわち、図1の例では16個のプロセッサコア10が含まれるが、メモリコントローラ22の数は例えば1〜4個であるのが通常である。従ってこの場合、特定のルータ11のみがメモリコントローラ22と接続され、その他のルータ22はメモリコントローラ22とは接続されない。もちろん、プロセッサコア10またはルータ22と同数のメモリコントローラ22が設けられても良い。
図3は、パケットの構成を示す概念図である。図示するようにパケットは、フリット(flit)と呼ばれるデータの集合であり、フリットはクロック1サイクルで処理される単位である。パケットの先頭にはヘッダフリット(header flit)が設けられる。ヘッダフリットはパケットの種類や宛先等、当該パケットに関する情報を保持する。ヘッダフリットの後ろには、正味のデータを保持するボディフリットが続く。最後のフリットはテイルフリット(tail flit)と呼ばれる。
1.2 ルータの構成について
次に、ルータ11の構成について図4を用いて説明する。図4は、本実施形態に係るルータ11のブロック図である。図4において、太線で示した矢印はフリットまたはフリットと同じビット幅の信号を示し、細線で示した矢印はそれ以外の制御信号等を示している。
図示するようにルータ11は、複数のバーチャルチャネル30、選択回路31、32、スイッチ33、キャンセル部34、パイプラインレジスタ35、マルチキャストユニット36、ルート計算部37、VC(virtual channel)アロケータ38、及びスイッチアロケータ39を備えている。
複数のバーチャルチャネル30はそれぞれ、ルータ11に設けられた複数の入力ポートIN1〜INn(nは2以上の自然数)に対応付けて設けられる。バーチャルチャネル30は入力バッファとして機能し、対応する入力ポートにフリットが入力された際に、これを一時的に保持する。バーチャルチャネル30は、受信したフリットを一時的に保持するバッファとして機能し、例えばFIFOメモリである。なお、入力ポートINは、配線13によって接続されるルータ毎に設けられ、更に対応するプロセッサコア10のコア部20、L2キャッシュ21、及びメモリコントローラ22毎に設けられる。従って、図1のルータ11−6の例では7個の入力ポートIN1〜IN7が設けられることになる。後述する出力ポートOUT1〜OUTnも同様である。
複数の選択回路31はそれぞれ、複数のバーチャルチャネル30の各々に対応付けて設けられる。そして選択回路31は、マルチキャストユニット36の命令に従って、バーチャルチャネル30から出力されるフリットと、入力ポートINに入力されたフリットとのいずれかを選択する。つまり選択回路31は、フリットに対してバーチャルチャネル30をバイパスさせることが出来る。
スイッチ33は、選択回路31で選択されたフリットを、出力ポートOUT1〜OUTnの少なくともいずれかを宛先として、マルチキャストまたはユニキャストで送信する。そしてフリットは、出力ポートOUTから所望の宛先となるルータ11へ送信される。スイッチ33は、例えばクロスバースイッチである。
キャンセル部34は、スイッチ33から送信されたフリットを、正しい宛先に対応するパイプラインレジスタ35に転送すると共に、誤った宛先への送信をキャンセルする。すなわちキャンセル部34は、ANDゲート40及び複数の選択回路41を備える。
ANDゲート40は、VCアロケータ38及びスイッチアロケータ39からの制御信号の論理積演算を行う。この論理積演算結果は、複数の選択回路41のうち、いずれが正しい宛先に対応するのかを示す情報である。
複数の選択回路41はそれぞれ、出力ポートOUT1〜OUTnに対応付けられて設けられる。そして選択回路41は、ANDゲート40の出力信号に基づいて、スイッチ33からの信号(フリット)と、論理“Low”レベル(フリットと同一のビット幅を有し、且つ全ビットが“0”の信号)とのいずれかを選択する。すなわち、正しい宛先に対応する選択回路41は、スイッチ33から出力されるフリットを選択し、その他の選択回路41は論理“Low”レベルを選択して出力する。
パイプラインレジスタ35は例えばフリップフロップ等のバッファであり、出力ポートOUT1〜OUTnに対応付けて設けられる。そしてパイプラインレジスタ35はクロックCLKに同期して、対応する選択回路41の出力を内部に取り込む。そしてパイプラインレジスタ35は、取り込んだフリットを、対応付けられた出力ポートOUTを介して次のルータ11へ転送する。
マルチキャストユニット36、ルート計算部37、VCアロケータ38、スイッチアロケータ39、及び選択回路32は、上記バーチャルチャネル30、選択回路31、スイッチ33、キャンセル部34、及びパイプラインレジスタ35を制御する制御部として機能する。以下、それぞれについて説明する。
マルチキャストユニット36は、受信したフリットをマルチキャストで送信するかユニキャストで送信するかを判断する。そしてマルチキャストユニット36は、その判断結果に基づいて選択回路31、32を制御し、またスイッチ33に対してマルチキャストで送信を実行させる命令を発行する。
ルート計算部37は、入力ポートINで受信したヘッダフリットを解析して、当該パケットの宛先を判断する。そして、いずれの選択回路41に対してスイッチ33の出力を選択させるべきかを示す信号をANDゲート40へ出力する。またルート計算部37は、フリットがマルチキャストされない場合において、宛先に対応するバーチャルチャネルを獲得するようVCアロケータ38を制御する。
スイッチアロケータ39は、フリットをマルチキャストで送信しない場合において、スイッチ33の制御信号を生成する。また、ヘッダフリット送信時におけるスイッチ33の制御状態を記憶する。
選択回路32は、マルチキャストユニット36の命令に応答して、スイッチアロケータからの制御信号と、マルチキャストユニット36からのマルチキャスト信号とのいずれかを選択し、スイッチ33に出力する。スイッチ33は、選択回路32からの信号に基づいてフリットの送信を実行する。
VCアロケータ(Virtual channel allocator)38は、隣接するルータ11から情報を受信し、隣接するルータ11におけるバーチャルチャネル30の空き状況を常に監視する(図4では、“Credits in”及び“Credits out”で示す)。そして入力ポートINでフリットを受信した際に、マルチキャストユニット36の命令に応答して、隣接するルータ11のバーチャルチャネル30を獲得する。
1.3 ルータの動作について
次に、上記構成のルータ11の動作につき、図5を用いて説明する。図5は、本実施形態に係るルータ11の動作を示すフローチャートである。
まず、いずれかの入力ポートINで受信されたフリットは、対応するバーチャルチャネル30に保持されると共に、その受信情報がマルチキャストユニット36に送信される。マルチキャストユニット36に送信される受信情報は、フリット内の必要ないずれかのビットのみであっても良いし、あるいはフリット全体であっても良い。
次にマルチキャストユニット36は、上記受信情報に基づいて、受信したフリットがヘッダフリットであるか否かを判断する(ステップS10)。この判断は、フリットのタイプフィールドを参照することで判断出来る。そしてヘッダフリットであった場合(ステップS10、YES)、マルチキャストユニット36は、マルチキャストによる送信が可能であるか否かを判断する(ステップS11)。
マルチキャストによる送信が可能な場合の一例は、下記の全てが満たされた場合である。すなわち、
(1) 当該フリットの宛先となり得る全てのルータにおいて、バーチャルチャネル30が獲得可能なこと(バーチャルチャネル30に空きがあること)、
(2) 当該ルータに到着したフリットが1つだけであること、及び、
(3) 当該ルータには、他のフリットが存在しないこと(直前のサイクルでフリットがスイッチ33を使用していないこと)。
上記(1)の条件は、VCアロケータ38によって判断出来る。上記(2)の条件は、マルチキャストユニット36が入力ポートIN1〜INnを監視することで判断出来る。そして上記(3)の条件は、スイッチアロケータ39からの情報で判断出来る。すなわちスイッチアロケータ39は、直前のサイクルでスイッチ33がフリットを送信したか否かを認識している。従って、この情報をスイッチアロケータ39から受信することで、マルチキャストユニット36は(3)の条件を判断出来る。
マルチキャストユニット36がマルチキャストでの送信が可能であると判断した場合(ステップS11、YES)、ステップS12において以下の処理が行われる。すなわち、マルチキャストユニット36は、選択回路31に対して、入力ポートINからのフリットを選択するよう命令する。これにより、フリットはバーチャルチャネル30をバイパスする。また、スイッチ33に対してフリットをマルチキャストで送信させる命令(以下、マルチキャスト信号と呼ぶ)を出力し、選択回路32を制御して当該マルチキャスト信号をスイッチ33に供給させる。更にルート計算部37は、バーチャルチャネル30内のヘッダフリットを解析して、ルート計算を行う。すなわち、正しい宛先に対応する出力ポートOUTがいずれであるかを判断し、その旨を示す制御信号をANDゲート40へ出力する。更に、VCアロケータ38は、フリットの宛先となる可能性のあるルータ11におけるバーチャルチャネル30を獲得する。言い換えれば、出力ポートOUT1〜OUTnの全てに対応するバーチャルチャネル30を獲得する。更にスイッチアロケータ39は、マルチキャストユニット36の命令に応答して、ヘッダフリットの次に入力されるであろうボディフリットを送信する際のスイッチ33の制御情報を保持する。
そしてスイッチ33はマルチキャスト信号に応答して、入力ポートINで受信されたフリットをマルチキャストする。これによりフリットは、選択回路41の入力まで達する。そしてキャンセル部34が、誤った宛先(出力ポートOUT)への送信を全てキャンセルする(ステップS13)。すなわち、ルート計算部37によるルート計算の結果に基づいてANDゲート40は、正しい宛先に対応する選択回路41に対してのみ論理“high”レベルを出力し、その他の選択回路41には論理“low”を出力する。その結果、正しい宛先に対応する選択回路41のみが、対応するパイプラインレジスタ35にフリットを出力する。そして、このパイプラインレジスタ35から、次のルータ11へフリットが転送される(ステップS14)。
なお、ステップS10において受信したフリットがヘッダフリットでなかった場合(ステップS10、NO)、フリットはユニキャストで送信される。すなわち、スイッチアロケータ39は、ヘッダフリット送信時におけるステップS12で保持したスイッチ33の制御情報に基づいて、スイッチ33を制御する。つまり、入力フリットがヘッダフリットでなかったということは、受信したフリットはボディフリットであり、このボディフリットの宛先はヘッダフリット受信時に既に判明しているはずである。従ってスイッチアロケータ39は、ヘッダフリット送信時の状況に基づいて、ボディフリットをユニキャストで正しい宛先となる出力ポートOUTへ送信する(ステップS15)。
また、ステップS11でマルチキャストが不可能であった場合には、マルチキャストユニット36は、従来の方法を用いてフリットを送信する(ステップS16)。
ルータ11は、上記の処理をパイプライン処理する。図6は、あるルータ11が1つのパケットを次のルータ11に送信する際のパイプラインステージを示すタイミングチャートである。図6では、パケットに4個のボディフリットが含まれる場合を示している。
図中において、“RC(routing computing)”はフリットの宛先を求めるステージを示し、“VA(virtual-channel allocation)”は送信先のルータのバーチャルチャネル30を割り当てるステージを示し、“SA(switch allocation)”はスイッチ33の使用権を獲得するステージを示し、“McST(muticast switch traversal)”及び“ST(switch traversal)”はフリットが実際にスイッチ33を通過するステージを示す。“McST”及び“ST”のうち、“McST”は、フリットがマルチキャストされるステージであり、“ST”はフリットが非マルチキャスト(例えばユニキャスト)されるステージである。
図示するように、ヘッダフリットを受信した場合には、図5でも説明したように、“RC”ステージ、“McST”ステージ、及び“VA”ステージが同時に実行される。すなわち、ヘッダフリットが入力ポートINで受信されてからスイッチ33を通過するのに要するクロックサイクル数は1サイクルである。
また、ヘッダフリットについての処理と同時に、ヘッダフリットに後続する先頭のボディフリットについての“SA”ステージが実行される(これは、図5で説明した「ボディフリットを送信する際のスイッチ33の制御情報を保持する」ことに相当する)。そして、次のサイクルで“ST”ステージが実行され、また同時に次のボディフリットについての“SA”ステージが実行される。以下同様である。
従って、マルチキャスト可能な場合、例えば図6に示すようにフリット総数が5個のパケットを次のルータに送信するまでに必要なサイクル数は、5サイクルである。
図7は、一例としてフリット(ヘッダフリット)がルータ11−1からルータ11−2に転送され、引き続きルータ11−2からルータ11−3に転送される様子を示している。また図7では、ルータ11−1はマルチキャスト出来ず、ルータ11−2及び11−3はマルチキャスト可能であった場合について示している。
図示するようにルータ11−1は、通常の方法でフリットをルータ11−2へ転送する。図7の例では、4サイクルかけて“RC”ステージ、“VA”ステージ、“SA”ステージ、及び“ST”ステージを順次実行する場合を示している。
ルータ11−1からフリットを受信したルータ11−2は、マルチキャストが可能であるので、1サイクルでフリットをルータ11−2に転送出来る。ルータ11−2からフリットを受信したルータ11−3も同様である。
1.4 ルータの動作の具体例
次に、上記ルータ11の動作を、図8乃至図10を用いてより具体的に説明する。図8乃至図10はルータ11のブロック図であり、一例として入力ポートIN及び出力ポートOUTがそれぞれ4つの場合について示している。入力ポートIN1〜IN4には、バーチャルチャネル30−1〜30−4及び選択回路31−1〜31−4が対応付けられ、出力ポートOUT1〜OUT4には選択回路41−1〜41−4及びパイプラインレジスタ35−1〜35−4が対応付けられている。図8乃至図10において破線で示した矢印は、非活性の制御信号あるいは非選択の信号経路を表す。
まず図8に示すように、入力ポートIN1に、あるルータ11からヘッダフリットが入力されたと仮定する。このヘッダフリットは、入力ポートIN1に対応付けられたバーチャルチャネル30−1に保持される。マルチキャストユニット36は、入力ポートIN1にフリットが入力されたことを検知すると、出力ポートOUT1〜OUT4に対応するルータ11においてバーチャルチャネル30に空きがあるか否か(すなわち、バーチャルチャネル30を獲得可能か否か)を確認する。また、入力ポートIN1以外の入力ポートIN2〜IN4にフリットが入力されたか否かを確認する。更にマルチキャストユニット36は、当該ルータ11に他のフリットが存在するか否か(直前のサイクルでスイッチ33が使用されたか否か)を確認する。
これらの条件が全て満たされていることを確認すると、マルチキャストユニット36は、入力ポートIN1で受信したヘッダフリットをマルチキャストすることを決定する。そしてマルチキャストユニット36は、選択回路31−1に対して、入力バッファ30−1内のヘッダフリットではなく、入力ポートIN1のヘッダフリットを選択させる。その他の選択回路31−2〜31−4は選択動作を行わない。
またマルチキャストユニット36はマルチキャスト信号を発行して、これを選択回路32へ出力する。選択回路32は、マルチキャストユニット36の命令に基づき、マルチキャスト信号をスイッチ33へ出力する。するとスイッチ33は、マルチキャスト信号に応答して、選択回路31−1から出力されるヘッダフリットをマルチキャストで送信する。すなわちスイッチ33は図8に示すように、ヘッダフリットを選択回路41−1〜41−4の全てへ送信する。
ヘッダフリットが入力ポートIN1から選択回路41−1〜41−4へと転送されている間、ルート計算部37は、バーチャルチャネル30−1内のヘッダフリットを解析して、当該ヘッダフリットの宛先を検出する。
またVCアロケータ38は、出力ポートOUT1〜OUT4の全てに対応するバーチャルチャネル30を獲得する。そしてVCアロケータ38は、バーチャルチャネル30の獲得が完了すると、その旨を示す信号(図8の例では論理“high”レベル)をANDゲート40へ出力する。
そしてルート計算部37は、ルート計算を完了すると、図9に示すように正しい宛先を示す信号をANDゲート40へ出力する。図9の例では、正しい宛先は出力ポートOUT1である。するとANDゲート40は、ルート計算部37から受信した信号に応じた制御信号を発行して、これを選択回路1−1〜41−4に出力する。すなわちANDゲート40は、選択回路41−1には論理“high”レベルを出力する。これにより、選択回路41−1はスイッチ33から送信されたヘッダフリットをパイプラインレジスタ35−1に出力する。このヘッダフリットは、クロックに同期してパイプラインレジスタ35−1に取り込まれ、更に出力ポートOUT1から次のルータへ転送される。
他方でANDゲート40は、誤った宛先に対応する選択回路41−2〜41−4には論理“low”レベルを出力する。従って選択回路41−2〜41−4は、ヘッダフリットでは無く論理“low”レベルを選択する。よって、出力ポートOUT2〜OUT4にはヘッダフリットは送信されない。
またスイッチアロケータ39は、上記のように正しい宛先が出力ポートOUT1であったことを検出することにより、次のサイクルで受信するであろうボディフリットを選択回路31−1から選択回路41−1に送信すれば良い旨の情報を保持する。
以上の動作が1クロックサイクルの期間に行われる。
図10は、引き続きボディフリットを受信した場合について示している。マルチキャストユニット36は、ヘッダフリット受信時と同様に選択回路31−1を制御して、バーチャルチャネル30−1をバイパスさせる。またマルチキャストユニット36は、入力ポートIN1で受信されたフリットがボディフリットであることを検知すると、マルチキャスト信号を解除する。
またスイッチアロケータ39は、図8及び図9で説明したヘッダフリット送信時の状況を記憶している。従ってスイッチアロケータ39は、スイッチ33に対して選択回路31−1と選択回路41−1とを接続させる命令を発行する。そして選択回路31−1は、マルチキャストユニット36の命令に応答して、スイッチアロケータ39からの命令を選択する。
この結果、スイッチ33は、選択回路31−1から出力されるボディフリットを、選択回路41−1へユニキャストで送信する。すなわち、ボディフリットは選択回路41−2〜41−4には送信されない。
またANDゲート40は、ヘッダフリット送信時と同様の信号を出力する。その結果、選択回路41−1はボディフリットを選択する。選択されたボディフリットは、クロックに応答してパイプラインレジスタ35−1に格納され、出力ポートOUT1から次のルータへ出力される。
1.5 本実施形態に係る効果
上記のように、本実施形態に係るルータであると、その動作速度を向上出来る。本効果につき、以下詳細に説明する。
1.5.1 一般的なルータについて
マルチメディア機器の高性能化に伴い、一般的に使用されているマルチコアプロセッサよりもプロセッサコア数を増やしたメニーコアプロセッサの実用化が期待されている。このように多くのプロセッサコアを備えたプロセッサでは、プロセッサコア間での信号の送受信は、従来のオンチップバスでは無く、NoCを用いて行うことが望ましい。そしてNoCでは、データはパケット化され、複数のルータを介して宛先ルータまで転送される。
従って、プロセッサの高速動作のためには、ルータのレイテンシを短くすることが重要となる。以下、本実施形態の比較例としての種々のルータのパイプライン動作の一例について説明する。
図11は、最も単純なルータの動作を示している。図示するようにルータの動作は、“RC”ステージ、“VA”ステージ、“SA”ステージ、及び“ST”ステージの4サイクルによって行われる。これらのパイプラインステージは互いに依存関係を有するため、この順序で実行される必要がある。
図12は、図11における“VA”ステージと“SA”ステージとを並列して実行することで、サイクル数を4サイクルから3サイクルに低減させたルータである(VSAルータ)。本方式であると、“VA”処理及び“SA”処理の両方に成功すれば、ヘッダは“VA”及び“SA”ステージ(“VSA”ステージ)を通過でき、サイクル数を削減出来る。しかし、どちらか一方の処理に失敗した場合、“VSA”ステージをやり直す必要がある。従って、サイクル数の低減効果は十分とは言えない。
図13は、予測ルータの例を示す。予測ルータでは、次のパケット転送で使用されるであろう出力チャネルを予測し、パケット到着前にアービトレショーンを完了させておくものである。本方法によれば、予測がヒットした場合には、処理を1サイクルに短縮出来る。しかし予測がミスした場合には、図11の場合と同様に4サイクルの処理が必要となる。そして本方法では、予測のヒット率を極めて高く出来なければ、動作の高速化の効果は不十分である。
1.5.2 本実施形態に係るルータについて
本実施形態に係る構成であると、図13の予測ルータのような予測動作を必要とすることなく、マルチキャストが可能な状況であれば1サイクルで処理を完了させることが出来る。
すなわち本実施形態に係るルータであると、マルチキャスト可能な状況であった場合には、ルータに到着したフリットはバーチャルチャネル30をバイパスする経路によってスイッチ33へ転送される。そして、スイッチ33によってマルチキャストで送信される。送信先は、本実施形態では全ての出力ポートOUTである。更にルート計算部37は、マルチキャストと並行してルート計算を行い、フリットの正しい宛先を求める(図8及び図9の例では出力ポートOUT1)。そして、フリットの誤った宛先(図8及び図9の例では出力ポートOUT2〜OUT4)への送信は、キャンセル部34によってキャンセルされる。
このように本実施形態であると、フリットの宛先に関わらず、盲目的に複数の出力ポートOUTにフリットを送信する。但し、この場合では誤った宛先にもフリットが送信される。そこで、マルチキャストと並列にルート計算を行うことで、正しい宛先にのみフリットを送信出来る。つまり、図11のルータにおいて“RC”ステージ→“ST”ステージと逐次的に行っていた処理を、本実施形態では“マルチキャスト+RC”→“キャンセル”に置き換えることで、レイテンシを大幅に短縮出来る。
また本実施形態によれば、VCアロケータ38が、全出力ポートOUTに対応するルータ11に空きバーチャルチャネル30が存在するか否かを常にチェックしている。そして空きがある場合にマルチキャストを行う。すなわち、マルチキャストする際には、当該フリットの宛先ルータのバーチャルチャネル30が獲得出来ることが保証されている。従って、図11の“VA”ステージが不要となる。
更に本実施形態によれば、マルチキャストは、到着フリット以外のフリットがルータ11内に存在しない場合に行われる。従って、スイッチ33を使用する他のフリットが存在しないため、スイッチ33の使用権を調停する必要が無い。つまり図11の“SA”ステージが不要となる。
以上のように本実施形態では、“VA”ステージ及び“SA”ステージを行う必要が無く、また“RC”ステージと“ST”ステージとを並列に実行出来る。そのため、フリットがルータ11を1サイクルで通過することを可能とし、ルータ11のレイテンシを大幅に短縮出来る。
1.5.3 性能向上に関するシミュレーションについて
図14及び図15は、本実施形態に係るルータと、図11に示すルータ(Conventional Router)、図12に示すルータ(VSA Router)、及び図13に示すルータ(Prediction Router(LPM), (FCM))とを比較したシミュレーション結果である。図14は、Conventional Routerを1とした時の各ルータのレイテンシを示し、図15はConventional Routerを1とした時の各ルータの動作高速化の度合いを示すグラフである。なお、図14及び図15のシミュレーションは、図16に示す条件で行った。
図14に示すように、本実施形態に係るルータのレイテンシは、比較対象となる他のルータのいずれよりも短く、Conventional Routerに比べて約22%の短縮化を図ることが出来た。また図15に示すように、本実施形態に係るルータは、比較対象となる他のルータのいずれよりも高速動作が可能となり、Conventional Routerの約1.28倍の速度向上を図ることが出来た。
また本実施形態は、マルチキャストが可能な状況が多い程、高い効果が得られる。この点につき、以下説明する。メニーコアプロセッサ内の各ルータが同じ構成を有し、また負荷が同一である場合に、ある条件下において各ルータに存在するフリット数の割合を計算したシミュレーション結果は以下の通りである。
・No flit: 81%
・1 flit: 17%
・2 flits: 2%
・3 flits: 0%
・4 flits: 0%
・5 flits: 0%
・6 flits: 0%
・7 flits: 0%
このように、81%の確率でルータにはフリットが存在せず、1つのフリットが存在する確率は17%である。つまり、少なくとも8割の確率で、本実施形態で説明したマルチキャストが可能であることが分かる。従って、本実施形態を適用することで、レイテンシの大幅な短縮が可能となる。
2.第2実施形態
次に、第2実施形態に係るルータについて説明する。本実施形態は、上記第1実施形態において、一部の出力ポートに対してのみマルチキャストする方法に関する。以下では、第1実施形態と異なる点についてのみ説明する。
2.1 本実施形態の概念について
図1において、例えばルータ11−6は四方を別のルータ11−2、11−5、11−7、及び11−10に取り囲まれている。しかしながら、この4つのルータ11−2、11−5、11−7、及び11−10と必ずしも常に通信可能なわけではなく、限られたルータとしか通信しないことが一般的である。このようなルールは、デッドロックの発生を防止する目的で、例えばプロセッサ設計時に予め定められている。
図17はそのようなルールの一例を示している。図中のNorth、South、West、及びEastは、あるルータに着目した際に四方で隣接するルータを示し、その関係は図18に示す通りである。図18では、一例としてルータ11−6に着目した際のNorth、South、West、及びEastに対応するルータを示す。
図示するように、図18においてルータ11−6に上方で隣接するルータ11−2がNorthルータであり、右側で隣接するルータ11−7がEastルータであり、下方で隣接するルータ11−10がSouthルータであり、左側で隣接するルータ11−5がWestルータである。
すると、図17のルールによれば、Northルータ11−2から送信されるフリットの宛先としては、Southルータ11−10しか許されていない。またSouthルータ11−10から送信されるフリットの宛先としては、Northルータ11−2しか許されていない。Westルータ11−5及びEastルータ11−7から送信されるフリットの宛先としては、それぞれWestルータ11−5及びEastルータ11−7以外のルータであれば許容される。
図19は、本実施形態に係るマルチキャストユニット36がマルチキャスト信号を発行する際のフローチャートである。例えばマルチキャストユニット36は、図17に示す送受信ルール(これを転送ルールテーブルと呼ぶ)を内蔵メモリ等に保持している。マルチキャストユニット36はまず、転送ルールテーブルを参照する(ステップS20)。そして、宛先として可能性のある出力ポートに対してのみ、フリットをマルチキャストする(ステップS21)。
2.2 本実施形態の具体例について(その1)
図19の具体例を、図20を用いて説明する。図20はルータ11−6のブロック図であり、入力ポートIN1〜IN4がそれぞれ、Northルータ11−2、Southルータ11−10、Westルータ11−5、及びEastルータ11−7に接続されている。また、出力ポートOUT1〜OUT4がそれぞれ、Northルータ11−2、Southルータ11−10、Westルータ11−5、及びEastルータ11−7に接続されている。そして、Westルータ11−5からフリットが入力ポートIN3に入力されたと仮定する。なお図20では、プロセッサコア10−6のコア部20、L2キャッシュ21、及びメモリコントローラ22に関する入出力ポートについては省略している。
するとマルチキャストユニット36は、転送ルールテーブルを参照することにより、宛先として可能性のある出力ポートは、出力ポートOUT1、OUT2、及びOUT4のみであり、出力ポートOUT3が宛先となる可能性が無いことを認識する。従ってマルチキャストユニット36は、図20に示すように、出力ポートOUT1、OUT2、及びOUT4のみを宛先としてマルチキャストするよう、マルチキャスト信号を発行する。
その他の入力ポートにフリットが入力された場合も同様である。例えばNorthルータ11−2からフリットが入力ポートIN1に入力された場合には、マルチキャストユニット36は、出力ポートOUT2(及びコア部、L2キャッシュ、及びメモリコントローラの少なくとも一部)に対してフリットを送信し、出力ポートOUT1、OUT3、OUT4に対しては送信しない。
2.3 本実施形態の具体例について(その2)
本実施形態の別の具体例について説明する。図17の例は、ルータ11間におけるフリット送受信のルールに関するものであった。しかし、ルータ11と、当該ルータ11に対応するプロセッサコア10のコア部20、L2キャッシュ21、及びメモリコントローラ22との間の送受信に関しても、フリットの種類毎にルールが定められている場合がある。本例は、そのような場合に関するものである。
図21は、一例としてMOESIキャッシュコヒーレンスプロトコルにおけるルールの一例を示している。図中の“Request”、“Forward”、及び“Response”はフリットの種類を示す。“Request”は、当該フリットが、宛先となるプロセッサコア11のコア部20またはL2キャッシュ21に対してデータを要求することを意味する。“Forward”は、当該フリットが、宛先となるメモリコントローラ22に対してデータの要求と特定のコア部20に対するデータ転送指示を行うことを意味する。“Response”は、当該フリットが、宛先となるプロセッサコア11のコア部20、L2キャッシュ21、またはメモリコントローラ22への応答メッセージであることを意味する。フリットの種類及び宛先は、ヘッダフリットを解析することで判断出来る。
図21の例では、“Request”フリットは、コア21及びL2キャッシュ22への送信は許可されるが、メモリコントローラ23への送信は禁止される。また“Forward”フリットは、コア部21及びL2キャッシュ22への送信が禁止され、メモリコントローラ23への送信のみが許可される。そして“Response”フリットは、コア部21、L2キャッシュ22、及びメモリコントローラ23の全てへの送信が許可される。
図17及び図21に示すルールの下におけるルータ11の動作について、図22を用いて説明する。図22は一例としてルータ11−6のブロック図を示しており、Westルータ11−5から“Request”フリットが送信された場合について示している。また図22では、入力ポートIN5〜IN7及び出力ポートOUT5〜OUT7がそれぞれ、プロセッサコア10−6のコア21、L2キャッシュ22、及びメモリコントローラ23に対応付けられている。
前述のように、マルチキャストユニット36は転送ルールテーブルを参照する。すると、まずマルチキャストユニット36は、Westルータ11−5が宛先となる可能性が無いことを図17のテーブルから認識する。更にマルチキャストユニット36は、プロセッサコア11−6のメモリコントローラ23が宛先となる可能性が無いことを、図21のテーブルから認識する。
従って図22に示すように、マルチキャストユニット36は、出力ポートOUT3及びOUT7を宛先から除外して、フリットをマルチキャストする。
2.4 本実施形態に係る効果
本実施形態によれば、フリットの宛先が送信元ルータに依存して限定されることに着目して、スイッチ33によるフリットの送信先を制限している。送信先が限定されることで、バーチャルチャネル30を予め確保しておくべきルータの数も限定される。従って、マルチキャスト可能な機会を、第1実施形態よりも増大出来る。よって、ルータの動作をより高速化出来る。また、第1実施形態に比べて無駄な送信を削減し、消費電力を低減出来る。
3.第3実施形態
次に、第3実施形態に係るルータについて説明する。本実施形態は、上記第1、第2実施形態におけるマルチキャストの条件を緩和したものである。以下では、第1、第2実施形態と異なる点についてのみ説明する。
3.1 本実施形態の概念について
上記第1、第2実施形態では、ルータに到着したフリットは1つだけであること、がマルチキャスト可能な条件の1つであった。本実施形態は、この条件を緩和する。図23は、本実施形態に係るマルチキャストユニット36によるマルチキャスト可能か否かの判断処理を示すフローチャートであり、あるルータ11に複数のフリットが同時に到着した際の処理を示す。
図示するように、マルチキャストユニット36はまず転送ルールテーブルを参照する(ステップS20)。この転送ルールテーブルは、第2実施形態で説明した図17及び図21のような情報である。
そしてマルチキャストユニット36は転送ルールテーブルに基づき、複数の入力フリットの宛先が重複する可能性があるか否かを判断する(ステップS30)。そして重複する可能性が無ければ(ステップS32、NO)、マルチキャストユニット36は、その他の条件に応じて、複数の入力フリットをマルチキャストする(ステップS32)。他方、宛先が重複する可能性がある場合には(ステップS32、YES)、マルチキャストしない(ステップS33)。
3.2 本実施形態の具体例について
本実施形態の具体例について、図17、図21、及び図24を用いて説明する。図24は、一例としてルータ11−6のブロック図である。
プロセッサ1において、図17及び図21のようなルールがあったと仮定する。そして、ルータ11−6に対して、“Request”フリットがNorthルータ11−2から入力ポートIN1に入力され、同時に“Forward”フリットがSouthルータ11−10から入力ポートIN2に入力されたと仮定する。
すると、図17及び図21に示すように、“Request”フリットにつき可能性のある宛先は、Southルータ11−10、ルータ11−6のコア21、及びL2キャッシュ22だけである。また“Forward”フリットにつき可能性のある宛先は、Northルータ11−12及びルータ11−6のメモリコントローラ23だけである。
つまり、“Request”フリットにつき可能性のある宛先と、“Forward”フリットにつき可能性のある宛先とは重複しない。従ってこの場合、図24に示すようにマルチキャストユニット36は、2つのフリットを同時にマルチキャストする。
この場合、選択回路31−1及び31−2は、それぞれバーチャルチャネル30−1及び30−2をバイパスして入力ポートIN1及びIN2のフリットを選択する。またルート計算部37は、2つのフリットを解析して、2つのフリットの正しい宛先を検出する。そしてANDゲート40の制御に基づき、選択回路41が2つのフリットを正しい宛先にのみ送信する。
3.3 本実施形態に係る効果について
上記のように本実施形態によれば、複数のフリットが同時にルータに到着した場合であってもマルチキャストが可能となる。従って、第1、第2実施形態よりも更にマルチキャスト出来る機会を増大させ、プロセッサの動作をより高速化出来る。
なお、図24の例では2つのフリットがルータに同時に到着した場合について示しているが、3つ以上のフリットが同時に到着した場合でも適用可能なことは言うまでもない。
4. 変形例等
以上のように、上記実施形態に係るルータは、複数の入力ポート(IN1-INn in FIG4)と、スイッチ(33 in FIG4)と、複数のレジスタ(35 in FIG4)と、制御部(32, 36-39 in FIG4)とを備える。入力ポート(IN1-INn in FIG4)は、入力信号を受信する。スイッチ(33 in FIG4)は、入力ポートINで受信された入力信号をマルチキャスト可能である。レジスタ(35 in FIG4)は、スイッチ33で送信された入力信号を一時的に保持し、外部へ出力する。制御部(32, 36-39 in FIG4)は、スイッチ33に対して入力信号をマルチキャストで送信させると共に、マルチキャストによる送信のうち、正しい宛先への送信を有効とし、誤った宛先への送信を無効とする(S12-S14 in FIG5)。
本構成により、ルータのレイテンシを短縮し、ルータの動作速度を向上出来る。
しかしながら、上記実施形態は種々の変形が可能である。例えば、図1の例ではルータ11はプロセッサコア10と1対1で対応付けられている。しかしこのような例に限らず、例えば1つのルータ11に複数のプロセッサコア10が接続されている場合であっても良い。このような一例を図25に示す。図25はメニーコアプロセッサ1のブロック図である。図示するように本例では、プロセッサコア10が16個であるのに対して、ルータ11の数は4個である。そして、ルータ11−1はプロセッサコア10−1、10−2、10−5、及び10−6に接続される。ルータ11−2はプロセッサコア10−3、10−4、10−7、及び10−8に接続される。ルータ11−3はプロセッサコア10−9、10−10、10−13、及び10−14に接続される。ルータ11−4はプロセッサコア10−11、10−12、10−15、及び10−16に接続される。
またルータのブロック構成は図4に限定されず、図5の処理を実行可能な構成であれば限定されない。例えばマルチキャストユニット36は独立した1つのブロックとして存在するのでは無く、その機能がVCアロケータ38やスイッチアロケータ39に割り当てられても良い。またスイッチ33はクロスバースイッチに限らず、マルチキャスト可能な構成であれば限定されない。
また転送ルールとして図17及び図21を例示したが、これはあくまで一例に過ぎず、メニーコアプロセッサ1の仕様に応じて適宜選択出来る。
更に、図5のステップS16における「通常の方法」としては、図11乃至図13で説明した方法を用いることが出来る。この方法では、フリットはマルチキャストではなくユニキャストで送信される。
また、複数のフリットが同時に入力された際について第3実施形態を用いて説明した。しかし、複数のフリット同時入力の際の処理としては、種々のその他の方法を適用しても良い。例えば、予め定められた優先順位に基づいて、優先順位の高いフリットをマルチキャストする場合であっても良い。このような例を、図26乃至図28を用いて説明する。
図26及び図27は、例えばルータ11の各々が保持する優先度テーブルである。優先度テーブルは、図26の例では、ポートIN毎に優先度が定められており、入力ポートIN1に入力されたフリットの優先順位が最も高く設定されている。図27の例では、フリットの種類毎に優先度が定められており、“Request”フリットの優先順位が最も高く設定されている。もちろん、図26及び図27が組み合わされる場合であっても良いし、別の基準に従って優先順位が設定されていても良い。
図28は、複数のフリットが同時に入力された際のルータ11の動作を示すフローチャートである。図示するように、ルータ11はまず優先度テーブルを参照する(ステップS40)。そしてルータ11は、優先度の高いフリットをマルチキャストし(ステップS41)、その後、優先度の低いフリットを通常の方法により送信(ユニキャスト)する(ステップS42)。この場合、ステップS41の期間、マルチキャストユニット36は例えば、優先度の低いフリットを入力バッファ30で待たせておく。また図28において、ステップS40の前に、第3実施形態の図23で説明したステップS20及びS30の処理を行っても良い。そして、宛先が重複する場合にのみ、ステップ40以降の処理を行っても良い。
図28の例では、優先度の低いフリットは通常の方法で送信される場合を示したが、マルチキャストで送信されても良い。また、3つ以上のフリットが同時に入力された場合には、優先度に従って順次マルチキャストされる場合であっても良い。
もちろん、優先順位等に関わらず、例えばランダムに選択された一方のフリットを入力バッファ30で待たせておき、その間に他方のフリットをマルチキャストする方法であっても良い。つまり上記実施形態は、複数のフリットが同時に到着した場合、いずれか1つをマルチキャスト出来る方法であれば、特に限定されるものでは無い。
更に、メニーコアプロセッサ1のプロセッサコアの数は2個以上であれば限定されない。また上記実施形態で説明したルータは、メニーコアプロセッサに適用される場合に限らず、インターネットを通じて通信端末間を接続するものであっても良い。この場合でも、同様の効果が得られる。但し、ルータのレイテンシが動作速度に与える影響は、メニーコアプロセッサにおいて顕著であり、従って上記実施形態はメニーコアプロセッサに適用した場合に特に有利な効果が得られる。
また、上記説明したフローチャートは、可能な限り順序を入れ替えることができ、また複数の処理を同時に実行出来る。また、信号の論理“high”及び“low”は適宜入れ替えることが出来る。
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メニーコアプロセッサ、10…プロセッサコア、11…ルータ、20…コア、21…L2キャッシュ、22…メモリコントローラ、30…入力バッファ、31、32、41…選択回路、33…スイッチ、34…キャンセル部、35…パイプラインレジスタ、36…マルチキャストユニット、37…ルート計算部、38…VCアロケータ、39…スイッチアロケータ、40…ANDゲート

Claims (13)

  1. 入力信号を受信する複数の入力ポートと、
    前記入力ポートで受信された前記入力信号をマルチキャスト可能なスイッチと、
    前記スイッチで送信された前記入力信号を一時的に保持し、外部へ出力する複数のレジスタと、
    前記スイッチに対して前記入力信号をマルチキャストで送信させると共に、前記マルチキャストによる送信のうち、正しい宛先への送信を有効とし、誤った宛先への送信を無効とする制御部と、を備え、
    前記スイッチは、クロスバースイッチである
    ことを特徴とするルータ。
  2. 前記制御部は、前記スイッチによる前記入力信号のマルチキャスト送信と並行して、前記入力信号の正しい宛先を検出する
    ことを特徴とする請求項1記載のルータ。
  3. 前記複数のレジスタに対応付けられた複数の選択回路を更に備え、
    前記選択回路の各々は、前記スイッチによってマルチキャストされた前記入力信号を受信すると共に、前記制御部の制御に基づいて、前記正しい宛先に対応する前記レジスタに前記入力信号を出力し、その他の前記レジスタには無効な信号を出力する
    ことを特徴とする請求項1または2記載のルータ。
  4. 前記制御部は、前記入力信号につき可能性のある宛先における入力バッファの空き状況を監視すると共に、前記マルチキャストされた前記入力信号が前記レジスタから外部に出力される前に、前記可能性のある宛先における入力バッファを獲得する
    ことを特徴とする請求項1乃至3いずれか1項記載のルータ。
  5. 前記制御部は、前記可能性のある宛先の全てにおいて入力バッファの空きがある場合に、前記入力信号をマルチキャストで送信する
    ことを特徴とする請求項4記載のルータ。
  6. 前記入力信号は、複数のフリットの集合であるパケットであり、
    前記パケットは、クロックに同期して前記フリット単位でパイプライン処理される
    ことを特徴とする請求項1乃至いずれか1項記載のルータ。
  7. 前記制御部は、いずれの入力ポートで前記入力信号を受信したかに応じて、前記マルチキャストの宛先を決定する
    ことを特徴とする請求項1乃至いずれか1項記載のルータ。
  8. 前記制御部は、前記入力信号の種類に応じて、前記マルチキャストの宛先を決定する
    ことを特徴とする請求項1乃至いずれか1項記載のルータ。
  9. 前記制御部は、いずれか1つの入力ポートでのみ前記入力信号が受信された場合に、前記入力信号をマルチキャストで送信する
    ことを特徴とする請求項1乃至いずれか1項記載のルータ。
  10. 前記制御部は、複数の前記入力ポートで同時に前記入力信号を受信した場合、該複数の入力信号につき可能性のある宛先が重複するか否かを判断し、
    重複しないと判断した場合に、前記スイッチに対して該複数の入力信号を同時にマルチキャストで送信させる
    ことを特徴とする請求項1乃至いずれか1項記載のルータ。
  11. 前記制御部は、複数の前記入力ポートで同時に前記入力信号を受信し、且つ前記入力信号の宛先が重複する場合、前記入力ポート毎の優先度に応じてマルチキャストする
    ことを特徴とする請求項1乃至いずれか1項記載のルータ。
  12. 前記制御部は、複数の前記入力ポートで同時に前記入力信号を受信し、且つ前記入力信号の宛先が重複する場合、前記入力信号の種類毎の優先度に応じてマルチキャストする
    ことを特徴とする請求項1乃至いずれか1項記載のルータ。
  13. 前記ルータは、複数のプロセッサコアを備えたメニーコアプロセッサにおいて、前記複数のプロセッサコア間での信号の送受信を制御する
    ことを特徴とする請求項1乃至12いずれか1項記載のルータ。
JP2013111244A 2013-05-27 2013-05-27 ルータ Expired - Fee Related JP5814298B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013111244A JP5814298B2 (ja) 2013-05-27 2013-05-27 ルータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013111244A JP5814298B2 (ja) 2013-05-27 2013-05-27 ルータ

Publications (2)

Publication Number Publication Date
JP2014230261A JP2014230261A (ja) 2014-12-08
JP5814298B2 true JP5814298B2 (ja) 2015-11-17

Family

ID=52129692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013111244A Expired - Fee Related JP5814298B2 (ja) 2013-05-27 2013-05-27 ルータ

Country Status (1)

Country Link
JP (1) JP5814298B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11124275B2 (en) 2016-08-26 2021-09-21 Lifetime Products, Inc. Molded-in boat grip

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321263B2 (en) * 2014-12-17 2022-05-03 Intel Corporation High bandwidth core to network-on-chip interface

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3597113B2 (ja) * 2000-05-11 2004-12-02 日本電気株式会社 パケット交換装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11124275B2 (en) 2016-08-26 2021-09-21 Lifetime Products, Inc. Molded-in boat grip

Also Published As

Publication number Publication date
JP2014230261A (ja) 2014-12-08

Similar Documents

Publication Publication Date Title
US10282338B1 (en) Configuring routing in mesh networks
US9742630B2 (en) Configurable router for a network on chip (NoC)
US8737392B1 (en) Configuring routing in mesh networks
US8151088B1 (en) Configuring routing in mesh networks
CN102629913B (zh) 适用于全局异步局部同步片上互连网络的路由器装置
JP6481427B2 (ja) 演算処理装置,情報処理装置,及び情報処理装置の制御方法
US20180077649A1 (en) Communications fabric with split paths for control and data packets
CN107851017B (zh) 用于传输多个数据结构的设备和方法
US11730325B2 (en) Dual mode interconnect
US6721816B1 (en) Selecting independently of tag values a given command belonging to a second virtual channel and having a flag set among commands belonging to a posted virtual and the second virtual channels
JP5814298B2 (ja) ルータ
US10983910B2 (en) Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US11615053B2 (en) Routing in a network of processors
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US8787368B2 (en) Crossbar switch with primary and secondary pickers
WO2017111780A1 (en) Apparatus and method for distribution of congestion information in a switch
US11520726B2 (en) Host connected computer network
US20180287963A1 (en) Apparatus and method for using multiple multi-drop buses
US11704270B2 (en) Networked computer with multiple embedded rings
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning
US9588928B1 (en) Unique packet multicast packet ready command
US9727512B1 (en) Identical packet multicast packet ready command
US10394653B1 (en) Computing in parallel processing environments
KR101033425B1 (ko) 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치
US11144457B2 (en) Enhanced page locality in network-on-chip (NoC) architectures

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150525

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150917

R150 Certificate of patent or registration of utility model

Ref document number: 5814298

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees