JP4483535B2 - ネットワーク装置 - Google Patents
ネットワーク装置 Download PDFInfo
- Publication number
- JP4483535B2 JP4483535B2 JP2004321458A JP2004321458A JP4483535B2 JP 4483535 B2 JP4483535 B2 JP 4483535B2 JP 2004321458 A JP2004321458 A JP 2004321458A JP 2004321458 A JP2004321458 A JP 2004321458A JP 4483535 B2 JP4483535 B2 JP 4483535B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- cache
- flow
- information
- registered
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
- H04L49/9094—Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
また、パケットを格納する複数本のキューを備え、各キューの先頭パケットに転送終了予定時刻の早い順に転送順序の重み付けを行い、転送帯域制御を実施するスケジューラに関して特開2000−101637にて公開されている。ただし、事実上、比較的少数のキューしかハードウェアへの実装が困難とし、特開2003−324471で、事実上実装可能なキューの数を増加させ、帯域制御を高精度化させるために複数個の演算器を並列且つ時分割で動作させ前記のスケジューリングを実施する手法に関して公開している。
しかしながら、いずれのスケジューリングも、本発明が解決しようとする課題、プロセスキャッシュのヒット率の低下を防ぐためのスケジューリングを実施することができない。
本願発明者が出願した特願2003−346519では、プロセスキャッシュにミスしたパケットを処理する機能ブロックにおいて、キャッシュミスしたフローの先頭パケットのみプロセッサで処理させ、該フローの二つ目以降はキャッシュミスを扱う前記機能ブロックで保持しておく手法が開示されている。しかし、プロセスキャッシュにアクセスする以前にパケットをスケジューリングする手法に関しては言及していない。
また、可能な限りプロセスキャッシュにヒットする状態を作り出すことで、プロセスキャッシュミス時に利用するパケット処理プロセッサの稼働率を低下させ、消費電力を低減することにある。
各フローの先頭パケットは、他のフローで待機中のパケットを追い越して処理されるようにすることで、全体のスループットを向上させることができる。
(1)上記プロセスキャッシュに処理結果が未登録な第1のフローの第1のパケットを、上記パケット処理部で処理し、
(2)上記第1のフローの第1のパケットに後続するパケットは、上記第1のパケットの処理結果が上記プロセスキャッシュに登録されるまで待機させ、登録の後、上記プロセスキャッシュの情報を用いて処理を行い、
(3)上記第1のフローの第1のパケットに後続するパケットを待機させている間に、第2のフローのパケットが該待機中のパケットより先に処理されるように、
フローを制御することを特徴とする。
具体的には、トラフィック管理部は、生成されたフローに対応する内部処理情報列を、フローの種類毎にパケットの受信順序を保持して格納するキューを有し、キューに格納される内部処理情報列は、対応するパケットの処理結果がプロセスキャッシュに登録されているか否かを示す登録済み情報を含む。この登録済み情報を用いてパケットを処理部へおくる順番を制御し、フローの制御を行う。
解析部の選択により、パケットがパケット処理部で処理された場合、当該処理結果がプロセスキャッシュに登録完了されたことをトラフィック管理部に通知するキャッシュミス処理部を設けることが可能である。トラフィック管理部は、キャッシュミス処理部からの通知に基づいて、内部処理情報列に登録済み情報を付加することができる。このようにすると、トラフィック管理部は、内部処理情報列に負荷された登録済み情報を参照してフローを制御することができる。
第1のフローの第1のパケットは、第1のフローの先頭パケットであってもよい。また、第2のフローのパケットは、プロセスキャッシュに処理結果が未登録な先頭パケットまたは、プロセスキャッシュに処理結果が登録済みの後続パケットであってもよい。
また、本発明のトラフィック管理部を利用すると、前記キャッシュヒット率の低下抑止によりプロセスキャッシュミス時に利用するパケット処理を実施するプロセッサの稼働率を低下させ、消費電力を低減する効果がある。
本実施例では、ネットワーク装置は、ネットワークからパケットを送受信するためのネットワークインタフェース部101、ネットワークトラフィックを制御するためのキャッシュ用トラフィック制御部102、キャッシュ型パケット処理部103、前記101、102、103を含むネットワークインタフェースカード10、複数のネットワークインタフェースカード10を結合しパケットを交換するスイッチファブリック11等で構成される。この他に複数のネットワークインタフェースカード10の間の経路情報等の集中管理を行うホストプロセッサやホストプロセッサへのインタフェース等もある。
前記動作により、キャッシュ型パケット処理部103では、フローの先頭のパケット以外は全てキャッシュヒットさせることができる。即ち、パケットの到着順序に依存するキャッシュヒット率の低下を防ぎ、結果としてネットワーク装置のスループット低下を回避する効果がある。
まず、トラフィックマネージャについて説明する。トラフィックマネージャとは、規定帯域以上の入力がないか監視し、規定帯域以上の場合には入力を廃棄するポリシングや、規定帯域以上の出力を規定以下に制限するためのシェイピング、フローの順序を優先順位に応じて調整するスケジューリング等を実施するデバイスである。トラフィックマネージャを利用したネットワーク装置は、例えば図2に示すように、ネットワークからパケットを送受信するためのネットワークインタフェース部101、パケット処理部としてのネットワークプロセッサ(もしくはそれに順ずるASIC)110、トラフィック制御部としてのトラフィックマネージャ(もしくはそれに順ずるASIC)111、前記101、110、111を含むネットワークインタフェースカード10、複数のネットワークインタフェースカード10を結合しパケットを交換するスイッチファブリック11等で構成される。この他に複数のネットワークインタフェースカード10の間の経路情報等の集中管理を行うホストプロセッサやホストプロセッサへのインタフェース等もある。
キャッシュ用トラフィック制御部102は、一実施例として、入力インタフェース201、パケット解析部202、トラフィック管理部203、出力データ生成部204、出力インタフェース205、プロセスキャッシュ登録信号208、パケットメモリ210より構成される。前記のキャッシュ用トラフィック制御部102の構成要素は、低レイテンシかつ高速なパケット処理を実現するには単一のチップ上に実装するのが望ましい。パケットメモリ210についても、例えば、混載DRAM(Dynamic Random Access Memory)技術や1T−SRAM(1Transistor Static Random Access Memory)技術等の高密度実装可能な高速オンチップメモリを利用してキャッシュ用トラフィック制御部102の他の構成要素と同一チップ上に実装するのが望ましいが、パケットメモリ210の一部もしくは全てをチップ外部に実装する選択肢もある。
固有情報401は、各トークンを区別するために用いるパケット毎の固有の情報である。例えば、パケットメモリ210へのパケット格納アドレスが挙げられ、パケット格納アドレスにより各トークンを区別可能になる。また、パケット処理に利用するために、実装によっては、パケットのサイズ、パケットのフラグメント情報、パケットを解析した結果判明したエラー情報、TCPの制御情報等を含めてもよい。例えば、パケットサイズは、複数のフローがキャッシュ用トラフィック制御部102から発行可能になった時に、後述するQoS(Quarity of Service)制御の一環としてパケットサイズを利用しながら出力するフローを選択するのに利用できる。また、TCPの制御ビットでは、例えばFIN及びRSTビットを利用しフローの最終パケットのトークンであることを示し、当該トークン通過後、対応するプロセスキャッシュのエントリ、FIFOキューのエントリをクリアするのに利用できる。
FIFOキュー505は、プロセスキャッシュのエントリ数Kと同じだけの本数を具備する。例えば、4000エントリのプロセスキャッシュを利用する場合、4000本のFIFOキューを具備する。各FIFOキュー505は独立したメモリで実現してもよいし、複数本または全体をひとまとめにしたメモリで実現してもよい。
まず、タグ502及びFIFOキュー505への書込み制御に関して説明する。トークンは、前記の方法でハッシュ部501によりタグ502を参照し、プロセスキャッシュのヒット判定を行い書き込み制御部504へ通知する。ヒットしていれば、書込み制御部504は、対応するFIFOキューにトークンの固有情報401を書き込み、FIFOキューエンプティビット422を空ではないことを示す値(例えば0)にする。
プロセスキャッシュにミスしていれば、当該トークンの解析情報402と抽出情報403を対応するエントリのタグ502へ、当該トークンの固有情報401を対応するFIFOキュー505に登録する。また、プロセスキャッシュ登録中ビット424に登録中を示す値(例えば1)をセットする。
(1)フローの先頭、即ちプロセスキャッシュに未登録のパケットである場合。この場合、プロセスキャッシュ登録済みビット423は未登録を示す値(例えば0)、プロセスキャッシュ登録中ビット424は登録中で無いことを示す値(例えば0)、FIFOキューエンプティビット422は空ではない値(例えば0)を示している。
(2)フローの二つ目以降、即ちプロセスキャッシュに登録済みのパケットである場合。この場合、プロセスキャッシュ登録済みビット423は登録済を示す値(例えば1)、プロセスキャッシュ登録中ビット424の値は無視し、FIFOキューエンプティビット422は空ではない値(例えば0)を示している。
前記(1)、(2)いずれかの状況になったエントリがあれば、対応するFIFOキュー505に登録されている固有情報401と、タグ502の解析情報402、抽出情報403を読出して結合してトークンに戻し、登録FIFOキュー番号451(タグ502のエントリ番号にも対応している)と一緒に出力データ生成部204へ渡す。尚、あるフローの(2)の状態のパケットを、異なるフローの(1)もしくは(2)の状態のパケットは追い越しを行うことができる。基本的には、(1)の状態のエントリのトークンを優先的に出力データ生成部204へ渡すことで、プロセスキャッシュになるべく早期にエントリ登録を実現する。
尚、FIFOキュー505は、メモリ容量が許すのであれば固有情報401だけでなく解析情報402と抽出情報403を記録しておいてもよい。また、読出しを行ったFIFOキュー505が空になる場合、対応するFIFOキュー情報430を消し、タグ登録情報420のFIFOキューエンプティビット422に空を示す値(例えば1)を設定する。
そこで、同一エントリの割り当てが発生してもキャッシュヒットにできるように、タグ及びFIFOキュー部分をN個持たせる(Nウェイ・)セット・アソシアティブ方式をとることも可能である。(Nウェイ・)セット・アソシアティブ方式では、図11に示すように、ハッシュして得られた値による割り当て位置をN個まで増加させることができる。(Nウェイ・)セット・アソシアティブ方式のタグ及びFIFOキューを用いた場合、トークンにハッシュをかけた結果、未登録のウェイがあれば、前記未登録ウェイへトークンを登録する。N箇所全ての割り当て箇所が既登録であれば、任意のウェイを選択して上書きする。尚、キャッシュに登録されている情報が可能な限り有効に利用されるよう、前記任意ウェイを選択するためには、通常のプロセッサで利用されるキャッシュ同様、最も利用されていないエントリを選択するLRU(Least Recently Used)アルゴリズムや一番古いエントリを選択するためのFIFO(First In First Out)アルゴリズム等を実装する。LRUアルゴリズムを正確に実装するためには一エントリあたりN!(Nの階乗)ビット、FIFOアルゴリズムを正確に実装するためには一エントリあたりLog2Nビットの情報が必要になる。
当該エントリを後発のトークンにより上書きしても構わないのは、第一の場合として、タグ502の対応するエントリが空いている場合である。第二の場合として、タグ502の対応するエントリにフローが登録されているが、対応するFIFOキューに処理すべきトークンが全く無い場合である。即ち、第一の場合とは、「タグ502の当該エントリのプロセスキャッシュ登録済みビット423が未登録を示す値(例えば0)であり、尚且つプロセスキャッシュ登録中ビット424が登録中でないことを示す値(例えば0)である場合」である。また、第二の場合とは、「タグ502の当該エントリのプロセスキャッシュ登録済みビット423が登録済みを示す値(例えば1)であり、尚且つ、FIFOキューエンプティビット422が、FIFOキューが空であることを示す値(例えば1)の場合」である。
まず、キャッシュ登録済みのトークンの処理に関して説明する。キャッシュ登録済みのトークンは、パケット処理部305で処理する必要が無いため、プロセスキャッシュ303に渡される。プロセスキャッシュ303は一実施例として図7に示すように、ハッシュ部511、プロセスキャッシュデータ部512、結合部513により構成される。本実施例では、プロセスキャッシュのタグ部分はキャッシュ用トラフィック制御部102に配置するため、キャッシュ型パケット処理部103のプロセスキャッシュ303はデータ部分のみを持つだけでよい。ハッシュ部511は、キャッシュ用トラフィック制御部102のタグ502へのトークン振分を行うハッシュ部501と同一のハッシュを利用する。プロセスキャッシュデータ部512には、プロセッサで処理後のパケット抽出情報α411と処理情報412により構成される置換トークン情報(図4の470)が格納される。
処理情報412は、トークン410を元のパケットに対してどのように適用するかを示す情報である。例えば、抽出情報α411に入っている情報のサイズと前記情報をパケットのどの位置にどのように、即ち挿入するのか置換するのか、または削除するのかを示し、またパケットの廃棄指示を出したり、アドレス変換操作を支持したり、QoS情報やスイッチファブリック11やネットワークインタフェース101の出力ポートを指定したりするのに利用する。
プロセスキャッシュデータ512を参照するトークンは既にヒットすることが判明している状態であり、本参照により得た置換トークン情報470と、参照に利用したトークンの固有情報401、解析情報402により、パケット処理用トークン(図4の410)を結合器513により生成し、後処理部306へ渡す。
尚、パケット処理部で扱うには処理時間があまりに長すぎる、複雑すぎる、またはネットワーク装置の転送系ではなく制御系の処理であると判断される処理は、外部に設置するホストプロセッサ等へ要求をあげることができる。例えば、経路情報を更新・維持するためのRIP(Routing Information Protocol)やOSPF(Open Shortest Path First)等のプロトコル処理等があげられる。
また、パケット処理部で処理したトークンは、キャッシュミス管理テーブル701から、対応するトークンの固有情報401及び解析情報402、処理情報テーブル703から抽出情報α411と処理情報412を読出し、結合器704にて結合して後処理部306へ渡す。
後処理部306は、受信したトークンの解析情報402、処理情報412を参照し、当該トークンを生成する元になったパケット454に対して必要な処理を実施する。パケットに対して新規に追加するヘッダ、もしくはヘッダの中に置換すべき情報がある場合、当該トークンの抽出情報α411に対応する情報があるため、解析情報402及び処理情報412にある情報を元にパケットヘッダの修正を実施する。
複数の出口を持つ場合には、やはりトークンに含まれているポート番号を利用して出口のネットワークインタフェースを決定する。
そこで、本発明のキャッシュ用トラフィック制御部の第二の実施の形態として、前記のスラッシングによる性能低下を防ぐために、小容量のフル・アソシアティブ・プロセスキャッシュと前記小容量フル・アソシアティブ・プロセスキャッシュに対応するタグ及びFIFOキューを具備するキャッシュ用トラフィック制御部の実施例を示す。
(1)セット・アソシアティブ方式のタグ502でヒットする場合、もしくはミスするがセット・アソシアティブ方式のタグ502に利用されていないウェイがある場合は、実施例1と同様にセット・アソシアティブ方式のタグ502及びそれに付随するFIFOキュー505でトークンの管理を行う。
(2)セット・アソシアティブ方式のタグ502でミスして、尚且つ利用できるエントリがない場合は、連想タグ601の利用されていないエントリを利用してトークンの管理を行う。
本実施例2では、実施例1と比較して、短時間の間にプロセスキャッシュの同一エントリばかりが異なるフロー群のパケットで集中的に利用されるケースで有利となる。
本実施例3において、キャッシュ用トラフィック制御部102の構成は、実施例1もしくは実施例2と同一であるが、出力データ生成部204は、キャッシュ型パケット処理部103へ情報を渡す時、図4の450から固有情報401、解析情報402、抽出情報403を取り除いた形式で渡す。
尚、図16においてキャッシュ用トラフィック制御部とキャッシュ型パケット処理部を更に分割して実装してもよい。
尚、本発明は下記の解決手段でも実現可能である。
(解決手段1)
入力されたパケットを分類しフローとして扱うための解析部と、 前記パケットに対して実施した処理をフロー毎に記録するための複数のエントリを有するキャッシュと、 前記キャッシュの前段に配置され、前記キャッシュのエントリと1対1に対応し、対応するエントリに割り当てられたフローに属するパケットを保持するフロー管理用のキュー群と、制御部を有し、該制御部は、まず、前記キャッシュに未登録のフローの先頭のパケットの処理要求を出し、次に、前記先頭パケットの処理結果が前記キャッシュに登録されたことの通知を受信した後対応する前記キューに保持されているパケットを前記キャッシュにアクセスさせ、更に、あるフローのパケットを保持している間に、他のフローの先頭パケットがあれば保持中の前記キャッシュ未登録フローを追い越して処理要求を出し、あるフローの前記キャッシュ登録済みパケットがあれば、保持中の前記キャッシュ未登録フローを追い越して前記キャッシュにアクセスさせるように制御を行うことを特徴とするネットワーク装置。
(解決手段2)
ネットワーク上で転送されるパケットをフローとして扱うためにパケットから内部処理
情報列を生成し、前記内部処理情報列が、パケットと内部処理情報列を1対1に対応付ける情報、及びパケット毎に異なる情報を合わせた第一の情報と前記パケットのネットワーク上での各階層におけるプロトコル種類を識別するための第二の情報と前記パケットのネットワーク上での各階層に対応するヘッダから抽出した第三の情報とで構成され、前記第二の情報と前記第三の情報によりパケットをフロー分類し、前記パケットに対して実施した処理を第四の情報として生成し、必要に応じて第三の情報を書換え、前記第三、第四の情報をデータとしてフロー毎に記録し同一のフローに適用するためのキャッシュと、前記キャッシュの前段に前記キャッシュのエントリと1対1に対応するフロー管理用のキュー群とを用いて、前記キュー群は、割り当てられたフローに属するパケットを保持し、まず、前記キャッシュに未登録のフローの先頭のパケットの処理要求を出し、次に、前記先頭パケットの処理結果が前記キャッシュに登録されたことの通知を受信した後対応する前記キューに保持されているパケットを前記キャッシュにアクセスさせ、更に、あるフローのパケットを保持している間に、他のフローの先頭パケットがあれば保持中の前記キャッシュ未登録フローを追い越して処理要求を出し、前記あるフローの前記キャッシュ登録済みパケットがあれば、保持中の前記キャッシュ未登録フローを追い越して前記キャッシュにアクセスさせることを特徴とするネットワーク装置の制御方法。
(解決手段3)
解決手段1に記載のネットワーク装置において、ハッシュ関数によりフロー分類した情報を割り当てるパケット処理を記録するキャッシュのタグ部分とパケット処理を記録するキャッシュのデータ部分と前記キャッシュのタグ部分及びデータ部分の各エントリに対応するフロー管理用のキューの情報割り当て位置が複数(N)箇所ある(Nウェイ・)セット・アソシアティブ形式であることを特徴とするネットワーク装置。
(解決手段4)
解決手段1に記載のネットワーク装置において、フロー分類した情報を割り当てるフロー管理用のキューが利用中である場合に、前記フロー管理用キューが解放されるまで前記フロー分類した情報及び、それ以降の全てのフローを待機させるために前記全てのフローを一時的に保持するためのバッファを具備することを特徴とするネットワーク装置。
(解決手段5)
解決手段1に記載のネットワーク装置において、フロー分類した情報を割り当てるフロー管理用のキューが利用中である場合に、前記フロー管理用キューが解放されるまで前記フロー分類した情報及び、それ以降の同一フローを待機させるために前記同一フローを一時的に保持するためのバッファを具備することを特徴とするネットワーク装置。
(解決手段6)
解決手段1に記載のネットワーク装置において、フロー分類した情報を管理するフロー管理用のキューのうち、複数本の前記フロー管理キューからの情報取り出しが可能になった時、情報に記載されている優先順位情報を参照して情報を取り出すフロー管理キューを選択可能であることを特徴とするネットワーク装置。
(解決手段7)
解決手段1に記載のネットワーク装置において、フロー分類した情報を管理するフロー管理用のキューのうち、複数本の前記フロー管理キューからの情報取り出しが可能になった時、情報に記載されている帯域制御情報と情報のサイズを参照して情報を出力する前記前記フロー管理キューからの出力量を制限することを特徴とするネットワーク装置。
(解決手段8)
解決手段1に記載のネットワーク装置において、パケット処理を記録するキャッシュのタグ部分とフロー分類した情報を管理するフロー管理用のキューを含む部位とを単一のデバイス上へ実装し、パケット処理を記録するキャッシュのデータ部分を前記のデバイスとは異なるデバイス
上へ実装することを特徴とするネットワーク装置。
(解決手段9)
解決手段1に記載のネットワーク装置において、パケット処理を記録するキャッシュのタグ部分とフロー分類した情報を管理するフロー管理用のキューを含む部位と、パケット処理を記録するキャッシュのデータ部分とを単一のデバイス上へ実装することを特徴とするネットワーク装置。
(解決手段10)
解決手段1に記載のネットワーク装置において、ハッシュ関数によりフロー分類した情報を割り当てるパケット処理を記録するキャッシュのタグ部分とパケット処理を記録するキャッシュのデータ部分と前記キャッシュのタグ部分及びデータ部分の各エントリに対応するフロー管理用のキューの情報割り当て位置が一つ以上あり、更に、前記フロー分類後の割り当て位置が利用中であった場合に自由に割り当て可能なフル・アソシアティブ方式の小容量の前記キャッシュのタグ部分と前記キャッシュのデータ部分と前記フロー管理用のキューとを具備することを特徴とするネットワーク装置。
(解決手段11)
解決手段8に記載のネットワーク装置において、パケット処理を記録するキャッシュのタグ部分に相当する機能を具備する部位がフロー管理用のキューを具備するデバイス上に実装されており、パケット処理を記録するキャッシュのデータ部分を具備するデバイス上には実装されていないことを特徴とするネットワーク装置。
(解決手段12)
解決手段1に記載のネットワーク装置において、パケット処理を記録するキャッシュのタグ部分に相当する機能を具備する部位がフロー管理用のキューを具備するデバイス上に実装されており、尚且つ、前記タグ部分がパケット処理を記録するキャッシュのデータ部分を具備するデバ
イス上にも実装されていることを特徴とするネットワーク装置。
(解決手段13)
解決手段12に記載のネットワーク装置において、パケット処理を記録するキャッシュに、パケット処理結果が登録されても、フロー管理用のキューへキャッシュ登録通知信号を渡さず、前記フロー管理用キューは、各キューがタイマを持ち、前記フロー管理用キューの先頭のパケットをパケット処理部へ送信した後、前記タイマをスタートさせ、設定された閾値を越えた時点で前記フロー管理用キューに残っているパケットを前記キャッシュへアクセスさせることを特徴とするネットワーク装置。
(解決手段14)
解決手段1に記載のネットワーク装置において、パケット処理を記録するキャッシュに渡すパケット処理結果を生成するパケット処理部が前記キャッシュと異なるデバイス上に実装されていることを特徴とするネットワーク装置。
(解決手段15)
キャッシュメモリを用い、先行するパケットに関する処理結果をキャッシュメモリに記録し、先行するパケットと同一処理を行う後続のパケットの処理は該キャッシュメモリの内容を利用する、キャッシュ型のパケット処理方法であって、パケットを受信するステップと、該受信したパケットをフロー毎に分類するステップと、該フロー毎に分類したパケットを、パケットの到着順序を維持してFIFO型のキューにフロー毎に記録するステップと、上記キュー内のフローの所定パケットがキャッシュに未登録である場合、該所定パケットを処理して処理結果をキャッシュメモリに格納するとともに、同一キュー内の所定パケット以降のパケットは、キューに待機させておくステップと、上記所定パケットに関する処理結果のキャッシュメモリへの格納の完了の後に、上記キューに待機させておいたパケットの処理を行うステップと、を有するパケット処理方法。
(解決手段16)
処理結果が該キャッシュメモリ未登録である各フローの先頭パケットは、他のフローで待機中のパケットを追い越して処理されることを特徴とする解決手段15記載のパケット処理方法。
(解決手段17)
各キューは対応するキャッシュを有しており、各キューが対応するキャッシュの登録情報を記録するステップと、キャッシュに未登録状態のキューにパケットが到着すると、先頭のパケットのみを処理し、処理結果が上記キャッシュに登録されるのを待つステップと、二つ目以降のパケットは上記キャッシュへの登録が完了した時点で処理が開始されることを特徴とする解決手段15記載のパケット処理方法。
11:スイッチファブリック
101:ネットワークインタフェース部
102:キャッシュ用トラフィック制御部
103:キャッシュ型パケット処理部
110:パケット処理部(ネットワークプロセッサ)
111:トラフィック制御部(トラフィックマネージャ)
201:キャッシュ用トラフィック制御部のパケット入力インタフェース
202:キャッシュ用トラフィック制御部のパケット解析部
203:キャッシュ用トラフィック制御部のトラフィック管理部
204:キャッシュ用トラフィック制御部の出力データ生成部
205:キャッシュ用トラフィック制御部のパケット出力インタフェース
208:キャッシュ型パケット処理部からキャッシュ用トラフィック制御部へのプロセスキャッシュ登録通知信号
210:キャッシュ用トラフィック制御部のパケットメモリ
301:キャッシュ型パケット処理部のパケット入力インタフェース
302:キャッシュ型パケット処理部のパケットの解析部
303:キャッシュ型パケット処理部のプロセスキャッシュ
304:キャッシュ型パケット処理部のキャッシュミス処理部
305:キャッシュ型パケット処理部のパケット処理部
306:キャッシュ型パケット処理部の後処理部
307:キャッシュ型パケット処理部のパケット出力インタフェース
310:キャッシュ型パケット処理部のパケットメモリ
320:キャッシュ型パケット処理部のテーブルメモリ
400:キャッシュ用トラフィック制御部のパケット解析部で生成するトークン
401:トークンの固有情報
402:トークンの解析情報
403:トークンの抽出情報
410:キャッシュ型パケット処理部の後処理部で利用されるトークン
411:パケット処理部で修正されたトークンの抽出情報である抽出情報α
412:パケット処理部で生成されたトークンの処理情報
420:キャッシュ用トラフィック制御部のタグ
421:420の有効ビット
422:420のFIFOキューエンプティビット
423:プロセスキャッシュ登録済みビット
424:420のプロセスキャッシュ登録中ビット
425:420の優先順位制御情報
426:420の帯域制御情報
430:キャッシュ用トラフィック制御部のFIFOキューの登録内容
431:430の有効ビット
440:キャッシュ用トラフィック制御部の待機バッファの登録内容
441:440の有効ビット
450:キャッシュ用トラフィック制御部からキャッシュ型パケット処理部へ転送する情報
451:450の登録FIFOキュー番号
453:450のウェイ情報
454:450のオリジナルパケット
460:キャッシュ型パケット処理部からキャッシュ用トラフィック制御部へ転送する情報
461:460のキャッシュ可能ビット
470:キャッシュ型パケット処理部のプロセスキャッシュのデータ部分に登録するトークン
501:キャッシュ用トラフィック制御部のアクセスキーを生成するハッシュ部
502:キャッシュ用トラフィック制御部のタグ(プロセスキャッシュのタグ)
503:キャッシュ用トラフィック制御部のタグ比較器
504:キャッシュ用トラフィック制御部のタグ及びFIFOキューの書込制御部
505:キャッシュ用トラフィック制御部のFIFOキュー
506:キャッシュ用トラフィック制御部のタグ及びFIFOキューの読出制御部
507:キャッシュ用トラフィック制御部の待機バッファ
511:キャッシュ用トラフィック制御部のアクセスキーを生成するハッシュ部
512:キャッシュ型パケット処理部のプロセスキャッシュのデータ部
513:キャッシュ型パケット処理部のプロセスキャッシュの結合器
520:キャッシュ用トラフィック制御部のFIFOキューのタイマ
601:キャッシュ用トラフィック制御部のフル・アソシアティブ方式のタグ
602:キャッシュ用トラフィック制御部のフル・アソシアティブ方式のFIFOキュー
610:キャッシュ型パケット処理部のフル・アソシアティブ方式のプロセスキャッシュのデータ部
701:キャッシュ型パケット処理部のキャッシュミス処理部のキャッシュミス管理テーブル
703:キャッシュ型パケット処理部のキャッシュミス処理部の処理情報管理テーブル
704:キャッシュ型パケット処理部のキャッシュミス処理部の結合器
900:一体化したキャッシュ用トラフィック制御部とキャッシュ型パケット処理部
902:キャッシュ型パケット処理部の外部へのパケット処理部へのインタフェース
903:パケット処理部
904:パケットメモリ
905:テーブルメモリ。
Claims (8)
- パケットを受信する入力インタフェースと、
受信したパケットを解析および分類して、種類毎にフローを生成するパケット解析部と、
上記生成されたフローを、種類毎にパケットの受信順序を保持して管理するトラフィック管理部と、
上記パケットを処理するパケット処理部と、
上記パケット処理部の処理結果を上記フロー毎に登録するプロセスキャッシュと、
を有するネットワーク装置であって、該ネットワーク装置は、
上記プロセスキャッシュに処理結果が未登録な第1のフローの第1のパケットを、上記パケット処理部で処理し、
上記第1のフローの第1のパケットに後続するパケットは、上記第1のパケットの処理結果が上記プロセスキャッシュに登録されるまで上記トラフィック管理部で待機させ、登録の後、上記プロセスキャッシュの情報を用いて処理を行い、
上記第1のフローの第1のパケットに後続するパケットを上記トラフィック管理部で待機させている間に、第2のフローのパケットが該待機中のパケットより先に処理されるように、フローを制御する、ことを特徴とするネットワーク装置。 - 上記トラフィック管理部は、上記生成されたフローに対応する内部処理情報列を、フローの種類毎にパケットの受信順序を保持して格納するキューを有し、
該キューに格納される内部処理情報列は、対応するパケットの処理結果が上記プロセスキャッシュに登録されているか否かを示す登録済み情報を含むことを特徴とする請求項1記載のネットワーク装置。 - 上記パケット処理部の前段に、
上記登録済み情報に基づいて、パケットを上記パケット処理部で処理するか、上記プロセスキャッシュを参照して処理するかを選択する解析部を有する請求項2記載のネットワーク装置。 - 上記パケット処理部の選択により、パケットが上記パケット処理部で処理された場合、当該処理結果が上記プロセスキャッシュに登録完了されたことを上記トラフィック管理部に通知するキャッシュミス処理部を有する請求項3記載のネットワーク装置。
- 上記トラフィック管理部は、上記キャッシュミス処理部からの通知に基づいて、上記内部処理情報列に登録済み情報を付加することを特徴とする請求項4記載のネットワーク装置。
- 上記トラフィック管理部は、上記登録済み情報を参照してフローを制御することを特徴とする請求項5記載のネットワーク装置。
- 上記第1のフローの第1のパケットは、処理結果が該プロセスキャッシュ未登録である第1のフローの先頭パケットであることを特徴とする請求項1記載のネットワーク装置。
- 上記第2のフローのパケットは、上記プロセスキャッシュに処理結果が未登録な先頭パケットまたは、プロセスキャッシュに処理結果が登録済みの後続パケットであることを特徴とする請求項1記載のネットワーク装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004321458A JP4483535B2 (ja) | 2004-11-05 | 2004-11-05 | ネットワーク装置 |
US11/195,702 US7656887B2 (en) | 2004-11-05 | 2005-08-03 | Traffic control method for network equipment |
CN2005100897304A CN1770734B (zh) | 2004-11-05 | 2005-08-05 | 网络装置的通信量控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004321458A JP4483535B2 (ja) | 2004-11-05 | 2004-11-05 | ネットワーク装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006135572A JP2006135572A (ja) | 2006-05-25 |
JP2006135572A5 JP2006135572A5 (ja) | 2007-12-13 |
JP4483535B2 true JP4483535B2 (ja) | 2010-06-16 |
Family
ID=36316264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004321458A Expired - Fee Related JP4483535B2 (ja) | 2004-11-05 | 2004-11-05 | ネットワーク装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7656887B2 (ja) |
JP (1) | JP4483535B2 (ja) |
CN (1) | CN1770734B (ja) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272672B1 (en) * | 2003-04-01 | 2007-09-18 | Extreme Networks, Inc. | High speed bus with flow control and extended burst enhancements between sender and receiver wherein counter is maintained at sender for free buffer space available |
JP2006180162A (ja) * | 2004-12-22 | 2006-07-06 | Nec Corp | パケット交換装置およびパケット交換方法 |
US7764612B2 (en) * | 2005-06-16 | 2010-07-27 | Acme Packet, Inc. | Controlling access to a host processor in a session border controller |
US7660264B1 (en) * | 2005-12-19 | 2010-02-09 | Chelsio Communications, Inc. | Method for traffic schedulign in intelligent network interface circuitry |
US7660306B1 (en) | 2006-01-12 | 2010-02-09 | Chelsio Communications, Inc. | Virtualizing the operation of intelligent network interface circuitry |
US7724658B1 (en) | 2005-08-31 | 2010-05-25 | Chelsio Communications, Inc. | Protocol offload transmit traffic management |
US7881320B1 (en) * | 2005-12-12 | 2011-02-01 | Xilinx, Inc. | Parsing data from multiple digital bitstreams |
JP4845522B2 (ja) * | 2006-01-30 | 2011-12-28 | シャープ株式会社 | システムバス制御装置、集積回路およびデータ処理システム |
US20070183416A1 (en) * | 2006-02-07 | 2007-08-09 | Mark Gooch | Per-port penalty queue system for re-prioritization of network traffic sent to a processor |
US7502775B2 (en) * | 2006-03-31 | 2009-03-10 | International Business Machines Corporation | Providing cost model data for tuning of query cache memory in databases |
JP4630262B2 (ja) * | 2006-11-21 | 2011-02-09 | 日本電信電話株式会社 | キャッシュシステム、キャッシュ装置、パケット処理装置、キャッシュ方法、パケット処理方法、キャッシュプログラム、およびパケット処理プログラム |
JP2008205868A (ja) * | 2007-02-21 | 2008-09-04 | Nec Corp | Ipフラグメントパケット処理装置及びそれに用いるipフラグメントパケット処理方法並びにプログラム |
KR100881191B1 (ko) * | 2007-03-27 | 2009-02-05 | 삼성전자주식회사 | 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치 |
US8935406B1 (en) | 2007-04-16 | 2015-01-13 | Chelsio Communications, Inc. | Network adaptor configured for connection establishment offload |
US8589587B1 (en) | 2007-05-11 | 2013-11-19 | Chelsio Communications, Inc. | Protocol offload in intelligent network adaptor, including application level signalling |
US8060644B1 (en) | 2007-05-11 | 2011-11-15 | Chelsio Communications, Inc. | Intelligent network adaptor with end-to-end flow control |
JP5093043B2 (ja) * | 2008-10-14 | 2012-12-05 | 富士通株式会社 | レート監視装置 |
CN101420372B (zh) * | 2008-10-16 | 2010-12-08 | 电子科技大学 | 一种片上网络缓存分配方法 |
EP2306322A1 (en) * | 2009-09-30 | 2011-04-06 | Alcatel Lucent | Method for processing data packets in flow-aware network nodes |
US8638791B2 (en) * | 2009-11-24 | 2014-01-28 | Verizon Patent And Licensing Inc. | Heterogeneous forwarding information bases in line cards |
JP5732806B2 (ja) | 2010-10-15 | 2015-06-10 | 富士通株式会社 | データ転送装置及びデータ転送方法 |
CN101986611B (zh) * | 2010-11-30 | 2012-11-28 | 东南大学 | 基于两级缓存的快速组流方法 |
WO2013025456A1 (en) * | 2011-08-15 | 2013-02-21 | Bank Of America Corporation | Method and apparatus for determining token-based privileges |
US8910290B2 (en) | 2011-08-15 | 2014-12-09 | Bank Of America Corporation | Method and apparatus for token-based transaction tagging |
US9361443B2 (en) | 2011-08-15 | 2016-06-07 | Bank Of America Corporation | Method and apparatus for token-based combining of authentication methods |
US8732814B2 (en) | 2011-08-15 | 2014-05-20 | Bank Of America Corporation | Method and apparatus for token-based packet prioritization |
US8752143B2 (en) | 2011-08-15 | 2014-06-10 | Bank Of America Corporation | Method and apparatus for token-based reassignment of privileges |
US8572683B2 (en) | 2011-08-15 | 2013-10-29 | Bank Of America Corporation | Method and apparatus for token-based re-authentication |
US9253197B2 (en) | 2011-08-15 | 2016-02-02 | Bank Of America Corporation | Method and apparatus for token-based real-time risk updating |
WO2013025455A1 (en) * | 2011-08-15 | 2013-02-21 | Bank Of America Corporation | Method and apparatus for handling risk tokens |
US9055053B2 (en) | 2011-08-15 | 2015-06-09 | Bank Of America Corporation | Method and apparatus for token-based combining of risk ratings |
US8726361B2 (en) | 2011-08-15 | 2014-05-13 | Bank Of America Corporation | Method and apparatus for token-based attribute abstraction |
JP5747993B2 (ja) * | 2011-10-05 | 2015-07-15 | 日本電気株式会社 | 負荷低減システム、及び負荷低減方法 |
CN103036794A (zh) * | 2011-10-10 | 2013-04-10 | 华为技术有限公司 | 一种报文的学习方法、装置和系统 |
JP5812533B2 (ja) * | 2012-05-31 | 2015-11-17 | 株式会社日立製作所 | 通信装置、及び、通信方法 |
US9231865B2 (en) * | 2012-08-10 | 2016-01-05 | Wisconsin Alumni Research Foundation | Lookup engine with reconfigurable low latency computational tiles |
JP6039965B2 (ja) | 2012-08-22 | 2016-12-07 | 森永製菓株式会社 | イムノクロマトグラフィー用デバイス |
JP2014059606A (ja) * | 2012-09-14 | 2014-04-03 | Yamaha Corp | 信号処理システムおよびプログラム |
US9274826B2 (en) | 2012-12-28 | 2016-03-01 | Futurewei Technologies, Inc. | Methods for task scheduling through locking and unlocking an ingress queue and a task queue |
CN104346404B (zh) * | 2013-08-08 | 2018-05-18 | 华为技术有限公司 | 一种访问数据的方法、设备及系统 |
NZ768365A (en) * | 2014-04-01 | 2022-04-29 | Endace Tech Limited | Hash tag load balancing |
US10270713B2 (en) * | 2014-12-16 | 2019-04-23 | Oracle International Corporation | Scheduling packets with multiple destinations in a virtual output queue network switch |
US9813362B2 (en) | 2014-12-16 | 2017-11-07 | Oracle International Corporation | Framework for scheduling packets with multiple destinations in a virtual output queue network switch |
US10382380B1 (en) * | 2016-11-17 | 2019-08-13 | Amazon Technologies, Inc. | Workload management service for first-in first-out queues for network-accessible queuing and messaging services |
US11038869B1 (en) * | 2017-05-12 | 2021-06-15 | F5 Networks, Inc. | Methods for managing a federated identity environment based on application availability and devices thereof |
EP3791279A4 (en) | 2018-05-11 | 2022-01-26 | Cigent Technology, Inc. | METHOD AND SYSTEM FOR ENHANCED DATA CONTROL AND DATA ACCESS |
CN110912830B (zh) * | 2018-09-17 | 2023-05-02 | 杭州海康威视系统技术有限公司 | 传输数据的方法和装置 |
CN110971532B (zh) * | 2018-09-30 | 2023-07-21 | 阿里巴巴集团控股有限公司 | 一种网络资源管理方法、装置及设备 |
US11212106B2 (en) * | 2019-01-02 | 2021-12-28 | Bank Of America Corporation | Data protection using universal tagging |
US11349981B1 (en) | 2019-10-30 | 2022-05-31 | F5, Inc. | Methods for optimizing multimedia communication and devices thereof |
CN112333188B (zh) * | 2020-11-04 | 2022-11-18 | 成都中科大旗软件股份有限公司 | 数据服务接口、日志监管方法、系统、存储介质及终端 |
CN116467353B (zh) * | 2023-06-12 | 2023-10-10 | 天翼云科技有限公司 | 一种基于lru差异化的自适应调节的缓存方法及系统 |
CN117687763B (zh) * | 2024-02-03 | 2024-04-09 | 成都医星科技有限公司 | 高并发数据弱优先处理方法、装置、电子设备及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998045976A2 (en) * | 1997-04-04 | 1998-10-15 | Ascend Communications, Inc. | Hierarchical packet scheduling method and apparatus |
US6714553B1 (en) * | 1998-04-15 | 2004-03-30 | Top Layer Networks, Inc. | System and process for flexible queuing of data packets in network switching |
JP3306705B2 (ja) | 1998-09-22 | 2002-07-24 | 富士通株式会社 | パケット転送制御装置及びそのスケジューリング方法 |
US6385204B1 (en) * | 1999-11-22 | 2002-05-07 | Worldcom, Inc. | Network architecture and call processing system |
US6327625B1 (en) * | 1999-11-30 | 2001-12-04 | 3Com Corporation | FIFO-based network interface supporting out-of-order processing |
JP3526269B2 (ja) * | 2000-12-11 | 2004-05-10 | 株式会社東芝 | ネットワーク間中継装置及び該中継装置における転送スケジューリング方法 |
US6889225B2 (en) * | 2001-08-09 | 2005-05-03 | Integrated Silicon Solution, Inc. | Large database search using content addressable memory and hash |
US20030037154A1 (en) * | 2001-08-16 | 2003-02-20 | Poggio Andrew A. | Protocol processor |
JP3872716B2 (ja) * | 2002-04-30 | 2007-01-24 | 富士通株式会社 | パケット出力制御装置 |
JP2004260532A (ja) | 2003-02-26 | 2004-09-16 | Hitachi Ltd | ネットワークプロセッサ |
JP2005117206A (ja) | 2003-10-06 | 2005-04-28 | Hitachi Ltd | ネットワークプロセッサアクセラレータ |
US7573895B2 (en) * | 2004-06-24 | 2009-08-11 | Intel Corporation | Software assisted RDMA |
US7599361B2 (en) * | 2004-07-02 | 2009-10-06 | P-Cube Ltd. | Wire-speed packet management in a multi-pipeline network processor |
-
2004
- 2004-11-05 JP JP2004321458A patent/JP4483535B2/ja not_active Expired - Fee Related
-
2005
- 2005-08-03 US US11/195,702 patent/US7656887B2/en not_active Expired - Fee Related
- 2005-08-05 CN CN2005100897304A patent/CN1770734B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7656887B2 (en) | 2010-02-02 |
JP2006135572A (ja) | 2006-05-25 |
US20060098675A1 (en) | 2006-05-11 |
CN1770734B (zh) | 2010-09-08 |
CN1770734A (zh) | 2006-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4483535B2 (ja) | ネットワーク装置 | |
US9154442B2 (en) | Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors | |
JP3789395B2 (ja) | パケット処理装置 | |
US8671219B2 (en) | Method and apparatus for efficiently processing data packets in a computer network | |
US7830884B2 (en) | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability | |
US7558270B1 (en) | Architecture for high speed class of service enabled linecard | |
US8799507B2 (en) | Longest prefix match searches with variable numbers of prefixes | |
US7657706B2 (en) | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory | |
US7017020B2 (en) | Apparatus and method for optimizing access to memory | |
US7606236B2 (en) | Forwarding information base lookup method | |
US6658002B1 (en) | Logical operation unit for packet processing | |
US8505013B2 (en) | Reducing data read latency in a network communications processor architecture | |
US9461930B2 (en) | Modifying data streams without reordering in a multi-thread, multi-flow network processor | |
US7649885B1 (en) | Network routing system for enhanced efficiency and monitoring capability | |
US9485200B2 (en) | Network switch with external buffering via looparound path | |
US8761204B2 (en) | Packet assembly module for multi-core, multi-thread network processors | |
US20090279558A1 (en) | Network routing apparatus for enhanced efficiency and monitoring capability | |
US7248586B1 (en) | Packet forwarding throughput with partial packet ordering | |
US9336162B1 (en) | System and method for pre-fetching data based on a FIFO queue of packet messages reaching a first capacity threshold | |
JP2008085886A (ja) | パケット処理装置、パケット処理方法及びパケット処理プログラム | |
US9922000B2 (en) | Packet buffer with dynamic bypass | |
JP5631850B2 (ja) | スイッチ装置 | |
Yamaki et al. | RPC: An approach for reducing compulsory misses in packet processing cache | |
JP2010258675A (ja) | パケットスイッチ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060425 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071025 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071025 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100205 |
|
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: 20100302 |
|
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: 20100315 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140402 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |