CN114745325A - 一种基于PCIe总线的MAC层数据交换方法及*** - Google Patents

一种基于PCIe总线的MAC层数据交换方法及*** Download PDF

Info

Publication number
CN114745325A
CN114745325A CN202210312428.4A CN202210312428A CN114745325A CN 114745325 A CN114745325 A CN 114745325A CN 202210312428 A CN202210312428 A CN 202210312428A CN 114745325 A CN114745325 A CN 114745325A
Authority
CN
China
Prior art keywords
mac address
cpu
cpus
data
pcie
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
Application number
CN202210312428.4A
Other languages
English (en)
Other versions
CN114745325B (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.)
Hefei Edge Smart Core Technology Co ltd
Original Assignee
Hefei Edge Smart Core Technology 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 Hefei Edge Smart Core Technology Co ltd filed Critical Hefei Edge Smart Core Technology Co ltd
Priority to CN202210312428.4A priority Critical patent/CN114745325B/zh
Priority claimed from CN202210312428.4A external-priority patent/CN114745325B/zh
Publication of CN114745325A publication Critical patent/CN114745325A/zh
Application granted granted Critical
Publication of CN114745325B publication Critical patent/CN114745325B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种基于PCIe总线的MAC层数据交换方法及***,基于PCIe的数据处理芯片,支持多路CPU之间通过PCIe进行互联,通过建立MAC路由表,并建立MAC与内存的对应关系,通过查询对应的MAC路由表,实现CPU之间的DMA数据传输功能,原生支持跨CPU的DMA传输,基于PCIe的传输,可以保证数据的传输可靠性,不需要进行差错校验。

Description

一种基于PCIe总线的MAC层数据交换方法及***
技术领域
本发明涉及通信技术领域,具体涉及一种基于PCIe总线的MAC层数据交换方法及***。
背景技术
目前MAC层的数据交换都是基于以太网实现的,通过二层交换机进行转发,数据延时高,不保证数据的可靠传输,需要进行差错校验。本发明基于PCIe的数据处理芯片,支持多路CPU之间通过PCIe进行互联,通过建立MAC路由表,并建立MAC与内存的对应关系,通过查询对应的MAC路由表,实现CPU之间的DMA数据传输功能,原生支持跨CPU的DMA传输,基于PCIe的传输,可以保证数据的传输可靠性,不需要进行差错校验。
发明内容
为此,本发明提供一种基于PCIe总线的MAC层数据交换方法及***,以解决现有MAC层的数据交换存在的数据延时高,不保证数据的可靠传输,需要进行差错校验的问题。
为了实现上述目的,本发明提供如下技术方案:
根据本发明实施例的第一方面,提出了一种基于PCIe总线的MAC层数据交换方法,多路CPU通过PCIe总线连接数据处理芯片,所述方法包括:
根据预设规则为每个CPU分配MAC地址;
读取数据处理芯片配置信息,获取当前运行在PCIe总线上的CPU个数,每个CPU根据所述CPU个数进行内存分配,每个CPU上均分配有与其他CPU一一对应的buffer,并建立CPU的MAC地址与对应buffer之间的映射关系;
当两个CPU之间进行数据交换时,通过查询MAC地址表获取目标MAC地址,根据所述目标MAC地址以及建立的MAC地址与buffer之间的映射关系,获取到与目标MAC地址对应的buffer,并实现CPU之间的DMA数据传输。
进一步地,根据预设规则为每个CPU分配MAC地址,具体包括:
根据PCIe插槽位置进行顺序编号,MAC地址的前24bit固定,MAC地址的后24bit根据PCIe插槽位置的顺序编号进行编码。
进一步地,每个CPU根据所述CPU个数进行内存分配,每个CPU上均分配有与其他CPU一一对应的buffer,具体包括:
每个CPU会取一块内存区域,并根据当前PCIe总线上的CPU的数量n,将这块内存区域分成n-1块,并且每块又分为发送区和接收区。
进一步地,通过查询MAC地址表获取目标MAC地址,具体包括:
每个CPU和数据处理芯片上都会维护一个MAC地址表,根据所述MAC地址表确定当前CPU的目标MAC地址是否在表中。
进一步地,根据所述目标MAC地址以及建立的MAC地址与buffer之间的映射关系,获取到与目标MAC地址对应的buffer,并实现CPU之间的DMA数据传输,具体包括:
发送方CPU根据所述MAC地址表判断目标MAC地址是否在线,若在线,则将数据拷贝到本地与目标MAC对应的内存块中,当数据处理芯片检测到此内存块中有数据,会中断通知接收方CPU的DMA从发送方CPU的内存块中搬数据,完成传输。
根据本发明实施例的第二方面,提出了一种基于PCIe总线的MAC层数据交换***,多路CPU通过PCIe总线连接数据处理芯片,所述***包括:
MAC地址分配模块,用于根据预设规则为每个CPU分配MAC地址;
映射关系构建模块,用于读取数据处理芯片配置信息,获取当前运行在PCIe总线上的CPU个数,每个CPU根据所述CPU个数进行内存分配,每个CPU上均分配有与其他CPU一一对应的buffer,并建立CPU的MAC地址与对应buffer之间的映射关系;
数据交换模块,用于当两个CPU之间进行数据交换时,通过查询MAC地址表获取目标MAC地址,根据所述目标MAC地址以及建立的MAC地址与buffer之间的映射关系,获取到与目标MAC地址对应的buffer,并实现CPU之间的DMA数据传输。
本发明具有如下优点:
本发明提出的一种基于PCIe总线的MAC层数据交换方法及***,在PCIe上实现MAC层的数据传输,通过加入数据处理芯片***,配合CPU的MAC地址映射表,建立CPU之间的内存映射关系,实现基于MAC的通过DMA跨CPU传输数据操作,本发明原生支持跨CPU的DMA数据传输,可以保证数据的可靠传输,并可以为后续在PCIe支持TCP/IP协议栈做前期准备,大大降低组建小型服务器集群的成本。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
图1为本发明实施例1提供的一种基于PCIe总线的MAC层数据交换方法的流程示意图;
图2为本发明实施例1提供的一种基于PCIe总线的MAC层数据交换方法的原理框架示意图;
图3为本发明实施例1提供的一种基于PCIe总线的MAC层数据交换方法的具体实施流程示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1、图2和图3所示,本实施例提出了一种基于PCIe总线的MAC层数据交换方法,多路CPU通过PCIe总线连接数据处理芯片,该方法包括:
S100、根据预设规则为每个CPU分配MAC地址。
根据PCIe插槽位置进行顺序编号,MAC地址的前24bit固定,MAC地址的后24bit根据PCIe插槽位置的顺序编号进行编码。
S200、读取数据处理芯片配置信息,获取当前运行在PCIe总线上的CPU个数,每个CPU根据CPU个数进行内存分配,每个CPU上均分配有与其他CPU一一对应的buffer,并建立CPU的MAC地址与对应buffer之间的映射关系。
每个CPU会取一块内存区域,并根据当前PCIe总线上的CPU的数量n,将这块内存区域分成n-1块,并且每块又分为发送区和接收区。
S300、当两个CPU之间进行数据交换时,通过查询MAC地址表获取目标MAC地址,根据目标MAC地址以及建立的MAC地址与buffer之间的映射关系,获取到与目标MAC地址对应的buffer,并实现CPU之间的DMA数据传输。
每个CPU和数据处理芯片上都会维护一个MAC地址表,根据MAC地址表确定当前CPU的目标MAC地址是否在表中,以确定数据是转发还是丢弃。
数据处理芯片会把当前PCIe总线上的所有CPU上用来收发数据的内存区域统一管理,以方便通过数据处理芯片可以找到每个CPU上的内存地址。
当CPU1往CPU2发送数据,首先在CPU1上的MAC地址表上判断对应的MAC是否在线,如果在线,则把数据拷贝到CPU1上目标MAC对应的内存块上,数据处理芯片检测到这块内存区域有数据,会中断通知CPU2的DMA从CPU1的内存块中搬数据。反之,从CPU2往CPU1发数据,则数据处理芯片中断通知CPU1,CPU1的DMA从CPU2的内存搬数据。都是接收方的DMA从发送方搬数据。
中断是外部设备向处理器发起的请求事件。接收端的CPU不知道什么时候有数据过来,当有数据过来时,数据处理芯片会产生一个中断,通知接收端的CPU,接收端的CPU收到中断,知道有数据过来,然后用DMA去对应的区域去搬数据,具体从哪个CPU的哪块内存搬数据,这些都是通过数据处理芯片来管理。
实施例2
与上述实施例1相对应的,本实施例提出了一种基于PCIe总线的MAC层数据交换***,多路CPU通过PCIe总线连接数据处理芯片,该***包括:
MAC地址分配模块,用于根据预设规则为每个CPU分配MAC地址;
映射关系构建模块,用于读取数据处理芯片配置信息,获取当前运行在PCIe总线上的CPU个数,每个CPU根据CPU个数进行内存分配,每个CPU上均分配有与其他CPU一一对应的buffer,并建立CPU的MAC地址与对应buffer之间的映射关系;
数据交换模块,用于当两个CPU之间进行数据交换时,通过查询MAC地址表获取目标MAC地址,根据目标MAC地址以及建立的MAC地址与buffer之间的映射关系,获取到与目标MAC地址对应的buffer,并实现CPU之间的DMA数据传输。
本发明实施例提供的一种基于PCIe总线的MAC层数据交换***中各部件所执行的功能均已在上述实施例1中做了详细介绍,因此这里不做过多赘述。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

Claims (6)

1.一种基于PCIe总线的MAC层数据交换方法,其特征在于,多路CPU通过PCIe总线连接数据处理芯片,所述方法包括:
根据预设规则为每个CPU分配MAC地址;
读取数据处理芯片配置信息,获取当前运行在PCIe总线上的CPU个数,每个CPU根据所述CPU个数进行内存分配,每个CPU上均分配有与其他CPU一一对应的buffer,并建立CPU的MAC地址与对应buffer之间的映射关系;
当两个CPU之间进行数据交换时,通过查询MAC地址表获取目标MAC地址,根据所述目标MAC地址以及建立的MAC地址与buffer之间的映射关系,获取到与目标MAC地址对应的buffer,并实现CPU之间的DMA数据传输。
2.根据权利要求1所述的一种基于PCIe总线的MAC层数据交换方法,其特征在于,根据预设规则为每个CPU分配MAC地址,具体包括:
根据PCIe插槽位置进行顺序编号,MAC地址的前24bit固定,MAC地址的后24bit根据PCIe插槽位置的顺序编号进行编码。
3.根据权利要求1所述的一种基于PCIe总线的MAC层数据交换方法,其特征在于,每个CPU根据所述CPU个数进行内存分配,每个CPU上均分配有与其他CPU一一对应的buffer,具体包括:
每个CPU会取一块内存区域,并根据当前PCIe总线上的CPU的数量n,将这块内存区域分成n-1块,并且每块又分为发送区和接收区。
4.根据权利要求1所述的一种基于PCIe总线的MAC层数据交换方法,其特征在于,通过查询MAC地址表获取目标MAC地址,具体包括:
每个CPU和数据处理芯片上都会维护一个MAC地址表,根据所述MAC地址表确定当前CPU的目标MAC地址是否在表中。
5.根据权利要求4所述的一种基于PCIe总线的MAC层数据交换方法,其特征在于,根据所述目标MAC地址以及建立的MAC地址与buffer之间的映射关系,获取到与目标MAC地址对应的buffer,并实现CPU之间的DMA数据传输,具体包括:
发送方CPU根据所述MAC地址表判断目标MAC地址是否在线,若在线,则将数据拷贝到本地与目标MAC对应的内存块中,当数据处理芯片检测到此内存块中有数据,会中断通知接收方CPU的DMA从发送方CPU的内存块中搬数据,完成传输。
6.一种基于PCIe总线的MAC层数据交换***,其特征在于,多路CPU通过PCIe总线连接数据处理芯片,所述***包括:
MAC地址分配模块,用于根据预设规则为每个CPU分配MAC地址;
映射关系构建模块,用于读取数据处理芯片配置信息,获取当前运行在PCIe总线上的CPU个数,每个CPU根据所述CPU个数进行内存分配,每个CPU上均分配有与其他CPU一一对应的buffer,并建立CPU的MAC地址与对应buffer之间的映射关系;
数据交换模块,用于当两个CPU之间进行数据交换时,通过查询MAC地址表获取目标MAC地址,根据所述目标MAC地址以及建立的MAC地址与buffer之间的映射关系,获取到与目标MAC地址对应的buffer,并实现CPU之间的DMA数据传输。
CN202210312428.4A 2022-03-28 一种基于PCIe总线的MAC层数据交换方法及*** Active CN114745325B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210312428.4A CN114745325B (zh) 2022-03-28 一种基于PCIe总线的MAC层数据交换方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210312428.4A CN114745325B (zh) 2022-03-28 一种基于PCIe总线的MAC层数据交换方法及***

Publications (2)

Publication Number Publication Date
CN114745325A true CN114745325A (zh) 2022-07-12
CN114745325B CN114745325B (zh) 2024-07-23

Family

ID=

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091458A1 (en) * 2003-10-27 2005-04-28 Yumi Sato Storage control apparatus, control system capable of DMA transfer, and method of controlling DMA transfer
CN102467473A (zh) * 2010-11-03 2012-05-23 Tcl集团股份有限公司 一种在用户空间和内核之间传输数据的方法和装置
US20150347349A1 (en) * 2014-05-27 2015-12-03 Mellanox Technologies Ltd. Direct access to local memory in a pci-e device
WO2016041375A1 (zh) * 2014-09-19 2016-03-24 中兴通讯股份有限公司 一种cpu与芯片之间传输消息报文的方法及装置
CN109582614A (zh) * 2013-06-26 2019-04-05 科内克斯实验室公司 针对远程存储器访问的nvm express控制器
CN111708717A (zh) * 2015-06-30 2020-09-25 华为技术有限公司 数据拷贝方法、直接内存访问控制器及计算机***
CN112463714A (zh) * 2020-11-30 2021-03-09 海光信息技术股份有限公司 远程直接内存访问方法、异构计算***及电子设备
CN113647058A (zh) * 2020-02-27 2021-11-12 华为技术有限公司 一种基于PCIe的通信方法及装置
CN113923061A (zh) * 2021-10-26 2022-01-11 浙江大学 基于智能网卡的gpu网络通信方法、智能网卡、介质、设备
CN114003520A (zh) * 2021-09-28 2022-02-01 苏州浪潮智能科技有限公司 一种主机与设备之间的数据传输方法、装置、***及介质
CN114153754A (zh) * 2022-02-08 2022-03-08 维塔科技(北京)有限公司 用于计算集群的数据传输方法、装置及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091458A1 (en) * 2003-10-27 2005-04-28 Yumi Sato Storage control apparatus, control system capable of DMA transfer, and method of controlling DMA transfer
CN102467473A (zh) * 2010-11-03 2012-05-23 Tcl集团股份有限公司 一种在用户空间和内核之间传输数据的方法和装置
CN109582614A (zh) * 2013-06-26 2019-04-05 科内克斯实验室公司 针对远程存储器访问的nvm express控制器
US20150347349A1 (en) * 2014-05-27 2015-12-03 Mellanox Technologies Ltd. Direct access to local memory in a pci-e device
WO2016041375A1 (zh) * 2014-09-19 2016-03-24 中兴通讯股份有限公司 一种cpu与芯片之间传输消息报文的方法及装置
CN111708717A (zh) * 2015-06-30 2020-09-25 华为技术有限公司 数据拷贝方法、直接内存访问控制器及计算机***
CN113647058A (zh) * 2020-02-27 2021-11-12 华为技术有限公司 一种基于PCIe的通信方法及装置
CN112463714A (zh) * 2020-11-30 2021-03-09 海光信息技术股份有限公司 远程直接内存访问方法、异构计算***及电子设备
CN114003520A (zh) * 2021-09-28 2022-02-01 苏州浪潮智能科技有限公司 一种主机与设备之间的数据传输方法、装置、***及介质
CN113923061A (zh) * 2021-10-26 2022-01-11 浙江大学 基于智能网卡的gpu网络通信方法、智能网卡、介质、设备
CN114153754A (zh) * 2022-02-08 2022-03-08 维塔科技(北京)有限公司 用于计算集群的数据传输方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US10110499B2 (en) QoS in a system with end-to-end flow control and QoS aware buffer allocation
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US5546543A (en) Method for assigning priority to receive and transmit requests in response to occupancy of receive and transmit buffers when transmission and reception are in progress
US4922408A (en) Apparatus for multi-processor communications
EP1449100B1 (en) A switching i/o node for connection in a multiprocessor computer system
EP1779609B1 (en) Integrated circuit and method for packet switching control
US7395392B2 (en) Storage system and storage control method
US9219695B2 (en) Switch, information processing apparatus, and communication control method
US6115756A (en) Electro-optically connected multiprocessor and multiring configuration for dynamically allocating time
CN112597075B (zh) 用于路由器的缓存分配方法、片上网络及电子设备
CN112052100B (zh) 基于共享内存的虚拟机通信方法及设备
CN100421423C (zh) 一种基于Serial RapidIO总线的集中式路由器
US11973692B2 (en) Method and system for robust streaming of data
US7564860B2 (en) Apparatus and method for workflow-based routing in a distributed architecture router
CN100401279C (zh) 支持包处理的可配置的多端口多协议网络接口
JPS63501663A (ja) マルチプロセッサ通信装置
CN114745325A (zh) 一种基于PCIe总线的MAC层数据交换方法及***
CN116821042A (zh) 基于多分区的fc设备dma通信方法
CN114745325B (zh) 一种基于PCIe总线的MAC层数据交换方法及***
US6564277B1 (en) Method and system for handling interrupts in a node controller without attached processors
CN113568863A (zh) 数据传输方法、路由节点、众核***、计算机可读介质
US8521940B2 (en) Paired node controllers
CN117234998B (zh) 一种多主机数据访问方法及***
CN116132352A (zh) 数据传输方法、装置及计算机***
CN114930312A (zh) 一种通信方法及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant