新四季網

一種基於硬體查找表的模式字符的查找方法與流程

2024-03-09 17:35:15 1


本發明涉及存儲器技術領域,尤其涉及一種基於硬體查找表的模式字符的查找方法。



背景技術:

字符串匹配即對一段數據進行指定字符串的查找匹配,可用於對帶有指定特徵字符串的一段數據進行篩選、過濾等應用。

現有字符串匹配方法多採用高級程式語言(如C語言,Java等)編程的軟體方式實現匹配算法,例如:哈希、KMP算法等,通過不同的查找順序減少得到匹配結果的時間。

但是,用高級程式語言編程運行於CPU(Central Processing Unit,中央處理器),以軟體的形式實現字符串匹配的方法並行處理能力相對較差,速度相對較慢,需考慮運行軟體算法的CPU調度問題,不適合用於對實時高速數據流進行字符串匹配。



技術實現要素:

針對上述問題,本發明提出了一種基於硬體查找表的查找模式字符串的方法,所述硬體查找表包括至少一個存儲區;

所述存儲區包括多個存儲單元,所述存儲單元於所述存儲區內的訪問地址的編址方式對應一預定編碼字符集,還提供一模式字符串,所述存儲單元的位寬等於所述模式字符串的字符長度,所述存儲單元的每一位分別順序對應所述模式字符串中的每個字符;

還包括以下步驟:

步驟S1,將所述存儲區中,對應所述模式字符串中每個字符的所述存儲單元的對應位,置邏輯值1;

步驟S2,獲取一目標字符串;

步驟S3,讀取所述目標字符串的第一位;

步驟S4,定義讀取到的所述字符為當前字符;

步驟S5,以所述預定編碼字符集對所述當前字符進行解碼,以獲取所述當前字符對應的編碼;

步驟S6,根據所述編碼於所述存儲區查找對應的所述存儲單元;

步驟S7,於所述步驟S6查找到的所述存儲單元中獲取第一位;

步驟S8,判斷所述步驟S7中獲取的所述第一位的值是否為1,如果是則提供一數字值N,定義N=1,並執行所述步驟S9,如果否執行所述步驟S17;

步驟S9,判斷所述模式字符串的字符長度是否等於1,如果是執行步驟S16;

步驟S10,判斷所述目標字符串剩餘的字符長度是否小於所述模式字符串的長度-N,如果是執行步驟S18;

步驟S11,讀取所述目標字符串的下一位,定義讀取到的字符為第二當前字符;

步驟S12,以所述預定編碼字符集對所述第二當前字符進行解碼,以獲取所述第二當前字符對應的編碼;

步驟S13,根據所述編碼於所述存儲區查找對應的所述存儲單元;

步驟S14,令N=N+1,於所述步驟S13查找到的所述存儲單元中獲取第N位;

步驟S15,判斷所述步驟S14中獲取的所述第N位的值是否為1,如果是返回執行所述步驟S11,如果否執行所述步驟S17;

步驟S16,模式字符串查找成功,退出;

步驟S17,判斷所述當前字符是否為所述目標字符串的最後一位,如果是執行步驟S18,如果否讀取所述目標字符串的下一位,並定義讀取到的字符為當前字符,返回所述步驟S5。

步驟S18,模式字符串查找失敗。

上述的方法,其中,所述步驟S1包括以下步驟:

步驟S1A,讀取所述模式字符串的第一位字符;

步驟S1B,定義讀取到的所述字符為當前字符;

步驟S1C,以所述預定編碼字符集對所述當前字符進行解碼,以獲取所述當前字符對應的編碼;

步驟S1D,根據所述編碼於所述存儲區查找對應的所述存儲單元;

步驟S1E,根據所述當前字符於所述模式字符串中的位置於所述步驟S1D查找到的所述存儲單元中獲取對應的位;

步驟S1F,將所述步驟S1E中獲取的所述位置邏輯值1;

步驟S1G,判斷所述當前字符是否為所述模式字符串的最後一位,如果是執行步驟S2,如果否讀取所述模式字符串的下一位,並定義讀取到的字符為當前字符,返回所述步驟S1C。

上述的方法,其中,所述預定編碼字符集為ASCII編碼字符集。

上述的方法,其中,所述存儲單元的數量為128個。

上述的方法,其中,所述模式字符串的最大字符長度為8。

上述的方法,其中,所述步驟S16與所述步驟S17之間,還包括判斷所述目標字符串剩餘字符長度是否大於等於所述模式字符串的字符長度,若否則執行所述步驟S18。

一種基於硬體查找表的查找模式字符串的方法,所述硬體查找表包括多個如上任一所述的存儲區,每個所述存儲區中的存儲單元的位寬不同。

上述的方法,其中,所述硬體查找表為靜態隨機存取存儲器。

上述的方法,其中,所述存儲區設置有8個。

上述的方法,其中,8個所述存儲區按照所述存儲單元位寬大小依次拼合排列,使不同的所述存儲區中對應相同字符的所述存儲單元以相同的訪問地址進行訪問。

上述的方法,其中,8個所述存儲區按照所述存儲單元位寬依次為8位,7位,6位,5位,4位,3位,2位,1位。

有益效果:本發明提出的一種基於硬體查找表的模式字符的查找方法,採用硬體實現方式的查找匹配過程,不佔用CPU資源,提高系統並行處理能力,利用硬體運行速度快的特點,在若干個硬體時鐘周期內即可得到匹配結果,能對實時輸入的高速待匹配數據流進行實時的查找匹配結果輸出。

附圖說明

圖1為本發明一實施例中基於硬體查找表的模式字符的查找方法的流程示意圖;

圖2為本發明一實施例中存儲器的結構示意圖;

圖3為本發明一實施例中存儲區的排列結構示意圖;

圖4為本發明一實施例中對一個字符長度的模式字符進行查找的示意圖;

圖5為本發明一實施例中對兩個字符長度的模式字符進行查找的示意圖。

具體實施方式

下面結合附圖和實施例對本發明進行進一步說明。

在一個較佳的實施例中,如圖1所示,提出了一種基於硬體查找表的查找模式字符串的方法,如圖2所示,硬體查找表可以包括至少一個存儲區10;

如圖3所示,存儲區10可以包括多個存儲單元20,存儲單元20於存儲區10內的訪問地址的編址方式對應一預定編碼字符集,還提供一模式字符串,存儲單元20的位寬等於模式字符串的字符長度,存儲單元20的每一位分別順序對應模式字符串中的每個字符;

還包括以下步驟:

步驟S1,將存儲區10中,對應模式字符串中每個字符的存儲單元20的對應位,置邏輯值1;

步驟S2,獲取一目標字符串;

步驟S3,讀取目標字符串的第一位;

步驟S4,定義讀取到的字符為當前字符;

步驟S5,以預定編碼字符集對當前字符進行解碼,以獲取當前字符對應的編碼;

步驟S6,根據編碼於存儲區10查找對應的存儲單元20;

步驟S7,於步驟S6查找到的存儲單元20中獲取第一位;

步驟S8,判斷步驟S7中獲取的第一位的值是否為1,如果是則提供一數字值N,定義N=1,並執行步驟S9,如果否執行步驟S17;

步驟S9,判斷模式字符串的字符長度是否等於1,如果是執行步驟S16;

步驟S10,判斷目標字符串剩餘的字符長度是否小於模式字符串的長度-N,如果是執行步驟S18;

步驟S11,讀取目標字符串的下一位,定義讀取到的字符為第二當前字符;

步驟S12,以預定編碼字符集對第二當前字符進行解碼,以獲取第二當前字符對應的編碼;

步驟S13,根據編碼於存儲區10查找對應的存儲單元20;

步驟S14,令N=N+1,於步驟S13查找到的存儲單元20中獲取第N位;

步驟S15,判斷步驟S14中獲取的第N位的值是否為1,如果是返回執行步驟S11,如果否執行步驟S17;

步驟S16,模式字符串查找成功,退出;

步驟S17,判斷當前字符是否為目標字符串的最後一位,如果是執行步驟S18,如果否讀取目標字符串的下一位,並定義讀取到的字符為當前字符,返回步驟S5。

步驟S18,模式字符串查找失敗。

在一個較佳的實施例中,步驟S1包括以下步驟:

步驟S1A,讀取模式字符串的第一位字符;

步驟S1B,定義讀取到的字符為當前字符;

步驟S1C,以預定編碼字符集對當前字符進行解碼,以獲取當前字符對應的編碼;

步驟S1D,根據編碼於存儲區查10找對應的存儲單元20;

步驟S1E,根據當前字符於模式字符串中的位置於步驟S1D查找到的存儲單元20中獲取對應的位;

步驟S1F,將步驟S1E中獲取的位置邏輯值1;

步驟S1G,判斷當前字符是否為模式字符串的最後一位,如果是執行步驟S2,如果否讀取模式字符串的下一位,並定義讀取到的字符為當前字符,返回步驟S1C。

在一個較佳的實施例中,預定編碼字符集可以為ASCII編碼字符集,也可以是其他種類的編碼字符集,此處的ASCII編碼字符集只是其中一種情況,不應視為是對本發明的限制。

上述實施例中,優選地,存儲單元20的數量為128個。

上述實施例中,優選地,模式字符串的最大字符長度為8。

在一個較佳的實施例中,步驟S16與步驟S17之間,還包括判斷目標字符串剩餘字符長度是否大於等於模式字符串的字符長度,若否則執行步驟S18。

在一個較佳的實施例中,還提供了一種基於硬體查找表的查找模式字符串的方法,硬體查找表包括多個如上任一的存儲區10,每個存儲區中的存儲單元20的位寬不同。

在一個較佳的實施例中,硬體查找表為靜態隨機存取存儲器。

在一個較佳的實施例中,存儲區10設置有8個。

在一個較佳的實施例中,8個存儲區10按照存儲單元20位寬大小依次拼合排列,使不同的存儲區10中對應相同字符的存儲單元20以相同的訪問地址進行訪問。

在一個較佳的實施例中,如圖3所示,8個存儲區10按照存儲單元20位寬依次為8位,7位,6位,5位,4位,3位,2位,1位。

具體地,圖3中存儲區10中的存儲單元從右往左存儲空間依次增加,最大存儲空間為8位;圖4中是對一個字符長度的模式字符進行查找的示意圖;圖5中是對兩個字符長度的模式字符進行查找的示意圖,在這種存儲單元20從右往左存儲空間依次增加的先定下,存儲單元20的最大存儲空間為8位,即能查找的模式串的最大字符長度為8個字符長度。

綜上所述,本發明提出的一種基於硬體查找表的模式字符的查找方法,採用硬體實現方式的查找匹配過程,不佔用CPU資源,提高系統並行處理能力,利用硬體運行速度快的特點,在若干個硬體時鐘周期內即可得到匹配結果,能對實時輸入的高速待匹配數據流進行實時的查找匹配結果輸出。

通過說明和附圖,給出了具體實施方式的特定結構的典型實施例,基於本發明精神,還可作其他的轉換。儘管上述發明提出了現有的較佳實施例,然而,這些內容並不作為局限。

對於本領域的技術人員而言,閱讀上述說明後,各種變化和修正無疑將顯而易見。因此,所附的權利要求書應看作是涵蓋本發明的真實意圖和範圍的全部變化和修正。在權利要求書範圍內任何和所有等價的範圍與內容,都應認為仍屬本發明的意圖和範圍內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀