CN101540764B - 一种基于fpga的面向虚拟机的数据传输和路由方法 - Google Patents

一种基于fpga的面向虚拟机的数据传输和路由方法 Download PDF

Info

Publication number
CN101540764B
CN101540764B CN 200910082572 CN200910082572A CN101540764B CN 101540764 B CN101540764 B CN 101540764B CN 200910082572 CN200910082572 CN 200910082572 CN 200910082572 A CN200910082572 A CN 200910082572A CN 101540764 B CN101540764 B CN 101540764B
Authority
CN
China
Prior art keywords
data
virtual machine
fpga
protocol processor
routing
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
CN 200910082572
Other languages
English (en)
Other versions
CN101540764A (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.)
Dawning Information Industry Beijing Co Ltd
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing 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 Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN 200910082572 priority Critical patent/CN101540764B/zh
Publication of CN101540764A publication Critical patent/CN101540764A/zh
Application granted granted Critical
Publication of CN101540764B publication Critical patent/CN101540764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种基于FPGA的面向虚拟机的数据传输和路由方法,使用FPGA硬件对数据进行交换和路由,数据从PHY模块传送给MAC,MAC中完成数据包的重组后交给网络滤波器完成数据包的过滤以及交换功能,然后处理后的数据将交给协议处理器,协议处理器维护每个虚拟机队列的状态和读写操作,将网络滤波器送来的数据存放到DDR2中的队列中,描述器完成描述符的维护,负责从主机读取描述符,以及向主机写回描述符。采用本方案这种方法,将原来在VMware软件中所做的软件交换和路由的工作放到了硬件内部来完成,完全解放了CPU的操作,同时由于硬件级别的处理速度远高于软件层次的处理速度,所以大大提高了数据交换和路由速度,同时降低了数据的响应时间。

Description

一种基于FPGA的面向虚拟机的数据传输和路由方法
技术领域
本发明涉及虚拟化应用中的网络数据传输,具体涉及一种FPGA硬件与虚拟机路由的方法。
背景技术
虚拟化是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案,这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,在IT领域就叫做虚拟化技术。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。但随着虚拟机数目的增多,软交换的处理速度就会成为网络通讯的瓶颈,在10G以太网中,软交换的实际吞吐率只能达到全速的40%左右。
在虚拟机网络应用领域,一直以来以VMware的软交换作为主要手段,各个虚拟机与网卡NIC之间的数据交换和路由均由VMware中的VMM Switch(软件层)完成,Switch将接收到的数据包按照不同的虚拟机编号(MAC地址)进行分派,这样接收到的数据包就会按照正确的路径送达各个虚拟机。VMSware作为路由和分派的软件,所有的数据都要经过软件来进行交换,当数据量大时软件的交换模块就会出现堵塞,必然要消耗大量的CPU资源和内存资源同时,进而妨碍网卡对数据的吞吐率。
如图1所示,现有技术使用的Xen软件工作原理图中,在网卡和驱动模块之间有一个Xen管理模块完成中断响应工作,然后,将数据交给驱动模块中的设备驱动模块进行处理接收这一数据包,然后接收到的数据包传给网桥模块,网格模块完成网桥的工程,就是所谓的交换的功能:将不同虚拟机的数据包发送给不同的寄存模块,由于所有的数据都要经过网桥模块,所以一旦数据量增大,其中网桥处理数据就会出现堵塞现象,耗费大量资源,网桥出现不能胜任的情况,网卡对内外数据的交换就会受到阻碍。
发明内容
为了克服软件数据交换存在的问题,本发明提供一种利用FPGA硬件对虚拟机进行数据交换和路由的办法,采用方案如下:
一种利用FPGA对虚拟机进行数据包交换和路由的方法:所述FPGA包括:MAC模块、内存模块、PCIe、网络滤波器、DMA控制器、协议处理器、描述器;特征在于,所述方法采用如下步骤:
A、首先协议处理器为主机上每一个虚拟机创建一组数据队列并存放在内存模块中,其中每组数据队列存放相应的虚拟机编号,所述协议处理器对每组数据队列进行维护;
B、网卡接收到的网络数据由网卡PHY传给MAC模块,由MAC模块完成数据包的重组后传给网络滤波器;
C、网络滤波器对接收的数据包进行过滤并按照不同的虚拟机进行分派并将处理后的数据传给协议处理器;
D、协议处理器将网络滤波器送来的数据以及每个虚拟机要发送的数据都分别放到内存模块每个虚拟机对应的数据队列中;
E、描述器负责从各虚拟机读取描述符以及向虚拟机写回描述器并将结果传给协议处理器,协议处理器按照描述器的结果来决定触发与各虚拟机的交互动作,将内存模块队列中的数据通过DMA控制器和PCIe 2.0模块写回对应的虚拟机或者从对应的虚拟机读取数据或者向网卡传送数据;
本方案的另一优选方式:所述FPGA的初始配置信息存放在EEPROM模块中,所述EEPROM模块与PCIe模块连接。
本方案的再一优选方式:所述C步骤中,网络滤波器还连接有SMBUS,由SMBUS对FPGA实现远程控制。
采用本方案这种方法,将原来在VMware软件中所做的软件交换和路由的工作放到了硬件内部来完成,完全解放了CPU的操作,同时由于硬件级别的处理速度远高于软件层次的处理速度,所以大大提高了数据交换和路由速度,同时降低了数据的响应时间。
附图说明
图1本方法中所采用的FPGA示意图
图2本方法与现有技术的效果对比示意图
具体实施方式
本发明在现有技术的基础中利用寄存模块直接通过Xen管理模块访问硬件,也就是不经过驱动模块这样的一个思路,在FPGA上进行上述模式的硬件与各虚拟机之间进行数据交换和路由,不同的虚拟机对应不同的数据队列,接收到的数据包按照不同的虚拟机进行放置,以实现交换和路由的目的。
如图2所示,本发明提供一种使用FPGA进行数据包交换和路由的方法,是应用在虚拟化系统上的。本发明技术方案中FPGA包括MAC模块、内存模块、PCIe、网络滤波器、DMA控制器、协议处理器、描述器:其中A、首先协议处理器为主机上每一个虚拟机创建一组数据队列并存放在内存模块中,其中每组数据队列存放相应的虚拟机编号,所述协议处理器对每组数据队列进行维护;协议处理器对各虚拟机采取的执行方法是由PCIe2.0模块从EEPROM模块接收并传来的,所述EEPROM用于存放对FPGA进行初始配置的信息。
B、网卡接收到的网络数据由网卡PHY传给MAC模块,由MAC模块完成数据包的重组后传给网络滤波器;
C、网络滤波器对接收的数据包进行过滤并按照不同的虚拟机进行分派并将处理后的数据传给协议处理器;网络滹滤波器还连接有SMBUS,由SMBUS对FPGA实现远程控制
D、协议处理器将网络滤波器送来的数据以及每个虚拟机要发送的数据都分别放到内存模块每个虚拟机对应的数据队列中;其中虚拟机的区分是按照每个虚拟机的MAC地址来分别的;
E、描述器负责从各虚拟机读取描述符以及向虚拟机写回描述符并将结果传给协议处理器,协议处理器按照描述器的结果来决定触发与各虚拟机的交互动作,将内存模块队列中的数据通过DMA模块和PCIe 2.0模块写回对应的虚拟机或者从对应的虚拟机读取数据或者向网卡传送数据。
在QDRSRAM中存放一些临时信息。
通过在虚拟化系统中部署FPGA硬件交换路由,可以明显地提高网络通讯的速度。如图3所示,在虚拟化应用中使用10G以太网进行通讯的数据:A是使用VMware软交换所得到的数据,只有4Gbps的通讯速率,B是使用FPGA硬件交换路由的效果可以达到9.2Gbps的通讯速率,使用FPGA硬件交换路由可以达到软件交换路由2倍以上的通讯速率。

Claims (3)

1.一种基于FPGA的面向虚拟机的数据传输和路由方法,所述FPGA包括:MAC模块、内存模块、PCIe 2.0、网络滤波器、DMA控制器、协议处理器、描述器;特征在于,所述方法采用如下步骤:
A、首先协议处理器为主机上每一个虚拟机创建一组数据队列并存放在内存模块中,其中每组数据队列存放相应的虚拟机编号,所述协议处理器对每组数据队列进行维护;
B、网卡接收到的网络数据由网卡PHY传给MAC模块,由MAC模块完成数据包的重组后传给网络滤波器;
C、网络滤波器对接收的数据包进行过滤并按照不同的虚拟机进行分派并将处理后的数据传给协议处理器;
D、协议处理器将网络滤波器送来的数据以及每个虚拟机要发送的数据都分别放到内存模块每个虚拟机对应的数据队列中;
E、描述器负责从各虚拟机读取描述符以及向虚拟机写回描述器并将结果传给协议处理器,协议处理器按照描述器的结果来决定触发与各虚拟机的交互动作,将内存模块队列中的数据通过DMA控制器和PCIe 2.0模块写回对应的虚拟机或者从对应的虚拟机读取数据或者向网卡传送数据;
2.如权利要求1所述的一种基于FPGA的面向虚拟机的数据传输和路由方法,其特征在于,所述FPGA的初始配置信息存放在EEPROM模块中,所述EEPROM模块与PCIe 2.0模块连接。
3.如权利要求1所述的一种基于FPGA的面向虚拟机的数据传输和路由方法,其特征在于,所述C步骤中,网络滤波器还连接有SMBUS,由SMBUS对FPGA实现远程控制。
CN 200910082572 2009-04-27 2009-04-27 一种基于fpga的面向虚拟机的数据传输和路由方法 Active CN101540764B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910082572 CN101540764B (zh) 2009-04-27 2009-04-27 一种基于fpga的面向虚拟机的数据传输和路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910082572 CN101540764B (zh) 2009-04-27 2009-04-27 一种基于fpga的面向虚拟机的数据传输和路由方法

Publications (2)

Publication Number Publication Date
CN101540764A CN101540764A (zh) 2009-09-23
CN101540764B true CN101540764B (zh) 2013-02-06

Family

ID=41123753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910082572 Active CN101540764B (zh) 2009-04-27 2009-04-27 一种基于fpga的面向虚拟机的数据传输和路由方法

Country Status (1)

Country Link
CN (1) CN101540764B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8369333B2 (en) * 2009-10-21 2013-02-05 Alcatel Lucent Method and apparatus for transparent cloud computing with a virtualized network infrastructure
CN102325074A (zh) * 2011-07-08 2012-01-18 清华大学 三网融合系统
CN105356988A (zh) * 2015-10-16 2016-02-24 陕西海泰电子有限责任公司 一种基于PCIe的全双工DMA传输方法
US9766971B2 (en) * 2015-12-04 2017-09-19 Intel Corporation Physical layer device operation system and method
US10069681B2 (en) 2015-12-31 2018-09-04 Amazon Technologies, Inc. FPGA-enabled compute instances
CN110300081B (zh) * 2018-03-21 2021-04-16 大唐移动通信设备有限公司 一种数据传输的方法和设备
CN111209086A (zh) * 2020-01-13 2020-05-29 山东超越数控电子股份有限公司 一种基于自主平台的裸金属虚拟化实现方法
CN111737178B (zh) * 2020-06-18 2024-02-09 济南互信软件有限公司 一种计算机内存取证方法、设备及内存取证分析系统
CN112351089B (zh) * 2020-10-29 2022-05-13 苏州浪潮智能科技有限公司 一种虚拟机与加速器间的数据传输方法、系统及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1507285A (zh) * 2002-12-06 2004-06-23 中国科学院计算技术研究所 用fpga器件实现机群交换网络路由芯片的方法
CN101051950A (zh) * 2006-04-03 2007-10-10 中国科学院半导体研究所 基于fpga的光纤通信网络路由信号处理器及使用方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1507285A (zh) * 2002-12-06 2004-06-23 中国科学院计算技术研究所 用fpga器件实现机群交换网络路由芯片的方法
CN101051950A (zh) * 2006-04-03 2007-10-10 中国科学院半导体研究所 基于fpga的光纤通信网络路由信号处理器及使用方法

Also Published As

Publication number Publication date
CN101540764A (zh) 2009-09-23

Similar Documents

Publication Publication Date Title
CN101540764B (zh) 一种基于fpga的面向虚拟机的数据传输和路由方法
CN105577567B (zh) 基于Intel DPDK的网络数据包并行处理方法
CN110083461B (zh) 一种基于fpga的多任务处理系统及方法
CN101849230B (zh) 在多主机环境中共享遗留设备
CN109558344B (zh) 一种适用于网络传输的dma传输方法及dma控制器
CN106941516B (zh) 基于工业互联网操作系统的异构现场设备控制管理系统
CN103827842B (zh) 向控制器存储器空间写入消息
CN101630270B (zh) 数据处理系统和方法
CN105320628B (zh) 使能单根i/o设备多根共享的适配装置、系统及方法
CN102082692A (zh) 基于网络数据流向的虚拟机迁移方法、设备和集群系统
US8972611B2 (en) Multi-server consolidated input/output (IO) device
CN103609077B (zh) 用于数据传输的方法、装置和系统以及物理网卡
CN101599004B (zh) 基于fpga的sata控制器
CN104094230A (zh) 用于支持虚拟化环境中的虚拟机的动态迁移的系统和方法
CN103942178A (zh) 多核处理器上实时操作系统与非实时操作系统之间的通信方法
CN106648896B (zh) 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法
CN103207846A (zh) 内存控制器及控制方法
CN102799465A (zh) 分布式虚拟化系统的虚拟中断管理方法及装置
CN102750245B (zh) 报文接收方法、报文接收模块、装置及系统
CN102291337B (zh) EtherCAT协议与Profibus-DP协议通信转换的网关及其通信方法
CN102609307A (zh) 多核多线程双操作系统网络设备及其控制方法
CN100547572C (zh) 动态建立直接内存访问通路的方法及系统
CN101303677A (zh) 一种直接存储器访问控制方法、系统及控制器
CN106874228A (zh) 基于i2c总线的控制器及通信方法、多控制器间的通信方法
CN107066413A (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
TR01 Transfer of patent right

Effective date of registration: 20220801

Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing

Patentee after: Dawning Information Industry (Beijing) Co.,Ltd.

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 100084 Beijing Haidian District City Mill Street No. 64

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.

TR01 Transfer of patent right