一种NVMe提交队列控制装置及方法制造方法及图纸

技术编号:27974497 阅读:29 留言:0更新日期:2021-04-06 14:08
本申请公开了一种NVMe提交队列控制装置及方法,该装置包括:提交队列命令状态检测电路,用于检测各提交队列当前状态是否为非空;一级共享缓存管理电路,用于为当前状态为非空的不同所述提交对列在同一一级共享缓存中分配对应的一级缓存单元;提交对列命令获取电路,用于向主机端发送提交对列命令获取请求,以便NVMe控制器将所述主机端返回的提交队列命令写入对应的所述一级缓存单元。这样,能够提高提交队列缓存的利用率及节约缓存资源,并减小关于提交队列缓存硬件电路布局布线的难度。

【技术实现步骤摘要】
一种NVMe提交队列控制装置及方法
本申请涉及存储
,特别涉及一种NVMe提交队列控制装置及方法。
技术介绍
随着云计算,人工智能和物联网的高速发展,终端产品和服务器对存储的需求越来越大,在此过程中,NVMe(即Non-VolatileMemoryexpress,)SSD(即SolidStateDisk,固态硬盘)以其低延迟、低功耗、高带宽等诸多优势也在存储
获得越来越多的关注,也成为了存储设备发展的新风向。现有技术中,NVMe不同的SQ(即SubmissionQueue,提交队列)具有不同的SQSRAM(即StaticRandom-AccessMemory,静态随机存取存储器)缓存资源,这在一定程度上,特别是当NVMe支持的SQ数量较多时,造成SQSRAM资源浪费,增大了芯片的面积,同时数量很多的SQSRAM造成后端硬件电路布局布线的难度增大,时序收敛困难。
技术实现思路
有鉴于此,本申请的目的在于提供一种NVMe提交队列控制装置及方法,能够提高提交队列缓存的利用率及节约缓存资源,并减小关于提交队列缓存硬件电路布局布线的难度,便于时序收敛。其具体方案如下:第一方面,本申请公开了一种NVMe提交队列控制装置,包括:提交队列命令状态检测电路,用于检测各提交队列当前状态是否为非空;一级共享缓存管理电路,用于为当前状态为非空的不同所述提交对列在同一一级共享缓存中分配对应的一级缓存单元;提交对列命令获取电路,用于向主机端发送提交对列命令获取请求,以便NVMe控制器将所述主机端返回的提交队列命令写入对应的所述一级缓存单元。可选的,所述装置还包括:提交队列使能电路,用于使能所述提交队列;提交队列暂停电路,用于暂停获取所述提交队列的所述提交队列命令。可选的,所述一级共享缓存管理电路,具体用于:若任一所述提交对列非空、被使能、且没有被暂停,则为所述提交对列在所述一级共享缓存中分配对应的一级缓存单元。可选的,所述装置还包括:PRP检测电路,用于检测所述提交队列在主机端对应的存储器是否支持物理非连续功能,若所述存储器支持所述物理非连续功能,则检测当前主机端的提交对列命令的物理地址是否可用,若可用,则将该物理地址作为目标物理地址,若不可用,则在向主机端读取提交队列命令前向主机端发送获取提交队列PRP数据的请求,然后对返回的PRP数据进行解析,以得到可用的提交队列命令的物理地址,得到所述目标物理地址。可选的,所述提交对列命令获取电路,具体用于:基于所述目标物理地址向所述主机端发送提交对列命令获取请求。可选的,所述装置还包括一级共享缓存检测电路和二级共享缓存管理电路,其中,所述一级共享缓存检测电路,用于检测所述一级共享缓存是否为非空,若所述一级共享缓存为非空,则向所述二级共享缓存管理电路发送获取二级共享缓存单元的请求;相应的,所述二级共享缓存管理电路,用于分配所述二级共享缓存单元。可选的,所述装置还包括:提交对列命令写缓存电路,用于将所述一级共享缓存中的提交队列命令写入对应的所述二级共享缓存单元。可选的,所述装置还包括:提交队列命令检测电路,用于对所述一级共享缓存中的提交队列命令进行合法性检测。可选的,所述装置还包括:命令检测结果写缓存电路,用于将所述提交队列命令的检测结果写入检测结果共享缓存中。第二方面,本申请公开了一种NVMe提交队列控制方法,包括:通过提交队列命令状态检测电路检测各提交队列当前状态是否为非空;通过一级共享缓存管理电路为当前状态为非空的不同所述提交对列在同一一级共享缓存中分配对应的一级缓存单元;通过提交对列命令获取电路向主机端发送提交对列命令获取请求,以便NVMe控制器将所述主机端返回的提交队列命令写入对应的所述一级缓存单元。可见,本申请公开的NVMe提交队列控制装置,包括:提交队列命令状态检测电路,用于检测各提交队列当前状态是否为非空;一级共享缓存管理电路,用于为当前状态为非空的不同所述提交对列在同一一级共享缓存中分配对应的一级缓存单元;提交对列命令获取电路,用于向主机端发送提交对列命令获取请求,以便NVMe控制器将所述主机端返回的提交队列命令写入对应的所述一级缓存单元。也即,本申请为不同的提交队列提供同一一级共享缓存,将不同的提交队列的提交队列命令写入该一级共享缓存,这样,能够提高提交队列缓存的利用率及节约缓存资源,并减小关于提交队列缓存硬件电路布局布线的难度。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请公开的一种NVMe提交队列控制装置结构示意图;图2为本申请公开的一种具体的NVMe提交队列控制装置结构示意图;图3为本申请公开的SQ命令自动获取至一级SQ缓存的第一状态机操作流程图;图4为本申请公开的一种具体的NVMe提交队列控制装置结构示意图;图5为本申请公开的一种具体的SQ命令自动获取至二级缓存的硬件电路示意图;图6为本申请公开的一种SQ命令自动获取至二级缓存的第二状态机操作流程图;图7为本申请公开的一种NVMe提交队列控制方法流程图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。现有技术中,NVMe不同的SQ具有不同的SQSRAM缓存资源,这在一定程度上,特别是当NVMe支持的SQ数量较多时,造成SQSRAM资源浪费,增大了芯片的面积,同时数量很多的SQSRAM造成后端硬件电路布局布线的难度增大,时序收敛困难。为此,本申请实施例公开了一种NVMe提交队列控制方案,能够提高提交队列缓存的利用率及节约缓存资源,并减小关于提交队列缓存硬件电路布局布线的难度。参见图1所示,本申请实施例公开了一种NVMe提交队列控制装置,包括:提交队列命令状态检测电路11,用于检测各提交队列当前状态是否为非空;一级共享缓存管理电路12,用于为当前状态为非空的不同所述提交对列在同一一级共享缓存中分配对应的一级缓存单元;提交对列命令获取电路13,用于向主机端发送提交对列命令获取请求,以便NVMe控制器将所述主机端返回的提交队列命令写入对应的所述一级缓存单元。在具体的实施方式中,本实施例可以根据所述一级缓存单元的起始地址写入对应的所述一级缓存单元。可见,本申请实施例公开的NVMe提交队列控制装置,包括:提交队列命令状态检本文档来自技高网...

【技术保护点】
1.一种NVMe提交队列控制装置,其特征在于,包括:/n提交队列命令状态检测电路,用于检测各提交队列当前状态是否为非空;/n一级共享缓存管理电路,用于为当前状态为非空的不同所述提交对列在同一一级共享缓存中分配对应的一级缓存单元;/n提交对列命令获取电路,用于向主机端发送提交对列命令获取请求,以便NVMe控制器将所述主机端返回的提交队列命令写入对应的所述一级缓存单元。/n

【技术特征摘要】
1.一种NVMe提交队列控制装置,其特征在于,包括:
提交队列命令状态检测电路,用于检测各提交队列当前状态是否为非空;
一级共享缓存管理电路,用于为当前状态为非空的不同所述提交对列在同一一级共享缓存中分配对应的一级缓存单元;
提交对列命令获取电路,用于向主机端发送提交对列命令获取请求,以便NVMe控制器将所述主机端返回的提交队列命令写入对应的所述一级缓存单元。


2.根据权利要求1所述的NVMe提交队列控制装置,其特征在于,所述装置还包括:
提交队列使能电路,用于使能所述提交队列;
提交队列暂停电路,用于暂停获取所述提交队列的所述提交队列命令。


3.根据权利要求2所述的NVMe提交队列控制装置,其特征在于,所述一级共享缓存管理电路,具体用于:
若任一所述提交对列非空、被使能、且没有被暂停,则为所述提交对列在所述一级共享缓存中分配对应的一级缓存单元。


4.根据权利要求1所述的NVMe提交队列控制装置,其特征在于,所述装置还包括:
PRP检测电路,用于检测所述提交队列在主机端对应的存储器是否支持物理非连续功能,若所述存储器支持所述物理非连续功能,则检测当前主机端的提交对列命令的物理地址是否可用,若可用,则将该物理地址作为目标物理地址,若不可用,则在向主机端读取提交队列命令前向主机端发送获取提交队列PRP数据的请求,然后对返回的PRP数据进行解析,以得到可用的提交队列命令的物理地址,得到所述目标物理地址。


5.根据权利要求4所述的NVMe提交队列控制装置,其特征在于,所述提交对列命令获取电路...

【专利技术属性】
技术研发人员:刘海亮施楠刘洋黄泰然
申请(专利权)人:江苏国科微电子有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1