[发明专利]NVMe协议的队列命令的执行方法、装置及存储介质有效
申请号: | 201711070914.5 | 申请日: | 2017-11-03 |
公开(公告)号: | CN107861894B | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 王超 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F13/18 | 分类号: | G06F13/18;G06F13/42 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | nvme 协议 队列 命令 执行 方法 装置 存储 介质 | ||
本发明公开了一种NVMe协议的队列命令的执行方法,在接收到队列命令的执行指令时,先根据该执行指令以优先级规则从多个队列中选取目标队列,再以预定义规则执行目标队列中的目标队列指令。因此,在执行多个队列中的队列命令时,根据优先级规则选取优先级高的队列作为目标队列,并对满足优先级规则的目标队列以预定义规则进行执行,避免了将所有队列均等选择导致优先级较高的队列命令无法执行的问题。本发明还公开了一种NVMe协议的队列命令的执行装置及可读存储介质,同样能解决上述技术问题。
技术领域
本发明涉及存储领域,特别涉及一种NVMe协议的队列命令的执行方法、装置及存储介质。
背景技术
NVMe(Non-Volatile Memory)是一种专门为闪存类存储设计的协议。是使用PCI-E通道的SSD(固态硬盘)的一种规范,SSD的并行性可以充分被主机的硬件与软件充分利用,相比与现在的AHCI标准,NVMe标准可以带来多方面的性能提升。
NVMe协议设计了多种队列,包括Admin Submission Queue(ASQ)队列、AdminCompletion Queue(ACQ)队列、IO Submission Queue(IOSQ)队列以及IO CompletionQueue(IOCQ)队列。
当主机需要向NVMe SSD发送管理命令时,会将命令提交到ASQ,然后向NVMe控制器发送中断,NVMe控制器将命令从ASQ中取出,拿到控制器内部,并将该命令标记为“候选命令”,择机处理后,将命令处理结果填充到ACQ中,通过中断通知主机端,然后主机端在ACQ中提取命令处理结果。当主机需要向NVMe SSD发送IO命令时,会将命令提交到IOSQ,后续过程与管理命令处理类似,只是NVMe控制器会将处理结果返回到IOCQ中,供主机提取命令完成状态。
其中,“候选命令”是已经被控制器从ACQ或IOCQ中取出并传输到控制器内部的准备执行的命令。控制器会按照自己的算法在候选命令池中选择下一步将要执行的命令。而这些候选命令如何选取,就涉及到一个队列优先级的问题。传统的候选命令的选取方法是对依次轮询所有的队列,不会考虑队列的优先级,导致许多高优先级的队列中的命令无法被优先执行,例如存放在ASQ中的管理命令一般是优先级比较高的命令,采用传统的方法导致ASQ中的管理命令与IOCQ中的IO命令均摊带宽,无法被优先执行。
因此,如何避免NVMe队列中的优先级较高的命令无法优先执行的问题是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种NVMe协议的队列命令的执行方法、装置及存储介质,避免了NVMe队列中的优先级较高的命令无法优先执行的问题。
为实现上述目的,本发明实施例提供了如下技术方案:
一方面,本发明实施例提供了一种NVMe协议的队列命令的执行方法,包括:
接收队列命令的执行指令;
根据所述执行指令以优先级规则从多个队列中选取目标队列;
以预定义规则执行所述目标队列中的目标队列命令。
优选的,所述根据所述执行指令以优先级规则从多个队列中选取目标队列包括:
判断与各队列对应的队列权重是否大于目标优先级阈值;
若是,则选取所述队列权重大于所述目标优先级阈值的队列作为所述目标队列。
优选的,所述判断各队列对应的队列权重是否大于目标优先级阈值包括:
判断与各队列对应的所述队列权重是否大于ASQ优先级阈值;
若是,则将所述队列权重大于所述ASQ优先级阈值的队列作为所述目标队列;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711070914.5/2.html,转载请声明来源钻瓜专利网。