CN109032818B - 一种同构系统核间同步与通信的方法 - Google Patents
一种同构系统核间同步与通信的方法 Download PDFInfo
- Publication number
- CN109032818B CN109032818B CN201810839256.XA CN201810839256A CN109032818B CN 109032818 B CN109032818 B CN 109032818B CN 201810839256 A CN201810839256 A CN 201810839256A CN 109032818 B CN109032818 B CN 109032818B
- Authority
- CN
- China
- Prior art keywords
- core
- inter
- communication
- synchronization
- data
- 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
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Abstract
本发明涉及一种同构系统核间同步与通信的方法,其中,包括核间同步方法以及核间通信方法:核间同步方法包括:核间同步模块注册、核间同步使能、任务或数据同步;核间通信方法包括:发送端通信方法包括:步骤A1、初始化块,并从共享内存中分配核间通信句柄空间;步骤A2、通信模式选择;步骤A3、通信数据写入完毕后执行中断控制;步骤A4、将核间中断寄存器上对应的位置为1,从而触发核间中断;接收端通信方法包括:B1初始化,获取数据发送核在共享内存区分配的核间通信句柄;B2发送核一旦触发核间中断,接受核立即进入核间中断处理服务进行通信数据的读取,数据读取的地址由核间通信句柄中的通信数据存储地址指定。
Description
技术领域
本发明涉及一种通信方法,特别涉及一种同构系统核间同步与通信的方法。
背景技术
目前,多核处理器因其高性能、低功耗等诸多优势已在嵌入式处理器领域占据主导地位。同构多核处理器作为多核处理器的重要分支,具有低延迟高吞吐量的特点。在实际应用中,同构系统中的各个处理器核心通常运行相同的操作系统镜像,核间任务管理、共享内存管理与Cache一致性机制已较为成熟。为进一步降低同构系统核间通信延迟、提高核间数据吞吐量,关键在于提供一种高效的核间同步与通信方法。
当前,主要使用核间信号量实现多核之间的同步,使用核间消息邮箱、核间消息队列等方法实现多核之间的通信。使用核间信号量可以实现多核系统中不同核之间操作共享缓冲区时保证正确的执行顺序而不进入阻塞状态。使用核间消息邮箱进行核间通信,发起通信的各个核只需要将一个消息指针放入邮箱中即可,各个核均可以从核间消息邮箱中获取消息指针,实现核间数据通信。核间消息队列在实质上则可以看做邮箱队列,处理器核通过使用消息队列获取消息指针,从而接收数据。
虽然使用核间信号量、核间消息邮箱与消息队列能够实现多核之间的同步与通信,但是上述方法都是基于操作系统概念实现的,需要涉及到众多软件层级的函数封装、内存管理、任务管理等技术,其实现过程较为复杂。同时,这些传统技术仅考虑到一般的同步与通信需求,对于多核之间的可靠同步、大数据量常速通信(块数据通信)与小数据量快速通信(快速数据通信)则不能提供灵活、充分的支持。
发明内容
本发明的目的在于提供一种同构系统核间同步与通信的方法,用于解决上述现有技术的问题。
本发明一种同构系统核间同步与通信的方法,其中,包括核间同步方法以及核间通信方法:核间同步方法包括:进行核间同步寄存器变量到物理硬件地址的映射,然后初始化核间同步寄存器变量同步位为0;根据当前所需进行同步的核号,向核间同步等待状态变量中对应的等待位执行置1操作,等待位置为1,表示对应的核将参与核间同步;进行任务或数据同步,对于参与核间同步的各个核,若当前需同步的任务或数据已准备完毕,则将核间同步寄存器变量对应的位置为1,否则保持为0;根据核间同步等待状态变量中各个位的状态,循环查询注核间同步寄存器变量的当前状态,若核间同步寄存器变量的当前状态与核间同步等待状态变量所设定的状态相同,则核间同步完成,将核间同步寄存器变量各个标记位复位为0;否则继续执行进行任务或数据同步;核间通信方法包括:发送端通信方法与接收端通信方法;发送端通信方法包括:步骤A1、初始化块,并从共享内存中分配核间通信句柄空间;步骤A2、通信模式选择,判断待发送的数据量大小是否大于64Byte;若待传输的数据量大于64Byte,则使能块数据通信模式:根据当前发送数据量大小从空闲共享SRAM链表中选择合适的空闲的共享SRAM,并对其进行加锁操作,加锁后仅数据发送核具有共享SRAM的写权限,其余核当前只有读权限,然后向共享SRAM中写入通信数据;若待传输的数据量小于等于64Byte,则使能快速数据通信模式:根据通信发送端与接收端的两个核号从通道寄存器组链表中选择相应的通道寄存器组,并对相应的通道寄存器组其进行加锁操作,然后向通道寄存器中写入通信数据;步骤A3、通信数据写入完毕后执行中断控制:首先根据数据发送以及接受核核号,初始化对应的核间中断寄存器,然后根据通信模式的不同,向核间通信句柄中写入通信数据存储地址;步骤A4、将核间中断寄存器上对应的位置为1,从而触发核间中断;接收端通信方法包括:B1首先初始化,获取数据发送核在共享内存区分配的核间通信句柄;B2发送核一旦触发核间中断,接受核立即进入核间中断处理服务进行通信数据的读取,数据读取的地址由核间通信句柄中的通信数据存储地址指定。
根据本发明的同构系统核间同步与通信的方法的一实施例,其中,还包括:创建核间同步寄存器结构体,包含4个同步标记位,用于标记各个同步核的同步状态。
根据本发明的同构系统核间同步与通信的方法的一实施例,其中,核间同步方法中,还包括:查询核间同步寄存器变量的标记位是否复位为0,在所有标记位均复位为0后,执行释放当前核间同步寄存器变量的空间。
根据本发明的同构系统核间同步与通信的方法的一实施例,其中,同构系统核间方法中,发送端创建核间通信句柄,根据核间通信数据量的大小选择通信模式,将通信数据写入相应的通信存储空间中,触发核间中断等待数据接收核继续处理;接收端主要负责初始化中断控制驱动,挂载相应的中断处理服务,获取核间通信句柄,待发送核触发核间中断后,立即执行核间中断处理服务,完成通信数据的读取。
根据本发明的同构系统核间同步与通信的方法的一实施例,其中,初始化块数据通信驱动、快速数据通信驱动及中断控制驱动,然后从共享内存中分配核间通信句柄空间,块数据通信驱动与快速数据通信驱动由原子锁提供互斥支持;中断控制驱动提供由中断事件挂载、中断控制器使能、中断处理服务挂载、中断向量表填充等功能。
根据本发明的同构系统核间同步与通信的方法的一实施例,其中,还包括:步骤A5、注销发送端核间通信三类驱动。
根据本发明的同构系统核间同步与通信的方法的一实施例,其中,核间通信句柄结构包括:当前通信发送端、接收端核号、核间通信模式标识、空闲共享SRAM链表、通道寄存器组链表以及通信数据存储地址。
根据本发明的同构系统核间同步与通信的方法的一实施例,其中,B1初始化还包括:初始化中断控制驱动。
根据本发明的同构系统核间同步与通信的方法的一实施例,其中,还包括:步骤B3,注销中断控制驱动,释放共享内存区中核间通信句柄的空间。
本发明提出一种同构系统核间同步与通信的方法,利用基于同构系统下实现的核间同步模块与核间通信模块,为上层应用提供可靠的核间同步方法与依据数据量大小选择不同通信方式的灵活的核间通信方法。
附图说明
图1所示为本发明同构系统核间同步与通信系统的功能框图;
图2所示为同构系统核间同步方法的流程图;
图3所示为核间通信方法的发送端的通信方法流程图;
图4所示为核间通信方法的接收端的通信方法流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1所示为本发明同构系统核间同步与通信系统的功能框图,如
图1所示,同构系统核间同步与通信的方法包括:
本发明提出了一种同构系统核间同步与通信的方法,同构系统核间同步与通信系统包含核间同步模块与核间通信模块,由下至上可分为硬件层、驱动层、API层、应用层四个层次,主要应用于同构四核DSP系统。
本发明提出了一种同构系统核间同步与通信的方法包括核间同步方法以及核间通信方法。
图2所示为同构系统核间同步方法的流程图,如图2所示,核间同步方法包括下列步骤:
(1)核间同步模块注册。首先进行核间同步寄存器变量到物理硬件地址的映射,然后初始化核间同步寄存器变量4个同步位为0。在本发明中,创建了核间同步寄存器结构体CON_REG,其中包含了4个同步标记位,用于标记各个同步核的同步状态。
(2)核间同步使能。根据当前所需进行同步的核号,向核间同步等待状态变量中对应的等待位执行置1操作。等待位置为1,表示对应的核将参与核间同步。
(3)任务或数据同步。对于参与核间同步的各个核,若当前需同步的任务或数据已准备完毕,则将核间同步寄存器变量对应的位置为1,否则保持为0。
(4)核间同步等待。根据核间同步等待状态变量中各个位的状态,循环查询注核间同步寄存器变量的当前状态。若核间同步寄存器变量的当前状态与核间同步等待状态变量所设定的状态相同,则核间同步完成,将核间同步寄存器变量各个标记位复位为0。否则继续执行第(3)步。
核间同步模块卸载。首先查询核间同步寄存器变量的标记位是否复位为0。只有在所有标记位均复位为0后,才执行释放当前核间同步寄存器变量的空间的操作。
执行后续任务。完成核间同步之后,继续执行其他任务。
核间通信方法包括:
核间通信模块包括发送端与接收端,核间通信方法包括发送端通信方法与接收端通信方法。
发送端主要负责创建核间通信句柄,然后根据核间通信数据量的大小选择合适的通信模式。接着将通信数据写入相应的通信存储空间中。最后触发核间中断等待数据接收核继续处理。
接收端主要负责初始化中断控制驱动,挂载相应的中断处理服务。然后获取核间通信句柄。待发送核触发核间中断后,立即执行核间中断处理服务,最后完成通信数据的读取。
图3所示为核间通信方法的发送端的通信方法流程图,如图3所示,核间通信方法(发送端)包括下列步骤:
步骤A1、核间通信模块注册。首先初始化块数据通信驱动、快速数据通信驱动及中断控制驱动。然后从共享内存中分配核间通信句柄空间。其中,块数据通信驱动与快速数据通信驱动由原子锁提供互斥支持;中断控制驱动则提供了由中断事件挂载、中断控制器使能、中断处理服务挂载、中断向量表填充等功能。
核间通信句柄结构则包含如下内容:
当前通信发送端、接收端核号;
核间通信模式标识;
空闲共享SRAM链表;
通道寄存器组链表;
通信数据存储地址;
步骤A2、通信模式选择,判断待发送的数据量大小是否大于64Byte;
若待传输的数据量大于64Byte,则使能块数据通信模式:根据当前发送数据量大小从空闲共享SRAM链表中选择合适的空闲的共享SRAM,并对其进行加锁操作。加锁后仅数据发送核具有共享SRAM的写权限,其余核当前只有读权限。然后向共享SRAM中写入通信数据;
若待传输的数据量小于等于64Byte,则使能快速数据通信模式:根据通信发送端与接收端的两个核号从通道寄存器组链表中选择相应的通道寄存器组,并对相应的通道寄存器组其进行加锁操作。然后向通道寄存器中写入通信数据;
步骤A3、核间中断使能。通信数据写入完毕后执行中断控制:首先根据数据发送、接受核核号,初始化对应的核间中断寄存器。然后根据通信模式的不同,向核间通信句柄中写入通信数据存储地址。
步骤A4、核间中断触发。将核间中断寄存器上对应的位置为1,从而触发核间中断。
步骤A5、核间通信模块卸载。注销发送端核间通信三类驱动。
图4所示为核间通信方法的接收端的通信方法流程图,如图4所示,核间通信方法(接收端)包括下列步骤:
B1、核间通信模块注册。首先初始化中断控制驱动,然后获取数据发送核在共享内存区分配的核间通信句柄。
B2、核间中断响应。发送核一旦触发核间中断,接受核立即进入核间中断处理服务进行通信数据的读取。其中,数据读取的地址由核间通信句柄中的通信数据存储地址指定。
B3、核间通信模块卸载。注销中断控制驱动,释放共享内存区中核间通信句柄的空间。
本发明通过将同构多核系统的核间同步与核间通信分成两个独立模块进行设计。核间同步模块简化了核间同步执行流程,能够可靠地实现四核之间的同步功能。核间通信模块则实现了大数据量常速传输与小数据量快速传输两个模式。采用两种传输模式的设计使得核间通信过程更加灵活,不仅能够更加充分地利用供通信使用的存储空间,还能根据实际核间通信应用场景,均衡核与核之间数据传输的耗时。基于核间中断寄存器的核间中断控制则能够辅助大数据常速传输与小数据快速传输的通信过程,并且通过核间中断的方式能够有效降低处理器的占用率,显著提高核间通信效率。采用本发明所设计的同构系统核间同步与通信的方法,在同构四核DSP硬件环境下,实现了多核之间的可靠同步功能。针对不同应用场景,能够实现大数据量常速传输与小数据量快速传输,且两种通信模式可以灵活配合。在中断控制的配合下,能够进一步提升所设计的核间通信效率,降低了通信处理过程对处理器核的占有率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (9)
1.一种同构系统核间同步与通信的方法,其特征在于,包括核间同步方法以及核间通信方法:
核间同步方法包括:
进行核间同步寄存器变量到物理硬件地址的映射,然后初始化核间同步寄存器变量同步位为0;
根据当前所需进行同步的核号,向核间同步等待状态变量中对应的等待位执行置1操作,等待位置为1,表示对应的核将参与核间同步;
进行任务或数据同步,对于参与核间同步的各个核,若当前需同步的任务或数据已准备完毕,则将核间同步寄存器变量对应的位置为1,否则保持为0;
根据核间同步等待状态变量中各个位的状态,循环查询核间同步寄存器变量的当前状态,若核间同步寄存器变量的当前状态与核间同步等待状态变量所设定的状态相同,则核间同步完成,将核间同步寄存器变量各个标记位复位为0;否则继续执行进行任务或数据同步;
核间通信方法包括:发送端通信方法与接收端通信方法;
发送端通信方法包括:
步骤A1、初始化块,并从共享内存中分配核间通信句柄空间;
步骤A2、通信模式选择,判断待发送的数据量大小是否大于64Byte;
若待传输的数据量大于64Byte,则使能块数据通信模式:根据当前发送数据量大小从空闲共享SRAM链表中选择合适的空闲的共享SRAM,并对其进行加锁操作,加锁后仅数据发送核具有共享SRAM的写权限,其余核当前只有读权限,然后向共享SRAM中写入通信数据;
若待传输的数据量小于等于64Byte,则使能快速数据通信模式:根据通信发送端与接收端的两个核号从通道寄存器组链表中选择相应的通道寄存器组,并对相应的通道寄存器组进行加锁操作,然后向通道寄存器中写入通信数据;
步骤A3、通信数据写入完毕后执行中断控制:首先根据数据发送以及接受核核号,初始化对应的核间中断寄存器,然后根据通信模式的不同,向核间通信句柄中写入通信数据存储地址;
步骤A4、将核间中断寄存器上对应的位置为1,从而触发核间中断;
接收端通信方法包括:
B1首先初始化,获取数据发送核在共享内存区分配的核间通信句柄;
B2发送核一旦触发核间中断,接受核立即进入核间中断处理服务进行通信数据的读取,数据读取的地址由核间通信句柄中的通信数据存储地址指定。
2.如权利要求1所述的同构系统核间同步与通信的方法,其特征在于,还包括:创建核间同步寄存器结构体,包含4个同步标记位,用于标记各个同步核的同步状态。
3.如权利要求1所述的同构系统核间同步与通信的方法,其特征在于,核间同步方法中,还包括:查询核间同步寄存器变量的标记位是否复位为0,在所有标记位均复位为0后,执行释放当前核间同步寄存器变量的空间。
4.如权利要求1所述的同构系统核间同步与通信的方法,其特征在于,同构系统核间通信方法中,发送端创建核间通信句柄,根据核间通信数据量的大小选择通信模式,将通信数据写入相应的通信存储空间中,触发核间中断等待数据接收核继续处理;接收端主要负责初始化中断控制驱动,挂载相应的中断处理服务,获取核间通信句柄,待发送核触发核间中断后,立即执行核间中断处理服务,完成通信数据的读取。
5.如权利要求1所述的同构系统核间同步与通信的方法,其特征在于,初始化块数据通信驱动、快速数据通信驱动及中断控制驱动,然后从共享内存中分配核间通信句柄空间,块数据通信驱动与快速数据通信驱动由原子锁提供互斥支持;中断控制驱动提供由中断事件挂载、中断控制器使能、中断处理服务挂载、中断向量表填充功能。
6.如权利要求5所述的同构系统核间同步与通信的方法,其特征在于,还包括:步骤A5、注销发送端核间通信三类驱动。
7.如权利要求1所述的同构系统核间同步与通信的方法,其特征在于,核间通信句柄结构包括:当前通信发送端核号、接收端核号、核间通信模式标识、空闲共享SRAM链表、通道寄存器组链表以及通信数据存储地址。
8.如权利要求1所述的同构系统核间同步与通信的方法,其特征在于,B1初始化还包括:初始化中断控制驱动。
9.如权利要求8所述的同构系统核间同步与通信的方法,其特征在于,还包括:步骤B3,注销中断控制驱动,释放共享内存区中核间通信句柄的空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810839256.XA CN109032818B (zh) | 2018-07-27 | 2018-07-27 | 一种同构系统核间同步与通信的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810839256.XA CN109032818B (zh) | 2018-07-27 | 2018-07-27 | 一种同构系统核间同步与通信的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032818A CN109032818A (zh) | 2018-12-18 |
CN109032818B true CN109032818B (zh) | 2021-11-16 |
Family
ID=64646896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810839256.XA Active CN109032818B (zh) | 2018-07-27 | 2018-07-27 | 一种同构系统核间同步与通信的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032818B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241027B (zh) * | 2019-12-25 | 2023-08-15 | 上海亮牛半导体科技有限公司 | 硬件msgbox实现双核SOC核间软件系统高效通信的结构及方法 |
CN116048824B (zh) * | 2023-03-30 | 2023-08-18 | 井芯微电子技术(天津)有限公司 | 一种多核处理器信号量系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7210145B2 (en) * | 2001-10-15 | 2007-04-24 | Edss, Inc. | Technology for integrated computation and communication; TICC |
US8751737B2 (en) * | 2009-06-26 | 2014-06-10 | Alcatel Lucent | Method and apparatus for using a shared ring buffer to provide thread synchronization in a multi-core processor system |
CN101950282B (zh) * | 2010-08-30 | 2012-05-23 | 中国科学院计算技术研究所 | 一种多处理器系统及其同步引擎 |
US8495654B2 (en) * | 2011-11-07 | 2013-07-23 | International Business Machines Corporation | Intranode data communications in a parallel computer |
CN102629221B (zh) * | 2012-02-28 | 2014-11-19 | 华为技术有限公司 | 用于分布式共享存储的任务同步方法、装置及系统 |
US11294815B2 (en) * | 2015-06-10 | 2022-04-05 | Mobileye Vision Technologies Ltd. | Multiple multithreaded processors with shared data cache |
CN105389217B (zh) * | 2015-12-11 | 2018-11-06 | 合肥工业大学 | 一种基于安卓系统的同步执行事务方法 |
CN106980544B (zh) * | 2017-03-31 | 2020-03-03 | 北京奇艺世纪科技有限公司 | 一种线程同步方法及线程同步系统 |
CN107229530A (zh) * | 2017-06-29 | 2017-10-03 | 上海联影医疗科技有限公司 | 进程间的通信方法、存储介质以及计算机设备 |
-
2018
- 2018-07-27 CN CN201810839256.XA patent/CN109032818B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109032818A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8990801B2 (en) | Server switch integration in a virtualized system | |
JP6961686B2 (ja) | トリガ動作を用いたgpuリモート通信 | |
US9244881B2 (en) | Facilitating, at least in part, by circuitry, accessing of at least one controller command interface | |
US9280297B1 (en) | Transactional memory that supports a put with low priority ring command | |
US8131814B1 (en) | Dynamic pinning remote direct memory access | |
US7320041B2 (en) | Controlling flow of data between data processing systems via a memory | |
US9678866B1 (en) | Transactional memory that supports put and get ring commands | |
KR102532173B1 (ko) | 메모리 액세스 기술 및 컴퓨터 시스템 | |
US10802995B2 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
US7181541B1 (en) | Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network | |
US20180219797A1 (en) | Technologies for pooling accelerator over fabric | |
US10452570B1 (en) | Presenting physical devices to virtual computers through bus controllers emulated on PCI express endpoints | |
US9311044B2 (en) | System and method for supporting efficient buffer usage with a single external memory interface | |
US20210286628A1 (en) | Operating System With A Single Kernel Stack Per Processor | |
US8594113B2 (en) | Transmit-side scaler and method for processing outgoing information packets using thread-based queues | |
CN109032818B (zh) | 一种同构系统核间同步与通信的方法 | |
US20100223419A1 (en) | Copy circumvention in a virtual network environment | |
CN108664335B (zh) | 通过代理进行队列通信的方法与装置 | |
US9342313B2 (en) | Transactional memory that supports a get from one of a set of rings command | |
US10802828B1 (en) | Instruction memory | |
WO2020056620A1 (en) | Hybrid virtual gpu co-scheduling | |
US10565004B2 (en) | Interrupt and message generation independent of status register content | |
US20090271802A1 (en) | Application and verb resource management | |
US9104637B2 (en) | System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface | |
CN108664334B (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 |