CN114816796A - 一种异构多核处理器的核间通信方法和相关装置 - Google Patents
一种异构多核处理器的核间通信方法和相关装置 Download PDFInfo
- Publication number
- CN114816796A CN114816796A CN202210445874.2A CN202210445874A CN114816796A CN 114816796 A CN114816796 A CN 114816796A CN 202210445874 A CN202210445874 A CN 202210445874A CN 114816796 A CN114816796 A CN 114816796A
- Authority
- CN
- China
- Prior art keywords
- core
- inter
- kernel
- framework
- communication
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/541—Interprogram communication via adapters, e.g. between incompatible applications
Abstract
本申请公开了一种异构多核处理器的核间通信方法和相关装置,该方法包括:在异构多核处理器中建立实时操作系统内核SYS/BIOS工程并添加相关依赖包;基于SYS/BIOS工程添加底层开发接口SysLink框架并引入相关依赖包;获取异构多核处理器中第一内核、第二内核的硬件配置信息;基于SysLink框架和硬件配置信息建立核间通信框架;利用核间通信框架进行第一内核和第二内核的核间通信。即,建立SYS/BIOS工程的基础上,添加SysLink框架结合一内核、第二内核的硬件配置信息,自动化建立核间通信框架,实现异构多核处理器的核间通信,无需人为操作进行额外相关配置,使得异构多核处理器的核间通信效率更高效。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种异构多核处理器的核间通信的方法和相关装置。
背景技术
随着集成电路工艺的进步和处理器体系的发展,异构多核处理器广泛应用于嵌入式领域,其中,异构多核处理器的核间通信是提高异构多核处理器的性能的关键技术之一。
现阶段,在异构多核处理器中,通过DSPLINK提供的一套通用的应用程序编程接口(Application Programming Interface,API)从应用层抽象出两个内核之间的物理连接特性进行核间通信。
但是,异构多核处理器中两个内核的结构不同,上述方式实现核间通信需要人为操作进行额外的相关配置,整个操作过程较为复杂繁琐,导致异构多核处理器的核间通信效率不够高效。
发明内容
有鉴于此,本申请实施例提供一种异构多核处理器的核间通信的方法和相关装置,无需人为操作进行额外的相关配置,使得异构多核处理器的核间通信效率更高效。
第一方面,本申请实施例提供了一种异构多核处理器的核间通信的方法,所述方法包括:
在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加所述SYS/BIOS工程的依赖包;
基于所述SYS/BIOS工程添加底层开发接口SysLink框架,并引入所述SysLink框架的依赖包;
获取所述异构多核处理器中第一内核、第二内核的硬件配置信息;
基于所述SysLink框架和所述硬件配置信息,建立核间通信框架;
利用所述核间通信框架进行所述第一内核和所述第二内核的核间通信。
可选的,所述基于所述SysLink框架和所述硬件配置信息,建立核间通信框架,包括:
基所述SysLink框架和所述硬件配置信息,连接所述第一内核和所述第二内核;
通过所述第一内核建立所述核间通信框架所需的共享内存空间并分享至所述第二内核;
通过所述第一内核建立所述核间通信框架所需的两个链表队列分别分配给所述第一内核和所述第二内核。
可选的,所述通过所述第一内核建立所述核间通信框架所需的共享内存空间并分享至所述第二内核,包括:
通过所述第一内核基于所述共享内存空间的指针数据,建立所述共享内存空间;
通过所述第一内核将所述共享内存空间的地址数据发送至所述第二内核。
可选的,所述利用所述核间通信框架进行所述第一内核和所述第二内核的核间通信,包括:
若所述第一内核检测所述第一内核分配的链表队列为空,将通信数据写入预设数据结构中;
通过所述共享内存空间将所述预设数据结构放置在所述第一内核分配的链表队列;
若所述第二内核检测所述第一内核分配的链表队列不为空,读取所述预设数据结构中所述通信数据。
可选的,所述方法还包括:
在所述核间通信完成后,关闭所述SysLink框架和所述共享内存空间。
第二方面,本申请实施例提供了一种异构多核处理器的核间通信装置,所述装置包括:第一建立单元、添加单元、获取单元、第二建立单元和通信单元;
所述第一建立单元,用于在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加所述SYS/BIOS工程的依赖包;
所述添加单元,用于基于所述SYS/BIOS工程添加底层开发接口SysLink框架,并引入所述SysLink框架的依赖包;
所述获取单元,用于获取所述异构多核处理器中第一内核、第二内核的硬件配置信息;
所述第二建立单元,用于基于所述SysLink框架和所述硬件配置信息,建立核间通信框架;
所述通信单元,用于利用所述核间通信框架进行所述第一内核和所述第二内核的核间通信。
可选的,所述第二建立单元包括:连接子单元、第一建立子单元和第二建立子单元;
所述连接子单元,用于基所述SysLink框架和所述硬件配置信息,连接所述第一内核和所述第二内核;
所述第一建立子单元,用于通过所述第一内核建立所述核间通信框架所需的共享内存空间并分享至所述第二内核;
所述第二建立子单元,用于通过所述第一内核建立所述核间通信框架所需的两个链表队列分别分配给所述第一内核和所述第二内核。
可选的,所述第一建立子单元包括:建立模块和发送模块;
所述建立模块,用于通过所述第一内核基于所述共享内存空间的指针数据,建立所述共享内存空间;
所述发送模块,用于通过所述第一内核将所述共享内存空间的地址数据发送至所述第二内核。
可选的,所述通信单元405包括:写入子单元、放置子单元和读取子单元;
所述写入子单元,用于若所述第一内核检测所述第一内核分配的链表队列为空,将通信数据写入预设数据结构中;
所述放置子单元,用于通过所述共享内存空间将所述预设数据结构放置在所述第一内核分配的链表队列;
所述读取子单元,用于若所述第二内核检测所述第一内核分配的链表队列不为空,读取所述预设数据结构中所述通信数据。
可选的,所述装置还包括:关闭单元;
所述关闭单元,用于在所述核间通信完成后,关闭所述SysLink框架和所述共享内存空间。
第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权上述第一方面所述的异构多核处理器的核间通信方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面所述的异构多核处理器的核间通信方法。
与现有技术相比,本申请至少具有以下优点:
采用本申请实施例的技术方案,在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加SYS/BIOS工程的依赖包;基于SYS/BIOS工程添加底层开发接口SysLink框架,并引入SysLink框架的依赖包;获取异构多核处理器中第一内核、第二内核的硬件配置信息;基于SysLink框架和硬件配置信息,建立核间通信框架;利用核间通信框架进行第一内核和第二内核的核间通信。可见,在建立SYS/BIOS工程的基础上,通过添加SysLink框架结合一内核、第二内核的硬件配置信息,自动化建立核间通信框架,以此实现异构多核处理器的核间通信;该方式无需人为操作进行额外的相关配置,使得异构多核处理器的核间通信效率更高效。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例中一种应用场景所涉及的系统框架示意图;
图2为本申请实施例提供的一种异构多核处理器的核间通信的方法的流程示意图;
图3为本申请实施例提供的一种异构多核处理器中ARM核和DSP核的核间通信具体实施方式的示意图;
图4为本申请实施例提供的一种异构多核处理器的核间通信的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现阶段,在异构多核处理器中,通过DSPLINK提供的一套通用的应用程序编程接口(Application Programming Interface,API)从应用层抽象出两个内核之间的物理连接特性进行核间通信。但是,经过研究发现,异构多核处理器中两个内核的结构不同,上述方式实现核间通信需要人为操作进行额外的相关配置,整个操作过程较为复杂繁琐,导致异构多核处理器的核间通信效率不够高效。
为了解决这一问题,在本申请实施例中,在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加SYS/BIOS工程的依赖包;基于SYS/BIOS工程添加底层开发接口SysLink框架,并引入SysLink框架的依赖包;获取异构多核处理器中第一内核、第二内核的硬件配置信息;基于SysLink框架和硬件配置信息,建立核间通信框架;利用核间通信框架进行第一内核和第二内核的核间通信。可见,在建立SYS/BIOS工程的基础上,通过添加SysLink框架结合一内核、第二内核的硬件配置信息,自动化建立核间通信框架,以此实现异构多核处理器的核间通信;该方式无需人为操作进行额外的相关配置,使得异构多核处理器的核间通信效率更高效。
举例来说,本申请实施例的场景之一,可以是应用到如图1所示的场景中。该场景包括异构多核处理器100,该异构多核处理器100例如可以为OMAPL138,OMAPL138内部包含一块ARM(Advanced RISC Machine)核和一块数字信号处理(Digital Signal Processing,DSP)核,其底层结构中,ARM核和DSP核都会外接高速闪存芯片作为运行时的内存,其连接是通过地址总线和数据总线的方式实现的。总线可以分为几个端口,其中,部分端口是DSP核私有的端口,部分端口是ARM核私有的,剩下的端口为两个核所共享的,这些共享端口指向高速闪存中的共享内存空间;因此,可以使用这部分共享内存空间来实现两个内核之间的数据传输,在进行实际双核通信时,DSP核直接将数据写入到此部分共享内存当中,ARM核便可以直接从共享内存中读取,反过来也可同理实现。
首先,在上述应用场景中,虽然将本申请实施例提供的实施方式的动作描述由异构多核处理器100执行;但是,本申请实施例在执行主体方面不受限制,只要执行了本申请实施例提供的实施方式所公开的动作即可。
其次,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中异构多核处理器的核间通信的方法和相关装置的具体实现方式。
示例性方法
参见图2,示出了本申请实施例中一种异构多核处理器的核间通信的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
步骤201:在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加所述SYS/BIOS工程的依赖包。
本申请实施例中,为了实现异构多核处理器的核间通信,首先需要在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加SYS/BIOS工程的依赖包。其中,SYS/BIOS是一种广泛用于各种DSP和微控制器(Microcontroller Unit,MCU)的实时操作系统内核,为嵌入式应用提供广泛的系统服务,包括抢占式多任务、内存管理和实时分析等。
步骤202:基于所述SYS/BIOS工程添加底层开发接口SysLink框架,并引入所述SysLink框架的依赖包。
由于在异构多核处理器中,通过DSPLINK提供的一套通用的API从应用层抽象出两个内核之间的物理连接特性进行核间通信,异构多核处理器中两个内核的结构不同,该方式实现核间通信需要人为操作进行额外的相关配置,整个操作过程较为复杂繁琐,导致异构多核处理器的核间通信效率不够高效。
因此,本申请实施例中,在步骤201建立SYS/BIOS工程的基础上,需要添加底层开发接口SysLink框架,并引入SysLink框架的依赖包。其中,SysLink是一种异构多核间通信提供的底层开发接口,用来简化异构多核处理器中两个内核之间的交互应用的开发。
其中,SysLink框架主要需要使用以下模块:
通知(Notify)模块:对于硬件层面的中断信号,可以使用Notify来进行软件层面的定义,方便软件层面开发,其传输数据量一般小于32比特,硬件层面的一个中断事件可以抽象为多个事件,与此对应有多个函数用于事件中的回调控制。
消息队列(MessageQ)模块:其底层实现为阻塞型队列结构,使用场景为单个消费者多个生产者。
链表(ListMP)模块:其底层实现为双向循环链表结构,相比于一般的双向循环链表,ListMP还支持多个读写者,适合多宿主的场景。
共享内存(ShareRegion)模块:负责管理异构多核处理器中两个内核的共享内存空间。
步骤203:获取所述异构多核处理器中第一内核、第二内核的硬件配置信息。
本申请实施例中,在步骤202基于SYS/BIOS工程添加底层开发接口SysLink框架之后,还需要获取异构多核处理器中第一内核、第二内核的硬件配置信息,以便明确异构多核处理器中第一内核和第二内核。其中,第一内核例如可以是ARM核,第二内核例如可以是DPS核。
步骤204:基于所述SysLink框架和所述硬件配置信息,建立核间通信框架。
本申请实施例,通过步骤202基于SYS/BIOS工程添加的SysLink框架和步骤203获取的异构多核处理器中第一内核、第二内核的硬件配置信息,即可自动化构建核间通信框架,以便后续基于核间通信框架实现异构多核处理器中第一内核和第二内核的核间通信。
在步骤204具体实施时,首先,可以通过基于SYS/BIOS工程添加的SysLink框架和获取的异构多核处理器中第一内核、第二内核的硬件配置信息,在第一内核和第二内核之间建立连接;然后,还需要将第一内核作为主核、第二内核作为从核,由第一内核建立第一内核和或第二内核的共享内存空间,即,核间通信框架所需的共享内存空间,并由第一内核分享至第二内核;最后,第一内核还需要建立核间通信框架所需的两个链表队列,并分别分配给第一内核和第二内核。因此,在本申请实施例一种可选的实施方式中,所述步骤204例如可以包括如下步骤A-步骤C:
步骤A:基所述SysLink框架和所述硬件配置信息,连接所述第一内核和所述第二内核。
具体实施时,首先,第一内核和第二内核分别进行SysLink框架的初始化相关操作,完成后基于硬件配置信息,第一内核调用MultiProc_getId()获取第二内核的核编号,第二内核调用MultiProc_getId()获取第一内核的核编号;然后,第一内核端调用Ipc_Control()向第二内核发起连接,进而由第二内核调用Ipc_start()启动IPC模块,最后,第二内核调用Ipc_attach_ID()完成与第一内核连接。
步骤B:通过所述第一内核建立所述核间通信框架所需的共享内存空间并分享至所述第二内核。
其中,第一内核作为主核负责共享内存空间的初始化操作,则需要通过SharedRegion_getHeap()函数获取指向共享内存空间的数据,以便基于该指针数据通过Memory_calloc()函数建立共享内存空间;第一内核还需要获取共享内存空间的地址数据,通过Notify模块将地址数据发送给第二内核,则第二内核通过地址数据可以确定共享内存空间。因此,在本申请实施例一种可选的实施方式中,所述步骤B例如可以包括如下步骤B1-步骤B2:
步骤B1:通过所述第一内核基于所述共享内存空间的指针数据,建立所述共享内存空间。
步骤B2:通过所述第一内核将所述共享内存空间的地址数据发送至所述第二内核。
步骤C:通过所述第一内核建立所述核间通信框架所需的两个链表队列分别分配给所述第一内核和所述第二内核。
步骤205:利用所述核间通信框架进行所述第一内核和所述第二内核的核间通信。
本申请实施例中,在步骤204建立核间通信框架之后,通过该核间通信框架即可实现异构多核处理器中第一内核和第二内核的核间通信。
在步骤205具体实施时,首先,第一内核可以检测第一内核分配的链表队列是否为空,若是,表示第一内核分配的链表队列已无待传输给第二内核的通信数据,则第一内核可以将通信数据写入预设数据结构中,若否,需要等待第二内核取出第一内核分配的链表队列中的无通信数据;然后,通过第一内核和第二内核的共享内存空间将预设数据结构放置在第一内核分配的链表队列;最后,第二内核检测到第一内核分配的链表队列不为空,表示第一内核分配的链表队列具有通信数据,需要读取其预设数据结构中通信数据。因此,在本申请实施例一种可选的实施方式中,所述步骤205例如可以包括如下步骤D-步骤F:
步骤D:若所述第一内核检测所述第一内核分配的链表队列为空,将通信数据写入预设数据结构中。
其中,预设数据结构例如可以为Node数据结构。
步骤E:通过所述共享内存空间将所述预设数据结构放置在所述第一内核分配的链表队列。
步骤F:若所述第二内核检测所述第一内核分配的链表队列不为空,读取所述预设数据结构中所述通信数据。
作为一种示例,异构多核处理器中第一内核为ARM核、第二内核为DSP核,如图3所示的一种异构多核处理器中ARM核和DSP核的核间通信具体实施方式的示意图。即,ARM核检测ARM核分配的链表队列为空,将通信数据写入Node数据结构中;通过共享内存空间将Node数据结构放置在ARM核分配的链表队列;若DSP核检测ARM核分配的链表队列不为空,读取Node数据结构中通信数据。
此外,本申请实施例中,在步骤205完成异构多核处理器中第一内核和第二内核的核间通信之后,还需要关闭基于SYS/BIOS工程添加的SysLink框架,并关闭第一内核和第二内核的共享内存空间。因此,在本申请实施例一种可选的实施方式中,所述步骤205之后例如还可以包括步骤G:在所述核间通信完成后,关闭所述SysLink框架和所述共享内存空间。
通过本实施例提供的各种实施方式,在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加SYS/BIOS工程的依赖包;基于SYS/BIOS工程添加底层开发接口SysLink框架,并引入SysLink框架的依赖包;获取异构多核处理器中第一内核、第二内核的硬件配置信息;基于SysLink框架和硬件配置信息,建立核间通信框架;利用核间通信框架进行第一内核和第二内核的核间通信。可见,在建立SYS/BIOS工程的基础上,通过添加SysLink框架结合一内核、第二内核的硬件配置信息,自动化建立核间通信框架,以此实现异构多核处理器的核间通信;该方式无需人为操作进行额外的相关配置,使得异构多核处理器的核间通信效率更高效。
示例性装置
参见图4,示出了本申请实施例中一种异构多核处理器的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:第一建立单元401、添加单元402、获取单元403、第二建立单元404和通信单元405;
所述第一建立单元401,用于在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加所述SYS/BIOS工程的依赖包;
所述添加单元402,用于基于所述SYS/BIOS工程添加底层开发接口SysLink框架,并引入所述SysLink框架的依赖包;
所述获取单元403,用于获取所述异构多核处理器中第一内核、第二内核的硬件配置信息;
所述第二建立单元404,用于基于所述SysLink框架和所述硬件配置信息,建立核间通信框架;
所述通信单元405,用于利用所述核间通信框架进行所述第一内核和所述第二内核的核间通信。
在本申请实施例一种可选的实施方式中,所述第二建立单元404包括:连接子单元、第一建立子单元和第二建立子单元;
所述连接子单元,用于基所述SysLink框架和所述硬件配置信息,连接所述第一内核和所述第二内核;
所述第一建立子单元,用于通过所述第一内核建立所述核间通信框架所需的共享内存空间并分享至所述第二内核;
所述第二建立子单元,用于通过所述第一内核建立所述核间通信框架所需的两个链表队列分别分配给所述第一内核和所述第二内核。
在本申请实施例一种可选的实施方式中,所述第一建立子单元包括:建立模块和发送模块;
所述建立模块,用于通过所述第一内核基于所述共享内存空间的指针数据,建立所述共享内存空间;
所述发送模块,用于通过所述第一内核将所述共享内存空间的地址数据发送至所述第二内核。
在本申请实施例一种可选的实施方式中,所述通信单元405包括:写入子单元、放置子单元和读取子单元;
所述写入子单元,用于若所述第一内核检测所述第一内核分配的链表队列为空,将通信数据写入预设数据结构中;
所述放置子单元,用于通过所述共享内存空间将所述预设数据结构放置在所述第一内核分配的链表队列;
所述读取子单元,用于若所述第二内核检测所述第一内核分配的链表队列不为空,读取所述预设数据结构中所述通信数据。
在本申请实施例一种可选的实施方式中,所述装置还包括:关闭单元;
所述关闭单元,用于在所述核间通信完成后,关闭所述SysLink框架和所述共享内存空间。
通过本实施例提供的各种实施方式,在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加SYS/BIOS工程的依赖包;基于SYS/BIOS工程添加底层开发接口SysLink框架,并引入SysLink框架的依赖包;获取异构多核处理器中第一内核、第二内核的硬件配置信息;基于SysLink框架和硬件配置信息,建立核间通信框架;利用核间通信框架进行第一内核和第二内核的核间通信。可见,在建立SYS/BIOS工程的基础上,通过添加SysLink框架结合一内核、第二内核的硬件配置信息,自动化建立核间通信框架,以此实现异构多核处理器的核间通信;该方式无需人为操作进行额外的相关配置,使得异构多核处理器的核间通信效率更高效。
此外,本申请实施例还提供了一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述方法实施例所述的异构多核处理器的核间通信方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述方法实施例所述的异构多核处理器的核间通信方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。
Claims (10)
1.一种异构多核处理器的核间通信方法,其特征在于,包括:
在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加所述SYS/BIOS工程的依赖包;
基于所述SYS/BIOS工程添加底层开发接口SysLink框架,并引入所述SysLink框架的依赖包;
获取所述异构多核处理器中第一内核、第二内核的硬件配置信息;
基于所述SysLink框架和所述硬件配置信息,建立核间通信框架;
利用所述核间通信框架进行所述第一内核和所述第二内核的核间通信。
2.根据权利要求1所述的方法,其特征在于,所述基于所述SysLink框架和所述硬件配置信息,建立核间通信框架,包括:
基所述SysLink框架和所述硬件配置信息,连接所述第一内核和所述第二内核;
通过所述第一内核建立所述核间通信框架所需的共享内存空间并分享至所述第二内核;
通过所述第一内核建立所述核间通信框架所需的两个链表队列分别分配给所述第一内核和所述第二内核。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第一内核建立所述核间通信框架所需的共享内存空间并分享至所述第二内核,包括:
通过所述第一内核基于所述共享内存空间的指针数据,建立所述共享内存空间;
通过所述第一内核将所述共享内存空间的地址数据发送至所述第二内核。
4.根据权利要求2所述的方法,其特征在于,所述利用所述核间通信框架进行所述第一内核和所述第二内核的核间通信,包括:
若所述第一内核检测所述第一内核分配的链表队列为空,将通信数据写入预设数据结构中;
通过所述共享内存空间将所述预设数据结构放置在所述第一内核分配的链表队列;
若所述第二内核检测所述第一内核分配的链表队列不为空,读取所述预设数据结构中所述通信数据。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述核间通信完成后,关闭所述SysLink框架和所述共享内存空间。
6.一种异构多核处理器的核间通信装置,其特征在于,包括:第一建立单元、添加单元、获取单元、第二建立单元和通信单元;
所述第一建立单元,用于在异构多核处理器中建立实时操作系统内核SYS/BIOS工程,并添加所述SYS/BIOS工程的依赖包;
所述添加单元,用于基于所述SYS/BIOS工程添加底层开发接口SysLink框架,并引入所述SysLink框架的依赖包;
所述获取单元,用于获取所述异构多核处理器中第一内核、第二内核的硬件配置信息;
所述第二建立单元,用于基于所述SysLink框架和所述硬件配置信息,建立核间通信框架;
所述通信单元,用于利用所述核间通信框架进行所述第一内核和所述第二内核的核间通信。
7.根据权利要求6所述的装置,其特征在于,所述第二建立单元包括:连接子单元、第一建立子单元和第二建立子单元;
所述连接子单元,用于基所述SysLink框架和所述硬件配置信息,连接所述第一内核和所述第二内核;
所述第一建立子单元,用于通过所述第一内核建立所述核间通信框架所需的共享内存空间并分享至所述第二内核;
所述第二建立子单元,用于通过所述第一内核建立所述核间通信框架所需的两个链表队列分别分配给所述第一内核和所述第二内核。
8.根据权利要求7所述的装置,其特征在于,所述第一建立子单元包括:建立模块和发送模块;
所述建立模块,用于通过所述第一内核基于所述共享内存空间的指针数据,建立所述共享内存空间;
所述发送模块,用于通过所述第一内核将所述共享内存空间的地址数据发送至所述第二内核。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-7任一项所述的异构多核处理器的核间通信方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-7任一项所述的异构多核处理器的核间通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210445874.2A CN114816796A (zh) | 2022-04-26 | 2022-04-26 | 一种异构多核处理器的核间通信方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210445874.2A CN114816796A (zh) | 2022-04-26 | 2022-04-26 | 一种异构多核处理器的核间通信方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816796A true CN114816796A (zh) | 2022-07-29 |
Family
ID=82506985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210445874.2A Pending CN114816796A (zh) | 2022-04-26 | 2022-04-26 | 一种异构多核处理器的核间通信方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816796A (zh) |
-
2022
- 2022-04-26 CN CN202210445874.2A patent/CN114816796A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108537543B (zh) | 区块链数据的并行处理方法、装置、设备和存储介质 | |
CN108628684B (zh) | 一种基于dpdk的报文处理方法及计算机设备 | |
US8321876B2 (en) | System and method of dynamically loading and executing module devices using inter-core-communication channel in multicore system environment | |
US8819345B2 (en) | Method, apparatus, and computer program product for inter-core communication in multi-core processors | |
WO2017070900A1 (zh) | 多核数字信号处理系统中处理任务的方法和装置 | |
EP1880289B1 (en) | Transparent support for operating system services | |
US20040015970A1 (en) | Method and system for data flow control of execution nodes of an adaptive computing engine (ACE) | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN102541661B (zh) | 实现等待地址同步接口的方法和设备 | |
US20240118928A1 (en) | Resource allocation method and apparatus, readable medium, and electronic device | |
US8943516B2 (en) | Mechanism for optimized intra-die inter-nodelet messaging communication | |
US7962926B2 (en) | Method, system, and program storage device for generating a retry message when a thread in a real-time application is unavailable to process a request to utilize the real-time application | |
JP6998991B2 (ja) | 情報処理用方法及び装置 | |
CN114564435A (zh) | 异构多核芯片的核间通信方法、装置及介质 | |
CN112835632B (zh) | 一种端能力的调用方法、设备和计算机存储介质 | |
CN115237589A (zh) | 一种基于sr-iov的虚拟化方法、装置和设备 | |
US9507637B1 (en) | Computer platform where tasks can optionally share per task resources | |
CN112506676B (zh) | 进程间的数据传输方法、计算机设备和存储介质 | |
CN105677481A (zh) | 一种数据处理方法、系统及电子设备 | |
US20220269622A1 (en) | Data processing methods, apparatuses, electronic devices and computer-readable storage media | |
CN116302271A (zh) | 一种页面展示方法、装置及电子设备 | |
CN114816796A (zh) | 一种异构多核处理器的核间通信方法和相关装置 | |
CN112764729B (zh) | 应用软件开发方法、装置、计算机设备及可读存储介质 | |
CN114791854A (zh) | 用户态虚拟机任务的调度方法、装置、设备及存储介质 | |
CN116804915B (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 |