一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

控制信息的处理方法、装置以及计算机可读存储介质与流程

2022-04-13 17:11:10 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,具体而言,涉及一种控制信息的处理方法、装置以及计算机可读存储介质。


背景技术:

2.非易失性内存主机控制器接口规范(non-volatile memory express,简称为nvme),是一个逻辑设备接口规范。它是与高级主机控制器接口(advanced host controller interface,简称为ahci)类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过pci-express(pcie)总线连接的非易失性内存介质。其中,nvme使用队列方式和主机(cpu)进行交互,通过prp/sgl等数据格式传递数据。数据粒度可以分为两种4b/1b。
3.对于数据读写方法而言,现有的技术都只是描述了nvme的sq/cq的实现,通过缓存一致互联协议或者寄存器触发中断的模式和固态硬盘(solid state disk,简称为ssd)控制器交互。而且,在现有技术中,需要使用verilog/vhdl等语言描述相关模块或者相关功能,并生成相关电路,代码写作/验证周期较长,且无法升级。使用verilog/vhdl等语言描写只能实现nvme的部分功能,复杂部分仍需要片上cpu参与,无形中增加了软硬件开销,增加了功耗。另外,使用verilog/vhdl等语言描写的电路一旦出现bug,极难定位,且修复过程耗资巨大。
4.针对上述相关技术中通过在硬件上支持缓存一致互联协议或者寄存器触发中断的模式和固态硬盘控制器交互实现数据读写方法,导致开发工作量以及验证工作量较大的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种控制信息的处理方法、装置以及计算机可读存储介质,以至少解决相关技术中通过在硬件上支持缓存一致互联协议或者寄存器触发中断的模式和固态硬盘控制器交互实现数据读写方法,导致开发工作量以及验证工作量较大的技术问题。
6.根据本发明实施例的一个方面,提供了一种控制信息的处理方法,包括:确定控制信息以及对所述控制信息执行读写操作的直接内存存取通道;控制所述直接内存存取通道对所述控制信息进行处理。
7.可选地,所述控制信息为命令,所述直接内存存取通道为第一直接内存存取通道,控制所述直接内存存取通道对所述控制信息进行处理,包括:确定所述命令对应的环形队列处于空闲状态;控制所述第一直接内存存取通道执行读写操作,将所述命令写入所述命令对应的环形队列。
8.可选地,所述控制信息为物理区域页和/或分散聚合表,所述直接内存存取通道为第二直接内存存取通道,控制所述直接内存存取通道对所述控制信息进行处理,包括:依据
所述物理区域页和/或分散聚合表对应的环形队列的空满信息,确定待处理的物理区域页和/或分散聚合表;控制所述第二直接内存存取通道执行读写操作,将所述待处理的物理区域页和/或分散聚合表写入所述物理区域页和/或分散聚合表对应的环形队列。
9.可选地,所述控制信息为物理区域页和/或分散聚合表,所述直接内存存取通道为第三直接内存存取通道,控制所述直接内存存取通道对所述控制信息进行处理,包括:依据所述物理区域页和/或分散聚合表设置所述第三直接内存存取通道;控制所述第三直接内存存取通道执行读写操作,将所述物理区域页和/或分散聚合表写入片上缓冲区。
10.可选地,在确定控制信息以及对所述控制信息执行读写操作的直接内存存取通道之前,还包括:依据缓存一致性的处理方式,对待更新到所述控制信息对应的环形队列中的所述控制信息进行预处理。
11.根据本发明实施例的另一方面,还提供了一种控制信息的处理装置,包括:确定模块,用于确定控制信息以及对所述控制信息执行读写操作的直接内存存取通道;控制模块,用于控制所述直接内存存取通道对所述控制信息进行处理。
12.可选地,所述控制信息为命令,所述直接内存存取通道为第一直接内存存取通道,所述控制模块包括:第一确定单元,用于确定所述命令对应的环形队列处于空闲状态;第一控制单元,用于控制所述第一直接内存存取通道执行读写操作,将所述命令写入所述命令对应的环形队列。
13.可选地,所述控制信息为物理区域页和/或分散聚合表,所述直接内存存取通道为第二直接内存存取通道,所述控制模块包括:第二确定单元,用于依据所述物理区域页和/或分散聚合表对应的环形队列的空满信息,确定待处理的物理区域页和/或分散聚合表;第二控制单元,用于控制所述第二直接内存存取通道执行读写操作,将所述待处理的物理区域页和/或分散聚合表写入所述物理区域页和/或分散聚合表对应的环形队列。
14.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的控制信息的处理方法。
15.根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的控制信息的处理方法。
16.在本发明实施例中,采用确定控制信息以及对控制信息执行读写操作的直接内存存取通道;控制直接内存存取通道对控制信息进行处理,通过控制信息对应的直接内存存取通道对该控制信息进行处理,以实现nvme队列管理以及数据搬移,达到了全软件实现nvme的目的,从而实现了有效的减少verilog/vhdl开发工作量和验证工作量的技术效果,进而解决了相关技术中通过在硬件上支持缓存一致互联协议或者寄存器触发中断的模式和固态硬盘控制器交互实现数据读写方法,导致开发工作量以及验证工作量较大的技术问题。
附图说明
17.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
18.图1是根据本发明实施例的控制信息的处理方法的流程图;
19.图2是根据本发明可选实施例的pcie dma write的流程图;
20.图3是根据本发明可选实施例的pcie dma read的流程图;
21.图4是根据本发明可选实施例的pcie配置的示意图;
22.图5是根据本发明可选实施例的channel对应的配置sram的数据配置格式的示意图;
23.图6是根据本发明可选实施例的pcie下发nvme的doorbell的流程图;
24.图7是根据本发明可选实施例的controller获取相关的command的流程图;
25.图8是根据本发明可选实施例的controller获取相关prp/sgl信息的流程图;
26.图9是根据本发明可选实施例的controller获取相关data的流程图;
27.图10是根据本发明实施例的控制信息的处理装置的示意图。
具体实施方式
28.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
29.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
30.实施例1
31.根据本发明实施例,提供了一种控制信息的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
32.图1是根据本发明实施例的控制信息的处理方法的流程图,如图1所示,该控制信息的处理方法包括如下步骤:
33.步骤s102,确定控制信息以及对控制信息执行读写操作的直接内存存取通道;
34.步骤s104,控制直接内存存取通道对控制信息进行处理。
35.上述直接内存存取通道可以实现对控制信息的读写操作,其中,不同的直接内存存取通道可以对不同的控制信息进行读操作或者写操作。上述控制信息包括但不限于命令、物理区域页以及分散聚合表等。
36.在一种可选的实施方式中,上述写操作可以采用以下方式实现:控制直接内存存取通道对本地存储器发送读操作;将获取的待处理的控制信息写入远程目标存储器。上述读操作可以采用以下方式实现:控制直接内存存取通道对远程目标存储器发送读操作,将
获取的待处理的控制信息写入本地存储器。
37.需要说明的是,本地存储器对于不同的控制信息设置有不同的环形队列,以便于对控制信息进行分类处理。
38.可选地,控制直接内存存取通道对控制信息进行处理,可以使用控制信息对应的直接内存存取通道对该控制信息进行读写操作,以实现将该操作信息写入本地存储器或者远程目标存储器。由于本地存储器是以环形队列的形式进行存储相应的操作信息,在对操作信息进行读写操作时,可以实现数据搬运以及队列管理。具体地,数据搬运可以是将控制信息写入本地存储器等,队列管理也就是在对本地存储器实现数据搬运过程中,不断的更新本地存储器中的环形队列。
39.需要说明的是,上述直接内存存取通道可以是一个或者多个,在本发明的实施方式不做任何限定。
40.通过上述步骤,可以实现采用确定控制信息以及对控制信息执行读写操作的直接内存存取通道;控制直接内存存取通道对控制信息进行处理,通过控制信息对应的直接内存存取通道对该控制信息进行处理,以实现nvme队列管理以及数据搬移,达到了全软件实现nvme的目的,从而实现了有效的减少verilog/vhdl开发工作量和验证工作量的技术效果,进而解决了相关技术中通过在硬件上支持缓存一致互联协议或者寄存器触发中断的模式和固态硬盘控制器交互实现数据读写方法,导致开发工作量以及验证工作量较大的技术问题。
41.可选地,上述控制信息为命令,直接内存存取通道为第一直接内存存取通道,控制直接内存存取通道对控制信息进行处理,包括:确定命令对应的环形队列处于空闲状态;控制第一直接内存存取通道执行读写操作,将命令写入命令对应的环形队列。
42.在一种可选的实施方式中,上述控制信息包括但不限于命令等,例如,可以首先确定命令对应的环形队列处于空闲状态,再控制第一直接内存存取通道执行读写操作,并将命令写入对应的环形队列。通过上述实施方式,可以在命令对应的环形队列处于空闲状态时,将相应的命令快速写入该环形队列中。
43.需要说明的是,在缓存中可以设置有命令对应的环形队列。
44.可选地,上述控制信息为物理区域页和/或分散聚合表,直接内存存取通道为第二直接内存存取通道,控制直接内存存取通道对控制信息进行处理,包括:依据物理区域页和/或分散聚合表对应的环形队列的空满信息,确定待处理的物理区域页和/或分散聚合表;控制第二直接内存存取通道执行读写操作,将待处理的物理区域页和/或分散聚合表写入物理区域页和/或分散聚合表对应的环形队列。
45.在一种可选的实施方式中,上述控制信息包括但不限于物理区域页、分散聚合表等,例如,可以依据物理区域页和/或分散聚合表对应的环形队列的空满信息,确定待处理的物理区域页和/或分散聚合表,进而再控制第二直接内存存取通道执行读写操作,将待处理的物理区域页和/或分散聚合表写入物理区域页和/或分散聚合表对应的环形队列。其中,物理区域页和/或分散聚合表可以共用一个环形队列。通过上述实施方式,可以根据物理区域页和/或分散聚合表对应的环形队列的空满信息,得到可写入的物理区域页和/或分散聚合表,再将可写入的物理区域页和/或分散聚合表快速写入该环形队列中。
46.需要说明的是,可写入的物理区域页和/或分散聚合表可以是部分的物理区域页
read具体包括以下实施步骤:
61.步骤301、dma read channel对远程目标存储器(remote destination memory)通过mrd发起读操作;
62.步骤302、dma read channel通过cpld获得数据;
63.步骤303、dma read channel通过write操作写出获得的数据。
64.图4是根据本发明可选实施例的pcie配置的示意图,如图4所示,pcie支持1~8个dma write/read channel,使用总共带有4路dma的pcie配置。其中,pcie通过amba桥与内部cpu互联。
65.图5是根据本发明可选实施例的channel对应的配置sram的数据配置格式的示意图,如图5所示,其中,每个channel需要一个配置sram,其数据配置格式为:每个element需要6个word;多个element可以组成一个环;每个element包含待传输的数据大小(transfer size)、源地址(source address)、目的地址(destination address)。
66.当本地cpu填写完成一次dma操作后,通知dma启动。dma使用中断的方式通知该次dma已经完成。
67.图6是根据本发明可选实施例的pcie下发nvme的doorbell的流程图,如图6所示,具体包括如下步骤:
68.步骤601、主机(host)通过pcie下发某个队列头/尾结点(head/tail point)同时通过门铃(doorbell)告知该队列有任务;
69.步骤602、pcie通过amba总线将该信息路由到cpu cluster;
70.步骤603、cpu cluster通过一致性cache将该信息更新到分配好的0/1/2

环形队列中。
71.通过上述实施方式,可以在cpu cluster上实现doorbell/head/tail指针队列,利用ccix cpu可以快速获得相关数据。
72.图7是根据本发明可选实施例的controller获取相关的command的流程图,如图7所示,具体包括如下步骤:
73.步骤701、本地cpu查询相关command环形队列是否有空闲空间;
74.步骤702、本地cpu使用pcie/dma chl 0发起相关的read操作;
75.步骤703、host返回相关的command并通过pcie/dma chl0写入10/11/12


76.通过上述实施方式,可以在cpu cluster上实现管理/任务队列,利用ccix原理,cpu可以快速获得相关命令并解析。
77.图8是根据本发明可选实施例的controller获取相关prp/sgl信息的流程图,如图8所示,具体包括如下步骤:
78.步骤801、cpu通过内部物理区域页(physical region page,简称为prp)/分散聚合表(scatter gather list,简称为sgl)环形队列的空满信息,判断可以预取的prp/sgl大小;
79.步骤802、cpu通过rd chl2发起相关的操作;
80.步骤803、rd chl2将相关数据放入到cpu开辟的prp/sgl等相关环形队列中。
81.通过上述实施方式,可以在cpu cluster上实现prp/sgl队列,利用ccix原理,cpu可以快速获得prp/sgl数据,并解析。
82.图9是根据本发明可选实施例的controller获取相关data的流程图,如图9所示,具体包括如下步骤:
83.步骤901、本地cpu根据相关的prp/sgl等信息,填写rd/wr chl3;
84.步骤902、rd/wr chl3发起相关的操作将对应的数据放入相关的片上缓冲区(buffer)。
85.通过上述实施方式,可以在cpu cluster上实现prp/sgl队列,利用ccix原理,cpu可以快速获得prp/sgl数据,并解析。
86.在本发明的上述实施方式中,cpu通过pcie/dma搬移nvme/command、prp/sgl、data,有效释放cpu的潜力,同时减少数据搬移的功耗。
87.需要说明的是,通过cpu完成nvme所有队列管理,可以高效的实现队列间的qos,队列复位、停止等操作,多nvme controller等虚拟化操作以及队列的差异化操作,比如按队列加密等。
88.实施例2
89.根据本发明实施例的另一方面,还提供了一种控制信息的处理装置,图10是根据本发明实施例的控制信息的处理装置的示意图,如图10所示,该控制信息的处理装置包括:确定模块1002和控制模块1004。下面对该控制信息的处理装置进行详细说明。
90.确定模块1002,用于确定控制信息以及对控制信息执行读写操作的直接内存存取通道;控制模块1004,连接至上述确定模块1002,用于控制直接内存存取通道对控制信息进行处理。
91.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;和/或,上述各个模块以任意组合的方式位于不同的处理器中。
92.在上述实施例中,该控制信息的处理装置可以通过控制信息对应的直接内存存取通道对该控制信息进行处理,以实现nvme队列管理以及数据搬移,达到了全软件实现nvme的目的,从而实现了有效的减少verilog/vhdl开发工作量和验证工作量的技术效果,进而解决了相关技术中通过在硬件上支持缓存一致互联协议或者寄存器触发中断的模式和固态硬盘控制器交互实现数据读写方法,导致开发工作量以及验证工作量较大的技术问题。
93.此处需要说明的是,上述确定模块1002和控制模块1004对应于实施例1中的步骤s102至s104,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
94.可选地,上述控制信息为命令,直接内存存取通道为第一直接内存存取通道,控制模块包括:第一确定单元,用于确定命令对应的环形队列处于空闲状态;第一控制单元,用于控制第一直接内存存取通道执行读写操作,将命令写入命令对应的环形队列。
95.可选地,上述控制信息为物理区域页和/或分散聚合表,直接内存存取通道为第二直接内存存取通道,控制模块包括:第二确定单元,用于依据物理区域页和/或分散聚合表对应的环形队列的空满信息,确定待处理的物理区域页和/或分散聚合表;第二控制单元,用于控制第二直接内存存取通道执行读写操作,将待处理的物理区域页和/或分散聚合表写入物理区域页和/或分散聚合表对应的环形队列。
96.可选地,上述控制信息为物理区域页和/或分散聚合表,直接内存存取通道为第三
直接内存存取通道,控制模块包括:设置单元,用于依据物理区域页和/或分散聚合表设置第三直接内存存取通道;第二控制单元,用于控制第三直接内存存取通道执行读写操作,将物理区域页和/或分散聚合表写入片上缓冲区。
97.可选地,上述装置还包括:预处理模块,用于在确定控制信息以及对控制信息执行读写操作的直接内存存取通道之前,依据缓存一致性的处理方式,对待更新到控制信息对应的环形队列中的控制信息进行预处理。
98.实施例3
99.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述中任意一项的控制信息的处理方法。
100.可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,和/或位于移动终端群中的任意一个移动终端中,上述计算机可读存储介质包括存储的程序。
101.可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:确定控制信息以及对控制信息执行读写操作的直接内存存取通道;控制直接内存存取通道对控制信息进行处理。
102.实施例4
103.根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行上述中任意一项的控制信息的处理方法。
104.本发明实施例提供了一种设备,该设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:确定控制信息以及对控制信息执行读写操作的直接内存存取通道;控制直接内存存取通道对控制信息进行处理。
105.本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:确定控制信息以及对控制信息执行读写操作的直接内存存取通道;控制直接内存存取通道对控制信息进行处理。
106.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
107.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
108.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
109.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
110.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
111.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
112.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献