CN113726661A - 一种高性能低功耗的路由哈希器及其控制方法 - Google Patents
一种高性能低功耗的路由哈希器及其控制方法 Download PDFInfo
- Publication number
- CN113726661A CN113726661A CN202110998683.4A CN202110998683A CN113726661A CN 113726661 A CN113726661 A CN 113726661A CN 202110998683 A CN202110998683 A CN 202110998683A CN 113726661 A CN113726661 A CN 113726661A
- Authority
- CN
- China
- Prior art keywords
- memory
- module
- logic operation
- operation unit
- shift module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种高性能低功耗的路由哈希器及其控制方法,在查找过程上多出了路由哈希器的计算逻辑,但将存储和功耗都降低至少一个数量级。在时间上,由于路由哈希器的设计非常轻量化,可以达到与目前已知TCAM方案的最低延迟在同一个数量级上。另一方面,本发明保证了路由哈希算法的通用性在添加或者修改新的IP地址及对应端口时,可通过软件模拟路由哈希过程,自动确定存储器中数值大小。最后,本发明灵活运用移位器,实现了高效的取模操作,能够更快的进行路由查找,并有效降低硬件资源消耗。
Description
技术领域
本发明涉及路由器/交换机技术领域,具体为一种高性能低功耗的路由哈希器及其控制方法。
背景技术
现有网络路由器及交换机的路由查找器主要基于软件的Trie树结构或硬件的CAM/TCAM实现。这种方式对存储资源的消耗较大,会导致电路面积、功耗过高。同时,传统的CAM/TCAM方式在FPGA实现方案中不好适配,计算、存储资源消耗过大。
传统路由查找方法无法满足特殊网络应用(如:自组网、传输网)中低延迟、低功耗、高带宽、低成本等需求。
假设一个键值集合S(例如:路由器上的一组IP地址),包含n个互不相同的键值key。
路由查找解决的数学问题是:输入n个互不相同的键值key,通过路由查找函数的转换,输出固定m个数的整数结果value。其中m会很小(m=3,4)。例如:将10000个键值映射为4个输出端口号。
现给出基本名词定义以及基于CAM/TCAM的路由查找的设计方案:
路由查找问题:在路由器/交换机中,已知数据包需要被传输的目的IP地址,通过路由查找,得到对应下一跳的路由器/交换机端口编号。
键值key:输入数据,例如:整数、字母或相应组合,在计算机硬件上体现为二进制的01序列(如:01100,00111000)。
输出端口:路由器/交换机收到通信数据包后,需要通过某一个输出端口,向下一个路由器/交换机传输该数据包。
RAM:随机存储器。
CAM:内容寻址存储器。
TCAM(Ternary Content Addressable Memory:通过内容寻址的三元存储器)原理:通过数据的并行比较,找到对应匹配的端口所在位置,并将该位置对应的端口信息输出。类似并行地进行“查字典”操作,其中键值为“单词”,端口号为“单词词性”,CAM方式即将需要查询的单词同时地与字典所有的“单词”进行雷同比较,匹配到对应单词后,将“单词”对应的位置交给RAM。
RAM(Random Access Memory):输入为地址信息(如图中:00,01,10,11),输出为地址对应位置上的数据(如图中:A,B,C,D)。类似用“单词”在字典中的位置来访问,找到“单词”后输出其词性。
基于CAM/TCAM的路由查找原理如图1所示。当输入为01101时,CAM会同时、并行地将其中的五行数据与输入相比,若某一行与输入01101恰好匹配(如图1中左图里CAM第二行为0110X,X表示既匹配0,也匹配1,因此0110X与01101匹配),则在对应的RAM位置(如图1中右图里第二行)中找到相应的端口号(如图中RAM第二行为B)输出。
CAM与RAM在计算机硬件中有专用的电路可以实现。现有的CAM/TCAM方案通过并行化,可以实现端口的快速查找。但当需要支持的键值很多时,“字典中”对应需要比较的槽(上图中CAM的行数)也需要很多。因此,在硬件实现上会消耗大量存储资源和芯片面积。另外,并行化的查找方式在电路中会产生大量的功耗,长时间使用会造成电力浪费。
为了解决TCAM方案的资源浪费问题,目前的主流优化方案有三种:
1、对键值集合进行优化裁剪。通过键值前缀和后缀的匹配方法,减少有效键值的个数,进而减少所需CAM的行数,最终降低CAM的存储大小,同时提高查找速度。
2、将查找的并行化程度,即对CAM分级查找,先对前一部分bit进行查找,得到匹配结果后,再对后一部分bit进行查找。这样降低了总的存储开销,同时也减轻了每一级的fan-in和fan-out,可以支持更高的时钟频率,从而降低查找延迟。
3、使用类似Cache(缓存)的原理进行查找,即先用较小CAM对高频出现的键值进行查找,若Miss(未查到),则去较大的CAM中进行查找。
现有的TCAM路由查找及优化方式在一定程度上减少了任务的资源消耗和功耗,但TCAM的并行化查找原理在电路中仍是存储资源和功耗的主要因素,无法将其继续降低。
优化方式1的问题是降低的程度取决于输入键值集合中键值的分布,因此降低程度不稳定。另外,现有方法最多可以减少50%-95%,即使减少到95%,资源消耗仍较大。优化方式2的问题是分多级查找会成倍增加查找的延迟,影响总的数据传输带宽。另外,该方式对存储资源的优化效果不明显。优化方式3的问题是查找时间不是稳定的,有时快有时慢,且存储资源消耗与之前相比并无减小。
总的来说,现有方案的优点是键值集合若需要频繁插入或删除新键值时,能很快对结构进行修改。但在类似传输网的相关应用中,整个网络的拓扑结构较为固定,所有IP地址构成的集合变化频率不高,这种情况下,定期对整个键值集合进行路由查找函数的整体更新可以满足需求,但是现有方案无法兼顾较低的空间资源消耗、低功耗以及低延迟。
发明内容
针对现有技术中存在无法兼顾较低的空间资源消耗、低功耗以及低延迟的问题,本发明提供一种高性能低功耗的路由哈希器及其控制方法,有效的解决现有路由查找的资源高消耗、高功耗问题,同时保证低延迟以及较低的键值更新延迟。
本发明是通过以下技术方案来实现:
一种高性能低功耗的路由哈希器,包括输入模块、输出模块、控制参数模块、第一逻辑运算单元ALU1、第二逻辑运算单元ALU2、第一存储器、第二存储器、第一移位模块、第二移位模块和移位模块组;
输入模块的一路输出数据经第一逻辑运算单元ALU1后进入第一移位模块中,并经进入第一移位模块后的输出数据作为索引访问第一存储器,存储器1返回的输出数据进入第二逻辑运算单元ALU2;输入模块的另一路输出数据经移位模块组后直接进入第二逻辑运算单元ALU2;第二逻辑运算单元ALU2的输出数据经第二移位模块后,作为索引访问第二存储器,第二存储器2返回的数据作为作用端口结果经输出模块输出;所述控制参数模块的数据输出端连接至第一逻辑运算单元ALU1的输入端。
优选的,移位模块组为第三移位模块时,输入模块的另一路输出数据经第三移位模块后直接进入第二逻辑运算单元ALU2,其中第二逻辑运算单元ALU2采用乘法器进行逻辑运算。
进一步的,第二逻辑运算单元ALU2采用乘法器进行逻辑运算时,控制参数模块获取乘法器参数r输入至第一逻辑运算单元ALU1。
优选的,移位模块组为第四移位模块、第五移位模块和第六移位模块时,输入模块的另一路输出数据分别经第四移位模块、第五移位模块和第六移位模块后再直接分别进入第二逻辑运算单元ALU2;其中第二逻辑运算单元ALU2采用异或逻辑运算方式和加法器进行逻辑运算。
进一步的,第六移位模块与第一存储器输出的数据在第二逻辑运算单元ALU2采用加法器,所述第四移位模块和第五移位模块输出的数据在第二逻辑运算单元ALU2采用异或逻辑运算方式进行逻辑运算。
更进一步的,通过加法器得到的数据与通过异或逻辑运算方式得到的数据在第二逻辑运算单元ALU2采用异或逻辑运算方式输入至第二位移模块中。
优选的,输入模块输入数据键值key。
一种高性能低功耗的路由哈希器的控制方法,基于上述所述的高性能低功耗的路由哈希器,包括如下步骤:
确认控制参数模块所输入的参数、移位模块组内移位模块的个数以及第一逻辑运算单元ALU1和第二逻辑运算单元ALU2的计算逻辑;
对路由哈希的整个过程进行模拟,确定参数取值;设定第一存储器和第二存储器的容量,遍历不同第一存储器和第二存储器的容量组合取值;并在其中一个第一存储器和第二存储器的容量组合取值下,对第一存储器和第二存储器中每一个元素的取值进行搜索,当元素取值能够将所有输入IP地址分别映射至对应的端口中,则保持各个参数,生成算法结束;当搜索范围内元素取值均无法满足路由查找需求,则当前第一存储器和第二存储器的容量组合失败,采用对下一个第一存储器和第二存储器的容量组合取值,并对第一存储器和第二存储器中每一个元素的取值进行搜索,直至当元素取值能够将所有输入IP地址分别映射至对应的端口中,则保持各个参数,生成算法结束,得到最终实际电路的控制参数。
与现有技术相比,本发明具有以下有益的技术效果:
本发明提供了一种高性能低功耗的路由哈希器,在查找过程上多出了路由哈希器的计算逻辑,但将存储和功耗都降低至少一个数量级。在时间上,由于路由哈希器的设计非常轻量化,可以达到与目前已知TCAM方案的最低延迟在同一个数量级上。另一方面,本发明保证了路由哈希算法的通用性在添加或者修改新的IP地址及对应端口时,可通过软件模拟路由哈希过程,自动确定存储器中数值大小。最后,本发明灵活运用移位器,实现了高效的取模操作,能够更快的进行路由查找,并有效降低硬件资源消耗。
附图说明
图1为现有技术中CAM/TCAM查找原理示例图;
图2为本发明中路由哈希器硬件结构示意图;
图3为本发明中移位模块组采用一个移位模块时的路由哈希器硬件结构示意图;
图4为本发明实施例1中路由哈希器硬件结构空间优先原理结构示意图;
图5为本发明中移位模块组采用三个移位模块时的路由哈希器硬件结构示意图;
图6为本发明实施例2中路由哈希器硬件结构时间优先原理结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面结合附图对本发明做进一步详细描述:
针对路由查找的数学问题本身,需要将每一个输入键值key映射到正确输出端口pn。因此,本发明提出了面向路由查找的哈希函数,硬件化实现命名为:路由哈希器。参见图2,本发明提供了一种高性能低功耗的路由哈希器,有效的解决现有路由查找的资源高消耗、高功耗问题,同时保证低延迟以及较低的键值更新延迟。
具体的,该高性能低功耗的路由哈希器,包括输入模块、输出模块、控制参数模块、第一逻辑运算单元ALU1、第二逻辑运算单元ALU2、第一存储器、第二存储器、第一移位模块、第二移位模块和移位模块组;
输入模块的一路输出数据经第一逻辑运算单元ALU1后进入第一移位模块中,并经进入第一移位模块后的输出数据作为索引访问第一存储器,存储器1返回的输出数据进入第二逻辑运算单元ALU2;输入模块的另一路输出数据经移位模块组后直接进入第二逻辑运算单元ALU2;第二逻辑运算单元ALU2的输出数据经第二移位模块后,作为索引访问第二存储器,第二存储器2返回的数据作为作用端口结果经输出模块输出;所述控制参数模块的数据输出端连接至第一逻辑运算单元ALU1的输入端。本发明中移位器的作用为提取数据中固定范围的位数。
具体的,输入模块输入数据键值key。
本发明中的移位模块组有多种设计方式:
方式一:根据图3所示,当移位模块组为第三移位模块时,输入模块的一路输出数据经第一逻辑运算单元ALU1后进入第一移位模块中,并经进入第一移位模块后的输出数据作为索引访问第一存储器,存储器1返回的输出数据进入第二逻辑运算单元ALU2;输入模块的另一路输出数据经第三移位模块后直接进入第二逻辑运算单元ALU2,第二逻辑运算单元ALU2的输出数据经第二移位模块后,作为索引访问第二存储器,第二存储器2返回的数据作为作用端口结果经输出模块输出;控制参数模块的数据输出端连接至第一逻辑运算单元ALU1的输入端。其中第二逻辑运算单元ALU2采用乘法器进行逻辑运算。
当移位模块组为第三移位模块时,输入模块的另一路输出数据经第三移位模块后直接进入第二逻辑运算单元ALU2,其中第二逻辑运算单元ALU2采用乘法器进行逻辑运算。
当第二逻辑运算单元ALU2采用乘法器进行逻辑运算时,控制参数模块获取乘法器参数r输入至第一逻辑运算单元ALU1。
方式二:根据图5所示,当移位模块组为第四移位模块、第五移位模块和第六移位模块时,输入模块的一路输出数据经第一逻辑运算单元ALU1后进入第一移位模块中,并经进入第一移位模块后的输出数据作为索引访问第一存储器,存储器1返回的输出数据进入第二逻辑运算单元ALU2;输入模块的另一路输出数据分别经第四移位模块、第五移位模块和第六移位模块后再直接分别进入第二逻辑运算单元ALU2;第二逻辑运算单元ALU2的输出数据经第二移位模块后,作为索引访问第二存储器,第二存储器2返回的数据作为作用端口结果经输出模块输出;控制参数模块的数据输出端连接至第一逻辑运算单元ALU1的输入端。其中第二逻辑运算单元ALU2采用异或逻辑运算方式和加法器进行逻辑运算。
第六移位模块与第一存储器输出的数据在第二逻辑运算单元ALU2采用加法器,所述第四移位模块和第五移位模块输出的数据在第二逻辑运算单元ALU2采用异或逻辑运算方式进行逻辑运算。
加法器得到的数据与通过异或逻辑运算方式得到的数据在第二逻辑运算单元ALU2采用异或逻辑运算方式输入至第二位移模块中。
为了使路由哈希器支持路由查找任务,首先需要确定控制参数、移位器的移位个数、以及存储器中的数据类型与数值。因此,本发明在软件上对路由哈希器的控制方法进行模拟,确定以上参数。包括如下步骤:
(1)确定路由查找的方案:确认控制参数模块输出的控制参数、移位模块组内移位模块的个数以及第一逻辑运算单元ALU1和第二逻辑运算单元ALU2的计算逻辑;
(2)生成实际电路的控制参数:设定第一存储器容量为R,第二存储器的容量为M,遍历不同(R,M)组合取值;并在其中一个第一存储器和第二存储器的容量组合取值下,对第一存储器和第二存储器中每一个元素的取值进行搜索,当元素取值能够将所有输入IP地址分别映射至对应的端口中,则保持各个参数,生成算法结束;当搜索范围内元素取值均无法满足路由查找需求,则当前(R,M)组合失败,采用对下一个(R,M)组合取值,并对第一存储器和第二存储器中每一个元素的取值进行搜索,直至当元素取值能够将所有输入IP地址分别映射至对应的端口中,则保持各个参数,生成算法结束。通过以上软件模拟的生成过程,可以得到最终实际电路的控制参数。
本发明中在专用网络应用(如:自组网、传输网系统)中,无论在路由查找延迟上,还是在硬件资源利用、路由查找系统功耗上,本发明均优于传统的路由查找解决方案。
本发明针对32bit固定的输入键值规模(10000个)以及4端口(0,1,2,3)输出的路由查找应用,进行专用硬件电路设计。与此同时,该设计给出了存储器的具体位宽需要,在FPGA以及ASIC实现上均可适配相应的存储资源。
实施例1
根据图4所示,根据键值大小、端口规模,本实施例确定了电路的具体形式,该实施例1不需要ALU1及控制参数的运算功能,可将输入数据直接进入第一移位模块,因此控制参数R及第一逻辑运算单元ALU1予以省略,同时,第一移位模块的作用为选取输入的低10-bit数据作为第一存储器的索引。同时,第三移位模块的作用为选取输入的高22-bit数据直接作为第二逻辑运算单元ALU2的的输入。第二逻辑运算单元ALU2的设计采用2输入的乘法器(如用Xilinx FPGA,可以直接选取DSP48E模块实现)。第三移位模块的作用为选取乘法器输出的中间13-bit数据直接作为存储器2的索引。可以看到,实施例的电路设计极大地简化了原始电路的设计。
与此同时,本实施例给出了具体数据的位宽信息。其中,第一存储器、第二存储器的容量、存储数据的位宽、移位器的移位个数,均由对应的软件生成算法预先确定。因此,该电路总的存储资源消耗是确定的,总的存储资源为:1024*16+8192*2=32768bit。针对不同的键值集合(10000个32-bit键值),该设计均可以支持路由查找的任务。
实施例2
根据图6所示,该实施例2不需要ALU1及控制参数的运算功能,可将输入数据直接进入第一移位模块,因此控制参数R及第一逻辑运算单元ALU1予以省略,同时,第一移位模块的作用为选取输入的低9-bit数据作为存储器1的索引。
该实施例中第二逻辑运算单元ALU2采用异或、加法的级联完成。
首先,第一存储器的输出为加法器的一个输入,原始输入key经过第六移位模块,向右移位s0位(s0为固定参数)后,作为加法器的另一个输入;其次,key经过第二移位模块,向左移位s1位(s1=32-s0)后,作为图6中异或模块1的一个输入,key经过第五移位模块,不进行移位,直接作为异或模块1的另一个输入;最后异或模块1与加法器的输出分别作为异或模块2的两个输入,经由异或模块2异或后进入第二移位模块,第二移位模块取该数据的低14位,作为第二存储器的索引,访问第二存储器。
该电路总的存储资源为:512*16+16384*2=40960bit。
本发明中传输网路由查找的特点:低延迟、低功耗、低资源利用以及不需要高频率更新键值集合,针对这些特点,本发明设计出了全新的路由哈希硬件电路。
设计的关键之处在于路由查找的函数逻辑,以及对函数逻辑的生成过程。函数逻辑能高效解决路由查找的延迟问题,生成过程能搜索出空间资源最优的参数。
综上所述,本发明提供了一种高性能低功耗的路由哈希器,在查找过程上多出了路由哈希器的计算逻辑,但将存储和功耗都降低至少一个数量级。在时间上,由于路由哈希器的设计非常轻量化,可以达到与目前已知TCAM方案的最低延迟在同一个数量级上。另一方面,本发明保证了路由哈希算法的通用性在添加或者修改新的IP地址及对应端口时,可通过软件模拟路由哈希过程,自动确定存储器中数值大小。最后,本发明灵活运用移位器,实现了高效的取模操作,能够更快的进行路由查找,并有效降低硬件资源消耗。算法的通用性和专用性是矛盾的。对于自组网、传输网应用来说,若所有IP地址是固定的,而且不更新,那么对每一个键值(IP地址)key,设计一个固定的映射逻辑至对应的端口,这样能实现延迟最小化、功耗资源最小化,但是,若将来添加或修改新的IP地址及对应端口时,需要重新手动设计映射逻辑,这样一来算法完全丧失了通用性。本发明的技术方案兼顾了通用性和专用性,是目前自组网、传输网应用较为合适的方案。
本发明的一部分哈希工作和取模操作被移位器替代,能更快的进行查找,因此本发明时间上最优。本发明在实施例中无论是查找延迟(时间)还是资源消耗(空间)目前都是最优选择。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (8)
1.一种高性能低功耗的路由哈希器,其特征在于,包括输入模块、输出模块、控制参数模块、第一逻辑运算单元ALU1、第二逻辑运算单元ALU2、第一存储器、第二存储器、第一移位模块、第二移位模块和移位模块组;
输入模块的一路输出数据经第一逻辑运算单元ALU1后进入第一移位模块中,并经进入第一移位模块后的输出数据作为索引访问第一存储器,存储器1返回的输出数据进入第二逻辑运算单元ALU2;输入模块的另一路输出数据经移位模块组后直接进入第二逻辑运算单元ALU2;第二逻辑运算单元ALU2的输出数据经第二移位模块后,作为索引访问第二存储器,第二存储器2返回的数据作为作用端口结果经输出模块输出;所述控制参数模块的数据输出端连接至第一逻辑运算单元ALU1的输入端。
2.根据权利要求1所述的一种高性能低功耗的路由哈希器,其特征在于,移位模块组为第三移位模块时,输入模块的另一路输出数据经第三移位模块后直接进入第二逻辑运算单元ALU2,其中第二逻辑运算单元ALU2采用乘法器进行逻辑运算。
3.根据权利要求2所述的一种高性能低功耗的路由哈希器,其特征在于,第二逻辑运算单元ALU2采用乘法器进行逻辑运算时,控制参数模块获取乘法器参数r输入至第一逻辑运算单元ALU1。
4.根据权利要求1所述的一种高性能低功耗的路由哈希器,其特征在于,移位模块组为第四移位模块、第五移位模块和第六移位模块时,输入模块的另一路输出数据分别经第四移位模块、第五移位模块和第六移位模块后再直接分别进入第二逻辑运算单元ALU2;其中第二逻辑运算单元ALU2采用异或逻辑运算方式和加法器进行逻辑运算。
5.根据权利要求4所述的一种高性能低功耗的路由哈希器,其特征在于,第六移位模块与第一存储器输出的数据在第二逻辑运算单元ALU2采用加法器,所述第四移位模块和第五移位模块输出的数据在第二逻辑运算单元ALU2采用异或逻辑运算方式进行逻辑运算。
6.根据权利要求5所述的一种高性能低功耗的路由哈希器,其特征在于,通过加法器得到的数据与通过异或逻辑运算方式得到的数据在第二逻辑运算单元ALU2采用异或逻辑运算方式输入至第二位移模块中。
7.根据权利要求1所述的一种高性能低功耗的路由哈希器,其特征在于,输入模块输入数据键值key。
8.一种高性能低功耗的路由哈希器的控制方法,基于权利要求1-7任一项所述的高性能低功耗的路由哈希器,其特征在于,包括如下步骤:
确认控制参数模块所输入的参数、移位模块组内移位模块的个数以及第一逻辑运算单元ALU1和第二逻辑运算单元ALU2的计算逻辑;
对路由哈希的整个过程进行模拟,确定参数取值;设定第一存储器和第二存储器的容量,遍历不同第一存储器和第二存储器的容量组合取值;并在其中一个第一存储器和第二存储器的容量组合取值下,对第一存储器和第二存储器中每一个元素的取值进行搜索,当元素取值能够将所有输入IP地址分别映射至对应的端口中,则保持各个参数,生成算法结束;当搜索范围内元素取值均无法满足路由查找需求,则当前第一存储器和第二存储器的容量组合失败,采用对下一个第一存储器和第二存储器的容量组合取值,并对第一存储器和第二存储器中每一个元素的取值进行搜索,直至当元素取值能够将所有输入IP地址分别映射至对应的端口中,则保持各个参数,生成算法结束,得到最终实际电路的控制参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110998683.4A CN113726661B (zh) | 2021-08-27 | 2021-08-27 | 一种高性能低功耗的路由哈希器及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110998683.4A CN113726661B (zh) | 2021-08-27 | 2021-08-27 | 一种高性能低功耗的路由哈希器及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113726661A true CN113726661A (zh) | 2021-11-30 |
CN113726661B CN113726661B (zh) | 2022-10-18 |
Family
ID=78678689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110998683.4A Active CN113726661B (zh) | 2021-08-27 | 2021-08-27 | 一种高性能低功耗的路由哈希器及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113726661B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1096385A1 (en) * | 1999-10-31 | 2001-05-02 | Institute for the Development of Emerging Architectures, L.L.C. | A method and apparatus for forming an entry address |
CN1543133A (zh) * | 2003-04-30 | 2004-11-03 | 华为技术有限公司 | 静态路由的刷新方法 |
US6980521B1 (en) * | 2000-11-29 | 2005-12-27 | Cisco Technology, Inc. | Method and apparatus for per session load balancing with improved load sharing in a packet switched network |
US20060101228A1 (en) * | 2004-11-08 | 2006-05-11 | Via Technologies | System, method, and apparatus for realizing quicker access of an element in a data structure |
CN101340386A (zh) * | 2008-08-12 | 2009-01-07 | 华为技术有限公司 | 建立和查找路由表项的方法及路由器 |
WO2014127605A1 (zh) * | 2013-02-21 | 2014-08-28 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
CN107154899A (zh) * | 2017-03-23 | 2017-09-12 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种用后缀索引查找ip路由的系统 |
US9866480B1 (en) * | 2014-10-29 | 2018-01-09 | Netronome Systems, Inc. | Hash range lookup command |
CN111625534A (zh) * | 2020-04-09 | 2020-09-04 | 中国人民解放军战略支援部队信息工程大学 | 用于哈希运算的数据结构及基于该结构的哈希表存储、查询方法 |
CN112667526A (zh) * | 2021-03-22 | 2021-04-16 | 芯启源(南京)半导体科技有限公司 | 一种访问控制列表电路实现方法及其电路 |
-
2021
- 2021-08-27 CN CN202110998683.4A patent/CN113726661B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1096385A1 (en) * | 1999-10-31 | 2001-05-02 | Institute for the Development of Emerging Architectures, L.L.C. | A method and apparatus for forming an entry address |
US6980521B1 (en) * | 2000-11-29 | 2005-12-27 | Cisco Technology, Inc. | Method and apparatus for per session load balancing with improved load sharing in a packet switched network |
CN1543133A (zh) * | 2003-04-30 | 2004-11-03 | 华为技术有限公司 | 静态路由的刷新方法 |
US20060101228A1 (en) * | 2004-11-08 | 2006-05-11 | Via Technologies | System, method, and apparatus for realizing quicker access of an element in a data structure |
CN101340386A (zh) * | 2008-08-12 | 2009-01-07 | 华为技术有限公司 | 建立和查找路由表项的方法及路由器 |
WO2014127605A1 (zh) * | 2013-02-21 | 2014-08-28 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
US9866480B1 (en) * | 2014-10-29 | 2018-01-09 | Netronome Systems, Inc. | Hash range lookup command |
CN107154899A (zh) * | 2017-03-23 | 2017-09-12 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种用后缀索引查找ip路由的系统 |
CN111625534A (zh) * | 2020-04-09 | 2020-09-04 | 中国人民解放军战略支援部队信息工程大学 | 用于哈希运算的数据结构及基于该结构的哈希表存储、查询方法 |
CN112667526A (zh) * | 2021-03-22 | 2021-04-16 | 芯启源(南京)半导体科技有限公司 | 一种访问控制列表电路实现方法及其电路 |
Non-Patent Citations (1)
Title |
---|
赵大勇等: "基于改进主动哈希的URL存储和查找算法", 《微电子学与计算机》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113726661B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7418505B2 (en) | IP address lookup using either a hashing table or multiple hash functions | |
Varvello et al. | Caesar: A content router for high speed forwarding | |
US6778532B1 (en) | Packet relaying apparatus and high speed multicast system | |
Le et al. | Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning | |
CN100413285C (zh) | 基于网络处理器的高速多维报文分类算法的设计和实现 | |
CN107431660B (zh) | 检索装置、检索方法及记录介质 | |
KR20020059238A (ko) | 다중탐색 트리의 노드 생성 방법, 및 그에 따라 생성된다중탐색 트리 구조의 자료를 탐색하는 방법 | |
CN102045412B (zh) | IPv6地址前缀压缩存储方法及设备 | |
CN114884877A (zh) | 一种哈希表和HOT相结合的IPv6路由查找方法 | |
Pao et al. | IP address lookup using bit-shuffled trie | |
US11431626B2 (en) | Forwarding rules among lookup tables in a multi-stage packet processor | |
CN113726661B (zh) | 一种高性能低功耗的路由哈希器及其控制方法 | |
CN113726660B (zh) | 一种基于完美哈希算法的路由查找器和方法 | |
Veeramani et al. | Efficient IP lookup using hybrid trie-based partitioning of TCAM-based open flow switches | |
CN105227468A (zh) | 一种查找装置、查找方法和配置方法 | |
Hemalatha et al. | Searching time operation reduced IPV6 matching through dynamic DNA routing table for less memory and fast IP processing | |
CN113328947B (zh) | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 | |
Sarbishei et al. | Scalable memory-less architecture for string matching with FPGAs | |
Erdem | Pipelined hierarchical architecture for high performance packet classification | |
Mahini et al. | MLET: a power efficient approach for TCAM based, IP lookup engines in Internet routers | |
Bahrambeigy et al. | Bloom-Bird: A scalable open source router based on Bloom filter | |
Park et al. | An efficient IP address lookup algorithm based on a small balanced tree using entry reduction | |
Pao et al. | Bit-shuffled trie: IP lookup with multi-level index tables | |
Knox et al. | Parallel searching techniques for routing table lookup | |
Hatami et al. | Fast SDN updates using tree-based architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |