[发明专利]一种基于FPGA的NVMe SSD命令处理方法有效
申请号: | 201910420004.8 | 申请日: | 2019-05-20 |
公开(公告)号: | CN110109626B | 公开(公告)日: | 2022-01-25 |
发明(设计)人: | 张京超;刘旺;孟凡廓;朱凯晖;乔立岩;彭喜元 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 时起磊 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于FPGA的NVMe SSD命令处理方法,它属于数据存储技术领域。本发明解决了随着NVMe SSD读写操作的命令增大或命令种类增多,流程控制状态机的复杂度增加的问题。本发明对NVMe SSD命令处理流程控制模块进行设计,将多种命令执行流程相结合,使用一个简单的流程控制状态机即可实现所有命令执行流程,便于开发和维护;而且在保证功能完整的同时,优化了流程控制状态机的状态数量及状态转移条件,减少了流程控制状态机中判断步骤的时间开销,提高了开发效率,与传统方法相比,采用本发明方法可以节省FPGA内部43%的触发器资源和65%的查找表资源。本发明可以应用于数据存储技术领域。 | ||
搜索关键词: | 一种 基于 fpga nvme ssd 命令 处理 方法 | ||
【主权项】:
1.一种基于FPGA的NVMe SSD命令处理方法,其特征在于,该方法包括以下步骤:步骤A1、FPGA接收到用户命令后更新命令提交队列,并向NVMe SSD发送写寄存器请求,更新NVMe SSD中的命令提交队列尾门铃寄存器,跳转至步骤A2;步骤A2、FPGA进入等待状态,并判断是否接收到数据包,当FPGA接收到数据包时,跳转至步骤A3;步骤A3、判断接收的数据包是否为写内存请求,若是写内存请求,则跳转至步骤A4;否则,跳转至步骤A8;步骤A4、判断接收的数据包是否为写数据请求;若是写数据请求,则FPGA接收从NVMe SSD读取的数据,跳转至步骤A2;否则,跳转至步骤A5;步骤A5、判断接收的数据包是否为写命令完成队列请求,若是写命令完成队列请求,则跳转至步骤A6;否则,跳转至步骤A12;步骤A6、判断命令是否成功执行,若成功执行,则更新命令完成队列,跳转至步骤A7;否则,跳转至步骤A12;步骤A7、FPGA向NVMe SSD发送写内存请求,更新NVMe SSD中的命令完成队列头门铃寄存器,跳转至步骤A13;步骤A8、判断接收的数据包是否为读内存请求,若是读内存请求,则跳转至步骤A9;否则,跳转至步骤A12;步骤A9、判断接收的数据包是否为读命令提交队列请求,若是读命令提交队列请求,则FPGA发送完成报文,返回NVMe命令信息,跳转至步骤A2;否则,跳转至步骤A10;步骤A10、判断接收的数据包是否为读地址列表请求,若是读地址列表请求,则FPGA发送完成报文,返回地址列表信息,跳转至步骤A2;否则,跳转至步骤A11;步骤A11、判断接收的数据包是否为读数据请求,若是读数据请求,则FPGA发送完成报文,返回要存储的数据,跳转至步骤A2;否则,跳转至步骤A12;步骤A12、报错,跳转至步骤A13;步骤A13、结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910420004.8/,转载请声明来源钻瓜专利网。