基于FPGA的NVMe数据存储

介绍

非易失性存储器快速(NVMe)协议于2012年推出,以取代老式SATA固态驱动器(SSD)。主要目的是避免现有的数据路径瓶颈,并通过当前一代NAND闪存实现低延迟和高带宽数据通信的更高性能。考虑到底层内存体系结构,NVMe利用NAND内存并行性,并利用标准高速PCIe串行总线提供每秒千兆字节(GBps)的线性I/O吞吐量,以及数十微秒的延迟,用于随机4K数据访问。

在过去几年中,FPGA在NVMe发挥重要作用的数据中心和云加速应用中表现出了良好的性能。在这方面,Aldec制定了FMC-NVMe用于原型和仿真平台的扩展卡。该板提供高带宽、低延迟的数据存储,适用于高性能计算(High Performance Computing, HPC)、高频交易(High Frequency Trading, HFT)、机器学习、数据中心等应用,以及任何具有快速R/W和高内存带宽要求的应用。FMC板可堆叠,通过高性能PCIe交换机支持M.2形式的x4 NVMe ssd盘。最多8个子板,即32块NVMe SSD,可以堆叠在一个FMC连接器上。为了铺平道路的开发商谁是使用这个板,Aldec已经准备了一个参考设计使用AldecTySOM-3A-ZU19EGTySOM-3-ZU7EV嵌入式开发板。在这种设计中,8x FMC NVMe卡相互堆叠,提供32个NVMe SSD。

图1显示了此解决方案的硬件设置。

参考设计说明

通过NVMe协议中使用的PCIe接口实现NAND闪存加速的方法并不是业界首次尝试从数据存储设备中的PCIe传输速度中获益。但使NVMe如此成功的是NAND控制器和主机处理器之间的直接连接,而无需进行不必要的数据协议转换。NVMe构建在x4 gen3(8 Gb/s)PCIe通道连接上,这导致理论最大数据传输速率为32 Gb/s。Aldec TySOM-3/3A嵌入式原型板基于Xilinx Zynq UltraScale+MPSoC技术,该技术将高性能应用处理器(APU)与DDR4系统内存控制器和加固的可配置PCIe gen3块集成在可编程逻辑部件中。这些功能使这些板能够实现功能丰富的PCIe根端口复杂解决方案,以满足NVMe协议的底层物理层要求。

PCIe Root Complex配置为x8 gen3通道,并通过HPC FMC连接器(FMC1)连接到FMC- nvme子卡上可用的32通道Microsemi PM8532 PCIe交换机。PM8532交换机负责与x4 NVMe ssd连接到4通道M.2连接器。其余8条通道路由到顶部FMC连接器,与堆叠中的上游FMC- nvme卡连接。总体系统拓扑如图2所示。参考设计在嵌入式Linux操作系统的控制下运行,包括用于PCIe Root Complex子系统的Xilinx PCIe -xdma-pl驱动程序和用于nvme协议支持的主线nvme驱动程序。

图2:参考设计系统视图

主要特征

  • 基于Zynq UltraScale+ MPSoC的TySOM开发板
  • 堆栈中最多x8个FMC NVMe子卡;
  • OEM供应商提供的M.2规格的NVMe SSD(每台主机总共多达x32个驱动器)。

解决方案内容

  • TySOM-3-ZU7EVTySOM-3A-ZU19EG嵌入式原型板;
  • FMC-NVMe子卡(单个堆栈最多x8个);
  • 技术文档;
  • PM8532 PCIe交换机配置文件和闪存映像;
  • 参考设计源文件和二进制文件;
  • 带宽和延迟基准测试的示例脚本。

Microsemi ChipLink环境可以通过调试UART连接(配置至少x2个FMC-NVMe卡以占用一个交换机的所有端口)以及Linux lspci工具来验证所有PCIe交换机端口的成功连接。此外,每个端口的连接状态被路由到FMC-NVMe上可用的用户led上,并且可以可视化地检查。图3显示了前面讨论的测试配置从Linux角度来看的PCIe拓扑。

图3:PCIe拓扑

性能统计

为了评估参考设计的性能,使用标准的dd命令行实用程序在Linux用户空间中执行了一系列低级的I/O基准测试。图4-5所示的图表描述了I/O吞吐量对不同数据传输大小的依赖关系。注意,使用DIRECT_IO方法是为了避免Linux VFS堆栈开销。读取特性显示了数据传输速度和数据传输大小之间近似线性的依赖关系,其峰值为3.3 GB/s。在写传输的情况下,当大部分数据存储使用较慢的TLC NAND内存部件时,由于作为写缓存实现的高速SLC NAND内存大小不同,每个测试的NVMe SSD都有自己的峰值性能(1.0 - 1.5 GB/s)。

图4:单SSD读取带宽

如果同时将数据传输到多个SSD(连接到同一FMC NVMe子卡的x4个SSD),结果显示,线性读取操作的总带宽增加到4 GB/s,线性写入操作的总带宽增加到3.4 GB/s。

此外,使用Linux用户空间NVMe -cli NVMe管理接口执行4K随机块访问延迟度量来评估IOPS指标,对于写IOPS指标的范围为35-50 us,对于读IOPS指标的范围为70-125 us。请注意,堆栈中每增加一个FMC-NVMe卡,就会带来大约1-2个延迟开销。

图5:单SSD写入带宽

结论

几年前引入的NVMe协议最近得到了大规模批准,它允许数据中心和消费电子存储设备中最大的NAND闪存延迟和吞吐量能力。假设NAND技术将在未来几年不断发展,那么NVMe协议也将继续发展,提供更好的速度特性和功能。Aldec交付它FMC-NVMe用于基于FPGA的仿真和原型设计解决方案的扩展卡,目前可在数据存储加速应用中受益于NVMe技术。有关为您的原型/最终用户项目访问此解决方案的更多信息,请联系我们sales@aldec.com

问我们一个问题
十、
问我们一个问题
十、
验证码图像 刷新验证码
输入错误的数据。
非常感谢。您的问题已提交。请留出1-3个工作日,以便有人回答您的问题。
发生内部错误。你的问题没有提交。请联系我们使用反馈形式.
我们使用cookie以确保我们给您最好的用户体验,并向您提供我们认为将与您相关的内容。如果您继续使用我们的网站,即表示您同意我们使用cookie。关于cookies和其他网站信息使用的详细概述载于我们的网站隐私政策.
Baidu