CN111930510B - 电子设备和数据处理方法 - Google Patents
电子设备和数据处理方法 Download PDFInfo
- Publication number
- CN111930510B CN111930510B CN202010843352.9A CN202010843352A CN111930510B CN 111930510 B CN111930510 B CN 111930510B CN 202010843352 A CN202010843352 A CN 202010843352A CN 111930510 B CN111930510 B CN 111930510B
- Authority
- CN
- China
- Prior art keywords
- task
- processing unit
- cpu
- shared memory
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 534
- 238000000034 method Methods 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 13
- 238000013144 data compression Methods 0.000 description 11
- 238000012805 post-processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
本公开提供了一种电子设备和数据处理方法,属于数据处理领域。电子设备包括:中央处理器CPU和任务处理单元,CPU和任务处理单元电性连接;CPU用于在接收到数据处理任务之后,检测数据处理任务是否属于目标类型任务,若数据处理任务属于目标类型任务,则将数据处理任务的任务数据写入第一共享内存;CPU还用于向任务处理单元发送任务执行通知,任务执行通知用于通知任务处理单元执行数据处理任务;任务处理单元用于响应于任务执行通知,从第一共享内存中读取任务数据;任务处理单元还用于根据任务数据执行数据处理任务,得到处理结果。上述电子设备能够提高任务处理的效率,降低CPU的处理延时,从而提高CPU的吞吐量。
Description
技术领域
本公开涉及数据处理领域,尤其涉及一种电子设备和数据处理方法。
背景技术
随着互联网用户的快速增长,数据体量急剧膨胀,导致对数据处理的需求迅猛上涨。另外,人工智能、高性能数据分析和金融分析等计算密集型产业的兴起,也导致对数据处理的需求不断上涨。
相关技术中,一般采用CPU(Central Processing Unit,中央处理器)来执行各种类型的数据处理任务,例如,数据压缩任务、数据查询任务、图片处理任务等,然而,由于CPU需要执行大量的数据处理任务,数据处理效率低,容易影响CPU的处理延时和吞吐量。
发明内容
本公开提供一种电子设备和数据处理方法,能够提高任务处理的效率,降低CPU的处理延时,提高CPU的吞吐量。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种电子设备,所述电子设备包括:中央处理器CPU和任务处理单元,所述CPU和所述任务处理单元电性连接;
所述CPU用于在接收到数据处理任务之后,检测所述数据处理任务是否属于目标类型任务,若所述数据处理任务属于所述目标类型任务,则将所述数据处理任务的任务数据写入第一共享内存;
所述CPU还用于向所述任务处理单元发送任务执行通知,所述任务执行通知用于通知所述任务处理单元执行所述数据处理任务;
所述任务处理单元用于响应于所述任务执行通知,从所述第一共享内存中读取所述任务数据;
所述任务处理单元还用于根据所述任务数据执行所述数据处理任务,得到处理结果。
在一种可能的实现方式中,所述电子设备还包括第一寄存器;
所述CPU用于在将所述任务数据写入所述第一共享内存之后,更新所述第一寄存器中存储的任务状态信息,以向所述任务处理单元发送所述任务执行通知;
所述任务处理单元用于在检测到所述第一寄存器的任务状态信息指示存在待办任务时,确定接收到所述任务执行通知。
在另一种可能的实现方式中,所述任务处理单元还用于在确定接收到所述任务执行通知后,更新所述第一寄存器中存储的任务状态信息,更新后的任务状态信息指示不存在待办任务。
在另一种可能的实现方式中,所述CPU还用于在确定所述数据处理任务属于所述目标类型任务的情况下,向所述任务处理单元通知所述第一共享内存的第一地址;
所述任务处理单元用于在确定接收到所述任务执行通知和所述第一地址的情况下,从所述第一地址指向的所述第一共享内存中,读取所述任务数据。
在另一种可能的实现方式中,所述电子设备还包括第二寄存器,
所述CPU用于在确定所述数据处理任务属于所述目标类型任务的情况下,将所述第一共享内存的第一地址写入所述第二寄存器;
所述任务处理单元用于在确定接收到所述任务执行通知的情况下,从所述第二寄存器读取所述第一地址。
在另一种可能的实现方式中,所述CPU还用于在确定所述数据处理任务为所述目标类型任务的情况下,确定所述第一共享内存的虚拟地址,将所述第一共享内存的虚拟地址转换为物理地址,得到所述第一地址。
在另一种可能的实现方式中,所述任务处理单元还用于将所述处理结果写入第二共享内存;
所述任务处理单元还用于向所述CPU发送任务完成通知,所述任务完成通知用于通知所述CPU所述数据处理任务执行完成;
所述CPU还用于响应于所述任务完成通知,从所述第二共享内存中读取所述处理结果。
在另一种可能的实现方式中,所述电子设备还包括第三寄存器;
所述任务处理单元用于在将所述处理结果写入所述第二共享内存之后,更新所述第三寄存器中存储的执行状态信息,以向所述CPU发送所述任务完成通知;
所述CPU用于在检测到所述第三寄存器的执行状态信息指示任务执行完成时,确定接收到所述任务完成通知。
在另一种可能的实现方式中,所述任务处理单元还用于在确定接收到所述任务执行通知后,更新所述第三寄存器中存储的执行状态信息,更新后的执行状态信息指示任务未执行完成。
在另一种可能的实现方式中,所述CPU还用于在确定所述数据处理任务属于所述目标类型任务的情况下,向所述任务处理单元通知所述第二共享内存的第二地址;
所述任务处理单元用于在确定接收到所述任务执行通知和所述第二地址的情况下,将所述处理结果写入所述第二地址指向的所述第二共享内存。
在另一种可能的实现方式中,所述电子设备还包括第四寄存器,
所述CPU用于在确定所述数据处理任务属于所述目标类型任务的情况下,将所述第二共享内存的第二地址写入所述第四寄存器;
所述任务处理单元用于在确定接收到所述任务执行通知的情况下,从所述第四寄存器读取所述第二地址。
在另一种可能的实现方式中,所述CPU还用于在确定所述数据处理任务属于所述目标类型任务的情况下,确定所述第二共享内存的虚拟地址,将所述第二共享内存的虚拟地址转换为物理地址,得到所述第二地址。
在另一种可能的实现方式中,所述CPU在从所述第二共享内存中读取所述处理结果之后,所述CPU还用于执行以下至少之一的操作:
输出所述处理结果;
将所述处理结果存储到目标存储位置;
将所述处理结果和其他数据处理任务对应的处理结果进行整合处理。
在另一种可能的实现方式中,所述CPU用于在确定所述数据处理任务属于所述目标类型任务的情况下,向与所述数据处理任务所属的任务类型匹配的任务处理单元发送所述任务执行通知。
在另一种可能的实现方式中,所述任务处理单元包括现场可编程门阵列FPGA、图形处理器GPU、数字信号处理器DSP或专用集成电路ASIC中的至少一种处理单元。
根据本公开实施例的第二方面,提供一种数据处理方法,所述方法包括:
中央处理器CPU在接收到数据处理任务之后,检测所述数据处理任务是否属于目标类型任务,若所述数据处理任务属于所述目标类型任务,则将所述数据处理任务的任务数据写入第一共享内存;
所述CPU向所述任务处理单元发送任务执行通知,所述任务执行通知用于通知所述任务处理单元执行所述数据处理任务;
所述任务处理单元响应于所述任务执行通知,从所述第一共享内存中读取所述任务数据;
所述任务处理单元根据所述任务数据执行所述数据处理任务,得到处理结果。
在一种可能的实现方式中,所述CPU向所述任务处理单元发送任务执行通知,包括:
所述CPU更新第一寄存器中存储的任务状态信息,以向所述任务处理单元发送所述任务执行通知;
所述方法还包括:所述任务处理单元在检测到所述第一寄存器的任务状态信息指示存在待办任务时,确定接收到所述任务执行通知。
在另一种可能的实现方式中,所述方法还包括:
所述CPU在确定所述数据处理任务属于所述目标类型任务的情况下,向所述任务处理单元通知所述第一共享内存的第一地址;
所述任务处理单元响应于所述任务执行通知,从所述第一共享内存中读取所述任务数据,包括:
所述任务处理单元在确定接收到所述任务执行通知和所述第一地址的情况下,从所述第一地址所指向的所述第一共享内存中读取所述任务数据。
在另一种可能的实现方式中,所述向所述任务处理单元通知所述第一共享内存的第一地址包括:所述CPU将所述第一共享内存的第一地址写入第二寄存器;
所述任务处理单元确定接收到所述第一地址,包括:所述任务处理单元从所述第二寄存器读取所述第一地址。
在另一种可能的实现方式中,在所述向所述任务处理单元通知所述第一共享内存的第一地址之前,所述方法还包括:
在确定所述数据处理任务为所述目标类型任务的情况下,确定所述第一共享内存的虚拟地址;
将所述第一共享内存的虚拟地址转换为物理地址,得到所述第一地址。
在另一种可能的实现方式中,在所述任务处理单元得到所述处理结果之后,所述方法还包括:
所述任务处理单元将所述处理结果写入第二共享内存;
所述任务处理单元向所述CPU发送任务完成通知,所述任务完成通知用于通知所述CPU所述数据处理任务执行完成;
所述CPU响应于所述任务完成通知,从所述第二共享内存中读取所述处理结果。
在另一种可能的实现方式中,所述任务处理单元向所述CPU发送任务完成通知,包括:
所述任务处理单元更新第三寄存器中存储的执行状态信息,以向所述CPU发送所述任务完成通知;
所述方法还包括:所述CPU在检测到所述第三寄存器的执行状态信息指示任务执行完成时,确定接收到所述任务完成通知。
在另一种可能的实现方式中,所述方法还包括:
所述CPU在确定所述数据处理任务属于所述目标类型任务的情况下,向所述任务处理单元通知所述第二共享内存的第二地址;
所述任务处理单元将所述处理结果写入第二共享内存,包括:
所述任务处理单元在确定接收到所述任务执行通知和所述第二地址的情况下,将所述处理结果写入所述第二地址指向的所述第二共享内存。
在另一种可能的实现方式中,所述向所述任务处理单元通知所述第二共享内存的第二地址,包括:所述CPU将所述第二共享内存的第二地址写入第四寄存器;
所述任务处理单元确定接收到所述第二地址,包括:所述任务处理单元从所述第四寄存器读取所述第二地址。
在另一种可能的实现方式中,在所述向所述任务处理单元通知所述第二共享内存的第二地址之前,所述方法还包括:
在确定所述数据处理任务属于所述目标类型任务的情况下,确定所述第二共享内存的虚拟地址;
将所述第二共享内存的虚拟地址转换为物理地址,得到所述第二地址。
在另一种可能的实现方式中,所述CPU在从所述第二共享内存中读取所述处理结果之后,所述CPU还用于执行以下至少之一的操作:
输出所述处理结果;
将所述处理结果存储到目标存储位置;
将所述处理结果和其他数据处理任务对应的处理结果进行整合处理。
在另一种可能的实现方式中,所述CPU向所述任务处理单元发送任务执行通知,包括:
所述CPU向与所述数据处理任务所属的任务类型匹配的任务处理单元发送所述任务执行通知。
在另一种可能的实现方式中,所述任务处理单元包括现场可编程门阵列FPGA、图形处理器GPU、数字信号处理器DSP或专用集成电路ASIC中的至少一种处理单元。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开提供了一种新的电子设备,在该电子设备中,无需CPU执行所有数据处理任务,而是采用任务处理单元来协助CPU执行目标类型任务,提高了CPU的任务处理效率,并且,CPU和任务处理单元之间以共享内存为媒介来传递数据,相对于CPU和任务处理单元之间通过总线传递数据,避免了数据在CPU对应的内存和任务处理单元对应的内存之间传递的过程,因此提高了CPU和任务处理单元之间数据传递的效率,从而进一步提高了CPU的任务处理效率,而CPU的任务处理效率的提高,不仅降低了CPU的处理延时,还使得CPU能够处理更多其他任务,从而提高了CPU的吞吐量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是本公开实施例提供的一种电子设备的示意图;
图2是本公开实施例提供的一种任务处理过程的示意图;
图3是本公开实施例提供的一种电子设备的示意图;
图4是本公开实施例提供的一种电子设备的示意图;
图5是本公开实施例提供的一种电子设备的示意图;
图6是本公开实施例提供的一种内存地址同步过程的示意图;
图7是本公开实施例提供的一种电子设备的示意图;
图8是本公开实施例提供的一种电子设备的示意图;
图9是本公开实施例提供的一种任务处理过程的示意图;
图10是本公开实施例提供的一种数据处理方法的流程图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图说明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的另一点是,本公开所使用的术语“每个”、“多个”及“任一”等,多个包括两个或两个以上,每个是指对应的多个中的每一个,任一是指对应的多个中的任意一个。举例来说,多个处理单元包括10个处理单元,而每个处理单元是指这10个处理单元中的每一个处理单元,任一处理单元是指10个处理单元中的任意一个处理单元。
图1是本公开实施例提供的一种电子设备的示意图,如图1所示,该电子设备包括CPU和任务处理单元,CPU和任务处理单元电性连接。
CPU在接收到数据处理任务之后,检测数据处理任务是否属于目标类型任务,若数据处理任务属于目标类型任务,则将数据处理任务的任务数据写入第一共享内存。
其中,目标类型任务是处理逻辑较为简单且计算密集的数据处理任务,例如,图像处理任务、机器学习任务、数据压缩任务、非对称加密任务、搜索任务、排序任务等,本公开实施例对此不做限制。
CPU将数据处理任务的任务数据写入到第一共享内存中后,向任务处理单元发送任务执行通知,任务执行通知用于通知任务处理单元执行数据处理任务。任务处理单元接收到任务执行通知,则获知有待执行的数据处理任务,然后,从第一共享内存中读取任务数据,根据任务数据执行数据处理任务,得到处理结果。
参考图2,图2为任务处理过程的示意图。执行一个数据处理任务包括三个阶段,分别为数据准备阶段、任务执行阶段和后处理阶段,由于CPU需要执行大量的数据处理任务,如果每个数据处理任务的这三个阶段都由CPU去完成,则数据处理效率低,容易影响CPU的处理延时和吞吐量。因此,在本公开实施例中,由任务处理单元协助CPU执行数据处理任务。在一种可能的实现方式中,CPU执行数据处理任务的准备阶段的操作,然后向任务处理单元发送任务执行通知,以通知任务处理单元执行任务执行阶段的操作,在任务处理单元得到处理结果后,CPU对处理结果执行后处理阶段的操作。
在一种可能的实现方式中,CPU和任务处理单元之间通过总线连接。例如,该总线为PCIe(Peripheral Component Interconnect express,高速串行计算机扩展总线标准)总线。
任务处理单元为电子设备中的辅助处理单元,善于处理逻辑简单且计算密集的数据处理任务,可选地,任务处理单元包括FPGA(Field-Programmable Gate Array,现场可编程门阵列)、GPU(Graphics Processing Unit,图形处理器)、DSP(digital signalprocessor,数字信号处理器)或ASIC(Application Specific Integrated Circuit,专用集成电路)中的至少一种处理单元。当然,任务处理单元还能够包括其他处理单元,本公开实施例对此不做限制。参考图3,图3以电子设备包括FPGA、GPU、DSP、ASIC四个任务处理单元为例,其中,FPGA、GPU、DSP和ASIC分别与CPU连接。
其中,FPGA、GPU、DSP、ASIC是不同的任务处理单元,均擅长执行计算密集型的数据处理任务。FPGA、GPU、DSP和ASIC擅长处理的任务类型不完全相同,例如,GPU擅长图像处理类,DSP擅长数据加密及解密类等。
其中,FPGA是一种可编程逻辑器件,能够通过编程实现某些特定功能,例如:数据压缩、数据加密及解密、数据查询、机器学习等,具备高效率、易用、无限重新编程等特点。需要说明的一点是,在本公开实施例中,通过FPGA来替代CPU执行查表任务,实际测试数据处理服务的吞吐量提升5倍以上。
CPU接收的数据处理任务为任意数据处理任务,例如,图像处理任务、机器学习任务、数据压缩任务、非对称加密任务、搜索任务、排序任务等,本公开实施例对此不做限制。
任务数据即是数据处理任务中需要处理的数据,例如,数据处理任务为图像处理任务,则任务数据包括待处理的图像数据,又如,数据处理任务为数据压缩任务,则任务数据包括待压缩的数据,再如,数据处理任务为非对称加密任务,则任务数据包括待加密的数据,可选地,任务数据还包括其他数据,本公开实施例对此不做限制。
在一种可能的实现方式中,在数据处理任务的准备阶段,CPU接收数据处理任务,该数据处理任务携带任务数据,CPU将任务数据写入共享内存中。或者,CPU接收数据处理任务后,从电子设备的存储空间获取任务数据,将任务数据写入共享内存,本公开实施例对此不做限制。
第一共享内存为由CPU和任务处理单元共同使用的内存,CPU和任务处理单元均能够在该共享内存中执行读写操作。在一种可能的实现方式中,第一共享内存是预设的一块内存,即第一共享内存的地址是默认的地址,或者第一共享内存是CPU申请的一块内存,即第一共享内存的地址是CPU申请的地址。本公开实施例对此不做限制。
本公开提供了一种新的电子设备,在该电子设备中,无需CPU执行所有数据处理任务,而是采用任务处理单元来协助CPU执行目标类型任务,提高了CPU的任务处理效率,并且,CPU和任务处理单元之间以共享内存为媒介来传递数据,相对于CPU和任务处理单元之间通过总线传递数据,避免了数据在CPU对应的内存和任务处理单元对应的内存之间传递的过程,因此提高了CPU和任务处理单元之间数据传递的效率,从而进一步提高了CPU的任务处理效率,而CPU的任务处理效率的提高,不仅降低了CPU的处理延时,还使得CPU能够处理更多其他任务,从而提高了CPU的吞吐量。
在上述图1所示的电子设备的基础上,提供如下发送任务执行通知的方式:
参考图4,在一种可能的实现方式中,电子设备还包括第一寄存器;
CPU将任务数据写入第一共享内存之后,更新第一寄存器中存储的任务状态信息,以向任务处理单元发送任务执行通知;任务处理单元在检测到第一寄存器的任务状态信息指示存在待办任务时,确定接收到任务执行通知。
可选地,任务状态信息为第一数值或第二数值,第一数值指示不存在待办任务,第二数值指示存在待办任务。相应的,CPU将第一寄存器中存储的第一数值更新为第二数值,以向任务处理单元发送任务执行通知;任务处理单元检测到第一寄存器中存储的第一数值更新为第二数值时,确定接收到任务执行通知。如此,则避免了通过总线发送任务执行通知,能够降低总线的通信开销。
在一种可能的实现方式中,第一寄存器为预设的寄存器,第一数值和第二数值为任意数值,且第一数值和第二数值不同,例如,第一数值为0,第二数值为1,本公开实施例对此不做限制。
其中,任务处理单元在确定接收到任务执行通知后,更新第一寄存器中存储的任务状态信息,更新后的任务状态信息指示不存在待办任务。从而CPU下一次还能够通过更新第一寄存器中存储的任务状态信息的方式来向任务处理单元发送任务执行通知。
可选地,任务状态信息为第一数值或第二数值,第一数值指示不存在待办任务,第二数值指示存在待办任务。相应的,任务处理单元在确定接收到任务执行通知后,将第一寄存器中存储的第二数值恢复为第一数值。从而CPU下一次还能够通过将第一寄存器中存储的第一数值更新为第二数值的方式来向任务处理单元发送任务执行通知。
在另一种可能的实现方式中,CPU通过PCIe总线向任务处理单元发送任务执行通知,相应的,任务处理单元通过PCIe总线接收任务执行通知。如此方法简单,高效。
在一种可能的实现方式中,CPU在确定数据处理任务属于目标类型任务的情况下,向与该数据处理任务所属的任务类型匹配的任务处理单元发送任务执行通知。
其中,数据处理任务的任务类型有多种,在一种可能的实现方式中,任务类型包括:图像处理类、数据压缩类、数据加密及解密类、机器学习类、数据查询类等,本公开实施例对此不做限制。
由于CPU能够处理不同类型的数据处理任务,且CPU的判断能力强,擅长处理分支与跳转,因此由CPU执行逻辑复杂的数据处理任务,而逻辑较为简单且计算密集的数据处理任务由任务处理单元执行,能够提高任务处理的效率。在电子设备包括多种任务处理单元的情况下,由于每种任务处理单元擅长处理的任务类型不完全相同,可选地,设置每种任务处理单元匹配的任务类型,每种任务处理单元用于处理属于其匹配的任务类型的数据处理任务。
可选地,FPGA用于执行第一参考类型任务,GPU用于执行第二参考类型任务,DSP用于执行第三参考类型任务,ASIC用于执行第四参考类型任务。其中,第一参考类型任务、第二参考类型任务、第三参考类型任务、第四参考类型任务可能相同也可能不同,本公开对此不做限制。
可选地,设置ASIC和GPU匹配的任务类型包括深度学习类、机器学习类、图像处理类等。相应的,ASIC和GPU用于执行深度学习类型任务、机器学习类型任务、图像处理类型任务。可选地,设置FPGA匹配的任务类型包括网络加速类、数据存储类、查表类、数据压缩类、低延时类等。相应的,FPGA用于执行网络加速类型任务、数据存储类型任务、查表类型任务、数据压缩类型任务、低延时类型任务。可选地,设置DSP匹配的任务类型包括数字信息处理类、音视频编码与解码类等。相应的,DSP用于执行数字信息处理类型任务、音视频编码与解码类型任务。需要说明的一点是,上述每种任务处理单元匹配的任务类型仅是示例性说明,本公开实施例对此不做限制。
在一种可能的实现方式中,以电子设备包括任务处理单元FPGA为例,CPU确定FPGA匹配的至少一个任务类型,其中,属于该至少一个任务类型的数据处理任务为逻辑简单且计算密集的数据处理任务,或者为其他数据处理任务,例如通信密集型任务,本公开实施例对此不做限制。CPU在接收数据处理任务之后,确定数据处理任务所属的任务类型,若该任务类型与FPGA匹配,则向FPGA发送任务执行通知。在一种可能的实现方式中,若该任务类型与FPGA不匹配,则由CPU来执行该数据处理任务。
在一种可能的实现方式中,以电子设备包括FPGA、GPU、DSP、ASIC为例,分别确定FPGA、GPU、DSP和ASIC所匹配的至少一个任务类型。CPU在接收数据处理任务后,确定数据处理任务所属的任务类型,若该任务类型与FPGA、GPU、DSP和ASIC中的任一处理单元匹配,则将该处理单元确定为目标处理单元,向该目标处理单元发送任务执行通知。在一种可能的实现方式中,若该任务类型与FPGA、GPU、DSP和ASIC均不匹配,则由CPU来执行该数据处理任务。
在一种可能的实现方式中,数据处理任务所属的任务类型与多个处理单元匹配,则CPU根据每个处理单元当前对应的数据处理任务的数量,选择数据处理任务的数量最少的处理单元作为目标处理单元。如此能够保证数据处理任务能够较快得到处理,降低处理延时。
需要说明的一点是,在一种可能的实现方式中,电子设备还包括其他任务处理单元,本公开实施例对此不做限制。而每个任务处理单元均与至少一个任务类型匹配,CPU在确定数据处理任务所属的任务类型后,要确定该任务类型与哪个任务处理单元匹配,然后将该匹配的任务处理单元作为目标处理单元,向该目标处理单元发送任务执行通知,以通知该目标处理单元执行数据处理任务。如此能够降低CPU的利用率,使得CPU能够处理更多的数据处理任务请求,降低任务请求的延时并提高任务请求的吞吐量。
在上述图1所示的电子设备的基础上,对第一共享内存的地址进行如下说明:
关于申请第一共享内存的地址:
在一种可能的实现方式中,第一共享内存的地址是CPU申请的地址。CPU在确定数据处理任务属于目标类型任务后,先执行申请内存的操作,从而得到第一共享内存的第一地址。如此,在需要使用内存的时候申请内存,能够避免内存的浪费。在一种可能的实现方式中,第一共享内存为DDR SDRAM(Double Data Rate Synchronous Dynamic RandomAccess Memory,双倍速率同步动态随机存储器),或者,第一共享内存为其他内存,本公开实施例对此不做限制。
关于通知第一共享内存对应的第一地址:
CPU根据申请得到的第一地址,将任务数据写入到第一共享内存中。为了任务处理单元能够从该第一共享内存中读取任务数据,CPU向任务处理单元通知第一共享内存的第一地址;相应的,任务处理单元在确定接收到任务执行通知和第一地址的情况下,从第一地址指向的第一共享内存中读取任务数据。
在一种可能的实现方式中,CPU申请的第一共享内存的地址为虚拟地址,而任务处理单元访问物理地址,因此,CPU在向任务处理单元发送第一共享内存的第一地址之前,将第一共享内存的虚拟地址转换为物理地址,将物理地址确定为第一地址。
在一种可能的实现方式中,CPU向任务处理单元发送第一共享内存的第一地址的实现方式为:CPU通过PCIe总线向任务处理单元发送第一共享内存对应的第一地址。如此方法简单,高效。
在另一种可能的实现方式中,参考图5,电子设备还包括第二寄存器,CPU向任务处理单元发送第一共享内存的第一地址的实现方式为:CPU将第一共享内存的第一地址写入第二寄存器中。相应的,任务处理单元在确定接收到任务执行通知的情况下,从第二寄存器中读取第一共享内存的第一地址。其中,该第二寄存器为默认的寄存器或者其他寄存器,本公开实施例对此不做限制。如此,避免通过总线向任务处理单元发送第一地址,能够降低总线的通信开销。
参考图6,图6为CPU向任务处理单元发送共享内存的地址的过程示意图。CPU申请一块内存,该内存为DDR SDRAM,CPU将该内存的虚拟地址转换成物理地址,将该物理地址通过寄存器传给任务处理单元,之后,任务处理单元则能够访问该物理地址,即在该内存中进行读写操作。
上述实现方式中仅是以申请的内存地址为例,而在另一种可能的实现方式中,第一共享内存的地址是默认的地址,CPU和任务处理单元存储有第一共享内存的默认地址,相应的,CPU根据该默认地址将任务数据写入到第一共享内存中,而任务处理单元接收到任务执行通知后,根据该默认地址从共享内存中读取任务数据。如此,避免了CPU执行申请内存的操作,以及将申请的内存地址同步给任务处理单元的过程,从而降低了通信开销。
在上述实施例的基础上,在另一种可能的实现方式中,任务处理单元在得到处理结果后,将处理结果写入第二共享内存,任务处理单元向CPU发送任务完成通知,任务完成通知用于通知CPU该任务处理单元执行数据处理任务完成,则CPU接收到任务完成通知,即获知任务处理单元执行数据处理任务完成,然后,从第二共享内存中读取处理结果。
第二共享内存为由CPU和任务处理单元共同使用的内存,CPU和任务处理单元均能够在该共享内存中执行读写操作。在一种可能的实现方式中,第二共享内存是预设的一块内存,即第二共享内存的地址时默认的地址,或者第二共享内存是CPU申请的一块内存,即第二共享内存的地址是CPU申请的地址。本公开实施例对此不做限制。
在上述图1所示的电子设备的基础上,提供如下发送任务完成通知的方式:
参考图7,在一种可能的实现方式中,电子设备还包括第三寄存器;
任务处理单元在将处理结果写入第二共享内存之后,更新第三寄存器中存储的执行状态信息,以向CPU发送任务完成通知;CPU在检测到第三寄存器的执行状态信息指示任务执行完成时,确定接收到任务完成通知。
可选地,执行状态信息为第三数值或第四数值,第三数值指示任务未完成,第四数值指示任务完成。相应的,任务处理单元将第三寄存器中存储的第三数值更新为第四数值,以向CPU发送任务完成通知;CPU检测到第三寄存器中存储的第三数值更新为第四数值时,确定接收到任务完成通知。如此,则避免了通过总线发送任务完成通知,能够降低总线的通信开销。
在一种可能的实现方式中,第三寄存器为预设的寄存器,第三数值和第四数值为任意数值,且第三数值和第四数值不同,例如,第三数值为0,第四数值为1,本公开实施例对此不做限制。
其中,任务处理单元在确定接收到任务执行通知后,更新第三寄存器中存储的执行状态信息,更新后的执行状态信息指示任务未执行完成。如此能够实现在任务执行完成后,通过更新第三寄存器中存储的执行状态信息的方式来向CPU发送任务完成通知。
可选地,执行状态信息为第三数值或第四数值,第三数值指示任务未完成,第四数值指示任务完成。相应的,任务处理单元在确定接收到任务执行通知时,将第三寄存器中存储的第四数值恢复为第三数值。如此能够实现在任务执行完成后,通过将第三寄存器中存储的第三数值更新为第四数值的方式来向CPU发送任务完成通知。
在另一种可能的实现方式中,任务处理单元通过PCIe总线向CPU发送任务完成通知,相应的,任务处理单元通过PCIe总线接收任务完成通知。如此方法简单,高效。
在上述图1所示的电子设备的基础上,对第二共享内存的地址进行如下说明:
关于申请第二共享内存的地址:
在一种可能的实现方式中,第二共享内存的地址是CPU申请的地址。在一种可能的实现方式中,CPU在确定数据处理任务属于目标类型任务的情况下,执行申请内存的操作,从而得到第二共享内存的第二地址。如此,在需要使用内存的时候申请内存,能够避免内存的浪费。在一种可能的实现方式中,第二共享内存为DDR SDRAM,或者,第二共享内存为其他内存,本公开实施例对此不做限制。
关于通知第二共享内存对应的第二地址:
为了任务处理单元能够将数据处理任务完成后得到的处理结果写入第二共享内存中,CPU向任务处理单元通知第二共享内存的第二地址;相应的,任务处理单元在确定接收到任务执行通知和第二地址的情况下,将处理结果写入第二地址指向的第二共享内存。
在一种可能的实现方式中,CPU申请的第二共享内存的地址为虚拟地址,而任务处理单元访问物理地址,因此,CPU在向任务处理单元发送第二共享内存的第二地址之前,将第二共享内存的虚拟地址转换为物理地址,将该物理地址确定为第二地址。
在一种可能的实现方式中,CPU向任务处理单元发送第二共享内存的第二地址的实现方式为:CPU通过PCIe总线向任务处理单元发送第二共享内存的第二地址。如此方法简单,高效。
在另一种可能的实现方式中,参考图8,电子设备还包括第四寄存器,CPU向任务处理单元发送第二共享内存的第二地址的实现方式为:CPU将第二共享内存的第二地址写入第四寄存器。相应的,任务处理单元在确定接收到任务执行通知的情况下,从第四寄存器中读取第二共享内存的第二地址。其中,该第四寄存器为默认的寄存器,或者其他寄存器,本公开实施例对此不做限制。如此,避免通过总线向任务处理单元发送第二地址,能够降低总线的通信开销。其中,第四寄存器和第二寄存器为同一个寄存器,或者第四寄存器和第二寄存器为不同的寄存器,本公开实施例对此不做限制。
上述实现方式中仅是以申请的内存地址为例,而在另一种可能的实现方式中,第二共享内存的地址是默认的地址,CPU和任务处理单元存储有第二共享内存的默认的地址,相应的,任务处理单元执行数据处理任务后,根据该默认的地址将得到的处理结果写入第二共享内存中,而CPU根据该默认的地址从第二共享内存中读取处理结果。如此,避免了CPU执行申请内存的操作,以及将申请的内存地址同步给任务处理单元的过程,从而降低了通信开销。
参考图9,图9为任务处理过程的示意图。以第一共享内存为输入缓冲器,第二共享内存为输出缓冲器为例,其中,在数据准备阶段,CPU设置输入缓冲器,CPU将任务数据写入到第一共享内存中,以及向任务处理单元发送第一共享内存的第一地址。CPU还设置输出缓冲器,CPU向任务处理单元发送第二共享内存的第二地址。然后,CPU向任务处理单元发送任务执行通知。在任务执行阶段,任务处理单元接收到该任务执行通知后,则从输入缓冲器中读取任务数据,然后根据该任务数据执行数据处理任务,得到处理结果后,将该处理结果写入到输出缓冲器中,然后向CPU发送任务完成通知。而在后处理阶段,CPU在接收到该任务完成通知后,从输出缓冲器中读取处理结果,对该处理结果进行后处理。
以上介绍了数据处理任务的任务准备阶段和任务执行阶段,以下介绍数据处理任务的后处理阶段:
在一种可能的实现方式中,CPU在从第二共享内存中读取处理结果之后,CPU对处理结果进行后处理,后处理包括下述至少一项:
1、输出处理结果。
在一种可能的实现方式中,输出处理结果包括将处理结果发送给数据处理任务对应的请求设备。或者,显示处理结果,或者播放处理结果。
2、将处理结果存储到目标存储位置。
目标存储位置为任意位置,例如,外部磁盘的某个位置,或者该目标存储位置为数据处理请求中指定的存储位置,本公开实施例对此不做限制。
3、将处理结果和其他数据处理任务对应的其他处理结果进行整合处理。
其中,其他数据处理任务对应的其他处理结果包括CPU自己执行数据处理任务得到的处理结果,以及任务处理单元执行数据处理任务得到的处理结果中的至少一项。整合处理包括根据该处理结果和其他处理结果进行任意方式的数据处理,例如,将该处理结果和其他处理结果进行合并,本公开实施例对此不做限制。
例如,该数据处理任务为数据压缩任务,另一个数据处理任务也为数据压缩任务,且两个数据压缩任务对应的请求设备相同,则能够根据该数据处理任务对应的处理结果和另一个数据处理任务对应的数据处理结果生成一个数据包,然后向该请求设备发送该数据包。
又如,该数据处理任务为搜索任务,则能够将执行该数据处理任务得到的处理结果和其他搜索任务对应的处理结果合并,进而统计搜索任务中的异常结果的类型和数量等。
需要说明的一点是,上述对处理结果进行的后处理只是示例性说明,还能对该处理结果进行其他后处理,本公开实施例对此不做限制。
图10是本公开实施例提供的一种数据处理方法的流程图,参见图10,该方法实施例的执行主体为上述实施例所示的电子设备,该方法包括:
在步骤1001中,中央处理器CPU在接收到数据处理任务之后,检测数据处理任务是否属于目标类型任务,若数据处理任务属于目标类型任务,则将数据处理任务的任务数据写入第一共享内存。
在步骤1002中,CPU向任务处理单元发送任务执行通知,任务执行通知用于通知任务处理单元执行数据处理任务。
在步骤1003中,任务处理单元响应于任务执行通知,从第一共享内存中读取任务数据。
在步骤1004中,任务处理单元根据任务数据执行数据处理任务,得到处理结果。
本公开提供了一种新的数据处理方法,无需CPU执行所有数据处理任务,而是采用任务处理单元来协助CPU执行目标类型任务,提高了CPU的任务处理效率,并且,CPU和任务处理单元之间以共享内存为媒介来传递数据,相对于CPU和任务处理单元之间通过总线传递数据,避免了数据在CPU对应的内存和任务处理单元对应的内存之间传递的过程,因此提高了CPU和任务处理单元之间数据传递的效率,从而进一步提高了CPU的任务处理效率,而CPU的任务处理效率的提高,不仅降低了CPU的处理延时,还使得CPU能够处理更多其他任务,从而提高了CPU的吞吐量。
在一种可能的实现方式中,CPU向任务处理单元发送任务执行通知,包括:
CPU更新第一寄存器中存储的任务状态信息,以向任务处理单元发送任务执行通知;
方法还包括:任务处理单元在检测到第一寄存器的任务状态信息指示存在待办任务时,确定接收到任务执行通知。
在另一种可能的实现方式中,方法还包括:
CPU在确定数据处理任务属于目标类型任务的情况下,向任务处理单元通知第一共享内存的第一地址;
任务处理单元响应于任务执行通知,从第一共享内存中读取任务数据,包括:
任务处理单元在确定接收到任务执行通知和第一地址的情况下,从第一地址所指向的第一共享内存中读取任务数据。
在另一种可能的实现方式中,向任务处理单元通知第一共享内存的第一地址包括:CPU将第一共享内存的第一地址写入第二寄存器;
任务处理单元确定接收到第一地址,包括:任务处理单元从第二寄存器读取第一地址。
在另一种可能的实现方式中,在向任务处理单元通知第一共享内存的第一地址之前,方法还包括:
在确定数据处理任务为目标类型任务的情况下,确定第一共享内存的虚拟地址;
将第一共享内存的虚拟地址转换为物理地址,得到第一地址。
在另一种可能的实现方式中,在任务处理单元得到处理结果之后,方法还包括:
任务处理单元将处理结果写入第二共享内存;
任务处理单元向CPU发送任务完成通知,任务完成通知用于通知CPU数据处理任务执行完成;
CPU响应于任务完成通知,从第二共享内存中读取处理结果。
在另一种可能的实现方式中,任务处理单元向CPU发送任务完成通知,包括:
任务处理单元更新第三寄存器中存储的执行状态信息,以向CPU发送任务完成通知;
方法还包括:CPU在检测到第三寄存器的执行状态信息指示任务执行完成时,确定接收到任务完成通知。
在另一种可能的实现方式中,方法还包括:
CPU在确定数据处理任务属于目标类型任务的情况下,向任务处理单元通知第二共享内存的第二地址;
任务处理单元将处理结果写入第二共享内存,包括:
任务处理单元在确定接收到任务执行通知和第二地址的情况下,将处理结果写入第二地址指向的第二共享内存。
在另一种可能的实现方式中,向任务处理单元通知第二共享内存的第二地址,包括:CPU将第二共享内存的第二地址写入第四寄存器;
任务处理单元确定接收到第二地址,包括:任务处理单元从第四寄存器读取第二地址。
在另一种可能的实现方式中,在向任务处理单元通知第二共享内存的第二地址之前,方法还包括:
在确定数据处理任务属于目标类型任务的情况下,确定第二共享内存的虚拟地址;
将第二共享内存的虚拟地址转换为物理地址,得到第二地址。
在另一种可能的实现方式中,CPU在从第二共享内存中读取处理结果之后,CPU还用于执行以下至少之一的操作:
输出处理结果;
将处理结果存储到目标存储位置;
将处理结果和其他数据处理任务对应的处理结果进行整合处理。
在另一种可能的实现方式中,CPU向任务处理单元发送任务执行通知,包括:
CPU向与数据处理任务所属的任务类型匹配的任务处理单元发送任务执行通知。
在另一种可能的实现方式中,任务处理单元包括现场可编程门阵列FPGA、图形处理器GPU、数字信号处理器DSP或专用集成电路ASIC中的至少一种处理单元。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由上面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (25)
1.一种电子设备,其特征在于,所述电子设备包括:中央处理器CPU、第一寄存器和任务处理单元,所述CPU和所述任务处理单元电性连接;
所述CPU用于在接收到数据处理任务之后,检测所述数据处理任务是否属于目标类型任务,若所述数据处理任务属于所述目标类型任务,则将所述数据处理任务的任务数据写入第一共享内存;
所述CPU还用于在将所述任务数据写入所述第一共享内存之后,通过将所述第一寄存器中存储的第一数值更新为第二数值,更新所述第一寄存器中存储的任务状态信息,以向所述任务处理单元发送任务执行通知,所述任务执行通知用于通知所述任务处理单元执行所述数据处理任务,所述第一数值指示不存在待办任务,所述第二数值指示存在待办任务;
所述任务处理单元用于在检测到所述第一寄存器中存储的所述第一数值更新为所述第二数值时,确定接收到所述任务执行通知;
所述任务处理单元还用于在确定接收到所述任务执行通知后,将所述第一寄存器中存储的所述第二数值恢复为所述第一数值;
所述任务处理单元还用于响应于所述任务执行通知,从所述第一共享内存中读取所述任务数据;
所述任务处理单元还用于根据所述任务数据执行所述数据处理任务,得到处理结果。
2.根据权利要求1所述的电子设备,其特征在于,
所述CPU还用于在确定所述数据处理任务属于所述目标类型任务的情况下,向所述任务处理单元通知所述第一共享内存的第一地址;
所述任务处理单元用于在确定接收到所述任务执行通知和所述第一地址的情况下,从所述第一地址指向的所述第一共享内存中,读取所述任务数据。
3.根据权利要求2所述的电子设备,其特征在于,所述电子设备还包括第二寄存器,
所述CPU用于在确定所述数据处理任务属于所述目标类型任务的情况下,将所述第一共享内存的第一地址写入所述第二寄存器;
所述任务处理单元用于在确定接收到所述任务执行通知的情况下,从所述第二寄存器读取所述第一地址。
4.根据权利要求2或3所述的电子设备,其特征在于,
所述CPU还用于在确定所述数据处理任务为所述目标类型任务的情况下,确定所述第一共享内存的虚拟地址,将所述第一共享内存的虚拟地址转换为物理地址,得到所述第一地址。
5.根据权利要求1所述的电子设备,其特征在于,
所述任务处理单元还用于将所述处理结果写入第二共享内存;
所述任务处理单元还用于向所述CPU发送任务完成通知,所述任务完成通知用于通知所述CPU所述数据处理任务执行完成;
所述CPU还用于响应于所述任务完成通知,从所述第二共享内存中读取所述处理结果。
6.根据权利要求5所述的电子设备,其特征在于,所述电子设备还包括第三寄存器;
所述任务处理单元用于在将所述处理结果写入所述第二共享内存之后,更新所述第三寄存器中存储的执行状态信息,以向所述CPU发送所述任务完成通知;
所述CPU用于在检测到所述第三寄存器的执行状态信息指示任务执行完成时,确定接收到所述任务完成通知。
7.根据权利要求6所述的电子设备,其特征在于,
所述任务处理单元还用于在确定接收到所述任务执行通知后,更新所述第三寄存器中存储的执行状态信息,更新后的执行状态信息指示任务未执行完成。
8.根据权利要求5所述的电子设备,其特征在于,
所述CPU还用于在确定所述数据处理任务属于所述目标类型任务的情况下,向所述任务处理单元通知所述第二共享内存的第二地址;
所述任务处理单元用于在确定接收到所述任务执行通知和所述第二地址的情况下,将所述处理结果写入所述第二地址指向的所述第二共享内存。
9.根据权利要求8所述的电子设备,其特征在于,所述电子设备还包括第四寄存器,
所述CPU用于在确定所述数据处理任务属于所述目标类型任务的情况下,将所述第二共享内存的第二地址写入所述第四寄存器;
所述任务处理单元用于在确定接收到所述任务执行通知的情况下,从所述第四寄存器读取所述第二地址。
10.根据权利要求8或9所述的电子设备,其特征在于,
所述CPU还用于在确定所述数据处理任务属于所述目标类型任务的情况下,确定所述第二共享内存的虚拟地址,将所述第二共享内存的虚拟地址转换为物理地址,得到所述第二地址。
11.根据权利要求5所述的电子设备,其特征在于,所述CPU在从所述第二共享内存中读取所述处理结果之后,所述CPU还用于执行以下至少之一的操作:
输出所述处理结果;
将所述处理结果存储到目标存储位置;
将所述处理结果和其他数据处理任务对应的处理结果进行整合处理。
12.根据权利要求1所述的电子设备,其特征在于,所述CPU用于在确定所述数据处理任务属于所述目标类型任务的情况下,向与所述数据处理任务所属的任务类型匹配的任务处理单元发送所述任务执行通知。
13.根据权利要求12所述的电子设备,其特征在于,所述任务处理单元包括现场可编程门阵列FPGA、图形处理器GPU、数字信号处理器DSP或专用集成电路ASIC中的至少一种处理单元。
14.一种数据处理方法,其特征在于,所述方法包括:
中央处理器CPU在接收到数据处理任务之后,检测所述数据处理任务是否属于目标类型任务,若所述数据处理任务属于所述目标类型任务,则将所述数据处理任务的任务数据写入第一共享内存;
所述CPU在将所述任务数据写入所述第一共享内存之后,通过将第一寄存器中存储的第一数值更新为第二数值,更新所述第一寄存器中存储的任务状态信息,以向任务处理单元发送任务执行通知,所述任务执行通知用于通知所述任务处理单元执行所述数据处理任务,所述第一数值指示不存在待办任务,所述第二数值指示存在待办任务;
所述任务处理单元在检测到所述第一寄存器中存储的所述第一数值更新为所述第二数值时,确定接收到所述任务执行通知,将所述第一寄存器中存储的所述第二数值恢复为所述第一数值,并响应于所述任务执行通知,从所述第一共享内存中读取所述任务数据;
所述任务处理单元根据所述任务数据执行所述数据处理任务,得到处理结果。
15.根据权利要求14所述的数据处理方法,其特征在于,所述方法还包括:
所述CPU在确定所述数据处理任务属于所述目标类型任务的情况下,向所述任务处理单元通知所述第一共享内存的第一地址;
所述任务处理单元响应于所述任务执行通知,从所述第一共享内存中读取所述任务数据,包括:
所述任务处理单元在确定接收到所述任务执行通知和所述第一地址的情况下,从所述第一地址所指向的所述第一共享内存中读取所述任务数据。
16.根据权利要求15所述的数据处理方法,其特征在于,
所述向所述任务处理单元通知所述第一共享内存的第一地址包括:所述CPU将所述第一共享内存的第一地址写入第二寄存器;
所述任务处理单元确定接收到所述第一地址,包括:所述任务处理单元从所述第二寄存器读取所述第一地址。
17.根据权利要求15或16所述的数据处理方法,其特征在于,在所述向所述任务处理单元通知所述第一共享内存的第一地址之前,所述方法还包括:
在确定所述数据处理任务为所述目标类型任务的情况下,确定所述第一共享内存的虚拟地址;
将所述第一共享内存的虚拟地址转换为物理地址,得到所述第一地址。
18.根据权利要求14所述的数据处理方法,其特征在于,在所述任务处理单元得到所述处理结果之后,所述方法还包括:
所述任务处理单元将所述处理结果写入第二共享内存;
所述任务处理单元向所述CPU发送任务完成通知,所述任务完成通知用于通知所述CPU所述数据处理任务执行完成;
所述CPU响应于所述任务完成通知,从所述第二共享内存中读取所述处理结果。
19.根据权利要求18所述的数据处理方法,其特征在于,所述任务处理单元向所述CPU发送任务完成通知,包括:
所述任务处理单元更新第三寄存器中存储的执行状态信息,以向所述CPU发送所述任务完成通知;
所述方法还包括:所述CPU在检测到所述第三寄存器的执行状态信息指示任务执行完成时,确定接收到所述任务完成通知。
20.根据权利要求18所述的数据处理方法,其特征在于,所述方法还包括:
所述CPU在确定所述数据处理任务属于所述目标类型任务的情况下,向所述任务处理单元通知所述第二共享内存的第二地址;
所述任务处理单元将所述处理结果写入第二共享内存,包括:
所述任务处理单元在确定接收到所述任务执行通知和所述第二地址的情况下,将所述处理结果写入所述第二地址指向的所述第二共享内存。
21.根据权利要求20所述的数据处理方法,其特征在于,
所述向所述任务处理单元通知所述第二共享内存的第二地址,包括:所述CPU将所述第二共享内存的第二地址写入第四寄存器;
所述任务处理单元确定接收到所述第二地址,包括:所述任务处理单元从所述第四寄存器读取所述第二地址。
22.根据权利要求20或21所述的数据处理方法,其特征在于,在所述向所述任务处理单元通知所述第二共享内存的第二地址之前,所述方法还包括:
在确定所述数据处理任务属于所述目标类型任务的情况下,确定所述第二共享内存的虚拟地址;
将所述第二共享内存的虚拟地址转换为物理地址,得到所述第二地址。
23.根据权利要求18所述的数据处理方法,其特征在于,所述CPU在从所述第二共享内存中读取所述处理结果之后,所述CPU还用于执行以下至少之一的操作:
输出所述处理结果;
将所述处理结果存储到目标存储位置;
将所述处理结果和其他数据处理任务对应的处理结果进行整合处理。
24.根据权利要求14所述的数据处理方法,其特征在于,所述向所述任务处理单元发送任务执行通知,包括:
所述CPU向与所述数据处理任务所属的任务类型匹配的任务处理单元发送所述任务执行通知。
25.根据权利要求24所述的数据处理方法,其特征在于,所述任务处理单元包括现场可编程门阵列FPGA、图形处理器GPU、数字信号处理器DSP或专用集成电路ASIC中的至少一种处理单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010843352.9A CN111930510B (zh) | 2020-08-20 | 2020-08-20 | 电子设备和数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010843352.9A CN111930510B (zh) | 2020-08-20 | 2020-08-20 | 电子设备和数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930510A CN111930510A (zh) | 2020-11-13 |
CN111930510B true CN111930510B (zh) | 2024-05-07 |
Family
ID=73305943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010843352.9A Active CN111930510B (zh) | 2020-08-20 | 2020-08-20 | 电子设备和数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930510B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051218A (zh) * | 2021-03-30 | 2021-06-29 | 联想(北京)有限公司 | 一种处理器、数据处理方法及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108805292A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 用于自主机器的机器学习中的即时深度学习 |
CN109308280A (zh) * | 2017-07-26 | 2019-02-05 | 杭州华为数字技术有限公司 | 数据处理方法和相关设备 |
-
2020
- 2020-08-20 CN CN202010843352.9A patent/CN111930510B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108805292A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 用于自主机器的机器学习中的即时深度学习 |
CN109308280A (zh) * | 2017-07-26 | 2019-02-05 | 杭州华为数字技术有限公司 | 数据处理方法和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111930510A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020135384A1 (zh) | 进行数据压缩的方法和装置 | |
EP3500935A1 (en) | Method and apparatus for compressing addresses | |
CN105700821B (zh) | 半导体装置及其压缩/解压缩方法 | |
CN108780420A (zh) | 在基于处理器的系统中的存储器中的经压缩存储器线的基于优先级的存取 | |
EP4390706A1 (en) | Embedded vector prefetching method, apparatus and system, and related device | |
CN111930510B (zh) | 电子设备和数据处理方法 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN108776665B (zh) | 一种数据处理方法及装置 | |
CN113033785B (zh) | 芯片、神经网络训练系统、内存管理方法及装置、设备 | |
US10489350B2 (en) | Data compression with inline compression metadata | |
CN117033275B (zh) | 加速卡间的dma方法、装置、加速卡、加速平台及介质 | |
CN113177015A (zh) | 基于帧头的串口通讯方法和串口芯片 | |
CN113079219A (zh) | 一种大文件分片上传方法和系统 | |
CN115190102B (zh) | 信息广播方法、装置、电子单元、soc及电子设备 | |
CN116489177A (zh) | 一种基于块存储的io访问方法、装置、电子设备及介质 | |
CN113626080B (zh) | 数据处理装置以及相关产品 | |
WO2018052718A1 (en) | Method and apparatus for masking and transmitting data | |
CN110647355B (zh) | 数据处理器和数据处理方法 | |
CN107958036B (zh) | 一种音乐边缓存边播放方法、系统及装置 | |
JP7363344B2 (ja) | メモリ制御装置、および制御方法 | |
CN114610661B (zh) | 数据处理装置、方法和电子设备 | |
EP2897052B1 (en) | Address compression and decompression method, compressor and decompressor | |
CN212873459U (zh) | 一种用于数据压缩存储的系统 | |
CN113297111B (zh) | 人工智能芯片及其操作方法 | |
CN113626083B (zh) | 数据处理装置以及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |