根据高速数据中继器的功能需求,并考虑高速数据中继与转发中路由器的实际性能指标,确定了该高速数据中继器需要达到以下技术指标:具有10Gbit/s线速度处理40字节长IP包的能力;支持100MSPS的查表速度;可提供64K条本机地址表项。
从上述三点性能指标来看,第一点通过选择性能指标高的FPGA即可实现,而第二点和第三点则无法由FPGA单独完成。从这两点性能指标来看,都是关于路由查表方面的,一个是表项容量方面的指标,一个是查表速度方面的指标。目前流行的查表方案是采用CAM(Content Addressable Memory)来实现,因此本文总体设计中也采用CAM来实现查表处理。由此得出的高速数据中继器总体设计结构如图二所示。
图 二:基于FPGA的数据中继器设计结构
在该设计结构中,输入处理和输出处理使用FPGA来实现,由于这些处理功能都是在10Gbps的高速下完成的,占用的FPGA资源较多,加之输入输出处理时都有查表模块,占用的FPGA I/O资源也较多,要在一片FPGA内完成这些处理功能是很困难的。为降低设计难度和为以后功能扩展预留一些FPGA资源,对输入处理采用一片FPGA来完成,对输出处理同样采用一片FPGA来完成。对于其他功能部分,控制管理平面(板极处理机)采用Power PC来实现,输入查表和输出查表使用CAM来实现。在10G以太网链路层处理上选用商用ASIC芯片S19205来实现,S19205可以兼容IEEE802.3ae标准,能工作在10G-LAN、10G-WAN和10G-POS(Packet Over SDH)三种模式;在10G以太网的PMA和PMD子层的功能实现上选用了Gtran公司的GT10来实现,它是一个Transponder,在内部即实现了光电转换,又实现了串并转换,通过提供不同的时钟网络配合S19205就可以实现这三种10G接入方式。对于10G-LAN接入和10G-WAN接入而言,FPGA程序的处理流程是相同的,这样,S19205在GT10的配合下,可以将10G-LAN和10G-WAN的差别屏蔽在FPGA功能处理之外,使得该设计结构既可工作在10G-LAN模式,也可工作在10G-WAN模式,达到设计复用的目的。
4 测试与分析
高速数据中继器设计制板完成后,还要将其置于整个路由器环境中进行性能测试,其测试结构如图三所示,最下面四个模块组成了高速数据中继器。
图 三:测试结构图
从图中可以看出,测试时需要两个10GbE接口,一个用于接收测试仪的数据报文,另外一个则是对经过转发处理和端口交换后的数据报进行处理后返回给测试仪进行分析。下面给出衡量系统性能的关键参数的测试情况。
测试中选用的数据包长是46、60、64、65、128、256、512、1024、1280、1508,测试时间是1分钟,测试结果如下:
图 四:系统时延测试曲线图
由于我们的中继器设计时的性能指标是可以达到10Gbps速率下40字节IP包的处理能力,在测试仪的吞吐量下不应该丢包,实际测试结构在上述10种包长的情况下,IPv4和IPv6的单播、组播包的丢包率均为0。系统时延测试结果如图四所示。从测试结果可以看出,高速数据中继器应用在高速路由器中后完全满足高速路由器对数据中继要求的各项性能指标。
5 创新点总结
本文的创新点是提出了一种基于FPGA的高速数据中继器设计方案,并综合分析了ASIC和NP等方法设计的高速网络中继器设计方法,在设计的功能和灵活性两方面做了很好的权衡。从测试结果可以看出,本文设计很好地满足了网络处理的基本功能以及高速数据中继的性能指标要求。