用于在计算设备的网络触发的唤醒期间延迟分组的方法、设备和系统的制作方法

xiaoxiao2020-9-10  6

用于在计算设备的网络触发的唤醒期间延迟分组的方法、设备和系统的制作方法
【专利摘要】一种用于在主计算设备的网络触发的唤醒期间延迟对进入分组的传递的方法、设备和系统,包括:通过网络从远程计算设备接收一个或多个分组。在一个或多个组件从低功率的功率被管理状态转变到可操作的功率被管理状态的同时,主计算设备保存或缓冲进入分组以延迟传递。在经过了参考的时间之后,主计算设备可以保存并释放分组。另外,主计算设备可以在接收到关于一个或多个组件已经从低功率状态转变到可操作状态的通知,而保存并释放、缓冲并注入、或者缓冲并重放所述分组。可以向远程计算设备确认被延迟的分组,以降低或最小化建立连接所需要的总时间。
【专利说明】用于在计算设备的网络触发的唤醒期间延迟分组的方法、设备和系统

【背景技术】
[0001]现代计算设备已经变得日益依赖于基于网络的内容和服务来提供增强的用户体验。结果是,提供基于网络的内容和服务的主计算设备需要用于对通过网络接收到的请求进行应答。为了提供这种可用性,主计算设备常常被配置成以总是开机和总是连接的方式进行操作。但是,由于提高的能量代价和增加数量的“绿色倡议”,许多基于网络的内容和服务提供商正在使用通常被内置在主计算设备中的各种能量节省、功率被管理状态,诸如例如低功率睡眠或休眠状态。
[0002]为了提高基于网络的内容和服务的可用性,服务提供商可以将主计算设备配置成在通过网络从请求设备接收到一个或多个特殊标识的分组(后面被称为分组或唤醒分组)时远程地苏醒。通常,请求设备期望在发送用于发起连接的分组之后不久就与主计算设备形成可靠的连接。不幸的是,主计算设备的一个或多个组件在接收到触发苏醒的初始分组之后常常花费一些时间量来达到可操作状态。这在具有多个互相关组件的复杂主计算设备中尤其如此。结果是,初始分组常常丢失,并且请求设备通常需要以增加的时间间隔重新发送该分组,这进而增加了建立连接所需要的总时间。

【专利附图】

【附图说明】
[0003]在附图中,通过例子的方式而不是限制的方式示出了本文描述的发明。为了说明的简单和清楚,未必按比例绘制图中所示的元件。例如,为了清楚起见,一些元件的尺寸可以相对于其它元件而被夸大。此外,在适当考虑的情况下,参考标记已经在图当中进行了重复以指示相应或类似的元件。
[0004]图1是用于在计算设备的网络触发的唤醒期间延迟进入分组的系统的至少一个实施例的简化框图;
[0005]图2是图1的系统的主计算设备的环境的至少一个实施例的简化框图;
[0006]图3是用于在网络触发的唤醒期间延迟并释放进入分组的至少一个实施例的简化流程图,所述方法可以由图1和2中的主计算设备来执行;
[0007]图4是图3的用于延迟并释放进入分组的方法的至少一个实施例的简化活动流程图;
[0008]图5是用于在网络触发的唤醒期间缓冲并注入或重放进入分组以引入延迟的方法的至少一个实施例的简化流程图,所述方法可以由图1和2中的主计算设备来执行;
[0009]图6是图5的用于缓冲并注入或重放进入分组的方法的至少一个实施例的简化活动流程图;以及
[0010]图7是图1的系统使能以及禁止对进入分组的延迟的方法的至少一个实施例的简化流程图。

【具体实施方式】
[0011]虽然本公开内容的构思容易受到各种修改和替换形式的影响,但是已经在附图中通过例子的方式示出了其特定的示例性实施例,并且将在本文中详细描述这些示例性实施例。然而,应当理解的是,并不存在将本公开内容的构思限制于所公开的具体形式的意图,而是相反,意图在于涵盖与本公开内容和所附权利要求一致的所有修改、等价和替换。
[0012]在以下描述中,给出了许多具体细节,例如逻辑实现、操作码、用于指定操作数的方式、资源划分/共享/复制实现、系统组件的类型和相互关系、以及逻辑划分/集成选择,以便提供对本公开内容的更全面的理解。然而,本领域技术人员将清楚的是,可以在不具有这些具体细节的情况下实现本公开内容的实施例。在其它实例中,为了不模糊本发明,并没有示出控制结构、门电平电路和全部软件指令序列。本领域普通技术人员利用所包括的描述将能够实现适当的功能,而不需要过度的实验。
[0013]说明书中提及“一个实施例”、“实施例”、“示例性实施例”等等是指所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可能未必都包括所述特定特征、结构或特性。此外,这样的短语未必是指同一实施例。另外,当结合实施例描述特定特征、结构或特性时,所主张的是,结合其它实施例(不管是否明确描述)来实现这样的特征、结构或特性处于本领域技术人员的知识范围内。
[0014]可以用硬件、固件、软件或其任意组合来实现本发明的实施例。用计算机系统实现的本发明的实施例可以包括组件之间的一个或多个基于总线的互连和/或组件之间的一个或多个点对点互连。本发明的实施例还可以被实现成由暂时性或非暂时性机器可读介质执行的或存储在其上的指令,其可以由一个或多个处理器读取并执行。机器可读介质可以体现成用于以机器(例如,计算设备)可读形式来存储或发送信息的任意设备、机制或物理结构。例如,机器可读介质可以被体现成只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;小型或微SD卡,存储棒、电信号以及其它。
[0015]在附图中,为了便于描述,可以示出示意性元件(例如表示设备、模块、指令块和数据元素的那些元件)的具体布置或顺序。但是,本领域技术人员将理解的是,附图中这些示意性元件的具体顺序或布置并不意味着暗示需要特定的处理顺序或次序或者过程的分害I]。此外,附图中包括示意性元件并不意味着暗示在所有的实施例中都需要这样的元件,或者,在某些实施例中,这样的元件所表示的特征可能并不包括在其它元件中或者与其它元件组合。
[0016]一般地,可以使用任何适当形式的机器可读指令(例如,软件或固件应用、程序、函数、模块、例程、过程、程序、插件、小应用、小挂件、代码段和/或其它)来实现用于表示指令块的示意性元件,并且可以使用任意适当的编程语言、库、应用程序接口(API)和/或其它软件开发工具来实现每一个这样的指令。例如,可以使用Java、C++和/或其它编程语言来实现一些实施例。类似地,可以使用任何适当的电子布置或结构(例如寄存器、数据存储、表、记录、阵列、索引、哈希、映射、树、列表、图、文件(具有任意的文件类型)、文件夹、目录、数据库和/或其它)来实现用于表示数据或信息的示意性元件。
[0017]此外,在附图中,在使用连接元件(例如实线或虚线或箭头)来示出两个或更多个其它示意性元件之间或当中的连接、关系或关联的情况下,缺少任何这样的连接元件并不意味着暗示可能不存在连接、关系或关联。换句话说,为了不模糊本公开内容,在附图中,可能没有示出元件之间的一些连接、关系或关联。此外,为了便于解释,可以使用单个的连接元件来表示元件之间的多个连接、关系或关联。例如,在连接元件表示信号、数据或指令的传输的情况下,本领域技术人员应当理解的是,这样的元件可以表示一个或多个信号线(例如总线),用以实现所述传输,如可能需要的。
[0018]现在参考图1,用于在处于低功率状态的计算设备的网络发起的还清期间延迟进入分组的系统100包括主计算设备102、远程计算设备130和通信网络140。主计算设备102可以接收远程计算设备130通过通信网络140发送的用以发起和/或维持连接的分组。在一些实施例中,所接收的分组可以触发唤醒过程的发起,以将主计算设备102或者主计算设备102的一个或多个组件从低功率状态转换到可操作功率状态。在这样的实施例中,所接收的分组可以表示唤醒分组和发起和/或维持连接的分组两者。在执行唤醒过程期间,主计算设备102可以延迟所述分组到目的地组件的传送,同时主计算设备102实现完全可操作的功率状态。例如,在一些实施例中,主计算设备102可以延迟所接收的分组到一个或多个组件(例如,固件、硬件、软件、操作系统、应用等)的传送,同时主计算设备102或者主计算设备102的一个或多个组件实现完全可操作的功率状态。一旦主计算设备和/或主计算设备的一个或多个组件(例如,固件、硬件、软件、操作系统、应用、服务等)已经达到了可操作的状态,主计算设备102就可以释放、注入或重放被延迟的分组,以用于进一步处理。用这种方式,可以降低和/或最小化连接的总时间,这是因为主计算设备102可能不需要等待远程计算设备130的网络栈重新发送初始的分组,要不然该分组可能已经丢失。结果是,可以减少连接错误,并且可以改善在网络触发的唤醒之后进入连接的可靠性和/或稳定性。
[0019]如下面更详细讨论的,主计算设备102可以在释放分组以进行进一步处理之前将所述分组保存和/或缓冲一个参考延迟时间。另外或可替换地,在一些实施例中,主计算设备102可以缓冲和/或保存所述分组,直到被通知主计算设备102的一个或多个组件已经达到完全可操作的功率状态并因而可用于进一步处理所述分组为止。在接收到这样的通知时,主计算设备102可以重放和/或注入所述分组以便由一个或多个可用组件进行进一步处理。应当理解的是,在一些实施例中,从远程计算设备130接收到的初始分组可以包括用于发起新连接和/或维持与主计算设备和/或主计算设备102的一个或多个组件(例如,固件、硬件、软件、操作系统、应用、服务等)的现有连接的分组。然而,接收到的分组可以另外地或可替换地触发唤醒过程在主计算设备102上的执行,以将一个或多个组件从低功率状态转变到可操作功率状态或者准备就绪状态。
[0020]主计算设备102可以被实现为任意类型的用于处理数据并与远程设备通信的计算设备。例如,主计算设备102可以被实现为计算平板/阅读器、膝上型计算机、移动互联网设备(MID)、手持计算机、智能电话、个人数字助理、电子读书器或者其它用于存储并处理数据和/或通过网络传输、存储、保持以及传送数据的计算设备。在图1的示例性实施例中,主计算设备102包括处理器104、1/0子系统110、存储器108、数据存储设备116、通信电路114以及一个或多个外围设备118。在一些实施例中,前述组件中的若干个组件可以被并入到主计算设备102的母板上,而其它组件可以通信地经由例如外围端口耦合到母板。此外,应当清楚的是,主计算设备102可以包括通常在计算设备中发现的其它组件、子组件和设备,为了描述的清楚性,在图1中并没有示出它们。
[0021]主计算设备102或者主计算设备102的一个或多个组件可以在多个不同的功率被管理状态中操作。例如,主计算设备102的一个或多个组件可以在睡眠状态(例如,低功率状态)中操作。在这样的实施例中,在低功率状态中操作的组件通常是不可访问(例如不可用于)以处理来自远程计算设备130或来自主计算设备102的其它组件的数据。另外或替换地,在其它实施例中,主计算设备102的一个或多个组件可以在“通电”和完全可操作的功率状态中操作。在这种功率状态中操作的组件通常可访问(例如可用)以处理来自远程计算设备130或来自主计算设备102的其它组件的数据。应当理解的是,虽然在示例性实施例中主计算设备102被描述为包括低功率和可操作功率状态,但是主计算设备102可以包括其它功率被管理状态。例如,主计算设备102可以另外或可替换地包括任意数量的其它功率被管理状态(例如,待机、休眠、断电等)。另外,在一些实施例中,主计算设备102和/或主计算设备102的一个或多个组件可以在任意数量的准备就绪状态(例如,可用、不可用、受限可用性等)中操作。
[0022]主计算设备102的处理器104可以被实现成任意类型的能够执行软件/固件的处理器,例如微处理器、数字信号处理器、微控制器等。处理器104示例性地被实现为具有处理器核心106的单核处理器。然而,在其它实施例中,处理器104可以被实现成具有多个处理器核心106的多核处理器。另外,主计算设备102可以包括具有一个或多个处理器核心106的另外的处理器104。
[0023]主计算设备102的I/O子系统110可以被实现成电路和/或组件,用以有助于与处理器104和/或主计算设备102的其它组件的输入/输出操作。在一些实施例中,I/O子系统110可以被实现成存储器控制器中心(MCH或“北桥”)、输入/输出控制器中心(ICH或“南桥”)以及固件设备。在这样的实施例中,I/O子系统110的固件设备可以被实现成存储器设备,用于存储基本输入/输出系统(B1S)数据和/或指令和/或其它信息(例如,在主计算设备102的引导期间使用的B1S驱动程序)。然而,在其它实施例中,可以使用具有其它配置的I/O子系统。例如,在一些实施例中,I/O子系统110可以被实现为平台控制器中心(PCH)。在这样的实施例中,存储器控制器中心(MCH)可以并入到处理器104中或者与处理器104相关联,并且处理器104可以直接与存储器108通信(如图1中的虚线所示的)。另外,在其它实施例中,I/O子系统110可以形成片上系统(SoC)的一部分,并且与处理器104和主计算设备102的其它组件一起被并入到单个集成电路芯片上。
[0024]在一些实施例中,I/O子系统110可以包括可信执行环境(TEE)引擎112,其可以被实现成嵌入式微处理器(例如安全协处理器),其独立于处理器104进行操作以提供处理器104或主计算设备102的其它组件不能访问的安全的并隔离的环境。在一些实施例中,TEE引擎112可以在可操作功率状态中运行,而处理器104和主计算设备102的其它组件处于低功率(例如,睡眠、休眠等)。在这样的实施例中,TEE引擎112可以有助于接收进入的分组、响应于接收到一个或多个进入分组而触发处理器104或主计算设备102的其它组件的唤醒过程的发起、和/或延迟并随后释放或重放所述分组,同时主计算设备102或者其一个或多个组件从低功率状态苏醒并转变到可操作功率状态。在这样做的过程中,对于远程计算设备130而言,主计算设备102或者主计算设备102的一个或多个组件或服务好像完全可用并可操作,即使主计算设备102正在低功率状态中操作也是如此。
[0025]处理器104可通信地经由多个信号路径耦合到I/O子系统110。这些信号路径(以及图1中所示的其它信号路径)可以被实现成任意类型的能够有助于主计算设备102的组件之间的通信的信号路径。例如,信号路径可以被实现成任意数量的线、线缆、光导、印刷电路板迹线、过孔、总线、介于中间的设备、点对点互连等。
[0026]主计算设备102的存储器108可以被实现成或者包括一个或多个存储器设备或数据存储单元,包括例如动态随机存取存储器设备(DRAM)、同步动态随机存取存储器设备(SDRAM)、双倍数据速率同步动态随机存取存储器设备(DDR SDRAM)、掩码只读存储器(ROM)设备、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)设备、闪存设备和/或其它易失性和/或非易失性存储器设备。存储器108可通信地经由多个信号路径耦合到I/O子系统110。虽然在图1中仅仅示出了单个存储器设备108,但是在其它实施例中,主计算设备102可以包括额外的存储器设备。各种数据和软件可以存储在存储器设备108中。例如,组成处理器104所执行的软件栈的一个或多个操作系统(OS)、应用、程序、库以及驱动程序可以在执行期间驻留在存储器108中。
[0027]数据存储设备116可以被实现为被配置用于短期或长期存储数据的任意类型的设备或多个设备,例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其它数据存储设备。在一些实施例中,数据存储设备116可以用于临时地存储一个或多个进入的分组和/或与一个或多个进入的分组相关联的信息,同时主计算设备102或其一个或多个组件在网络触发的唤醒之后正从低功率状态转变到可操作功率状态。另外或可替换地,数据存储设备116可以用于临时地存储主计算设备102的一个或多个组件的当前功率状态。
[0028]主计算设备102的通信电路114可以被实现成任意数量的设备和电路,用于使能主计算设备102与远程设备130之间的通过网络104进行的通信。例如,在一些实施例中,通信电路114可以被实现为网络接口控制器(NIC)。网络140可以被实现成任意数量的各种有线和/或无线通信网络。例如,网络140可以被实现成或者包括局域网(LAN)、广域网(WAN)或者公众可访问的全球网络,例如互联网。另外,网络140可以包括任意数量的另外的设备,以有助于主计算设备102与远程计算设备130之间的通信。主计算设备102和远程计算设备130可以使用任意适当的通信协议来通过网络140与彼此进行通信,例如这取决于特定类型的网络140。
[0029]主计算设备102的外围设备118可以包括任意数量的另外的输入/输出设备、接口设备和/或其它外围设备。例如,外围设备118可以包括用于向用户显示内容的显示器、键盘、鼠标或其它输入/输出外围设备。外围设备118经由多个信号路径可通信地耦合到I/O子系统110,从而允许I/O子系统110和/或处理器104从外围设备118接收输入并向外围设备118发送输出。
[0030]远程计算设备130可以被实现成任意数量的能够执行本文描述的功能的计算设备。这样,远程计算设备130可以包括通常在计算设备中发现的各种硬件和软件组件(例如,处理器、存储器和通信电路),以便通过网络传输、存储、保持或传送数据。示例性的远程计算设备130通过网络140向主计算设备102发送分组,以远程地触发主计算设备的一个多个组件发起唤醒过程。在一些实施例中,所述分组包括特殊格式的网络消息分组(例如,“魔术分组”),其被发送到主计算设备102以触发主计算设备102的一个或多个组件开启或苏醒(例如,从低功率状态转变到可操作功率状态)。另外或可替换地,远程计算设备130可以向主计算设备102发送特定类型的唤醒分组(例如,TCP SYN分组),以触发一个或多个组件苏醒。应当理解的是,远程计算设备130可以发送能够唤醒主计算设备102的一个或多个组件的其它类型的分组。例如,远程计算设备130可以发送:以主计算设备102正监测的特定端口或端口范围为目标的唤醒分组,包括主计算设备102能识别的特定模式的唤醒分组,和/或适合于用于触发主计算设备102从低功率状态转变到可操作功率状态的任何其它分组或消息。
[0031]现在参考图2,主计算设备102的环境200的一个实施例包括通信模块202、分组过滤/唤醒触发模块204、功率状态确定模块208、分组延迟模块220、定时器模块222、分组捕获/分组缓冲模块230以及分组注入/分组重放模块232。应当理解的是,示例性环境200可能并不总是必须包括图2中所示的所有模块。相反,在一些实施例中,示例性环境200反而可以包括图2中所示的模块的某个部分或组合。例如,在一个实施例中,示例性环境200可以包括通信模块202、分组过滤/唤醒触发模块204、功率状态确定模块208、分组延迟模块220和定时器模块222。在其它实施例中,示例性环境200反而可以包括通信模块202、分组过滤/唤醒触发模块204、功率状态确定模块208、分组捕获/分组缓冲模块230以及分组注入/分组重放模块232。另外,应当理解的是,环境200和/或包括在其中的任意模块可以用硬件、固件、软件或它们的任意组合来实现。
[0032]如上面所讨论的,在一些实施例中,主计算设备102可以通过网络140从远程计算设备130接收分组。当然,应当理解的是,尽管在下文中在示例性实施例中仅仅描述了一个进入分组,但是远程计算设备130可以发送任意数量的进入分组,并且这些进入分组可以被主计算设备102接收。在接收到进入分组之后,可以在主计算设备102上触发唤醒过程,以将一个或多个组件从低功率状态转变到可操作功率状态。在这样的实施例中,主计算设备102可以对分组到主计算设备102的一个或多个组件(例如固件、硬件、软件、操作系统、应用、服务等)的传递进行延迟,同时实现完全可操作的功率状态。为了这样做,通信模块202可以有助于通过网络140与远程计算设备130进行的通信。另外,主计算设备102的通信模块202和远程计算设备130可以使用任意适当的通信协议来通过网络140与彼此通信,例如这取决于网络140的特定类型。
[0033]通信模块202可以可通信地与分组过滤/唤醒触发模块204耦合,以有助于触发主计算设备102的一个或多个组件从低功率操作状态转变到可操作(例如,“通电”、可运行、可用、准备就绪等)功率状态。在使用过程中,分组过滤/唤醒触发模块204可以从通信模块202接收进入分组。在接收到分组之后,分组过滤/唤醒触发模块204可以解析或者检查分组的内容,以确定是否触发主计算设备102的一个或多个组件的唤醒过程的执行。为了这样做,在一些实施例中,分组过滤/唤醒触发模块204可以确定进入分组具有正被监测的或者以主计算设备102上的特定端口(例如TCP 5900,TCP 3389等)为目的地的特定类型(例如,TCP SYN分组)。另外或者替换地,分组过滤/唤醒触发模块204还可以确定进入分组或其内容是否与一个或多个过滤器匹配。在这样的实施例中,过滤器包括一个或多个可配置的规则,其定义了一个或多个模式、比特掩码、偏移、目的地端口、分组类型和/或指示应当触发唤醒的分组的任何其它信息。在确定了进入分组与过滤器中的一个或多个匹配并因而形成唤醒分组之后,分组过滤/唤醒触发模块204可以在主计算设备102上触发和/或发起唤醒过程。
[0034]如上面讨论的,在一些实施例中,主计算设备102可以将触发唤醒过程的接收到的分组保存一个参考延迟时间,之后再释放该分组以便进一步处理。为了有助于对分组进行延迟,分组过滤/唤醒触发模块204可以可通信地与分组延迟模块220耦合。分组延迟模块220可以将进入分组到主计算设备102的其它组件的传递延迟一段参考延迟时间。在这样的实施例中,在从分组过滤/唤醒触发模块204接收到进入分组之后,分组延迟模块220可以将该分组保存和/或缓冲一个参考时间量。例如,分组延迟模块220可以将该分组保存一个时间量,所述时间量被配置为小于远程计算设备130的传输超时。响应于将分组延迟所配置的时间量,分组延迟模块220可以释放所述分组以便由主计算设备102的一个或多个其它组件进行进一步处理。
[0035]分组延迟模块220可以可通信地与定时器模块222耦合,以有助于将进入分组保存和/或缓冲参考时间量。定时器模块222可以跟踪自通信模块202从远程计算设备130接收到进入分组以来已经经过的时间量。为了这样做,定时器模块222可以使用任意数量的定时器、时钟信号、计数器、算法或主计算设备102的适合于确定时间经过的任何其它组件。在一些实施例中,定时器模块222可以确定自特定事件(例如从远程计算设备130接收到分组)发生以来已经经过(例如,递增计数)的时间量。在其它实施例中,定时器模块222可以确定到事件(例如,参考延迟定时器到期)发生为止剩余(例如,递减计数)的时间量。
[0036]在一些实施例中,分组延迟模块220还可以可通信地与功率状态确定模块208耦合,以有助于延迟和释放分组。在这样的实施例中,分组延迟模块220可以对进入分组到主计算设备102的其它组件的传递进行延迟,直到从功率状态确定模块208接收到通知为止。在使用当中,功率状态确定模块208监测主计算设备102的一个或多个组件的功率状态。在这样做的过程中,功率状态确定模块208可以确定主计算设备102的一个或多个组件已经成功地从低功率状态(例如睡眠状态)转变到可操作功率状态(例如可用于处理网络请求的状态)。当然,应当理解的是,功率状态确定模块208还可以确定主计算设备102的一个或多个组件已经从可操作功率状态转变到低功率状态。为此,功率状态确定模块208可以监测主计算设备102的一个或多个系统固件、系统硬件和/或软件组件,以便在功率状态中转变。例如,功率状态确定模块208可以监测基本输入/输出系统(B1S)信息、高级配置和电源接口(ACPI)信息以及适合于确定主计算设备102的功率状态的任意组件中的一个或多个。响应于确定了一个或多个组件已经成功地转变了功率状态(例如,从低功率状态转变到可操作功率状态),功率状态确定模块208可以生成指示这样的转变的消息。例如,功率状态确定模块208可以发送消息、信号或其它以通知延迟模块220:主计算设备102的一个或多个组件已经成功地转变到可操作功率状态,并且因此可用于处理被延迟的分组。然而,应当理解的是,在一些实施例中,功率状态确定模块208还可以监测主计算设备102或者主计算设备102的一个或多个组件(例如固件、硬件、软件、操作系统、应用、服务等)的任意数量的准备就绪状态(例如,可用、不可用、有限可用性等)。
[0037]在从功率状态确定模块208接收到关于主计算设备102的一个或多个组件可用的通知的实施例中,分组延迟模块220可以在接收到该通知之后释放被延迟的分组。另外或可替换地,应当理解的是,在其它实施例中,在没有在参考时间量内从功率状态确定模块208接收到通知的情况下,分组延迟模块220可以自动地释放被延迟的分组。在这样的实施例中,如果没有在被配置为小于远程计算设备130的传输超时的时间量内从功率状态确定模块208接收到通知,那么分组延迟模块220可以自动地释放被延迟的分组。例如,为了击中与远程计算设备130的操作系统(OS)相关联的21秒传输超时,如果没有在18秒内从功率状态确定模块208接收到通知,那么分组延迟模块220可以自动地释放被延迟的分组。当然,应当理解的是,例如基于主计算设备102和/或远程计算设备130的配置,也可以替代地使用任何适当的参考延迟时间或传输超时。
[0038]另外或可替换地,在一些实施例中,主计算设备102可以对进入分组进行缓冲,以延迟处理,直到主计算设备102的一个或多个组件已经转变到可操作功率状态并因而可用于处理网络请求为止。应当理解的是,尽管在下面在示例性实施例中仅仅描述了一个进入分组,但是可以对任意数量的进入分组进行缓冲。一旦主计算设备102的一个或多个组件可用于处理网络请求,主计算设备102就可以向可用组件注入和/或重放被缓冲的分组。应当清楚的是,在这样的实施例中,用于连接的时间可以被减少和/或最小化,这是因为并不需要主计算设备102等待远程计算设备130重新发送分组,所述分组要不然可能将在唤醒过程执行期间丢失。
[0039]在主计算设备102缓冲并且随后重放和/或注入接收到的分组(例如进入分组)的实施例中,通信模块202和分组过滤/唤醒触发模块204可以以与上面描述的方式类似的方式进行运行。然而,为了有助于对接收到的分组进行缓冲,额外地或可替换地,分组过滤/唤醒触发模块204可以与分组捕获/分组缓冲模块230通信地耦合。在这样的实施例中,分组捕获/分组缓冲模块230可以从分组过滤/唤醒触发模块204接收进入的分组,并在之后缓冲或者存储这样的分组。为此,分组捕获/分组缓冲模块230可以将进入的分组缓冲或者存储在主计算设备102的数据存储设备116或者存储器108中。当然,应当理解的是,分组捕获/分组缓冲模块230可以将进入的分组缓冲和/或存储在主计算设备102的任意适当的数据存储设备和/或存储器设备(例如,易失性和/或非易失性存储器设备)中,包括嵌入在主计算设备102的其它组件中的存储设备和/或存储器。例如,分组捕获/分组缓冲模块230可以将进入的分组缓冲和/或存储在嵌入在通信电路114中的或者嵌入在可信执行环境引擎112中的数据存储设备和/或存储器设备中。
[0040]为了有助于注入或者重放缓存冲和/或存储的接收到的分组,分组注入/分组重放模块232可以通信地与分组捕获/分组缓冲模块230和功率状态确定模块208耦合。与分组延迟模块220类似,分组注入/分组重放模块232可以从功率状态确定模块208接收关于主计算设备102的一个或多个组件已经成功地从低功率状态(例如,睡眠状态)转变到可操作功率状态(例如,可用于处理网络请求的状态)的通知。一旦从功率状态确定模块208接收到关于主计算设备102的一个或多个组件可用的通知,分组注入/分组重放模块232就可以从分组捕获/分组缓冲模块230接收或者获得缓冲的和/或存储的分组。之后,分组注入/分组重放模块232可以将所述分组注入和/或重放到主计算设备102的一个或多个可用组件,以便进一步处理。
[0041]现在参考图3,用于延迟并释放进入的分组的方法300开始于方框302,所述方法可以在网络触发的唤醒期间由主计算设备102来执行。在方框302中,主计算设备102确定是否已经通过网络140从远程计算设备130接收到新的分组。主计算设备102可以基于上面讨论的通信电路114和/或通信模块202所接收的通信,来确定已经通过网络140从远程计算设备130接收到新的分组。如上面所讨论的,从远程计算设备130接收到的新的分组可以与用于与主计算设备102发起新的连接和/或维持现有连接的分组相对应。如果主计算设备102确定已经通过网络140从远程计算设备130接收到新的分组,那么方法300前进到方框304。
[0042]在方框304中,主计算设备102确定从远程计算设备130新接收到的分组是否与唤醒分组相对应。为了确定新接收的分组是否与唤醒分组对应,主计算设备102可以确定所述分组具有所识别的类型、以主计算设备102上的特定端口或端口范围为目标、和/或所述分组的内容与特定的模式相匹配。如上面所讨论的,主计算设备102可以使用一个或多个基于规则的过滤器来有助于确定新接收的分组或者其内容是否指示唤醒分组。在这样的实施例中,新接收的分组可以表示唤醒分组和用于发起和/或维持连接的分组两者。响应于确定出新接收的分组与能识别的唤醒分组相对应,方法300前进到方框306。然而,如果主计算设备102确定出新接收的分组不与能识别的唤醒分组相对应,那么方法300循环回到方框302,以等待接收新的分组。
[0043]在方框306中,主计算设备102发起唤醒过程的执行。如上面所讨论的,在唤醒过程的执行期间,主计算设备102的一个或多个组件可以从低功率状态(例如,睡眠功率状态、休眠功率状态等)转变到可操作功率状态(例如,“通电”、准备就绪和/或完全可操作功率状态)。在发起主计算设备102的一个或多个组件的唤醒过程的执行之后,方法300前进到方框308。
[0044]在方框308中,在一个或多个组件达到完全可操作的功率状态或准备就绪状态的同时,主计算设备102延迟对分组的传递。为此,主计算设备102可以将分组保存一段时间,所述时间等于可配置的参考延迟时间。在将对分组的传递延迟可配置的参考延迟时间之后,方法300前进到方框314,其中,主计算设备102向一个或多个组件释放被延迟的分组,以便进一步处理。
[0045]额外地或可替换地,为了在方框308中有助于延迟对分组的传递,主计算设备102在一些实施例中可以使用任意数量的定时器、时钟信号、计数器、算法或主计算设备102的适于确定时间的经过的任何其它组件。在这样的实施例中,方法300前进到方框310,其中,主计算设备102在从远程计算设备130接收到分组时启动定时器。在这样做的过程中,主计算设备102确定从接收到分组开始已经经过了多长时间,并且方法300前进到方框312。
[0046]在方框312中,主计算设备102可以确定所经过的时间的量等于可配置的参考延迟时间。响应于确定出所经过的时间的量等于为参考延迟时间配置的时间量,方法300前进到方框314,其中,主计算设备102释放被延迟的分组,以便进一步处理。应当理解的是,在这样的实施例中,连接的总时间可以被减少和/或最小化,这是因为主计算设备102不需要等待远程计算设备130重新发送初始分组,所述分组要不然将丢失。
[0047]现在参考图4,示出了可以在网络触发的唤醒期间由主计算设备102执行的用于延迟并释放进入的分组的方法400的至少一个实施例的简化流程图。在操作中,主计算设备102的网络接口控制器(NIC)402可以从远程计算设备130接收进入的分组。在一些实施例中,NIC 402还可以接收进入分组432、434,其可以与远程计算设备130所尝试的重试分组相对应。在所示的实施例中,进入的分组430、432、434可以与用于发起新连接和/或维持现有连接的特定类型的分组(例如,TCP SYN分组)相对应。
[0048]在一些实施例中,接收到初始的进入的分组可以触发将针对主计算设备102的一个或多个组件发起的唤醒过程。之后,在数据传输436中NIC 402可以将分组430转发到分组延迟模块220。随后,分组延迟模块220可以将分组保存和/或缓冲一段参考时间量438。例如,在一些实施例中,分组延迟模块220可以将分组保存被配置得比远程计算设备130的传输超时小的时间量。额外地或可替换地,分组延迟模块220可以保存分组,直到接收到指示主计算设备的一个或多个组件已经准备好进一步处理该分组的通知为止。
[0049]在将分组保存一段参考时间量的实施例中,在数据传输440中分组延迟模块220释放被延迟的分组,以供主计算设备102的一个或多个组件进行进一步处理。例如,在一些实施例中,在数据流440中,分组延迟模块220可以将被延迟的分组释放到在主计算设备102上执行的网络应用404。然而,应当理解的是,分组延迟模块220可以替换地将被延迟的分组释放到其它目的地和/或在主计算设备102上执行的组件。例如,在一些实施例中,分组延迟模块220可以将被延迟的分组释放到在主计算设备102上执行的OS、驱动程序和/或任何适当的组件或应用。
[0050]现在参考图5,用于缓冲并注入和/或重放进入的分组以引入延迟的方法500开始于方框502,所述方法可以在网络触发的唤醒期间由主计算设备102执行。在方框502中,主计算设备102确定是否已经通过网络140从远程计算设备130接收到新的分组。主计算设备102可以基于上面讨论的通信电路114和/或通信模块202所接收的通信,来确定已经通过网络140从远程计算设备130接收到新的分组。如果主计算设备102确定出已经通过网络140从远程计算设备130接收到新的分组,那么方法500前进到方框504。
[0051]在方框504中,主计算设备102确定来自远程计算设备130的新接收的分组是否与唤醒分组相对应。为了确定新接收的分组是否与唤醒分组相对应,主计算设备可以确定所述分组具有能识别的类型、以主计算设备102上的特定端口或端口范围为目标、和/或分组的内容与特定模式相匹配。如上面所讨论的,主计算设备102可以使用一个或多个基于规则的过滤器来有助于确定新接收的分组或者其内容是否指示唤醒分组。响应于确定出新接收的分组与能识别的唤醒分组相对应,方法500前进到方框506。在这样的实施例中,新接收的分组可以表示唤醒分组和用于发起和/或维持连接的分组两者。然而,如果主计算设备102确定出新接收的分组不与能识别的唤醒分组相对应,那么方法500循环回到方框502,以等待接收新的分组。
[0052]在方框506中,主计算设备102发起唤醒过程的执行。如上面所讨论的,在唤醒过程的执行期间,主计算设备102的一个或多个组件可以从低功率状态(例如,睡眠功率状态、休眠功率状态等)转变到可操作功率状态(例如,“通电”、准备就绪和/或完全可操作功率状态)。在发起主计算设备102的一个或多个组件的唤醒过程的执行之后,方法500前进到方框508.
[0053]在方框508中,在一个或多个组件达到完全可操作的功率状态的同时,主计算设备102延迟对分组的传递。为此,主计算设备102可以保存分组或者延迟对分组的传递,直到被通知一个或多个组件可用于处理被延迟的分组为止。这样做,主计算设备102可以改善唤醒过程执行的全部或一部分期间与远程计算设备130的连接可靠性和响应性。响应于保存分组,方法500前进到方框516。
[0054]在方框516中,主计算设备102确定一个或多个组件是否已经成功地从低功率状态(例如,睡眠状态)转变到可操作的功率状态(例如,准备和/或可用于处理网络请求的状态)。如上面所讨论的,主计算设备102可以监测一个或多个系统固件、系统硬件和/或软件组件(例如,B1S, ACPI等),以检测功率状态的转变。例如,在一些实施例中,主计算设备102可以监测一个或多个组件的ACPI信息,以检测功率状态转变。应当理解的是,除了睡眠和可操作(例如,“通电”)功率状态以外,主计算设备102还可以监测其它功率被管理状态。例如,额外地或可替换地,主计算设备102可以监测组件的到/从休眠状态、“断电”或者功率下调功率状态或能够被主计算设备102监测的任何其它功率状态进行的转变。然而,应当理解的是,在一些实施例中,主计算设备102还可以监测一个或多个组件(例如,固件、硬件、软件、操作系统、应用、服务等)的任意数量的准备就绪状态(例如,可用、不可用、有限可用性等)。
[0055]回来参考方框516,在主计算设备102确定出一个或多个组件已经从低功率状态转变到可操作的功率状态的实施例中,主计算设备102生成指示哪些组件可用于进一步处理被延迟的分组的通知(例如,消息、信号等)。在这样做的过程中,方法500前进到方框518,其中,主计算设备102将被延迟的分组注入到一个或多个可用组件和/或重放被延迟的分组。然而,如果主计算设备102确定出没有组件可用于进一步处理被延迟的分组,那么方法500循环回到方框516,以等待一个或多个组件从低功率状态转变到可操作功率状态。
[0056]回来参考方框508,主计算设备102可以缓冲和/或存储进入的分组,以有助于延迟所述分组到一个或多个组件的传递。在这样做的过程中,主计算设备102可以在唤醒过程的执行的全部或一部分期间改善与远程计算设备130的连接可靠性和响应性。例如,在方框510中,主计算设备102可以将进入的分组缓冲或者存储在主计算设备102的数据存储设备116或存储器108中。如上面所讨论的,应当理解的是,主计算设备102可以将进入的分组缓冲和/或存储在主计算设备102的任意适当的数据存储设备和/或存储器设备中(例如,易失性和/或非易失性存储器设备),包括嵌入在主计算设备102的其它组件中的数据存储设备和/或存储器。例如,主计算设备102可以将进入的分组缓冲和/或存储在嵌入在通信电路114或者嵌入在可信执行环境引擎112中的数据存储设备和/或存储器设备中。一旦将进入的分组缓冲和/或存储在数据存储设备116或存储器108中之后,方法500就前进到方框512。
[0057]在方框512中,主计算设备102可以在发起唤醒过程的执行之后,重置或者重新初始化通信电路114。在一些实施例中,重置可以包括通信电路114的硬重置或软重置。在重置或者重新初始化通信电路114之后,方法500前进到方框514。
[0058]在方框514中,主计算设备102将缓冲或者存储在数据存储设备116或存储器108中的分组归还给通信电路114。一旦将缓冲的分组归还给通信电路114,方法500就前进到方框516和518,如上面所描述的。
[0059]现在参考图6,示出了可以在网络触发的唤醒期间由主计算设备102执行的用于缓冲并注入和/或重放进入分组以引入延迟的方法600的至少一个实施例的简化流程图。在这样做的过程中,主计算设备102可以在唤醒过程的执行的全部或一部分期间改善与远程计算设备130的连接可靠性和响应性。在操作中,主计算设备102的网络接口控制器(NIC)602可以从远程计算设备130接收进入的分组630。在一些实施例中,NIC 602还可以接收额外的进入分组636、644,其可以与远程计算设备130的重试分组尝试相对应。在所示的实施例中,进入的分组630、636、644可以与用于发起新连接和/或维持现有连接的特定类型的分组(例如,SYN分组)相对应。
[0060]如上面所讨论的,在数据流632中,接收到初始的分组630可以触发将针对主计算设备102的一个或多个组件发起的唤醒过程。之后,在数据流634中,NIC 602可以将初始分组630缓冲在主计算设备102的数据存储设备116和/或存储器108中。如上面所讨论的,应当理解的是,NIC 602可以将初始分组630和/或重试分组636、644中的任意一个缓冲在主计算设备102的任意适当的数据存储设备和/或存储器设备(例如易失性和/或非易失性存储器设备)中,包括嵌入在其它组件中的那些。例如,NIC 602可以临时地将初始分组630缓冲在嵌入在通信电路114中的或者嵌入在可信执行环境引擎112中的数据存储设备和/或存储器设备中。
[0061]在将初始分组630缓冲在数据存储设备116和/或存储器108中之后,在数据传输638中,在主计算设备102上执行的操作系统(OS) 610可以向与NIC 602相关联的NIC驱动器604发送一个或多个消息和/或命令。在这样的实施例中,NIC驱动器614可以将临时缓冲的分组630存储或保存在数据存储设备116和/或存储器108中。应当理解的是,用于临时缓冲初始分组630的相同的数据存储设备116和/或存储器108也可以被NIC驱动器604用来保存初始分组630。
[0062]响应于将初始分组630保存在数据存储设备116和/或存储器108中,在数据通信642中,NIC驱动器614可以发送命令或者指示NIC 602重置或者重新初始化。如上面所讨论的,NIC 602可以执行硬重置或软重置。在被重置或重新初始化之后,NIC驱动器604可以归还存储在数据存储设备115和/或存储器108中的初始分组630。
[0063]在归还了来自数据存储设备116和/或存储器108的初始分组630之后,NIC驱动器604可以等待关于OS 610准备好并且可用于接收网络业务的通知。这样,一旦OS 610准备好进一步处理初始分组630,在数据传输648中,OS 610就通知NIC驱动器604它已经准备好接收网络业务。
[0064]在一些实施例中,在接收到关于0S610已经准备好用于网络业务的通知之后,在数据传输650中,NIC驱动器604可以将初始分组630注入到网络过滤器608和/或重放初始分组630,以便进一步处理。虽然NIC驱动器604将初始分组630注入到网络过滤器608和/或重放初始分组630,但是应当理解的是,NIC驱动器604可以替换地将初始分组630注入到OS 610和/或主计算设备102的其它组件和/或重放初始分组630。额外地或替换地,虽然在示例性实施例中,NIC驱动器604注入和/或重放初始分组630,但是应当清楚的是,主计算设备102的一个或多个其它组件(例如,固件、硬件、软件、操作系统、应用、服务等)也可以注入和/或重放初始分组630。例如,在一些实施例中,NIC 602的一个或多个固件和/或硬件组件、OS栈的网络过滤器、OS的组件和/或网络路径中的任何适当的组件都可以注入和/或重放初始分组630。
[0065]在NIC驱动器604注入和/或重放初始分组630之后,在数据传输652中,NIC 602可以生成确认并向远程计算设备130发送所述确认。在一些实施例中,发送到远程计算设备130的确认包括确认接收到初始分组630的消息。应当理解的是,在这样的实施例中,连接的总时间可以被减少和/或最小化,这是因为主计算设备102不需要等待远程计算设备130重新发送要不然已经在唤醒过程执行期间丢失的初始分组630。
[0066]现在参考图7,用于使能和禁止对进入分组的延迟的方法700开始于方框702,所述方法可以由主计算设备102来执行。在方框702中,主计算设备102监测一个或多个组件的功率状态。在这样做的过程中,主计算设备102可以确定一个或多个组件已经成功地从一个功率状态转变到另一个功率状态。例如,主计算设备102可以确定一个或多个组件已经从低功率状态(例如,睡眠状态、休眠状态、断电状态等)转变到可操作功率状态(例如,准备好和/或可用于处理网络请求的状态)。当然,主计算设备102还可以确定一个或多个组件已经从可操作功率状态转变到低功率状态或可适用于主计算设备102的任何其它功率被管理的状态。为此,主计算设备102可以监测一个或多个设备固件、设备硬件和/或软件组件的功率状态转变。例如,主计算设备102可以监测基本输入/输出系统(B1S)信息、高级配置和电源接口(ACPI)信息或者适合于确定主计算设备102的功率状态的任何组件。额外地或可替换地,在一些实施例中,主计算设备102还可以监测一个或多个组件(例如,固件、硬件、软件、操作系统、应用、服务等)的任意数量的准备就绪状态(例如,可用、不可用、有限可用性等)。
[0067]为了有助于确定一个或多个组件的功率状态是否已经转变,在一些实施例中,主计算设备102可以将指示所述一个或多个组件中的每一个组件的之前功率状态的数据存储在数据存储设备116和/或存储器108中。应当理解的是,指示所述组件中的每一个组件的之前功率状态的数据可以存储在数据库、表或者适合于存储主计算设备102的一个或多个组件的功率状态的任何其它格式中。在这样的实施例中,主计算设备102可以将所述一个或多个组件中的每一个的之前的功率状态与当前功率状态进行比较。如果组件的之前的功率状态与当前功率状态不同,那么主计算设备102可以确定该组件的功率状态已经转变。
[0068]在一些实施例中,主计算设备102可以连续地监测一个或多个固件、硬件和/或软件组件的功率状态和/或可操作状态的转变。在其它实施例中,主计算设备102可以以可配置的预定时间间隔来监测一个或多个固件、硬件和/或软件组件的功率状态和/或可操作状态的转变。额外地或可替换地,主计算设备102可以从固件、硬件和/或软件组件中的一个或多个接收功率状态和/或可操作状态转变已经发生的通知。然而,当然,应当理解的是,主计算设备102可以以任何适当的间隔来监测功率状态和/或可操作状态的转变。
[0069]返回到方框702,如果主计算设备102确定一个或多个组件已经转换了功率状态和/或可操作状态,那么方法700前进到方框704。然而,如果在方框702主计算设备102确定主计算设备102没有组件转换了功率状态和/或可操作状态,那么方法700循环回到方框702以继续监测功率状态和/或可操作状态转变。应当理解的是,在一些实施例中,特定组件的功率状态和/或可操作状态可以被主计算设备102监测。例如,主计算设备102可以确定第一组件的功率状态已经从低功率状态转变到可操作状态;然而,进一步处理特定类型的进入分组可能需要的第二组件的功率状态尚未转变功率状态。结果是,主计算设备102可以继续监测第二组件的功率状态转变。
[0070]在方框704中,在确定出一个或多个组件已经转变了功率状态和/或可操作状态之后,主计算设备102确定所述一个或多个组件是否已经转变到低功率状态(例如,睡眠状态、休眠状态、断电状态等)。为此,主计算设备102可以获得来自主计算设备102的一个或多个固件、硬件和/或软件组件中的一个或多个组件的当前功率状态和/或可操作状态信息。如果在方框704中主计算设备102确定出所述一个或多个组件尚未转变到低功率状态,那么方法400前进到方框708。
[0071]在方框708中,主计算设备102确定一个或多个组件是否替换地转换到可操作功率状态(例如可用于处理网络请求的状态)。如上面所讨论的,主计算设备102可以获得来自主计算设备102的一个或多个固件、硬件和/或软件组件中的一个或多个组件的当前功率状态和/或可操作状态信息。如果在方框708主计算设备102确定出一个或多个组件已经替换地转换到可操作功率状态,那么方法700前进到方框710。然而,如果主计算设备102确定出一个或多个组件尚未转变到可操作功率状态,那么方法700循环回到方框702以继续监测功率状态转变。
[0072]在方框710中,主计算设备102可以解除用于远程地唤醒一个或多个组件的唤醒触发器。在一些实施例中,主计算设备102可以解除或者禁止用于确定进入分组是否包括唤醒分组的一个或多个过滤器和/或规则。在这样做的过程中,主计算设备102可以不使用所述一个或多个过滤器和/或规则来检查进入分组。
[0073]返回到方框704,如果主计算设备102确定一个或多个组件已经转变到低功率状态,那么方法700前进到方框706,其中,主计算设备102装备或者使能用于确定进入分组是否包括唤醒分组的一个或多个过滤器和/或规则。在这样做的过程中,主计算设备102可以使用所述一个或多个过滤器和/或规则来检查进入分组。
[0074]虽然已经在附图和以上描述中详细地示出并描述了本公开,但是这样的示出和描述在本质上被认为是示例性的而不是限制性的,应当理解的是,已经示出并描述的仅仅是示例性实施例,并且希望保护与本公开和所记载的权利要求一致的所有改变和修改。
[0075]例子
[0076]下面提供本文所公开的设备、系统和方法的示例性实施例。所述设备、系统和方法的实施例可以包括下面描述的例子中的任何一个或多个以及任意组合。
[0077]在一个例子中,用于延迟对进入分组的传递的计算设备,所述计算设备可以包括:通信模块、唤醒触发模块以及分组延迟模块。在例子中,通信模块可以通过网络从远程计算设备接收分组。在例子中,唤醒触发模块可以响应于从远程计算设备接收到的所述分组而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。在例子中,分组延迟模块可以在从低功率的功率被管理状态到可操作的功率被管理状态的转变期间延迟对所述分组的传递。
[0078]额外地,在例子中,计算设备还可以包括定时器模块。在例子中,定时器模块可以确定自接收到所述分组以来经过的时间量。在例子中,分组延迟模块可以将对所述分组的传递延迟参考的时间量。额外地,在例子中,分组延迟模块可以进一步在经过了参考的时间量之后释放所述分组。在例子中,参考的时间量可以包括比远程计算设备的传输超时小的时间量。
[0079]额外地,在例子中,计算设备还可以包括功率状态确定模块。在例子中,功率状态确定模块还可以确定一个或多个当前的功率被管理状态。在例子中,功率状态确定模块还可以生成指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知。
[0080]额外地,在例子中,功率延迟模块还可以接收指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知,并响应于接收到指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知而释放所述分组。
[0081]额外地,在例子中,所述分组可以包括魔术分组、参考类型的分组、以参考端口为目的地的分组、或者由参考模式形成的分组中的一个。在例子中,唤醒触发模块还可以将一个或多个过滤器应用于从远程计算设备接收到的分组,并确定所述分组是否与参考类型、参考目的地端口或参考模式中的一个匹配。额外地,在例子中,唤醒触发模块可以根据分组与参考类型、参考目的地端口或参考模式中的一个匹配而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。
[0082]在另一例子中,用于延迟对进入分组的传递的计算设备可以包括通信模块、通信模块和分组缓冲模块。在例子中,通信模块可以通过网络从远程计算设备接收分组。在例子中,唤醒触发模块可以响应于从远程计算设备接收到的分组而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。在例子中,分组缓冲模块可以在从低功率的功率被管理状态到可操作的功率被管理状态的转变期间缓冲所述分组。
[0083]额外地,在例子中,计算设备还可以包括功率状态确定模块。在例子中,功率状态确定模块可以确定一个或多个当前的功率被管理状态。在例子中,功率状态确定模块还可以生成指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知。在例子中,计算设备还可以包括分组注入模块。在例子中,分组注入模块可以响应于接收到指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知,而从分组缓器模块获得分组并注入所述分组。在例子中,计算设备还可以包括分组重放模块。在例子中,分组重放模块可以响应于接收到指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知,而从分组缓冲模块获得分组并重放所述分组。
[0084]额外地,在例子中,所述分组可以包括魔术分组、参考类型的分组、以参考端口为目的地的分组、或者由参考模式形成的分组中的一个。在例子中,唤醒触发模块还可以将一个或多个过滤器应用于从远程计算设备接收到的分组,并确定所述分组是否与参考类型、参考目的地端口或参考模式中的一个匹配。额外地,在例子中,唤醒触发模块可以根据分组与参考类型、参考目的地端口或参考模式中的一个匹配而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。
[0085]在另一例子中,用于延迟对进入分组的传递的方法可以包括:由主计算设备通过网络从远程计算设备接收分组。在例子中,所述方法还可以包括:由主算设备响应于从远程计算设备接收到所述分组,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。在例子中,所述方法还可以包括:由主计算设备在从低功率的功率被管理状态到可操作的功率被管理状态的转变期间延迟对所述分组的传递。
[0086]额外地,在例子中,所述方法还可以包括:由主计算设备确定自从接收到来自远程计算设备的分组以来经过的时间量。在例子中,延迟对所述分组的传递可以包括:将对所述分组的传递延迟参考的时间量。额外地,在例子中,所述方法可以包括:在经过了参考的时间量之后,由主计算设备释放所述分组。在例子中,所述参考的时间量可以包括比远程计算设备的传输超时小的时间量。
[0087]在例子中,所述方法还可以包括:由主计算设备确定一个或多个当前的功率被管理状态。额外地,在例子中,所述方法还可以包括:由主计算设备生成指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知。在例子中,所述方法可以包括:由主计算设备响应于接收到指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知,而释放所述分组。
[0088]额外地,在例子中,所述分组可以包括魔术分组、参考类型的分组、以参考端口为目的地的分组、或者由参考模式形成的分组中的一个。在例子中,所述方法还可以包括:由主计算设备将一个或多个过滤器应用于从远程计算设备接收到的分组,并确定所述分组是否与参考类型、参考目的地端口或参考模式中的一个匹配。额外地,在例子中,发起从低功率的功率被管理状态到可操作的功率被管理状态的转变可以包括根据分组与参考类型、参考目的地端口或参考模式中的一个匹配而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。
[0089]在另一例子中,用于延迟对进入分组的传递的方法可以包括:由主计算设备通过网络从远程计算设备接收分组。在例子中,所述方法还可以包括:由主计算设备响应于从远程计算设备接收到分组,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。在例子中,所述方法还可以包括:由主计算设备在从低功率的功率被管理状态到可操作的功率被管理状态的转变期间缓冲所述分组。
[0090]额外地,在例子中,所述方法可以包括:由主计算设备确定一个或多个当前的功率被管理状态。额外地,在例子中,所述方法还可以包括:由主计算设备生成指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知。在例子中,所述方法还可以包括:由主计算设备响应于接收到指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知,而注入所述分组。额外地,在例子中,所述方法还可以包括:由主计算设备响应于接收到指示从低功率的功率被管理状态到可操作的功率被管理状态的转变的完成的通知,而重放所述分组。
[0091]在例子中,所述分组可以包括魔术分组、参考类型的分组、以参考端口为目的地的分组、或者由参考模式形成的分组中的一个。额外地,在例子中,所述方法可以包括由主计算设备将一个或多个过滤器应用于从远程计算设备接收到的分组,并确定所述分组是否与参考类型、参考目的地端口或参考模式中的一个匹配。额外地,发起从低功率的功率被管理状态到可操作的功率被管理状态的转变可以包括:根据分组与参考类型、参考目的地端口或参考模式中的一个匹配而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。
【权利要求】
1.一种用于延迟对进入分组的传递的计算设备,所述计算设备包括: 通信模块,用于通过网络从远程计算设备接收分组; 唤醒触发模块,用于响应于从所述远程计算设备接收到的所述分组,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变;以及 分组延迟模块,用于在从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变期间,延迟对所述分组的传递。
2.如权利要求1所述的计算设备,还包括:定时器模块,用于确定自从接收到所述分组以来经过的时间量。
3.如权利要求2所述的计算设备,其中,所述分组延迟模块用于将对所述分组的传递延迟参考的时间量。
4.如权利要求3所述的计算设备,其中,所述分组延迟模块还用于在经过了所述参考的时间量之后释放所述分组。
5.如权利要求3或4所述的计算设备,其中,所述参考的时间量包括比所述远程计算设备的传输超时小的时间量。
6.如权利要求1、2、3或4所述的计算设备,还包括:功率状态确定模块,用于确定一个或多个当前的功率被管理状态。
7.如权利要求6所述的计算设备,其中,所述功率状态确定模块还用于生成指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的通知。
8.如权利要求7所述的计算设备,其中,所述分组延迟模块还用于: 接收指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的所述通知;以及 响应于接收到指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的所述通知,而释放所述分组。
9.如权利要求1、2、3或4所述的计算设备,其中,所述分组包括魔术分组、参考类型的分组、以参考端口为目的地的分组或者由参考模式形成的分组中的一个。
10.如权利要求1、2、3或4所述的计算设备,其中,所述唤醒触发模块还用于将一个或多个过滤器应用于从所述远程计算设备接收到的所述分组,以确定所述分组是否与参考类型、参考目的地端口或者参考模式中的一个相匹配;并且 其中,发起从低功率的功率被管理状态到可操作的功率被管理状态的转变包括:根据所述分组与所述参考类型、所述参考目的地端口或者所述参考模式中的一个相匹配,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。
11.一种用于延迟对进入分组的传递的计算设备,所述计算设备包括: 通信模块,用于通过网络从远程计算设备接收分组; 唤醒触发模块,用于响应于从所述远程计算设备接收到的所述分组,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变;以及 分组缓冲模块,用于在从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变期间对所述分组进行缓冲。
12.如权利要求11所述的计算设备,还包括:功率状态确定模块,用于确定一个或多个当前的功率被管理状态。
13.如权利要求12所述的计算设备,其中,所述功率状态确定模块还用于生成指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的通知。
14.如权利要求13所述的计算设备,还包括:分组注入模块,用于响应于接收到指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的所述通知,而从所述分组缓冲模块获得所述分组并注入所述分组。
15.如权利要求13所述的计算设备,还包括:分组重放模块,用于响应于接收到指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的所述通知,而从所述分组缓冲模块获得所述分组并重放所述分组。
16.如权利要求11、12、13、14或15所述的计算设备,其中,所述分组包括魔术分组、参考类型的分组、以参考端口为目的地的分组或者由参考模式形成的分组中的一个。
17.如权利要求11、12、13、14或15所述的计算设备,其中,所述唤醒触发模块还用于将一个或多个过滤器应用于从所述远程计算设备接收到的所述分组,以确定所述分组是否与参考类型、参考目的地端口或者参考模式中的一个相匹配;并且 其中,发起从低功率的功率被管理状态到可操作的功率被管理状态的转变包括:根据所述分组与所述参考类型、所述参考目的地端口或者所述参考模式中的一个相匹配,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。
18.一种用于延迟对进入分组的传递的方法,所述方法包括: 由主计算设备通过网络从远程计算设备接收分组; 由所述主计算设备响应于从所述远程计算设备接收到所述分组,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变;以及 由所述主计算设备在从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变期间延迟对所述分组的传递。
19.如权利要求18所述的方法,还包括:由所述主计算设备确定自从接收到来自所述远程计算设备的所述分组以来经过的时间量。
20.如权利要求19所述的方法,其中,延迟对所述分组的传递包括将对所述分组的传递延迟参考的时间量。
21.如权利要求20所述的方法,还包括:在经过了所述参考的时间量之后,由所述主计算设备释放所述分组。
22.如权利要求20所述的方法,其中,所述参考的时间量包括比所述远程计算设备的传输超时小的时间量。
23.如权利要求18、19、20、21或22所述的方法,还包括:由所述主计算设备确定一个或多个当前的功率被管理状态。
24.如权利要求23所述的方法,还包括:由所述主计算设备生成指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的通知。
25.如权利要求24所述的方法,还包括:由所述主计算设备响应于接收到指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的所述通知,而释放所述分组。
26.如权利要求18、19、20、21或22所述的方法,其中,所述分组包括魔术分组、参考类型的分组、以参考端口为目的地的分组或者由参考模式形成的分组中的一个。
27.如权利要求18、19、20、21或22所述的方法,还包括: 由所述主计算设备将一个或多个过滤器应用于从所述远程计算设备接收到的所述分组,以确定所述分组是否与参考类型、参考目的地端口或者参考模式中的一个相匹配;并且 其中,发起从低功率的功率被管理状态到可操作的功率被管理状态的转变包括:根据所述分组与所述参考类型、所述参考目的地端口或者所述参考模式中的一个相匹配,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。
28.一种用于延迟对进入分组的传递的方法,所述方法包括: 由主计算设备通过网络从远程计算设备接收分组; 由所述主计算设备响应于从所述远程计算设备接收到所述分组,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变;以及 由所述主计算设备在从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变期间,对所述分组进行缓冲。
29.如权利要求28所述的方法,还包括:由所述主计算设备确定一个或多个当前的功率被管理状态。
30.如权利要求29所述的方法,还包括:由所述主计算设备生成指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的通知。
31.如权利要求30所述的方法,还包括:由所述主计算设备响应于接收到指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的所述通知,而注入所述分组。
32.如权利要求30所述的方法,还包括:由所述主计算设备响应于接收到指示从所述低功率的功率被管理状态到所述可操作的功率被管理状态的所述转变的完成的所述通知,而重放所述分组。
33.如权利要求28、29、30、31或32所述的方法,其中,所述分组包括魔术分组、参考类型的分组、以参考端口为目的地的分组或者由从参考模式形成的分组中的一个。
34.如权利要求28、29、30、31或32所述的方法,还包括: 由所述主计算设备将一个或多个过滤器应用于从所述远程计算设备接收到的所述分组,以确定所述分组是否与参考类型、参考目的地端口或者参考模式中的一个相匹配;并且 其中,发起从低功率的功率被管理状态到可操作的功率被管理状态的转变包括:根据所述分组与所述参考类型、所述参考目的地端口或者所述参考模式中的一个相匹配,而发起从低功率的功率被管理状态到可操作的功率被管理状态的转变。
35.一种用于延迟对进入分组的传递的计算设备,所述计算设备包括: 处理器;以及 存储器,其具有存储于其中的多个指令,所述多个指令在被所述处理器执行时使得所述计算设备执行如权利要求28-34中的任意一项所述的方法。
36.一个或多个机器可读介质,包括存储于其上的多个指令,所述多个指令响应于被执行而导致计算设备执行如权利要求28-34中的任意一项所述的方法。
37.一种用于延迟对进入分组的传递的计算设备,所述计算设备包括: 处理器;以及 存储器,具有存储于其中的多个指令,所述多个指令在被所述处理器执行时使得所述计算设备执行如权利要求18-27中的任意一项所述的方法。
38.一个或多个机器可读介质,包括存储于其上的多个指令,所述多个指令响应于被执行而导致计算设备执行如权利要求18-27中的任意一项所述的方法。
【文档编号】H04L12/875GK104205755SQ201280071904
【公开日】2014年12月10日 申请日期:2012年3月31日 优先权日:2012年3月31日
【发明者】J·贝尔特 申请人:英特尔公司

最新回复(0)