CN101540764A - 一种基于fpga的面向虚拟机的数据传输和路由方法 - Google Patents
一种基于fpga的面向虚拟机的数据传输和路由方法 Download PDFInfo
- Publication number
- CN101540764A CN101540764A CN 200910082572 CN200910082572A CN101540764A CN 101540764 A CN101540764 A CN 101540764A CN 200910082572 CN200910082572 CN 200910082572 CN 200910082572 A CN200910082572 A CN 200910082572A CN 101540764 A CN101540764 A CN 101540764A
- Authority
- CN
- China
- Prior art keywords
- data
- virtual machine
- fpga
- protocol processor
- module
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于FPGA的面向虚拟机的数据传输和路由方法,使用FPGA硬件对数据进行交换和路由,数据从PHY模块传送给MAC,MAC中完成数据包的重组后交给网络滤波器完成数据包的过滤以及交换功能,然后处理后的数据将交给协议处理器,协议处理器维护每个虚拟机队列的状态和读写操作,将网络滤波器送来的数据存放到DDR2中的队列中,描述器完成描述符的维护,负责从主机读取描述符,以及向主机写回描述符。采用本方案这种方法,将原来在VMware软件中所做的软件交换和路由的工作放到了硬件内部来完成,完全解放了CPU的操作,同时由于硬件级别的处理速度远高于软件层次的处理速度,所以大大提高了数据交换和路由速度,同时降低了数据的响应时间。
Description
技术领域
本发明涉及虚拟化应用中的网络数据传输,具体涉及一种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、网络滤波器、DMA控制器、协议处理器、描述器;特征在于,所述方法采用如下步骤:
A、首先协议处理器为主机上每一个虚拟机创建一组数据队列并存放在内存模块中,其中每组数据队列存放相应的虚拟机编号,所述协议处理器对每组数据队列进行维护;
B、网卡接收到的网络数据由网卡PHY传给MAC模块,由MAC模块完成数据包的重组后传给网络滤波器;
C、网络滤波器对接收的数据包进行过滤并按照不同的虚拟机进行分派并将处理后的数据传给协议处理器;
D、协议处理器将网络滤波器送来的数据以及每个虚拟机要发送的数据都分别放到内存模块每个虚拟机对应的数据队列中;
E、描述器负责从各虚拟机读取描述符以及向虚拟机写回描述器并将结果传给协议处理器,协议处理器按照描述器的结果来决定触发与各虚拟机的交互动作,将内存模块队列中的数据通过DMA控制器和PCIe 2.0模块写回对应的虚拟机或者从对应的虚拟机读取数据或者向网卡传送数据。
2、如权利要求1所述的一种基于FPGA的面向虚拟机的数据传输和路由方法,其特征在于,所述FPGA的初始配置信息存放在EEPROM模块中,所述EEPROM模块与PCIe模块连接。
3、如权利要求1所述的一种基于FPGA的面向虚拟机的数据传输和路由方法,其特征在于,所述C步骤中,网络滤波器还连接有SMBUS,由SMBUS对FPGA实现远程控制。
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 true CN101540764A (zh) | 2009-09-23 |
CN101540764B 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) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102325074A (zh) * | 2011-07-08 | 2012-01-18 | 清华大学 | 三网融合系统 |
CN102577256A (zh) * | 2009-10-21 | 2012-07-11 | 阿尔卡特朗讯公司 | 在虚拟化网络基础设施情况下用于透明云计算的方法和设备 |
CN105356988A (zh) * | 2015-10-16 | 2016-02-24 | 陕西海泰电子有限责任公司 | 一种基于PCIe的全双工DMA传输方法 |
CN107025196A (zh) * | 2015-12-04 | 2017-08-08 | 英特尔公司 | 物理层设备操作系统以及方法 |
US10069681B2 (en) | 2015-12-31 | 2018-09-04 | Amazon Technologies, Inc. | FPGA-enabled compute instances |
CN110300081A (zh) * | 2018-03-21 | 2019-10-01 | 大唐移动通信设备有限公司 | 一种数据传输的方法和设备 |
CN111209086A (zh) * | 2020-01-13 | 2020-05-29 | 山东超越数控电子股份有限公司 | 一种基于自主平台的裸金属虚拟化实现方法 |
CN111737178A (zh) * | 2020-06-18 | 2020-10-02 | 济南互信软件有限公司 | 一种计算机内存取证方法、设备及内存取证分析系统 |
CN112351089A (zh) * | 2020-10-29 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机与加速器间的数据传输方法、系统及装置 |
CN112395040A (zh) * | 2019-08-19 | 2021-02-23 | 阿里巴巴集团控股有限公司 | 内存数据传输方法、系统及服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1507285A (zh) * | 2002-12-06 | 2004-06-23 | 中国科学院计算技术研究所 | 用fpga器件实现机群交换网络路由芯片的方法 |
CN100446482C (zh) * | 2006-04-03 | 2008-12-24 | 中国科学院半导体研究所 | 基于fpga的光纤通信网络路由信号处理器及使用方法 |
-
2009
- 2009-04-27 CN CN 200910082572 patent/CN101540764B/zh active Active
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102577256A (zh) * | 2009-10-21 | 2012-07-11 | 阿尔卡特朗讯公司 | 在虚拟化网络基础设施情况下用于透明云计算的方法和设备 |
CN102577256B (zh) * | 2009-10-21 | 2015-08-05 | 阿尔卡特朗讯公司 | 在虚拟化网络基础设施情况下用于透明云计算的方法和设备 |
CN102325074A (zh) * | 2011-07-08 | 2012-01-18 | 清华大学 | 三网融合系统 |
CN105356988A (zh) * | 2015-10-16 | 2016-02-24 | 陕西海泰电子有限责任公司 | 一种基于PCIe的全双工DMA传输方法 |
CN107025196A (zh) * | 2015-12-04 | 2017-08-08 | 英特尔公司 | 物理层设备操作系统以及方法 |
CN107025196B (zh) * | 2015-12-04 | 2020-05-05 | 英特尔公司 | 物理层设备操作系统以及方法 |
US11121915B2 (en) | 2015-12-31 | 2021-09-14 | Amazon Technologies, Inc. | FPGA-enabled compute instances |
US10069681B2 (en) | 2015-12-31 | 2018-09-04 | Amazon Technologies, Inc. | FPGA-enabled compute instances |
CN110300081A (zh) * | 2018-03-21 | 2019-10-01 | 大唐移动通信设备有限公司 | 一种数据传输的方法和设备 |
CN112395040A (zh) * | 2019-08-19 | 2021-02-23 | 阿里巴巴集团控股有限公司 | 内存数据传输方法、系统及服务器 |
CN112395040B (zh) * | 2019-08-19 | 2024-10-01 | 阿里巴巴集团控股有限公司 | 内存数据传输方法、系统及服务器 |
CN111209086A (zh) * | 2020-01-13 | 2020-05-29 | 山东超越数控电子股份有限公司 | 一种基于自主平台的裸金属虚拟化实现方法 |
CN111737178A (zh) * | 2020-06-18 | 2020-10-02 | 济南互信软件有限公司 | 一种计算机内存取证方法、设备及内存取证分析系统 |
CN111737178B (zh) * | 2020-06-18 | 2024-02-09 | 济南互信软件有限公司 | 一种计算机内存取证方法、设备及内存取证分析系统 |
CN112351089A (zh) * | 2020-10-29 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机与加速器间的数据传输方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101540764B (zh) | 2013-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101540764B (zh) | 一种基于fpga的面向虚拟机的数据传输和路由方法 | |
CN105577567B (zh) | 基于Intel DPDK的网络数据包并行处理方法 | |
CN110083461B (zh) | 一种基于fpga的多任务处理系统及方法 | |
CN109558344B (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
CN101849230B (zh) | 在多主机环境中共享遗留设备 | |
CN105320628B (zh) | 使能单根i/o设备多根共享的适配装置、系统及方法 | |
CN109416670A (zh) | 用于执行部分同步的写入的技术 | |
CN103827842B (zh) | 向控制器存储器空间写入消息 | |
US20180059988A1 (en) | STREAM IDENTIFIER BASED STORAGE SYSTEM FOR MANAGING AN ARRAY OF SSDs | |
CN106155960A (zh) | 基于gpio握手和edma的uart串口通信方法 | |
CN103942178A (zh) | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 | |
CN110389843A (zh) | 一种业务调度方法、装置、设备及可读存储介质 | |
CN107066413B (zh) | 一种用于处理多个总线设备数据的方法及其总线系统 | |
CN102291337B (zh) | EtherCAT协议与Profibus-DP协议通信转换的网关及其通信方法 | |
CN102750245B (zh) | 报文接收方法、报文接收模块、装置及系统 | |
CN114860387B (zh) | 一种面向虚拟化存储应用的hba控制器i/o虚拟化方法 | |
CN110519180A (zh) | 网卡虚拟化队列调度方法及系统 | |
CN106874228A (zh) | 基于i2c总线的控制器及通信方法、多控制器间的通信方法 | |
CN101577712A (zh) | 支持多终端远程接入的业务前置机及其网络接口卡 | |
CN116382594A (zh) | 一种linux系统对数据库服务资源隔离的方法及装置 | |
CN103885813B (zh) | 一种虚拟机环境下的抓包方法 | |
CN109391565A (zh) | 一种光纤总线网络自动化验证系统及方法 | |
CN105939242B (zh) | 实现虚拟系统的方法及装置 | |
CN101561786B (zh) | 信息处理装置和信息处理方法 | |
CN103217681A (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 |