用于传送并行型式搜索引擎的型式匹配结果的装置、系统及方法

文档序号:6596159阅读:337来源:国知局
专利名称:用于传送并行型式搜索引擎的型式匹配结果的装置、系统及方法
技术领域
本发明的实施例一般来说涉及型式辨识处理器,且更具体来说在某些实施例中涉及传送来自所述型式辨识处理器的多个操作的所得数据。
背景技术
在计算领域中,型式辨识任务越来越具有挑战性。计算机之间传输的数据量不断增大,且用户希望识别的型式数目日益增加。举例来说,通常通过搜索数据流中的型式(例如,特定短语或代码片段)来检测垃圾邮件及恶意软件。型式的数目随着垃圾邮件及恶意软件的变化而增加,因为可实施新型式以搜索新变体。搜索数据流以找出这些型式中的每一者可形成计算瓶颈。通常,在接收到数据流时,搜索数据流以一次一个地找出每一型式。 在系统准备搜索数据流的下一部分之前的延迟随着型式数目而增加。因此,型式辨识可使数据的接收减慢。型式辨识任务通常因待执行的各种类型的匹配而为复杂的。某些数据流可接二连三地匹配数个型式,且可将这些各种匹配分类。对这些匹配的检索可使系统的整体性能减慢,因此致使所述系统不能在新匹配出现时快速做出响应。在其它情况下,可在匹配出现之前的相对长时间周期内接收到数据流,从而使用以处理匹配的其它组件的容量未被使用。 在型式辨识期间结果数据的不规则流动使得难以设计与型式辨识硬件介接的系统。


图1描绘搜索数据流的系统的实例;图2描绘图1的系统中的型式辨识处理器的实例;图3描绘图2的型式辨识处理器中的搜索项单元的实例;图4及图5描绘图3的搜索项单元搜索数据流以找出单个字符;图6到图8描绘搜索数据流以找出一词的包含数个搜索项单元的辨识模块;图9描绘经配置以搜索数据流以并行找到两个词的辨识模块;图10到图12描绘根据规定具有同一前缀的多个词的搜索准则进行搜索的辨识模块;图13描绘图1的系统中的型式辨识处理器的第二实例;图14描绘图13的型式辨识处理器中的结果缓冲器的实例;且图15图解说明结合图14的结果缓冲器利用的一系列寄存器组。
具体实施例方式图1描绘搜索数据流12的系统10的实例。系统10可包含型式辨识处理器14,其根据搜索准则16搜索数据流12。每一搜索准则可规定一个或一个以上目标表达(即,型式)。短语“目标表达”是指型式辨识处理器14正在搜索的数据序列。目标表达的实例包含拼写某一词的字符序列、 详细说明基因的遗传碱基对序列、形成图像的一部分的图片或视频文件中的位序列、形成程序的一部分的可执行文件中的位序列或形成歌曲或口语短语的一部分的音频文件中的位序列。搜索准则可规定一个以上目标表达。举例来说,搜索准则可规定以字母序列“Cl” 开始的所有五个字母的词、以字母序列“Cl”开始的任一词、包含词“cloud”三次以上的段落等。可能目标表达集合的数目为任意大的,例如,可存在与数据流可呈现的数据排列同样多的目标表达。搜索准则可以各种格式来表达,包含作为正则表达、简明地规定若干目标表达集合而不必列举每一目标表达的程序设计语言。每一搜索准则可由一个或一个以上搜索项构造而成。因此,搜索准则的每一目标表达可包含一个或一个以上搜索项且一些目标表达可使用共用搜索项。如本文中所使用, 短语“搜索项”是指在单个搜索循环期间所搜索的数据序列。所述数据序列可包含呈二进制格式或其它格式(例如,十进制、ASCII等)的多个数据位。所述序列可用单个数字或多个数字(例如,数个二进制数字)编码数据。举例来说,型式辨识处理器14可一次一个字符地搜索文本数据流12,且搜索项可规定具有单个字符的集合,例如,字母“a”,字母“a”或 “ e ”,或规定具有所有单个字符的集合的通配符搜索项。搜索项可小于或大于规定字符(或数据流所表达的信息的其它语义符一即,基本单位,例如,音符、遗传碱基对、10进制数字或子像素)的位的数目。举例来说,搜索项可为 8个位且单个字符可为16个位,在此情况下,两个相连搜索项可规定单个字符。搜索准则16可由编译器18格式化以用于型式辨识处理器14。格式化可包含从所述搜索准则解构出搜索项。举例来说,如果数据流12所表达的语义符大于所述搜索项, 那么所述编译器可将搜索准则解构成多个搜索项以搜索单个语义符。类似地,如果数据流 12所表达的语义符小于所述搜索项,那么编译器18可为每一单独语义符提供具有未使用位的单个搜索项。编译器18还可对搜索准则16进行格式化以支持型式辨识处理器14本机不支持的各种正则表达运算子。型式辨识处理器14可通过评估来自数据流12的每一新项来搜索数据流12。此处,词“项”是指可匹配搜索项的数据量。在搜索循环期间,型式辨识处理器14可确定当前所呈现的项是否匹配搜索准则中的当前搜索项。如果所述项匹配所述搜索项,那么“推进” 评估,即,将下一项与搜索准则中的下一搜索项进行比较。如果所述项不匹配,那么将下一项与搜索准则中的第一项进行比较,借此对搜索进行复位。可将每一搜索准则编译到型式辨识处理器14中的不同有限状态机中。所述有限状态机可并行运行,从而根据搜索准则16来搜索数据流12。在前面的搜索项由数据流12 匹配时,所述有限状态机可步进经过搜索准则中的每一连续搜索项,或如果所述搜索项未被匹配,那么所述有限状态机可开始搜索所述搜索准则的第一搜索项。型式辨识处理器14可在约相同时间(例如,在单个装置循环期间)根据数个搜索准则及其相应搜索项评估每一新项。所述并行有限状态机可各自在约相同时间接收来自数据流12的项,且所述并行有限状态机中的每一者可确定所述项是否将所述并行有限状态机推进到其搜索准则中的下一搜索项。所述并行有限状态机可根据相对大数目的搜索准则 (例如,多于100、多于1000或多于10,000)来评估项。由于其并行操作,因此其可将所述搜索准则应用到具有相对高带宽的数据流12 (例如,大于或大体等于每秒64MB或每秒U8MB 的数据流1 而不会使所述数据流减慢。在一些实施例中,搜索循环持续时间不随搜索准则的数目按比例缩放,因此搜索准则的数目对型式辨识处理器14的性能可几乎没有影响。当满足搜索准则时(即,在推进到最后一个搜索项且匹配其之后),型式辨识处理器14可将所述准则的满足报告给处理单元,例如,中央处理单元(CPU) 20。中央处理单元 20可控制型式辨识处理器14及系统10的其它部分。系统10可为搜索数据流的各种系统或装置中的任一者。举例来说,系统10可为监视数据流12的桌上型、膝上型、手持式或其它类型的计算机。系统10还可为网络节点,例如,路由器、服务器或客户端(例如,先前所述类型的计算机中的一者)。系统10可为某一其它类别的电子装置,例如,复印机、扫描仪、打印机、游戏控制台、电视、机顶视频分配或记录系统、电缆盒、个人数字媒体播放器、工厂自动化系统、汽车计算机系统或医疗装置。(用来描述系统的这些各种实例的术语(如同本文中所使用的许多其它术语)可共享一些所指物,且如此不应仅根据所列举的其它物项来理解)。数据流12可为用户或其它实体可希望搜索的各种类型的数据流中的一者或一者以上。举例来说,数据流12可为在网络上接收的数据流,例如,在因特网上接收的包或在蜂窝式网络上接收的话音或数据。数据流12可为从与系统10通信的传感器(例如,成像传感器、温度传感器、加速度计或类似物或其组合物)接收的数据。数据流12可作为串行数据流由系统10接收,其中数据是以具有意义的次序(例如,以在时间上、在词法上或在语义上有效的次序)被接收。或者,可并行地或无序地接收数据流12,且接着(例如)通过将在因特网上接收的包重新排序将数据流12转换成串行数据流。在一些实施例中,数据流12 可以串行方式呈现项,但可并行地接收表达所述项中的每一者的位。数据流12可从系统10 外部的源接收,或可通过询问存储器装置且由所存储的数据形成数据流12来形成。取决于数据流12中的数据的类型,设计者可选择不同类型的搜索准则。举例来说,搜索准则16可为病毒定义文件。可表征病毒或其它恶意软件,且可使用恶意软件的方面来形成指示数据流12是否可能正在递送恶意软件的搜索准则。可将所得搜索准则存储于服务器上,且客户端系统的操作者可订阅将搜索准则下载到系统10的服务。由于会出现不同类型的恶意软件,因此可从所述服务器周期性地更新搜索准则16。所述搜索准则还可用来规定可在网络上接收的不合意内容,举例来说,不想要的电子邮件(通常称为垃圾邮件)或用户发现是令人反感的其它内容。数据流12可由对系统10正在接收的数据感兴趣的第三方来搜索。举例来说,可针对在版权作品中出现的文本、音频序列或视频序列而监视数据流12。可针对与刑事调查或民事诉讼有关或雇主感兴趣的言论而监视数据流12。搜索准则16还可包含数据流12中的若干型式,例如,在可由CPU 20或型式辨识处理器14寻址的存储器中,可对所述型式进行翻译。举例来说,搜索准则16可各自规定英语词,对于所述英语词,对应西班牙语词存储于存储器中。在另一实例中,搜索准则16可规定数据流12的经编码版本,例如,MP3、MPEG4、FLAC, Ogg Vorbis等,对于所述经编码版本, 可得到数据流12的经解码版本,或反之亦然。型式辨识处理器14可为与CPU 20 一起集成到单个组件(例如,单个装置)中或可形成为单独组件的硬件。举例来说,型式辨识处理器14可为单独集成电路。型式辨识处理器14可称为“协处理器”或“型式辨识协处理器”。图2描绘型式辨识处理器14的实例。型式辨识处理器14可包含辨识模块22及具有输出缓冲器51的聚合模块M。输出缓冲器51可包含结果缓冲器25。辨识模块22可经配置以将所接收项与搜索项进行比较,且辨识模块22及聚合模块M两者可协作以确定将项与搜索项匹配是否满足搜索准则。结果缓冲器25可缓冲来自型式辨识处理器14的其它部分的结果数据,如下文将关于图13进一步描述。辨识模块22可包含行解码器观及多个特征单元30。每一特征单元30可规定一搜索项,且特征单元30的群组可形成形成搜索准则的并行有限状态机。特征单元30的组件可形成搜索项阵列32、检测阵列34及激活路由矩阵36。搜索项阵列32可包含多个输入导体37,其中的每一者可使特征单元30中的每一者与行解码器观通信。行解码器观可基于数据流12的内容而在多个输入导体37当中选择特定导体。举例来说,行解码器观可为1字节/256行解码器,其基于可表示一个项的所接收字节的值而激活256个行中的一者。1字节项0000 0000可对应于多个输入导体37当中的顶部行,且 1字节项1111 1111可对应于多个输入导体37当中的底部行。因此,取决于从数据流12接收到哪些项,可选择不同输入导体37。在接收到不同项时,行解码器观可去激活对应于先前项的行且激活对应于新项的行。检测阵列34可耦合到检测总线38,检测总线38将指示搜索准则的全部或部分满足的信号输出到聚合模块M。激活路由矩阵36可基于搜索准则中的已被匹配的搜索项的数目而选择性地激活及去激活特征单元30。聚合模块M可包含锁存器矩阵40、聚合路由矩阵42、阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48及初始化路由矩阵50。锁存器矩阵40可实施某些搜索准则的若干部分。一些搜索准则(例如,一些正则表达)仅计数匹配或匹配群组的第一次出现。锁存器矩阵40可包含记录是否已出现匹配的锁存器。所述锁存器可在初始化期间经清除,且在操作期间周期性地经重新初始化,因为经确定将满足或不可进一步满足搜索准则一即,较早搜索项可需要在可满足所述搜索准则之前被再次匹配。聚合路由矩阵42可类似于激活路由矩阵36地发挥作用。聚合路由矩阵42可在检测总线38上接收指示匹配的信号且可将所述信号路由到连接到阈值逻辑矩阵44的不同群组逻辑线53。聚合路由矩阵42还可将初始化路由矩阵50的输出路由到检测阵列34以在经确定将满足或不可进一步满足搜索准则时对检测阵列34的若干部分进行复位。阈值逻辑矩阵44可包含多个计数器,例如,经配置以递增计数或递减计数的32位计数器。阈值逻辑矩阵44可加载有初始计数且其可基于由辨识模块用信号通知的匹配而从所述计数递增计数或递减计数。举例来说,阈值逻辑矩阵44可计数某一长度的文本中一词的出现数目。阈值逻辑矩阵44的输出可为到逻辑积矩阵46的输入。逻辑积矩阵46可选择性地产生“积”结果(例如,布尔逻辑(Boolean logic)中的“AND”函数)。逻辑积矩阵46可实施为正方形矩阵,其中输出积的数目等于来自阈值逻辑矩阵44的输入线的数目,或逻辑积矩阵46可具有数目不同于输出的输入。可将所得积值输出到逻辑和矩阵48。逻辑和矩阵48可选择性地产生和(例如,布尔逻辑中的“OR”函数)。逻辑和矩阵48也可为正方形矩阵,或逻辑和矩阵48可具有数目不同于输出的输入。由于所述输入为逻辑积,因此逻辑和矩阵48的输出可为逻辑积和(例如,布尔逻辑积和(SOP)形式)。逻辑和矩阵48的输出可由初始化路由矩阵50接收。初始化路由矩阵50可经由聚合路由矩阵42对检测阵列34及聚合模块M的若干部分进行复位。初始化路由矩阵50也可实施为正方形矩阵,或初始化路由矩阵50可具有数目不同于输出的输入。初始化路由矩阵50可响应于来自逻辑和矩阵48的信号且重新初始化型式辨识处理器14的其它部分(例如,在满足搜索准则或经确定不可进一步满足所述搜索准则时)。聚合模块M可包含输出缓冲器51,其接收阈值逻辑矩阵44、聚合路由矩阵42及逻辑和矩阵48的输出。聚合模块M的输出可在输出总线沈上从输出缓冲器51传输到CPU 20(图1)。如下文进一步描述,输出缓冲器51可包含或可自身为结果缓冲器25。在一些实施例中,输出多路复用器可对来自这些组件42、44及48的信号进行多路复用且将指示准则的满足或搜索项的匹配的信号输出到CPU 20(图1)。在其它实施例中,可在不通过所述输出多路复用器传输所述信号的情况下报告来自型式辨识处理器14的结果,此并非暗示也不可省略本文中所描述的任一其它特征。举例来说,可将来自阈值逻辑矩阵44、逻辑积矩阵 46、逻辑和矩阵48或初始化路由矩阵50的信号在输出总线沈上并行传输到所述CPU。图3图解说明搜索项阵列32(图2)中的单个特征单元30的一部分(本文中称为搜索项单元讨的组件)。搜索项单元讨可包含输出导体56及多个存储器单元58。存储器单元58中的每一者可耦合到输出导体56及多个输入导体37当中的导体中的一者两者。 响应于其输入导体37被选择,存储器单元58中的每一者可输出指示其所存储值的值,从而通过输出导体56输出数据。在一些实施例中,多个输入导体37可称为“字线”,且输出导体 56可称为“数据线”。存储器单元58可包含各种类型的存储器单元中的任一者。举例来说,存储器单元 58可为易失性存储器,例如,具有晶体管及电容器的动态随机存取存储器(DRAM)单元。所述晶体管的源极与漏极可分别连接到所述电容器的板及输出导体56,且所述晶体管的栅极可连接到输入导体37中的一者。在易失性存储器的另一实例中,存储器单元58中的每一者可包含静态随机存取存储器(SRAM)单元。所述SRAM单元可具有输出,其通过受输入导体37中的一者控制的存取晶体管选择性地耦合到输出导体56。存储器单元58还可包含非易失性存储器,例如,相变存储器(例如,双向装置)、快闪存储器、硅-氧化物-氮化物-氧化物-硅(S0N0Q存储器、磁阻式存储器或其它类型的非易失性存储器。存储器单元58还可包含触发器,例如,由逻辑门制成的存储器单元。图4及图5描绘操作中的搜索项单元M的实例。图4图解说明搜索项单元M接收不匹配所述单元的搜索项的项,且图5图解说明匹配。如图4所图解说明,搜索项单元M可经配置以通过将数据存储于存储器单元58 中来搜索一个或一个以上项。存储器单元58可各自表示数据流12可呈现的项,例如,在图 3中,每一存储器单元58表示单个字母或数字,以字母“a”开始且以数字“9”结束。表示满足搜索项的项的存储器单元58可经编程以存储第一值,且不表示满足搜索项的项的存储器单元58可经编程以存储不同值。在所图解说明的实例中,搜索项单元M经配置以搜索字母“b”。表示“b”的存储器单元58可存储1或逻辑高,且不表示“b”的存储器单元58
9可经编程以存储0或逻辑低。为了将来自数据流12的项与搜索项进行比较,行解码器观可选择耦合到表示所接收项的存储器单元58的输入导体37。在图4中,数据流12呈现小写“e”。此项可由数据流12以八位ASCII代码的形式呈现,且行解码器28可将此字节解释为行地址,从而通过给导体60通电而在其上输出信号。作为响应,由导体60控制的存储器单元58可输出指示存储器单元58所存储的数据的信号,且所述信号可由输出导体56输送。在此情况下,由于字母“e”并非由搜索项单元M规定的项中的一者,因此其不匹配搜索项,且搜索项单元M输出0值,从而指示未发现匹配。在图5中,数据流12呈现字符“b”。同样,行解码器28可将此项解释为地址,且行解码器观可选择导体62。作为响应,表示字母“b”的存储器单元58输出其所存储值,在此情况下,其为1,从而指示匹配。搜索项单元M可经配置以一次搜索一个以上项。多个存储器单元58可经编程以存储1,从而规定与一个以上项匹配的搜索项。举例来说,表示小写字母“a”及大写字母“A” 的存储器单元58可经编程以存储1,且搜索项单元M可搜索任一项。在另一实例中,搜索项单元M可经配置以在接收到任一字符的情况下输出匹配。所有存储器单元58可经编程以存储1,使得搜索项单元讨可用作搜索准则中的通配符项。图6到图8描绘辨识模块22根据多项搜索准则进行搜索(例如,以找出一词)。 具体来说,图6图解说明辨识模块22检测词的第一字母,图7图解说明第二字母的检测,且图8图解说明最后一个字母的检测。如图6所图解说明,辨识模块22可经配置以搜索词“big”。图解说明三个邻近特征单元63、64及66。特征单元63经配置以检测字母“b”。特征单元64经配置以检测字母 “i”。且特征单元66经配置以既检测字母“g”又指示搜索准则得到满足。图6还描绘检测阵列34的额外细节。检测阵列34可包含特征单元63、64及66 中的每一者中的检测单元68。检测单元68中的每一者可包含存储器单元70 (例如,上述存储器单元类型中的一者(例如,触发器)),其指示特征单元63、64或66是活动还是不活动。 检测单元68可经配置以将指示所述检测单元是否为活动的及是否已从其相关联搜索项单元M接收到指示匹配的信号两者的信号输出到激活路由矩阵36。不活动特征单元63、64 及66可忽视匹配。检测单元68中的每一者可包含具有来自存储器单元70及输出导体56 的输入的AND门。可将所述AND门的输出路由到检测总线38及激活路由矩阵36两者或者一者或另一者。激活路由矩阵36又可通过向检测阵列34中的存储器单元70写入来选择性地激活特征单元63、64及66。激活路由矩阵36可根据搜索准则及接下来在数据流12中搜索哪个搜索项来激活特征单元63、64或66。在图6中,数据流12呈现字母“b”。作为响应,特征单元63、64及66中的每一者可在其输出导体56上输出指示存储于连接到导体62的存储器单元58 (其表示字母“b” ) 中的值的信号。接着,检测单元56可各自确定其是否已接收到指示匹配的信号及其是否为活动的。由于特征单元63经配置以检测字母“b”且为活动的(如其存储器单元70所指示),因此特征单元63中的检测单元68可将指示搜索准则的第一搜索项已被匹配的信号输出到激活路由矩阵36。如图7所图解说明,在匹配第一搜索项之后,激活路由矩阵36可通过将1写入到下一特征单元64的检测单元68中的存储器单元70来激活所述特征单元。激活路由矩阵 36还可维持特征单元63的活动状态,以防下一项满足第一搜索项(例如,在接收到项序列 “bbig”的情况下)。在搜索数据流12期间的一部分时间或大致所有时间期间,搜索准则的第一搜索项可维持于活动状态中。在图7中,数据流12将字母“i”呈现给辨识模块22。作为响应,特征单元63、64 及66中的每一者可在其输出导体56上输出指示存储于连接到导体72的存储器单元58 (其表示字母“i”)中的值的信号。接着,检测单元56可各自确定其是否已接收到指示匹配的信号及其是否为活动的。由于特征单元64经配置以检测字母“i”且为活动的(如其存储器单元70所指示),因此特征单元64中的检测单元68可将指示其搜索准则的下一搜索项已被匹配的信号输出到激活路由矩阵36。接下来,激活路由矩阵36可激活特征单元66,如图8所图解说明。在评估下一项之前,可去激活特征单元64。举例来说,特征单元64可由其检测单元68在检测循环之间对其存储器单元70进行复位来去激活或激活路由矩阵36可去激活特征单元64。在图8中,数据流12将项“g”呈现给行解码器观,所述行解码器选择表示项g”的导体74。作为响应,特征单元63、64及66中的每一者可在其输出导体56上输出指示存储于连接到导体74的存储器单元58 (其表示字母“g”)中的值的信号。接着,检测单元56可各自确定其是否已接收到指示匹配的信号及其是否为活动的。由于特征单元66经配置以检测字母“g”且为活动的(如其存储器单元70所指示),因此特征单元66中的检测单元 68可将指示其搜索准则的最后一个搜索项已被匹配的信号输出到激活路由矩阵36。搜索准则的末端或搜索准则的一部分可由激活路由矩阵36或检测单元68来识别。这些组件36或68可包含指示其特征单元63、64或66是规定搜索准则的最后一个搜索项还是搜索准则的分量的存储器。举例来说,搜索准则可规定其中词“cattle”出现两次的所有句子,且辨识模块可将指示“cattle”在句子内的每一次出现的信号输出到聚合模块, 所述聚合模块可计数所述出现以确定所述搜索准则是否得到满足。可在数个条件下激活特征单元63、64或66。特征单元63、64或66可为“始终活动”,此意味着其在整个或大致整个搜索期间保持活动。始终活动特征单元63、64或66的实例为搜索准则的第一特征单元(例如,特征单元63)。特征单元63、64或66可为“在请求时活动”,此意味着特征单元63、64或66在某一在先条件得到匹配时(例如,在搜索准则中的前面搜索项得到匹配时)为活动的。实例为在由图6到图8中的特征单元63请求时为活动的特征单元64及在由特征单元64请求时为活动的特征单元66。特征单元63、64或66可为“自激活的”,此意味着一旦其被激活,只要其搜索项得到匹配其即激活其自身。举例来说,具有由任一数值数字匹配的搜索项的自激活特征单元可在序列“123456xy”中保持活动直到到达字母“X”为止。每当所述自激活特征单元的搜索项得到匹配时,其即可激活搜索准则中的下一特征单元。因此,始终活动特征单元可由自激活特征单元及在请求时活动的特征单元形成所述自激活特征单元可经编程而使所有其存储器单元58均存储1,且其可在每一项之后重复激活在请求时活动的特征单元。在一些
11实施例中,每一特征单元63、64及66可在其检测单元68中或在激活路由矩阵36中包含规定所述特征单元是否为始终活动的存储器单元,借此由单个特征单元形成始终活动的特征单元。图9描绘经配置以根据第一搜索准则75及第二搜索准则76并行进行搜索的辨识模块22的实例。在此实例中,第一搜索准则75规定词“big”,且第二搜索准则76规定词 “cab”。指示来自数据流12的当前项的信号可在大体相同时间被传送到每一搜索准则75 及76中的特征单元。输入导体37中的每一者跨越搜索准则75及76两者。因此,在一些实施例中,搜索准则75及76两者可大体同时评估当前项。相信此会加速搜索准则的评估。 其它实施例可包含经配置以并行评估更多搜索准则的更多特征单元。举例来说,一些实施例可包含并行操作的100、500、1000、5000、10,000个以上特征单元。这些特征单元可大体同时评估数百个或数千个搜索准则。具有不同数目的搜索项的搜索准则可通过将更多或更少的特征单元分配到所述搜索准则来形成。简单搜索准则可消耗比复杂搜索准则更少的呈特征单元形式的资源。相信,相对于具有大数目的大体等同的核心的处理器(全部经配置以评估复杂搜索准则),此会减少型式辨识处理器14(图幻的成本。图10到图12描绘更复杂搜索准则的实例及激活路由矩阵36的特征两者。激活路由矩阵36可包含多个激活路由单元78,其群组可与特征单元63、64、66、80、82、84及86 中的每一者相关联。举例来说,所述特征单元中的每一者可包含5个、10个、20个、50个或 50个以上激活路由单元78。激活路由单元78可经配置以在搜索准则中前面的搜索项得到匹配时将激活信号传输到下一搜索项。激活路由单元78可经配置以将激活信号路由到邻近特征单元或同一特征单元内的其它激活路由单元78。激活路由单元78可包含指示哪些特征单元对应于搜索准则中的下一搜索项的存储器。如图10到图12所图解说明,辨识模块22可经配置以根据比规定单个词的准则复杂的搜索准则进行搜索。举例来说,辨识模块22可经配置以搜索以前缀88开始且以两个后缀90或92中的一者结束的词。所图解说明的搜索准则规定依序以字母“C”及“1”开始且以字母序列“ap”或字母序列“oud”结束的词。此为规定多个目标表达(例如,词“clap” 或词“cloud”)的搜索准则的实例。在图10中,数据流12将字母“C”呈现给辨识模块22,且特征单元63既活动又检测匹配。作为响应,激活路由矩阵36可激活下一特征单元64。激活路由矩阵36还可维持特征单元63的活动状态,因为特征单元63为搜索准则中的第一搜索项。在图11中,数据流12呈现字母“1”,且特征单元64辨识匹配且为活动的。作为响应,激活路由矩阵36可将激活信号传输到第一后缀90的第一特征单元66及第二后缀92 的第一特征单元82两者。在其它实例中,可激活更多后缀,或多个前缀可激活一个或一个以上后缀。接下来,如图12所图解说明,数据流12将字母“0”呈现给辨识模块22,且第二后缀92的特征单元82检测匹配且为活动的。作为响应,激活路由矩阵36可激活第二后缀92 的下一特征单元84。在允许特征单元66变成不活动时,对第一后缀90的搜索可停止。图 10到图12所图解说明的步骤可继续经过字母“U”及“d”,或搜索可停止直到下一次前缀88 得到匹配为止。
图13描绘另一型式辨识处理器93的实例。型式辨识处理器93可以与上文关于图2的型式辨识处理器14所描述的大致类似的方式操作。然而,除与图2的型式辨识处理器14共有的元件以外,型式辨识处理器93可进一步包含阈值输出屏蔽94、积输出屏蔽96、 和输出屏蔽98及初始化输出屏蔽100。阈值输出屏蔽94、积输出屏蔽96、和输出屏蔽98及初始化输出屏蔽100通常可操作以“屏蔽”(即,过滤)作为输入接收的一个或一个以上结果。举例来说,阈值逻辑矩阵44 可经设定以在数据流12中搜索(举例来说)安全威胁的所有已知出现。然而,过滤这些结果以找出一个或一个以上特定安全威胁(例如,特定高风险威胁)可为有益的。因此,阈值输出屏蔽94可经设定以阻挡除所规定的高风险安全威胁以外的由阈值逻辑44发现的所有安全威胁。如果发现此高风险安全威胁,那么可将威胁通知从阈值输出屏蔽94传输到输出缓冲器51以供CPU检索。因此,阈值输出屏蔽94、积输出屏蔽96、和输出屏蔽98及初始化输出屏蔽100可形成若干屏蔽模块,其中的每一者可过滤相应矩阵44到50的输出,以致力于从型式匹配矩阵44到50的整个结果输出分割出一个或一个以上所规定结果。在一些实施例中,输出屏蔽模块94到100可将相关联屏蔽寄存器应用于型式匹配矩阵44到50的输出以促进此过滤。因此,阈值输出屏蔽94可操作以基于阈值逻辑矩阵44的结果而产生搜索结果匹配。如上文所描述,阈值逻辑矩阵44可包含多个计数器,例如,32位计数器,其经配置以基于辨识模块用信号通知的匹配而递增计数或递减计数。阈值逻辑矩阵44可计数一词在某一长度的文本中出现的数目,例如,在一数据串中发现三个“A”符号。可将来自阈值逻辑矩阵44的结果传递到阈值输出屏蔽94、输出缓冲器51及逻辑积矩阵46。阈值输出屏蔽94可利用由阈值逻辑矩阵44确定的阈值结果来执行额外匹配搜索。此额外匹配搜索可包含对由阈值逻辑矩阵44确定的阈值结果与(举例来说)阈值输出屏蔽94中的位位置进行“AND 运算”。举例来说,可沿(例如)32条线将阈值结果传递到阈值输出屏蔽94,其中每条线可对应于特定结果。这些线中的每一者还可在阈值输出矩阵94中具有对应位位置,可取决于阈值输出屏蔽94是否将选择在对应于所述位位置的线上接收的结果而将所述对应位位置设定为1或0。因此,对于阈值输出屏蔽94中被设定为1的任何位位置,可将沿对应结果线从阈值逻辑矩阵44接收的任何信息从阈值输出屏蔽94传输到输出缓冲器51。类似地, 对于阈值输出矩阵94寄存器中被设定为0的任何位位置,可屏蔽(S卩,过滤)沿对应线从阈值逻辑矩阵44接收的任何信息且因此防止其从阈值输出矩阵94传输到输出缓冲器51。 以此方式,阈值输出屏蔽94可有效地选择将哪些阈值逻辑矩阵44结果传递到输出缓冲器 51 (例如,对应于阈值输出屏蔽94中的经启用位位置的那些结果)及忽略阈值逻辑矩阵44 的哪些结果(例如,对应于阈值输出屏蔽94中的经启用位位置的那些结果)。应注意,尽管以上论述目的在于描述经由阈值输出屏蔽94进行的硬件匹配,但可利用软件匹配,所述软件匹配利用在功能上以与上文所描述的方式类似的方式执行的阈值屏蔽程序。积输出屏蔽96可操作以基于逻辑积矩阵46的结果而产生搜索结果匹配。逻辑积矩阵46可基于两个或两个以上阈值逻辑矩阵44结果而选择性地产生“积”结果(例如,布尔逻辑中的“AND”函数)。举例来说,逻辑积矩阵46可搜索三个“A”及项“cat”两者。可将来自逻辑积矩阵46的结果传递到积输出屏蔽96、输出缓冲器51及逻辑和矩阵48。积输出屏蔽96可利用由逻辑积矩阵46确定的积结果来执行额外匹配搜索。此额外匹配搜索可包含对由逻辑积矩阵46确定的结果与(举例来说)阈值输出屏蔽94中的位位置进行“AND
运算”。举例来说,可沿(例如)32条线将逻辑积矩阵46的积结果传递到积输出屏蔽96, 其中每条线可对应于特定结果。这些线中的每一者还可在积输出屏蔽96中具有对应位位置,可取决于积输出屏蔽96是否将选择在对应于所述位位置的线上接收的结果而将所述对应位位置设定为1或0。因此,对于积输出屏蔽96中被设定为1的任何位位置,可将沿对应结果线从逻辑积矩阵46接收的任何信息从积输出屏蔽96传输到输出缓冲器51。类似地,对于积输出屏蔽96中被设定为0的任何位位置,可屏蔽(S卩,过滤)沿对应线从逻辑积矩阵46接收的任何信息,且因此防止其从积输出屏蔽96传输到输出缓冲器51。以此方式,积输出屏蔽96可有效地选择将哪些逻辑积矩阵46结果传递到输出缓冲器51 (例如,对应于积输出屏蔽96中的经启用位位置的那些结果)及忽略逻辑积矩阵46的哪些结果(例如,对应于积输出屏蔽96中的经启用位位置的那些结果)。应注意,尽管以上论述目的在于描述经由积输出屏蔽96进行的硬件匹配,但可利用软件匹配,所述软件匹配利用在功能上以与上文所描述的方式类似的方式执行的阈值屏蔽程序。和输出屏蔽98可以与上文关于阈值输出屏蔽94及积输出屏蔽96所描述的方式类似的方式操作以基于逻辑和矩阵48的结果而产生搜索结果匹配。逻辑和矩阵48可选择性地产生“和”结果(例如,布尔逻辑中的“OR”函数)或可基于逻辑积输入产生逻辑积和 (例如,布尔逻辑积和(SOP)形式)。举例来说,逻辑和矩阵48可搜索三个“A”及项“cat” 两者或搜索三个“N”及项“dog”。可将来自逻辑和矩阵48的结果传递到和输出屏蔽98、输出缓冲器51及初始化路由矩阵50。此些和结果可由和输出屏蔽98沿输出结果线集合接收。这些线中的每一者还可在和输出屏蔽98中具有对应位位置,可取决于和输出屏蔽98是否将选择在对应于所述位位置的线上接收的结果将所述对应位位置设定为1或0。因此,对于和输出屏蔽98中被设定为1的任何位位置,可将沿对应结果线从逻辑和矩阵48接收的任何信息从和输出屏蔽 98传输到输出缓冲器51。类似地,对于和输出屏蔽98中被设定为0的任何位位置,可屏蔽 (即,过滤)沿对应线从逻辑和矩阵48接收的任何信息且因此防止其从和输出屏蔽98传输到输出缓冲器51。以此方式,和输出屏蔽98可有效地选择将哪些逻辑和矩阵48结果传递到输出缓冲器51 (例如,对应于和输出屏蔽98中的经启用位位置的那些结果)及忽略逻辑和矩阵48的哪些结果(例如,对应于和输出屏蔽98中的经启用位位置的那些结果)。 应注意,尽管以上论述目的在于描述经由和输出屏蔽98进行的硬件匹配,但可利用软件匹配,所述软件匹配利用在功能上以与上文所描述的方式类似的方式执行的阈值屏蔽程序。初始化输出屏蔽100可操作以基于初始化路由矩阵50的初始化结果而产生结果。 初始化路由矩阵50可基于来自逻辑和矩阵48的结果而经由聚合路由矩阵42选择性地对检测阵列34及/或聚合模块M的若干部分进行复位。初始化路由矩阵50还可(例如) 在搜索准则得到满足或经确定不可进一步满足时重新初始化型式辨识处理器14的其它部分。可将这些初始化结果传递到输出缓冲器51及初始化输出屏蔽100。初始化输出屏蔽100可利用由初始化路由矩阵50确定的初始化结果来执行额外匹配搜索,借此可产生次级条件复位。可通过对由初始化路由矩阵50确定的初始化结果与次级条件进行“AND运算”来产生此额外复位,以用于(举例来说)初始化输出屏蔽100经由聚合路由屏蔽42对检测阵列34及/或聚合模块M进行复位。此次级条件可为初始化输出屏蔽100中的一个或一个以上经激活位位置,借此所述位位置可对应于来自初始化路由矩阵50的一条或一条以上结果线。可取决于初始化输出屏蔽100是否将选择在对应于所述位位置的线上接收的结果将初始化输出屏蔽100中的给定位位置设定为1或0,以有效地选择将哪些初始化路由矩阵50结果传递到输出缓冲器51及忽略初始化路由矩阵50的哪些结果。此外,可经由硬件或经由软件实施初始化输出屏蔽100,所述软件利用(举例来说)在功能上以与上文所描述的硬件实施方案类似的方式执行的初始化屏蔽程序。因此,输出缓冲器51可接收阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48及初始化路由矩阵50的输出以及阈值输出屏蔽94、积输出屏蔽96、和输出屏蔽98及初始化输出屏蔽100的输出。输出缓冲器51连同结果缓冲器25 —起可在输出跨越输出总线沈传输之前作为用于所述输出的缓冲器而操作。此外,可同时(即,并行)执行这些结果到输出缓冲器51的写入。图14图解说明耦合到型式辨识处理器14或型式辨识处理器93的结果缓冲器25 的实例。如上文关于图2及图13所描述,结果缓冲器25可包含于输出缓冲器51中。结果缓冲器25可包含先进先出(FIFO)缓冲器102、缓冲器写入控制模块104、缓冲器读取控制模块106及缓冲器配置模块108。结果缓冲器25可整体地形成为型式辨识处理器14的一部分(例如,形成于同一硅主体上),或者其可为单独组件或单独组件的一部分。结果缓冲器25可经由上游结果总线110从型式辨识处理器14接收结果数据,且结果缓冲器25可经由下游结果总线112将结果数据输出到CPU 20(图1)。配置总线114可使CPU 20与结果缓冲器25中的缓冲器配置模块108及可用于配置型式辨识处理器14的型式辨识处理器配置模块116通信。FIFO缓冲器102可经配置以存储多个记录118。每一记录118可存储结果数据, 例如,与准则的满足相关的数据。每一记录118可与一个准则的满足的一个实例相对应,或与所述准则的满足相关的数据可存储于数个记录118中,例如,数个邻近或以其它方式呈顺序的记录118。每一记录118可包含用于存储结果状态信息120、内务信息122及结果数据IM的字段。其它实施例可包含额外字段或更少字段。结果状态字段120可存储识别数据流12 且将数据流12与型式辨识处理器14可正在接收的其它数据流区分开的数据。内务字段122可存储指示当准则得到满足时型式辨识处理器14的状态的数据。举例来说,内务字段122可存储指示是否已出现错误条件的数据。错误条件的实例包含输入数据溢出或FIFO缓冲器已满条件。举例来说,FIFO缓冲器102可包含多于约32个记录、 多于约64个记录、多于约1 个记录、多于约256个记录或多于约512个记录。结果数据1 可包含例如哪一准则得到满足、来自数据流12的满足所述准则的项序列、指向数据流12的满足所述准则的部分的项计数(例如,位计数)或期间接收数据流的满足所述准则的部分的时间周期等数据。可将存储于每一记录118中的结果数据IM归类为一组。此组可包含用于存储来自阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48、初始化路由矩阵50、阈值输出屏蔽94、积输出屏蔽96、和输出屏蔽98及/或初始化输出屏蔽 100中的每一者的匹配结果输出中的每一者的单独寄存器。此外,可将匹配结果输出并行地写入到寄存器组中。以此方式,可接收每一记录118的结果数据124(即,匹配数据)并同时将其存储到寄存器组中,借此每一单独寄存器可个别存储来自特定矩阵或屏蔽的所规定结果。缓冲器写入控制模块108可经配置以控制将来自上游结果总线110的哪些数据写入到FIFO缓冲器102中的哪一记录118。缓冲器写入控制模块102可包含每当准则得到满足时或每当将结果数据写入到新记录118时递增或递减的计数器。所述缓冲器写入控制模块还可包含指示哪一记录118是最近输出到CPU 20的存储器,且缓冲器写入控制模块104 可经配置以将来自上游结果总线110的数据写入到含有已被输送到CPU 20的数据的记录 118。类似地,缓冲器读取控制模块106可经配置以指示哪一记录118是尚未从FIFO缓冲器102读取的最旧记录。举例来说,缓冲器读取控制模块106可包含每当从FIFO缓冲器 102读取记录时递增或递减的计数器,且所述计数器的计数可识别最旧未读记录118。缓冲器读取控制模块106可经配置以接收来自CPU 20的读取命令信号1 且通过致使FIFO缓冲器102输出由最旧未读记录118存储的数据而响应于所述读取命令。结果总线112可包含不同于输送数据流12的总线的导体,使得数据流12可在下游结果总线112正在输出数据的同时输入数据。在其中结果缓冲器25与型式辨识处理器 14整体形成的实施例中,型式辨识处理器14可包含用于输送进数据流12及输送出结果的单独引脚。因此,可在输入数据流的同时输出结果数据。或者,结果总线112可利用相同导体或引脚以接收数据流12及输出结果数据,实际上,利用共享总线。举例来说,可对所述共享总线进行多路复用或时间分片,使得所述共享总线可由相同导体利用以接收数据流12及输出结果数据。然而,利用共享总线来传输输入数据的时间可超过利用所述共享总线来传输输出数据的时间,因此产生比输出循环多的输入循环。如此,在共享总线的多路复用期间,可赋予输入循环最高优先级。随后可在时间允许时将输出循环归入未正被用作输入循环的时隙中。在操作中,型式辨识处理器14可以上文参考图2到图13所描述的方式搜索数据流12,且来自所述搜索的结果可在被输送到CPU 20之前在结果缓冲器25中缓冲。当准则得到满足时,可经由上游结果总线110将与所述准则的满足相关的数据(例如,指示哪一准则得到满足的数据、指示数据流12中的哪些项满足所述准则的数据及指示正在搜索哪一数据流的数据)传输到结果缓冲器25。在接收到此数据之后,缓冲器写入控制模块104可即刻确定FIFO缓冲器102中是否存在任何空闲记录,例如,存储已被输送到CPU 20的数据的记录118或未存储任何数据的记录118。如果无空闲记录可用,那么缓冲器写入控制模块104可用信号通知型式辨识处理器14停止搜索数据流且用信号通知CPU 20暂停传输数据流12,同时CPU 20处理FIFO 缓冲器102中的记录且产生空间。缓冲器写入控制模块104还可将指示型式辨识处理器14 进入结果缓冲器溢出状态的数据存储于当前或后续记录条目的内务信息字段122中。如果缓冲器写入控制模块104确定至少一个空闲记录118可用,那么缓冲器写入控制模块104可将来自上游结果数据总线110的结果数据写入到空闲记录118。缓冲器写入控制模块104可将记录118指定为已被写入但尚未从其读取,且缓冲器写入控制模块104 可将记录118指定为相对于其它经写入记录为最新记录。
16
在大致相同时间或在其它时间,CPU 20可将读取控制信号1 传输到缓冲器读取控制模块106,借此用信号通知缓冲器读取控制模块106输出尚未读取的最旧记录118中的数据。因此,CPU 20可“轮询”临界状态寄存器以确定(举例来说)新纪录118是否可供传输到CPU 20。由CPU 20进行的轮询可经由CPU 20确定是否已设定结果缓冲器25内部或外部的一个或一个以上状态位而发生。所述一个或一个以上状态位的设定可指示新型式匹配结果数据可供CPU 20检索。缓冲器读取控制模块106还可确定是否存在任何未读记录118。如果不存在未读记录,那么缓冲器读取控制模块106可用信号通知CPU 20当前不存在未读记录。如果确实存在未读记录118,那么缓冲器读取控制模块106可识别最旧未读记录且将由最旧未读记录118存储的数据输送到CPU 20。此构成CPU 20借以“询问”新结果是否可用的“轮询” 方法。另一方法“中断”可构成借以通知CPU 20给定匹配的主动通知方法。在此方法中, 缓冲器读取控制模块106可经由下游结果总线112主动地将通知信号传输到CPU 20,从而通知及/或中断CPU 20,因此使得CPU 20知晓一个或一个以上可用记录118的可用性。可利用中断线(未图解说明,但视为下游结果总线112的一部分)将通知信号传输到CPU 20。在其它实施例中,缓冲器读取控制模块106可输送由最旧未读记录118存储的数据的一部分(例如,哪一准则得到满足),且CPU 20可确定是否请求由记录118存储的更多数据(例如,来自数据流12的哪些项满足所述准则)。当完成记录118时,CPU 20通知缓冲器读取控制模块106不再需要记录。接着,缓冲器读取控制模块106可将所述记录指定为已被读取且由缓冲器写入控制模块104盖写是安全的。所述结果缓冲器还减少因搜索结果处理所导致的延迟。当数据流12比CPU 20可接收或处理搜索结果更快地满足搜索准则时,结果缓冲器25可在CPU 20追赶时存储未经处理的结果数据。结果缓冲器25可甚至在数个搜索准则在约相同时间得到满足时也使结果数据顺畅地流动到CPU 20,且因此,型式辨识处理器14可继续搜索数据流12,同时CPU 20处理由结果缓冲器25存储的积压的搜索结果。另外,结果缓冲器25可在来自数据流搜索的结果输入到结果缓冲器25中的同时将结果数据输出到CPU 20。也就是说,结果缓冲器25可将数据流搜索的结果接收到“空” 记录118中,同时将先前所接收的结果从“最旧”未读记录118传输到CPU 20。此可通过在缓冲器写入控制模块104控制下将所接收的搜索结果存储于“空”记录118中且在缓冲器读取控制模块106控制下读取“最旧”记录118而实现。此可减少因搜索结果处理所导致的延迟。图15图解说明可对应于最旧记录118的结果数据124(举例来说,FIFO位置0的结果数据124)的结果组128。所述结果组可为到FIFO记录118中的“窗口”,使得最旧记录118是CPU 20随时可见、可经由结果组1 读取的仅有记录。一旦完成对结果组128的存取,CPU 20 (举例来说)就可向缓冲器读取控制模块106通知CPU 20已完成结果组1 的记录118(即,最旧的所存储结果数据124)。作为响应,缓冲器读取控制模块106可推进 FIFO队列,从而使得下一记录118( S卩,FIFO位置1)作为对应于结果组128的新的最旧记录118而可见。因此,CPU 20可仅能够寻址对应于结果组128的当前记录118。剩余记录 118可保持隐藏于FIFO队列中不被CPU 20发现。
结果组1 可包含寄存器群组130。此寄存器群组130可用于存储结果数据124。 举例来说,寄存器群组130可包含用于存储来自阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48、初始化路由矩阵50、阈值输出屏蔽94、积输出屏蔽96、和输出屏蔽98及初始化输出屏蔽100中的每一者的匹配结果输出中的每一者的单独寄存器132到146。此外,可并行地向寄存器群组130中的每一寄存器132到146写入。以此方式,可接收对应于给定FIFO位置的记录118的结果数据124并同时将其存储到寄存器群组130中,借此每一单独寄存器 132到146可个别地存储来自特定矩阵44到50或屏蔽94到100的所规定结果。尽管可易于对本发明做出各种修改及替代形式,但已在图式中以实例方式展示了特定实施例并在本文中对所述特定实施例进行了详细描述。然而,应理解,并不打算将本发明限制于所揭示的特定形式。而是,本发明将涵盖归属于由以上所附权利要求书界定的本发明精神及范围内的所有修改、等效内容及替代方案。
权利要求
1.一种系统,其包括型式辨识处理器,其包括若干型式匹配矩阵,其适于至少部分地基于对数据流中的一个或一个以上值的搜索而产生若干第一结果,及若干屏蔽模块,其适于至少部分地基于过滤所述第一结果而产生若干第二结果;及结果缓冲器,其中所述结果缓冲器包含多个先进先出(FIFO)位置,适于存储由所述型式辨识处理器产生的所述第一及第二结果。
2.根据权利要求1所述的系统,其中存储于所述多个FIFO位置中的每一者中的所述第一及第二结果被存储于对应于每一 FIFO位置的寄存器组中。
3.根据权利要求2所述的系统,其中所述寄存器组包括多个寄存器,所述多个寄存器各自适于存储对应于所述第一结果中的一者的匹配结果数据或对应于所述第二结果中的一者的经屏蔽结果数据。
4.根据权利要求3所述的系统,其中所述型式匹配矩阵包含阈值逻辑矩阵,所述阈值逻辑矩阵经配置以将所述数据流中一值的出现寄存为阈值结果,且将所述阈值结果作为所述第一结果的子集输出到所述多个寄存器中的一个寄存器。
5.根据权利要求4所述的系统,其中所述屏蔽模块包含阈值输出屏蔽,所述阈值输出屏蔽经配置以从所述阈值逻辑矩阵接收所述阈值结果;过滤所述阈值结果;及将所述经过滤的阈值结果作为所述第二结果的子集输出到所述多个寄存器中的额外寄存器。
6.根据权利要求3所述的系统,其中所述型式匹配矩阵包含逻辑积矩阵,所述逻辑积矩阵经配置以至少部分地基于两个或两个以上阈值逻辑矩阵结果而产生积结果,且将所述积结果作为所述第一结果的子集输出到所述多个寄存器中的一个寄存器。
7.根据权利要求6所述的系统,其中所述屏蔽模块包含积输出屏蔽,所述积输出屏蔽经配置以从所述逻辑积矩阵接收所述积结果;过滤所述所接收的积结果;及将所述经过滤的积结果作为所述第二结果的子集输出到所述多个寄存器中的额外寄存器。
8.根据权利要求3所述的系统,其中所述型式匹配矩阵包含逻辑和矩阵,所述逻辑和矩阵经配置以至少部分地基于两个或两个以上逻辑积矩阵结果而产生和结果,且将所述和结果作为所述第一结果的子集输出到所述多个寄存器中的一个寄存器。
9.根据权利要求8所述的系统,其中所述屏蔽模块包含和输出屏蔽,所述和输出屏蔽经配置以从所述逻辑和矩阵接收所述和结果;过滤所述所接收的和结果;及将经过滤的匹配作为所述第二结果的子集输出到所述多个寄存器中的额外寄存器。
10.根据权利要求3所述的系统,其中所述型式匹配矩阵包含初始化路由矩阵,所述初始化路由矩阵经配置以在所述初始化路由矩阵确定搜索准则得到满足时寄存初始化结果, 且将所述初始化结果作为所述第一结果的子集输出到所述多个寄存器中的一个寄存器。
11.根据权利要求10所述的系统,其中所述屏蔽模块包含初始化输出屏蔽,所述初始化输出屏蔽经配置以从所述初始化路由矩阵接收所述初始化结果; 过滤所述所接收的初始化结果;及将所述经过滤的初始化结果作为所述第二结果的子集输出到所述多个寄存器中的额外寄存器。
12.根据权利要求3所述的系统,其中所述多个寄存器中的每一者可被同时写入。
13.一种方法,其包括 接收数据流;经由型式辨识处理器的一个或一个以上型式匹配矩阵搜索所述数据流,所述一个或一个以上型式匹配矩阵适于至少部分地基于对数据流中的一个或一个以上值的搜索而产生若干第一结果;经由一个或一个以上屏蔽模块过滤所述第一结果以产生若干第二结果; 将所述第一及第二结果存储于包括一个或一个以上FIFO位置的缓冲器中,所述一个或一个以上FIFO位置包括寄存器群组。
14.根据权利要求13所述的方法,其中经由所述一个或一个以上屏蔽模块过滤所述第一结果包括对所述第一结果与存储于所述一个或一个以上屏蔽模块的屏蔽寄存器中的值进行AND运算以产生所述第二结果。
15.根据权利要求13所述的方法,其中经由所述一个或一个以上型式匹配矩阵搜索所述数据流包含经由阈值逻辑矩阵、逻辑积矩阵、逻辑和矩阵及初始化路由矩阵中的一者或一者以上搜索所述数据流。
16.根据权利要求13所述的方法,其中经由所述一个或一个以上屏蔽模块过滤所述第一结果包含经由阈值输出屏蔽、积输出屏蔽、和输出屏蔽及初始化输出屏蔽中的一者或一者以上过滤所述第一结果。
17.根据权利要求13所述的方法,其中可同时向所述寄存器群组中的每一寄存器写入。
18.根据权利要求13所述的方法,其包括在确定状态位被激活之后即刻存取所述一个或一个以上FIFO位置中的至少一者,其中所述状态位是在将型式匹配数据存储于所述寄存器群组中时被激活。
19.根据权利要求13所述的方法,其包括在接收到中断信号之后即刻存取所述一个或一个以上FIFO位置中的至少一者,其中所述中断信号指示型式匹配数据被存储于所述寄存器群组中。
20.—种系统,其包括多个寄存器,其中所述多个寄存器适于存储由匹配矩阵经由对数据流中的一个或一个以上值的搜索所产生的结果数据及由屏蔽模块经由过滤所述结果数据所产生的经屏蔽结果数据。
21.根据权利要求20所述的系统,其中所述多个寄存器以先进先出次序被分组成若干寄存器组。
22.根据权利要求21所述的方法,其包括处理器适于在确定是否已激活状态位之后即刻存取所述寄存器组中的至少一者,其中所述状态位对应于结果数据正被写入到至少一个寄存器组中的所述多个寄存器中。
23.根据权利要求21所述的方法,其包括处理器适于接收中断信号且在接收到所述中断信号之后即刻存取所述寄存器组中的至少一者,其中所述中断信号对应于结果数据正被写入到至少一个寄存器组中的所述多个寄存器中。
全文摘要
本发明揭示方法及装置,其中一种系统包含一装置,所述装置包含用于搜索数据流(12)的一个或一个以上型式辨识处理器(14、93)。型式辨识处理器(14、93)的群集可包含可用于执行各种搜索功能的各种搜索型式匹配矩阵(40、42、44、46、48、50)及屏蔽模块(94、96、98、100)。另外,可利用缓冲器(25)来个别地存储来自型式匹配矩阵(40、42、44、46、48、50)及屏蔽模块(94、96、98、100)的各种结果以供后续检索。
文档编号G06F7/02GK102272715SQ200980154488
公开日2011年12月7日 申请日期2009年12月16日 优先权日2009年1月12日
发明者哈罗德·B·诺伊斯 申请人:美光科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1