説明

パケット転送装置及びパケット転送方法

【課題】複数の転送待ちのパケットが有する、パケットの転送に使用される情報を更新する場合に、全てのパケットの情報を時間をかけることなく更新すること。
【解決手段】本発明にかかるパケット転送装置は、送信先への到着期限までの残り時間を示す残時間情報を有するパケットを、送信元から受信して、送信先に転送するパケット転送装置である。パケット転送装置は、パケットが一時的に格納される複数のパケット記憶部と、複数のパケット記憶部に格納されたパケットのうち、残時間情報が示す残り時間のより少ないパケットを優先的に転送する転送制御部とを備える。複数のパケット記憶部は、所定のタイミングで当該複数のパケット記憶部に同時に入力される指示信号に応じて、パケット記憶部に格納されたパケットが有する残時間情報が示す残り時間が少なくなるように残時間情報を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット転送装置及びパケット転送方法に関する。
【背景技術】
【0002】
携帯端末及び制御装置等の組み込み機器において、高機能化、高性能化、及び低電力化の要求が強くなってきている。そのため、組み込み機器においても、マルチコア化が進んできている。マルチコア構成は、デスクトップPC(Personal Computer)でも採用が進んでいる構成である。
【0003】
また、マルチコア化に伴い、ネットワークオンチップ(Network On Chip(NoC))技術の採用も進んでいる。NoCでは、ネットワークスイッチを用いたネットワークでコア間通信を実現する。今後、コア間通信におけるネットワークスイッチは、組み込み用のプラットフォームとして期待が持てる。しかしながら、組み込み機器に必要な実時間性を実現するためには、コア間通信路に実時間性を保証する機構を設けるか、システムの最大性能を平均的な処理に必要な性能以上に高くする等、冗長な性能を準備する必要がある。例えば、外部I/O、メモリ、及びコア間の通信路におけるネットワークスイッチに、実時間性を保証する通信機構を備えることができれば、組み込み機器に必要な実時間性の実現に非常に有効である。
【0004】
特許文献1には、特に輻輳時において、必要なパケットのみに限定したパケットの処理や転送が可能となり、パケット網全体の信頼性が向上するパケット転送処理方式が開示されている。以下、このパケット転送処理方式の処理手順について説明する。
【0005】
まず、新たなパケットが到着したときに、パケットの許容可能な処理時間に基づいて、許容可能な処理時間の小さなものから順にチェイン状に配列されるように、蓄積部に蓄積されたパケットの転送待ちキューの配列を行う。この処理時間は、パケットのヘッダ部に設定された許容処理時間情報によって示される。各パケットの許容可能な処理時間は、その処理時間の基本単位であるクロックの到来毎に1カウントずつ減算されてゆく。蓄積部から送出される以前に許容可能な処理時間が経過してしまったパケットの廃棄の可否が、ヘッダ部に設定された処理種別に基づいて判別される。そして、パケットが廃棄可能であれば、そのパケットを配列より取り出して廃棄する。
【0006】
上述したように、特許文献1に開示のパケット転送処理方式では、許容可能な処理時間を基本単位としたクロックの到来に応じて、各パケットの許容可能な処理時間を1カウントずつ減算するようにしている。しかしながら、特許文献1には、クロックの到来に応じて、全てのパケットの許容可能な処理時間をどのように減算していくかについては、具体的に述べられていない。
【0007】
ここで、例えば、各パケットの許容可能な処理時間を順番に減算していくようにしている場合について考える。この場合、パケットの許容可能な処理時間の減算を開始してから、全てのパケットの許容可能な処理時間の減算が完了するまでに、一定の時間がかかってしまうことになる。よって、全てのパケットの許容可能な処理時間の減算が完了するまでに、新たなパケットが到着したときには、許容可能な処理時間を減算済みのパケットと、許容可能な処理時間を減算済みでないパケットとが混在した転送待ちキューに対して、新たなパケットの配列が行われてしまい、期待した順序で転送待ちキューが配列されなくなってしまう。その結果、期待した順序でパケットを転送することができなくなってしまうという問題がある。
【0008】
このように、複数の転送待ちのパケットが有する、パケットの転送に使用される情報を更新する場合に、全てのパケットの情報の更新に時間がかかってしまうと、不整合が生じてしまうという問題がある。特に、NoCのように、高速動作を行うハードウェアでの実装を前提としたネットワーク環境においては、パケットの送受信頻度も極めて高くなる。そのため、上述したようなパケットの転送に関する情報の更新に時間をかける余裕はなく、全てのパケットの情報を同期して更新することが特に必要となる。
【0009】
ここで、パケットの転送に関する技術を開示したものとして、以下の特許文献2〜6もある。
【0010】
特許文献2に開示の技術は、パケットに、パケットが目的地に着くまでの遅延時間の上限値Tmaxを示すエリアと、出発地を起点に現時点までの経過時間Tacmを示すエリアを設けている。そして、Tmax−Tacmがある値以上の時は、優先度クラスに対応する送出待ち行列に加え、Tmax−Tacmがある値以下になった時は、優先度クラスより高優先度の送出待ち行列に加えるようにしている。
【0011】
特許文献3に開示の技術は、パケットごとに優先度(=移動局の受信品質×1/パケットの残余時間)を算出する。そして、優先度が最大であるパケットの格納されているキューを選択する。
【0012】
特許文献4に開示の技術は、必着時刻指定の転送要求の残り時間を管理し、管理結果に基づいて目的ノードに対する転送優先順位を任意に変更する。
【0013】
特許文献5に開示の技術は、複数の情報処理装置間で実時間通信を行う場合において、通信ノード(情報処理装置)毎に優先度に応じた通信パケットの追い越しを行う。その際に通信ノード毎に優先度を付け替え、さらに優先度毎に異なる経路を設定できるようにしている。
【0014】
特許文献6には、複数の入力ポートから入力された通信パケットを複数の出力ポートへ出力するスイッチ部が開示されている。スイッチ部は、空間スイッチと、時間スイッチとで構成されている。空間スイッチは、通信パケットに付与された宛先アドレスに対応してその経路を切り替える。時間スイッチは、複数の通信パケットの順序を任意に入れ替え可能である。時間スイッチは、複数の通信パケットの順序が各通信パケットに付与された送達希望時刻に対応する順序となるように制御される。
【0015】
しかしながら、特許文献2〜6のいずれも、複数の転送待ちのパケットが有する、パケットの転送に使用される情報を更新する場合に、全てのパケットの情報を時間をかけることなく更新する技術を具体的に開示したものではない。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開平01−133447号公報
【特許文献2】特開平62−028905号公報
【特許文献3】特開2004−147275号公報
【特許文献4】特開62−217749号公報
【特許文献5】特開2000−228677号公報
【特許文献6】特開2000−078188号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
背景技術として説明したように、複数の転送待ちのパケットが有する、パケットの転送に使用される情報を更新する場合に、全てのパケットの情報の更新に時間がかかってしまうと、不整合が生じてしまうという問題がある。
【課題を解決するための手段】
【0018】
本発明の第1の態様にかかるパケット転送装置は、送信先への到着期限までの残り時間を示す残時間情報を有するパケットを、送信元から受信して、前記送信先に転送するパケット転送装置であって、前記パケットが一時的に格納される複数のパケット記憶部と、
前記複数のパケット記憶部に格納されたパケットのうち、前記残時間情報が示す残り時間のより少ないパケットを優先的に転送する転送制御部と、を備え、前記複数のパケット記憶部は、所定のタイミングで当該複数のパケット記憶部に同時に入力される指示信号に応じて、当該パケット記憶部に格納されたパケットが有する残時間情報が示す残り時間が少なくなるように前記残時間情報を更新するものである。
【0019】
本発明の第2の態様にかかるパケット転送方法は、送信先への到着期限までの残り時間を示す残時間情報を有するパケットを、送信元から受信して、前記送信先に転送するパケット転送方法であって、所定のタイミングで複数のパケット記憶部に同時に指示信号を入力し、前記複数のパケット記憶部が、前記指示信号に応じて、当該パケット記憶部に格納されたパケットが有する残時間情報が示す残り時間が少なくなるように前記残時間情報を更新し、前記複数のパケット記憶部に格納されたパケットのうち、前記残時間情報が示す残り時間のより少ないパケットを優先的に転送するものである。
【0020】
これによれば、複数のパケット記憶部のそれぞれに格納された残時間情報を更新する場合に、全てのパケットにおける残時間情報を同期して更新することができる。ここで、残時間情報は、パケットの転送に使用される情報となる。
【発明の効果】
【0021】
上述した本発明の各態様によれば、複数の転送待ちのパケットが有する、パケットの転送に使用される情報を更新する場合に、全てのパケットの情報を時間をかけることなく更新することができるパケット転送装置及びパケット転送方法を提供することができる。
【図面の簡単な説明】
【0022】
【図1】本発明の実施の形態1にかかるマルチコアシステムの構成図である。
【図2】本発明の実施の形態1にかかるノード及びネットワークスイッチの接続関係を示す図である。
【図3】本発明の実施の形態1にかかるパケットの構成を示す図である。
【図4】本発明の実施の形態1にかかるネットワークスイッチの構成図である。
【図5】本発明の実施の形態1にかかるパケットバッファのヘッダ部の構成図である。
【図6A】本発明の実施の形態1にかかる入力制御部の処理を示すフローチャートである。
【図6B】本発明の実施の形態1にかかる出力制御部の処理を示すフローチャートである。
【図7】本発明の実施の形態2にかかるネットワークスイッチの構成図である。
【図8A】本発明の実施の形態2にかかる入力制御部及びDeMux部の処理を示すフローチャートである。
【図8B】本発明の実施の形態2にかかるArbiter部及びMux部の処理を示すフローチャートである。
【図9】本発明の実施の形態1にかかるネットワークスイッチを2×2とした構成図である。
【図10】本発明の実施の形態3にかかるネットワークスイッチの構成図である。
【発明を実施するための形態】
【0023】
発明の実施の形態1.
まず、図1を参照して、本発明の実施の形態1にかかるマルチコアシステム1について説明する。図1は、本発明の実施の形態1にかかるマルチコアシステム1の構成図である。
【0024】
マルチコアシステム1は、処理要素(PE:Processing Element)ノード2a〜2e、I/O(Input/Output)ノード3a、3b、メモリノード4a、4b、通信路(NoC)5、及びグローバルタイマ6を有する。通信路5には、複数のネットワークスイッチ(図示せず)が含まれている。処理要素ノード2a〜2e、I/Oノード3a、3b、メモリノード4a、4bのそれぞれは、通信路5を介して相互に接続されている。マルチコアシステム1は、例えば、1つの半導体チップ上に構成される。
【0025】
処理要素ノード2a〜2eのそれぞれは、例えば、プロセッサコア又はプロセッサ等の演算装置である。処理要素ノード2a〜2eのそれぞれは、データ書き込み要求パケット又はデータ読み出し要求パケットを生成してI/Oノードに出力する。データ書き込み要求パケットは、I/Oデバイスへのデータ書き込みを要求するパケットであり、データ読み出し要求パケットは、I/Oデバイスからのデータ読み出しを要求するパケットである。データ書き込み要求パケットは、I/Oデバイスに書き込むデータを含む。
【0026】
また、処理要素ノード2a〜2eのそれぞれは、データ書き込み要求パケット又はデータ読み出し要求パケットを生成してメモリノードに送信する。データ書き込み要求パケットは、メモリへのデータ書き込みを要求するパケットであり、データ読み出し要求パケットは、メモリからのデータ読み出しを要求するパケットである。データ書き込み要求パケットは、メモリに書き込むデータを含む。
【0027】
I/Oノード3a、3bのそれぞれは、例えば、I/Oデバイスを制御するI/Oコントローラである。I/Oノード3a、3bのそれぞれは、処理要素ノードからのデータ書き込み要求パケットに応じて、I/Oデバイスにデータを書き込む。なお、ここで書き込まれるデータは、データ書き込み要求パケットに含まれていたデータとなる。また、I/Oノード3a、3bのそれぞれは、処理要素ノードからのデータ読み出し要求パケットに応じて、I/Oデバイスからデータを読み出す。そして、I/Oノード3a、3bのそれぞれは、読み出したデータを含めたパケットを、データ読み出しを要求した処理要素ノードに送信する。パケットの内容によってはデータ読み出しを要求した処理要素ノードとは別のノードにデータを送信することも考えられる。
【0028】
メモリノード4a、4bのそれぞれは、例えば、メモリコントローラである。メモリノード4a、4bのそれぞれは、処理要素ノードからのデータ書き込み要求パケットに応じて、メモリにデータを書き込む。なお、ここで書き込まれるデータは、データ書き込み要求パケットに含まれていたデータとなる。また、メモリノード4a、4bのそれぞれは、処理要素ノードからのデータ読み出し要求パケットに応じて、メモリからデータを読み出す。そして、メモリノード4a、4bのそれぞれは、読み出したデータを含めたパケットを、データ読み出しを要求した処理要素ノードに送信する。パケットの内容によってはデータ読み出しを要求した処理要素ノードとは別のノードにデータを送信することも考えられる。
【0029】
I/Oノード3a、3bのそれぞれは、データ書き込み要求パケット又はデータ読み出し要求パケットを生成してメモリノードに送信するように構成することも可能である。
【0030】
通信路5は、各ノード2a〜2e、3a、3b、4a、4b間で、パケットを相互に伝送する。通信路5は、各パケットの転送先を切り替えるネットワークスイッチ(図示せず)を有している。ネットワークスイッチについては、後述する。
【0031】
グローバルタイマ6は、絶対時刻を示す絶対時刻情報を、各ノード2a〜2e、3a、3b、4a、4b、及び通信路5に出力する。
【0032】
ここで、マルチコアシステムにおける通信のように、実時間性が要求される通信においては、パケットが送信先のノードへの到着すべき時刻(以下、「送達時刻」と言う)より前に届く必要がある。そこで、パケットの送信元のノードは、余裕時間(以下、「マージン」とも言う)をパケットの優先度としてパケットに設定する。ここで、余裕時間とは、送達時刻と現在時刻の差である。本実施の形態1では、パケットに設定されたマージンをネットワークスイッチでのパケットの滞留時間に応じて更新することで、パケットの優先度が適切になるように制御する。
【0033】
ここで、パケットの生成時刻から、そのパケットの送達時刻が相対的に決定される場合、現在時刻とは無関係にマージンを設定することも可能である。例えば、処理要素ノードがメモリから一定時間内にデータを取得する必要がある場合、データ読み出し要求パケットがその時間に応じた時間内にメモリノードに到着している必要がある。より具体的には、処理要素ノードがメモリから1msec以内にデータを取得する必要があり、そのために500μsec以内にメモリノードにデータ読み出し要求パケットが到達している必要がある場合、現在時刻とは無関係にマージンとして単純に500μsecを設定すればよい。
【0034】
このようなパケットのみを取り扱う場合は、絶対時刻を各ノード2a〜2e、3a、3b、4a、4b、及び通信路5に含まれるネットワークスイッチ(図示せず)で共有する必要はなく、時間の最小単位の間隔(例えば、1msec又は1μsec等)を共有しておけばよい。言い換えると、ノードが設定する余裕時間の単位と、ネットワークスイッチで余裕時間を更新する単位とを一致させておけばよい。
【0035】
一方で、パケットの生成時刻に関係なく、そのパケットの送達時刻が、ある絶対時刻として決定されている場合、送達時刻と現在時刻との差を算出してマージンとして設定する必要がある。例えば、処理要素ノードが予め定められた絶対時刻におけるI/Oデバイスのデータを取得する必要がある場合、その時刻までにデータ読み出し要求パケットがI/Oノードに到達している必要がある。より具体的には、処理要素ノードがI/Oデバイスから、絶対時刻t1におけるデータを取得する必要があり、現在時刻がt0である場合、絶対時刻から現在時刻を減算したt1−t0をマージンとして設定する必要がある。
【0036】
このようなパケットを取り扱う場合は、絶対時刻を各ノード2a〜2e、3a、3b、4a、4b、及びネットワークスイッチで共有する必要がある。これは、本実施の形態1に示すように、グローバルタイマから絶対時刻情報を各ノード2a〜2e、3a、3b、4a、4b、及びネットワークスイッチにブロードキャストで出力することによって、各ノード2a〜2e、3a、3b、4a、4b、及びネットワークスイッチで共通の絶対時刻を認識可能とすることで実現することができる。なお、各ノード2a〜2e、3a、3b、4a、4b、及びネットワークスイッチで絶対時刻を共有する方法は、これに限られない。例えば、それぞれのノード及びネットワークスイッチが現実世界の絶対時刻に正確に一致している時計を有するようにすることで実現することも可能である。なお、時間の最小単位の間隔のみ共有する場合は、グローバルタイマ6は不要となる。
【0037】
このように、本実施の形態にかかるパケット転送方式は、時間の最小単位の間隔のみ共有する場合、絶対時刻を共有する場合のいずれの場合にも適用可能である。
【0038】
続いて、図2を参照して、本発明の実施の形態1にかかるノード及びネットワークスイッチの接続関係について説明する。図2は、本発明の実施の形態1にかかるノード及びネットワークスイッチの接続関係を示す図である。なお、図2では、ノード2c〜2e、3b、4bの図示は省略している。
【0039】
複数のネットワークスイッチ10のそれぞれは、ネットワーク上に2次元配列状に配置される。この場合、1つのネットワークスイッチ10には、最大で4つのネットワークスイッチが接続されることになる。また、1つのネットワークスイッチ10には、1つのノードが接続される。例えば、処理要素ノード2aからI/Oノード3aにパケットを送信する場合、2つのネットワークスイッチ10を介してパケットが転送される。
【0040】
ネットワークスイッチの接続関係は図2の2次元配列状には限定されない。これ以外のツリー状、トーラス状、スター状等任意のトポロジとしてもよい。その場合、ネットワークスイッチにはトポロジに応じた数のネットワークスイッチが接続されることになる。
【0041】
続いて、図3を参照して、本発明の実施の形態1にかかるパケットの構成について説明する。図3は、本発明の実施の形態1にかかるパケットの構成を示す図である。
【0042】
パケットは、Dst.IDフィールド、Src.IDフィールド、Lengフィールド、Typeフィールド、Priorityフィールド、及びPayloadフィールドを含む。本実施の形態1では、パケットの種類として、ノーマルパケットとリアルタイムパケットの2種類がある。Dst.IDフィールド、Src.IDフィールド、及びLengフィールドは、パケットの種類のよらず共通である。Dst.ID、Src.ID、Leng、Type、Priorityの各フィールドを含む部分をパケットのヘッダと呼ぶ。
【0043】
ayload時間内にメモリノードに到達している必要がある。例え Dst.IDフィールドは、パケットの送り先のノードを示すIDが格納される。
Src.IDフィールドは、パケットの送り元のノードを示すIDが格納される。
Lengは、パケット長を示す値が格納される。
【0044】
Typeフィールドは、パケットがノーマルパケットかリアルタイムパケットかを示す指定値が格納される。リアルタイムパケットは、ノーマルパケットより常に優先度が高い。つまり、リアルタイムパケットは、ノーマルパケットより優先的に転送される。ノーマルパケットの指定値Type Nと、リアルタイムパケットの指定値Type RTとの関係は、
Type N > Type RT
となる。したがって、Typeフィールドの指定値の比較した結果、指定値の小さいパケットを転送することで、リアルタイムパケットを優先的に転送することができる。また、リアルタイムパケット同士の関係においても、異なる指定値を設定するようにして、優先度付けを行うようにしてもよい。ノーマルパケット同士の関係においても同様である。
【0045】
Priorityフィールドは、パケットの優先度を示す値が格納される。同じ種類のパケット同士では、Priorityフィールドの値が小さいパケット程、より優先的に転送される。リアルタイムパケットでは、パケットが送信先のノードに到着すべき時刻までの余裕時間(マージン)がPriorityフィールドに設定される。ノーマルパケットでは、余裕時間と関係なく、単純に優先度付けのための値を任意にPriorityフィールドに設定するようにしてよい。
【0046】
Payloadフィールドは、パケットで伝送すべき情報の本体が格納される。このフィールドは、可変長であり、Lengフィールドの値に依存して長さが変化する。
【0047】
続いて、図4を参照して、本発明の実施の形態1にかかるネットワークスイッチ10の構成について説明する。図4は、本発明の実施の形態1にかかるネットワークスイッチ10の構成図である。図2に示すように、2次元配列状のトポロジを有するネットワークの場合、ネットワークスイッチは、5×5の構成が一般的であるが、図3では、4×4の構成である場合について例示している。なお、4×4のネットワークスイッチと言った場合、4つの入力ポートと4つの出力ポートとを有するネットワークスイッチのことである。なお、ネットワークスイッチのポート数は、これに限られない。入力ポート数及び出力ポート数を任意の数としたN×Nのネットワークスイッチに拡張することができることは自明である。ここで、Nは、2以上の正整数である。
【0048】
ネットワークスイッチ10は、入力制御部(Input Control)11a〜11d、パケットバッファ(PKT_Buf)12a〜12h、TickGen部13、出力制御部14a〜14dを有する。ネットワークスイッチ10は、パケット転送装置に対応する。
【0049】
ネットワークスイッチの入力ポート(Input Port)は、隣接するネットワークスイッチの出力ポート、又は、そのネットワークスイッチと接続されるノードの出力ポートに接続される。ネットワークスイッチの出力ポート(Output Port)は、隣接するネットワークスイッチの入力ポート、又は、そのネットワークスイッチと接続されるノードの入力ポートに接続される。ここで、ネットワークスイッチに隣接するネットワークスイッチとは、ネットワークスイッチと接続されたネットワークスイッチのことになる。
【0050】
入力制御部11a〜11dのそれぞれは、入力ポートから入力されるパケットの入力制御を行う。具体的には、入力制御部11aは、入力ポート1(Input Port1)から入力されるパケットの入力制御を行い、入力制御部11bは、入力ポート2(Input Port2)から入力されるパケットの入力制御を行い、入力制御部11cは、入力ポート3(Input Port3)から入力されるパケットの入力制御を行い、入力制御部11dは、入力ポート4(Input Port4)から入力されるパケットの入力制御を行う。
【0051】
入力制御部11a〜11dのそれぞれは、入力制御対象の入力ポートにパケットが到着したとき、自身に接続されているパケットバッファに空きがある場合、その空いているパケットバッファのいずれかに、到着したパケットを格納する。ここで、入力制御部11aは、パケットバッファ12a、12bに接続されており、入力制御部11bは、パケットバッファ12c、12dに接続されており、入力制御部11cは、パケットバッファ12e、12fに接続されており、入力制御部11dは、パケットバッファ12g、12hに接続されている。
【0052】
なお、入力制御部11a〜11dのそれぞれは、空きがあるパケットバッファがない場合は、パケットは受け付けない。つまり、入力制御部11a〜11dのそれぞれは、入力ポートの先のノード又はネットワークスイッチからパケットを受信してパケットバッファに格納しないようにする。この場合、そのパケットは、入力ポートの先のノード又はネットワークスイッチで保持されたままとなる。つまり、入力ポートにパケットが到着したときとは、その入力ポートを制御対象とする入力制御部がパケットを受け付け可能であり、かつ、その入力ポートの先に接続されているノード又はネットワークスイッチからのパケットが送信可能となっているときのことである。なお、ネットワークスイッチが、接続されているノード又はネットワークスイッチがパケットを送信可能となっていることを検出する方法はどのように実現してもよい。例えば、その旨を示す信号をノード又はネットワークスイッチから受信することで検出するようにしてもよい。この信号は、後述の転送要求として機能する。
【0053】
パケットバッファ12a〜12hのそれぞれは、自身に接続されている入力制御部からパケットが格納される。パケットバッファ12a〜12hのそれぞれは、最大のパケット長のパケットを格納できるだけの容量を有する。ここでは、1つのパケットバッファに1つのパケットを格納することができるものとする。なお、図4では、1つの入力ポートに、2つのパケットバッファが接続されている場合について例示しているが、これに限られない。例えば、1つの入力ポートに3つ以上のパケットバッファが接続されるようにしてもよい。パケットバッファには、パケットのヘッダが特定の場所(パケットバッファのヘッダ部)に格納される。図4では、ヘッダのTypeフィールド及びPriorityフィールドが格納されている場所を、「Pri」として図示している(以下、「Pri部」とする)。
【0054】
パケットバッファ12a〜12hのそれぞれは、自身に格納されるパケットがリアルタイムパケットである場合、一定時間毎にPriorityフィールドの値をディクリメントする。なお、パケットバッファ12a〜12hのそれぞれは、Priorityフィールドの余裕時間が0になった場合、それ以上ディクリメントは行わず、Priorityフィールドの値を0に固定したままとする。パケットバッファ12a〜12hのそれぞれは、例えば、パケットを格納するためのメモリ又はレジスタ等を含む。パケットバッファ12a〜12hは、パケット記憶部に対応する。
【0055】
TickGen部13は、一定時間毎に信号を生成してパケットバッファ13a〜13hのそれぞれに出力する。この信号は、パケットバッファ13a〜13hのそれぞれに同時に入力される。この信号は、パケットバッファ12a〜12hのそれぞれがPriorityフィールドの余裕時間をディクリメントするトリガとなる信号である。好ましくは、この信号の発生間隔は、ネットワーク全体で共通にするとよい。本実施の形態1では、この信号がパルスである場合について例示する。TickGen部13は、グローバルタイマ6から出力された絶対時刻情報が示す絶対時刻の最小時間間隔毎、又は、最小時間間隔を分周した時間間隔毎に、パルスを発生するようにする。一方で、システム全体で絶対時刻を共有しない場合、TickGen部13は、予め設定しておいた時間間隔(例えば1m秒、1μ秒)毎にパルスを発生するようにする。
【0056】
よって、ノードが設定する余裕時間の単位と、TickGen部13がパルスを発生する時間間隔とは一致させておく必要がある。例えば、ノードが1μsec単位で余裕時間を設定した場合、TickGen部13は、1μsec毎にパルスを発生するようにする。そのようにすることで、1μsec経過する毎に、パケットバッファで余裕時間の1μsec毎のディクリメントが行われるようになる。
【0057】
出力制御部14a〜14dのそれぞれは、出力ポートに出力されるパケットの出力制御を行う。具体的には、出力制御部14aは、出力ポート1(Output Port1)に出力されるパケットの出力制御を行い、出力制御部14bは、出力ポート2(Output Port2)に出力されるパケットの出力制御を行い、出力制御部14cは、出力ポート3(Output Port3)に出力されるパケットの出力制御を行い、出力制御部14dは、出力ポート4(Output Port4)に出力されるパケットの出力制御を行う。
【0058】
出力制御部14a〜14dのそれぞれは、全てのパケットバッファ12a〜12hに格納されているヘッダを参照することができる。出力制御部14a〜14dのそれぞれは、パケットバッファ12a〜12hに格納されているパケットのDst. IDフィールドの送り先のノードのIDを参照して、そのパケットを出力する出力ポートが自身の出力制御対象の出力ポートであるかどうか判定する。この判定は、例えば、送り先と、出力ポートとが対応付けられたルーティング表を参照して行うようにする。ネットワークスイッチ10は、例えば、ルーティング表が格納された記憶装置(図示せず)を有する。記憶装置は、例えば、レジスタ又はメモリ等である。
【0059】
同じ出力ポートへの転送が必要なパケットがパケットバッファに複数存在する場合、出力制御部14a〜14dのそれぞれは、それらのパケットバッファのPri部を参照して、Pri部の値(Typeフィールドの値及びPriorityフィールドの値)に基づいて、優先度が最も高いパケットを優先して出力ポートに出力する。
【0060】
この動作によって、優先度の高いパケットによる、優先度の低いパケットの追い越しが可能となる。例えば、入力ポート1から優先度の低いパケットが到着しパケットバッファ12aに格納され、その後、同じ入力ポート1から優先度の高いパケットが到着して他の空いているパケットバッファ12bに格納される場合について考える。これは、パケットバッファ12aに格納された優先度の低いパケットが、他の入力ポート(入力ポート2〜4のいずれか)から到着した優先度の高いパケットの転送のために待たされたときに発生する可能性がある。そのときに、後から到着してパケットバッファ12bに格納されたパケットが、パケットバッファ12aに格納されたパケットより優先度が高い場合、パケットバッファ12aに格納されている優先度の低いパケットを追い越して先に転送される。このように1つの入力ポートに対して、複数のパケットバッファを設けることにより、パケットの追い越しが可能となる。出力制御部14a〜14dは、転送制御部に対応する。
【0061】
続いて、図5を参照して、本発明の実施の形態1にかかるパケットバッファのヘッダ部120の構成について説明する。図5は、本発明の実施の形態1にかかるパケットバッファのヘッダ部120の構成図である。
【0062】
パケットバッファのヘッダ部120は、AND演算回路121、Priority比較回路122、及びType比較回路123を有する。パケットバッファのヘッダ部120は、パケットバッファに格納されたパケットのヘッダのTypeフィールドの値及びPriorityフィールドの値に応じて、Priorityフィールドを更新する。
【0063】
AND演算回路121は、TickGen部13から出力されたパルスと、Priority比較回路122から出力された信号と、Type比較回路123から出力された信号をAND演算する。AND演算回路121は、AND演算結果をパケットバッファのPri部に出力する。パケットバッファは、AND演算回路121からAND演算結果としてアクティブな信号がPri部に出力されたときに、それに応じてPriorityフィールドの値をディクリメントする。
【0064】
Priority比較回路122は、パケットバッファに格納されるパケットのPriorityフィールドの値と、0の値とを比較する。例えば、0の値は、Priority比較回路122が有する記憶装置(図示せず)に予め格納しておくことで参照可能とする。Priority比較回路122は、Priorityフィールドの値が0でない場合、アクティブな信号をAND演算回路121に出力し、Priorityフィールドの値が0である場合、インアクティブな信号をAND演算回路121に出力する。例えば、アクティブは、1であり、インアクティブは、0である。
【0065】
Type比較回路123は、パケットバッファに格納されるパケットのTypeフィールドの値と、リアルタイムパケットの指定値とを比較する。例えば、リアルタイムパケットの指定値は、Type比較回路123が有する記憶装置(図示せず)に予め格納しておくことで参照可能とする。Type比較回路123は、Typeフィールドの値が、リアルタイムパケット(RT)を示す場合、アクティブな信号をAND演算回路121に出力し、Typeフィールドの値が、リアルタイムパケット以外を示す場合、インアクティブな信号をAND演算回路121に出力する。Typeフィールドの値がリアルタイムパケット以外を示す場合とは、例えば、Typeフィールドの値がノーマルパケットの指定値を示す場合である。
【0066】
以上に説明したパケットバッファのヘッダ部120の構成によって、Typeフィールドの値がリアルタイムパケットの指定値を示し、かつPriorityフィールドの値が0でない場合に、TickGen部13からパルスが出力されたとき、AND演算回路121は、アクティブな信号をPri部に出力することになる。つまり、TickGen部13から出力されるパルスとは、一定期間の間、0から1となる幅を有するパルスのことである。これによって、Priorityフィールドの値がディクリメントされる。つまり、パケットバッファのヘッダ部120は、TickGen部13からPri部にアクティブな信号が出力されたときに、Priorityフィールドの値をディクリメントする。
【0067】
続いて、図6を参照して、本発明の実施の形態1にかかるネットワークスイッチ10の処理について説明する。図6は、本発明の実施の形態1にかかるネットワークスイッチ10の処理を示すフローチャートである。入力制御部11a〜11d、出力制御部14a〜14dはそれぞれ独立に動作する。図6Aは入力制御部11a〜11d、図6Bは出力制御部14a〜14dの処理を示すフローチャートである。ここでは、入力制御部11a及び出力制御部14aにおける処理を例に挙げて説明するが、入力制御部11b〜11d及び出力制御部14b〜14dにおける処理についても同様であるため、説明を省略する。
【0068】
入力制御部11aはパケットバッファ12a、12bのいずれにも空きがない場合(S1:No)は、パケットバッファ12a、12bのいずれかに空きができるまで待ち合わせる。この間、入力ポート1に接続されている隣接するネットワークスイッチの出力ポート、又は、入力ポート1に接続されるノードの出力ポートからのパケットの転送要求は受け付けられず待たされる。パケットバッファ12a、12bのいずれかに空きができると(S1:Yes)、入力ポート1に接続されている隣接するネットワークスイッチの出力ポート、又は、入力ポート1に接続されるノードの出力ポートからのパケットの転送要求は受付可能な状態となる。
【0069】
入力制御部11aは、入力ポート1にパケットが到着するまで待ち合わせる(S2:No)。なお、パケットの到着とは、入力制御部11aが、ネットワークスイッチの出力ポート、又は、ノードの出力ポートからのパケットの転送要求を受付可能な状態としているときに、そのネットワークスイッチ又はそのノードからパケットの転送要求を受けることである。
【0070】
入力ポート1にパケットが到着すると(S2:Yes)、入力制御部11aは、入力ポート1に到着したパケットを受信して、受信したパケットをパケットバッファ12a、12bのいずれか空いているパケットバッファに格納する(S3)。
【0071】
他方、出力制御部14aは、パケットバッファ12a〜12hに格納されたパケットのDst. IDフィールドの送り先のノードのIDを参照して、パケットバッファ12a〜12hに出力ポート1に出力するパケットが格納されているか否かを確認する(S4)。
【0072】
パケットバッファ12a〜12hにパケットが格納されていない場合(S4:No)、出力制御部14aは、そのようなパケットが、パケットバッファ12a〜12hのいずれかに格納されるまで待ち合わせる。
【0073】
パケットバッファ12a〜12hの少なくとも1つにパケットが格納されていた場合、又は、待ち合わせの結果、パケットバッファ12a〜12hの少なくとも1つにパケットが格納された場合(S4:Yes)、出力制御部14aは、それらのパケットのTypeフィールドの値及びPriorityフィールドの値を参照して、それらのパケットの中で最も優先度の高いパケットを判定する(S5)。出力制御部14aは、最も優先度が高いと判定したパケットを出力ポート1から出力する(S6)。つまり、出力制御部14aは、最も優先度が高いと判定したパケットを、出力ポート1の先に接続されているノード又はネットワークスイッチに転送する。
【0074】
以上に説明したように、本実施の形態1では、パケットの優先度として送達時刻までの余裕時間(マージン)をパケットのPriorityフィールドに格納するようにしている。これにより、単純にディクリメントすることができる値として、優先度を格納することができる。そのため、少ないビット数で優先度を設定することができ、かつ優先度に応じたパケットの転送制御にかかる処理を単純にすることができる。例えば、パケットに送達時刻を持ち、その送達時刻と現在時刻との比較することによって、その都度、余裕時間を算出して優先度制御を行うネットワークスイッチと比較して、処理を単純にすることができる。また、実時間である送達時刻と比較して、ビット数を少なくすることができる。
【0075】
また、本実施の形態1では、ネットワークスイッチのパケットバッファにパケットが滞留している時間に応じて、パケットのPriorityフィールドの値をディクリメントするようにしている。つまり、パケットが滞留している時間に応じて、優先度を高くするようにしている。これによれば、滞留時間が長いパケットの優先度を高くして、より優先的に転送することができる。そのため、ネットワークにおけるパケットの転送状況に応じて、実時間性を保証したパケット転送を行うことができる。
【0076】
また、本実施の形態1では、出力制御部が、複数のパケットバッファに格納されるパケットのうち、優先度の最も高いパケットを選択して出力する構成としている。そのため、特許文献1に開示の技術のように、パケットをソートするといった複雑な処理を行うための機構を実行する必要が無い。
【0077】
また、本実施の形態1では、複数のパケットバッファが、所定のタイミングで複数のパケットバッファに同時に入力されるパルスに応じて、パケットバッファに格納されたパケットが有する余裕時間が少なくなるように余裕時間を更新するようにしている。したがって、本実施の形態1によれば、複数のパケットバッファのそれぞれに格納された余裕時間を同期して更新することができる。つまり、複数の転送待ちのパケットが有する、パケットの転送に使用される情報を更新する場合に、全てのパケットの情報を時間をかけることなく更新することができる。
【0078】
また、このように、本実施の形態1では、複数の転送待ちのパケットが有する、パケットの転送に使用される情報の更新に時間がかかることがない。そのため、半導体チップ上に構成されたNoCのように、高速動作を行うハードウェアでの実装を前提としたネットワーク環境に適用すれば特に有効である。
【0079】
本発明の実施の形態2.
続いて、図7を参照して、本発明の実施の形態2にかかるネットワークスイッチ20について説明する。図7は、本発明の実施の形態2にかかるネットワークスイッチ20の構成図である。図7では、ネットワークスイッチ20が、2×2の構成である場合について例示している。なお、入力ポート数及び出力ポート数を任意の数としたN×Nのネットワークスイッチに拡張することができることは自明である。なお、説明の明確化のため、実施の形態1と同様の内容については、適宜説明を省略する。
【0080】
ネットワークスイッチ20は、入力制御部(Input Control)21a、21b、ヘッダバッファ(HDR_Buf)22a、22b、DeMux部23a、23b、パケットバッファ(PKT_Buf)24a〜24h、TickGen部25、Arbiter部26a、26b、及びMux部27a、27bを有する。
【0081】
入力制御部21a、21bのそれぞれは、入力ポートから入力されるパケットの入力制御を行う。具体的には、入力制御部21aは、入力ポート1(Input Port1)から入力されるパケットの入力制御を行い、入力制御部21bは、入力ポート2(Input Port2)から入力されるパケットの入力制御を行う。入力制御部21a、21bのそれぞれは、自身に接続されているヘッダバッファに空きがあるときに、入力制御対象の入力ポートにパケットが到着した場合、到着したパケットのヘッダのみを格納する。つまり、入力制御部21a、21bのそれぞれは、その入力ポートの先のノード又はネットワークスイッチから、パケットのヘッダのみを受信してヘッダバッファに格納する。パケットのヘッダ以外の部分の転送は待たされることになる。ヘッダバッファに空きがない場合はパケットの転送は待たされる。ここで、入力制御部21aには、ヘッダバッファ22aが接続されており、入力制御部21bには、ヘッダバッファ22bが接続されている。
【0082】
ヘッダバッファ22a、22bのそれぞれは、パケットのヘッダを格納するためのバッファである。ヘッダバッファ22a、22bのそれぞれは、実施の形態1にかかるパケットバッファと同様に、一定時間毎にPriorityフィールドの値をディクリメントする。なお、ヘッダバッファ22a、22bのそれぞれは、実施の形態1にかかるパケットバッファのヘッダ部120のみから構成されることになる。
【0083】
入力制御部21a、21bのそれぞれに対応してDeMux部23a、23bが接続されている。入力制御部21aは、DeMux部23aと対応し、入力制御部21bは、DeMux部23bと対応する。またDeMux部23aは、ヘッダバッファ22aと接続されており、DeMux部23bは、ヘッダバッファ22bと接続されている。DeMux部23a、23bのそれぞれは、自身に接続されるヘッダバッファに格納されたヘッダに含まれるDst. IDフィールドの送り先のノードのIDを参照して、そのヘッダを含むパケットを出力する出力ポートを判定する。
【0084】
出力先の出力ポートに対応するパケットバッファのいずれかに空きがある場合、DeMux部23aはヘッダバッファ22aのヘッダを空いているパケットバッファに転送する。具体的には、DeMux部23aは、出力先が出力ポート1である場合、パケットバッファ24a、24bのいずれかが空いているかどうかを確認し、空いているパケットバッファ24a、24bのいずれかにヘッダを転送する。出力先が出力ポート2である場合に関しても転送先のパケットバッファをパケットバッファ24e、24fとして同様の動作を行う。DeMux部23aはヘッダをパケットバッファに転送するとともにヘッダバッファを空の状態にする。
【0085】
入力制御部21aはヘッダバッファが空になると、待たされていたパケットのヘッダ以外の部分も順次ヘッダバッファ22aに出力する。DeMux部23aは入力制御部21aから順次出力されるパケットのヘッダ以外の部分を入力制御部21aと同期してヘッダバッファ22aから取り出し、先にヘッダを出力したパケットバッファに転送する。
【0086】
以上によって、パケット全体がヘッダバッファ22a、DeMux部23aを介して所定のパケットバッファに出力される。なお、入力制御部21b、ヘッダバッファ22b、DeMux部23b、およびパケットバッファ24c、24d、24g、24hに関する動作についても、上述した動作と同様であるため説明を省略する。
【0087】
DeMux部23a、23bのそれぞれは、パケットを出力する出力ポートの判定が終了したときに、入力制御部からヘッダバッファを介して出力されたパケットを、そのパケットの出力先の出力ポートとして判定した出力ポートに対応するパケットバッファに空きがあるかどうか確認し、空きがあれば格納する。具体的には、DeMux部23aは、出力先が出力ポート1である場合、パケットバッファ24a、24bのいずれかにパケットを格納し、出力先が出力ポート2である場合、パケットバッファ24e、24fのいずれかにパケットを格納する。また、DeMux部23bは、出力先が出力ポート1である場合、パケットバッファ24c、24dのいずれかにパケットを格納し、出力先が出力ポート2である場合、パケットバッファ24g、24hのいずれかにパケットを格納する。
【0088】
パケットバッファ24a〜24hのそれぞれは、実施の形態1にかかるパケットバッファと同様にパケットが格納され、一定時間毎にPriorityフィールドの値をディクリメントする。なお、本実施の形態2においても、実施の形態1と同様に、1つの入力ポートと1つの出力ポートとの間に最低で2つのパケットバッファを設けるようにすることで、優先度の異なる2つのパケットが同じルートを辿った場合に、優先度の高いパケットが、優先度の低いパケットを追い越せるようにしている。なお、パケットバッファ数は、多い程、追い越しの可能性が高くなる。本実施の形態2では、1つの出力ポートに対して、入力ポート毎に2つのパケットバッファを有するようにしているため、1つの出力ポートに対して合計4つのパケットバッファを有することになる。
【0089】
TickGen部25は、実施の形態1と同様に、一定時間毎にパルスをパケットバッファ24a〜24hのそれぞれに出力する。本実施の形態2では、TickGen部25は、このパルスを、さらにヘッダバッファ22a、22bにも出力する。このパルスは、ヘッダバッファ22a、22b及びパケットバッファ24a〜24hのそれぞれに同時に入力される。
【0090】
本実施の形態2では、Arbiter部及びMux部によって、出力ポートに出力されるパケットの出力制御が行われる。つまり、本実施の形態2にかかるArbiter部及びMux部の組み合わせは、実施の形態1にかかる出力制御部に対応する。具体的には、Arbiter部26a及びMux部27aは、出力ポート1(Output Port1)に出力されるパケットの出力制御を行い、Arbiter部26b及びMux部27bは、出力ポート2(Output Port2)に出力されるパケットの出力制御を行う。
【0091】
ただし、本実施の形態2では、DeMux部によって出力ポートに対するパケットの振り分けが行われることになるため、Arbiter部及びMux部では、パケットの優先度に応じた出力制御のみが行われることになる。
【0092】
Arbiter部26a、26bのそれぞれは、自身の出力制御対象の出力ポートに対して振り分けられたパケットが格納されるパケットバッファのPri部の値に基づいて、最も優先度の高いパケットを判定する。具体的には、Arbiter部26aは、パケットバッファ24a〜24dのPri部の値に基づいて、パケットバッファ24a〜24dに格納されたパケットのうち、最も優先度の高いパケットを判定する。また、Arbiter部26bは、パケットバッファ24e〜24hのPri部の値に基づいて、パケットバッファ24e〜24hに格納されたパケットのうち、最も優先度の高いパケットを判定する。
【0093】
Arbiter部26a、26bのそれぞれは、最も優先度の高いパケットを格納するパケットバッファの選択を指示する選択信号をMux部27a、27bのそれぞれに出力する。具体的には、Arbiter部26aは、パケットバッファ24a〜24dのうちのいずれかのパケットバッファの選択を指示する選択信号をMux部27aに出力し、Arbiter部26bは、パケットバッファ24e〜24hのうちのいずれかのパケットバッファの選択を指示する選択信号をMux部27bに出力する。
【0094】
Mux部27a、27bのそれぞれは、Arbiter部26a、26bのそれぞれから出力された選択信号によって指示されたパケットバッファを選択する。Mux部27a、27bのそれぞれは、選択したパケットバッファに格納されたパケットを出力ポートから出力する。具体的には、Mux部27aは、出力ポート1からパケットを出力し、Mux部27bは、出力ポート2からパケットを出力する。
【0095】
続いて、図8を参照して、本発明の実施の形態2にかかるネットワークスイッチ20の処理について説明する。図8は、本発明の実施の形態2にかかるネットワークスイッチ20の処理を示すフローチャートである。ここでは、入力制御部21a、DeMux部23a、Arbiter部26a及びMux部27aにおける処理を例に挙げて説明するが、入力制御部21b、DeMux部23b、Arbiter部26b及びMux部27bにおける処理についても同様であるため、説明を省略する。
【0096】
入力制御部21aとDeMux部23aは一体として動作する、またArbiter部26aとMux部27aは一体として動作する。入力制御部21a、DeMux部23aとArbiter部26a、Mux部27aは独立に動作する。図8Aは入力制御部21aとDeMux部23aの処理を示すフローチャートである。図8BはArbiter部26aとMux部27aの処理を示すフローチャートである。
【0097】
入力制御部21aは、ヘッダバッファ22aに空きがない場合(S11:No)は、ヘッダバッファ22aに空きができるまで待ち合わせる。この間、入力ポート1に接続されている隣接するネットワークスイッチの出力ポート、又は、入力ポート1に接続されるノードの出力ポートからのパケットの転送要求は受け付けられず待たされる。ヘッダバッファ22aに空きができると(S11:Yes)、入力ポート1に接続されている隣接するネットワークスイッチの出力ポート、又は、入力ポート1に接続されるノードの出力ポートからのパケットの転送要求は受付可能な状態となる。
【0098】
入力制御部21aは、入力ポート1にパケットが到着するまで待ち合わせる(S12:No)。入力ポート1にパケットが到着したとき(S12:Yes)、入力制御部21aは、到着したパケットのヘッダのみを受信して、ヘッダバッファ22aに格納する(S13)。ヘッダ以外の部分の転送は待たされる。
【0099】
DeMux部23aは、自身に接続されるヘッダバッファ22aに格納されたヘッダに含まれるDst. IDフィールドの送り先のノードのIDを参照して、そのヘッダを含むパケットを出力する出力ポートを判定する(S14)。以下では、判定された出力ポートが出力ポート1の場合について説明する。判定された出力ポートが出力ポート2の場合も同様である。DeMux部23aは、判定した出力ポート1に対応するパケットバッファ24a、24bのいずれかに空きがあるか否かを判定する(S15)。
【0100】
パケットバッファ24a、24bのいずれにも空きがない場合(S15:No)、DeMux部23aは、パケットバッファ24a、24bのいずれかに空きができるまで待ち合わせる。
【0101】
パケットバッファ24a、24bのいずれかに空きがある場合(S15:Yes)、DeMux部23aは、ヘッダバッファ22aに格納されたヘッダと、それ以外の部分も含んだパケット全体を、空いているパケットバッファに格納する(S16)。このとき、入力制御部21aは入力ポート1からパケットのヘッダ以外の部分をヘッダバッファ22aを介してDeMux部23aに順次転送する。
【0102】
他方、Arbiter部26aは、パケットバッファ24a〜24dにパケットが格納されているかどうか確認し(S17)、もしなければ(S17:No)いずれかのパケットバッファにパケットが格納されるまで待ち合わせる。
【0103】
Arbiter部26aは、パケットバッファ24a〜24dの少なくとも1つにパケットが格納されていた場合、又は、待ち合わせの結果、パケットバッファ24a〜24dの少なくとも1つにパケットが格納された場合(S17:Yes)、パケットバッファ24a〜24dに格納されたパケットのTypeフィールドの値及びPriorityフィールドの値を参照して、それらのパケットの中で最も優先度の高いパケットを判定する(S18)。Mux部27bは、最も優先度が高いと判定したパケットを出力ポート1に出力する(S19)。つまり、Mux部27bは、最も優先度が高いと判定したパケットを出力ポート1の先に接続されているノード又はネットワークスイッチに転送する。
【0104】
以上に説明したように、本実施の形態2では、DeMux部によって、パケットを転送する出力ポートの判定を行って、出力ポートに対するパケットの振り分けを行った後に、Arbiter部によって優先度の判定を行うようにしている。つまり、複数のパケットバッファに格納されたパケットを参照して、出力ポートに出力するパケットを判定するときに、優先度の判定に関係する情報のみを参照すればよい。そのため、出力制御における機構を簡略化することができ、スイッチの入出力ポート数が増加した場合も、より少ないハードウェアでネットワークスイッチが実現可能となる。
【0105】
ここで、図9を参照して、具体的に比較対象を挙げて説明する。図9は、比較検証を明確にするために、実施の形態1にかかる4×4のネットワークスイッチを、実施の形態2と同様のポート数である2×2のネットワークスイッチに変更した構成について例示している。
【0106】
図9に示すネットワークスイッチは、出力制御部が、4つのパケットバッファに格納される、4つのDst.IDフィールドの値、4つのTypeフィールドの値、及び4つのPriorityフィールドの値を参照する必要がある。それに対して、本実施の形態2では、DeMux部が1つのヘッダバッファに格納される1つのDst.IDフィールドの値を参照し、Arbiter部が4つのパケットバッファに格納される、4つのTypeフィールドの値、及び4つのPriorityフィールドの値を参照すればよい。そのため、単純に、参照する情報の数を比較したたけでも、3つ分のDst.IDフィールドの値を参照する必要がなくなる。
【0107】
本発明の実施の形態3.
続いて、図10を参照して、本発明の実施の形態3にかかるネットワークスイッチ30について説明する。図10は、本発明の実施の形態3にかかるネットワークスイッチ30の構成図である。本発明の実施の形態3にかかるネットワークスイッチ30は、実施の形態1にかかるネットワークスイッチ10の出力制御部の構成をより詳細に示したものである。ただし、図10では、説明の明確化のため、ネットワークスイッチ30が、2×2の構成である場合について例示している。なお、入力ポート数及び出力ポート数を任意の数としたN×Nのネットワークスイッチに拡張することができることは自明である。なお、説明の明確化のため、実施の形態1と同様の内容については、適宜説明を省略する。
【0108】
ネットワークスイッチ30は、入力制御部(Input Control)31a、31b、パケットバッファ(PKT_Buf)32a〜32d、TickGen部33、出力判定制御部(I/O_CTRL)34a、34b、Arbiter部35a、35b、及びMux部36a、36bを有する。
【0109】
本実施の形態3にかかる入力制御部31a、31bの動作は、実施の形態1にかかる11a〜11dと同様であるため、説明を省略する。ただし、本実施の形態3では、入力制御部31aが、入力ポート1(Input Port1)から入力されるパケットをパケットバッファ32a、32bのいずれかに格納し、入力制御部31bが、入力ポート2(Input Port2)から入力されるパケットをパケットバッファ32c、32dのいずれかに格納する。また、本実施の形態3にかかるパケットバッファ32a〜32dの動作についても、実施の形態1にかかるパケットバッファ12a〜12hと同様であるため、説明を省略する。
【0110】
また、本実施の形態3にかかるTickGen部33の動作についても、実施の形態1にかかるTickGen部13と同様であるため、説明を省略する。ただし、TickGen部33は、信号をパケットバッファ32a〜32dのそれぞれに同時に入力されるように出力することになる。
【0111】
本実施の形態3では、出力判定制御部、Arbiter部、及びMux部によって、出力ポートに出力されるパケットの出力制御が行われる。よって、出力制御部は、出力判定制御部、Arbiter部、及びMux部を含むことになる。具体的には、出力判定制御部34a、34c、Arbiter部35a、及びMux部36aは、出力ポート1(Output Port1)に出力されるパケットの出力制御を行う出力制御部として機能し、出力判定制御部34b、34d、Arbiter部35b、及びMux部36bは、出力ポート2(Output Port2)に出力されるパケットの出力制御を行う出力制御部として機能する。
【0112】
図10に示すように、ネットワークスイッチ30は、出力ポートのそれぞれに対応する出力判定制御部の組を、入力ポート毎に有している。具体的には、出力ポート1に対応する出力判定制御部34aと出力ポート2に対応する出力判定制御部34bとの組を、入力ポート1に対して有し、出力ポート1に対応する出力判定制御部34cと出力ポート2に対応する出力判定制御部34dとの組を、入力ポート2に対して有している。
【0113】
出力判定制御部34a〜34dのそれぞれは、パケットバッファに格納されたヘッダに含まれるDst. IDフィールドの送り先のノードのIDを参照して、そのパケットを出力する出力ポートが、自身に対応する出力ポートであるか否かを判定する。
【0114】
同じ出力ポートへの転送が必要なパケットがパケットバッファに複数存在する場合、出力判定制御部34a〜34dのそれぞれは、それらのパケットバッファのPri部を参照して、Pri部の値(Typeフィールドの値及びPriorityフィールドの値)に基づいて、優先度が最も高いパケットを選択する。出力判定制御部34a〜34dのそれぞれは、選択したパケットの転送要求をArbiter部に出力する。ここで、出力判定制御部34a、34cからの転送要求は、Arbiter部35aに出力され、出力判定制御部34b、34dからの転送要求は、Arbiter部35bに出力される。
【0115】
Arbiter部35a、35bのそれぞれは、出力判定制御部から転送要求を受けたパケットの選択を指示する選択信号をMux部36a、36bのそれぞれに出力する。具体的には、Arbiter部35aは、出力判定制御部34a、34cのいずれかから転送要求を受けたパケットの選択を指示する選択信号をMux部36aに出力し、Arbiter部35bは、出力判定制御部34b、34dのいずれかから転送要求を受けたパケットの選択を指示する選択信号をMux部36bに出力する。
【0116】
ここで、1つのArbiter部は、複数の出力判定制御部からパケットの転送要求を受ける場合がある。具体的には、Arbiter部35aは、出力判定制御部34a、34cの両方から転送要求を受ける場合があり、Arbiter部35bは、出力判定制御部34b、34dの両方から転送要求を受ける場合がある。この場合、転送要求を受けたパケットのうち、最も優先度の高いパケットの選択を指示する選択信号をMux部に出力する。
【0117】
ここで、Arbiter部による最も優先度の高いパケットの判定は、どのように行ってもよい。例えば、Arbiter部が判定対象となるパケットが格納されたパケットバッファのPri部を参照することによって判定してもよい。また、出力判定制御部からパケットの転送要求とともに、そのパケットのPri部の値もArbiter部に出力するようにしてもよい。
【0118】
Mux部36a、36bのそれぞれは、Arbiter部35a、35bのそれぞれから出力された選択信号によって指示されたパケットバッファを選択する。Mux部36a、36bのそれぞれは、選択したパケットバッファに格納されたパケットを出力ポートから出力する。具体的には、Mux部36aは、出力ポート1からパケットを出力し、Mux部36bは、出力ポート2からパケットを出力する。
【0119】
以上に説明したように、本実施の形態3では、実施の形態1にかかる出力制御部のより詳細な構成の一例について述べた。しかし、出力制御部の構成は、実施の形態1で述べた動作を実現することができるものであれば、実施の形態3に例示した構成に限られない。
【0120】
なお、本発明は、上記の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0121】
本実施の形態では、半導体チップ上に構成されたNoCに対して適用した場合について例示したが、これに限られない。例えば、インターネット及びLAN(Local Area Network)等のネットワーク環境に適用してもよい。
【0122】
本実施の形態では、TickGen部を、ネットワークスイッチに有する場合について例示したが、これに限られない。例えば、TickGen部を、マルチコアシステムのうち、ネットワークスイッチの外部のいずれかの場所に有するようにしてもよい。
【0123】
本実施の形態2では、DeMux部によるパケットバッファへの振り分け前のパケットのうち、ヘッダのみをヘッダバッファに格納するようにしているが、これに限られない。例えば、ヘッダバッファに代えて、パケット全体が格納されるパケットバッファを有するようにしてもよい。
【符号の説明】
【0124】
1 マルチコアシステム
2a、2b、2c、2d、2e 処理要素ノード
3a、3b I/Oノード
4a、4b メモリノード
5 通信路
6 グローバルタイマ
10、20、30 ネットワークスイッチ
11a、11b、11c、11d、21a、21b、31a、31b 入力制御部
12a、12b、12c、12d、12e、12f、12g、12h、24a、24b、24c、24d、24e、24f、24g、24h、32a、32b、32c、32d パケットバッファ
13、25、33 TickGen部
14a、14b、14c、14d 出力制御部
22a、22b ヘッダバッファ
23a、23b DeMux部
26a、26b、35a、35b Arbiter部
27a、27b、36a、36b Mux部
34a、34b、34c、34d 出力判定制御部
120 ヘッダ部
121 AND演算回路
122 Priority比較回路
123 Type比較回路

【特許請求の範囲】
【請求項1】
送信先への到着期限までの残り時間を示す残時間情報を有するパケットを、送信元から受信して、前記送信先に転送するパケット転送装置であって、
前記パケットが一時的に格納される複数のパケット記憶部と、
前記複数のパケット記憶部に格納されたパケットのうち、前記残時間情報が示す残り時間のより少ないパケットを優先的に転送する転送制御部と、を備え、
前記複数のパケット記憶部は、所定のタイミングで当該複数のパケット記憶部に同時に入力される指示信号に応じて、当該パケット記憶部に格納されたパケットが有する残時間情報が示す残り時間が少なくなるように前記残時間情報を更新する、
パケット転送装置。
【請求項2】
前記パケット記憶部に格納されたパケットが有する残時間情報が示す残り時間が下限値となった場合に、当該パケットが有する時間情報の更新を停止する更新停止部をさらに備えた請求項1に記載のパケット転送装置。
【請求項3】
前記送信先は、第1の送信先又は第2の送信先を含む複数の送信先のうち、いずれかであり、
前記パケットは、前記送信先を示す送信先情報を有し、
前記複数のパケット記憶部は、前記第1の送信先を示す送信先情報を有するパケットが格納される複数の第1のパケット記憶部と、前記第2の送信先を示す送信先情報を有するパケットが格納される複数の第2のパケット記憶部と、を含み、
前記パケット転送装置は、前記受信したパケットに含まれる送信先情報に応じて、当該パケットを前記第1のパケット記憶部又は前記第2のパケット記憶部に振り分ける振り分け部をさらに備え、
前記転送制御部は、前記複数の第1のパケット記憶部に格納されたパケットを前記第1の送信先に転送する第1の転送制御部と、前記複数の第2のパケット記憶部に格納されたパケットを前記第2の送信先に転送する第2の転送制御部と、を有する、
請求項1に記載のパケット転送装置。
【請求項4】
前記パケット転送装置は、前記振り分け部が振り分けるパケットのうち、少なくとも前記送信先情報及び前記残時間情報が一時的に格納される一時記憶部をさらに備え、
前記振り分け部は、前記一時記憶部に格納された送信先情報に応じて、前記パケットを振り分け、
前記指示信号は、前記一時記憶部と前記複数のパケット記憶部に同時に入力され、
前記一時記憶部は、前記指示信号に応じて、当該一時記憶部に格納されたパケットが有する残時間情報が示す残り時間が少なくなるように前記残時間情報を更新する、
請求項3に記載のパケット転送装置。
【請求項5】
前記パケット転送装置は、前記送信元又は前記送信先となる複数のノードを有する半導体チップに含まれる、請求項1乃至4のいずれか1項に記載のパケット転送装置。
【請求項6】
前記パケット転送装置は、前記残時間情報を有するパケットであるリアルタイムパケットに加えて、さらに前記残時間情報を有しないノーマルパケットを転送するパケット転送装置であって、
前記複数のパケット記憶部は、前記リアルタイムパケット又は前記ノーマルパケットが一時的に格納され、
前記転送制御部は、前記ノーマルパケットよりも前記リアルタイムパケットを優先的に転送する、
請求項1乃至5のいずれか1項に記載のパケット転送装置。
【請求項7】
前記パケット転送装置は、前記パケット記憶部に格納されたパケットが前記ノーマルパケットである場合に、当該ノーマルパケットに対する前記残時間情報の更新を抑止する更新抑止部をさらに備えた、請求項6に記載のパケット転送装置。
【請求項8】
前記ノーマルパケットは、前記ノーマルパケットであることを示す種別情報を有し、
前記リアルタイムパケットは、前記リアルタイムパケットであることを示す種別情報を有し、
前記転送制御部及び前記更新抑止部は、前記パケットが有する種別情報に基づいて、当該パケットが前記ノーマルパケットであるか前記リアルタイムパケットであるかを判定する、
請求項7に記載のパケット転送装置。
【請求項9】
前記指示信号は、所定の時間経過するごとに入力されるパルスであり、
前記パケット記憶部は、前記パルスに応じて、前記残時間情報をディクリメントする、請求項1乃至8のいずれか1項に記載のパケット転送装置。
【請求項10】
送信先への到着期限までの残り時間を示す残時間情報を有するパケットを、送信元から受信して、前記送信先に転送するパケット転送方法であって、
所定のタイミングで複数のパケット記憶部に同時に指示信号を入力し、
前記複数のパケット記憶部が、前記指示信号に応じて、当該パケット記憶部に格納されたパケットが有する残時間情報が示す残り時間が少なくなるように前記残時間情報を更新し、
前記複数のパケット記憶部に格納されたパケットのうち、前記残時間情報が示す残り時間のより少ないパケットを優先的に転送する、
パケット転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−5145(P2013−5145A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−133011(P2011−133011)
【出願日】平成23年6月15日(2011.6.15)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】