CN101620551B - 一种面向多虚拟机应用的网卡中断控制方法 - Google Patents

一种面向多虚拟机应用的网卡中断控制方法 Download PDF

Info

Publication number
CN101620551B
CN101620551B CN 200910083648 CN200910083648A CN101620551B CN 101620551 B CN101620551 B CN 101620551B CN 200910083648 CN200910083648 CN 200910083648 CN 200910083648 A CN200910083648 A CN 200910083648A CN 101620551 B CN101620551 B CN 101620551B
Authority
CN
China
Prior art keywords
packet
interrupt
network interface
interface card
virtual machine
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 200910083648
Other languages
English (en)
Other versions
CN101620551A (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 200910083648 priority Critical patent/CN101620551B/zh
Publication of CN101620551A publication Critical patent/CN101620551A/zh
Application granted granted Critical
Publication of CN101620551B publication Critical patent/CN101620551B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种多虚拟机应用的虚拟化网卡中断控制方法,网卡接收或发送数据包时,先读取数据包的描述符,获得DMA源地址、目的地址和长度等信息,然后执行DMA操作,操作完成后再将描述符回写,对应虚拟机队列的计数器进行计数,当计数器的数值达到预设阈值时,发送中断请求;计数器工作同时,计时器也进行计时工作,当计时器的数值达到预设时间阈值,则判断数据包是否完成操作,若完成了操作则发送中断请求,否则等数据包完成操作后才发送中断请求;根据需要,还设有不受上述两个阈值约束的立即中断操作;采用本方法将原来软件层的中断工作通过硬件完成,完全解放CPU,降低CPU使用率,同时由于硬件处理速度远高于软件,大大提高了数据处理速度。

Description

一种面向多虚拟机应用的网卡中断控制方法
技术领域
本发明提供了一种高速网卡的中断控制方法,具体涉及一种多虚拟机应用的虚拟化网卡中断控制方法。 
背景技术
一般来说10M或者100M的网卡,它的硬件中断是来个数据包就中断一次,这种方式在百兆以下的数据流量时可以正常运作。但在1000M的网卡中,一般不采用这种方法,因为大数据流量会导致接收端系统崩溃。这是因为高速数据流会产生过多的中断,CPU将它所有时间都花费在处理中断上,没有任何系统资源来将已到达的数据包传给应用程序处理或转发出去。为此,在千兆网卡设计中引入了一种称之为批量中断(Interrupt Batching)的硬件技术。使用这种技术的网卡将会每过一定时间来产生中断,中断产生前接收的数据包将存储在网卡的缓冲中。CPU在处理接收到的数据包时,将关闭网卡中断,这种技术虽然一定程度的减少了CPU使用率,但是如果在恰好网卡的缓冲区被填满,且中断被关闭时,网卡将无法产生中断,那么在缓冲区被清空之前到达的包均被网卡丢弃。这样的话,就会有掉包的情况出现了,缓冲区里面的数据包被不断地被覆盖,只有等到CPU处理完当前数据包后,把中断打开,网卡才把当前缓冲区中的数据包传递过去,开始正常接收后续数据包。 
随着多核服务器平台的推广和虚拟化应用的普及,采用PCI-E接口的万兆网卡也得到迅速的发展。但传统的虚拟机监控(Virtual Machine Monitor)的软交换实现多个虚拟机对网络设备的共享,明显的降低了网卡I/O接口的处理性能,增长数据包处理的响应时间,并占用较高的CPU使用率,如图1所示。 
发明内容
为了解决上述缺陷,本发明提供了一种能降低CPU负担,避免数据包丢失,且适合于高速、虚拟机应用网络的虚拟网卡应用方法:一种多虚拟机应用的网卡中断控制方法,所述网卡上设置有FPGA,所述FPGA包括:MAC模块、内存模块、PCIe、网络滤波器、DMA控制器、协议处理器、描述符管理器、内存模块;特征在于是:所述DMA控制器还连接有中断控制器,所述中断控制器内设有计数器和计时器,所述内存模块对应每个虚拟机划分有相应的虚拟机队列,所述方法采用如下步骤: 
A、网卡在收发数据包时,所述协议处理器通过描述符管理器读取所述数据包的描述符获得DMA的源地址、目的地址和长度信息,并将所述描述符传给所述DMA控制器; 
B、发送数据包时,所述DMA控制器根据描述符的信息将所述数据包直接从主机中通过协议处理器进行派分,将从主机中读到的数据包寄存到相应内存模块的虚拟机队列中;接收数据包时,DMA控制器根据描述符的信息将所述数据包从相应内存模块的虚拟机队列中读出并写入主机内存; 
C、所述DMA控制器完成数据包的派分寄存操作后,将描述符进行回写操作,通知中断控制器数据包的接收或发送操作完成,所述中断控制器的计数器对相应虚拟机队列的计数执行加1操作; 
D、当所述内存模块的虚拟队列相应计数器的数值达到预设数量阈值时,所述计数器通知中断控制器向相应的虚拟主机发送中断请求。 
本发明的优选技术方案为:所述多虚拟机应用的网卡中断控制方法的步骤C中,所述中断控制器的计数器工作同时,中断控制器的计时器同时进行时间计数,所述计时器上预设有时间阀值,当计时器的数值达到所述预设时间阈值时,判断所述DMA控制器是否有数据包接收或发送,当有数据包完成了操作时,将发送中断请求;否则等有数据包达到后才会发送中断请求。 
本发明的进一步优选技术方案为:所述多虚拟机应用的网卡中断控制方法中,所述中断控制器还执行立即中断操作,既向虚拟机发出立即中断请求,所述立即中断操作不受所述预设时间阀值和预设数量阀值的约束。 
本发明进一步优选技术方案为:所述多虚拟机应用的网卡中断控制方法中,所述中断控制器在网卡插拔网线时收到网卡接口产生上电或下电信号,并向虚拟机发出立即中断请求。 
本发明进一步优选技术方案为:所述的多虚拟机应用的网卡中断控制方法中,所述中断控制器还设有立即中断条件值,当接收到的数据包的端口信息、长度信息和TCP包头中控制位信息值符合所述立即中断条件值时,中断控制器向虚拟机发出立即中断请求。 
本发明更进一步优选技术方案为:所述的多虚拟机应用的网卡中断控制方法中,所述立即中断条件值指定的端口号为单个或者多个。 
本发明有益效果:利用硬件快速、高效的特点,实现数据包的中断处理,完全解放了CPU的操作,降低CPU的使用率,减少CPU负担,避免系统崩溃,同时由于硬件级别的处理速度远高于软件层次的处理速度,所以大大提高了数据包吞吐的速度,同时缩短了数据处理的响应时间,提高数据输速度,避免了由于数据包处理的响应时间过长出现的丢包情况,尤其在万兆网卡的虚拟机应用网络中,大大减少了系统资源的浪费,提高虚拟机网络中整体的数据处理速率。 
附图说明
图1传统的虚拟机监控(Virtual Machine Monitor)的软交换示意图。 
图2本发明的中断网卡示意图。 
图3本发明工作原理图。 
图4本发明中断控制器内部结构示意图。 
具体实施例
根据图2~4所示,本发明的一种多虚拟机应用的网卡中断控制方法,在网 卡上设置有FPGA,FPGA包括:MAC模块、内存模块、PCIe、网络滤波器、DMA控制器、协议处理器、描述符管理器、内存模块,DMA控制器还连接有中断控制器,中断控制器内设有计数器和计时器,内存模块对应每个虚拟机划分有相应的虚拟机队列: 
首先,网卡在收发数据包时,协议处理器通过描述符管理器读取数据包的描述符获得DMA的源地址、目的地址和长度信息,并将描述符传给DMA控制器; 
当发送数据包时,所述DMA控制器根据描述符的信息将所述数据包直接从主机中通过协议处理器进行派分,将从主机中读到的数据包寄存到相应内存模块的虚拟机队列中;接收数据包时,DMA控制器根据描述符的信息将所述数据包从相应内存模块的虚拟机队列中读出并写入主机内存; 
当DMA控制器完成数据包的派分寄存操作后,将描述符进行回写操作,既DMA将数据包的描述符回传给虚拟机监控软件,虚拟机监控软件再通知中断控制器数据包的接收或发送操作完成,中断控制器的计数器对相应虚拟机队列的计数执行加1操作,当内存模块的虚拟队列相应计数器的数值达到预设数量阈值时,计数器通知中断控制器向相应的虚拟主机发送中断请求;在计数器工作的同时,计时器同时进行时间计数,当计时器的数值达到了预设时间阈值时,判断所述DMA控制器是否有数据包接收或发送,当有数据包完成了操作时,将发送中断请求;否则等有数据包达到后才会发送中断请求。 
根据网卡需要,中断控制器还设计了若干种立即中断操作,既向虚拟机发出立即中断请求,该立即中断操作不受上述计时器和计数器的两个阈值约束:1)当网卡插拔网线时,所述网卡的接口产生上电或下电信号并传送给中断控制器,所述中断控制器所述收到上电或下电信号后向虚拟机发出立即中断请求;2)中断控制器还设有立即中断条件值,当接收到的数据包的端口信息、长度信息和TCP包头中控制位信息值符合立即中断条件信息时,中断控制器向虚拟机发出立即中断请求。立即中断条件值指定的端口号可以是单个,也可以是多个。 
本发明技术方案中的网卡可采用PCIExpress接口,PCI Express可定义多种中断方式。采用只有单一中断信号的中断方式时,计数器和计时器的数量可以很少,甚至只有一个;而当采用多中断信号的中断方式时,可以设置成每个虚拟机一个或多个中断号,计数器和计时器的数量则可以根据应用的需要而设置。 

Claims (6)

1.一种多虚拟机应用的网卡中断控制方法,所述网卡上设置有FPGA,所述FPGA包括:MAC模块、内存模块、PCIe、网络滤波器、DMA控制器、协议处理器、描述符管理器;特征在于是:所述DMA控制器还连接有中断控制器,所述中断控制器内设有计数器和计时器,所述内存模块对应每个虚拟机划分有相应的虚拟机队列,所述方法采用如下步骤:
A、网卡在收发数据包时,所述协议处理器通过描述符管理器读取所述数据包的描述符获得DMA的源地址、目的地址和长度信息,并将所述描述符传给所述DMA控制器;
B、发送数据包时,所述DMA控制器根据描述符的信息将所述数据包直接从主机中通过协议处理器进行派分,将从主机中读到的数据包寄存到相应内存模块的虚拟机队列中;接收数据包时,DMA控制器根据描述符的信息将所述数据包从相应内存模块的虚拟机队列中读出并写入主机内存;
C、所述DMA控制器完成数据包的派分寄存操作后,将描述符进行回写操作,通知中断控制器数据包的接收或发送操作完成,所述中断控制器的计数器对相应虚拟机队列的计数执行加1操作;
D、当所述内存模块的虚拟机队列相应计数器的数值达到预设数量阈值时,所述计数器通知中断控制器向相应的虚拟机发送中断请求。
2.如权利要求1所述的一种多虚拟机应用的网卡中断控制方法,其特征在于:所述步骤C中,所述中断控制器的计数器工作同时,中断控制器的计时器同时进行时间计数,所述计时器上预设有时间阀值,当计时器的数值达到所述预设时间阈值时,判断所述DMA控制器是否有数据包接收或发送,当有数据包完成了操作时,将发送中断请求;否则等有数据包达到后才会发送中断请求。
3.如权利要求2所述的一种多虚拟机应用的网卡中断控制方法,其特征在于:所述中断控制器还执行立即中断操作,即向虚拟机发出立即中断请求,所述立即中断操作不受所述预设时间阀值和预设数量阀值的约束。
4.如权利要求3所述的一种多虚拟机应用的网卡中断控制方法,其特征在于:所述中断控制器在网卡插拔网线时收到网卡接口产生上电或下电信号,并向虚拟机发出立即中断请求。
5.如权利要求3所述的一种多虚拟机应用的网卡中断控制方法,其特征在于:所述中断控制器还设有立即中断条件值,当接收到的数据包的端口信息、长度信息和TCP包头中控制位信息符合所述立即中断条件值时,中断控制器向虚拟机发出立即中断请求。
6.如权利要求5所述的一种多虚拟机应用的网卡中断控制方法,其特征在于:所述立即中断条件值指定的端口号为单个或者多个。
CN 200910083648 2009-05-07 2009-05-07 一种面向多虚拟机应用的网卡中断控制方法 Active CN101620551B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910083648 CN101620551B (zh) 2009-05-07 2009-05-07 一种面向多虚拟机应用的网卡中断控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910083648 CN101620551B (zh) 2009-05-07 2009-05-07 一种面向多虚拟机应用的网卡中断控制方法

Publications (2)

Publication Number Publication Date
CN101620551A CN101620551A (zh) 2010-01-06
CN101620551B true CN101620551B (zh) 2013-03-06

Family

ID=41513799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910083648 Active CN101620551B (zh) 2009-05-07 2009-05-07 一种面向多虚拟机应用的网卡中断控制方法

Country Status (1)

Country Link
CN (1) CN101620551B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609298B (zh) * 2012-01-11 2016-01-13 中国科学技术大学苏州研究院 基于硬件队列扩展的网卡虚拟化系统及其方法
CN103379080B (zh) * 2012-04-17 2018-10-12 马维尔国际有限公司 针对多载波系统的dma传输方法与系统
CN102789439B (zh) * 2012-06-16 2016-02-10 北京忆恒创源科技有限公司 控制数据传输过程中的中断的方法与存储设备
US9183054B2 (en) * 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter
CN104618158B (zh) * 2015-01-28 2018-05-04 上海交通大学 嵌入式网络虚拟化环境中VirtIO网络虚拟化工作方法
CN109144679B (zh) * 2017-06-27 2022-03-29 华为技术有限公司 中断请求的处理方法、装置及虚拟化设备
CN107766268A (zh) * 2017-10-27 2018-03-06 郑州云海信息技术有限公司 存储设备的中断发送方法、装置、系统、设备及存储介质
CN110300081B (zh) * 2018-03-21 2021-04-16 大唐移动通信设备有限公司 一种数据传输的方法和设备
CN109445905B (zh) * 2018-06-22 2022-04-22 华为云计算技术有限公司 虚拟机数据通信方法和系统以及虚拟机配置方法和装置
CN109634723B (zh) * 2018-12-20 2023-04-18 国网新疆电力有限公司信息通信公司 融合存载模块的通信方法及融合存载模块
CN109710560A (zh) * 2018-12-25 2019-05-03 杭州迪普科技股份有限公司 一种cpu与fpga交互确认的方法和装置
CN111382116B (zh) * 2018-12-29 2022-10-04 上海寒武纪信息科技有限公司 数据接收方法、装置及相关产品
CN111107061A (zh) * 2019-11-30 2020-05-05 浪潮(北京)电子信息产业有限公司 一种智能网卡及其通讯方法
CN112835837B (zh) * 2021-02-04 2023-06-23 北京百度网讯科技有限公司 建立数据连接的方法、相关装置及计算机程序产品
CN114448780B (zh) * 2022-01-27 2023-06-20 西安微电子技术研究所 一种基于pcie接口的以太网控制器异常处理系统和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512373A (zh) * 2002-12-26 2004-07-14 华为技术有限公司 一种多cpu通信的方法
CN1642138A (zh) * 2004-01-09 2005-07-20 华为技术有限公司 一种cpu与协处理单元通信的方法及系统
CN101335694A (zh) * 2007-06-29 2008-12-31 联想(北京)有限公司 中断处理方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512373A (zh) * 2002-12-26 2004-07-14 华为技术有限公司 一种多cpu通信的方法
CN1642138A (zh) * 2004-01-09 2005-07-20 华为技术有限公司 一种cpu与协处理单元通信的方法及系统
CN101335694A (zh) * 2007-06-29 2008-12-31 联想(北京)有限公司 中断处理方法和系统

Also Published As

Publication number Publication date
CN101620551A (zh) 2010-01-06

Similar Documents

Publication Publication Date Title
CN101620551B (zh) 一种面向多虚拟机应用的网卡中断控制方法
US20200174953A1 (en) Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US11876701B2 (en) System and method for facilitating operation management in a network interface controller (NIC) for accelerators
US8677042B2 (en) Interrupt moderation
TWI416334B (zh) 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器
CN106257434B (zh) 一种基于增强型外设互连协议总线的数据传输方法及装置
US20140108676A1 (en) Method and system for an os virtualization-aware network interface card
CN104714918B (zh) 主机环境下高速fc总线数据接收及缓冲方法
CN109062847A (zh) 片上系统、用于rs485串口通讯的ip核及其控制方法
CN111800226A (zh) 一种基于硬件仲裁的边带管理电路及方法
CN107562672A (zh) 一种提高矢量网络分析仪数据传输速率的系统及方法
CN108304335A (zh) 一种通过dma接收串口不定长报文的方法
CN116743317B (zh) 基于通用芯片互联标准的数据传输方法
CN108932207A (zh) 带有缓存区的sdio-wifi数据传输方法及系统
CN110995507B (zh) 一种网络加速控制器及方法
CN107066413A (zh) 一种用于处理多个总线设备数据的方法、及其总线系统
CN100469055C (zh) 转发报文的处理方法及处理装置
CN116868553A (zh) 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度
CN109408426A (zh) 一种灵活通用的串行通信方法及系统
CN103684945A (zh) 通用SpaceWire节点装置
CN106649184B (zh) 适用于星载电子设备的异步通信串口指令快速应答方法
CN111008169B (zh) 一种低成本高速通信总线及其传输控制方法
CN111045817B (zh) 一种PCIe传输管理方法、系统和装置
CN103353750A (zh) 一种基于多总线的微波冶金控制系统及方法
WO2023142301A1 (zh) Usb虚拟串口实时上传数据的方法及系统、usb主机

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
TR01 Transfer of patent right

Effective date of registration: 20220722

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.