基于粗粒度并行的指纹匹配单元的制作方法

文档序号:8528441阅读:368来源:国知局
基于粗粒度并行的指纹匹配单元的制作方法
【技术领域】
[0001]本发明涉及一种指纹匹配单元,尤其是一种基于粗粒度并行的指纹匹配单元。
【背景技术】
[0002]在当前信息时代,个人鉴定是一个很重要的话题,而快速、精确且便捷是个人鉴定系统所必需的。指纹是作为一种稳定、唯一且易采集的生物特征,指纹识别技术被广泛应用于生物识别领域。指纹匹配是指纹识别的一个关键过程,因此有很多指纹匹配的算法被提出。基于细节点的指纹匹配算法,因为简单,且匹配精度高而被广泛应用。
[0003]细节点(minutia)是指纹图片中表征指纹差异性的特征点,一个规范、高质量的指纹图片一般有70-80个细节点,在局部、或不完整的指纹图片中,细节点的数目要少很多。一个细节点包含三个属性,即X坐标、Y坐标和方向。所以一个指纹能够用它的细节点特征来简单描述。而指纹匹配则是比较两个指纹细节点的相似度。
[0004]实际应用中,指纹匹配是一个需要实时性的应用,为了达到这个目的,之前已经有人提出了相关的硬件设计方案,附图1是Richard M.Jiang等人采用基于细节点的指纹匹配算法设计的指纹匹配硬件单元(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)阵列两部分组成。为了保证该单元能够正常运行,指纹匹配单元与主机相连,主机和模板指纹库相连。模板指纹库即为存储模板指纹的内存。主机向存储器发送请求,从存储器读取指纹数据,将指纹数据送给EJO控制单元。PE阵列与EJO控制单元相连,由N个PE组成,N代表待查询指纹中细节点的数目,N取64,对于待查询细节点数目小于64的,需要用无效数据(即将指纹细节点的X坐标值,Y坐标值和方向值均设为-1)将细节点补充为64个。一个PE完成待查询指纹一个细节点与一个模板指纹所有细节点的比较,N个PE完成待查询指纹N个细节点与一个模板指纹的所有细节点的比较,得到N个细节点中与模板指纹细节点的比较结果并将比较结果送给EJ0控制单元,如果相同(即待查询指纹细节点3个属性与模板指纹细节点对应属性的差值小于阈值),则结果为1,如果不同,则结果为O。EJO控制单元通过广播通道、OR逻辑总线与PE阵列相连,并通过电缆与主机相连,向主机发送模板指纹地址,从主机接收启动信号和模板指纹数据。EJO控制单元通过广播通道将模板指纹的细节点广播到运算单元阵列,运算单元阵列通过OR逻辑总线将匹配结果传输给EJO控制单元。EJO控制单元根据从PE阵列获得的比较结果判断当前模板指纹与待查询指纹细节点不相同的数目是否大于之前的模板指纹,如果大于,则EJO控制单元产生新的模板指纹地址从主机接收新的模板指纹;如果小于,则EJO控制单元向PE阵列发送当前模板指纹的下一个细节点。
[0006]Richard M.Jiang等人提出的指纹匹配硬件单元能够实现每秒1.22百万个模板指纹与待查询指纹匹配。虽然如此,在大多数场合中,指纹匹配的指纹库都是非常巨大的,而现有的指纹匹配单元吞吐率(每秒匹配的模板指纹数目)仍不能够满足实时性的要求。

【发明内容】

[0007]本发明要解决的技术问题是提供一种基于粗粒度并行的指纹匹配单元,提高指纹匹配模块吞吐率。
[0008]本发明中采用W(W = 64K, K ^ 8)位表示一组数据,所用存储器的访存位宽也是W位。存储器中预存的数据包括3个部分:参数、待查询指纹和模板指纹库。参数包括3个,即单个指纹细节点数目、模板指纹总数和匹配结果地址。单个指纹细节点数目表示一个指纹包含的细节点数目,设为M,如果某个指纹的细节点数目小于M,则在数据预存时,用无效数据填充:无效数据一般采用7FFFFFFFFFFFFFFF表示。模板指纹总数表示模板指纹库中所包含的模板指纹的个数,此参数用于作为匹配终止条件。匹配结果地址表示从本发明的指纹匹配单元组输出的结果存储的首地址。考虑到坐标值及方向值的大小,本发明中用64位表示一个指纹细节点,其中18位表示X坐标、18位表示Y坐标,28位表示方向(orien)。
[0009]本发明由T (0〈Τ 16)个指纹匹配单元组 FMEG (FingerprintMatchingElementGroup)、多请求控制器、结果竞选部件、访存输入选择器、存储器、指示灯、开始键组成,T个指纹匹配单元组FMEG记为指纹匹配单元组O?指纹匹配单元组T-1。
[0010]多请求控制器与T个指纹匹配单元组、访存输入选择器相连,对T个指纹匹配单元组的访存请求进行仲裁,将从访存输入选择器接收到的数据分发给T个指纹匹配单元组。
[0011]指纹匹配单元组i(o ( i ( T-1)与多请求控制器、结果竞选部件及开始键相连,完成一组指纹与待查询指纹的匹配。
[0012]访存输入选择器是一个二选一选择器,与多请求控制器、存储器及结果竞选部件相连,结果竞选部件发送的第一控制信号无效时,访存输入选择器接收多请求控制器发送的访存请求,并发送给存储器,在接收到存储器发送的数据时,访存输入选择器将数据发送给多请求控制器;在结果竞选部件发送的第一控制信号有效时,访存输入选择器接收结果竞选部件发送的访存请求,并发送给存储器,在接收到存储器发送的数据时,访存输入选择器将数据发送给结果竞选部件。
[0013]结果竞选部件与T个指纹匹配单元组、访存输入选择器及指示灯相连,根据匹配结果选择出模板指纹库中与待查询结果匹配程度最高的指纹。
[0014]存储器与访存输入选择器相连,存储模板指纹库、待查询指纹、匹配结果及相关参数。
[0015]开始键与T个指纹匹配单元组相连,启动基于粗粒度并行的指纹匹配单元。
[0016]指示灯与结果竞选部件相连,指示匹配过程完成。
[0017]多请求控制器由请求处理单元和物理接口层组成。
[0018]请求处理单元与T个指纹匹配单元组及物理接口层相连,负责从T个指纹匹配单元组选择一组作为当前占用多请求控制器的指纹匹配单元组,记作指纹匹配单元组j (O < j < T-1),请求处理单元只处理指纹匹配单元组j的请求,并且只向指纹匹配单元组j发送信号。请求处理单元由仲裁器、输入选择部件、请求响应生成部件、输出选择部件、读使能生成部件以及编号缓冲部件、命令缓冲部件、写请求数据缓冲部件、读回数据缓冲部件四个缓冲部件组成。
[0019]物理接口层与请求处理单元及访存输入选择器相连,物理接口层由访存信号处理部件、读FIFO_CMD控制信号生成部件和读FIFO_WDF控制信号生成部件组成,物理接口层将从请求处理单元接收到的信号处理后发送给访存输入选择器;将从访存输入选择器接收的信号处理后发送给请求处理单元。
[0020]指纹匹配单元组i (O < i < T-1)与开始键、多请求控制器及结果竞选部件相连。每个指纹匹配单元组结构完全相同。指纹匹配单元组i由主控制状态机、副控制状态机、读请求生成部件、写请求生成部件、数据接收部件、计算已匹配指纹数部件、数据初始化标志寄存器、工作使能标志寄存器、当前指纹组匹配完成标志寄存器、匹配结果寄存器、单元组停止标志寄存器、K (I彡K彡8)个指纹匹配单元(FME)组成。
[0021]结果竞选部件由单元组停止标志收集部件、访存处理部件、现存匹配成功细节点数目寄存器、现存模板指纹细节点数目寄存器、现存匹配结果编号寄存器、第一比较器、第二比较器、编号选择器组成。
[0022]存储器为双倍速率同步动态随机存储器(DDR3 SDRAM),可以随时提供任何地址的数据,存储大小建议2GB以上,访存位宽为W位,存储器中存有匹配所需数据,包括待查询指纹、模板指纹库、模板指纹库中模板指纹的个数、匹配结果的存储地址。存储器与访存输入选择器相连。
[0023]本发明的工作过程如附图11,下部是T个指纹匹配单元组的工作过程,上部是指纹匹配单元组O中K个指纹匹配单元的工作过程,图中T = 8,K = 8:
[0024]第I步启动指纹匹配单元:
[0025]指纹匹配单元组i接收到开始键发送的开始信号,指纹匹配单元组i向多请求处理器发送读请求使能信号i,等待接收多请求控制器发送的读请求响应信号i。
[0026]第2步,初始化T个指纹匹配单元组中的待查询指纹RAM:
[0027]T个指纹匹配单元组按照轮询机制依次获得多请求控制器的占用权,进行数据访问,通过多请求控制器获得待查询指纹数据,并将待查询指纹数据初始化到各个指纹匹配单元组的K个指纹匹配单元中。
[0028]第3步,读取模板指纹数据,进行匹配计算,并写回匹配结果:
[0029]第3.1步,T个指纹匹配单元组按照轮询机制依次获取多请求控制器的占用权,进行数据访问,通过多请求控制器获得模板指纹数据,并将模板指纹数据写到各个指纹匹配单元组的K个指纹匹配单元中。每个指纹匹配单元组在获得模板指纹数据后,进行匹配计算,完成匹配计算后,向多请求控制器发送写请求使能,其中T个指纹匹配单元组读取数据或者写结果的操作因为要占用同一个多请求控制器,因而是串行执行的;而T个指纹匹配单元组内匹配计算是并行执行的。
[0030]第3.2步,T个指纹匹配单元组按照轮询机制依次获取多请求控制器的占用权,将匹配计算的中间结果通过多请求控制器写到存储器中。如果指纹匹配单元组完成所分配得到的任务,则向结果竞选部件发生单元组停止标志。
[0031]第4步,结果竞选部件检测T个指纹匹配单元组任务完成情况的过程:
[0032]结果竞选部件检测是否收到T个单元组停止标志,若收到,则转第5步,若结果竞选部件未收到T个单元组停止标志,则转第3.1步。
[0033]第5步结果竞选部件选择与待查询指纹匹配程度最高的模板指纹的过程:
[0034]结果竞选部件在接收到T个单元组停止标志后,向访存输入选择器发送第一标志信号,并向访存输入选择器发送访存使能信号、访存请求命令信号、访存请求地址,从访存输入选择器接读收请求返回数据,将所有的匹配结果进行比较后,选择出与待查询指纹匹配程度最高的模板指纹,并将得到的模板指纹作为写请求数据、写请求使能信号、访存请求地址发送给访存输入选择器,访存输入选择器将接收到得写请求数据、写请求使能信号、访存请求地址发送给存储器;同时结果竞选部件向指示灯发送匹配完成信号。
[0035]与现有技术相比,采用本发明可以达到以下技术效果:
[0036](I)提高了并行度,因此提高了指纹匹配模块吞吐率:本发明采用了两级并行结构:第一级是指纹匹配单元组i内部K个FME并行执行,能够达到K倍的并行度;第二级是利用计算和数据访问时间遮掩,在数据访存的时候T个指纹匹配单元组共用一个多请求控制器,T个指纹匹配单元组轮流地与多请求控制器交互,从而轮流地进行存储器访存;在,当指纹匹配单元组i进行访存时,另T-1个指纹匹配单元组并行地执行匹配计算。因为当T较小时,T个指纹匹配单元组数据访问时间小于一个指纹匹配单元组的匹配计算时间,则指纹匹配单元组j在完成一次计算后,指纹匹配单元组j-ι已经完成当前数据访问,则指纹匹配单元组j不需要等待,就可以进行下次数据访问,所以T个指纹匹配单元组能够完全并行执行,此时两级并行度是K*T。当T较大时,T个指纹匹配单元组的数据访问时间大于一个指纹匹配单元组的计算时间,则意味着指纹匹配单元组j完成计算时,指纹匹配单元组j-Ι还未完成数据访问,则指纹匹配单元组j就需要等待指纹匹配单元组j_l进行数据访问,所以T个指纹匹配单元组就不能够完全并行执行,从而使第二级的并行度趋于饱和,设饱和时并行度为P,则两级并行度为K*P。
[0037](2)本发明不需要主机,能够独立完成匹配:在存储器中预存有待查询指纹和模板指纹库的情况下,本发明能够独立地完成从存储器中读取数据,进行匹配计算,完成后将匹配结果存回存储器,之后将匹配完成信号输出到指示灯。整个匹配过程不需要主机参与,极大地提高了指纹匹配单元的独立性。
【附图说明】
[0038]图1是【背景技术】Richard M.Jiang等人公布的指纹匹配硬件单元的逻辑结构示意图。
[0039]图2是本发明的总体逻辑结构框图。
[0040]图3是本发明存储器中数据存储格式示意图。
[0041]图4是本发明中多请求控制器的请求处理单元逻辑结构图。
[0042]图5是本发明中多请求控制器的物理接口层逻辑结构图。
[0043]图6是本发明中指纹匹配单元组i逻辑结构图。
[0044]图7是本发明指纹匹配单元组i中主控制状态机状态转换图。
[0045]图8是本发明指纹匹配单元组i中副控制状态机状态转换图。
[0046]图9是本发明指纹匹配单元组i中一个指纹匹配单元FME逻辑结构图。
[0047]图10是本发明中结果竞选部件逻辑结构图。
[0048]图11是本发明中指纹匹配单元组的执行流程图。
【具体实施方式】
[0049]下述介绍的信号中,指定当信号为I时表示信号有效;信号为O时表示信号无效,除特殊信号外,不一一说明。
[0050]图2是本发明的总体逻辑结构图。本发明由T(1 < T < 16)个指纹匹配单元组、多请求控制器、结果竞选部件、访存输入选择器和存储器、开始键、指示灯组成。
[0051]指纹匹配单元组i (O < i < T-1)与开始键、多请求控制器及结果竞选部件相连。(指纹匹配单元组i的工作过程可以分为两个环节,第一个环节是数据读取或结果存储环节,这个环节指纹匹配单元组i需要与多请求控制器进行信号交互,T个指纹匹配单元组串行完成;第二个环节是匹配计算环节,这个环节中指纹匹配单元组i独立进行,T个指纹匹配单元组并行执行。
[0052]指纹匹配单元组i从开始键接收开始信号,根据开始信号,指纹匹配单元组i向多请求控制器发送读请求使能信号i,等待多请求控制器发送读请求响应信号i,此时T个指纹匹配单元组竞争多请求控制器。多请求控制器接收到T个读请求使能信号后,根据仲裁原则选择指纹匹配单元组j(j是T个中的一个)作为当前占用多请求控制器的指纹匹配单元组,并向指纹匹配单元组j发送读请求响应信号j。指纹匹配单元组j接收到读请求响应信号j后,向多请求控制器发送读请求地址j及读请求使能信号j,等待多请求控制器发送读请求返回数据。指纹匹配单元组i(0 < i < T-1, i.φ j)处于等待多请求控制器的状态,并持续向多请求控制器发送读请求使能信号i,直至多请求控制器接收并发送回读请求响应信号i。
[0053]指纹匹配单元组i (O < i < T-1)在获取待查询指纹及模板指纹后,开始进行匹配计算,在进行匹配计算时,T个指纹匹配单元组并行执行。
[0054]指纹匹配单元组i完成匹配计算并得到匹配结果后,向多请求控制器发送写请求使能信号i。如果此时没有指纹匹配单元组占用多请求控制器,多请求控制器把指纹匹配单元组i作为当前占用多请求控制器的指纹匹配单元组,并向指纹匹配单元组i发送写请求响应信号i。指纹匹配单元组i在接收到写请求响应信号i后,向多请求控制器发送写请求数据i (即指纹匹配单元组i得到的匹配结果)及读请求使能信号i,占用多请求控制器获取下次匹配所需的模板指纹数据。
[0055]在完成所有的匹配计算后,指纹匹配单元组i向结果竞选部件发送单元组停止标志i,每个指纹匹配单元组发送单元组停止标志时,并没有顺序关系。
[0056]多请求控制器与T个指纹匹配单元组、访存输入选择器相连。多请求控制器同时从T个指纹匹配单元组获取T个读(或者写)请求使能信号(即读(或者写)请求使能信号O?读(或者写)请求使能信号T-1),根据仲裁规则进行仲裁,选择指纹匹配单元组j作为当前占用多请求控制器的指纹匹配单元组,然后多请求控制器只接收指纹匹配单元组j发送的信号,并且只向指纹匹配单元组j发送信号,其他指纹匹配单元组处于等待状态。如果多请求控制器接收的是读请求使能信号j,则多请求控制器在接收读请求使能j后,产生读请求响应信号j,并将读请求响应信号j发送给指纹匹配单元组j。多请求控制器在接收指纹匹配单元组发送的读请求地址后,向访存输入选择器发送访存使能信号、访存请求命令信号及访存地址,访存地址等于读请求地址。多请求控制器从访存输入选择器接收读请求返回数据及读请求数据有效信号,先存入缓冲区,缓冲区的读使能有效时,从缓冲区读出,得到读请求返回数据j及读请求数据有效信号j,并将读请求返回数据j及读请求数据有效信号j发送给指纹匹配单元组j。如果多请求控制器接收的是写请求使能信号j,则多请求控制器在接收到写请求使能信号j后,产生写请求响应信号j,发送给指纹匹配单元组j;然后多请求控制器接收指纹匹配单元组j发送的写请求地址j及写请求数据j,将写请求地址j和写请求数据j先存入缓冲区,当缓冲区的使能有效时从缓冲区读出,作为访存请求地址及写请求数据和写请求使能信号及访存命令信号一起发送给访存输入选择器。
[0057]访存输入选择器是一个二选一选择器,与多请求控制器、存储器及结果竞选部件相连,结果竞选部件发送的第一控制信号无效时,访存输入选择器接收多请求控制器发送的访存请求,并发送给存储器,在接收到存储器发送的数据时,访存输入选择器将数据发送给多请求控制器;在结果竞选部件发送的第一控制信号有效时,访存输入选择器接收结果竞选部件发送的访存请求,并发送给存储器,在接收到存储器发送的数据时,访存输入选择器将数据发送给结果竞选部件。
[0058]结果竞选部件与T个指纹匹配单元组、访存输入选择器及指示灯相连,根据匹配结果选择出模板指纹库中与待查询结果匹配程度最高的指纹。从指纹匹配单元组i接收单元组停止信号i,在接收到单元组停止标志O?单元组停止标志T-1后,结果竞选部件向访存输入选择器发送第一控制信号,同时向访存输入选择器发送访存使能信号、访存请求命令信号、访存请求地址,等待从访存输入选择器接收读请求返回数据及读请求数据有效信号,此时接收到的读请求返回数据是匹配结果的初始地址和竞选结果的存储地址,将匹配结果的初始
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1