一种基于FPGA的嵌入式NVMe固态硬盘存储系统技术方案

技术编号:37194002 阅读:9 留言:0更新日期:2023-04-20 22:53
本发明专利技术涉及固态硬盘存储系统技术领域,公开了一种基于FPGA的嵌入式NVMe固态硬盘存储系统,包括三种系统组成结构,第一种系统组成结构由单片FPGA控制单片NVMe SSD,第二种系统组成结构由单片FPGA控制多片NVMe SSD,第三种系统组成结构由多个存储系统通过板间同步控制总线连接,并且基于FPGA的嵌入式NVMe固态硬盘存储系统的工作流程:包括以下步骤:数据写入控制、同步总线模块处理、NVMe主机控制器进行处理、数据读出控制四个步骤,该基于FPGA的嵌入式NVMe固态硬盘存储系统,通过使用单颗FPGA芯片,节省了电路板的面积,有利于存储系统的小型化,通过设计三种不同的存储系统架构,能适应多种不同要求的应用,通过设计了NVMe主机控制器的工作流程,实现了NVMe SSD的管理和控制。管理和控制。管理和控制。

【技术实现步骤摘要】
一种基于FPGA的嵌入式NVMe固态硬盘存储系统


[0001]本专利技术涉及固态硬盘存储系统
,具体为一种基于FPGA的嵌入式NVMe固态硬盘存储系统。

技术介绍

[0002]现场可编辑逻辑闸阵列,它是在PAL、GAL、CPLD等可编程逻辑器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。NVMe或NVM Express,全称Non

Volatile Memory Host Controller Interface Specification(缩写NVMHCI),可译作“非易失性内存主机控制器界面规范”,是与AHCI类似的、基于设备逻辑界面的总线传输协议规范,主要用于通过PCI Express(PCIe)总线与电脑连接的非易失性内存设备(例如,采用闪存的固态硬盘驱动器),英文名称缩写的前三个字母“NVM”就代表“非易失性内存”。本规范主要是为基于闪存的存储设备提供一个低延时、内部并发化的原生界面规范,也为现代CPU、电脑平台及相关应用提供原生存储并发化的支持,令主机硬件和软件可以充分利用固态存储设备的并行化存储能力。相比此前机械硬盘驱动器时代的AHCI,NVMe/NVMHCI降低了I/O操作等待时间、提升同一时间内的操作数、更大容量的操作队列等。独立硬盘冗余阵列,简称磁盘阵列。其基本思想就是把多个相对便宜的硬碟组合起来,成为一个硬碟阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬碟。根据选择的版本不同,RAID比单颗硬碟有以下一个或多个方面的好处:增强资料整合度,增强容错功能,增加处理量或容量。
[0003]NVMe协议的处理流程分为三步,一般为:
[0004]1)命令提交:首先,NVMe主机向提交队列SQ(Submission Queue)写入待执行的NVMe命令;然后将新的SQ队列尾指针写入SQTB(Submission Queue Tail Doorbell,提交队列门铃寄存器),通知SSD硬盘控制器有新的命令要处理;
[0005]2)命令处理:SSD硬盘控制器主动从NVMe主机的内存中取回待执行的NVMe命令,命令执行完成后,SSD硬盘控制器向完成队列CQ(Complete Queue)中写入命令执行的结果,并产生中断,指示主机处理;
[0006]3)命令完成:NVMe主机处理对应的CQ后,更新CQHB(Complete Queue Head Doorbell)寄存器的头指针地址,通知SSD控制器命令已经处理完毕。
[0007]当前的嵌入式存储方案多是基于SATA接口的SSD,该方案的缺点是单个SSD体积偏大、读写速度相对较慢(相对于NVMe SSD),制约着嵌入式存储系统的小型化和高速化发展。本专利技术针对以上不足,提供一种基于FPGA的NVMe SSD的嵌入式存储系统,来解决存储系统的高速化和小型化的问题。

技术实现思路

[0008](一)解决的技术问题
[0009]针对现有技术的不足,本专利技术提供了一种基于FPGA的嵌入式NVMe固态硬盘存储系统,具备有利于存储系统的小型化、能适应多种对速度和容量有不同要求的应用以及实现了NVMe SSD的管理和控制等优点,解决了
技术介绍
中提出的问题。
[0010](二)技术方案
[0011]为实现上述目的,本专利技术提供如下技术方案:
[0012]本专利技术要解决的另一技术问题是提供一种基于FPGA的嵌入式NVMe固态硬盘存储系统,包括三种系统组成结构,第一种系统组成结构由单片FPGA控制单片NVMe SSD,第二种系统组成结构由单片FPGA控制多片NVMe SSD,第三种系统组成结构由多个存储系统通过板间同步控制总线连接。现场可编辑逻辑闸阵列(FPGA)由数据写入控制、同步总线模块、数据读出控制、NVMe主机控制器组成,FPGA与NVMe SSD之间通过PCIe总线进行连接。
[0013]一种基于FPGA的嵌入式NVMe固态硬盘存储系统的工作流程:包括以下步骤:1)数据写入控制:写入数据步骤如下:第一步,用户发送帧起始脉冲信号,向系统请求写入新的数据帧;第二步,用户查询系统缓冲区状态,如果缓冲区有足够的空间存储当前子帧,则转入第二步,否则等待;第三步,用户同步发送当前子帧的数据有效指示和数据;第四步,如果一帧数据发送完毕,则转入第五步,否则转入第二步;第五步,用户向系统发送数据帧结束信号;第六步,系统将当前帧的文件信息,存储到存储列表区。
[0014]2)同步总线模块处理:将数据写入控制经过多个存储板间的同步和控制操作然后传导到NVMe主机控制器上,并且PCIe总线接口用于连接NVMeSSD,此接口为标准接口。
[0015]3)NVMe主机控制器进行处理:NVMe主机控制器的主要工作流程分为两部分,系统初始化和用户命令操作;初始化流程为第一步,系统上电后,NVMe主机控制器首先对PCIe的配置空间进行配置;第二步,NVMe主机控制器对内存空间的NVMe寄存器进行配置;用户命令操作流程为NVMe主机控制器响应用户发送的三种命令:识别命令、写入数据和读出数据命令
[0016]4)数据读出控制:数据读出步骤如下:第一步,系统发送帧起始脉冲信号,向用户请求读出数据帧;第二步,系统查询用户缓冲区状态,如果缓冲区有足够的空间存储当前子帧,则转入第二步,否则等待;第三步,系统同步发送当前子帧的数据有效指示和数据;第四步,如果一帧数据发送完毕,则转入第五步,否则转入第二步;第五步,系统向用户发送数据帧结束信号。
[0017]优选的:所述步骤3中的用户命令操作的识别命令为NVMe主机控制器收到用户发送的“识别命令”后,首先向NVMe SSD发送IDENTIFY命令;当NVMe SSD收到IDENTIFY命令后,则将描述SSD特性信息的数据发送给主机控制器;最后主机控制器根据返回的信息,向用户发送所连接SSD的容量信息、健康信息等。
[0018]优选的:所述步骤3中的用户命令操作的写入数据命令为NVMe主机控制器收到用户发送的“写入数据”命令后,等待用户写入待写入的数据;当用户写入的数据足够一次写操作后,主机控制器向SSD发送写入数据命令;当SSD收到WRITE命令后,主动从NVMe主机内存空间读取待写入的数据,将其写入到SSD存储单元中,完成写入操作后,向主机发送命令执行状态;当主控制器收到SSD发送的命令状态后,根据状态的返回值确定命令执行的状态,如果命令执行成功,则等待执行下一次命令,如果发生错误,则将错误信息反馈给用户
[0019]优选的:所述步骤3中的用户命令操作的读出数据命令为NVMe主机控制器收到用
户发送的“写入数据”命令后,首先查询用户缓冲区状态,当用户缓冲区空闲空间能够存储一次读命令返回的数据时,发送READ命令向SSD;SSD收到READ命令后,从存储单元中读取数据后,将其写入到主机控制器的内存空间中,同时向主机控制器发送命令执行状本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的嵌入式NVMe固态硬盘存储系统,包括三种系统组成结构,其特征在于:第一种系统组成结构由单片FPGA控制单片NVMe SSD,第二种系统组成结构由单片FPGA控制多片NVMe SSD,第三种系统组成结构由多个存储系统通过板间同步控制总线连接。现场可编辑逻辑闸阵列(FPGA)由数据写入控制、同步总线模块、数据读出控制、NVMe主机控制器组成,FPGA与NVMe SSD之间通过PCIe总线进行连接。2.一种基于FPGA的嵌入式NVMe固态硬盘存储系统的工作流程:其特征在于:包括以下步骤:1)数据写入控制:写入数据步骤如下:第一步,用户发送帧起始脉冲信号,向系统请求写入新的数据帧;第二步,用户查询系统缓冲区状态,如果缓冲区有足够的空间存储当前子帧,则转入第二步,否则等待;第三步,用户同步发送当前子帧的数据有效指示和数据;第四步,如果一帧数据发送完毕,则转入第五步,否则转入第二步;第五步,用户向系统发送数据帧结束信号;第六步,系统将当前帧的文件信息,存储到存储列表区。2)同步总线模块处理:将数据写入控制经过多个存储板间的同步和控制操作然后传导到NVMe主机控制器上,并且PCIe总线接口用于连接NVMeSSD,此接口为标准接口。3)NVMe主机控制器进行处理:NVMe主机控制器的主要工作流程分为两部分,系统初始化和用户命令操作;初始化流程为第一步,系统上电后,NVMe主机控制器首先对PCIe的配置空间进行配置;第二步,NVMe主机控制器对内存空间的NVMe寄存器进行配置;用户命令操作流程为NVMe主机控制器响应用户发送的三种命令:识别命令、写入数据和读出数据命令4)数据读出控制:数据读出步骤如下:第一步,系统发送帧起始脉冲信号,向用户请求读出数据帧;第二步,系统查询用户缓冲区状态,如果缓冲区有足够的空间存储当前子帧,则转入第二步,否则等待;第三步,系统同步发送当前子帧的数据有效指示和数据;第四步,如...

【专利技术属性】
技术研发人员:杨坤王耀辉李敏敏
申请(专利权)人:西安旷世航空光电科技有限公司
类型:发明
国别省市:

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

1