JP5265378B2 - 高性能正規表現パターンマッチングのための方法および装置 - Google Patents
高性能正規表現パターンマッチングのための方法および装置 Download PDFInfo
- Publication number
- JP5265378B2 JP5265378B2 JP2008543412A JP2008543412A JP5265378B2 JP 5265378 B2 JP5265378 B2 JP 5265378B2 JP 2008543412 A JP2008543412 A JP 2008543412A JP 2008543412 A JP2008543412 A JP 2008543412A JP 5265378 B2 JP5265378 B2 JP 5265378B2
- Authority
- JP
- Japan
- Prior art keywords
- transition
- input
- indexed
- word
- input symbol
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Description
(約10000個のパターンからなるルールベースを使用して一般に動作する)ネットワーク侵入検出/防止システム(Roesch,M.、「Snort−lightweight intrusion detection for networks」、LISA ’99:13th Systems Administration Conference、229−238ページ、1999年を参照されたく、その開示の全体は、参照により本明細書に組み込まれる)、
不適切または不法な内容を探し出すために発信電子メールをスキャンする電子メール監視システム、
ユーザ指定パターンを課して着信電子メールをフィルタリングするスパムフィルタ、
有害であることが知られているプログラムのシグニチャについてフィルタリングを行うウイルススキャナ、および
海賊版コンテンツを探し出すためにメディアファイルまたはソケットストリームをスキャンする著作権実施プログラム
を含むがこれらに限定されない。上記のようなアプリケーションでは、データストリーム内で探されるパターンの集合は、日々変化し得る。
シンボルα∈Σは、{α}を表し、
シンボルλは、空(ゼロ幅)文字列を含む単集合を表し、
シンボルφは、空集合を表す。
上記の各々は、正規言語である。より複雑な正規表現は、当技術分野でよく知られているように、合併演算子、連接演算子、およびクリーネ閉包演算子を使用して、構成されることができる。シンボル範囲指示子および節反復係数が、統語上の便宜のため、一般に提供される。よく知られた正規表現表記および拡張のいずれもが、本発明を実施する際の使用に適しているが、perlが普及しているため、本明細書の説明および本発明の好ましい実施形態は、正規表現用にperl表記および拡張を支持する。
文字範囲の下限値および上限値は、ダッシュ「―」を使用して指定され、
「+」符号は、直前の表現が1回以上繰り返され得ることを表し、
中括弧内の単一の数は、直前の表現が指定された回数だけ正確に繰り返され得ることを表し、
中括弧内の対をなす数は、直前の表現についての繰り返しの範囲を表す。
したがって、上記の表現とマッチする文字列は、シンボル「$」で始まり、それに10進数字からなる何らかの正の数が続き、その文字列には、任意選択で、10進小数点「.」と、さらに正確に2つの10進数字が続く。実際には、そのようなマッチについてのパターンは、マッチが(空白など)何らかの区切り符号によって囲われることも指定することができ、その結果、文字列「$347.12」は、4つのマッチ(すなわち、「$3」、「$34」、「$347」、「$347.12」)ではなく、1つのマッチをもたらす。
(Q,Σ,q0,δ,A)
として記述され、ここで、
Qは、状態の有限集合であり、
Σは、入力シンボルのアルファベットであり、
q0∈Qは、DFAの初期状態であり、
δは、遷移関数:
A⊆Qは、アクセプト状態の集合である。
ターゲット文字列内で発生し得るどのようなシンボルも含むように、アルファベットが広げられる。本明細書では、Σは、256個のシンボルを含むASCIIキャラクタセットであることが仮定される。
新しい状態Uを有するように、DFAが拡大される。Q←Q∪{U}。
それまでδが定義されていなかった、すべてのq∈Q、a∈Σに対して、δ(q,a)=Uと定義することによって、遷移関数δが完成される。
従来のDFAは、一度に1つの入力シンボル(バイト)を処理し、次状態を決定するために各バイトに基づいてテーブル検索を実行する。しかし、現代の通信インタフェースおよび相互接続は、サイクル当たり複数のバイトをしばしば転送し、そのことが、より高いスループットの達成に関して、従来のDFAを「ボトルネック」にする。スループットとは、データストリームが処理され得る速度、すなわち、設計およびその実施によって受け入れられ得る1秒当たりのバイト数のことである。
スループットがより高いDFAは、サイクル当たり複数の遷移を実行するので、遷移中に元のDFAのアクセプト状態を通過することがあり得る。したがって、一連の遷移(trace)中にアクセプト状態が通過されたかどうかを含むように、遷移関数を拡大する。
δm:Q×Σm→Q×{0,1}
値域の第2の成分は、遷移を引き起こしたシンボルの系列が、元のDFAにアクセプト状態を通過させる非空のプレフィックスを含むかどうかを示す。
先に説明されたように、正規表現のためのパターンマッチングDFAは、好ましくは、ターゲット文字列のいたる所でマッチが発生することを可能にする遷移を用いて拡大される。マッチはターゲット内のどこを開始位置としても発生し得るので、アクセプトは、ターゲット内におけるマッチの開始位置を報告すべきである。開始点がいつ設定されるかは、図3のオートマトンでは明らかでない。例えば、状態Aへのすべての遷移は、開始点を設定するが、「$」に基づいた状態Bへの遷移もそうである。EからAへの遷移を考えると、「〜」または「.」はリスタートであるが、数字(digit)はアクセプトである。
δ1:Q×Σm→Q×{0,1}×{0,1}
第1のフラグは、リスタート遷移(「マッチリスタート」フラグ)を表し、第2のフラグは、アクセプト遷移(「マッチ」フラグ)を表す。したがって、DFA図は、これ以降、緑色の辺を用いてリスタート遷移を、赤色の辺を用いてアクセプト辺を示す。例えば、図7は、一度に1つのシンボルを処理し、図1によって表される言語を認識するオートマトンについての図の例示的な一例を示している。任意選択で、状態Aへの遷移に関する辺は、黒色として符号化され、しかるべくフラグ設定されることができ、状態Bへの遷移に関する辺だけが、緑色として符号化され、しかるべくフラグ設定される。色付けされた辺を有するDFAの動作は、以下のようになる。オートマトンは、マッチの開始および終了を記録するための文脈変数(context variable)bおよびeを含み、最初、b=e=0であり、ターゲットの第1のシンボルのインデックスは1である。これらの変数は、マッチング文字列の位置が、図24に示されるような文脈バッファ(context buffer)内で見出されることを可能にする。その後、以下のように遷移が実行される。
黒色:eがmだけ、すなわち、遷移を引き起こした入力文字列の長さである、オートマトンのストライド(stride)だけ進められる。図6では、m=1である。マッチは進行中であり、ここまで関与しているターゲット文字列の部分は、両端を含んで、位置bで開始し、位置eで終了する。
赤色のみ:eがmだけ増やされ、マッチが宣言される。マッチを引き起こしたターゲット部分文字列は、位置bで開始し、位置eで終了する。
緑色のみ:bがmだけ増やされ、eはbと同じに設定される。オートマトンは、マッチプロセスをリスタートする。
赤色および緑色:緑色動作の前に、赤色動作が実行される。
上で説明されたように、遷移テーブル(δ)のサイズは、各サイクルで消費される入力系列の長さに伴って指数関数的に増大する。本セクションでは、シンボルアルファベットを符号化するための技法が提示され、その目標は、遷移テーブルのサイズを低減し、ひいてはサイクル当たりに処理されるシンボルの数を最大化することである。
(∃a∈Σ)(∃b∈Σ)(∀q∈Q)δ(q,a)=δ(q,b)
である場合、aとbは「遷移同値(transition equivalent)」であると言われることができる。
上で説明されたスループット向上とアルファベット符号化のアイデアは、今から組み合わされて、(テーブルを構成する際の)時間および(実行時にテーブルを実現する際の)空間を節約するために、サイクル当たり複数のバイトを消費し、その入力を符号化するアルゴリズムをもたらす。
Qは、状態の有限集合であり、
Σは、ターゲットの入力シンボルのアルファベットであり、
q0∈Qは、初期状態であり、
Kは、サイズがQ(|Σ|m)である(しかし実際にはより小さいことが予想される)整数からなる集合であり、
kは、一度にm個の入力シンボルをそれらの符号化にマッピングする、関数
δは、現在状態およびm個のシンボルからなる次の部分文字列を、次状態、リスタートの可能性、およびアクセプトの可能性にマッピングする、関数
1.1つまたは複数の正規表現rについて通常の方法(上で引用されたHopcroftおよびUllmanの参考文献を参照されたい)でDFA dが構成される。例えば、上で説明されたように、図1の正規表現は、図3に示されたDFAをもたらす。
2.ターゲット内の任意の位置での開始に基づいて、オートマトンが受け入れることが可能な遷移pの集合が計算される。これは、各状態についてq0へのλ遷移をシミュレーションすることによって達成される。具体的には、ρは以下のように計算される。
4.状態最小化が、標準アルゴリズム(上で引用されたHopcroftおよびUllmanの参考文献を参照されたい)によって、高スループットDFAに対して実行されるが、ただし、状態は、従来のDFAでのように最終状態かそれとも非最終状態かによって分割される代わりに、入来する辺の色(黒、緑、赤)によって最初に分割される。
5.DFAkを所与として、アルファベット符号化を伴う、スループットがより高いDFA2kが、図6に示されたアルゴリズムによって構成される。
好ましい高スループットDFAのための遷移テーブルは、|K|×|Q|個のエントリを含むことができる。状態最小化は、|Q|を最小化することを試み、より高いスループットとアルファベット符号化の組み合わせに関する先の説明は、|K|を最小化することを試みる。それにも関わらず、ストレージ資源は一般に制限され、したがって、できるだけ多くのテーブルを収容するための技法が、検討されるべきである。以下では、テーブル自体をどのように圧縮するかを説明することによって、この問題を検討する。
1.入力から符号化された次のECIに基づいて、図13に示される記憶域レイアウト内で、エントリの関連範囲が見出される。この検索は、ECIから記憶域レイアウトにおけるオフセットへのマッピングを使用して実行されることができる。エントリの範囲は、図12からの圧縮された列である。図13では、下線が引かれたエントリが、図12からのECI 1に対応する。
2.現在状態に基づいて、次状態および動作フラグが、エントリの関連範囲内で見出されなければならない。状態選択と呼ばれるこのロジックは、どのエントリが現在状態のインデックスに対応するかを見出すために、エントリを必然的に伸張する必要がある。
図13に示された記憶域レイアウトは、物理メモリにマッピングされなければならず、物理メモリにおいて、テーブル全体は、1回のメモリアクセスでフェッチされるには大き過ぎる。フィールドプログラマブルゲートアレイ(FPGA)および同様のデバイスは、サイズおよびワード長に関して構成可能なメモリバンクをしばしばサポートする。さらに、与えられたエントリのサイズは、各フィールド(ランレングス、次状態識別子、マッチリスタートフラグ、マッチフラグ)のために割り当てられたビットの数に依存する。以下の分析は、サイクル当たりx個の遷移テーブルエントリが取り出され得るという全般的な仮定に基づいている。シングルポートメモリでは、これは、xがワード当たりの遷移エントリ数に一致することを意味する。マルチポートメモリでは、これは、xがポート数にワード当たりの遷移エントリ数を乗じた値に一致することを意味する。一例として、サイクル当たり5回のアクセスをサポートし、ワード当たり3つのエントリを保有する物理メモリは、好ましい実施形態では、x=5×3=15と設定することによって適合される。しかし、サイクル当たり1回のみのアクセスをサポートし、ワード当たり3つのエントリを保有する物理メモリは、好ましい実施形態では、x=3と設定することによって適合される。
xが選択されると、圧縮列は、できるだけコンパクトに物理メモリ内に配置される。図15(b)は、遷移テーブルの列が、x=3のメモリ内にパッキングされた一例を示している。メモリ内の各ワードは、メモリアドレスによってインデックス付けされる。例えば、メモリアドレス0によってインデックス付けされたワードは、以下の遷移、すなわち、5(B,1,0)、3(A,1,0)、および1(C,0,0)を含む。各列の変化する長さのため、与えられた列は、行内のいずれのエントリからでも開始することがある。
ポインタ:ランレングス符号化された遷移テーブル列の第1のエントリを含む、遷移テーブルメモリ内のメモリワードのアドレス。
遷移インデックス:ランレングス符号化された遷移テーブル列に対する第1のメモリワードにおける、その列の第1のエントリのインデックス。
遷移カウント:(または略して「カウント」)ランレングス符号化された遷移テーブル列内のエントリの数。
好ましくはTTMの効果的な記憶域レイアウトを考慮し、その他の最適化も提供する、状態選択論理回路の実施が、今から説明される。TTMは圧縮列のコンパクトな記憶を提供するが、状態選択ロジックは、より複雑になる。図14に示されるロジックは、圧縮列が、無関係なエントリなしに同時にロジックに提示され得ることを仮定する。そのロジックは、TTMを使用して状態選択を実行するためには、以下の理由で、準最適である。
圧縮列がTTMの複数のワードにまたがることがある。
圧縮列の先頭がTTMワードの中間から始まることがある。したがって、先頭前のエントリは状態選択のために抑制されなければならない。
圧縮列の末尾がTTMワードの末尾前に生じることがある。したがって、末尾後のエントリは状態選択のために抑制されなければならない。
(カウント+インデックス−1) mod x (2)
によって与えられる。
ポインタ:遷移テーブル列の第1のエントリを含むTTMワードのアドレス。
先頭遷移インデックス:遷移テーブル列がまたがる第1のTTMワードにおける、(遷移テーブル列の)第1のエントリのインデックス。
末尾遷移インデックス:遷移テーブル列がまたがる最後のTTMワードにおける、(遷移テーブル列の)最後のエントリのインデックス。
[付加的な]ワードカウント:w−1、ここで、wは式1によって計算される。
この例を続けると、図17は、図16に示される遷移テーブルに関する、インダイレクションテーブルおよびTTMエントリを示している。基本的に、遷移カウント値は、ワードカウント値と、末尾遷移インデックス値とに変換される。この変換は、TTMの内容に影響を与えないが、これらのテーブルを処理するために必要とされるロジックを削減する。
高スループットの正規表現パターンマッチングエンジンを達成することは、本明細書で開示される、高スループットDFA、文字符号化、および遷移テーブル圧縮技法を開発する主要な動機である。以下では、何らかのメモリ効率性を犠牲にしてシステムのスループットを最適化する技法が検討され、したがって、以下の技法の各々は、TTMによって制約される。具体的には、TTMは、以下の制約を課す。
ワード当たりのエントリの数。
テーブル内のメモリワードの数。
テーブル内のエントリの総数。
検索のために必要とされるメモリアクセスの回数は、TTM内における圧縮列の配置と、それらの列がアクセスされるパターンとによって決定される。パターンは、エンジン内における1組の正規表現と、エンジンによって処理される具体的な入力データとに依存する。DFAmの場合、m個の入力シンボルは、1列の検索を引き起こすECIに変換される。メモリアクセスの回数は、符号化遷移テーブル内の列の長さと、列アクセスパターンとに依存する。列アクセスパターンは、エンジン内における正規表現(または1組の正規表現)と、入力データとに依存する。与えられた検索についてのメモリアクセスの総数は、
インダイレクションレイヤは、符号化遷移テーブルの列がTTM内の任意の位置で開始および終了することを可能にすることを思い出されたい。符号化テーブル列の物理メモリへの愚直なパッキングは、各テーブル列について余計なメモリアクセスを招くことによって、上述の最適化を妨害することがあり得る。図15において、入力シンボル「.」(ECI 1)に関連付けられたランレングス符号化遷移テーブル列は、3つのエントリを含むが、TTMにおいて2つのメモリワードにまたがることに留意されたい。列を単一のメモリワードに保存することは可能であるが、この列へのアクセスは、図15においてレイアウトされているように、2回のメモリアクセスを必要とする。符号化遷移テーブル行がたかだかw個のワードにまたがるに過ぎないことを保証することによって、インダイレクションレイヤによって提供される柔軟性を利用することができ、ここで、
このセクションでは、好ましい高スループットDFAおよびパイプライン化遷移テーブル技法に基づいた、高性能正規表現検索システムの実施が説明される。この実施の主眼は、高速ディスクのアレイへの高帯域幅相互接続を有する複数のスーパースカラマイクロプロセッサおよび再構成可能なハードウェア装置を含む、ハイブリッド処理プラットフォームである。図24は、システムレベルアーキテクチャの一例を示しており、ユーザインタフェースと、正規表現コンパイラと、ファイルI/Oコントローラと、正規表現ファームウェアモジュールと、結果プロセッサとを含む。
図5に詳しく示されるように、正規表現コンパイラは、ユーザによって指定された正規表現の集合をユーザインタフェースから受け取る。その後、当技術分野の標準アルゴリズムが、指定された正規表現を解析して、正規表現からNFAを生成し、NFAを位置独立なDFAに変換し、位置独立なDFAを最小DFAに縮小する。正規表現コンパイラによって実行される次のステップは、従来の最小DFAを、本発明の好ましい高スループットDFAに変換することである。このステップは、(遷移テーブルについての適切なマッチフラグおよびマッチリスタートフラグの決定と、入力シンボルのECIへの符号化とを含む)サイクル当たりm個の入力シンボルからなるストライドに対応するためのDFAのスケーリングと、遷移テーブルのランレングス符号化とに関して上で説明されたプロセスを含む。次に、図20および図21のアルゴリズムが、遷移テーブルメモリへのランレングス符号化遷移の保存を最適化するために実行されることができ、図23のアルゴリズムが、遷移テーブルメモリのワードへのランレングス符号化遷移エントリのパッキングを最適化するために実行されることができる。その後、インダイレクションテーブル内のエントリが決定されることができ、コンパイラは、入力シンボル対ECIテーブル、インダイレクションメモリテーブル、および遷移テーブルのための回路メモリにデータ投入するように動作する正規表現回路502に、コマンドを発行する準備が整う。
結果プロセッサを介して検索結果を報告するために、様々な技法のいずれもが使用され得ることが予想される。好ましい結果プロセッサは、正規表現回路(エンジン)によって生成された結果を使用して、各マッチに対する正しい表現および入力文字列セグメントを決定するように構成されることができる。図24に示されるもののような好ましい一実施形態では、正規表現回路(エンジン)によって生成される結果は、一意のエンジン識別子(ID)と、開始状態と、アクセプト状態と、アクセプト遷移をトリガするm個の入力シンボルに対するECIとを含む。結果は、パターンにマッチした文字列を含む入力ストリームの一部分である、マッチについての文脈も含む。結果プロセッサは、マッチング文字列および関連する正規表現(パターン)をユーザインタフェースに報告する。
ファイルI/Oコントローラは、入力ストリームを制御する、システムのコンポーネントである。図24の例示的なシステムでは、ファイルI/Oコントローラは、データストアから正規表現回路に流れる、ファイルのストリームを制御する。当技術分野で知られているように、入力ストリームも、ネットワークインタフェース(またはその他のデータインタフェース)によって供給され得ることに留意されたい。
正規表現ファームウェアモジュールは、図24に示されるシステムアーキテクチャにおける主要なデータパスコンポーネントである。正規表現ファームウェアモジュールは、好ましくは、正規表現エンジン(またはパターンマッチング回路)のアレイと、少量の制御ロジックとを含む。アレイ内のエンジンの数は、システム内の再構成可能ハードウェア装置の能力に依存する。制御ロジックは、入力ファイルストリームを各正規表現エンジンにブロードキャストし、したがって、エンジンは、同じ入力データに基づいて並列に動作する。制御ロジックはまた、入力のコピーを文脈バッファに送る。文脈バッファのサイズは、エンジンがパターンを認識したときに、結果プロセッサに送られる文脈の量に依存する。このパラメータは、ファームウェア/ソフトウェアインタフェースに過剰負荷をかけない間は、返され得る文脈の量を最大化するように調整されることができる。
アルファベット符号化ブロックは、m個の入力シンボルからなる組に同値類識別子(ECI)を割り当てる。各入力シンボルがi個のビットを使用して指定され、ECIがp個のビットを使用して指定される場合、アルファベット符号化ブロックは、入力を基本的にmiビットからpビットに短縮する。この動作を実行するための単純な方法は、直接アドレステーブルを使用して対組み合わせを実行することである。図26に示されるように、テーブルの第1の組は、1つのiビット入力シンボルをjビットのECIに変換する。このステップは、単一の入力シンボルを同値類にマッピングする。テーブルの次のステージは、単一の入力シンボルに対応するjビットECIを2つ単に連結し、ECIテーブルを直接アドレスすることによって、2つの入力シンボルに対してkビットECIを生成する。第2のステージにおいてECIテーブルを実施するために使用されるメモリのアドレス可能性によって、jの上限が定められることに留意されたい。具体的には、2jは、メモリによってサポートされるアドレスビットの数より小さいか、または等しくなければならない。同様に、次のステージは、2つのシンボルに対応するkビットECIを2つ連結し、ECIテーブルを直接アドレスすることによって、4つの入力シンボルに対してpビットECIを生成する。同様に、ECIテーブルによってサポートされるアドレス空間が、kに対して上限を定める。理論的には、この技法は、任意の数の入力シンボルにECIを割り当てるために使用されることができるが、実際には、最終の同値類によってカバーされるシンボルの数が増加するにつれて、メモリ効率は著しく悪化する。
各正規表現エンジンは、好ましくは、小規模な入力バッファおよび出力バッファを含む。入力バッファは、単一のエンジンが、TTM内の複数のワードにまたがる遷移テーブル列を取り出さなければならない場合に、アレイ内のすべてのエンジンを機能停止にさせることを防止する。いずれかのエンジンの入力バッファが満杯である場合、アレイ全体は機能停止しなければならないが、入力バッファは、ファイル入力速度の瞬間的変動を分離するのに役立つ。出力バッファは、正規表現エンジンがマッチを見出した後、そのマッチが結果プロセッサに送られる以前に、正規表現エンジンが処理を継続することを可能にする。文脈バッファは、好ましくは、ラウンドロビン方式で正規表現エンジンの出力バッファにサービスを行う。いずれかのエンジンの出力バッファが満杯である場合、別の結果を出力バッファに送る以前に、エンジンは機能停止しなければならない。エンジンの入力バッファが満杯である場合、好ましくは、アレイが機能停止しなければならない。
Claims (38)
- 決定性有限オートマトン(DFA)により入力文字列をパターンにマッチさせるための装置であって、DFAが、現在状態を含む複数の状態を備え、入力文字列が、複数の入力シンボルを含み、装置が、
DFAを実施するパターンマッチング回路を備え、パターンマッチング回路が、m個の入力シンボルからなるグループとして入力文字列の入力シンボルを受け取り、連続して処理するように構成され、ここで、mは1以上の整数であり、パターンマッチング回路が、(1)複数の保存された遷移を含む遷移テーブルメモリであって、各保存された遷移が、少なくとも1つの入力シンボルに対応するデータによってインデックス付けされ、各遷移が、次状態識別子を含む、遷移テーブルメモリと、(2)受け取られた入力シンボルグループの少なくとも1つの入力シンボルに対応するデータによってインデックス付けされる各遷移を、現在状態を考慮することなく、遷移テーブルメモリから取り出すように構成される遷移取り出しロジックと、(3)各取り出された遷移を受け取り、取り出された遷移のどれが現在状態に対応するかを決定し、決定された遷移の次状態識別子に基づいてDFAについての次状態を決定し、入力文字列とパターンの間にマッチが存在するかどうかを決定するように構成される状態選択ロジックと、を備える、装置。 - 入力文字列の各入力シンボルが、アルファベットの要素である複数の入力シンボルの1つであり、パターンマッチング回路が、各受け取られた入力シンボルグループを同値類識別子(ECI)に変換するように構成されるアルファベット符号化ロジックをさらに備え、遷移テーブル内で各遷移がそれによってインデックス付けされる入力シンボルグループに対応するデータが、その入力シンボルグループに対するECIに対応するデータを含む、請求項1に記載の装置。
- パターンマッチング回路と通信する正規表現コンパイラであって、パターンマッチング回路によって実施されるDFAを決定するためにユーザから正規表現を受け取り、処理し、処理された正規表現に基づいて遷移テーブルにデータ投入し、処理された正規表現に基づいてECIを定義するように構成される正規表現コンパイラをさらに備え、正規表現は入力文字列がそれに対してマッチさせられるパターンを識別する、請求項2に記載の装置。
- 遷移テーブルが、メモリ内で実施され、メモリが、メモリアドレスによってインデックス付けされる複数のワードを含み、各ワードが、ランレングス符号化された複数の遷移を含む、請求項3に記載の装置。
- パターンマッチング回路が、インダイレクションテーブルと、インダイレクションテーブルロジックとをさらに備え、インダイレクションテーブルが、複数のエントリを含み、各エントリが、ECIによってインデックス付けされ、各エントリが、そのECIによってインデックスされる少なくとも1つの遷移を含むメモリ内でワードが保存されるメモリアドレスを指すポインタを含み、インダイレクションテーブルロジックが、受け取られた入力シンボルグループによってインデックス付けされるインダイレクションテーブルからポインタを取り出し、取り出されたポインタを遷移取り出しロジックに提供するように構成され、各遷移がそれによってインデックス付けされるその入力シンボルグループに対するECIに対応するデータが、取り出されたポインタによって識別されるメモリアドレスを含む、請求項4に記載の装置。
- 各インダイレクションテーブルエントリが、遷移インデックスと、遷移カウントとをさらに含み、遷移インデックスが、入力シンボルグループに対するECIによってインデックス付けされる第1の遷移が、そのエントリのポインタによって識別されるワード内のどこに配置されているかを識別し、遷移カウントが、いくつの遷移が、入力シンボルグループに対するECIによってインデックス付けされるかを識別し、インダイレクションテーブルロジックが、受け取られた入力シンボルグループによってインデックス付けされるインダイレクションテーブルエントリから、遷移インデックスおよび遷移カウントを取り出し、取り出された遷移インデックスおよび遷移カウントを、遷移取り出しロジックに提供するように構成される、請求項5に記載の装置。
- 遷移取り出しロジックが、取り出されたポインタおよび取り出された遷移カウントによって識別される各ワードを遷移テーブルから取り出すように構成され、状態選択ロジックが、遷移に対応する各取り出されたワードの、入力シンボルグループに対するECIによってインデックス付けされないどの部分もマスクアウトするようにさらに構成される、請求項6に記載の装置。
- 各インダイレクションテーブルエントリが、先頭遷移インデックスと、末尾遷移インデックスと、ワードカウントとをさらに含み、先頭遷移インデックスが、入力シンボルグループに対するECIによってインデックス付けされる第1の遷移が、そのエントリのポインタによって識別されるワード内のどこに配置されているかを識別し、ワードカウントが、受け取られた入力シンボルグループに対するECIによってインデックス付けされるすべての遷移がその中に連続的に保存されるワードの数を識別し、末尾遷移インデックスが、入力シンボルグループに対するECIによってインデックス付けされる最後の遷移が、そのエントリのワードカウントによって識別される最後のワード内のどこに配置されているかを識別し、インダイレクションテーブルロジックが、受け取られた入力シンボルグループによってインデックス付けされるインダイレクションテーブルエントリから、先頭遷移インデックス、末尾遷移インデックス、およびワードカウントを取り出し、取り出された先頭遷移インデックス、末尾遷移インデックス、およびワードカウントを、遷移取り出しロジックに提供するように構成される、請求項5に記載の装置。
- 遷移取り出しロジックが、取り出されたポインタおよび取り出されたワードカウントによって識別される各ワードを、遷移テーブルから取り出すように構成され、状態選択ロジックが、遷移に対応する各取り出されたワードの、入力シンボルグループに対するECIによってインデックス付けされないどの部分もマスクアウトするようにさらに構成される、請求項8に記載の装置。
- 各遷移が、事前計算ランレングスプレフィックス合計をさらに含む、請求項5に記載の装置。
- mが、1よりも大きい、請求項5に記載の装置。
- 正規表現コンパイラが更に、処理された正規表現に基づいてインダイレクションテーブルにデータ投入するように構成される、請求項5に記載の装置。
- パターンマッチング回路が、FPGA上で実施される、請求項5に記載の装置。
- パターンマッチング回路が、ASIC上で実施される、請求項5に記載の装置。
- 各遷移が、マッチフラグをさらに含み、状態選択ロジックが、決定された遷移のマッチフラグに基づいて、入力文字列とパターンの間にマッチが存在するかどうかを決定するようにさらに構成される、請求項3に記載の装置。
- DFAが、位置独立のDFAを含む、請求項15に記載の装置。
- 各遷移が、マッチリスタートフラグをさらに含み、状態選択ロジックが、決定された遷移のマッチリスタートフラグに基づいて、パターンマッチングプロセスがDFAにおいてリスタートされたかどうかを決定するようにさらに構成される、請求項16に記載の装置。
- mが、1よりも大きい、請求項17に記載の装置。
- パターンマッチング回路と通信する正規表現コンパイラであって、パターンマッチング回路によって実施されるDFAを決定するためにユーザから正規表現を受け取り、処理し、処理された正規表現に基づいて遷移テーブルにデータ投入するように構成される正規表現コンパイラをさらに備え、正規表現は入力文字列がそれに対してマッチさせられるパターンを識別する、請求項1に記載の装置。
- パターンマッチング回路が、FPGA上で実施される、請求項19に記載の装置。
- パターンマッチング回路が、ASIC上で実施される、請求項19に記載の装置。
- パターンマッチング回路が、FPGA上で実施される、請求項1に記載の装置。
- パターンマッチング回路が、ASIC上で実施される、請求項1に記載の装置。
- パターンマッチング回路が、マルチプロセッサシステム上で実施される、請求項1に記載の装置。
- 遷移取り出しロジックと状態選択ロジックが、並列に動作するパイプラインステージとして構成される、請求項1から24のいずれか一項に記載の装置。
- 状態機械を使用して入力文字列をパターンにマッチさせる方法であって、入力文字列が、複数の入力シンボルを含み、各入力シンボルが、複数のビットを含み、方法が、
状態機械についての複数の状態を定義するステップであって、状態機械が、現在状態を有し、入力文字列の入力シンボルが受け取られ、処理されるのにつれて、複数の状態を経ながら進行し、それによって、入力文字列の複数の入力シンボルがパターンとマッチするかどうかを検出するように構成される、ステップと、
状態機械の状態間の複数の遷移を定義するステップであって、各遷移が、状態機械の現在状態に対応するデータと、少なくとも1つの入力シンボルに対応するデータとによってインデックス付けされ、各遷移が、状態機械の次状態についての識別子と、複数の入力シンボルとパターンの間にマッチが存在するかどうかを示すマッチフラグとを含む、ステップと、
入力文字列の少なくとも1つの入力シンボルを受け取るステップと、
少なくとも1つの受け取られた入力シンボルに基づいて及び現在状態を考慮することなく、少なくとも1つの定義された遷移を取り出すステップと、
少なくとも1つの取り出された遷移のどれが現在状態によってインデックス付けされているかを決定するステップと、
状態機械の現在状態を、決定された取り出された遷移の次状態識別子によって識別される状態として更新するステップと、
取り出された遷移のマッチフラグに基づいて、複数の入力シンボルとパターンの間にマッチが存在するかどうかを決定するステップと、
入力文字列の追加の入力シンボルが受け取られた場合に、取り出し、遷移決定、更新、およびマッチ決定のステップを繰り返すステップと、を備える、方法。 - 各遷移が、受け取られた少なくとも1つの入力シンボルがパターンに対するマッチングプロセスのリスタートをもたらすかどうかを示すマッチリスタートフラグをさらに含み、方法が、
取り出された遷移のマッチリスタートフラグに基づいて、マッチリスタートが存在するかどうかを決定するステップをさらに備え、
繰り返すステップが、入力文字列の追加の入力シンボルが受け取られた場合に、取り出し、遷移決定、更新、マッチ決定、および部分的マッチ開始決定のステップを繰り返すステップを備える、請求項26に記載の方法。 - 受け取るステップが、各クロックサイクルについて複数のm個の入力シンボルを受け取るステップを備え、取り出すステップが、m個の受け取られた入力シンボルに基づいて、少なくとも1つの定義された遷移を取り出すステップを備える、請求項27に記載の方法。
- 状態機械によって処理され得る入力シンボルのアルファベットに対して、各入力シンボルが同値類識別子にマッピングされるように、複数の同値類識別子を定義するステップであって、各遷移がそれによってインデックス付けされる少なくとも1つの入力シンボルに対応するデータが、その少なくとも1つの入力シンボルに対する同値類識別子を含む、ステップと、
受け取られた少なくとも1つの入力シンボルをその同値類識別子にマッピングするステップと、をさらに備え、
取り出すステップが、少なくとも1つの受け取られた入力シンボルに対する同値類識別子に基づいて、少なくとも1つの定義された遷移を取り出すステップを備え、
繰り返すステップが、入力文字列の追加の入力シンボルが受け取られた場合に、マッピング、取り出し、遷移決定、更新、マッチ決定、および部分的マッチ開始決定のステップを繰り返すステップを備える、請求項28に記載の方法。 - 状態機械によって処理され得る入力シンボルのアルファベットに対して、各入力シンボルが同値類識別子にマッピングされるように、複数の同値類識別子を定義するステップであって、各遷移がそれによってインデックス付けされる少なくとも1つの入力シンボルに対応するデータが、その少なくとも1つの入力シンボルに対する同値類識別子に対応するデータを含む、ステップと、
受け取られた少なくとも1つの入力シンボルをその同値類識別子にマッピングするステップと、をさらに備え、
取り出すステップが、少なくとも1つの受け取られた入力シンボルに対する同値類識別子に基づいて、少なくとも1つの定義された遷移を取り出すステップを備え、
繰り返すステップが、入力文字列の追加の入力シンボルが受け取られた場合に、マッピング、取り出し、遷移決定、更新、マッチ決定、および部分的マッチ開始決定のステップを繰り返すステップを備える、請求項26に記載の方法。 - ランレングス符号化によってメモリ内で遷移を圧縮するステップをさらに備える、請求項30に記載の方法。
- 圧縮するステップが、事前計算プレフィックス合計を有するランレングス符号化によってメモリ内で遷移を圧縮するステップをさらに備える、請求項31に記載の方法。
- メモリが、複数のワードを含み、各ワードが、メモリアドレスによってインデックス付けされ、各ワードが、複数のx個の圧縮された遷移を含み、方法が、
少なくとも1つの受け取られた入力シンボルに対する同値類識別子に基づいて、圧縮された遷移にアクセスするためのインダイレクションテーブルを定義するステップであって、インダイレクションテーブルが、複数のエントリを含み、各エントリが、同値類識別子によってインデックス付けされ、各エントリが、少なくとも1つの受け取られた入力シンボルに対する同値類識別子によってインデックス付けされる少なくとも1つの圧縮された遷移を含むワードが保存されるメモリアドレスを指すポインタを含む、ステップをさらに備え、
各遷移がそれによってインデックス付けされる同値類識別子に対応するデータが、その同値類識別子に対するインダイレクションテーブルポインタを含み、方法が、
同値類識別子によってインデックス付けされるポインタを決定するために、少なくとも1つの受け取られた入力シンボルに対する同値類識別子に基づいてインダイレクションテーブルにアクセスするステップをさらに備え
取り出すステップが、少なくとも1つの受け取られた入力シンボルの同値類識別子に対する決定されたポインタ基づいて、少なくとも1つの定義された遷移を取り出すステップを備え、
繰り返すステップが、入力文字列の追加の入力シンボルが受け取られた場合に、マッピング、アクセス、取り出し、遷移決定、更新、マッチ決定、および部分的マッチ開始決定のステップを繰り返すステップを備える、請求項30に記載の方法。 - 各インダイレクションテーブルエントリが、遷移インデックスと、遷移カウントとをさらに含み、遷移インデックスが、少なくとも1つの受け取られたシンボルの同値類識別子に対する第1の圧縮された遷移が、ポインタによって識別されるワード内のどこに配置されているかを識別し、遷移カウントが、少なくとも1つの受け取られたシンボルの同値類識別子に対していくつの圧縮された遷移が、メモリ内に連続的に保存されているかを識別し、アクセスするステップが、同値類識別子によってインデックス付けされるポインタ、遷移インデックス、および遷移カウントを決定するために、少なくとも1つの受け取られた入力シンボルに対する同値類識別子に基づいて、インダイレクションテーブルにアクセスするステップを備え、取り出すステップが、少なくとも1つの受け取られた入力シンボルの同値類識別子に対する決定されたポインタ、遷移インデックス、および遷移カウントに基づいて、各定義された遷移を取り出すステップをさらに備える、請求項33に記載の方法。
- 各インダイレクションテーブルエントリが、先頭遷移インデックスと、末尾遷移インデックスと、ワードカウントとをさらに含み、先頭遷移インデックスが、少なくとも1つの受け取られたシンボルの同値類識別子に対する第1の圧縮された遷移が、ポインタによって識別されるワード内のどこに配置されているかを識別し、ワードカウントが、少なくとも1つの受け取られたシンボルの同値類識別子に対する少なくとも1つの圧縮された遷移がメモリ内で連続的に保存されるワードの数を示し、末尾遷移インデックスが、最後の圧縮された遷移が、ワードカウントによって識別される最後のワード内のどこに配置されているかを識別し、アクセスするステップが、同値類識別子によってインデックス付けされるポインタ、先頭遷移インデックス、末尾遷移インデックス、およびワードカウントを決定するために、少なくとも1つの受け取られた入力シンボルに対する同値類識別子に基づいて、インダイレクションテーブルにアクセスするステップを備える、請求項33に記載の方法。
- 取り出すステップが、決定されたポインタおよび決定されたワードカウントによって識別される各ワードを、メモリから取り出すステップをさらに備え、遷移決定ステップが、決定された先頭遷移インデックス、決定された末尾遷移インデックス、および決定されたワードカウントによって識別される範囲内にない各取り出されたワード内に配置されるどの圧縮された遷移もマスクアウトするステップを備える、請求項35に記載の方法。
- 状態定義ステップが、正規表現の集合から状態機械についての複数の状態を定義するステップを備える、請求項36に記載の方法。
- 取り出すステップと少なくとも1つの取り出された遷移のどれが現在状態によってインデックス付けされているかを決定するステップが、パイプライン化された方法で並列に実行される、請求項26から37のいずれか一項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/293,619 | 2005-12-02 | ||
US11/293,619 US7702629B2 (en) | 2005-12-02 | 2005-12-02 | Method and device for high performance regular expression pattern matching |
PCT/US2006/045653 WO2007064685A2 (en) | 2005-12-02 | 2006-11-29 | Method and device for high performance regular expression pattern matching |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009517782A JP2009517782A (ja) | 2009-04-30 |
JP5265378B2 true JP5265378B2 (ja) | 2013-08-14 |
Family
ID=38092747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008543412A Active JP5265378B2 (ja) | 2005-12-02 | 2006-11-29 | 高性能正規表現パターンマッチングのための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7702629B2 (ja) |
EP (1) | EP1960913B1 (ja) |
JP (1) | JP5265378B2 (ja) |
AU (1) | AU2006320643B2 (ja) |
CA (2) | CA2629618C (ja) |
WO (1) | WO2007064685A2 (ja) |
Families Citing this family (198)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139743B2 (en) | 2000-04-07 | 2006-11-21 | Washington University | Associative database scanning and information retrieval using FPGA devices |
US6711558B1 (en) | 2000-04-07 | 2004-03-23 | Washington University | Associative database scanning and information retrieval |
US20090006659A1 (en) * | 2001-10-19 | 2009-01-01 | Collins Jack M | Advanced mezzanine card for digital network data inspection |
US7716330B2 (en) * | 2001-10-19 | 2010-05-11 | Global Velocity, Inc. | System and method for controlling transmission of data packets over an information network |
US7711844B2 (en) | 2002-08-15 | 2010-05-04 | Washington University Of St. Louis | TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks |
US20070277036A1 (en) | 2003-05-23 | 2007-11-29 | Washington University, A Corporation Of The State Of Missouri | Intelligent data storage and processing using fpga devices |
US8560475B2 (en) | 2004-09-10 | 2013-10-15 | Cavium, Inc. | Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process |
WO2006096324A2 (en) | 2005-03-03 | 2006-09-14 | Washington University | Method and apparatus for performing biosequence similarity searching |
US7634584B2 (en) | 2005-04-27 | 2009-12-15 | Solarflare Communications, Inc. | Packet validation in virtual network interface architecture |
US7430560B1 (en) * | 2005-07-22 | 2008-09-30 | X-Engines, Inc. | Multi-level compressed lock-up tables formed by logical operations to compress selected index bits |
JP4591279B2 (ja) * | 2005-08-19 | 2010-12-01 | ソニー株式会社 | 情報処理装置および情報処理方法、記録媒体、並びに、プログラム |
US7499941B2 (en) * | 2005-09-05 | 2009-03-03 | Cisco Technology, Inc. | Pipeline regular expression matching |
US7805392B1 (en) | 2005-11-29 | 2010-09-28 | Tilera Corporation | Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table |
US7702629B2 (en) * | 2005-12-02 | 2010-04-20 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
US7921070B2 (en) * | 2005-12-27 | 2011-04-05 | Alcatel-Lucent Usa Inc. | Method and apparatus for identifying message field names |
US7954114B2 (en) | 2006-01-26 | 2011-05-31 | Exegy Incorporated | Firmware socket module for FPGA-based pipeline processing |
US7958164B2 (en) | 2006-02-16 | 2011-06-07 | Microsoft Corporation | Visual design of annotated regular expression |
US7860881B2 (en) * | 2006-03-09 | 2010-12-28 | Microsoft Corporation | Data parsing with annotated patterns |
US20070226362A1 (en) * | 2006-03-21 | 2007-09-27 | At&T Corp. | Monitoring regular expressions on out-of-order streams |
US8379841B2 (en) | 2006-03-23 | 2013-02-19 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
US7693831B2 (en) * | 2006-03-23 | 2010-04-06 | Microsoft Corporation | Data processing through use of a context |
US20070250331A1 (en) * | 2006-04-05 | 2007-10-25 | International Business Machines Corporation | Method for composition of stream processing plans |
US7877401B1 (en) * | 2006-05-24 | 2011-01-25 | Tilera Corporation | Pattern matching |
JP4944518B2 (ja) * | 2006-05-26 | 2012-06-06 | 富士通セミコンダクター株式会社 | タスク遷移図表示方法及び表示装置 |
US7921046B2 (en) | 2006-06-19 | 2011-04-05 | Exegy Incorporated | High speed processing of financial information using FPGA devices |
US7840482B2 (en) | 2006-06-19 | 2010-11-23 | Exegy Incorporated | Method and system for high speed options pricing |
US7725510B2 (en) * | 2006-08-01 | 2010-05-25 | Alcatel-Lucent Usa Inc. | Method and system for multi-character multi-pattern pattern matching |
US20080034427A1 (en) * | 2006-08-02 | 2008-02-07 | Nec Laboratories America, Inc. | Fast and scalable process for regular expression search |
US8392174B2 (en) * | 2006-08-07 | 2013-03-05 | International Characters, Inc. | Method and apparatus for lexical analysis using parallel bit streams |
US20080040373A1 (en) * | 2006-08-10 | 2008-02-14 | Business Objects, S.A. | Apparatus and method for implementing match transforms in an enterprise information management system |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US7827218B1 (en) * | 2006-11-18 | 2010-11-02 | X-Engines, Inc. | Deterministic lookup using hashed key in a multi-stride compressed trie structure |
US20080133443A1 (en) * | 2006-11-30 | 2008-06-05 | Bohannon Philip L | Methods and Apparatus for User-Guided Inference of Regular Expressions for Information Extraction |
US7831606B2 (en) * | 2006-12-08 | 2010-11-09 | Pandya Ashish A | Signature search architecture for programmable intelligent search memory |
US9141557B2 (en) | 2006-12-08 | 2015-09-22 | Ashish A. Pandya | Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine |
US7996348B2 (en) * | 2006-12-08 | 2011-08-09 | Pandya Ashish A | 100GBPS security and search architecture using programmable intelligent search memory (PRISM) that comprises one or more bit interval counters |
US20110029549A1 (en) * | 2006-12-08 | 2011-02-03 | Pandya Ashish A | Signature search architecture for programmable intelligent search memory |
US7860849B1 (en) | 2007-01-18 | 2010-12-28 | Netlogic Microsystems, Inc. | Optimizing search trees by increasing success size parameter |
US7630982B2 (en) | 2007-02-24 | 2009-12-08 | Trend Micro Incorporated | Fast identification of complex strings in a data stream |
EP2133807A4 (en) * | 2007-03-02 | 2010-12-15 | Res Org Information & Systems | HOMOLOGOUS SEARCH SYSTEM |
US8081181B2 (en) * | 2007-06-20 | 2011-12-20 | Microsoft Corporation | Prefix sum pass to linearize A-buffer storage |
US8347384B1 (en) * | 2007-07-31 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | Methods and systems for using incremental operation for processing regular expressions in intrusion-prevention systems |
WO2009029842A1 (en) | 2007-08-31 | 2009-03-05 | Exegy Incorporated | Method and apparatus for hardware-accelerated encryption/decryption |
US8819217B2 (en) * | 2007-11-01 | 2014-08-26 | Cavium, Inc. | Intelligent graph walking |
US8086582B1 (en) * | 2007-12-18 | 2011-12-27 | Mcafee, Inc. | System, method and computer program product for scanning and indexing data for different purposes |
US10229453B2 (en) | 2008-01-11 | 2019-03-12 | Ip Reservoir, Llc | Method and system for low latency basket calculation |
CN101499065B (zh) * | 2008-02-01 | 2011-11-02 | 华为技术有限公司 | 基于fa的表项压缩方法及装置、表项匹配方法及装置 |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
JP5206220B2 (ja) * | 2008-08-21 | 2013-06-12 | ヤマハ株式会社 | 中継装置およびプログラム |
US8589436B2 (en) * | 2008-08-29 | 2013-11-19 | Oracle International Corporation | Techniques for performing regular expression-based pattern matching in data streams |
JP5121650B2 (ja) * | 2008-09-26 | 2013-01-16 | 株式会社東芝 | 情報処理装置、情報処理方法及びプログラム |
US8473523B2 (en) | 2008-10-31 | 2013-06-25 | Cavium, Inc. | Deterministic finite automata graph traversal with nodal bit mapping |
US8442931B2 (en) * | 2008-12-01 | 2013-05-14 | The Boeing Company | Graph-based data search |
CA2744746C (en) | 2008-12-15 | 2019-12-24 | Exegy Incorporated | Method and apparatus for high-speed processing of financial market depth data |
US20100192225A1 (en) * | 2009-01-28 | 2010-07-29 | Juniper Networks, Inc. | Efficient application identification with network devices |
US8145859B2 (en) * | 2009-03-02 | 2012-03-27 | Oracle International Corporation | Method and system for spilling from a queue to a persistent store |
WO2010107114A1 (ja) * | 2009-03-19 | 2010-09-23 | 日本電気株式会社 | パターンマッチング装置 |
US8321450B2 (en) * | 2009-07-21 | 2012-11-27 | Oracle International Corporation | Standardized database connectivity support for an event processing server in an embedded context |
US8387076B2 (en) * | 2009-07-21 | 2013-02-26 | Oracle International Corporation | Standardized database connectivity support for an event processing server |
US8527458B2 (en) * | 2009-08-03 | 2013-09-03 | Oracle International Corporation | Logging framework for a data stream processing server |
GB2461648B (en) * | 2009-08-03 | 2014-05-07 | Ibm | Programmable two table indexed finite state machine |
US8386466B2 (en) * | 2009-08-03 | 2013-02-26 | Oracle International Corporation | Log visualization tool for a data stream processing server |
US9747358B2 (en) * | 2009-09-22 | 2017-08-29 | Sap Se | Pattern analysis for a multi-dimensional analytical system |
US9083740B1 (en) * | 2009-09-28 | 2015-07-14 | Juniper Networks, Inc. | Network traffic pattern matching using adaptive deterministic finite automata |
US8566344B2 (en) * | 2009-10-17 | 2013-10-22 | Polytechnic Institute Of New York University | Determining whether an input string matches at least one regular expression using lookahead finite automata based regular expression detection |
CN102096848B (zh) * | 2009-12-09 | 2015-11-25 | Sap欧洲公司 | 用于在对流事件的查询模式匹配期间进行快速响应的调度 |
US8959106B2 (en) | 2009-12-28 | 2015-02-17 | Oracle International Corporation | Class loading using java data cartridges |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US9305057B2 (en) * | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US20110219016A1 (en) * | 2010-03-04 | 2011-09-08 | Src, Inc. | Stream Mining via State Machine and High Dimensionality Database |
US9305116B2 (en) | 2010-04-20 | 2016-04-05 | International Business Machines Corporation | Dual DFA decomposition for large scale regular expression matching |
TWI407370B (zh) * | 2010-04-30 | 2013-09-01 | Univ Nat Taiwan | 正規表示法電路系統以及其共用方法 |
US9507880B2 (en) | 2010-06-30 | 2016-11-29 | Oracle International Corporation | Regular expression optimizer |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
US8892580B2 (en) | 2010-11-03 | 2014-11-18 | Microsoft Corporation | Transformation of regular expressions |
US9189280B2 (en) | 2010-11-18 | 2015-11-17 | Oracle International Corporation | Tracking large numbers of moving objects in an event processing system |
CN102143148B (zh) * | 2010-11-29 | 2014-04-02 | 华为技术有限公司 | 用于通用协议解析的参数获取和通用协议解析方法及装置 |
US9674318B2 (en) | 2010-12-09 | 2017-06-06 | Solarflare Communications, Inc. | TCP processing for devices |
JP6045505B2 (ja) | 2010-12-09 | 2016-12-14 | アイピー レザボア, エルエルシー.IP Reservoir, LLC. | 金融市場における注文を管理する方法および装置 |
US10873613B2 (en) | 2010-12-09 | 2020-12-22 | Xilinx, Inc. | TCP processing for devices |
US8996644B2 (en) | 2010-12-09 | 2015-03-31 | Solarflare Communications, Inc. | Encapsulated accelerator |
US9258390B2 (en) | 2011-07-29 | 2016-02-09 | Solarflare Communications, Inc. | Reducing network latency |
US9003053B2 (en) | 2011-09-22 | 2015-04-07 | Solarflare Communications, Inc. | Message acceleration |
US9600429B2 (en) | 2010-12-09 | 2017-03-21 | Solarflare Communications, Inc. | Encapsulated accelerator |
CN102111402B (zh) * | 2010-12-17 | 2015-06-10 | 曙光信息产业(北京)有限公司 | 一种对正则式dfa分组的方法 |
US8599959B2 (en) * | 2010-12-30 | 2013-12-03 | Lsi Corporation | Methods and apparatus for trellis-based modulation encoding |
US9398033B2 (en) | 2011-02-25 | 2016-07-19 | Cavium, Inc. | Regular expression processing automaton |
US9246928B2 (en) * | 2011-05-02 | 2016-01-26 | International Business Machines Corporation | Compiling pattern contexts to scan lanes under instruction execution constraints |
US9473527B1 (en) * | 2011-05-05 | 2016-10-18 | Trend Micro Inc. | Automatically generated and shared white list |
US8990416B2 (en) | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
US9329975B2 (en) | 2011-07-07 | 2016-05-03 | Oracle International Corporation | Continuous query language (CQL) debugger in complex event processing (CEP) |
WO2013020002A1 (en) | 2011-08-02 | 2013-02-07 | Cavium, Inc. | Incremental update of rules for packet classification |
US9009448B2 (en) | 2011-08-17 | 2015-04-14 | Intel Corporation | Multithreaded DFA architecture for finding rules match by concurrently performing at varying input stream positions and sorting result tokens |
US8763018B2 (en) | 2011-08-22 | 2014-06-24 | Solarflare Communications, Inc. | Modifying application behaviour |
US8954599B2 (en) | 2011-10-28 | 2015-02-10 | Hewlett-Packard Development Company, L.P. | Data stream operations |
US8990070B2 (en) | 2011-11-18 | 2015-03-24 | International Business Machines Corporation | Computer-based construction of arbitrarily complex formal grammar expressions |
US9002772B2 (en) | 2011-11-18 | 2015-04-07 | International Business Machines Corporation | Scalable rule-based processing system with trigger rules and rule evaluator |
US9203805B2 (en) * | 2011-11-23 | 2015-12-01 | Cavium, Inc. | Reverse NFA generation and processing |
US9047243B2 (en) | 2011-12-14 | 2015-06-02 | Ip Reservoir, Llc | Method and apparatus for low latency data distribution |
US10650452B2 (en) | 2012-03-27 | 2020-05-12 | Ip Reservoir, Llc | Offload processing of data packets |
US10121196B2 (en) | 2012-03-27 | 2018-11-06 | Ip Reservoir, Llc | Offload processing of data packets containing financial market data |
US9990393B2 (en) | 2012-03-27 | 2018-06-05 | Ip Reservoir, Llc | Intelligent feed switch |
US11436672B2 (en) | 2012-03-27 | 2022-09-06 | Exegy Incorporated | Intelligent switch for processing financial market data |
US9391840B2 (en) | 2012-05-02 | 2016-07-12 | Solarflare Communications, Inc. | Avoiding delayed data |
WO2014000819A1 (en) * | 2012-06-29 | 2014-01-03 | Telefonaktiebolaget Lm Ericsson (Publ) | A method of and network server for detecting data patterns in an input data stream |
US9391841B2 (en) | 2012-07-03 | 2016-07-12 | Solarflare Communications, Inc. | Fast linkup arbitration |
WO2014041783A1 (ja) * | 2012-09-11 | 2014-03-20 | 日本電気株式会社 | 文字列検出回路及び文字列検出方法 |
IN2015DN01932A (ja) | 2012-09-28 | 2015-08-07 | Ericsson Telefon Ab L M | |
US9953059B2 (en) | 2012-09-28 | 2018-04-24 | Oracle International Corporation | Generation of archiver queries for continuous queries over archived relations |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US10505747B2 (en) | 2012-10-16 | 2019-12-10 | Solarflare Communications, Inc. | Feed processing |
US9268881B2 (en) | 2012-10-19 | 2016-02-23 | Intel Corporation | Child state pre-fetch in NFAs |
US9633093B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
WO2014066416A2 (en) | 2012-10-23 | 2014-05-01 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US10133802B2 (en) | 2012-10-23 | 2018-11-20 | Ip Reservoir, Llc | Method and apparatus for accelerated record layout detection |
KR101378115B1 (ko) | 2012-11-01 | 2014-03-27 | 한국전자통신연구원 | Pcre 기반 패턴 매칭 기법을 이용한 네트워크 침입 탐지 장치 및 방법 |
KR101563059B1 (ko) * | 2012-11-19 | 2015-10-23 | 삼성에스디에스 주식회사 | 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법 |
US9117170B2 (en) | 2012-11-19 | 2015-08-25 | Intel Corporation | Complex NFA state matching method that matches input symbols against character classes (CCLs), and compares sequence CCLs in parallel |
US9665664B2 (en) | 2012-11-26 | 2017-05-30 | Intel Corporation | DFA-NFA hybrid |
US10956422B2 (en) | 2012-12-05 | 2021-03-23 | Oracle International Corporation | Integrating event processing with map-reduce |
US9304768B2 (en) | 2012-12-18 | 2016-04-05 | Intel Corporation | Cache prefetch for deterministic finite automaton instructions |
US9251440B2 (en) * | 2012-12-18 | 2016-02-02 | Intel Corporation | Multiple step non-deterministic finite automaton matching |
CN103078808B (zh) * | 2012-12-29 | 2015-09-30 | 大连环宇移动科技有限公司 | 适用于多流正则表达式匹配的数据流交换复用系统及方法 |
US9098587B2 (en) | 2013-01-15 | 2015-08-04 | Oracle International Corporation | Variable duration non-event pattern matching |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9268570B2 (en) | 2013-01-23 | 2016-02-23 | Intel Corporation | DFA compression and execution |
US20140215090A1 (en) * | 2013-01-31 | 2014-07-31 | Lsi Corporation | Dfa sub-scans |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9047249B2 (en) | 2013-02-19 | 2015-06-02 | Oracle International Corporation | Handling faults in a continuous event processing (CEP) system |
US9426124B2 (en) | 2013-04-08 | 2016-08-23 | Solarflare Communications, Inc. | Locked down network interface |
US10742604B2 (en) | 2013-04-08 | 2020-08-11 | Xilinx, Inc. | Locked down network interface |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
EP2809033B1 (en) | 2013-05-30 | 2018-03-21 | Solarflare Communications Inc | Packet capture in a network |
CN105264525A (zh) * | 2013-06-04 | 2016-01-20 | 马维尔国际贸易有限公司 | 内部搜索引擎架构 |
CN104252469B (zh) | 2013-06-27 | 2017-10-20 | 国际商业机器公司 | 用于模式匹配的方法、设备和电路 |
US9426165B2 (en) | 2013-08-30 | 2016-08-23 | Cavium, Inc. | Method and apparatus for compilation of finite automata |
US9563399B2 (en) | 2013-08-30 | 2017-02-07 | Cavium, Inc. | Generating a non-deterministic finite automata (NFA) graph for regular expression patterns with advanced features |
US9426166B2 (en) | 2013-08-30 | 2016-08-23 | Cavium, Inc. | Method and apparatus for processing finite automata |
US10394751B2 (en) | 2013-11-06 | 2019-08-27 | Solarflare Communications, Inc. | Programmed input/output mode |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
US9419943B2 (en) | 2013-12-30 | 2016-08-16 | Cavium, Inc. | Method and apparatus for processing of finite automata |
US9275336B2 (en) | 2013-12-31 | 2016-03-01 | Cavium, Inc. | Method and system for skipping over group(s) of rules based on skip group rule |
US9544402B2 (en) | 2013-12-31 | 2017-01-10 | Cavium, Inc. | Multi-rule approach to encoding a group of rules |
US9667446B2 (en) | 2014-01-08 | 2017-05-30 | Cavium, Inc. | Condition code approach for comparing rule and packet data that are provided in portions |
US9729353B2 (en) * | 2014-01-09 | 2017-08-08 | Netronome Systems, Inc. | Command-driven NFA hardware engine that encodes multiple automatons |
US9602532B2 (en) | 2014-01-31 | 2017-03-21 | Cavium, Inc. | Method and apparatus for optimizing finite automata processing |
US9904630B2 (en) | 2014-01-31 | 2018-02-27 | Cavium, Inc. | Finite automata processing based on a top of stack (TOS) memory |
US10110558B2 (en) | 2014-04-14 | 2018-10-23 | Cavium, Inc. | Processing of finite automata based on memory hierarchy |
US9438561B2 (en) | 2014-04-14 | 2016-09-06 | Cavium, Inc. | Processing of finite automata based on a node cache |
US10002326B2 (en) | 2014-04-14 | 2018-06-19 | Cavium, Inc. | Compilation of finite automata based on memory hierarchy |
GB2541577A (en) | 2014-04-23 | 2017-02-22 | Ip Reservoir Llc | Method and apparatus for accelerated data translation |
US9244978B2 (en) | 2014-06-11 | 2016-01-26 | Oracle International Corporation | Custom partitioning of a data stream |
US10726005B2 (en) * | 2014-06-25 | 2020-07-28 | Sap Se | Virtual split dictionary for search optimization |
US9712645B2 (en) | 2014-06-26 | 2017-07-18 | Oracle International Corporation | Embedded event processing |
US9886486B2 (en) | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
US10120907B2 (en) | 2014-09-24 | 2018-11-06 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
US10148547B2 (en) * | 2014-10-24 | 2018-12-04 | Tektronix, Inc. | Hardware trigger generation from a declarative protocol description |
US20190113542A1 (en) * | 2014-12-17 | 2019-04-18 | Tektronix, Inc. | Hardware trigger generation from a declarative protocol description |
US9916347B2 (en) * | 2014-12-29 | 2018-03-13 | International Business Machines Corporation | Rapid searching and matching of data to a dynamic set of signatures facilitating parallel processing and hardware acceleration |
US10681007B2 (en) * | 2015-06-05 | 2020-06-09 | Konvax Corporation | String search and matching for gate functionality |
US10303685B2 (en) * | 2015-06-08 | 2019-05-28 | International Business Machines Corporation | Data table performance optimization |
US9898447B2 (en) | 2015-06-22 | 2018-02-20 | International Business Machines Corporation | Domain specific representation of document text for accelerated natural language processing |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
US9875045B2 (en) * | 2015-07-27 | 2018-01-23 | International Business Machines Corporation | Regular expression matching with back-references using backtracking |
US10942943B2 (en) | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
US10204177B2 (en) | 2015-11-30 | 2019-02-12 | International Business Machines Corporation | Matching an ordered set of strings containing wild cards |
US10735438B2 (en) * | 2016-01-06 | 2020-08-04 | New York University | System, method and computer-accessible medium for network intrusion detection |
WO2017135838A1 (en) | 2016-02-01 | 2017-08-10 | Oracle International Corporation | Level of detail control for geostreaming |
WO2017135837A1 (en) | 2016-02-01 | 2017-08-10 | Oracle International Corporation | Pattern based automated test data generation |
CN106445891A (zh) * | 2016-08-09 | 2017-02-22 | 中国科学院计算技术研究所 | 一种串匹配算法的加速方法及装置 |
CN106776456B (zh) * | 2017-01-18 | 2019-06-18 | 中国人民解放军国防科学技术大学 | 基于fpga+npu的高速正则表达式匹配混合系统及方法 |
US9996328B1 (en) * | 2017-06-22 | 2018-06-12 | Archeo Futurus, Inc. | Compiling and optimizing a computer code by minimizing a number of states in a finite machine corresponding to the computer code |
US10481881B2 (en) * | 2017-06-22 | 2019-11-19 | Archeo Futurus, Inc. | Mapping a computer code to wires and gates |
US10521207B2 (en) * | 2018-05-30 | 2019-12-31 | International Business Machines Corporation | Compiler optimization for indirect array access operations |
US11561983B2 (en) | 2019-03-07 | 2023-01-24 | Throughputer, Inc. | Online trained object property estimator |
US11620557B2 (en) | 2019-03-07 | 2023-04-04 | Throughputer, Inc. | Online trained object property estimator |
US11604867B2 (en) | 2019-04-01 | 2023-03-14 | Throughputer, Inc. | Graphic pattern-based authentication with adjustable challenge level |
US10880211B2 (en) | 2019-05-06 | 2020-12-29 | Seth Gregory Friedman | Transaction encoding and verification by way of data-link layer fields |
CA3135226A1 (en) | 2019-05-14 | 2020-11-19 | David Edward Taylor | Methods and systems for low latency generation and distribution of trading signals from financial market data |
CN110321463B (zh) * | 2019-05-31 | 2022-01-21 | 中国科学院计算技术研究所 | 一种字符串匹配方法、系统、存储介质及装置 |
EP3980910A4 (en) | 2019-06-05 | 2023-07-26 | Throughputer, Inc. | PASSWORD GENERATION AND AUTHENTICATION BASED ON A GRAPHIC PATTERN |
CN110324204B (zh) * | 2019-07-01 | 2020-09-11 | 中国人民解放军陆军工程大学 | 一种在fpga中实现的高速正则表达式匹配引擎及方法 |
CN110865970B (zh) * | 2019-10-08 | 2021-06-29 | 西安交通大学 | 一种基于fpga平台的压缩流量模式匹配引擎及模式匹配方法 |
CN110874426B (zh) * | 2019-10-28 | 2022-08-09 | 西安交通大学 | 一种基于模式分类的异构位分割状态机多模匹配方法 |
CN111177491B (zh) * | 2019-12-31 | 2023-08-25 | 奇安信科技集团股份有限公司 | 正则表达式的匹配方法、装置、电子设备及存储介质 |
CN111159497B (zh) * | 2019-12-31 | 2023-09-22 | 奇安信科技集团股份有限公司 | 正则表达式的生成方法及基于正则表达式的数据提取方法 |
US11509608B2 (en) * | 2020-04-13 | 2022-11-22 | Salesforce, Inc. | Methods and systems for configuring an email engine |
EP4144048A4 (en) | 2020-06-08 | 2024-06-26 | Liquid Markets Gmbh | HARDWARE-BASED TRANSACTION EXCHANGE |
US11676068B1 (en) | 2020-06-30 | 2023-06-13 | Cadence Design Systems, Inc. | Method, product, and apparatus for a machine learning process leveraging input sparsity on a pixel by pixel basis |
US11687831B1 (en) | 2020-06-30 | 2023-06-27 | Cadence Design Systems, Inc. | Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference |
US11823018B1 (en) * | 2020-06-30 | 2023-11-21 | Cadence Design Systems, Inc. | Method, product, and apparatus for a machine learning process using weight sharing within a systolic array having reduced memory bandwidth |
US11651283B1 (en) | 2020-06-30 | 2023-05-16 | Cadence Design Systems, Inc. | Method, product, and apparatus for a machine learning process using dynamic rearrangement of sparse data and corresponding weights |
US11615320B1 (en) | 2020-06-30 | 2023-03-28 | Cadence Design Systems, Inc. | Method, product, and apparatus for variable precision weight management for neural networks |
CN112769813B (zh) * | 2020-12-31 | 2022-10-21 | 深圳市东晟数据有限公司 | 一种多前缀掩码五元组的匹配方法 |
US20220261900A1 (en) | 2021-02-16 | 2022-08-18 | Exegy Incorporated | Methods and Systems for Joining Market Making at Low Latency |
CN113051876B (zh) * | 2021-04-02 | 2024-04-23 | 杭州网易智企科技有限公司 | 恶意网址识别方法及装置、存储介质、电子设备 |
US11662989B2 (en) * | 2021-06-16 | 2023-05-30 | International Business Machines Corporation | Pointer alignment computation in program code according to code pattern analyses |
Family Cites Families (238)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US860278A (en) * | 1907-04-29 | 1907-07-16 | Adin S Botkin | Tobacco-rack. |
US1667534A (en) * | 1924-05-07 | 1928-04-24 | Sanymetal Products Company | Partition structure |
US1637145A (en) * | 1925-11-11 | 1927-07-26 | Hart & Hutchinson Company | Toilet inclosure |
US2001574A (en) * | 1929-11-08 | 1935-05-14 | Dahlstrom Metallic Door Compan | Metal partition |
DE880658C (de) * | 1950-09-06 | 1953-05-07 | Alois Vogt Dr | Verfahren zur Herstellung von Zeichen, wie Skalenstrichen, Faden-kreuzungen u. dgl., mit durch optisch homogene Randbegrenzungen bestimmter Raumform auf Unterlagen aller Art und durch dieses Verfahren hergestelltes Erzeugnis |
US3245181A (en) * | 1961-08-07 | 1966-04-12 | Lloyd G Stephenson | Anchor plate for posts |
US3194362A (en) * | 1962-02-05 | 1965-07-13 | Mills Company | Partition structures |
US3151745A (en) * | 1963-03-05 | 1964-10-06 | Reilly Frederick William | Adjustable pallet rack construction |
US3468430A (en) * | 1967-06-06 | 1969-09-23 | Welinlok Ltd | Structural elements to form racks |
US3601808A (en) * | 1968-07-18 | 1971-08-24 | Bell Telephone Labor Inc | Advanced keyword associative access memory system |
US3611314A (en) | 1969-09-09 | 1971-10-05 | Texas Instruments Inc | Dynamic associative data processing system |
US3824375A (en) * | 1970-08-28 | 1974-07-16 | Financial Security Syst Inc | Memory system |
US3729712A (en) * | 1971-02-26 | 1973-04-24 | Eastman Kodak Co | Information storage and retrieval system |
US3733759A (en) * | 1971-07-26 | 1973-05-22 | American Store Equip | Fitting room |
US4136811A (en) * | 1972-08-21 | 1979-01-30 | Kajima Corporation | H-shaped steel column base member and welding thereof |
US3848235A (en) | 1973-10-24 | 1974-11-12 | Ibm | Scan and read control apparatus for a disk storage drive in a computer system |
US3906455A (en) * | 1974-03-15 | 1975-09-16 | Boeing Computer Services Inc | Associative memory device |
CA1056504A (en) * | 1975-04-02 | 1979-06-12 | Visvaldis A. Vitols | Keyword detection in continuous speech using continuous asynchronous correlation |
US4088229A (en) * | 1975-10-24 | 1978-05-09 | Seiz Corporation | Storage rack columns having clean-outs |
US4197685A (en) * | 1978-07-24 | 1980-04-15 | Gf Business Equipment, Inc. | Partition strut assembly |
US4298898A (en) | 1979-04-19 | 1981-11-03 | Compagnie Internationale Pour L'informatique Cii Honeywell Bull | Method of and apparatus for reading data from reference zones of a memory |
US4281480A (en) * | 1979-06-21 | 1981-08-04 | U.S. Gypsum Company | Doorframe construction |
US4314356A (en) * | 1979-10-24 | 1982-02-02 | Bunker Ramo Corporation | High-speed term searcher |
US4281481A (en) * | 1980-01-18 | 1981-08-04 | United States Gypsum Company | Fire resistant aluminum door frame assembly |
FR2481026B1 (ja) * | 1980-04-21 | 1984-06-15 | France Etat | |
US4464718A (en) * | 1982-07-30 | 1984-08-07 | International Business Machines Corporation | Associative file processing method and apparatus |
US4550436A (en) | 1983-07-26 | 1985-10-29 | At&T Bell Laboratories | Parallel text matching methods and apparatus |
US4941178A (en) * | 1986-04-01 | 1990-07-10 | Gte Laboratories Incorporated | Speech recognition using preclassification and spectral normalization |
US5392575A (en) * | 1986-11-03 | 1995-02-28 | Hoffman; Paul | Deck construction |
US4823306A (en) * | 1987-08-14 | 1989-04-18 | International Business Machines Corporation | Text search system |
US5023910A (en) * | 1988-04-08 | 1991-06-11 | At&T Bell Laboratories | Vector quantization in a harmonic speech coding arrangement |
US5179626A (en) * | 1988-04-08 | 1993-01-12 | At&T Bell Laboratories | Harmonic speech coding arrangement where a set of parameters for a continuous magnitude spectrum is determined by a speech analyzer and the parameters are used by a synthesizer to determine a spectrum which is used to determine senusoids for synthesis |
US5050075A (en) * | 1988-10-04 | 1991-09-17 | Bell Communications Research, Inc. | High performance VLSI data filter |
US5249292A (en) | 1989-03-31 | 1993-09-28 | Chiappa J Noel | Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream |
JPH0314075A (ja) * | 1989-06-13 | 1991-01-22 | Ricoh Co Ltd | 文書検索装置 |
US5036638A (en) * | 1989-06-23 | 1991-08-06 | Air Enterprises, Inc. | Service building and the structural components thereof |
AU620994B2 (en) * | 1989-07-12 | 1992-02-27 | Digital Equipment Corporation | Compressed prefix matching database searching |
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US4987708A (en) * | 1989-09-21 | 1991-01-29 | Herman Miller, Inc. | Seismic anchor |
EP0565738A1 (en) * | 1990-01-05 | 1993-10-20 | Symbol Technologies, Inc. | System for encoding and decoding data in machine readable graphic form |
US5347634A (en) | 1990-03-15 | 1994-09-13 | Hewlett-Packard Company | System and method for directly executing user DMA instruction from user controlled process by employing processor privileged work buffer pointers |
US5319776A (en) * | 1990-04-19 | 1994-06-07 | Hilgraeve Corporation | In transit detection of computer virus with safeguard |
US5497488A (en) * | 1990-06-12 | 1996-03-05 | Hitachi, Ltd. | System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions |
US5140644A (en) * | 1990-07-23 | 1992-08-18 | Hitachi, Ltd. | Character string retrieving system and method |
GB9016341D0 (en) * | 1990-07-25 | 1990-09-12 | British Telecomm | Speed estimation |
US5255136A (en) | 1990-08-17 | 1993-10-19 | Quantum Corporation | High capacity submicro-winchester fixed disk drive |
US5101424A (en) * | 1990-09-28 | 1992-03-31 | Northern Telecom Limited | Method for generating a monitor program for monitoring text streams and executing actions when pre-defined patterns, are matched using an English to AWK language translator |
GB9023096D0 (en) * | 1990-10-24 | 1990-12-05 | Int Computers Ltd | Database search processor |
US5339411A (en) * | 1990-12-21 | 1994-08-16 | Pitney Bowes Inc. | Method for managing allocation of memory space |
US5421028A (en) | 1991-03-15 | 1995-05-30 | Hewlett-Packard Company | Processing commands and data in a common pipeline path in a high-speed computer graphics system |
EP0510634B1 (en) * | 1991-04-25 | 1999-07-07 | Nippon Steel Corporation | Data base retrieval system |
US5477451A (en) * | 1991-07-25 | 1995-12-19 | International Business Machines Corp. | Method and system for natural language translation |
US5488725A (en) * | 1991-10-08 | 1996-01-30 | West Publishing Company | System of document representation retrieval by successive iterated probability sampling |
US5265065A (en) | 1991-10-08 | 1993-11-23 | West Publishing Company | Method and apparatus for information retrieval from a database by replacing domain specific stemmed phases in a natural language to create a search query |
US5826075A (en) | 1991-10-16 | 1998-10-20 | International Business Machines Corporation | Automated programmable fireware store for a personal computer system |
WO1993018505A1 (en) * | 1992-03-02 | 1993-09-16 | The Walt Disney Company | Voice transformation system |
US5388259A (en) * | 1992-05-15 | 1995-02-07 | Bell Communications Research, Inc. | System for accessing a database with an iterated fuzzy query notified by retrieval response |
US5524268A (en) * | 1992-06-26 | 1996-06-04 | Cirrus Logic, Inc. | Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases |
GB9220404D0 (en) * | 1992-08-20 | 1992-11-11 | Nat Security Agency | Method of identifying,retrieving and sorting documents |
US5721898A (en) * | 1992-09-02 | 1998-02-24 | International Business Machines Corporation | Method and system for data search in a data processing system |
US6044407A (en) * | 1992-11-13 | 2000-03-28 | British Telecommunications Public Limited Company | Interface for translating an information message from one protocol to another |
US5481735A (en) * | 1992-12-28 | 1996-01-02 | Apple Computer, Inc. | Method for modifying packets that meet a particular criteria as the packets pass between two layers in a network |
US5440723A (en) | 1993-01-19 | 1995-08-08 | International Business Machines Corporation | Automatic immune system for computers and computer networks |
US5432822A (en) * | 1993-03-12 | 1995-07-11 | Hughes Aircraft Company | Error correcting decoder and decoding method employing reliability based erasure decision-making in cellular communication system |
US5544352A (en) * | 1993-06-14 | 1996-08-06 | Libertech, Inc. | Method and apparatus for indexing, searching and displaying data |
EP0651321B1 (en) * | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superscalar microprocessors |
US5371794A (en) | 1993-11-02 | 1994-12-06 | Sun Microsystems, Inc. | Method and apparatus for privacy and authentication in wireless networks |
US5813000A (en) | 1994-02-15 | 1998-09-22 | Sun Micro Systems | B tree structure and method |
US5465353A (en) | 1994-04-01 | 1995-11-07 | Ricoh Company, Ltd. | Image matching and retrieval by multi-access redundant hashing |
US5461712A (en) | 1994-04-18 | 1995-10-24 | International Business Machines Corporation | Quadrant-based two-dimensional memory manager |
US5623652A (en) | 1994-07-25 | 1997-04-22 | Apple Computer, Inc. | Method and apparatus for searching for information in a network and for controlling the display of searchable information on display devices in the network |
JP2964879B2 (ja) * | 1994-08-22 | 1999-10-18 | 日本電気株式会社 | ポストフィルタ |
SE505156C2 (sv) * | 1995-01-30 | 1997-07-07 | Ericsson Telefon Ab L M | Förfarande för bullerundertryckning genom spektral subtraktion |
US5819290A (en) | 1995-04-10 | 1998-10-06 | Sony Corporation | Data recording and management system and method for detecting data file division based on quantitative number of blocks |
CA2150174C (en) * | 1995-05-25 | 1999-08-03 | Heiner Ophardt | Modular partition system |
US5943421A (en) * | 1995-09-11 | 1999-08-24 | Norand Corporation | Processor having compression and encryption circuitry |
JPH0981574A (ja) * | 1995-09-14 | 1997-03-28 | Fujitsu Ltd | 検索集合表示画面を利用したデータベース検索法およびシステム |
US5701464A (en) | 1995-09-15 | 1997-12-23 | Intel Corporation | Parameterized bloom filters |
US5774839A (en) * | 1995-09-29 | 1998-06-30 | Rockwell International Corporation | Delayed decision switched prediction multi-stage LSF vector quantization |
US5630302A (en) * | 1996-02-02 | 1997-05-20 | Morgan Marshall Industries, Inc. | Fitting room |
US5864738A (en) * | 1996-03-13 | 1999-01-26 | Cray Research, Inc. | Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller |
US5781921A (en) * | 1996-05-06 | 1998-07-14 | Ohmeda Inc. | Method and apparatus to effect firmware upgrades using a removable memory device under software control |
GB2314433A (en) * | 1996-06-22 | 1997-12-24 | Xerox Corp | Finding and modifying strings of a regular language in a text |
US6147976A (en) | 1996-06-24 | 2000-11-14 | Cabletron Systems, Inc. | Fast network layer packet filter |
US5995963A (en) * | 1996-06-27 | 1999-11-30 | Fujitsu Limited | Apparatus and method of multi-string matching based on sparse state transition list |
US5991881A (en) | 1996-11-08 | 1999-11-23 | Harris Corporation | Network surveillance system |
JP3231673B2 (ja) * | 1996-11-21 | 2001-11-26 | シャープ株式会社 | 文字,文字列検索方法及び該方法に用いる記録媒体 |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
US5899035A (en) * | 1997-05-15 | 1999-05-04 | Steelcase, Inc. | Knock-down portable partition system |
US5911778A (en) | 1996-12-31 | 1999-06-15 | Sun Microsystems, Inc. | Processing system security |
US6028939A (en) | 1997-01-03 | 2000-02-22 | Redcreek Communications, Inc. | Data security system and method |
US6070172A (en) * | 1997-03-06 | 2000-05-30 | Oracle Corporation | On-line free space defragmentation of a contiguous-file file system |
CA2199315C (en) * | 1997-03-06 | 2004-12-14 | John Hellwig | Work surface support arrangement for office panelling systems |
US5930753A (en) * | 1997-03-20 | 1999-07-27 | At&T Corp | Combining frequency warping and spectral shaping in HMM based speech recognition |
JPH10326287A (ja) | 1997-05-23 | 1998-12-08 | Mitsubishi Corp | デジタルコンテンツ管理システム及びデジタルコンテンツ管理装置 |
US6236727B1 (en) | 1997-06-24 | 2001-05-22 | International Business Machines Corporation | Apparatus, method and computer program product for protecting copyright data within a computer system |
JP3372455B2 (ja) | 1997-07-03 | 2003-02-04 | 富士通株式会社 | パケット中継制御方法,パケット中継装置およびプログラム記憶媒体 |
US6067569A (en) | 1997-07-10 | 2000-05-23 | Microsoft Corporation | Fast-forwarding and filtering of network packets in a computer system |
US6317795B1 (en) | 1997-07-22 | 2001-11-13 | International Business Machines Corporation | Dynamic modification of multimedia content |
JPH11110320A (ja) * | 1997-10-03 | 1999-04-23 | Matsushita Electric Ind Co Ltd | メッセージ交換装置 |
GB2330682A (en) | 1997-10-22 | 1999-04-28 | Calluna Tech Ltd | Password access to an encrypted drive |
US5946867A (en) * | 1997-10-29 | 1999-09-07 | Ericsson, Inc. | Modular earthquake support for raised floor |
US6138176A (en) | 1997-11-14 | 2000-10-24 | 3Ware | Disk array controller with automated processor which routes I/O data according to addresses and commands received from disk drive controllers |
US6412000B1 (en) | 1997-11-25 | 2002-06-25 | Packeteer, Inc. | Method for automatically classifying traffic in a packet communications network |
US6058391A (en) | 1997-12-17 | 2000-05-02 | Mci Communications Corporation | Enhanced user view/update capability for managing data from relational tables |
US6339819B1 (en) * | 1997-12-17 | 2002-01-15 | Src Computers, Inc. | Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer |
US5927666A (en) * | 1998-01-26 | 1999-07-27 | Barkan; Lior | Wall bracket |
US5987610A (en) | 1998-02-12 | 1999-11-16 | Ameritech Corporation | Computer virus screening methods and systems |
KR100441171B1 (ko) * | 1998-02-20 | 2004-10-14 | 삼성전자주식회사 | 플래쉬롬과램을이용한펌웨어구현방법 |
US6279113B1 (en) | 1998-03-16 | 2001-08-21 | Internet Tools, Inc. | Dynamic signature inspection-based network intrusion detection |
US6389532B1 (en) | 1998-04-20 | 2002-05-14 | Sun Microsystems, Inc. | Method and apparatus for using digital signatures to filter packets in a network |
US6397259B1 (en) | 1998-05-29 | 2002-05-28 | Palm, Inc. | Method, system and apparatus for packet minimized communications |
US6289461B1 (en) | 1998-06-09 | 2001-09-11 | Placeware, Inc. | Bi-directional process-to-process byte stream protocol |
US6169969B1 (en) | 1998-08-07 | 2001-01-02 | The United States Of America As Represented By The Director Of The National Security Agency | Device and method for full-text large-dictionary string matching using n-gram hashing |
US6535868B1 (en) | 1998-08-27 | 2003-03-18 | Debra A. Galeazzi | Method and apparatus for managing metadata in a database management system |
GB9819183D0 (en) | 1998-09-04 | 1998-10-28 | Int Computers Ltd | Multiple string search method |
US6226676B1 (en) | 1998-10-07 | 2001-05-01 | Nortel Networks Corporation | Connection establishment and termination in a mixed protocol network |
JP4763866B2 (ja) | 1998-10-15 | 2011-08-31 | インターシア ソフトウェア エルエルシー | 2重再暗号化によりデジタルデータを保護する方法及び装置 |
US7181548B2 (en) * | 1998-10-30 | 2007-02-20 | Lsi Logic Corporation | Command queueing engine |
CA2351175C (en) | 1998-11-24 | 2016-05-03 | Niksun, Inc. | Apparatus and method for collecting and analyzing communications data |
US6564263B1 (en) | 1998-12-04 | 2003-05-13 | International Business Machines Corporation | Multimedia content description framework |
US6625150B1 (en) | 1998-12-17 | 2003-09-23 | Watchguard Technologies, Inc. | Policy engine architecture |
US6499107B1 (en) | 1998-12-29 | 2002-12-24 | Cisco Technology, Inc. | Method and system for adaptive network security using intelligent packet analysis |
US6329996B1 (en) | 1999-01-08 | 2001-12-11 | Silicon Graphics, Inc. | Method and apparatus for synchronizing graphics pipelines |
US6578147B1 (en) | 1999-01-15 | 2003-06-10 | Cisco Technology, Inc. | Parallel intrusion detection sensors with load balancing for high speed networks |
JP3526414B2 (ja) | 1999-03-31 | 2004-05-17 | 株式会社東芝 | 情報記録再生方法および情報記録再生装置 |
US6765918B1 (en) | 1999-06-16 | 2004-07-20 | Teledata Networks, Ltd. | Client/server based architecture for a telecommunications network |
US6463474B1 (en) | 1999-07-02 | 2002-10-08 | Cisco Technology, Inc. | Local authentication of a client at a network device |
US7002986B1 (en) * | 1999-07-08 | 2006-02-21 | Nortel Networks Limited | Mapping arbitrary signals into SONET |
GB2352548B (en) | 1999-07-26 | 2001-06-06 | Sun Microsystems Inc | Method and apparatus for executing standard functions in a computer system |
JP2003510705A (ja) | 1999-09-20 | 2003-03-18 | シーゲイト テクノロジー エルエルシー | フィールドプログラム可能ゲートアレイハードディスク装置 |
US6804667B1 (en) | 1999-11-30 | 2004-10-12 | Ncr Corporation | Filter for checking for duplicate entries in database |
FI109319B (fi) | 1999-12-03 | 2002-06-28 | Nokia Corp | Päätelaitteelle välitettävän elektronisen informaation suodattaminen |
JP2001189755A (ja) | 1999-12-28 | 2001-07-10 | Toshiba Corp | パケット通信装置、パケット通信方法および記憶媒体 |
US7356498B2 (en) | 1999-12-30 | 2008-04-08 | Chicago Board Options Exchange, Incorporated | Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services |
JP3448254B2 (ja) | 2000-02-02 | 2003-09-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アクセス・チェーン追跡システム、ネットワーク・システム、方法、及び記録媒体 |
US6748457B2 (en) | 2000-02-03 | 2004-06-08 | Realtime Data, Llc | Data storewidth accelerator |
US6877044B2 (en) * | 2000-02-10 | 2005-04-05 | Vicom Systems, Inc. | Distributed storage management platform architecture |
WO2001061913A2 (en) | 2000-02-18 | 2001-08-23 | Verimatrix, Inc. | Network-based content distribution system |
US7139743B2 (en) | 2000-04-07 | 2006-11-21 | Washington University | Associative database scanning and information retrieval using FPGA devices |
US6711558B1 (en) * | 2000-04-07 | 2004-03-23 | Washington University | Associative database scanning and information retrieval |
US8095508B2 (en) | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
WO2001080558A2 (en) | 2000-04-14 | 2001-10-25 | Solidstreaming, Inc. | A system and method for multimedia streaming |
US6981054B1 (en) | 2000-06-06 | 2005-12-27 | Advanced Micro Devices, Inc. | Flow control arrangement in a network switch based on priority traffic |
US20040064737A1 (en) | 2000-06-19 | 2004-04-01 | Milliken Walter Clark | Hash-based systems and methods for detecting and preventing transmission of polymorphic network worms and viruses |
US7328349B2 (en) | 2001-12-14 | 2008-02-05 | Bbn Technologies Corp. | Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses |
US8204082B2 (en) | 2000-06-23 | 2012-06-19 | Cloudshield Technologies, Inc. | Transparent provisioning of services over a network |
US6381242B1 (en) | 2000-08-29 | 2002-04-30 | Netrake Corporation | Content processor |
US20020069370A1 (en) | 2000-08-31 | 2002-06-06 | Infoseer, Inc. | System and method for tracking and preventing illegal distribution of proprietary material over computer networks |
WO2002061525A2 (en) | 2000-11-02 | 2002-08-08 | Pirus Networks | Tcp/udp acceleration |
US7760737B2 (en) | 2000-11-30 | 2010-07-20 | Audiocodes, Inc. | Method for reordering and reassembling data packets in a network |
US20020166063A1 (en) | 2001-03-01 | 2002-11-07 | Cyber Operations, Llc | System and method for anti-network terrorism |
US7681032B2 (en) | 2001-03-12 | 2010-03-16 | Portauthority Technologies Inc. | System and method for monitoring unauthorized transport of digital content |
EP1490767B1 (en) | 2001-04-05 | 2014-06-11 | Audible Magic Corporation | Copyright detection and protection system and method |
US7325249B2 (en) | 2001-04-30 | 2008-01-29 | Aol Llc | Identifying unwanted electronic messages |
US6785677B1 (en) * | 2001-05-02 | 2004-08-31 | Unisys Corporation | Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector |
US6944168B2 (en) | 2001-05-04 | 2005-09-13 | Slt Logic Llc | System and method for providing transformation of multi-protocol packets in a data stream |
MXPA03010846A (es) * | 2001-05-07 | 2004-11-22 | L & P Property Management Co | Sistema de habitacion modular y metodo. |
US7152151B2 (en) | 2002-07-18 | 2006-12-19 | Ge Fanuc Embedded Systems, Inc. | Signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements |
WO2002101516A2 (en) | 2001-06-13 | 2002-12-19 | Intruvert Networks, Inc. | Method and apparatus for distributed network security |
US6928549B2 (en) | 2001-07-09 | 2005-08-09 | International Business Machines Corporation | Dynamic intrusion detection for computer systems |
US7845004B2 (en) | 2001-07-27 | 2010-11-30 | International Business Machines Corporation | Correlating network information and intrusion information to find the entry point of an attack upon a protected computer |
US6980976B2 (en) | 2001-08-13 | 2005-12-27 | Oracle International Corp. | Combined database index of unstructured and structured columns |
US6931408B2 (en) | 2001-08-17 | 2005-08-16 | E.C. Outlook, Inc. | Method of storing, maintaining and distributing computer intelligible electronic data |
US7046848B1 (en) | 2001-08-22 | 2006-05-16 | Olcott Peter L | Method and system for recognizing machine generated character glyphs and icons in graphic images |
US7133405B2 (en) | 2001-08-30 | 2006-11-07 | International Business Machines Corporation | IP datagram over multiple queue pairs |
US6978223B2 (en) | 2001-09-06 | 2005-12-20 | Bbnt Solutions Llc | Systems and methods for network performance measurement using packet signature collection |
AU2002220130A1 (en) | 2001-09-12 | 2003-03-24 | Raqia Networks, Inc. | High speed data stream pattern recognition |
US7558967B2 (en) | 2001-09-13 | 2009-07-07 | Actel Corporation | Encryption for a stream file in an FPGA integrated circuit |
CA2403699C (en) | 2001-09-17 | 2014-12-02 | Recognia Inc. | Technical analysis formation recognition using pivot points |
US20030065943A1 (en) | 2001-09-28 | 2003-04-03 | Christoph Geis | Method and apparatus for recognizing and reacting to denial of service attacks on a computerized network |
US7181765B2 (en) | 2001-10-12 | 2007-02-20 | Motorola, Inc. | Method and apparatus for providing node security in a router of a packet network |
US7716330B2 (en) | 2001-10-19 | 2010-05-11 | Global Velocity, Inc. | System and method for controlling transmission of data packets over an information network |
US6772345B1 (en) | 2002-02-08 | 2004-08-03 | Networks Associates Technology, Inc. | Protocol-level malware scanner |
US7225188B1 (en) * | 2002-02-13 | 2007-05-29 | Cisco Technology, Inc. | System and method for performing regular expression matching with high parallelism |
US20040111632A1 (en) | 2002-05-06 | 2004-06-10 | Avner Halperin | System and method of virus containment in computer networks |
US7093023B2 (en) * | 2002-05-21 | 2006-08-15 | Washington University | Methods, systems, and devices using reprogrammable hardware for high-speed processing of streaming data to find a redefinable pattern and respond thereto |
EP1514190A4 (en) | 2002-05-22 | 2006-09-20 | Procera Networks | SWITCH FOR A LOCAL NETWORK |
US7620712B1 (en) | 2002-05-30 | 2009-11-17 | Nortel Networks Limited | Availability measurement in networks |
US7167980B2 (en) | 2002-05-30 | 2007-01-23 | Intel Corporation | Data comparison process |
US7478431B1 (en) | 2002-08-02 | 2009-01-13 | Symantec Corporation | Heuristic detection of computer viruses |
WO2004014065A2 (en) * | 2002-08-05 | 2004-02-12 | John Campbell | System of finite state machines |
US7711844B2 (en) | 2002-08-15 | 2010-05-04 | Washington University Of St. Louis | TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks |
US8201252B2 (en) | 2002-09-03 | 2012-06-12 | Alcatel Lucent | Methods and devices for providing distributed, adaptive IP filtering against distributed denial of service attacks |
US7953820B2 (en) | 2002-09-11 | 2011-05-31 | Hughes Network Systems, Llc | Method and system for providing enhanced performance of web browsing |
WO2004042562A2 (en) | 2002-10-31 | 2004-05-21 | Lockheed Martin Corporation | Pipeline accelerator and related system and method |
EP1573514A2 (en) | 2002-10-31 | 2005-09-14 | Lockheed Martin Corporation | Pipeline accelerator and related computer and method |
JP4154213B2 (ja) | 2002-11-01 | 2008-09-24 | 富士通株式会社 | パケット処理装置 |
JP2004186717A (ja) | 2002-11-29 | 2004-07-02 | Toshiba Corp | 通信制御方法、サーバ機器、及びクライアント機器 |
US6901461B2 (en) * | 2002-12-31 | 2005-05-31 | Intel Corporation | Hardware assisted ATA command queuing |
WO2004072797A2 (en) * | 2003-02-07 | 2004-08-26 | Safenet, Inc. | System and method for determining the start of a match of a regular expression |
TW591532B (en) | 2003-03-07 | 2004-06-11 | Mediatek Inc | Firmware structuring method and related apparatus for unifying handling of execution responses of subroutines |
US7660352B2 (en) | 2003-04-04 | 2010-02-09 | Sony Corporation | Apparatus and method of parallel processing an MPEG-4 data stream |
US20070277036A1 (en) | 2003-05-23 | 2007-11-29 | Washington University, A Corporation Of The State Of Missouri | Intelligent data storage and processing using fpga devices |
US7685254B2 (en) * | 2003-06-10 | 2010-03-23 | Pandya Ashish A | Runtime adaptable search processor |
US7788726B2 (en) | 2003-07-02 | 2010-08-31 | Check Point Software Technologies, Inc. | System and methodology providing information lockbox |
US7257842B2 (en) | 2003-07-21 | 2007-08-14 | Mcafee, Inc. | Pre-approval of computer files during a malware detection |
US7444515B2 (en) * | 2003-08-14 | 2008-10-28 | Washington University | Method and apparatus for detecting predefined signatures in packet payload using Bloom filters |
US7222114B1 (en) | 2003-08-20 | 2007-05-22 | Xilinx, Inc. | Method and apparatus for rule-based operations |
US7287037B2 (en) | 2003-08-28 | 2007-10-23 | International Business Machines Corporation | Method and apparatus for generating service oriented state data mapping between extensible meta-data model and state data including logical abstraction |
US7408932B2 (en) | 2003-10-20 | 2008-08-05 | Intel Corporation | Method and apparatus for two-stage packet classification using most specific filter matching and transport level sharing |
US7454418B1 (en) | 2003-11-07 | 2008-11-18 | Qiang Wang | Fast signature scan |
US7386564B2 (en) | 2004-01-15 | 2008-06-10 | International Business Machines Corporation | Generating statistics on text pattern matching predicates for access planning |
JP4120888B2 (ja) * | 2004-01-30 | 2008-07-16 | 日本電気株式会社 | データ検索装置及び方法 |
US7019674B2 (en) | 2004-02-05 | 2006-03-28 | Nec Laboratories America, Inc. | Content-based information retrieval architecture |
US7602785B2 (en) * | 2004-02-09 | 2009-10-13 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
US7433355B2 (en) | 2004-02-09 | 2008-10-07 | Alcatel Lucent | Filter based longest prefix match algorithm |
US8311974B2 (en) | 2004-02-20 | 2012-11-13 | Oracle International Corporation | Modularized extraction, transformation, and loading for a database |
JP4347087B2 (ja) * | 2004-02-26 | 2009-10-21 | 日本電信電話株式会社 | パターンマッチング装置および方法ならびにプログラム |
US7411957B2 (en) | 2004-03-26 | 2008-08-12 | Cisco Technology, Inc. | Hardware filtering support for denial-of-service attacks |
US7457834B2 (en) | 2004-07-30 | 2008-11-25 | Searete, Llc | Aggregation and retrieval of network sensor data |
US7966658B2 (en) | 2004-04-08 | 2011-06-21 | The Regents Of The University Of California | Detecting public network attacks using signatures and fast content analysis |
US7305383B1 (en) * | 2004-06-10 | 2007-12-04 | Cisco Technology, Inc. | Processing system using bitmap array to compress deterministic finite automation state table allowing direct indexing |
US7693856B2 (en) | 2004-06-25 | 2010-04-06 | Apple Inc. | Methods and systems for managing data |
US7660865B2 (en) | 2004-08-12 | 2010-02-09 | Microsoft Corporation | Spam filtering with probabilistic secure hashes |
US20060053295A1 (en) * | 2004-08-24 | 2006-03-09 | Bharath Madhusudan | Methods and systems for content detection in a reconfigurable hardware |
US20060047636A1 (en) | 2004-08-26 | 2006-03-02 | Mohania Mukesh K | Method and system for context-oriented association of unstructured content with the result of a structured database query |
JP2008512786A (ja) | 2004-09-10 | 2008-04-24 | カビウム・ネットワークス | データ構造の選択的複製方法および装置 |
US7461064B2 (en) | 2004-09-24 | 2008-12-02 | International Buiness Machines Corporation | Method for searching documents for ranges of numeric values |
US8321465B2 (en) | 2004-11-14 | 2012-11-27 | Bloomberg Finance L.P. | Systems and methods for data coding, transmission, storage and decoding |
US20060129745A1 (en) | 2004-12-11 | 2006-06-15 | Gunther Thiel | Process and appliance for data processing and computer program product |
WO2006096324A2 (en) | 2005-03-03 | 2006-09-14 | Washington University | Method and apparatus for performing biosequence similarity searching |
US7765183B2 (en) * | 2005-04-23 | 2010-07-27 | Cisco Technology, Inc | Hierarchical tree of deterministic finite automata |
US20070011183A1 (en) | 2005-07-05 | 2007-01-11 | Justin Langseth | Analysis and transformation tools for structured and unstructured data |
US7467155B2 (en) | 2005-07-12 | 2008-12-16 | Sand Technology Systems International, Inc. | Method and apparatus for representation of unstructured data |
US7801910B2 (en) | 2005-11-09 | 2010-09-21 | Ramp Holdings, Inc. | Method and apparatus for timed tagging of media content |
US7805392B1 (en) * | 2005-11-29 | 2010-09-28 | Tilera Corporation | Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table |
US7702629B2 (en) * | 2005-12-02 | 2010-04-20 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
US7954114B2 (en) | 2006-01-26 | 2011-05-31 | Exegy Incorporated | Firmware socket module for FPGA-based pipeline processing |
US8091132B2 (en) | 2006-03-03 | 2012-01-03 | New Jersey Institute Of Technology | Behavior-based traffic differentiation (BTD) for defending against distributed denial of service (DDoS) attacks |
US8379841B2 (en) | 2006-03-23 | 2013-02-19 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
US7636703B2 (en) | 2006-05-02 | 2009-12-22 | Exegy Incorporated | Method and apparatus for approximate pattern matching |
US7840482B2 (en) | 2006-06-19 | 2010-11-23 | Exegy Incorporated | Method and system for high speed options pricing |
US7783862B2 (en) * | 2006-08-07 | 2010-08-24 | International Characters, Inc. | Method and apparatus for an inductive doubling architecture |
WO2008022036A2 (en) * | 2006-08-10 | 2008-02-21 | Washington University | Method and apparatus for protein sequence alignment using fpga devices |
US7701945B2 (en) | 2006-08-10 | 2010-04-20 | Sourcefire, Inc. | Device, system and method for analysis of segments in a transmission control protocol (TCP) session |
US7660793B2 (en) * | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
US8326819B2 (en) * | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
-
2005
- 2005-12-02 US US11/293,619 patent/US7702629B2/en active Active
-
2006
- 2006-11-29 JP JP2008543412A patent/JP5265378B2/ja active Active
- 2006-11-29 WO PCT/US2006/045653 patent/WO2007064685A2/en active Application Filing
- 2006-11-29 CA CA2629618A patent/CA2629618C/en active Active
- 2006-11-29 EP EP06838554.1A patent/EP1960913B1/en active Active
- 2006-11-29 CA CA2820500A patent/CA2820500C/en active Active
- 2006-11-29 AU AU2006320643A patent/AU2006320643B2/en active Active
-
2010
- 2010-02-10 US US12/703,388 patent/US7945528B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CA2820500C (en) | 2016-01-19 |
AU2006320643B2 (en) | 2012-09-13 |
US7945528B2 (en) | 2011-05-17 |
WO2007064685A2 (en) | 2007-06-07 |
CA2820500A1 (en) | 2007-06-07 |
JP2009517782A (ja) | 2009-04-30 |
CA2629618C (en) | 2013-08-27 |
EP1960913A2 (en) | 2008-08-27 |
EP1960913B1 (en) | 2017-01-11 |
US7702629B2 (en) | 2010-04-20 |
US20100198850A1 (en) | 2010-08-05 |
EP1960913A4 (en) | 2014-07-30 |
CA2629618A1 (en) | 2007-06-07 |
AU2006320643A1 (en) | 2007-06-07 |
WO2007064685A3 (en) | 2008-10-02 |
US20070130140A1 (en) | 2007-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5265378B2 (ja) | 高性能正規表現パターンマッチングのための方法および装置 | |
US11568674B2 (en) | Fast signature scan | |
Kumar et al. | Advanced algorithms for fast and scalable deep packet inspection | |
US8843508B2 (en) | System and method for regular expression matching with multi-strings and intervals | |
KR100477391B1 (ko) | 네트워크 프로세서용 완전 정합(fm) 검색 알고리즘 구현 | |
US7539031B2 (en) | Inexact pattern searching using bitmap contained in a bitcheck command | |
US7539032B2 (en) | Regular expression searching of packet contents using dedicated search circuits | |
US7529746B2 (en) | Search circuit having individually selectable search engines | |
US20050273450A1 (en) | Regular expression acceleration engine and processing model | |
US20080071757A1 (en) | Search engine having multiple co-processors for performing inexact pattern search operations | |
US20080071779A1 (en) | Method and apparatus for managing multiple data flows in a content search system | |
US20190052553A1 (en) | Architectures and methods for deep packet inspection using alphabet and bitmap-based compression | |
US20160335296A1 (en) | Memory System for Optimized Search Access | |
Kempa et al. | Dynamic suffix array with polylogarithmic queries and updates | |
WO2010047683A1 (en) | Fast signature scan | |
Xu et al. | OD-REM: On-Demand Regular Expression Matching on FPGAs for Efficient Deep Packet Inspection | |
Fernandez | Hardware Implementation of a String Matching Algorithm Based on the FM-Index | |
WO2008036501A2 (en) | Regular expression searching of packet contents using dedicated search circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091023 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120417 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120601 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121016 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130308 |
|
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: 20130409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130501 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5265378 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |