CN101620551A - 一种面向多虚拟机应用的网卡中断控制方法 - Google Patents
一种面向多虚拟机应用的网卡中断控制方法 Download PDFInfo
- Publication number
- CN101620551A CN101620551A CN 200910083648 CN200910083648A CN101620551A CN 101620551 A CN101620551 A CN 101620551A CN 200910083648 CN200910083648 CN 200910083648 CN 200910083648 A CN200910083648 A CN 200910083648A CN 101620551 A CN101620551 A CN 101620551A
- Authority
- CN
- China
- Prior art keywords
- packet
- interrupt
- network interface
- interface card
- descriptor
- 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)
- 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所述的一种面向多虚拟机应用的网卡中断控制方法,其特征在于:所述立即中断条件值指定的端口号为单个或者多个。
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 true CN101620551A (zh) | 2010-01-06 |
CN101620551B 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) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609298A (zh) * | 2012-01-11 | 2012-07-25 | 中国科学技术大学苏州研究院 | 基于硬件队列扩展的网卡虚拟化系统及其方法 |
CN102789439A (zh) * | 2012-06-16 | 2012-11-21 | 北京忆恒创源科技有限公司 | 控制数据传输过程中的中断的方法 |
CN103379080A (zh) * | 2012-04-17 | 2013-10-30 | 马维尔国际有限公司 | 针对多载波系统的dma传输方法与系统 |
CN103514045A (zh) * | 2012-06-30 | 2014-01-15 | 国际商业机器公司 | 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统 |
CN104618158A (zh) * | 2015-01-28 | 2015-05-13 | 上海交通大学 | 嵌入式网络虚拟化环境中VirtIO网络虚拟化工作方法 |
CN107766268A (zh) * | 2017-10-27 | 2018-03-06 | 郑州云海信息技术有限公司 | 存储设备的中断发送方法、装置、系统、设备及存储介质 |
WO2019001434A1 (zh) * | 2017-06-27 | 2019-01-03 | 华为技术有限公司 | 中断请求的处理方法、装置及虚拟化设备 |
CN109445905A (zh) * | 2018-06-22 | 2019-03-08 | 华为技术有限公司 | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 |
CN109634723A (zh) * | 2018-12-20 | 2019-04-16 | 国网新疆电力有限公司信息通信公司 | 融合存载模块的通信方法及融合存载模块 |
CN109710560A (zh) * | 2018-12-25 | 2019-05-03 | 杭州迪普科技股份有限公司 | 一种cpu与fpga交互确认的方法和装置 |
CN110300081A (zh) * | 2018-03-21 | 2019-10-01 | 大唐移动通信设备有限公司 | 一种数据传输的方法和设备 |
CN111107061A (zh) * | 2019-11-30 | 2020-05-05 | 浪潮(北京)电子信息产业有限公司 | 一种智能网卡及其通讯方法 |
CN111382116A (zh) * | 2018-12-29 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据接收方法、装置及相关产品 |
CN112835837A (zh) * | 2021-02-04 | 2021-05-25 | 北京百度网讯科技有限公司 | 建立数据连接的方法、相关装置及计算机程序产品 |
CN114448780A (zh) * | 2022-01-27 | 2022-05-06 | 西安微电子技术研究所 | 一种基于pcie接口的以太网控制器异常处理系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1295633C (zh) * | 2002-12-26 | 2007-01-17 | 华为技术有限公司 | 一种多cpu通信的方法 |
CN100407690C (zh) * | 2004-01-09 | 2008-07-30 | 华为技术有限公司 | 一种cpu与协处理单元通信的方法及系统 |
CN101335694B (zh) * | 2007-06-29 | 2011-03-02 | 联想(北京)有限公司 | 中断处理方法和系统 |
-
2009
- 2009-05-07 CN CN 200910083648 patent/CN101620551B/zh active Active
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609298A (zh) * | 2012-01-11 | 2012-07-25 | 中国科学技术大学苏州研究院 | 基于硬件队列扩展的网卡虚拟化系统及其方法 |
CN102609298B (zh) * | 2012-01-11 | 2016-01-13 | 中国科学技术大学苏州研究院 | 基于硬件队列扩展的网卡虚拟化系统及其方法 |
CN103379080A (zh) * | 2012-04-17 | 2013-10-30 | 马维尔国际有限公司 | 针对多载波系统的dma传输方法与系统 |
CN103379080B (zh) * | 2012-04-17 | 2018-10-12 | 马维尔国际有限公司 | 针对多载波系统的dma传输方法与系统 |
CN102789439A (zh) * | 2012-06-16 | 2012-11-21 | 北京忆恒创源科技有限公司 | 控制数据传输过程中的中断的方法 |
WO2013185636A1 (zh) * | 2012-06-16 | 2013-12-19 | 北京忆恒创源科技有限公司 | 控制数据传输过程中的中断的方法 |
CN102789439B (zh) * | 2012-06-16 | 2016-02-10 | 北京忆恒创源科技有限公司 | 控制数据传输过程中的中断的方法与存储设备 |
US9448955B2 (en) | 2012-06-16 | 2016-09-20 | Memblaze Technology (Beijing) Co., Ltd. | Method for controlling interruption in data transmission process |
CN103514045A (zh) * | 2012-06-30 | 2014-01-15 | 国际商业机器公司 | 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统 |
US9513951B2 (en) | 2012-06-30 | 2016-12-06 | International Business Machines Corporation | Maintaining hardware resource bandwidth quality-of-service via hardware counter |
CN103514045B (zh) * | 2012-06-30 | 2016-12-28 | 国际商业机器公司 | 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统 |
CN104618158B (zh) * | 2015-01-28 | 2018-05-04 | 上海交通大学 | 嵌入式网络虚拟化环境中VirtIO网络虚拟化工作方法 |
CN104618158A (zh) * | 2015-01-28 | 2015-05-13 | 上海交通大学 | 嵌入式网络虚拟化环境中VirtIO网络虚拟化工作方法 |
WO2019001434A1 (zh) * | 2017-06-27 | 2019-01-03 | 华为技术有限公司 | 中断请求的处理方法、装置及虚拟化设备 |
US11972285B2 (en) | 2017-06-27 | 2024-04-30 | Huawei Technologies Co., Ltd. | Interrupt request processing method and apparatus, and virtualized device |
CN107766268A (zh) * | 2017-10-27 | 2018-03-06 | 郑州云海信息技术有限公司 | 存储设备的中断发送方法、装置、系统、设备及存储介质 |
CN110300081A (zh) * | 2018-03-21 | 2019-10-01 | 大唐移动通信设备有限公司 | 一种数据传输的方法和设备 |
CN109445905A (zh) * | 2018-06-22 | 2019-03-08 | 华为技术有限公司 | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 |
CN109445905B (zh) * | 2018-06-22 | 2022-04-22 | 华为云计算技术有限公司 | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 |
CN109634723A (zh) * | 2018-12-20 | 2019-04-16 | 国网新疆电力有限公司信息通信公司 | 融合存载模块的通信方法及融合存载模块 |
CN109710560A (zh) * | 2018-12-25 | 2019-05-03 | 杭州迪普科技股份有限公司 | 一种cpu与fpga交互确认的方法和装置 |
CN111382116A (zh) * | 2018-12-29 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据接收方法、装置及相关产品 |
CN111382116B (zh) * | 2018-12-29 | 2022-10-04 | 上海寒武纪信息科技有限公司 | 数据接收方法、装置及相关产品 |
CN111107061A (zh) * | 2019-11-30 | 2020-05-05 | 浪潮(北京)电子信息产业有限公司 | 一种智能网卡及其通讯方法 |
CN112835837A (zh) * | 2021-02-04 | 2021-05-25 | 北京百度网讯科技有限公司 | 建立数据连接的方法、相关装置及计算机程序产品 |
CN112835837B (zh) * | 2021-02-04 | 2023-06-23 | 北京百度网讯科技有限公司 | 建立数据连接的方法、相关装置及计算机程序产品 |
CN114448780A (zh) * | 2022-01-27 | 2022-05-06 | 西安微电子技术研究所 | 一种基于pcie接口的以太网控制器异常处理系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101620551B (zh) | 2013-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101620551B (zh) | 一种面向多虚拟机应用的网卡中断控制方法 | |
US11876701B2 (en) | System and method for facilitating operation management in a network interface controller (NIC) for accelerators | |
US11176068B2 (en) | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link | |
CN111656336B (zh) | 一种pcie发送、接收方法及装置、设备和系统 | |
TWI416334B (zh) | 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器 | |
US8677042B2 (en) | Interrupt moderation | |
CN106257434B (zh) | 一种基于增强型外设互连协议总线的数据传输方法及装置 | |
US8549204B2 (en) | Method and apparatus for scheduling transactions in a multi-speed bus environment | |
CN101957808B (zh) | 多cpu间的通信方法、系统及cpu | |
CN102710758A (zh) | 一种基于单片机系统的数据流断点续传方法 | |
CN101753584B (zh) | VxWorks系统下提高智能变电站快速报文处理速度的方法 | |
CN111800226A (zh) | 一种基于硬件仲裁的边带管理电路及方法 | |
CN108304335A (zh) | 一种通过dma接收串口不定长报文的方法 | |
CN104052676B (zh) | 一种发送通路装置及发送通路的数据处理方法 | |
CN116868553A (zh) | 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度 | |
CN107066413A (zh) | 一种用于处理多个总线设备数据的方法、及其总线系统 | |
CN100469055C (zh) | 转发报文的处理方法及处理装置 | |
CN116743317A (zh) | 基于通用芯片互联标准的数据传输方法 | |
CN108063809B (zh) | 机器设备数据采集方法以及采集系统 | |
CN109408426A (zh) | 一种灵活通用的串行通信方法及系统 | |
CN103684945A (zh) | 通用SpaceWire节点装置 | |
CN117097679A (zh) | 一种网络中断的聚合方法、装置及网络通信设备 | |
CN114338270B (zh) | 数据通信方法、装置、电子设备及存储介质 | |
CN113556403B (zh) | 一种用于分布式训练的通信方法及系统 | |
CN110417738A (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 | ||
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. |