[发明专利]NVMe协议处理器及其处理方法在审
申请号: | 201810929604.2 | 申请日: | 2015-12-07 |
公开(公告)号: | CN109117092A | 公开(公告)日: | 2019-01-01 |
发明(设计)人: | 王晨阳;王祎磊 | 申请(专利权)人: | 北京忆芯科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F13/16 |
代理公司: | 北京卓特专利代理事务所(普通合伙) 11572 | 代理人: | 段宇 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 协议处理器 完成队列 共享存储器 主机 适应性修改 硬件电路 重新设计 填充 写入 取出 告知 升级 | ||
本发明公开了NVMe协议处理器及其处理方法,所述方法包括:主机将NVMe命令写入NVMe协议处理器的共享存储器;所述NVMe协议处理器的CPU处理所述共享存储器中的NVMe命令;所述NVMe协议处理器依据处理完成的NVMe命令,填充完成队列(CQ);所述主机从所述完成队列(CQ)中取出数据并处理,并告知所述NVMe协议处理器所述完成队列(CQ)的处理情况。本发明易于在NVMe协议升级或扩展时进行适应性修改,无需重新设计NVMe协议处理器的硬件电路,方便易用,适应性强。
技术领域
本发明涉及固态存储设备(Solid Storage Device,SSD),更具体地,本发明涉及存储器控制器中用于处理NVMe(Non Volatile Memory express,非易失存储器)协议的NVMe协议处理器及NVMe协议处理方法。
背景技术
NVMe协议的处理流程一般为:
1.命令提交
(1)主机向提交队列(Submission Queue,SQ)写入NVMe命令;
(2)主机写入更新后的SQ队列尾指针,作为Doorbell(门铃)通知NVMe协议处理器有新命令要处理;
2.命令处理
(1)NVMe协议处理器从主机的SQ队列取得NVMe命令;
(2)NVMe协议处理器处理NVMe命令;
3.命令完成
(1)NVMe协议处理器向完成队列(Completion Queue,CQ)队尾写入数据,指示命令处理完成;
(2)NVMe协议处理器生成MSI-X中断,指示主机处理;
(3)主机处理CQ中的数据;
(4)主机写入更新后的完成队列CQ的头指针,作为Doorbell通知NVMe协议处理器。
现有技术中主要以全硬件方式实现对NVMe协议的处理,当NVMe协议升级时,或者对NVMe协议进行扩展时,例如增加功能,需要修改硬件设计才能实现对升级或扩展后的NVMe协议的处理。
如果用全硬件方式实现NVMe协议,假设需要支持三条NVMe命令A,B和C,并实现了对应的命令处理功能。但是,如果NVMe协议升级,需要支持5条命令,那么多出来的两条命令D和E就得通过增加硬件电路的方式来实现。而对于ASIC(Application SpecificIntegrated Circuit,专用集成电路),增加硬件电路就需要重新进行前后端设计、仿真验证,会带来高昂的研发成本。
发明内容
本发明的目的是为解决目前采用全硬件方式实现NVMe协议处理器不能很好地适应NVMe协议升级或扩展的技术问题。
为了实现上述发明目的,一方面,本发明提供了一种NVMe协议处理器,所述NVMe协议处理器第一种实现方案如下:
包括:CPU子系统、共享存储器、Gather DMA模块、Scatter DMA模块、主机存取模块和PCIe控制器;
所述CPU子系统包括一个或多个CPU,所述CPU耦合到所述共享存储器;
所述Gather DMA模块与所述共享存储器连接,用于将外部主机的数据通过所述PCIe控制器搬移到所述共享存储器;
所述Scatter DMA模块与所述共享存储器连接,用于将所述共享存储器的数据通过所述PCIe控制器搬移到外部主机;
所述主机存取模块通过所述PCIe控制器耦合在所述共享存储器和外部主机之间,以使外部主机访问所述共享存储器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京忆芯科技有限公司,未经北京忆芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810929604.2/2.html,转载请声明来源钻瓜专利网。