100G Ethernet => 2.6M IOPS (4K) !!! (3)

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者 唐杰

和大家一样,当NVMeoF的标准出来之后,我们也在考虑如何快速帮助客户推出性价比靠谱的产品。和大部分潜在用户讨论之后,发现使用标准的RDMA网卡这条路可能有问题,因为25G的大户,Mellanox的网卡已经号称支持NVMeoF的协议卸载(其实,我到现在都没明白,Mellanox如何做到在NVMeoF协议没有推出之前都能在ASIC上做协议卸载)。

 

摆在眼前的选择不多,也很明显,必须要在FPGA做Intel做了几十年的事情——集成。FPGA的好处就在这里体现了,我们可以方便地实现各种I/O的接口,并在内部通过AXI BUS进行低成本的互联。

 

 

使用集成大法,使用FPGA的100G的MAC做了一个支持RoCEv2的100G RDMA Ethernet interface,使用FPGA上的硬核(ARM A-53),或者软核(MicroBlaze)做控制链路。

 

在NVMe后端,使用PCIE硬核+软核的方式可以支持多达8个的NVMe SSD。

 

从系统框图上,可以看到整个方案就是一个单芯片解决方案。可以说是把一个X86的存储机头在FPGA里进行了实现。

 

当然,和任何创新一样,都不是一帆风顺的。使用FPGA做RDMA的网卡并不多见,ARM的生态,特别是对于数据中心至关重要的PCIE的生态也不健全,毕竟ARM上支持一个PCIE RC 以及多个PCIE root port 都是新课题。

 

在FPGA中实现NVMeoF的优势也是比较明显的:

  1. NVMeoF对于RDMA的verbs的要求很低,只用实现部分的命令,同时NVMeoF所有的I/O都是从Target发起,因此只用实现部分功能即可。

     

     

  2. FPGA中有大量的Block RAM, 在通讯业中使用Block RAM构建多级的FIFO来实现数据管道,这NVMeoF中,可以构建面向NVMe的CQs/SQs,RDMA 网卡的QPs。利用FPGA的片上内存,可以实现clock级别的数据传输。使用了cut through的dataflow,不用使用大量的DDR来做数据缓存。

     

     

  3. 因为AI兴起了异构计算这个概念,FPGA厂商也从善如流,推出了包含ARM硬核的ZYNQ系列产品,在这里ARM可以做控制链路, 不参与数据的传输。使用ARM,也方便了我们的软件开发,目前ARM上的软件都是从Linux的upstream上移植过来,除了支持Xilinx的Petalinux以外,也会支持类似RHEL的Data Center 操作系统。在性能测试过程中, Xilinx的A-53的ARM core很淡定。

     

     

    经历了种种考虑之后,Xilinx开始行动了,于是有了这个板子【1】,作为Xilinx在数据中心的I/O加速板, 实现了ARM在控制链路,数据链路在FPGA的实现。

 

    插播广告,这个平台同样可以做对象存储的接口,实现KV store,请移步【2】。

 

【1】http://sidewinder.fidus.com/

【2】https://www.missinglinkelectronics.com/index.php/menu-products/key-value-store-accelerator

分类目录 SSD.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。