本发明涉及计算机,尤其涉及一种数据操作方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术:
1、处理器是计算机系统中的重要部分,担负着整个计算机系统的核心任务,包括操作系统管理、软件运行和数据处理。在进行数据处理时,需要由处理器介入才能完成数据读写。
2、目前,通过使用直接内存访问(dma,direct memory access)技术,不需要处理器介入,通过dma控制器就能直接完成数据读写操作。
3、但是目前处理器的内核数量越来越多,每个内核也会有多个数据操作命令,造成控制器需要同时处理多个内核的数据操作命令,使得dma控制器容易发生执行命令冲突,导致数据操作效率低。
技术实现思路
1、本发明实施例提供一种数据操作方法、装置、电子设备、计算机可读存储介质及计算机程序产品,以解决现有技术中数据操作的效率较低的问题。
2、第一方面,本发明实施例提供一种数据操作方法,应用于数据操作控制器,所述方法包括:
3、获取多核处理器的至少一个内核发出的至少一个数据操作命令,将所述至少一个数据操作命令分别存储在所述数据操作控制器中的至少一个命令存储区域;所述至少一个内核构成内核序列,所述至少一个命令存储区域构成存储序列;
4、根据所述存储序列,在所述至少一个命令存储区域中确定目标命令存储区域,以及根据所述内核序列,在所述至少一个内核中确定目标内核;
5、执行所述目标命令存储区域中所述目标内核对应的数据操作命令,以对预设的存储器进行数据操作,并确定所述至少一个内核中的下一目标内核,直至所述目标命令存储区域的数据操作命令执行完成;
6、确定下一目标命令存储区域,以及所述至少一个内核中的目标内核,直至所述至少一个命令存储区域的数据操作命令均执行完成。
7、可选的,所述数据操作命令中包括数据地址和操作模式;所述执行所述目标命令存储区域中所述目标内核对应的数据操作命令,以对预设的存储器进行数据操作的步骤,包括:
8、根据所述数据地址和所述操作模式,执行所述目标命令存储区域中所述目标内核对应的数据操作命令,以对所述存储器中所述数据地址指向的数据进行所述操作模式对应的数据操作。
9、可选的,所述操作模式为读写模式时,所述数据地址包括读取地址和写入地址;
10、所述根据所述数据地址和操作模式,执行所述目标命令存储区域中所述目标内核对应的数据操作命令的步骤,包括:
11、当所述操作模式为所述读写模式时,在所述存储器中获取所述读取地址指向的目标数据,并将所述目标数据写入到所述写入地址指向的目标存储位置。
12、可选的,所述操作模式为写模式时,所述数据地址包括写入地址;
13、所述根据所述数据地址和操作模式,执行所述目标命令存储区域中所述目标内核对应的数据操作命令的步骤,包括:
14、当所述操作模式为所述写模式时,获取所述数据操作控制器的数据存储区域中的已存储数据,将所述已存储数据写入到所述写入地址指向的目标存储位置。
15、可选的,所述数据操作控制器中包括校验模块和校验寄存器;所述操作模式为校验模式时,所述数据地址包括读取地址;
16、所述根据所述数据地址和操作模式,执行所述目标命令存储区域中所述目标内核对应的数据操作命令的步骤,包括:
17、当所述操作模式为所述校验模式时,在所述存储器中获取所述读取地址指向的目标数据;
18、将所述目标数据输入到所述校验模块,并将所述校验模块生成的数据校验结果写入所述校验寄存器。
19、可选的,所述数据操作控制器中包括请求模块,所述请求模块中包括第一数据存储区域和第二数据存储区域;
20、所述在所述存储器中获取所述读取地址指向的目标数据,并将所述目标数据写入到所述写入地址指向的目标存储位置的步骤,包括:
21、在所述存储器中获取所述目标数据的第一数据块,将所述第一数据块写入到所述第一数据存储区域;
22、获取所述目标数据的第二数据块,将所述第二数据块写入到所述第二数据存储区域,以及将所述第一数据存储区域中的所述第一数据块写入到所述目标存储位置;
23、继续获取所述目标数据的第三数据块,将所述第三数据块写入到所述第一数据存储区域,以及将所述第二数据存储区域中的所述第二数据块写入到所述目标存储位置,直至所述目标数据完全写入到所述目标存储位置。
24、可选的,所述第一数据存储区域和所述第二数据存储区域的空间大小相同;所述方法还包括:
25、根据所述第一数据存储区域或所述第二数据存储区域的空间大小,确定每个数据块的大小;所述数据块的大小表示所包含的数据量。
26、可选的,所述在所述存储器中获取所述目标数据的第一数据块,将所述第一数据块写入到所述第一数据存储区域的步骤,包括:
27、根据所述第一数据存储区域的空间大小,确定所述第一数据块的大小;
28、基于所述第一数据块的大小,在所述存储器中获取所述第一数据块,并将所述第一数据块写入到所述第一数据存储区域;
29、所述获取所述目标数据的第二数据块,将所述第二数据块写入到所述第二数据存储区域的步骤,包括:
30、根据所述第二数据存储区域的空间大小,确定所述第二数据块的大小;
31、基于所述第二数据块的大小,在所述存储器中获取所述第二数据块,并将所述第二数据块写入到所述第二数据存储区域。
32、可选的,所述数据操作控制器中包括命令状态寄存器,每个命令存储区域对应各自的所述命令状态寄存器;所述方法还包括:
33、针对每个命令存储区域,读取对应的所述命令状态寄存器;
34、在所述命令状态寄存器的值为预设第一值时,确定对应的命令存储区域中的数据操作命令已执行完成;或
35、在所述命令状态寄存器的值为预设第二值时,确定对应的命令存储区域中的数据操作命令未执行完成。
36、可选的,所述方法还包括:
37、在至少一个命令状态寄存器的值为预设第二值时,确定对应的至少一个目标命令存储区域;
38、根据所述存储序列和所述内核序列,依次执行所述至少一个目标命令存储区域中的数据操作命令。
39、可选的,所述数据操作控制器具有加速缓存一致性接口;所述方法还包括:
40、获取地址控制参数,并根据所述地址控制参数,确定所述数据地址的地址类型;所述地址控制参数表示所述数据地址的地址类型,所述地址类型包括物理地址和逻辑地址;
41、在所述数据地址为逻辑地址时,通过所述加速缓存一致性接口,在所述存储器中获取所述读取地址指向的目标数据,并将所述目标数据写入到所述写入地址指向的缓存区域;或
42、通过所述加速缓存一致性接口,在所述缓存区域中获取所述读取地址指向的目标数据,并将所述目标数据写入到所述写入地址指向的所述存储器。
43、可选的,所述数据操作控制器中包括命令存储模块和命令配置接口,所述至少一个命令存储区域位于所述命令存储模块中;
44、所述获取多核处理器的至少一个内核发出的至少一个数据操作命令,将所述至少一个数据操作命令分别存储在所述数据操作控制器中的至少一个命令存储区域的步骤,包括:
45、通过所述命令配置接口,获取多核处理器的至少一个内核发出的至少一个数据操作命令;所述数据操作命令的数量和所述命令存储区域的数量相同;
46、将所述至少一个数据操作命令分别存储到所述命令存储模块的不同命令存储区域中。
47、可选的,所述数据操作控制器中包括工作状态机和执行状态寄存器;所述方法还包括:
48、根据所述数据操作命令的执行状态,通过所述工作状态机生成对应的状态信息;所述执行状态包括读取数据状态、写入数据状态、数据校验状态、执行完成状态;
49、将所述状态信息写入所述执行状态寄存器。
50、可选的,在所述确定所述至少一个内核中的下一目标内核,直至所述目标命令存储区域中的数据操作命令执行完成的步骤之前,所述方法还包括:
51、读取所述执行状态寄存器,根据所述执行状态寄存器的值确定所述数据操作命令的执行状态为所述执行完成状态;所述执行完成状态表示所述目标命令存储区域中所述目标内核对应的数据操作命令已执行完成。
52、可选的,在所述执行所述目标命令存储区域中所述目标内核对应的数据操作命令,以对预设的存储器进行数据操作的步骤之前,所述方法还包括:
53、向所述多核处理器发送总线控制请求;所述多核处理器用于在接收到所述总线控制请求后,将总线设置为高阻态,并生成总线接管信号;
54、接收所述多核处理器返回的所述总线接管信号;所述总线接管信号表示所述数据操作命令由所述数据操作控制器执行。
55、可选的,在所述直至所述至少一个命令存储区域的数据操作命令均执行完成的步骤之后,所述方法还包括:
56、向所述多核处理器发送总线交还请求;所述多核处理器用于在接收到所述总线交还请求后,执行其他数据操作命令。
57、可选的,所述校验模块存储有用于校验的多项式信息;将所述目标数据输入到所述校验模块,并将所述校验模块生成的数据校验结果写入所述校验寄存器的步骤,包括:
58、将所述目标数据输入到所述校验模块,通过所述校验模块为所述目标数据添加冗余信息;
59、基于具有所述冗余信息的所述目标数据和所述多项式信息,进行运算以获得数据校验结果,并将所述数据校验结果写入校验寄存器。第二方面,本发明实施例提供一种数据操作装置,应用于数据操作控制器,装置包括:
60、命令存储模块,用于获取多核处理器的至少一个内核发出的至少一个数据操作命令,将所述至少一个数据操作命令分别存储在所述数据操作控制器中的至少一个命令存储区域;所述至少一个内核构成内核序列,所述至少一个命令存储区域构成存储序列;
61、目标确定模块,用于根据所述存储序列,在所述至少一个命令存储区域中确定目标命令存储区域,以及根据所述内核序列,在所述至少一个内核中确定目标内核;
62、命令执行模块,用于执行所述目标命令存储区域中所述目标内核对应的数据操作命令,以对预设的存储器进行数据操作,并确定所述至少一个内核中的下一目标内核,直至所述目标命令存储区域的数据操作命令执行完成;
63、区域执行模块,用于确定下一目标命令存储区域,以及所述至少一个内核中的目标内核,直至所述至少一个命令存储区域的数据操作命令均执行完成。
64、可选的,所述数据操作命令中包括数据地址和操作模式;命令执行模块,包括:
65、地址模式子模块,用于根据所述数据地址和所述操作模式,执行所述目标命令存储区域中所述目标内核对应的数据操作命令,以对所述存储器中所述数据地址指向的数据进行所述操作模式对应的数据操作。
66、可选的,所述操作模式为读写模式时,所述数据地址包括读取地址和写入地址;
67、地址模式子模块,包括:
68、读写单元,用于当所述操作模式为所述读写模式时,在所述存储器中获取所述读取地址指向的目标数据,并将所述目标数据写入到所述写入地址指向的目标存储位置。
69、可选的,所述操作模式为写模式时,所述数据地址包括写入地址;
70、地址模式子模块,包括:
71、写单元,用于当所述操作模式为所述写模式时,获取所述数据操作控制器的数据存储区域中的已存储数据,将所述已存储数据写入到所述写入地址指向的目标存储位置。
72、可选的,所述数据操作控制器中包括校验模块和校验寄存器;所述操作模式为校验模式时,所述数据地址包括读取地址;
73、地址模式子模块,包括:
74、校验单元,用于当所述操作模式为所述校验模式时,在所述存储器中获取所述读取地址指向的目标数据;
75、结果写入单元,用于将所述目标数据输入到所述校验模块,并将所述校验模块生成的数据校验结果写入所述校验寄存器。
76、可选的,所述数据操作控制器中包括请求模块,所述请求模块中包括第一数据存储区域和第二数据存储区域;
77、读写单元,包括:
78、第一读写子单元,用于在所述存储器中获取所述目标数据的第一数据块,将所述第一数据块写入到所述第一数据存储区域;
79、第二读写子单元,用于获取所述目标数据的第二数据块,将所述第二数据块写入到所述第二数据存储区域,以及将所述第一数据存储区域中的所述第一数据块写入到所述目标存储位置;
80、第三读写子单元,用于继续获取所述目标数据的第三数据块,将所述第三数据块写入到所述第一数据存储区域,以及将所述第二数据存储区域中的所述第二数据块写入到所述目标存储位置,直至所述目标数据完全写入到所述目标存储位置。
81、可选的,所述第一数据存储区域和所述第二数据存储区域的空间大小相同;装置还包括:
82、数据块确定模块,用于根据所述第一数据存储区域或所述第二数据存储区域的空间大小,确定每个数据块的大小;所述数据块的大小表示所包含的数据量。
83、可选的,第一读写子单元,包括:
84、第一大小子单元,用于根据所述第一数据存储区域的空间大小,确定所述第一数据块的大小;
85、第一获取子单元,用于基于所述第一数据块的大小,在所述存储器中获取所述第一数据块,并将所述第一数据块写入到所述第一数据存储区域;
86、第二读写子单元,包括:
87、第二大小子单元,用于根据所述第二数据存储区域的空间大小,确定所述第二数据块的大小;
88、第二获取子单元,用于基于所述第二数据块的大小,在所述存储器中获取所述第二数据块,并将所述第二数据块写入到所述第二数据存储区域。
89、可选的,所述数据操作控制器中包括命令状态寄存器,每个命令存储区域对应各自的所述命令状态寄存器;装置还包括:
90、对应状态模块,用于针对每个命令存储区域,读取对应的所述命令状态寄存器;
91、第一状态模块,用于在所述命令状态寄存器的值为预设第一值时,确定对应的命令存储区域中的数据操作命令已执行完成;或
92、第二状态模块,用于在所述命令状态寄存器的值为预设第二值时,确定对应的命令存储区域中的数据操作命令未执行完成。
93、可选的,装置还包括:
94、目标区域模块,用于在至少一个命令状态寄存器的值为预设第二值时,确定对应的至少一个目标命令存储区域;
95、补充执行模块,用于根据所述存储序列和所述内核序列,依次执行所述至少一个目标命令存储区域中的数据操作命令。
96、可选的,所述数据操作控制器具有加速缓存一致性接口;装置还包括:
97、地址参数模块,用于获取地址控制参数,并根据所述地址控制参数,确定所述数据地址的地址类型;所述地址控制参数表示所述数据地址的地址类型,所述地址类型包括物理地址和逻辑地址;
98、写入缓存模块,用于在所述数据地址为逻辑地址时,通过所述加速缓存一致性接口,在所述存储器中获取所述读取地址指向的目标数据,并将所述目标数据写入到所述写入地址指向的缓存区域;或
99、读取缓存模块,用于通过所述加速缓存一致性接口,在所述缓存区域中获取所述读取地址指向的目标数据,并将所述目标数据写入到所述写入地址指向的所述存储器。
100、可选的,所述数据操作控制器中包括命令存储模块和命令配置接口,所述至少一个命令存储区域位于所述命令存储模块中;
101、命令存储模块,包括:
102、命令获取子模块,用于通过所述命令配置接口,获取多核处理器的至少一个内核发出的至少一个数据操作命令;所述数据操作命令的数量和所述命令存储区域的数量相同;
103、分别存储子模块,用于将所述至少一个数据操作命令分别存储到所述命令存储模块的不同命令存储区域中。
104、可选的,所述数据操作控制器中包括工作状态机和执行状态寄存器;装置还包括:
105、状态信息模块,用于根据所述数据操作命令的执行状态,通过所述工作状态机生成对应的状态信息;所述执行状态包括读取数据状态、写入数据状态、数据校验状态、执行完成状态;
106、状态写入模块,用于将所述状态信息写入所述执行状态寄存器。
107、可选的,装置方法还包括:
108、执行确认模块,用于读取所述执行状态寄存器,根据所述执行状态寄存器的值确定所述数据操作命令的执行状态为所述执行完成状态;所述执行完成状态表示所述目标命令存储区域中所述目标内核对应的数据操作命令已执行完成。
109、可选的,装置还包括:
110、总线请求模块,用于向所述多核处理器发送总线控制请求;所述多核处理器用于在接收到所述总线控制请求后,将总线设置为高阻态,并生成总线接管信号;
111、总线信号模块,用于接收所述多核处理器返回的所述总线接管信号;所述总线接管信号表示所述数据操作命令由所述数据操作控制器执行。
112、可选的,装置还包括:
113、控制交还模块,用于向所述多核处理器发送总线交还请求;所述多核处理器用于在接收到所述总线交还请求后,执行其他数据操作命令。
114、可选的,所述校验模块存储有用于校验的多项式信息;结果写入单元,包括:
115、冗余信息子单元,用于将所述目标数据输入到所述校验模块,通过所述校验模块为所述目标数据添加冗余信息;
116、校验运算子单元,用于基于具有所述冗余信息的所述目标数据和所述多项式信息,进行运算以获得数据校验结果,并将所述数据校验结果写入校验寄存器。
117、第三方面,本发明实施例提供一种电子设备,包括:处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过通信总线完成相互间的通信;
118、存储器,用于存放计算机程序;
119、处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的数据操作方法中的步骤。
120、第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面所述的数据操作方法中的步骤。
121、第五方面,本发明实施例提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述第一方面所述的数据操作方法中的步骤。
122、针对在先技术,本发明具备如下优点:
123、本发明实施例中,通过获取多核处理器的至少一个内核发出的至少一个数据操作命令,将至少一个数据操作命令分别存储在数据操作控制器中的至少一个命令存储区域;根据存储序列,在至少一个命令存储区域中确定目标命令存储区域,以及根据内核序列,在至少一个内核中确定目标内核;执行目标命令存储区域中目标内核对应的数据操作命令,以对预设的存储器进行数据操作,并确定至少一个内核中的下一目标内核,直至目标命令存储区域的数据操作命令执行完成;确定下一目标命令存储区域,以及至少一个内核中的目标内核,直至至少一个命令存储区域的数据操作命令均执行完成。能够将每个内核发出的指示一个数据操作命令存储到数据操作控制器的不同的命令存储区域中,并遍历执行每个目标命令存储区域中每个目标内核对应的数据操作命令。能够应对在多核处理的场景下的多核并发访问,避免了同时处理多核的数据操作命令,保证了数据一致性和数据传输的准确性,降低了数据操作控制器的故障率,进而提高了数据操作的效率。
124、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
1.一种数据操作方法,其特征在于,应用于数据操作控制器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据操作命令中包括数据地址和操作模式;所述执行所述目标命令存储区域中所述目标内核对应的数据操作命令,以对预设的存储器进行数据操作的步骤,包括:
3.根据权利要求2所述的方法,其特征在于,所述操作模式为读写模式时,所述数据地址包括读取地址和写入地址;
4.根据权利要求2所述的方法,其特征在于,所述操作模式为写模式时,所述数据地址包括写入地址;
5.根据权利要求2所述的方法,其特征在于,所述数据操作控制器中包括校验模块和校验寄存器;所述操作模式为校验模式时,所述数据地址包括读取地址;
6.根据权利要求3所述的方法,其特征在于,所述数据操作控制器中包括请求模块,所述请求模块中包括第一数据存储区域和第二数据存储区域;
7.根据权利要求6所述的方法,其特征在于,所述第一数据存储区域和所述第二数据存储区域的空间大小相同;所述方法还包括:
8.根据权利要求6所述的方法,其特征在于,所述在所述存储器中获取所述目标数据的第一数据块,将所述第一数据块写入到所述第一数据存储区域的步骤,包括:
9.根据权利要求1所述的方法,其特征在于,所述数据操作控制器中包括命令状态寄存器,每个命令存储区域对应各自的所述命令状态寄存器;所述方法还包括:
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
11.根据权利要求3所述的方法,其特征在于,所述数据操作控制器具有加速缓存一致性接口;所述方法还包括:
12.根据权利要求1所述的方法,其特征在于,所述数据操作控制器中包括命令存储模块和命令配置接口,所述至少一个命令存储区域位于所述命令存储模块中;
13.根据权利要求1所述的方法,其特征在于,所述数据操作控制器中包括工作状态机和执行状态寄存器;所述方法还包括:
14.根据权利要求13所述的方法,其特征在于,在所述确定所述至少一个内核中的下一目标内核,直至所述目标命令存储区域中的数据操作命令执行完成的步骤之前,所述方法还包括:
15.根据权利要求1所述的方法,其特征在于,在所述执行所述目标命令存储区域中所述目标内核对应的数据操作命令,以对预设的存储器进行数据操作的步骤之前,所述方法还包括:
16.根据权利要求1所述的方法,其特征在于,在所述直至所述至少一个命令存储区域的数据操作命令均执行完成的步骤之后,所述方法还包括:
17.根据权利要求5所述的方法,其特征在于,所述校验模块存储有用于校验的多项式信息;将所述目标数据输入到所述校验模块,并将所述校验模块生成的数据校验结果写入所述校验寄存器的步骤,包括:
18.一种数据操作装置,其特征在于,应用于数据操作控制器,所述装置包括:
19.一种电子设备,其特征在于,包括:
20.一种计算机可读存储介质,其特征在于,用于存储计算机程序/指令;其中计算机程序/指令被处理器执行时实现如权利要求1至17任一项所述的数据操作方法。
21.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至17任一项所述的数据操作方法。