CN102272713A - 用于型式辨识处理器的电力消耗管理的方法及系统 - Google Patents
用于型式辨识处理器的电力消耗管理的方法及系统 Download PDFInfo
- Publication number
- CN102272713A CN102272713A CN2009801540199A CN200980154019A CN102272713A CN 102272713 A CN102272713 A CN 102272713A CN 2009801540199 A CN2009801540199 A CN 2009801540199A CN 200980154019 A CN200980154019 A CN 200980154019A CN 102272713 A CN102272713 A CN 102272713A
- Authority
- CN
- China
- Prior art keywords
- feature unit
- piece
- search
- coupled
- search terms
- 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 17
- 238000003909 pattern recognition Methods 0.000 title claims abstract 5
- 239000004020 conductor Substances 0.000 claims abstract description 82
- 239000011159 matrix material Substances 0.000 claims description 76
- 230000009849 deactivation Effects 0.000 claims description 41
- 238000006116 polymerization reaction Methods 0.000 claims description 16
- 230000004913 activation Effects 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 description 26
- 238000010168 coupling process Methods 0.000 description 26
- 238000005859 coupling reaction Methods 0.000 description 26
- 230000014509 gene expression Effects 0.000 description 22
- 230000000694 effects Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 230000003213 activating effect Effects 0.000 description 11
- 238000001514 detection method Methods 0.000 description 10
- 230000013011 mating Effects 0.000 description 9
- 238000003491 array Methods 0.000 description 7
- 241001269238 Data Species 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 241000283690 Bos taurus Species 0.000 description 2
- 241000700605 Viruses Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 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
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 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
- 230000001256 tonic effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
- G06N5/047—Pattern matching networks; Rete networks
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/02—Indexing scheme relating to groups G06F7/02 - G06F7/026
- G06F2207/025—String search, i.e. pattern matching, e.g. find identical word or best match in a string
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Processing (AREA)
- Power Sources (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明揭示方法及装置,其中一种装置包含型式辨识处理器(14、96、98)。在一些实施例中,所述型式辨识处理器(14、96、98)包含第一特征单元(100、102、104)块(106),所述块(106)经由第一多个局部输入导体(120)、第一块停用电路(96、124)及多个全局输入导体(119)耦合到解码器(28)。所述型式辨识处理器(14、96、98)进一步包含第二特征单元(108、110、122)块(114),所述块(114)经由第二多个局部输入导体(120)、第二块停用电路(98、126)及所述多个全局输入导体(119)耦合到所述解码器(28)。
Description
技术领域
本发明的实施例一般来说涉及型式辨识处理器,且更具体来说在某些实施例中涉及具有局部输入导体的型式辨识处理器。
背景技术
在计算领域中,型式辨识任务越来越具有挑战性。计算机之间传输的数据量不断增大,且用户希望识别的型式数目日益增加。举例来说,通常通过搜索数据流中的型式(例如,特定短语或代码片段)来检测垃圾邮件或恶意软件。型式的数目随着垃圾邮件及恶意软件的变化而增加,因为可实施新型式以搜索新变体。搜索数据流以找到这些型式中的每一者可形成计算瓶颈。通常,在接收到数据流时,搜索数据流以一次一个地找到每一型式。在系统准备搜索数据流的下一部分之前的延迟随着型式数目而增加。因此,型式辨识可使数据的接收减慢。
已设计硬件来针对型式搜索数据流,但此硬件通常消耗过多的电量。一些经配置以搜索数据流的装置通过在多个电路当中散布所述数据流来搜索所述数据流。所述电路各自确定所述数据流是否匹配型式的一部分。通常,大量电路并行操作,每一者在大体相同时间搜索数据流。这些电路中的每一者消耗电能量且产生热量。因此,所产生的热量及所消耗的电量随型式的数目按比例缩放。在具有大量电路的装置中,电的成本及移除此热量的困难使使用型式辨识硬件变得复杂。
附图说明
图1描绘搜索数据流的系统的实例;
图2描绘图1的系统中的型式辨识处理器的实例;
图3描绘图2的型式辨识处理器中的搜索项单元的实例;
图4及图5描绘搜索数据流以找到单个字符的图3搜索项单元;
图6到图8描绘包含搜索数据流以找到词的数个搜索项单元的辨识模块;
图9描绘经配置以搜索数据流以并行找到两个词的辨识模块;
图10到图12描绘根据指定具有相同前缀的多个词的搜索准则进行搜索的辨识模块;
图13到图15描绘图2的型式辨识处理器中的块停用电路的实例;及
图16到图17图解说明图2的型式辨识处理器中的块停用电路的第二实例。
具体实施方式
图1描绘搜索数据流12的系统10的实例。系统10可包含型式辨识处理器14,其根据搜索准则16搜索数据流12。
每一搜索准则可指定一个或一个以上目标表达(即,型式)。短语“目标表达(targetexpression)”是指型式辨识处理器14正在搜索的数据序列。目标表达的实例包含拼写某一词的字符序列、指定基因的遗传碱基对序列、图片或视频文件中形成图像的一部分的位序列、可执行文件中形成程序的一部分的位序列或音频文件中形成歌曲或口语短语的一部分的位序列。
搜索准则可指定一个以上的目标表达。举例来说,搜索准则可指定以字母序列“cl”开始的所有五个字母的词、以字母序列“cl”开始的任一词、包含词“cloud”三次以上的段落等。目标表达的可能集合的数目为任意大,例如,可存在与数据流可呈现的数据排列同样多的目标表达。搜索准则可以各种格式来表达,包含规则表达、简明地指定目标表达集合而不必列举每一目标表达的编程语言。
每一搜索准则可由一个或一个以上搜索项构成。因此,搜索准则的每一目标表达可包含一个或一个以上搜索项且一些目标表达可使用共同搜索项。如本文中所使用,短语“搜索项(search term)”是指在单个搜索循环期间搜索的数据序列。所述数据序列可包含二进制格式或其它格式(例如,十进位、ASCII等)的多个数据位。所述序列可对具有单个数位或多个数位(例如,数个二进制数位)的数据进行编码。举例来说,型式辨识处理器14可一次一个字符地搜索文本数据流12,且搜索项可指定单个字符的集合,例如,字母“a”,字母“a”或“e”,或指定所有单个字符的集合的通配符搜索项。
搜索项可小于或大于指定字符(或由数据流表达的信息的其它字形—即,基本单位,例如,音符、遗传碱基对、10进位数位或子像素)的位的数目。举例来说,搜索项可为8个位且单个字符可为16个位,在此情况下,两个连续搜索项可指定单个字符。
搜索准则16可由编译器18格式化以用于型式辨识处理器14。格式化可包含从所述搜索准则拆析搜索项。举例来说,如果由数据流12表达的字形大于所述搜索项,那么所述编译器可将所述搜索准则拆析成多个搜索项以搜索单个字形。类似地,如果由数据流12表达的字形小于所述搜索项,那么编译器18可为每一单独字形提供具有未使用位的单个搜索项。编译器18也可格式化搜索准则16以支持型式辨识处理器14本机不支持的各种规则表达运算子。
型式辨识处理器14可通过评估来自数据流12的每一新项来搜索数据流12。此处,措辞“项”是指可匹配搜索项的数据量。在搜索循环期间,型式辨识处理器14可确定当前所呈现的项是否匹配搜索准则中的当前搜索项。如果所述项匹配所述搜索项,那么评估被“推进”,即,将下一项与搜索准则中的下一搜索项进行比较。如果所述项不匹配,那么将下一项与搜索准则中的第一项进行比较,借此复位所述搜索。
可将每一搜索准则编译到型式辨识处理器14中的不同有限状态机中。所述有限状态机可并行运行,从而根据搜索准则16搜索数据流12。当先前搜索项由数据流12匹配时,所述有限状态机可步进经过搜索准则中的每一连续搜索项,或如果所述搜索项未得到匹配,那么所述有限状态机可开始搜索所述搜索准则的第一搜索项。
型式辨识处理器14可(例如)在单个装置循环期间在约相同时间根据数个搜索准则及其相应搜索项评估每一新项。所述平行有限状态机可在约相同时间各自接收来自数据流12的项,且所述平行有限状态机中的每一者可确定所述项是否将所述所述平行有限状态机推进到其搜索准则中的下一搜索项。所述平行有限状态机可根据相对大数目的搜索准则(例如,100个以上、1000个以上或10,000个以上)来评估项。由于其并行操作,因此其可将所述搜索准则应用到具有相对高带宽的数据流12(例如,大于或大体等于每秒64MB或每秒128MB的数据流12)而不使所述数据流减慢。在一些实施例中,搜索-循环持续时间不随搜索准则的数目按比例调整,因此搜索准则的数目对型式辨识处理器14的性能可几乎没有影响。
当搜索准则得到满足时(即,在推进到最后一个搜索项且与其匹配后),型式辨识处理器14可将所述准则的满足报告给处理单元(例如,中央处理单元(CPU)20)。中央处理单元20可控制型式辨识处理器14及系统10的其它部分。
系统10可为搜索数据流的各种系统或装置中的任一者。举例来说,系统10可为监视数据流12的桌上型计算机、膝上型计算机、手持式计算机或其它类型的计算机。系统10也可为网络节点,例如,路由器、服务器或客户端(例如,先前所描述类型的计算机中的一者)。系统10可为某一其它类别的电子装置,例如,复印机、扫描仪、打印机、游戏控制台、电视、机上视频散布或记录系统、电缆盒、个人数字媒体播放器、工厂自动化系统、汽车计算机系统或医疗装置。(用于描述系统的这些各种实例的术语(像本文中所使用的许多其它术语)可共享一些所指物,且因此不应仅根据所列举的其它项来理解)。
数据流12可为用户或其它实体可希望搜索的各种类型的数据流中的一者或一者以上。举例来说,数据流12可为经由网络接收的数据流,例如,经由因特网接收的包或经由蜂窝式网络接收的语音或数据。数据流12可为从与系统10通信的传感器(例如,成像传感器、温度传感器、加速度计或类似物或其组合)接收的数据。数据流12可作为串行数据流由系统10接收,其中以具有意义的次序(例如,以时间、词法或语义显著的次序)接收数据。或者,可并行或无序地接收数据流12,且然后(例如)通过对经由因特网接收的包重新排序将其转换成串行数据流。在一些实施例中,数据流12可以串行方式呈现项,但可并行地接收表达所述项中的每一者的位。可从系统10外部的源接收数据流12,或可通过询问存储器装置且由所存储的数据形成数据流12来形成数据流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可为基于可表示一个项的所接收字节的值激活256个行中的一者的单字节到256行解码器。0000 0000的单字节项可对应于多个输入导体37当中的顶行,且1111 1111的单字节项可对应于多个输入导体37当中的底行。因此,依据从数据流12接收到哪些项,可选择不同输入导体37。在接收不同项时,行解码器28可去激活对应于先前项的行且激活对应于新项的行。
检测阵列34可耦合到检测总线38,所述检测总线将指示搜索准则的完全或部分满足的信号输出到聚合模块24。激活路由矩阵36可基于搜索准则中已得到匹配的搜索项的数目选择性地激活及去激活特征单元30。
聚合模块24可包含锁存器矩阵40、聚合路由矩阵42、阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48及初始化路由矩阵50。
锁存器矩阵40可实施某些搜索准则的部分。一些搜索准则(例如,一些规则表达)仅计数匹配或匹配群组的第一次出现。锁存器矩阵40可包含记录匹配是否已出现的锁存器。可在搜索准则经确定得到满足或不可进一步满足(即,在可满足所述搜索准则之前,可需要再次匹配较早搜索项)时,在初始化期间清零锁存器,且在操作期间周期性地重新初始化锁存器。
聚合路由矩阵42可类似于激活路由矩阵36发挥作用。聚合路由矩阵42可在检测总线38上接收指示匹配的信号且可将所述信号路由到连接到阈值逻辑矩阵44的不同群组逻辑线53。聚合路由矩阵42也可将初始化路由矩阵50的输出路由到检测阵列34,以在搜索准则经确定得到满足或不可进一步满足时复位检测阵列34的部分。
阈值逻辑矩阵44可包含多个计数器,例如,经配置以递增计数或递减计数的32位计数器。阈值逻辑矩阵44可加载有初始计数且其可基于由辨识模块发信的匹配而从所述计数递增计数或递减计数。举例来说,阈值逻辑矩阵44可计数字在某一长度的文本中出现的数目。
阈值逻辑矩阵44的输出可为到逻辑积矩阵46的输入。逻辑积矩阵46可选择性地产生“积”结果(例如,布尔逻辑(Boolean logic)中的“AND”函数)。逻辑积矩阵46可实施为方矩阵,其中输出积的数目等于来自阈值逻辑矩阵44的输入线的数目,或逻辑积矩阵46可具有不同于输出的数目的输入。可将所得积值输出到逻辑和矩阵48。
逻辑和矩阵48可选择性地产生和(例如,布尔逻辑中的“OR”函数)。逻辑和矩阵48也可为方矩阵,或逻辑和矩阵48可具有不同于输出的数目的输入。由于所述输入为逻辑积,因此逻辑和矩阵48的输出可为逻辑积和(例如,布尔逻辑积和(SOP)形式)。逻辑和矩阵48的输出可由初始化路由矩阵50接收。
初始化路由矩阵50可经由聚合路由矩阵42复位检测阵列34及聚合模块24的部分。初始化路由矩阵50也可实施为方矩阵,或初始化路由矩阵50可具有不同于输出的数目的输入。例如,当搜索准则得到满足或经确定不可进一步满足时,初始化路由矩阵50可响应于来自逻辑和矩阵48的信号且重新初始化型式辨识处理器14的其它部分。
聚合模块24可包含输出缓冲器51,其接收阈值逻辑矩阵44、聚合路由矩阵42及逻辑和矩阵48的输出。聚合模块24的输出可在输出总线26上从输出缓冲器51传输到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(例如,上文所描述类型的存储器单元中的一者(例如,触发器)),存储器单元70指示特征单元63、64或66是活动的还是不活动的。检测单元68可经配置以将指示所述检测单元是否是活动的及是否已从其相关联搜索项单元54接收到指示匹配的信号两者的信号输出到激活路由矩阵36。不活动特征单元63、64及66可忽视匹配。检测单元68中的每一者可包含具有来自存储器单元70及输出导体56的输入的AND门。可将所述AND门的输出路由到检测总线38及激活路由矩阵36两者或一者或另一者。
激活路由矩阵36又可通过写入到检测阵列34中的存储器单元70来选择性地激活特征单元63、64及66。激活路由矩阵36可根据搜索准则及接下来在数据流12中搜索哪一搜索项来激活特征单元63、64或66。
在图6中,数据流12呈现字母“b”。作为响应,特征单元63、64及66中的每一者可在其输出导体56上输出指示存储于连接到导体62的存储器单元58(其表示字母“b”)中的值的信号。然后,检测单元56可各自确定其是否已接收到指示匹配的信号及其是否是活动的。由于特征单元63经配置以检测字母“b”且是活动的(如其存储器单元70所指示),因此特征单元63中的检测单元68可将指示搜索准则的第一搜索项已得到匹配的信号输出到激活路由矩阵36。
如图7所图解说明,在第一搜索项得到匹配之后,激活路由矩阵36可通过将1写入到其检测单元68中的其存储器单元70来激活下一特征单元64。在下一项满足第一搜索项的情况下(例如,如果接收到项序列“bbig”),激活路由矩阵36也可维持特征单元63的活动状态。在搜索数据流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个或更多个激活路由单元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。搜索第一字尾90可在允许特征单元66变成不活动时停止。图10到图12所图解说明的步骤可继续经过字母“u”及“d”,或搜索可停止直到下一次前缀88得到匹配为止。
图13图解说明包含块停用电路96及98的辨识模块94的实施例。块停用电路96可经配置以选择性地停用特征单元块106中的特征单元100、102及104,且块停用电路98可经配置以选择性地停用另一特征单元块114中的特征单元108、110及112。
特征单元块106及114各自可包含多个特征单元,例如,大于或等于约4、8、16、32、64、128、256、512、1024或2048的数目。块106及114中的每一者中的特征单元的数目可约相等,或块106及114可具有彼此不同数目的特征单元。所图解说明的辨识模块94包含两个块106及114,但其它实施例可包含更多个块,例如,数百个或数千个之多。块106及114中的每一者包含特征单元群组,所述特征单元彼此邻近,但在其它实施例中,一个块内的特征单元可与来自另一块的特征单元交错。块106及114各自包含一个块停用电路96或98,但其它实施例可包含一个以上块停用电路。举例来说,在块内,一个块停用电路可经配置以停用所述块内的特征单元的下部部分,且另一块停用电路可经配置以停用所述块内的特征单元的上部部分。块停用电路96及98可分别安置于块106及114中的每一者的一侧处,例如,较接近于行解码器28的侧,或在其它实施例中,块停用电路96及98可靠近块106及114的另一侧安置或安置于块106及114内的特征单元当中。举例来说,块停用电路96及98可靠近块106及114中的每一者的中部安置,以减小来自块停用电路96及98的信号行进到达块106及114的边缘的距离。
块停用电路96及98中的每一者可包含多个AND门116及OR门118。AND门116各自可具有两个输入端子:一个连接到OR门118的输出且一个连接到全局输入导体119。AND门116中的每一者的输出可连接到局部输入导体120。局部输入导体120可连接到块106或114内的存储器单元58中的每一者,而非其它块106或114内的存储器单元58。局部输入导体120可将致使存储器单元58输出其所存储的值的信号传输到存储器单元58。因此,局部输入导体120可类似于上文参照图2到图12所描述的输入导体37发挥作用。全局输入导体119可连接到块106及114中的每一者中的AND门116,借此使输入信号可供块106及114中的每一者使用。
OR门118各自可具有连接到其相关联块106或114内的检测单元68的输入端子。具体来说,OR门118的输入端子可连接到检测单元68中的每一者中的存储器单元70。因此,OR门118的输出可指示其相关联块106或114内的特征单元中的任一者是否是活动的。如果相关联块106或114内的特征单元中没有一个是活动的,那么OR门118可输出逻辑低信号或指示所述特征单元中没有一个活动的其它信号。如果相关联块106或114内的特征单元中的至少一者是活动的,那么OR门118可输出逻辑高信号或指示所述特征单元中的至少一者活动的其它信号。
辨识模块94的操作由图14到图15图解说明。在图14中,辨识模块94经配置以使得块106中的特征单元100是活动的且块114中的特征单元中没有一个是活动的。因此,块114中的特征单元由块停用电路98停用,而块106中的特征单元从行解码器28接收信号。
在此实例中,数据流12呈现致使行解码器28在全局输入导体119′上传输信号的项。此信号由块106中的特征单元接收,而非块114中的特征单元。可停用块114,因为块114中的特征单元中没有一个是活动的。由于不包含任何活动的特征单元,块114中的OR门118可输出逻辑低信号。因此,块停用电路98中的AND门116中的每一者的输入中的一者可为逻辑低,且因此AND门116中没有一个将信号从全局输入导体119′传输到局部输入导体120′,借此防止块114中的存储器单元58输出其所存储的值。
相信停用不具有任何活动特征单元的块减少电力消耗。不是辨识模块94中的所有特征单元从与所接收项相关联的存储器单元58输出值,而是所述特征单元的子组不输出所存储的值。在本实例中,可节省电力,因为当新项被呈现时块114中的特征单元中没有一个输出值。相信此节约电能量,因为块114中的输出导体56不汲取电流。
然而,停用块114中的特征单元不损害辨识模块94的操作,因为块114中的特征单元中没有一个是活动的。因此,即使块114中的特征单元中的一者指定由数据流12呈现的项,那些特征单元也不将响应于所述项,因为其将不会既具有匹配且又是活动的。
图15图解说明辨识模块94的操作的另一实例。在图15中,块106中的所有特征单元已变为不活动,且块114中的特征单元中的一者已被激活。因此,块停用电路96停用块106,而块114可保持操作。在此实例中,块106中的OR门118可输出逻辑低值,因为其输入中的每一者为逻辑低。相反,块114中的OR门118可输出逻辑高值,因为其输入中的至少一者为逻辑高。此逻辑高输出可由块114中的AND门116中的每一者接收,且全局输入导体119上的信号可传输到块114中的局部输入导体120,而非块106中的局部输入导体120。同样,通过不从块106中的存储器单元58进行读取可节省电能量且减少热量产生。
在其它实例中,块106及114两者可包含因此活动的至少一个特征。在这些实例中,辨识模块94可与上文参照图2到图12所描述的辨识模块22类似或大体相同地发挥作用。
图16图解说明辨识模块122的另一实施例。辨识模块122可包含块停用电路124及126,其各自可具有存储器单元128,所述存储器单元指示其相关联块106或114中的特征单元中的任一者是否是活动的。存储器单元128可将其所存储的值输出到其相关联块停用电路124或126中的AND门116的输入中的一者。存储器单元128可包含前文所描述的类型的存储器单元中的任一者。
存储器单元128所存储的值可由激活路由矩阵36写入到存储器单元128。举例来说,激活路由矩阵36可经配置以每当相关联块106或114内的特征单元被激活时在存储器单元128中的每一者中存储逻辑高值。激活路由矩阵36也可经配置以在存储器单元的相关联块106或114内的所有特征单元被去激活时在存储器单元128中存储逻辑低值。
图17图解说明操作中的辨识模块122。在图17中,块106中的特征单元104既是活动的且又已检测到匹配。其检测单元68通过信号将此指示给激活路由矩阵36。作为响应,激活路由矩阵36将逻辑高值写入到块停用电路126中的存储器单元128及特征单元108中的存储器单元70中。因此,使块114操作。在后续操作期间,如果特征单元108变为不活动且块114中的其它特征单元中没有一个被激活,那么激活路由矩阵36可在块停用电路126中的存储器单元128中存储逻辑低值,借此停用块114且节约块114原本可消耗的电力。
虽然本发明可容许有各种修改及替代形式,但具体实施例已以实例方式显示于图式中并已详细描述于本文中。然而,应理解,本发明并非打算限定于所揭示的特定形式。相反,本发明将涵盖归属于如以上所附权利要求书所界定的本发明的精神及范围内的所有修改形式、等效形式及替代形式。
Claims (34)
1.一种装置,其包括:
型式辨识处理器,其包括:
解码器;
第一特征单元块,其经由第一多个局部输入导体、第一块停用电路及多个全局输入导体耦合到所述解码器;及
第二特征单元块,其经由第二多个局部输入导体、第二块停用电路及所述多个全局输入导体耦合到所述解码器。
2.根据权利要求1所述的装置,其中所述第一多个局部输入导体中的每一者耦合到所述第一特征单元块中的每一特征单元中的多个存储器单元中的一者。
3.根据权利要求1所述的装置,其中所述解码器耦合到输入数据流,且所述型式辨识处理器经配置以根据通过所述第一特征单元块及所述第二特征单元块编码的多个搜索准则搜索所述数据流。
4.根据权利要求1所述的装置,其中所述第一块停用电路包括多个AND门,每一AND门具有一输出端子,所述输出端子耦合到所述第一多个局部输入导体当中的所述局部输入导体中的一者。
5.根据权利要求4所述的装置,其中所述多个AND门各自具有输入端子,所述输入端子耦合到所述多个全局输入导体当中的所述全局输入导体中的一者。
6.根据权利要求4所述的装置,其中所述多个AND门各自具有输入端子,所述输入端子耦合到OR门的输出端子。
7.根据权利要求6所述的装置,其中所述OR门具有多个输入端子,每一输入端子耦合到所述第一多个特征单元中的所述特征单元中的一者中的检测单元。
8.根据权利要求6所述的装置,其中所述OR门具有多个输入端子,每一输入端子耦合到一存储器单元,所述存储器单元经配置以指示所述第一多个特征单元中的一个或一个以上特征单元是否是活动的。
9.根据权利要求6所述的装置,其中所述OR门包括多个输入端子,所述输入端子各自耦合到所述第一多个特征单元中的所述特征单元中的一者中的检测单元中的存储器单元。
10.根据权利要求4所述的装置,其中所述多个AND门各自包括输入端子,所述输入端子耦合到存储器单元。
11.根据权利要求10所述的装置,其包括耦合到所述存储器单元的激活路由矩阵,其中所述激活路由矩阵经配置以在所述存储器单元中存储指示所述第一多个特征单元中的任何特征单元是否是活动的值。
12.根据权利要求1所述的装置,其中所述第一特征单元块包括255个以上的特征单元且所述第二特征单元块包括255个以上的特征单元。
13.一种方法,其包括:
接收来自全局输入导体的信号;
确定特征单元块中的任何特征单元是否是活动的;及
如果所述特征单元块中的至少一个特征单元是活动的,那么将来自所述全局输入导体的所述信号传输到耦合到所述特征单元块的局部输入导体。
14.根据权利要求13所述的方法,其中接收来自全局输入导体的信号包括接收来自耦合到多个特征单元块的全局输入导体的信号。
15.根据权利要求13所述的方法,其中接收来自全局输入导体的信号包括接收来自解码器的信号。
16.根据权利要求13所述的方法,其中确定特征单元块中的任何特征单元是否是活动的包括从耦合到所述特征单元块中的所述特征单元中的每一者的OR门输出信号。
17.根据权利要求13所述的方法,其中确定所述特征单元块中的任何特征单元是否是活动的包括输出由经配置以指示所述特征单元块中的所述特征单元中的任一者是否是活动的存储器单元所存储的值。
18.根据权利要求13所述的方法,其中将来自所述全局输入导体的所述信号传输到所述局部输入导体包括从AND门的输出端子传输所述信号。
19.根据权利要求13所述的方法,其中将来自所述全局输入导体的所述信号传输到所述局部输入导体包括将来自所述全局输入导体的所述信号传输到多个局部输入导体,每一局部输入导体与包含至少一个活动特征单元的不同特征单元块相关联。
20.根据权利要求13所述的方法,其包括根据搜索准则搜索数据流。
21.根据权利要求20所述的方法,其包括从远程服务器接收所述搜索准则。
22.一种系统,其包括:
处理单元(PU);及
型式辨识处理器,其耦合到所述PU,其中所述型式辨识处理器包括多个块停用电路。
23.根据权利要求22所述的系统,其中所述型式辨识处理器包括多个特征单元块,且其中所述多个特征单元块当中的每一特征单元块与所述多个块停用电路当中的所述块停用电路中的一者相关联。
24.根据权利要求22所述的系统,其中所述多个块停用电路当中的每一块停用电路经配置以选择性地防止来自由所述型式辨识处理器正搜索的数据流的信号到达不包含任何活动特征单元的特征单元块。
25.根据权利要求22所述的系统,其中所述型式辨识处理器包括耦合到所述多个块停用电路当中的所述块停用电路中的每一者的行解码器。
26.根据权利要求25所述的系统,其中所述型式辨识处理器包括多个全局输入导体,所述全局输入导体将所述行解码器耦合到所述多个块停用电路当中的所述块停用电路中的每一者。
27.根据权利要求26所述的系统,其中所述型式辨识处理器包括多个局部输入导体,所述局部输入导体通过所述多个块停用电路选择性地耦合到所述多个全局输入导体中的每一者。
28.根据权利要求26所述的系统,其中所述型式辨识处理器包括:
多个特征单元块,每一特征单元块耦合到所述块停用电路中的一者;
激活路由矩阵,其耦合到所述特征单元块中的每一者;及
聚合模块,其耦合到所述特征单元块中的每一者。
29.根据权利要求22所述的系统,其中所述PU及所述型式辨识模块为网络交换机、路由器、个人计算机或服务器的一部分。
30.一种方法,其包括:
接收数据流;
根据搜索准则搜索所述数据流,其中所述搜索准则中的每一者包括多个搜索项,且其中所述多个搜索项被分组为第一搜索项块及第二搜索项块;
确定所述第一搜索项块中的任何搜索项是否是活动的;及
如果所述第一搜索项块中没有搜索项是活动的,那么停用所述第一搜索项块。
31.根据权利要求30所述的方法,其中接收所述数据流包括经由网络接收数据包。
32.根据权利要求30所述的方法,其中将所述搜索项编码于存储器中特征单元中。
33.根据权利要求30所述的方法,其包括:
确定所述第二搜索项块中的任何搜索项是否是活动的;及
如果所述第二搜索项块中没有搜索项是活动的,那么停用所述第二搜索项块。
34.根据权利要求30所述的方法,其中停用所述第一搜索项块包括防止信号在全局输入导体与和所述第一搜索项块相关联的局部输入导体之间传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510507862.8A CN105159650B (zh) | 2009-01-07 | 2009-12-16 | 用于型式辨识处理器的电力消耗管理的方法及系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/350,142 US8214672B2 (en) | 2009-01-07 | 2009-01-07 | Method and systems for power consumption management of a pattern-recognition processor |
US12/350,142 | 2009-01-07 | ||
PCT/US2009/068273 WO2010080444A2 (en) | 2009-01-07 | 2009-12-16 | Methods and systems for power consumption management of a pattern-recognition processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510507862.8A Division CN105159650B (zh) | 2009-01-07 | 2009-12-16 | 用于型式辨识处理器的电力消耗管理的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102272713A true CN102272713A (zh) | 2011-12-07 |
CN102272713B CN102272713B (zh) | 2015-09-23 |
Family
ID=41738884
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510507862.8A Active CN105159650B (zh) | 2009-01-07 | 2009-12-16 | 用于型式辨识处理器的电力消耗管理的方法及系统 |
CN200980154019.9A Active CN102272713B (zh) | 2009-01-07 | 2009-12-16 | 用于型式辨识处理器的电力消耗管理的方法及系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510507862.8A Active CN105159650B (zh) | 2009-01-07 | 2009-12-16 | 用于型式辨识处理器的电力消耗管理的方法及系统 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8214672B2 (zh) |
EP (1) | EP2386080B1 (zh) |
JP (1) | JP5489014B2 (zh) |
KR (1) | KR101694560B1 (zh) |
CN (2) | CN105159650B (zh) |
TW (1) | TWI414998B (zh) |
WO (1) | WO2010080444A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104011736A (zh) * | 2011-12-15 | 2014-08-27 | 美光科技公司 | 用于状态机中的检测的方法及系统 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938590B2 (en) | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
US8209521B2 (en) | 2008-10-18 | 2012-06-26 | Micron Technology, Inc. | Methods of indirect register access including automatic modification of a directly accessible address register |
US7917684B2 (en) * | 2008-11-05 | 2011-03-29 | Micron Technology, Inc. | Bus translator |
US8402188B2 (en) | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
US8281395B2 (en) * | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
WO2011053324A1 (en) * | 2009-10-31 | 2011-05-05 | Hewlett-Packard Development Company, L.P. | Malicious code detection |
US8489534B2 (en) | 2009-12-15 | 2013-07-16 | Paul D. Dlugosch | Adaptive content inspection |
US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
US9501705B2 (en) | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
US8766666B2 (en) | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
EP2668577B1 (en) | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
US8726253B2 (en) | 2011-01-25 | 2014-05-13 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
JP5763784B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 要素利用のための状態のグループ化 |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US8648621B2 (en) * | 2011-12-15 | 2014-02-11 | Micron Technology, Inc. | Counter operation in a state machine lattice |
US8593175B2 (en) | 2011-12-15 | 2013-11-26 | Micron Technology, Inc. | Boolean logic in a state machine lattice |
US9443156B2 (en) | 2011-12-15 | 2016-09-13 | Micron Technology, Inc. | Methods and systems for data analysis in a state machine |
US8680888B2 (en) | 2011-12-15 | 2014-03-25 | Micron Technologies, Inc. | Methods and systems for routing in a state machine |
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 |
US9389841B2 (en) * | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
US9304968B2 (en) | 2012-07-18 | 2016-04-05 | Micron Technology, Inc. | Methods and devices for programming a state machine engine |
US9075428B2 (en) | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for state machine engines |
US9501131B2 (en) | 2012-08-31 | 2016-11-22 | Micron Technology, Inc. | Methods and systems for power management in a pattern recognition processing system |
US9448965B2 (en) | 2013-03-15 | 2016-09-20 | Micron Technology, Inc. | Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine |
US9703574B2 (en) | 2013-03-15 | 2017-07-11 | Micron Technology, Inc. | Overflow detection and correction in state machine engines |
WO2016109570A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Systems and devices for accessing a state machine |
US11366675B2 (en) | 2014-12-30 | 2022-06-21 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
WO2016109571A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Devices for time division multiplexing of state machine engine signals |
US10977309B2 (en) | 2015-10-06 | 2021-04-13 | Micron Technology, Inc. | Methods and systems for creating networks |
US10846103B2 (en) | 2015-10-06 | 2020-11-24 | Micron Technology, Inc. | Methods and systems for representing processing resources |
US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
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 |
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 |
US11567554B2 (en) * | 2017-12-11 | 2023-01-31 | Advanced Micro Devices, Inc. | Clock mesh-based power conservation in a coprocessor based on in-flight instruction characteristics |
US11709681B2 (en) | 2017-12-11 | 2023-07-25 | Advanced Micro Devices, Inc. | Differential pipeline delays in a coprocessor |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602764A (en) * | 1993-12-22 | 1997-02-11 | Storage Technology Corporation | Comparing prioritizing memory for string searching in a data compression 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 |
US20050219887A1 (en) * | 2004-04-06 | 2005-10-06 | Intel Corporation | Low-power search line circuit encoding technique for content addressable memories |
US20070127482A1 (en) * | 2005-02-12 | 2007-06-07 | Curtis L. Harris | General Purpose Set Theoretic Processor |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US944710A (en) * | 1905-11-18 | 1909-12-28 | Nat Water Main Cleaning Company | Pipe-cleaning device. |
US4478629A (en) * | 1981-07-08 | 1984-10-23 | Ball Corporation | Power failure detection system for a glassware forming machine |
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 |
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 |
US6301671B1 (en) * | 1998-03-23 | 2001-10-09 | International Business Machines Corporation | Apparatus and method for power reduction control in a video encoder device |
JPH11298424A (ja) * | 1998-04-10 | 1999-10-29 | Matsushita Electric Ind Co Ltd | 情報受信装置 |
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 |
US6240003B1 (en) * | 2000-05-01 | 2001-05-29 | Micron Technology, Inc. | DRAM content addressable memory using part of the content as an address |
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 | 情報伝達装置、情報伝達方法及びモニタ装置 |
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 |
US7401180B1 (en) * | 2001-12-27 | 2008-07-15 | Netlogic Microsystems, Inc. | Content addressable memory (CAM) device having selectable access and method therefor |
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 | 誤り検出回路 |
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 |
JP2005190429A (ja) * | 2003-12-26 | 2005-07-14 | Hiroshima Univ | 参照データ認識・学習方法及びパターン認識システム |
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 |
JP3861157B2 (ja) * | 2004-02-27 | 2006-12-20 | 国立大学法人広島大学 | 参照データ最適化装置とパターン認識システム |
EP1600845A1 (en) * | 2004-05-28 | 2005-11-30 | STMicroelectronics Limited | Processor with power saving circuitry |
US7523330B2 (en) * | 2004-06-30 | 2009-04-21 | Sun Microsystems, Inc. | Thread-based clock enabling in a multi-threaded processor |
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 |
US20060143374A1 (en) * | 2004-12-29 | 2006-06-29 | Sailesh Kottapalli | Pipelined look-up in a content addressable memory |
CA2509496A1 (en) * | 2005-06-06 | 2006-12-06 | 3618633 Canada Inc. | Search-enhanced trie-based syntactic pattern recognition of sequences |
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 |
US7663961B1 (en) * | 2006-04-30 | 2010-02-16 | Sun Microsystems, Inc. | Reduced-power memory with per-sector power/ground control and early address |
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 |
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 |
US8209521B2 (en) | 2008-10-18 | 2012-06-26 | Micron Technology, Inc. | Methods of indirect register access including automatic modification of a directly accessible address register |
US8938590B2 (en) | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
US7917684B2 (en) | 2008-11-05 | 2011-03-29 | Micron Technology, Inc. | Bus translator |
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 |
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 |
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 |
US9164945B2 (en) | 2008-12-01 | 2015-10-20 | Micron Technology, Inc. | Devices, systems, and methods to synchronize parallel processing of a single data stream |
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 |
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 |
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 |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US8726253B2 (en) | 2011-01-25 | 2014-05-13 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
JP5763784B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 要素利用のための状態のグループ化 |
EP2668577B1 (en) | 2011-01-25 | 2019-08-14 | Micron Technology, INC. | Unrolling quantifications to control in-degree and/or out degree of automaton |
-
2009
- 2009-01-07 US US12/350,142 patent/US8214672B2/en active Active
- 2009-12-16 KR KR1020117018423A patent/KR101694560B1/ko active IP Right Grant
- 2009-12-16 JP JP2011544469A patent/JP5489014B2/ja active Active
- 2009-12-16 CN CN201510507862.8A patent/CN105159650B/zh active Active
- 2009-12-16 CN CN200980154019.9A patent/CN102272713B/zh active Active
- 2009-12-16 EP EP09802067.0A patent/EP2386080B1/en active Active
- 2009-12-16 WO PCT/US2009/068273 patent/WO2010080444A2/en active Application Filing
- 2009-12-29 TW TW098145591A patent/TWI414998B/zh active
-
2012
- 2012-06-29 US US13/538,714 patent/US9389833B2/en active Active
-
2016
- 2016-07-11 US US15/206,844 patent/US10152113B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602764A (en) * | 1993-12-22 | 1997-02-11 | Storage Technology Corporation | Comparing prioritizing memory for string searching in a data compression 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 |
US20050219887A1 (en) * | 2004-04-06 | 2005-10-06 | Intel Corporation | Low-power search line circuit encoding technique for content addressable memories |
US20070127482A1 (en) * | 2005-02-12 | 2007-06-07 | Curtis L. Harris | General Purpose Set Theoretic Processor |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104011736A (zh) * | 2011-12-15 | 2014-08-27 | 美光科技公司 | 用于状态机中的检测的方法及系统 |
CN104011736B (zh) * | 2011-12-15 | 2017-06-20 | 美光科技公司 | 用于状态机中的检测的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2012514789A (ja) | 2012-06-28 |
WO2010080444A2 (en) | 2010-07-15 |
US9389833B2 (en) | 2016-07-12 |
KR101694560B1 (ko) | 2017-01-09 |
EP2386080A2 (en) | 2011-11-16 |
CN105159650A (zh) | 2015-12-16 |
CN105159650B (zh) | 2018-01-23 |
JP5489014B2 (ja) | 2014-05-14 |
CN102272713B (zh) | 2015-09-23 |
TW201033900A (en) | 2010-09-16 |
US20120266005A1 (en) | 2012-10-18 |
WO2010080444A3 (en) | 2010-09-02 |
US8214672B2 (en) | 2012-07-03 |
KR20110110791A (ko) | 2011-10-07 |
US20100174929A1 (en) | 2010-07-08 |
US10152113B2 (en) | 2018-12-11 |
EP2386080B1 (en) | 2019-01-23 |
TWI414998B (zh) | 2013-11-11 |
US20160320829A1 (en) | 2016-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102272713A (zh) | 用于型式辨识处理器的电力消耗管理的方法及系统 | |
CN102203802B (zh) | 具有结果缓冲器的模式辨识处理器 | |
US10466966B2 (en) | Systems and methods to enable identification of different data sets | |
US11151140B2 (en) | Methods and apparatuses for reducing power consumption in a pattern recognition processor | |
US10817569B2 (en) | Methods and devices for saving and/or restoring a state of a pattern-recognition processor | |
CN102272776A (zh) | 用于型式辨识处理器的总线 | |
US8719206B2 (en) | Pattern-recognition processor with matching-data reporting module | |
US8843523B2 (en) | Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine | |
US9164945B2 (en) | Devices, systems, and methods to synchronize parallel processing of a single data stream | |
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 |