一种NVMe命令处理器及其处理方法技术

技术编号:29583935 阅读:22 留言:0更新日期:2021-08-06 19:42
本发明专利技术的实施例提供了一种NVMe命令处理器及其处理方法,NVMe命令处理器包括DMA命令存储组件、DMA命令控制组件、DMA组件和DMA命令完成组件;DMA命令存储组件与CPU组件连接,以存储CPU组件下发的第一合并命令,第一合并命令为将DMA命令与固件命令合并得到的命令;DMA命令控制组件与DMA命令存储组件连接;DMA组件分别与DMA命令控制组件和DMA命令完成组件连接;DMA命令完成组件与DMA命令存储组件连接。将CPU组件下发的固件命令数据结构和DMA命令数据结构合并,节省了多次读取与多个DMA命令对应的固件命令的时间,提高了NVMe命令的处理速度。

【技术实现步骤摘要】
一种NVMe命令处理器及其处理方法
本专利技术涉及数据存储领域,具体而言,涉及一种NVMe命令处理器及其处理方法。
技术介绍
随着信息技术的飞速发展,云计算和人工智能等领域的技术更是有了进一步的突破,其中,在数据信息存储领域,固态硬盘(SolidStateDisk,简称SSD)拥有比机械硬盘更快的读写速度,现在大多数机器运用的是串行总线标准(SerialATA,简称SATA),实际最高传输速度约为600MB/s,而支持高速串行计算机扩展总线标准(PeripheralComponentInterconnectExpress,简称PCIe),实际传输速度会超过1000MB/s,而非易失性存储器协议(Non-VolatileMemoryExpress,简称NVMe)是为PCIe制定的标准接口协议。相应地,支持NVMe协议的SSD更是以其低延迟、低功耗和高带宽等诸多优势在数据存储领域也获得越来越多的关注,成为存储设备发展的新风向。在NVMe协议下,通常是根据提交队列(SubmissionQueue,简称SQ)来存放主机对SSD的操作命令,多采用NVMe固件命令队列和固件直接存储器访问(DirectMemoryAccess,简称DMA)命令队列的方式进行NVMe命令的处理,或者是将NVMe命令分成写数据搬移的DMA命令和负责读数据搬移的DMA命令。若要实现对NVMe命令的处理,需要多次读取与多个DMA命令对应的固件命令,无形中增加了NVMe命令的处理时间,以及需要针对多个DMA命令队列进行读写命令区分,操作复杂,降低了DMA命令的利用效率。
技术实现思路
本专利技术的目的包括,例如,提供了一种NVMe命令处理器及其处理方法,其能够至少解决上述部分问题。第一方面,本申请实施例提供了一种NVMe命令处理器,用于处理CPU组件下发的DMA命令队列,所述NVMe命令处理器包括:DMA命令存储组件、DMA命令控制组件、DMA组件和DMA命令完成组件;所述DMA命令存储组件用于与所述CPU组件连接,用于存储所述CPU组件下发的第一合并命令以及DMA命令完成条目,其中,所述第一合并命令为将DMA命令与固件命令合并得到的命令;所述DMA命令控制组件与所述DMA命令存储组件连接,用于读取所述DMA命令存储组件中的所述第一合并命令并解析得到DMA命令;所述DMA组件分别与所述DMA命令控制组件和所述DMA命令完成组件连接,用于解析所述DMA命令并执行对应的动作;所述DMA命令完成组件与所述DMA命令存储组件连接,用于存储DMA命令完成条目,并将所述DMA命令完成条目写入所述DMA命令存储组件。在一种可能的实现方式中,所述NVMe命令处理器还包括DMA命令请求仲裁组件和DMA命令完成仲裁组件;所述DMA命令存储组件存储至少一个DMA命令队列,所述DMA命令队列包括读命令存储区和写命令存储区,所述读命令存储区用于存储DMA读取命令,所述写命令存储区用于存储DMA写入命令;在所述DMA命令存储组件存储有多个DMA命令队列的情形下,所述DMA命令请求仲裁组件分别与多个所述DMA组件和所述DMA命令控制组件连接,用于针对多个同时发起的DMA请求进行仲裁,其中,DMA请求用于请求读取所述DMA命令控制组件内的DMA命令;所述DMA命令完成仲裁组件分别与多个所述DMA组件和所述DMA命令完成组件连接,用于针对多个同时完成的DMA命令访问所述DMA命令完成组件的访问进行仲裁。在一种可能的实现方式中,所述DMA命令请求仲裁组件和所述DMA命令完成仲裁组件均为轮循仲裁组件。在一种可能的实现方式中,所述NVMe命令处理器还包括DMA命令寄存器组件;所述DMA命令寄存器组件用于与所述CPU组件连接,用于通过CPU寄存器配置总线进行配置;所述DMA命令寄存器组件还分别与所述DMA命令控制组件和所述DMA命令完成组件连接,用于更新与DMA命令对应的读指针寄存器和写指针寄存器。在一种可能的实现方式中,所述NVMe命令处理器还包括DMA引擎,用于执行DMA命令的搬移。第二方面,本申请实施例提供了一种NVMe命令处理方法,应用于与CPU组件连接的NVMe命令处理器,处理器包括:DMA命令存储组件、DMA命令控制组件、DMA组件和DMA命令完成组件,所述方法包括:所述DMA命令存储组件存储所述CPU组件下发的第一合并命令,以及DMA命令完成条目,其中,所述第一合并命令为将DMA命令与固件命令合并得到的命令;所述DMA命令控制组件读取所述DMA命令存储组件中的所述第一合并命令并解析得到DMA命令;所述DMA组件解析所述DMA命令并执行对应的动作;所述DMA命令完成组件存储DMA命令完成条目,并将所述DMA命令完成条目写入所述DMA命令存储组件。第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括设备本体、存储器及处理器,所述存储器存储有计算机程序,所述计算机设备包括第二方面的NVMe命令处理方法。第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该指令用于执行第二方面的方法。本专利技术实施例的有益效果包括,例如:本申请实施例提供的NVMe命令处理器,通过DMA命令存储组件用于与CPU组件连接,存储CPU组件下发的第一合并命令以及DMA命令完成条目,其中,第一合并命令为将DMA命令与固件命令合并得到的命令,再根据DMA命令控制组件与DMA命令存储组件连接,用于读取DMA命令存储组件中的所述第一合并命令并解析得到DMA命令,完成对DMA命令的处理,通过将CPU组件下发的固件命令数据结构和DMA命令数据结构进行合并,省去了多次读取与多个DMA命令对应的固件命令的时间,提高了NVMe命令的处理速度。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请实施例提供的一种计算机设备的结构示意图;图2为本申请实施例提供的一种NVMe命令处理器的结构示意图;图3为本申请实施例提供的另一种NVMe命令处理器的结构示意图;图4为本申请实施例提供的一种NVMe命令处理方法的流程图。图标:计算机设备100;设备本体110;存储器120;处理器130;NVMe命令处理器200;DMA命令存储组件210;DMA命令控制组件220;DMA命令请求仲裁组件230;DMA组件240;DMA命令完成仲裁组件250;DMA命令完成组件260;DMA命令寄存器组件270;CPU组件300。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图本文档来自技高网
...

【技术保护点】
1.一种NVMe命令处理器,其特征在于,用于处理CPU组件下发的DMA命令队列,所述NVMe命令处理器包括:DMA命令存储组件、DMA命令控制组件、DMA组件和DMA命令完成组件;/n所述DMA命令存储组件用于与所述CPU组件连接,用于存储所述CPU组件下发的第一合并命令以及DMA命令完成条目,其中,所述第一合并命令为将DMA命令与固件命令合并得到的命令;/n所述DMA命令控制组件与所述DMA命令存储组件连接,用于读取所述DMA命令存储组件中的所述第一合并命令并解析得到DMA命令;/n所述DMA组件分别与所述DMA命令控制组件和所述DMA命令完成组件连接,用于解析所述DMA命令并执行对应的动作;/n所述DMA命令完成组件与所述DMA命令存储组件连接,用于存储DMA命令完成条目,并将所述DMA命令完成条目写入所述DMA命令存储组件。/n

【技术特征摘要】
1.一种NVMe命令处理器,其特征在于,用于处理CPU组件下发的DMA命令队列,所述NVMe命令处理器包括:DMA命令存储组件、DMA命令控制组件、DMA组件和DMA命令完成组件;
所述DMA命令存储组件用于与所述CPU组件连接,用于存储所述CPU组件下发的第一合并命令以及DMA命令完成条目,其中,所述第一合并命令为将DMA命令与固件命令合并得到的命令;
所述DMA命令控制组件与所述DMA命令存储组件连接,用于读取所述DMA命令存储组件中的所述第一合并命令并解析得到DMA命令;
所述DMA组件分别与所述DMA命令控制组件和所述DMA命令完成组件连接,用于解析所述DMA命令并执行对应的动作;
所述DMA命令完成组件与所述DMA命令存储组件连接,用于存储DMA命令完成条目,并将所述DMA命令完成条目写入所述DMA命令存储组件。


2.根据权利要求1所述的NVMe命令处理器,其特征在于,所述NVMe命令处理器还包括DMA命令请求仲裁组件和DMA命令完成仲裁组件;
所述DMA命令存储组件存储至少一个DMA命令队列,所述DMA命令队列包括读命令存储区和写命令存储区,所述读命令存储区用于存储DMA读取命令,所述写命令存储区用于存储DMA写入命令;
在所述DMA命令存储组件存储有多个DMA命令队列的情形下,所述DMA命令请求仲裁组件分别与多个所述DMA组件和所述DMA命令控制组件连接,用于针对多个同时发起的DMA请求进行仲裁,其中,DMA请求用于请求读取所述DMA命令控制组件内的DMA命令;
所述DMA命令完成仲裁组件分别与多个所述DMA组件和所述DMA命令完成组件连接,用于针对多个同时完成的DMA命令访问所述DMA命令完成组件的访问进行仲裁。


3.根据权利要求2所述的NVMe命令处理器,其特征在于,所述DMA命令请求仲裁组件和所述DMA命令完成仲裁组件均为轮循仲裁组件。


4.根据权利要求1所述的NVMe命令处理器,其特征在于,所述NVMe命令处理器还包括DMA命令寄存器组件;
所述DMA命令寄存器组件用于与所述CPU组件连接,用于通过CPU寄存器配置总线进行配置;
所述DMA命令寄存器组件还分别与所述DMA命令控制组件和所述DMA命令完成组件连接,用于更新与DMA命令对应的读指针寄存器和写指针寄存器。


5.根据权利要求1所述的NVMe命令处理器,其特征在于,所述NVMe命令处理器还包括DMA引擎,用于执行DMA命令的搬移。


6.一种NVMe命令处理方法,其特征在于,应用于与CPU组件连接的NVMe命令处理器,处理器包括:DMA命令存储组件、DMA命令控制组件、DMA组件和DMA命令完成组件,所述方法包括:
所述DMA命令存储组件存储所述CPU组件下发的第一合并命令,以及DMA命令完成条目,...

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

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

1