JP2014506693A - オートマトンの入次数および/または出次数を制御するための数量化の展開 - Google Patents
オートマトンの入次数および/または出次数を制御するための数量化の展開 Download PDFInfo
- Publication number
- JP2014506693A JP2014506693A JP2013550671A JP2013550671A JP2014506693A JP 2014506693 A JP2014506693 A JP 2014506693A JP 2013550671 A JP2013550671 A JP 2013550671A JP 2013550671 A JP2013550671 A JP 2013550671A JP 2014506693 A JP2014506693 A JP 2014506693A
- Authority
- JP
- Japan
- Prior art keywords
- quantification
- automaton
- computer
- order
- expanding
- 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
Links
- 238000011002 quantification Methods 0.000 title claims abstract description 210
- 238000011161 development Methods 0.000 title description 2
- 230000014509 gene expression Effects 0.000 claims abstract description 87
- 230000007704 transition Effects 0.000 claims abstract description 87
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 9
- 230000015654 memory Effects 0.000 claims description 42
- 230000001131 transforming effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 3
- 230000009466 transformation Effects 0.000 abstract description 3
- 239000004020 conductor Substances 0.000 description 19
- 230000006870 function Effects 0.000 description 19
- 238000001514 detection method Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000003252 repetitive effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【選択図】図4A
Description
本特許出願は、2011年1月25日に出願された、「UNROLLING QUANTIFICATIONS TO CONTROL IN−DEGREE AND/OR OUT DEGREE OF AUTOMATION」という名称の米国仮特許出願整理番号61/436,051に対する優先権の利益を主張し、これによって、参照によりその全体として本明細書に組み込まれる。
例えば、“(bc|){10,20}”は“(bc){0,20}”と書き換えられるが、これは、これらの正規表現が全く同じデータを受け付けるからである。
2.(n1=1,n2=−1)の場合、数量化は展開によって実装される。ここで、カウンタは必要ない。
3.(n1>1,n2=−1)の場合、B{n,−1}がB{n1−1}B+と等しいので、数量化は2つの正規表現B{n1−1}およびB+に分割される。数量化B{n1−1}は、次いで、おそらくはカウンタで実装でき、他方B+は、展開によって実装される。
4.(n1=0,n2>0)の場合、(B{1,n2})?がB{0,n2}と等しいので、数量化は(B{1,n2})?に修正される。空値不能なB{1,n2}が、次いで、おそらくはカウンタで実装できる。
5.(n1>0,n2>0)の場合、数量化は、おそらくは、カウンタでB{n1,n2}として実装され得る。
要約として、おそらくは、修正することなく、カウンタで実装できる数量化は、B{n1,n2}として記述でき、ここで、Bは空値可能でなく、n1>0、n2>0、およびn1≦n2である。
図5〜15に関連した以下の説明は、並列マシン内に、制限された入次数および/または出次数をもつオートマトンを実装する実施形態例に関する。図5〜図9に関連した説明は、数量化を実装するための並列マシン例に関し、また、図10〜図14に関連した説明は、数量化を実装する並列マシンをプログラムするための機械コードを生成するコンパイラ例に関する。
・k=1:v0−>vq−1
・k=2:v0−>vq−2−>vq−1
・k=3:v0−>vq−3−>vq−2−>vq−1
・.....
・k=q−1:v0−>v1−>v2−>...−>vq−2−>vq−1
・k=1:v0−>vp−1
・k=2:v0−>v1−>vp−1
・k=3:v0−>v1−>v2−>vp−1
・.....
・k=q−1:v0−>v1−>v2−>...−>vp−2−>vp−1
q k=x(q−1),0<=x<=p−2
0 k=(p−1)(q−1)+1
1 その他
である。
0 k=0
1 k=x(q−1)+1,0<=x<=p−2
p k=(p−1)(q−1)+1
2 その他
である。
・k=1:v0−>v(p−1)(q−1)+1
・k=2:v0−>vq−1−>v(p−1)(q−1)+1
・k=3:v0−>vq−2−>vq−1−>v(p−1)(q−1)+1
・.....
・k=q:v0−>v1−>v2−>...−>vq−1−>v(p−1)(q−1)+1
・k=q+1:v0−>v1−>v2−>...−>vq−1−>v2q−2−>v(p−1)(q−1)+1
・k=q+2:v0−>v1−>v2−>...−>vq−1−>v2q−1−>v2q−2−>v(p−1)(q−1)+1
・k=q+3:v0−>v1−>v2−>...−>vq−1−>v2q−2−>vq−1−>v2q−2−>v(p−1)(q−1)+1
・.....
・k=2q:v0−>v1−>v2−>...−>vq−1−>vq−>vq+1−>...−>v2q−2−>v(p−1)(q−1)+1
例1は、数量化をオートマトンに変換することを含む、コンピュータ実装方法を含み、変換することは、オートマトンの入次数を制御するように数量化を展開すること;および、オートマトンを、対象装置に対応する機械コードに変換することを含む。
Claims (48)
- 数量化をオートマトンに変換することであって、変換することが、前記オートマトンの入次数を制御するように前記数量化を展開することを含む、数量化をオートマトンに変換することと、
前記オートマトンを、対象装置に対応する機械コードに変換することと
を含むコンピュータ実装方法。 - 式を、前記数量化を含む、言語固有でない表現に解析すること、をさらに含む、請求項1に記載のコンピュータ実装方法。
- 式を、言語固有でない表現に解析することが、正規表現を構文木に解析することを含む、請求項2に記載のコンピュータ実装方法。
- 変換することが、前記数量化に対する繰返し式が空値可能である場合、前記数量化を、ゼロ回一致し得る前記繰返し式の空値不能形式を有する数量化として展開することを含む、請求項1に記載のコンピュータ実装方法。
- 前記オートマトンを機械コードに変換することが、前記オートマトンを、並列マシンをプログラムするように構成されたイメージに変換することを含む、請求項1に記載のコンピュータ実装方法。
- 前記イメージを公開すること、をさらに含む、請求項5に記載のコンピュータ実装方法。
- 前記オートマトンの入次数を制御するように前記数量化を展開することが、入次数制限に応じて、前記数量化を展開することを含む、請求項1に記載のコンピュータ実装方法。
- 前記入次数制限が、前記オートマトンの状態への遷移数に関する制限を含む、請求項7に記載のコンピュータ実装方法。
- 前記オートマトンの入次数を制御するように前記数量化を展開することが、前記対象装置の入次数制約に基づいて展開することを含む、請求項1に記載のコンピュータ実装方法。
- 前記数量化が正規表現である、請求項1に記載のコンピュータ実装方法。
- 前記オートマトンの入次数を制御するように前記数量化を展開することが、閾値に基づいて前記オートマトンの入次数を制御するように前記数量化を展開することを含む、請求項1に記載のコンピュータ実装方法。
- 前記閾値が、前記並列マシンのハードウェア制限に基づく、請求項11に記載のコンピュータ実装方法。
- 命令を含むコンピュータ可読媒体であって、
前記命令が、前記コンピュータによって実行されるときに、前記コンピュータに:
数量化をオートマトンに変換することであって、変換することが、前記オートマトンの出次数を制御するように前記数量化を展開することを含む、数量化をオートマトンに変換することと、
前記オートマトンを、対象装置に対応する機械コードに変換することと
を含む動作を実行させる、
コンピュータ可読媒体。 - 展開することが、前記オートマトンの各状態に対する前記出遷移を閾値数未満に制限することを含む、請求項13に記載のコンピュータ可読媒体。
- 展開することが、前記オートマトンの各状態に対する出遷移を最小限にすることを含む、請求項13に記載のコンピュータ可読媒体。
- 変換することが、前記数量化に対する繰返し式が空値可能である場合、前記数量化を、ゼロ回一致し得る前記繰返し式の空値不能形式を有する数量化として展開することを含む、請求項13に記載のコンピュータ可読媒体。
- 変換することが、
前記数量化が単一のある個数のループと一致し得る場合、前記数量化を、連続的にリンクされた前記単一のある個数に等しい、いくつかの式を表す状態を有するオートマトンを形成するように展開することを含み、前記式が、前記数量化に対する繰返し式に対応する、
請求項13に記載のコンピュータ可読媒体。 - 前記数量化が複数のある個数のループと一致し得る場合、前記複数のある個数のループが、第1の数のループ、n1、および第2の数のループ、n2を含み、前記数量化を展開することが:
前記数量化を、n1−1個のループと一致し得る第1の数量化および、1〜n2−n1+1個までのループと一致し得る第2の数量化に分割することを含む、
請求項13に記載のコンピュータ可読媒体。 - 前記命令が、前記コンピュータに:
前記イメージを並列マシン上にロードすること
を含む動作を実行させる、請求項13に記載のコンピュータ可読媒体。 - 前記命令が、前記コンピュータに:
前記イメージを、コンピュータ可読媒体上に格納すること
を含む動作を実行させる、請求項13に記載のコンピュータ可読媒体。 - コンピュータであって、
ソフトウェアがその上に格納されたメモリと、
前記メモリに通信的に結合されたプロセッサであって、前記ソフトウェアが、前記プロセッサによって実行されるとき、前記プロセッサに:
数量化をオートマトンに変換することであって、変換することが、前記数量化を、前記オートマトンの入次数または出次数を制御するように展開することを含む、数量化をオートマトンに変換することと、
前記オートマトンを、対象装置に対応する機械コードに変換することと
をさせる、プロセッサと
を備えるコンピュータ。 - 前記ソフトウェアが、前記プロセッサに、前記オートマトン内で入遷移を出遷移に対してトレードオフすることにより、前記入次数および出次数を制御させる、請求項21に記載のコンピュータ。
- 各状態に対する前記入遷移が、展開時に閾値数未満に制限される、請求項22に記載のコンピュータ。
- 前記入次数が、前記出次数の割合に制限される、請求項22に記載のコンピュータ。
- 前記オートマトンの状態に対する入遷移の閾値に達するまで、前記入次数が、前記出次数の前記割合に制限される、請求項24に記載のコンピュータ。
- 数量化をオートマトンに変換することであって、変換することが、前記オートマトンの入次数または出次数を制御するように前記数量化を展開することを含む、数量化をオートマトンに変換することと、
前記オートマトンを、対象装置に対応する機械コードに変換することと
を行うように構成されたコンピュータ
を備えるシステム。 - 前記機械コードが、並列マシンをプログラムするように構成されたイメージを含み、
前記コンピュータに通信的に結合され、かつ前記イメージを並列マシン上にロードするように構成された装置を
さらに含む、請求項26に記載のシステム。 - 前記オートマトンの入次数を制御するように前記数量化を展開することが、入次数制限に応じて前記数量化を展開することを含む、請求項26に記載のシステム。
- 前記入次数制限が、前記オートマトンの状態への遷移数に関する制限を含む、請求項28に記載のシステム。
- 前記オートマトンの入次数を制御するように前記数量化を展開することが、前記対象装置の入次数制約に基づいて展開することを含む、請求項26に記載のシステム。
- 前記オートマトンの入次数を制御するように前記数量化を展開することが、閾値に基づいて前記オートマトンの入次数を制御するように前記数量化を展開することを含む、請求項26に記載のシステム。
- 前記閾値が、前記並列マシンのハードウェア制限に基づく、請求項31に記載のシステム。
- 請求項1の前記プロセスによって生成されたイメージによってプログラム化された並列マシン。
- 数量化をオートマトンに変換することであって、変換することが、前記オートマトンの出次数を制御するように前記数量化を展開することを含む、数量化をオートマトンに変換することと、
前記オートマトンを、対象装置に対応する機械コードに変換することと
を含むコンピュータ実装方法。 - 正規表現を構文木に解析すること、をさらに含む、請求項34に記載のコンピュータ実装方法。
- 前記オートマトンを機械コードに変換することが、前記オートマトンを、並列マシンをプログラムするように構成されたイメージに変換することを含む、請求項34に記載のコンピュータ実装方法。
- 前記イメージを公開すること、をさらに含む、請求項36に記載のコンピュータ実装方法。
- 前記オートマトンの出次数を制御するように前記数量化を展開することが、出次数制限に応じて前記数量化を展開することを含む、請求項34に記載のコンピュータ実装方法。
- 前記出次数制限が、前記オートマトンの状態からの遷移数に関する制限を含む、請求項38に記載のコンピュータ実装方法。
- 前記オートマトンの出次数を制御するように前記数量化を展開することが、前記対象装置の出次数制約に基づいて展開することを含む、請求項34に記載のコンピュータ実装方法。
- 前記オートマトンの出次数を制御するように数量化を展開することが、閾値に基づいて前記オートマトンの出次数を制御するように前記数量化を展開することを含む、請求項34に記載のコンピュータ実装方法。
- 前記閾値が、前記並列マシンのハードウェア制限に基づく、請求項41に記載のコンピュータ実装方法。
- 命令を含むコンピュータ可読媒体であって、
前記命令が、前記コンピュータによって実行されるときに、前記コンピュータに:
数量化をオートマトンに変換することであって、変換することが、前記オートマトンの入次数を制御するように前記数量化を展開することを含む、数量化をオートマトンに変換することと、
前記オートマトンを、対象装置に対応する機械コードに変換することと
を含む動作を実行させる、
コンピュータ可読媒体。 - 展開することが、前記オートマトンの各状態に対する入遷移を閾値数未満に制限することを含む、請求項43に記載のコンピュータ可読媒体。
- 展開することが、前記オートマトンの各状態に対する入遷移を最小限にすることを含む、請求項43に記載のコンピュータ可読媒体。
- 変換することが、前記数量化に対する繰返し式が空値可能である場合、前記数量化を、ゼロ回一致し得る前記繰返し式の空値不能形式を有する数量化として、展開することを含む、請求項43に記載のコンピュータ可読媒体。
- 変換することが、
前記数量化が単一のある個数のループと一致し得る場合、連続的にリンクされた前記単一のある個数に等しい、いくつかの式を表す状態を有するオートマトンを形成するように前記数量化を展開することを含み、前記式が、前記数量化に対する繰返し式に対応する、
請求項43に記載のコンピュータ可読媒体。 - 前記数量化が複数のある個数のループと一致し得る場合、前記複数のある個数のループが、第1の数のループ、n1、および第2の数のループ、n2を含み、前記数量化を展開することが:
前記数量化を、n1−1個のループと一致し得る第1の数量化および、1〜n2−n1+1個までのループと一致し得る第2の数量化に分割することを含む、
請求項43に記載のコンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161436051P | 2011-01-25 | 2011-01-25 | |
US61/436,051 | 2011-01-25 | ||
PCT/US2012/022441 WO2012103148A2 (en) | 2011-01-25 | 2012-01-24 | Unrolling quantifications to control in-degree and/or out degree of automaton |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014506693A true JP2014506693A (ja) | 2014-03-17 |
JP2014506693A5 JP2014506693A5 (ja) | 2015-08-20 |
JP5857072B2 JP5857072B2 (ja) | 2016-02-10 |
Family
ID=46545131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013550671A Active JP5857072B2 (ja) | 2011-01-25 | 2012-01-24 | オートマトンの入次数および/または出次数を制御するための量化子の展開 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8726256B2 (ja) |
EP (1) | EP2668577B1 (ja) |
JP (1) | JP5857072B2 (ja) |
KR (1) | KR101607736B1 (ja) |
CN (1) | CN103443767B (ja) |
TW (1) | TWI502501B (ja) |
WO (1) | WO2012103148A2 (ja) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938590B2 (en) * | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
US8209521B2 (en) | 2008-10-18 | 2012-06-26 | Micron Technology, Inc. | Methods of indirect register access including automatic modification of a directly accessible address register |
US7970964B2 (en) | 2008-11-05 | 2011-06-28 | Micron Technology, Inc. | Methods and systems to accomplish variable width data input |
US7917684B2 (en) * | 2008-11-05 | 2011-03-29 | Micron Technology, Inc. | Bus translator |
US8402188B2 (en) | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
US9164945B2 (en) | 2008-12-01 | 2015-10-20 | Micron Technology, Inc. | Devices, systems, and methods to synchronize parallel processing of a single data stream |
US9348784B2 (en) | 2008-12-01 | 2016-05-24 | Micron Technology, Inc. | Systems and methods for managing endian mode of a device |
US8140780B2 (en) | 2008-12-31 | 2012-03-20 | Micron Technology, Inc. | Systems, methods, and devices for configuring a device |
US8214672B2 (en) | 2009-01-07 | 2012-07-03 | Micron Technology, Inc. | Method and systems for power consumption management of a pattern-recognition processor |
US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
US8281395B2 (en) | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
US9836555B2 (en) * | 2009-06-26 | 2017-12-05 | Micron Technology, Inc. | Methods and devices for saving and/or restoring a state of a pattern-recognition processor |
US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
US9501705B2 (en) | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
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 |
US8726253B2 (en) | 2011-01-25 | 2014-05-13 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
EP2668577B1 (en) | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
JP5763784B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 要素利用のための状態のグループ化 |
US8648621B2 (en) | 2011-12-15 | 2014-02-11 | Micron Technology, Inc. | Counter operation in a state machine lattice |
US9443156B2 (en) | 2011-12-15 | 2016-09-13 | Micron Technology, Inc. | Methods and systems for data analysis in a state machine |
US8680888B2 (en) | 2011-12-15 | 2014-03-25 | Micron Technologies, Inc. | Methods and systems for routing in a state machine |
US8782624B2 (en) | 2011-12-15 | 2014-07-15 | Micron Technology, Inc. | Methods and systems for detection in a state machine |
US8593175B2 (en) | 2011-12-15 | 2013-11-26 | Micron Technology, Inc. | Boolean logic in a state machine lattice |
US20130275709A1 (en) | 2012-04-12 | 2013-10-17 | Micron Technology, Inc. | Methods for reading data from a storage buffer including delaying activation of a column select |
US9389841B2 (en) * | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
US9524248B2 (en) | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US9235798B2 (en) | 2012-07-18 | 2016-01-12 | Micron Technology, Inc. | Methods and systems for handling data received by a state machine engine |
US9304968B2 (en) | 2012-07-18 | 2016-04-05 | Micron Technology, Inc. | Methods and devices for programming a state machine engine |
US9063532B2 (en) | 2012-08-31 | 2015-06-23 | Micron Technology, Inc. | Instruction insertion in state machine engines |
US9075428B2 (en) | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for state machine engines |
US9501131B2 (en) | 2012-08-31 | 2016-11-22 | Micron Technology, Inc. | Methods and systems for power management in a pattern recognition processing system |
US9268881B2 (en) | 2012-10-19 | 2016-02-23 | Intel Corporation | Child state pre-fetch in NFAs |
US9747194B2 (en) * | 2012-10-30 | 2017-08-29 | Ebay Inc. | Systems and methods to maintain consistency between software specification and code |
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 |
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 |
US9268570B2 (en) | 2013-01-23 | 2016-02-23 | Intel Corporation | DFA compression and execution |
US9448965B2 (en) | 2013-03-15 | 2016-09-20 | Micron Technology, Inc. | Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine |
US9703574B2 (en) | 2013-03-15 | 2017-07-11 | Micron Technology, Inc. | Overflow detection and correction in state machine engines |
US9489215B2 (en) * | 2013-08-01 | 2016-11-08 | Dell Software Inc. | Managing an expression-based DFA construction process |
US10229104B2 (en) | 2013-08-01 | 2019-03-12 | Sonicwall Inc. | Efficient DFA generation for non-matching characters and character classes in regular expressions |
WO2016109571A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Devices for time division multiplexing of state machine engine signals |
US11366675B2 (en) | 2014-12-30 | 2022-06-21 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
WO2016109570A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Systems and devices for accessing a state machine |
US10846103B2 (en) | 2015-10-06 | 2020-11-24 | Micron Technology, Inc. | Methods and systems for representing processing resources |
US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
US10977309B2 (en) | 2015-10-06 | 2021-04-13 | Micron Technology, Inc. | Methods and systems for creating networks |
US10146555B2 (en) | 2016-07-21 | 2018-12-04 | Micron Technology, Inc. | Adaptive routing to avoid non-repairable memory and logic defects on automata processor |
US10019311B2 (en) | 2016-09-29 | 2018-07-10 | Micron Technology, Inc. | Validation of a symbol response memory |
US10268602B2 (en) | 2016-09-29 | 2019-04-23 | Micron Technology, Inc. | System and method for individual addressing |
US10929764B2 (en) | 2016-10-20 | 2021-02-23 | Micron Technology, Inc. | Boolean satisfiability |
US10592450B2 (en) | 2016-10-20 | 2020-03-17 | Micron Technology, Inc. | Custom compute cores in integrated circuit devices |
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 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005353061A (ja) * | 2004-06-07 | 2005-12-22 | Ip Flex Kk | ハードウェア情報を生成する方法 |
JP2009093599A (ja) * | 2007-10-12 | 2009-04-30 | Nec Corp | 文字列照合回路 |
WO2010018710A1 (ja) * | 2008-08-13 | 2010-02-18 | 日本電気株式会社 | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム |
US20100185647A1 (en) * | 2009-01-12 | 2010-07-22 | Micron Technology, Inc. | Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine |
Family Cites Families (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5081608A (en) | 1988-04-18 | 1992-01-14 | Matsushita Electric Industrial Co., Ltd. | Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields |
JP3130326B2 (ja) | 1991-03-20 | 2001-01-31 | 富士通株式会社 | 階層ネットワーク構成演算素子 |
US5586266A (en) | 1993-10-15 | 1996-12-17 | International Business Machines Corporation | System and method for adaptive, active monitoring of a serial data stream having a characteristic pattern |
US5537580A (en) | 1994-12-21 | 1996-07-16 | Vlsi Technology, Inc. | Integrated circuit fabrication using state machine extraction from behavioral hardware description language |
US5831853A (en) | 1995-06-07 | 1998-11-03 | Xerox Corporation | Automatic construction of digital controllers/device drivers for electro-mechanical systems using component models |
US5729678A (en) | 1996-03-04 | 1998-03-17 | Ag Communication Systems Corporation | Bus monitor system |
KR20000068979A (ko) | 1996-11-14 | 2000-11-25 | 존스 웨인 에이. | 어플리케이션 프로그램을 위한 다이나믹 오브젝트를 구성하는 범용 소프트웨어 상태 머신 및 방법 |
US5966534A (en) | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US6748588B1 (en) | 1999-03-31 | 2004-06-08 | Microsoft Corporation | One-pass greedy-pattern-matching finite-state-machine code generation |
US6262594B1 (en) | 1999-11-05 | 2001-07-17 | Ati International, Srl | Apparatus and method for configurable use of groups of pads of a system on chip |
US6564336B1 (en) * | 1999-12-29 | 2003-05-13 | General Electric Company | Fault tolerant database for picture archiving and communication systems |
US7140018B1 (en) | 2000-06-20 | 2006-11-21 | International Business Machines Corporation | Method of using a distinct flow of computational control as a reusable abstract data object |
US6832378B1 (en) | 2000-06-20 | 2004-12-14 | International Business Machines Corporation | Parallel software processing system |
US6507903B1 (en) | 2000-06-20 | 2003-01-14 | International Business Machines Corporation | High performance non-blocking parallel storage manager for parallel software executing on coordinates |
GB2367917A (en) | 2000-10-12 | 2002-04-17 | Qas Systems Ltd | Retrieving data representing a postal address from a database of postal addresses using a trie structure |
US7020850B2 (en) | 2001-05-02 | 2006-03-28 | The Mathworks, Inc. | Event-based temporal logic |
JP4846924B2 (ja) | 2001-05-31 | 2011-12-28 | キヤノン株式会社 | パターン認識装置 |
US7546354B1 (en) | 2001-07-06 | 2009-06-09 | Emc Corporation | Dynamic network based storage with high availability |
JP2003044184A (ja) | 2001-08-01 | 2003-02-14 | Canon Inc | データ処理装置及び電力制御方法 |
US7170891B2 (en) | 2001-08-30 | 2007-01-30 | Messenger Terabit Networks, Inc. | High speed data classification system |
US20030066050A1 (en) | 2001-09-26 | 2003-04-03 | Wang Douglas W. | Method and system for programming devices using finite state machine descriptions |
US6957371B2 (en) | 2001-12-04 | 2005-10-18 | Intellitech Corporation | Method and apparatus for embedded built-in self-test (BIST) of electronic circuits and systems |
US6785872B2 (en) | 2002-01-22 | 2004-08-31 | Hewlett-Packard Development Company, L.P. | Algorithm-to-hardware system and method for creating a digital circuit |
US20040127207A1 (en) | 2002-09-25 | 2004-07-01 | Interdigital Technology Corporation | Programmable radio interface |
US7124392B2 (en) | 2002-09-27 | 2006-10-17 | Stmicroelectronics, Pvt. Ltd. | Mapping of programmable logic devices |
US7171561B2 (en) | 2002-10-17 | 2007-01-30 | The United States Of America As Represented By The Secretary Of The Air Force | Method and apparatus for detecting and extracting fileprints |
CN1894559A (zh) * | 2003-03-17 | 2007-01-10 | 索尼电子有限公司 | 执行使命引擎的方法和装置 |
JP4620944B2 (ja) | 2003-10-16 | 2011-01-26 | キヤノン株式会社 | 積和演算回路及びその方法 |
US7487542B2 (en) | 2004-01-14 | 2009-02-03 | International Business Machines Corporation | Intrusion detection using a network processor and a parallel pattern detection engine |
WO2005119531A2 (en) | 2004-06-01 | 2005-12-15 | Tera Systems, Inc. | Rule-based design consultant and method for integrated circuit design |
WO2006013428A1 (en) | 2004-07-26 | 2006-02-09 | Nokia Corporation, | System and method for searching for content stored by one or more media servers |
US8135652B2 (en) | 2004-10-29 | 2012-03-13 | Nec Laboratories America, Inc. | Parallel support vector method and apparatus |
EP1669886A1 (fr) * | 2004-12-08 | 2006-06-14 | France Telecom | Construction d'un automate compilant des règles de transcription graphème/phonème pour un phonétiseur |
US7392229B2 (en) | 2005-02-12 | 2008-06-24 | Curtis L. Harris | General purpose set theoretic processor |
US7761851B2 (en) | 2005-05-31 | 2010-07-20 | International Business Machines Corporation | Computer method and system for integrating software development and deployment |
US7805301B2 (en) | 2005-07-01 | 2010-09-28 | Microsoft Corporation | Covariance estimation for pattern recognition |
JP4041158B2 (ja) | 2005-11-11 | 2008-01-30 | 松下電器産業株式会社 | 対話支援装置 |
JP4528728B2 (ja) | 2006-01-31 | 2010-08-18 | 株式会社東芝 | デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム |
US7427871B2 (en) | 2006-06-21 | 2008-09-23 | Element Cxi, Llc | Fault tolerant integrated circuit architecture |
US8065249B1 (en) | 2006-10-13 | 2011-11-22 | Harris Curtis L | GPSTP with enhanced aggregation functionality |
US7774286B1 (en) | 2006-10-24 | 2010-08-10 | Harris Curtis L | GPSTP with multiple thread functionality |
US20080168013A1 (en) | 2006-12-05 | 2008-07-10 | Paul Cadaret | Scalable pattern recognition system |
US8656381B2 (en) | 2006-12-07 | 2014-02-18 | International Business Machines Corporation | Presenting machine instructions in a machine-independent tree form suitable for post-link optimizations |
US7899978B2 (en) | 2006-12-08 | 2011-03-01 | Pandya Ashish A | Dynamic programmable intelligent search memory |
CN101013452A (zh) * | 2007-02-05 | 2007-08-08 | 江苏大学 | 一种符号化的模型检测方法 |
CN101360088B (zh) | 2007-07-30 | 2011-09-14 | 华为技术有限公司 | 正则表达式编译、匹配系统及编译、匹配方法 |
US8561037B2 (en) | 2007-08-29 | 2013-10-15 | Convey Computer | Compiler for generating an executable comprising instructions for a plurality of different instruction sets |
CN101499065B (zh) | 2008-02-01 | 2011-11-02 | 华为技术有限公司 | 基于fa的表项压缩方法及装置、表项匹配方法及装置 |
CN101339501B (zh) * | 2008-08-12 | 2012-07-18 | 北京航空航天大学 | 基于有向图的ws-bpel控制环路检测方法 |
US8095494B2 (en) | 2008-10-16 | 2012-01-10 | International Business Machines Corporation | Rules-based cross-FSM transition triggering |
US8938590B2 (en) | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
US8209521B2 (en) | 2008-10-18 | 2012-06-26 | Micron Technology, Inc. | Methods of indirect register access including automatic modification of a directly accessible address register |
US8805686B2 (en) | 2008-10-31 | 2014-08-12 | Soundbound, Inc. | Melodis crystal decoder method and device for searching an utterance by accessing a dictionary divided among multiple parallel processors |
US7917684B2 (en) | 2008-11-05 | 2011-03-29 | Micron Technology, Inc. | Bus translator |
US7970964B2 (en) | 2008-11-05 | 2011-06-28 | Micron Technology, Inc. | Methods and systems to accomplish variable width data input |
US9639493B2 (en) | 2008-11-05 | 2017-05-02 | Micron Technology, Inc. | Pattern-recognition processor with results buffer |
US20100118425A1 (en) | 2008-11-11 | 2010-05-13 | Menachem Rafaelof | Disturbance rejection in a servo control loop using pressure-based disc mode sensor |
US9348784B2 (en) | 2008-12-01 | 2016-05-24 | Micron Technology, Inc. | Systems and methods for managing endian mode of a device |
US10007486B2 (en) | 2008-12-01 | 2018-06-26 | Micron Technology, Inc. | Systems and methods to enable identification of different data sets |
US9164945B2 (en) | 2008-12-01 | 2015-10-20 | Micron Technology, Inc. | Devices, systems, and methods to synchronize parallel processing of a single data stream |
US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
US8140780B2 (en) | 2008-12-31 | 2012-03-20 | Micron Technology, Inc. | Systems, methods, and devices for configuring a device |
TWI395103B (zh) | 2008-12-31 | 2013-05-01 | C Media Electronics Inc | 自動執行訊號處理方法與具有該自動執行功能之裝置 |
US8281395B2 (en) | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
US8214672B2 (en) | 2009-01-07 | 2012-07-03 | Micron Technology, Inc. | Method and systems for power consumption management of a pattern-recognition processor |
US20100325633A1 (en) | 2009-06-19 | 2010-12-23 | Microsoft Corporation | Searching Regular Expressions With Virtualized Massively Parallel Programmable Hardware |
US9836555B2 (en) | 2009-06-26 | 2017-12-05 | Micron Technology, Inc. | Methods and devices for saving and/or restoring a state of a pattern-recognition processor |
US9501705B2 (en) | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
US8489534B2 (en) | 2009-12-15 | 2013-07-16 | Paul D. Dlugosch | Adaptive content inspection |
US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
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 |
JP5763784B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 要素利用のための状態のグループ化 |
US8726253B2 (en) * | 2011-01-25 | 2014-05-13 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
EP2668577B1 (en) | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
-
2012
- 2012-01-24 EP EP12739652.1A patent/EP2668577B1/en active Active
- 2012-01-24 JP JP2013550671A patent/JP5857072B2/ja active Active
- 2012-01-24 US US13/357,505 patent/US8726256B2/en active Active
- 2012-01-24 WO PCT/US2012/022441 patent/WO2012103148A2/en active Application Filing
- 2012-01-24 CN CN201280013925.9A patent/CN103443767B/zh active Active
- 2012-01-24 KR KR1020137022037A patent/KR101607736B1/ko active IP Right Grant
- 2012-01-30 TW TW101102988A patent/TWI502501B/zh active
-
2014
- 2014-04-14 US US14/252,600 patent/US9298437B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005353061A (ja) * | 2004-06-07 | 2005-12-22 | Ip Flex Kk | ハードウェア情報を生成する方法 |
JP2009093599A (ja) * | 2007-10-12 | 2009-04-30 | Nec Corp | 文字列照合回路 |
WO2010018710A1 (ja) * | 2008-08-13 | 2010-02-18 | 日本電気株式会社 | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム |
US20100185647A1 (en) * | 2009-01-12 | 2010-07-22 | Micron Technology, Inc. | Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine |
Non-Patent Citations (2)
Title |
---|
CSNJ201410033024; 新屋良磨、河野真治: '動的なコード生成を用いた正規表現マッチャの実装' 情報処理学会:シンポジウム>プログラミング・シンポジウム>冬>52回[online]第52回プログラ , 20110107, p.173-180, 一般社団法人情報処理学会 * |
JPN6015011307; 新屋良磨、河野真治: '動的なコード生成を用いた正規表現マッチャの実装' 情報処理学会:シンポジウム>プログラミング・シンポジウム>冬>52回[online]第52回プログラ , 20110107, p.173-180, 一般社団法人情報処理学会 * |
Also Published As
Publication number | Publication date |
---|---|
EP2668577B1 (en) | 2019-08-14 |
US8726256B2 (en) | 2014-05-13 |
US20140229926A1 (en) | 2014-08-14 |
US20120192165A1 (en) | 2012-07-26 |
EP2668577A4 (en) | 2015-11-18 |
US9298437B2 (en) | 2016-03-29 |
JP5857072B2 (ja) | 2016-02-10 |
KR101607736B1 (ko) | 2016-03-30 |
WO2012103148A3 (en) | 2012-11-15 |
KR20140018881A (ko) | 2014-02-13 |
CN103443767A (zh) | 2013-12-11 |
TW201246071A (en) | 2012-11-16 |
CN103443767B (zh) | 2016-01-20 |
EP2668577A2 (en) | 2013-12-04 |
WO2012103148A2 (en) | 2012-08-02 |
TWI502501B (zh) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5857072B2 (ja) | オートマトンの入次数および/または出次数を制御するための量化子の展開 | |
JP2014506693A5 (ja) | ||
JP5763783B2 (ja) | 正規表現をコンパイルするための方法および装置 | |
JP5848778B2 (ja) | Fsmを実装するための専用要素の利用 | |
JP5763784B2 (ja) | 要素利用のための状態のグループ化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150122 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150122 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150206 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20150206 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20150213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150324 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150624 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20150624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150721 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20151016 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151016 |
|
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: 20151117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5857072 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |