一种基于FPGA的NVMe设备存储速度提升方法技术

技术编号:22054365 阅读:43 留言:0更新日期:2019-09-07 14:57
一种基于FPGA的NVMe设备存储速度提升方法,涉及数据存储技术领域,为解决现有技术中由于数据包发送时耗时较长,导致NVMe存储设备存储速度慢的问题,包括步骤一:NVMe SSD向FPGA发送读内存请求;步骤二:NVMe SSD获取FPGA回复的完成报文:步骤二一:流程控制模块向数据发送模块发送传输信号;步骤二二:数据发送模块根据接收到的数据包类型进行数据包封装和发送;步骤二三:数据包通过AXI‑Stream总线传输给PCIe硬核,最终数据传输给NVMe SSD;步骤三:NVMe SSD从完成报文中提取待存储数据。本发明专利技术采用的半背靠背发送策略与普通发送策略相比可以提升22%的数据传输速度。

A Storage Speed Improvement Method for NVMe Devices Based on FPGA

【技术实现步骤摘要】
一种基于FPGA的NVMe设备存储速度提升方法
本专利技术涉及数据存储
,具体为一种基于FPGA的NVMe设备存储速度提升方法。
技术介绍
随着相控阵雷达的性能不断提升,其产生的数据量也越来越大。在雷达测试领域,需要高速存储设备来存储雷达接收的原始回波信号,以便于后续的数据分析及整机功能验证。高性能的雷达对存储设备的速度、容量等性能提出了挑战,同时外场、机载的应用场景对存储设备的体积和功耗也提出了要求。NVMeSSD是近几年来出现的新一代存储设备,借助PCIe总线的高传输速度,可以实现1GB/s以上的数据存储速度。利用FPGA配合NVMeSSD可以构建适用于雷达测试领域的便携式高速数据存储设备。FPGA控制NVMeSSD的核心技术是NVMe控制软件的编写,包括流程控制、数据传输等,其中数据传输模块的设计直接关系到设备的数据存储速度。当前存储设备的速度主要受限于数据包发送的耗时,因此提升数据包的发送速度已被越来越多的人们所关注。
技术实现思路
本专利技术是为了解决现有技术中由于数据包发送时耗时较长,导致NVMe存储设备存储速度慢的问题,提供一种基于FPGA的NVMe设备存储速度提升方法。本专利技术为了解决上述技术问题采取的技术方案是:一种基于FPGA的NVMe设备存储速度提升方法,包括以下步骤:步骤一:NVMeSSD向FPGA发送读内存请求;步骤二:NVMeSSD获取FPGA回复的完成报文:步骤二一:流程控制模块向数据发送模块发送传输信号;步骤二二:数据发送模块根据接收到的数据包类型进行数据包封装和发送;步骤二三:数据包通过AXI-Stream总线传输给PCIe硬核,最终数据传输给NVMeSSD;步骤三:NVMeSSD从完成报文中提取待存储数据。进一步的,所述数据发送模块为数据包发送状态机。进一步的,所述数据包发送状态机的状态包含:空闲状态、等待总线空闲状态、判断TLP传输数量状态和发送状态。进一步的,所述数据包发送状态机的状态之间的转换关系为:当状态机处于空闲状态时,判断是否接收到开始发送信号,若是,跳转至等待总线空闲状态,若否,停留在当前状态;当状态机处于等待总线空闲状态时,获取要发送的数据载荷,同时判断AXI-Stream总线是否空闲,若是,跳转至判断TLP传输数量状态,若否,停留在当前状态;当状态机处于判断TLP传输数量状态时,判断要发送的TLP是否为完成报文且包含待存储的数据,若是,TLP传输数量为2,若否,TLP传输数量为1,然后跳转至发送状态;当状态机处于发送状态时,通过AXI-Stream总线向PCIe硬核连续发送相应数量的TLP,并判断发送是否完成,若是,跳转至空闲状态,若否,停留在当前状态。进一步的,所述数据包发送状态机内还设有数据包发送子状态机。进一步的,所述数据包发送子状态机的状态包含:空闲状态、发送TLP包头状态、发送数据包的数据载荷状态、判断当前发送TLP数量状态和发送完成状态。进一步的,所述数据包发送子状态机的状态之间的转换关系为:当子状态机处于空闲状态时,判断数据包发送状态机是否处于发送状态,若是,跳转至发送TLP包头状态,若不是,停留在当前状态;当子状态机处于发送TLP包头状态时,数据发送模块通过AXI-Stream总线将TLP的包头发送给PCIe硬核,同时记录当前发送的TLP数量,跳转至发送数据包的数据载荷状态;当子状态机处于发送数据包的数据载荷状态时,数据发送模块通过AXI-Stream总线将数据包的数据载荷发送给PCIe硬核,并判断当前数据包的数据载荷是否即将发送完成,若是,跳转至判断当前发送TLP数量状态,若不是,停留在当前状态继续发送数据载荷;当子状态机处于判断当前发送TLP数量状态时,发送当前TLP的最后一个时钟周期对应的数据载荷,同时判断当前发送的TLP数量与应发送的TLP数量是否相等,若是,跳转至发送完成状态,若不是,跳转至发送TLP包头状态,继续发送TLP。当子状态机处于发送完成状态时,向数据包发送状态机发送完成信号,然后跳转至空闲状态。进一步的,所述步骤二三中数据包在PCIe硬核中经过数据链路层和物理层的处理。本专利技术的有益效果是:1、本专利技术数据发送模块在保证数据包长度最大的情况下,利用半背靠背的TLP发送策略,提高PCIe总线的利用效率,以满足存储设备的数据写入速度需求,同时为设备后续升级留有速度余量。本专利技术中的半背靠背发送策略与普通发送策略相比可以提升22%的数据传输速度。2、本专利技术采用不同读请求对应的完成报文之间保留5个时钟周期的发送间隔,用于执行判断、赋值、读取缓存等步骤,为流程中的其他步骤留出足够的执行时间,为设备后续升级留有足够的速度余量,提高了设计的可靠性,降低了开发难度。附图说明图1为本专利技术PCIe数据包发送模块的接口互联框图。图2为本专利技术的数据发送状态转换图。图3为本专利技术的FPGA发送数据时AXI-Stream接口波形图。图4为本专利技术的数据发送子状态机的状态转换图。具体实施方式具体实施方式一:下面具体说明本实施方式,本实施方式,一种基于FPGA的NVMe设备存储速度提升方法,包括以下步骤:步骤一:NVMeSSD向FPGA发送读内存请求;步骤二:NVMeSSD获取FPGA回复的完成报文;步骤二一:流程控制模块向数据发送模块发送传输信号;步骤二二:数据发送模块根据接收到的数据包类型进行数据包封装和发送;步骤二三:数据包通过AXI-Stream总线传输给PCIe硬核,最终数据传输给NVMeSSD;步骤三:NVMeSSD从完成报文中提取待存储数据。FPGA-NVMe存储设备由光纤数据接口模块、FPGA和NVMeSSD组成,其中FPGA实现接口互联和对NVMeSSD的控制(包括生成读写命令、进行数据传输等)。利用FPGA控制NVMeSSD的核心技术是NVMe控制软件的编写,包括流程控制、数据传输等,其中数据传输模块的设计直接关系到设备的数据存储速度。FPGA与NVMeSSD借助PCIe总线进行数据传输,其数据包由物理层、数据链路层和事务层三部分组成。XilinxFPGA集成的PCIe硬核提供现成的物理层和数据链路层实现功能,并通过AXI-Stream接口与用户逻辑进行数据交互。用户逻辑按照固定的时序和格式,通过AXI-Stream接口向PCIe硬核发送PCIe事务层数据包(TLP)即可实现PCIe数据包的发送。与发送TLP相关的模块包括流程控制模块、发送数据源、数据发送模块和PCIe硬核,这些模块的接口互联框图如图1所示。数据发送模块接收流程控制模块的开始发送信号后,根据接收到的数据包类型进行数据包封装和发送,数据包通过AXI-Stream总线传输给PCIe硬核,在PCIe硬核中经过数据链路层和物理层的处理,最终将数据传输给NVMeSSD。NVMeSSD获取来自FPGA的待存储数据的过程如下:(1)NVMeSSD向FPGA发送读内存请求,(2)NVMeSSD获取FPGA回复的完成报文(CompletionTLP),(3)NVMeSSD从完成报文中提取待存储数据。读取存储设备中NVMeSSD的PCIe配置寄存器中的Max_Payload_Size(MPS)字段,可知该NVMeSSD可以接收的TLP的最大数据载荷为128Byte。由于NVMeS本文档来自技高网...

【技术保护点】
1.一种基于FPGA的NVMe设备存储速度提升方法,其特征在于包括以下步骤:步骤一:NVMe SSD向FPGA发送读内存请求;步骤二:NVMe SSD获取FPGA回复的完成报文:步骤二一:流程控制模块向数据发送模块发送传输信号;步骤二二:数据发送模块根据接收到的数据包类型进行数据包封装和发送;步骤二三:数据包通过AXI‑Stream总线传输给PCIe硬核,最终数据传输给NVMe SSD;步骤三:NVMe SSD从完成报文中提取待存储数据。

【技术特征摘要】
1.一种基于FPGA的NVMe设备存储速度提升方法,其特征在于包括以下步骤:步骤一:NVMeSSD向FPGA发送读内存请求;步骤二:NVMeSSD获取FPGA回复的完成报文:步骤二一:流程控制模块向数据发送模块发送传输信号;步骤二二:数据发送模块根据接收到的数据包类型进行数据包封装和发送;步骤二三:数据包通过AXI-Stream总线传输给PCIe硬核,最终数据传输给NVMeSSD;步骤三:NVMeSSD从完成报文中提取待存储数据。2.根据权利要求1所述的一种基于FPGA的NVMe设备存储速度提升方法,其特征在于:所述数据发送模块为数据包发送状态机。3.根据权利要求2所述的一种基于FPGA的NVMe设备存储速度提升方法,其特征在于所述数据包发送状态机的状态包含:空闲状态、等待总线空闲状态、判断TLP传输数量状态和发送状态。4.根据权利要求3所述的一种基于FPGA的NVMe设备存储速度提升方法,其特征在于:所述数据包发送状态机的状态之间的转换关系为:当状态机处于空闲状态时,判断是否接收到开始发送信号,若是,跳转至等待总线空闲状态,若否,停留在当前状态;当状态机处于等待总线空闲状态时,获取要发送的数据载荷,同时判断AXI-Stream总线是否空闲,若是,跳转至判断TLP传输数量状态,若否,停留在当前状态;当状态机处于判断TLP传输数量状态时,判断要发送的TLP是否为完成报文且包含待存储的数据,若是,TLP传输数量为2,若否,TLP传输数量为1,然后跳转至发送状态;当状态机处于发送状态时,通过AXI-Stream总线向PCIe硬核连续发送相应数量的TLP,并判断发送是否完成,若是,跳转至空闲状态,若否,停留在当前状态。5.根据权利要求4...

【专利技术属性】
技术研发人员:张京超乔立岩孟凡廓朱凯晖刘旺彭喜元
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:黑龙江,23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1