启用不同数据集合的识别的系统及方法

文档序号:6595667阅读:170来源:国知局
专利名称:启用不同数据集合的识别的系统及方法
技术领域
本发明的实施例大体来说涉及型式辨识处理器,且更特定来说在某些实施例中涉及型式辨识处理器中的数据及结果的管理。
背景技术
在计算领域中,型式辨识任务越来越具有挑战性。计算机之间传输的数据量不断增大,且用户期望识别的型式数目日益增加。举例来说,垃圾邮件或恶意软件通常通过搜索数据串流中的型式(例如,特定短语或代码片段)来检测。型式的数目随着垃圾邮件及恶意软件的多样化而增加,因为可实施新型式以搜索新变体。搜索数据串流以找出这些型式中的每一者可形成计算瓶颈。通常,在接收到数据串流时,对其进行搜索以找出每一型式, 一次一个。在系统准备搜索数据串流的下一部分之前的延迟随着型式的数目增加。因此, 型式辨识可使数据的接收减慢。执行型式辨识功能的装置可经由基于包的网络(例如传输控制协议/因特网协议 (TCP/IP))接收一个或一个以上数据串流。然而,经由此网络所接收的数据串流的包可与来自其它数据串流的其它包混合或“多路复用”。另外,所述包可不按次序接收。此外,在处理所述数据串流的包之后,不可用每一数据串流来识别装置所输出的任何结果。在一些情况下,装置可接收并处理数百个数据串流。识别并追踪每一数据串流可使用大量资源且可影响装置的处理通量及等待时间。


图1描绘搜索数据串流的系统的实例;图2描绘图1的系统中的型式辨识处理器的实例;图3描绘图2的型式辨识处理器中的搜索项单元的实例;图4及图5描绘搜索数据串流以找出单个字符的图3的搜索项单元;图6到图8描绘包含搜索数据串流以找出一词的数个搜索项单元的辨识模块;图9描绘经配置以并行地搜索数据串流以找出两个词的辨识模块;图10到图12描绘根据规定具有相同前缀的多个词的搜索准则进行搜索的辨识模块;图13描绘根据本发明的实施例的接收多个数据串流的图1的系统;图14描绘根据本发明的实施例的图2的型式辨识处理器的数据流识别寄存器及结果缓冲器;且图15是根据本发明的实施例的用于在图2的型式辨识处理器中处理多个数据流的过程的流程图。
具体实施例方式图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或每秒 128MB的数据串流12)而不会使所述数据串流减慢。在一些实施例中,搜索循环持续时间不随搜索准则的数目按比例缩放,因此搜索准则的数目对型式辨识处理器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、0gg Vorbis等,对于所述经编码版本,可得到数据串流12的经解码版本,或反之亦然。型式辨识处理器14可为与CPU 20 一起集成到单个组件(例如,单个装置)中或可形成为单独组件的硬件。举例来说,型式辨识处理器14可为单独集成电路。型式辨识处理器14可称为“协处理器”或“型式辨识协处理器”。图2描绘型式辨识处理器14的实例。型式辨识处理器14可包含辨识模块22及具有输出缓冲器51的聚合模块M。输出缓冲器51可包含结果缓冲器25。辨识模块22可经配置以将所接收的项与搜索项进行比较,且辨识模块22与聚合模块M两者可协作以确定将一项与搜索项匹配是否满足搜索准则。结果缓冲器25可缓冲来自型式辨识处理器14 的其它部分的结果数据,如下文将关于图14进一步描述。辨识模块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)。在一些实施例中,输出多路复用器可对来自这些组件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可经编程以存储0或逻辑低。为了将来自数据串流12的项与搜索项进行比较,行解码器观可选择耦合到表示所接收项的存储器单元58的输入导体37。在图4中,数据串流12呈现小写“e”。此项可由数据串流12以八位ASCII代码的形式呈现,且行解码器观可将此字节解释为行地址,从而通过给导体60通电而在其上输出信号。作为响应,由导体60控制的存储器单元58可输出指示存储器单元58所存储的数据的信号,且所述信号可由输出导体56传达。在此情况下,由于字母“e”并非由搜索项单元M规定的项中的一者,因此其不匹配搜索项,且搜索项单元M输出0值,从而指示未发现匹配。在图5中,数据串流12呈现字符“b”。同样,行解码器观可将此项解释为地址,且行解码器观可选择导体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,且其可在每一项之后重复激活在请求时活动的特征单元。在一些实施例中,每一特征单元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被匹配为止。如上所述,型式辨识处理器14可能够处理数据串流12。数据串流12可包含来自由系统10接收并提供给型式辨识处理器14的多个数据串流的数据。图13图解说明根据本发明的实施例的接收多个数据串流92的系统10。如图13中所示,可从一个或一个以上数据源94接收数据串流92。举例来说,数据源1可提供数据串流1及数据串流2,数据源2 可提供数据串流3,且数据源4可提供数据串流4。数据源94可经由网络96与系统10通信。包含型式辨识处理器的系统10可包含网络接口卡(NIC)98或其它组件以允许与网络 96通信。数据源94可共用地形成可由系统10的用户存取的单个资源。举例来说,可响应于针对网页的请求而各自存取数据源94,其中每一数据源94对应于将数据提供给所述请求(例如所述网页的内容、广告等)的不同服务器。或者,每一数据源94可个别地对应于不同资源,例如多个网页、服务器(例如电子邮件服务器、文件服务器或任一应用服务器)或工作站(例如通过对等应用程序存取信息的工作站)等。不论数据源94对应于哪一(些) 资源,型式辨识处理器14均可接收并处理任一数据流,例如数据串流1、2、3或4。如上所述,可搜索所述串流以找出病毒、恶意软件、版权所有信息或任何其它所关注数据。在一些实施例中,网络96可为使用传输控制协议/因特网协议(TCP/IP)(例如通常用于因特网中)的网络。在此实施例中,可将数据串流92作为数据包经由网络96传送到型式辨识处理器14。在此实施例中,可将来自每一数据串流92的包与来自其它数据源的其它包混合(即,多路复用)。也就是说,尽管图解说明多个串流92,但来自每一数据串流 92的包可由装置10在来自所有数据串流92的混合连续包串流中接收,以便保证任何两个连续包不会属于单个数据串流92。每一数据串流92的包可不以特定次序到达系统10的 NIC。每一数据串流92的包序列可称作数据流(也称作“会话”)。数据流是指待由型式辨识处理器14处理的相关包序列。因此,装置10所接收的每一数据串流92可具有一个数据流,或可从一个数据串流处理多个数据流。型式辨识处理器14可接收每一串流92及包流并以任一次序对其进行处理。也可交错对串流92与数据流的处理,以便可停止对数据串流的处理且处理可切换到另一数据串流。为识别每一数据流,型式辨识处理器14可包含“流ID”寄存器100。在一些实施例中,所述流ID寄存器可与型式辨识处理器14分离但可由型式辨识处理器14存取,例如包含在装置10的另一组件中。流ID寄存器100可存储任一数目的唯一流识别符,所述识别符识别特定数据流。举例来说,在接收到新数据流时,处理器14可将唯一流识别符指派给所述数据流并将所述流识别符写入到寄存器100。流ID寄存器100可为任一合适大小且寄存器100的大小可基于待处理的数据流的数目来选择。举例来说,在一些实施例中,寄存器100可为8位(例如,能够存储256个流ID)、16位(例如,能够存储65,536个流ID)或 32位(例如,能够存储4,294, 967,296个流ID)。在其它实施例中,可使用多个寄存器来存储流ID。图14描绘根据本发明的输出的数据串流92的处理及输出。如上所述,型式辨识处理器14可接收数据串流92,例如数据串流1、数据串流2、数据串流3及数据串流4。可将来自每一数据串流92的包作为型式辨识处理器14的不同数据流(例如,会话)来处理。 在接收到来自数据串流92的包时,流ID寄存器100可将唯一流ID指派给每一数据串流92 的每一流。举例来说,如图14中所示,流ID寄存器100可分别为每一数据串流1、2、3及4 的每一数据流存储值流ID1、流ID2、流ID3及流ID4。在处理每一数据流的数据之后,如上所述,型式辨识处理器14输出对应结果串流 104。因此,对于每一数据串流1、2、3或4,可从型式辨识处理器14输出对应结果串流1、2、 3及4。如上所述,结果串流104可包含对每一数据串流92的数据执行的搜索及/或任何其它功能的结果。可将来自型式辨识处理器14的输出提供到输出缓冲器51 (图幻。如上文所提及, 输出缓冲器51可包含图14中所显示的结果缓冲器25。结果缓冲器25可包含先进先出 (FIFO)缓冲器108、缓冲器写入控制模块110、缓冲器读取控制模块112及缓冲器配置模块 114。结果缓冲器25可整体地形成为型式辨识处理器14的一部分(例如,位于同一硅主体上),或其可为单独组件。结果缓冲器25可通过传送结果串流1、2、3及4的上游结果总线 116从型式辨识处理器14接收结果数据,且结果缓冲器25可通过下游结果总线118将结果数据输出到CPU 20(图1)。FIFO缓冲器108可经配置以存储多个记录120。每一记录120可存储结果数据,例如与准则的满足相关的数据。每一记录120可对应于一个准则的满足的一个例示,或与所述准则的满足相关的数据可存储于数个记录120(例如,数个毗邻或其它顺序的记录120) 中。结果数据可包含例如满足哪一准则、来自相应数据串流92的满足所述准则的项序列、 指向相应数据串流92的满足所述准则的部分的项计数(例如,位计数)或期间接收数据串流的满足所述准则的部分的时间周期等数据。FIFO缓冲器94的每一记录也可存储任何其它信息,例如状态信息、内务信息等。为确保缓冲器25中所存储的结果数据与特定数据串流92相关,结果缓冲器25的每一记录120可存储结果数据及与所述结果相关联的数据串流的相关联流id。举例来说, FIFO缓冲器108中的第一记录122可包含流ID4及与数据串流4相关的结果数据。类似地,缓冲器108中的第二记录IM可包含流ID3及与数据串流3相关的结果数据3。以此方式,FIFO缓冲器108的每一记录120包含对应流识别符以使得缓冲器25下游的任何组件将能够以相应数据串流92中的一者识别从缓冲器25接收的结果数据。缓冲器写入控制模块110可经配置以控制将来自上游结果总线116的哪一数据写入到FIFO缓冲器94中的记录120。缓冲器写入控制模块110可包含每当满足准则或每当结果数据被写入到新记录时便递增或递减的计数器。缓冲器写入控制模块还可包含指示哪一记录120是最近输出到CUP 20的存储器,且缓冲器写入控制模块110可经配置以将数据从上游结果总线116写入到含有已被传达到CPU 20的数据的记录120。类似地,缓冲器读取控制模块112可经配置以指示哪一记录120是尚未从FIFO缓冲器108读取的最老记录。举例来说,缓冲器读取控制模块112可包含每当从FIFO缓冲器 108读取记录时便递增或递减的计数器,且所述计数器的计数可识别最老未读记录120。缓冲器读取控制模块112可经配置以从CPU 20接收读取命令信号126且通过致使FIFO缓冲器108输出最老未读记录120所存储的数据来响应于所述读取命令。图15是描绘用于在型式辨识处理器14的实施例中处理多个数据流的过程200的流程图。如上所述,装置10的型式辨识处理器14可接收可对应于数据串流1的第一数据流的数据包(框20 ,例如由装置10的NIC 98接收的数据包。型式辨识处理器14可将流ID指派给所述第一数据流并将所述流ID写入到流ID寄存器100 (框204)。接着,型式辨识处理器14切换到流1 (例如第一流ID所识别的数据流)作为活动流(框206)并(例如)通过搜索所述流以找出准则的满足来处理活动流(框208)。装置10及型式辨识处理器14所接收的后续包可属于可对应于数据串流2的第二数据流。型式辨识处理器14可接收第二数据流的包(框210)并为第二数据流指派第二流 ID (框212)并将所述流Id写入到流ID寄存器100。由于传入包属于另一数据流,因此型式辨识处理器14可切换到搜索第二数据流的包。型式辨识处理器14可暂停对活动流(例如,具有第一流ID的第一数据流)的处理并存储活动流的中间结果(框214)。接着,处理器14可切换到第二数据流作为活动流(框216)并处理新活动流(框218),例如具有第二流ID的第二数据流。只要针对另一数据流接收另一包,即可执行数据流的切换。举例来说,在过程200 中,可接收来自第一数据流(流1)的另一数据包(框220)。处理器14可暂停对当前活动流(即,流2、的处理(框22 并切换到处理流1。处理器14可继续处理流1直到接收到另一数据流的额外包。在流1、流2或两者的处理已完成之后,可如上所述将每一数据流的结果数据输出到结果缓冲器25 (框224)。可将流1的结果数据以及流1的流ID输出到缓冲器25并存储于FIFO缓冲器108中。类似地,可将流2的结果数据及对应流ID输出到缓冲器25并存储于FIFO缓冲器108中。应了解,可针对由装置10接收且由型式辨识处理器14处理的任一数目的数据流(例如数据串流9 实施上述过程200。可给来自数据流的每一传入包指派新流ID且处理器14可切换到处理所述数据流。尽管易于对本发明作出各种修改及替代形式,但其具体实施例已以实例方式显示于图示中且详细描述于本文中。然而,应理解,本发明并不既定限定于所揭示的特定形式。 相反,本发明将涵盖归属于以上所附权利要求书所界定的本发明的精神及范围内的所有修改、等效形式及替代方案。
权利要求
1.一种系统,其包括型式辨识处理器;寄存器,其可由所述型式辨识处理器存取且经配置以存储多个识别符,其中每一识别符对应于所述型式辨识处理器所接收的多个数据流中的相应一者。
2.根据权利要求1所述的系统,其包括经配置以存储流的结果数据及对应于所述流的所述识别符的缓冲器。
3.根据权利要求1所述的系统,其中所述寄存器包括8位寄存器、16位寄存器或32位寄存器中的一者。
4.根据权利要求1所述的系统,其包括经配置以提供所述多个流的多个数据源。
5.根据权利要求4所述的系统,其中所述多个数据源中的每一者包括经配置以提供数据的服务器。
6.根据权利要求1所述的系统,其包括经配置以提供所述多个流的第一数据源。
7.根据权利要求1所述的系统,其包括经配置以将所述多个流传送到所述型式辨识处理器的网络。
8.根据权利要求7所述的系统,其包括耦合到所述型式辨识处理器且经配置以与所述网络通信的网络装置。
9.根据权利要求1所述的系统,其中所述多个流中的每一者包括多个数据包。
10.根据权利要求1所述的系统,其中所述寄存器整体地形成为所述型式辨识处理器的一部分。
11.一种装置,其包括型式辨识处理器,其经配置以处理多个数据流;缓冲器,其可由所述型式辨识处理器存取且经配置以存储多个记录,其中每一记录经配置以存储结果数据及识别符,所述识别符使所述结果数据与所述多个数据流中的一者相关联。
12.根据权利要求11所述的装置,其中所述缓冲器包括先进先出(FIFO)缓冲器。
13.根据权利要求11所述的装置,其中所述缓冲器包括经配置以将所述结果数据写入到所述多个记录的写入控制模块及经配置以从所述多个记录读取数据的读取控制模块。
14.根据权利要求11所述的装置,其中所述缓冲器整体地形成为所述型式辨识处理器的一部分。
15.根据权利要求11所述的装置,其中所述缓冲器是与所述型式辨识处理器分离的。
16.根据权利要求11所述的装置,其中所述多个记录中的每一者存储包括搜索准则的满足的结果数据。
17.根据权利要求11所述的装置,其中所述多个记录中的两个或两个以上顺序记录存储包括搜索准则的所述满足的结果数据。
18.根据权利要求11所述的装置,其中所述结果数据包括搜索准则的满足;来自所述多个数据流中的一者的满足搜索准则的项序列;识别所述多个数据流中的一者的满足搜索准则的部分的识别符;所述多个数据流中的一者的一部分满足搜索准则所针对的时间周期;或其任一组合。
19.一种处理数据的方法,其包括接收数据流;将识别符指派给所述数据流;将所述识别符写入到寄存器;及根据搜索准则搜索所述数据流以产生搜索结果。
20.根据权利要求19所述的方法,其包括将所述搜索结果及所述识别符存储于缓冲器中。
21.根据权利要求19所述的方法,其包括接收第二数据流、将第二识别符指派给所述第二数据流及将所述第二识别符写入到所述寄存器。
22.根据权利要求21所述的方法,其包括搜索所述第二数据流以产生第二搜索结果。
23.根据权利要求22所述的方法,其包括将所述第二搜索结果及所述第二识别符存储于缓冲器中。
24.根据权利要求19所述的方法,其包括暂停搜索所述数据流且存储所述搜索的所述结果。
25.根据权利要求M所述的方法,其包括根据搜索准则切换到搜索第二数据流。
26.根据权利要求20所述的方法,其中存储结果包括存储识别曾由所述数据流满足的搜索准则的数据。
27.一种方法,其包括搜索第一数据流的包以产生第一搜索结果,其中给所述第一数据流指派第一流识别符且将其识别为活动流; 接收第二数据流的包; 为所述第二数据流指派第二流识别符; 切换到所述第二数据流作为所述活动流;及搜索所述第二数据流的包。
28.根据权利要求27所述的方法,其包括在切换到所述第二数据流作为所述活动流之前存储所述第一搜索结果。
29.根据权利要求27所述的方法,其包括将所述第一流识别符写入到可由型式辨识处理器存取的寄存器。
30.根据权利要求27所述的方法,其包括将所述第二流识别符写入到可由型式辨识处理器存取的寄存器。
31.根据权利要求27所述的方法,其包括从可由型式辨识处理器存取的寄存器读取所述第一流识别符。
32.根据权利要求27所述的方法,其包括从可由型式辨识处理器存取的寄存器读取所述第二流识别符。
全文摘要
本发明提供系统及方法,例如启用型式辨识处理器中的数据流及对应结果的识别的系统及方法。在一个实施例中,系统可包含所述型式辨识处理器及流识别寄存器,其中每一数据流的唯一流识别符(FlowID)存储于所述寄存器中。所述系统可包含存储每一数据流的结果数据(Results Data)及所述流识别符(FlowID)的结果缓冲器,以使得所述结果数据(Results Data)可与特定数据流相关。
文档编号G06F7/02GK102232213SQ200980148391
公开日2011年11月2日 申请日期2009年11月17日 优先权日2008年12月1日
发明者哈罗德·B·诺伊斯 申请人:美光科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1