CN1904873A - 嵌入式实时操作系统中多核处理器的核间通信方法及装置 - Google Patents
嵌入式实时操作系统中多核处理器的核间通信方法及装置 Download PDFInfo
- Publication number
- CN1904873A CN1904873A CNA2005100873210A CN200510087321A CN1904873A CN 1904873 A CN1904873 A CN 1904873A CN A2005100873210 A CNA2005100873210 A CN A2005100873210A CN 200510087321 A CN200510087321 A CN 200510087321A CN 1904873 A CN1904873 A CN 1904873A
- Authority
- CN
- China
- Prior art keywords
- message
- nuclear
- multinuclear
- shared
- pool
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种嵌入式实时操作系统中多核处理器的核间通信方法,包括:在共享内存区中分配内存作为多核共享消息池;源核将要发送的消息写入多核共享消息池;源核将所述消息在多核共享消息池中的地址、目的任务标识通过数据管道发送给目的核;目的核将多核共享消息池中所述地址存放的所述消息传送给目的任务。本发明还公开了一种核间通信装置。本发明实现了核间的消息队列通信机制,提高了核间通信的效率,使每次传输消息的长度不再受到限制;本发明还实现了核内通信和核间通信的统一,为应用程序的开发提供了方便。
Description
技术领域
本发明涉及嵌入式实时操作系统和多核处理器,尤其涉及一种嵌入式实时操作系统中多核处理器的核间通信方法及装置。
背景技术
随着网络和计算机技术的飞速发展,对CPU(Central Process Unit,中央处理器)的性能要求越来越高。CPU性能的提升以前主要是通过提高主频来实现的,而主频的提升要求大幅度增加晶体管的数量,随之而来的散热问题也日益凸显。除了提高主频以外,另一个提高CPU性能的方法就是多核处理器。
多核处理器是在一个处理器上集成两个以上的计算单元,每个计算单元成为一个核,令一颗CPU提供接近多颗CPU的性能。多核处理器中的每个核上运行着各自的任务,而多个核上的任务之间常常需要传递数据信息(通常称之为传递消息),现有技术中,在多个核间通过数据管道来进行通信。
图1所示为有两个核,核M 110和核N 120的多核处理器的结构,核M 110和核N 120分别有各自的专用内存区130和140,两个核间具有共享存储区170。每个核在共享内存区170中分配有向其他核发送数据用的数据管道,由于数据管道是单向的,所以在共享内存区170中有核M 110分配的核M至核N数据管道180和核N分配的核N至核M数据管道190。每个核在专用内存区中存储着一个静态的路由表,指向至其他核的数据管道。核M 110和核N120分别有各自的虚中断模块150和160,任意一个核可以通过操作目的核的虚中断模块触发该核的一次虚中断,该中断通知目的核在数据通道中有新的数据到来。
当核M 110上的一个源任务向核N 120上的一个目的任务发送消息时,核M 110查询专用内存区130中的路由表,找到核M至核N数据管道180,将要传递消息的数据信息从专用内存区130拷贝到核M至核N数据管道180中;同时,核M 110通过核N 120的虚中断模块160使用内部虚中断与核N 120进行握手,传递目的任务标识和消息标识。核N 120响应虚中断,根据目的任务标识从核M至核N数据管道180中将该消息的数据信息拷贝到专用内存区140中,打包为消息并传递给目的任务。
在现有技术中,多核处理器的核间通信存在以下几个问题:
一次在核间传递的消息长度受到限制:由于数据管道在共享内存区中是固定分配的,始终占用着共享内存区,通常数据管道不可能分配很大的内存;同时为了减小数据管道中读写发生冲突的可能性,需要将数据管道设计为具有一定深度,即可以容纳多条消息,这样每条消息的长度受到限制,一般核间通信只能传递小数据量的消息;
核间通信效率低:从上述消息发送过程可知,完成一次核间通信需要两次拷贝该消息的所有数据,这极大地降低了核间通信的效率;
核内任务通信和核间任务通信方式不同:ERTOS(Embedded Real TimeOperating System,嵌入式实时操作系统)为一个核内的任务间通信提供了消息队列机制;而核间通信采用的数据管道对ERTOS而言是虚拟的I/O(输入输出)设备,采用驱动提供的通信机制,这使得应用程序的开发极为不便。
发明内容
本发明要解决的是现有的多核处理器的核间通信效率低、一次通信传递的消息长度受到限制和核内通信和核间通信不统一的问题。
本发明所述嵌入式实时操作系统中多核处理器的核间通信方法包括以下步骤:
a)在共享内存区中分配内存作为多核共享消息池;
b)源核将要发送的消息写入多核共享消息池;
c)源核将所述消息在多核共享消息池中的地址、目的任务标识通过数据管道发送给目的核;
d)目的核将多核共享消息池中所述地址存放的所述消息传送给目的任务。
优选地,所述步骤a)与步骤b)之间包括:
ab)源核在多核共享消息池中分配多核消息内存块,用来写入所述消息。
优选地,所述多核消息内存块包括头部信息区域和数据区域,其中所述头部信息包括所述多核消息内存块的大小、所属任务标识,所述数据区域用来存放所述消息的数据;
所述嵌入式实时操作系统的单核消息池的消息内存块与所述多核消息内存块的头部信息具有相同的格式。
优选地,步骤d)具体为:目的核将所述消息在多核共享消息池中的地址放入目的任务的消息队列。
优选地,所述步骤a)与步骤ab)之间包括:
源核在发送消息时指明所述消息的目的核标识和目的任务标识;
判断所述目的核标识与源核标识是否相同,如果相同,则通过所述嵌入式实时操作系统提供的单核内消息发送函数将消息发送给目的任务;如果不同,执行下一步。
优选地,所述步骤a)之前包括:对多核处理器上运行的所有任务进行统一的编号并记录运行该任务的核的标识;
所述步骤a)与步骤ab)之间包括:
源核在发送消息时指明所述消息的目的任务编号;
判断所述目的任务是否在源核上运行,如果相同,则通过所述嵌入式实时操作系统提供的单核内消息发送函数将消息发送给目的任务;如果不同,执行下一步。
优选地,当所述消息的源核与目的核不同时,所述步骤ab)之前包括:源核锁定多核共享消息池的自旋锁;
所述步骤ab)与步骤b)之间包括:源核解除多核共享消息池的自旋锁。
优选地,当所述消息的源核与目的核不同时,所述步骤d)之后包括:
目的核锁定多核共享消息池的自旋锁;
目的核释放所述多核消息内存块;
目的核解除多核共享消息池的自旋锁。
优选地,当所述消息的源核与目的核不同时,所述步骤a)之前包括:在共享内存区建立源核至目的核的数据管道;
所述步骤c)具体为:
源核将所述消息在多核共享消息池中的地址和目的任务标识拷贝至所述数据管道;
源核触发目的核的虚中断;
目的核响应虚中断,从所述数据管道中拷贝出所述消息在多核共享消息池中的地址和目的任务标识。
本发明还提供了一种嵌入式实时操作系统中多核处理器的核间通信装置,包括核、核间通信控制模块、虚中断模块、核间消息模块和包括数据通道和多核共享消息池的共享内存区,其中:
所述核间消息模块根据所述核的发送指令将要发送的消息写入多核共享消息池,向所述核返回发送消息在多核共享消息池中的地址;并且根据所述核传递的要接收的消息在多核共享消息池中的地址,读取接收消息传递给所述核;
所述多核共享消息池用来存储核间通信的消息;
所述核间通信控制模块用来根据所述核的发送指令将要发送的消息在多核共享消息池中的地址和目的任务标识拷贝到数据通道中,并将其他核发往所述核的消息在多核共享消息池中的地址和目的任务标识从数据通道中拷贝给所述核;
所述数据通道用来在核间传递消息在多核共享消息池中的地址和目的任务标识;
所述虚中断模块根据所述核的发送指令触发其他核的虚中断,并接受其他核的触发产生虚中断通知所述核接收其他核发送的消息。
优选地,所述核间消息模块包括消息内存模块和自旋锁模块,其中:
所述消息内存模块根据所述核的发送指令为要发送的消息在多核共享消息池中分配多核消息内存块,在分配的多核消息内存块中写入发送消息,向所述核返回发送消息在多核共享消息池中的地址;或者根据所述核传递的要接收的消息在多核共享消息池中的地址,读取接收消息传递给所述核,并释放接收消息的消息内存块;
所述自旋锁模块在所述消息内存模块分配和释放多核消息内存块前锁定所述多核共享消息池的自旋锁,并在分配和释放多核消息内存块后解除所述自旋锁。
优选地,所述装置还包括识别模块、核内通信模块和单核消息池,其中:
所述识别模块用来识别消息的目的核为所述核本身的发送指令,并将目的核为所述核本身的发送指令传递给所述核内通信模块;
所述核内通信模块根据所述核的发送指令在所述单核消息池中分配和释放消息内存块,通过消息内存块进行核内任务间的通信;
所述单核消息池以消息内存块来存储核内任务间通信的消息。
优选地,所述多核消息内存块和消息内存块都包括头部信息区域和数据区域,其中所述头部信息包括所述多核消息内存块或所述消息内存块的大小、所属任务标识,所述数据区域用来存放所述消息的数据;
所述多核消息内存块与所述消息内存块具有相同的头部信息格式。
本发明通过在共享内存区中建立多核共享消息池存储在核间传输的消息,以数据管道传输消息在多核通向消息池中的地址,实现了核间的消息队列通信机制,从而避免了两次消息数据的拷贝过程,提高了核间通信的效率,每次传输消息的长度也不再受到数据管道容量的限制;
进而,由于本发明中单核任务通信和核间任务通信都采用消息队列机制,并且为核提供了单一的消息发送和接收接口,实现了核内通信和核间通信的统一,为应用程序的开发提供了方便。
附图说明
图1所示为具有两个核的多核处理器的结构示意图;
图2所示为本发明所述核间通信方法的流程图;
图3所示为本发明所述核间通信装置的结构图。
具体实施方式
ERTOS为单核的核内任务通信提供了消息队列机制。ERTOS在核的专用内存区中控制着一块内存,专用于核内通信的消息数据存储,这块内存称为单核消息池。任务在发送消息前,通过ERTOS从单核消息池中分配指定大小的消息内存块。一个消息内存块分为头部信息区域和数据区域,头部信息区域中记录了该消息内存块的相关信息,如大小、所属任务的ID(标识)等等,任务在数据区域中存放消息数据。
消息队列由运行在核上的任务创建,消息队列实质上是一个链表,链表中每一项代表一个消息,其实际内容因ERTOS的不同而有所区别,必备的内容是指向所代表的消息的链接指针,或者说是该消息在单核消息池中的地址。
任务发送消息时,将消息数据写入到所分配消息内存块的数据区域中。之后,调用ERTOS提供的消息发送函数将消息发送到目的任务绑定的消息队列中。这一过程的具体实现如下:ERTOS修改目的任务消息队列的链接指针,使其指向该消息内存块;修改消息内存块头部信息中记录的链接信息将消息内存块插入到目的任务的消息队列链表中。
可见,在这一过程中并没有数据拷贝发生。需要特别指出的是,ERTOS消息队列的实现机制必须与消息池的实现机制相一致,因为两者对于消息内存块的头部信息格式需要有统一的认识。
ERTOS的单核消息池是一种单核独占的消息池,只为一个核提供消息内存块的分配和回收功能。对于单核消息池的互斥访问只需要在一个核上的多个任务间进行,由ERTOS提供的信号量、互斥锁等机制实现。单核消息池不能服务于多核间的消息通信。
本发明的思路是实现多核共享的消息池,结合核内任务的消息队列实现核间消息通信。本发明中核间通信方法的流程如图2所示,其中,发送消息的任务运行的核为源核,接收消息的目的任务运行的核为目的核。
在步骤S010,在共享内存区中分配内存作为多核共享消息池。多核共享消息池用来存放核间通信的消息数据和头部信息,可以在系统初始化过程中创建,也可以在源核发送消息前创建。
在步骤S020,在共享内存区建立源核至目的核的数据管道。建立数据管道的方法与现有技术中相同,不再赘述。
在本发明中,源核仍需要通过数据管道向目的核传递消息在多核共享消息池中的地址和目的任务ID,也就是说,地址和目的任务ID仍需要经过两次拷贝。但由于这些内容仅仅只有几个字节的数据,因而几乎不会对核间通信效率造成影响。
在步骤S030,判断源核是否进行核间通信,如果是,执行步骤S050;如果否,执行步骤S040,通过ERTOS提供的单核内消息发送函数发送消息,进行核内任务间的通信。
由于本发明的核间通信可以采用消息队列的方式实现,这样就具备统一核内通信和核间通信接口的条件。也就是说,在发送消息时不必区分核内通信和核间通信都使用相同的参数,根据这些参数判决是核内通信还是核间通信。
本步骤有多种实现手段,以下为两个可选的方式:
源核在发送消息时,不论核内通信还是核间通信,在参数中都包括该消息的目的核ID和目的任务ID;这样,只要判断目的核ID与源核ID是否相同,即可得知是核内通信还是核间通信;
对多核处理器上运行的所有任务进行统一的编号,同时记录运行该任务的核的ID;源核在发送消息时,在参数中都包括该消息的目的任务编号;查找出运行目的任务的核ID,看其与源核ID是否相同即可得知是核内通信还是核间通信。
在步骤S050,源核锁定多核共享消息池的自旋锁。
在具有共享内存区的多核系统中,由于每个核都可以在任一时间请求使用共享内存区中的临界资源,即可供多核共享的内存块,因此共享内存区应当提供一种互斥机制,以避免资源使用陷入混乱状态。共享内存区以如下方式实现互斥访问:
每个核在使用共享内存区中的某个临界资源前,需要申请在该临界资源内分配内存空间,申请成功后该核得到所申请的内存空间的地址。核只能通过这个地址来访问这一段内存空间,其他核要想对该段内存空间进行操作,必须先得到这个地址,因而提出申请的核可以独自使用该段内存空间,也可以将该段内存空间的控制权交给别的核。
共享内存区为每个临界资源提供了自旋锁以控制对该临界资源的分配和释放过程。任何一个核都可以试图去锁定一个自旋锁,如果该自旋锁已经被别的核锁定并且还没有解锁,则这种申请锁定的操作会使执行这一操作的核陷入忙等状态,直到占用该自旋锁的核对其执行解锁操作。某个核对临界资源提出内存空间分配申请,锁定自旋锁以确保同一时间不会有其他的对临界资源内存空间的操作存在,来保证对所分配到的内存空间具有独占的使用权。
本发明中也采用自旋锁实现核间对多核共享消息池的互斥访问。
在步骤S060,源核在多核共享消息池中分配多核消息内存块,用来写入所述消息。本发明中多核消息内存块也包括包括头部信息区域和数据区域,其中头部信息也包括多核消息内存块的大小、所属任务ID等信息,数据区域用来存放传输消息的数据。
为了实现核内通信和核间通信的统一,多核消息内存块应该与单核消息池中的消息内存块具有相同的结构,尤其是相同头部信息的格式。
在步骤S070,源核解除多核共享消息池的自旋锁。
在步骤S080,源核将要发送的消息写入多核共享消息池,即写入在多核共享消息池中分配到的多核消息内存块。
在步骤S090,源核将该消息在多核共享消息池中的地址、目的任务ID通过数据管道发送给目的核。
本步骤中通过数据管道发送数据的方法与现有技术中相同,具体为:
源核将该消息在多核共享消息池中的地址和目的任务标识拷贝至源核至目的核的数据管道;
源核触发目的核的虚中断;
目的核响应虚中断,从源核至目的核的数据管道中拷贝出该消息在多核共享消息池中的地址和目的任务标识。
在步骤S100,目的核将多核共享消息池中该地址存放的消息传送给目的任务。
当多核消息内存块与单核的消息内存块具有相同的结构时,目的任务可以采用与核内通信同样的方法来接收消息。在这种情况下,目的核将该消息包括在多核共享消息池中的地址的链接信息写入目的任务的消息队列中,目的任务即可接收到源核发送的消息。
在步骤S110,目的核锁定多核共享消息池的自旋锁。
在步骤S120,目的核释放所述多核消息内存块。
在步骤S130,目的核解除多核共享消息池的自旋锁。
在目的任务接收消息后,执行步骤S110至S130释放通信的消息占用的多核消息内存块。
本发明还提供了一种ERTOS中实现核间通信的装置,其结构如图3所示。需要说明的是,共享内存区350、在共享内存区350中的数据通道351和多核共享消息池352是多核处理器中所有核共用的,而图中的其他模块则只由一个核使用。数据通道351用来在核间传递消息在多核共享消息池中的地址和目的任务标识,多核共享消息池352用来存储核间通信的消息。
在核310向另一个核发送消息时,向输出发送指令。核间消息模块340中的消息内存模块341根据发送指令为要发送的消息在多核共享消息池352中分配多核消息内存块,在其中写入发送消息,并将发送消息在多核共享消息池352中的地址返回给核310;
核310向核间通信控制模块320输出发送指令,并将要发送的消息在多核共享消息池352中的地址和目的任务标识同时通知核间通信控制模块320。核间通信控制模块320将该地址和目的任务标识拷贝到数据通道351中;
核310向虚中断模块330输出发送指令,虚中断模块330触发目的核的虚中断;至此,消息发送完成。
当有另一个核向核310发送消息时,虚中断模块330接受源核的触发产生虚中断,通知核310有其他核发送的消息到达;
核310通知核间通信控制模块320接收数据,核间通信控制模块320将源核发往核310的消息在多核共享消息池352中的地址和目的任务标识拷贝给核310;
核310指令核间消息模块340读取数据,同时将要接收的消息在多核共享消息池352中的地址通知核间消息模块340,核间消息模块340中的消息内存模块341从多核共享消息池352的指定地址读取接收消息传递给核310,并在消息使用完毕后释放接收消息的多核消息内存块;至此,消息接收完成。
核间消息模块340中的自旋锁模块342用来控制对多核共享消息池352中临界资源的互斥访问,在消息内存模块341分配和释放多核消息内存块前锁定多核共享消息池352的自旋锁,并在分配和释放多核消息内存块后解除自旋锁。
为了使核间通信和核内通信对核310具有统一的接口,可以在核310和与其连接的核间消息模块340、核间通信控制模块320和虚中断模块330之间增加识别模块360。
由于核310在接收来自核间通信的消息时是由虚中断模块320触发的,因此可以识别模块360只在核310发送数据时对消息的目的核为核310本身的发送指令进行识别,并将目的核为核310本身的发送指令传递给核内通信模块370。
核内通信模块370根据发送指令在单核消息池380中分配和释放消息内存块,通过消息内存块进行核内任务间的通信。单核消息池380以消息内存块来存储核内任务间通信的消息。
当多核共享消息池352与单核消息池380对各自的多核消息内存块和消息内存块的实现机制相同时,核310即可采用同一消息队列来接收核间通信和核内通信的消息。这需要多核消息内存块与消息内存块一样,包括头部信息区域和数据区域,其中头部信息包括内存块的大小、所属任务标识,而数据区域用来存放消息的数据;同时,多核消息内存块还要与消息内存块具有相同的头部信息格式。
可见,本发明中核间通信只要拷贝几个字节的数据,而不需要对消息的数据进行二次拷贝,这样的通信机制提高了核间通信的效率,能够满足更多应用的需要;本发明还将核间消息队列通信的接口与单核内多任务通信的接口进行统一,方便了用户的使用。而本发明提供的多核共享消息池的功能,能更多地满足用户的需求。
通过数据通道在核间传送数据的过程在具体实现中与ERTOS所使用的主板硬件相关。为了使ERTOS能够不经修改运行在多种主板上,现有技术中的方案是在主板硬件和ERTOS中增加一层BSP(Board Support Package,板级支持包),为ERTOS提供正确的接口,屏蔽底层硬件的不同。具体到核间数据通道的实现,与BSP有两个接口,一个是由BSP提供给数据发送方的接口,另一个数据接收方向BSP提供的接口。
本发明建议对上述两个接口进行标准化的定义,这样,当硬件环境发生变化、或是BSP实现核间固定长度数据通信的内部机制发生改变、或是由其它模块来实现核间固定长度数据通信的功能时,只要遵从了这两个接口的标准化定义,本发明所述方法或装置不经改动仍然能够正确的工作。这能在最大程度上提高可移植性。
本发明在实现核间通信时只需要知道目的核及目的任务ID,因而不仅适用于静态任务的ERTOS,也适用于具有动态创建任务功能的ERTOS。
以上所述本发明的实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (13)
1.一种嵌入式实时操作系统中多核处理器的核间通信方法,其特征在于,包括以下步骤:
a)在共享内存区中分配内存作为多核共享消息池;
b)源核将要发送的消息写入多核共享消息池;
c)源核将所述消息在多核共享消息池中的地址、目的任务标识通过数据管道发送给目的核;
d)目的核将多核共享消息池中所述地址存放的所述消息传送给目的任务。
2.按照权利要求1所述的核间通信方法,其特征在于,所述步骤a)与步骤b)之间包括:
ab)源核在多核共享消息池中分配多核消息内存块,用来写入所述消息。
3.按照权利要求2所述的核间通信方法,其特征在于:所述多核消息内存块包括头部信息区域和数据区域,其中所述头部信息包括所述多核消息内存块的大小、所属任务标识,所述数据区域用来存放所述消息的数据;
所述嵌入式实时操作系统的单核消息池的消息内存块与所述多核消息内存块的头部信息具有相同的格式。
4.按照权利要求3所述的核间通信方法,其特征在于,步骤d)具体为:目的核将所述消息在多核共享消息池中的地址放入目的任务的消息队列。
5.按照权利要求4所述的核间通信方法,其特征在于,所述步骤a)与步骤ab)之间包括:
源核在发送消息时指明所述消息的目的核标识和目的任务标识;
判断所述目的核标识与源核标识是否相同,如果相同,则通过所述嵌入式实时操作系统提供的单核内消息发送函数将消息发送给目的任务;如果不同,执行下一步。
6.按照权利要求4所述的核间通信方法,其特征在于,所述步骤a)之前包括:对多核处理器上运行的所有任务进行统一的编号并记录运行该任务的核的标识;
所述步骤a)与步骤ab)之间包括:
源核在发送消息时指明所述消息的目的任务编号;
判断所述目的任务是否在源核上运行,如果相同,则通过所述嵌入式实时操作系统提供的单核内消息发送函数将消息发送给目的任务;如果不同,执行下一步。
7.按照权利要求3至6任意一项所述的核间通信方法,其特征在于:当所述消息的源核与目的核不同时,所述步骤ab)之前包括:源核锁定多核共享消息池的自旋锁;
所述步骤ab)与步骤b)之间包括:源核解除多核共享消息池的自旋锁。
8.按照权利要求7所述的核间通信方法,其特征在于,当所述消息的源核与目的核不同时,所述步骤d)之后包括:
目的核锁定多核共享消息池的自旋锁;
目的核释放所述多核消息内存块;
目的核解除多核共享消息池的自旋锁。
9.按照权利要求8所述的核间通信方法,其特征在于,当所述消息的源核与目的核不同时,所述步骤a)之前包括:在共享内存区建立源核至目的核的数据管道;
所述步骤c)具体为:
源核将所述消息在多核共享消息池中的地址和目的任务标识拷贝至所述数据管道;
源核触发目的核的虚中断;
目的核响应虚中断,从所述数据管道中拷贝出所述消息在多核共享消息池中的地址和目的任务标识。
10.一种嵌入式实时操作系统中多核处理器的核间通信装置,其特征在于,包括核、核间通信控制模块、虚中断模块、核间消息模块和包括数据通道和多核共享消息池的共享内存区,其中:
所述核间消息模块根据所述核的发送指令将要发送的消息写入多核共享消息池,向所述核返回发送消息在多核共享消息池中的地址;并且根据所述核传递的要接收的消息在多核共享消息池中的地址,读取接收消息传递给所述核;
所述多核共享消息池用来存储核间通信的消息;
所述核间通信控制模块用来根据所述核的发送指令将要发送的消息在多核共享消息池中的地址和目的任务标识拷贝到数据通道中,并将其他核发往所述核的消息在多核共享消息池中的地址和目的任务标识从数据通道中拷贝给所述核;
所述数据通道用来在核间传递消息在多核共享消息池中的地址和目的任务标识;
所述虚中断模块根据所述核的发送指令触发其他核的虚中断,并接受其他核的触发产生虚中断通知所述核接收其他核发送的消息。
11.按照权利要求10述的核间通信装置,其特征在于,所述核间消息模块包括消息内存模块和自旋锁模块,其中:
所述消息内存模块根据所述核的发送指令为要发送的消息在多核共享消息池中分配多核消息内存块,在分配的多核消息内存块中写入发送消息,向所述核返回发送消息在多核共享消息池中的地址;或者根据所述核传递的要接收的消息在多核共享消息池中的地址,读取接收消息传递给所述核,并释放接收消息的消息内存块;
所述自旋锁模块在所述消息内存模块分配和释放多核消息内存块前锁定所述多核共享消息池的自旋锁,并在分配和释放多核消息内存块后解除所述自旋锁。
12.按照权利要求11的核间通信装置,其特征在于,所述装置还包括识别模块、核内通信模块和单核消息池,其中:
所述识别模块用来识别消息的目的核为所述核本身的发送指令,并将目的核为所述核本身的发送指令传递给所述核内通信模块;
所述核内通信模块根据所述核的发送指令在所述单核消息池中分配和释放消息内存块,通过消息内存块进行核内任务间的通信;
所述单核消息池以消息内存块来存储核内任务间通信的消息。
13.按照权利要求12所述的核间通信装置,其特征在于,所述多核消息内存块和消息内存块都包括头部信息区域和数据区域,其中所述头部信息包括所述多核消息内存块或所述消息内存块的大小、所属任务标识,所述数据区域用来存放所述消息的数据;
所述多核消息内存块与所述消息内存块具有相同的头部信息格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100873210A CN100458757C (zh) | 2005-07-28 | 2005-07-28 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100873210A CN100458757C (zh) | 2005-07-28 | 2005-07-28 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1904873A true CN1904873A (zh) | 2007-01-31 |
CN100458757C CN100458757C (zh) | 2009-02-04 |
Family
ID=37674139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100873210A Active CN100458757C (zh) | 2005-07-28 | 2005-07-28 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100458757C (zh) |
Cited By (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100451975C (zh) * | 2007-02-13 | 2009-01-14 | 杭州华三通信技术有限公司 | 实现多核cpu进行报文联合处理的系统及方法 |
CN100580630C (zh) * | 2007-12-29 | 2010-01-13 | 中国科学院计算技术研究所 | 满足SystemC语法要求的多核处理器及获得其执行代码的方法 |
CN101894092A (zh) * | 2010-07-28 | 2010-11-24 | 杭州华三通信技术有限公司 | 多核cpu及其核间通信方法 |
CN101170511B (zh) * | 2007-11-20 | 2010-11-24 | 中兴通讯股份有限公司 | 嵌入式操作系统中实现多核处理器通信的装置及方法 |
CN101458650B (zh) * | 2007-12-13 | 2010-12-15 | 华为技术有限公司 | 多核系统中检测内存传递异常的装置和方法 |
CN101946244A (zh) * | 2008-02-14 | 2011-01-12 | 国际商业机器公司 | 降低保留设备的访问竞争 |
CN101158920B (zh) * | 2007-11-22 | 2011-02-16 | 杭州华三通信技术有限公司 | 一种检测操作系统故障的方法和装置 |
CN101262501B (zh) * | 2008-04-23 | 2011-04-20 | 杭州华三通信技术有限公司 | 一种多核系统中的核间通信方法和一种多核系统 |
CN102355423A (zh) * | 2011-10-19 | 2012-02-15 | 迈普通信技术股份有限公司 | 转发资源访问方法和路由系统 |
CN101635006B (zh) * | 2008-07-22 | 2012-02-29 | 中国科学院计算技术研究所 | 一种满足SystemC语法的多核处理器的互斥和信号量单元组 |
WO2012088930A1 (zh) * | 2010-12-31 | 2012-07-05 | 华为技术有限公司 | 触发操作方法、多核分组调试方法、装置及系统 |
CN101634956B (zh) * | 2009-08-25 | 2012-08-08 | 华为技术有限公司 | 多核处理器消息调度方法及调度器 |
CN103034543A (zh) * | 2012-05-29 | 2013-04-10 | 福建三元达通讯股份有限公司 | 多软件运行环境通信方法、使多软件运行环境通信的方法 |
CN103559079A (zh) * | 2013-11-15 | 2014-02-05 | 深圳市道通科技有限公司 | 一种基于共享内存的数据存取方法及装置 |
CN103825782A (zh) * | 2014-03-07 | 2014-05-28 | 杭州华三通信技术有限公司 | 一种利用核间中断定位不合理任务的方法和设备 |
WO2015027797A1 (zh) * | 2013-08-29 | 2015-03-05 | 华为技术有限公司 | 一种通信方法、装置及系统 |
CN104462008A (zh) * | 2014-12-05 | 2015-03-25 | 三星半导体(中国)研究开发有限公司 | 共享物理内存的多处理器通信系统及其通信方法 |
CN104572315A (zh) * | 2013-10-23 | 2015-04-29 | 华为技术有限公司 | 实现子系统间通信的方法、通信实体及分布式通信系统 |
US9152482B2 (en) | 2012-02-01 | 2015-10-06 | Huawei Technologies Co., Ltd. | Multi-core processor system |
WO2016041447A1 (zh) * | 2014-09-15 | 2016-03-24 | 华为技术有限公司 | 基于多核处理器芯片的数据处理方法、装置以及系统 |
CN105824779A (zh) * | 2016-03-16 | 2016-08-03 | 享拍科技(深圳)有限公司 | 一种双核间的数据通信方法及系统 |
CN105893320A (zh) * | 2016-03-29 | 2016-08-24 | 浙江大学 | 一种面向多核处理器的远程任务函数调用方法 |
CN107127811A (zh) * | 2017-06-20 | 2017-09-05 | 佛山世科智能技术有限公司 | 柔性材料切割机器人智能数字控制器及实现方法 |
CN107562685A (zh) * | 2017-09-12 | 2018-01-09 | 南京国电南自电网自动化有限公司 | 一种基于延时补偿的多核处理器核心间数据交互的方法 |
CN108228524A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN108958953A (zh) * | 2018-06-29 | 2018-12-07 | 南京南瑞继保电气有限公司 | 一种基于多核处理器的消息交互方法 |
CN109074701A (zh) * | 2016-03-18 | 2018-12-21 | 捷德货币技术有限责任公司 | 用于评估有价文件的传感器数据的装置和方法 |
CN109558368A (zh) * | 2018-11-27 | 2019-04-02 | 武汉虹旭信息技术有限责任公司 | 一种多核dsp处理芯片核间通信系统及其方法 |
CN109857573A (zh) * | 2018-12-29 | 2019-06-07 | 深圳云天励飞技术有限公司 | 一种数据共享方法、装置、设备及系统 |
CN110347633A (zh) * | 2019-07-15 | 2019-10-18 | 北京茵沃汽车科技有限公司 | 基于多核的叠加车辆信号状态图标的方法、装置、介质 |
CN110764924A (zh) * | 2018-07-27 | 2020-02-07 | 普天信息技术有限公司 | 一种多核处理器的核间通信方法及装置 |
CN110825690A (zh) * | 2019-11-14 | 2020-02-21 | 北京华捷艾米科技有限公司 | 多核处理器的核间通信方法及装置 |
CN111190746A (zh) * | 2019-12-06 | 2020-05-22 | 中国航空工业集团公司洛阳电光设备研究所 | 基于VxWorks653多核分区实时操作系统及通信方法 |
CN111475202A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 基于异构多处理系统的核间通信方法及系统 |
CN112241329A (zh) * | 2020-09-28 | 2021-01-19 | 深圳市商汤科技有限公司 | 识别引擎的监控方法、装置、设备及存储介质 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
CN112416625A (zh) * | 2020-11-30 | 2021-02-26 | 深信服科技股份有限公司 | 免拷贝的进程间通信系统及方法 |
CN113326149A (zh) * | 2021-05-27 | 2021-08-31 | 展讯通信(天津)有限公司 | 异构多核系统的核间通信方法和设备 |
CN113377703A (zh) * | 2021-06-23 | 2021-09-10 | 上海擎昆信息科技有限公司 | 一种核间通信方法 |
CN113535341A (zh) * | 2020-04-14 | 2021-10-22 | 大唐移动通信设备有限公司 | Linux下CPU核间中断通信的实现方法及装置 |
CN113778706A (zh) * | 2021-08-18 | 2021-12-10 | 北京自动化控制设备研究所 | 一种基于amp架构的操作系统核间通信方法 |
CN114253741A (zh) * | 2021-12-02 | 2022-03-29 | 国汽智控(北京)科技有限公司 | 多核微处理器的核间通信方法和多核微处理器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976155B2 (en) * | 2001-06-12 | 2005-12-13 | Intel Corporation | Method and apparatus for communicating between processing entities in a multi-processor |
US6901491B2 (en) * | 2001-10-22 | 2005-05-31 | Sun Microsystems, Inc. | Method and apparatus for integration of communication links with a remote direct memory access protocol |
US6976131B2 (en) * | 2002-08-23 | 2005-12-13 | Intel Corporation | Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system |
US8015567B2 (en) * | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
CN1320464C (zh) * | 2003-10-23 | 2007-06-06 | 英特尔公司 | 用于维持共享高速缓存一致性的方法和设备 |
-
2005
- 2005-07-28 CN CNB2005100873210A patent/CN100458757C/zh active Active
Cited By (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100451975C (zh) * | 2007-02-13 | 2009-01-14 | 杭州华三通信技术有限公司 | 实现多核cpu进行报文联合处理的系统及方法 |
CN101170511B (zh) * | 2007-11-20 | 2010-11-24 | 中兴通讯股份有限公司 | 嵌入式操作系统中实现多核处理器通信的装置及方法 |
CN101158920B (zh) * | 2007-11-22 | 2011-02-16 | 杭州华三通信技术有限公司 | 一种检测操作系统故障的方法和装置 |
CN101458650B (zh) * | 2007-12-13 | 2010-12-15 | 华为技术有限公司 | 多核系统中检测内存传递异常的装置和方法 |
CN100580630C (zh) * | 2007-12-29 | 2010-01-13 | 中国科学院计算技术研究所 | 满足SystemC语法要求的多核处理器及获得其执行代码的方法 |
CN101946244A (zh) * | 2008-02-14 | 2011-01-12 | 国际商业机器公司 | 降低保留设备的访问竞争 |
CN101946244B (zh) * | 2008-02-14 | 2012-12-12 | 国际商业机器公司 | 降低保留设备的访问竞争的方法和设备 |
CN101262501B (zh) * | 2008-04-23 | 2011-04-20 | 杭州华三通信技术有限公司 | 一种多核系统中的核间通信方法和一种多核系统 |
CN101635006B (zh) * | 2008-07-22 | 2012-02-29 | 中国科学院计算技术研究所 | 一种满足SystemC语法的多核处理器的互斥和信号量单元组 |
CN101634956B (zh) * | 2009-08-25 | 2012-08-08 | 华为技术有限公司 | 多核处理器消息调度方法及调度器 |
CN101894092B (zh) * | 2010-07-28 | 2012-09-26 | 杭州华三通信技术有限公司 | 多核cpu及其核间通信方法 |
CN101894092A (zh) * | 2010-07-28 | 2010-11-24 | 杭州华三通信技术有限公司 | 多核cpu及其核间通信方法 |
WO2012088930A1 (zh) * | 2010-12-31 | 2012-07-05 | 华为技术有限公司 | 触发操作方法、多核分组调试方法、装置及系统 |
CN102355423B (zh) * | 2011-10-19 | 2013-11-27 | 迈普通信技术股份有限公司 | 转发资源访问方法和路由系统 |
CN102355423A (zh) * | 2011-10-19 | 2012-02-15 | 迈普通信技术股份有限公司 | 转发资源访问方法和路由系统 |
US9152482B2 (en) | 2012-02-01 | 2015-10-06 | Huawei Technologies Co., Ltd. | Multi-core processor system |
CN103034543A (zh) * | 2012-05-29 | 2013-04-10 | 福建三元达通讯股份有限公司 | 多软件运行环境通信方法、使多软件运行环境通信的方法 |
CN106339263B (zh) * | 2012-05-29 | 2020-01-31 | 安科讯(福建)科技有限公司 | 一种多软件运行环境之间通信的方法 |
CN106227614B (zh) * | 2012-05-29 | 2019-06-11 | 安科讯(福建)科技有限公司 | 一种多软件运行环境之间通信的系统 |
CN106339263A (zh) * | 2012-05-29 | 2017-01-18 | 福建三元达网络技术有限公司 | 一种多软件运行环境之间通信的方法 |
CN106227614A (zh) * | 2012-05-29 | 2016-12-14 | 福建三元达网络技术有限公司 | 一种多软件运行环境之间通信的系统 |
CN103034543B (zh) * | 2012-05-29 | 2016-08-17 | 福建三元达网络技术有限公司 | 多软件运行环境通信方法、使多软件运行环境通信的方法 |
WO2015027797A1 (zh) * | 2013-08-29 | 2015-03-05 | 华为技术有限公司 | 一种通信方法、装置及系统 |
CN104426958B (zh) * | 2013-08-29 | 2018-03-16 | 华为技术有限公司 | 一种通信方法、装置及系统 |
CN104426958A (zh) * | 2013-08-29 | 2015-03-18 | 华为技术有限公司 | 一种通信方法、装置及系统 |
CN104572315A (zh) * | 2013-10-23 | 2015-04-29 | 华为技术有限公司 | 实现子系统间通信的方法、通信实体及分布式通信系统 |
CN103559079A (zh) * | 2013-11-15 | 2014-02-05 | 深圳市道通科技有限公司 | 一种基于共享内存的数据存取方法及装置 |
CN103825782A (zh) * | 2014-03-07 | 2014-05-28 | 杭州华三通信技术有限公司 | 一种利用核间中断定位不合理任务的方法和设备 |
CN105589829A (zh) * | 2014-09-15 | 2016-05-18 | 华为技术有限公司 | 基于多核处理器芯片的数据处理方法、装置以及系统 |
WO2016041447A1 (zh) * | 2014-09-15 | 2016-03-24 | 华为技术有限公司 | 基于多核处理器芯片的数据处理方法、装置以及系统 |
CN104462008A (zh) * | 2014-12-05 | 2015-03-25 | 三星半导体(中国)研究开发有限公司 | 共享物理内存的多处理器通信系统及其通信方法 |
CN105824779A (zh) * | 2016-03-16 | 2016-08-03 | 享拍科技(深圳)有限公司 | 一种双核间的数据通信方法及系统 |
CN109074701B (zh) * | 2016-03-18 | 2022-04-19 | 捷德货币技术有限责任公司 | 用于评估有价文件的传感器数据的装置和方法 |
CN109074701A (zh) * | 2016-03-18 | 2018-12-21 | 捷德货币技术有限责任公司 | 用于评估有价文件的传感器数据的装置和方法 |
CN105893320A (zh) * | 2016-03-29 | 2016-08-24 | 浙江大学 | 一种面向多核处理器的远程任务函数调用方法 |
CN105893320B (zh) * | 2016-03-29 | 2019-08-06 | 浙江大学 | 一种面向多核处理器的远程任务函数调用方法 |
CN108228524A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN108228524B (zh) * | 2016-12-14 | 2021-07-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核系统的核间交互方法 |
CN107127811A (zh) * | 2017-06-20 | 2017-09-05 | 佛山世科智能技术有限公司 | 柔性材料切割机器人智能数字控制器及实现方法 |
CN107562685A (zh) * | 2017-09-12 | 2018-01-09 | 南京国电南自电网自动化有限公司 | 一种基于延时补偿的多核处理器核心间数据交互的方法 |
CN107562685B (zh) * | 2017-09-12 | 2020-06-09 | 南京国电南自电网自动化有限公司 | 一种基于延时补偿的多核处理器核心间数据交互的方法 |
CN108958953A (zh) * | 2018-06-29 | 2018-12-07 | 南京南瑞继保电气有限公司 | 一种基于多核处理器的消息交互方法 |
CN110764924A (zh) * | 2018-07-27 | 2020-02-07 | 普天信息技术有限公司 | 一种多核处理器的核间通信方法及装置 |
CN109558368A (zh) * | 2018-11-27 | 2019-04-02 | 武汉虹旭信息技术有限责任公司 | 一种多核dsp处理芯片核间通信系统及其方法 |
CN109857573B (zh) * | 2018-12-29 | 2021-03-05 | 深圳云天励飞技术有限公司 | 一种数据共享方法、装置、设备及系统 |
CN109857573A (zh) * | 2018-12-29 | 2019-06-07 | 深圳云天励飞技术有限公司 | 一种数据共享方法、装置、设备及系统 |
CN110347633A (zh) * | 2019-07-15 | 2019-10-18 | 北京茵沃汽车科技有限公司 | 基于多核的叠加车辆信号状态图标的方法、装置、介质 |
CN110825690A (zh) * | 2019-11-14 | 2020-02-21 | 北京华捷艾米科技有限公司 | 多核处理器的核间通信方法及装置 |
CN111190746A (zh) * | 2019-12-06 | 2020-05-22 | 中国航空工业集团公司洛阳电光设备研究所 | 基于VxWorks653多核分区实时操作系统及通信方法 |
CN111475202A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 基于异构多处理系统的核间通信方法及系统 |
CN113535341A (zh) * | 2020-04-14 | 2021-10-22 | 大唐移动通信设备有限公司 | Linux下CPU核间中断通信的实现方法及装置 |
CN113535341B (zh) * | 2020-04-14 | 2023-09-22 | 大唐移动通信设备有限公司 | Linux下CPU核间中断通信的实现方法及装置 |
CN112241329B (zh) * | 2020-09-28 | 2021-08-24 | 深圳市商汤科技有限公司 | 识别引擎的监控方法、装置、设备及存储介质 |
CN112241329A (zh) * | 2020-09-28 | 2021-01-19 | 深圳市商汤科技有限公司 | 识别引擎的监控方法、装置、设备及存储介质 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
CN112416625B (zh) * | 2020-11-30 | 2024-04-09 | 深信服科技股份有限公司 | 免拷贝的进程间通信系统及方法 |
CN112416625A (zh) * | 2020-11-30 | 2021-02-26 | 深信服科技股份有限公司 | 免拷贝的进程间通信系统及方法 |
CN113326149A (zh) * | 2021-05-27 | 2021-08-31 | 展讯通信(天津)有限公司 | 异构多核系统的核间通信方法和设备 |
CN113326149B (zh) * | 2021-05-27 | 2022-11-15 | 展讯通信(天津)有限公司 | 异构多核系统的核间通信方法和设备 |
CN113377703A (zh) * | 2021-06-23 | 2021-09-10 | 上海擎昆信息科技有限公司 | 一种核间通信方法 |
CN113377703B (zh) * | 2021-06-23 | 2024-04-09 | 上海擎昆信息科技有限公司 | 一种核间通信方法 |
CN113778706B (zh) * | 2021-08-18 | 2023-08-15 | 北京自动化控制设备研究所 | 一种基于amp架构的操作系统核间通信方法 |
CN113778706A (zh) * | 2021-08-18 | 2021-12-10 | 北京自动化控制设备研究所 | 一种基于amp架构的操作系统核间通信方法 |
CN114253741A (zh) * | 2021-12-02 | 2022-03-29 | 国汽智控(北京)科技有限公司 | 多核微处理器的核间通信方法和多核微处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN100458757C (zh) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1904873A (zh) | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 | |
CN1310475C (zh) | 用于根据使用类来控制对设施的访问的装置和方法 | |
CN1239999C (zh) | 处理iSCSI命令的方法和系统 | |
CN1174323C (zh) | 管理共享内存的方法 | |
KR100992034B1 (ko) | 동적 논리적 파티션 기능을 갖는 컴퓨팅 환경에서의 컴퓨터메모리 관리 | |
CN1892626A (zh) | 管理共享输入/输出结构的地址空间的方法、系统和设备 | |
TWI375913B (en) | Delivering interrupts directly to a virtual processor | |
CN1212574C (zh) | 使用本地标识符的端节点分区 | |
CN1262942C (zh) | 利用无数据事务获得全局促进工具的方法、设备和系统 | |
CN100343796C (zh) | 直接打印图像的方法和装置 | |
CN1604057A (zh) | 硬件实施通道适配器资源的逻辑分区的方法和系统 | |
CN1617526A (zh) | 在物理端口上模拟多个逻辑端口的方法和装置 | |
CN1193410A (zh) | 在多处理器系统中的处理器之间传送消息的方法与装置 | |
CN1033119A (zh) | 虚拟输入/输出命令 | |
CN1764906A (zh) | 数据处理系统中的存储器管理 | |
CN1488105A (zh) | 控制数据处理系统间经由存储器的数据流的方法和装置 | |
CN1647054A (zh) | 网络设备驱动体系结构 | |
CN1760788A (zh) | 传输并再现由各种数字权限管理系统处理的内容的方法 | |
CN1797380A (zh) | 接收装置、收发装置、接收方法和收发方法 | |
CN1818890A (zh) | 用于实现卸载发起方功能的方法和系统 | |
CN1881934A (zh) | 微处理器、网络系统和通信方法 | |
CN1488104A (zh) | 控制数据处理系统间经由存储器的数据流的方法和装置 | |
CN101046786A (zh) | 一种实现高效dma传输的dma控制器及传输方法 | |
US8280197B1 (en) | Managed background loading of image resources in resource-constrained devices | |
CN1957325A (zh) | 在加锁消息中传递受保护数据 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |