基于任务紧急性来管理时钟速率的系统和方法

文档序号:6496877阅读:132来源:国知局
基于任务紧急性来管理时钟速率的系统和方法
【专利摘要】本发明描述了一种用于在进行功率管理决策时利用任务紧急性信息的系统和方法。例如,用于管理处理器的功率状态的方法的一个实施例包括:基于与第一任务相关联的第一紧急性级别来执行第一功率管理状态机;检测与第二紧急性级别相关联的第二任务的执行;如果所述第二紧急性级别高于所述第一紧急性级别,则执行与所述第二紧急性级别相关联的第二功率管理状态机。
【专利说明】基于任务紧急性来管理时钟速率的系统和方法
【背景技术】【技术领域】
[0001]本发明整体涉及计算系统领域。更具体地,本发明涉及用于预热CPU以减小中断延迟的一种改进的机器可读介质和方法。
[0002]相关领域的描述
[0003]数据处理系统上的功率管理常常涉及用于降低数据处理系统中的部件的功率消耗的技术。数据处理系统可以是膝上型计算机或其他形式的便携式计算机,例如手持式通用计算机、蜂窝电话或平板计算机如iPad。由电池供电的便携式设备中的功率消耗管理特别重要,因为功率管理越好,便携式设备在由一个或多个电池供电时通常就能被使用越长时间,并且对于给定占空比,通常导致产品的物理设计更小。
[0004]常规系统典型地利用定时器来指示在处于非活动状态一段时间后何时应当关闭子系统。例如,硬盘驱动器存储系统中的电机典型地在硬盘驱动器系统处于非活动状态达预先确定的时段之后被关闭。类似地,响应于使用者不进行任何操作超过预先确定的时段,可以关闭显示系统的背光或其他光源。在这两种情况下,功率管理技术均基于对定时器的使用,该定时器确定非活动状态时段何时超过所选的持续时间。
[0005]一种用于管理功率消耗的典型技术涉及在不同电压和频率对或者“操作点”之间切换数据处理系统的操作。一般来讲,如果电压Vl小于电压V2并且操作频率Fl小于操作频率F2,则由电压Vl和操作频率Fl定义的第一操作点将比电压V2和操作频率F2下的第二操作点消耗更少的功率。
[0006]某些系统有能力在特定子系统未被使用的情况下完全切断电力(例如,将操作电压设置在V = O)。例如,某些片上系统(SOC)提供电力闸控特征,其允许特定子系统在未被使用的情况下完全关闭。
[0007]在一些现代微架构方面,定义一系列中央处理单元(“CPU”)“空闲”状态,以限制能量消耗。这些空闲状态会带来一些代价。对于紧急任务(例如实时任务或截止时间驱动的任务),以减小的时钟速率运行可能引起响应问题或错误。例如,恢复执行的延迟可能是许多微秒,并且其量值和不可预见性可对操作系统开发者带来巨大挑战。如果系统涉及以高精确度触发中断的精确时刻,则产生一个重要的难题。由于退出空闲状态的延迟很长,因此可能直到触发事件之后较长时间才可获得时间戳。
[0008]另外,由于无限期地运行但没有速度要求的“后台”任务,因此可能不能将时钟速率调整到使用当前具体实施的最佳低水平。工作负载的变化和CPU负载随时间的不可预见性使得难以精巧地设计出一种频率管理算法来既实现对重要性高的任务的响应性,又实现在低优先级负载下的低功率消耗。
[0009]因此,需要一种更智能的方式来针对某些任务既减小功率消耗又改善响应性。

【发明内容】
[0010]本发明描述了一种用于在进行功率管理决策时使用任务紧急性信息的系统和方法。例如,用于管理处理器的功率状态的方法的一个实施例包括:基于与第一任务相关联的第一紧急性级别来执行第一功率管理状态机;检测与第二紧急性级别相关联的第二任务的执行;如果所述第二紧急性级别高于所述第一紧急性级别,则执行与所述第二紧急性级别相关联的第二功率管理状态机。
【专利附图】

【附图说明】
[0011]可以结合以下附图从以下详细描述获得对本发明的更好的理解,其中:
[0012]图1示出了根据本发明的至少一些实施例的一种示例性数据处理系统的视图。
[0013]图2示出了根据本发明的至少一些实施例的一种示例性总线架构的视图。
[0014]图3示出了根据本发明的至少一些实施例的一种示例性数据处理系统的视图。
[0015]图4示出了根据本发明的至少一些实施例的一种示例性数据处理系统的视图。
[0016]图5示出了根据本发明的一个实施例对定时器中断进行重新调度的时间线的示例性视图。
[0017]图6不出了一种用于调整初始启动时间的方法的一个实施例的流程图。
[0018]图7示出了一种用于减小定时器中断延迟的方法的一个实施例的流程图。
[0019]图8示出了一种选择空闲状态的方法的一个实施例的流程图。
[0020]图9示出了一种选择空闲状态的方法的另一个实施例的流程图。
[0021]图10图示了一种用于在预测系统事件时使用定时器中断的方法的一个实施例。
[0022]图11图示了示出一个示例定时器中断的定时的时间线。
[0023]图12图示了一种用于将任务紧急性结合到时钟速率转换决策中的方法。
[0024]图13A-C分别示出了用于正常任务、实时任务和后台任务的示例性状态机。
[0025]图14图示了可实现本发明的实施例的一种示例性计算机架构。
[0026]图15图示了可实现本发明的实施例的另一种示例性计算机架构。
【具体实施方式】
[0027]以下描述了一种用于在频率转换决策中结合任务紧急性信息的设备、方法和机器可读介质的实施例。在以下描述中,为了说明的目的,示出了许多特定细节以便提供对如下所述的本发明的实施例的透彻理解。然而,对本领域的技术人员而言显而易见的是,可以在没有这些特定细节中的一些的情况下实践本发明的实施例。在其他情形下,熟知的结构和设备以框图形式示出以避免模糊本发明的实施例的基本原理。
[0028]转让给本专利申请的受让人的提交于2011年6月30日的名称为“Improved TimerInterrupt Latency”、序列号为N0.13/174,688的共同未决的专利申请描述了改进定时器中断延迟的多种技术。下文将首先描述这些技术来提供概述,之后是用于基于任务紧急性减小中断延迟和管理时钟速率的新技术的详细描述。
[0029]共同未决的专利串请的公开内容
[0030]将参考以下讨论的细节来描述本发明的多个实施例和方面,并且附图将图示所述多个实施例。以下说明书和附图对本发明作出例示,并且不应被理解为限制本发明。描述了众多的具体细节以提供对本发明的各种实施例的全面理解。然而,在某些实例中,熟知的或常规的细节并未被描述,以提供对本发明的实施例的简明论述。
[0031]本文描述了用以减小定时器中断延迟的方法、设备和系统的示例性实施例。退出空闲状态来维护数据处理系统的定时器中断的代价得以控制,同时仍然允许对各种空闲状态进行积极使用,并且同时允许较高水平的软件抽象以忽略那些状态。此外,通过恢复从空闲状态退出的初始截止时间,使得中断比所需的更早启动的风险最小化。
[0032]在至少一些实施例中,接收子系统(例如,处理器)即将进入空闲状态的指示,并且确定下一个定时器中断的初始启动时间。初始启动时间指示已存在于系统中的定时器已经被调度为何时启动。可以从多个空闲状态选择子系统的空闲状态。可基于所选择的空闲状态来确定新的启动时间。如在下文将更具体地描述的那样,下一个定时器中断被重新调度为所述新的启动时间。
[0033]在至少一些实施例中,如下文将更具体地描述的那样,可以根据系统的空闲状态以及定时器沿时间线距离当前时间有多远来对已存在于系统中以及已被请求的定时器进行重新调度。
[0034]在至少一些实施例中,子系统退出空闲状态,并且在当前时间测量子系统退出空闲状态的延迟。将所测量的延迟添加到针对该空闲状态的延迟的运动平均。基于运动平均来重新计算前一个延迟。重新计算延迟以调整用于下一个定时器中断的初始启动时间,如下文更将具体地描述的那样。
[0035]本发明可涉及用于执行本文所述的一个或多个操作的设备。该设备可专门构造用于所需的目的,或者可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在机器(例如,计算机)可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、⑶-ROM和磁光盘,只读存储器(ROM)、随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁卡或光卡、或适合用于存储电子指令的任何类型的介质,并且每个均耦合到总线。
[0036]机器可读介质包括以机器(例如,计算机)可读形式存储或发送信息的任何机构。例如,机器可读介质包括只读存 储器(“ROM”);随机存取存储器(“RAM”);磁盘存储介质;光学存储介质;闪存设备;电、光学、声学或其他形式的传播信号(例如,载波、红外信号、数字?目号等)等;
[0037]本发明的至少某些实施例可以是数字媒体播放器的一部分,例如便携式音乐和/或视频媒体播放器,数字媒体播放器可包括呈现媒体的媒体处理系统、存储媒体的存储设备,并且可以进一步包括与天线系统和媒体处理系统耦合的射频(RF)收发器(例如,用于蜂窝电话的RF收发器)。在某些实施例中,存储在远程存储设备上的媒体可通过RF收发器发送到媒体播放器。例如,媒体可以是音乐或其他音频、静态图片或运动图片中的一个或多个。
[0038]便携式媒体播放器可包括媒体选择设备,例如得自Apple Inc.(Cupertino, CA)的
iPod?或iPod Nano?媒体播放器上的点击轮(click wheel)输入设备、触摸屏输入设备、
按钮设备、可移动指示输入设备或其他输入设备。可以使用媒体选择设备来选择存储在存储设备和/或远程存储设备上的媒体。在至少某些实施例中,便携式媒体播放器可包括显示设备,该显示设备耦合到媒体处理系统以显示通过输入设备选择的并且通过扬声器或耳机或者在显示设备上、或者在显示设备上且在扬声器或耳机上呈现的媒体的标题或其他指示符。
[0039]本文所述的本发明的实施例可以是其他类型的数据处理系统的一部分,例如诸如娱乐系统或个人数字助理(PDA)、或通用计算机系统、或专用计算机系统、或其他设备内的嵌入设备、或不包括媒体播放器的蜂窝电话、或结合这些设备(例如,媒体播放器、例如iPod"、与PDA结合的媒体播放器、娱乐系统和一个便携式设备中的蜂窝电话)的方面或功能的设备、或包括多点触摸输入设备例如多点触摸手持设备或具有多点触摸输入设备的蜂窝电话的设备或消费电子产品。
[0040]图1示出了包括可在本发明的至少一些实施例中使用的一个或多个子系统的一种示例性数据处理系统102的视图100。系统102包括功率管理单元106,该功率管理单元通过数据通路耦合到始终活动模块110,该始终活动模块为功率控制器108提供控制信号,该功率控制器包括多个电力闸,所述多个电力闸将电力选择性地提供给系统104内的多个不同子系统,该系统104可以是片上系统部件。子系统可以例如是微处理器120、图形处理单元(GPU) 122、显示控制器124、视频解码器126、数字信号处理器(DSP) 128和无线接口控制器130。
[0041]在至少一些实施例中,这一个或多个子系统包括微控制器。在至少一些实施例中,所述一个或多个子系统包括微处理器,例如Intel Pentium?-微处理器、Motorola Power PC气微处理器、Intel Core?Duo处理器、Intel Core i3>Intel Core i5、Intel Core i7、AMD Athlon? 处理器、AMD Turion? 处理器、AMD Sempron? 处理器和 / 或任何其他微处理器。在一个实施例中,子系统包括CPU、微控制器、数字信号处理器、微处理器、个人计算机(“PC”)、或它们的任何组合。在一个实施例中,子系统包括基于PowerPG?、Intel Core? Duo、Intel Core i3、Intel Core i5、Intel Core i7、AMD Athlon?、AMDTurion? 处理器、AMD Sempron?、HP Pavilion?PC、HP Compaq? PC 和任何其他处理器系列的通用计算机系统。
[0042]返回参考图1,子系统120、122、124、126、128和130中的每一个均耦合到对应的电力闸,通过该电力闸将电力提供给子系统。应当理解,如果针对特定子系统需要的话,可以并行提供多个电力闸以提供附加的电流容量。每个电力闸,例如电力闸114A或114B,具有耦合到电源电压轨112的漏极和耦合到对应子系统的源极。每个电力闸的栅电极耦合到由始终活动模块110提供的控制信号,在至少一些实施例中,始终活动模块110可由功率管理单元106控制,该功率管理单元可通过本文所述的一个或多个总线耦合到微处理器。通过这种布置,微处理器可以通过使功率管理单元106为始终活动模块110提供控制信号、始终活动模块HO进而提供合适的控制信号来打开或关闭子系统中的一个或多个,来选择性地使得所述多个不同的子系统打开和关闭。例如,微处理器120可以指示功率管理单元106通过为始终活动模块110提供控制信号、始终活动模块110进而在电力闸114B的栅电极上设定电压,电力闸114B进而切断通过电力线66对GPU122的电压供应,来关闭GPU122。类似地,其他子系统中的一个或多个也可以通过使其供电电压下降到远低于操作该子系统所必需的值以下,来选择性地被关闭。微处理器120甚至可以通过针对在微处理器决定关闭对其自身的电力时正执行的各种应用程序和操作系统程序保存状态和上下文信息,来关闭其自身。应当理解,系统102可以具有未示出的附加子系统,例如存储器控制器等(图3示出了附加子系统的实例),或者系统102可以具有比图1所示更少的子系统。还应当理解,系统102可包括用于互连各子系统之间的数据和控制信号的一个或多个总线以及一个或多个总线桥。图2所示的总线架构是用来将子系统的各个部件耦合在一起的一个或多个总线的实例。
[0043]图2示出了可在本发明的至少一些实施例中使用的一种示例性总线架构的视图200。该总线架构可用于将图1的系统102中的子系统和图3的系统302中的子系统耦合在一起。数据处理系统201包括存储器205和系统203,该系统203在至少一个实施例中可实现为片上系统,所述片上系统是形成在单个芯片上提供该系统的所有部件的集成电路的单片半导体基板。在一个可供选择的实施例中,各个部件可分散在多个集成电路之上。系统203包括微处理器207,该微处理器通过总线213和存储器控制器211耦合到存储器205。存储器控制器211可以是用于控制不同类型的存储器205的多个存储器控制器,不同类型的存储器205诸如DRAM(例如DDRRAM)、和闪存存储器和/或其他类型的存储器或组合,例如磁性硬盘驱动器等。存储器控制器211耦合到图形处理单元209,该图形处理单元209允许GPU获得图形数据或将图形数据存储在存储器205中并且从存储器205检索图形指令用于由GPU进行处理。应当理解,GPU209耦合到显示控制器,例如图1所示的显示控制器124,显示控制器进而耦合到显示器以驱动显示器来使图像出现在显示器,例如液晶显示器(IXD)上。微处理器207、存储器控制器211、存储器205和GPU209通过图2中所示的两个外围总线和两个总线桥耦合到图2的子系统的其余部分。总线桥215将总线213耦合到第一外围总线217,而总线桥219将第一外围总线217耦合到第二外围总线121。微处理器207和GPU209通过这些总线桥耦合到外围总线217和121。GPU209还通过耦合到第一外围总线217的用于图形的控制端口 233耦合到第一外围总线217,而微处理器207也通过微处理器207的外围端口 231耦合到第一外围总线217。一个或多个输入/输出(I/O)设备可以是系统201的一部分。这些I/O设备可以是多个已知I/O设备中的一个或多个,包括触控板、触摸板、多点触摸输入面板、音频扬声器和音频麦克风、相机、玛站端口、一个或多个无线接口控制器、光标控制设备(诸如鼠标或游戏杆或轨迹球)、一个或多个键盘、一个或多个网络接口适配器(例如,以太网接口端口)等。如果系统203实现为片上系统,那么I/O设备227和229典型地会是未设置在集成电路上的独立部件。I/O设备227和229中的每一个通过I/O控制器(诸如图2中所示的I/O控制器223和I/O控制器225)耦合。除了前面列出的I/O设备之外,系统203还可包括其他子系统,其他子系统可被视为I/O设备,例如视频解码器或数字信号处理器,例如图1中所示的视频解码器126和DSP128。图2中所示的系统的一个实施例可包括功率控制器和功率管理单元、连同始终活动模块,以便为系统203中的各个子系统提供电力闸控。例如,可类似于功率管理单元106的功率管理单元可耦合到可类似于始终活动模块110的始终活动模块,始终活动模块进而被耦合来为功率控制器(例如功率控制器108)提供控制信号,以便为系统203中的子系统中的一个或多个,例如图2中的I/O控制器中的一个或多个或者I/O设备中的一个或多个或者GPU209或者微处理器207等等接通和切断电力。
[0044]图3示出了可在本发明的至少一些实施例中使用的另一个示例性数据处理系统的视图300。数据处理系统302可将系统304实现为片上系统(SOC)集成电路或者可将系统304实现为通过一个或多个总线耦合的多个集成电路。数据处理系统302包括被表示为在系统304外部但是耦合到图3所示的系统304的多个部件。这样的部件包括动态随机存取存储器(DRAM) 308、闪存存储器310,这两者耦合到以下设备:存储器控制器328、耦合到通用异步收发器(“UART”)控制器348的坞站端口 322、耦合到无线接口控制器342的无线(RF)收发器320、耦合到IIC端口 340的功率管理单元318、耦合到相机接口控制器338的相机316、耦合到IIS端口 336的音频数模转换器314、耦合到多点触摸输入面板控制器332的多点触摸输入面板312、以及耦合到显示控制器330的显示设备306(其可以是液晶显示设备)。如本领域已知的那样,这些各种部件为数据处理系统提供输入和输出功能。另夕卜,系统304包括图形处理单元326和微处理器324,在某些实施例中微处理器324可以是ARM微处理器。另外,系统可包括数字信号处理器346和中断控制器344。这些各种部件通过一个或多个总线和总线桥334耦合在一起,所述一个或多个总线和总线桥334可实现为多种架构,例如图2中所示的总线架构或可供选择的总线架构。功率管理单元318可以与图1的功率管理单元106相同的方式操作,由此通过如本文所述针对一个或多个子系统选择性地接通或切断电力来为一个或多个子系统提供功率降低能力。功率管理单元318可耦合到图3的系统中的始终活动模块(例如,类似于始终活动模块110)以及功率控制器(例如,类似于功率控制器108)。进一步,功率管理单元318与微处理器324结合可实现其他功率降低技术,例如在不同电压和频率操作点下操作。尽管功率管理单元被示为在系统304外部,但是在某些实施例中可以是片上系统实现的一部分。其他部件中的至少一些,例如无线收发器320,在某些实施例中也可以被实现为片上系统的一部分。无线收发器320可包括红外收发器以及射频(RF)收发器,并且可以包括这样的收发器中的一个或多个,例如无线蜂窝电话收发器、兼容WiFi的收发器、兼容WiMax的收发器、兼容蓝牙的收发器和其他类型的无线收发器。在一个具体实施例中,无线收发器320可包括无线蜂窝电话收发器、兼容WiFi的收发器(IEEE802.11A/G收发器)和蓝牙收发器。这些无线收发器中的每一个可耦合到相应的无线接口控制器,无线接口控制器可以是多个接口控制器中的一个或多个,例如UART控制器或IIS控制器或SDIO控制器等。数据处理系统302可还包括输入/输出设备,例如小键盘、或键盘、光标控制设备或附加的输出设备等。
[0045]应当理解,图3的数据处理系统可以多种不同的形状因数和外壳来实现,所述外壳封装并实现数据处理系统。例如,数据处理系统302可被实现为台式计算机、膝上型计算机、或嵌入式系统、消费产品或手持计算机或其他手持设备。在至少某些模式中,可以实现在AC电力或者在AC电力和电池电力组合或者仅仅电池电力情况下操作。数据处理系统可包括蜂窝电话,并且可具有蜂窝电话的形状因数,例如直板式蜂窝电话或翻盖电话或者具有(例如从外壳)滑动出或者(例如从外壳)转动出以暴露键盘按键的滑动键盘的电话。在某些实施例中,数据处理系统302可以被实现在包括无线蜂窝电话和WiFi以及蓝牙无线功能的平板形式的小型手持式计算机中。
[0046]图4示出了可用于本发明的至少一些实施例中的包括通过总线415耦合到系统存储器403的处理系统401的一种示例性数据处理系统的视图400。如图4所示,系统包括通过一个或多个数据通路,例如数据通路417和419耦合到处理系统401的中断控制器407。在至少一个实施例中,处理系统可以是微处理器324,并且系统存储器403可以是存储器308和闪存存储器310的一个或两者,而中断控制器407可以是中断控制器344。图4的系统还包括定时器405,该定时器包括能声明数据通路413上的超时或其他类似信号的一个或多个计数器,并且这些超时声明信号进而可使中断控制器407在数据通路之一上,例如数据通路417和数据通路419上生成中断信号。
[0047]数据通路411允许处理系统401将计数值或定时器值或其他与时间相关的值存储到定时器405中。中断控制器407可以是提供两种不同类型的中断信号的常规中断控制器,例如在得自ARM Ltd.(Cambridge, England)的微处理器的情况下是快速中断信号和正常中断信号。第一中断信号417可以是快速中断信号,其典型地与其他类型的中断信号相比将为中断源提供更高优先级的服务,如美国专利N0.7,917,784中所述,该专利据此以引用方式并入本文。如图4所示,存储器403存储多个不同的应用进程,例如可在任一时间点在图4的数据处理系统上执行的应用进程427、应用进程429和应用进程431。例如,应用进程427可以是正部分地由处理系统401在软件中执行并且部分地由MPEG解码硬件子系统(例如图1中所示的子系统126)执行的MPEG解码操作。例如,应用进程429可以是部分地由处理系统401执行并且部分地由单独的硬件子系统(例如专用于音频数据等的另一数据解码器)执行的MP3解码操作。应用进程431可以是正部分地由处理系统执行并且部分地由另一子系统(例如,图3的DSP346)执行的另一软件进程。因此,存储器403的状态表明多个应用可同时执行并且多个子系统可以同时操作,其中作为执行的操作系统软件的操作系统内核425以常规方式监视各个任务和进程的管理。在一个不例性实施例中,一个子系统可以是处理系统自身(微处理器326),而当前操作的另一子系统可以是MPEG解码子系统或GPU。在任何情况下,本发明的至少某些实施例允许不同子系统的不同进程同时地或者顺次地利用快速中断信号来对时间相关事件进行响应,以便使那些子系统按时工作。处理系统401与操作系统内核425结合典型地维护数据结构,例如时间相关事件(“定时器”)列表,例如存储在存储器403中的示出的列表423。该列表可以是从差不多现在到未来时间的排序列表,而处理系统可使用该列表来为计划将来在已调度的时间工作的事件提供服务,使得它们可以在已调度的时间以及特定子系统或进程请求时执行。在至少一些实施例中,调整列表423中的定时器,如本文所述。在至少一些实施例中,在操作系统内核425级别来执行结合图5-9在本文所述的方法。
[0048]在至少一些实施例中,减小定时器中断延迟涉及(I)确定用于下一个定时器中断的初始启动时间、(2)为子系统选择空闲状态;以及(3)基于所选择的空闲状态确定新的启动时间。空闲状态是系统的功率减小状态(例如,睡眠状态)之一。可以响应于决定进入空闲状态的子系统来确定初始启动时间。可以在进入CPU空闲状态时对未完成的定时器中断请求进行重新编程,以补偿退出该状态的成本。
[0049]一般来说,CPU空闲状态,例如Ci状态(其中i可以是从I到N的任意整数),是CPU已减少或关闭所选功能以减小功率消耗时的状态。不同的处理器可支持不同数量的空闲状态,其中CPU的多个部分被关闭或在功率减小的情况下操作。用于处理器的各种空闲状态可以由不同功率消耗等级来表征。例如,与程度较浅的Ci状态相比,程度较深的Ci状态关闭CPU的更多部分,从而导致明显减小的功率消耗。典型地,CO为CPU积极地执行指令以执行某些操作的操作状态。Cl可以是第一空闲状态,其中向处理器行进的时钟被闸控,即,阻止时钟到达核心,从而有效地以可操作的方式使处理器停止工作。C2可以是第二空闲状态。在第二空闲状态,除了闸控该时钟之外,外部I/O控制器集线器还可以阻断到处理器的中断。与程度较浅的C状态(例如Cl或C2)相比,程度更深的C状态,例如C6和C7状态,具有更大的延迟并且具有更高的能量进入/出离成本。在程度较深的C状态的进入/出离频率高时,所得的性能(例如,定时)和能量代价变得显著。典型地,在功率消耗与从睡眠状态恢复所需的时间之间存在利弊权衡一系统消耗的功率越少,则系统开始运行所需的时间就越长,并且在系统最终开始代码执行时系统会运行得越慢。
[0050]在至少一些实施例中,选择子系统的空闲状态涉及针对子系统的空闲状态中的每一个确定退出延迟数据,如下文进一步详细描述。
[0051]在至少一些实施例中,在数据处理系统决定在给定处理器上进入空闲状态的时亥IJ,记录针对该处理器调度的下一个中断。可以使用有关下一个现有中断(“下一个初始启动时间”)的信息来确定针对给定处理器选择进入哪个空闲状态。在准备进入空闲状态时,数据处理系统基于退出该空闲状态所需的期望延迟来将下一次定时器中断重新调度到新的启动时间,如下文进一步详细描述的那样。
[0052]图5示出了根据本发明的一个实施例重新调度定时器中断的时间线502的示例性视图500。时间线502包括有时相对于当前时间506在未来出现的下一个现有调度的启动时间504。例如,下一个启动时间504可以是目标截止时间,该目标截止时间被调度用于数据处理系统的处理器来唤醒并开始执行对中断进行服务的代码。当前时间506可以是确定数据处理系统决定在给定处理器上进入空闲状态的时间。
[0053]典型地,对于处理器退出空闲状态和开始执行指令来说,需要完成硬件中的某些工作量。因此,给予某些延迟量来返回到处理器可执行指令的状态。
[0054]退出较低功率状态所产生的可变且不可预期的延迟可能会对于数据处理系统的操作引起各种问题,例如对于视频和/或音频处理。例如,在音频处理中,在环路中的多个定时器受到延迟累加导致移位时,用户可能体验到在按下键盘和听到声音之间明显的延时。
[0055]在至少一些实施例中,通过以与尽最大努力而能够最佳地预测的退出延迟相对应的提前量在原来所调度的时间之前请求唤醒,来补偿该退出延迟。
[0056]图5示出了子系统退出不同空闲状态所需的不同时间量508、510、512和514(延迟)。退出空闲状态的延迟是可变的,并且取决于空闲状态的特征。如图5所示,程度较浅的空闲状态比程度较深的空闲状态具有更小的延迟。例如,Cl状态具有最小延迟508 (XCl),而CN状态具有最大延迟514 (XCN),例如XCl〈XCi〈XCi+l〈XCN。
[0057]在至少一些实施例中,可以通过从初始启动时间减去退出空闲状态所需的期望时间来重新调度下一个定时器中断。因此,如果处理器需要在时间to醒来并且执行指令,并且预计可能要花X时间量来退出低功率状态,则在系统进入低功率状态时,处理器被请求在时间to-x时唤醒。
[0058]例如,如果初始请求启动时间为t0并且空闲状态为Cl,则定时器被重新调度为to - XCl ;如果空闲状态为Ci,则定时器被重新调度为t0-XCi ;如果空闲状态为Ci+1,则定时器被重新调度为to - XCi+1 ;以及如果空闲状态为CN,则定时器被重新调度为to - XCN。由基于子系统的空闲状态的特征确定的可变值来调整初始启动时间to。即,调整启动时间的值不是固定的。
[0059]在至少一些实施例中,基于至少初始启动时间来执行对空闲状态的选择。例如,可以计算初始启动时间(例如to)与当前时间(例如tl)之间的差,并且可以基于初始启动时间与当前之间的差(例如to-tl)来选择空闲状态,例如Cl-CN状态中之一。在至少一些实施例中,子系统进入所选择的空闲状态,以在经调整的启动时间退出所选的空闲状态来
操作一事件。
[0060]图6示出了一种调整初始启动时间的方法600的一个实施例的流程图。方法开始于操作602,涉及子系统从空闲状态退出。空闲状态可以是功率降低状态之一,例如Cl-CN状态中任一个,如上所述。在操作604测量退出空闲状态的延迟(例如,XCi)。
[0061]例如,可以实验方式通过调度定时器并且测量在目标截止时间之后多久中断处理程序才能够运行来确定退出延迟。在至少一些实施例中,针对多个CPU中的每一个以及该CPU的多种空闲状态中的每一个测量退出延迟。在至少一些实施例中,在运行时间动态地完成对退出空闲状态的延迟的测量。
[0062]方法600继续操作606,涉及通过将测量的延迟添加到该空闲状态的延迟的运动平均来动态地计算平均延迟。在至少一些实施例中,从随时间(例如在当前时间之前)测量的延迟来确定退出空闲状态的最差情况延迟。在操作608,基于当前时间测量的延迟来重新计算最差情况延迟。在操作610,基于运动平均和重新计算的最差情况延迟来针对下一个定时器中断重新计算前一延迟。在至少一些实施例中,在当前时间测量延迟,并且在当前时间之前的前一时间计算前一延迟。
[0063]在操作612,使用重新计算的延迟来调整针对基于下一个定时器的唤醒的现有(初始)启动时间。即,在运行时间动态执行对退出空闲状态的延迟的测量,并且基于运行时间测量来执行针对下一个定时器中断将初始启动时间调整为新启动时间。方法600继续操作614,涉及等待子系统下一次从空闲状态退出。
[0064]图7示出了一种减小定时器中断延迟的方法700的一个实施例的流程图。方法开始于操作701,涉及子系统决定进入空闲状态。在操作702,基于已经针对空闲状态中的每一个测量的退出延迟、用于下一个定时器中断的初始启动时间、以及确定系统即将进行空闲状态的当前时间来选择空闲状态。空闲状态的选择可基于测量的延迟的量。在至少一些实施例中,因为在运行时间正在测量从不同空闲状态退出的延迟,如上所述,所以系统基于当前时间tl和初始启动时间to之间的差来动态地选择空闲状态。在至少一些实施例中,系统选择退出延迟比当前时间tl与初始启动时间to之差小的最大功率节省的空闲状态。例如,如果XCl〈tl -t0以及XC2〈tl -t0,但是XC3H1 - t0,则选择C2状态。结合图8和9进一步详细描述对空闲状态的选择。
[0065]在操作703,为定时器提供基于所选空闲状态的类型确定的新启动时间值。在至少一些实施例中,时间递减器被编程用于tO-XCi,其中to表示在未来对应于初始启动时间的时间单元数量,XCi表示对应于空闲状态的退出延迟的时间单元数量。在至少一些实施例中,时间递减器包括能向中断控制器声明超时或其他类似信号从而为系统生成中断信号的一个或多个计数器。在操作704中,进入所选择的空闲状态。操作705涉及在新启动时间退出所选择的空闲状态以操作一事件。在操作该事件之后,方法可返回到操作701。在至少一些实施例中,保持初始请求的启动时间的记录,从而如果空闲时段在定时器启动之前结束(例如,由于硬件中断或处理器间中断),则中断可以又被重新调度用于其初始截止时间(现在无需补偿空闲退出时间)。
[0066]图8示出了一种选择空闲状态的方法800的一个实施例的流程图。方法800开始于操作801,其涉及确定子系统(例如,处理器)即将进行空闲状态。在操作802,确定该子系统的下一个定时器中断的初始启动时间(TO)。例如,可通过查询存储在存储器,例如存储器205、308、301或403中的数据结构(例如,表格、列表等)来确定初始启动时间。在至少一些实施例中,可在时间相关事件的列表,例如列表423中存储初始启动时间。在操作803,确定子系统(例如,处理器)的多种空闲状态中的每一个的退出延迟。例如,可通过核查直到当前时间为止所收集的所测量的历史上退出延迟数据和/或用于处理器中的每一个和空闲状态中的每一个的特定于平台的表格来确定退出延迟XC1-XCN。在至少一些实施例中,退出延迟是基于所测量的延迟和最差情况延迟来动态计算的平均延迟,如以上结合图6所述。
[0067]方法800继续操作804,确定当前时间是否晚于初始启动时间与最小退出延迟之间的差值(tO-XCmin)。典型地,其中功率消耗在所有其他空闲状态中为最大的程度最浅的空闲状态(例如Cl状态)具有最小退出延迟。如果当前时间晚于该差值tO-XCmin,则在操作806保持初始启动时间t0并且阻止子系统进入空闲状态。
[0068]如果当前时间不晚于该差值tO-XCmin,则在操作805确定当前时间是否晚于tO-XCi+Ι,其中XCi+Ι为从Ci+1状态的退出延迟,其中i为从I到N-1的任意整数,其中CN表示其中功率消耗比其他空闲状态中更小的程度最深的空闲状态。如果当前时间晚于该差值tO-XCi+Ι,则在操作807把初始启动时间调整为动态计算的延迟值XCi。在一个实施例中,在运行时间动态地计算延迟值XCi,如结合图6所述。在操作809选择空闲状态Ci。
[0069]如果当前时间不晚于该差值tO-XCi+Ι,则在操作808确定当前时间是否晚于tO-XCmax。典型地,其中功率消耗在所有其他空闲状态中为最小的程度最深的空闲状态(例如CN状态)具有最大退出延迟。如果当前时间晚于该差值t0-XCmax,则在操作810将初始启动时间调整为动态计算的值XCmax-1。在操作811选择Cmax-1空闲状态。
[0070]如果当前时间不晚于该差值tO-XCmax,则在操作812将初始启动时间调整为按照统计方式推导出的退出延迟(例如,最差情况退出延迟XCmax)。在至少一些实施例中,按照统计方式推导出的退出延迟是在处理器的生命周期中按照统计方式由所测量的退出延迟数据推导出的最差情况延迟。在操作813中,选择Cmax空闲状态。在至少一些实施例中,Cmax空闲状态是与其他任何空闲状态相比子系统消耗更少功率的功率降低程度最深的状态。在操作814进入在操作809、811或813选择的空闲状态。
[0071]图9示出了一种选择空闲状态的方法900的另一个实施例的流程图。方法900开始于操作801-803,如上所述。方法900继续操作901,其涉及确定用于空闲状态的退出延迟(XCi)是否小于当前时间与初始启动时间之间的差值(tl-t0)。即,可将在操作612重新计算的退出延迟与当前时间和初始启动时间之间的差值进行比较。
[0072]如果退出延迟小于该差值(tl-t0),则在操作902确定该退出延迟XCi是否为最大退出延迟。典型地,最大退出延迟对应于与所有其他空闲状态中相比系统消耗更少功率量的程度最深的空闲状态。如果退出延迟为最大退出延迟,则在操作903将初始启动时间调整为按照统计方式推导出的延迟,如上所述。
[0073]在操作904,选择程度最深的空闲状态(例如,Cmax状态)。如果退出延迟不是最大延迟,则在操作905确定是否存在下一个退出延迟来考虑。如果存在下一个退出延迟,则方法900返回到操作901。如果不存在下一个退出延迟,则在操作906,将初始启动时间调整为动态计算的延迟值XCi。在至少一个实施例中,在运行时间动态地计算延迟值XCiJn结合图6所述。
[0074]在操作907,选择Ci空闲状态。如果退出延迟不小于该差值(tl-tO),则在操作908确定该退出延迟是否为最小退出延迟。典型地,最小退出延迟对应于与所有其他空闲状态相比系统消耗更多功率量的程度最浅的空闲状态。如果退出延迟为最小退出延迟,则在操作909,保持初始启动时间t0,并且阻止子系统进入空闲状态。如果退出延迟不是最小退出延迟,则在操作910确定是否存在下一个退出延迟来考虑。如果不存在退出延迟来考虑,则方法900进行到操作906。如果存在下一个退出延迟,则方法900返回到操作901。
[0075]一种用于CPU预热以减小中断延迟的系统和方法的实施例
[0076]如上所述,可在计算机系统上定义一系列CPU“空闲”状态来限制能量消耗。然而,这些空闲状态带来一些代价。例如,退出空闲状态以便为中断提供服务或运行线程可能花费长度不可预测的时间。恢复执行的延迟可以是许多微秒,并且其量值和不可预见性会对操作系统开发者带来很大挑战。如果系统涉及以高精确度触发中断的精确时刻,则产生一个重要的难题。由于退出空闲状态的长延迟,可能会直到触发事件之后较长时间才可能获得时间戳。
[0077]下文描述了一种减小时间关键的中断的延迟的系统和方法,可以合理的精度估计该中断的启动时间,并且同时基本上不影响能量消耗。这些实施例允许对处理器空闲状态的积极使用,而同时确保在触发中断的关键时刻,相关处理器或内核被“预热”到能以低延迟接收中断的点。在下文描述的实施例中,处理器“预热”是指将频率和/或电压升高到足够水平使得处理器能够处理中断。 [0078]图10图示了一种在预期时间关键的中断时使处理器预热从而处理器将在没有显著延时的情况下准备就绪来处理该中断的方法。在一个实施例中,该方法被实现为操作系统执行的软件。然而,应当注意,本发明的基本原理可以通过硬件、固件、软件或它们的任何组合来实现。
[0079]在1001,确定是否预期未来某个时间有时间关键的中断。软件生成的中断可以被例如应用程序开发者识别为“时间关键的”。如果中断为时间关键的,则在1002,估计将要发生触发中断事件的时间(tj。在一个实施例中,由请求中断的应用程序代码提供该信息。在1003,预热定时器中断被调度以在触发该中断的事件将发生的估计时间之前的时间U1*)启动。
[0080]如图11所示,在一个实施例中,根据方程U1-E) ( ^ (h+D-E来设定定时器中断,其中E为所选空闲状态的平均退出延迟(即,完全退出该空闲状态所需的时间量);h为时间关键的中断的估计启动时间;而I为将CPU “预热”到能处理时间关键的中断的点所需的最小延迟(即,实现足以处理该中断的最小频率和/或电压水平所需的时间)。以此方式设置定时器中断U1*)提供足够时间来使CPU预热(因为( (ti+D-E),而同时确保CPU不被预热得太快,由此对电力造成浪费(因为U1-E)逻辑上说,在以上方程中,I本质上必须<E(即,完全退出空闲状态的平均退出延迟必须大于充分地预热CPU使得它能处理该中断的延迟)。在一个实施例中,如上以及在共同未决的申请中所述,E的值不断得到更新,从而得到了用于U1 -E) ( ( (ti+1) -E的动态计算的值。
[0081]用于将任务1紧急性信息结合到功率管理决策中的系统和方法的实施例[0082]在本发明的一个实施例中,任务紧急性信息被“加入”到CPU功率管理决策中。特别地,在一个实施方式中,可以采用对一个或多个当前执行的线程进行表征的相对紧急性来确定CPU的合适频率和/或电压。根据该实施例,仍然可以利用很大程度上独立于时间调度的适应性功率管理算法来做出频率/电压决定,但在关键(例如,实时)任务出现时CPU可以直接转换成高速状态。以此方式,保持了性能和实时正确性两者,并且可更精确地进行用于识别“后台”负载的近似。在关键任务与低优先级任务区分开时,将有可能更积极地使用低时钟速率,而不担心破坏那些重要的任务。
[0083]图12图示了一种基于任务紧急性信息选择不同功率管理状态机的方法。在该具体实施例中,使用三个功率管理状态机:用于具有“后台”紧急性的任务的“后台”状态机,图13A中提供了一个实例;用于具有“正常”紧急性的任务的“正常”状态机,图13B中提供了一个实例;以及用于具有“实时”紧急性的任务的“实时”状态机,图13C中提供了一个实例。
[0084]如图12所提及,在1201,最初选择后台功率管理状态机。在一个实施例中,如图13A中所示的后台状态机具有代表特定的空闲CPU频率和/或电压水平的单个空闲状态。以举例的方式而非限制的方式,空闲频率可以为1.6GHz,而空闲电压可以为与空闲状态相关的任意指定的电压。例如,用于功率管理状态中的每一个的电压水平将直接与CPU中采用的半导体工艺技术相关(例如32纳米、45纳米等)。如果没有检测到具有正常或实时紧急性的任务,则系统可保持在该后台空闲状态中。然而,如果在1202确定检测到正常或实时线程,则系统将分别在2103或1206转换到正常或实时状态机。在1207确定实时线程完成时,在1208确定是否有正常线程正在等待。如果为否,则进程返回到1201,并且执行后台功率状态机。如果为是,则进程返回到1203,并且执行正常功率管理状态机。
[0085]图13B图示了一种用于具有定义的“正常”紧急性级别的任务/线程的示例性状态机。如图所示,当该任务对处理器施加未中断负载持续达I毫秒时,该状态机导致从空闲状态到SI功率状态的转换。以举例的方式,如所指示的那样,空闲功率状态可表示800GHz的频率,而SI功率状态可表示1.6GHz的频率。注意,本文所使用的SI功率状态不同于ACPISI功率状态(其中所有处理器缓存被刷新并且CPU停止执行指令)。在图示的实施例中,“正常”状态机保持在SI功率状态直到该任务对处理器施加未中断负载持续附加的2毫秒,在此时刻状态机将处理器频率和/或电压提升到S2功率状态(例如,所图示实例中的
3.2GHz)。如果在所示的SI功率状态或S2功率状态中时该任务暂停(即,停止使用CPU处理资源),则状态机分别转换到Sld和S2d功率状态。在这些临时转换状态中时,处理器保持在相同频率和电压水平,但是启动定时器。如果任务继续暂停持续达共计4毫秒,则如图示,状态机从Sld或者从S2d状态转换回到空闲功率状态。
[0086]图13C图示了一种用于具有定义的“实时”紧急性级别的任务/线程的示例性状态机。如图所示,在该任务对处理器施加未中断负载持续达IOOus时,该状态机导致从空闲状态直接转换到S2功率状态。如上所述,空闲功率状态可表示800GHz的频率,而S2功率状态可表示3.2GHz的频率,但是本发明的基本原理不限于频率和/或电压的任何特定集合。如果在如图所示的S2功率状态中时该任务暂停(即,停止使用CPU处理资源),则状态机转换到S2d功率状态,其中处理器保持在相同频率和电压水平,但是启动定时器。如果该任务继续暂停持续达共计200us,则如图所示状态机转换回到空闲功率状态。[0087]图14图示了一种用于选择针对处理器封装上的CPU1410-1413中的每一个要使用的特定频率和/或电压的处理器架构。在一个实施例中,单个步进上下文1402保持用于特定步进程序1405的状态。如图所示,每个CPU1410-1413执行步进程序1405的其自身实例,该实例确定CPU工作的当前频率和电压。在一个实施例中,步进程序的每个实例结合一组功率管理状态机来执行图12中所示的方法,上面结合图13A-C描述了功率管理状态机的一些实例。步进实例中的每一个对可包括请求CPU处理资源的应用程序代码的事件1401进行响应(例如,响应于一个或多个应用程序的执行)。
[0088]示例性数据处理设备
[0089]图15是图示了一种可在本发明的一些实施例中使用的一种示例性计算机系统的框图。应当理解,尽管图15图示了一种计算机系统的多个部件,但是并非意在代表互连所述部件的任何特定架构或方式,因为这些细节与本发明关系不密切。应当理解,具有更少部件或更多部件的其他计算机系统也可以用于本发明。
[0090]如图15所示,数据处理系统形式的计算机系统2300包括与处理系统2320、电源2325、存储器2330和非易失性存储器2340 (例如,硬盘驱动器、闪存存储器、相变存储器(PCM)等)耦合的总线2350。如本领域公知的那样,总线2350可通过各种桥路、控制器、和/或适配器彼此连接。处理系统2320可从存储器2330和/或非易失性存储器2340检索指令,并且执行所述指令来执行如上所述的操作。总线2350将以上部件互连在一起,并且还把那些部件互连到可选的坞站2360、显示控制器&显示设备2370、输入/输出设备2380 (例如NIC(网络接口卡),光标控件(例如,鼠标、触摸屏、触摸板等)、键盘等)、和可选的无线收发器2390(例如,蓝牙、WiF1、红外等)。
[0091]图16是图示了可在本发明的一些实施例中使用的一种示例性数据处理系统的框图。例如,数据处理系统2400可以是手持式计算机、个人数字助理(PDA)、移动电话、便携式游戏系统、便携式媒体播放器、可包括移动电话、媒体播放器和/或游戏系统的平板式或手持式计算设备。作为另一实例,数据处理系统2400可以是网络计算机或另一设备中的嵌入式处理设备。
[0092]根据本发明的一个实施例,数据处理系统2400的示例性架构可用于上述的移动设备。数据处理系统2400包括处理系统2420,该处理系统可包括集成电路上的一个或多个微处理器和/或一个系统。处理系统2420与存储器2410、电源2425 (其包括一个或多个电池)、音频输入/输出2440、显不控制器和显不设备2460、可选的输入/输出2450、输入设备2470和无线收发器2430耦合。应当理解,图24中未示出的另外部件也可以是本发明的某些实施例中的数据处理系统2400的一部分,并且在本发明的某些实施例中可以使用比图16中所示更少的部件。另外,应当理解,如本领域公知的那样,可以使用图16中未示出的一个或多个总线来互连各种部件。
[0093]存储器2410可存储供数据处理系统2400执行的数据和/或程序。音频输入/输出2440可包括麦克风和/或扬声器,从而例如通过扬声器和麦克风来播放音乐和/或提供电话功能性。显示控制器和显示设备2460可包括图形用户界面(⑶I)。可使用无线(例如RF)收发器2430(例如,WiFi收发器、红外收发器、蓝牙收发器、无线蜂窝电话收发器等)来与其他数据处理系统通信。所述一个或多个输入设备2470允许用户向系统提供输入。这些输入设备可以是小键盘、键盘、触摸面板、多点触摸面板等。可选的其他输入/输出2450可以是用于坞站的连接器。
[0094]本发明的实施例可包括如上所述的各个步骤。这些步骤可以以机器可执行指令的方式实现,该指令使得通用或专用处理器执行某些步骤。作为另外一种选择,这些步骤可通过包含用于执行所述步骤的硬连线逻辑的专用硬件部件、或者通过编程的计算机部件和定制硬件部件的任何组合来执行。
[0095]本发明的元素还可以被提供为用于存储机器可执行程序代码的机器可读介质。机器可读介质可包括但不限于:软盘、光盘、CD-ROM和磁光盘、ROM、RAM、EPROM、EEPR0M、磁卡或光卡、或适于存储电子程序代码的其他类型的介质/机器可读介质。
[0096]在前面的描述中,为了说明的目的,描述了许多具体细节以便提供对本发明透彻的理解。然而,对本领域的技术人员而言显而易见的是,可以在不存在这些具体细节中某些细节的情况下实践本发明。例如,对本领域的技术人员而言显而易见的是,本文所述的功能模块和方法可以实现为软件、硬件或它们的任何组合。此外,尽管本发明的实施例是在移动计算环境的背景下描述的(即,使用移动设备120-123 ;601-603),但是本发明的基本原理不限于移动计算实现方式。实质上,任何类型的客户机或对等数据处理设备可用于一些实施例中,例如包括台式计算机或工作站计算机。因此,本发明的范围和精神应根据所附权利要求来判定。
【权利要求】
1.一种用于管理处理器的功率状态的方法,包括: 基于与第一任务相关联的第一紧急性级别来执行第一功率管理状态机; 检测与第二紧急性级别相关联的第二任务的执行; 如果所述第二紧急性级别高于所述第一紧急性级别,则执行与所述第二紧急性级别相关联的第二功率管理状态机。
2.根据权利要求1所述的方法,其中所述第一功率管理状态机和所述第二功率管理状态机指定多种处理器功率状态以及用于在所述处理器功率状态中的每一种之间进行转换的条件。
3.根据权利要求2所述的方法,其中所述处理器功率状态中的每一种均指定特定处理器频率。
4.根据权利要求3所述的方法,其中所述处理器功率状态中的每一种均指定处理器电压。
5.根据权利要求2所述的方法,其中用于在所述处理器功率状态中的每一种之间进行转换的条件包括任务请求所述处理器上的不中断负载的持续时间。
6.根据权利要求1所述的方法,还包括: 在执行所述第二功率管理状态机的同时继续执行所述第一功率管理状态机。
7.根据权利要求1所述的方法,还包括: 检测与第三紧急性级别相关联的第三任务的执行;以及 如果所述第三紧急性级别高于所述第二紧急性级别,则执行与所述第三紧急性级别相关联的第三功率管理状态机。
8.根据权利要求7所述的方法,还包括: 在执行所述第三功率管理状态机的同时继续执行所述第一功率管理状态机和所述第二功率管理状态机。
9.根据权利要求8所述的方法,其中所述第一紧急性级别、所述第二紧急性级别和所述第三紧急性级别分别包括后台紧急性级别、正常紧急性级别和实时紧急性级别。
10.根据权利要求1所述的方法,其中所述第一功率管理状态机、所述第二功率管理状态机和所述第三功率管理状态机中的一个或多个包括SI功率状态、S2功率状态和空闲功率状态。
11.根据权利要求10所述的方法,其中所述第一功率管理状态机、所述第二功率管理状态机和所述第三功率管理状态机中的一个或多个包括在所述SI功率状态、所述S2功率状态和所述空闲功率状态之间的转换条件。
12.根据权利要求11所述的方法,其中所述转换条件包括具有与所述功率管理状态机中的每一个相关联的紧急性级别的任务请求所述处理器上的不中断负载的不同时间段。
13.—种包括用于存储程序代码的存储器和用于处理所述程序代码来执行以下操作的处理器的设备: 基于与第一任务相关联的第一紧急性级别来执行第一功率管理状态机; 检测与第二紧急性级别相关联的第二任务的执行; 如果所述第二紧急性级别高于所述第一紧急性级别,则执行与所述第二紧急性级别相关联的第二功率管理状态机。
14.根据权利要求13所述的设备,其中所述第一功率管理状态机和所述第二功率管理状态机指定多种处理器功率状态以及在所述处理器功率状态中的每一种之间进行转换的条件。
15.根据权利要求14所述的设备,其中所述处理器功率状态中的每一种均指定特定处理器频率。
16.根据权利要求15所述的设备,其中所述处理器功率状态中的每一种均指定处理器电压。
17.根据权利要求14所述的设备,其中用于在所述处理器功率状态中的每一种之间进行转换的条件包括任务请求所述处理器上的不中断负载的持续时间。
18.根据权利要求13所述的设备,包括用于使所述处理器执行以下附加操作的附加程序代码: 在执行所述第二功率管理状态机的同时继续执行所述第一功率管理状态机。
19.根据权利要求13所述的设备,包括用于使所述处理器执行以下附加操作的附加程序代码: 检测与第三紧急性级别相关联的第三任务的执行;以及 如果所述第三紧急性级别高于所述第二紧急性级别,则执行与所述第三紧急性级别相关联的第三功率管理状态机。
20.根据权 利要求19所述的设备,包括用于使所述处理器执行以下附加操作的附加程序代码: 在执行所述第三功率管理状态机的同时继续执行所述第一功率管理状态机和所述第二功率管理状态机。
21.根据权利要求20所述的设备,其中所述第一紧急性级别、所述第二紧急性级别和所述第三紧急性级别分别包括后台紧急性级别、正常紧急性级别和实时紧急性级别。
22.根据权利要求13所述的设备,其中所述第一功率管理状态机、所述第二功率管理状态机和所述第三功率管理状态机中的一个或多个包括SI功率状态、S2功率状态和空闲功率状态。
23.根据权利要求22所述的设备,其中所述第一功率管理状态机、所述第二功率管理状态机和所述第三功率管理状态机中的一个或多个包括在所述SI功率状态、所述S2功率状态和所述空闲功率状态之间的转换条件。
24.根据权利要求23所述的设备,其中所述转换条件包括具有与所述功率管理状态机中的每一个相关联的紧急性级别的任务请求所述处理器上的不中断负载的不同时间段。
25.一种其上存储有程序代码的机器可读介质,所述程序代码在由处理器执行时使所述处理器执行以下操作: 基于与第一任务相关联的第一紧急性级别来执行第一功率管理状态机; 检测与第二紧急性级别相关联的第二任务的执行; 如果所述第二紧急性级别高于所述第一紧急性级别,则执行与所述第二紧急性级别相关联的第二功率管理状态机。
26.根据权利要求25所述的机器可读介质,其中所述第一功率管理状态机和所述第二功率管理状态机指定多种处理器功率状态以及在所述处理器功率状态中的每一种之间进行转换的条件。
27.根据权利要求26所述的机器可读介质,其中所述处理器功率状态中的每一种均指定特定处理器频率。
28.根据权利要求27所述的机器可读介质,其中所述处理器功率状态中的每一种均指定处理器电压。
29.根据权利要求26所述的机器可读介质,其中用于在所述处理器功率状态中的每一种之间进行转换的条件包括任务请求所述处理器上的不中断负载的持续时间。
30.根据权利要求25所述的机器可读介质,包括用于使所述处理器执行以下附加操作的附加程序代码: 在执行所述第二功率管理状态机的同时继续执行所述第一功率管理状态机。
31.根据权利要求25所述的机器可读介质,包括用于使所述处理器执行以下附加操作的附加程序代码: 检测与第三紧急性级别相关联的第三任务的执行;以及 如果所述第三紧急性级别高于所述第二紧急性级别,则执行与所述第三紧急性级别相关联的第三功率管理状态机。
32.根据权利要求25所述的机器可读介质,包括用于使所述处理器执行以下附加操作的附加程序代码: 在执行所述第三功率管理状 态机的同时继续执行所述第一功率管理状态机和所述第二功率管理状态机。
33.根据权利要求32所述的机器可读介质,其中所述第一紧急性级别、所述第二紧急性级别和所述第三紧急性级别分别包括后台紧急性级别、正常紧急性级别和实时紧急性级别。
34.根据权利要求25所述的机器可读介质,其中所述第一功率管理状态机、所述第二功率管理状态机和所述第三功率管理状态机中的一个或多个包括SI功率状态、S2功率状态和空闲功率状态。
35.根据权利要求34所述的机器可读介质,其中所述第一功率管理状态机、所述第二功率管理状态机和所述第三功率管理状态机中的一个或多个包括在所述SI功率状态、所述S2功率状态和所述空闲功率状态之间的转换条件。
36.根据权利要求35所述的机器可读介质,其中所述转换条件包括具有与所述功率管理状态机中的每一个相关联的紧急性级别的任务请求所述处理器上的不中断负载的不同时间段。
【文档编号】G06F1/32GK103890694SQ201280052001
【公开日】2014年6月25日 申请日期:2012年9月21日 优先权日:2011年10月28日
【发明者】D·S·海勒, 盖伊·G·小索托玛约尔, 小J·索科尔 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1