[發(fā)明專利]基于TCAM的非確定性有限自動(dòng)機(jī)的匹配方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201210021964.5 | 申請(qǐng)日: | 2012-01-31 |
| 公開(公告)號(hào): | CN103226551A | 公開(公告)日: | 2013-07-31 |
| 發(fā)明(設(shè)計(jì))人: | 董群峰;彭坤楊 | 申請(qǐng)(專利權(quán))人: | 中國(guó)科學(xué)技術(shù)大學(xué) |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30 |
| 代理公司: | 北京凱特來知識(shí)產(chǎn)權(quán)代理有限公司 11260 | 代理人: | 鄭立明;黃曉軍 |
| 地址: | 230026 安*** | 國(guó)省代碼: | 安徽;34 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 tcam 確定性 有限 自動(dòng)機(jī) 匹配 方法 裝置 | ||
1.一種基于TCAM的非確定性有窮狀態(tài)自動(dòng)機(jī)的匹配方法,其特征在于,包括:
對(duì)非確定性有窮狀態(tài)自動(dòng)機(jī)NFA的狀態(tài)和活躍狀態(tài)子集進(jìn)行編碼,將所述NFA的每個(gè)狀態(tài)轉(zhuǎn)移邊用一個(gè)三態(tài)內(nèi)容尋址存儲(chǔ)器TCAM條目表示,每個(gè)TCAM條目由匹配域和目的域組成,所述匹配域包括:源狀態(tài)域、輸入字符域,所述目的域包括目的狀態(tài)域或者包括目的狀態(tài)域和掩碼域;
將所述NFA的源活躍狀態(tài)子集的編碼和輸入字符的編碼的拼接作為搜索關(guān)鍵詞,按照所述搜索關(guān)鍵字在所述NFA的所有TCAM條目的匹配域中進(jìn)行搜索,將獲取的目的活躍狀態(tài)子集的編碼作為輸出結(jié)果,所述源活躍狀態(tài)子集為所述NFA當(dāng)前所有同時(shí)活躍的狀態(tài)的集合,所述目的活躍狀態(tài)子集為在所述NFA中輸入所述輸入字符、進(jìn)行狀態(tài)轉(zhuǎn)換后,得到的同時(shí)活躍的狀態(tài)的集合。
2.根據(jù)權(quán)利要求1所述的基于TCAM的非確定性有窮狀態(tài)自動(dòng)機(jī)的匹配方法,其特征在于,對(duì)所述NFA的狀態(tài)和活躍狀態(tài)子集進(jìn)行編碼,包括:
將所述活躍狀態(tài)子集編碼為一個(gè)活躍向量,該活躍向量由所述活躍狀態(tài)子集中包括的每個(gè)狀態(tài)所歸屬的兼容組中的活躍碼進(jìn)行拼接得到,所述兼容組是由若干NFA狀態(tài)組成的集合,該集合中的狀態(tài)兩兩之間都不能同時(shí)活躍,每個(gè)自循環(huán)狀態(tài)單獨(dú)組成一個(gè)自循環(huán)兼容組,所述自循環(huán)狀態(tài)是NFA中轉(zhuǎn)移到自身的邊超過了一定閾值的狀態(tài),所述活躍碼為所述兼容組為組內(nèi)每個(gè)狀態(tài)各自分配的一個(gè)唯一的非全0的編碼。
3.根據(jù)權(quán)利要求1所述的基于TCAM的非確定性有窮狀態(tài)自動(dòng)機(jī)的匹配方法,其特征在于,所述的將非確定性有窮狀態(tài)自動(dòng)機(jī)NFA的每個(gè)狀態(tài)轉(zhuǎn)移邊用一個(gè)三態(tài)內(nèi)容尋址存儲(chǔ)器TCAM條目表示,每個(gè)TCAM條目由匹配域和目的域組成,包括:
將所述TCAM條目的目的域分兩種方法表示:方法一,所述目的域僅由目的狀態(tài)域組成,所述目的狀態(tài)域存放的是目的活躍狀態(tài)子集的活躍向量;方法二,所述目的域由目的狀態(tài)域和掩碼域組成,所述掩碼域的長(zhǎng)度為自循環(huán)兼容組的數(shù)目,即為每個(gè)自循環(huán)兼容組依次分配一個(gè)比特;若所述自循環(huán)兼容組在所述掩碼域中的掩碼值為“1”,則在目的狀態(tài)域中存儲(chǔ)所述自循環(huán)兼容組在目的活躍狀態(tài)子集中的活躍碼與所述自循環(huán)兼容組在源活躍狀態(tài)子集中的活躍碼的異或結(jié)果,否則直接存儲(chǔ)所述自循環(huán)兼容組在目的活躍狀態(tài)子集中的活躍碼;
所述編碼NFA中所有的狀態(tài)轉(zhuǎn)移的方法為:
枚舉所述NFA中所有的狀態(tài)轉(zhuǎn)移,將每一個(gè)狀態(tài)轉(zhuǎn)移所對(duì)應(yīng)的源狀態(tài)域、輸入字符域和目的域存儲(chǔ)在一個(gè)TCAM條目中,所述源狀態(tài)域中存儲(chǔ)源狀態(tài)的編碼,所述輸入字符域中存儲(chǔ)輸入字符的編碼,所述目的域中的目的狀態(tài)域中存儲(chǔ)目的狀態(tài)的編碼;
或者;
獲取所述NFA中的每個(gè)輸入字符c的有效集Ec,該Ec是所有自循環(huán)狀態(tài)以及所有對(duì)所述輸入字符有轉(zhuǎn)移邊的NFA狀態(tài)的集合,針對(duì)每個(gè)輸入字符計(jì)算Ec與所述NFA中每一個(gè)活躍狀態(tài)子集S的交集,這些交集組成的集合記為Ic,即Ic=∪s(Ec∩S),將Ic中的各個(gè)交集按集合大小的非遞增順序進(jìn)行排序;
依次處理排過序的所述Ic中的每一個(gè)交集Ec∩S,為每一個(gè)交集Ec∩S生成一個(gè)新的TCAM條目,在所述新的TCAM條目的輸入字符域中存儲(chǔ)輸入字符的編碼;
所述Ec∩S的活躍向量按如下方式生成,對(duì)Ec∩S中的每一個(gè)狀態(tài)s,設(shè)置s所在的兼容組的編碼為s的活躍碼,對(duì)每一個(gè)自循環(huán)狀態(tài)s′,若s′∈Ec但則設(shè)置s′所在的兼容組的編碼為“0”,其他的兼容組的編碼均設(shè)置為全“*”,將所有兼容組的編碼組合成活躍向量,在所述新的TCAM條目的源狀態(tài)域中存儲(chǔ)所述活躍向量;
對(duì)Ec∩S中的所有狀態(tài),計(jì)算它們經(jīng)過所述輸入字符所轉(zhuǎn)移到的目的狀態(tài)的集合記為D,在所述新的TCAM條目的目的狀態(tài)域中存儲(chǔ)所述D的活躍向量;
當(dāng)所述目的域中包含掩碼域時(shí),則對(duì)Ec∩S中的每一個(gè)自循環(huán)狀態(tài)s′,在掩碼域中為s′分配一個(gè)比特,判斷s′是否存在一條邊經(jīng)過所述輸入字符轉(zhuǎn)移到自身,如果是,則在s′的掩碼域中設(shè)置s′所在的兼容組的編碼為1;否則,在s′的掩碼域中設(shè)置s′所在的兼容組的編碼為0;
當(dāng)所述目的域包含掩碼域時(shí),則對(duì)Ec∩S中的每一個(gè)自循環(huán)狀態(tài)s′,若s′所在的兼容組在掩碼域中的值為1,則s′的目的狀態(tài)域中存儲(chǔ)s′在目的狀態(tài)域中的編碼與s′在源狀態(tài)域中的編碼的異或結(jié)果。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國(guó)科學(xué)技術(shù)大學(xué),未經(jīng)中國(guó)科學(xué)技術(shù)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210021964.5/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 一種TCAM路由表管理方法和系統(tǒng)
- 一種入侵檢測(cè)中模式匹配的方法和裝置
- 一種三態(tài)內(nèi)容尋址存儲(chǔ)器的表項(xiàng)更新方法及裝置
- 三態(tài)內(nèi)容尋址存儲(chǔ)器規(guī)則存儲(chǔ)方法、裝置及網(wǎng)絡(luò)設(shè)備
- 單接口芯片及應(yīng)用該芯片實(shí)現(xiàn)芯片與多TCAM之間數(shù)據(jù)傳輸?shù)姆椒?/a>
- 一種寫入TCAM條目的方法及裝置
- 一種TCAM表項(xiàng)的更新方法、裝置及TCAM
- 一種TCAM錯(cuò)誤掃描與修復(fù)的方法
- 交換芯片中TCAM表的靈活組合方法、裝置及芯片
- 三態(tài)內(nèi)容尋址存儲(chǔ)器TCAM表項(xiàng)處理方法及裝置





