• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于圖形處理單元的非確定有限自動機的匹配方法及裝置制造方法及圖紙

    技術編號:8271438 閱讀:186 留言:0更新日期:2013-01-31 03:39
    本發明專利技術公開了一種基于圖形處理單元的非確定有限自動機的匹配方法及裝置,其包括:首先,計算非確定有限自動機NFA中所有狀態兩兩之間的相容性,并根據所述相容性對所述各個狀態進行編碼形成虛擬NFA,獲得虛擬NFA對應的虛擬NFA狀態轉換表;其中,所述相容性是指,若NFA中的兩個狀態在NFA匹配過程中不同時處于活躍狀態,則該兩個狀態相容,否則,為不相容;之后,將所述虛擬NFA狀態轉換表存儲在圖形處理單元GPU的全局存儲器中,并基于該虛擬NFA狀態轉換表匹配經過交織處理的待處理數據包中數據。本發明專利技術實施例的實現可以有效降低匹配過程中的復雜程度,提高基于NFA的匹配速度,很好地當前克服了現有技術中存在的問題。

    【技術實現步驟摘要】
    本專利技術涉及計算機應用
    ,尤其涉及一種基于GPU (graphic processingunit,圖形處理單兀)的NFA (non-deterministic finite automaton,非確定性有限自動機)的匹配方法及裝置。
    技術介紹
    在計算機
    中,正則表達式是用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。在很多文本編輯器或其他工具里,正則表達式通常被用來檢索和/或替換那些符合某個模式的文本內容。目前,許多程序設計語言都支持利用正則表達式進行字符串操作。正則表達式在現代計算機應用領域使用十分廣泛,正則表達式因其簡潔、高效、強大的文本處理能力得到普遍認可和采用。 —個正則表達式是一個模式,描述符合一系列句法規則的字符串;在具體匹配操作當中,通常是將正則表達式通過標準的Thompson算法或者Glushkov算法等算法轉換為NFA (non-deterministic finite automaton,非確定性有限自動機)或者DFA(deterministic finite automaton,確定性有限自動機),然后借助有限自動機完成匹配操作。基于有限自動機的正則表達式匹配技術需要解決的兩大難題存儲體積和匹配速度,亦即時間復雜度和空間復雜度;在這兩個衡量指標上DFA和NFA互有優劣。其中,DFA中每個源狀態對于輸入字符轉移到一個唯一的目的狀態,即在DFA運行過程中,有且僅有一個活躍狀態,DFA的匹配特征是確定和簡單的,但是DFA需要存儲狀態的空間可能呈現指數級膨脹,最極端的情況下,具有N個狀態的NFA其等價的DFA可能有多大2N個狀態。相比DFA,相應的NFA的存儲體積不存在指數膨脹問題,與正則表達式規則集大小呈現線性增長關系,但是在NFA匹配過程中,NFA包含的每一個狀態對于一個輸入字符,可能會有多個目的狀態被激活,因此在NFA的運行過程中會有數目不確定的狀態處于激活狀態,這些活躍狀態組成一個活躍狀態集合,因此,在NFA的匹配過程中,需要維護一個活躍狀態集合,針對輸入字符的轉換表現為狀態集合之間的轉換,相應的匹配過程比DFA下的匹配過程復雜,導致NFA匹配效率較低。目前還沒有一種方式能夠降低NFA匹配過程中的復雜程度,以有效提高相應的NFA匹配過程中的效率。
    技術實現思路
    本專利技術的目的是提供一種基于圖形處理單元的非確定有限自動機的匹配方法及裝置,從而可以降低NFA匹配過程中的復雜程度,有效提高NFA匹配效率。本專利技術的目的是通過以下技術方案實現的一種基于圖形處理單元的非確定有限自動機的匹配方法,包括計算非確定有限自動機NFA中所有狀態兩兩之間的相容性,并根據所述相容性對所述各個狀態進行編碼形成虛擬NFA,以獲得虛擬NFA對應的虛擬NFA狀態轉換表;其中,所述相容性是指,若NFA中的兩個狀態在NFA匹配過程中不同時處于活躍狀態,則該兩個狀態相容,否則,為不相容;將所述虛擬NFA狀態轉換表存儲在圖形處理單元GPU的全局存儲器中,并基于該虛擬N FA狀態轉換表匹配經過交織處理的待處理數據包中數據。 可選地,所述計算NFA中所有狀態兩兩之間的相容性的步驟包括針對NFA狀態建立NXN的二維表,N為NFA的狀態數目,NFA狀態依次為0,1,2,…,N-I ;在該二維表中,第i+Ι行和第j+Ι列的表項由[i,j]表示;如果狀態i和j是相容的,則表項[i,j]內容設置為true,如果狀態i和j是不相容的,則表項[i,j]內容設置為false ;其中,分別將表項, [1,1], [2,2],…,[N_1,N_1]的內容置為false ;建立初始為空的第一隊列queue并進行初始化,依次將狀態對(0,O),(1,1), (2,2), ···, (N-1, N-1)壓入第一隊列 queue 中;·彈出第一隊列queue首部的狀態對(i, j),使用狀態i, j遍歷全部可能的輸入字符0-255查詢NFA狀態,其中,以當前輸入字符作為轉換字符,以狀態i為源狀態,查詢該NFA狀態獲得目的狀態集合Di,以狀態j為源狀態,查詢該NFA狀態獲得目的狀態集合Dj ;檢查狀態集合Di和狀態集合Dj的并集Di U Dj,并將該并集當中的任意兩個狀態所組成的狀態對(s,t)對應的所述二維表表項內容置為false,若狀態對(s,t)所對應的二維表表項中的內容之前記錄為true,則還需要將狀態對(s, t)壓入第一隊列queue的尾部;判斷第一隊列queue是否非空,如果是,過程結束,否則,繼續再執行所述彈出第一隊列queue首部的狀態對(i, j)的步驟。可選地,所述根據所述相容性對所述各個狀態進行編碼形成虛擬NFA的步驟包括根據所述相容性將NFA中的所有狀態分組,獲得至少一個相容組,所述相容組中的任意兩個狀態之間相容;將得到的所述相容組合并獲得超級相容組,再對所述超級相容組進行編碼形成虛擬狀態,并獲得虛擬NFA。可選地,所述根據所述相容性將NFA中的所有狀態分組,獲得至少一個相容組的步驟包括獲得空的第二隊列queue,在建立的無向圖中一次或多次選取邊度數最大的一條邊,將該邊對應的兩個頂點對應的狀態壓入所述第二隊列queue,并從該無向圖當中去除這條邊,更新剩余無向圖當中各項頂點度數和邊度數;其中,所述無向圖的頂點為NFA的一個狀態,邊為NFA中兩個不相容的狀態對應的頂點之間的連線,頂點度數為與該頂點相連的邊的總數目,邊度數為該邊所關聯的兩個頂點的頂點度數之和;在建立的無向圖中一次或多次選取邊度數最大的一條邊的過程中,若當前被選中邊從無向圖當中移除,剩余圖變為空,則這條邊不壓入第二隊列queue,拆分這條邊的兩個關聯頂點,各自構成一個單元素的獨立集,再使用第二隊列queue中收集的邊對應的狀態對構成新的無向圖,并執行所述獲得空的第二隊列queue的步驟,所述的獨立集對應一個相容組;若剩余無向圖中不存在邊并且非空,則將無向圖中剩余頂點構成一個頂點獨立集,將第二隊列queue中與該獨立集中的狀態相容的NFA狀態加入該獨立集中,再使用第二隊列queue中剩余的頂點構成新的無向圖,并執行所述獲得空的第二隊列queue的步驟;若第二隊列queue空,則過程結束。可選地,所述將得到的所述相容組合并獲得超級相容組的步驟包括按照相容組狀態數的大小進行降序排序,得到降序排列的相容組集合;從所述降序排列的相容組集 合中依次順序取出相容組并加入到當前占用比特數最少的超級相容組當中,同時更新該超級相容組占用的比特數,其中,每個超級相容組初始占用的比特數為O。6、根據權利要求3所述的方法,其特征在于,所述獲得虛擬NFA的步驟包括在超級相容組中,對各個相容組包含的狀態進行編碼,獲得相容組的組內狀態的編碼作為組狀態編碼結果,還對超級相容組的組編號進行編碼,獲得組編號編碼結果;將所述組狀態編碼結果與所述組編號編碼結果聯結,構成該超級相容組中虛擬狀態的完整的編碼,獲得虛擬NFA的狀態,還建立所述虛擬NFA狀態之間的轉換關系,獲得包含虛擬NFA狀態和虛擬NFA狀態之間的轉換關系的虛擬NFA,用于獲得虛擬NFA對應的虛擬NFA狀態轉換表。可選地,建立所述虛擬NFA狀態之間的轉換關系的處理包括以所述虛擬狀態作為源狀態,對于輸入字符進行狀態轉換,根據所本文檔來自技高網
    ...

    【技術保護點】
    一種基于圖形處理單元的非確定有限自動機的匹配方法,其特征在于,包括:計算非確定有限自動機NFA中所有狀態兩兩之間的相容性,并根據所述相容性對所述各個狀態進行編碼形成虛擬NFA,以獲得虛擬NFA對應的虛擬NFA狀態轉換表;其中,所述相容性是指,若NFA中的兩個狀態在NFA匹配過程中不同時處于活躍狀態,則該兩個狀態相容,否則,為不相容;將所述虛擬NFA狀態轉換表存儲在圖形處理單元GPU的全局存儲器中,并基于該虛擬NFA狀態轉換表匹配經過交織處理的待處理數據包中數據。

    【技術特征摘要】
    2012.03.29 CN 201210089447.11.一種基于圖形處理單元的非確定有限自動機的匹配方法,其特征在于,包括 計算非確定有限自動機NFA中所有狀態兩兩之間的相容性,并根據所述相容性對所述各個狀態進行編碼形成虛擬NFA,以獲得虛擬NFA對應的虛擬NFA狀態轉換表;其中,所述相容性是指,若NFA中的兩個狀態在NFA匹配過程中不同時處于活躍狀態,則該兩個狀態相容,否則,為不相容; 將所述虛擬NFA狀態轉換表存儲在圖形處理單元GPU的全局存儲器中,并基于該虛擬NFA狀態轉換表匹配經過交織處理的待處理數據包中數據。2.根據權利要求I所述的方法,其特征在于,所述計算NFA中所有狀態兩兩之間的相容性的步驟包括 針對NFA狀態建立NXN的二維表,N為NFA的狀態數目,NFA狀態依次為O,1,2,…,N-I ;在該二維表中,第i+Ι行和第j+Ι列的表項由[i,j]表示;如果狀態i和j是相容的,則表項[i,j]內容設置為true,如果狀態i和j是不相容的,則表項[i,j]內容設置為false ;其中,分別將表項, [1,1], [2,2],…,[N_1,N_1]的內容置為 false ; 建立初始為空的第一隊列queue并進行初始化,依次將狀態對(0,0),(1,1),(2,2), ···, (N-1, N-1)壓入第一隊列 queue 中; 彈出第一隊列queue首部的狀態對(i, j),使用狀態i,j遍歷全部可能的輸入字符0-255查詢NFA狀態,其中,以當前輸入字符作為轉換字符,以狀態i為源狀態,查詢該NFA狀態獲得目的狀態集合Di,以狀態j為源狀態,查詢該NFA狀態獲得目的狀態集合Dj ;檢查狀態集合Di和狀態集合Dj的并集Di U Dj,并將該并集當中的任意兩個狀態所組成的狀態對(s,t)對應的所述二維表表項內容置為fal se,若狀態對(s,t)所對應的二維表表項中的內容之前記錄為true,則還需要將狀態對(s, t)壓入第一隊列queue的尾部; 判斷第一隊列queue是否非空,如果是,過程結束,否則,繼續再執行所述彈出第一隊列queue首部的狀態對(i, j)的步驟。3.根據權利要求I或2所述的方法,其特征在于,所述根據所述相容性對所述各個狀態進行編碼形成虛擬NFA的步驟包括 根據所述相容性將NFA中的所有狀態分組,獲得至少一個相容組,所述相容組中的任意兩個狀態之間相容; 將得到的所述相容組合并獲得超級相容組,再對所述超級相容組進行編碼形成虛擬狀態,并獲得虛擬NFA。4.根據權利要求3所述的方法,其特征在于,所述根據所述相容性將NFA中的所有狀態分組,獲得至少一個相容組的步驟包括 獲得空的第二隊列queue,在建立的無向圖中一次或多次選取邊度數最大的一條邊,將該邊對應的兩個頂點對應的狀態壓入所述第二隊列queue,并從該無向圖當中去除這條邊,更新剩余無向圖當中各項頂點度數和邊度數;其中,所述無向圖的頂點為NFA的一個狀態,邊為NFA中兩個不相容的狀態對應的頂點之間的連線,頂點度數為與該頂點相連的邊的總數目,邊度數為該邊所關聯的兩個頂點的頂點度數之和; 在建立的無向圖中一次或多次選取邊度數最大的一條邊的過程中,若當前被選中邊從無向圖當中移除,剩余圖變為空,則這條邊不壓入第二隊列queue,拆分這條邊的兩個關聯頂點,各自構成一個單元素的獨立集,再使用第二隊列queue中收集的邊對應的狀態對構成新的無向圖,并執行所述獲得空的第二隊列queue的步驟,所述的獨立集對應一個相容組;若剩余無向圖中不存在邊并且非空,則將無向圖中剩余頂點構成一個頂點獨立集,將第二隊列queue中與該獨立集中的狀態相容的NFA狀態加入該獨立集中,再使用第二隊列queue中剩余的頂點構成新的無向圖,并執行所述獲得空的第二隊列queue的步驟;若第二隊列queue空,則過程結束。5.根據權利要求3所述的方法,其特征在于,所述將得到的所述相容組合并獲得超級相容組的步驟包括 按照相容組狀態數的大小進行降序排序,得到降序排列的相容組集合; 從所述降序排列的相容組集合中依次順序取出相容組并加入到當前占用比特數最少的超級相容組當中,同時更新該超級相容組占用的比特數,其中,每個超級相容組初始占用的比特數為O。6.一種基于圖形處理單元的非確定有限自動機的匹配裝置,其特征在于,包括 虛擬NFA建立模塊,用于計算非確定有限自動機NFA中所有狀態兩兩之間的相容性,并根據所述相容性對所述各個狀態進行編碼形成虛擬NFA,獲得虛擬...

    【專利技術屬性】
    技術研發人員:董群峰
    申請(專利權)人:中國科學技術大學
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产成人无码一二三区视频| 亚洲午夜AV无码专区在线播放| 久久久久亚洲AV片无码下载蜜桃| 无码人妻丰满熟妇区五十路百度| 亚洲的天堂av无码| 精品久久久久久无码人妻中文字幕| 欧洲精品无码一区二区三区在线播放| 日日摸日日碰夜夜爽无码| 熟妇人妻系列aⅴ无码专区友真希| 无码毛片AAA在线| 国产AV无码专区亚洲AV毛网站 | 久久水蜜桃亚洲AV无码精品| 亚洲精品无码永久在线观看你懂的| 亚洲精品无码久久久久YW| 亚洲成a人片在线观看无码| 国产乱子伦精品免费无码专区| 久久国产亚洲精品无码| 狠狠躁天天躁无码中文字幕图| 极品无码国模国产在线观看| 久久亚洲日韩看片无码| 亚洲AV日韩AV永久无码久久| 大桥久未无码吹潮在线观看| 国产精品无码久久av| 无码一区二区三区免费视频| 亚洲AV无码专区在线观看成人| 色综合AV综合无码综合网站| 中文字幕久久精品无码| 曰批全过程免费视频在线观看无码| 无码乱码观看精品久久| 精品无码一区二区三区水蜜桃| 精品人妻无码一区二区色欲产成人| 无码毛片内射白浆视频| 亚洲av无码无线在线观看| 亚洲av无码有乱码在线观看| 亚洲熟妇无码AV| 午夜成人无码福利免费视频| 国产精品99久久久精品无码| 暴力强奷在线播放无码| 亚洲AV无码成人专区片在线观看| 无码少妇一区二区三区浪潮AV| 无码人妻一区二区三区免费看 |