CN102741859A - 用于减少模式辨识处理器中的功率消耗的方法及设备 - Google Patents
用于减少模式辨识处理器中的功率消耗的方法及设备 Download PDFInfo
- Publication number
- CN102741859A CN102741859A CN2010800627959A CN201080062795A CN102741859A CN 102741859 A CN102741859 A CN 102741859A CN 2010800627959 A CN2010800627959 A CN 2010800627959A CN 201080062795 A CN201080062795 A CN 201080062795A CN 102741859 A CN102741859 A CN 102741859A
- Authority
- CN
- China
- Prior art keywords
- search
- pattern
- power control
- signal
- pattern search
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000003909 pattern recognition Methods 0.000 title abstract 2
- 230000009849 deactivation Effects 0.000 claims abstract description 66
- 230000004913 activation Effects 0.000 claims abstract description 41
- 230000004087 circulation Effects 0.000 claims description 18
- 230000003213 activating effect Effects 0.000 claims description 13
- 238000000926 separation method Methods 0.000 claims 1
- 239000011159 matrix material Substances 0.000 description 66
- 239000004020 conductor Substances 0.000 description 33
- 230000008878 coupling Effects 0.000 description 25
- 238000010168 coupling process Methods 0.000 description 25
- 238000005859 coupling reaction Methods 0.000 description 25
- 230000000694 effects Effects 0.000 description 25
- 230000014509 gene expression Effects 0.000 description 23
- 238000006116 polymerization reaction Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 15
- 238000001514 detection method Methods 0.000 description 13
- 238000003491 array Methods 0.000 description 8
- 230000013011 mating Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 241000283690 Bos taurus Species 0.000 description 2
- 241000700605 Viruses Species 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 244000188472 Ilex paraguariensis Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011840 criminal investigation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001256 tonic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Power Sources (AREA)
Abstract
本发明提供用于减少模式辨识处理器(14)中的功率消耗的设备及方法。可将功率控制电路(98)耦合到经编程状态机的块(96)以使得能够在模式搜索期间选择性地激活及去激活所述块(96)。可在所述模式搜索在所述块(96)中不再活动的情况下去激活所述块(96)且在所述模式搜索需要时激活所述块(96)。另外,可基于正搜索的数据流(12)的识别符而去激活所述块(96)。可停用不用于任何经编程状态机的过量块(96),使得其在存储器循环期间不被刷新。
Description
技术领域
本发明的实施例大体来说涉及模式辨识处理器,且更具体来说,在某些实施例中,涉及减少此些模式辨识处理器的功率消耗。
背景技术
在计算领域中,模式辨识任务越来越具有挑战性。计算机之间传输的数据量不断增大,且用户希望识别的模式数目日益增加。举例来说,通常通过搜索数据流中的模式(例如,特定短语或代码片段)来检测垃圾邮件或恶意软件。模式的数目随着垃圾邮件及恶意软件的变化而增加,因为可实施新模式以搜索新变体。搜索数据流以找到这些模式中的每一者可形成计算瓶颈。通常,在接收到数据流时,搜索数据流以一次一个地找到每一模式。在系统准备搜索数据流的下一部分之前的延迟随着模式数目而增加。因此,模式辨识可使数据的接收减慢。
此些模式辨识装置可使用可用于模式辨识过程的存储器核心的全部或几乎全部。也就是说,由于搜索每一数据流以找出一个或一个以上模式的本质,在每一处理循环期间可存取所述存储器核心的全部或几乎全部。此可导致模式辨识处理器的高功率消耗。另外,与常规DRAM装置或其它存储器一起使用的地址解码技术可能不适合于供模式辨识装置使用。
发明内容
附图说明
图1描绘搜索数据流的系统的实例;
图2描绘图1的系统中的模式辨识处理器的实例;
图3描绘图2的模式辨识处理器中的搜索项单元的实例;
图4及5描绘图3的搜索项单元搜索数据流以找到单个字符;
图6到8描绘搜索数据流以找到一词的包含数个搜索项单元的辨识模块;
图9描绘经布置以搜索数据流以并行找到两个词的辨识模块;
图10到12描绘根据规定具有同一前缀的多个词的搜索准则进行搜索的辨识模块;
图13描绘根据本发明的实施例将特征单元布置成若干行及若干块;
图14A及14B描绘根据本发明的实施例的特征单元块的操作;
图15描绘根据本发明的实施例的功率控制电路的逻辑示意图;
图16描绘根据本发明的实施例用于模式辨识处理器的块的预测性激活方案;且
图17描绘根据本发明的实施例用于在一块处处理信号的逻辑图。
具体实施方式
图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(也称为状态机元件(SME))的任一布置。在一个实施例中,如图13中所描绘,特征单元30可布置成若干行94,其中每一行94可包含一个或一个以上特征单元30。可将行94聚集成若干块96,其中每一块96包含一个或一个以上行94。模式辨识处理器14可包含用于实施上文所描述的模式搜索的任一数目个块96。
如上文所描述,特征单元30的群组可形成规定一或若干搜索准则的并行有限状态机。因此,每一行94及块96可经编程并用以根据一个或一个以上搜索准则来搜索数据流。在针对搜索准则对数据流12进行搜索时,上文所描述的模式搜索可依序进展经过一个或一个以上块96。在搜索循环期间执行对每一活动块96中的数据流的一项的评估。所述搜索循环可为模式辨识处理器14的称为模式搜索循环(也称为字符循环)的较广泛循环的一部分。每一模式搜索循环可包含模式辨识处理器14的多个内部时钟循环。模式搜索循环可包含(举例来说)以下事件中的一者或一者以上:从数据流12输入字节、解码所述字节及驱动对应输入导体37、读取处理器14的存储器(例如,存储器单元58)、确定特征单元30是否活动及所读取的数据是否指示针对相应特征单元的匹配、驱动匹配特征单元的激活路由矩阵36的输出,及/或将来自激活路由矩阵36的信号传播到每一特征单元30。所述模式搜索循环还可包含在模式辨识处理器14的操作期间所执行的其它事件。
在模式搜索循环期间,可在包含模式搜索循环的事件中的一些事件的存储器存取循环期间存取块96。举例来说,所述存储器存取循环可包含读取处理器14的存储器(以便给特征单元30提供“匹配”指示)、出于测试编程或检验处理器14的存储器的目的的存储器读取或写入,及/或存储器刷新循环。所述存储器刷新循环可刷新一块的特征单元30。在一个实施例中,模式辨识处理器14的存储器存取循环可与模式搜索循环的其它事件交错。
在此些实施例中,当执行模式搜索时,模式辨识处理器14可在给定模式搜索循环期间存取特征单元的“活动”块。“活动”块是指当前或将在给定模式搜索循环期间根据编程到块中的搜索项搜索数据流的所述块。因此,“不活动”块是指当前不或将不在给定模式搜索循环期间搜索数据流的块。
在操作期间,模式辨识处理器14在每一存储器存取循环期间存取活动块的特征单元30或特征单元30的群组。在一个实施例中,为减少通过在每一存储器存取循环期间存取“不活动”块所招致的功率消耗,可将每一块96耦合到一功率控制电路98。功率控制电路98可为每一块96的逻辑的一部分(或与每一块96分离的逻辑)。功率控制电路98可在模式搜索之前、之后或期间控制每一块96的激活(将块设定为“活动”)及去激活(将块设定为“不活动”)。功率控制电路98还可控制块96中的每一者的“永久”去激活,其中永久去激活是指完全停用块96,使得所述块不活动且在刷新循环期间不被刷新。
在一些实施例中,功率控制电路98可包含以下能力:能够基于正搜索的数据流的身份而激活或去激活(永久地或暂时地)块;能够在模式搜索进展到块之前(例如,在模式搜索将在后续模式搜索循环上存取所述块时)自动地激活所述块;能够在模式搜索在块中不再活动时(例如,在将不在任一后续模式搜索循环上使用块时)自动地去激活所述块;及能够在块将不用于编程到模式辨识处理器14中的有限状态机中的任一者时完全地停用所述块。
图14A及14B描绘根据本发明的实施例使用功率控制电路98A到98D的功率控制能力的模式辨识处理器14的块96A到96D的操作。同样,如图14A及14B中所示,每一块96A到96D耦合到可选择性地激活或去激活(暂时地或永久地)块的相应功率控制电路98A到98D。如图14A中所展示,在模式搜索期间,每一块96可具有不同状态。可停用第一块96A,使得此块在模式辨识处理器14的操作期间不被使用或甚至刷新。举例来说,可不将来自制造合格率“不足”或来自当前搜索准则未使用的块的任何“额外”块编程为处理器14的状态机。因此,此些块(例如,块96A)可由对应功率控制电路98A停用。在停用之后,块96A为停用的且在存储器存取循环的刷新期间不被刷新。
如上文所提及,功率控制电路98还可包含基于正搜索的数据流的身份(例如,HTTP、FTP、SMTP、DNS等)而激活或去激活一块的能力。在图14A中所描绘的模式搜索期间,可基于正搜索的数据流的身份而去激活第二块96B。在此实例中,每一块的经编程状态机可经编程以用于对特定类型的协议、语言或其它数据识别符进行模式搜索。此经识别数据可包含但不限于数据传送协议(例如,HTTP、FTP、SMTP、DNS等)、自然语言、遗传识别符等。举例来说,在针对因特网安全性的一个实施例中,块96B的状态机可经编程以用于搜索FTP数据中的模式。状态机96C及96D可经编程以用于搜索HTTP数据中的模式。一旦识别了传入包的协议(例如,基于包标头),便可仅使用经编程以用于搜索HTTP数据的那些状态机。因此,在正处理HTTP包的时间期间,块96B可由功率控制电路98B去激活。可去激活块96B,使得在模式搜索循环中不使用所述块。然而,块96B并非被永久地停用且仍将经刷新并可供在其它模式搜索中使用,例如,当将数据流识别为FTP数据时。如果数据流的类型改变,那么块96B可由对应功率控制电路98B激活。如下文进一步描述,可基于数据流12的身份而将块聚集成不同“分区”。分区是指经编程以用于搜索特定类型的数据的块群组。举例来说,可将块96B与其它块一起聚集成用于搜索FTP数据的分区。类似地,可将块96C及96D连同其它块一起聚集成用于搜索HTTP数据的分区。分区聚集使得能够基于数据流12的身份而激活或去激活块群组。
另外,上文所论述的功率控制电路还可在模式搜索进展到经去激活的块之前激活所述块且在模式搜索在一块中不再活动时去激活所述块。图14A及14B的块96C及96D描绘基于从块96C进展到块96D的模式搜索的激活及去激活。图14A展示块96C中正在进展中的模式搜索,例如在第一模式搜索循环期间。所述模式搜索可为根据编程到块96C的状态机(特征单元30的群组)中的搜索准则评估数据流中的项。块96C为“活动的”,因为其当前在模式搜索期间正在使用中。如图14A中所示,可去激活块96D使得在存储器存取循环期间不存取块96D,从而减少处理器14的功率消耗。如果在块96D中未编程“开始”项(例如,模式的开始),那么可去激活块96D直到模式搜索序列进展到块96D。
图14B描绘在模式搜索从块96C进展到块96D时模式辨识处理器14的后续模式搜索循环。在搜索数据流以找出一模式时,模式搜索可从块96C“跨接”到块96D。“跨接”是指在模式搜索的顺序进展期间从第一块到第二块的进展。模式搜索在块96C中不再活动且现在在块96D中活动。当将块96C检测为不活动时,功率控制电路96C可去激活块96C直到另一模式搜索进展到块96C。功率控制电路96D可在模式搜索进展到块96D之前激活块96D。因此,在预测性“按需要”的基础上激活块96D。如下文进一步描述,功率控制电路98D及/或块96D可检测模式搜索何时将到达块96D且在下一模式搜索循环之前激活块96D。因此,随着模式搜索序列继续经过每一特征单元块,可去激活不活动的块且可在需要预期的块时将其激活。
另外,其它实施例可包含在模式搜索进展经过一块之前、期间或之后影响所述块的激活或去激活的特殊搜索准则。此些特殊搜索准则可包含正则表达(RegEx)运算符、例如星号(*)、问号(?)及/或加号(+)。举例来说,规定匹配每一事物及任何事物直到数据流的项的结束的星号(“*”)运算符可通过规定一块(一旦激活)始终活动直到所述数据流的项的结束的激活命令来实施。任何特殊搜索准则可通过规定适合于那些特殊搜索准则的激活或去激活方案来实施到上文所论述的功率控制技术中。
模式辨识处理器14的每一块均可包含用以提供上文所述的功率控制技术的信号及/或配置位。举例来说,除功率控制电路以外,每一块还可包含用以产生指示一行含有“活动”特征单元的信号及/或指示所述块含有接下来处于模式搜索序列中的特征单元的信号的逻辑。另外,块可包含经配置以发射或接收各种控制及配置信号的逻辑。这些控制及配置信号可包含:所述块用于当前数据流的指示(块活动/不活动);开始项的指示;激活一次/始终激活信号(例如,针对上文所论述的特殊搜索准则);刷新信号;及块流启用信号。
上文所述的选择性激活及去激活方案可指示是否停用特定块(例如,是否将永远使用所述块)、指示一块是否为当前使用的群组的一部分、指示一块是否含有模式的“开始”的特征单元,且在模式搜索序列期间按需要激活块。在一些实施例中,为了实施块唤醒方案,块96可包含用以指示块的状态的配置位或其它数据指示符。可通过本文中所论述的各种控制信号来修改这些位。举例来说,块96可包含用以指示是否停用所述块的一个或一个以上配置位。如上文所提及,在一些实施例中,可将块96聚集成若干分区使得每一分区包含待用于特定类型的数据流的块。在此实施例中,每一块可包含用以指示相应块所属的分区的一个或一个以上配置位。另外,每一块96可包含指示所述块是否包含包含模式的“开始”(例如,开头)的特征单元30的一个或一个以上配置位。在使用所述分区的给定模式搜索序列期间,此些块可始终为活动的。另外,在此实施例中,如上所述,可选择性地激活及去激活分区中的所有其它块。
图15描绘根据本发明的实施例的功率控制电路98的逻辑示意图。功率控制电路98可确定一块何时应活动、一块(一旦活动)何时应暂时地去激活及一块何时应永久地去激活(即,停用,使得其不对刷新循环请求做出响应)。
功率控制电路98可包含“块仍活动感测”组件100、“与”门102、“或”门104、可再触发去激活定时器106及输出“Block_Active”信号的“或”门108。功率控制电路98可从块唤醒方案110接收“Block_Activate”信号。举例来说,所述块唤醒方案可指示是否停用特定块(例如,是否将从不使用所述块)、指示一块是否为当前使用的群组的部分、指示一块是否含有模式的“开始”的特征单元,且在模式搜索序列期间按需要激活块。块仍活动感测组件100可从一块接收及/或检测指示所述块是否仍活动(根据此检测所提供的分辨率)的信号。举例来说,所述块仍活动感测组件可接收或检测活动特征单元30、行94或块96中的其它活动且输出(举例来说)指示一块的一行仍活动的Row_Active信号。
在一个实施例中,功率控制电路可由五个信号控制及配置,如下文表1中所述:
可经由操作模式辨识处理器14的软件编译器确定并经由模式辨识处理器14的其它逻辑组件产生Block_On/Off信号、Start_SME信号及Indefinite_SME信号的状态。举例来说,可从编程与控制逻辑112产生Block_On/Off、Start_SME信号及Indefinite_SME信号。所述软件编译器可基于编程到模式辨识处理器中的不同有限状态机的放置及路由而规定功率配置。这些信号可设定为编程到处理器14中的搜索准则的一部分且在操作期间可不改变。
Block_On/Off可用以在模式搜索的进展期间激活或去激活一块,如上所述。Flow_Enable信号也可由所述编译器确定且可取决于有限状态机处理数据而在处理器14的操作期间改变。所述软件编译器可确定需要哪些有限状态机(且因此,需要什么块)且设定Flow_Enable信号以针对数据流激活或去激活一块。可从流管理逻辑114产生Flow_Enable信号,所述流管理逻辑可解释数据流的识别符且提供适当的Flow_Enable信号。举例来说,如上文所论述,有限状态机的一些块可经编程以与特定协议或语言一起使用,使得可去激活未出于所述目的而编程的其它块。
可由刷新管理逻辑116产生Refresh_Cycle信号,所述刷新管理逻辑在模式辨识处理器14的操作期间刷新特征单元30。可独立于模式辨识处理器14的模式搜索或其它操作而设定Refresh_Cycle信号的确证。如果一块在模式辨识处理器14的操作期间从不使用(例如,上文在图14A及14B中所论述的块96A),那么可针对所述块停用Refresh_Cycle信号,因此在存储器存取循环期间停用所述块的任何刷新循环且消除所述刷新操作的功率消耗。
可经由“与”门102或其它逻辑组件传递Refresh_Cycle、Block_On/Off信号、Start_SME信号及Flow_Enable信号。举例来说,可将Refresh-Cycle信号及Block_On/Off信号提供到第一“与”门102A,所述第一“与”门将Refresh_Access信号输出到“或”门108,从而指示将刷新一块。可将Block_On/Off信号及Start_SME信号提供到第二“与”门102B,所述第二“与”门将“Force_Block_Enable”信号输出到“或”门108,从而指示一块包含开始搜索项且应为活动的。可将Block_Activate信号及Flow Enable信号提供到第三“与”门102B,所述第三“与”门将Conditional_Block Enable_Start信号输出到可再触发去激活定时器106。
另外,可将来自唤醒方案110的Block_Activate信号、来自编程与控制逻辑114的Indefinite_SME信号及来自块仍活动感测组件112的Row_Active信号提供到第二“或”门104,所述第二“或”门将Activity_Re-Trigger信号输出到可再触发去激活定时器106。
可再触发去激活定时器106使得功率控制电路98能够在去激活一块之前计及模式辨识处理器14的架构中的时间延迟。可再触发去激活定时器106可接收conditional_block_enable_start信号及Activity_Re-Trigger信号且基于那些信号提供延迟。可再触发去激活定时器106可将Time_Block_Enable信号输出到“或”门108。
可再触发去激活定时器106可防止在规定的持续时间去激活一块。所述持续时间可以时间或循环的单位确定。对于功率辨识处理器14的任一给定架构,一块的特征单元的活动/不活动状态的检测可限于所述架构所提供的循环分辨率。举例来说,在具有以四个模式搜索循环的分辨率检测一块的活动特征单元的能力的实施例中,可再触发去激活定时器106可允许仅在从检测到最后一个“活动”状态以来已发生四个模式搜索循环之后去激活所述块。
每当在模式搜索期间存取一块时,可再触发去激活定时器106可复位以允许完成所述块中的模式搜索。在上文所论述的实例中,在所述块再次活动之后,可再触发去激活定时器106复位使得在可去激活所述块之前提供四个模式搜索循环的另一延迟。在一些实施例中,可再触发去激活定时器106还可经配置以计及在产生用以确定一块是否应保持活动的信号时发生的延迟。举例来说,Row_Active信号可相对慢地产生及传播,使得可再触发去激活定时器106可经配置以添加延迟来补偿。以此方式,一块的状态的检测的任何分辨率可通过引入所期望的时间延迟而被计及且复位到可再触发去激活定时器106中。
此外,应了解,可再触发去激活定时器106可经配置以确保一块在模式搜索期间需要时为活动的,与实现块的预先去激活相反,预先去激活可减损模式辨识处理器14的操作。相比之下,一块的激活时间可足以确保所述块及时活动以用于下一模式搜索循环。在一个实施例中,模式辨识处理器14可包含使得模式搜索能够从第一块跨接到另一特征单元块的信号,如上文在图14B中所图解说明。
基于所接收的信号,可再触发去激活定时器106将Timer_Block_Enable信号输出到“或”门108。因此,如图15中所示,可再触发去激活定时器106可基于从流管理逻辑、唤醒逻辑、编程与配置逻辑及块仍活动感测组件接收的信号而触发或“再触发”。
功率控制电路的输出为基于Refresh_Access信号、Force_Block_Enable_BX信号或Timer_Block_Enable信号而激活或去激活一块的Block_Active信号。因此,基于各种控制信号,Block_Active信号可基于一块是否将被刷新、是否针对数据流启用、针对数据流是活动的还是不活动的、是否为“一旦激活,始终活动”搜索准则的一部分等而激活或去激活所述块。
如上文所论述,当模式搜索序列进展(跨接)到由功率控制电路98控制的块时,应及时激活所述特征单元块以用于下一模式搜索。在具有“非管道式架构”的一些实施例中,一块的激活可依赖于指示模式搜索何时跨接到下一块的同一跨接信号。然而,在其它实施例(例如,模式辨识处理器14的“管道式”架构)中,模式搜索循环的事件与存储器存取循环交错。在此实施例中,下一存储器存取循环在完成一块中的当前模式搜索之前开始。在这些实施例中,可使用预测性激活方案来确保及时激活模式搜索序列的下一块以用于下一模式搜索及到所述块的跨接。
图16是根据本发明的实施例用于模式辨识处理器14的预测性激活方案的图示。所述预测性激活方案可产生每当当前块中的模式搜索进展到特定状态就发送到模式搜索序列的下一块的“提早激活”信号。
图16描绘第一块118A与第二块118B之间的模式搜索。如图18中所示,第一块118A可包含块118A的经编程状态机(特征单元的群组),所述经编程状态机经配置以根据搜索准则搜索数据流。在第一模式搜索循环期间,举例来说,块118A可为活动的且块118B可为不活动的。随着模式搜索进展经过块118A,当不同搜索项或准则(例如,字符)在块118A中得到匹配时,所述块的状态可从状态A改变为状态B及状态C。在完成块118A中的处理时(如由状态C所指示),“跨接”信号可由信号产生逻辑120产生且从块118A提供到块118B以指示模式搜索将跨接到块118B以进行下一模式搜索循环。
在块118A中的处理期间,基于块118A的另一状态,“激活下一块”信号可由第二信号产生逻辑122产生且从块118A提供到块118B。举例来说,如图16中所示,当在模式搜索期间块118B进展到状态B时,可产生activate_next_block信号。因此,activate_next_block信号是在早于跨接信号的状态下产生。块118B的块激活逻辑124可接收来自块118A的activate_next_block信号。块激活逻辑122可响应于所接收的activate_next_block信号而激活块118B。接着,块118B可准备好在模式搜索跨接到块118B时(例如,在块118B接收到从块118A提供的跨接信号时)做出响应。用以产生两个信号的信号产生逻辑120及信号产生逻辑122可为经编程以在块118A的不同状态下做出响应的等同逻辑。
可在块118A的任一状态下产生activate_next_block信号以确保及时激活块118B以用于模式搜索的跨接。举例来说,取决于模式辨识处理器14的架构,可在块118A的状态A或任一较早状态下产生activate_next_block信号。应了解,比需要早地激活块118B可稍微增加功率消耗,但并不影响模式搜索序列。在接收到activate_next_block信号之后,接收块118B可开始对所有存储器循环做出响应。然而,即使在每一存储器循环上执行存储器存取,也可直到接收到跨接信号才在下一模式搜索循环上执行使用块118B的模式搜索。
图17描绘根据本发明的实施例用于在一块处处理Activate_Next_Block信号的逻辑图。可将一块耦合到总线124,所述总线在块索引线(BX)及块连接索引线(BCX)上发射及接收信号。在一个实施例中,一个输入可经指定用于激活所述块,且另一输入可专用于指示模式序列(例如,在模式搜索序列的进展期间从一个块到另一块的跨接)。可将BX信号提供到多个“与”门126。还可将块启用激活信号与对应BX信号一起提供到每一“与”门126。可将“与”门126的输出提供到“或”门128,所述“或”门输出用于激活一块的“block_activate”信号。
以此方式,“与”门126可“掩蔽”不用以激活块的那些输入信号且仅使得适当激活信号能够激活接收从“或”门128输出的Block_Activate信号的块。如图17中所示,可存在可激活一块的多个路径(例如,多个信号)。
应了解,基于模式辨识处理器14的特性(例如,一块中的特征单元的数目、一行中的特征单元的数目、能够检测活动块的粒度等),上文所述的逻辑可具有稍微不同的配置。
Claims (36)
1.一种用于使用模式辨识处理器的多个块来搜索以找出数据流的模式的方法,其中每一块包括多个特征单元,所述方法包括:
当所述模式搜索在第一块中不再活动时,去激活所述第一块。
2.根据权利要求1所述的方法,其包括在所述模式搜索进展到第二块之前激活所述第二块,使得所述第二块经激活以用于所述模式搜索。
3.根据权利要求1所述的方法,其中所述多个块中的一者或一者以上包括从所述多个特征单元编程的多个状态机。
4.根据权利要求3所述的方法,其包括在第三块不包括任何经编程状态机的情况下停用所述块。
5.根据权利要求1所述的方法,其包括将来自所述第一块的第一信号提供到所述第二块以致使所述第二块激活。
6.根据权利要求5所述的方法,其中所述第一信号是基于所述第一块的状态。
7.根据权利要求5所述的方法,其包括将来自所述第一块的第二信号提供到所述第二块以指示所述模式搜索的跨接。
8.根据权利要求7所述的方法,其中所述第二信号是基于所述第一块的状态。
9.根据权利要求1所述的方法,其包括在所述模式搜索在所述第二块中不再活动时去激活所述第二块。
10.根据权利要求1所述的方法,其包括激活所述第二块使得所述块在所述模式搜索的剩余部分内始终为活动的。
11.一种方法,其包括:
在第一模式搜索循环中在第一块中搜索以找出数据流中的模式;
将来自所述第一块的第一信号提供到第二块,其中所述第一信号激活所述第二块以用于第二模式搜索循环;及
将来自所述第一块的第二信号提供到所述第二块以使得能够在所述第二模式搜索循环中在所述第二块中搜索以找出所述数据流中的模式。
12.根据权利要求11所述的方法,其中提供所述第一信号包括在所述模式搜索进展到所述第一块中的第一状态时提供所述第一信号。
13.根据权利要求11所述的方法,其中提供所述第二信号包括在所述模式搜索进展到所述第一块中的第二状态时提供所述第二信号。
14.一种装置,其包括:
模式辨识处理器,其包括:
多个块,其中一个或一个以上块包括多个状态机中的一者或一者以上;及
多个功率控制电路,其中每一功率控制电路耦合到所述多个块中的相应一者,
且其中每一功率控制电路经配置以激活及去激活所述相应块。
15.根据权利要求14所述的装置,其中所述功率控制电路中的每一者提供用于激活所述多个块中的相应一者的信号。
16.根据权利要求14所述的装置,其中所述功率控制电路中的每一者经配置以基于数据流的标识而去激活相应块。
17.根据权利要求14所述的装置,其中所述功率控制电路中的每一者经配置以在相应块不包括任何经编程状态元件的情况下停用所述块。
18.根据权利要求14所述的装置,其中所述功率控制电路中的每一者经配置以停用相应块的存储器刷新。
19.根据权利要求14所述的装置,其中所述功率控制电路中的每一者经配置以基于模式搜索的进展而激活相应块。
20.根据权利要求14所述的装置,其中所述功率控制电路中的每一者包括一定时器组件,所述定时器组件经配置以基于相应块的状态的确定而延迟相应块的去激活。
21.根据权利要求20所述的装置,其中所述定时器组件经配置以在所述相应块的活动状态的确定之后即刻复位。
22.一种装置,其包括:
模式辨识处理器,其包括:
第一多个特征单元的第一块;及
第二多个特征单元的第二块;
其中所述第一块包括:
第一逻辑,其经配置以在第一模式搜索循环期间激活所述第二块使得所述第二块经激活以用于第二模式搜索循环;及
第二逻辑,其经配置以致使模式搜索从所述第一块跨接到所述第二块。
23.根据权利要求22所述的装置,其中所述第一逻辑经配置以在所述第一模式搜索循环期间基于所述第一块的第一状态而激活所述第二块。
24.根据权利要求22所述的装置,其中所述第二逻辑经配置以基于所述第一块的第二状态而跨接所述模式搜索。
25.根据权利要求22所述的装置,其中所述第一块包括第三逻辑,所述第三逻辑经配置以指示所述第一块为活动的。
26.根据权利要求22所述的装置,其中所述第二块包括第四逻辑,所述第四逻辑经配置以指示所述第二块接下来处于模式搜索序列中。
27.一种模式辨识处理器,其包括:
多个可编程状态机元件;及
功率控制电路,其中所述功率控制电路经配置以:
基于模式搜索的进展而在所述模式搜索期间选择性地激活所述多个元件。
28.根据权利要求27所述的模式辨识处理器,其包括状态机元件的块。
29.根据权利要求28所述的模式辨识处理器,其中所述功率控制电路为所述块的逻辑的一部分。
30.根据权利要求28所述的模式辨识处理器,其中所述功率控制电路与所述块的逻辑分离。
31.一种根据编程为多个状态机的搜索准则搜索数据流的方法,所述方法包括;
在模式搜索进展到一块的所述多个状态机中的第一一者或一者以上之前激活所述多个状态机中的所述第一一者或一者以上;及
基于所述模式搜索在所述块中不再活动的确定,去激活所述多个状态机中的所述第一一者或一者以上。
32.根据权利要求31所述的方法,其进一步包括确定所述数据流的识别符。
33.根据权利要求32所述的方法,其进一步包括基于所述识别符而去激活所述多个状态机中的第二一者或一者以上。
34.根据权利要求32所述的方法,其中所述识别符包括因特网传送协议、自然语言或遗传识别符。
35.一种模式辨识处理器,其包括:
多个可编程状态机元件;及
功率控制电路,其中所述功率控制电路经配置以基于模式搜索的进展而在所述模式搜索期间选择性地去激活所述多个元件。
36.一种模式辨识处理器,其包括:
多个可编程状态机元件;及
功率控制电路,其中所述功率控制电路经配置以基于模式搜索的数据流的标识而在所述模式搜索期间去激活所述多个元件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/638,751 US9501705B2 (en) | 2009-12-15 | 2009-12-15 | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
US12/638,751 | 2009-12-15 | ||
PCT/US2010/059307 WO2011081798A1 (en) | 2009-12-15 | 2010-12-07 | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102741859A true CN102741859A (zh) | 2012-10-17 |
CN102741859B CN102741859B (zh) | 2016-12-21 |
Family
ID=43877160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080062795.9A Active CN102741859B (zh) | 2009-12-15 | 2010-12-07 | 用于减少模式辨识处理器中的功率消耗的方法及设备 |
Country Status (7)
Country | Link |
---|---|
US (3) | US9501705B2 (zh) |
EP (1) | EP2513840A1 (zh) |
JP (1) | JP5923449B2 (zh) |
KR (1) | KR102004290B1 (zh) |
CN (1) | CN102741859B (zh) |
TW (1) | TWI465945B (zh) |
WO (1) | WO2011081798A1 (zh) |
Families Citing this family (40)
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 |
EP2668576B1 (en) | 2011-01-25 | 2024-04-24 | Micron Technology, INC. | State grouping for element utilization |
EP2668574B1 (en) | 2011-01-25 | 2021-11-24 | Micron Technology, INC. | Utilizing special purpose elements to implement a fsm |
EP2668577B1 (en) | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
WO2012103143A2 (en) | 2011-01-25 | 2012-08-02 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
US8799188B2 (en) * | 2011-02-08 | 2014-08-05 | International Business Machines Corporation | Algorithm engine for use in a pattern matching accelerator |
US8639875B1 (en) * | 2011-09-06 | 2014-01-28 | Netlogic Microsystems, Inc. | Content search system having multiple pipelines |
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 |
US8648621B2 (en) | 2011-12-15 | 2014-02-11 | Micron Technology, Inc. | Counter operation 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 |
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 |
US9389841B2 (en) | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in 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 |
US9304968B2 (en) | 2012-07-18 | 2016-04-05 | Micron Technology, Inc. | Methods and devices for programming a state machine engine |
US9524248B2 (en) | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
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 |
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 |
US10430210B2 (en) | 2014-12-30 | 2019-10-01 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
US10769099B2 (en) | 2014-12-30 | 2020-09-08 | Micron Technology, Inc. | Devices for time division multiplexing of state machine engine signals |
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 |
US9972375B2 (en) | 2016-04-15 | 2018-05-15 | Via Alliance Semiconductor Co., Ltd. | Sanitize-aware DRAM controller |
US10146555B2 (en) | 2016-07-21 | 2018-12-04 | Micron Technology, Inc. | Adaptive routing to avoid non-repairable memory and logic defects on automata processor |
US10268602B2 (en) | 2016-09-29 | 2019-04-23 | Micron Technology, Inc. | System and method for individual addressing |
US10019311B2 (en) | 2016-09-29 | 2018-07-10 | Micron Technology, Inc. | Validation of a symbol response memory |
US10592450B2 (en) | 2016-10-20 | 2020-03-17 | Micron Technology, Inc. | Custom compute cores in integrated circuit devices |
US12197510B2 (en) | 2016-10-20 | 2025-01-14 | Micron Technology, Inc. | Traversal of S portion of a graph problem to be solved using automata processor |
US10929764B2 (en) | 2016-10-20 | 2021-02-23 | Micron Technology, Inc. | Boolean satisfiability |
US11829689B1 (en) | 2020-06-09 | 2023-11-28 | The Mathworks, Inc. | Systems and methods for creating variant regions in acausal simulation models |
US12181944B2 (en) * | 2021-12-27 | 2024-12-31 | Advanced Micro Devices, Inc. | Method and apparatus for managing power states |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4254476A (en) * | 1979-06-25 | 1981-03-03 | Sanders Associates, Inc. | Associative processor |
US6301671B1 (en) * | 1998-03-23 | 2001-10-09 | International Business Machines Corporation | Apparatus and method for power reduction control in a video encoder device |
WO2003023548A2 (en) * | 2001-09-12 | 2003-03-20 | Raqia Networks, Inc. | High speed data stream pattern recognition |
US20030110208A1 (en) * | 2001-09-12 | 2003-06-12 | Raqia Networks, Inc. | Processing data across packet boundaries |
CN1573656A (zh) * | 2003-05-27 | 2005-02-02 | 日本电气株式会社 | 并行处理系统中的电源管理系统及电源管理程序 |
CN1666180A (zh) * | 2002-07-03 | 2005-09-07 | 皇家飞利浦电子股份有限公司 | 多处理器计算机系统 |
CN1734437A (zh) * | 2004-07-01 | 2006-02-15 | 松下电器产业株式会社 | 多处理器控制设备、其控制方法和集成电路 |
US20060206737A1 (en) * | 2005-03-14 | 2006-09-14 | Samsung Electronics Co., Ltd. | Processor with variable wake-up and sleep latency and method for managing power therein |
US20070127482A1 (en) * | 2005-02-12 | 2007-06-07 | Curtis L. Harris | General Purpose Set Theoretic Processor |
Family Cites Families (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3538143A1 (de) | 1985-10-26 | 1987-04-30 | Hoechst Ag | Verfahren zur herstellung von acyloxibenzolsulfonsaeuren und deren salzen |
JPH05282362A (ja) | 1992-03-31 | 1993-10-29 | Sharp Corp | データ検索回路 |
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 |
US5602764A (en) | 1993-12-22 | 1997-02-11 | Storage Technology Corporation | Comparing prioritizing memory for string searching in a data compression system |
US5615162A (en) | 1995-01-04 | 1997-03-25 | Texas Instruments Incorporated | Selective power to memory |
JPH08249241A (ja) | 1995-03-15 | 1996-09-27 | Nec Corp | 記憶装置 |
JPH09167130A (ja) | 1995-12-15 | 1997-06-24 | Fujitsu Ltd | Wwwサーバのための通信処理装置 |
DE19617733A1 (de) | 1996-05-03 | 1997-11-06 | Fichtel & Sachs Ag | Schaltbarer Klinkenfreilauf für Mehrgangnaben für Fahrräder |
US6094443A (en) | 1997-10-30 | 2000-07-25 | Advanced Micro Devices, Inc. | Apparatus and method for detecting a prescribed pattern in a data stream by selectively skipping groups of nonrelevant data bytes |
JPH11298424A (ja) | 1998-04-10 | 1999-10-29 | Matsushita Electric Ind Co Ltd | 情報受信装置 |
US6272616B1 (en) * | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
US6470418B1 (en) | 1999-01-15 | 2002-10-22 | Integrated Device Technology, Inc. | Pipelining a content addressable memory cell array for low-power operation |
US6324087B1 (en) | 2000-06-08 | 2001-11-27 | Netlogic Microsystems, Inc. | Method and apparatus for partitioning a content addressable memory device |
US6763425B1 (en) | 2000-06-08 | 2004-07-13 | Netlogic Microsystems, Inc. | Method and apparatus for address translation in a partitioned content addressable memory device |
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 |
US6553525B1 (en) | 1999-11-08 | 2003-04-22 | International Business Machines Corporation | Method and apparatus for selectively enabling and disabling functions on a per array basis |
US8095508B2 (en) * | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US6240003B1 (en) * | 2000-05-01 | 2001-05-29 | Micron Technology, Inc. | DRAM content addressable memory using part of the content as an address |
US7089436B2 (en) * | 2001-02-05 | 2006-08-08 | Morpho Technologies | Power saving method and arrangement for a configurable processor array |
US7088604B2 (en) | 2001-03-15 | 2006-08-08 | Micron Technology, Inc. | Multi-bank memory |
US7088860B2 (en) | 2001-03-28 | 2006-08-08 | Canon Kabushiki Kaisha | Dynamically reconfigurable signal processing circuit, pattern recognition apparatus, and image processing apparatus |
JP2003060745A (ja) | 2001-08-22 | 2003-02-28 | Sony Corp | 情報伝達装置、情報伝達方法及びモニタ装置 |
DE60222575T2 (de) * | 2001-09-12 | 2008-06-26 | Safenet Inc. | Verfahren zur Generierung eines DFA-Automaten, wobei Übergänge zwecks Speichereinsparung in Klassen gruppiert werden |
US7401180B1 (en) | 2001-12-27 | 2008-07-15 | Netlogic Microsystems, Inc. | Content addressable memory (CAM) device having selectable access and method therefor |
US7185141B1 (en) | 2001-12-27 | 2007-02-27 | Netlogic Microsystems, Inc. | Apparatus and method for associating information values with portions of a content addressable memory (CAM) device |
US6717876B2 (en) | 2001-12-28 | 2004-04-06 | Mosaid Technologies Incorporated | Matchline sensing for content addressable memories |
US6768659B2 (en) | 2001-12-31 | 2004-07-27 | Mosaid Technologies Incorporated | Circuit and method for reducing power usage in a content addressable memory |
US7421515B2 (en) | 2002-01-17 | 2008-09-02 | Hewlett-Packard Development Company, L.P. | Method and system for communications network |
US7467129B1 (en) | 2002-09-06 | 2008-12-16 | Kawasaki Microelectronics, Inc. | Method and apparatus for latency and power efficient database searches |
US7146643B2 (en) * | 2002-10-29 | 2006-12-05 | Lockheed Martin Corporation | Intrusion detection accelerator |
US6888731B2 (en) | 2002-11-29 | 2005-05-03 | Mosaid Technologies Incorporated | Method and apparatus for replacing defective rows in a semiconductor memory array |
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 |
JP2004328103A (ja) | 2003-04-22 | 2004-11-18 | Matsushita Electric Works Ltd | 誤り検出回路 |
US7685254B2 (en) | 2003-06-10 | 2010-03-23 | Pandya Ashish A | Runtime adaptable search processor |
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 |
US7174469B2 (en) | 2003-09-30 | 2007-02-06 | International Business Machines Corporation | Processor power and energy management |
US7487542B2 (en) * | 2004-01-14 | 2009-02-03 | International Business Machines Corporation | Intrusion detection using a network processor and a parallel pattern detection engine |
US7251707B1 (en) | 2004-02-06 | 2007-07-31 | Netlogic Microsystems, Inc. | Content based content addressable memory block enabling using search key |
US7437402B1 (en) | 2004-02-25 | 2008-10-14 | Analog Devices, Inc. | Low-power, high-speed word comparator |
US7057913B2 (en) | 2004-04-06 | 2006-06-06 | Intel Corporation | Low-power search line circuit encoding technique for content addressable memories |
EP1600845A1 (en) | 2004-05-28 | 2005-11-30 | STMicroelectronics Limited | Processor with power saving circuitry |
US7437581B2 (en) | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US7050318B1 (en) | 2004-10-01 | 2006-05-23 | Netlogic Microsystems, Inc. | Selective match line pre-charging in a CAM device using pre-compare operations |
US7127375B2 (en) * | 2004-10-12 | 2006-10-24 | Taiwan Semiconductor Manufacturing Co., Ltd. | Non-uniformity pattern identification systems and methods thereof |
US20060143374A1 (en) | 2004-12-29 | 2006-06-29 | Sailesh Kottapalli | Pipelined look-up in a content addressable memory |
US7836284B2 (en) * | 2005-06-09 | 2010-11-16 | Qualcomm Incorporated | Microprocessor with automatic selection of processing parallelism mode based on width data of instructions |
US7598630B2 (en) | 2005-07-29 | 2009-10-06 | Intel Corporation | IC with on-die power-gating circuit |
JP2007066075A (ja) | 2005-08-31 | 2007-03-15 | Nikon Corp | 起動/停止ロジック回路 |
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 |
US7443759B1 (en) | 2006-04-30 | 2008-10-28 | Sun Microsystems, Inc. | Reduced-power memory with per-sector ground control |
US7512634B2 (en) * | 2006-06-05 | 2009-03-31 | Tarari, Inc. | Systems and methods for processing regular expressions |
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 |
US8001361B2 (en) | 2006-12-13 | 2011-08-16 | International Business Machines Corporation | Structure for a single shared instruction predecoder for supporting multiple processors |
JP2008276331A (ja) | 2007-04-25 | 2008-11-13 | Toshiba Corp | マルチプロセッサの制御装置及び方法 |
WO2008142767A1 (ja) | 2007-05-21 | 2008-11-27 | Renesas Technology Corp. | 半導体装置 |
US7643353B1 (en) | 2007-10-25 | 2010-01-05 | Netlogic Microsystems, Inc. | Content addressable memory having programmable interconnect structure |
US20090271646A1 (en) | 2008-04-24 | 2009-10-29 | Vanish Talwar | Power Management Using Clustering In A Multicore System |
US8112647B2 (en) | 2008-08-27 | 2012-02-07 | Globalfoundries Inc. | Protocol for power state determination and demotion |
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 |
US9639493B2 (en) | 2008-11-05 | 2017-05-02 | Micron Technology, Inc. | Pattern-recognition processor with results buffer |
US7970964B2 (en) | 2008-11-05 | 2011-06-28 | Micron Technology, Inc. | Methods and systems to accomplish variable width data input |
US7917684B2 (en) | 2008-11-05 | 2011-03-29 | Micron Technology, Inc. | Bus translator |
US8402188B2 (en) | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
US10007486B2 (en) | 2008-12-01 | 2018-06-26 | Micron Technology, Inc. | Systems and methods to enable identification of different data sets |
US9164945B2 (en) | 2008-12-01 | 2015-10-20 | Micron Technology, Inc. | Devices, systems, and methods to synchronize parallel processing of a single data stream |
US9348784B2 (en) | 2008-12-01 | 2016-05-24 | Micron Technology, Inc. | Systems and methods for managing endian mode of a device |
US8140780B2 (en) | 2008-12-31 | 2012-03-20 | Micron Technology, Inc. | Systems, methods, and devices for configuring a device |
US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
US8281395B2 (en) | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
US8214672B2 (en) * | 2009-01-07 | 2012-07-03 | Micron Technology, Inc. | Method and systems for power consumption management of a pattern-recognition processor |
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 |
US9014825B2 (en) * | 2009-06-16 | 2015-04-21 | Maxim Integrated Products, Inc. | System and method for sequentially distributing power among one or more modules |
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 |
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 |
US7920399B1 (en) | 2010-10-21 | 2011-04-05 | Netlogic Microsystems, Inc. | Low power content addressable memory device having selectable cascaded array segments |
EP2668577B1 (en) * | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
WO2012103143A2 (en) * | 2011-01-25 | 2012-08-02 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
EP2668576B1 (en) * | 2011-01-25 | 2024-04-24 | Micron Technology, INC. | State grouping for element utilization |
EP2668574B1 (en) * | 2011-01-25 | 2021-11-24 | Micron Technology, INC. | Utilizing special purpose elements to implement a fsm |
-
2009
- 2009-12-15 US US12/638,751 patent/US9501705B2/en active Active
-
2010
- 2010-12-07 JP JP2012544611A patent/JP5923449B2/ja active Active
- 2010-12-07 CN CN201080062795.9A patent/CN102741859B/zh active Active
- 2010-12-07 EP EP10795840A patent/EP2513840A1/en not_active Ceased
- 2010-12-07 KR KR1020127018578A patent/KR102004290B1/ko active Active
- 2010-12-07 WO PCT/US2010/059307 patent/WO2011081798A1/en active Application Filing
- 2010-12-15 TW TW099144035A patent/TWI465945B/zh active
-
2016
- 2016-11-21 US US15/357,593 patent/US10157208B2/en active Active
-
2018
- 2018-11-30 US US16/206,290 patent/US11151140B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4254476A (en) * | 1979-06-25 | 1981-03-03 | Sanders Associates, Inc. | Associative processor |
US6301671B1 (en) * | 1998-03-23 | 2001-10-09 | International Business Machines Corporation | Apparatus and method for power reduction control in a video encoder device |
WO2003023548A2 (en) * | 2001-09-12 | 2003-03-20 | Raqia Networks, Inc. | High speed data stream pattern recognition |
US20030110208A1 (en) * | 2001-09-12 | 2003-06-12 | Raqia Networks, Inc. | Processing data across packet boundaries |
CN1666180A (zh) * | 2002-07-03 | 2005-09-07 | 皇家飞利浦电子股份有限公司 | 多处理器计算机系统 |
CN1573656A (zh) * | 2003-05-27 | 2005-02-02 | 日本电气株式会社 | 并行处理系统中的电源管理系统及电源管理程序 |
CN1734437A (zh) * | 2004-07-01 | 2006-02-15 | 松下电器产业株式会社 | 多处理器控制设备、其控制方法和集成电路 |
US20070127482A1 (en) * | 2005-02-12 | 2007-06-07 | Curtis L. Harris | General Purpose Set Theoretic Processor |
US20060206737A1 (en) * | 2005-03-14 | 2006-09-14 | Samsung Electronics Co., Ltd. | Processor with variable wake-up and sleep latency and method for managing power therein |
Also Published As
Publication number | Publication date |
---|---|
US10157208B2 (en) | 2018-12-18 |
TW201135491A (en) | 2011-10-16 |
JP5923449B2 (ja) | 2016-05-24 |
KR102004290B1 (ko) | 2019-07-26 |
US11151140B2 (en) | 2021-10-19 |
US20170068707A1 (en) | 2017-03-09 |
US9501705B2 (en) | 2016-11-22 |
US20190095497A1 (en) | 2019-03-28 |
TWI465945B (zh) | 2014-12-21 |
KR20120106978A (ko) | 2012-09-27 |
WO2011081798A1 (en) | 2011-07-07 |
CN102741859B (zh) | 2016-12-21 |
US20110145271A1 (en) | 2011-06-16 |
EP2513840A1 (en) | 2012-10-24 |
JP2013513893A (ja) | 2013-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102741859A (zh) | 用于减少模式辨识处理器中的功率消耗的方法及设备 | |
US10466966B2 (en) | Systems and methods to enable identification of different data sets | |
CN102272713B (zh) | 用于型式辨识处理器的电力消耗管理的方法及系统 | |
TWI489300B (zh) | 用於傳達平行型樣搜尋引擎之型樣匹配結果之裝置、系統及方法 | |
US8281395B2 (en) | Pattern-recognition processor with matching-data reporting module | |
CN102203802B (zh) | 具有结果缓冲器的模式辨识处理器 | |
US9836555B2 (en) | Methods and devices for saving and/or restoring a state of a pattern-recognition processor | |
CN102713936A (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 |