首页> 中国专利> 多核CPU及其核间通信方法

多核CPU及其核间通信方法

摘要

本发明公开了一种多核CPU的核间通信方法,所述多核CPU配置有介质访问控制MAC环回口,且所述MAC环回口的接收缓存为所有核的共享缓存,当作为报文发送方的源核需要将报文发送到作为报文接收方的目的核时,该方法包括:所述源核将需要向所述目的核发送的报文发送到所述MAC环回口,所述MAC环回口经过环回后将所述报文存储到该MAC环回口的接收缓存;所述MAC环回口对应的硬件转发引擎将所述报文在所述接收缓存中的存储地址发送给所述目的核;所述目的核根据该存储地址从所述MAC环回口的接收缓存中读取报文。本发明实现了在多核CPU内部进行核间报文转发,提高核间通信效率和可靠性。

著录项

  • 公开/公告号CN101894092A

    专利类型发明专利

  • 公开/公告日2010-11-24

    原文格式PDF

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

    申请/专利号CN201010237881.0

  • 发明设计人 高瑞昌;王琮;

    申请日2010-07-28

  • 分类号G06F15/163(20060101);

  • 代理机构11297 北京鑫媛睿博知识产权代理有限公司;

  • 代理人龚家骅

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

  • 入库时间 2023-12-18 01:09:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-24

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

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

  • 2012-09-26

    授权

    授权

  • 2011-01-26

    实质审查的生效 IPC(主分类):G06F15/163 申请日:20100728

    实质审查的生效

  • 2010-11-24

    公开

    公开

说明书

技术领域

本发明涉及通信领域,尤其涉及一种多核CPU及其核间通信方法。

背景技术

越来越多的网络接入用户以及越来越多样化的业务需求使得各种网络设备必须提供足够的吞吐量;而另一方面,由于网络应用不断更新和变化,新业务不断涌现,又要求服务提供商能快速地满足用户的需求,增加盈利模式,从而巩固和提升竞争力。在这样的背景下,传统的处理器越来越显得力不从心,现在越来越来的设备采用了强大的多核CPU来提高产品的性能,多核CPU当前广泛应用于PC和嵌入式设备。因此,如何进行核间通信成为多核CPU设备必须解决的问题。

现有技术提供的核间通信技术,大部分是通过核间直接相连的物理线路通信,但是通过这种直接相连的物理线路通信时每次发送的消息大小最多几十个字节,例如64字节等,不能适应需要大量信息快速交换的核间通信。

现有技术中还有一种核间通信技术,如图1所示,以CPU中的核1和核2通信为例,核1发送的报文通过MAC(Media Access Control,介质访问控制)1口发送到CPU之外的交换芯片,由该交换芯片根据报文的目的地址通过MAC2口向CPU中的核2发送。但是,这种方式下需要在CPU之外设置交换芯片,报文转发过程中占用MAC口多,意外导致通信失败的几率大。

发明内容

本发明提供了一种多核CPU及其核间通信的方法,以实现在多核CPU内部进行核间报文转发,提高核间通信效率和可靠性。

一种多核CPU的核间通信方法,所述多核CPU配置有介质访问控制MAC环回口,且所述MAC环回口的接收缓存为所有核的共享缓存,当作为报文发送方的源核需要将报文发送到作为报文接收方的目的核时,该方法包括:

所述源核将需要向所述目的核发送的报文发送到所述MAC环回口,所述MAC环回口经过环回后将所述报文存储到该MAC环回口的接收缓存;

所述MAC环回口对应的硬件转发引擎将所述报文在所述接收缓存中的存储地址发送给所述目的核;

所述目的核根据该存储地址从所述MAC环回口的接收缓存中读取报文。

所述源核将报文发送到所述MAC环回口,包括:

所述源核将报文的下一跳设置为所述MAC环回口。

所述MAC环回口对应的硬件转发引擎将所述报文在所述共享缓存中的存储地址发送给所述目的核,包括:

所述MAC环回口对应的硬件转发引擎获取所述报文在所述共享缓存中的存储地址,解析出所述报文中携带的目的核的标识信息,并根据解析出的目的核的标识信息将获取到的存储地址发送给相应的目的核。

在所述多核CPU初始化时,设置所述MAC环回口的接收缓存为共享缓存。

所述目的核为一个或多个。

一种多核CPU,包括至少2个核,所述多核CPU配置有介质访问控制MAC环回口,且所述MAC环回口的接收缓存为所有核的共享缓存,该MAC环回口还具有对应的硬件转发引擎,其中:

作为报文发送方的源核,用于当需要向目的核发送报文时,将需要向所述目的核发送的报文发送到所述MAC环回口;

所述MAC环回口,用于经过环回后将所述报文存储到该MAC环回口的接收缓存;

所述硬件转发引擎,用于将所述报文在所述MAC环回口的接收缓存中的存储地址发送给作为报文接收方的目的核;

所述目的核,用于根据接收到的存储地址从所述MAC环回口的接收缓存中读取报文。

所述源核具体用于:将报文的下一跳设置为所述MAC环回口。

所述硬件转发引擎具体用于:获取所述报文在所述MAC环回口的接收缓存中的存储地址,并根据解析出的目的核的标识信息将获取到的存储地址发送给相应的目的核。

还包括:

设置单元,用于在所述多核CPU初始化时将所述MAC环回口的接收缓存设置为共享缓存。

所述目的核为多个;

所述硬件转发引擎具体用于:将所述报文在所述MAC环回口的接收缓存中的存储地址分别发送给所述多个目的核;

所述多个目的核具体用于:分别根据接收到的存储地址从所述MAC环回口的接收缓存中读取报文。

与现有技术相比,本发明至少具有以下优点:

多核CPU配置MAC环回口,且MAC环回口对应的接收缓存为所有核的共享缓存,核间通信时的报文通过MAC环回口后存储到共享缓存,目的核根据报文转发引擎发送的报文在共享缓存的存储地址读取报文,实现在多核CPU内部进行报文转发,转发性能高和可靠性高。

附图说明

图1是现有技术中一种核间通信技术示意图;

图2是本发明提供的多核CPU的结构示意图;

图3是本发明提供的多核CPU的核间通信的方法的流程示意图。

具体实施方式

为了解决现有技术存在的上述问题,本发明实施例中,在多核CPU上配置MAC环回口,并将该MAC环回口的buffer(缓存)配置为多核CPU内各核的共享缓存。当多核CPU中的一个核向另一个核发送报文时,作为报文发送方的源核将携带目的核的标识信息(例如MAC地址)的报文向MAC环回口发送,经MAC环回口环回后存储到共享缓存,共享缓存的硬件转发引擎通知作为报文接收方的目的核从共享缓存内读取报文。

下面结合附图对本发明实施例进行详细描述。

如图2所示,多核CPU中包括核1、核2、核3、MAC环回口、以及与MAC环回口对应的共享缓存和硬件转发引擎。

其中,MAC环回口是预先配置的,多核CPU核间通信时源核发送的报文的下一跳均设置为MAC环回口。MAC环回口的特性是报文经过MAC环回口环回后由初始向CPU之外发送变为向CPU之内发送,并可将报文存入该MAC环回口的接收buffer。

通常,多核CPU的每一接口都配置有对应的buffer,包括发送buffer和接收buffer,分别用于缓存通过该接口发送和接收的报文。本发明实施例中,对于MAC环回口,其对应的接收buffer配置为多核的共享缓存,使多核CPU内的各核都能够从共享缓存内读取数据。该共享缓存可以由用户预先配置好,或者在多核CPU初始化时根据配置的命令将MAC环回口的接收buffer设置为多核的共享缓存。

多核CPU中接口的接收buffer通常对应有硬件转发引擎。本发明实施例中,预先对MAC环回口的接收buffer(即共享缓存)对应的硬件转发引擎进行配置,该硬件转发引擎根据配置可以实时获知共享缓存内存储了新的报文,并解析报文中的信息,根据报文接收方的标识信息(例如报文的目的MAC地址)向报文接收方发送报文在共享缓存内的存储地址,由报文接收方从共享缓存读取报文。

具体的,当多核CPU系统中作为报文发送方的源核(如图2中的核1)需要向作为报文接收方的目的核(如图2中的核2)发送报文时,本发明提供的多核CPU的核间通信的方法可如图3所示,包括以下步骤:

步骤301,源核将需要向目的核发送的报文发送给MAC环回口。

其中,报文携带有源核的MAC地址以及目的核的MAC地址。

需要说明的是,源核以及目的核均属于多核CPU系统中的核,并且目的核可以为单个,也可以为多个。当目的核为多个时,只要源核向MAC环回口发送的报文中携带多个目的核的MAC地址即可。

步骤302,MAC环回口的硬件转发引擎向目的核发送报文在该MAC环回口的共享缓存内的存储地址。

具体的,报文发送到MAC环回口后,根据MAC环回口的配置,出报文经过环回变为入报文,根据MAC环回口对入报文的处理机制将入报文存储到共享缓存。与共享缓存连接的硬件转发引擎获知有报文存储到共享缓存后,根据报文的目的核标识信息确定报文的目的核,并将报文在共享缓存内的存储地址向该目的核发送。其中报文的目的核标识信息可以但不限于报文的目的MAC地址。本发明实施例中可以使用包括MAC地址在内的标识信息区分不同核,硬件转发引擎据此识别不同的核。

硬件转发引擎内可预先存储各核的标识信息与核的对应关系、以及到达目的核的报文发送路径,在解析得到目的核的标识信息、以及报文在共享缓存内存储的地址后,硬件转发引擎可根据该标识信息获知其对应的目的核,并通过对应的路径向目的核发送报文在共享缓存内的存储地址。

步骤303,目的核根据接收到的共享缓存内的存储地址,从共享缓存读取报文。

目的核接收到硬件转发引擎发送的报文在共享缓存内的存储地址,根据该地址从共享缓存读取报文,实现与源核之间的通信。

通过以上描述可以看出,通过在多核CPU中配置MAC环回口,且MAC环回口对应的接收缓存为所有核的共享缓存,核间通信时,源和发送的报文通过MAC环回口后存储到共享缓存,目的核根据报文转发引擎发送的报文在共享缓存的存储地址从共享缓存读取报文,从而实现在多核CPU内部进行报文转发。又由于本发明实施例中不需要有外部交换芯片进行报文转发,因而与现有技术相比转发性能较高;另外,本发明实施例中的多核CPU间进行报文转发时,仅通过MAC环回口,与现有技术至少需要经过2个MAC口相比,减少了MAC口,因而可提高可靠性。

本发明提供一种多核CPU,包括至少2个核,分别作为报文发送方的源核和作为报文接收方的目的核,所述多核CPU配置有介质访问控制MAC环回口,且所述MAC环回口的接收缓存为所有核的共享缓存,该MAC环回口还具有对应的硬件转发引擎,其中:

作为报文发送方的源核,用于当需要向目的核发送报文时,将需要向所述目的核发送的报文发送到所述MAC环回口;

所述MAC环回口,用于经过环回后将所述报文存储到该MAC环回口的接收缓存;

所述硬件转发引擎,用于将所述报文在所述MAC环回口的接收缓存中的存储地址发送给作为报文接收方的目的核;

所述目的核,用于根据接收到的存储地址从所述MAC环回口的接收缓存中读取报文。

所述源核具体用于:将报文的下一跳设置为所述MAC环回口。

所述硬件转发引擎具体用于:获取所述报文在所述MAC环回口的接收缓存中的存储地址,并根据解析出的目的核的标识信息将获取到的存储地址发送给相应的目的核。

所述多核CPU还包括:

设置单元,用于在所述多核CPU初始化时将所述MAC环回口的接收缓存设置为共享缓存。

所述目的核可以为一个或多个,当所述目的核为多个时;

所述硬件转发引擎具体用于:将所述报文在所述MAC环回口的接收缓存中的存储地址分别发送给所述多个目的核;

所述多个目的核具体用于:分别根据接收到的存储地址从所述MAC环回口的接收缓存中读取报文。

本发明中,多核CPU配置MAC环回口,且MAC环回口对应的接收缓存为所有核的共享缓存,核间通信时的报文通过MAC环回口后存储到共享缓存,目的核根据报文转发引擎发送的报文在共享缓存的存储地址读取报文,实现在多核CPU内部进行报文转发,转发性能高和可靠性高。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号