使用预测建模和信令来节省功率的制作方法

文档序号:6595283阅读:285来源:国知局
专利名称:使用预测建模和信令来节省功率的制作方法
使用预测建模和信令来节省功率背景当前的计算机甚至在空闲时也具有很高的功耗。由于环境原因降低计算设备的功耗并降低操作成本是有益的。另外,对于电池供电的设备,降低功耗实现延长的电池寿命, 或者,替换地,可以缩减电池的大小、重量和成本。提出了若干个解决方案来降低诸如膝上型计算机和手持式设备之类的电池供电的计算设备的功耗。这些包括当设备不使用时关闭或挂起设备和/或关闭诸如显示器之类的相关联设备的机制。用于确定何时一个设备或其组件在一段时间内将不需要且由此可以被断电的因素通常基于指出一个设备或其组件中的一个或多个(例如,硬盘驱动器)没有被使用的时间量的策略。当未被使用的时段超出阈值空闲时间时,该设备或组件被断电。该设备可以随后由用户通过用户输入(例如,通过按空格键或按下电源按钮)来将其唤醒。设备也可以具有功率降低的操作模式,每当设备不被连接到电力网电源时,使用该操作模式, 例如,在该操作模式下,显示器的亮度降低。提出了更进一步的解决方案,该方案将额外的硬件(例如,传感器)包括到计算设备内,该硬件在碰到某些事件(例如,检测到无线网络) 时触发计算设备的唤醒。下面所描述的各实施例不限于解决降低计算设备的功耗的已知方法的任何或全部缺点的实现。概述下面呈现了本发明的简要概述,以便向读者提供基本理解。本概述不是本发明的详尽概述,并且不标识本发明的关键/重要元素,也不描述本发明的范围。其唯一的目的是以简化形式呈现此处所公开的一些概念,作为稍后呈现的更详细的描述的序言。描述了使用预测模型和信令来节省功率的方法和系统。基于以预测为基础的用户活动和/或从定义用户偏好的远程计算机接收到的信号,来设置功率管理策略的参数。在一个实施例中,功率管理策略涉及将计算机置入睡眠状态,并周期性地将它唤醒。在唤醒时,计算机根据预测模型的输出或编码远程用户是否请求了计算机保持苏醒的信号,来确定是保持苏醒还是返回到睡眠状态。在返回到睡眠状态之前,设置了唤醒定时器,且此定时器触发计算机随后唤醒。向定时器设置的时间长度可以取决于诸如来自远程用户的请求、 上下文传感器和使用数据之类的因素。通过结合附图参考以下详细描述,可更易于领会并更好地理解许多附带特征。附图描述根据附图阅读以下详细描述,将更好地理解本发明,在附图中

图1是使得计算设备的功耗能被降低的系统的示意图;图2是计算设备为了降低其功耗而进行的操作的示例方法的流程图;图3是使得计算设备的功耗能被降低的另一系统的示意图;图4是负载循环(duty cycling)计算机的示例操作方法的流程图;图5示出了实现图4的方法框的示例方法;图6是各个示例消息流的示意图7是负载循环计算机的另一示例操作方法的流程图;图8示出了中央实体的操作方法的各种示例的流程图;图9是包括一个以上的负载循环计算机的系统的示意图;图10是中央实体的操作方法的另一示例的流程图;以及图11示出了其中可以实现此处所描述的方法的各实施例的示例性基于计算的设备。在各个附图中使用相同的附图标记来指代相同的部件。详细描述下面结合附图提供的详细描述旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。本描述阐述了本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。如上文所描述的,为了降低计算设备的功耗,可以关闭设备(或者‘软关闭’,S5, 或者机械关闭),或者当它空闲时将它置于低功率模式。有各种可以使用的低功率模式, 如S1,其中维护硬件和处理器上下文;S2,其中处理器断电,且处理器上下文和高速缓存的内容丢失;S3,其经常被称为将RAM挂起或待机;以及S4,其经常被称为休眠或将挂起到盘。某些操作系统提供这些模式的子集和/或提供其他模式(例如,Micr0S0ft Wind0WS Vista 提供混合型睡眠模式,在该模式下,在进入待机模式之前,易失性RAM被写入到非易失性盘(类似于休眠))。当计算设备处于这些低功率模式中的一种模式时,它不能够进行网络通信。本地用户输入可以导致计算设备从这些低功率模式中的一种模式中苏醒,或者从关闭状态苏醒,并恢复到正常操作状态(SO)。开发了允许计算设备通过特定触发事件从低功率模式(例如,S1-S4)苏醒的技术,但是,通常这些技术需要在计算设备内安装额外的硬件,并且有时在网络内也需要。当计算设备进入任何可用低功率模式时,可以使用下面所描述的技术,其中计算设备仍能够在未来的某一时间点自动地返回到较高功率模式,而无需外部输入。对于下面的描述,计算设备关闭或进入任何类型的低功率模式的过程将被称为计算设备进入睡眠。此处描述了用于最小化计算机所使用的功率的方法和系统。这些方法使用功率管理策略(例如,负载循环策略),且可以涉及功率管理策略 通过利用使用数据或其他证据来标识或预测用户接下来是否以及何时使用计算设备,且在某些示例中,标识或到预测需要如何使用它的方式;·通过利用显式或隐式远程信令来控制计算机的通电的特征以及定时;以及·预报和信令的组合。对设备的未来使用的预报可以利用多个隐式证据,包括有关系统未被使用的持续时间的信息,及诸如时刻、星期几、自最后使用起的时间之类的其他证据,以及有关用户的其他活动的信息(例如,在另一机器上读取电子邮件)。图1是使得计算设备的功耗能被降低的系统的示意图。该系统包括操作功率管理策略102的计算设备101。计算设备101可以连接到网络103。当联网时,计算设备101可以通过网络103从中央实体104和/或由远程用户操作的远程计算设备105接收远程信令。 为了降低计算设备101的功耗,调用功率管理策略102,且可以基于通过网络103接收到的远程信令,和/或基于计算设备101的使用的预测模型,来选择所使用的特定功率管理策略和/或特定功率管理策略的参数。图2是计算设备(例如,图1所示出的计算设备101)的操作的示例方法的流程图。 基于诸如使用数据21和/或远程信令22之类的各种输入,可以确定功率管理策略的参数 (框201)。参数可以被设置成最小化计算设备(或者系统的部分或全部)的期望成本—— 给定关于功率的成本以及计算设备或计算资源的可用性的延迟成本的偏好。这些关于相对成本的偏好可以由用户(例如,本地或通过远程信令22接收)或在系统范围级别上设置。功率管理策略可以影响整个计算设备的操作,或者可以只影响计算设备的部分 (例如,盘驱动器,显示器等等)的操作。使用数据21可以包括由预测模型基于使用数据和 /或在任何时间收集或使得可用的隐式证据所生成的预测(此处也称为‘预报’)。远程信令22可以包括编码远程用户的偏好的隐式或显式请求(例如,计算设备保持苏醒的请求), 且可以在来自远程计算机(例如,远程计算机10 的消息中接收这些请求,或者,可通过与中央服务器(例如,中央实体104)进行通信来获取有关此请求的信息。给定预报和/或信号,可以执行多个功率管理策略,且作为确定特定策略的参数的补充或代替,可以使用输入 21-22(在框201中)来选择功率管理策略。选定了要使用的参数和/或特定策略(在框201中),计算设备使用策略和参数来操作(框20 。可以重复该过程(例如,周期性地或基本上连续地),以便基于新输入数据来更新所使用的参数和/或策略。功率管理涉及隐式或显式成本-收益判决,其中,成本包括否则处于空闲的计算资源上的消耗的能量、磨损的成本,以及当需要计算资源时这些计算资源的次优操作或不可用性的成本(例如,对用户来说)。后一成本可以,例如,被捕捉为与等待计算机设备或者与计算设备相关联的资源的引导或通电相关联的延迟的成本(例如,在功率节省空闲硬驱动器主轴可用于读写之前,该主轴的旋转)。值可以例如以计算设备/资源的可用性以及功率节省来表示。方法可以隐式地或显式地最小化成本或最大化收益,或者,更一般而言,在给定了用户的偏好的情况下,优化功率策略的期望效用。从成本收益角度,允许基于对计算系统可用的动作来对于各种功率管理策略的参数进行形式的或启发式的控制。可以将方法应用于整个计算设备和/或计算设备的诸如显示器或盘驱动器之类的组件。其他应用包括在给定了用户将不需要使用设备的预测的情况下用于保护和/或锁定计算设备的智能屏幕保护程序。功率管理策略的一个示例是负载循环策略,且在下文中更详细地对此进行描述。 对开关负载循环的控制提供用于以功率使用成本换取当用户或系统需要对计算资源进行访问时系统可用的值的手段。此处所描述的方法和系统不限于涉及负载循环的功率管理策略,且可以替换地使用其他功率管理策略或技术,诸如那些涉及在某时间段内保持一个或多个部分通电状态的策略。在使用负载循环的情况下,可以根据关于当前需求或未来所希望的使用的预测, 和/或在接收到隐式或显式的信号的情况下,控制使一个或多个组件通电和断电的频率和持续时间。提高系统苏醒着的时间量将增大计算设备或资源的可用性的概率,但是,将以功率使用量增大为代价。在计及关于系统在时间上被使用和未被使用的数据,以及诸如时刻、 星期几、和日历信息之类的其他上下文数据的情况下,可以通过利用机器学习方法构建的预测模型来生成关于在某个时间范围内对系统的所希望的使用的似然性的概率性预报。下面的描述更详细地描述了使用涉及负载循环的功率管理策略的实施例。图3是使得计算设备的功耗能被降低但是仍允许用户远程访问计算设备的系统的示意图。该系统包括可以连接到网络302的计算设备301。当联网时,计算设备301可以通过网络302连接到中央实体303和/或由远程用户操作的远程计算设备304。为了降低计算设备301的功耗,对计算设备进行负载循环,即,使计算设备睡眠,并且周期性地苏醒一段时间,之后再次睡眠。只为解释起见,此计算设备301可以被称为负载循环计算机,以将它与远程计算机304区别,虽然远程计算机也可以被负载循环。此外,如上文所描述的, 可以使用替换性功率管理策略,而不是负载循环。图4是负载循环计算机301的操作的示例方法的流程图。计算设备的唤醒可以由计时器触发或由预测模型触发。(框401)。在使用预测模型的情况下,这可以预报计算系统的当前使用或未来使用的特征和定时。这样的预测模型可以访问诸如计算系统的被使用和未被使用或如上文所描述的其他证据之类的数据。设备的苏醒(在框401中)可以独立于任何本地用户输入触发的唤醒机制(例如,通过按下按钮、空格键等等)。在唤醒时,计算设备确定它是否应该保持苏醒的状态(框40 ,且在下文中将更详细地描述此确定步骤。 这样的确定可以通过对预测模型的更新和/或从远程计算设备接收到指示用户请求的信号来执行。确定也可以涉及检测其他类型的证据(例如,用户接近机器)。如果确定计算设备应该保持苏醒(在框402中为‘是’),则会发生这种情况(框40 ,虽然计算设备可在随后返回睡眠(例如,如由图4中的虚线所指示的)。如果确定计算设备不应该保持苏醒(在框402中为‘否,),则设置唤醒计时器(框404),且计算设备进入睡眠(框405)。然后,重复该过程,且在唤醒计时器期满时计算设备苏醒(在框401中)。可以基于预测模型的输出或其他证据,来判断计算设备是否应该保持苏醒(和/ 或修改负载循环的参数,如在框403中,计算设备保持苏醒的时间长度,以及在框404中,用于设置唤醒计时器的时间),且在某些示例中,可以使用多个证据源。保持苏醒的判定也可以完全地或部分地由通过网络302可用的隐式或显式的信号来确定。在一个示例中,基于远程用户经由远程用户远程计算机304的输入的存在性和/ 或内容,来作出确定(在框402中)。也可以使用来自远程用户的此输入来确定计算设备在多长时间内保持苏醒(例如,在框403中)和/或在多长时间内计算设备保持睡眠(即, 它可能影响框404中唤醒计时器的设置)。可以通过中央实体303或不涉及中央实体(例如,使用从远程计算机304发送到负载循环计算机301的网络地址的消息)的情况下将输入传递到负载循环计算机301。在另一个示例中,可以基于这样的输入的存在性和/或内容的组合以及基于预测模型,来作出确定(在框402中)。通过远程计算机304来自远程用户的输入会以许多方式影响负载循环计算机作出的关于它是否应该保持苏醒的确定(在框402中),且图5中示出了两个示例。在两个示例51、52中,一旦负载循环计算机已经苏醒,就基于该负载循环计算机是否接收到‘保持苏醒’消息来作出确定(在图4的框401中)。可以由负载循环计算机向远程实体发送的消息(框502)来触发对任何这样的保持醒消息的接收(在框501中),虽然此消息可以被发送到不同的远程实体,该远程实体发送保持苏醒消息(在框501中接收到的),如下面参考图6所描述的。替换地,负载循环计算机可以不发送触发对保持醒消息的接收的任何消息, 而是,可以在一段时间内保持苏醒(框50 ,且在随后,确定(在框501中)自唤醒(在框401中)起是否接收了任何保持苏醒消息。对保持苏醒的判定以及对负载循环的参数的调整(或对任何其他功率管理方案的功率管理参数的调整)可以是根据以下各项中的任一项通过网络可用的信号;以其他方式拾取的信号(例如,使用传感器来检测用户的本地活动,或者经常使用该系统的用户正在以在用户进入办公室并在特定时段内使用计算机时经常参见的模式朝着建筑物行进的信息),以及从行为数据构建的预测模型。在包括保持苏醒消息的示例中,根据图4和5可以理解,接收到的保持苏醒消息 (在框501中)不会触发负载循环计算机唤醒。如图4所示,负载循环计算机的苏醒由唤醒计时器和/或预测模型来控制(框401),且保持苏醒消息用于协助负载循环计算机确定是否要保持苏醒(在框402中,如示例51和52所示)。可以参考图6中所示出的示例消息流来描述涉及基于网络的信令(即,保持苏醒消息)的各种示例情景。尽管图6示出了一个中央实体,但是,可以理解,在一些示例中,可以没有中央实体,或者可以不需要中央实体。图6中所示出的消息流演示了此处所描述的方法可以使用推式或拉式模型。在第一情景61中,远程用户可以使用远程计算机发送指示用户需要负载循环计算机在它被唤醒时保持开着的消息610。此消息610可以被直接发送到中央实体。替换地, 消息610可以被发送到负载循环计算机,但是,可以被高速缓存在中央实体处,以等待负载循环计算机的唤醒在唤醒时(在框401中,如由图6中的框600所指示的),负载循环计算机301向中央实体303发送消息611(框502)。此消息可以是轮询消息,或者替换地,负载循环计算机301可以登录到中央实体,例如,在中央实体是诸如即时消息接发器anstant Messenger)或Live Mesh (活跃网格)服务器之类的用户应用程序服务器的情况下。响应于接收到消息611,中央实体将保持苏醒消息612发送或转发到负载循环计算机301。中央实体可以知晓,该消息是保持苏醒消息,或者它可能不能知晓(例如,在中央实体充当转发实体而不管消息的内容或类型的情况下);在后一种情况下,中央实体可以仍然转发该消息。可以理解,此处术语即时消息接发器被用来指基于文本的用户之间以及用户使用例如,通过网络302(其可以是因特网)连接到一起的计算设备进行交互的情况下的任何形式的实时通信。有许多不同的即时消息接发器产品可用,且此处所描述的方法不仅限于任何特定实现或产品。Live Mesh是允许用户从一组计算设备中的任何一个访问多个计算设备的软件的示例。该软件也可以使用户能够在那些设备之间共享/同步数据和/或与其他用户共享目录,或使目录可用,而不管他们正在使用多个计算设备中的哪一个。尽管下面的许多示例专门参考了由微软公司开发的Live Mesh,但是所描述的方法适用于提供类似的功能的其他软件和系统,且Live Mesh的使用只是作为示例来描述。在第二种情景62中,远程计算机304周期性地向负载循环计算机301周期性地发送保持苏醒消息621-623。这些保持苏醒消息可以,例如,被发往到负载循环计算机的IP地址(或其他网络地址)。当负载循环计算机唤醒时,计算机在一段时间内保持苏醒(在框 503中),其中在作出关于将要睡眠作出决定之前它监听保持苏醒消息(在框501中)。在第三种情景63中,对保持苏醒消息632-634的周期性的发送可以由中央实体而不是由远程计算机来执行。对这些消息的发送可以由从远程计算机接收到的单个消息631 (或一个以上的消息)来触发(或多于一个消息)。周期性的保持苏醒消息621-623、632-634可以,例如,按一秒间隔来地发送。负载循环计算机只需在短间隔(例如,长至足以重建网络连接连通性,以及花几秒钟监听保持苏醒消息)内保持苏醒(在框503),以便接收这些消息中的一个。在再一个情景64中,中央实体303可以转发它接收到的任何消息(或其一部分)。在这样的示例中,远程计算机304可以向中央实体303周期性地发送保持苏醒消息641-643, 且这些消息可以被转发到负载循环计算机(消息644-646)。一旦负载循环计算机唤醒,它将接收这些消息中的一个,且如果足够有规律地发送消息,则负载循环计算机只需在较短时段内保持苏醒(这有助于降低设备的总功率消耗)。在第五情况65中,负载循环计算机301在唤醒时登录651到中央实体(或以其他方式通知中央实体,它已经被唤醒),且中央实体发布与负载循环计算机有关的在场信息 652。在即时消息接发器(IM)示例中,IM客户机(可以是经修改的IM客户机)可以在唤醒时自动地登录到中央实体(IM服务器)。可以将在场信息提供给先前定义的一个组中的成员(例如,即时消息接发器上的朋友列表,或Live Mesh中的设备列表)。响应于看到负载循环计算机被登录,远程计算机可以向负载循环计算机发送保持苏醒消息653 (或者直接地,如图6所示,或者经由中央实体)。对保持苏醒消息的发送可以在用户通知负载循环计算机的在场状态的变化时由远程用户的输入来触发,或者替换地,远程用户可能已经指出当负载循环计算机上线时应该发送保持苏醒消息。在上文所描述的情景的一变体中,在已经接收到保持苏醒消息(例如,消息612、 623、634、646和653中的一个)的情况下,周期性暂停负载循环计算机可以响应于远程计算机请求附加反馈、指令等等,发送消息。例如,远程计算机可以向周期性暂停负载循环计算机发送保持苏醒消息。在苏醒时,周期性暂停负载循环计算机接收此消息,并向请求更进一步的信息的远程计算机发送响应。作为响应,远程计算机可以发送指出周期性暂停负载循环计算机应该在所定义的时段内保持苏醒或保持苏醒直至所定义的时间的消息,或者可以提供影响周期性暂停负载循环参数的其他信息。在其他示例中,由远程计算机所发送的此消息可以详细描述需要执行的操作。在某些示例中,远程计算机可以发送触发周期性暂停负载循环计算机设置唤醒定时器(在框404中)并进入睡眠(框405)的进一步的消息。由负载循环计算机接收到的保持苏醒消息(例如,在框501中)可以具有任何合适的形式。在一个示例中,在中央实体303是即时消息接发器服务器的情况下,消息可以包括IM消息,IM消息包括预定义文本,如“唤醒”或“保持苏醒”。在确定是否要保持苏醒时 (在框402中),负载循环计算机可以解析接收到的任何IM,以查看它们是否包括预定义文本。在其他示例中,(例如,在中央实体不是IM服务器的情况下,或在没有中央实体的情况下),可以类似地解析由负载循环计算机在唤醒之后接收到的任何消息,以标识预定义的导致计算机保持苏醒的任何触发文本。在其他示例中,可以使用二进制消息或电子邮件。在使用Live Mesh的示例实现中,保持苏醒消息可以作为LiveMesh所使用的协议的一部分来集成,以在客户机和服务器之间共享状态信息。除简单地使负载循环计算机保持苏醒(或者无限期地或一段时间)之外,保持苏醒消息可以包含其他指令或触发影响负载循环计算机的操作的文本。例如,保持苏醒消息可以影响负载循环计算机保持苏醒的时间长度(在框403中)和/或负载循环计算机睡眠的时间长度(即,通过在框404中影响唤醒时间的设置)。例如,IM消息中的文本“保持苏醒30 (stay awake 30) ”或“唤醒30 (wake up 30) ”可以导致负载循环计算机在设置唤醒定时器(在框404中)和返回睡眠(在框405中)之前保持苏醒30分钟(在框403中)在另一示例中,文本“睡眠30(sleep 30) ”可以导致唤醒定时器被设置为30分钟,从而导致负载循环计算机在插入时段的30分钟之后(除非被诸如用户输入之类的另一事件触发唤醒) 再次苏醒(在框401中)。在另一示例中,文本可以指定负载循环计算机应该唤醒的时间, 例如,“唤醒 11. 00 (wake up 11.00)”。在进一步的示例中,保持苏醒消息可以提供要由负载循环计算机执行的操作的比较详细的指令,或指定负载循环计算机何时可以返回到睡眠的更加复杂的条件。例如,保持苏醒消息可以标识要上传的文件(例如,上传到中央实体或远程计算机),或者当负载循环计算机醒着时(在框403中)要执行的其他操作,例如,运行批作业以及将输出上传到远程位置。在某些示例中,保持苏醒消息可以包含可执行程序和/或使计算设备下载并运行可执行程序的脚本。一旦完成了指定的操作(或多个操作),负载循环计算机就可以设置唤醒定时器(在框404中)并进入睡眠(在框405中)。在另一示例中,保持苏醒消息可以标识在其之后负载循环计算机可以返回睡眠的事件(例如,由远程用户访问文件)(框 404-405)。远程用户可以触发对保持苏醒消息的发送的方式有许多种。在IM示例中,用户可以发送IM消息(例如,包括触发文本,如上文所描述的)。在Live Mesh示例中,用户可以就他们的设备中的一个选择一选项以请求它保持苏醒(例如,该选项可以改变该设备在Live Mesh系统内的状态)。当负载循环计算机唤醒并登录到Mesh(网格)服务上时,它可以接收此状态信息作为保持苏醒消息。在系统包括中央实体的情况下,该中央实体可以提供允许用户请求负载循环计算机唤醒(且由此触发对保持苏醒消息的发送)的用户界面(例如, 网页、工具栏等等)。此用户界面也可以向用户提供设置与唤醒有关的其他偏好的能力,例如,影响负载循环计算机保持苏醒或睡眠的时间,或定义应该在唤醒时执行的操作。如上文所描述的,负载循环计算机保持苏醒的时段(在框403中)和负载循环计算机睡眠的时间长度(如在框404中设置的)可能会受到接收到的任何保持苏醒消息的影响。例如,如果一个计算机正在接收许多保持苏醒消息,则它可以进入更活跃的负载循环, 其中,它更经常地唤醒(例如,负载循环计算机睡眠的时间长度可能缩短)。负载循环计算机保持苏醒的时间长度和负载循环计算机睡眠的时间长度可以统称为“负载循环参数”,虽然可以理解,不同的因素可能会影响负载循环计算机保持苏醒的时间长度和负载循环计算机睡眠的时间长度。另外,或作为替代,可以基于用户配置(可以本地或远离设置,例如,使用Live Mesh系统),存储的参数、上下文传感器和/或学习算法,来设置负载循环参数。也可以指定负载循环目标(例如,负载循环计算机的开的时间与关闭的时间的目标比),且在这样的示例中,可以在这些目标的约束内设置负载循环参数。在使用上下文传感器的情况下,这些可以是物理传感器和/或虚拟传感器,且这些传感器可基于位置、时刻、用户的接近度、用户的计划或历史的活动、其他情况等等影响负载循环参数的设置。物理传感器可以是负载循环计算机本地的(例如,与之放在一起),例如,诸如无源红外线(PIR)传感器之类的运动传感器(例如,用于检测负载循环计算机附近的用户)或加速计(例如,用于检测膝上型计算机何时被移动)。另外,或作为替代,也可以使用远程访问的物理传感器,例如,用户的汽车上的GPS设备,或与远程计算机或中央实体相关联的上下文传感器。可以使用虚拟上下文传感器,它们可包括检查用户的日历,检查用户的在场信息(例如,使用IM)等等。在使用上下文信息的情况下,这可以存储在本地(例如,存储在负载循环计算机上),存储在该中央实体或另一中央实体和/或在计算设备之间共享(例如,在系统包括一个以上的负载循环计算机的情况下,如图9所示)。负载循环计算机可以协调它们的负载循环,例如,以便一个计算机在一组计算机中始终是苏醒的(且由此准备满足远程用户的需求),或者一组计算机中的至少一个持有资源(例如,文件目录,或对通过远程桌面访问的应用程序的许可证)的计算机是苏醒的。在另一示例中,协调可以确保在用户请求了对资源进行访问和该资源可用之间的最小或零等待时间,而同时仍使得大多数负载循环计算机能在任一时刻睡眠。负载循环计算机也可以协调以同时唤醒(周期性地),以使得它们可以在它们本身之间共享上下文信息(例如,每小时一次,或者每天一次),如此实现负载周期的基于上下文的优化,因为它们从彼此那里获得信息。替换地,可以在每一个机器苏醒时根据调度或以自组织(ad-hoc)原理来执行上下文信息在负载循环计算机之间的共享(或复制)。可以使用机器学习来建模用户的行为,并基于此模型来动态地调整负载循环参数。例如,在夜里,工作计算机可以睡眠15分钟,且只苏醒5秒钟,因为远程用户希望访问它是不大可能的。在另一示例中,模型可以了解,用户始终需要在特定时间(例如,中午12 点)对负载循环计算机进行访问,并且可以确保计算机始终在此时是苏醒的。当负载循环计算机苏醒时(如在框401中),计算机可以进入低噪声模式、低亮度模式,和/或其他低干扰模式(其也可以是低功率模式),以最小化由计算机的周期性苏醒所引起的任何干扰。如图7所示,负载循环计算机可以最初苏醒到低噪声模式(框701),且如果确定计算机应该保持苏醒(在框402中,为“是”),则计算机可在随后从低噪声模式进入标准操作模式(框702)。在一个示例中,低噪声模式可以涉及不打开计算机内的诸如硬盘和内部风扇之类的某些元件。诸如显示器、扬声器,及其他诸如打印机之类的外围设备等其他元件也可以不被打开以最小化干扰以及降低功耗。在某些示例中,在这样的低干扰模式下,可以使用低功率CPU (或处理器上的低功率核)(例如,主板上的或诸如网卡之类的分开的卡上的低功率CPU)。诸如处理器的温度之类的其他因素也可以影响负载循环计算机何时从低噪声模式进入标准操作模式。例如,如果当正在进行关于保持苏醒的确定时温度超出阈值(在框402中),则负载循环计算机可以打开其内部风扇。此处所描述的方法可以涉及中央实体,其可以充当消息高速缓存的中央实体、消息转发实体,或者可以具有附加功能(例如,允许计算设备登录和发布在场信息)。中央实体可以,例如,是IM或Live Mesh服务器。在另一示例中,中央实体可以是诸如用户的移动电话或PDA之类的另一设备。在某些示例中,中央实体可以包括关于用户的上下文信息,例如,用户的当前位置(例如,在中央实体是可以由用户携带的便携式设备的情况下),或者, 用户的当前活动(例如,基于日历信息或从上下文传感器中获取的信息)。图8示出了中央实体的操作方法的各种示例。在第一示例81中,当负载循环计算机睡眠时(如在框802中确定的),中央实体缓存接收到(在框801中)的保持苏醒消息 (在框803中),且随后,一旦负载循环计算机苏醒,中央实体就转发消息(在框804中)。 中央实体可以基于负载循环计算机是否登录到中央实体或者中央实体最近是否从负载循环计算机接收到消息,来判断负载循环计算机是否苏醒。替换地,中央实体可以响应于从负载循环计算机接收到(在框805中)的请求消息,转发消息,如第二示例82所示。在第三示例83中,中央实体可以只在接收到的消息时进行转发,或者一次或多次 (例如,如由图6中的虚线所指示的,如第三情景63所示)。在第四示例84中,中央实体发布关于远程机器(如在框806中探知)的在场信息(框807),并转发接收到的任何保持苏醒消息(以第一示例81中示出的对应的方式,框801和804,或者,框801-804)。在场信息可以涉及除负载循环计算机之外的其他机器。虽然中央实体被示为单个元件303,但是,可以理解,中央实体也可以是分布式设备(例如,一组IM或Live Mesh服务器)。在进一步的示例中,可以有一个以上的中央实体(例如,IM中央实体和Live Mesh中央实体),它们可以独立地或协作地操作,以向负载循环计算机发送保持苏醒消息。在许多示例中,中央实体被示为转发设备。然而,在某些示例中,中央实体可以应用策略或其他智能(例如,基于负载循环计算机的活动的模型,按与上文所描述的类似的方式),以便确定是否向负载循环计算机转发保持苏醒消息。例如,中央实体可以知道可在系统(例如,如图9所示)中的多个负载循环计算机901-903中的每一个中可以发现什么资源(例如,文件、应用程序、软件许可证等等)。在这样的示例中,如果远程用户要求一个特定文件,则中央实体可以确定要向负载循环计算机中的哪一个发送保持苏醒。此确定也可以涉及上下文信息的使用,例如,以使得在一个以上的负载循环计算机有资源可用的情况下,向最有可能首先被唤醒的负载循环计算机发送保持苏醒消息。在上文所描述的示例中,保持苏醒消息与特定设备——负载循环计算机301—— 有关。在其他示例中,保持苏醒消息可以涉及一个资源而不是特定设备或涉及计算机的任何其他属性(例如,最小处理能力、可用处理能力等等)。例如,保持苏醒消息可以涉及可从一个以上的负载循环计算机901-903可用并且远程用户希望访问的特定文件和/或特定应用程序。如上,系统可以包括中央实体303,或者,可以不需要中央实体。在使用中央实体的情况下,可以在图10的示例流程图中示出其操作。在此示例中,从远程用户接收保持苏醒消息(框1001),该消息标识所需的特定资源(而不涉及特定负载循环计算机)。如果有资源可用(在框1002中“是”,即,带有该资源的负载循环计算机是苏醒的),则将该消息转发到带有可用资源的计算设备(例如,负载循环计算机901-903中的一个)(框100 ,以及以其他方式将该消息进行高速缓存(框1004),直到资源变得可用。在接收到消息时,负载循环计算机可以作出保持苏醒的决定(例如,如在图4的框402和403中)。在另一示例中,中央实体可以按与图6和8所示出的并且在上文所描述的方案类似的方式仅仅转发消息(不确定它是否可用)一次或多次。中央实体可以将消息转发到所有负载循环计算机, 带有所需资源的所有负载循环计算机,或者,它可以使用上下文信息或机器学习来将消息定标到接下来最有可能唤醒的负载循环计算机(或者负载循环计算机的集合),或者,它可以等待,直到带有所需资源的计算机中的第一个联系它(在唤醒时),并将保持苏醒消息只发送到该计算机。在某些示例中,可以将睡眠时间(即,负载循环计算机下一次唤醒之前的时间)传递到中央实体(例如,在框404内),以帮助定标对保持苏醒消息的转发和/或以使得中央实体可以将访问一资源或一特定负载循环计算机时的期望延迟通知给远程用户(例如,通过上文所描述的用户界面)。 在没有中央实体的情况下,远程计算机可以反复地向提供所需资源的所有负载循环计算机901-903发送保持苏醒消息(以与图6中的示例62类似的方式),直到有资源变得可用。消息的发送可以仅限于在一个组内(例如,IM中的朋友,Live Mesh中的我的设虽然图9示出了三个负载循环计算机,但是,在进一步的示例中,系统可以包括一个或多个负载循环计算机和不负载循环的一个或多个计算机。在这样的示例中,计算机之间的协调可以由不负载循环的计算机中的一个,按与如上文所描述的中央实体的操作类似的方式来执行。在某些示例中,保持苏醒消息可以被加密地签名,以防止未经授权的唤醒,或者, 可以使用中央实体的普通验证方法(例如,Live Mesh和IM两者都需要登录过程,如此,接收到的任何消息都可以只来自于登录且因此被信任的计算机)。由于隐私原因,保持苏醒消息也可以被加密的,以使得诸如文件名、计算机名称、资源的类型/描述,用户名等等之类的潜在隐私数据不被泄漏。图11示出了可以实现为计算和/或电子设备中的任何形式的,其中可以实现此处所描述的方法中的任何方法的实施例的示例性基于计算的设备1100的各种组件。基于计算的设备1100包括一个或多个处理器1101,这些处理器1101可以是微处理器、控制器或任何其他合适的类型的用于处理计算可执行指令的处理器,用以确定与功率管理策略相关联的参数,并实现此策略。在一个示例中,处理器可以处理计算机可执行指令以控制设备的操作以便负载循环设备,以及确定是否保持苏醒及睡眠多长时间(即,确定负载循环参数)。可以在基于计算的设备上提供包括操作系统1102的平台软件或任何其他合适的平台软件,以允许在设备上执行应用程序软件1103-1105。应用程序软件可以包括唤醒定时器1104和判定软件1105以确定是否要保持苏醒(例如,在框402中作出确定)。唤醒定时器1104可包括判定软件,以确定向定时器设置的时间长度(例如,在框404中),或者,此判定软件可以被单独地提供,或者被包括到判定软件1105中。在某些示例中,基于计算的设备也可以包括预测模型1111。在其他示例中,可以不使用预测模型,或者,可以在判定软件 1105内实现建模功能。在实现不涉及负载循环的功率管理策略的情况下,基于计算的设备可以不包括唤醒计时器1104,而可以包括替代性判断软件(而不是判断软件1105)。计算机可执行指令可以使用诸如存储器1106之类的任何计算机可读介质来提供,或可以从远程实体(例如,通过诸如因特网之类的网络,从中央实体或其他实体)下载。 存储器1106可以是诸如随机存取存储器(RAM)之类的任何合适的类型,诸如磁性或光存储设备、硬盘驱动器或CD、DVD或其他盘驱动器之类的任何类型的盘存储设备。也可以使用闪存、EI3ROM 或 EEI3ROM。基于计算的设备1100包括用于接收保持苏醒消息和/或向远程实体(例如,向中央实体303或远程计算机304)发送消息的通信接口 1107。也可以使用通信接口来从远程上下文传感器接收信息,且基于计算的设备可以包括本地上下文传感器1108。
基于计算的设备1100也可以包括显示接口 1109和/或与一个或多个外围设备的接口 1110。这些外围设备可包括显示器、打印机等等,且在某些实施例中,这些可以在唤醒时不被通电,例如,在设备首先被唤醒到如图7所示的低噪声模式下的情形中。基于计算的设备也可以包括一个或多个输入和一个或多个输出(在图11中未示出)。在上文所描述的方法中,负载循环计算机充当受远程用户的控制的资源。除从远程用户接收到的保持苏醒消息之外,也可以从其他实体(例如,诸如更新服务器之类的自动化应用程序服务器)接收保持苏醒消息。从这样的服务器接收到的消息可以触发诸如安装软件更新之类的操作。虽然负载循环计算机自主地唤醒,但是可以基于由远程用户进行的输入,设置唤醒计时器,且关于在唤醒之后是否要保持苏醒的任何判定,取决于从远程用户接收到的消息。可以从远程用户所使用的远程计算机或从诸如中央实体之类的中间设备接收消息。在上文所描述的示例中,远程用户是人类用户。然而,在进一步的示例中,远程用户可以包括在远程计算机上运行的软件代理,该软件代理代表人类用户作出请求。人类用户可以显式地指示远程软件代理执行某些动作,或者可以配置软件代理随后执行的一般策略,或者,软件代理可以通过各种技术,包括但不仅限于传感器输入、或应用机器学习技术来了解人类用户的行为模式,来不太直接地推断人类用户的需求。计算设备的负载循环可降低计算设备的功耗,而此处所描述的方法仍可使计算设备能被远程用户访问,而不会产生太多的延迟。在某些示例中,可以将期望的延迟传递到远程用户。功耗的缩减可以导致较低的操作成本,延长的电池寿命,降低的噪声(因为风扇可以不太经常运转或以较低速度运转),较小/较轻的电池,更长的设备寿命(例如,因为计算机的诸如风扇之类的一些组件可以在唤醒时最初不通电),减小的对环境的影响(例如, CO2减少)等等。另外,计算设备的负载循环还改善用户的方便性和对用户的友好性,因为用户不必关心计算设备是开着还是关着。虽然本示例此处被描述为和示为是在带有经由网络连接的计算设备的如图1,3 和9所示的系统中实现的,但是,所描述的系统是作为示例而不是限制来提供的。如本领域技术人员将理解的,本发明示例适用于应用在各种不同类型的包括多个互连的计算设备的系统中。此外,虽然本发明示例被描述为是为了降低负载循环计算机的功耗而实现的,此处所描述的方法可以有其他应用,且方法的实现可以是出于任何原因或益处。此处使用的术语‘计算机’表示具有处理能力以使其能够执行指令的任何设备。本领域技术人员将认识到这些处理能力被结合到许多不同设备中,并且因此术语‘计算机’包括PC、服务器、移动电话、个人数字助理和许多其他设备。在此描述的各方法可由有形存储介质上的机器可读形式的软件执行。软件可适于在并行处理器或串行处理器上执行以使得各方法步骤可以按任何合适的次序或同时执行。这确认了软件可以是有价值的、可单独交易的商品。它旨在包含运行于或者控制 “哑”或标准硬件以实现所需功能的软件。它还旨在包含例如用于设计硅芯片,或者用于配置通用可编程芯片的HDL(硬件描述语言)软件等“描述”或者定义硬件配置以实现期望功能的软件。本领域技术人员将认识到用于存储程序指令的存储设备可分布在网络上。例如,远程计算机可存储描述为软件的该过程的示例。本地或终端计算机可访问远程计算机并下载该软件的一部分或全部以运行该程序。或者,本地计算机可按需下载软件的片断,或可以在本地终端处执行一些软件指令而在远程计算机(或计算机网络)处执行一些软件指令。 本领域技术人员将认识到,通过使用本领域技术人员已知的常规技术,软件指令的全部或部分可由诸如DSP、可编程逻辑阵列等专用电路来执行。如本领域技术人员将清楚的,此处给出的任何范围或者设备值都可以被扩展或者改变而不失去所寻求的效果。可以理解,上述各好处和优点可涉及一个实施例或者可涉及若干实施例。各实施例不限于解决所述问题中的任一个或全部的实施例或具有所述好处和优点中的任一个或全部的实施例。还可以理解,对‘一个’项目的引用指的是这些项目中的一个或多个。本文中描述的各方法步骤可以在适当时按任何合适的次序或同时执行。另外,可从任一种方法中删除各个框,而不背离此处所述的主题的精神和范围。上述示例中的任一个的各方面可以与所述其他示例中的任一个的各方面组合以形成其他示例而不失去所寻求的效果。术语‘包括’此处用来指包括所标识的方法框或元素,但这些框或元素不构成排他列表,并且方法或装置可包含附加框或元素。可以理解,上面对一较佳实施例的描述只是作为示例给出并且本领域的技术人员可以做出各种修改。以上说明、示例和数据提供了对本发明的各示例性实施例的结构和使用的全面描述。尽管以上带着一定程度的特殊性或对一个或多个单独实施例的参考描述了本发明的各实施例,但是本领域的技术人员能够对所公开的实施例做出多种更改而不背离本发明的精神或范围。
权利要求
1.具有用于基于下列各项中的至少一项为计算设备的至少一部分设置功率管理策略的参数的设备可执行指令的一个或多个有形设备可读介质采用使用数据所生成的预测模型以及从远程计算设备接收到并指示用户偏好的信号。
2.如权利要求1所述的一个或多个有形设备可读介质,其特征在于,所述预测模型被安排成基于所述使用数据来预测下一次何时将使用所述计算设备。
3.如前述权利要求中的任一项所述的一个或多个有形设备可读介质,其特征在于,所述功率管理策略包括用于至少对所述计算设备的一部分进行负载循环的策略。
4.如前述权利要求中的任一项所述的一个或多个有形设备可读介质,其特征在于,所述用于设置功率管理策略的参数的所述设备可执行指令包括用于执行包括下列各项的步骤的设备可执行指令基于由远程用户经由远程计算设备的输入,来确定计算设备是否应该在延长的时段内保持苏醒;以及在所述计算设备进入睡眠之前,设置唤醒定时器以触发所述计算设备唤醒。
5.如权利要求4所述的一个或多个有形设备可读介质,其特征在于,所述确定计算设备是否应该保持苏醒是在唤醒时作出的。
6.如权利要求4或5所述的一个或多个有形设备可读介质,其特征在于,还包括用于执行包括下列各项的步骤的设备可执行指令使所述计算设备进入睡眠;以及根据所述唤醒计时器,触发所述计算设备唤醒。
7.如权利要求6所述的一个或多个有形设备可读介质,其特征在于,根据所述唤醒定时器来触发所述计算设备唤醒包括根据所述唤醒定时器,触发所述计算设备唤醒进入低干扰操作模式。
8.如权利要求4所述的一个或多个有形设备可读介质,其特征在于,基于由远程用户通过远程计算设备的输入来确定计算设备是否应该在延长的时段内保持苏醒包括监听保持苏醒消息。
9.如权利要求8所述的一个或多个有形设备可读介质,其特征在于,基于由远程用户经由远程计算设备的输入来确定计算设备是否应该在延长的时段内保持苏醒还包括在接收到保持苏醒消息时,使所述计算设备在延长的时段内保持苏醒。
10.如权利要求4-9中的任一项所述的一个或多个有形设备可读介质,其特征在于,来自上下文传感器的信息用于下列各项中的至少一项确定所述计算设备是否在延长的时段内保持苏醒;以及设置所述唤醒定时器。
11.如权利要求4-10中的任一项所述的一个或多个有形设备可读介质,其特征在于, 来自所述远程用户的所述输入的信息以及有关另一计算设备的负载循环的信息中的至少一项用于下列各项中的至少一项设置所述延长的时段的长度;以及设置所述唤醒定时器。
12.—种系统,包括第一计算设备;远离所述第一计算设备的第二计算设备;以及互连所述第一和第二计算设备的网络, 其中所述第一计算设备包括触发所述第一计算设备从低功率状态中苏醒的唤醒定时器和预测模型中的至少一个;以及判定软件,其被安排成基于由远程用户在所述第二计算设备上的输入来确定是否保持苏醒。
13.如权利要求12所述的系统,其特征在于,还包括 经由所述网络连接到所述第一和第二计算设备的中央实体, 并且其中所述第一计算设备还包括用于从所述中央实体接收消息的通信接口,并且其中所述判定软件被安排成基于是否从所述中央实体接收到消息来确定是否保持苏醒,所述消息与远程用户的所述输入相关联。
14.如权利要求12所述的系统,其特征在于,还包括 中央实体;以及至少一个附加计算设备,包括触发所述计算设备从低功率状态中苏醒的唤醒定时器;以及判定软件,其被安排成基于远程用户在所述第二计算设备的输入来确定是否保持苏醒,并且其中所述中央实体被安排成 接收指示所述输入的消息,所述消息标识资源;从所述第一计算设备标识计算设备,且所述至少一个附加计算设备包括所述资源;以及向所标识的计算设备发送消息。
15.如权利要求12-14中的任一项所述的系统,其特征在于,所述第一计算设备还包括被安排成基于以下各项中的至少一项来设置所述唤醒定时器的软件远程用户的所述输入、来自上下文传感器的信息、历史行为、以及接收到的关于所述系统中的另一计算设备的负载循环信息。
全文摘要
描述了使用预测模型和信令来节省功率的方法和系统。基于以用户活动为基础的预测和/或从定义用户偏好的远程计算机接收到的信号,来设置功率管理策略的参数。在一实施例中,功率管理策略涉及将计算机置入睡眠状态,并周期性地将它唤醒。在唤醒时,计算机基于预测模型的输出或编码远程用户是否请求了计算机保持苏醒的信号来确定是保持苏醒还是返回到睡眠状态。在返回到睡眠状态之前,设置了唤醒定时器,且此定时器触发计算机在随后唤醒。对定时器设置的时间长度可以取决于诸如来自远程用户的请求、上下文传感器和使用数据之类的因素。
文档编号G06F9/06GK102197349SQ200980142421
公开日2011年9月21日 申请日期2009年10月20日 优先权日2008年10月22日
发明者E·霍维茨, J·斯科特, P·纽森, R·萨林 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1