亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于TCAM的確定性有窮狀態(tài)自動機DFA的匹配方法和裝置與流程

文檔序號:11772780閱讀:來源:國知局
基于TCAM的確定性有窮狀態(tài)自動機DFA的匹配方法和裝置與流程

技術(shù)特征:
1.一種基于TCAM的確定性有窮狀態(tài)自動機DFA的匹配方法,其特征在于,包括:將確定性有窮狀態(tài)自動機DFA的每個狀態(tài)用若干三態(tài)內(nèi)容尋址存儲器TCAM條目表示,每個TCAM條目由源狀態(tài)域、輸入字符域和目的狀態(tài)域三個域組成,所述源狀態(tài)域由模板ID域和私有ID域兩個子域組成,分別用于存儲源狀態(tài)的模板ID編碼和私有ID編碼,所述目的狀態(tài)域由模板ID域和私有ID域兩個子域組成,所述模板ID域用于存儲目的狀態(tài)的模板ID編碼和源狀態(tài)的模板ID編碼的異或結(jié)果,所述私有ID域用于存儲目的狀態(tài)的私有ID編碼;以具體的所述源狀態(tài)域和輸入字符域的拼接作為搜索關(guān)鍵詞,按照所述搜索關(guān)鍵字在所述DFA的所有TCAM條目中進行搜索,獲取搜索得到的目的狀態(tài)域,將所述目的狀態(tài)域中的模板ID域的值與所述搜索關(guān)鍵詞中的模板ID域的值進行異或,將所述異或結(jié)果作為所述目的狀態(tài)域中的最終的模板ID域的值;其中,所述的將確定性有窮狀態(tài)自動機DFA的每個狀態(tài)用若干三態(tài)內(nèi)容尋址存儲器TCAM條目表示,包括:若對于某個輸入字符,狀態(tài)i和狀態(tài)j各有一條出邊經(jīng)過該輸入字符轉(zhuǎn)移到某個相同的目的狀態(tài),則這兩條出邊是狀態(tài)i和狀態(tài)j之間的共享邊;若對于某個輸入字符,狀態(tài)i和狀態(tài)j各有一條出邊經(jīng)過該輸入字符轉(zhuǎn)移到不同的目的狀態(tài),則狀態(tài)i的這條出邊是關(guān)于狀態(tài)j的非共享邊,且狀態(tài)j的這條出邊是關(guān)于狀態(tài)i的非共享邊;每個DFA狀態(tài)均用一對狀態(tài)ID進行編號,所述狀態(tài)ID對為模板ID和私有ID,全部的DFA狀態(tài)被劃分成多個狀態(tài)集合,每個狀態(tài)集合包含的是全部擁有相同私有ID的狀態(tài),且該狀態(tài)集合以這個私有ID命名;如果兩個狀態(tài)分屬于兩個狀態(tài)集合,且所述兩個狀態(tài)集合共享相同的模板ID,則所述兩個狀態(tài)集合互為彼此的親屬狀態(tài);對于私有ID為K的狀態(tài)集合,若私有ID為J的狀態(tài)集合同時滿足下述條件,則狀態(tài)集合K的所有狀態(tài)都各自選擇它們在狀態(tài)集合J中的親屬狀態(tài)作為模板狀態(tài):J<K;對于集合K中的每一個狀態(tài),其在集合J中都存在一個親屬狀態(tài);在所有滿足上述兩個條件的候選狀態(tài)集合中,集合J與集合K的相似度最大;每個DFA狀態(tài)最多只有一個模板狀態(tài),對于自循環(huán)狀態(tài)不為之分配模板;若一個DFA狀態(tài)有模板狀態(tài)時,則該DFA狀態(tài)的狀態(tài)轉(zhuǎn)移邊只需存儲該DFA狀態(tài)關(guān)于其模板狀態(tài)的非共享邊;若一個DFA狀態(tài)沒有模板狀態(tài),則該DFA狀態(tài)需要存儲其全部的狀態(tài)轉(zhuǎn)移邊;存在模板關(guān)系的兩個DFA狀態(tài)生成的TCAM條目之間的存儲順序如下:若狀態(tài)i以狀態(tài)j為模板,則狀態(tài)i的狀態(tài)轉(zhuǎn)移邊都必須存儲在狀態(tài)j的狀態(tài)轉(zhuǎn)移邊之前;不存在模板關(guān)系的兩個DFA狀態(tài)生成的TCAM條目之間的存儲順序是任意的。2.根據(jù)權(quán)利要求1所述的基于TCAM的確定性有窮狀態(tài)自動機DFA的匹配方法,其特征在于,所述的源狀態(tài)域由模板ID域和私有ID域兩個子域組成,分別用于存儲源狀態(tài)的模板ID編碼和私有ID編碼,包括:將轉(zhuǎn)移到自身的出邊的數(shù)目超過了一定的閾值的狀態(tài)定義為自循環(huán)狀態(tài),每個DFA狀態(tài)有且僅有唯一的(模板ID,私有ID)對;為每個自循環(huán)狀態(tài)分配一個唯一的模板ID,為所有的自循環(huán)狀態(tài)分配一個相同的私有ID;對于每個非自循環(huán)狀態(tài),其模板ID的取值為與其相似度最大的自循環(huán)狀態(tài)的模板ID;其私有ID的取值按如下寬度遍歷過程迭代進行:維護一個狀態(tài)集合的隊列,嘗試為所有在同一個狀態(tài)集合中的狀態(tài)分配相同的私有ID,初始將由所有自循環(huán)狀態(tài)組成的狀態(tài)集合入隊,并將該狀態(tài)集合標記為已訪問,每次取出隊首的狀態(tài)集合S直至隊列為空:依次迭代檢查S經(jīng)每一個字符所達到的目的狀態(tài)集合D:從D中刪去所有自循環(huán)狀態(tài);若D中存在多個狀態(tài)共享相同的模板ID,則只留下其中一個狀態(tài),其余的狀態(tài)從D中刪去;若存在一個已訪問過的狀態(tài)集合S',使得則跳出本次迭代;若存在一個已訪問過的狀態(tài)集合S’,S’中所有的狀態(tài)已被分配相同的私有ID,使得則將S'中狀態(tài)所分配的私有ID分配給D中所有狀態(tài);否則,D中所有狀態(tài)分配一個尚未被分配過的私有ID;將D中所有狀態(tài)從所有已訪問的狀態(tài)集合中刪除;標記集合D為已訪問;D入隊。3.根據(jù)權(quán)利要求1所述的基于TCAM的確定性有窮狀態(tài)自動機DFA的匹配方法,其特征在于,所述的源狀態(tài)域由模板ID域和私有ID域兩個子域組成,分別用于存儲源狀態(tài)的模板ID編碼和私有ID編碼,包括:對于存在模板關(guān)系的兩個DFA狀態(tài)i和j,若狀態(tài)i以狀態(tài)j為模板,則狀態(tài)i的私有ID編碼匹配狀態(tài)j的私有ID編碼;DFA狀態(tài)間的模板關(guān)系將所有的DFA狀態(tài)組織成多個樹,每個樹均以一個自循環(huán)狀態(tài)作為根,每個DFA狀態(tài)均以它的模板狀態(tài)為父結(jié)點;在所述樹中為每個狀態(tài)分配一個子編碼,如果一個狀態(tài)有N個子結(jié)點,則這N個子結(jié)點所需的子編碼比特數(shù)為每個子結(jié)點分配一個長度為n的互不相同的子編碼;全“0”的編碼保留不分配,葉子結(jié)點的子編碼為空;私有ID相同的狀態(tài)分配的子編碼必須相同;每個狀態(tài)的私有ID的編碼即為該狀態(tài)所有祖先結(jié)點的子編碼與自身子編碼的拼接,即從樹根開始到每個狀態(tài),該狀態(tài)的初始私有ID編碼為空,沿途依次在后面拼接上所訪問的父結(jié)點的子編碼,最后拼接上該狀態(tài)的子編碼,作為該狀態(tài)的私有ID編碼;將所有狀態(tài)的私有ID編碼的長度設(shè)置為一致。4.根據(jù)權(quán)利要求1至3任一項所述的基于TCAM的確定性有窮狀態(tài)自動機DFA的匹配方法,其特征在于,所述的方法還包括:若存在共享相同的目的狀態(tài)域、源狀態(tài)域的兩個TCAM條目i和j且i和j的輸入字符域只相差一個比特,則在TCAM條目i的輸入字符域中,將與TCAM條目j相差的比特位的值置為“*”,刪除TCAM條目j;若存在共享相同的目的狀態(tài)域、輸入字符域、源狀態(tài)域的私有ID域的兩個TCAM條目i和j且i和j的源狀態(tài)域的模板ID域只相差一個比特,則在TCAM條目i的模板ID域中,將與TCAM條目j相差的比特位的值置為“*”,刪除TCAM條目j。5.一種基于TCAM的確定性有窮狀態(tài)自動機的匹配裝置,其特征在于,包括:TCAM條目構(gòu)造模塊,用于將確定性有窮狀態(tài)自動機DFA的每個狀態(tài)用若干三態(tài)內(nèi)容尋址存儲器TCAM條目表示,每個TCAM條目由源狀態(tài)域、輸入字符域和目的狀態(tài)域三個域組成,所述源狀態(tài)域由模板ID域和私有ID域兩個子域組成,分別用于存儲源狀態(tài)的模板ID編碼和私有ID編碼,所述目的狀態(tài)域由模板ID域和私有ID域兩個子域組成,所述模板ID域用于存儲目的狀態(tài)的模板ID編碼和源狀態(tài)的模板ID編碼的異或結(jié)果,所述私有ID域用于存儲目的狀態(tài)的私有ID編碼;搜索匹配模塊,用于以具體的所述源狀態(tài)域和輸入字符域的拼接作為搜索關(guān)鍵詞,按照所述搜索關(guān)鍵字在所述DFA的所有TCAM條目中進行搜索,獲取搜索得到的目的狀態(tài)域,將所述目的狀態(tài)域中的模板ID域的值與所述搜索關(guān)鍵詞中的模板ID域的值進行異或,將所述異或結(jié)果作為所述目的狀態(tài)域中的最終的模板ID域的值;所述TCAM條目構(gòu)造模塊,還用于當若對于某個輸入字符,狀態(tài)i和狀態(tài)j各有一條出邊經(jīng)過該輸入字符轉(zhuǎn)移到某個相同的目的狀態(tài),則這兩條出邊是狀態(tài)i和狀態(tài)j之間的共享邊;若對于某個輸入字符,狀態(tài)i和狀態(tài)j各有一條出邊經(jīng)過該輸入字符轉(zhuǎn)移到不同的目的狀態(tài),則狀態(tài)i的這條出邊是關(guān)于狀態(tài)j的非共享邊,且狀態(tài)j的這條出邊是關(guān)于狀態(tài)i的非共享邊;每個DFA狀態(tài)均用一對狀態(tài)ID進行編號,所述狀態(tài)ID對為模板ID和私有ID,全部的DFA狀態(tài)被劃分成多個狀態(tài)集合,每個狀態(tài)集合包含的是全部擁有相同私有ID的狀態(tài),且該狀態(tài)集合以這個私有ID命名;如果兩個狀態(tài)分屬于兩個狀態(tài)集合,且所述兩個狀態(tài)集合共享相同的模板ID,則所述兩個狀態(tài)集合互為彼此的親屬狀態(tài);對于私有ID為K的狀態(tài)集合,若私有ID為J的狀態(tài)集合同時滿足下述條件,則狀態(tài)集合K的所有狀態(tài)都各自選擇它們在狀態(tài)集合J中的親屬狀態(tài)作為模板狀態(tài):J<K;對于集合K中的每一個狀態(tài),其在集合J中都存在一個親屬狀態(tài);在所有滿足上述兩個條件的候選狀態(tài)集合中,集合J與集合K的相似度最大;每個DFA狀態(tài)最多只有一個模板狀態(tài),對于自循環(huán)狀態(tài)不為之分配模板;若一個DFA狀態(tài)有模板狀態(tài)時,則該DFA狀態(tài)的狀態(tài)轉(zhuǎn)移邊只需存儲該DFA狀態(tài)關(guān)于其模板狀態(tài)的非共享邊;若一個DFA狀態(tài)沒有模板狀態(tài),則該DFA狀態(tài)需要存儲其全部的狀態(tài)轉(zhuǎn)移邊;存在模板關(guān)系的兩個DFA狀態(tài)生成的TCAM條目之間的存儲順序如下:若狀態(tài)i以狀態(tài)j為模板,則狀態(tài)i的狀態(tài)轉(zhuǎn)移邊都必須存儲在狀態(tài)j的狀態(tài)轉(zhuǎn)移邊之前;不存在模板關(guān)系的兩個DFA狀態(tài)生成的TCAM條目之間的存儲順序是任意的。6.根據(jù)權(quán)利要求5所述的基于TCAM的確定性有窮狀態(tài)自動機的匹配裝置,其特征在于,其特征在于:TCAM條目構(gòu)造模塊,還用于將轉(zhuǎn)移到自身的出邊的數(shù)目超過了一定的閾值的狀態(tài)定義為自循環(huán)狀態(tài),每個DFA狀態(tài)有且僅有唯一的(模板ID,私有ID)對;為每個自循環(huán)狀態(tài)分配一個唯一的模板ID,為所有的自循環(huán)狀態(tài)分配一個相同的私有ID;對于每個非自循環(huán)狀態(tài),其模板ID的取值為與其相似度最大的自循環(huán)狀態(tài)的模板ID;其私有ID的取值按如下寬度遍歷過程迭代進行:維護一個狀態(tài)集合的隊列,嘗試為所有在同一個狀態(tài)集合中的狀態(tài)分配相同的私有ID,初始將由所有自循環(huán)狀態(tài)組成的狀態(tài)集合入隊,并將該狀態(tài)集合標記為已訪問,每次取出隊首的狀態(tài)集合S直至隊列為空:依次迭代檢查S經(jīng)每一個字符所達到的目的狀態(tài)集合D:從D中刪去所有自循環(huán)狀態(tài);若D中存在多個狀態(tài)共享相同的模板ID,則只留下其中一個狀態(tài),其余的狀態(tài)從D中刪去;若存在一個已訪問過的狀態(tài)集合S',使得則跳出本次迭代;若存在一個已訪問過的狀態(tài)集合S',S'中所有的狀態(tài)已被分配相同的“私有ID”,使得則將S'中狀態(tài)所分配的私有ID分配給D中所有狀態(tài);否則,D中所有狀態(tài)分配一個尚未被分配過的私有ID;將D中所有狀態(tài)從所有已訪問的狀態(tài)集合中刪除;標記集合D為已訪問;D入隊。7.根據(jù)權(quán)利要求5所述的基于TCAM的確定性有窮狀態(tài)自動機的匹配裝置,其特征在于:TCAM條目構(gòu)造模塊,還用于對于存在模板關(guān)系的兩個DFA狀態(tài)i和j,若狀態(tài)i以狀態(tài)j為模板,則狀態(tài)i的私有ID編碼匹配狀態(tài)j的私有ID編碼;DFA狀態(tài)間的模板關(guān)系將所有的DFA狀態(tài)組織成多個樹,每個樹均以一個自循環(huán)狀態(tài)作為根,每個DFA狀態(tài)均以它的模板狀態(tài)為父結(jié)點;在所述樹中為每個狀態(tài)分配一個子編碼,如果一個狀態(tài)有N個子結(jié)點,則這N個子結(jié)點所需的子編碼比特數(shù)為每個子結(jié)點分配一個長度為n的互不相同的子編碼;全“0”的編碼保留不分配,葉子結(jié)點的子編碼為空;私有ID相同的狀態(tài)分配的子編碼必須相同;每個狀態(tài)的私有ID的編碼即為該狀態(tài)所有祖先結(jié)點的子編碼與自身子編碼的拼接,即從樹根開始到每個狀態(tài),該狀態(tài)的初始私有ID編碼為空,沿途依次在后面拼接上所訪問的父結(jié)點的子編碼,最后拼接上該狀態(tài)的子編碼,作為該狀態(tài)的私有ID編碼;將所有狀態(tài)的私有ID編碼的長度設(shè)置為一致。8.根據(jù)權(quán)利要求5至7任一項所述的基于TCAM的確定性有窮狀態(tài)自動機的匹配裝置,其特征在于,所述的裝置還包括:TCAM條目刪除模塊,用于若存在共享相同的目的狀態(tài)域、源狀態(tài)域的兩個TCAM條目i和j且i和j的輸入字符域只相差一個比特,則在TCAM條目i的輸入字符域中,將與TCAM條目j相差的比特位的值置為“*”,刪除TCAM條目j;若存在共享相同的目的狀態(tài)域、輸入字符域、源狀態(tài)域的私有ID域的兩個TCAM條目i和j且i和j的源狀態(tài)域的模板ID域只相差一個比特,則在TCAM條目i的模板ID域中,將與TCAM條目j相差的比特位的值置為“*”,刪除TCAM條目j。
當前第2頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1