CN102203802B - 具有结果缓冲器的模式辨识处理器 - Google Patents

具有结果缓冲器的模式辨识处理器 Download PDF

Info

Publication number
CN102203802B
CN102203802B CN2009801442872A CN200980144287A CN102203802B CN 102203802 B CN102203802 B CN 102203802B CN 2009801442872 A CN2009801442872 A CN 2009801442872A CN 200980144287 A CN200980144287 A CN 200980144287A CN 102203802 B CN102203802 B CN 102203802B
Authority
CN
China
Prior art keywords
search
data
data stream
pattern identification
search criteria
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
CN2009801442872A
Other languages
English (en)
Other versions
CN102203802A (zh
Inventor
哈罗德·B·诺伊斯
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 CN102203802A publication Critical patent/CN102203802A/zh
Application granted granted Critical
Publication of CN102203802B publication Critical patent/CN102203802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

所揭示的是方法和装置,尤其是一种包括模式辨识处理器的装置。所述模式辨识处理器可包括或耦合到结果缓冲器,所述结果缓冲器可具有多个记录、经配置以将与搜索结果有关的数据写入所述多个记录中的写入控制模块,和经配置以从所述多个记录读取数据的读取控制模块。

Description

具有结果缓冲器的模式辨识处理器
技术领域
本发明的实施例一般涉及模式辨识处理器,且更具体来说,在某些实施例中,涉及具有结果缓冲器的模式辨识处理器。
背景技术
在计算的领域中,模式辨识任务日益具挑战性。计算机之间传输越来越大量的数据,且用户希望识别的模式的数目不断增加。举例来说,常常通过在数据流中搜索模式(例如,特定短语或多条代码)而检测垃圾邮件(spam)或恶意软件(malware)。因为可实施新模式来搜索新变体,所以模式的数目随着多种垃圾邮件和恶意软件而增加。搜索数据流以找出这些模式中的每一者可形成计算瓶颈。常常,当接收到数据流时,一次搜索一个数据流以找出每一模式。在系统准备好搜索数据流的下一部分之前的延迟随着模式的数目而增加。因此,模式辨识可能延缓数据的接收。
匹配的不规则出现常常使模式辨识任务变得复杂。某些数据流可能在短暂连续中匹配若干模式,且报告这些匹配或以其它方式作用于这些匹配可为困难的,因为系统的其它部分在出现新匹配时可能未尽快响应。在其它例子中,在出现匹配之前可能接收数据流历经相对较长的时期,使得未使用其它组件处理匹配的能力。模式辨识期间的结果数据的不规则流动使得难以设计与模式辨识硬件介接的系统。
附图说明
图1描绘搜索数据流的系统的实例;
图2描绘图1的系统中的模式辨识处理器的实例;
图3描绘图2的模式辨识处理器中的搜索项单元的实例;
图4和图5描绘图3的搜索项单元搜索数据流以找出单个字符;
图6到图8描绘包括搜索数据流以找出词的若干搜索项单元的辨识模块;
图9描绘经配置以并行搜索数据流以找出两个词的辨识模块;
图10到图12描绘根据指定具有相同前缀的多个词的搜索准则搜索的辨识模块;以及
图13描绘图2的模式辨识处理器中的结果缓冲器的实例。
具体实施方式
图1描绘搜索数据流12的系统10的实例。系统10可包括根据搜索准则16搜索数据流12的模式辨识处理器14。
每一搜索准则可指定一个或一个以上目标表达式,即,模式。短语“目标表达式”指代模式辨识处理器14正搜索的数据序列。目标表达式的实例包括:拼写某一词的字符序列、指定基因的遗传碱基对序列、形成图像的一部分的图片或视频文件中的位序列、形成程序的一部分的可执行文件中的位序列,或形成歌曲或口语短语的一部分的音频文件中的位序列。
搜索准则可指定一个以上目标表达式。举例来说,搜索准则可指定以字母序列“cl”开始的所有五个字母的词、以字母序列“cl”开始的任何词、包括词“cloud”三次以上的段落等。可能的目标表达式集合的数目为任意大的,例如,可存在与数据流可呈现的数据的排列一样多的目标表达式。可以多种格式表达搜索准则,包括正规表达式,正规表达式为一种在不需要列举每一目标表达式的情况下简洁地指定目标表达式集合的编程语言。
可从一个或一个以上搜索项建构每一搜索准则。因此,搜索准则的每一目标表达式可包括一个或一个以上搜索项和可使用共同搜索项的一些目标表达式。如本文所使用,短语“搜索项”指代单个搜索循环期间所搜索的数据序列。所述数据序列可包括呈二进制格式或其它格式(例如,十进制、ASCII等)的多个位的数据。序列可用单个数字或多个数字(例如,若干二进制数字)对数据进行编码。举例来说,模式辨识处理器14可一次一字符地搜索文本数据流12,且搜索项可指定单个字符的集合(例如,字母“a”,字母“a”或“e”),或指定所有单个字符的集合的通配符搜索项。
搜索项可比指定字符(或由数据流表达的信息的其它语义图(即,基本单元),例如,音符、遗传碱基对、10进制数字或子像素)的位的数目小或大。举例来说,搜索项可为8位,且单个字符可为16位,在此情况下,两个连续搜索项可能指定单个字符。
编译器18可针对模式辨识处理器14而格式化搜索准则16。格式化可包括根据搜索准则将搜索项解构。举例来说,如果由数据流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可串行地呈现项,但可并行接收表达项中的每一者的位。可从系统10的外部的源接收数据流12,或可通过询问存储器装置或从所存储的数据形成数据流12来形成数据流12。
设计者可视数据流12中的数据的类型而选择不同类型的搜索准则。举例来说,搜索准则16可为病毒定义文件。可使病毒或其它恶意软件特征化,且可使用恶意软件的各方面来形成指示数据流12是否可能递送恶意软件的搜索准则。可将所得搜索准则存储于服务器上,且客户端系统的操作者可预订将搜索准则下载到系统10的服务。当不同类型的恶意软件出现时,搜索准则16可从服务器周期性地更新。搜索准则还可用以指定可能经由网络接收的不合意的内容,例如,不想要的邮件(通常称为垃圾邮件)或用户感到讨厌的其它内容。
数据流12可能被对由系统10接收的数据感兴趣的第三方搜索。举例来说,可监视数据流12以找出具有版权的作品中出现的文本、音频序列,或视频序列。还可监视数据流12以找出与刑事调查或民事诉讼有关或雇主感兴趣的言论。
搜索准则16还可在数据流12中包括模式,对于所述模式来说,转译(例如)在可由CPU 20寻址的存储器或模式辨识处理器14中是可用的。举例来说,搜索准则16可各自指定英文词,所述英文词对应的西班牙语词存储于存储器中。在另一实例中,搜索准则16可指定数据流12的经编码的版本(例如,MP3、MPEG 4、FLAC、Ogg Vorbis等),对其来说,数据流12的经解码的版本为可用的,或反之亦然。
模式辨识处理器14可为与CPU 20一起集成为单个组件(例如,单个装置)或可形成为单独组件的硬件。举例来说,模式辨识处理器14可为单独集成电路。还可将模式辨识处理器14称为“协处理器”或“模式辨识协处理器”。
图2描绘模式辨识处理器14的实例。模式辨识处理器14可包括辨识模块22和具有输出缓冲器51的聚合模块24。输出缓冲器51可包括结果缓冲器25。辨识模块22可经配置以将所接收的项与搜索项进行比较,且辨识模块22和聚合模块24两者可合作确定使项与搜索项匹配是否满足搜索准则。如下文将关于图13进一步描述,结果缓冲器25可缓冲来自模式辨识处理器14的其它部分的结果数据。
辨识模块22可包括行解码器28和多个特征单元30。每一特征单元30可指定搜索项,且特征单元30的群组可形成并行有限状态机,并行有限状态机形成搜索准则。特征单元30的组件可形成搜索项阵列32、检测阵列34和激活路由矩阵36。搜索项阵列32可包括多个输入导体37,输入导体37中的每一者可使特征单元30中的每一者与行解码器28通信。
行解码器28可基于数据流12的内容在多个输入导体37中选择特定导体。举例来说,行解码器28可为基于可表示一个项的所接收的字节的值而激活256行中的一者的一字节到256行解码器。一字节项0000 0000可对应于多个输入导体37中的顶部行,且一字节项1111 1111可对应于多个输入导体37中的底部行。因此,可视从数据流12接收哪些项来选择不同的输入导体37。当接收到不同项时,行解码器28可去活对应于前一项的行,且激活对应于新项的行。
检测阵列34可耦合到将指示搜索准则的完全或部分满足的信号输出到聚合模块24的检测总线38。激活路由矩阵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可选择性地产生“积”结果(例如,布尔逻辑中的“与(AND)”函数)。逻辑积矩阵46可实施为方形矩阵,其中所输出积的数目等于来自阈值逻辑矩阵44的输入线的数目,或逻辑积矩阵46可具有与输出的数目不同的输入的数目。所得积值可输出到逻辑和矩阵48。
逻辑和矩阵48可选择性地产生和(例如,布尔逻辑中的“或(OR)”函数)。逻辑和矩阵48也可为方形矩阵,或逻辑和矩阵48可具有与输出的数目不同的输入的数目。因为输入为逻辑积,所以逻辑和矩阵48的输出可为逻辑积和(例如,布尔逻辑的积和(SOP)形式)。逻辑和矩阵48的输出可由初始化路由矩阵50接收。
初始化路由矩阵50可经由聚合路由矩阵42复位检测阵列34和聚合模块24的部分。初始化路由矩阵50也可实施为方形矩阵,或初始化路由矩阵50可具有与输出的数目不同的输入的数目。(例如)当满足搜索准则或确定不可进一步满足搜索准则时,初始化路由矩阵50可响应于来自逻辑和矩阵48的信号,且重新初始化模式辨识处理器14的其它部分。
聚合模块24可包括接收阈值逻辑矩阵44的输出的输出缓冲器51、聚合路由矩阵42和逻辑和矩阵48。聚合模块24的输出可在输出总线26上从输出缓冲器51传输到CPU 20(图1)。如下文进一步描述,输出缓冲器51可包括或可自身为结果缓冲器25。在一些实施例中,输出多路复用器可多路复用来自这些组件42、44和48的信号,且将指示准则的满足或搜索项的匹配的信号输出到CPU 20(图1)。在其它实施例中,可在不经由输出多路复用器传输信号的情况下报告来自模式辨识处理器14的结果,这并不暗示也不可省略本文所描述的任何其它特征。举例来说,来自阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48或初始化路由矩阵50的信号可在输出总线26上并行传输到CPU。
图3说明搜索项阵列32(图2)中单个特征单元30的一部分,特征单元30是在本文中称为搜索项单元54的组件。搜索项单元54可包括输出导体56和多个存储器单元58。存储器单元58中的每一者可耦合到输出导体56和多个输入导体37中的导体中的一者。响应于存储器单元58中的每一者的输入导体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中的每一者可包括指示特征单元63、64或66是作用中的还是非作用中的存储器单元70,例如上文所描述的类型的存储器单元中的一者(例如,触发器)。检测单元68可经配置以将指示检测单元是否在作用中,和是否已从其相关联的搜索项单元54接收到指示匹配的信号的信号输出到激活路由矩阵36。非作用中的特征单元63、64和66可能忽视匹配。检测单元68中的每一者可包括“与”门,其具有来自存储器单元70和输出导体56的输入。“与”门的输出可经路由到检测总线38和激活路由矩阵36两者,或其中的一者或另一者。
激活路由矩阵36又可通过写入到检测阵列34中的存储器单元70而选择性地激活特征单元63、64和66。激活路由矩阵36可根据搜索准则来激活特征单元63、64或66,且对其搜索项进行搜索以找出数据流12中的下一者。
在图6中,数据流12呈现字母“b”。作为响应,特征单元63、64和66中的每一者可在其输出导体56上输出指示存储于连接到导体62的存储器单元58中的值的信号,其表示字母“b”。检测单元56接着可各自确定其是否已接收到指示匹配的信号且其是否在作用中。因为特征单元63经配置以检测到字母“b”且在作用中,如由其存储器单元70指示,所以特征单元63中的检测单元68可将指示已匹配搜索准则的第一搜索项的信号输出到激活路由矩阵36。
如由图7所说明,在匹配第一搜索项后,激活路由矩阵36可通过将1写入到其检测单元68中的其存储器单元70而激活下一特征单元64。在下一项满足第一搜索项的情况下(例如,如果接收到项序列“bbig”),激活路由矩阵36还可维持特征单元63的作用中状态。在搜索数据流12的一部分或大体上所有时间期间,可将搜索准则的第一搜索项维持于作用中状态。
在图7中,数据流12向辨识模块22呈现字母“i”。作为响应,特征单元63、64和66中的每一者可在其输出导体56上输出指示存储于连接到导体72的存储器单元58中的值的信号,其表示字母“i”。检测单元56接着可各自确定其是否已接收到指示匹配的信号且其是否在作用中。因为特征单元64经配置以检测字母“i”且在作用中,如由其存储器单元70所指示,所以特征单元64中的检测单元68可将指示已匹配其搜索准则的下一搜索项的信号输出到激活路由矩阵36。
接着,激活路由矩阵36可激活特征单元66,如由图8所说明。可在评估下一项之前去活特征单元64。举例来说,可由特征单元64的检测单元68在检测循环之间复位其存储器单元70而去活特征单元64,或激活路由矩阵36可去活特征单元64。
在图8中,数据流12向行解码器28呈现项“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可为“自激活”的,意指一旦其被激活,只要其搜索项匹配其便激活自身。举例来说,具有由任何数字(numerical digit)匹配的搜索项的自激活特征单元可贯穿序列“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,激活路由单元78的群组可与特征单元63、64、66、80、82、84和86中的每一者相关联。举例来说,特征单元中的每一者可包括5个、10个、20个、50个或更多激活路由单元78。激活路由单元78可经配置以当匹配前一搜索项时将激活信号传输到搜索准则中的下一搜索项。激活路由单元78可经配置以将激活信号路由到邻近的特征单元或同一特征单元内的其它激活路由单元78。激活路由单元78可包括指示哪些特征单元对应于搜索准则中的下一搜索项的存储器。
如由图10到图12所说明,辨识模块22可经配置以根据比指定单个词的准则复杂的搜索准则进行搜索。举例来说,辨识模块22可经配置以搜索以前缀88开始且以两个后缀90或92中的一者结束的词。所说明的搜索准则指定依次以字母“c”和“l”开始,且以字母序列“ap”或字母序列“oud”结束的词。此为指定多个目标表达式(例如,词“clap”或“cloud”)的搜索准则的实例。
在图10中,数据流12向辨识模块22呈现字母“c”,且特征单元63在作用中并检测匹配。作为响应,激活路由矩阵36可激活下一特征单元64。激活路由矩阵36还可维持特征单元63的作用中状态,因为特征单元63为搜索准则中的第一搜索项。
在图11中,数据流12呈现字母“l”,且特征单元64辨识匹配且在作用中。作为响应,激活路由矩阵36可将激活信号传输到第一后缀90的第一特征单元66和第二后缀92的第一特征单元82两者。在其它实例中,可激活更多后缀,或多个前缀可激活一个或一个以上后缀。
接着,如由图12所说明,数据流12向辨识模块22呈现字母“o”,且第二后缀92的特征单元82检测匹配且在作用中。作为响应,激活路由矩阵36可激活第二后缀92的下一特征单元84。因为允许特征单元66变成非作用中的,所以可能终止对第一后缀90的搜索。由图10到图12说明的步骤可经由字母“u”和“d”而继续,或在下一次匹配前缀88之前搜索可终止。
图13说明耦合到模式辨识处理器14的结果缓冲器25的实例。如上文相对于图2所描述,结果缓冲器25可包括于输出缓冲器51中。结果缓冲器25可包括先入先出(FIFO)缓冲器94、缓冲器写入控制模块96、缓冲器读取控制模块98和缓冲器配置模块100。结果缓冲器25可一体地形成为模式辨识处理器14的部分(例如,在同一硅主体上),或其可为单独组件或单独组件的部分。结果缓冲器25可经由上游结果总线102从模式辨识处理器14接收结果数据,且结果缓冲器25可经由下游结果总线104将结果数据输出到CPU 20(图1)。配置总线106可使CPU 20与结果缓冲器25中的缓冲器配置模块100和可用于配置模式辨识处理器14的模式辨识处理器配置模块108通信。
FIFO缓冲器94可经配置以存储多个记录110。每一记录110可存储结果数据,例如,与准则的满足相关的数据。每一记录110可与一个准则的满足的一例子相对应,或与准则的满足相关的数据可存储于若干记录110(例如,若干邻近或以其它方式连续的记录110)中。
每一记录110可包括用于存储结果状态信息112、内务信息114和结果数据116的字段。其它实施例可包括额外字段或更少的字段。结果状态区位112可存储识别数据流12,且将数据流12与模式辨识处理器14可接收的其它数据流区分开的数据。
内务字段114可存储指示模式辨识处理器14在满足准则时的状态的数据。举例来说,内务字段114可存储指示是否已发生错误条件的数据。错误条件的实例包括输入数据溢出或FIFO缓冲器已满条件。举例来说,FIFO缓冲器94可包括多于约32个记录、多于约64个记录、多于约128个记录、多于约256个记录,或多于约512个记录。
结果数据116可包括例如满足哪一准则的数据、来自满足准则的数据流12的项序列、指向满足准则的数据流12的部分的项计数(例如,位计数),或接收到满足准则的数据流的部分的时间周期。
缓冲器写入控制模块96可经配置以控制将来自上游结果总线102的哪一数据写入到FIFO缓冲器94中的哪一记录110。缓冲器写入控制模块96可包括每当满足准则或每当将结果数据写入到新记录110时递增或递减的计数器。缓冲器写入控制模块还可包括指示哪一记录110最近输出到CPU 20的存储器,且缓冲器写入控制模块96可经配置以将来自上游结果总线102的数据写入到含有已传达给CPU 20的数据的记录110。
类似地,缓冲器读取控制模块98可经配置以指示哪一记录110为未从FIFO缓冲器94读取的最旧记录。举例来说,缓冲器读取控制模块98可包括每当从FIFO缓冲器94读取记录时递增或递减的计数器,且计数器的计数可识别最旧的未读取记录110。缓冲器读取控制模块98可经配置以从CPU 20接收读取命令信号118,且通过致使FIFO缓冲器94输出由最旧的未读取记录110存储的数据而响应于所述读取命令。
结果总线104可包括与传达数据流12的总线不同的导体,使得数据流12可在下游结果总线104正输出数据的相同时间输入数据。在其中结果缓冲器25与模式辨识处理器14一体形成的实施例中,模式辨识处理器14可包括用于将数据流12传达入且将结果传达出的单独引脚。因此,可在输入数据流的相同时间输出结果数据。
在操作中,模式辨识处理器14可以上文参考图2到图12所描述的方式搜索数据流12,且来自搜索的结果在传达给CPU 20之前可在结果缓冲器25中缓冲。当满足准则时,可将与准则的满足有关的数据(例如指示满足哪一准则的数据、指示数据流12中的哪些项满足准则的数据,和指示哪一数据流正被搜索的数据)经由上游结果总线102传输到结果缓冲器25。
在接收到此数据后,缓冲器写入控制模块96可即刻确定FIFO缓冲器94中是否存在任何空闲记录,例如,存储已被传达给CPU 20的数据的记录110,或不存储任何数据的记录110。如果无空闲记录可用,则缓冲器写入控制模块96可用信号通知模式辨识处理器14停止搜索数据流,且当CPU 20遍历FIFO缓冲器94中的记录进行工作并创建空间时,用信号通知CPU 20暂停数据流12的传输。缓冲器写入控制模块96还可将指示模式辨识处理器14进入结果缓冲器溢出状态的数据存储于当前或后续记录条目的内务信息字段114中。
如果缓冲器写入控制模块96确定至少一个空闲记录110可用,则缓冲器写入控制模块96可将来自上游结果数据总线102的结果数据写入到空闲记录110。缓冲器写入控制模块96可将记录110标示为已被写入但尚未被读取,且缓冲器写入控制模块96可将记录110标示为是相对于其它经写入的记录的最新记录。
在大体上相同的时间,或在其它时间,CPU 20可将读取控制信号118传输到缓冲器读取控制模块98,借此用信号通知缓冲器读取控制模块98输出尚未被读取的最旧的记录110中的数据。缓冲器读取控制模块98可确定是否存在任何未读取的记录110。如果无未读取的记录存在,则缓冲器读取控制模块98可用信号通知CPU 20当前不存在未读取的记录。如果确实存在未读取的记录110,则缓冲器读取控制模块98可识别最旧的未读取的记录,且将由所述最旧的未读取的记录110存储的数据传达给CPU 20。在其它实施例中,缓冲器读取控制模块98可传达由最旧的未读取的记录110存储的数据的一部分(例如,满足哪一准则),且CPU 20可确定是否请求更多的由记录110存储的数据(例如,来自数据流12的哪些项满足准则)。缓冲器读取控制模块98接着可将那个记录标示为已被读取,且标示为安全的以由缓冲器写入控制模块96盖写。
结果缓冲器25可减少数据流12的搜索中的中断。当数据流12满足搜索准则比CPU20可接收或处理搜索结果快时,结果缓冲器25可在CPU 20赶上时存储未经处理的结果数据。即使当在大约相同的时间满足若干搜索准则时,结果缓冲器25也可平滑化结果数据到CPU 20的流动,结果,在CPU 20处理由结果缓冲器25存储的搜索结果的待办事项时,模式辨识处理器14可继续搜索数据流12。
虽然本发明可容许各种修改和替代形式,但图式中已通过实例展示且本文中已详细地描述特定实施例。然而,应理解,本发明无意限于所揭示的特定形式。而是,本发明将涵盖处于如由所附权利要求书界定的本发明的精神和范围内的所有修改、等效物和替代物。

Claims (32)

1.一种模式辨识装置,其包含:
模式辨识处理器,其经配置以产生搜索结果且包含:
解码器,其具有经配置以接收待搜索的数据流的输入;以及
多个特征单元,其耦合到所述解码器,其中所述多个特征单元中的每一者包含多个存储器单元,所述多个存储器单元各自可由耦合到所述解码器的输出的导体寻址;以及
结果缓冲器,其中所述结果缓冲器包含:
多个记录单元;
写入控制模块,其经配置以将与所述搜索结果有关的数据写入所述多个记录单元中;以及
读取控制模块,其经配置以从所述多个记录单元读取数据。
2.根据权利要求1所述的装置,其中所述结果缓冲器包含先入先出(FIFO)缓冲器。
3.根据权利要求1所述的装置,其包含处理单元(PU),所述处理单元(PU)经由结果总线和所述结果缓冲器与所述模式辨识处理器通信。
4.根据权利要求3所述的装置,其包含耦合到所述模式辨识处理器的数据流总线,其中所述数据流总线向所述模式辨识处理器的所述解码器提供所述数据流。
5.根据权利要求4所述的装置,其中所述数据流总线与所述结果总线分离。
6.根据权利要求1所述的装置,其中所述模式辨识处理器中包括所述结果缓冲器。
7.根据权利要求1所述的装置,其中所述写入控制模块包含计数器、存储器,或其组合。
8.根据权利要求1所述的装置,其中所述写入控制模块经配置以确定所述结果缓冲器中的所述多个记录单元中是否存在任何空闲记录单元。
9.根据权利要求1所述的装置,其中所述写入控制模块经配置以用信号通知所述模式辨识处理器停止搜索数据。
10.根据权利要求1所述的装置,其中所述写入控制模块经配置以存储指示所述结果缓冲器的状态的数据。
11.根据权利要求1所述的装置,其中所述读取控制模块经配置以指示尚未从所述结果缓冲器读取所述多个记录单元中的哪些记录单元。
12.根据权利要求1所述的装置,其中所述读取控制模块包含经配置以对所述多个记录单元中的每一者的读取的数目进行计数的计数器。
13.根据权利要求3所述的装置,其中所述读取控制模块经配置以从所述处理单元接收信号,且通过致使所述结果缓冲器输出在所述多个记录单元中存储的最旧记录数据而响应于所述信号。
14.一种用于模式辨识的方法,其包含:
在模式辨识处理器的解码器处接收数据流,其中所述模式辨识处理器包含耦合到所述解码器的多个特征单元,其中所述多个特征单元中的每一者包含多个存储器单元,所述多个存储器单元各自可由耦合到所述解码器的输出的导体寻址;
根据搜索准则搜索所述数据流;以及
在根据所述搜索准则搜索所述数据流的同时,将搜索结果存储于缓冲器中。
15.根据权利要求14所述的方法,其中接收所述数据流包含经由因特网接收数据的包。
16.根据权利要求14所述的方法,其中根据搜索准则搜索所述数据流包含在相同的时间根据所述搜索准则中的每一者进行搜索。
17.根据权利要求14所述的方法,其中将搜索结果存储于缓冲器中包含:
确定所述缓冲器是否包括尚未写入或已读取的任何空闲记录单元;以及
响应于空闲记录单元可用的确定,将搜索结果存储于所述空闲记录单元中。
18.根据权利要求17所述的方法,其包含响应于无空闲记录单元可用的确定而输出指示错误条件的信号。
19.根据权利要求14所述的方法,其中所述搜索结果包含与所述搜索准则的满足相关的数据。
20.根据权利要求19所述的方法,其中存储搜索结果包含存储识别所述数据流曾满足的所述搜索准则的数据。
21.根据权利要求19所述的方法,其中存储搜索结果包含存储识别来自所述数据流的哪一数据满足所述搜索准则的数据。
22.根据权利要求21所述的方法,其中所述数据包含所述数据流中的项。
23.根据权利要求21所述的方法,其中存储识别来自所述数据流的哪一数据满足所述搜索准则的数据包含存储以下至少一者:所述数据流的项计数;和接收来自所述数据流的满足所述搜索准则的所述数据的时间周期。
24.根据权利要求19所述的方法,其中存储搜索结果包含存储指示是否曾出现错误条件的数据。
25.根据权利要求14所述的方法,其包含输出存储于所述缓冲器的记录单元中的所述搜索结果的一部分。
26.根据权利要求14所述的方法,其包含存储识别所述数据流的数据。
27.根据权利要求14所述的方法,其包含存储指示模式辨识处理器在满足所述搜索准则时的状态的数据。
28.一种模式辨识系统,其包含:
处理单元(PU);
模式辨识处理器,其包含:
多个并行有限状态机,其各自经配置以根据搜索准则搜索数据流并产生搜索结果;以及
结果缓冲器,其经配置以将来自所述模式辨识处理器的所述搜索结果传达给所述处理单元。
29.根据权利要求28所述的系统,其中所述结果缓冲器一体地形成为所述模式辨识处理器的部分。
30.根据权利要求28所述的系统,其中所述结果缓冲器是独立于所述处理单元和所述模式辨识处理器的装置。
31.根据权利要求28所述的系统,其中所述结果缓冲器与所述处理单元一体地形成。
32.根据权利要求28所述的系统,其中所述结果缓冲器包含FIFO缓冲器。
CN2009801442872A 2008-11-05 2009-10-22 具有结果缓冲器的模式辨识处理器 Active CN102203802B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/265,465 US9639493B2 (en) 2008-11-05 2008-11-05 Pattern-recognition processor with results buffer
US12/265,465 2008-11-05
PCT/US2009/061650 WO2010053715A1 (en) 2008-11-05 2009-10-22 Pattern-recognition processor with results buffer

Publications (2)

Publication Number Publication Date
CN102203802A CN102203802A (zh) 2011-09-28
CN102203802B true CN102203802B (zh) 2013-11-06

Family

ID=41693205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801442872A Active CN102203802B (zh) 2008-11-05 2009-10-22 具有结果缓冲器的模式辨识处理器

Country Status (7)

Country Link
US (1) US9639493B2 (zh)
EP (1) EP2350921B1 (zh)
JP (1) JP5753091B2 (zh)
KR (1) KR101474598B1 (zh)
CN (1) CN102203802B (zh)
TW (1) TWI436271B (zh)
WO (1) WO2010053715A1 (zh)

Families Citing this family (62)

* 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
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
US10007486B2 (en) 2008-12-01 2018-06-26 Micron Technology, Inc. Systems and methods to enable identification of different data sets
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
US8214672B2 (en) 2009-01-07 2012-07-03 Micron Technology, Inc. Method and systems for power consumption management of a pattern-recognition processor
US8281395B2 (en) * 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
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
US8601013B2 (en) 2010-06-10 2013-12-03 Micron Technology, Inc. Analyzing data using a hierarchical structure
US8766666B2 (en) 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
US9053562B1 (en) 2010-06-24 2015-06-09 Gregory S. Rabin Two dimensional to three dimensional moving image converter
EP2668574B1 (en) 2011-01-25 2021-11-24 Micron Technology, INC. Utilizing special purpose elements to implement a fsm
CN103430148B (zh) 2011-01-25 2016-09-28 美光科技公司 用于元件利用的状态分组
KR101607736B1 (ko) 2011-01-25 2016-03-30 마이크론 테크놀로지, 인크. 오토마톤의 진입 차수 및/또는 진출 차수를 제어하기 위한 양화 언롤링
EP2668575B1 (en) 2011-01-25 2021-10-20 Micron Technology, INC. Method and apparatus for compiling regular expressions
US9697174B2 (en) 2011-12-08 2017-07-04 Oracle International Corporation Efficient hardware instructions for processing bit vectors for single instruction multiple data processors
US9342314B2 (en) 2011-12-08 2016-05-17 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors
US9792117B2 (en) 2011-12-08 2017-10-17 Oracle International Corporation Loading values from a value vector into subregisters of a single instruction multiple data register
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
US9443156B2 (en) 2011-12-15 2016-09-13 Micron Technology, Inc. Methods and systems for data analysis in a state machine
US8680888B2 (en) 2011-12-15 2014-03-25 Micron Technologies, Inc. Methods and systems for routing in a state machine
US8782624B2 (en) * 2011-12-15 2014-07-15 Micron Technology, Inc. Methods and systems for detection in a state machine
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
US9235798B2 (en) 2012-07-18 2016-01-12 Micron Technology, Inc. Methods and systems for handling data received by a state machine engine
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
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
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
US9992021B1 (en) 2013-03-14 2018-06-05 GoTenna, Inc. System and method for private and point-to-point communication between computing devices
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
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
US9378232B2 (en) 2013-09-21 2016-06-28 Oracle International Corporation Framework for numa affinitized parallel query on in-memory objects within the RDBMS
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
US10430210B2 (en) 2014-12-30 2019-10-01 Micron Technology, Inc. Systems and devices for accessing a state machine
US10025822B2 (en) 2015-05-29 2018-07-17 Oracle International Corporation Optimizing execution plans for in-memory-aware joins
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
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
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
US10061714B2 (en) 2016-03-18 2018-08-28 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10402425B2 (en) 2016-03-18 2019-09-03 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
US10055358B2 (en) 2016-03-18 2018-08-21 Oracle International Corporation Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors
US10599488B2 (en) 2016-06-29 2020-03-24 Oracle International Corporation Multi-purpose events for notification and sequence control in multi-core processor systems
US10146555B2 (en) 2016-07-21 2018-12-04 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
US10380058B2 (en) 2016-09-06 2019-08-13 Oracle International Corporation Processor core to coprocessor interface with FIFO semantics
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US10783102B2 (en) 2016-10-11 2020-09-22 Oracle International Corporation Dynamically configurable high performance database-aware hash engine
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US10176114B2 (en) 2016-11-28 2019-01-08 Oracle International Corporation Row identification number generation in database direct memory access engine
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering engine
US10725947B2 (en) 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine
TWI789103B (zh) * 2021-11-08 2023-01-01 旺宏電子股份有限公司 記憶體裝置及其操作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4805093A (en) * 1986-10-14 1989-02-14 Ward Calvin B Content addressable memory
EP0343786A2 (en) * 1988-04-28 1989-11-29 International Business Machines Corporation Method and apparatus for reading and recording text in digital form
CN1879354A (zh) * 2003-11-25 2006-12-13 飞思卡尔半导体公司 使用反模式匹配的网络消息处理

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4152762A (en) * 1976-03-03 1979-05-01 Operating Systems, Inc. Associative crosspoint processor system
JPS61145798A (ja) 1984-12-20 1986-07-03 Nec Corp 記号列連想メモリ装置とその動作制御方式
JP2802064B2 (ja) * 1987-08-19 1998-09-21 松下電器産業株式会社 データベースプロセツサ
JPS6448130A (en) * 1987-08-19 1989-02-22 Matsushita Electric Ind Co Ltd Data base processor
JPH01148131A (ja) 1987-12-04 1989-06-09 Yarakuen:Kk 家庭用水耕栽培装置
JPH0276071A (ja) 1988-09-13 1990-03-15 Nec Corp データ検索回路
US6757809B1 (en) * 1989-12-16 2004-06-29 Renesas Technology Corp. Data processor having 2n bits width data bus for context switching functions
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
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
US5586266A (en) * 1993-10-15 1996-12-17 International Business Machines Corporation System and method for adaptive, active monitoring of a serial data stream having a characteristic pattern
US5572208A (en) * 1994-07-29 1996-11-05 Industrial Technology Research Institute Apparatus and method for multi-layered decoding of variable length codes
US6292911B1 (en) * 1998-12-17 2001-09-18 Cirrus Logic, Inc. Error detection scheme for a high-speed data channel
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
US6721826B2 (en) * 2001-09-25 2004-04-13 Lsi Logic Corporation Buffer partitioning for managing multiple data streams
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
JP2005044387A (ja) 2003-07-22 2005-02-17 Renesas Technology Corp Fifo型メモリ
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
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
US7512634B2 (en) 2006-06-05 2009-03-31 Tarari, Inc. Systems and methods for processing regular expressions
JP2008217638A (ja) 2007-03-07 2008-09-18 Fujitsu Ltd Fifoメモリ制御装置及びfifoメモリ制御方法
US7882202B2 (en) * 2008-04-01 2011-02-01 International Business Machines Corporation System to delegate virtual storage access method related file operations to a storage server using an in-band RPC mechanism

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4805093A (en) * 1986-10-14 1989-02-14 Ward Calvin B Content addressable memory
EP0343786A2 (en) * 1988-04-28 1989-11-29 International Business Machines Corporation Method and apparatus for reading and recording text in digital form
CN1879354A (zh) * 2003-11-25 2006-12-13 飞思卡尔半导体公司 使用反模式匹配的网络消息处理

Also Published As

Publication number Publication date
CN102203802A (zh) 2011-09-28
WO2010053715A1 (en) 2010-05-14
US20100115347A1 (en) 2010-05-06
TW201030604A (en) 2010-08-16
TWI436271B (zh) 2014-05-01
EP2350921B1 (en) 2014-04-16
KR101474598B1 (ko) 2014-12-18
EP2350921A1 (en) 2011-08-03
JP5753091B2 (ja) 2015-07-22
US9639493B2 (en) 2017-05-02
JP2012507792A (ja) 2012-03-29
KR20110088553A (ko) 2011-08-03

Similar Documents

Publication Publication Date Title
CN102203802B (zh) 具有结果缓冲器的模式辨识处理器
US10838966B2 (en) Devices, systems, and methods to synchronize simultaneous DMA parallel processing of a single data stream by multiple devices
US10152113B2 (en) Dynamic power-down of a block of a pattern-recognition processor
CN102272715B (zh) 用于传送并行型式搜索引擎的型式匹配结果的装置、系统及方法
US8719206B2 (en) Pattern-recognition processor with matching-data reporting module
US9836555B2 (en) Methods and devices for saving and/or restoring a state of a pattern-recognition processor
US20100138634A1 (en) Devices, systems, and methods to synchronize parallel processing of a single data stream
CN102272776A (zh) 用于型式辨识处理器的总线
CN102232216A (zh) 用于管理装置的字节序模式的系统及方法

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