CN103270471B - 通过调度资源集转变来使便携式计算设备的处理器应用状态之间的资源等待时间最小化 - Google Patents
通过调度资源集转变来使便携式计算设备的处理器应用状态之间的资源等待时间最小化 Download PDFInfo
- Publication number
- CN103270471B CN103270471B CN201180061964.1A CN201180061964A CN103270471B CN 103270471 B CN103270471 B CN 103270471B CN 201180061964 A CN201180061964 A CN 201180061964A CN 103270471 B CN103270471 B CN 103270471B
- Authority
- CN
- China
- Prior art keywords
- resource
- processor
- state
- application state
- state set
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
在存储器中维护与应用状态相对应的资源状态集。可以发出对正在与第一资源状态集相对应的第一应用状态中操作的处理器转变成与第二资源状态集相对应的第二应用状态的请求。基于完成转变的估算处理时间量来调度起动将资源转变成第二资源状态集中所指示的状态的开始时间。起动一过程,通过该过程将资源状态从第一资源状态集所指示的状态切换成第二资源状态集所指示的状态。将该过程调度成在允许该过程能恰好在使资源状态在处理器进入第二应用状态之际对处理器立即可用时及时完成的时间起动,这有助于使资源等待时间的不良影响最小化。
Description
优先权和相关申请声明
本申请要求2010年12月21日提交的题为“METHODANDSYSTEMFORRAPIDENTRYINTOANDFORRAPIDEXITINGFROMSLEEPSTATESFORPROCESSORSOFAPORTABLECOMPUTINGDEVICE(用于便携式计算设备的处理器快速进入和快速退出休眠状态的方法和系统)”、序列号为61/425,677的美国临时专利申请的申请日的权益、以及2011年10月7日提交的题为“MINIMIZINGRESOURCELATENCYBETWEENPROCESSORAPPLICATIONSTATESBYSCHEDULINGRESOURCESETTRANSITIONS(通过调度资源集转变来使处理器应用状态之间的资源等待时间最小化)”、序列号为61/544,927的美国临时专利申请的申请日的权益,上述申请的说明书通过应用整体结合于此。本申请涉及______________提交的题为“MINIMIZINGRESOURCELATENCYBETWEENPROCESSORAPPLICATIONSTATESINAPORTABLECOMPUTINGDEVICEBYUSINGANEXT-ACTIVESTATESET(使用下一活跃状态集来使便携式计算设备中的处理器应用状态之间的资源等待时间最小化)”的序列号为______________的共同待审的美国专利申请,并且本申请涉及2011年3月22日提交的题为“METHODANDSYSTEMFORRAPIDENTRYINTOANDFORRAPIDEXITINGFROMSLEEPSTATESFORPROCESSORSOFAPORTABLECOMPUTINGDEVICE(用于便携式计算设备的处理器快速进入和快速退出休眠状态的方法和系统)”的序列号为13/069,071的共同待审的美国专利申请,上述两个申请已被转让给本申请的受让人。
相关技术描述
便携式计算设备(“PCD”)正成为人们在个人和专业层面上的必需品。这些设备可包括蜂窝电话、便携式数字助理(“PDA”)、便携式游戏控制台、掌上型计算机、和其他便携式电子设备。
PCD通常具有复杂且紧致的电子封装,该电子封装一般由包括中央处理单元、数字信号处理器及类似物等的多个处理单元组成。该硬件中的大部分可以是片上系统(“SOC”)设计的一部分,如本领域普通技术人员所能理解的。
常规PCD在不同SOC的各个处理器试图进入低功率状态时常常经历显著的滞后时间。其中处理器或类似的子系统不在执行任何应用程序或以其他方式在实效上空闲的低功率状态也被称为休眠状态,如本领域普通技术人员所能理解的。
常规处理器面临的一个问题是,若干通信常常在软件中发生以便处理器进入休眠状态。这一问题由于某些资源是其状态需要在多个SOC子系统之间被协调的共享资源这一事实而被进一步复杂化。
在SOC的给定子系统内,本地资源的管理常常是容易的,并且可以从各个操作系统的空闲上下文来完成。然而,为管理共享资源的关闭,状态常常必须要与该资源的控制器进行协调。常规的解决方案已经通过在子系统被准许进入休眠状态之前使用软件中的同步握手来避开这一关闭难题。这种办法出于若干原因是不利的:软件握手是较慢的。软件握手易于出现各种类型的延迟,尤其是中断服务和上下文切换问题。
软件握手使电能节约延迟。因为握手是在软件中发生,所以指令处理核需要保持上电直到完整的握手完成。处理器核是较大且复杂的,从而这对于电能节约来说是要承担的相当大的惩罚。
从而,本领域需要一种用于允许PCD的处理器在无软件握手的情况下进入休眠状态的方法和系统。
概述
描述了一种用于管理便携式计算设备的诸如休眠状态和活跃状态之类的应用状态的方法和系统。在存储器中维护与应用状态相对应的资源状态集。可以向正在与第一资源状态集相对应的第一应用状态中操作的处理器发出要从第一应用状态转变为与第二资源状态集相对应的第二应用状态的请求。起动将资源转变成第二资源状态集中所指示的状态的开始时间是基于完成资源转变的估算处理时间量来调度的。在调度的开始时间,起动一过程,通过该过程将一个或多个资源的状态从第一资源状态集所指示的状态切换成第二资源状态集所指示的状态。将转变资源状态的过程调度成在允许该过程能恰好在使资源状态在处理器进入第二应用状态之际对处理器立即可用时及时完成的时间起动,这有助于使资源等待时间的不良影响最小化。
附图简述
在附图中,除非另行指出,否则相似的附图标记贯穿各视图指示相似的部分。对于具有字母符号标记的附图标记(诸如,“102A”或“102B”),该字母符号标记可区分同一附图中给出的两个相似部件或元素。在意图使一个附图标记涵盖所有附图中具有相同附图标记的所有部件时,可略去附图标记的字母符号标记。
图1是示出便携式计算设备(PCD)的一实施例的功能框图;
图2是示出控制器、系统电源管理器、主处理器、低级驱动器、共享资源和本地资源之间的关系的功能框图;
图3是示出关于控制器和触发集的细节的功能框图;
图4示出处理器的示例性活跃-休眠触发集;
图5是示出一用于管理触发集以及以其他方式将处理器从诸如苏醒状态的第一应用状态转变成诸如休眠状态的第二应用状态的方法的逻辑流程图;
图6是示出一用于管理触发集以及以其他方式将处理器从诸如休眠状态的第二应用状态转变成诸如苏醒状态的第三应用状态的方法的逻辑流程图;
图7是控制器缓冲存储器的功能框图;
图8是示出一用于将处理器从诸如苏醒状态的第一应用状态转变成诸如休眠状态的第二应用状态的替换方法的逻辑流程图;
图9是替换性控制器缓冲存储器的功能框图;
图10是示出一用于将处理器从诸如苏醒状态的第一应用状态转变成诸如休眠状态的第二应用状态的另一替换方法的逻辑流程图;
图11是指示与两个请求相关联的处理之间的冲突状况的时间线;
图12是指示一用于缓解图11的冲突状况的示例性方法的结果的时间线;
图13是示出一用于将处理器从休眠应用状态转变成苏醒应用状态(包括调度改变资源状态的过程)的方法的与图6类似的逻辑流程图。
图14是示出一用于缓解在调度改变资源状态的过程时的冲突状况的方法的逻辑流程图。
图15是指示与经调度的请求和非经调度的请求相关联的处理之间的冲突状况的时间线;
图16是指示一用于缓解图15的冲突状况的示例性方法的结果的时间线;
图17是指示一用于缓解图15的冲突状况的第二示例性方法的结果的时间线;
图18是指示一种用于缓解图16的冲突状况的另一示例性方法的结果的时间线;
图19是示出与转变到一资源状态集相关联的处理或工作的各部分的时间线;
图20是指示当实际工作的完成快于预期时电能被浪费的状况的时间线;
图21是指示一用于缓解图20的电能被浪费的状况的示例性方法的结果的时间线;
图22是示出该工作的各部分的与图17类似的时间线;以及
图23是示出一用于调度与处置多个对资源状态集转变的请求相关联的过程的方法的逻辑流程图。
具体描述
措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
在本描述中,术语“应用”还可包括具有诸如:对象代码、脚本、字节码、标记语言文件和补丁之类的可执行内容的文件。此外,本文中引述的“应用”还可包括本质上不可执行的文件,诸如需要被打开的文档或需要被访问的其他数据文件。
术语“内容”还可包括具有诸如:对象代码、脚本、字节码、标记语言文件和补丁之类的可执行内容的文件。此外,本文中引述的“内容”也可包括本质上不可执行的文件,诸如可能需要打开的文档或需要访问的其他数据文件。
如在本描述中所使用的,术语“组件”、“数据库”、“模块”、“系统”和类似术语旨在引述计算机相关实体,任其是硬件、固件、硬件与软件的组合、软件,还是执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为解说,在计算设备上运行的应用和该计算设备两者皆可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可局部化在一台计算机上和/或分布在两台或更多台计算机之间。此外,这些组件可以从其上存储着各种数据结构的各种计算机可读介质来执行。各组件可借助于本地和/或远程进程来通信,诸如根据具有一个或多个数据分组的信号(例如,来自借助于该信号与本地系统、分布式系统中的另一组件交互、和/或跨诸如因特网等网络与其它系统交互的一个组件的数据)。
在本描述中,术语“通信设备”、“无线设备”、“无线电话”、“无线通信设备”和“无线手持机”被可互换地使用。随着第三代(“3G”)和第四代(“4G”)无线技术的到来,更大的带宽可用性已经使得能够实现具有更多样化的无线能力的更便携的计算设备。
在本说明书中,术语“便携式计算设备”(“PCD”)用于描述在诸如电池等有限容量的电源上进行操作的任何设备。尽管电池运行的PCD已经被使用了数十年,但可充电电池方面的技术进步结合第三代(“3G”)和第四代(“4G”)无线技术的到来,已经使得能够实现具有多种能力的多种PCD。因此,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导航设备、智能本或阅读器、媒体播放器、上述设备的组合、以及具有无线连接的膝上型计算机等。
图1:用于使处理器应用状态之间的资源等待时间最小化的PCD100的元件
参考图1,该附图是无线电话形式的PCD100的示例性非限制性方面的功能框图,用来实现用于管理PCD100内的处理器110、126的快速休眠状态的方法和系统。如图所示,PCD100包括片上系统102,该片上系统102包括多核第一中央处理单元(“CPU”)110A、单核类型的第二CPU110B、以及模拟信号处理器126。
这三个处理器110A、110B和126可耦合在一起。第一CPU110A可包括第零核222、第一核224、以及第N核230,如本领域普通技术人员所能理解的。在一替换实施例中,不是使用两个CPU110,而是也可代之以采用两个数字信号处理器(“DSP”),如本领域普通技术人员所能理解的。在又一示例性实施例中,可以组合使用上述的任一种,如本领域普通技术人员所能理解的。
图1包括一个或多个控制器模块101。对于本说明书的剩余部分,(诸)控制器模块101将被单数而非复数地引述为控制器101。本领域普通技术人员将认识到,控制器101可被划分成各个部分,并且由不同处理器110、126执行而不背离本发明。替换地,控制器101可被组织成单个元件,并且由单个处理器110或126执行。
图1还示出系统电源管理器157。系统电源管理器(“SPM”)157耦合至CPU110A和控制器101。SPM157一般包括硬件,诸如处理器。然而,可对SPM157采用软件和/或固件,如本领域普通技术人员所能理解的。SPM157可负责监控处理器110、126以及和电源轨的状态。SPM157可检测处理器110、126何时即将进入休眠状态或何时即将离开休眠状态。SPM157可将处理器110、126的这些状态传达给控制器101。更一般地,SPM157可检测处理器110、126何时即将从一个应用状态转变成另一应用状态。处理器110、126的应用状态可不仅包括其中处理器110、126在实效上空闲或未在执行任何应用程序的休眠状态、以及其中处理器110、126正在执行一个或多个应用程序的苏醒或活跃状态,还可包括或替换地可包括以下各项中的任何状态:其中处理器110、126正在以高于或低于其在另一状态中操作的速度来操作的状态;由正在执行一应用程序的处理器110、126定义的状态,所述状态与由正在执行另一应用程序的处理器110、126定义的另一状态不同;以及由并发地执行一定数目个应用程序的处理器110、126定义的状态,所述状态与由并发地执行不同数目个应用程序的处理器110、126定义的另一状态。
控制器101可包括CPU110执行的软件。然而,控制器101还可由硬件和/或固件形成,如本领域普通技术人员所能理解的。
一般地,控制器101可负责促进处理器110、126快速进入休眠状态和快速退出休眠状态。控制器101可包括一个或多个表,这些表包括资源集和触发集,如下文将参考图3更详细地描述的。控制器101还可有其自己的中断控制器(未示出)以用在PCD100中的所有其他硬件元件都处于低功率状态并且不运作的时候。
控制器101还管理一个或多个主处理器110、126之间的资源请求。资源请求可由主处理器110发出以向资源105请求动作或功能(见图2)。
资源105在下文被更一般地描述,但其可例如包括时钟和支持由一个或多个主处理器110、126执行的软件应用的任务、命令和特征的其他低级处理器。控制器101可被设计成防止多个主处理器110、126之间的资源请求冲突。
图1示出PCD100可包括存储器112。在CPU110上运行的控制器101可访问存储器112以促进快速休眠状态以及促进快速退出休眠状态,如下文更详细地描述的。
在一特定方面,本文描述的方法步骤中的一个或多个可由存储在存储器112中的、形成控制器101的可执行指令和参数来实现。形成控制器101的这些指令可由CPU110、模拟信号处理器126、或另一处理器执行。此外,处理器110、126、存储器112、存储于其中的指令、或者其组合可用作用于执行本文中所描述的一个或多个方法步骤的装置。
图1:PCD110的其他元件
如图1中所示,显示控制器128和触摸屏控制器130耦合至数字信号处理器110。外置于片上系统102的触摸屏显示器132被耦合至显示控制器128和触摸屏控制器130。
图1是示出包括视频编码器/解码器(“编解码器”)134(例如,逐行倒相制(“PAL”)编码器、顺序传送彩色与记忆制(“SECAM”)编码器、国家电视制式委员会制式(“NTSC”)编码器、或任何其他类型的视频编码器134)的便携式计算设备(PCD)的一实施例的示意性图示。视频编解码器134耦合至多核中央处理单元(“CPU”)110。视频放大器136耦合至视频编码器134和触摸屏显示器132。视频端口138被耦合至视频放大器136。如图1所描绘的,通用串行总线(“USB”)控制器140耦合至CPU110。而且,USB端口142被耦合至USB控制器140。订户身份模块(SIM)卡146也可耦合至CPU110。此外,如图1所示,数码相机148可耦合至CPU110。在示例性方面,数码相机148是电荷耦合器件(“CCD”)相机或互补金属氧化物半导体(“CMOS”)相机。
如图1中进一步解说的,立体声音频编解码器150可被耦合至模拟信号处理器126。此外,音频放大器152可被耦合至立体声音频编解码器150。在示例性方面中,第一立体声扬声器154和第二立体声扬声器156被耦合至音频放大器152。图1示出了话筒放大器158也可被耦合至立体声音频编解码器150。另外,话筒160可被耦合至话筒放大器158。在特定方面中,调频(“FM”)无线电调谐器162可被耦合至立体声音频编解码器150。而且,FM天线164被耦合至FM无线电调谐器162。此外,立体声头戴式受话机166可被耦合至立体声音频编解码器150。
图1进一步指示了射频(“RF”)收发机168可被耦合至模拟信号处理器126。RF开关170可被耦合至RF收发机168和RF天线172。如图1中所示,小键盘174可被耦合至模拟信号处理器126。而且,带话筒的单声道头戴式送受话器176可被耦合至模拟信号处理器126。此外,振动器设备178可被耦合至模拟信号处理器126。图1还示出了电源180(例如电池)被耦合至片上系统102。在一特定方面,电源180包括可再充电DC电池或从连接至AC电源的交流(“AC”)到DC变换器得到的DC电源。
如图1所描绘的,触摸屏显示器132、视频端口138、USB端口142、相机148、第一立体声扬声器154、第二立体声扬声器156、话筒160、FM天线164、立体声头戴式受话机166、RF开关170、RF天线172、小键盘174、单声道头戴式送受话器176、振动器178、热传感器157B、和电源189对于片上系统322是外置的。
PCD100的上述元件中的某些可包括硬件,而另一些可包括软件,并且其他可包括硬件和软件的组合。术语“资源”在本文被用来指代可由处理器控制的任何这样的元件,无论是硬件、软件或其组合。资源可在一个方面被定义为这种元件的功能性的包封。除了在另外指明的地方以外,术语“处理器”或“主处理器”在本文被用来指代处理器,诸如第一CPU110A、第二处理器CPU110B、模拟信号处理器126、或在软件、固件或类似控制逻辑的控制下操作的任何其他处理器、控制器或类似元件。如下文更详细地描述的,资源的一示例是在处理器上执行的软件元件。诸如与正在执行的应用程序有关的线程之类的在处理器上执行的线程可通过致使对资源发出“请求”来访问资源。
在不同的应用状态中,处理器请求不同的资源配置或资源状态可能是必要的或合意的。例如,总线资源可控制总线时钟的速度。在一个应用状态中,处理器可请求允许处理器以例如每秒1亿条指令(MIPS)的速率来操作的总线时钟,而在另一应用状态中,处理器可请求允许其以例如每秒1.5亿条指令(MIPS)来操作的总线时钟。在处理器准备进入为休眠状态的应用状态的情况下,处理器可请求零MIPS的总线时钟。类似地,在由执行第一应用程序的处理器定义的一个应用状态状态中,处理器可请求100MIPS,而在由执行第二应用程序的处理器定义的另一应用状态中,处理器可请求150MIPS。同样地,在由并发地执行特定数目个应用程序的处理器定义的一个应用状态中,处理器可请求100MIPS,而在由并发地执行不同数目个应用程序的处理器定义的第二应用状态中,处理器可请求150MIPS。应该理解,上文引述的总线时钟旨在仅作为可由发出资源请求的处理器配置的资源的示例,并且数字“100”和“150”旨在作为处理速度的任意示例。
资源配置或状态可被编组成资源状态集。资源状态集定义了由处理器在某一处理器应用状态中一并使用的一个或多个资源的配置或状态。例如,某一资源状态集可包括由总线时钟资源向处理器提供某个数目的MIPS的处理速度的配置或状态信息,以及由解码器(即,资源的另一示例)向处理器提供解码功能的配置或状态信息。
图2是示出形成系统103的控制器101、系统电源管理器157、主处理器110、126、低级驱动器103、共享资源105A-C、以及本地资源105D-H之间的关系的功能性框图。图2还示出触摸屏132可如何耦合至触摸屏驱动器/控制器130。触摸屏驱动器/控制器130可耦合至第一主处理器110A的时钟码113A。
系统103可按照使资源等待时间最小化的方式在由处理器110所想要的资源状态集之间切换。术语“资源等待时间”指的是在主处理器110、126开始使控制器101和系统电源管理器157准备转变到另一资源状态集的时间与该资源集的资源变成被配置成指定状态并准备好由该处理器使用的时间之间发生的延迟或等待时间。如下文所描述的,资源状态集可被宽泛地分类成:活跃资源状态集,在其中向处理器提供被配置成协助该处理器执行应用程序的资源以及以其他方式提供处理能力;以及休眠资源状态,在其中仅向处理器提供协助该处理器维持休眠状态的资源,即,在其中处理器不在执行应用程序或以其他方式提供处理能力的状态。尽管处于休眠状态的处理器可维持低级功能,但处理器不执行软件,即如本领域普通技术人员所能理解的应用程序。应该理解,下文描述的“下一活跃状态”特征可被应用于任何资源状态集之间的转变,而不管它们是活跃集还是休眠集。
在图2所示的示例性实施例中,第一主处理器110A可耦合至系统电源管理器157和控制器101。控制器101可耦合至第一主处理器110A的时钟码113A。控制器101可包括一个或多个低级驱动器103。这一个或多个低级驱动器103可负责与一个或多个共享资源105A-C通信。共享资源105A-C可包括支持主处理器110的任务或功能的任何类型的设备。共享资源105A-C可包括诸如其他处理器的时钟之类的设备以及如图形处理器、解码器等单功能元件、以及类似资源。
共享资源105A-C可耦合至一个或多个本地资源105D-H。这一个或多个本地资源105D-H可与共享资源105A-C类似,因为它们可包括支持或协助主处理器110的任务或功能的任何类型的设备。本地资源105D-H可包括诸如其他处理器的时钟之类的设备以及如图形处理器、解码器等单功能元件及类似资源。本地资源105D-H可包括叶节点。叶节点被本领域普通技术人员理解为通常不引用或包括其他从属资源105的本地资源105D-H。
控制器101可负责管理从这一个或多个主处理器110、126发出的请求。例如,控制器101可管理源自第一主处理器110A的请求。第一主处理器110A可响应于操作者操纵触摸屏132而发出这一请求。触摸屏132可向触摸屏驱动器/控制器130发出信号。触摸屏驱动器/控制器130可进而向第一主处理器110A的时钟码113A发出信号。
控制器101还可负责管理特定处理器110的休眠状态。在进入休眠状态之前,处理器110将提供用于管理休眠状态的信息。用于管理休眠状态的信息包括休眠状态进入和休眠状态退出。这一用于管理休眠状态的信息将在下文被称为触发和资源状态。资源状态集可包括用于按照支持处理器的休眠状态的方式来配置一个或多个资源的资源信息。
触发可定义致使处理器110或进入休眠状态或离开休眠状态的事件。触发将一般地引用包含在控制器101内或可由控制器101访问的资源状态。资源状态定义了特定处理器110所需的资源105所想要的状态。在一示例性实施例中,每一处理器110可向控制器101提供至少两个资源状态集:活跃资源状态集和休眠资源状态集。然而,在其他实施例中,处理器可提供作为单一的活跃集或单一的休眠集的补充的资源状态集,或者与单一的活跃集和单一的休眠集不同的资源状态集。这样的其他资源状态集可与上述的处理器应用状态中的一个或多个相对应。即,对于任何应用状态,处理器可提供相应的资源状态集。
在示例性实施例中,活跃资源状态集可为处理器110在活跃地执行处理功能并且要求来自其资源105的动作/功能的情况定义资源105的状态。休眠资源状态集可定义当处理器110处于休眠或空闲状态时资源105的状态。下文将结合图3来描述关于触发和资源状态的进一步细节。
图3是示出关于控制器101、资源集304和触发集314的细节的功能框图。如先前所述的,控制器101可包括由PCD100的处理器110、126中的一个或多个执行的软件。控制器101可将信息存储在存储器102中或存储在控制器101内的区域中,诸如本地存储,如本领域普通技术人员所能理解的。这一信息可包括资源表302,资源表302包括被指派给由控制器101服务的每一主处理器110的资源集304。这一信息还可包括触发集314,触发集314也被指派给每一主处理器110并且其对于每一主处理器110而言可以是唯一性的。
每一资源集304一般包括与由特定主处理器110所想要的资源105的状态有关的信息。指派给特定主处理器110的每一资源集304可包括活跃资源集306和休眠资源集308。活跃资源集306可定义或描述当特定主处理器110是活跃的或正常运作的情况下资源105的状态。休眠资源集308可定义或描述在特定主处理器处于休眠或休止的状态时资源105的状态,如本领域普通技术人员所能理解的。每一资源集304还可包括附加集,诸如在图3所示的示例性实施例中被指派给第一主处理器110的“集合1”和“集合2”。
作为示例,如图3所示的第一主处理器(A)110A的活跃资源集306已将以下值赋给其资源105中的每一个:给第一共享资源(SR#1)105A的值为1;给第二共享资源(SR#2)105B的值为1;给第N共享资源(SR#N)105C的值为1;而给第一本地资源(LR#1)105D的四个值为1、0、1和1。
如前所述,资源105的状态不限于单一的值,并且可包括多个值。此外,资源的状态可包括数个不同类型的参数中的任一类型的参数。例如,状态可为可充当资源105的特定时钟的时钟速度的数量指定百兆赫。
作为另一示例,如图3所示的第一主处理器(A)110A的休眠资源集308A将以下值赋给其资源105中的每一个:对于第一共享资源(SR#1)105A,这一资源已被赋值为0;第二共享资源(SR#2)105B具有0的赋值;而第N共享资源(SR#N)105C具有0的赋值。第一本地资源(LR#1)105D可具有0、1、0和0的赋值。
指派给特定主处理器110的每一触发集314可包括至少三个域:中断域316;“来自集合”318;以及“前往集合”320。触发集314的这三个域中的每一个还可包括对应的三列的集合:触发起始列322;清除列324;以及计时器列326。
中断域316描述可由系统电源管理器157生成和/或检测的动作或活动。中断域316可一般地被表征为可允许控制器101基于由SPM157检测到的触发事件来选择特定处理器110所想要的特定资源集304的“触发事件”。控制器101对资源集304的选择可避免在上文背景部分中描述的耗时的软件握手。
回顾图3的第一主处理器(A)110A的第一触发集(触发集#1),按照列的次序来讨论该集合的各个域。从触发集314A的第一列开始,触发起始列322在其第一行中具有与中断域316相对应的列为“解码中断”的动作。
如前所述,中断域316可定义致使控制器101响应于检测到触发起始域322而激活资源集304的状态的参数。在图3所示的示例性实施例中,中断域316A已经被定义或描述为“解码中断”,这意味着当系统电源管理器110检测到“解码中断”时,诸如当PCD100正在解码视频时,则这一事件可警告控制器101查看“触发起始”列下第一列322A1中的“来自集合”域318。
“来自集合”域318可包括表明对于正被控制器101查看的特定主处理器110而言当前资源集304应该是什么的值。该域318可按照诸如“活跃集”、“休眠集”之类的资源集标识符或如“集合1”或“集合2”之类的集合编号来列出资源集304。域320还可包括例如星号之类的“通配符”。
“来自集合”域318中的通配符指定可致使控制器101检索上一所知正被特定主处理器101使用的活跃资源集304。在图3所示的示例性实施例中,“来自集合”行318A和触发起始列322A1具有星号或通配符的值。
“前往集合”320与“来自集合”318类似地可包括按照诸如“活跃集”、“休眠集”之类的资源集标识符或如“集合1”或“集合2”之类的集合编号对资源集304的列表。域320还可包括如星号之类的意指上一正被处理器110使用的资源集304的“通配符”。在图3所示的示例性实施例中,“前往集合”域320A和触发起始域列322A1具有“集合1”的值,其是第一资源集304A的列310A中列出的资源集1。
对于图3所示的示例,当解码中断事件被SPM157检测到时,它警告控制器101。控制器101查看第一主处理器110的第一触发集。因为触发起始列322A1列出了匹配值(解码中断),所以控制器101查看“来自集合”域318A并且确定该值是通配符值或星号。控制器101随后查看“前往”域320A,其具有指定特定资源集304A的值“集合1”。基于控制器101所查看到的这一信息,控制器101将把第一主处理器110A的当前资源集304A从其当前集合切换至资源集“集合1”。资源集1被列在指派给第一主处理器110A的资源集304A的列310A中。
此外,当SPM157或控制器101检测到诸如在第一触发集的清除列324A1中所示的“不解码”事件时,则控制器101随后将查看“来自集合”域318A并确定该值包括“集合1”。控制器101随后将查看“前往集合”域320,其在该示例中具有通配符或星号的值。这意味着控制器101将把第一主处理器110A的资源集304A从“集合1”资源集切换成处理器110A使用的上一活跃资源集。
触发集的计时器域326可表明控制器101可使用特定资源集304的时间量。因此对于图3所示的示例性实施例,对于第一触发集的计时器域326A1,该域具有3毫秒的值。这意味着,当解码中断事件与第一触发集的触发起始域322A1匹配时,则控制器101只能使用“前往集合”域320A中指定的资源集304达3毫秒的时间段。在其他示例性实施例中,可能发生或存在的情况是:计时器域326中没有信息,或者值被定义成与指示不存在针对这一转变的计时器触发326以及该转变仅适用于“不解码”域的值相对应。在诸如图3所示的其中定义了计时器域——计时器域326A1和326A2的情形中,则在计时器域326和清除域324之间无论首先发生哪个事件,该时间通常都将发起该转变。
图4示出处理器110的示例性活跃-休眠触发集314。在该示例性实施例中,第一列322中的中断域316定义了“关闭”事件作为要对特定处理器110发起休眠集308(图3)的动作。“关闭”事件可包括如操作者选择用于关闭PCD100的开/关按钮之类的动作。
在图4中的示例性实施例中,当检测到“关闭”事件时,控制器101将当前活跃资源集306转变成休眠集308。休眠集308被列在图3中的表302的主资源集304中。
当控制器101从SPM157接收到已发生了“引起”事件(诸如PCD100的操作者发起的上电事件)的消息时,则控制器将基于触发集314的“前往集合”域320中列出的通配符或星号值将处理器110从其休眠集308转变成上一活跃资源集304。
如上所述,系统103不限于活跃集和休眠集306、308。系统103可用于针对除了如图3所示的进入休眠状态或退出休眠状态之外的其他事件而在资源集304之间切换。
图5是示出一用于管理将处理器110置于休眠状态的触发集314的方法500的逻辑流程图。框505是方法500的第一步骤。在框505中,每一处理器110可基于来自PCD100的先前用例的数据按需更新其资源集304以及其在控制器101(图1-2)中的触发集314。
在框510中,处理器110可请求SPM157(图2)向控制器101生成关闭信号。在框515中,SPM157可将关闭信号发送至控制器101。
控制器101可在框520中接收关闭信号,并且激活可如图4所示地被指派给关闭事件的触发集314。在图4所示的示例性实施例中,将关闭信号对照着触发集314的中断域316来进行匹配。触发集314引导控制器101访问如在“前往集合”域320中所指示的休眠集308。在框525中,控制器101可立即将确认信号发送至SPM157,而控制器101继续激活被匹配于此关闭信号事件的触发集314所引用的资源集304。
在框530中,对于每一匹配的触发集314,诸如在图4所示的对应中断域316中列出“关闭”事件的匹配触发集314,控制器101可将当前资源集304切换成休眠集308,诸如图3的主处理器110A的第一资源集305A的休眠集308A。
接着,在框535中,控制器101可向低级驱动器103发出休眠请求状态,如图2所示。低级驱动器103可将所请求的状态传递至对应的资源105。
在框540中,每一资源105可向控制器101和SPM157发出关闭信号确认。方法500随后可结束。
图6是示出一用于管理将处理器110从休眠状态置于活跃状态的触发集314的方法600的逻辑流程图。框605是方法600的第一步骤。在框605中,用SPM157检测到苏醒条件或苏醒事件,或者直接由可具有其自己的中断控制器(未示出)的控制器101检测到苏醒事件。示例性实施例可被设计成使得苏醒中断可以是SPM157不能检测到的。在这样的示例性实施例中,控制器101可使用其中断控制器来检测它们,并且使它们“匹配”于主处理器110的休眠集要求。
接着,在框610中,SPM157可将苏醒信号发送至控制器101。在框615中,控制器101可从SPM157接收苏醒信号,并且激活匹配于该苏醒信号的一个或多个触发集314。例如,控制器101可将苏醒信号与图4的触发集314的“活跃”列中的中断域316中列出的“引起”事件相匹配。在图4的示例性实施例中,活跃列324中的“前往域”320将控制器引导至被当前处理器110使用的上一资源集304。
因此在框620中,控制器101将基于这一匹配的触发集314来改变处理器110的当前资源集304。本领域普通技术人员将明白,控制器101将在在如图3所示的其维护的所有触发集之间循环。
接着,在框625中,控制器101可向SPM157发送标识哪个主处理器110已经从休眠状体中被唤醒的苏醒确认。接着,在框630中,具有匹配的苏醒触发集314的每一处理器110从休眠状态被释放,并且凭借SPM157的供电被恢复成其活跃状态。方法600随后结束。
图7-10示出在本说明书中被称为“下一活跃资源状态集”或“下一活跃集”的另一特征。下一活跃集的一个示例是下一苏醒集。下一苏醒集或其他下一活跃集可按照上文参考图6和控制器101在苏醒事件发生时切换至的资源集304所述的相同方式来使用。
图7与图3类似,在于它表示存储在控制器101中的信息。在示例性实施例中,控制器101可包括三个存储器缓冲,在本说明书中出于方便的考虑被称为“A”存储器缓冲702、“B”存储器缓冲704和“C”存储器缓冲706。
图8是与图5类似的逻辑流程图,在于其示出了一种用于将处理器置于休眠状态的方法800。框805是方法800的第一步骤,并且与上文参照图5所描述的框505类似。框805指示,处理器110不仅可更新活跃或苏醒资源状态集和休眠资源状态集,还可更新下一苏醒资源状态集。如图8所示,处理器可致使活跃集被存储在控制器101的“A”缓冲702(图7)中,休眠集被存储在控制器101的“B”缓冲704(图7)中,而下一苏醒集被存储在控制器101的“C”缓冲706(图7)中。框805的其他方面与上文参照框505(图5)所描述的相同,并因此在此处不再描述。
框810、815、820、825、830、835和840分别与图5的框510、515、520、525、530、535和540相同,并因此在此处不再描述。注意,当处理器开始关闭时,它处于与“A”缓冲702(图7)中存储的苏醒集相对应的苏醒应用状态。处理器随后按照上文参考图5所描述的相同方式进入与存储在“B”缓冲704(图7)中的休眠集相对应的休眠应用状态。处理器从休眠应用状态苏醒(图6)为与存储在“C”缓冲706(图7)中的下一苏醒集相对应的下一苏醒应用状态。通过将下一苏醒集更新预先存储在“C”缓冲706(图7)中并且尽快地应用它们,控制器101就可在苏醒事件发生之际立即起动配置由该下一苏醒集指定的资源,从而有助于使资源等待时间最小化。
图9涉及另一示例性实施例,其中控制器101不具有足够的存储器来同时存储上述全部的三个资源状态集。在这一实施例中,控制器101'仅具有“A”缓冲902和“B”缓冲904,而没有可用于“C”缓冲的存储器空间。在这种实例中,“A”缓冲902被重用,以使得在不同时间,它存储(当时为现时的)苏醒集以及下一苏醒集。
图10是与图5和图9类似的逻辑流程图,在于其示出了一种用于将处理器置于休眠状态的方法1000。框1005是方法800的第一步骤,并且与上文参考图8所描述的框805类似,但不包括将下一苏醒集存储在“C”缓冲中。相反,处理器可致使活跃集被存储在控制器101’的“A”缓冲902(图9)中并且休眠集被存储在控制器101’的“B”缓冲904(图9)中,但处理器等待直到它已经到达转变成休眠应用状态中的“不归点(pointofnoreturn)”(按该术语为本领域普通技术人员所能理解的含义)之后才重用“A”缓冲来存储下一苏醒集。框1005的其他方面与上文参照框505(图5)所描述的相同,并因而此处不再描述。
在框1008中,处理器执行下一苏醒集的所谓伪更新或虚拟更新。注意,在上述框1005中,处理器可通过将资源状态集写入控制器101'中的“A”缓冲902和“B”缓冲904来执行资源状态集的实际更新。这些更新是实际的,因为控制器101’从处理器接收到通知其缓冲内容已被更新的中断,从而使得控制器101’对更新进行动作或应用更新。控制器101’通过执行对于准备要供使用的经更新的资源状态集信息所需的各种任务来应用更新。如果缓冲“B”中的休眠集被更新,则控制器101’可准备要供在稍后发生关闭事件或需要切换资源状态集的类似事件的情况下使用的经更新的休眠集信息。如果“A”缓冲902中的活跃集被更新,则控制器101’可致使资源被相应地调节。处理器在框1008中执行的伪更新包括将下一苏醒集的更新存储在“A”缓冲902(图9)中而不向控制器101’发送中断。因为控制器101’没有接收到中断,所以它尚未应用在“A”缓冲902(图9)中发生的更新。这一伪更新在不归点之后发生,在不归点上,处理器110将请求SPM157(图2)向控制器101’发出关闭的信号并且得到不对“A”缓冲902中的当时的活跃资源集状态信息作出任何进一步的更新的保证。
框1010、1015、1020和1025分别与上文参考图5描述的框510、515、520和525类似,并因此在此处不再描述。
接着,在框1027中,控制器101’通过检查“A”缓冲902(图9)是否有更新来对发生在控制器101’与处理器(框1020、1025)之间的握手作出响应,并存储要在图6的苏醒方法中使用的更新。(可能需要注意的是,由于藉以使用中断来通知接收方控制器101’该处理器已经向缓冲写入的“消息”的方式,存储器缓冲也被称为“消息RAM”。)从而,通过将下一苏醒集预先存储在“A”缓冲902(图9)中,控制器101’就能够在苏醒事件发生之际立即起动配置由该下一苏醒集指定的资源,从而有助于使资源等待时间最小化。
框1030、1035和1040分别与图5的框530、535和540相同,并因此在此处不再描述。处理器随后相应地按照上文参考图5所描述的相同方式进入与存储在“B”缓冲904(图9)中的休眠集相对应的休眠应用状态。处理器从休眠应用状态苏醒(图6)为与存储在“B”缓冲904(图9)中的下一苏醒集相对应的下一苏醒应用状态。通过预先存储下一苏醒集并尽快将其应用,控制器101’就能够在苏醒事件发生之际立即起动配置由该下一苏醒集指定的资源,从而有助于使资源等待时间最小化。
图11-23示出涉及调度上述资源集转变的另一特征。本领域普通技术人员理解,在许多实例中,处理器应用程序状态上的上述改变可按照相对可预测的周期性发生。例如,在PCD100(图1)中,正在执行视频播放器应用程序的处理器可能需要在周期性的基础上(例如,每X毫秒)苏醒或以其他方式转变成在其中处理器可解码视频数据帧的状态。类似地,正在控制PCD100的蜂窝电话功能的处理器可能例如需要在周期性的基础上(例如,每X毫秒)苏醒或以其他方式转变成在其中处理器可检查RF通信信号的状态。因为应用程序状态上的周期性改变将要发生的时间可被预测,并且因为资源要完成向与下一应用程序状态相对应的状态的转变所需的时间量基本上是固定或恒定的,所以需要起动此切换资源状态集的过程的时间可被预测。例如,可以预测,处理器在时间t最后期限需要使资源集处于由示例性资源状态集(“R”)所指示的状态。该示例性资源状态集“R”可指定总线时钟资源要改变成例如100MHz,并且电源资源要改变成例如3V。控制器101为确保总线时钟资源和电源资源已经完成这些转变所将花费的时间量(“工作_时间”)可被确定。(术语“工作”指的是控制器101必须执行以实现资源状态转变的处理、配置和硬件控制。)相应地,为了使资源到时间t最后期限时处于资源状态集“R”所指示的状态,在该示例中,控制器101需要在t最后期限之前至少等于“工作_时间”的时间量开始转变总线时钟和电源资源的过程(例如,图5中的步骤530和535、图8中的步骤830和835、等等)。
在PCD100中,两个或更多个处理器(例如,图2中的主处理器110A、110B、110C等)可能在彼此非常接近的时间请求资源状态集转变,从而使得控制器101将需要在从事为一个处理器转变资源的同时从事为另一处理器转变资源。类似地,诸如SPM157之类的另一元件可能在控制器101正从事转变资源或被调度为从事转变资源的同时请求资源状态集转变。这种“冲突”状况是不想要的,因为在示例性实施例中,控制器101无法同时执行这些任务。
图11是示出上述冲突状况的示例的时间线。控制器100起动下文所述的调度方法并检测到冲突状况的近似时间被标记为“t现在”。在图11所示的示例中,控制器101确定,为了使资源在时间t最后期限_0时处于第一处理器所要求的状态,控制器101需要在时间t开始_0起动将这些资源转变成所要求状态的过程或工作(“工作_0”)类似地,控制器101确定,为了使资源在时间t最后期限_1时处于第二处理器所要求的状态,控制器101需要在时间t开始_1起动将这些资源转变成所要求状态的过程或工作(“工作_1)”可能需要注意的是,工作_0和工作_1之间的交叠表示冲突状况。
图12以时间线形式示出来自一种用于缓解图11所示的冲突状况的方法。为缓解所述冲突,控制器可调度工作_0为要在起动工作_1之前就被完成。控制器101从而计算为了在t开始_1(即,经修改的最后期限时间t最后期限_0')之前完成工作_0而要起动将这些资源转变成所要求状态的经修改的时间t开始_0':
t开始_0'=t最后期限_0–(t最后期限_1–工作_1)。
可能需要注意的是,以上计算中的t开始_0'是相对于t现在而言的。
图13是示出一用于将处理器110从与休眠资源状态集相对应的休眠应用状态转变成与活跃资源状态集相对应的活跃应用状态的方法1300的逻辑流程图。方法1300与图6的上述方法600类似,区别在于方法1300包括调度控制器101执行以改变或转变资源状态的处理或工作。由于框1305、1310和1315分别与上文参考图6描述的框605、610和615相同,在此处不再描述。在框1318中,控制器101调度控制器101确定将要在周期性的基础上改变应用状态的一个或多个处理器的资源状态集转变。如上所述,应用状态上的预测改变具有相关联的最后期限,与下一应用状态相对应的资源集的资源在该最后期限之前要被完全转变。这一调度步骤可包括:计算资源状态集转变要完成所将花费的时间量(“工作”),并因此计算控制器101为了在最后期限之前完成该转变而需要起动转变过程或“工作”的时间。这一调度步骤还可包括按照上述方式或使用替换方法来缓解任何调度冲突。由于框1320、1325和1330分别与上文参考图6描述的框620、625和630相同,在此处不再描述。
图14是示出可被包括在图13的框1318中以调度资源状态集转变的方法1400的逻辑流程图。框1405指示,控制器101可对以下表达式求值:
t最后期限_x–工作_x<t最后期限_y,
其中x和y是表示资源状态集转变的两个请求的索引(例如,来自第一处
理器X和第二处理器y),且其中x>y。
如果该表达式求值为假,则在这两个请求之间不存在冲突状况,并且该方法结束。如果该表达式求值为真,则存在上文参考图11所述类型的冲突状况。如果确定冲突状况存在,则控制器101可计算经修改的开始时间以缓解该冲突:
t开始_x'=t最后期限_x–(t最后期限_y–工作_y)。
控制器101可用经修改的开始时间来替代原先调度的资源状态集转变开始时间。
用于缓解调度冲突的方法还可将非经调度的资源状态集转变请求考虑在内。如上所述,经调度的资源状态集转变请求包括在周期性的基础上发生或以其他方式可预测的请求。非经调度的资源状态集转变请求可作为不可预测事件(诸如用户使用触摸屏132(图2)执行了导致PCD100唤醒一个或多个处理器的动作)的结果而发生。非经调度的请求不具有在其之前必须完成资源状态集转变的相关联的最后期限时间(“t最后期限”)。相反,只有称之为时间(“t完成”)才是贴切的,“t完成”是资源状态集转变如果在特定时间开始则将完成的时间。
图15是示出如果在非经调度的资源状态集转变请求于t非经调度_1一旦发生之际控制器101就开始处理(即,从事)该请求并且继续从事该请求直到资源状态集转变在t完成_1时完成则可能发生的冲突状况。注意到,在t开始_0时开始并且在t最后期 限_0时结束的对经调度的请求的处理(“工作_0”)与非经调度的请求的处理(“工作_1”)交叠。
图16是示出一用于缓解图15的冲突状况的直接了当的示例性方法的时间线。为了缓解所述冲突状况,控制器101可首先转变与经调度的请求相关联的资源,然后转变与非经调度的请求相关联的资源。
图17是示出一种用于缓解图15的冲突状况的直截了当的第二示例性方法的时间线。为了缓解所述冲突状况,控制器101可首先转变与经调度的请求相关联的资源,然后转变与非经调度的请求相关联的资源。然而,不像图16所示的方法的是,工作_0的开始即t开始_0被移向更早至t开始_0’,以允许工作_1更快完成从而避免对非经调度的工作的延迟。
图18是示出用于缓解图15的冲突状况的另一示例性方法的时间线。为了缓解所述冲突状况,控制器101可首先计算经修改的开始时间:
t开始_1=(t最后期限_0–工作_0)–t现在。
控制器101可在经修改的开始时间t开始_1起动转变与非经调度的请求相关联的资源的工作的子集或一部分。随后,在t开始_0,控制器101停止从事对与非经调度的请求相关联的资源的转变,转而切换至转变与经调度的请求相关联的资源。在控制器101在t最后期限_0完成对与经调度的请求相关联的资源的转变之后,控制器101可返回至转变与非经调度的请求相关联的资源的工作。
图19示出,转变与资源状态集改变请求相关联的资源中所涉及的工作或处理在许多实例中可被划分成若干子集或部分,即“工作0”到“工作N”。转变与资源状态集改变相关联的资源中所涉及的工作或处理可涉及许多分立的任务。从而,控制器101能够容易地在这些分立的任务之间临时挂起转变到另一资源状态集的过程。例如,图18中的t开始_1和t开始_0之间发生的处理或工作部分可包括一个或多个这样的分立任务。
图20是示出工作的子集或部分可早于预期完成从而导致早于最后期限(t最后期 限)地完成工作(时间t完成)的时间线。这可导致电能被浪费,这是由于该工作中涉及的(诸)资源比满足最后期限所要求的早地消耗了电能所造成的(如本领域普通技术人员所理解的)。
图21示出一种用于缓解图20的电能被浪费的状况的示例性方法。为了缓解所述状况,在该工作的较早完成的子集或部分之后该工作的后续子集或部分可被延迟或“拖延”。“工作N+1”可被延迟直到“工作N”的预期完成之时,以避免由于在“工作N”之后改变工作中的(诸)资源而引起的电能影响。
图22更全面地示出分立任务概念,并且示出例如可在t开始_1和t开始_0之间执行部分工作2_1。应该注意,因为转变资源状态集的资源中所涉及的某些分立任务并非彼此依赖,所以可以按照任何适当的次序来执行这些任务。从而,例如,尽管该工作在图19中可能被示为涉及顺序任务,但在脱序地执行任务(诸如在工作0_1之前执行工作2_1)的某些实例中,可能并没有什么不利后果。还应该注意,分立任务或部分可以不是彼此等长的。因此,如果分立任务或部分之一(诸如工作2_1)比该资源状态集转变的其他部分更适合图22所示的示例中的t开始_1和t开始_0之间的时间间隔,则控制器101可通过按照这一次序来执行各部分来优化该方法。一般而言,可能期望尽快地执行关于资源状态集转变的尽可能多的工作。因此,可能更期望执行恰好适合图22所示的示例中的t开始_1和t开始_0之间的时间间隔的较长的部分,而非在该间隔中执行较短的部分从而就在t开始_0之前留有不执行工作的空档。
图23是示出一用于调度资源状态转变的处理的方法2300的逻辑流程图。方法2300更一般地传达了可以是经调度的或非经调度的两个以上的请求可能需要并发处理这一概念。(出于清楚的目的,以上参考图11-22所描述的方法涉及处理仅一个或两个请求以及它们之间的冲突状况的可能性。)
方法2300以状态2305开始,该状态可作为以下状况中的任一项发生了的结果而被达到:控制器101完成了响应于一请求转变资源状态中所涉及的处理或工作;控制器101接收到对资源状态集转变的非经调度的请求;或者控制器101确定针对处理资源状态转变的经调度的开始时间(“t开始”)即将来临。在表示方法2300的开始的框2310中,控制器101确定是否已经调度了任何处理或工作。如上所述,这样的处理或工作可被调度为在周期间隔处开始,尽管经调度的开始时间可被修改以缓解冲突状况。
如果控制器101确定是时候(“t现在”)执行该经调度的处理或工作,则控制器101执行该处理或工作,如框2315所指示的。如果控制器101确定不是要执行任何经调度的处理或工作的时候,则控制器101可处理正在等待中的任何非经调度的请求,如框2320所指示的。可能存在一个以上正在等待的非经调度的请求。同样,非经调度的请求可具有与其相关联的优先级。如果一个以上的非经调度的请求正在等待,则控制器101从该时间起从事最高优先级的正在等待的非经调度的请求的部分直到下一经调度的工作开始时间(t开始)。下一开始时间“t开始_下一”为:
t开始_下一=(t最后期限_下一-工作_下一)–t现在。
注意到,“t开始_下一”在以上计算中是相对于t现在而言的。
当控制器101完成对与非经调度的请求相关联的工作的一部分(见图19)的处理或工作时,控制器101确定该处理或工作是否包括其他部分,如框2325所指示的。如果其他部分存在,则控制器101按照以上参考框2020所述的相同方式从事下一部分。以上的术语“最高优先级”指的是可被包括在某些实施例中的排定优先级的方案。例如,因用户“关掉”PCD100(即通过触摸屏132(图1)发起低功率状态)而导致的非经调度的请求可被指派比其他非经调度的请求低的优先级。
本说明书中所描述的过程或过程流中的某些步骤自然地位于其他步骤之前以便本发明如以上所述地运行。然而,如果此类次序或顺序并不改变本发明的功能性,则本发明并不被限定于所描述的步骤次序。亦即,认识到某些步骤可在其他步骤之前、之后、或并行地(基本上同时)执行,而不脱离所公开的系统和方法。在某些实例中,某些步骤可被略去或不执行,而不背离所述方法,如本领域普通技术人员所能理解的。此外,诸如“此后”、“随后”、“接下来”等措辞无意限制这些步骤的次序。这些措辞仅仅是被用于带领读者遍阅对示例性方法的描述。
鉴于以上公开内容,编程领域的普通技术人员能够例如基于本说明书中的流程图和相关联的描述来编写计算机代码或标识恰适的硬件和/或电路来实现所公开的发明而没有困难。因此,对特定集合的程序代码指令或详细的硬件设备的公开并不被视为对于充分理解如何作出并使用本发明而言是必需的。所要求保护的计算机实现的过程的发明性的功能性在以上描述中结合可解说各种过程流程的附图更为详细地进行了解释。
在一个或多个示例性方面中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上。计算机可读介质可包括可由计算机访问的任何可用非瞬态介质。以示例而非限定的方式,此类计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可用以携带或者存储指令或数据结构形式的期望程序代码且可由计算机访问的任何其它介质。
如本文中所使用的,盘(disk)和碟(disc)包括压缩碟(“CD”)、激光碟、光碟、数字多用碟(“DVD”)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。以上组合也应被包括在计算机可读介质的范围内。
因此,尽管已详细解说和描述了精选的方面,但是将可理解,可在其中作出各种替换和变更而不会脱离本发明如所附权利要求所定义的精神和范围。
Claims (21)
1.一种用于管理具有多个处理器和相应的多个处理器资源的便携式计算设备的应用状态的方法,包括:
在存储器中维护第一资源状态集和第二资源状态集;
发出对正在与所述第一资源状态集相对应的第一应用状态中操作的处理器的要从所述第一应用状态转变成与所述第二资源状态集相对应的第二应用状态的请求;
基于完成将资源向所述第二资源状态集中所指示的状态转变的估算处理时间量来调度要起动将处理器资源向所述第二资源状态集中所指示的应用状态转变的开始时间;以及
在经调度的开始时间,起动将一个或多个处理器资源的状态从由所述第一资源状态集所指示的应用状态切换成由所述第二资源状态集所指示的应用状态的过程,
其中调度所述开始时间以起动将处理器资源切换成由所述第二资源状态集所指示的应用状态被执行以使得将一个或多个处理器资源的状态从由所述第一资源状态集所指示的应用状态切换成由所述第二资源状态集所指示的应用状态的过程不在所述便携式计算设备中的任何其他处理器的一个或多个处理器资源切换状态的过程期间进行。
2.如权利要求1所述的方法,其特征在于,
所述第一资源状态集是与所述处理器的休眠应用状态相对应的休眠资源状态集;以及
所述第二资源状态集是与所述处理器的活跃应用状态相对应的活跃资源状态集。
3.如权利要求1所述的方法,其特征在于,调度开始时间以及起动切换状态的过程由控制器执行。
4.如权利要求1所述的方法,其特征在于,调度开始时间包括:
确定在切换与对第一处理器发出的第一请求相关联的状态的第一过程和切换与对第二处理器发出的第二请求相关联的状态的第二过程之间是否存在资源状态转变冲突状况;以及
如果确定资源状态转变冲突状况存在,则通过修改开始时间来缓解所述冲突状况。
5.如权利要求4所述的方法,其特征在于,修改开始时间包括修改所述第一过程和所述第二过程之一的开始时间,以使得与所述第一过程相关联的处理时间和与所述第二过程相关联的处理时间不交叠。
6.如权利要求5所述的方法,其特征在于,修改开始时间包括修改所述第一过程和所述第二过程之一的开始时间,以使得所述第一过程的第一部分在所述第二过程的任何部分执行之前被执行,并且所述第一过程的第二部分在所述第二过程的至少一部分执行之后被执行。
7.如权利要求1所述的方法,其特征在于,所述便携式计算设备包括以下各项中的至少一个:蜂窝电话、卫星电话、寻呼机、个人数字助理(PDA)、智能电话、导航设备、智能本或阅读器、媒体播放器、以及具有无线连接的膝上型计算机。
8.一种用于管理具有多个处理器和相应的多个处理器资源的便携式计算设备的应用状态的计算机系统,所述计算机系统包括:
处理实体,用于:
在存储器中维护第一资源状态集和第二资源状态集;
发出对正在与所述第一资源状态集相对应的第一应用状态中操作的处理器的要从所述第一应用状态转变成与所述第二资源状态集相对应的第二应用状态的请求;
基于完成将处理器资源向所述第二资源状态集中所指示的应用状态转变的估算处理时间量来调度要起动将处理器资源向所述第二资源状态集中所指示的应用状态转变的开始时间;以及
在经调度的开始时间,起动将一个或多个处理器资源从由所述第一资源状态集所指示的应用状态切换成由所述第二资源状态集所指示的应用状态的过程,
其中调度所述开始时间以起动将处理器资源切换成由所述第二资源状态集所指示的应用状态被执行以使得将一个或多个处理器资源的状态从由所述第一资源状态集所指示的应用状态切换成由所述第二资源状态集所指示的应用状态的过程不在所述便携式计算设备中的任何其他处理器的一个或多个处理器资源切换状态的过程期间进行。
9.如权利要求8所述的计算机系统,其特征在于,
所述第一资源状态集是与所述处理器的休眠应用状态相对应的休眠资源状态集;以及
所述第二资源状态集是与所述处理器的活跃应用状态相对应的活跃资源状态集。
10.如权利要求8所述的计算机系统,其特征在于,调度开始时间以及起动切换状态的过程由控制器执行。
11.如权利要求8所述的计算机系统,其特征在于,调度开始时间包括:
确定在切换与对第一处理器发出的第一请求相关联的状态的第一过程和切换与对第二处理器发出的第二请求相关联的状态的第二过程之间是否存在资源状态转变冲突状况;以及
如果确定资源状态转变冲突状况存在,则通过修改开始时间来缓解所述冲突状况。
12.如权利要求11所述的计算机系统,其特征在于,修改开始时间包括修改所述第一过程和所述第二过程之一的开始时间,以使得与所述第一过程相关联的处理时间和与所述第二过程相关联的处理时间不交叠。
13.如权利要求11所述的计算机系统,其特征在于,修改开始时间包括修改所述第一过程和所述第二过程之一的开始时间,以使得所述第一过程的第一部分在所述第二过程的任何部分执行之前被执行,并且所述第一过程的第二部分在所述第二过程的至少一部分执行之后被执行。
14.如权利要求8所述的计算机系统,其特征在于,所述便携式计算设备包括以下各项中的至少一个:蜂窝电话、卫星电话、寻呼机、个人数字助理(PDA)、智能电话、导航设备、智能本或阅读器、媒体播放器、以及具有无线连接的膝上型计算机。
15.一种用于管理具有多个处理器和相应的多个处理器资源的便携式计算设备的应用状态的计算机系统,所述计算机系统包括:
用于管理具有多个处理器和相应的多个处理器资源的便携式计算设备的应用状态的装置,包括:
用于在存储器中维护第一资源状态集和第二资源状态集的装置;
用于发出对正在与所述第一资源状态集相对应的第一应用状态中操作的处理器的要从所述第一应用状态转变成与所述第二资源状态集相对应的第二应用状态的请求的装置;
用于基于完成将处理器资源向所述第二资源状态集中所指示的应用状态转变的估算处理时间量来调度要起动将处理器资源向所述第二资源状态集中所指示的应用状态转变的开始时间的装置;以及
用于在经调度的开始时间,起动将一个或多个处理器资源从由所述第一资源状态集所指示的应用状态切换成由所述第二资源状态集所指示的应用状态的过程的装置,
其中用于调度所述开始时间以起动将处理器资源切换成由所述第二资源状态集所指示的应用状态的装置被执行以使得将一个或多个处理器资源的状态从由所述第一资源状态集所指示的应用状态切换成由所述第二资源状态集所指示的应用状态的过程不在所述便携式计算设备中的任何其他处理器的一个或多个处理器资源切换状态的过程期间进行。
16.如权利要求15所述的计算机系统,其特征在于,
所述第一资源状态集是与所述处理器的休眠应用状态相对应的休眠资源状态集;以及
所述第二资源状态集是与所述处理器的活跃应用状态相对应的活跃资源状态集。
17.如权利要求15所述的计算机系统,其特征在于,用于调度开始时间以及起动切换状态的过程的装置包括控制器。
18.如权利要求15所述的计算机系统,其特征在于,用于调度开始时间的装置包括:
用于确定在切换与对第一处理器发出的第一请求相关联的状态的第一过程和切换与对第二处理器发出的第二请求相关联的状态的第二过程之间是否存在资源状态转变冲突状况的装置;以及
用于在确定冲突状况存在的情况下通过修改开始时间来缓解所述资源状态转变冲突状况的装置。
19.如权利要求18所述的计算机系统,其特征在于,用于修改开始时间的装置包括用于修改所述第一过程和所述第二过程之一的开始时间,以使得与所述第一过程相关联的处理时间和与所述第二过程相关联的处理时间不交叠的装置。
20.如权利要求19所述的计算机系统,其特征在于,用于修改开始时间的装置包括用于修改所述第一过程和所述第二过程之一的开始时间,以使得所述第一过程的第一部分在所述第二过程的任何部分执行之前被执行,并且所述第一过程的第二部分在所述第二过程的至少一部分执行之后被执行的装置。
21.如权利要求15所述的计算机系统,其特征在于,所述便携式计算设备包括以下各项中的至少一个:蜂窝电话、卫星电话、寻呼机、个人数字助理(PDA)、智能电话、导航设备、智能本或阅读器、媒体播放器、以及具有无线连接的膝上型计算机。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201061425677P | 2010-12-21 | 2010-12-21 | |
US61/425,677 | 2010-12-21 | ||
US201161544927P | 2011-10-07 | 2011-10-07 | |
US61/544,927 | 2011-10-07 | ||
US13/291,767 US9104499B2 (en) | 2010-12-21 | 2011-11-08 | System for minimizing resource latency between processor application states in a portable computing device by scheduling resource state set transitions |
US13/291,767 | 2011-11-08 | ||
PCT/US2011/062940 WO2012087534A1 (en) | 2010-12-21 | 2011-12-01 | Minimizing resource latency between processor application states in a portable computing device by scheduling resource set transitions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103270471A CN103270471A (zh) | 2013-08-28 |
CN103270471B true CN103270471B (zh) | 2016-07-06 |
Family
ID=45319404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180061964.1A Active CN103270471B (zh) | 2010-12-21 | 2011-12-01 | 通过调度资源集转变来使便携式计算设备的处理器应用状态之间的资源等待时间最小化 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9104499B2 (zh) |
EP (1) | EP2656170B1 (zh) |
JP (1) | JP5605970B2 (zh) |
KR (1) | KR101503627B1 (zh) |
CN (1) | CN103270471B (zh) |
WO (1) | WO2012087534A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9285856B2 (en) | 2010-12-21 | 2016-03-15 | Qualcomm Incorporated | Method and system for rapid entry into and for rapid exiting from sleep states for processors of a portable computing device |
US8555388B1 (en) | 2011-05-24 | 2013-10-08 | Palo Alto Networks, Inc. | Heuristic botnet detection |
US8966625B1 (en) | 2011-05-24 | 2015-02-24 | Palo Alto Networks, Inc. | Identification of malware sites using unknown URL sites and newly registered DNS addresses |
US8954980B2 (en) | 2011-11-11 | 2015-02-10 | Qualcomm Incorporated | Conserving power through work load estimation for a portable computing device using scheduled resource set transitions |
US9104870B1 (en) | 2012-09-28 | 2015-08-11 | Palo Alto Networks, Inc. | Detecting malware |
US9215239B1 (en) | 2012-09-28 | 2015-12-15 | Palo Alto Networks, Inc. | Malware detection based on traffic analysis |
US10019575B1 (en) | 2013-07-30 | 2018-07-10 | Palo Alto Networks, Inc. | Evaluating malware in a virtual machine using copy-on-write |
US9811665B1 (en) | 2013-07-30 | 2017-11-07 | Palo Alto Networks, Inc. | Static and dynamic security analysis of apps for mobile devices |
US9613210B1 (en) | 2013-07-30 | 2017-04-04 | Palo Alto Networks, Inc. | Evaluating malware in a virtual machine using dynamic patching |
KR20150017897A (ko) * | 2013-08-08 | 2015-02-23 | 삼성전자주식회사 | 복수의 프로세서를 이용하여 센서 출력을 처리하는 사용자 기기 및 방법 |
US9927866B2 (en) * | 2013-11-21 | 2018-03-27 | Qualcomm Incorporated | Method and system for optimizing a core voltage level and enhancing frequency performance of individual subcomponents for reducing power consumption within a PCD |
US9489516B1 (en) | 2014-07-14 | 2016-11-08 | Palo Alto Networks, Inc. | Detection of malware using an instrumented virtual machine environment |
KR101919257B1 (ko) * | 2014-08-20 | 2018-11-15 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 애플리케이션 프로그램 전환 방법, 장치 및 전자 단말기 |
US9805193B1 (en) * | 2014-12-18 | 2017-10-31 | Palo Alto Networks, Inc. | Collecting algorithmically generated domains |
US9542554B1 (en) | 2014-12-18 | 2017-01-10 | Palo Alto Networks, Inc. | Deduplicating malware |
CN106599007B (zh) * | 2015-10-20 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 一种互联网信息资源的关联资源的查询方法及装置 |
CN106569411B (zh) * | 2016-10-31 | 2020-01-10 | 北京小米移动软件有限公司 | 智能烹饪厨具提醒方法和装置 |
US20190332230A1 (en) | 2016-12-15 | 2019-10-31 | Nutanix, Inc. | User interface view generation |
US10067691B1 (en) | 2017-03-02 | 2018-09-04 | Qualcomm Incorporated | System and method for dynamic control of shared memory management resources |
CN107273092B (zh) * | 2017-05-03 | 2020-09-01 | 北京中科睿芯科技有限公司 | 一种优化数据流架构访存延迟的方法及其系统 |
US10956573B2 (en) | 2018-06-29 | 2021-03-23 | Palo Alto Networks, Inc. | Dynamic analysis techniques for applications |
US11010474B2 (en) | 2018-06-29 | 2021-05-18 | Palo Alto Networks, Inc. | Dynamic analysis techniques for applications |
US11196765B2 (en) | 2019-09-13 | 2021-12-07 | Palo Alto Networks, Inc. | Simulating user interactions for malware analysis |
KR102287318B1 (ko) * | 2019-11-15 | 2021-08-09 | 현대자동차주식회사 | 오토사 기반 러너블 동기화 장치 및 그 방법 |
US11750714B2 (en) * | 2020-03-31 | 2023-09-05 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Fast resumption of dormant sessions on a client device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081826A (en) * | 1996-03-12 | 2000-06-27 | Hitachi, Ltd. | System using environment manager with resource table in each computer for managing distributed computing resources managed for each application |
CN101091398A (zh) * | 2004-12-31 | 2007-12-19 | 摩托罗拉公司 | 操作wlan移动站的方法 |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5461266A (en) | 1990-11-27 | 1995-10-24 | Hitachi, Ltd. | Power consumption control system |
US5692197A (en) | 1995-03-31 | 1997-11-25 | Sun Microsystems, Inc. | Method and apparatus for reducing power consumption in a computer network without sacrificing performance |
US5812860A (en) | 1996-02-12 | 1998-09-22 | Intel Corporation | Method and apparatus providing multiple voltages and frequencies selectable based on real time criteria to control power consumption |
US5991827A (en) | 1996-05-22 | 1999-11-23 | Geovector Corporation | Apparatus for controlling electrical devices in response to sensed conditions |
JP3463555B2 (ja) | 1998-03-17 | 2003-11-05 | ソニー株式会社 | 無線通信方法、無線通信システム、通信局、及び制御局 |
SG83684A1 (en) | 1998-07-07 | 2001-10-16 | Compaq Computer Corp | Computer system performing machine specific tasks before going to a low power state |
US6535798B1 (en) | 1998-12-03 | 2003-03-18 | Intel Corporation | Thermal management in a system |
US6823516B1 (en) | 1999-08-10 | 2004-11-23 | Intel Corporation | System and method for dynamically adjusting to CPU performance changes |
GB2360670B (en) * | 2000-03-22 | 2004-02-04 | At & T Lab Cambridge Ltd | Power management system |
US7062302B2 (en) | 2000-05-12 | 2006-06-13 | Denso Corporation | Mobile terminal having power saving function variable with microphone usage conditions |
US20030061383A1 (en) * | 2001-09-25 | 2003-03-27 | Zilka Anthony M. | Predicting processor inactivity for a controlled transition of power states |
US20030110153A1 (en) | 2001-12-11 | 2003-06-12 | Sprint Communications Company L.P. | Database performance monitoring method and tool |
US7089430B2 (en) | 2001-12-21 | 2006-08-08 | Intel Corporation | Managing multiple processor performance states |
US6848057B2 (en) | 2002-05-28 | 2005-01-25 | Nvidia Corporation | Method and apparatus for providing a decoupled power management state |
JP4749793B2 (ja) | 2004-08-05 | 2011-08-17 | パナソニック株式会社 | 省電力処理装置、省電力処理方法、及び省電力処理プログラム |
US7360106B2 (en) | 2004-08-05 | 2008-04-15 | Matsushita Electric Industrial Co., Ltd. | Power-saving processing unit, power-saving processing method and program record medium |
US7383450B2 (en) | 2004-12-22 | 2008-06-03 | Intel Corporation | Low power firmware |
KR101114984B1 (ko) * | 2005-03-14 | 2012-03-06 | 삼성전자주식회사 | 가변적인 웨이크업 레이턴시를 가진 프로세싱 장치에서전원 관리 방법 및 장치 |
KR100685664B1 (ko) | 2005-08-12 | 2007-02-26 | 삼성전자주식회사 | 호스트 및 클라이언트로 구성된 데이터 통신 시스템 및데이터 통신 시스템의 작동 방법 |
JP2007232588A (ja) | 2006-03-01 | 2007-09-13 | Nec Electronics Corp | 半導体集積回路装置、及び、その制御方法 |
US7929912B2 (en) * | 2006-04-04 | 2011-04-19 | Texas Instruments Incorporated | Apparatus for and method of Bluetooth and WiMAX coexistence in a mobile handset |
US8041972B2 (en) | 2006-04-04 | 2011-10-18 | Qualcomm Incorporated | Apparatus and method for setting wakeup times in a communication device based on estimated lock on time of frequency synthesizer |
FI20065449A0 (fi) | 2006-06-29 | 2006-06-29 | Nokia Corp | Tehonkulutuksen valvontamenetelmä, tehonkulutuksen valvontalaite, tietokoneohjelmatuote, tietokoneohjelman jakeluväline ja kommunikaatioväline |
US7689849B2 (en) | 2006-08-28 | 2010-03-30 | Ati Technologies Ulc | Reduction of power consumption by throttling processor requests |
US9146600B2 (en) * | 2006-10-11 | 2015-09-29 | Texas Instruments Incorporated | Array and peripheral power control decoded from circuitry and registers |
TWI320908B (en) | 2006-10-27 | 2010-02-21 | Ind Tech Res Inst | Apparatus and method for increasing the utilization by the processors on the shared resources |
JP4748057B2 (ja) * | 2006-12-28 | 2011-08-17 | ソニー株式会社 | 情報処理装置、起動方法、およびプログラム |
US7962775B1 (en) * | 2007-01-10 | 2011-06-14 | Marvell International Ltd. | Methods and apparatus for power mode control for PDA with separate communications and applications processors |
US7941682B2 (en) | 2007-05-09 | 2011-05-10 | Gainspan, Inc. | Optimum power management of system on chip based on tiered states of operation |
US8725488B2 (en) | 2007-07-26 | 2014-05-13 | Qualcomm Incorporated | Method and apparatus for adaptive voltage scaling based on instruction usage |
US20090049314A1 (en) | 2007-08-13 | 2009-02-19 | Ali Taha | Method and System for Dynamic Voltage and Frequency Scaling (DVFS) |
US8176341B2 (en) | 2008-03-31 | 2012-05-08 | Intel Corporation | Platform power management based on latency guidance |
US8020025B2 (en) * | 2008-06-04 | 2011-09-13 | Sony Ericsson Mobile Communications Ab | Power saving scheduler for timed events |
US8250579B2 (en) | 2008-06-27 | 2012-08-21 | Oracle America, Inc. | Method for stage-based cost analysis for task scheduling |
US8108696B2 (en) * | 2008-07-24 | 2012-01-31 | International Business Machines Corporation | Optimizing non-preemptible read-copy update for low-power usage by avoiding unnecessary wakeups |
US8281169B2 (en) | 2008-08-27 | 2012-10-02 | Wireless Silicon Group, Inc. | Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM) |
US8219994B2 (en) | 2008-10-23 | 2012-07-10 | Globalfoundries Inc. | Work balancing scheduler for processor cores and methods thereof |
US20100115144A1 (en) * | 2008-10-31 | 2010-05-06 | Justin Tyler Dubs | Wireless Switch State Using Controller Powered with System in Various Low-Powered States |
WO2010058252A1 (en) | 2008-11-24 | 2010-05-27 | Freescale Semiconductor, Inc. | Multimode voltage regulator and method for providing a multimode voltage regulator output voltage and an output current to a load |
CN101414271A (zh) | 2008-12-04 | 2009-04-22 | 浙江大学 | 多核平台下基于硬件计时器与任务队列的调度方法 |
US20100191814A1 (en) | 2008-12-23 | 2010-07-29 | Marco Heddes | System-On-A-Chip Employing A Network Of Nodes That Utilize Receive Side Flow Control Over Channels For Messages Communicated Therebetween |
EP2205029A1 (en) * | 2009-01-06 | 2010-07-07 | Thomson Licensing | A method for scheduling wake/sleep cycles by a central device in a wireless network |
TWI474734B (zh) * | 2009-01-23 | 2015-02-21 | Realtek Semiconductor Corp | 無線通訊裝置之電源管理方法及無線通訊裝置 |
US8271818B2 (en) | 2009-04-30 | 2012-09-18 | Hewlett-Packard Development Company, L.P. | Managing under-utilized resources in a computer |
JP5187277B2 (ja) | 2009-06-16 | 2013-04-24 | ソニー株式会社 | 情報処理装置、及びモード切り替え方法 |
US8190939B2 (en) | 2009-06-26 | 2012-05-29 | Microsoft Corporation | Reducing power consumption of computing devices by forecasting computing performance needs |
US8683476B2 (en) | 2009-06-30 | 2014-03-25 | Oracle America, Inc. | Method and system for event-based management of hardware resources using a power state of the hardware resources |
US8230249B2 (en) * | 2009-07-15 | 2012-07-24 | International Business Machines Corporation | Dynamic selection of server states for servers in a cluster of servers |
US7906996B1 (en) | 2009-08-18 | 2011-03-15 | Nxp B.V. | System and method for controlling an integrated circuit in different operational modes |
EP2323035B1 (en) | 2009-11-16 | 2019-04-17 | Red Bend Software | Scheduling system |
US8583945B2 (en) | 2010-01-14 | 2013-11-12 | Muse Green Investments LLC | Minimizing power consumption in computers |
US8271812B2 (en) | 2010-04-07 | 2012-09-18 | Apple Inc. | Hardware automatic performance state transitions in system on processor sleep and wake events |
US8335938B2 (en) | 2010-06-11 | 2012-12-18 | Kevin Howard Orr | Method and device for activation of components |
US8589932B2 (en) | 2010-07-02 | 2013-11-19 | International Business Machines Corporation | Data processing workload control |
US8806232B2 (en) | 2010-09-30 | 2014-08-12 | Apple Inc. | Systems and method for hardware dynamic cache power management via bridge and power manager |
US8694811B2 (en) * | 2010-10-29 | 2014-04-08 | Texas Instruments Incorporated | Power management for digital devices |
US20120291043A1 (en) | 2010-12-21 | 2012-11-15 | Qualcomm Incorporated | Minimizing Resource Latency Between Processor Application States In A Portable Computing Device By Using A Next-Active State Set |
US9285856B2 (en) | 2010-12-21 | 2016-03-15 | Qualcomm Incorporated | Method and system for rapid entry into and for rapid exiting from sleep states for processors of a portable computing device |
US20120284729A1 (en) | 2011-05-03 | 2012-11-08 | Microsoft Corporation | Processor state-based thread scheduling |
US8694817B2 (en) | 2011-06-15 | 2014-04-08 | Osram Sylvania Inc. | System bus with variable output power supply |
US20130007492A1 (en) | 2011-06-30 | 2013-01-03 | Sokol Jr Joseph | Timer interrupt latency |
US8954980B2 (en) | 2011-11-11 | 2015-02-10 | Qualcomm Incorporated | Conserving power through work load estimation for a portable computing device using scheduled resource set transitions |
-
2011
- 2011-11-08 US US13/291,767 patent/US9104499B2/en active Active
- 2011-12-01 CN CN201180061964.1A patent/CN103270471B/zh active Active
- 2011-12-01 KR KR1020137018991A patent/KR101503627B1/ko active IP Right Grant
- 2011-12-01 EP EP11794603.8A patent/EP2656170B1/en active Active
- 2011-12-01 JP JP2013541076A patent/JP5605970B2/ja not_active Expired - Fee Related
- 2011-12-01 WO PCT/US2011/062940 patent/WO2012087534A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081826A (en) * | 1996-03-12 | 2000-06-27 | Hitachi, Ltd. | System using environment manager with resource table in each computer for managing distributed computing resources managed for each application |
CN101091398A (zh) * | 2004-12-31 | 2007-12-19 | 摩托罗拉公司 | 操作wlan移动站的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR101503627B1 (ko) | 2015-03-18 |
US9104499B2 (en) | 2015-08-11 |
KR20130105890A (ko) | 2013-09-26 |
EP2656170B1 (en) | 2020-01-15 |
JP5605970B2 (ja) | 2014-10-15 |
WO2012087534A1 (en) | 2012-06-28 |
EP2656170A1 (en) | 2013-10-30 |
CN103270471A (zh) | 2013-08-28 |
JP2013544006A (ja) | 2013-12-09 |
US20120291042A1 (en) | 2012-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103270471B (zh) | 通过调度资源集转变来使便携式计算设备的处理器应用状态之间的资源等待时间最小化 | |
US8996595B2 (en) | User activity response dynamic frequency scaling processor power management system and method | |
CN103930874B (zh) | 使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率 | |
CN102687096B (zh) | 用于异步地并独立地控制多核中央处理单元中的核时钟的系统和方法 | |
CN104303149B (zh) | 用于调度便携式计算设备中的请求的方法和系统 | |
EP2530592B1 (en) | Mobile terminal and task scheduling method therefor | |
CN101859261A (zh) | 一种释放内存的控制方法及控制设备 | |
CN103502946A (zh) | 用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统 | |
CN103229124B (zh) | 用于使便携式计算装置的处理器快速进入以及快速退出休眠状态的方法和系统 | |
CN100535833C (zh) | 信息处理装置以及操作系统 | |
EP2513747A1 (en) | System and method for controlling central processing unit power with reduced frequency oscillations | |
WO2012087533A1 (en) | Minimizing resource latency between processor application states in a portable computing device by using a next-active state set | |
CN102754045B (zh) | 基于工作负荷请求而调谐动态时钟和电压切换算法的系统和方法 | |
CN102200801A (zh) | 一体机 | |
CN115346523A (zh) | 语音设备的语音交互方法及装置 | |
JP2011172419A (ja) | 電力供給システム、管理サーバ、端末、電力供給方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |