一种同构系统核间同步与通信的方法技术方案

技术编号:19821243 阅读:30 留言:0更新日期:2018-12-19 14:30
本发明专利技术涉及一种同构系统核间同步与通信的方法,其中,包括核间同步方法以及核间通信方法:核间同步方法包括:核间同步模块注册、核间同步使能、任务或数据同步;核间通信方法包括:发送端通信方法包括:步骤A1、初始化块,并从共享内存中分配核间通信句柄空间;步骤A2、通信模式选择;步骤A3、通信数据写入完毕后执行中断控制;步骤A4、将核间中断寄存器上对应的位置为1,从而触发核间中断;接收端通信方法包括:B1初始化,获取数据发送核在共享内存区分配的核间通信句柄;B2发送核一旦触发核间中断,接受核立即进入核间中断处理服务进行通信数据的读取,数据读取的地址由核间通信句柄中的通信数据存储地址指定。

【技术实现步骤摘要】
一种同构系统核间同步与通信的方法
本专利技术涉及一种通信方法,特别涉及一种同构系统核间同步与通信的方法。
技术介绍
目前,多核处理器因其高性能、低功耗等诸多优势已在嵌入式处理器领域占据主导地位。同构多核处理器作为多核处理器的重要分支,具有低延迟高吞吐量的特点。在实际应用中,同构系统中的各个处理器核心通常运行相同的操作系统镜像,核间任务管理、共享内存管理与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;根据当前所需进行同步的核号,向核间同步等待状态变量中对应的等待位执行置1操作,等待位置为1,表示对应的核将参与核间同步;进行任务或数据同步,对于参与核间同步的各个核,若当前需同步的任务或数据已准备完毕,则将核间同步寄存器变量对应的位置为1,否则保持为0;根据核间同步等待状态变量中各个位的状态,循环查询注核间同步寄存器变量的当前状态,若核间同步寄存器变量的当前状态与核间同步等待状态变量所设定的状态相同,则核间同步完成,将核间同步寄存器变量各个标记位复位为0;否则继续执行进行任务或数据同步;核间通信方法包括:发送端通信方法与接收端通信方法;发送端通信方法包括:步骤A1、初始化块,并从共享内存中分配核间通信句柄空间;步骤A2、通信模式选择,判断待发送的数据量大小是否大于64Byte;若待传输的数据量大于64Byte,则使能块数据通信模式:根据当前发送数据量大小从空闲共享SRAM链表中选择合适的空闲的共享SRAM,并对其进行加锁操作,加锁后仅数据发送核具有共享SRAM的写权限,其余核当前只有读权限,然后向共享SRAM中写入通信数据;若待传输的数据量小于等于64Byte,则使能快速数据通信模式:根据通信发送端与接收端的两个核号从通道寄存器组链表中选择相应的通道寄存器组,并对相应的通道寄存器组其进行加锁操作,然后向通道寄存器中写入通信数据;步骤A3、通信数据写入完毕后执行中断控制:首先根据数据发送以及接受核核号,初始化对应的核间中断寄存器,然后根据通信模式的不同,向核间通信句柄中写入通信数据存储地址;步骤A4、将核间中断寄存器上对应的位置为1,从而触发核间中断;接收端通信方法包括:B1首先初始化,获取数据发送核在共享内存区分配的核间通信句柄;B2发送核一旦触发核间中断,接受核立即进入核间中断处理服务进行通信数据的读取,数据读取的地址由核间通信句柄中的通信数据存储地址指定。...

【技术特征摘要】
1.一种同构系统核间同步与通信的方法,其特征在于,包括核间同步方法以及核间通信方法:核间同步方法包括:进行核间同步寄存器变量到物理硬件地址的映射,然后初始化核间同步寄存器变量同步位为0;根据当前所需进行同步的核号,向核间同步等待状态变量中对应的等待位执行置1操作,等待位置为1,表示对应的核将参与核间同步;进行任务或数据同步,对于参与核间同步的各个核,若当前需同步的任务或数据已准备完毕,则将核间同步寄存器变量对应的位置为1,否则保持为0;根据核间同步等待状态变量中各个位的状态,循环查询注核间同步寄存器变量的当前状态,若核间同步寄存器变量的当前状态与核间同步等待状态变量所设定的状态相同,则核间同步完成,将核间同步寄存器变量各个标记位复位为0;否则继续执行进行任务或数据同步;核间通信方法包括:发送端通信方法与接收端通信方法;发送端通信方法包括:步骤A1、初始化块,并从共享内存中分配核间通信句柄空间;步骤A2、通信模式选择,判断待发送的数据量大小是否大于64Byte;若待传输的数据量大于64Byte,则使能块数据通信模式:根据当前发送数据量大小从空闲共享SRAM链表中选择合适的空闲的共享SRAM,并对其进行加锁操作,加锁后仅数据发送核具有共享SRAM的写权限,其余核当前只有读权限,然后向共享SRAM中写入通信数据;若待传输的数据量小于等于64Byte,则使能快速数据通信模式:根据通信发送端与接收端的两个核号从通道寄存器组链表中选择相应的通道寄存器组,并对相应的通道寄存器组其进行加锁操作,然后向通道寄存器中写入通信数据;步骤A3、通信数据写入完毕后执行中断控制:首先根据数据发送以及接受核核号,初始化对应的核间中断寄存器,然后根据通信模式的不同,向核间通信句柄中写入通信数据存储地址;步骤A4、将核间中断寄存器上对应的位置为1,从而触发核间中断;接收端通信方法包括:B1首先初始化,获取数据发送核在共享内存区分配的核间通信句柄;B2发送核一旦触发...

【专利技术属性】
技术研发人员:周楠冯帆王旭陈树峰覃依漪
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1