CN102272714B - 具有匹配数据报告模块的型式辨识处理器 - Google Patents

具有匹配数据报告模块的型式辨识处理器 Download PDF

Info

Publication number
CN102272714B
CN102272714B CN200980154031.XA CN200980154031A CN102272714B CN 102272714 B CN102272714 B CN 102272714B CN 200980154031 A CN200980154031 A CN 200980154031A CN 102272714 B CN102272714 B CN 102272714B
Authority
CN
China
Prior art keywords
data stream
data
search
search criteria
impact damper
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.)
Active
Application number
CN200980154031.XA
Other languages
English (en)
Other versions
CN102272714A (zh
Inventor
J·托马斯·帕夫洛夫斯基
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN102272714A publication Critical patent/CN102272714A/zh
Application granted granted Critical
Publication of CN102272714B publication Critical patent/CN102272714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/10Pre-processing; Data cleansing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Abstract

本发明揭示方法及装置,其中一种装置包含型式辨识处理器。所述型式辨识处理器(14)可包含可具有缓冲器及匹配事件表的匹配数据报告模块。所述缓冲器可耦合到数据流且经配置以存储所述数据流的至少一部分,且所述匹配事件表可经配置以存储指示与搜索准则得到满足的开始相对应的缓冲器位置的数据。

Description

具有匹配数据报告模块的型式辨识处理器
技术领域
本发明的实施例一般来说涉及电子装置,且更具体来说在某些实施例中涉及具有型式辨识处理器的电子装置。
背景技术
在计算领域中,型式辨识任务越来越具有挑战性。计算机之间传输的数据量不断增大,且用户希望识别的型式数目日益增加。举例来说,通常通过搜索数据流中的型式(例如,特定短语或代码片段)来检测垃圾邮件及恶意软件。型式的数目随着垃圾邮件及恶意软件的变化而增加,因为可实施新型式以搜索新变体。搜索数据流以找到这些型式中的每一者可形成计算瓶颈。通常,在接收到数据流时,搜索数据流以一次一个地找到每一型式。在系统准备搜索数据流的下一部分之前的延迟随着型式数目而增加。因此,型式辨识可使数据的接收减慢。
当检测到型式时,检查匹配所述型式的数据通常为有用的。然而,再现所述匹配数据可为困难的。搜索可规定允许数据流的任意长的部分产生匹配的通配符字符或其它运算子。此外,不同型式的部分可由数据流的相同部分匹配,而不同型式可在不同时间开始及停止。每当数据流开始匹配型式中的一者时创建所述数据流的新副本为昂贵的,因为形成所述数据流的多个任意长的副本消耗大量存储器。
附图说明
图1描绘搜索数据流的系统的实例;
图2描绘图1的系统中的型式辨识处理器的实例;
图3描绘图2的型式辨识处理器中的搜索项单元的实例;
图4及图5描绘图3的搜索项单元搜索数据流以找到单个字符;
图6到图8描绘搜索数据流以找到一词的包含数个搜索项单元的辨识模块;
图9描绘经配置以搜索数据流以并行找到两个词的辨识模块;
图10到图12描绘根据规定具有同一前缀的多个词的搜索准则进行搜索的辨识模块;
图13图解说明根据本发明技术的实施例的匹配数据报告模块的实施例;且
图14到图19图解说明图13的匹配数据报告模块根据本发明技术的实施例操作。
具体实施方式
图1描绘搜索数据流12的系统10的实例。系统10可包含型式辨识处理器14,其根据搜索准则16搜索数据流12。
每一搜索准则可规定一个或一个以上目标表达(即,型式)。短语“目标表达”是指型式辨识处理器14正在搜索的数据序列。目标表达的实例包含拼写某一词的字符序列、详细说明基因的遗传碱基对序列、形成图像的一部分的图片或视频文件中的位序列、形成程序的一部分的可执行文件中的位序列或形成歌曲或口语短语的一部分的音频文件中的位序列。
搜索准则可规定一个以上目标表达。举例来说,搜索准则可规定以字母序列“cl”开始的所有五个字母的词、以字母序列“cl”开始的任一词、包含词“cloud”三次以上的段落等。可能目标表达集合的数目为任意大的,例如,可存在与数据流可呈现的数据排列同样多的目标表达。搜索准则16可以各种格式来表达,包含正则表达、简明地规定若干目标表达集合而不必列举每一目标表达的程序设计语言。
每一搜索准则可由一个或一个以上搜索项构造而成。因此,搜索准则的每一目标表达可包含一个或一个以上搜索项且一些目标表达可使用共用搜索项。如本文中所使用,短语“搜索项”是指在单个搜索循环期间所搜索的数据序列。所述数据序列可包含呈二进制格式或其它格式(例如,十进制、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是否可能正在递送恶意软件的搜索准则。可将所得搜索准则存储于服务器上,且客户端系统的操作者可订阅将搜索准则16下载到系统10的服务。由于会出现不同类型的恶意软件,因此可从所述服务器周期性地更新搜索准则16。搜索准则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、聚合模块24及匹配数据报告模块25。辨识模块22可经配置以将所接收的项与搜索项进行比较,且辨识模块22与聚合模块24两者可协作以确定将项与搜索项匹配是否满足搜索准则。匹配数据报告模块25可将数据流12存储于缓冲器中且将匹配数据报告给CPU 20(图1)。
辨识模块22可包含行解码器28及多个特征单元30。每一特征单元30可规定一搜索项,且特征单元30的群组可形成形成搜索准则的并行有限状态机。特征单元30的组件可形成搜索项阵列32、检测阵列34及激活路由矩阵36。搜索项阵列32可包含多个输入导体37,其中的每一者可使特征单元30中的每一者与行解码器28通信。
行解码器28可基于数据流12的内容而在多个输入导体37当中选择特定导体。举例来说,行解码器28可为1字节/256行解码器,其基于可表示一个项的所接收字节的值而激活256个行中的一者。1字节项0000 0000可对应于多个输入导体37当中的顶部行,且1字节项1111 1111可对应于多个输入导体37当中的底部行。因此,取决于从数据流12接收到哪些项,可选择不同输入导体37。在接收到不同项时,行解码器28可去激活对应于先前项的行且激活对应于新项的行。
检测阵列34可耦合到检测总线38,检测总线38将指示搜索准则的全部或部分满足的信号输出到聚合模块24。激活路由矩阵36可基于搜索准则中的已被匹配的搜索项的数目而选择性地激活及去激活特征单元30。
聚合模块24可包含锁存器矩阵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及聚合模块24的若干部分进行复位。初始化路由矩阵50也可实施为正方形矩阵,或初始化路由矩阵50可具有数目不同于输出的输入。初始化路由矩阵50可响应于来自逻辑和矩阵48的信号且重新初始化型式辨识处理器14的其它部分(例如,在满足搜索准则或经确定不可进一步满足所述搜索准则时)。
聚合模块24可包含输出缓冲器51,其接收阈值逻辑矩阵44、聚合路由矩阵42及逻辑和矩阵48的输出。聚合模块24的输出可在输出总线26上从输出缓冲器51传输到CPU20(图1)。在一些实施例中,输出多路复用器可对来自这些组件42、44及48的信号进行多路复用且将指示准则的满足或搜索项的匹配的信号输出到CPU 20(图1)。在其它实施例中,可在不通过所述输出多路复用器传输所述信号的情况下报告来自型式辨识处理器14的结果,此并非暗示也不可省略本文中所描述的任一其它特征。举例来说,可将来自阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48或初始化路由矩阵50的信号在输出总线26上并行传输到所述CPU。
图3图解说明搜索项阵列32(图2)中的单个特征单元30的一部分(本文中称为搜索项单元54的组件)。搜索项单元54可包含输出导体56及多个存储器单元58。存储器单元58中的每一者可耦合到输出导体56及多个输入导体37当中的导体中的一者两者。响应于其输入导体37被选择,存储器单元58中的每一者可输出指示其所存储值的值,从而通过输出导体56输出数据。在一些实施例中,多个输入导体37可称为“字线”,且输出导体56可称为“数据线”。
存储器单元58可包含各种类型的存储器单元中的任一者。举例来说,存储器单元58可为易失性存储器,例如,具有晶体管及电容器的动态随机存取存储器(DRAM)单元。所述晶体管的源极与漏极可分别连接到所述电容器的板及输出导体56,且所述晶体管的栅极可连接到输入导体37中的一者。在易失性存储器的另一实例中,存储器单元58中的每一者可包含静态随机存取存储器(SRAM)单元。所述SRAM单元可具有输出,其通过受输入导体37中的一者控制的存取晶体管选择性地耦合到输出导体56。存储器单元58还可包含非易失性存储器,例如,相变存储器(例如,双向装置)、快闪存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁阻式存储器或其它类型的非易失性存储器。存储器单元58还可包含由逻辑门制成的存储器单元,例如,触发器。
图4及图5描绘操作中的搜索项单元54的实例。图4图解说明搜索项单元54接收不匹配所述单元的搜索项的项,且图5图解说明匹配。
如图4所图解说明,搜索项单元54可经配置以通过将数据存储于存储器单元58中来搜索一个或一个以上项。存储器单元58可各自表示数据流12可呈现的项,例如,在图3中,每一存储器单元58表示单个字母或数字,以字母“a”开始且以数字“9”结束。表示满足搜索项的项的存储器单元58可经编程以存储第一值,且不表示满足搜索项的项的存储器单元58可经编程以存储不同值。在所图解说明的实例中,搜索项单元54经配置以搜索字母“b”。表示“b”的存储器单元58可存储1或逻辑高,且不表示“b”的存储器单元58可经编程以存储0或逻辑低。
为了将来自数据流12的项与搜索项进行比较,行解码器28可选择耦合到表示所接收项的存储器单元58的输入导体37。在图4中,数据流12呈现小写“e”。此项可由数据流12以八位ASCII代码的形式呈现,且行解码器28可将此字节解释为行地址,从而通过给导体60通电而在其上输出信号。
作为响应,由导体60控制的存储器单元58可输出指示存储器单元58所存储的数据的信号,且所述信号可由输出导体56传达。在此情况下,由于字母“e”并非由搜索项单元54规定的项中的一者,因此其不匹配搜索项,且搜索项单元54输出0值,从而指示未发现匹配。
在图5中,数据流12呈现字符“b”。同样,行解码器28可将此项解释为地址,且行解码器28可选择导体62。作为响应,表示字母“b”的存储器单元58输出其所存储值,在此情况下,其为1,从而指示匹配。
搜索项单元54可经配置以一次搜索一个以上项。多个存储器单元58可经编程以存储1,从而规定与一个以上项匹配的搜索项。举例来说,表示小写字母“a”及大写字母“A”的存储器单元58可经编程以存储1,且搜索项单元54可搜索任一项。在另一实例中,搜索项单元54可经配置以在接收到任一字符的情况下输出匹配。所有存储器单元58可经编程以存储1,使得搜索项单元54可用作搜索准则中的通配符项。
图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可经配置以将指示所述检测单元是否为活动的及是否已从其相关联搜索项单元54接收到指示匹配的信号两者的信号输出到激活路由矩阵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。特征单元63可在数据流12再次呈现搜索准则的第一项的情况下保持活动。
在图8中,数据流12将项“g”呈现给行解码器28,所述行解码器选择表示项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(图2)的成本。
图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”及“l”开始且以字母序列“ap”或字母序列“oud”结束的词。此为规定多个目标表达(例如,词“clap”或词“cloud”)的搜索准则的实例。
在图10中,数据流12将字母“c”呈现给辨识模块22,且特征单元63既活动又检测匹配。作为响应,激活路由矩阵36可激活下一特征单元64。激活路由矩阵36还可维持特征单元63的活动状态,因为特征单元63为搜索准则中的第一搜索项。
在图11中,数据流12呈现字母“l”,且特征单元64辨识匹配且为活动的。作为响应,激活路由矩阵36可将激活信号传输到第一后缀90的第一特征单元66及第二后缀92的第一特征单元82两者。在其它实例中,可激活更多后缀,或多个前缀可激活一个或一个以上后缀。
接下来,如图12所图解说明,数据流12将字母“o”呈现给辨识模块22,且第二后缀92的特征单元82检测匹配且为活动的。作为响应,激活路由矩阵36可激活第二后缀92的下一特征单元84。在允许特征单元66变成不活动时,对第一后缀90的搜索可停止。图10到图12所图解说明的步骤可继续经过字母“u”及“d”,或搜索可停止直到下一次前缀88得到匹配为止。
图13图解说明匹配数据报告模块25的实施例。匹配数据报告模块25可包含计数器94、循环缓冲器96、匹配事件表98及控制器100。控制器100可连接到计数器94、循环缓冲器96及匹配事件表98。控制器100还可连接到数据流12、检测总线38及输出总线26。
计数器94可每当数据流12呈现一项时使计数递增或递减,例如,每搜索循环一次或每时钟循环一次,此并非暗示搜索循环无法具有与时钟循环相同的持续时间。计数器94可为具有在约相同时间改变状态的位的同步计数器,或其可为非同步计数器。计数器94可为在正常操作期间通常不停止的自由运行计数器,或其可为可(例如)借助来自控制器100的命令停止及复位的计数器。计数器94可为在每n个来自数据流12的项之后重复的模n计数器。在其它实施例中,计数器94可为输出可重复值序列的型式产生器,例如,线性反馈移位寄存器。计数器94还可为周期性地或在请求时输出时间戳的时钟。计数器94可经配置以在(例如)通过复位而重复之前递增计数到某一数目。在计数器94复位之前的递增数目可约等于循环缓冲器96所存储的项的数目或循环缓冲器96所存储的位的数目。举例来说,计数器94可为二进制计数器,其经配置而以少于21个数字、多于21个数字(例如,多于约22个数字,多于约23个数字或多于约25个数字)计数。
循环缓冲器96可包含多个项单元,每一项单元经配置以存储来自数据流12的一个项。在接收到数据流12时,控制器100可基于计数器94的值将来自数据流12的项写入到所述循环缓冲器。循环缓冲器96可包含与计数器94在复位之前经历的递增的数目约相同的数目的项单元。当存储由数据流12呈现的项时,可使用计数器94的值作为循环缓冲器96中的地址。因此,在一些实施例中,数据流12可重复填充循环缓冲器96,从而在计数器94复位之后盖写存储于循环缓冲器96中的项单元中的项。在其它实施例中,可使用其它类型的先进先出缓冲器,例如链接列表。可基于将报告给CPU 20(图1)的最大预期或所要匹配数据量来选择循环缓冲器96的大小。循环缓冲器96可经配置以存储小于约2MB、大于约2MB、大于约4MB、大于约8MB、大于约16MB或大于约32MB。
匹配事件表98可每当检测总线38用信号通知匹配的开始或匹配的完成时存储计数器94的值。匹配表98可在辨识模块22(图2)中形成。举例来说,特征单元30中的每一者可包含用于存储匹配的开始时的计数的存储器及用于存储所述匹配的结束时的计数的存储器。在其它实施例中,可将特征单元30分组在一起,例如,分组为四个或八个特征单元的群组,且用于所述特征单元群组的存储器可存储当特征单元30中的一者在搜索准则的开始得到匹配时或当所述群组中的特征单元30中的一者在所述搜索准则的结束得到匹配时的计数。
匹配事件表98还可与辨识模块22分离。特征单元30中的每一者或特征单元30的群组可将准则得到满足的开始或所述准则的满足报告给控制器100(图13),且匹配事件表98可存储指示计数器94的值、所述准则的满足将要开始还是已完成及盖写已开始的准则的满足的记录是否安全的数据。计数器94在准则得到满足的开始或完成时的值可称为“匹配事件指针”。在开始满足每一搜索准则而先前准则满足仍正在进行中的情况下,可将所述搜索准则指派给匹配事件表98中的数个地址。或者,可给每一搜索准则指派存储于匹配事件表98中的识别编号连同先前所提及的数据。匹配事件表98可包含指示盖写已开始的准则满足是否安全的位,这是因为已完成且已报告所述准则满足,或因为所述准则满足未由后续数据匹配。
控制器100或型式辨识处理器14(图2)的其它组件可将完成的准则满足报告给CPU20。作为响应,CPU 20可请求产生所述准则满足的数据的副本。此请求可经由输出总线26传输到控制器100。控制器100可经配置以基于来自匹配事件表98的开始及停止计数而从循环缓冲器96读取匹配的数据且在输出总线26上将所述匹配数据报告给CPU 20(图1)。在其它实施例中,可将准则满足的开始计数及停止计数报告给CPU 20,且CPU20可从循环缓冲器96检索适当数据。
图14到图19更详细图解说明匹配数据报告模块25的操作。如图14所图解说明,循环缓冲器96可表示为项单元102的圆圈,其中计数器94指向项单元102中的一者。术语“项单元”是指经配置以存储单个项的存储器单元群组。在接收到数据流12时,可将每一项存储于项单元102中的一者中,具体来说存储于计数器94所指向的项单元102中。在从数据流12接收到每一项时,计数器94可使计数递增一且指向下一项单元102。
图15图解说明循环缓冲器96存储由数据流12呈现的第一项。从数据流12接收字母“e”且其由项单元102′存储。在数据流12呈现下一项之前,或在数据流12呈现下一项时,计数器94递增以指向下一项单元102″。由于计数器94递增以寻址循环缓冲器96中的每一连续项单元102,因此此过程可针对由数据流12呈现的每一连续项重复。当计数器94复位时,循环缓冲器96可开始盖写存储于项单元102中的数据。
在循环缓冲器96正存储来自数据流12的项时,可搜索数据流12。如上文所描述,型式辨识处理器14(图2)的其它部分可检测各种搜索准则的开始及满足。此搜索所产生的匹配可影响匹配数据报告模块25的操作。为了图解说明此关系,将借助实例描述匹配数据报告模块25(图13)的操作,在所述实例中,型式辨识处理器14(图2)针对两个不同搜索准则搜索图14到图19中所示的数据流12。第一准则(在图中称为准则A)为后面有同一句子内的词“download”的词“virus”。因此,型式辨识处理器14可搜索词“virus”且在检测到此词之后即刻搜索词“download”及指示句子的结束的字符(例如,句点)两者。如果词“download”在指示句子的结束的字符之前出现,那么准则A得到匹配。第二搜索准则(在图中称为准则B)为在具有词“malware”的四个词内出现的词“download”。一旦词“download”得到匹配,型式辨识处理器14便既可(例如)通过计数词间字符来计数词的数目又可搜索词“malware”。或者,如果词“malware”首先得到匹配,那么型式辨识处理器14既可(例如)通过计数词间字符来计数词的数目又可搜索词“download”。如果词“malware”在呈现四个词间字符之前出现,那么准则B得到满足。
图16图解说明匹配数据报告模块25对准则A中的第一搜索项(字母“v”)得到匹配的响应。在数据流12呈现字母“v”时,准则A的第一特征单元30(图2)将计数器94的值记录于匹配事件表98中。第一特征单元30可在检测总线38上输出指示其为活动的、已接收到匹配及为搜索准则A的第一特征单元的信号。此信息可连同计数器94的值一起存储于匹配数据报告模块25(图13)中。图16中所表示的匹配事件具有与计数器94在所述匹配的开始时的值相对应的匹配事件指针104。
如图17所图解说明,循环缓冲器96可随着来自数据流12的项被接收而继续存储所述项。当数据流12到达词“and”中的字母“d”时,规定准则B的第一特征单元30可指示匹配的开始,因为字母“d”为词“download”的第一字母。作为响应,匹配事件表98可将计数器94的值存储于与准则B中的第一特征单元30相关联的存储器中或存储于单独存储器中。如果使用单独存储器,那么也可存储识别第二准则B的数据。
当数据流12呈现词“and”之后的空格时,准则B可未得到匹配,因为准则B中的第二搜索项搜索字母“o”而非空格。可通过盖写匹配事件指针106或将匹配事件指针106指定为可盖写而将准则B未得到匹配记录于匹配事件表98中。如上文所提及,匹配事件表98可包含指示匹配事件指针指向正在进行中的匹配还是可安全盖写的失败匹配的一个或一个以上存储器位。
当数据流12呈现词“download”的开始处的下一字母“d”时,可存储另一匹配事件指针108。同样,可将计数器94的值存储于匹配事件表98中以形成匹配事件指针108。匹配事件指针108可盖写匹配事件指针106,或可将匹配事件指针108存储于匹配事件表98中的不同存储器中。
在本实例中的此阶段处,数据流12已同时开始满足两个不同搜索准则。准则A正搜索词“download”的剩余部分,且准则B正搜索词“download”的在接下来四个词内后面有词“malware”的剩余部分。循环缓冲器96可存储数据流12的单个副本,且匹配事件表98可指示此副本的哪些部分已满足不同准则或正在满足所述不同准则的过程中。准则B的一部分的不同匹配由字母B后面的数字(例如,B1及B2)区分。
如图18所图解说明,在型式辨识处理器14(图2)搜索数据流12时,循环缓冲器96可继续存储来自数据流12的项。词“download”的最后一个字母可致使匹配事件表98记录另一匹配事件110。结束字母“d”满足准则B的第一搜索项。因此,匹配事件表98在此项被呈现时可记录计数器94的值。当数据流12呈现字母“d”之后的空格时,此准则满足失败,且可在匹配事件表98中将匹配事件110指定为指示失败准则满足的开始且可安全盖写。
如上文所提及,可并行评估准则。当接收到词“download”之后的空格时,准则A中的最后一个搜索项得到匹配。作为响应,规定准则A的最后特征单元30(图2)可将计数器94的值记录于匹配事件表98中。最后特征单元30可在检测总线38上输出指示其得到匹配、其为活动的且其为准则A的最后一个搜索项的信号。匹配事件表98可通过存储计数器94的值且在一些实施例中存储准则的身份来存储新匹配事件112。
如果对准则A的一个以上准则满足正在进行中,那么匹配事件表98可使匹配事件112与准则A在匹配事件表98中的最早匹配事件相关。在其它实施例中,匹配事件表98可包含每一匹配事件的指示哪一准则正得到匹配(例如,A或B)及准则的哪一匹配导致了匹配事件(例如,B的第一或第二匹配)两者的数据,因为某一准则可同时处在多个得到满足阶段。给定准则的一些匹配数据集可比同一准则的其它匹配数据集短,因此存储识别准则的哪一准则满足导致了匹配事件的数据可促进使开始匹配事件与完成的匹配事件相关。举例来说,搜索准则可规定得到满足的两种不同方式,例如:1)以字母“m”开始且以“e”结束的词;或2)包含字母序列“est”的词。呈现序列“milestones”的数据流匹配满足所述准则的两种方式。在此实例中,第二个开始的满足首先完成。因此,在匹配事件表98中包含匹配识别符可促进识别数据流12的匹配部分。
当准则得到满足时,聚合模块24(图2)可通过输出总线26将搜索准则得到满足报告给CPU 20。聚合模块24在被CPU 20进一步询问时还可报告哪一搜索准则得到满足,或聚合模块24可在不被提示的情况下识别所述准则。
当CPU 20接收到指示准则满足的信号时,CPU 20可向匹配数据报告模块25(图13)请求匹配数据。所述请求可经由输出总线26传输到控制器100。作为响应,控制器100可传输循环缓冲器96中在开始匹配事件指针与结束匹配事件指针之间的数据。在图18所图解说明的实例中,匹配数据报告模块25可报告指示匹配准则A的开始的匹配事件指针104与指示所述匹配的结束的匹配事件指针112之间的数据。
CPU 20可将此数据用于各种不同目的。举例来说,CPU 20可创建匹配数据的日志或CPU 20可经由网络将所述匹配数据报告给服务器,例如,由销售对搜索准则的订阅的实体操作的服务器。在一些实施例中,CPU 20可将所述匹配数据或基于所述匹配数据的数据报告给系统管理员或负责强制执行包含所述匹配数据的版权内容的实体。
一旦将所述匹配数据报告给CPU 20,或一旦CPU指示其未正在请求所述匹配数据,就可盖写匹配事件表98中的匹配事件指针104及110的条目或将其指定为可安全盖写。
虽然准则A得到满足,但准则B在图19所图解说明的状态中仍在满足的中途。匹配事件指针108尚未被指定为指示失败匹配的开始。因此,在循环缓冲器96继续存储来自数据流12的项时,型式辨识处理器14(图2)可继续在“download”后面的四个词内搜索词“malware”。
此外,每当数据流12呈现字母“d”时,匹配事件表98可存储另一匹配事件指针,如匹配事件指针114及116所指示。当数据流12呈现后续不匹配项时,可将这些匹配事件指针114及116中的每一者指定为指示失败的匹配。
在呈现词“malware”之后,准则B可完全得到满足。作为响应,匹配事件表98可存储匹配事件指针118。可将所述匹配报告给CPU 20,且CPU 20可向匹配数据报告模块25请求匹配数据。控制器100可传输循环缓冲器96的在匹配事件指针106与匹配事件指针118之间的部分。一旦报告此数据,就可将匹配事件指针106及118指定为可安全盖写。在其它实施例中,匹配事件指针106及108可在匹配的完成之后持续达某一时间。举例来说,CPU 20可具有某一数目的搜索循环,以确定在盖写匹配事件指针106及108或将其指定为可安全盖写之前是否请求匹配数据。
尽管可易于对本发明做出各种修改及替代形式,但已在图式中以实例方式展示了特定实施例并在本文中对所述特定实施例进行了详细描述。然而,应理解,并不打算将本发明限制于所揭示的特定形式。而是,本发明将涵盖归属于由以上所附权利要求书界定的本发明精神及范围内的所有修改、等效内容及替代方案。

Claims (34)

1.一种型式辨识装置,其包括:
型式辨识处理器,其包括:
多个特征单元,每一特征单元包括:
多个存储器单元,其中所述存储器单元中的每一者耦合到输出导体且耦合到多个输入导体中的一者;及
检测单元,其包括激活存储器单元,其中所述检测单元经配置以输出基于所述激活存储器单元的状态的信号及从所述输出导体接收的信号;
解码器,其经配置以接收数据流且基于从所述数据流接收的数据选择所述多个输入导体中的一者;及
匹配数据报告模块,其包括:
缓冲器,其耦合到所述数据流且经配置以存储所述数据流的至少一部分;及
匹配事件表,其经配置以存储指示与搜索准则得到满足的开始相对应的缓冲器位置的数据。
2.根据权利要求1所述的装置,其中所述缓冲器包括循环缓冲器。
3.根据权利要求2所述的装置,其中所述匹配数据报告模块包括计数器,所述计数器经配置以每当从所述数据流接收到一项或一项的一部分时使计数递增或递减。
4.根据权利要求3所述的装置,其中所述匹配数据报告模块经配置以将来自所述数据流的数据存储于所述循环缓冲器中基于所述计数器的值选择的若干位置中。
5.根据权利要求4所述的装置,其中所述匹配数据报告模块经配置以响应于搜索准则的第一搜索项得到匹配而将所述计数器的所述值写入到所述匹配事件表。
6.根据权利要求5所述的装置,其中所述匹配数据报告模块经配置以响应于所述搜索准则的最后一个搜索项得到匹配而将所述计数器的所述值写入到所述匹配事件表。
7.根据权利要求1所述的装置,其中所述匹配数据报告模块经配置以输出数据流的满足搜索准则的一部分。
8.根据权利要求1所述的装置,其包括耦合到所述型式辨识处理器的中央处理单元CPU,其中所述匹配数据报告模块经配置以响应于来自所述CPU的对所述数据流的满足所述搜索准则的所述部分的请求而将所述数据流的所述部分输出到所述CPU。
9.根据权利要求1所述的装置,其中所述匹配数据报告模块包括输出可重复值序列的型式产生器。
10.根据权利要求1所述的装置,其中所述匹配事件表包括若干存储器单元群组,且其中每一群组与一特征单元群组相关联。
11.根据权利要求1所述的装置,其包括服务器、个人计算机、工作站、路由器、网络交换机、芯片测试装备、膝上型计算机、蜂窝电话、媒体播放器、游戏控制台或包括所述型式辨识处理器的大型计算机。
12.一种型式辨识方法,其包括:
将数据流写入到缓冲器;
将搜索准则的第一搜索项与来自所述数据流的第一匹配项匹配;及
响应于匹配,存储指示所述缓冲器的存储所述第一匹配项的第一地址的第一值。
13.根据权利要求12所述的方法,其包括:
将所述搜索准则的最后一个搜索项与来自所述数据流的第二匹配项匹配;及
响应于匹配所述最后一个搜索项,存储指示所述缓冲器的存储所述第二匹配项的第二地址的第二值。
14.根据权利要求13所述的方法,其包括:
将所述搜索准则的满足报告给中央处理单元CPU;
接收来自CPU的对满足所述搜索准则的数据的请求;及
响应于所述请求,传输由所述缓冲器存储的数据。
15.根据权利要求14所述的方法,其中传输由所述缓冲器存储的数据包括传输存储于所述第一地址与所述第二地址之间的数据。
16.根据权利要求12所述的方法,其中将所述数据流写入到所述缓冲器包括盖写先前写入到所述缓冲器的数据。
17.根据权利要求12所述的方法,其包括基于由所述数据流呈现的项而在多个输入导体当中选择一个输入导体。
18.根据权利要求12所述的方法,其包括存储识别所述准则的准则识别数据。
19.根据权利要求12所述的方法,其包括存储区分所述匹配与先前匹配的匹配识别数据。
20.一种型式辨识装置,其包括:
匹配数据报告模块,其包括:
缓冲器,其经配置以存储来自数据流的数据;
匹配事件表,其具有用于存储与搜索准则得到满足的开始相对应的缓冲器地址的存储器;及
缓冲器地址产生器。
21.根据权利要求20所述的装置,其中所述缓冲器地址产生器包括计数器,所述计数器经配置以每当从所述数据流接收到一项或一项的一部分时使计数递增或递减。
22.根据权利要求20所述的装置,其中所述缓冲器包括循环缓冲器。
23.根据权利要求20所述的装置,其包括:
辨识模块,其耦合到所述数据流;及
聚合模块,其耦合到所述辨识模块的输出。
24.根据权利要求20所述的装置,其包括经配置以在所述缓冲器的若干地址处写入来自所述数据流的数据的控制器,其中所述地址由所述缓冲器地址产生器输出。
25.根据权利要求24所述的装置,其中所述控制器经配置以响应于来自所述数据流的数据匹配搜索准则的一部分而将来自所述缓冲器地址产生器的值写入到所述匹配事件表。
26.根据权利要求24所述的装置,其中所述控制器经配置以基于存储于所述匹配事件表中的若干地址而从所述缓冲器输出数据。
27.根据权利要求26所述的装置,其中所述控制器经配置以响应于来自中央处理单元的请求而从所述缓冲器输出数据。
28.根据权利要求26所述的装置,其中所述控制器经配置以从所述缓冲器输出在由所述匹配事件表存储的匹配开始地址与匹配结束地址之间的数据。
29.一种型式辨识方法,其包括:
根据若干搜索准则来搜索数据流;
将所述数据流的一部分存储于循环缓冲器中;及
如果所述数据流的匹配部分满足所述搜索准则当中的一搜索准则的一部分,那么存储所述循环缓冲器的指示存储所述数据流的所述匹配部分之处的地址。
30.根据权利要求29所述的方法,其中根据若干搜索准则来搜索所述数据流包括大体上同时根据所述搜索准则进行搜索。
31.根据权利要求30所述的方法,其中所述搜索准则包括1000个以上搜索准则。
32.根据权利要求29所述的方法,其中将所述数据流的所述部分存储于所述循环缓冲器中包括盖写所述数据流的先前所存储的若干部分。
33.根据权利要求29所述的方法,其中将所述数据流的所述部分存储于所述循环缓冲器中包括:
使计数器递增或递减;及
基于所述计数器的计数将来自所述数据流的数据写入到所述循环缓冲器的若干地址。
34.根据权利要求29所述的方法,其包括在满足所述搜索准则之后从所述循环缓冲器输出数据。
CN200980154031.XA 2009-01-07 2009-12-15 具有匹配数据报告模块的型式辨识处理器 Active CN102272714B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/350,132 2009-01-07
US12/350,132 US8281395B2 (en) 2009-01-07 2009-01-07 Pattern-recognition processor with matching-data reporting module
PCT/US2009/068086 WO2010080403A2 (en) 2009-01-07 2009-12-15 Pattern-recognition processor with matching-data reporting module

Publications (2)

Publication Number Publication Date
CN102272714A CN102272714A (zh) 2011-12-07
CN102272714B true CN102272714B (zh) 2015-07-01

Family

ID=41694767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980154031.XA Active CN102272714B (zh) 2009-01-07 2009-12-15 具有匹配数据报告模块的型式辨识处理器

Country Status (5)

Country Link
US (3) US8281395B2 (zh)
KR (1) KR101648235B1 (zh)
CN (1) CN102272714B (zh)
TW (1) TWI419002B (zh)
WO (1) WO2010080403A2 (zh)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938590B2 (en) 2008-10-18 2015-01-20 Micron Technology, Inc. Indirect register access method and system
US8209521B2 (en) 2008-10-18 2012-06-26 Micron Technology, Inc. Methods of indirect register access including automatic modification of a directly accessible address register
US7917684B2 (en) 2008-11-05 2011-03-29 Micron Technology, Inc. Bus translator
US8402188B2 (en) 2008-11-10 2013-03-19 Micron Technology, Inc. Methods and systems for devices with a self-selecting bus decoder
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
US8281395B2 (en) 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
US8214672B2 (en) 2009-01-07 2012-07-03 Micron Technology, Inc. Method and systems for power consumption management of a pattern-recognition processor
EP2494484A4 (en) * 2009-10-31 2016-05-18 Hewlett Packard Development Co IDENTIFICATION OF POOR CODES
US8489534B2 (en) 2009-12-15 2013-07-16 Paul D. Dlugosch Adaptive content inspection
US9323994B2 (en) 2009-12-15 2016-04-26 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US9501705B2 (en) 2009-12-15 2016-11-22 Micron Technology, Inc. Methods and apparatuses for reducing power consumption in a pattern recognition processor
US8766666B2 (en) 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
US8601013B2 (en) 2010-06-10 2013-12-03 Micron Technology, Inc. Analyzing data using a hierarchical structure
KR101640295B1 (ko) 2011-01-25 2016-07-15 마이크론 테크놀로지, 인크. 정규 표현을 컴파일하기 위한 방법 및 장치
WO2012103146A2 (en) 2011-01-25 2012-08-02 Micron Technology, Inc. Utilizing special purpose elements to implement a fsm
EP2668577B1 (en) 2011-01-25 2019-08-14 Micron Technology, INC. Unrolling quantifications to control in-degree and/or out degree of automaton
WO2012103151A2 (en) 2011-01-25 2012-08-02 Micron Technology, Inc. State grouping for element utilization
US8402003B2 (en) * 2011-02-08 2013-03-19 International Business Machines Corporation Performance monitoring mechanism for use in a pattern matching accelerator
US8680888B2 (en) 2011-12-15 2014-03-25 Micron Technologies, Inc. Methods and systems for routing in a state machine
US9443156B2 (en) 2011-12-15 2016-09-13 Micron Technology, Inc. Methods and systems for data analysis in a state machine
US8648621B2 (en) 2011-12-15 2014-02-11 Micron Technology, Inc. Counter operation in a state machine lattice
US8593175B2 (en) 2011-12-15 2013-11-26 Micron Technology, Inc. Boolean logic in a state machine lattice
US8782624B2 (en) 2011-12-15 2014-07-15 Micron Technology, Inc. Methods and systems for detection in a state machine
TWI471001B (zh) * 2011-12-29 2015-01-21 Ind Tech Res Inst 伺服器、用戶設備、選取起始區塊位址的方法與決定區塊請求數目的方法
US20130275709A1 (en) 2012-04-12 2013-10-17 Micron Technology, Inc. Methods for reading data from a storage buffer including delaying activation of a column select
US9304968B2 (en) 2012-07-18 2016-04-05 Micron Technology, Inc. Methods and devices for programming a state machine engine
US9389841B2 (en) 2012-07-18 2016-07-12 Micron Technology, Inc. Methods and systems for using state vector data in a state machine engine
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US9235798B2 (en) 2012-07-18 2016-01-12 Micron Technology, Inc. Methods and systems for handling data received by a state machine engine
KR102438674B1 (ko) * 2012-08-03 2022-08-31 가부시키가이샤 한도오따이 에네루기 켄큐쇼 발광 소자, 발광 장치, 표시 장치, 전자 기기, 및 조명 장치
US9075428B2 (en) 2012-08-31 2015-07-07 Micron Technology, Inc. Results generation for state machine engines
US9501131B2 (en) 2012-08-31 2016-11-22 Micron Technology, Inc. Methods and systems for power management in a pattern recognition processing system
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US9749253B2 (en) * 2013-03-14 2017-08-29 Silver Spring Networks, Inc. Technique for implementing a latency sensitive communication protocol in a wireless mesh network
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
US11586956B2 (en) * 2013-05-28 2023-02-21 Keysight Technologies, Inc. Searching apparatus utilizing sub-word finite state machines
US9338076B1 (en) * 2014-10-24 2016-05-10 Tektronix, Inc. Deriving hardware acceleration of decoding from a declarative protocol description
US10148547B2 (en) 2014-10-24 2018-12-04 Tektronix, Inc. Hardware trigger generation from a declarative protocol description
US10430210B2 (en) 2014-12-30 2019-10-01 Micron Technology, Inc. Systems and devices for accessing a state machine
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
WO2016109571A1 (en) 2014-12-30 2016-07-07 Micron Technology, Inc Devices for time division multiplexing of state machine engine signals
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
US10846103B2 (en) 2015-10-06 2020-11-24 Micron Technology, Inc. Methods and systems for representing processing resources
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
US11527523B2 (en) * 2018-12-10 2022-12-13 HangZhou HaiCun Information Technology Co., Ltd. Discrete three-dimensional processor
US10560475B2 (en) 2016-03-07 2020-02-11 Chengdu Haicun Ip Technology Llc Processor for enhancing network security
US10489590B2 (en) 2016-03-07 2019-11-26 Chengdu Haicun Ip Technology Llc Processor for enhancing computer security
US10146555B2 (en) 2016-07-21 2018-12-04 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
CN109148670B (zh) * 2016-08-30 2020-07-24 开发晶照明(厦门)有限公司 Led倒装芯片封装基板和led封装结构
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US10714172B2 (en) 2017-09-21 2020-07-14 HangZhou HaiCun Information Technology Co., Ltd. Bi-sided pattern processor
EP3483014B1 (en) * 2017-11-10 2021-05-19 Nxp B.V. Pattern detection for automotive access
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10936283B2 (en) 2017-11-30 2021-03-02 International Business Machines Corporation Buffer size optimization in a hierarchical structure
US11048475B2 (en) 2017-11-30 2021-06-29 International Business Machines Corporation Multi-cycle key compares for keys and records of variable length
US10896022B2 (en) 2017-11-30 2021-01-19 International Business Machines Corporation Sorting using pipelined compare units
US11354094B2 (en) 2017-11-30 2022-06-07 International Business Machines Corporation Hierarchical sort/merge structure using a request pipe
CN116150085A (zh) * 2018-12-10 2023-05-23 杭州海存信息技术有限公司 分离的三维处理器
US11734550B2 (en) 2018-12-10 2023-08-22 HangZhou HaiCun Information Technology Co., Ltd. Discrete three-dimensional processor
US11296068B2 (en) 2018-12-10 2022-04-05 HangZhou HaiCun Information Technology Co., Ltd. Discrete three-dimensional processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0380294A1 (en) * 1989-01-23 1990-08-01 Codex Corporation String matching
US5974485A (en) * 1996-11-26 1999-10-26 Francotyp-Postalia Ag & Co. Arrangement and method for improving the data integrity with a ring buffer
WO2003090426A1 (en) * 2002-04-17 2003-10-30 Computer Associates Think, Inc. Detecting and countering malicious code in enterprise networks
US7057913B2 (en) * 2004-04-06 2006-06-06 Intel Corporation Low-power search line circuit encoding technique for content addressable memories

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4739398A (en) * 1986-05-02 1988-04-19 Control Data Corporation Method, apparatus and system for recognizing broadcast segments
KR0184865B1 (ko) * 1989-10-13 1999-05-15 엔. 라이스 머레트 데이타 프로세싱 디바이스
US5300830A (en) * 1992-05-15 1994-04-05 Micron Semiconductor, Inc. Programmable logic device macrocell with an exclusive feedback and exclusive external input lines for registered and combinatorial modes using a dedicated product term for control
US5331227A (en) * 1992-05-15 1994-07-19 Micron Semiconductor, Inc. Programmable logic device macrocell with an exclusive feedback line and an exclusive external input line
US6880087B1 (en) * 1999-10-08 2005-04-12 Cisco Technology, Inc. Binary state machine system and method for REGEX processing of a data stream in an intrusion detection system
US6240003B1 (en) * 2000-05-01 2001-05-29 Micron Technology, Inc. DRAM content addressable memory using part of the content as an address
US7146643B2 (en) * 2002-10-29 2006-12-05 Lockheed Martin Corporation Intrusion detection accelerator
US7089352B2 (en) * 2002-12-23 2006-08-08 Micron Technology, Inc. CAM modified to be used for statistic calculation in network switches and routers
US6944710B2 (en) * 2002-12-30 2005-09-13 Micron Technology, Inc. Multiple category CAM
US6988064B2 (en) * 2003-03-31 2006-01-17 Motorola, Inc. System and method for combined frequency-domain and time-domain pitch extraction for speech signals
US6906938B2 (en) * 2003-08-15 2005-06-14 Micron Technology, Inc. CAM memory architecture and a method of forming and operating a device according to a CAM memory architecture
US7487542B2 (en) 2004-01-14 2009-02-03 International Business Machines Corporation Intrusion detection using a network processor and a parallel pattern detection engine
US7392229B2 (en) * 2005-02-12 2008-06-24 Curtis L. Harris General purpose set theoretic processor
FR2891075B1 (fr) * 2005-09-21 2008-04-04 St Microelectronics Sa Circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et procede de memorisation de donnees dans un tel circuit
JP4717704B2 (ja) * 2006-04-26 2011-07-06 ルネサスエレクトロニクス株式会社 データ処理装置およびデータ処理方法
US7512634B2 (en) * 2006-06-05 2009-03-31 Tarari, Inc. Systems and methods for processing regular expressions
US7894289B2 (en) * 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US8065249B1 (en) 2006-10-13 2011-11-22 Harris Curtis L GPSTP with enhanced aggregation functionality
US7900120B2 (en) * 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
US7774286B1 (en) 2006-10-24 2010-08-10 Harris Curtis L GPSTP with multiple thread functionality
US8286246B2 (en) * 2007-08-10 2012-10-09 Fortinet, Inc. Circuits and methods for efficient data transfer in a virus co-processing system
US7854008B1 (en) * 2007-08-10 2010-12-14 Fortinet, Inc. Software-hardware partitioning in a virus processing system
US8209521B2 (en) 2008-10-18 2012-06-26 Micron Technology, Inc. Methods of indirect register access including automatic modification of a directly accessible address register
US8938590B2 (en) 2008-10-18 2015-01-20 Micron Technology, Inc. Indirect register access method and system
US7917684B2 (en) 2008-11-05 2011-03-29 Micron Technology, Inc. Bus translator
US9639493B2 (en) * 2008-11-05 2017-05-02 Micron Technology, Inc. Pattern-recognition processor with results buffer
US7970964B2 (en) 2008-11-05 2011-06-28 Micron Technology, Inc. Methods and systems to accomplish variable width data input
US8402188B2 (en) 2008-11-10 2013-03-19 Micron Technology, Inc. Methods and systems for devices with a self-selecting bus decoder
US9348784B2 (en) 2008-12-01 2016-05-24 Micron Technology, Inc. Systems and methods for managing endian mode of a device
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US9164945B2 (en) 2008-12-01 2015-10-20 Micron Technology, Inc. Devices, systems, and methods to synchronize parallel processing of a single data stream
US10007486B2 (en) 2008-12-01 2018-06-26 Micron Technology, Inc. Systems and methods to enable identification of different data sets
US8140780B2 (en) 2008-12-31 2012-03-20 Micron Technology, Inc. Systems, methods, and devices for configuring a device
US8214672B2 (en) * 2009-01-07 2012-07-03 Micron Technology, Inc. Method and systems for power consumption management of a pattern-recognition processor
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
US8281395B2 (en) * 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
US8843523B2 (en) 2009-01-12 2014-09-23 Micron Technology, Inc. Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine
US8769213B2 (en) * 2009-08-24 2014-07-01 Micron Technology, Inc. Multi-port memory and operation
US8719516B2 (en) * 2009-10-21 2014-05-06 Micron Technology, Inc. Memory having internal processors and methods of controlling memory access
US8766666B2 (en) 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
US8601013B2 (en) 2010-06-10 2013-12-03 Micron Technology, Inc. Analyzing data using a hierarchical structure
WO2012103146A2 (en) 2011-01-25 2012-08-02 Micron Technology, Inc. Utilizing special purpose elements to implement a fsm
KR101640295B1 (ko) 2011-01-25 2016-07-15 마이크론 테크놀로지, 인크. 정규 표현을 컴파일하기 위한 방법 및 장치
WO2012103151A2 (en) 2011-01-25 2012-08-02 Micron Technology, Inc. State grouping for element utilization
EP2668577B1 (en) 2011-01-25 2019-08-14 Micron Technology, INC. Unrolling quantifications to control in-degree and/or out degree of automaton

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0380294A1 (en) * 1989-01-23 1990-08-01 Codex Corporation String matching
US5974485A (en) * 1996-11-26 1999-10-26 Francotyp-Postalia Ag & Co. Arrangement and method for improving the data integrity with a ring buffer
WO2003090426A1 (en) * 2002-04-17 2003-10-30 Computer Associates Think, Inc. Detecting and countering malicious code in enterprise networks
CN1647483A (zh) * 2002-04-17 2005-07-27 计算机联合思想公司 检测和反击企业网络中的恶意代码
US7057913B2 (en) * 2004-04-06 2006-06-06 Intel Corporation Low-power search line circuit encoding technique for content addressable memories

Also Published As

Publication number Publication date
TWI419002B (zh) 2013-12-11
KR101648235B1 (ko) 2016-08-12
US8719206B2 (en) 2014-05-06
US20140244564A1 (en) 2014-08-28
KR20110110792A (ko) 2011-10-07
US8281395B2 (en) 2012-10-02
TW201032085A (en) 2010-09-01
WO2010080403A2 (en) 2010-07-15
CN102272714A (zh) 2011-12-07
US9026485B2 (en) 2015-05-05
US20130006909A1 (en) 2013-01-03
WO2010080403A3 (en) 2010-08-26
US20100175130A1 (en) 2010-07-08

Similar Documents

Publication Publication Date Title
CN102272714B (zh) 具有匹配数据报告模块的型式辨识处理器
CN102272713B (zh) 用于型式辨识处理器的电力消耗管理的方法及系统
CN102232213B (zh) 启用不同数据集合的识别的系统及方法
US10838966B2 (en) Devices, systems, and methods to synchronize simultaneous DMA parallel processing of a single data stream by multiple devices
CN102272715B (zh) 用于传送并行型式搜索引擎的型式匹配结果的装置、系统及方法
CN102741859B (zh) 用于减少模式辨识处理器中的功率消耗的方法及设备
CN102203802B (zh) 具有结果缓冲器的模式辨识处理器
CN102232216B (zh) 用于管理装置的字节序模式的系统及方法
US20100138634A1 (en) Devices, systems, and methods to synchronize parallel processing of a single data stream

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