CN102713936A - 用于模式辨识处理器的多级层次路由矩阵 - Google Patents
用于模式辨识处理器的多级层次路由矩阵 Download PDFInfo
- Publication number
- CN102713936A CN102713936A CN2010800622175A CN201080062217A CN102713936A CN 102713936 A CN102713936 A CN 102713936A CN 2010800622175 A CN2010800622175 A CN 2010800622175A CN 201080062217 A CN201080062217 A CN 201080062217A CN 102713936 A CN102713936 A CN 102713936A
- Authority
- CN
- China
- Prior art keywords
- programme
- connection
- coupled
- route
- connections
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/768—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using context analysis, e.g. recognition aided by known co-occurring patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2218/00—Aspects of pattern recognition specially adapted for signal processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Image Processing (AREA)
- Character Discrimination (AREA)
- Image Analysis (AREA)
Abstract
本发明提供用于模式辨识处理器的多级层次路由矩阵。一个此种路由矩阵可包含在所述矩阵的层级中及所述矩阵的层级之间的一个或一个以上可编程及/或不可编程连接。所述连接可将路由线耦合到所述模式辨识处理器的组件的特征单元、群组、行、块或任一其它布置。
Description
技术领域
本发明的实施例大体来说涉及模式辨识处理器,且更具体来说,在某些实施例中,涉及此些处理器的连接架构。
背景技术
在计算领域中,模式辨识任务越来越具有挑战性。计算机之间传输的数据量不断增大,且用户希望识别的模式数目日益增加。举例来说,通常通过搜索数据流中的模式(例如,特定短语或代码片段)来检测垃圾邮件或恶意软件。模式的数目随着垃圾邮件及恶意软件的变化而增加,因为可实施新模式以搜索新变体。搜索数据流以找到这些模式中的每一者可形成计算瓶颈。通常,在接收到数据流时,搜索数据流以一次一个地找到每一模式。在系统准备搜索数据流的下一部分之前的延迟随着模式数目而增加。因此,模式辨识可使数据的接收减慢。
此些模式辨识处理器可包含在处理输入时在不同状态间移动的大量有限状态机(FSM)。常规处理器的内部连接依赖于连接到触发器或其它存储器元件的物理导线。然而,此些连接可能不能够满足模式搜索处理器的性能。此外,此些连接通常不可配置为或不能够满足所期望的功能性。用硅实施模式辨识处理器中的连接的距离、速度及可配置性可能具有挑战性。
发明内容
附图说明
图1描绘搜索数据流的系统的实例;
图2描绘图1的系统中的模式辨识处理器的实例;
图3描绘图2的模式辨识处理器中的搜索项单元的实例;
图4及5描绘图3的搜索项单元搜索数据流以找到单个字符;
图6到8描绘搜索数据流以找到一词的包含数个搜索项单元的辨识模块;
图9描绘经布置以搜索数据流以并行找到两个词的辨识模块;
图10到12描绘根据规定具有同一前缀的多个词的搜索准则进行搜索的辨识模块;
图13到16描绘根据本发明的实施例的模式辨识处理器的特征单元的层次布置;
图17到20描绘根据本发明的实施例的模式辨识处理器的多级层次路由矩阵;
图21描绘根据本发明的实施例停用模式辨识处理器的特征单元的一部分;且
图22是根据本发明的实施例用于编程多级层次路由矩阵的连接的过程的流程图。
具体实施方式
图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中的不同有限状态机(FSM)中。所述有限状态机可并行运行,从而根据搜索准则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、Ogg Vorbis等,对于所述经编码版本,可得到数据流12的经解码版本,或反之亦然。
模式辨识处理器14可为与CPU 20一起集成到单个组件(例如,单个装置)中或可形成为单独组件的硬件。举例来说,模式辨识处理器14可为单独集成电路。模式辨识处理器14可称为“协处理器”或“模式辨识协处理器”。
图2描绘模式辨识处理器14的实例。模式辨识处理器14可包含辨识模块22及聚合模块24。辨识模块22可经配置以将所接收的项与搜索项进行比较,且辨识模块22与聚合模块24两者可协作以确定将项与搜索项匹配是否满足搜索准则。
辨识模块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)中的“与”函数)。逻辑积矩阵46可实施为正方形矩阵,其中输出积的数目等于来自阈值逻辑矩阵44的输入线的数目,或逻辑积矩阵46可具有数目不同于输出的输入。可将所得积值输出到逻辑和矩阵48。
逻辑和矩阵48可选择性地产生和(例如,布尔逻辑中的“或”函数)。逻辑和矩阵48也可为正方形矩阵,或逻辑和矩阵48可具有数目不同于输出的输入。由于所述输入为逻辑积,因此逻辑和矩阵48的输出可为逻辑积和(例如,布尔逻辑积和(SOP)形式)。逻辑和矩阵48的输出可由初始化路由矩阵50接收。
初始化路由矩阵50可经由聚合路由矩阵42对检测阵列34及聚合模块24的若干部分进行复位。初始化路由矩阵50也可实施为正方形矩阵,或初始化路由矩阵50可具有数目不同于输出的输入。初始化路由矩阵50可响应于来自逻辑和矩阵48的信号且重新初始化模式辨识处理器14的其它部分(例如,在满足搜索准则或经确定不可进一步满足所述搜索准则时)。
聚合模块24可包含输出缓冲器51,其接收阈值逻辑矩阵44、聚合路由矩阵42及逻辑和矩阵48的输出。聚合模块24的输出可在输出总线26上从输出缓冲器51传输到CPU 20(图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的输入的“与”门。可将所述“与”门的输出路由到检测总线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”呈现给行解码器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得到匹配为止。
模式辨识处理器14的实施例可包含特征单元30的任一布置。图13到16描绘根据本发明的实施例的特征单元30的层次布置。在一个实施例中,如图13中所描绘,层次的第一层级可包含布置成两个特征单元30(特征单元1与特征单元0)的群组94的特征单元30。每一特征单元30可接收一输入(例如,启用状态信号)且可将下一状态信号输出到另一特征单元群组。群组94中的每一特征单元30可耦合到基于每一特征单元30的输出而从群组94提供输出的输出驱动选择96。举例来说,在一个实施例中,输出驱动选择96可经配置以输出从特征单元30所接收的下一状态输出“0”信号、下一状态输出“1”信号或两个下一状态输出信号的逻辑“或”。
如图14中所示,第二层次层级可包含布置成群组94的一行98的每一特征单元群组94。每一行98可包含任一数目个特征单元30群组94。举例来说,在图14中所示的实施例中,行98可包含两个特征单元30的八个群组94,例如,群组0到群组7。
如图15中所示,层次的第三层级可包含聚集成若干块100的多个行98,其中每一块100包含一个或一个以上行98。在处理器14的一个实施例中,每一块100可包含16个行98,例如,行0到行15。接着,模式辨识处理器14可包含用于实施上文所述的经编程状态机及模式搜索的任一数目个块100。如图16中所示,在一个实施例中,模式辨识处理器14可包含512个块,例如,块0到块512。
上文所图解说明的群组94、行98及块100描述特征单元的层次布置。经编程状态机可包含任一数目个特征单元30。因此,每一群组、行或块可包含多个经编程状态机。在模式辨识处理器14的操作期间,例如在上文所述的搜索循环期间,通过从每一特征单元30输出且由每一群组94的输出驱动选择96选择的下一状态信号将经编程状态机(例如,一个或一个以上特征单元)的每一状态路由到所述经编程状态机的下一状态(称为“下一状态路由”)。
图17到21描述根据本发明的实施例提供下一状态路由、可编程性及高吞吐量的多级层次路由矩阵。如本文中所用,术语“路由矩阵”是指用于在模式辨识处理器14的组件之间路由通信的多个连接。下文所述的“路由矩阵”可在功能上不同于上文在图1到12中所述的矩阵。如下文进一步描述,路由矩阵可提供在上文所述的模式辨识处理器14的层次的每一层级处、每一层级中及每一层级之间的可编程及/或不可编程连接。所述连接可连接模式辨识处理器14的特征单元、群组、行及块之间的路由线。所述连接可包含但不限于以下类型的连接:可编程及不可编程;单向及双向;逻辑组合(“或”、“与”、“异或”等);选择器(例如,多者中的一者);及隔离器(断开到线的连接)。可编程连接可经配置以执行上文所列举的功能性中的任一者。举例来说,可编程连接可编程为单向、双向、任一逻辑组合、选择器、隔离器等。不可编程连接可执行上文所述的功能性中的任一者,但不能够编程有不同功能性。
图17到21中的连接由下文在表1中所概述的连接符号描绘:
表1:连接
图17描绘包含上文在图13中所述的特征单元30的群组94且根据本发明的实施例的层次层级。如上文所提及,每一特征单元30可接收将特征单元启用为下一状态的输入。还如上文所提及,基于对照编程于特征单元30中的搜索准则所执行的模式匹配,特征单元30可产生启用下一活动状态(下一状态信号)的输出。
特征单元30的输入及输出信号的路由由连接确定。群组94的特征单元30可通过局部路由线102(局部路由0及局部路由1)互连。群组94的特征单元30的输出通过输出连接104耦合到局部路由线102及输出驱动选择96。举例来说,特征单元0通过第一输出连接104A耦合到局部路由线0且特征单元1通过第二输出连接104B耦合到局部路由线1。如图17中所描绘,在一个实施例中,输出连接为不可编程“第1层级”连接。在此实施例中,连接104为不可移除的且为不可配置的。在其它实施例中,输出连接104可为可编程的。
输出驱动选择96可经编程以驱动来自特征单元30的所接收输出的任一数目或类型的信号。如上文所提及,在一个实施例中,输出驱动选择96可经配置以输出以下三个可能逻辑输出中的一者:“下一状态输出0”;“下一状态输出1”;或两个下一状态输出信号的逻辑“或”。在其它实施例中,输出驱动选择96可经配置以输出其它逻辑组合,例如“与”、“非或”及/或“异或”。
局部路由线102可通过输入连接106耦合到特征单元30的输入105(其可表示一个或一个以上输入信号)。举例来说,特征单元0可分别通过输入连接106A及106B耦合到局部路由线0及1。类似地,特征单元1可分别通过输入连接106C及106D耦合到局部路由线0及局部路由线1。如图17中所描绘,输入连接106可为可编程“第1层级”连接。在此实施例中,输入连接106可经配置以提供连接输入105中的任一者的逻辑“或”。
图18描绘具有如上文在图14中所述的群组94的行98且根据本发明的实施例的层次层级。如上文所提及,每一行98可包含任一数目个特征单元30群组94,例如,图18中所示的群组0到群组7。行98的群组可通过行路由线108互连。在一个实施例中,可为块100的每一行提供行路由线108。因此,在每块100具有16个行98的实施例中,可提供16个行路由线,例如,行路由线0到行路由线15。
来自每一群组94的输出驱动选择96的输出可通过输出连接110耦合到每一行路由线108。在一个实施例中,所述输出连接可为可编程“第2层级”连接。如图18中所示,举例来说,群组0可分别通过输出连接110A及110B耦合到行路由线0及15。群组7可分别通过输出连接110C及110D耦合到行路由线0及15。所有其它行路由线(未展示)可通过输出连接110耦合到群组0到群组7的输出驱动选择。输出连接110可经配置以使得群组94的输出驱动选择96能够驱动或不驱动特定行路由线108。
另外,行路由线108可通过输入连接112耦合到每一特征单元30的输入105。在一个实施例中,输入连接112可为可编程“第2层级”连接。举例来说,行路由线108可通过输入连接112A及112B耦合到群组0的特征单元0的输入,且行路由线108可通过输入连接112C及112D耦合到群组0的特征单元1的输入。类似地,还如图18中所示,行路由线108可通过输入连接112E及112F耦合到群组7的特征单元0的输入,且行路由线108可通过输入连接112G及112H耦合到群组7的特征单元1。其它行路由线(未展示)可耦合到行98的每一群组94的每一特征单元30的输入。在此实施例中,输入连接112可编程为到特征单元30的任何所连接输入的逻辑“或”。在其它实施例中,所述连接可为不可编程及/或双向连接。
接下来,图19描绘具有如上文在图15中所述的多个行98且根据本发明的实施例的块100的层次层级。如上文所述,块100可包含任一数目个行98,例如,行0到行15。块100的行98可通过块内路由线114连接。块内路由线114可通过双向连接116耦合到行路由线112。在一个实施例中,所述双向连接可为可编程“第3层级”连接。举例来说,块内线路由线0可通过双向连接116A耦合到行0的行路由线0且通过双向连接116B耦合到行0的行路由线15。块内线路由线0可通过双向连接116C耦合到行15的行路由线0且通过双向连接116D耦合到行15的行路由线15。类似地,块内路由线23可通过双向连接116E耦合到行0的行路由线0且通过双向连接116F耦合到行0的行路由线15。此外,还如图19中所示,块内路由线23可通过双向连接116G耦合到行15的行路由线0且通过双向连接116H耦合到行15的行路由线15。其它块内线(未展示)可通过双向连接116耦合到每一行98的每一行路由线116。
如上文所述,双向连接116可为可编程的。因此,双向连接116可经编程以使得块内路由线114中的一者或一者以上能够驱动相应行路由线112或使得一个或一个以上行路由线112能够驱动相应块内路由线114。可个别地编程每一双向连接116,从而使得能够在逐线的基础上配置行路由线112与块内路由线114之间的连接。在其它实施例中,所述连接可为不可编程及/或单向连接。
图20描绘根据本发明的实施例的具有块100的路由矩阵的顶部层次层级117。在一个实施例中,如图20中所示,顶部层级117可包含512个块100,例如块0到块511。块100可通过顶部层级路由线118互连。顶部层级路由线118可通过双向连接120连接到块内路由线114。因此,如图20中所示,顶部层级路由线0可分别通过双向连接120A及120B耦合到块0的块内路由线0及块内路由线23。类似地,顶部层级路由线0可分别通过双向连接120C及120D耦合到块511的块内线0及块内线23。如图20中所示,顶部层级路由线23可分别通过双向连接120E及120F耦合到块0的块内路由线0及块内路由线23。此外,顶部层级路由线23可分别通过双向连接120G及120H耦合到块511的块内线0及块内线23。所有其它顶部层级路由线(未展示)可通过双向连接120耦合到块100的块内线114。
如图20中所示,双向连接120可为可编程“第4层级连接”。双向连接可经编程以使得一个或一个以上块内路由线114能够驱动相应顶部层级路由线118或使得一个或一个以上顶部层级路由线118能够驱动相应块内路由线114。因此,连接120可在逐线的基础上编程及配置。在其它实施例中,所述连接可为不可编程及/或单向连接。
有利地,上文所述的多级层次路由矩阵可提供装置的可编程性的规则性、用于改进生产及制造合格率的冗余实施方案、不同应用的可变性以及逻辑改变的较容易形象化及实施方案。
如上文所提及,所述连接可为能够“断开”线使得不在线上路由任何信号从而使得能够停用模式辨识处理器14的冗余区段的隔离器。图21描绘根据本发明的实施例的模式辨识处理器14的一个或一个以上特征单元30的隔离。举例来说,模式辨识处理器14可包含特征单元30块130,其提供比模式辨识处理器14所使用的容量更多的容量。也就是说,在制造期间,为了增加合格率,模式辨识处理器14可制造有比针对处理器14的功能所规定的容量过量的存储器容量(过量的特征单元30)。在处理器14的制造及测试期间,可通过移除可用于处理器14所使用的经编程状态机的特征单元来“停用”过量的特征单元30。一些实施例可并不使用所有特征单元30块。在此些实施例中,可停用不使用的块。经停用的块可不被“激活”及/或“通电”且在刷新循环期间可不被刷新。
块130可通过顶部层级路由线与块内路由线之间的连接132耦合到模式辨识处理器14的其它部分。在此实施例中,连接132可为可编程“第4层级连接”,其可编程到任何所期望的功能性。因此,如果块130提供过量的容量,那么连接132可经编程以将块130与路由线的剩余部分隔离。因此,可编程连接132可“断开”顶部层级路由线118与块内路由线114之间的连接。块130可称为“经停用”。另外,可(例如)通过在块130中设定适当编程位来将未使用的块130“断电”。
相比之下,用以提供用于模式辨识处理器14的经编程状态机的存储器容量的其它块可经由顶部层级路由线118及块内路由线114进行存取。举例来说,如图21中所示,块134也通过连接136连接到与经停用块132相同的顶部层级路由线118。如图21中所示,连接136可为可编程第4层级连接。然而,连接136可经编程以(例如)通过允许顶部层级路由线驱动块内路由线(或反之亦然)而使得能够存取由块134提供的存储器容量。在其它实施例中,可(例如)通过编程块内路由线114与行路由线112之间的连接138而在行层级处及/或(例如)通过编程行路由线112与局部路由线102之间的连接140而在群组层级处停用特征单元30。
此外,在其它实施例中,上文所述的多级层次路由矩阵可基于模式辨识处理器14中所实施的模式匹配功能性而在层级、连接等方面变化。举例来说,其它实施例可在层次中包含不同数目个层级,及/或在层级、群组、行及/或块之间包含不同数目个连接。另外,其它实施例可包含可用于可编程连接的不同可编程功能、层次中的不同类型的连接及不同点、按程序将连接线断成多个线的能力及在层次中的不同层级处添加及/或删除不同功能性的能力。
图22描绘根据本发明的实施例的上文所述多级层次路由矩阵的配置的过程142。在模式辨识处理器14的配置期间,可以任一次序编程层次的每一层级处及每一层级之间的连接。此外,可基于模式辨识处理器14中所期望的特定模式匹配实施方案而手动地或自动地编程此些连接。还应了解,矩阵的层级处或层级之间的连接的编程可取决于编程到矩阵的其它层级中的功能性。首先,可编程第一层次层级处的连接(框144)。举例来说,此可包含编程特征单元30的输出与局部路由线102及编程特征单元30的输入与局部路由线102之间的连接,例如编程上文在图17中所述的连接106。在一些实施例中,来自特征单元30的输入及/或输出连接可为不可编程连接且可不被编程。举例来说,还如上文在图17中所述,在一个实施例中,输出连接104可为不可编程连接。
接下来,可编程所述层次的第二层级处的连接(框146)。在一个实施例中,此编程可包含编程行路由线108与群组94之间的输入连接,如上文在图18中所述。举例来说,到特征单元30的输入与行路由线108之间的连接112可编程为到特征单元30的输入105的逻辑“或”(或其它函数)。类似地,输出连接110可经编程以提供行路由线与群组94的输出驱动选择96之间的所期望的功能性。
另外,可编程层次路由矩阵的第三层级处的连接(框148)。如上文在图19中所论述,在一个实施例中,可编程行路由线112与块内路由线114之间的连接116。举例来说,连接116可经编程以提供块内路由线114与行路由线112之间的所期望的功能性以隔离(停用)某些特征单元或提供任一其它可编程功能。
接下来,可编程第四层次层级处的连接(框150)。在上文图20中所描绘的实施例中,此编程可包含编程块内路由线114与顶部层级路由线118之间的连接。举例来说,上文在图20中所示的连接120可经编程以提供顶部层级路由线118与块内路由线114之间的所期望的功能性。还如上文在图21中所论述,在一些实施例中,此编程可包含停用模式辨识处理器14的冗余容量(例如,特征单元)。如图22中所示,对连接的此编程可继续直到路由矩阵的第n层级(框152)。通过编程路由矩阵的连接,模式辨识处理器14可经配置以提供特征单元(及状态机)之间的所期望的逻辑及下一状态路由。如上文所提及,对连接的编程提供对模式辨识处理器14的配置的了解,而又提供不同实施方案的路由灵活性及可变性。
Claims (31)
1.一种装置,其包括:
模式辨识处理器,其包括:
多个逻辑群组,其中每一群组包括一个或一个以上特征单元,其中每一群组的所述一个或一个以上特征单元通过第一连接耦合到第一路由线;
多个逻辑行,其中每一行包括所述多个群组中的一者或一者以上,其中每一行的所述一个或一个以上群组通过第二连接耦合到第二路由线;及
多个逻辑块,其中每一块包括所述多个行中的一者或一者以上,其中每一块的所述一个或一个以上行通过第三连接耦合到第三路由线;
其中所述多个块通过第四连接耦合到第四路由线。
2.根据权利要求1所述的装置,其中所述多个群组中的每一群组进一步包括耦合到相应群组的所述一个或一个以上特征单元的输出驱动选择器。
3.根据权利要求2所述的装置,其中所述输出驱动选择器经配置以基于所述相应群组的所述一个或一个以上特征单元的输出而提供输出。
4.根据权利要求2所述的装置,其中所述输出驱动选择器经配置以输出所述相应群组的所述一个或一个以上特征单元中的一者的输出或者所述群组的所述一个或一个以上特征单元的所述输出的逻辑组合。
5.根据权利要求2所述的装置,其中每一群组的所述一个或一个以上特征单元中的每一者通过不可编程连接耦合到相应输出驱动选择器。
6.根据权利要求1所述的装置,其中所述多个群组中的每一者包括两个特征单元。
7.根据权利要求1所述的装置,其中所述多个特征单元中的每一者经配置以接收一个或一个以上输入并输出下一状态信号。
8.根据权利要求7所述的装置,其中所述第一连接包括第一可编程连接。
9.根据权利要求8所述的装置,其中所述第一可编程连接经配置以提供所述特征单元中的相应一者的所述一个或一个以上输入的逻辑组合。
10.根据权利要求2所述的装置,其中每一群组的所述输出驱动选择器通过所述第二连接中的相应者耦合到所述第二路由线,其中所述第二连接中的所述相应者包括可编程连接。
11.根据权利要求1所述的装置,其中每一群组的所述一个或一个以上特征单元各自通过可编程连接耦合到所述第二路由线。
12.根据权利要求1所述的装置,其中每一块的所述一个或一个以上行各自通过可编程连接耦合到所述第三路由线。
13.根据权利要求1所述的装置,其中所述第四连接为可编程连接。
14.一种装置,其包括:
模式辨识处理器,其包括:
层次路由矩阵,所述矩阵包括:
第一层级,其包括一个或一个以上特征单元,其中所述特征单元耦合到一个或一个以上第一可编程连接;
第二层级,其包括一个或一个以上特征单元群组,其中所述群组耦合到一个或一个以上第二可编程连接;
第三层级,其包括一个或一个以上群组行,其中所述行耦合到一个或一个以上第三可编程连接;及
第四层级,其包括一个或一个以上行块,其中所述行耦合到一个或一个以上第四可编程连接。
15.根据权利要求14所述的装置,其中所述层次路由矩阵经配置以提供所述一个或一个以上特征单元之间的下一状态路由。
16.根据权利要求14所述的装置,其中每一群组的所述一个或一个以上特征单元耦合到一个或一个以上相应不可编程连接。
17.根据权利要求16所述的装置,其中所述一个或一个以上群组中的每一者包括通过所述相应一个或一个以上不可编程连接耦合到所述一个或一个以上特征单元的输出。
18.根据权利要求16所述的装置,其中所述一个或一个以上第二可编程连接中的相应一者经配置以使得所述群组中的相应一者的输出能够驱动或不驱动行路由线。
19.根据权利要求16所述的装置,其中所述一个或一个以上第三可编程连接中的相应一者经配置以使得行路由线能够驱动块内路由线或使得块内路由线能够驱动行路由线。
20.根据权利要求16所述的装置,其中所述第四可编程连接中的相应一者经配置以使得块内路由线能够驱动顶部层级路由线或使得顶部层级路由线能够驱动块内路由线。
21.一种模式辨识处理器,其包括:
多个路由线,其中所述多个路由线经配置以在所述处理器的状态机之间路由;
多个可编程连接,其耦合到多个路由线中的第一一者或一者以上;及
多个不可编程连接,其耦合到所述多个路由线中的第二一者或一者以上。
22.根据权利要求21所述的模式辨识处理器,其中所述多个可编程连接中的一者或一者以上包括单向或双向连接。
23.根据权利要求21所述的模式辨识处理器,其中所述多个可编程连接中的一者或一者以上经配置以提供单向或双向连接。
24.根据权利要求21所述的模式辨识处理器,其中所述多个可编程连接中的一者或一者以上经配置以提供逻辑“或”、逻辑“与”或逻辑“异或”。
25.根据权利要求21所述的模式辨识处理器,其中所述多个可编程连接中的一者或一者以上经配置以提供选择器。
26.根据权利要求21所述的模式辨识处理器,其中所述多个可编程连接中的一者或一者以上经配置以提供隔离器。
27.一种方法,其包括:
编程模式辨识处理器的多个路由连接中的一个或一个以上第一可编程连接,其中所述第一可编程连接耦合到包括一个或一个以上特征单元的第一层级;及
编程所述模式辨识处理器的所述多个路由连接中的一个或一个以上第二可编程连接,其中所述第二可编程连接耦合到包括所述一个或一个以上特征单元的一个或一个以上群组的第二层级。
28.根据权利要求27所述的方法,其包括编程所述模式辨识处理器的所述多个路由连接中的一个或一个以上第三可编程连接,其中所述第三可编程连接耦合到包括所述一个或一个以上群组的一个或一个以上行的第三层级。
29.根据权利要求27所述的方法,其包括编程所述模式辨识处理器的所述多个路由连接中的一个或一个以上第四可编程连接,其中所述第四可编程连接耦合到包括所述一个或一个以上行的一个或一个以上块的第四层级。
30.根据权利要求29所述的方法,其包括编程所述第一可编程连接、第二可编程连接、第三可编程连接或第四可编程连接或其任一组合以停用所述模式辨识处理器的一个或一个以上特征单元。
31.一种系统,其包括:
路由矩阵,其用于模式辨识处理器,所述矩阵包括:
多个可编程连接,其在所述模式辨识处理器的两个或两个以上组件之间;及
多个不可编程连接,其在所述模式辨识处理器的两个或两个以上组件之间;
其中组件包括特征单元、特征单元的逻辑布置及/或其任一组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710188802.3A CN106919959B (zh) | 2009-12-15 | 2010-12-07 | 用于模式辨识处理器的多级层次路由矩阵 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/638,759 US9323994B2 (en) | 2009-12-15 | 2009-12-15 | Multi-level hierarchical routing matrices for pattern-recognition processors |
US12/638,759 | 2009-12-15 | ||
PCT/US2010/059310 WO2011081799A2 (en) | 2009-12-15 | 2010-12-07 | Multi-level hierarchical routing matrices for pattern-recognition processors |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710188802.3A Division CN106919959B (zh) | 2009-12-15 | 2010-12-07 | 用于模式辨识处理器的多级层次路由矩阵 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102713936A true CN102713936A (zh) | 2012-10-03 |
Family
ID=44070678
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800622175A Pending CN102713936A (zh) | 2009-12-15 | 2010-12-07 | 用于模式辨识处理器的多级层次路由矩阵 |
CN201710188802.3A Active CN106919959B (zh) | 2009-12-15 | 2010-12-07 | 用于模式辨识处理器的多级层次路由矩阵 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710188802.3A Active CN106919959B (zh) | 2009-12-15 | 2010-12-07 | 用于模式辨识处理器的多级层次路由矩阵 |
Country Status (7)
Country | Link |
---|---|
US (5) | US9323994B2 (zh) |
EP (1) | EP2513839B1 (zh) |
JP (1) | JP5753190B2 (zh) |
KR (1) | KR101960101B1 (zh) |
CN (2) | CN102713936A (zh) |
TW (1) | TWI479342B (zh) |
WO (1) | WO2011081799A2 (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
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 |
KR101607736B1 (ko) | 2011-01-25 | 2016-03-30 | 마이크론 테크놀로지, 인크. | 오토마톤의 진입 차수 및/또는 진출 차수를 제어하기 위한 양화 언롤링 |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US8788991B2 (en) | 2011-01-25 | 2014-07-22 | Micron Technology, Inc. | State grouping for element utilization |
JP5763783B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 正規表現をコンパイルするための方法および装置 |
US8782624B2 (en) | 2011-12-15 | 2014-07-15 | Micron Technology, Inc. | Methods and systems for detection 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 |
US8593175B2 (en) * | 2011-12-15 | 2013-11-26 | Micron Technology, Inc. | Boolean logic in a state machine lattice |
US8680888B2 (en) | 2011-12-15 | 2014-03-25 | Micron Technologies, Inc. | Methods and systems for routing in a state machine |
US8648621B2 (en) | 2011-12-15 | 2014-02-11 | Micron Technology, Inc. | Counter operation in a state machine lattice |
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 |
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 |
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 |
US9501131B2 (en) | 2012-08-31 | 2016-11-22 | Micron Technology, Inc. | Methods and systems for power management in a pattern recognition processing system |
US9075428B2 (en) | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for state machine engines |
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 |
TWI509441B (zh) * | 2014-12-16 | 2015-11-21 | Can flexibly set the data width of the multi-character string alignment device | |
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 |
US11366675B2 (en) | 2014-12-30 | 2022-06-21 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
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 |
US10146555B2 (en) | 2016-07-21 | 2018-12-04 | Micron Technology, Inc. | Adaptive routing to avoid non-repairable memory and logic defects on automata processor |
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 |
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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1559072A (zh) * | 2001-09-30 | 2004-12-29 | ÷ķ�����������ι�˾ | 逆向搜索系统及方法 |
US20070127482A1 (en) * | 2005-02-12 | 2007-06-07 | Curtis L. Harris | General Purpose Set Theoretic Processor |
US20080265938A1 (en) * | 1993-08-03 | 2008-10-30 | Ting Benjamin S | Architecture and interconnect scheme for programmable logic circuits |
Family Cites Families (178)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL38603A (en) | 1972-01-21 | 1975-10-15 | Bar Lev H | Automatic pattern recognition method and apparatus particularly for optically recognizing alphanumeric characters |
JPS4891935A (zh) | 1972-03-08 | 1973-11-29 | ||
US4011547A (en) | 1972-07-17 | 1977-03-08 | International Business Machines Corporation | Data processor for pattern recognition and the like |
GB1518093A (en) | 1974-10-04 | 1978-07-19 | Mullard Ltd | Mark detection apparatus |
JPS51112236A (en) | 1975-03-28 | 1976-10-04 | Hitachi Ltd | Shape position recognizer unit |
JPS5313840A (en) | 1976-07-23 | 1978-02-07 | Hitachi Ltd | Analogy calculator |
US4204193A (en) | 1978-11-03 | 1980-05-20 | International Business Machines Corporation | Adaptive alignment for pattern recognition system |
US4414685A (en) | 1979-09-10 | 1983-11-08 | Sternberg Stanley R | Method and apparatus for pattern recognition and detection |
US4748674A (en) | 1986-10-07 | 1988-05-31 | The Regents Of The University Of Calif. | Pattern learning and recognition device |
US5014327A (en) | 1987-06-15 | 1991-05-07 | Digital Equipment Corporation | Parallel associative memory having improved selection and decision mechanisms for recognizing and sorting relevant patterns |
US5216748A (en) | 1988-11-30 | 1993-06-01 | Bull, S.A. | Integrated dynamic programming circuit |
US6253307B1 (en) | 1989-05-04 | 2001-06-26 | Texas Instruments Incorporated | Data processing device with mask and status bits for selecting a set of status conditions |
JP2833062B2 (ja) | 1989-10-30 | 1998-12-09 | 株式会社日立製作所 | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 |
US5028821A (en) | 1990-03-01 | 1991-07-02 | Plus Logic, Inc. | Programmable logic device with programmable inverters at input/output pads |
US5377129A (en) | 1990-07-12 | 1994-12-27 | Massachusetts Institute Of Technology | Particle interaction processing system |
DE69029390T2 (de) | 1990-09-15 | 1997-06-12 | Ibm | Programmierbare Schaltung für eine neurale Logik |
US5287523A (en) | 1990-10-09 | 1994-02-15 | Motorola, Inc. | Method for servicing a peripheral interrupt request in a microcontroller |
AU8966391A (en) | 1990-12-24 | 1992-06-25 | Ball Corporation | System for analysis of embedded computer systems |
US6400996B1 (en) | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
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 |
US5291482A (en) | 1992-07-24 | 1994-03-01 | At&T Bell Laboratories | High bandwidth packet switch |
US5357512A (en) | 1992-12-30 | 1994-10-18 | Intel Corporation | Conditional carry scheduler for round robin scheduling |
US5825921A (en) | 1993-03-19 | 1998-10-20 | Intel Corporation | Memory transfer apparatus and method useful within a pattern recognition system |
US5459798A (en) | 1993-03-19 | 1995-10-17 | Intel Corporation | System and method of pattern recognition employing a multiprocessing pipelined apparatus with private pattern memory |
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 |
CA2145361C (en) | 1994-03-24 | 1999-09-07 | Martin William Sotheran | Buffer manager |
US20050251638A1 (en) | 1994-08-19 | 2005-11-10 | Frederic Boutaud | Devices, systems and methods for conditional instructions |
JP3345515B2 (ja) | 1994-08-31 | 2002-11-18 | アイワ株式会社 | ピークシフト補正回路およびそれを使用した磁気記録媒体再生装置 |
US5615237A (en) | 1994-09-16 | 1997-03-25 | Transwitch Corp. | Telecommunications framer utilizing state machine |
JPH0887462A (ja) | 1994-09-20 | 1996-04-02 | Fujitsu Ltd | ステートマシン及び通信制御方式 |
US5790531A (en) | 1994-12-23 | 1998-08-04 | Applied Digital Access, Inc. | Method and apparatus for determining the origin of a remote alarm indication signal |
US6279128B1 (en) | 1994-12-29 | 2001-08-21 | International Business Machines Corporation | Autonomous system for recognition of patterns formed by stored data during computer memory scrubbing |
US5794062A (en) | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
US5659551A (en) | 1995-05-31 | 1997-08-19 | International Business Machines Corporation | Programmable computer system element with built-in self test method and apparatus for repair during power-on |
US5818254A (en) * | 1995-06-02 | 1998-10-06 | Advanced Micro Devices, Inc. | Multi-tiered hierarchical high speed switch matrix structure for very high-density complex programmable logic devices |
US5723984A (en) | 1996-06-07 | 1998-03-03 | Advanced Micro Devices, Inc. | Field programmable gate array (FPGA) with interconnect encoding |
US5680640A (en) | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
US5754878A (en) | 1996-03-18 | 1998-05-19 | Advanced Micro Devices, Inc. | CPU with DSP function preprocessor having pattern recognition detector that uses table for translating instruction sequences intended to perform DSP function into DSP macros |
JPH10111862A (ja) | 1996-08-13 | 1998-04-28 | Fujitsu Ltd | 再帰型ニューラルネットワークに基づく時系列解析装置および方法 |
JPH1069459A (ja) | 1996-08-29 | 1998-03-10 | Hitachi Ltd | シリアルインタフェース制御装置およびその制御方法 |
US6300794B1 (en) * | 1996-10-10 | 2001-10-09 | Altera Corporation | Programmable logic device with hierarchical interconnection resources |
US6034963A (en) | 1996-10-31 | 2000-03-07 | Iready Corporation | Multiple network protocol encoder/decoder and data processor |
JP2940496B2 (ja) | 1996-11-05 | 1999-08-25 | 日本電気株式会社 | パタンマッチング符号化装置及び方法 |
US6317427B1 (en) | 1997-04-24 | 2001-11-13 | Cabletron Systems, Inc. | Method and apparatus for adaptive port buffering |
US6011407A (en) | 1997-06-13 | 2000-01-04 | Xilinx, Inc. | Field programmable gate array with dedicated computer bus interface and method for configuring both |
US6362868B1 (en) | 1997-07-15 | 2002-03-26 | Silverbrook Research Pty Ltd. | Print media roll and ink replaceable cartridge |
US6097212A (en) | 1997-10-09 | 2000-08-01 | Lattice Semiconductor Corporation | Variable grain architecture for FPGA integrated circuits |
US6041405A (en) | 1997-12-18 | 2000-03-21 | Advanced Micro Devices, Inc. | Instruction length prediction using an instruction length pattern detector |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6219776B1 (en) | 1998-03-10 | 2001-04-17 | Billions Of Operations Per Second | Merged array controller and processing element |
EP0943995A3 (en) | 1998-03-20 | 2000-12-06 | Texas Instruments Incorporated | Processor having real-time external instruction insertion for debug functions without a debug monitor |
US6151644A (en) | 1998-04-17 | 2000-11-21 | I-Cube, Inc. | Dynamically configurable buffer for a computer network |
US6052766A (en) | 1998-07-07 | 2000-04-18 | Lucent Technologies Inc. | Pointer register indirectly addressing a second register in the processor core of a digital processor |
US9195784B2 (en) | 1998-08-31 | 2015-11-24 | Cadence Design Systems, Inc. | Common shared memory in a verification system |
US7430171B2 (en) | 1998-11-19 | 2008-09-30 | Broadcom Corporation | Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost |
US7899052B1 (en) | 1999-01-27 | 2011-03-01 | Broadcom Corporation | Memory structure for resolving addresses in a packet-based network switch |
US6412057B1 (en) | 1999-02-08 | 2002-06-25 | Kabushiki Kaisha Toshiba | Microprocessor with virtual-to-physical address translation using flags |
US6636483B1 (en) | 1999-02-25 | 2003-10-21 | Fairchild Semiconductor Corporation | Network switch with zero latency flow control |
US6317849B1 (en) | 1999-04-28 | 2001-11-13 | Intel Corporation | Method and apparatus for controlling available capabilities of a device |
JP2000347708A (ja) | 1999-06-02 | 2000-12-15 | Nippon Telegr & Teleph Corp <Ntt> | ニューラルネットよる動的システムの制御方法及び装置及びニューラルネットよる動的システムの制御プログラムを格納した記憶媒体 |
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 |
WO2001038978A1 (en) | 1999-11-24 | 2001-05-31 | Z-Force Corporation | Configurable state machine driver and methods of use |
EP1107107A1 (en) | 1999-12-10 | 2001-06-13 | Koninklijke Philips Electronics N.V. | Parallel data processing and shuffling |
EP1109118A1 (en) * | 1999-12-16 | 2001-06-20 | Robert S. Lenzie | Circuit configuration |
US6640262B1 (en) | 1999-12-20 | 2003-10-28 | 3Com Corporation | Method and apparatus for automatically configuring a configurable integrated circuit |
US6614703B2 (en) | 2000-01-13 | 2003-09-02 | Texas Instruments Incorporated | Method and system for configuring integrated systems on a chip |
US6625740B1 (en) | 2000-01-13 | 2003-09-23 | Cirrus Logic, Inc. | Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions |
US7080359B2 (en) | 2002-01-16 | 2006-07-18 | International Business Machines Corporation | Stack unique signatures for program procedures and methods |
US6240003B1 (en) | 2000-05-01 | 2001-05-29 | Micron Technology, Inc. | DRAM content addressable memory using part of the content as an address |
US6977897B1 (en) | 2000-05-08 | 2005-12-20 | Crossroads Systems, Inc. | System and method for jitter compensation in data transfers |
US6476636B1 (en) | 2000-09-02 | 2002-11-05 | Actel Corporation | Tileable field-programmable gate array architecture |
US6384627B1 (en) * | 2001-02-16 | 2002-05-07 | Xilinx, Inc. | Logic block used as dynamically configurable logic function |
WO2003039001A1 (en) | 2001-10-29 | 2003-05-08 | Leopard Logic, Inc. | Programmable interface for field programmable gate array cores |
US7333580B2 (en) | 2002-01-28 | 2008-02-19 | Broadcom Corporation | Pipelined parallel processing of feedback loops in a digital circuit |
US6925510B2 (en) | 2002-02-22 | 2005-08-02 | Winbond Electronics, Corp. | Peripheral or memory device having a combined ISA bus and LPC bus |
US6650142B1 (en) * | 2002-08-13 | 2003-11-18 | Lattice Semiconductor Corporation | Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use |
US7146643B2 (en) | 2002-10-29 | 2006-12-05 | Lockheed Martin Corporation | Intrusion detection accelerator |
US7349416B2 (en) | 2002-11-26 | 2008-03-25 | Cisco Technology, Inc. | Apparatus and method for distributing buffer status information in a switching fabric |
US7386611B2 (en) * | 2002-12-10 | 2008-06-10 | International Business Machines Corporation | Apparatus and methods for co-location and offloading of web site traffic based on traffic pattern recognition |
US7292572B2 (en) | 2002-12-11 | 2007-11-06 | Lsi Corporation | Multi-level register bank based configurable ethernet frame parser |
US7089352B2 (en) | 2002-12-23 | 2006-08-08 | Micron Technology, Inc. | CAM modified to be used for statistic calculation in network switches and routers |
US6800884B1 (en) * | 2002-12-30 | 2004-10-05 | Actel Corporation | Inter-tile buffer system for a field programmable gate array |
US6944710B2 (en) | 2002-12-30 | 2005-09-13 | Micron Technology, Inc. | Multiple category CAM |
US6880146B2 (en) | 2003-01-31 | 2005-04-12 | Hewlett-Packard Development Company, L.P. | Molecular-wire-based restorative multiplexer, and method for constructing a multiplexer based on a configurable, molecular-junction-nanowire crossbar |
US7305047B1 (en) | 2003-03-12 | 2007-12-04 | Lattice Semiconductor Corporation | Automatic lane assignment for a receiver |
US7366352B2 (en) | 2003-03-20 | 2008-04-29 | International Business Machines Corporation | Method and apparatus for performing fast closest match in pattern recognition |
CA2526467C (en) | 2003-05-20 | 2015-03-03 | Kagutech Ltd. | Digital backplane recursive feedback control |
US7010639B2 (en) | 2003-06-12 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Inter integrated circuit bus router for preventing communication to an unauthorized port |
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 |
DE102004045527B4 (de) | 2003-10-08 | 2009-12-03 | Siemens Ag | Konfigurierbare Logikschaltungsanordnung |
US7860915B2 (en) | 2003-12-29 | 2010-12-28 | Xilinx, Inc. | Digital signal processing circuit having a pattern circuit for determining termination conditions |
US7849119B2 (en) | 2003-12-29 | 2010-12-07 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit |
US7243165B2 (en) | 2004-01-14 | 2007-07-10 | International Business Machines Corporation | Parallel pattern detection engine |
US7487542B2 (en) | 2004-01-14 | 2009-02-03 | International Business Machines Corporation | Intrusion detection using a network processor and a parallel pattern detection engine |
JP4546775B2 (ja) | 2004-06-30 | 2010-09-15 | 富士通株式会社 | 時分割多重処理可能なリコンフィギュラブル回路 |
GB0415850D0 (en) | 2004-07-15 | 2004-08-18 | Imagination Tech Ltd | Memory management system |
US7716455B2 (en) | 2004-12-03 | 2010-05-11 | Stmicroelectronics, Inc. | Processor with automatic scheduling of operations |
US7176717B2 (en) | 2005-01-14 | 2007-02-13 | Velogix, Inc. | Programmable logic and routing blocks with dedicated lines |
US7358761B1 (en) | 2005-01-21 | 2008-04-15 | Csitch Corporation | Versatile multiplexer-structures in programmable logic using serial chaining and novel selection schemes |
US7499464B2 (en) | 2005-04-06 | 2009-03-03 | Robert Ayrapetian | Buffered crossbar switch with a linear buffer to port relationship that supports cells and packets of variable size |
US7672529B2 (en) | 2005-05-10 | 2010-03-02 | Intel Corporation | Techniques to detect Gaussian noise |
US7804719B1 (en) | 2005-06-14 | 2010-09-28 | Xilinx, Inc. | Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode |
US7276934B1 (en) | 2005-06-14 | 2007-10-02 | Xilinx, Inc. | Integrated circuit with programmable routing structure including diagonal interconnect lines |
US20080126690A1 (en) | 2006-02-09 | 2008-05-29 | Rajan Suresh N | Memory module with memory stack |
US7376782B2 (en) | 2005-06-29 | 2008-05-20 | Intel Corporation | Index/data register pair for indirect register access |
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 |
US7360063B2 (en) | 2006-03-02 | 2008-04-15 | International Business Machines Corporation | Method for SIMD-oriented management of register maps for map-based indirect register-file access |
US7512634B2 (en) | 2006-06-05 | 2009-03-31 | Tarari, Inc. | Systems and methods for processing regular expressions |
US7725510B2 (en) | 2006-08-01 | 2010-05-25 | Alcatel-Lucent Usa Inc. | Method and system for multi-character multi-pattern pattern matching |
JP5183049B2 (ja) | 2006-09-20 | 2013-04-17 | 高砂香料工業株式会社 | 染毛剤用安定化剤 |
US8065249B1 (en) | 2006-10-13 | 2011-11-22 | Harris Curtis L | GPSTP with enhanced aggregation functionality |
US7774286B1 (en) | 2006-10-24 | 2010-08-10 | Harris Curtis L | GPSTP with multiple thread functionality |
US7890923B2 (en) | 2006-12-01 | 2011-02-15 | International Business Machines Corporation | Configurable pattern detection method and apparatus |
US7899976B2 (en) | 2006-12-08 | 2011-03-01 | Pandya Ashish A | FSA extension architecture for programmable intelligent search memory |
KR100866604B1 (ko) | 2007-01-23 | 2008-11-03 | 삼성전자주식회사 | 전원제어 장치 및 전원제어 방법 |
US7797521B2 (en) | 2007-04-12 | 2010-09-14 | International Business Machines Corporation | Method, system, and computer program product for path-correlated indirect address predictions |
KR20080097573A (ko) | 2007-05-02 | 2008-11-06 | 삼성전자주식회사 | 가상 메모리 접근 방법 |
US20080320053A1 (en) | 2007-06-21 | 2008-12-25 | Michio Iijima | Data management method for accessing data storage area based on characteristic of stored data |
US20090198952A1 (en) | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
US7886089B2 (en) | 2008-02-13 | 2011-02-08 | International Business Machines Corporation | Method, system and computer program product for enhanced shared store buffer management scheme for differing buffer sizes with limited resources for optimized performance |
US20110004578A1 (en) | 2008-02-22 | 2011-01-06 | Michinari Momma | Active metric learning device, active metric learning method, and program |
US7735045B1 (en) | 2008-03-12 | 2010-06-08 | Xilinx, Inc. | Method and apparatus for mapping flip-flop logic onto shift register logic |
US8015530B1 (en) | 2008-08-05 | 2011-09-06 | Xilinx, Inc. | Method of enabling the generation of reset signals in an integrated circuit |
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 |
US9639493B2 (en) | 2008-11-05 | 2017-05-02 | Micron Technology, Inc. | Pattern-recognition processor with results buffer |
US8402188B2 (en) | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
US20100118425A1 (en) | 2008-11-11 | 2010-05-13 | Menachem Rafaelof | Disturbance rejection in a servo control loop using pressure-based disc mode sensor |
US9348784B2 (en) | 2008-12-01 | 2016-05-24 | Micron Technology, Inc. | Systems and methods for managing endian mode of a device |
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 |
US9164945B2 (en) | 2008-12-01 | 2015-10-20 | Micron Technology, Inc. | Devices, systems, and methods to synchronize parallel processing of a single data stream |
DE102008060719B4 (de) | 2008-12-05 | 2018-09-20 | Siemens Healthcare Gmbh | Verfahren zur Steuerung des Aufnahmebetriebs einer Magnetresonanzeinrichtung bei der Aufnahme von Magnetresonanzdaten eines Patienten sowie zugehörige Magnetresonanzeinrichtung |
FR2939928B1 (fr) | 2008-12-15 | 2012-08-03 | Snecma | Standardisation de donnees utilisees pour la surveillance d'un moteur d'aeronef |
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 |
US8146040B1 (en) | 2009-06-11 | 2012-03-27 | Xilinx, Inc. | Method of evaluating an architecture for an integrated circuit device |
US20100325352A1 (en) | 2009-06-19 | 2010-12-23 | Ocz Technology Group, Inc. | Hierarchically structured mass storage device and method |
US9836555B2 (en) | 2009-06-26 | 2017-12-05 | Micron Technology, Inc. | Methods and devices for saving and/or restoring a state of a pattern-recognition processor |
US20110014527A1 (en) | 2009-07-17 | 2011-01-20 | Leroy James Ohlsen | Polyoxometalate flow-cell power system |
US8159900B2 (en) | 2009-08-06 | 2012-04-17 | Unisyn Medical Technologies, Inc. | Acoustic system quality assurance and testing |
US7916510B1 (en) * | 2009-08-10 | 2011-03-29 | Netlogic Microsystems, Inc. | Reformulating regular expressions into architecture-dependent bit groups |
US8489534B2 (en) | 2009-12-15 | 2013-07-16 | Paul D. Dlugosch | Adaptive content inspection |
US9501705B2 (en) | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
US20110161620A1 (en) | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
GB2478727B (en) | 2010-03-15 | 2013-07-17 | Advanced Risc Mach Ltd | Translation table control |
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 |
US9195623B2 (en) | 2010-06-23 | 2015-11-24 | International Business Machines Corporation | Multiple address spaces per adapter with address translation |
US8294490B1 (en) | 2010-10-01 | 2012-10-23 | Xilinx, Inc. | Integrated circuit and method of asynchronously routing data in an integrated circuit |
US8788991B2 (en) | 2011-01-25 | 2014-07-22 | Micron Technology, Inc. | State grouping for element utilization |
JP5763783B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 正規表現をコンパイルするための方法および装置 |
KR101607736B1 (ko) | 2011-01-25 | 2016-03-30 | 마이크론 테크놀로지, 인크. | 오토마톤의 진입 차수 및/또는 진출 차수를 제어하기 위한 양화 언롤링 |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US8659415B2 (en) | 2011-07-15 | 2014-02-25 | General Electric Company | Alarm management |
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 |
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 |
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 |
US8536896B1 (en) | 2012-05-31 | 2013-09-17 | Xilinx, Inc. | Programmable interconnect element and method of implementing a programmable interconnect element |
US9304968B2 (en) | 2012-07-18 | 2016-04-05 | Micron Technology, Inc. | Methods and devices for programming a state machine engine |
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 |
US9501131B2 (en) | 2012-08-31 | 2016-11-22 | Micron Technology, Inc. | Methods and systems for power management in a pattern recognition processing system |
US9075428B2 (en) | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for state machine engines |
US9063532B2 (en) | 2012-08-31 | 2015-06-23 | Micron Technology, Inc. | Instruction insertion in state machine engines |
KR102029055B1 (ko) | 2013-02-08 | 2019-10-07 | 삼성전자주식회사 | 고차원 데이터의 시각화 방법 및 장치 |
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 |
-
2009
- 2009-12-15 US US12/638,759 patent/US9323994B2/en active Active
-
2010
- 2010-12-07 JP JP2012544612A patent/JP5753190B2/ja active Active
- 2010-12-07 EP EP10795135.2A patent/EP2513839B1/en active Active
- 2010-12-07 CN CN2010800622175A patent/CN102713936A/zh active Pending
- 2010-12-07 WO PCT/US2010/059310 patent/WO2011081799A2/en active Application Filing
- 2010-12-07 CN CN201710188802.3A patent/CN106919959B/zh active Active
- 2010-12-07 KR KR1020127018579A patent/KR101960101B1/ko active IP Right Grant
- 2010-12-15 TW TW099144023A patent/TWI479342B/zh active
-
2016
- 2016-04-25 US US15/137,877 patent/US10684983B2/en active Active
-
2020
- 2020-05-27 US US16/884,302 patent/US11226926B2/en active Active
-
2021
- 2021-12-14 US US17/550,593 patent/US11768798B2/en active Active
-
2023
- 2023-09-22 US US18/371,635 patent/US20240012787A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080265938A1 (en) * | 1993-08-03 | 2008-10-30 | Ting Benjamin S | Architecture and interconnect scheme for programmable logic circuits |
CN1559072A (zh) * | 2001-09-30 | 2004-12-29 | ÷ķ�����������ι�˾ | 逆向搜索系统及方法 |
US20070127482A1 (en) * | 2005-02-12 | 2007-06-07 | Curtis L. Harris | General Purpose Set Theoretic Processor |
Also Published As
Publication number | Publication date |
---|---|
WO2011081799A2 (en) | 2011-07-07 |
JP2013513894A (ja) | 2013-04-22 |
KR20120108987A (ko) | 2012-10-05 |
US11768798B2 (en) | 2023-09-26 |
US10684983B2 (en) | 2020-06-16 |
US20110145544A1 (en) | 2011-06-16 |
EP2513839B1 (en) | 2020-02-26 |
US20160239462A1 (en) | 2016-08-18 |
TWI479342B (zh) | 2015-04-01 |
KR101960101B1 (ko) | 2019-03-19 |
US20220100700A1 (en) | 2022-03-31 |
CN106919959A (zh) | 2017-07-04 |
US20240012787A1 (en) | 2024-01-11 |
US20200285604A1 (en) | 2020-09-10 |
CN106919959B (zh) | 2021-07-02 |
TW201131404A (en) | 2011-09-16 |
WO2011081799A3 (en) | 2011-09-01 |
US11226926B2 (en) | 2022-01-18 |
US9323994B2 (en) | 2016-04-26 |
JP5753190B2 (ja) | 2015-07-22 |
EP2513839A2 (en) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102713936A (zh) | 用于模式辨识处理器的多级层次路由矩阵 | |
CN102232213B (zh) | 启用不同数据集合的识别的系统及方法 | |
CN102272713B (zh) | 用于型式辨识处理器的电力消耗管理的方法及系统 | |
CN102741859A (zh) | 用于减少模式辨识处理器中的功率消耗的方法及设备 | |
CN102203802B (zh) | 具有结果缓冲器的模式辨识处理器 | |
CN102272715B (zh) | 用于传送并行型式搜索引擎的型式匹配结果的装置、系统及方法 | |
CN102272714B (zh) | 具有匹配数据报告模块的型式辨识处理器 | |
JP6126127B2 (ja) | ステートマシンにおけるルーティング用の方法およびシステム | |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121003 |
|
RJ01 | Rejection of invention patent application after publication |