CN104583993B - 用于优化半活跃工作负荷的装置和方法 - Google Patents
用于优化半活跃工作负荷的装置和方法 Download PDFInfo
- Publication number
- CN104583993B CN104583993B CN201380042982.4A CN201380042982A CN104583993B CN 104583993 B CN104583993 B CN 104583993B CN 201380042982 A CN201380042982 A CN 201380042982A CN 104583993 B CN104583993 B CN 104583993B
- Authority
- CN
- China
- Prior art keywords
- duration
- packet
- processor
- confirmation
- network interface
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0225—Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
- H04W52/0229—Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal where the received signal is a wanted signal
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
在此描述了用于优化半活跃工作负荷的设备及方法。网络接口设备可被配置成用于通过向分组的发送者传输在持续时间期间接收到的分组的确认来卸载主机平台的数据分组确认责任。当该持续时间结束时,该网络接口设备可触发该主机平台执行对在该持续时间期间接收到的数据分组的分批处理。
Description
在先申请
本申请要求2012年9月12日提交的美国申请序列号13/612,142的优先权益,该申请通过引用以其整体结合在此。
技术领域
在此描述的实施例涉及计算机系统之间的通信。某些实施例涉及这种系统中的网络接口卡(NIC)。
背景技术
移动设备用户期望并且要求移动平台允许更多地参与到通信活动中。因此,移动平台通过一个或多个通信设备提供无处不在的网络连接,以便为移动设备用户提供显著的通信能力。随着某些移动平台活动进入云端,移动平台通信需要进一步增加。例如,随着数据存储活动和内容检索活动正在加快进入云端,移动平台和云端中的服务器之间的网络通信相应地增加。
尽管通信接口设备可消耗移动平台的相对小部分功率,通信活动对总体平台功率要求的影响仍很显著,因为在常规系统中,包括例如处理器、存储器以及总线的整个平台保持活跃以便处理网络分组。
进一步地,因为也许不可能提前断定网络分组将何时到达,整个平台可能需要保持活跃持续延长的时段,甚至在不存在网络流量的情况下。如果未在发送应用期望的时间量内处理网络分组,发送应用可失效或返回错误,并且用户体验可降低。因此,由于通信活动的不确定性,常规移动平台元件可保持在连续的就绪状态以便处理网络分组。这可导致整个移动平台的功耗上升。
附图说明
图1是示出示例实施例可在其中实现的网络的图示。
图2是示出根据示例实施例的计算机系统示例形式的机器的框图,其中可以执行用于致使该机器执行在此讨论的任何一种方法的指令集或指令序列。
图3是示出根据示例实施例的示例实施例可在其中实现的网络接口卡(NIC)的框图,其中可以执行用于致使NIC执行在此讨论的任何一种方法的指令集或指令序列。
图4是示出根据至少一个示例实施例的用于在存在半活跃工作负荷时优化功率的方法的流程图。
具体实施方式
在示例实施例的以下详细描述中,参考形成本描述的一部分并且仅通过说明示出可实践的具体实施例的附图。应当理解可使用其他实施例以及可在不背离示例实施例的范围的情况下做出结构改变。
呈现以下描述以使得本领域技术人员能够创建并使用计算机系统配置以及相关方法和制品从而优化半活跃工作负荷的处理。在至少一个实施例中,传输控制协议(TCP)状态机的部分被卸载到网络接口卡(NIC)以便允许处理器进入或保持在睡眠状态以便降低网络设备的整体平台功耗。
在常规系统中,在计算机上执行的操作系统可在计算机上执行的软件应用和远程发送者之间发起网络连接。网络连接可以是例如TCP连接,并且操作系统可通过设置TCP套接字配置此连接。NIC通过TCP网络连接接收数据分组并且将其传送到计算机的主存储器。在常规系统中,NIC可通过在每次数据传送时通过发送针对每个分组的直接存储器访问(DMA)中断来通知操作系统传送已经完成。
在常规系统中,在接收到中断后,操作系统指示计算机的处理器或CPU处理数据分组并且向发送者发送TCP确认(ACK)消息。在常规系统中,NIC然后通过以太网或无线连接将每个ACK转发到原始发送应用。这种处理可要求计算机的平台组件保持唤醒(或者如果平台组件已经进入低功率状态,则离开低功率状态),因此致使整个平台的不必要的或过量的功率汲取。
某些TCP优化方案可通过延迟并缓冲前述数据传送或者通过延迟中断以便允许将数据处理为猝发来缓解功率汲取。然而,无法在不负面地影响TCP优化算法的情况下在特定时间量内延迟数据传送,因为过量的延迟不必要地增加往返时间(RTT)估计。RTT估计由设备用于帮助确定何时需要重传TCP分组。如果尚未在特定时间量(RTT估计)内确认分组,则发送者假定该分组已丢失并且发送者重传该分组。RTT估计被设置的方式为使得在防止丢失数据的同时优化TCP连接的吞吐量。如果RTT估计过高并且具体地当发生分组传输错误时(无线通信中的常见情况),TCP连接可空闲,同时等待来自客户机的确认分组的到达。这造成连接效率低下并且降低数据吞吐量。
示例实施例允许数据传送之间的时间更长,从而导致功率汲取降低,而不使计时度量失真或者导致TCP连接效率低下。
对实施例的各种修改将对本领域技术人员非常明显,并且在此定义的总体原则可应用于其他实施例和应用而不背离本发明的范围。而且,在以下描述中,列出了许多细节以便解释。然而,本领域技术人员将认识到本发明实施例可在不使用这些特定细节的情况下实践。在其他情况下,未以框图的形式示出公知的结构和过程,以便不使用不必要的细节混淆本发明实施例的描述。因此,本公开不旨在受限于所示出的实施例,而是根据与在此公开的原理和特征相一致的最宽的范围。
图1是示出示例实施例可在其中实现的网络的图示。网络100包括三个设备110-1、110-2以及110-3。然而,将理解的是可存在任何数量的设备。网络100可包括有线通信系统、无线通信系统或其任何组合或形成这些网络的一部分。例如,设备110-1可通过有线连接120-1与设备110-2通信。有线连接120-1可以是例如电线、线缆、总线或以太网连接。
进一步地,设备110-1可通过无线连接120-2与设备110-3通信。无线连接120-2可以是例如Wi-Fi连接或其他类型的射频(RF)连接。进一步地,网络100的一个或多个设备可形成用于为用户提供计算机服务的云计算环境或其他基于计算机集群的环境的一部分。连接120-1和120-2可使用传输控制协议(TCP)在至少一个示例实施例中操作。网络100的设备110-1至110-3可以是任何类型的固定或移动电子设备或资源,包括例如计算机、工作站、膝上计算机、平板计算机、或智能电话。
尽管设备110-1至110-3各自可以是许多不同类型连网设备中的一种,设备110-1至110-3可包括在图2中示出的某些共同元件。以下参照设备110-1讨论图2;然而,将理解的是设备110-2和110-3可包括相同或类似的结构。
图2是示出根据示例实施例的计算机系统示例形式的机器(例如,设备110-1)的框图,可在其中执行用于致使该机器执行在此讨论的任何一种方法的指令集或指令序列。该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络电器、网络路由器、交换机或网桥、或能够执行指定由机器采取的行动的指令(顺序的或以其他方式)的任何机器。进一步地,尽管仅示出了单个机器,术语“机器”还应当包括单独地或结合地执行用于执行在此所讨论的任何一种或多种方法的指令集(或多个指令集)的任何机器集合。
示例设备110-1包括至少一个处理器202(例如,中央处理单元(CPU)、图形处理单元(GPU)或二者、处理器核、计算节点等等))、主存储器204以及静态存储器206,其可通过链路208(例如,总线)与彼此通信。至少一个处理器202、主存储器204以及静态存储器206可在以下被称为“主机”。设备110-1可进一步包括视频显示单元210、字母数字输入设备212(例如,键盘)以及用户接口(UI)导航设备214(例如,鼠标)。在实施例中,视频显示单元210、输入设备212以及UI导航设备214可结合到触摸屏显示器中。设备110-1可附加地包括存储设备216(例如,驱动单元)、信号生成设备218(例如,扬声器)、网络接口卡(NIC)220以及一个或多个传感器(未示出),诸如全球定位系统(GPS)传感器、罗盘、加速计、或其他传感器。
示例实施例允许TCP状态机的特定部分(尤其是响应于数据分组发送ACK的责任)被从处理器202卸载到NIC 220持续一时间段,而无需知道主机的操作系统。换言之,在示例实施例中,不需要对主机操作系统的协议栈做任何改变以便允许从处理器202卸载这种责任。处理器202可进入或停留在睡眠状态,同时发生数据传送而不会损失吞吐量,因为在发送应用所期望的时间内确认所接收的分组。因此,示例实施例将不会增加RTT估计也不会相伴随地降低吞吐量。
存储设备216包括至少一个机器可读介质222,该介质上存储实施在此所述的方法或功能中的任何一个或多个或由其使用的一个或多个数据结构集或指令集224(例如,软件)。指令224还可在其由设备110-1执行过程中完全地或至少部分地驻留在主存储器204、静态存储器206内和/或处理器202内,其中,主存储器204、静态存储器206内和处理器202也构成机器可读介质。
主存储器204进一步包括操作系统205。操作系统205可用于例如支持完全TCP/IP协议栈,包括执行标准TCP连接所需的操作。
尽管机器可读介质222在示例实施例中被示出为单个介质,术语“机器可读介质”可包括存储一个或多个指令224的单个介质或多个介质(例如,中央或分布式数据库、和/或相关联高速缓存和服务器)。术语“机器可读介质”还应当被认为包括能够存储、编码或携带指令以便由机器执行的并且致使机器执行本公开的任何一种或多种方法或者能够存储、编码或携带由这种指令使用或与其相关联的任何有形介质。术语“机器可读介质”因此应当被认为包括但不限于固态存储器、和光学以及磁介质。机器可读介质的具体示例包括非易失性存储器,包括例如半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM))和闪存设备;磁盘,诸如内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。
可进一步通过通信网络226、使用传输介质、经由利用多种已知传输协议中的任一种(例如,HTTP)传输或接收用于实现软件的指令224。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、移动电话网、简易老式电话服务(POTS)网和无线数据网(例如,Wi-Fi、3G和4G LTE/LTE-A或WiMAX网络)。术语“传输介质”还应当被认为包括能够存储、编码或携带指令用于由机器执行的任何无形介质并且包括数字或模拟通信信号或其他无形介质以便促进这种软件的通信。
图3是示出根据示例实施例的示例实施例可在其中实现的网络接口卡(NIC)220的框图,可在其中执行用于致使NIC执行在此讨论的任何一种方法的指令集或指令序列。NIC220通过主机接口300与处理器202和主存储器204(图2)接口连接。主机接口300可以是例如外围组件互连(PCI)、PCI-X、PCI-快速、工业标准架构(ISA)、或其他类型的总线。NIC 220使用网络接口305通过到外部网络226(图2)的网络连接310进行通信。网络连接310可以是有线或无线连接,例如电子电气工程师协会(IEEE)802.11标准所支持的无线局域网(WLAN)连接。
NIC 220可包括NIC处理器315和NIC存储器320。NIC处理器315可与NIC存储器320通信以便存储例如通过网络接口305通过网络连接310接收的数据分组。指令325还可在其由NIC 220执行过程中完全地或至少部分地驻留在NIC处理器315和NIC存储器320内,其中,NIC处理器315和NIC存储器320也构成机器可读介质。
网络接口305可被配置成用于在一持续时间期间从发送者接收多个数据分组。在示例实施例中,该多个数据分组包括流。在示例实施例中,该持续时间的大小可针对包括该多个数据分组的数据流。该持续时间的大小可反映时延量,例如数据流可容忍的时延阈值。该时延阈值可由生成数据分组流的应用设置。
请求TCP连接的软件224、或者操作系统205(图2)通知NIC处理器315包括该多个数据分组的流的相关持续时间。在说明性示例中,数据备份应用可容忍100毫秒的时延,而多媒体内容可仅容忍低得多的时延,因为多媒体应用的较长时延可显著地影响用户体验。因此,用于接收数据备份应用的分组批次的持续时间可比用于接收多媒体内容的持续时间长得多。在其他示例实施例中,该持续时间可基于例如所接收的字节数量或已经在NIC 220和主存储器204(图2)之间发生的传送次数。
在至少一个实施例中,通过网络连接310接收该多个数据分组。NIC处理器315检查所接收的分组的标识符。例如,NIC处理器315可根据示例实施例基于TCP套接字标识符,确定该数据分组流是否应当经受TCP卸载。在至少一个实施例中,该TCP套接字标识符是元组(tuple)。在至少一个实施例中,该元组是用于标识该分组流是否应当经受TCP卸载并且进一步标识TCP套接字对的源和目的IP地址以及端口号的5元组。
在至少一个实施例中,请求发起TCP连接的软件224(图2)设置TCP套接字标识符以便指示选择流进行卸载。在至少一个实施例中,操作系统205(图2)指示通过在对远程发送者的TCP套接字应用编程接口(API)调用中设置TCP套接字标识符来选择流用于卸载。如果该TCP套接字标识符不指示该流被选择用于卸载,则不实现根据示例实施例的方法,并且根据常规方法处理该流。
贯穿该持续时间,网络接口305可被配置成用于通过网络连接310传输该多个数据分组的确认。这些确认可以是例如根据TCP协议的发送者所期望的TCP ACK消息。该TCP ACK消息包括由发送者期望的合适的序列号,该序列号从所接收的分组头部和初始TCP套接字连接建立导出。
在该持续时间期间,NIC处理器315可被配置成用于将该多个数据分组存储在NIC存储器320中。如果已经达到NIC存储器320的预定缓冲器阈值,NIC处理器315通过直接存储器访问(DMA)将NIC存储器320的内容传送到主存储器204(图2)而不生成任何中断,从而使得主机处理器202(图2)和其他主机组件可保持在低功率状态,如果其已经进入低功率状态的话。
在该持续时间之后,在到达与该数据流有关的时延阈值时,主机接口300可被配置成用于传输信号(例如,中断)以便触发主机处理器202对存储在主存储器204中的该多个数据分组进行分批处理。主机接口300可被进一步配置成用于从主机处理器202接收与该多个数据分组中的数据分组相对应的值。网络接口305可被配置成用于使用该值传输在该持续时间之后接收到的下一个数据分组的确认。该值可对应于在该持续时间期间从发送者接收的最后一个数据分组。该值可以是在该持续时间期间接收的最后一个数据分组的序列号。
在该持续时间之后,主机接口300可被配置成用于从主机操作系统205接收对在该持续时间期间从发送者接收的数据分组的确认。例如,当主机处理器202和其他主机组件在完成时延时段之后从低功率状态中苏醒时,主机接口300可从主机操作系统205接收在该持续时间期间接收的所有数据分组的TCP ACK消息。NIC处理器315可被配置成用于无视这些所接收的ACK并且因此NIC处理器315不请求将这些ACK传递到远程发送者,以便避免向远程发送者传输副本ACK。然而,NIC处理器315使用与由主机处理器202处理的最后一个数据分组相对应的ACK的序列号,以便用ACK分组确认下一个数据分组集合中的第一个传入数据分组。基于所接收的ACK分组和该ACK分组中的序列号,发送者可根据TCP流算法的发送者实现方式缩放TCP窗口大小。根据TCP流算法的示例实现方式,发送者可注明该序列号不是所期望的序列号,指示可能的丢失数据分组,并且发送者因此可减小TCP窗口大小,以便防止例如可致使错过或丢弃分组的存储器缓冲器超限。如果该序列号是所期望的序列号,发送者可增大TCP窗口大小,以便更高效地使用网络带宽。然而,发送者可不将TCP窗口大小增大到超过ACK分组内的为设备110-1广告的窗口大小。发送者增大或减小窗口大小的速率可取决于由网络100中的不同设备对TCP的各种实现方式。
如果NIC 220接收到NIC 220不能处理的分组(例如,分组没有序列号,序列号不正确,分组校验和不正确,或者分组不具有所期望的协议类型)或者NIC处理器315检测到套接字标识符包括指示需要特殊处理的标志,NIC处理器315将不会通过网络接口305和网络连接310向发送者回送ACK。作为替代,NIC处理器315将致使通过主机接口300向主机操作系统224传输DMA中断,以便唤醒主机处理器202以及触发主机处理器202尽快处理分组。
图4是示出根据至少一个示例实施例的用于在存在半活跃工作负荷时优化功率的方法的流程图。在框400,在一持续时间期间从远程发送者接收多个数据分组。在实施例中,网络接口设备接收该多个数据分组。在实施例中,该多个数据分组包括流,并且该持续时间与该流的时延阈值相对应。在实施例中,该时延阈值由生成该流的应用设置。可如以上参照图3所述的那样确定该持续时间。可通过如以上参照图3所述的那样发起的TCP套接字接收数据分组。在实施例中,可在NIC存储器320处缓冲分组。
在框402,在该持续时间期间向远程发送者传输该多个数据分组的确认。在实施例中,网络接口设备可根据传输控制协议(TCP)传输这些确认。
在框404,存储该多个数据分组。在实施例中,这些数据分组中的至少一个被缓冲到第一缓冲器中并且在到达该第一缓冲器的阈值时被传送到第二缓冲器,诸如例如以上参照图3所述。在实施例中,该第一缓冲器被结合到网络接口设备中。
在框406,在该持续时间之后,传输信号以便触发处理在该持续时间期间接收的该多个数据分组。在示例实施例中,该信号可以是通过主机接口300传输的中断信号,如以上参照图3所述。
在框408,在该持续时间之后,接收值。该值与在该持续时间期间接收的该多个数据分组中的数据分组相对应。在实施例中,该值与在该持续时间期间接收的最后一个数据分组的序列号相对应。
在框410,在该持续时间之后,向远程发送者传输下一个数据分组的确认。该确认使用在框408接收的值。
在实施例中,该方法可进一步包括在该持续时间之后接收在该持续时间期间接收的该多个数据分组的确认。可从通信地耦合到网络接口设备的处理器接收这些确认。该方法可进一步包括在不传输的情况下无视这些确认。
在实施例中,该方法可进一步包括检测该多个数据分组中的标志值以及唤醒第二设备来基于该检测进行该多个数据分组的处理。
上述示例实施例显著地降低了维持连网设备之间的网络连接(例如TCP连接)的CPU核利用率。常规系统要求主机计算机负责发送期望的握手消息(例如TCP ACK消息),以便网络连接保持活跃并可用。示例实施例向NIC卡卸载发送期望的握手消息的责任,允许CPU唤醒事件之间的空闲间隔增加并且整体主机平台的功率要求降低。
将认识到为了清晰的目的,上述描述参照不同的功能单元或处理器描述了某些实施例。然而,将认识到可在不背离本发明的实施例的情况下使用不同功能单元、处理器或域之间的任何适当的功能性分布。例如,被示出为由分离的处理器或控制器执行的功能可由同一处理器或控制器执行。然而,对具体功能单元的引用仅被视为对用于提供所述功能性的合适装置的引用,而不是指示严格的逻辑或物理结构或组织。
附加注释和示例:
所描述的方法、系统和设备实施例的附加示例包括以下非限制性配置。以下非限制性示例各自可独立成形或者可在任何变换或组合中组合,其中以下或贯穿本公开提供了其他示例中的任何一个或多个。
示例1包括一种网络接口设备,包括:网络接口模块,被配置成用于在持续时间期间从发送者接收多个数据分组并且在该持续时间期间向该发送者传输该多个数据分组的确认;处理器,被配置成用于将该多个数据分组存储在第一缓冲器中;以及主机接口模块,被配置成用于在该持续时间之后传输信号以便触发该多个数据分组的处理并且在该持续时间之后接收与在该持续时间期间接收的该多个数据分组中的数据分组相对应的值,该网络接口模块被进一步配置成用于在该持续时间之后并且使用该值传输从该发送者接收的下一数据分组的确认。
在示例2中,示例1的主题可任选地包括主机接口模块,该主机接口模块被进一步配置成用于在该持续时间之后并且从通信地耦合到该网络接口设备的第二处理器接收在该持续时间期间从该发送者接收的该多个数据分组的确认;以及该处理器被进一步配置成用于在不向该发送者重传的情况下无视由该主机接口模块接收的该确认。
在示例3中,示例1或者示例2的主题可任选地包括该处理器被进一步配置成用于:将该多个数据分组中的至少一个缓冲到第一存储器中;以及当到达该第一存储器的缓冲阈值时,将该多个数据分组中的至少一个传送到与通信地耦合到该网络接口设备的处理器相关联的第二存储器。
在示例4中,示例1-3中的一个或任何组合的主题可任选地包括其中根据传输控制协议(TCP)将确认传输到该发送者。
在示例5中,示例1-4中的一个或任何组合的主题可任选地包括其中该多个数据分组包括流;该持续时间与该流的时延阈值相对应;以及该时延阈值由生成该流的应用来设置。
在示例6中,示例1-5中的一个或任何组合的主题可任选地包括其中该值与在该持续时间期间从该发送者接收的最后一个数据分组相对应。
在示例7中,示例1-6中的一个或任何组合的主题可任选地包括其中该值是在该持续时间期间接收的该最后一个数据分组的序列号。
在示例8中,示例1-6中的一个或任何组合的主题可任选地包括其中该处理器被进一步配置成用于:检测该多个数据分组中的至少一个中的标志值;唤醒通信地耦合到该网络接口设备的处理器;以及触发通信地耦合到该网络接口设备的该处理器来基于检测到该标志值处理该多个数据分组。
示例9可包括或可任选地与示例1-8中的一个或任何组合的主题组合以便包括一种设备,该设备包括:处理器,被配置成用于在睡眠模式和活跃模式下操作;第一缓冲器;以及网络接口卡(NIC),该NIC用于:在持续时间期间接收多个数据分组,该持续时间由在该处理器上执行的操作系统和软件应用中的至少一个确定;在该持续时间期间传输该多个数据分组的确认;将该多个数据分组存储在该第一缓冲器中;以及在该持续时间之后向该处理器传输信号以便触发该处理器处理该多个数据分组;在该持续时间之后从该处理器接收与在该持续时间期间接收的该多个数据分组中的数据分组相对应的值;以及在该持续时间之后并且使用该值传输下一数据分组的确认;其中,该设备被配置成用于将该处理器维持在该睡眠模式中该持续时间的至少一部分。
在示例10中,示例9的主题可任选地包括其中该NIC被进一步配置成用于:在该持续时间之后从该处理器接收在该持续时间期间接收的该多个数据分组的确认;以及在不重传的情况下无视从该处理器接收的该确认。
在示例11中,示例9-10中的一个或任何组合的主题可任选地包括其中:该多个数据分组包括流;该持续时间与该流的时延阈值相对应;以及该时延阈值由生成该流的应用设置。
在示例12中,示例9-11中的一个或任何组合的主题可任选地包括其中该设备进一步包括第二缓冲器,该第二缓冲器与该NIC相关联;以及该NIC被进一步配置成用于:将该多个数据分组中的至少一个缓冲到该第二缓冲器中;以及当到达该第二缓冲器的阈值时,将该多个数据分组中的至少一个从该第二缓冲器传送到该第一缓冲器。
在示例13中,示例9-12中的一个或任何组合的主题可任选地包括其中该NIC被进一步配置成用于:检测该多个数据分组中的标志值;唤醒该处理器;以及传输信号以便触发该处理器来基于检测到该标志值处理该多个数据分组。
示例14可包括或可任选地与示例1-13中的一个或任何组合的主题组合以便包括:一种包括指令的机器可读存储介质,当由机器执行时,该指令致使该机器:通过网络接口设备在持续时间期间从远程发送者接收多个数据分组;在该持续时间期间向该远程发送者传输该多个数据分组的确认;存储在该持续时间期间接收的该多个数据分组;在该持续时间之后传输信号以便触发对在该持续时间期间接收的该多个数据分组的处理;在该持续时间之后接收与在该持续时间期间接收的该多个数据分组中的数据分组相对应的值;以及在该持续时间之后并且使用该值向该远程发送者传输下一数据分组的确认。
在示例15中,示例14的主题可任选地包括通过该网络接口设备在该持续时间之后并且从通信地耦合到该网络接口设备的处理器接收对在该持续时间期间接收的该多个数据分组的确认;以及在不向该远程发送者重传的情况下无视所接收的确认。
在示例16中,示例14-15中的一个或任何组合的主题可任选地包括进一步致使该机器执行以下动作的指令:将该多个数据分组中的至少一个缓冲到第一缓冲器中;以及当到达该第一缓冲器的缓冲阈值时,将该多个数据分组中的该至少一个传送到第二缓冲器。
在示例17中,示例14-16中的一个或任何组合的主题可任选地包括其中根据传输控制协议(TCP)传输确认。
在示例18中,示例14-17中的一个或任何组合的主题可任选地包括其中该多个数据分组包括流;该持续时间与该流的时延阈值相对应;以及该时延阈值由生成该流的应用来设置。
在示例19中,示例14-18中的一个或任何组合的主题可任选地包括其中该值与在该持续时间期间接收的该最后一个数据分组的序列号相对应。
在示例20中,示例14-19中的一个或任何组合的主题可任选地包括进一步致使该机器执行以下动作的指令:检测该多个数据分组中的标志值;唤醒第二设备以便基于该检测来处理该多个数据分组。
在此该的示例可包括多个组件、模块或机构或可在其上操作。模块是能够执行指定操作并且可被以某种方式配置或安排的有形实体。在示例中,可以用指定的方式将电路安排为(例如,内部地或相对于外部实体,诸如其他电路)模块。在示例中,一个或多个计算机系统(例如,独立式、客户机或服务器计算机系统)或一个或多个硬件处理器中的全部或一部分可由固件或软件(例如,指令、应用部分或应用)配置为操作以执行指定操作的模块。在示例中,该软件可驻留(1)在非瞬态机器可读介质上或(2)在传输信号内。在示例中,当由模块的底层硬件执行时,该软件致使该硬件执行指定操作。
因此,术语“模块”被理解为包含有形实体,该实体是可物理地构建、具体地配置(例如,硬连线)或临时地(例如,瞬态地)配置(例如,编程)以便以指定方式操作或执行在此描述的任何操作的一部分或全部的实体。考虑其中临时地配置模块的示例,模块的一次实例化可不与同一或不同模块的另一次实例化同时存在。例如,当模块包括使用软件配置的通用硬件处理器时,该通用硬件处理器可在不同时间被配置为对应的不同模块。因此,软件可将硬件处理器配置为例如在一次实例化时构成具体的模块以及在另一次实例化时构成不同的模块。
实施例可在硬件、固件和软件中的一种或其组合中实现。实施例还可被实现为存储在计算机可读存储设备上的指令,这些指令可由至少一个处理器读取并执行以便执行在此描述的操作。计算机可读存储设备可包括用于以存储机器(例如,计算机)可读形式的信息的任何非瞬态机制。例如,计算机可读存储设备可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备以及其他存储设备和介质。
提供本公开的摘要以便快速地确定本技术公开的性质。与本理解一起提交,但其将不用于解释或限制权利要求书的范围或含义。附加地,在前述详细描述中,可看到为了使本公开流畅的目的,各种特征可被一起分组在单个实施例中。本公开的方法不应被解释为反映以下意图:所要求保护的实施例要求比在每条权利要求中明确陈述的特征更多的特征。而是,如以下权利要求书所反映的,发明主题在于比单个公开实施例的全部特征更少。因此,以下权利要求书在此被结合到详细描述中,其中,每条权利要求以其自身作为单独的实施例。
Claims (29)
1.一种网络接口设备,包括:
网络接口模块,被配置成用于在持续时间期间从发送者接收多个数据分组并且在所述持续时间期间向所述发送者传输所述多个数据分组的确认,其中所述多个数据分组包括流,且所述持续时间与所述流的时延阈值相对应;
处理器,被配置成用于将所述多个数据分组存储在第一缓冲器中;以及
主机接口模块,被配置成用于在所述持续时间之后传输信号以便触发对所述多个数据分组的处理并且在所述持续时间之后接收与在所述持续时间期间接收的所述多个数据分组中的数据分组相对应的值,其中所述值与在所述持续时间期间接收的最后一个数据分组的序列号相对应,所述网络接口模块被进一步配置成用于在所述持续时间之后并且使用所述值传输从所述发送者接收的下一数据分组的确认。
2.如权利要求1所述的网络接口设备,其中:
所述主机接口模块被进一步配置成用于在所述持续时间之后并且从通信地耦合到所述网络接口设备的第二处理器接收在所述持续时间期间从所述发送者接收的所述多个数据分组的确认;以及
所述处理器被进一步配置成用于在不向所述发送者重传的情况下无视由所述主机接口模块接收的所述确认。
3.如权利要求1所述的网络接口设备,其中,所述处理器被进一步配置成用于:
将所述多个数据分组中的至少一个缓冲到第一存储器中;以及
当到达所述第一存储器的缓冲阈值时,将所述多个数据分组中的至少一个传送到与通信地耦合到所述网络接口设备的处理器相关联的第二存储器。
4.如权利要求1所述的网络接口设备,其中,根据传输控制协议(TCP)将所述确认传输到所述发送者。
5.如权利要求1所述的网络接口设备,其中
所述时延阈值由生成所述流的应用来设置。
6.如权利要求1所述的网络接口设备,其中,所述处理器被进一步配置成用于:
检测所述多个数据分组中的至少一个中的标志值;
唤醒通信地耦合到所述网络接口设备的处理器;以及
触发通信地耦合到所述网络接口设备的所述处理器以便基于检测到所述标志值来处理所述多个数据分组。
7.一种电子设备,包括:
处理器,被配置成用于在睡眠模式和活跃模式下操作;
第一缓冲器;以及
网络接口卡NIC,所述NIC用于:
在持续时间期间接收多个数据分组,其中所述多个数据分组包括流,且所述持续时间与所述流的时延阈值相对应;
在所述持续时间期间传输所述多个数据分组的确认;
将所述多个数据分组存储在所述第一缓冲器中;
在所述持续时间之后向所述处理器传输信号以便触发所述处理器来处理所述多个数据分组;
在所述持续时间之后从所述处理器接收与在所述持续时间期间接收的所述多个数据分组中的数据分组相对应的值,其中所述值与在所述持续时间期间接收的最后一个数据分组的序列号相对应;以及
在所述持续时间之后并且使用所述值传输下一分组的确认;
其中,所述设备被配置成用于将所述处理器维持在所述睡眠模式中所述持续时间的至少一部分。
8.如权利要求7所述的设备,其中,所述NIC被进一步配置成用于:
从所述处理器并且在所述持续时间之后接收在所述持续时间期间接收的所述多个数据分组的确认;以及
在不重传的情况下无视从所述处理器接收的所述确认。
9.如权利要求7所述的设备,其中:
所述时延阈值由生成所述流的应用来设置。
10.如权利要求7所述的设备,其中,所述设备进一步包括第二缓冲器,所述第二缓冲器与所述NIC相关联;以及
所述NIC被进一步配置成用于:
将所述多个数据分组中的至少一个缓冲到所述第二缓冲器中;以及
当到达所述第二缓冲器的阈值时,将所述多个数据分组中的至少一个从所述第二缓冲器传送到所述第一缓冲器。
11.如权利要求7所述的设备,其中,所述NIC被进一步配置成用于:
检测所述多个数据分组中的标志值;
唤醒所述处理器;以及
传输信号以便触发所述处理器基于检测到所述标志值来处理所述多个数据分组。
12.一种计算机,包括:
存储器,用于存储指令;
处理器,与所述存储器耦合,所述处理器响应于所述指令用于:
通过网络接口设备在持续时间期间从远程发送者接收多个数据分组,其中所述多个数据分组包括流,且所述持续时间与所述流的时延阈值相对应;
在所述持续时间期间向所述远程发送者传输所述多个数据分组的确认;
存储在所述持续时间期间接收的所述多个数据分组;
在所述持续时间之后传输信号以便触发对在所述持续时间期间接收的所述多个数据分组的处理;
在所述持续时间之后接收与在所述持续时间期间接收的所述多个数据分组中的数据分组相对应的值,其中所述值与在所述持续时间期间接收的最后一个数据分组的序列号相对应;以及
在所述持续时间之后并且使用所述值向所述远程发送者传输下一数据分组的确认。
13.如权利要求12所述的计算机,所述处理器响应于所述指令进一步用于:
通过所述网络接口设备在所述持续时间之后并且从通信地耦合到所述网络接口设备的处理器接收对在所述持续时间期间接收的所述多个数据分组的确认;以及
在不向所述远程发送者重传的情况下无视所接收的确认。
14.如权利要求12所述的计算机,所述处理器响应于所述指令进一步用于:
将所述多个数据分组中的至少一个缓冲到第一缓冲器中;以及
当到达所述第一缓冲器的缓冲阈值时,将所述多个数据分组中的所述至少一个传送到第二缓冲器。
15.如权利要求12所述的计算机,其中,
根据传输控制协议(TCP)传输所述确认。
16.如权利要求12所述的计算机,其中:
所述时延阈值由生成所述流的应用来设置。
17.如权利要求12所述的计算机,所述处理器响应于所述指令进一步用于:
检测所述多个数据分组中的标志值;以及
唤醒第二设备以便基于所述检测来进行对所述多个数据分组的处理。
18.一种包括指令的机器可读存储介质,当由机器执行时,所述指令致使所述机器:
通过网络接口设备在持续时间期间从远程发送者接收多个数据分组,其中所述多个数据分组包括流,且所述持续时间与所述流的时延阈值相对应;
在所述持续时间期间向所述远程发送者传输所述多个数据分组的确认;
存储在所述持续时间期间接收的所述多个数据分组;
在所述持续时间之后传输信号以便触发对在所述持续时间期间接收的所述多个数据分组的处理;
在所述持续时间之后接收与在所述持续时间期间接收的所述多个数据分组中的数据分组相对应的值,其中所述值与在所述持续时间期间接收的最后一个数据分组的序列号相对应;以及
在所述持续时间之后并且使用所述值向所述远程发送者传输下一数据分组的确认。
19.如权利要求18所述的机器可读存储介质,所述指令进一步致使所述机器:
通过所述网络接口设备在所述持续时间之后并且从通信地耦合到所述网络接口设备的处理器接收对在所述持续时间期间接收的所述多个数据分组的确认;以及
在不向所述远程发送者重传的情况下无视所接收的确认。
20.如权利要求18所述的机器可读存储介质,所述指令进一步致使所述机器:
将所述多个数据分组中的至少一个缓冲到第一缓冲器中;以及
当到达所述第一缓冲器的缓冲阈值时,将所述多个数据分组中的所述至少一个传送到第二缓冲器。
21.如权利要求18所述的机器可读存储介质,其中,
根据传输控制协议(TCP)传输所述确认。
22.如权利要求18所述的机器可读存储介质,其中:
所述时延阈值由生成所述流的应用来设置。
23.如权利要求18所述的机器可读存储介质,所述指令进一步致使所述机器:
检测所述多个数据分组中的标志值;以及
唤醒第二设备以便基于所述检测来进行对所述多个数据分组的处理。
24.一种用于通信的设备,包括:
用于通过网络接口设备在持续时间期间从远程发送者接收多个数据分组的装置,其中所述多个数据分组包括流,且所述持续时间与所述流的时延阈值相对应;
用于在所述持续时间期间向所述远程发送者传输所述多个数据分组的确认的装置;
用于存储在所述持续时间期间接收的所述多个数据分组的装置;
用于在所述持续时间之后传输信号以便触发对在所述持续时间期间接收的所述多个数据分组的处理的装置;
用于在所述持续时间之后接收与在所述持续时间期间接收的所述多个数据分组中的数据分组相对应的值的装置,其中所述值与在所述持续时间期间接收的最后一个数据分组的序列号相对应;以及
用于在所述持续时间之后并且使用所述值向所述远程发送者传输下一数据分组的确认的装置。
25.如权利要求24所述的设备,进一步包括:
用于通过所述网络接口设备在所述持续时间之后并且从通信地耦合到所述网络接口设备的处理器接收对在所述持续时间期间接收的所述多个数据分组的确认的装置;以及
用于在不向所述远程发送者重传的情况下无视所接收的确认的装置。
26.如权利要求24所述的设备,进一步包括:
用于将所述多个数据分组中的至少一个缓冲到第一缓冲器中的装置;以及用于当到达所述第一缓冲器的缓冲阈值时,将所述多个数据分组中的所述至少一个传送到第二缓冲器的装置。
27.如权利要求24所述的设备,其中,
根据传输控制协议(TCP)传输所述确认。
28.如权利要求24所述的设备,其中:
所述时延阈值由生成所述流的应用来设置。
29.如权利要求24所述的设备,进一步包括:
用于检测所述多个数据分组中的标志值的装置;以及
用于唤醒第二设备以便基于所述检测来进行对所述多个数据分组的处理的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/612,142 | 2012-09-12 | ||
US13/612,142 US9155046B2 (en) | 2012-09-12 | 2012-09-12 | Optimizing semi-active workloads |
PCT/US2013/059247 WO2014043224A1 (en) | 2012-09-12 | 2013-09-11 | Apparatus and method for optimizing semi-active workloads |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104583993A CN104583993A (zh) | 2015-04-29 |
CN104583993B true CN104583993B (zh) | 2018-03-30 |
Family
ID=50233196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380042982.4A Expired - Fee Related CN104583993B (zh) | 2012-09-12 | 2013-09-11 | 用于优化半活跃工作负荷的装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9155046B2 (zh) |
CN (1) | CN104583993B (zh) |
DE (1) | DE112013004449T8 (zh) |
WO (1) | WO2014043224A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9155046B2 (en) | 2012-09-12 | 2015-10-06 | Intel Corporation | Optimizing semi-active workloads |
US9602437B1 (en) * | 2012-10-03 | 2017-03-21 | Tracey M. Bernath | System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing |
US20170180272A1 (en) * | 2012-10-03 | 2017-06-22 | Tracey Bernath | System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing |
EP3958512A1 (en) * | 2013-07-31 | 2022-02-23 | Assia Spe, Llc | Method and apparatus for continuous access network monitoring and packet loss estimation |
US9864760B1 (en) * | 2013-12-05 | 2018-01-09 | EMC IP Holding Company LLC | Method and system for concurrently backing up data streams based on backup time estimates |
US20160226628A1 (en) * | 2015-01-30 | 2016-08-04 | Huawei Technologies Co., Ltd. | System and method for data retransmission |
US11036438B2 (en) | 2017-05-31 | 2021-06-15 | Fmad Engineering Kabushiki Gaisha | Efficient storage architecture for high speed packet capture |
US11392317B2 (en) | 2017-05-31 | 2022-07-19 | Fmad Engineering Kabushiki Gaisha | High speed data packet flow processing |
US11394666B2 (en) * | 2017-12-18 | 2022-07-19 | Intel Corporation | Scalable communication with a packet processing unit |
US11646980B2 (en) * | 2018-03-30 | 2023-05-09 | Intel Corporation | Technologies for packet forwarding on ingress queue overflow |
JP7042677B2 (ja) * | 2018-04-04 | 2022-03-28 | 任天堂株式会社 | 情報処理装置、制御方法、情報処理システム、および、制御プログラム |
US11129106B2 (en) * | 2019-01-31 | 2021-09-21 | Denso International America, Inc. | Systems and methods for a transceiver that performs network functions on behalf of a device in a low-power mode |
WO2022051985A1 (en) * | 2020-09-10 | 2022-03-17 | Qualcomm Incorporated | Managing a communication link for transfer control protocol communications |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101253745A (zh) * | 2005-07-18 | 2008-08-27 | 博通以色列研发公司 | 用于透明tcp卸载的方法和系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122748A (en) * | 1998-03-31 | 2000-09-19 | Compaq Computer Corporation | Control of computer system wake/sleep transitions |
US7898994B2 (en) * | 2002-02-25 | 2011-03-01 | Hewlett-Packard Development Company, L.P. | Power saving in multi-processor device |
US7346701B2 (en) * | 2002-08-30 | 2008-03-18 | Broadcom Corporation | System and method for TCP offload |
US7606208B2 (en) * | 2002-12-09 | 2009-10-20 | Avaya Inc. | Distributed architecture for deploying multiple wireless local-area networks |
US7421602B2 (en) * | 2004-02-13 | 2008-09-02 | Marvell World Trade Ltd. | Computer with low-power secondary processor and secondary display |
US20060146769A1 (en) * | 2004-12-31 | 2006-07-06 | Patel Anil N | Method of operating a WLAN mobile station |
US8140087B2 (en) * | 2007-03-19 | 2012-03-20 | Intel Corporation | Techniques for always on always connected operation of mobile platforms using network interface cards |
US7801046B2 (en) | 2008-04-28 | 2010-09-21 | Oracle America, Inc. | Method and system for bandwidth control on a network interface card |
US8495403B2 (en) | 2008-12-31 | 2013-07-23 | Intel Corporation | Platform and processor power management |
US20110158115A1 (en) | 2009-04-01 | 2011-06-30 | Texas Instruments Inc. | Power Efficiency and Packet Delivery Ratio Through Micro Rate Control at Access Point Functionality Enabled Devices |
JP2011022018A (ja) | 2009-07-16 | 2011-02-03 | Mitsubishi Electric Corp | 静電容量型加速度センサー |
KR101102349B1 (ko) * | 2009-12-29 | 2012-01-03 | 한국과학기술원 | 무선 통신망에서 수면모드를 제어하는 방법 및 장치 |
KR101807732B1 (ko) | 2010-03-09 | 2018-01-18 | 삼성전자주식회사 | 파워 세이빙을 위한 멀티 유저 무선 네트워크 및 멀티 유저 무선 네트워크에서 단말 및 액세스 포인트의 통신 방법 |
CN103597883B (zh) * | 2011-04-18 | 2017-12-26 | 马维尔国际贸易有限公司 | 减少无线通信系统中的功率消耗 |
US9155046B2 (en) | 2012-09-12 | 2015-10-06 | Intel Corporation | Optimizing semi-active workloads |
-
2012
- 2012-09-12 US US13/612,142 patent/US9155046B2/en not_active Expired - Fee Related
-
2013
- 2013-09-11 DE DE112013004449.8T patent/DE112013004449T8/de active Active
- 2013-09-11 CN CN201380042982.4A patent/CN104583993B/zh not_active Expired - Fee Related
- 2013-09-11 WO PCT/US2013/059247 patent/WO2014043224A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101253745A (zh) * | 2005-07-18 | 2008-08-27 | 博通以色列研发公司 | 用于透明tcp卸载的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
DE112013004449T5 (de) | 2015-07-23 |
WO2014043224A1 (en) | 2014-03-20 |
CN104583993A (zh) | 2015-04-29 |
DE112013004449T8 (de) | 2015-10-08 |
US9155046B2 (en) | 2015-10-06 |
US20140071866A1 (en) | 2014-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104583993B (zh) | 用于优化半活跃工作负荷的装置和方法 | |
US10788992B2 (en) | System and method for efficient access for remote storage devices | |
US20220309025A1 (en) | Multi-path rdma transmission | |
US11146362B2 (en) | Internet of things data transmission method, device and system | |
US10873613B2 (en) | TCP processing for devices | |
WO2016187813A1 (zh) | 一种光电混合网络的数据传输方法及装置 | |
CN106980582B (zh) | 数据处理方法和装置 | |
US8953631B2 (en) | Interruption, at least in part, of frame transmission | |
US9558132B2 (en) | Socket management with reduced latency packet processing | |
CN104796337A (zh) | 一种转发报文的方法及装置 | |
TW200814672A (en) | Method and system for a user space TCP offload engine (TOE) | |
US9774651B2 (en) | Method and apparatus for rapid data distribution | |
KR20180089548A (ko) | 네트워킹 기술들 | |
JP2016510929A5 (zh) | ||
CN105100140B (zh) | 文件传输方法和系统 | |
EP3361389A1 (en) | Tcp processing for devices | |
WO2017219815A1 (zh) | 消息传输系统、消息发送方法和装置、接收方法和装置 | |
JP2014123363A5 (zh) | ||
WO2005104478A3 (en) | Network interface card with rdma capability | |
JP2017530574A (ja) | 通信ネットワークでのシグナリングのための方法およびデバイス | |
US20150016321A1 (en) | Performance in a direct communication link environment | |
KR101388408B1 (ko) | 복수의 컴퓨팅 디바이스들로의 일대다 데이터 송신을 용이하게 하기 위한 방법 및 시스템 | |
CN103916906A (zh) | 对用户数据报文分发处理的方法、设备与系统 | |
US9253722B2 (en) | Network interface for reduced host sleep interruption | |
WO2016176942A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180330 Termination date: 20190911 |
|
CF01 | Termination of patent right due to non-payment of annual fee |