JP2014508996A - 要素利用のための状態のグループ化 - Google Patents
要素利用のための状態のグループ化 Download PDFInfo
- Publication number
- JP2014508996A JP2014508996A JP2013550672A JP2013550672A JP2014508996A JP 2014508996 A JP2014508996 A JP 2014508996A JP 2013550672 A JP2013550672 A JP 2013550672A JP 2013550672 A JP2013550672 A JP 2013550672A JP 2014508996 A JP2014508996 A JP 2014508996A
- Authority
- JP
- Japan
- Prior art keywords
- state
- automaton
- instance
- states
- instances
- 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
- 238000000034 method Methods 0.000 claims abstract description 42
- 230000015654 memory Effects 0.000 claims description 40
- 238000013461 design Methods 0.000 claims description 26
- 239000004020 conductor Substances 0.000 claims description 24
- 238000013507 mapping Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 description 33
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 238000001514 detection method Methods 0.000 description 14
- 230000014509 gene expression Effects 0.000 description 13
- 230000004044 response Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 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
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012797 qualification 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/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/31—Design entry, e.g. editors specifically adapted for circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/323—Translation or migration, e.g. logic to logic, hardware description language [HDL] translation or netlist translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Devices For Executing Special Programs (AREA)
- Logic Circuits (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
【選択図】図6
Description
本特許出願は、2011年1月25日に出願された、「STATE GROUPING FOR ELEMENT UTILIZATION」という名称の米国仮特許出願整理番号61/436,075に対する優先権の利益を主張し、これによって、参照によりその全体として本明細書に組み込まれる。
例1は、ソースコードから並列マシンをプログラムするように構成されたイメージを生成するためのコンピュータ実装方法を含む。本方法は、ソースコードを、複数の相互接続された状態を含むオートマトンに変換すること;そのオートマトンを、オートマトンの状態に対応するインスタンスを含むネットリストに変換することであって、そのインスタンスが並列マシンのハードウェア要素に対応し、オートマトンをネットリストに変換することが、並列マシンの物理的設計に基づいて状態を共にグループ化することを含む、オートマトンをネットリストに変換すること;および、そのネットリストをイメージに変換することを含む。
Claims (38)
- ソースコードから並列マシンをプログラムするように構成されたイメージを生成するためのコンピュータ実装方法であって、
ソースコードを、複数の相互接続された状態を含むオートマトンに変換することと、
前記オートマトンを、前記オートマトンの状態に対応するインスタンスを含むネットリストに変換することであって、前記インスタンスが前記並列マシンのハードウェア要素に対応し、前記オートマトンをネットリストに変換することが、前記並列マシンの物理的設計に基づいて状態を共にグループ化することを含む、前記オートマトンをネットリストに変換することと、
前記ネットリストを前記イメージに変換することと
を含む方法。 - 前記インスタンスが、状態機械要素(SME)ハードウェア要素に対応するSMEインスタンスおよび、SMEのグループを含むハードウェア要素に対応するSMEグループインスタンスを含み、かつ、グループ化することが、状態をSMEグループインスタンスにグループ化することを含む、請求項1に記載の方法。
- 前記物理的設計が、SMEのグループを含む前記ハードウェア要素の物理的設計を含む、請求項2に記載の方法。
- 前記物理的設計が、SMEのグループを含む前記ハードウェア要素内の前記SMEに関する入力制約または出力制約のうちの1つを含む、請求項3に記載の方法。
- 前記物理的設計が、SMEのグループを含む前記ハードウェア要素内の前記SMEが出力を共有するという制限を含む、請求項4に記載の方法。
- SMEグループインスタンスが、2つのSMEインスタンスを含む2つのグループ(GOT)インスタンスを含み、かつ、前記物理的設計が、各GOT内の前記SMEが共通の出力に結合されていることを含む、請求項2に記載の方法。
- 前記オートマトンをネットリストに変換することが、
どの前記状態がGOTインスタンス内で共にグループ化できるかを判断することと、
前記判断に基づいて前記状態をペア形成することと
を含む、請求項6に記載の方法。 - 第1の状態または第2の状態のどちらも前記オートマトンの最終状態ではなく、かつ、前記第1の状態および前記第2の状態の一方が、前記第1の状態または前記第2の状態以外のどの状態も駆動しない場合に、前記第1の状態および前記第2の状態が、GOTインスタンス内で共にペア形成できる、請求項7に記載の方法。
- 第1の状態または第2の状態のどちらも前記オートマトンの最終状態ではなく、かつ、前記第1の状態および前記第2の状態の両方が、同じ外部状態を駆動する場合に、前記第1の状態および前記第2の状態が、GOTインスタンス内で共にペア形成できる、請求項7に記載の方法。
- 第1の状態および第2の状態の一方が前記オートマトンの最終状態であり、かつ、前記第1の状態および前記第2の状態の他方が、どの外部状態も駆動しない場合に、前記第1の状態および前記第2の状態が、GOTインスタンス内で共にペア形成できる、請求項7に記載の方法。
- 第1の状態および第2の状態の両方が前記オートマトンの最終状態であり、かつ、前記第1の状態および前記第2の状態の両方が、同じ外部状態を駆動する場合に、前記第1の状態および前記第2の状態が、GOTインスタンス内で共にペア形成できる、請求項7に記載の方法。
- どの前記状態がGOTインスタンス内で共にグループ化できるかを判断することが、グラフ理論を使用して、どの前記状態がGOTインスタンス内で共にグループ化できるかを判断することを含む、請求項7に記載の方法。
- グラフ理論を使用して、どの前記状態がGOTインスタンス内で共にグループ化できるかを判断することが、最大マッチングを識別するために、グラフ理論を使用して、どの前記状態がGOTインスタンス内で共にグループ化できるかを判断することを含む、請求項12に記載の方法。
- 前記イメージを公開することをさらに含む、
請求項1に記載の方法。 - 前記インスタンスが、汎用インスタンスおよび専用インスタンスを含み、前記汎用インスタンスが前記オートマトンの汎用状態に対応し、また、前記専用インスタンスが前記オートマトンの専用状態に対応する、請求項1に記載の方法。
- 前記汎用インスタンスに対応する前記ハードウェア要素が、状態機械要素(SME)および2つのグループ(GOT)を含み、かつ、前記専用インスタンスに対応する前記ハードウェア要素がカウンタおよび論理要素を含む、請求項15に記載の方法。
- 命令を含むコンピュータ可読媒体であって、前記コンピュータによって実行されるときに、前記コンピュータに、
ソースコードを、複数の相互接続された状態を含むオートマトンに変換することと、
前記オートマトンを、前記オートマトンの状態に対応するインスタンスを含むネットリストに変換することであって、前記インスタンスが前記並列マシンのハードウェア要素に対応し、前記オートマトンをネットリストに変換することが、前記並列マシンの物理的設計に基づいて状態を共にグループ化することを含む、前記オートマトンをネットリストに変換することと、
前記ネットリストを前記イメージに変換することと
を含む動作を実行させる、
コンピュータ可読媒体。 - 前記オートマトンが均質なオートマトンである、請求項17に記載のコンピュータ可読媒体。
- 前記オートマトンをネットリストに変換することが、前記オートマトンの前記状態の各々を、前記ハードウェア要素に対応するインスタンスにマッピングすることと、前記インスタンス間の接続性を決定することとを含む、請求項17に記載のコンピュータ可読媒体。
- 前記ネットリストが、前記ハードウェア要素間の導体を表す前記インスタンス間の複数の接続をさらに含む、請求項17に記載のコンピュータ可読媒体。
- 前記オートマトンをネットリストに変換することが、前記オートマトンを、開始状態を除いて、前記オートマトンの状態に対応するインスタンスを含むネットリストに変換することを含む、請求項17に記載のコンピュータ可読媒体。
- 前記命令が、前記コンピュータに、
前記ネットリストの前記インスタンスに対応する前記ハードウェア要素の前記並列マシン内の位置を決定すること
を含む動作を実行させる、請求項17に記載のコンピュータ可読媒体。 - 状態を共にグループ化することが、汎用要素のグループを含むハードウェア要素の物理的設計に基づいて、状態を共にグループ化することを含む、請求項22に記載のコンピュータ可読媒体。
- 前記命令が、前記コンピュータに、
前記並列マシンのどの導体が前記ハードウェア要素を接続するために使用されるかを決定することと、
前記並列マシンのプログラム可能スイッチに対する設定を決定することであって、前記プログラム可能スイッチが、前記ハードウェア要素を選択的に共に結合するように構成されている、プログラム可能スイッチに対する設定を決定することと
を含む動作を実行させる、請求項22に記載のコンピュータ可読媒体。 - ソフトウェアがその上に格納されたメモリと、
前記メモリに通信的に結合されたプロセッサであって、前記ソフトウェアが、前記プロセッサによって実行されるとき、前記プロセッサに、
ソースコードを、複数の相互接続された状態を含むオートマトンに変換することと、
前記オートマトンを、前記オートマトンの状態に対応するインスタンスを含むネットリストに変換することであって、前記インスタンスが前記並列マシンのハードウェア要素に対応し、前記インスタンスが、複数の第1のインスタンスおよび2つ以上の第1のインスタンスを含むグループインスタンスを含み、前記オートマトンをネットリストに変換することが、未使用の第1のインスタンスの数に基づいて、状態をグループインスタンス内に共にグループ化することを含む、前記オートマトンをネットリストに変換することと、
前記ネットリストを前記イメージに変換することと
をさせるプロセッサと
を含むコンピュータ。 - 前記グループインスタンスが2つのグループ(GOT)インスタンスを含み、かつ、状態をグループ化することが、前記ペア形成された状態がどの状態を駆動するかに応じて、状態をペア形成することを含む、請求項25に記載のコンピュータ。
- 未使用の第1のインスタンスの数に基づいて状態をグループインスタンス内にグループ化することが、
以下の条件:
第1の状態または第2の状態のどちらも前記オートマトン内の最終状態ではなく、かつ前記第1の状態および第2の状態の一方が、前記第1の状態または第2の状態以外のどの状態も駆動しないことと;
前記第1の状態または第2の状態のどちらも前記オートマトン内の最終状態ではなく、かつ前記第1の状態および前記第2の状態の両方が、同じ外部状態を駆動することと;
前記第1の状態または前記第2の状態のどちらかが最終状態であり、かつ最終状態ではない前記第1の状態または第2の状態が、前記第1の状態または第2の状態以外のどの状態も駆動しないことと;
前記第1の状態および前記第2の状態の両方が最終状態であり、かつ前記第1の状態および前記第2の状態の両方が、同じ外部状態を駆動することと
に基づいて、前記第1の状態および前記第2の状態がペア形成できるかどうかを判断することを含む、請求項26に記載のコンピュータ。 - 前記オートマトンをネットリストに変換することが、
前記状態をグラフとしてモデル化することであって、前記グラフのバーテックスが状態に対応し、かつ前記グラフのエッジが前記状態の可能なペア形成に対応する、前記状態をグラフとしてモデル化することと、
前記グラフに対して一致するバーテックスを決定することと、
前記一致するバーテックスに対応する状態をペア形成することと
を含む、請求項25に記載のコンピュータ。 - 前記オートマトンをネットリストに変換することが、
前記グラフに対して最大マッチングを決定すること
を含む、請求項28に記載のコンピュータ。 - 前記オートマトンをネットリストに変換することが、
一致するバーテックスに対応する状態の各セットをペア形成することと、
一致しないバーテックスに対応する各状態をGOTインスタンスにマッピングすることであって、前記GOTインスタンス内の1つのSMEインスタンスが使用されない、一致しないバーテックスに対応する各状態をGOTインスタンスにマッピングすることと
を含む、請求項29に記載のコンピュータ。 - システムであって、前記システムが、
コンピュータであって、
ソースコードを、複数の相互接続された状態を含むオートマトンに変換することと、
前記オートマトンを、前記オートマトンの状態に対応するインスタンスを含むネットリストに変換することであって、前記インスタンスが前記並列マシンのハードウェア要素に対応し、前記インスタンスが、複数の第1のインスタンスおよび2つ以上の第1のインスタンスを含むグループインスタンスを含み、前記オートマトンをネットリストに変換することが、未使用の第1のインスタンスの数に基づいて、状態をグループインスタンス内に共にグループ化することを含む、前記オートマトンをネットリストに変換することと、
前記ネットリストを前記イメージに変換することと
を行うように構成された、コンピュータと、
前記イメージを並列マシン上にロードするように構成された装置と
を含む、システム。 - 状態を共にグループ化することが、
前記ペア形成された状態がどの状態を駆動するかに応じて、状態をペア形成すること
を含む、請求項31に記載のシステム。 - 未使用の第1のインスタンスの数に基づいて、状態を共にグループインスタンス内にグループ化することが、
以下の条件:
第1の状態または第2の状態のどちらも前記オートマトン内の最終状態ではなく、かつ前記第1の状態および第2の状態の一方が、前記第1の状態または第2の状態以外のどの状態も駆動しないことと;
前記第1の状態または第2の状態のどちらも前記オートマトン内の最終状態ではなく、かつ前記第1の状態および前記第2の状態の両方が、同じ外部状態を駆動することと;
前記第1の状態または前記第2の状態のどちらかが最終状態であり、かつ最終状態ではない前記第1の状態または第2の状態が、前記第1の状態または第2の状態以外のどの状態も駆動しないことと;
前記第1の状態および前記第2の状態の両方が最終状態であり、かつ前記第1の状態および前記第2の状態の両方が、同じ外部状態を駆動することと
に基づいて、前記第1の状態および前記第2の状態がペア形成できるかどうかを判断することを含む、請求項31に記載のシステム。 - 未使用の第1のインスタンスの数に基づいて、状態を共にグループインスタンス内にグループ化することが、
前記状態をグラフとしてモデル化することであって、前記グラフのバーテックスが状態に対応し、かつ前記グラフのエッジが前記状態の可能なペア形成に対応する、前記状態をグラフとしてモデル化することと、
前記グラフに対して一致するバーテックスを決定することと、
前記一致するバーテックスに対応する状態をペア形成することと
を含む、請求項31に記載のシステム。 - 未使用の第1のインスタンスの数に基づいて、状態を共にグループインスタンス内にグループ化することが、
前記グラフに対して最大マッチングを決定すること
を含む、請求項34に記載のシステム。 - 未使用の第1のインスタンスの数に基づいて、状態を共にグループインスタンス内にグループ化することが、
一致するバーテックスに対応する状態の各セットをペア形成することと、
一致しないバーテックスに対応する各状態をGOTインスタンスにマッピングすることであって、前記GOTインスタンス内の1つのSMEインスタンスが使用されない、一致しないバーテックスに対応する各状態をGOTインスタンスにマッピングすることと
を含む、請求項35に記載のシステム。 - 前記装置が、状態の各ペアを、前記並列マシン内の2つのハードウェア要素のグループとして実装するように構成されている、請求項31に記載のシステム。
- 請求項1の前記プロセスによって生成されたイメージによってプログラム化された並列マシン。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161436075P | 2011-01-25 | 2011-01-25 | |
US61/436,075 | 2011-01-25 | ||
PCT/US2012/022444 WO2012103151A2 (en) | 2011-01-25 | 2012-01-24 | State grouping for element utilization |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014508996A true JP2014508996A (ja) | 2014-04-10 |
JP2014508996A5 JP2014508996A5 (ja) | 2015-03-19 |
JP5763784B2 JP5763784B2 (ja) | 2015-08-12 |
Family
ID=46545132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013550672A Active JP5763784B2 (ja) | 2011-01-25 | 2012-01-24 | 要素利用のための状態のグループ化 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8788991B2 (ja) |
EP (1) | EP2668576B1 (ja) |
JP (1) | JP5763784B2 (ja) |
KR (1) | KR101551045B1 (ja) |
CN (1) | CN103430148B (ja) |
TW (1) | TWI512625B (ja) |
WO (1) | WO2012103151A2 (ja) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8938590B2 (en) | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
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 |
US9348784B2 (en) | 2008-12-01 | 2016-05-24 | Micron Technology, Inc. | Systems and methods for managing endian mode of a device |
US9164945B2 (en) | 2008-12-01 | 2015-10-20 | Micron Technology, Inc. | Devices, systems, and methods to synchronize parallel processing of a single data stream |
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 |
US9501705B2 (en) * | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
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 |
KR101640295B1 (ko) | 2011-01-25 | 2016-07-15 | 마이크론 테크놀로지, 인크. | 정규 표현을 컴파일하기 위한 방법 및 장치 |
US8788991B2 (en) | 2011-01-25 | 2014-07-22 | Micron Technology, Inc. | State grouping for element utilization |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
JP5857072B2 (ja) | 2011-01-25 | 2016-02-10 | マイクロン テクノロジー, インク. | オートマトンの入次数および/または出次数を制御するための量化子の展開 |
US8593175B2 (en) | 2011-12-15 | 2013-11-26 | Micron Technology, Inc. | Boolean logic in a state machine lattice |
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 |
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 |
US9524248B2 (en) | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US9304968B2 (en) | 2012-07-18 | 2016-04-05 | Micron Technology, Inc. | Methods and devices for programming a state machine engine |
US9235798B2 (en) | 2012-07-18 | 2016-01-12 | Micron Technology, Inc. | Methods and systems for handling data received by a state machine engine |
US9389841B2 (en) | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
US9075428B2 (en) | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for state machine engines |
US9063532B2 (en) | 2012-08-31 | 2015-06-23 | Micron Technology, Inc. | Instruction insertion in 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 |
GB2511072A (en) * | 2013-02-22 | 2014-08-27 | Ibm | Non-deterministic finite state machine module for use in a regular expression matching system |
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 |
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 |
WO2016109571A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Devices for time division multiplexing of state machine engine signals |
US10846103B2 (en) | 2015-10-06 | 2020-11-24 | Micron Technology, Inc. | Methods and systems for representing processing resources |
US10977309B2 (en) | 2015-10-06 | 2021-04-13 | Micron Technology, Inc. | Methods and systems for creating networks |
US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
US10146555B2 (en) | 2016-07-21 | 2018-12-04 | Micron Technology, Inc. | Adaptive routing to avoid non-repairable memory and logic defects on automata processor |
US10268602B2 (en) | 2016-09-29 | 2019-04-23 | Micron Technology, Inc. | System and method for individual addressing |
US10019311B2 (en) | 2016-09-29 | 2018-07-10 | Micron Technology, Inc. | Validation of a symbol response memory |
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 |
US10481881B2 (en) * | 2017-06-22 | 2019-11-19 | Archeo Futurus, Inc. | Mapping a computer code to wires and gates |
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 |
DE102018100423A1 (de) * | 2018-01-10 | 2019-07-11 | Dspace Digital Signal Processing And Control Engineering Gmbh | Inkrementelles Generieren einer FPGA Implementierung mit Graphen-basierter Ähnlichkeitssuche |
TWI755112B (zh) * | 2020-10-23 | 2022-02-11 | 財團法人工業技術研究院 | 電腦程式碼之優化方法、優化系統及應用其之電子裝置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784298A (en) * | 1993-10-15 | 1998-07-21 | International Business Machines Corporation | Apparatus and method for using finite state machines (FSMs) to monitor a serial data stream for characteristic patterns |
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 |
US20030145304A1 (en) * | 2002-01-22 | 2003-07-31 | Carter Richard J. | Algorithm-to-hardware system and method for creating a digital circuit |
US20050268258A1 (en) * | 2004-06-01 | 2005-12-01 | Tera Systems, Inc. | Rule-based design consultant and method for integrated circuit design |
US20100325633A1 (en) * | 2009-06-19 | 2010-12-23 | Microsoft Corporation | Searching Regular Expressions With Virtualized Massively Parallel Programmable Hardware |
Family Cites Families (71)
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 | 富士通株式会社 | 階層ネットワーク構成演算素子 |
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 |
WO1998021651A1 (en) * | 1996-11-14 | 1998-05-22 | Alcatel Usa Sourcing, L.P. | Generic software state machine and method of constructing dynamic objects for an application program |
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 |
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 |
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 |
US20040127207A1 (en) | 2002-09-25 | 2004-07-01 | Interdigital Technology Corporation | Programmable radio interface |
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 |
US7464254B2 (en) * | 2003-01-09 | 2008-12-09 | Cisco Technology, Inc. | Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data |
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 |
US20050283743A1 (en) | 2004-06-07 | 2005-12-22 | Mulholland Philip J | Method for generating hardware information |
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 |
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 |
WO2007055181A1 (ja) | 2005-11-11 | 2007-05-18 | Matsushita Electric Industrial Co., Ltd. | 対話支援装置 |
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 |
US8055601B2 (en) | 2006-12-08 | 2011-11-08 | Pandya Ashish A | Compiler for compiling content search rules comprising a regular expression using a programmable intelligent search memory (PRISM) and vectors |
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 |
JP4957500B2 (ja) | 2007-10-12 | 2012-06-20 | 日本電気株式会社 | 文字列照合回路 |
CN101499065B (zh) | 2008-02-01 | 2011-11-02 | 华为技术有限公司 | 基于fa的表项压缩方法及装置、表项匹配方法及装置 |
CN101339501B (zh) | 2008-08-12 | 2012-07-18 | 北京航空航天大学 | 基于有向图的ws-bpel控制环路检测方法 |
WO2010018710A1 (ja) | 2008-08-13 | 2010-02-18 | 日本電気株式会社 | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム |
US8095494B2 (en) | 2008-10-16 | 2012-01-10 | International Business Machines Corporation | Rules-based cross-FSM transition triggering |
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 |
US8938590B2 (en) | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
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 |
US9639493B2 (en) | 2008-11-05 | 2017-05-02 | Micron Technology, Inc. | Pattern-recognition processor with results buffer |
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 |
US20100118425A1 (en) | 2008-11-11 | 2010-05-13 | Menachem Rafaelof | Disturbance rejection in a servo control loop using pressure-based disc mode sensor |
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 |
US9348784B2 (en) | 2008-12-01 | 2016-05-24 | Micron Technology, Inc. | Systems and methods for managing endian mode of a device |
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 |
US8214672B2 (en) | 2009-01-07 | 2012-07-03 | Micron Technology, Inc. | Method and systems for power consumption management of a pattern-recognition processor |
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 |
US8843523B2 (en) | 2009-01-12 | 2014-09-23 | Micron Technology, Inc. | Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine |
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 |
US8489534B2 (en) | 2009-12-15 | 2013-07-16 | Paul D. Dlugosch | Adaptive content inspection |
US9501705B2 (en) | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
US8766666B2 (en) | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US8788991B2 (en) | 2011-01-25 | 2014-07-22 | Micron Technology, Inc. | State grouping for element utilization |
KR101640295B1 (ko) | 2011-01-25 | 2016-07-15 | 마이크론 테크놀로지, 인크. | 정규 표현을 컴파일하기 위한 방법 및 장치 |
JP5857072B2 (ja) | 2011-01-25 | 2016-02-10 | マイクロン テクノロジー, インク. | オートマトンの入次数および/または出次数を制御するための量化子の展開 |
-
2012
- 2012-01-24 US US13/357,511 patent/US8788991B2/en active Active
- 2012-01-24 WO PCT/US2012/022444 patent/WO2012103151A2/en active Application Filing
- 2012-01-24 CN CN201280013903.2A patent/CN103430148B/zh active Active
- 2012-01-24 KR KR1020137021925A patent/KR101551045B1/ko active IP Right Grant
- 2012-01-24 JP JP2013550672A patent/JP5763784B2/ja active Active
- 2012-01-24 EP EP12739650.5A patent/EP2668576B1/en active Active
- 2012-01-30 TW TW101102989A patent/TWI512625B/zh active
-
2014
- 2014-07-18 US US14/335,537 patent/US9104828B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784298A (en) * | 1993-10-15 | 1998-07-21 | International Business Machines Corporation | Apparatus and method for using finite state machines (FSMs) to monitor a serial data stream for characteristic patterns |
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 |
US20030145304A1 (en) * | 2002-01-22 | 2003-07-31 | Carter Richard J. | Algorithm-to-hardware system and method for creating a digital circuit |
US20050268258A1 (en) * | 2004-06-01 | 2005-12-01 | Tera Systems, Inc. | Rule-based design consultant and method for integrated circuit design |
US20100325633A1 (en) * | 2009-06-19 | 2010-12-23 | Microsoft Corporation | Searching Regular Expressions With Virtualized Massively Parallel Programmable Hardware |
Also Published As
Publication number | Publication date |
---|---|
TWI512625B (zh) | 2015-12-11 |
EP2668576A4 (en) | 2016-05-18 |
EP2668576B1 (en) | 2024-04-24 |
EP2668576A2 (en) | 2013-12-04 |
WO2012103151A3 (en) | 2012-11-15 |
US8788991B2 (en) | 2014-07-22 |
CN103430148A (zh) | 2013-12-04 |
WO2012103151A2 (en) | 2012-08-02 |
US20120192166A1 (en) | 2012-07-26 |
US20150046889A1 (en) | 2015-02-12 |
JP5763784B2 (ja) | 2015-08-12 |
KR101551045B1 (ko) | 2015-09-07 |
US9104828B2 (en) | 2015-08-11 |
CN103430148B (zh) | 2016-09-28 |
TW201239765A (en) | 2012-10-01 |
KR20140005258A (ko) | 2014-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5763784B2 (ja) | 要素利用のための状態のグループ化 | |
US10089086B2 (en) | Method and apparatus for compiling regular expressions | |
US11928590B2 (en) | Methods and systems for power management in a pattern recognition processing system | |
JP5848778B2 (ja) | Fsmを実装するための専用要素の利用 | |
JP5857072B2 (ja) | オートマトンの入次数および/または出次数を制御するための量化子の展開 | |
JP6082753B2 (ja) | ステートマシンにおけるデータ解析用の方法およびシステム | |
JP6126127B2 (ja) | ステートマシンにおけるルーティング用の方法およびシステム | |
JP6109186B2 (ja) | 状態機械格子におけるカウンタ動作 | |
JP6154824B2 (ja) | ステートマシンラチスにおけるブール型論理 | |
JP2014506693A5 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150122 Free format text: JAPANESE INTERMEDIATE CODE: A523 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: 20150304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150317 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150423 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150423 |
|
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: 20150609 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150611 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5763784 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |