JP4630262B2 - キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム - Google Patents

キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム Download PDF

Info

Publication number
JP4630262B2
JP4630262B2 JP2006314237A JP2006314237A JP4630262B2 JP 4630262 B2 JP4630262 B2 JP 4630262B2 JP 2006314237 A JP2006314237 A JP 2006314237A JP 2006314237 A JP2006314237 A JP 2006314237A JP 4630262 B2 JP4630262 B2 JP 4630262B2
Authority
JP
Japan
Prior art keywords
packet
cache
packet processing
processing device
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006314237A
Other languages
English (en)
Other versions
JP2008131351A (ja
Inventor
幸司 杉園
貴文 濱野
道宏 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006314237A priority Critical patent/JP4630262B2/ja
Publication of JP2008131351A publication Critical patent/JP2008131351A/ja
Application granted granted Critical
Publication of JP4630262B2 publication Critical patent/JP4630262B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明はプロセスやデータを複数のプロセッサ、ならびにプロセッサ内に存在するスレッドを用いて並列処理を行う計算機に関する。特にパケット処理プロセッサが複数の処理を並列に処理することができるデータ転送装置におけるキャッシュの実現方法に関するものである。
近年、プロセッサの性能向上に限界が見えてきたのに伴い複数のプロセッサを用意し、それぞれで並列処理を行うようなマルチプロセッサシステムが提供されている。また、プロセッサの処理能力の向上の一手法として、高速なキャッシュを用いて、低速なキャッシュへのアクセス回数を削減する方式が存在する。パケット処理を行う場合でもこのような高速手法は有効であり、現在、多くの方法が検討されている。このような手法をマルチプロセッサシステムに適用する際、次の非特許文献1に示されるような方式が使用される。
パケット処理では、同一フローに属するパケット同士で経路などの検索結果を共用することができる。このため、同一フローに属するパケット同士でキャッシュされたデータを使用することで処理の高速化が見込まれる。非特許文献1で紹介する方式では、同一フローに属するパケットを同一のプロセッサで処理させることでキャッシュの効果を利用している。これを実現するために、処理プロセッサの前にフローIDを元にハッシュ計算を行い、計算結果を、パケットを処理するプロセッサのIDと関連づけるという機能を用意している。ハッシュを利用すると、同一のフローIDを持つパケットは同じプロセッサによりパケットを処理されることになる。
W. Shi, et al., "Load Balancing for Parallel Forwarding," IEEE/ACM Transaction on Networking, pp.790−801, 2005
ハッシュの問題点として、パケットの振り分け先をプロセッサの処理に応じて変更することができない点にある。この場合、1つのプロセッサに処理が集中する可能性が存在し、並列処理の効果を十分に得ることができない。これはフローIDごとに計算結果が決まっているというハッシュの特徴によるものである。
本発明の目的は、同一のフローに属するプロセッサを複数のプロセッサで処理し、負荷分散を実現するキャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラムを提供することにある。
本発明のキャッシュシステムは、
パケットの処理データを格納するキャッシュと、フローごとのパケットの到着順序をFIFOのキューで記録する順序データベースと、パケットを処理させるパケット処理装置を決定するアルゴリズムを記録したアルゴリズムテーブルと、パケットのフロー識別子から前記キャッシュのエントリを探すためのキャッシュ検索手段と、パケットを処理してもらうパケット処理装置を決定するパケット分配手段と、前記パケット処理装置から受信したキャッシュデータを前記キャッシュに記録するキャッシュアップデート手段と、前記パケット処理装置での処理が終了したパケットをパケットの到着順にソートするソート手段と、を備え、
前記キャッシュ検索手段は、パケットからフロー識別子を調べ、前記キャッシュの中に該フロー識別子に対応するキャッシュのデータが存在するか否か調べ、存在するならば該キャッシュデータをパケット処理用の情報に追加し、存在しなければ、前記順序データベースに該フロー識別子に対するエントリが存在するか否か調べ、存在するならば対応するキャッシュデータが到着するまで待機し、存在しなければ前記キャッシュに書き込まれるデータの処理を前記パケット処理装置に指示する情報をパケット処理用の情報に追記し、
前記パケット分配手段は、パケットを処理させるパケット処理装置を前記アルゴリズムテーブルに存在するアルゴリズムに従って決定し、決定したパケット処理装置の識別子を前記順序データベースに存在するフロー識別子に対するFIFOのキューに入力し、
前記キャッシュアップデート手段は、前記パケット処理装置から送られてきたキャッシュデータを前記キャッシュに追記し、データが前記キャッシュの容量を超えると前記キャッシュからデータを削除し、
前記ソート手段は、前記パケット処理装置からパケット処理用の情報が送られてくると、パケット処理装置の識別子と、パケットのフロー識別子を確認し、前記順序データベースにおけるフロー識別子に対応するFIFOキューの先頭の識別子とパケット処理装置の識別子を比較し、異なればパケットをバッファに格納し、同じであればパケットを送信し、前記FIFOキューの先頭の識別子を削除し、バッファに格納しているパケットの存在を確認し、もし存在すれば、バッファに格納されたパケットを処理したパケット処理装置の識別子と前記FIFOキューの先頭の識別子とを比較し、異なればパケットをバッファに格納し、同じであれば前記パケットを送信する処理からの動作を繰り返す。
パケットの到着順序を管理することで、同一フローに属するパケットを異なるパケット処理装置に送る場合であっても到着順序と同じ順序でパケットを送信するシステムを提供することが可能になる。結果として、パケットの処理を担当するパケット処理装置を自由に選べるため、パケット処理の負荷分散を行うことが可能となる。また、パケット処理を担当するパケット処理装置を決定するアルゴリズムを複数用意することが可能であるため、管理者のポリシーに応じた負荷分散を行うことが可能になる。
本発明の実施態様によれば、キャッシュ装置は、パケット分配手段は、前記キャッシュの中に受信パケットが属するフローに対応するデータが存在せず、かつ該フローに対応する前記順序データベースのFIFOキューにパケット処理装置の識別子が存在するときに、パケットを待機させずに、処理を行っているパケット処理装置とキャッシュを共有できるパケット処理装置を、受信パケットを処理する装置として決定する。
パケットの到着順序を管理することで、同一フローに属するパケットを異なるパケット処理装置に送る場合であっても到着順序と同じ順序でパケットを送信することが可能になる。さらに、同一フローに属するパケットが連続して到着し、かつキャッシュ装置に該フローに関連するキャッシュデータが存在しないと時に、先頭以外のパケットをキャッシュ装置に待機させずに、先頭のパケットを処理するパケット処理装置とキャッシュ装置とは別に設けているキャッシュを共有しているパケット処理装置に該パケットを送信することが可能であり、結果的にキャッシュ装置での待ち時間が短縮される。
本発明によれば、同一フローに属するパケットであっても、任意のパケット処理装置に処理をさせることが可能となり、結果として、負荷分散が実現される。
次に、本発明の実施の形態について図面を参照して説明する。
図1を参照すると、本発明の一実施形態のキャッシュシステムは、キャッシュデータを格納するキャッシュ装置1と、パケットを処理する3台のパケット処理装置2からなる。キャッシュ装置1はキャッシュデータの提供と、パケットを処理させるパケット処理装置2を決定する機能を有する。さらに、キャッシュ装置1は、この実施形態では、同一フローに属するパケットを複数のパケット処理装置2で処理させるために、パケットの処理終了順序がパケット処理装置2の負荷の状況などの要因により、必ずしもパケットの到着順序と同じでない場合が存在するため、パケットの到着順序をそろえるソート機能を持つ。
キャッシュ装置1は、図2に示すように、プロセッサ11と記憶媒体16からなる。記憶媒体16には、フローIDごとにキャッシュされたデータを格納するキャッシュ17と、パケットを処理させるパケット処理装置2を決定するア分配アルゴリズムが格納されているデータベースである分配アルゴリズム18と、フローごとの転送装置への到着順序をFIFOのキューで記録する順序データベース19とが含まれる。プロセッサ11には、パケット処理装置2から受信した、パケット処理装置2で処理されたキャッシュデータをキャッシュ17に記録するキャッシュアップデート部12と、キャッシュ17のなかに調査対象のパケットのフローID用のキャッシュデータが存在する否かを、パケットのフロー識別子から検索するキャッシュ検索部13と、パケットを処理してもらうパケット処理装置2を決定するとともに、パケットをパケット処理装置2に送るときに送る順序を順序データベース19に記録するパケット分配部14と、パケット処理装置2での処理が終了したパケットを転送装置の到着順にソートするソーター15とが含まれる。
パケット処理装置2は、図3に示すように、キャッシュ装置1から送られてきたパケットの情報に含まれる、キャッシュ対象データに対する処理を行うかどうかを指示するデータの有無をチェックするキャッシュ有無判定部21と、キャッシュ対象データ処理指示があったときにキャッシュ対象データのデータ処理を行うキャッシュ対象データ処理部22と、キャッシュ対象データの処理が終了したときに、処理結果をキャッシュ装置1に送るキャッシュアップデート部23と、キャッシュ対象データ処理以外のパケット処理を行うパケット処理部24と、パケット処理に使用するデータが格納されている記憶媒体25を有する。
まず、キャッシュ装置1の動作について説明する。キャッシュ装置1の動作は、一部のパケット処理装置2との間で装置内のキャッシュを共有できる場合とそうでない場合の2種類の動作が存在する。
まず、パケット処理装置2との間でキャッシュを共有できない場合の動作を、図4を参照して説明する。キャッシュ装置1のキャッシュ検索部13はパケットを受信すると(ステップ101)、ヘッダ内のフローIDを抽出する(ステップ102)。そして、キャッシュ17を検索し、前記フローIDと同じIDに対するエントリにキャッシュデータが存在するかどうかを確認する(ステップ103)。もし存在していれば、パケット処理装置2でデータ処理を行う必要がないため、パケット処理装置2にキャッシュ対象データ処理を行わないように指示する情報を作成し、パケット情報に追加する(ステップ104)。そして、パケットを処理させるパケット処理装置2を決定する(ステップ109)。もし、エントリ自体は存在するが、キャッシュデータが存在しない場合は、同じフローに属する別のパケットに対し、パケット処理装置2がキャッシュ対象のデータの処理を行っている場合であるので、その処理が終了するまで待機する(ステップ105、106)。キャッシュ対象データの処理が終了し、処理結果がキャッシュ17に格納されると、そのキャッシュデータをパケット情報に記録する。そして、待機していた同一フローに属するすべてのパケットに対し、処理してもらうパケット処理装置2を決定し、そのパケット処理装置2にパケットを送出する(ステップ107)。エントリ自体が存在しない場合、パケット処理装置2にデータ処理を指示する情報を作成し、パケット情報に追記する(ステップ108)。そして、パケットを処理してもらうパケット処理装置2を決定する(ステップ109)。パケットを処理させるパケット処理装置2が決定すると、パケットを到着順に並べるため、順序データベース19に記録されているFIFOキューに処理させるパケット処理装置2のIDを入れる(ステップ110)。そして、選択したパケット処理装置2にパケットの情報を送信する(ステップ111、112)。
次に、パケット処理装置2が装置間でキャッシュの共通利用が可能な場合の動作を、図5を参照して説明する。図4の場合との違いは、キャッシュ17内にエントリは存在するが、キャッシュデータが存在しない場合(図4のステップ103、105)の動作である。図5ではエントリは存在するが、キャッシュデータが存在しない場合、パケットを待機させずに、現在データ処理中のパケットを処理しているパケット処理装置2とキャッシュを共通利用できるパケット処理装置2に送り込む(ステップ113)。このとき、パケット処理装置2ではデータ処理を行わない。
次に、パケット処理装置2の動作を図6により説明する。パケット処理装置2はパケットをキャッシュ装置1から受信すると(ステップ201)、パケット情報中に、キャッシュ対象データの処理の指示を示す情報が存在するかどうかを確認する(ステップ202)。もし指示が存在すれば、データ処理を実行する(ステップ203)。処理が終了すると、処理結果をキャッシュするようキャッシュ装置1に指示を送る(ステップ204)。このとき、処理された結果も同時に送信する。もし、キャッシュ対象データの処理の指示が存在しなければ、ステップ203,204をスキップする。これらの処理が終了すると、データ処理以外の、処理結果を利用する処理を含めた処理を行う(ステップ205)。そして、自身のIDを含んだパケット情報をキャッシュ装置1に送り、処理を終える(ステップ206)。
次に、パケット処理装置2間でキャッシュの共有が可能である場合の動作を図7により説明する。図6の場合との違いは、ステップ202におけるキャッシュ対象データの処理の指示の存在の処理以降で、特に指示が存在しない場合の動作である。指示が存在しない場合、パケット処理装置2はキャッシュを共有している別のパケット処理装置2で、同一フローに属するパケットがないか確認する(ステップ207)。存在する場合、先に処理結果を利用しない処理を行い、処理終了後は処理中のデータがキャッシュ17に書き込まれたか否かを確認し、もし書き込まれていれば、処理結果を用いた処理を行い、そうでなければキャッシュ17にデータが書き込まれるまで待機する(ステップ208)。その他の処理は図6と同じである。
次に、パケットの処理が終了した後にキャッシュ装置1がパケットを到着順に並べる処理を図8により説明する。パケット情報をパケット処理装置2から受信すると(ステップ301)、パケットのフローIDとパケットを処理したパケット処理装置2のIDを確認する(ステップ302)。そして、順序データベース19内にある、フローIDごとのFIFOキューの先頭にある、パケット処理装置のIDと比較し、次に送信するパケットかどうかを確認する(ステップ303)。IDが一致しなければ、先に到着しているパケットがまだ処理中であるため、待機させる(ステップ304)。もし一致すれば、現在処理中のパケットのうち、一番先に到着したものであるため、次に送信する(ステップ305)。このとき、FIFOキューの先頭にあった、送信したパケットを処理していたパケット処理装置のIDを削除し、次に送信するパケットを処理しているパケット処理装置のIDを見る(ステップ306)。その後、送信したパケットより先に処理が終了し、待機しているパケットがないか確認する(ステップ307)。もし存在すれば、FIFOキューの先頭に位置するIDと、待機しているパケットを処理していたパケット処理装置のIDを比較し(ステップ308)、同じであればパケットを送信する(ステップ305)。そして再びステップ306の処理を行う。もし、IDが異なれば、まだ先に到着しているパケットが処理中であるため、再び待機する(ステップ309)。
なお、パケット処理装置2間でキャッシュを共有できる場合の具体例としては、1プロセッサ内でマルチスレッディングを行っており、各スレッドがコアのキャッシュを互いに使用する場合などがある。その具体的な動作については後ほど述べる。
次に、具体的なパケット処理例を、図9以降の各図を用いて説明する。図9では、キャッシュ装置1がいかなるエントリももっていない状況下でフローIDとしてAをもつフローAのパケットが到着した時の状況を示す。キャッシュ装置1はエントリがないため、キャッシュ対象データの処理を指示する情報を、パケット処理に使用するパケット情報に記載し、パケット処理装置2にアルゴリズムにしたがって送信する。ここではアルゴリズムにより、パケット処理装置23にパケットを処理させることにしたとする。キャッシュ装置1はフローAのパケットがパケット処理装置23で処理されていることを順序データベース19で管理する。このため、順序データベース19におけるフローIDがAのエントリとなるFIFOキューにパケット処理装置23のIDである3を入れる。
図10はその後、フローIDがBのパケットとフローAのパケットの2つめが到着したときを示す。フローIDがBのパケットは図9におけるフローAのパケットと同じ処理を行う。そして、フローIDがAの2つめのパケットが到着すると、キャッシュ装置1はフローIDがAに対するキャッシュ情報を有するかどうか確認する。キャッシュ情報がまだなく、順序データベース19にパケットを処理しているパケット処理装置のIDが存在することを確認すると、キャッシュ装置1は現在フローAのパケットがパケット処理装置2でデータ処理中であると判断し、2つめのパケットを待機させる。
図11で、パケット処理装置23でのフローAの1つめのパケットに対するキャッシュ対象データの処理が終了したときの様子を説明する。パケット処理装置23はデータ処理が終了すると、キャッシュ装置1に処理結果を送信する。これを受け、キャッシュ装置1は処理結果をキャッシュする。これと同時に待機していたフローAの2つめのパケットのパケット処理装置を決定し、そこにパケット情報を送る。このとき、アップデートされたキャッシュの情報をパケット情報の一部に加えて送信する。ここで、2つめのパケットをパケット処理装置22で処理すると考える。キャッシュ装置1はパケットをパケット処理装置22に送るときに、順序データベース19内のフローAに対するFIFOキューの後ろにパケット処理装置22のIDである2を挿入する。
図12にフローAの1つめのパケットの処理が終了し、情報がキャッシュ装置1に戻されるときの動作が記載されている。キャッシュ装置1はパケット処理装置23からパケット情報を受信すると、順序データベース19を参照し、フローAにおける次に送信するパケットがどこで処理されていたかを確認する。この場合、パケット処理装置23で処理されているパケットが次に送信するものであることを示されており、到着したパケットが次に送信するパケットであることがわかる。これを受けてキャッシュ装置1は次の処理を行うパケット処理装置にパケットを送る。そして、順序データベース19の先頭にあった、パケット処理装置22を示すIDを削除する。これにより、次に送信するパケットがパケット処理装置22で処理されていることがわかる。そして、現在フローAのパケットがキャッシュ装置1で待機させられているかどうかを確認する。この場合、パケットは待機させられていないので、処理は終了する。もし待機させられていたら、FIFOキューの先頭のIDと待機しているパケットが処理されていたパケット処理装置2のIDを比較し、送信するかどうかを判定するという処理が走る。
図13で、フローIDがAの3番目のパケットが新たに到着し、パケット処理装置22で処理されている2番目のパケットより先に処理が終了したときの動作の説明を行う。キャッシュ装置1は順序データベース19から次に送信するパケットは現在処理装置22で処理されていることがわかるため、到着した3番目のパケットを待機させる。その後、2番目のパケットを送信した後に、順序データベース19が3番目のパケットを送信することを示すため、そのときに3番目のパケットを送信する。
最後に、パケット処理装置2の一部でキャッシュを共有できるときの動作例を図14に示す。この例では、パケット処理装置2として、複数のタスクを1つのプロセッサリソースを用いて実行するマルチスレッディング可能なプロセッサ(パケット処理装置を複数収容した装置)を利用する。この中では、前回までの説明におけるパケット処理装置2が1つのスレッドに相当する。同一のプロセッサで走るスレッド同士では、プロセッサ内に存在するキャッシュを共有することが可能となる。この場合、フローAの1番目のパケットがプロセッサ3のスレッド1番で処理されているとすると、2番目のパケットが到着したとき、キャッシュ装置1は2番目のパケットの処理をプロセッサ3のいずれかのスレッドに行わせる。1番目のパケットのキャッシュ対象データ処理が終了すると(図15)、キャッシュ結果はキャッシュ装置1と1番目のパケットを処理したプロセッサのキャッシュに書き込まれる。2番目のパケットにおけるキャッシュ対象のデータを使用した処理はプロセッサのキャッシュに書き込まれたデータを用いて行われる。2番目のパケットを行う際、キャッシュにデータがある場合はそれを利用して処理を行い、ない場合は先にキャッシュ対象のデータを使用しない処理を行う。そして、キャッシュ対象データ処理結果を使用する処理は、処理結果がキャッシュに書き込まれるまで待つ。そのほかの処理は前述の説明と同じ動作を行う。
なお、キャッシュ装置およびパケット処理装置の機能は、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、CD−ROM等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの(伝送媒体もしくは伝送波)、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間プログラムを保持しているものを含む。
本発明の一実施形態のキャッシュシステムの構成図である。 キャッシュ装置のブロック図である。 パケット処理装置のブロック図である。 パケット分配時(マルチスレッド不可)のキャッシュ装置の動作を示すフローチャートである。 パケット分配時(パケット処理装置キャッシュ共有可)のキャッシュ装置の動作を示すフローチャートである。 パケット処理装置の動作を示すフローチャートである。 パケット処理装置(キャッシュ共有可)の動作を示すフローチャートである。 ソート時のキャッシュ装置の動作を示すフローチャートである。 具体的なパケット処理例(その1)を示す図である。 具体的なパケット処理例(その2)を示す図である。 具体的なパケット処理例(その3)を示す図である。 具体的なパケット処理例(その4)を示す図である。 具体的なパケット処理例(その5)を示す図である。 具体的なパケット処理例(その6)を示す図である。 具体的なパケット処理例(その7)を示す図である。
符号の説明
1 キャッシュ装置
2,21〜24 パケット処理装置
11 プロセッサ
12 キャッシュアップデート部
13 キャッシュ検索部
14 パケット分配部
15 ソーター
16 記憶媒体
17 キャッシュ
18 分配アルゴリズム
19 順序データベース
21 キャッシュ有無判定部
22 キャッシュ対象データ処理部
23 キャッシュアップデート部
24 パケット処理部
25 記憶媒体
101〜113,201〜208,301〜308 ステップ

Claims (5)

  1. パケットの処理データを格納するキャッシュと、フローごとのパケットの到着順序をFIFOのキューで記録する順序データベースと、パケットを処理させるパケット処理装置を決定するアルゴリズムを記録したアルゴリズムテーブルと、パケットのフロー識別子から前記キャッシュのエントリを探すためのキャッシュ検索手段と、パケットを処理してもらうパケット処理装置を決定するパケット分配手段と、前記パケット処理装置から受信したキャッシュデータを前記キャッシュに記録するキャッシュアップデート手段と、前記パケット処理装置での処理が終了したパケットをパケットの到着順にソートするソート手段と、を備え、
    前記キャッシュ検索手段は、パケットからフロー識別子を調べ、前記キャッシュの中に該フロー識別子に対応するキャッシュのデータが存在するか否か調べ、存在するならば該キャッシュデータをパケット処理用の情報に追加し、存在しなければ、前記順序データベースに該フロー識別子に対するエントリが存在するか否か調べ、存在するならば対応するキャッシュデータが到着するまで待機し、存在しなければ前記キャッシュに書き込まれるデータの処理を前記パケット処理装置に指示する情報をパケット処理用の情報に追記し、
    前記パケット分配手段は、パケットを処理させるパケット処理装置を前記アルゴリズムテーブルに存在するアルゴリズムに従って決定し、決定したパケット処理装置の識別子を前記順序データベースに存在するフロー識別子に対するFIFOのキューに入力し、
    前記キャッシュアップデート手段は、前記パケット処理装置から送られてきたキャッシュデータを前記キャッシュに追記し、データが前記キャッシュの容量を超えると前記キャッシュからデータを削除し、
    前記ソート手段は、前記パケット処理装置からパケット処理用の情報が送られてくると、パケット処理装置の識別子と、パケットのフロー識別子を確認し、前記順序データベースにおけるフロー識別子に対応するFIFOキューの先頭の識別子とパケット処理装置の識別子を比較し、異なればパケットをバッファに格納し、同じであればパケットを送信し、前記FIFOキューの先頭の識別子を削除し、バッファに格納しているパケットの存在を確認し、もし存在すれば、バッファに格納されたパケットを処理したパケット処理装置の識別子と前記FIFOキューの先頭の識別子とを比較し、異なればパケットをバッファに格納し、同じであれば前記パケットを送信する処理からの動作を繰り返すキャッシュ装置。
  2. 前記パケット分配手段は、前記キャッシュの中に受信パケットが属するフローに対応するデータが存在せず、かつ該フローに対応する前記順序データベースのFIFOキューにパケット処理装置の識別子が存在するときに、パケットを待機させずに、処理を行っているパケット処理装置とキャッシュを共有できるパケット処理装置を、受信パケットを処理する装置として決定する、請求項に記載のキャッシュ装置。
  3. パケットの処理データを格納するキャッシュと、フローごとのパケットの到着順序をFIFOのキューで記録する順序データベースと、パケットを処理させるパケット処理装置を決定するアルゴリズムを記録したアルゴリズムテーブルと、パケットのフロー識別子から前記キャッシュのエントリを探すためのキャッシュ検索手段と、パケットを処理してもらうパケット処理装置を決定するパケット分配手段と、前記パケット処理装置から受信したキャッシュデータを前記キャッシュに記録するキャッシュアップデート手段と、前記パケット処理装置での処理が終了したパケットをパケットの到着順にソートするソート手段と、を備えたキャッシュ装置で行われるキャッシュ方法であって、
    前記キャッシュ検索手段が、パケットからフロー識別子を調べ、前記キャッシュの中に該フロー識別子に対応するキャッシュのデータが存在するか否か調べ、存在するならば該キャッシュデータをパケット処理用の情報に追加し、存在しなければ、前記順序データベースに該フロー識別子に対するエントリが存在するか否か調べ、存在するならば対応するキャッシュデータが到着するまで待機し、存在しなければ前記キャッシュに書き込まれるデータの処理を前記パケット処理装置に指示する情報をパケット処理用の情報に追記するステップと、
    前記パケット分配手段が、パケットを処理させるパケット処理装置を前記アルゴリズムテーブルに存在するアルゴリズムに従って決定し、決定したパケット処理装置の識別子を前記順序データベースに存在するフロー識別子に対するFIFOのキューに入力するステップと、
    前記キャッシュアップデート手段が、前記パケット処理装置から送られてきたキャッシュデータを前記キャッシュに追記し、データが前記キャッシュの容量を超えると前記キャッシュからデータを削除するステップと、
    前記ソート手段が、前記パケット処理装置からパケット処理用の情報が送られてくると、パケット処理装置の識別子と、パケットのフロー識別子を確認し、前記順序データベースにおけるフロー識別子に対応するFIFOキューの先頭の識別子とパケット処理装置の識別子を比較し、異なればパケットをバッファに格納し、同じであればパケットを送信し、前記FIFOキューの先頭の識別子を削除し、バッファに格納しているパケットの存在を確認し、もし存在すれば、バッファに格納されたパケットを処理したパケット処理装置の識別子と前記FIFOキューの先頭の識別子とを比較し、異なればパケットをバッファに格納し、同じであれば前記パケットを送信する処理からの動作を繰り返すステップと、を有するキャッシュ方法。
  4. 前記パケット分配手段が、前記キャッシュの中に受信パケットが属するフローに対応するデータが存在せず、かつ該フローに対応する前記順序データベースのFIFOキューにパケット処理装置の識別子が存在するときに、パケットを待機させずに、処理を行っているパケット処理装置とキャッシュを共有できるパケット処理装置を、受信パケットを処理する装置として決定するステップをさらに有する、請求項に記載のキャッシュ方法。
  5. 請求項またはに記載のキャッシュ装置をコンピュータとして機能させるためのキャッシュプログラム。
JP2006314237A 2006-11-21 2006-11-21 キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム Expired - Fee Related JP4630262B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006314237A JP4630262B2 (ja) 2006-11-21 2006-11-21 キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006314237A JP4630262B2 (ja) 2006-11-21 2006-11-21 キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム

Publications (2)

Publication Number Publication Date
JP2008131351A JP2008131351A (ja) 2008-06-05
JP4630262B2 true JP4630262B2 (ja) 2011-02-09

Family

ID=39556767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006314237A Expired - Fee Related JP4630262B2 (ja) 2006-11-21 2006-11-21 キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム

Country Status (1)

Country Link
JP (1) JP4630262B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9124540B2 (en) 2013-01-14 2015-09-01 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Caching of look-up rules based on flow heuristics to enable high speed look-up

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004158903A (ja) * 2002-11-01 2004-06-03 Fujitsu Ltd パケット処理装置
JP2004260532A (ja) * 2003-02-26 2004-09-16 Hitachi Ltd ネットワークプロセッサ
JP2005117206A (ja) * 2003-10-06 2005-04-28 Hitachi Ltd ネットワークプロセッサアクセラレータ
JP2005519530A (ja) * 2002-03-05 2005-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク処理手段によるパケット・フローの順序付き動的分散のための方法およびシステム
JP2006135572A (ja) * 2004-11-05 2006-05-25 Hitachi Ltd ネットワーク装置におけるトラフィック制御及びその方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519530A (ja) * 2002-03-05 2005-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク処理手段によるパケット・フローの順序付き動的分散のための方法およびシステム
JP2004158903A (ja) * 2002-11-01 2004-06-03 Fujitsu Ltd パケット処理装置
JP2004260532A (ja) * 2003-02-26 2004-09-16 Hitachi Ltd ネットワークプロセッサ
JP2005117206A (ja) * 2003-10-06 2005-04-28 Hitachi Ltd ネットワークプロセッサアクセラレータ
JP2006135572A (ja) * 2004-11-05 2006-05-25 Hitachi Ltd ネットワーク装置におけるトラフィック制御及びその方法

Also Published As

Publication number Publication date
JP2008131351A (ja) 2008-06-05

Similar Documents

Publication Publication Date Title
US6854117B1 (en) Parallel network processor array
US7715428B2 (en) Multicore communication processing
US7813342B2 (en) Method and apparatus for writing network packets into computer memory
JP3935880B2 (ja) ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ
US8244911B2 (en) Method and apparatus for concurrent and stateful decompression of multiple compressed data streams
US9356844B2 (en) Efficient application recognition in network traffic
US20130066977A1 (en) Message queue behavior optimizations
JP2009529183A (ja) 応答出力キャッシュに対するマルチキャッシュ協調
US10002023B2 (en) Method and apparatus for managing one or more tasks of a many-core system using one or more task descriptor entries
JP5672199B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2005513895A5 (ja)
US11502967B2 (en) Methods and apparatuses for packet scheduling for software-defined networking in edge computing environment
US20160241482A1 (en) Packet communication apparatus and packet communication method
JP2008517565A (ja) Rxfifoバッファを用いて高速ネットワークアプリケーションにてrxパケットを処理するシステムおよび方法
Islam et al. SOR-HDFS: a SEDA-based approach to maximize overlapping in RDMA-enhanced HDFS
JP6359111B2 (ja) 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法および装置
US20060029088A1 (en) Reducing latency in a channel adapter by accelerated I/O control block processing
JP4630262B2 (ja) キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム
Pan et al. Nb-cache: Non-blocking in-network caching for high-performance content routers
JP4648290B2 (ja) パケット転送装置、パケット分配方法、グループ所属プロセッサ変更方法、およびコンピュータプログラム
US9996468B1 (en) Scalable dynamic memory management in a network device
CN113259274B (zh) 多核模式下处理网络报文乱序和负载均衡的方法及存储介质
US20150220872A1 (en) Method and an apparatus for work packet queuing, scheduling, and ordering with conflict queuing
US20130179533A1 (en) Data storage control system, data storage control method, and data storage control program
US9736080B2 (en) Determination method, device and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101020

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees