CN109313478A - 出于能效在移动装置上进行的唤醒锁感知***宽作业调度 - Google Patents

出于能效在移动装置上进行的唤醒锁感知***宽作业调度 Download PDF

Info

Publication number
CN109313478A
CN109313478A CN201780035576.3A CN201780035576A CN109313478A CN 109313478 A CN109313478 A CN 109313478A CN 201780035576 A CN201780035576 A CN 201780035576A CN 109313478 A CN109313478 A CN 109313478A
Authority
CN
China
Prior art keywords
wake
lock
event
ready operation
waking
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.)
Pending
Application number
CN201780035576.3A
Other languages
English (en)
Inventor
S·南德哈·普雷姆纳特
S·A·K·加塔拉
S·M·达斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN109313478A publication Critical patent/CN109313478A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0264Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by selectively disabling software applications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing 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)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

实施例包含用于实施唤醒锁感知调度的计算装置、设备和由所述设备实施的方法。所述设备可通过唤醒锁分析器接收唤醒锁请求且获取与所述唤醒锁请求相关联的唤醒锁事件的唤醒锁信息。所述唤醒锁信息可包含唤醒锁时间参数。所述设备可发送具有所述唤醒锁时间参数的提示。所述设备可接收所述提示,确定就绪工作是否可在所述唤醒锁事件期间执行,以及响应于确定所述就绪工作可在所述唤醒锁事件期间执行而发送用于准许调度所述就绪工作以在所述唤醒锁事件期间执行的请求。

Description

出于能效在移动装置上进行的唤醒锁感知***宽作业调度
背景技术
现代智能手机的计算***的不同部分调度其个别作业(周期或非周期性的)。在用户空间中调度应用程序级服务和***级服务。在内核空间中调度驱动程序级作业和背景作业。计算***的中央处理单元(CPU)定期唤醒以完成调度作业。频繁的CPU唤醒增加了整体能耗。CPU甚至在计算***的显示屏关闭时保持唤醒以执行应用程序和服务的背景活动。在电池供电的***,例如智能手机中,这样会消耗电池电力。
发明内容
各种实施例的方法和设备提供用于在计算装置上实施唤醒锁感知调度的设备和方法。各种实施例可包含唤醒锁分析器,所述唤醒锁分析器接收唤醒锁请求,获取与唤醒锁请求相关联的唤醒锁事件的唤醒锁信息,以及发送包含唤醒锁时间参数的提示。在各种实施例中,唤醒锁信息可包含唤醒锁时间参数。唤醒锁时间参数可包含识别和/或实现对唤醒锁的持续时间的计算的信息,包含唤醒锁持续时间、唤醒锁持续时间估计值、唤醒锁开始时间和/或唤醒锁结束时间中的一或多个。一些实施例可进一步包含通过调度器接收提示,通过调度器确定第一就绪作业是否可在唤醒锁事件期间执行,以及通过调度器响应于确定第一就绪作业可在唤醒锁事件期间执行而发送用于准许调度第一就绪作业以在唤醒锁事件期间执行的请求。
在一些实施例中,用于准许调度第一就绪作业以在唤醒锁事件期间执行的请求可包含针对第一就绪作业对处理器使用率的估计。一些实施例可进一步包含唤醒锁分析器,所述唤醒锁分析器接收用于准许调度第一就绪作业以在唤醒锁事件期间执行的请求,以及确定包含第一就绪作业的工作负荷是否超出总处理器使用率阈值。一些实施例可进一步包含唤醒锁分析器,所述唤醒锁分析器响应于确定工作负荷超出总处理器使用率阈值而发送对用于准许调度第一就绪作业以在唤醒锁事件期间执行的请求的拒绝。一些实施例可进一步包含唤醒锁分析器,所述唤醒锁分析器响应于确定工作负荷未超出总处理器使用率阈值而发送对用于准许调度第一就绪作业以在唤醒锁事件期间执行的请求的批准。
一些实施例可进一步包含调度器,所述调度器接收对用于准许调度第一就绪作业以在唤醒锁事件期间执行的请求的拒绝,以及确定第二就绪作业是否可在唤醒锁事件期间执行。一些实施例可进一步包含调度器,所述调度器响应于确定第二就绪作业可在唤醒锁事件期间执行而发送对用于准许调度第二就绪作业以在唤醒锁事件期间执行的请求。一些实施例可进一步包含调度器,所述调度器接收对用于准许调度第二就绪作业以在唤醒锁事件期间执行的请求的批准,以及调度第二就绪作业以在唤醒锁事件期间执行。
一些实施例可进一步包含调度器,所述调度器确定第一就绪作业是否超出处理器使用率阈值,且响应于确定第一就绪作业可在唤醒锁事件期间执行且响应于确定第一就绪作业未超出处理器使用率阈值而发送用于准许调度第一就绪作业以在唤醒锁事件期间执行的请求。各种实施例可进一步包含调度器,所述调度器确定第二就绪作业是否可在唤醒锁事件期间执行。
一些实施例可进一步包含唤醒锁分析器,所述唤醒锁分析器确定唤醒锁信息是否包含唤醒锁时间参数,且响应于确定唤醒锁信息不包含唤醒锁时间参数而计算唤醒锁事件的唤醒锁持续时间估计值。一些实施例可进一步包含唤醒锁分析器,所述唤醒锁分析器将唤醒锁持续时间估计值存储在具有对应唤醒锁ID的唤醒锁信息数据结构中。
在一些实施例中,计算唤醒锁事件的唤醒锁持续时间估计值可包含使用唤醒锁事件的多个唤醒锁持续时间计算唤醒锁事件的唤醒锁持续时间估计值。在一些实施例中,多个唤醒锁持续时间可包含多个唤醒锁持续时间估计值、多个唤醒锁持续时间观测结果,或多个唤醒锁估计值和唤醒锁观测结果中的一个。
各种实施例可包含唤醒锁感知***,所述唤醒锁感知***具有通信连接到调度器的唤醒锁分析器。唤醒锁分析器和调度器可经配置以执行上文概括的实施例方法中的一或多个的操作。
各种实施例可包含唤醒锁感知***,所述唤醒锁感知***具有用于执行上文概括的实施例方法中的一或多个的功能的装置。
各种实施例可包含非暂时性处理器可读存储媒体,在其上储存有处理器可执行指令,所述处理器可执行指令经配置以致使计算装置的处理器执行上文概括的实施例方法中的一或多个的操作。
附图说明
并入本文中并且构成本说明书的部分的附图说明各种实施例的实例实施例,且与上文给出的一般描述和下文给出的详细描述一起用以解释权利要求书的特征。
图1是说明适合于实施实施例的计算装置的组件框图。
图2是说明适合于实施实施例的实例多核心处理器的组件框图。
图3A到3C是根据各种实施例的说明唤醒锁感知***的三个实例的组件框图。
图4是根据实施例的说明唤醒锁信息表的实例的框图。
图5是根据实施例的说明实例唤醒锁持续时间估计的符号图。
图6是根据实施例的说明唤醒锁未感知调度的实例的符号图。
图7是根据实施例的说明唤醒锁感知调度的实例的符号图。
图8是根据实施例的说明用于唤醒锁持续时间估计的方法的过程流程图。
图9是根据实施例的说明用于唤醒锁感知调度的方法的过程流程图。
图10是根据实施例的说明用于唤醒锁感知调度的方法的过程流程图。
图11是说明适合与各种实施例一起使用的实例移动计算装置的组件框图。
图12是说明适合与各种实施例一起使用的实例移动计算装置的组件框图。
图13是说明适合与各种实施例一起使用的实例服务器的组件框图。
具体实施方式
将参看附图详细描述各种实施例。在可能的情况下,将在整个图式中使用相同参考标号来指代相同或相似部分。参考特定实例和实施方案是出于说明性目的,且并非意图限制所附权利要求书的范围。
术语“计算装置”和“移动计算装置”在本文中可互换地使用以指以下各者中的任何一者或全部:蜂窝式电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、笔记本电脑、平板电脑、可变形笔记本电脑/平板电脑(二合一计算机)、智能笔记本电脑、超级本、上网本、掌上型计算机、无线电子邮件接收器、具多媒体因特网功能的蜂窝式电话、移动游戏控制台和包含存储器和可编程处理器的类似个人电子装置。术语“计算装置”可进一步是指静止计算装置,包含个人计算机、台式计算机、一体化计算机、工作站、超级计算机、大型计算机、嵌入型计算机、服务器、家庭影院计算机和游戏控制台。
各种实施例包含方法和实施此类方法的***和装置,用于在计算装置中***地调整和执行***宽协调作业调度以基于唤醒锁活动实现更长/更深的处理器休眠阶段,以获得更佳能效。实施例可包含计算唤醒锁活动的持续时间估计值,向调度器提供即将出现/现有唤醒锁活动时间的提示,以及对即将出现/现有唤醒锁活动调度作业,只要工作负荷将保持低于阈值。
面向组件的用户(在Android***中被称作“活动”)和每一应用程序内的背景服务常常获取唤醒锁。唤醒锁使中央处理单元(CPU)保持唤醒,持续一定时间窗口,以能够完成特定任务。可使用明确超时值来获取唤醒锁。举例来说,可获得唤醒锁,以播放60秒YouTube视频,或以执行一些特定、明确界定的程序代码段。其它唤醒锁的基于任务的性质使得有可能基于历史估计一些唤醒锁的平均持续时间。
为了减小用于获得唤醒锁以执行各种任务的CPU唤醒次数,可从***的不同部分调度作业,以机会性地搭载在即将出现/现有唤醒锁时间窗上。在不同层级的作业调度器可经配置以根据关于即将出现/现有唤醒锁窗口的提示调整作业的调度。这样可使CPU能够休眠较长持续时间且减少休眠到活跃以及活跃到休眠过渡的次数。
可基于脱机和/或运行时分析使用例如平均值、中值、指数加权移动平均值等合适的测量值来计算唤醒锁的持续时间和/或持续时间估计值。在各种***中,可存储与识别和规定唤醒锁的其它参数的信息相关的持续时间和/或持续时间估计值。举例来说,持续时间和/或持续时间估计值可添加到唤醒锁的全局表且与Android***中的唤醒锁识别符(ID)相关。
唤醒锁分析器可添加到***以计算持续时间和/或持续时间估计值,为不同层级的调度器提供与唤醒锁的持续时间和/或持续时间估计值相关的提示,确定调度的工作是否超出总处理器使用率阈值,且批准/拒绝工作调度。唤醒锁分析器可以是独立组件、电源管理器的集成组件、由CPU实施的软件程序或由CPU实施的软件程序和专用硬件的组合。
应用程序可从电源管理器请求唤醒锁。用以获取唤醒锁的请求可规定唤醒锁识别符和/或指示何时释放唤醒锁的超时值,从而致使允许CPU从活跃过渡到休眠状态。唤醒锁分析器可检测、接收和/或拦截唤醒锁的请求且将唤醒锁提示传递到一或多个调度器。唤醒锁提示可对接收调度器规定即将出现/现有过程、作业或任务的实际或估计的持续时间,其可包含开始时间和/或结束时间或可用以限定唤醒锁的开始和/或结束时间的过程/作业/任务的持续时间。
调度器可维持一列就绪作业等待在即将出现/现有唤醒锁期间执行或等待获取唤醒锁以执行。调度器可选择可在唤醒锁提示中规定的持续时间期间进行的就绪作业以在相关唤醒锁期间调度执行。可响应于确定CPU使用率将在唤醒锁期间小于处理器使用率阈值,例如CPU能力的50%或更少的使用率而实施就绪作业的选择。
每一调度器可与唤醒锁分析器协商以调度调度器的相应所选就绪作业。每一调度器可将所选就绪作业的估计CPU使用率发送到唤醒锁分析器。唤醒锁分析器可确定总CPU使用率、来自各种调度器的所选就绪作业的估计CPU使用率和所请求的唤醒锁的调度作业的CPU使用率的组合是否将超出总处理器使用率阈值(例如,CPU能力的75%或更大的使用率)。响应于确定总CPU使用率将小于总处理器使用率阈值,唤醒锁分析器可将对所选就绪作业的调度的批准用信号发送到各个调度器。
响应于确定总CPU使用率将超出总处理器使用率阈值,唤醒锁分析器可将对所有所选就绪作业的拒绝用信号发送到各个调度器。基于拒绝的信号,调度器可选择具有更低的估计CPU使用率的就绪作业且继续与唤醒锁分析器协商,直到接收到对所选就绪作业的批准为止。
响应于确定总CPU使用率将超出总处理器使用率阈值,唤醒锁分析器可选择可在唤醒锁期间执行而不超出总处理器使用率阈值的某些就绪作业,且将对其它所选就绪作业的批准和拒绝用信号发送各个调度器。基于批准的信号,调度器可调度批准的就绪作业以在即将出现/现有唤醒锁期间执行。
图1说明适合与各种实施例一起使用的计算装置10。计算装置10可包含芯片上***(SoC)12,所述芯片上***12具有处理器14、存储器16、通信接口18和存储装置存储器接口20。计算装置10可进一步包含通信组件22,例如有线或无线调制解调器、存储装置存储器24和用于建立无线通信链路的天线26。处理器14可包含各种处理装置中的任一个,例如数个处理器核心。
术语“芯片上***”(SoC)在本文中用以指通常但非排他地包含处理装置、存储器和通信接口的一组互连电子电路。处理装置可包含各种不同类型的处理器14和处理器核心,例如通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、辅助处理器、单核心处理器和多核心处理器。处理装置可进一步体现其它硬件和硬件组合,例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其它可编程逻辑装置、离散门逻辑、晶体管逻辑、性能监视硬件、看门狗硬件和时间基准。集成电路可经配置以使得集成电路的组件驻留在例如硅的单件半导体材料上。
SoC 12可包含一或多个处理器14。计算装置10可包含多于一个SOC 12,由此增加处理器14和处理器核心的数目。计算装置10还可包含与SoC 12不相关联的处理器14。个别处理器14可以是多核心处理器,如下文参考图2所描述。处理器14可出于特定目的各自经配置与计算装置10的其它处理器14相同或不同。具有相同或不同配置的处理器14和处理器核心中的一或多个可分组在一起。处理器14或处理器核心的组可被称为多处理器集群。
SoC 12的存储器16可以是易失性或非易失性存储器,所述易失性或非易失性存储器经配置成用于存储数据和处理器可执行代码,以供处理器14存取。计算装置10和/或SoC12可包含经配置成用于各个目的的一或多个存储器16。一或多个存储器16可包含易失性存储器,例如随机存取存储器(RAM)或主存储器,或者高速缓冲存储器。这些存储器16可经配置以暂时地保存从数据传感器或子***接收的有限量的数据、从非易失性存储器请求的从非易失性存储器加载到存储器16以基于各种因素预测未来存取的数据和/或处理器可执行代码指令,和/或由处理器14产生且暂时地存储用于未来快速存取而不存储于非易失性存储器中的中间处理数据和/或处理器可执行代码指令。
存储器16可经配置以至少暂时地存储从例如另一存储器16或存储装置存储器24等另一存储器装置加载到存储器16以供处理器14中的一或多个存取的数据和处理器可执行代码。加载到存储器16的数据或处理器可执行代码可响应于由处理器14执行功能而加载。响应于功能的执行而将数据或处理器可执行代码加载到存储器16可由对存储器16的存储器存取请求不成功或未命中造成,这是由于所请求的数据或处理器可执行代码不位于存储器16中。响应于未命中,可对另一存储器16或存储装置存储器24进行存储器存取请求,以将所请求的数据或处理器可执行代码从其它存储器16或存储装置存储器24加载到存储器装置16。响应于功能的执行而将数据或处理器可执行代码加载到存储器16可由对另一存储器16或存储装置存储器24的存储器存取请求造成,且数据或处理器可执行代码可加载到存储器16,以供随后存取。
存储装置存储器接口20和存储装置存储器24可共同工作以允许计算装置10在非易失性存储装置媒体上存储数据和处理器可执行代码。存储装置存储器24可经配置为非常相似于存储器16的实施例,其中存储装置存储器24可存储数据或处理器可执行代码,以供处理器14中的一或多个存取。存储装置存储器24是非易失性的,可在已切断计算装置10的电源之后存留信息。当重新接通电源且计算装置10重新启动时,存储在存储器24上的信息可供计算装置10使用。存储装置存储器接口20可控制对存储装置存储器24的存取且允许处理器14从存储装置存储器24读取数据和将数据写入到存储装置存储器24。
计算装置10的组件中的一些或全部可不同地布置和/或组合,同时仍提供必需功能。此外,计算装置10可不限于组件中的每一个中的一个,且每一组件的多个例子可包含在计算装置10的各种配置中。
图2说明适合于实施实施例的多核心处理器14。多核心处理器14可具有多个同构或异构处理器核心200、201、202、203。处理器核心200、201、202、203可以是同构的,原因在于单个处理器14的处理器核心200、201、202、203可经配置成用于相同目的且具有相同或类似性能特性。举例来说,处理器14可以是通用处理器,且处理器核心200、201、202、203可以是同构通用处理器核心。替代地,处理器14可以是图形处理单元或数字信号处理器,且处理器核心200、201、202、203可分别是同构图形处理核心或数字信号处理器核心。为了易于参考,本文中术语“处理器”和“处理器核心”可互换使用。
处理器核心200、201、202、203可以是异构的,原因在于单个处理器14的处理器核心200、201、202、203可经配置成用于不同目的和/或具有不同性能特性。此类异构处理器核心的异构性可包含不同指令集架构、管线、操作频率等。此类异构处理器核心的实例可包含所谓的“big.LITTLE”架构,其中较慢、低功率处理器核心可与较强大和高功耗处理器核心耦合。在类似实施例中,SoC 12可包含数个同构或异构处理器14。
在图2中说明的实例中,多核心处理器14包含四个处理器核心200、201、202、203(即,处理器核心0、处理器核心1、处理器核心2和处理器核心3)。为便于说明,本文中实例可指图2中所说明的四个处理器核心200、201、202、203。然而,图2中所说明且本文中所描述的四个处理器核心200、201、202、203仅作为实例提供且决不意指将各种实施例限于四个核心处理器***。计算装置10、SoC 12或多核心处理器14可个别地或组合地包含比本文中所说明和描述的四个处理器核心200、201、202、203更少或更多。
图3A到3C说明唤醒锁感知调度***300a到300c的实例实施例。唤醒锁感知调度***300a到300c的实例实施例可包含在计算装置(如图1中的计算装置10)上。唤醒锁感知调度***300a到300c的实例实施例中的每一个可包含唤醒锁分析器304、服务作业调度器306和驱动程序作业/内核级背景作业调度器308。唤醒锁分析器304可通信连接到服务作业调度器306和驱动程序作业/内核级背景作业调度器308。在各个实施例中,唤醒锁分析器304可实施为在通用硬件(如图1和2中的处理器14)上或在如电源管理器302的专用硬件上执行的软件。在各个实施例中,唤醒锁分析器304可以是实施为硬件组件,所述硬件组件集成为通用硬件(如图1和2中的处理器14)的部分或集成为如电源管理器302的专用硬件的部分。在各个实施例中,唤醒锁分析器304可实施于可编程处理器中,所述可编程处理器执行经配置以管理唤醒锁的软件的软件组件,例如电源管理器302。替代地,唤醒锁分析器304可实施于通用硬件/电路(如图1和2中的处理器14)中或专用硬件/电路中。在各个实施例中,唤醒锁分析器304可实施为专用硬件组件,且可通信连接到处理器14和电源管理器302。
唤醒锁分析器304可经配置以从应用程序接收/检测/拦截唤醒锁请求且在唤醒锁事件期间使用包含有处理器14活动的请求和/或观测结果的唤醒锁信息来编译各个唤醒锁的唤醒锁信息。可包含有唤醒锁请求且由唤醒锁分析器304编译的唤醒锁信息可包含唤醒锁识别符(ID)、用户ID、进程ID和唤醒锁时间参数。唤醒锁时间参数可包含识别和/或实现对唤醒锁的持续时间的计算的信息,包含唤醒锁持续时间、唤醒锁持续时间估计值、唤醒锁开始时间和/或唤醒锁结束时间中的一或多个。唤醒锁识别符(ID)、用户ID、进程ID和唤醒锁时间参数还可在唤醒锁事件期间由唤醒锁分析器304从处理器14观测到。唤醒锁分析器304还可在唤醒锁事件期间从处理器14活动的观测结果计算和编译唤醒锁持续时间估计值,且使唤醒锁持续时间估计值与从唤醒锁请求编译的唤醒锁信息相关。唤醒锁分析器304可将唤醒锁信息存储在数据结构中,所述数据结构经配置以使由其唤醒锁ID识别的指定唤醒锁的唤醒锁信息相关。
唤醒锁分析器304可经配置以识别唤醒锁请求且将提示发送到服务作业调度器306和/或驱动程序作业/内核级背景作业调度器308。提示可包含所请求的唤醒锁的提示唤醒锁时间参数。唤醒锁时间参数可包含识别和/或实现对唤醒锁的持续时间的计算的信息,包含唤醒锁持续时间、唤醒锁持续时间估计值、唤醒锁开始时间和/或唤醒锁结束时间中的一或多个。所请求的唤醒锁可以是即将出现或现有唤醒锁。服务作业调度器306和/或驱动程序作业/内核级背景作业调度器308可使用提示信息来选择可在所请求的唤醒锁的唤醒锁事件期间执行的就绪作业。服务作业调度器306和/或驱动程序作业/内核级背景作业调度器308可从唤醒锁分析器304请求准许以调度所选就绪作业。准许请求可包含处理器使用率指示符和/或就绪作业识别符。处理器使用率指示符可以是用于调度所有所请求的就绪作业、所请求的就绪作业的组或个别所请求的就绪作业的处理器使用率的指示符。
唤醒锁分析器304可确定是否批准和/或拒绝用于准许调度所选就绪作业的请求。唤醒锁分析器304可基于所有所请求的就绪作业、所请求的就绪作业的组或个别所请求的就绪作业是否可添加到处理器14的总工作负荷同时保持处于或低于总处理器使用率阈值而准予和/或否决用于准许调度所选就绪作业的请求。唤醒锁分析器304可发送对所有所请求的就绪作业、所请求的就绪作业的组或个别所请求的就绪作业的批准和/或拒绝。
服务作业调度器306和/或驱动程序作业/内核级背景作业调度器308可响应于准许调度所选就绪作业中的一些或全部的拒绝而重新配置对就绪作业中的一些或全部的选择,且重复请求准许使用重新配置的就绪作业选择调度所选就绪作业的过程。准许调度所选就绪作业的请求可被称为协商。服务作业调度器306和/或驱动程序作业/内核级背景作业调度器308可响应于且根据对准许调度所选就绪作业中的一些或全部的批准而调度所选就绪作业中的一些或全部。
图4说明根据实施例的唤醒锁信息表400的实例。如本文所描述,唤醒锁分析器可将唤醒锁信息存储在数据结构中,所述数据结构经配置以使由其唤醒锁ID识别的指定唤醒锁的唤醒锁信息相关。此数据结构的非限制性实例可包含唤醒锁信息表400。唤醒锁信息表400可包含数个数据字段,其表示为列402到410,所述列存储指定类型的唤醒锁信息,包含唤醒锁ID列402、用户ID列404、进程ID列406、唤醒锁实际持续时间列408和唤醒锁持续时间估计值列410。唤醒锁信息表400可包含数个数据记录,其表示为行412到416,所述行使指定唤醒锁的列402到410的唤醒锁信息相关,所述指定唤醒锁由唤醒锁ID列402的唤醒锁ID指定。
唤醒锁信息表400可填入有唤醒锁信息,所述唤醒锁信息来源于在唤醒锁事件期间的唤醒锁请求和/或对处理器活动的观测结果。在一些实施例中,针对行412到416的唤醒锁ID列402、用户ID列404、进程ID列406、唤醒锁实际持续时间列408可填入有唤醒锁ID、用户ID、进程ID和唤醒锁时间参数,所述唤醒锁ID、用户ID、进程ID和唤醒锁时间参数来源于在与唤醒锁ID相关联的唤醒锁的唤醒锁事件期间的唤醒锁请求和/或对处理器活动的观测结果。在一些实施例中,唤醒锁实际持续时间列408可填入有包含在唤醒锁信息中作为唤醒锁时间参数的指定唤醒锁持续时间。在一些实施例中,唤醒锁实际持续时间列408可填入有来源于唤醒锁时间参数的计算出的唤醒锁持续时间,其包含在唤醒锁事件期间唤醒锁事件的开始时间和/或结束时间以及处理器活动的观测结果。
唤醒锁持续时间估计值列410可填入有与唤醒锁ID相关联的唤醒锁事件持续时间的计算出的唤醒锁持续时间估计值。在各个实施例中,可在唤醒锁时间参数不可用于唤醒锁ID时计算唤醒锁持续时间估计值。可基于在与唤醒锁ID相关联的唤醒锁事件期间对处理器活动的观测结果来计算唤醒锁持续时间估计值。在各个实施例中,可至少部分地基于与唤醒锁ID相关联的后续唤醒锁事件来更新唤醒锁持续时间估计值列410。唤醒锁持续时间估计值可针对与唤醒锁ID相关联的多个唤醒锁事件计算,且可使用对唤醒锁持续时间估计值的计算来更新唤醒锁持续时间估计值列410,使用当前唤醒锁持续时间观测结果/估计值和先前唤醒锁持续时间观测结果观测结果估计值中的一些或全部计算唤醒锁持续时间估计值。各种计算可用于使用包含平均值、中值、指数加权移动平均值等多个唤醒锁持续时间观测结果/估计值来计算唤醒锁持续时间估计值。在各个实施例中,唤醒锁持续时间估计值可基于运行时分析。在各个实施例中,唤醒锁持续时间估计值可基于脱机分析。
图5说明根据实施例的实例唤醒锁持续时间估计值。与相同唤醒锁ID相关联的各个唤醒锁事件500a、500b、500c可具有不同时序特性。各个唤醒锁事件500a、500b、500c的时序特性可用于计算唤醒锁ID的唤醒锁持续时间估计值508。每一唤醒锁事件500a、500b、500c可包含开始时间502a、502b、502c、持续时间504a、504b、504c和结束时间506a、506b、506c。可由唤醒锁分析器通过接收/检测拦截唤醒锁请求,接收/检测/拦截指示准予唤醒锁的唤醒锁获取信号,和/或观测从“休眠”到“活跃”的处理器状态的变化观测开始时间502a、502b、502c。类似地,可由接收/检测/拦截指示唤醒锁撤销的唤醒锁释放信号和/或观测从“活跃”到“休眠”的处理器状态的变化的唤醒锁分析器观测结束时间506a、506b、506c。可由唤醒锁分析器通过测量或计算观测开始时间502a、502b、502c与结束时间506a、506b、506c之间经过的时间来测量和计算持续时间504a、504b、504c。
图5中说明的实例比较地展示唤醒锁事件500a的持续时间504a可以是持续时间504a、504b、504c中最长的;唤醒锁事件500b的持续时间504b可以是持续时间504a、504b、504c中最短的;以及唤醒锁事件500c的持续时间504c可在最长唤醒锁持续时间504a与最短唤醒锁持续时间504b之间。实例说明尽管可能,但唤醒锁持续时间估计值508无需等于持续时间504a、504b、504c中的任一个。
图5中的实例说明唤醒锁持续时间估计值508可长于持续时间504b,且短于持续时间504a、504c。如本文中所论述,可使用各种计算方式且可使用持续时间504a、504b、504c、开始时间502a、502b、502c和/或结束时间506a、506b、506c中的一些或全部计算出唤醒锁持续时间估计值508。在各个实施例中,可使用先前唤醒锁持续时间估计值和持续时间504a、504b、504c、开始时间502a、502b、502c和/或结束时间506a、506b、506c中的一些或全部计算唤醒锁持续时间估计值508。唤醒锁持续时间估计值508可随着额外唤醒锁事件而改变。唤醒锁持续时间估计值508可用于控制由服务作业调度器和驱动程序作业/内核级背景作业调度器对就绪作业的调度。
图6和7说明根据实施例的唤醒锁未感知调度和唤醒锁感知调度的比较实例。在图6和7中所说明的实例中,说明相同唤醒锁事件系列600。在两个实例中,唤醒锁事件系列600包含第一唤醒锁事件670和第二唤醒锁事件672。第一唤醒锁事件670可具有与唤醒锁实际持续时间相关联的唤醒锁ID,且第二唤醒锁事件672可具有与唤醒锁持续时间估计值相关联的唤醒锁ID。第一唤醒锁事件670可由开始时间602、实际持续时间604和实际结束时间606说明。第二唤醒锁事件672可由开始时间608、估计持续时间610和估计结束时间612说明。
图6中所说明的实例可进一步包含唤醒锁未感知服务作业调度620、唤醒锁未感知驱动程序作业/内核级背景作业调度630和处理器状态系列640。唤醒锁未感知服务作业调度620和唤醒锁未感知驱动程序作业/内核级背景作业调度630可包含可在不考虑唤醒锁事件670、672的持续时间的情况下调度的作业622、624、626、632、634。在此实例中,可在唤醒锁事件670、672的外部调度作业622、626和632。
处理器状态系列640可包含各个处理器状态680到688。处理器状态680到688可包含“活跃”状态680、684、688,和“休眠”状态682、686。可由过渡边缘642、646、648、652、654、658和状态持续时间644、650、656、660、662说明每一处理器状态680到688。活跃状态680、684、688可由唤醒锁事件670、672和/或调度作业622到634触发。图6中的实例说明唤醒锁事件670的实际结束时间606和从活跃状态680到休眠状态682的过渡边缘646可能不一致;唤醒锁事件672的估计结束时间612和从活跃状态684到休眠状态686的过渡边缘652可能不一致;且可能不存在与活跃状态688一致的唤醒锁事件。
图7中所说明的实例可进一步包含唤醒锁感知服务作业调度700、唤醒锁感知驱动程序作业/内核级背景作业调度702和处理器状态系列704。唤醒锁感知服务作业调度700和唤醒锁感知驱动程序作业/内核级背景作业调度702可包含相同作业622、624、626、632、634,如图6中所说明的实例。然而,在图7中说明的实例中,归因于唤醒锁感知调度,可调度作业622、624、626、632、634以与唤醒锁事件670、672的持续时间对准。在此实例中,可在唤醒锁事件670、672内调度作业622、624、626、632、634。
处理器状态系列704可包含各个处理器状态684、720到724。处理器状态684、720到724可包含“活跃”状态684、720和“休眠”状态722、724。可由过渡边缘642、648、652、710和状态持续时间650、708、712、714说明每一处理器状态684、720到724。活跃状态684、720可由唤醒锁事件670、672和/或调度作业622到634触发。图7中的实例说明唤醒锁事件670的实际结束时间606和从活跃状态720到休眠状态722的过渡边缘710可能不一致;唤醒锁事件672的估计结束时间612和从活跃状态684到休眠状态724的过渡边缘652可能不一致;且可能不存在不与唤醒锁事件一致的活跃状态。
图6和7中所说明的实例的比较展示在使用唤醒锁感知调度与唤醒锁未感知调度时,活跃状态持续时间650、708可累积地小于活跃状态持续时间644、650、656。因此,休眠状态持续时间722、724可累积地超过休眠状态持续时间682、686。从休眠状态到活跃状态的过渡边缘642、648的数目可累积地小于从休眠状态到活跃状态的过渡边缘642、648、654的数目。因此,对于相同作业622、624、626、632、634唤醒锁感知调度可通过减少活跃状态中处理器耗费的时间、增加休眠状态中处理器耗费的时间以及减少处理器作出的从休眠状态到活跃状态的过渡的数目来提供优于唤醒锁未感知调度的功率益处。功率益处甚至可在唤醒锁事件672的估计结束时间612和从活跃状态684到休眠状态724的过渡边缘652不一致时实现,这是由于作业626可在唤醒锁事件672期间执行,从而避免了对活跃状态688的需要。
图8说明根据实施例的唤醒锁持续时间估计值的方法800。方法800可在计算装置中实施于在处理器(例如,图1、2和3C中的处理器14)中执行的软件(例如,图3A到3C中的电源管理器302和唤醒锁分析器304)中、通用硬件中、专用硬件(例如,图3A到3C中的电源管理器302和唤醒锁分析器304)中,或处理器和专用硬件的组合中,例如执行包含其它个别组件的唤醒锁感知调度***内的软件的处理器。为了涵盖能够在各个实施例中实现的替代配置,实施方法800的硬件在本文中被称作“处理装置”。
在框802中,处理装置可从应用程序检测/接收/拦截唤醒锁请求。处理装置可经配置以监视唤醒锁请求的通信路径或可位于唤醒锁请求的通信路径中。
在框804中,处理装置可获取与唤醒锁请求相关联的唤醒锁的唤醒锁信息。唤醒锁信息可包含唤醒锁ID、用户ID、进程ID和/或实际持续时间。处理装置可通过从来自用于实施处理器的唤醒锁的存储器装置,例如高速缓冲存储器寄存器和缓冲器,的唤醒锁请求一起发送的唤醒锁信息检索唤醒锁信息来获取所述唤醒锁信息。在检索至少唤醒锁ID的情况下,处理装置可从唤醒锁信息数据结构(例如,图4中的唤醒锁信息表400)检索与唤醒锁ID相关联的其它唤醒锁信息。
在确定框806中,处理装置可确定唤醒锁信息是否包含唤醒锁时间参数。因此,在框806中,处理装置可确定唤醒锁信息是否包含识别和/或实现对唤醒锁的持续时间计算的信息,唤醒锁的持续时间例如唤醒锁实际持续时间或唤醒锁开始时间和唤醒锁结束时间两者。
响应于确定唤醒锁信息不包含唤醒锁时间参数(即,确定框806=“否”),处理装置可在框808中测量或计算唤醒锁持续时间。处理装置可从包含准予和释放对应于唤醒锁请求的唤醒锁信号发送和/或处理器活动的唤醒锁请求的观测结果和/或包含唤醒锁开始时间和唤醒锁结束时间中的一个或另一个的单个唤醒锁时间参数来测量或计算唤醒锁持续时间。处理装置可基于唤醒锁信号发送的准予和释放、处理器对应于唤醒锁请求的活跃状态与休眠状态之间的过渡和/或唤醒锁开始时间或唤醒锁结束时间来开始和结束测量唤醒锁的持续时间。处理装置可基于唤醒锁信号发送的准予和释放的时间、处理器对应于唤醒锁请求在活跃状态与休眠状态之间的过渡和/或唤醒锁开始时间或唤醒锁结束时间来计算唤醒锁的持续时间。
在框810中,处理装置可存储其测得的或计算出的唤醒锁持续时间。处理装置可将唤醒锁持续时间存储在通用或专用易失性或非易失性存储器(例如,存储器16、24,图1中)中,以供随后检索,例如用于基于多个唤醒锁持续时间估计唤醒锁持续时间。
在框812中,处理装置可使用所存储的唤醒锁持续时间中的多个计算唤醒锁持续时间估计值。在各个实施例中,多个所存储的唤醒锁持续时间可由先前唤醒锁持续时间估计值体现,且唤醒锁持续时间估计值的计算可包含使用先前唤醒锁持续时间估计值和一或多个最近存储的唤醒锁持续时间。在各个实施例中,计算唤醒锁持续时间估计值可包含使用各种技术来计算,例如计算平均值、中值、指数加权移动平均值等。
在框814中,处理装置可将唤醒锁持续时间估计值存储在具有对应唤醒锁ID(即,对应唤醒锁事件的ID)的唤醒锁信息数据结构中。唤醒锁持续时间估计值可存储于唤醒锁信息数据结构中。举例来说,处理装置可将唤醒锁持续时间估计值存储在存储器内,其方式为使估计值与包含相关联的唤醒锁ID以及用户ID和/或进程ID的唤醒锁信息相关联。在一些实施例中,可执行框802到814中的操作以进行脱机和/或运行时分析,以产生相关联的唤醒锁ID的唤醒锁持续时间估计值。
响应于确定唤醒锁信息的确包含唤醒锁时间参数(即,确定框806=“是”),处理装置可在任选框816中任选地从唤醒锁时间参数,例如唤醒锁开始时间和唤醒锁结束时间,计算唤醒锁持续时间。在处理装置不可用唤醒锁实际持续时间的情况下,装置可使用唤醒锁开始时间和唤醒锁结束时间来确定唤醒锁实际持续时间。
在框818中,处理装置可存储唤醒锁实际持续时间。在各个实施例中,处理装置可将唤醒锁实际持续时间存储在存储器(例如,存储器16、24,图1中)中,以在与唤醒锁请求相关联的唤醒锁事件期间使用。唤醒锁实际持续时间可存储于具有对应唤醒锁ID的唤醒锁信息数据结构中。举例来说,处理装置可存储唤醒锁实际持续时间,其方式为使持续时间与包含相关联的唤醒锁ID、用户ID和/或进程ID的对应唤醒锁信息相关联。
图9说明根据实施例的唤醒锁感知调度的方法900。方法900可在计算装置中实施于在处理器(例如,图1、2和3C中的处理器14)中执行的软件(例如,图3A到3C中的电源管理器302和唤醒锁分析器304)中、通用硬件中、专用硬件(例如,图3A到3C中的电源管理器302和唤醒锁分析器304)中,或处理器和专用硬件的组合中,例如执行包含其它个别组件的唤醒锁感知调度***内的软件的处理器。为了涵盖能够在各个实施例中实现的替代配置,实施方法900的硬件在本文中被称作“处理装置”。
在框902中,处理装置可从应用程序检测/接收/拦截唤醒锁请求。处理装置可经配置以监视唤醒锁请求的通信路径或可位于唤醒锁请求的通信路径中。
在框904中,处理装置可获取与唤醒锁请求相关联的唤醒锁的唤醒锁信息。唤醒锁信息可包含唤醒锁ID、用户ID、进程ID和/或唤醒锁时间参数(例如,唤醒锁持续时间、唤醒锁持续时间估计值、唤醒锁开始时间和/或唤醒锁结束时间中的一或多个)。处理装置可通过从来自用于实施处理器的唤醒锁的存储器装置,例如高速缓冲存储器寄存器和缓冲器,的唤醒锁请求一起发送的唤醒锁信息检索唤醒锁信息来获取所述唤醒锁信息。在检索至少唤醒锁ID的情况下,处理装置可从唤醒锁信息数据结构(例如,图4中的唤醒锁信息表400)检索与唤醒锁ID相关联的其它唤醒锁信息,包含唤醒锁持续时间估计值。
在框906中,处理装置可将提示发送到一或多个调度器(例如,图3A到3C中的服务作业调度器306、驱动程序作业/内核级背景作业调度器308)。提示可包含提示唤醒锁时间参数,其可包含唤醒锁时间参数和/或所请求的唤醒锁的唤醒锁持续时间估计值。所请求的唤醒锁可以是即将出现或现有唤醒锁。
在框908中,处理装置可从调度器接收用于准许调度就绪作业的请求。就绪作业可包含正在等待在唤醒锁事件期间执行的作业。在接收到提示之后,调度器可选择就绪作业,以执行和发送用于准许调度所选就绪作业的请求,如进一步参看图10中所说明的方法1000所描述。用于准许调度就绪作业的请求可包含所选就绪作业中的每一个、组或所有的处理器使用率的估计值,和/或所选就绪作业中的每一个、组和/或所有的识别符。
在确定框910中,处理装置可确定包含所选就绪作业的总工作负荷是否超出总处理器使用率阈值。
在框912中,响应于确定总工作负荷未超出总处理器使用率阈值(即,确定框910=“否”),处理装置可将对用于准许调度所选就绪作业的请求的批准发送到调度器。
在任选框914中,响应于确定总工作负荷的确超出总处理器使用率阈值(即,确定框910=“是”),处理装置可选择将总工作负荷降低到总处理器使用率阈值以下的就绪作业的组合。处理装置可使用用于准许调度所选就绪作业的请求的信息来选择就绪作业的组合。
在任选框916中,处理装置可将对准许调度由处理装置选择的就绪作业的组合的批准发送到调度器。
在框918中,处理装置可将对用于准许调度就绪作业的请求的拒绝发送到调度器。在各个实施例中,对用于准许调度就绪作业的请求的拒绝可包含由调度器选择的就绪作业中的所有,或仅处理装置未选择的就绪作业,以用于就绪作业的组合。
图10说明根据实施例的唤醒锁感知调度的方法1000。方法1000可在计算装置中实施于在处理器(例如,图3A到3C中的服务作业调度器306和驱动程序作业/内核级背景作业调度器308)中执行的软件(例如,图1、2和3C中的处理器14)中、通用硬件中、专用硬件(例如,图3A到3C中的服务作业调度器306和驱动程序作业/内核级背景作业调度器308)中,或处理器和专用硬件的组合中,例如执行包含其它个别组件的唤醒锁感知调度***内的处理器执行软件。为了涵盖能够在各个实施例中实现的替代配置,实施方法1000的硬件在本文中被称作“处理装置”。
在框1002中,处理装置可从唤醒锁分析器接收提示。提示可包含提示唤醒锁时间参数,其可包含唤醒锁时间参数和/或所请求的唤醒锁的唤醒锁持续时间估计值。所请求的唤醒锁可以是即将出现或现有唤醒锁。
在框1004中,处理装置可选择可在与所请求的唤醒锁相关联的唤醒锁事件期间执行的就绪作业。处理装置可比较用于执行就绪作业的估计持续时间与和提示一起接收的提示唤醒锁时间参数,以确定就绪作业是否可在与唤醒锁请求相关联的唤醒锁事件的持续时间期间完成执行。处理装置可选择可在与唤醒锁请求相关联的唤醒锁事件的持续时间期间完成执行的就绪作业。
在确定框1006中,处理装置可确定所选就绪作业是否共同超出处理器使用率阈值。处理装置可比较用于执行就绪作业的估计处理器使用率与处理器使用率阈值,以确定就绪作业是否累积地超出处理器使用率阈值。
在框1004中,响应于确定所选就绪作业共同地超出处理器使用率阈值(即,确定框1006=“是”),处理装置可选择可在与所请求的唤醒锁相关联的唤醒锁事件期间执行的就绪作业。经由重复执行在框1004中的操作,处理装置可跟踪所选就绪作业的估计的总处理器使用率且选择可在与所请求的唤醒锁相关联的唤醒锁事件期间执行的就绪作业,其还从先前所选就绪作业减小估计的总处理器使用率。就绪作业的较后选择可包含先前选择的以在与所请求的唤醒锁相关联的唤醒锁事件期间执行的就绪作业。
在框1008中,响应于确定所选就绪作业不共同地超出处理器使用率阈值(即,确定框1006=“否”),处理装置可将用于准许调度所选就绪作业的请求发送到唤醒锁分析器。如上文参看图9中所说明的方法900所描述,唤醒锁分析器可确定是否利用对用于准许调度所选就绪作业的请求的完全或部分批准和/或拒绝来响应用于准许调度所选就绪作业的请求。
在框1010中,处理装置可从唤醒锁分析器接收对准许调度所选就绪作业的请求的响应。响应可包含识别批准和/或拒绝准许调度的所选就绪作业的个别一个、组或所有。
在确定框1012中,处理装置可确定对用于准许调度所选就绪作业的请求的响应是否包含对用于准许调度所选就绪作业的请求的批准和/或拒绝。在各个实施例中,处理装置可确定响应包含对用于准许调度所选就绪作业的请求的批准、拒绝,或批准和拒绝。
在框1014中,响应于确定对用于准许调度所选就绪作业的请求的响应包含对用于准许调度所选就绪作业的请求的批准(即,确定框1012=“是”),处理装置可调度批准的就绪任务,以在与唤醒锁请求相关联的唤醒锁事件期间执行。
在框1004中,响应于确定对用于准许调度所选就绪作业的请求的响应包含对用于准许调度所选就绪作业的请求的拒绝(即,确定框1012=“否”),处理装置可选择不同集合的就绪作业,其可在与所请求的唤醒锁相关联的唤醒锁事件期间执行。
响应于确定对用于准许调度所选就绪作业的请求的响应包含对用于准许调度所选就绪作业的请求的批准和拒绝(即,确定框1012=“是”和“否”),处理装置可在框1014中调度批准的就绪任务以在与唤醒锁请求相关联的唤醒锁事件期间执行,且可在框1004中选择可在与所请求的唤醒锁相关联的唤醒锁事件期间执行的不同集合的就绪作业。
在各个实施例中,图8中所说明的方法800、图9中所说明的方法900和图10中所说明的方法1000可以协作方式同时执行。
各个实施例(包含但不限于上文参看图1到10所描述的实施例)可实施于各种计算***中,各种计算***包含移动计算装置,所述各个实施例的实例适合与图11中所说明的各个实施例一起使用。移动计算装置1100可包含耦合到触摸屏控制器1104和内部存储器1106的处理器1102。处理器1102可为指定用于一般或专有处理任务的一或多个多核心集成电路。内部存储器1106可以是易失性或非易失性存储器,并且还可为安全和/或经加密的存储器,或不安全和/或未加密的存储器,或其任何组合。可利用的存储器类型的实例包含但不限于DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM和嵌入式DRAM。触摸屏控制器1104和处理器1102也可耦合到触摸屏面板1112,例如电阻式感测触摸屏、电容式感测触摸屏、红外感测触摸屏等。另外,计算装置1100的显示器无需具有触摸屏能力。
移动计算装置1100可具有彼此耦合和/或耦合到处理器1102的一或多个无线电信号收发器1108(例如花生(Peanut)、蓝牙、紫蜂、Wi-Fi、RF无线电)和天线1110,以用于发送和接收通信。收发器1108和天线1110可与上文所提到的电路一起使用以实施各种无线发射协议栈/接口。移动计算装置1100可包含蜂窝式网络无线调制解调器芯片1116,其能够经由蜂窝式网络通信,并耦合到处理器。
移动计算装置1100可包含耦合到处理器1102的***装置连接接口1118。***装置连接接口1118可单一地经配置以接受一种类型的连接,或可经配置以共同或专有地接受各种类型的物理和通信连接,例如通用串行总线(USB)、FireWire、Thunderbolt或PCIe。***装置连接接口1118还可耦合到类似经配置的***装置连接端口(未图示)。
移动计算装置1100还可包含用于提供音频输出的扬声器1114。移动计算装置1100还可包含外壳1120,所述外壳1120由塑料、金属或材料的组合构成,用于含有本文中所描述的组件中的所有或一些。移动计算装置1100可包含耦合到处理器1102的电源1122,例如一次性或可再充电电池。可再充电电池还可耦合到***装置连接端口,以接收来自移动计算装置1100外部的来源的充电电流。移动计算装置1100还可包含用于接收用户输入的物理按钮1124。移动计算装置1100还可包含用于接通和断开移动计算装置1100的电源按钮1126。
各个实施例(包含但不限于上文参看图1到10所描述的实施例)可实施于各种计算***中,各种计算***包含笔记本电脑1200,所述各个实施例的实例在图12中说明。许多笔记本电脑包含充当计算机的指向装置的触摸垫触摸表面1217,并且因此可以接收拖动、滚动和滑动手势,类似于配备有触摸屏显示器并且如上文所描述的计算装置上实施的那些手势。笔记本电脑1200通常将包含耦合到易失性存储器1212和大容量非易失性存储器(例如快闪存储器的磁盘驱动器1213)的处理器1211。另外,计算机1200可具有用于发送和接收电磁辐射的一或多个天线1208,所述天线可连接到耦合到处理器1211的无线数据链路和/或蜂窝式电话收发器1216。计算机1200还可包含耦合到处理器1211的软盘驱动器1214和压缩光盘(CD)驱动器1215。在笔记本配置中,计算机外壳包含触摸垫1217、键盘1218和显示器1219,其全部耦合到处理器1211。计算装置的其它配置如所熟知可包含耦合到处理器的计算机鼠标或轨迹球(例如,经由USB输入),其还可与各个实施例一起使用。
各个实施例(包含但不限于上文参看图1到10所描述的实施例)还可实施于固定计算***中,例如各种市售服务器中的任一种。实例服务器1300在图13中说明。此服务器1300通常包含耦合到易失性存储器1302和大容量非易失性存储器的一或多个多核心处理器组合件1301,例如磁盘驱动器1304。如图13中所说明,多核心处理器组合件1301可通过将其***到组合件的托架中而添加到服务器1300。服务器1300还可包含耦合到处理器1301的软盘驱动器、压缩光盘(CD)或数字多功能光盘(DVD)磁盘驱动器1306。服务器1300还可包含耦合到多核心处理器组合件1301以用于建立与网络1305的网络接口连接的网络接入端口1303,例如耦合到其它播送***计算机和服务器的局域网、因特网、公共交换电话网络和/或蜂窝式数据网络(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE或任何其它类型的蜂窝式数据网络)。
用于在可编程处理器上执行以用于执行各种实施例的操作的计算机程序代码或“程序代码”可以例如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、结构化查询语言(例如,Transact-SQL)、Perl或各种其它编程语言等高级编程语言编写。存储在计算机可读存储媒体上的程序代码或程序如在本申请中所使用可以指机器语言代码(例如,目标代码),所述机器语言代码的格式可由处理器理解。
前述方法描述和过程流程图仅仅作为说明性实例提供,并且其并不意图要求或暗示各种实施例的操作必须以所呈现的次序进行。如所属领域的技术人员将了解,可以任何次序执行前述实施例中的操作的次序。例如“其后”、“然后”、“接下来”等词语并不希望限制操作的次序;这些词语仅用以引导读者浏览方法的描述。另外,举例来说,使用冠词“一”、“一个”或“所述”对单数形式的权利要求要素的任何参考不应被解释为将所述要素限制为单数。结合各个实施例描述的各种说明性逻辑块、模块、电路和算法操作可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性来描述了各种说明性组件、块、模块、电路和操作。此功能性实施为硬件还是软件取决于特定应用和强加于总体***的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离权利要求书的范围。
用以实施结合本文中所公开的实施例而描述的各种说明性逻辑、逻辑块、模块和电路的硬件可用以下各项来实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或经设计以执行本文中所描述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其任何组合。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心结合,或任何其它此类配置。替代地,可通过具体针对给定功能的电路***来执行一些操作或方法。
在一或多个实施例中,所描述的功能可实施在硬件、软件、固件或其任何组合中。如果在软件中实施,那么所述功能可以作为一或多个指令或代码存储在非暂时性计算机可读媒体或非暂时性处理器可读媒体上。本文中所公开的方法或算法的操作可体现于可驻留在非暂时性计算机可读或处理器可读存储媒体上的处理器可执行软件模块中。非暂时性计算机可读或处理器可读媒体可为可由计算机或处理器存取的任何存储媒体。借助实例但非限制,这类非暂时性计算机可读或处理器可读媒体可包含RAM、ROM、EEPROM、闪存存储器、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于以指令或数据结构的形式存储所需程序代码且可由计算机存取的任何其它媒体。如本文所使用的磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。上文各项的组合也包含在非暂时性计算机可读和处理器可读媒体的范围内。另外,方法或算法的操作可作为代码和/或指令中的一者或任何组合或集合而驻留在可并入到计算机程序产品中的非暂时性处理器可读媒体和/或计算机可读媒体上。
提供对所公开的实施例的前述描述以使所属领域的技术人员能够制作或使用所附权利要求书。所属领域的技术人员将易于了解对这些实施方案的各种修改,且本文中定义的一般原理可适用于其它实施例和实施方案而不脱离权利要求书的范围。因此,本公开并不意图限于本文中所描述的实施例和实施方案,而是应符合与所附权利要求书以及本文中所公开的原理和新颖特征相一致的最广范围。

Claims (30)

1.一种在计算装置上实施唤醒锁感知调度的方法,其包括:
通过唤醒锁分析器接收唤醒锁请求;
通过所述唤醒锁分析器获取与所述唤醒锁请求相关联的唤醒锁事件的唤醒锁信息,其中,所述唤醒锁信息包含唤醒锁时间参数;
通过所述唤醒锁分析器发送包含所述唤醒锁时间参数的提示;
通过调度器接收所述提示;
通过所述调度器确定第一就绪作业是否可在所述唤醒锁事件期间执行;以及
响应于确定所述第一就绪作业可在所述唤醒锁事件期间执行而通过所述调度器发送用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求。
2.根据权利要求1所述的方法,其中,所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求包含针对所述第一就绪作业对处理器使用率的估计,所述方法进一步包括:
通过所述唤醒锁分析器接收所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求;
通过所述唤醒锁分析器确定包含所述第一就绪作业的工作负荷是否超出总处理器使用率阈值;
响应于确定所述工作负荷超出所述总处理器使用率阈值而通过所述唤醒锁分析器发送对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的拒绝;以及
响应于确定所述工作负荷未超出所述总处理器使用率阈值而通过所述唤醒锁分析器发送对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的批准。
3.根据权利要求2所述的方法,其进一步包括:
通过所述调度器接收对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的所述拒绝;
通过所述调度器确定第二就绪作业是否可在所述唤醒锁事件期间执行;
响应于确定所述第二就绪作业可在所述唤醒锁事件期间执行而通过所述调度器发送用于准许调度所述第二就绪作业以在所述唤醒锁事件期间执行的请求;
通过所述调度器接收对所述用于准许调度所述第二就绪作业以在所述唤醒锁事件期间执行的请求的所述批准;以及
调度所述第二就绪作业以在所述唤醒锁事件期间执行。
4.根据权利要求1所述的方法,其进一步包括:
通过所述调度器确定所述第一就绪作业是否超出处理器使用率阈值,其中,响应于确定所述第一就绪作业可在所述唤醒锁事件期间执行且响应于确定所述第一就绪作业未超出所述处理器使用率阈值而发送所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求;以及
通过所述调度器确定第二就绪作业是否可在所述唤醒锁事件期间执行。
5.根据权利要求1所述的方法,其进一步包括:
通过所述唤醒锁分析器确定所述唤醒锁信息是否包含唤醒锁时间参数;
响应于确定所述唤醒锁信息不包含所述唤醒锁时间参数而通过所述唤醒锁分析器计算所述唤醒锁事件的唤醒锁持续时间估计值;以及
通过所述唤醒锁分析器存储所述唤醒锁持续时间估计值。
6.根据权利要求5所述的方法,其中:
存储所述唤醒锁持续时间估计值包括:
使所述唤醒锁持续时间估计值与和所述唤醒锁请求相关联的所述唤醒锁事件的唤醒锁识别符ID相关;以及
将所述唤醒锁持续时间估计值存储在具有对应唤醒锁ID的唤醒锁信息数据结构中;以及
获取所述唤醒锁信息包括从所述唤醒锁信息数据结构检索所述唤醒锁持续时间估计值。
7.根据权利要求5所述的方法,其中,计算所述唤醒锁事件的所述唤醒锁持续时间估计值包括使用所述唤醒锁事件的多个唤醒锁持续时间计算所述唤醒锁事件的所述唤醒锁持续时间估计值。
8.根据权利要求7所述的方法,其中,所述多个唤醒锁持续时间包含多个唤醒锁持续时间估计值、多个唤醒锁持续时间观测结果,或多个唤醒锁估计值和唤醒锁观测结果中的一个。
9.一种唤醒锁感知***,其经配置以在计算装置上实施唤醒锁感知调度,所述唤醒锁感知***包括:
唤醒锁分析器,其经配置以执行包括以下各项的操作:
接收唤醒锁请求;
获取与所述唤醒锁请求相关联的唤醒锁事件的唤醒锁信息,其中,所述唤醒锁信息包含唤醒锁时间参数;以及
发送包含所述唤醒锁时间参数的提示;以及
调度器,其通信连接到所述唤醒锁分析器且经配置以执行包括以下各项的操作:
接收所述提示;
确定第一就绪作业是否可在所述唤醒锁事件期间执行;以及
响应于确定所述第一就绪作业可在所述唤醒锁事件期间执行而发送用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求。
10.根据权利要求9所述的唤醒锁感知***,其中,所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求包含对针所述第一就绪作业对处理器使用率的估计,以及
其中,所述唤醒锁分析器经配置以执行进一步包括以下各项的操作:
接收所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求;
确定包含所述第一就绪作业的工作负荷是否超出总处理器使用率阈值;
响应于确定所述工作负荷超出所述总处理器使用率阈值而发送对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的拒绝;以及
响应于确定所述工作负荷未超出所述总处理器使用率阈值而发送对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的批准。
11.根据权利要求10所述的唤醒锁感知***,其中,所述调度器经配置以执行进一步包括以下各项的操作:
接收对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的所述拒绝;
确定第二就绪作业是否可在所述唤醒锁事件期间执行;
响应于确定所述第二就绪作业可在所述唤醒锁事件期间执行而发送用于准许调度所述第二就绪作业以在所述唤醒锁事件期间执行的请求;
接收对所述用于准许调度所述第二就绪作业以在所述唤醒锁事件期间执行的请求的所述批准;以及
调度所述第二就绪作业以在所述唤醒锁事件期间执行。
12.根据权利要求9所述的唤醒锁感知***,其中,所述调度器经配置以执行进一步包括以下各项的操作:
确定所述第一就绪作业是否超出处理器使用率阈值,其中,响应于确定所述第一就绪作业可在所述唤醒锁事件期间执行且响应于确定所述第一就绪作业未超出所述处理器使用率阈值而发送所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求;以及
确定第二就绪作业是否可在所述唤醒锁事件期间执行。
13.根据权利要求9所述的唤醒锁感知***,其中,所述唤醒锁分析器经配置以执行进一步包括以下各项的操作:
确定所述唤醒锁信息是否包含唤醒锁时间参数;
响应于确定所述唤醒锁信息不包含唤醒锁时间参数而计算所述唤醒锁事件的唤醒锁持续时间估计值;以及
存储所述唤醒锁持续时间估计值。
14.根据权利要求13所述的唤醒锁感知***,其中,所述唤醒锁分析器经配置以执行操作,使得:
存储所述唤醒锁持续时间估计值包括:
使所述唤醒锁持续时间估计值与和所述唤醒锁请求相关联的所述唤醒锁事件的唤醒锁识别符ID相关;以及
将所述唤醒锁持续时间估计值存储在具有对应唤醒锁ID的唤醒锁信息数据结构中;以及
获取所述唤醒锁信息包括从所述唤醒锁信息数据结构检索所述唤醒锁持续时间估计值。
15.根据权利要求13所述的唤醒锁感知***,其中,所述唤醒锁分析器经配置以执行操作,使得计算所述唤醒锁事件的所述唤醒锁持续时间估计值包括使用所述唤醒锁事件的多个唤醒锁持续时间计算所述唤醒锁事件的所述唤醒锁持续时间估计值。
16.根据权利要求15所述的唤醒锁感知***,其中,所述多个唤醒锁持续时间包含多个唤醒锁持续时间估计值、多个唤醒锁持续时间观测结果,或多个唤醒锁估计值和唤醒锁观测结果中的一个。
17.一种唤醒锁感知***,其经配置以在计算装置上实施唤醒锁感知调度,所述唤醒锁感知***包括:
用于接收唤醒锁请求的装置;
用于获取与所述唤醒锁请求相关联的唤醒锁事件的唤醒锁信息的装置,其中,所述唤醒锁信息包含唤醒锁时间参数;
用于发送包含所述唤醒锁时间参数的提示的装置;
用于接收所述提示的装置;
用于确定第一就绪作业是否可在所述唤醒锁事件期间执行的装置;以及
用于响应于确定所述第一就绪作业可在所述唤醒锁事件期间执行而发送用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的装置。
18.根据权利要求17所述的唤醒锁感知***,其中,所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求包含针对所述第一就绪作业对处理器使用率的估计,所述唤醒锁感知***进一步包括:
用于接收所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的装置;
用于确定包含所述第一就绪作业的工作负荷是否超出总处理器使用率阈值的装置;
用于响应于确定所述工作负荷超出所述总处理器使用率阈值而发送对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的拒绝的装置;以及
用于响应于确定所述工作负荷未超出所述总处理器使用率阈值而发送对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的批准的装置。
19.根据权利要求18所述的唤醒锁感知***,其进一步包括:
用于接收对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的所述拒绝的装置;
用于确定第二就绪作业是否可在所述唤醒锁事件期间执行的装置;
用于响应于确定所述第二就绪作业可在所述唤醒锁事件期间执行而发送用于准许调度所述第二就绪作业以在所述唤醒锁事件期间执行的请求的装置;
用于接收对所述用于准许调度所述第二就绪作业以在所述唤醒锁事件期间执行的请求的所述批准的装置;以及
用于调度所述第二就绪作业以在所述唤醒锁事件期间执行的装置。
20.根据权利要求17所述的唤醒锁感知***,其进一步包括:
用于确定所述第一就绪作业是否超出处理器使用率阈值的装置,其中,用于发送所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的装置包括用于响应于确定所述第一就绪作业可在所述唤醒锁事件期间执行且响应于确定所述第一就绪作业未超出所述处理器使用率阈值而发送所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的装置;以及
用于确定第二就绪作业是否可在所述唤醒锁事件期间执行的装置。
21.根据权利要求17所述的唤醒锁感知***,其进一步包括:
用于确定所述唤醒锁信息是否包含唤醒锁时间参数的装置;
用于响应于确定所述唤醒锁信息不包含唤醒锁时间参数而计算所述唤醒锁事件的唤醒锁持续时间估计值的装置;以及
用于存储所述唤醒锁持续时间估计值的装置。
22.根据权利要求21所述的唤醒锁感知***,其中:
用于存储所述唤醒锁持续时间估计值的装置包括:
用于使所述唤醒锁持续时间估计值与和所述唤醒锁请求相关联的所述唤醒锁事件的唤醒锁识别符ID相关的装置;以及
用于将所述唤醒锁持续时间估计值存储在具有对应唤醒锁ID的唤醒锁信息数据结构中的装置;以及
用于获取所述唤醒锁信息的装置包括用于从所述唤醒锁信息数据结构检索所述唤醒锁持续时间估计值的装置。
23.根据权利要求21所述的唤醒锁感知***,其中,用于计算所述唤醒锁事件的所述唤醒锁持续时间估计值的装置包括用于使用所述唤醒锁事件的多个唤醒锁持续时间计算所述唤醒锁的所述唤醒锁持续时间估计值的装置,其中,所述多个唤醒锁持续时间包含多个唤醒锁持续时间估计值、多个唤醒锁持续时间观测结果,或多个唤醒锁估计值和唤醒锁观测结果中的一个。
24.一种非暂时性处理器可读存储媒体,其上存储有处理器可执行指令,所述处理器可执行指令经配置以致使计算装置的处理器执行包括以下各项的操作:
接收唤醒锁请求;
获取与所述唤醒锁请求相关联的唤醒锁事件的唤醒锁信息,其中,所述唤醒锁信息包含唤醒锁时间参数;
发送包含所述唤醒锁时间参数的提示;
接收所述提示;
确定第一就绪作业是否可在所述唤醒锁事件期间执行;以及
响应于确定所述第一就绪作业可在所述唤醒锁事件期间执行而发送用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求。
25.根据权利要求24所述的非暂时性处理器可读存储媒体,其中,所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求包含针对所述第一就绪作业对处理器使用的估计,且其中所述所存储的处理器可执行指令经配置以致使所述处理器执行进一步包括以下各项的操作:
接收所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求;
确定包含所述第一就绪作业的工作负荷是否超出总处理器使用率阈值;
响应于确定所述工作负荷超出所述总处理器使用率阈值而发送对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的拒绝;以及
响应于确定所述工作负荷未超出所述总处理器使用率阈值而发送对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的批准。
26.根据权利要求25所述的非暂时性处理器可读存储媒体,其中所述所存储的处理器可执行指令经配置以致使所述处理器执行进一步包括以下各项的操作:
接收对所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求的所述拒绝;
确定第二就绪作业是否可在所述唤醒锁事件期间执行;
响应于确定所述第二就绪作业可在所述唤醒锁事件期间执行而发送用于准许调度所述第二就绪作业以在所述唤醒锁事件期间执行的请求;
接收对所述用于准许调度所述第二就绪作业以在所述唤醒锁事件期间执行的请求的所述批准;以及
调度所述第二就绪作业以在所述唤醒锁事件期间执行。
27.根据权利要求24所述的非暂时性处理器可读存储媒体,其中所述所存储的处理器可执行指令经配置以致使所述处理器执行进一步包括以下各项的操作:
确定所述第一就绪作业是否超出处理器使用率阈值,其中,发送所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求包括响应于确定所述第一就绪作业可在所述唤醒锁事件期间执行且响应于确定所述第一就绪作业未超出所述处理器使用率阈值而发送所述用于准许调度所述第一就绪作业以在所述唤醒锁事件期间执行的请求;以及
确定第二就绪作业是否可在所述唤醒锁事件期间执行。
28.根据权利要求24所述的非暂时性处理器可读存储媒体,其中所述所存储的处理器可执行指令经配置以致使所述处理器执行进一步包括以下各项的操作:
确定所述唤醒锁信息是否包含唤醒锁时间参数;
响应于确定所述唤醒锁信息不包含唤醒锁时间参数而计算所述唤醒锁事件的唤醒锁持续时间估计值;以及
存储所述唤醒锁持续时间估计值。
29.根据权利要求28所述的非暂时性处理器可读存储媒体,其中,所述所存储的处理器可执行指令经配置以致使所述处理器执行操作,使得:
存储所述唤醒锁持续时间估计值包括:
使所述唤醒锁持续时间估计值与和所述唤醒锁请求相关联的所述唤醒锁事件的唤醒锁识别符ID相关;以及
将所述唤醒锁持续时间估计值存储在具有对应唤醒锁ID的唤醒锁信息数据结构中;以及
获取所述唤醒锁信息包括从所述唤醒锁信息数据结构检索所述唤醒锁持续时间估计值。
30.根据权利要求28所述的非暂时性处理器可读存储媒体,其中,所述所存储的处理器可执行指令经配置以致使所述处理器执行操作,使得计算所述唤醒锁事件的所述唤醒锁持续时间估计值包括使用所述唤醒锁事件的多个唤醒锁持续时间计算所述唤醒锁事件的所述唤醒锁持续时间估计值,其中,所述多个唤醒锁持续时间包含多个唤醒锁持续时间估计值、多个唤醒锁持续时间观测结果,或多个唤醒锁估计值和唤醒锁观测结果中的一个。
CN201780035576.3A 2016-06-18 2017-05-25 出于能效在移动装置上进行的唤醒锁感知***宽作业调度 Pending CN109313478A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/186,444 US10095305B2 (en) 2016-06-18 2016-06-18 Wake lock aware system wide job scheduling for energy efficiency on mobile devices
US15/186,444 2016-06-18
PCT/US2017/034497 WO2017218160A1 (en) 2016-06-18 2017-05-25 Wake lock aware system wide job scheduling for energy efficiency on mobile devices

Publications (1)

Publication Number Publication Date
CN109313478A true CN109313478A (zh) 2019-02-05

Family

ID=59034904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780035576.3A Pending CN109313478A (zh) 2016-06-18 2017-05-25 出于能效在移动装置上进行的唤醒锁感知***宽作业调度

Country Status (8)

Country Link
US (1) US10095305B2 (zh)
EP (1) EP3472684B1 (zh)
JP (1) JP2019527867A (zh)
KR (1) KR20190019935A (zh)
CN (1) CN109313478A (zh)
BR (1) BR112018075239A8 (zh)
CA (1) CA3023479A1 (zh)
WO (1) WO2017218160A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318348B2 (en) * 2016-09-23 2019-06-11 Imagination Technologies Limited Task scheduling in a GPU
GB2554392B (en) 2016-09-23 2019-10-30 Imagination Tech Ltd Task scheduling in a GPU
WO2018099538A1 (en) 2016-11-29 2018-06-07 Telefonaktiebolaget Lm Ericsson (Publ) Distribution of resources among actor instances
US11132319B2 (en) * 2018-01-12 2021-09-28 Intel Corporation Timer control for peripheral component interconnect express components implemented with thunderbolt controllers
US11026176B2 (en) * 2018-12-11 2021-06-01 Qualcomm Incorporated Performance enhancements through wakeup optimizations
CN109947484A (zh) * 2019-02-25 2019-06-28 努比亚技术有限公司 一种唤醒锁的控制方法、终端及计算机可读存储介质
CN110737324A (zh) * 2019-10-25 2020-01-31 Oppo(重庆)智能科技有限公司 调节自动熄屏时间的方法及相关产品
US20220188152A1 (en) * 2020-12-16 2022-06-16 Marvell Asia Pte Ltd System and Method for Consumerizing Cloud Computing

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2439104A (en) * 2006-06-15 2007-12-19 Symbian Software Ltd Managing power on a computing device by minimising the number of separately activated timer events such that the device is powering up less often.
CN101416401A (zh) * 2006-04-04 2009-04-22 高通股份有限公司 用于在通信设备中设置唤醒时间的装置和方法
US20110040996A1 (en) * 2009-08-14 2011-02-17 Google Inc. Providing a user with feedback regarding power consumption in battery-operated electronic devices
CN102103523A (zh) * 2009-12-22 2011-06-22 国际商业机器公司 锁分配控制的方法和装置
US20150208352A1 (en) * 2014-01-22 2015-07-23 Seven Networks, Inc. Method for power saving in mobile devices by optimizing wakelocks
CN104838359A (zh) * 2012-08-16 2015-08-12 微软技术许可有限责任公司 等待时间敏感的软件中断和线程调度
US20150234442A1 (en) * 2014-02-20 2015-08-20 Qualcomm Incorporated Wake lock management through application monitoring
CN105183137A (zh) * 2015-09-09 2015-12-23 厦门美图移动科技有限公司 一种移动终端及其唤醒锁控制方法和控制***
CN105474125A (zh) * 2013-09-27 2016-04-06 英特尔公司 用于跟踪唤醒锁定使用的技术

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600059B2 (en) * 2010-09-20 2017-03-21 Apple Inc. Facilitating power management in a multi-core processor
US10013511B2 (en) * 2012-04-09 2018-07-03 Purdue Research Foundation System and method for energy usage accounting in software applications
KR20130131959A (ko) * 2012-05-25 2013-12-04 삼성전자주식회사 휴대 단말기의 휴면 모드 제어 방법 및 장치
CN104166542B (zh) * 2013-05-17 2018-01-05 腾讯科技(深圳)有限公司 检测应用耗电的方法和装置
JP6209042B2 (ja) 2013-09-30 2017-10-04 ルネサスエレクトロニクス株式会社 データ処理装置
US9769756B1 (en) * 2014-03-26 2017-09-19 Amazon Technologies, Inc. Wake-up quotas and statistics generation
KR102294180B1 (ko) * 2014-10-31 2021-08-27 삼성전자주식회사 전자장치 및 전자장치의 전원제어 방법
US20170160778A1 (en) * 2015-12-07 2017-06-08 Le Holdings (Beijing) Co., Ltd. Method and device for monitoring power-consuming applications, user terminal, computer program and storage medium
KR102465543B1 (ko) * 2016-02-19 2022-11-10 삼성전자 주식회사 어플리케이션 및 컴포넌트를 제어하는 방법 및 전자장치

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101416401A (zh) * 2006-04-04 2009-04-22 高通股份有限公司 用于在通信设备中设置唤醒时间的装置和方法
GB2439104A (en) * 2006-06-15 2007-12-19 Symbian Software Ltd Managing power on a computing device by minimising the number of separately activated timer events such that the device is powering up less often.
US20110040996A1 (en) * 2009-08-14 2011-02-17 Google Inc. Providing a user with feedback regarding power consumption in battery-operated electronic devices
CN102103523A (zh) * 2009-12-22 2011-06-22 国际商业机器公司 锁分配控制的方法和装置
CN104838359A (zh) * 2012-08-16 2015-08-12 微软技术许可有限责任公司 等待时间敏感的软件中断和线程调度
CN105474125A (zh) * 2013-09-27 2016-04-06 英特尔公司 用于跟踪唤醒锁定使用的技术
US20150208352A1 (en) * 2014-01-22 2015-07-23 Seven Networks, Inc. Method for power saving in mobile devices by optimizing wakelocks
US20150234442A1 (en) * 2014-02-20 2015-08-20 Qualcomm Incorporated Wake lock management through application monitoring
CN105183137A (zh) * 2015-09-09 2015-12-23 厦门美图移动科技有限公司 一种移动终端及其唤醒锁控制方法和控制***

Also Published As

Publication number Publication date
US20170364136A1 (en) 2017-12-21
BR112018075239A2 (pt) 2019-03-12
CA3023479A1 (en) 2017-12-21
WO2017218160A1 (en) 2017-12-21
JP2019527867A (ja) 2019-10-03
US10095305B2 (en) 2018-10-09
BR112018075239A8 (pt) 2023-01-31
EP3472684B1 (en) 2020-04-08
EP3472684A1 (en) 2019-04-24
KR20190019935A (ko) 2019-02-27

Similar Documents

Publication Publication Date Title
CN109313478A (zh) 出于能效在移动装置上进行的唤醒锁感知***宽作业调度
CN101379453B (zh) 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置
JP6423518B2 (ja) マルチプロセッサシステムのための指向性イベントシグナリング
US9996392B2 (en) Idle time service
CN103890694B (zh) 基于任务紧急性来管理时钟速率的***和方法
CN104838360A (zh) 基于配额的资源管理
CN106662909A (zh) 操作***中的启发式处理器电力管理
US20100153765A1 (en) Power state dependent wake-up alarm
JP2018533122A (ja) マルチバージョンタスクの効率的なスケジューリング
CN107209548A (zh) 在多核处理器中执行功率管理
CN108139946A (zh) 用于在冲突存在时进行有效任务调度的方法
CN106557367A (zh) 用于为计算资源提供粒度化服务质量的装置、方法和设备
KR20160005367A (ko) 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용
CN108139931A (zh) 通过重映射同步来加速任务子图
CN103930874A (zh) 使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率
CN105612485A (zh) 一种运行应用程序的方法及装置
CN110462590A (zh) 用于基于中央处理单元功率特性来调度软件任务的***和方法
CN103744808B (zh) 一种用于控制i/o请求的方法与设备
US20170249008A1 (en) Techniques for entering a low power state
CN104969190B (zh) 多核心二进制转换任务处理
CN107209696A (zh) 由应用动态控制的工作负载执行
CN107223238A (zh) 选择多群集***中的可用高速缓存的方法
US10296074B2 (en) Fine-grained power optimization for heterogeneous parallel constructs
KR101770736B1 (ko) 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
US10275007B2 (en) Performance management for a multiple-CPU platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20220401