ルータ装置、ルータ装置の制御方法
【課題】ルータを通過するパケットの通信経路に依存することなく、レイテンシの削減を図ること
【解決手段】バッファ4_1〜4_3は、出力待ちとなるパケットを一時的に保持する。先行出力検出回路5_1は、あるサイクルにおける出力P1への出力を要求するパケットの入力状態と、バッファ4_1〜4_3の格納状態と、に基づいて調停処理の対象とならない先行出力対象パケットを検出する。出力選択回路7_1は、先行出力対象パケットを検出した場合に当該パケットを出力P1から出力するパケットと決定し、先行出力対象パケットを検出しなかった場合に調停処理に基づいて出力P1から出力するパケットと決定する。スイッチ9は、出力選択回路7_1の決定に基づいて、出力P1への配線切替えを制御する。
【解決手段】バッファ4_1〜4_3は、出力待ちとなるパケットを一時的に保持する。先行出力検出回路5_1は、あるサイクルにおける出力P1への出力を要求するパケットの入力状態と、バッファ4_1〜4_3の格納状態と、に基づいて調停処理の対象とならない先行出力対象パケットを検出する。出力選択回路7_1は、先行出力対象パケットを検出した場合に当該パケットを出力P1から出力するパケットと決定し、先行出力対象パケットを検出しなかった場合に調停処理に基づいて出力P1から出力するパケットと決定する。スイッチ9は、出力選択回路7_1の決定に基づいて、出力P1への配線切替えを制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はルータ装置及びルータ装置の制御方法に関する。
【背景技術】
【0002】
現在、単一のチップ上にプロセッサ等の設計モジュールを複数配置することが可能となっている。Newwork−on−Chip(以下、NoCと記載する)は、配置したIPコア等の設計モジュールの結合に用いられる回路である。NoCは、ルータと呼ばれるスイッチング回路を複数備える構成である。
【0003】
図12は、半導体におけるIPコアとルータの配置例を示す図である。図示するように、複数のIPコアがルータを経由して間接的に接続されている。ルータには、隣接するルータまたはIPコアからパケット化された入力データが入力される。ルータは、受信したパケットデータの出力方向を決定し、次のルータまたは送信先のIPコアにデータを送信する。
【0004】
ルータの機能は、主に経路計算、スイッチ調停、スイッチ転送の3つである。ルータの標準的な構造を図13に示す。ルータ装置1は、複数の入力ポート(入力P1〜入力P3)及び複数の出力ポート(出力P1〜出力P3)を備える。また、ルータ装置1は、ラッチ2_1〜2_3、経路計算回路3_1〜3_3、バッファ4_1〜4_3、調停回路6_1〜6_3、制御記憶回路8、及びスイッチ9を備える。ラッチ2_1〜2_3、経路計算回路3_1〜3_3、及びバッファ4_1〜4_3は、入力P1〜入力P3にそれぞれ対応づけられている。調停回路6_1〜6_3は、出力P1〜出力P3に対応づけられている。例えば、ラッチ2_1、経路計算回路3_1、及びバッファ4_1は入力P1に対応づけられている。調停回路6_1は、出力P1に対応づけられている。
【0005】
ラッチ2_1〜2_3は、対応する入力ポートから入力されたパケットを一時的に保持し、その後にパケットを対応する経路計算回路3_1〜3_3に出力する。
【0006】
経路計算回路3_1〜3_3は、経路計算を行う回路である。以下、経路計算回路3_1を例に説明する。経路計算回路3_1は、入力P1から入力されたパケットのヘッダに記載された送信先IPコアの情報、または送信方向の情報を基に出力ポート番号を決定する。経路計算回路3_1は、決定した出力ポート番号とともにパケットを対応するバッファ4_1に格納する。
【0007】
バッファ4_1〜4_3は、経路計算回路が出力したパケットを出力先の出力ポート番号と対応づけて一時的に格納する。バッファ4_1〜4_3は、複数のパケットを保持可能である。バッファ4_1〜4_3は、後述の制御記憶回路8からのパケット出力の要求に応じてパケットをスイッチ9に供給する。
【0008】
調停回路6_1〜6_3は、バッファ4_1〜4_3に一時的に格納されたパケットのうち、対応する出力ポートが次サイクルに出力するパケットを選択する回路である。以下、調停回路6_1を例に説明する。調停回路6_1は、バッファ4_1〜4_3に格納されたパケット及び当該パケットの出力パケット番号を基に、対応する出力ポートである出力P1から次サイクルにおいて出力するパケットを決定する。調停回路6_1は、決定した出力パケットが入力された入力ポート番号を制御記憶回路8に書き込む。
【0009】
制御記憶回路8は、あるサイクルにおいて、各出力ポートが出力対象とするパケットを入力した入力ポート番号を記憶する。さらに、制御記憶回路8は、パケット出力要求をバッファ4_1〜4_3にそれぞれ伝達する。
【0010】
スイッチ9は、算出された調停回路6_1〜6_3の調停結果(すなわち、各出力ポートが出力すべきパケットが入力された入力ポート番号)が制御記憶回路8を介して入力され、当該調停結果に応じて入力ポートと出力ポートを接続する。詳細には、スイッチ9は、接続対象の入力ポートに対応づけられているバッファからの出力を、出力先となる出力ポートに接続する。
【0011】
一般に、ルータは経路計算回路による経路計算、調停回路によるスイッチ調停、スイッチによるスイッチ転送にそれぞれ1サイクルのレイテンシを必要とする。この場合、ルータの通過レイテンシは、3サイクルとなる。図13に示すルータ装置の動作を図14のタイミングチャートを参照して説明する。
【0012】
図14は、図13のルータ装置において、入力P1に入力されたパケットを出力P3から出力する際の動作を示すタイミングチャートである。図14では、図13の各点A〜Fを通過する信号を示している。ここで、バッファ4_1〜4_3には、パケットが格納されていないものとする。
【0013】
ラッチ2_1は、サイクルtにおいて入力されたパケットのヘッダを保持する(図14A参照)。ラッチ2_1は、このパケットのヘッダをサイクルt+1において出力する。経路計算回路3_1は、このパケットヘッダ及び経路計算結果をバッファ4_1に格納する(図14B参照)。調停回路6_3は、サイクルt+2において、出力パケットの調停を行う。これにより、サイクルt+2において、このパケットヘッダは出力権を得る。すなわち、このパケットヘッダは、バッファ4_1からの出力対象となる。
【0014】
調停回路6_3は、調停結果を制御記憶回路8に書き込む。詳細には、調停回路6_3は、出力P3から出力されるパケットの入力ポートが"1"であることをサイクルt+2において書き込む(図14D参照)。サイクルt+2において、制御記憶回路8から出力されるバッファ4_1への指示信号は「停止」である(図14E参照)。そのため、サイクルt+2においては、バッファ4_1は、パケットを出力したものとみなされない。換言すると、バッファ4_1は、サイクルt+3においてもサイクルt+2と同一の出力を行い続ける(図14C参照)。
【0015】
調停回路6_3が制御記憶回路8に"1"を入力したことにより、制御記憶回路8は、バッファ4_1に出力許可("許可")の信号を通知する(図14E参照)。この許可信号を受けて、バッファ4_1は、パケットのヘッダの出力が行われたと判断し、バッファ内の更新を行う。この更新により、サイクルt+4では、バッファ4_1は、サイクルt+1にて入力されたパケットのデータを出力する。このパケットのデータは、サイクルt+4においてスイッチ9から出力される。
【0016】
上述のように、ルータ内の通過レイテンシは、経路計算、スイッチ調停、スイッチ転送という3つの処理から構成される。ルータの通過レイテンシが大きい場合には半導体の処理能力の向上を妨げる。NoCでは複数のルータによる中継通信が前提となるため、ルータの通過レイテンシが半導体全体の通信レイテンシの大部分を占める。このため、ルータ内の通過レイテンシを削減することは、非常に重要である。
【0017】
ルータ内の通過レイテンシを生じさせる処理のうち、経路計算処理及びスイッチ調停処理は、パケットのヘッダを処理対象とする。ヘッダは、パケットの最前方に位置している。ヘッダに後続するパケットのデータは、経路計算処理及びスイッチ調停処理の間は入力バッファにて停止する(格納され続ける)ことになる。これらの2つの処理(経路計算処理、スイッチ調停処理)の一部を省略することができれば、通信レイテンシも削減することができる。
【0018】
経路計算処理を省略する手法として、パケット送信元において全ての経路計算を予め行うソースルーティングという手法が挙げられる。ソースルーティングは、オフチップネットワークでも使用される手法である。ソースルーティングでは、パケット送信時に既に経路計算が行われている。そのため、各ルータは入力されたパケットの経路を計算する必要はない。ただし、パケットが複数のルータを通過する場合、パケット内には複数の経路情報が格納される。この場合、ルータの構造を簡略化するために、使用した経路情報を破棄し、新しい経路情報を更新する場合が多い。
【0019】
経路情報の更新は、パケット内の経路情報をシフトすることにより行われる。すでに使用された経路情報は、経路更新回路によるビットシフトによって、次に使用される経路情報により上書きされる。この経路更新により生じる遅延は、経路計算によって生じる遅延よりも小さい。そのため、一般的なルータでの経路計算によって生じる1サイクルのレイテンシを削減することが可能になる。
【0020】
スイッチ調停のレイテンシを削減する手法として、非特許文献1に記載された予測ルータと呼ばれる手法が挙げられる。この予測ルータとは、入力されるパケットの出力方向をパケット入力前にルータ内にて予め予測し、調停を投機的に完了させておく手法である。
【先行技術文献】
【非特許文献】
【0021】
【非特許文献1】松谷 宏紀、鯉渕 道紘、天野 英晴、吉永 努著、予測機構を持った低遅延オンチップルータアーキテクチャ、信学技報vol.108,no.28
【発明の概要】
【発明が解決しようとする課題】
【0022】
上述の非特許文献1に記載の予測ルータという手法は、予測した出力方向が間違っていた場合には、スイッチ調停をやり直す必要が生じる。スイッチ調停をやり直した場合、スイッチ調停が全て実行されるためレイテンシの削減がなされない。この予測の失敗は、パケットの出力方向に規則性がない等の要因により発生する。このため、この予測ルータ手法では、レイテンシ削減の効果は、ルータを通過するパケットの通信経路に依存してしまう。よって、ルータを通過するパケットの通信経路次第では、十分にレイテンシの削減をできないという問題がある。
【課題を解決するための手段】
【0023】
本発明にかかるルータ装置の一態様は、
複数の入力ポートと、第1の出力ポートを有し、前記第1の出力ポートの出力権限を制御する調停処理を行うルータ装置であって、
あるサイクルにおける前記第1の出力ポートへの出力を要求する入力パケットが、前記ルータ装置において前記第1の出力ポートへの出力を要求する唯一のパケットである場合に、当該パケットを前記調停処理の対象とせずに出力する先行出力対象パケットと決定する、ものである。
【0024】
本発明にかかるルーティング方法の一態様は、
複数の入力ポートと、第1の出力ポートを有し、前記第1の出力ポートの出力権限を制御する調停処理を行うルータ装置の制御方法であって、
あるサイクルにおける前記第1の出力ポートへの出力を要求する入力パケットが、前記第1の出力ポートへの出力を要求する唯一のパケットである場合に、当該パケットを前記調停処理の対象とせずに出力する先行出力対象パケットと決定する、ものである。
【0025】
本発明においては、ルータ装置は、入力パケットが、前記第1の出力ポートへの出力を要求する唯一のパケットであるか否かを判定している。唯一のパケットである場合、調停処理の対象とすることなく即座に出力することが可能である。このように、本発明にかかるルータ装置は、パケットの入力状況とパケットの保持状況に応じて先行出力対象パケットを検出し、パケットの通信経路を用いて検出処理を行う必要がない。このため、各パケットの通信経路に依存せずに調停処理を省略することが可能となる。
【発明の効果】
【0026】
本発明によれば、ルータを通過するパケットの通信経路に依存することなく、レイテンシの削減を図ることができるルータ装置、及びルータ制御方法を提供することができる。
【図面の簡単な説明】
【0027】
【図1】実施の形態1にかかるルータ装置の構成を示すブロック図である。
【図2】実施の形態1にかかるルータ装置によるパケット出力制御を示すフローチャートである。
【図3】実施の形態1にかかるルータ装置による先行出力判定処理を示すフローチャートである。
【図4】実施の形態1にかかるルータ装置の動作を示すタイムチャートである。
【図5】実施の形態2にかかるルータ装置の構成を示すブロック図である。
【図6】実施の形態2にかかるルータ装置の動作を示すタイムチャートである。
【図7】実施の形態3にかかるルータ装置の構成を示すブロック図である。
【図8】実施の形態3にかかるルータ装置によるパケット出力制御を示すフローチャートである。
【図9】実施の形態3にかかるルータ装置による先行出力判定処理を示すフローチャートである。
【図10】実施の形態3にかかるルータ装置の動作を示すタイムチャートである。
【図11】実施の形態4にかかるルータ装置の構成を示すブロック図である。
【図12】標準的な半導体におけるIPコアとルータの配置例の図である。
【図13】標準的なルータ装置の構成を示すブロック図である。
【図14】標準的なルータ装置の動作を示すタイムチャートである。
【発明を実施するための形態】
【0028】
<実施の形態1>
【0029】
本発明の実施の形態にかかるルータ装置は、入力パケットが、あるサイクルにおいて、所定の出力ポートへの出力を要求する唯一のパケットであるか否かを判定している。唯一のパケットである場合、ルータ装置は、調停処理の対象とすることなく即座に出力対象とする。このため、本実施の形態にかかるルータ装置は、各パケットの通信経路に依存せずに調停処理を省略することが可能となる。
【0030】
以下、図面を参照して本発明の実施の形態にかかるルータ装置の詳細について説明する。図1は、本実施の形態にかかるルータ装置の構成を示すブロック図である。ルータ装置1は、3つの入力ポート(入力P1〜入力P3)及び3つの出力ポート(出力P1〜出力P3)を持つルータ装置である。ルータ装置1は、ラッチ2_1〜2_3、経路計算回路3_1〜3_3、バッファ4_1〜4_3、先行出力検出回路5_1〜5_3、調停回路6_1〜6_3、出力選択回路7_1〜7_3、制御記憶回路8、及びスイッチ9を備える。
【0031】
ラッチ2_1は、入力P1から入力されたパケット(詳細には、パケットのヘッダ及びパケットのデータ)を一時的に保持して経路計算回路3_1に供給する。ラッチ2_1が一時的にパケットを保持することにより、ルータ装置1からのパケットの出力タイミングを調節することができる。ラッチ2_2、ラッチ2_3は、それぞれ入力P2、入力P3と対応するラッチであり、その動作はラッチ2_1と同様である。
【0032】
経路計算回路3_1は、ラッチ2_1から入力されたパケットから、当該パケットの出力対象のポートを特定する経路である。詳細には、経路計算回路3_1は、パケットのヘッダを読み込み、読み込んだ情報から出力すべき出力ポートを特定する。経路計算回路3_1は、経路計算結果である出力ポート番号と、パケットと、をバッファ4_1に書き込む。さらに経路計算回路3_1は、入力P1に対するパケット入力の有無と、パケット入力が有る場合に経路計算結果である出力ポート番号と、先行出力検出回路5_1に供給する。経路計算回路3_2、経路計算回路3_3は、それぞれラッチ2_2、ラッチ2_3と対応する経路計算回路であり、その動作は経路計算回路3_1と同様である。
【0033】
バッファ4_1には、出力待ち状態となっているパケットが出力ポート番号と関連付けられて格納される。バッファ4_1は、FIFO(First In First Out)形式の記憶部である。バッファ4_1は、後述の調停回路6_1〜6_3にパケットの格納状況(パケットの有無であり、パケットが格納されている場合には先頭に位置するパケットの出力ポート番号を含む情報)を通知する。さらに、バッファ4_1は、後述の制御記憶回路8からの出力命令に応じて、出力対象となるパケットをスイッチ9に供給する。バッファ4_1に格納されたパケットは、スイッチ9を介してルータ装置1外に出力された際にのみ削除される。バッファ4_2、バッファ4_3はそれぞれ入力P2、入力P3に対応するバッファであり、その機能はバッファ4_1と同様である。
【0034】
なお、本例では、入力ポート毎にバッファを持つ構成として説明するが、必ずしもこれに限られない。例えば、出力先のポート番号と関連付けてパケットを保持する1つのバッファとして構成してもよい。
【0035】
先行出力検出回路5_1は、先行出力対象となるパケットが有るか否かを判定する回路である。先行出力対象のパケットとは、パケット調停を実施せずにそのまま出力ポートから出力するパケットである。詳細には、先行出力検出回路5_1は、各バッファ4_1〜4_3が空き状態であるか、及び、あるサイクルに入力ポートのいずれかから入力され、出力P1への出力を要求するパケットが1つだけか否か、を判定する。条件を満たす場合、先行出力検出回路5_1は、入力ポートから入力された唯一のパケットを先行出力対象とする。
【0036】
先行出力検出回路5_1には、経路計算回路3_1からサイクル毎に入力P1に対するパケット入力の有無と、パケット入力が有る場合の経路計算結果である出力ポート番号と、が入力される。同様に先行出力検出回路5_1には、経路計算回路3_2からサイクル毎に入力P2に対するパケット入力の有無と、パケット入力が有る場合の経路計算結果である出力ポート番号と、が入力される。先行出力検出回路5_1には、経路計算回路3_3からサイクル毎に入力P3に対するパケット入力の有無と、パケット入力が有る場合の経路計算結果である出力ポート番号と、が入力される。先行出力検出回路5_1は、これらの入力を基にサイクル毎に出力P1に対する先行出力対象のパケットが有るか否か判定する。詳細な判定手法については図3を用いて後述する。
【0037】
先行出力検出回路5_1は、サイクル毎に出力P1に関する先行出力判定の結果を出力選択回路7_1に供給する。詳細には、先行出力検出回路5_1は、あるサイクルに出力P1への出力を要求するパケットが1つであり、バッファ4_1〜4_3が全て空である場合に、当該パケット(先行出力対象のパケット)が入力された入力ポートの番号を出力選択回路7_1に通知する。それ以外の場合、先行出力検出回路5_1は、先行出力対象とするパケットが無い旨を出力選択回路7_1に通知する。先行出力検出回路5_2及び先行出力検出回路5_3は、それぞれ出力P2、出力P3に対応する判定回路であり、その機能は先行出力検出回路5_1と同様である。先行出力検出回路5_2による判定結果の出力先は出力選択回路7_2である。先行出力検出回路5_3による判定結果の出力先は出力選択回路7_3である。
【0038】
調停回路6_1は、バッファ4_1〜4_3が先頭に格納しているパケットの情報から、次のサイクルにおいて出力P1が出力すべきパケットを選択する回路である。調停回路6_1は、一般のルータ装置が備える調停回路と同等の機能を持つ。調停回路6_1は、出力P1を出力先とするパケットがバッファ4_1〜4_3のいずれかの先頭位置に存在する場合に調停を行い、調停により出力権を得たパケットが入力された入力ポート番号を出力選択回路7_1に通知する。また、調停回路6_1は、出力P1を出力先とするパケットがバッファ4_1〜4_3のいずれにも存在しない場合に、出力すべきパケットが無いことを出力選択回路7_1に通知する。調停回路6_2、調停回路6_3は、それぞれ出力P2、出力P3に対応する調停回路であり、その機能は調停回路6_1と同様である。
【0039】
出力選択回路7_1は、先行出力検出回路5_1からの入力(先行出力対象のパケットの有無、先行出力対象のパケットが有る場合には当該パケットが入力された入力ポートの番号)と、調停回路6_1からの入力(次のサイクルにおいて出力P1から出力すべきパケットが入力された入力ポートの番号、または出力すべきパケットが無いこと)を基に、次のサイクルにおいて出力P1が出力するパケットを決定する回路である。出力選択回路7_1の詳細は決定処理については図2を参照して後述する。出力選択回路7_1は、次のサイクルにおいて出力P1から出力すべきパケットが入力された入力ポート番号を制御記憶回路8に書き込む。出力選択回路7_2、出力選択回路7_3は、それぞれ出力P2、出力P3に対応する選択回路であり、その機能は出力選択回路7_1と同様である。
【0040】
制御記憶回路8は、出力ポート毎に、次のサイクルにおいて出力すべきパケットが入力された入力ポート番号を記憶する。また、制御記憶回路8は、書き込まれた入力ポート番号と対応するバッファに対して出力許可信号を供給する。さらに、制御記憶部8は、次のサイクルにおいて出力すべきパケットが入力された入力ポート番号を、出力ポート毎にスイッチ9に通知する。
【0041】
スイッチ9は、通知された情報を基に、各入力ポートに接続されたバッファと、各出力ポートと、の接続を変更する。これにより、各出力選択回路が選択したパケットがルータ装置1から出力される。
【0042】
続いて、本実施の形態にかかるルータ装置1によるパケット出力制御を図2のフローチャートを用いて説明する。各先行出力検出回路(以下の例では、先行出力検出回路5_1を例に説明する。)には、各入力ポートと対応する経路計算回路(3_1〜3_3)からあるサイクルにおける入力パケットの有無、及び入力パケットが有る場合にはその出力先の出力ポート番号、が入力される(S1)。さらに、先行出力検出回路5_1には、バッファ4_1〜4_3から各バッファのパケット格納状況が通知される(S1)。
【0043】
先行出力検出回路5_1は、これらの入力を基に先行出力が可能なパケットが有るか否か、すなわち先行出力検出回路5_1は、調停処理の対象としなくても出力してもよいパケットが有るか否かを判定する(S2)。当該処理(先行出力判定)の詳細は、図3を参照して後述する。先行出力が可能なパケットがある場合、先行出力検出回路5_1は、当該対象が有る旨を通知する信号を当該パケットの入力された入力ポート番号とともに出力選択回路7_1に通知する(S2)。一方、先行出力が可能なパケットがない場合、先行出力検出回路5_1は、先行出力が可能なパケットが無い旨を出力選択回路7_1に通知する(S2)。
【0044】
S1及びS2と並行して、詳細にはS1及びS2を行ったサイクルと同一サイクルにて、各調停回路(以下の例では、調停回路6_1を例に説明する。)は、バッファ4_1〜4_3の先頭に格納されているパケットを読み出し、対応する出力ポートを出力先とするパケットが有るか否かを判定する(S3)。対象となるパケットが有る場合(S3:Yes)、調停回路6_1は、判定対象となるパケットから次のサイクルにて出力するパケットを選択するパケット調停処理を行う(S4)。一方、対象となるパケットが無い場合(S3:No)、調停回路6_1は、パケット調停処理を行わない。調停回路6_1は、調停処理の実施の有無、調停処理を行った場合には調停結果である入力パケット番号を出力選択回路7_1に通知する。
【0045】
続いて、S5〜S9の処理を各出力選択回路(以下の説明では、出力選択回路7_1を例に説明する。)が行う。出力選択回路7_1には、先行出力検出回路5_1から先行出力の対象となるパケットの有無、及び当該対象が有る場合には当該パケットの入力ポート番号が入力される。さらに、出力選択回路7_1には、調停回路6_1から調停処理の実施の有無、調停処理を行った場合には調停結果である入力パケット番号、が入力される。
【0046】
出力選択回路7_1は、はじめに調停回路6_1において調停処理が行われたか否かを判定する(S5)。調停処理が行われた場合(S5:Yes)、出力選択回路7_1は、調停回路6_1から入力された入力ポート番号を、出力P1の出力対象として制御記憶回路8に記憶させる(S6)。
【0047】
一方、調停処理が行われなかった場合(S5:No)、出力選択回路7_1は、先行出力の対象となるパケットが有るか否かを判定する(S7)。先行出力の対象となるパケットが有る場合(S7:Yes)、出力選択回路7_1は、当該先行出力対象のパケットが入力された入力ポート番号を、出力P1の出力対象として制御記憶回路8に記憶させる(S8)。先行出力の対象となるパケットが無い場合(S7:No)、出力選択回路7_1は、次サイクルでの出力P1の出力対象がないことを制御記憶回路8に記憶させる(S9)。
【0048】
続いて、先行出力検出回路5_1による先行出力判定の詳細を図3のフローチャートを参照して説明する。なお、先行出力検出回路5_2及び先行出力検出回路5_3についても同様の処理を行う。
【0049】
先行出力検出回路5_1は、入力P1に対応するバッファ4_1が空であるか否かを判定する(S11)。バッファ4_1が空ではない場合(S11:No)、先行出力検出回路5_1は、先行出力の候補となるパケットを設定しない。一方、バッファ4_1が空である場合(S11:Yes)、先行出力検出回路5_1は、入力P1に対するパケット入力状況を確認し、入力データにパケットのヘッダが含まれるか否かを確認する(S12)。
【0050】
入力データにパケットのヘッダが含まれない場合(S12:No)、先行出力検出回路5_1は、先行出力の候補となるパケットを設定しない。入力データにパケットのヘッダが含まれる場合(S12:Yes)、先行出力検出回路5_1は、経路計算回路3_1にて算出された出力ポート番号が出力P1のポート番号と等しいか否かを判定する(S13)。
【0051】
ポート番号が合致しない場合(S13:No)、先行出力検出回路5_1は、先行出力の候補となるパケットを設定しない。ポート番号が合致する場合(S13:Yes)、先行出力検出回路5_1は、入力P1から入力されたパケットを先行出力の候補と判定する(S14)。
【0052】
上述のS11〜S14では、先行出力検出回路5_1は、入力P1に関する先行出力候補の判定処理を行った。この処理と並行して、先行出力検出回路5_1は、入力P2に対応する処理(S15〜S18)及び入力P3に対応する処理(S19〜S22)を行う。
【0053】
先行出力検出回路5_1は、全ての入力ポートから選択した先行出力候補のパケットの合計が1つであるかを確認する(S23)。先行出力候補のパケットが1つである場合(S23:Yes)、先行出力検出回路5_1は、当該パケットを先行出力対象のパケットに決定する(S24)。先行出力候補のパケットが1つではない場合(S23:No)、先行出力検出回路5_1は、先行出力の対象となるパケットが無いと判定する(S25)。複数の先行出力候補となるパケットが有る場合、これらのパケットは次のサイクルにおいて調停回路による調停の対象となる。
【0054】
なお、上述のように先行出力検出回路5_1は、先行出力対象のパケットの判定においてバッファが空であるか否かを判定している(S11、S15、S19)。バッファが全て空である場合、調停処理は実施されない。そのため、出力選択回路7_1は、図2に示したS6の処理とS7の処理を逆の順序にて行ってもよい。すなわち、出力選択回路7_1は、先行出力対象のパケットが有るか否かを判定した後に、パケット調停結果を参照してもよい。
【0055】
続いて、図1及び図4を参照して本実施の形態にかかるルータ装置の具体的な動作例について説明する。図4は、サイクルtにおいて入力P1から出力P3へのパケットが入力され、当該パケットが転送される場合のルータ装置1の動作例を示すタイムチャートである。本例では、バッファ4_1〜4_3にはパケットが格納されていない。さらに、本例では、サイクルtにおいて、他の入力ポート(入力P2、入力P3)からの入力はない。図4におけるA〜Hは、図1における各点(A〜H)における通過信号を示している。
【0056】
はじめに、サイクルtにおいて入力P1からパケットのヘッダがラッチ2_1に入力される(図4A参照)。このパケットのヘッダは、サイクルt+1においてラッチ2_1から出力される。出力されたパケットのヘッダは、経路計算回路3_1により経路計算が行われた後にバッファ4_1に格納される(図4B参照)。
【0057】
このバッファ4_1への格納と同時に、パケットのヘッダは先行出力検出回路5_3にも供給される(図4B参照)。先行出力検出回路5_3は、このパケットのヘッダを用いて出力P3の先行出力判定を行う。
【0058】
先行出力検出回路5_3は、サイクルt+1において先行出力判定を行う。本例では、バッファ4_1〜4_3は全て空であり、サイクルtにおいて入力P2、入力P3からの入力が無いため、先行出力検出回路5_3は、入力ポート番号(1)を出力する(図4C参照)。
【0059】
先行出力検出回路5_3による先行出力判定と並行して、調停回路6_3は、バッファ4_1〜4_3の先頭位置に格納されているパケットを用いて調停処理を行う。本例では、バッファ4_1〜4_3にはパケットが格納されていない。そのため、信号D等によりバッファ内のパケットが無いこと("無")が通知される。よって、調停回路6_3は、サイクルt+1において、パケット調停を行わなかったことを示す信号を出力選択回路7_3に出力する。
【0060】
サイクルt+1において、出力選択回路7_3には、先行出力検出回路5_3から"1"が入力され、調停回路6_3から"無"が入力される。これにより、出力選択回路7_3は、図2におけるS7及びS8を実行し、サイクルt+1において先行出力対象の入力ポート番号"1"を制御記憶回路8に入力する(図4F参照)。
【0061】
制御記憶回路8は、サイクルt+2において、バッファ4_1に対してパケットの出力を許可する(図4G参照)。これにより、バッファ4_1に格納されているパケットのヘッダ、すなわち先行出力対象となったパケットのヘッダは調停回路による調停の対象となることなく、スイッチに供給される(図4D参照)。スイッチを通過したパケットはルータ装置1から出力される(図4H参照)。
【0062】
続いて、本実施の形態にかかるルータ装置1の効果について改めて説明する。前述のように、先行出力検出回路は、ある出力ポート(第1の出力ポート)を出力先とする入力パケットの入力状態(すなわち1つであるか否か)、及びバッファのパケット格納状態、から調停対象とならない先行出力対象パケットを検出している。先行出力対象パケットは、調停処理の対象となることなく出力される。この先行出力対象パケットの検出は、パケットの入力状態を使用することはない。これにより、パケットの通信経路に依存することなく、調停処理を省略することが可能になり、ルータ装置のレイテンシを削減させることができる。
【0063】
<実施の形態2>
本発明の実施の形態2は、ソースルーティング方式に対応している点を特徴とする。より詳細には、ルータ装置に入力される各パケットには経路情報が予め埋め込まれており、ルータ装置は経路情報を更新する経路更新情報を備えている。これにより、経路計算処理を軽減できるとともに、ルータの構造を簡略化することができる。
【0064】
図5を参照して本実施の形態にかかるルータ装置1の基本構成を説明する。なお、図5において、同一名及び同一符号を付した処理部、回路は実施の形態1と同様の処理を行う。そのため、重複する説明は適宜省略する。
【0065】
ルータ装置1は、バッファ4_1〜4_3と、先行出力検出回路5_1〜5_3と、調停回路6_1〜6_3と、出力選択回路7_1〜7_3と、制御記憶回路8と、スイッチ9と、経路更新回路10_1〜10_3と、を備える。ルータ装置1は、ラッチ、経路計算回路は有さない構成である。ラッチは、経路計算回路を有さない構成であることから、入力ポートからバッファまでの遅延制約が緩和されることにより不要となる。これにより、本実施の形態にかかるルータ装置1は、実施の形態1にかかるルータ装置1と比べてルータの通過に要するレイテンシが1サイクル削減できる。
【0066】
ルータ装置1に入力される各パケットには、既存のソースルーティング手法に沿った経路情報が埋め込まれている。これにより、ルータ装置1内でのパケットの経路計算処理が不要となる。経路更新回路10_1〜10_3は、それぞれ供給されたパケットから既に通過済みの経路情報を削除する回路である。経路更新回路10_1〜10_3による経路情報の削除処理は、前述のようにビットシフト等の簡易な処理により実現されるため、経路計算処理に比較して非常に短い時間で終了する。経路更新回路10_1〜10_3は、それぞれ既存の技術を適用することにより実現可能である。
【0067】
続いて、本実施の形態にかかるルータ装置1の具体的な動作例を図5に加え、図6のタイムチャートを参照して説明する。図6は、サイクルtにおいて入力P1から出力P3へのパケットが入力され、当該パケットが転送される場合のルータ装置1の動作例を示すタイムチャートである。本例では、バッファ4_1〜4_3にはパケットが格納されていない。さらに、本例では、サイクルtにおいて、他の入力ポート(入力P2、入力P3)からの入力はない。図6におけるA〜Hは、図5における各点(A〜H)における通過信号を示している。
【0068】
はじめに、サイクルtにおいて入力P1からパケットのヘッダがバッファ4_1に入力される(図6A参照)。これと同時に、入力されたパケットのヘッダの情報は先行出力検出回路5_3に供給される。先行出力検出回路5_3は、サイクルtにおいて先行出力対象として"1"を出力選択回路7_3に出力する(図6B参照)。これと同じタイミングにおいて、調停回路6_3は、調停対象のパケットがバッファ内に無いことを示す"無"を出力選択回路7_3に出力する(図6D参照)。この結果、出力選択回路7_3は、サイクルtに入力されたパケットをサイクルt+1における出力パケットと判定し、制御記憶回路8にこのパケットが入力された入力ポート番号"1"を出力する(図6E参照)。
【0069】
制御記憶回路8は、サイクルt+1において、バッファ4_1に対してパケットの出力を許可する(図4F参照)。これにより、バッファ4_1に格納されているパケットのヘッダは、経路更新回路10_1に供給される(図6C参照)。経路更新回路10_1は入力されたパケットのヘッダの経路情報を更新する。経路更新回路10_1は、経路更新後にこのパケットのヘッダをスイッチ9に供給する(図6G参照)。スイッチを通過したパケットはルータ装置1から出力される(図6H参照)。
【0070】
このように、本実施の形態にかかるルータ装置1は、ソースルーティング方式を採用し、経路計算回路、ラッチを持たない構成である。経路更新回路10_1〜10_3による処理は、経路情報を上書きする処理であり、ルータの動作周波数に与える影響が極めて少ない。このため、実施の形態1にかかるルータ装置1と比べて、本実施の形態にかかるルータ装置1は、ルータ通過に要するレイテンシを削減することができる。
【0071】
<実施の形態3>
本発明の実施の形態3にかかるルータ装置は、通常のパケットに比べて優先的に送信されるべきパケット(以下、優先パケットと記載する。)を適切に扱うことができることを特徴とする。詳細には、本実施の形態にかかるルータ装置では、先行出力判定回路にて入力パケットが優先パケットか否かの判定を行い、出力選択回路は優先パケットを通常のパケットに優先して出力対象と判定する。これにより、すでにバッファ内に格納されている通常のパケットよりも優先して入力ポートから入力されたばかりの優先パケットを出力することができる。以下に、本実施の形態にかかるルータ装置について実施の形態1、2と異なる部分を中心に説明する。
【0072】
図7は、本実施の形態にかかるルータ装置の構成を示す図である。なお、図7において、同一名及び同一符号を付した処理部、回路は実施の形態1と同様の処理を行う。そのため、重複する説明は適宜省略する。各入力ポートから入力されるバッファは、通常のパケットまたは優先パケットであり、例えばパケットヘッダを参照することによりその区別ができる。
【0073】
ルータ装置1は、ラッチ2_1〜2_3と、経路計算回路3_1〜3_3と、バッファ4_1〜4_3と、優先バッファ11_1〜11_3と、優先先行出力検出回路12_1〜12_3と、バッファ選択回路13_1〜13_3と、調停回路6_1〜6_3と、優先出力選択回路14_1〜14_3と、制御記憶回路8と、スイッチ9と、を備える。
【0074】
優先バッファ11_1〜11_3は、それぞれ入力P1〜入力P3に対応する格納部であり、優先パケットをFIFO形式により格納する。また、優先バッファ11_1〜11_3は、サイクル毎に後述の優先先行出力検出回路12_1〜12_3に対して優先パケットの格納状況を通知する。優先バッファ11_1〜11_3は、スイッチ9を介してパケットを出力した場合に当該パケットをバッファから削除する。
【0075】
優先先行出力検出回路12_1は、出力P1に対応し、前述の先行出力検出回路5_1の処理を一部変更した回路である。優先先行出力検出回路12_1は、優先バッファ11_1〜11_3からパケット格納状況が通知されるとともに、各経路計算回路3_1〜3_3から優先パケットの入力の有無、及び優先パケットが有る場合にはその出力ポート番号が供給される。
【0076】
優先先行出力検出回路12_1は、あるサイクルにおいて各入力ポートから出力P1を出力先とする優先パケットがただ一つ入力されたか否か、及び優先バッファ11_1〜11_3の先頭にパケットが格納されているか否か、を判定する。すなわち、優先先行出力検出回路12_1は、優先パケットを処理対象とする。優先先行出力検出回路12_1は、あるサイクルに出力P1への出力を要求するパケットが1つであり、優先バッファ11_1〜11_3が全て空である場合に当該パケットが入力された入力ポート番号を優先出力選択回路14_1に通知する。それ以外の場合、優先先行出力検出回路12_1は、先行出力の対象となるパケットが無い旨を優先出力選択回路14_1に通知する。優先先行出力検出回路12_1による処理の詳細は、図8を参照して後述する。
【0077】
優先先行出力検出回路12_2、優先先行出力検出回路12_3は、それぞれ出力P2、出力P3に対応する判定回路であり、その動作は優先先行出力検出回路12_1と同様である。
【0078】
バッファ選択回路13_1は、優先バッファ11_1及びバッファ4_1に対応づけられて設けられた回路である。バッファ選択回路13_1には、制御記憶回路8から出力許可信号が供給される。バッファ選択回路13_1は、優先バッファ11_1の先頭からパケットを取り出してスイッチ9に供給する。優先バッファ11_1が空である場合、バッファ選択回路13_1は、バッファ4_1からパケットを取り出してスイッチ9に供給する。バッファ選択回路13_2は、優先バッファ11_2及びバッファ4_2に対応づけられて設けられた回路であり、その動作はバッファ選択回路13_1と同様である。バッファ選択回路13_3は、優先バッファ11_3及びバッファ4_3に対応づけられて設けられた回路であり、その動作はバッファ選択回路13_1と同様である。
【0079】
調停回路6_1は、優先バッファ11_1〜11_3の先頭に位置するパケット、バッファ4_1〜4_3の先頭に位置するパケットを用いてパケット調停を行う。この際、調停回路6_1は、優先パケットに対して優先的に出力権を与えるように調停を行う。調停回路6_2及び調停回路6_3についても同様である。
【0080】
優先出力選択回路14_1は、出力P1と対応する選択回路であり、前述の出力選択回路7_1の処理を一部変更した回路である。優先出力選択回路14_1は、調停回路6_1からの入力、及び優先先行出力検出回路12_2からの入力、を基に次のサイクルにおいて出力すべきパケットを選択し、当該パケットが入力された入力ポートの番号を制御記憶回路8に通知する。
【0081】
制御記憶回路8及びスイッチ9の動作は、実施の形態1、2と同等のものである。制御記憶回路8は、優先出力選択回路14_1〜14_3の入力に対応するバッファ選択回路13_1〜13_3に対して出力指示信号を供給する。さらに、制御記憶部8は、記憶している次のサイクルにおいて出力すべきパケットが入力された入力ポート番号を、出力ポート毎にスイッチ9に通知する。スイッチ9は、制御記憶回路8からの入力に応じて配線を切り換え、パケットを出力ポートから出力する。
【0082】
続いて、本実施の形態にかかるルータ装置1によるパケット出力制御を図8のフローチャートを用いて説明する。
【0083】
各優先先行出力検出回路(以下の例では、優先先行出力検出回路12_1を例に説明する。)には、各入力ポートと対応する経路計算回路(3_1〜3_3)からあるサイクルにおける優先パケットの入力有無、及び優先パケットがされた場合にはその優先パケットの出力先の出力ポート番号、が入力される(S1)。さらに、優先先行出力検出回路12_1には、優先バッファ11_1〜11_3から各バッファのパケット格納状況が通知される(S31)。
【0084】
優先先行出力検出回路12_1は、これらの入力を基に先行出力が可能な優先パケットが有るか否かを判定する(S32)。当該判定処理(S32)の詳細は、図9を参照して後述する。
【0085】
先行出力が可能な優先パケットがある場合、優先先行出力検出回路12_1は、当該対象が有る旨を通知する信号を当該優先パケットの入力された入力ポート番号とともに優先出力選択回路14_1に通知する(S32)。一方、先行出力が可能なパケットがない場合、優先先行出力検出回路12_1は、先行出力が可能な優先パケットが無い旨を優先出力選択回路14_1に通知する(S32)。
【0086】
S31及びS32と並行して、詳細にはS31及びS32を行ったサイクルと同一サイクルにて、各調停回路(以下の例では、調停回路6_1を例に説明する。)は、バッファ4_1〜4_3及び優先バッファ11_1〜11_3の先頭に格納されているパケットのうち、対応する出力ポートを出力先とするパケットが有るか否か、すなわち調停対象のパケットが有るか否かを判定する(S33)。
【0087】
調停対象となるパケットが有る場合(S33:Yes)、調停回路6_1は、調停対象となるパケットから次のサイクルにて出力するパケットを、優先パケットを優先するようにして選択する調停処理を行う(S34)。一方、調停対象となるパケットが無い場合(S33:No)、調停回路6_1は、パケット調停処理を行わない。調停回路6_1は、調停処理の実施の有無、調停処理を行った場合には調停結果である入力パケット番号を優先出力選択回路14_1に通知する。
【0088】
続くS35〜S41の処理を各優先出力選択回路(以下の説明では、優先出力選択回路14_1を例に説明する)にて行う。優先出力選択回路14_1は、はじめに調停回路6_1において優先パケットが出力権を獲得したか否かを判定する(S35)。優先パケットが出力権を獲得した場合(S35:Yes)、優先出力選択回路14_1は、出力権を獲得した優先パケットが入力された入力ポート番号を制御記憶回路8に記憶させる(S36)。
【0089】
一方、優先パケットが出力権を獲得しなかった場合(S35:No)、優先出力選択回路14_1は、優先先行出力検出回路12_1にて先行出力対象となった優先パケットが有るか否かを判定する(S37)。
【0090】
優先先行出力の対象となった優先パケットが有る場合(S37:Yes)、優先出力選択回路14_1は、先行出力対象となった優先パケットが入力された入力ポート番号を制御記憶回路8に記憶させる(S38)。
【0091】
先行出力対象となった優先パケットが無い場合(S37:No)、優先出力選択回路14_1は、調停回路6_1において通常のパケットが出力権を獲得したか否かを判定する(S39)。
【0092】
通常のパケットが出力権を獲得した場合(S39:Yes)、優先出力選択回路14_1は、出力権を獲得した当該通常のパケットが入力された入力ポート番号を制御記憶回路8に記憶させる(S40)。
【0093】
一方、通常のパケットが出力権を獲得しなかった場合(S39:No)、優先出力選択回路14_1は、出力P1から次のサイクルにおいて出力すべきパケットが無いことを制御記憶回路8に書き込む(S41)。
【0094】
続いて、優先先行出力判定処理(S32)の詳細を、図9のフローチャートを参照して説明する。優先出力選択回路14_1は、入力P1に対応する優先バッファ11_1が空になっているか否かを判定する(S51)。
【0095】
優先バッファ11_1が空ではない場合(S51:No)、優先出力選択回路14_1は、先行出力対象を設定しない。一方、優先バッファ11_1が空である場合(S51:Yes)、優先先行出力検出回路12_1は、入力P1に優先パケットのヘッダが入力されたか否かを判定する(S52)。
【0096】
優先パケットのヘッダが入力されていない場合(S52:No)、優先出力選択回路14_1は、先行出力対象を設定しない。一方、優先パケットのヘッダが入力されている場合(S52:Yes)、優先出力選択回路14_1は、経路計算回路3_1にて算出された出力ポート番号が出力P1のポート番号と等しいか否かを判定する(S53)。
【0097】
ポート番号が合致しない場合(S53:No)、優先出力選択回路14_1は、先行出力対象を設定しない。一方、ポート番号が合致する場合(S53:Yes)、優先出力選択回路14_1は、入力P1から入力された優先パケットを先行出力の候補と判定する(S54)。
【0098】
上述のS51〜S54では、優先出力選択回路14_1は、入力P1に関する先行出力候補の判定処理を行った。この処理と並行して、優先出力選択回路14_1は、入力P2に対応する処理(S55〜S58)及び入力P3に対応する処理(S59〜S62)を行う。
【0099】
優先出力選択回路14_1は、全ての入力ポートから選択した先行出力候補のパケットの合計が1つであるかを確認する(S63)。先行出力候補の優先パケットが1つである場合(S63:Yes)、優先出力選択回路14_1は、当該優先パケットを先行出力対象のパケットに決定する(S64)。一方、先行出力候補の優先パケットが1つではない場合(S63:No)、優先出力選択回路14_1は、先行出力対象となる優先パケットが無いと判定する(S65)。複数の先行出力候補となる優先パケットが有る場合、これらの優先パケットは次のサイクルにおいて調停回路による調停の対象となる。
【0100】
続いて、図7及び図10を参照して、本実施の形態にかかるルータ装置の具体的な動作例について説明する。図10は、サイクルtにおいて入力P1から出力P3を出力先とする優先パケットが入力された際の動作例を示すタイムチャートである。本例では、サイクルt−1において通常のパケットが入力P2から入力され、バッファ4_2に格納されている。さらに、本例では、サイクルtにおいて、他の入力ポート(入力P2、入力P3)からの入力はない。優先バッファ11_1〜11_3は、空である。図10におけるA〜Iは、図7における各点(A〜I)における通過信号を示している。
【0101】
サイクルtにおいて入力P1から優先パケットのヘッダがラッチ2_1に入力される(図10A参照)。この優先パケットのヘッダは、サイクルt+1においてラッチ2_1から出力される。出力された優先パケットのヘッダは、経路計算回路3_1により経路計算が行われた後に優先バッファ11_1に格納される(図10B参照)。
【0102】
この優先バッファ11_1への格納と同時に、優先パケットのヘッダは優先先行出力検出回路12_3にも供給される。優先先行出力検出回路12_3は、各経路計算回路から入力された優先パケットのヘッダ、及び優先バッファ11_1〜11_3のバッファ格納状況から先行出力対象となる優先パケットが有るかを判定する。優先バッファ11_1〜11_3が空であるため、優先先行出力検出回路12_3は、サイクルtにおいて入力された優先パケットを先行出力対象と判定し、入力ポート番号"1"をサイクルt+1に優先出力選択回路14_3に供給する(図10C参照)。
【0103】
サイクルt+1において、調停回路6_3は、調停処理を行う。調停回路6_3には、各優先バッファ及びバッファからパケット格納状況が通知される。例えば、調停回路6_3には、サイクルtにおいて、入力P1に対応する優先パケット11_1に格納されているパケットが無いことが通知される(図10D参照)。調停回路6_3には、サイクルtにおいて、入力P2に対応するバッファ4_2に出力P3を出力先とするパケットが有ることが通知される(図10E参照)。
【0104】
調停回路6_3は、サイクルt+1における調停処理の結果として入力P2の通常パケット("2N")に出力権を与えたことを優先出力選択回路14_3に通知する(図10F参照)。
【0105】
優先出力選択回路14_3は、サイクルt+1において、優先先行出力検出回路12_3からの入力("1")、及び調停回路6_3からの入力("2N")を基に、出力対象のパケットをサイクルtにおいて入力P1から入力された優先パケットとする。すなわち、優先出力選択回路14_3は、サイクルt+1において、"1"を制御記憶回路8に出力する(図10G参照)。
【0106】
制御記憶回路8は、サイクルt+2において、バッファ選択回路13_1に対して出力許可信号を通知する(図10H参照)。これにより、優先バッファ11_1に格納されているパケットのヘッダ、すなわち先行出力対象となった優先パケットのヘッダは調停回路による調停の対象となることなく、スイッチに供給される。スイッチを通過したパケットのヘッダは、サイクルt+2においてルータ装置1から出力される(図10I参照)。
【0107】
続いて、本実施の形態にかかるルータ装置の効果について説明する。本実施の形態にかかるルータ装置は、図10に示したように、既に格納されている通常のパケットよりも優先して優先パケットを出力するように出力パケットを選択する。これにより、調停処理を短縮できるとともに、優先度の高いパケットを優先的に出力することが可能になる。
【0108】
<実施の形態4>
本実施の形態にかかるルータ装置は、優先パケットに対応し、かつソースルーティング方式に対応するものである。本実施の形態にかかるルータ装置の構成を図11に示す。なお、図11において、同一名及び同一符号を付した処理部、回路は実施の形態1、2、3と同様の処理を行う。そのため、重複する説明は適宜省略する。
【0109】
ルータ装置1は、バッファ4_1〜4_3と、優先バッファ11_1〜11_3と、優先先行出力検出回路12_1〜12_3と、バッファ選択回路13_1〜13_3と、調停回路6_1〜6_3と、優先出力選択回路14_1〜14_3と、経路更新回路10_1〜10_3と、制御記憶回路8と、スイッチ9と、を備える。各回路、処理部の動作は、前述の実施の形態1〜3と同様であるため、詳細な説明は省略する。
【0110】
本実施の形態にかかるルータ装置1は、実施の形態3と同様に優先バッファ11_1〜11_3を備え、既に格納されている通常のパケットよりも優先パケットを優先的に処理することができる。さらに、本実施の形態にかかるルータ装置1は、実施の形態2と同様に経路更新回路10_1〜10_3を備える構成であるため、ルータ通過に要するレイテンシを削減することができる。
【0111】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の例では、3つの出力ポートを持つルータ装置について説明したが、これに限られず、1以上の任意数の出力ポートを持つルータ装置に本発明を適応することが可能である。また、ルータ装置を、制御記憶回路を介さずに、出力選択回路または優先出力選択回路の判定結果をスイッチ等に通知するように構成することも可能である。
【符号の説明】
【0112】
1 ルータ装置
2_1〜2_3 ラッチ
3_1〜3_3 経路計算回路
4_1〜4_3 バッファ
5_1〜5_3 先行出力検出回路
6_1〜6_3 調停回路
7_1〜7_3 出力選択回路
8 制御記憶回路
9 スイッチ
10_1〜10_3 経路更新回路
11_1〜11_3 優先バッファ
12_1〜12_3 優先先行出力検出回路
13_1〜13_3 バッファ選択回路
14_1〜14_3 優先出力選択回路
【技術分野】
【0001】
本発明はルータ装置及びルータ装置の制御方法に関する。
【背景技術】
【0002】
現在、単一のチップ上にプロセッサ等の設計モジュールを複数配置することが可能となっている。Newwork−on−Chip(以下、NoCと記載する)は、配置したIPコア等の設計モジュールの結合に用いられる回路である。NoCは、ルータと呼ばれるスイッチング回路を複数備える構成である。
【0003】
図12は、半導体におけるIPコアとルータの配置例を示す図である。図示するように、複数のIPコアがルータを経由して間接的に接続されている。ルータには、隣接するルータまたはIPコアからパケット化された入力データが入力される。ルータは、受信したパケットデータの出力方向を決定し、次のルータまたは送信先のIPコアにデータを送信する。
【0004】
ルータの機能は、主に経路計算、スイッチ調停、スイッチ転送の3つである。ルータの標準的な構造を図13に示す。ルータ装置1は、複数の入力ポート(入力P1〜入力P3)及び複数の出力ポート(出力P1〜出力P3)を備える。また、ルータ装置1は、ラッチ2_1〜2_3、経路計算回路3_1〜3_3、バッファ4_1〜4_3、調停回路6_1〜6_3、制御記憶回路8、及びスイッチ9を備える。ラッチ2_1〜2_3、経路計算回路3_1〜3_3、及びバッファ4_1〜4_3は、入力P1〜入力P3にそれぞれ対応づけられている。調停回路6_1〜6_3は、出力P1〜出力P3に対応づけられている。例えば、ラッチ2_1、経路計算回路3_1、及びバッファ4_1は入力P1に対応づけられている。調停回路6_1は、出力P1に対応づけられている。
【0005】
ラッチ2_1〜2_3は、対応する入力ポートから入力されたパケットを一時的に保持し、その後にパケットを対応する経路計算回路3_1〜3_3に出力する。
【0006】
経路計算回路3_1〜3_3は、経路計算を行う回路である。以下、経路計算回路3_1を例に説明する。経路計算回路3_1は、入力P1から入力されたパケットのヘッダに記載された送信先IPコアの情報、または送信方向の情報を基に出力ポート番号を決定する。経路計算回路3_1は、決定した出力ポート番号とともにパケットを対応するバッファ4_1に格納する。
【0007】
バッファ4_1〜4_3は、経路計算回路が出力したパケットを出力先の出力ポート番号と対応づけて一時的に格納する。バッファ4_1〜4_3は、複数のパケットを保持可能である。バッファ4_1〜4_3は、後述の制御記憶回路8からのパケット出力の要求に応じてパケットをスイッチ9に供給する。
【0008】
調停回路6_1〜6_3は、バッファ4_1〜4_3に一時的に格納されたパケットのうち、対応する出力ポートが次サイクルに出力するパケットを選択する回路である。以下、調停回路6_1を例に説明する。調停回路6_1は、バッファ4_1〜4_3に格納されたパケット及び当該パケットの出力パケット番号を基に、対応する出力ポートである出力P1から次サイクルにおいて出力するパケットを決定する。調停回路6_1は、決定した出力パケットが入力された入力ポート番号を制御記憶回路8に書き込む。
【0009】
制御記憶回路8は、あるサイクルにおいて、各出力ポートが出力対象とするパケットを入力した入力ポート番号を記憶する。さらに、制御記憶回路8は、パケット出力要求をバッファ4_1〜4_3にそれぞれ伝達する。
【0010】
スイッチ9は、算出された調停回路6_1〜6_3の調停結果(すなわち、各出力ポートが出力すべきパケットが入力された入力ポート番号)が制御記憶回路8を介して入力され、当該調停結果に応じて入力ポートと出力ポートを接続する。詳細には、スイッチ9は、接続対象の入力ポートに対応づけられているバッファからの出力を、出力先となる出力ポートに接続する。
【0011】
一般に、ルータは経路計算回路による経路計算、調停回路によるスイッチ調停、スイッチによるスイッチ転送にそれぞれ1サイクルのレイテンシを必要とする。この場合、ルータの通過レイテンシは、3サイクルとなる。図13に示すルータ装置の動作を図14のタイミングチャートを参照して説明する。
【0012】
図14は、図13のルータ装置において、入力P1に入力されたパケットを出力P3から出力する際の動作を示すタイミングチャートである。図14では、図13の各点A〜Fを通過する信号を示している。ここで、バッファ4_1〜4_3には、パケットが格納されていないものとする。
【0013】
ラッチ2_1は、サイクルtにおいて入力されたパケットのヘッダを保持する(図14A参照)。ラッチ2_1は、このパケットのヘッダをサイクルt+1において出力する。経路計算回路3_1は、このパケットヘッダ及び経路計算結果をバッファ4_1に格納する(図14B参照)。調停回路6_3は、サイクルt+2において、出力パケットの調停を行う。これにより、サイクルt+2において、このパケットヘッダは出力権を得る。すなわち、このパケットヘッダは、バッファ4_1からの出力対象となる。
【0014】
調停回路6_3は、調停結果を制御記憶回路8に書き込む。詳細には、調停回路6_3は、出力P3から出力されるパケットの入力ポートが"1"であることをサイクルt+2において書き込む(図14D参照)。サイクルt+2において、制御記憶回路8から出力されるバッファ4_1への指示信号は「停止」である(図14E参照)。そのため、サイクルt+2においては、バッファ4_1は、パケットを出力したものとみなされない。換言すると、バッファ4_1は、サイクルt+3においてもサイクルt+2と同一の出力を行い続ける(図14C参照)。
【0015】
調停回路6_3が制御記憶回路8に"1"を入力したことにより、制御記憶回路8は、バッファ4_1に出力許可("許可")の信号を通知する(図14E参照)。この許可信号を受けて、バッファ4_1は、パケットのヘッダの出力が行われたと判断し、バッファ内の更新を行う。この更新により、サイクルt+4では、バッファ4_1は、サイクルt+1にて入力されたパケットのデータを出力する。このパケットのデータは、サイクルt+4においてスイッチ9から出力される。
【0016】
上述のように、ルータ内の通過レイテンシは、経路計算、スイッチ調停、スイッチ転送という3つの処理から構成される。ルータの通過レイテンシが大きい場合には半導体の処理能力の向上を妨げる。NoCでは複数のルータによる中継通信が前提となるため、ルータの通過レイテンシが半導体全体の通信レイテンシの大部分を占める。このため、ルータ内の通過レイテンシを削減することは、非常に重要である。
【0017】
ルータ内の通過レイテンシを生じさせる処理のうち、経路計算処理及びスイッチ調停処理は、パケットのヘッダを処理対象とする。ヘッダは、パケットの最前方に位置している。ヘッダに後続するパケットのデータは、経路計算処理及びスイッチ調停処理の間は入力バッファにて停止する(格納され続ける)ことになる。これらの2つの処理(経路計算処理、スイッチ調停処理)の一部を省略することができれば、通信レイテンシも削減することができる。
【0018】
経路計算処理を省略する手法として、パケット送信元において全ての経路計算を予め行うソースルーティングという手法が挙げられる。ソースルーティングは、オフチップネットワークでも使用される手法である。ソースルーティングでは、パケット送信時に既に経路計算が行われている。そのため、各ルータは入力されたパケットの経路を計算する必要はない。ただし、パケットが複数のルータを通過する場合、パケット内には複数の経路情報が格納される。この場合、ルータの構造を簡略化するために、使用した経路情報を破棄し、新しい経路情報を更新する場合が多い。
【0019】
経路情報の更新は、パケット内の経路情報をシフトすることにより行われる。すでに使用された経路情報は、経路更新回路によるビットシフトによって、次に使用される経路情報により上書きされる。この経路更新により生じる遅延は、経路計算によって生じる遅延よりも小さい。そのため、一般的なルータでの経路計算によって生じる1サイクルのレイテンシを削減することが可能になる。
【0020】
スイッチ調停のレイテンシを削減する手法として、非特許文献1に記載された予測ルータと呼ばれる手法が挙げられる。この予測ルータとは、入力されるパケットの出力方向をパケット入力前にルータ内にて予め予測し、調停を投機的に完了させておく手法である。
【先行技術文献】
【非特許文献】
【0021】
【非特許文献1】松谷 宏紀、鯉渕 道紘、天野 英晴、吉永 努著、予測機構を持った低遅延オンチップルータアーキテクチャ、信学技報vol.108,no.28
【発明の概要】
【発明が解決しようとする課題】
【0022】
上述の非特許文献1に記載の予測ルータという手法は、予測した出力方向が間違っていた場合には、スイッチ調停をやり直す必要が生じる。スイッチ調停をやり直した場合、スイッチ調停が全て実行されるためレイテンシの削減がなされない。この予測の失敗は、パケットの出力方向に規則性がない等の要因により発生する。このため、この予測ルータ手法では、レイテンシ削減の効果は、ルータを通過するパケットの通信経路に依存してしまう。よって、ルータを通過するパケットの通信経路次第では、十分にレイテンシの削減をできないという問題がある。
【課題を解決するための手段】
【0023】
本発明にかかるルータ装置の一態様は、
複数の入力ポートと、第1の出力ポートを有し、前記第1の出力ポートの出力権限を制御する調停処理を行うルータ装置であって、
あるサイクルにおける前記第1の出力ポートへの出力を要求する入力パケットが、前記ルータ装置において前記第1の出力ポートへの出力を要求する唯一のパケットである場合に、当該パケットを前記調停処理の対象とせずに出力する先行出力対象パケットと決定する、ものである。
【0024】
本発明にかかるルーティング方法の一態様は、
複数の入力ポートと、第1の出力ポートを有し、前記第1の出力ポートの出力権限を制御する調停処理を行うルータ装置の制御方法であって、
あるサイクルにおける前記第1の出力ポートへの出力を要求する入力パケットが、前記第1の出力ポートへの出力を要求する唯一のパケットである場合に、当該パケットを前記調停処理の対象とせずに出力する先行出力対象パケットと決定する、ものである。
【0025】
本発明においては、ルータ装置は、入力パケットが、前記第1の出力ポートへの出力を要求する唯一のパケットであるか否かを判定している。唯一のパケットである場合、調停処理の対象とすることなく即座に出力することが可能である。このように、本発明にかかるルータ装置は、パケットの入力状況とパケットの保持状況に応じて先行出力対象パケットを検出し、パケットの通信経路を用いて検出処理を行う必要がない。このため、各パケットの通信経路に依存せずに調停処理を省略することが可能となる。
【発明の効果】
【0026】
本発明によれば、ルータを通過するパケットの通信経路に依存することなく、レイテンシの削減を図ることができるルータ装置、及びルータ制御方法を提供することができる。
【図面の簡単な説明】
【0027】
【図1】実施の形態1にかかるルータ装置の構成を示すブロック図である。
【図2】実施の形態1にかかるルータ装置によるパケット出力制御を示すフローチャートである。
【図3】実施の形態1にかかるルータ装置による先行出力判定処理を示すフローチャートである。
【図4】実施の形態1にかかるルータ装置の動作を示すタイムチャートである。
【図5】実施の形態2にかかるルータ装置の構成を示すブロック図である。
【図6】実施の形態2にかかるルータ装置の動作を示すタイムチャートである。
【図7】実施の形態3にかかるルータ装置の構成を示すブロック図である。
【図8】実施の形態3にかかるルータ装置によるパケット出力制御を示すフローチャートである。
【図9】実施の形態3にかかるルータ装置による先行出力判定処理を示すフローチャートである。
【図10】実施の形態3にかかるルータ装置の動作を示すタイムチャートである。
【図11】実施の形態4にかかるルータ装置の構成を示すブロック図である。
【図12】標準的な半導体におけるIPコアとルータの配置例の図である。
【図13】標準的なルータ装置の構成を示すブロック図である。
【図14】標準的なルータ装置の動作を示すタイムチャートである。
【発明を実施するための形態】
【0028】
<実施の形態1>
【0029】
本発明の実施の形態にかかるルータ装置は、入力パケットが、あるサイクルにおいて、所定の出力ポートへの出力を要求する唯一のパケットであるか否かを判定している。唯一のパケットである場合、ルータ装置は、調停処理の対象とすることなく即座に出力対象とする。このため、本実施の形態にかかるルータ装置は、各パケットの通信経路に依存せずに調停処理を省略することが可能となる。
【0030】
以下、図面を参照して本発明の実施の形態にかかるルータ装置の詳細について説明する。図1は、本実施の形態にかかるルータ装置の構成を示すブロック図である。ルータ装置1は、3つの入力ポート(入力P1〜入力P3)及び3つの出力ポート(出力P1〜出力P3)を持つルータ装置である。ルータ装置1は、ラッチ2_1〜2_3、経路計算回路3_1〜3_3、バッファ4_1〜4_3、先行出力検出回路5_1〜5_3、調停回路6_1〜6_3、出力選択回路7_1〜7_3、制御記憶回路8、及びスイッチ9を備える。
【0031】
ラッチ2_1は、入力P1から入力されたパケット(詳細には、パケットのヘッダ及びパケットのデータ)を一時的に保持して経路計算回路3_1に供給する。ラッチ2_1が一時的にパケットを保持することにより、ルータ装置1からのパケットの出力タイミングを調節することができる。ラッチ2_2、ラッチ2_3は、それぞれ入力P2、入力P3と対応するラッチであり、その動作はラッチ2_1と同様である。
【0032】
経路計算回路3_1は、ラッチ2_1から入力されたパケットから、当該パケットの出力対象のポートを特定する経路である。詳細には、経路計算回路3_1は、パケットのヘッダを読み込み、読み込んだ情報から出力すべき出力ポートを特定する。経路計算回路3_1は、経路計算結果である出力ポート番号と、パケットと、をバッファ4_1に書き込む。さらに経路計算回路3_1は、入力P1に対するパケット入力の有無と、パケット入力が有る場合に経路計算結果である出力ポート番号と、先行出力検出回路5_1に供給する。経路計算回路3_2、経路計算回路3_3は、それぞれラッチ2_2、ラッチ2_3と対応する経路計算回路であり、その動作は経路計算回路3_1と同様である。
【0033】
バッファ4_1には、出力待ち状態となっているパケットが出力ポート番号と関連付けられて格納される。バッファ4_1は、FIFO(First In First Out)形式の記憶部である。バッファ4_1は、後述の調停回路6_1〜6_3にパケットの格納状況(パケットの有無であり、パケットが格納されている場合には先頭に位置するパケットの出力ポート番号を含む情報)を通知する。さらに、バッファ4_1は、後述の制御記憶回路8からの出力命令に応じて、出力対象となるパケットをスイッチ9に供給する。バッファ4_1に格納されたパケットは、スイッチ9を介してルータ装置1外に出力された際にのみ削除される。バッファ4_2、バッファ4_3はそれぞれ入力P2、入力P3に対応するバッファであり、その機能はバッファ4_1と同様である。
【0034】
なお、本例では、入力ポート毎にバッファを持つ構成として説明するが、必ずしもこれに限られない。例えば、出力先のポート番号と関連付けてパケットを保持する1つのバッファとして構成してもよい。
【0035】
先行出力検出回路5_1は、先行出力対象となるパケットが有るか否かを判定する回路である。先行出力対象のパケットとは、パケット調停を実施せずにそのまま出力ポートから出力するパケットである。詳細には、先行出力検出回路5_1は、各バッファ4_1〜4_3が空き状態であるか、及び、あるサイクルに入力ポートのいずれかから入力され、出力P1への出力を要求するパケットが1つだけか否か、を判定する。条件を満たす場合、先行出力検出回路5_1は、入力ポートから入力された唯一のパケットを先行出力対象とする。
【0036】
先行出力検出回路5_1には、経路計算回路3_1からサイクル毎に入力P1に対するパケット入力の有無と、パケット入力が有る場合の経路計算結果である出力ポート番号と、が入力される。同様に先行出力検出回路5_1には、経路計算回路3_2からサイクル毎に入力P2に対するパケット入力の有無と、パケット入力が有る場合の経路計算結果である出力ポート番号と、が入力される。先行出力検出回路5_1には、経路計算回路3_3からサイクル毎に入力P3に対するパケット入力の有無と、パケット入力が有る場合の経路計算結果である出力ポート番号と、が入力される。先行出力検出回路5_1は、これらの入力を基にサイクル毎に出力P1に対する先行出力対象のパケットが有るか否か判定する。詳細な判定手法については図3を用いて後述する。
【0037】
先行出力検出回路5_1は、サイクル毎に出力P1に関する先行出力判定の結果を出力選択回路7_1に供給する。詳細には、先行出力検出回路5_1は、あるサイクルに出力P1への出力を要求するパケットが1つであり、バッファ4_1〜4_3が全て空である場合に、当該パケット(先行出力対象のパケット)が入力された入力ポートの番号を出力選択回路7_1に通知する。それ以外の場合、先行出力検出回路5_1は、先行出力対象とするパケットが無い旨を出力選択回路7_1に通知する。先行出力検出回路5_2及び先行出力検出回路5_3は、それぞれ出力P2、出力P3に対応する判定回路であり、その機能は先行出力検出回路5_1と同様である。先行出力検出回路5_2による判定結果の出力先は出力選択回路7_2である。先行出力検出回路5_3による判定結果の出力先は出力選択回路7_3である。
【0038】
調停回路6_1は、バッファ4_1〜4_3が先頭に格納しているパケットの情報から、次のサイクルにおいて出力P1が出力すべきパケットを選択する回路である。調停回路6_1は、一般のルータ装置が備える調停回路と同等の機能を持つ。調停回路6_1は、出力P1を出力先とするパケットがバッファ4_1〜4_3のいずれかの先頭位置に存在する場合に調停を行い、調停により出力権を得たパケットが入力された入力ポート番号を出力選択回路7_1に通知する。また、調停回路6_1は、出力P1を出力先とするパケットがバッファ4_1〜4_3のいずれにも存在しない場合に、出力すべきパケットが無いことを出力選択回路7_1に通知する。調停回路6_2、調停回路6_3は、それぞれ出力P2、出力P3に対応する調停回路であり、その機能は調停回路6_1と同様である。
【0039】
出力選択回路7_1は、先行出力検出回路5_1からの入力(先行出力対象のパケットの有無、先行出力対象のパケットが有る場合には当該パケットが入力された入力ポートの番号)と、調停回路6_1からの入力(次のサイクルにおいて出力P1から出力すべきパケットが入力された入力ポートの番号、または出力すべきパケットが無いこと)を基に、次のサイクルにおいて出力P1が出力するパケットを決定する回路である。出力選択回路7_1の詳細は決定処理については図2を参照して後述する。出力選択回路7_1は、次のサイクルにおいて出力P1から出力すべきパケットが入力された入力ポート番号を制御記憶回路8に書き込む。出力選択回路7_2、出力選択回路7_3は、それぞれ出力P2、出力P3に対応する選択回路であり、その機能は出力選択回路7_1と同様である。
【0040】
制御記憶回路8は、出力ポート毎に、次のサイクルにおいて出力すべきパケットが入力された入力ポート番号を記憶する。また、制御記憶回路8は、書き込まれた入力ポート番号と対応するバッファに対して出力許可信号を供給する。さらに、制御記憶部8は、次のサイクルにおいて出力すべきパケットが入力された入力ポート番号を、出力ポート毎にスイッチ9に通知する。
【0041】
スイッチ9は、通知された情報を基に、各入力ポートに接続されたバッファと、各出力ポートと、の接続を変更する。これにより、各出力選択回路が選択したパケットがルータ装置1から出力される。
【0042】
続いて、本実施の形態にかかるルータ装置1によるパケット出力制御を図2のフローチャートを用いて説明する。各先行出力検出回路(以下の例では、先行出力検出回路5_1を例に説明する。)には、各入力ポートと対応する経路計算回路(3_1〜3_3)からあるサイクルにおける入力パケットの有無、及び入力パケットが有る場合にはその出力先の出力ポート番号、が入力される(S1)。さらに、先行出力検出回路5_1には、バッファ4_1〜4_3から各バッファのパケット格納状況が通知される(S1)。
【0043】
先行出力検出回路5_1は、これらの入力を基に先行出力が可能なパケットが有るか否か、すなわち先行出力検出回路5_1は、調停処理の対象としなくても出力してもよいパケットが有るか否かを判定する(S2)。当該処理(先行出力判定)の詳細は、図3を参照して後述する。先行出力が可能なパケットがある場合、先行出力検出回路5_1は、当該対象が有る旨を通知する信号を当該パケットの入力された入力ポート番号とともに出力選択回路7_1に通知する(S2)。一方、先行出力が可能なパケットがない場合、先行出力検出回路5_1は、先行出力が可能なパケットが無い旨を出力選択回路7_1に通知する(S2)。
【0044】
S1及びS2と並行して、詳細にはS1及びS2を行ったサイクルと同一サイクルにて、各調停回路(以下の例では、調停回路6_1を例に説明する。)は、バッファ4_1〜4_3の先頭に格納されているパケットを読み出し、対応する出力ポートを出力先とするパケットが有るか否かを判定する(S3)。対象となるパケットが有る場合(S3:Yes)、調停回路6_1は、判定対象となるパケットから次のサイクルにて出力するパケットを選択するパケット調停処理を行う(S4)。一方、対象となるパケットが無い場合(S3:No)、調停回路6_1は、パケット調停処理を行わない。調停回路6_1は、調停処理の実施の有無、調停処理を行った場合には調停結果である入力パケット番号を出力選択回路7_1に通知する。
【0045】
続いて、S5〜S9の処理を各出力選択回路(以下の説明では、出力選択回路7_1を例に説明する。)が行う。出力選択回路7_1には、先行出力検出回路5_1から先行出力の対象となるパケットの有無、及び当該対象が有る場合には当該パケットの入力ポート番号が入力される。さらに、出力選択回路7_1には、調停回路6_1から調停処理の実施の有無、調停処理を行った場合には調停結果である入力パケット番号、が入力される。
【0046】
出力選択回路7_1は、はじめに調停回路6_1において調停処理が行われたか否かを判定する(S5)。調停処理が行われた場合(S5:Yes)、出力選択回路7_1は、調停回路6_1から入力された入力ポート番号を、出力P1の出力対象として制御記憶回路8に記憶させる(S6)。
【0047】
一方、調停処理が行われなかった場合(S5:No)、出力選択回路7_1は、先行出力の対象となるパケットが有るか否かを判定する(S7)。先行出力の対象となるパケットが有る場合(S7:Yes)、出力選択回路7_1は、当該先行出力対象のパケットが入力された入力ポート番号を、出力P1の出力対象として制御記憶回路8に記憶させる(S8)。先行出力の対象となるパケットが無い場合(S7:No)、出力選択回路7_1は、次サイクルでの出力P1の出力対象がないことを制御記憶回路8に記憶させる(S9)。
【0048】
続いて、先行出力検出回路5_1による先行出力判定の詳細を図3のフローチャートを参照して説明する。なお、先行出力検出回路5_2及び先行出力検出回路5_3についても同様の処理を行う。
【0049】
先行出力検出回路5_1は、入力P1に対応するバッファ4_1が空であるか否かを判定する(S11)。バッファ4_1が空ではない場合(S11:No)、先行出力検出回路5_1は、先行出力の候補となるパケットを設定しない。一方、バッファ4_1が空である場合(S11:Yes)、先行出力検出回路5_1は、入力P1に対するパケット入力状況を確認し、入力データにパケットのヘッダが含まれるか否かを確認する(S12)。
【0050】
入力データにパケットのヘッダが含まれない場合(S12:No)、先行出力検出回路5_1は、先行出力の候補となるパケットを設定しない。入力データにパケットのヘッダが含まれる場合(S12:Yes)、先行出力検出回路5_1は、経路計算回路3_1にて算出された出力ポート番号が出力P1のポート番号と等しいか否かを判定する(S13)。
【0051】
ポート番号が合致しない場合(S13:No)、先行出力検出回路5_1は、先行出力の候補となるパケットを設定しない。ポート番号が合致する場合(S13:Yes)、先行出力検出回路5_1は、入力P1から入力されたパケットを先行出力の候補と判定する(S14)。
【0052】
上述のS11〜S14では、先行出力検出回路5_1は、入力P1に関する先行出力候補の判定処理を行った。この処理と並行して、先行出力検出回路5_1は、入力P2に対応する処理(S15〜S18)及び入力P3に対応する処理(S19〜S22)を行う。
【0053】
先行出力検出回路5_1は、全ての入力ポートから選択した先行出力候補のパケットの合計が1つであるかを確認する(S23)。先行出力候補のパケットが1つである場合(S23:Yes)、先行出力検出回路5_1は、当該パケットを先行出力対象のパケットに決定する(S24)。先行出力候補のパケットが1つではない場合(S23:No)、先行出力検出回路5_1は、先行出力の対象となるパケットが無いと判定する(S25)。複数の先行出力候補となるパケットが有る場合、これらのパケットは次のサイクルにおいて調停回路による調停の対象となる。
【0054】
なお、上述のように先行出力検出回路5_1は、先行出力対象のパケットの判定においてバッファが空であるか否かを判定している(S11、S15、S19)。バッファが全て空である場合、調停処理は実施されない。そのため、出力選択回路7_1は、図2に示したS6の処理とS7の処理を逆の順序にて行ってもよい。すなわち、出力選択回路7_1は、先行出力対象のパケットが有るか否かを判定した後に、パケット調停結果を参照してもよい。
【0055】
続いて、図1及び図4を参照して本実施の形態にかかるルータ装置の具体的な動作例について説明する。図4は、サイクルtにおいて入力P1から出力P3へのパケットが入力され、当該パケットが転送される場合のルータ装置1の動作例を示すタイムチャートである。本例では、バッファ4_1〜4_3にはパケットが格納されていない。さらに、本例では、サイクルtにおいて、他の入力ポート(入力P2、入力P3)からの入力はない。図4におけるA〜Hは、図1における各点(A〜H)における通過信号を示している。
【0056】
はじめに、サイクルtにおいて入力P1からパケットのヘッダがラッチ2_1に入力される(図4A参照)。このパケットのヘッダは、サイクルt+1においてラッチ2_1から出力される。出力されたパケットのヘッダは、経路計算回路3_1により経路計算が行われた後にバッファ4_1に格納される(図4B参照)。
【0057】
このバッファ4_1への格納と同時に、パケットのヘッダは先行出力検出回路5_3にも供給される(図4B参照)。先行出力検出回路5_3は、このパケットのヘッダを用いて出力P3の先行出力判定を行う。
【0058】
先行出力検出回路5_3は、サイクルt+1において先行出力判定を行う。本例では、バッファ4_1〜4_3は全て空であり、サイクルtにおいて入力P2、入力P3からの入力が無いため、先行出力検出回路5_3は、入力ポート番号(1)を出力する(図4C参照)。
【0059】
先行出力検出回路5_3による先行出力判定と並行して、調停回路6_3は、バッファ4_1〜4_3の先頭位置に格納されているパケットを用いて調停処理を行う。本例では、バッファ4_1〜4_3にはパケットが格納されていない。そのため、信号D等によりバッファ内のパケットが無いこと("無")が通知される。よって、調停回路6_3は、サイクルt+1において、パケット調停を行わなかったことを示す信号を出力選択回路7_3に出力する。
【0060】
サイクルt+1において、出力選択回路7_3には、先行出力検出回路5_3から"1"が入力され、調停回路6_3から"無"が入力される。これにより、出力選択回路7_3は、図2におけるS7及びS8を実行し、サイクルt+1において先行出力対象の入力ポート番号"1"を制御記憶回路8に入力する(図4F参照)。
【0061】
制御記憶回路8は、サイクルt+2において、バッファ4_1に対してパケットの出力を許可する(図4G参照)。これにより、バッファ4_1に格納されているパケットのヘッダ、すなわち先行出力対象となったパケットのヘッダは調停回路による調停の対象となることなく、スイッチに供給される(図4D参照)。スイッチを通過したパケットはルータ装置1から出力される(図4H参照)。
【0062】
続いて、本実施の形態にかかるルータ装置1の効果について改めて説明する。前述のように、先行出力検出回路は、ある出力ポート(第1の出力ポート)を出力先とする入力パケットの入力状態(すなわち1つであるか否か)、及びバッファのパケット格納状態、から調停対象とならない先行出力対象パケットを検出している。先行出力対象パケットは、調停処理の対象となることなく出力される。この先行出力対象パケットの検出は、パケットの入力状態を使用することはない。これにより、パケットの通信経路に依存することなく、調停処理を省略することが可能になり、ルータ装置のレイテンシを削減させることができる。
【0063】
<実施の形態2>
本発明の実施の形態2は、ソースルーティング方式に対応している点を特徴とする。より詳細には、ルータ装置に入力される各パケットには経路情報が予め埋め込まれており、ルータ装置は経路情報を更新する経路更新情報を備えている。これにより、経路計算処理を軽減できるとともに、ルータの構造を簡略化することができる。
【0064】
図5を参照して本実施の形態にかかるルータ装置1の基本構成を説明する。なお、図5において、同一名及び同一符号を付した処理部、回路は実施の形態1と同様の処理を行う。そのため、重複する説明は適宜省略する。
【0065】
ルータ装置1は、バッファ4_1〜4_3と、先行出力検出回路5_1〜5_3と、調停回路6_1〜6_3と、出力選択回路7_1〜7_3と、制御記憶回路8と、スイッチ9と、経路更新回路10_1〜10_3と、を備える。ルータ装置1は、ラッチ、経路計算回路は有さない構成である。ラッチは、経路計算回路を有さない構成であることから、入力ポートからバッファまでの遅延制約が緩和されることにより不要となる。これにより、本実施の形態にかかるルータ装置1は、実施の形態1にかかるルータ装置1と比べてルータの通過に要するレイテンシが1サイクル削減できる。
【0066】
ルータ装置1に入力される各パケットには、既存のソースルーティング手法に沿った経路情報が埋め込まれている。これにより、ルータ装置1内でのパケットの経路計算処理が不要となる。経路更新回路10_1〜10_3は、それぞれ供給されたパケットから既に通過済みの経路情報を削除する回路である。経路更新回路10_1〜10_3による経路情報の削除処理は、前述のようにビットシフト等の簡易な処理により実現されるため、経路計算処理に比較して非常に短い時間で終了する。経路更新回路10_1〜10_3は、それぞれ既存の技術を適用することにより実現可能である。
【0067】
続いて、本実施の形態にかかるルータ装置1の具体的な動作例を図5に加え、図6のタイムチャートを参照して説明する。図6は、サイクルtにおいて入力P1から出力P3へのパケットが入力され、当該パケットが転送される場合のルータ装置1の動作例を示すタイムチャートである。本例では、バッファ4_1〜4_3にはパケットが格納されていない。さらに、本例では、サイクルtにおいて、他の入力ポート(入力P2、入力P3)からの入力はない。図6におけるA〜Hは、図5における各点(A〜H)における通過信号を示している。
【0068】
はじめに、サイクルtにおいて入力P1からパケットのヘッダがバッファ4_1に入力される(図6A参照)。これと同時に、入力されたパケットのヘッダの情報は先行出力検出回路5_3に供給される。先行出力検出回路5_3は、サイクルtにおいて先行出力対象として"1"を出力選択回路7_3に出力する(図6B参照)。これと同じタイミングにおいて、調停回路6_3は、調停対象のパケットがバッファ内に無いことを示す"無"を出力選択回路7_3に出力する(図6D参照)。この結果、出力選択回路7_3は、サイクルtに入力されたパケットをサイクルt+1における出力パケットと判定し、制御記憶回路8にこのパケットが入力された入力ポート番号"1"を出力する(図6E参照)。
【0069】
制御記憶回路8は、サイクルt+1において、バッファ4_1に対してパケットの出力を許可する(図4F参照)。これにより、バッファ4_1に格納されているパケットのヘッダは、経路更新回路10_1に供給される(図6C参照)。経路更新回路10_1は入力されたパケットのヘッダの経路情報を更新する。経路更新回路10_1は、経路更新後にこのパケットのヘッダをスイッチ9に供給する(図6G参照)。スイッチを通過したパケットはルータ装置1から出力される(図6H参照)。
【0070】
このように、本実施の形態にかかるルータ装置1は、ソースルーティング方式を採用し、経路計算回路、ラッチを持たない構成である。経路更新回路10_1〜10_3による処理は、経路情報を上書きする処理であり、ルータの動作周波数に与える影響が極めて少ない。このため、実施の形態1にかかるルータ装置1と比べて、本実施の形態にかかるルータ装置1は、ルータ通過に要するレイテンシを削減することができる。
【0071】
<実施の形態3>
本発明の実施の形態3にかかるルータ装置は、通常のパケットに比べて優先的に送信されるべきパケット(以下、優先パケットと記載する。)を適切に扱うことができることを特徴とする。詳細には、本実施の形態にかかるルータ装置では、先行出力判定回路にて入力パケットが優先パケットか否かの判定を行い、出力選択回路は優先パケットを通常のパケットに優先して出力対象と判定する。これにより、すでにバッファ内に格納されている通常のパケットよりも優先して入力ポートから入力されたばかりの優先パケットを出力することができる。以下に、本実施の形態にかかるルータ装置について実施の形態1、2と異なる部分を中心に説明する。
【0072】
図7は、本実施の形態にかかるルータ装置の構成を示す図である。なお、図7において、同一名及び同一符号を付した処理部、回路は実施の形態1と同様の処理を行う。そのため、重複する説明は適宜省略する。各入力ポートから入力されるバッファは、通常のパケットまたは優先パケットであり、例えばパケットヘッダを参照することによりその区別ができる。
【0073】
ルータ装置1は、ラッチ2_1〜2_3と、経路計算回路3_1〜3_3と、バッファ4_1〜4_3と、優先バッファ11_1〜11_3と、優先先行出力検出回路12_1〜12_3と、バッファ選択回路13_1〜13_3と、調停回路6_1〜6_3と、優先出力選択回路14_1〜14_3と、制御記憶回路8と、スイッチ9と、を備える。
【0074】
優先バッファ11_1〜11_3は、それぞれ入力P1〜入力P3に対応する格納部であり、優先パケットをFIFO形式により格納する。また、優先バッファ11_1〜11_3は、サイクル毎に後述の優先先行出力検出回路12_1〜12_3に対して優先パケットの格納状況を通知する。優先バッファ11_1〜11_3は、スイッチ9を介してパケットを出力した場合に当該パケットをバッファから削除する。
【0075】
優先先行出力検出回路12_1は、出力P1に対応し、前述の先行出力検出回路5_1の処理を一部変更した回路である。優先先行出力検出回路12_1は、優先バッファ11_1〜11_3からパケット格納状況が通知されるとともに、各経路計算回路3_1〜3_3から優先パケットの入力の有無、及び優先パケットが有る場合にはその出力ポート番号が供給される。
【0076】
優先先行出力検出回路12_1は、あるサイクルにおいて各入力ポートから出力P1を出力先とする優先パケットがただ一つ入力されたか否か、及び優先バッファ11_1〜11_3の先頭にパケットが格納されているか否か、を判定する。すなわち、優先先行出力検出回路12_1は、優先パケットを処理対象とする。優先先行出力検出回路12_1は、あるサイクルに出力P1への出力を要求するパケットが1つであり、優先バッファ11_1〜11_3が全て空である場合に当該パケットが入力された入力ポート番号を優先出力選択回路14_1に通知する。それ以外の場合、優先先行出力検出回路12_1は、先行出力の対象となるパケットが無い旨を優先出力選択回路14_1に通知する。優先先行出力検出回路12_1による処理の詳細は、図8を参照して後述する。
【0077】
優先先行出力検出回路12_2、優先先行出力検出回路12_3は、それぞれ出力P2、出力P3に対応する判定回路であり、その動作は優先先行出力検出回路12_1と同様である。
【0078】
バッファ選択回路13_1は、優先バッファ11_1及びバッファ4_1に対応づけられて設けられた回路である。バッファ選択回路13_1には、制御記憶回路8から出力許可信号が供給される。バッファ選択回路13_1は、優先バッファ11_1の先頭からパケットを取り出してスイッチ9に供給する。優先バッファ11_1が空である場合、バッファ選択回路13_1は、バッファ4_1からパケットを取り出してスイッチ9に供給する。バッファ選択回路13_2は、優先バッファ11_2及びバッファ4_2に対応づけられて設けられた回路であり、その動作はバッファ選択回路13_1と同様である。バッファ選択回路13_3は、優先バッファ11_3及びバッファ4_3に対応づけられて設けられた回路であり、その動作はバッファ選択回路13_1と同様である。
【0079】
調停回路6_1は、優先バッファ11_1〜11_3の先頭に位置するパケット、バッファ4_1〜4_3の先頭に位置するパケットを用いてパケット調停を行う。この際、調停回路6_1は、優先パケットに対して優先的に出力権を与えるように調停を行う。調停回路6_2及び調停回路6_3についても同様である。
【0080】
優先出力選択回路14_1は、出力P1と対応する選択回路であり、前述の出力選択回路7_1の処理を一部変更した回路である。優先出力選択回路14_1は、調停回路6_1からの入力、及び優先先行出力検出回路12_2からの入力、を基に次のサイクルにおいて出力すべきパケットを選択し、当該パケットが入力された入力ポートの番号を制御記憶回路8に通知する。
【0081】
制御記憶回路8及びスイッチ9の動作は、実施の形態1、2と同等のものである。制御記憶回路8は、優先出力選択回路14_1〜14_3の入力に対応するバッファ選択回路13_1〜13_3に対して出力指示信号を供給する。さらに、制御記憶部8は、記憶している次のサイクルにおいて出力すべきパケットが入力された入力ポート番号を、出力ポート毎にスイッチ9に通知する。スイッチ9は、制御記憶回路8からの入力に応じて配線を切り換え、パケットを出力ポートから出力する。
【0082】
続いて、本実施の形態にかかるルータ装置1によるパケット出力制御を図8のフローチャートを用いて説明する。
【0083】
各優先先行出力検出回路(以下の例では、優先先行出力検出回路12_1を例に説明する。)には、各入力ポートと対応する経路計算回路(3_1〜3_3)からあるサイクルにおける優先パケットの入力有無、及び優先パケットがされた場合にはその優先パケットの出力先の出力ポート番号、が入力される(S1)。さらに、優先先行出力検出回路12_1には、優先バッファ11_1〜11_3から各バッファのパケット格納状況が通知される(S31)。
【0084】
優先先行出力検出回路12_1は、これらの入力を基に先行出力が可能な優先パケットが有るか否かを判定する(S32)。当該判定処理(S32)の詳細は、図9を参照して後述する。
【0085】
先行出力が可能な優先パケットがある場合、優先先行出力検出回路12_1は、当該対象が有る旨を通知する信号を当該優先パケットの入力された入力ポート番号とともに優先出力選択回路14_1に通知する(S32)。一方、先行出力が可能なパケットがない場合、優先先行出力検出回路12_1は、先行出力が可能な優先パケットが無い旨を優先出力選択回路14_1に通知する(S32)。
【0086】
S31及びS32と並行して、詳細にはS31及びS32を行ったサイクルと同一サイクルにて、各調停回路(以下の例では、調停回路6_1を例に説明する。)は、バッファ4_1〜4_3及び優先バッファ11_1〜11_3の先頭に格納されているパケットのうち、対応する出力ポートを出力先とするパケットが有るか否か、すなわち調停対象のパケットが有るか否かを判定する(S33)。
【0087】
調停対象となるパケットが有る場合(S33:Yes)、調停回路6_1は、調停対象となるパケットから次のサイクルにて出力するパケットを、優先パケットを優先するようにして選択する調停処理を行う(S34)。一方、調停対象となるパケットが無い場合(S33:No)、調停回路6_1は、パケット調停処理を行わない。調停回路6_1は、調停処理の実施の有無、調停処理を行った場合には調停結果である入力パケット番号を優先出力選択回路14_1に通知する。
【0088】
続くS35〜S41の処理を各優先出力選択回路(以下の説明では、優先出力選択回路14_1を例に説明する)にて行う。優先出力選択回路14_1は、はじめに調停回路6_1において優先パケットが出力権を獲得したか否かを判定する(S35)。優先パケットが出力権を獲得した場合(S35:Yes)、優先出力選択回路14_1は、出力権を獲得した優先パケットが入力された入力ポート番号を制御記憶回路8に記憶させる(S36)。
【0089】
一方、優先パケットが出力権を獲得しなかった場合(S35:No)、優先出力選択回路14_1は、優先先行出力検出回路12_1にて先行出力対象となった優先パケットが有るか否かを判定する(S37)。
【0090】
優先先行出力の対象となった優先パケットが有る場合(S37:Yes)、優先出力選択回路14_1は、先行出力対象となった優先パケットが入力された入力ポート番号を制御記憶回路8に記憶させる(S38)。
【0091】
先行出力対象となった優先パケットが無い場合(S37:No)、優先出力選択回路14_1は、調停回路6_1において通常のパケットが出力権を獲得したか否かを判定する(S39)。
【0092】
通常のパケットが出力権を獲得した場合(S39:Yes)、優先出力選択回路14_1は、出力権を獲得した当該通常のパケットが入力された入力ポート番号を制御記憶回路8に記憶させる(S40)。
【0093】
一方、通常のパケットが出力権を獲得しなかった場合(S39:No)、優先出力選択回路14_1は、出力P1から次のサイクルにおいて出力すべきパケットが無いことを制御記憶回路8に書き込む(S41)。
【0094】
続いて、優先先行出力判定処理(S32)の詳細を、図9のフローチャートを参照して説明する。優先出力選択回路14_1は、入力P1に対応する優先バッファ11_1が空になっているか否かを判定する(S51)。
【0095】
優先バッファ11_1が空ではない場合(S51:No)、優先出力選択回路14_1は、先行出力対象を設定しない。一方、優先バッファ11_1が空である場合(S51:Yes)、優先先行出力検出回路12_1は、入力P1に優先パケットのヘッダが入力されたか否かを判定する(S52)。
【0096】
優先パケットのヘッダが入力されていない場合(S52:No)、優先出力選択回路14_1は、先行出力対象を設定しない。一方、優先パケットのヘッダが入力されている場合(S52:Yes)、優先出力選択回路14_1は、経路計算回路3_1にて算出された出力ポート番号が出力P1のポート番号と等しいか否かを判定する(S53)。
【0097】
ポート番号が合致しない場合(S53:No)、優先出力選択回路14_1は、先行出力対象を設定しない。一方、ポート番号が合致する場合(S53:Yes)、優先出力選択回路14_1は、入力P1から入力された優先パケットを先行出力の候補と判定する(S54)。
【0098】
上述のS51〜S54では、優先出力選択回路14_1は、入力P1に関する先行出力候補の判定処理を行った。この処理と並行して、優先出力選択回路14_1は、入力P2に対応する処理(S55〜S58)及び入力P3に対応する処理(S59〜S62)を行う。
【0099】
優先出力選択回路14_1は、全ての入力ポートから選択した先行出力候補のパケットの合計が1つであるかを確認する(S63)。先行出力候補の優先パケットが1つである場合(S63:Yes)、優先出力選択回路14_1は、当該優先パケットを先行出力対象のパケットに決定する(S64)。一方、先行出力候補の優先パケットが1つではない場合(S63:No)、優先出力選択回路14_1は、先行出力対象となる優先パケットが無いと判定する(S65)。複数の先行出力候補となる優先パケットが有る場合、これらの優先パケットは次のサイクルにおいて調停回路による調停の対象となる。
【0100】
続いて、図7及び図10を参照して、本実施の形態にかかるルータ装置の具体的な動作例について説明する。図10は、サイクルtにおいて入力P1から出力P3を出力先とする優先パケットが入力された際の動作例を示すタイムチャートである。本例では、サイクルt−1において通常のパケットが入力P2から入力され、バッファ4_2に格納されている。さらに、本例では、サイクルtにおいて、他の入力ポート(入力P2、入力P3)からの入力はない。優先バッファ11_1〜11_3は、空である。図10におけるA〜Iは、図7における各点(A〜I)における通過信号を示している。
【0101】
サイクルtにおいて入力P1から優先パケットのヘッダがラッチ2_1に入力される(図10A参照)。この優先パケットのヘッダは、サイクルt+1においてラッチ2_1から出力される。出力された優先パケットのヘッダは、経路計算回路3_1により経路計算が行われた後に優先バッファ11_1に格納される(図10B参照)。
【0102】
この優先バッファ11_1への格納と同時に、優先パケットのヘッダは優先先行出力検出回路12_3にも供給される。優先先行出力検出回路12_3は、各経路計算回路から入力された優先パケットのヘッダ、及び優先バッファ11_1〜11_3のバッファ格納状況から先行出力対象となる優先パケットが有るかを判定する。優先バッファ11_1〜11_3が空であるため、優先先行出力検出回路12_3は、サイクルtにおいて入力された優先パケットを先行出力対象と判定し、入力ポート番号"1"をサイクルt+1に優先出力選択回路14_3に供給する(図10C参照)。
【0103】
サイクルt+1において、調停回路6_3は、調停処理を行う。調停回路6_3には、各優先バッファ及びバッファからパケット格納状況が通知される。例えば、調停回路6_3には、サイクルtにおいて、入力P1に対応する優先パケット11_1に格納されているパケットが無いことが通知される(図10D参照)。調停回路6_3には、サイクルtにおいて、入力P2に対応するバッファ4_2に出力P3を出力先とするパケットが有ることが通知される(図10E参照)。
【0104】
調停回路6_3は、サイクルt+1における調停処理の結果として入力P2の通常パケット("2N")に出力権を与えたことを優先出力選択回路14_3に通知する(図10F参照)。
【0105】
優先出力選択回路14_3は、サイクルt+1において、優先先行出力検出回路12_3からの入力("1")、及び調停回路6_3からの入力("2N")を基に、出力対象のパケットをサイクルtにおいて入力P1から入力された優先パケットとする。すなわち、優先出力選択回路14_3は、サイクルt+1において、"1"を制御記憶回路8に出力する(図10G参照)。
【0106】
制御記憶回路8は、サイクルt+2において、バッファ選択回路13_1に対して出力許可信号を通知する(図10H参照)。これにより、優先バッファ11_1に格納されているパケットのヘッダ、すなわち先行出力対象となった優先パケットのヘッダは調停回路による調停の対象となることなく、スイッチに供給される。スイッチを通過したパケットのヘッダは、サイクルt+2においてルータ装置1から出力される(図10I参照)。
【0107】
続いて、本実施の形態にかかるルータ装置の効果について説明する。本実施の形態にかかるルータ装置は、図10に示したように、既に格納されている通常のパケットよりも優先して優先パケットを出力するように出力パケットを選択する。これにより、調停処理を短縮できるとともに、優先度の高いパケットを優先的に出力することが可能になる。
【0108】
<実施の形態4>
本実施の形態にかかるルータ装置は、優先パケットに対応し、かつソースルーティング方式に対応するものである。本実施の形態にかかるルータ装置の構成を図11に示す。なお、図11において、同一名及び同一符号を付した処理部、回路は実施の形態1、2、3と同様の処理を行う。そのため、重複する説明は適宜省略する。
【0109】
ルータ装置1は、バッファ4_1〜4_3と、優先バッファ11_1〜11_3と、優先先行出力検出回路12_1〜12_3と、バッファ選択回路13_1〜13_3と、調停回路6_1〜6_3と、優先出力選択回路14_1〜14_3と、経路更新回路10_1〜10_3と、制御記憶回路8と、スイッチ9と、を備える。各回路、処理部の動作は、前述の実施の形態1〜3と同様であるため、詳細な説明は省略する。
【0110】
本実施の形態にかかるルータ装置1は、実施の形態3と同様に優先バッファ11_1〜11_3を備え、既に格納されている通常のパケットよりも優先パケットを優先的に処理することができる。さらに、本実施の形態にかかるルータ装置1は、実施の形態2と同様に経路更新回路10_1〜10_3を備える構成であるため、ルータ通過に要するレイテンシを削減することができる。
【0111】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の例では、3つの出力ポートを持つルータ装置について説明したが、これに限られず、1以上の任意数の出力ポートを持つルータ装置に本発明を適応することが可能である。また、ルータ装置を、制御記憶回路を介さずに、出力選択回路または優先出力選択回路の判定結果をスイッチ等に通知するように構成することも可能である。
【符号の説明】
【0112】
1 ルータ装置
2_1〜2_3 ラッチ
3_1〜3_3 経路計算回路
4_1〜4_3 バッファ
5_1〜5_3 先行出力検出回路
6_1〜6_3 調停回路
7_1〜7_3 出力選択回路
8 制御記憶回路
9 スイッチ
10_1〜10_3 経路更新回路
11_1〜11_3 優先バッファ
12_1〜12_3 優先先行出力検出回路
13_1〜13_3 バッファ選択回路
14_1〜14_3 優先出力選択回路
【特許請求の範囲】
【請求項1】
複数の入力ポートと、第1の出力ポートを有し、前記第1の出力ポートの出力権限を制御する調停処理を行うルータ装置であって、
あるサイクルにおける前記第1の出力ポートへの出力を要求する入力パケットが、前記ルータ装置において前記第1の出力ポートへの出力を要求する唯一のパケットである場合に、当該パケットを前記調停処理の対象とせずに出力する先行出力対象パケットと決定する、ルータ装置。
【請求項2】
出力待ちとなるパケットを一時的に保持する記憶部と、
前記サイクルにおける前記第1の出力ポートへの出力を要求するパケットの入力状態と、前記記憶部の格納状態と、に基づいて前記先行出力対象パケットを検出する先行出力検出回路と、
前記先行出力対象パケットを検出した場合に当該パケットを前記第1の出力ポートから出力するパケットと決定し、前記先行出力対象パケットを検出しなかった場合に前記調停処理に基づいて前記第1の出力ポートから出力するパケットを決定する出力選択回路と、
前記出力選択部の決定に基づいて、前記第1の出力ポートへの配線切替えを制御するスイッチ部と、を備えること、
を特徴とする請求項1に記載のルータ装置。
【請求項3】
前記先行出力検出回路は、前記サイクルにおいて、前記記憶部にて出力待ちとなっているパケットがなく、前記第1の出力ポートを出力先とするパケットの入力が1つである場合に、当該パケットを前記先行出力対象パケットとして検出すること、
を特徴とする請求項2に記載のルータ装置。
【請求項4】
前記先行出力検出回路は、前記サイクルにおいて、前記記憶部に優先的に送信されるべき優先パケットがなく、前記第1の出力ポートを出力先とする前記優先パケットの入力が1つである場合に、当該優先パケットを前記先行出力対象パケットとして検出すること、
を特徴とする請求項2に記載のルータ装置。
【請求項5】
前記調停処理を行う調停回路を備え、
前記調停回路は、前記優先パケットに優先的に前記第1の出力ポートからの出力権限を与えること、
を特徴とする請求項4に記載のルータ装置。
【請求項6】
サイクル単位での前記第1の出力ポートの出力にかかるパケットの情報を記憶し、当該情報を前記スイッチ部に通知する制御記憶回路を備え、
前記出力選択部は、前記第1の出力ポートから出力するパケットの決定情報を前記制御記憶回路に書込むこと、
を特徴とする請求項2乃至請求項5のいずれか1項に記載のルータ装置。
【請求項7】
第2の出力ポートと、
前記複数の入力パケットのいずれかに入力されたパケットのヘッダ情報から出力すべき出力ポートを決定する経路計算回路と、を備えること、
を特徴とする請求項2乃至請求項6のいずれか1項に記載のルータ装置。
【請求項8】
第2の出力ポートを備え、
前記ルータ装置に入力されるパケットに通信経路情報が含まれていること、
を特徴とする請求項2乃至請求項6のいずれか1項に記載のルータ装置。
【請求項9】
前記通信経路情報から既に通過した経路にかかる情報を削除する経路更新回路を備えること、
を特徴とする請求項8に記載のルータ装置。
【請求項10】
複数の入力ポートと、第1の出力ポートを有し、前記第1の出力ポートの出力権限を制御する調停処理を行うルータ装置の制御方法であって、
あるサイクルにおける前記第1の出力ポートへの出力を要求する入力パケットが、前記ルータ装置において前記第1の出力ポートへの出力を要求する唯一のパケットである場合に、当該パケットを前記調停処理の対象とせずに出力する先行出力対象パケットと決定する、制御方法。
【請求項1】
複数の入力ポートと、第1の出力ポートを有し、前記第1の出力ポートの出力権限を制御する調停処理を行うルータ装置であって、
あるサイクルにおける前記第1の出力ポートへの出力を要求する入力パケットが、前記ルータ装置において前記第1の出力ポートへの出力を要求する唯一のパケットである場合に、当該パケットを前記調停処理の対象とせずに出力する先行出力対象パケットと決定する、ルータ装置。
【請求項2】
出力待ちとなるパケットを一時的に保持する記憶部と、
前記サイクルにおける前記第1の出力ポートへの出力を要求するパケットの入力状態と、前記記憶部の格納状態と、に基づいて前記先行出力対象パケットを検出する先行出力検出回路と、
前記先行出力対象パケットを検出した場合に当該パケットを前記第1の出力ポートから出力するパケットと決定し、前記先行出力対象パケットを検出しなかった場合に前記調停処理に基づいて前記第1の出力ポートから出力するパケットを決定する出力選択回路と、
前記出力選択部の決定に基づいて、前記第1の出力ポートへの配線切替えを制御するスイッチ部と、を備えること、
を特徴とする請求項1に記載のルータ装置。
【請求項3】
前記先行出力検出回路は、前記サイクルにおいて、前記記憶部にて出力待ちとなっているパケットがなく、前記第1の出力ポートを出力先とするパケットの入力が1つである場合に、当該パケットを前記先行出力対象パケットとして検出すること、
を特徴とする請求項2に記載のルータ装置。
【請求項4】
前記先行出力検出回路は、前記サイクルにおいて、前記記憶部に優先的に送信されるべき優先パケットがなく、前記第1の出力ポートを出力先とする前記優先パケットの入力が1つである場合に、当該優先パケットを前記先行出力対象パケットとして検出すること、
を特徴とする請求項2に記載のルータ装置。
【請求項5】
前記調停処理を行う調停回路を備え、
前記調停回路は、前記優先パケットに優先的に前記第1の出力ポートからの出力権限を与えること、
を特徴とする請求項4に記載のルータ装置。
【請求項6】
サイクル単位での前記第1の出力ポートの出力にかかるパケットの情報を記憶し、当該情報を前記スイッチ部に通知する制御記憶回路を備え、
前記出力選択部は、前記第1の出力ポートから出力するパケットの決定情報を前記制御記憶回路に書込むこと、
を特徴とする請求項2乃至請求項5のいずれか1項に記載のルータ装置。
【請求項7】
第2の出力ポートと、
前記複数の入力パケットのいずれかに入力されたパケットのヘッダ情報から出力すべき出力ポートを決定する経路計算回路と、を備えること、
を特徴とする請求項2乃至請求項6のいずれか1項に記載のルータ装置。
【請求項8】
第2の出力ポートを備え、
前記ルータ装置に入力されるパケットに通信経路情報が含まれていること、
を特徴とする請求項2乃至請求項6のいずれか1項に記載のルータ装置。
【請求項9】
前記通信経路情報から既に通過した経路にかかる情報を削除する経路更新回路を備えること、
を特徴とする請求項8に記載のルータ装置。
【請求項10】
複数の入力ポートと、第1の出力ポートを有し、前記第1の出力ポートの出力権限を制御する調停処理を行うルータ装置の制御方法であって、
あるサイクルにおける前記第1の出力ポートへの出力を要求する入力パケットが、前記ルータ装置において前記第1の出力ポートへの出力を要求する唯一のパケットである場合に、当該パケットを前記調停処理の対象とせずに出力する先行出力対象パケットと決定する、制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−186539(P2012−186539A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−46463(P2011−46463)
【出願日】平成23年3月3日(2011.3.3)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願日】平成23年3月3日(2011.3.3)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]