CN102122270B - 在存储器中查找数据的方法和装置以及存储器 - Google Patents

在存储器中查找数据的方法和装置以及存储器 Download PDF

Info

Publication number
CN102122270B
CN102122270B CN2011100429418A CN201110042941A CN102122270B CN 102122270 B CN102122270 B CN 102122270B CN 2011100429418 A CN2011100429418 A CN 2011100429418A CN 201110042941 A CN201110042941 A CN 201110042941A CN 102122270 B CN102122270 B CN 102122270B
Authority
CN
China
Prior art keywords
memory block
hit
data
priority
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2011100429418A
Other languages
English (en)
Other versions
CN102122270A (zh
Inventor
季秉武
赵坦夫
周云明
李家荣
林崴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2011100429418A priority Critical patent/CN102122270B/zh
Publication of CN102122270A publication Critical patent/CN102122270A/zh
Priority to EP12156633A priority patent/EP2492828A1/en
Priority to US13/403,478 priority patent/US20120233415A1/en
Application granted granted Critical
Publication of CN102122270B publication Critical patent/CN102122270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明的实施例提供了在存储器中查找数据的方法和装置以及存储器。存储器包括至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应。该方法包括:确定当前存储区中是否存在与待查找数据相匹配的命中存储区块;如果确定存在所述命中存储区块,则查找下一存储区中与命中存储区块对应的存储区块,以确定是否还存在命中存储区块。该装置包括确定模块和查找模块。该存储器包括上述装置。根据本发明的实施例,在存储区块命中的情况下,在下一存储区中查找与所命中的存储区块相应的存储区块,使得与未命中的存储区块对应的存储区块可以不执行操作,从而可以降低功耗。

Description

在存储器中查找数据的方法和装置以及存储器
技术领域
本发明涉及数据存储领域,并且特别地,涉及数据存储领域中在存储器中查找数据的方法和装置以及存储器。
背景技术
内容可寻址存储器(Content Addressable Memory,CAM)和三态内容寻址存储器(ternary CAM,TCAM)是在传统的存储器基础上发展起来的基于内容查找的存储器。目前基于内容查找的存储器以CAM和TCAM为代表,主要用于快速查找访问控制列表、路由表等表项。通过CAM,可以实现精确的数据查找,而通过TCAM,不仅可以实现精确的数据查找,还可以实现模糊的数据查找。
数据查找是指在存储器中查找与从待查找数据输入线(例如位线)输入的数据相匹配的数据,其中,存储器进行数据匹配操作,以确定从待查找数据输入线输入的数据是否与存储器中存储的数据相匹配。从上层应用来看,待查找数据是期望查找的内容,而内容则是按照一定格式存储在存储器中的数据。上层应用将期望查找的内容从待查找数据输入线送入存储器,以确定在存储器中是否存在期望查找的内容。因此,从某种意义上说,在存储器中查找数据就是上层应用在存储器中查找内容。
在CAM或TCAM中,通过位线也就是CAM或TCAM中的关键字(KEY)线来输入待查找数据。如果在CAM或TCAM中查找到与待查找数据相应的存储数据,则通过匹配线(ML线)输出指示查找到相应数据的信号。在某些应用中,可以将ML线输出的信号作为地址,输出给连接在CAM或TCAM之后的诸如只读存储器、随机存取存储器或闪存存储器之类的存储器,用于从这些存储器中读取数据。
CAM和TCAM具有查找速度快、操作简单的优点,但是也具有功耗大、成本高等明显缺点。
在现有技术中,将TCAM根据需要划分为几个存储区,在前一存储区不匹配的情况下,下一存储区不进行操作,节省了电路和连线的翻转,降低了功耗。但是,在前一存储区匹配的情况下,后一存储区整体都进行操作,其功耗存在进一步降低的可能。特别是当TCAM规模进一步增大时,对功耗的要求进一步提高,存储区整体进行操作,将消耗更多的功耗。
发明内容
本发明实施例提供了在存储器中查找数据的方法和装置以及存储器,克服了需要查找存储区整体的缺陷,从而能够在查找数据的过程中降低功耗。
一方面,本发明实施例提供了一种在存储器中查找数据的方法。该存储器包括至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应。该方法包括:确定当前存储区中是否存在与待查找数据相匹配的命中存储区块;如果确定存在命中存储区块,则查找下一存储区中与命中存储区块对应的存储区块,以确定是否还存在命中存储区块。
另一方面,本发明实施例提供了一种在存储器中查找数据的装置。该存储器包括至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应。该装置包括:确定模块,用于确定当前存储区中是否存在与待查找数据相匹配的命中存储区块;查找模块,用于如果确定模块确定存在命中存储区块,则查找下一存储区中与命中存储区块对应的存储区块,以确定是否还存在命中存储区块。
再一方面,本发明实施例提供了一种存储器,包括:至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应;以及如上所述的装置,该装置包括:确定模块,用于确定当前存储区中是否存在与待查找数据相匹配的命中存储区块;查找模块,用于如果确定模块确定存在命中存储区块,则查找下一存储区中与命中存储区块对应的存储区块,以确定是否还存在命中存储区块。
在本发明的实施例中,通过将存储区进一步划分为存储区块,在当前存储区中存在命中存储区块的情况下,在下一存储区中查找与命中存储区块相应的存储区块,使得与未命中的存储区块对应的存储区块可以不执行操作,因此,在本发明的实施例中可以降低功耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例的对存储器进行划分的示意图。
图2示出了根据本发明实施例的在存储器中查找数据的方法的流程图;
图3示出了根据本发明实施例的查找下一存储区中与命中存储区块相应的存储区块的方法的流程图;
图4示出了根据本发明实施例的在存储器中查找数据的装置的示意图;
图5示出了根据本发明实施例的在存储器中查找数据的装置的另一示意图;
图6示出了根据本发明实施例的控制电路的例子;
图7示出了根据本发明实施例的存储器的示意图;以及
图8示出了根据本发明实施例的图7所示的存储区的进一步示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的所述实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
首先结合图1,描述根据本发明实施例的对存储器进行划分的示意图。
可以对存储器进行划分,使得存储器包括为至少两个存储区,每个存储区包括至少两个存储区块,每个存储区中的存储区块相对应。以图1为例,在图1中,存储器100包括第一存储区110、第二存储区120和第三存储区130。第一存储区110包括第一存储区块112、第二存储区块114、第三存储区块116和第四存储区块118。第二存储区120包括第五存储区块122、第六存储区块124、第七存储区块126和第八存储区块128。第三存储区130包括第九存储区块132、第十存储区块134、第十一存储区块136和第十二存储区块138。
三个存储区中的存储区块相对应。也就是,第一存储区块112、第五存储区块122和第九存储区块132相对应;第二存储区块114、第六存储区块124和第十存储区块134相对应;第三存储区块116、第七存储区块126和第十一存储区块136相对应;第四存储区块118、第八存储区块128和第十二存储区块138相对应。存储器中存储的数据存储在相对应的存储区块中的同一行,使得相对应的存储区块中的同一行分别存储数据的各个部分。例如,数据110010100011中的“1100”存储在第一存储区110的第一存储区块112的第三行,“1010”存储在第二存储区120的第五存储区块122的第三行,以及“0011”存储在第三存储区130的第九存储区块132的第三行。
可以根据性能需求、负载大小、功耗要求和查找速度等,来划分存储区和存储区块。可以沿着诸如位线或KEY线方向之类的列方向,将存储器划分为至少两个存储区。每个存储区可以包含相同或不同数量的位线或KEY线。可以沿着诸如字线或ML线之类的行方向,将存储器的每个存储区划分为至少两个存储区块。相应的存储区块具有相同数量的行。同一存储区中的存储区块可以具有相同或不同数量的字线或ML线。
下面,基于包括至少两个存储区、每个存储区包括至少两个存储区块的存储器,来描述根据本发明实施例的查找数据的方法。
图2示出了根据本发明实施例的在存储器中查找数据的方法200。
方法200包括:在S210中,确定当前存储区中是否存在与待查找数据相匹配的命中存储区块;在S220中,如果确定存在命中存储区块,则查找下一存储区中与命中存储区块对应的存储区块,以确定是否还存在命中存储区块。
在S210中,从当前存储区的待查找数据输入线(例如,位线或KEY线)输入待查找数据,确定当前存储区中是否存在与输入的数据相匹配的命中存储区块。存储区块命中表示在该存储区块进行数据匹配操作的情况下,在该存储区块中找到了与从待查找数据输入线输入的数据相匹配的数据。在S220中,如果当前存储区中存在命中存储区块,则查找下一存储区中与命中存储区块对应的存储区块,使得待查找的存储区块根据从所在存储区的待查找数据输入线输入的待查找数据来进行数据匹配操作,从而确定在该下一存储区中是否还存在命中存储区块。
根据本发明实施例提供的查找数据的方法,通过将存储区进一步划分为存储区块,如果当前存储区中存在命中存储区块,则在下一存储区中查找与命中存储区块相应的存储区块,使得与未命中的存储区块对应的存储区块可以不执行操作,从而可以降低功耗。在现有技术中,如果在当前存储区中查找到相匹配的数据,即当前存储区命中,则需要查找下一存储区的整体,而在本发明的实施例中,可以仅仅查找下一存储区中的部分存储区块,从而可以存在不进行操作的存储区块,因此能够实现降低功耗的效果。
在本发明的一个实施例中,在S210中,确定当前存储区中是否存在与待查找数据相匹配的命中存储区块。
存储区中的存储区块在进行数据匹配操作的情况下,接收从相应位线或KEY线输入的待查找数据。如果在存储区块中找到了待查找数据,则该存储区块命中,反之,该存储区块未命中。
在S220中,如果确定存在命中存储区块,则查找下一存储区中与命中存储区块对应的存储区块,以确定是否还存在命中存储区块。
如果在S210中确定存在命中存储区块,则与命中存储区块对应的下一存储区中的存储区块进行数据匹配操作,确定在下一存储区中是否还存在命中存储区块,即在进行数据匹配操作的存储区块中确定是否还查找到了待查找数据,如果查找到了,则相应的存储区块命中。
根据本发明的一个实施例,在S220中,可以仅仅查找下一存储区中与命中存储区块对应的存储区块。
例如,如果存储区110中的存储区块112命中,则仅仅查找存储区120中的存储区块122。如果存储区110中的存储区块116和118都命中,则仅仅查找存储区120中的存储区块126和128。
仅仅查找与命中存储区块对应的存储区块,可以使得与未命中存储区块对应的存储区块都不再进行操作,从而能够最大限度的节省功耗。
根据本发明的一个实施例,可以通过图3所示的方法300来查找下一存储区中与命中存储区块相应的存储区块。
在S310中,确定命中存储区块具有的最高优先级。
存储区中的存储区块可以具有不同的优先级。根据本发明的一个实施例,可以根据预定优先级分配规则,为每个存储区块分配优先级。例如,在存储区中,存储区块的优先级可以依次递减。结合图1,当按照优先级依次递减的顺序分配优先级时,存储区110中的存储区块112的优先级高于存储区块114的优先级,存储区块114的优先级高于存储区块116的优先级,存储区块116的优先级高于存储区块118的优先级。当然,也可以采用其他方式为存储区块分配优先级,例如优先级依次递增、优先级先增大再减小等。
从而,可以根据预定优先级分配规则,确定命中存储区块具有的最高优先级。例如,如果存储区110中存储区块114、116和118都命中,并且存储区块116在存储区块114、116和118中的优先级最高,则确定此时的最高优先级是存储区块116的优先级。
如果预定优先级分配规则是存储区块的优先级依次递减,则可以根据每个存储区中存储区块的优先级依次递减的分配规则,确定命中存储区块具有的最高优先级。例如,在存储区110中存储区块114、116和118都命中,则由于优先级依次递减,则确定存储区块114的优先级最高。
在S320中,确定当前存储区中优先级不高于该最高优先级的存储区块。
在S310确定最高优先级之后,则可以确定优先级不高于它的存储区块。例如,假设在存储区块110中存储区块112、114、116和118的优先级依次递减,如果只有存储区块116命中,则根据优先级顺序,确定存储区块116和118。如果存储区块114和118都命中,则此时的最高优先级是存储区块114的优先级,根据优先级顺序,确定存储区块114、116和118。
在S330中,查找下一存储区中与所确定的存储区块对应的存储区块。
因为存储区中的存储区块存在对应关系,所以可以查找与通过S320确定的存储区块相对应的存储区块。例如,如果在S320中确定的存储区块是存储区块116和118,则查找下一存储区120中的存储区块126和128。如果在S320中确定的存储区块是存储区块112和116,则查找下一存储区120中的存储区块122和126。如果在S320中确定的存储区块是存储区块118,则只查找下一存储区120中的存储区块118。
图3的实施例基于存储区块的优先级来查找对应的存储区块。通过优先级的设置,能够适应当前存储器中布线范围、布线面积和布线方式等的限制来有效控制对应存储区块的操作,对当前的存储器结构影响很小,不会影响既有存储器的布线方式,也不会增大存储器占用的晶片面积。虽然可能使得与一些未命中的存储区块对应的存储区块也进行数据匹配操作,但是这相比于现有技术,并没有增大功耗,只是没有能够减小该存储区块对应电路的功耗。但是,在更多的情况下,与未命中的存储区块对应的存储区块不进行数据匹配操作,这相比于现有技术,使原本进行数据匹配操作的相应电路不再进行操作,从而能够减小功耗。因此,从整体上看,基于本发明实施例提供的方法,能够降低在存储器中查找数据的功耗。
在本发明的实施例中,如果存储器存在多于两个存储区,在图2所示的方法中,如果S220中确定还存在命中存储区块并且还存在下一存储区,则继续查找该存储区的下一存储区;如果执行S220之后不存在命中存储区块,则无论是否还有下一存储区,停止数据查找。通过方法200进行查找,直到在存储器中查找到与待查找数据相匹配的数据或者查找不到与待查找数据相匹配的数据。
以图1的存储器100为例。如果在存储区110中存储区块116命中,则需要查找存储区120中的存储区块126。如果存储区块126也命中,则继续查找存储区130中的存储区块136以确定存储区块136是否还命中。如果在存储区120中没有存储区块命中,则停止查找。
根据本发明实施例提供的查找数据的方法,基于具有分块结构的存储器,在存储区块命中的情况下,查找下一存储区中与命中存储区块对应的存储区块,可以在不改变查找性能的同时,使得某些存储区块不进行数据匹配操作,从而能够降低功耗。并且,由于利用优先级来进一步控制对应存储区块的操作,可以适应诸如布线走向、布线区域等设计条件的限制,对既有存储器芯片影响很小,在降低功耗的同时,对封装、散热和器件的可靠性都有好处。
下面结合图4和图5,描述根据本发明实施例的在存储器中查找数据的装置。
图4示出了根据本发明实施例的在存储器中查找数据的装置400。
存储器可以包括至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应。基于这样的存储器,装置400可以包括确定模块410和查找模块420。确定模块410可用于确定当前存储区中是否存在与待查找数据相匹配的命中存储区块。查找模块420可用于如果确定模块410确定存在命中存储区块,则查找下一存储区中与命中存储区块对应的存储区块,以确定是否还存在命中存储区块。
存储器、确定模块410和查找模块420的上述和其他操作和/或功能可以参考上述存储器100以及查找数据的方法200和/或300中的相应部分,为了避免重复,在此不再赘述。
根据本发明实施例提供的在存储器中查找数据的装置,基于具有分块结构的存储器,查找模块可以在确定模块确定有存储区块命中的情况下,查找下一存储区中与命中存储区块对应的存储区块,可以在不改变查找性能的同时,使得某些存储区块不进行数据匹配操作,从而能够降低功耗。
图5示出了根据本发明实施例的在存储器中查找数据的装置500的示意图。
装置500的确定模块510和查找模块520与图4的装置400的确定模块410和查找模块420基本相同。
根据本发明的一个实施例,查找模块520可用于如果确定模块510确定存在命中存储区块,则仅仅查找下一存储区中与命中存储区块对应的存储区块,以确定是否还存在命中存储区块。
根据本发明的一个实施例,查找模块520可以包括优先级确定单元522、区块确定单元524和区块查找单元526。优先级确定单元522可用于确定命中存储区块具有的最高优先级。区块确定单元524可用于确定当前存储区中优先级不高于最高优先级的存储区块。区块查找单元526可用于查找下一存储区中与区块确定单元524确定的存储区块对应的存储区块。
根据本发明的一个实施例,优先级确定单元522可用于根据预定优先级分配规则,确定命中存储区块具有的最高优先级。进一步地,优先级确定单元522可用于根据每个存储区中存储区块的优先级依次递减的分配规则,确定命中存储区块具有的最高优先级。
查找模块520、优先级确定单元522、区块确定单元524和区块查找单元526的上述和其他操作和/或功能可以参考上述查找数据的方法200和/或300中的相应部分,为了避免重复,在此不再赘述。
通过查找模块仅仅查找与命中存储区块对应的存储区块,可以使得与未命中存储区块对应的存储区块都不再进行操作,从而能够最大限度的节省功耗。
通过优先级确定单元、区块确定单元和区块查找单元,可以基于存储区块的优先级来查找对应的存储区块。借助于优先级的设置,能够适应当前存储器中布线范围、布线面积和布线方式等的限制来有效控制对应存储区块的操作,对当前的存储器结构影响很小,不会影响既有存储器的布线方式,也不会增大存储器占用的面积。虽然可能使得与一些未命中的存储区块对应的存储区块也进行数据匹配操作,但是这相比于现有技术,并没有增大功耗,只是没有能够减小该存储区块对应电路的功耗。但是,在更多的情况下,与未命中的存储区块对应的存储区块不进行数据匹配操作,这相比于现有技术,使原本进行数据匹配操作的相应电路不再进行操作,从而能够减小功耗。因此,从整体上看,基于根据本发明实施例提供的装置,能够降低在存储器中查找数据的功耗。并且,由于利用优先级来进一步控制对应存储区块的操作,可以适应诸如布线走向、布线区域等设计条件的限制,对既有存储器芯片影响很小,在降低功耗的同时,对封装、散热和器件的可靠性都有好处。
根据本发明的一个实施例,确定模块510和查找模块520可以包括至少一个控制电路。通过控制电路来实现控制模块510和查找模块520的功能。
每个控制电路可以连接在相邻两个存储区之间,并且可以被配置为确定该相邻两个存储区中的前一存储区中是否存在与待查找数据相匹配的命中存储区块,如果确定存在命中存储区块,则控制该相邻两个存储区中的后一存储区中与命中存储区块对应的存储区块进行数据匹配操作。
控制电路的例子通过图6来示出。图6只是示意性的,并不对本发明的保护范围构成限制。
图6示出了控制电路630,该控制电路连接在存储区610和620之间。在图6中,存储区610包括存储区块612和614,存储区620包括存储区块622和624。
根据本发明的一个实施例,控制电路可以包括:至少两个命中确定子电路,与前一存储区中的存储区块相对应,被配置为确定对应的存储区块是否命中;控制生成子电路,被配置为如果命中确定子电路确定对应的存储区块命中,则控制后一存储区中与所命中的存储区块对应的存储区块进行数据匹配操作。
结合图6,控制电路630包括命中确定子电路632和634,分别与存储区610的存储区块612和存储区块614对应。如果在存储区块612中查找到待查找数据,则命中确定子电路632确定存储区块612命中,否则确定存储区块612未命中。同理,如果在存储区块614中查找到待查找数据,则命中确定子电路634确定存储区块614命中,否则确定存储区块614未命中。
控制电路630还包括控制生成子电路636。控制生成子电路636接收来命中确定子电路632和634的输出,如果在这些输出中指示有存储区块命中,则控制生成子电路630控制存储区620中相应的存储区块进行操作。例如,如果命中确定子电路632的输出表示命中,则控制生成子电路630控制存储区块622进行操作。同理,如果命中确定子电路634的输出表示命中,则控制生成子电路630控制存储区块624进行操作。
根据本发明的一个实施例,控制生成子电路636可以包括或门和与门,其中或门被配置为确定存储区块的优先级,与门被配置为接收从待查找数据输入线输入的数据以及来自或门的输出,以控制是否将所接收的数据输入存储区块。下面结合图7来描述根据本发明实施例的控制生成子电路的例子。
在图7中,控制生成子电路包括其中的或门和与门。另外,在图7中还示出了存储区和命中确定子电路。存储区710包括存储区块712、714、716和718,存储区720包括存储区块722、724、726和728。命中确定子电路732、734、736和738分别与存储区块712、714、716和718对应。
通过或门可以确定存储区块的优先级。在图7中,当位置较高的存储区块命中时,无论位置较低的存储区块是否命中,或门的输出都为高电平。这表示位置较高的存储区块的命中结果将屏蔽位置较低的存储区块的命中结果,说明位置较高的存储区块具有较高的优先级。在该例子中,存储区块712在存储区710中具有最高的优先级。
与存储区块724、726和728相应的与门接收从待查找数据输入线输入的数据以及来自或门的输出(分别为控制信号2、3和4)。与存储区块722相应的与门接收从待查找数据输入线输入的数据以及来自命中确定子电路732的输出(控制信号1)。虽然与存储区块722相应的与门没有接收来自或门的输出,但是本领域技术人员可以容易地想到,可以将命中确定子电路632连接到一端输入恒为低电平的或门,从而使得与存储区块722相应的与门也接收来自或门的输出。
当与门中除了接收待查找数据的输入端之外的另一端为高电平时,与门打开,将从待查找数据输入线输入的数据送入相应存储区块。当该另一端是低电平时,与门关闭,从待查找数据输入线输入的数据不能进入相应的存储区块,这样,相应的存储区块不进行数据匹配操作。从而,可以看到,与门的打开与否,数据的送入与否,存储区块的操作与否,都受到命中确定子电路和或门的控制。
通过有效的设计和布线,可以用简单的元器件结构来实现控制电路,使得根据本发明实施例引入的控制电路几乎不占据什么面积,布线可以满足硬件条件、晶片资源等的限制,不影响现有的存储器芯片结构和布线。根据本发明实施例的控制电路的实现,使得在降低功耗的同时,对封装、散热和器件的可靠性都有好处。
根据本发明的实施例,存储器可以包括:至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应;以及如上所述的装置。根据本发明实施例的存储器可以是CAM,也可以是TCAM,还可以是其它可以在其中进行数据匹配操作的存储器。
接下来,仍然结合图7,描述根据本发明实施例的存储器的例子。
在图7中,假设存储器700具有512×80的存储阵列,其深度为512行,位宽为80比特。将存储器700的存储阵列划分为两个存储区710和720,每个存储区具有40比特的位宽。在每个存储区中,划分为四个存储区块,分别具有128×40的大小。
随着存储区的划分,以KEY线为例的待查找数据输入线被相应的划分为两组,KEY[0:39]输入存储区710,KEY[40:79]输入存储区720。
在存储区710中,可以为存储区块712、714、716和718设置缓冲器以增大KEY线的驱动能力。当然,也可以不设置缓冲器。存储区块712至718进行数据匹配操作,当查找到与从KEY[0:39]输入的待查找数据匹配的数据时,相应的命中确定子电路输出指示命中的信号。例如,当在存储区块712中查找到相匹配的数据时,命中确定子电路732输出指示命中的信号。同理,如果在存储区块714、716或718中查找到相匹配的数据,则它们各自相应的命中检测子电路734、736或738输出指示命中的信号(例如,高电平)。反之,如果在存储区块中没有查找到相匹配的数据,则相应的命中检测子电路输出指示未命中的信号(例如,低电平)。
在存储区720中,KEY[40:79]通过与门输入存储区块722、724、726和728。与门的另一输入端受到前面电路的控制,分别接收从前面输出的控制信号1、2、3和4。如果与门的另一输入端为高电平,则与门打开,KEY[40:79]可以送入相应的存储区块,相应的存储区块进行数据匹配操作。如果与门的另一输入端为低电平,则与门关闭,KEY[40:79]不能送入相应的存储区块。
基于命中确定子电路、或门和与门的控制,当存储区块718命中并且存储区块712、714和716都未命中时,存储区块728根据从KEY[40:79]输入的数据进行操作,而存储区块722、724和726都不进行操作,从而节省了三个存储区块的操作,使得功耗降低。当存储区块716命中并且存储区块712和714都未命中时,无论存储区块718是否命中,存储区块726和728根据从KEY[40:79]输入的数据进行操作,而存储区块722和724不进行操作,从而节省了两个存储区块的操作,使得功耗降低。当存储区块714命中并且存储区块712未命中时,无论存储区块716和718是否命中,存储区块724、726和728都根据从KEY[40:79]输入的数据进行操作,而存储区块722不进行操作,从而节省了一个存储区块的操作,使得功耗降低。当存储区块712命中时,无论存储区块714、716和718是否命中,存储区块722至728都根据从KEY[40:79]输入的数据进行操作,此时虽然所有存储区块都进行操作,但是相比现有技术,并没有消耗更多的功耗。因此,从整体上看,利用该方式在存储器700中查找数据,能够节省功耗。
图8示出了图7的存储区720的进一步结构示意图。
存储区720的每个存储区块中的存储单元可以采用接收数据反相输入和正相输入的现有结构。与门除了接收KEY线的数据外,还要接收控制信号1、2、3或4,从而控制是否将KEY线的数据送入存储区块的存储单元中。
本领域技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法步骤可以用硬件、处理器执行的软件程序、或者二者的结合来实施。软件程序可以置于随机存取存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM或技术领域内所公知的任意其它形式的存储介质中。
尽管已示出和描述了本发明的一些实施例,但本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例进行各种修改,这样的修改应落入本发明的范围内。

Claims (10)

1.一种在存储器中查找数据的方法,其特征在于,所述存储器包括至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应,所述方法包括:
确定当前存储区中是否存在与待查找数据相匹配的命中存储区块;
如果确定存在所述命中存储区块,则确定所述命中存储区块具有的最高优先级;
确定所述当前存储区中优先级不高于所述最高优先级的存储区块;
查找下一存储区中与所确定的存储区块对应的存储区块,以确定是否还存在命中存储区块。
2.根据权利要求1所述的方法,其特征在于,所述确定所述命中存储区块具有的最高优先级包括:
根据预定优先级分配规则,确定所述命中存储区块具有的最高优先级。
3.根据权利要求2所述的方法,其特征在于,所述根据预定优先级分配规则,确定所述命中存储区块具有的最高优先级包括:
根据每个存储区中存储区块的优先级依次递减的分配规则,确定所述命中存储区块具有的最高优先级。
4.一种在存储器中查找数据的装置,其特征在于,所述存储器包括至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应,所述装置包括:
确定模块,用于确定当前存储区中是否存在与待查找数据相匹配的命中存储区块;
查找模块,用于如果所述确定模块确定存在所述命中存储区块,则查找下一存储区中与所述命中存储区块对应的存储区块,以确定是否还存在命中存储区块;
所述查找模块包括:
优先级确定单元,用于确定所述命中存储区块具有的最高优先级;
区块确定单元,用于确定所述当前存储区中优先级不高于所述最高优先级的存储区块;
区块查找单元,用于查找所述下一存储区中与所述区块确定单元确定的存储区块对应的存储区块。
5.根据权利要求4所述的装置,其特征在于,所述优先级确定单元用于根据预定优先级分配规则,确定所述命中存储区块具有的最高优先级。
6.根据权利要求5所述的装置,其特征在于,所述优先级确定单元用于根据每个存储区中存储区块的优先级依次递减的分配规则,确定所述命中存储区块具有的最高优先级。
7.根据权利要求4所述的装置,其特征在于,所述确定模块和所述查找模块通过至少一个控制电路实现,其中每个控制电路连接在相邻两个存储区之间,被配置为确定所述相邻两个存储区中的前一存储区中是否存在与待查找数据相匹配的命中存储区块,如果确定存在所述命中存储区块,则控制所述相邻两个存储区中的后一存储区中与所述命中存储区块对应的存储区块进行数据匹配操作。
8.根据权利要求7所述的装置,其特征在于,所述控制电路包括:
至少两个命中确定子电路,与所述前一存储区中的存储区块相对应,被配置为确定对应的存储区块是否命中;
控制生成子电路,被配置为如果所述至少两个命中确定子电路确定对应的存储区块命中,则控制所述后一存储区中与所命中的存储区块对应的存储区块进行数据匹配操作。
9.根据权利要求8所述的装置,其特征在于,所述控制生成子电路包括或门和与门,其中或门被配置为确定存储区块的优先级,与门被配置为接收从待查找数据输入线输入的数据和来自或门的输出,以控制是否将所接收的数据输入存储区块。
10.一种存储器,其特征在于,包括:
至少两个存储区,每个存储区包括至少两个存储区块,各存储区中的存储区块分别对应;
根据权利要求4至9中任一项所述的装置。
CN2011100429418A 2011-02-23 2011-02-23 在存储器中查找数据的方法和装置以及存储器 Active CN102122270B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2011100429418A CN102122270B (zh) 2011-02-23 2011-02-23 在存储器中查找数据的方法和装置以及存储器
EP12156633A EP2492828A1 (en) 2011-02-23 2012-02-23 Method and apparatus for searching for data in content addressable memory
US13/403,478 US20120233415A1 (en) 2011-02-23 2012-02-23 Method and apparatus for searching for data in memory, and memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100429418A CN102122270B (zh) 2011-02-23 2011-02-23 在存储器中查找数据的方法和装置以及存储器

Publications (2)

Publication Number Publication Date
CN102122270A CN102122270A (zh) 2011-07-13
CN102122270B true CN102122270B (zh) 2013-08-07

Family

ID=44250832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100429418A Active CN102122270B (zh) 2011-02-23 2011-02-23 在存储器中查找数据的方法和装置以及存储器

Country Status (3)

Country Link
US (1) US20120233415A1 (zh)
EP (1) EP2492828A1 (zh)
CN (1) CN102122270B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297296B (zh) * 2013-05-30 2016-06-29 大连梯耐德网络技术有限公司 一种基于fpga的逻辑运算查找方法和系统
CN104375895B (zh) * 2013-08-13 2018-02-06 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
US9792988B2 (en) * 2014-08-12 2017-10-17 Ciena Corporation Parallel turbine ternary content addressable memory for high-speed applications
US20170212705A1 (en) * 2016-01-26 2017-07-27 Netapp, Inc. Dynamic Weighting for Distributed Parity Device Layouts
WO2018197687A1 (fr) * 2017-04-28 2018-11-01 Another Brain Dispositif ram automatisé apte à mémoriser, rappeler et gérer de manière non volatile, des associations de messages versus label et vice versa, avec un maximum de vraisemblance
CN115878863B (zh) * 2022-12-01 2023-12-19 杭州菲数科技有限公司 数据查找方法及数据查找装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870324A (en) * 1995-04-18 1999-02-09 International Business Machines Corporation Contents-addressable memory
CN1465014A (zh) * 2001-07-20 2003-12-31 诺基亚有限公司 使用tcam实现数据流的选择性路由
US6937491B2 (en) * 2002-07-22 2005-08-30 Integrated Device Technology, Inc. Multi-bank content addressable memory (CAM) devices having segment-based priority resolution circuits therein and methods operating same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6499081B1 (en) * 1999-02-23 2002-12-24 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a segmented content addressable memory device
US6191969B1 (en) * 1999-09-09 2001-02-20 Net Logic Microsystems, Inc. Selective match line discharging in a partitioned content addressable memory array
US6243280B1 (en) * 1999-09-09 2001-06-05 Netlogic Microsystems, Inc. Selective match line pre-charging in a partitioned content addressable memory array
US7143231B1 (en) * 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6658458B1 (en) * 2000-06-22 2003-12-02 Cisco Technology, Inc. Cascading associative memory arrangement
US6629099B2 (en) * 2000-12-07 2003-09-30 Integrated Silicon Solution, Inc. Paralleled content addressable memory search engine
US6744652B2 (en) * 2001-08-22 2004-06-01 Netlogic Microsystems, Inc. Concurrent searching of different tables within a content addressable memory
US6584003B1 (en) * 2001-12-28 2003-06-24 Mosaid Technologies Incorporated Low power content addressable memory architecture
US6965519B1 (en) * 2003-06-18 2005-11-15 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize dual-capture match line signal repeaters to achieve desired speed/power tradeoff and methods of operating same
US6879532B1 (en) * 2002-04-10 2005-04-12 Integrated Device Technology, Inc. Content addressable and random access memory devices having high-speed sense amplifiers therein with low power consumption requirements
US7069378B2 (en) * 2002-07-22 2006-06-27 Integrated Device Technology, Inc. Multi-bank content addressable memory (CAM) devices having staged segment-to-segment soft and hard priority resolution circuits therein and methods of operating same
US7058757B1 (en) * 2003-07-15 2006-06-06 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that support distributed CAM control and methods of operating same
US7804699B2 (en) * 2008-12-26 2010-09-28 Texas Instruments Incorporated Segmented ternary content addressable memory search architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870324A (en) * 1995-04-18 1999-02-09 International Business Machines Corporation Contents-addressable memory
CN1465014A (zh) * 2001-07-20 2003-12-31 诺基亚有限公司 使用tcam实现数据流的选择性路由
US6937491B2 (en) * 2002-07-22 2005-08-30 Integrated Device Technology, Inc. Multi-bank content addressable memory (CAM) devices having segment-based priority resolution circuits therein and methods operating same

Also Published As

Publication number Publication date
EP2492828A1 (en) 2012-08-29
US20120233415A1 (en) 2012-09-13
CN102122270A (zh) 2011-07-13

Similar Documents

Publication Publication Date Title
CN102122270B (zh) 在存储器中查找数据的方法和装置以及存储器
CN107273042B (zh) 重复删除dram系统算法架构的存储器模块及方法
CN1561522A (zh) 用于在按内容寻址的存储器中执行可变宽度搜索的电路和方法
US20150098271A1 (en) System and method of storing data in a data storage device
CN103559146B (zh) 一种提高NAND flash控制器读写速度的方法
JP6130758B2 (ja) メモリ制御回路およびキャッシュメモリ
CN112639748B (zh) 异步正向缓存存储器系统和方法
KR102587962B1 (ko) 탐색 회로, 이를 포함하는 해머 어드레스 관리 회로 및 메모리 시스템
EP1058269B1 (en) Synchronous multilevel non-volatile memory and related reading method
EP3970021A1 (en) Processor-side transaction context memory interface systems and methods
CN116166186A (zh) 一种基于双端口Sram的Cache控制器及工作方法
CN100375066C (zh) 基于高速缓冲存储器行偏移量实现优先读取存储器的方法
CN115543869A (zh) 多路组相连高速缓冲存储器及其访问方法、计算机设备
CN105335296A (zh) 一种数据处理方法、装置及系统
CN103914413A (zh) 用于粗粒度可重构系统的外存访问接口及其访问方法
US7146457B2 (en) Content addressable memory selectively addressable in a physical address mode and a virtual address mode
CN103295627A (zh) 相变存储器、数据并行写入方法及数据读取方法
US9141566B2 (en) Method of accessing on-chip read only memory and computer system thereof
CN111949567A (zh) 存储器侧事务背景存储器接口系统及方法
CN110580231B (zh) 处理电路、缓冲器、存储器及处理器
CN108647161B (zh) 一种记录访存地址历史的硬件监测电路
CN203465714U (zh) 位查找电路、旁路转换缓冲器、存储器及微处理器
CN104252333B (zh) 带掩码位查找电路、旁路转换缓冲器、存储器及微处理器
US7006400B1 (en) Content addressable memory with reduced instantaneous current and power consumption during a search
US7002873B2 (en) Memory array with staged output

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Ji Bingwu

Inventor after: Zhao Tanfu

Inventor after: Zhou Yunming

Inventor after: Li Jiarong

Inventor after: Lin Wai

Inventor before: Zhou Yunming

Inventor before: Ji Bingwu

Inventor before: Zhao Tanfu

Inventor before: Lin Wai

Inventor before: Li Jiarong

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ZHOU YUNMING JI BINGWU ZHAO TANFU LIN WEI LI JIARONG TO: JI BINGWU ZHAO TANFU ZHOU YUNMING LI JIARONG LIN WEI

C14 Grant of patent or utility model
GR01 Patent grant