專利名稱:模式匹配的體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及模式識別,更準(zhǔn)確地說,涉及數(shù)據(jù)與參考模板或模式的快速匹配。
背景技術(shù):
在通常的模式匹配處理中,把參考模板與輸入數(shù)據(jù)進行比較以便確定哪一個參考模板與輸入數(shù)據(jù)匹配最好。
一種模式匹配的體系結(jié)構(gòu)是通用的計算機運行模式識別軟件。所述結(jié)構(gòu)具有以下優(yōu)點a)由于所述軟件實現(xiàn)方案的緣故,它可以適應(yīng)各種各樣的模式比較算法;以及b)由于參考模板的數(shù)目通常通常僅僅受計算機系統(tǒng)存儲器容量的限制,因此,可以使用大量的參考模板。但是,所述結(jié)構(gòu)具有以下缺點運行速度慢、電源消耗大、對許多應(yīng)用來說太大、昂貴以及軟件復(fù)雜。這樣的結(jié)構(gòu)不很適合于需要快速模式匹配或必須滿足低功率和嵌入式應(yīng)用的便攜式要求的應(yīng)用場合。
另一種模式匹配體系結(jié)構(gòu)使用內(nèi)容可尋址存儲器,后者包括嵌入在每一個存儲單元中的硬件比較器,所述比較器根據(jù)嵌入式比較器的比較功能,將它的存儲地址的內(nèi)容與輸入數(shù)據(jù)的對應(yīng)位進行比較。所述結(jié)構(gòu)具有速度快(由于其硬件實現(xiàn)方案的緣故)和體積小的優(yōu)點。但是,它具有以下缺點1)能夠使用的比較算法的類型有限并且復(fù)雜;2)相當(dāng)高的功耗;3)存儲單元級的復(fù)雜設(shè)計;以及4)不可能使用大量參考模板。對每一個存儲單元實現(xiàn)硬件比較器的成本是昂貴的、不能使用更復(fù)雜的比較準(zhǔn)則以及限制實現(xiàn)多比較準(zhǔn)則的靈活性。例如,這樣一種模式識別結(jié)構(gòu)通常只包括精確的位匹配比較,以便確定(如果有的話)哪一個存儲的參考模板與輸入數(shù)據(jù)的所有位匹配。更復(fù)雜的比較準(zhǔn)則可能太復(fù)雜和/或太昂貴,以致不能在所述結(jié)構(gòu)中應(yīng)用。
雖然前述結(jié)構(gòu)適合一些模式識別的應(yīng)用,但是其它應(yīng)用需要快速的模式匹配結(jié)構(gòu)、提供多種比較算法(包括更復(fù)雜的算法)供選擇、以及消耗相當(dāng)?shù)偷墓摹R虼?,需要對現(xiàn)有的模式匹配結(jié)構(gòu)進行改進。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供一種裝置,它包括選擇單元,它將輸入數(shù)據(jù)劃分成輸入位域,并將一種或多種參考模板劃分成對應(yīng)的參考位域,其中,所述輸入位域和所述參考位域中位的數(shù)目是可編程的;以及距離單元,它確定所述輸入位域和所述對應(yīng)的參考位域之間的一種或多種距離值,并將與所述參考位域關(guān)聯(lián)的所述一種或多種距離值組合成與所述一種或多種參考模板對應(yīng)的一種或多種凈距離值。
在所述裝置的一個實施例中,所述輸入數(shù)據(jù)和所述參考模板中位的數(shù)目是可編程的。
在所述裝置的另一個實施例中,所述距離單元適合于在所述距離值被組合成所述一種或多種凈距離值之前將一個或多個加權(quán)因子應(yīng)用于與每一個參考模板關(guān)聯(lián)的所述距離值。
在所述裝置的再一個實施例中,所述距離單元適合于配置成確定一種或多種類型的距離值和凈距離值,所述一種或多種類型的距離值和凈距離值包括精確位匹配、漢明距離、歐幾里德距離、平均幅度距離和相關(guān)距離中至少一種。
在所述裝置的再另一個實施例中,所述裝置還包括存儲所述輸入數(shù)據(jù)和所述參考模板的所述存儲器,并且所述裝置是在單一集成電路上實現(xiàn)的。
在所述裝置的再另一個實施例中,所述裝置還包括用于交換所述輸入數(shù)據(jù)、所述參考模板、控制數(shù)據(jù)和所述裝置的狀態(tài)數(shù)據(jù)的主機接口。
在所述裝置的再另一個實施例中,所述主機接口是存儲器映射的或輸入/輸出(I/O)映射的。
在所述裝置的再另一個實施例中,所述裝置還包括用于根據(jù)一種或多種可選擇的分類準(zhǔn)則對所述一種或多種凈距離值進行分類的分類器單元。
在所述裝置的再另一個實施例中,所述可選擇的分類準(zhǔn)則包括匹配最好、匹配最差、平均匹配和中等匹配中的一種或多種。
在所述裝置的再另一個實施例中,所述裝置還包括級聯(lián)單元,用于接收其它凈距離值,并且根據(jù)所述一種或多種可選擇的分類準(zhǔn)則,把所述其它凈距離值與所述一種或多種分類的凈距離值進行比較。
在所述裝置的再另一個實施例中,所述裝置還包括決策單元,用于根據(jù)所述一種或多種凈距離值與一種或多種邊界準(zhǔn)則比較的結(jié)果,產(chǎn)生一種或多種決策標(biāo)志。
根據(jù)本發(fā)明的第二方面,提供一種方法,所述方法包括根據(jù)可編程的位域?qū)挾?,將輸入?shù)據(jù)劃分成輸入位域;根據(jù)位域?qū)挾?,將一種或多種參考模板劃分成參考位域,其中,所述參考位域?qū)?yīng)于所述輸入位域;確定所述輸入位域和所述對應(yīng)的參考位域之間的距離值;以及將與所述參考位域關(guān)聯(lián)的所述距離值組合成與所述一種或多種參考模板對應(yīng)的一種或多種凈距離值。
在所述方法的一個實施例中,所述方法還包括配置所述輸入數(shù)據(jù)和所述參考模板的位數(shù)目。
在所述方法的另一個實施例中,所述方法還包括在把所述距離值組合成一種或多種凈距離值之前,把一個或多個加權(quán)因子應(yīng)用于與每一個參考模板關(guān)聯(lián)的所述距離值。
在所述方法的再一個實施例中,確定一種或多種類型的距離值和凈距離值,所述一種或多種類型的距離值和凈距離值包括精確位匹配、漢明距離、歐幾里德距離、平均幅度距離和相關(guān)距離中的一種或多種。
在所述方法的再另一個實施例中,所述方法還包括根據(jù)一種或多種可選擇的分類準(zhǔn)則,對所述一種或多種凈距離值進行分類。
在所述方法的再另一個實施例中,所述可選擇的分類準(zhǔn)則包括匹配最好、匹配最差、平均匹配和中等匹配中的一種或多種。
在所述方法的再另一個實施例中,所述方法還包括將其它凈距離值與所述分類的凈距離值進行比較,以便把所述分類的凈距離值與所述其他凈距離值一起進一步分類。
在所述方法的再另一個實施例中,所述方法還包括根據(jù)把所述一種或多種分類的凈距離值與一種或多種邊界準(zhǔn)則進行比較的結(jié)果來產(chǎn)生一種或多種決策標(biāo)志。
根據(jù)本發(fā)明的三方面,提供一種系統(tǒng),它包括動態(tài)隨機訪問系統(tǒng)存儲器,它連接成存儲由處理器執(zhí)行的指令;以及模式匹配單元,它響應(yīng)處理器的請求,根據(jù)一種或多種分類準(zhǔn)則,確定所述輸入數(shù)據(jù)和一組參考模板之間的一組距離度量并識別與所述輸入數(shù)據(jù)匹配最好的所述參考模板,其中,所述模式匹配單元包括選擇單元和距離單元,其中,所述選擇單元適合于將所述輸入數(shù)據(jù)劃分成輸入位域并將所述一種或多種參考模板劃分成對應(yīng)的參考位域,其中,所述輸入位域和所述參考位域中位的數(shù)目是可編程的,并且其中,所述距離單元適合于確定所述輸入位域和所述對應(yīng)的參考位域之間的一種或多種距離值并將與所述參考位域關(guān)聯(lián)的所述一種或多種距離值組合成與所述一種或多種參考模板對應(yīng)的一種或多種凈距離值。
在所述系統(tǒng)的一個實施例中,所述輸入數(shù)據(jù)和所述參考模板中位的數(shù)目是可編程的。
在所述系統(tǒng)的另一個實施例中,所述距離單元適合于在所述距離值被組合成所述一種或多種凈距離值之前把一個或多個加權(quán)因子應(yīng)用于與每一個參考模板關(guān)聯(lián)的所述距離值。
在所述系統(tǒng)的再一個實施例中,所述模式匹配單元還包括存儲器映射的或輸入/輸出(I/O)映射的主機接口,所述主機接口用于與所述處理器交換所述輸入數(shù)據(jù)、所述參考模板、控制數(shù)據(jù)和狀態(tài)數(shù)據(jù)。
在所述系統(tǒng)的再另一個實施例中,所述模式匹配單元還包括用于根據(jù)一種或多種可選擇的分類準(zhǔn)則將所述一種或多種凈距離值分類的分類器單元。
根據(jù)本發(fā)明的第四方面,提供一種包括機器可存取的媒體的制品,所述媒體包含指令,如果執(zhí)行這些指令,則使系統(tǒng)能夠執(zhí)行以下操作根據(jù)可編程的位寬度將輸入數(shù)據(jù)劃分成位域;根據(jù)所述位域的寬度,將一種或多種參考模板劃分成參考位域,其中,所述參考位域?qū)?yīng)于所述輸入位域;確定所述輸入位域和所述對應(yīng)的參考位域之間的距離值;以及將與所述參考位域關(guān)聯(lián)的所述距離值組合成與所述一種或多種參考模板對應(yīng)的一種或多種凈距離值。
在所述制品的一個實施例中,所述制品還包括指令,如果執(zhí)行這些指令則使所述系統(tǒng)能夠配置所述輸入數(shù)據(jù)和所述參考模板中的位數(shù)目。
在所述制品的另一個實施例中,所述制品還包括指令,如果執(zhí)行這些指令則使所述系統(tǒng)能夠確定一種或多種類型的距離值和凈距離值,所述一種或多種類型的距離值和凈距離值包括精確位匹配、漢明距離、歐幾里德距離、平均幅度距離和相關(guān)距離中的一種或多種。
在所述制品的再一個實施例中,所述制品還包括指令,如果執(zhí)行這些指令則使所述系統(tǒng)能夠根據(jù)一種或多種可選擇的分類準(zhǔn)則對所述一種或多種凈距離值進行分類,所述一種或多種可選擇的分類準(zhǔn)則包括匹配最好、匹配最差、平均匹配和中等匹配中的一種或多種。
借助于例子來說明本發(fā)明的各種實施例,但各種實施例不局限于附圖的各個圖例,在附圖中相同的標(biāo)號表示類似的元件。
圖1是根據(jù)本發(fā)明一個實施例的模式匹配單元的方框圖。
圖2是根據(jù)本發(fā)明一個實施例的圖1的靈活比較和分類單元的方框圖。
圖3是根據(jù)本發(fā)明一個實施例的圖1的控制單元的方框圖。
圖4是根據(jù)本發(fā)明一個實施例的級聯(lián)模式匹配結(jié)構(gòu)的方框圖。
圖5是可以與本發(fā)明實施例一起使用的計算機系統(tǒng)的方框圖。
圖6是說明根據(jù)本發(fā)明實施例的模式匹配方法的流程圖。
具體實施例方式
現(xiàn)在說明模式匹配結(jié)構(gòu)的方法、裝置和系統(tǒng)。在以下的說明中,為了全面理解本發(fā)明的各個實施例,我們陳述了許多具體細(xì)節(jié)。但是,對于本專業(yè)的技術(shù)人員來說,很明顯,沒有這些具體細(xì)節(jié)也能夠?qū)崿F(xiàn)本發(fā)明的實施例。在其它例子中,為了避免對本發(fā)明實施例的說明含糊不清,我們用方框圖形式示出了它們的結(jié)構(gòu)和裝置。
在說明書中提到的”一個實施例”指的是所描述的與實施例有關(guān)的具體特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個實施例中。說明書中各處出現(xiàn)的短語”在一個實施例中”并不需要都指同一個實施例。
模式匹配應(yīng)用的一些例子是鑒別(例如,臉部、語音、指紋、簽名和虹膜匹配)、發(fā)現(xiàn)(例如,條形碼和無線電頻率識別)、通信(例如,語音、視頻、圖像識別和壓縮及頭部分析)以及工業(yè)控制(例如,部件檢驗和預(yù)測維護)。
可以根據(jù)一種或多種比較算法把來自這樣的應(yīng)用的數(shù)據(jù)與一組參考模式或參考模板比較,產(chǎn)生實時數(shù)據(jù)和參考模板之間的各種距離度量。距離度量是根據(jù)距離公式或算法確定兩個數(shù)據(jù)之間的差異。一些距離度量的例子是位精確匹配、漢明距離、歐幾里德(Euclidean)距離、平均幅度距離和相關(guān)距離。有些距離度量可以在一些應(yīng)用中使用,另一些應(yīng)用則不能使用。某些應(yīng)用可以使用多種類型的距離度量。因此,可以實現(xiàn)選擇一種或多種距離度量的能力。
在一些應(yīng)用中,在產(chǎn)生距離度量后,可以進一步處理距離度量或?qū)⑵浞诸?,以便根?jù)一種或多種分類準(zhǔn)則,確定所選參考模板集中哪一個與輸入數(shù)據(jù)的比較結(jié)果最好。例如,對于給定的輸入數(shù)據(jù),它可以確定哪一個參考模板匹配最好、匹配最差、平均匹配和/或中等匹配。根據(jù)”匹配”作出的決策類型可以隨應(yīng)用變化,這樣,就可以實現(xiàn)提供可選擇距離度量的分類模式匹配的結(jié)構(gòu)。
現(xiàn)在參考圖1,圖中示出根據(jù)本發(fā)明一個實施例的模式匹配單元100的方框圖。模式匹配單元100可以提供選擇待產(chǎn)生的一種或多種距離度量的集合(例如,位精確匹配、漢明距離、歐幾里德距離、平均幅度距離和/或相關(guān)距離)的能力、可以提供根據(jù)一種或多種選擇的分類準(zhǔn)則(例如,匹配最好、匹配最差、平均匹配和/或中等匹配)對距離度量進行分類的能力、以及可以包括具有相關(guān)聯(lián)的邏輯和算術(shù)比較機制的查找表機制,所述比較機制用于將輸入數(shù)據(jù)與參考模板集進行匹配并且根據(jù)用戶的選擇提供匹配模板的索引。
在一個實施例中,模式匹配單元100可以集成在存儲器裝置中,使得芯片上的存儲器可以用于存儲大的參考模板集,這樣就可以在不占用主機總線的情況下非常迅速地訪問它們。在一個實施例中,模式匹配單元100可以作為模式匹配加速裝置嵌入處理器。在一個實施例中,嵌入式模式匹配單元100可以映射到處理器的比較指令中,以便提供快速、靈活、復(fù)雜數(shù)據(jù)的比較和分類,并允許處理器執(zhí)行其它任務(wù)。這樣的處理器可以優(yōu)先將嵌入式模式匹配單元100用于各種應(yīng)用,例如,模式識別、分支預(yù)測、智能高速緩存、自適應(yīng)匹配濾波和指令級加密。
仍然參考圖1,輸入緩沖區(qū)106可以通過輸入端102接收輸入數(shù)據(jù),并保存輸入數(shù)據(jù)供靈活比較和分類單元108以后處理。在一個實施例中,輸入緩沖區(qū)106是雙端口或雙緩沖的,允許正當(dāng)前面的輸入數(shù)據(jù)被檢索供靈活比較和分類單元108處理時,不對稱地輸入新的輸入數(shù)據(jù)。
模板存儲器104可以用于接收輸入端102的參考模式或模板,并保存它們供靈活比較和分類單元108以后處理。在一個實施例中,模板存儲器104可以是雙端口或雙緩沖的,以便允許輸入?yún)⒖寄0寮巴瑫r訪問。在各種實施例中,模板存儲器104可以根據(jù)各種存儲器技術(shù)與目標(biāo)應(yīng)用需要的存儲器大小、功率、速度、非易失性等匹配。例如,模板存儲器104可以用半導(dǎo)體裝置,例如,只讀存儲器(ROM)、隨機訪問存儲器(RAM)、動態(tài)隨機訪問存儲器(DRAM)、可擦可編程只讀存儲器(EPROM)、快閃存儲器或電可擦可編程只讀存儲器(EEPROM)實現(xiàn)。
仍然參考圖1,可以把數(shù)據(jù)或矢量從輸入緩沖區(qū)106和模板存儲器104提供給靈活比較和分類單元108。正如后面將結(jié)合圖2更詳細(xì)地進行說明的那樣,靈活比較和分類單元108可以配置成對不同的數(shù)據(jù)寬度進行比較和分類、將輸入數(shù)據(jù)和參考模板劃分或分割成用于比較和分類的子域或維數(shù)、實現(xiàn)各種類型的比較、在輸入數(shù)據(jù)和參考模板之間產(chǎn)生各種不同的距離度量(例如,位精確匹配、漢明距離、歐幾里德距離、平均幅度距離和/或相關(guān)距離)、集合或組合輸入數(shù)據(jù)的各維數(shù)的距離度量、產(chǎn)生凈距離度量、以及根據(jù)一種或多種選擇的準(zhǔn)則(例如,匹配最好、匹配最差、平均匹配和/或中等匹配)將凈距離度量分類。靈活比較和分類單元108還可以包括根據(jù)識別的匹配和某些邊界條件,實現(xiàn)一種或多種決策的機制,并通過一種或多種決策標(biāo)志124標(biāo)明這些決策。靈活比較和分類單元108還可以包括允許多個模式匹配單元108級聯(lián)的級聯(lián)PMU輸入端112,以便適應(yīng)用于比較大量的參考模板或矢量維數(shù)。靈活比較和分類單元108的一個實施例的更詳細(xì)說明將在后面結(jié)合圖2進行。
仍然參考圖1,輸出緩沖區(qū)116可以存儲來自靈活比較和分類單元108的輸出126,并可以將緩沖結(jié)果118提供給復(fù)用器120。靈活比較和分類單元108的輸出126可以包括識別的參考模板匹配、匹配的參考模板、相關(guān)的凈距離度量和/或其它相關(guān)的匹配數(shù)據(jù)的索引值。在一個實施例中,輸出緩沖區(qū)116為先進先出(FIFO)的堆棧。在一個實施例中,復(fù)用器120接收來自輸出緩沖區(qū)116的緩沖結(jié)果118,并且還接收直接來自靈活比較和分類單元108的輸出126。在一種方式(例如,獨立的PMU方式)下,復(fù)用器120可以將緩沖結(jié)果118提供給最終的PMU的輸出122。在另一種方式(例如,級聯(lián)PMU方式)下,復(fù)用器120可以將靈活比較和分類單元108的輸出直接提供給最終的PMU輸出122。最終的PMU輸出122可以作為靈活比較和分類單元108的最終比較/分類輸出提供給主機系統(tǒng)或其它裝置。
在一個實施例中,輸出緩沖區(qū)116可以與控制單元110一起運行,產(chǎn)生合適的標(biāo)志(例如,下溢、溢出、半滿),以便將狀態(tài)信息提供給主機系統(tǒng)。這樣的標(biāo)志使主機系統(tǒng)能夠周期性地輪詢所述標(biāo)志并且在對選擇的大量的輸入矢量進行比較和分類之后作出響應(yīng)。用這種方法,在模式匹配單元100對一組輸入矢量進行比較和分類的同時,主機可以執(zhí)行其它任務(wù)。
仍然參考圖1靈活比較和分類單元,控制單元110可以為模式匹配單元100提供各種配置選項。例如,控制單元110可以對以下項目進行控制輸入數(shù)據(jù)和參考模板將被分成的數(shù)據(jù)的大小/寬度、矢量維數(shù)的數(shù)目和/或?qū)挾?;對每次比較中產(chǎn)生的一種或多種距離度量的選擇;對使用的一種或多種分類準(zhǔn)則的選擇;以及對各種模式匹配單元方式(例如,級聯(lián)方式等)的選擇??刂茊卧?10還可以控制數(shù)據(jù)處理的次序,并在模式匹配單元100的各單元中轉(zhuǎn)移??刂茊卧?10還可以給主機系統(tǒng)或其它裝置提供外部接口,以便與模式匹配單元100相互作用。在一個實施例中,外部接口是存儲器的映射接口。在一個實施例中,外部接口是輸入/輸出(I/O)的映射接口??刂破?10的一個實施例的更詳細(xì)說明將在后面結(jié)合圖3進行。
現(xiàn)在參考圖2,圖中示出根據(jù)本發(fā)明一個實施例的圖1的靈活比較和分類單元108的更詳細(xì)的方框圖。位域選擇單元206可以配置成處理分別來自輸入緩沖區(qū)106和模板存儲器104的輸入數(shù)據(jù)204和參考模板202的不同尺寸或位寬度。輸入數(shù)據(jù)204和參考模板202可以表示為可能具有各種維數(shù)或子域的數(shù)據(jù)或矢量。位域選擇單元206可以配置成將輸入數(shù)據(jù)204和參考模板202劃分或分割成表示矢量的各種維數(shù)的可配置尺寸的一個或多個位域。例如,輸入數(shù)據(jù)204和參考模板202可以是32位的矢量,所述矢量包括彩色顯示像素數(shù)據(jù)的紅、綠、藍(lán)和密度4維。在這種情況下,位域選擇單元206可以配置成處理32位數(shù)據(jù)寬度,并將32位輸入數(shù)據(jù)204和32位的參考模板202劃分或分割成8位的字節(jié)塊或位域,表示成以下的矢量維數(shù)8位紅(R);8位綠(G);8位藍(lán)(B);以及8位密度(I)。
仍然參考圖2,取決于所述配置,比較單元208可以根據(jù)一種或多種比較算法,將輸入數(shù)據(jù)204的每一個位域或維數(shù)與參考模板202的對應(yīng)位域或維數(shù)進行比較,產(chǎn)生一種或多種距離度量。在一個實施例中,比較單元208可以將每一維的距離度量乘上對應(yīng)的權(quán)重因子,可以從內(nèi)部寄存器檢索所述權(quán)重因子。例如,具體的彩色矢量匹配應(yīng)用可以確定紅和亮度是比藍(lán)和綠更重要的比較維數(shù)。在這種情況下,權(quán)重因子的值0.90、0.30、0.40和0.95可以分別用于紅、綠、藍(lán)和亮度維數(shù)。在一個實施例中,比較單元208可以集合或組合所有位域或維數(shù)的距離度量(取決于所述配置,應(yīng)用或沒有應(yīng)用權(quán)重因子),產(chǎn)生輸入數(shù)據(jù)204和參考模板202之間的凈距離度量。
取決于目標(biāo)應(yīng)用,本發(fā)明的實施例可以配置成使用一個或多個比較算法來產(chǎn)生一種或多種距離度量。一些有用的距離度量是位精確匹配、漢明距離、歐幾里德距離、平均幅度距離和相關(guān)距離。現(xiàn)在將簡要地說明這些距離度量。位精確比較是通過比較兩個數(shù)據(jù)對應(yīng)的每一個位確定在兩個被比較的數(shù)據(jù)之間是否存在精確的位與位的匹配。例如,輸入矢量‘0101 1101’是參考模板‘0101 1101’的位精確匹配,但是不是參考模板‘0101 1100’的位精確匹配。漢明距離度量可以通過總的匹配的對應(yīng)位數(shù)目除以總的位寬度(總的匹配位數(shù)目/總的位寬度)確定。例如,輸入矢量‘1011 0110 1010’和參考模板‘0101 1101 0111’之間的漢明距離為3/12或0.25(因為,從右邊的位開始,第2、第7和第9對應(yīng)的位匹配,數(shù)據(jù)位寬度為12)。歐幾里德距離,對于一維矢量,可以使用公式(X-Y)2計算,或者對于具有n維或子域X1...Xn和Y1...Yn的矢量,則使用Σi=1n(Xi-Yi)2]]>計算。平均幅度距離,對一維矢量,可以使用公式|X-Y|計算,或者對于n維矢量或子域X1...Xn和Y1...Yn的矢量,則使用Σi=1n|Xi-Yi|]]>計算。相關(guān)距離,對于一維矢量使用公式X·Y計算,或者對于n維或子域X1...Xn和Y1...Yn的矢量,則使用Σi=1nXi•Yi]]>計算。
仍然參考圖2,比較單元208可以將每一個輸入數(shù)據(jù)204與多參考模板202比較,并將與每一個輸入數(shù)據(jù)相關(guān)的凈距離度量提供給分類單元210。分類單元210可以配置成根據(jù)一種或多種選擇的分類準(zhǔn)則,識別與輸入數(shù)據(jù)204匹配的參考模板202。例如,分類單元210可以配置成確定哪一個參考模板與每一個輸入數(shù)據(jù)匹配最好、匹配最差、平均匹配和/或中等匹配。根據(jù)給定的分類準(zhǔn)則,匹配最好的是具有與輸入數(shù)據(jù)204比較最滿意的凈距離度量的一組的參考模板。根據(jù)給定的分類準(zhǔn)則,匹配最差的是具有與輸入數(shù)據(jù)204比較最小滿意度的凈距離度量的一組的參考模板。平均匹配是其凈距離度量與一組凈距離度量的平均值最接近的參考模板。中等匹配的是其凈距離度量與一組凈距離度量的中值最接近的參考模板。在一個實施例中,靈活比較和分類單元108可以記錄與識別的匹配對應(yīng)的參考模板和凈距離度量的索引值。
仍然參考圖2,在一個實施例中,靈活比較和分類單元108可以包括將從級聯(lián)模式匹配單元選擇的匹配進行分類的深度擴展單元212。例如,多模式匹配單元100(圖1中的)可以進行級聯(lián),以便提高速度(例如,多單元并行處理給定的輸入數(shù)據(jù))或增加用于比較的參考模板的數(shù)目。當(dāng)選擇深度擴展方式時,深度擴展單元212可以將它的分類匹配與在級聯(lián)PMU輸入端214上提供的其它模式匹配單元的分類匹配進行比較,以便確定來自多模式匹配單元100的選擇的匹配的最佳總體匹配。當(dāng)沒有選擇深度擴展方式時,深度擴展單元212可以簡單地將其輸入復(fù)制到其輸出218上。后面將結(jié)合圖4說明級聯(lián)模式匹配結(jié)構(gòu)的一個實施例的更多細(xì)節(jié)。
仍然參考圖2,在一個實施例中,靈活比較和分類單元108還可以包括決策單元220。決策單元220可以接收深度擴展單元212的輸出218(所述輸出可以包括識別的匹配和關(guān)聯(lián)的距離度量),并且還可以接收一個或多個表示決策準(zhǔn)則或閾值的邊界準(zhǔn)則222。決策單元220可以將輸出218與邊界準(zhǔn)則222比較,產(chǎn)生一個或多個決策標(biāo)志224,所述決策標(biāo)志224表示模式匹配單元100根據(jù)所述比較結(jié)果作出的各種決策。例如,在指紋匹配應(yīng)用中,如果最接近的歐幾里德距離度量的值小于預(yù)定值,那么,決策單元220可以配置成認(rèn)定‘指紋匹配’標(biāo)志。在一個實施例中,決策單元220可以用于打算獨立用于嵌入式應(yīng)用中的模式匹配單元100。還可以提供各種控制輸入216,以便控制靈活比較和分類單元108的定時、排序和總體功能。
現(xiàn)在參考圖3,圖中示出根據(jù)本發(fā)明一個實施例的圖1的控制單元110的方框圖。外部接口308允許主機系統(tǒng)或其它裝置通過地址信號302、數(shù)據(jù)信號304和讀/寫信號306與模式匹配單元100連接。使用外部接口308,主機裝置或系統(tǒng)可以在模板存儲器104中存儲模板,將數(shù)據(jù)輸入到輸入緩沖區(qū)106,并從輸出緩沖區(qū)116讀出結(jié)果??梢酝ㄟ^內(nèi)部地址總線310和內(nèi)部數(shù)據(jù)總線312進行由主機通過地址輸入302和數(shù)據(jù)輸入304提供的地址和數(shù)據(jù)信息的模式匹配單元100的內(nèi)部通信。
在一個實施例中,控制單元110可以為使用主機系統(tǒng)的存儲器空間的4個地址的模式匹配單元100提供存儲器映射接口。表1示出了映射的例子。
表1
在一個實施例中,控制寄存器314可以包括以下內(nèi)容a)模板存儲器104中模板的開始地址;b)待比較的模板數(shù)目;c)每維的位域?qū)挾龋籨)每個矢量的矢量維數(shù);e)深度擴展接通/斷開;以及f)選擇距離度量。在一個實施例中,控制單元110可以包括存儲各種標(biāo)志(例如,執(zhí)行/不執(zhí)行、級聯(lián)方式、存儲器檢驗)的狀態(tài)寄存器316。在一個實施例中,控制單元110可以包括提供各種調(diào)試操作的調(diào)試寄存器318。
仍然參考圖3,配置和時序解碼器320將配置信息326提供給模式匹配單元100。序列發(fā)生器322提供控制信號324,以便控制模式匹配單元100的各個功能模塊的時序和操作。
現(xiàn)在參考圖4,圖中示出根據(jù)本發(fā)明一個實施例的級聯(lián)模式匹配結(jié)構(gòu)400的方框圖。圖4示出了多模式匹配單元100(圖1的)怎樣能夠級聯(lián),以便提高處理速度(例如,多單元并行處理一個或多個輸入數(shù)據(jù))和/或增加用于比較的參考模板的數(shù)目。輸入數(shù)據(jù)通過輸入端102(a)、102(b)和102(c)分別提供給模式匹配單元100(a)、100(b)和100(c)。模式匹配單元100(a)、100(b)和100(c)可以通過將模式匹配單元100(a)的最終PMU輸出122(a)連接到模式匹配單元100(b)的級聯(lián)PMU輸入122(b)以及將模式匹配單元100(b)的最終PMU輸出122(b)連接到模式匹配單元100(c)的級聯(lián)PMU輸入端112(c),而以級聯(lián)方式進行連接。在所述實施例中,模式匹配單元100(a)、100(b)和100(c)中每一個的深度擴展單元212一起工作,以便確定由多模式匹配單元100比較和分類的最佳的總匹配,并在最終的PMU輸出122(c)上提供最佳的總匹配數(shù)據(jù)。在一個實施例中,級聯(lián)結(jié)構(gòu)可以用于允許比較更大量的參考模板。例如,相同的輸入數(shù)據(jù)可以并行地與存儲在多級聯(lián)模式匹配單元中的不同參考模板集比較。在一個實施例中,相同的參考模板集可以存儲在多級聯(lián)模式匹配單元中,以便提高輸入數(shù)據(jù)集的比較和分類速度。
這些實施例可以用邏輯電路、狀態(tài)機、微代碼或它們的一些組合實現(xiàn)。實施例可以用代碼實現(xiàn),并可以存儲在可以存儲指令的存儲媒體中,這些指令可以用于執(zhí)行這些指令的計算機系統(tǒng)編程。存儲媒體可以包括(但不局限于)所有磁盤類,包括軟磁盤、光盤、只讀光盤(CD-ROM)、可重寫光盤(CD-RW)和磁光盤、半導(dǎo)體器件(例如,只讀存儲器(ROM)、隨機訪問存儲器(RAM)、動態(tài)隨機訪問存儲器(DRAM)、可擦可編程只讀存儲器(EPROM)、快閃存儲器、電可擦可編程只讀存儲器(EEPROM)、磁或光卡、網(wǎng)絡(luò)存儲器件或任何適合存儲電指令的媒體)。
示例性實施例可以用由配置成具有合適的硬件裝置組合的合適的計算機系統(tǒng)執(zhí)行的軟件實現(xiàn)。
現(xiàn)在參考圖5,圖中示出可以用于本發(fā)明實施例的計算機系統(tǒng)500的方框圖。在一個實施例中,計算機系統(tǒng)500包括處理器510,后者可以包括通用的或?qū)S玫奶幚砥?例如,微處理器、微控制器)、可編程門陣列(PGA)等。這里使用的術(shù)語”計算機系統(tǒng)”可以是基于處理器的任何類型的系統(tǒng),例如,臺式計算機、服務(wù)器計算機、膝上型計算機等或其它類型的主機系統(tǒng)。
在一個實施例中,處理器510可以通過主機總線515連接到存儲器的集線器530上,存儲器的集線器可以通過存儲器總線525連接到系統(tǒng)存儲器520(例如,動態(tài)RAM)上。存儲器的集線器530還可以通過先進的圖形端口(AGP)總線533連接到視頻控制器535,視頻控制器535可以連接到顯示器537。AGP總線533符合加速圖形端口的接口規(guī)格(由Intel Corporation,Santa Clara,California于1998年5月公布的2.0版本)。
模式匹配單元100(圖1的)可以通過存儲器總線525連接到存儲器集線器530。在所述實施例中,模式匹配單元100可以是存儲器映射裝置。在另一個實施例中,模式匹配單元100可以是輸入/輸出(I/O)映射裝置。在一個實施例中,模式匹配單元100可以作為模式匹配加速器嵌入處理器510中。在一個實施例中,嵌入式模式匹配單元100可以映射成處理器510的比較指令,以便提供快速、靈活、復(fù)雜的數(shù)據(jù)比較和分類,同時允許處理器510執(zhí)行其它任務(wù)。處理器510可以優(yōu)先將模式匹配單元100用于各種應(yīng)用中,例如,模式識別、分支預(yù)測、智能高速緩存、自適應(yīng)匹配濾波和指令級加密。
如由1995年6月的PCI局部總線規(guī)格、產(chǎn)品版本、修訂版2.1確定的,存儲器集線器530還可以(通過集線器鏈路538)連接到輸入/輸出(I/O)集線器540,所述輸入輸出集線器連接到輸入輸出(I/O)擴展總線542和外圍部件互連(PCI)總線544。I/O擴展總線542可以連接到控制訪問一個或多個I/O裝置的I/O控制器546。如圖5中所示,這些裝置可以被包括在一個實施例的存儲裝置中,例如,軟磁盤驅(qū)動器550和輸入裝置(例如,鍵盤552和鼠標(biāo)554)。如圖5中所示,I/O集線器540還可以連接到硬磁盤驅(qū)動器556和光盤(CD)驅(qū)動器558。顯然,系統(tǒng)中還可以包括其它存儲媒體。
PCI總線544還可以連接到各種部件,包括連接到網(wǎng)絡(luò)端口(未示出)的網(wǎng)絡(luò)控制器560。附加裝置可以連接到I/O擴展總線542和PCI總線544,例如,連接到并行口、串行口、非易失性存儲器等的輸入/輸出控制電路。
雖然前面說明引用了系統(tǒng)500的具體部件,但是可以預(yù)計,對描述和說明的實施例可以有許多修改和變化。而且,雖然圖5示出諸如個人計算機的系統(tǒng)的方框圖,但是應(yīng)該理解,本發(fā)明的實施例可以用專用的模式識別裝置、個人數(shù)字助理(PDA)等實現(xiàn)。
現(xiàn)在參考圖6,圖中示出根據(jù)本發(fā)明一個實施例的說明模式匹配方法的流程圖。配置選項允許選擇一種或多種用于將輸入數(shù)據(jù)與參考模板或模式比較的距離度量或比較算法,并且還允許選擇一種或多種分類準(zhǔn)則,后者用于根據(jù)所述選擇的一種或多種準(zhǔn)則識別一種或多種與給定的輸入數(shù)據(jù)匹配”最好”的參考模板(方框602)。配置選項允許選擇輸入數(shù)據(jù)和參考模板的位寬度或維數(shù)大小,并且還允許選擇每一個輸入數(shù)據(jù)和參考模板的大小和/或維數(shù)(方框604)。在一個實施例中,配置選項可以提供對輸入數(shù)據(jù)和參考模板的總位寬度以及每一個輸入數(shù)據(jù)和參考模板的維數(shù)的選擇。
在設(shè)置配置選項之后,通過取得待比較和分類的輸入數(shù)據(jù)后繼續(xù)進行模式匹配過程(方框606)。還要獲取輸入數(shù)據(jù)將與其進行比較的參考模板(方框608)。為了給多維數(shù)據(jù)的比較提供靈活性,可以根據(jù)配置選項把輸入數(shù)據(jù)和參考模板各自劃分成多維或多個位域(方框610),使得可以確定輸入數(shù)據(jù)和參考模板的每一個對應(yīng)維的距離度量(方框612)。一旦確定每一維的距離度量,就可以將一個或多個加權(quán)因子應(yīng)用于與所述一維或多維關(guān)聯(lián)的距離度量(方框614)。然后,可以把距離度量集合或組合成關(guān)于所述輸入數(shù)據(jù)和參考模板的凈距離度量(方框616)??梢灾貜?fù)方框608至616,一直到將給定的參考數(shù)據(jù)與所有選擇的參考模板都進行了比較為止(菱形618)。如果輸入數(shù)據(jù)與所有參考模板都進行了比較,就可以根據(jù)選擇的分類準(zhǔn)則對凈距離度量進行分類,以便確定哪一個距離度量(和對應(yīng)的參考模板)與輸入數(shù)據(jù)匹配”最好”(方框620)。在一個實施例中,方框620識別的匹配可以與一個或多個邊界準(zhǔn)則比較,并可以根據(jù)比較作出一個或多個決策(方框622)。
這樣,對模式匹配結(jié)構(gòu)的方法、裝置和系統(tǒng)都進行了說明。雖然已經(jīng)就有限數(shù)目的實施例對本發(fā)明進行了說明,但是從所述公開獲益的本專業(yè)的技術(shù)人員將明白其中的許多修改和變化。我們的意圖是,所附的權(quán)利要求書將覆蓋屬于本發(fā)明的精神和范圍內(nèi)的所有這些修改和變化。
權(quán)利要求
1.一種裝置,它包括選擇單元,它將輸入數(shù)據(jù)劃分成輸入位域,并將一種或多種參考模板劃分成對應(yīng)的參考位域,其中,所述輸入位域和所述參考位域中位的數(shù)目是可編程的;以及距離單元,它確定所述輸入位域和所述對應(yīng)的參考位域之間的一種或多種距離值,并將與所述參考位域關(guān)聯(lián)的所述一種或多種距離值組合成與所述一種或多種參考模板對應(yīng)的一種或多種凈距離值。
2.如權(quán)利要求1所述的裝置,其中,所述輸入數(shù)據(jù)和所述參考模板中位的數(shù)目是可編程的。
3.如權(quán)利要求1所述的裝置,其中,所述距離單元適合于在所述距離值被組合成所述一種或多種凈距離值之前將一個或多個加權(quán)因子應(yīng)用于與每一個參考模板關(guān)聯(lián)的所述距離值。
4.如權(quán)利要求1所述的裝置,其中,所述距離單元適合于配置成確定一種或多種類型的距離值和凈距離值,所述一種或多種類型的距離值和凈距離值包括精確位匹配、漢明距離、歐幾里德距離、平均幅度距離和相關(guān)距離中至少一種。
5.如權(quán)利要求1所述的裝置,其中還包括存儲所述輸入數(shù)據(jù)和所述參考模板的所述存儲器,并且所述裝置是在單一集成電路上實現(xiàn)的。
6.如權(quán)利要求1所述的裝置,其中還包括用于交換所述輸入數(shù)據(jù)、所述參考模板、控制數(shù)據(jù)和所述裝置的狀態(tài)數(shù)據(jù)的主機接口。
7.如權(quán)利要求6所述的裝置,其中,所述主機接口是存儲器映射的或輸入/輸出(I/O)映射的。
8.如權(quán)利要求1所述的裝置,其中還包括用于根據(jù)一種或多種可選擇的分類準(zhǔn)則對所述一種或多種凈距離值進行分類的分類器單元。
9.如權(quán)利要求8所述的裝置,其中,所述可選擇的分類準(zhǔn)則包括匹配最好、匹配最差、平均匹配和中等匹配中的一種或多種。
10.如權(quán)利要求8所述的裝置,其中還包括級聯(lián)單元,用于接收其它凈距離值,并且根據(jù)所述一種或多種可選擇的分類準(zhǔn)則,把所述其它凈距離值與所述一種或多種分類的凈距離值進行比較。
11.如權(quán)利要求8所述的裝置,其中還包括決策單元,用于根據(jù)所述一種或多種凈距離值與一種或多種邊界準(zhǔn)則比較的結(jié)果,產(chǎn)生一種或多種決策標(biāo)志。
12.一種方法,它包括根據(jù)可編程的位域?qū)挾?,將輸入?shù)據(jù)劃分成輸入位域;根據(jù)位域?qū)挾龋瑢⒁环N或多種參考模板劃分成參考位域,其中,所述參考位域?qū)?yīng)于所述輸入位域;確定所述輸入位域和所述對應(yīng)的參考位域之間的距離值;以及將與所述參考位域關(guān)聯(lián)的所述距離值組合成與所述一種或多種參考模板對應(yīng)的一種或多種凈距離值。
13.如權(quán)利要求12所述的方法,其中還包括配置所述輸入數(shù)據(jù)和所述參考模板的位數(shù)目。
14.如權(quán)利要求12所述的方法,其中還包括在把所述距離值組合成一種或多種凈距離值之前,把一個或多個加權(quán)因子應(yīng)用于與每一個參考模板關(guān)聯(lián)的所述距離值。
15.如權(quán)利要求12所述的方法,其中,確定一種或多種類型的距離值和凈距離值,所述一種或多種類型的距離值和凈距離值包括精確位匹配、漢明距離、歐幾里德距離、平均幅度距離和相關(guān)距離中的一種或多種。
16.如權(quán)利要求12所述的方法,其中還包括根據(jù)一種或多種可選擇的分類準(zhǔn)則,對所述一種或多種凈距離值進行分類。
17.如權(quán)利要求16所述的方法,其中,所述可選擇的分類準(zhǔn)則包括匹配最好、匹配最差、平均匹配和中等匹配中的一種或多種。
18.如權(quán)利要求16所述的方法,其中還包括將其它凈距離值與所述分類的凈距離值進行比較,以便把所述分類的凈距離值與所述其他凈距離值一起進一步分類。
19.如權(quán)利要求16所述的方法,其中還包括根據(jù)把所述一種或多種分類的凈距離值與一種或多種邊界準(zhǔn)則進行比較的結(jié)果來產(chǎn)生一種或多種決策標(biāo)志。
20.一種系統(tǒng),它包括動態(tài)隨機訪問系統(tǒng)存儲器,它連接成存儲由處理器執(zhí)行的指令;以及模式匹配單元,它響應(yīng)處理器的請求,根據(jù)一種或多種分類準(zhǔn)則,確定所述輸入數(shù)據(jù)和一組參考模板之間的一組距離度量并識別與所述輸入數(shù)據(jù)匹配最好的所述參考模板,其中,所述模式匹配單元包括選擇單元和距離單元,其中,所述選擇單元適合于將所述輸入數(shù)據(jù)劃分成輸入位域并將所述一種或多種參考模板劃分成對應(yīng)的參考位域,其中,所述輸入位域和所述參考位域中位的數(shù)目是可編程的,并且其中,所述距離單元適合于確定所述輸入位域和所述對應(yīng)的參考位域之間的一種或多種距離值并將與所述參考位域關(guān)聯(lián)的所述一種或多種距離值組合成與所述一種或多種參考模板對應(yīng)的一種或多種凈距離值。
21.如權(quán)利要求20所述的系統(tǒng),其中,所述輸入數(shù)據(jù)和所述參考模板中位的數(shù)目是可編程的。
22.如權(quán)利要求20所述的系統(tǒng),其中,所述距離單元適合于在所述距離值被組合成所述一種或多種凈距離值之前把一個或多個加權(quán)因子應(yīng)用于與每一個參考模板關(guān)聯(lián)的所述距離值。
23.如權(quán)利要求20所述的系統(tǒng),其中,所述模式匹配單元還包括存儲器映射的或輸入/輸出(I/O)映射的主機接口,所述主機接口用于與所述處理器交換所述輸入數(shù)據(jù)、所述參考模板、控制數(shù)據(jù)和狀態(tài)數(shù)據(jù)。
24.如權(quán)利要求20所述的系統(tǒng),其中,所述模式匹配單元還包括用于根據(jù)一種或多種可選擇的分類準(zhǔn)則將所述一種或多種凈距離值分類的分類器單元。
25.一種包括機器可存取的媒體的制品,所述媒體包含指令,如果執(zhí)行這些指令,則使系統(tǒng)能夠執(zhí)行以下操作根據(jù)可編程的位寬度將輸入數(shù)據(jù)劃分成位域;根據(jù)所述位域的寬度,將一種或多種參考模板劃分成參考位域,其中,所述參考位域?qū)?yīng)于所述輸入位域;確定所述輸入位域和所述對應(yīng)的參考位域之間的距離值;以及將與所述參考位域關(guān)聯(lián)的所述距離值組合成與所述一種或多種參考模板對應(yīng)的一種或多種凈距離值。
26.如權(quán)利要求25所述的制品,其中還包括指令,如果執(zhí)行這些指令則使所述系統(tǒng)能夠配置所述輸入數(shù)據(jù)和所述參考模板中的位數(shù)目。
27.如權(quán)利要求25所述的制品,其中還包括指令,如果執(zhí)行這些指令則使所述系統(tǒng)能夠確定一種或多種類型的距離值和凈距離值,所述一種或多種類型的距離值和凈距離值包括精確位匹配、漢明距離、歐幾里德距離、平均幅度距離和相關(guān)距離中的一種或多種。
28.如權(quán)利要求25所述的制品,其中還包括指令,如果執(zhí)行這些指令則使所述系統(tǒng)能夠根據(jù)一種或多種可選擇的分類準(zhǔn)則對所述一種或多種凈距離值進行分類,所述一種或多種可選擇的分類準(zhǔn)則包括匹配最好、匹配最差、平均匹配和中等匹配中的一種或多種。
全文摘要
模式匹配單元包括選擇單元,選擇單元將輸入數(shù)據(jù)和一種或多種參考模板分別劃分成與參考位域?qū)?yīng)的輸入位域。輸入和參考位域的數(shù)目是可編程的。還包括距離單元,用于確定輸入位域和對應(yīng)的參考位域之間的一種或多種距離度量。把與參考位域關(guān)聯(lián)的距離度量組合成與一種或多種參考模板對應(yīng)的一種或多種凈距離度量。
文檔編號G06K9/00GK1728157SQ20051008824
公開日2006年2月1日 申請日期2005年7月29日 優(yōu)先權(quán)日2004年7月30日
發(fā)明者P·拉姆庫馬 申請人:英特爾公司