一种基于完美哈希算法的路由查找器和方法技术

技术编号:31086473 阅读:17 留言:0更新日期:2021-12-01 12:40
本发明专利技术公开了一种基于完美哈希算法的路由查找器和方法,包括输入模块、完美哈希函数模块和PN查找表模块;所述输入模块用于输入IP地址,所述输入模块的输出端连接完美哈希函数模块的输入端,所述完美哈希函数模块的输出端连接PN查找表模块输入端。将输入的IP地址进行完美哈希运算,得到一个对应的哈希值,将哈希值作为PN查找表的索引,访问PN查找表对应位置上的元素,并输出该元素,完成路由器查找。能够解决现有路由查找的资源高消耗、高功耗问题,同时保证较低延迟以及较低的键值更新延迟。同时保证较低延迟以及较低的键值更新延迟。同时保证较低延迟以及较低的键值更新延迟。

【技术实现步骤摘要】
一种基于完美哈希算法的路由查找器和方法


[0001]本专利技术属于电子
,具体属于一种基于完美哈希算法的路由查找器和方法。

技术介绍

[0002]现有网络路由器及交换机的路由查找器主要基于软件的Trie树结构或硬件的CAM/TCAM实现。这种方式对存储资源的消耗较大,会导致电路面积、功耗过高。同时,传统的CAM/TCAM方式在FPGA实现方案中不好适配,计算、存储资源消耗过大。传统路由查找方法无法满足特殊网络应用(如:传输网、自组网)中低延迟、低功耗、高带宽、低成本等需求。
[0003]现有的TCAM路由查找及优化方式如下:
[0004](1)对键值集合进行优化裁剪。通过键值前缀和后缀的匹配方法,减少有效键值的个数,进而减少所需CAM的行数,最终降低CAM的存储大小,同时提高查找速度。优化方式(1)的问题是降低的程度取决于输入键值集合中键值的分布,因此降低程度不稳定。另外,现有方法最多可以减少50%

95%,即使减少到95%,资源消耗仍较大。
[0005](2)降低查找的并行化程度,即对CAM分级查找,先对前一部分bit进行查找,得到匹配结果后,再对后一部分bit进行查找。这样降低了总的存储开销,同时也减轻了每一级的fan

in和fan

out,可以支持更高的时钟频率,从而降低查找延迟。优化方式(2)的问题是分多级查找会成倍增加查找的延迟,影响总的数据传输带宽。另外,该方式对存储资源的优化效果不明显。
[0006](3)使用类似Cache(缓存)的原理进行查找,即先用较小CAM对高频出现的键值进行查找,若Miss,则去较大的CAM中进行查找。优化方式(3)的问题是查找时间不是稳定的,有时快有时慢,且存储资源消耗与之前相比并无减小。
[0007]综上所述,现有方案无法兼顾较低的空间资源消耗、低功耗以及低延迟。

技术实现思路

[0008]为了解决现有技术中存在的问题,本专利技术提供一种基于完美哈希算法的路由查找器和方法,能够解决现有路由查找的资源高消耗、高功耗问题,同时保证较低延迟以及较低的键值更新延迟。
[0009]为实现上述目的,本专利技术提供如下技术方案:
[0010]一种基于完美哈希算法的路由查找器,包括输入模块、完美哈希函数模块和PN查找表模块;
[0011]所述输入模块用于输入IP地址,所述输入模块的输出端连接完美哈希函数模块的输入端,所述完美哈希函数模块的输出端连接PN查找表模块输入端。
[0012]优选的,所述完美哈希函数模块包括模r电路、第一存储器、MurMur1哈希器和模m电路;
[0013]所述输入模块的输出端连接模r电路的输入端和MurMur1哈希器的输入端,所述模
r电路的输出端连接第一存储器的输入端,所述第一存储器的输出端连接MurMur1哈希器的输入端,所述MurMur1哈希器的输出端连接模m电路的输入端。
[0014]进一步的,所述MurMur1哈希器包括参数模块、第一P模块、第二P模块和第一乘法模块;
[0015]所述输入模块的输出端连接参数模块的输入端,所述参数模块的输出端连接第一P模块的输入端,所述第一存储器的输出端连接第一P模块的输入端和第二P模块的输入端,所述第一P模块的输出端连接第二P模块的输入端,第二P模块的输出端连接第一乘法模块的输入端。
[0016]进一步的,所述第一P模块和第二P模块结构相同。
[0017]进一步的,所述第一P模块包括第一异或模块、第二乘法模块、右移模块和第二异或模块;
[0018]所述第一异或模块的输出端连接第二乘法模块的输入端,所述第二乘法模块的输出端连接右移模块的输入端和第二异或模块的输入端,右移模块的输出端连接第二异或模块的输入端。
[0019]一种基于完美哈希算法的路由器查找方法,包括以下过程,将输入的IP地址进行完美哈希运算,得到一个对应的哈希值,将哈希值作为PN查找表的索引,访问PN查找表对应位置上的元素,并输出该元素,完成路由器查找。
[0020]优选的,具体包括以下过程,
[0021]将输入的IP经过模r电路形成0至(r

1)之间的整数,对模r电路生成的数值和输入的IP在MurMur1哈希器中进行完美哈希运算,生成完美哈希值,将完美哈希值输入模m电路中,生成0至(m

1)之间的整数,将模m电路输出的结果作为第二存储器的索引,得到对应的输出端口号。
[0022]与现有技术相比,本专利技术具有以下有益的技术效果:
[0023]本专利技术第一个将完美哈希函数的设计方法完整地应用在自组网路由查找设计中。尽管目前已有其它的利用完美哈希原理进行路由查找的论文工作,但都是通过纯软件的方式辅助进行路由查找。本专利技术发现了传输网路由查找的特点:较低延迟、低功耗、低资源利用以及不需要高频率更新键值集合。同时,根据自组网的这些特点,完美哈希方案可以通过哈希函数逻辑,极大地减少键值本身承载的信息量,从而降低存储键值需要的空间。
[0024]在路由查找延迟上,本专利技术与传统的解决方案基本持平。同时,相较于传统解决方案,本专利技术极大地降低了硬件资源利用、路由查找系统功耗(至少一个数量级,具体对比见实施例)。为专用网络(如:传输网系统)的路由查找应用提供了全新的思路。
附图说明
[0025]图1为本专利技术完美哈希与路由查找基本概念配图;
[0026]图2为本专利技术路由查找整体设计流程图;
[0027]图3为本专利技术基于完美哈希的路由查找器原理图;
[0028]图4为本专利技术路由查找器硬件行为级设计;
[0029]图5为本专利技术MurMur1哈希器硬件行为级设计;
[0030]图6为本专利技术路由查找器实施例硬件行为级设计。
具体实施方式
[0031]下面结合具体的实施例对本专利技术做进一步的详细说明,所述是对本专利技术的解释而不是限定。
[0032]本专利技术提供了一种基于完美哈希算法的路由查找器,包括输入模块、完美哈希函数模块和PN查找表模块;输入模块用于输入IP地址,输入模块的输出端连接完美哈希函数模块的输入端,完美哈希函数模块的输出端连接PN查找表模块输入端。
[0033]本专利技术提供了一种基于完美哈希算法的路由器查找方法,包括以下过程,将输入的IP地址进行完美哈希运算,得到一个对应的哈希值,将哈希值作为PN查找表的索引,访问PN查找表对应位置上的元素,并输出该元素,完成路由器查找。
[0034]完美哈希解决的数学问题是:输入n个互不相同的键值key,通过完美哈希函数的转换,输出m个互不相同的整数结果value。其中n<=m。注意:1个输入相互对应1个结果。例如:将n=10000个键值映射为独立的m个整数,算法尽量使m越小越好。(当算法能使得m=n时,完美哈希函数被称为最小完美哈希函数。)
[0035]如图1所示,完美哈希算法和路由查找本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于完美哈希算法的路由查找器,其特征在于,包括输入模块、完美哈希函数模块和PN查找表模块;所述输入模块用于输入IP地址,所述输入模块的输出端连接完美哈希函数模块的输入端,所述完美哈希函数模块的输出端连接PN查找表模块输入端。2.根据权利要求1所述的一种基于完美哈希算法的路由查找器,其特征在于,所述完美哈希函数模块包括模r电路、第一存储器、MurMur1哈希器和模m电路;所述输入模块的输出端连接模r电路的输入端和MurMur1哈希器的输入端,所述模r电路的输出端连接第一存储器的输入端,所述第一存储器的输出端连接MurMur1哈希器的输入端,所述MurMur1哈希器的输出端连接模m电路的输入端。3.根据权利要求2所述的一种基于完美哈希算法的路由查找器,其特征在于,所述MurMur1哈希器包括参数模块、第一P模块、第二P模块和第一乘法模块;所述输入模块的输出端连接参数模块的输入端,所述参数模块的输出端连接第一P模块的输入端,所述第一存储器的输出端连接第一P模块的输入端和第二P模块的输入端,所述第一P模块的输出端连接第二P模块的输入端,第二P模块的输出端连接第一乘法模块的输入端。4.根据权利要求3所述的一种...

【专利技术属性】
技术研发人员:张珂燃沈绪榜罗迒哉钟升匡乃亮聂宇琛
申请(专利权)人:西安微电子技术研究所
类型:发明
国别省市:

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

1