TWI407370B - 正規表示法電路系統以及其共用方法 - Google Patents
正規表示法電路系統以及其共用方法 Download PDFInfo
- Publication number
- TWI407370B TWI407370B TW99113867A TW99113867A TWI407370B TW I407370 B TWI407370 B TW I407370B TW 99113867 A TW99113867 A TW 99113867A TW 99113867 A TW99113867 A TW 99113867A TW I407370 B TWI407370 B TW I407370B
- Authority
- TW
- Taiwan
- Prior art keywords
- comparator
- common
- dynamic
- input signal
- signal
- Prior art date
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Devices For Executing Special Programs (AREA)
Description
本發明提供一種正規表示法電路系統以及正規表示法之共用方法,其能準確快速地藉由共用機制降低邏輯電路之數目。
隨著電腦網際網路的發展,非法的網際網路駭客入侵事件層出不窮。而在網際網路的入侵系統中,攻擊的種類快速成長,且其攻擊方式亦可以描寫為特定樣式。故而,為求能有效描寫與管理所有的攻擊樣式,需拋棄傳統字串之比對方式,進而採用正規標示法之描寫方式與管理樣式。
此外,隨著特定樣式數量之增加,軟體之實作方式漸漸無法跟上網路之流量,因此,需要將演算法實現在硬體上,一方面降低中央處理器(CPU)之負擔,一方面可以匹配目前網路之流量。
在本技術之相關領域中,共用中序(infix)後序(postfix)的分配問題是很重要的研究。請參考第1圖所示之繪示先前技術之共用字串結構說明圖。當rule 1以及rule 2有相似字串時,可進行共用http,故而本來需要用到8個狀態設計的樣式匹配(pattern match),可改成使用4個狀態以達到結合設計,可達到節省邏輯電路數目。
在一些研究中,如於第1圖所示之狀態6以及狀態16中,因在前述狀態中,必須要有能力判斷接下來之移動路徑,(如第1圖之狀態11之情形),如此一來將造成無法得知:究竟是由rule 1來,亦或是由rule 2而來的。此外,於先前之技術中,係利用多工以及計數器進行區分以達到正確性,但對於最佳化設計而言,其所使用之邏輯數目還是過多。
因此,需要發展一種利用決定性有限狀態機以實作成電路,並以共用機制來改善以上問題,同時達到共用時,不會因為共用機制造成比對錯誤,降低暫存器與邏輯閘數目,進而提高處理速度,又可節省整體電路空間之正規表示法系統。
本發明是有關於一種正規表示法電路系統以及其共用方法,且特別是有關於一種藉由共用機制將正規表示法中重複出現之英文或數字製作一共用字元表中,硬體設計時將其產生為同一電路,以節省電路中之邏輯及暫存器之數目。
本發明提供一種正規表示法電路系統。上述電路系統包含比較器、動態支援分配器比較器以及複數個非決定性狀態機。所述之比較器係接收輸入訊號以及控制訊號。該控制訊號係用以開啟比較器。動態支援分配器係用以接收動態訊號。複數個非決定性狀態機係連接比較器以及動態支援分配器。該複數個非決定性狀態機係根據輸入訊號分別輸出一樣式(pattern)。該比較器判斷輸入訊號內之資料,並將該資料中之共用字元建立於一共用字元表中,該複數個非決定性狀態機係藉由共用字元表降低邏輯電路之數目。
本發明提出一種正規表示法之共用方法。前述之共用方法包含提供比較器以接收輸入訊號以及控制訊號。之後,提供動態支援分配器接收動態訊號。在提供動態支援分配器接收動態訊號之後,提供複數個非決定性狀態機以連接比較器以及動態支援分配器。其中,複數個非決定性狀態機係根據輸入訊號分別輸出一樣式(pattern)。比較器判斷輸入訊號內之資料,並將輸入料中之共用字元建立於一共用字元表中。藉由以上之共用方法,複數個非決定性狀態機係藉由該共用字元表降低邏輯電路之數目。
故而,關於本發明之優點與精神可以藉由以下發明詳述及附圖式解說來得到進一步的瞭解。
透過本發明之共用電路系統及共用方法,能使正規表示法中之共用字元以建立一共用字元表,使電路中之共用字元作成相同之電路,進而減少邏輯以及電路之數目。以下特舉一些實施例來描述本發明,但是本發明不受限於所舉實施例。此外,所舉實施例之間也可以互相做適當組合,無須限制於單一實施例的內容。
請參考第2圖,第2圖繪示係依據本發明一實施例之正規表示法電路系統。參閱第2圖中,正規表示法電路系統100包含比較器102、動態支援分配器104以及複數個非決定性狀態機。複數個非決定性狀態機係包含第1非決定性狀態機106、第2非決定性狀態機108至第N非決定性狀態機110,其係連接於比較器102。以及,第1動態非決定性狀態機112至第N動態非決定性狀態機114,其係分別連接動態支援分配器104以及比較器102。複數個非決定性狀態機係根據該輸入訊號分別輸出一樣式(pattern)。
本發明之正規表示法電路系統100具有四個輸入訊號,分別為時脈訊號CLK、輸入訊號IN、控制訊號CTR以及動態訊號DYN。時脈訊號CLK係根據正規表示法電路系統100所能處理的時脈作適當之調整。輸入訊號IN為8位元(bit)的Extended ASCII格式做為輸入,當系統開始作比對時,控制訊號CTR必須拉成高電位,當輸入訊號IN沒有輸入資料時,控制訊號CTR將拉回低電位。正規表示法電路系統100更包含一動態支援分配模組104,係控制動態支援分配器輸出一樣式。動態訊號DYN則為提供系統中所用到之動態生成系統中使用,並透過動態支援分配模組104,給第1動態非決定性狀態機112至第N動態非決定性狀態機114不同之表示式。
於輸出部分有第1輸出訊號Out 1、第2輸出訊號Out 2至第N輸出訊號Out N。以及,第1動態輸出訊號dyout 1至第N動態輸出訊號dyout N。輸出訊號Out係根據有幾個樣式來決定,例如snort2.8樣式規則即1832條樣式,則輸出訊號Out會有1832根,即每一根輸出腳位對應一個樣式(非決定性狀態機)。需說明的是,本發明提出一個編譯器可針對snort公司所提供之樣式規則,直接轉成Verilog程式碼生成硬體,以做到硬體樣式匹配(pattern match)的工作。又,動態輸出訊號dyout例如500個動態模組,則動態輸出訊號dyout會對應有500根。
參考第3圖,第3圖繪示依據本發明一實施例之共用字串結構說明圖,此圖係使用特別狀態sp1以及sp2,並在電路設計中接上狀態11所發出之輸出訊號線同時給sp1以及sp2,此外可利用狀態6跟狀態16之結果造成sp1以及sp2之開關設計,最後達到共同字串的正確設計,而sp1以及sp2的設計跟一般狀態大小幾乎一樣。其僅使用一個位元之暫存器即可達到正確之設計,可達到真正節省邏輯電路數目之最佳設計。
參考第4圖,第4圖繪示snort 2.8樣式規則集示意圖,係說明snort 2.8樣式規則集中所出現的一些常見樣式,由圖中可看出一些典型規則,而與一般使用FPGA來做到硬體上的設計比對,其係對於每條樣式規則作成單一組電路,近而達到比對字元之功能。由第4圖的snort 2.8樣式規則集,右邊為原始snort公司所提供之樣式規則集,而左邊有出現底線的地方是準備要使用共同機制的位置,當透過軟體編輯後,可得到所需之共用字元表。需說明的是,本發明所描述之共用字元係包含純英文字[a-zA-Z]、純數字[0-9]以及英數混合[a-zA-Z0-9]。
比較器102判斷輸入訊號IN內之資料,並將輸入資料中之共用字元建立於一共用字元表中,該複數個非決定性狀態機係藉由共用字元表降低邏輯電路之數目。
參考第5圖,第5圖係根據本發明一實施例從樣式規則中建立之共用字元表。共用字元表係從規則中找尋超過四個字元以上的單用,並出現二次以上,就將其放入共用字元表中,以提供未來共用的單字組。接著,建立共用字元表後,可利用其資訊來找到樣式規則中有哪些是被共用的。
參考第6圖,係為根據本發明一實施例經過共用字元表比對後,產生的新符合\k示意圖。由圖可得到最後所要生成有支援共用字元的樣式規則集,並使用正規表示法中所沒有使用到之指令\k為其作註解使用。從第6圖最左邊的樣式規則集中,可看到原本使用的單字「NEWER」被建立在共用字元表中,而新的樣式規則集也被將上\k013,意指使用共用字元表的第13組共用字元組。最終,在生成Verilog程式碼時,就可以告之使用本發明所提出之共用字元開關元件,加上第13組共用子源的輸出,就可以完整的節省邏輯元件的個數。
本發明所提出共用前序(prefix),也將能共用中序(Infix)。參考第7圖以及第8圖,第7圖係先前技術之前序共用結果圖。第8圖係為先前技術之共用前序狀態圖。
由第7圖所示之樣式規則之第1條與第2條,以及第3條以及第4條有相同之前序,在先前技術中,常見之共用前序機制就會變成如第8圖之狀態狀況圖。在第8圖共用前序狀態圖中,可看出僅剩三條啟始位置之走向,而在狀態6與9中,就不須像中序還需要有一個機制判斷,正確的行進樣式規則,因為前序的共用不用考慮到這點,也因此可直接做到共用機制,並正確的資料輸出到規則1-4樣式,因此,此範例總狀態數共花42個。
然而,在本發明所提供更有效之針對前序共用架構中,也結合中序共用系統,參考第5圖之共用字元表中有一個單字組為「user」,也因此在規則1-4,會如第9圖所示,被註解為\K01,代表共用字元第一組的使用,並且經過正規表示法引擎(RE Engine)的生成器,可得到真實共用前序中也共用中序之電路系統。其中,第9圖係根據本發明又一實施例所產生之新樣式規則集示意圖。參考第10圖,係根據本發明共用前序中共用中序之狀態圖,經由本電路系統作前序的共用,可得到第10圖之共用前序中共用中序之狀態圖。由第10圖也可看出SP1與SP2為共用字元之開關元件,於中間之狀態16:「user」為生成共用字元組第一組,也因此,在系統中總狀態僅多花2個狀態,就可達到USER 4*3個狀態數的節省,真正更節省邏輯數量的使用。
參考第11圖,係繪示根據本發明一實施例之正規表示法之共用方法流程圖。步驟S202,提供一比較器102以接收輸入訊號以及一控制訊號而如第1圖所示。步驟S204,提供動態支援分配器104。其中動態支援分配器104係用以接收動態訊號。步驟S206,提供複數個非決定性狀態機,其係連接比較器以及動態支援分配器104。其中,複數個非決定性狀態機係根據輸入訊號分別輸出一樣式(pattern)。接著,至步驟S208,比較器102判斷輸入訊號是否為英文或數字。
若比較器102判斷輸入訊號為英文或數字,則放入一共同檔案中,如步驟S210所示。
於又一實施例,若比較器102判斷輸入訊號不為英文或數字,則至步驟S212,判斷下一字元是否為一相關字詞。
接著步驟S210之後至步驟S212,判斷下一字元是否為一相關字詞。若下一字元為相關字詞,則至步驟S214,放入共同檔案中。
於又一實施例,若下一字元不為一相關字詞,則至步驟S216,判斷共用檔案是否完畢。
接著,判斷共同檔案是否完畢,如步驟S216所示。若完畢,則至步驟S218,產生該共用字元表。
於又一實施例,若共用檔案未完畢,則至步驟S212,判斷下一字元是否為一相關字詞。
以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之申請專利範圍;凡其它未脫離本發明所揭示之精神下所完成之等效改變或修飾,均應包含在下述之申請專利範圍內。
102...比較器
104...動態支援分配器
106...第1非決定性狀態機
108...第2非決定性狀態機
110...第N非決定性狀態機
112...第1動態非決定性狀態機
114...第N動態非決定性狀態機
CLK...時脈訊號
IN...輸入訊號
CTR...控制訊號
DYN...動態訊號
Out...輸出訊號
Out 1-Out N...第1輸出訊號-第N輸出訊號
dyout 1-dyout N...第1動態輸出訊號-第N動態輸出訊號
第1圖繪示先前技術之共用字串結構說明圖。
第2圖繪示依據本發明一實施例之正規表示法電路系統。
第3圖繪示依據本發明一實施例之共用字串結構說明圖。
第4圖繪示snort 2.8樣式規則集示意圖。
第5圖係根據本發明一實施例從樣式規則中建立之共用字元表。
第6圖為根據本發明一實施例經過共用字元表比對後,產生的新符合\k示意圖。
第7圖係先前技術之前序共用結果圖。
第8圖係為先前技術之共用前序狀態圖。
第9圖係根據本發明又一實施例所產生之新樣式規則集示意圖。
第10圖係根據本發明共用前序中共用中序之狀態圖。
第11圖,係繪示根據本發明一實施例之正規表示法之共用方法流程圖。
102...比較器
104...動態支援分配器
106...第1非決定性狀態機
108...第2非決定性狀態機
110...第N非決定性狀態機
112...第1動態非決定性狀態機
114...第N動態非決定性狀態機
CLK...時脈訊號
IN...輸入訊號
CTR...控制訊號
DYN...動態訊號
Out...輸出訊號
Out 1-Out N...第1輸出訊號-第N輸出訊號
dyout 1-dyout N...第1動態輸出訊號-第N動態輸出訊號
Claims (2)
- 一種使用於電路統之正規表示法的共用方法,包含:提供一比較器以接收一輸入訊號以及一控制訊號,其中該輸入訊號係為一Extended ASCII格式,其中當該比較器開始比較時,該控制訊號為高電位;提供一動態支援分配器,係接收一動態訊號;提供複數個非決定性狀態機,係連接該比較器以及該動態支援分配器,其中該複數個非決定性狀態機係根據該輸入訊號分別輸出一樣式;以該比較器判斷該輸入訊號內之資料,並將該輸入資料中之共用字元建立於一共用字元表中:該比較器判斷該輸入訊號是否為英文或數字;若該比較器判斷該輸入訊號為英文或數字,則放入一共同檔案中;判斷一下一字元是否為一相關字詞;若該下一字元為該相關字詞,則放入該共同檔案中;判斷該共同檔案是否完畢;以及若判斷該共同檔案已經完畢,則產生該共用字元表。
- 一種使用申請專利範圍第1項方法之電路系統,包含:一比較器,係接收一輸入訊號以及一控制訊號,其中該控制訊號係用以開啟該比較器,該輸入訊號係為一Extended ASCII格式,其中當該比較器開始進行比較時,該控制訊號為高電位,當沒有該輸入訊號輸入時, 該控制訊號為低電位;一動態支援分配器,係接收一動態訊號;以及複數個非決定性狀態機,係連接該比較器以及該動態支援分配器,其中該複數個非決定性狀態機係根據該輸入訊號分別輸出一樣式;其中該比較器判斷該輸入訊號內之資料,並將該資料中之共用字元建立於一共用字元表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99113867A TWI407370B (zh) | 2010-04-30 | 2010-04-30 | 正規表示法電路系統以及其共用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99113867A TWI407370B (zh) | 2010-04-30 | 2010-04-30 | 正規表示法電路系統以及其共用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201137747A TW201137747A (en) | 2011-11-01 |
TWI407370B true TWI407370B (zh) | 2013-09-01 |
Family
ID=46759653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99113867A TWI407370B (zh) | 2010-04-30 | 2010-04-30 | 正規表示法電路系統以及其共用方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI407370B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130140A1 (en) * | 2005-12-02 | 2007-06-07 | Cytron Ron K | Method and device for high performance regular expression pattern matching |
TW200805102A (en) * | 2006-06-01 | 2008-01-16 | Via Tech Inc | Transferring software assertions to hardware description language code |
US20080082946A1 (en) * | 2006-09-28 | 2008-04-03 | Mcgill University | automata unit, a tool for designing checker circuitry and a method of manufacturing hardware circuitry incorporating checker circuitry |
-
2010
- 2010-04-30 TW TW99113867A patent/TWI407370B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130140A1 (en) * | 2005-12-02 | 2007-06-07 | Cytron Ron K | Method and device for high performance regular expression pattern matching |
TW200805102A (en) * | 2006-06-01 | 2008-01-16 | Via Tech Inc | Transferring software assertions to hardware description language code |
US20080082946A1 (en) * | 2006-09-28 | 2008-04-03 | Mcgill University | automata unit, a tool for designing checker circuitry and a method of manufacturing hardware circuitry incorporating checker circuitry |
Also Published As
Publication number | Publication date |
---|---|
TW201137747A (en) | 2011-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5857072B2 (ja) | オートマトンの入次数および/または出次数を制御するための量化子の展開 | |
Benini et al. | Transformation and synthesis of FSMs for low-power gated-clock implementation | |
Krstic et al. | Globally asynchronous, locally synchronous circuits: Overview and outlook | |
JP3026979B2 (ja) | シリコン コンパイラ方法および装置 | |
EP1964266B1 (en) | A method for multi-cycle clock gating | |
Jain et al. | Design and simulation of ring network-on-chip for different configured nodes | |
US7325221B1 (en) | Logic system with configurable interface | |
US6536031B2 (en) | Method for generating behavior model description of circuit and apparatus for logic verification | |
US7849428B2 (en) | Formally deriving a minimal clock-gating scheme | |
JP2014506693A5 (zh) | ||
JP2014504767A (ja) | 正規表現をコンパイルするための方法および装置 | |
Hoskote et al. | A TCP Offload Accelerator for 10 Gb/s Ethernet in 90-nm CMOS | |
US8443315B2 (en) | Reset mechanism conversion | |
CN110580393A (zh) | 一种门级网表修改后的快速收敛建立时间的方法 | |
US20110078644A1 (en) | Asychronous system analysis | |
US7000206B2 (en) | Timing path detailer | |
US8656326B1 (en) | Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design | |
Branover et al. | Asynchronous design by conversion: Converting synchronous circuits into asynchronous ones | |
Bhardwaj et al. | Towards a complete methodology for synthesizing bundled-data asynchronous circuits on FPGAs | |
TWI407370B (zh) | 正規表示法電路系統以及其共用方法 | |
KR20070097051A (ko) | 동적으로 재구성 가능한 프로세서 | |
US6367066B1 (en) | System for synthesizing a circuit by re-writing signed variables into unsigned variables and sharing resources for identical operations having different timing | |
Klimowicz | Combined State Splitting and Merging for Implementation of Fast Finite State Machines in FPGA | |
Lázaro et al. | Fast and efficient address search in System-on-a-Programmable-Chip using binary trees | |
US20240256749A1 (en) | Retiming sequential elements having initital states |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |