基于FPGA的40Gbps双路NVME高速实时存储系统

背景介绍

自从第一篇关于NVME IP的帖子发布后,到现在已有两年半了。在这期间,IP不断进行着迭代,目前IP的速度及稳定性已经达到了一个比较好的状态。在交付的几个项目中,与合作者一起进行系统调试,提升性能及稳定性。本文将介绍一个近期交付的双路NVME系统,并与大家一起分享一些在工程应用中的感受。

本文同时也分享了我们近期新作的一些NVME盘测试,以供大家在使用中参考。

本项目应用于高速相机的数据实时存储。前端高速相机通过光纤把传感器采集的40Gb/s(5GB/s)数据输入系统,系统将光纤数据解码后存入DDR,NVME host IP将DDR中的数据存入SSD硬盘。图像数据的回放,则是将上述过程的逆序,把SSD硬盘中的数据通过IP导入DDR,再将数据通过光纤发送给上位机。

系统简介

本次的系统是与成都云智讯纬科技有限公司合作,系统基于Xilinx UltraScale+ 异构多核SoC系列XCZU7EV高性能FPGA,实现QSFP+光纤接口数据收发(单通道速率不低于10Gbps)、本地数据DDR缓存(数据位宽64bit,容量4GB)处理、本地大容量M.2 SSD存储(最高读写速率不低于6GB/s,标称容量可扩展至16TB)功能。

系统的原理框图如下所示:
在这里插入图片描述

系统使用了1片MPSoC XCZU7EV,PS和PL端各挂载 64位2GB DDR4。QSFP+光纤接口均为双向,单通道≥10Gbps,总速率≥ 40Gbps。此外,系统中包含千兆以太网 1 路,4 路 RS422,1 路调试RS232 和 JTAG,多路 GPIO。

在这里插入图片描述

整套应用系统如下图所示:

在这里插入图片描述

测试经验(感受)

1. 系统实际速度与NVME盘测试平均速度的差距

一个实际应用系统中的速度与NVME单盘测试的速度一定是存在差距的。这个差距能有多大?
我们希望将这个性能差压到一个比较小的范围,但是从实际测试的结果来看,这个性能差还是有一些的,而且很难进一步减小。我们的测试经验是,这个差距的极限是10%(极品盘,极限情况),较好情况下应该是15%(性能比较好的消费级旗舰盘及较好的工业盘),普通情况下20%(性能一般的消费级旗舰盘及工业盘)。至于一般的消费级盘,性能就完全无法应用到工业级的嵌入式系统中。

这个性能差距主要由三部分组成:盘速的波动、双盘RAID与单盘速度双倍的差、数据读入系统与写入盘过程中的控制开销。此外,系统设计中还应留有一些速度裕量。

实际系统中,数据不能因为存储系统的性能波动而丢失,因此NVME盘速波动的下限就决定了该盘在实际使用中的系统性能上限。这是一个典型的木桶效应实例,木桶中最低的那块板决定了木桶的容积(系统性能)。性能比较好的消费级旗舰盘速度波动一般为3-5%(±1.5-±2.5%),极品盘波动最小极限为1.5%(±0.75%),即87MB-145MB(±44MB-±73MB),极限40MB(±20MB).。

双盘RAID与单盘速度双倍的速度差,性能比较好的消费级旗舰盘及较好的工业盘为1-3%,一般的消费级旗舰盘及工业盘会达到4-5%。

数据读入系统与写入盘过程中的控制开销一般为5%,因为要等待数据的写入,为保护数据的安全,需要DDR 缓存中数据的写入与读出的握手(互锁)机制,这就产生的相互的等待时间。在之前的NVME盘速测试中,默认DDR中写满了数据,不需要花费额外的时间等待数据写入DDR缓存。而在实际的工程中,需要等待将光纤传输过来的数据通过AXI写入DDR中。此外,DDR内部是串行操作,对DDR进行交叉读写的话会一定程度影响DDR的速度,DDR中的读写切换及控制无法实现完全零消耗,因此总数据控制开销为约5%,且与NVME盘无关。

系统设计中,虽然已考虑了影响系统性能的主要因素,但是出于数据安全及系统稳定性的考虑,再留出2-3%,或是4-5%的性能裕量。

2. NVME盘速的稳定性

盘速的稳定性直接决定了系统性能的稳定性。一般而言,消费级旗舰产品以及工业级产品的稳定性较好。这点可以参考之前的帖子(你所不知道的NVMe SSD固态硬盘读写速度及国货的惊喜–基于FPGA的速度测试_sm961-CSDN博客国产工业级VS家(商)用NVMe SSD固态硬盘速度测评–基于FPGA的速度测试_fpga ssd-CSDN博客)。在我们几年中NVME盘的使用经验,似乎三星盘的早期产品性能更稳定一些。近年,虽然半导体工艺和协议、速度都因标准的升级而进步,但是似乎性能的稳定性却没有早期的产品好。

在系统的测试中,我们发现了许多盘都存在速度不够稳定或是速度不满足系统要求,出现了丢数据状况,该盘便无法继续使用。在系统实现过程中测试了多款硬盘,例如美商海盗船、三星等著名硬盘厂商的硬盘。三星的硬盘是我们之前一直使用的硬盘,我们在两年前购买的两块三星980Pro盘,在刚开始测试的时候都能够正常使用,而且性能稳定,速度较高,基本满足系统测试的要求,但在2023年8月的某次测试里,三星980Pro出现了掉速,写入速度只有1.6GB/s(单盘)。在后续的测试及使用中就无法再复现持续稳定的高速。我们近期购买两块新的980Pro,但两块盘使用了约一周后就出现降速。我们测试了两块三星990Pro,同样出现了降速现象。

此外国产工业盘我们也进行了一些测试,像是至誉的工业盘性能比较稳定,但速度距离系统的需求存在一些差距。此次的系统实现中,我们测试了一款国产工业盘,三顿NVEK13000GPZW,其性能超过了之前我们测试的国产工业盘。具体参数在本文的另外部分介绍。我们也测试了宜鼎国际的4TS2-P,4T容量硬盘,该盘在数据连续写入约50GB后,就出现了大幅降速。其性能基本和(国产工业级VS家(商)用NVMe SSD固态硬盘速度测评–基于FPGA的速度测试_fpga ssd-CSDN博客)帖子中的市场消费级硬盘一致,因此在本文后续部分就不再列出具体测试数据。

到目前为止,我们使用的都是M.2接口的NVME盘。因其体积小,外形纤细而在消费级产品中采用。在本项目中,采用的是M.2接口的盘,但是也为此付出了大量的时间和精力,用于寻找合适速度且性能稳定的NVME盘以及设计散热结构以保持系统性能的稳定性。在NVME的产品中,还有一种U.2接口的NVME盘,其外形尺寸与3寸SATA硬盘相近,一般用于企业级的应用中。因其外形尺寸较大,因此可以设计比较充分的导热及散热结构。此外,在主控的设计中,也采用了更安全及可靠的机制以保证性能的稳定。由于目前我们手上没有合适的板子,暂时还没有U.2接口NVME盘性能的测试,期待以后有机会,进行测试后,发布相关的数据。

U.2接口NVME盘产品示意如下:

在这里插入图片描述

3. 温度对盘速的影响

温度对芯片的影响在半导体领域是一个基本的认识,温度高会导致系统不稳定甚至崩溃。很多NVME主控厂商在做芯片设计时,特别是工业级或是企业级产品时,会考虑温度对性能的影响而监控主控芯片温度并在温度达到临界值时主动控制盘速以降低因高速写入而产生的热量。

在本次系统实现中,我们使用了一组消费级旗舰产品,在不做额外散热的情况下,全盘全速写入到总容量的50%后(约5分钟),写盘速度骤降。冷却后,同一块盘再次测试,1分钟多一点后就开始出现降速。无论该盘再放置多久,都无法恢复到其初始的状态(满速运行5分钟后再掉速)。由此猜测,在高速写入数据时产生的高热量(高温)会引起NVME盘的不可恢复性的损伤。进而,推断在帖子中(国产工业级VS家(商)用NVMe SSD固态硬盘速度测评–基于FPGA的速度测试_fpga ssd-CSDN博客)提到的三星980Pro盘在使用一年半后出现跌速,很可能是在某次测试中(时间在2023年8月中旬),由于环境温度较高,在全速数据写入过程中,芯片产生的热量无法快速传递出去而聚集在芯片表面,导致芯片温度上升,引起芯片的不可恢复损伤。

为此,我们在后期的测试以及系统实现中进行了多方面与温度相关的处理,例如给没散热处理的裸盘添加散热装甲,外置大功率风扇,以及给盘直接连接散热风扇等。

几款盘测试对比

在本次系统的实现中,我们尝试了多种不同的消费级旗舰以及国产工业盘,其中比较值得一提的就是国产三顿品牌NVME盘,如下图所示:

在这里插入图片描述

三顿的硬盘是我们第一次使用,该盘在测试中跑出了几款国产盘中的最高速度。我们使用ZCU106开发板上对三顿(SUNDOM)NVEK13000GPZW、美商海盗船(USCORSAIR) MP600 PRO XT、至誉PE4的盘进行了测试,数据写入性能对比具体如下图所示:

在这里插入图片描述

在这里插入图片描述

图中横坐标为实时测速次数,间隔为每512MB测一次速度,由于三顿的盘实际可用空间约为1.2TB,为统一测试参数,所有盘都只测量1.2TB。三块盘中速度最快的为三顿,平均速度约为2.75GB/s,最低值为2630MB/s,最高值为2788MB/s,速度波动约为5.8%(﹢1.4% ~ -4.4%)。至誉的盘平均速度约为2.6GB/S,最低值为2538MB/s,最高值为2644MB/s,速度波动约为4.1%(﹢1.7%~ -2.4%)。三顿盘的整体速度要好于至誉盘,即使考虑三顿盘速的波动要大于至誉的情况,三顿盘仍然是个较好的选择,其盘速波动的下限基本是至誉盘波动的上限。美商海盗船在数据刚写入的开始阶段仅为1.0 GB/S,1.8 GB/S,在写入3GB数据后,盘速进入稳定状态,平均速度约为2.75GB/S,最低值为2506MB/s,最高值为2808MB/s,速度波动约为11%(﹢2.1%~ -8.9%)。在数据写入870GB后,盘速出现大幅跌落,仅为950MB/s。从盘速波动的角度来看,美商海盗船盘即使在还未跌速的区间内,其稳定性也是三种测试盘中最差的。

三顿盘的在测试中的数据写入平均速度为2.75GB/s,该性能满足系统对速度的要求。依据文章前面对系统速度实际性能和测试性能差距的分析,其速度波动达到了4.4%(下限),考虑单盘与双盘的效率差1-3%,数据进出DDR的控制开销5%,其可用性能极限(不考虑性能裕量)为2.464GB/s,无法满足本文系统要求。在系统实际测试中,三顿盘跑出了2.375 GB/s(双盘4.75GB/s)的速度,是其测试均速的86.4%。这个结果说明三顿盘是一款性能比较优秀且稳定的产品,值得大家去尝试使用。

美商海盗船的8TB SSD硬盘的性能不佳,其不掉速的区间,其均速仅与三顿盘相同,但是速度波动远大于三顿及至誉硬盘,这与我们认知中的国际一线品牌的形象不符。我们也找了半天的原因,最后发现在该盘的说明文档里发现了端倪,在美商海盗船的系列产品中,其8TB盘的性能就是较2T及4T盘差10%多。或许该盘的大容量是以部分性能为代价得到的。

在这里插入图片描述
在这里插入图片描述

总结

在本次项目中,我们成功实现了一个4T容量双路NVME存储系统,其全盘连续写入性能稳定达到5GB/s。本文重点分析了系统实际性能与单盘测试性能的差距以及导致差距的原因,并给出了具体的差距估算方法。针对盘速的波动问题,作者分享了在测试以及项目实施过程中的经验及经历,并进一步对导致盘速波动以及跌落的原因进行了分析及推断。此外,本文测试了一款新的工业NVME硬盘,三顿,并给出了该盘的性能测试结果。实验表面,该盘较其他两种参与测试的国产及国外旗舰品牌硬盘具有更好的性能及稳定性,其平均写入速度达到了2.75GB/s。后续我们会继续去尝试更多的NVME硬盘,并将结果与大家分享。

如果需要讨论技术相关,联系方式如下:
北京市可线下,地址:北京市海淀区中关村南大街5号北京理工大学。
非京可联系:Tel:13810602873(微信同号)
E-mail:liuzhenyu@bit.edu.cn

如果对本文存储系统感兴趣,联系方式如下:
成都云智讯纬科技有限公司
地址:成都市新航路四号
Tel:18884733782(王经理)

三顿NVME硬盘
地址:北京市海淀区上地东路5-1号京蒙高科大厦
Tel:13910691377 (张经理)

声明

在本文的结尾,我们做如下声明:本次的测试仅仅是作为与该领域感兴趣的朋友交流之用。由于测试环境受限,有的硬盘的速度可能并没有达到该盘的最大值,测试结果仅代表我们在此次实验中的测试结果,不代表盘的最优性能。我们仅对某款型号的某块盘,基于FPGA平台,用自己的测试程序做了统一的、无差别的测试而得到了结果。我们仅对我们的方法及所用的盘负责,保证不出现虚假或是伪造的结果。但不是对市场上所有的该型号或类似的产品性能做出推断或推论。本文的数据发布出来,仅供大家参考。

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值