出于能效在移动装置上进行的唤醒锁感知系统宽作业调度的制作方法

文档序号:16806802发布日期:2019-02-10 13:06阅读:146来源:国知局
出于能效在移动装置上进行的唤醒锁感知系统宽作业调度的制作方法

现代智能手机的计算系统的不同部分调度其个别作业(周期或非周期性的)。在用户空间中调度应用程序级服务和系统级服务。在内核空间中调度驱动程序级作业和背景作业。计算系统的中央处理单元(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)、其它可编程逻辑装置、离散门逻辑、晶体管逻辑、性能监视硬件、看门狗硬件和时间基准。集成电路可经配置以使得集成电路的组件驻留在例如硅的单件半导体材料上。

soc12可包含一或多个处理器14。计算装置10可包含多于一个soc12,由此增加处理器14和处理器核心的数目。计算装置10还可包含与soc12不相关联的处理器14。个别处理器14可以是多核心处理器,如下文参考图2所描述。处理器14可出于特定目的各自经配置与计算装置10的其它处理器14相同或不同。具有相同或不同配置的处理器14和处理器核心中的一或多个可分组在一起。处理器14或处理器核心的组可被称为多处理器集群。

soc12的存储器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”架构,其中较慢、低功率处理器核心可与较强大和高功耗处理器核心耦合。在类似实施例中,soc12可包含数个同构或异构处理器14。

在图2中说明的实例中,多核心处理器14包含四个处理器核心200、201、202、203(即,处理器核心0、处理器核心1、处理器核心2和处理器核心3)。为便于说明,本文中实例可指图2中所说明的四个处理器核心200、201、202、203。然而,图2中所说明且本文中所描述的四个处理器核心200、201、202、203仅作为实例提供且决不意指将各种实施例限于四个核心处理器系统。计算装置10、soc12或多核心处理器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、visualbasic、结构化查询语言(例如,transact-sql)、perl或各种其它编程语言等高级编程语言编写。存储在计算机可读存储媒体上的程序代码或程序如在本申请中所使用可以指机器语言代码(例如,目标代码),所述机器语言代码的格式可由处理器理解。

前述方法描述和过程流程图仅仅作为说明性实例提供,并且其并不意图要求或暗示各种实施例的操作必须以所呈现的次序进行。如所属领域的技术人员将了解,可以任何次序执行前述实施例中的操作的次序。例如“其后”、“然后”、“接下来”等词语并不希望限制操作的次序;这些词语仅用以引导读者浏览方法的描述。另外,举例来说,使用冠词“一”、“一个”或“所述”对单数形式的权利要求要素的任何参考不应被解释为将所述要素限制为单数。结合各个实施例描述的各种说明性逻辑块、模块、电路和算法操作可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性来描述了各种说明性组件、块、模块、电路和操作。此功能性实施为硬件还是软件取决于特定应用和强加于总体系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离权利要求书的范围。

用以实施结合本文中所公开的实施例而描述的各种说明性逻辑、逻辑块、模块和电路的硬件可用以下各项来实施或执行:通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或经设计以执行本文中所描述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其任何组合。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,dsp与微处理器的组合、多个微处理器的组合、一或多个微处理器与dsp核心结合,或任何其它此类配置。替代地,可通过具体针对给定功能的电路系统来执行一些操作或方法。

在一或多个实施例中,所描述的功能可实施在硬件、软件、固件或其任何组合中。如果在软件中实施,那么所述功能可以作为一或多个指令或代码存储在非暂时性计算机可读媒体或非暂时性处理器可读媒体上。本文中所公开的方法或算法的操作可体现于可驻留在非暂时性计算机可读或处理器可读存储媒体上的处理器可执行软件模块中。非暂时性计算机可读或处理器可读媒体可为可由计算机或处理器存取的任何存储媒体。借助实例但非限制,这类非暂时性计算机可读或处理器可读媒体可包含ram、rom、eeprom、闪存存储器、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于以指令或数据结构的形式存储所需程序代码且可由计算机存取的任何其它媒体。如本文所使用的磁盘和光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。上文各项的组合也包含在非暂时性计算机可读和处理器可读媒体的范围内。另外,方法或算法的操作可作为代码和/或指令中的一者或任何组合或集合而驻留在可并入到计算机程序产品中的非暂时性处理器可读媒体和/或计算机可读媒体上。

提供对所公开的实施例的前述描述以使所属领域的技术人员能够制作或使用所附权利要求书。所属领域的技术人员将易于了解对这些实施方案的各种修改,且本文中定义的一般原理可适用于其它实施例和实施方案而不脱离权利要求书的范围。因此,本公开并不意图限于本文中所描述的实施例和实施方案,而是应符合与所附权利要求书以及本文中所公开的原理和新颖特征相一致的最广范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1