一种用于100g接口的大容量精确包计数方法
【技术领域】
[0001] 本发明涉及数字通信技术领域,尤其是一种用于100G接口的大容量精确包计数 方法。
【背景技术】
[0002] 2010年6月17日电气和电子工程师协会(IEEE)正式批准了IEEE802. 3ba标准, 2013年国内运营商全面开始部署100G传输网络,而设备中接入100G网络,进行各项业务 分析依赖的是对各类流量分析后得到设定表项的统计,100G带宽是原先常用网络接口速率 的10倍,带来统计速率的需求提高10倍,传统的大规模挂静态随机存储器(SRAM)统计的 方式接口速率已无法满足。
[0003] 前端专用接口处理芯片(、或现场可编程门阵列(FPGA)内部100G接口模块,接入 100G以太网流量,进行二三层协议识别后,进行队列编辑序号(或直接散列(hash)处理,接 口中每个数据包进入处理模块得到一个编号,向统计模块传输,而对应到统计模块这些编 号,实际对应的是外挂扩展存储的地址,一般会根据设备的需求决定需要统计的条目数,从 而选择外挂存储的颗粒大小。
[0004] 首先分析下在10G网络下常见的大容量报文类别统计方式:
[0005] 如图1,10G以太网流量的最大包速率为14. 881MPPS(百万脉冲/秒-Million PulsesPerSecond);设备正常需要统计入端口 /出端口双向统计,操作容量的统计信息 的方式实际上就是将对应命中规则的外部存储地址的内容读出,然后在此前统计内容上加 一,再将此结果写入该地址。如此可以计算一下10G双向流量统计对外部存储器的接口速 率,14. 881*2*2 ~ 60MPPS,速率较低,目前的外部存储器都提供至少125M的接口操作速率, 完成此处的操作没有瓶颈。需要注意的是,外部存储的读写有多周期的时序延迟,如果连续 命中相同的报文,对同一个外部存储地址进行读写,需要逻辑内部模块增加cache解决冲 突,否则命中统计的累加会遗漏。
[0006] 上文介绍了 10G接口的精确统计方式,将我们的目标移到正题,100G或者未来 的400G接口,如何完成大容量报文类别的统计呢?我们可以初略的算下外部存储的带宽, 100G双向接口统计需要600MPPS的操作速度,400G那就更大了。目前的四倍数据速率静态 随机存取存储器(QDR)或者双倍数据速率静态随机存取存储器(DDR)静态存储器速率最高 是600M,并且是burst为4,也就是操作命令速率为300MPPS。这样的速率外部存储外部已 经无法接受了,或者有人疑问,逻辑器件内部有静态随机存储器(SRAM),可以用内部的存储 完成,但FPGA内部的资源是有限的,目前用于路由器等核心设备需要的字节以及包长统计 存储位宽都是64位的,而现在的会话容量都在256K以上,经过计算需要存储容量为32M,已 我们主流XILINXKintex7逻辑芯片的资源表可以看到,最小的7K70T只有4M的块状存取 存储(BRAM)。
[0007] 就算是比较大的器件,如果只用来单独完成统计功能,成本代价巨大,直接影响产 品的市场竞争力。
[0008] 而且众所周知静态随机存储器(SRAM)的价格和存储容量上与动态随机存取存储 器(DRAM)是不可比的,就算使用最新的HMC(HybridMemoryCube,混合内存立方体),但价 格奇高,并且占用逻辑芯片的并串行与串并行转换器(serdes)资源,现在逻辑芯片的价格 的主要因素在并串行与串并行转换器(serdes)、内部布线资源,其次才是容量和并行10的 接口数量,并且100G带宽的接口速率下根据前文分析,直接使用四倍数据速率静态随机存 取存储器(QDR)-静态随机存储器(SRAM),需要的接口速率带来电路板布线、功耗、芯片成 本的增加对精确统计的功能得不偿失的,是否能使用低成本器件,来完成大容量规则命中 的精确统计,在设备组网、安全过滤、路由转换等核心功能中都需要接口的精确命中统计来 提供上行策略的分析。低成本高精度的一套统计方案来适配100G接口以及可扩展到将来 的400G接口是迫在眉睫的。
【发明内容】
[0009] 本发明的目的在于提供一种用于100G接口的大容量精确包计数方法,提供低成 本高精度的一套统计方案来适配100G接口,并且可扩展到将来的400G接口的应用。
[0010] 本发明解决该问题的核心在于解决二个技术问题:
[0011] 1、尽可能使用较少的逻辑资源,并不使用并串行与串并行转换器(serdes);
[0012] 2、使用低速输入输出(10)速率的静态随机存储器(SRAM)或者使用动态随机存取 存储器ORAM)替代。
[0013] 本发明的技术方案是:
[0014] 本发明的有益效果是:
[0015] 本发明的一种用于100G接口的大容量精确包计数方法的关键在于需要维护两 张表,由于100G的带宽问题,使得统计需要的读写带宽变得很大,所以为了降低对片外 存储的频繁操作,在内部维护同样的统计,但只记录最低的几位位宽,降低了FPGA内部 静态存储资源,可以使用较低成本的器件,并使得外部存储操作减慢,以达到使用廉价的 DDR3SDRAM也能足够支撑100G统计所需的带宽。
【附图说明】
[0016] 图1是现有技术的在10G网络下常见的大容量报文类别统计方式示意图。
[0017] 图2是本发明的统计预处理步骤的逻辑的内部处理模式。
[0018] 图3是本发明的双端口缓存处理流程图。
【具体实施方式】
[0019] 下面结合附图对本发明作进一步描述:
[0020] 如图2、图3,为了解决成本问题,统计的完成需要分段处理,让外部存储空间对表 项存储完成高bit位的统计,逻辑器件内部自建少量存储空间,对每个表项的包数、字节数 的低位进行统计。如前文说的256K队列进行统计,逻辑内部自建18位X256K的表项,只 需要4. 6M位空间,S卩128个36K双极随机存取存储器(BRAM);是可以放在K7系列最小的 XC7K70T中完成此功能的。而由于内部使用了 18位位宽的内部存储作为队列统计的低位 计数,如果需要精确的统计报文包数和字节总数,18位位宽可以用4位完成包数统计,14位 完成包字节统计,这样可以让外部速率降低到原先的十六分之一,即使读写命令总速率超 过37. 5MPPS就可以了。目前使用的双倍数据速率静态随机存取存储器(DDR)静态随机存 储器(SRAM)最基本的速率为250MHz,命令操作速率125MPPS,完全可以胜任此种功能设计。
[0021] 如果想使用动态随机存取存储器(DRAM)来做为外部存储,逻辑内部的存储需要 更大一些,扩展到27位,目前最通