多核心计算装置的动态睡眠的制作方法

文档序号:6496510阅读:137来源:国知局
多核心计算装置的动态睡眠的制作方法
【专利摘要】方面使得多核心处理器或片上系统能够取决于可接受的系统时延、动态操作条件(例如,温度)、预期闲置时间及特定装置的独特电特性而确定低功率配置,所述低功率配置通过将选定资源置于低功率模式中而提供大部分系统功率节约。以对称方式处理核心/处理单元中的每一者,且每一核心可与其它核心独立地选择其操作状态,而无需执行复杂的信号交换或发信号操作。
【专利说明】多核心计算装置的动态睡眠
[0001]相关申请案
[0002]本申请案主张2011年9月19日申请的题为“多核心计算装置的动态睡眠(Dynamic Sleep For Multicore Computing Devices) ” 的第 61/536,207 号美国临时申请案的优先权权益,所述申请案的全部内容特此以引用的方式并入。
【背景技术】
[0003]在过去的几年内,蜂窝式及无线通信技术已见证了爆炸性发展。已通过较佳通信、硬件、较大网络及更可靠协议刺激了此发展。无线服务提供者现能够向其客户提供不断扩展的一大批特征及服务,且向用户提供对信息、资源及通信的空前存取级别。为了保持与这些服务增强同步,移动电子装置(例如,蜂窝式电话、平板计算机、膝上型计算机等)变得比以前更强大和复杂。举例来说,移动电子装置现通常包含嵌入于单个衬底上的片上系统(SoC)及/或多个微处理器核心,从而允许移动装置用户在其移动装置上执行复杂且耗电量大的软件应用程序。结果,移动装置的电池寿命及功率消耗特性变为对于移动装置的消费者而言比以往更重要的考虑事项。

【发明内容】

[0004]各种方面包含节省多核心计算装置中的功率的方法,所述方法包含:在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数;基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及使用所述存储器位置处的所述值来确定何时进入系统低功率配置。方面方法可进一步包含:基于旗标位设定识别可被置于低功率模式中的资源;在每个核心或全局的基础上登记时延要求;从所述登记的时延要求中选择最严格的时延要求;对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合;选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下的时延要求的总时延要求;及通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。在一方面中,通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合可包含在对于共享模式参考计数值等于零时执行所述进入功能。在一方面中,所述方法可进一步包含基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。在一方面中,所述多核心计算装置的每一核心可在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。在一方面中,所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。在一方面中,所述多核心计算装置可包含用于管理由两个或两个以上执行环境共享的资源的资源功率管理器(RPM)处理器。在一方面中,所述方法可包含通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。在一方面中,所述方法进一步可包含使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一 RPM事务。在一方面中,使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。在一方面中,所述多核心计算装置中的每一核心可写入到睡眠集的不相交部分,且使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在将资源加入到所述睡眠集时释放所述自旋锁。在一方面中,所述方法可包含:标记资源为自动失效;及在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。在一方面中,所述方法可包含使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。在一方面中,所述多核心计算装置中的每一核心可具有子系统功率管理(SPM)硬件块,所述子系统功率管理(SPM)硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,且所述方法可进一步包含:在RPM睡眠驱动程序中检测当前正持有自旋锁;忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。在一方面中,所述方法可包含:在RPM驱动程序中接收在作用中上下文中的自旋锁;进入所述多核心计算装置的第一核心的睡眠模式;起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断;解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式;进入所述第零核心上的所述全局低功率模式;接收所述第零核心上的所述RPM确认中断;及释放所述自旋锁。在一方面中,所述方法可包含:起始第零核心上的RPM消息的发送;在RPM驱动程序中接收操作系统锁;进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务;起始所述第一核心上的睡眠集的发送;在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
[0005]其它方面包含一种计算装置,其可包含:存储器;及一个或一个以上处理器,其耦合到所述存储器,其中所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行包括以下各者的操作:在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数;基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及使用所述存储器位置处的所述值来确定何时进入系统低功率配置。在一方面中,所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含:基于旗标位设定识别可被置于低功率模式中的资源;在每个核心或全局的基础上登记时延要求;从所述登记的时延要求中选择最严格的时延要求;对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合;选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下的时延要求的总时延要求;及通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合可包含在对于共享模式参考计数值等于零时执行所述进入功能。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置的每一核心在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置可包含用于管理由两个或两个以上执行环境共享的资源的资源功率管理器(RPM)处理器。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述处理器经配置有处理器可执行指令以执行操作可进一步包含使用自旋锁以防止一个核心开始资源功率管理器(RPM)事务而另一核心发送另一 RPM事务。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在将资源加入到所述睡眠集时释放所述自旋锁。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含标记资源为自动失效;及在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置中的每一核心具有子系统功率管理(SPM)硬件块,所述子系统功率管理(SPM)硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述方法可进一步包含:在RPM睡眠驱动程序中检测当前正持有自旋锁;忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含:在RPM驱动程序中接收在作用中上下文中的自旋锁;进入所述多核心计算装置的第一核心的睡眠模式;起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断;解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式;进入所述第零核心上的所述全局低功率模式;接收所述第零核心上的所述RPM确认中断;及释放所述自旋锁。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含:起始第零核心上的RPM消息的发送;在RPM驱动程序中接收操作系统锁;进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务;起始所述第一核心上的睡眠集的发送;在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
[0006]其它方面包含非暂时性处理器可读存储媒体,其上存储有处理器可执行指令,所述处理器可执行指令经配置以致使服务器执行操作,所述操作可包含:在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数;基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及使用所述存储器位置处的所述值来确定何时进入系统低功率配置。在一方面中,所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含:基于旗标位设定识别可被置于低功率模式中的资源;在每个核心或全局的基础上登记时延要求;从所述登记的时延要求中选择最严格的时延要求;对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合;选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下的时延要求的总时延要求;及通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合可包含在对于共享模式参考计数值等于零时执行所述进入功能。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得所述多核心计算装置的每一核心在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。在一方面中,所述多核心计算装置可包含用于管理由两个或两个以上执行环境共享的资源的RPM处理器。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一 RPM事务。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在将资源加入到所述睡眠集时释放所述自旋锁。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含标记资源为自动失效;及在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得所述多核心计算装置中的每一核心具有子系统功率管理(SPM)硬件块,所述子系统功率管理(SPM)硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述方法可进一步包含:在RPM睡眠驱动程序中检测当前正持有自旋锁;忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含:在RPM驱动程序中接收在作用中上下文中的自旋锁;进入所述多核心计算装置的第一核心的睡眠模式;起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断;解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式;进入所述第零核心上的所述全局低功率模式;接收所述第零核心上的所述RPM确认中断;及释放所述自旋锁。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含:起始第零核心上的RPM消息的发送;在RPM驱动程序中接收操作系统锁;进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务;起始所述第一核心上的睡眠集的发送;在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
[0007]其它方面包含一种计算装置,其具有:用于在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数的装置;用于基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值的装置;及用于使用所述存储器位置处的所述值来确定何时进入系统低功率配置的装置。在一方面中,所述计算装置可包含:用于基于旗标位设定识别可被置于低功率模式中的资源的装置;用于在每个核心或全局的基础上登记时延要求的装置;用于从所述登记的时延要求中选择最严格的时延要求的装置;用于对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合的装置;选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下的时延要求的总时延要求;及用于通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合的装置。在一方面中,所述计算装置可包含用于通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合的装置可包含用于在对于共享模式参考计数值等于零时执行所述进入功能的装置。在一方面中,所述计算装置可包含用于基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约的装置。在一方面中,所述计算装置可包含用于在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作所述多核心计算装置的每一核心的装置。在一方面中,所述计算装置可包括用于配置所述计算装置以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源且使得每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式的装置。在一方面中,所述计算装置可包含用于在所述多核心计算装置中包含用于管理由两个或两个以上执行环境共享的资源的RPM处理器的装置。在一方面中,所述计算装置可包含用于通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠的装置,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。在一方面中,所述计算装置可包含用于使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一 RPM事务的装置。在一方面中,用于使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务的装置可包含用于在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁的装置。在一方面中,所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中用于使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务的装置可包含用于在将资源加入到所述睡眠集时释放所述自旋锁的装置。在一方面中,所述计算装置可包含:用于标记资源为自动失效的装置;及用于在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效的装置。在一方面中,所述计算装置可包含用于使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集的装置。在一方面中,所述多核心计算装置中的每一核心可具有子系统功率管理(SPM)硬件块,所述子系统功率管理(SPM)硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述装置可进一步包含:用于在RPM睡眠驱动程序中检测当前正持有自旋锁的装置;用于忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务的装置;及用于尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上的装置。在一方面中,所述计算装置可包含:用于在RPM驱动程序中接收在作用中上下文中的自旋锁的装置;用于进入所述多核心计算装置的第一核心的睡眠模式的装置;用于起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断的装置;用于解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式的装置;用于进入所述第零核心上的所述全局低功率模式的装置;用于接收所述第零核心上的所述RPM确认中断的装置;及用于释放所述自旋锁的装置。在一方面中,所述计算装置可包含:用于起始第零核心上的RPM消息的发送的装置;用于在RPM驱动程序中接收操作系统锁的装置;用于进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务的装置;用于起始所述第一核心上的睡眠集的发送的装置;用于在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁的装置;及用于在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心的装置。
【专利附图】

【附图说明】
[0008]并入本文且构成本说明书的部分的【专利附图】

【附图说明】本发明的示范性方面,且连同上文给出的一般描述和下文给出的详细描述一起用以阐释本发明的特征。
[0009]图1为在一方面中由编程节点控制以进入两个低功率模式中的一者的资源的图。
[0010]图2为适合于实施各种方面的实例片上系统的架构图。
[0011]图3为适合于实施各种方面的实例多核心处理器的架构图。
[0012]图4为说明在经配置以实施各种方面的多核心处理器中的各种全局及局部组件的架构图。
[0013]图5到9为用于执行多核心睡眠及选择低功率模式的最优集合的方面方法的过程流程图。
[0014]图10为在一方面中适合于使用的移动装置的组件框图。
【具体实施方式】
[0015]将参考附图详细描述各种方面。只要可能,将在整个图式中使用相同的参考标号来指代相同或相似的部分。对具体实例和实施方案做出的参考是出于说明性目的,且不希望限制本发明或权利要求书的范围。
[0016]词“示范性”在本文中用以意谓“充当实例、例项或说明”。本文中描述为“示范性”的任何实施方案不一定要解释为相比其它实施方案优选或有利。
[0017]术语“移动装置”及“计算装置”在本文中可互换地使用以指代以下各者中的任一者或全部:蜂窝式电话、膝上型计算机、个人数据助理(PDA)、掌上计算机、无线电子邮件接收器(例如,BlKkhcrry?及Trco?装置)、具备多媒体因特网功能的蜂窝式电话(例如,Blackberry Storm? )、全球定位系统(GPS)接收器、无线游戏控制器及包含可编程处理器且在电池供电下操作以使得功率节省方法有益处的类似个人电子装置。
[0018]术语“片上系统”(S0C)在本文中用以指代含有集成于单个衬底上的多个资源及处理器的单个集成电路(IC)芯片。单个SOC可含有用于数字、模拟、混合信号及射频功能的电路。单个SOC还可包含任何数目个通用及/或专用处理器(DSP、调制解调器处理器、视频处理器等)、存储块(例如,ROM、RAM、闪存等)及资源(例如,计时器、调压器、振荡器等)。SOC还可包含用于控制集成资源及处理器以及用于控制外围装置的软件。
[0019]术语“多核心处理器”在本文中用以指代含有经配置以读取及执行程序指令的两个或两个以上独立处理核心(例如,CPU核心)的单个集成电路(IC)芯片或芯片封装。SOC可包含多个多核心处理器,且SOC中的每一处理器可被称作核心。
[0020]术语“资源”在本文中用以指代用以支持运行于计算装置上的处理器及客户端的各种各样电路(例如,端口、时钟、总线、振荡器等)、组件(例如,存储器)、信号(例如,时钟信号)及电压(例如,电压轨)中的任一者。移动计算装置通常可包含多个资源,例如晶体振荡器、电压轨、一个或一个以上存储器单元、通信总线等。
[0021]多核心处理器系统及SOC中的资源可局部于特定核心,在核心的子集当中共享,或在所有核心当中共享。如本文中所使用,术语“全局资源”指代在装置、芯片、处理器、群组等的所有核心当中共享的资源。
[0022]为了清楚起见,使用节点功率架构(NPA)及相关术语来描述各种方面方法。然而,应理解,与NPA节点相关的实例及对NPA节点或NPA方法的其它参考在本文中是仅出于说明目的。因此,权利要求书的范围不应被解释为需要NPA节点或NPA过程,除非权利要求书中特别如此叙述。
[0023]为了最大化电池寿命,移动装置可经配置以只要有可能就将一个或一个以上装置资源置于低功率状态中,例如在处理器在闲置状态中时。将装置资源置于低功率状态中通常由每当处理器不积极地处理任务时断开或减少资源的操作组成。某些资源对于恰当操作而言是基本的及/或由其它组件使用且在处理器闲置时无法关闭或被置于低功率状态中。为了清楚起见,在处理器不处理任务及/或在闲置状态中时可关闭或被置于一个或一个以上低功率状态中的资源在本文中被称作低功率资源(LPR)。可在给定闲置状态中启动、启用、撤销启动及/或停用多个LPR。每一 LPR可具有多个低功率模式(闲置、主动睡眠、睡目民、深度睡眠等),所述低功率模式在本文中被称作低功率资源模式(LPRM)。每一资源可定义LPRM特性数据,其包含由处理器使用以用于针对给定状态选择LPRM的最优集合的信息。此信息可包含以下列表:资源的每一可用LPRM、随时间而变或每单位时间的每一 LPRM的潜在功率节约、每一 LPRM的时延特性(即,离开低功率模式的时间)、温度对潜在功率节约的影响、相关性(即,与客户端其它资源的相互关系),及可与选择每一资源的最优LPRM相关的其它信息。
[0024]总体“系统低功率配置”为针对可用于基于当前操作状态及条件进入低功率模式的资源中的每一者选择的低功率模式的集合。
[0025]在2010年10月10日申请的题为“用于计算装置的动态低功率模式实施方案(Dynamic Low Power Mode Implementation For Computing Devices) ” 的第 12/965, 008号美国专利申请案中揭示用于动态地计算及选择低功率模式的方法及系统,所述申请案的全部内容特此以引用的方式并入。简要来说,装置可通过识别可停用的资源以及在装置低功率配置期间应保持开着的资源来选择一个或一个以上低功率资源模式(LPRM)。装置处理器可通过确定在处理器进入闲置状态时哪些资源的低功率资源模式有效,通过在给定当前装置条件情况下的预期功率节约排列有效低功率资源模式,确定哪些有效低功率资源模式提供最大功率节约同时满足时延要求及选择要进入的每一资源的特定低功率资源模式来计算最优系统低功率配置(其由低功率资源模式的集合组成)。
[0026]资源可指示其何时可用于通过启用低功率模式掩码(“LPM掩码”)内的旗标位而进入低功率状态。当处理器准备好进入系统低功率模式时,低功率任务可存取LPM掩码以识别可被置于低功率状态中的资源及基于给定动态系统状态(例如,当前作用中客户端、所需要时延、所预期的闲置时间及温度)确定所述资源要进入的适当LPRM。
[0027]在一方面中,当处理器能够进入闲置状态时,低功率任务可运行“解算机”过程来确定应进入各种资源的哪些低功率模式。在此类状况下,可需要收集不同资源的低功率模式及所述低功率模式的特性以供当是时候进入闲置状态时评估的睡眠任务使用。此情形可通过“/sle印/lpr”NPA节点实施于节点功率架构(NPA)中。
[0028]可使对“/sle印/lpr”的请求呈启用低功率资源模式的位掩码的形式。开发者可通过sleep_define_lpr O功能向“/sleep/lpr”NPA节点登记低功率资源模式,sleep_define_lpr()功能使低功率资源模式(及其资源低功率模式位掩码)加入。可在任何时间查询表示其有意启用/停用的资源低功率资源模式的位掩码的“/sleep/lpr” NPA节点。NPA资源还可通过使用正确的位掩码进行到“/sle印/lpr”中的请求来请求在闲置时间启用其资源低功率资源模式。睡眠解算机接着可针对低功率资源模式的列表及当前启用哪些低功率资源模式的掩码查询在闲置时间的“/sle印/lpr”。
[0029]如上文所论述,当处理器能够进入闲置状态时,低功率任务可运行“解算机”过程来确定应进入各种资源的哪些低功率资源模式。此情形的实例说明于图1中,图1说明节点功率架构(NPA)2内的处理器(即,节点)如何确定对于资源(晶体振荡器4)而言可进入可用低功率模式6、8中的哪一者。在图1中所说明的实例中,晶体振荡器资源4具有两个交替低功率资源模式(LPRM),即门控操作状态6及彻底关机8。可通过调用“进入”功能而进入选定LPRM,“进入”功能将资源置于功率节约状态中。在处理器闲置时,处理器可执行等待中断(WFI)过程及/或闲置过程。处理器及选定资源可保持为此状态直到唤醒事件发生。当唤醒事件发生时,可针对每一选定资源调用“离开”功能以将所述资源返回到所要操作状态(例如,正常或满功率状态)。
[0030]虽然上文提及的用于动态计算及选择低功率模式的过程对于传统计算装置而言是有效的,但现代移动装置正变得比以往更复杂且装置处理器所使用或管理的资源数目每年都在增加。举例来说,许多移动计算装置现包含多个晶体振荡器、多个电压轨及多个存储器位置,其中的每一者可独立地来控制。因此,存在移动装置处理器可关闭或置于低功率模式中以便节省功率的许多不同资源。此外,现代移动装置可具有使用各种装置资源及执行不同任务(且因此可不同时闲置)的多个处理器/核心。多个处理器/核心的存在将额外程度的复杂性加入到低功率模式的管理,且在选择待置于低功率模式中的资源时必须实行一定程度的执行控制。
[0031]一般来说,选择哪些资源置于各种低功率模式中被称作“睡眠问题”。举例来说,如果断电且将资源返回到其所需要的操作状态所需要的功率大于通过使资源在处理器闲置状态的估计持续时间内处于低功率模式而节约的功率,那么移动装置的电池寿命可不通过每当处理器闲置时简单地关闭资源及/或将资源置于低功率状态中而最大化。因此,确定哪些资源应关闭及/或被置于低功率模式中(及针对所述资源应选择哪些低功率模式)通常需要分析处理器状态、其它装置处理器的状态及其它因素,例如时延、功率节约潜能、功率消耗及资源/处理器的相互关系。
[0032]图2为说明可用以实施各种方面的实例片上系统600 200架构的架构图。5(^200可包含数个异构处理器,例如数字信号处理器(DSP) 202、调制解调器处理器204、图形处理器206及应用程序处理器208,所述处理器中的每一者可包含一个或一个以上核心。SOC还可包含连接到处理器中的一者或一者以上的一个或一个以上协处理器(例如,向量协处理器)210。每一处理器可包含一个或一个以上核心,且每一处理器/核心可执行独立于其它处理器/核心的操作。举例来说,S0C200可包含执行基于UNIX操作系统(例如,FreeBSD、LINUX、OS X等)的处理器及执行基于windows操作系统(例如,Microsoft Windows7)的处理器。
[0033]S0C200还可包含模拟电路及定制电路214,其用于管理传感器数据、模/数转换、无线数据传输及用于执行其它专用操作,例如处理游戏及电影的经编码音频信号。SOC可进一步包含系统组件及资源216,例如调压器、振荡器、锁相回路、外围桥接器、数据控制器、存储器控制器、系统控制器、存取端口、计时器及用以支持处理器及运行于计算装置上的客户端的其它类似组件。
[0034]系统组件216及定制电路214可包含与外围装置(例如,相机、电子显示器、无线通信单元、外部存储器芯片等)介接的电路。处理器202、204、206、208可通过互连/总线模块互连到一个或一个以上存储器元件212、系统组件及资源216及定制电路214,互连/总线模块可包含可配置逻辑门阵列及/或实施总线架构(例如,CoreConnect, AMBA等)。
[0035]图3为说明可用以实施各种方面的实例多核心处理器架构的架构图。如上文所提及,多核心处理器302可包含很靠近的两个或两个以上独立处理核心304、306(例如,在单个衬底、裸片、集成芯片等上)。处理器/核心的靠近允许存储器以比在信号必须行进到芯片外的情况下可能的频率/时钟速率高得多的频率/时钟速率操作。此外,核心的靠近允许共享芯片上存储器及资源,以及允许核心之间的更协调合作。
[0036]多核心处理器302可包含多级高速缓冲存储器,多级高速缓冲存储器包含I级(LI)高速缓冲存储器312、314及2级(L2)高速缓冲存储器316。多核心处理器302还可包含总线/互连接口 318、主存储器320及输入/输出模块322。L2高速缓冲存储器316可大于(及慢于)LI高速缓冲存储器312、314,但小于(及实质上快于)主存储器单元320。每一处理核心304、306可包含处理单元308、310,处理单元308、310具有对LI高速缓冲存储器312、314的私密存取及对L2高速缓冲存储器316的共享存取。LI及L2高速缓冲存储器312、314可用以存储频繁由处理单元308、310存取的数据。主存储器320可用以存储由处理核心304、306存取的较大文件及数据单元。
[0037]多核心处理器302可经配置以使得处理核心304、306按次序寻求来自存储器的数据,首先查询LI高速缓冲存储器,接着是L2高速缓冲存储器,且如果信息不存储于高速缓冲存储器中,那么接着是主存储器。如果信息不存储于高速缓冲存储器或主存储器320中,那么。多核心处理器302可寻求来自外部存储器/硬盘324的信息。
[0038]处理核心304、306可彼此等同,异构及/或实施不同功能。因此,处理核心304、306核心不需要对称,从操作系统角度(例如,可执行不同操作系统)或从硬件角度(例如,可实施不同指令集及/或架构)。
[0039]处理核心304、306可通过总线/互连线318彼此通信。每一处理核心304、306可具有对一些资源的互斥控制且与其它核心共享其它资源。单个芯片上包含多个核心及在核心之间共享存储器及资源引起数个功率及温度管理问题,所述功率及温度管理问题使对睡眠问题的解决方案及最优低功率资源配置的选择复杂化。
[0040]如上文所论述,为了节省电池寿命,每一资源可具有资源可被置于的低功率模式(LPRM)的集合。在SOC及多核心处理器系统中,处理单元/核心中的每一者可在不同操作系统下操作,且核心可具有不同的约束集合、工作负载及其经预期进入及离开低功率/睡眠模式的不同时间(即,每一核心可被要求独立地进入及离开睡眠模式)。处理单元/核心中的每一者还可共享将其绑定到其它核心的操作/状态的资源。举例来说,多核心处理器/SOC可具有理论上可独立地进入低功率/睡眠模式但绑定到根晶体振荡器的操作的四个核心,所述根晶体振荡器无法关机除非所有核心处于低功率模式。此情形要求在核心可进入及/或离开低功率模式之前核心之间的许多显式信号交换、锁定或直接发信号。这些因素使包含SOC及/或多核心处理器的系统中的最优低功率资源配置的选择复杂化。
[0041]现有多核心/SOC睡眠实施方案做得并不好,且不允许选择最优总体低功率资源模式配置。如上文所提及,核心/处理单元必须在系统可进入全局低功率模式之前执行复杂锁定及同步操作,且随着核心/处理单元的数目增加(8、16、32等)而出现显著瓶颈。此夕卜,用于管理多核心处理器系统中的处理器/核心闲置状态的现有解决方案通常取决于所使用操作系统的类型。举例来说,一些操作系统(例如,LINUX等)可经配置以通过驻留于睡眠过程之上且显式地关闭其它核心/资源(在睡眠过程之外)的过程控制多核心睡眠操作,以使得在其想要做最后的睡眠(例如,所有核心处于睡眠模式)时,所有操作被向下投送到零核心。此情形有效地允许多核心系统以类似于单个核心解决方案的方式管理资源/多个核心(零核心负责所有其它核心)。
[0042]其它操作系统(例如,Microsoft Windows等)可经配置以使得当不同核心准备好进入睡眠模式时,所述核心阻塞并等待上一核心操作失灵。此解决方案导致核心运行于较低功率状态中,但不在最低系统功率状态中,直到所有全局资源及核心闲置为止。
[0043]各种方面不要求零核心监视其它核心,不要求驻留于睡眠过程之上的过程监视核心(例如,LINUX等),且不要求核心阻塞并等待直到所有全局资源闲置为止。不同于现有解决方案,各种方面允许以对称方式来处理多核心处理器/SOC中的所有核心/处理单元。每一核心可通过监视参考计数与其它核心独立地选择其操作状态。
[0044]如上文所提及,在SOC/多核心处理器中,每一处理器/核心可在不同操作系统下操作,且每一核心/处理器可具有不同的约束集合、工作负载及其经预期进入及离开低功率/睡眠模式的不同时间(即,每一核心可被要求独立地进入及离开睡眠模式),且同时共享将其绑定到其它核心的操作/状态的资源。因此,当在多核心环境中执行动态睡眠操作时,必须进行特别的考虑以便在各种核心之间共享数据,且协调将共享资源置成其低功率模式,这通常要求在所述核心可进入及/或离开低功率模式之前所述核心之间的显式信号交换、锁定或直接发信号。各种方面修改核心选择低功率模式,识别可停用的资源及识别在装置低功率配置期间应保持开着的资源的方式。各种方面还允许多核心系统通过以如下方式局部地(即,针对特定核心)或全局地(即,针对所有核心)设定约束有效地执行这些操作:允许离散地处置离散资源及横跨核心共享全局资源,皆不需要在进入系统低功率模式之前核心之间的任何显式信号交换、锁定或直接发信号。
[0045]图4为说明根据各种方面实施的多核心处理器系统400中的实例流程的组件流程图。多核心处理器系统400可包含两个或两个以上独立处理核心404、406,所述处理核心中的每一者可与其它核心独立地被置于睡眠/低功率模式中。多核心处理器系统400还可包含中断模块416,所述中断模块经配置以向核心404、406中的一者或一者以上发射中断,这可致使核心从睡眠状态/低功率模式中唤醒。
[0046]多核心处理器系统400还可包含数个资源438、440、452。一些资源(例如,局部资源438、440)可在每个核心的基础上来控制,且被视为局部于每一核心(即,核心轨的功率降级)。其它资源(例如,共享资源454)可由一个或一个以上核心共享且需要在进入其LPRM之前在所有核心之间的协调。
[0047]每一处理器核心404、406可具有核心计时器412、414及子系统功率管理(SPM)硬件块408、410。SPM硬件块408、410可控制其相应核心的功率状态以使得核心可进入低功率模式同时维持快速重新开始处理操作的能力。
[0048]每一核心404、406可执行与其它核心独立地运行的闲置线程418、420。闲置线程418、420可与其相应核心计时器412、414及子系统功率管理(SPM)硬件块408、410通信。每一闲置线程418、420还可与其相应核心404、406的局部时延模块430、432、局部唤醒模块426,428及/或局部休眠模块422、424通信,及与在核心之间共享的全局唤醒模块436及全局时延模块434通信。在一方面中,时延模块430、432、434、唤醒模块426、428、436及休眠模块422、424可为节点功率架构(NPA)实施方案中的节点。
[0049]客户端应用程序可向局部时延节点430、432登记,以致使特定核心兑现时延约束。如果客户端应用程序不知道其中断将向哪一核心发射,那么客户端应用程序可向全局时延模块434登记。在一方面中,中断时延可经计算为中断发射到执行中断服务例程(ISR)的时间之间的时间量。
[0050]在一方面中,多核心处理器系统400可包含用于管理由系统中的一个以上执行环境(或“主控器”)共享的资源的资源功率管理器(RPM)450处理器。
[0051 ] 在一方面中,资源功率管理器(RPM) 450可在兑现睡眠请求之前等待来自每一核心的子系统功率管理(SPM)硬件块408、410的信号交换。
[0052]唤醒模块426、428、436可经配置以启用客户端应用程序,以将关于未通过计时器子系统调度的预期唤醒中断的输入提供给睡眠子系统。此情形可允许睡眠过程在知道何时预期发射中断及将系统唤醒的情况下最优化低功率模式的选择。客户端应用程序可向局部唤醒模块426、428登记,以指示特定核心上的唤醒事件。如果客户端应用程序不知道其中断将向哪一核心发射,那么客户端应用程序可向全局唤醒模块436登记。
[0053]每一核心404、406可经配置以独立地确定是否兑现局部及/或全局唤醒输入及/或时延约束,核心可基于休眠模块422、424资源的存在及/或状态来确定局部及/或全局唤醒输入及/或时延约束。
[0054]在一方面中,休眠模块422、424可包含在每一相应核心上的节点功率架构(NPA)资源,所述NPA资源允许操作系统(或MP-DCVS子系统)指示核心是“在作用中”还是“在休眠”。
[0055]作用中状态可指示操作系统正积极地调度核心上的线程,且应兑现局部及全局时延两者及唤醒约束。
[0056]休眠状态可指示操作系统并未积极地调度核心上的线程,且将仅兑现局部时延及唤醒限制(即,可忽略全局时延及唤醒约束)。
[0057]在一方面中,多核心处理器系统400可经配置以使得当核心处于作用中状态时,操作系统兑现局部及全局时延两者及/或唤醒限制,且当核心处于休眠状态时,操作系统仅兑现局部时延及唤醒限制。
[0058]在一方面中,操作系统可经配置以将所有中断投送到个别核心(例如,核心O),且多核心处理器系统可经配置以使得仅个别核心(即,核心O)兑现全局唤醒/时延约束。在此类方面中,全局唤醒/时延模块可以是核心(核心O)的局部唤醒/时延模块(例如,唤醒模块426、时延模块430)的别名。
[0059]在一方面中,在核心中没有休眠模块(例如,模块422、424)致使核心在作用中状态中操作。
[0060]在一方面中,休眠模块422、424可默认处于作用中状态。
[0061]在一方面中,休眠模块422、424可经配置以识别第三状态(例如,闲置状态),其指示操作系统并未积极地调度核心上的线程,但对应于核心应兑现的经登记时延及唤醒约束的中断可被投送到核心。举例来说,执行于核心上的操作系统可定义“休眠状态”以使得核心可具有在休眠时被投送到核心的中断(即,并未调度核心上的线程)。在此类状况下,中断子系统(例如,中断模块416)可经配置以通知休眠模块422、424核心处于闲置状态且核心应兑现全局时延及唤醒约束。
[0062]在各种方面中,可存在与能直接查询的计时器子系统相关联的已知唤醒事件。各种方面还可包含唤醒资源,其允许客户端“暗示”其相信唤醒事件将在特定的时间量中发生。
[0063]在各种方面中,系统可包含预测及/或控制资源及/或核心可能在给定睡眠状态中保持多久的机制。在这些方面中,处理器可推迟某些事件以控制资源可预期睡眠多久。在各种方面中,可存在强制唤醒资源的硬性唤醒点。在各种方面中,系统可使用来自资源的“暗示”以确定预期唤醒时间帧。
[0064]各种方面可实施预测性算法,所述预测性算法可由处理器使用以估计最有效的唤醒时间。
[0065]各种方面可使用硬性限制、暗示及学习机制的组合来确定预期唤醒时间。
[0066]各种方面可使用预期唤醒时间来确定在将资源置于低功率资源模式中直到所确定预期唤醒时间为止的情况下将节约多少功率。此类预期功率节约接着可用于选择特定资源置于低功率模式中(即,选择低功率资源模式)以在即将到来的睡眠循环内在系统低功率模式配置中实施的过程中。
[0067]在一方面中,可查询唤醒模块426、428、436以识别直到下一经调度唤醒为止剩余的时间量(例如,直到“硬性唤醒”为止的持续时间)。全局唤醒模块436可返回进行请求的核心的持续时间,且核心特定唤醒模块426、428可返回其代表的核心的持续时间。
[0068]在一方面中,替代查询通过唤醒节点的经调度唤醒(例如,硬性唤醒),可将经调度唤醒信息传递到睡眠任务以用于处理。举例来说,高级操作系统(HLOS)可将闲置的特定核心的硬性唤醒持续时间传递到睡眠任务以用于处理。
[0069]在一方面中,睡眠子系统可包含由所有核心共享的库。在闲置线程的上下文内或在另一线程的上下文内,多个核心可同时读取及/或修改共享数据(例如,睡眠子系统库)。
[0070]如上文所提及,由处理器使用的一些资源可在每个核心的基础上来控制且因此局部于每一核心(即,核心轨的功率降级),而其它资源可由一个或一个以上核心共享。因为资源可为全局的(例如,由一个以上核心共享),所以核心进入睡眠模式或在允许资源进入其低功率模式之前可需要核心之间的协调。在一方面中,多核心处理器系统400可包含动态睡眠框架,动态睡眠框架提供核心之间的协调,且辅助选择每一核心的低功率模式。动态睡眠框架可识别每一低功率资源(LPR)所应用于的核心。
[0071]可添加栏位到睡眠结构452,所述栏位识别特定核心与低功率资源之间的关系。资源可为局部的,在核心的子集当中共享,或在所有核心当中共享(全局)。举例来说,如果资源应用于一个以上核心(即,LPRM为全局的),那么核心可存取存储于共享存储器中的参考计数以确定是否可将资源/核心置于低功率模式中。如果资源仅应用于特定核心(即,LPRM为局部的),那么资源所应用于的核心可将所述资源置成其低功率模式而不需要参考计数。
[0072]为了选择特定核心的睡眠集,可使动态睡眠框架注意到特定LPR应用于哪一(哪些)核心。此情形可通过查询sleep_lpr节点452的添加栏位以识别LPR所应用于的特定核心来实现。添加栏位可包含数个位,每一位对应于特定核心(即,位零可对应于核心0,位I对应于核心I等)。如果设定位中的任一者,那么LPR可经识别为仅应用于由所设定位识别的核心。如果不设定位,或如果设定所有位,那么LPR可被当作在所有核心当中共享(即,LPR为全局的)。
[0073]在一方面中,睡眠子系统可产生合成模式,其表示向睡眠子系统登记的组件模式的有效组合。合成模式可基于组件模式中给出的相关性、时延、排序及功率节约信息而产生。
[0074]在一方面中,每一核心可包含启用列表,在启用及停用LPRM时由睡眠框架即时地修整所述启用列表。每当某一核心闲置且请求启用模式列表时,睡眠登记可返回请求核心的列表。举例来说,如果以下LPRM存在于系统中,那么:
[0075]
【权利要求】
1.一种用于节省多核心计算装置中的功率的方法,所述方法包括: 在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数; 基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及 使用所述存储器位置处的所述值来确定何时进入系统低功率配置。
2.根据权利要求1所述的方法,其中所述多核心计算装置的每一核心在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。
3.根据权利要求1所述的方法,其中所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。
4.根据权利要求1所述的方法,其进一步包括: 基于旗标位设定识别可被置于低功率模式中的资源; 在每个核心或全局的基础上登记时延要求; 从所述登记的时延要求中选择最严格的时延要求; 对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合; 选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下时延要求的总时延要求;及 通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。
5.根据权利要求4所述的方法,其中通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合包括在对于共享模式参考计数值等于零时执行所述进入功能。
6.根据权利要求4所述的方法,其进一步包括: 基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。
7.根据权利要求1所述的方法,其中所述多核心计算装置包含用于管理由两个或两个以上执行环境共享的资源的资源功率管理器RPM处理器。
8.根据权利要求7所述的方法,其进一步包括: 通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡目民,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。
9.根据权利要求7所述的方法,其进一步包括: 标记资源为自动失效;及 在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。
10.根据权利要求7所述的方法,其进一步包括: 使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。
11.根据权利要求7所述的方法,其中所述多核心计算装置中的每一核心具有子系统功率管理SPM硬件块,所述子系统功率管理SPM硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述方法进一步包括: 在RPM睡眠驱动程序中检测当前正持有自旋锁; 忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。
12.根据权利要求7所述的方法,其进一步包括: 在RPM驱动程序中接收在作用中上下文中的自旋锁; 进入所述多核心计算装置的第一核心的睡眠模式; 起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断; 解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式; 进入所述第零核心上的所述全局低功率模式; 接收所述第零核心上的所述RPM确认中断;及 释放所述自旋锁。
13.根据权利要求7所述的方法,其进一步包括: 起始第零核心上的RPM消息的发送; 在RPM驱动程序中接收操作系统锁; 进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务; 起始所述第一核心上的睡眠集的发送; 在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及 在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
14.根据权利要求7所述的方法,其进一步包括使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一 RPM事务。
15.根据权利要求14所述的方法,其中使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务包括在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。
16.根据权利要求14所述的方法,其中所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务包括在将资源加入到所述睡眠集时释放所述自旋锁。
17.一种计算装置,其包括: 存储器;及 一个或一个以上处理器,其耦合到所述存储器,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行包括以下各项的操作: 在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数; 基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及使用所述存储器位置处的所述值来确定何时进入系统低功率配置。
18.根据权利要求17所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置的每一核心在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。
19.根据权利要求17所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。
20.根据权利要求17所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各项的操作: 基于旗标位设定识别可被置于低功率模式中的资源; 在每个核心或全局的基础上登记时延要求; 从所述登记的时延要求中选择最严格的时延要求; 对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合; 选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下时延要求的总时延要求;及 通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。
21.根据权利要求20所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行操作以使得通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合包括在对于共享模式参考计数值等于零时执行所述进入功能。
22.根据权利要求20所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各项的操作: 基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。
23.根据权利要求17所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置包含用于管理由两个或两个以上执行环境共享的资源的资源功率管理器RPM处理器。
24.根据权利要求23所述的计算装置,其中所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各项的操作: 通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡目民,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后 递减。
25.根据权利要求23所述的计算装置,其中所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各项的操作: 标记资源为自动失效;及在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。
26.根据权利要求23所述的计算装置,其中所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各项的操作: 使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。
27.根据权利要求23所述的计算装置,其中: 所述计算装置进一步包括子系统功率管理SPM硬件块,所述子系统功率管理SPM硬件块经配置以控制核心的功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换 '及 所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各者的操作: 在RPM睡眠驱动程序中检测当前正持有自旋锁; 忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。
28.根据权利要求23所述的计算装置,其中所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各项的操作: 在RPM驱动程序中接收在作用中上下文中的自旋锁; 进入所述多核心计算装置的第一核心的睡眠模式; 起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断; 解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式; 进入所述第零核心上的所述全局低功率模式; 接收所述第零核心上的所述RPM确认中断;及 释放所述自旋锁。
29.根据权利要求23所述的计算装置,其中所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各项的操作: 起始第零核心上的RPM消息的发送; 在RPM驱动程序中接收操作系统锁; 进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务; 起始所述第一核心上的睡眠集的发送; 在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及 在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
30.根据权利要求23所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行操作以使得所述处理器经配置有处理器可执行指令以执行操作,所述操作进一步包括使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一 RPM事务。
31.根据权利要求30所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行操作以使得使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务包括在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。
32.根据权利要求30所述的计算装置,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务包括在将资源加入到所述睡眠集时释放所述自旋锁。
33.一种非暂时性计算机可读存储媒体,其上存储有处理器可执行软件指令,所述处理器可执行软件指令经配置以致使处理器执行用于节省多核心计算装置中的功率的操作,所述操作包括: 在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数; 基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及 使用所述存储器位置处的所述值来确定何时进入系统低功率配置。
34.根据权利要求33所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行操作以使得所述多核心计算装置的每一核心在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。
35.根据权利要求33 所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行操作以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。
36.根据权利要求33所述的非暂时性计算机可读存储媒体,其中所述一个或一个以上处理器配置有处理器可执行指令,因此所述计算装置执行进一步包括以下各项的操作: 基于旗标位设定识别可被置于低功率模式中的资源; 在每个核心或全局的基础上登记时延要求; 从所述登记的时延要求中选择最严格的时延要求; 对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合; 选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下时延要求的总时延要求;及 通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。
37.根据权利要求36所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行操作以使得通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合包括在对于共享模式参考计数值等于零时执行所述进入功能。
38.根据权利要求36所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行进一步包括以下各项的操作: 基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。
39.根据权利要求33所述的非暂时性计算机可读存储媒体,其中所述多核心计算装置包含用于管理由两个或两个以上执行环境共享的资源的资源功率管理器RPM处理器。
40.根据权利要求39所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行进一步包括以下各项的操作: 通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡目民,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。
41.根据权利要求39所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行进一步包括以下各项的操作: 标记资源为自动失效;及 在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。
42.根据权利要求39所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行进一步包括以下各项的操作: 使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。
43.根据权利要求39所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行操作以使得所述多核心计算装置中的每一核心具有子系统功率管理SPM硬件块,所述子系统功率管理SPM硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述方法进一步包括: 在RPM睡眠驱动程序中检测当前正持有自旋锁; 忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。
44.根据权利要求39所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行进一步包括以下各项的操作: 在RPM驱动程序中接收在作用中上下文中的自旋锁; 进入所述多核心计算装置的第一核心的睡眠模式; 起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断; 解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式; 进入所述第零核心上的所述全局低功率模式; 接收所述第零核心上的所述RPM确认中断;及 释放所述自旋锁。
45.根据权利要求39所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行进一步包括以下各项的操作: 起始第零核心上的RPM消息的发送; 在RPM驱动程序中接收操作系统锁;进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务; 起始所述第一核心上的睡眠集的发送; 在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及 在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
46.根据权利要求39所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行操作,所述操作进一步包括使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一 RPM事务。
47.根据权利要求46所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行操作以使得使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务包括在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。
48.根据权利要求46所述的非暂时性计算机可读存储媒体,其中所述所存储的处理器可执行软件指令经配置以致使处理器执行操作以使得所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务包括在将资源加入到所述睡眠集时释放所述自旋锁。
49.一种计算装置, 其包括: 用于在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数的装置; 用于基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值的装置;及 用于使用所述存储器位置处的所述值来确定何时进入系统低功率配置的装置。
50.根据权利要求49所述的计算装置,其进一步包括用于在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作所述多核心计算装置的每一核心的装置。
51.根据权利要求49所述的计算装置,其进一步包括用于配置所述计算装置以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源且使得每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式的装置。
52.根据权利要求49所述的计算装置,其进一步包括: 用于基于旗标位设定识别可被置于低功率模式中的资源的装置; 用于在每个核心或全局的基础上登记时延要求的装置; 用于从所述登记的时延要求中选择最严格的时延要求的装置; 用于对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合的装置; 选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下时延要求的总时延要求;及用于通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合的装置。
53.根据权利要求52所述的计算装置,其中用于通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合的装置包括用于在对于共享模式参考计数值等于零时执行所述进入功能的装置。
54.根据权利要求52所述的计算装置,其进一步包括: 用于基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约的装置。
55.根据权利要求49所述的计算装置,其进一步包括用于在所述多核心计算装置中包含用于管理由两个或两个以上执行环境共享的资源的资源功率管理器RPM处理器的装置。
56.根据权利要求55所述的计算装置,其进一步包括: 用于通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠的装置,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。
57.根据权利要求55所述的计算装置,其进一步包括: 用于标记资源为自动失效的装置;及 用于在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效的装置。
58.根据权利要求 55所述的计算装置,其进一步包括: 用于使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集的装置。
59.根据权利要求55所述的计算装置,其中所述多核心计算装置中的每一核心具有子系统功率管理SPM硬件块,所述子系统功率管理SPM硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述装置进一步包括: 用于在RPM睡眠驱动程序中检测当前正持有自旋锁的装置; 用于忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务的装置;及 用于尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换仍不将所述睡眠集应用于所述RPM处理器上的装置。
60.根据权利要求55所述的计算装置,其进一步包括: 用于在资源功率管理器RPM驱动程序中接收在作用中上下文中的自旋锁的装置; 用于进入所述多核心计算装置的第一核心的睡眠模式的装置; 用于起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断的装置; 用于解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式的装置; 用于进入所述第零核心上的所述全局低功率模式的装置; 用于接收所述第零核心上的所述RPM确认中断的装置 '及 用于释放所述自旋锁的装置。
61.根据权利要求55所述的计算装置,其进一步包括: 用于起始第零核心上的资源功率管理器RPM消息的发送的装置; 用于在资源功率管理器RPM驱动程序中接收操作系统锁的装置; 用于进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务的装置; 用于起始所述第一核心上的睡眠集的发送的装置; 用于在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁的装置;及 用于在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心的装置。
62.根据权利要求55所述的计算装置,其进一步包括用于使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一 RPM事务的装置。
63.根据权利要求62所述的计算装置,其中用于使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务的装置包括用于在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁的装置。
64.根据权利要求62所述的计算装置,其进一步包括用于配置所述核心以使得所述多核心计算装置中的每一核心写入到睡眠集的不相交部分的装置,且其中用于使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务的装置包括用于在将资源加入到所述睡眠集时释放所述自旋锁的 装置。
【文档编号】G06F1/32GK103814342SQ201280045490
【公开日】2014年5月21日 申请日期:2012年8月31日 优先权日:2011年9月19日
【发明者】特雷西·A·厄尔默, 安德鲁·J·弗朗茨, 诺曼·S·加尔加石, 迈克尔·埃布尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1