首页> 中国专利> 一种多核系统中的核间通信方法和一种多核系统

一种多核系统中的核间通信方法和一种多核系统

摘要

本发明公开了一种多核系统中的核间通信方法,包括:对主控板和业务板上的所有参与核间通信的核进行统一编号;主控板或业务板上的任意当前核在需要发送核间消息时,首先由该当前核中的业务模块发送携带目标核编号的核间消息到该当前核的驱动,然后由驱动根据所述目标核编号将核间消息直接发送给目标核。本发明还公开了一种多核系统。本发明的技术方案提高了多核系统的核间通信效率,且较易实现。

著录项

  • 公开/公告号CN101262501A

    专利类型发明专利

  • 公开/公告日2008-09-10

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN200810104675.5

  • 发明设计人 邹旭东;张雪锋;胡鹏飞;常向青;

    申请日2008-04-23

  • 分类号H04L29/08(20060101);H04L12/58(20060101);G06F9/46(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人宋志强;麻海明

  • 地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

  • 入库时间 2023-12-17 20:45:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-22

    专利权的转移 IPC(主分类):H04L29/08 专利号:ZL2008101046755 登记生效日:20230804 变更事项:专利权人 变更前权利人:新华三技术有限公司 变更后权利人:北京紫光通信科技集团有限公司 变更事项:地址 变更前权利人:310052 浙江省杭州市滨江区长河路466号 变更后权利人:100088 北京市海淀区知春路7号致真大厦B座24层

    专利申请权、专利权的转移

  • 2017-05-10

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20080423

    专利权人的姓名或者名称、地址的变更

  • 2011-04-20

    授权

    授权

  • 2008-12-17

    实质审查的生效

    实质审查的生效

  • 2008-09-10

    公开

    公开

说明书

技术领域

本发明涉及分布式软件架构中的多核处理技术领域,尤指一种多核系统中的核间通信方法和一种多核系统。

背景技术

现有的两种软件系统架构分别是集中式软件架构和分布式软件架构。其中,传统的集中式软件架构的特点是使用单一主CPU,因此具有集中管理、结构简单等优点,但由于使用单一主CPU,使得主CPU非常繁忙,即使使用多核的主CPU,系统的整体性能仍受到限制。为此发展了分布式软件架构,其特点是适应高速网络报文转发的要求,将对性能处理要求极高的数据转发独立出来,用分布式的业务板实现。

图1为现有的分布式软件架构的多核系统的组成示意图。如图1所示,分布式的软件架构的多核系统包括至少一个主控板和一个以上的业务板,图1中只画出了一个主控板和一个业务板作为示意。其中,主控板可以包括多个控制核,在图1中只画出了主控板的一个控制核作为示意;每个业务板也可以包括多个控制核,图1中也只示意性地画出了一个控制核,并且业务板的每个控制核可与多个数据核通信。主控板的控制核包括:控制核业务模块1、驱动模块1和主控板代理模块;业务板的控制核包括:控制核业务模块2和驱动模块2;业务板的数据核包括:数据核业务模块和驱动模块3。

在图1中,业务板的数据核业务模块与本板内的控制核业务模块2通信时通过核间接口发送核间消息,具体为:数据核业务模块首先将核间消息发送到适配层的驱动模块3,然后再经由驱动模块2将核间消息发送到控制核业务模块2;业务板的数据核业务模块与主控板的控制核业务模块1通信时,首先向本板的控制核发送核间消息,然后由本板的控制核使用进程间通信(IPC,Inter Process Communication)接口将核间消息发送给主控板的控制核,具体为:数据核业务模块首先将配置有IPC信息的核间消息发送到适配层的驱动模块3,然后再经由驱动模块2将核间消息发送到控制核业务模块2;控制核业务模块2分析所接收核间消息的IPC信息,调用适配层的驱动模块2将所述核间消息通过IPC通道发送给主控板上的作为IPC接口的主控板代理模块;主控板代理模块再经由驱动模块1将核间消息发送给控制核业务模块1。

但是,图1所示的多核系统中的核间通信方式存在如下缺点:

1、业务板上的数据核业务模块与主控板上的控制核业务模块通信时,发核间消息给本板的控制核业务模块,再由本板的控制核业务模块通过IPC接口发送给主控板的控制核业务模块,因此通信效率较低。

2、业务板的数据核业务模块对于板内通信和板间通信采用不同的两个流程,即板间通信使用核间通信接口,板间通信通过控制核业务模块使用IPC接口,实现起来复杂,开发难度大。

综上所述现有的分布式软件架构中的核间通信方式通信效率低且实现复杂。

发明内容

本发明提供了一种多核系统中的核间通信方法,该方法提高了多核系统中的核间通信的效率,且较易实现。

本发明还提供了一种多核系统,该系统提高了核间通信的效率,且较易实现。

为达到上述目标,本发明的技术方案具体是这样实现的:

本发明公开了一种多核系统中的核间通信方法,该方法包括:

对主控板和业务板上的包括控制核和数据核的所有参与核间通信的核进行统一编号;

主控板或业务板上的任意当前核在需要发送核间消息时,首先由该当前核中的业务模块发送携带目标核编号的核间消息到该当前核的驱动,然后由驱动根据所述目标核编号将核间消息直接发送给目标核。

本发明还公开了一种多核系统,包括一个主控板和一个以上的业务板,所述主控板和业务板上的包括控制核和数据核的所有参与核间通信的核被统一编号,所述主控板或业务板上的任意当前核包括:

业务模块,用于向自身所在当前核的驱动模块发送携带目标核编号的核间消息;

驱动模块,用于接收来自所述业务模块的核间消息,并根据其中携带的目标核编号将所述核间消息直接发送给目标核。

由上述技术方案可见,本发明这种对主控板和业务板上的所有参与核间通信的核进行统一编号,主控板或业务板上的任意当前核在需要发送核间消息时,首先由该当前核中的业务模块发送携带目标核编号的核间消息到该当前核的驱动,然后由驱动根据所述目标核编号将核间消息直接发送给目标核的技术方案,由于各核的驱动可以根据目标核的编号直接发送核间消息,因此使得业务板上的数据核可以直接向主控板的控制核发送消息,而不需要本板的控制核转发,因此提高了核间通信的效率,并且对于数据核的业务模块来说,发送消息到本板控制核与发送消息到主控板的控制核的流程相同,因此较易实现。

附图说明

图1为现有的分布式软件架构的多核系统的组成示意图;

图2是本发明实施例一种多核系统中的核间通信方法的流程图;

图3是本发明实施例一种多核系统的组成结构框图;

图4是本发明实施例多核系统中的两个业务板上的数据核进行通信的示意图。

具体实施方式

为使本发明的目标、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。

图2是本发明实施例一种多核系统中的核间通信方法的流程图。如图2所示,该方法包括以下步骤:

步骤201,对主控板和业务板上的包括控制核和数据核的所有参与核间通信的核进行统一编号。

步骤202,主控板或业务板上的任意当前核在需要发送核间消息时,首先由该当前核中的业务模块发送携带目标核编号的核间消息到该当前核的驱动,然后由驱动根据所述目标核编号将核间消息直接发送给目标核。

根据图2所示实施例中的技术方案,业务板的数据核在向主控板的控制核发送核间消息时,其驱动根据目标核的编号直接发送核间消息给目标核,而不再需要本业务板的控制核转发,因此提高了核间通信的效率,并且对于数据核业务模块来说,发送消息到本板控制核与发送消息到主控板的控制核的流程相同,因此较易实现。

在图2所示的实施例中,数据平面的数据核业务模块发送给控制核的核间消息有两种:一种是上送控制平面处理的消息,需要发送到主控板的控制核处理;另一种是只需要在本地的控制核处理的消息,如通知MAC地址表项刷新的消息等。这两种核间消息最终发送到本板的控制核还是主控板的控制核,由驱动适配层在驱动提供的核间消息发送函数中完成处理。如果驱动根据消息中携带的目标核编号判断出目标核是本业务板的控制核,则直接在本地调用核间消息的接收函数;如果驱动根据消息中携带的目标核编号判断出目标核是主控板的控制核时,驱动需要将核间消息通过IPC通道发送到主控板上,然后由主控板上的控制核调用核间消息接收函数。这一过程是透明的,对应用模块来说感觉不到分布式的存在,用的只是集中式的简单处理流程。

在图2所示的实施例中,当业务板数据核发送给主控板控制核的核间消息需要通过IPC通道传送时,还需要进行相应的消息格式转换,即数据核的驱动通过IPC接口将核间消息发送到主控板上之前进一步将所述核间消息的格式转换成适于在IPC通道中传送的IPC格式;相应地,在所述主控板上的目标控制核的驱动通过调用核间消息接收函数接收所述核间消息之前,所述主控板上的作为IPC通道接口的主控板代理将IPC格式的消息转换成核间消息的格式。

在图2所示的实施例中,当业务板数据核发送的所述核间消息是发送给其它业务板的数据核时,当前业务板数据核的驱动将核间消息发送到目标数据核所在的业务板上,然后由所述目标数据核的驱动通过调用核间消息接收函数接收所述核间消息。

在图2所示的实施例中,由于业务板的数据核业务模块在发送核间消息时需要在其中携带目标核的编号,因此业务板上还需要提供获取全局进行统一编号的所有核的编号信息的接口。

在图2所示的实施例中,数据核业务模块发送的核间消息中还可以携带用户数据的长度和起始地址指针信息,此时数据结构复杂的用户数据需要存放在连续的内存中。这样,只需要通过长度与起始地址指针信息就可以完成用户数据的跨板复制,而驱动无需去解析业务模块的数据结构,对消息的跨板发送和本地发送使用统一流程实现。

接下来给出本发明实施例中的分布式软件架构中的多核系统的组成结构。本发明实施例中所述的多核系统包括一个主控板和一个以上的业务板,所述主控板和业务板上的包括控制核和数据核的所有核被统一编号,所述主控板或业务板上的任意当前核包括:业务模块,用于向自身所在当前核的驱动模块发送携带目标核编号的核间消息;驱动模块,用于接收来自所述业务模块的核间消息,并根据其中携带的目标核编号将所述核间消息直接发送给目标核。

图3是本发明实施例一种多核系统的组成结构框图。本实施例中多核系统包括一个主控板和一个以上的业务板,为简洁起见,在图3中也只是示意性地画出了一个主控板310和一个业务板320。在本实施例中主控板和业务板上的包括控制核和数据核的所有参与核间通信的核被统一编号。

在图3中,业务板320的数据核331包括:数据核业务模块332和驱动模块333,其中:

数据核业务模块332,用于向自身所在数据核331的驱动模块333发送携带目标核编号的核间消息;

驱动模块333,用于接收来自数据核业务模块332的核间消息,并根据其中携带的目标核编号将所述核间消息直接发送给目标核。

在图3中,驱动模块333,在所述目标核编号指示的是当前业务板320上的控制核321时,用于通过在本地调用核间消息的接收函数,将核间消息发送给所述当前业务板上的目标控制核321,在图3中用虚线箭头表示;在所述目标核编号指示的是主控板310上的控制核311时,用于通过进程间通信IPC接口将核间消息发送到主控板上,从而使得主控板上的目标控制核311的驱动模块313通过调用核间消息接收函数将所述核间消息发送到控制核业务模块312,在图3中用点划线箭头表示;在所述目标核编号指示的是其它业务板上的数据核时,用于将核间消息发送到目标数据核所在的业务板上,从而使得所述目标数据核的驱动通过调用核间消息接收函数接收所述核间消息,在图3中未画出。

在图3中,驱动模块333,在通过IPC接口将核间消息发送到主控板上之前,进一步用于所述核间消息的格式转换成适于在IPC通道中传送的IPC格式;所述主控板310进一步包括:主控板代理模块314,用于将来自IPC通道的IPC格式的消息转换成核间消息格式以供核间消息接收函数调用。

在图3中,数据核业务模块332,用于在所发送的核间消息中进一步携带用户数据的长度与起始地址指针信息,其中,所述用户数据在内存中连续存放。

在图3中,业务板320的控制核321包括:控制核业务模块322和驱动模块323,其中:

数据核业务模块322,用于向自身所在控制核321的驱动模块323发送携带目标核编号的核间消息;

驱动模块323,用于接收来自控制核业务模块322的核间消息,并根据其中携带的目标核编号将所述核间消息直接发送给目标核。在图3中用两点一划线表示驱动模块323通过IPC通道向主控板310上的控制核311发送的核间消息。

图3中的控制核321和数据核331还分别包括:核编号获取模块(在图3中没有画出),用于获取所述统一编号的所有核的编号信息发送给自身所在核的业务模块。

在图3中,主控板310、业务板320以及没有图示出的其它业务板可以位于同一个设备中,或者分布在联网的两个以上设备中。

图4是本发明实施例多核系统中的两个业务板上的数据核进行通信的示意图。在本实施例中多核系统中的主控板和业务板上的包括控制核和数据核的所有参与核间通信的核被统一编号。如图4所示,在本实施例中只是示意性地画出了多核系统中的两个业务板410和420,并且只画出了这两个业务板上相互进行通信的数据核411和421。其中,数据核411包括:数据核业务模块412和驱动模块413;数据核421包括:数据核业务模块422和驱动模块423。

在图4中,当数据核411需要向数据核421发送核间消息时,首先由数据核业务模块412向驱动模块413发送携带目标数据核421的编号的核间消息;驱动模块413接收来自数据核业务模块412的核间消息后,根据其中携带的目标数据核421核编号将所述核间消息直接发送到目标数据核421所在的业务板420上,然后由目标数据核421的驱动模块423通过调用核间消息接收函数接收所述核间消息,并发送给数据核业务模块422。

同样,当数据核421需要向数据核411发送核间消息时,首先由数据核业务模块422向驱动模块423发送携带目标数据核411的编号的核间消息;驱动模块423接收来自数据核业务模块422的核间消息后,根据其中携带的目标数据核411核编号将所述核间消息直接发送到目标数据核411所在的业务板410上,然后由目标数据核411的驱动模块413通过调用核间消息接收函数接收所述核间消息,并发送给数据核业务模块412。

在图3和图4所示的实施例中,以业务板上的控制核和数据核与主控板板上的控制核进行核间通信,以及两个业务板上的数据核进行核间通信为例,对本发明多核系统中的核间通信方式进行了说明,而多核系统中的其它任意核发送核间消息的过程与图3和图4中所示的发送核间消息的过程相同,这里不再一一详述。

在本发明的上述实施例中,对数据核业务模块屏蔽了跨板IPC发送的细节,将原来板内通信和板间通信的两套流程整合为一套流程,通过驱动的适配,透明实现了多核系统跨板的核间通信,将原来的多板多核虚拟为单板多核,即各板的各核之间可以自由地通信,多块板上的多个CPU就像一个CPU的多个核一样。此外,业务板的数据核可以直接与其它板上的核通信,无需再由本板的控制核中转,提高了通信效率。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号