数据存储方法、查找方法及装置制造方法及图纸

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

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术实施例涉及计算机技术,尤其涉及一种数据存储方法、查找方法及装置
技术介绍
三态内容可寻址存储器(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为本专利技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:朱秀君刘恒
申请(专利权)人:华为技术有限公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1