System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于共享内存的核间通信方法、装置、存储介质及终端制造方法及图纸_技高网

基于共享内存的核间通信方法、装置、存储介质及终端制造方法及图纸

技术编号:40088529 阅读:3 留言:0更新日期:2024-01-23 15:50
本申请提供基于共享内存的核间通信方法、装置、终端及介质。通过使用循环队列、读写信号量以及互斥锁的方法对共享内存进行管理,以适配于实时操作系统。同时将信号量个数与资源量个数进行绑定,使得可以从读写位置索引对对应位置直接进行读写操作,以避免读写过程中遍历所有的内存块,从而占用大量CPU内存的问题。针对线程阻塞设置超时时间,以避免频繁报错降低通信效率,本发明专利技术还针对不同的内存大小及相应数据块的个数设置相应的通信方式,以在不同内存大小下均可以实现全双工通信,在通信过程中,还可同时对多个数据块进行读写操作,以避免频发中断而影响CPU的处理效率。

【技术实现步骤摘要】

本申请涉及通信领域,特别是涉及一种基于共享内存的核间通信方法、装置、存储介质及终端


技术介绍

1、在多核处理器中,不同核心之间需要进行通信和协调,以实现任务的划分和协同工作。核间通信涉及到数据传输、同步机制、共享资源等方面的设计和实现,以确保多个核心之间的协同工作和数据一致性。同时,有效提升优化多核处理器之间的通信机制可以有效提高多核处理器的性能、可扩展性核效率。

2、采用核间中断的方法进行核间通信是一种常见的多核通信技术。其具体过程包括中断触发、中断处理、数据传输、中断响应以及中断返回。核间中断技术中常采用的方案包括:通过信号量实现基于固定内存块的通信系统;在不存在固定的共享内存区域的情况下,使用带有消息指针的消息队列的方法实现动态内存数据的通信;使用包括标识号、信号表、占用状态、事件、读写状态记录区、状态监测区、复位控制器等等大量辅助操作进行共享内存的管理。虽然上述方法对现有技术具有一定的提升,但仍存在不足之处。

3、具体地,使用核间通断时,多核之间需要相互等待,且管理过程复杂不适用于实时操作系统。在数据传输的过程中,每次的读写操作均需要遍历所有的内存块,从而导致所占用的cpu(central processing unit,中央处理器)资源较多。此外,现有技术中没有设置线程阻塞的操作,从而导致当内存资源不够时系统不会自动等待资源的释放,而是直接操作给用户进行处理,从而提升了数据传输过程中对人工的依赖程度。同时,现有技术无法实现全双工的通信,从而导致通信效率低下、延迟增加、容量受限且不适用于并行处理。最后,现有技术中并没有针对不同的场景在管理进行不同的处理,例如在共享内存区域较小的情况下,未能对管理方法进行适当的优化。


技术实现思路

1、鉴于以上所述现有技术的缺点,本申请的目的在于提供,用于解决现有技术不适用于实时操作系统、传输信息读写过程中占用核心资源较多,没有线程阻塞操作,无法实现全双工通信且无法在内存较小的情况下对管理方法进行优化的问题。

2、为实现上述目的及其他相关目的,本申请的第一方面提供一种基于共享内存的核间通信方法,基于第一核心处理器和第二核心处理器进行读写操作,其中,所述第一核心处理器和第二核心处理器同时作为接收者和发送者,当所述第一核心处理器为接收者,第二核心处理器为发送者时,所述方法包括: 将共享内存区域划分为一或多块子内存区域;每块子内存区域中存储有循环队列;所述循环队列中排布有一或多个数据块; 对所述多块子内存区域中的任意两个子内存区域进行读写配合操作,其包括:第一核心处理器基于第一子内存区域所对应的第一预设信号量及预设写入数量,执行写入操作以触发中断请求,更新写位置索引并发送至第二核心处理器;所述第二核心处理器响应于所述中断请求,基于第二子内存区域所对应的第二预设资源数量及预设读取数量,执行读取操作,更新读位置索引并返回至所述第一核心处理器。

3、于本申请的第一方面的一些实施例中,所述第一核心处理器执行写入操作的过程包括: 基于所述第一子内存区域的数据块个数,所述第一核心处理器将写信号量初始化,并获取互斥锁;提取所述第一子内存区域所对应的第一预设资源数量及预设写入数量中的较小值作为写入数据的个数,所述第一核心处理器基于所述写入数据的个数更新所述写信号量;基于更新后的所述写信号量,执行写入操作,并在写入操作完成后释放互斥锁;所述第一核心处理器生成第一消息数据,更新所述第一消息数据中包含的第一子内存区域的写位置索引,并将所述写位置索引同步至本地内存,其中,所述第一消息数据的低位表示所述第一子内存区域的写位置索引,所述第一消息数据的高位表示所述第二子内存区域的读位置索引;所述第一核心处理器触发中断请求,将所述第一消息数据发送至所述第二核心处理器;所述第二核心处理器响应于中断请求,基于所述写位置索引,释放预设数量的读信号量,并将所述第一消息数据中所包含的第一子内存区域的写位置索引保存至本地内存。

4、于本申请的第一方面的一些实施例中,所述第二核心处理器响应于中断请求,执行读取操作的过程包括: 基于所述第二子内存区域的数据块个数,第二核心处理器将读信号量初始化;提取所述第二子内存区域所对应的第二预设资源数量及预设读取数量中的较小值作为读取数据的个数,所述第二核心处理器基于所述读取数据的个数更新所述读信号量;基于更新后的所述读信号量,执行读取操作; 所述第二核心处理器生成第二消息数据,更新所述第二消息数据中包含的所述第一子内存区域的读位置索引,并将所述读位置索引更新至所述本地内存其中,所述第二消息数据的低为表示所述第二子内存区域的写位置索引,所述第二消息数据的高位表示所述第一子内存区域的读位置索引;所述第二核心处理器触发中断请求,将所述第二消息数据发送至所述第一核心处理器;所述第一核心处理器响应于中断请求,基于读位置索引,释放预设数量的写信号量,并将所述第二消息数据中包含的所述第一子内存区域的读位置索引保存至本地内存。

5、于本申请的第一方面的一些实施例中,若所述读写操作中,所述第一子内存区域的循环队列中排布有单个数据块时,所述方法的读写操作包括如下过程:基于所述第一子内存区域的数据块个数,所述第一核心处理器将写信号量初始化,并获取互斥锁;所述第一核心处理器在执行写入操作后,对写入次数进行更新,并将所述写入次数同步至本地内存;所述第一核心处理器触发中断请求,并将所述写入次数发送至第二核心处理器;第二核心处理器响应于所述中断请求,判断本地内存中所保存的写入次数与所述第一核心处理器发送的写入次数是否相等,若不相等则释放读信号量,并将所述写入次数同步至本地内存;所述第二核心处理器在执行读取操作后,更新读取次数,将更新后的所述读取次数同步至本地内存,并将更新后的所述读取次数发送至所述第一核心处理器;所述第一核心处理器在接收到所述第二核心处理器发回的更新后的所述读取次数后,判断本地内存所保存的所述读取次数与所述第二核心处理器发送的所述读取次数是否相等,若不相等则释放写信号量,并将所述写入次数同步至本地内存;所述第一核心处理器在完成全部的写入操作后释放互斥锁。

6、于本申请的第一方面的一些实施例中,若所述读写操作中,所述第一子内存区域的循环队列中排布有两个数据块时,所述方法的读写操作包括如下过程: 基于所述第一子内存区域数据块个数,所述第一核心处理器将写信号量和写位置索引初始化,并获取互斥锁;所述第一核心处理器在执行写入操作后,对所述写位置索引进行更新,并将所述写位置索引同步至本地内存;所述第一核心处理器触发中断请求,并将所述写位置索引发送至第二核心处理器;第二核心处理器响应于所述中断请求,判断本地保存的写位置索引与所述第一核心处理器发送的写位置索引是否相等,若不相等则释放读信号量,并将所述写位置索引同步至本地内存; 第二核心处理器将更新后的读位置索引发送至所述第一核心处理器,所述第二核心处理器执行读取操作;所述第一核心处理器在接收到所述第二核心处理器发回的更新后的读位置索引后,判断本地内存所保存的读位置索引与所述第二本文档来自技高网...

【技术保护点】

1.一种基于共享内存的核间通信方法,其特征在于,基于第一核心处理器和第二核心处理器进行读写操作,其中,所述第一核心处理器和第二核心处理器同时作为接收者和发送者,当所述第一核心处理器为接收者,第二核心处理器为发送者时,所述方法包括:

2.根据权利要求书1所述的基于共享内存的核间通信方法,其特征在于,所述第一核心处理器执行写入操作的过程包括:

3.根据权利要求书2所述的基于共享内存的核间通信方法,其特征在于,所述第二核心处理器响应于中断请求,执行读取操作的过程包括:

4.根据权利要求书1所述的基于共享内存的核间通信方法,其特征在于,若所述读写操作中,所述第一子内存区域的循环队列中排布有单个数据块时,所述方法的读写操作包括如下过程:

5.根据权利要求书1所述的基于共享内存的核间通信方法,其特征在于,若所述读写操作中,所述第一子内存区域的循环队列中排布有两个数据块时,所述方法的读写操作包括如下过程:

6.根据权利要求书1所述的基于共享内存的核间通信方法,其特征在于,执行写入操作的过程和所述读取操作的过程还包括:

7.根据权利要求书1所述的基于共享内存的核间通信方法,其特征在于,所述数据块预留有若干个字节,用于表征数据块中包含的有效数据的长度。

8.一种基于共享内存的核间通信装置,其特征在于,基于第一核心处理器和第二核心处理器进行读写操作,其中,所述第一核心处理器和第二核心处理器同时作为接收者和发送者,当所述第一核心处理器为接收者,第二核心处理器为发送者时,包括:

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述基于共享内存的核间通信方法。

10.一种电子终端,其特征在于,包括:处理器及存储器;

...

【技术特征摘要】

1.一种基于共享内存的核间通信方法,其特征在于,基于第一核心处理器和第二核心处理器进行读写操作,其中,所述第一核心处理器和第二核心处理器同时作为接收者和发送者,当所述第一核心处理器为接收者,第二核心处理器为发送者时,所述方法包括:

2.根据权利要求书1所述的基于共享内存的核间通信方法,其特征在于,所述第一核心处理器执行写入操作的过程包括:

3.根据权利要求书2所述的基于共享内存的核间通信方法,其特征在于,所述第二核心处理器响应于中断请求,执行读取操作的过程包括:

4.根据权利要求书1所述的基于共享内存的核间通信方法,其特征在于,若所述读写操作中,所述第一子内存区域的循环队列中排布有单个数据块时,所述方法的读写操作包括如下过程:

5.根据权利要求书1所述的基于共享内存的核间通信方法,其特征在于,若所述读写操作中,所述第一子内存区域的循环队...

【专利技术属性】
技术研发人员:王杨
申请(专利权)人:芯原科技上海有限公司
类型:发明
国别省市:

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

1