CN103930874A - 使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率 - Google Patents
使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率 Download PDFInfo
- Publication number
- CN103930874A CN103930874A CN201280055561.0A CN201280055561A CN103930874A CN 103930874 A CN103930874 A CN 103930874A CN 201280055561 A CN201280055561 A CN 201280055561A CN 103930874 A CN103930874 A CN 103930874A
- Authority
- CN
- China
- Prior art keywords
- state
- resource
- processor
- group
- controller
- 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.)
- Granted
Links
Classifications
-
- 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]
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0261—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
- H04W52/0274—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof
- H04W52/028—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof switching on or off only a part of the equipment circuit blocks
- H04W52/0283—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof switching on or off only a part of the equipment circuit blocks with sequential power up or power down of successive circuit blocks, e.g. switching on the local oscillator before RF or mixer stages
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Sources (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
基于用以完成转变资源的所估计处理时间量来调度开始将所述资源转变到第二资源状态组中所指示的状态的开始时间。在经调度开始时间,开始一过程,其中一个或一个以上资源的状态从第一资源状态组所指示的状态切换到所述第二资源状态组所指示的状态。调度转变资源状态的所述过程以在允许刚好及时完成所述过程使得所述资源状态在进入第二应用状态后即刻可由处理器使用的时间开始会有助于使资源等待时间的不利效应最小化。此针对应刚好及时完成所述过程的所述时间的计算可在系统状态和状态之间的转变经准确测量并存储在便携式计算装置的存储器中时得以增强。
Description
优先权和相关申请案声明
本申请案依据35U.S.C.§119(e)主张2011年11月11日申请的标题为“使用经调度资源组转变(USING SCHEDULED RESOURCE SET TRANSITIONS)”的第61/558,743号美国临时专利申请案的优先权。其全部内容以引用的方式并入本文中。本申请案还与2011年11月8日申请的标题为“通过调度资源组转变使便携式计算装置中的处理器应用状态之间的资源等待时间最小化(MINIMIZING RESOURCE LATENCY BETWEENPROCESSOR APPLICATION STATES IN A PORTABLE COMPUTING DEVICE BYSCHEDULING RESOURCE SET TRANSITIONS)”的第13/291,767号美国非临时专利申请案相关。
背景技术
便携式计算装置(“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是说明用于调度与处理针对资源状态组转变的多个请求相关联的过程的方法的逻辑流程图。
图24是说明可由便携式计算装置中的一个或一个以上资源处理的各种工作负载的图形。
图25是说明根据一个示范性实施例状态拓扑内的分组的图表。
图26是说明控制器使用的散列函数的一个实施例的示范性特征的图表。
图27A是说明可在系统状态高速缓冲存储器中使用的元件的图表。
图27B是系统状态高速缓冲存储器的一个示范性实施例。
图28是可在图27B的系统状态高速缓冲存储器内找到的系统状态转变的图形表示。
图29说明包括3个示范性工作负载的同时工作负载情境。
图30说明在某些状态转变已与系统状态高速缓冲存储器匹配之后图29的同时工作负载情境。
图31是用于通过产生散列值且将散列值与系统状态高速缓冲存储器比较而估计工作负载的图14和图23的子方法或例程的流程图。
具体实施方式
本文使用词语“示范性”来表示“充当实例、例子或说明”。本文描述为“示范性”的任何方面不一定解释为与其它方面相比为优选或有利的。
在此描述中,术语“应用”还可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、标识语言文件和补丁。另外,本文中所提及的“应用”还可包含本质上不可执行的文件,例如可能需要打开的文档或其它需要存取的数据文件。
术语“内容”还可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、标识语言文件和补丁。另外,本文中所提及的“内容”还可包含本质上不可执行的文件,例如可能需要打开的文档或其它需要存取的数据文件。
如此描述中使用,术语“组件”、“数据库”、“模块”、“系统”等希望指代计算机相关实体,其为硬件、固件、硬件与软件的组合、软件,或执行中的软件。举例来说,组件可为(但不限于为)在处理器上运行的过程、处理器、对象、可执行程序、执行线程、程序和/或计算机。借助说明,在计算装置上运行的应用和所述计算装置两者均可为组件。一个或一个以上组件可驻留在过程和/或执行线程内,且组件可位于一个计算机上且/或分布在两个或两个以上计算机之间。另外,这些组件可从上面存储有各种数据结构的各种计算机可读媒体执行。所述组件可例如根据具有一个或一个以上数据包的信号(例如,来自借助于所述信号与本地系统、分布式系统中的另一组件交互和/或跨越例如因特网等网络而与其它系统交互的一个组件的数据)借助于本地和/或远程过程而通信。
在此描述中,术语“通信装置”、“无线装置”、“无线电话”、“无线通信装置”和“无线手持机”可互换使用。随着第三代(“3G”)和第四代(“4G”)无线技术的出现,较大带宽可用性已实现具有更多种类的无线能力的更多便携式计算装置。
在此描述中,术语“便携式计算装置”(“PCD”)用于描述基于有限容量电源(例如,电池)操作的任何装置。尽管电池操作的PCD已使用了数十年,但与第三代(“3G”)和第四代(“4G”)无线技术的出现关联的可再充电电池的技术进步已实现具有多种能力的许多PCD。因此,PCD可为(尤其)蜂窝式电话、卫星电话、寻呼机、PDA、智能电话、导航装置、智能本或阅读器、媒体播放器、上文提及的装置的组合,以及具有无线连接的膝上型计算机。
参看图1,此图是呈无线电话的形式的PCD100的示范性、非限制性方面的功能框图,所述PCD100用于实施用于管理PCD100内的处理器110、126的快速休眠状态的方法和系统。如图所示,PCD100包含芯片上系统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同时执行不同数目的应用程序界定的另一状态。
控制器101可包括由CPU110执行的软件。然而,控制器101也可由硬件和/或固件形成,如所属领域的一般技术人员所理解。
一般来说,控制器101可负责促进使处理器110、126快速进入休眠状态以及快速退出休眠状态。控制器101还可负责维持用于跟踪系统状态(如下文将描述)的一个或一个以上系统状态高速缓冲存储器2705(见图27B)。
控制器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中说明,显示控制器128和触摸屏控制器130耦合到数字信号处理器110。芯片上系统102外部的触摸屏显示器132耦合到显示控制器128和触摸屏控制器130。
图1是说明包含视频译码器/解码器(“编解码器”)134的便携式计算装置(PCD)的实施例的示意图,所述编解码器134例如逐行倒相制式(“PAL”)编码器、顺序与存储彩色电视系统(“SECAM”)编码器、国家电视系统委员会(“NTSC”)编码器或任何其它类型的视频编码器134。视频编解码器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中进一步说明,立体声音频CODEC150可耦合到模拟信号处理器126。此外,音频放大器152可耦合到立体声音频CODEC150。在示范性方面中,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图1展示麦克风放大器158也可耦合到立体声音频CODEC150。此外,麦克风160可耦合到麦克风放大器158。在特定方面中,调频(“FM”)无线电调谐器162可耦合到立体声音频CODEC150。并且,FM天线164耦合到FM无线电调谐器162。此外,立体声头戴式耳机166可耦合到立体声音频CODEC150。
图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和电源180在芯片上系统322外部。
PCD100的上述元件中的一些元件可包括硬件,而其它元件可包括软件,且另外其它元件可包括硬件与软件的组合。本文使用术语“资源”来指代任何此类元件,不论是硬件、软件还是其组合,其可由处理器控制。资源可在一个方面中界定为此元件的功能性的囊封。除非可能另外指示,否则本文使用术语“处理器”或“主处理器”来指代例如第一CPU110A、第二CPU110B等处理器、模拟信号处理器126,或指代在软件、固件或类似控制逻辑的控制下操作的任何其它处理器、控制器或类似元件。如下文进一步详细描述,资源的实例是在处理器上执行的软件元件。处理器上的执行线程(例如,与执行应用程序有关的线程)可通过致使发布关于资源的“请求”而存取所述资源。
在不同应用状态中,可能必须或需要处理器请求资源的不同配置或状态。举例来说,总线资源可控制总线时钟的速度。在一个应用状态中,处理器可请求允许处理器在例如100百万指令/秒(MIPS)的速率下操作的总线时钟,而在另一应用状态中,处理器可请求允许其在例如150MIPS的速率下操作的总线时钟。在处理器准备好进入为休眠状态的应用状态的情况下,处理器可请求零MIPS的总线时钟。类似地,在由处理器执行第一应用程序界定的一个应用状态中,处理器可请求100MIPS,而在由处理器执行第二应用程序界定的另一应用状态中,处理器可请求150MIPS。同样,在由处理器同时执行特定数目的应用程序界定的一个应用状态中,处理器可请求100MIPS,而在由处理器同时执行不同数目的应用程序界定的另一应用状态中,处理器可请求150MIPS。应理解,上文参考的总线时钟仅希望作为可通过处理器发布资源请求配置的资源的实例,而且数字“100”和“150”希望作为处理速度的任意实例。
资源配置或状态可分组为资源状态组。资源状态组界定由处理器在特定处理器应用状态中一起使用的一个或一个以上资源的配置或状态。举例来说,特定资源状态组可包含供总线时钟资源向处理器提供特定数目MIPS的处理速度的配置或状态信息,以及供解码器(即,资源的另一实例)向处理器提供解码功能的配置或状态信息。
图2是说明形成系统103的控制器101、系统功率管理器157、主处理器110、126、低级驱动器133、共享资源105A-C与本地资源105D-H之间的关系的功能框图。图2还说明触摸屏132可如何耦合到触摸屏驱动器/控制器130。触摸屏驱动器/控制器130可耦合到第一主处理器110A的时钟代码113A。
系统103可以使资源等待时间最小化的方式在处理器110需要的资源状态组之间切换。术语“资源等待时间”指代在主处理器110、126开始使控制器101和系统功率管理器157准备好转变到另一资源状态组的时间与所述组的资源变为配置为指定状态且准备就绪供处理器使用的时间之间发生的延迟或等待时间。如下文描述,资源状态组可广义上分类为:现用资源状态组,其中处理器具备经配置以辅助处理器执行应用程序以及以其它方式提供处理功率的资源;以及休眠资源状态,其中处理器仅具备辅助处理器维持休眠状态(即,其中处理器不在执行应用程序或以其它方式提供处理功率的状态)的资源。尽管休眠状态中的处理器维持低级功能,但处理器不执行将由所属领域的一般技术人员理解为应用程序的软件。应理解,下文描述的“下一现用状态”特征可应用于任何资源状态组之间的转变,而不管其为现用组还是休眠组。
在图2所示的示范性实施例中,第一主处理器110A可耦合到系统功率管理器157和控制器101。控制器101可耦合到第一主处理器110A的时钟代码113A。控制器101可包括一个或一个以上低级驱动器133。所述一个或一个以上低级驱动器133可负责与一个或一个以上共享资源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可将信息存储在存储器112中或控制器101内的区域(例如,本地存储装置)内,如所属领域的一般技术人员所理解。此信息可包括资源表302,其包含指派到控制器101所服务的每一主处理器110的资源组304。此信息还可包括也指派到每一主处理器110且对于每一主处理器110可为唯一的触发组314。
每一资源组304通常包括关于特定主处理器110需要的资源105的状态的信息。指派到特定主处理器110的每一资源组304可包括现用资源组306和休眠资源组308。现用资源组306可界定或描述当特定主处理器110为现用或正常起作用时资源105的状态。休眠资源组308可界定或描述当特定主处理器处于休眠或静止状态时资源105的状态,如所属领域的一般技术人员所理解。在图3中说明的示范性实施例中,每一资源组304还可包括指派到第一主处理器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的选择可避免上文在背景技术部分中描述的耗时的软件握手。
复查针对第一主处理器(A)110A的图3的第一触发组(触发组#1),所述组的字段依据列按序论述。以触发组314A的第一列开始,触发开始列322具有列举为对应于中断字段316的其第一行中的“解码中断”的动作。
如先前所述,中断字段316可界定致使控制器101响应于触发开始字段322的检测激活资源组304的状态的参数。在图3中说明的示范性实施例中,中断字段316A已界定或描述为“解码中断”,这意味着当系统功率管理器110检测到“解码中断”时(例如,当PCD100正解码视频时),此事件可警告控制器101复查“触发开始”列下方的第一列322A1中的“来自组”字段318。
“来自组”字段318可包括表示当前资源组304对于正由控制器101复查的特定主处理器110应为什么的值。此字段318可依据其识别符列举资源组304,例如“现用组”、“休眠组”,或比如“组1”或“组2”等组号。字段320还可包括比如星号等“通配符”。
“来自组”字段318中的通配符表示可致使控制器101检索正由特定主处理器101使用的最后已知的现用资源组304。在图3中说明的示范性实施例中,“来自组”行318A和触发开始列322A1具有星号或通配符的值。
与“来自组”字段318一样,“去往组”320可包括资源组304依据其识别符的列表,例如“现用组”、“休眠组”,或比如“组1”或“组2”等组号。字段320还可包括表示由处理器110利用的最后的资源组304的比如星号等“通配符”。在图3中说明的示范性实施例中,“去往组”字段320A和触发开始字段列322A1具有作为第一资源组304A的列310A中列举的资源组1的“组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可表示特定资源组304可由控制器101使用的时间量。因此对于图3说明的示范性实施例,针对第一触发组的定时器字段326A1,此字段具有三毫秒的值。这意味着当解码中断事件与第一触发组的触发开始字段322A1匹配时,控制器101利用“去往组”字段320A中指定的资源组304持续仅三毫秒的周期。在其它示范性实施例中,可发生或存在以下情形:定时器字段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是说明用于管理触发组314以将处理器110置于休眠状态的方法500的逻辑流程图。框505是方法500的第一步骤。在框505中,每一处理器110可基于来自PCD100的先前使用情况的数据视需要在控制器101(图1-2)中更新其资源组304以及其触发组314。
在框510中,处理器110可请求SPM157(图2)产生到控制器101的停闭信号。在框515中,SPM157可将停闭信号发送到控制器101。
控制器101可在框520中接收停闭信号且激活可指派给停闭事件(如图4中说明)的触发组314。在图4说明的示范性实施例中,使停闭信号与触发组314的中断字段316匹配。触发组314引导控制器101存取休眠组308,如“去往组”字段320中所指示。在框525中,控制器101可立即将确认信号发送到SPM157,同时控制器101继续激活与停闭信号事件匹配的触发组314所参考的资源组304。
在框530中,针对每一匹配的触发组314,例如在图4中说明的对应中断字段316中列举“停闭”事件的匹配的触发组314,控制器101可针对图3的主处理器110A将当前资源组304切换到休眠组308,例如第一资源组305A的休眠组308A。
接下来,在框535中,控制器101可向例如图2中说明的低级驱动器133发布休眠请求状态。低级驱动器133可将所请求的状态传递到对应的资源105。
在框540中,每一资源105可向控制器101和SPM157发布停闭信号确认。方法500可接着结束。
图6是说明用于管理触发组314以将处理器110从休眠状态置于现用状态的方法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可将识别哪些主处理器110已从休眠状态唤醒的唤醒确认发送到SPM157。接下来,在框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)中。框505的其它方面与上文参看框505(图5)所描述相同,且因此此处不描述。
框810、815、820、825、830、835和840分别与图5的框510、515、520、525、530、535和540相同,且因此此处不描述。注意,当处理器开始停闭时,其处于对应于“A”缓冲器702(图7)中存储的醒觉组的醒觉应用状态中。处理器接着以与上文参看图5描述相同的方式进入对应于“B”缓冲器704(图7)中存储的休眠组的休眠应用状态中。处理器在对应于“C”缓冲器706(图7)中存储的下一醒觉组的下一醒觉应用状态中从休眠应用状态醒觉(图6)。通过将下一醒觉组更新预先存储在“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)中,但处理器等到其已到达到休眠应用状态的转变过程中的“无返回点”(该术语是所属领域的一般技术人员所理解的)之后才再使用“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)以查找更新而响应于其与处理器之间发生的握手(框1020、1025),且存储所述更新以在图6的唤醒方法中使用。(可注意到,归因于使用中断告知接收方控制器101′处理器已写入到缓冲器的“消息”的方式,存储器缓冲器也称为“消息RAM”。)因此,通过将下一醒觉组预先存储在“A”缓冲器902(图9)中,控制器101′能够在唤醒事件后立即开始配置所述下一醒觉组指定的资源,借此帮助使资源等待时间最小化。
框1030、1035和1040分别与图5的框530、535和540相同,且因此此处不描述。处理器接着以与上文参看图5描述相同的方式相应地进入对应于“B”缓冲器904(图9)中存储的休眠组的休眠应用状态。处理器在对应于“B”缓冲器904(图9)中存储的下一醒觉组的下一醒觉应用状态中从休眠应用状态醒觉(图6)。通过预先存储下一醒觉组且尽可能早地应用所述下一醒觉组,控制器101′能够在唤醒事件后立即开始配置所述下一醒觉组指定的资源,借此帮助使资源等待时间最小化。
图11-23说明另一特征,其涉及调度上文描述的资源组转变。所属领域的一般技术人员理解,在许多例子中,处理器应用程序状态的上述改变可以相对可预测周期性发生。举例来说,在PCD100(图1)中,处理器可能必须执行视频播放器应用程序以在其中处理器可周期性(例如,每隔X毫秒)解码视频数据帧的状态中唤醒或以其它方式转变到所述状态。类似地,处理器可能必须控制PCD100的蜂窝式电话功能以例如在其中处理器可周期性(例如,每隔X毫秒)检查RF通信信号的状态中唤醒或以其它方式转变到所述状态。由于应用程序状态的周期性改变将发生的时间可预测,且由于资源完成到对应于下一应用程序状态的状态的转变所必需的时间量大体固定或恒定,所以必须开始切换资源状态组的过程的时间可预测。举例来说,可预测处理器在时间tdeadline需要具有处于示范性资源状态组(“R”)指示的状态的一组资源。此示范性资源状态组(“R”)可指定总线时钟资源将改变到例如100MHz且电源资源将改变到例如3V。可确定控制器101确保总线时钟资源和电源资源已完成这些转变将花费的时间量(“work_time”)。(术语“工作”指代控制器101必须执行以便实行资源状态转变的处理、配置和硬件控制。)因此,为在时间tdeadline使资源处于资源状态组“R”指示的状态,在此实例中,控制器101需要在tdeadline至少等于work_time之前的一时间量开始转变总线时钟和电源资源(图5中的步骤530和535、图8中的步骤830和835等)的过程。
在PCD100中,两个或两个以上处理器(例如,主处理器110A、110B、110C等,图2中)可请求在彼此非常接近的时间进行资源状态组转变,使得控制器101将需要致力于针对一个处理器转变资源同时致力于针对另一处理器转变资源。类似地,例如SPM157等另一元件可在控制器101正致力于转变资源或经调度以致力于转变资源的同时请求资源状态组转变。此类“冲突”条件是不合需要的,因为在示范性实施例中,控制器101不能同时执行这些任务。
图11是说明上述冲突条件的实例的时间线。控制器100开始下文描述的调度方法且检测冲突条件的近似时间标记为“tnow”。在图11所示的实例中,控制器101确定为在时间tdeadline_0使资源处于第一处理器所要求的状态中,控制器101需要在时间tstart_0开始将这些资源转变到所要求的状态的过程或工作(“work_0”)。类似地,控制器101确定为在时间tdeadline_1使资源处于第二处理器所要求的状态中,控制器101需要在时间tstart_1开始将这些资源转变到所要求的状态的过程或工作(“work_1”)。可注意,work_0与work_1之间的重叠表示冲突条件。
除了管理此冲突条件外,控制器101还可计算工作(“work_0”和“work_1”)的准确估计值-表示图11中说明的工作的箭头的实际长度/持续时间/时间。关于控制器101如何计算工作的准确估计值的更多细节将在下文结合图24-31描述。
图12以时间线形式说明用于缓解图11所示的冲突条件的方法。为缓解所述冲突,控制器可调度在开始work_1之前完成工作work_0。控制器101因此计算其将开始将这些资源转变到所要求状态以便在tstart_1(即,经修改截止时间tdeadline_0′)之前完成工作work_0的经修改时间tstart_0′:
tstart_0′=tdeadline_0-(tdeadline_1-work_1)。
可注意,以上计算中的tstart_0′相对于tnow。控制器101将开始将这些资源转变到所要求状态以便在tstart_1(即,经修改截止时间tdeadline_0′)之前完成工作work_0的截止时间tstart_0′的此计算由控制器101作出的准确工作负载估计进一步增强,如下文结合图24-31描述。图24-31展示控制器101可如何计算表示图11-12中说明的工作的箭头的实际长度/持续时间/时间。
图13是说明用于将处理器110从对应于休眠资源状态组的休眠应用状态转变到对应于现用资源状态组的现用应用状态的方法1300的逻辑流程图。方法1300类似于图6的上述方法600,只是方法1300包含调度控制器101执行以改变或转变资源状态的处理或工作。因为框1305、1310和1315分别与图6的框605、610和615相同,所以此处不对其进行描述。在框1318中,控制器101调度控制器101确定的针对一个或一个以上处理器的资源状态组转变将周期性改变应用状态。
如上文描述,应用状态的所预测改变具有相关联截止时间,到所述截止时间时对应于下一应用状态的资源组的资源将完全转变。此调度步骤可包含计算资源状态组转变完成将花费的时间量(“工作”),以及控制器101必须开始转变过程或“工作”以便到截止时间时完成转变的时间。此调度步骤还可包含以上文描述的方式或使用替代方法缓解任何调度冲突。因为框1320、1325和1330分别与框620、625和630相同,所以此处不对其进行描述。然而,框1322提供在框1320与1325之间,其中由控制器101基于实际工作负载值更新系统状态高速缓冲存储器2705。框1322的更多细节将在下文结合图27B描述。
图14是说明可包含在图13的框1318中以调度资源状态组转变的方法1400的逻辑流程图。例程或子方法框1402可包括通过利用控制器101(如图27B中说明)产生散列值且将其与系统状态高速缓冲存储器2705比较而估计工作负载。例程或子方法框1402的更多细节将结合下文描述的图27和31进一步详细描述。框1405指示控制器101可评估以下表达式:
tdeadline_X-work_X<tdeadline_y,
其中x和y是针对资源状态转变的两个请求(例如,来自第一处理器X和第二处理器y),且其中x>y。如果所述表达式评估为假,那么两个请求之间不存在冲突条件,且方法结束。如果所述表达式评估为真,那么存在上文参看图11描述的类型的冲突条件。如果确定存在冲突条件,那么控制器101可在框1410中计算经修改开始时间以缓解冲突:
tstart_X′=tdeadline_X-(tdeadline_y-work_y)。
控制器101可用经修改开始时间替换原始调度的资源状态组转变开始时间。
用于缓解调度冲突的方法还可考虑非调度资源状态组转变请求。如上文描述,经调度资源状态组转变请求包含周期性发生或以其它方式可预测的请求。非调度资源状态组转变请求可由于不可预测事件(例如,用户使用触摸屏132(图2)执行致使PCD100唤醒一个或一个以上处理器的动作)而发生。非调度请求不具有资源状态组转变必须完成的相关联截止时间(“tdeadline”)。而是,其仅适当指代资源状态组转变如果在特定时间开始则将完成的时间(“tdone”)。
图15是说明在一旦非调度资源状态组转变请求在tnon-scheduled_1发生控制器101就开始处理(即,致力于)所述请求且继续致力于所述请求直到资源状态组转变在tdone_1完成为止的情况下可能发生的冲突条件的时间线。注意,在tstart_0开始且在tdeadline_0结束的经调度请求的处理(“work_0”)与非调度请求的处理(“work_1”)重叠。
图16是说明用于缓解图15的冲突条件的简单示范性方法的时间线。为缓解冲突条件,控制器101可首先转变与经调度请求相关联的资源且接着转变与非调度请求相关联的资源。
图17是说明用于缓解图15的冲突条件的第二简单示范性方法的时间线。为缓解冲突条件,控制器101可首先转变与经调度请求相关联的资源且接着转变与非调度请求相关联的资源。然而,不同于图16所示的方法,work_0的开始tstart_0较早移动到tstart_0′以允许较早完成work_1以避免对非调度工作的延迟。
图18是用于缓解图15的冲突条件的另一示范性方法的时间线。为缓解冲突条件,控制器101可首先计算经修改开始时间:
tstart_1=(tdeadline_0-work_0)-tnow。
控制器101可在经修改开始时间tstart_1开始转变与非调度请求相关联的资源的工作的子集或一部分。接着,在tstart_0处,控制器101停止致力于转变与非调度请求相关联的资源,而是切换到转变与经调度请求相关联的资源。在控制器101在tdeadline_0处完成转变与经调度请求相关联的资源之后,控制器101可返回到转变与非调度请求相关联的资源的工作。
图19说明转变与资源状态组改变请求相关联的资源的过程中涉及的工作或处理可在许多例子中划分为子集或部分“work0”到“workN”。转变与资源状态组改变相关联的资源的过程中涉及的工作或处理可涉及许多离散任务。因此,控制器101可容易地能够在此类离散任务之间临时中止转变到另一资源状态组的过程。举例来说,图18中tstart_1与tstart_0之间发生的处理或工作的部分可包括一个或一个以上此类离散任务。
图20是说明工作的子集或一部分可比预期早完成从而导致比截止时间tdeadline早完成工作tdone的时间线。这可导致浪费功率,因为工作中涉及的资源比满足截止时间所需更早地消耗功率(如所属领域的一般技术人员所理解)。
图21说明用于缓解图20的浪费功率条件的示范性方法。为缓解所述条件,可延迟或“拖延”在较早完成的工作的子集或部分之后的工作的后续子集或部分。可延迟“workN+1”直到“workN”预期完成为止,以避免由于在“workN”之后改变工作中的资源而产生的功率影响。
图22更充分说明离散任务概念且展示例如可在tstart_1与tstart_0之间执行部分work2_1。应注意,由于在转变资源状态组的资源的过程中所涉及的一些离散任务不取决于其它任务,所以此类任务可以任何适宜的次序执行。因此,举例来说,尽管工作可在图19中展示为涉及循序任务,但在不按顺序执行任务(例如,在work0_1之前执行work2_1)的一些例子中可能无不利后果。还应注意,离散任务或部分可不具有彼此相等长度。因此,如果离散任务或部分的一者(例如,work2_1)比资源状态组转变的其它部分更好地配合图22所示的实例中的tstart_1与tstart_0之间的时间间隔,那么控制器101可通过以此次序执行所述部分而优化方法。一般来说,可能需要尽可能早地对资源状态组转变执行尽可能最多的动作。因此,相比于在图22所示的实例中的tstart_1与tstart_0之间的时间间隔中执行较短部分且因此刚好在tstart_0之前留下不执行工作的间隙,可能更需要执行刚好配合所述时间间隔的较长部分。
图23是说明用于调度资源状态转变的处理的方法2300的逻辑流程图。方法2300更一般地传达可为经调度或非调度的两个以上请求可需要同时处理的概念。(为清楚起见,上文参看图11-22描述的方法涉及仅处理一个或两个请求以及其间的冲突条件的概率。)
方法2300在状态2305中开始,状态2305可由于以下条件的任一者已发生而达到:控制器101响应于请求而完成转变资源状态的过程中涉及的处理或工作;控制器101接收对于资源状态组转变的非调度请求;或控制器101确定用于处理资源状态转变的经调度开始时间(“tstart”)即将来临。在框2310(其表示方法2300的开始)中,控制器101确定任何处理或工作是否已调度,如上所述,此类处理或工作可经调度以按周期性间隔开始,但经调度开始时间可经修改以缓解冲突条件。
如果控制器101确定该是执行此类经调度处理或工作的时间,那么控制器101执行如框2315指示的处理或工作。如果控制器101确定不是执行任何经调度处理或工作的时间,那么类似于图14的框1402,在框2317处,控制器可通过产生散列值且将其与系统状态高速缓冲存储器2705比较来估计工作负载。将结合下文描述的图27和31进一步详细描述例程或子方法框2317的更多细节。
在框2320中,控制器101可处理待决的任何非调度请求。可存在一个以上待决的非调度请求。并且,非调度请求可具有与其相关联的优先级。如果一个以上非调度请求待决,那么控制器101致力于最高优先级待决非调度请求的部分,从所述时间开始直到下一经调度工作开始时间(tstart)为止。下一开始时间tstart_next为:
tstart_next=(tdeadline_next-work_next)-tnow。
注意,以上计算中的tstart_next相对于tnow。
当控制器101完成对与非调度请求相关联的工作的一部分(见图19)的处理或工作时,控制器101确定所述处理或工作是否包含更多部分,如框2325指示。如果存在更多部分,那么控制器101以与上文参看框2020描述相同的方式致力于下一部分。上文的术语“最高优先级”指代可包含在一些实施例中的优先排序方案。举例来说,可向源自用户“切断”PCD100(即,经由触摸屏132(图1)起始低功率状态)的非调度请求指派比其它非调度请求低的优先级。
当工作完成时,在框2330中,类似于图13的框1322,系统状态高速缓冲存储器2705由控制器101基于实际工作负载值更新。下文将结合图27B描述框1322的更多细节。
图24是说明可由便携式计算装置100中的一个或一个以上资源105处理的各种工作负载的图形。在图24中说明的示范性实施例中,描绘四个工作负载:工作负载A、工作负载B、工作负载C和工作负载D。
所估计截止时间2405A可对应于工作负载D必须在此截止时间2405内完成的时间(可影响其它工作负载的开始和结束时间)。在一些情况下,截止时间2405可致使其它工作负载比不存在工作负载D的情况下原本的时间更早开始。
如果系统103(且特定来说,如果控制器101)不具有总工作负载(总计的工作负载A-D)或完成所述各个工作负载的时间的准确估计,那么控制器101可产生次佳调度,这可导致额外功率被系统103不必要地消耗。举例来说,假定截止时间2405A是系统产生的所估计截止时间。
且假设在第二图形中,说明所记录的完成工作负载的实际时间,其中第二截止时间2405B描绘在所有工作负载完成之后在系统103内发生的实际截止时间。系统103将继续为与第四工作负载D相关联的资源加电直到所估计截止时间2405A为止,这将产生系统的所浪费功率(由框2410表示)。
在最佳工作负载情境中,资源105可由系统103(且特定来说,控制器101)接通得越迟,则将有越少功率被系统103消耗,如所属领域的一般技术人员所理解。在此最佳情境中,功率成本与具有工作负载的不太准确估计值的系统相比将较低(为关于完成工作负载时的时间的估计值)。
在同时工作情形中,准确的工作负载估计致使系统103更准确地确定是否存在工作负载的实际同时性或工作负载的重叠使得系统需要将内容较早调度或将开始时间较早推送到时间线以便确保满足所有截止时间。工作负载估计值越准确,则工作负载重叠将越乐观且更准确,且因此,控制器101将通常不会早于其需要完成同时工作负载的时间接通资源105。
在系统103的示范性实施例中,控制器101使用散列值来表示系统状态以及转变。控制器101对当前系统状态以及转变执行散列操作。转变可包含如上文参看图3-4描述的休眠和现用组。控制器101还对客户端产生的去往一个或一个以上资源105的传入请求执行散列操作。
如图1-3中说明的控制器101计算上文描述的散列值。控制器101正取通常由在示范性实施例中具有约800字节长度的数据结构表示系统的状态的元素,且将其缩减为具有约4字节或约32位长度的数据结构。在一些示范性实施例中,这些数据结构或散列值可具有64位长度。这些数据结构的其它尺寸在本发明的范围内,如所属领域的一般技术人员所了解。这些缩减的数据结构可存储在系统状态高速缓冲存储器2705(见图27B)中,其中每一较小数据结构具有指派到其自身唯一识别符的约4字节。
整个系统103的状态可容易由具有约800字节长度的数据结构表示。同时,从客户端发起的请求可包括具有达800字节的数据结构,但此类请求可大大少于约800字节。
控制器101可使用混合函数和组合函数作为其散列2600的一部分(见图26)。散列2600的混合函数强调单一位差异,如所属领域的一般技术人员所了解。举例来说,在两个不同系统状态之间(其中每一者可用具有约800字节大小的数据结构表示),两个状态之间的差异可非常微小且可归结为大小方面约2或3字节的差异。
同时,散列2600的混合函数试图强调系统状态之间的那些单一位差异,其在其表征方面彼此非常接近,具有拥有约800字节大小的数据结构。混合函数产生唯一散列值,这通常改进系统散列值的准确性。
关于组合函数,此函数使用一状态拓扑,所述状态拓扑致使系统状态之间的分组在散列值中产生更大唯一性。组合函数的一个目标是取N状态且将其归结到单一1状态表不。
图25是说明根据系统103的一个示范性实施例状态拓扑内的分组的图表2500。图25例示系统内的元素之间的差异可如何非常微小。举例来说,第一时钟“a”可具有200MHz的频率,而第二时钟“b”具有100MHz的频率。类似地,第一电压调整器“a”可具有1000mV的设定,而第二电压调整器“b”可具有1015mV的设定。
图26是说明控制器101使用的散列函数2600的一个实施例的示范性特征的图表。如先前所述,散列函数2600的示范性实施例使用混合和组合函数。组合函数向将系统状态表示为旋转函数的种子的数据结构中使用指派到每一资源105的唯一指数,这在图26中说明的散列2600的示范性实施例中包括将所述指数乘以13模数乘以32。特定来说,在图26的散列2600的示范性实施例中,选择数字13和32,因为其相对具有代表性且可产生近似32个资源上一组唯一旋转。
已发现,便携式计算装置100中通常存在类似且在一拓扑中分组的少于32个资源。组合函数内的旋转函数允许关于每一资源影响散列2600内的哪些位的一定程度的随机化。这允许例如通过在散列2600内的不同位周围散布时钟读数而非集中散列2600的前四个或前五个位内的所有时钟读数差异,来从散列2600实现更大唯一性。
组合函数正使用每一资源唯一指数的旋转来扭曲系统元素的每一者使得其处于不同旋转角。换句话说,通过使用每一唯一资源识别符(其也可称为状态拓扑指数)用于旋转,可在状态元素的分组上实现更大唯一性。旋转允许将元素与类似状态组合,同时使此组合将抵消重要信息的任何几率最小化。
通过以此方式进行旋转,当系统元素压缩时,其差异(尽管如上文论述是微小的)不会重叠那么多,如所属领域的一般技术人员所理解。在不旋转的情况下,当状态之间的微小差异组合时,状态信息可在散列2600中丢失。
每当系统的当前状态改变时,可更新散列2600。在下文描述的图27-31中说明的示范性实施例中,当存在更新时,整个系统103不再次执行散列操作。仅系统103的已改变的部分用散列2600更新。所属领域的一般技术人员认识到,在其它示范性实施例中,如果此实施例对系统103提供了一些优点,那么整个系统103可再次执行散列操作。
在大多数常规散列中,使用反馈。所述反馈通常包括散列更新之前散列的结果。此反馈实施例包含所属领域的一般技术人员所理解的比如MD5和SHA。
在其它散列系统中,可不使用反馈,其中使用XOR(异或)技术在旧信息上组合新信息,如所属领域的一般技术人员所理解。然而,在不使用反馈的此类散列系统中,可发生新信息与旧信息之间的显著量的冲突。
在上文描述的示范性散列2600中,系统103(且特定来说,控制器101)正考虑字段如何具备唯一识别符(但字段的内容可彼此相似)。控制器101可通过使用其唯一指数旋转这些相似点而减轻这些相似点。虽然字段的状态可具有类似值,但利用唯一识别符,控制器101辨识每一字段表示单独且不同资源105的状态。以此方式,提供可更新散列2600,其类似于如上文描述具有反馈回路的散列操作。
散列2600允许系统快速识别当前存在什么系统状态。控制器101维持系统状态高速缓冲存储器(见图27B),其记录针对实现结果和系统状态的各个工作负载所花费的实际时间。系统状态高速缓冲存储器2705中针对各个工作负载所花费和记录的实际时间与上文提及的图13的框1322和图23的框2330对应。系统103的示范性实施例中的散列允许控制器101识别系统103处于的当前状态。
散列允许当发生状态改变时跟踪系统状态。利用本文描述的可更新散列2600,所述操作相对于当发生系统状态的改变时更新散列所需的计算能力并非非常昂贵的操作。
举例来说,对于相对于作为现用组的当前组将在将来发生的例如休眠组等一组状态,可针对将来将发生的休眠组产生散列2600。休眠组的散列2600可在休眠组实际上实施之前发生对休眠组的改变时更新。散列2600可设定为仅当将针对可包含对资源105的改变的给定状态发生即刻改变时更新。此针对即刻请求对于散列2600的更新可经执行以确定即刻请求是否可影响当前调度的任何其它将来请求的状态(例如,上文描述的休眠组实例)。
通过以递归方式计算散列值以解决系统103内的多个经调度转变,来自每一转变的所计算系统状态可用于确定将来转变的初始系统状态使得较准确的基于高速缓冲存储器/散列的工作负载估计用于每一将来转变。工作负载估计越准确,则可通过较接近其被系统所需要接通资源来作出越高效调度,这可减少系统的总体功率消耗。此外,系统状态的估计越快,则越少开销可考虑到调度中。
图27A是说明可在图27B的系统状态高速缓冲存储器2705中使用的元件的图表2702。大写字母“S”可表示系统状态散列2600,而小写字母“a”可表示子状态或动作(请求)的散列2600的结果。控制器101使用系统状态和子状态来寻找系统状态高速缓冲存储器2705中的匹配使得可找到工作负载(以时间(t1)为单位)。
图27B说明跟踪当前系统状态(由系统状态列2710中的大写字母“S”表示)以及子状态或动作(例如,系统状态列2715中的小写字母“a”表示的传入请求或休眠组、现用组)用于计算所得系统状态(由结果系统状态列2725中的大写字母“S”表示)的系统状态高速缓冲存储器2705。系统状态高速缓冲存储器2705中的子状态或动作值“a”是散列2600及其由上文描述的控制器101作出的计算的结果。
针对散列2600的计算由控制器101从希望将来完成的请求组(例如,现用或休眠组)或希望几乎即刻完成的请求组导出。系统考虑希望几乎即刻完成的请求如何可影响将在不远的将来发生的将来或经调度请求。
控制器101还跟踪针对所述转变的最差情况工作负载估计(以时间为单位)(由估计列2720中的小写字母“t”表示)。系统状态高速缓冲存储器2705由控制器101通过使用散列2600及其计算而持续更新。当接收到传入请求时,计算列2715中的子状态或“a”值。也可当控制器101接收到请求时更新列2715中的子状态或“a”值。
系统状态高速缓冲存储器2705基本上是针对系统记录的过去已发生的系统103的状态的历史。因此举例来说,取系统状态高速缓冲存储器2725的第一行,在过去,接收子状态或动作“a1”的系统状态S1产生系统状态S2,且达到此新的系统状态S2所花费的时间为时间t1。
系统通过将当前系统状态与系统状态列2710中的每一值比较且通过将当前子状态或动作与系统状态列2715中的每一值比较以便找到匹配行而使用系统状态高速缓冲存储器2705。一旦系统识别对应的系统状态值2710和子状态值2715,系统就可使用来自时间估计列2720的时间估计“t”。系统还可使用来自列2725的所得系统状态的估计。
对于新的系统状态,例如可能从未在系统状态高速缓冲存储器2705中记录的系统状态S5,或如果其是太旧且由系统状态高速缓冲存储器2705丢弃或替换的系统状态,那么控制器可执行充分计算以确定对于列2720以及列2725中记录的所得系统状态的时间估计。
插入在系统状态高速缓冲存储器2705中的每一时间估计“t”在列2715的实际动作或子状态应用于列2710中列举的当前系统状态之前使用由控制器101计算的最差情况情境。一旦列2715的实际动作或子状态应用于当前系统状态,就记录完成所述实际动作或子状态所花费的实际时间且将其放置到系统状态高速缓冲存储器2705中(在其长于系统确定的先前估计的情况下,其为实际时间)。这允许对系统状态高速缓冲存储器2705中记录的时间估计“t”的持续改进。
所属领域的一般技术人员将认识到,代替于用针对当前动作花费的实际时间更新系统状态高速缓冲存储器2705中在列2720中记录的时间估计“t”,所保存的时间估计可包括滑动窗平均值、加权系统平均值、系统观察到的最差情况时间,和其它类似值。在图27中说明的示范性实施例中,系统观察到的最差情况时间记录在时间估计列2720中。
此最差情况时间值可确保时间估计决不小于系统103基于所发布的请求执行的实际工作负载。已发现,此最差情况时间值不允许系统过高估计工作负载超过近似1%使得工作负载准时调度且准时完成。
图28是可在图27B的系统状态高速缓冲存储器中找到的系统状态转变的图形表示。举例来说,图28说明系统状态S1可如何接收散列函数计算的动作或子状态a1。参看图27B,系统状态S1与子状态a1之间存在匹配。系统状态高速缓冲存储器2705规定,将此动作a1应用于当前系统状态S1将产生具有工作负载估计t1的第二系统状态S2。类似地,依据接收动作a2的第二系统状态S2(如图28中说明),系统状态高速缓冲存储器2705中也存在匹配,其展示来自此动作a1的所得系统状态是具有工作负载估计t2的第一系统状态S1,等等。
图29说明包括三个示范性工作负载的同时工作负载情境:第一经调度工作A2905A、第二经调度工作B2905B和第三经调度工作C2905C。每一相应工作负载可具有由虚线表示的其自身唯一完成截止时间A、B和C。
可由控制器101针对每一工作负载计算最差情况时间tw。由于第三经调度工作C2905C的最差情况时间tcw具有特定长度或持续时间,所以控制器101的此计算的最差情况时间tcw致使经调度工作B2905B大大早于其经调度截止时间B开始和完成(如图29中说明)。
类似地,由于第二经调度工作B2905B的最差情况时间tbw具有特定长度或持续时间,所以此计算的最差情况时间tbw致使经调度工作A2905A大大早于其经调度截止时间A开始和完成(如图29中说明)。此表示第三经调度工作C2905C的最差情况时间tcw可如何影响第一经调度工作A2905A的开始和完成时间以及第二经调度工作B2905B的开始和完成时间。
图30说明在特定状态转变已与系统状态高速缓冲存储器2705匹配之后图29的同时工作负载情境。在图30的示范性实施例中,假定系统状态高速缓冲存储器2705具有针对第一工作A2905A和第二工作B2905B的值。
系统状态高速缓冲存储器2705中的值可包括当前系统状态S1,其中第一工作A2905A由子状态a1表示,所述子状态a1取时间t1的所估计工作负载以达到所得第二系统状态S2。依据第二系统状态S2且应用子状态a3表示的第二工作B2905B,在时间t2的所估计工作负载上达到所得第四系统状态S4。
同时,对于子状态a5表示的第三工作负载C2905C的值,tcw表示的所估计工作负载和所得系统状态是未知的。换句话说,子状态a5及其对应工作负载tcw的值和所得系统状态不填充在图27B的系统状态高速缓冲存储器2705中。
系统通常通过将第二工作负载B2905B的完成时间与第三工作负载C2905C的开始时间比较而向后工作。然而,第二工作负载B2905B受如图29中说明的第一工作负载A2905A的完成时间影响。
由于第一工作负载A2905A和第二工作负载B2905B的值是已知的且填充在系统状态高速缓冲存储器2705中,所以控制器101辨识第一工作负载A2905A将在所估计完成时间3010A(其也是在此实例中第一工作负载A2905A必须完成的实际截止时间3015A)准时完成而无与第二工作负载B2905B的任何重叠。类似地,控制器101辨识第二工作负载B2905B将在所估计完成时间3010B且实际上在其经调度截止时间3015B之前准时完成。
因此,控制器101可基于第二工作B2905B的所估计完成时间3010B估计第三工作C2905C的最差情况工作负载tcw。控制器101递归经过或检查如上文描述的状态以实现工作完成时间的较好估计,使得资源105较接近其实际上被需要且仅针对实际上需要其来服务于一个或一个以上请求的时间(持续时间)而接通或利用。
在图30的实例中,发现基于时间t2的第二工作负载2905B的所计算所估计开始时间3005B不与第一工作负载2905A的所估计完成时间和截止时间3010A、3015A重叠或对其干扰。在此示范性实施例中,因而控制器101可接着聚焦于第三工作负载C2905C的计算。
图30对应于上文描述的图12之处在于,控制器101现具有来自系统状态高速缓冲存储器2705的允许控制器101计算图12中描绘的工作负载的实际长度或时间(箭头的长度)的信息。换句话说,先前,控制器101不具有与上文描述的图12一起使用的工作负载和所估计完成时间的准确估计。仅最差情况情境计算已先前结合图12使用。利用系统状态高速缓冲存储器2705,控制器101关于所估计完成时间的较准确计算是可能的,因为图27B的系统状态高速缓冲存储器2705持续改善,如所属领域的一般技术人员所理解。
依据图12,这意味着work_0和work_1的实际长度(以时间单位计算的箭头的长度,比如秒或毫秒)可提供在图27B的系统状态高速缓冲存储器2705中。此外,系统状态高速缓冲存储器2705提供在开始时间tstart_0′以及在tdeadline_0′和tstart_1及tdeadline_1系统103的状态的信息。
图30反映添加不同工作负载可如何影响系统103的状态。控制器101必须考虑经添加以供完成的每一工作负载。以及对于工作负载的同时性,可在稍后时间添加的每一额外工作负载可需要重新计算将与新添加的工作负载组合完成的所有工作负载的开始和完成时间,如所属领域的一般技术人员所理解。利用较准确且基于系统状态的工作负载估计,这允许控制器101准确估计所有经调度任务的开始时间和完成时间。
如先前所述,控制器101可通过复查并评估不论何时将新任务和/或请求添加到调度表时将被调度的所有请求和/或任务而计算散列2600。或者,且在上文描述的示范性实施例中,控制器101仅基于所接收的新任务和/或请求且通过确定每一个别任务和/或请求可如何具有关于经调度的其它任务和/或请求的影响(特定来说,新任务和/或请求可如何影响其它任务和/或请求的开始时间和/或完成时间)而计算对散列2600的更新。换句话说,在上文描述的示范性实施例中,仅评估针对系统散列2600的变量(改变)(产生部分散列),而非调度表中的整个任务和/或请求(并非系统103的完整散列2600)。在上文描述的示范性实施例中,转变的变量或差异显著小于可具有800字节的存储器大小的总系统状态。
控制器101使用散列值表示系统状态且跟踪状态之间的转变。系统正使用散列2600和系统状态高速缓冲存储器2705一起来获得对于时间上(依据时间)共同定位的事件的准确估计以便加速便携式计算装置100的资源105之间任务和/或请求的处理。
图31是用于通过产生散列值且将散列值与系统状态高速缓冲存储器2705比较而估计工作负载的图14的子方法或例程1402以及图23的子方法2317的流程图。框3105是子方法1402、2317的第一框。在框3105中,控制器101基于如图26中说明的散列2600产生整个系统103的散列值。通常,此框3105仅由控制器101执行一次。
接下来,在框3110中,控制器101基于传入请求和/或任务使用散列2600更新散列值。在框3115中,控制器101将已经计算的散列值与存储在系统状态高速缓冲存储器2705中(如图27B中说明)的散列值比较。在框3120中,控制器101确定图27B的系统状态高速缓冲存储器2705内是否存在值之间的匹配。
在框3125中,控制器101基于高速缓冲存储器2705内找到的任何匹配且基于控制器101可能需要执行的针对非匹配的任何计算估计工作负载。如先前所述,子方法1402、2317可通过在任何工作需要由资源105的一者或一者以上执行之前返回到框3110而执行部分更新。
本说明书中描述的过程或过程流程中的某些步骤自然先于其它步骤以使得本发明如所描述发挥作用。然而,本发明不限于所描述的步骤的次序,只要此类次序或序列不更改本发明的功能性。即,应认识到,一些步骤可在其它步骤之前、之后或与其它步骤并行(大体同时)执行,而不脱离所揭示的系统和方法。在一些例子中,某些步骤可省略或不执行而不脱离如所属领域的一般技术人员所理解的方法。此外,例如“随后”、“接着”、“接下来”等词语不希望限制步骤的次序。这些词语仅用于引导读者通读示范性方法的描述。
鉴于以上揭示内容,编程领域的一般技术人员能够编写计算机代码或识别适当硬件和/或电路来基于例如本说明书中的流程图和相关联描述容易地实施所揭示的发明。因此,对一组特定程序代码指令或详细硬件装置的揭示不应认为对于适当理解如何制造和使用本发明是必需的。在以上描述中且结合图式(其可说明各种过程流程)更详细阐释所主张的计算机实施的过程的创新性功能性。
在一个或一个以上示范性方面中,可以硬件、软件、固件或其任何组合来实施所描述的功能。如果实施于软件中,那么可将所述功能作为一个或一个以上指令或代码存储在计算机可读媒体上。计算机可读媒体可包含可由计算机存取的任何可用非暂时性媒体。借助实例而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用以携载或存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。
如本文使用的磁盘和光盘包含压缩光盘(“CD”)、激光光盘、光学光盘、数字多功能光盘(“DVD”)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上的组合也应包含在计算机可读媒体的范围内。
因此,尽管已详细说明和描述选定方面,但将理解,可在不脱离如所附权利要求书界定的本发明的精神和范围的情况下在其中作出各种替换和更改。
Claims (40)
1.一种用于管理便携式计算装置的应用状态的方法,所述便携式计算装置具有至少一个处理器和多个处理器资源,所述方法包括:
将第一资源状态组和第二资源状态组维持在存储器中;
发布在对应于所述第一资源状态组的第一应用状态中操作的处理器从所述第一应用状态转变到对应于所述第二资源状态组的第二应用状态的请求;
通过从散列函数产生散列值且通过比较存储在存储器中的系统状态估计用以完成资源到各个状态的转变的处理时间量;
基于所述所估计的处理时间量调度用以开始将资源转变到所述第二资源状态组中所指示的状态的开始时间;以及
在经调度的开始时间,开始将一个或一个以上资源的状态从所述第一资源状态组所指示的状态切换到所述第二资源状态组所指示的状态的过程。
2.根据权利要求1所述的方法,其中:
所述第一资源状态组是对应于所述处理器的休眠应用状态的休眠资源状态组;且所述第二资源状态组是对应于所述处理器的现用应用状态的现用资源状态组。
3.根据权利要求1所述的方法,其中所述调度开始时间以及开始所述切换状态的过程的步骤由控制器执行。
4.根据权利要求1所述的方法,其中调度开始时间包括:
确定在切换与针对第一处理器发布的第一请求相关联的状态的第一过程与切换与针对第二处理器发布的第二请求相关联的状态的第二过程之间是否存在冲突条件;以及
如果确定存在冲突条件,那么通过修改开始时间来缓解所述冲突条件。
5.根据权利要求1所述的方法,其中所述散列函数使用组合函数和混合函数的至少一者。
6.根据权利要求1所述的方法,其中存储在存储器中的所述系统状态包括依据所述散列函数计算的散列值和实际工作负载完成时间。
7.根据权利要求1所述的方法,其进一步包括:
依据所述散列函数产生表示系统状态的散列值;以及
将所述散列值与存储在存储器中的系统状态比较。
8.根据权利要求1所述的方法,其进一步包括:
将系统状态存储在作为高速缓冲存储器的存储器中。
9.根据权利要求1所述的方法,其进一步包括:
基于一个或一个以上处理器资源所执行的实际工作更新存储在存储器中的系统状态。
10.根据权利要求1所述的方法,其中所述便携式计算装置包括以下中的至少一者:蜂窝式电话、卫星电话、寻呼机、个人数字助理PDA、智能电话、导航装置、智能本或阅读器、媒体播放器和具有无线连接的膝上型计算机。
11.一种用于管理便携式计算装置的应用状态的计算机系统,所述便携式计算装置具有至少一个处理器和多个处理器资源,所述系统包括:
处理器,其可操作以:
将第一资源状态组和第二资源状态组维持在存储器中;
发布在对应于所述第一资源状态组的第一应用状态中操作的处理器从所述第一应用状态转变到对应于所述第二资源状态组的第二应用状态的请求;
通过从散列函数产生散列值且通过比较存储在存储器中的系统状态来估计用以完成资源到各个状态的转变的处理时间量;
基于所述所估计的处理时间量调度用以开始将资源转变到所述第二资源状态组中所指示的状态的开始时间;以及
在经调度的开始时间,开始将一个或一个以上资源的状态从所述第一资源状态组所指示的状态切换到所述第二资源状态组所指示的状态的过程。
12.根据权利要求11所述的系统,其中:
所述第一资源状态组是对应于所述处理器的休眠应用状态的休眠资源状态组;且所述第二资源状态组是对应于所述处理器的现用应用状态的现用资源状态组。
13.根据权利要求11所述的系统,其中所述调度开始时间以及开始所述切换状态的过程的步骤由控制器执行。
14.根据权利要求11所述的系统,其中所述处理器可操作以用于调度开始时间包括:
所述处理器可操作以用于确定在切换与针对第一处理器发布的第一请求相关联的状态的第一过程与切换与针对第二处理器发布的第二请求相关联的状态的第二过程之间是否存在冲突条件;以及
如果确定存在冲突条件,那么通过修改开始时间来缓解所述冲突条件。
15.根据权利要求11所述的系统,其中所述散列函数使用组合函数和混合函数的至少一者。
16.根据权利要求11所述的系统,其中存储在存储器中的所述系统状态包括依据所述散列函数计算的散列值和实际工作负载完成时间。
17.根据权利要求11所述的系统,其中所述处理器进一步可操作以用于:
依据所述散列函数产生表示系统状态的散列值;以及
将所述散列值与存储在存储器中的系统状态比较。
18.根据权利要求11所述的系统,其中所述处理器进一步可操作以用于:
将系统状态存储在作为高速缓冲存储器的存储器中。
19.根据权利要求11所述的系统,其中所述处理器进一步可操作以用于:
基于一个或一个以上处理器资源所执行的实际工作更新存储在存储器中的系统状态。
20.根据权利要求11所述的系统,其中所述便携式计算装置包括以下中的至少一者:蜂窝式电话、卫星电话、寻呼机、个人数字助理PDA、智能电话、导航装置、智能本或阅读器、媒体播放器和具有无线连接的膝上型计算机。
21.一种用于管理便携式计算装置的应用状态的计算机系统,所述便携式计算装置具有至少一个处理器和多个处理器资源,所述系统包括:
用于将第一资源状态组和第二资源状态组维持在存储器中的装置;
用于发布在对应于所述第一资源状态组的第一应用状态中操作的处理器从所述第一应用状态转变到对应于所述第二资源状态组的第二应用状态的请求的装置;
用于通过从散列函数产生散列值且通过比较存储在存储器中的系统状态来估计用以完成资源到各个状态的转变的处理时间量的装置;
用于基于所述所估计的处理时间量调度用以开始将资源转变到所述第二资源状态组中所指示的状态的开始时间的装置;以及
用于在经调度的开始时间开始将一个或一个以上资源的状态从所述第一资源状态组所指示的状态切换到所述第二资源状态组所指示的状态的过程的装置。
22.根据权利要求21所述的系统,其中:
所述第一资源状态组是对应于所述处理器的休眠应用状态的休眠资源状态组;且所述第二资源状态组是对应于所述处理器的现用应用状态的现用资源状态组。
23.根据权利要求21所述的系统,其中调度开始时间以及开始所述切换状态的过程由控制器执行。
24.根据权利要求21所述的系统,其中所述用于调度开始时间的装置包括:
用于确定在切换与针对第一处理器发布的第一请求相关联的状态的第一过程与切换与针对第二处理器发布的第二请求相关联的状态的第二过程之间是否存在冲突条件的装置;以及
用于在确定存在冲突条件的情况下通过修改开始时间来缓解所述冲突条件的装置。
25.根据权利要求21所述的系统,其中所述散列函数使用组合函数和混合函数的至少一者。
26.根据权利要求21所述的系统,其中存储在存储器中的所述系统状态包括依据所述散列函数计算的散列值和实际工作负载完成时间。
27.根据权利要求21所述的系统,其进一步包括:
用于依据所述散列函数产生表示系统状态的散列值的装置;以及
用于将所述散列值与存储在存储器中的系统状态比较的装置。
28.根据权利要求21所述的系统,其进一步包括:
用于将系统状态存储在作为高速缓冲存储器的存储器中的装置。
29.根据权利要求21所述的系统,其进一步包括:
用于基于一个或一个以上处理器资源所执行的实际工作更新存储在存储器中的系统状态的装置。
30.根据权利要求21所述的系统,其中所述便携式计算装置包括以下中的至少一者:蜂窝式电话、卫星电话、寻呼机、个人数字助理PDA、智能电话、导航装置、智能本或阅读器、媒体播放器和具有无线连接的膝上型计算机。
31.一种计算机程序产品,其包括其中体现有计算机可读程序代码的计算机可用媒体,所述计算机可读程序代码适于经执行以实施一种用于管理便携式计算装置的应用状态的方法,所述便携式计算装置具有至少一个处理器和多个处理器资源,所述方法包括:
将第一资源状态组和第二资源状态组维持在存储器中;
发布在对应于所述第一资源状态组的第一应用状态中操作的处理器从所述第一应用状态转变到对应于所述第二资源状态组的第二应用状态的请求;
通过从散列函数产生散列值且通过比较存储在存储器中的系统状态来估计用以完成资源到各个状态的转变的处理时间量;
基于所述所估计的处理时间量调度用以开始将资源转变到所述第二资源状态组中所指示的状态的开始时间;以及
在经调度的开始时间,开始将一个或一个以上资源的状态从所述第一资源状态组所指示的状态切换到所述第二资源状态组所指示的状态的过程。
32.根据权利要求31所述的计算机程序产品,其中:
所述第一资源状态组是对应于所述处理器的休眠应用状态的休眠资源状态组;且
所述第二资源状态组是对应于所述处理器的现用应用状态的现用资源状态组。
33.根据权利要求31所述的计算机程序产品,其中所述调度开始时间以及开始所述切换状态的过程的步骤由控制器执行。
34.根据权利要求31所述的计算机程序产品,其中调度开始时间包括:
确定在切换与针对第一处理器发布的第一请求相关联的状态的第一过程与切换与针对第二处理器发布的第二请求相关联的状态的第二过程之间是否存在冲突条件;以及
如果确定存在冲突条件,那么通过修改开始时间来缓解所述冲突条件。
35.根据权利要求31所述的计算机程序产品,其中所述散列函数使用组合函数和混合函数的至少一者。
36.根据权利要求31所述的计算机程序产品,其中存储在存储器中的所述系统状态包括依据所述散列函数计算的散列值和实际工作负载完成时间。
37.根据权利要求31所述的计算机程序产品,其中实施所述方法的所述程序代码进一步包括:
依据所述散列函数产生表示系统状态的散列值;以及
将所述散列值与存储在存储器中的系统状态比较。
38.根据权利要求31所述的计算机程序产品,其中实施所述方法的所述程序代码进一步包括:
将系统状态存储在作为高速缓冲存储器的存储器中。
39.根据权利要求31所述的计算机程序产品,其中实施所述方法的所述程序代码进一步包括:
基于一个或一个以上处理器资源所执行的实际工作更新存储在存储器中的系统状态。
40.根据权利要求31所述的计算机程序产品,其中所述便携式计算装置包括以下中的至少一者:蜂窝式电话、卫星电话、寻呼机、个人数字助理PDA、智能电话、导航装置、智能本或阅读器、媒体播放器和具有无线连接的膝上型计算机。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161558743P | 2011-11-11 | 2011-11-11 | |
US61/558,743 | 2011-11-11 | ||
US13/364,849 | 2012-02-02 | ||
US13/364,849 US8954980B2 (en) | 2011-11-11 | 2012-02-02 | Conserving power through work load estimation for a portable computing device using scheduled resource set transitions |
PCT/US2012/061415 WO2013070425A2 (en) | 2011-11-11 | 2012-10-23 | Conserving power through work load estimation for a portable computing device using scheduled resource set transitions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103930874A true CN103930874A (zh) | 2014-07-16 |
CN103930874B CN103930874B (zh) | 2017-06-09 |
Family
ID=48281943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280055561.0A Active CN103930874B (zh) | 2011-11-11 | 2012-10-23 | 使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8954980B2 (zh) |
EP (1) | EP2776924A2 (zh) |
JP (1) | JP5824162B2 (zh) |
KR (1) | KR101677820B1 (zh) |
CN (1) | CN103930874B (zh) |
WO (1) | WO2013070425A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016066034A1 (en) * | 2014-10-27 | 2016-05-06 | Huawei Technologies Co., Ltd. | Access based resources driven low power control and management for multi-core system on a chip |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2450792B1 (en) * | 2010-10-22 | 2020-01-15 | Orange | Method for allowing distributed running of an application and related pre-processing unit |
EP2450794B1 (en) | 2010-10-22 | 2018-08-29 | Orange | Method for allowing distributed running of an application and related device and inference engine |
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 |
US9104499B2 (en) | 2010-12-21 | 2015-08-11 | Qualcomm Incorporated | System for minimizing resource latency between processor application states in a portable computing device by scheduling resource state set transitions |
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 |
JP6042148B2 (ja) * | 2011-11-22 | 2016-12-14 | 東芝メディカルシステムズ株式会社 | 磁気共鳴イメージング装置 |
US10134314B2 (en) * | 2011-11-30 | 2018-11-20 | Intel Corporation | Reducing power for 3D workloads |
US9591358B2 (en) * | 2013-03-15 | 2017-03-07 | Intel Corporation | Media playback workload scheduler |
US9436721B2 (en) * | 2014-02-28 | 2016-09-06 | International Business Machines Corporation | Optimization of mixed database workload scheduling and concurrency control by mining data dependency relationships via lock tracking |
JP6349908B2 (ja) * | 2014-04-22 | 2018-07-04 | 富士通株式会社 | データ処理方法、データ処理装置及びプログラム |
GB2525917B (en) | 2014-05-09 | 2021-08-11 | Arm Ip Ltd | Energy-based scheduling of operations to be executed by a data processing apparatus |
KR101600287B1 (ko) | 2015-03-12 | 2016-03-08 | 한국항공대학교산학협력단 | 배터리의 에너지 레벨에 따라 동작 모드를 가변하는 저전력 스마트 비디오 디바이스 및 그 제어방법 |
EP3554146B1 (en) * | 2016-12-30 | 2020-11-11 | Huawei Technologies Co., Ltd. | Data processing method and terminal |
WO2018217801A1 (en) * | 2017-05-24 | 2018-11-29 | Sigma Designs, Inc. | Cross-layer sleep control in a wireless device |
CN116055443B (zh) * | 2022-05-16 | 2023-11-14 | 荣耀终端有限公司 | 识别社交场景的方法、电子设备及计算机可读存储介质 |
US20240028222A1 (en) * | 2022-07-22 | 2024-01-25 | Dell Products L.P. | Sleep mode using shared memory between two processors of an information handling system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535798B1 (en) * | 1998-12-03 | 2003-03-18 | Intel Corporation | Thermal management in a system |
US20060031692A1 (en) * | 2004-08-05 | 2006-02-09 | Kazuomi Kato | Power-saving processing unit, power-saving processing method and program record medium |
US20060146769A1 (en) * | 2004-12-31 | 2006-07-06 | Patel Anil N | Method of operating a WLAN mobile station |
US20070055795A1 (en) * | 2005-08-12 | 2007-03-08 | Samsung Electronics Co., Ltd. | Data communication system and method with multi-channel power-down and wake-up |
CN101925164A (zh) * | 2009-06-16 | 2010-12-22 | 索尼公司 | 信息处理装置和模式切换方法 |
Family Cites Families (56)
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 |
EP2211251A3 (en) | 1996-05-22 | 2011-03-30 | Qualcomm Incorporated | Method and 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 |
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 |
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 | パナソニック株式会社 | 省電力処理装置、省電力処理方法、及び省電力処理プログラム |
US7383450B2 (en) | 2004-12-22 | 2008-06-03 | Intel Corporation | Low power firmware |
JP2007232588A (ja) * | 2006-03-01 | 2007-09-13 | Nec Electronics Corp | 半導体集積回路装置、及び、その制御方法 |
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 | 浙江大学 | 多核平台下基于硬件计时器与任务队列的调度方法 |
US20100191911A1 (en) | 2008-12-23 | 2010-07-29 | Marco Heddes | System-On-A-Chip Having an Array of Programmable Processing Elements Linked By an On-Chip Network with Distributed On-Chip Shared Memory and External Shared Memory |
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 |
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 |
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 |
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 |
US9104499B2 (en) | 2010-12-21 | 2015-08-11 | Qualcomm Incorporated | System for minimizing resource latency between processor application states in a portable computing device by scheduling resource state set transitions |
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 |
-
2012
- 2012-02-02 US US13/364,849 patent/US8954980B2/en active Active
- 2012-10-23 WO PCT/US2012/061415 patent/WO2013070425A2/en active Search and Examination
- 2012-10-23 CN CN201280055561.0A patent/CN103930874B/zh active Active
- 2012-10-23 JP JP2014541086A patent/JP5824162B2/ja active Active
- 2012-10-23 KR KR1020147015616A patent/KR101677820B1/ko active IP Right Grant
- 2012-10-23 EP EP12788359.3A patent/EP2776924A2/en not_active Withdrawn
-
2014
- 2014-02-24 US US14/188,077 patent/US8954983B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535798B1 (en) * | 1998-12-03 | 2003-03-18 | Intel Corporation | Thermal management in a system |
US20060031692A1 (en) * | 2004-08-05 | 2006-02-09 | Kazuomi Kato | Power-saving processing unit, power-saving processing method and program record medium |
US20060146769A1 (en) * | 2004-12-31 | 2006-07-06 | Patel Anil N | Method of operating a WLAN mobile station |
US20070055795A1 (en) * | 2005-08-12 | 2007-03-08 | Samsung Electronics Co., Ltd. | Data communication system and method with multi-channel power-down and wake-up |
CN101925164A (zh) * | 2009-06-16 | 2010-12-22 | 索尼公司 | 信息处理装置和模式切换方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016066034A1 (en) * | 2014-10-27 | 2016-05-06 | Huawei Technologies Co., Ltd. | Access based resources driven low power control and management for multi-core system on a chip |
US9612651B2 (en) | 2014-10-27 | 2017-04-04 | Futurewei Technologies, Inc. | Access based resources driven low power control and management for multi-core system on a chip |
CN107111349A (zh) * | 2014-10-27 | 2017-08-29 | 华为技术有限公司 | 用于片上多核系统的驱动基于访问的资源的低功耗控制和管理 |
Also Published As
Publication number | Publication date |
---|---|
JP2015501969A (ja) | 2015-01-19 |
WO2013070425A2 (en) | 2013-05-16 |
CN103930874B (zh) | 2017-06-09 |
US8954980B2 (en) | 2015-02-10 |
WO2013070425A3 (en) | 2014-04-10 |
JP5824162B2 (ja) | 2015-11-25 |
EP2776924A2 (en) | 2014-09-17 |
US8954983B2 (en) | 2015-02-10 |
KR20140090256A (ko) | 2014-07-16 |
US20130125130A1 (en) | 2013-05-16 |
KR101677820B1 (ko) | 2016-11-18 |
US20140173621A1 (en) | 2014-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103930874A (zh) | 使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率 | |
KR101503627B1 (ko) | 리소스 세트 천이들을 스케줄링함으로써 휴대용 컴퓨팅 디바이스에 있어서의 프로세서 어플리케이션 상태들 간의 리소스 레이턴시의 최소화 | |
JP5734505B2 (ja) | ポータブルコンピューティングデバイスのマルチコアプロセッサにおける複数のコアへの電力を動的に制御するための方法およびシステム | |
US20170024316A1 (en) | Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring | |
US9880894B2 (en) | High availability and energy-efficient watchdog timer | |
KR101483897B1 (ko) | 휴대용 컴퓨팅 디바이스의 프로세서들에 대한 슬립 상태들로의 신속한 진입 및 슬립 상태들로부터의 신속한 퇴장을 위한 방법 및 시스템 | |
CN103765387A (zh) | 便携式计算装置中的分布式资源管理 | |
WO2012087533A1 (en) | Minimizing resource latency between processor application states in a portable computing device by using a next-active state set | |
CN105308566B (zh) | 请求式可扩展定时器轮 | |
US9507641B1 (en) | System and method for dynamic granularity control of parallelized work in a portable computing device (PCD) | |
US10275007B2 (en) | Performance management for a multiple-CPU platform | |
CN103019813A (zh) | 获取基于SaaS的交互式程序的交互强度的方法 | |
CN109901697A (zh) | 一种降低系统功耗的方法、装置、设备及介质 | |
JP6291992B2 (ja) | スマート端末、消費電力の状態の制御方法、および、消費電力状態制御プログラム | |
TWI470402B (zh) | 行動裝置cpu工作頻率控制方法 | |
WO2022206227A1 (zh) | 系统启动方法、设备、系统及存储介质 | |
WO2024055708A1 (zh) | 任务调度方法、装置、设备及介质 | |
CN117149391A (zh) | 线程管理方法、装置及电子设备 | |
CN116028314A (zh) | 温度参数读取方法、电子设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |