CN102959548A - 数据存储方法、查找方法及装置 - Google Patents

数据存储方法、查找方法及装置 Download PDF

Info

Publication number
CN102959548A
CN102959548A CN201280001140XA CN201280001140A CN102959548A CN 102959548 A CN102959548 A CN 102959548A CN 201280001140X A CN201280001140X A CN 201280001140XA CN 201280001140 A CN201280001140 A CN 201280001140A CN 102959548 A CN102959548 A CN 102959548A
Authority
CN
China
Prior art keywords
key word
cpu
index value
list item
tcam
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
Application number
CN201280001140XA
Other languages
English (en)
Other versions
CN102959548B (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
Publication of CN102959548A publication Critical patent/CN102959548A/zh
Application granted granted Critical
Publication of CN102959548B publication Critical patent/CN102959548B/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores

Abstract

本发明实施例提供一种数据存储方法、数据查找方法及装置。该数据存储方法包括:主CPU获取待存储到TCAM的关键字和与关键字对应的关联数据;若在TCAM中没有查找到存储有关键字的表项,检测到关键字的配置属性中包括不包括主CPU时,向配置属性中的第一备用CPU发送包括关键字和关联数据的第一指示信息,并向关键字的配置属性中第二备用CPU发送包括关联数据的第二指示信息。本发明实施例提供的技术方案避免了TCAM中一个关键字对应一个以上的表项的缺陷,达到了配置属性中每个CPU的存储器都存储有该关键字的关联数据的目的。

Description

数据存储方法、查找方法及装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种数据存储方法、查找方法及装置。
背景技术
三态内容可寻址存储器(Ternary Content Addressable Memory,简称TCAM)中每一个bit的状态可以是“0”或“1”,或者是第三种状态“don’t care”,所以称为“三态”。这个特点使TCAM具有对所查找数据的位域具有筛选功能,TCAM表内所有条目都可以并行访问,例如,如果TCAM有100条表项,能一次对这100条表项进行对比操作,相对与普通的轮询查找方法,提高了查找的速度。然而,TCAM成本比较高,存储空间的单位价格高于普通的SRAM,耗能也远远高于SRAM。
在TCAM中下发关键字的过程概述如下:从报文头提取关键字Key,将关键字写入TCAM中,获取关键字在TCAM的索引值Index,索引值Index可以是关键字在TCAM的存储地址;之后,将该关键字对应的处理信息也称为关联数据,写入RAM中地址为Index的空间中。查找TCAM的过程概述如下:从报文头提取关键字Key,将关键字送入TCAM中,在TCAM中查找与关键字Key匹配的表项,获取匹配表项的索引值Index,也就是关键字在TCAM的索引值Index;之后,将索引值Index送入RAM中,根据索引值Index在RAM中查找与关键字Key对应的关联数据,关联数据为包含有关键字Key的报文的处理信息,例如,可以为地址映射表项、访问控制列表(Access ControlList,,简称ACL)信息和路由信息等针对上述报文的处理信息。
在多个CPU共享一个TCAM的场景下,如果多个CPU运行的业务相同,这些CPU下发的关键字相同,相应地下发的关联数据也相同。然而,按照现有的技术方案,下发相同关键字的多个CPU分时在TCAM中关键字,导致该关键字在TCAM中对应多个表项,而且下发表项的过程耗时较长。
发明内容
本发明实施例提供一种数据存储方法、查找方法及装置,用以解决多个CPU共享一个TCAM时,多个CPU在TCAM中重复下发同一个关键字的缺陷,节约了TCAM的空间,提高了在TCAM中下发关键字的效率。
一方面,本发明实施例提供一种数据存储方法,包括:
主CPU获取待存储到TCAM的关键字和与所述关键字对应的关联数据;
所述主CPU在TCAM中查找存储有所述关键字的表项;
若没有查找到存储有所述关键字的表项,所述主CPU检测到所述关键字的配置属性中包括至少两个备用CPU且不包括所述主CPU时,向所述配置属性中的第一备用CPU发送包括所述关键字和所述关联数据的第一指示信息,并向所述关键字的配置属性中第二备用CPU发送包括所述关联数据的第二指示信息,所述第一备用CPU为所述配置属性中任意一个备用CPU,所述第二备用CPU为所述配置属性中除所述第一备用CPU的每一个备用CPU;所述第一指示信息,用于指示所述第一备用CPU将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到所述第一备用CPU的存储器,将所述第一备用CPU的编号写入下发记录表中为所述索引值建立的表项,并将所述索引值发送给所述第二备用CPU;所述第二指示信息,用于指示所述第二备用CPU根据所述第一备用CPU发送的所述关键字的表项在TCAM中的索引值将所述关联数据存储到所述第二备用CPU的存储器,并将所述第二备用CPU的编号写入所述下发记录表中为所述索引值建立的表项;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有CPU的编号。
另一方面,本发明实施例提供一种数据查找方法,包括:
CPU接收包括关键字的查找指示,所述查找指示用于指示CPU查找所述关键字的对应的关联数据;
所述CPU在TCAM中查找存储有所述关键字的表项;
若查找到存储有所述关键字的表项,所述CPU获取所述关键字的表项在TCAM的索引值,并在下发记录表的所述索引值的表项中查找所述CPU;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有CPU;
若查找到所述CPU,所述CPU根据所述索引值从所述CPU的存储器中获取所述关键字对应的关联数据。
又一方面,本发明实施例还提供一种数据存储装置,包括:
获取模块,用于获取待存储到TCAM的关键字和与所述关键字对应的关联数据;
查找模块,用于在TCAM中查找存储有所述关键字的表项;
判断模块,用于若所述查找模块没有查找到存储有所述关键字的表项,判断所述关键字的配置属性中是否包括至少两个备用CPU且不包括所述装置;
指示模块,用于若所述查找模块没有查找到存储有所述关键字的表项且所述判断模块检测到所述关键字的配置属性中包括至少两个备用CPU且不包括所述装置时,向所述配置属性中的第一备用CPU发送包括所述关键字和所述关联数据的第一指示信息,并向所述关键字的配置属性中第二备用CPU发送包括所述关联数据的第二指示信息,所述第一备用CPU为所述配置属性中任意一个备用CPU,所述第二备用CPU为所述配置属性中除所述第一备用CPU的每一个备用CPU;所述第一指示信息,用于指示所述第一备用CPU将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到所述第一备用CPU的存储器,将所述第一备用CPU的编号写入下发记录表中为所述索引值建立的表项,并将所述索引值发送给所述第二备用CPU;所述第二指示信息,用于指示所述第二备用CPU根据所述在TCAM中的索引值将所述关联数据存储到所述第二备用CPU的存储器,并将所述第二备用CPU的编号写入所述下发记录表中为所述索引值建立的表项;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有CPU的编号。
再一方面,本发明实施例还提供一种数据查找装置,包括:
接收模块,用于接收包括关键字的查找指示,所述查找指示用于指示查找所述关键字的对应的关联数据;
查找模块,用于在TCAM中查找存储有所述关键字的表项;
所述查找模块,还用于若查找到存储有所述关键字的表项,获取所述关键字的表项在TCAM的索引值,并在下发记录表的所述索引值的表项中查找所述装置所属的处理器;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有处理器;
获取模块,用于若所述查找模块查找到所述处理器,根据所述索引值从所述处理器的存储器中获取所述关键字对应的关联数据。
在本发明实施例提供的上述技术方案中,在待存储的关键字的配置属性中包括多个CPU的情况下,如果配置属性中不包括主CPU,由配置属性中一个备用CPU在TCAM中存储上述关键字。存储上述关键字的CPU还根据上述关键字的表项在TCAM的索引值在自身的存储器中存储与上述关键字对应的关联数据,更新上述索引值在下发记录表的表项,并向上述配置属性中其它备用CPU发送上述关键字的表项在TCAM的索引值。其它备用CPU根据索引值在自身的存储器中存储与上述关键字的关联数据,并更新下发记录表。因此,本发明实施例提供的技术方案避免了TCAM中一个关键字对应一个以上的表项的缺陷,达到了配置属性中每个CPU的存储器都存储有该关键字的关联数据的目的。
附图说明
图1A为本发明实施例提供的一种数据存储方法流程图;
图1B为本发明实施例提供的另一种数据存储方法流程图;
图2为本发明实施例提供的又一种数据存储方法流程图;
图3A为本发明实施例提供的一种数据查找方法流程图;
图3B为本发明实施例提供的一种应用场景示意图
图4A为本发明实施例提供的一种数据存储装置结构示意图;
图4B为本发明实施例提供的另一种数据存储装置结构示意图;
图5本发明实施例提供的一种数据查找装置结构示意图。
具体实施方式
图1A为本发明实施例提供的一种数据存储方法流程图。如图1A所示,本实施例提供的数据存储方法包括:
步骤11:主CPU获取待存储到TCAM的关键字和与上述关键字对应的关联数据。
本发明实施例适用于多个CPU共存的场景,本发明实施例中的CPU可为单核CPU也可为多核CPU。多个CPU共存的情况下,当前正在运行的CPU为主CPU,其它没有运行的CPU为备用CPU。本发明实施例中,所有CPU共享一个TCAM,每个CPU有自己的存储器。
上层应用向主PCU下发的关键字中包括配置属性,该关键字的配置属性中包括上层应用指示的存储该关键字的CPU,上层应用指示的CPU有可能是一个也可能是多个CPU,其中有可能包括主CPU,也有可能不包括备用CPU。
步骤12:主CPU在TCAM的所有表项中查找上述关键字。
主CPU获取到待存储到TCAM的关键字后,先查找TCAM的所有表项中是否已包括存储该关键字的表项。
步骤13:若没有查找到存储有上述关键字的表项,主CPU检测到上述关键字的配置属性中包括至少两个备用CPU且不包括上述主CPU时,向上述配置属性中的第一备用CPU发送包括上述关键字和上述关联数据的第一指示信息,并向上述关键字的配置属性中第二备用CPU发送包括上述关联数据的第二指示信息。
主CPU在TCAM的所有表项中没有查找到存储上层应用下发的关键字的表项后,判断该关键字的配置属性中是否包括至少两个CPU。如果包括至少两个CPU,再判断配置属性中CPU中是否包括主CPU。配置属性中包括至少两个CPU,表明上层应用指示多个CPU存储同一个关键字。本实施例主要涉及多个CPU存储同一个关键字的场景。
第一备用CPU是配置属性中任意一个备用CPU,可选地,可以是配置属性中编号最小的备用CPU。第二备用CPU可为配置属性中除第一备用CPU之外的每一个备用CPU。如果关键字的配置属性中CPU至少包括两个CPU,但不包括主CPU时,即关键字的配置属性中所有CPU均为备用CPU时,主CPU向第一备用CPU发送包括上述关键字和上述关联数据的第一指示信息,并向所第二备用CPU发送包括上述关联数据的第二指示信息。如果配置属性中除第一备用CPU之外的CPU有一个以上,则主CPU需要发送多个第二指示信息,向除第一备用CPU之外的每一个CPU发送第二指示信息。
第一指示信息,用于指示上述第一备用CPU将上述关键字存储到TCAM,根据上述关键字在TCAM的索引值将上述关联数据存储到上述第一备用CPU的存储器,将上述第一备用CPU的编号写入下发记录表中为上述索引值建立的表项,并将上述索引值发送给上述第二备用CPU。其中,上述关键字在TCAM的索引值,可以是上述关键字在TCAM的存储地址。第二指示信息,用于指示上述第二备用CPU根据上述第一备用CPU发送的索引值将上述关联数据存储到上述第二备用CPU的存储器,并将上述第二备用CPU的编号写入上述下发记录表中为上述索引值建立的表项。
第一备用CPU切换为主CPU后,根据第一指示信息将上述关键字存储到TCAM。上述关键字被存储到TCAM的一个空表项后,上述关键字的表项在TCAM的存储地地址为上述关键字的表项在TCAM的索引值。第一备用CPU根据上述关键字的表项在TCAM的索引值将关键字对应的关联数据存储到上述第一备用CPU的存储器,将上述第一备用CPU的编号写入下发记录表中为上述索引值建立的表项,并将上述索引值发送给上述配置属性中上述第二备用CPU。第二备用CPU切换为主CPU后,根据上述第一备用CPU发送的索引值将上述关联数据存储到上述第二备用CPU的存储器,并将第二备用CPU的编号写入上述下发记录表中上述索引值的表项。
第一备用CPU将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到上述第一备用CPU的存储器后,在下发记录表中为上述索引值建立表项。上述下发记录表中为上述索引值建立的表项用于记录根据上述索引值存储关联数据的所有CPU。具体地,下发记录表中一个表项用于记录一个索引值与根据该索引值存储关联数据的所有CPU。在下发记录表的一个索引值所在的表项中写入一个CPU,表明该CPU已根据该索引值在自身的存储器中写入了关联数据。通过下发记录表可以确定一个索引值已被哪些CPU使用。
通过上述方法,配置属性中多个CPU均为备用CPU时,主CPU选择配置属性中编号最小的备用CPU在TCAM存储该关键字,而其它备用CPU不需要在TCAM中存储该关键字,使得一个关键字在TCAM中包括一个表项,从而避免了多个CPU在TCAM中下发相同的关键字的现象。主CPU选择的备用CPU在TCAM存储该关键字后,在自身的存储器中存储该关键字的关联数据、更新下发记录表,并向配置属性中其它备用CPU发送该关键字的索引值。配置属性中其它备用CPU根据上述备用CPU发送的索引值,在自身的存储器中存储该关键字的关联数据并更新下发记录表。因此,上述技术方案避免了,在多个CPU下发同一关键字时,TCAM中一个关键字对应一个以上的表项的缺陷,达到了关键字的配置属性中每个CPU的存储器都存储有该关键字的关联数据的目的。
如图1B所示,在步骤12之后,还可包括步骤14。
步骤14:若没有查找到存储有上述关键字的表项,上述主CPU检测到上述关键字的配置属性中包括上述主CPU和至少一个备用CPU时,将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到自身的存储器,将上述主CPU的编号写入下发记录表中为上述索引值建立的表项之后,向上述关键字的配置属性中上述所有备用CPU发送包括上述关联数据和上述索引值的第三指示信息。
TCAM中没有待存储的关键字对应表项的情况下,如果该关键字的配置属性中至少包括两个CPU且包括主CPU时,由主CPU在TCAM中存储该关键字,配置属性中所有备用CPU不需要在TCAM存储该关键字。主CPU在TCAM中存储该关键字后,根据上述关键字的表项在TCAM的索引值在自身的存储器中存储上述关联数据,并在下发记录表为上述关键字的索引值建立表项。主CPU还向配置属性中所有备用CPU发送包括该关键字在TCAM的索引值和该关键字的关联数据的第三指示信息。上述配置属性中所有备用CPU根据第三指示信息的指示,根据上述主CPU发送的索引值将上述关联数据存储到自己的存储器,并将自己的编号写入上述下发记录表中为上述索引值建立的表项。关键字的配置属性中各备用CPU切换为主CPU后,根据上述主CPU发送的索引值将上述关联数据存储到上述备用CPU的存储器,并将自己的编号写入上述下发记录表中为上述索引值建立的表项。
通过本实施例提供的技术方案,在关键字的配置属性中包括多个CPU的情况下,如果配置属性中包括主CPU,由主CPU在TCAM中存储关键字,如果配置属性中不包括主CPU,由配置属性中一个备用CPU在TCAM中存储上述关键字。存储上述关键字的CPU还根据上述关键字的表项在TCAM的索引值在自身的存储器中存储与上述关键字对应的关联数据,更新上述索引值在下发记录表的表项,并向上述配置属性中其它备用CPU发送上述关键字的表项在TCAM的索引值。但其它备用CPU不需要在TCAM存储关键字,而是根据索引值在自身的存储器中存储与上述关键字的关联数据,并更新下发记录表。因此,本实施例提供的技术方案避免了TCAM中一个关键字对应一个以上的表项的缺陷,达到了配置属性中每个CPU的存储器都存储有该关键字的关联数据的目的。
进一步,主CPU在TCAM中没有查找到存储上层应用下发的关键字的表项时,如果配置属性中包括一个CPU,主CPU判断该CPU是备用CPU还是主CPU。主CPU检测到上述关键字的配置属性中包括一个CPU且为备用CPU时,向上述配置属性中备用CPU发送包括上述关键字和上述关联数据的第四指示信息。上述配置属性中备用CPU根据第四指示信息的指示,将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到自身的存储器,并将上述配置属性中备用CPU的编号写入上述下发记录表中上述索引值的表项。主CPU检测到上述关键字的配置属性中CPU为上述主CPU时,将上述关键字存储到TCAM,根据上述关键字在TCAM的索引值将上述关联数据存储到自身的存储器,并将上述主CPU写入上述下发记录表中上述索引值的表项。
进一步,若主CPU在TCAM中查找到存储有上述关键字的表项,为避免在TCAM存储重复的表项,上述关键字的配置属性中CPU不需要在TCAM中再次存储该关键字,而是根据上述关键字的表项在TCAM的索引值,将与上述关联数据存储到自身的存储器。具体方案是,上述主CPU获取上述关键字的表项在TCAM的索引值后,向上述配置属性中的各备用CPU发送包括上述索引值的第五指示信息,配置属性中的各备用CPU根据第五指示信息的指示,根据上述索引值将上述关联数据存储到自身的存储器中,之后将自己的编号写入上述下发记录表中为上述索引值建立的表项。如果配置属性中还包括主CPU,主CPU获取上述关键字的表项在TCAM的索引值后,还根据获取到的索引值,将上述关联数据存储到自身的存储器中,并将上述主CPU的编号写入上述下发记录表中上述索引值的表项。
图2为本发明实施例提供的又一种数据存储方法流程图。图2为主CPU接收到待存储的关键字和关联数据后的具体处理过程。如图2所示,本实施例提供的方法包括:
步骤21:主CPU获取待存储的关键字和该关键字对应的关联数据。
步骤22:主CPU查找TCAM的所有表项中是否包括存储有上述关键字的表项。若是执行步骤23,否则执行步骤210。
步骤23:若包括存储有上述关键字的表项,主CPU判断上述关键字的配置属性中是否包括多个CPU。若是执行步骤24,否则执行步骤27。
步骤24:若上述关键字的配置属性中包括多个CPU,判断多个CPU是否包括主CPU,若多个CPU中包括主CPU,执行步骤25,否则执行步骤26。
步骤25:主CPU将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到自身的存储器,将上述主CPU的编号写入下发记录表中上述索引值的表项之后,向上述关键字的配置属性中各备用CPU发送包括上述关联数据和上述索引值的第三指示信息。
主CPU将上述关键字存储到TCAM的一个空表项后,上述关键字的表项在TCAM的存储地地址为上述关键字的表项在TCAM的索引值。通过上述关键字的表项在TCAM的索引值,可确定上述关键字对应的关联数据在存储器中的索引值。配置属性中各备用CPU根据上述主CPU发送的索引值,将上述关联数据存储到上述备用CPU的存储器,并将各自的编号写入上述下发记录表中为上述索引值建立的表项,例如,将上述备用CPU的编号写入上述下发记录表中为上述索引值建立的表项。下发记录表的上述索引值的表项中用于记录根据上述索引值存储关联数据的所有处理器。
表1为本发明实施例提供的一种下发记录表。TCAM中每个关键字的索引值在下发记录表对应一个表项。如表1所示,在一个索引值所在的表项中,一个CPU对应的标志位为1,表示该CPU根据该索引值在自身的存储器存储过关联数据,一个CPU对应的标志位为0,表示该CPU没有根据该索引值在自身的存储器存储过关联数据。例如,索引值0所在的表项中,CPU-A的标志位为1,其它CPU的标志位均为0,表明CPU-A已根据索引值0在自身的存储器中存储了关联数据。又例如,索引值2所在的表项中,CPU-A和CPU-B的标志位均为1,其它CPU的标志位均为0,表明CPU-A和CPU-B已根据索引值0在自身的存储器中存储了关联数据。
表1为本发明实施例提供的一种下发记录表
  索引值   CPU-A   CPU-B   CPU-N   说明
  0   1   0   0   CPU-A使用
  1   0   1   0   CPU-B使用
  2   1   1   1   CPU-A\B\N共用
  3   1   1   0   CPU-A\B共用
  4   0   1   1   CPU-B\N共用
步骤26:若上述配置属性中不包括主CPU,主CPU向上述配置属性中的第一备用CPU发送包括上述关键字和上述关联数据的第一指示信息,并向上述关键字的配置属性中第二备用CPU发送包括上述关联数据的第二指示信息。
上述第一备用CPU根据主CPU的第一指示信息的指示,将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到上述第一备用CPU的存储器,将上述第一备用CPU的编号写入下发记录表中为上述索引值建立的表项,并将上述索引值发送给上述第二备用CPU。第二备用CPU根据主CPU的第二指示信息的指示,采用上述第一备用CPU发送的索引值将上述关联数据存储到上述第二备用CPU的存储器,并将上述第二备用CPU的编号写入上述下发记录表中为上述索引值建立的表项。如表1所示,将上述第二备用CPU的编号写入上述下发记录表中为上述索引值建立的表项的具体方法可以是,在索引值所在的表项中将第二备用CPU的标志位写入1。
步骤27:若上述关键字的配置属性中包括一个CPU,主CPU判断配置属性中CPU是否为备用CPU。若是执行步骤28,否则执行步骤29。
步骤28:若配置属性中CPU为备用CPU,主CPU向上述配置属性中备用CPU发送包括上述关键字和上述关联数据的第四指示信息。
上述配置属性中各备用CPU根据第四指示信息的指示,将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到自身的存储器,在下发记录表中为上述索引值建立表项,并将自己的编号写入上述下发记录表中为上述索引值建立的表项。
步骤29:若配置属性中CPU为主CPU,主CPU将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到自身的存储器,并将主CPU的编号写入上述下发记录表中为上述索引值建立的表项。
步骤210:若在TCAM中包括存储有上述关键字的表项,主CPU获取上述关键字的表项在TCAM的索引值。
步骤211:若上述配置属性中包括至少一个备用CPU时,上述主CPU向上述配置属性中的各备用CPU发送包括上述索引值的第五指示信息。
上述配置属性中的各备用CPU根据第五指示信息的指示,根据上述索引值将上述关联数据存储到自身的存储器中,并将各自的编号写入上述下发记录表中为上述索引值建立的表项。
步骤212:若上述配置属性中还包括主CPU,主CPU根据上述索引值将上述关联数据存储到自身的存储器中后,将主CPU的编号写入上述下发记录表中为上述索引值建立的表项。
本实施例提供的技术方案中,在多个CPU在共享的TCAM中存储同一个关键字且TCAM没有查找到上述关键字时,主CPU远择一个CPU在共享的TCAM中存储关键字,而所有CPU均更新下发记录表并根据关键字在TCAM的索引值存储关键字的关联数据。若TCAM中查找到关键字,不需要选择CPU在TCAM中存储关键字,所有CPU更新下发记录表并根据关键字在TCAM的索引值存储关键字的关联数据。
图3A为本发明实施例提供的一种数据查找方法流程图。基于上述数据存储方法在TCAM存储关键字在存储器中存储关键字的关联数据后,查找关联数据的方法。如图3A所示,本实施例包括:
步骤31:CPU接收包括关键字的查找指示。
上层应用下发包括关键字的查找指示,指示主CPU查找关键字对应的关联数据。
步骤32:CPU在TCAM中查找存储有上述关键字的表项。
步骤33:若查找到存储有上述关键字的表项,CPU获取上述关键字的表项在TCAM的索引值,并在下发记录表的上述索引值的表项中查找上述CPU;上述下发记录表中为上述索引值建立的表项用于记录根据上述索引值存储关联数据的所有CPU。
CPU向TCAM输入关键字后,如果TCAM中存在存储关键字的表项,TCAM向CPU返回上述关键字的表项在TCAM中的索引值。
步骤34:若在下发记录表的上述索引值的表项中查找到上述CPU,CPU根据上述索引值在上述CPU的存储器中查找上述关键字对应的关联数据。
如果CPU在TCAM中查找到关键字,且在下发记录表的上述关键字在TCAM的索引值的表项中查找到主CPU,则确定CPU的存储器中存储有上述关键字对应的关联数据。
如果CPU在TCAM中没有查找到上述关键字,或者,虽然在TCAM中查找到上述关键字,但在上述下发记录表的上述索引值的表项中没有查找到CPU,则确定CPU没有在自己的存储器中存储上述关键字对应的关联数据,上述CPU向上层应用返回查找失败信息。
本实施例提供的技术方案中,处理器在TCAM中查找存储有关键字的表项后,还需要查找下发记录表,以判断该关键字的索引值所在表项是否包括上述处理器。如果包括上述处理器,上述处理器根据上述关键字的表项在TCAM的索引值从上述处理器的存储器中读取与上述关键字对应的关联数据。
图3B为本发明实施例提供的一种应用场景示意图。如图3B所示,处理器可以是网络处理器(Network Processor,简称NP),NP从报文中提取出待查找的关键字,将待查找的关键字Key送入TCAM中。TCAM查找到该关键字后,将该关键字在TCAM的索引值INDEX返回给NP,NP再根据TCAM返回的索引值INDEX确定关键字KEY对应的关联数据在存储器中的存储地址ADDR(address),之后根据存储地址从存储器中读取关联数据,以对报文进行处理。
图4A为本发明实施例提供的一种数据存储装置结构示意图。如图4A所示,本实施例提供的数据存储装置包括:获取模块41、查找模块42、判断模块43和指示模块44。
获取模块41,用于获取待存储到TCAM的关键字和与关键字对应的关联数据。果
查找模块42,用于在TCAM中查找存储有上述关键字的表项。
判断模块43,用于若查找模块42没有查找到存储有上述关键字的表项,判断上述关键字的配置属性中是否包括至少两个备用CPU且不包括所述数据存储装置。
指示模块44,用于若查找模块42没有查找到存储有上述关键字的表项且判断模块43检测到上述配置属性中包括至少两个备用CPU且不包括所述数据存储装置时,向上述配置属性中的第一备用CPU发送包括上述关键字和上述关联数据的第一指示信息,并向关上述配置属性中的第二备用CPU发送包括关联数据的第二指示信息,所述第一备用CPU为所述配置属性中任意一个备用CPU,所述第二备用CPU为所述配置属性中除所述第一备用CPU的每一个备用CPU;第一指示信息,用于指示第一备用CPU将关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到第一备用CPU的存储器,将第一备用CPU的编号写入下发记录表中为索引值建立的表项,并将上述索引值发送给第二备用CPU;第二指示信息,用于指示第二备用CPU根据第一备用CPU发送的索引值将上述关联数据存储到第二备用CPU的存储器,并将第二备用CPU的编号写入下发记录表中为索引值建立的表项。
其中,第一备用CPU为配置属性中编号最小的备用CPU。
以上各模块的具体功能可参见图1B对应实施例中描述。
如图4B所示,在图4A的基础上还可包括存储模块45。
判断模块43,还用于若查找模块42没有查找到存储有上述关键字的表项,判断上述关键字的配置属性中是否包括所述数据存储装置和至少一个备用CPU。
存储模块45,用于若查找模块42没有查找到存储有上述关键字的表项且判断模块检测到上述配置属性中包括所述数据存储装置和至少一个备用CPU时,将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将关联数据存储到自身的存储器,将所述数据存储装置的编号写入下发记录表中为上述索引值建立的表项。
指示模块44,还用于存储模块45将所述数据存储装置的编号写入下发记录表中为上述索引值建立的表项之后,向上述关键字的配置属性中备用CPU发送包括关联数据和索引值的第三指示信息,用于指示上述配置属性中所有备用处理器根据上述装置发送的索引值将上述关联数据存储到上述备用处理器的存储器,并将自己的编号写入上述下发记录表中为上述索引值建立的表项。
以上各模块的具体功能可参见图1B对应实施例中描述。
上述实施例提供的技术方案主要涉及在TCAM中没有查找到上述关键字的表项且上述关键字的配置属性中包括多个CPU时,所述数据存储装置中各模块具有的功能。
通过上述实施例提供的技术方案,在关键字的配置属性中包括多个CPU的情况下,如果配置属性中包括所述数据存储装置,由所述数据存储装置在TCAM中存储关键字,如果配置属性中不包括所述数据存储装置,由配置属性中一个备用CPU在TCAM中存储上述关键字。存储上述关键字的CPU还根据上述关键字的表项在TCAM的索引值在自身的存储器中存储与上述关键字对应的关联数据,更新上述索引值在下发记录表的表项,并向上述配置属性中其它备用CPU发送上述关键字的表项在TCAM的索引值。其它备用CPU根据索引值在自身的存储器中存储与上述关键字的关联数据,并更新下发记录表。因此,本实施例提供的技术方案避免了TCAM中一个关键字对应一个以上的表项的缺陷,达到了配置属性中每个CPU的存储器都存储有该关键字的关联数据的目的。
以下描述在TCAM中没有查找到存储有上述关键字的表项且上述关键字的配置属性中包括一个CPU时,所述数据存储装置的各模块具有的功能,可参见图2对应实施例:
判断模块43,还用于若查找模块42没有查找到关键字,判断关键字的配置属性中CPU是否包括一个CPU且为备用处理器。
指示模块44,还用于若查找模块42没有查找到存储有上述关键字的表项且判断模块43检测到上述配置属性中包括一个CPU且为备用CPU时,向上述配置属性中备用CPU发送包括上述关键字和上述关联数据的第四指示信息;第四指示信息,用于指示上述配置属性中备用CPU将上述关键字存储到TCAM,根据关键字的表项在TCAM的索引值将关联数据存储到自身的存储器,并将自己的编号写入下发记录表中为索引值建立的表项。
判断模块43,还用于若查找模块没有查找到关键字时,判断关键字的配置属性中CPU是否包括一个CPU且为所述数据存储装置。
存储模块45,还用于若查找模块没有查找到存储有上述关键字的表项且判断模块检测到上述关键字的配置属性中包括一个CPU且为所述数据存储装置时,将上述关键字存储到TCAM,根据上述关键字的表项在TCAM的索引值将上述关联数据存储到自身的存储器,并将所述数据存储装置的编号写入下发记录表中为索引值建立的表项。
以下实施例描述在TCAM中查找到存储有上述关键字的表项且上述关键字的配置属性中包括一个CPU时,所述数据存储装置的各模块具有的功能,可参见图2对应实施例:
查找模块42,还用于若查找到存储有上述关键字的表项,获取上述关键字的表项在TCAM的索引值。
指示模块44,还用于若判断模块检测到上述配置属性中包括至少一个备用CPU时,向上述配置属性中的所有备用CPU发送包括查找模块获取到的索引值的第五指示信息,用于指示配置属性中的所有备用CPU根据索引值将上述关联数据存储到自身的存储器中,并将自己的编号写入下发记录表中为索引值建立的表项。
存储模块45,还用于若判断模块检测到上述配置属性中还包括所述数据存储装置时,根据上述索引值将上述关联数据存储到上述主处理器的存储器中,并将所述数据存储装置的编号写入下发记录表中为索引值建立的表项。
图5本发明实施例提供的一种数据查找装置结构示意图。本实施例提供的数据查找装置主要用于查找与关键字对应的关联数据。如图5所示,本实施例提供的处理器包括:接收模块51、查找模块52和获取模块53。
接收模块51,用于接收包括关键字的查找指示,查找指示用于指示查找与上述关键字的对应的关联数据。
查找模块52,用于在TCAM中查找存储有关键字的表项。
查找模块52,还用于若查找到存储有上述关键字的表项,获取上述关键字的表项在TCAM的索引值,并在下发记录表的索引值的表项中查找上述装置所属的处理器,上述下发记录表中为上述索引值建立的表项用于记录根据上述索引值存储关联数据的所有处理器。
获取模块53,用于若查找模块查找到上述处理器,根据上述索引值从上述处理器的存储器中获取与上述关键字对应的关联数据。
进一步,本实施例提供的处理器还包括:返回模块,用于若查找模块在TCAM中没有查找到存储有上述关键字的表项,或,在下发记录表的索引值的表项中没有查找到上述处理器,返回查找失败信息。
以上各模块的具体功能可参见图3A对应实施例中描述。
本实施例提供的技术方案中,数据查找装置在TCAM中查找存储有关键字的表项后,还需要查找下发记录表,判断该关键字的索引值所在表项是否包括上述装置对应的处理器,如果包括上述处理器,根据上述关键字的表项在TCAM的索引值从上述处理器的存储器中读取与上述关键字对应的关联数据。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种数据存储方法,其特征在于,包括:
主CPU获取待存储到TCAM的关键字和与所述关键字对应的关联数据;
所述主CPU在TCAM中查找存储有所述关键字的表项;
若没有查找到存储有所述关键字的表项,所述主CPU检测到所述关键字的配置属性中包括至少两个备用CPU且不包括所述主CPU时,向所述配置属性中的第一备用CPU发送包括所述关键字和所述关联数据的第一指示信息,并向所述关键字的配置属性中第二备用CPU发送包括所述关联数据的第二指示信息,所述第一备用CPU为所述配置属性中任意一个备用CPU,所述第二备用CPU为所述配置属性中除所述第一备用CPU的每一个备用CPU;所述第一指示信息,用于指示所述第一备用CPU将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到所述第一备用CPU的存储器,将所述第一备用CPU的编号写入下发记录表中为所述索引值建立的表项,并将所述索引值发送给所述第二备用CPU;所述第二指示信息,用于指示所述第二备用CPU根据所述第一备用CPU发送的所述关键字的表项在TCAM中的索引值将所述关联数据存储到所述第二备用CPU的存储器,并将所述第二备用CPU的编号写入所述下发记录表中为所述索引值建立的表项;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有CPU的编号。
2.根据权利要求1所述的方法,其特征在于,还包括:
若没有查找到存储有所述关键字的表项,所述主CPU检测到所述关键字的配置属性中包括所述主CPU和至少一个备用CPU时,将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到自身的存储器,将所述主CPU的编号写入下发记录表中为所述索引值建立的表项之后,向所述关键字的配置属性中所有备用CPU发送包括所述关联数据和所述索引值的第三指示信息,用于指示所述配置属性中的所有备用CPU根据所述主CPU发送的索引值将所述关联数据存储到所述备用CPU的存储器,并将自己的编号写入所述下发记录表中为所述索引值建立的表项。
3.根据权利要求1或2所述的方法,其特征在于,所述第一备用CPU为所述配置属性中编号最小的备用CPU。
4.根据权利要求1、2或3所述的方法,其特征在于,还包括:
若没有查找到存储有所述关键字的表项,所述主CPU检测到所述关键字的配置属性中包括一个CPU且为备用CPU时,向所述配置属性中备用CPU发送包括所述关键字和所述关联数据的第四指示信息;所述第四指示信息,用于指示所述配置属性中备用CPU将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到自身的存储器,并将自己的编号写入所述下发记录表中为所述索引值建立的表项;
若没有查找到存储有所述关键字的表项,所述主CPU检测到所述关键字的配置属性包括一个CPU且为所述主CPU时,将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到自身的存储器,并将所述主CPU的编号写入所述下发记录表中为所述索引值建立的表项。
5.根据权利要求1、2、3或4所述的方法,其特征在于,还包括:
若查找到存储有所述关键字的表项,所述主CPU获取所述关键字的表项在TCAM的索引值;
若所述配置属性中包括至少一个备用CPU时,所述主CPU向所述配置属性中的所有备用CPU发送包括所述索引值的第五指示信息,用于指示所述配置属性中的备用CPU根据所述索引值将所述关联数据存储到自身的存储器中,并将所述配置属性中的所有备用CPU的编号写入所述下发记录表中为所述索引值建立的表项;
若所述配置属性中还包括所述主CPU,所述主CPU根据所述索引值将所述关联数据存储到自身的存储器中,并将所述主CPU的编号写入所述下发记录表中为所述索引值建立的表项。
6.一种数据查找方法,其特征在于,包括:
CPU接收包括关键字的查找指示,所述查找指示用于指示CPU查找所述关键字的对应的关联数据;
所述CPU在TCAM中查找存储有所述关键字的表项;
若查找到存储有所述关键字的表项,所述CPU获取所述关键字的表项在TCAM的索引值,并在下发记录表的所述索引值的表项中查找所述CPU;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有CPU;
若查找到所述CPU,所述CPU根据所述索引值从所述CPU的存储器中获取所述关键字对应的关联数据。
7.根据权利要求6所述的方法,其特征在于,还包括:
若在TCAM中没有查找到存储有所述关键字的表项,或,在所述下发记录表的所述索引值的表项中没有查找到所述主CPU,所述CPU返回查找失败信息。
8.一种数据存储装置,其特征在于,包括:
获取模块,用于获取待存储到TCAM的关键字和与所述关键字对应的关联数据;
查找模块,用于在TCAM中查找存储有所述关键字的表项;
判断模块,用于若所述查找模块没有查找到存储有所述关键字的表项,判断所述关键字的配置属性中是否包括至少两个备用CPU且不包括所述装置;
指示模块,用于若所述查找模块没有查找到存储有所述关键字的表项且所述判断模块检测到所述关键字的配置属性中包括至少两个备用CPU且不包括所述装置时,向所述配置属性中的第一备用CPU发送包括所述关键字和所述关联数据的第一指示信息,并向所述关键字的配置属性中第二备用CPU发送包括所述关联数据的第二指示信息,所述第一备用CPU为所述配置属性中任意一个备用CPU,所述第二备用CPU为所述配置属性中除所述第一备用CPU的每一个备用CPU;所述第一指示信息,用于指示所述第一备用CPU将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到所述第一备用CPU的存储器,将所述第一备用CPU的编号写入下发记录表中为所述索引值建立的表项,并将所述索引值发送给所述第二备用CPU;所述第二指示信息,用于指示所述第二备用CPU根据所述在TCAM中的索引值将所述关联数据存储到所述第二备用CPU的存储器,并将所述第二备用CPU的编号写入所述下发记录表中为所述索引值建立的表项;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有CPU的编号。
9.根据权利要求8所述的装置,其特征在于,还包括:存储模块;
所述判断模块,还用于若所述查找模块没有查找到存储有所述关键字的表项,判断所述关键字的配置属性中是否包括所述装置且至少一个备用CPU;
所述存储模块,用于若所述查找模块没有查找到存储有所述关键字的表项且所述判断模块检测到所述关键字的配置属性中包括所述装置和至少一个备用CPU时,将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到所述装置的存储器,将所述装置的编号写入下发记录表中为所述索引值建立的表项;
所述指示模块,还用于将所述装置的编号写入下发记录表中所述索引值的表项之后,向所述关键字的配置属性中所有备用CPU发送包括所述关联数据和所述索引值的第三指示信息,用于指示所述配置属性中所有备用CPU根据所述装置发送的索引值将所述关联数据存储到所述备用CPU的存储器,并将自己的编号写入所述下发记录表中为所述索引值建立的表项。
10.根据权利要求8或9所述的装置,其特征在于,所述第一备用CPU为所述配置属性中编号最小的备用CPU。
11.根据权利要求8、9或10所述的装置,其特征在于:
所述判断模块,还用于若所述查找模块没有查找到存储有所述关键字的表项,判断所述关键字的配置属性中是否包括一个CPU且为备用CPU;
所述指示模块,还用于若所述查找模块没有查找到存储有所述关键字的表项且所述判断模块检测到所述关键字的配置属性中包括一个CPU且为备用CPU时,向所述配置属性中备用CPU发送包括所述关键字和所述关联数据的第四指示信息;所述第四指示信息,用于指示所述配置属性中备用CPU将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到自身的存储器,并将所述配置属性中备用CPU的编号写入所述下发记录表中为所述索引值建立的表项;
所述判断模块,还用于若所述查找模块没有查找到存储有所述关键字的表项时,判断所述关键字的配置属性中是否包括一个CPU且为所述装置;
所述存储模块,还用于若所述查找模块没有查找到存储有所述关键字的表项且所述判断模块检测到所述关键字的配置属性中包括一个CPU且为所述装置时,将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到所述装置的存储器,并将所述装置的编号写入所述下发记录表中为所述索引值建立的表项。
12.根据权利要求8至11任一项所述的装置,其特征在于:
所述查找模块,还用于若查找到存储有所述关键字的表项,获取所述关键字的表项在TCAM的索引值;
所述指示模块,还用于若所述查找模块检测到所述配置属性中包括至少一个备用CPU时,向所述配置属性中的所有备用CPU发送包括所述查找模块获取到的所述索引值的第五指示信息,用于指示所述配置属性中的所有备用CPU根据所述索引值将所述关联数据存储到自己的存储器中,并将自己的编号写入所述下发记录表中为所述索引值建立的表项;
所述存储模块,还用于若所述配置属性中还包括所述装置,根据所述索引值将所述关联数据存储到所述装置的存储器中,并将所述装置的编号写入所述下发记录表中为所述索引值建立的表项。
13.一种数据查找装置,其特征在于,包括:
接收模块,用于接收包括关键字的查找指示,所述查找指示用于指示查找所述关键字的对应的关联数据;
查找模块,用于在TCAM中查找存储有所述关键字的表项;
所述查找模块,还用于若查找到存储有所述关键字的表项,获取所述关键字的表项在TCAM的索引值,并在下发记录表的所述索引值的表项中查找所述装置所属的处理器;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有处理器;
获取模块,用于若所述查找模块查找到所述处理器,根据所述索引值从所述处理器的存储器中获取所述关键字对应的关联数据。
14.根据权利要求13所述的装置,其特征在于,还包括:
返回模块,用于若所述查找模块在TCAM中没有查找到存储有所述关键字的表项,或,在所述下发记录表的所述索引值的表项中没有查找到所述处理器,返回查找失败信息。
CN201280001140.XA 2012-08-22 2012-08-22 数据存储方法、查找方法及装置 Active CN102959548B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/080460 WO2014029084A1 (zh) 2012-08-22 2012-08-22 数据存储方法、查找方法及装置

Publications (2)

Publication Number Publication Date
CN102959548A true CN102959548A (zh) 2013-03-06
CN102959548B CN102959548B (zh) 2015-12-09

Family

ID=47766347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280001140.XA Active CN102959548B (zh) 2012-08-22 2012-08-22 数据存储方法、查找方法及装置

Country Status (2)

Country Link
CN (1) CN102959548B (zh)
WO (1) WO2014029084A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103227751A (zh) * 2013-05-14 2013-07-31 盛科网络(苏州)有限公司 提高转发表项空间使用率的方法和装置
CN103279423A (zh) * 2013-05-15 2013-09-04 华为技术有限公司 一种内容寻址存储器的寻址方法及设备
CN104615662A (zh) * 2015-01-05 2015-05-13 宇龙计算机通信科技(深圳)有限公司 一种处理数据的方法、装置及终端设备
CN105474181A (zh) * 2013-08-31 2016-04-06 英派尔科技开发有限公司 内容可寻址存储器设备
CN105653677A (zh) * 2015-12-31 2016-06-08 盛科网络(苏州)有限公司 一种多对一索引分配的实现方法及实现装置
WO2016101488A1 (zh) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 一种三态内容可寻址存储器tcam查表方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104935517B (zh) * 2015-04-29 2019-03-15 新华三技术有限公司 表项管理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870564A (zh) * 2006-05-08 2006-11-29 国家数字交换系统工程技术研究中心 基于三态地址关联存储器实现组播查表的方法及系统
CN101770485A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 表项添加方法及装置和表项处理方法、装置及系统
US20100205364A1 (en) * 2009-02-06 2010-08-12 Hillel Gazit Ternary content-addressable memory
CN101840374A (zh) * 2010-04-28 2010-09-22 福建星网锐捷网络有限公司 处理装置、信息查找系统及信息查找方法
CN102622434A (zh) * 2011-12-31 2012-08-01 成都市华为赛门铁克科技有限公司 数据存储方法、查找方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870564A (zh) * 2006-05-08 2006-11-29 国家数字交换系统工程技术研究中心 基于三态地址关联存储器实现组播查表的方法及系统
CN101770485A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 表项添加方法及装置和表项处理方法、装置及系统
US20100205364A1 (en) * 2009-02-06 2010-08-12 Hillel Gazit Ternary content-addressable memory
CN101840374A (zh) * 2010-04-28 2010-09-22 福建星网锐捷网络有限公司 处理装置、信息查找系统及信息查找方法
CN102622434A (zh) * 2011-12-31 2012-08-01 成都市华为赛门铁克科技有限公司 数据存储方法、查找方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103227751A (zh) * 2013-05-14 2013-07-31 盛科网络(苏州)有限公司 提高转发表项空间使用率的方法和装置
CN103279423A (zh) * 2013-05-15 2013-09-04 华为技术有限公司 一种内容寻址存储器的寻址方法及设备
CN103279423B (zh) * 2013-05-15 2016-11-23 华为技术有限公司 一种内容寻址存储器的寻址方法及设备
CN105474181A (zh) * 2013-08-31 2016-04-06 英派尔科技开发有限公司 内容可寻址存储器设备
CN105474181B (zh) * 2013-08-31 2018-12-11 英派尔科技开发有限公司 内容可寻址存储器设备
WO2016101488A1 (zh) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 一种三态内容可寻址存储器tcam查表方法及装置
CN104615662A (zh) * 2015-01-05 2015-05-13 宇龙计算机通信科技(深圳)有限公司 一种处理数据的方法、装置及终端设备
CN104615662B (zh) * 2015-01-05 2019-05-14 宇龙计算机通信科技(深圳)有限公司 一种处理数据的方法、装置及终端设备
CN105653677A (zh) * 2015-12-31 2016-06-08 盛科网络(苏州)有限公司 一种多对一索引分配的实现方法及实现装置

Also Published As

Publication number Publication date
CN102959548B (zh) 2015-12-09
WO2014029084A1 (zh) 2014-02-27

Similar Documents

Publication Publication Date Title
CN107391653B (zh) 一种分布式NewSQL数据库系统及图片数据储存方法
CN102959548A (zh) 数据存储方法、查找方法及装置
US7930515B2 (en) Virtual memory management
CN102043686B (zh) 一种内存数据库的容灾方法、备用服务器及系统
CN104021161A (zh) 一种聚簇存储方法及装置
US20130042055A1 (en) Memory system including key-value store
CN102541757B (zh) 写缓存方法、缓存同步方法和装置
US11176110B2 (en) Data updating method and device for a distributed database system
CN103902623A (zh) 用于在存储系统上存取文件的方法和系统
CN104461390A (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
CN110888837B (zh) 对象存储小文件归并方法及装置
CN103914483A (zh) 文件存储方法、装置及文件读取方法、装置
CN102622434A (zh) 数据存储方法、查找方法及装置
CN109407985B (zh) 一种数据管理的方法以及相关装置
CN103488523A (zh) 一种页的访问方法和页的访问装置、服务器
CN103942161A (zh) 只读缓存的去冗余系统及方法以及缓存的去冗余方法
CN102243884B (zh) 一种存储流媒体数据的方法及装置
US20090313287A1 (en) Identifying objects within a multidimensional array
CN116662327B (zh) 一种用于数据库的数据融合清理方法
CN106776702B (zh) 一种处理主从式数据库系统中的索引的方法和装置
CN105354149A (zh) 一种内存数据查找方法和装置
CN103020186A (zh) 一种基于嵌入式设备的文件检索方法、装置以及设备
CN102455979B (zh) 受损存储单元的资料保护方法
CN113849482A (zh) 一种数据迁移方法、装置及电子设备
WO2015084399A1 (en) File retention

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