JP5254742B2 - 文字列照合方法、文字列照合方法を実行するように構成される装置及びコンピュータプログラム - Google Patents
文字列照合方法、文字列照合方法を実行するように構成される装置及びコンピュータプログラム Download PDFInfo
- Publication number
- JP5254742B2 JP5254742B2 JP2008279027A JP2008279027A JP5254742B2 JP 5254742 B2 JP5254742 B2 JP 5254742B2 JP 2008279027 A JP2008279027 A JP 2008279027A JP 2008279027 A JP2008279027 A JP 2008279027A JP 5254742 B2 JP5254742 B2 JP 5254742B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- memory
- split
- pmv
- split state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
Description
[1.技術分野]
本発明は、概して文字列照合方法に関する。
照合対象の文字列は、エイホ・コラシックアルゴリズムを使用して生成されるDFA(「決定性有限オートマトン(Deterministic Finite Automaton)」の略)グラフである「文字列照合オートマトン」内にグループ化することができる。DFAとは、状態及び入力記号によって形成される各ペアにつき、現在の状態から次の状態への遷移が1つだけである有限状態機械(finite state machine)である。
LOG2(X)
に対応する。但し、Xは分割状態機械内の状態の最大数であり、LOG2はlog2(底が2の対数)よりも大きな直近の整数である。
したがって、第1の態様において、本発明は、N個の分割状態機械を使用する文字列照合方法であって、N個の分割状態機械は組み合わせられて、基となる状態機械に対応し、基となる状態機械は、連続した入力記号に基づいて少なくとも1つの文字列を認識するように構成される、文字列照合方法を提案する。N個の分割状態機械のそれぞれは、入力記号の各部分の処理を担当する。各分割状態機械の各状態に、1つの部分一致ベクトル値が関連付けられる。N個のメモリコンテキストが情報の記憶を担当し、この情報は、現在の状態と、現在処理中の入力記号の部分とに応じて、次の状態の決定を可能にする。
−前記基となるソース状態機械から前記N個の分割状態機械を生成するステップであって、前記N個の分割状態機械のそれぞれは複数の異なる状態を含み、複数の異なる状態はそれぞれの初期ラベルで参照される、生成するステップと、
−初期ラベルを新ラベルに置き換えるステップであって、それにより、各分割状態機械の各状態につき、前記状態に関連付けられる新ラベルであって、共有メモリに記憶された部分一致ベクトル値のオフセットに等しい新ラベルを得る、置き換えるステップと
を含む。
N個の分割状態機械のそれぞれが、入力記号の各部分の処理を担当し、
各分割状態機械の各状態に、1つの部分一致ベクトル値が関連付けられ、
本装置は、
−現在の状態と、現在受信中の入力記号の部分とに応じて次の状態の決定を可能にする、情報の記憶を担当するN個のメモリコンテキストであって、N個のメモリコンテキスト内において、関連付けられる識別子が、N個の分割状態機械の各状態に関連して示される、N個のメモリコンテキストと、
−識別子と部分一致ベクトル値との関連を記憶するように構成された共有メモリであって、この共有メモリはN個の分割状態機械によって共有される、共有メモリと
を備える装置に関する。
−前記基となるソース状態機械から前記N個の分割状態機械を生成するように構成された生成ユニットであって、前記N個の分割状態機械のそれぞれは複数の異なる状態を含み、複数の異なる状態は各初期ラベルで参照される、生成ユニットと、
−初期ラベルを新ラベルに置き換えるように構成される置換ユニットであって、
それにより、各分割状態機械の各状態につき1つの新ラベルを得、
この新ラベルは、前記状態に関連付けられ前記共有メモリに記憶される前記部分一致ベクトル値のオフセットに等しい
置換ユニットと
をさらに備えることができる。
本発明は、分割状態機械に使用されるメモリ量を低減するために、これらの分割状態機械の各メモリワード内のPMV値記憶量を抑えることを提案する。
−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)は、モジュールを構成する分割状態機械の数である。
2p=2(L-n)
に等しい。
(α/b)*gビット
であることができる。但し、
gは、基となる状態機械内の受容状態数であり、
bは、各分割状態機械によって処理されるビット数であり、
(α/b)は、基となる分割状態機械に対応する分割状態機械の数であり、
αは、入力記号のビット数である。
(α/b)*gワード、各ワードgビットである。
2b*2pビットではなく、(8/b)*gビット
というメモリ要件に相当する。
−his
−he
−hers
−she
−遷移表内でPMV値をPMV_IDに置き換えること
−PMV_memory内のヌル値についてPMV_IDを作成すること
−状態0は1000に等しいPMVに対応し、
−状態1は1110に等しいPMVに対応し、
−状態2は1111に等しいPMVに対応し、
−状態3は0000に等しいPMVに対応し、
−状態4は0000に等しいPMVに対応する。
−状態0は1000に等しいPMVに対応し、
−状態1は0000に等しいPMVに対応し、
−状態2は0000に等しいPMVに対応し、
−状態3は0010に等しいPMVに対応し、
−状態4は1100に等しいPMVに対応し、
−状態5は0001に等しいPMVに対応し、
−状態6は0000に等しいPMVに対応し、
−状態7は0000に等しいPMVに対応する。
−状態0は1000に等しいPMVに対応し、
−状態1は0000に等しいPMVに対応し、
−状態2は0000に等しいPMVに対応し、
−状態3は0010に等しいPMVに対応し、
−状態4は1100に等しいPMVに対応し、
−状態5は0001に等しいPMVに対応し、
−状態6〜9は0000に等しいPMVに対応する。
−状態0は1000に等しいPMVに対応し、
−状態1は0000に等しいPMVに対応し、
−状態2は0000に等しいPMVに対応し、
−状態3は0010に等しいPMVに対応し、
−状態4は1100に等しいPMVに対応し、
−状態5は0001に等しいPMVに対応し、
−状態6〜8は0000に等しいPMVに対応する。
Claims (5)
- N個の分割状態機械(103)を使用する文字列照合方法であって、
前記N個の分割状態機械は、組み合わせられて、基となる状態機械に対応し、
前記基となる状態機械は、連続した入力記号に基づいて少なくとも1つの文字列を認識するように構成され、
前記N個の分割状態機械のそれぞれが、入力記号の各部分の処理を担当し、
前記各分割状態機械の各状態に、1つの部分一致ベクトル値が関連付けられ、
N個のメモリコンテキスト(11)が、現在の状態と、現在処理中の前記入力記号の部分とに応じて次の状態の決定を可能にする、情報の記憶を担当し、
前記N個のメモリコンテキスト内において、関連付けられる識別子が、前記N個の分割状態機械の各状態に関連して示され、
前記識別子と前記部分一致ベクトル値との関連が、前記N個の分割状態機械によって共有される共有メモリ(12)に記憶され、
前記関連付けられる識別子は、前記共有メモリに記憶される部分一致ベクトル値の各オフセットであり、
識別子を記憶するために要するメモリ容量は、それぞれの部分一致ベクトル値を記憶するために要するメモリ容量より少ない、文字列照合方法。 - 前記複数の異なる部分一致ベクトル値は、前記共有メモリに1回だけ記憶される、請求項1に記載の文字列照合方法。
- N個の分割状態機械(103)に基づく文字列照合方法を実行するように構成される装置であって、
前記N個の分割状態機械は、組み合わせられて、基となる状態機械に対応し、
前記基となる状態機械は、連続した入力記号に基づいて少なくとも1つの文字列を認識するように構成され、
前記N個の分割状態機械のそれぞれが、入力記号の各部分の処理を担当し、
前記各分割状態機械の各状態に、1つの部分一致ベクトル値が関連付けられ、
前記装置は、
−現在の状態と、現在受信中の前記入力記号の部分とに応じて次の状態の決定を可能にする、情報の記憶を担当するN個のメモリコンテキスト(11)であって、前記メモリコンテキスト内において、関連付けられる識別子が、前記N個の分割状態機械の各状態に関連して記憶される、N個のメモリコンテキスト(11)と、
−前記識別子と前記部分一致ベクトル値との関連を記憶するように構成される共有メモリ(12)であって、前記共有メモリ(12)は前記N個の分割状態機械によって共有される、共有メモリ(12)と
を備え、
前記関連付けられる識別子は、前記共有メモリに記憶される部分一致ベクトル値の各オフセットであり、
識別子を記憶するために要するメモリ容量は、それぞれの部分一致ベクトル値を記憶するために要するメモリより少ない、装置。 - 前記複数の異なる部分一致ベクトル値は、前記共有メモリに1回だけ記憶される、請求項3に記載の装置。
- コンピュータに、請求項1または2に記載の方法のステップを実施させるためのプログラム。
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 JP2009151757A (ja) | 2009-07-09 |
JP5254742B2 true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5843261B2 (ja) | 2011-12-16 | 2016-01-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 文字列がオートマトンに受理されるか否かを認証するシステム |
DE112013000357B4 (de) | 2012-01-19 | 2018-02-15 | Globalfoundries Inc. | System zum Authentifizieren einer Annahme einer Zeichenfolge durch einen Automaten |
JP2013246294A (ja) | 2012-05-25 | 2013-12-09 | Internatl Business Mach Corp <Ibm> | オートマトンが文脈自由文法を満たすか否かを判定するシステム |
US11586956B2 (en) | 2013-05-28 | 2023-02-21 | Keysight Technologies, Inc. | Searching apparatus utilizing sub-word finite state machines |
CN103425739B (zh) * | 2013-07-09 | 2016-09-14 | 国云科技股份有限公司 | 一种字符串匹配方法 |
JP6862914B2 (ja) | 2017-02-28 | 2021-04-21 | 富士通株式会社 | 解析プログラム、解析方法および解析装置 |
Family Cites Families (4)
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> | 近傍データ検索方法及び装置及び近傍データ検索プログラムを格納した記憶媒体 |
JP4347087B2 (ja) * | 2004-02-26 | 2009-10-21 | 日本電信電話株式会社 | パターンマッチング装置および方法ならびにプログラム |
WO2007103397A2 (en) * | 2006-03-07 | 2007-09-13 | The Regents Of The University Of California | Pattern matching technique for high throughput network processing |
-
2007
- 2007-10-30 EP EP07119682A patent/EP2056221A1/en not_active Withdrawn
-
2008
- 2008-10-30 JP JP2008279027A patent/JP5254742B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2056221A1 (en) | 2009-05-06 |
JP2009151757A (ja) | 2009-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5254742B2 (ja) | 文字列照合方法、文字列照合方法を実行するように構成される装置及びコンピュータプログラム | |
JP4452183B2 (ja) | プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置) | |
JP2007508653A (ja) | 高速テーブルルックアップ用メモリおよび低消費電力機構 | |
US8856203B1 (en) | System and method for algorithmic TCAM packet classification | |
US8387003B2 (en) | Pluperfect hashing | |
JP5265378B2 (ja) | 高性能正規表現パターンマッチングのための方法および装置 | |
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 | |
US20070115986A1 (en) | Method to perform exact string match in the data plane of a network processor | |
US20110022617A1 (en) | Finite automaton generation system for string matching for multi-byte processing | |
JP2010506322A (ja) | パターンの検出に関する改善 | |
US8972450B2 (en) | Multi-stage parallel multi-character string matching device | |
US6738794B2 (en) | Parallel bit correlator | |
US10218643B2 (en) | Apparatus and method for scalable and flexible access control list lookup in a network switch | |
US8543528B2 (en) | Exploitation of transition rule sharing based on short state tags to improve the storage efficiency | |
CN110324204B (zh) | 一种在fpga中实现的高速正则表达式匹配引擎及方法 | |
US20020009056A1 (en) | Route retrieving system, method therefor and a router device to be used in the same | |
US9703484B2 (en) | Memory with compressed key | |
US10795580B2 (en) | Content addressable memory system | |
WO2010095004A1 (en) | Priority search trees | |
JP2013038536A (ja) | 半導体装置 | |
CN112637070B (zh) | 一种表项查找的方法和设备 | |
US20060085590A1 (en) | Data storage and matching employing words wider than width of content addressable memory | |
US20100306209A1 (en) | Pattern matcher and its matching method |
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 |