CN101894092B - 多核cpu及其核间通信方法 - Google Patents

多核cpu及其核间通信方法 Download PDF

Info

Publication number
CN101894092B
CN101894092B CN2010102378810A CN201010237881A CN101894092B CN 101894092 B CN101894092 B CN 101894092B CN 2010102378810 A CN2010102378810 A CN 2010102378810A CN 201010237881 A CN201010237881 A CN 201010237881A CN 101894092 B CN101894092 B CN 101894092B
Authority
CN
China
Prior art keywords
message
nuclear
buffer memory
mac
loopback mouth
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
Application number
CN2010102378810A
Other languages
English (en)
Other versions
CN101894092A (zh
Inventor
高瑞昌
王琮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN2010102378810A priority Critical patent/CN101894092B/zh
Publication of CN101894092A publication Critical patent/CN101894092A/zh
Application granted granted Critical
Publication of CN101894092B publication Critical patent/CN101894092B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

多核CPU及其核间通信方法
技术领域
本发明涉及通信领域,尤其涉及一种多核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内部进行报文转发,转发性能高和可靠性高。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (9)

1.一种多核CPU的核间通信方法,其特征在于,所述多核CPU配置有介质访问控制MAC环回口,且所述MAC环回口的接收缓存为所有核的共享缓存,当作为报文发送方的源核需要将报文发送到作为报文接收方的目的核时,该方法包括:
所述源核将需要向所述目的核发送的报文发送到所述MAC环回口,所述MAC环回口经过环回后将所述报文存储到该MAC环回口的接收缓存;
所述MAC环回口对应的硬件转发引擎将所述报文在所述接收缓存中的存储地址发送给所述目的核;
所述目的核根据该存储地址从所述MAC环回口的接收缓存中读取报文。
2.如权利要求1所述的方法,其特征在于,所述源核将报文发送到所述MAC环回口,包括:
所述源核将报文的下一跳设置为所述MAC环回口。
3.如权利要求1所述的方法,其特征在于,所述MAC环回口对应的硬件转发引擎将所述报文在所述共享缓存中的存储地址发送给所述目的核,包括:
所述MAC环回口对应的硬件转发引擎获取所述报文在所述共享缓存中的存储地址,解析出所述报文中携带的目的核的标识信息,并根据解析出的目的核的标识信息将获取到的存储地址发送给相应的目的核。
4.如权利要求1所述的方法,其特征在于,在所述多核CPU初始化时,设置所述MAC环回口的接收缓存为共享缓存。
5.如权利要求1-4任一项所述的方法,其特征在于,所述目的核为一个或多个。
6.一种多核CPU,包括至少2个核,分别作为报文发送方的源核和作为报告接收方的目的核,其特征在于,所述多核CPU配置有介质访问控制MAC环回口,且所述MAC环回口的接收缓存为所有核的共享缓存,该MAC环回口还具有对应的硬件转发引擎,其中: 
作为报文发送方的源核,用于将需要向所述目的核发送的报文发送到所述MAC环回口;
所述MAC环回口,用于经过环回后将所述报文存储到该MAC环回口的接收缓存;
所述硬件转发引擎,用于将所述报文在所述MAC环回口的接收缓存中的存储地址发送给作为报文接收方的目的核;
所述目的核,用于根据接收到的存储地址从所述MAC环回口的接收缓存中读取报文。
7.如权利要求6所述的多核CPU,其特征在于,所述源核具体用于:将报文的下一跳设置为所述MAC环回口。
8.如权利要求6所述的多核CPU,其特征在于,所述硬件转发引擎具体用于:获取所述报文在所述MAC环回口的接收缓存中的存储地址,并根据解析出的目的核的标识信息将获取到的存储地址发送给相应的目的核。
9.如权利要求6-8任一项所述的多核CPU,其特征在于,所述目的核为多个;
所述硬件转发引擎具体用于:将所述报文在所述MAC环回口的接收缓存中的存储地址分别发送给所述多个目的核;
所述多个目的核具体用于:分别根据接收到的存储地址从所述MAC环回口的接收缓存中读取报文。 
CN2010102378810A 2010-07-28 2010-07-28 多核cpu及其核间通信方法 Active CN101894092B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102378810A CN101894092B (zh) 2010-07-28 2010-07-28 多核cpu及其核间通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102378810A CN101894092B (zh) 2010-07-28 2010-07-28 多核cpu及其核间通信方法

Publications (2)

Publication Number Publication Date
CN101894092A CN101894092A (zh) 2010-11-24
CN101894092B true CN101894092B (zh) 2012-09-26

Family

ID=43103284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102378810A Active CN101894092B (zh) 2010-07-28 2010-07-28 多核cpu及其核间通信方法

Country Status (1)

Country Link
CN (1) CN101894092B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227243A1 (en) * 2012-02-23 2013-08-29 Freescale Semiconductor, Inc Inter-partition communication in multi-core processor
CN104506331B (zh) * 2014-12-22 2017-09-29 迈普通信技术股份有限公司 一种组播报文传输方法及多核网络设备
CN104699654B (zh) * 2015-03-02 2017-10-03 福州瑞芯微电子股份有限公司 一种基于chi片内互联总线与qpi片间互联总线互联适配系统和方法
CN107634916B (zh) * 2016-07-19 2020-11-03 大唐移动通信设备有限公司 一种数据通信方法和装置
CN107659515A (zh) * 2017-09-29 2018-02-02 曙光信息产业(北京)有限公司 报文处理方法、装置、报文处理芯片及服务器
CN109150724B (zh) * 2018-07-02 2021-06-29 新华三信息技术有限公司 一种通信方法和网卡
CN111427814B (zh) * 2020-03-05 2021-12-07 深圳震有科技股份有限公司 一种基于amp系统的核间通讯方法、终端及存储介质
CN111427815A (zh) * 2020-03-05 2020-07-17 深圳震有科技股份有限公司 一种基于spi接口的核间通讯方法、终端及存储介质
CN111427813A (zh) * 2020-03-05 2020-07-17 深圳震有科技股份有限公司 一种基于串口的核间通讯方法、终端及存储介质
CN113204438B (zh) * 2021-03-24 2023-08-01 深圳震有科技股份有限公司 一种amp系统核间通讯方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1904873A (zh) * 2005-07-28 2007-01-31 大唐移动通信设备有限公司 嵌入式实时操作系统中多核处理器的核间通信方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2852247B2 (ja) * 1996-06-19 1999-01-27 甲府日本電気株式会社 共有メモリ型マルチプロセッサシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1904873A (zh) * 2005-07-28 2007-01-31 大唐移动通信设备有限公司 嵌入式实时操作系统中多核处理器的核间通信方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开平10-3461A 1998.01.06

Also Published As

Publication number Publication date
CN101894092A (zh) 2010-11-24

Similar Documents

Publication Publication Date Title
CN101894092B (zh) 多核cpu及其核间通信方法
CN101616083A (zh) 一种报文转发方法和装置
US20090060009A1 (en) Aggregate data frame generation
CN109587732B (zh) 一种服务质量流的传输方法及装置
EP3489836B1 (en) Data processing method and system, peripheral component interconnect express device and host
JP7046983B2 (ja) パケット伝送方法及び装置
CN104754521A (zh) 一种报文转发方法、无线接入点、无线控制器和系统
CN109286564B (zh) 一种报文转发方法及装置
CN109934314A (zh) 一种电力物联网用电子标签的数据读取方法及系统
CN110830386B (zh) 报文保序的方法、装置和系统
CN112422485B (zh) 一种传输控制协议的通信方法及装置
CN111404842A (zh) 数据传输方法、装置及计算机存储介质
CN114201311A (zh) 数据处理方法及装置
CN112188562B (zh) 中继基站的多播调度方法和装置、存储介质及电子装置
US7457635B2 (en) Modem sharing device of PDA phone and method thereof
CN105323729B (zh) 一种短信发送方法及装置
CN100490379C (zh) 非实时局域网广播通讯方法
CN106209666A (zh) 一种基于负载均衡器的链路复用方法及系统
CN108880738B (zh) 一种信息处理方法及装置
CN110737627A (zh) 一种数据处理方法、装置及存储介质
CN111679918A (zh) 一种消息传输方法及装置
KR100541756B1 (ko) 무선통신 시스템에서 대용량 데이터 전송방법
CN115379400B (zh) 群组短信回执的方法及装置
CN102255789B (zh) 一种消息路由的方法及中间网元
CN101154206B (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
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.

CP03 Change of name, title or address