CN1437357A - 多哈希函数的虚通道标识/虚通路标识的查找方法 - Google Patents
多哈希函数的虚通道标识/虚通路标识的查找方法 Download PDFInfo
- Publication number
- CN1437357A CN1437357A CN 02103917 CN02103917A CN1437357A CN 1437357 A CN1437357 A CN 1437357A CN 02103917 CN02103917 CN 02103917 CN 02103917 A CN02103917 A CN 02103917A CN 1437357 A CN1437357 A CN 1437357A
- Authority
- CN
- China
- Prior art keywords
- vci
- vpi
- hash
- address
- hash table
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种多哈希函数的虚通道标识/虚通路标识的查找方法,是在再哈希技术的基础上,将源VPI/VCI的地址信息分为两部分按照多种不同划分方式分别进行按位异或,得到若干不同的异或结果,以解决不同源地址的哈希地址冲突问题,且每个异或结果分别与一哈希函数相对应;再将所得到的这些不同的异或结果分别作为地址访问内存,获取相应的存储信息;并采用多级哈希表结构,将各哈希表的存储空间逐级缩小,提高存储器的利用率;且对每个哈希函数的查找匹配操作采取流水线的方式,以提高查找速度。本发明的优点是:与现有的几种硬件查找技术相比较,其硬件电路相对比较简单,所需要的存储器容量小,实现的成本比较低廉。
Description
所属领域
本发明涉及一种多哈希(HASH)函数的虚通道标识(VPI)/虚通路标识(VCI)的查找方法,确切地说,涉及一种利用RAM实现低成本的高速查找方法,属于数据网络通信的技术领域。
背景技术
随着宽带网络通信的发展,数据转发和路由所必要的查找技术正向着高速和低成本的方向发展。目前的硬件查找方案有多种多样,比较常见的有以下几种:
(1)分段完全匹配查找:分段完全匹配查找通常是将接收到的异步传输模式ATM地址的虚通道标识VPI/虚通路标识VCI进行分段,采用分段逐级比较的方法直接通过索引进行查找。该分段比较方法所基于的多级地址表的结构如图1所示。其查找原理是:用ATM地址中的VPI[11:0]作为地址查找VPI索引表,得到与该VPI对应的VPI索引表的基地址VCI PNTR,再用VCI的高10位(VCI[15:6])作为地址在VCI索引表里进行查找,得到指向VCI的低6位(VCI[5:0])对应的64个表项的基地址VCC Block Index。每个VPI最多有1024个表项,这是由VCI的地址为[15:6]共10位所决定的。最后用VCI[5:0]作为地址查找该64个表项块,就得到与VPI/VCI匹配的存储内容。
(2)原有的哈希(HASH)技术:用于查找的哈希技术主要有链表法。哈希链表法的原理是:参见图2,将异步传输模式ATM地址的虚通道标识VPI/虚通路标识VCI进行哈希运算,求出更小地址范围的哈希地址(0-14位),用于查找哈希表,得到指向哈希链表的指针,再使用该指针查找哈希链表,如果VPI/VCI不匹配,则用下一链表指针去查找下一级链表;如果VPI/VCI匹配,则用存储表的指针去读取所需的表项内容。如果查找到链表的尾(即下一链表指针为空)都没有匹配,则说明该哈希表里没有该VPI/VCI对应的存储内容,说明该次查找失败。
(3)采用商用的内容可寻址存储器(CAM)芯片。
采用上述三种现有技术的缺点是:1、分段完全匹配查找的优点是查找时间固定,地址没有冲突,即对任何一个关键字都能找到唯一的记录;其缺点是存储空间利用率低,需要较大的RAM,这样势必增加产品的成本。2、链表法主要是从软件借鉴过来,虽然该技术已经比较成熟,但对硬件实现过程来说,这种方式显得过于复杂,并且这种方法查找速度不高。3、采用商用的CAM芯片,一是CAM芯片本身的价格成本太高,二是外接CAM芯片需要增加I/O管脚,这样就需增加印刷电路板的面积和布线难度,无疑又会增加生产成本。
发明内容
本发明的目的是提供一种多哈希函数的虚通道标识/虚通路标识的查找方法,该方法可以较好地解决目前三种硬件查找方法所存在的缺陷。
本发明的目的是这样实现的:一种多哈希函数的虚通道标识(VPI)/虚通路标识(VCI)的查找方法,其特征在于:该查找方法是在再哈希技术的基础上,将源VPI/VCI的地址信息分为两部分,按照多种不同划分方式分别进行按位异或,得到若干不同的异或结果,每个异或结果分别与一哈希函数相对应;再将所得到的这些不同的异或结果分别作为地址依次访问对应的哈希表,查找匹配的VPI/VCI,即可获取所需的转发路由、交换标识类的相应存储信息。
该查找方法采用各哈希表的存储空间呈逐级缩小的多级哈希表结构;且对每个哈希函数的查找匹配操作是采取流水线式的依次查找方式。
所述的多种划分方式的原则是尽可能地使按位异或的各个结果呈离散状。
该查找方法包括有下列操作步骤:
(1)采用再哈希技术,将源VPI/VCI的地址信息分为两部分按照多种不同划分方式分别进行按位异或,得到若干不同的异或结果,以解决不同源地址的哈希地址冲突问题,且每个异或结果分别与一不同的哈希函数相对应;
(2)再分别将所得到的这些不同的异或结果作为地址偏移,依次加上各哈希表的基地址后作为哈希地址访问对应的哈希表,查找到匹配的VPI/VCI后,获取相应的转发路由、交换标签类信息的存储内容;
(3)建立多级哈希表的结构,且该多级哈希表的存储空间大小是逐级缩小的,并按查找次序划分该多级哈希表的优先等级,以减小存储器容量,提高利用率;
(4)对每个异或结果依次在各个不同哈希表里进行流水线式地查找匹配访问存储器的操作,一旦查找到匹配的VPI/VCI,立即返回结果。
在第(3)步骤中,可以利用相应的逐级减少的不同位数的低位地址作为地址偏移来查找不同等级的哈希表存储空间。
在第(3)步骤中,建立的多级哈希表结构通常不超过4级。
在第(4)步骤中,对每个哈希表进行的查找操作是完全相同的。
本发明的特点是在再哈希技术的基础上,采用多级哈希表的结构,将各哈希表的存储空间逐级缩小,从而提高存储器的利用率,并且,对每个哈希函数的查找匹配操作采取流水线的方式,以提高查找的速度。其优点是:与现有的几种硬件查找技术相比较,本发明的硬件电路相对比较简单,所需要的存储器容量小,实现的成本比较低廉。
附图说明
图1是现有技术中使用的多层地址表分段完全匹配查找的结构示意图。
图2是现有技术中使用的链表哈希法查找方法的示意图。
图3是本发明使用的多级哈希表结构示意图图。
具体实施方式
参见图3,本发明是一种多哈希函数的虚通道标识(VPI)/虚通路标识(VCI)的查找方法,该查找方法包括有下列操作步骤:
首先采用再哈希技术,将源VPI/VCI的地址信息分为两部分按照多种不同划分方式分别进行按位异或,得到若干不同的异或结果,以解决不同源地址的哈希地址冲突问题,且每个异或结果分别与一不同的哈希函数相对应。这里所述的多种划分方式的原则是尽可能地使按位异或的各个结果呈离散状,下面例举本发明实施例所使用的4种划分方式,但是并不仅仅局限于这四种方式:
(1){VPI[11:0],VCI[15:14]}与VCI[13:0]。
(2){VPI[0],VPI[1],VPI[2],VPI[3],VPI[4],VPI[5],VPI[6],VPI[7],VCI[15:13]}与VCI[13:0]。
(3){VCI[15:14],VPI[11:0]}与{VCI[0],VCI[1],VCI[2],VCI[3],VCI[4],VCI[5],VCI[6],VCI[7],VCI[8],VCI[9],VCI[10],VCI[11],VCI[12],VCI[13]}。
(4){VPI[10],VPI[8],VPI[6],VPI[4],VPI[2],VPI[0],VCI[14],VCI[12],VCI[10],VCI[8],VCI[6],VCI[4],VCI[2],VCI[0]}与{VCI[1],VCI[3],VCI[5],VCI[7],VCI[9],VCI[11],VCI[13],VCI[15],VPI[1],VPI[3],VPI[5],VPI[7],VPI[9],VPI[11]}。
在图3所示的实施例中,是采用4种哈希算法(即图3中所示的哈希算法1-哈希算法4)对28位的VPI/VCI分别进行运算得到4个n位宽的运算结果(例如n为14),这些结果分别为X1、X2、X3、X4。
接着,再分别将所得到的这些不同的异或运算结果X1、X2、X3、X4作为地址偏移,依次加上各哈希表的基地址后得到的结果作为哈希地址访问对应的哈希表,查找到匹配的VPI/VCI后,就可获取相应的存储内容;这些存储内容一般为转发路由、交换标签类的信息。在图3中各个经过哈希运算得到的运算结果X1、X2、X3、X4就是作为偏移地址,再分别加上其对应的各哈希表的基地址后,得到16个哈希地址H1-H16,然后依次用这16个地址去访问存储器寻找匹配的VPI/VCI,一旦查找到匹配的VPI/VCI,就获取相应的存储内容,表示查找结束。
最后建立多级哈希表的结构,以进一步提高处理冲突的性能;而且,由于各哈希表的冲突概率逐级缩小,该多级哈希表的存储空间大小也是逐级缩小的,并按查找次序划分该多级哈希表的优先等级,可以利用哈希的异或结果的低位作为地址偏移来压缩各级哈希表的存储空间,以减小存储器容量和提高利用率;本发明建立的多级哈希表结构通常不超过4级。
下面结合图3所示的一个实施例具体说明本发明的工作原理:
设源地址为VPI/VCI,对VPI/VCI按照四种不同的方式分别划分为两部分,这两部分分别异或后得到4个不同的异或结果,与该4个不同的异或结果所对应的4个不同函数分别为:f1(vpi,vci),f2(vpi,vci),f3(vpi,vci),f4(vpi,vci),则该4个异或结果(即哈希地址)可以分别表示为:
X1=f1(vpi,vci);
X2=f2(vpi,vci);
X3=f3(vpi,vci);
X4=f4(vpi,vci);
本发明的该实施例技术方案设计支持8k个链接,一共设有4个哈希表,参见图3所示,按查找的优先次序分为1~4级:哈希表1、哈希表2、哈希表3和哈希表4,其存储容量大小分别为8K、4K、2K、2K。对每个哈希表的查找操作是完全相同的,都是用上述4个不同哈希函数的运算结果Xn加上各哈希表的基地址后得到的地址去查找匹配的VPI/VCI。也就是:首先依次用4个不同的地址H1、H2、H3、H4对哈希表1进行查找,如果四次查找都没有找到匹配的VPI/VCI,再取另外4个不同的地址H5、H6、H7、H8对哈希表2进行顺序查找,如果同样没有找到匹配的VPI/VCI,再取4个不同的地址H9、H10、H11、H12对哈希表3进行查找,如此类推,如果上述4个表都没有找到匹配的VPI/VCI,则表明该次查找VPI/VCI的链接失败。实际上,经过软件仿真和系统运行证明,经过4级哈希表仍然没有找到匹配的VPI/VCI而发生冲突的概率非常低,足以满足要求。
为了提高查找匹配速度,该实施例在对给定的VPI/VCI使用4个哈希地址访问4个哈希表的查找匹配过程中,采用流水线的方式访问存储器,一旦查找到匹配的VPI/VCI立即返回结果。
本发明的查找方法已经在计算机中进行仿真、模拟等多次试验,并且在交换介入产品线的有关设备的项目中使用试验性实施,经多次实施试验,该方法可靠可行,实现了发明目的。
Claims (7)
1、一种多哈希函数的虚通道标识(VPI)/虚通路标识(VCI)的查找方法,其特征在于:该查找方法是在再哈希技术的基础上,将源VPI/VCI的地址信息分为两部分,按照多种不同划分方式分别进行按位异或,得到若干不同的异或结果,每个异或结果分别与一哈希函数相对应;再将所得到的这些不同的异或结果分别作为地址依次访问对应的哈希表,查找匹配的VPI/VCI,即可获取所需的转发路由、交换标识类的相应存储信息。
2、根据权利要求1所述的多哈希函数的虚通道标识/虚通路标识的查找方法,其特征在于:该查找方法采用各哈希表的存储空间呈逐级缩小的多级哈希表结构;且对每个哈希函数的查找匹配操作是采取流水线式的依次查找方式。
3、根据权利要求1所述的多哈希函数的虚通道标识/虚通路标识的查找方法,其特征在于:所述的多种划分方式的原则是尽可能地使按位异或的各个结果呈离散状。
4、根据权利要求1所述的多哈希函数的虚通道标识/虚通路标识的查找方法,其特征在于:该查找方法包括有下列操作步骤:
(1)采用再哈希技术,将源VPI/VCI的地址信息分为两部分按照多种不同划分方式分别进行按位异或,得到若干不同的异或结果,且每个异或结果分别与一不同的哈希函数相对应;
(2)再分别将所得到的这些不同的异或结果作为地址偏移,依次加上各哈希表的基地址后作为哈希地址访问对应的哈希表,查找到匹配的VPI/VCI后,获取相应的转发路由、交换标签类信息的存储内容;
(3)建立多级哈希表的结构,且该多级哈希表的存储空间大小是逐级缩小的,并按查找次序划分该多级哈希表的优先等级;
(4)对每个异或结果依次在各个不同哈希表里进行流水线式地查找匹配访问存储器的操作,一旦查找到匹配的VPI/VCI,立即返回结果。
5、根据权利要求4所述的多哈希函数的虚通道标识/虚通路标识的查找方法,其特征在于:在第(3)步骤中,可以利用相应的逐级减少的不同位数的低位地址作为地址偏移来查找不同等级的哈希表存储空间。
6、根据权利要求4所述的多哈希函数的虚通道标识/虚通路标识的查找方法,其特征在于:在第(3)步骤中,建立的多级哈希表结构通常不超过4级。
7、根据权利要求4所述的多哈希函数的虚通道标识/虚通路标识的查找方法,其特征在于:在第(4)步骤中,对每个哈希表进行的查找操作是完全相同的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021039178A CN1184775C (zh) | 2002-02-07 | 2002-02-07 | 多哈希函数的虚通道标识/虚通路标识的查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021039178A CN1184775C (zh) | 2002-02-07 | 2002-02-07 | 多哈希函数的虚通道标识/虚通路标识的查找方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1437357A true CN1437357A (zh) | 2003-08-20 |
CN1184775C CN1184775C (zh) | 2005-01-12 |
Family
ID=27627936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021039178A Expired - Fee Related CN1184775C (zh) | 2002-02-07 | 2002-02-07 | 多哈希函数的虚通道标识/虚通路标识的查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1184775C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100355245C (zh) * | 2005-11-08 | 2007-12-12 | 东南大学 | 入侵检测系统用增强多哈希的源串还原方法 |
CN100452043C (zh) * | 2006-09-06 | 2009-01-14 | 南京中兴软创科技有限责任公司 | 一种多索引散列表的存储和检索方法 |
CN101267381B (zh) * | 2007-03-13 | 2010-12-29 | 大唐移动通信设备有限公司 | 哈希表操作方法及装置 |
CN101170625B (zh) * | 2006-10-23 | 2011-09-07 | 株式会社理光 | 图像形成装置 |
CN101471842B (zh) * | 2007-12-29 | 2012-02-29 | 北京大唐高鸿数据网络技术有限公司 | 一种动态管理异步传输模式中虚连接的方法 |
CN101529809B (zh) * | 2006-11-02 | 2012-10-10 | 北方电讯网络有限公司 | 链路状态协议控制的网络中路由选择信息的分布式存储 |
CN104598392A (zh) * | 2013-10-31 | 2015-05-06 | 南京思润软件有限公司 | 一种利用多级Hash服务器缓存结构的实现方法 |
CN107729577A (zh) * | 2017-11-29 | 2018-02-23 | 厦门市美亚柏科信息股份有限公司 | 一种基于多维哈希表的数据查找方法、终端设备及存储介质 |
WO2018120109A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 数据处理的方法和装置 |
CN110334251A (zh) * | 2019-07-01 | 2019-10-15 | 南京邮电大学 | 一种有效解决rehash冲突的元素序列生成方法 |
WO2022037436A1 (zh) * | 2020-08-20 | 2022-02-24 | 深圳市中兴微电子技术有限公司 | 一种多通道查表方法和装置 |
CN115576954A (zh) * | 2022-11-24 | 2023-01-06 | 恒生电子股份有限公司 | 哈希表的确定方法及装置 |
-
2002
- 2002-02-07 CN CNB021039178A patent/CN1184775C/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100355245C (zh) * | 2005-11-08 | 2007-12-12 | 东南大学 | 入侵检测系统用增强多哈希的源串还原方法 |
CN100452043C (zh) * | 2006-09-06 | 2009-01-14 | 南京中兴软创科技有限责任公司 | 一种多索引散列表的存储和检索方法 |
CN101170625B (zh) * | 2006-10-23 | 2011-09-07 | 株式会社理光 | 图像形成装置 |
CN102833329A (zh) * | 2006-11-02 | 2012-12-19 | 北方电讯网络有限公司 | 链路状态协议控制的网络中路由选择信息的分布式存储 |
CN101529809B (zh) * | 2006-11-02 | 2012-10-10 | 北方电讯网络有限公司 | 链路状态协议控制的网络中路由选择信息的分布式存储 |
CN101267381B (zh) * | 2007-03-13 | 2010-12-29 | 大唐移动通信设备有限公司 | 哈希表操作方法及装置 |
CN101471842B (zh) * | 2007-12-29 | 2012-02-29 | 北京大唐高鸿数据网络技术有限公司 | 一种动态管理异步传输模式中虚连接的方法 |
CN104598392A (zh) * | 2013-10-31 | 2015-05-06 | 南京思润软件有限公司 | 一种利用多级Hash服务器缓存结构的实现方法 |
WO2018120109A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 数据处理的方法和装置 |
CN107729577A (zh) * | 2017-11-29 | 2018-02-23 | 厦门市美亚柏科信息股份有限公司 | 一种基于多维哈希表的数据查找方法、终端设备及存储介质 |
CN110334251A (zh) * | 2019-07-01 | 2019-10-15 | 南京邮电大学 | 一种有效解决rehash冲突的元素序列生成方法 |
CN110334251B (zh) * | 2019-07-01 | 2021-10-19 | 南京邮电大学 | 一种有效解决rehash冲突的元素序列生成方法 |
WO2022037436A1 (zh) * | 2020-08-20 | 2022-02-24 | 深圳市中兴微电子技术有限公司 | 一种多通道查表方法和装置 |
CN115576954A (zh) * | 2022-11-24 | 2023-01-06 | 恒生电子股份有限公司 | 哈希表的确定方法及装置 |
CN115576954B (zh) * | 2022-11-24 | 2023-04-07 | 恒生电子股份有限公司 | 哈希表的确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1184775C (zh) | 2005-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1184775C (zh) | 多哈希函数的虚通道标识/虚通路标识的查找方法 | |
Kumar et al. | Advanced algorithms for fast and scalable deep packet inspection | |
US7415463B2 (en) | Programming tree data structures and handling collisions while performing lookup operations | |
Wang et al. | Wire Speed Name Lookup: A {GPU-based} Approach | |
US9032143B2 (en) | Enhanced memory savings in routing memory structures of serial attached SCSI expanders | |
CN101411136B (zh) | 利用超过cam关键字长度的表索引执行查表操作的方法 | |
US6430527B1 (en) | Prefix search circuitry and method | |
CN100470550C (zh) | 一种信息存储的方法、信息查找的方法及引擎装置 | |
US20060248095A1 (en) | Efficient RAM lookups by means of compressed keys | |
TW200402639A (en) | Method and data structure for a low memory overhead database | |
CN1653763A (zh) | 在基于硬件的包交换中用于存储器有效的快速vlan查找和插入的方法和设备 | |
US20060265370A1 (en) | Method and apparatus for reducing overflow of hash table entries | |
US7035844B2 (en) | FFS search and edit pipeline separation | |
US7403526B1 (en) | Partitioning and filtering a search space of particular use for determining a longest prefix match thereon | |
CN104881439A (zh) | 一种空间高效的多模式串匹配方法和系统 | |
JPH09503609A (ja) | ビット・マッピングの装置および方法 | |
WO2005023356A2 (en) | Method and apparatus for data storage and retrieval | |
CN1980180A (zh) | 线速率学习和查找二层转发表项的方法和系统 | |
CN100426791C (zh) | 一种路由转发表地址查找引擎装置 | |
US6819671B1 (en) | Relay control circuit using hashing function algorithm | |
CN1953418A (zh) | 处理信息分组的方法和使用该方法的电信设备 | |
Sun et al. | An on-chip IP address lookup algorithm | |
US20090171651A1 (en) | Sdram-based tcam emulator for implementing multiway branch capabilities in an xml processor | |
CN111541617A (zh) | 一种用于高速大规模并发数据流的数据流表处理方法及装置 | |
CN101004741A (zh) | 一种改进的哈希方法及其应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050112 Termination date: 20200207 |