表项添加方法及装置和表项处理方法、装置及系统制造方法及图纸

技术编号:4382566 阅读:226 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例涉及一种表项添加方法及装置和表项处理方法、装置及系统,其中该表项添加方法包括:接收表项添加请求,所述表项添加请求中携带请求添加的表项的第一关键字和索引;查询该第一关键字在随机存储器RAM中对应的桶是否已满,若已满,将所述第一关键字和索引添加进三态内容寻址存储器TCAM。本发明专利技术实施例将RAM中因桶满而发生冲突的表项添加进TCAM,保证所有表项都能够添加成功;无需增加RAM容量,因此节约了RAM资源,在RAM资源固定的情况下扩展了可存储的表项容量。

【技术实现步骤摘要】

本专利技术实施例涉及通信
,特别是一种表项添加方法及装置和表项处理方法、装置及系统
技术介绍
哈希(Hash)运算是精确匹配查找的核心算法。哈希运算是使用特定的哈希函数 将某一关键字的内容存入特定地址内的存储方法,在精确匹配查找中有广泛的应用。当用 户向存储器中添加某一表项时,通过函数f(Key) = h对该信息的关键字Key进行哈希运 算,其中f()是特定的哈希函数,Key是需要存储表项的关键字,h是需要存储的表项的哈希 地址,该地址对应存储空间的第h个位置(slot),把该Key值和该Key值对应的信息都存入 该哈希地址h。查找时,对Key值进行哈希运算获取相应的哈希地址h就可以取得需要的 信息。但添加信息时,若对两个Key值进行哈希运算得到同样的哈希地址值,例如f (Keyl) =f(Key2) = M,则两条信息可能需要存入同一个哈希地址M中,因此可能产生哈希冲突。 现有技术通过软件解决哈希冲突的方法,例如链表存储法,是在添加表项时把经 过哈希运算后,将表项存入一个链表中,如果出现冲突,则可以将冲突的表项存入该链表中 的下一个空位,查找表项时,通过哈希运算查找到该表项对应的链表,然后遍历链表,然后 得到查找结果。这种方法遍历链表的速度决定了查找的速度。现有技术通过硬件解决哈 希冲突的方法,例如在添加表项时,将经过哈希计算后冲突的表项存入硬件随机存储器 (RandomAccess Memory ;以下简称RAM)的桶(类似于软件中的链表),在查找表项时,读 取哈希运算得到的哈希值对应的桶内的表项(类似于遍历链表),然后将要查找的表项与 读出的表项一一比对,得到查找结果,这种方法读取RAM的桶内表项的速度决定了查找运 算的效率,而RAM的桶内表项越多,读取的速度越慢。图l为经过哈希运算的表项在RAM中 的存储方式,如图l所示,Barrel表示桶,Key表示表项,Index表示Key对应的索引;Key x(y)表示编号为x的桶里内的编号为y的表项。RAM根据查找表项的哈希值划分为不同的 桶(类似于软件中的链表)。首先把RAM划分为若干个桶,例如m个桶,每个桶对应一个固 定的地址。根据桶的容量和表项的长短确定每个桶可以存储的表项个数,例如n。添加表项 时,采用哈希函数对下发添加的Key进行哈希运算得到一个桶地址,根据这个桶地址找到 对应的桶,再将表项写入该桶内空闲的位置;查找表项时,采用添加表项时的同一个哈希函 数对下发查找的Key进行哈希运算后得到桶地址,根据桶地址找到对应的桶,将桶内所有 表项读出,将读出的表项与下发查找的Key—一比对,如果有与Key相同的表项,则把该Key 对应的桶内的索引(Index)返回,认为查找命中;如果没有与Key相同的表项,则认为没有 匹配表项,返回查找未命中。其中哈希算法有很多种,这里仅泛指其中某一种,具体采用何 种算法还需根据具体设计进行选择。 由于RAM资源的有限性,在桶的个数m固定的情况下,桶的深度即每个桶内表项的 个数n也有相应的上限,即n值不可能是无限大或者是足够大,存在桶满的时候。哈希算 法不是一个完美的算法,它是一个多对少的映射关系的函数抽象,即多个不同表项的哈希地址值可能是相同的,可能存在大于桶容量的n个表项经过哈希运算后需要存储到同一个桶内,若该桶已满,再往这个桶内添加表项就会出现冲突。这种冲突与所采用的哈希算法、RAM资源的大小以及表项结构的分布都有关系。现有技术在哈希算法和表项结构确定的情况下,采用RAM进行存储,可以通过增加桶深即RAM资源来减小发生冲突的概率,但却不能完全避免冲突的发生,从而限制了 RAM中的表项的容量。 在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题 由于RAM资源和RAM中因桶满而发生冲突的概率相关,RAM桶深越大,每个桶中可以存储的表项越多,发生冲突的概率就越小,但RAM桶深越大需要的RAM资源就越大。因此,如果采用增加RAM资源的方法减小冲突概率,会浪费存储空间、增加成本和降低查找速度。
技术实现思路
本专利技术实施例提供一种表项添加方法及装置和表项处理方法、装置及系统,在成 功添加、查找表项的同时,节约RAM存储空间,降低成本,提高查找速度。 本专利技术实施例提供一种表项添加方法,包括 接收表项添加请求,所述表项添加请求中携带请求添加的表项的第一关键字和索 引; 查询该第一关键字在随机存储器RAM中对应的桶是否已满,若已满,将所述第一关键字和索引添加进三态内容寻址存储器TCAM。 本专利技术实施例又提供一种表项处理方法,包括 接收表项添加请求,所述表项添加请求中携带请求添加的表项的第一关键字和索 引; 查询该第一关键字在随机存储器RAM中对应的桶是否已满,若已满,将所述第一 关键字和索引添加进三态内容寻址存储器TCAM ; 接收表项查找请求,所述表项查找请求中携带请求查找的所述第一关键字; 查找所述第一关键字对应的表项,返回与所述第一关键字对应的表项的索引。 本专利技术实施例提供一种表项添加装置,包括 第一接收模块,用于接收表项添加请求,所述表项添加请求中携带请求添加的表 项的第一关键字和索引; 添加模块,用于查询该第一关键字在随机存储器RAM中对应的桶是否已满,若已 满,则将所述第一关键字和索引添加进三态内容寻址存储器TCAM。 本专利技术实施例又提供一种表项处理装置,包括 第一接收模块,用于接收表项添加请求,所述表项添加请求中携带请求添加的表 项的第一关键字和索引; 添加模块,用于查询该第一关键字在随机存储器RAM中对应的桶是否已满,若已 满,将所述第一关键字和索引添加进三态内容寻址存储器TCAM ; 第二接收模块,用于接收表项查找请求,所述表项查找请求中携带请求查找的所 述第一关键字; 返回模块,用于查找所述第一关键字对应的表项,返回与所述第一关键字对应的 表项的索引。 本专利技术实施例还提供一种表项处理系统,包括 算法引擎、随机存储器RAM和三态内容寻址存储器TCAM ; 所述算法引擎,用于接收表项添加请求,所述表项添加请求中携带请求添加的表 项的第一关键字和索引;查询该第一关键字在所述RAM中对应的桶是否已满,若已满,将所 述第一关键字和索引添加进所述TCAM。 本专利技术实施例提供一种表项添加方法及装置和表项处理方法、装置及系统,将RAM 中因桶满而发生冲突的表项添加进TCAM,避免了表项的冲突,保证所有表项都能够添加成 功;无需增加RAM容量,因此节约了 RAM资源,且在RAM资源固定的情况下,扩展了的可以存 储的表项容量。附图说明 图1为经过哈希运算的表项在RAM中的存储方式; 图2为本专利技术下发指令的系统的结构示意图; 图3为本专利技术表项添加方法实施例的流程图; 图4为本专利技术表项处理方法第一实施例的流程图; 图5为本专利技术表项处理方法第二实施例的流程图; 图6为本专利技术表项添加装置实施例的示意图; 图7为本专利技术表项处理装置实施例的示意图; 图8为本专利技术表项处理系统实施例的示意图。具体实施例方式下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。 根据RAM资源空间的容量(M),每条表项的占用的空间量(N),可以计算出RAM的 表项容量(S),计算公式为S = M/N,然后对S取整或本文档来自技高网
...

【技术保护点】
一种表项添加方法,其特征在于,包括:接收表项添加请求,所述表项添加请求中携带请求添加的表项的第一关键字和索引;查询该第一关键字在随机存储器RAM中对应的桶是否已满,若已满,将所述第一关键字和索引添加进三态内容寻址存储器TCAM。

【技术特征摘要】

【专利技术属性】
技术研发人员:沈士军秦增杰贾利敏焦石
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1