【技术实现步骤摘要】
存储设备指令聚合方法、装置、计算机设备及存储介质
[0001]本专利技术涉及存储硬件
,具体涉及一种存储设备指令聚合方法
、
装置
、
计算机设备及存储介质
。
技术介绍
[0002]LINUX(
一种开源操作系统
)
主机和基于
NVME(Non Volatile Memory Express
,非易失性内存主机控制器接口规范
)
协议的存储设备通信,必须通过位于主机内存的指令队列和设备完成交互,指令队列包括提交队列和完成队列
。
[0003]当前,
LINUX
主机和基于
NVME
协议的存储设备的通信过程为:主机需要将存储设备执行的
SQE(Submission Queue Entry
,提交队列条目
)
指令放入提交队列中,然后通知存储设备从提交队列里面读取
SQE
指令,存储设备内部的控制器通过
PCIe(per ...
【技术保护点】
【技术特征摘要】
1.
一种存储设备指令聚合方法,其特征在于,所述方法应用于存储设备端,所述方法包括:获取第一数量个提交指令和所述提交指令的排列顺序;执行所述提交指令,得到每个所述提交指令的执行结果,并生成第一数量个完成指令;在所述执行结果均为执行成功的情况下,则将所述第一数量个完成指令组合为目标完成指令,并将所述目标完成指令发送至主机端;在所述执行结果不均为执行成功的情况下,按照所述排列顺序获取第一个执行出错时的执行结果位于所述排列顺序内的目标位置,根据所述目标位置确定所述目标完成指令和失败指令,并将所述目标完成指令和所述失败指令发送至所述主机端或者将所述失败指令发送至所述主机端
。2.
根据权利要求1所述的方法,其特征在于,所述按照所述排列顺序获取第一个执行出错时的执行结果位于所述排列顺序内的目标位置,根据所述目标位置确定所述目标完成指令和失败指令,并将所述目标完成指令和所述失败指令发送至所述主机端或者将所述失败指令发送至所述主机端,包括:如果所述失败指令位于第一目标位置,则所述失败指令之前存在的所述完成指令的数量大于第一预设值,将所述失败指令之前存在的所述完成指令组合为所述目标完成指令,并将所述目标完成指令和所述失败指令发送至所述主机端;如果所述失败指令位于第二目标位置,则所述失败指令之前存在的所述完成指令的数量等于第一预设值,则将所述失败指令之前存在的所述完成指令作为所述目标完成指令,并将所述目标完成指令和所述失败指令发送至所述主机端;如果所述失败指令位于第三目标位置,则所述失败指令之前存在的所述完成指令的数量小于第一预设值,则将所述失败指令发送至所述主机端
。3.
根据权利要求1所述的方法,其特征在于,所述将所述第一数量个完成指令组合为目标完成指令,包括:获取合并所述完成指令的时间间隔和数量阈值,其中,所述时间间隔和所述数量阈值用于合并所述完成指令得到所述目标完成指令;在所述第一数量个完成指令为所述时间间隔之内的所有完成指令,且所述第一数量小于或等于所述数量阈值的情况下,根据所述排列顺序,确定所述第一数量个完成指令中第一起始完成指令和第一结束完成指令;获取所述第一起始完成指令的第一命令标识符和所述第一结束完成指令的第二命令标识符;将预设完成指令的命令标识符修改为第二预设值,并根据所述第一命令标识符和所述第二命令标识符修改所述预设完成指令,得到所述目标完成指令;在所述第一数量个完成指令为所述时间间隔之内的所有完成指令,且所述第一数量大于所述数量阈值的情况下,从所述第一数量个完成指令中获取前第二数量个完成指令,其中,所述第二数量等于所述数量阈值;根据所述排列顺序,确定所述第二数量个完成指令中第二起始完成指令和第二结束完成指令;获取所述第二起始完成指令的第三命令标识符和所述第二结束完成指令的第四命令
标识符;将所述预设完成指令的命令标识符修改为所述第二预设值,并根据所述第三命令标识符和所述第四命令标识符修改所述预设完成指令,得到所述目标完成指令
。4.
根据权利要求2所述的方法,其特征在于,所述将所述失败指令之前存在的所述完成指令组合为所述目标完成指令,包括:根据所述排列顺序,确定失败指令之前存在的所述完成指令中第三起始完成指令和第三结束完成指令;获取所述第三起始完成指令的第五命令标识符和所述第三结束完成指令的第六命令标识符;将预设完成指令的命令标识符修改为第二预设值,根据所述第五命令标识符和所述第六命令标识符修改所述预设完成指令,得到所述目标完成指令
。5.
一种存储设备指令聚合方法,其特...
【专利技术属性】
技术研发人员:郝鹏,王见,孙明刚,
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。