中文引用格式: 楊嘉佳,李正,鄭兒,等. 一種基于指令流水線的數(shù)據(jù)匹配算法[J]. 電子技術(shù)應(yīng)用,2025,51(2):81-85.
英文引用格式: Yang Jiajia,Li Zheng,Zheng Er,et al. A data matching algorithm based on instruction pipeline[J]. Application of Electronic Technique,2025,51(2):81-85.
引言
數(shù)據(jù)匹配技術(shù)可應(yīng)用于數(shù)據(jù)的清洗和治理,如基于正則表達(dá)式的數(shù)據(jù)匹配技術(shù)在基礎(chǔ)數(shù)據(jù)的過濾方面發(fā)揮重要作用,通過數(shù)據(jù)匹配可將無關(guān)數(shù)據(jù)剔除過濾,減少噪聲數(shù)據(jù)的干擾。正則表達(dá)式因具有強(qiáng)大的表征能力,適合用于匹配過濾真實(shí)環(huán)境下的復(fù)雜噪聲數(shù)據(jù)。例如,開源入侵檢測(cè)系統(tǒng)Bro IDS、Snort[1]等都使用了基于正則表達(dá)式的數(shù)據(jù)匹配功能。
基于正則表達(dá)式的數(shù)據(jù)匹配實(shí)現(xiàn)方式通??煞殖蓛煞N:基于非確定型有限自動(dòng)機(jī)(NFA)和確定型有限自動(dòng)機(jī)(DFA)。前者空間復(fù)雜度比較低,與正則表達(dá)式的長度呈線性關(guān)系,但因處理一個(gè)字符需激活多個(gè)狀態(tài),造成匹配時(shí)間復(fù)雜性較大和匹配性能不穩(wěn)定。相比而言,DFA的時(shí)間復(fù)雜性比較低,處理一個(gè)字符只需一次激活單個(gè)狀態(tài),然而卻因規(guī)則的復(fù)雜性易導(dǎo)致狀態(tài)轉(zhuǎn)移空間膨脹甚至“爆炸”,造成巨大的空間開銷。
在大數(shù)據(jù)匹配環(huán)境中,DFA更多地被選擇與應(yīng)用。DFA的匹配性能和空間消耗是基于正則表達(dá)式數(shù)據(jù)匹配技術(shù)的重要衡量因素。截至目前,DFA的空間消耗已有很多可行的算法被提出[2],因而不是本文研究重點(diǎn)。盡管已有若干算法對(duì)DFA的匹配性能進(jìn)行研究,但性能低依舊是制約其廣泛應(yīng)用的瓶頸因素。
針對(duì)此問題,本文基于單指令多數(shù)據(jù)流(Single Instruction Multiple Data)向量指令連續(xù)從內(nèi)存中讀入若干字符段,然后分別與最常被訪問狀態(tài)(行)對(duì)應(yīng)的非信任字符集進(jìn)行字符并行比較操作,通過位置定位函數(shù)累加定位出首個(gè)非信任字符位置,獲取直接略過的總字符數(shù),減少訪存次數(shù),提高算法吞吐率。
本文詳細(xì)內(nèi)容請(qǐng)下載:
http://ihrv.cn/resource/share/2000006330
作者信息:
楊嘉佳,李正,鄭兒,趙靜,燕瑋,劉金
(中國電子信息產(chǎn)業(yè)集團(tuán)有限公司第六研究所,北京 100083)

