对计算设备上的热修复进行管理的制作方法

文档序号:11288168阅读:201来源:国知局
对计算设备上的热修复进行管理的制造方法与工艺



背景技术:

随着移动计算设备逐渐变得能够进行高级处理,它们的处理水平受设备的散热能力的限制。为了降低被设备生成的热量的量,可以应用多种不同的热修复。这些修复可以包括限制cpu核频率、降低屏幕亮度等。热修复典型地在应用已运行一时间段之后被应用,所述时间段足够长以便导致设备达到热门限。发热和随后的热修复通过使其变得反应较慢、降低帧率、毛刺化等而负面地影响用户体验。此外,一旦设备随后达到稳定状态(热平衡),作为结果的性能可能实际上比如果已在应用被启动时启用(以某个较低的强度)修复的情况下是更差的。



技术实现要素:

本文中描述的实施例针对:捕获并且存储与热修复有关的历史数据,对修复未来进行预测并且对其采取行动,以及,关于在所述计算机系统上被实施的热修复与应用通信。在一个实施例中,一种计算机系统确定哪些热修复当前正在被监控的计算设备上被实施。所述热修复可以包括降低cpu或者其它硬件构件时钟频率、在cpu核之间移动工作项、使显示器变暗、防止电池充电、降低网卡上的传输速率、禁用天线、禁用端口、降低照相机帧率、降低照相机分辨率、改变硬件构件或者平台空闲状态或者其它的修复。所述热修复是基于所述被监控的计算设备的当前的操作环境的,所述操作环境可以包括物理热环境和当前的软件执行环境两者。

所述计算机系统进一步跟踪当前正在所述被监控的计算设备上被实施的那些热修复的热修复水平。所述热修复水平指示每个热修复被实施的程度。所述计算机系统还针对被跟踪的热修复信息的包括与被监控的计算设备的当前的操作环境有关的信息的那些部分过滤被跟踪的热修复水平,并且将所述经过滤的热修复水平存储在数据储存器中。跟踪并且识别哪些热修复正在被实施和它们正被实施的程度,并且然后对所述修复进行过滤以便确定哪些是与所述计算设备的当前的操作环境最相关的可以允许改变被实施,所述改变节约所述设备的寿命,并且改进处理性能。事实上,通过识别与所述计算设备的当前的操作环境最相关的修复,可以提高或者降低那些修复的水平以便降低所述设备的温度,并且从而提高处理速度和硬件构件性能。

在另一个实施例中,一种计算机系统对热修复未来进行预测并且对其采取行动。所述计算机系统确定被监控的计算系统的当前的操作状态。所述计算系统确定至少一个操作状态特性已在所述被监控的计算系统上改变。所述计算机系统进一步访问之前的热修复水平的指示,所述之前的热修复水平指示每个热修复被实施的程度。所述计算机系统还回应于所述计算系统的操作状态特性的所述改变生成哪些热修复将被实施的预测,并且实施在所生成的预测中被识别的可持续的热修复。

在又另一个实施例中,一种计算机系统关于在被监控的计算机系统上被实施的热修复与应用通信。所述计算机系统从在所述被监控的计算机系统上运行的应用接收提示,其中,所述提示提供所述应用的未来处理行为的指示。所述计算机系统回应于所接收的指示所述应用的未来处理行为的提示生成指示哪些热修复将被应用的预测,并且实施在所生成的预测中被识别的可持续的热修复。所述实施可以由操作系统或者由所述被监控的计算系统自身上硬件或者固件执行。

提供本概要以便以简化形式介绍下面在详细说明中进一步描述的概念的选择。本概要不旨在识别所要求保护的主题的关键特征或者必要特征,其也不旨在被用作在确定所要求保护的主题的范围时的辅助。

附加的特征和优点将在随后的说明中被阐述,并且对于本领域的技术人员来说将从本说明中部分地是明显的,或者可以通过实践本文中的教导被习得。本文中描述的实施例的特征和优点可以借助于在所附权利要求中特别指出的设施和组合来实现和获得。从下面的说明和所附的权利要求中,本文中描述的实施例的特征将变得更明显。

附图说明

为进一步澄清本文中描述的实施例的以上的和其它的特征,将参考附图再现更具体的说明。应当领会到,这些图仅描绘了本文中描述的实施例的示例,并且因此不被认为限制其范围。将通过使用附图以附加的特异性和细节地描述和阐述实施例,其中:

图1图示了包括捕获并且存储与热修复有关的历史数据的本文中描述的实施例可以在其中操作的计算机架构。

图2图示了用于捕获并且存储与热修复有关的历史数据的示例方法的流程图。

图3图示了用于对修复未来进行预测并且对其采取行动的示例方法的流程图。

图4图示了用于关于在计算机系统上被实施的热修复与应用通信的示例方法的流程图。

图5图示了在其中热修复被操作系统、被硬件或者固件或者被两者的组合实施的实施例。

图6图示了示出热修复类型和它们的对应的实施水平的显示的实施例。

具体实施方式

本文中描述的实施例针对:捕获并且存储与热修复有关的历史数据,对修复未来进行预测并且对其采取行动,以及关于在计算机系统上被实施的热修复与应用通信。应当理解,当在本文中提到“应用”时,该术语指应用或者诸如是函数或者方法这样的软件的其它片段。在一个实施例中,一种计算机系统确定哪些热修复当前正在被监控的计算设备上被实施。热修复可以包括降低cpu或者其它硬件构件时钟频率、在cpu核之间移动工作项、使显示器变暗、防止电池充电、降低网卡上的传输速率、禁用天线、禁用端口、降低照相机帧率、降低照相机分辨率、改变硬件构件或者平台空闲状态或者其它修复。热修复是基于被监控的计算设备的当前的操作环境的,所述操作环境可以包括物理热环境和当前的软件执行环境两者。

计算机系统进一步跟踪当前正在被监控的计算设备上被实施的那些热修复的热修复水平。热修复水平指示每个热修复被实施的程度。计算机系统还针对被跟踪的热修复信息的包括与被监控的计算设备的当前的操作环境有关的信息的那些部分过滤被跟踪的热修复水平,并且将经过滤的热修复水平存储在数据储存器中。跟踪并且识别哪些热修复正在被实施和它们正被实施的程度,并且然后对修复进行过滤以便确定哪些是与计算设备的当前的操作环境最相关的可以允许改变被实施,所述改变节约设备的寿命并且改进处理性能。事实上,通过识别与计算设备的当前的操作环境最相关的修复,可以提高或者降低那些修复的水平以便降低设备的温度,并且从而提高处理速度和硬件构件性能。

在另一个实施例中,一种计算机系统对修复未来进行预测并且对其采取行动。计算机系统确定被监控的计算系统的当前的操作状态。计算系统确定至少一个操作状态特性已在被监控的计算系统上改变。计算机系统进一步访问之前的热修复水平的指示,所述之前的热修复水平指示每个热修复被实施例的程度。计算机系统还回应于计算系统的操作状态特性的改变生成哪些热修复将被应用的预测,并且实施在所生成的预测中被识别的可持续的热修复。

在又另一个实施例中,一种计算机系统关于在被监控的计算机系统上被实施的热修复与应用通信。计算机系统从在被监控的计算机系统上运行的应用接收提示,其中,提示提供应用的未来处理行为的指示。计算机系统回应于所接收的指示应用的未来处理行为的提示生成指示哪些热修复将被应用的预测,并且实施在所生成的预测中被识别的可持续的热修复。所述实施可以由操作系统或者由被监控的计算系统自身上的硬件或者固件执行。

下面的讨论现在涉及可以被执行的一些方法和方法动作。应当指出,尽管方法动作可能按照特定的次序被讨论或者在流程图中被图示为按照特定的次序发生,但除非具体指出或者由于一个动作在该动作被执行之前取决于另一个动作被完成而是必需的,特定的排序不必然是必需的。

本文中描述的实施例可以实施各种类型的计算系统。这些计算系统现在正逐渐采用多种多样的形式。计算系统例如可以是诸如是智能电话或者功能电话这样的手持型设备、电器、膝上型计算机、可穿戴设备、台式计算机、大型机、分布式计算系统或者甚至常规上还未被看作计算系统的设备。在本说明和权利要求中,术语“计算系统”被宽泛地定义为包括任何设备或者系统(或者其组合),其包括至少一个物理的并且有形的硬件处理器和能够在其上具有可以被处理器执行的计算机可执行指令的物理的并且有形的硬件或者固件存储器。计算系统可以是分布在网络环境上的,并且可以包括多个成分计算系统。

如图1中所图示的,计算系统101典型地包括至少一个处理单元102和存储器103。存储器103可以是物理系统存储器,其可以是易失性的、非易失性的或者这两者的某种组合。术语“存储器”还可以在本文中被用于指诸如是物理存储介质或者物理存储设备这样的非易失性大容量存储装置。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。

如本文中使用的,术语“可执行模块”或者“可执行构件”可以指可以在计算系统上被执行的软件对象、例程或者方法。本文中描述的不同的构件、模块、引擎和服务可以被实施为在计算系统上执行的对象或者进程(例如,实施为单独的线程)。

在随后的说明中,参考被一个或多个计算系统执行的动作描述了实施例。如果这样的动作用软件来实施,则执行动作的关联的计算系统的一个或多个处理器响应于已执行计算机可执行指令而指导计算系统的操作。例如,这样的计算机可执行指令可以被体现在形成计算机程序产品的一个或多个计算机可读介质或者计算机可读硬件存储设备上。这样的操作的示例涉及对数据的操纵。计算机可执行指令(和被操纵的数据)可以被存储在计算系统101的存储器103中。计算系统101还可以包含允许计算系统101通过有线或者无线网络与其它消息处理器通信的通信信道。这样的通信信道可以包括被配置为接收数据、发射数据或者执行这两者的基于硬件的接收器、发射器或者收发器。

本文中描述的实施例可以包括或者使用专用或者通用计算机系统,所述计算机系统包括如下面更详细讨论的诸如例如是一个或多个处理器和系统存储器这样的计算机硬件。系统存储器可以被包括在总存储器103内。系统存储器也可以被称为“主存储器”,并且包括可以由至少一个处理单元102通过存储器总线进行寻址的存储器位置,在此情况下,在存储器总线自身上宣称地址位置。系统存储器传统上已是易失性的,但本文中描述的原理在其中系统存储器部分地或者甚至完全是非易失性的的情况下也适用。

本文中描述的实施例还包括用于携带或者存储计算机可执行指令和/或数据结构的物理的和其它的计算机可读介质。这样的计算机可读介质可以是任何可以被通用或者专用计算机系统访问的可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质或者存储设备是计算机存储介质或者计算机存储设备。携带计算机可执行指令和/或数据结构的计算机可读介质是传输介质。因此,作为示例而非限制,本文中描述的实施例可以包括至少两种明显不同种类的计算机可读介质:计算机存储介质和传输介质。

计算机存储介质是存储计算机可执行指令和/或数据结构的物理硬件存储介质。物理硬件存储介质包括计算机硬件,诸如ram、rom、eeprom、固态驱动器(“ssd”)、闪存、相变存储器(“pcm”)、光盘存储装置、磁盘存储装置或者其它磁性存储设备或者任何其它的硬件存储设备,所述硬件存储设备可以被用于存储采用计算机可执行指令或者数据结构的形式的、可以被通用或者专用计算机系统访问并且执行以便实施本文中所描述的实施例的公开的功能性的程序代码。

传输介质可以包括网络和/或数据链路,其可以被用于携带采用计算机可执行指令或者数据结构的形式的并且可以被通用或者专用计算机系统访问的程序代码。“网络”被定义为使能够在计算机系统和/或模块和/或其它电子设备之间传输电子数据的一个或多个数据链路。在信息通过网络或者另一个通信连接(硬连线的、无线的或者硬连线或者无线的组合)被传输或者提供给计算机系统时,计算机系统可以将该连接看作传输介质。以上各项的组合也应当被包括在计算机可读介质的范围内。

进一步地,在到达各种计算机系统构件时,采用计算机可执行指令或者数据结构的形式的程序代码可以自动地从传输介质被传输到计算机存储介质(或者反之)。例如,通过网络或者数据链路被接收的计算机可执行指令或者数据结构可以被缓冲在网络接口模块(例如,“nic”)内的ram中,并且然后最终被传输给计算机系统ram和/或计算机系统处的少易失性的计算机存储介质。因此,应当理解,计算机存储介质可以被包括在也(或者甚至主要地)使用传输介质的计算机系统构件中。

计算机可执行指令例如包括当在一个或多个处理器处被执行时导致通用计算机系统、专用计算机系统或者专用处理设备执行特定的功能或者功能的组的指令和数据。计算机可执行指令例如可以是二进制文件、诸如是汇编语言这样的中间格式指令或者甚至源代码。

本领域的技术人员将领会到,本文中描述的原理可以在具有许多类型的计算机系统配置的网络计算环境中被实践,所述计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持型设备、多处理器系统、基于微处理器的或者可编程的消费电子、网络pc、小型计算机、大型计算机、移动电话、pda、平板、寻呼机、路由器、交换机等。本文中的实施例也可以在分布式系统环境中被实践,在所述分布式系统环境中,通过网络被链接(例如,通过硬连线数据链路、无线数据链路或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者执行任务。因此,在分布式系统环境中,计算机系统可以包括多个成分计算机系统。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者处。

本领域的技术人员还将领会到,本文中的实施例可以在云计算环境中被实践。云计算环境可以是分布式的,但这不是必需的。在是分布式的时,云计算环境可以在一个组织内被国际化地分布和/或具有跨多个组织被拥有的构件。在本说明和后面的权利要求中,“云计算”被定义为用于使能实现对可配置的计算资源(例如,网络、服务器、存储装置、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于在被恰当地部署时可以从这样的模型中获得的其它许多优点中的任一个优点。

仍然进一步地,本文中描述的系统架构可以包括每个都对作为整体的系统的功能性作出贡献的多个独立的构件。该模块化在接近平台可扩展性的问题时允许提高的灵活性,并且为此,提供各种优点。可以通过使用具有有限的功能范围的较小规模的部件更容易地管理系统复杂性和增长。通过使用这些松耦合的模块增强了平台容错。单独的构件可以随业务需求指示被递增地增长。模块化开发还意味着针对新功能性的减少了的上市时间。可以添加或者减除新功能性而不影响核心系统。

图1图示了至少一个实施例可以在其中被使用的计算机架构100。计算机架构100包括计算机系统101。计算机系统101可以是任何类型的本地或者分布式计算机系统,包括云计算系统。计算机系统101包括用于执行多种不同的功能的模块。例如,通信模块104可以被配置为与其它计算系统通信。通信模块104可以包括任何可以向或者从其它计算系统接收和/或发射数据的有线或者无线通信装置。通信模块104可以被配置为与数据库、移动计算设备(诸如移动电话或者平板)、嵌入式或者其它类型的计算系统交互。

计算机系统101进一步包括用于执行功能性的其它模块,所述功能性包括:捕获并且存储与热修复有关的历史数据,对修复未来进行预测并且对其采取行动,以及,关于在计算机系统上被实施的热修复与应用通信。如上面提到的,计算系统在诸如是执行软件、与其它计算机系统通信、为它们的电池充电、为显示器供电或者执行其它任务这样地执行功能时生成热量。因此,在计算机系统(诸如移动设备)对应用进行处理、为它的电池充电或者执行其它功能时,该系统可能开始变热。

在计算设备过热时,不论它是数据中心中的服务器、pc、膝上型电脑、平板、电话、可穿戴设备、一体机还是其它设备,热传感器都可以触发该平台上的一个或多个热修复。“热修复”,当该术语在本文中被使用时,指被采取来冷却设备或者降低设备的进一步的发热的行动。在较大的或者ac供电的平台上,这样的修复可以包括增加任何主动的冷却活动(例如,开启风扇或者使其加速),其可能对设备的总体性能没有影响。在较小的设备上,可能不存在任何可用的主动的冷却修复或者这样的冷却修复的不太强大的版本。相应地,可以实施可能影响设备的总体性能的附加的修复。

由于设备典型地花费某个时间量来变热(其可以是可基于设备的当前的操作环境变化的),并且由于直到设备已经是热的才可能实施热修复,所以可能存在平台的用户感知的性能的不连续性。如上面指示的,热修复的实施可以降低设备上的操作性能,这可以导致体验的负面影响。对于资源密集的或者长期运行的应用,由于它们的热斜升特性,该可能性被增加。

此外,平台的电池寿命可能被影响,或者修复之后产生的稳定态性能可能实际上比如果在导致热门限被达到的特定应用或者其它软件的启动时某个较低水平的修复已被生效(kicked)是更差的。此外,即使在某些情况下在应用被启动时足够的热修复不能被启动,诸如为了保证用户体验将是一致的,早期参加热修复也可以增加用户体验降级之前的时间量。

热修复的类型和强度或者水平取决于许多因素,包括特定的设备的特性、设备周围的环境温度或者光水平(其可以被与地理区域或者用户行为的模式相关,诸如在被明亮地照亮的室内的有空调的环境或者其它区域中的典型用途)、由特定用户在运行特定应用的特定设备上使用的典型的时间长度和类型、由该用户体验的网络的典型的信号强度或者类型、针对网络密集的应用的设备或者应用组合或者其它因素,所述其它因素包括设备位于其中的外壳的类型(诸如箱体的类型或者其缺失)或者用户是否正在触摸或者握持设备。

本文中描述的实施例可以被配置为跟踪应用性能和热历史,并且在达到热门限之前强加修复。可以对于具有命中热门限的历史的应用(或者唯一软件的其它片段)完成此,热门限导致特定设备上的非平凡的修复。这样的应用可以包括游戏应用、视频会议应用、视频捕获或者显示应用或者需要相对大量的处理或者其它硬件资源力量的其它应用或者服务。

在本文中描述了包括这样的实施例的多个实施例,所述实施例包括以下各项中的任意一项或者多项:1)跟踪每应用热修复历史,2)基于热修复历史和当前的系统状态提供对未来热修复的预测,3)使用预测来前摄地设置热修复,4)使应用能够参与该过程,以及5)使设备之外的实体能够参与该过程。

跟踪每应用热修复历史可以涉及软件、固件和/或硬件的部分。软件、固件或者硬件的这些片段可以负责基于每应用跟踪热修复历史。这样的跟踪可以识别哪些热修复被实施、它们何时被实施、它们被实施了多久和每个修复被实施的程度。计算机系统101的热修复跟踪模块106可以使用软件、固件和/或硬件执行该跟踪。由于存储资源(例如,主存储器或者物理存储装置)固有地是有限的,所以被存储在设备上的历史的量将是有限的。

因此,历史的元素可以在它们的值被认为是降低了的(例如,通过是“旧的”或者不再相关的)时被删除或者减少。可以将较旧的数据移到诸如是存储区域网络(san)或者云存储装置这样的外部数据储存器。可以用可能更反映当前的情形(例如,典型的环境温度或者亮度、典型的使用模式、典型的网络信号强度等)的“较新的”元素替换历史的“较旧的”元素。可以由用户或者由软件设置定义历史的元素是较旧的还是较新的。

将被存储在历史元素中的热修复信息可以被周期性地地轮询,或者可以被特定的事件触发。例如,这些事件可以包括热修复水平的改变、切换应用、开始或者停止特定的后台活动、对接或者取消对接平台、改变电池充电水平、改变任何主动的冷却的水平、打开或者关闭屏幕、改变屏幕亮度、进入或者退出特定的低功率模式、应用请求特定的热修复改变或者其它的事件。在某些情况下,触发热修复历史跟踪的事件可以是由用户指定的。

可以从被分派任务来监控、观察和/或控制设备(例如,被监控的计算设备118)上的热修复活动的软件的片段、固件或者硬件获得热修复信息(例如,图1的126)。热修复信息和被存储的历史元素在复杂性上的范围可以从单个信息比特(例如,指示热修复是否被参加)到复杂的信息集合(例如,如在图6中被一般地示出的针对硬件构件的集合中的每个硬件构件的热修复的特定水平)。

在某些实施例中,可以通过多种信息为历史元素加标签,这样的信息包括主要的运行应用(例如,与特定的活动相关联的进程、线程或者任务的某个集合)、不与主要的运行应用相关联的任何后台系统活动、任何其它的运行应用、关于主要的或者其它的应用或者后台活动的任何特定阶段信息、任何相关的系统状态(例如,对接状态、充电状态、主动冷却状态、屏幕状态、硬件或者固件或者软件功率模式、应用请求、被硬件构件的某个集合消耗的资源的量等)和任何其它的帮助将历史元素放入合适的上下文(潜在地用于稍后使用)中的信息的片段。对于给定的情形来说高度相关或者最相关的信息的那些部分可以是指示设备将如何在其当前的环境中作出反应和环境将如何影响设备分散或者管理热量的能力的信息的部分。

历史元素可以基于它们是否满足准则的某个集合而被删除(或者根本不被写),准则的所述集合确定元素在某个稍后的点是否将是可用的。例如,如果应用的运行时间对于任何热修复被启用不是足够的,则对应的历史元素可以在内容层面上被丢弃或者被减弱,或者元素可以由于主动冷却在对应的时间间隔期间或者时间点处被参加而被丢弃,或者与特定的应用相对应的元素中的每个元素如果卸载或者用新版本更新该应用则可以被丢弃。其它变型也是可能的。

基于热修复历史和当前的系统状态提供对未来热修复的预测可以涉及软件、固件和/或硬件的部分。这些软件、固件或者硬件的片段可以负责使用上面描述的热修复历史元素和任何相关的系统状态信息来作出关于哪些热修复最适合于被监控的设备118的预测。应当指出,尽管被监控的设备118被示为是与计算机系统101分离的,但计算机系统101可以被配置为如在本文中一般地描述的那样监控其自身。

本文中描述的实施例可以存在于软件、固件或者硬件的相同的片段中,或者可以驻留于这些片段的组合中。这样的实施例可以合并当前的相关状态信息,诸如主要的运行应用(例如,与特定的活动相关联的进程、线程或者任务的某个集合)、不与主要的运行应用相关联的任何后台系统活动、任何其它的运行应用、关于主要的或者其它的应用或者后台活动的任何特定阶段信息、任何相关的系统状态(例如,对接状态、充电状态、主动冷却状态、屏幕状态、硬件或者固件或者软件功率模式、应用请求、被硬件构件的某个集合消耗的资源的量等)和其它的帮助选择适用于当前决策的历史元素的正确集合的信息的片段。还可以考虑历史元素的年龄,因为更年轻的元素可能是更相关或者适用的。类似地,具有与当前的天、周或者年中的时间相匹配的天、周或者年中的特定的时间的元素可能是比不相匹配的元素更相关的。

如上面提到的,预测(例如,图1的110)的内容在复杂性上的范围可以从单个信息比特(例如,参加还是脱离热修复)到复杂的信息集合(例如,针对硬件构件的集合中的每个硬件构件的可持续的热修复的特定的被预测水平)。预测可以被周期性地作出或者可以被特定的事件触发(例如,热修复水平的改变、切换应用、开始或者停止特定的后台活动、对接或者取消对接平台、改变电池充电水平、改变任何主动的冷却的水平、打开或者关闭屏幕或者改变其亮度、进入或者退出特定的低功率模式、应用请求特定的热修复改变等)。预测的结果(如果被对其采取行动的话)可以被设计为具有多个正面的好处,诸如降低某个稍后的时间点处的用户体验的负面改变的可能性、改进电池寿命、改进系统的总体性能、延迟通过增加热修复导致的用户体验的负面改变的时间点或者减少所述负面改变的影响。

如果针对给定应用的历史数据的量已被认为对于决策是不足够的,或者如果可以通过咨询来改进预测,则任何关于应用的资源使用模式的信息(通过观察、先前的分析被获得的,或者基于应用类型(例如,游戏应用或者视频会议应用)被先验地提供的)可以被用于找到其它相关历史元素,并且将该信息并入决策制定过程。

使用用于前摄地设置热修复的预测可以涉及软件、固件和/或硬件的部分。软件、固件或者硬件的这些片段可以负责使用在上面描述的过程中被生成的预测和任何相关系统状态信息(例如,热传感器)来作出对受该片段控制的热修复的水平的改变。受控制的热修复在复杂性上的范围可以从单个信息比特(例如,参加还是脱离热修复)到复杂的信息集合(例如,针对硬件构件的集合中的每个硬件构件的参加的热修复的特定的水平)。可以被热缓解的构件的类型可以包括cpu核、gpu核、网络控制器、显示控制器、嵌入式控制器或者功能单元、主存储器、存储装置、i/o接口或者其它硬件构件。对预测的使用可以被维持直到新预测被提供或者在决定合适的缓解水平时的它们的值可能随时间被降级。对预测的使用可以是严格的,或者可以被看作提示,或许为在其中预测可能不是完全准确的那些情形留下净空,或者随时间提供某种水平的减少修复以便查明所预测的可持续的水平是否是太过激进的。

(通过合并预测)产生的热修复水平的设置可以被设计为具有正面的好处,诸如降低某个稍后的时间点处的用户体验的负面改变的可能性、改进电池寿命、改进系统的总体性能或者延迟通过增加热修复导致的用户体验的负面改变的时间点或者减少所述负面改变的影响。

使应用能够参与上面描述的过程可以包括让应用提供关于它们打算将多少处理或者其它硬件资源力量用于特定的任务的提示。应用或者其它的可唯一地识别的软件的片段也可以通过被用引导预测过程的标识符加标签来参与热修复决策的过程。例如,可以以这样的方式为具有重的资源使用和网络活动的应用加标签,使得预测机制将甚至在足够的应用执行历史已被搜集之前参加非平凡的热修复。

类似地,应用可以在其运行时期间动态地提供加标签信息,其指示在其运行时期间出现的活动水平的多个阶段。应用加标签在复杂性上的范围可以从单个信息比特(例如,重或轻强度应用)到复杂的信息集合(例如,针对硬件构件的集合中的每个硬件构件的参加的热修复的特定水平或者针对不同的硬件构件被预期的使用的特定水平)。构件的类型可以包括cpu核、gpu核、网络控制器、显示控制器、嵌入式控制器或者功能单元、主存储器、存储装置、i/o接口等。期望最高水平的性能的应用(例如,基准应用或者游戏)可以指定将通知上面描述的系统和进程避免参加热修复或者降低修复被参加的程度的标签,即使这表示未来的热缓解的可能性增大。可以通知应用热修复的预测(即,未来的水平)和/或当前的水平,使得它们可以恰当地调整它们自己的行为以便作出对当前可用的资源的最佳使用。

使设备之外的实体能够参与该过程可以涉及诸如是数据或者服务提供商这样的第三方。本文中描述的系统之外的软件、固件或者硬件也可以参与预测过程。例如,可以将热修复历史信息传递给外部实体。外部实体可以在其分析中包括将历史信息放入上下文中的其它信息,诸如每个系统的特性(例如,制造商和模型编号)、每个系统的地理位置或者天气状况、在每个系统上运行的工作负荷的特性等。外部实体可以在应用或者其它的可唯一地识别的软件片段的实际运行时之前对从一个或多个被监控的计算机系统(例如,图1的118)收集的信息进行分析以便提供预测。外部实体可以周期性地或者在特定的事件时(例如,于在工厂创建系统期间、在用户第一次使用系统时、在更新被下载到该系统时、在应用被安装时、在用户改变地理区域时、在天气状况改变时等)将其分析或者预测提供给系统。

在一个实施例中,可以实施资源管理器和功率管理器。资源管理器内的状态机可以具有被用于预测未来的情形的启发法和算法的集合,在所述未来的情形中,很有可能非平凡的热修复将被生效,并且因此以可能显著破坏用户体验的方式降低性能。该状态机可以被若干源馈入,所述若干源为:指示哪些应用在前台或者后台中主动的应用状态数据、对屏幕是打开的还是关闭的、系统是否是以备用方式被连接的、应用中的任何应用是否已请求持续的热模式的指示等。至少在某些情况下,资源管理器可以具有对这样的信息的访问,并且将其提供给状态机。数据例如可以包括百分比的数组。例如,一个数据元素可以是针对cpu核的已被参加的频率节流的百分比。

每应用热历史(path)描述自从被安装或者自每应用信息从设备之外的实体被获得起已至少一次在持续的持续时间内被运行的那些应用的热历史。包括热修复百分比的数据数组的历史可以被用于计算应当参加到创建最佳的用户体验的热修复的很可能的未来的水平。path数据可以周期性地或者在特定的事件的时间处(例如,在热修复水平改变时、从应用切换走时、参加硬件对接或者主动冷却时)通过调用被配置为检索热修复状态并且将它们存储在热修复百分比的数组中的方法而被更新,由负责参加热修复的应用键入(keyed)。path可以附加地由包括地理位置、天气状况、对接/取消对接状态等的环境因素键入。在某些情况下,可以实施通过移除陈旧的数据来将path保持在合理的大小处的机制,这允许净空,使得如果典型环境已改变,则提示水平可以被放宽等。对哪个应用被指定为“负责的”的确定可以是基于多个因素(例如,哪个应用处在前台中、多少和什么类型的后台活动正在进行等)的。

状态机还可以对针对给定的应用(在它被启动时(以及可能在切换到它时))的path数据进行解析。状态机可以生成适合于经由被配置为设置热修复提示的方法来传递的热修复百分比的所建议的数组。还可以实施用于轮询和/或提示硬件热修复引擎状态信息并且制作向其它应用方法的合适内部映射的应用编程接口(api)。这些api可以进一步允许资源管理器轮询或者被通知诸如是硬件对接参加/脱离、主动冷却(针对混合设计)参加/脱离或者其它改变这样的特定的热环境改变。

功率管理器可以负责管理针对任何已暴露冷却算法或者热地带的构件的热修复的水平。在热门限针对一个或多个热传感器被达到时,功率管理器可以参加专用于每个相关的硬件构件的代码。因此,功率管理器可以变得知道针对已给出合适的控制的构件的集合的硬件修复的水平。因此,可以实施用于在逐个构件的基础上选择热修复水平的算法或者应用功能。可以向那些算法提供与即将到来的应用处理行为有关的提示。提示可以采用建议的热修复水平(百分比)的数组的形式。至少在某些情况下,来自资源管理器的最新的先前的提示可以被维持为算法输入,直到下一个提示被接收为止。

为了资源管理器识别合适的提示,其可以偶尔地轮询被监控的设备(例如,118)以得到其当前的热修复水平。预期的时间表可以是分或者秒,或者可以甚至是动态的或者针对不同的平台基于它们的热特性(例如,针对在持续的负载下快速变热的较便宜的平台)被不同地设置。如果硬件热修复引擎是可用的,则硬件提供商可以提供api,所述api允许被监控的设备通知它持续的活动的周期何时即将到来,使得硬件热修复引擎可以在实际活动跳脱热门限之前节制资源使用。

在某些实施例中,可以创造另一个api,其允许热修复引擎以与被监控的设备118的类似的方式向资源管理器发送其热修复水平。假设数据遵循与来自被监控的设备的数据相似或者等同的格式,则资源管理器可以执行准备要向热修复引擎发送的提示的类似的过程。应当指出,资源管理器可能不需要实际上知道哪些单独的热修复水平与特定的硬件或者固件构件相对应。相反,资源管理器可以基于由热修复引擎提供的数组中的每个水平的历史执行其预测。

对于诸如是计算密集和/或网络密集的游戏这样的特定的应用,存在热门限可能在玩游戏的过程期间被命中的可能性,其最终结果是性能的突然下降以及因此由于实施热修复产生的使人不愉快的用户体验。通过跟踪这样的场景的热修复历史,可以在热门限被命中之前将热修复的合适的集合付诸实施。这不仅降低性能突然下降的可能性,其还可以因为不太引人注目的动态修复被实施而导致更高的性能水平。将在下面分别关于图2、3和4的方法200、300和400进一步阐述这些概念。

图2图示了用于捕获并且存储与热修复有关的历史数据的方法200的流程图。现在将频繁参考环境100的构件和数据描述方法200。

方法200包括确定哪些热修复当前正在被监控的计算设备上被实施,热修复是基于被监控的计算设备的当前的操作环境的(210)。例如,计算机系统101的确定模块105可以确定哪些热修复126正在被监控的计算设备118上被实施。如上面指示的,热修复126可以是被设备采取来冷却设备或者降低设备的进一步的发热或者降低进一步的发热的速率的任何行动。被监控的计算设备118如计算机系统101那样可以是任何类型的计算设备,包括电话、膝上型电脑、台式设备、平板、可穿戴设备、服务器或者任何其它的在它们中具有电子构件的设备(包括电视机、电缆或者卫星电视盒、诸如是路由器和防火墙这样的网络设备、dvd播放器、立体声设备等)。实际上,应当理解,本文中描述的原理和实施例可以被应用于任何合并了电子并且具有过热的潜能的设备或者系统。此外,应当理解,尽管在图1中被示为单独的设备,但计算系统101可以监控其自身,并且因此,计算机系统101可以自身是被监控的设备。

热修复126可以包括以下各项中的任意一项或者多项:降低cpu或者其它硬件构件时钟频率、在cpu核之间移动工作项、使显示器变暗、防止电池充电、降低网卡上的传输速率、禁用天线、禁用端口、降低照相机帧率、降低照相机分辨率、改变硬件构件或者平台空闲状态或者采取用于减少硬件构件的活动从而降低热量的其它措施。如在本文中被使用的术语“当前的操作环境”(例如,图1中的元素127)包括物理热环境和/或当前的软件执行环境。

因此,当前的操作环境可以包括什么正在设备的硬件构件中的每个(或者至少一些)硬件构件上发生的画面或者指示。当前的操作环境还可以包括哪些应用、服务和/或进程正在被监控的设备上被执行(或者最近被执行过)的画面或者指示。附加地或者替换地,计算设备的当前的操作环境127可以包括环境温度和亮度、用户是否正在主动地使用系统、显示屏是否是打开的、图形处理单元(gpu)或者其它硬件构件是否是打开的、天线是否是打开的以及每个构件正以其操作的水平(即,高负载或者低负载)的指示。

方法200进一步包括跟踪针对当前正在被监控的计算设备上被实施的那些热修复的热修复水平,热修复水平指示每个热修复被实施的程度(220)。计算机系统101的热修复跟踪模块106可以跟踪热修复水平116,热修复水平116可以作为跟踪数据115的部分被发射给计算机系统101。热修复水平116可以指示每个热修复正在被监控的设备118上被实施的程度。

如图6中所示,可以实施许多不同类型的热修复601。每个热修复类型602可以具有对应的实施水平603。实施水平可以按照1-10的尺度被示出(如图6中所示),或者可以通过条形图或者传达实施程度的其它手段被示出。按照1-10的尺度,1可以指示特定的热修复类型根本不被实施或者仅非常轻量地被实施。另一方面,9或者10可以指示给定的热修复被完全地或者接近完全地实施。因此,例如,如图6中所示,由于针对“降低照相机帧率”的实施水平位于9处,所以照相机帧率已针对该被监控的设备被严重降低。同时,由于降低“数据传输速率”和“禁用天线”两者位于水平1处,所以它们都不被实施或者仅被最小量地实施。可以基本上以任何水平执行热修复的实施,并且可以将水平划分成更少的粒度划分(例如,高、中和低)或者更多的粒度划分(例如,1-100的实施尺度)。此外,应当理解,每个热修复类型602可以具有其自己的可单独地调整的实施水平。

返回图2,方法200接下来包括:针对被跟踪的热修复信息的包括关于被监控的计算设备的当前的操作环境的最相关的信息的那些部分,对被跟踪的热修复水平进行过滤(230)。例如,计算机系统101的过滤模块107可以对被跟踪的热修复水平116(图6的603)进行过滤,以便识别热修复信息的关于被监控的计算设备的当前的操作环境127最相关的那些片段。该过滤可以是对于每个被监控的设备来说唯一的,因为每个设备可以具有不同的构件、可以是处在不同的环境温度或者亮度中的、可以正在处理不同的应用、可以具有不同地实施的设置(例如,屏幕亮度设置),或者其它因素可以对每个被监控的设备作出贡献。因此,与每个设备最相关的热修复信息可以是唯一的或者基本上唯一的。

图1的被监控的计算设备118包括多个硬件和软件构件。并非这些构件中的全部构件将存在于每种类型的被监控的计算设备上(或者附加的构件可以存在)。设备118包括硬件处理器119、存储器120、诸如是wifi、蓝牙、cdma、gps等这样的天线、电池122、可以是触摸屏或者其它类型的显示器的显示器123、诸如是闪存、磁性存储装置或者基于盘的光学存储装置这样的数据存储装置124、操作系统125和被安装在其上的应用129。因为每个被监控的计算设备具有其自己的硬件、应用、设置、使用模式和物理环境(例如,温度和湿度)的集合,所以与该被监控的设备最相关的热修复信息的经过滤的集合很可能是与全部其它设备不同的。

与被监控的设备118最相关的热修复信息的经过滤的集合可以包括信息,所述信息指示在仍然提供足够的功能性(即,不大量降低用户体验)的同时对降低设备的温度最有效的那些热修复。知道哪些热修复正在被实施和它们正被实施的程度可以允许在降低设备的温度并且因此节约设备的寿命的同时改进处理性能的改变被实施。通过识别与计算设备的当前的操作环境最相关的修复,可以提高或者降低那些修复的水平,以便降低设备的温度,并且因此提高处理速度和硬件构件性能。

方法200还包括:将经过滤的热修复水平存储在数据储存器中(240)。例如,可以将经过滤的热修复水平113存储在数据储存器112中。数据储存器112可以位于计算机系统101的外部或者内部。数据储存器112可以是任何类型的本地或者分布式存储装置,包括存储区域网络(san)或者云存储装置。在某些情况下,计算机系统101的确定模块105可以确定热修复数据是由操作系统(os)还是由计算机系统硬件获得的。例如,热修复水平数据116可以是由操作系统125或者由被监控的计算机系统118上的硬件或者固件获得的。该热修复数据可以被存储在数据储存器112上,直到其被确定为是不再相关的为止。在那时,其可以被手动地或者自动地删除。

例如,在应用从被监控的设备被删除或者不再被使用时,与该应用的执行相关的热修复数据可以被认为是废弃的,并且可以被删除。在某些情况下,已存储的热修复水平113可以按照应用名称或者按照应用类型被编制索引,使得在应用被删除或者不再被使用时,用户或者软件维护模块130可以容易地挑出与那些应用相对应的数据,并且移除它。此外,按照应用名称或者应用类型为信息编制索引可以允许用户(或者预测生成模块109)确定哪些热修复是在仅提供对用户体验的最小量的入侵的同时对于降低设备温度最有效的。

现在转向图3,图示了用于对修复未来进行预测并且对其采取行动的方法300的流程图。现在将频繁参考环境100的构件和数据描述方法300。

方法300包括:确定被监控的计算系统的当前的操作状态(310)。计算机系统101的确定模块105可以确定被监控的计算机系统118的当前的操作状态127。如上面那样,当前的操作状态可以包括设备的物理环境以及当前执行的应用和当前操作的硬件或者固件构件的指示。确定模块105还可以确定至少一个操作状态特性128已在被监控的计算系统上改变(320)。操作状态特性可以包括任意类型的设置改变、应用执行改变、硬件或者固件构件操作改变、物理环境改变或者将影响被监控的设备的当前的操作状态127的其它的改变。

在某些情况下,基于指定的事件的发生或者基于轮询发起确定至少一个操作状态特性已在被监控的计算系统上改变。例如,导致热修复跟踪模块106确定(其它)操作状态特性是否已改变的诸如是设备温度的升高这样的事件可能发生。替换地,跟踪模块106可以被配置为周期性地轮询被监控的设备118以便确定任何操作状态特性是否已改变。

方法300进一步包括:访问之前的热修复水平的指示,之前的热修复水平指示每个热修复被实施的程度(330)。计算机系统101的访问模块108可以访问之前的热修复水平114的指示(即,上面描述的每应用热历史(path))。这些之前的热修复水平114指示每个热修复在被监控的设备118上被实施的水平或者程度。预测生成模块109可以回应于计算系统的操作状态特性的改变生成哪些热修复将被应用的预测110(340)。该预测可以基于一个或多个事件发生被动态地更新。事件可以指示应用即将被执行或者大量数据即将被发射或者处理密集的游戏即将被运行。

预测110是基于之前的热修复水平(即,该事件最后一次发生时发生了什么)的。预测因此示出由于事件(例如,高分辨率游戏的启动)哪些热修复将被实施。预测可以是与先前所观察的内容(例如,path中的)不同的,因为较早(即,在热门限事件发生之前)应用热修复可以导致性能与温度之间的不同的稳定态平衡,或者延长持续的应用执行之后热门限事件发生之前的时间的量。因此,预测110可以涉及多于仅仅复制先前的热修复水平。

在某些实施例中,可以使用启发法来对热修复历史114进行分析并且预测与热修复有关的未来行为。启发法可以对许多不同的进程、服务、硬件交互和其它的在执行设备功能时所涉及的构件进行分析,并且可以随时间学习设备如何作出响应,因此识别由于特定的激励哪些热修复被实施。这个被生成的预测可以是指示热修复将被提高还是降低的单个信息比特,或者可以包括更复杂或者详细的信息,所述信息识别针对硬件的将基于所生成的预测以特定方式或者在特定程度上被节流的不同片段的热修复。

方法300还包括:实施在所生成的预测中被识别的一个或多个可持续的热修复(350)。热修复实施模块111可以实施在预测110中被识别的热修复。这些修复可以由被监控的计算设备118的操作系统125实施,或者可以由被监控的设备118的硬件或者固件构件基于所生成的预测实施。基于所生成的预测110实施热修复126可以包括:改变热修复中的任何一个或多个热修复在被监控的计算设备上被应用的水平(例如,图6的603)。至少在某些实施例中,可以在被监控的计算系统118上的可允许的温度被超过之前实施热修复126。因此,以这种方式,可以通过在设备的主动冷却特征生效之前实施热修复来预测并且防止过热。

在确定将对热修复作出什么水平的改变时,可以在生成哪些热修复将被应用的预测110时给予最近的被监控的计算设备使用更多权重。因此,可以在生成预测110并且对其采取行动时给予已更近地被执行的应用或者已更近地被执行的其它功能更多的权重。

图4图示了用于关于在计算机系统上被实施的热修复与应用通信的方法400的流程图。现在将频繁参考环境100的构件和数据描述方法400。

方法400包括:从在计算机系统上运行的应用接收一个或多个提示,所述提示提供应用的未来处理行为的指示(410)。计算机系统101的预测生成模块109可以从在被监控的计算设备118上运行的应用接收提示117,其中,提示提供应用的未来处理行为的指示。应用129(或者其它服务或者软件功能)可能知道它们为了正确地起作用将需要的处理、存储装置、存储器或者其它资源的量。例如,诸如是视频会议应用这样的某些应用使用预先的一阵处理来建立连接,但稍后使用较少的处理,而其它应用使用稳定量的处理和其它资源。这些应用可以是能够向预测生成模块109提供提示117使得它将知道什么即将在被监控的设备118上发生。

方法400包括:回应于所接收的指示应用的未来处理行为的提示,生成指示哪些热修复将被应用的预测(420)。因此,预测生成模块109可以使用所接收的提示来生成与被监控的设备118上的未来的硬件、软件和固件使用有关的预测110。一旦预测已被生成,则热修复实施模块111可以实施在所生成的预测中被识别的可持续的热修复(430)。如图5中所示,提示501和预测502可以每个进入到基于设备的当前的操作环境127对在给定的情形下哪些热修复503将针对给定的设备被选择的确定。一旦热修复503已被识别,则操作系统504可以实施热修复506,设备的硬件/固件505可以实施热修复506或者操作系统504和硬件/固件505的组合可以实施热修复506。

在某些实施例中,计算机系统101可以将诸如是提示这样的数据发回在被监控的设备118上运行的应用129。这些提示可以指示哪些热修复将在被监控的设备上被实施。因此,应用可能能够对数据作出响应并且以某种方式修改其执行。例如,应用可以修改其执行行为以便对较低的cpu频率或者对较低的数据传输速率等进行补偿。被发送给应用的提示可以向应用指示热修复将如何被实施以及热修复将被实施的程度,从而允许应用相应地作出响应。与被监控的计算机系统的环境有关的提示可以由诸如是第三方实体这样的外部实体提供。

仍然进一步地,可以将操作信息传递给云服务,云服务回应于所接收的指示应用的未来处理行为的提示生成哪些热修复将被应用的预测。因此,云服务可以被实施来生成预测,其然后在被监控的计算设备118上被实施。这些热修复可以在被监控的计算机系统命中任何预定义的热门限之前被实施。因此,热修复可以在设备过热之前以经测量的方式被实施,从而允许应用和硬件两者对被热修复采取的行动进行补偿。以这种方式,被监控的设备可以在减少硬件构件的功耗的同时为用户提供增强了的性能。

权利要求支持:一个实施例描述了一种在包括至少一个处理器的计算机系统处被实施的用于捕获并且存储与热修复有关的历史数据的方法。所述方法包括:确定哪些热修复126当前正在被监控的计算设备118上被实施,其中,热修复是基于被监控的计算设备的当前的操作环境127的;跟踪当前正在被监控的计算设备118上被实施的那些热修复126的热修复水平116,其中,热修复水平指示每个热修复被实施的程度;针对被跟踪的热修复信息的包括与被监控的计算设备的当前的操作环境127有关的信息的那些部分过滤被跟踪的热修复水平;以及,将经过滤的热修复水平113存储在数据储存器112中。

在某些情况下,热修复包括以下各项中的至少一项:降低cpu时钟频率、在cpu核之间移动工作项、使显示器变暗、防止电池充电、降低网卡上的传输速率、禁用天线、禁用端口、降低照相机帧率、降低照相机分辨率或者改变硬件构件或者平台空闲状态。所述方法还包括:确定热修复数据是由操作系统(os)还是由计算机系统硬件获得的。

在另一个实施例中,提供了一种计算机程序产品。所述计算机程序产品实施用于对热修复未来进行预测并且对其采取行动的方法。所述计算机程序产品包括具有被存储在其上的计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在被计算系统的一个或多个处理器执行时,导致计算系统执行方法,所述方法包括:确定被监控的计算系统118的当前的操作状态127;确定至少一个操作状态特性128已在被监控的计算设备118上改变;访问之前的热修复水平114的指示,之前的热修复水平指示每个热修复126被实施的程度;回应于被监控的计算系统118的操作状态特性128的改变生成哪些热修复将被应用的预测110;以及,实施在所生成的预测110中被识别的一个或多个可持续的热修复。

在某些情况下,基于所生成的预测实施热修复包括:改变一个或多个热修复在被监控的计算系统上被应用的水平。确定至少一个操作状态特性已在被监控的计算系统上改变基于轮询或者基于指定的事件的发生而发生。启发法可以被用于对热修复历史进行分析并且预测与热修复有关的未来行为。被监控的计算系统的操作系统基于所生成的预测实施一个或多个热修复。基于一个或多个事件发生动态地更新所生成的预测。计算系统硬件或者固件的部分基于所生成的预测实施热修复。所生成的预测包括指示针对将基于所生成的预测以特定方式被节流的多个的硬件片段的热修复的信息。可持续的热修复在被监控的计算系统上的可允许的温度被超过之前被应用。

在另一个实施例中,提供了一种计算机系统,其包括:一个或多个处理器102;用于从在被监控的计算机系统118上运行的应用129接收一个或多个提示117的接收模块104,提示提供应用的未来处理行为的指示;预测生成模块109,其用于回应于所接收的指示应用的未来处理行为的提示生成指示哪些热修复126将被应用的预测110;以及,用于实施在所生成的预测110中被识别的一个或多个可持续的热修复的热修复实施模块111。

所述计算机系统进一步将指示哪些热修复将被实施的信息的部分发回应用,并且信息的所述部分向应用指示热修复将如何被实施以及热修复将被实施的程度,从而允许应用相应地作出响应。

因此,提供了捕获并且存储与热修复有关的历史数据的方法、系统和计算机程序产品。此外,提供了对热修复进行预测并且对其采取行动并且关于在计算机系统上被实施的热修复与应用通信的方法、系统和计算机程序产品。

本文中描述的概念和特征可以以其它特定的形式被体现,而不脱离它们的精神或者描述特性。所描述的实施例将在所有方面仅被认为是说明性的而非限制性的。因此,本公开内容的范围由所附权利要求而非由前述说明指示。落在权利要求的等同项的意义和范围内的全部改变将被包括在它们的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1