数据存储方法、查找方法及装置的制作方法

文档序号:6396985阅读:222来源:国知局
专利名称:数据存储方法、查找方法及装置的制作方法
技术领域
本发明实施例涉及计算机技术,尤其涉及一种数据存储方法、查找方法及装置。
背景技术
三态内容可寻址存储器(TernaryContent Addressable Memory,简称 TCAM)中每一个bit的状态可以是“O”或“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 Control List,,简称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的存储器都存储有该关键字的关联数据的目的。·


图IA为本发明实施例提供的一种数据存储方法流程图;图IB为本发明实施例提供的另一种数据存储方法流程图;图2为本发明实施例提供的又一种数据存储方法流程图;图3A为本发明实施例提供的一种数据查找方法流程图;图3B为本发明实施例提供的一种应用场景示意4A为本发明实施例提供的一种数据存储装置结构示意图;图4B为本发明实施例提供的另一种数据存储装置结构示意图;图5本发明实施例提供的一种数据查找装置结构示意图。
具体实施例方式图IA为本发明实施例提供的一种数据存储方法流程图。如图IA所示,本实施例提供的数据存储方法包括步骤11 :主CPU获取待存储到TCAM的关键字和与上述关键字对应的关联数据。本发明实施例适用于多个CPU共存的场景,本发明实施例中的CPU可为单核CPU也可为多核CPU。多个CPU共存的情况下,当前正在运行的CPU为主CPU,其它没有运行的(PU为备用CPU。本发明实施例中,所有CPU共享一个TCAM,每个CPU有自己的存储器。上层应用向主P⑶下发的关键字中包括配置属性,该关键字的配置属性中包括上层应用指示的存储该关键字的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的存储器都存储有该关键字的关联数据的目的。如图IB所示,在步骤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的索引值后,向上述配置属性中的各备用(PU发送包括上述索引值的第五指示信息,配置属性中的各备用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的编号写入上述下发记录表中为上述索引值建立的表项。下发记录表的上述索引值的表项中用于记录根据上述索引值存储关联数据的所有处理器。表I为本发明实施例提供的一种下发记录表。TCAM中每个关键字的索引值在下发记录表对应一个表项。如表I所不,在一个索引值所在的表项中,一个CPU对应的标志位为1,表示该CPU根据该索引值在自身的存储器存储过关联数据,一个CPU对应的标志位为O,表示该CPU没有根据该索引值在自身的存储器存储过关联数据。例如,索引值O所在的表项中,CPU-A的标志位为1,其它CPU的标志位均为0,表明CPU-A已根据索引值O在自身的存储器中存储了关联数据。又例如,索引值2所在的表项中,CPU-A和CPU-B的标志位均为1,其它CPU的标志位均为0,表明CPU-A和CPU-B已根据索引值O在自身的存储器中存储了关联数据。表I为本发明实施例提供的一种下发记录表
权利要求
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.根据权利要求I所述的方法,其特征在于,还包括 若没有查找到存储有所述关键字的表项,所述主CPU检测到所述关键字的配置属性中包括所述主CPU和至少一个备用CPU时,将所述关键字存储到TCAM,根据所述关键字的表项在TCAM的索引值将所述关联数据存储到自身的存储器,将所述主CPU的编号写入下发记录表中为所述索引值建立的表项之后,向所述关键字的配置属性中所有备用CPU发送包括所述关联数据和所述索引值的第三指示信息,用于指示所述配置属性中的所有备用CPU根据所述主CPU发送的索引值将所述关联数据存储到所述备用CPU的存储器,并将自己的编号写入所述下发记录表中为所述索引值建立的表项。
3.根据权利要求I或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.一种数据查找方法,其特征在于,包括 (PU接收包括关键字的查找指示,所述查找指示用于指示CPU查找所述关键字的对应的关联数据; 所述CPU在TCAM中查找存储有所述关键字的表项; 若查找到存储有所述关键字的表项,所述CPU获取所述关键字的表项在TCAM的索引值,并在下发记录表的所述索引值的表项中查找所述CPU;所述下发记录表中为所述索引值建立的表项用于记录根据所述索引值存储关联数据的所有CPU ; 若查找到所述CPU,所述CPU根据所述索引值从所述CPU的存储器中获取所述关键字对应的关联数据。
7.根据权利要求6所述的方法,其特征在于,还包括 若在TCAM中没有查找到存储有所述关键字的表项,或,在所述下发记录表的所述索引值的表项中没有查找到所述主CPU,所述CPU返回查找失败信息。
8.一种数据存储装置,其特征在于,包括 获取模块,用于获取待存储到TCAM的关键字和与所述关键字对应的关联数据; 查找模块,用于在TCAM中查找存储有所述关键字的表项; 判断模块,用于若所述查找模块没有查找到存储有所述关键字的表项,判断所述关键字的配置属性中是否包括至少两个备用CPU且不包括所述装置; 指示模块,用于若所述查找模块没有查找到存储有所述关键字的表项且所述判断模块检测到所述关键字的配置属性中包括至少两个备用CPU且不包括所述装置时,向所述配置属性中的第一备用CPU发送包括所述关键字和所述关联数据的第一指示信息,并向所述关键字的配置属性中第二备用CPU发送包括所述关联数据的第二指示信息,所述第一备用(PU为所述配置属性中任意一个备用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中没有查找到存储有所述关键字的表项,或,在所述下发记录表的所述索引值的表项中没有查找到所述处理器,返回查找失败信息。
全文摘要
本发明实施例提供一种数据存储方法、数据查找方法及装置。该数据存储方法包括主CPU获取待存储到TCAM的关键字和与关键字对应的关联数据;若在TCAM中没有查找到存储有关键字的表项,检测到关键字的配置属性中包括不包括主CPU时,向配置属性中的第一备用CPU发送包括关键字和关联数据的第一指示信息,并向关键字的配置属性中第二备用CPU发送包括关联数据的第二指示信息。本发明实施例提供的技术方案避免了TCAM中一个关键字对应一个以上的表项的缺陷,达到了配置属性中每个CPU的存储器都存储有该关键字的关联数据的目的。
文档编号G06F17/30GK102959548SQ201280001140
公开日2013年3月6日 申请日期2012年8月22日 优先权日2012年8月22日
发明者朱秀君, 刘恒 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1