一种维护表项的方法和装置制造方法及图纸

技术编号:2826421 阅读:167 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种维护表项的方法和装置,其中,方法包括:以预设的时间T1为周期对所有表项进行遍历,并对遍历到的当前表项执行以下步骤:判断当前表项是否命中,如果否,增加该当前表项对应的不命中计数值,并判断当前表项的不命中计数值是否达到预设的计数阈值M,如果是,则上报当前表项的老化信息,根据该老化信息删除当前表项。以此提供了一种针对三态内容可寻址存储器(TCAM)中表项的定时老化机制,从而实现自动地删除TCAM中老化的表项,减轻TCAM的存储负担。

【技术实现步骤摘要】

本专利技术涉及网络通信技术,特别涉及一种维护表项的方法和装置
技术介绍
三态内容可寻址存储器(TCAM,Ternary Content Addressable Memory)是随着网络设备处理速度不断提高而衍生出的一种高效的专用芯片。TCAM可以根据输入的内容得到地址,当输入一个内容时,TCAM利用该输入的内容对TCAM中存储的数据进行搜索,如果有匹配的数据,则命中该数据对应的表项,并获取该命中表项的内容。图1为现有技术中TCAM的结构示意图,如图1所示,表项存储模块中存储各表项,其中,每条表项都与一个索引对应,当表项管理模块通过驱动模块在表项存储模块中添加一个表项时,驱动模块可以获取该表项的索引并进行存储,表项管理模块可以利用驱动模块中各表项的索引对表项进行更新和删除。另外,表项存储模块中存储的每条表项都具有各自的命中标识,各命中标识的初始值为0,当内容搜索模块搜索到匹配的数据时,将该数据对应的表项的命中标识置1,代表该表项被命中,只有当驱动模块读取该命中标识后,才将该命中标识清0。在现有技术中,并没有存在针对TCAM中表项的老化机制,因此,仅能够手工对TCAM中的表项进行删除,否则,长时间没有命中的表项则仍然会占用TCAM的存储空间,从而造成TCAM的存储负担。
技术实现思路
本专利技术提供了一种维护表项的方法和装置,能够自动地删除TCAM中老化的表项,从而减轻TCAM的存储负担。-->一种维护表项的方法,该方法包括:以预设的时间T1为周期对所有表项进行遍历,并对遍历到的当前表项执行以下步骤:判断当前表项是否命中,如果否,增加该当前表项对应的不命中计数值加1,并判断当前表项的不命中计数值是否达到预设的计数阈值M,如果是,则上报当前表项的老化信息,根据该老化信息删除所述当前表项。一种维护表项的装置,该装置包括:不命中计数值存储模块、老化模块和表项管理模块;所述不命中计数值存储模块,用于存储各表项的不命中计数值;所述老化模块,用于以预设的时间T1为周期对所有表项进行遍历,并获取遍历到的当前表项的命中标识,判断所述当前表项是否命中,如果否,增加所述当前表项的不命中计数值,并判断当前表项的不命中计数值是否达到预设的计数阈值M,如果是,则向所述表项管理模块上报当前表项的老化信息,继续进行下一表项的遍历;所述表项管理模块,用于接收所述老化模块上报的所述老化信息后,根据所述老化信息删除所述当前表项。由以上技术方案可以看出,本专利技术提供的方法和装置以预设的时间T1为周期对所有表项进行遍历,并对遍历到的当前表项执行以下步骤:判断当前表项是否命中,如果否,增加该当前表项对应的不命中计数值,并判断当前表项的不命中计数值是否达到预设的计数阈值M,如果是,则上报当前表项的老化信息,根据该老化信息删除当前表项。可以利用该方法对TCAM表项在T1时间内连续不命中次数进行记录,当达到预设的计数阈值M时上报该表项的老化信息,表项管理模块可以根据该表项的老化信息对该表项进行删除,以此提供了一种针对TCAM中表项的定时老化机制,从而实现自动地删除TCAM中老化的表项,减轻TCAM的存储负担。-->附图说明图1为现有技术中TCAM的结构示意图;图2为本专利技术实施例提供的方法流程图;图3为本专利技术实施例提供的老化属性位图数组结构示意图;图4为本专利技术实施例提供的不命中计数数组示意图;图5为本专利技术实施例提供的装置结构图;图6为采用本专利技术的方法和装置实现定时老化的时序图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。本专利技术提供的方法主要包括:以预设的时间T1为周期对表项进行遍历,并对各表项执行以下步骤:判断当前表项是否命中;如果否,增加该当前表项对应的不命中计数值,并判断当前表项的不命中计数值是否达到预设的计数阈值M,如果是,则上报该表项的老化信息,根据该老化信息删除当前表项。下面以图2为例对本专利技术提供的方法进行详细描述,图2为本专利技术实施例提供的方法流程图,如图2所示,该方法可以包括以下步骤:步骤201:读取当前表项的老化属性标识。预先存储TCAM中各表项的老化属性标识,通常TCAM中的表项可以分为静态表项和可老化表项,其中,静态表项通常为重要表项或核心表项,静态表项不能被删除,不可老化;可老化表项是指可老化的普通表项,可以设置其老化时间为T,则针对该表项的不命中计数值的计数阈值M为:M=T/T1。(1)本步骤中的老化属性标识可以根据各表项的索引以老化属性位图数组的形式进行存储,该老化属性位图数组体现了表项索引和表项老化属性之间的对应关系,通过该对应关系可以确定各表项的老化属性。当然,也可以采-->用除了老化属性位图数组之外的其它表现形式。当表项为静态表项时,可以预先设置该表项对应的老化属性标识为0,表项为可老化表项时,可以预先设置该表项对应的老化属性标识为1,按照表项的索引按位填到老化属性位图数组中。在此,除了0和1之外,还可以采用其它方式表征静态表项和可老化表项,并不具体限定表征静态表项和老化表项的老化属性标识的形式。每个表项的索引Handle为表项在TCAM中的索引基址Base加表内偏移Offset,可以表示为:Handle=Base+Offset。当一条表项添加成功时,驱动模块会将表项索引返回给表项管理模块,表项管理模块将该表项索引和该表项的老化属性按表项索引的顺序添加到老化属性位图数组中。如果老化属性位图数组为32位的位图数组,则老化属性位图数组的大小ArraySize可以为:当表项数目为32的整数倍时,ArraySize=Size/32;当表项数目不是32的整数倍时,ArraySize=Size/32+1。其中,Size为表项的数目,/表示求商并取整。第N个表项的老化属性标识在位图数组中的数组序号Index为:Index=N/32;第N个表项在序号为Index的数组中的位数Bit为:Bit=N%32。其中,%表示取余数。图3为本专利技术实施例提供的老化属性位图数组结构示意图,如图3所示,该老化属性位图数组共ArraySize条数组,每条数组中包含32位,其中,阴影部分的位置对应的位图数组序号为Index,对应的位数为Bit。本方法中以预设的时间T1为周期对所有表项进行遍历,也就是以预设的时间T1为周期对老化属性位图数组中的老化属性标识进行遍历。步骤202:根据当前表项的老化属性标识,判断当前表项是否可老化,如果是,则执行步骤203;如果否,则执行步骤209。步骤203:根据该老化属性标识的位置计算该表项的索引。由步骤201中关于老化属性位图数组中老化属性标识位置的描述,可以得出,老化属性标识在老化属性位图数组中的位置与索引之间的对应关系-->为:Handle=Index×32+Bit+Base。步骤204:根据该表项的索引读取该表项的命中标识,读取后将该表项的命中标识清零。同样,各表项的命中标识也可以以命中标识位图数组的形式进行存储,该命中标识位图数组的形式可以与老化属性位图数组相同。通常,表项命中时,其命中标识为1,表项不命中时,其命中标识为0。同样,除了0和1之外,还可以采用其它方式表征表项不命中和命中,本专利技术也不具体限定命中标识的形式。驱动模块可以以固定的采样周期T本文档来自技高网...

【技术保护点】
一种维护表项的方法,其特征在于,该方法包括:以预设的时间T1为周期对所有表项进行遍历,并对遍历到的当前表项执行以下步骤:判断当前表项是否命中,如果否,增加该当前表项对应的不命中计数值,并判断当前表项的不命中计数值是否达到预设 的计数阈值M,如果是,则上报当前表项的老化信息,根据该老化信息删除所述当前表项。

【技术特征摘要】
1、一种维护表项的方法,其特征在于,该方法包括:以预设的时间T1为周期对所有表项进行遍历,并对遍历到的当前表项执行以下步骤:判断当前表项是否命中,如果否,增加该当前表项对应的不命中计数值,并判断当前表项的不命中计数值是否达到预设的计数阈值M,如果是,则上报当前表项的老化信息,根据该老化信息删除所述当前表项。2、根据权利要求1所述的方法,其特征在于,在所述判断当前表项是否命中之前还包括:读取当前表项的老化属性标识,根据所述读取的老化属性标识判断当前表项是否可老化,如果是,则继续执行所述判断当前表项是否命中的步骤;否则,直接遍历下一个表项。3、根据权利要求2所述的方法,其特征在于,该方法还包括:预先按照各表项的索引顺序,将各表项的老化属性标识存储在老化属性位图数组中;所述以预设的时间T1为周期对所有表项进行遍历包括:以预设的时间T1为周期对所述老化属性位图数组中所有表项的老化属性标识进行遍历;所述读取当前表项的老化属性标识包括:从所述老化属性位图数组中读取当前表项对应的老化属性标识。4、根据权利要求3所述的方法,其特征在于,所述判断当前表项是否命中包括:根据当前表项的老化属性标识的位置获取该表项的索引,并根据该表项的索引读取该表项的命中标识,根据该表项的命中标识判断当前表项是否命中。5、根据权利要求1所述的方法,其特征在于,该方法还包括:驱动模块以预设的采样周期T2对各表项的命中标识进行采样,并将采样到的命中标识按照表项索引的顺序保存到命中标识位图数组中;所述判断当前表项是否命中包括:读取当前表项在所述命中标识位图数组中对应的命中标识,并根据该读取的命中标识判断当前表项是否命中。6、根据权利要求5所述的方法,其特征在于,如果T2=T1/n,则所述驱动模块将采样到的命中标识按照表项索引的顺序保存到命中标识位图数组中包括:所述驱动模块将n次采样到的各表项的命中标识进行或运算后,将运算后的结果按照表项索引的顺序保存到命中标识位图数组中;其中,n为自然数。7、根据权利要求1所述的方法,其特征在于,所述计数阈值M为:M=T/T1,其中,T为所述当前表项的老化时间。8、根据权利要求1所述的方法,其特征在于,预先将所有表项进行分片,在对所述当前表项的下一表项进行遍历之前还包括:判断所述当前表项是否为所在分片中的最后一个表项,如果是,则等待时长T3后再对当前表项的下一表项进行遍历;否则继续对当前表项的下一表项进行遍历。9、一种维护表项的装置,其特征在于,该装置包括:不命中计数值存储模块、老化模块和表项管理模块;所述不命中计数值存储模块,用于存储各表项的不命中计数值;所述老化模块,用于以预设的时间T1为周期对所有表项进行遍历,并获取遍历到的当前表项的命中标识,判断所述当前表项是否命中,如果否,增加所述当前表项的不命中计数值,并判断当前表项的不命中计数值是否达到预设的计数阈值M,如果是,则向所述表项管理模块上报当前表项的老化信息,继续进行下一表项的遍历;所述表项管理模块,用于接收所述老化模块上报的所述老化信息后,根据所述老化信息删除所述...

【专利技术属性】
技术研发人员:陈荻
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1