CN111444022B - 数据处理方法、系统以及电子设备 - Google Patents
数据处理方法、系统以及电子设备 Download PDFInfo
- Publication number
- CN111444022B CN111444022B CN202010277743.9A CN202010277743A CN111444022B CN 111444022 B CN111444022 B CN 111444022B CN 202010277743 A CN202010277743 A CN 202010277743A CN 111444022 B CN111444022 B CN 111444022B
- Authority
- CN
- China
- Prior art keywords
- processing device
- data
- processing
- subtask
- buffer area
- 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 26
- 238000012545 processing Methods 0.000 claims abstract description 405
- 238000000034 method Methods 0.000 claims abstract description 110
- 230000008569 process Effects 0.000 claims abstract description 84
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000009877 rendering Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本申请实施例公开了一种数据处理方法、系统以及电子设备。所述方法包括:当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令;所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域;所述第一处理器件对所述第二数据进行处理得到所述当前目标任务对应的输出数据。本方法使得第一处理器件能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。
Description
技术领域
本申请涉及电子技术领域,更具体地,涉及一种数据处理方法、系统以及电子设备。
背景技术
随着电子设备对于数据处理的需要,电子设备中除了原本的处理器之外还会配置其他的处理器件来进行数据处理,使得处理器和其他的处理器件之间可以协同进行数据处理。但是,在相关的处理器与其他的处理器件协同行数据处理的方式中,还存在吞吐率有待提升的问题。
发明内容
鉴于上述问题,本申请提出了一种数据处理方法、系统以及电子设备,以改善上述问题。
第一方面,本申请提供了一种数据处理方法,应用于电子设备,所述电子设备至少包括第一处理器件以及第二处理器件;所述方法包括:当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务;所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域;所述第一处理器件对所述第二数据进行处理得到所述当前目标任务对应的输出数据。
第二方面,本申请提供了一种数据处理系统,至少包括第一处理器件以及第二处理器件;所述第一处理器件,用于当执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务;所述第二处理器件,用于响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域;所述第一处理器件,还用于对所述第二数据进行处理得到所述当前目标任务对应的输出数据。
第三方面,本申请提供了一种电子设备,所述电子设备至少包括数据输出器件以及前述所示的数据处理系统;所述数据输出器件用于对所述输出数据进行输出。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被第一数据处理器件或者第二数据处理器件运行时执行上述的方法。
本申请提供的一种数据处理方法、系统以及电子设备,在至少包括第一处理器件以及第二处理器件的情况下,当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务,从而使得所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域的过程中,第一处理器件会同步处理当前目标任务以外的其他目标任务,进而使得第一处理器件能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提出的一种数据处理方法的流程图;
图2示出了本申请实施例中多次图像采集任务各自为对当前所采集的一帧图像进行处理的示意图;
图3示出了本申请实施例中一种第一处理器件和第二处理器件异步处理的示意图;
图4示出了本申请实施例中另一种第一处理器件和第二处理器件异步处理的示意图;
图5示出了本申请另一实施例提出的一种数据处理方法的流程图;
图6示出了本申请实施例中多线程模式中第一处理器件和第二处理器件异步处理的示意图;
图7示出了本申请实施例中多线程且多缓冲模式中第一处理器件和第二处理器件异步处理的示意图;
图8示出了本申请再一实施例提出的一种数据处理方法的流程图;
图9示出了本申请又一实施例提出的一种数据处理方法的流程图;
图10示出了本申请实施例提出的一种数据处理系统的结构框图;
图11示出了本申请的用于执行根据本申请实施例的数据处理方法的另一种电子设备的结构框图;
图12是本申请实施例的用于保存或者携带实现根据本申请实施例的数据处理方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
中央处理器(CPU,central processing unit),也可以简称为处理器,作为电子设备中的运算和控制核心,是信息处理、程序运行的最终执行单元。而随着电子设备的功能日益丰富,所需处理的数据量也越来越大,所以在电子设备中还会配置其他的处理器件来协同处理器进行数据处理。
例如,在电子设备运行游戏程序的过程中,电子设备的处理器可以负责运行游戏程序中的主程序,进而实现游戏基本功能的实现,而对于游戏场景中的画面的渲染则可以配置给处理器以外的处理器件来执行。再例如,在电子设备运行图像采集程序的过程中,处理器可以负责运行图像采集程序的主程序,进而实现图像的采集,而对于所采集图像的优化(例如,降噪)则可以配置给处理器以外的处理器件来执行。
但是,发明人在研究相关的处理器与其他处理器件协同进行数据处理的过程中发现,在该过程中还存在数据处理效率有待提升的问题。具体的,以处理器和DSP(DigitalSignal Processor,数字信号处理器)之间的协同为例,在一些数据处理场景中,整体任务中会配置有部分任务由数字信号处理器来完成,在这种情况下,处理器会在处理任务的过程中检测到需要数字信号处理器负责完成的部分时,将触发数字信号处理器来执行该部分任务,但是,在数字信号处理器处理该部分任务的过程中,处理器会一直等待数字信号处理器的处理结果,进而造成处理器在数字信号处理器执行该部分任务的过程中处于空闲状态,造成了处理资源无法被高效利用,进而造成了存在数据处理效率以及吞吐率有待提升的问题。
因此,发明人在研究中发现上述问题后,提出了本申请中可以改善上述问题的数据处理方法、系统以及电子设备。在至少包括第一处理器件以及第二处理器件的情况下,当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务,从而使得所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域的过程中,第一处理器件会同步处理当前目标任务以外的其他目标任务,进而使得第一处理器件能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。
下面将结合附图具体描述本申请的各实施例。
请参阅图1,本申请实施例提供的一种数据处理方法,应用于电子设备,所述电子设备至少包括第一处理器件以及第二处理器件;所述方法包括:
S110:当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务。
其中,目标任务为响应于指定事件触发而进入该指定事件对应的场景后所对应执行的任务。可选的,该场景可以对应有多次任务以实现该场景所需要的处理效果。其中,场景对应的任务中还可以包括多个子任务。
示例性的,以图像采集场景为例。当检测到电子设备中所安装的图像采集应用程序启动时,确定图像场景触发进而进入到图像采集场景中。可选的,在所进入的图像采集场景中包括有图像采集任务。对应的,在该图像采集场景中包括有多次图像采集任务以便可以实时的对所采集的图像进行处理。其中,作为一种方式,该多次图像采集任务各自为对当前所采集的一帧图像进行处理。例如,如图2所示,图2中图像10、图像11以及图像12分别为依次采集的三帧图像,对应的图像采集任务20、图像采集任务21以及图像采集任务22各自为对当前所采集的一帧图像进行处理,其中,当图像10被采集时图像10即为当前所采集的一帧图像,进而图像采集任务20配置为对其中所采集的一帧图像10进行处理,类似的当图像11被采集时图像11即为当前所采集的一帧图像,图像采集任务21配置为对其中所采集的一帧图像11进行处理,对应的,图像采集任务22配置为对其中所采集的一帧图像12进行处理。
此外,除了前述的图像采集场景外,还可以包括有其他的场景。
可选的,还可以包括有游戏场景。在这种情况下,当电子设备检测到游戏应用程序启动时,确定游戏场景触发进而进入到游戏场景中。在游戏场景中可以包括有多次的关于游戏数据的数据处理任务。其中,该数据处理任务可以包括有多次图像渲染任务、多次音效处理任务以及多次数据传输任务等。其中,图像渲染任务配置为渲染用户可见的游戏画面,该音效处理任务配置为输出用户可以提到的游戏音效,而数据传输任务则配置为将本地用户的游戏数据传输给其他用户以及接收其他用户的所传输来的游戏数据。
其中,不伦对于前述的图像采集场景中的图像采集任务,还是对于游戏场景中的图像渲染任务、音效处理任务以及数据传输任务,都是目标任务的一种示例。在这种情况下,当前所需要执行的目标任务则为当前目标任务。请再次参阅图2,若当前所采集的图像为图像10,那么对针对当前所采集的图像10所配置的图像采集任务20则为当前目标任务。再例如,若当前所采集的图像为图像11,那么对针对当前所采集的图像11所配置的图像采集任务21则为当前目标任务。
需要说明的是,前述的图像采集场景和游戏场景都是示例性的,本申请还可以包括除了图像采集场景和游戏场景以外更多的场景。例如,还可以包括视频处理场景。
在本申请实施例中对于每个目标任务可以包括更为细化的子任务。可选的,对于前述的图像采集任务、图像渲染任务、音效处理任务以及数据传输任务都可以再各自包括更为细化的任务,以作为子任务。以图像采集任务为例,该图像采集任务可以包括有图像读取子任务、图像降噪子任务以及图像压缩子任务等。其中,图像读取子任务配置为从缓存中读取出需要进行处理的图像,图像降噪子任务配置为对所读取出的图像进行降噪处理,而图像压缩子任务配置为对降噪后的图像进行压缩以便进行传输。
那么在目标任务包括有多个子任务的情况下,为了提升整体的处理效率可以将该多个子任务分别配置给不同的处理器件进行处理。在本实施例中,子任务中的第一子任务可以理解为第一个子任务,并且将该第一任务配置由第一处理器件进行处理,而将处于处理顺序上靠后的第二子任务配置给第二处理器件进行处理。
示例性的,如图3所示,目标任务包括有第一子任务、第二子任务、第三子任务以及第四子任务,其中,算法1为对应于第一子任务所需执行的算法,算法2为对应于第二子任务所需执行的算法,算法3为对应于第三子任务所需执行的算法,算法4为对应于第四子任务所需执行的算法。如图所示,其中的第二子任务所对应的算法2则可以独立于其他子任务而配置由第二处理器件来执行。
可选的,第一处理器件在执行完第一子任务后,就可以通过指令的方式触发第二处理器件继续执行第二子任务。在本实施例中,为了使得第二处理器件在执行第二子任务的过程中,第一处理器件可以不处于空闲状态,第一处理器件会通过异步的方式触发第二处理器件继续执行第二子任务,而第一处理器件则会同步执行另外的目标任务。需要说明的是,在第一处理器件同步执行另外的目标任务的过程中,可以理解为第一处理器件同步执行另外的目标任务所包括的子任务。
再者,在本实施例中第一处理器件和第二处理器件是异步且并行的方式进行数据处理的,在这种情况下,当第一处理器件完成一个子任务后,第二处理器件可能并不能马上紧接着进行下一子任务,那么为了能够协调两者之间的数据处理节奏,第一处理器件可以将执行当前目标任务所包括的第一子任务后得到的数据存入到第一缓冲区域中,以便第二处理器件在开始执行当前目标任务所包括的第二子任务时,直接从该第一缓冲区域中进行数据获取。
S120:所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域。
对应的,第一处理器件和第二处理器件都是并行进行的子任务执行的,那么在第二处理器件完成所需执行的子任务后,第一处理器件也可能还无法即时的对应的下一个子任务,那么第二处理器件就可以将所得到的数据存储到第二缓冲区域中,以便第一处理器件可以直接从该第二缓冲区域中读取所需进一步处理的数据。
S130:所述第一处理器件对所述第二数据进行处理得到所述当前目标任务对应的输出数据。
当第二处理器件完成数据处理后,第一处理器件可以直接获取到第二处理器件所处理后的数据进行输出,也可以进行再次的处理后再输出。
可选的,在当前目标任务包括有第一子任务、第二子任务、第三子任务以及第四子任务,且第一子任务、第三子任务以及第四子任务配置为由第一处理器件执行,第二子任务配置为由第二处理器件执行的情况下,在第二处理器件完成第二子任务后,第一处理器件还会再进一步的执行第三子任务以及第四子任务,然后将第四任务执行后所得到的数据进行输出。
依然以前述图像采集任务为例,该图像采集任务可以包括有图像读取子任务、图像降噪子任务以及图像压缩子任务。其中的图像降噪子任务配置为由第二处理器件执行,图像读取子任务和图像压缩子任务由第一处理器件执行,在这种情况下,当第二处理器件执行完图像降噪子任务得到降噪后的图像后,第一处理器件会进一步的执行图像压缩子任务以得到压缩后的图像。
下面再通过附图对本申请实施例所涉及的技术效果进行介绍。
如图4所示,图4中的F1表征的是当前目标任务对应的一帧图像,而F2表征的是下一个目标任务对应的一帧图像。那么“F1算法1”表征对当前目标任务对应的一帧图像执行第一子任务所对应的算法1,对应的“F2算法1”表征对下一个目标任务对应的一帧图像执行第一子任务所对应的算法1。在这种情况下,第一处理器件所处理的另外的目标任务则可以理解为下一个目标任务所包括的第一子任务。并且,从图4中可以看出,第一处理器件可以不间断的执行F1算法1、F2算法1、F1算法3、F1算法4、F2算法3以及F2算法4,并且第二处理器件也可以不间断执行F1算法2以及F2算法2,从而使得第一处理器件和第二处理器件减少处于空闲的时间,提升了整体的处理效率以及吞吐率。
可选的,在本实施例中,第一处理器件为CPU,第二处理器件为数字信号处理器。可选的,第一处理器件为CPU中的第一核,第二处理器件为同一个CPU中的第二核。
下面再通过时间比对的方式来对本申请实施例所起到的技术效果进行说明。
假设每个算法的耗时记为Tx,则在相关方式中处理原来两帧数据(即图4中的F1和F2这两帧)的处理时间为:
Torig=(T1+T2+T3+T4)*2;
在本实施例提供的方法的处理时间为:
Tnow=T1+max(2T2,T1+2T3+2T4);
其中,Torig-Tnow=T1+2T3+2T4或Torig–Tnow=2T2。
其中,T1为执行算法1的耗时,T2为执行算法2的耗时,T3为执行算法3的耗时,T4为执行算法4的耗时。从前述时间对比可以发现,本实施例提供的方法的处理时间短于相关方式的处理时间。
需要说明的是,第一处理器件对所述第二数据进行处理得到所述当前目标任务对应的输出数据可以理解为第一处理器件输出给其他器件的数据。其中,该其他器件可以包括存储器件或者网络器件。
本实施例提供的一种数据处理方法,在至少包括第一处理器件以及第二处理器件的情况下,当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务,从而使得所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域的过程中,第一处理器件会同步处理当前目标任务以外的其他目标任务,进而使得第一处理器件能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。
请参阅图5,本申请实施例提供的一种数据处理方法,应用于电子设备,所述电子设备至少包括第一处理器件以及第二处理器件;所述方法包括:
S210:当所述第一处理器件基于第一线程执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件基于所述第一线程同步执行另外的目标任务。
需要说明的是,在本实施例中第一处理器件和第二处理器件都各自支持多线程模式。
S220:所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域。
S230:所述第一处理器件对所述第二数据进行处理得到所述当前目标任务对应的输出数据。
下面再通过附图来对本实施的方案进行说明。
如图6所示,第一处理器件配置有第一线程和第二线程,对应的,第二处理器件也配置有第一线程和第二线程。而在目标任务依然包括第一子任务、第二子任务、第三子任务以及第四子任务,且算法1为对应于第一子任务所需执行的算法,算法2为对应于第二子任务所需执行的算法,算法3为对应于第三子任务所需执行的算法,算法4为对应于第四子任务所需执行的算法的情况下,由第一处理器件负责执行的算法1、算法3以及算法4可以分别由不同的线程来执行,而第二处理器件负责执行的算法2也可以由不同的线程来执行。从而通过这种方式,使得第一处理器件和第二处理器件在单位时间内所能处理的数据量能够得到提升,从而进一步的提升了吞吐率。
需要说明的是,在第一处理器件和第二处理器件都各自支持多线程模式的情况下,在电子设备中还可以分别针对第一处理器件和第二处理器件配置线程池。如图7所示,配置有第一处理器件队列作为第一缓冲区域,配置有第二处理器件队列作为第二缓冲区域,还配置有原始数据队列存储初始采集的图像。在这种情况下,当原始数据队列中有图像生产者所采集的图像后,第一处理器件线程池中的第一线程就开始从该原始数据队列中读取数据,然后开始执行第一子任务,在执行完第一子任务后将所产生的数据(例如,前述所示的第一数据)存储到第一处理器件队列中,并触发第二处理器件开始执行第二子任务,对应的,第二处理器件中的第一线程开始执行第二子任务,在这个过程中,第一处理器件的第一线程还会同时执行另外的目标任务的某一个子任务。当第二处理器件的第一线程完成第二子任务的执行后,会将所产生的数据(例如,前述所示的第二数据)存储到第二处理器件队列中,并触发第一处理器件的第一线程继续完成后续的处理,并将处理得到的数据传输给图像消费者。
本实施例提供的一种数据处理方法,在至少包括第一处理器件以及第二处理器件的情况下,当所述第一处理器件基于第一线程执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同时基于第一线程同步执行另外的目标任务,从而使得所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域的过程中,第一处理器件原本执行当前目标任务的第一线程会同步处理当前目标任务以外的其他目标任务,进而使得第一处理器件在基于多线程的工作过程中能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。
请参阅图8,本申请实施例提供的一种数据处理方法,应用于电子设备,所述电子设备至少包括第一处理器件以及第二处理器件;所述方法包括:
S310:当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务。
S320:所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域。
S330:所述第一处理器件对所述第二数据进行处理得到所述当前目标任务对应的输出数据。
S340:获取所述第一处理器件处理相同任务的处理耗时。
S350:基于所述耗时调整所述第二缓冲区域的存储空间的大小。
需要说明的是,第一处理器件在处理目标任务的过程中还有可能会同步处理其他的数据处理任务。示例性的,若当前处于图像采集场景时,电子设备还可能同步在进行音频的采集,或者还可能同步在进行网络数据的获取,基于第一处理器件需要同步执行多种任务,就会造成该多种任务都在消耗第一处理器件的处理资源,进而造成第一处理器件在处理相同的目标任务的过程中,与该相同的目标任务同步执行的其他任务时不同的,就会造成第一处理器件在处理相同的目标任务的过程中会有不同的处理耗时。例如,都是处理目标任务中的第一子任务,可能前一次是耗时5ms,而当次就可能会耗时20ms。
可以理解的是,第二处理器件所处理后的数据会再次交给第一处理器件进行处理,而第二处理器件所处理得到的数据会先缓冲到第二缓冲区域中,若第一处理器件在处理在前的子任务耗时过多,就会造成在后处理的子任务被迫延时,而在后处理的子任务被迫延时就无法即时的从该第二缓冲区域读取数据进行处理,就会造成第二缓冲区域中缓冲过度的数据,继而为了防止第二缓冲区域中数据溢出,就可以基于所述耗时调整所述第二缓冲区域的存储空间的大小。
作为一种方式,所述基于所述耗时调整所述第二缓冲区域的存储空间的大小,包括:若所述耗时的波动幅度由不大于第一指定幅度阈值变为大于所述第一指定幅度阈值,增大所述第二缓冲区域的存储空间;若所述耗时的波动幅度由大于所述第一指定幅度阈值变为不大于所述第一指定幅度阈值,减小所述第二缓冲区域的存储空间。
可选的,该第一指定幅度阈值可以根据当前所处的场景来确定。需要说明的是,在电子设备处于游戏场景或者图像采集场景时,所需要处理的数据的数量是不同的,而通过场景来进行第一指定幅度阈值的确定,可以进一步的提升数据处理的灵活性与稳定性。可选的,若当前所处场景对应所需处理数据的数据量越大,那么对应的第一指定幅度阈值就越小,进而使得在所需处理数据的数据量较大时,更为容易触发第二缓冲区域的存储空间的调整,以维持数据处理的稳定。
本实施例提供的一种数据处理方法,使得所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域的过程中,第一处理器件会同步处理当前目标任务以外的其他目标任务,进而使得第一处理器件能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。并且,在本实施例中,还可以基于第一处理器件处理相同任务的处理耗时来对第二缓冲区域的存储空间的大小进行调整,进而提升了第一处理器件和第二处理器件协同过程中的数据处理的稳定性。
请参阅图9,本申请实施例提供的一种数据处理方法,应用于电子设备,所述电子设备至少包括第一处理器件以及第二处理器件;所述方法包括:
S410:当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务。
S420:所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域。
S430:所述第一处理器件对所述第二数据进行处理得到所述当前目标任务对应的输出数据。
S440:获取所述第二处理器件处理相同任务的处理耗时。
S450:基于所述耗时调整所述第一缓冲区域的存储空间的大小。
需要说明的是,第二处理器件在处理目标任务的过程中还有可能会同步处理其他的数据处理任务。示例性的,若当前处于图像采集场景时,电子设备还可能同步在进行音频的采集,或者还可能同步在进行网络数据的获取,基于第二处理器件需要同步执行多种任务,就会造成该多种任务都在消耗第二处理器件的处理资源,进而造成第二处理器件在处理相同的目标任务的过程中,与该相同的目标任务同步执行的其他任务时不同的,就会造成第二处理器件在处理相同的目标任务的过程中会有不同的处理耗时。例如,都是处理目标任务中的第二子任务,可能前一次是耗时2ms,而当次就可能会耗时10ms。
可以理解的是,第一处理器件所处理后的数据会再次交给第二处理器件进行处理,而第一处理器件所处理得到的数据会先缓冲到第一缓冲区域中,若第二处理器件在处理在前的子任务耗时过多,就会造成在后处理的子任务被迫延时,而在后处理的子任务被迫延时就无法即时的从该第一缓冲区域读取数据进行处理,就会造成第一缓冲区域中缓冲过度的数据,继而为了防止第一缓冲区域中数据溢出,就可以基于所述耗时调整所述第一缓冲区域的存储空间的大小。
作为一种方式,所述基于所述耗时调整所述第一缓冲区域的存储空间的大小,包括:若所述耗时的波动幅度由不大于第二指定幅度阈值变为大于所述第二指定幅度阈值,增大所述第一缓冲区域的存储空间;若所述耗时的波动幅度由大于所述第二指定幅度阈值变为不大于所述第二指定幅度阈值,减小所述第一缓冲区域的存储空间。
需要说明的是,在本实施例中可以基于与前述确定第一指定幅度阈值的方式来确定第二指定幅度阈值。
本实施例提供的一种数据处理方法,使得所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域的过程中,第一处理器件会同步处理当前目标任务以外的其他目标任务,进而使得第一处理器件能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。并且,在本实施例中,还可以基于第二处理器件处理相同任务的处理耗时来对第一缓冲区域的存储空间的大小进行调整,进而提升了第一处理器件和第二处理器件协同过程中的数据处理的稳定性。
需要说明的是,作为一种方式,电子设备可以同时基于前述实施例的方式调整所述第一缓冲区域的存储空间的大小以及调整所述第二缓冲区域的存储空间的大小。
请参阅图10,本申请实施例提供的一种数据处理系统500,至少包括第一处理器件510以及第二处理器件520。
所述第一处理器件510,用于当执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务。
所述第二处理器件520,用于响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域。
所述第一处理器件510,还用于对所述第二数据进行处理得到所述当前目标任务对应的输出数据。
作为一种方式,所述第一处理器件对应有多个线程。在这种方式下,所述第一处理器件510,具体用于当基于第一线程执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件基于所述第一线程同步执行另外的目标任务。
作为一种方式,所述第一处理器件510,还用于获取所述第一处理器件处理相同任务的处理耗时;基于所述耗时调整所述第二缓冲区域的存储空间的大小。可选的,所述第一处理器件510,还具体用于若所述耗时的波动幅度由不大于第一指定幅度阈值变为大于所述第一指定幅度阈值,增大所述第二缓冲区域的存储空间;若所述耗时的波动幅度由大于所述第一指定幅度阈值变为不大于所述第一指定幅度阈值,减小所述第二缓冲区域的存储空间。
作为一种方式,所述第一处理器件510,还用于获取所述第二处理器件处理相同任务的处理耗时;基于所述耗时调整所述第一缓冲区域的存储空间的大小。可选的,第一处理器件510,还具体用于若所述耗时的波动幅度由不大于第二指定幅度阈值变为大于所述第二指定幅度阈值,增大所述第一缓冲区域的存储空间;若所述耗时的波动幅度由大于所述第二指定幅度阈值变为不大于所述第二指定幅度阈值,减小所述第一缓冲区域的存储空间。
可选的,所述第一处理器件为CPU,所述第二处理器件为数字信号处理器件。
本实施例提供的一种数据处理系统,使得所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域的过程中,第一处理器件会同步处理当前目标任务以外的其他目标任务,进而使得第一处理器件能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
下面将结合图11对本申请提供的一种电子设备进行说明。
请参阅图11,基于上述的数据处理方法,本申请实施例还提供的另一种包括可以执行前述数据处理方法的第一处理器件102以及第二处理器件103的电子设备200。电子设备200还包括存储器104以及数据输出器件106。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而第一处理器件102以及第二处理器件103可以执行该存储器104中存储的程序。
其中,第一处理器件102可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器102利用各种接口和线路连接整个电子设备200内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备200的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable GateArray,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
该数据输出器件106用于对本地的数据进行输出。可选的,该数据输出器件106可以为网络器件。网络器件用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述网络器件可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络器件可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络器件可以与基站进行信息交互。
请参考图12,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1100可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。
综上所述,本申请提供的一种数据处理方法、系统以及电子设备,在至少包括第一处理器件以及第二处理器件的情况下,当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务,从而使得所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域的过程中,第一处理器件会同步处理当前目标任务以外的其他目标任务,进而使得第一处理器件能够得到更充分的利用,从而提升了第一处理器件和第二处理器件协同过程中的数据处理效率以及数据处理的吞吐率。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种数据处理方法,其特征在于,应用于电子设备,所述电子设备至少包括第一处理器件以及第二处理器件;所述方法包括:
当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务;
所述第二处理器件响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域;
所述第一处理器件对所述第二数据进行处理得到所述当前目标任务对应的输出数据,其中,所述第二缓冲区域的大小为基于所述第一处理器件处理相同任务的处理耗时进行调整,以防止所述第二缓冲区域中数据溢出,其中,若所述耗时的波动幅度由不大于第一指定幅度阈值变为大于所述第一指定幅度阈值,增大所述第二缓冲区域的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述第一处理器件对应有多个线程;当所述第一处理器件执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务,包括:
当所述第一处理器件基于第一线程执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件基于所述第一线程同步执行另外的目标任务。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述耗时的波动幅度由大于所述第一指定幅度阈值变为不大于所述第一指定幅度阈值,减小所述第二缓冲区域的存储空间。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取所述第二处理器件处理相同任务的处理耗时;
基于所述耗时调整所述第一缓冲区域的存储空间的大小。
5.根据权利要求4所述的方法,其特征在于,所述基于所述耗时调整所述第一缓冲区域的存储空间的大小,包括:
若所述耗时的波动幅度由不大于第二指定幅度阈值变为大于所述第二指定幅度阈值,增大所述第一缓冲区域的存储空间;
若所述耗时的波动幅度由大于所述第二指定幅度阈值变为不大于所述第二指定幅度阈值,减小所述第一缓冲区域的存储空间。
6.根据权利要求1所述的方法,其特征在于,所述第一处理器件为CPU,所述第二处理器件为数字信号处理器件。
7.一种数据处理系统,其特征在于,至少包括第一处理器件以及第二处理器件;
所述第一处理器件,用于当执行当前目标任务中的第一子任务产生第一数据后,将所述第一数据存入第一缓冲区域并向所述第二处理器件发送异步执行所述目标任务中的第二子任务的指令,以使所述第二处理器件执行所述第二子任务时,所述第一处理器件同步执行另外的目标任务;
所述第二处理器件,用于响应于所述指令执行所述第二子任务以对所述第一数据进行处理得到第二数据,并将所述第二数据存入第二缓冲区域;
所述第一处理器件,还用于对所述第二数据进行处理得到所述当前目标任务对应的输出数据,其中,所述第二缓冲区域的大小为基于所述第一处理器件处理相同任务的处理耗时进行调整,以防止所述第二缓冲区域中数据溢出,其中,若所述耗时的波动幅度由不大于第一指定幅度阈值变为大于所述第一指定幅度阈值,增大所述第二缓冲区域的存储空间。
8.一种电子设备,其特征在于,所述电子设备至少包括数据输出器件以及如权利要求7所示的数据处理系统;
所述数据输出器件用于对所述输出数据进行输出。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被第一数据处理器件或者第二数据处理器件运行时执行权利要求1-6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010277743.9A CN111444022B (zh) | 2020-04-08 | 2020-04-08 | 数据处理方法、系统以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010277743.9A CN111444022B (zh) | 2020-04-08 | 2020-04-08 | 数据处理方法、系统以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444022A CN111444022A (zh) | 2020-07-24 |
CN111444022B true CN111444022B (zh) | 2023-12-01 |
Family
ID=71653011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010277743.9A Active CN111444022B (zh) | 2020-04-08 | 2020-04-08 | 数据处理方法、系统以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444022B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8213518B1 (en) * | 2006-10-31 | 2012-07-03 | Sony Computer Entertainment Inc. | Multi-threaded streaming data decoding |
WO2018072085A1 (zh) * | 2016-10-18 | 2018-04-26 | 中兴通讯股份有限公司 | 多设备协同操作的方法及设备、计算机存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080195843A1 (en) * | 2007-02-08 | 2008-08-14 | Jaya 3D Llc | Method and system for processing a volume visualization dataset |
-
2020
- 2020-04-08 CN CN202010277743.9A patent/CN111444022B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8213518B1 (en) * | 2006-10-31 | 2012-07-03 | Sony Computer Entertainment Inc. | Multi-threaded streaming data decoding |
WO2018072085A1 (zh) * | 2016-10-18 | 2018-04-26 | 中兴通讯股份有限公司 | 多设备协同操作的方法及设备、计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111444022A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112004086B (zh) | 视频数据处理方法及装置 | |
CN109947569B (zh) | 绑定核心的方法、装置、终端及存储介质 | |
CN109409513B (zh) | 一种基于神经网络的任务处理方法及相关设备 | |
CN109151966B (zh) | 终端控制方法、装置、终端设备及存储介质 | |
CN109120988B (zh) | 解码方法、装置、电子设备以及存储介质 | |
JP7186877B2 (ja) | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 | |
CN109361950B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN109862409B (zh) | 视频解码、播放方法、装置、系统、终端及存储介质 | |
CN109688465B (zh) | 视频增强控制方法、装置以及电子设备 | |
CN109618228B (zh) | 视频增强控制方法、装置以及电子设备 | |
CN112057842B (zh) | 帧率控制方法、装置以及电子设备 | |
KR20230039723A (ko) | 프로젝션 데이터 프로세싱 방법 및 장치 | |
CN111432262A (zh) | 页面视频渲染方法及装置 | |
CN110599581B (zh) | 图像模型数据处理方法、装置以及电子设备 | |
CN112135081A (zh) | 模式控制方法、装置、插帧芯片以及电子设备 | |
CN109587561B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN114339412A (zh) | 视频质量增强方法、移动终端、存储介质及装置 | |
CN111444022B (zh) | 数据处理方法、系统以及电子设备 | |
WO2020107970A1 (zh) | 视频解码方法、装置、电子设备及存储介质 | |
CN111111175A (zh) | 一种游戏画面生成方法、装置和移动终端 | |
CN105450543B (zh) | 语音数据传输方法 | |
CN114968564A (zh) | 目标对象处理方法、装置以及电子设备 | |
CN117011154A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN114995898A (zh) | 目标对象处理方法、装置以及电子设备 | |
CN114003314A (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 |