JP2009151757A - 文字列照合方法、文字列照合方法を実行するように構成される装置及びコンピュータプログラム - Google Patents

文字列照合方法、文字列照合方法を実行するように構成される装置及びコンピュータプログラム Download PDF

Info

Publication number
JP2009151757A
JP2009151757A JP2008279027A JP2008279027A JP2009151757A JP 2009151757 A JP2009151757 A JP 2009151757A JP 2008279027 A JP2008279027 A JP 2008279027A JP 2008279027 A JP2008279027 A JP 2008279027A JP 2009151757 A JP2009151757 A JP 2009151757A
Authority
JP
Japan
Prior art keywords
state
memory
split
pmv
state machine
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.)
Granted
Application number
JP2008279027A
Other languages
English (en)
Other versions
JP5254742B2 (ja
Inventor
Laurent Foube
ロラン・フーブ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric R&D Centre Europe BV Netherlands
Original Assignee
Mitsubishi Electric R&D Centre Europe BV Netherlands
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 Mitsubishi Electric R&D Centre Europe BV Netherlands filed Critical Mitsubishi Electric R&D Centre Europe BV Netherlands
Publication of JP2009151757A publication Critical patent/JP2009151757A/ja
Application granted granted Critical
Publication of JP5254742B2 publication Critical patent/JP5254742B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Abstract

【課題】多くの受容状態を有し得る大きな状態機械を実装する必要がある場合(例えば、長い文字列を解析することが必要な場合)、状態メモリのワード幅は受容状態の数に伴って急速に増大する。そこで、分割状態機械アーキテクチャの改良又は分割状態機械の改良する。
【解決手段】N個の分割状態機械を使用する文字列照合方法であって、N個の分割状態機械は組み合わせられて、基となる状態機械に対応し、基となる状態機械は、連続した入力記号に基づいて少なくとも1つの文字列を認識するように構成される、文字列照合方法を提案する。N個の分割状態機械のそれぞれは、入力記号の各部分の処理を担当する。
【選択図】図1

Description

[発明の背景]
[1.技術分野]
本発明は、概して文字列照合方法に関する。
文字列照合方法は、テキスト内の複数の文字列を探索可能にする。例えば、文字列照合方法は、ネットワークパケット検査システムを実施する際に使用することができ、またはより一般的にはテキスト内の複数の文字列照合を実行する必要があるあらゆる種類の用途に使用することができ、又は、侵入検知システム、IDS、又は同様のアンチウィルスのような用途に使用することができる。
[2.関連技術]
照合対象の文字列は、エイホ・コラシックアルゴリズムを使用して生成されるDFA(「決定性有限オートマトン(Deterministic Finite Automaton)」の略)グラフである「文字列照合オートマトン」内にグループ化することができる。DFAとは、状態及び入力記号によって形成される各ペアにつき、現在の状態から次の状態への遷移が1つだけである有限状態機械(finite state machine)である。
DFAに基づいて、照合対象のテキストの各入力記号につき、遷移関数に従って状態への遷移が付与される。テキストの最後の入力記号が処理されると、次に、テキストがDFAに既知の文字列に対応するか否かを判断することが可能である。かかる判断は、DFAの最終状態に依存する。実際には、DFAのこの最終状態が受容状態の場合、これは、そのテキストがDFA内の既知の文字列の1つに対応することを意味し、DFAの最終状態が非受容状態の場合、そのテキストはDFAに既知の文字列に対応しない。
しかしながら、この類のオートマトンは大容量の記憶領域を必要とする。この特徴は、これらのオートマトンがFPGA(「フィールドプログラマブルゲートアレイ」の略)等の構成要素に実装される場合に特に不利である。
この不都合さを制限するために、ホン−ジップ・ジュン(Hung-Jip Jung)、ザッカリー K.ベイカー(Zachary K. Baker)、及びビクター K.プラサンナ(Victor K. Prasanna)の「Performance of FPGA implementation of Split architecture for intrusion detection system」という文献に、大きな状態機械を複数のビット分割状態機械に変換することができる分割アーキテクチャ(split architecture)が説明されている。かかる変換に基づき、メモリ管理を強化することができるとともに、必要とされるメモリ量を低減することができる。
分割アルゴリズム、例えば先に参照した文献に記載されている分割アルゴリズムは、複数文字列照合用途に向けて特に設計されている。これは、入力英数字(例えば、ASCIIコード)に属する入力記号に基づいていくつかの文字列を認識するように構成されたソースDFAグラフを、いくつかの「より小さな」DFA、即ち分割状態機械(split state machine)に変換するために使用される。これらのより小さな各DFAが必要とするメモリ容量は、最初のDFAよりも小さい。これらのより小さな各DFAは、入力記号の部分又は一部のみを使用する。このコンテキストの中では、ソースオートマトンは、より小さなDFAのある種の「積」と等価であることが示されている。異なる複数のより小さなDFAが並列に評価され、ソースDFAの最終状態が、より小さなDFAの結果を結合することによって特定される。
複数の分割状態機械の非連結性(disconnected nature)により、部分一致ベクトル値(PMV)(partial match vector value)がすべての分割状態機械のすべての状態にそれぞれ関連付けられる。分割状態機械の最終状態に関連付けられたこれらのPMVの各値が、これらの分割状態機械の最終状態を共に再連結させるために使用される。より厳密には、論理AND演算がPMVの各値に対して適用されて、テキスト認識の判断を可能にする全体の完全一致ベクトル(FMV)(full match vector)が形成される。
このアーキテクチャは、一般に、プログラム可能であるため、照合する文字列セットを実行時に更新することが可能である。あるアルゴリズムが使用されて、ビット分割変換に基づいて、基となる状態機械の挙動を表すメモリ効率的なデータ構造が生成される。
かかるアーキテクチャは、基となる大きなオートマトンのコンパクトな表現を記憶できるようにする。
しかしながら、各分割状態機械は、大きなデータワードを有するメモリコンテキストを必要とする。実際には、各分割状態機械につき、ある状態から別の状態への異なる複数の遷移候補に対応するいくつかのリンクと、1つのPMVとが、状態メモリの各ワードの中に記憶される。
分割状態機械によって処理されるビット数は、次の状態数(即ち各ワードに記憶されるリンク数)に直接結び付く。より厳密には、リンクのサイズは、
LOG2(X)
に対応する。但し、Xは分割状態機械内の状態の最大数であり、LOG2はlog2(底が2の対数)よりも大きな直近の整数である。
分割状態機械によって処理される受容状態の数も、PMV値の記憶に使用されるデータワードサイズに影響する。
これらの制約は、状態機械が処理可能な受容状態の数を制限する。文字列照合用途では、文字列セットが多くのサブセットに細分され、異なる分割状態機械上で評価される。このアーキテクチャは、少数の状態及び少数の受容状態を処理する小さな状態機械には上手く適合するが、多くの受容状態を有し得る大きな状態機械を実装する必要がある場合(例えば、長い文字列を解析することが必要な場合)にはそれ程効率的ではない。状態メモリのワード幅は受容状態の数に伴って急速に増大し、受容状態の数はPMV値サイズ及び状態総数に直接結び付き、状態総数はリンクサイズに直接結び付く。
したがって、分割状態機械アーキテクチャの改良又は分割状態機械の改良が必要である。
LIN TAN他、「A High Throughput String Matching Architecture for Intrusion Detection and Prevention", COMPUTER ARCHITECTURE, 2005, ISCA '05, PROCEEDINGS, 32ND INTERNTATIONAL SYMPOSIUM ON MADISON, WI, USA, 2005年6月4〜8日、PISCATAWAY, NJ, USA, IEEE, 2005年6月4日、112〜122ページ、XP010807899, ISBN: 978-0-7695-2270-8 国際公開第2007/103397号パンフレット
[発明の概要]
したがって、第1の態様において、本発明は、N個の分割状態機械を使用する文字列照合方法であって、N個の分割状態機械は組み合わせられて、基となる状態機械に対応し、基となる状態機械は、連続した入力記号に基づいて少なくとも1つの文字列を認識するように構成される、文字列照合方法を提案する。N個の分割状態機械のそれぞれは、入力記号の各部分の処理を担当する。各分割状態機械の各状態に、1つの部分一致ベクトル値が関連付けられる。N個のメモリコンテキストが情報の記憶を担当し、この情報は、現在の状態と、現在処理中の入力記号の部分とに応じて、次の状態の決定を可能にする。
この方法によれば、N個のメモリコンテキストにおいて、関連付けられる識別子がN個の分割状態機械の各状態に関連して示される。識別子と部分一致ベクトル値との関連が、N個の分割状態機械によって共有される共有メモリに記憶される。
これらの状況下において、PMV値を各分割状態機械の各状態に関連付けるために必要なメモリ容量を低減することが可能である。実際には、識別子の使用により、各状態に関連して対応するPMV値を直接記憶することを回避することができる。かかる識別子は、PMV値自体よりもはるかに小さくすることができる。この文脈の中では、すべての異なる分割状態機械が共有するメモリが使用され、このメモリは、異なるPMV値と各識別子との対応を含む。
有利なことに、かかる特徴により、複数の分割状態機械内のすべての状態に関連付けられたPMV値を記憶するために必要なメモリ要件を低減することが可能である。実際には、PMVは、背景技術のアーキテクチャにおいて大容量のメモリを消費する。何故なら、PMVはすべての分割状態機械のすべての状態にそれぞれ関連付けられるためである。
第1の状態タイプは、分割状態機械内の受容状態に対応する状態である「受容状態」に対応する。第2の状態タイプは、対応する分割状態機械内におけるそれ以外のすべての状態である、「非受容状態」に対応する。本発明の文脈の中では、非受容状態とは、照合する既知の文字列に対応しない状態に対応する。逆に、受容状態とは、少なくとも1つの照合する既知の文字列に対応する状態である。
有利なことに、本発明の一実施形態では、これらの2タイプの状態を別様に処理することができる。
分割状態機械内の異なるPMV値の最大数はg+1である。但し、gは、ソースDFAによって照合することが可能な既知の文字列の数である。さらに、同じ分割状態機械内の異なる状態に対して、1つのPMV値が2回以上使用されることがある。
メモリコンテキストは、本説明において参照されるlinks_memoryと、各状態に関連付けられたPMV_IDを示すためのスキームとを含む。
共有メモリは「PMV_memory」に対応する。これは、異なる部分一致ベクトル値を含むことができ、関連付けられる識別子は、共有メモリ内の記憶域の各オフセットに対応する。
これらの状況下において、各分割状態機械に対するメモリコンテキストは、各状態に対応して、この状態に対応するPMV値に関連付けられたオフセットを記憶する。このオフセットはPMV値よりも小さく、メモリ要件が、完全なPMV値がメモリコンテキスト内のすべての状態に関連して分割状態機械ごとに記憶される場合と比較して低減される。
あるいは、各状態に1つの状態コンテキストを状態ラベルで参照されるメモリコンテキスト内に記憶することができ、関連付けられる識別子がそのまま状態ラベルであってよい。状態コンテキストは、ある状態と、対応するすべての次の状態とを含む。
ここで、メモリ量要件がさらに低減される。実際には、これらの状況下において、links_memoryにそのまま記憶される状態それ自身(即ち状態ラベルそれ自身)が、PMV_memory内において関連付けられたPMV値のオフセットをそのまま表し、対応するオフセットを各分割状態機械のメモリコンテキストに記憶する必要がない。
一実施形態において、そのまま記憶される状態、即ち状態ラベルが、関連する各PMV値をそのまま表す場合、本方法は、
−前記基となるソース状態機械から前記N個の分割状態機械を生成するステップであって、前記N個の分割状態機械のそれぞれは複数の異なる状態を含み、複数の異なる状態はそれぞれの初期ラベルで参照される、生成するステップと、
−初期ラベルを新ラベルに置き換えるステップであって、それにより、各分割状態機械の各状態につき、前記状態に関連付けられる新ラベルであって、共有メモリに記憶された部分一致ベクトル値のオフセットに等しい新ラベルを得る、置き換えるステップと
を含む。
好ましくは、複数の異なる部分一致ベクトル値は、共有メモリに1回だけ記憶される。
本発明の文脈の中では、状態ラベルは所与の状態を命名する番号に対応することができる。
本発明の第2の態様は、N個の状態分割機械を使用する文字列照合方法を実行するように構成された装置であって、N個の分割状態機械は、組み合わせられて、基となる状態機械に対応し、基となる状態機械は、連続した入力記号に基づいて少なくとも1つの文字列を認識するように構成され、
N個の分割状態機械のそれぞれが、入力記号の各部分の処理を担当し、
各分割状態機械の各状態に、1つの部分一致ベクトル値が関連付けられ、
本装置は、
−現在の状態と、現在受信中の入力記号の部分とに応じて次の状態の決定を可能にする、情報の記憶を担当するN個のメモリコンテキストであって、N個のメモリコンテキスト内において、関連付けられる識別子が、N個の分割状態機械の各状態に関連して示される、N個のメモリコンテキストと、
−識別子と部分一致ベクトル値との関連を記憶するように構成された共有メモリであって、この共有メモリはN個の分割状態機械によって共有される、共有メモリと
を備える装置に関する。
かかる装置は、本発明の第1の態様による文字列照合方法を実行するために必要なすべてのユニットを備えることができる。
かかる装置では、共有メモリは、異なる部分一致ベクトル値を含むことができ、関連付けられる識別子は、前記共有メモリ内の記憶域の各オフセットに対応することができる。
一実施形態では、メモリコンテキストは、状態ラベルで参照される各状態を記憶するように構成され、関連付けられる識別子がそのまま状態ラベルである。
本装置は、
−前記基となるソース状態機械から前記N個の分割状態機械を生成するように構成された生成ユニットであって、前記N個の分割状態機械のそれぞれは複数の異なる状態を含み、複数の異なる状態は各初期ラベルで参照される、生成ユニットと、
−初期ラベルを新ラベルに置き換えるように構成される置換ユニットであって、
それにより、各分割状態機械の各状態につき1つの新ラベルを得、
この新ラベルは、前記状態に関連付けられ前記共有メモリに記憶される前記部分一致ベクトル値のオフセットに等しい
置換ユニットと
をさらに備えることができる。
第3の態様において、本発明は、本発明の第2の態様による装置のコンピュータ手段にロードされ実行された場合、本発明の第1の態様による方法のステップを実施するための命令を含むコンピュータプログラム製品を提案する。
本発明のさらなる特徴及び利点が以下の説明からより明白になるであろう。以下の説明は、あくまで説明として示され、添付の図面に関連して読まれるべきである。
[好適な実施形態の説明]
本発明は、分割状態機械に使用されるメモリ量を低減するために、これらの分割状態機械の各メモリワード内のPMV値記憶量を抑えることを提案する。
一実施形態では、ソースDFAグラフが、既知の文字列の探索を担当するFPGAのような又はASICのような回路にロードされるよう構成されたデータ構造に変換される。ソースDFAは、例えば、エイホ・コラシックアルゴリズムを実行することによって生成することができる。
ソースDFAグラフは、照合するテキストから抽出される入力記号の可能な値と、考慮中の分割状態機械内の現在の状態に依存する遷移とを含む。
分割状態機械のコンテキストの中では、入力記号はいくつかの部分に分けられ、これらの各部分は異なる分割状態機械によって処理される。例えば、入力記号が8ビットワードである場合、各部分が2ビットに対応する4つの部分に分けることができる。有利なことに、各部分は、ソースDFAグラフから得られる分割状態機械の1つによって処理することができる。
PMV_memoryは、複数の異なる分割状態機械によって共有される。このメモリは、ソース状態機械DFAから複数の異なる分割状態機械を生成する際に実行される入力記号の異なる各部分に対する異なる変換に基づいて更新される。
性能を上げるために、PMV_memoryはマルチポートメモリであることができ、それにより、リードモードでのみ同時アクセスを可能にし、それにより、フルカスタムASIC内のこのメモリの設計を簡略化することができる。
一実施形態では、最初に、このPMV_memoryは、ヌルベクトルに対応する単一のPMVのみを含む。PMVのこの値は非受容状態に対応する。
入力記号の異なる各部分は、8ビットの入力記号のビット1及び0、ビット3及び2、ビット5及び4、並びにビット7及び6に対応することができる。
入力記号の各部分につき、第1のステップにおいて、ソースDFAが、考慮中の部分に属するビットの分割機械に変換される。各分割状態機械は複数の異なる状態を含み、複数の異なる状態には、いくつかのリンク(即ち次の状態)及び1つのPMV値が関連付けられる。このステップにおいて、各分割状態機械に関連付けられた遷移表が、考慮中の分割状態機械の各状態に関連付けられた次の状態候補で更新され、この表はlinks_memoryにより参照される。
links_memoryは、分割状態機械内のある状態(即ち現在の状態)から別の状態(即ち次の状態)へのリンクに関するデータである「リンクデータ」を記憶するように構成される。
かかるメモリは2つの部分:受容状態範囲のための第1の部分及び非受容状態範囲のための第2の部分に分けることができる。一実施形態では、4個の分割状態機械と、照合するg個の既知の文字列とがある。この状況では、0〜4*g−1の状態値が受容状態又は非受容状態に対応することができ、値「4*g」以上の状態値は非受容状態に対応することができる。
このメモリは、内部又は外部のメモリであることができる。その幅は、リンクが並列ではなく逐次記憶される場合に小さくすることができる。次の状態へのリンクのこの対応により、より大きな状態機械並びに異なるサイズの入力記号を、メモリデータ幅に大きく影響せずに処理することが可能である。例えば、16ビットデータ幅のメモリは、64K個までの状態を有する状態機械を処理することが可能である。
今後、以下の表記が使用される。
−bは、分割状態機械によって管理される、入力記号からのビット数である。説明される実施形態では、bは2に等しい。
−pは、状態(現在の状態又は次の状態)の符号化に必要なビット数である。
−gは、ソースDFA又はソース状態機械内で管理される受容状態数である。
−Lは、links_memory105のアドレス指定に必要なビット数である。但し、L=p+bである。
−Tは、タイプメモリ112及びPMVメモリ12のアドレス指定に必要なビット数であり、Tは以下の式を検証する。
T≦pかつ
T=Log2((α/b)×N)=Log2(4×N)
−αは、入力記号のビット数である。
−(α/b)は、モジュールを構成する分割状態機械の数である。
処理される入力記号からのビット数は、各状態からアクセス可能な次の全状態候補の数に影響する。例えば、pが9に等しく(即ち、処理される最大状態数が512であることを意味する)、bが2に等しい場合、このメモリに必要なサイズは18432ビットであり、これは512**9ビットに対応する。
次に、第2のステップにおいて、この分割状態機械で使用されるPMVが番号付けされ、PMV_memoryが、PMVの異なる値を好ましくは複製なしで1度だけ含むように、この番号付けに基づいて更新される。
第3のステップにおいて、状態と、これに対応するPMV値との対応付けが実行される。これは、各分割状態機械のメモリコンテキストに、各状態のすべてのPMV値を記憶するのを避けるためになされる。
これらの3つのステップが、すべての分割状態機械に対して実行される。最後に、すべての分割状態機械に関連するすべての異なるデータ構造が作成されると、次に、PMV_memoryを更新することが可能である。このPMV_memoryは、異なる分割状態機械内で使用される、異なるPMV値を含む。
この第3のステップに関連して、第1の代替形態において、各分割状態機械のメモリコンテキスト内で、PMV値をPMV値それぞれの識別子で置き換えることが可能である。この識別子は、PMV_memory内の対応するオフセットに対応する。又は、第2の代替形態において、PMV値を除去し、考慮中の分割状態機械の状態の名前を変更することが可能である。これは、これらの状態を、PMV_memory内に記憶される、関連付けられた各PMV値のオフセットにそのままマッチさせるためである。言い換えれば、第2の代替形態では、状態のラベルは、そのまま、その状態に関連付けられるPMV値のオフセットに等しい。
第1の代替形態では、PMV識別子は、PMV_ID_memoryとして参照される、分割状態機械ごとのメモリに記憶される。PMV_ID_memoryは、その分割状態機械内で処理される各状態に1つのエントリを含む。各PMV値は、PMV_ID_memoryに記憶されているそのPMV識別子にそのまま対応するオフセットでPMV_memoryに記憶される。
第2の代替形態では、すべての受容状態に対して、表(PMV_memory)内のそれぞれのPMV値のオフセットに対応する値に影響を及ぼすことにより、PMVを見つけるために検索の必要がなく、すべてのメモリを同時にアドレス指定することができる。
本発明はかかる実施形態に限定されず、所与の分割状態機械の各状態に関連付けられたPMV値の記憶に使用されるメモリ量要件を低減するために、(次の状態の決定を可能にする情報の記憶を担当するメモリ内において)明示的なPMV値を、対応する関連付けられたPMV識別子と置き換えることができる、すべての実施形態を包含する。
例えば、第2の代替形態では、links_memoryにそのまま記憶される、即ち状態ラベルと呼ばれるその記憶形式の下で記憶される各状態が、それに関連付けられたPMV値のオフセットをそのまま示す。これらの条件下では、状態ラベル自体がそのまま対応するオフセットであるため、追加の情報をlinks_memoryに記憶する必要がない。この第2の代替形態では、各分割状態機械のPMV_ID_memoryが必要ないことに留意されたい。
この実施形態では、状態の名前を変更するステップがさらに実行されて、状態ラベルとPMV値のオフセットとのかかる直接的な各対応が得られる。
図1は、第1の代替形態に対応する、本発明の一実施形態による分割状態機械のモジュールのアーキテクチャを示す。このアーキテクチャでは、状態とそれぞれの関連付けられたPMV値との対応は、PMV_memory内のオフセットに対応するPMV識別子に基づく。
かかるモジュールは、4個の分割状態機械103を含む。
各分割状態機械103は、各分割状態機械に使用される、それぞれ異なるメモリである、メモリ「links_memory」105及び「PMV_ID_memory」106内のアドレスを生成するように構成される、アドレス生成器「SPLIT_state machine_addr_gen」104を備えることができる。両メモリとも、対応する分割状態機械に関連付けられたコンテキストメモリ内にある。本発明はこの態様に限定されない。例えば、メモリPMV_ID_memory内のアドレスは、分割状態機械内の現在の状態によってそのまま提供してよく、links_memory内のアドレスは、現在の状態と、考慮中の分割状態機械によって処理される入力記号の部分のビットとの連結によって生成されてよい。
各分割状態機械は、考慮中の分割状態機械の各状態に関連付けられたPMV識別子を記憶するために、メモリ「PMV_ID_memory」106をさらに備える。このメモリ106は、少なくとも、PMV識別子(即ちオフセット)を符号化することができるワード数を含む。この数は、1つの分割状態機械内で管理される状態数
p=2(L-n)
に等しい。
ワードのサイズはLOG2(4g+1)ビットである。
各分割状態機械はメモリlinks_memory105をさらに備え、そこにおいて、リンク(即ち次の状態)が分割状態機械の各状態に対応して記憶される。このメモリは、少なくとも2np=2Lワードを含み、各ワードは次の状態の値を符号化するためにpビットからなる。
一実施形態では、入力データセレクタ102が、照合する入力記号を受信し、入力記号の各部分をそれぞれ分割状態機械に送る。
このセレクタは、分割状態機械にそれぞれ転送される入力記号の部分を選択することができる。入力記号の各部分は、入力記号の任意のビットにより構成することができる。例えば、入力記号から連続したビットを選択することによって、入力記号の異なる部分を形成することが可能である。
このセレクタ102は必要ではないが、状況によっては、特にいくつかのソースDFAに関連する情報がメモリに記憶される場合には、有用である可能性がある。
これらの分割状態機械を通しての文字列照合プロセスを停止できるように、停止条件を検出するように構成された停止条件モジュール107を導入することが可能である。このモジュールは複数の異なる条件に基づくことができる。
文字列が照合したときに、又は照合プロセスが失敗したときに、照合プロセスを停止できることが有利であり得る。停止状態を識別できるようにするためには、特定の情報を追加しなければならない。通常、2つの停止状態を追加することができる:stop_ok及びstop_errである。stop_okは、文字列が照合したときに照合プロセスを停止させるために使用され、stop_errはその他の場合に使用される。これらの状態は、基となるDFAに存在してもよい。
分割状態機械内のこれらの状態を識別するために、異なるソリューションも可能である。例えば、ビットをPMV値に追加する(例えば各停止条件につき1ビット)ことが可能であり、又はビットをlinks_memoryに追加することが可能である。一実施形態では、各分割状態機械につき、別の1つのメモリ:type_memoryが管理される。このメモリは、links_memory内に記憶された状態が受容状態に対応するのか、それとも非受容状態に対応するのかを示せるようにする。これらの状況では、代替として、停止条件をtype_memoryに記憶することができる。
各ソリューションは、それ自体の制約及び/又は利点を伴う。ビットがPMV値に追加される場合、停止状態に達したことを1クロックサイクルで識別することは困難となる可能性がある。この場合、停止状態は「トラップ」状態でなければならない。実際に、この状態になってしまえば、分割状態機械が評価され続ける場合であっても、それ以上の入力文字を処理すべきではなく、状態機械はこの同じ状態に留まる。一方、このソリューションでは、PMVの幅が大きいため、多くの区別可能な停止状態の処理が可能である。
links_memoryへの停止ビットの追加に対応するソリューションは、少数のみの停止ビットがある場合には簡易なソリューションである。この場合、PMVの復号に長い時間がかかる場合であっても、次の状態と同時に停止条件が分かるため、分割状態機械の性能に対して影響を及ぼさない。このソリューションの主な欠点は、すべての状態のすべてのリンクに情報が存在することからくるメモリ消費量である。
分割状態機械レベルにおいて、異なる複数のメモリを、単一のメモリに従って、又は複数のメモリに従って実装することができる。いずれであっても、分割状態機械メモリコンテキスト11が、対応する分割状態機械内のある状態から別の状態へのコース、即ち現在の状態から次の状態へのコースを扱うために使用される。このコンテキストメモリを、以下に、第2の代替実施形態において詳述する。
さらに、一実施形態では、初期化レジスタ109が、異なる分割状態機械内の現在の状態を初期化するように構成されたユニットに対応する。
図2は、第2の代替形態に対応する一実施形態によるメモリアーキテクチャを説明する。
この実施形態では、メモリコンテキスト11は単一の分割状態機械専用としてもよく、メモリ12は、有利なことに、すべての分割状態機械によって共有することができる。
以下の実施形態によれば、入力記号は8ビットワードであり、これは4つの部分に分けられ、各部分は2ビットに対応する。有利には、各部分は、ソースDFAグラフから得られる分割状態機械の1つによって処理される。
メモリコンテキスト11は、links_memory105を含む。links_memory105は、ある与えられた分割状態機械に関連付けられ、この分割状態機械の各状態について、状態0−状態xxxの各状態について、潜在的なリンク(リンク0、リンク1、リンク2、及びリンク3)1つごとに4つのメモリロケーションが関連付けられる。ある受容状態に対応するある与えられた状態では、受容状態に関連付けられたデータに対応する多くのメモリロケーションは使用されない。何故なら、分割状態機械内には最大でg個の受容状態しかないためである。
これらのメモリロケーションの使用を最適化するために、使用されないメモリロケーションは、非受容状態に関連付けられたデータリンクを記憶するために使用することができる。
この状況では、あるメモリロケーションが非受容状態に対応するか否かを示すビットタイプが、(受容状態に関連付けられたデータリンク専用のエリア内であっても)これらのメモリロケーションに関連付けられる。
「type_memory」112は、ある状態値がある受容状態に対応するのか、それともある非受容状態に対応するかの判断を可能にするように構成される。type_memoryは、分割状態機械の状態ラベルによってアドレス指定される。このメモリはタイプビットを返す。タイプビットは、状態が受容状態である場合には範囲0から4g−1にセットされ、受容状態ではない場合、メモリは「0」を返し、これが通常状態であることを意味する。
type_memoryに必要な容量は、
(α/b)*gビット
であることができる。但し、
gは、基となる状態機械内の受容状態数であり、
bは、各分割状態機械によって処理されるビット数であり、
(α/b)は、基となる分割状態機械に対応する分割状態機械の数であり、
αは、入力記号のビット数である。
簡明にするために、links_memoryの1ビットを、各ワードについてのこの情報を符号化するための専用のものとすることが可能である。しかし、これは必要なことではない。実際に、この情報は、分割状態機械の最初の(α/b)*g個の状態についてのみ必要である。
このビットは、受容状態に影響されない状態値の使用を可能にし、「受容状態区間」に対応する区間である0から[(α/b)*g−1]内に含まれる。「タイプ」ビットがクリアされる場合、それが非受容状態であることを意味し、クリアされていない(セットされている)場合、対応する状態が受容状態であることを意味する。
一実施形態では、値が(α/b)*g以上であるすべての状態は非受容状態であるのに対し、値が「特殊状態区間」内にある状態は、「タイプ」ビットの値に応じて受容状態又は非受容状態のいずれかである。
現在の状態が非受容状態区間内にあるか否かを検出するために、比較器を各分割状態機械に関連付けることができる。これにより、このエリア内の状態に対して「タイプ」ビットを使用する必要がない。
以下の表はその態様を示す。
Figure 2009151757
当然ながら、links_memoryのあらゆるワードに1つのタイプビットがある場合、比較器は必要ない。
一実施形態では、links_memory及びtype_memoryを同じメモリ内に設計するほうが容易であり得る。この態様に限定されない。
PMV_memoryは、幅が広いが深度が比較的浅いため、内部メモリとして実装することができる。PMVメモリを複数の異なる分割状態機械で共有させることが効率的であるはずである。
このPMV_memoryのサイズの上限は、
(α/b)*gワード、各ワードgビットである。
かかるメモリ容量は、すべての分割状態機械内のすべての受容状態のすべての異なるPMV値の記憶を可能にする。
一実施形態では、有利なことに、受容状態のみが非ヌルのそれぞれのPMV値を有し、すべての非受容状態はPMVヌルを有する。したがって、非受容状態が識別される場合にPMV値を記憶することは無用である。受容状態の数は一般に、分割状態機械の状態総数と比較して小さいため、かかるメモリ管理はメモリの大量な節約に相当し得る。
これに加えて、表を記憶するために必要な容量は、一般に、従来得られる理論上の最大容量よりもよい。何故なら、一般に、異なる状態機械の異なるPMV値間にいくらかの冗長性があるためである。
かかるアーキテクチャにおいて、一実施形態では、制御ロジックユニットが存在する。このロジックは、すべての分割状態機械によって提供される信号の収集を担当する。これらのすべての信号が受容状態を示す場合、部分一致ベクトルは非ヌル値を有し、使用可能であり、そうでない場合には非受容状態である。受容状態が検出された場合、部分一致ベクトルが復号されて、ソースオートマトン内の識別子が生成される。
この制御ロジックユニットは、PMV値の生成を担当することができる。
別の実施形態では比較器が使用され、この比較器は、許容状態に関連付けられたエリアに配置されつつも非受容状態に関連付けられるリンクデータを検出するように構成される。比較器の使用により、links_memory内のあらゆるワードに1つのタイプビットを追加することと比較してメモリの大きな節約が可能である。実際に、かかるビットタイプの追加は、
b*2pビットではなく、(8/b)*gビット
というメモリ要件に相当する。
links_memory及びtype_memoryは、同時にアドレス指定することが可能である。
有利なことに、links_memoryが必要とするのは4*gワード以下であり、これは4*g個の異なるPMV値に対応する。
文字列は、それぞれのサイズに従ってグループ化することができる。または、文字列は、特定のPMV値が1つの分割状態機械内で1回のみ使用されることを保証する、別の基準に従ってグループ化することができる。
図2を参照して説明されるアーキテクチャにおいて、一実施形態では、図1に示される初期化レジスタ109のような初期化レジスタを導入することができる。
以下の項において、一例に基づく本発明の一実施形態を示す。この例によれば、基となる状態機械は、以下の文字列セットを認識するように構成される。
−his
−he
−hers
−she
この基となる状態機械は4個の分割状態機械に分割され、各分割状態機械は1つの入力記号のうちの2ビットを処理する。各分割状態機械の挙動の説明は、遷移表により説明される。
かかる表では、1列目は現在の状態を表す。そして、各行は、この現在の状態に対応する状態コンテキストの表現を含む。すなわち、各行は、考慮中の分割状態機械によって処理される、入力記号の一部がとり得る異なる値(即ち1行目では値00、01、10、及び11)に応じて異なる、次の状態の候補を含む。1列目では、値0〜9が現在の状態に対応する。最後の列は、現在の状態に関連付けられたPMV値を表す。
以下のテーブル1は、第1の分割状態機械によって実行される処理を示す。この分割状態機械は、入力記号のビット7:6を処理する。
Figure 2009151757
受容状態(太字)に対応することができる3つの状態を含む5つの状態が、第1の分割状態機械によって管理される。
以下のテーブル2は、第2の分割状態機械によって実行される処理を示す。この分割状態機械は、入力記号のビット5:4を処理する。
Figure 2009151757
受容状態(太字)に対応することができる4つの状態を含む8つの状態が、第2の分割状態機械によって管理される。
以下のテーブル3は、第3の分割状態機械によって実行される処理を示す。この分割状態機械は、入力記号のビット3:2を処理する。
Figure 2009151757
受容状態(太字)に対応することができる4つの状態を含む10の状態が、第3の分割状態機械によって管理される。
以下のテーブル4は、第4の分割状態機械によって実行される処理を示す。この分割状態機械は、入力記号のビット1:0を処理する。
Figure 2009151757
受容状態(太字)に対応することができる4つの状態を含む9つの状態が、第4の分割状態機械によって管理される。
上記各テーブルの最初のライン(現在の状態=0)は、各分割状態機械の初期状態を示す。
上記テーブルにおいて観察することができるように、いくつかのPMV値は異なる分割状態機械内において重複する。
以下の表であるテーブル5はPMV_memoryに対応し、分割機械内で使用される、異なるPMV値及びそれぞれの重複しないオフセットを含む。
Figure 2009151757
第1の代替形態の一実施形態によれば、以下のステップが実行される。
−遷移表内でPMV値をPMV_IDに置き換えること
−PMV_memory内のヌル値についてPMV_IDを作成すること
第2の代替形態に対応する本発明の一実施形態では、links_memoryへのオフセットの記憶を回避するために、名前を変更するステップが実行される。
第1の分割状態機械において実行される名前を変更するステップは、以下のテーブルであるテーブル6によって示すことができる。
Figure 2009151757
新状態ラベルは、受容状態に関連付けられたPMV_IDに等しい。通常状態のラベルは、PMV識別に対して特別な意味を持たない(関連付けられたタイプビット=0で示される)。
第2の分割状態機械において実行される名前を変更するステップは、以下のテーブルであるテーブル7によって示すことができる。
Figure 2009151757
第3の分割状態機械において実行される名前を変更するステップは、以下のテーブルであるテーブル8によって示すことができる。
Figure 2009151757
第4の分割状態機械において実行される名前を変更するステップは、以下のテーブルであるテーブル9によって示すことができる。
Figure 2009151757
太字の文字は、上記4つのテーブル内の受容状態に対応する。
このステップにおいて、type_memoryを各分割状態機械について埋めることができる。タイプビットはそれぞれ、type_memory内の「新状態ラベル」オフセットに書き込まれる。
初期状態レジスタもここで更新することができる。異なる分割状態機械の初期状態構成は、ここで3:1:1:1である。各数は左から右に、第1〜第4の分割状態機械の初期現在状態にそれぞれ対応する。この初期状態レジスタは、状態機械が起動され次第、正しい初期状態にロードするために使用される。
状態の名前変更が決定された場合、遷移表を更新することができる。テーブル10〜13に新しい遷移表を示す。これらの表が決定されると、メモリlinks_memoryを各分割状態機械について埋めることができる。
テーブル10〜13は、状態値の前のラベルを新しいラベルに置き換えることからなる名前を変更するステップ後の遷移表に対応する。さらに、この各遷移表は、現在の状態の昇順にソートされている。
以下のテーブル10は第1の分割状態機械に対応する。
Figure 2009151757
状態3及び4に関連付けられるタイプビットは0に等しく、したがって、これらの状態3及び4は非受容状態(PMVヌル)に対応する。
これに加えて、状態の名前変更後、テーブル6によれば、
−状態0は1000に等しいPMVに対応し、
−状態1は1110に等しいPMVに対応し、
−状態2は1111に等しいPMVに対応し、
−状態3は0000に等しいPMVに対応し、
−状態4は0000に等しいPMVに対応する。
以下のテーブル11は第2の分割状態機械に対応する。
Figure 2009151757
状態1、2、6、及び7に関連付けられるタイプビットは0に等しく、したがって、これらの状態は非受容状態(PMVヌル)に対応する。
これに加えて、状態の名前変更後、テーブル7によれば、
−状態0は1000に等しいPMVに対応し、
−状態1は0000に等しいPMVに対応し、
−状態2は0000に等しいPMVに対応し、
−状態3は0010に等しいPMVに対応し、
−状態4は1100に等しいPMVに対応し、
−状態5は0001に等しいPMVに対応し、
−状態6は0000に等しいPMVに対応し、
−状態7は0000に等しいPMVに対応する。
以下のテーブル12は第3の分割状態機械に対応する。
Figure 2009151757
状態1、2、6〜9に関連付けられるタイプビットは0に等しく、したがって、これらの状態は非受容状態(PMVヌル)に対応する。
これに加えて、状態の名前変更後、テーブル8によれば、
−状態0は1000に等しいPMVに対応し、
−状態1は0000に等しいPMVに対応し、
−状態2は0000に等しいPMVに対応し、
−状態3は0010に等しいPMVに対応し、
−状態4は1100に等しいPMVに対応し、
−状態5は0001に等しいPMVに対応し、
−状態6〜9は0000に等しいPMVに対応する。
以下のテーブル13は第4の分割状態機械に対応する。
Figure 2009151757
状態1、2、6〜8に関連付けられるタイプビットは0に等しく、したがって、これらの状態は非受容状態(PMVヌル)に対応する。
これに加えて、状態の名前変更後、テーブル8によれば、
−状態0は1000に等しいPMVに対応し、
−状態1は0000に等しいPMVに対応し、
−状態2は0000に等しいPMVに対応し、
−状態3は0010に等しいPMVに対応し、
−状態4は1100に等しいPMVに対応し、
−状態5は0001に等しいPMVに対応し、
−状態6〜8は0000に等しいPMVに対応する。
本発明の一実施形態では、有利なことに、分割状態機械環境でのPMVの処理に必要なメモリ容量を低減することができる。実際に、非受容状態に関連付けられたPMVを記憶するための記憶容量が必要ない。一般に、非受容状態は最も頻度の高い状態であるため、この態様により、メモリ量要件をかなり低減することが可能である。
これに加えて、PMV_memoryはすべての分割状態機械によって共有されるため、これにより、異なる分割状態機械間で共通のPMVがある場合に値の重複を避けながら、異なる分割状態機械の受容状態に関連付けられたPMVのみを記憶するだけでよい。
したがって、識別することができる受容状態の数がここではより重要になり得る。
さらに、使用されるメモリ容量を低減することにより、本明細書において説明したすべてのメモリは、大きな状態機械の場合であっても、FPGA又はASICのような素子自体内に実装することができる。
本発明の一実施形態によるかかる一実装態様は、それぞれ2ビット又は4ビットを処理することができる分割状態機械を使用して、異なる幅、例えば8又は16ビットの入力記号の処理を可能にするが、より多くの分割状態機械を使用して(8個の分割状態機械を使用しての32ビット入力記号のように)他のサイズも可能である。
本発明の一実施形態による分割状態機械のモジュールのアーキテクチャを示す。 本発明の別の一実施形態によるメモリアーキテクチャを示す。

Claims (11)

  1. N個の分割状態機械(103)を使用する文字列照合方法であって、
    前記N個の分割状態機械は、組み合わせられて、基となる状態機械に対応し、
    前記基となる状態機械は、連続した入力記号に基づいて少なくとも1つの文字列を認識するように構成され、
    前記N個の分割状態機械のそれぞれが、入力記号の各部分の処理を担当し、
    前記各分割状態機械の各状態に、1つの部分一致ベクトル値が関連付けられ、
    N個のメモリコンテキスト(11)が、現在の状態と、現在処理中の前記入力記号の部分とに応じて次の状態の決定を可能にする、情報の記憶を担当し、
    前記N個のメモリコンテキスト内において、関連付けられる識別子が、前記N個の分割状態機械の各状態に関連して示され、
    前記識別子と前記部分一致ベクトル値との関連が、前記N個の分割状態機械によって共有される共有メモリ(12)に記憶される、文字列照合方法。
  2. 前記共有メモリ(12)は、複数の異なる部分一致ベクトル値を含み、
    前記関連付けられる識別子は、前記共有メモリに記憶される部分一致ベクトル値の各オフセットである、請求項1に記載の文字列照合方法。
  3. 各状態につき1つの状態コンテキストが、状態ラベルで参照される前記メモリコンテキストに記憶され、
    前記関連付けられる識別子はそのまま前記状態ラベルである、請求項1に記載の文字列照合方法。
  4. −前記基となるソース状態機械から前記N個の分割状態機械を生成するステップであって、前記N個の分割状態機械のそれぞれは複数の異なる状態を含み、前記複数の異なる状態はそれぞれの初期ラベルで参照される、複数の異なる状態を含む、生成するステップと、
    −前記初期ラベルを新ラベルに置き換えるステップであって、それにより、各分割状態機械の各状態につき、前記状態に関連付けられる新ラベルであって、前記共有メモリに記憶される前記部分一致ベクトル値のオフセットに等しい新ラベルを得る、置き換えるステップと
    を含む、請求項3に記載の文字列照合方法。
  5. 前記複数の異なる部分一致ベクトル値は、前記共有メモリに1回だけ記憶される、請求項1〜4のいずれか一項に記載の文字列照合方法。
  6. N個の分割状態機械(103)に基づく文字列照合方法を実行するように構成される装置であって、
    前記N個の分割状態機械は、組み合わせられて、基となる状態機械に対応し、
    前記基となる状態機械は、連続した入力記号に基づいて少なくとも1つの文字列を認識するように構成され、
    前記N個の分割状態機械のそれぞれが、入力記号の各部分の処理を担当し、
    前記各分割状態機械の各状態に、1つの部分一致ベクトル値が関連付けられ、
    前記装置は、
    −現在の状態と、現在受信中の前記入力記号の部分とに応じて次の状態の決定を可能にする、情報の記憶を担当するN個のメモリコンテキスト(11)であって、前記メモリコンテキスト内において、関連付けられる識別子が、前記N個の分割状態機械の各状態に関連して記憶される、N個のメモリコンテキスト(11)と、
    −前記識別子と前記部分一致ベクトル値との関連を記憶するように構成される共有メモリ(12)であって、前記共有メモリ(12)は前記N個の分割状態機械によって共有される、共有メモリ(12)と
    を備える、装置。
  7. 前記共有メモリは、複数の異なる部分一致ベクトル値を含み、
    前記関連付けられる識別子は、前記共有メモリ内の記憶域の各オフセットに対応する、請求項6に記載の装置。
  8. 前記メモリコンテキストが、状態ラベルで参照される各状態を記憶するように構成され、前記関連付けられる識別子がそのまま前記状態ラベルである、請求項6に記載の装置。
  9. −前記基となるソース状態機械から前記N個の分割状態機械を生成するように構成される生成ユニットであって、前記N個の分割状態機械のそれぞれは複数の異なる状態を含み、前記複数の異なる状態は各初期ラベルで参照される、生成ユニットと、
    −前記初期ラベルを新ラベルに置き換えるように構成される置換ユニットであって、
    それにより、各分割状態機械の各状態につき1つの新ラベルを得、
    前記新ラベルは、前記状態に関連付けられ前記共有メモリに記憶される前記部分一致ベクトル値のオフセットに等しい
    置換ユニットと
    をさらに備える、請求項8に記載の装置。
  10. 前記複数の異なる部分一致ベクトル値は、前記共有メモリに1回だけ記憶される、請求項7〜9のいずれか一項に記載の装置。
  11. 請求項6〜10のいずれか一項に記載の装置のコンピュータ手段にロードされ実行された場合、請求項1〜5のいずれか一項に記載の方法のステップを実施するための命令を含むコンピュータプログラム製品。
JP2008279027A 2007-10-30 2008-10-30 文字列照合方法、文字列照合方法を実行するように構成される装置及びコンピュータプログラム Expired - Fee Related JP5254742B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07119682A EP2056221A1 (en) 2007-10-30 2007-10-30 Split state machines for matching
EP07119682.8 2007-10-30

Publications (2)

Publication Number Publication Date
JP2009151757A true JP2009151757A (ja) 2009-07-09
JP5254742B2 JP5254742B2 (ja) 2013-08-07

Family

ID=39414991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008279027A Expired - Fee Related JP5254742B2 (ja) 2007-10-30 2008-10-30 文字列照合方法、文字列照合方法を実行するように構成される装置及びコンピュータプログラム

Country Status (2)

Country Link
EP (1) EP2056221A1 (ja)
JP (1) JP5254742B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014232523A (ja) * 2013-05-28 2014-12-11 アジレント・テクノロジーズ・インクAgilent Technologies, Inc. サブワード有限状態機械を利用する探索装置
US9100372B2 (en) 2012-05-25 2015-08-04 International Business Machines Corporation System for determining whether or not automaton satisfies context-free grammar
US9397986B2 (en) 2012-01-19 2016-07-19 Globalfoundries Inc. Authenticating acceptance of a string using an automaton
EP3367256A1 (en) 2017-02-28 2018-08-29 Fujitsu Limited Analysis method and analysis device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5843261B2 (ja) 2011-12-16 2016-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 文字列がオートマトンに受理されるか否かを認証するシステム
CN103425739B (zh) * 2013-07-09 2016-09-14 国云科技股份有限公司 一种字符串匹配方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962558A (ja) * 1995-08-29 1997-03-07 Fuji Xerox Co Ltd データベース管理システム及び方法
JP2001134593A (ja) * 1999-11-05 2001-05-18 Nippon Telegr & Teleph Corp <Ntt> 近傍データ検索方法及び装置及び近傍データ検索プログラムを格納した記憶媒体
JP2005242672A (ja) * 2004-02-26 2005-09-08 Nippon Telegr & Teleph Corp <Ntt> パターンマッチング装置および方法ならびにプログラム
WO2007103397A2 (en) * 2006-03-07 2007-09-13 The Regents Of The University Of California Pattern matching technique for high throughput network processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962558A (ja) * 1995-08-29 1997-03-07 Fuji Xerox Co Ltd データベース管理システム及び方法
JP2001134593A (ja) * 1999-11-05 2001-05-18 Nippon Telegr & Teleph Corp <Ntt> 近傍データ検索方法及び装置及び近傍データ検索プログラムを格納した記憶媒体
JP2005242672A (ja) * 2004-02-26 2005-09-08 Nippon Telegr & Teleph Corp <Ntt> パターンマッチング装置および方法ならびにプログラム
WO2007103397A2 (en) * 2006-03-07 2007-09-13 The Regents Of The University Of California Pattern matching technique for high throughput network processing

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSND200200478001; 有川節夫、外1名: '文字列パターン照合アルゴリズム' コンピュータソフトウェア 第4巻,第2号, 19870415, p.98-119, 日本ソフトウェア科学会 *
JPN6012048250; Lin Tan、外1名: 'A High Throughput String Matching Architecture for Intrusion Detection and Prevention' Proceedings of the 32nd International Symposium on Computer Architecure (ISCA'05) [online] , 2005, p.112-122, IEEE *
JPN6012048252; 有川節夫、外1名: '文字列パターン照合アルゴリズム' コンピュータソフトウェア 第4巻,第2号, 19870415, p.98-119, 日本ソフトウェア科学会 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9397986B2 (en) 2012-01-19 2016-07-19 Globalfoundries Inc. Authenticating acceptance of a string using an automaton
US9100372B2 (en) 2012-05-25 2015-08-04 International Business Machines Corporation System for determining whether or not automaton satisfies context-free grammar
JP2014232523A (ja) * 2013-05-28 2014-12-11 アジレント・テクノロジーズ・インクAgilent Technologies, Inc. サブワード有限状態機械を利用する探索装置
US11586956B2 (en) 2013-05-28 2023-02-21 Keysight Technologies, Inc. Searching apparatus utilizing sub-word finite state machines
EP3367256A1 (en) 2017-02-28 2018-08-29 Fujitsu Limited Analysis method and analysis device
US10755028B2 (en) 2017-02-28 2020-08-25 Fujitsu Limited Analysis method and analysis device

Also Published As

Publication number Publication date
EP2056221A1 (en) 2009-05-06
JP5254742B2 (ja) 2013-08-07

Similar Documents

Publication Publication Date Title
JP5254742B2 (ja) 文字列照合方法、文字列照合方法を実行するように構成される装置及びコンピュータプログラム
JP4452183B2 (ja) プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置)
US8856203B1 (en) System and method for algorithmic TCAM packet classification
US7321952B2 (en) System and method for data phase of memory and power efficient mechanism for fast table lookup
US10091137B2 (en) Apparatus and method for scalable and flexible wildcard matching in a network switch
US20060212426A1 (en) Efficient CAM-based techniques to perform string searches in packet payloads
US20090207838A1 (en) Ternary content addressable memory embedded in a central processing unit
US20070133593A1 (en) Searching Strings Representing a Regular Expression
US20070115986A1 (en) Method to perform exact string match in the data plane of a network processor
JP2010506322A (ja) パターンの検出に関する改善
US20110022617A1 (en) Finite automaton generation system for string matching for multi-byte processing
US6738794B2 (en) Parallel bit correlator
US10218643B2 (en) Apparatus and method for scalable and flexible access control list lookup in a network switch
US20140317134A1 (en) Multi-stage parallel multi-character string matching device
US8543528B2 (en) Exploitation of transition rule sharing based on short state tags to improve the storage efficiency
US20020009056A1 (en) Route retrieving system, method therefor and a router device to be used in the same
US9703484B2 (en) Memory with compressed key
US9201982B2 (en) Priority search trees
US10795580B2 (en) Content addressable memory system
JP2005505094A (ja) 逆検索システムおよび方法
JP2013038536A (ja) 半導体装置
JP2007034732A (ja) 記憶媒体制御装置、記憶媒体制御方法および記憶媒体制御プログラム
US20100306209A1 (en) Pattern matcher and its matching method
CN114329105A (zh) 字符串检测方法和装置
JPWO2005013566A1 (ja) データ検索方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120918

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130222

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: 20130326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130418

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees