通信处理器间消息通信方法和系统技术方案

技术编号:4013614 阅读:168 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种通信处理器间消息通信方法和系统,其中方法包括:由主处理器在共享内存中动态更新发送缓冲区和接收缓冲区;利用所述发送缓冲区或所述接收缓冲区在所述主处理器和从处理器之间进行消息通信。系统包括主处理器、从处理器和共享内存,其中:所述主处理器用于在共享内存中动态更新发送缓冲区和接收缓冲区,并利用所述发送缓冲区或所述接收缓冲区与所述从处理器进行消息通信;所述从处理器用于利用所述发送缓冲区或所述接收缓冲区与所述主处理器进行消息通信。本实施例实现了对共享存储资源的更有效利用。

【技术实现步骤摘要】

本专利技术实施例涉及通信
,尤其涉及一种通信处理器间消息通信方法和系 统。
技术介绍
在共享存储器系统中,多个处理器通过对共享存储器的访问来交换信息。当共享 存储器系统为基于非均勻存储器访问(Non Uniform Memory Access ;以下简称NUMA)的系 统时,各个处理器对共享存储器的访问效率及访问功能各不相同。其中,在NUMA系统中,邮 箱通讯技术为处理器间交换信息的一种典型方法。现有的邮箱通讯技术中,在共享存储器中两个方向的数据通道上分别设置环形数 据队列和数据索引队列,其中,每个环形数据队列由N个长度为M的数据项构成,通过读指 针和写指针来控制对环形数据队列的循环读写,每个数据索引队列用于存放环形数据队列 中某个数据包的指针。作为发送方的处理器直接从数据写指针所指位置开始填写发送数 据,然后更新数据写指针,并将发送数据的首地址写入数据索引队列中写指针所指的存储 单元中,然后更新索引写指针,使其指向下一个存储单元。作为接收方的处理器则根据数据 索引队列的读指针和写指针来计算待接收的数据包的个数,从索引读指针所指的存储单元 开始逐个读取各个数据包的首地址,然后根据该地址接收数据,并更新索引读指针和数据 读指针。现有技术中共享存储器系统在两个方向上的环形数据队列均占据固定大小的共 享存储空间,对共享存储资源的利用率较低。
技术实现思路
本专利技术实施例提供一种通信处理器间消息通信方法和系统,实现对共享存储资源 的更有效利用。本专利技术实施例提供一种通信处理器间消息通信方法,包括由主处理器在共享内存中动态更新发送缓冲区和接收缓冲区;利用所述发送缓冲区或所述接收缓冲区在所述主处理器和从处理器之间进行消息ifi^[曰o本专利技术实施例提供一种通信处理器间消息通信系统,包括主处理器、从处理器和 共享内存,其中所述主处理器用于在共享内存中动态更新发送缓冲区和接收缓冲区,并利用所述 发送缓冲区或所述接收缓冲区与所述从处理器进行消息通信;所述从处理器用于利用所述发送缓冲区或所述接收缓冲区与所述主处理器进行 消息通信。本专利技术实施例的通信处理器间消息通信方法和系统,通过主处理器在共享内存中 动态更新发送缓冲区和接收缓冲区,主处理器利用发送缓冲区或接收缓冲区与处理器进行消息通信,从处理器利用发送缓冲区或接收缓冲区与处理器进行消息通信;本实施例实现 了对共享存储资源的更有效利用。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。图1为本专利技术通信处理器间消息通信方法实施例一的流程示意图;图2为本专利技术通信处理器间消息通信方法实施例二的流程示意图;图3为本专利技术通信处理器间消息通信方法实施例二中主从处理器的通信示意图;图4为本专利技术通信处理器间消息通信方法实施例三的流程示意图;图5为本专利技术通信处理器间消息通信方法实施例四的流程示意图;图6为本专利技术通信处理器间消息通信方法实施例五的流程示意图;图7为本专利技术通信处理器间消息通信方法实施例六的流程示意图;图8为本专利技术通信处理器间消息通信方法实施例七的流程示意图;图9为本专利技术通信处理器间消息通信系统实施例一的结构示意图;图10为本专利技术通信处理器间消息通信系统实施例二的结构示意图。具体实施例方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例 中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术通信处理器间消息通信方法实施例一的流程示意图,如图1所示,本 实施例提供了一种通信处理器间消息通信方法,可以包括如下步骤步骤101,由主处理器在共享内存中动态更新发送缓冲区和接收缓冲区;步骤102,利用所述发送缓冲区或所述接收缓冲区在所述主处理器和从处理器之 间进行消息通信。在本实施例中,通信处理器可以包括互相通信的主处理器和从处理器,其中,主处 理器可以由和共享存储器联系更紧密的处理器担任。作为一个示例,在NUMA系统中,由于 主处理器与共享存储器之间的联系更紧密,其对共享存储器的访问效果更高,因此主处理 器用于完成对共享存储器中共享内存的管理。本实施例中,主处理器用于在共享内存中动态更新用于主处理器和从处理器间消 息通信的发送缓冲区和接收缓冲区,此处的更新操作可以包括分配和释放操作,即主处理 器可以用于提供从共享内存中分配缓冲区和向共享内存中释放缓冲区的操作,并利用分配 的接收缓冲区或发送缓冲区与从处理器进行消息通信。而从处理器则不承担缓冲区分配和 释放,其只利用分配的发送缓冲区或接收缓冲区与主处理器进行消息通信。本实施例中,接收和发送相对于主处理器而言,接收为从处理器向主处理器的消息传递,发送为主处理器向从处理器的消息传递,后续不再赘述。本专利技术实施例提供了一种通信处理器间消息通信方法,通过主处理器在共享内存 中动态更新发送缓冲区和接收缓冲区,主处理器利用发送缓冲区或接收缓冲区与处理器进 行消息通信,从处理器利用发送缓冲区或接收缓冲区与处理器进行消息通信;本实施例中 接收缓冲区和发送缓冲区均由主处理器从同一个共享内存中动态分配,使用完后再由主处 理器动态释放到共享内存中,从而使得共享存储资源得到了重复利用,相比于现有技术更 有效地利用了共享存储资源。图2为本专利技术通信处理器间消息通信方法实施例二的流程示意图,如图2所示, 本实施例提供了一种通信处理器间消息通信方法,本实施例从从处理器向主处理器发送消 息,主处理器接收消息的角度来说明,具体可以包括如下步骤步骤201,从处理器根据消息的数据量计算所需的接收缓冲区数量n,并从接收缓 冲区索引表获取n个缓冲区索引单元(Buffer Index Unit ;以下简称BIU)。其中,主处理器和从处理器的关系可参见图3,图3为本专利技术通信处理器间消息通 信方法实施例二中主从处理器的通信示意图,如图3所示,本实施例中的共享内存可以具 体为图3中所示的共享内存池。本实施例中的共享内存为从共享存储空间划分出来的用于 动态分配内存块的区域,在需要使用共享内存块时,主处理器可以从共享内存中分配获取 到空闲内存块,在内存块使用完毕之后,主处理器再将该内存块释放到共享内存池中。如图 3所示,在主从处理器的接收和发送两个方向上各有一个缓冲区索引表,即接收缓冲区索引 表和发送缓冲区索引表。在本实施例中,接收缓冲区索引表和发送缓冲区索引表均由一组 BIU构成,每个BIU包含对应的缓冲区的描述信息,本实施例中的描述信息包括缓冲区指针 (Buffer Pointer ;以下简称:BP)、有效数据长度(Valid Data Length ;以下简称VDL)、控 制域(Control Field ;以下简称:CF)和逻辑通道号(Logic Channel Number ;以下简称 LCN)。其中,一条消息所包含的数据可以保存在一个缓冲区内,也可以本文档来自技高网...

【技术保护点】
一种通信处理器间消息通信方法,其特征在于,包括:由主处理器在共享内存中动态更新发送缓冲区和接收缓冲区;利用所述发送缓冲区或所述接收缓冲区在所述主处理器和从处理器之间进行消息通信。

【技术特征摘要】

【专利技术属性】
技术研发人员:曹兴国
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1