基于粗粒度并行的指紋匹配單元的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種指紋匹配單元,尤其是一種基于粗粒度并行的指紋匹配單元。
【背景技術(shù)】
[0002]在當前信息時代,個人鑒定是一個很重要的話題,而快速、精確且便捷是個人鑒定系統(tǒng)所必需的。指紋是作為一種穩(wěn)定、唯一且易采集的生物特征,指紋識別技術(shù)被廣泛應用于生物識別領(lǐng)域。指紋匹配是指紋識別的一個關(guān)鍵過程,因此有很多指紋匹配的算法被提出?;诩毠?jié)點的指紋匹配算法,因為簡單,且匹配精度高而被廣泛應用。
[0003]細節(jié)點(minutia)是指紋圖片中表征指紋差異性的特征點,一個規(guī)范、高質(zhì)量的指紋圖片一般有70-80個細節(jié)點,在局部、或不完整的指紋圖片中,細節(jié)點的數(shù)目要少很多。一個細節(jié)點包含三個屬性,即X坐標、Y坐標和方向。所以一個指紋能夠用它的細節(jié)點特征來簡單描述。而指紋匹配則是比較兩個指紋細節(jié)點的相似度。
[0004]實際應用中,指紋匹配是一個需要實時性的應用,為了達到這個目的,之前已經(jīng)有人提出了相關(guān)的硬件設(shè)計方案,附圖1是Richard M.Jiang等人采用基于細節(jié)點的指紋匹配算法設(shè)計的指紋匹配硬件單元(Richard M.Jiang, Danny Crookes, FPGA-based minutiamatching for b1metric fingerprint image database retrieval, J Real-Time ImageProc (2008), 3:177-182.)。
[0005]參照圖1,該指紋匹配單元由EJ0(Early_Jump_0ut)控制單元和PE(運算單元,Process-Element)陣列兩部分組成。為了保證該單元能夠正常運行,指紋匹配單元與主機相連,主機和模板指紋庫相連。模板指紋庫即為存儲模板指紋的內(nèi)存。主機向存儲器發(fā)送請求,從存儲器讀取指紋數(shù)據(jù),將指紋數(shù)據(jù)送給EJO控制單元。PE陣列與EJO控制單元相連,由N個PE組成,N代表待查詢指紋中細節(jié)點的數(shù)目,N取64,對于待查詢細節(jié)點數(shù)目小于64的,需要用無效數(shù)據(jù)(即將指紋細節(jié)點的X坐標值,Y坐標值和方向值均設(shè)為-1)將細節(jié)點補充為64個。一個PE完成待查詢指紋一個細節(jié)點與一個模板指紋所有細節(jié)點的比較,N個PE完成待查詢指紋N個細節(jié)點與一個模板指紋的所有細節(jié)點的比較,得到N個細節(jié)點中與模板指紋細節(jié)點的比較結(jié)果并將比較結(jié)果送給EJ0控制單元,如果相同(即待查詢指紋細節(jié)點3個屬性與模板指紋細節(jié)點對應屬性的差值小于閾值),則結(jié)果為1,如果不同,則結(jié)果為O。EJO控制單元通過廣播通道、OR邏輯總線與PE陣列相連,并通過電纜與主機相連,向主機發(fā)送模板指紋地址,從主機接收啟動信號和模板指紋數(shù)據(jù)。EJO控制單元通過廣播通道將模板指紋的細節(jié)點廣播到運算單元陣列,運算單元陣列通過OR邏輯總線將匹配結(jié)果傳輸給EJO控制單元。EJO控制單元根據(jù)從PE陣列獲得的比較結(jié)果判斷當前模板指紋與待查詢指紋細節(jié)點不相同的數(shù)目是否大于之前的模板指紋,如果大于,則EJO控制單元產(chǎn)生新的模板指紋地址從主機接收新的模板指紋;如果小于,則EJO控制單元向PE陣列發(fā)送當前模板指紋的下一個細節(jié)點。
[0006]Richard M.Jiang等人提出的指紋匹配硬件單元能夠?qū)崿F(xiàn)每秒1.22百萬個模板指紋與待查詢指紋匹配。雖然如此,在大多數(shù)場合中,指紋匹配的指紋庫都是非常巨大的,而現(xiàn)有的指紋匹配單元吞吐率(每秒匹配的模板指紋數(shù)目)仍不能夠滿足實時性的要求。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)問題是提供一種基于粗粒度并行的指紋匹配單元,提高指紋匹配模塊吞吐率。
[0008]本發(fā)明中采用W(W = 64K, K ^ 8)位表示一組數(shù)據(jù),所用存儲器的訪存位寬也是W位。存儲器中預存的數(shù)據(jù)包括3個部分:參數(shù)、待查詢指紋和模板指紋庫。參數(shù)包括3個,即單個指紋細節(jié)點數(shù)目、模板指紋總數(shù)和匹配結(jié)果地址。單個指紋細節(jié)點數(shù)目表示一個指紋包含的細節(jié)點數(shù)目,設(shè)為M,如果某個指紋的細節(jié)點數(shù)目小于M,則在數(shù)據(jù)預存時,用無效數(shù)據(jù)填充:無效數(shù)據(jù)一般采用7FFFFFFFFFFFFFFF表示。模板指紋總數(shù)表示模板指紋庫中所包含的模板指紋的個數(shù),此參數(shù)用于作為匹配終止條件。匹配結(jié)果地址表示從本發(fā)明的指紋匹配單元組輸出的結(jié)果存儲的首地址??紤]到坐標值及方向值的大小,本發(fā)明中用64位表示一個指紋細節(jié)點,其中18位表示X坐標、18位表示Y坐標,28位表示方向(orien)。
[0009]本發(fā)明由T (0〈Τ 16)個指紋匹配單元組 FMEG (FingerprintMatchingElementGroup)、多請求控制器、結(jié)果競選部件、訪存輸入選擇器、存儲器、指示燈、開始鍵組成,T個指紋匹配單元組FMEG記為指紋匹配單元組O?指紋匹配單元組T-1。
[0010]多請求控制器與T個指紋匹配單元組、訪存輸入選擇器相連,對T個指紋匹配單元組的訪存請求進行仲裁,將從訪存輸入選擇器接收到的數(shù)據(jù)分發(fā)給T個指紋匹配單元組。
[0011]指紋匹配單元組i(o ( i ( T-1)與多請求控制器、結(jié)果競選部件及開始鍵相連,完成一組指紋與待查詢指紋的匹配。
[0012]訪存輸入選擇器是一個二選一選擇器,與多請求控制器、存儲器及結(jié)果競選部件相連,結(jié)果競選部件發(fā)送的第一控制信號無效時,訪存輸入選擇器接收多請求控制器發(fā)送的訪存請求,并發(fā)送給存儲器,在接收到存儲器發(fā)送的數(shù)據(jù)時,訪存輸入選擇器將數(shù)據(jù)發(fā)送給多請求控制器;在結(jié)果競選部件發(fā)送的第一控制信號有效時,訪存輸入選擇器接收結(jié)果競選部件發(fā)送的訪存請求,并發(fā)送給存儲器,在接收到存儲器發(fā)送的數(shù)據(jù)時,訪存輸入選擇器將數(shù)據(jù)發(fā)送給結(jié)果競選部件。
[0013]結(jié)果競選部件與T個指紋匹配單元組、訪存輸入選擇器及指示燈相連,根據(jù)匹配結(jié)果選擇出模板指紋庫中與待查詢結(jié)果匹配程度最高的指紋。
[0014]存儲器與訪存輸入選擇器相連,存儲模板指紋庫、待查詢指紋、匹配結(jié)果及相關(guān)參數(shù)。
[0015]開始鍵與T個指紋匹配單元組相連,啟動基于粗粒度并行的指紋匹配單元。
[0016]指示燈與結(jié)果競選部件相連,指示匹配過程完成。
[0017]多請求控制器由請求處理單元和物理接口層組成。
[0018]請求處理單元與T個指紋匹配單元組及物理接口層相連,負責從T個指紋匹配單元組選擇一組作為當前占用多請求控制器的指紋匹配單元組,記作指紋匹配單元組j (O < j < T-1),請求處理單元只處理指紋匹配單元組j的請求,并且只向指紋匹配單元組j發(fā)送信號。請求處理單元由仲裁器、輸入選擇部件、請求響應生成部件、輸出選擇部件、讀使能生成部件以及編號緩沖部件、命令緩沖部件、寫請求數(shù)據(jù)緩沖部件、讀回數(shù)據(jù)緩沖部件四個緩沖部件組成。
[0019]物理接口層與請求處理單元及訪存輸入選擇器相連,物理接口層由訪存信號處理部件、讀FIFO_CMD控制信號生成部件和讀FIFO_WDF控制信號生成部件組成,物理接口層將從請求處理單元接收到的信號處理后發(fā)送給訪存輸入選擇器;將從訪存輸入選擇器接收的信號處理后發(fā)送給請求處理單元。
[0020]指紋匹配單元組i (O < i < T-1)與開始鍵、多請求控制器及結(jié)果競選部件相連。每個指紋匹配單元組結(jié)構(gòu)完全相同。指紋匹配單元組i由主控制狀態(tài)機、副控制狀態(tài)機、讀請求生成部件、寫請求生成部件、數(shù)據(jù)接收部件、計算已匹配指紋數(shù)部件、數(shù)據(jù)初始化標志寄存器、工作使能標志寄存器、當前指紋組匹配完成標志寄存器、匹配結(jié)果寄存器、單元組停止標志寄存器、K (I彡K彡8)個指紋匹配單元(FME)組成。
[0021]結(jié)果競選部件由單元組停止標志收集部件、訪存處理部件、現(xiàn)存匹配成功細節(jié)點數(shù)目寄存器、現(xiàn)存模板指紋細節(jié)點數(shù)目寄存器、現(xiàn)存匹配結(jié)果編號寄存器、第一比較器、第二比較器、編號選擇器組成。
[0022]存儲器為雙倍速率同步動態(tài)隨機存儲器(DDR3 SDRAM),可以隨時提供任何地址的數(shù)據(jù),存儲大小建議2GB以上,訪存位寬為W位,存儲器中存有匹配所需數(shù)據(jù),包括待查詢指紋、模板指紋庫、模板指紋庫中模板指紋的個數(shù)、匹配結(jié)果的存儲地址。存儲器與訪存輸入選擇器相連。
[0023]本發(fā)明的工作過程如附圖11,下部是T個指紋匹配單元組的工作過程,上部是指紋匹配單元組O中K個指紋匹配單元的工作過程,圖中T = 8,K = 8:
[0024]第I步啟動指紋匹配單元:
[0025]指紋匹配單元組i接收到開始鍵發(fā)送的開始信號,指紋匹配單元組i向多請求處理器發(fā)送讀請求使能信號i,等待接收多請求控制器發(fā)送的讀請求響應信號i。
[0026]第2步,初始化T個指紋匹配單元組中的待查詢指紋RAM:
[0027]T個指紋匹配單元組按照輪詢機制依次獲得多請求控制器的占用權(quán),進行數(shù)據(jù)訪問,通過多請求控制器獲得待查詢指紋數(shù)據(jù),并將待查詢指紋數(shù)據(jù)初始化到各個指紋匹配單元組的K個指紋匹配單元中。
[0028]第3步,讀取模板指紋數(shù)據(jù),進行匹配計算,并寫回匹配結(jié)果:
[0029]第3.1步,T個指紋匹配單元組按照輪詢機制依次獲取多請求控制器的占用權(quán),進行數(shù)據(jù)訪問,通過多請求控制器獲得模板指紋數(shù)據(jù),并將模板指紋數(shù)據(jù)寫到各個指紋匹配單元組的K個指紋匹配單元中。每個指紋匹配單元組在獲得模板指紋數(shù)據(jù)后,進行匹配計算,完成匹配計算后,向多請求控制器發(fā)送寫請求使能,其中T個指紋匹配單元組讀取數(shù)據(jù)或者寫結(jié)果的操作因為要占用同一個多請求控制器,因而是串行執(zhí)行的;而T個指紋匹配單元組內(nèi)匹配計算是并行執(zhí)行的。
[0030]第3.2步,T個指紋匹配單元組按照輪詢機制依次獲取多請求控制器的占用權(quán),將匹配計算的中間結(jié)果通過多請求控制器寫到存儲器中。如果指紋匹配單元組完成所分配得到的任務(wù),則向結(jié)果競選部件發(fā)生單元組停止標志。
[0031]第4步,結(jié)果競選部件檢測T個指紋匹配單元組任務(wù)完成情況的過程:
[0032]結(jié)果競選部件檢測是否收到T個單元組停止標志,若收到,則轉(zhuǎn)第5步,若結(jié)果競選部件未收到T個單元組停止標志,則轉(zhuǎn)第3.1步。
[0033]第5步結(jié)果競選部件選擇與待查詢指紋匹配程度最高的模板指紋的過程:
[0034]結(jié)果競選部件在接收到T個單元組停止標志后,向訪存輸入選擇器發(fā)送第一標志信號,并向訪存輸入選擇器發(fā)送訪存使能信號、訪存請求命令信號、訪存請求地址,從訪存輸入選擇器接讀收請求返回數(shù)據(jù),將所有的匹配結(jié)果進行比較后,選擇出與待查詢指紋匹配程度最高的模板指紋,并將得到的模板指紋作為寫請求數(shù)據(jù)、寫請求使能信號、訪存請求地址發(fā)送給訪存輸入選擇器,訪存輸入選擇器將接收到得寫請求數(shù)據(jù)、寫請求使能信號、訪存請求地址發(fā)送給存儲器;同時結(jié)果競選部件向指示燈發(fā)送匹配完成信號。
[0035]與現(xiàn)有技術(shù)相比,采用本發(fā)明可以達到以下技術(shù)效果:
[0036](I)提高了并行度,因此提高了指紋匹配模塊吞吐率:本發(fā)明采用了兩級并行結(jié)構(gòu):第一級是指紋匹配單元組i內(nèi)部K個FME并行執(zhí)行,能夠達到K倍的并行度;第二級是利用計算和數(shù)據(jù)訪問時間遮掩,在數(shù)據(jù)訪存的時候T個指紋匹配單元組共用一個多請求控制器,T個指紋匹配單元組輪流地與多請求控制器交互,從而輪流地進行存儲器訪存;在,當指紋匹配單元組i進行訪存時,另T-1個指紋匹配單元組并行地執(zhí)行匹配計算。因為當T較小時,T個指紋匹配單元組數(shù)據(jù)訪問時間小于一個指紋匹配單元組的匹配計算時間,則指紋匹配單元組j在完成一次計算后,指紋匹配單元組j-ι已經(jīng)完成當前數(shù)據(jù)訪問,則指紋匹配單元組j不需要等待,就可以進行下次數(shù)據(jù)訪問,所以T個指紋匹配單元組能夠完全并行執(zhí)行,此時兩級并行度是K*T。當T較大時,T個指紋匹配單元組的數(shù)據(jù)訪問時間大于一個指紋匹配單元組的計算時間,則意味著指紋匹配單元組j完成計算時,指紋匹配單元組j-Ι還未完成數(shù)據(jù)訪問,則指紋匹配單元組j就需要等待指紋匹配單元組j_l進行數(shù)據(jù)訪問,所以T個指紋匹配單元組就不能夠完全并行執(zhí)行,從而使第二級的并行度趨于飽和,設(shè)飽和時并行度為P,則兩級并行度為K*P。
[0037](2)本發(fā)明不需要主機,能夠獨立完成匹配:在存儲器中預存有待查詢指紋和模板指紋庫的情況下,本發(fā)明能夠獨立地完成從存儲器中讀取數(shù)據(jù),進行匹配計算,完成后將匹配結(jié)果存回存儲器,之后將匹配完成信號輸出到指示燈。整個匹配過程不需要主機參與,極大地提高了指紋匹配單元的獨立性。
【附圖說明】
[0038]圖1是【背景技術(shù)】Richard M.Jiang等人公布的指紋匹配硬件單元的邏輯結(jié)構(gòu)示意圖。
[0039]圖2是本發(fā)明的總體邏輯結(jié)構(gòu)框圖。
[0040]圖3是本發(fā)明存儲器中數(shù)據(jù)存儲格式示意圖。
[0041]圖4是本發(fā)明中多請求控制器的請求處理單元邏輯結(jié)構(gòu)圖。
[0042]圖5是本發(fā)明中多請求控制器的物理接口層邏輯結(jié)構(gòu)圖。
[0043]圖6是本發(fā)明中指紋匹配單元組i邏輯結(jié)構(gòu)圖。
[0044]圖7是本發(fā)明指紋匹配單元組i中主控制狀態(tài)機狀態(tài)轉(zhuǎn)換圖。
[0045]圖8是本發(fā)明指紋匹配單元組i中副控制狀態(tài)機狀態(tài)轉(zhuǎn)換圖。
[0046]圖9是本發(fā)明指紋匹配單元組i中一個指紋匹配單元FME邏輯結(jié)構(gòu)圖。
[0047]圖10是本發(fā)明中結(jié)果競選部件邏輯結(jié)構(gòu)圖。
[0048]圖11是本發(fā)明中指紋匹配單元組的執(zhí)行流程圖。
【具體實施方式】
[0049]下述介紹的信號中,指定當信號為I時表示信號有效;信號為O時表示信號無效,除特殊信號外,不一一說明。
[0050]圖2是本發(fā)明的總體邏輯結(jié)構(gòu)圖。本發(fā)明由T(1 < T < 16)個指紋匹配單元組、多請求控制器、結(jié)果競選部件、訪存輸入選擇器和存儲器、開始鍵、指示燈組成。
[0051]指紋匹配單元組i (O < i < T-1)與開始鍵、多請求控制器及結(jié)果競選部件相連。(指紋匹配單元組i的工作過程可以分為兩個環(huán)節(jié),第一個環(huán)節(jié)是數(shù)據(jù)讀取或結(jié)果存儲環(huán)節(jié),這個環(huán)節(jié)指紋匹配單元組i需要與多請求控制器進行信號交互,T個指紋匹配單元組串行完成;第二個環(huán)節(jié)是匹配計算環(huán)節(jié),這個環(huán)節(jié)中指紋匹配單元組i獨立進行,T個指紋匹配單元組并行執(zhí)行。
[0052]指紋匹配單元組i從開始鍵接收開始信號,根據(jù)開始信號,指紋匹配單元組i向多請求控制器發(fā)送讀請求使能信號i,等待多請求控制器發(fā)送讀請求響應信號i,此時T個指紋匹配單元組競爭多請求控制器。多請求控制器接收到T個讀請求使能信號后,根據(jù)仲裁原則選擇指紋匹配單元組j(j是T個中的一個)作為當前占用多請求控制器的指紋匹配單元組,并向指紋匹配單元組j發(fā)送讀請求響應信號j。指紋匹配單元組j接收到讀請求響應信號j后,向多請求控制器發(fā)送讀請求地址j及讀請求使能信號j,等待多請求控制器發(fā)送讀請求返回數(shù)據(jù)。指紋匹配單元組i(0 < i < T-1, i.φ j)處于等待多請求控制器的狀態(tài),并持續(xù)向多請求控制器發(fā)送讀請求使能信號i,直至多請求控制器接收并發(fā)送回讀請求響應信號i。
[0053]指紋匹配單元組i (O < i < T-1)在獲取待查詢指紋及模板指紋后,開始進行匹配計算,在進行匹配計算時,T個指紋匹配單元組并行執(zhí)行。
[0054]指紋匹配單元組i完成匹配計算并得到匹配結(jié)果后,向多請求控制器發(fā)送寫請求使能信號i。如果此時沒有指紋匹配單元組占用多請求控制器,多請求控制器把指紋匹配單元組i作為當前占用多請求控制器的指紋匹配單元組,并向指紋匹配單元組i發(fā)送寫請求響應信號i。指紋匹配單元組i在接收到寫請求響應信號i后,向多請求控制器發(fā)送寫請求數(shù)據(jù)i (即指紋匹配單元組i得到的匹配結(jié)果)及讀請求使能信號i,占用多請求控制器獲取下次匹配所需的模板指紋數(shù)據(jù)。
[0055]在完成所有的匹配計算后,指紋匹配單元組i向結(jié)果競選部件發(fā)送單元組停止標志i,每個指紋匹配單元組發(fā)送單元組停止標志時,并沒有順序關(guān)系。
[0056]多請求控制器與T個指紋匹配單元組、訪存輸入選擇器相連。多請求控制器同時從T個指紋匹配單元組獲取T個讀(或者寫)請求使能信號(即讀(或者寫)請求使能信號O?讀(或者寫)請求使能信號T-1),根據(jù)仲裁規(guī)則進行仲裁,選擇指紋匹配單元組j作為當前占用多請求控制器的指紋匹配單元組,然后多請求控制器只接收指紋匹配單元組j發(fā)送的信號,并且只向指紋匹配單元組j發(fā)送信號,其他指紋匹配單元組處于等待狀態(tài)。如果多請求控制器接收的是讀請求使能信號j,則多請求控制器在接收讀請求使能j后,產(chǎn)生讀請求響應信號j,并將讀請求響應信號j發(fā)送給指紋匹配單元組j。多請求控制器在接收指紋匹配單元組發(fā)送的讀請求地址后,向訪存輸入選擇器發(fā)送訪存使能信號、訪存請求命令信號及訪存地址,訪存地址等于讀請求地址。多請求控制器從訪存輸入選擇器接收讀請求返回數(shù)據(jù)及讀請求數(shù)據(jù)有效信號,先存入緩沖區(qū),緩沖區(qū)的讀使能有效時,從緩沖區(qū)讀出,得到讀請求返回數(shù)據(jù)j及讀請求數(shù)據(jù)有效信號j,并將讀請求返回數(shù)據(jù)j及讀請求數(shù)據(jù)有效信號j發(fā)送給指紋匹配單元組j。如果多請求控制器接收的是寫請求使能信號j,則多請求控制器在接收到寫請求使能信號j后,產(chǎn)生寫請求響應信號j,發(fā)送給指紋匹配單元組j;然后多請求控制器接收指紋匹配單元組j發(fā)送的寫請求地址j及寫請求數(shù)據(jù)j,將寫請求地址j和寫請求數(shù)據(jù)j先存入緩沖區(qū),當緩沖區(qū)的使能有效時從緩沖區(qū)讀出,作為訪存請求地址及寫請求數(shù)據(jù)和寫請求使能信號及訪存命令信號一起發(fā)送給訪存輸入選擇器。
[0057]訪存輸入選擇器是一個二選一選擇器,與多請求控制器、存儲器及結(jié)果競選部件相連,結(jié)果競選部件發(fā)送的第一控制信號無效時,訪存輸入選擇器接收多請求控制器發(fā)送的訪存請求,并發(fā)送給存儲器,在接收到存儲器發(fā)送的數(shù)據(jù)時,訪存輸入選擇器將數(shù)據(jù)發(fā)送給多請求控制器;在結(jié)果競選部件發(fā)送的第一控制信號有效時,訪存輸入選擇器接收結(jié)果競選部件發(fā)送的訪存請求,并發(fā)送給存儲器,在接收到存儲器發(fā)送的數(shù)據(jù)時,訪存輸入選擇器將數(shù)據(jù)發(fā)送給結(jié)果競選部件。
[0058]結(jié)果競選部件與T個指紋匹配單元組、訪存輸入選擇器及指示燈相連,根據(jù)匹配結(jié)果選擇出模板指紋庫中與待查詢結(jié)果匹配程度最高的指紋。從指紋匹配單元組i接收單元組停止信號i,在接收到單元組停止標志O?單元組停止標志T-1后,結(jié)果競選部件向訪存輸入選擇器發(fā)送第一控制信號,同時向訪存輸入選擇器發(fā)送訪存使能信號、訪存請求命令信號、訪存請求地址,等待從訪存輸入選擇器接收讀請求返回數(shù)據(jù)及讀請求數(shù)據(jù)有效信號,此時接收到的讀請求返回數(shù)據(jù)是匹配結(jié)果的初始地址和競選結(jié)果的存儲地址,將匹配結(jié)果的初始