一种哈希查找表的方法和装置制造方法及图纸

技术编号:4139344 阅读:254 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种哈希查找表的方法和装置,在存储表时,包括:规划出一主表存储空间,该主表存储空间又分为若干个地址空间;建立多个哈希函数,并利用该多个哈希函数对待存储信息的关键字进行哈希计算,得到多个索引值;比较该多个索引值对应的地址空间的空满程度,将该待存储信息存储至存储信息最少的地址空间。在查找表时,包括:使用已经建立的多个不同的哈希函数并行对待查找的关键字进行哈希计算,得到多个索引值,并行将该多个索引值对应的地址空间位置的表项的关键字与待查找的关键字进行匹配检索。采用本发明专利技术哈希查找表的方法和装置,可以节省哈希表的存储资源和提高哈希查找的效率。

【技术实现步骤摘要】

本专利技术涉及网络通信领域,尤其涉及网络通信中哈希查找表的硬件实现问题。更具体地说,涉及一种哈希查找表的方法和装置
技术介绍
在网络通信领域,查找表是必不可少的,例如查找MAC表,ARP表,MPLS标 签表等,而哈希查找表是一种广泛应用的方法,其基本思想为在记录的存储位置和它 的关键字之间建立一个确定的对应关系f,使得每个关键字和哈希表中一个唯一的存储地 址相对应。而确定的对应关系f为对应的哈希函数,每次查找表时,通过哈希函数得到存 储表项,提取表项的相关信息位,与查找的关键字匹配,根据匹配情况返回查找结果。 在实际使用的情况中,关键字数值值域一般很大,而实际存储的空间很小,对 应关系f无法实现关键字与存储地址的一一对应,多个关键字对应同一个存储地址,造成 哈希冲突。目前的冲突解决方法主要从两个方面考虑 1,提高哈希函数的性能,使经过哈希函数计算后的哈希值最大程度上的均匀分 布。例如专利号为CN200810225868的中国专利申请具有单轮次抗碰撞散列函数的方 法,它就是以耦合映射格子为模型,采用浮点运算和比特操作相结合的方法,提高单 轮次运算的复杂性来减少冲突,但是因为实际存储空间远小于哈希关键字的地址空间, 冲突不可能避免,相反哈希函数操作复杂,反而会带来实现上的困难。 2,专利技术冲突解决的方案,主流方案目前主要有两种 第一种是线性探索法,例如专利号为CN200710064368的中国专利申请哈希表 的操作方法和装置,它就是对线性探索法进行了改进,采用向上和向下两个方向进行 探索,探索时一次从外部RAM向CPU读入N个表项,以提高效率,但是在冲突剧烈时, 查找的效率会急剧下降。 第二种是增加存储空间,方法有建立冲突链,增加哈希桶,添加哈希表再次哈 希等,例如专利号为CN200610008448的中国专利申请一种改进的哈希方法进行查找 的方法,专利号为CN200610152578的中国专利申请一种解决哈希冲突的方法和装 置,以及专利号为CN200710175544的中国专利申请关键字存储查找方法和设备都 是采用上述几个方法的结合和改进。而这些专利技术同样存在着存储资源消耗相对较大,查 找效率相对较低等问题。 在网络通信中,信息的存储转发速率的要求越来越高,哈希表的查找处理速度 的要求也越来越快,因此需要一种易于实现,查找迅速,资源消耗较少的哈希查找方 法。 现在相关的专利文献包括专利号为CN200710049572的中国专利申请一种 哈希表的操作方法和专利号为US20080034115的美国专利申请Apparatus For Handling Hash Collisions Of Hash Searching And Method Using The Same(运用相同的哈希查找方法4解决哈希冲突的装置),其中 专利号为CN200710049572的中国专利申请存在以下的不足 一、该专利技术的应 用采用主从式并行多核处理器,多核处理器的应用的复杂性造成了使用的局限性;二、 该专利技术采用多个内存管理,也就是多张哈希存储表,这些存储表之间的信息交互等等问 题该专利技术并没有说明。三、该专利技术并没有给出硬件的实现方式。 专利号为US20080034115的美国专利申请存在以下的不足该专利技术以硬件方式 实现哈希查表,提出在哈希冲突时信息存储在CAM(Content Addressable Memory内容寻 址存储器)中,查找时CAM和哈希表同时查找的方法,该专利技术硬件实现需要外挂CAM, 需要添加CAM寻址接口,而且冲突剧烈时,信息集中在CAM中,造成了哈希表存储空 间资源的浪费,无法体现效率和资源之间的公平性。
技术实现思路
本专利技术的目的在于,克服现有技术实现哈希查找中存在的速度和哈希冲突的问 题,提出一种以硬件方式实现抗冲突并行哈希表的建立查找的方法和装置,以节省哈希 表的存储资源和提高哈希查找的效率。为解决上述技术问题,本专利技术提出一种哈希存储表的方法,包括 规划出一主表存储空间,该主表存储空间又分为若干个地址空间; 建立多个哈希函数,并利用该多个哈希函数对待存储信息的关键字进行哈希计算,得到多个索引值; 比较该多个索引值对应的地址空间的空满程度,将该待存储信息存储至存储信 息最少的地址空间。进一步地,上述哈希存储表的方法还可具有以下特点 还规划出一附属表存储空间; 当判断出该多个索引值对应的地址空间均已满时,将该待存储信息存储至该附 属表存储空间。进一步地,上述哈希存储表的方法还可具有以下特点 该主表存储空间大小是根据关键字取值范围和实际需要的存储空间范围来设置 的; 该附属表存储空间大小是根据主表溢出情况来设置的。 进一步地,上述哈希存储表的方法还可具有以下特点 为该主表存储空间中的每个地址空间设置并维护一指示该地址空间空满程度的 空满标志位; 比较该多个索引值对应的地址空间的空满程度时,是通过比较该多个索引值对 应的地址空间的空满标志位的取值来实现的。 为解决上述技术问题,本专利技术还提出一种哈希查找表的方法,包括 使用已经建立的多个不同的哈希函数并行对待查找的关键字进行哈希计算,得到多个索引值; 并行将该多个索引值对应的地址空间位置的表项的关键字与待查找的关键字进 行匹配检索。5 进一步地,上述哈希查找表的方法还可具有以下特点 在获取到该多个索引值后,先判断该各索引值对应的地址空间的空满标志位, 如果均为空,则认为查找失败;否则,从空满标志位为非空的存储空间位置预读存储表 项的关键字,并将预读出的关键字与该待查找的关键字进行匹配检索。 进一步地,上述哈希查找表的方法还可具有以下特点 在根据该计算出的多个索引值进行查找均失败时,则在附属表中顺序查找表项 的关键字并与该待查找的关键字进行匹配检索。 为解决上述技术问题,本专利技术提出一种哈希表项建立装置,包括哈希运算模 块、判断模块和信息存储模块,其中 哈希运算模块,用以建立多个哈希函数,并利用该多个哈希函数对待存储信息 的关键字进行哈希计算,得到多个索引值; 判断模块,用以在存储器上规划出一主表存储空间,该主表存储空间又分为若 干个地址空间;为该主表存储空间中的每个地址空间设置并维护一指示该地址空间空满 程度的空满标志位;以及根据哈希运算模块计算出的多个索引值查找哈希存储表,根据 该多个索引值对应的地址空间的空满标志位取值来判断该各地址空间的空满程度,控制 信息存储模块将该待存储信息存储至存储信息最少的地址空间; 信息存储模块,用以在判断模块的控制下将待存储的信息存储至相应的哈希表 项中。进一步地,上述哈希表项建立装置还可具有以下特点 判断模块,还用以在存储器上规划出一附属表存储空间;以及在判断出该多个 索引值对应的地址空间均已满时,控制信息存储模块将该待存储信息存储至该附属表存 储空间。进一步地,上述哈希表项建立装置还可具有以下特点 该主表存储空间大小是根据关键字取值范围和实际需要的存储空间范围来确定 的; 该附属表存储空间大小是根据主表溢出情况来确定的。 为解决上述技术问题,本专利技术还提出一种哈希表项查找装置,包括并行哈希运 算模块、并行哈希查找模块,以及并行检索模块,其中 并行哈希运算模块,用以使用已经建立的多个不同的哈希函数并行对待查找本文档来自技高网
...

【技术保护点】
一种哈希存储表的方法,其特征在于,包括:  规划出一主表存储空间,该主表存储空间又分为若干个地址空间;  建立多个哈希函数,并利用该多个哈希函数对待存储信息的关键字进行哈希计算,得到多个索引值;  比较该多个索引值对应的地址空间的空满程度,将该待存储信息存储至存储信息最少的地址空间。

【技术特征摘要】
一种哈希存储表的方法,其特征在于,包括规划出一主表存储空间,该主表存储空间又分为若干个地址空间;建立多个哈希函数,并利用该多个哈希函数对待存储信息的关键字进行哈希计算,得到多个索引值;比较该多个索引值对应的地址空间的空满程度,将该待存储信息存储至存储信息最少的地址空间。2. 如权利要求1所述的哈希存储表的方法,其特征在于 还规划出一附属表存储空间;当判断出该多个索引值对应的地址空间均已满时,将该待存储信息存储至该附属表 存储空间。3. 如权利要求2所述的哈希存储表的方法,其特征在于该主表存储空间大小是根据关键字取值范围和实际需要的存储空间范围来设置的; 该附属表存储空间大小是根据主表溢出情况来设置的。4. 如权利要求1所述的哈希存储表的方法,其特征在于为该主表存储空间中的每个地址空间设置并维护一指示该地址空间空满程度的空满 标志位;比较该多个索引值对应的地址空间的空满程度时,是通过比较该多个索引值对应的 地址空间的空满标志位的取值来实现的。5. —种哈希查找表的方法,其特征在于,包括使用已经建立的多个不同的哈希函数并行对待查找的关键字进行哈希计算,得到多 个索引值;并行将该多个索引值对应的地址空间位置的表项的关键字与待查找的关键字进行匹 配检索。6. 如权利要求5所述的哈希查找表的方法,其特征在于在获取到该多个索引值后,先判断该各索引值对应的地址空间的空满标志位,如果 均为空,则认为查找失败;否则,从空满标志位为非空的存储空间位置预读存储表项的 关键字,并将预读出的关键字与该待查找的关键字进行匹配检索。7. 如权利要求5或6所述的哈希查找表的方法,其特征在于在根据该计算出的多个索引值进行查找均失败时,则在附属表中顺序查找表项的关 键字并与该待查找的关键字进行匹配检索。8. —种哈希表项建立装置,其特征在于,包括哈希运算模块、判断模块和信息存储 模块,其中哈希运算模块,用以建立多个哈希函数,并利用该多个哈希函数对待存储信息的关 键字进行哈希计算,得到多个索引值;判断模块,用以在存储器上规划出一主表存储空间,该主表...

【专利技术属性】
技术研发人员:周昶缪欣周晓晶
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[]

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

1