CN100407220C - 模式匹配的体系结构 - Google Patents

模式匹配的体系结构 Download PDF

Info

Publication number
CN100407220C
CN100407220C CN2005100882417A CN200510088241A CN100407220C CN 100407220 C CN100407220 C CN 100407220C CN 2005100882417 A CN2005100882417 A CN 2005100882417A CN 200510088241 A CN200510088241 A CN 200510088241A CN 100407220 C CN100407220 C CN 100407220C
Authority
CN
China
Prior art keywords
bit field
distance value
distance
clear distance
coupling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2005100882417A
Other languages
English (en)
Other versions
CN1728157A (zh
Inventor
P·拉姆库马
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1728157A publication Critical patent/CN1728157A/zh
Application granted granted Critical
Publication of CN100407220C publication Critical patent/CN100407220C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/02Indexing scheme relating to groups G06F7/02 - G06F7/026
    • G06F2207/025String search, i.e. pattern matching, e.g. find identical word or best match in a string
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

模式匹配单元包括选择单元,选择单元将输入数据和一种或多种参考模板分别划分成与参考位域对应的输入位域。输入和参考位域的数目是可编程的。还包括距离单元,用于确定输入位域和对应的参考位域之间的一种或多种距离度量。把与参考位域关联的距离度量组合成与一种或多种参考模板对应的一种或多种净距离度量。

Description

模式匹配的体系结构
技术领域
本发明一般地涉及模式识别,更准确地说,涉及数据与参考模板或模式的快速匹配。
背景技术
在通常的模式匹配处理中,把参考模板与输入数据进行比较以便确定哪一个参考模板与输入数据匹配最好。
一种模式匹配的体系结构是通用的计算机运行模式识别软件。所述结构具有以下优点:a)由于所述软件实现方案的缘故,它可以适应各种各样的模式比较算法;以及b)由于参考模板的数目通常通常仅仅受计算机系统存储器容量的限制,因此,可以使用大量的参考模板。但是,所述结构具有以下缺点:运行速度慢、电源消耗大、对许多应用来说太大、昂贵以及软件复杂。这样的结构不很适合于需要快速模式匹配或必须满足低功率和嵌入式应用的便携式要求的应用场合。
另一种模式匹配体系结构使用内容可寻址存储器,后者包括嵌入在每一个存储单元中的硬件比较器,所述比较器根据嵌入式比较器的比较功能,将它的存储地址的内容与输入数据的对应位进行比较。所述结构具有速度快(由于其硬件实现方案的缘故)和体积小的优点。但是,它具有以下缺点:1)能够使用的比较算法的类型有限并且复杂;2)相当高的功耗;3)存储单元级的复杂设计;以及4)不可能使用大量参考模板。对每一个存储单元实现硬件比较器的成本是昂贵的、不能使用更复杂的比较准则以及限制实现多比较准则的灵活性。例如,这样一种模式识别结构通常只包括精确的位匹配比较,以便确定(如果有的话)哪一个存储的参考模板与输入数据的所有位匹配。更复杂的比较准则可能太复杂和/或太昂贵,以致不能在所述结构中应用。
虽然前述结构适合一些模式识别的应用,但是其它应用需要快速的模式匹配结构、提供多种比较算法(包括更复杂的算法)供选择、以及消耗相当低的功耗。因此,需要对现有的模式匹配结构进行改进。
发明内容
根据本发明的第一方面,提供一种装置,它包括:选择单元,它将输入数据划分成输入位域,并将一种或多种参考模板划分成对应的参考位域,其中,所述输入位域和所述参考位域中位的数目是可编程的;以及距离单元,它确定所述输入位域和所述对应的参考位域之间的一种或多种距离值,并将与所述参考位域关联的所述一种或多种距离值组合成与所述一种或多种参考模板对应的一种或多种净距离值。
在所述装置的一个实施例中,所述输入数据和所述参考模板中位的数目是可编程的。
在所述装置的另一个实施例中,所述距离单元适合于在所述距离值被组合成所述一种或多种净距离值之前将一个或多个加权因子应用于与每一个参考模板关联的所述距离值。
在所述装置的再一个实施例中,所述距离单元适合于配置成确定一种或多种类型的距离值和净距离值,所述一种或多种类型的距离值和净距离值包括精确位匹配、汉明距离、欧几里德距离、平均幅度距离和相关距离中至少一种。
在所述装置的再另一个实施例中,所述装置还包括存储所述输入数据和所述参考模板的所述存储器,并且所述装置是在单一集成电路上实现的。
在所述装置的再另一个实施例中,所述装置还包括用于交换所述输入数据、所述参考模板、控制数据和所述装置的状态数据的主机接口。
在所述装置的再另一个实施例中,所述主机接口是存储器映射的或输入/输出(I/O)映射的。
在所述装置的再另一个实施例中,所述装置还包括用于根据一种或多种可选择的分类准则对所述一种或多种净距离值进行分类的分类器单元。
在所述装置的再另一个实施例中,所述可选择的分类准则包括匹配最好、匹配最差、平均匹配和中等匹配中的一种或多种。
在所述装置的再另一个实施例中,所述装置还包括级联单元,用于接收其它净距离值,并且根据所述一种或多种可选择的分类准则,把所述其它净距离值与所述一种或多种分类的净距离值进行比较。
在所述装置的再另一个实施例中,所述装置还包括决策单元,用于根据所述一种或多种净距离值与一种或多种边界准则比较的结果,产生一种或多种决策标志。
根据本发明的第二方面,提供一种方法,所述方法包括:根据可编程的位域宽度,将输入数据划分成输入位域;根据位域宽度,将一种或多种参考模板划分成参考位域,其中,所述参考位域对应于所述输入位域;确定所述输入位域和所述对应的参考位域之间的距离值;以及将与所述参考位域关联的所述距离值组合成与所述一种或多种参考模板对应的一种或多种净距离值。
在所述方法的一个实施例中,所述方法还包括配置所述输入数据和所述参考模板的位数目。
在所述方法的另一个实施例中,所述方法还包括在把所述距离值组合成一种或多种净距离值之前,把一个或多个加权因子应用于与每一个参考模板关联的所述距离值。
在所述方法的再一个实施例中,确定一种或多种类型的距离值和净距离值,所述一种或多种类型的距离值和净距离值包括精确位匹配、汉明距离、欧几里德距离、平均幅度距离和相关距离中的一种或多种。
在所述方法的再另一个实施例中,所述方法还包括根据一种或多种可选择的分类准则,对所述一种或多种净距离值进行分类。
在所述方法的再另一个实施例中,所述可选择的分类准则包括匹配最好、匹配最差、平均匹配和中等匹配中的一种或多种。
在所述方法的再另一个实施例中,所述方法还包括将其它净距离值与所述分类的净距离值进行比较,以便把所述分类的净距离值与所述其他净距离值一起进一步分类。
在所述方法的再另一个实施例中,所述方法还包括根据把所述一种或多种分类的净距离值与一种或多种边界准则进行比较的结果来产生一种或多种决策标志。
根据本发明的三方面,提供一种系统,它包括:动态随机访问系统存储器,它连接成存储由处理器执行的指令;以及模式匹配单元,它响应处理器的请求,根据一种或多种分类准则,确定所述输入数据和一组参考模板之间的一组距离度量并识别与所述输入数据匹配最好的所述参考模板,其中,所述模式匹配单元包括选择单元和距离单元,其中,所述选择单元适合于将所述输入数据划分成输入位域并将所述一种或多种参考模板划分成对应的参考位域,其中,所述输入位域和所述参考位域中位的数目是可编程的,并且其中,所述距离单元适合于确定所述输入位域和所述对应的参考位域之间的一种或多种距离值并将与所述参考位域关联的所述一种或多种距离值组合成与所述一种或多种参考模板对应的一种或多种净距离值。
在所述系统的一个实施例中,所述输入数据和所述参考模板中位的数目是可编程的。
在所述系统的另一个实施例中,所述距离单元适合于在所述距离值被组合成所述一种或多种净距离值之前把一个或多个加权因子应用于与每一个参考模板关联的所述距离值。
在所述系统的再一个实施例中,所述模式匹配单元还包括存储器映射的或输入/输出(I/O)映射的主机接口,所述主机接口用于与所述处理器交换所述输入数据、所述参考模板、控制数据和状态数据。
在所述系统的再另一个实施例中,所述模式匹配单元还包括用于根据一种或多种可选择的分类准则将所述一种或多种净距离值分类的分类器单元。
根据本发明的第四方面,提供一种包括机器可存取的媒体的制品,所述媒体包含指令,如果执行这些指令,则使系统能够执行以下操作:根据可编程的位宽度将输入数据划分成位域;根据所述位域的宽度,将一种或多种参考模板划分成参考位域,其中,所述参考位域对应于所述输入位域;确定所述输入位域和所述对应的参考位域之间的距离值;以及将与所述参考位域关联的所述距离值组合成与所述一种或多种参考模板对应的一种或多种净距离值。
在所述制品的一个实施例中,所述制品还包括指令,如果执行这些指令则使所述系统能够配置所述输入数据和所述参考模板中的位数目。
在所述制品的另一个实施例中,所述制品还包括指令,如果执行这些指令则使所述系统能够确定一种或多种类型的距离值和净距离值,所述一种或多种类型的距离值和净距离值包括精确位匹配、汉明距离、欧几里德距离、平均幅度距离和相关距离中的一种或多种。
在所述制品的再一个实施例中,所述制品还包括指令,如果执行这些指令则使所述系统能够根据一种或多种可选择的分类准则对所述一种或多种净距离值进行分类,所述一种或多种可选择的分类准则包括匹配最好、匹配最差、平均匹配和中等匹配中的一种或多种。
附图说明
借助于例子来说明本发明的各种实施例,但各种实施例不局限于附图的各个图例,在附图中相同的标号表示类似的元件。
图1是根据本发明一个实施例的模式匹配单元的方框图。
图2是根据本发明一个实施例的图1的灵活比较和分类单元的方框图。
图3是根据本发明一个实施例的图1的控制单元的方框图。
图4是根据本发明一个实施例的级联模式匹配结构的方框图。
图5是可以与本发明实施例一起使用的计算机系统的方框图。
图6是说明根据本发明实施例的模式匹配方法的流程图。
具体实施方式
现在说明模式匹配结构的方法、装置和系统。在以下的说明中,为了全面理解本发明的各个实施例,我们陈述了许多具体细节。但是,对于本专业的技术人员来说,很明显,没有这些具体细节也能够实现本发明的实施例。在其它例子中,为了避免对本发明实施例的说明含糊不清,我们用方框图形式示出了它们的结构和装置。
在说明书中提到的”一个实施例”指的是所描述的与实施例有关的具体特征、结构或特性被包括在本发明的至少一个实施例中。说明书中各处出现的短语”在一个实施例中”并不需要都指同一个实施例。
模式匹配应用的一些例子是鉴别(例如,脸部、语音、指纹、签名和虹膜匹配)、发现(例如,条形码和无线电频率识别)、通信(例如,语音、视频、图像识别和压缩及头部分析)以及工业控制(例如,部件检验和预测维护)。
可以根据一种或多种比较算法把来自这样的应用的数据与一组参考模式或参考模板比较,产生实时数据和参考模板之间的各种距离度量。距离度量是根据距离公式或算法确定两个数据之间的差异。一些距离度量的例子是位精确匹配、汉明距离、欧几里德(Euclidean)距离、平均幅度距离和相关距离。有些距离度量可以在一些应用中使用,另一些应用则不能使用。某些应用可以使用多种类型的距离度量。因此,可以实现选择一种或多种距离度量的能力。
在一些应用中,在产生距离度量后,可以进一步处理距离度量或将其分类,以便根据一种或多种分类准则,确定所选参考模板集中哪一个与输入数据的比较结果最好。例如,对于给定的输入数据,它可以确定哪一个参考模板匹配最好、匹配最差、平均匹配和/或中等匹配。根据”匹配”作出的决策类型可以随应用变化,这样,就可以实现提供可选择距离度量的分类模式匹配的结构。
现在参考图1,图中示出根据本发明一个实施例的模式匹配单元100的方框图。模式匹配单元100可以提供选择待产生的一种或多种距离度量的集合(例如,位精确匹配、汉明距离、欧几里德距离、平均幅度距离和/或相关距离)的能力、可以提供根据一种或多种选择的分类准则(例如,匹配最好、匹配最差、平均匹配和/或中等匹配)对距离度量进行分类的能力、以及可以包括具有相关联的逻辑和算术比较机制的查找表机制,所述比较机制用于将输入数据与参考模板集进行匹配并且根据用户的选择提供匹配模板的索引。
在一个实施例中,模式匹配单元100可以集成在存储器装置中,使得芯片上的存储器可以用于存储大的参考模板集,这样就可以在不占用主机总线的情况下非常迅速地访问它们。在一个实施例中,模式匹配单元100可以作为模式匹配加速装置嵌入处理器。在一个实施例中,嵌入式模式匹配单元100可以映射到处理器的比较指令中,以便提供快速、灵活、复杂数据的比较和分类,并允许处理器执行其它任务。这样的处理器可以优先将嵌入式模式匹配单元100用于各种应用,例如,模式识别、分支预测、智能高速缓存、自适应匹配滤波和指令级加密。
仍然参考图1,输入缓冲区106可以通过输入端102接收输入数据,并保存输入数据供灵活比较和分类单元108以后处理。在一个实施例中,输入缓冲区106是双端口或双缓冲的,允许正当前面的输入数据被检索供灵活比较和分类单元108处理时,不对称地输入新的输入数据。
模板存储器104可以用于接收输入端102的参考模式或模板,并保存它们供灵活比较和分类单元108以后处理。在一个实施例中,模板存储器104可以是双端口或双缓冲的,以便允许输入参考模板及同时访问。在各种实施例中,模板存储器104可以根据各种存储器技术与目标应用需要的存储器大小、功率、速度、非易失性等匹配。例如,模板存储器104可以用半导体装置,例如,只读存储器(ROM)、随机访问存储器(RAM)、动态随机访问存储器(DRAM)、可擦可编程只读存储器(EPROM)、快闪存储器或电可擦可编程只读存储器(EEPROM)实现。
仍然参考图1,可以把数据或矢量从输入缓冲区106和模板存储器104提供给灵活比较和分类单元108。正如后面将结合图2更详细地进行说明的那样,灵活比较和分类单元108可以配置成对不同的数据宽度进行比较和分类、将输入数据和参考模板划分或分割成用于比较和分类的子域或维数、实现各种类型的比较、在输入数据和参考模板之间产生各种不同的距离度量(例如,位精确匹配、汉明距离、欧几里德距离、平均幅度距离和/或相关距离)、集合或组合输入数据的各维数的距离度量、产生净距离度量、以及根据一种或多种选择的准则(例如,匹配最好、匹配最差、平均匹配和/或中等匹配)将净距离度量分类。灵活比较和分类单元108还可以包括根据识别的匹配和某些边界条件,实现一种或多种决策的机制,并通过一种或多种决策标志124标明这些决策。灵活比较和分类单元108还可以包括允许多个模式匹配单元108级联的级联PMU输入端112,以便适应用于比较大量的参考模板或矢量维数。灵活比较和分类单元108的一个实施例的更详细说明将在后面结合图2进行。
仍然参考图1,输出缓冲区116可以存储来自灵活比较和分类单元108的输出126,并可以将缓冲结果118提供给复用器120。灵活比较和分类单元108的输出126可以包括识别的参考模板匹配、匹配的参考模板、相关的净距离度量和/或其它相关的匹配数据的索引值。在一个实施例中,输出缓冲区116为先进先出(FIFO)的堆栈。在一个实施例中,复用器120接收来自输出缓冲区116的缓冲结果118,并且还接收直接来自灵活比较和分类单元108的输出126。在一种方式(例如,独立的PMU方式)下,复用器120可以将缓冲结果118提供给最终的PMU的输出122。在另一种方式(例如,级联PMU方式)下,复用器120可以将灵活比较和分类单元108的输出直接提供给最终的PMU输出122。最终的PMU输出122可以作为灵活比较和分类单元108的最终比较/分类输出提供给主机系统或其它装置。
在一个实施例中,输出缓冲区116可以与控制单元110一起运行,产生合适的标志(例如,下溢、溢出、半满),以便将状态信息提供给主机系统。这样的标志使主机系统能够周期性地轮询所述标志并且在对选择的大量的输入矢量进行比较和分类之后作出响应。用这种方法,在模式匹配单元100对一组输入矢量进行比较和分类的同时,主机可以执行其它任务。
仍然参考图1灵活比较和分类单元,控制单元110可以为模式匹配单元100提供各种配置选项。例如,控制单元110可以对以下项目进行控制:输入数据和参考模板将被分成的数据的大小/宽度、矢量维数的数目和/或宽度;对每次比较中产生的一种或多种距离度量的选择;对使用的一种或多种分类准则的选择;以及对各种模式匹配单元方式(例如,级联方式等)的选择。控制单元110还可以控制数据处理的次序,并在模式匹配单元100的各单元中转移。控制单元110还可以给主机系统或其它装置提供外部接口,以便与模式匹配单元100相互作用。在一个实施例中,外部接口是存储器的映射接口。在一个实施例中,外部接口是输入/输出(I/O)的映射接口。控制器110的一个实施例的更详细说明将在后面结合图3进行。
现在参考图2,图中示出根据本发明一个实施例的图1的灵活比较和分类单元108的更详细的方框图。位域选择单元206可以配置成处理分别来自输入缓冲区106和模板存储器104的输入数据204和参考模板202的不同尺寸或位宽度。输入数据204和参考模板202可以表示为可能具有各种维数或子域的数据或矢量。位域选择单元206可以配置成将输入数据204和参考模板202划分或分割成表示矢量的各种维数的可配置尺寸的一个或多个位域。例如,输入数据204和参考模板202可以是32位的矢量,所述矢量包括彩色显示像素数据的红、绿、蓝和密度4维。在这种情况下,位域选择单元206可以配置成处理32位数据宽度,并将32位输入数据204和32位的参考模板202划分或分割成8位的字节块或位域,表示成以下的矢量维数:8位红(R);8位绿(G);8位蓝(B);以及8位密度(I)。
仍然参考图2,取决于所述配置,比较单元208可以根据一种或多种比较算法,将输入数据204的每一个位域或维数与参考模板202的对应位域或维数进行比较,产生一种或多种距离度量。在一个实施例中,比较单元208可以将每一维的距离度量乘上对应的权重因子,可以从内部寄存器检索所述权重因子。例如,具体的彩色矢量匹配应用可以确定:红和亮度是比蓝和绿更重要的比较维数。在这种情况下,权重因子的值0.90、0.30、0.40和0.95可以分别用于红、绿、蓝和亮度维数。在一个实施例中,比较单元208可以集合或组合所有位域或维数的距离度量(取决于所述配置,应用或没有应用权重因子),产生输入数据204和参考模板202之间的净距离度量。
取决于目标应用,本发明的实施例可以配置成使用一个或多个比较算法来产生一种或多种距离度量。一些有用的距离度量是位精确匹配、汉明距离、欧几里德距离、平均幅度距离和相关距离。现在将简要地说明这些距离度量。位精确比较是通过比较两个数据对应的每一个位确定在两个被比较的数据之间是否存在精确的位与位的匹配。例如,输入矢量‘01011101’是参考模板‘01011101’的位精确匹配,但是不是参考模板‘01011100’的位精确匹配。汉明距离度量可以通过总的匹配的对应位数目除以总的位宽度(总的匹配位数目/总的位宽度)确定。例如,输入矢量‘1011 0110 1010’和参考模板‘0101 1101 0111’之间的汉明距离为3/12或0.25(因为,从右边的位开始,第2、第7和第9对应的位匹配,数据位宽度为12)。欧几里德距离,对于一维矢量,可以使用公式(X-Y)2计算,或者对于具有n维或子域X1...Xn和Y1...Yn的矢量,则使用
Figure C20051008824100161
计算。平均幅度距离,对一维矢量,可以使用公式|X-Y|计算,或者对于n维矢量或子域X1...Xn和Y1...Yn的矢量,则使用
Figure C20051008824100162
计算。相关距离,对于一维矢量使用公式X·Y计算,或者对于n维或子域X1...Xn和Y1...Yn的矢量,则使用计算。
仍然参考图2,比较单元208可以将每一个输入数据204与多参考模板202比较,并将与每一个输入数据相关的净距离度量提供给分类单元210。分类单元210可以配置成根据一种或多种选择的分类准则,识别与输入数据204匹配的参考模板202。例如,分类单元210可以配置成确定哪一个参考模板与每一个输入数据匹配最好、匹配最差、平均匹配和/或中等匹配。根据给定的分类准则,匹配最好的是具有与输入数据204比较最满意的净距离度量的一组的参考模板。根据给定的分类准则,匹配最差的是具有与输入数据204比较最小满意度的净距离度量的一组的参考模板。平均匹配是其净距离度量与一组净距离度量的平均值最接近的参考模板。中等匹配的是其净距离度量与一组净距离度量的中值最接近的参考模板。在一个实施例中,灵活比较和分类单元108可以记录与识别的匹配对应的参考模板和净距离度量的索引值。
仍然参考图2,在一个实施例中,灵活比较和分类单元108可以包括将从级联模式匹配单元选择的匹配进行分类的深度扩展单元212。例如,多模式匹配单元100(图1中的)可以进行级联,以便提高速度(例如,多单元并行处理给定的输入数据)或增加用于比较的参考模板的数目。当选择深度扩展方式时,深度扩展单元212可以将它的分类匹配与在级联PMU输入端214上提供的其它模式匹配单元的分类匹配进行比较,以便确定来自多模式匹配单元100的选择的匹配的最佳总体匹配。当没有选择深度扩展方式时,深度扩展单元212可以简单地将其输入复制到其输出218上。后面将结合图4说明级联模式匹配结构的一个实施例的更多细节。
仍然参考图2,在一个实施例中,灵活比较和分类单元108还可以包括决策单元220。决策单元220可以接收深度扩展单元212的输出218(所述输出可以包括识别的匹配和关联的距离度量),并且还可以接收一个或多个表示决策准则或阈值的边界准则222。决策单元220可以将输出218与边界准则222比较,产生一个或多个决策标志224,所述决策标志224表示模式匹配单元100根据所述比较结果作出的各种决策。例如,在指纹匹配应用中,如果最接近的欧几里德距离度量的值小于预定值,那么,决策单元220可以配置成认定‘指纹匹配’标志。在一个实施例中,决策单元220可以用于打算独立用于嵌入式应用中的模式匹配单元100。还可以提供各种控制输入216,以便控制灵活比较和分类单元108的定时、排序和总体功能。
现在参考图3,图中示出根据本发明一个实施例的图1的控制单元110的方框图。外部接口308允许主机系统或其它装置通过地址信号302、数据信号304和读/写信号306与模式匹配单元100连接。使用外部接口308,主机装置或系统可以在模板存储器104中存储模板,将数据输入到输入缓冲区106,并从输出缓冲区116读出结果。可以通过内部地址总线310和内部数据总线312进行由主机通过地址输入302和数据输入304提供的地址和数据信息的模式匹配单元100的内部通信。
在一个实施例中,控制单元110可以为使用主机系统的存储器空间的4个地址的模式匹配单元100提供存储器映射接口。表1示出了映射的例子。
表1
 地址1   读/写模板存储器
 地址2   写入缓冲器/读出缓冲区
 地址3   写入控制寄存器/读出状态寄存器
 地址4   读/写调试寄存器
在一个实施例中,控制寄存器314可以包括以下内容:a)模板存储器104中模板的开始地址;b)待比较的模板数目;c)每维的位域宽度;d)每个矢量的矢量维数;e)深度扩展接通/断开;以及f)选择距离度量。在一个实施例中,控制单元110可以包括存储各种标志(例如,执行/不执行、级联方式、存储器检验)的状态寄存器316。在一个实施例中,控制单元110可以包括提供各种调试操作的调试寄存器318。
仍然参考图3,配置和时序解码器320将配置信息326提供给模式匹配单元100。序列发生器322提供控制信号324,以便控制模式匹配单元100的各个功能模块的时序和操作。
现在参考图4,图中示出根据本发明一个实施例的级联模式匹配结构400的方框图。图4示出了多模式匹配单元100(图1的)怎样能够级联,以便提高处理速度(例如,多单元并行处理一个或多个输入数据)和/或增加用于比较的参考模板的数目。输入数据通过输入端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)的级联PMU输入122(b)以及将模式匹配单元100(b)的最终PMU输出122(b)连接到模式匹配单元100(c)的级联PMU输入端112(c),而以级联方式进行连接。在所述实施例中,模式匹配单元100(a)、100(b)和100(c)中每一个的深度扩展单元212一起工作,以便确定由多模式匹配单元100比较和分类的最佳的总匹配,并在最终的PMU输出122(c)上提供最佳的总匹配数据。在一个实施例中,级联结构可以用于允许比较更大量的参考模板。例如,相同的输入数据可以并行地与存储在多级联模式匹配单元中的不同参考模板集比较。在一个实施例中,相同的参考模板集可以存储在多级联模式匹配单元中,以便提高输入数据集的比较和分类速度。
这些实施例可以用逻辑电路、状态机、微代码或它们的一些组合实现。实施例可以用代码实现,并可以存储在可以存储指令的存储媒体中,这些指令可以用于执行这些指令的计算机系统编程。存储媒体可以包括(但不局限于)所有磁盘类,包括软磁盘、光盘、只读光盘(CD-ROM)、可重写光盘(CD-RW)和磁光盘、半导体器件(例如,只读存储器(ROM)、随机访问存储器(RAM)、动态随机访问存储器(DRAM)、可擦可编程只读存储器(EPROM)、快闪存储器、电可擦可编程只读存储器(EEPROM)、磁或光卡、网络存储器件或任何适合存储电指令的媒体)。
示例性实施例可以用由配置成具有合适的硬件装置组合的合适的计算机系统执行的软件实现。
现在参考图5,图中示出可以用于本发明实施例的计算机系统500的方框图。在一个实施例中,计算机系统500包括处理器510,后者可以包括通用的或专用的处理器(例如,微处理器、微控制器)、可编程门阵列(PGA)等。这里使用的术语”计算机系统”可以是基于处理器的任何类型的系统,例如,台式计算机、服务器计算机、膝上型计算机等或其它类型的主机系统。
在一个实施例中,处理器510可以通过主机总线515连接到存储器的集线器530上,存储器的集线器可以通过存储器总线525连接到系统存储器520(例如,动态RAM)上。存储器的集线器530还可以通过先进的图形端口(AGP)总线533连接到视频控制器535,视频控制器535可以连接到显示器537。AGP总线533符合加速图形端口的接口规格(由Intel Corporation,Santa Clara,California于1998年5月公布的2.0版本)。
模式匹配单元100(图1的)可以通过存储器总线525连接到存储器集线器530。在所述实施例中,模式匹配单元100可以是存储器映射装置。在另一个实施例中,模式匹配单元100可以是输入/输出(I/O)映射装置。在一个实施例中,模式匹配单元100可以作为模式匹配加速器嵌入处理器510中。在一个实施例中,嵌入式模式匹配单元100可以映射成处理器510的比较指令,以便提供快速、灵活、复杂的数据比较和分类,同时允许处理器510执行其它任务。处理器510可以优先将模式匹配单元100用于各种应用中,例如,模式识别、分支预测、智能高速缓存、自适应匹配滤波和指令级加密。
如由1995年6月的PCI局部总线规格、产品版本、修订版2.1确定的,存储器集线器530还可以(通过集线器链路538)连接到输入/输出(I/O)集线器540,所述输入输出集线器连接到输入输出(I/O)扩展总线542和外围部件互连(PCI)总线544。I/O扩展总线542可以连接到控制访问一个或多个I/O装置的I/O控制器546。如图5中所示,这些装置可以被包括在一个实施例的存储装置中,例如,软磁盘驱动器550和输入装置(例如,键盘552和鼠标554)。如图5中所示,I/O集线器540还可以连接到硬磁盘驱动器556和光盘(CD)驱动器558。显然,系统中还可以包括其它存储媒体。
PCI总线544还可以连接到各种部件,包括连接到网络端口(未示出)的网络控制器560。附加装置可以连接到I/O扩展总线542和PCI总线544,例如,连接到并行口、串行口、非易失性存储器等的输入/输出控制电路。
虽然前面说明引用了系统500的具体部件,但是可以预计,对描述和说明的实施例可以有许多修改和变化。而且,虽然图5示出诸如个人计算机的系统的方框图,但是应该理解,本发明的实施例可以用专用的模式识别装置、个人数字助理(PDA)等实现。
现在参考图6,图中示出根据本发明一个实施例的说明模式匹配方法的流程图。配置选项允许选择一种或多种用于将输入数据与参考模板或模式比较的距离度量或比较算法,并且还允许选择一种或多种分类准则,后者用于根据所述选择的一种或多种准则识别一种或多种与给定的输入数据匹配”最好”的参考模板(方框602)。配置选项允许选择输入数据和参考模板的位宽度或维数大小,并且还允许选择每一个输入数据和参考模板的大小和/或维数(方框604)。在一个实施例中,配置选项可以提供对输入数据和参考模板的总位宽度以及每一个输入数据和参考模板的维数的选择。
在设置配置选项之后,通过取得待比较和分类的输入数据后继续进行模式匹配过程(方框606)。还要获取输入数据将与其进行比较的参考模板(方框608)。为了给多维数据的比较提供灵活性,可以根据配置选项把输入数据和参考模板各自划分成多维或多个位域(方框610),使得可以确定输入数据和参考模板的每一个对应维的距离度量(方框612)。一旦确定每一维的距离度量,就可以将一个或多个加权因子应用于与所述一维或多维关联的距离度量(方框614)。然后,可以把距离度量集合或组合成关于所述输入数据和参考模板的净距离度量(方框616)。可以重复方框608至616,一直到将给定的参考数据与所有选择的参考模板都进行了比较为止(菱形618)。如果输入数据与所有参考模板都进行了比较,就可以根据选择的分类准则对净距离度量进行分类,以便确定哪一个距离度量(和对应的参考模板)与输入数据匹配”最好”(方框620)。在一个实施例中,方框620识别的匹配可以与一个或多个边界准则比较,并可以根据比较作出一个或多个决策(方框622)。
这样,对模式匹配结构的方法、装置和系统都进行了说明。虽然已经就有限数目的实施例对本发明进行了说明,但是从所述公开获益的本专业的技术人员将明白其中的许多修改和变化。我们的意图是,所附的权利要求书将覆盖属于本发明的精神和范围内的所有这些修改和变化。

Claims (24)

1.一种装置,它包括:
处理器,所述处理器包括被映射到其比较指令的嵌入式模式匹配加速装置,以允许在所述处理器执行其他任务时进行数据分类,所述嵌入式模式匹配加速装置包括:
选择单元,它将输入数据划分成输入位域,并将从所述嵌入式模式匹配加速装置的存储器获得的一种或多种参考模板划分成对应的参考位域,其中,所述输入位域和所述参考位域中位的数目是可编程的;以及
距离单元,它确定所述输入位域和所述对应的参考位域之间的一种或多种距离值,并将与所述参考位域关联的所述一种或多种距离值组合成与所述一种或多种参考模板对应的一种或多种净距离值。
2.如权利要求1所述的装置,其中,所述输入数据和所述参考模板中位的数目是可编程的。
3.如权利要求1所述的装置,其中,所述距离单元适合于在所述距离值被组合成所述一种或多种净距离值之前将一个或多个加权因子应用于与每一个参考模板关联的所述距离值。
4.如权利要求1所述的装置,其中,所述距离单元适合于配置成确定一种或多种类型的距离值和净距离值,所述一种或多种类型的距离值和净距离值包括精确位匹配、汉明距离、欧几里德距离、平均幅度距离和相关距离中至少一种。
5.如权利要求1所述的装置,其中所述存储器存储所述输入数据和所述参考模板,并且所述处理器是在单一集成电路上实现的。
6.如权利要求1所述的装置,其中还包括用于交换所述输入数据、所述参考模板、控制数据和所述装置的状态数据的主机接口。
7.如权利要求6所述的装置,其中,所述主机接口是存储器映射的或输入/输出映射的。
8.如权利要求1所述的装置,其中还包括用于根据一种或多种可选择的分类准则对所述一种或多种净距离值进行分类的分类器单元。
9.如权利要求8所述的装置,其中,所述可选择的分类准则包括匹配最好、匹配最差、平均匹配和中等匹配中的一种或多种。
10.如权利要求8所述的装置,其中还包括级联单元,用于接收其它净距离值,并且根据所述一种或多种可选择的分类准则,把所述其它净距离值与经过分类的所述一种或多种净距离值进行比较。
11.如权利要求8所述的装置,其中还包括决策单元,用于根据所述一种或多种净距离值与一种或多种边界准则比较的结果,产生一种或多种决策标志。
12.一种方法,它包括:
在处理器的嵌入式模式匹配加速装置中接收输入数据,所述嵌入式模式匹配加速装置被映射到所述处理器的比较指令,以允许在所述处理器执行其他任务时进行数据分类;
根据可编程的位域宽度,将所述输入数据划分成输入位域;
根据位域宽度,将存储在所述嵌入式模式匹配加速装置中的一种或多种参考模板划分成参考位域,其中,所述参考位域对应于所述输入位域;
确定所述输入位域和对应的所述参考位域之间的距离值;以及
将与所述参考位域关联的所述距离值组合成与所述一种或多种参考模板对应的一种或多种净距离值。
13.如权利要求12所述的方法,其中还包括配置所述输入数据和所述参考模板的位数目。
14.如权利要求12所述的方法,其中还包括在把所述距离值组合成一种或多种净距离值之前,把一个或多个加权因子应用于与每一个参考模板关联的所述距离值。
15.如权利要求12所述的方法,其中,确定一种或多种类型的距离值和净距离值,所述一种或多种类型的距离值和净距离值包括精确位匹配、汉明距离、欧几里德距离、平均幅度距离和相关距离中的一种或多种。
16.如权利要求12所述的方法,其中还包括根据一种或多种可选择的分类准则,对所述一种或多种净距离值进行分类。
17.如权利要求16所述的方法,其中,所述可选择的分类准则包括匹配最好、匹配最差、平均匹配和中等匹配中的一种或多种。
18.如权利要求16所述的方法,其中还包括将其它净距离值与所述分类的净距离值进行比较,以便把经过分类的所述净距离值与所述其他净距离值一起进一步分类。
19.如权利要求16所述的方法,其中还包括根据把经过分类的所述一种或多种净距离值与一种或多种边界准则进行比较的结果来产生一种或多种决策标志。
20.一种系统,它包括:
动态随机访问系统存储器,它连接成存储由处理器执行的指令;以及
所述处理器包括级联模式匹配单元,所述级联模式配单元包括多个以级联方式连接的模式匹配单元,每个模式匹配单元响应处理器的请求,根据一种或多种分类准则,并行地确定公共输入数据和一组参考模板个体之间的一组距离度量并识别与所述输入数据匹配最好的所述参考模板,其中,每个模式匹配单元包括选择单元和距离单元,其中,所述选择单元适合于将所述公共输入数据划分成输入位域并将一种或多种所述参考模板个体划分成对应的参考位域,其中,所述输入位域和所述参考位域中位的数目是可编程的,并且其中,所述距离单元适合于确定所述输入位域和所述对应的参考位域之间的一种或多种距离值并将与所述参考位域关联的所述一种或多种距离值组合成与所述一种或多种参考模板个体对应的一种或多种净距离值,且所述级联模式匹配单元的输出用于提供每个所述模式匹配单元的最佳匹配中的最佳总匹配。
21.如权利要求20所述的系统,其中,所述输入数据和所述参考模板中位的数目是可编程的。
22.如权利要求20所述的系统,其中,所述距离单元适合于在所述距离值被组合成所述一种或多种净距离值之前把一个或多个加权因子应用于与每一个参考模板关联的所述距离值。
23.如权利要求20所述的系统,其中,所述模式匹配单元还包括存储器映射的或输入/输出映射的主机接口,所述主机接口用于与所述处理器交换所述输入数据、所述参考模板、控制数据和状态数据。
24.如权利要求20所述的系统,其中,所述模式匹配单元还包括用于根据一种或多种可选择的分类准则将所述一种或多种净距离值分类的分类器单元。
CN2005100882417A 2004-07-30 2005-07-29 模式匹配的体系结构 Expired - Fee Related CN100407220C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/903501 2004-07-30
US10/903,501 US7437398B2 (en) 2004-07-30 2004-07-30 Pattern matching architecture

Publications (2)

Publication Number Publication Date
CN1728157A CN1728157A (zh) 2006-02-01
CN100407220C true CN100407220C (zh) 2008-07-30

Family

ID=35733754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100882417A Expired - Fee Related CN100407220C (zh) 2004-07-30 2005-07-29 模式匹配的体系结构

Country Status (4)

Country Link
US (1) US7437398B2 (zh)
JP (1) JP4351196B2 (zh)
CN (1) CN100407220C (zh)
DE (1) DE102005033274B4 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4627243B2 (ja) * 2005-10-21 2011-02-09 三菱電機株式会社 ネットワーク中継装置
US7734853B2 (en) * 2006-02-28 2010-06-08 Arm Limited Latency dependent data bus transmission
US7565516B2 (en) * 2006-02-28 2009-07-21 Arm Limited Word reordering upon bus size resizing to reduce Hamming distance
CN100552664C (zh) * 2006-10-20 2009-10-21 东芝泰格有限公司 模式匹配装置以及方法
US8131759B2 (en) * 2007-10-18 2012-03-06 Asurion Corporation Method and apparatus for identifying and resolving conflicting data records
WO2010022303A1 (en) * 2008-08-22 2010-02-25 Dolby Laboratories Licensing Corporation Content identification and quality monitoring
US8805998B2 (en) * 2010-06-11 2014-08-12 Eaton Corporation Automatic matching of sources to loads
JP6244728B2 (ja) 2013-08-07 2017-12-13 富士通株式会社 情報処理方法及びプログラム
CN104598541A (zh) * 2014-12-29 2015-05-06 乐视网信息技术(北京)股份有限公司 多媒体文件的识别方法、装置
US9430363B1 (en) * 2015-12-28 2016-08-30 International Business Machines Corporation Creating expected test results using previous test results
US20170322810A1 (en) * 2016-05-06 2017-11-09 Qualcomm Incorporated Hypervector-based branch prediction
US20200073891A1 (en) * 2018-08-28 2020-03-05 New Relic, Inc. Systems and methods for classifying data in high volume data streams

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918731A (en) * 1987-07-17 1990-04-17 Ricoh Company, Ltd. Speech recognition method and apparatus
JPH06309434A (ja) * 1993-04-27 1994-11-04 Nikon Corp 画像処理方法及び装置
CN1205486A (zh) * 1997-07-15 1999-01-20 三星电子株式会社 考虑到距离和方向的模式匹配装置及其方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61138335A (ja) * 1984-12-10 1986-06-25 Matsushita Electric Ind Co Ltd 記憶素子の演算回路
US5295198A (en) 1988-10-14 1994-03-15 Harris Corporation Pattern identification by analysis of digital words
JPH04294421A (ja) * 1991-03-22 1992-10-19 Mitsubishi Electric Corp ディジタル関数計算装置
JPH0528273A (ja) * 1991-05-13 1993-02-05 Nikon Corp 画像処理方法および装置
US5717908A (en) 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
US5825921A (en) * 1993-03-19 1998-10-20 Intel Corporation Memory transfer apparatus and method useful within a pattern recognition system
JP2988209B2 (ja) * 1993-08-16 1999-12-13 松下電器産業株式会社 カラー濃淡パターン認識装置
EP0788648B1 (en) * 1995-08-28 2000-08-16 Koninklijke Philips Electronics N.V. Method and system for pattern recognition based on dynamically constructing a subset of reference vectors
CA2304747C (en) * 1997-10-15 2007-08-14 British Telecommunications Public Limited Company Pattern recognition using multiple reference models
JP2002007413A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd 画像検索装置
JP2002216131A (ja) * 2001-01-15 2002-08-02 Sony Corp 画像照合装置及び画像照合方法、並びに記憶媒体
JP2003233851A (ja) * 2002-02-13 2003-08-22 Glory Ltd 画像による硬貨の真偽/正損判定方法及び装置
JP2004013504A (ja) * 2002-06-06 2004-01-15 Univ Hiroshima パターン認識システム、このシステムに用いられる連想メモリ装置及びパターン認識処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918731A (en) * 1987-07-17 1990-04-17 Ricoh Company, Ltd. Speech recognition method and apparatus
JPH06309434A (ja) * 1993-04-27 1994-11-04 Nikon Corp 画像処理方法及び装置
CN1205486A (zh) * 1997-07-15 1999-01-20 三星电子株式会社 考虑到距离和方向的模式匹配装置及其方法

Also Published As

Publication number Publication date
CN1728157A (zh) 2006-02-01
US7437398B2 (en) 2008-10-14
JP4351196B2 (ja) 2009-10-28
DE102005033274B4 (de) 2008-04-10
DE102005033274A1 (de) 2006-03-23
JP2006059339A (ja) 2006-03-02
US20060026413A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
CN100407220C (zh) 模式匹配的体系结构
US11741014B2 (en) Methods and systems for handling data received by a state machine engine
US10606787B2 (en) Methods and apparatuses for providing data received by a state machine engine
CN110276367A (zh) 学习分类装置和学习分类方法
US10789182B2 (en) System and method for individual addressing
Wang et al. Learning context-sensitive similarity by shortest path propagation
US20010052062A1 (en) Parallel computer within dynamic random access memory
US11829311B2 (en) Custom compute cores in integrated circuit devices
CN105446988B (zh) 预测类别的方法和装置
CN110491437A (zh) 通过机器学习进行存储器存取管理的方法与相关存储装置
US20160320982A1 (en) Methods and systems for using state vector data in a state machine engine
JP6863926B2 (ja) データ分析システム及びデータ分析方法
US20180113951A1 (en) Graph traversal using automata processor
Hathaway et al. Kernelized non-Euclidean relational fuzzy c-means algorithm
CN109165666A (zh) 多标签图像分类方法、装置、设备及存储介质
WO2016109570A1 (en) Systems and devices for accessing a state machine
US11829775B2 (en) Smart compute resistive memory
TWI537980B (zh) 用於寫入經遮罩資料至緩衝器之裝置及方法
CN114153839A (zh) 多源异构数据的集成方法、装置、设备及存储介质
Hamel Visualization of support vector machines with unsupervised learning
US20220129772A1 (en) System and method having the artificial intelligence (ai) algorithm of k-nearest neighbors (k-nn)
WO2016109571A1 (en) Devices for time division multiplexing of state machine engine signals
CN106648465A (zh) 云平台中存储虚拟资源的方法及装置
CN109086685A (zh) 基于卫星遥感图像的林业生物灾害监测方法和系统
Lv et al. Active learning of three-way decision based on neighborhood entropy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080730

Termination date: 20100729