説明

パケット転送装置、パケット転送方法

【課題】チップ面積を増大させること無くパケット転送処理を高速に実行することが可能なパケット転送装置を実現する。
【解決手段】ルーティング情報を記憶する第1メモリと、ルーティング情報のうちから選択される選択ルーティング情報を記憶する第2メモリとを備える。比較部は、入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が選択ルーティング情報に存在するか比較処理を行う。パケット生成部は、特定ルーティング情報に基づいて入力パケットから出力パケットを生成する。更新判定部は、比較処理において特定ルーティング情報が存在しない場合に、前記第2メモリの前記選択ルーティング情報を更新可能か判定する。転送処理部は、更新可能な場合、第1メモリのルーティング情報から選択ルーティング情報を新たに選択して、第2メモリの選択ルーティング情報の更新処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信パケットを転送するパケット転送装置に関する。
【背景技術】
【0002】
パケット通信システムにおいて通信パケット(以下、パケット)を転送するパケット転送装置が知られている。パケット転送装置は、ネットワークルータやネットワークスイッチに例示される。家庭用のパケット転送装置では、低価格な製品が求められている。パケット転送装置における多様な処理の全てをハードウェアで実現することは、半導体チップ(以下、チップ)の占有面積の増大を招く。
【0003】
そのため、家庭用のパケット転送装置は、中央処理装置(CPU:Central Processing Unit)によるソフトウェア処理によって各種機能を実現することでコスト削減を図っていた。この場合、パケット転送処理で必要となるルーティングテーブルは、低価格な汎用大容量メモリにより構成される。汎用大容量メモリは、ネットワークプロセッサ外部に設けられたDRAM(Dynamic Random Access Memory)に代表される。ここで、ネットワークプロセッサは、パケット転送等の通信処理に特化したプロセッサを言う。
【0004】
しかし、家庭用のパケット転送装置は、インタネットの普及に伴って、基本機能であるパケット転送に加えて、様々な機能が追加されている。例えば、特定の条件を満たすパケットのみを通過させるフィルタリング機能や、特定のパケットのみを優先的に転送する優先制御(QoS:Quality of Service)機能や、遠隔地にあるネットワーク間を安全に接続するVPN(Virtual Private Network)機能等である。また、通信トラフィックの増大に伴い光ファイバー網に例示される通信インフラの整備が進み、ネットワークの物理的通信速度も高速化している。
【0005】
このような背景から、CPUの負荷を低減するために、従来、中央処理装置によるソフトウェア処理で実現していた機能の一部を、ネットワークプロセッサにおいてハードウェアで実現する構成がとられている。例えば、パケット転送処理で必要となるルーティングテーブルの一部を、アクセスレイテンシーの高い汎用大容量メモリではなく、ネットワークプロセッサ内部に設けられたメモリへ配置する構成が用いられている。
【0006】
このような構成では、処理時間の高速化を計ることが可能であるものの、ネットワークプロセッサに回路が追加されることで、チップ面積の増大が避けられない。特に、家庭用のパケット転送装置に用いられるネットワークプロセッサでは、面積の増大を最小限にとどめることが求められている。
【0007】
特許文献1は、パケット転送におけるテーブル検索処理の負荷を低減して、パケット転送の高速化を図るパケット転送装置を開示している。
【0008】
図1を用いて特許文献1のパケット転送装置を説明する。図1は、特許文献1のパケット転送装置の構成を示す図である。パケット転送装置100は、パケットを受信する1つまたは複数の入力インタフェース101と、更新パケットを別のネットワークに出力する1つまたは複数の出力インタフェース102とを有する。図1では、2つの入力インタフェース101及び2つの出力インタフェース102を備える場合を例示している。
【0009】
入力インタフェース101から取り込まれたパケットは、パケット解析部103へ入力される。パケット解析部103は、入力したパケットのフォーマットを解析する。パケット解析情報は、ビット列抽出部105へ入力される。ビット列抽出部105は、パケット解析情報に基づいて、入力パケット中から任意の部分のビット列を抽出する。
【0010】
ビット列キャッシュ部107は、過去に処理を行われたパケットのビット列を保持する。ビット列キャッシュに対応する処理や処理パラメータは、処理パラメータ保持部108に保持される。ビット列キャッシュに対応する処理や処理パラメータは、処理パラメータ保持部に保持される。
【0011】
キャッシュ検索部106は、抽出されたビット列とビット列キャッシュのエントリを比較する。ビット列キャッシュに一致するエントリが無い場合、パケットを受信するべきか否かを判定するのは、受信フィルタリングテーブル検索部115、及び受信フィルタリングテーブル110である。
【0012】
NAT(Network Address Transport)テーブル111が、内部ネットワークと外部ネットワークのIP(Internet Protocol)アドレスの対応関係を保持する。NATテーブル検索部116が、変換するべきIPアドレスを決定する。
【0013】
また、ルーティングテーブル112が、宛先IPアドレスと次に転送する装置のIPアドレス、及び出力インタフェースの対応情報を保持する。ルーティングテーブル検索部117が、ルーティングテーブル112を参照して次に転送する装置のIPアドレス、及び出力インタフェースを決定する。
【0014】
レイヤ(以下、L)3−L2アドレス変換テーブル113が、IPアドレスとリンクレイヤアドレス(イーサネット(登録商標)であればMAC(Media Access Control)アドレス)の対応を保持する。L3−L2アドレス変換テーブル検索部118が、L3−L2アドレス変換テーブル113を用いてリンクレイヤアドレスを決定する。また、送信フィルタリングテーブル検索部119及び送信フィルタリングテーブル114が、パケットを送信するべきか判定する。
【0015】
キャッシュ更新部109は、ビット列抽出部105が抽出したビット列をビット列キャッシュに、また、各種テーブルにおける検索結果を処理パラメータ保持部108に格納する。パケット更新部104は、処理パラメータ保持部108または各種テーブルの検索結果からパケットを更新する。1つまたは複数の出力インタフェース102が、更新パケットを最終的に別のネットワークへ出力する。
【0016】
特許文献1のパケット転送装置は、パケット転送処理の高速化のために、NATテーブル111やルーティングテーブル112とは別に、ビット列キャッシュ107、処理パラメータ保持部108、及びキャッシュ検索部106を備える。過去に転送処理を行ったパケット中から抽出した任意のビット列やパラメータを、ビット列キャッシュ107及び処理パラメータ保持部108が保持する。
【0017】
そして、新たに受信されたパケット中から抽出されたビット列及びパラメータが、保持された過去のビット列及びパラメータと一致する場合、キャッシュ検索部106が処理を行う。これにより、過去に処理されたことのあるパケットと同一のビット列やパラメータを有するパケットに対する変換処理の高速化を図っている。
【0018】
一般的な家庭用のパケット転送装置では、NATテーブル111やルーティングテーブル112に保持される情報量が多い。そのため、NATテーブル111やルーティングテーブル112は、DRAM等の汎用大容量メモリに構成される。このような構成では、DRAM特有のアクセスオフセットにより情報の読み出しに遅延が発生してしまう。
【0019】
そこで、特許文献1のパケット転送装置は、NATテーブル111やルーティングテーブル112の情報を一時的に格納する各種キャッシュメモリを備える。これによって、変換処理の高速化を可能にしている。
【先行技術文献】
【特許文献】
【0020】
【特許文献1】特開2005−347969号公報
【発明の概要】
【発明が解決しようとする課題】
【0021】
しかし、特許文献1のパケット転送装置では、ビット列キャッシュ部107、処理パラメータ保持部108に格納された情報に一致しないパケットを受信した場合、従来どおり、NATテーブル111やルーティングテーブル112を用いたテーブル検索を実行する必要がある。この場合、変換処理の高速化を図ることができない。このような状態を避けるには、ビット列キャッシュ部107や処理パラメータ保持部108の記憶容量を増やす必要がある、その結果、チップ面積が増大してしまうという課題を生じる。
【課題を解決するための手段】
【0022】
以下に、(発明を実施するための形態)で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、(特許請求の範囲)の記載と(発明を実施するための形態)との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、(特許請求の範囲)に記載されている発明の技術的範囲の解釈に用いてはならない。
【0023】
本発明のパケット転送装置は、入力パケットから出力パケットを生成するためのルーティング情報を記憶する第1メモリ(212)と、ルーティング情報のうちから選択される選択ルーティング情報を記憶する第2メモリ(206)とを備える。比較部(207)は、入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が選択ルーティング情報に存在するか比較処理を行う。パケット生成部(208、209、210)は、特定ルーティング情報に基づいて入力パケットから出力パケットを生成する。更新判定部(204)、比較処理において選択ルーティング情報のうちに特定ルーティング情報が存在しない場合に、第2メモリ(206)の選択ルーティング情報を更新可能か判定する。転送処理部(213)は、第2メモリ(206)の選択ルーティング情報を更新可能な場合、第1メモリ(212)に記憶されたルーティング情報から選択ルーティング情報を新たに選択して、第2メモリ(206)に記憶された選択ルーティング情報の更新処理を行う。
【0024】
本発明のパケット転送方法は、入力パケットから出力パケットを生成するためのルーティング情報を記憶する第1メモリ(212)と、ルーティング情報のうちから選択される選択ルーティング情報を記憶する第2メモリ(206)とを備えるパケット転送装置において、入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が選択ルーティング情報に存在するか比較処理を行うステップ(S200)と、特定ルーティング情報に基づいて入力パケットから出力パケットを生成するステップ(S202、S203)と、比較処理において選択ルーティング情報のうちに特定ルーティング情報が存在しない場合(S201)に、第2メモリ(206)の選択ルーティング情報を更新可能か判定するステップ(S204)と、第2メモリ(206)の選択ルーティング情報を更新可能な場合、第1メモリ(212)に記憶されたルーティング情報から選択ルーティング情報を新たに選択して、第2メモリ(206)に記憶された選択ルーティング情報の更新処理を行うステップ(S206)と、を備える。
【発明の効果】
【0025】
本発明によれば、チップ面積を増大させること無くパケット転送処理を高速に実行することが可能なパケット転送装置を実現することができる。
【図面の簡単な説明】
【0026】
【図1】図1は、特許文献1のパケット転送装置の構成を示す図である。
【図2】図2は、本発明の第1実施形態におけるパケット転送装置200を適用したパケット通信システムの構成例を示す図である。
【図3】図3は、本発明の第1実施形態におけるパケット転送装置200の構成を示す図である。
【図4】図4は、本発明の第1実施形態におけるパケット転送装置200により送受信されるパケットの構成を示す図である。
【図5】図5は、本発明の第1実施形態におけるパケット転送装置200により送受信されるパケットのIPヘッダフィールド22の構成を示す図である。
【図6】図6は、本発明の第1実施形態におけるパケット転送装置200の中央制御装置215の物理アドレス空間マッピングの一例を示す図である。
【図7】図7は、本発明の第1実施形態におけるパケット転送装置200のルーティングテーブル212に格納されたルーティング情報52の構成を示す図である。
【図8】図8は、本発明の第1実施形態におけるパケット転送装置200のエントリ更新部204の構成を示す図である。
【図9】図9は、本発明の第1実施形態におけるパケット転送装置200のレングス判定部202の構成を示す図である。
【図10】図10は、本発明の第1実施形態におけるパケット転送装置200の更新回数テーブル232の構成を示す図である。
【図11】図11は、本発明の第1実施形態におけるパケット転送装置200のトラフィック判定部203の構成を示す図である。
【図12】図12は、本発明の第1実施形態におけるパケット転送装置200の動作を示すタイミングチャートである。
【図13】図13は、本発明の第1実施形態におけるパケット転送装置200の動作を示すフローチャートである。
【図14】図14は、本発明の第1実施形態におけるパケット転送装置200のレングス判定処理の動作を示すフローチャートである。
【図15】図15は、本発明の第1実施形態におけるパケット転送装置200のトラフィック判定処理の動作を示すフローチャートである。
【図16】図16は、本発明の第1実施形態におけるパケット転送装置200のエントリテーブル更新動作を示すフローチャートである。
【図17】図17は、本発明の第1実施形態におけるパケット転送装置200のルーティングテーブル212とエントリテーブル206の一例を示す図である。
【図18】図18は、本発明の第2実施形態におけるパケット転送装置300の構成を示す図である。
【図19】図19は、本発明の第2実施形態におけるパケット転送装置300の受信データ量判定部331の構成を示す図である。
【図20A】図20Aは、本発明の第2実施形態におけるパケット転送装置200の動作を示すフローチャートである。
【図20B】図20Bは、本発明の第2実施形態におけるパケット転送装置200の動作を示すフローチャートである。
【発明を実施するための形態】
【0027】
添付図面を参照して、本発明の実施形態によるパケット転送装置を以下に説明する。
【0028】
(第1実施形態)
まず、本発明の第1実施形態におけるパケット転送装置の説明を行う。
【0029】
[概要]
本実施形態のパケット転送装置は、全てのルーティング情報を記録したルーティングテーブルと、ルーティングテーブルのルーティング情報のうちから選択された一部のルーティング情報を記録するエントリテーブルとを備える。比較部は、入力パケットのヘッダ情報等の比較要因情報とエントリテーブルのルーティング情報との比較処理を実行する。比較処理において比較要因情報に一致するエントリテーブルのルーティング情報が存在する場合、入力パケットに対するパケット変換処理により出力パケット生成される。
【0030】
一方、比較処理において比較要因情報に一致するエントリテーブルのルーティング情報が存在しない場合、エントリテーブルのルーティング情報の更新が行われる。エントリ更新部は、比較処理を継続可能であるかに基づいて、エントリテーブルの更新処理の可否を決定する判定処理を行う。エントリ更新部は、レングス判定部とトラヒック判定部とを備える。レングス判定部は、入力パケットのパケットレングスに基づいて、エントリテーブルの更新を許可するか判定するレングス判定処理を行う。また、トラフィック判定部は、入力パケットの後続の後続パケットの受信を検出したか否かに基づいて、エントリテーブルの更新を許可するかを判定するトラフィック判定処理を行う。
【0031】
レングス判定処理では、入力パケットのパケットレングスが長い程、更新処理の回数を多く許可する。パケットレングスが長い程、入力パケットの受信処理時間は長く、その間比較部による比較処理を継続可能であるためである。また、トラフィック判定処理では、後続パケットの受信が検出されるまで更新処理の実行を許可する。後続パケットが受信されるまでは、入力パケットに対するパケット転送処理を行え、その間は、比較部に夜比較処理を継続可能であるためである。
【0032】
このように、本実施形態のパケット転送装置は、ルーティングテーブルのルーティング情報を用いてエントリテーブルのルーティング情報を更新しつつ、比較部が比較処理を行うため、エントリテーブルの容量を増大させる必要が無い。そのため、エントリテーブルを備えるネットワークプロセッサのチップ面積が増大することも無い。また、ネットワークプロセッサによるパケット転送処理は、中央処理装置によるパケット転送処理より高速である。本実施形態のパケット転送装置は、エントリ更新部による判定処理によりエントリテーブルの更新禁止を判定されるまで、比較部による比較処理を継続することができる。そのため、ネットワークプロセッサによる高速なパケット転送処理をより多く行うことができる。以下、このような本実施形態のパケット転送装置の構成及び動作を説明する。
【0033】
[構成の説明]
はじめに、本実施形態におけるパケット転送装置の構成の説明を行う。
【0034】
図2は、本実施形態におけるパケット転送装置200を適用したパケット通信システムの構成例を示す図である。図2を参照すると、パケット通信システムは、複数のパーソナルコンピュータ(以下、PC)10を備えたイントラネット14と、サーバ11と、パケット転送装置200と、インタネット13とを備える。図2においてパケット転送装置200は、イントラネット14とインタネット13との間を接続する。
【0035】
パケット転送装置200は、イントラネット14内のプライベートIP(Internet Protocol)を設定されたPC10とグローバルIPアドレスを設定されたサーバ11との間で送受信される通信パケット(以下、パケット)20の転送処理を行って、PC10からインタネット13を介したサーバ11へのアクセスを実現する。なお、図2に示したパケット通信システムの構成は、一般的なシステム構成の一例である。パケット転送装置200は、このようなシステム構成への適用に限定されず、多様なシステム構成に適用可能である。
【0036】
図2に示したパケット通信システムでは、パケット転送装置200が、グローバルIPアドレスでルーティングされるインタネット13とプライベートIPアドレスでルーティングされるイントラネット14とを接続する。このとき、パケット転送装置200は、限られたグローバルIPアドレスを有効に利用するためNAT(Network Address Transport)を用いてIPアドレスの変換を行う。NATでは、パケット転送装置200の後述するルーティングテーブル212やエントリテーブル206に記録されたルーティング情報に基づいてIPアドレス変換が行われる。
【0037】
次に、図3は、本実施形態におけるパケット転送装置200の構成を示す図である。本実施形態のパケット転送装置200は、ネットワークプロセッサ214と、中央処理装置215と、大容量メモリ211とを備える。ネットワークプロセッサ214と、中央処理装置215と、大容量メモリ211とは、それぞれシステムデータバス216と接続されており、システムデータバス216を介してデータ送受信を行うことが可能である。
【0038】
まず、中央処理装置215の説明を行う。中央処理装置215は、CPU(Central Processing Unit)に例示される。中央処理装置215は、コンピュータプログラムを実行して、パケット転送装置200の処理全体を制御する。なお、中央処理装置215は、ネットワークプロセッサ214の内部に搭載されても良い。
【0039】
次に、大容量メモリ211の説明を行う。大容量メモリ211は、パケット転送装置200の主記憶装置である。大容量メモリ211は、パケット転送装置200の機能を実現するためのコンピュータプログラムや各種データを記憶する。大容量メモリ211は、パケット転送装置200で送受信される全てのパケット転送処理に用いられる情報であるルーティング情報を格納したルーティングテーブル212を備える。ルーティングテーブル212は、後述するエントリテーブル206と同様の構成である。
【0040】
次に、ネットワークプロセッサ214の説明を行う。ネットワークプロセッサ214は、パケットの転送処理を行う。ネットワークプロセッサ214は、パケット受信部201と、エントリ更新部204と、比較要因抽出部205と、エントリテーブル206と、比較部207と、パケット生成部208と、変換データ生成部209と、パケット送信部210と、DMA(Direct Memory Access)コントローラ213とを備える。
【0041】
まず、パケット受信部201は、パケット転送装置200の外部から受信されるパケット(以下、入力パケット)の受信処理を行う。パケット受信部201は、入力パケットに対するフォーマットチェックを行って、入力パケットにおけるフォーマットエラーを検出する。フォーマットチェックでは、入力パケットのヘッダの有無の検出や、ヘッダの位置の検出等が行われ、ヘッダやパケットフォーマットのエラー検出が行われる。パケット受信部201は、入力パケットを、エントリ更新部204、比較要因部205、及びパケット生成部208へ出力する。
【0042】
ここで、図4は、本実施形態におけるパケット転送装置200により送受信されるパケット20の構成を示す図である。
【0043】
パケット20は、物理層アドレス情報を示すMAC(Media Access Control)アドレスフィールド21と、ネットワーク層のパケット情報を示すIPヘッダフィールド22と、トランスポート層のパケット情報を示すTCP(Transmission Control Protocol)/UDP(User Datagram Protocol)ヘッダフィールド23とを含む。
【0044】
MACアドレスフィールド21は、宛先MACアドレスフィールド24と送信元MACアドレスフィールド25を含む。IPヘッダフィールド22は、IP通信における制御情報を示すIP情報フィールド26と、送信元IPアドレスフィールド27と、宛先IPアドレスフィールド28とを含む。TCP/UDPヘッダフィールドは、送信元ポート番号フィールド29と、宛先ポート番号フィールド30とを含む。
【0045】
続いて、図5は、本実施形態におけるパケット転送装置200により送受信されるパケット20のIPヘッダフィールド22の構成を示す図である。
【0046】
IPヘッダフィールド22は、前述の通り、IP情報フィールド26と、送信元IPアドレスフィールド27と、宛先IPアドレスフィールド28とを備える。IP情報フィールド26は、経路制御情報や、エラー通知情報、パケットの分割有無を示す情報等が含まれている。IP情報フィールド26の先頭から3バイト目にIPパケットの長さを示すトータルレングス(Total Length)フィールド31が含まれる。
【0047】
なお、図4、図5に示したようなパケット20の構成は一般的であるので、これ以上の詳細な説明を省略する。
【0048】
次に、図3のネットワークプロセッサ214の説明に戻り、エントリ更新部204は、エントリテーブル206の更新可否を判定する。エントリ更新部204は、パケット受信部201からフォーマットチェック後の入力パケットを入力する。また、エントリ更新部204は、中央処理装置215からパケット転送装置200の通信速度に関する制御情報と、比較部207からテーブル更新パルスとを入力する。エントリ更新部204は、入力パケットに対する比較部207による比較処理を継続可能であるか否かに基づいて、エントリテーブル206の更新可否を判定する。
【0049】
エントリ更新部204は、レングス判定部202と、トラフィック判定部203とを備える。レングス判定部202とトラフィック判定部203は、入力パケットに続いて受信されるパケット20(以下、後続パケット)の受信が開始されるまで、比較部207による比較処理を継続可能であると判定する。レングス判定部202は、入力パケットのパケットレングスに基づいて、エントリテーブル206の更新可否を判定する。レングス判定部202は、入力パケットのパケットレングスに基づいて算出される後続パケットの入力が開始される時期までエントリテーブル206の更新を許可する。また、トラフィック判定部203は、後続のパケットの受信状態に基づいて、エントリテーブル206の更新可否を判定する。トラフィック判定部203は、後続パケットが受信されるかを監視する。トラフィック判定部203は、後続パケットの受信が検出されるまでエントリテーブル206の更新を許可する。なお、レングス判定部202とトラフィック判定部203の詳細な構成は後述する。
【0050】
また、エントリ更新部204は、エントリテーブル更新許可信号とDMAアドレスオフセット信号とをDMAコントローラ213へ出力する。エントリテーブル更新許可信号は、エントリテーブル206のエントリの更新許可及び更新禁止を示す。DMAアドレスオフセット信号は、DMAコントローラ213によるルーティングテーブル212からエントリテーブル206へのルーティング情報の転送におけるアドレス指定に用いられる。
【0051】
次に、DMAコントローラ213は、ルーティングテーブル212からエントリテーブル206へルーティング情報の転送を行って、エントリテーブル206を更新する。DMAコントローラ213は、エントリテーブル更新許可信号およびDMAアドレスオフセット信号を入力する。DMAコントローラ213は、エントリ更新部204からのエントリテーブル更新許可信号により、エントリテーブル206の更新許可を示されている場合に、ルーティングテーブル212からエントリテーブル206へルーティング情報の転送を行う。一方、DMAコントローラ213は、エントリテーブル更新許可信号によりエントリテーブル206の更新禁止を示されている場合、ルーティングテーブル212からエントリテーブル206へルーティング情報の転送を行わない。
【0052】
DMAコントローラ213がルーティング情報の転送時に指定するアドレスは、宛先アドレスをエントリテーブル206に固定され、送信元アドレスをDMAアドレスオフセット信号に基づいて算出される。
【0053】
ここで、図6は、本実施形態におけるパケット転送装置200の中央制御装置215の物理アドレス空間マッピングの一例を示す図である。図6は、パケット転送装置の中央制御装置215が32ビットのアドレス空間40を有する場合を示している。32ビットのアドレス空間40には、大容量メモリ211、及びルーティングテーブル212、パケット受信部201、エントリ更新部204、比較要因抽出部205、エントリテーブル206、比較部207、パケット生成部204、変換データ生成部209、パケット送信210、DMAコントローラ213が、それぞれマッピングされている。
【0054】
図6を参照すると、パケット受信部201は、アドレス「0x60000000」番地にアドレッシングされている。同様に、エントリ更新部204がアドレス「0x70000000」番地に、比較要因抽出部205がアドレス「0x80000000」番地に、エントリテーブル206がアドレス「0x50000000」番地に、比較部207がアドレス「0x90000000」番地に、パケット生成部208がアドレス「0xC0000000」番地に、変換データ生成部209がアドレス「0xA0000000」番地に、パケット送信部210がアドレス「0xB0000000」番地に、DMAコントローラ213がアドレス「0x40000000」番地に、それぞれアドレッシングされている。
【0055】
また、大容量メモリ211がアドレス「0x00000000」番地からの大容量メモリ空間43に、ルーティングテーブル212がアドレス「0x20000000」番地からのルーティングテーブル空間42に、エントリテーブル206がアドレス「0x50000000」番地からのエントリテーブル空間41に、それぞれアドレッシングされている。中央処理装置215やDMAコントローラ213は、これらのアドレスを用いて各構成要素を指定してデータ送受信を行う。
【0056】
DMAコントローラ213は、宛先アドレスを、エントリテーブル206のアドレッシングされているアドレス「0x50000000」番地に設定する。また、DMAコントローラ213は、送信元アドレスを、ルーティングテーブル212のアドレッシングされているアドレス「0x20000000」番地に設定する。なお、送信元アドレスは、エントリテーブル206が更新される度に、アドレス「0x20000000」番地からエントリテーブル206のサイズだけ調整されたアドレスとなる。例えば、エントリテーブル206のサイズが256バイトで構成されている場合、DMAコントローラ213は、エントリテーブル206が更新される度に、アドレス「0x20000000」番地に更新回数に応じて256バイトずつ加算された値を、送信元アドレスとして設定する。
【0057】
次に、図3のネットワークプロセッサ214の説明に戻り、エントリテーブル206は、ルーティングテーブル212のルーティング情報の一部を一時的に格納する。エントリテーブル206に格納されるルーティング情報は、DMAコントローラ206により更新される。また、エントリテーブル206に格納されたルーティング情報は、比較部207へ出力される。
【0058】
エントリテーブル206は、小容量の記憶装置であり、SRAM(Static Random Access Memory)に例示される。エントリテーブル206は、ネットワークプロセッサ内に構成されるアクセスオフセットの小さい記憶装置であるため、ルーティングテーブル212へアクセスする場合に比べて、高速にアクセスすることができる。
【0059】
ここで、図7は、本実施形態におけるパケット転送装置200のエントリテーブル206に格納されたルーティング情報52の構成を示す図である。エントリテーブル206は、変換前フィールド群50に変換後フィールド群51を対応させた構成である。変換前フィールド50は、入力パケットに付与された宛先MACアドレス24、送信元MACアドレス25、宛先IPアドレス28、送信元IPアドレス27と、宛先ポート番号30と、送信元ポート番号29とが記録される。また、変換後フィールド51は、後述するパケット転送装置200から送信される出力パケットに付与された宛先MACアドレス24、送信元MACアドレス25、宛先IPアドレス28、送信元IPアドレス27と、宛先ポート番号30と、送信元ポート番号29とが記録される。変換前フィールド40と変換後フィールド41とに記録される情報は、それぞれ入力パケット及び出力パケットから取得された情報である。なお、前述の通り、ルーティングテーブル212は、図7に示したエントリテーブル206と同様の構成である。このようなエントリテーブル206やルーティングテーブル212は、一般的な構成であり、また、図7に示すような形式に限定するものではない。
【0060】
次に、図3のネットワークプロセッサ214の説明に戻り、比較要因抽出部205は、入力パケットから比較要因情報を抽出する。比較要因情報は、比較部207においてエントリテーブル206に格納されたルーティング情報と比較されるべき情報である。比較要因情報は、例えば、図4に示した宛先MACアドレス20、送信元MACアドレス21、送信元IPアドレス22、宛先IPアドレス23、送信元ポート番号24、宛先ポート番号に例示される。なお、比較要因情報は、これらの情報に限定しない。より多くの情報が、入力パケットから抽出されてもよい。比較要因抽出部205は、比較要因情報を比較部207へ出力する。
【0061】
次に、比較部207は、比較要因抽出部205から入力される比較要因情報とエントリテーブル206に格納されたルーティング情報とを比較する比較処理を実行する。比較部207は、比較処理により、エントリテーブル206に格納されたルーティング情報に比較要因情報と一致する情報が存在するか判定する。例えば、入力パケットの送信元IPアドレスと宛先IPアドレスが比較要因情報として抽出された場合、比較部207は、エントリテーブル206に入力パケットの送信元IPアドレスと宛先IPアドレスと一致するルーティング情報が格納されているかを比較する。比較部207は、比較結果を示す比較結果信号を変換データ生成部209へ出力し、また、比較処理の完了を通知するテーブル更新パルスをエントリ更新部204へ出力する。
【0062】
次に、変換データ生成部209は、比較結果信号で示された比較処理において一致したルーティング情報をエントリテーブル206から取得して、出力パケット変換するための変換データをパケット生成部208へ出力する。
【0063】
次に、パケット生成部208は、パケット受信部201から入力パケットを入力して、また、変換データ生成部209から変換データを入力する。パケット生成部208は、変換データを用いて入力パケットから出力パケットを生成する。パケット生成部208は、出力パケットを、パケット送信部210へ出力する。
【0064】
次に、パケット送信部210は、パケット生成部208から出力パケット入力して、出力パケットをネットワークへ送信する。以上が、ネットワークプロセッサ214の構成の説明である。
【0065】
続いて、図8を参照して、本実施形態におけるパケット転送装置200のエントリ更新部204を詳細に説明する。図8は、本実施形態におけるパケット転送装置200のエントリ更新部204の構成を示す図である。本実施形態のエントリ更新部204は、レングス判定部202と、トラフィック判定部203と、選択部220と、物理層通信速度情報記憶部(以下、通信速度記憶部)221と、システムクロック速度情報記憶部(以下、クロック速度記憶部)222とを備える。
【0066】
まず、通信速度記憶部221は、パケット転送装置200の行うパケット通信における物理層の通信速度情報を記憶する。通信速度記憶部221は、中央処理装置215からシステムデータバス216を介して通信速度情報を設定される。通信速度記憶部221は、通信速度情報をレングス判定回路202へ出力する。
【0067】
次に、クロック速度記憶部222は、ネットワークプロセッサ214のシステムクロックの速度情報であるクロック速度情報を記憶する。クロック速度記憶部222は、中央処理装置215からシステムデータバス216を介してクロック速度情報を記憶される。クロック速度記憶部222は、クロック速度情報をレングス判定部202へ出力する。
【0068】
次に、レングス判定部202は、入力パケットのパケットレングスに基づいて、エントリテーブル206の更新可否を判定する。レングス判定部202は、比較部207からテーブル更新パルスと、パケット受信部201から入力パケットと、通信速度記憶部221から通信速度情報と、クロック速度記憶部222からクロック速度情報とを入力する。レングス判定部202は、レングス判定DMAアドレスオフセット信号と、レングス判定テーブル更新許可信号とを、選択部220とトラフィック判定部203とへ出力する。
【0069】
次に、トラフィック判定部203は、後続パケットの受信状態に基づいて、エントリテーブル206の更新可否を判定する。トラフィック判定部203は、比較部207からテーブル更新パルスと、パケット受信部201から入力パケットと、レングス判定部202からトラフィック判定DMAアドレスオフセット信号とトラフィック判定テーブル更新許可信号とを入力する。トラフィック判定部203は、トラフィック判定DMAアドレスオフセット信号と、トラフィック判定テーブル更新許可信号とを、選択部220へ出力する。
【0070】
なお、レングス判定部202とトラフィック判定部203の詳細な構成は後述する。また、レングス判定DMAアドレスオフセット信号とトラフィック判定DMAアドレスオフセット信号とは、それぞれ、レングス判定部202及びトラフィック判定部203の出力する図3で説明を行ったDMAアドレスオフセット信号である。いずれの信号がDMAアドレスオフセット信号としてエントリ更新部204から出力されるかは、選択部220により決定される。前述の通り、DMAアドレスオフセット信号は、DMAコントローラ213によるルーティングテーブル212からエントリテーブル206へのルーティング情報転送におけるアドレス指定に用いられる。
【0071】
さらに、レングス判定テーブル更新許可信号とトラフィック判定テーブル更新許可信号とは、それぞれ、レングス判定部202とトラフィック判定部203の出力する図3で説明を行ったエントリテーブル更新許可信号である。いずれの信号がエントリテーブル更新許可信号としてエントリ更新部204から出力されるかは、選択部220により決定される。前述の通り、エントリテーブル更新許可信号は、エントリテーブル206のエントリの更新許可及び更新禁止を示す。
【0072】
次に、選択部220は、トラフィック判定部203からトラフィック判定DMAアドレスオフセット信号とトラフィック判定テーブル更新許可信号とを入力し、レングス判定部202からレングス判定DMAアドレスオフセット信号とレングス判定テーブル更新許可信号とを入力する。選択部220は、レングス判定テーブル更新許可信号を選択信号として用いる。
【0073】
選択部220は、レングス判定テーブル更新許可信号がエントリテーブル206の更新許可を示している場合、レングス判定部202から入力されるレングス判定DMAアドレスオフセット信号とレングス判定テーブル更新許可信号とを選択して、DMAアドレスオフセット信号とエントリテーブル更新許可信号としてDMAコントローラ213へ出力する。
【0074】
一方、選択部220は、レングス判定テーブル更新許可信号がエントリテーブル206の更新禁止を示している場合、トラフィック判定部203から入力されるトラフィック判定DMAアドレスオフセット信号とトラフィック判定テーブル更新許可信号とを選択して、DMAアドレスオフセット信号とエントリテーブル更新許可信号としてDMAコントローラ213へ出力する。以上が、エントリ更新部204の構成の説明である。
【0075】
続いて、図9を参照して、本実施形態におけるパケット転送装置200のレングス判定部202の構成を詳細に説明する。図9は、本実施形態におけるパケット転送装置200のレングス判定部202の構成を示す図である。本実施形態のレングス判定部202は、更新カウンタ部230と、IPヘッダフィールドレングス抽出部(以下、IPレングス抽出部)231と、更新回数テーブル232と、比較部233とを備える。
【0076】
まず、更新カウンタ部230は、エントリテーブル206の更新回数をカウントする。更新カウンタ部230は、比較部207からテーブル更新パルスを入力するとインクリメント動作を行う。一方、更新カウンタ部230は、比較部233から更新禁止を示すレングス判定テーブル更新許可信号を入力すると初期化する。更新カウンタ部230は、カウント数情報を比較部233へ出力すると共に、カウント数情報をレングス判定DMAアドレスオフセット信号として選択回路220へ出力する。
【0077】
次に、IPレングス抽出部231は、パケット受信部201から入力される入力パケットからパケットレングス情報を抽出する。IPレングス抽出部231は、図5に示したパケット20のIPヘッダフィールド22のIP情報26に含まれるトータルレングスフィールド31からパケットレングス情報を抽出する。IPレングス抽出部231は、パケットレングス情報を更新回数テーブル232へ出力する。
【0078】
次に、更新回数テーブル232は、エントリテーブル206の更新回数制限値を生成する。更新回数テーブル232は、IPレングス抽出部231からパケットレングス情報と、通信速度記憶部221から通信速度情報と、クロック速度記憶部222からクロック速度情報とを入力する。更新回数テーブル232は、パケットレングス情報と、通信速度情報と、クロック速度情報とに基づいて、更新回数制限値を生成する。
【0079】
図10は、本実施形態におけるパケット転送装置200の更新回数テーブル232の構成を示す図である。本実施形態の更新回数テーブル232は、パケットレングスフィールド60と、システムクロック周波数フィールド61と、データ転送レートフィールド62と、更新回数制限値フィールド63とを備える。パケットレングスフィールド60は、パケット20のパケットレングスを64バイト単位に区分したフィールドである。システムクロック周波数フィールド61は、クロック速度記憶部222から入力されたクロック速度情報を記録する。クロック速度情報は、ネットワークプロセッサ214の動作クロック周波数を示す。データ転送レートフィールド62は、通信速度記憶部221から入力された通信速度情報を記録する。通信速度情報は、パケット転送装置200のパケット転送レートである。
【0080】
更新回数制限値フィールド63は、パケットレングス情報と、通信速度情報と、クロック速度情報とに基づいて生成される更新回数制限値を記録する。更新回数制限値フィールド63の各データフィールドに記録される値は、それぞれ対応するパケットレングスフィールド60のパケットレングス情報と、システムクロック周波数フィールド61のクロック速度情報と、データ転送レートフィールド62の通信速度情報とに基づいて生成される。
【0081】
更新回数制限値は、パケットレングスが長い程、更新回数が多くなるように生成される。パケットレングスが長い程、入力パケットの受信処理に時間を要するためである。また、更新回数制限値は、クロック速度情報におけるシステムクロックが高速である程、更新回数が多くなるように生成される。システムクロックが高速である程、比較部207による比較処理やDMAコントローラ213による更新処理もより高速に行うことが可能なためである。さらに、更新回数制限値は、通信速度情報におけるデータ転送レートが高速である程、更新回数が少なくなるように生成される。データ転送レートが高速である程、入力パケットの受信処理に時間を要しないためである。
【0082】
次に、図9のレングス判定部202の説明に戻り、比較部233は、更新カウンタ部230から入力されるカウント数情報と、更新回数テーブル232に記録された更新回数制限値とを比較する比較処理を行う。比較部233は、カウント数情報のカウント数が更新回数制限値より小さい場合、更新許可を示すレングス判定テーブル許可信号を選択部220へ出力する。一方、比較部223は、カウント数情報が更新回数制限値以上の場合、更新禁止を示すレングス判定テーブル許可信号を選択部220へ出力する。また、比較部223は、更新禁止を示すレングス判定テーブル許可信号を更新カウンタ部230へ出力する。以上が、レングス判定部202の構成の説明である。
【0083】
続いて、図11を参照して本実施形態におけるパケット転送装置200のトラフィック判定部203の構成を詳細に説明する。図11は、本実施形態におけるパケット転送装置200のトラフィック判定部203の構成を示す図である。本実施形態のトラフィック判定部203は、入力パケット検出部240と、後続パケット検出判定部241と、更新カウンタ242とを備える。
【0084】
まず、更新カウンタ242は、エントリテーブル206の更新回数をカウントする。更新カウンタ242は、レングス判定部202の比較部233から更新禁止を示すレングス判定テーブル更新許可信号を入力すると、レングス判定部202の更新カウンタ部230から入力するレングス判定DMAアドレスオフセット信号の示す値を初期値として更新回数のカウントを開始する。更新カウンタ部242は、比較部207からテーブル更新パルスを入力するとインクリメント動作を行う。一方、更新カウンタ部242は、後続パケット検出判定部241からパケット検出信号を入力すると初期化する。更新カウンタ部242は、カウント数情報をトラフィック判定DMAアドレスオフセット信号として選択回路220へ出力する。
【0085】
次に、入力パケット検出部240は、パケット受信部201から入力パケットが出力されるかを監視して、現在処理を行っている入力パケットの後続パケットが入力されたことを検出する。入力パケット検出部240は、後続パケットを検出すると、後続パケット検出信号を後続パケット検出判定部241へ出力する。
【0086】
次に、後続パケット検出判定部241は、比較部207の比較処理の完了時に後続パケットの有無を判定する。後続パケット検出判定部241は、比較回路207からテーブル更新パルスと、入力パケット検出部240から後続パケット検出信号とを入力する。後続パケット検出判定部241は、テーブル更新パルスにより比較部207の比較処理の完了を検出すると、後続パケット検出信号に基づいて後続パケットの有無を判定する。後続パケット検出判定部241は、後続パケットを検出するまで更新許可を示すトラフィック判定テーブル更新許可信号を選択部220へ出力する。一方、後続パケット検出判定部241は、後続パケット有を検出すると更新禁止を示すトラフィック判定テーブル更新許可信号を選択部220と更新カウンタ242とへ出力する。以上が、トラフィック判定部203の構成の説明である。
【0087】
[動作の説明]
次に、本実施形態におけるパケット転送装置200の動作の説明を行う。はじめに、図12を参照して本実施形態におけるパケット転送装置200の処理動作の概念の説明を行う。図12は、本実施形態におけるパケット転送装置200の動作を示すタイミングチャートである。
【0088】
図12を参照すると、パケット転送装置200の受信部と処理部における処理タイミングが示されている。図12において、受信部とはパケット転送装置200のパケット受信部201を示し、処理部とは、パケット転送装置200の他構成を示すものとする。
【0089】
一般に、イーサネット(登録商標)パケットは、最小パケットレングスが64バイト、最大パケットレングスが1518バイトと可変である。図12(a)は、最小パケットレングスのパケットが連続して受信されている状況下において、どのポイントで比較処理、変換処理を行うかを示すタイミングチャートである。また、図12(b)は、最小パケットレングスのパケットが間隔を空けて受信されている状況下において、どのポイントで比較処理、変換処理を行うかを示すタイミングチャートである。さらに図12(c)は、最大パケットレングスのパケットが連続的に受信されている状況下において、どのポイントで比較処理、変換処理を行うかを示すタイミングチャートである。
【0090】
図12(a)において、パケット1の先頭データを検出後に、パケット転送装置207にて比較処理が行われる。この比較処理を行うことが可能な時間が、比較可能時間70である。比較処理の結果により変換データ生成部209とパケット生成部208にてパケット変換処理が行われる。最小パケットレングスのパケットが連続して受信されている状状況下では、パケット1の先頭データを受信するタイミングとパケット2の先頭データを受信するタイミングの間隔(以下、パケット受信間隔)が短い。パケット2を受信するとパケット2の比較処理を開始しなければならない。そのため、比較可能時間70を短く確保することしかできない。このように、比較処理可能時間70が短いと、パケット2の比較処理を即座に開始する必要がある。
【0091】
次に、図12(b)において、同様に、パケット1の先頭データを検出後に、パケット転送装置207にて比較処理が行われる。この比較処理を行うことが可能な時間が、比較可能時間71である。比較処理の結果により変換データ生成部209とパケット生成部208にてパケット変換処理が行われる。最小パケットレングスのパケットが間隔を空けて受信されている状状況下では、パケット1とパケット2とのパケット受信間隔が長い。そのため、比較可能時間71を長く確保することができる。このように、比較処理可能時間71が長いと、比較処理可能時間71の間にエントリテーブル206の更新を行って、再度、比較回路207による比較処理を行うことが可能となる。
【0092】
さらに、図12(c)において、同様に、パケット1の先頭データを検出後に、パケット転送装置207にて比較処理が行われる。この比較処理を行うことが可能な時間が、比較可能時間72である。比較処理の結果により変換データ生成部209とパケット生成部208にてパケット変換処理が行われる。最大パケットレングスのパケットが連続して受信されている状状況下では、パケット1とパケット2とのパケット受信間隔が長い。そのため、比較可能時間72を長く確保することができる。このように、比較処理可能時間72が長いと、比較処理可能時間72の間にエントリテーブル206の更新を行って、再度、比較回路207による比較処理を行うことが可能となる。
【0093】
今後、主流となるIPv6(Internet Protocol Version 6)を用いた通信では、最小のMTU(Maximum Transmission Unit)サイズが1280バイトと規定されている。つまり、送信するべきデータを、短いレングスの多数のパケットに分けるよりも、長いレングスの少数のパケットに詰め込んで送ったほうが効率的となる。そのため、長いレングスのパケットが用いられるようになると考えられる。
【0094】
また、近年普及している光ファイバーやADSL(Asymmetric Digital Subscriber Line)等を用いたインタネット接続サービスは、通信センタからの距離や、同時に使用するユーザ数等の個別環境によって通信速度に変化が生じるベストエフォートである。例えば、通信速度100Mbpsのサービスに加入したとしても、通信速度の低下が発生して、パケット受信間隔が大きくなることも発生し得る。
【0095】
このように、今後のインタネット等を含む通信ネットワークでは、長いレングスのパケットを用いた通信や、パケット受信間隔の大きい通信が多くなると考えられる。そのため、本実施形態のパケット転送装置200では、レングス判定部202によりパケットレングスを用いた判定と、トラヒック判定部203による後続パケットの受信検出を用いた判定とを導入して、より多く比較部207による比較処理を実行可能にする。つまり、レングス判定部202は、入力パケットの受信処理中におけるエントリテーブル206の更新可否を判定する。そして、トラヒック判定部203は、入力パケットの受信処理完了後から後続パケットが受信されるまでにおけるエントリテーブル206の更新可否を判定することになる。
【0096】
次に、図13を参照して本実施形態におけるパケット転送装置200の動作フローの説明を行う。図13は、本実施形態におけるパケット転送装置200の動作を示すフローチャートである。
【0097】
まず、パケット受信部201は、入力パケットの有無を判定する(ステップS100)。入力パケットが検出されない場合(ステップS100のNo)、入力パケットが検出されるまで本ステップを繰り返す。一方、入力パケットが検出された場合(ステップS100のYes)、パケット受信部201は、入力パケットのフォーマットチェックを行う(ステップS101)。
【0098】
そして、パケット受信部201は、フォーマットチェックの結果により入力パケットのエラーの有無を判定する(ステップS102)。入力パケットにエラーが検出された場合(ステップS102のYes)、当該入力パケットは、中央処理装置215によるパケット転送処理が行われ(ステップS103)、本動作は終了となる。
【0099】
一方、入力パケットにエラーが検出されない場合(ステップS102のNo)、比較要因抽出部205は、入力パケットから比較要因情報を抽出する(ステップS104)。比較要因情報が抽出されると、レングス判定部202の更新カウンタ230、及びトラフィック判定部203の更新カウンタ242が初期化される(ステップS105)。
【0100】
初期化が完了すると、レングス判定部202が、入力パケットのパケットレングスに基づいたエントリテーブル206の更新許可及び更新禁止を判定するレングス判定処理を行う(ステップS106)。レングス判定部202のレングス判定処理においてエントリテーブル206の更新禁止が判定されるまで、エントリテーブル206は、DMAコントローラ213により更新される。そして、比較部207は、エントリテーブル206のルーティング情報を用いて比較処理を行う。なお、レングス判定部202によるレングス判定処理の詳細は後述する。
【0101】
レングス判定部202によるレングス判定処理においてエントリテーブル206の更新禁止を判定されると、トラフィック判定部203による、後続パケットの受信状態に基づいたエントリテーブル206の更新許可及び更新禁止を判定するトラヒック判定処理を行う(ステップS107)。トラフィック判定部203のトラフィック判定処理においてエントリテーブル206の更新禁止が判定されるまで、エントリテーブル206は、DMAコントローラ213により更新される。そして、比較部207は、エントリテーブル206のルーティング情報を用いて比較処理を行う。なお、トラフィック判定部203によるトラフィック判定処理の詳細は後述する。トラフィック判定部203によるトラフィック判定処理においてエントリテーブル206の更新禁止を判定されると、本動作は終了となる。
【0102】
次に、図14を参照して本実施形態におけるパケット転送装置200のレングス判定処理の動作の説明を行う。図14は、本実施形態におけるパケット転送装置200のレングス判定処理の動作を示すフローチャートである。なお、本説明は、図13に示したフローチャートにおけるステップS106を詳細に説明するものである。
【0103】
まず、比較部207は、エントリテーブル206に記録されたルーティング情報と、比較要因抽出部205により抽出された比較要因情報とを比較する比較処理を行う(ステップS200)。比較部207は、比較処理の結果、比較要因情報に一致するエントリテーブル206のルーティング情報が存在するか否かを判定する(ステップS201)。
【0104】
一致するルーティング情報が存在する場合(ステップS201のYes)、変換データ生成部209は、一致したルーティング情報に基づいて、入力パケットを変換するための変換データを生成する(ステップS202)。そして、パケット生成部208は、変換データ生成部209により生成されたパケット変換データを用いて、入力パケットを変換して出力パケットを生成する(ステップS203)。これにより、本動作は終了となる。なお、この後、パケット送信部210は、出力パケットを送信する。
【0105】
一方、一致するルーティング情報が存在しない場合(ステップS201のNo)、レングス判定部202の比較部233は、更新カウンタ部230の出力するカウンタ数情報と更新回数テーブル232の出力する更新回数制限値とが一致するかを比較する(ステップS204)。
【0106】
カウンタ数情報と更新回数制限値とが一致する場合(ステップS204のYes)、比較部233は、更新禁止を示すレングス判定テーブル更新許可信号を出力する。これにより、本動作は終了となる。この後、エントリ更新部204の選択部220は、レングス判定部202から更新禁止を示すレングス判定テーブル更新許可信号を選択信号として入力すると、トラフィック判定部203から入力される信号に出力を切り替える。
【0107】
一方、カウンタ数情報と更新回数制限値とが一致しない場合(ステップS204のNo)、更新カウンタ部230は、更新カウンタ値のインクリメントを行う(ステップS205)。このとき、比較部233は、更新許可を示すレングス判定テーブル更新許可信号を出力する。エントリ更新部204の選択部220は、更新許可を示すレングス判定テーブル更新許可信号を選択信号として入力している間、レングス判定部202から入力される信号を出力として選択する。
【0108】
すなわち、選択部220は、更新許可を示すレングス判定テーブル更新許可信号に基づいて、更新許可を示すテーブル更新許可信号をDMAコントローラ213へ出力する。同時に、選択部220は、更新カウンタ部230から出力されるレングス判定DMAアドレスオフセット信号に基づくDMAアドレスオフセット信号をDMAコントローラ213へ出力する。
【0109】
DMAコントローラ213は、更新許可を示すテーブル更新許可信号とDMAアドレスオフセット信号とに基づいて、エントリテーブル206の更新を行う(ステップS206)。この後、ステップS200へ戻り、比較部207による比較処理が継続される。以上、本動作は終了となる。
【0110】
このように、レングス判定部202のレングス判定処理においてエントリテーブル206の更新禁止を判定されるまで、DMAコントローラ213はエントリテーブル206を更新し、そして、比較部207は比較処理を継続する。レングス判定処理において、レングス判定部202の比較部233は、更新カウンタ部230の出力するカウント数情報が更新回数テーブル232の出力する更新回数制限値に一致するまで、更新許可を示すレングス判定テーブル更新許可信号を出力する。すなわち、カウント数情報と更新回数制限値とが一致するまでエントリテーブル206は更新され、比較部207による比較処理は継続されることになる。
【0111】
更新回数制限値は、入力パケットのパケットレングス情報とパケット転送装置200の通信速度情報とクロック速度情報とに基づいて決定される。通信速度情報とクロック速度情報とは、通常、入力パケットに対して可変ではない。そのため、レングス判定部202は、入力パケットのパケットレングス情報に応じて更新回数制限値を決定することになる。更新回数テーブル232では、パケットレングスが長い程、更新回数制限値が大きくなり、パケットレングスが小さい程、更新回数制限値が小さくなる。
【0112】
次に、図15を参照して本実施形態におけるパケット転送装置200のトラフィック判定処理の動作の説明を行う。図15は、本実施形態におけるパケット転送装置200のトラフィック判定処理の動作を示すフローチャートである。なお、本説明は、図13に示したフローチャートにおけるステップS107を詳細に説明するものである。
【0113】
まず、ステップS300〜ステップS303は、図14を用いて説明を行ったステップS200〜ステップS203と同様である。すなわち、まず、比較部207は、エントリテーブル206に記録されたルーティング情報と、比較要因抽出部205により抽出された比較要因情報とを比較する比較処理を行う(ステップS300)。比較部207は、比較処理の結果、比較要因情報に一致するエントリテーブル206のルーティング情報が存在するか否かを判定する(ステップS301)。
【0114】
一致するルーティング情報が存在する場合(ステップS301のYes)、変換データ生成部209は、一致したルーティング情報に基づいて、入力パケットを変換するための変換データを生成する(ステップS302)。そして、パケット生成部208は、変換データ生成部209により生成されたパケット変換データを用いて、入力パケットを変換して出力パケットを生成する(ステップS303)。これにより、本動作は終了となる。なお、この後、パケット送信部210は、出力パケットを送信する。
【0115】
一方、一致するルーティング情報が存在しない場合(ステップS301のNo)、トラフィック判定部203の後続パケット検出判定部241は、後続パケットを検出したか判定する(ステップS304)。
【0116】
後続パケットが検出された場合(ステップS304のYes)、当該入力パケットは、中央処理装置215によるパケット転送処理が行われ(ステップS305)、本動作は終了となる。このとき、後続パケット検出判定部241は、更新禁止を示すトラフィック判定テーブル更新許可信号を出力する。
【0117】
一方、後続パケットが検出されない場合(ステップS304のNo)、更新カウンタ部242は、更新カウンタ値のインクリメントを行う(ステップS306)。このとき、後続パケット検出判定部241は、更新許可を示すトラフィック判定テーブル更新許可信号を出力する。
【0118】
エントリ更新部204の選択部220は、前述により、更新禁止を示すレングス判定テーブル更新許可信号を選択信号として入力している。そのため、選択部220は、トラフィック判定部から入力する信号を出力として選択する。
【0119】
すなわち、選択部220は、更新許可を示すトラフィック判定テーブル更新許可信号に基づいて、更新許可を示すテーブル更新許可信号をDMAコントローラ213へ出力する。同時に、選択部220は、更新カウンタ部242から出力されるトラフィック判定DMAアドレスオフセット信号に基づく、DMAアドレスオフセット信号をDMAコントローラへ出力する。
【0120】
DMAコントローラ213は、更新許可を示すテーブル更新許可信号とDMAアドレスオフセット信号とに基づいて、エントリテーブル206の更新を行う(ステップS307)。この後、ステップS300へ戻り、比較部207による比較処理が継続される。以上、本動作は終了となる。
【0121】
このように、トラフィック判定部203のトラフィック判定処理においてエントリテーブル206の更新禁止を判定されるまで、DMAコントローラ213はエントリテーブル206を更新し、そして、比較部207は比較処理を継続する。トラフィック判定処理において、トラフィック判定部203の後続パケット検出判定部241は、入力パケット検出部240により後続パケットが検出されるまで、更新許可を示すレングス判定テーブル更新許可信号を出力する。すなわち、後続パケットが検出されるまでエントリテーブル206は更新され、比較部207による比較処理は継続されることになる。
【0122】
次に、図16を参照して本実施形態におけるパケット転送装置200のエントリテーブル更新処理の動作の説明を行う。図16は、本実施形態におけるパケット転送装置200のエントリテーブル更新動作を示すフローチャートである。
【0123】
まず、DMAコントローラ213は、エントリ更新部204から出力されるテーブル更新許可信号がエントリテーブル206の更新許可を示しているか更新禁止を示しているかを判定する(ステップS400)。テーブル更新許可信号が更新禁止を示す場合(ステップS400のNo)、更新許可となるまで本ステップを繰り返す。
【0124】
テーブル更新許可信号が更新許可を示す場合(ステップS400のYes)、DMAコントローラ213は、転送元アドレスを設定する(ステップS401)。DMAコントローラ213は、転送元アドレスとして、カウンタ値にエントリテーブル206のテーブルサイズを乗じた値をルーティングテーブル212の先頭アドレスに加算して算出されたアドレス値を設定する。なお、DMAコントローラ213は、カウンタ値を、DMAアドレスオフセット信号から取得する。
【0125】
図6で説明を行った物理アドレス空間を例とすると、ルーティングテーブル212は、アドレス「0x20000000」番地にアドレッシングされている。エントリテーブル206が256バイトで構成されている場合、DMAコントローラ213は、送信元アドレスとして、レングス判定部202の更新カウンタ230のカウンタ値が更新される毎に、更新カウンタ230のカウンタ値と256バイトとを乗じた値を「0x20000000」番地に加算して算出されたアドレス値を設定する。
【0126】
次に、図16のエントリテーブル更新動作の説明に戻り、DMAコントローラ213は、転送先アドレスを設定する(ステップS402)。DMAコントローラ213は、転送先アドレスとして、エントリテーブル206のアドレスを指定する。再び、図6を例として説明すると、DMAコントローラ213は、エントリテーブル206のアドレッシングされている「0x50000000」番地を指定する。
【0127】
次に、図16のエントリテーブル更新動作の説明に戻り、DMAコントローラ213は、転送サイズを設定する(ステップS403)。DMAコントローラ213は、転送サイズとして、エントリテーブル206のサイズを指定する。例えば、エントリテーブル206のサイズが256バイトである場合、DMAコントローラ213は、256バイトを転送サイズとして指定する。
【0128】
そして、DMAコントローラ213は、DMA転送処理を行う(ステップS404)。その後、DMAコントローラ213は、DMA転送処理が完了したかを判定する(ステップS405)。DMA転送処理の終了を検出できない場合(ステップS405のNo)、終了を検出するまで本ステップを繰り返す。一方、DMA転送処理の終了を検出した場合(ステップS405のYes)、エントリテーブル206のルーティング情報が更新されたことになり、本動作は終了となる。
【0129】
以上が、本実施形態におけるパケット転送装置200の動作の説明である。なお、本実施形態におけるパケット転送装置200では、レングス判定部202によるレングス判定処理の後に、トラフィック判定部203によるトラフィック判定処理を行う動作となっている。しかし、パケット転送装置200は、レングス判定部202のみ、あるいはトラフィック判定部203のみを備える構成であっても良い。パケット転送装置200がトラフィック判定部202のみを備える場合でも、図12(b)に示したように、パケット受信間隔があいている状態において、エントリテーブル206を更新しながら比較部207による更新処理を実行可能である。また、パケット転送装置200がレングス判定部202のみを備える場合でも、図12(c)に示したように、長いパケットレングスのパケットを受信している状態において、エントリテーブル206を更新しながら比較部207による更新処理を実行可能である。
【0130】
図17は、本実施形態におけるパケット転送装置200のルーティングテーブル212とエントリテーブル206の一例を示す図である。図17(a)は、ルーティングテーブル212を示している。図17(b)は、レングス判定部202の更新カウンタ部230あるいはトラフィック判定部203の更新カウンタ部242のカウンタ値が「0」の場合のエントリテーブル206を示している。図17(c)は、レングス判定部202の更新カウンタ部230あるいはトラフィック判定部203の更新カウンタ部242のカウンタ値が「1」の場合のエントリテーブル206を示している。図17(d)は、レングス判定部202の更新カウンタ部230あるいはトラフィック判定部203の更新カウンタ部242のカウンタ値が「M」の場合のエントリテーブル206を示している。
【0131】
図17(a)のルーティングテーブル212は、要因A〜Zまでの合計N個のルーティング情報が格納されている。図17(b)のエントリテーブル206は、カウンタ値が「0」の場合を示しており、ルーティングテーブル212に記録されたルーティング情報のうち、要因A〜Dが分割されて記録されている。図17(c)のエントリテーブル206は、カウンタ値が「1」の場合を示しており、ルーティングテーブル212に記録されたルーティング情報のうち、要因E〜Hが分割されて記録されている。また、図17(d)のエントリテーブル206は、カウンタ値が「M」の場合を示しており、ルーティングテーブル212に記録されたルーティング情報のうち、要因W〜Zが分割されて記録されている。
【0132】
このように、本実施形態のエントリテーブル206は、カウンタ値の値に応じて格納されるルーティング情報が異なる。例えば、前述の図12(b)のように、短いパケットレングスのパケットが間隔を空けて受信されている状況下では、トラフィック判定処理によりエントリテーブル206の更新が禁止となるまで、エントリテーブル206の更新を行い、また、比較部207による比較処理を繰り返し継続することが可能となる。
【0133】
そして、図12(c)のように、長いパケットレングスのパケットが連続的に受信されている状況下では、レングス判定処理によりエントリテーブル206の更新が禁止となるまで、エントリテーブル206の更新を行い、また、比較部207による比較処理を繰り返し継続することが可能となる。そのため、エントリテーブルの物理的な容量を増やすことなく多くのルーティング情報を格納することができる。すなわち、ネットワークプロセッサ214のチップ面積を増大させることが無い。
【0134】
比較部207によるエントリテーブル206を用いた比較処理は、中央処理装置215によるルーティングテーブル212を用いた比較処理に比べて高速に実行することができる。そのため、本実施形態のパケット転送装置200は、エントリテーブル206の容量を増やすことなく、すなわち、ネットワークプロセッサのチップ面積を増大させること無く、高速なパケット転送処理を実現できる。以上が、本実施形態におけるパケット転送装置200の説明である。
【0135】
(第2実施形態)
次に、本発明の第2実施形態におけるパケット転送装置の説明を行う。
【0136】
[概要]
本実施形態のパケット転送装置300は、入力パケットや入力パケットに続いて受信される後続パケットを記憶するパケットメモリ320をさらに備える。本実施形態のエントリ更新部331は、パケットメモリ320に記憶されたデータ量が一定量を超えるまで比較部207による比較処理を継続可能と判定する。エントリ更新部331は、データ量判定処理を行う受信データ量判定部331を備える。受信データ量判定部331は、パケットメモリ320に記憶されたデータ量(未処理データ量)とテーブル更新可否を判定するために予め定められた閾値情報であるテーブル更新許可閾値情報とを比較するデータ量判定処理を行う。受信データ量判定部331は、データ量判定処理において、未処理データ量がテーブル更新許可閾値情報より小さい場合、エントリテーブル206の更新を許可する。一方、受信データ量判定部331は、データ量判定処理において、未処理データ量がテーブル更新許可閾値情報より大きい場合、エントリテーブル206の更新を禁止する。
【0137】
未処理データ量は、処理を行うべき入力パケットに続く後続パケットの受信状況を示している。このように、未処理データ量が一定の値を超えるまで、DMAコントローラによるエントリテーブル206の更新を許可し、また、比較部207による比較処理を継続することで、エントリテーブル206のサイズを大きくすること無く、高速なパケット転送処理を実現することができる。以下、本実施形態のパケット転送装置300の構成と動作を詳細に説明する。
【0138】
[構成の説明]
はじめに、本実施形態におけるパケット転送装置300の構成の説明を行う。図18は、本実施形態におけるパケット転送装置300の構成を示す図である。本実施形態のパケット転送装置300は、第1実施形態のパケット転送装置200と同様の構成を多く備える。そのため、以下の説明では、第1実施形態と同様の部分については重ねての説明を省略して、第1実施形態との違いを中心に説明を行う。また、第1実施形態と同様の構成については、同様の符号を付して説明を行う。
【0139】
本実施形態のパケット転送装置300は、ネットワークプロセッサ301と、中央処理装置215と、大容量メモリ310とを備える。ネットワークプロセッサ301と、中央処理装置215と、大容量メモリ310とは、それぞれシステムデータバス216と接続されており、システムデータバス216を介してデータ送受信を行うことが可能である。なお、中央処理装置215は、第1実施形態と同様であるので説明を省略する。
【0140】
まず、大容量メモリの説明を行う。大容量メモリ310は、ルーティングテーブルA311と、ルーティングテーブルB312とを備える。ルーティングテーブルA311とルーティングテーブルB312は、前述の図7に示した構成と同様である。大容量メモリ310のこの他の点は、第1実施形態と同様である。
【0141】
次に、ネットワークプロセッサ301の説明を行う。ネットワークプロセッサ301は、第1実施形態と同様にパケットの転送処理を行う。ネットワークプロセッサ301は、パケット受信部201と、エントリ更新部330と、比較要因抽出部205と、エントリテーブル206と、比較部207と、パケット生成部208と、変換データ生成部209と、パケット送信部210と、DMAコントローラ213と、パケットメモリ320とを備える。パケット受信部201と、比較要因抽出部205と、エントリテーブル206と、比較部207と、パケット生成部208と、変換データ生成部209と、パケット送信部210とは、第1実施形態と同様であるので説明を省略する。なお、本実施形態において、比較要因抽出部205と、パケット生成部208とは、パケットメモリ320から入力パケットを入力する。
【0142】
まず、パケットメモリ320は、入力パケットを一時的に格納する。パケットメモリ250は、バッファ321と、ライトポインタ322と、リードポインタ323とを備える。
【0143】
ライトポインタ322は、バッファ321へ入力パケットを書き込むための書き込みアドレスを管理する。ライトポインタ322は、パケット受信部201からの入力パケットを検出すると、バッファ321の書き込みアドレスを生成する。
【0144】
リードポインタ323は、バッファ321から入力パケットを読み出すための読み出しアドレスを管理する。リードポインタ323は、比較要因抽出部205とパケット生成部208へ入力パケットを出力するために、読み出しアドレスを生成する。
【0145】
バッファ321は、入力パケットを記憶する。バッファ321は、ライトポインタ322により生成された書き込みアドレスにパケット受信部201から入力される入力パケットを一時的に記憶する。また、バッファ321は、リードポインタで生成された読み出しアドレスで指定された入力パケットを、比較要因抽出部205とパケット生成部208とへ出力する。なお、本実施形態において、バッファ321は、3つ以上の入力パケットを記憶できる記憶容量を備えることが望ましい。
【0146】
次に、エントリ更新部330は、中央処理装置215からテーブル更新許可閾値情報と、比較部207からテーブル更新パルスと、ライトポインタ322から書き込みアドレスと、リードポインタ323から読み出しアドレスとを入力とする。また、エントリ更新部330は、エントリテーブル更新許可信号とDMAアドレスオフセット信号とをDMAコントローラ213へ出力する。エントリテーブル更新許可信号は、エントリテーブル206のエントリの更新許可及び更新禁止を示す。DMAアドレスオフセット信号は、DMAコントローラ213によるルーティングテーブルA311あるいはルーティングテーブルB312からエントリテーブル206へのルーティング情報転送におけるアドレス指定に用いられる。
【0147】
エントリ更新部330は、受信データ量判定部331を備える。受信データ量判定部331は、ライトポインタ322から入力する書き込みアドレスから、リードポインタ323から入力する読み出しアドレスを減算して未処理データ量を算出する。未処理データ量は、パケットメモリ320のバッファ321に記憶された入力パケットのデータ量を示す。さらに、受信データ量判定部331は、テーブル更新許可閾値情報と未処理データ量とに基づいて、エントリテーブル206の更新可否を判定して、更新許可あるいは更新禁止を示すエントリテーブル更新許可信号をDMAコントローラ213へ出力する。また、受信データ量判定部331は、エントリテーブル206の更新回数をカウントして、カウント値を含めたDMAアドレスオフセット信号をDMAコントローラ213へ出力する。
【0148】
次に、DMAコントローラ213は、エントリ更新部204から出力されるエントリテーブル更新許可信号及びDMAアドレスオフセット信号を入力する。DMAコントローラ213は、エントリテーブル更新許可信号及びDMAアドレスオフセット信号に基づいて、ルーティングテーブルA311あるいはルーティングテーブル312からエントリテーブル206へデータ転送を行う。エントリテーブル206へ転送するルーティング情報を、ルーティングテーブルA331内から選択するか、あるいはルーティングテーブル312内から選択するかは、中央処理装置215により判断される。
【0149】
以上が、ネットワークプロセッサ301の説明であり、上記以外は、第1実施形態と同様である。
【0150】
次に、図19を参照して、本実施形態におけるパケット転送装置300の受信データ量判定部331の構成を説明する。図19は、本実施形態におけるパケット転送装置300の受信データ量判定部331の構成を示す図である。差分演算器331は、ライトポインタ保持部340と、リードポインタ保持部341と、減算部342と、比較部343と、更新カウンタ部344と、テーブル更新許可閾値設定値記憶部(以下、許可閾値記憶部)345とを備える。
【0151】
まず、更新カウンタ部344は、エントリテーブル206の更新回数をカウントする。更新カウンタ部344は、比較部207から出力されるテーブル更新パルスを検出するとカウントアップを行う。また、更新カウンタ部344は、更新禁止を示すテーブル更新許可信号を比較部343から入力すると初期化する。更新カウンタ344は、DMAコントローラ213へDMAアドレスオフセット信号を出力する。DMAアドレスオフセット信号は、DMAコントローラ213が転送元アドレスを算出するために用いられ、エントリテーブル206の更新回数であるカウント数を含む。
【0152】
次に、ライトポインタ保持部340は、パケットメモリ323のバッファ321に対する書き込みアドレスを保持する。ライトポインタ保持部340は、パケットメモリ323のライトポインタ322から書き込みアドレスを入力する。ライトポインタ保持部340は、書き込みアドレスを減算部342へ出力する。
【0153】
次に、リードポインタ保持部341は、パケットメモリ323のバッファ321に対する読み出しアドレスを保持する。リードポインタ保持部341は、パケットメモリ323のリードポインタ323から読み出しアドレスを入力する。リードポインタ保持部341は、読み出しアドレスを減算部342へ出力する。
【0154】
次に、減算部342は、書き込みアドレスから読み出しアドレスを減算してパケットメモリ320内の未処理データ量を算出する。未処理データ量は、パケットメモリ320のバッファ321に記憶された入力パケットのデータ量を示す。減算部342は、未処理データ量を比較部343へ出力する。
【0155】
次に、許可閾値記憶部345は、テーブル更新許可閾値情報を記憶する。テーブル更新許可閾値情報は、システムバス216を介して、中央処理装置215により設定される。許可閾値記憶部345は、テーブル更新許可閾値情報を比較部343へ出力する。
【0156】
次に、比較部343は、未処理データ量とテーブル更新許可閾値情報とを比較して、テーブル更新許可信号をDMAコントローラ213へ出力する。比較部343は、減算部342から入力される未処理データ量がテーブル更新許可閾値情報の示す値より小さい場合、更新許可を示すテーブル更新許可信号をDMAコントローラ213へ出力する。一方、比較部343は、減算部342から入力される未処理データ量がテーブル更新許可閾値情報の示す値以上である場合、更新禁止を示すテーブル更新許可信号をDMAコントローラ213へ出力する。
【0157】
以上が、本実施形態におけるパケット転送装置300の受信データ量判定部331の構成の説明である。
【0158】
[動作の説明]
次に、本実施形態おけるパケット転送装置200の動作の説明を行う。図20A及び図20Bは、本実施形態におけるパケット転送装置200の動作を示すフローチャートである。なお、以下の説明において、第1実施形態と同様の部分については、説明を省略する。
【0159】
はじめに、ステップS501〜ステップS505は、第1実施形態において図13を用いて説明を行ったステップS100〜ステップS105と同様である。すなわち、まず、パケット受信部201は、入力パケットの有無を判定する(ステップS500)。パケット受信部201は、入力パケットのフォーマットチェックを行う(ステップS501)。パケット受信部201は、フォーマットチェックの結果により入力パケットのエラーの有無を判定する(ステップS502)。
【0160】
入力パケットにエラーが検出された場合(ステップS502のYes)、当該入力パケットは、中央処理装置215によるパケット転送処理が行われ(ステップS503)、本動作は終了となる。一方、入力パケットにエラーが検出されない場合(ステップS502のNo)、比較要因抽出部205は、入力パケットから比較要因情報を抽出する(ステップS504)。比較要因情報が抽出されると、受信データ量判定部331の更新カウンタ230が初期化される(ステップS505)。
【0161】
続いて、ステップS506〜ステップS509は、第1実施形態において図14を用いて説明を行ったステップS200〜ステップS203と同様である。すなわち、比較部207は、エントリテーブル206に記録されたルーティング情報と、比較要因抽出部205により抽出された比較要因情報とを比較する比較処理を行う(ステップS506)。比較部207は、比較処理の結果、比較要因情報に一致するエントリテーブル206のルーティング情報が存在するか否かを判定する(ステップS507)。
【0162】
一致するルーティング情報が存在する場合(ステップS507のYes)、変換データ生成部209は、一致したルーティング情報に基づいて、入力パケットを変換するための変換データを生成する(ステップS508)。そして、パケット生成部208は、変換データ生成部209により生成された変換データを用いて、入力パケットを変換して出力パケットを生成する(ステップS509)。これにより、本動作は終了となる。なお、この後、パケット送信部210は、出力パケットを送信する。
【0163】
ここで、入力パケットが受信されて比較部207による比較処理が行われている間にも、後続パケットが受信されている場合がある。受信された後続パケットは、パケットメモリ320のバッファ321においてライトポインタ322の指定したアドレスへ格納される。
【0164】
さて、比較処理において一致するルーティング情報が存在しない場合(ステップS507のNo)、エントリ更新部330は、データ量判定処理を行う(ステップS510)。受信データ量判定部331のライトポインタ保持部340は、ライトポインタ322により生成された書き込みアドレスを記憶している。また、受信データ量判定部331のリードポインタ保持部341は、リードポインタ323により生成された読み出しアドレスを記憶している。減算部342は、書き込みアドレスから読み出しアドレスを減算して未処理データ量を算出する。比較部343は、未処理データ量がテーブル更新許可閾値より小さいかを判定する。
【0165】
データ量判定処理において、未処理データ量がテーブル更新許可閾値以上である場合(ステップS510のNo)、当該入力パケットは、中央処理装置215によるパケット転送処理が行われ(ステップS503)、本動作は終了となる。
【0166】
一方、データ量判定処理において、未処理データ量がテーブル更新許可閾値より小さい場合(ステップS510のYes)、更新カウンタ部344は、更新カウンタ値のインクリメントを行う(ステップS511)。このとき、比較部343は、更新許可を示すテーブル更新許可信号をDMAコントローラ213へ出力する。同時に、更新カウンタ部344は、DMAアドレスオフセット信号をDMAコントローラ213へ出力する。
【0167】
DMAコントローラ213は、更新許可を示すテーブル更新許可信号とDMAアドレスオフセット信号とに基づいて、エントリテーブル206の更新を行う(ステップS512)。この後、ステップS506へ戻り、比較部207による比較処理が継続される。以上が、本実施形態おけるパケット転送装置200の動作の説明である。
【0168】
このように、受信データ量判定部331のデータ量判定処理においてエントリテーブル206の更新禁止を判定されるまで、DMAコントローラ213は、エントリテーブル206を更新し、そして、比較部207は、比較処理を継続する。データ量判定処理において、受信データ量判定部331の比較部343は、未処理データ量がテーブル更新許可閾値以上になるまで、更新許可を示すテーブル更新許可信号を出力する。そのため、未処理データ量がテーブル更新許可閾値以上となるまでエントリテーブル206は更新され、比較部207による比較処理は継続されることになる。
【0169】
未処理データ量は、パケットメモリ320のバッファ321に記憶された後続パケットのデータ量を示している。つまり、エントリ更新部331は、後続パケットの受信状態に基づいて、未処理で蓄積された後続パケットのデータ量が一定の値となるまでエントリテーブル206の更新を許可する。
【0170】
以上が、本実施形態におけるパケット転送装置300の動作の説明である。本実施形態のパケット転送装置300によれば、パケットメモリ320を備えることで、入力トラフィックを平均化することができる。そのため、バースト的に入力された入力パケットに対しても比較部207による比較処理のための時間を延長することが可能となる。このような構成は、短いレングスの入力パケットや後続パケットがバースト的に入力された後、さらに、後続の後続パケットがパケット受信間隔を空けて入力されるような場合に効果的である。
【0171】
このような構成により延長された時間を用いて、DMAコントローラ213は、エントリテーブル206を更新して、比較部207は、比較処理を繰り返し継続することが可能となる。そのため、エントリテーブルの容量を拡大すること無く、高速なパケット転送処理を実現することが可能である。以上が、本実施形態におけるパケット転送装置200の説明である。
【0172】
以上、本発明のパケット転送装置によれば、ネットワークプロセッサ内部に搭載されるメモリ容量の増大化を防ぐことが可能となる。それは、大容量メモリ内のルーティングテーブルのルーティング情報を用いてネットワークプロセッサ内に設けられたエントリテーブルのルーティング情報を更新するからである。また、エントリ更新部が、入力パケットのパケットレングスや、後続パケットの受信状況や、未処理パケットのデータ量等に応じて、更新許可及び更新禁止の判定を行うためである。
【0173】
また、本発明のパケット転送装置によれば、パケットフィルタリング機能や、QoS機能といったパケット転送処理以外の機能の処理を高速化することが可能となる。それは、ネットワークプロセッサにおいて効率的にパケット転送処理を実行することで、中央処理装置におけるパケット転送処理の負荷を軽減できるため、中央処理装置に上述のような機能の処理をより多く実行させることができるからである。
【0174】
さらに、本発明のパケット転送装置によれば、消費電力化を測ることが可能となる。それは、より多くのパケット転送処理をネットワークプロセッサで行うことで、中央処理装置によるパケット変換処理の負荷を低減することができるためである。そのため、中央処理装置の動作クロック周波数を低下させたり、あるいは動作クロックを一時的に停止することが可能となり、ダイナミックに電力削減を行うことが可能である。
【0175】
以上、実施形態を参照して本願発明を説明したが、本願発明は、上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更することができる。
【符号の説明】
【0176】
10 パーソナルコンピュータ
11 サーバ
13 インタネット
14 イントラネット
20 パケット
21 MACアドレスフィールド
22 IPヘッダフィールド
23 TCP/UDPヘッダフィールド
24 宛先MACアドレスフィールド
25 送信元MACアドレスフィールド
26 IP情報フィールド
27 送信元IPアドレスフィールド
28 宛先IPアドレスフィールド
29 送信元ポート番号フィールド
30 宛先ポート番号フィールド
31 トータルレングスフィールド
40 アドレス空間
41 エントリテーブル空間
42 ルーティングテーブル空間
43 大容量メモリ空間
50 変換前フィールド
51 変換後フィールド
52 エントリテーブル(ルーティングテーブル)
60 パケットレングスフィールド
61 システムクロック周波数フィールド
62 データ転送レートフィールド
63 更新回数制限値フィールド
70〜72 比較可能時間
80 第1のルーティングテーブルメモリ(ルーティングテーブル212)
81〜83 第2のルーティングテーブルメモリ(エントリテーブル206)
200 パケット転送装置
201 パケット受信部
202 レングス判定部
203 トラフィック判定部
204 エントリ更新部
205 比較要因抽出部
206 エントリテーブル
207 比較部
208 パケット生成部
209 変換データ生成部
210 パケット送信部
211 大容量メモリ
212 ルーティングテーブル
213 DMAコントローラ
214 ネットワークプロセッサ
215 中央処理装置
216 システムデータバス
220 選択部
221 物理層通信速度情報記憶部
222 システムクロック速度情報記憶部
230 更新カウンタ部
231 IPヘッダフィールドレングス抽出部
232 更新回数テーブル
233 比較部
240 入力パケット検出部
241 後続パケット検出判定部
242 更新カウンタ部
300 パケット転送装置
301 ネットワークプロセッサ
310 大容量メモリ
311 ルーティングテーブルA
312 ルーティングテーブルB
320 パケットメモリ
321 バッファ
322 ライトポインタ
323 リードポインタ
330 エントリ更新部
331 差分演算部
340 ライトポインタ保持部
341 リードポインタ保持部
342 減算部
343 比較部
344 更新カウンタ部
345 テーブル更新許可閾値設定値記憶部

【特許請求の範囲】
【請求項1】
入力パケットから出力パケットを生成するためのルーティング情報を記憶する第1メモリと、
前記ルーティング情報のうちから選択される選択ルーティング情報を記憶する第2メモリと、
前記入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が前記選択ルーティング情報に存在するか比較処理を行う比較部と、
前記特定ルーティング情報に基づいて前記入力パケットから前記出力パケットを生成するパケット生成部と、
前記比較処理において前記選択ルーティング情報のうちに前記特定ルーティング情報が存在しない場合に、前記第2メモリの前記選択ルーティング情報を更新可能か判定する更新判定部と、
前記更新判定部により前記第2メモリの前記選択ルーティング情報を更新可能と判定された場合に、前記第1メモリに記憶された前記ルーティング情報から前記選択ルーティング情報を新たに選択して、前記第2メモリに記憶された前記選択ルーティング情報の更新処理を行う転送処理部と
を備えるパケット転送装置。
【請求項2】
請求項1に記載のパケット転送装置であって、
前記更新判定部は、前記入力パケットのパケットレングスに基づいて算出される前記後続パケットを受信する時期までに前記第2メモリを更新可能な更新可能回数だけ前記第2メモリが更新されるまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するレングス判定処理を行うレングス判定部
を備えるパケット転送装置。
【請求項3】
請求項1に記載のパケット転送装置であって、
前記更新判定部は、前記後続パケットを受信したか監視することにより前記後続パケットを受信するまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するトラフィック判定処理を行うトラフィック判定部
をさらに備えるパケット転送装置。
【請求項4】
請求項2に記載のパケット転送装置であって、
前記レングス判定部は、
前記入力パケットのパケットレングスを検出するレングス抽出部と、
前記第2メモリの更新処理の実行可能回数を前記パケットレングスに応じて生成する更新回数テーブルと、
前記比較部による前記比較処理の実行完了を検知するとインクリメントして前記第2メモリの更新回数をカウントする第1更新カウンタ部と、
前記比較処理が完了する毎に前記更新回数と前記実行可能回数とを比較して、前記更新回数が前記実行可能回数と一致するまで前記第2メモリの前記選択ルーティング情報を更新可能と判定する第2比較部と
を備えるパケット転送装置。
【請求項5】
請求項3に記載のパケット転送装置であって、
前記トラフィック判定部は、
前記後続パケットの受信を検出する入力パケット検出部と、
前記比較処理が完了する毎に前記入力パケット検出部により前記後続パケットの受信を検出されたか判定し、前記後続パケットの受信が検出されるまで前記第2メモリの前記選択ルーティング情報を更新可能と判定する第2判定部と
をさらに備えるパケット転送装置。
【請求項6】
請求項1に記載のパケット転送装置であって、
前記更新判定部は、
前記入力パケットのパケットレングスに基づいて算出される前記後続パケットを受信する時期までに前記第2メモリを更新可能な更新可能回数だけ前記第2メモリが更新されるまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するレングス判定処理を行うレングス判定部と、
前記後続パケットを受信したか監視することにより前記後続パケットを受信するまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するトラフィック判定処理を行うトラフィック判定部と
を備えるパケット転送装置。
【請求項7】
請求項6に記載のパケット転送装置であって、
前記レングス判定部は、
前記入力パケットのパケットレングスを検出するレングス抽出部と、
前記比較部による前記比較処理の実行完了を検知するとインクリメントして前記第2メモリの更新回数をカウントする第1更新カウンタ部と、
前記第2メモリの更新処理の実行可能回数を前記パケットレングスに応じて生成する更新回数テーブルと、
前記比較処理が完了する毎に前記更新回数と前記実行可能回数とを比較して、前記更新回数が前記実行可能回数と一致するまで前記第2メモリの前記選択ルーティング情報を更新可能と判定する第2比較部と
を備え、
前記トラフィック判定部は、
前記後続パケットの受信を検出する入力パケット検出部と、
前記比較処理が完了する毎に、前記入力パケット検出部により前記後続パケットの受信を検出されたか判定し、前記後続パケットの受信が検出されるまで前記第2メモリの前記選択ルーティング情報を更新可能と判定する第2判定部と
を備えるパケット転送装置。
【請求項8】
請求項7に記載のパケット転送装置であって、
前記更新判定部は、前記レングス判定処理による判定結果と、前記トラフィック判定処理による判定結果とを選択する選択部をさらに備え、
前記選択部は、初期状態で前記レングス判定処理による判定結果を選択して、前記レングス判定部により前記更新処理が継続可能でないとの判定結果を入力した後に前記トラフィック判定部による判定結果を選択して、前記転送処理部による前記更新処理の可否を判定する
パケット転送装置。
【請求項9】
請求項1に記載のパケット転送装置であって、
前記更新判定部は、
前記入力パケットと前記後続パケットとを一時的に保持するパケットメモリと、
前記パケットメモリに保持された前記入力パケットと前記後続パケットのデータ量が所定の閾値を超えるまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するデータ量判定処理を行うデータ量判定部と
を備えるパケット転送装置。
【請求項10】
請求項9に記載のパケット転送装置であって、
前記パケットメモリは、
前記入力パケット及び前記後続パケットを保持するバッファと、
前記バッファにおける前記入力パケットあるいは前記後続パケットの書き込み位置を生成するライトポインタと、
前記バッファにおける前記入力パケットあるいは前記後続パケットの読み出し位置を生成するリードポインタと
を備え、
前記更新判定部は、前記書き込み位置と前記読み出し位置の差分から前記バッファに保持された前記入力データの前記データ量を算出する
パケット転送装置。
【請求項11】
請求項1から請求項10までのいずれかに記載のパケット転送装置であって、
前記エントリ更新部は、前記比較処理の実行回数をカウントする第2更新カウンタ部
をさらに備え、
前記転送処理部は、前記第2メモリが更新される毎に、前記ルーティング情報から前記選択ルーティング情報を選択する指定アドレスを、前記実行回数に前記第2メモリのメモリ容量を乗じた値だけ加算したアドレスで指定する
パケット転送装置。
【請求項12】
入力パケットから出力パケットを生成するためのルーティング情報を記憶する第1メモリと、
前記ルーティング情報のうちから選択される選択ルーティング情報を記憶する第2メモリと
を備えるパケット転送装置において、
前記入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が前記選択ルーティング情報に存在するか比較処理を行うステップと、
前記特定ルーティング情報に基づいて前記入力パケットから前記出力パケットを生成するステップと、
前記比較処理において前記選択ルーティング情報のうちに前記特定ルーティング情報が存在しない場合に、前記第2メモリの前記選択ルーティング情報を更新可能か判定するステップと、
前記更新判定部により前記第2メモリの前記選択ルーティング情報を更新可能と判定された場合に、前記前記第1メモリに記憶された前記ルーティング情報から前記選択ルーティング情報を新たに選択して、前記第2メモリに記憶された前記選択ルーティング情報の更新処理を行うステップと
を備えるパケット転送方法。
【請求項13】
請求項12に記載のパケット転送方法であって、前記更新可能か判定するステップは、
前記入力パケットのパケットレングスに基づいて算出される前記後続パケットを受信する時期までに前記第2メモリを更新可能な更新可能回数だけ前記第2メモリが更新されるまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するレングス判定処理を行うステップと
を備えるパケット転送方法。
【請求項14】
請求項12に記載のパケット転送方法であって、前記更新可能か判定するステップは、
前記後続パケットを受信するか監視することにより前記後続パケットを受信するまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するトラフィック判定処理を行うステップと
を備えるパケット転送方法。
【請求項15】
請求項12に記載のパケット転送方法であって、前記更新可能か判定するステップは、
前記入力パケットのパケットレングスに基づいて算出される前記後続パケットを受信する時期までに前記第2メモリを更新可能な更新可能回数を前記更新可能回数だけ前記第2メモリが更新されるまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するレングス判定処理を行うステップと、
前記後続パケットを受信するか監視を行うことにより前記後続パケットを受信するまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するトラフィック判定処理を行うステップと
を備えるパケット転送方法。
【請求項16】
請求項15に記載のパケット転送方法であって、前記更新可能か判定するステップは、
初期状態で前記レングス判定処理による判定結果を選択することにより前記転送処理部による前記更新処理の可否を判定するステップと、
前記レングス判定部により前記更新処理が継続可能でないとの判定結果を入力した後に前記トラフィック判定部による判定結果を選択することにより前記転送処理部による前記更新処理の可否を判定するステップと
を備えるパケット転送方法。
【請求項17】
請求項12に記載のパケット転送方法であって、前記更新可能か判定するステップは、
前記入力パケットと前記後続パケットとをバッファに一時的に保持するステップと、
前記パケットメモリに保持された前記入力パケットと前記後続パケットのデータ量が所定の閾値を超えるまで前記第2メモリの前記選択ルーティング情報を更新可能と判定するデータ量判定処理を行うステップと
を備えるパケット転送方法。
【請求項18】
請求項17に記載のパケット転送方法であって、前記入力パケットと前記後続パケットとを一時的に保持するステップは、
前記入力パケット及び前記後続パケットを保持するステップと、
前記バッファにおける前記入力パケットあるいは前記後続パケットの書き込み位置を生成するステップと、
前記バッファにおける前記入力パケットあるいは前記後続パケットの読み出し位置を生成するステップと
を備え、
前記データ量判定処理を行うステップは、
前記書き込み位置と前記読み出し位置の差分から前記バッファに保持された前記入力データの前記データ量を算出するステップ
を含むパケット転送方法。
【請求項19】
請求項12から請求項18までのいずれかに記載のパケット転送方法であって、
前記比較処理の実行回数をカウントするステップ
をさらに備え、
前記転送処理を行うステップは、前記第2メモリが更新される毎に前記ルーティング情報から前記選択ルーティング情報を選択する指定アドレスを前記実行回数に前記第2メモリのメモリ容量を乗じた値だけ加算したアドレスで指定するステップ
を含むパケット転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20A】
image rotate

【図20B】
image rotate