[发明专利]处理NVMe完成队列(CQ)阻塞的方法与存储设备在审
申请号: | 201911066563.X | 申请日: | 2019-11-04 |
公开(公告)号: | CN112765052A | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 王朋;张泽 | 申请(专利权)人: | 北京忆芯科技有限公司 |
主分类号: | G06F12/0846 | 分类号: | G06F12/0846;G06F12/0875 |
代理公司: | 北京卓特专利代理事务所(普通合伙) 11572 | 代理人: | 陈变花 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理 nvme 完成 队列 cq 阻塞 方法 存储 设备 | ||
1.一种NVMe队列管理方法,其特征在于,所述方法包括:
从第一缓存区获取命令的处理结果;
若完成队列不可用,将所述命令的处理结果存放至CQM寄存器;
将CQM寄存器的内容搬移到第二缓存区;
在所述完成队列可用时,将所述第一缓存区中的命令的处理结果和/或所述第二缓存区中的命令的处理结果填充到所述完成队列。
2.如权利要求1所述的方法,其特征在于,在将所述命令的处理结果存放至CQM寄存器之前,所述方法还包括:
判断所述完成队列是否可用,其中,在所述完成队列有可写入数据的存储空间时,判断所述完成队列可用,在所述完成队列没有可写入数据的存储空间时,判断所述完成队列不可用。
3.如权利要求1或2所述的方法,其特征在于,所述CQM寄存器位于所述第二缓存区内,响应于所述将所述命令的处理结果存放至CQM寄存器,更新所述CQM寄存器在所述第二缓存区内的位置,使得所述CQM寄存器得以接收新的命令的处理结果。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述将CQM寄存器的内容搬移到第二缓存区,包括:
响应于CQM寄存器被填充了数据,将CQM寄存器的内容搬移到所述第二缓存区;或者,
向处理器发送中断,以使所述处理器将所述CQM寄存器的内容搬移到所述第二缓存区。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述在所述完成队列可用时,将所述第一缓存区中的命令的处理结果和/或所述第二缓存区中的命令的处理结果填充到所述完成队列,包括:
在所述将CQM寄存器的内容搬移到第二缓存区之后,将所述第二缓存区中的命令的处理结果搬移至所述第一缓存区;响应于所述完成队列可用,将所述第一缓存区中的命令的处理结果填充到所述完成队列;或者,
在所述将CQM寄存器的内容搬移到第二缓存区之后,响应于所述完成队列可用,将所述第二缓存区中的命令的处理结果填充到所述完成队列。
6.如权利要求5所述的方法,其特征在于,所述将所述第二缓存区中的命令的处理结果搬移至所述第一缓存区,包括:
在所述第一缓存区存储有除所述第二缓存区中的命令的处理结果之外的其它命令的处理结果时,将所述第二缓存区中的命令的处理结果搬移至所述第一缓存区,以使在将所述第一缓存区中的命令的处理结果填充到所述完成队列时,先将从所述第二缓存区搬移来的命令的处理结果先填充到所述完成队列。
7.如权利要求5所述的方法,其特征在于,响应于所述完成队列可用,所述方法还包括:
确定所述第二缓存区域中是否有命令的处理结果;
若所述第二缓存区中没有命令的处理结果,则将所述第一缓存区中的命令的处理结果填充到所述完成队列;
若所述第二缓存区中有命令的处理结果,则将所述第二缓存区中的命令的处理结果填充到所述完成队列,再将所述第一缓存区中的命令的处理结果填充到所述完成队列。
8.如权利要求2-7中任一项所述的方法,其特征在于,所述判断所述完成队列是否可用,包括:
检测所述完成队列已使用的存储空间的容量;比较预存的完成队列的存储空间的总容量和所述已使用的存储空间的容量;在所述已使用的存储空间的容量小于所述总容量时,判断所述完成队列可用;或者,
若所述完成队列在主机内,向所述主机发送查询请求,所述查询请求用于询问所述主机所述完成队列是否可用;在所述主机返回指示所述完成队列可用是,判断所述完成队列可用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京忆芯科技有限公司,未经北京忆芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911066563.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于碳碳复合壳体的故障报警电池
- 下一篇:电动工具