[发明专利]一种FPGA中MAC地址查找表的实现方法无效
申请号: | 201210155931.X | 申请日: | 2012-05-18 |
公开(公告)号: | CN102831140A | 公开(公告)日: | 2012-12-19 |
发明(设计)人: | 徐元欣;潘立波;陈淑敏;于强;李永佳;倪笑园;臧东宁 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 胡红娟 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 fpga mac 地址 查找 实现 方法 | ||
技术领域
本发明属于电通信技术领域,尤其涉及一种现场可编程门阵列中MAC地址查找表的实现方法。
背景技术
MAC查找表(以下简称查找表)用来实现数据查找转发,可以看成一块特殊的存储单元,里面存放有MAC地址及它所对应的端口号和生存时间,根据查找表对收到的帧的目的MAC地址来查找转发数据帧。基本原理是通过一定的算法把目的MAC地址转成查找表的查询地址,从而把该存储单元中的数据读出,找到目的端口号,把数据帧转发到对应端口上去。每当从某个端口收到一个源地址后,都要查表更新一下某个表项的生存时间,若长时间没有更新生存时间,则生存时间结束后,要删除该表项,防止设备位置移动后,仍然记录着一个无用的表项。
由于MAC地址是48bit,而一般的查找表容量在几万个以下,所以需要通过特定的映射把48bit的地址转成更少位宽的地址。常用的转换方法就是利用hash散列函数来实现把任意长度的消息压缩成特定位宽的消息摘要,通常称为索引值,索引值对应存储该MAC地址的地址,根据索引值查找。实际设计散列函数时不可避免的出现索引值冲突的问题,因此实际中,更多关注出现冲突后如何处理冲突的问题。
在构造哈希算法时首要考虑的是算法复杂度和对资源的消耗,然后维持碰撞大小在合理水平。对于一个N行,M列的查找表,它的容量大小为N×M,N表示可能的索引值总数,M表示每个索引值下允许发生M-1次碰撞,因此若某个索引值下发生了M次碰撞,则说明整个查找表发生了1次碰撞。虽然M取值越大,碰撞的可能就越小,但是M取值越大,查找表的查找速度就越低。
现在市场中对性能要求比较高的场合,采用ASIC实现MAC查找表的基本功能,然后再利用嵌入式微处理器、嵌入式操作系统和高速存储器(如RLDRAM)等实现具有可配置功能的交换机产品,但是对于性能要求不高的场合,常用的方法是采用一块FPGA来实现。
但是由于在FPGA实现查找表时,逻辑综合工具会为某一特定子功能综合出独立的逻辑电路,因此逻辑资源消耗很大。
发明内容
本发明的目的是提供一种基于FPGA的MAC地址查找表的实现方法,有效的节约逻辑资源,维持索引值冲突在合理水平。
一种FPGA中MAC地址查找表的实现方法,用于在现场可编程门阵列FPGA中实现MAC查找表,包括步骤:
确定查找表的的随机存储器RAM结构;
确定查找表每个索引值对应的MAC地址数为M,将查找表拆分为M份;
对每一份查找表采用单独的老化逻辑资源,同时对M份查找表进行老化操作。
所述查找表的的随机存储器RAM结构为将MAC地址和端口号一起存储在一个RAM中,而对应的生存时间TTL存储在另一个RAM,所述MAC地址和端口号存储的RAM位宽为53bit,其中MAC地址占用48bit,端口号占用5bit,所述生存时间TTL存储的RAM位宽为5bit。一个最基本的查找表项需要包括48bit的MAC地址、5bit的目的端口号和5bit的生存时间TTL,而查找表的基本操作包括源MAC地址学习、目的MAC地址查找和查找表老化,其中源MAC地址学习需要存储MAC地址、目的端口号和TTL,目的MAC地址查找仅仅需要读取索引值下的MAC地址和目的端口号,查找表老化仅仅需要对TTL值进行操作,因此这样构造的查找表的数据组织结构,满足在读写时仅读写所需要操作的数据,尽量减少无用数据的读写,从而能尽量减少对逻辑资源的消耗。
进一步地,所述查找表容量为1K,所述查找表索引值对应的MAC地址数为2,将1K的查找表拆分为2个,分别为第一RAM与第二RAM,所述第一RAM包括第一53bit位宽RAM和第一5bit位宽RAM,所述第二RAM包括第二53bit位宽RAM和第二5bit位宽RAM。
进一步地,每个索引值对应于第一RAM和第二RAM的相同行。根据每个索引值对应的MAC地址个数将查找表分为相同结构的两个RAM,使得索引值冲突被维持在合理水平,兼顾索引值冲突和查找表查找速度。
所述索引值是通过哈希算法计算MAC帧中的MAC地址得到,将MAC地址每9比特分为一组,共分成6组,第6组不足9比特用0补充,然后通过下述公式计算得到索引值:
Hash(m)=A(m)+A(m+9)+A(m+18)+A(m+27)+A(m+36)+A(m+45),其中m∈[0,8]。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210155931.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电力杆塔轮廓的快速图像识别方法
- 下一篇:过氧化氢稳定度的测定方法