CN115061803A - 一种多核处理系统及其任务调度方法、芯片、存储介质 - Google Patents
一种多核处理系统及其任务调度方法、芯片、存储介质 Download PDFInfo
- Publication number
- CN115061803A CN115061803A CN202210785227.6A CN202210785227A CN115061803A CN 115061803 A CN115061803 A CN 115061803A CN 202210785227 A CN202210785227 A CN 202210785227A CN 115061803 A CN115061803 A CN 115061803A
- Authority
- CN
- China
- Prior art keywords
- core
- processing
- instruction
- control
- cores
- 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
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本申请实施例公开了一种多核处理系统及其任务调度方法、芯片、存储介质,多核处理系统包括多个控制核心和多个处理核心,多个控制核心分别和多个处理核心相连,第一控制核心读取第一指令,确定第一指令为控制核心执行的控制指令时,执行第一指令;第一控制核心确定第一指令为处理核心执行的数据处理指令时,发送第一指令给第一处理核心执行。这样,根据处理需求在控制核心和处理核心之间配置一对多的拓扑结构,提高数据处理指令处理的并行度,从而提高数据处理效率,减少芯片面积。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种多核处理系统及其任务调度方法、芯片、存储介质。
背景技术
目前,多核处理器广泛应用于芯片,多核处理器同时满足处理高带宽数据,执行系统应用程序,响应实时请求以及符合行业安全标准。多核处理器以其芯片面积利用率高、处理器功耗低、并行化程度高等诸多优势成为处理器体系结构发展的一个重要方向。
多核处理器结构的缺点是其特殊的结构必然带来了核间的连接方式、通讯同步方式、核与核结构的差异、内存资源分配策略、多时钟域的分配策略、软硬件协同设计优化等一系列问题,其开发难度随着芯片规模的变大变的越来越困难,任何一个环节没处理好都可能影响到整个处理器的性能和功耗。针对少量控制配合大量数据计算的场景,也出现了一些列核拓展技术。虽然这些技术解决了多核处理器系统在该场景不适用的问题,但其控制核心和拓展处理单元一对一的拓扑关系天然限制了其应用的灵活性,以及性能的瓶颈。
发明内容
本申请实施例期望提供一种多核处理系统及其任务调度方法、芯片、存储介质。
本申请的技术方案是这样实现的:
第一方面,提供了一种多核处理系统,所述多核处理系统包括多个控制核心和多个处理核心,
所述多个控制核心中的第一控制核心读取第一指令;
所述第一控制核心确定所述第一指令为控制核心执行的控制指令时,执行所述第一指令;
所述第一控制核心确定所述第一指令为处理核心执行的数据处理指令时,发送所述第一指令给所述多个处理核心中的第一处理核心,所述第一处理核心执行所述第一指令。
第二方面,提供了一种芯片,所述芯片包括第一方面所述的多核处理系统。
第三方面,提供了一种多核处理系统的任务调度方法,多核处理系统为第一方面中的多核处理系统,所述方法包括:
通过多个控制核心中的第一控制核心读取第一指令;
通过所述第一控制核心确定所述第一指令为控制核心执行的控制指令时,执行所述第一指令;
通过所述第一控制核心确定所述第一指令为处理核心执行的数据处理指令时,发送所述第一指令给所述多个处理核心中的第一处理核心,所述第一处理核心执行所述第一指令。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
采用上述技术方案,根据处理需求在控制核心和处理核心之间配置一对多的拓扑结构,提高数据处理指令处理的并行度,从而提高数据处理效率,减少芯片面积,而且处理核心可以灵活选择同构处理核心和异构处理核心。
附图说明
图1为本申请实施例中多核处理系统的第一组成结构示意图;
图2为本申请实施例中多核处理系统的第二组成结构示意图;
图3为本申请实施例中多核处理系统的任务调度方法的流程示意图;
图4是本申请实施例的芯片的组成结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
本申请实施例提供了一种多核处理系统,所述多核处理系统包括多个控制核心和多个处理核心,用于实现任务调度,图1为本申请实施例中系统的第一组成结构示意图,如图1所示,该多核处理系统10包括:多个控制核心110和多个处理核心120,每个控制核心分别和多个处理核心相连。
所述多个控制核心中的第一控制核心读取第一指令;
所述第一控制核心确定所述第一指令为控制核心执行的控制指令时,执行所述第一指令;
所述第一控制核心确定所述第一指令为处理核心执行的数据处理指令时,发送所述第一指令给所述多个处理核心中的第一处理核心,所述第一处理核心执行所述第一指令。
示例性的,第一控制核心从指令缓存单元中获取第一控制核心对应的第一指令。所述第一控制核心为所述多个控制核心中的任意一个,第一处理核心为多个处理核心中需要执行第一指令中的一个或多个,第一控制核心和第一处理核心只是为了说明本申请实施例控制核心和处理核心之间的任务调度处理,并不是用来限定某一个特定的控制核心,或某一个特定的处理核心。也就是说,任一个控制核心均可视为第一控制核心,任一个处理核心均可视为第一处理核心。
在一些实施例中,第一控制核心从指令缓存单元中根据预设取指顺序进行顺序取指,顺序译码以及顺序发送。这样,采用实现简单的顺序取指方法,对指令进行并行处理,应用本申请实施例提供的多核心处理系统的软件开发难度很低,易于实现。
在另一些实施例中,也可以不需要按照程序规定的顺序执行。例如,将指令乱序发送,乱序执行。
具体地,第一控制核心读取第一指令后,译码第一指令根据译码结果确定第一指令为控制核心执行的控制指令,或者根据译码结果确定第一指令为处理核心执行的数据处理指令。也就是说,第一控制核心用于取指令,译码指令,以及执行控制指令。
示例性的,多个控制核心可采用无内部互锁流水级的微处理器(Microprocessorwithout interlocked piped stages,MIPIS),第五代精简指令集处理器(Microprocessorwithout interlocked piped stages,RISC-V)等方便拓展的小核。其中,RISC-V是基于精简指令集计算(Reduced Instruction Set Computer,RISC)原理建立的开放指令集架构(Instruction Set Architecture,ISA),V表示为第五代RISC。
在一些实施例中,每个处理核心包括至少一个处理单元,用于执行数据处理指令。当处理核心包括两个以上处理单元时可以实现至少两条指令的并行处理。
在一些实施例中,所述处理核心根据所述至少一个处理单元的空闲状态,确定所述处理核心的空闲信息;所述第一控制核心获取所述多个处理核心的空闲信息,根据所述多个处理核心的空闲信息确定所述第一处理核心。示例性的,处理核心的空闲信息可以包括处理单元处于空闲状态或非空闲状态。进一步地,可以根据处理核心的空闲信息中处于空闲状态的处理单元数量,确定处理核心的空闲程度,选择空闲程度最高(即处于空闲状态的处理单元数量最多)的处理核心作为第一处理核心,当存储多个空闲程度相同的处理核心,则任意选择一个作为第一处理核心,或者按照预设的选择顺序或优先级选择一个作为第一处理核心。
在一些实施例中,所述第一控制核心获取所述多个处理核心的空闲信息和优先级;所述第一控制核心根据所述多个处理核心的空闲信息和优先级确定所述第一处理核心。示例性的,从高优先级开始搜索,确定具有处于空闲状态的处理单元的处理核心作为第一处理核心。
在一些实施例中,所述第一控制核心根据所述多个处理核心的空闲信息,确定所述多个处理核心无空闲处理单元时,停止发送所述第一指令。第一控制核心根据所述多个处理核心的空闲信息,确定所述多个处理核心有空闲处理单元时,将第一指令发送给有空闲处理单元的第一处理核心。
在一些实施例中,所述第一处理核心接收到所述第一指令,根据所述第一指令的指令类型和处理单元的空闲状态,将所述第一指令发送给第一处理单元执行。
具体地,当处理单元的处理指令类型相同,第一处理核心可以根据预设的发送顺序将第一指令发送给处于空闲状态的第一处理单元。
当处理单元的处理指令类型不完全相同,所述第一处理核心接收到所述第一指令,确定所述第一指令的指令类型;所述第一处理核心基于处理单元与指令类型的映射关系,根据所述第一指令的指令类型和处理单元的空闲状态,确定执行所述第一指令的所述第一处理单元。
示例性的,处理单元可以为矢量处理单元,标量处理单元,傅里叶变换处理单元,滤波处理单元,或者基于固定硬件算法的加速处理单元。相应的,矢量处理单元处理矢量数据,标量处理单元处理标量数据,傅里叶变换处理单元对数据进行傅里叶变换,滤波处理单元对数据进行滤波,加速处理单元用于加速特定算法的数据处理。
示例性的,在一些实施例中,所述多核处理系统还包括数据同步网络,所述第一处理核心执行所述第一指令时,确定对所述第一控制核心的寄存器执行第一操作,通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据;其中,所述第一操作为读操作时,所述第一操作数据为读数据;所述第一操作为写操作时,所述第一操作数据为写数据。
示例性的,在一些实施例中,所述第一处理核心通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据后,所述第一控制核心读取第二指令;所述第一处理核心未通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据,所述第一控制核心停止读取所述第二指令;其中,所述第二指令执行时对所述第一控制核心的寄存器执行第二操作,所述第一操作和所述第二操作为数据相关操作。示例性的,第一操作为寄存器写操作,第二操作为寄存器读操作;或者,第一操作为寄存器读操作,第二操作为寄存器写操作;或者,第一操作为寄存器写操作,第二操作为寄存器写操作。
这里,通过数据同步网络对控制核心内部的通用寄存器的使用进行数据同步。由于指令从控制核心发送到处理核心,再由处理核心发送到各个处理单元都有可能存在阻塞的情况,因此处理核心对控制核心内部的通用寄存器的操作时间具有不确定性。通过数据同步网络的设计,如果控制核心和任一处理单元存在数据相关冲突,则会停止控制核心的取指,以实现数据同步的功能。这里,数据相关冲突包括:写后读相关、读后写相关、写后写相关。
示例性的,在一些实施例中,所述多核处理系统还包括控制同步网络,
所述第一控制核心读取当前指令集合中的所有指令后,所述第一控制核心通过所述控制同步网络发送等待请求给所述多个处理核心中的第二处理核心,并停止读取下一指令集合中的指令;其中,所述第二处理核心为所述多个处理核心中的部分或全部处理核心;
所述第二处理核心响应于所述等待请求,确定所述第二处理核心将接收到的所述当前指令集合中的指令执行结束,生成结束响应;通过所述控制同步网络发送所述结束响应给所述第一控制核心;
所述第一控制核心根据接收到的所述结束响应确定所述当前指令集合中的所有指令执行结束,开始读取所述下一指令集合中的指令。
也就是说,本申请实施例为了实现控制同步,第一控制核心读取当前指令集合中的所有指令后,发送等待请求,第一控制核心停止取指,译码。直到所有第二处理核心执行完所必须要执行的指令程序,并且返回结束响应,这样第一控制核心能够确定当前指令集合是否执行结束,执行结束后再继续读取下一指令集合,避免相关数据冲突。这里,第二处理核心可以指接收到第一指令的第一处理核心,也可以指每个处理核心。
图2为本申请实施例中系统的第二组成结构示意图,如图2所示,系统20包括:多个控制核心201和多个处理核心202,多个控制核心201通过控制同步网络203和数据同步网络204分别和多个处理核心202相连,每个处理核心包括至少两个处理单元,用于实现至少两条指令的并行处理。
具体地,多个控制核心201包括控制核心1,控制核心2,…,控制核心N,多个处理核心102包括处理核心1,处理核心2,…,处理核心M,N和M为大于等于2的整数。每个处理核心包括至少一个处理单元,例如处理核心1包括处理单元1、处理单元2,…,处理单元j,多个控制核心101和多个处理核心102之间通过控制同步网络203和数据同步网络204相连。
如图2所示,控制同步网络203至少包括N个控制核心端和M组处理核心端,N个控制核心端分别与N个控制核心相连,M组处理核心端分别于与M个处理核心相连,每组处理核心端包括N个处理核心端,N个处理核心端分别与N个控制核心端形成N个指令通路。也就是说,每个控制核心和处理核心之间通过独立的指令通路传输指令。例如,指令通路传输第一指令、等待请求和结束响应等。
当第一控制核心读取当前指令集合中的所有指令后生成等待请求,等待请求可以包含控制核心标识,当该系统包括N个控制核心M个处理核心时,WAIT_m表示控制核心发起等待请求,该控制核心停止取指和译码,直到对应的处理核心执行完所必须要执行的处理指令,并且返回DONE_n,给控制核心提供对应的标识信息。进一步地,等待请求还包括控制核心标识,例如WAIT_m_n表示,由控制核心n向处理核心m发送的等待请求。结束响应还包括处理核心标识,例如DONE_n_m表示,由处理核心m向控制核心n发送的结束响应。其中,n取1至N的整数,m取1至M的整数。
数据同步网络204同样包括N个控制核心端和M组处理核心端,N个控制核心端分别与N个控制核心相连,M组处理核心端分别与M个处理核心相连,每组处理核心端包括N个处理核心端,N个处理核心端分别与N个控制核心端形成N个数据通路。也就是说,每个控制核心和处理核心之间通过独立的数据通路同步寄存器数据。
在一些实施例中,控制同步网络和数据同步网络还可以为同一同步网络。也就是说,控制核心和处理核心之间通过一个同步网络相连,通过传输控制实现指令同步和数据同步。
其中,各部分的功能如下:
1、多个控制核心201:可采用MIPS,RISC-V等方便拓展的小核。用于取指,第一次译码,其指令如果是控制指令,则在控制核心执行。如果是任务处理指令,可以根据指令信息,将指令发送到对应的处理核心。
也可以则根据各个处理核心的空闲程度,以及特定的优先级机制将指令发送给合适的处理核心。如果所有处理核心均没有接收多余指令的空闲处理单元,则停止取指,等待空闲处理单元。
2、多个处理核心202:接收各个控制核心发送来的指令,第二次译码检查各个处理单元的空闲情况,检查接收到指令间的数据相关性,将可以执行的指令发送给各个处理单元进行计算。
3、数据同步网络204:通过数据同步网络对控制核心内部的通用寄存器的使用进行数据同步。由于从控制核心发送到处理核心,再由处理核心发送到各个处理单元都有可能存在阻塞的情况,因此处理核心对控制核心内部的通用寄存器的操作时间具有不确定性。通过数据同步网络的设计,如果控制核心和任一处理单元存在数据相关冲突(包括写后读相关、读后写相关、写后写相关),则会停止控制核心的取指,以实现数据同步的功能。
4、控制同步网络203:定制化指令WAIT_m、DONE_n,从执行的角度来实现不同处理核心,不同处理单元需要和控制核心同步指令的功能。当控制核心发起了WAIT_m请求,该控制核心停止取指和译码。直到对应的处理核心执行完所必须要执行的程序,并且执行DONE_n,给控制核心提供对应的标识信息。控制核心监测到处理核心完成任务,则继续取指令动作,执行后续的程序。其中,n取1至N的整数,m取1至M的整数。
采用上述多核处理系统,根据处理需求在控制核心和处理核心之间配置一对多的拓扑结构,即一个控制核心可以将处理指令发送给多个处理核心进行并行处理,提高数据处理指令处理的并行度,从而提高数据处理效率。尤其是针对处理复杂任务的速度,如将处理单元设计成为矢量处理单元应用于通信芯片,可以加速对大量并行数据的处理;又如处理单元设计成为固定硬件算法的加速模块,可以缩减特定算法的执行时间。
基于本申请实施例提供的多核处理系统,本申请实施例还提供了一种多核处理系统的任务调度方法。多核处理系统为本申请实施例中任一种多核处理系统,图3为本申请实施例中多核处理系统的任务调度方法的流程示意图,如图3所示,该方法具体可以包括:
步骤301:通过多个控制核心中的第一控制核心读取第一指令;
示例性的,第一控制核心从指令缓存单元中根据预设取指顺序进行顺序取指,顺序译码以及顺序发送。这样,采用实现简单的顺序取指方法,对指令进行并行处理,应用本申请实施例提供的多核心处理系统的软件开发难度很低,易于实现。
在另一些实施例中,也可以不需要按照程序规定的顺序执行。例如,将指令乱序发送,乱序执行。
步骤302:通过所述第一控制核心确定所述第一指令为控制核心执行的控制指令时,执行所述第一指令;
具体地,第一控制核心读取第一指令后,译码第一指令根据译码结果确定第一指令为控制核心执行的控制指令,或者根据译码结果确定第一指令为处理核心执行的数据处理指令。也就是说,第一控制核心用于取指令,译码指令,以及执行控制指令。
多个控制核心可采用无内部互锁流水级的微处理器(Microprocessor withoutinterlocked piped stages,MIPIS),第五代精简指令集处理器(Microprocessor withoutinterlocked piped stages,RISC-V)等方便拓展的小核。其中,RISC-V是基于精简指令集计算(Reduced Instruction Set Computer,RISC)原理建立的开放指令集架构(Instruction Set Architecture,ISA),V表示为第五代RISC。
步骤303:通过所述第一控制核心确定所述第一指令为处理核心执行的数据处理指令时,发送所述第一指令给所述多个处理核心中的第一处理核心,所述第一处理核心执行所述第一指令。
在一些实施例中,每个处理核心包括至少一个处理单元,用于执行数据处理指令。当处理核心包括两个以上处理单元时可以实现至少两条指令的并行处理。
在一些实施例中,该方法还包括:所述处理核心根据所述至少一个处理单元的空闲状态,确定所述处理核心的空闲信息;所述第一控制核心获取所述多个处理核心的空闲信息,根据所述多个处理核心的空闲信息确定所述第一处理核心。示例性的,处理核心的空闲信息可以包括处理单元处于空闲状态或非空闲状态。进一步地,可以根据处理核心的空闲信息中处于空闲状态的处理单元数量,确定处理核心的空闲程度,选择空闲程度最高(即处于空闲状态的处理单元数量最多)的处理核心作为第一处理核心,当存储多个空闲程度相同的处理核心,则任意选择一个作为第一处理核心,或者按照预设的选择顺序或优先级选择一个作为第一处理核心。
在一些实施例中,所述第一控制核心获取所述多个处理核心的空闲信息和优先级;所述第一控制核心根据所述多个处理核心的空闲信息和优先级确定所述第一处理核心。示例性的,从高优先级开始搜索,确定具有处于空闲状态的处理单元的处理核心作为第一处理核心。
在一些实施例中,所述第一控制核心根据所述多个处理核心的空闲信息,确定所述多个处理核心无空闲处理单元时,停止发送所述第一指令。第一控制核心根据所述多个处理核心的空闲信息,确定所述多个处理核心有空闲处理单元时,将第一指令发送给有空闲处理单元的第一处理核心。
在一些实施例中,所述第一处理核心接收到所述第一指令,根据所述第一指令的指令类型和处理单元的空闲状态,将所述第一指令发送给第一处理单元执行。
具体地,当处理单元的处理指令类型相同,第一处理核心可以根据预设的发送顺序将第一指令发送给处于空闲状态的第一处理单元。
当处理单元的处理指令类型不完全相同,所述第一处理核心接收到所述第一指令,确定所述第一指令的指令类型;所述第一处理核心基于处理单元与指令类型的映射关系,根据所述第一指令的指令类型和处理单元的空闲状态,确定执行所述第一指令的所述第一处理单元。
示例性的,处理单元可以为矢量处理单元,标量处理单元,傅里叶变换处理单元,滤波处理单元,或者基于固定硬件算法的加速处理单元。相应的,矢量处理单元处理矢量数据,标量处理单元处理标量数据,傅里叶变换处理单元对数据进行傅里叶变换,滤波处理单元对数据进行滤波,加速处理单元用于加速特定算法的数据处理。
示例性的,在一些实施例中,所述多核处理系统还包括数据同步网络,所述方法还包括:所述第一处理核心执行所述第一指令时,确定对所述第一控制核心的寄存器执行第一操作,通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据;其中,所述第一操作为读操作时,所述第一操作数据为读数据;所述第一操作为写操作时,所述第一操作数据为写数据。
示例性的,在一些实施例中,所述方法还包括:所述第一处理核心通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据后,所述第一控制核心读取第二指令;所述第一处理核心未通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据,所述第一控制核心停止读取所述第二指令;其中,所述第二指令执行时对所述第一控制核心的寄存器执行第二操作,所述第一操作和所述第二操作为数据相关操作。
示例性的,第一操作为寄存器写操作,第二操作为寄存器读操作;或者,第一操作为寄存器读操作,第二操作为寄存器写操作;或者,第一操作为寄存器写操作,第二操作为寄存器写操作。
这里,通过数据同步网络对控制核心内部的通用寄存器的使用进行数据同步。由于指令从控制核心发送到处理核心,再由处理核心发送到各个处理单元都有可能存在阻塞的情况,因此处理核心对控制核心内部的通用寄存器的操作时间具有不确定性。通过数据同步网络的设计,如果控制核心和任一处理单元存在数据相关冲突,则会停止控制核心的取指,以实现数据同步的功能。这里,数据相关冲突包括:写后读相关、读后写相关、写后写相关。
示例性的,在一些实施例中,所述多核处理系统还包括控制同步网络,所述方法还包括:所述第一控制核心读取当前指令集合中的所有指令后,所述第一控制核心通过所述控制同步网络发送等待请求给所述多个处理核心中的第二处理核心,并停止读取下一指令集合中的指令;其中,所述第二处理核心为所述多个处理核心中的部分或全部处理核心;
所述第二处理核心响应于所述等待请求,确定所述第二处理核心将接收到的所述当前指令集合中的指令执行结束,生成结束响应;通过所述控制同步网络发送所述结束响应给所述第一控制核心;
所述第一控制核心根据接收到的所述结束响应确定所述当前指令集合中的所有指令执行结束,开始读取所述下一指令集合中的指令。
也就是说,本申请实施例为了实现控制同步,第一控制核心读取当前指令集合中的所有指令后,发送等待请求,第一控制核心停止取指,译码。直到所有第二处理核心执行完所必须要执行的指令程序,并且返回结束响应,这样第一控制核心能够确定当前指令集合是否执行结束,执行结束后再继续读取下一指令集合,避免相关数据冲突。这里,第二处理核心可以指接收到第一指令的第一处理核心,也可以指每个处理核心。
这里,等待请求可以包含控制核心标识,以图2为例,当该系统包括N个控制核心M个处理核心时,WAIT_m表示控制核心发起等待请求,该控制核心停止取指和译码,直到对应的处理核心执行完所必须要执行的处理指令,并且返回DONE_n,给控制核心提供对应的标识信息。进一步地,等待请求还包括控制核心标识,例如WAIT_m_n表示,由控制核心n向处理核心m发送的等待请求。结束响应还包括处理核心标识,例如DONE_n_m表示,由处理核心m向控制核心n发送的结束响应。其中,n取1至N的整数,m取1至M的整数。
需要说明的是,第一控制核心从指令缓存单元中获取第一控制核心对应的第一指令。所述第一控制核心为所述多个控制核心中的任意一个,第一处理核心为多个处理核心中需要执行第一指令中的一个或多个,第一控制核心和第一处理核心只是为了说明本申请实施例控制核心和处理核心之间的任务调度处理,并不是用来限定某一个特定的控制核心,或某一个特定的处理核心。也就是说,任一个控制核心均可视为第一控制核心,任一个处理核心均可视为第一处理核心。本申请实施例第一控制核心和多个处理核心交互实现的多核处理系统的任务调度方法,可以理解为任意一个控制核心和多个处理核心交互实现的多核处理系统的任务调度方法。
采用上述多核处理系统的任务调度方法,根据处理需求在控制核心和处理核心之间配置一对多的拓扑结构,即一个控制核心可以将处理指令发送给多个处理核心进行并行处理,提高数据处理指令处理的并行度,从而提高数据处理效率。尤其是针对处理复杂任务的速度,如将处理单元设计成为矢量处理单元应用于通信芯片,可以加速对大量并行数据的处理;又如处理单元设计成为固定硬件算法的加速模块,可以缩减特定算法的执行时间。
本申请实施例还提供了一种芯片,图4是本申请实施例的芯片的组成结构示意图。芯片40包括:多核处理系统401,所述多核处理系统包括多个控制核心和多个处理核心,所述多核处理系统为本申请实施例提供的任意一种多核处理系统,用于从存储器中调用并运行计算机程序,使得安装有该芯片的电子设备用于执行本申请实施例中的多核处理系统的任务调度方法的步骤。
可选地,如图4所示,芯片40还可以包括存储器402。其中,多核处理系统401可以从存储器402中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器402可以是独立于多核处理系统401的一个单独的器件,也可以集成在多核处理系统401中。
可选地,该芯片40还可以包括输入接口403。其中,多核处理系统401可以控制该输入接口403与其他设备或芯片进行通信,具体地,可以获取其他设备或芯片发送的信息或数据。
可选地,该芯片40还可以包括输出接口404。其中,多核处理系统401可以控制该输出接口404与其他设备或芯片进行通信,具体地,可以向其他设备或芯片输出信息或数据。
可选地,芯片中各个组件通过总线系统耦合在一起。
可选地,该芯片可应用于电子设备,并且该芯片可以实现本申请实施例的各个方法实现的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
在实际应用中,上述多核处理系统可以为异构多核处理系统,或同构多核处理系统。从硬件的角度来看,多核设计分为两类。如果所有的核心或CPU具有相同的构架,那么定义为同构多核(homogeneous);如果架构不同,那么称为异构(heterogeneous)多核。从应用来看,同构多核处理系统中大多数由通用处理器核构成,每个核可以独立运行,类似单核处理器。而异构多核处理系统往往同时继承了通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、媒体处理器、网络处理器等。每个内核针对不同的需求设定的,从而提高应用的计算性能或实时性能。
上述存储器可以是易失性存储器(volatile memory),例如随机存取存储器(RAM,Random-Access Memory);或者非易失性存储器(non-volatile memory),例如只读存储器(ROM,Read-Only Memory),快闪存储器(flash memory),硬盘(HDD,Hard Disk Drive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的存储器的组合,并向处理器提供指令和数据。
在示例性实施例中,本申请实施例还提供了一种电子设备,该电子设备包括上述芯片。
在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,计算机程序可由处理器执行,以完成前述方法的步骤。这里处理器可以理解为包含多核处理系统的多核处理器。
本申请实施例还提供了一种计算机程序产品,包括计算机程序指令。
可选的,该计算机程序产品可应用于本申请实施例中的处理器,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由处理器实现的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序。
可选的,该计算机程序可应用于本申请实施例中的处理器,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由处理器实现的相应流程,为了简洁,在此不再赘述。
应当理解,在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。本申请中表述“具有”、“可以具有”、“包括”和“包含”、或者“可以包括”和“可以包含”在本文中可以用于指示存在对应的特征(例如,诸如数值、功能、操作或组件等元素),但不排除附加特征的存在。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开,不必用于描述特定的顺序或先后次序。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种多核处理系统,其特征在于,所述多核处理系统包括多个控制核心和多个处理核心,
所述多个控制核心中的第一控制核心读取第一指令;
所述第一控制核心确定所述第一指令为控制核心执行的控制指令时,执行所述第一指令;
所述第一控制核心确定所述第一指令为处理核心执行的数据处理指令时,发送所述第一指令给所述多个处理核心中的第一处理核心,所述第一处理核心执行所述第一指令。
2.根据权利要求1所述的多核处理系统,其特征在于,所述多核处理系统还包括数据同步网络,
所述第一处理核心执行所述第一指令时,确定对所述第一控制核心的寄存器执行第一操作,通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据;
其中,所述第一操作为读操作时,所述第一操作数据为读数据;所述第一操作为写操作时,所述第一操作数据为写数据。
3.根据权利要求2所述的多核处理系统,其特征在于,
所述第一处理核心通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据后,所述第一控制核心读取第二指令;
所述第一处理核心未通过所述数据同步网络同步所述第一控制核心的寄存器的第一操作数据,所述第一控制核心停止读取所述第二指令;
其中,所述第二指令执行时对所述第一控制核心的寄存器执行第二操作,所述第一操作和所述第二操作为数据相关操作。
4.根据权利要求1所述的多核处理系统,其特征在于,所述多核处理系统还包括控制同步网络,
所述第一控制核心读取当前指令集合中的所有指令后,所述第一控制核心通过所述控制同步网络发送等待请求给所述多个处理核心中的第二处理核心,并停止读取下一指令集合中的指令;其中,所述第二处理核心为所述多个处理核心中的部分或全部处理核心;
所述第二处理核心响应于所述等待请求,确定所述第二处理核心将接收到的所述当前指令集合中的指令执行结束,生成结束响应;通过所述控制同步网络发送所述结束响应给所述第一控制核心;
所述第一控制核心根据接收到的所述结束响应确定所述当前指令集合中的所有指令执行结束,开始读取所述下一指令集合中的指令。
5.根据权利要求1所述的多核处理系统,其特征在于,所述处理核心包括至少一个处理单元,
所述处理核心根据所述至少一个处理单元的空闲状态,确定所述处理核心的空闲信息;
所述第一控制核心获取所述多个处理核心的空闲信息,根据所述多个处理核心的空闲信息确定所述第一处理核心。
6.根据权利要求5所述的多核处理系统,其特征在于,
所述第一控制核心根据所述多个处理核心的空闲信息,确定所述多个处理核心无空闲处理单元时,停止发送所述第一指令。
7.根据权利要求1所述的多核处理系统,其特征在于,所述处理核心包括至少一个处理单元,
所述第一处理核心接收到所述第一指令,根据所述第一指令的指令类型和处理单元的空闲状态,将所述第一指令发送给第一处理单元执行。
8.一种芯片,其特征在于,所述芯片包括权利要求1至7任一项所述的多核处理系统。
9.一种多核处理系统的任务调度方法,其特征在于,所述多核处理系统包括多个控制核心及多个处理核心,所述方法包括:
通过多个控制核心中的第一控制核心读取第一指令;
通过所述第一控制核心确定所述第一指令为控制核心执行的控制指令时,执行所述第一指令;
通过所述第一控制核心确定所述第一指令为处理核心执行的数据处理指令时,发送所述第一指令给所述多个处理核心中的第一处理核心,所述第一处理核心执行所述第一指令。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求9所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210785227.6A CN115061803A (zh) | 2022-06-29 | 2022-06-29 | 一种多核处理系统及其任务调度方法、芯片、存储介质 |
PCT/CN2022/143751 WO2024001137A1 (zh) | 2022-06-29 | 2022-12-30 | 一种多核处理系统及其任务调度方法、芯片、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210785227.6A CN115061803A (zh) | 2022-06-29 | 2022-06-29 | 一种多核处理系统及其任务调度方法、芯片、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115061803A true CN115061803A (zh) | 2022-09-16 |
Family
ID=83203878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210785227.6A Pending CN115061803A (zh) | 2022-06-29 | 2022-06-29 | 一种多核处理系统及其任务调度方法、芯片、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115061803A (zh) |
WO (1) | WO2024001137A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974727A (zh) * | 2023-08-31 | 2023-10-31 | 中科驭数(北京)科技有限公司 | 基于多个处理核的数据流处理方法、装置、设备及介质 |
WO2024001137A1 (zh) * | 2022-06-29 | 2024-01-04 | Oppo广东移动通信有限公司 | 一种多核处理系统及其任务调度方法、芯片、存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2210153B1 (en) * | 2007-11-13 | 2013-04-24 | Rockwell Automation Technologies, Inc. | Industrial controller using shared memory multicore architecture |
US8140902B2 (en) * | 2008-11-12 | 2012-03-20 | International Business Machines Corporation | Internally controlling and enhancing advanced test and characterization in a multiple core microprocessor |
JP5488697B2 (ja) * | 2010-08-30 | 2014-05-14 | 富士通株式会社 | マルチコアプロセッサシステム、同期制御方法、および同期制御プログラム |
CN102446158B (zh) * | 2010-10-12 | 2013-09-18 | 无锡江南计算技术研究所 | 多核处理器及多核处理器组 |
CN113971085A (zh) * | 2020-12-31 | 2022-01-25 | 广东棣浩智能科技有限公司 | 主从核心区分处理任务的方法、装置、系统和存储介质 |
CN115061803A (zh) * | 2022-06-29 | 2022-09-16 | Oppo广东移动通信有限公司 | 一种多核处理系统及其任务调度方法、芯片、存储介质 |
-
2022
- 2022-06-29 CN CN202210785227.6A patent/CN115061803A/zh active Pending
- 2022-12-30 WO PCT/CN2022/143751 patent/WO2024001137A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024001137A1 (zh) * | 2022-06-29 | 2024-01-04 | Oppo广东移动通信有限公司 | 一种多核处理系统及其任务调度方法、芯片、存储介质 |
CN116974727A (zh) * | 2023-08-31 | 2023-10-31 | 中科驭数(北京)科技有限公司 | 基于多个处理核的数据流处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024001137A1 (zh) | 2024-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3636871B2 (ja) | 並列プロセッサシステム | |
CN115061803A (zh) | 一种多核处理系统及其任务调度方法、芯片、存储介质 | |
CN111258935B (zh) | 数据传输装置和方法 | |
US8972702B2 (en) | Systems and methods for power management in a high performance computing (HPC) cluster | |
US20060059489A1 (en) | Parallel processing system, interconnection network, node and network control method, and program therefor | |
WO2016119521A1 (en) | Asynchronous multiple-core processor | |
JP5036523B2 (ja) | プログラム並列化装置 | |
CN102681890A (zh) | 一种应用于线程级推测并行的限制性值传递方法和装置 | |
US9652299B2 (en) | Controlling the state of a process between a running and a stopped state by comparing identification information sent prior to execution | |
WO2001086426A2 (en) | System and method for performing a synchronization operation for multiple devices in a computer system | |
US20140331025A1 (en) | Reconfigurable processor and operation method thereof | |
CN111258769B (zh) | 数据传输装置和方法 | |
CN114706813B (zh) | 多核异构片上系统、非对称同步方法、计算设备和介质 | |
CN112306703A (zh) | 一种numa系统中的临界区执行方法及装置 | |
US9946665B2 (en) | Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU) | |
CN111459620B (zh) | 安全容器操作系统到虚拟机监控器的信息调度方法 | |
CN113760818A (zh) | 一种高性能协处理器接口 | |
CN112445587A (zh) | 一种任务处理的方法以及任务处理装置 | |
US8312193B2 (en) | Eager protocol on a cache pipeline dataflow | |
KR100921504B1 (ko) | 다중 프로세서를 구비한 시스템 온 칩 시스템 내의프로세서간 통신 장치 및 방법 | |
CN117389512B (zh) | 一种算术逻辑单元alu系统、电子设备和存储介质 | |
WO2021253359A1 (zh) | 一种图指令处理方法及装置 | |
US20230069032A1 (en) | Data processing apparatus, chip, and data processing method | |
JP2795312B2 (ja) | プロセス間通信スケジューリング方式 | |
WO2007088581A1 (ja) | 共有メモリ型マルチプロセッサにおける手続き呼び出し方法、手続き呼び出しプログラムおよび記録媒体 |
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 |