CN112486704B - 一种基于共享存储的多核多处理器同步与通信系统 - Google Patents
一种基于共享存储的多核多处理器同步与通信系统 Download PDFInfo
- Publication number
- CN112486704B CN112486704B CN202011360441.4A CN202011360441A CN112486704B CN 112486704 B CN112486704 B CN 112486704B CN 202011360441 A CN202011360441 A CN 202011360441A CN 112486704 B CN112486704 B CN 112486704B
- Authority
- CN
- China
- Prior art keywords
- global
- buffer pool
- semaphore
- core
- area
- 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 44
- 238000013507 mapping Methods 0.000 claims abstract description 18
- 239000003795 chemical substances by application Substances 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 63
- 238000000034 method Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- 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
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于共享存储的多核多处理器同步与通信系统,包括:多核多处理器组件,包括多核多处理器和高速总线;共享存储区管理组件,包括全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区、名表区和缓冲池管理模块;系统服务组件,包括全局信号量、全局消息队列和全局数据存储器;同步与通信代理组件,包括通知模块和映射模块。该多核多处理器系统解决了运行在多核多处理器上线程间的同步与通信、数据交互的问题,具有编程简单、性能高、速度快的特点,保证系统有秩序、高效安全的运行。
Description
技术领域
本发明涉及一种同步与通信系统,具体为一种基于共享存储的多核多处理器同步与通信系统,属于嵌入式计算机技术领域。
背景技术
随着计算机系统的发展以及领域应用对实时性、并行性需求的日益增长,多核多处理器硬件平台的发展给嵌入式软件系统的研究带来新的挑战。
在多核多处理器并行系统中,因为无法有效提高系统处理性能、无法合理使用有限资源,将会导致多核多处理器并行系统不具备高效可靠的临界资源分配、共享资源争用、多核通信机制,不能够高速安全地处理多核之间线程的协同工作,实现线程间的同步与通信,完成资源的共享访问与线程交互,进而产生运行错误,导致系统崩溃。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于共享存储的多核多处理器同步与通信系统,能够高效安全地处理多核之间线程的协同工作,实现线程间的同步与通信,完成资源的共享访问与线程交互,解决了运行在多核多处理器上线程间的同步与通信、数据交互的问题,具有编程简单、性能高、速度快的特点。
本发明通过以下技术方案来实现上述目的:一种基于共享存储的多核多处理器同步与通信系统,所述多核多处理器同步与通信系统包括:
多核多处理器组件,包括多核多处理器和高速总线;
共享存储区管理组件,包括全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区、名表区和缓冲池管理模块;
系统服务组件,包括全局信号量、全局消息队列和全局数据存储器;
同步与通信代理组件,包括通知模块和映射模块。
优选地,所述多核多处理器组件的多核多处理器的各处理核心通过高速总线映射一段共享存储区,供共享存储区管理组件使用。
优选地,所述多核多处理器组件的多核多处理器的处理器节点的个数至少有1个;所述处理器节点的处理核心的个数至少有1个;并且所述处理器节点之间或处理核心之间支持高速总线互连;其中,高速总线为SRIO总线或PCIE总线。
优选地,所述全局信号量缓冲池区包括全局信号量缓冲池和全局信号量等待队列缓冲池;
所述全局消息队列缓冲池区包括全局消息队列缓冲池和消息缓冲池;
所述全局数据存储器缓冲池区包括全局数据存储器缓冲池、用户堆缓冲池和数据缓冲池;
其中,缓冲池为带表头指针的双向链表,链表表头均放置在各自所属的处理核心上,包括可变大小缓冲池和固定大小缓冲池两种类型;
全局信号量缓冲池、全局信号量等待队列缓冲池、全局消息队列缓冲池、全局数据存储器缓冲池和用户堆缓冲池为固定大小缓冲池,消息缓冲池和数据缓冲池为可变大小缓冲池;
共享存储区管理组件支持用户根据需求自定义缓冲池;
缓冲池可用中断、互斥锁或全局信号量的方式进行互斥访问。
优选地,所述共享存储区管理组件的名表区用于存放全局对象名表;其中,所述名表区位于主处理核心映射的共享存储区;
所述名表的内容包括控制名表互斥访问的全局信号量、名表中所有已创建的全局对象数目以及所有已创建的全局对象信息;
其中,全局对象包括全局信号量、全局消息队列、全局数据存储器;
全局对象信息包括名称、类型和所属处理核心;
多核多处理器并行系统通过全局对象的名称来获得该全局对象的句柄,从而访问该全局对象。
优选地,所述全局消息队列和全局数据存储器通过全局信号量进行管理;
当线程向全局消息队列发送消息或从全局消息队列接收消息时,通过全局信号量对全局消息队列资源进行管理与控制,从而实现消息的传输;
线程申请获取或释放全局数据存储器时,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。
优选地,所述系统服务组件为用户提供全局信号量、全局消息队列以及全局数据存储器的应用编程接口,并支持用户根据需求,自定义全局对象和全局对象接口;
其中,全局信号量的应用编程接口包括创建、等待以及释放接口;
全局消息队列的应用编程接口包括创建、发送以及接收接口;
全局数据存储器的应用编程接口包括创建、获取以及释放接口。
优选地,所述同步与通信代理组件通过映射模块和通知模块建立信号量代理机制;
当线程被挂起在一个全局信号量的等待队列上或被解挂时,利用中断通知目的处理核心,通过线程对应的本地信号量代替该全局信号量,将线程挂起或解挂。
一种基于共享存储的多核多处理器同步与通信系统的使用方法,该使用方法包括:
S91)各处理核心均初始化高速总线,通过高速总线映射一段共享存储区,并安装高速总线的中断;
S92)选取任一处理核心为主处理核心,创建并初始化一张共享的全局对象名表,用于记录所有已创建的全局对象的信息;
S93)在各处理核心映射出的共享存储区中,创建并初始化全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区;
S94)各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射表,用于记录已创建的线程与本地信号量之间的对应关系;
S95)各处理核心创建并初始化全局信号量、全局消息队列或全局数据存储器,对其进行相关操作。
本发明的有益效果是:该多核多处理器同步与通信系统解决了运行在多核多处理器上线程间的同步与通信、数据交互的问题,具有编程简单、性能高、速度快的特点,保证系统有秩序、高效安全的运行。
附图说明
图1为本发明实施例应用的一种多核多处理器并行系统结构框图;
图2为本发明实施例应用的一种基于共享存储的多核多处理器同步与通信系统结构框图;
图3为本发明实施例应用的共享存储区管理组件结构框图;
图4为本发明实施例应用的全局信号量名表结构;
图5为本发明实施例应用的系统服务组件结构框图;
图6为本发明实施例应用的一种基于共享存储的多核多处理器同步与通信系统使用流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于共享存储的多核多处理器同步与通信系统,所述多核多处理器同步与通信系统包括:
(a)多核多处理器组件,包括多核多处理器和高速总线。
所述多核多处理器的各处理核心通过高速总线映射一段共享存储区,供共享存储区管理组件使用。
所述多核多处理器的处理器节点的个数至少有1个;所述处理器节点的处理核心至少有1个;并且所述处理器节点相互之间或处理核心相互之间支持高速总线互连;其中,高速总线为SRIO总线或PCIE总线。
(b)共享存储区管理组件,包括全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区、名表区和缓冲池管理模块。
所述全局信号量缓冲池区包括全局信号量缓冲池和全局信号量等待队列缓冲池;
所述全局消息队列缓冲池区包括全局消息队列缓冲池和消息缓冲池;
所述全局数据存储器缓冲池区包括全局数据存储器缓冲池、用户堆缓冲池以和数据缓冲池;
其中,缓冲池为带表头指针的双向链表,链表表头均放置在各自所属的处理核心上,包括可变大小缓冲池和固定大小缓冲池两种类型;
全局信号量缓冲池、全局信号量等待队列缓冲池、全局消息队列缓冲池、全局数据存储器缓冲池和用户堆缓冲池为固定大小缓冲池,消息缓冲池和数据缓冲池为可变大小缓冲池;
共享存储区管理组件支持用户根据需求自定义缓冲池;
缓冲池可用中断、互斥锁或全局信号量的方式进行互斥访问;
所述名表区用于存放全局对象名表,其中,所述名表区位于主处理核心映射的共享存储区;
所述名表的内容包括控制名表互斥访问的全局信号量、名表中所有已创建的全局对象数目以及所有已创建的全局对象信息;
其中,全局对象包括全局信号量、全局消息队列、全局数据存储器;
全局对象信息包括名称、类型和所属处理核心;
多核多处理器并行系统通过全局对象的名称来获得该全局对象的句柄,从而访问该全局对象。
(c)系统服务组件,包括全局信号量、全局消息队列和全局数据存储器。
所述全局消息队列和全局数据存储器通过全局信号量进行管理;
当线程向全局消息队列发送消息或从全局消息队列接收消息时,通过全局信号量对全局消息队列资源进行管理与控制,从而实现消息的传输;
线程申请获取或释放全局数据存储器时,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。
所述系统服务组件为用户提供全局信号量、全局消息队列以及全局数据存储器的应用编程接口,并支持用户根据需求,自定义全局对象和全局对象接口;
其中,全局信号量的应用编程接口包括创建、等待以及释放接口;
全局消息队列的应用编程接口包括创建、发送以及接收接口;
全局数据存储器的应用编程接口包括创建、获取以及释放接口。
(d)同步与通信代理组件,包括通知模块和映射模块。
所述同步与通信代理组件通过映射模块和通知模块建立信号量代理机制,即将全局信号量与处理核心的本地信号量建立映射关系。
当线程被挂起在一个全局信号量的等待队列上或被解挂时,利用中断通知目的处理核心,通过线程对应的本地信号量代替该全局信号量,将线程挂起或解挂。
一种基于共享存储的多核多处理器同步与通信系统的使用方法,该使用方法包括:
S91)各处理核心均初始化高速总线,通过高速总线映射一段共享存储区,并安装高速总线的中断;
S92)选取任一处理核心为主处理核心,创建并初始化一张共享的全局对象名表,用于记录所有已创建的全局对象的信息;
S93)在各处理核心映射出的共享存储区中,创建并初始化全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区;
S94)各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射表,用于记录已创建的线程与本地信号量之间的对应关系;
S95)各处理核心创建并初始化全局信号量、全局消息队列或全局数据存储器,对其进行相关操作。
实施例
需要说明的是:
1)如图1所示,本实施例是在一个基于共享存储的嵌入式多核多处理器同步与通信系统上实施的实施例;
2)本实施例应用的基于共享存储的嵌入式多核多处理器同步与通信系统,包含四块处理板,分别为S0,S1,S2,S3,其中处理板S0、S1、S2包含两片MPC8641D双核处理器和一个SRIO交换设备,处理板S3包含一片MPC8641D双核处理器和一个SRIO交换设备,其中每片MPC8641D处理器包含两个e600处理核心,处理核心分别为C0,C1,……,Ci,……,C13,选定处理核心C0为主处理核心;
3)本实施例应用的MPC8641D处理器均支持SRIO总线互连,每片MPC8641D双核处理器之间通过SRIO交换设备连接;
4)本实施例是基于SRIO的多核多处理器并行系统。
如图2所示,本实施例中一种基于共享存储的多核多处理器同步与通信系统,包括:多核多处理器组件、共享存储区管理组件、系统服务组件以及同步与通信代理组件。所述多核多处理器组件包括多核多处理器和高速总线;共享存储区管理组件包括全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区、名表区和缓冲池管理模块;系统服务组件包括全局信号量、全局消息队列和全局数据存储器;同步与通信代理组件包括通知模块和映射模块。
其中,所述一种基于共享存储的多核多处理器同步与通信系统的各组件功能如下:
S21)多核多处理器组件的多核多处理器的各处理核心通过高速总线映射一段共享存储区,供共享存储区管理组件使用;
S22)共享存储区管理组件设置缓冲池管理模块,管理全局信号量缓冲池区、全局消息队列缓冲池区以及全局数据存储器缓冲池区,主处理核心映射的共享存储区上增设名表区;
S23)系统服务组件从共享存储区上的缓冲池中创建全局信号量、全局消息队列或全局数据存储器,并提供应用编程接口供用户使用;
S24)同步与通信代理组件通过映射模块和通知模块建立信号量代理机制,将全局信号量映射到多核多处理器组件各处理核心,执行全局信号量相关操作。
其中,S21)所述多核多处理器组件,各e600处理核心均从本地地址空间映射长度为4M字节的空间到SRIO地址空间作为共享内存,供MPC8641D多核多处理器并行系统所有处理核心访问,共享内存的空间首地址依次为0xA4000000,0xA4400000,……,0xA4000000+i*0x400000,……,0xA4000000+13*0x400000。
如图3所示,S22)所述共享存储区管理组件,全局信号量缓冲池区包括全局信号量缓冲池、全局信号量等待队列缓冲池;全局消息队列缓冲池区包括全局消息队列缓冲池、消息缓冲池;全局数据存储器缓冲池区包括全局数据存储器缓冲池、用户堆缓冲池以及数据缓冲池。
其中,缓冲池为带表头指针的双向链表,链表表头均放置在各自所属的处理核心上,包括可变大小缓冲池和固定大小缓冲池两种类型;
其中,全局信号量缓冲池、全局信号量等待队列缓冲池、全局消息队列缓冲池、全局数据存储器缓冲池和用户堆缓冲池为固定大小缓冲池,消息缓冲池和数据缓冲池为可变大小缓冲池;
其中,共享存储区管理组件支持用户根据需求自定义缓冲池;
其中,缓冲池可用中断、互斥锁或全局信号量的方式进行互斥访问。
如图4所示,S22)所述共享存储区管理组件,名表区用于存放全局对象名表,名表的内容包括控制名表互斥访问的全局信号量、名表中所有已创建的全局对象数目,以及所有已创建的全局对象信息。
其中,全局对象包括全局信号量、全局消息队列、全局数据存储器,全局对象信息主要包括名称、类型、所属处理核心等。多核多处理器并行系统通过全局对象的名称来获得该全局对象的句柄,从而访问实现该全局对象。
其中,S23)所述系统服务组件,全局消息队列和全局数据存储器通过全局信号量进行管理。当线程向全局消息队列发送消息或从全局消息队列接收消息时,通过全局信号量对全局消息队列资源进行管理与控制,从而实现消息的传输;线程申请获取或释放全局数据存储器时,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。
如图5所示,S23)所述系统服务组件,为用户提供全局信号量、全局消息队列以及全局数据存储器的应用编程接口,并支持用户根据需求,自定义全局对象和全局对象接口。其中,全局信号量的应用编程接口,包括创建、等待、释放等接口;全局消息队列的应用编程接口,包括创建、发送、接收等接口;全局数据存储器的应用编程接口,包括创建、获取、释放等接口。
其中,S24)所述同步与通信代理组件,通过映射模块和通知模块建立信号量代理机制,即将全局信号量与处理核心的本地信号量建立映射关系,当线程被挂起在一个全局信号量的等待队列上或被解挂时,利用中断通知目的处理核心,通过线程对应的本地信号量代替该全局信号量,将线程挂起或解挂。
如图6所示,一种基于共享存储的多核多处理器同步与通信系统的使用方法,所述使用方法包括以下步骤:
S91)各处理核心均初始化高速总线,通过高速总线映射一段共享存储区,并安装高速总线的中断;
S92)选取任一处理核心为主处理核心,创建并初始化一张共享的全局对象名表,用于记录所有已创建的全局对象的信息;
S93)在各处理核心映射出的共享存储区中,创建并初始化全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区;
S94)各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射表,用于记录已创建的线程与本地信号量之间的对应关系;
S95)各处理核心创建并初始化全局信号量、全局消息队列或全局数据存储器,对其进行相关操作。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (6)
1.一种基于共享存储的多核多处理器同步与通信系统,其特征在于,所述多核多处理器同步与通信系统包括:
多核多处理器组件,包括多核多处理器和高速总线;
共享存储区管理组件,包括全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区、名表区和缓冲池管理模块;
系统服务组件,包括全局信号量、全局消息队列和全局数据存储器;
同步与通信代理组件,包括通知模块和映射模块;
所述全局信号量缓冲池区包括全局信号量缓冲池和全局信号量等待队列缓冲池;
所述全局消息队列缓冲池区包括全局消息队列缓冲池和消息缓冲池;
所述全局数据存储器缓冲池区包括全局数据存储器缓冲池、用户堆缓冲池和数据缓冲池;
其中,缓冲池为带表头指针的双向链表,链表表头均放置在各自所属的处理核心上,包括可变大小缓冲池和固定大小缓冲池两种类型;
全局信号量缓冲池、全局信号量等待队列缓冲池、全局消息队列缓冲池、全局数据存储器缓冲池和用户堆缓冲池为固定大小缓冲池,消息缓冲池和数据缓冲池为可变大小缓冲池;
共享存储区管理组件支持用户根据需求自定义缓冲池;
缓冲池可用中断、互斥锁或全局信号量的方式进行互斥访问;
所述共享存储区管理组件的名表区用于存放全局对象名表,其中,所述名表区位于主处理核心映射的共享存储区;
所述名表的内容包括控制名表互斥访问的全局信号量、名表中所有已创建的全局对象数目以及所有已创建的全局对象信息;
其中,全局对象包括全局信号量、全局消息队列、全局数据存储器;
全局对象信息包括名称、类型和所属处理核心;
多核多处理器并行系统通过全局对象的名称来获得该全局对象的句柄,从而访问该全局对象;
所述全局消息队列和全局数据存储器通过全局信号量进行管理;
当线程向全局消息队列发送消息或从全局消息队列接收消息时,通过全局信号量对全局消息队列资源进行管理与控制,从而实现消息的传输;
线程申请获取或释放全局数据存储器时,通过全局信号量管理全局数据存储器的互斥访问,从而获取或释放全局数据存储器的访问权。
2.根据权利要求1所述的一种基于共享存储的多核多处理器同步与通信系统,其特征在于:所述多核多处理器的各处理核心通过高速总线映射一段共享存储区,供共享存储区管理组件使用。
3.根据权利要求2所述的一种基于共享存储的多核多处理器同步与通信系统,其特征在于:所述多核多处理器的处理器节点的个数至少有1个;所述处理器节点的处理核心个数至少有1个;并且所述处理器节点之间或处理核心之间支持高速总线互连;其中,高速总线为SRIO总线或PCIE总线。
4.根据权利要求1所述的一种基于共享存储的多核多处理器同步与通信系统,其特征在于:所述系统服务组件为用户提供全局信号量、全局消息队列以及全局数据存储器的应用编程接口,并支持用户根据需求,自定义全局对象和全局对象接口;
其中,全局信号量的应用编程接口包括创建、等待以及释放接口;
全局消息队列的应用编程接口包括创建、发送以及接收接口;
全局数据存储器的应用编程接口包括创建、获取以及释放接口。
5.根据权利要求1所述的一种基于共享存储的多核多处理器同步与通信系统,其特征在于:所述同步与通信代理组件通过映射模块和通知模块建立信号量代理机制;
当线程被挂起在一个全局信号量的等待队列上或被解挂时,利用中断通知目的处理核心,通过线程对应的本地信号量代替该全局信号量,将线程挂起或解挂。
6.一种基于权利要求1所述的基于共享存储的多核多处理器同步与通信系统的使用方法,其特征在于,该使用方法包括:
S91)各处理核心均初始化高速总线,通过高速总线映射一段共享存储区,并安装高速总线的中断;
S92)选取任一处理核心为主处理核心,创建并初始化一张共享的全局对象名表,用于记录所有已创建的全局对象的信息;
S93)在各处理核心映射出的共享存储区中,创建并初始化全局信号量缓冲池区、全局消息队列缓冲池区、全局数据存储器缓冲池区;
S94)各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射表,用于记录已创建的线程与本地信号量之间的对应关系;
S95)各处理核心创建并初始化全局信号量、全局消息队列或全局数据存储器,对其进行相关操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011360441.4A CN112486704B (zh) | 2020-11-27 | 2020-11-27 | 一种基于共享存储的多核多处理器同步与通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011360441.4A CN112486704B (zh) | 2020-11-27 | 2020-11-27 | 一种基于共享存储的多核多处理器同步与通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112486704A CN112486704A (zh) | 2021-03-12 |
CN112486704B true CN112486704B (zh) | 2024-02-06 |
Family
ID=74936271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011360441.4A Active CN112486704B (zh) | 2020-11-27 | 2020-11-27 | 一种基于共享存储的多核多处理器同步与通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486704B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132375B (zh) * | 2022-12-08 | 2024-07-23 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于国产dsp的多节点任意核间全域通信方法 |
CN116662037B (zh) * | 2023-07-24 | 2023-10-20 | 杭州鉴智机器人科技有限公司 | 一种共享内存的处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1319209A (zh) * | 1998-05-08 | 2001-10-24 | 摩托罗拉公司 | 数字通信处理器 |
CN101246466A (zh) * | 2007-11-29 | 2008-08-20 | 华为技术有限公司 | 多核系统中共享内存的管理方法和装置 |
CN101311894A (zh) * | 2007-03-30 | 2008-11-26 | 英特尔公司 | 多处理器/多内核消息传递机中的推测预取方法和装置 |
CN102077181A (zh) * | 2008-04-28 | 2011-05-25 | 惠普开发有限公司 | 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统 |
CN103970602A (zh) * | 2014-05-05 | 2014-08-06 | 华中科技大学 | 一种面向x86多核处理器的数据流程序调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007108B2 (en) * | 2003-04-30 | 2006-02-28 | Lsi Logic Corporation | System method for use of hardware semaphores for resource release notification wherein messages comprises read-modify-write operation and address |
WO2011060366A2 (en) * | 2009-11-13 | 2011-05-19 | Anderson Richard S | Distributed symmetric multiprocessing computing architecture |
-
2020
- 2020-11-27 CN CN202011360441.4A patent/CN112486704B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1319209A (zh) * | 1998-05-08 | 2001-10-24 | 摩托罗拉公司 | 数字通信处理器 |
CN101311894A (zh) * | 2007-03-30 | 2008-11-26 | 英特尔公司 | 多处理器/多内核消息传递机中的推测预取方法和装置 |
CN101246466A (zh) * | 2007-11-29 | 2008-08-20 | 华为技术有限公司 | 多核系统中共享内存的管理方法和装置 |
WO2009067950A1 (fr) * | 2007-11-29 | 2009-06-04 | Huawei Technologies Co., Ltd. | Procédé et dispositif de gestion de mémoire partagée dans un système multicœur |
CN102077181A (zh) * | 2008-04-28 | 2011-05-25 | 惠普开发有限公司 | 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统 |
CN103970602A (zh) * | 2014-05-05 | 2014-08-06 | 华中科技大学 | 一种面向x86多核处理器的数据流程序调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112486704A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4410795B2 (ja) | 共有リソースの同時アクセス | |
US10228737B2 (en) | Affinity-aware parallel zeroing of memory for initialization of large pages in non-uniform memory access (NUMA) servers | |
WO2017024783A1 (zh) | 一种虚拟化方法、装置和系统 | |
US8312201B2 (en) | Managing memory allocations loans | |
US10013264B2 (en) | Affinity of virtual processor dispatching | |
US10983833B2 (en) | Virtualized and synchronous access to hardware accelerators | |
CN101183315A (zh) | 一种并行多处理器虚拟机系统 | |
CN112486704B (zh) | 一种基于共享存储的多核多处理器同步与通信系统 | |
US10459771B2 (en) | Lightweight thread synchronization using shared memory state | |
US20140237151A1 (en) | Determining a virtual interrupt source number from a physical interrupt source number | |
US20140244943A1 (en) | Affinity group access to global data | |
CN114138422A (zh) | 可扩展性的NVMe存储虚拟化方法和系统 | |
US6457107B1 (en) | Method and apparatus for reducing false sharing in a distributed computing environment | |
CN112486702B (zh) | 基于多核多处理器并行系统的全局消息队列实现方法 | |
CN116324706A (zh) | 分离式存储器池分配 | |
US20060080514A1 (en) | Managing shared memory | |
CN113268356B (zh) | 基于LINUX系统的多GPU板卡bounding的系统、方法及介质 | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
CN109032510B (zh) | 基于分布式结构的处理数据的方法和装置 | |
CN112463716A (zh) | 基于多核多处理器并行系统的全局信号量实现方法 | |
CN112486703B (zh) | 基于多核多处理器并行系统的全局数据存储器管理方法 | |
JP5847313B2 (ja) | 情報処理装置 | |
CN113176950B (zh) | 报文处理方法、装置、设备及计算机可读存储介质 | |
Zhu et al. | EBIO: An Efficient Block I/O Stack for NVMe SSDs With Mixed Workloads | |
Bielski | Novel memory and I/O virtualization techniques for next generation data-centers based on disaggregated hardware |
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 |