CN107683443B - 预测控制系统和方法 - Google Patents

预测控制系统和方法 Download PDF

Info

Publication number
CN107683443B
CN107683443B CN201680031616.2A CN201680031616A CN107683443B CN 107683443 B CN107683443 B CN 107683443B CN 201680031616 A CN201680031616 A CN 201680031616A CN 107683443 B CN107683443 B CN 107683443B
Authority
CN
China
Prior art keywords
processing
future
task
processing device
tasks
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.)
Active
Application number
CN201680031616.2A
Other languages
English (en)
Other versions
CN107683443A (zh
Inventor
N·卡尔亚纳孙达拉姆
J·S·尼根
J·S·艾斯迈尔
R·H·谭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN107683443A publication Critical patent/CN107683443A/zh
Application granted granted Critical
Publication of CN107683443B publication Critical patent/CN107683443B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了系统和方法,该系统和方法用于确定处理设备的当前机器状态,预测待由处理设备在未来时间执行的未来处理任务,以及预测要在第一时间(例如当前时间)和未来处理任务开始之前执行的干预处理任务的列表。未来处理任务具有相关联的初始状态。前馈热预测模型确定在未来处理任务开始的时间处的预测的未来机器状态。热缓解进程可在未来处理任务开始之前被应用,以达到用于开始未来处理任务的未来初始机器状态。

Description

预测控制系统和方法
相关专利申请
该美国专利申请根据35U.S.C.§119(e)要求2015年6月5日提交的且名称为“PREDICTIVE CONTROL SYSTEMS AND METHODS”的美国专利申请62/171,964(代理人案卷号4860.P26197Z)的优先权,该专利申请以引用方式并入本文,引用的程度与本公开一致。
本美国专利申请涉及以下美国专利申请,以下美国专利申请中的每一者以引用方式并入本文,引用的程度与本公开一致:
(1)2014年9月30日提交的名称为“THERMAL MITIGATION USING SELECTIVE TASKMODULATION”的专利申请14/503,318(代理人案卷号P23569US1);和
(2)2014年9月30日提交的名称为“THERMALLY ADAPTIVE QUALITY-OF-SERVICE”的专利申请14/503,321(代理人案卷号P23569US2)。
技术领域
本公开涉及电子设备的温度控制领域,并且具体地在一个实施方案中涉及电子设备的温度控制的预测方法。
背景技术
在操作中,电子设备消耗电功率并生成热。设备消耗的功率越多,则由设备生成的热越多。设备诸如膝上型计算机或台式计算机或便携式电子设备可包含热生成部件,诸如显示器、一个或多个处理单元、硬盘和/或闪存存储器或其他固态驱动存储器和各种子系统诸如音频、电信和存储器。所消耗的功率的量和所生成的热的量可足够高,以使得设备包括用于冷却该设备的一个或多个风扇。一些设备可包括其他节能(和减热)特征部,诸如降低设备中的处理器的时钟速率或降低设备中的显示器的亮度。通常,电子设备响应于所测量的电子设备的当前温度而调用减热过程。减热过程可影响设备的用户体验。例如,风扇可在用户进行视频会议的时候变得大声,使得用户和视频会议中的其他人难以听清彼此。当用户正在玩处理器密集型视频游戏时,处理器的时钟速度可响应于所测量的当前温度而自动减小,从而在玩游戏期间降低设备的响应能力。当用户在一个晴朗的日子正试图寻找吃午饭的地方时,显示器的亮度可响应于所测量的设备的当前温度而自动减小,使得难以看清设备的显示器。现有技术的冷却方式响应于所测量的设备的当前温度而被调用,并且可对用户使用电子设备的体验带来负面影响。
发明内容
本文描述了实施方案,该实施方案用于通过预测用户将执行的未来任务以及在未来处理任务开始之前采取先行操作以冷却设备而使用户使用电子处理设备的体验最大化。在一个实施方案中,可缓慢而平稳地施加先行的准备操作,以使得用户感觉到不断优化的计算体验。不同于所测量的温度,可响应于预测的温度而采取用于冷却处理设备的一个或多个先行操作。在一个实施方案中,可与响应于所测量温度的闭环冷却操作一起来执行先行的冷却操作。
在一个实施方案中,未来处理任务可由用户执行的过去的处理任务的历史来确定。可预测处理任务的时间,并且可使用过去的处理任务的历史来预测干预处理任务的列表。对每个处理任务的功率要求可由处理任务的功率使用的数据库来确定,使得可估计第一时间(或当前时间)与未来处理任务的开始时间之间的功率利用率。电子设备的当前温度和干预处理任务的列表及其相关联的功率要求一起(或其他热配置数据)可被输入到前馈预测模型中,以预测处理设备将在未来处理任务的开始时间所处的未来温度。处理设备可随后在未来处理任务之前的时间段内开始对处理设备进行冷却。在一个实施方案中,可通过分析过去的处理任务的历史以确定过去的处理任务中的用户行为的模式而确定未来任务。确定用户行为的模式可包括确定用户开始特定任务的一天中的大致时间,确定用户执行该特定任务的大致持续时间,确定用户执行该特定任务的一周中的特定的一天,或这些中的任何组合。在一个实施方案中,确定未来处理任务可包括检查来自日历应用的数据或解析电子邮件应用中的电子邮件的文本,以确定视频会议的日期/时间。确定任务的功率要求可包括查找针对处理任务的功率的增量使用以及将该增量乘以所估计的处理任务的持续时间。在一个实施方案中,确定任务的功率要求可包括在处理任务的数据库中查找处理任务。使处理设备为未来处理任务做好准备可包括重新调度一个或多个干预任务至稍后时间,降低一个或多个干预任务的调度优先级,减少显示器亮度或减小处理器的时钟速度,或这些中的任何组合。
在另一个实施方案中,可通过确定针对处理任务的已知初始集诸如处理设备的初始启动流程的初始功率利用率,来生成对处理任务的功率使用要求的数据库。随后,针对所启动的每个附加的处理任务,可测量用于处理任务的功率。在一个实施方案中,由处理任务使用的功率可在处理任务运行的整个持续时间内测量并且被存储。在另一个实施方案中,能够以时间增量诸如25毫秒(25ms)来对处理任务的功率使用进行采样。可对在一个或多个增量期间使用的功率取平均值并进行存储。出厂或“种子”功率使用数据库可被预安装在电子设备上。随后,实际所测量的功率使用可被采集并存储,并且随时间推移来校正或替换种子功率使用数据库。热管理进程可使用实际所测量的功率使用或预安装的功率使用数据库或两者之间的加权因子来预测所使用的功率的量,并因此预测由特定的处理任务生成的热。
在另一个实施方案中,可通过监测新任务的开始来生成处理活动的数据库。电子设备的内核中的进程可执行监测功能。另选地,监测功能可由后台进程执行。在另一个实施方案中,内核可在其检测到新处理任务开始时发送消息或生成中断。当新处理任务开始时,热管理进程可监测该进程一段时间并确定该进程是否消耗多于阈值量的功率。如果该进程没有消耗多于阈值量的功率,则不值得将处理活动存储在数据库中。如果确定新进程生成多于阈值量的功率,则处理机器的当前状态可被存储,并且新进程的开始可被记录在进程历史数据库中。当新的处理任务结束时,在处理任务执行期间由处理任务所使用的功率的总量也可与处理任务的总执行时间一起被存储在进程历史数据库中。在一个实施方案中,由处理任务所使用的平均功率可被存储为例如25ms的增量。
在另一个实施方案中,用户行为的模式可由处理任务历史数据库确定。可将查询下发至数据库以确定用户模式,诸如确定用户在工作日的什么时间第一次接入他们的处理设备,以及确定用户执行的第一处理任务诸如查看电子邮件,以及确定第一进程被执行了多久。如果模式被识别出,则该模式可作为习得模式记录被存储在处理任务历史数据库中。在一个实施方案中,所存储的机器状态可与习得模式记录相关联。例如,用户可总是在连接至Wi-Fi时进行视频会议以节省高成本蜂窝带宽。类似地,用户可总是通过有线连接诸如以太网连接在家玩游戏。
在另一个实施方案中,用户可同步以下中的一者或多者:用户历史数据库、功率使用数据库或跨多个处理设备的机器状态。在一个实施方案中,多个处理设备均可注册至同一用户。可使用同步设备来执行同步。在一些实施方案中,如果电子设备的类型或尺寸不同,则功率使用信息中的至少一部分未被存储。例如,
Figure BDA0001488274880000041
可具有与
Figure BDA0001488274880000042
基本上不同的功率使用数据,并因此同步功率使用数据库可能没有意义。然而,习得模式,诸如每天上午9点查看电子邮件,可与用于访问电子邮件的处理设备的类型无关。
一些实施方案包括环境中的一个或多个应用编程接口(API),在该环境中,调用程序代码与被调用的其他程序代码通过该一个或多个接口进行交互。可进一步包括各种参数的各个函数调用、消息或其他类型的调用可经由调用程序和被调用代码之间的API传输。此外,API可为调用程序代码提供使用在API中限定的以及在所调用的程序代码中实现的数据类型或数据类的能力。
至少某些实施方案包括如下环境,在该环境中,调用软件部件与被调用的软件部件通过API进行交互。用于在该环境中通过API进行操作的方法包括经由API传输一个或多个函数调用、消息、其他类型的调用或参数。
根据附图以及根据具体描述,其他特征和优点将显而易见。
附图说明
本发明的实施方案以举例的方式进行说明,而不仅限于各个附图的图示,在附图中类似的附图标号指示类似的元件。
图1以框的形式示出了处理系统的可为未来处理任务准备机器状态的系统部件。
图2A以框的形式示出了为未来处理任务准备处理设备状态的方法的概览。
图2B示出了为未来处理任务准备处理设备状态的方法的流程图。
图3示出了处理设备状态的示例性属性。
图4示出了功率使用数据库的示例性记录和属性。
图5示出了处理活动数据库的示例性记录和属性。
图6示出了根据一些实施方案的确定预测的或调度的未来处理任务的方法的流程图。
图7示出了根据直到未来处理任务的预先确定的时间来确定预测的或调度的干预处理任务的方法的流程图。
图8示出了根据一些实施方案的为未来处理任务准备好处理设备的方法的流程图。
图9A示出了根据一些实施方案的生成针对处理任务的功率使用的初始“种子”数据库的方法的流程图。
图9B示出了根据一些实施方案的生成针对特定用户和设备的处理任务的功率使用的历史的方法的流程图。
图10示出了根据一些实施方案的生成用户处理任务的历史的方法的流程图。
图11示出了用于根据用户处理任务的历史确定用户行为模式的方法的流程图。
图12以框的形式示出了根据一些实施方案的用于同步针对多个处理设备的功率使用数据、机器状态数据、用户处理任务数据和用户行为模式的系统。
图13示出了用于同步针对多个处理设备的机器状态、用户处理任务历史和用户行为模式中的一者或多者的方法的流程图。
图14示出了可在本发明的一些实施方案中使用的软件栈的示例性实施方案。
图15为处理系统的一个实施方案的框图。
具体实施方式
在以下对实施方案的具体描述中将引用附图,在附图中,相似的标号指示相似的元件并且在附图中以举例方式示出了可实施的具体实施方案。足够详细地描述了这些实施方案以使得本领域的技术人员能够实践本发明,但应当理解,可使用其他实施方案,并且可在不脱离本公开的范围的情况下作出逻辑改变、机械改变、电气改变、功能改变和其它改变。因此,下面的详细描述不应该被理解为具有限制性,并且本发明的范围仅由所附的权利要求书所限定。
描述了如下实施方案,该实施方案用于实现在电子处理设备上为未来处理任务准备未来操作状态的系统和方法,该系统和方法将处理设备的当前操作状态以及调度的或预测的处理任务在第一预先确定的时间(诸如当前时间)和未来处理任务开始的时间之间在处理设备上运行的功率使用要求一起考虑在内。处理设备可采取先行步骤以在第一预先确定的时间开始的时间到未来处理任务的开始时间之间的持续时间内减少热。
图1以框的形式示出处理设备100的系统部件,该系统部件可执行使处理设备为未来处理任务的未来操作系统做好准备的过程。
处理设备可包括硬件110、操作系统内核120、用户进程130和后台进程140。内核120可经由一个或多个通信信道1与硬件110通信。内核120可通过一个或多个通信信道2与用户进程130通信,以及通过一个或多个通信信道3与后台进程140通信。一个或多个通信信道3可实现热状态管理器150的部件与内核120中的热和功率测量和控制121子系统的部件之间的通信5和6。进程管理(或“调度器”)122可经由通信信道4与内核进程123通信。可经由通信信道1和3在存储装置118和任务识别和功率要求模块152之间实现一个或多个通信信道7。通信信道可使用进程间通信方法诸如消息传送、套接字和共享存储器以及经由硬件信道诸如I/O总线或耦接至I/O总线的I/O接口硬件来实现。
硬件110可包括电源111、处理器112、音频部件113、通信部件114、冷却部件115、显示器116、一个或多个输入设备117和存储装置118。电源111可包括一个或多个电池、电容阵列、充电/壁式电源子系统或太阳能电池板。处理器112可包括中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、数学协处理器、可编程门阵列或微控制器。音频113部件可包括一个或多个编码器/解码器(编解码器)、音频放大器、一个或多个模数转换器(ADC)和一个或多个数模转换器(DAC)以及数字信号处理器。通信部件114可包括以太网收发器、Wi-Fi收发器和蜂窝收发器、一个或多个天线以及卫星收发器(GPS)。冷却设备可包括一个或多个风扇、翅片式换热器、液气换热器或热电冷却器(“珀尔帖”)冷却器。显示器116可包括阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)等离子体显示器、触摸屏或点阵图形显示器。输入设备117可包括键盘、鼠标、轨迹球、触摸界面等。存储装置118可包括硬盘、闪存存储器、静态存储器、动态存储器、CD/DVD ROM或只读存储器芯片。如下文所详述,存储装置可包括功率使用数据库118A和处理任务历史118B(或“活动”)数据库。除了无源翅片式换热器之外,这些硬件110部件中的每一者可消耗功率并生成热,以及生成用户可在冷却过程中听到的噪声。
内核120可包括热和功率测量和设备控制模块121、进程管理器122(或“调度器”)以及一个或多个内核进程123。热和功率测量和设备控制模块121(“控制模块”)可测量硬件部件110中的一个或多个硬件部件的当前温度并且还可测量处理器设备100内部的空气在一个或多个点处的内部温度。控制模块121还可控制硬件110的各个部件的操作。控制模块121和硬件110之间的通信1可经由输入/输出(I/O)总线。进程管理器122可包括调度逻辑部件,该调度逻辑部件控制用户进程130、后台进程140和内核进程123的优先级和执行。
用户进程130可包括应用诸如日历应用131、视频播放应用诸如
Figure BDA0001488274880000071
Figure BDA0001488274880000072
132、电子邮件应用133、视频会议应用134、一个或多个视频游戏135或文字处理应用136诸如
Figure BDA0001488274880000073
Pages或
Figure BDA0001488274880000074
Word以及其他应用。每个应用可作为用户进程130中的进程来运行。每个应用还可具有一个或多个执行线程,诸如接收电子邮件、发送电子邮件、对文档进行拼写检查、暂停电影、开始视频会议或调度日历事件。用户进程130的每个执行线程可使用一个或多个硬件110部件,该一个或多个硬件部件中的每个硬件部件可消耗功率并生成热。
后台进程140可包括数据库索引141诸如对Apple
Figure BDA0001488274880000075
数据库的后台索引、云服务诸如调度的或自动的备份或同步142、热状态管理器150、打印(未示出)以及其他后台进程。热状态管理器150可或者实现为用户进程130或内核进程123。
热状态管理器150可包括热状态测量模块151、处理任务识别和功率要求模块152、前馈热预测模块210和未来机器状态准备逻辑部件153。热状态测量模块151可经由通信信道6与内核120中的热和功率测量和设备控制模块121通信。热状态测量模块151可从一个或多个硬件部件110接收一个或多个温度读数并处理所接收的温度读数以确定处理设备100的总体热机器状态。另选地,热状态测量151可保持一个或多个温度读数的序列集的缓冲器(未示出)以用于精细的温度控制算法。例如,根据一个或多个游戏进程135线程的优先级、数据在显示器116上的显示以及图形处理器112和音频部件113的温度读数,可明确用户正在玩图形密集型视频游戏。如果用户在一小时后有即将来临的视频会议134,则未来机器状态准备逻辑部件153可缓慢地启动冷却部件115,开始减小处理器112的时钟速率,减少音频113中的低音元素或降低显示器分辨率或亮度以为即将来临的视频会议134的功率和热要求做好准备。下文讨论了热状态管理器150的附加细节。
图2A以框的形式示出了为未来处理任务准备好处理设备100状态的方法200的流程的概览。图2B示出了使处理设备100为用于开始未来处理任务的初始未来状态做好准备的方法200的更详细的流程图。
在操作205中,处理设备100的当前机器状态被确定。如图3所示,在下文中,当前机器状态可如处理设备100的单个温度测量305、参数2那样简单。此外,处理设备的简单操作状态可包括在指定的时间增量Δt期间的功率消耗度量305、参数1,诸如100ms内0.05W。下文参考图3讨论了处理设备100的机器状态300的另外的细节。
当前机器状态205温度TC是前馈热预测模型210的输入。前馈预测模型210的附加输入是未来处理任务600的开始时间,其具有在第一预先确定的时间(例如当前时间)和启动未来处理任务的时间之间的针对未来任务的初始处理设备温度Ti、和预测干预处理任务700的列表及其相关联的功率使用。在下文中参考图7进一步详细地描述了操作700。前馈模型210的输出是当未来处理任务即将开始时的处理设备100的预测热状态215TP。该预测的未来热状态TP与未来处理任务即将开始时的处理设备100的初始未来状态220Ti进行比较,以确定是否需要在未来任务开始之前从处理设备100去除热。前馈预测模型210可使用模拟阻容(RC)网络来实现。RC网络可使用微分方程、
Figure BDA0001488274880000091
运行时模块或其他计算模块来模拟。
在操作600中,未来处理任务可被识别并选择。开始未来处理任务的时间可被确定。处理设备100的未来初始状态Ti还可被确定用于何时开始未来处理任务。例如,未来处理任务可为一小时长的视频会议134。用户可通过Wi-Fi连接以由Wi-Fi连接所支持的最高视频和音频分辨率并且以相当高的音频音量来举行视频会议134。这些因素中的每个因素可导致在视频会议134期间消耗功率,并因此导致在视频会议134期间生成热。下文参考图6进一步详细地描述了操作600。
在操作207中,根据操作700确定的当前机器状态TC和预测处理任务的列表及相关联的功率要求可输入至前馈预测模型210中。
在操作215中,基于在操作700中确定的用于介于预先确定的时间(例如当前时间)和未来任务的开始时间之间的干预处理任务的所输入的当前机器状态TC和处理任务的列表及相关联的功率消耗值,可从前馈预测模型210输出未来预测热状态TP
在操作220中,可根据估计由用户选择的未来预测任务例如视频会议134呼叫(Wi-Fi连接、最高的视频和音频分辨率以及高音量视频)要消耗的功率和所生成的热来确定当未来任务可被预测为开始时的处理设备100的未来初始状态Ti。Ti可被选择为使得无需降低视频电话会议134期间的用户体验来减少热。例如,处理设备100的优选的初始未来状态Ti可被选择为使得冷却风扇115在一小时长的视频电话会议134中间不全速运转。
在操作225中,温度差值ΔT可根据从前馈模型210获得的未来预测热状态TP以及在未来处理任务即将开始之前处理设备100的未来初始状态Ti而确定。
如果在操作225中确定的温度差值ΔT指示要求去除热以达到未来初始状态Ti,则在操作800中,处理设备100可为未来处理任务做好准备,如参考图8更充分地描述。
图3示出了处理设备100的机器状态300的示例性属性。处理设备100的机器状态,或只是“状态”,是处理设备100在某个时间点处的状态的快照。机器状态记录可具有时间戳(未示出)。最低限度,该快照可包括表示处理设备100的当前温度的单个温度值。单个温度值可针对方法200被用作当前机器状态TC,如上参考图2所述。
机器状态300还可包括处理设备100的各个部件诸如CPU 310、GPU310等的参数。每个部件可具有表示处理设备100的当前状态300的一个或多个参数。
机器状态300可包括存储针对CPU 310和GPU 315中的每一者的当前时钟速率和/或所测量的温度。当前时钟速率可用于估计由CPU 310和/或GPU 315在时间增量内所消耗的功率的量。功率消耗值可乘以持续时间以获得由CPU 310和/或GPU 315在持续时间内所消耗的功率的量。
机器状态300还可包括存储每单位时间Δt内以瓦特为单位测量的功率消耗速率,和/或针对一个或多个部件诸如音频系统320、网络330、手机信号335、显示器340或存储装置345的所测量的温度。可归属于特定部件的功率消耗值可乘以处理任务的持续时间以确定在针对特定部件的持续时间内的功率使用。机器状态300还可包括针对一些部件诸如网络330、手机信号335或Wi-Fi信号325的信号质量参数,如针对Wi-Fi 325、网络330和手机信号335的参数3(304)所示。
包括针对部件的信号质量参数的机器状态300可与用户进程130关联,该用户进程使用该部件以预测与用户进程130有关的未来用户行为。例如,用户通常可使用较强的Wi-Fi信号诸如在家里进行视频电话会议134,尽管手机信号强度可为较弱的并且处理设备100可根本未连接至网络(因而网络不具有信号质量)。根据该状态信息,可预测用户将在家使用Wi-Fi举行调度的视频电话会议134,并且不需要任何手机信号或网络连接。因此,蜂窝子系统和网络子系统而非Wi-Fi可在视频电话会议134期间被关闭以节能和减热。类似地,用户通常可仅当连接至网络时玩高性能的视频游戏135,并因此Wi-Fi子系统可被关闭以节能和减热。
机器状态300还可包括二元状态信息,诸如电池350是否在充电,用户是否在家375,处理设备100当前是否在运动375中或处理设备100是处于待机模式还是处于运行状态。二元状态信息可与预测未来用户行为和功率消耗的用户进程130关联。例如,当机器状态300指示用户不在家370、在运动375中、在步行并且电池350不在充电时,用户通常可在上午11:30发出对餐厅的查询。可预测当用户正步行去吃午餐时选择了餐厅,因此设备不在充电。因此,在查询期间,可预测将不会由于电池充电器消耗功率而生成热。还可预测用户不需要网络连接(例如以太网电缆和端口),因此以太网子系统可被关闭以减热。然而,还可预测用户可使用Wi-Fi或蜂窝通信来完成搜索查询。因此,当预测针对查询的处理任务的功率使用时,由Wi-Fi和蜂窝子系统消耗的功率必须考虑在内。
机器状态300还可包括针对一个或多个部件的水平的参数,诸如电池电量355、光检测360、声检测360或供电电压电平385。包括此类水平的机器状态300可与部件的功率使用诸如显示器亮度340、音频音量320或电池充电350关联,以预测未来功率使用。例如,如果光检测360检测到高水平的环境光线,诸如日光,并且用户进程130指示用户在运动375中时在午餐时间查询餐厅,则可预测显示器功率消耗将增加以允许用户在较亮的环境光线中看清显示器。类似地,如果声检测(麦克风)365检测到较高的环境噪声诸如街道施工噪声或人群噪声,当用户进程130指示用户正在收听音频320,则可预测音频功率消耗将增加以允许用户在较高的环境噪声中听到音频。在另一个示例中,如果机器状态300检测到用户在家370,并且电池充电电量355低于阈值百分比,则可预测用户将在家对电池350进行充电。如果充电速率350、参数3低于插入式壁式充电器的充电速率,并且运动检测375指示用户正在开车,则可预测用户正使用低安培便携式充电器诸如在车里充电。因此,可预测由于在汽车里对电池进行充电而导致的功率使用和热。
机器状态300还可包括从应用诸如天气应用获得的或从查看天气网页的互联网浏览器获得的信息。天气390的当前状态诸如雨、风和温度预测可被包括在机器状态记录300中。
图4示出了功率使用数据库的示例性记录400和属性。功率使用数据库包含表示一个或多个硬件部件和一个或多个处理任务所测量或所估计的功率使用的记录。功率使用记录400可用于预测由一个或多个硬件部件100或处理任务所使用的功率的量,从而预测由一个或多个硬件部件110和/或处理任务生成的热的量。
处理设备100可包括功率使用记录400的初始(“种子”)数据库,在用户第一次对处理设备100上电之前,该数据库在该处理设备100上为可用的。随着用户使用处理设备,生成了表示用户对处理设备100的实际使用的更多的功率使用数据库记录400。热状态管理器150中的任务识别和功率要求逻辑部件152可基于用户的实际使用与包括在处理设备100中的功率使用记录400而将加权因子施加至功率使用记录400。在一个实施方案中,用户使用处理设备100的时间越长,加权因子越偏向于由用户对处理设备100的使用而生成的功率使用记录400。在一个实施方案中,功率使用记录400的初始数据库可例如在操作系统进程或其他更新进程期间被更新。在下文图9A和9B中更全面地描述了两种类型功率使用记录400的生成。
功率使用数据库400可用于预测多种处理任务的功率使用和特定硬件子系统的功率使用。每个功率使用记录410到475例如可具有标识符401、进程或设备描述402、功率消耗时间增量Δt(403)、在时间增量404期间所消耗的功率的量以及一个或多个参数405和参数值406。一个或多个功率使用记录可用于预测在执行一个或多个用户进程130、后台进程140和/或内核进程123或处理设备100中的一个或多个硬件部件110的时间段内所消耗的功率的量。标识符401可为数据库记录的任何唯一标识符。在一个实施方案中,功率使用记录标识符401可使用编码方案,诸如高位为0是指功率使用记录涉及硬件部件,并且高位为1是指功率使用记录涉及用户进程诸如用户进程130。在一个实施方案中,功率使用记录可具有指示功率使用记录类型(未示出)的字段,该功率使用记录类型诸如硬件、内核进程、后台进程、用户进程或用户进程的线程。功率使用记录的时间增量Δt可以是功率使用记录的任何重要的时间增量。例如,由冷却风扇使用的功率可不会变化地非常快,因此时间增量例如100ms可适合用于测量由冷却风扇消耗的功率,但是不适用于可快速改变时钟速度的处理器。在一个实施方案中,对于功率使用记录400,时间增量可相对于在时间增量期间所消耗的功率的量而确定,使得功率测量的分辨率在时间增量期间具有足够的粒度以表示正被测量的功率使用。例如,功率测量可能够以1毫瓦特分辨率来进行,因此主处理器的时间增量可被选择为足够长,例如25ms,以获得0.01瓦特的功率测量,以使用1毫瓦特分辨率。
当CPU以2.2GHz的时钟速率操作时,主处理器410或CPU可在25ms的时间增量期间消耗0.02瓦特。冷却风扇415能够以可变占空比运行。例如,当以全速的5%运行时,冷却风扇415可在100ms内消耗0.08瓦特。当以2.0GHz操作25ms时,图形处理器420或GPU可消耗0.01W。功率转换器模块425诸如电池充电器可在100ms的操作期间消耗0.05瓦特。音频编解码器430可在100ms内消耗0.01瓦特。当在指定的输出水平(参数405)诸如20%处操作时,音频放大器可在100ms内消耗0.05瓦特。当以全速旋转操作时,硬盘440可在100ms内消耗0.06瓦特。
具体的进程也可具有功率使用记录400。诸如针对图1的内核进程123的内核进程445功率使用记录可指示内核进程在25ms内消耗0.001瓦特。内核进程可具有较高的或最高的处理器调度优先级,诸如0xFF。诸如针对进程管理器122的调度器进程450功率使用记录可指示调度进程在25ms内消耗0.001瓦特。调度器进程可具有较高的处理器调度优先级,诸如0xFE。系统空闲进程455功率使用记录可指示系统空闲进程在100ms内消耗0.002瓦特的功率。系统空闲进程通常具有较低的或最低的处理器调度优先级,诸如0x01。
用户进程130诸如电子邮件应用133、视频会议应用134或视频游戏应用135可分别具有功率使用记录460,465,470或475。每个功率使用记录可具有针对功率使用403、功率使用量404以及处理优先级参数405和针对用户进程的处理优先级参数值406的时间增量。每个应用进程130可具有针对特定线程的功率使用数据库记录,例如电子邮件应用135可具有包括功率使用记录465的发送邮件线程。音频应用的应用进程可具有用于听音乐的使用音频放大器的线程和用于将一首或多首歌曲烧录到CD-ROM的使用CD-ROM存储设备但不使用音频放大器的另一线程。在一个实施方案中,针对线程例如电子邮件应用发送邮件线程465的功率使用记录可表示在时间增量Δt期间执行线程时所使用的一个或多个硬件部件的功率使用。在一个实施方案中,针对进程例如电子邮件应用460的功率使用记录可表示在时间增量Δt期间用于进程的一个或多个线程的平均功率,并且还可包括在进程的一个或多个线程的执行中所使用的一个或多个硬件部件110的平均功率使用。在另一个实施方案中,当视频会议应用134以处理优先级0x50运行时,视频会议应用134可具有功率使用记录470,该功率使用记录表示在25ms的时间增量期间由应用(0.002瓦特)所使用的功率。当以处理优先级0x60运行时,视频游戏135例如Mortal
Figure BDA0001488274880000131
可在25ms内消耗0.003瓦特。应用或应用的线程可具有多于一个功率使用记录,其中记录参数中的一个或多个记录参数不同。例如,如果用户通常在视频会议134之前玩视频游戏135,为视频会议134准备处理设备100的未来状态的方法可包括将视频游戏135的处理优先级从0x50降低至0x40,以在视频会议134之前减少功率消耗和热生成。因此,可针对处理优先级为0x50的视频游戏存储功率使用记录,并针对处理优先级为0x40的视频游戏存储另一功率使用记录。
图5示出了处理活动数据库的示例性记录500和属性。在下文中参考图10描述了生成处理活动数据库的方法。在下文中参考图11描述了根据处理活动数据库确定用户行为模式的方法。
处理活动记录500包含用户与处理设备100交互活动的历史。处理活动可包括事件(例如鼠标点击、屏幕轻击、按钮按压等)、得自用户输入的命令(例如文件|打开或键序诸如命令-Shit-Q)以及响应于用户输入(总共地,和单个地,“处理活动”)而启动的进程和线程。处理活动数据库记录例如500可包含针对特定处理活动的开始的时间戳501、活动的持续时间502、活动的命令或事件名称503、响应于命令或事件503而启动的应用504、和/或由于命令或事件503而启动的线程505。处理活动记录500还可包括在活动的持续时间502内所消耗的功率506的量。与处理活动相关联的功率506的量可由内核120中的热和功率测量和设备控制模块121来测量。在一个实施方案中,与处理活动相关联的功率的量可根据活动的持续时间乘以存储在功率使用记录400中的功率使用速率来计算。在一个实施方案中,针对活动的所测量和所计算的功率使用值可被存储在(未示出)处理活动记录500中。处理活动记录500还可包括对机器状态记录300的引用507。在上文中参考图3对机器状态记录进行了描述。处理活动记录例如530或535可与由机器状态记录引用507所标引的机器状态记录300关联,以确定在与处理设备100交互中的用户行为的模式。在一个实施方案中,机器状态记录300相对于处理活动记录500生成并存储。在一个实施方案中,处理活动记录500可引用现有的所存储的机器状态记录300。
在示例中,处理活动记录530可表示响应于点击事件503而启动
Figure BDA0001488274880000141
的处理活动。在该示例中,
Figure BDA0001488274880000142
应用504与线程505一起启动。由字段507所标引的机器状态记录300、或处理活动记录530可包含对存储设备118的功率使用的指示,以检索
Figure BDA0001488274880000151
应用的可执行图像以用于执行。由处理活动记录530的字段507标引的机器状态记录300还可指示用户将显示器340分辨率(参数3)设置为最高的最大分辨率,以及将音频系统320设置为最高音频质量(参数3),这与降低的音频或视频质量相比可消耗更多功率。机器状态记录300还可指示用户使用网络连接330而不使用Wi-Fi 325或蜂窝信号335来连接至
Figure BDA0001488274880000152
示例性处理活动记录510到570表示响应于命令或事件503而检测到的处理活动。处理活动记录500还可通过在一段时间内学习处理活动中的模式来生成。
针对处理活动的习得模式的处理活动记录500可被存储为具有与响应于事件或命令或进程或线程而存储的处理活动记录500相同或较少的属性。如下文参考图11更全面地描述,处理活动模式可通过分析处理活动记录500来习得。表示处理活动575的习得模式的处理活动记录可为该用户在每个工作日上午9:00举行一小时长的视频会议,其中在机器状态记录0x00014785中指示机器状态特征。在另一个示例中,对处理活动580的习得行为的处理活动记录是在周五晚上8:00,该用户使用约12瓦特功率玩一小时视频游戏。类似地,习得活动585的示例性处理活动记录可为在工作日的上午6:00,该用户使用0.10瓦特功率在电子邮件上花费5分钟。
图6示出了方法600的流程图,该方法确定预测的或调度的未来处理任务、处理任务的开始时间和用于开始处理任务的初始状态。
在操作605中,调度的未来任务可通过搜索调度的日历活动的数据库来确定。日历应用例如如图1所示的用户进程131可包括一次调度的任务和定期调度的任务的列表。例如,日历应用131数据可指示用户在每周一早晨9:00有定期视频会议134。
在操作610中,方法600可任选地搜索电子邮件应用133中的电子邮件数据,如图1中所示,以寻找关于未来处理任务的调度的信息,例如,在用户的主管发送给该主管的所有团队成员的电子邮件中的本周一早晨9:00的视频电话会议134。操作610还可包括搜索联系人应用中的联系人数据文件以寻找未来调度处理任务的注释。例如,联系人记录可指示用户已计划在本周五晚上9:00与该联系人在该用户家在
Figure BDA0001488274880000153
上观看视频。
在操作615中,方法600可查询处理活动数据库500以确定定期发生的任何处理任务。例如,如果当前日子为周一,则查询可选择一个或多个过去周一上午8:00和上午10:00之间开始的处理活动历史记录500。在另一个示例中,查询可包括与所选处理活动相关的机器状态,诸如当针对处理活动的机器状态指示用户不在家时所执行的周末上午10:00和11:00之间的处理活动。
在操作620中,在确定未来预测任务之前,可将功率使用低于预先确定阈值的处理任务从查询结果中过滤掉。
如果从查询返回多个未来事件,则在操作625中,方法600可从多个未来处理任务中任选地选择,以识别为之准备好机器状态的预测的未来任务。在一个实施方案中,操作625可从查询结果中的多个未来处理任务中选择具有最高功率消耗的未来预测任务。在一个实施方案中,操作625可从查询结果中的多个未来处理任务中选择持续时间最长的未来处理任务。在一个实施方案中,操作625可从查询结果中的多个未来处理任务中选择具有最高优先级的未来处理任务。在另一个实施方案中,操作625可选择具有指示重复的用户行为的模式的最多处理活动记录500的未来处理任务,从而用户更有可能执行该预测的未来任务。在另一个实施方案中,操作625可从多个未来预测处理任务中选择具有与当前机器状态最相似的机器状态的未来预测处理任务。例如,当前机器状态可指示用户在家(机器状态属性370)并对处理设备100进行充电(机器状态属性350、参数3、高充电速率),并且处理设备100耦接至网络(机器状态属性330)。当用户在家连接至网络并对处理设备100进行充电时,该机器状态可与视频会议134的未来处理任务紧密相关,该未来处理任务先前已由用户在约查询时间窗口内执行。
在操作630中,确定是否具有至少一个未来处理任务以从中选择即将为之准备未来机器状态的未来预测处理任务。如果具有至少一个未来处理任务,则在操作635中,一个或多个处理任务被选择用于准备未来机器状态以执行一个或多个未来预测处理任务。否则,方法600结束。
如果在操作600中选择了即将为之准备未来机器状态的处理设备100的至少一个未来处理任务(“所选的未来处理任务”),则由处理任务在第一时间例如当前时间和所选的未来处理任务(“干预处理任务”)的开始时间之间所消耗的能量的量和所生成的热的量可影响所选的未来处理任务的开始时间处的未来机器状态。因此,为了为所选的未来处理任务准备好机器状态,可需要确定干预任务的功率消耗和所生成的热。
图7示出了方法700的流程图,该方法确定从第一时间例如当前时间到未来预测或调度的处理任务(“未来处理任务”)的开始时间之间的预测的或调度的处理任务(“干预处理任务”)。在一个实施方案中,第一时间可为在未来处理任务的开始时间之前的预先确定的时间量。需要缓解由干预任务消耗功率所生成的热,以为未来处理任务准备好处理设备100机器状态。例如,如果用户在视频会议(未来处理任务)之前玩视频游戏(干预处理任务),并且视频游戏在一小时内需要较高的CPU和GPU性能和较高的音频音量,则处理设备100可需要在视频会议开始之前耗散积聚的大量热。通过构建干预处理任务的列表以及确定与每个处理任务相关联的功率要求和热生成,处理设备100可提前采取行动以在所选的未来处理任务开始之前缓解积聚的热。
在操作705中,可搜索一个或多个日历应用数据文件、电子邮件应用数据文件或联系人应用数据文件以寻找可能已分别使用一个或多个日历应用、电子邮件应用或联系人应用进行调度的处理任务。例如,用户的工作电子邮件可包含针对周一上午9:00开始并计划持续一小时的预定视频会议的日历条目。用户的个人日历可包含针对周五晚上8:00的预定任务,该预定任务为使用高分辨率图形、互联网连接和音响系统来玩多用户视频游戏。联系人条目可包含文本注释,即,用户有与朋友在周六晚上8:00使用该用户的处理设备100上的应用诸如
Figure BDA0001488274880000171
Figure BDA0001488274880000172
看电影的预约。预定的处理任务可被添加至介于第一时间和针对所选未来处理任务的未来开始时间之间的干预处理任务的列表中。在一个实施方案中,第一时间可为当前时间。在一个实施方案中,第一时间可为在所选未来处理任务的开始时间之前的预先确定的时间量。在另一个实施方案中,第一时间可为在所选未来处理任务的开始时间之前的指定时间。
在操作710中,处理设备100可查询针对过去已在时间窗口期间被执行的处理任务的用户处理活动(例如用户进程130)的历史。在一个实施方案中,查询可局限于指定的时间范围,该时间范围包含第一时间和所选未来处理任务的开始时间。在一个实施方案中,第一时间可为当前时间。另选地,第一时间可为在所选未来处理任务的开始时间之前的预先确定的时间量。在一个实施方案中,可从查询结果中选择处理任务,以当该处理任务已两次出现在包含第一时间和所选未来处理任务的开始时间的时间范围内时将该处理任务包括在干预处理任务的列表中。可选择任务,以当该处理任务在包含第一时间和所选未来任务的开始时间的时间范围内已两次出现在一周的同一天时将该任务包括在干预处理任务的列表中。在一个实施方案中,查询可包括习得模式记录,诸如上文所述的图5中的记录575到590。在一个实施方案中,查询可包含当前日子之前的一天或多天的指定的时间范围。在一个实施方案中,一天或多天可局限于一周中指定的一天或多天。在一个实施方案中,一天或多天可局限于工作日或局限于周末。在一个实施方案中,一天过多天可包括或可不包括节假日。
在操作715中,处理设备100可查询针对过去已在指定时间窗口处被执行的处理任务的系统处理活动的历史(例如后台进程140历史或内核进程123)。时间和/或日期限制可应用于如操作705和710中的查询。
在操作720中,处理设备100可查询当前调度的处理任务,例如进程调度队列诸如调度器122中的进程。时间和/或日期限制可应用于如操作710中的查询。
在操作725中,在操作705,710,715和720中识别出的干预处理任务的列表可在包含第一时间和未来处理任务的开始时间的时间范围内生成。
在操作730中,干预任务的列表可任选地包括所选未来处理任务。
在操作735中,针对干预处理任务的列表中的每个处理任务,可确定用于执行处理任务的功率要求。可通过合计由执行处理任务使用的一个或多个资源(例如CPU、GPU、存储器、存储装置、网络、Wi-Fi、音频等)所消耗的功率来确定处理任务的功率使用。硬件部件110的功率使用数据在上文参考图4相对于功率使用记录400所描述。在一个实施方案中,处理任务的功率使用可根据由该处理任务所使用的功率的增量来确定,例如如在图4的电子邮件应用功率使用记录460中所示,并且增量可乘以处理任务的持续时间。在另一个实施方案中,处理任务的功率使用可根据处理活动记录500来确定,如上文参考图5所述。
在操作740中,干预任务的列表可任选地被过滤以排除功率使用量小于预先确定的功率使用的处理任务。排除具有最低功率使用的处理任务可简化如下处理:该处理需要确定在所选未来处理任务的开始时间之前所生成的热的量和要从处理设备100耗散的热的量。
干预处理任务的列表和相关联的功率消耗值与处理设备100的当前机器状态TC一起可被输入至前馈热预测模型210中。前馈预测模型210可输出在所选未来处理任务开始的时间处的预测的热状态TP。所选的未来任务具有相关联的初始热状态Ti,该热状态是用于开始所选未来处理任务的优选状态。例如,如果所选未来处理任务是一小时长的视频会议,则在视频会议开始处的处理设备100的优选的初始状态Ti可为热状态,使得冷却风扇在视频会议期间不全速运转。如果TP大于Ti,则可需要执行准备操作以在例如视频会议开始的时间之前达到热状态Ti。准备操作可包括减少热生成以及缓解生成的热。
图8示出了根据一些实施方案的使处理设备100为所选未来处理任务做好准备的方法800的流程图。方法800可在后台进程140诸如热状态管理器150中实现。在一个实施方案中,热状态管理器150可实现为内核进程123或在热和功率测量和设备控制121中被实现。在另一个实施方案中,热状态管理器150可实现为用户进程130。
在操作805中,确定在开始所选未来处理任务的时间处的预测的热状态TP是否小于开始未来处理任务的初始热状态Ti。Tp基于干预任务的列表和相关联的功率消耗,如在上文图7的方法700中所述。如果TP小于Ti,则在开始所选未来处理任务之前无需准备操作,并且方法800结束。
如果在操作805中确定在开始所选未来处理任务的时间处的预测的热状态TP大于开始所选未来处理任务的初始热状态Ti,则在操作810中确定在开始未来处理任务之前仅仅冷却是否会将TP降低至Ti以下。这可通过以下操作来完成:确定需要从处理设备100去除以达到未来初始热状态Ti的热的量以及确定冷却设备115(风扇、散热片、热电冷却器、液体冷却等)的冷却速率是否足以在所选未来处理任务开始之前的可用的时间量内去除所确定的热量。
如果仅仅冷却就能在开始所选未来任务之前达到热状态Ti,则在操作815中,热和功率测量和设备控制模块121可设置冷却硬件115以在所选未来处理任务开始之前去除所确定的热量,并且方法800结束。在一个实施方案中,冷却硬件115在未来处理任务开始之前被设置处于恒定的冷却速率。在另一个实施方案中,冷却配置用于为冷却硬件115设置冷却速率。冷却配置可包括使冷却速率斜线上升至预先确定的阈值速率,之后使冷却速率斜线下降至在未来处理任务的开始时间处使用的冷却速率。冷却配置还可包括斜线上升至预先确定的冷却速率,之后是一段时间的恒定的冷却速率,之后斜线下降至在未来处理任务的开始时间处使用的冷却速率。
如果在操作810中确定仅是冷却硬件115不会在所选未来处理任务开始之前达到热状态Ti,则可采用一个或多个热缓解技术。在操作820中,热缓解技术可包括重新调度一个或多个后台任务140,直到所选未来处理任务已完成。重新调度可通过如下操作来完成:热状态管理器150请求调度器减少由后台处理任务140生成的热,并且调度器122确定要重新调度的一个或多个后台处理任务。在一个实施方案中,热状态管理器150可以是内核进程123,并且可与内核120和调度器122通信以确定应当被重新调度的一个或多个进程以缓解热生成。此外,在一个实施方案中,热状态管理器150可指示热和功率测量和设备控制模块121为冷却硬件115设置水平,该冷却硬件将连同重新调度后台处理任务140一起缓解热。
在操作825中,可确定在操作815和820中重新调度后台任务以及任选地为冷却硬件115设置冷却速率是否会将预测的未来状态TP降低至开始未来处理任务的未来初始状态Ti以下。如果是,则方法800结束;否则,方法800在操作830处继续。
在操作830中,可采用一个或多个热缓解技术来将TP降低至Ti以下。在一个实施方案中,除了重新调度一个或多个后台任务140以及使用冷却设备115减少热之外,处理设备100可采用以下热缓解技术中的一者或多者:减小一个或多个处理任务的处理器时钟速度,减小处理设备100的供电电压,降低视频流分辨率,降低显示器亮度,减小通信数据速率,降低音频音量,减少音频子系统中的低音频响应,或这些中的任何组合。在一个实施方案中,一个或多个热缓解技术以平滑且连续的方式施加,使得用户在热缓解操作中感知大体一致的操作和一致的性能水平。在一个实施方案中,一个或多个热缓解技术可由用户配置。例如,用户可能够配置应用或线程的顺序,针对这些应用或线程,调度器122可降低优先级、重新调度或减小处理器时钟速率处理器。例如,用户可能够将视频会议应用配置为响应于检测到网络带宽质量已降低而使用降低的视频分辨率。
图9A示出了方法900的流程图,该方法生成针对处理任务的功率使用400记录的初始“种子”数据库。处理设备100可包括针对处理任务的功率使用记录400的初始数据库,并且还包括当用户使用处理设备100时生成的附加功率使用信息的数据库400。在一个实施方案中,由于附加的功率使用信息由处理设备100的使用生成,因此由用户对处理设备100的使用而生成的功率使用信息可由加权因子给予更多权重。
在操作905中,处理设备100可测量并存储初始功率使用水平W0,该初始功率使用水平表示时间增量Δt期间的处理任务的基线集。功率使用可由热和功率测量和设备控制模块121测量。处理任务的基线集可仅包括对于使处理设备100可操作而言必需的那些内核进程123。速率W0/Δt表示针对处理任务的基线集的功率消耗速率,并且还可包括对于运行处理任务的基线集而言必需的硬件部件110。
在操作910中,计数器i被初始化为1。
在操作915中,下一个进程Pi被启动。
在操作920中,在时间增量增量Δt内高于W0的增量功率使用Wi被测量。进程标识符PIDi和任选地进程描述可被生成并且与Wi和Δt存储在功率使用数据库记录400中。
在操作925中,确定是否具有更多待启动的进程。如果没有,则方法900结束。否则,方法900在操作930处继续。
在操作930中,计数器i递增,并且方法在操作915处继续。
图9B示出了方法901的流程图,该方法生成在处理设备100的使用期间针对处理任务的功率使用记录400的历史。相比之下,图9A描述了在特定的用户接收并使用处理设备100之前建立功率使用记录400的初始“种子”数据库。
如上文参考图9A所述,操作905测量并存储在时间增量Δt期间针对处理任务的基线集的功率使用W0。进程的基线集可为在处理设备100上电期间启动的初始进程。需注意,图9A中的处理任务的基线集可不同于这里图9B中的处理任务的基线集。例如,针对处理任务的基线集的出厂或初始“种子”功率使用可已用于比正在处理设备100上使用的当前版本的操作系统更早的版本的操作系统。因此,随时间推移,确定处理设备100上的处理任务的功率使用可涉及对根据图9B的实际的习得功率值Wi进行的加权重于在图9A中习得的出厂生成的功率使用值。
在操作907中,确定针对W0的处理任务的基线集是否不同于在方法900中的图9A中习得的基线进程的出厂集。如果两者不同,则在操作908中,在图9B的操作905中所测量的处理任务的基线集的功率使用的重要性权重增加超过图9A的操作905中的功率使用记录的初始“种子”数据库中的处理任务的基线集的W0。方法901在操作910处继续。
在操作910中,计数器i被初始化为1。在一个实施方案中,使用不同的初始化值。
在操作915中,下一个进程Pi可被启动。
在操作920中,在时间增量Δt内高于W0的增量功率使用Wi可被测量。功率使用可由热和功率测量和设备控制模块121测量。进程标识符PIDi和任选地进程描述可被生成并且与Wi和Δt存储在功率使用数据库记录400中。
在操作922中,针对具有相同PIDi的处理任务,可确定Wi是否不同于在图9A的方法900中生成的初始“种子”数据库中的出厂Wi。如果Wi不同于出厂Wi,则在操作923中,针对该PIDi的Wi的权重可增加,使得与图9A的功率使用记录400的初始“种子”数据库相比更偏向于由使用处理设备100而习得的该Wi
在操作925中,可确定是否具有更多待启动的进程。如果没有,则方法901结束。如果具有更多待启动的进程,则在操作930中,计数器i递增并且方法901在操作915处继续。
图10示出了方法1000的流程图,该方法基于用户与处理设备100的交互而生成用户处理任务的历史。类似上文图9A和9B中所述的功率使用数据库400,用户处理任务500的历史可包括用户活动的初始“种子”数据库和习得的用户活动集。由于用户处理历史通过使用处理设备100生成,因此与处理任务的初始“种子”数据库相比,权重因子可偏向于习得的处理任务。由于用户处理历史数据库试图学习处理设备100的特定用户的模式,因此初始“种子”数据库可相当稀疏,并且偏向于习得用户活动的权重因子可重于针对习得功率使用记录的权重因子。针对出厂设置以及通过使用处理设备100所习得的给定处理任务的功率使用应当大体类似。然而用户行为模式针对每个不同的用户可非常具体。
用户处理历史(活动)的初始种子数据库可针对一个或多个设备类型或用户类型由指示用户行为模式的众包数据生成。例如,多数用户可在早晨起床后在上午6:00查看他们的电子邮件,并且在中午以及当用户回到家在晚上6:00再次查看其电子邮件。制造商的工程师可基于众包数据或根据营销信息生成用户处理任务500的初始种子数据库。用户处理任务的初始种子数据库针对来自特定地理位置的用户可为具体的。在一个实施方案中,在用户对处理设备100进行上电或使处理设备100向地理区域内的制造商服务注册的第一时间,可从制造商的网站下载处理任务的初始种子数据库。例如,初始“种子”用户处理历史数据库500可适用于硅谷居民,但是不同的初始“种子”用户处理历史数据库500可适用于中西部农民。在一个实施方案中,用户可使用处理设备上的应用来选择个人资料或用户类型和/或特定的地理区域。响应于所述选择,合适的初始种子用户处理历史数据库500可被下载至处理设备100。
在操作1005中,热状态管理器150可接收对影响功率使用和热生成的活动的通知。该通知可从调度器122接收,从内核120接收或从热和功率管理和设备控制121接收。活动可包括启动用户应用130、应用的线程,启动后台处理任务140或处理内核任务123。
在操作1010中,热状态管理器150可查找与功率使用数据库记录400中的活动相关联的功率使用和热生成。在一个实施方案中,任务识别和功率要求模块152可查找与任务相关联的功率和热生成。
可不期望追踪使用很小量功率的活动的功率使用。例如,光标定位活动可需要小量的功率,而渲染操作可消耗大量的功率并从图形处理器单元(GPU)生成热。因此,在操作1015中,确定活动对功率使用或所生成的热的影响是否多于阈值量。如果在活动中所用的功率和所生成的热量小于阈值量,则方法1000在操作1005处继续,否则,该方法在操作1020处继续。
在操作1020中,可确定并可存储当前机器状态。上文参考图3描述了机器状态记录。在一个实施方案中,当前机器状态例如被内核120定期更新。在此类情况下,“确定”当前机器状态包括从方法1000读取独立更新的当前机器状态的快照。
在操作1025中,可确定活动是否启动新的进程或线程。如果是,则在操作1035中,可生成并存储新的用户活动记录500。上文参考图5描述了用户活动记录500。方法1000在操作1005处继续。
相对于响应于在操作1025中确定活动启动了新的进程或线程而在先前在操作1035中生成并存储的初始活动记录,如果在操作1025中确定活动不是启动新的进程或线程,则功率有可能已在过去的时间内被该现有的进程或线程消耗。
在操作1030中,可确定进程或线程的功率使用。另外,可确定进程或线程执行的时间。随后,方法1000在操作1035处继续,在该操作中,用户活动记录500可针对进程或线程生成,并且与功率使用和进程或线程的执行时间一起存储。在一个实施方案中,用户活动记录500可与由活动记录500的字段507标引的机器状态记录300关联存储。例如,进程可为用户使用应用Apple
Figure BDA0001488274880000241
观看视频。机器状态300可为用户在家通过网络连接观看视频,而未使用Wi-Fi或蜂窝数据,并且当视频分辨率和音频分辨率为最高质量时。当与用户活动记录500相关联时,机器状态信息300可用于学习用户活动行为模式。
图11示出了用于根据用户处理任务的历史确定用户行为模式的方法1100的流程图。用户行为的模式有助于预测用户将执行的未来处理任务,以及有助于在预测的未来处理任务开始之前为用户准备处理设备100的机器状态。
在操作1105中,可发起对用户活动数据库500的查询以确定用户行为的模式。可根据时间范围、一周中的一天、使用多于阈值量功率的特定进程或用于缩小识别用户行为的模式的搜索范围的其他标准来缩小查询的范围。
在操作1110中,活动被识别为具有初始活动记录,当活动在上文图10的方法1000中生成了新的进程或线程时,该初始活动记录被生成。活动可具有匹配的结束记录,该记录将进程或线程的持续时间以及在进程或线程的持续时间内的功率使用存储在其中。
在操作1115中,可分析针对进程或线程的具有匹配的开始记录和结束记录的查询结果。分析可包括根据匹配的开始/结束记录的第二查询,以限制查询结果。第二查询可根据特定应用、根据一周中的特定的一天、根据一天中的特定的时间、根据工作日、根据节假日、根据周末、根据特定的机器状态或机器状态信息的子集或根据其他模式标准来限制查询结果。
在操作1120中,确定模式是否已被识别。模式可例如为该用户在每个工作日约上午6:00查看电子邮件,或该用户在周五约晚上8:00观看
Figure BDA0001488274880000251
电影。在一个实施方案中,模式还可包括特定的机器状态。例如,模式可指示该用户仅在工作日在家使用高充电速率充电器(壁式充电器)并且在工作日期间全天使用低充电速率(例如USB充电器)。机器状态还可包括该用户总是在晚上在家使用网络连接例如以太网在高分辨率视频上玩视频游戏。这些机器状态特征可有助于预测未来处理活动的机器状态,并且此外可用于确定热缓解进程。例如,当用户在家使用网络连接玩视频游戏时,可关闭Wi-Fi和蜂窝数据子系统以在用户玩视频游戏时节能并减少热生成。
在操作1125中,一个或多个习得进程模式记录生成并存储在用户活动记录500中。示例性模式记录包括上文参考图5的记录575,580,585和590。在一个实施方案中,机器状态记录300可与习得进程模式记录关联存储。在一个实施方案中,针对习得进程模式的机器状态记录可具有特定的机器状态记录数范围,诸如具有高位集。另选地,针对习得进程模式的机器状态记录300可具有将机器状态记录300识别为与习得进程模式相关联的字段(未示出)。
图12以框的形式示出了系统1200,该系统用于同步多个处理设备100的功率使用信息、机器状态信息、用户处理任务历史和用户行为模式(统称为机器状态准备数据)。
用户可拥有多个处理设备100(例如膝上型计算机101、平板计算机102和智能电话103)。在一个实施方案中,每个处理设备100可向同步服务1200注册。用户可具有其使用处理设备100的模式,该模式可用于同步机器状态准备数据。此外,同步系统1200可用于在给定从第一处理设备101学习或获得的信息的情况下使第二处理设备102为所选未来任务做好准备。
在一个实施方案中,跨多设备的同步机器状态准备数据可包括同步机器状态信息300、功率使用信息400和处理活动记录500。共享机器状态信息可包括第一处理设备通知第二处理设备关于第一处理设备的当前状态。在示例中,第一处理设备可检测到
Figure BDA0001488274880000261
网络服务在晚上6:00故障。此外或另选地,第一处理设备可从互联网警报或电子邮件消息得知
Figure BDA0001488274880000262
网络自晚上6:00起中断。第一处理设备上的机器状态记录300可与用户的第二处理设备同步,使得第二设备可得知
Figure BDA0001488274880000263
自晚上6:00起中断。在另一个示例中,第一处理设备可为用户的
Figure BDA0001488274880000264
并且第二处理设备可为用户的
Figure BDA0001488274880000265
Figure BDA0001488274880000266
的当前机器状态可为用户不在家(图3,机器状态记录300,字段370,参数1)并且
Figure BDA0001488274880000267
当前正处于运动中(字段375,参数2),在行驶中。一个或多个GPS度数连同一日中的时间和一周中的一天可指示用户正开车回家。
Figure BDA0001488274880000268
可已习得用户行为模式,即,当用户回到家时,其在
Figure BDA0001488274880000269
上使用
Figure BDA00014882748800002610
看新闻。在用户的
Figure BDA00014882748800002611
Figure BDA00014882748800002612
之间同步机器状态300之后,
Figure BDA00014882748800002613
可得知用户正在回家的路上。
Figure BDA00014882748800002614
可为未来处理任务准备
Figure BDA00014882748800002615
的机器状态:当用户到家时该用户正在其
Figure BDA00014882748800002616
上的
Figure BDA00014882748800002617
上看新闻。可根据本文所述的图2A和2B准备
Figure BDA00014882748800002618
的机器状态。此外,通过同步机器状态,当用户和其
Figure BDA00014882748800002619
到家时,
Figure BDA00014882748800002620
可从
Figure BDA00014882748800002621
得知用户现在在家,并且
Figure BDA00014882748800002622
可在用户优选的新闻频道上启动
Figure BDA00014882748800002623
同步系统1200可包括元数据服务器1210和一个或多个内容服务器1230。在一个实施方案中,内容服务器1230可存储一个或多个类型的用户数据集诸如机器状态300、功率使用信息400和用户处理信息500,包括元数据、数据库记录和索引。在一个实施方案中,内容服务器1230可为能够存储各种不同用户数据集类型的云存储服务。在一个实施方案中,同步系统1200还可包括同步管理系统1220。初始地,客户端设备100可存储来自同步系统1200上的客户端设备100的文件系统的一个或多个用户数据集。用户数据集,诸如客户端设备100上的机器状态数据库300可被存储在同步系统1200上。在一个实施方案中,用户数据集可被分成分块数据部分并被存储在一个或多个内容服务器1230上。描述用户数据集的元数据和关于用户数据集的分块部分的元数据可被存储在同步元数据数据库中的元数据服务器1230上。在一个实施方案中,元数据服务器1210和内容服务器1230可使用同步系统管理器1220来管理。
管理元数据服务器1210可包括向元数据服务器1210提供软件以解决各个版本的用户数据集之间的冲突,包括由生成数据集的不同版本的软件所导致的冲突。例如,如果用户的一个客户端设备例如101具有2.0版本的文字处理器软件,并且用户使用该客户端设备和软件生成文字处理文档,并且该文档后续使用同步系统1200下载至用户的具有1.0版本的文字处理器软件的不同的客户端设备,例如102,则1.0版本的软件可无法打开和/或编辑由2.0版本的软件生成的文档。同步系统管理器1260可向元数据服务器1210提供软件更新和补丁,以使文档适于与1.0版本和2.0版本的文字处理软件一起使用。类似地,第一客户端设备101上的机器状态300可使用不由第二客户端设备102支持的特征,或具有与第二客户端设备102上的规格不同的规格。例如,客户端设备101可具有使用基于GPS信号的“定位”特征的机器。客户端设备102可仅能够通过小区塔接近性、区域代码或IP地址来检测定位。同步系统管理器1220可在与客户端设备102同步预测器之前修改客户端设备101的机器状态中的“定位”特征。另选地,同步系统管理器1220可在同步预测器之前从预测器移除不由目标客户端设备支持的特征。在一个实施方案中,可根据在同步之前对预测器所作的改变来对经修改的预测器进行标记或以其他方式进行标记。
同步系统1200可经由网络140连接至一个或多个客户端设备100。网络140可为互联网、无线网络、蜂窝网络、局域网或这些中的任何组合。尽管同步系统管理器1220、元数据服务器1210和内容服务器1230已被示出为经由网络140连接的独立的元件,但是情况并非总是如此。同步系统管理器系统1220、元数据服务器1210或内容服务器1230中的一者或多者可在同一主机计算机系统上实现或在物理分布的若干计算机系统上实现。此外,如上所述,内容服务器1230可包括一个或多个内容服务器1230,该一个或多个内容服务器中的任一内容服务器或全部内容服务器可存储一个或多个类型的用户数据集。同步系统管理器1220、元数据服务器1210和一个或多个内容服务器1230中的一者或多者之间可通过套接字、消息、共享存储器、应用程序接口(API)、进程间通信或其他处理通信服务来进行通信。下文参考图14详细地描述了应用编程接口。
客户端设备100可包括台式计算机系统、膝上型计算机系统诸如客户端设备101、平板计算机系统诸如客户端设备102、蜂窝电话诸如客户端设备103、个人数字助理(PDA)包括使能蜂窝的PDA、机顶盒、娱乐系统、游戏设备或其他消费者电子设备。下文参考图15详细地描述了客户端设备100的部件。
用户数据集可包括以下中的一者或多者:机器状态数据库、用户处理活动数据库和功率使用数据库。用户数据集还可包括本地搜索和反馈历史数据库、本地数据库、数据文件、文件夹或目录、文字处理文档、电子表格、演示、电子邮件、文本、用户联系人、书签、资产诸如音乐、电影和其他购买的内容、设备设置和应用设置。这些中的每一者可为用户数据集。客户端设备100的用户可基于每个设备来确定特定的数据集是否会使用同步系统1200与用户的客户端设备100中的其他设备同步。
关于用户数据集的元数据可包括文件系统元数据和同步元数据。文件系统元数据可包括文件ID诸如POSIX文件ID、文档ID、文件的创建日期、文件最后一次被修改的日期、最后一次修改文件的设备的标识符、修改文件的应用的标识符和应用的版本、以及文件的生成计数。对于资产,诸如已经远程存储于服务诸如
Figure BDA0001488274880000281
或Amazon
Figure BDA0001488274880000282
处的购买的内容,关于该内容的元数据可包括指向内容所在地的统一资源定位符。文件系统元数据可由每个客户端设备100的文件系统生成。同步元数据可包括文件或目录的全球唯一标识符(UUID),并且还可包括ETAGS,该全球唯一标识符在用户的客户端设备100间是唯一的。ETAGS可指定文档或目录的元数据的具体版本。ETAGS可由同步系统100生成以管理用户数据集并解决针对特定的用户数据集的不同代用户数据之间的冲突。例如,ETAG可用于区分用户简历的不同代文字处理文档。
图13示出了用于同步针对多个设备的机器状态、用户处理任务历史和用户行为模式中的一者或多者的方法的流程图。例如,第一处理设备可为
Figure BDA0001488274880000283
并且第二处理设备可为
Figure BDA0001488274880000284
在操作205中,可确定并存储第一处理设备的机器状态300,如上文参考图2所述。例如,可确定用户
Figure BDA0001488274880000285
的机器状态300。可确定用户在工作日晚上7:00以后处于运动中,正在开车,并且基于GPS坐标,该用户正开车回家。
在操作1305中,机器状态准备信息可在图12的用户设备例如101,102和103中的一者或多者之间进行同步。机器状态准备信息可包括机器状态记录300、功率使用信息400和用户处理活动以及习得模式500。
在操作600中,可确定第二处理设备的未来处理任务。未来处理任务可包括开始时间和在未来处理任务开始时间处的初始热状态Ti。例如,
Figure BDA0001488274880000291
可已习得用户在工作日晚上7:00以后观看新闻的行为。
Figure BDA0001488274880000292
可协助
Figure BDA0001488274880000293
为未来处理任务做好准备。
在操作700中,可为
Figure BDA0001488274880000294
生成干预处理任务的列表。在一个实施方案中,第一处理设备
Figure BDA0001488274880000295
可借助上文的同步操作1305代表第二处理设备
Figure BDA0001488274880000296
生成干预任务的列表。与干预处理任务的列表中的每个任务相关联的功率使用可根据第二设备的功率使用记录400和用户处理活动记录500确定。在一个实施方案中,第一电子设备可代表第二处理设备确定针对干预处理任务的功率使用要求。可使用同步系统1200在第一处理设备和第二处理设备之间同步干预任务的列表。
在操作207中,第二设备的初始温度TC可输入至前馈热预测模型210中。干预任务的列表和针对干预任务的相关联的功率使用要求可输入至前馈预测模型210。在一个实施方案中,第一处理设备100
Figure BDA0001488274880000297
代表第二处理设备
Figure BDA0001488274880000298
执行前馈热预测。前馈热预测模型的输出可包括第二处理设备的预测的热状态TP
在操作800中,第二处理设备可做好准备,使得第二处理设备将在未来处理任务的开始时间处具有初始状态Ti。在一个实施方案中,只要有一个设备参与准备,第二处理设备可采用更严厉的冷却措施,因为用户不可能同时在第一设备和第二设备面前。例如,
Figure BDA0001488274880000299
上的冷却系统可最大限度运行,直到用户的第一处理设备
Figure BDA00014882748800002910
确定其机器状态为“在家”,使得用户不同时与两个处理设备一起。
在操作1310中,任选地第二处理设备启动第二处理设备上的未来处理任务。在一个实施方案中,当在第一处理设备检测到其已“在家”时,第二处理设备和第一处理设备可同步机器状态。响应于检测到第一电子设备
Figure BDA00014882748800002911
“在家”(因而用户也在家),第二处理设备可启动第二处理设备上的未来处理任务。继续上文的示例,
Figure BDA00014882748800002912
可响应于检测到第一处理设备的机器状态指示第一处理设备“在家”而启动新的应用。
在图14(“软件栈”)的示例性实施方案中,应用可使用若干服务API调用服务1或2,以及使用若干OS API调用操作系统(OS)。服务1和2可使用若干OS API调用OS。
需注意,服务2具有两个API,其中一个API(服务2API 1)从应用1接收调用并将值返回至应用1,并且另一个API(服务2API 2)从应用2接收调用并将值返回至应用2;服务1(其可例如为软件库)调用并接收来自OS API 1的返回值,并且服务2(其可例如为软件库)调用并接收来自API 1和OS API 2的返回值;应用2调用并接收来自API 2的返回值。
图15为计算系统1500的一个实施方案的框图。图15中所示的计算系统旨在表示计算系统(有线的或无线的)的范围,包括例如台式计算机系统、膝上型计算机系统、蜂窝电话、平板计算机、个人数字助理(PDA)包括使能蜂窝的PDA、机顶盒、娱乐系统或其他消费者电子设备。蜂窝电话可包括智能电话,诸如Apple的
Figure BDA0001488274880000301
平板计算机可包括例如Apple的
Figure BDA0001488274880000302
或Microsoft的
Figure BDA0001488274880000303
另选的计算系统可包括更多、更少和/或不同的部件。图15的计算系统可用于提供客户端设备和/或服务器设备。
计算系统1500包括总线1505或用于传递信息的其他通信设备,以及耦接至总线1505的可处理信息的处理器1510。
尽管计算系统1500被示出为具有单个处理器,但是计算系统1500可包括多个处理器和/或协处理器1510。计算系统1500还可包括耦接至总线1505的随机存取存储器(RAM)或其他动态存储设备1520(指主存储器),并可存储可由一个或多个处理器1510执行的信息和指令。主存储器1520还可用于在由处理器1510执行指令期间存储临时变量或其他中间信息。
计算系统1500还可包括只读存储器(ROM)1530和/或耦接至总线1505的可存储一个或多个处理器1510的静态信息和指令的其他静态存储设备1540。数据存储设备1540可耦接至总线1505以存储信息和指令。数据存储设备1540诸如闪存存储器或磁盘或光盘和对应的驱动器可耦接至计算系统1500。
计算系统1500还可经由总线1505耦接至显示设备1550,诸如阴极射线管(CRT)或液晶显示器(LCD)以向用户显示信息。计算系统1500还可包括数字字母混合输入设备1560,包括数字字母和其他键,该数字字母混合输入设备可耦接至总线1505以将信息和命令选择传送至一个或多个处理器1510。另一类型的用户输入设备是光标控件1570,诸如触控板、鼠标、轨迹球或光标方向键,以将方向信息和命令选择传送至一个或多个处理器1510以及控制显示器1550上的光标移动。
计算系统1500还可包括一个或多个网络接口1580以提供对网络诸如局域网的访问。一个或多个网络接口1580可包括例如具有天线1585的无线网络接口,该天线可表示一个或多个天线。计算系统1500可包括多个无线网络接口,诸如WiFi接口、蓝牙接口和蜂窝电话接口的组合。一个或多个网络接口1580还可包括例如用于经由网络电缆1587与远程设备通信的有线网络接口,该网络电缆可例如为以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
在一个实施方案中,一个或多个网络接口1580可例如通过符合IEEE802.11b和/或IEEE 802.11g标准来提供对局域网的访问,并且/或者无线网络接口可例如通过符合蓝牙标准来提供对个人局域网的访问。还可支持其他无线网络接口和/或协议。除了经由无线LAN标准进行通信或替代经由无线LAN标准进行通信,一个或多个网络接口1580可使用例如时分多址(TDMA)协议、全球移动通信系统(GSM)协议、码分多址(CDMA)协议和/或任何其他种类的无线通信协议来提供无线通信。
处理系统1500还可包括温度传感器1575。温度传感器1575可包括热电偶、片上热检测器I/O或其他传感器类型。可包括各个硬件部件例如CPU或GPU或其他高功率高热部件的温度传感器1575,并且温度传感器还可包括置于处理设备1500内的一个或多个温度传感器以感测处理设备1500内的空气的温度。
在以上说明书中,结合本发明的特定实施方案已描述了本发明。但显而易见的是,在不脱离本发明的更广泛的实质和范围的情况下,可对这些实施方案进行各种修改和变更。因此,说明书和附图应被视为是例示性的而非限制性的。

Claims (31)

1.一种计算机实现的方法,包括:
确定处理设备的未来处理任务、所述未来处理任务的未来开始时间、与所述未来处理任务关联存储的机器状态和所述未来处理任务的预测的持续时间;
至少根据所述未来处理任务的机器状态和预测的持续时间确定所述未来处理任务生成的预测热量和预测功率使用;
预测所述处理设备在第一时间和所述未来开始时间之间的多个处理任务,所述多个处理任务中的每个处理任务具有用于执行该处理任务的相关联的功率要求;
基于所述处理设备的当前温度和用于执行所述多个处理任务中的一个或多个处理任务的功率要求来预测所述处理设备将在所述未来开始时间所处于的所述处理设备的未来温度TP
至少部分地基于所述预测功率使用和用于执行所述未来处理任务所生成的预测热量来确定在所述未来处理任务的开始时间所述处理设备的初始温度TI;以及
响应于未来温度TP大于初始温度TI,使所述处理设备做好准备,使得所述处理设备在所述未来处理任务的开始时的温度小于或等于初始温度TI
2.根据权利要求1所述的方法,其中预测所述处理设备在第一时间和所述未来开始时间之间的所述多个处理任务包括分析过去的处理任务的历史以确定在所述过去的处理任务中的用户行为的模式。
3.根据权利要求2所述的方法,其中用户行为的模式包括以下中的一者或多者:确定一天中用户开始特定任务的大致时间,确定所述用户执行所述特定任务的大致持续时间,和确定一周中所述用户执行所述特定任务的特定的一天。
4.根据权利要求1所述的方法,其中预测所述多个处理任务包括分析日历应用中的数据。
5.根据权利要求1所述的方法,其中确定处理任务的功率要求包括访问处理任务的功率使用数据的数据库。
6.根据权利要求5所述的方法,其中确定所述处理任务的所述功率要求包括将从所述功率使用数据的数据库检索的所述处理任务的增量功率使用乘以从过去的处理任务的历史中检索的所述处理任务的所述预测的持续时间。
7.根据权利要求1所述的方法,其中使所述处理设备做好准备包括以下中的一者或多者:重新调度多个预测的处理任务中的一个或多个预测的处理任务至稍后的时间,或降低多个预测的处理任务中的一个或多个预测的处理任务的调度优先级。
8.根据权利要求1所述的方法,其中使所述处理设备做好准备包括以下中的一者或多者:降低音频音量,降低音频分辨率,降低视频分辨率或减小视频帧速率。
9.根据权利要求2所述的方法,其中预测所述处理设备的所述多个处理任务还包括使过去的处理任务与所述处理设备的一个或多个传感器值关联。
10.根据权利要求9所述的方法,其中使过去的处理任务与所述处理设备的一个或多个传感器值关联包括使过去的处理任务的运行与以下中的一者或多者关联:位置、一天中的时间、一周中的一天、所述处理设备是否连接至网络、或网络的信号强度。
11.一种非暂态计算机可读介质,所述非暂态计算机可读介质使用可执行指令被编程,所述可执行指令当被执行时执行包括以下操作的方法:
确定处理设备的未来处理任务、所述未来处理任务的未来开始时间、与所述未来处理任务关联存储的机器状态和所述未来处理任务的预测的持续时间;
至少根据所述未来处理任务的机器状态和预测的持续时间确定所述未来处理任务生成的预测热量和预测功率使用;
预测所述处理设备在第一时间和所述未来开始时间之间的多个处理任务,所述多个处理任务中的每个处理任务具有用于执行该处理任务的相关联的功率要求;
基于所述处理设备的当前温度和用于执行所述多个处理任务中的一个或多个处理任务的功率要求来预测所述处理设备将在所述未来开始时间所处于的所述处理设备的未来温度TP
至少部分地基于所述预测功率使用和用于执行所述未来处理任务所生成的预测热量来确定在所述未来处理任务的开始时间所述处理设备的初始温度TI;以及
响应于未来温度TP大于初始温度TI,使所述处理设备做好准备,使得所述处理设备在所述未来处理任务的开始时的温度小于或等于初始温度TI
12.根据权利要求11所述的介质,其中预测所述处理设备在第一时间和所述未来开始时间之间的所述多个处理任务包括分析过去的处理任务的历史以确定在所述过去的处理任务中的用户行为的模式。
13.根据权利要求12所述的介质,其中用户行为的模式包括以下中的一者或多者:确定一天中用户开始特定任务的大致时间,确定所述用户执行所述特定任务的大致持续时间,和确定一周中所述用户执行所述特定任务的特定的一天。
14.根据权利要求11所述的介质,其中预测所述多个处理任务包括分析日历应用中的数据。
15.根据权利要求11所述的介质,其中确定处理任务的功率要求包括访问处理任务的功率使用数据的数据库。
16.根据权利要求15所述的介质,其中确定所述处理任务的所述功率要求包括将从所述功率使用数据的数据库检索的所述处理任务的增量功率使用乘以从过去的处理任务的历史中检索的所述处理任务的所述预测的持续时间。
17.根据权利要求11所述的介质,其中使所述处理设备做好准备包括以下中的一者或多者:重新调度多个预测的处理任务中的一个或多个预测的处理任务至稍后的时间,或降低多个预测的处理任务中的一个或多个预测的处理任务的调度优先级。
18.根据权利要求11所述的介质,其中使所述处理设备做好准备包括以下中的一者或多者:降低音频音量,降低音频分辨率,降低视频分辨率或减小视频帧速率。
19.根据权利要求12所述的介质,其中预测所述处理设备的所述多个处理任务还包括使过去的处理任务与所述处理设备的一个或多个传感器值关联。
20.根据权利要求19所述的介质,其中使过去的处理任务与所述处理设备的一个或多个传感器值关联包括使过去的处理任务的运行与以下中的一者或多者关联:位置、一天中的时间、一周中的一天、所述处理设备是否连接至网络、或网络的信号强度。
21.一种处理设备,包括:
一个或多个处理器;
存储装置,所述存储装置包括过去的处理任务的历史和功率使用数据的数据库,所述存储装置耦接至所述一个或多个处理器;和
存储器,所述存储器耦接至一个或多个处理器,所述存储器使用可执行指令被编程,所述可执行指令当被执行时执行包括以下操作的方法:
确定所述处理设备的未来处理任务、所述未来处理任务的未来开始时间、与所述未来处理任务关联存储的机器状态和所述未来处理任务的预测的持续时间;
至少根据所述未来处理任务的机器状态和预测的持续时间确定所述未来处理任务生成的预测热量和预测功率使用;
预测所述处理设备在第一时间和所述未来开始时间之间的多个处理任务,所述多个处理任务中的每个处理任务具有用于执行该处理任务的相关联的功率要求;
基于所述处理设备的当前温度和用于执行所述多个处理任务中的一个或多个处理任务的功率要求来预测所述处理设备将在所述未来开始时间所处于的所述处理设备的未来温度TP
至少部分地基于所述预测功率使用和用于执行所述未来处理任务所生成的预测热量来确定在所述未来处理任务的开始时间所述处理设备的初始温度TI;以及
响应于未来温度TP大于初始温度TI,使所述处理设备做好准备,使得所述处理设备在所述未来处理任务的开始时的温度小于或等于初始温度TI
22.根据权利要求21所述的处理设备,其中预测所述未来处理任务包括分析过去的处理任务的历史以确定在所述过去的处理任务中的用户行为的模式。
23.根据权利要求22所述的处理设备,其中用户行为的模式包括以下中的一者或多者:确定一天中用户开始特定任务的大致时间,确定所述用户执行所述特定任务的大致持续时间,和确定一周中所述用户执行所述特定任务的特定的一天。
24.根据权利要求21所述的处理设备,其中预测所述多个处理任务包括分析日历应用中的数据。
25.根据权利要求24所述的处理设备,其中确定处理任务的功率要求包括访问处理任务的功率使用数据的数据库。
26.根据权利要求25所述的处理设备,其中确定所述处理任务的所述功率要求包括将从所述功率使用数据的数据库检索的所述处理任务的增量功率使用乘以从过去的处理任务的历史中检索的所述处理任务的所述预测的持续时间。
27.根据权利要求21所述的处理设备,其中使所述处理设备做好准备包括以下中的一者或多者:重新调度多个预测的处理任务中的一个或多个预测的处理任务至稍后时间,或降低多个预测的处理任务中的一个或多个预测的处理任务的调度优先级。
28.根据权利要求21所述的处理设备,其中使所述处理设备做好准备包括以下中的一者或多者:降低音频音量,降低音频分辨率,降低视频分辨率或减小视频帧速率。
29.根据权利要求22所述的处理设备,其中预测所述处理设备的所述多个处理任务还包括使过去的处理任务与所述处理设备的一个或多个传感器值关联。
30.根据权利要求29所述的处理设备,其中使过去的处理任务与所述处理设备的一个或多个传感器值关联包括使过去的处理任务的运行与以下中的一者或多者关联:位置、一天中的时间、一周中的一天、所述处理设备是否连接至网络、或网络的信号强度。
31.一种包括用于执行根据权利要求1-10中的任何一项所述的方法的构件的装置。
CN201680031616.2A 2015-06-05 2016-03-16 预测控制系统和方法 Active CN107683443B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562171964P 2015-06-05 2015-06-05
US62/171,964 2015-06-05
US14/871,526 US10671131B2 (en) 2015-06-05 2015-09-30 Predictive control systems and methods
US14/871,526 2015-09-30
PCT/US2016/022568 WO2016195775A1 (en) 2015-06-05 2016-03-16 Predictive control systems and methods

Publications (2)

Publication Number Publication Date
CN107683443A CN107683443A (zh) 2018-02-09
CN107683443B true CN107683443B (zh) 2021-06-18

Family

ID=55650720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680031616.2A Active CN107683443B (zh) 2015-06-05 2016-03-16 预测控制系统和方法

Country Status (5)

Country Link
US (1) US10671131B2 (zh)
KR (1) KR102084838B1 (zh)
CN (1) CN107683443B (zh)
TW (2) TWM539648U (zh)
WO (1) WO2016195775A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201402879D0 (en) * 2014-02-18 2014-04-02 Zero360 Inc Display Control
US10083105B2 (en) 2015-06-05 2018-09-25 Apple Inc. Smart advice to charge notification
JP2018006642A (ja) * 2016-07-06 2018-01-11 富士通株式会社 電子機器
US10133610B2 (en) * 2016-08-16 2018-11-20 International Business Machines Corporation System, method and recording medium for temperature-aware task scheduling
JP6799255B2 (ja) * 2016-11-22 2020-12-16 富士通株式会社 ジョブ消費電力推定プログラム、並列処理装置およびジョブ消費電力推定方法
US20180191629A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Time-based flexible packet scheduling
RU2767009C1 (ru) 2018-02-15 2022-03-16 Тийода Корпорейшн Система поддержки установки условий работы завода, устройство обучения и устройство поддержки установки условий работы
CN109117813A (zh) * 2018-08-24 2019-01-01 北京新界教育科技有限公司 视频处理方法及装置
US11843621B2 (en) * 2019-03-08 2023-12-12 Forescout Technologies, Inc. Behavior based profiling
CN109829260B (zh) * 2019-03-29 2023-04-18 江苏精研科技股份有限公司 一种5g高速风扇的仿真设计方法
CN113711653A (zh) * 2019-04-01 2021-11-26 费希尔控制产品国际有限公司 用于控制低能量设备的通信数据速率的方法和装置
CN112208385B (zh) * 2019-07-10 2024-01-02 富泰华工业(深圳)有限公司 电池更换方法及控制装置
US11900123B2 (en) * 2019-12-13 2024-02-13 Advanced Micro Devices, Inc. Marker-based processor instruction grouping
US11144421B2 (en) * 2019-12-31 2021-10-12 Micron Technology, Inc. Apparatus with temperature mitigation mechanism and methods for operating the same
KR20210128807A (ko) 2020-04-17 2021-10-27 삼성중공업 주식회사 해수 유입구 덮개
US11656664B2 (en) * 2020-06-05 2023-05-23 Apple Inc. Context aware thermal pressure prediction and reaction
US11301028B2 (en) 2020-06-24 2022-04-12 Motorola Mobility Llc Time-based and temperature-based device thermal mitigation
US11934286B2 (en) * 2021-04-29 2024-03-19 Dell Products L.P. Subsystem power range configuration based on workload profile
TWI787955B (zh) * 2021-08-13 2022-12-21 國立臺灣科技大學 設備溫度異常的線上檢測方法和系統
TWI823183B (zh) * 2021-11-12 2023-11-21 台泥儲能科技股份有限公司 電力需量控制系統及其方法
US11972267B2 (en) * 2022-10-04 2024-04-30 International Business Machines Corporation Hibernation of computing device with faulty batteries

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436296A (zh) * 2010-06-08 2012-05-02 美国能量变换公司 用于在数据中心中预测温度值的系统和方法
CN103543325A (zh) * 2012-07-11 2014-01-29 索尼公司 功耗管理设备、功耗管理系统、功耗管理方法以及程序

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6207936B1 (en) 1996-01-31 2001-03-27 Asm America, Inc. Model-based predictive control of thermal processing
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US7706856B2 (en) 2002-09-27 2010-04-27 General Electric Company System and method for predictive thermal output control of a medical device
CA2515159A1 (en) * 2003-02-07 2004-08-19 Power Measurement Ltd. A method and system for calculating and distributing utility costs
JP4152348B2 (ja) * 2004-06-03 2008-09-17 株式会社ソニー・コンピュータエンタテインメント 電子デバイス冷却装置、電子デバイスシステムおよび電子デバイス冷却方法
JP3914230B2 (ja) 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
US8271807B2 (en) 2008-04-21 2012-09-18 Adaptive Computing Enterprises, Inc. System and method for managing energy consumption in a compute environment
US8374730B2 (en) 2005-08-25 2013-02-12 Apple Inc. Methods and apparatuses for dynamic thermal control
US20070192641A1 (en) * 2006-02-10 2007-08-16 Intel Corporation Method and apparatus to manage power consumption in a computer
US20070225871A1 (en) 2006-03-24 2007-09-27 Karstens Christopher K Managing predictable thermal environments
US8762097B2 (en) 2006-08-04 2014-06-24 Apple Inc. Method and apparatus for a thermal control system based on virtual temperature sensor
JP5189921B2 (ja) * 2008-08-02 2013-04-24 レノボ・シンガポール・プライベート・リミテッド コンピュータの放熱システム
US8224596B2 (en) * 2008-09-09 2012-07-17 International Business Machines Corporation Portable device battery optimization routing system
US8190276B2 (en) 2008-11-21 2012-05-29 Oracle America, Inc. Method and apparatus for controlling temperature variations in a computer system
US8397088B1 (en) * 2009-07-21 2013-03-12 The Research Foundation Of State University Of New York Apparatus and method for efficient estimation of the energy dissipation of processor based systems
US8280456B2 (en) 2009-08-14 2012-10-02 Google Inc. Providing a user with feedback regarding power consumption in battery-operated electronic devices
US8538484B2 (en) 2009-08-14 2013-09-17 Google Inc. Providing a user with feedback regarding power consumption in battery-operated electronic devices
US9256265B2 (en) 2009-12-30 2016-02-09 Nvidia Corporation Method and system for artificially and dynamically limiting the framerate of a graphics processing unit
US8452463B2 (en) 2010-06-04 2013-05-28 Apple Inc. Adjusting the thermal behavior of a computing system using indirect information about ambient temperature
CN101916209B (zh) * 2010-08-06 2012-11-21 华东交通大学 一种多核处理器集群任务资源分配方法
TWI582565B (zh) 2010-12-21 2017-05-11 英特爾股份有限公司 用以配置微處理器中之熱設計功率的方法和裝置
US8984305B2 (en) 2010-12-21 2015-03-17 Intel Corporation Method and apparatus to configure thermal design power in a microprocessor
US10558544B2 (en) 2011-02-14 2020-02-11 International Business Machines Corporation Multiple modeling paradigm for predictive analytics
US8688883B2 (en) * 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US10180665B2 (en) 2011-09-16 2019-01-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Fluid-cooled computer system with proactive cooling control using power consumption trend analysis
US9442773B2 (en) 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US8909383B2 (en) 2011-12-22 2014-12-09 International Business Machines Corporation Proactive cooling of chips using workload information and controls
US9395807B2 (en) * 2012-05-23 2016-07-19 Canon Kabushiki Kaisha Power management apparatus, image forming apparatus and power management method
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
CN103105923B (zh) * 2013-03-07 2015-05-27 鄂尔多斯市云泰互联科技有限公司 云计算中心的it业务节能调度方法及其系统
US9268378B2 (en) 2013-06-28 2016-02-23 Intel Corporation Techniques and system for managing platform temperature
CN104158754B (zh) * 2014-07-08 2017-07-11 上海交通大学 基于热负载均衡的数据中心自适应性耗能管理方法
CN105205229B (zh) 2015-09-02 2018-10-16 江苏省电力公司南京供电公司 一种高压单芯电缆应急负荷下的载流能力动态评估方法
US10061366B2 (en) * 2015-11-17 2018-08-28 Microsoft Technology Licensing, Llc Schedule-based energy storage device selection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436296A (zh) * 2010-06-08 2012-05-02 美国能量变换公司 用于在数据中心中预测温度值的系统和方法
CN103543325A (zh) * 2012-07-11 2014-01-29 索尼公司 功耗管理设备、功耗管理系统、功耗管理方法以及程序

Also Published As

Publication number Publication date
TW201710830A (zh) 2017-03-16
KR102084838B1 (ko) 2020-03-04
US10671131B2 (en) 2020-06-02
TWI619007B (zh) 2018-03-21
TWM539648U (zh) 2017-04-11
WO2016195775A1 (en) 2016-12-08
KR20180003576A (ko) 2018-01-09
US20160357232A1 (en) 2016-12-08
CN107683443A (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
CN107683443B (zh) 预测控制系统和方法
US10936358B2 (en) Initiating background updates based on user activity
US10554786B2 (en) Dynamic adjustment of mobile device based on peer event data
US10891142B2 (en) Method and device for preloading application, storage medium, and terminal device
US11949725B2 (en) Alarms for a system of smart media playback devices
US9462965B2 (en) Dynamic adjustment of mobile device based on system events
CN106415296B (zh) 自适应电池寿命延长
RU2586869C2 (ru) Уведомления о приложениях
US20180267839A1 (en) Controlled Energy Utilization In A Computing Device
US9603094B2 (en) Non-waking push notifications
US9432839B2 (en) Dynamic adjustment of mobile device based on thermal conditions
TWI514132B (zh) 資料同步技術
EP3502879B1 (en) Method for preloading application, storage medium, and terminal device
WO2018161842A1 (en) Optimization of energy management of mobile devices based on specific user and device metrics uploaded to cloud
US9465679B2 (en) Dynamic adjustment of mobile device based on adaptive prediction of system events
JP6259920B2 (ja) 複数のモバイルコンピューティングデバイスのための動的なストレージ管理の促進メカニズム
US20110288898A1 (en) Coordinating Services
US20140237476A1 (en) Centralized task scheduling
US9813990B2 (en) Dynamic adjustment of mobile device based on voter feedback

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant