JP5321589B2 - 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム - Google Patents
有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム Download PDFInfo
- Publication number
- JP5321589B2 JP5321589B2 JP2010524682A JP2010524682A JP5321589B2 JP 5321589 B2 JP5321589 B2 JP 5321589B2 JP 2010524682 A JP2010524682 A JP 2010524682A JP 2010524682 A JP2010524682 A JP 2010524682A JP 5321589 B2 JP5321589 B2 JP 5321589B2
- Authority
- JP
- Japan
- Prior art keywords
- character
- regular expression
- nfa
- conversion
- unit
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
以上で述べた各々の問題は、NFAに限られるものではなく、DFAにおいても起こりうる。
以下、本発明の第1の実施の形態を図1に基づいて説明する。
最初に、本実施の形態の基本的な内容について説明し、その後で具体的な内容について説明する。
本実施の形態に係る有限オートマトン生成装置1は、入力された正規表現を、1文字単位の遷移条件を持つ有限オートマトン(FA)に変換し、前記1文字単位の遷移条件を持つ有限オートマトンから指定された任意の文字数の遷移条件を持つ有限オートマトンへの変換を行うものであり、正規表現および有限オートマトンの遷移条件に係る動作文字数の入力を受け付ける入力装置11と、正規表現に基づいて第1の1文字FAを生成する1文字FA生成部21と、動作文字数に基づいて第1の1文字FAに含まれる繰り返し正規表現を表す状態遷移を多文字変換用の状態遷移に置換して第2の1文字FAを生成する多文字変換前処理部22と、多文字変換前処理部によって変換された第2の1文字FAから、動作文字数に基づいて第1の多文字FAを生成する多文字FA変換部23と、多文字FA変換部によって生成された第1の多文字FA中の繰り返し正規表現に対応する多文字変換用の状態遷移を動作文字数単位の繰り返し正規表現を表す状態遷移に置き換えて第2の多文字FAを生成する多文字変換後処理部24と、を有するように構成されている。
また、多文字変換後処理部24で、第1の多文字FAに含まれる、繰り返し正規表現に対応する多文字変換用の状態遷移を、動作文字数単位の繰り返し正規表現を表す状態遷移に置き換えるための変換手順は、繰り返し正規表現の繰り返し文字数と動作文字数により決定される。
以下、これをさらに詳述する。なお、以後の実施例はNFAに対する処理について説明しており(「NFA」を「DFA」に読み替えるだけで、DFAについても適用できる)、「第1の1文字FA」は「1文字NFA」、「第2の1文字FA」は「変換用1文字NFA」、「第1の多文字FA」は「変換用多文字NFA」、「第2の多文字FA」は「多文字NFA」として記載している。また、「多文字変換用の状態遷移」は、後述する図6のステップS201〜209の繰り返し処理として記載される処理である。
また、第1の1文字FAを第2の1文字FAに変換する処理は、第1の1文字FAに含まれる、繰り返し正規表現の繰り返し回数が動作文字数より大きい繰り返し正規表現を表す状態遷移を、図6〜7で説明したように、動作文字数Mより決定される繰り返し回数の繰り返し正規表現を表す状態遷移に置換することで、第2の1文字FAを生成するという処理である。
また、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する有限オートマトン生成装置1が備えているコンピュータに実行させるようにしてもよい。
図18は本発明の第2の実施の形態に係る有限オートマトン生成装置401の構成を示すブロック図である。有限オートマトン生成装置401は、第1の実施の形態に係る有限オートマトン生成装置1と同様に、入力装置411、データ処理装置418、記憶装置414、出力装置413を備える。データ処理装置418は、CPU、RAM、OSなどによって構成されるコンピュータ装置の中心部であり、プログラムを実行する主体である。
なお、第2の実施の形態も、第1の実施の形態と同様に、NFAに限らずDFAに対しても適用することが可能である。その他の構成および作用効果については、前述した第1の実施の形態と同一である。
図19は本発明の第3の実施の形態に係る有限オートマトン生成装置501の構成を示すブロック図である。有限オートマトン生成装置501は、本発明の第1の実施の形態に係る有限オートマトン生成装置1の構成に加えて、FPGA等の再構成可能なハードウェアデバイスにその構成をコンフィグレーションするためコンフィグレーション装置541、パターンマッチングの対象となるデータパターンマッチング装置に入力する入力装置550と、FPGA等の再構成可能なハードウェアデバイスを有するパターンマッチング装置560と、パターンマッチングの結果を出力するためのディスプレイ装置や印刷装置等の出力装置570を備える。これら以外の構成および作用効果については、前述した第1の実施の形態と同一である。
Network Intrusion Prevention System)、あるいはコンピュータウィルス検出システムなどにも適用でき、パソコンやワークステーションに搭載されているソフトウェアベースでのパターンマッチング処理の代替となるハードウェアアクセラレータ用NFA回路生成システム、生成プログラム、及び、正規表現検索ハードウェアアクセラレータ装置等にも適用できる。
11、411 入力装置
12、418、516 データ処理装置
13、413 出力装置
14、414、514 記憶装置
21 1文字NFA生成部
22 多文字NFA変換前処理部
23 多文字NFA変換部
24 多文字NFA変換後処理部
25 HDL変換部
31、431 繰り返し正規表現記憶部
32、432 1文字NFA記憶部
33、433 変換用1文字NFA記憶部
34、434 変換用多文字NFA記憶部
35、435 多文字NFA記憶部
415 正規表現−HDL変換プログラム
526 コンフィグレーションデータ変換部
536 HDL記憶部
541 コンフィグレーション装置
550 入力装置
560 パターンマッチング装置
561 データ入力部
562 パターンマッチング部
563 結果出力部
570 出力装置
Claims (10)
- 入力された正規表現を、1文字単位の遷移条件を持つ有限オートマトン(FA)に変換し、前記1文字単位の遷移条件を持つ有限オートマトンから指定された任意の文字数の遷移条件を持つ有限オートマトンへの変換を行う有限オートマトン生成装置であって、
前記正規表現および前記有限オートマトンの遷移条件に係る動作文字数の入力を受け付ける入力装置と、
前記正規表現に基づいて第1の1文字FAを生成する1文字FA生成部と、
前記動作文字数に基づいて前記第1の1文字FAに含まれる繰り返し正規表現を表す状態遷移を多文字変換用の状態遷移に置換して第2の1文字FAを生成する多文字変換前処理部と、
前記多文字変換前処理部によって変換された第2の1文字FAから、前記動作文字数に基づいて第1の多文字FAを生成する多文字FA変換部と、
前記多文字FA変換部によって生成された第1の多文字FA中の繰り返し正規表現に対応する多文字変換用の状態遷移を前記動作文字数単位の繰り返し正規表現を表す状態遷移に置き換えて第2の多文字FAを生成する多文字変換後処理部と、を有することを特徴とする有限オートマトン生成装置。 - 前記多文字変換前処理部が、前記第1の1文字FAに含まれる、繰り返し正規表現の繰り返し回数が前記動作文字数より大きい繰り返し正規表現を表す状態遷移を、前記動作文字数によって決定される繰り返し回数の繰り返し正規表現を表す状態遷移に置換することで第2の1文字FAを生成することを特徴とする、請求項1に記載の有限オートマトン生成装置。
- 前記多文字変換後処理部が、前記第1の多文字FAに含まれる、前記繰り返し正規表現に対応する多文字変換用の状態遷移を、前記動作文字数単位の繰り返し正規表現を表す状態遷移に置き換えるための変換手順が、前記繰り返し正規表現の繰り返し文字数と前記動作文字数により決定されることを特徴とする、請求項2に記載の有限オートマトン生成装置。
- 前記多文字変換後処理部に、前記第2の多文字FAに基づいて回路記述を生成するHDL変換部が併設されていることを特徴とする、請求項1に記載の有限オートマトン生成装置。
- 前記HDL変換部にコンフィグレーション装置が併設されており、
前記コンフィグレーション装置は、予め別に設けられたパターンマッチング装置に具備され、入力データに対してパターンマッチング処理を行うパターンマッチング部を、前記回路記述に基づいて形成することを特徴とする、請求項4に記載の有限オートマトン生成装置。 - 入力データに対してパターンマッチング処理を行うパターンマッチング装置であって、
前記入力データを受け付けるデータ入力部と、前記パターンマッチング処理の結果を出力する結果出力部とを備え、
前記データ入力部と前記結果出力部との間に前記入力データに対してパターンマッチング処理を行うパターンマッチング部を設け、このパターンマッチング部の動作内容が請求項5に記載の有限オートマトン生成装置によって生成された回路記述に基づいて特定されることを特徴とするパターンマッチング装置。 - 入力された正規表現を、1文字単位の遷移条件を持つ有限オートマトン(FA)に変換し、前記1文字単位の遷移条件を持つ有限オートマトンから指定された任意の文字数の遷移条件を持つ有限オートマトンへの変換を行う有限オートマトン生成装置にあって、
前記正規表現および当該正規表現に係る動作文字数の入力を入力装置が受け付け、
前記正規表現に基づいて第1の1文字FAを1文字FA生成部が生成し、
前記動作文字数に基づいて前記第1の1文字FAに含まれる繰り返し正規表現を表す状態遷移を多文字変換用の状態遷移に置換して第2の1文字FAを多文字変換前処理部が生成し、
前記第2の1文字FAから前記動作文字数に基づいて第1の多文字FAを多文字FA変換部が生成し、
前記第1の多文字FA中の繰り返し正規表現に対応する多文字変換用の状態遷移を前記動作文字数単位の繰り返し正規表現を表す状態遷移に置き換えて第2の多文字FAを多文字変換後処理部が生成することを特徴とする有限オートマトン生成方法。 - 前記多文字変換後処理部が前記第2の多文字FAを出力する処理は、前記第1の多文字FAに含まれる、前記繰り返し正規表現に対応する多文字変換用の状態遷移を、あらかじめ定められた演算ルールに基づき、前記指定された任意の動作文字数単位の繰り返し正規表現を表す状態遷移に置き換えることを特徴とする、請求項7に記載の有限オートマトン生成方法。
- 前記多文字変換前処理部が前記第1の1文字FAを第2の1文字FAに変換する処理は、前記第1の1文字FAに含まれる、繰り返し正規表現の繰り返し回数が前記動作文字数より大きい繰り返し正規表現を表す状態遷移を、前記指定された任意の動作文字数より決定される繰り返し回数の繰り返し正規表現を表す状態遷移に置換することで、第2の1文字FAを生成することを特徴とする、請求項7に記載の有限オートマトン生成方法。
- 入力された正規表現を、1文字単位の遷移条件を持つ有限オートマトン(FA)に変換し、前記1文字単位の遷移条件を持つ有限オートマトンから指定された任意の文字数の遷移条件を持つ有限オートマトンへの変換を行う有限オートマトン生成装置を制御するコンピュータに、
前記正規表現および当該正規表現に係る動作文字数の入力を受け付ける処理と、
前記正規表現に基づいて第1の1文字FAを生成する処理と、
前記動作文字数に基づいて前記第1の1文字FAに含まれる繰り返し正規表現を表す状態遷移を多文字変換用の状態遷移に置換して第2の1文字FAを生成する処理と、
前記第2の1文字FAから前記動作文字数に基づいて第1の多文字FAを生成する処理と、
前記第1の多文字FA中の繰り返し正規表現に対応する多文字変換用の状態遷移を前記動作文字数単位の繰り返し正規表現を表す状態遷移に置き換えて第2の多文字FAを生成する処理とを実行させることを特徴とする有限オートマトン生成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010524682A JP5321589B2 (ja) | 2008-08-13 | 2009-06-17 | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008208481 | 2008-08-13 | ||
JP2008208481 | 2008-08-13 | ||
JP2010524682A JP5321589B2 (ja) | 2008-08-13 | 2009-06-17 | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム |
PCT/JP2009/060985 WO2010018710A1 (ja) | 2008-08-13 | 2009-06-17 | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010018710A1 JPWO2010018710A1 (ja) | 2012-01-26 |
JP5321589B2 true JP5321589B2 (ja) | 2013-10-23 |
Family
ID=41668857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010524682A Expired - Fee Related JP5321589B2 (ja) | 2008-08-13 | 2009-06-17 | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5321589B2 (ja) |
WO (1) | WO2010018710A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
US8766666B2 (en) * | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US8803214B2 (en) | 2010-06-28 | 2014-08-12 | Micron Technology, Inc. | Three dimensional memory and methods of forming the same |
KR101607736B1 (ko) * | 2011-01-25 | 2016-03-30 | 마이크론 테크놀로지, 인크. | 오토마톤의 진입 차수 및/또는 진출 차수를 제어하기 위한 양화 언롤링 |
WO2012103151A2 (en) | 2011-01-25 | 2012-08-02 | Micron Technology, Inc. | State grouping for element utilization |
KR101640295B1 (ko) | 2011-01-25 | 2016-07-15 | 마이크론 테크놀로지, 인크. | 정규 표현을 컴파일하기 위한 방법 및 장치 |
EP2668574B1 (en) * | 2011-01-25 | 2021-11-24 | Micron Technology, INC. | Utilizing special purpose elements to implement a fsm |
US8759895B2 (en) | 2011-02-25 | 2014-06-24 | Micron Technology, Inc. | Semiconductor charge storage apparatus and methods |
JP5942600B2 (ja) * | 2012-05-28 | 2016-06-29 | 富士通株式会社 | 入力文字列確認装置 |
JP6012414B2 (ja) * | 2012-11-08 | 2016-10-25 | 三菱電機株式会社 | 情報処理装置及び情報処理方法及びプログラム |
US9405652B2 (en) | 2013-10-31 | 2016-08-02 | Red Hat, Inc. | Regular expression support in instrumentation languages using kernel-mode executable code |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008081932A1 (ja) * | 2006-12-28 | 2008-07-10 | Nec Corporation | 文字列照合用有限オートマトン生成システム、その生成方法、及び生成プログラム |
JP2009093599A (ja) * | 2007-10-12 | 2009-04-30 | Nec Corp | 文字列照合回路 |
WO2009147794A1 (ja) * | 2008-06-04 | 2009-12-10 | 日本電気株式会社 | 有限オートマトン生成システム |
-
2009
- 2009-06-17 JP JP2010524682A patent/JP5321589B2/ja not_active Expired - Fee Related
- 2009-06-17 WO PCT/JP2009/060985 patent/WO2010018710A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008081932A1 (ja) * | 2006-12-28 | 2008-07-10 | Nec Corporation | 文字列照合用有限オートマトン生成システム、その生成方法、及び生成プログラム |
JP2009093599A (ja) * | 2007-10-12 | 2009-04-30 | Nec Corp | 文字列照合回路 |
WO2009147794A1 (ja) * | 2008-06-04 | 2009-12-10 | 日本電気株式会社 | 有限オートマトン生成システム |
Non-Patent Citations (2)
Title |
---|
CSNG200701022004; 山垣則夫,外1名: 'NFA埋め込み型パターンマッチング回路におけるマルチバイト処理化に関する検討' 電子情報通信学会技術研究報告 Vol.107, No.225, 20070913, pp.65〜70(RECONF2007-26), 社団法人電子情報通信学会 * |
JPN6009016482; 山垣則夫,外1名: 'NFA埋め込み型パターンマッチング回路におけるマルチバイト処理化に関する検討' 電子情報通信学会技術研究報告 Vol.107, No.225, 20070913, pp.65〜70(RECONF2007-26), 社団法人電子情報通信学会 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2010018710A1 (ja) | 2012-01-26 |
WO2010018710A1 (ja) | 2010-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5321589B2 (ja) | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム | |
KR101698237B1 (ko) | 계층적 구조를 이용한 데이터 분석 | |
EP2668577B1 (en) | Unrolling quantifications to control in-degree and/or out degree of automaton | |
KR101640295B1 (ko) | 정규 표현을 컴파일하기 위한 방법 및 장치 | |
US9870530B2 (en) | Methods and systems for data analysis in a state machine | |
KR101606622B1 (ko) | Fsm을 구현하기 위한 특수 목적 요소의 이용 | |
JP6017034B2 (ja) | 状態機械エンジンが受信したデータを取り扱うための方法およびシステム | |
WO2009116646A1 (ja) | マルチバイト処理向け文字列照合用有限オートマトン生成システム | |
EP2891053B1 (en) | Results generation for state machine engines | |
KR102165134B1 (ko) | 상태 기계 엔진에서 상태 벡터 데이터를 사용하기 위한 방법들 및 시스템들 | |
JP2014506693A5 (ja) | ||
JPWO2009017131A1 (ja) | ε遷移を含まない非決定性有限オートマトン生成システムと方法およびプログラム | |
Fayyazi et al. | Deep learning-based circuit recognition using sparse mapping and level-dependent decaying sum circuit representations | |
JP4403187B2 (ja) | 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法 | |
JPWO2008081932A1 (ja) | 文字列照合用有限オートマトン生成システム、その生成方法、及び生成プログラム | |
JP5429164B2 (ja) | 有限オートマトン生成システム | |
Kaneta et al. | High-speed string and regular expression matching on FPGA | |
Kumar et al. | Realization of incompletely specified functions in minimized reversible cascades | |
Schaefer et al. | DESIJ--Enabling Decomposition-Based Synthesis of Complex Asynchronous Controllers | |
Tetteh et al. | Evolving Behavioural Models of Combinational and Sequential Digital Circuits in SystemVerilog using Grammatical Evolution | |
Keung et al. | State space reconfigurability: an implementation architecture for self modifying finite automata | |
JPH10262145A (ja) | 画像拡大回路、画像縮小回路およびプリンタ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130510 |
|
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: 20130618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130701 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |