CN110383241B - 用于基于应用程序状态降低硬件能耗的装置和方法 - Google Patents

用于基于应用程序状态降低硬件能耗的装置和方法 Download PDF

Info

Publication number
CN110383241B
CN110383241B CN201880015171.8A CN201880015171A CN110383241B CN 110383241 B CN110383241 B CN 110383241B CN 201880015171 A CN201880015171 A CN 201880015171A CN 110383241 B CN110383241 B CN 110383241B
Authority
CN
China
Prior art keywords
application
action
activity
call
actions
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
CN201880015171.8A
Other languages
English (en)
Other versions
CN110383241A (zh
Inventor
王军
叶寒栋
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN110383241A publication Critical patent/CN110383241A/zh
Application granted granted Critical
Publication of CN110383241B publication Critical patent/CN110383241B/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/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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)

Abstract

提供了一种用于降低正在运行应用程序的硬件的能耗的装置、方法和计算机可读介质。在使用中,通过应用程序接口接收来自应用程序的调用。这种调用指示所述应用程序的状态。此外,还基于所述调用确定动作。所述动作用于降低正在运行所述应用程序的硬件的能耗。所述方法继续执行降低正在运行所述应用程序的所述硬件的所述能耗的所述动作。

Description

用于基于应用程序状态降低硬件能耗的装置和方法
本申请要求于2017年3月2日递交的、申请序列号为15/448,396、发明名称为“用于基于应用程序状态降低硬件能耗的装置和方法”的美国非临时专利申请的在先申请优先权,其全部内容通过引用结合在本文中。
技术领域
本发明涉及能耗管理,尤其涉及降低能耗的技术。
背景技术
近年来,为了提高移动设备的能效,提出了许多技术。一种技术称为动态电压频率调整(dynamic voltage and frequency scaling,简称DVFS)。这种电路级技术通过动态调整设备的电压和/或频率来调节功耗。称为调节器的驱动级软件模块可以监测处理器负载等电路级因素,并且当这种负载超过阈值时切换到一定的频率和/或电压。
然而,诸如DVFS这类技术属于通用系统技术,其基于处理器利用率等系统状态的低层指示。为此,这类技术与应用程序级使用场景无关。因此,这类技术在运行不同的应用程序时会产生不良结果。因此,到目前为止,应用程序和底层功率管理机制之间没有应用程序状态信息的指示,在最大程度上导致对DVFS这类技术的软件控制效率降低。
发明内容
提供了一种用于基于应用程序状态降低硬件能耗的装置。所述装置包括存储指令的非瞬时性存储器,以及与所述非瞬时性存储器通信的一个或多个处理器。所述一个或多个处理器执行所述指令以通过应用程序接口接收来自应用程序的调用。这种调用指示所述应用程序的状态。此外,还基于所述调用确定动作。所述动作用于降低正在运行所述应用程序的硬件的能耗。所述一个或多个处理器还使用所述指令以执行所述降低正在运行所述应用程序的硬件的能耗的动作。
此外,还提供了一种用于基于应用程序状态降低硬件能耗的方法。在使用中,通过应用程序接口接收来自应用程序的调用。这种调用指示所述应用程序的状态。此外,还基于所述调用确定动作。所述动作用于降低正在运行所述应用程序的硬件的能耗。所述方法继续执行所述降低正在运行所述应用程序的硬件的能耗的动作。
此外又提供了一种用于基于应用程序状态降低硬件能耗的计算机可读介质。包括一种存储计算机指令的非瞬时性计算机可读介质,其中,所述计算机指令在由一个或多个处理器执行时使所述一个或多个处理器执行各种步骤。具体地,通过应用程序接口接收来自应用程序的调用。这种调用指示所述应用程序的状态。此外,还基于所述调用确定动作。所述动作用于降低正在运行所述应用程序的硬件的能耗。所述步骤继续执行所述降低正在运行所述应用程序的硬件的能耗的动作。
根据本发明的一方面,提供了一种所述调用可以通过标识所述应用程序的状态指示所述应用程序的状态的实施例。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了所述应用程序的状态可以指示应用程序活动的启动。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了所述应用程序的状态可以指示应用程序活动的停止。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了所述状态可以对应于包括以下各项的应用程序活动:屏幕滚动活动、网页加载活动、视频播放活动、视频录制活动、游戏活动、音乐播放活动和/或全球定位系统活动。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了所述动作可以在位于所述应用程序驻留的应用程序层之下的层处确定。可选地,所述动作在操作系统层和/或驱动层确定。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了可以将所述调用转换为进程间通信以发送给能量管理器确定所述动作并执行所述动作。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了所述应用程序可以包括用于发送所述调用以响应所述状态改变的附加代码。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了所述动作可以由以下步骤确定:确定是否多个动作至少部分地同时执行;如果确定所述多个动作不是至少部分地同时执行,则确定所述动作为第一动作;如果确定所述多个动作至少部分地同时执行,则确定所述动作为第二动作。可选地,可以基于来自同一应用程序的不同调用确定所述多个动作。或者,可选地,可以基于来自不同应用程序的不同调用来确定所述多个动作。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了可以确定所述应用程序是否作为后台进程运行,所述动作可以基于所述确定所述应用程序是否作为所述后台进程运行而有条件地执行。
可选地,在上述方面中的任一方面中,所述方面的另一种实现方式提供了所述动作可以包括设置运行时属性,所述运行时属性包括与中央处理器、图形处理器、存储器和/或总线相关的电压、频率和/或带宽。
上述处理设备、方法或计算机可读介质实施例的上述特征中的一个或多个可导致能耗降低,而在缺乏这种特征的系统中则摒弃这类降低。具体地,通过在硬件级的节能动作和应用程序状态之间提供协同,这类动作可以更准确地反映和适应具体的应用程序级活动。进一步地,在各种实施例中,这类应用程序状态驱动的动作可以由与所述应用程序分离以及关联应用程序层下面的软件和/或硬件层控制。
为此,所述硬件的能耗可由与所述应用程序分离且独立的中心或伪中心模块动态调整,在一些实施例中,所述中心或伪中心模块可有助于管理与在同一硬件上运行的多个应用程序相关的节能。此外,可选地,所述应用程序只需要报告状态的变化,而不一定包括用于确定要采取的具体行动的逻辑,以及确定用于处理可能因来自相同应用程序和/或不同应用程序的不同调用而产生的冲突行动的方法。应注意,前述的潜在优点仅出于说明的目的而进行阐述,并且不应被解释为以任何方式进行限制。
附图说明
图1示出了一实施例提供的一种用于降低正在运行应用程序的硬件的能耗的方法;
图2示出了另一实施例提供的一种用于降低正在运行应用程序的硬件的能耗的层框架;
图3示出了又一实施例提供的一种用于降低正在运行应用程序的硬件的能耗的系统;
图4示出了一实施例提供的一种用于降低硬件能耗的状态通知机制/应用程序接口(application program interface,简称API)方法;
图5示出了另一实施例提供的一种用于降低硬件能耗的能量管理器方法;
图6A示出了一实施例提供的一种结合存在多个应用程序级活动的情况降低硬件能耗的方法;
图6B示出了又一实施例提供的一种用于降低正在运行应用程序的硬件的能耗的方法;
图7是一实施例提供的网络架构的示图;
图8是一实施例提供的示例性处理设备的示图。
具体实施方式
图1示出了一实施例提供的一种用于降低正在运行应用程序的硬件的能耗的方法100。在本说明书的上下文中,这种硬件可以包括支持执行上述应用程序的任意一个或多个物理组件。例如,在各种实施例中,这类硬件可以包括但不限于处理器(例如,中央处理器、图形处理器等)、存储器(例如,易失性或非易失性存储器等)、总线、输入/输出(input/output,简称I/O)(例如,网络接口、用户I/O设备等)。
此外,在本说明书的上下文中,所述应用程序可以包括用于在上述硬件上为执行一个或多个任务所执行的任何软件、代码和/或指令。这种应用程序的非限制性示例可以包括网络浏览器、办公生产力程序(例如,文字处理器、电子表格生成器、演示文稿程序等)、游戏应用程序等。在又一些实施例中,上述应用程序可以是能够被另一应用程序处理的数据结构(例如,网页、文档、演示文稿等)组件。在这种实施例中,所述应用程序可以包括能够执行与上述数据结构相关的一个或多个任务的脚本、标记语言等。即便如此,应注意,在不同的实施例中,上述应用程序可以包括专门驻留在所述硬件上的本地软件,和/或运行在远程硬件上的基于软件的远程服务,以及本地硬件。
无论如何,所述方法100用于基于来自所述应用程序的输入降低硬件的能耗。具体地,结合图1,通过应用程序接口(application program interface,简称API)从应用程序接收调用,如操作102所示。在本说明书的上下文中,这种API可以是指用于从所述应用程序接收一个或多个调用的任意一个或多个协议、例程、指令和/或代码段。例如,在一个可能的实施例中,所述API可以通过一个或多个库实现。进一步地,上述调用可以是指可以采取任何形式(例如,命令、代码行、标志/寄存器设置等)的任何计算机可读信号并且启动或以其它方式引发后续能耗降低功能。例如,在各种实施例中,调用可以是函数调用、方法调用、使用进程间通信发送的消息(例如,使用套接字发送的消息)或调用功能的其它合适手段。
在各种实施例中,所述应用程序可以被修改(例如,在发布之前或之后由开发人员或其它实体等修改)包括用于发送所述调用以响应所述状态的附加代码。这可以通过在已经存在的应用程序中插入代码段(例如,小部件等)来实现。还设想了其它实施例,其中在应用程序开发周期的早期(甚至开始时)插入所述代码。例如,在又一实施例中,编译器或其它程序可以自动地将上述附加代码和/或适当的调用合并到所述应用程序中。
在一实施例中,所述调用指示所述应用程序的状态。在本说明书中,这种指示可以包括所述应用程序状态的任何显式或隐式指示。例如,在一实施例中,这种指示可以标识所述状态(例如,使用所述状态的名称,使用与所述状态对应的代码等)。为此,在各种实施例中,所述调用可以包括直接标识所述状态的描述符,或者能够接收所述调用识别、查找、推断或以其它方式利用所述调用来标识所述应用程序状态的代码。
在本说明书的上下文中,所述状态可以包括所述应用程序的执行和/或使用的任一方面。例如,这种执行和/或使用可以涉及应用程序活动,包括但不限于屏幕滚动活动、网页加载活动、视频播放活动、视频录制活动、游戏活动、音乐播放活动、全球定位系统活动和/或能够由所述应用程序或与所述应用程序一起执行的任何其它活动。此外,所述应用程序的上述执行和/或使用方面可以涉及所述应用程序的执行和/或使用的启动(即开始)、停止(即结束)、级别、数量和/或程度等。
继续参考图1,在操作104中确定用于降低正在运行所述应用程序的硬件的能耗的动作。此外,这种动作还基于所述调用确定。在本说明书中,上述动作可以是指能够结合所述硬件(例如,处理器、存储器、总线、接口、其它组件等)为降低所述硬件的能耗(例如,通过降低电压和/或电流以及相应的功率)而执行的任何动作。此外,这种动作可以由所述硬件本身、其它硬件和/或软件(例如,能量管理模块等)确定。此外,在各种实施例中,所述动作也可以可选地具有其它目的,例如在节能的同时避免显著的性能损失。
在各种实施例中,所述动作可以包括设置所述硬件的至少一个可配置方面。例如,这种设置可以涉及运行时属性,包括但不限于与所述硬件(例如处理器、存储器、总线、接口、其它组件等)相关的电压、频率和/或带宽。具体地,在一个可能的实施例中,内核模块(例如,调节器)可以通过设置特定的操作参数(例如,Linux中的cpufreq)来控制处理器的操作电压和/或时钟频率。在另一个可能的实施例中,通过设置另一个操作参数(例如,Linux中的devfreq),上述内核模块可以用于控制总线和/或存储器的带宽。
在使用中,所述动作可以按所述调用功能的任意期望方式来确定。例如,在一实施例中,所述调用和/或所述关联的应用程序状态可以用作通过查找表查找适当动作的键。在另一实施例中,可以将所述调用和/或所述关联的应用程序状态输入计算机实现的使用逻辑和/或规则输出相应动作的算法中。
操作106执行所述降低正在运行所述应用程序的硬件的能耗的动作。在本说明书中,所述能耗动作的这类执行可以涉及操作104中确定之后的动作的任何实现。例如,在一个可能的实施例中,这种执行可以包括所述相关硬件的电压、频率和/或带宽的实际硬件级设置,作为所述关联参数设置的结果。在各种实施例中,操作106可以或可以不使用执行操作104的相同硬件和/或软件来执行。进一步地,所述动作可以由所述硬件本身、其它硬件和/或软件(例如,能量管理模块等)执行。
从而又进一步降低能耗,否则在缺乏这种能力的系统中则摒弃此类降低。具体地,通过在硬件级的节能动作和应用程序状态之间提供协同,这类动作可以更准确地反映和适应具体的应用程序级活动。进一步地,在各种实施例中,这类应用程序状态驱动的动作可以由与所述应用程序分离以及关联应用程序层下面的软件和/或硬件层控制。
为此,所述硬件的能耗可由与所述应用程序分离且独立的中心或伪中心模块动态调整,在一些实施例中,所述中心或伪中心模块可有助于管理与在同一硬件上运行的多个应用程序相关的节能。此外,可选地,所述应用程序只需要报告状态的变化,而不一定包括用于确定要采取的具体行动的逻辑,以及确定用于处理可能因来自相同应用程序和/或不同应用程序的不同调用而产生的冲突行动的方法。应注意,前述的潜在优点仅出于说明的目的而进行阐述,并且不应被解释为以任何方式进行限制。
根据用户的需求,现在将阐述关于在各种可选结构和应用中可以或不可以实现所述方法的更多说明性信息。此外,应注意,下面的信息是为了说明的目的而提出的,不应该被解释为以任何方式进行限制。以下任一特征可以可选地结合或不结合所描述的其它特征。
图2示出了一实施例提供的一种用于降低正在运行应用程序的硬件的能耗的层框架200。可选地,所述层框架200可以在任何先前的和/或随后的附图和/或其描述中阐述的任何实施例的上下文中实现。然而,应理解,所述层框架200可以在其它合适的环境中实现。
如图所示,所述层框架200包括硬件层202、驱动层204、操作系统(operatingsystem,简称OS)层206、API层208和应用程序层210。这种硬件层202可以包括具有可调设置(如电压、频率等)导致不同能耗的任何硬件(例如,处理器、存储器、总线、I/O等)。进一步地,所述驱动层204可以包括用于控制所述硬件的上述运行时属性设置的一个或多个驱动应用程序。
此外,所述OS层206可以包括运行所述应用程序的OS,或一个或多个系统级应用程序。在任何情况下,这种OS层206用于在所述驱动层204提供的可能支持下确定基于应用程序级活动降低硬件级能耗的适当行动。为了使所述OS层206可以随时获知这种应用程序级活动,所述API层208包括至少一个API,用于在所述应用程序层210的一个或多个应用程序与所述OS层206之间引导调用。
在使用中,所述应用程序层210的一个或多个应用程序发起API调用,并将相同调用指引到所述API层208的API,以响应各种应用程序级活动。参见操作1。之后,在操作2中,这类调用由所述API层208的API转换为进程间通信(inter process communication,简称IPC)。在操作3中,将这类IPC发送至一个或多个系统级应用程序或所述OS层206的OS,以确定用于降低所述硬件层202的硬件能耗的适当动作。进一步地,在操作4中,为支持和实现这一操作,所述驱动层204的驱动用于通过例如调整相应的硬件级设置来配置硬件设置。
为此,通过执行上述设置调整,所述硬件层202的硬件使用操作5中调整后的设置运行,从而与不同应用程序级活动驱动的特定应用程序状态配合降低能耗。通过将这种应用程序状态与硬件级节能配合,在一些实施例中,由于最终驱动能耗的是这种应用程序级活动,因此可以改进(甚至最大化)节能。
图3示出了一实施例提供的一种用于降低正在运行应用程序的硬件的能耗的系统300。可选地,所述系统300可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。然而,应理解,系统300可以在其它合适的环境中实现。
如图所示,系统300包括应用程序302、配备API 306的状态通知机制304、能量管理器308和硬件310。在各种实施例中,所述通知机制304和所述能量管理器308可以各自包括能够执行其预期任务的软件和/或硬件的任意组合,下面将详细描述这些软件和/或硬件。进一步地,虽然示出了所述API 306是所述状态通知机制304的组件,但设想了其它实施例,其中所述API 306是单独的实体或者与所述系统300的任何其它组件(例如,能量管理器308等)集成。针对这一点,在不同的实施例中,所述系统300的组件中的任意一个均可以是集成的。
进一步地,在一个可能的实施例中,所述应用程序302可以是应用程序层(例如,图2的应用程序层210)的一部分,所述API 306可以是API或框架层(例如,图2的API层208)的一部分,所述状态通知机制304可以是OS层(例如,图2的OS层206)的一部分。此外,所述能量管理器308可以是驱动层的一部分(例如,图2的驱动层204),所述硬件310可以是硬件层的一部分(例如,图2的硬件层202)。
在使用中,对所述应用程序302修改了(在开发期间或之后)一行或多行附加代码(例如,代码段、模块等),其目的是生成调用312并将其发送至所述状态通知机制304的API306。例如,参见图1的操作102。例如,在一实施例中,可以在执行时控制所述应用程序302的一个或多个活动的命令之后插入所述一行或多行代码。在这种可能的实施例中,这种插入的命令可以结合所述应用程序级活动的控制,将相应的调用312发送至所述状态通知机制304的所述API 306。
在一实施例中,调用312的任一方面(例如,格式、内容、定时等)可以基于启动、停止等特定应用程序级活动而变化。例如,在一实施例中,可以为响应特定应用程序级活动的启动发送第一调用,可以为特定应用程序级活动的停止发送另外的第二调用。
进一步地,在一个可能的实施例中,调用312可以与活动无关。换言之,对于不同的应用程序级活动,调用312可能不一定不同。在其它实施例中,调用312可以针对不同的应用程序级活动而不同,从而允许所述状态通知机制304区分与不同应用程序级活动关联的调用。同样,这种调用之间的不同(如果有)可以与所述关联的应用程序级活动的任何方面具有任何期望的依赖关系/对应关系。
例如,结合第一应用程序级活动促使的第一调用可以包括所述第一应用程序级活动唯一的第一格式或代码。类似地,结合第二应用程序级活动促使的第二调用可以包括所述第二应用程序级活动唯一的第二格式或代码。作为一种可能,调用312为实现这一操作,可以具体标识对应的应用程序级状态(例如,通过命名关联活动等)以及指示其特定状态(例如启动、停止、程度等)。即使如此,在一些可选的实施例中,调用312还可以标识所述应用程序。
表1示出了示例性调用312。
表1
Call_1:Start_Activity_1_of_Application_1
Call_2:Stop_Activity_1_of_Application_1
Call_3:Start_Activity_2_of_Application_1
Call_4:Stop_Activity_2_of_Application_1
Call_5:Start_Activity_3_of_Application_2
Call_6:Stop_Activity_3_of_Application_2
为响应接收到调用312,所述状态通知机制304可以将调用312转换为IPC,并以状态通知314的形式将所述IPC发送给能量管理器308。在一实施例中,这种转换可以涉及将调用312转换为状态通知314的任何过程,从而可以在结合软件框架的不同层(例如,图2的框架200)操作的不同进程之间启动通信。例如,在各种实施例中,可以转换调用312,以使状态通知314采用SOCKET、BINDER和/或FIRE IPC的形式。
为此,向能量管理器308发送状态通知314,以确定可用于降低硬件310的功耗的适当动作。例如,参见图1的操作104。为了实现这一点,将动作信号316发送至硬件310。如前所述,动作信号316可以采用任何形式(例如,硬件操作参数的设置等)。通过该设计,可以调整硬件310的操作,以适应促使调用312降低硬件310的能耗的应用程序级活动。例如,参见图1的操作106。
图4示出了一实施例提供的用于降低硬件能耗的状态通知机制/API方法400。可选地,所述方法400可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,所述方法400可以由图2的OS层206和/或API层208、或图3的状态通知机制304和/或API 306执行。然而,应理解,所述方法400可以在其它合适的环境中实现。
如图所示,每个操作402监控一个或多个应用程序(例如,图3的应用程序302)。在一实施例中,这可能涉及能够从所述应用程序接收调用。具体地,可以安装API(例如,图3的API 306)以接收由作为所述应用程序一部分安装(或加入所述应用程序)的代码促使的调用,以响应应用程序级状态的变化。通过这一操作,在决策404中确定是否接收到这样的调用。
如果在决策404中确定通过所述API接收到调用,则根据决策406确定所述应用程序是否作为后台进程运行。在本说明书中,如后台进程的执行是指正在运行所述应用程序的情况,但所述应用程序的功能并不一定是与所述应用程序的用户相关的输入焦点(或其它焦点)的主题(例如,应用程序不在所述前台运行)。在这种情况下,任何能量降低措施的启动都不一定是必要的(因此是有条件执行的,甚至是基于决策406的有条件确定的),因为后台过程很少是过度能消的来源。
因此,如果根据决策406,应用程序未在所述后台运行,则在操作408中将所述调用转换为IPC。出于即将变得明确的原因,在各种实施例中,所述调用可以显式或隐式地标识促使所述调用生成和发送的特定应用程序状态(例如,使用场景)。在这种情况下,操作408的转换可以使得该状态指示保持为其原始或转换形式,以便这些信息可以用于后续过程。
进一步地,在操作410中,将所述IPC发送给能量管理器(例如,图3中的能量管理器308),以支持选择合适的节能动作。为此,方法400使得来自应用程序层(例如,图2中的应用程序层210)的调用能够传送至较低层(例如,图2中的OS层206和驱动层204),以实现节能措施。
图5示出了一实施例提供的一种用于降低硬件能耗的能量管理器方法500。可选地,所述方法500可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,所述方法500可以由图2的驱动层204或图3的能量管理器308执行。然而,应理解,所述方法500可以在其它合适的环境中实现。
如图所示,每个操作502监控状态通知机制(例如,图3的状态通知机制304)。在一实施例中,这可以包括能够从所述状态通知机制接收IPC。通过该设计,在决策504中确定在能量管理器(例如,图3的能量管理器308)处是否接收到起始IPC。如前所述,所述启动IPC可以与由特定应用程序级活动的启动促使的启动API调用关联,使得所述活动启动构成应用程序级状态变化。
如果是,则在操作506中确定特定应用程序状态。这可以通过任何期望的方式实现。例如,所述IPC可以包括显式标识所述特定应用程序状态的命令、参数或数据,或者可以包括可用于确定相同特定应用程序状态的其它代码或密钥。基于这些信息,在决策508中确定所述特定状态。在一实施例中,所有可能的特定状态(能够产生调用)都可以在所述能量管理器的任何支持数据结构中进行考虑,从而可以启动合适的相应算法。此外,在未识别传入状态通知的情况下,可以有一个或多个默认算法被触发。
因此,如操作510-1,2,3,N所示,执行所述相应算法,从而可以采取特定节能动作。如前所述,每种算法和对应的节能动作可以涉及与处理器和/或其它相关硬件相关的电压水平、时钟频率和/或带宽的特定设置,其特定地适应特定的相应应用程序状态。例如,当应用程序用于向用户显示高质量的内容时,可以增强图形处理器的工作电压和/或时钟频率,并在此类内容显示停止时(以及例如随后发生其它非图形处理时)可以随时降低所述图形处理器的工作电压和/或时钟频率。在另一个可能的实施例中,当应用程序从存储器中加载长视频时,可以增加总线和/或存储器的带宽,并且当这样的加载完成后可以随后减小带宽。
在一些实施例中,所述节能动作的一个或多个可以与单个或多个硬件参数的幅度(例如,电压、频率、带宽等的幅度)关联变化。在其它实施例中,所述节能动作的一个或多个可以与正被设置的硬件参数的类型(例如,电压、频率、带宽等的类型)关联变化。在更多的实施例中,所述节能动作的一个或多个可以与属于所述关联设置的主题的底层硬件(例如,处理器、存储器、总线等)关联变化。在更多的实施例中,所述节能动作的一个或多个可以与上述任意期望的组合关联变化。在参考图6A的过程中,将阐述关于操作510-1,2,3,N的更多信息。
由于只有在所述关联的应用程序级活动持续存在的情况下才需要任何节能动作或者任何节能动作才有帮助,因此在决策512中,方法500可以能够监控停止IPC的能量通知机制,所述停止IPC指示作为根据决策504接收的起始IPC的主题的应用程序级活动的停止。在操作514中,在接收到这样的停止IPC后,由于操作510-1,2,3,N中的一个操作而进行的设置的任何改变被恢复(例如,恢复到其先前的设置)。因此,所述节能动作可以与驱动所述应用程序状态的对应应用程序级活动的发起和停止同步启动和停止。
图6A示出了一实施例提供的一种结合存在多个应用程序级活动的情况降低硬件能耗的方法600。可选地,所述方法600可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,所述方法600可以由图2的OS层206和/或驱动层204或图3的能量管理器308执行。进一步地,方法600可以在图5的操作510-1,2,3,N的上下文中执行。然而,应理解,所述方法600可以在其它合适的环境中实现。
方法600包括操作602,操作602可以与任何节能动作(例如,图5中的操作510-1,2,3,N)关联执行。如图6所示,操作602包括确定多个动作至少部分地同时执行。因此,操作602的目的是确保调节不同动作之间的任何冲突。例如,第一动作可以涉及将电压升高到第一值,而第二动作(同时发生,至少部分发生)可以涉及将所述电压升高到第二值。
应注意,在一些实施例中,存在多个冲突动作可引发自单个应用程序(即,相同的应用程序)中的状态变化(例如,来自所述应用程序的调用)。在其它实施例中,所述多个冲突动作可引发自相同硬件上运行的不同应用程序中的变化(例如,来自不同应用程序的调用)。
根据决策604可以确定这些情况,从而可以使用替代动作(例如,设置),其中所述替代动作可以适应每一个促使所述冲突动作的应用程序级活动。具体地,如图所示,如果根据决策604确定不同时执行所述多个动作,则可以将所述动作确定为操作608中的第一动作。进一步地,如果确定所述多个动作同时执行,则可以在操作606中确定所述动作为第二动作。在本说明书的上下文中,这种同时执行可以是全时长并发执行,或者仅仅是部分时长并发执行。
因此,方法600应用操作610中合适的设置。进一步地,如前面结合图5的操作512-514所提及的,可以进行这些设置,直到这些设置与所述对应的应用程序级活动的停止关联恢复。在一个可能的实施例中,当两个冲突动作均已启动且均未停止时(参见图5的决策504和决策512),所述替代设置(根据操作606)的使用可以仅限于重叠(时间上)。进一步地,操作606也可以取决于以某种方式冲突的多个识别的动作(参见操作604)。
图6B示出了一实施例提供的一种用于降低正在运行应用程序的硬件的能耗的系统650。可选地,所述系统650可以实现具有任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的任何一个或多个特征。然而,应理解,所述系统650可以在其它合适的环境中实现。
如图所示,提供了接口模块652形式的接口装置用于通过API接收来自应用程序的调用,其中,所述调用指示所述应用程序的状态(例如,参见图1的操作102)。在各种实施例中,所述接口模块652可以包括但不限于图3的API 306、至少一个处理器(将在后面描述)和控制相同处理器的任何软件,和/或能够实现上述功能的任何其它电路。
此外,还包括事件通知模块654形式的事件通知装置,所述事件通知模块654与所述接口模块652通信以基于所述调用确定用于降低正在运行所述应用程序的硬件的能耗的动作(例如,参见图1的操作104)。在各种实施例中,所述事件通知模块654可以包括但不限于图3的事件通知机制306、至少一个处理器(将在后面描述)和控制相同处理器的任何软件,和/或能够实现上述功能的任何其它电路。
继续参考图6B,能量管理是指以能量管理模块656的形式与事件通知模块654通信,以执行用于降低正在运行所述应用程序的硬件的能耗的动作(例如,参见图1的操作106)。在各种实施例中,所述能量管理模块656可以包括但不限于图3的能量管理器308、至少一个处理器(将在后面描述)和控制相同处理器的任何软件,和/或能够实现上述功能的任何其它电路。
图7是一实施例提供的网络架构700的示图。如图所示,提供了至少一个网络702。在各种实施例中,可以结合至少一个网络702中的任意一个或多个组件来实现在对任何先前图的描述期间提出的任意一个或多个组件/特征。
在本网络架构700的上下文中,所述网络702可以采取任何形式,包括但不限于电信网络、局域网(local area network,简称LAN)、无线网络、广域网(wide area network,简称WAN),例如互联网、对等网络、有线网络等。虽然仅示出了一个网络,但是应理解,可以提供两个或更多个类似或不同的网络702。
有多个设备耦合到所述网络702。例如,服务器712和计算机708可以耦合到所述网络702,用于通信目的。这种计算机708可以包括台式计算机、笔记本电脑和/或任何其它类型的逻辑。此外,各种其它设备可以耦合到所述网络702,包括个人数字助理(personaldigital assistant,简称PDA)设备710、移动电话设备706、电视704等。
图8是一实施例提供的示例性处理设备800的示图。可选地,所述处理设备800可以在图7中网络架构700的任何设备的上下文中实现。但是,应理解,所述处理设备800可以在任何期望环境中实现。
如图所示,所述处理设备800包括至少一个处理器802,所述处理器802与总线812连接。所述处理设备800还包括存储器804[例如,硬盘驱动器、固态驱动器、随机存取存储器(random access memory,简称RAM)等。],所述存储器804与所述总线812耦合。所述存储器804可以包括一个或多个存储器组件,甚至还可以包括不同类型的存储器。此外,还包括通信接口808(例如,本地/远程网络接口、内存访问接口等)和输入/输出(input/output,简称I/O)接口810(例如显示器、扬声器、麦克风、触摸屏、触摸板、鼠标接口等)。
所述处理设备800也可以包括辅助存储器806。所述辅助存储器806耦合到所述总线812和/或耦合到所述处理设备800的其它组件。所述辅助存储器806可以包括例如硬盘驱动器和/或可移动存储驱动器,比如软盘驱动器、磁带驱动器和光盘驱动器等。所述移动存储驱动器以众所周知的方式从可移动存储单元读取和/或向可移动存储单元写入。
就此而言,计算机程序或计算机控制逻辑算法可以存储于所述存储器804、所述辅助存储器806和/或任何其它存储器。这种计算机程序执行时使所述处理设备800能够执行各种功能(例如,如上所述)。所述存储器804、所述辅助存储器806和/或任何其它存储器包括非瞬时性计算机可读介质。
在一实施例中,所述至少一个处理器802执行所述存储器804或所述辅助存储器806中的指令,以通过API接收来自应用程序的调用。这种调用指示所述应用程序的状态。此外,还基于所述调用确定动作。所述动作用于降低正在运行所述应用程序的硬件的能耗。所述至少一个处理器802还执行所述指令以继续执行所述降低正在运行所述应用程序的硬件的能耗的动作。
在一些实施例中,所述调用可以通过标识所述应用程序的状态来指示所述应用程序的状态。
在一些实施例中,所述应用程序的状态可以指示应用程序活动的启动。
在一些实施例中,所述应用程序的状态可以指示应用程序活动的停止。
在一些实施例中,所述状态可以对应于包括以下各项的应用程序活动:屏幕滚动活动、网页加载活动、视频播放活动、视频录制活动、游戏活动、音乐播放活动和/或全球定位系统活动。
在一些实施例中,所述动作可以在位于所述应用程序驻留的应用程序层之下的层处确定。可选地,所述动作在操作系统层和/或驱动层确定。
在一些实施例中,可以将所述调用转换为进程间通信以发送给能量管理器确定所述动作并执行所述动作。
在一些实施例中,所述应用程序可以包括用于发送所述调用以响应所述状态改变的附加代码。
在一些实施例中,所述动作由以下步骤确定:确定是否多个动作至少部分地同时执行;如果确定所述多个动作不是至少部分地同时执行,则确定所述动作为第一动作;如果确定所述多个动作至少部分地同时执行,则确定所述动作为第二动作。可选地,可以基于来自同一应用程序的不同调用确定所述多个动作。或者,可选地,可以基于来自不同应用程序的不同调用来确定所述多个动作。
在一些实施例中,可以确定所述应用程序是否作为后台进程运行,并且所述动作基于所述确定所述应用程序是否作为所述后台进程运行而有条件地执行。
在一些实施例中,所述动作可以包括设置运行时属性,包括:与中央处理器、图形处理器、存储器和/或总线相关的电压、频率和/或带宽。
应注意,在一个方面中,此处描述的技术在存储在计算机可读介质中的可执行指令中体现,以供指令执行机器、装置或设备使用或与其结合使用,例如,基于计算机的或包括处理器的机器、装置或设备。本领域技术人员将认识到,对于一些实施例,包括其它类型的计算机可读介质,可存储计算机可访问的数据,比如磁带盒、闪存卡、数字视频光盘、伯努利盒、随机存取存储器(random access memory,简称RAM)和只读存储器(read-onlymemory,简称ROM)等。
如这里所使用的,“计算机可读介质”包括用于存储计算机程序的可执行指令的任何合适介质中的一个或多个,使得指令执行机器、系统、装置或设备可以读取(或取出)来自计算机可读介质的指令并执行用于执行所述方法的指令。合适的存储格式包含电子、磁性、光和电磁格式中的一个或多个。常规的示例性计算机可读介质的非穷举清单包括:诸如便携式计算机磁盘、RAM、ROM、可擦除可编程只读存储器(erasable programmable read onlymemory,简称EPROM,或闪存)以及光存储设备,其中包括便携式光盘(compact disc,简称CD)、便携式数字视频光盘(digital video disc,简称DVD)、高清晰度DVD(highdefinition digital video disc,简称HD-DVD)和蓝光光碟等。
应理解,所描述的图中示出的组件的布置是示例性的,并且可能有其它布置。还应理解,由权利要求书界定的、下文描述的并且在各种框图中所说明的各种系统组件表示根据本文中所公开的主题配置的一些系统中的逻辑组件。
例如,这些系统组件中的一个或多个可以整体或部分地通过所描述的图中示出的布置中示出的至少部分组件实现。另外,尽管这些组件中的至少一个至少部分地实现于电子硬件组件并因此构成机器,但是其它组件可以实现于软件,当包含于执行环境中时所述组件构成机器、硬件或软件和硬件的组合。
更具体地,由权利要求书界定的至少一个组件至少部分实现于电子硬件组件,例如指令执行机器(例如,基于处理器的或包含处理器的机器),和/或实现于专用电路或电路系统(例如,互连以执行专用功能的离散逻辑门)。其它组件可以实现于软件、硬件或软件和硬件的组合中。此外,可以组合这些其它组件中的一些或全部组件,可以完全省略一些组件并且可以添加其它组件,同时仍实现本文中描述的功能。因此,本文中描述的主题可以许多不同变化形式体现,且所有此类变化形式涵盖在权利要求书的范围内。
在以上描述中,除非另外指明,否则参考动作和由一个或多个设备执行的操作的符号表示来描述主题。因而,应理解,有时被称为计算机执行动作和操作的此类动作和操作包含构造形式的数据处理器的操作。这种操作对数据进行变换或将该数据保持在计算机的内存系统中各个位置,以本领域技术人员容易理解的方式重新配置或改变设备的操作。数据作为数据结构保存在内存的物理位置处,数据结构具有由数据格式限定的特定性质。然而,虽然在前文上下文中描述了主题,但这并不表示对所述主题的限制,因为所属领域的技术人员将了解,下文中描述的各种动作和操作也可以实施于硬件中。
为了促进对本文中描述的主题的理解,根据动作顺序描述许多方面。由权利要求限定的这些方面中的至少一个方面由电子硬件组件执行。例如,将认识到,可通过专用电路或电路系统,通过正由一个或多个处理器执行的程序指令或通过这两者的组合执行各个动作。本文中对任何动作顺序的描述并不意图暗示必须遵循用于执行此顺序而描述的特定次序。本文所描述的所有方法可以以任何适当的次序来执行,除非本文中另有说明或上下文另有清楚否定。
在描述主题(特别是在下面的权利要求的上下文中)中使用术语“一”,“一个”和“所述”以及类似的指示物将被解释为涵盖单数和复数,除非本文另有说明或与上下文明显矛盾。在此引证数值的范围仅旨在用作单独地提及每个单独的数值落在所述范围内描述的方法,除非在此另有说明,并且每个单独的数值并入到本说明书中就像它被单独地在此引证一样。此外,上述描述仅出于说明的目的,而不是出于限制的目的,寻求保护的范围由附属权利要求及其任何等效物来限定。本文提供的任何和所有示例或示例性语言(例如,“比如”)的使用仅旨在更好地说明主题,并且不会对主题的范围提出限制,除非另有声明。使用术语“基于”和其它类似短语指示在附属权利要求和书面描述中产生结果的条件,并不旨在排除产生所述结果的其它条件。本说明书中的任何语言都不应理解为指示实践本实施例所必需的任何非声明的要素。
非瞬时性计算机可读介质包括所有类型的计算机可读介质,包括磁存储介质、光存储介质和固态存储介质,并且具体不包括信号。应理解,软件可以安装在所述设备中并随所述设备一同销售。或者,可以获取软件并加载到设备中,包括通过光盘介质或以网络或分发系统的任何方式获取软件,例如,包括从软件开发者所有的服务器或从非软件开发者所有但为其所用的服务器获取软件。例如,该软件可以存储在服务器上以便通过因特网分发。
本文中描述的实施例包含发明人实施所要求的主题已知的一个或多个模式。应理解,所属领域的一般技术人员读了上述描述将明显了解上述实施例的变化形式。本发明人期望熟练的业内人士适当时采用此类变化,并且本发明人想以不同于本文中特定描述的其它方式来实践本发明所主张的主题。因此,所主张的主题包含可适用法律所准许的在附属权利要求中叙述的主题的所有变化和等效物。此外,除非本文另外指示或以其它方式明确指出与内容相矛盾,否则本发明涵盖上述要素以其所有可能的变化形式的任何组合。

Claims (22)

1.一种处理设备,其特征在于,包括:
非瞬时性存储器,用于存储指令;
一个或多个处理器,其与所述非瞬时性存储器通信,其中,所述一个或多个处理器执行以下所述指令:
通过应用程序接口接收来自应用程序的调用,所述调用指示所述应用程序的状态;
基于所述调用确定降低正在运行所述应用程序的硬件的能耗的动作;
执行降低正在运行所述应用程序的所述硬件的所述能耗的所述动作;所述动作由以下步骤确定:确定是否多个动作至少部分地同时执行,以调节不同动作之间的冲突;如果确定所述多个动作不是至少部分地同时执行,则确定所述动作为第一动作;如果确定所述多个动作至少部分地同时执行,则确定所述动作为第二动作;所述多个动作基于来自同一应用程序的不同调用确定。
2.根据权利要求1所述的处理设备,其特征在于,所述调用通过标识所述应用程序的所述状态指示所述应用程序的所述状态。
3.根据权利要求1所述的处理设备,其特征在于,所述应用程序的所述状态指示应用程序活动的启动。
4.根据权利要求1所述的处理设备,其特征在于,所述应用程序的所述状态指示应用程序活动的停止。
5.根据权利要求1所述的处理设备,其特征在于,所述状态对应于包括以下至少一项的应用程序活动:屏幕滚动活动、网页加载活动、视频播放活动、视频录制活动、游戏活动、音乐播放活动或全球定位系统活动。
6.根据权利要求1所述的处理设备,其特征在于,所述动作在位于所述应用程序驻留的应用程序层之下的层处确定。
7.根据权利要求1所述的处理设备,其特征在于,所述动作在操作系统层和驱动层中的至少一项来确定。
8.根据权利要求1所述的处理设备,其特征在于,所述一个或多个处理器执行以下所述指令:将所述调用转换为进程间通信,并将所述进程间通信发送给能量管理器以确定所述动作并执行所述动作。
9.根据权利要求1所述的处理设备,其特征在于,所述应用程序包括用于发送所述调用以响应所述状态改变的附加代码。
10.根据权利要求1所述的处理设备,其特征在于,所述一个或多个处理器执行以下所述指令:
确定所述应用程序是否作为后台进程运行,其中,所述动作基于所述确定所述应用程序是否作为所述后台进程运行而有条件地执行。
11.根据权利要求1所述的处理设备,其特征在于,所述动作包括设置运行时属性,所述运行时属性包括与中央处理器、图形处理器、存储器和总线中的至少一个相关的电压、频率或带宽中的至少一个。
12.一种计算机实现的方法,其特征在于,包括:
通过应用程序接口接收来自应用程序的调用,所述调用指示所述应用程序的状态;
基于所述调用确定降低正在运行所述应用程序的硬件的能耗的动作;
执行降低所述正在运行应用程序的所述硬件的所述 能耗的所述动作;所述动作由以下步骤确定:确定是否多个动作至少部分地同时执行,以调节不同动作之间的冲突;如果确定所述多个动作不是至少部分地同时执行,则确定所述动作为第一动作;如果确定所述多个动作至少部分地同时执行,则确定所述动作为第二动作,所述多个动作基于来自同一应用程序的不同调用确定。
13.根据权利要求12所述的方法,其特征在于,所述调用通过标识所述应用程序的所述状态指示所述应用程序的所述状态。
14.根据权利要求12所述的方法,其特征在于,所述应用程序的所述状态指示应用程序活动的启动。
15.根据权利要求12所述的方法,其特征在于,所述应用程序的所述状态指示应用程序活动的停止。
16.根据权利要求12所述的方法,其特征在于,所述状态对应于包括以下至少一项的应用程序活动:屏幕滚动活动、网页加载活动、视频播放活动、视频录制活动、游戏活动、音乐播放活动或全球定位系统活动。
17.根据权利要求12所述的方法,其特征在于,所述动作在位于所述应用程序驻留的应用程序层之下的层处确定。
18.根据权利要求12所述的方法,其特征在于,所述动作在操作系统层和驱动层中的至少一项来确定。
19.根据权利要求12所述的方法,其特征在于,还包括:
将所述调用转换为进程间通信;
将所述进程间通信发送给能量管理器以确定所述动作并执行所述动作。
20.根据权利要求12所述的方法,其特征在于,所述应用程序包括用于发送所述调用以响应所述状态改变的附加代码。
21.根据权利要求12所述的方法,其特征在于,还包括:
确定所述应用程序是否作为后台进程运行,其中,所述动作基于所述确定所述应用程序是否作为所述后台进程运行而有条件地执行。
22.一种存储计算机指令的非瞬时性计算机可读介质,其特征在于,所述计算机指令在由一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
通过应用程序接口接收来自应用程序的调用,所述调用指示所述应用程序的状态;
基于所述调用确定降低正在运行所述应用程序的硬件的能耗的动作;
执行降低正在运行所述应用程序所述硬件的所述能耗的所述动作;所述动作由以下步骤确定:
确定是否多个动作至少部分地同时执行,以调节不同动作之间的冲突;如果确定所述多个动作不是至少部分地同时执行,则确定所述动作为第一动作;如果确定所述多个动作至少部分地同时执行,则确定所述动作为第二动作,所述多个动作基于来自同一应用程序的不同调用确定。
CN201880015171.8A 2017-03-02 2018-02-27 用于基于应用程序状态降低硬件能耗的装置和方法 Active CN110383241B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/448,396 US10732703B2 (en) 2017-03-02 2017-03-02 Apparatus and method for reducing an energy consumption of hardware based on an application state
US15/448,396 2017-03-02
PCT/CN2018/077381 WO2018157785A1 (en) 2017-03-02 2018-02-27 Apparatus and method for reducing energy consumption of hardware based on application state

Publications (2)

Publication Number Publication Date
CN110383241A CN110383241A (zh) 2019-10-25
CN110383241B true CN110383241B (zh) 2021-12-28

Family

ID=63355357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880015171.8A Active CN110383241B (zh) 2017-03-02 2018-02-27 用于基于应用程序状态降低硬件能耗的装置和方法

Country Status (4)

Country Link
US (1) US10732703B2 (zh)
EP (2) EP4246324A3 (zh)
CN (1) CN110383241B (zh)
WO (1) WO2018157785A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109474751A (zh) * 2018-12-26 2019-03-15 深圳先进技术研究院 移动终端的能耗管理方法、系统及移动终端
CN113918246A (zh) * 2021-10-27 2022-01-11 Oppo广东移动通信有限公司 功能控制方法、功能控制装置、存储介质与电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1854984A (zh) * 2005-04-26 2006-11-01 乐金电子(昆山)电脑有限公司 运行程序的各个设备节电模式控制设备及其方法
CN103365392A (zh) * 2012-03-26 2013-10-23 鸿富锦精密工业(深圳)有限公司 内存管理系统及方法
CN104011703A (zh) * 2011-12-22 2014-08-27 英特尔公司 指定应用线程性能状态的指令
CN104460935A (zh) * 2013-09-18 2015-03-25 联想(北京)有限公司 一种信息处理方法及电子设备
CN104853418A (zh) * 2015-02-11 2015-08-19 数据通信科学技术研究所 低功耗终端和低功耗控制方法
WO2016165062A1 (zh) * 2015-04-14 2016-10-20 华为技术有限公司 终端的控制方法、装置及终端

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100382232B1 (en) 2002-05-31 2003-05-09 Palm Palm Tech Mobile terminal having enhanced power managing function and power managing method thereof
US7272730B1 (en) 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
CN101201689B (zh) 2006-12-13 2010-04-14 上海晨兴电子科技有限公司 一种多任务系统中自动管理cpu功耗的方法
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
EP2006784A1 (en) 2007-06-22 2008-12-24 Interuniversitair Microelektronica Centrum vzw Methods for characterization of electronic circuits under process variability effects
CN100517181C (zh) 2007-08-16 2009-07-22 中国科学院计算技术研究所 一种处理器及其降频装置和方法
JP5181620B2 (ja) * 2007-10-26 2013-04-10 ソニー株式会社 記録装置、ディスク切替方法およびコンピュータプログラム
US8386808B2 (en) * 2008-12-22 2013-02-26 Intel Corporation Adaptive power budget allocation between multiple components in a computing system
US8621494B2 (en) * 2011-09-12 2013-12-31 Microsoft Corporation Managing processes within suspend states and execution states
US9423847B2 (en) * 2011-12-20 2016-08-23 Advanced Micro Devices, Inc. Method and apparatus for transitioning a system to an active disconnect state
JP5942416B2 (ja) 2011-12-21 2016-06-29 富士通株式会社 情報処理装置の制御プログラム、制御方法及び情報処理装置
US8904211B2 (en) 2012-04-27 2014-12-02 Qualcomm Innovation Center, Inc. Frequency reduction of mobile device cores based on application processing requirements
US20130316696A1 (en) * 2012-05-25 2013-11-28 Carnegie Mellon University Energy Efficient and Accuracy Aware Mobile Services
US9411396B2 (en) * 2012-12-21 2016-08-09 Apple Inc. Adaptive data collection practices in a multi-processor device
US9250683B2 (en) * 2013-03-14 2016-02-02 Nvidia Corporation System, method, and computer program product for allowing a head to enter a reduced power mode
CN103475790B (zh) 2013-09-06 2016-03-30 中国科学院计算技术研究所 一种智能移动终端功耗管理方法
US20160116954A1 (en) * 2014-10-28 2016-04-28 Linkedln Corporation Dynamic adjustment of cpu operating frequency

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1854984A (zh) * 2005-04-26 2006-11-01 乐金电子(昆山)电脑有限公司 运行程序的各个设备节电模式控制设备及其方法
CN104011703A (zh) * 2011-12-22 2014-08-27 英特尔公司 指定应用线程性能状态的指令
CN103365392A (zh) * 2012-03-26 2013-10-23 鸿富锦精密工业(深圳)有限公司 内存管理系统及方法
CN104460935A (zh) * 2013-09-18 2015-03-25 联想(北京)有限公司 一种信息处理方法及电子设备
CN104853418A (zh) * 2015-02-11 2015-08-19 数据通信科学技术研究所 低功耗终端和低功耗控制方法
WO2016165062A1 (zh) * 2015-04-14 2016-10-20 华为技术有限公司 终端的控制方法、装置及终端

Also Published As

Publication number Publication date
EP3586225A1 (en) 2020-01-01
US10732703B2 (en) 2020-08-04
EP3586225B1 (en) 2023-10-04
WO2018157785A1 (en) 2018-09-07
US20180253139A1 (en) 2018-09-06
EP4246324A3 (en) 2023-12-20
CN110383241A (zh) 2019-10-25
EP4246324A2 (en) 2023-09-20
EP3586225A4 (en) 2020-03-18

Similar Documents

Publication Publication Date Title
US20140047256A1 (en) Terminal device and method for operating the same
JP6412162B2 (ja) グラフィックスフレーム処理において電力消費を低減させるためのcpu/gpu dcvs相互最適化
US8564599B2 (en) Policy-based switching between graphics-processing units
US8621253B1 (en) Processor boost based on user interface demand
US9021243B2 (en) Method for increasing free memory amount of main memory and computer therefore
WO2009081530A1 (ja) 仮想計算機システム、ポリシ強制システム、ポリシ強制方法及び仮想計算機制御用プログラム
US8914623B2 (en) Utilization of the screen image information of a primary environment for reproduction and user-interaction in a secondary environment
US10628203B1 (en) Facilitating hibernation mode transitions for virtual machines
US10564829B2 (en) Optimizing window resize actions for remoted applications
US11768668B2 (en) Methods, apparatuses and computer program products for improving productivity for building applications
CN110383241B (zh) 用于基于应用程序状态降低硬件能耗的装置和方法
JP2013222321A (ja) メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラム
WO2016051243A1 (en) Data processing method
US20140250251A1 (en) Automatically and transparently preserving testing state across sessions
TWI768478B (zh) 適應性調用外部硬體資源的方法
EP3646162B1 (en) System and method for dynamic buffer sizing in a computing device
KR20100125672A (ko) 자바 어플리케이션 실행 방법 및 장치
CN118113373A (zh) 进程管理方法、装置、设备及介质
CN115858124A (zh) 一种基板管理系统控制方法、装置、介质

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