CN116955244A - 数据处理方法、系统、芯片及终端 - Google Patents
数据处理方法、系统、芯片及终端 Download PDFInfo
- Publication number
- CN116955244A CN116955244A CN202310361448.5A CN202310361448A CN116955244A CN 116955244 A CN116955244 A CN 116955244A CN 202310361448 A CN202310361448 A CN 202310361448A CN 116955244 A CN116955244 A CN 116955244A
- Authority
- CN
- China
- Prior art keywords
- lock
- task
- data processing
- synchronization lock
- hardware
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 369
- 230000001360 synchronised effect Effects 0.000 claims abstract description 176
- 238000000034 method Methods 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims description 11
- 238000013473 artificial intelligence Methods 0.000 abstract description 19
- 238000005516 engineering process Methods 0.000 abstract description 13
- 238000007726 management method Methods 0.000 description 91
- 230000008569 process Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 6
- 230000003111 delayed effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
Abstract
本申请实施例公开了一种数据处理方法、系统、芯片及终端,属于计算机技术领域。本申请实施例可应用于云技术、人工智能、图像识别、语音识别等场景。方法包括:SPU向DMA和VPU分别下发任务信息;DMA基于SPU下发的第一任务信息,在DMA中确定第一分布式同步锁;DMA在第一分布式同步锁的状态为空闲状态,且第一分布式同步锁的值满足第一数据处理任务的执行条件的情况下,执行第一数据处理任务,向硬件同步锁管理单元发送任务完成指令;硬件同步锁管理单元基于任务完成指令,更新硬件同步锁序列中的第一硬件同步锁的值;VPU在第一硬件同步锁的值发生更新的情况下,执行第二数据处理任务。上述方案能够提高处理器的处理效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种数据处理方法、系统、芯片及终端。
背景技术
随着计算机技术的发展,处理器需要处理的数据量越来越大。处理器处理数据的过程中,通常由处理器的DMA(Direct Memory Access,直接存储访问)将处理器外部的存储器中存储的数据搬移至处理器的内部存储单元。再由处理器的VPU(Vector Process Unit,向量处理单元)对内部存储单元中存储的数据进行处理。因此,如何控制DMA搬移数据和VPU处理数据之间的时序关系,是提升处理器的处理效率的关键。
相关技术中,通常是由处理器中用于标量计算和程序流程控制的SPU(ScalarProcess Unit,标量处理单元)根据开发人与编写的软件程序,确定DMA搬移数据的时间点和VPU处理数据的时间点。SPU在对应的时间点下发任务给DMA和VPU,从而实现了通过软件的方式控制DMA和VPU之间的时序关系。
但是采用上述方法,SPU需要等待DMA执行任务完成,才能下发任务给VPU。在SPU等待期间,SPU只能处于空等状态,无法处理其他的任务。因此,SPU的利用率较低,导致处理器处理数据的效率低下。
发明内容
本申请实施例提供了一种数据处理方法、系统、芯片及终端,能够提高处理器处理数据的效率。所述技术方案如下:
一方面,提供了一种数据处理方法,应用于数据处理系统,所述数据处理系统包括直接存储访问DMA、向量处理单元VPU、标量处理单元SPU以及硬件同步锁管理单元,所述方法包括:
所述SPU向所述DMA和所述VPU分别下发任务信息;
所述DMA基于所述SPU下发的第一任务信息,在所述DMA中确定所述第一任务信息包括的第一同步锁标识所指示的第一分布式同步锁,所述第一分布式同步锁用于确定是否执行所述第一任务信息包括的第一数据处理任务;
所述DMA在所述第一分布式同步锁的状态为空闲状态,且所述第一分布式同步锁的值满足所述第一数据处理任务的执行条件的情况下,执行所述第一任务信息包括的第一数据处理任务,向所述硬件同步锁管理单元发送任务完成指令;
所述硬件同步锁管理单元基于所述任务完成指令,更新硬件同步锁序列中所述第一同步锁标识所指示的第一硬件同步锁的值;
所述VPU在所述第一硬件同步锁的值发生更新的情况下,执行所述SPU下发的第二任务信息包括的第二数据处理任务。
另一方面,提供了一种数据处理系统,所述数据处理系统包括直接存储访问DMA、向量处理单元VPU、标量处理单元SPU以及硬件同步锁管理单元;
所述标量处理单元SPU用于向所述DMA和所述VPU分别下发任务信息;
所述直接存储访问DMA用于基于所述SPU下发的第一任务信息,在所述DMA中确定所述第一任务信息包括的第一同步锁标识所指示的第一分布式同步锁,所述第一分布式同步锁用于确定是否执行所述第一任务信息包括的第一数据处理任务;
所述直接存储访问DMA还用于在所述第一分布式同步锁的状态为空闲状态,且所述第一分布式同步锁的值满足所述第一数据处理任务的执行条件的情况下,执行所述第一任务信息包括的第一数据处理任务,向所述硬件同步锁管理单元发送任务完成指令;
所述硬件同步锁管理单元用于基于所述任务完成指令,更新硬件同步锁序列中所述第一同步锁标识所指示的第一硬件同步锁的值;
所述向量处理单元VPU用于在所述第一硬件同步锁的值发生更新的情况下,执行所述SPU下发的第二任务信息包括的第二数据处理任务。
在一些实施例中,所述向量处理单元VPU,用于基于所述SPU下发的第二任务信息,在所述VPU中确定所述第二任务信息包括的第一同步锁标识所指示的第二分布式同步锁,所述第二分布式同步锁用于确定是否执行所述第二任务信息包括的第二数据处理任务;在所述第二分布式同步锁的值发生更新的情况下,更新所述第二分布式同步锁的状态为空闲状态,所述第二分布式同步锁的值在所述第一硬件同步锁的值发生更新的第一数量个时钟周期之后更新为所述第一硬件同步锁的值;在所述第二分布式同步锁的状态为空闲状态,且所述第二分布式同步锁的值满足所述第二数据处理任务的执行条件的情况下,执行所述第二任务信息包括的第二数据处理任务。
在一些实施例中,所述硬件同步锁管理单元包括所述硬件同步锁序列;所述硬件同步锁管理单元用于在所述硬件同步锁序列中确定至少一个空闲的硬件同步锁和每个硬件同步锁的标识;将任一硬件同步锁的标识作为所述第一同步锁标识发送至所述SPU;所述标量处理单元SPU,用于响应于接收到所述第一同步锁标识,生成所述第一任务信息和所述第二任务信息。
在一些实施例中,所述直接存储访问DMA包括第一多路选择器、第二多路选择器、第一同步锁序列以及第二同步锁序列;
所述第一多路选择器用于基于所述第一任务信息包括的第一同步锁标识,在第一同步锁序列中确定所述第一分布式同步锁和所述第一分布式同步锁的状态,所述第一同步锁序列用于指示所述DMA中的多个分布式同步锁的状态,所述状态包括空闲状态和非空闲状态,所述空闲状态用于指示所述DMA当前能够执行所述第一数据处理任务,所述非空闲状态用于指示所述DMA当前正在执行所述第一分布式同步锁对应的数据处理任务;
所述第二多路选择器用于基于所述第一同步锁标识,在第二同步锁序列中确定所述第一分布式同步锁的值,所述第二同步锁序列用于指示所述DMA中的多个分布式同步锁的值;
所述直接存储访问DMA用于基于所述第一任务信息包括的第一数据处理任务的任务类型,确定所述第一数据处理任务的执行条件,所述执行条件用于指示所述第一分布式同步锁的值所要满足的条件。
在一些实施例中,所述第一数据处理任务的任务类型为读任务类型,所述直接存储访问DMA用于将所述第一分布式同步锁的值为第一数值作为所述执行条件。
在一些实施例中,所述硬件同步锁单元包括所述硬件同步锁序列;所述硬件同步锁管理单元用于基于所述任务完成指令中的所述第一同步锁标识,在所述硬件同步锁序列中确定所述第一硬件同步锁;在第二数量个时钟周期之后,更新所述第一硬件同步锁的值。
在一些实施例中,所述第一数据处理任务的任务类型为读任务类型;所述硬件同步锁管理单元,用于在所述第二数量个时钟周期之后,将所述第一硬件同步锁的值由第一数值更新为第二数值。
在一些实施例中,所述向量处理单元VPU包括第三分布式同步锁;所述标量处理单元SPU,用于向所述DMA和所述VPU分别下发任务信息;所述向量处理单元VPU,用于基于所述SPU下发的第三任务信息,在所述VPU中确定所述第三任务信息包括的第二同步锁标识所指示的第三分布式同步锁,所述第三分布式同步锁用于确定是否执行所述第三任务信息包括的第三数据处理任务;所述向量处理单元VPU,还用于在所述第三分布式同步锁的状态为空闲状态,且所述第三分布式同步锁的值满足所述第三数据处理任务的执行条件的情况下,执行所述第三任务信息包括的第三数据处理任务,向所述硬件同步锁管理单元发送任务完成指令;所述硬件同步锁管理单元,用于基于所述任务完成指令,更新硬件同步锁序列中所述第二同步锁标识所指示的第二硬件同步锁的值;所述直接存储访问DMA,用于在所述第二硬件同步锁的值发生更新的情况下,执行所述SPU下发的第四任务信息包括的第四数据处理任务。
在一些实施例中,所述向量处理单元VPU,用于将所述第三分布式同步锁的值为第一数值作为所述第三数据处理任务的执行条件。
在一些实施例中,所述第三数据处理任务的任务类型为读任务类型,所述硬件同步锁管理单元,用于基于所述任务完成指令中的所述第二同步锁标识,在所述硬件同步锁序列中确定所述第二硬件同步锁;在第三数量个时钟周期之后,将所述第二硬件同步锁的值由第一数值更新为第二数值。
另一方面,提供了一种芯片,所述芯片包括数据处理系统。
另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有数据处理方法,所述处理器用于通过数据处理系统实现如上述方面所述的数据处理方法。
本申请实施例提供了一种数据处理方案,由数据处理系统执行。SPU能够向DMA和VPU分别下发任务信息。而无需SPU等待DMA执行任务完成后再向VPU下发任务,能够提高SPU的处理效率。相应地,DMA能够根据SPU下发的第一任务信息中的第一同步锁标识,在DMA中确定第一分布式同步锁。进而DMA能够根据第一分布式同步锁的状态和第一分布式同步锁的值,确定当前是否执行第一数据处理任务。而无需SPU确定DMA何时执行第一数据处理任务,实现了与SPU的解耦。并且在DMA完成任务之后DMA向硬件同步锁管理单元发送任务完成指令。硬件同步锁管理单元基于任务完成指令,能够更新硬件同步锁序列中第一硬件同步锁的值。响应于第一硬件同步锁的值发生更新,VPU及时执行第二数据处理任务,提高了处理器处理数据的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据处理系统的结构示意图;
图2是本申请实施例提供的一种数据处理方法的流程图;
图3是本申请实施例提供的一种数据处理方法的交互流程图;
图4是本申请实施例提供的一种判断逻辑的示意图;
图5是本申请实施例提供的一种数据处理的流程图;
图6是本申请实施例提供的一种分布式同步锁的示意图;
图7是本申请实施例提供的一种第一硬件同步锁的示意图;
图8是本申请实施例提供的另一种数据处理的流程图;
图9是本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的第一任务信息和第二任务信息是在充分授权的情况下获取的。
为了便于理解,以下,对本申请涉及的术语进行解释。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
图1是本申请实施例提供的一种数据处理系统的结构示意图,参见图1,数据处理系统10包括标量处理单元101、直接存储访问102、向量处理单元103以及硬件同步锁管理单元104。
可选地,数据处理系统10可以配置于AI(Artificial Intelligence,人工智能)处理器、CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)以及DSP(Digital Signal Processor,数字信号处理器)等任意类型的处理器中。数据处理系统10也可以配置于AI(Artificial Intelligence,人工智能)芯片、SOC(System On Chip,系统级芯片)、承载芯片的PCB(Printed Circuit Board,印制电路板)或者终端中。终端可以为智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能语音交互设备、智能家电、车载终端等多种类型的设备,本申请实施例对此不进行限制。
标量处理单元101用于为直接存储访问102和向量处理单元103下发包括相同的同步锁标识的任务信息。相应地,直接存储访问102和向量处理单元103基于接收到的任务信息,确定需要执行的任务和执行任务的时间。
例如,直接存储访问102根据标量处理单元101下发的第一任务信息中的第一同步锁标识,在直接存储访问102中确定第一分布式同步锁。进而直接存储访问102根据第一分布式同步锁的状态和第一分布式同步锁的值,确定当前是否执行第一任务信息中第一数据处理任务。
直接存储访问102还能够执行任务完成后,向硬件同步锁管理单元104发送任务完成指令。相应地,硬件同步锁管理单元104收到的任务完成指令之后,更新硬件同步锁序列中第一硬件同步锁的值。向量处理单元103能够在第一硬件同步锁的值发生更新的情况下,执行第二任务信息中的第二数据处理任务。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
图2是本申请实施例提供的一种数据处理方法的流程图,该方法应用于数据处理系统,数据处理系统包括DMA(Direct Memory Access,直接存储访问)、VPU(VectorProcess Unit,向量处理单元)、SPU(Scalar Process Unit,标量处理单元)以及硬件同步锁管理单元。参见图2,该方法包括:
201、SPU向DMA和VPU分别下发任务信息。
在本申请实施例中,数据处理系统可以配置于AI处理器、中央处理器、图形处理器以及数字信号处理器等任意类型的处理器中。数据处理系统也可以配置于AI芯片、系统级芯片、承载芯片的PCB或者终端中,本申请实施例对此不进行限制。
数据处理系统中的DMA能够在外部存储器与数据系统内部的存储器之间进行数据的搬移。本申请实施例以DMA将外部存储器中待处理的数据搬移至数据处理系统内部为例进行说明。VPU能够对DMA搬移至数据处理系统内部的待处理数据进行处理。SPU用于向DMA和VPU分别下发任务信息。相应地,DMA和VPU能够通过接收到的任务信息,确定需要执行的任务、任务的任务类型、任务的执行条件等信息。
由于DMA和VPU需要执行的任务较多,且DMA执行的任务和VPU执行的任务存在时序上的依赖关系。例如,VPU执行处理数据的任务,需要DMA执行搬移数据的任务的执行结果。因此,需要控制DMA和VPU执行任务的时序关系,以保证数据处理系统处理数据的效率。在本申请实施例中,通过硬件同步锁来控制DMA和VPU执行任务的时序关系。相应地,SPU为DMA和VPU下发的任务信息中包括相同的同步锁标识。同步锁标识能够指示硬件同步锁序列中任一空闲的硬件同步锁。通过为DMA和VPU指定同一个硬件同步锁,就能够通过硬件同步锁控制DMA和VPU执行任务的时序关系。
例如,通过硬件同步锁控制上述时序关系可以为,在DMA执行搬移数据的任务之前,将对应的硬件同步锁的值设为0。DMA执行任务完成之后,硬件同步锁管理单元将硬件同步锁的值更新为1。VPU能够通过硬件同步锁的值,确定DMA是否执行完成任务。在硬件同步锁的值更新为1时,VPU确定DMA执行任务完成,VPU就能够执行处理目标数据的任务。
202、DMA基于SPU下发的第一任务信息,在DMA中确定第一任务信息包括的第一同步锁标识所指示的第一分布式同步锁,第一分布式同步锁用于确定是否执行第一任务信息包括的第一数据处理任务。
在本申请实施例中,DMA中包括与硬件同步锁序列对应的多个分布式同步锁。DMA在接收到SPU下发的第一任务信息之后,DMA基于第一任务信息中包括的第一同步锁标识,在DMA中的多个分布式同步锁中确定与第一同步锁标识对应的第一分布式同步锁。由于,分布式同步锁和硬件同步锁序列中对应的硬件同步锁保持一致。因此,DMA能够直接根据第一分布式同步锁的相关信息,确定是否执行第一数据处理任务。
203、DMA在第一分布式同步锁的状态为空闲状态,且第一分布式同步锁的值满足第一数据处理任务的执行条件的情况下,执行第一任务信息包括的第一数据处理任务,向硬件同步锁管理单元发送任务完成指令。
在本申请实施例中,DMA根据当前第一分布式同步锁的状态和第一分布式同步锁的值,确定当前是否执行第一数据处理任务。第一分布式同步锁的状态包括空闲状态和非空闲状态。空闲状态表示分布式同步锁对应的上一个任务已经执行完成,DMA当前能够执行第一数据处理任务。非空闲状态表示分布式同步锁对应的上一个任务正在执行,DMA当前不能执行第一数据处理任务。
通过第一分布式同步锁的值,能够确定当前是否满足第一数据处理任务的执行条件。执行条件用于控制第一分布式同步锁的值与执行第一数据处理任务之间的关系。通过为任务配置执行条件,能够实现通过分布式同步锁控制DMA执行任务的时序。因此,在第一分布式同步锁的状态为空闲状态,且第一分布式同步锁的值满足第一数据处理任务的执行条件的情况下,表明当前能够执行第一数据处理任务。DMA通过执行第一数据处理任务,实现从外部存储器搬移待处理的数据至数据处理系统内部。DMA搬移数据完成之后,DMA向硬件同步锁管理单元发送任务完成指令。任务完成指令用于通知硬件同步锁管理单元当前第一数据处理任务已经执行完成。
204、硬件同步锁管理单元基于任务完成指令,更新硬件同步锁序列中第一同步锁标识所指示的第一硬件同步锁的值。
在本申请实施例中,硬件同步锁管理单元用于管理硬件同步锁序列中的多个硬件同步锁。硬件同步锁管理单元接收到任务完成指令之后,在硬件同步锁序列中确定上述第一同步锁标识对应的第一硬件同步锁。硬件同步锁管理单元更新第一硬件同步锁的值。
205、VPU在第一硬件同步锁的值发生更新的情况下,执行SPU下发的第二任务信息包括的第二数据处理任务。
在本申请实施例中,VPU能够根据更新后的第一硬件同步锁的值,确定是否执行处理数据的任务。在第一硬件同步锁的值发生更新的情况下,VPU确定第一数据处理任务已执行完毕,若当前满足第二数据处理任务的执行条件,则VPU执行第二数据处理任务。其中,第二数据处理任务即为VPU处理DMA搬移至数据处理系统内部的待处理数据。
本申请实施例提供了一种数据处理方法,由数据处理系统执行。SPU能够向DMA和VPU分别下发任务信息。而无需SPU等待DMA执行任务完成后再向VPU下发任务,能够提高SPU的处理效率。相应地,DMA能够根据SPU下发的第一任务信息中的第一同步锁标识,在DMA中确定第一分布式同步锁。进而DMA能够根据第一分布式同步锁的状态和第一分布式同步锁的值,确定当前是否执行第一数据处理任务。而无需SPU确定DMA何时执行第一数据处理任务,实现了与SPU的解耦。并且在DMA完成任务之后DMA向硬件同步锁管理单元发送任务完成指令。硬件同步锁管理单元基于任务完成指令,能够更新硬件同步锁序列中第一硬件同步锁的值。响应于第一硬件同步锁的值发生更新,VPU及时执行第二数据处理任务,提高了处理器处理数据的效率。
图3是本申请实施例提供的一种数据处理方法的交互流程图,该方法应用于数据处理系统,数据处理系统包括DMA(Direct Memory Access,直接存储访问)、VPU(VectorProcess Unit,向量处理单元)、SPU(Scalar Process Unit,标量处理单元)以及硬件同步锁管理单元。参见图3,该方法包括:
301、硬件同步锁管理单元在硬件同步锁序列中确定至少一个空闲的硬件同步锁和每个硬件同步锁的标识。
在本申请实施例中,数据处理系统可以配置于AI处理器、中央处理器、图形处理器以及数字信号处理器等任意类型的处理器中。数据处理系统也可以配置于AI芯片、系统级芯片、承载芯片的PCB或者终端中,本申请实施例对此不进行限制。
响应于数据处理系统接收到数据处理任务,数据处理系统调用硬件同步锁管理单元,在硬件同步锁序列中确定一个空闲的硬件同步锁来辅助执行该数据处理任务。上述至少一个空闲的硬件同步锁用于控制DMA和VPU执行上述数据处理任务的时序关系。
302、硬件同步锁管理单元将任一硬件同步锁的标识作为第一同步锁标识发送至SPU。
在本申请实施例中,数据处理系统接收到数据处理任务之后,需要调用DMA和VPU执行数据处理任务。例如,数据处理任务为处理外部存储器中存储的目标数据。在执行上述数据处理任务的过程中,需要DMA先将外部存储器存储的目标数据搬移至数据处理系统内部,再由VPU对数据处理系统内部的目标数据进行处理。因此,数据管理系统需要向DMA和VPU下发相应的任务,并通过空闲的硬件同步锁来控制DMA和VPU执行任务的时序关系。
在一些实施例中,硬件同步锁管理单元可以将任一空闲的硬件同步锁,发送至SPU。相应的,硬件同步锁管理单元先从硬件同步锁序列中确定至少一个空闲硬件同步锁。然后,硬件同步锁管理单元在确定至少一个空闲硬件同步锁之后,将任一空闲硬件同步锁的标识作为第一同步锁标识发送至SPU。第一同步锁标识用于指示硬件同步锁序列中用于控制上述时序关系的硬件同步锁。SPU用于向DMA和VPU下发任务信息。通过向SPU发送第一同步锁标识,能够使得SPU在向DMA和VPU下发任务信息的过程中,将相同的第一同步锁标识作为任务信息的一部分发送至DMA和VPU。进而保证DMA和VPU执行数据处理任务的时序关系。
在一些实施例中,硬件同步锁管理单元能够通过首位零检测方法,来确定空闲的硬件同步锁。相应的,硬件同步锁管理单元从低位开始检测硬件同步锁序列,将第一个检测到的空闲硬件同步锁的标识作为第一同步锁标识。
303、响应于SPU接收到第一同步锁标识,SPU生成第一任务信息和第二任务信息。
在本申请实施例中,SPU接收到第一同步锁标识之后,SPU能够生成为DMA下发的第一任务信息和为VPU下发的第二任务信息。在生成第一任务信息的过程中,SPU将第一同步锁标识和DMA需要执行的第一数据处理任务放入第一任务信息中。在生成第二任务信息的过程中,SPU将第二同步锁标识和VPU需要执行的第二数据处理任务放入第二任务信息中。其中,第一数据处理任务为将外部存储器存储的目标数据搬移至数据处理系统内部。第二数据处理任务为对数据处理系统内部的目标数据进行处理。通过将第一同步锁标识和第一数据处理任务作为第一任务信息发送至DMA,将第一同步锁标识和第二数据处理任务作为第二任务信息发送至VPU,能够使得DMA和VPU根据任务信息中的第一同步锁标识确定对应的硬件同步锁。进而DMA和VPU能够根据硬件同步锁确定执行相应的数据处理任务的时机,实现了通过硬件同步锁控制DMA和VPU执行任务的时序,从而提高了数据处理系统处理数据的效率。
304、SPU向DMA和VPU分别下发任务信息。
在本申请实施例中,SPU向DMA下发第一任务信息,向VPU下发第二任务信息。
可选地,SPU可以同时向DMA和VPU分别下发第一任务信息和第二任务信息。SPU也可以先向DMA发送第一任务信息,再向VPU发送第二任务信息。SPU也可以先向VPU发送第二任务信息,再向DMA发送第一任务信息。本申请实施例对第一任务信息和第二任务信息的下发时机不进行限制。
305、DMA基于SPU下发的第一任务信息,在DMA中确定第一任务信息包括的第一同步锁标识所指示的第一分布式同步锁,第一分布式同步锁用于确定是否执行第一任务信息包括的第一数据处理任务。
在本申请实施例中,DMA接收SPU下发的第一任务信息。DMA确定第一任务信息中包括的第一同步锁标识。DMA中包括与硬件同步锁序列对应的多个分布式同步锁。DMA能够基于第一同步锁标识,在DMA中的多个分布式同步锁中确定与第一同步锁标识对应的第一分布式同步锁。并且,分布式同步锁和硬件同步锁序列中对应的硬件同步锁在大多数时钟周期内保持一致。因此,DMA能够直接根据第一分布式同步锁的状态和值,确定是否执行第一任务信息包括的第一数据处理任务。
在一些实施例中,第一分布式同步锁的状态包括空闲状态和非空闲状态。空闲状态表示分布式同步锁对应的上一个任务已经执行完成,DMA当前能够执行第一数据处理任务。非空闲状态表示分布式同步锁对应的上一个任务正在执行,DMA当前不能执行第一数据处理任务。通过第一分布式同步锁的值,能够确定当前是否满足第一数据处理任务的执行条件。执行条件用于控制第一分布式同步锁的值与执行第一数据处理任务之间的关系。通过为任务配置执行条件,能够实现通过分布式同步锁控制DMA执行任务的时序。
在一些实施例中,DMA通过两个多路选择器确定第一分布式同步锁的状态和值。对于DMA中的第一多路选择器,第一多路选择器基于第一任务信息包括的第一同步锁标识,在第一同步锁序列中确定第一同步锁标识对应的第一分布式同步锁和第一分布式同步锁的状态。其中,第一同步锁序列用于指示DMA中的多个分布式同步锁的状态。状态包括空闲状态和非空闲状态。对于DMA中的第二多路选择器,第二多路选择器基于第一同步锁标识,在第二同步锁序列中确定第一分布式同步锁的值。其中,第二同步锁序列用于指示DMA中的多个分布式同步锁的值。DMA基于第一任务信息包括的第一数据处理任务的任务类型,确定第一数据处理任务的执行条件。执行条件用于指示第一分布式同步锁的值所要满足的条件。其中,任务类型包括读任务类型和写任务类型。通过DMA中的两个多路选择器,能够较为快速的从两个同步锁序列中确定第一分布式同步锁、第一分布式同步锁的状态以及第一分布式同步锁的值。从而提高了DMA执行第一数据处理任务的效率。
在一些实施例中,第一数据处理任务的任务类型为读任务类型。DMA将第一分布式同步锁的值为第一数值作为执行条件。其中,读任务类型的第一数据处理任务为DMA读取外部存储器中存储的待处理的目标数据,并将目标数据搬移至存储器内部。通过数据处理任务的任务类型,将第一分布式同步锁不同的值作为执行条件,能够为不同任务类型的任务确定不同的执行条件,从而实现控制任务之间的执行时序。
在一些实施例中,DMA能够通过图4所示的执行条件的判断逻辑的示意图,根据第一分布式同步锁的状态、第一分布式同步锁的值以及第一数据处理任务的任务类型,确定当前是否满足第一数据处理任务的执行条件。如图4所示,执行条件的判断逻辑包括与逻辑门401、与逻辑门402和多路选择器403。取非符号404用于表示在将同步锁的状态(busy)或者同步锁的值(sync)输入至与逻辑门之前,将输入取反。需要说明的是,图4中的取非符号401仅为一种示意性的举例。DMA能够根据实际需要,确定是否将同步锁的状态或者同步锁的值取反。以实现多路选择器根据与逻辑门的输出结果,判断当前是否能够执行数据处理任务。因此,多路选择器能够根据与逻辑门的输出和任务类型(sync_set_value),判断当前是否满足数据处理任务的执行条件,并输出判断结果(issue_en)。其中,busy包括0和1两个取值。busy为0表示同步锁的状态为非空闲状态,busy为1表示同步锁的状态为空闲状态。sync_set_value也包括0和1两个取值。sync_set_value为1表示任务类型为读任务,sync_set_value为0表示任务类型为写任务。
例如,对于读任务类型(sync_set_value为1)的数据处理任务,根据上述执行逻辑可知,在同步锁的状态为空闲状态(busy为1),且同步锁的值(sync)为0的情况下,当前能够执行该数据处理任务。因此,DMA能够在与逻辑门401对输入的同步锁的值进行取反,输入到与逻辑门401的sync即为1。DMA在与逻辑门401不对同步锁的状态进行取反,输入到与逻辑门401的busy即为1。与逻辑门401的两个输入均为1,与逻辑门401的输出即为1。相应地,由于当前busy为1,且sync为0,因此DMA在与逻辑门402可以对二者都进行取反,也可以都不进行取反,还可以只对busy取反,对sync不取反。上述三种情况与逻辑门402的输出均为0。因此,多路选择器403根据与逻辑门401输出的值为1,与逻辑门402输出的值为0,能够确定当前能够执行上述数据处理任务,并且DMA上述判断的逻辑与该数据处理任务的执行逻辑一致。
在一些实施例中,DMA根据sync_set_value所指示的任务类型,能够确定第一数据处理任务的执行条件,也即是确定满足执行条件时的sync。例如,在第一数据处理任务的sync_set_value为1时,表明第一数据处理任务为读任务。DMA将sync为0作为执行条件,也即是第一数值为0。因此,在busy为1,且sync为0时,才满足第一数据处理任务的执行条件。相应地,在busy为1,且sync为0时,多路选择器403输出当前满足执行条件的判断结果。在busy和sync为其他数值时,多路选择器403输出当前不满足执行条件的判断结果。
306、DMA在第一分布式同步锁的状态为空闲状态,且第一分布式同步锁的值满足第一数据处理任务的执行条件的情况下,执行第一任务信息包括的第一数据处理任务,向硬件同步锁管理单元发送任务完成指令。
在本申请实施例中,在DMA确定第一分布式同步锁的状态为空闲状态,且第一分布式同步锁的值满足第一数据处理任务的执行条件的情况下,表明当前能够执行第一数据处理任务。DMA执行第一数据处理任务,从外部存储器搬移待处理的目标数据至数据处理系统内部。DMA搬移数据完成之后,DMA向硬件同步锁管理单元发送任务完成指令。任务完成指令用于通知硬件同步锁管理单元当前第一数据处理任务已经执行完成。
在一些实施例中,DMA执行第一数据处理任务的过程中,DMA启动req_interface指令进行外部存储器的访问请求,以从外部存储器搬移目标数据。在访问请求发送完毕,且访问请求被外部存储器处理完毕的情况下,表明DMA完成了目标数据的搬移。然后,DMA向硬件同步锁管理单元发送任务完成指令。
307、硬件同步锁管理单元基于任务完成指令中的第一同步锁标识,在硬件同步锁序列中确定第一硬件同步锁。
在本申请实施例中,硬件同步锁管理单元接收DMA发送的任务完成指令。硬件同步锁管理单元确定任务完成指令中包括的第一同步锁标识。硬件同步锁管理单元在硬件同步锁序列中确定与第一同步锁标识对应的第一硬件同步锁。第一硬件同步锁与DMA模块中的第一分布式同步锁均与第一同步锁标识对应。
308、硬件同步锁管理单元在第二数量个时钟周期之后,更新第一硬件同步锁的值。
在本申请实施例中,硬件同步锁管理单元和DMA位于数据处理系统中不同的位置,且位置分布较远。因此需要通过延迟打拍器延迟更新第一硬件同步锁的值,以满足硬件同步锁管理单元和DMA的时序要求。延迟的时钟周期的数量与延迟打拍器的数量关联。硬件同步锁管理单元通过第二数量个延迟打拍器,能够在第二数量个时钟周期之后,更新第一硬件同步锁的值。其中,第二数量可以为一个预设的数值,如2,3或者5,本申请实施例对此不进行限制。通过在DMA完成第一数据处理任务之后,更新第一硬件同步锁的值,能够实现通过第一硬件同步锁的值表示DMA执行任务的执行情况,以及通过第一硬件同步锁的值控制DMA执行任务的时序。
在一些实施例中,硬件同步锁管理单元能够根据第一数据处理任务的类型,确定第一硬件同步锁更新的值。在第一数据处理任务的任务类型为读任务类型的情况下,硬件同步锁管理单元在第二数量个时钟周期之后,将第一硬件同步锁的值由第一数值更新为第二数值。例如,硬件同步锁管理单元在三个时钟周期之后,将第一硬件同步锁的值由0更新为1。通过数据处理任务的任务类型,将第一硬件同步锁更新为不同的值,能够根据第一硬件同步锁的值,确定是否满足不同任务类型的任务的执行条件。而实现了根据硬件同步锁控制任务的执行时序。
例如,硬件同步锁管理单元能够通过sync_set_value,确定第一数据处理任务和第一硬件同步锁更新之后的值。在sync_set_value为1的情况下,第一数据处理任务的任务类型为读任务,第一硬件同步锁更新之后的值为1。在sync_set_value为0的情况下,第一数据处理任务的任务类型为写任务,第一硬件同步锁更新之后的值为0。
为了更清楚的说明上述DMA执行第一数据处理任务的过程,下面结合图5所示的数据处理的流程图,对上述过程进行说明。如图5所示,响应于数据处理系统接收到数据处理任务,硬件同步锁管理单元在硬件同步锁序列中确定至少一个空闲的硬件同步锁和每个硬件同步锁的标识。然后,硬件同步锁管理单元将任一硬件同步锁的标识作为第一同步锁标识发送至SPU。SPU接收到第一同步锁标识,SPU将第一同步锁标识和第一数据处理任务作为第一任务信息发送到DMA。DMA基于接收到的第一任务信息,通过两个多路选择器(mux),在第一同步锁序列中确定第一同步锁标识对应的第一分布式同步锁和第一分布式同步锁的状态(busy),在第二同步锁序列中确定第一分布式同步锁的值(sync)。然后,DMA根据第一分布式同步锁的状态、第一分布式同步锁的值以及第一数据处理任务的任务类型,判断是否执行第一数据处理任务。例如,在第一数据处理任务的任务类型为读任务,第一同步锁的状态为空闲状态,也即是busy为1,第一同步锁的值为0的情况下,才能够执行第一数据处理任务。在判断结果指示能够执行第一数据处理任务的情况下,DMA执行第一数据处理任务。DMA访问外部存储器,搬移外部存储器中待处理的目标数据至数据处理系统内部。DMA搬移数据完成之后,DMA向硬件同步锁管理单元发送任务完成指令。硬件同步锁管理单元根据任务完成指令中的第一同步锁标识,在硬件同步锁序列中确定第一硬件同步锁。硬件同步锁管理单元通过三个延迟打拍器,在三个时钟周期之后将第一硬件同步锁的值由0更新为1。再通过三个延迟打拍器,在三个时钟周期之后,将第二同步锁序列中第一同步锁标识对应的第一分布式同步锁的值由0更新为1。
309、VPU基于SPU下发的第二任务信息,在VPU中确定第二任务信息包括的第一同步锁标识所指示的第二分布式同步锁,第二分布式同步锁用于确定是否执行第二任务信息包括的第二数据处理任务。
在本申请实施例中,VPU接收SPU下发的第二任务信息。VPU确定第二任务信息中包括的第一同步锁标识。与DMA类似,VPU中也包括与硬件同步锁序列对应的多个分布式同步锁。VPU能够基于第一同步锁标识,在VPU中的多个分布式同步锁中确定与第一同步锁标识对应的第二分布式同步锁。并且,VPU中的第二分布式同步锁、DMA中的第一分布式同步锁和第一硬件同步锁在大多数时钟周期内保持一致。因此,VPU能够直接根据第二分布式同步锁的状态和第二分布式同步锁的值,确定是否执行第二任务信息包括的第一数据处理任务。因此,VPU无需确定外部硬件同步锁序列中第一硬件同步锁的状态和值,从而实现了与外部硬件同步锁序列的解耦。
310、VPU在第二分布式同步锁的状态为空闲状态,且第二分布式同步锁的值满足第二数据处理任务的执行条件的情况下,执行第二任务信息包括的第二数据处理任务,向硬件同步锁管理单元发送任务完成指令。
在本申请实施例中,在VPU确定第二分布式同步锁的状态为空闲状态,且第二分布式同步锁的值满足第二数据处理任务的执行条件的情况下,表明当前能够执行第二数据处理任务。VPU执行第二数据处理任务,对数据处理系统内部的目标数据进行处理。VPU处理目标数据完成之后,VPU向硬件同步锁管理单元发送任务完成指令。任务完成指令用于通知硬件同步锁管理单元当前第一数据处理任务已经执行完成。
在一些实施例中,VPU执行第二数据处理任务的过程中,VPU启动req_interface指令进行数据处理系统内部存储单元的访问请求,以处理目标数据。在访问请求发送完毕,且访问请求被内部存储单元处理完毕的情况下,表明VPU完成了对目标数据的处理。然后,VPU向硬件同步锁管理单元发送任务完成指令。
311、VPU在第二分布式同步锁的值发生更新的情况下,更新第二分布式同步锁的状态为空闲状态,第二分布式同步锁的值在第一硬件同步锁的值发生更新的第一数量个时钟周期之后更新为第一硬件同步锁的值。
在本申请实施例中,与DMA同理,VPU在执行完成第二数据处理任务之后,向硬件同步锁管理单元发送任务完成指令。相应地,硬件同步锁管理单元接收到任务完成指令后,通过延迟打拍器延迟若干个时钟周期更新第一硬件同步锁的值。在第一硬件同步锁的值发生更新的情况下,通过第一数量个延迟打拍器,在第一数量个时钟周期之后,将第二分布式同步锁的值更新为第一硬件同步锁的值。其中,第一数量可以为一个预设的数值,如2,3或者5,本申请实施例对此不进行限制。VPU在第二分布式同步锁的值发生更新的情况下,将第二分布式同步锁的状态更新为空闲状态,以表明当前VPU执行完成第二数据处理任务。进而,VPU能够根据第二同步锁新的状态,确定是否执行下一个任务。
在一些实施例中,与DMA类似,VPU中包括第三同步锁序列和第四同步锁序列。第三同步锁序列用于指示VPU中的多个分布式同步锁的状态。第四同步锁序列用于指示VPU中的多个分布式同步锁的值。因此,在第一硬件同步锁的值发生更新的情况下,在第一数量个时钟周期之后,将第四同步锁序列中第二分布式同步锁的值更新为第一硬件同步锁的值。VPU在第二分布式同步锁的值发生更新的情况下,将第三同步锁序列中第二分布式同步锁的状态更新为空闲状态。
由此可见,在VPU执行任务完成后,先延迟更新第一硬件同步锁的值,再延迟更新第二分布式同步锁的值。因此在VPU执行完成任务和第二分布式同步锁的值发生更新之间存在延时。通过在第二分布式同步锁的值发生更新的情况下,才更新第二分布式同步锁的状态为空闲状态,能够避免在两条连续的数据处理任务均对应第二分布式同步锁时,产生执行任务冲突问题。例如,在没有第三同步锁序列的情况下,VPU执行完成第一条数据处理任务之后,将第一硬件同步锁的值由1更新为0。第二分布式同步锁的值发生更新的时间滞后于第一硬件同步锁的值发生更新的时间。此时第二分布式同步锁的值仍然为1,还未更新为0。如果VPU根据当前的第二分布式同步锁的值,确定能够执行第二条数据处理任务,就开始执行第二数据处理任务,会产生任务冲突问题。通过引入分布式同步锁的状态,并将分布式同步锁的状态也作为判断任务是否能够执行的判断条件之一,能够避免上述任务冲突问题。如图6所示,第一硬件同步锁的值由1更新为0,但第四同步锁序列中的第二分布式同步锁的值还未更新为0的情况下,第三同步锁序列中的第二分布式同步锁的状态为非空闲状态,也即是busy为0。在第二分布式同步锁的值由1更新为0时,第二分布式同步锁的状态更新为空闲状态,也即是busy由0更新为1。
其中,在DMA执行第一数据处理任务和VPU执行第二数据处理任务过程中,第一硬件同步锁的值的更新情况如图7所示。DMA在确定第一分布式同步锁的值为0,且第一分布式同步锁的状态为空闲状态的情况下,DMA执行第一数据处理任务。在DMA执行完成第一数据处理任务之后,指示硬件同步锁管理单元将第一硬件同步锁的值更新为1。VPU在确定第二分布式同步锁的值为1,且第二分布式同步锁的状态为空闲状态的情况下,VPU执行第二数据处理任务。在VPU执行完成第二数据处理任务之后,指示硬件同步锁管理单元将第一硬件同步锁的值更新为0。
为了更清楚的说明数据处理系统中DMA和VPU执行数据处理任务的过程,下面结合图8所示的数据处理流程图,对上述过程进行说明。如图8所示,DMA执行第一数据处理任务的流程与图5所示的流程图同理,在此不进行赘述。响应于数据处理系统接收到数据处理任务,硬件同步锁管理单元在硬件同步锁序列中确定至少一个空闲的硬件同步锁和每个硬件同步锁的标识。然后,硬件同步锁管理单元将任一硬件同步锁的标识作为第一同步锁标识发送至SPU。SPU接收到第一同步锁标识,SPU将第一同步锁标识和第二数据处理任务作为第二任务信息发送到VPU。VPU基于接收到的第二任务信息,通过两个多路选择器(mux),在第三同步锁序列中确定第二同步锁标识对应的第二分布式同步锁和第二分布式同步锁的状态(busy),在第四同步锁序列中确定第二分布式同步锁的值(sync)。然后,VPU根据第二分布式同步锁的状态、第二分布式同步锁的值以及第二数据处理任务的类型,判断是否执行第二数据处理任务。例如,在第二数据处理任务的任务类型为写任务,第二同步锁的状态为空闲状态,也即是busy为1,第二同步锁的值为1的情况下,才能够执行第二数据处理任务。在判断结果指示能够执行第二数据处理任务的情况下,VPU执行第二数据处理任务。VPU对数据处理系统内部的目标数据进行处理。VPU处理完成目标数据之后,VPU向硬件同步锁管理单元发送任务完成指令。硬件同步锁管理单元根据任务完成指令中的第一同步锁标识,在硬件同步锁序列中确定第一硬件同步锁。硬件同步锁管理单元通过三个延迟打拍器,在三个时钟周期之后将第一硬件同步锁的值由1更新为0。再通过三个延迟打拍器,在三个时钟周期之后,将第二同步锁序列中第一同步锁标识对应的第二分布式同步锁的值由1更新为0。其中,硬件同步锁管理单元还能够合并DMA和VPU发送的任务完成指令,并根据合并的多条任务完成指令,更新硬件同步锁序列中对应的硬件同步锁的值。在一些实施例中,硬件同步锁管理单元还能够接收DMA和VPU以外其他单元发送的任务完成指令。相应的,硬件同步锁管理单元合并不同单元的任务完成指令,并更新硬件同步锁序列中对应的硬件同步锁的值,能够提高更新硬件同步锁的值的效率。
需要说明的是,上述步骤301-311是以DMA执行读任务为例进行说明。也即是DMA从外部存储器读取待处理的目标数据,将目标数据搬移至数据处理系统内部。在一些实施例中,也可以由VPU执行读任务。相应地,VPU读取数据处理系统内部待处理的目标数据,并对目标数据进行处理。再由DMA将VPU处理之后的目标数据写入外部存储器。下面通过步骤(1)-(5)对上述VPU执行读任务的过程进行说明。
(1)SPU向DMA和VPU分别下发任务信息。
数据处理系统接收到数据处理任务之后,需要调用DMA和VPU执行数据处理任务。数据处理系统调用硬件同步锁管理单元,在硬件同步锁序列中确定至少一个空闲的硬件同步锁和每个硬件同步锁的标识。硬件同步锁管理单元将任一硬件同步锁的标识作为第二同步锁标识发送至SPU。SPU接收到第一同步锁标识之后,SPU将第二同步锁标识和VPU需要执行的第三数据处理任务作为第三任务信息。SPU将第二同步锁标识和DMA需要执行的第四数据处理任务作为第二任务信息。SPU向VPU下发第三任务信息,向DMA下发第四任务信息。
(2)VPU基于SPU下发的第三任务信息,在VPU中确定第三任务信息包括的第二同步锁标识所指示的第三分布式同步锁,第三分布式同步锁用于确定是否执行第三任务信息包括的第三数据处理任务。
(3)VPU在第三分布式同步锁的状态为空闲状态,且第三分布式同步锁的值满足第三数据处理任务的执行条件的情况下,执行第三任务信息包括的第三数据处理任务,对数据系统内部的目标数据进行处理。VPU执行完成第三数据处理任务之后,向硬件同步锁管理单元发送任务完成指令。
其中,第三数据处理任务的任务类型为读任务类型。VPU将第三分布式同步锁的值为第一数值作为第三数据处理任务的执行条件。例如,VPU将第三分布式同步锁的值为0作为第三数据处理任务的执行条件。通过数据处理任务的任务类型,将第三分布式同步锁不同的值作为执行条件,能够为不同任务类型的任务确定不同的执行条件,从而实现控制任务之间的执行时序。
(4)硬件同步锁管理单元基于任务完成指令,更新硬件同步锁序列中第二同步锁标识所指示的第二硬件同步锁的值。
其中,第三数据处理任务的任务类型为读任务类型。硬件同步锁管理单元基于任务完成指令中的第二同步锁标识,在硬件同步锁序列中确定第二硬件同步锁。硬件同步锁管理单元在第三数量个时钟周期之后,将第二硬件同步锁的值由第一数值更新为第二数值。例如,硬件同步锁管理单元在三个时钟周期之后,将第二硬件同步锁的值由0更新为1。通过数据处理任务的任务类型,将第二硬件同步锁更新为不同的值,能够根据第二硬件同步锁的值,确定是否满足不同任务类型的任务的执行条件。而实现了根据硬件同步锁控制任务的执行时序。
(5)DMA在第二硬件同步锁的值发生更新的情况下,执行SPU下发的第四任务信息包括的第四数据处理任务。DMA将VPU处理之后的目标数据写入外部存储器。
本申请实施例提供了一种数据处理方法,由数据处理系统执行。SPU能够向DMA和VPU分别下发任务信息。而无需SPU等待DMA执行任务完成后再向VPU下发任务,能够提高SPU的处理效率。相应地,DMA能够根据SPU下发的第一任务信息中的第一同步锁标识,在DMA中确定第一分布式同步锁。进而DMA能够根据第一分布式同步锁的状态和第一分布式同步锁的值,确定当前是否执行第一数据处理任务。而无需SPU确定DMA何时执行第一数据处理任务,实现了与SPU的解耦。并且在DMA完成任务之后DMA向硬件同步锁管理单元发送任务完成指令。硬件同步锁管理单元基于任务完成指令,能够更新硬件同步锁序列中第一硬件同步锁的值。响应于第一硬件同步锁的值发生更新,VPU及时执行第二数据处理任务,提高了处理器处理数据的效率。
本申请实施例还提供了一种数据处理系统。参见图8,数据处理系统包括:标量处理单元SPU801、直接存储访问DMA802、硬件同步锁管理单元803以及向量处理单元VPU804。
标量处理单元SPU801,用于向DMA802和VPU804分别下发任务信息;
直接存储访问DMA802,用于基于SPU801下发的第一任务信息,在DMA802中确定第一任务信息包括的第一同步锁标识所指示的第一分布式同步锁,第一分布式同步锁用于确定是否执行第一任务信息包括的第一数据处理任务;
直接存储访问DMA802,还用于在第一分布式同步锁的状态为空闲状态,且第一分布式同步锁的值满足第一数据处理任务的执行条件的情况下,执行第一任务信息包括的第一数据处理任务,向硬件同步锁管理单元803发送任务完成指令;
硬件同步锁管理单元803,用于基于任务完成指令,更新硬件同步锁序列8031中第一同步锁标识所指示的第一硬件同步锁的值;
向量处理单元VPU804,用于在第一硬件同步锁的值发生更新的情况下,执行SPU801下发的第二任务信息包括的第二数据处理任务。
在一些实施例中,向量处理单元VPU804,用于基于SPU801下发的第二任务信息,在VPU804中确定第二任务信息包括的第一同步锁标识所指示的第二分布式同步锁,第二分布式同步锁用于确定是否执行第二任务信息包括的第二数据处理任务;在第二分布式同步锁的值发生更新的情况下,更新第二分布式同步锁的状态为空闲状态,第二分布式同步锁的值在第一硬件同步锁的值发生更新的第一数量个时钟周期之后更新为第一硬件同步锁的值;在第二分布式同步锁的状态为空闲状态,且第二分布式同步锁的值满足第二数据处理任务的执行条件的情况下,执行第二任务信息包括的第二数据处理任务。
在一些实施例中,硬件同步锁管理单元803包括硬件同步锁序列8031;硬件同步锁管理单元803,用于在硬件同步锁序列8031中确定至少一个空闲的硬件同步锁和每个硬件同步锁的标识;将任一硬件同步锁的标识作为第一同步锁标识发送至SPU801;标量处理单元SPU801,用于响应于接收到第一同步锁标识,生成第一任务信息和第二任务信息。
在一些实施例中,直接存储访问DMA802包括第一多路选择8021、第二多路选择器8022、第一同步锁序列8023以及第二同步锁序列8024;第一多路选择器8021,用于基于第一任务信息包括的第一同步锁标识,在第一同步锁序列8023中确定第一分布式同步锁和第一分布式同步锁的状态,第一同步锁序列8023用于指示DMA802中的多个分布式同步锁的状态,状态包括空闲状态和非空闲状态,空闲状态用于指示DMA802当前能够执行第一数据处理任务,非空闲状态用于指示DMA802当前正在执行第一分布式同步锁对应的数据处理任务;第二多路选择器8022,用于基于第一同步锁标识,在第二同步锁序列8024中确定第一分布式同步锁的值,第二同步锁序列8024用于指示DMA802中的多个分布式同步锁的值;直接存储访问DMA802,还用于基于第一任务信息包括的第一数据处理任务的任务类型,确定第一数据处理任务的执行条件,执行条件用于指示第一分布式同步锁的值所要满足的条件。
在一些实施例中,第一数据处理任务的任务类型为读任务类型,直接存储访问DMA802,用于将第一分布式同步锁的值为第一数值作为执行条件。
在一些实施例中,硬件同步锁管理单元803,用于基于任务完成指令中的第一同步锁标识,在硬件同步锁序列8031中确定第一硬件同步锁;在第二数量个时钟周期之后,更新第一硬件同步锁的值。
在一些实施例中,硬件同步锁管理单元803,用于在第二数量个时钟周期之后,将第一硬件同步锁的值由第一数值更新为第二数值。
在一些实施例中,标量处理单元SPU801,用于向DMA802和VPU803分别下发任务信息;向量处理单元VPU804,用于基于SPU801下发的第三任务信息,在VPU804中确定第三任务信息包括的第二同步锁标识所指示的第三分布式同步锁,第三分布式同步锁用于确定是否执行第三任务信息包括的第三数据处理任务;向量处理单元VPU804,还用于在第三分布式同步锁的状态为空闲状态,且第三分布式同步锁的值满足第三数据处理任务的执行条件的情况下,执行第三任务信息包括的第三数据处理任务,向硬件同步锁管理单元803发送任务完成指令;硬件同步锁管理单元803,用于基于任务完成指令,更新硬件同步锁序列中第二同步锁标识所指示的第二硬件同步锁的值;直接存储访问DMA802,用于在第二硬件同步锁的值发生更新的情况下,执行SPU801下发的第四任务信息包括的第四数据处理任务。
在一些实施例中,第三数据处理任务的任务类型为读任务类型,向量处理单元VPU804,用于将第三分布式同步锁的值为第一数值作为第三数据处理任务的执行条件。
在一些实施例中,第三数据处理任务的任务类型为读任务类型,硬件同步锁管理单元803,用于基于任务完成指令中的第二同步锁标识,在硬件同步锁序列8031中确定第二硬件同步锁;在第三数量个时钟周期之后,将第二硬件同步锁的值由第一数值更新为第二数值。
需要说明的是:上述实施例提供的数据处理系统,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理系统和数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种终端,该终端包括处理器和存储器,存储器中存储有数据处理方法,处理器用于通过数据处理系统实现上述实施例提供的数据处理方法。
图9是本申请实施例提供的一种终端的结构示意图。
终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以集成有GPU(Graphics Processing Unit,图像处理的交互器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一条计算机程序,该至少一条计算机程序用于被处理器901所具有以实现本申请中方法实施例提供的数据处理方法。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例提供的数据处理方法。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序由处理器加载并执行,以实现如上述实施例提供的数据处理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种数据处理方法,其特征在于,应用于数据处理系统,所述数据处理系统包括直接存储访问DMA、向量处理单元VPU、标量处理单元SPU以及硬件同步锁管理单元,所述方法包括:
所述SPU向所述DMA和所述VPU分别下发任务信息;
所述DMA基于所述SPU下发的第一任务信息,在所述DMA中确定所述第一任务信息包括的第一同步锁标识所指示的第一分布式同步锁,所述第一分布式同步锁用于确定是否执行所述第一任务信息包括的第一数据处理任务;
所述DMA在所述第一分布式同步锁的状态为空闲状态,且所述第一分布式同步锁的值满足所述第一数据处理任务的执行条件的情况下,执行所述第一任务信息包括的第一数据处理任务,向所述硬件同步锁管理单元发送任务完成指令;
所述硬件同步锁管理单元基于所述任务完成指令,更新硬件同步锁序列中所述第一同步锁标识所指示的第一硬件同步锁的值;
所述VPU在所述第一硬件同步锁的值发生更新的情况下,执行所述SPU下发的第二任务信息包括的第二数据处理任务。
2.根据权利要求1所述的方法,其特征在于,所述VPU在所述第一硬件同步锁的值发生更新的情况下,执行所述SPU下发的第二任务信息包括的第二数据处理任务,包括:
所述VPU基于所述SPU下发的第二任务信息,在所述VPU中确定所述第二任务信息包括的第一同步锁标识所指示的第二分布式同步锁,所述第二分布式同步锁用于确定是否执行所述第二任务信息包括的第二数据处理任务;
所述VPU在所述第二分布式同步锁的值发生更新的情况下,更新所述第二分布式同步锁的状态为空闲状态,所述第二分布式同步锁的值在所述第一硬件同步锁的值发生更新的第一数量个时钟周期之后更新为所述第一硬件同步锁的值;
所述VPU在所述第二分布式同步锁的状态为空闲状态,且所述第二分布式同步锁的值满足所述第二数据处理任务的执行条件的情况下,执行所述第二任务信息包括的第二数据处理任务。
3.根据权利要求1所述的方法,其特征在于,所述SPU向所述DMA和所述VPU分别下发任务信息之前,所述方法还包括:
所述硬件同步锁管理单元在所述硬件同步锁序列中确定至少一个空闲的硬件同步锁和每个硬件同步锁的标识;
所述硬件同步锁管理单元将任一硬件同步锁的标识作为所述第一同步锁标识发送至所述SPU;
响应于所述SPU接收到所述第一同步锁标识,所述SPU生成所述第一任务信息和所述第二任务信息。
4.根据权利要求1所述的方法,其特征在于,所述DMA基于所述SPU下发的第一任务信息,在所述DMA中确定所述第一任务信息包括的第一同步锁标识所指示的第一分布式同步锁,包括:
所述DMA中的第一多路选择器基于所述第一任务信息包括的第一同步锁标识,在第一同步锁序列中确定所述第一分布式同步锁和所述第一分布式同步锁的状态,所述第一同步锁序列用于指示所述DMA中的多个分布式同步锁的状态,所述状态包括空闲状态和非空闲状态,所述空闲状态用于指示所述DMA当前能够执行所述第一数据处理任务,所述非空闲状态用于指示所述DMA当前正在执行所述第一分布式同步锁对应的数据处理任务;
所述DMA中的第二多路选择器基于所述第一同步锁标识,在第二同步锁序列中确定所述第一分布式同步锁的值,所述第二同步锁序列用于指示所述DMA中的多个分布式同步锁的值;
所述DMA基于所述第一任务信息包括的第一数据处理任务的任务类型,确定所述第一数据处理任务的执行条件,所述执行条件用于指示所述第一分布式同步锁的值所要满足的条件。
5.根据权利要求4所述的方法,其特征在于,所述第一数据处理任务的任务类型为读任务类型,所述DMA基于所述第一任务信息包括的第一数据处理任务的任务类型,确定所述第一数据处理任务的执行条件,包括:
所述DMA将所述第一分布式同步锁的值为第一数值作为所述执行条件。
6.根据权利要求1所述的方法,其特征在于,所述硬件同步锁管理单元基于所述任务完成指令,更新硬件同步锁序列中所述第一同步锁标识所指示的第一硬件同步锁的值,包括:
所述硬件同步锁管理单元基于所述任务完成指令中的所述第一同步锁标识,在所述硬件同步锁序列中确定所述第一硬件同步锁;
所述硬件同步锁管理单元在第二数量个时钟周期之后,更新所述第一硬件同步锁的值。
7.根据权利要求6所述的方法,其特征在于,所述第一数据处理任务的任务类型为读任务类型,所述硬件同步锁管理单元在第二数量个时钟周期之后,更新所述第一硬件同步锁的值,包括:
所述硬件同步锁管理单元在所述第二数量个时钟周期之后,将所述第一硬件同步锁的值由第一数值更新为第二数值。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述SPU向所述DMA和所述VPU分别下发任务信息;
所述VPU基于所述SPU下发的第三任务信息,在所述VPU中确定所述第三任务信息包括的第二同步锁标识所指示的第三分布式同步锁,所述第三分布式同步锁用于确定是否执行所述第三任务信息包括的第三数据处理任务;
所述VPU在所述第三分布式同步锁的状态为空闲状态,且所述第三分布式同步锁的值满足所述第三数据处理任务的执行条件的情况下,执行所述第三任务信息包括的第三数据处理任务,向所述硬件同步锁管理单元发送任务完成指令;
所述硬件同步锁管理单元基于所述任务完成指令,更新硬件同步锁序列中所述第二同步锁标识所指示的第二硬件同步锁的值;
所述DMA在所述第二硬件同步锁的值发生更新的情况下,执行所述SPU下发的第四任务信息包括的第四数据处理任务。
9.根据权利要求8所述的方法,其特征在于,所述第三数据处理任务的任务类型为读任务类型,所述方法还包括:
所述VPU将所述第三分布式同步锁的值为第一数值作为所述第三数据处理任务的执行条件。
10.根据权利要求8所述的方法,其特征在于,所述第三数据处理任务的任务类型为读任务类型,所述硬件同步锁管理单元基于所述任务完成指令,更新硬件同步锁序列中所述第二同步锁标识所指示的第二硬件同步锁的值,包括:
所述硬件同步锁管理单元基于所述任务完成指令中的所述第二同步锁标识,在所述硬件同步锁序列中确定所述第二硬件同步锁;
所述硬件同步锁管理单元在第三数量个时钟周期之后,将所述第二硬件同步锁的值由第一数值更新为第二数值。
11.一种数据处理系统,其特征在于,所述数据处理系统包括直接存储访问DMA、向量处理单元VPU、标量处理单元SPU以及硬件同步锁管理单元;
所述标量处理单元SPU用于向所述DMA和所述VPU分别下发任务信息;
所述直接存储访问DMA用于基于所述SPU下发的第一任务信息,在所述DMA中确定所述第一任务信息包括的第一同步锁标识所指示的第一分布式同步锁,所述第一分布式同步锁用于确定是否执行所述第一任务信息包括的第一数据处理任务;
所述直接存储访问DMA还用于在所述第一分布式同步锁的状态为空闲状态,且所述第一分布式同步锁的值满足所述第一数据处理任务的执行条件的情况下,执行所述第一任务信息包括的第一数据处理任务,向所述硬件同步锁管理单元发送任务完成指令;
所述硬件同步锁管理单元用于基于所述任务完成指令,更新硬件同步锁序列中所述第一同步锁标识所指示的第一硬件同步锁的值;
所述向量处理单元VPU用于在所述第一硬件同步锁的值发生更新的情况下,执行所述SPU下发的第二任务信息包括的第二数据处理任务。
12.根据权利要求11所述的系统,其特征在于,所述向量处理单元VPU用于:
基于所述SPU下发的第二任务信息,在所述VPU中确定所述第二任务信息包括的第一同步锁标识所指示的第二分布式同步锁,所述第二分布式同步锁用于确定是否执行所述第二任务信息包括的第二数据处理任务;
在所述第二分布式同步锁的值发生更新的情况下,更新所述第二分布式同步锁的状态为空闲状态,所述第二分布式同步锁的值在所述第一硬件同步锁的值发生更新的第一数量个时钟周期之后更新为所述第一硬件同步锁的值;
在所述第二分布式同步锁的状态为空闲状态,且所述第二分布式同步锁的值满足所述第二数据处理任务的执行条件的情况下,执行所述第二任务信息包括的第二数据处理任务。
13.根据权利要求11所述的系统,其特征在于,所述硬件同步锁单元包括所述硬件同步锁序列;
所述硬件同步锁管理单元用于在所述硬件同步锁序列中确定至少一个空闲的硬件同步锁和每个硬件同步锁的标识;
所述硬件同步锁管理单元还用于将任一硬件同步锁的标识作为所述第一同步锁标识发送至所述SPU;
所述标量处理单元SPU用于响应于接收到所述第一同步锁标识,生成所述第一任务信息和所述第二任务信息。
14.根据权利要求11所述的系统,其特征在于,所述直接存储访问DMA包括第一多路选择器、第二多路选择器、第一同步锁序列以及第二同步锁序列;
所述第一多路选择器用于基于所述第一任务信息包括的第一同步锁标识,在第一同步锁序列中确定所述第一分布式同步锁和所述第一分布式同步锁的状态,所述第一同步锁序列用于指示所述DMA中的多个分布式同步锁的状态,所述状态包括空闲状态和非空闲状态,所述空闲状态用于指示所述DMA当前能够执行所述第一数据处理任务,所述非空闲状态用于指示所述DMA当前正在执行所述第一分布式同步锁对应的数据处理任务;
所述第二多路选择器用于基于所述第一同步锁标识,在第二同步锁序列中确定所述第一分布式同步锁的值,所述第二同步锁序列用于指示所述DMA中的多个分布式同步锁的值;
所述直接存储访问DMA用于基于所述第一任务信息包括的第一数据处理任务的任务类型,确定所述第一数据处理任务的执行条件,所述执行条件用于指示所述第一分布式同步锁的值所要满足的条件。
15.根据权利要求14所述的系统,其特征在于,所述第一数据处理任务的任务类型为读任务类型;
所述直接存储访问DMA用于将所述第一分布式同步锁的值为第一数值作为所述执行条件。
16.根据权利要求11所述的系统,其特征在于,所述硬件同步锁单元包括所述硬件同步锁序列;
所述硬件同步锁管理单元用于:
基于所述任务完成指令中的所述第一同步锁标识,在所述硬件同步锁序列中确定所述第一硬件同步锁;
在第二数量个时钟周期之后,更新所述第一硬件同步锁的值。
17.根据权利要求16所述的系统,其特征在于,所述第一数据处理任务的任务类型为读任务类型;
所述硬件同步锁管理单元用于在所述第二数量个时钟周期之后,将所述第一硬件同步锁的值由第一数值更新为第二数值。
18.根据权利要求11所述的系统,其特征在于,所述向量处理单元VPU包括第三分布式同步锁;
所述标量处理单元SPU用于向所述DMA和所述VPU分别下发任务信息;
所述向量处理单元VPU用于基于所述SPU下发的第三任务信息,在所述VPU中确定所述第三任务信息包括的第二同步锁标识所指示的第三分布式同步锁,所述第三分布式同步锁用于确定是否执行所述第三任务信息包括的第三数据处理任务;
所述向量处理单元VPU还用于在所述第三分布式同步锁的状态为空闲状态,且所述第三分布式同步锁的值满足所述第三数据处理任务的执行条件的情况下,执行所述第三任务信息包括的第三数据处理任务,向所述硬件同步锁管理单元发送任务完成指令;
所述硬件同步锁管理单元用于基于所述任务完成指令,更新硬件同步锁序列中所述第二同步锁标识所指示的第二硬件同步锁的值;
所述直接存储访问DMA用于在所述第二硬件同步锁的值发生更新的情况下,执行所述SPU下发的第四任务信息包括的第四数据处理任务。
19.一种芯片,其特征在于,所述芯片包括如权利要求11至18任一项所述的数据处理系统。
20.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有如权利要求1至10任一项所述的数据处理方法,所述处理器用于通过数据处理系统实现所述数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310361448.5A CN116955244A (zh) | 2023-03-30 | 2023-03-30 | 数据处理方法、系统、芯片及终端 |
PCT/CN2024/076589 WO2024198748A1 (zh) | 2023-03-30 | 2024-02-07 | 数据处理方法、系统、芯片及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310361448.5A CN116955244A (zh) | 2023-03-30 | 2023-03-30 | 数据处理方法、系统、芯片及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955244A true CN116955244A (zh) | 2023-10-27 |
Family
ID=88445050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310361448.5A Pending CN116955244A (zh) | 2023-03-30 | 2023-03-30 | 数据处理方法、系统、芯片及终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116955244A (zh) |
WO (1) | WO2024198748A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024198748A1 (zh) * | 2023-03-30 | 2024-10-03 | 腾讯科技(深圳)有限公司 | 数据处理方法、系统、芯片及终端 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785471B1 (en) * | 2016-09-27 | 2017-10-10 | International Business Machines Corporation | Execution of serialized work data with interlocked full area instructions |
CN108536526B (zh) * | 2017-03-02 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 一种基于可编程硬件的资源管理方法以及装置 |
CN112799791A (zh) * | 2021-01-22 | 2021-05-14 | 平安普惠企业管理有限公司 | 分布式锁的调用方法、装置、电子设备和存储介质 |
CN113986534A (zh) * | 2021-10-15 | 2022-01-28 | 腾讯科技(深圳)有限公司 | 任务调度方法、装置、计算机设备和计算机可读存储介质 |
CN114691376A (zh) * | 2022-04-11 | 2022-07-01 | 深圳Tcl新技术有限公司 | 一种线程执行方法、装置、电子设备和存储介质 |
CN116955244A (zh) * | 2023-03-30 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、系统、芯片及终端 |
-
2023
- 2023-03-30 CN CN202310361448.5A patent/CN116955244A/zh active Pending
-
2024
- 2024-02-07 WO PCT/CN2024/076589 patent/WO2024198748A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024198748A1 (zh) * | 2023-03-30 | 2024-10-03 | 腾讯科技(深圳)有限公司 | 数据处理方法、系统、芯片及终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2024198748A1 (zh) | 2024-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112363763B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
EP3866007B1 (en) | Intelligent gpu scheduling in a virtualization environment | |
CN111090464B (zh) | 一种数据流处理方法及相关设备 | |
CN110968415B (zh) | 多核处理器的调度方法、装置及终端 | |
CN110751676A (zh) | 一种基于目标检测的异构计算系统、方法和可读存储介质 | |
US11687242B1 (en) | FPGA board memory data reading method and apparatus, and medium | |
CN109213607B (zh) | 一种多线程渲染的方法和装置 | |
US10761822B1 (en) | Synchronization of computation engines with non-blocking instructions | |
CN116955244A (zh) | 数据处理方法、系统、芯片及终端 | |
CN112100950A (zh) | 用于芯片设计的方法、系统、设备以及存储介质 | |
US10684834B2 (en) | Method and apparatus for detecting inter-instruction data dependency | |
CN111383704B (zh) | 一种存储器内建自测试电路和对存储器的测试方法 | |
US20120151145A1 (en) | Data Driven Micro-Scheduling of the Individual Processing Elements of a Wide Vector SIMD Processing Unit | |
JPS62115542A (ja) | 情報処理装置 | |
CN113849238A (zh) | 数据通信方法、装置、电子设备及可读存储介质 | |
CN117407182B (zh) | 一种基于Poll指令的进程同步方法、系统、设备及介质 | |
CN109346028B (zh) | 一种基于tlm的三角形光栅化扫描结构 | |
CN117707721A (zh) | 任务提交方法、电子设备及存储介质 | |
CN116360941A (zh) | 一种面向多核dsp的并行计算资源自组织调度方法及系统 | |
CN111767999B (zh) | 数据处理方法、装置及相关产品 | |
CN115220564A (zh) | 功耗调节方法、装置、存储介质、处理器及电子设备 | |
CN109598669B (zh) | 一种面向gpu的三角形光栅化扫描系统 | |
US7024577B2 (en) | Program logic device for synchronous operation with multiple clock signals | |
JPH064314A (ja) | タスク間同期通信装置 | |
Prakash et al. | Custom instructions with local memory elements without expensive DMA transfers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |