CN113326149B - 异构多核系统的核间通信方法和设备 - Google Patents
异构多核系统的核间通信方法和设备 Download PDFInfo
- Publication number
- CN113326149B CN113326149B CN202110585755.2A CN202110585755A CN113326149B CN 113326149 B CN113326149 B CN 113326149B CN 202110585755 A CN202110585755 A CN 202110585755A CN 113326149 B CN113326149 B CN 113326149B
- Authority
- CN
- China
- Prior art keywords
- core
- shared memory
- node
- inter
- information
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000015654 memory Effects 0.000 claims abstract description 267
- 230000003993 interaction Effects 0.000 claims description 26
- 230000002452 interceptive effect Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 5
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 230000006855 networking Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及核间通信技术领域,尤其涉及一种异构多核系统的核间通信方法和设备。该方法包括:预先建立第一节点表,第一节点表包括多个节点空间;第一核确定与第二核通信时,第一核从核间共享内存中分配第一共享内存;第一核将第一共享内存的信息存储于第一节点表的第一节点空间,第一节点空间与第一核对应;第一核向第二核发送通信请求,通信请求用于使第二核访问第一节点表并从第一节点空间获取第一共享内存的信息;第一核确定第二核获取到第一共享内存的信息之后,第一核基于第一共享内存与第二核交互数据。本发明实施例方案,能够灵活建立核间通信链路,而且支持核间共享内存的动态申请和释放,减少内存消耗。
Description
技术领域
本发明涉及核间通信技术领域,尤其涉及一种异构多核系统的核间通信方法和设备。
背景技术
随着硬件技术的发展,处理器加速从单核向多核发展。多核系统,尤其是异构多核系统,通常部署为主从结构。常见地,异构多核系统包括主核和至少一个从核。主核负责资源管理、从核调度和一些相对比较复杂的逻辑运算;从核接受主核的调度并完成一些专项或者相对比较简单的逻辑运算。异构多核系统采用主从结构虽然能够带来管理上的一些便利,但难以实现从核的灵活调度。
发明内容
有鉴于此,本发明实施例提供了一种异构多核系统的核间通信方法和设备。该方案中不再划分主核和从核,支持异构多核系统中任意一个核与任意另一个核之间的自由通信组网,可以实现异构多核系统去中心化的网状分布结构。即本方案的异构多核系统不再采用相关技术中广泛采用的主从通信结构,而是采用网状结构。本方案的异构多核系统采用去中心化的网状分布结构,不仅可以实现核与核之间灵活通信,还可以实现核间共享内存的动态申请和释放,实现核间共享内存的灵活调度分配。进一步,通过核间共享内存灵活调度和分配,可以实现核间共享内存的动态申请和释放,而且可以支持实现多核系统算力的最大化。
第一方面,本发明实施例提供了一种异构多核系统的核间通信方法,包括:
预先建立第一节点表,所述第一节点表包括多个节点空间;
第一核确定与第二核通信时,所述第一核从核间共享内存中分配第一共享内存,所述第一核和所述第二核为异构多核系统中任意的两个核;
所述第一核将所述第一共享内存的信息存储于所述第一节点表的第一节点空间,所述第一节点空间与所述第一核对应;
所述第一核向所述第二核发送通信请求,所述通信请求用于使所述第二核访问所述第一节点表并从所述第一节点空间获取所述第一共享内存的信息;
所述第一核确定所述第二核获取到所述第一共享内存的信息之后,所述第一核基于所述第一共享内存与所述第二核交互数据。
可选的,所述第一节点表位于所述核间共享内存的固定位置处,由此可以支持异构多核系统中任意核可以访问第一节点表。
可选的,所述第一节点空间与所述第一核对应,包括:所述第一核从所述第一节点表中确定空闲的节点空间;所述第一核将第一核信息写入所述空闲的节点空间以作为所述第一节点空间。本发明实施例中,第一节点表中的各节点空间初始化时可以处于空闲状态,当任意一核(如第一核)发起通信时,第一核可以占用其中一个空闲的节点,并且将第一核信息写入其所占用的节点空间(即第一节点空间),并且当第一核通信结束时,第一核可以释放第一节点空间以供其它核使用。或者,
所述第一节点表包括的所述多个节点空间与异构多核系统的各个核一一对应;所述第一核将所述第一节点表中与所述第一核对应的节点空间作为所述第一节点空间。本发明实施例中,第一节点表的各个节点空间可以预先与各个核建立对应关系,即异构多核系统中的各个核可以预先注册到第一节点表。当任意一核(如第一核)发起通信时,第一核可以从第一节点表查找其自身对应的节点空间。
可选的,所述核间共享内存包括分配给异构多核系统中的各个核分别管理的内存;所述第一核从核间共享内存中分配第一共享内存,包括:所述第一核从属于第一核管理的核间共享内存中分配所述第一共享内存。本发明实施例中支持将核间共享内存的部分内存预先分配给各个核,当任意一核(如第一核)发起通信时,第一核可以从其所管理的核间共享内存中分配第一共享内存。
可选的,所述第一共享内存包括:写内存单元和读内存单元;所述写内存单元,用于所述第一核写入交互数据以供所述第二核读取;所述读内存单元,用于所述第二核写入交互数据以供所述第一核读取。
可选的,所述第一核向所述第二核发送通信请求,包括:所述第一核触发与所述第二核之间的核间中断,所述核间中断用于使所述第二核访问所述第一节点表,并从所述第一节点表中确定所述第一核对应的第一节点空间以及从所述第一节点空间获取所述第一共享内存的信息。
可选的,所述第一核确定所述第二核获取到所述第一共享内存的信息,包括:如果所述第一核检测到所述第二核触发的核间中断,并从所述第一共享内存读取到所述第二核写入的第一确认信息,则所述第一核确定所述第二核获取到所述第一共享内存的信息。
可选的,所述第一核确定所述第二核获取到所述第一共享内存的信息之后,基于所述第一共享内存与所述第二核交互数据之前,所述方法还包括:所述第一核将所述第二核的信息存储到所述第一节点空间处。
可选的,所述第一核基于所述第一共享内存与所述第二核交互数据的过程中,所述方法还包括:
如果所述第一核确定所述第一共享内存的空间小于交互需求,则所述第一核继续分配至少一个第二共享内存;
所述第一核将所述至少一个第二共享内存的信息存储至所述第一节点空间;
所述第一核将所述至少一个第二共享内存的信息通知所述第二核。
可选的,所述方法还包括:所述第一核确定与所述第二核交互结束,或者,所述第一核检测到所述第二核发送的交互结束信息之后,所述第一核释放所述第一共享内存以及释放所述第一节点空间。
第二方面,本发明实施例提供了一种异构多核系统的核间通信方法,包括:
预先建立第一节点表,所述第一节点表包括多个节点空间;
第二核接收到第一核发送的通信请求时,所述第二核从所述第一节点表中确定第一节点空间,并从所述第一节点空间获取所述第一共享内存的信息;
所述第二核向所述第一核发送响应信息,所述响应信息用于使所述第一核确定所述第二核已经获取到所述第一共享内存的信息;
所述第二核基于所述第一共享内存与所述第一核交互数据。
可选的,第二核接收到第一核发送的通信请求,包括:
所述第二核检测到所述第一核触发的核间中断时,确定接收到所述第一核发送的通信请求。
可选的,所述第二核向所述第一核发送响应信息,包括:所述第二核触发与所述第一核之间的核间中断,并且在所述第一共享内存中写入第一确认信息。
可选的,所述第一共享内存包括:写内存单元和读内存单元;所述第二核基于所述第一共享内存与所述第一核交互数据,包括:
所述第二核从所述写内存单元读取所述第一核写入的交互数据;
所述第二核将待交互数据写入所述读内存单元以供所述第一核读取。
可选的,所述方法还包括:所述第二核接收所述第一核发送的至少一个第二共享内存的信息,所述至少一个第二共享内存用于与所述第一核的数据交互。
第三方面,本发明实施例提供了一种终端设备,包括:异构多核系统,所述异构多核系统包括多个核,每个所述核均配置有专用内存,所述多个核之间配置有核间共享内存;每个所述核的专用内存中存储有可被其执行的程序指令,当所述程序指令被对应的核调用时以执行如第一方面或者第二方面任一可能实施例的方法。
第四方面,本发明实施例提供了一种通信芯片,包括:包括多个核,每个所述核均配置有专用内存,所述多个核之间配置有核间共享内存;每个所述核用于执行存储在其所对应的专用内存中的计算机程序指令,其中,所述计算机程序指令被对应的核执行时,触发所述通信芯片执行如第一方面或者第二方面任一可能实施例的方法。
第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行如第一方面或者第二方面任一可能实施例的方法。
本发明实施例方案不再划分主核和从核,支持异构多核系统中任意一个核与任意另一个核之间的自由通信组网,可以实现异构多核系统去中心化的网状分布结构。即本方案的异构多核系统不再采用相关技术中广泛采用的主从通信结构,而是采用网状结构。本方案的异构多核系统采用去中心化的网状分布结构,不仅可以实现核与核之间灵活通信,还可以实现核间共享内存的动态申请和释放,实现核间共享内存的灵活调度分配。进一步,通过核间共享内存灵活调度和分配,可以实现核间共享内存的动态申请和释放,而且可以支持实现多核系统算力的最大化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1-a是本发明实施例提供的一种异构多核系统的结构示意图;
图1-b是本发明实施例提供的另一种异构多核系统的结构示意图;
图2是本发明实施例提供的一种异构多核系统的拓扑图;
图3是本发明实施例提供的又一种异构多核系统的结构示意图;
图4是本发明实施例提供的一种第一节点表的示意图;
图5是本发明实施例提供的一种异构多核系统的核间通信方法的流程图;
图6是本发明实施例提供的另一种异构多核系统的核间通信方法的流程图;
图7是本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
异构多核系统是由多种不同指令集架构(Instruction SetArchitecture,ISA)的处理器组成的计算机系统。图1-a是本发明实施例提供的一种异构多核系统的结构示意图。如图1-a所示,该异构多核系统包括多个核,如图1中的核1、核2……核N,每个核设置有专用内存,各个核之间设置有核间共享内存。
在一些实施例中,异构多核系统中的各个核可以实现为应用程序处理器(Application Processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。上述仅是对各个核的实现方式的举例,对于各个核其它可能实现的方式,此处不再一一列举。
在一些实施例中,每个核的专用内存,用于存储相应核的指令和数据,每个核均可调用其对应的专用内存中的指令和数据,以执行本发明实施例提供的核间通信方法。可选的,核间共享内存用于为各个核提供核间共享内存,以支持各个核进行核间数据交互。
可选的,异构多核系统中,各个核的专用内存和核间共享内存可以配置于一个或者多个存储器中。在一些实施例中,各个核的专用内存和核间共享内存可以配置于同一个存储器的不同区域。在一些实施例中,各个核的专用内存可以配置于同一个存储器的不同区域,核间共享内存配置于另一个存储器中。在一些实施例中,如图1-b所示,异构多核系统的每个核均配置有专用存储器,该专用存储器用于为其对应的核提供专用内存,如核1对应的专用存储器为核1提供专用内存,核2对应的专用存储器为核2提供专用内存。如图1-b所示,异构多核系统还配置有共享存储器,该共享存储器用于为各个核提供核间共享内存。当然在一些其它实施例中也可以是,异构多核系统的各个核分为多个组,每个组对应一个专用存储器,每个组的专用存储器为组内各个核提供专用内存。此时,核间共享内存可以配置于其中一个组或者几个组的存储器中,也可以额外配置存储器以提供核间共享内存。
本发明实施例中,异构多核系统的上述N个核不再采用主从结构,N个核之间使用去中心化的网状结构,任意两个核之间均可以建立通信。如图2所示,异构多核系统包括核1、核2和核3。核1、核2和核3中的任意两个核之间可以自由建立进程间通信(Inter-ProcessCommunication,IPC)。其中当两个核之间建立通信时可以动态分配共享内存,当两个核之间结束通信时则可以释放共享内存。由此可以达到灵活建立核间通信链路以及动态申请、释放共享内存的效果,从而可以降低内存消耗。
图3是本发明实施例提供的另一种异构多核系统的结构示意图。如图3所示,核间共享内存包括第一内存单元。第一内存单元用于设置第一节点表。第一节点表包括多个节点空间。如图4所示,第一节点表可以包括节点1、节点2、节点3等节点空间。所述节点空间均用于存储建立通信的两个核的信息。如图4给出的示例中,第一节点表中的节点2用于存储建立通信的第一核、第二核以及动态申请的第一共享内存的信息。其中,第一核和第二核是异构多核系统中任意的两个核。
在一些实施例中,第一节点表可以位于核间共享内存的固定位置。可选的,可以将第一节点表在核间共享内存的起始位置设置为固定值。在一些实施例中,第一节点表包括的节点空间个数可以与异构多核系统包括的核个数相同。例如,异构多核系统包括3个核,则第一节点表可以包括3个节点空间。当然,第一节点表包括的节点空间的个数也可以根据数据交互需求进行灵活扩展。
在一些实施例中,第一节点表的各个节点空间初始化时可以为空闲态。当任意一个核(如第一核)需要与其它核(如第二核)建立通信时,第一核可以将自身的信息写入到其中一个处于空闲的第一空间节点中。之后,第一核可以动态分配共享内存(如第一共享内存)。第一核可以将第一共享内存的信息以及建立通信的第二核的信息写入到第一节点空间中。当第一核和第二核结束数据交互时,第一核释放第一空间节点,以使第一空间节点恢复为空闲态。如图4中,当第一核确定需要与第二核通信时,查询第一节点表确定节点2处于空闲态,则第一核将节点2作为上述的第一节点空间。
在一些实施例中,第一节点表包括的各个节点空间与异构多核系统的各个核一一对应。当第一核确定与第二核通信时,第一核从第一节点表中确定与自身对应的第一节点空间。之后,第一核可以将动态分配的第一共享内存的信息和第二核的信息写入到第一节点空间中。当第一核和第二核结束数据交互时,第一核删除第一节点空间中第一共享内存和第二核的信息。如图4中,第一节点表中各个节点与核的对应关系预先配置。例如,节点1对第二核,节点2对应第一核,节点3对应第三核。当第一核确定需要与第二核通信时,第一核将第一节点表中的节点2作为第一节点空间。可选的,第一节点表中的各个节点可以预先存储器对应的节点信息。如节点2中预先存储有第一核的信息。第一核通过遍历第一节点表确定存储有自身信息的节点。
如图3所示,共享存储器提供的核间共享内存还包括第二内存单元。第二内存单元用于提供任意两个核进行通信时的共享内存。例如,上述第一核确定与第二核通信时,可以从第二内存单元分配第一共享内存。
基于图1至图4所示的异构多核系统,本发明实施例还提供了任意两个核之间进行通信的方法。如图5所示,该通信方法包括:
100,核间共享内存预先存储有第一节点表,第一节点表包括多个节点空间。如图3所示,核间共享内存包括第一内存单元,第一内存单元用于存储第一节点表。可选的,第一节点表位于第一内存单元的固定位置处。
101,第一核确定与第二核通信时,从核间共享内存中分配第一共享内存。如图3所示,核间共享内存还包括第二内存单元。第一核从第二内存单元分配第一共享内存。可选的,第二内存单元包括分配给异构多核系统中各个核分别管理的内存,第一核可以从其所管理的核间共享内存中分配第一共享内存。在一些实施例中,第二内存单元划分为多个子单元,各个子单元分别分配给异构多核系统的各个核管理。例如,第二内存单元分为第一子单元、第二子单元……。第一核用于管理第一子单元,第二核用于管理第二子单元。当第一核确定与第二核通信时,第一核从第一子单元中分配所述第一共享内存。
102,第一核将第一共享内存的信息存储于第一节点表的第一节点空间,第一节点空间与第一核对应。
在一些实施例中,第一核确定与第二核通信时,第一核从第一节点表中确定第一节点空间。当第一核分配了第一共享内存之后,第一核将第一共享内存的信息写入第一节点空间。可选的,第一核可以将第一共享内存的起始地址和空间大小写入第一节点空间。
可选的,第一核从第一节点表确定第一节点空间的方式可以是:第一核可以从第一节点表中确定空闲的节点空间;第一核将第一核信息写入所述空闲的节点空间以作为所述第一节点空间。
可选的,第一核从第一节点表确定第一节点空间的方式还可以是:第一节点表包括的各个节点空间与异构多核系统的各个核一一对应;第一核将第一节点表中与第一核对应的节点空间作为所述第一节点空间。
103,第一核向第二核发送通信请求。在一些实施例中,第一核向第二核发送通信请求可以是:第一核触发与第二核之间的核间中断。可选的,第一核首次触发与第二核之间的核间中断,即第二核首次检测到第一核触发的核间中断时,确定接收到第一核触发的通信请求。
104,第二核响应于所述通信请求,访问第一节点表并从第一节点空间获取第一共享内存的信息。第二核检测到第一核触发的核间中断后,访问第一节点表。第二核从第一节点表中确定第一核对应的第一节点空间。之后,第二核从第一节点空间获取第一共享内存的信息。可选的,第二核可以从第一节点空间获取第一共享内存的地址和空间大小等信息。可选的,第二核可以将存储有第一核信息的节点确定为第一节点空间。更为具体的,第二核可以将存储有第一核信息且第一核作为通信发起方的节点确定为第一节点空间。
105,第二核向第一核发送响应信息。第一核根据该响应信息确定第二核已经获取到第一共享内存的信息。可选的,第二核向第一核发送响应信息的方式可以是:第二核触发与第一核之间的核间中断,并且第二核可以在第一共享内存中写入第一确认信息。如果第一核检测到第二核触发的核间中断,并从第一共享内存读取到第二核写入的第一确认信息,则第一核确定第二核获取到第一共享内存的信息。可选的,第一确认信息可以包含第二核的标识信息。
106,第一核确定第二核获取到第一共享内存的信息之后,第一核将所述第二核的信息存储到所述第一节点空间处。
107,第一核基于第一共享内存与第二核交互数据。在一些实施例中,第一共享内存可以包括:写内存单元和读内存单元;其中,写内存单元,用于第一核写入交互数据以供第二核读取;读内存单元,用于第二核写入交互数据以供第一核读取。基于此,当第一核向第二核发送第一交互数据时,则第一核将第一交互数据写入写内存单元,第二核从写内存单元读取第一交互数据。同理,当第二核向第一核发送第二交互数据时,则第二核将第二互数据写入读内存单元,第一核从读内存单元读取第二交互数据。在一些实施例中,写内存单元和读内存单元可以均为环形内存,以通过环形内存实现第一核和第二核之间的双向数据交互。
108,第一核确定与第二核交互结束,或者,第一核检测到第二核发送的交互结束信息之后,第一核释放第一共享内存以及释放第一节点空间。
在一些实施例中,第一核确定与第二核交互结束,第一核可以在第一共享内存写入结束交互信息,以通知第二核当前交互结束。在一些实施例中,也可以由第二核发起交互结束。具体的,第二核确定与第一核结束交互时,第二核可以在第一共享内存写入结束交互信息,第一核读取到该结束交互信息之后停止对第一共享内存写入的读写操作。第一核停止对第一共享内存的读写操作之后,释放第一共享内存并释放第一节点空间。即第一核将第一节点空间中存储的第一共享内存的信息和第二节点的信息删除。如果第一节点空间的初始状态为空闲态,则第一核还将第一节点空间中第一核的信息删除,以使第一节点空间可以被其它核使用。
通过上述分析可知,本发明实施例方案的异构多核系统不再区分主核和从核,支持任意一个核与任意另一个核之间的自由通信组网,可以实现异构多核系统去中心化的网状分布结构。即本方案的异构多核系统不再采用相关技术中广泛采用的主从通信结构,而是采用网状结构。本方案的异构多核系统采用去中心化的网状分布结构,不仅可以实现核与核之间灵活通信,还可以实现核间共享内存的动态申请和释放,实现核间共享内存的灵活调度分配。进一步,通过核间共享内存灵活调度和分配,可以降低共享内存的消耗,以及支持实现多核系统算力的最大化。
在图5所示通信方法的基础上,本发明实施例的通信方法如图6所示,还包括:
201,第一核确定第一共享内存的空间小于交互需求时,第一核继续分配至少一个第二共享内存。可选的,第一核可以从核间共享内存中分配所述至少一个第二共享内存。如图3所示,第一核可以从第二内存单元分配所述至少一个第二共享内存。可选的,第一共享内存以及所述至少一个第二共享内存可以是不连续的内存。
202,第一核将所述至少一个第二共享内存的信息存储至第一节点空间。
203,第一核将所述至少一个第二共享内存的信息通知第二核。可选的,第一核通知第二核的方式可以是:第一核将该至少一个第二共享内存的信息写入第一共享内存,第二核从第一共享内存读取该至少一个第二共享内存的信息。可选的,第一核通知第二核的方式还可以是:第一核触发与第二核之间的核间中断。第二核检测到第一核触发的核间中断信号之后,从第一节点空间获取该至少一个第二共享内存的信息。
在本发明实施例中,在第一核和第二核通信的过程中,支持共享内存的多次申请,以在确保第一核和第二核能够完成核间通信的前提下,实现共享内存的更优化分配。本发明实施例的核间通信方法,支持多个核发起核间通信,由此以实现多核异构系统的算力最大化。
本发明实施例还提供了一种终端设备。如图7所示,该设备可以包括:多核处理器31和存储器32。其中,多核处理器31包括多个核,每个核均配置有专用内存。在一些实施例中,各个核的专用内存可以位于存储器32的不同区域。在此基础上,存储器32还可以提供核间共享内存。在一些实施例中,存储器32提供核间共享内存。多核处理器31各个核的专用内存配置于其它存储器中。在一些实施例中,多核处理器31的每个核可以配置专用存储器以为对应核提供专用内存。本发明实施例中,每个核的专用内存存储有可被其执行的程序指令,当所述程序指令被对应的核调用时以执行上述的核间通信方法。可选的,在执行上述核间通信方法时,异构多核系统中的每个核均可作为通信的发起方(如上述方法实施例中的第一核),也可以作为通信的接受方(如上述方法实施例中的第二核)。如图7所示,所述设备的结构中还可以包括通信接口33,用于该设备与其他设备比如处理设备等通信。
图7所示的存储器32以及各个核可能配置的存储器均可用于存储相关指令及数据。在不同的实施例中,图7所示的存储器32和各个核可能配置的存储器包括但不限于是随机存储记忆体(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、非瞬时性计算机可读存储介质(non-transitory computer readable storage medium)或便携式只读存储器(Compact Disc Read-Only Memory,CDROM)。在本实施例中,存储器32独立于多核处理器31。在其它的实施例中,存储器32还可以集成于多核处理器31中。
进一步,本发明实施例还提供了一种通信芯片,该通信芯片可以为实现终端设备结构的芯片。可选的,该通信芯片包括多个核,每个所述核均配置有专用内存,所述多个核之间配置有核间共享内存;每个所述核用于执行存储在其所对应的专用内存中的计算机程序指令,其中,所述计算机程序指令被对应的核执行时,触发所述通信芯片执行上述的核间通信方法。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
具体实现中,本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行上述方法实施例中的部分或全部步骤。
本发明实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,简称ROM)、随机存取存储器(random access memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种异构多核系统的核间通信方法,其特征在于,包括:
预先建立第一节点表,所述第一节点表包括多个节点空间;
第一核确定与第二核通信时,所述第一核从核间共享内存中分配第一共享内存,所述第一核和所述第二核为异构多核系统中任意的两个核;
所述第一核将所述第一共享内存的信息存储于所述第一节点表的第一节点空间,所述第一节点空间与所述第一核对应;
所述第一核向所述第二核发送通信请求,所述通信请求用于使所述第二核访问所述第一节点表并从所述第一节点空间获取所述第一共享内存的信息;
所述第一核确定所述第二核获取到所述第一共享内存的信息之后,所述第一核基于所述第一共享内存与所述第二核交互数据。
2.根据权利要求1所述的方法,其特征在于,所述第一节点表位于所述核间共享内存的固定位置处。
3.根据权利要求1所述的方法,其特征在于,所述第一节点空间与所述第一核对应,包括:
所述第一核从所述第一节点表中确定空闲的节点空间;所述第一核将第一核信息写入所述空闲的节点空间以作为所述第一节点空间;或者,
所述第一节点表包括的所述多个节点空间与异构多核系统的各个核一一对应;所述第一核将所述第一节点表中与所述第一核对应的节点空间作为所述第一节点空间。
4.根据权利要求1所述的方法,其特征在于,所述核间共享内存包括分配给异构多核系统中的各个核分别管理的内存;所述第一核从核间共享内存中分配第一共享内存,包括:
所述第一核从属于第一核管理的核间共享内存中分配所述第一共享内存。
5.根据权利要求4所述的方法,其特征在于,所述第一共享内存包括:写内存单元和读内存单元;
所述写内存单元,用于所述第一核写入交互数据以供所述第二核读取;
所述读内存单元,用于所述第二核写入交互数据以供所述第一核读取。
6.根据权利要求1所述的方法,其特征在于,所述第一核向所述第二核发送通信请求,包括:
所述第一核触发与所述第二核之间的核间中断,所述核间中断用于使所述第二核访问所述第一节点表,并从所述第一节点表中确定所述第一核对应的第一节点空间以及从所述第一节点空间获取所述第一共享内存的信息。
7.根据权利要求6所述的方法,其特征在于,所述第一核确定所述第二核获取到所述第一共享内存的信息,包括:
如果所述第一核检测到所述第二核触发的核间中断,并从所述第一共享内存读取到所述第二核写入的第一确认信息,则所述第一核确定所述第二核获取到所述第一共享内存的信息。
8.根据权利要求1所述的方法,其特征在于,所述第一核确定所述第二核获取到所述第一共享内存的信息之后,基于所述第一共享内存与所述第二核交互数据之前,所述方法还包括:
所述第一核将所述第二核的信息存储到所述第一节点空间处。
9.根据权利要求1所述的方法,其特征在于,所述第一核基于所述第一共享内存与所述第二核交互数据的过程中,所述方法还包括:
如果所述第一核确定所述第一共享内存的空间小于交互需求,则所述第一核继续分配至少一个第二共享内存;
所述第一核将所述至少一个第二共享内存的信息存储至所述第一节点空间;
所述第一核将所述至少一个第二共享内存的信息通知所述第二核。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一核确定与所述第二核交互结束,或者,所述第一核检测到所述第二核发送的交互结束信息之后,所述第一核释放所述第一共享内存以及释放所述第一节点空间。
11.一种异构多核系统的核间通信方法,其特征在于,包括:
预先建立第一节点表,所述第一节点表包括多个节点空间;
第二核接收到第一核发送的通信请求时,所述第二核从所述第一节点表中确定第一节点空间,并从所述第一节点空间获取第一共享内存的信息;其中,所述第一节点空间与所述第一核对应,所述第一核和所述第二核为异构多核系统中任意的两个核;
所述第二核向所述第一核发送响应信息,所述响应信息用于使所述第一核确定所述第二核已经获取到所述第一共享内存的信息;
所述第二核基于所述第一共享内存与所述第一核交互数据。
12.根据权利要求11所述的方法,其特征在于,第二核接收到第一核发送的通信请求,包括:
所述第二核检测到所述第一核触发的核间中断时,确定接收到所述第一核发送的通信请求。
13.根据权利要求11所述的方法,其特征在于,所述第二核向所述第一核发送响应信息,包括:
所述第二核触发与所述第一核之间的核间中断,并且在所述第一共享内存中写入第一确认信息。
14.根据权利要求11所述的方法,其特征在于,所述第一共享内存包括:写内存单元和读内存单元;所述第二核基于所述第一共享内存与所述第一核交互数据,包括:
所述第二核从所述写内存单元读取所述第一核写入的交互数据;
所述第二核将待交互数据写入所述读内存单元以供所述第一核读取。
15.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述第二核接收所述第一核发送的至少一个第二共享内存的信息,所述至少一个第二共享内存用于与所述第一核的数据交互。
16.一种终端设备,其特征在于,包括:异构多核系统,所述异构多核系统包括多个核,每个所述核均配置有专用内存,所述多个核之间配置有核间共享内存;
每个所述核的专用内存中存储有可被其执行的程序指令,当所述程序指令被对应的核调用时以执行如权利要求1至10任一项或者11至15任一项所述的方法。
17.一种通信芯片,其特征在于,包括:
包括多个核,每个所述核均配置有专用内存,所述多个核之间配置有核间共享内存;每个所述核用于执行存储在其所对应的专用内存中的计算机程序指令,其中,所述计算机程序指令被对应的核执行时,触发所述通信芯片执行如权利要求1至10任一项或者11至15任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至10任一项或者11至15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110585755.2A CN113326149B (zh) | 2021-05-27 | 2021-05-27 | 异构多核系统的核间通信方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110585755.2A CN113326149B (zh) | 2021-05-27 | 2021-05-27 | 异构多核系统的核间通信方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113326149A CN113326149A (zh) | 2021-08-31 |
CN113326149B true CN113326149B (zh) | 2022-11-15 |
Family
ID=77421729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110585755.2A Active CN113326149B (zh) | 2021-05-27 | 2021-05-27 | 异构多核系统的核间通信方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326149B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579072A (zh) * | 2022-03-02 | 2022-06-03 | 南京芯驰半导体科技有限公司 | 一种跨多操作系统的显示投屏方法及装置 |
CN115080277B (zh) * | 2022-07-21 | 2022-12-06 | 佛山智能装备技术研究院 | 一种多核系统的核间通信系统 |
CN118409883A (zh) * | 2024-06-26 | 2024-07-30 | 北京芯驰半导体科技股份有限公司 | 跨硬件域的共享内存管理方法、装置、芯片及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904873A (zh) * | 2005-07-28 | 2007-01-31 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
CN112698959A (zh) * | 2019-10-23 | 2021-04-23 | 普天信息技术有限公司 | 一种多核通信方法和装置 |
-
2021
- 2021-05-27 CN CN202110585755.2A patent/CN113326149B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904873A (zh) * | 2005-07-28 | 2007-01-31 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
CN112698959A (zh) * | 2019-10-23 | 2021-04-23 | 普天信息技术有限公司 | 一种多核通信方法和装置 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113326149A (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113326149B (zh) | 异构多核系统的核间通信方法和设备 | |
CN112099941B (zh) | 实现硬件加速处理的方法、设备和系统 | |
JP6089349B2 (ja) | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム | |
WO2019218708A1 (zh) | 一种任务处理方法及处理装置、计算机系统 | |
WO2022247105A1 (zh) | 一种任务调度方法、装置、计算机设备和存储介质 | |
JP2013513174A (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
JP2016508647A5 (zh) | ||
CN114020470B (zh) | 资源分配方法、装置、可读介质及电子设备 | |
CN107562685B (zh) | 一种基于延时补偿的多核处理器核心间数据交互的方法 | |
CN115421787A (zh) | 指令执行方法、装置、设备、系统、程序产品及介质 | |
JP5124430B2 (ja) | 仮想マシンの移行方法、サーバ、及び、プログラム | |
CN116893899A (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN112860458A (zh) | 一种基于共享内存的进程间通信方法及系统 | |
CN113821309B (zh) | 一种微内核虚拟机间的通信方法、装置、设备及存储介质 | |
US9697123B2 (en) | Information processing device, control method of information processing device and control program of information processing device | |
CN104572483B (zh) | 动态内存管理装置及方法 | |
US9690619B2 (en) | Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory | |
CN114816777A (zh) | 命令处理装置、方法、电子设备以及计算机可读存储介质 | |
CN105988871B (zh) | 一种远端内存分配方法、装置和系统 | |
JP2012234564A (ja) | 仮想マシンの移行方法、サーバ、及び、プログラム | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems | |
CN114327862B (zh) | 一种内存分配方法、装置、电子设备及存储介质 | |
CN114924888A (zh) | 资源配置方法、数据处理方法、装置、设备和存储介质 | |
CN115640116A (zh) | 业务处理方法和相关装置 | |
CN111198747B (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 |