命令处理方法及命令处理装置制造方法及图纸

技术编号:31082484 阅读:19 留言:0更新日期:2021-12-01 12:29
本发明专利技术公开了一种命令处理方法及命令处理装置。其中,该命令处理方法包括:获取提交队列SQ命令;将SQ命令写入第一级缓存,并向标签管理组件申请固件命令标签ID,其中,固件命令标签ID为SQ命令的索引标识,第一级缓存位于NVMe控制器内部的SRAM;判断标签管理组件在当前时间点是否存在可用的固件命令标签ID;若当前时间点存在可用的固件命令标签ID,则接收固件命令标签ID,并采用硬件电路将SQ命令写入至第二级缓存,将SQ命令以及产生的固件命令信息写入至固件命令存储SRAM,其中,第二级缓存位于固态硬盘SSD控制器的片上缓存一,固件命令存储SRAM位于NVMe控制器内部。存储SRAM位于NVMe控制器内部。存储SRAM位于NVMe控制器内部。

【技术实现步骤摘要】
命令处理方法及命令处理装置


[0001]本专利技术涉及信息处理
,具体而言,涉及一种命令处理方法及命令处理装置。

技术介绍

[0002]相关技术中,随着云计算、人工智能和物联网等技术的快速发展,终端产品和服务器对存储的需求越来越大,在此过程中,NVMe(Non

Volatile Memory express)固态硬盘(Solid State Disk,SSD)以其低延迟、低功耗、高带宽等诸多优势获得存储界越来越多的关注,助力存储领域的快速发展。
[0003]当前,通常将NVMe控制器的命令执行方式分为两种,第一种,先由处理器CPU下发固件命令队列,再由CPU下发DMA命令队列,原因是由于命令数据结构需要的信息越来越多,需要将固件命令和DMA命令解耦合,以便于设计的开发和移植。第二种,通过NVMe控制器将固件命令数据结构与DMA数据结构耦合在一起,使得CPU不需要下发固件命令而直接下发DMA命令队列,省去了CPU下发固件命令队列的过程,从而在一定程度上提高IO命令的执行效率。
[0004]但是这两种方案都存在明显的缺陷,其中,第一种执行方式,虽然可将固件命令和DMA命令解耦合,以便于设计的开发和移植,也便于固件的设计,但是NVMe控制器需要先加载固件命令,然后再执行DMA命令,增大了IO命令处理的时延,会降低NVMe IO命令的执行性能。而第二种执行方式,虽然CPU不需要下发固件命令而直接下发DMA命令队列,省去了CPU下发固件命令队列的过程,但由于数据结构简单,不利于将该方法应用于支持多功能、多命名空间、端到端数据保护等相对功能更丰富的NVMe控制器,同时,该第二种执行也不利于设计的扩展和移植。
[0005]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0006]本专利技术实施例提供了一种命令处理方法及命令处理装置,以至少解决相关技术中将固件命令和DMA命令解耦合,增大了命令处理时延,导致NVMe控制的命令执行性能降低的技术问题。
[0007]根据本专利技术实施例的一个方面,提供了一种命令处理方法,包括:获取提交队列SQ命令;将所述SQ命令写入第一级缓存,并向标签管理组件申请固件命令标签ID,其中,所述固件命令标签ID为所述SQ命令的索引标识,所述第一级缓存位于NVMe控制器内部的SRAM;判断所述标签管理组件在当前时间点是否存在可用的所述固件命令标签ID;若当前时间点存在可用的所述固件命令标签ID,则接收所述固件命令标签ID,并采用硬件电路将所述SQ命令写入至第二级缓存,将所述SQ命令以及产生的固件命令信息写入至固件命令存储SRAM,其中,所述第二级缓存位于固态硬盘SSD控制器的片上缓存一,所述固件命令存储SRAM位于NVMe控制器内部。
[0008]通过硬件电路将SQ命令及产生的固件命令信息直接写入至固件命令存储SRAM,同时采用硬件电路将SQ命令写入至第二级缓存,将固件命令标签ID与SRAM的地址进行关联,便于DMA命令读写访问该SRAM,可以使CPU不用下发固件命令队列,直接下发DMA命令队列即可执行IO读写命令,减小命令处理时延,提高命令读写带宽,提高了NVMe SQ命令的执行速度。
[0009]可选地,在将所述SQ命令以及产生的固件命令信息写入至固件命令存储SRAM之后,所述处理方法还包括:通过固件将所述SQ命令的存储完成条目写入至固态硬盘SSD控制器的片上缓存二或者写入至NVMe控制器内部的SRAM中,其中,所述存储完成条目的条目信息包括:查询SQ命令的检测结果、空间存储状态以及标签ID的值。
[0010]可选地,所述处理方法还包括:在接收到SQ的标签请求后,判断当前时刻是否有可用的硬件标签ID;若当前时刻有可用的硬件标签ID,则控制状态机跳转至审查标签状态,其中,在所述审查标签状态下,分配给所述标签请求一个硬件标签ID;在获取到硬件标签ID后,控制所述状态机跳转至审查标签完成状态,根据所述SQ命令计算需要传输的目标数据的数据长度;基于所述固件命令标签ID,将所述数据长度写入到NVMe控制器的固件命令存储SRAM。
[0011]可选地,根据所述SQ命令计算需要传输的目标数据的数据长度的步骤,包括:确定所述SQ命令的命令数据长度以及逻辑区块地址的地址占用空间;基于所述SQ命令的命令数据长度以及逻辑区块地址的地址占用空间,计算需要传输的目标数据的数据长度。
[0012]可选地,基于所述固件命令标签ID,将所述数据长度写入到NVMe控制器的固件命令存储SRAM的步骤,包括:控制所述状态机进入固件命令初始化状态;在所述固件命令初始化状态下,对所述固件命令标签ID进行标签ID合法性检查;若合法性检查合格,则以所述固件命令标签ID为SRAM地址索引,将SQ命令信息写入至NVMe控制器内部的固件命令存储SRAM中。
[0013]可选地,所述处理方法还包括:接收直接存储器存取DMA命令,其中,所述DMA命令的数据结构包括所述SQ命令的类型、分散聚合表SGL数据块结构;所述DMA命令根据所述SQ命令的类型和所述SGL数据块结构执行所述SQ命令。
[0014]可选地,所述固件命令信息至少包括:命名空间信息、端到端数据保护信息。
[0015]根据本专利技术实施例的另一方面,还提供了一种命令处理方法,包括:接收DMA命令,其中,所述DMA命令的数据结构包括SQ命令的类型、分散聚合表SGL数据块结构,所述SQ命令包含固件命令标签ID,所述固件命令标签ID为所述SQ命令的索引标识;所述DMA命令根据所述SQ命令的类型和所述SGL数据块结构执行所述SQ命令。
[0016]根据本专利技术实施例的另一方面,还提供了一种命令处理装置,包括:获取单元,用于获取提交队列SQ命令;申请单元,用于将所述SQ命令写入第一级缓存,并向标签管理组件申请固件命令标签ID,其中,所述固件命令标签ID为所述SQ命令的索引标识,所述第一级缓存位于NVMe控制器内部的SRAM;判断单元,用于判断所述标签管理组件在当前时间点是否存在可用的所述固件命令标签ID;写入单元,用于在当前时间点存在可用的所述固件命令标签ID,则接收所述固件命令标签ID,并采用硬件电路将所述SQ命令写入至第二级缓存,将所述SQ命令以及产生的固件命令信息写入至固件命令存储SRAM,其中,所述第二级缓存位于固态硬盘SSD控制器的片上缓存一,所述固件命令存储SRAM位于NVMe控制器内部。
[0017]可选地,所述命令处理装置还包括:第一写入模块,用于在将所述SQ命令以及产生的固件命令信息写入至固件命令存储SRAM之后,通过固件将所述SQ命令的存储完成条目写入至固态硬盘SSD控制器的片上缓存二或者写入至NVMe控制器内部的SRAM中,其中,所述存储完成条目的条目信息包括:查询SQ命令的检测结果、空间存储状态以及标签ID的值。
[0018]可选地,所述命令处理装置还包括:第一判断模块,用于在接收到SQ的标签请求后,判断当前时刻是否有可用的硬件标签ID;第一控制模块,用于在当前本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种命令处理方法,其特征在于,包括:获取提交队列SQ命令;将所述SQ命令写入第一级缓存,并向标签管理组件申请固件命令标签ID,其中,所述固件命令标签ID为所述SQ命令的索引标识,所述第一级缓存位于NVMe控制器内部的SRAM;判断所述标签管理组件在当前时间点是否存在可用的所述固件命令标签ID;若当前时间点存在可用的所述固件命令标签ID,则接收所述固件命令标签ID,并采用硬件电路将所述SQ命令写入至第二级缓存,将所述SQ命令以及产生的固件命令信息写入至固件命令存储SRAM,其中,所述第二级缓存位于固态硬盘SSD控制器的片上缓存一,所述固件命令存储SRAM位于NVMe控制器内部。2.根据权利要求1所述的处理方法,其特征在于,在将所述SQ命令以及产生的固件命令信息写入至固件命令存储SRAM之后,所述处理方法还包括:通过固件将所述SQ命令的存储完成条目写入至固态硬盘SSD控制器的片上缓存二或者写入至NVMe控制器内部的SRAM中,其中,所述存储完成条目的条目信息包括:查询SQ命令的检测结果、空间存储状态以及标签ID的值。3.根据权利要求1所述的处理方法,其特征在于,所述处理方法还包括:在接收到SQ的标签请求后,判断当前时刻是否有可用的硬件标签ID;若当前时刻有可用的硬件标签ID,则控制状态机跳转至审查标签状态,其中,在所述审查标签状态下,分配给所述标签请求一个硬件标签ID;在获取到硬件标签ID后,控制所述状态机跳转至审查标签完成状态,根据所述SQ命令计算需要传输的目标数据的数据长度;基于所述固件命令标签ID,将所述数据长度写入到NVMe控制器的固件命令存储SRAM。4.根据权利要求3所述的处理方法,其特征在于,根据所述SQ命令计算需要传输的目标数据的数据长度的步骤,包括:确定所述SQ命令的命令数据长度以及逻辑区块地址的地址占用空间;基于所述SQ命令的命令数据长度以及逻辑区块地址的地址占用空间,计算需要传输的目标数据的数据长度。5.根据权利要求3所述的处理方法,其特征在于,基于所述固件命令标签ID,将所述数据长度写入到NVMe控制器的固件命令存储SRAM的步骤,包括:控制所述状态机进入固件命令初始化状态;在所述固件...

【专利技术属性】
技术研发人员:刘海亮刘洋黄泰然陈黎明
申请(专利权)人:湖南国科微电子股份有限公司
类型:发明
国别省市:

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

1