JP2003533913A - パケット分類用状態遷移機械 - Google Patents

パケット分類用状態遷移機械

Info

Publication number
JP2003533913A
JP2003533913A JP2001583315A JP2001583315A JP2003533913A JP 2003533913 A JP2003533913 A JP 2003533913A JP 2001583315 A JP2001583315 A JP 2001583315A JP 2001583315 A JP2001583315 A JP 2001583315A JP 2003533913 A JP2003533913 A JP 2003533913A
Authority
JP
Japan
Prior art keywords
state
data
memory
state transition
packet classification
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.)
Pending
Application number
JP2001583315A
Other languages
English (en)
Inventor
ジェイ ウェルフェルド フェリクス
Original Assignee
ソリダム システムズ コーポレーション
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 ソリダム システムズ コーポレーション filed Critical ソリダム システムズ コーポレーション
Publication of JP2003533913A publication Critical patent/JP2003533913A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 パケット分類用状態遷移機械に関する。プログラムメモリ、スタックメモリ、およびプロセッサを有するプログラム可能な状態遷移機械を開示する。ここで、前記状態遷移機械は、状態遷移ごとに1回または少数回のプログラムメモリへアクセスするプロセッサによって作動し、前記プロセッサは前記スタックメモリおよび前記プログラムメモリに、同じ状態遷移中にアクセス可能であって、少なくともスタックアクセス・オペレーションおよびプログラムアクセス・オペレーションの1つは独立に実行される。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、プログラミング可能な状態遷移機械に関し、特に、高速通信で用い
るパケット分類用状態遷移機械に関する。
【0002】 (発明の背景) 高速の状態遷移機械の設計についての現在の調査領域は、デジタル通信分野で
ある。一般に、デジタル通信網においては、データは、パケット、セル、フレー
ム、バッファ等にグループ化される。パケット、またはセル等は、データと分類
情報とを有している。パケット、セル等を分類することは、データ通信の経路を
定めて正しく応答するために重要である。このタイプのデータを分類するには、
状態遷移機械を使用する。
【0003】 ギガビットのイーサネット(登録商標)では、プロトコール関連情報とともに
アドレス情報および経路決定情報を決定するために、非常な高速で情報を処理す
るように作動することが必須である。残念ながらこれらの速度では状態遷移機械
または他のタイプのリアルタイムプロセッサを実現するにはメモリアクセスが重
大な障害となっている。分類性能を増進するための革新的な解決法を探すように
研究者が強いられている。自明な解決法は、完全にハードウェアにより分類用状
態遷移機械を実現することである。プログラミング不能なハードウェアの遷移機
械は卓絶した性能をもつことが知られ、したがって、これらの高いデータ速度に
良く適合している。しかし、通信プロトコールの実行は本来的にその性質上融通
がきくものである。普通のプロトコールは、今日では2、3ヶ月で、ほとんど使
われなくなるだろう。したがって、ギガビットのイーサネットで使用する状態遷
移機械はプログラミング可能であることが好ましい。従来では、10Mビットお
よび100Mビットのイーサネットのデータネットワークに対する解決法はプロ
グラム可能性に適するように状態当り多数のメモリアクセス指示を要求していた
。これは従来技術の状態遷移機械の動作速度を実際上制限する。
【0004】 データ分類のためのプログラム可能な状態遷移機械は完全にソフトウェアによ
って実行できる。もちろん、ソフトウェアの状態遷移機械は、しばしば、等価な
ハードウェアよりも非常に遅くなる。ソフトウェアの状態遷移機械にあっては、
各オペレーションはソフトウェアの指示によって実行され、状態の変化は分岐オ
ペレーションに導かれる。いわゆる当業者にとって明らかなことではあるが、パ
ケット分類用高速状態遷移機械をソフトウェアで実行するには、秒ごとに多数の
指示、10億以上の多数、を要求し、高価なパラレルプロセッサまたは現在にお
いて未知の技術を要求する。実際上、処理能力に対する厳しい制限となっている
のは、メモリ速度である。例えば、7nsのメモリが使用されるならば、メモリ
ごとにギガビットイーサネット流の各ビットに対して、1未満のメモリアクセス
が可能である。このようにして、もし、各バイト、すなわち8ビットのデータが
、1の状態で処理されるならば、1のみのメモリアクセスが各状態で可能である
。純粋なソフトウェアによる解決法を用いたシステムを実行することはありそう
もない。
【0005】 この分野での現在の状況では、タイミング及び他の因子を考慮すると、集積メ
モリが7nsのメモリアクセスの領域での処理能力を達成する。したがって、ギ
ガビットのイーサネットのパケットの分類装置を実行するのに充分な速度をもつ
遷移機械の純粋なハードウェアによる実現は、イーサネットのデータ流内で、8
ビットごとに1のみのメモリアクセスを要求する限りは可能である。そのような
状態遷移機械を従来技術により実現するには予め与えたビット数の時間フレーム
内での状態遷移を可能にする分岐アルゴリズムを使用する。分岐アルゴリズムの
ためのアドレスデータはプログラムメモリ内に格納する。予め定めたビット数が
8であるとき、各状態遷移は8ns内に生ずる。これを実現する1の方法は各可
能な状態に対して256のエントリをもつデータのテーブルを格納することであ
る。そのテーブルアドレスは、それから、次の状態アドレスを決定するためにデ
ータ流からの8ビットと結合する。これは分類を表示する値または分類しないこ
とを表示する値に遭遇するまで継続される。
【0006】 残念ながら、上述したように、システムの実現に要求されるメモリ量は高価で
手が出ない。例えば、一度に8ビットの使用は、テーブル当り256のエントリ
まで要求し、一度に16ビットの使用は、65,536のエントリを要求する。
テーブルの正確な数は、また、終点の状態の数に依存する。高い記憶容量をもつ
集積メモリは利用可能ではないので、集積メモリにおいては、多数の辺をもつ従
来技術のプログラム可能なパケット分類用状態遷移機械の実行は現在では不可能
である。
【0007】 状態遷移当りのプログラムメモリへの1のメモリアクセスのみを要求するデー
タ流内でのビット分類のための状態遷移装置を提供することは有益である。
【0008】 高速度データ通信のパケット分類で使用するプログラム可能な状態遷移装置で
あって、プログラムメモリに対する要件が従来技術の実現のためのプログラムメ
モリに対する要件よりも緩和されるようなものが非常に有益であることがわかる
【0009】 (本発明の目的) 従来技術のこれらの及び他の制限を克服するためにプログラム可能な高速度パ
ケット分類を支援する状態遷移機械技術を提供することが本発明の目的の1つで
ある。
【0010】 高速度パケット分類の実現を支え、各状態遷移に対するプログラムメモリへの
唯一のメモリアクセスを要求する状態遷移機械技術を提供することは、本発明の
他の目的である。
【0011】 高速度パケット分類を支援し、従来技術における必要なメモリ要件の削減を提
供するための状態遷移機械を提供することが本発明の他の目的である。
【0012】 (本発明の記述) 他の実施態様によると、本発明はデータ流からのデータを分類するパケット分
類用状態遷移機械を提供する。その状態遷移機械は、 a) 前記状態遷移機械内の状態に関する情報を格納するためのプログラム可能メ
モリと、 b) 状態を表示するデータを格納し、前記プログラム可能メモリと独立に動作可
能なスタックメモリと、 c) 前記プログラム可能メモリから、状態遷移当り1回または少数回、情報を
引き出しかつ同じ状態遷移中に前記スタックメモリから情報を引き出すことを可
能とするため、現在の状態およびデータ流からのデータに基づいて次の状態を決
定するため、および、そのように決定した前記次の状態に状態遷移機械を切り換
えるためのプロセッサと、を有する。
【0013】 本発明に係る他の実施の形態によれば、状態遷移機械を使用するデータ流から
のデータを分類するパケット分類方法が提供される。該方法は、次の工程からな
る。 a) 前記状態遷移機械内の状態に関するものであって、プログラム可能メモリ内
に格納されている情報を提供し、 b) 状態を表示するデータを格納するとともに、プログラム可能メモリと並行に
動作可能である後入れ先出し方式のスタックメモリを提供し、 c) 状態当り1回または少数回で前記プログラム可能メモリから情報を引き出し
、 d) 前記プログラム可能メモリから引き出された情報に基づいて、データを前記
スタックメモリに配置するプッシュ・オペレーション、前記スタックメモリから
1の状態に関するデータを読み出すポップ・オペレーション、および、次の状態
に関するデータを含むジャンプ・オペレーションを有するオペレーションの内の
1つのオペレーションを決定し、 e) 前記状態遷移機械を次の状態に切り換える。
【0014】 本発明は、データ流からのデータを分類するプログラム可能なハードウェア状
態遷移機械を提供する。前記状態遷移機械技術はメモリ最適化を指示している。 状態遷移装置は、 a) 前記状態遷移装置内の状態に関する情報を格納するプログラム可能メモリと
、 b) 後入れ先出し方式でスタックメモリから引き出すために、リターン状態に関
するデータを格納するスタックメモリと、 c) 前記プログラム可能メモリから、次の状態アドレスに関するデータを含むプ
ッシュ・オペレーションおよびポップ・オペレーションを有するオペレーション
を引き出すため、前記オペレーション内にある情報の1つおよび前記スタックメ
モリから引き出されたデータに基づいて次の状態を決定するため、および、前記
状態遷移機械を次の状態に切り換えるためのプロセッサと、 を有し、2つの状態のグループに対する情報が同一のメモリ位置を占め、前記ス
タックメモリは、各グループに対する次の状態を識別する機能を有する。
【0015】 本発明により、データ流からデータを分類するパケット分類用状態遷移機械を
提供する。該状態遷移機械技術はメモリ最適化に役に立つ状態遷移機械は、 a) 前記状態遷機械内の、2つのグループを含有する状態、すなわち、状態の第
1のグループは、各々前記テーブルアドレスからのオフセットでアドレス可能テ
ーブル要素を有するデータのテーブルによって表示され、該テーブル要素は、前
記状態遷移機械内での次の状態を表示し、前記データ流内の多数のビットは、オ
フセットを決定するためのものであり、状態の第2のグループは、各々テーブル
要素を含有するデータのテーブルによって表され、前記第1のグループの状態の
状態を表示するデータのテーブルよりも小さいメモリを占めている前記データ流
からデータを分類するためのもの、に関する情報を格納するプログラム可能メモ
リと、 b) リターン状態に関し、後入れ先出し方式でスタックメモリから引き出すた
めのデータを格納するスタックメモリと、 c) 現在の状態アドレス、および、データ流からの多数のビットに基づいてア
ドレスを形成し、前記プログラム可能メモリ内のアドレスから、次の状態アドレ
スに関するデータを含有するプッシュ・オペレーション、次の状態アドレスに関
するデータを含有するジャンプ・オペレーションおよびポップ・オペレーション
を有するオペレーションを引き出すため、前記オペレーション内の情報の1つお
よび前記スタックメモリから引き出されたデータに基づいて次の状態を決定する
ため、および前記状態遷移機械を次の状態に切り換えるためのプロセッサとを有
し、 前記プログラム可能メモリから情報を引き出す1および1のみのオペレーショ
ンが状態遷移ごとに実行されるものである。
【0016】 (発明の詳細な説明) ここで用いるように、データパケットの語句は、データ通信で使用するように
、バッファ、フレーム、セル、パケット等の語句を包含する。本質的には、デー
タパケットは、予め定めた分類に応じて分類可能なデータのグループ化である。
分類は、通信の標準を監視する標準化組織によって、一般に成文化されている。
【0017】 図1aは、従来例に係る典型的な分類用状態遷移機械の単純化した状態遷移図
を示す。状態間の遷移は、円で示した状態を連結する線で示した一連のオペレー
ションによって表示する。該状態遷移図は、非周期状態遷移機械に対するもので
あり、各状態は多数の可能性の1つがこれに続く。そのような状態遷移機械は、
ソフトウェアまたはハードウェアのどちらかによって、容易に実現される。残念
ながら、前記状態遷移機械の動作速度が増加するにつれて、各状態遷移のための
オペレーションは、必要な処理能力を達成するには同時に実行されなければなら
ない。この障害が、これまではプログラム不能な専用のハードウェアの状態遷移
機械の設計を必要とさせていた。図1bには、図1aの状態遷移機械に対する縮
小化した状態遷移図が示されている。ここで、分類Aの終点の状態は、唯一の状
態1aと結合している。他の状態も同じようにして結合している。該図から明ら
かなように、状態の遷移を表示する辺の数は、20から16にやや削減されてい
る。状態Rのようないくつかの状態は、最終状態、アクセプト(ACCEPT)またはリ
ジェクト(REJECT)である。これらの状態は、状態遷移機械を再始動することによ
って追跡される。再始動は、典型的には、後のパケットの開始前に生ずる。典型
的には、各パケットの始動を識別するために本発明の外部に設けた手段がある。
【0018】 図2aは、非常に単純化したパケット分類用プロトコールの単純化した図を示
す。単純化したプロトコールは、イーサネットまたは他の通信プロトコールの詳
細な知識がなくても本発明の理解を容易にするために用いている。4つのビット
パターンを示し、各々は異なる分類を表示する。前記ビットパターンは類似して
いる。3ビットの第1の組は、各々1または未分類のままのデータ流の該データ
でなければならない。これは、8ビットが続くが、それらが生じていることを除
いては分類には重要ではない。更なる3つのビットは、各々1でなければならず
、それから8個の更なる「値が決められていない」(don't care)ビットがある。
それから最後の2つのビットは4つの分類を識別するために用いる。図2bは、
プログラム可能な状態遷移機械を実行するための分類木を示す。典型的なパケッ
ト分類木は多数の分類プロトコールに関するデータからなり、その各々は、多数
のビットを有している。図2bに示した分類木は、本発明の説明を容易にするた
めに単純化したものである。典型的な分類木は、非常に大きなデータ構造に導く
。多くの例ではその構造はあまりに大きいので、単一の集積メモリ装置に格納す
ることができない。
【0019】 ギガビットのイーサネットのパケット分類用状態遷移機械が、1状態当り、3
ビットのオペレーションを行うには、第1の3ビットが3nsで到着する。一旦
、状態遷移機械に供給されると、さらに3ビットが到着するまで3nsのラグが
ある。この3nsの間に状態遷移のための全てのオペレーションが実行される。
もちろん、状態遷移により長い時間を要求する場合には、より大きなビットを相
互にグループ化する。こうして、同時に2ビットを用いる分類用の状態遷移機械
が可能であり、そのことは同時に8ビットまたは16ビットを使用するものでも
あるといえる。プログラム可能装置に内蔵したメモリを用いれば、速いメモリア
クセス・オペレーションが可能である。したがって、8ビット・オペレーション
、すなわち、状態遷移あたり8nsであって、同一のプログラム可能メモリから
の高々2つの連続的なメモリアクセス・オペレーション、よりもっともらしいの
は、単一のみのメモリアクセス・オペレーションが、各状態遷移で可能である。
【0020】 そのような状態は、多数のアドレスをもつルックアップテーブルによって、ま
たは他のアドレス変換の形態によって簡単に実現される。8データビットの受信
によるルックアップテーブルの実行のためには、単一のメモリアクセスが、ルッ
クアップテーブルのための次のメモリアドレスを決定するために要求される。1
例として、現在のテーブルアドレスは、1レジスタの上位ビットにロードされる
。データ流からの8ビットは、レジスタの下位ビットにロードされ、0−255
のオフセットとして振る舞う。一旦、ロードされると、レジスタによって表示さ
れた位置にあるデータは、上位ビットにロードされる。受け入れるかまたは拒否
するかが調べられ、前記データ流からの次の8ビットを、新しいアドレスを形成
するために下位ビットにロードする。これは、最終状態に到達するまで継続する
【0021】 多数のビットに対して上述したように、ルックアップテーブルの記憶装置は非
常に大きくなり、外部記憶装置の使用を強いられることによる費用の上昇と処理
能力の減退に導く。したがって、プログラム可能な状態遷移機械において並列し
て処理できるビット数には実行上の制限があることは明らかである。また、必要
な速度を支えることができるメモリ回路は、現在、集積メモリ回路に限定してい
るのであるから、分類データとして利用できるメモリ量に関する制限がある。こ
の制限のためにメモリの最適化は顕著な利益をもたらす。
【0022】 パケット分類用状態遷移機械にとって、オペレーションまたはパケット分類を
決定するために導かれる状態は重要である。パケット分類用状態遷移機械は、そ
れ自体、木構造に従っている。木の各節点を1ビットに関係付ける場合には、木
は非常に大きく、かつ、多数の節点をもち、各節点は2つの子節点及び1つの親
節点をもつ。各節点が8ビットに関係付ける場合には、木はさらに少ない数のレ
ベルをもつが、現実には該木は同一の辺の数をもつ。したがって、分類木の最適
化は取るに足らないように見える。しかし、当業者にとって明らかなように、多
くの節点は重要ではないので、パケットの分類に役に立つ節点の最適化はこの目
的のためのプログラム可能な状態遷移機械の重要な側面である。
【0023】 分類データ最適化の好ましい方法は、種々の横切る経路に含まれるような部分
分類木の再使用を可能にするためにスタックメモリを使用する。これらは必ずし
も直ちに明らかなことではない。図2cを参照すると、スタックメモリは図2b
の分類木構造を削減するために使用されている。辺の数は50から22に削減さ
れている。これは全体的なメモリ要件に対する重大な削減である。
【0024】 節点を、異なる記憶量を要求するいくつかのカテゴリーにグループ化すること
も好ましい方法である。全幅節点S0,S2,およびS7、半幅節点S1,S8,
S9,S10、値が決められていないものS3,S4,S5,S6等である。種
々の節点が、種々の記憶量を占めることによってメモリ要件が非常に削減される
。上述したように、一旦、外部記憶装置を使用すると性能が落ちるので、メモリ
の最適化が好ましい。もちろん、メモリの使用を最適化する他の方式が、本発明
に関して適用可能である。例えば、節点S3,S4,S5およびS6の各々は、
唯一の可能な次の状態を持っている。こうして、値が決められていない節点タイ
プを持つこれらの節点を格納することによって、辺の数は、さらに22から18
へ削減される。
【0025】 本発明に係る木横断方法の実現のために、1の節点から伸びる各辺、すなわち
、各アドレスは、全幅辺または半幅辺であるかに拘らず、および、配列された語
であるか否かに拘らず、個々にアドレスで呼び出し可能であることが好ましい。
例えば、全幅節点は、配列された語であり、2ウェイの節点に対しては、2 語を要求する。半幅節点は、配列された語、すなわち、2の辺対に対しては、2 ウェイの節点に対して2n−1の語を要求する。
【0026】 実質上最適化され、高速度パケット分類を支えることができるパケット分類装
置の実施の形態として、分類木の辺の内容、アクセプト(ACCEPT)、リジェクト(R
EJECT)、ジャンプ(JUMP、JMP)、ジャンプ/プッシュ(JUMP/PUSH)およびリター
ン(ポップ)(RETURN(POP))が使用される。
【0027】 アクセプトは、1のパケットが分類(CLASSIFY)され、分類木の1枚の葉に到
達し、分類されたパケットに対する適当な動作が望まれていることである。該適
当な動作のいくつかの形式としては、分類タグをシステムまたはユーザに渡すこ
と、パケットを予め定めた経路に渡すこと、そのパケットを既知の応用のために
応用スタックメモリに入力すること等を含む。パケットの処理はイーサネット通
信の分野では良く知られている。
【0028】 リジェクトは、パケットが分類されたパケットタイプではないことを表示する
。多くの状況では、デフォルト動作が望ましいが、それだけでは、「適当な」動
作は実行されない。例えば、拒否タグをシステムまたはユーザに与えて分類が非
成功であったことを示す。
【0029】 ジャンプ、ジャンプ/プッシュおよびリターンは、現状態レジスタの内容に影
響を与える。要するに、これらのオペレーションは、現在の節点、したがって、
現在の状態の変更に導く。スタック・オペレーションを以下に述べる。1のジャ
ンプ・オペレーションは、ジャンプ・オペレーションをもった語に含まれるアド
レスを、状態レジスタにロードする。これは、状態の変更、分類木内にある異な
る節点への変更に導く。メモリアクセスそれ自体が実行されると辺情報を引き出
し、さらにレジスタ対レジスタ移送が実行されると、新しい内容が状態レジスタ
にロードされる。本発明を実行するために特別に設計されたパケット分類用状態
遷移機械を使用すると、これらのオペレーションは存在する時間の制限内で簡単
に実行される。データの同じ語内での命令を完了するために要求する命令および
データの含有がこの実行を可能にする。
【0030】 図3において、1のテーブルがメモリ語内容を示している。全幅節点内にある
各語は、2w+2ビットからなっている。ここで、wは分類木内、すなわち該状
態遷移機械内におけるアドレスを表示するのに充分なビット数である。前記テー
ブルから明らかなように、アクセプトおよびジャンプ/プッシュ命令以外の、他
のすべての命令は半幅語に一致している。これは、状態遷移機械の最適化にとっ
て重要である。図示するように、幅は下位ビットを含有する必要はない。該下位
ビットは分類されたデータ流から挿入される。
【0031】 本発明に係る状態遷移機械のオペレーションを、図2cの分類木の図を参照し
ながら以下に述べる。結果として得たメモリ内容を図4に示す。第1のビットを
受けて該状態レジスタに挿入して、その状態レジスタ内でアドレスの下位ビット
を満たす。アドレステーブルから明らかなように、アドレスレジスタ内の7つの
アドレスビットと残りのビットとの結合に対して、2つの結果が可能である。結
果として生じたアドレスの各々は、ジャンプ・オペレーションを有し、新しい節
点アドレスをもった状態レジスタへのロードへ導く。そのアドレスは、7ビット
アドレス(wは7)であり、アドレスの残り部分は、それから、データ流から発
するビット、すなわち、1または0によって満たす。満たすべきビットは、「x
」で表される。1の実施の形態では、図示するように、値が決められていない節
点が実行され、前記アドレスは、データ流からの1ビットも全くない。なぜなら
ば、節点からの全辺は等しいからである。好ましくは、該データは格納され、ビ
ットの連鎖を最適化して、そこから次の命令が取り出されるアドレスを形成する
。このやり方では、スタック・オペレーションを実行しなかった場合には、各節
点の遷移は次のオペレーション、すなわち、データ流内にあるビットに基づく状
態レジスタの変更、適当な辺の位置での節点データからのデータの引出し、およ
びその命令が状態レジスタに影響を与えるときの状態レジスタの内容の変更を含
有する。当業者にとって、この方法がこの目的のための専用のハードウェアによ
り迅速に実行されることは明らかである。その代わりに、そのアドレスは、単純
な連鎖以外の方法によって適当な数のオペレーション分増加する。
【0032】 図2cによると、図2bの図と同一の分類木が示されている。ここで、共通の
要素が除去され、部分木によって置き換えられており、部分木が、もし、サブル
ーチンのように横断するならば、スタック・オペレーションを要求する。上述し
たように、メモリ最適化は、費用を削減し、柔軟性を最大化等にするために重要
であるので、いくつかの異なる横断経路において、分類木の同一の部分を再使用
することによってメモリ使用量を削減するのに役に立つ。
【0033】 木の横断が節点S2に達し、次のビットが1ビットである場合には、ジャンプ
/プッシュ・オペレーションが実行されて、必要なジャンプおよび前記スタック
メモリに入力するために宛先節点アドレスが表示される。一旦、前記木領域が成
功裏に横断され、リターン・オペレーションに遭遇すると、前記スタックメモリ
のトップにあるアドレスの節点が、次の節点となる。要するに、ジャンプ・オペ
レーションは、その終点において、異なる節点に導く部分木の一部を形成する節
点に到達する。部分木に対し、通例、いくつかの異なる節点から飛び移っている
。結果として生ずる節点は、入力したアドレス内に示されている。プッシュ・オ
ペレーションは、スタックメモリのオペレーションで、前記スタックメモリへの
メモリアクセスを要求する。このメモリアクセスは、しかしながら、状態遷移の
間に実行され、例えば、パケットビットが、状態レジスタ内にロードされる間で
ある。その結果として、スタック・オペレーションは、処理能力に対する小さな
影響のみを有し、節点ごとに解析される幅wおよびパケットビットの数の選択は
、装置の動作をギガビットの速度であってさえも可能にする。速度が重大な設計
の制限でない場合には、スタックメモリおよびプログラム可能なメモリが同一の
メモリ回路に含められ、かつ、このような場合には同時に作動するだろう。その
ような構成を用いると、低速のパケット分類動作に対する発明の多くの利益が維
持される。
【0034】 部分分類における最後の節点に達すると、リターン・オペレーションが生じ、
状態レジスタが前記スタックメモリからのアドレスでロードされる。再び、オペ
レーションに関するスタックが実行されて、それらが重大な遅延を引き起こさな
いような態様で生じる。例えば、スタックメモリからの値は読み出され、前記デ
ータ流からのパケットビットとともに、状態レジスタにロードされる。当業者に
とって明らかであるが、多量の節点は、典型的な分類木では同一であるので、本
発明に係るスタックメモリの使用によって、分類木を格納するためのより効果的
なメモリ使用量に、したがって削減されたメモリ要件に導く。事実、節点によっ
てメモリ要件が削減されるので、wも削減され、それによって、さらにハードウ
ェアのメモリ要件が削減される。好ましくは、メモリ要件は、状態遷移機械の実
現のために、外部メモリを要しない程度に充分減縮されるべきである。
【0035】 図2cおよび図4によれば、前記スタックメモリの内容は次のように進行する
【表1】
【0036】 本発明に係る分類用状態遷移機械の単純化されたブロック図を、図5に示す。 状態遷移機械は、データ流からのデータを分類しかつ、特にデータパケットを
分類するのに役に立つ。前記状態遷移機械は図示するように、単一の集積回路1
00内に集積されている。集積回路100は、プログラム可能メモリ110、後
入り先出し方式のメモリ(LIFO)120、プロセッサ130およびプログラ
ム可能メモリ調停部140を有している。
【0037】 高速スタティックランダムアクセスメモリ(RAM)の方式をとるプログラム
可能メモリ110が好ましい。なぜならば、スタティックRAMは高速処理を支
援することができる処理能力速度を達成することができるからである。もちろん
、10Mビットのイーサネットパケット分類用状態遷移機械を操作するのに必要
とするような低速動作に対しては、既知のDRAM回路構成が、密度を増加させ
て費用を削減するために用いられる。RAM110は、データ流の分類に関する
情報、すなわち、分類木データを格納するためのものである。言い換えれば、R
AM110は、前記状態遷移機械内での状態に関するデータを格納するためのも
のである。
【0038】 例えば、各状態遷移機械の節点に関するデータがRAM110に格納される。
該データは、テーブルに格納され、各テーブルはテーブルアドレスおよびテーブ
ルフォーマットをもっている。RAM110は状態遷移ごとに1回プロセッサ1
30によってアクセス可能である。また、プロセッサ130は、RAM110内
での分類データにアクセスする場合には、最も高い優先度を持っている。これは
、他のRAMアクセス・オペレーションは、状態遷移機械の処理能力に影響を与
えないことを保証している。プログラム可能メモリ調停部140は、RAM11
0へのアクセスを制御する。プログラム可能メモリ調停部140は、RAM11
0の再プログラムが状態遷移機械の処理能力に影響を与えないことを保証する。
実際上、調停部140は、低速での前記プロセッサによる状態遷移ごとのRAM
110への単一のアクセスを保証する。より速いデータ速度では、分類動作が進
行中には、前記調停部は前記プロセッサ130による場合以外のRAMアクセス
・オペレーションを阻止する。これは、本質的にプログラム可能メモリ110の
再プログラムを、状態遷移機械が再プログラムを許可できない時間または入力す
るデータが分類されたパケットの一部である時間、すなわち、分類を要求するパ
ケットがない時間に制限することである。状態遷移機械は、通常、セキュリティ
のために、プログラム可能メモリ内容の変更を要求するセキュリティ・アプリケ
ーションに使用される場合には、再プログラムを許可することはできない。
【0039】 状態遷移ごとにプロセッサによる単一のRAMアクセスという好ましい目標を
達成するためには、スタック・オペレーションを、RAMアクセス・オペレーシ
ョンと独立に実行する。例えば、スタック・オペレーションは、それらが一方か
ら他方への情報を要求しない限りは、RAMアクセス・オペレーションに並行し
て稼動する。例えば、スタックメモリのプッシュ・オペレーションが完了するの
に単一の状態遷移よりも長い時間を要求する場合には、そのオペレーションは、
分類データがこの既知の制限に応ずる場合に限り、それによって、スタックメモ
リのプッシュ・オペレーション、および、それに続く状態遷移におけるスタック
・オペレーションを含有する分類データの構造を避けながら、RAMアクセス・
オペレーションに無関係に進めることができる。
【0040】 スタックメモリ120は、次の状態に対応するRAM110内のテーブルのテ
ーブルアドレスのフォーマットで、状態を表示するデータを格納するためのもの
である。該スタックメモリ120は、RAM110に独立に動作可能である。ス
タック・オペレーションは、好ましくは、RAM110から引き出されたデータ
に依存して開始する。したがって、そのような好ましい実施の形態では、スタッ
クメモリ120は、前記プロセッサ130が前記RAM110をアクセスするま
でアクセスされない。前記スタックメモリ120は、前記RAM110と、独立
に、すなわち、非同期的に動作可能である。これが唯一の制限であるならば、本
発明の実現は簡単なことである。
【0041】 本発明の好ましい実施の形態によれば、前記スタックメモリ120から引き出
されたデータは、状態遷移の直後に、RAM110からのデータの引出しに用い
られる。したがって、RAM110からおよびそれに続くスタックメモリ120
からのデータの引出しは、この好ましい実施の形態に係る単一の同じ状態遷移に
対して発生する。
【0042】 本発明に係る他の実施の形態によれば、分類データは配列されて、プッシュ・
オペレーション、すなわち、前記スタックメモリ120内へのデータの格納のた
めのオペレーションが1以上の状態遷移が完了することを要求することを可能に
する。しかしながら、典型的には前記プロセッサ130が、状態遷移のために前
記RAM110から引き出されたデータに応答して、前記スタックメモリ120
に情報を格納する。該情報を前記スタックメモリ120に、同じ状態遷移のため
に格納する。
【0043】 前記プロセッサ130は、状態遷移ごとに1回または少数回、前記プログラム
可能メモリ110から情報を引き出すためのものである。好ましくは、プログラ
ム可能メモリに対する単一のアクセスが、分類中に、各状態遷移のために生じる
。もちろん、一旦データが分類されると、次のパケットが開始されるまで状態遷
移機械オペレーションに休止状態がある。この休止状態の間に、前記RAM調停
部140は、前記RAM110のプログラミングを可能にする。こうして、非常
に高い速度であっても、前記状態遷移機械は、完全にプログラム可能である。
【0044】 前記プロセッサが前記RAM110からデータを引き出し、該データを使用し
て、次の状態を決定するためのオペレーションを実行し、それから該状態遷移機
械をそのように決定した次の状態に切り換える。時々、前記次の状態は、前記ス
タックメモリ120から引き出したデータから決定される。これは、リターン・
オペレーションが前記RAM110から引き出した際に生ずる。リターン・オペ
レーションの決定の際に、スタックメモリアクセスが実行されて次の状態を決定
する。前記スタックメモリのアドレスが、前記スタックメモリ120のトップに
ある、早期に入力したアドレスを残しながら「読み出され」る。もちろん、より
早期に入力したアドレスが存在しなければ、該スタックメモリは空になる。
【0045】 ジャンプ/プッシュ・オペレーションは他のオペレーションよりも多くの記憶
量を要求する。前記ジャンプ/プッシュ・オペレーションは、次の状態アドレス
、スタックメモリ120への入力のためのアドレス、および前記オペレーション
に関連する情報を要求する。入力のための前記アドレスは、ある後の時間での前
記スタックメモリ120からの読出しによる引出しのための次の状態のアドレス
である。こうして、分類木の節点内での単一のジャンプ/プッシュ・オペレーシ
ョンは、全幅の節点と関連したテーブルに導く。ジャンプ/プッシュ・オペレー
ションを持たない節点は、より小さい空間、すなわち半幅に格納される。これを
達成するには、次の状態を示す各オペレーションは、前記スタックメモリから読
み出されまたはRAM110から引き出されるか否かに拘らず、前記次の状態の
フォーマットに関する情報を示す。これは、いくつかのテーブルは、他のものが
占めるよりもプログラム可能メモリ110内にあるより小さい空間を占めるメモ
リ最適化法を支援する。
【0046】 ここでは、前記アクセプト・オペレーションは、分類を表示するために小さい
量のビットを設けているけれども、これはいくつかの方法のいずれかにおいて、
随意的に増加する。第1の方法では、アクセプト・オペレーションは、分類への
指標となる値をもって実行され、それによって、長い分類コードを可能にしてい
る。それに代わるものとして、アクセプト・オペレーションは、分類の結果のた
めに、余分なwビットを供給する全幅の節点を使用して実行される。もちろん、
2つの方法は結合することができる。
【0047】 好ましくは、前記調停部140は、前記プロセッサ130のために前記プログ
ラム可能メモリ110への透過アクセスを提供する。これは、前記プロセッサ1
30からのメモリアクセスが潜在的なオペレーションの場合には、前記プログラ
ムメモリ110を再プログラムするためのメモリアクセス・オペレーションを妨
げることによって達成される。前記プロセッサ130は最も高い優先度を与えて
いるので、前記プログラム可能メモリ110へのアクセスを企てることが妨げら
れないことが最も重要である。代わりのものとしては、ポート間の他の調停法が
採用される。
【0048】 もちろん、前記プロセッサは、状態遷移ごとに1回以上プログラム可能メモリ
110をアクセスしないので、1以上のRAMアクセスが、状態遷移ごとに可能
である場合には、前記プロセッサは、プログラム可能メモリ110への1のアク
セスが割り当てられ、前記プログラム可能メモリの再プログラムが、同じ状態遷
移のための前記メモリへの他のアクセスの間に実行される。
【0049】 新しいパケットデータが検出されると、前記プロセッサは分類動作を開始する
ための開始アドレスが与えられる。前記開始アドレスは、プログラム可能であり
、以下に述べるように、プログラム可能メモリを再プログラムする方法により使
用される。
【0050】 本発明に係る使用のためのクロック源は、応用に基づいておよび該分野内の現
在の知識に基づいて選択される。クロック源およびクロック源が与えられるネッ
トワークへのクロックの同期法の選択および実行は、通信ハードウェア設計の分
野では良く知られている。
【0051】 リアルタイムでまたはそれに近い状態で各フレームを調べるために速いホスト
コンピュータまたは内蔵コンピュータに依存するギガビットのイーサネットのた
めの従来の解決法と異なり、本発明は、ギガビットの速度に簡単に上昇できる。
ポートごとに10倍速いCPU10は、経済的でない。さらに、要求された処理
速度は、分類の基準の複雑さに応じて変化する。これらの制限は、本発明によれ
ば存在しない。
【0052】 他の実施の形態では、10Mビットのイーサネットのパケット分類用状態遷移
機械を実行する場合、いくつかのプロセッサが、同一のプログラム可能メモリ1
10を用いる。これを図6に示す。その結果生じるシステムは、多数のプロセッ
サ130、同一数のスタックメモリ120、および単一のプログラム可能メモリ
110を有している。各状態遷移機械は、異なる分類木構造に応じて同時にデー
タを分類する。代わりに、いくつかのプロセッサは、同一の分類機構造に従う。
また、各プロセッサと結合した分類データが、独立にプログラム可能である。こ
れは、異なる状態遷移機械間および単一の状態遷移機械の木の一部の間の木構造
の共通性に基づくデータの最適化を可能にする。
【0053】 プログラムメモリ110の再プログラミングは、1以上の状態遷移機械の分類
木構造における、現在の木における節点から、該木の根に戻るような変更に関係
する新しいデータの付加によって成し遂げられる。前記根のアドレスは、それか
ら、該状態遷移機械を実行するプロセッサへの開始アドレスとして供給される。
前記プログラム可能メモリ110内に格納されたテーブルをもはやプロセッサが
使用しないならば、これらのメモリ位置を、それに続く再プログラミングの間に
再使用する。このようにして、プログラミングは、現存するプログラミングまた
は現存する分類オペレーションに影響を与えることなく、前記状態遷移機械の動
作の間に生ずる。
【0054】 上述した理由から、前記分類データテーブルの生成および最適化処理を、でき
るだけ自動化することは重要である。一旦自動化されると、パケット分類の手順
として詳述することは重要ではなく、パターンマッチング法の処理になる。本質
的には、木構造は、パケット分類プログラムのコンパイラに任せる事項である。
もちろん、パケット分類が2つのクラス、すなわち、アクセプトおよびリジェク
トで考慮されるような同様のシステムが、フィルタリングへ適用できる。
【0055】 好ましくは、節点が半幅、全幅または値が決められていない表示がそれに続く
状態での使用のために記録かつ格納される。メモリに格納されるのは、直接的な
非周期的状態遷移機械の節点情報である。スタックメモリも提供される。好まし
くは、プロトコールの記述が提供され、構築中に、これらの選択されたプロトコ
ールは、分類木に翻訳され、最適化され、かつ、前記状態遷移機械のプログラム
可能メモリに格納される。前記状態遷移機械の節点は、次の4つのフォーマット
の1つを持っている。すなわち、全幅、半幅、値が決められていない場合、およ
び2ウェイである。これらの節点のフォーマットの各々は、前記節点から伸び
ている辺情報を格納するためのフォーマットに関係している。値が決められてい
ない節点は、次の状態節点に対する1の辺を有する。2ウェイ節点は、2
の辺を持っている。全幅節点は、各辺が、完全な語が割り当てられるように実行
されるが、半幅節点は、単一の語内に、2つの辺の各々に関する情報を格納する
。ある辺情報は、情報の半語またはそれ未満を要求し、および他の辺情報は、そ
れ以上を要求する。節点からの単一の辺は、実行のために半語の情報以上を要求
する場合、前記節点からの全辺は全幅である。そうでないならば、前記辺は半幅
に最適化される。また、節点からの全辺が同一の場合には、格納は単一の辺に削
減される。もちろん、他のメモリ格納最適化をもつ他の節点のタイプが本発明の
範囲内で可能である。
【0056】 このようにしてメモリ最適化を高める。両方のメモリ最適化技術を適用するこ
とによって重大なメモリ最適化が生ずる。これは、集積化したプログラム可能な
本発明に係るパケット分類用状態遷移機械の実現を可能にする。合理的な処理能
力および費用を達成するために、スタック・オペレーションを使用する木データ
構造を最適化し、それから、それによって生じたテーブルデータを、表示のグル
ープから最も小さな表示にテーブルを考慮することによって、最適化することに
役に立つ。もちろん、望む場合には、他の表示が用いられる。また、更なる最適
化またはより小さい最適化が、特定の応用に応じて使用される。
【0057】 好ましくは、コンパイラのソフトウェアが、プログラム可能メモリ内のデータ
のイメージを維持し、使用するメモリおよび、もはや任意の状態遷移機械の分類
データの一部でないメモリ位置を決定する。このようにして、一旦その内容が退
化すると、メモリのオーバフローの周期を、メモリの再使用を可能にすることに
よって削減する。これは簡単に見えるけれども、本発明は増大するプログラミン
グを支援し、そのプログラムメモリが、多数のプロセッサを支援することができ
るので、メモリの割り当てを自動的に追跡するのに非常に役に立つ。
【0058】 好ましい実施の形態は、状態遷移ごとにプログラム可能メモリへのプロセッサ
による単一のアクセスを使用することであるが、本発明は、またプログラム可能
メモリへの不必要なアクセスは、例えばカウンタで置き換えることによって実現
される。こうして、値が決められていない状態が4つ続く場合には、カウント命
令が、カウント数4と次のアドレスとともにロードされる。プログラム可能メモ
リ内の次のアドレスからのデータは、一旦前記カウンタが特定の数の計数を完了
すると引き出される。これは、値が決められていない状態が1つの場合に対する
単一のメモリアクセスを除去する。
【0059】 当業者には明らかではあるが、プログラム可能メモリは前記状態遷移メモリの
前記プロセッサによる読出し目的のためにアクセスされる。前記状態遷移機械の
プロセッサは前記プログラム可能メモリに対して書き込まない。逆に、プログラ
ム可能メモリのプログラミングのみが書込みオペレーションを要求する。したが
って、書込みアクセスおよび独立の読出しアクセス、すなわち、二重ポートをも
つメモリが本発明に適用可能である。さらに別の実施の形態では、真の二重ポー
トメモリが使用され、メモリの調停は不必要であるかまたは前記メモリ回路内に
設けられている。その代わりに、前記プロセッサは前記プログラム可能メモリに
対する読出しアクセスを持っているのに対して、プログラミングおよび診断法は
前記プログラム可能メモリに対する読出し書込みアクセスを使用する。
【0060】 好ましくは、本発明はASIC(特定用途向けIC)のようなカスタムIC内
で実行される。例えば、ギガビットのデータ速度に移行する場合には、前記分類
プロセッサによって拒否されたより効果的なフレームの取り扱いが、MAC(媒
体アクセス制御手順)内に分類システムを含ませることによって達成される。一
旦、拒否の決定がなされた場合には、前記MACは、フレームのホストメモリへ
の入力のDMA(直接記憶アクセス)または、もしDMAがまだ出力を開始して
いない場合には、待ち行列からのフレームを停止させる。同一の受信記述子がド
ライバソフトウェアの含有なしに使用され、それによってホストバス上のデータ
の往来を削減する。
【0061】 本発明に係る方法をMAC内で集積化することのいくつかの他の利益がある。
この利益には次のものがある。パターンメモリをMACのインターフェースを通
してロードすることによって、ホストバスの負荷を削減するホストブリッジの削
除、結合が明らかなので、別々の分類要素を使用する際に要求されるようなリン
グ状記述子と分類結果を結びつけるために要求される記憶装置がないこと、およ
び、ドライバーが望むどんな場所にも受信リング状記述子を置けるので記憶の利
益が最大化される。
【0062】 それの代わりに、FPGA(書替可能ゲートアレイ)内で実行される場合には
、その設計は好ましくは使用されるFPGAのタイプ内での実行のために最適化
される。
【0063】 本発明の多数の他の実施の形態を、本発明の主旨または範囲から逸脱せずに構
想することができる。
【図面の簡単な説明】
【図1a】 従来技術に係る分類用状態遷移機械の単純化した状態遷移図
【図1b】 従来技術に係る分類用状態遷移機械の単純化した状態遷移図
【図2a】 4つの分類A、B、CまたはDの1つとしてのパケットを分類するための単純
化したパケット記述子を示す図
【図2b】 図2aのパケット分類に対する分類木の単純化した図
【図2c】 図2bに等価な最適化かつ単純化した分類木を示す図
【図3】 本発明に係る状態遷移機械の実施形態例のメモリ使用法およびオペレーション
コードを表示するテーブルを示す図
【図4】 図2cの分類木のために実行された分類木のアドレステーブルを示す図
【図5】 本発明に係る非周期的分類用状態遷移機械の集積回路を実現する単純化したブロ
ック図
【図6】 単一の同一プログラム可能分類用データメモリを用いて多数の状態遷移機械を
実行する本発明に係るシステムの単純化した図
【符号の説明】
100…集積回路 110…プログラム可能メモリ(RAM) 120…スタックメモリ 130…プロセッサ 140…プログラム可能メモリ調停部(RAM調停部)
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AG,AL,AM,AT,AU, AZ,BA,BB,BG,BR,BY,CA,CH,C N,CR,CU,CZ,DE,DK,DM,DZ,EE ,ES,FI,GB,GD,GE,GH,GM,HR, HU,ID,IL,IN,IS,JP,KE,KG,K P,KR,KZ,LC,LK,LR,LS,LT,LU ,LV,MA,MD,MG,MK,MN,MW,MX, NO,NZ,PL,PT,RO,RU,SD,SE,S G,SI,SK,SL,TJ,TM,TR,TT,TZ ,UA,UG,US,UZ,VN,YU,ZA,ZW Fターム(参考) 5B033 AA04 DB01 DE01 5K030 GA03 HA08 HB11 KA01 KA04 KA07 LE09

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 a) 状態遷移機械内の状態に関する情報を格納するためのプ
    ログラム可能メモリと、 b) 状態を表示するデータを格納し、前記プログラム可能メモリと独立に動作可
    能なスタックメモリと、 c) 前記プログラム可能メモリから、状態遷移当り1回または少数回、情報を引
    き出しかつ同じ状態遷移中に前記スタックメモリから情報を引き出すことを可能
    とするため、現在の状態およびデータ流からのデータに基づいて次の状態を決定
    するため、および、前記状態遷移機械をそのように決定した前記次の状態に切り
    換えるためのプロセッサと、 を有する前記データ流からデータを分類するパケット分類用状態遷移機械。
  2. 【請求項2】 前記状態遷移機械を、単一の集積回路で実現する請求項1に
    記載のパケット分類用状態遷移機械。
  3. 【請求項3】 前記プロセッサは、状態遷移中に、前記プログラム可能メモ
    リから同じ状態遷移中に引き出されたデータに応答して、前記スタックメモリか
    ら情報を引き出す請求項1に記載のパケット分類用状態遷移機械。
  4. 【請求項4】 前記プロセッサは、状態遷移中に前記プログラム可能メモリ
    から引き出されたデータに応答して、同じ状態遷移の中に、将来の状態に関する
    情報を前記スタックメモリに格納するためのものである請求項1に記載のパケッ
    ト分類用状態遷移機械。
  5. 【請求項5】 前記スタックメモリは、前記プログラム可能メモリと並行し
    て動作可能である請求項1に記載のパケット分類用状態遷移機械。
  6. 【請求項6】 a) 状態遷移機械内の状態に関する情報を格納するプログラ
    ム可能メモリと、 b) 状態を表示するデータを格納し、前記プログラム可能メモリと独立に動作可
    能なスタックメモリと、 c) 前記プログラム可能メモリから情報を引き出し、前記プログラム可能メモリ
    の内容およびデータ流からのデータに基づいてオペレーションを決定するため、
    および、前記状態遷移機械をそのように決定された次の状態に切り換えるための
    プロセッサとを有し、 前記オペレーションは、次の状態に関するデータおよび前記スタックメモリに
    配置するためのデータを含むジャンプ・プッシュ・オペレーション、前記スタッ
    クメモリから、将来の状態に関するデータを読み出すポップ・オペレーション、
    および、次の状態に関するデータを含むジャンプ・オペレーションを有するとと
    もに、前記データ流からデータを分類するパケット分類用状態遷移機械。
  7. 【請求項7】 前記状態遷移機械を、単一の集積回路で実現する請求項6に
    記載のパケット分類用状態遷移機械。
  8. 【請求項8】 前記プロセッサは、状態遷移ごとに1回のみ、前記プログラ
    ム可能メモリから情報を引き出す請求項6に記載のパケット分類用状態遷移機械
  9. 【請求項9】 前記プロセッサは、状態遷移ごとに1回のみ、前記プログラ
    ム可能メモリから情報を引き出し、かつ、また、同じ状態遷移中にスタックメモ
    リに対し、次の状態に関するデータのスタックポップ・オペレーションを実行す
    る請求項6に記載のパケット分類用状態遷移機械。
  10. 【請求項10】 a) 状態遷移機械内の状態に関するものであって、プログ
    ラム可能メモリ内に格納されている情報を提供し、 b) 状態を表示するデータを格納するとともに、前記プログラム可能メモリと独
    立に動作可能なスタックメモリを提供し、 c) 状態当り1回または少数回で前記プログラム可能メモリから情報を引き出し
    、 d) 引き出された前記プログラム可能メモリの内容および前記データ流からのデ
    ータに基づいて、前記スタックメモリにデータを配置するためのジャンプ・プッ
    シュ・オペレーション、前記スタックメモリから状態に関するデータを読み出す
    ポップ・オペレーション、および次の状態に関するデータを含むジャンプ・オペ
    レーションを有するオペレーションの内の1つのオペレーションを決定し、 e) 前記状態遷移機械を次の状態に切り換える状態遷移機械を用いてデータ流か
    らデータを分類するパケット分類方法。
  11. 【請求項11】 多数のデータ流は、同一のプログラムメモリを用いて並行
    して分類され、あるデータ流に対する現在の状態は、他のデータ流に対する状態
    と異なる請求項10に記載のパケット分類方法。
  12. 【請求項12】 多数のプロセッサは、各々、異なるデータ流を分類するた
    めに使用され、各プロセッサは、異なる結合したスタックメモリを有し、各プロ
    セッサは、状態ごとに1回または少数回、同一のプログラム可能メモリから情報
    を引き出す工程を実行する請求項11に記載のパケット分類方法。
  13. 【請求項13】 プログラム可能メモリを、パケット分類オペレーション動
    作と同時に再プログラムする工程を有する請求項10に記載のパケット分類方法
  14. 【請求項14】 前記プログラム可能メモリを再プログラムする前記工程は
    、状態遷移機械と結合していないプログラム可能メモリ内でのアドレスを決定し
    、これらのアドレスに分類データを格納する工程を有する請求項13に記載のパ
    ケット分類方法。
  15. 【請求項15】 予め定めたメモリ位置から引き出された第1の状態アドレ
    スを決定し、該プログラム可能メモリの再プログラミングが完了した際に、前記
    予め定めたメモリ位置に、新しい第1の状態アドレスを格納する工程を有する請
    求項14に記載のパケット分類方法。
  16. 【請求項16】 スタックメモリのポップ・オペレーションを、状態遷移中
    に実行する工程を有する請求項10に記載のパケット分類方法。
  17. 【請求項17】 前記プッシュ・オペレーションは、さらに、次の状態に関
    する情報を含み、該データは、現在の状態遷移中に前記スタックメモリに入力さ
    れる請求項10に記載のパケット分類方法。
  18. 【請求項18】 前記情報は、次の状態に関するデータおよび次の状態に関
    する情報のフォーマットに関するデータを有する請求項10に記載のパケット分
    類方法。
  19. 【請求項19】 いくつかの状態についての情報は、他の状態についての情
    報よりもより小さいメモリを占有する請求項10に記載のパケット分類方法。
  20. 【請求項20】 2グループの状態のついての情報は、同じメモリ位置を占
    め、前記スタックメモリは、各グループに対する次の状態を識別する機能を有す
    る請求項10に記載のパケット分類方法。
  21. 【請求項21】 状態に関する情報は、2オペレーションを有し、ここで
    nは、状態のアドレスからのオフセットを決定するために、前記プロセッサによ
    って使用されるビット数である請求項10に記載のパケット分類方法。
  22. 【請求項22】 情報を引き出す工程は、データ流内でのビットおよび引き
    出された次の状態のアドレスから決定されたアドレス位置に格納されたオペレー
    ションを引き出す請求項21に記載のパケット分類方法。
  23. 【請求項23】 前記決定は、ビットに関しての論理オペレーションのみを
    使用して実行される請求項22に記載のパケット分類方法。
  24. 【請求項24】 前記(c)、(d)、および(e)工程は、繰り返して実
    行され、状態遷移機械を次の状態に切り換える(e)工程は、次回の繰り返しの
    ために、現在の状態のアドレスとして、新しいアドレスを供給する工程を有する
    請求項23に記載のデータ流からデータを分類するためのパケット分類方法。
  25. 【請求項25】 オペレーションがスタックメモリのプッシュ・オペレーシ
    ョンである場合には、状態アドレスが、前記スタックメモリに入力され、前記情
    報は、次の状態アドレスを有する請求項23に記載のパケット分類方法。
  26. 【請求項26】 a) 状態遷移機械内の状態に関する情報を格納するプログ
    ラム可能メモリと、 b) 後入れ先出し方式でスタックメモリから引き出すために、リターン状態に関
    するデータを格納するスタックメモリと、 c) 前記プログラム可能メモリから、次の状態アドレスに関するデータを含むプ
    ッシュ・オペレーションおよびポップ・オペレーションを有するオペレーション
    を引き出すため、前記オペレーション内にある情報の1つおよび前記スタックメ
    モリから引き出されたデータに基づいて次の状態を決定するため、および、前記
    状態遷移機械を次の状態に切り換えるためのプロセッサと、 を有し、2つの状態のグループに対する情報が同一のメモリ位置を占め、前記ス
    タックメモリは、各グループに対する次の状態を識別する機能を有するプログラ
    ム可能ハードウェア用状態遷移機械。
  27. 【請求項27】 前記状態遷移機械を、単一の集積回路で実現する請求項2
    6に記載のプログラム可能ハードウェア用状態遷移機械。
  28. 【請求項28】 a) 状態遷移機械内の、2つのグループを含有する状態に
    関する情報を格納するプログラム可能メモリと、 b) リターン状態に関し、後入れ先出し方式でスタックメモリから引き出すため
    のデータを格納するスタックメモリと、 c) 現在の状態アドレス、および、データ流からの多数のビットに基づいてアド
    レスを形成し、前記プログラム可能メモリ内のアドレスから、次の状態アドレス
    に関するデータを含有するプッシュ・オペレーション、次の状態アドレスに関す
    るデータを含有するジャンプ・オペレーションおよびポップ・オペレーションを
    有するオペレーションを引き出すため、前記オペレーション内の情報の1つおよ
    び前記スタックメモリから引き出されたデータに基づいて次の状態を決定するた
    め、および前記状態遷移機械を次の状態に切り換えるためのプロセッサと、を有
    し、 前記プログラム可能メモリから情報を引き出す1および1のみのオペレーショ
    ンが状態遷移ごとに実行されるとともに、状態の第1のグループは、各々前記テ
    ーブルアドレスからのオフセットでアドレス可能テーブル要素を有するデータの
    テーブルによって表示され、該テーブル要素は、前記状態遷移機械内での次の状
    態を表示し、前記データ流内の多数のビットは、オフセットを決定するためのも
    のであり、 状態の第2のグループは、各々テーブル要素を含有するデータのテーブルによ
    って表され、前記第1のグループの状態を表示するデータのテーブルよりも小さ
    いメモリを占めている前記データ流からデータを分類するパケット分類状態遷移
    機械。
JP2001583315A 2000-05-11 2000-05-11 パケット分類用状態遷移機械 Pending JP2003533913A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2000/000550 WO2001086433A1 (en) 2000-05-11 2000-05-11 Packet classification state machine

Publications (1)

Publication Number Publication Date
JP2003533913A true JP2003533913A (ja) 2003-11-11

Family

ID=4143058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001583315A Pending JP2003533913A (ja) 2000-05-11 2000-05-11 パケット分類用状態遷移機械

Country Status (3)

Country Link
JP (1) JP2003533913A (ja)
AU (1) AU4737200A (ja)
WO (1) WO2001086433A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1547342B1 (en) * 2002-09-12 2014-07-23 International Business Machines Corporation A method and apparatus for deep packet processing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765207A (en) * 1993-06-22 1998-06-09 International Business Machines Corporation Recursive hardware state machine
FR2707775B1 (fr) * 1993-07-12 1996-04-12 Duret Chrsitian Procédé et dispositif d'analyse d'informations contenues dans des structures de données.
SE511972C2 (sv) * 1997-09-09 2000-01-10 Sics Swedish Inst Of Computers Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket

Also Published As

Publication number Publication date
WO2001086433A1 (en) 2001-11-15
AU4737200A (en) 2001-11-20

Similar Documents

Publication Publication Date Title
US6167047A (en) Packet classification state machine
US7313142B2 (en) Packet processing device
US9110714B2 (en) Systems and methods for multi-tasking, resource sharing, and execution of computer instructions
US6330584B1 (en) Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US7069372B1 (en) Processor having systolic array pipeline for processing data packets
TW200301429A (en) A method of improving the lookup performance of tree-type knowledge base searches
US8555374B2 (en) High performance packet processing using a general purpose processor
US20060059165A1 (en) Highly scalable subscription matching for a content routing network
US20060136681A1 (en) Method and apparatus to support multiple memory banks with a memory block
CN102904871A (zh) 流分配
JP2001223749A (ja) パケット分類エンジン
EP0961966B1 (en) N-way processing of bit strings in a dataflow architecture
US6424934B2 (en) Packet classification state machine having reduced memory storage requirements
US20070255676A1 (en) Methods and apparatus for performing tree-based processing using multi-level memory storage
JP2003533913A (ja) パケット分類用状態遷移機械
JP4209186B2 (ja) パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ
US7127547B2 (en) Processor with multiple linked list storage feature
JPH11317783A (ja) ヘッダ処理装置とそのヘッダ処理方法
JP2003500709A (ja) パケット分類状態マシン
US12019644B1 (en) Methods and systems for performing database operations
WO2023226151A1 (zh) 电压序列数据缓存方法及系统
JPH0317780A (ja) 記号列検索方法および装置
JP5063780B2 (ja) 有限オートマトンのメモリ内データ構造、この構造のデータが格納されたメモリ、このメモリを用いた有限オートマトン実行装置
JPH06162083A (ja) 文字列検索装置
JPH0832590A (ja) バッファメモリ読出し順序決定回路及び決定方法