布景
或许,你会认为DPDK(Data Plan Development Kit)是一个运用在网络运用层上的高速数据传输规范;或许,你认为DPDK是Intel拟定的一套标准;或许,你认为DPDK在CPU和ASIC界是受限的保密的;亦或许,你都没有听说过DPDK,考虑到它的开展前史,的确很有或许。所以,假如以上的这些假定中有一项是正确的,那么你应该读读下面的内容。
开始,DPDK是一个数据层的库集,后来Intel开发了专门针对Intel X86微处理器的能够快速分组处理NIC(网络接口操控)的驱动,这便是DPDK的宿世。而此生的DPDK,在上一年四月份,已经成为一个Linux基金项目,而且能够在DPDK.org上看到。
DPDK首要包含以下几个我们常用的首要库:
当需求最小化CPU周期数时(一般小于80)发送和接纳数据包;
开发快速分组算法;
运转第三方便利途径仓库。
迄今为止,DPDK听起来的确像是一个特别的网络开发东西,可是,也正如Atomic Rules的CTO Shep Siegel所说:“假如你能够使你的数据传输问题看起来只是是一个数据包传输问题的话,那么,在你的开发流程中,DPDK或许便是一条比较有协助捷径”。
Arkville
而且,关于近期更多DPDK的细节,Siegel的团队或许更为了解,首要是因为他的团队刚发布了Arkville,这是一个支撑DPDK的FPGA/GPP的数据传输IP块和DPDK PMD(Poll Mode Driver,与Linux基金开源DPDK库17.05发行版协作,答应Linux DPDK运用分流服务器循环到FPGA门)。一起,Atomic Rules的Arkville发行版还兼容Xilinx Vivado2017.1(这是本年四月份刚刚发布Vivado规划东西的最新版别)。此外,Atomic Rules供给了两个简略的demo规划(均可经过Vivado 2017.1进行编译):
4端口,4行列10GbE demo(Arkville + 4 x 10 GbE MAC)
单端口单行列 100GbE demo(Arkville + 1 x 100 GbE MAC)
以上这两个比如都是数据移动器。精确来说,Arkville是一个数据包导管道,这个管道有一个CPU端的DPDK接口,一个FPGA端的AXI接口,一起,在Arkville管道上还有一个能够很便利地添加用户用于处理这些数据包的硬件规划点,一起这也是CPU分流逻辑的地点。
Atomic Rules开发的Arkville IP和一切的Xilinx UltraScale器材都协作杰出,可是,与Xilinx UltraScale+ 的全可编程器材协作的更好,这首要归功于全可编程器材内部集成两个PCIe Gen3 x 16操控器(包含Kintex UltraScale+和Virtex UltraScale+ FPGA系列器材和Zynq UltraScale+ MPSoC系列器材)。
为什么呢?
正如BittWare企业的VPCraig Lund主管所说 “100G的以太网是不太或许的,可是你是否能够在服务器端经过运用PCIe来到达这个速率 [运用一个PCIe Gen3 x 16接口]是不明确的。从PCIe的参数来看,这看起来好像简略,但现实并非如此” 。Lund还提到,假如你正在处理一个最小尺度的数据包,那么能够选用很多超越14百万每秒来完成。可是假如你正在处理一个大的数据包,那将需求更多的带宽,这或许正是一个对单PCIe Root 复合体生产力的应战,不过从实际出发,的确一个不行。
运用Atomic Rules的ArkvilleIP,BittWare开发出了自己的产品——XUPP3R PCIe卡,一起它还组合了一个Xilinx的Virtex UltraScale+ VU13P FPGA芯片。BittWare的XUPP3R PCIe板卡的很多共同特征之一便是它有两个PCIe Gen3 x 16 端口:一个在边际连接器时有用,另一个是一个可选的接连扩展口。其间第二个PCIe Gen3x16口能够用作添加带宽的第二PCIe槽。
可是,虽然Lund没有多说,这儿却不只是需求两个PCIe Gen3 x 16插槽,而是需求两个PCIe Gen2 Root复合体,也就意味着需求一个两组插槽的母板,然后两个CPU作业处理数据通路。以下简化的方框图能够阐明Lund的观念:
BittWare不只开发了具有两个PCIe Gen3 x 16端口的XUPP3R PCIe卡,此外,BittWare还运用它的XUPP3R PCIe卡和Arkville IP共同开发了两个产品:
StreamSleuth,一个100GbE的网络数据包处理用具。
StreamSurge,一个1U盒子,内有Intel E5 v4 单插座服务器和由XUPP3R PCIe 卡规划的NIC以及BittWare的StreamSurge IP。
不过,需求对号的是:Arkville是Atomic Rules供给的一个IP,XUPP3R PCIe卡是BittWare供给的产品,两者不行混杂。
总结
现在,很多数据迸发,除了固件运送之外,最便利的总线(PCIe/ETH)线路传输,不只速率高一起安全性高,可是跟着局势的开展,对其速率的要求越来越高,希望Xilinx FPGA能够为进步数据传输速率方面做出更多奉献。