CN1516405A - 实现atm链接查找的装置和方法 - Google Patents
实现atm链接查找的装置和方法 Download PDFInfo
- Publication number
- CN1516405A CN1516405A CNA031013449A CN03101344A CN1516405A CN 1516405 A CN1516405 A CN 1516405A CN A031013449 A CNA031013449 A CN A031013449A CN 03101344 A CN03101344 A CN 03101344A CN 1516405 A CN1516405 A CN 1516405A
- Authority
- CN
- China
- Prior art keywords
- hash
- hash table
- link
- searched
- address
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了实现ATM链接查找的装置和方法,使用该装置和方法可以实现较大异步传输模式链接数目的查找,并能满足带宽的处理。本发明的查找装置和方法采用再哈希法处理哈希冲突。与目前查找异步传输模式链接的现有查找技术(直接地址、CAM表查找法)相比,本发明提供的装置和方法有如下优点:(1)对RAM容量要求较低,可以在FPGA内部实现;(2)很容易支持较多数目的链接查找,且端口值、VPI值、VCI值范围不受限制;(3)实现起来方法简单,链接数目增加时,按照本发明提供的装置和方法很容易扩充实现。
Description
技术领域
本发明涉及通信系统中的ATM(Asynchronous TransferMode:异步传输模式)技术领域,尤指一种实现ATM链接查找的装置和方法。
背景技术
在通信领域中,很多实现ATM技术的单板逻辑设计或芯片技术都用到ATM链接查找方法。但一般的查找方法要么较复杂,难于用逻辑实现,要么逻辑资源耗费较多,难于实现较大链接数目查找。
在ATM技术中,线路上传送的是ATM信元。ATM信元头中的虚拟通道标识(VPI)、虚拟通路标识(VCI)用于标识ATM链接。另外,在物理层与ATM层的接口(UTOPIA接口)处,一个ATM层可能同时与几个物理层端口链接,所以此时送往ATM层的信元,其所属的链接标识除了VPI和VCI外,还有物理端口号。所以ATM层逻辑设计查找输入的信元属于哪条链接时,需要根据端口号(PORT)、VPI、VCI来查找,端口号(PORT)、VPI、VCI属于逻辑查找的关键字。
目前查找ATM链接的技术中,主要有两种方法:直接地址和内容地址存储器表查找。
直接地址查找方法,顾名思义,就是利用FPGA(FieldProgrammable Gate Array:现场可编程门阵列)芯片内部(或外部)RAM存放链接信息表,读写访问时,直接用PORT、VPI、VCI的值作为RAM的地址进行读写访问。
例如,假如ATM层有4个物理端口,则实现方案是:用PORT[3..0]、VPI[11..0]、VCI[15..0]组合起来直接作为访问RAM的地址。这样的话,如果支持所有链接的查找,则需要32位地址线宽度的RAM(因为每一项ATM链接信息至少占一个存储单元),即需要RAM的大小为4096M的空间。当然,由于很难实现这么大的RAM,所以实际用时并不支持所有链接的查找。一般用时,可以在一定大小范围内限制VPI[11..0]和VCI[15..0]的值,这样VPI和VCI的某些位就不用作为查找时的输入,如限制VCI在1到255之间,则只需要把PORT[3..0]、VPI[11..0]、VCI[7..0]作为查找输入,这时要求的RAM大小为16M。
CAM表查找方法,就是利用FPGA内部的CAM(或外部CAM)存放链接信息表。实现方案是用PORT[3..0]、VPI[11..0]、VCI[15..0]组合起来的值直接作为CAM存储器的查找索引输入,在若干周期后CAM存储器输出查找结果。这样的话,如果支持所有链接的查找,则需要32位地址线宽度的CAM(因为每一项ATM链接信息至少占一个存储单元),即需要CAM的大小为4096M的空间。显然,难于构造如此大的CAM。实际使用时并不支持所有链接的查找,一般情况下,可以在一定大小范围内限制VPI[11..0]和VCI[15..0]的值,这样某些位就不用作为查找时的输入,减低CAM的容量要求。
上述目前实现ATM链接查找的现有技术的主要缺点有:
1、采用直接地址查找方法需要较大的RAM存储空间,在FPGA芯片内实现支持较大数目的链接比较困难;如果用FPGA片外RAM构造实现,则成本较高,且电路设计过于复杂,单板上不一定有足够的空间来放外部RAM。
2、采用CAM表查找,由于链接数目较大时对CAM容量要求较大,在FPGA芯片内部难于实现(因为FPGA片内CAM都较小);如果用片外CAM实现则单板设计过于复杂,成本过高,且单板上不一定有足够的空间来放外部RAM。CAM表查找速度较慢,难于用并行流水线的方法进行查找。另外受目前的芯片工艺水平限制,单独的CAM芯片容量不可能做的较大。
发明内容
本发明提供一种实现ATM链接查找的装置及方法,以解决现有技术中存在的FPGA内部实现困难且设计复杂的问题。
为解决上述问题,本发明的技术方案如下:
一种实现ATM链接查找的装置,该装置包括:
逻辑处理器,用于构造哈希表,构造哈希函数,将关键字分
为至少两个部分进行按位异或,得出按位异或值,处理哈希冲突,
将不冲突的按位异或值作为哈希地址访问该哈希表,存取相应的
连接信息或记录;以及
存储器,用于储存哈希表,该存储器优选是现场可编程门阵
列(FPGA)芯片的随机存储器(RAM)。
上述逻辑处理器包括:
哈希表构造装置,用于确定关键字,并构造至少一个哈希表;
哈希函数构造装置,用于构造至少一个哈希函数;
异或处理装置,用于将该关键字分为至少两个部分进行按位
异或,得出按位异或值;
哈希冲突处理装置,用于接收该异或处理装置输出的按位异
或值,以该按位异或值作为地址访问哈希表,判断是否存在哈希
冲突,处理出现的哈希冲突;以及
存取装置,以不再冲突的按位异或值作为哈希地址访问所述
哈希表,存取相应的连接信息或记录。
该哈希表优选建立在FPGA内部的RAM内,如果要支持的链接数较大,哈希表容量较大,并且FPGA内部的RAM容量无法满足要求,才考虑使用外部RAM构造;该哈希表包括第一哈希表、第二哈希表、第三哈希表、以及第四哈希表;按查找优先次序由高到低分为1至4级,第一哈希表的优先级为1、第二哈希表的优先级为2、第三哈希表的优先级为3、第四哈希表的优先级为4;第一哈希表的容量为4K、第二哈希表的容量为2K、第三哈希表的容量为1K、第四哈希表的容量为1K;将随机存储器(RAM)的地址由低到高依次分配给第一哈希表、第二哈希表、第三哈希表、和第四哈希表;,该关键字包括端口号(PORT)、虚拟通道标识(VPI)、以及虚拟通路标识(VCI);解决哈希冲突的哈希冲突处理装置是再哈希装置。
一种实现ATM链接查找的方法,该方法包括以下步骤:
1)确定关键字,构造至少一个哈希表,该哈希表表示出关
键字集合和链接信息表项或记录集合的存储位置之间的对应关
系;
2)构造至少一个哈希函数,该哈希函数是关于关键字的函
数,使该关键字集合映像到该链接信息表项或记录集合;
3)将关键字分为至少两部分使用该哈希函数进行按位异或
得到异或值;
4)按位异或值作为地址访问哈希表,判断是否存在哈希冲
突;
5)若出现哈希冲突,则使用哈希冲突处理方法解决哈希冲
突;以及
6)将不再冲突的按位异或值作为哈希地址访问哈希表,存
取相应的链接信息或记录。
上述步骤1)和2)的顺序可互换,对于本领域技术人员可而言是显而易见的。
上述关键字包括端口号(PORT)、虚拟通道标识(VPI)、以及虚拟通路标识(VCI);并且,进行逻辑设计时,需要保证该查找在一个信元周期内查找完毕,从而满足带宽要求;哈希表优选建立在FPGA内部的RAM内,如果要支持的链接数较大,哈希表容量较大,并且FPGA内部的RAM容量无法满足要求,才考虑使用外部RAM构造;该哈希表包括第一哈希表、第二哈希表、第三哈希表、以及第四哈希表;按查找优先次序由高到低分为1至4级,第一哈希表的优先级为1、第二哈希表的优先级为2、第三哈希表的优先级为3、第四哈希表的优先级为4;第一哈希表的容量为4K、第二哈希表的容量为2K、第三哈希表的容量为1K、第四哈希表的容量为1K;将随机存储器(RAM)的地址由低到高依次分配给第一哈希表、第二哈希表、第三哈希表、和第四哈希表;解决哈希冲突的哈希冲突处理方法优选采用再哈希法。
由于采用逻辑电路哈希法实现ATM链接查找,并使用再哈希法解决哈希冲突,本发明提供的装置和方法有如下优点:(1)对RAM容量要求较低,可以在FPGA内部实现;(2)很容易支持较多数目的链接查找,且端口值、VPI、VCI值范围不受限制;(3)实现起来方法简单,链接数目增加时,按照本发明的方法则很容易扩充实现。
附图简要说明
图1是本发明的使用逻辑电路实现异步传输模式链接查找的装置的结构图;
图2是图1中的逻辑处理器的模块图;
图3是本发明的哈希查找装置电路逻辑框图;
图4本发明的使用逻辑电路实现异步传输模式链接查找的方法的流程图;
图5a和图5b是根据本发明一个实施例的建链查找操作流程图;以及
图6是根据本发明一个实施例的HASH查找模块外部接口信号图。
具体实施方式
本发明的ATM链接查找技术的核心是用哈希法实现查找。
由前面的描述可以知道,ATM链接查找就是在ATM层中用输入的信元的所属端口号、信元头的VPI、以及信元头的VCI作为ATM链接表的输入进行链接表的查找。该哈希法查找实现的基本原理是在关键字集合(PORT、VPI、VCI)和链接信息表项或记录集合(INDEX)的存储位置之间建立一个对应关系,链接信息表项或记录集合都放在FPGA片内RAM存储器中,称之为HASH表。对关键字PORT/VPI/VCI构造一个函数f,使得实际的查找输入地址为f(PORT/VPI/VCI),即把关键字集合映象到链接信息表项(或记录)集合。
图1示出了本发明的使用逻辑电路实现异步传输模式链接查找的装置的结构图。该异步传输模式链接查找装置10包括逻辑处理器20和存储器30,该逻辑处理器20用于确定查找索引关键字并构造哈希表,构造哈希函数,将关键字分为至少两个部分进行按位异或,得出按位异或值,处理哈希冲突,该关键字包括端口号(PORT)、虚拟通道标识(VPI)、以及虚拟通路标识(VCI);该存储器30用于储存逻辑处理器生成的哈希表。该存储器30优选是现场可编程门阵列(FPGA)芯片的随机存储器(RAM)。
图2是图1中的逻辑处理器20的结构图。该逻辑处理器20包括哈希函数构造装置202、异或处理装置204、哈希冲突处理装置206、存取装置208、以及哈希表构造装置210。使用哈希表构造装置210构造哈希表,并存入存储器30;使用哈希函数构造装置202构造哈希函数;使用异或处理装置204将哈希表的关键字分为至少两个部分进行按位异或,得出按位异或值,该异或处理装置204优选是逻辑门电路,该关键字包括端口号(PORT)、虚拟通道标识(VPI)、以及虚拟通路标识(VCI);该存储器30用于储存哈希表;使用哈希冲突处理装置206接收所述异或处理装置输出的按位异或值,以该按位异或值为地址访问哈希表,判断是否出现哈希冲突,处理出现的哈希冲突;使用存取装置208以不再冲突的按位异或值作为哈希地址访问存储器30中的哈希表,存取相应的连接信息或记录,解决哈希冲突的哈希冲突处理装置206是再哈希装置。哈希表优选建立在FPGA内部的RAM内,如果要支持的链接数较大,哈希表容量较大,并且FPGA内部的RAM容量无法满足要求,才考虑使用外部RAM构造;该哈希表优选包括第一哈希表、第二哈希表、第三哈希表、以及第四哈希表;按查找优先次序由高到低分为1至4级,第一哈希表的优先级为1、第二哈希表的优先级为2、第三哈希表的优先级为3、第四哈希表的优先级为4;第一哈希表的容量为4K、第二哈希表的容量为2K、第三哈希表的容量为1K、第四哈希表的容量为1K;将随机存储器(RAM)的地址由低到高依次分配给第一哈希表、第二哈希表、第三哈希表、和第四哈希表。虽然本发明中的装置构造了四个哈希表,本领域技术人员显然可以理解,可以构造多个哈希表,构造的哈希表越多,连接查找的精度就越高。
图3是本发明的哈希查找装置电路的逻辑框图。
轮询状态机302用于轮询查找操作接口和命令操作接口的请求,判断是否有查找操作或命令操作,如果有命令操作就进入命令操作状态,命令操作状态机304响应来自轮询状态机302的命令操作请求,产生RAM读写地址312,通过地址总线访问RAM 308,进行建链、拆链、查询链连接操作。如果有查找操作就进入查找操作状态,查找操作状态机314响应来自轮询状态机302的查找操作请求,产生RAM读写地址312,通过地址总线访问存放HASH表的RAM 308,进行查找链接操作。
轮询状态机302产生的RAM读写控制信号和写数据模块用于控制信号和数据总线,配合命令操作状态机304、查找操作状态机314产生写RAM信号、读RAM信号、以及写数据信号。
在复位后的初始化期间内,控制总线为写操作,将哈希表项初始化。在查找和命令操作期间,控制总线为读操作。如果响应软件操作接口添加或删除链接的命令,则进行写操作。RAM读写地址模块用于仲裁输出给RAM的地址信号。数据锁存模块310将RAM的输出数据用寄存器锁存一拍。
图4是本发明的异步传输模式链接查找方法的流程图。
该查找方法包括以下步骤:
1)确定关键字,构造哈希表,所构造的哈希表表示出关键字集合和链接信息表项或记录集合的存储位置之间的对应关系;哈希表优选建立在FPGA内部的RAM内,如果要支持的链接数较大,哈希表容量较大,并且FPGA内部的RAM容量无法满足要求,才考虑使用外部RAM构造;该哈希表优选包括第一哈希表、第二哈希表、第三哈希表、以及第四哈希表;按查找优先次序由高到低分为1至4级,第一哈希表的优先级为1、第二哈希表的优先级为2、第三哈希表的优先级为3、第四哈希表的优先级为4;第一哈希表的容量为4K、第二哈希表的容量为2K、第三哈希表的容量为1K、第四哈希表的容量为1K;将随机存储器(RAM)的地址由低到高依次分配给第一哈希表、第二哈希表、第三哈希表、和第四哈希表;
2)构造哈希函数,所构造的哈希函数是关于关键字的函数,使该关键字集合映像到该链接信息表项或记录集合;
3)将关键字分为至少两部分使用所构造的哈希函数进行按位异或得到异或值;该关键字包括端口号(PORT)、虚拟通道标识(VPI)、以及虚拟通路标识(VCI);
4)以按位异或值作为地址访问哈希表,判断是否存在哈希冲突;
5)若出现哈希冲突,则使用哈希冲突处理方法解决哈希冲突,解决哈希冲突的哈希冲突处理方法优选采用再哈希法;以及
6)将不再冲突的按位异或值作为哈希地址访问哈希表,存取相应的链接信息或记录。
上述步骤1)和2)的顺序可互换,对于本领域技术人员而言是显而易见的。尽管本发明的实施例构造了四个哈希表,本领域技术人员应当理解,可以构造多个哈希表,构造的哈希表越多,连接查找的精度就越高。
并且,进行逻辑设计时需要保证该查找在一个信元周期内查找完毕,从而满足带宽要求。
该查找方法采用哈希法实现地址查找,简单讲就是将PORT、VPI、VCI分为若干部分进行按位异或,得到若干位异或结果作为地址(哈希地址)访问哈希表,存取相应的链接信息或INDEX。
把PORT、VPI、VCI分为若干部分进行按位异或得到的哈希地址,不可避免会产生冲突,即可能出现不同的PORT/VPI/VCI,但哈希地址相同的情况,这样访问HASH表就可能出现冲突。
如何处理冲突是构造哈希表的关键之一。采用不同的冲突处理方法就可以得到不同的哈希表,并且对整个查找法的查找效率影响较大。处理哈希冲突的主要方法有开放定址法、链地址法、和建立公共溢出区等。
本发明查找方法优选采用再哈希法处理哈希冲突,即不同的PORT/VPI/VCI产生地址冲突时计算另一个哈希函数地址,直到冲突不再发生。这种方法不易产生聚集,即用第一个哈希函数求得的地址有冲突的VPI/VCI经过不同的哈希函数再哈希后再有冲突的几率相对较小。
下面以输入端口号为4位(PORT[3..0]),需要支持的ATM链接查找数目为4K(4096)作为例子,来具体说明本发明设计方法。
(1)构造哈希函数
对32位的源地址信息(PORT[3:0]、VPI[11:0]、VCI[15:0])分为四部分进行按位异或求得12位(因为212=4096)的哈希地址,采用4种不同的分段方式可以得到4个不同哈希函数实现再哈希法。使用图2所示的哈希函数构造装置构造哈希函数,具体分段方式为:
第一哈希函数:
Hash_code_1={VPI[11:0]}^{VCI[11:0]}^{PORT[3:0],VCI[15:12],0000};
第二哈希函数:
Hash_code_2={VPI[0:11]}^{VCI[11:0]}^{PORT[3:0],VCI[15:12],0000};
第三哈希函数:
Hash_code_3={VPI[11:0]}^{VCI[11:0]}^{VCI[15:12],PORT[3:0],0000};
第四哈希函数:
Hash_code_4={VPI[10,8,6,4,2,0],VCI[10,8,6,4,2,0]}^{VCI[1,3,5,7,9,11],VPI[1,3,5,7,9,11]}^{0000,PORT[0:3],VCI[12:15]}。
注:“^”表示按位异或运算。
上述哈希函数构造是用逻辑电路实现的,对于哈希函数的构造并没有严格的要求,只需要保证各个哈希函数不同,并且尽量把各位的各种异或情况都包括上去,如果某组合后不够位数,则用0补充;一般要求构造4个函数,这样,在图1所示存储器RAM中储存哈希表时能充分利用RAM空间,不易造成浪费。
(2)构造哈希表
按照本发明的设计,需要构造4个哈希表。使用图2所示的哈希表构造模块构造哈希表,4个哈希表一般要求都建立在图1中的存储器内,优选使用FPGA内部的RAM内,如果要支持的链接数较大,哈希表容量较大,并且FPGA内部的RAM容量无法满足要求,才考虑采用外部RAM构造。
4个哈希表大小分别为4K、2K、1K、和1K,分别命名为第一哈希表、第二哈希表、第三哈希表、和第四哈希表。RAM空间至少需要8K,按RAM地址从低到高依次分配给第一哈希表、第二哈希表、第三哈希表、和第四哈希表,即第一哈希表占0x0000-0x0fff;第二哈希表占0x1000-0x17ff;第三哈希表占0x1800-0x1bff;第四哈希表占0x1c00-0x1fff。
另外,要求哈希表项中的链接信息占一个RAM存储单元。每个表项一般至少包括:VAVLID、PORT[3:0]、VPI[11:0]、VCI[15:0]、INDEX[11:0]格式。如下表1所标示。
表1 哈希表项格式
BIT | 44 | 43..40 | 39..28 | 27..12 | 11..0 |
参数 | VALID | PORT[3:0] | VPI[11:0] | VCI[15:0] | INDEX[11..0] |
其中:VALID表示当前表项有效指示;1表示当前表项有效;而0表示当前表项为空。
INDEX[11..0]表示查找链接表信息结果,一般用作查找其他更详细具体的ATM链接表信息的索引。位宽要求为log2(连接数目)。
由上面描述可知,最小要求RAM的大小为8K×45位。当然可以选8K×64位等,只是读写时不对高位数据线[61:45]的数据进行处理。
(3)查找操作流程
图5a和图5b是根据本发明一个实施例的建链查找操作流程图。
首先,按查找优先次序分为1~4级(1最高,4最低)。第一哈希表优先级为1,第二哈希表优先级为2,第三哈希表优先级为3,第四哈希表优先级4。
对每个哈希表的操作完全相同,都是用上述4个不同哈希函数得出的异或值作为访问RAM的地址进行查找表。下面描述建链查找操作流程。
(a)依次用Hash_code_1、Hash_code_2、Hash_code_3、Hash_code_4得出的异或值对第一哈希表进行查找(作为读写RAM地址的A[11:0])。判断读出表项的VALID是否为0,如果为0,则该表项为空,可以在上面建立链接索引。如果读出表项的VALID为1,且表项中的PORT[3:0]、VPI[11:0]、VCI[15:0]与要查找的值不相同,则说明出现冲突,进行步骤(b);如果读出表项的VALID为1,且表项中的PORT[3:0]、VPI[11:0]、VCI[15:0]与要查找的值相同,则说明该链接已建立好,不需要再建链。
(b)依次用Hash_code_1、Hash_code_2、Hash_code_3、Hash_code_4异或得出的值的低11位(访问2K空间)对第二哈希表进行查找(作为读写RAM地址的A[10:0])。判断读出表项的VALID是否为0,如果为0,则该表项为空,可以在上面建立链接索引。如果读出表项的VALID为1,且表项中的PORT[3:0]、VPI[11:0]、VCI[15:0]与要查找的值不相同,则说明出现冲突,进行步骤(c);如果读出表项的VALID为1,且表项中的PORT[3:0]、VPI[11:0]、VCI[15:0]与要查找的值相同,则说明该链接已建立好,不需要再建链。
(c)依次用Hash_code_1、Hash_code_2、Hash_code_3、Hash_code_4异或得出的值的低10位(访问1K空间)对哈希表3进行查找(作为读写RAM地址的A[9:0])。判断读出表项的VALID是否为0,如果为0,则该表项为空,可以在上面建立链接索引。如果读出表项的VALID为1,且表项中的PORT[3:0]、VPI[11:0]、VCI[15:0]与要查找的值不相同,则说明出现冲突,进行步骤(d);如果读出表项的VALID为1,且表项中的PORT[3:0]、VPI[11:0]、VCI[15:0]与要查找的值相同,则说明该链接已建立好,不需要再建链。
(d)依次用Hash_code_1、Hash_code_2、Hash_code_3、Hash_code_4异或得出的值的低10位(访问1K空间)对第四哈希表进行查找(作为读写RAM地址的A[9:0])。判断读出表项的VALID是否为0,如果为0,则该表项为空,可以在上面建立链接索引。如果读出表项的VALID为1,且表项中的PORT[3:0]、VPI[11:0]、VCI[15:0]与要查找的值不相同,则说明出现冲突,表明该链接无法建立,已达系统容量极限;如果读出表项的VALID为1,且表项中的PORT[3:0]、VPI[11:0]、VCI[15:0]与要查找的值相同,则说明该链接表已建立好,不需要再建链。
至于查找和删除链接,其操作方法与上面描述的操作顺序类似,都是依次用4个哈希函数查找4个哈希表,进行比较判断操作。
(4)查找处理时的带宽保证
逻辑设计时,需要保证该查找在一个信元周期内查找完毕,才能满足带宽要求。
从上面描述可以知道,查找时每个RAM地址都要经过“读—比较”的过程,由于逻辑时延很大,因此不能在一个时钟周期内完成“读—比较”的操作,所以可以用并行流水线的方式预先输出16个哈希地址(4个哈希表,每个表都需要4个哈希函数结果查找),然后依次连续读RAM,并依次连续锁存读出表项的PORT/VPI/VCI和INDEX,再依次连续用锁存的PORT/VPI/VCI与输入的PORT/VPI/VCI作比较,如果找到匹配,则停止输出哈希地址和停止访问RAM,并结束查找操作。
按照上面的方法,在正常工作情况下,完成一次查找最多需要24个时钟周期(查找完全部16个哈希地址),能处理53×8/(24×20ns)=883M的速率。
(5)本发明的部分参考计算公式
按照本发明设计方法,得出所要求的RAM大小需求计算公式如下。
RAM大小(深度)计算公式:
RAM容量=链接数目×2
RAM数据位宽计算公式:
RAM位宽=端口数目+VPI位宽+VCI位宽+1+log2(链接数目)
下边结合图6说明哈希查找方法的概括实施过程:
图6是HASH查找模块外部接口信号图。
执行CPU下发的增加链接命令,有3种可能结果:1、该链接已经存在于哈希表中,增加链接失败;2、哈希表冲突,没有空闲地址,增加链接失败;3、找到空闲地址,增加链接成功。因此增加链接时要依次比较全部4个表的16个哈希地址,看是否已经存在相同的VCC链,如果存在相同链接就返回,不再进行比较,如果找到第一个空闲地址,就把该地址保存起来,比较完16个哈希地址后如果不存在相同的链接就向第一个空闲地址插入链接。比较完成后设置响应寄存器为相应的状态以便CPU读取命令的执行状况。
执行删除链接命令,有2种可能结果:1、找到匹配,将匹配地址的内容清零,删除该链接,并设置响应寄存器为成功;2、找不到匹配,删除链接失败,设置响应寄存器为失败。
执行查询链接命令,有2种可能结果:1、找到匹配,返回vcc_index,并设置响应寄存器为成功;2、找不到匹配,设置响应寄存器为失败。
查找模块检测到命令操作接口写入命令时,将Cmd_finish输出为低,表示查找模块正在执行命令;查找模块完成命令操作后,将Cmd_finish输出置为高,表示命令操作完成。
上行业务哈希表查找:当查找模块输出Syc为高时,重组模块(RSM)写入VPI/VCI,查找模块检测到该写入操作时,便启动状态机开始查找操作,同时将Ma_finish输出为低。
查找过程:查找过程类似插入过程,首先用哈希地址Hash_code_1在第1个哈希表查找,如果找到匹配就返回vcc_index,并将Ma_finish输出置为高(表示查找完成)和Ma_flag输出置为高(表示找到匹配,Data_rsm_out输出有效);如果不匹配则用Hash_code_2再在第1个哈希表查找,过程同样。如果4个哈希地址在第1个表都找不到匹配,则用Hash_code_1[6:0]在第2个哈希表查找,查找过程和第1个表完成相同。如此类推,如果4个表都没找到与28位VPI/VCI信息相匹配的记录,则表示不存在该链接,并且输出Ma_finish为高、Ma_flag为低。
查找模块操作流程:模块复位后,首先初始化哈希表,将存储链接的RAM清零。初始化完成后,输出高电平有效的初始化完成信号Init_done。查找模块采用论询方式来判断是否需要执行查找操作和命令操作。每次论询开始前,Syc先输出1个时钟周期的高电平。下行重组模块检测到高电平的Syc信号后,如果有信元等待地址查找,在下一时钟周期就写入端口号、VPI/VCI。查找模块如果在下一时钟周期检测到重组模块的写入操作(Wr_rsm_==0)后就进入查找状态(否则就判断是否有命令操作),查找结束后,判断如果有命令操作就进入命令操作状态(否则返回开始下一次论询),命令执行完毕就完成一次论询。在正常工作情况下(只有查找操作,没有命令操作),完成一次查找最多需要24个时钟周期(查找完全部16个哈希地址),能处理53×8/(24×20ns)=883M的速率。最坏情况下(同时有查找操作和命令操作),完成1次论询需要46个时钟周期,即查找操作、命令操作需分别读取全部16个哈希地址,能处理53×8/(46×20ns)=460M速率。由于相对查找操作来说,命令操作频率非常低,因此可以满足155M业务速率的要求。
与查找ATM链接的现有查找技术(直接地址和CAM表查找法)相比,本发明提供的装置和方法如下优点:(1)对RAM容量要求较低,可以在FPGA内部实现;(2)很容易支持较多数目的链接查找,且端口值、VPI、VCI值范围不受限制;(3)实现起来方法简单,链接数目增加时,按照本发明的方法则很容易扩充实现。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (14)
1.实现ATM链接查找的装置,其特征在于包括:
逻辑处理器,用于根据能够确定链接位置的关键字构造哈希表,构造哈希函数,将所述关键字分为至少两个部分进行按位异或,得出按位异或值,处理哈希冲突,将不冲突的按位异或值作为哈希地址访问所述哈希表,存取相应的连接信息或记录;以及存储器,用于储存哈希表。
2.根据权利要求1所述的实现ATM链接查找的装置,其特征在于所述逻辑处理器包括:
哈希表构造装置,用于确定关键字,并构造至少两个哈希表;
哈希函数构造装置,用于构造哈希函数;
异或处理装置,用于将所述关键字分为至少两个部分进行按位异或,得出按位异或值;
哈希冲突处理装置,用于接收所述异或处理装置输出的按位异或值,以所述按位异或值作为地址访问哈希表,判断是否存在哈希冲突,处理出现的哈希冲突;以及
存取装置,以不再冲突的按位异或值作为哈希地址访问所述哈希表,存取相应的连接信息或记录。
3.根据权利要求2所述的实现ATM链接查找的装置,其特征在于所述哈希冲突处理装置是再哈希装置。
4.根据权利要求2所述的实现ATM链接查找的装置,其特征在于所述异或处理装置是异或门电路。
5.根据权利要求2所述的实现ATM链接查找的装置,其特征在于所述关键字包括端口号(PORT)、虚拟通道标识(VPI)、以及虚拟通路标识(VCI)。
6.根据权利要求1所述的实现ATM链接查找的装置,其特征在于所述存储器将其地址由低至高依次分配给所述哈希表。
7.根据权利要求1所述的实现ATM链接查找的装置,其特征在于所述逻辑处理器按查找优先次序将哈希表分级。
8.根据权利要求1所述的实现ATM链接查找的装置,其特征在于所述存储器是现场可编程门阵列(FPGA)芯片的随机存储器(RAM)。
9.实现ATM链接查找的方法,其特征在于所述方法包括以下步骤:
1)确定关键字,构造哈希表,所述哈希表至少为两个,表示出关键字集合和链接信息表项或记录集合的存储位置之间的对应关系;
2)构造哈希函数,所述哈希函数是关于关键字的函数,使所述关键字集合映像到所述链接信息表项或记录集合;
3)将关键字分为至少两部分使用所述哈希函数进行按位异或得到按位异或值;
4)以所述按位异或值作为地址查找哈希表,判断是否存在哈希冲突;
5)若出现哈希冲突,则使用哈希冲突处理方法解决哈希冲突;以及
6)将不再冲突的所述按位异或值作为地址访问哈希表,存取相应的链接信息或记录。
10.根据权利要求9所述的实现ATM链接查找的方法,其特征在于步骤5)中所述哈希冲突处理方法是再哈希法。
11.根据权利要求10所述的实现ATM链接查找的方法,其特征在于所述再哈希法包括:
以按位异或值为地址访问所述哈希表;以及
若出现哈希冲突,则以所述按位异或值的更低位访问其它哈希表。
12.根据权利要求9所述的实现ATM链接查找的方法,其特征在于所述哈希表被按查找优先次序分级。
13.根据权利要求9所述的实现ATM链接查找的方法,其特征在于所述关键字包括端口号(PORT)、虚拟通道标识(VPI)、以及虚拟通路标识(VCI)。
14.根据权利要求9所述的实现ATM链接查找的方法,其特征在于需要在一个信元周期内查找完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA031013449A CN1516405A (zh) | 2003-01-03 | 2003-01-03 | 实现atm链接查找的装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA031013449A CN1516405A (zh) | 2003-01-03 | 2003-01-03 | 实现atm链接查找的装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1516405A true CN1516405A (zh) | 2004-07-28 |
Family
ID=34239086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA031013449A Pending CN1516405A (zh) | 2003-01-03 | 2003-01-03 | 实现atm链接查找的装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1516405A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101444041B (zh) * | 2006-05-11 | 2011-11-30 | 英特尔公司 | 用于为快速漫游安全地预留资源的方法和无线局域网 |
CN112256704A (zh) * | 2020-10-23 | 2021-01-22 | 山东超越数控电子股份有限公司 | 一种快速join方法、存储介质及计算机 |
-
2003
- 2003-01-03 CN CNA031013449A patent/CN1516405A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101444041B (zh) * | 2006-05-11 | 2011-11-30 | 英特尔公司 | 用于为快速漫游安全地预留资源的方法和无线局域网 |
CN112256704A (zh) * | 2020-10-23 | 2021-01-22 | 山东超越数控电子股份有限公司 | 一种快速join方法、存储介质及计算机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1929451A (zh) | 一种解决Hash冲突的方法及装置 | |
CN1142503C (zh) | 多处理机数据处理系统中同级到同级的超高速缓存移动 | |
CN1311363C (zh) | 生成内容地址的数据处理方法和可内容寻址的存储系统 | |
US8275928B2 (en) | Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables | |
CN100339837C (zh) | 用于平衡多个存储器缓冲区大小的系统及其方法 | |
CN1940922A (zh) | 一种提高搜索信息速度的方法及系统 | |
CN1664790A (zh) | 增加数据存储容量的方法和装置 | |
CN1794236A (zh) | 高效的基于cam在分组有效载荷中进行串搜索的技术 | |
CN1904873A (zh) | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 | |
CN1831825A (zh) | 文档管理方法和装置以及文档搜索方法和装置 | |
CN1655534A (zh) | 核心路由器上支持访问控制列表功能的双栈兼容路由查找器 | |
CN1924816A (zh) | 提高多核系统访问临界资源速度的方法和装置 | |
CN1901549A (zh) | 数据传输方法、装置、数据处理方法和数据传输系统 | |
CN1819544A (zh) | 一种基于bitmap表的缓存管理方法 | |
CN101075239A (zh) | 一种复合搜索方法和系统 | |
CN101051321A (zh) | 一种多字符串匹配方法和芯片 | |
CN1306419C (zh) | 一种高速缓存及从高速缓存读取数据的方法 | |
CN1543150A (zh) | 分组分类装置和使用字段级特里结构的方法 | |
CN101055574A (zh) | 一种域名类信息的存储及查询方法以及系统 | |
CN101047670A (zh) | 一种mac地址表老化、操作方法及其处理系统 | |
CN1949221A (zh) | 存储元素的方法与系统及查找元素的方法与系统 | |
CN1194321C (zh) | 高速信息检索系统 | |
CN1652088A (zh) | 用于闪速存储器的数据管理设备和方法 | |
CN1834957A (zh) | 一种数据库多表信息初始化方法 | |
CN1516405A (zh) | 实现atm链接查找的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |