CN103814342A - 多核心计算装置的动态睡眠 - Google Patents
多核心计算装置的动态睡眠 Download PDFInfo
- Publication number
- CN103814342A CN103814342A CN201280045490.6A CN201280045490A CN103814342A CN 103814342 A CN103814342 A CN 103814342A CN 201280045490 A CN201280045490 A CN 201280045490A CN 103814342 A CN103814342 A CN 103814342A
- Authority
- CN
- China
- Prior art keywords
- core
- rpm
- low
- power
- calculation element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000007958 sleep Effects 0.000 title claims description 297
- 238000004364 calculation method Methods 0.000 claims description 184
- 230000006870 function Effects 0.000 claims description 106
- 238000000034 method Methods 0.000 claims description 95
- 230000015654 memory Effects 0.000 claims description 85
- 230000008569 process Effects 0.000 claims description 41
- 238000003860 storage Methods 0.000 claims description 33
- 230000007423 decrease Effects 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 9
- 238000005304 joining Methods 0.000 claims description 8
- 230000008030 elimination Effects 0.000 claims description 6
- 238000003379 elimination reaction Methods 0.000 claims description 6
- 238000007599 discharging Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 22
- 230000011664 signaling Effects 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000003786 synthesis reaction Methods 0.000 description 7
- 230000002618 waking effect Effects 0.000 description 7
- 239000013078 crystal Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000005059 dormancy Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 208000022249 Sleep-Wake Transition disease Diseases 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
方面使得多核心处理器或片上系统能够取决于可接受的系统时延、动态操作条件(例如,温度)、预期闲置时间及特定装置的独特电特性而确定低功率配置,所述低功率配置通过将选定资源置于低功率模式中而提供大部分系统功率节约。以对称方式处理核心/处理单元中的每一者,且每一核心可与其它核心独立地选择其操作状态,而无需执行复杂的信号交换或发信号操作。
Description
相关申请案
本申请案主张2011年9月19日申请的题为“多核心计算装置的动态睡眠(Dynamic Sleep For Multicore Computing Devices)”的第61/536,207号美国临时申请案的优先权权益,所述申请案的全部内容特此以引用的方式并入。
背景技术
在过去的几年内,蜂窝式及无线通信技术已见证了爆炸性发展。已通过较佳通信、硬件、较大网络及更可靠协议刺激了此发展。无线服务提供者现能够向其客户提供不断扩展的一大批特征及服务,且向用户提供对信息、资源及通信的空前存取级别。为了保持与这些服务增强同步,移动电子装置(例如,蜂窝式电话、平板计算机、膝上型计算机等)变得比以前更强大和复杂。举例来说,移动电子装置现通常包含嵌入于单个衬底上的片上系统(SoC)及/或多个微处理器核心,从而允许移动装置用户在其移动装置上执行复杂且耗电量大的软件应用程序。结果,移动装置的电池寿命及功率消耗特性变为对于移动装置的消费者而言比以往更重要的考虑事项。
发明内容
各种方面包含节省多核心计算装置中的功率的方法,所述方法包含:在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数;基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及使用所述存储器位置处的所述值来确定何时进入系统低功率配置。方面方法可进一步包含:基于旗标位设定识别可被置于低功率模式中的资源;在每个核心或全局的基础上登记时延要求;从所述登记的时延要求中选择最严格的时延要求;对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合;选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下的时延要求的总时延要求;及通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。在一方面中,通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合可包含在对于共享模式参考计数值等于零时执行所述进入功能。在一方面中,所述方法可进一步包含基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。在一方面中,所述多核心计算装置的每一核心可在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。在一方面中,所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。在一方面中,所述多核心计算装置可包含用于管理由两个或两个以上执行环境共享的资源的资源功率管理器(RPM)处理器。在一方面中,所述方法可包含通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。在一方面中,所述方法进一步可包含使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一RPM事务。在一方面中,使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。在一方面中,所述多核心计算装置中的每一核心可写入到睡眠集的不相交部分,且使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在将资源加入到所述睡眠集时释放所述自旋锁。在一方面中,所述方法可包含:标记资源为自动失效;及在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。在一方面中,所述方法可包含使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。在一方面中,所述多核心计算装置中的每一核心可具有子系统功率管理(SPM)硬件块,所述子系统功率管理(SPM)硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,且所述方法可进一步包含:在RPM睡眠驱动程序中检测当前正持有自旋锁;忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。在一方面中,所述方法可包含:在RPM驱动程序中接收在作用中上下文中的自旋锁;进入所述多核心计算装置的第一核心的睡眠模式;起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断;解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式;进入所述第零核心上的所述全局低功率模式;接收所述第零核心上的所述RPM确认中断;及释放所述自旋锁。在一方面中,所述方法可包含:起始第零核心上的RPM消息的发送;在RPM驱动程序中接收操作系统锁;进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务;起始所述第一核心上的睡眠集的发送;在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
其它方面包含一种计算装置,其可包含:存储器;及一个或一个以上处理器,其耦合到所述存储器,其中所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行包括以下各者的操作:在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数;基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及使用所述存储器位置处的所述值来确定何时进入系统低功率配置。在一方面中,所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含:基于旗标位设定识别可被置于低功率模式中的资源;在每个核心或全局的基础上登记时延要求;从所述登记的时延要求中选择最严格的时延要求;对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合;选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下的时延要求的总时延要求;及通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合可包含在对于共享模式参考计数值等于零时执行所述进入功能。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置的每一核心在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置可包含用于管理由两个或两个以上执行环境共享的资源的资源功率管理器(RPM)处理器。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述处理器经配置有处理器可执行指令以执行操作可进一步包含使用自旋锁以防止一个核心开始资源功率管理器(RPM)事务而另一核心发送另一RPM事务。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在将资源加入到所述睡眠集时释放所述自旋锁。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含标记资源为自动失效;及在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作以使得所述多核心计算装置中的每一核心具有子系统功率管理(SPM)硬件块,所述子系统功率管理(SPM)硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述方法可进一步包含:在RPM睡眠驱动程序中检测当前正持有自旋锁;忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含:在RPM驱动程序中接收在作用中上下文中的自旋锁;进入所述多核心计算装置的第一核心的睡眠模式;起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断;解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式;进入所述第零核心上的所述全局低功率模式;接收所述第零核心上的所述RPM确认中断;及释放所述自旋锁。在一方面中,所述一个或一个以上处理器可经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含:起始第零核心上的RPM消息的发送;在RPM驱动程序中接收操作系统锁;进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务;起始所述第一核心上的睡眠集的发送;在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
其它方面包含非暂时性处理器可读存储媒体,其上存储有处理器可执行指令,所述处理器可执行指令经配置以致使服务器执行操作,所述操作可包含:在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数;基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值;及使用所述存储器位置处的所述值来确定何时进入系统低功率配置。在一方面中,所述一个或一个以上处理器经配置有处理器可执行指令,因此所述计算装置执行操作可进一步包含:基于旗标位设定识别可被置于低功率模式中的资源;在每个核心或全局的基础上登记时延要求;从所述登记的时延要求中选择最严格的时延要求;对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估,以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合;选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下的时延要求的总时延要求;及通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合可包含在对于共享模式参考计数值等于零时执行所述进入功能。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得所述多核心计算装置的每一核心在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源,且每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式。在一方面中,所述多核心计算装置可包含用于管理由两个或两个以上执行环境共享的资源的RPM处理器。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一RPM事务。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务可包含在将资源加入到所述睡眠集时释放所述自旋锁。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含标记资源为自动失效;及在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作以使得所述多核心计算装置中的每一核心具有子系统功率管理(SPM)硬件块,所述子系统功率管理(SPM)硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述方法可进一步包含:在RPM睡眠驱动程序中检测当前正持有自旋锁;忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务;及尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含:在RPM驱动程序中接收在作用中上下文中的自旋锁;进入所述多核心计算装置的第一核心的睡眠模式;起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断;解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式;进入所述第零核心上的所述全局低功率模式;接收所述第零核心上的所述RPM确认中断;及释放所述自旋锁。在一方面中,所述所存储的处理器可执行软件指令可经配置以致使处理器执行操作可进一步包含:起始第零核心上的RPM消息的发送;在RPM驱动程序中接收操作系统锁;进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务;起始所述第一核心上的睡眠集的发送;在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁;及在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心。
其它方面包含一种计算装置,其具有:用于在存储器中为由所述多核心计算装置的一个以上核心共享的每一低功率资源维持参考计数的装置;用于基于所述低功率资源的与所述存储器位置相关联的每一核心的功率状态及每一核心的使用量独立地调整存储于存储器中的值的装置;及用于使用所述存储器位置处的所述值来确定何时进入系统低功率配置的装置。在一方面中,所述计算装置可包含:用于基于旗标位设定识别可被置于低功率模式中的资源的装置;用于在每个核心或全局的基础上登记时延要求的装置;用于从所述登记的时延要求中选择最严格的时延要求的装置;用于对可被置于低功率模式中的每一资源的计算装置低功率模式进行评估以基于存在于所述核心上的时延限制消除具有超过所述选定最严格时延容限的组合时延要求的任何低功率资源模式或低功率资源模式的任何组合的装置;选择低功率资源模式的组合,所述组合最大化潜在功率节约且具有小于或等于所述当前核心上的选定最坏状况下的时延要求的总时延要求;及用于通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合的装置。在一方面中,所述计算装置可包含用于通过对所述所识别资源中的每一者执行所述选定低功率模式中的每一者的进入功能而进入低功率资源模式的所述选定组合的装置可包含用于在对于共享模式参考计数值等于零时执行所述进入功能的装置。在一方面中,所述计算装置可包含用于基于当前温度下每单位时间的潜在功率节约乘以所述当前核心上所预期的闲置时间的预期闲置时间确定每一评估的低功率资源模式的潜在功率节约的装置。在一方面中,所述计算装置可包含用于在不同于所述多核心计算装置中的其它核心中的一者或一者以上的操作系统的操作系统下操作所述多核心计算装置的每一核心的装置。在一方面中,所述计算装置可包括用于配置所述计算装置以使得所述多核心计算装置的至少一个核心共享将所述核心绑定到至少一个其它核心的操作的至少一个资源且使得每一核心经配置以与所述其它核心中的每一者独立地进入及离开低功率模式的装置。在一方面中,所述计算装置可包含用于在所述多核心计算装置中包含用于管理由两个或两个以上执行环境共享的资源的RPM处理器的装置。在一方面中,所述计算装置可包含用于通过存取运行线程的核心与运行闲置线程的核心之间共享的变量确定哪些核心在睡眠的装置,其中所述共享变量由每一核心在执行闲置线程的进入功能之后递增且由每一核心在执行所述闲置线程的离开功能之后递减。在一方面中,所述计算装置可包含用于使用自旋锁以防止一个核心开始RPM事务而另一核心发送另一RPM事务的装置。在一方面中,用于使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务的装置可包含用于在RPM开始操作期间及在RPM停止操作期间持有所述自旋锁的装置。在一方面中,所述多核心计算装置中的每一核心写入到睡眠集的不相交部分,且其中用于使用自旋锁以防止一个核心开始RPM事务而另一核心正发送RPM事务的装置可包含用于在将资源加入到所述睡眠集时释放所述自旋锁的装置。在一方面中,所述计算装置可包含:用于标记资源为自动失效的装置;及用于在所述RPM处理器中使与所述标记的资源相关联的睡眠集失效的装置。在一方面中,所述计算装置可包含用于使先前事务失效以使得来自所述先前事务的资源不会不合需要地进入其睡眠集的装置。在一方面中,所述多核心计算装置中的每一核心可具有子系统功率管理(SPM)硬件块,所述子系统功率管理(SPM)硬件块控制所述核心的所述功率状态且在所述核心进入其低功率模式时与所述RPM处理器进行信号交换,所述装置可进一步包含:用于在RPM睡眠驱动程序中检测当前正持有自旋锁的装置;用于忽略所述事务且不响应于检测到当前正持有所述自旋锁而发送睡眠集事务的装置;及用于尽管每一核心的所述SPM硬件块执行与所述RPM的信号交换,仍不将所述睡眠集应用于所述RPM处理器上的装置。在一方面中,所述计算装置可包含:用于在RPM驱动程序中接收在作用中上下文中的自旋锁的装置;用于进入所述多核心计算装置的第一核心的睡眠模式的装置;用于起始所述多核心计算装置的第零核心上的闲置过程同时等待RPM确认中断的装置;用于解算所述第零核心上的睡眠模式及选择进入所述第零核心的全局低功率模式的装置;用于进入所述第零核心上的所述全局低功率模式的装置;用于接收所述第零核心上的所述RPM确认中断的装置;及用于释放所述自旋锁的装置。在一方面中,所述计算装置可包含:用于起始第零核心上的RPM消息的发送的装置;用于在RPM驱动程序中接收操作系统锁的装置;用于进入所述多核心计算装置的第一核心上的睡眠模式及建立RPM事务的装置;用于起始所述第一核心上的睡眠集的发送的装置;用于在所述RPM驱动程序上从所述第一核心接收睡眠集事务请求及进行检查以确定是否持有所述操作系统锁的装置;及用于在确定持有所述操作系统锁的情况下忽略睡眠集事务请求及将中断信号发送到所述第一核心的装置。
附图说明
并入本文且构成本说明书的部分的附图说明本发明的示范性方面,且连同上文给出的一般描述和下文给出的详细描述一起用以阐释本发明的特征。
图1为在一方面中由编程节点控制以进入两个低功率模式中的一者的资源的图。
图2为适合于实施各种方面的实例片上系统的架构图。
图3为适合于实施各种方面的实例多核心处理器的架构图。
图4为说明在经配置以实施各种方面的多核心处理器中的各种全局及局部组件的架构图。
图5到9为用于执行多核心睡眠及选择低功率模式的最优集合的方面方法的过程流程图。
图10为在一方面中适合于使用的移动装置的组件框图。
具体实施方式
将参考附图详细描述各种方面。只要可能,将在整个图式中使用相同的参考标号来指代相同或相似的部分。对具体实例和实施方案做出的参考是出于说明性目的,且不希望限制本发明或权利要求书的范围。
词“示范性”在本文中用以意谓“充当实例、例项或说明”。本文中描述为“示范性”的任何实施方案不一定要解释为相比其它实施方案优选或有利。
术语“移动装置”及“计算装置”在本文中可互换地使用以指代以下各者中的任一者或全部:蜂窝式电话、膝上型计算机、个人数据助理(PDA)、掌上计算机、无线电子邮件接收器(例如,及装置)、具备多媒体因特网功能的蜂窝式电话(例如,Blackberry)、全球定位系统(GPS)接收器、无线游戏控制器及包含可编程处理器且在电池供电下操作以使得功率节省方法有益处的类似个人电子装置。
术语“片上系统”(SOC)在本文中用以指代含有集成于单个衬底上的多个资源及处理器的单个集成电路(IC)芯片。单个SOC可含有用于数字、模拟、混合信号及射频功能的电路。单个SOC还可包含任何数目个通用及/或专用处理器(DSP、调制解调器处理器、视频处理器等)、存储块(例如,ROM、RAM、闪存等)及资源(例如,计时器、调压器、振荡器等)。SOC还可包含用于控制集成资源及处理器以及用于控制外围装置的软件。
术语“多核心处理器”在本文中用以指代含有经配置以读取及执行程序指令的两个或两个以上独立处理核心(例如,CPU核心)的单个集成电路(IC)芯片或芯片封装。SOC可包含多个多核心处理器,且SOC中的每一处理器可被称作核心。
术语“资源”在本文中用以指代用以支持运行于计算装置上的处理器及客户端的各种各样电路(例如,端口、时钟、总线、振荡器等)、组件(例如,存储器)、信号(例如,时钟信号)及电压(例如,电压轨)中的任一者。移动计算装置通常可包含多个资源,例如晶体振荡器、电压轨、一个或一个以上存储器单元、通信总线等。
多核心处理器系统及SOC中的资源可局部于特定核心,在核心的子集当中共享,或在所有核心当中共享。如本文中所使用,术语“全局资源”指代在装置、芯片、处理器、群组等的所有核心当中共享的资源。
为了清楚起见,使用节点功率架构(NPA)及相关术语来描述各种方面方法。然而,应理解,与NPA节点相关的实例及对NPA节点或NPA方法的其它参考在本文中是仅出于说明目的。因此,权利要求书的范围不应被解释为需要NPA节点或NPA过程,除非权利要求书中特别如此叙述。
为了最大化电池寿命,移动装置可经配置以只要有可能就将一个或一个以上装置资源置于低功率状态中,例如在处理器在闲置状态中时。将装置资源置于低功率状态中通常由每当处理器不积极地处理任务时断开或减少资源的操作组成。某些资源对于恰当操作而言是基本的及/或由其它组件使用且在处理器闲置时无法关闭或被置于低功率状态中。为了清楚起见,在处理器不处理任务及/或在闲置状态中时可关闭或被置于一个或一个以上低功率状态中的资源在本文中被称作低功率资源(LPR)。可在给定闲置状态中启动、启用、撤销启动及/或停用多个LPR。每一LPR可具有多个低功率模式(闲置、主动睡眠、睡眠、深度睡眠等),所述低功率模式在本文中被称作低功率资源模式(LPRM)。每一资源可定义LPRM特性数据,其包含由处理器使用以用于针对给定状态选择LPRM的最优集合的信息。此信息可包含以下列表:资源的每一可用LPRM、随时间而变或每单位时间的每一LPRM的潜在功率节约、每一LPRM的时延特性(即,离开低功率模式的时间)、温度对潜在功率节约的影响、相关性(即,与客户端其它资源的相互关系),及可与选择每一资源的最优LPRM相关的其它信息。
总体“系统低功率配置”为针对可用于基于当前操作状态及条件进入低功率模式的资源中的每一者选择的低功率模式的集合。
在2010年10月10日申请的题为“用于计算装置的动态低功率模式实施方案(Dynamic Low Power Mode Implementation For Computing Devices)”的第12/965,008号美国专利申请案中揭示用于动态地计算及选择低功率模式的方法及系统,所述申请案的全部内容特此以引用的方式并入。简要来说,装置可通过识别可停用的资源以及在装置低功率配置期间应保持开着的资源来选择一个或一个以上低功率资源模式(LPRM)。装置处理器可通过确定在处理器进入闲置状态时哪些资源的低功率资源模式有效,通过在给定当前装置条件情况下的预期功率节约排列有效低功率资源模式,确定哪些有效低功率资源模式提供最大功率节约同时满足时延要求及选择要进入的每一资源的特定低功率资源模式来计算最优系统低功率配置(其由低功率资源模式的集合组成)。
资源可指示其何时可用于通过启用低功率模式掩码(“LPM掩码”)内的旗标位而进入低功率状态。当处理器准备好进入系统低功率模式时,低功率任务可存取LPM掩码以识别可被置于低功率状态中的资源及基于给定动态系统状态(例如,当前作用中客户端、所需要时延、所预期的闲置时间及温度)确定所述资源要进入的适当LPRM。
在一方面中,当处理器能够进入闲置状态时,低功率任务可运行“解算机”过程来确定应进入各种资源的哪些低功率模式。在此类状况下,可需要收集不同资源的低功率模式及所述低功率模式的特性以供当是时候进入闲置状态时评估的睡眠任务使用。此情形可通过“/sleep/lpr”NPA节点实施于节点功率架构(NPA)中。
可使对“/sleep/lpr”的请求呈启用低功率资源模式的位掩码的形式。开发者可通过sleep_define_lpr()功能向“/sleep/lpr”NPA节点登记低功率资源模式,sleep_define_lpr()功能使低功率资源模式(及其资源低功率模式位掩码)加入。可在任何时间查询表示其有意启用/停用的资源低功率资源模式的位掩码的“/sleep/lpr”NPA节点。NPA资源还可通过使用正确的位掩码进行到“/sleep/lpr”中的请求来请求在闲置时间启用其资源低功率资源模式。睡眠解算机接着可针对低功率资源模式的列表及当前启用哪些低功率资源模式的掩码查询在闲置时间的“/sleep/lpr”。
如上文所论述,当处理器能够进入闲置状态时,低功率任务可运行“解算机”过程来确定应进入各种资源的哪些低功率资源模式。此情形的实例说明于图1中,图1说明节点功率架构(NPA)2内的处理器(即,节点)如何确定对于资源(晶体振荡器4)而言可进入可用低功率模式6、8中的哪一者。在图1中所说明的实例中,晶体振荡器资源4具有两个交替低功率资源模式(LPRM),即门控操作状态6及彻底关机8。可通过调用“进入”功能而进入选定LPRM,“进入”功能将资源置于功率节约状态中。在处理器闲置时,处理器可执行等待中断(WFI)过程及/或闲置过程。处理器及选定资源可保持为此状态直到唤醒事件发生。当唤醒事件发生时,可针对每一选定资源调用“离开”功能以将所述资源返回到所要操作状态(例如,正常或满功率状态)。
虽然上文提及的用于动态计算及选择低功率模式的过程对于传统计算装置而言是有效的,但现代移动装置正变得比以往更复杂且装置处理器所使用或管理的资源数目每年都在增加。举例来说,许多移动计算装置现包含多个晶体振荡器、多个电压轨及多个存储器位置,其中的每一者可独立地来控制。因此,存在移动装置处理器可关闭或置于低功率模式中以便节省功率的许多不同资源。此外,现代移动装置可具有使用各种装置资源及执行不同任务(且因此可不同时闲置)的多个处理器/核心。多个处理器/核心的存在将额外程度的复杂性加入到低功率模式的管理,且在选择待置于低功率模式中的资源时必须实行一定程度的执行控制。
一般来说,选择哪些资源置于各种低功率模式中被称作“睡眠问题”。举例来说,如果断电且将资源返回到其所需要的操作状态所需要的功率大于通过使资源在处理器闲置状态的估计持续时间内处于低功率模式而节约的功率,那么移动装置的电池寿命可不通过每当处理器闲置时简单地关闭资源及/或将资源置于低功率状态中而最大化。因此,确定哪些资源应关闭及/或被置于低功率模式中(及针对所述资源应选择哪些低功率模式)通常需要分析处理器状态、其它装置处理器的状态及其它因素,例如时延、功率节约潜能、功率消耗及资源/处理器的相互关系。
图2为说明可用以实施各种方面的实例片上系统(SOC)200架构的架构图。SOC200可包含数个异构处理器,例如数字信号处理器(DSP)202、调制解调器处理器204、图形处理器206及应用程序处理器208,所述处理器中的每一者可包含一个或一个以上核心。SOC还可包含连接到处理器中的一者或一者以上的一个或一个以上协处理器(例如,向量协处理器)210。每一处理器可包含一个或一个以上核心,且每一处理器/核心可执行独立于其它处理器/核心的操作。举例来说,SOC200可包含执行基于UNIX操作系统(例如,FreeBSD、LINUX、OS X等)的处理器及执行基于windows操作系统(例如,Microsoft Windows7)的处理器。
SOC200还可包含模拟电路及定制电路214,其用于管理传感器数据、模/数转换、无线数据传输及用于执行其它专用操作,例如处理游戏及电影的经编码音频信号。SOC可进一步包含系统组件及资源216,例如调压器、振荡器、锁相回路、外围桥接器、数据控制器、存储器控制器、系统控制器、存取端口、计时器及用以支持处理器及运行于计算装置上的客户端的其它类似组件。
系统组件216及定制电路214可包含与外围装置(例如,相机、电子显示器、无线通信单元、外部存储器芯片等)介接的电路。处理器202、204、206、208可通过互连/总线模块互连到一个或一个以上存储器元件212、系统组件及资源216及定制电路214,互连/总线模块可包含可配置逻辑门阵列及/或实施总线架构(例如,CoreConnect、AMBA等)。
图3为说明可用以实施各种方面的实例多核心处理器架构的架构图。如上文所提及,多核心处理器302可包含很靠近的两个或两个以上独立处理核心304、306(例如,在单个衬底、裸片、集成芯片等上)。处理器/核心的靠近允许存储器以比在信号必须行进到芯片外的情况下可能的频率/时钟速率高得多的频率/时钟速率操作。此外,核心的靠近允许共享芯片上存储器及资源,以及允许核心之间的更协调合作。
多核心处理器302可包含多级高速缓冲存储器,多级高速缓冲存储器包含1级(L1)高速缓冲存储器312、314及2级(L2)高速缓冲存储器316。多核心处理器302还可包含总线/互连接口318、主存储器320及输入/输出模块322。L2高速缓冲存储器316可大于(及慢于)L1高速缓冲存储器312、314,但小于(及实质上快于)主存储器单元320。每一处理核心304、306可包含处理单元308、310,处理单元308、310具有对L1高速缓冲存储器312、314的私密存取及对L2高速缓冲存储器316的共享存取。L1及L2高速缓冲存储器312、314可用以存储频繁由处理单元308、310存取的数据。主存储器320可用以存储由处理核心304、306存取的较大文件及数据单元。
多核心处理器302可经配置以使得处理核心304、306按次序寻求来自存储器的数据,首先查询L1高速缓冲存储器,接着是L2高速缓冲存储器,且如果信息不存储于高速缓冲存储器中,那么接着是主存储器。如果信息不存储于高速缓冲存储器或主存储器320中,那么。多核心处理器302可寻求来自外部存储器/硬盘324的信息。
处理核心304、306可彼此等同,异构及/或实施不同功能。因此,处理核心304、306核心不需要对称,从操作系统角度(例如,可执行不同操作系统)或从硬件角度(例如,可实施不同指令集及/或架构)。
处理核心304、306可通过总线/互连线318彼此通信。每一处理核心304、306可具有对一些资源的互斥控制且与其它核心共享其它资源。单个芯片上包含多个核心及在核心之间共享存储器及资源引起数个功率及温度管理问题,所述功率及温度管理问题使对睡眠问题的解决方案及最优低功率资源配置的选择复杂化。
如上文所论述,为了节省电池寿命,每一资源可具有资源可被置于的低功率模式(LPRM)的集合。在SOC及多核心处理器系统中,处理单元/核心中的每一者可在不同操作系统下操作,且核心可具有不同的约束集合、工作负载及其经预期进入及离开低功率/睡眠模式的不同时间(即,每一核心可被要求独立地进入及离开睡眠模式)。处理单元/核心中的每一者还可共享将其绑定到其它核心的操作/状态的资源。举例来说,多核心处理器/SOC可具有理论上可独立地进入低功率/睡眠模式但绑定到根晶体振荡器的操作的四个核心,所述根晶体振荡器无法关机除非所有核心处于低功率模式。此情形要求在核心可进入及/或离开低功率模式之前核心之间的许多显式信号交换、锁定或直接发信号。这些因素使包含SOC及/或多核心处理器的系统中的最优低功率资源配置的选择复杂化。
现有多核心/SOC睡眠实施方案做得并不好,且不允许选择最优总体低功率资源模式配置。如上文所提及,核心/处理单元必须在系统可进入全局低功率模式之前执行复杂锁定及同步操作,且随着核心/处理单元的数目增加(8、16、32等)而出现显著瓶颈。此外,用于管理多核心处理器系统中的处理器/核心闲置状态的现有解决方案通常取决于所使用操作系统的类型。举例来说,一些操作系统(例如,LINUX等)可经配置以通过驻留于睡眠过程之上且显式地关闭其它核心/资源(在睡眠过程之外)的过程控制多核心睡眠操作,以使得在其想要做最后的睡眠(例如,所有核心处于睡眠模式)时,所有操作被向下投送到零核心。此情形有效地允许多核心系统以类似于单个核心解决方案的方式管理资源/多个核心(零核心负责所有其它核心)。
其它操作系统(例如,Microsoft Windows等)可经配置以使得当不同核心准备好进入睡眠模式时,所述核心阻塞并等待上一核心操作失灵。此解决方案导致核心运行于较低功率状态中,但不在最低系统功率状态中,直到所有全局资源及核心闲置为止。
各种方面不要求零核心监视其它核心,不要求驻留于睡眠过程之上的过程监视核心(例如,LINUX等),且不要求核心阻塞并等待直到所有全局资源闲置为止。不同于现有解决方案,各种方面允许以对称方式来处理多核心处理器/SOC中的所有核心/处理单元。每一核心可通过监视参考计数与其它核心独立地选择其操作状态。
如上文所提及,在SOC/多核心处理器中,每一处理器/核心可在不同操作系统下操作,且每一核心/处理器可具有不同的约束集合、工作负载及其经预期进入及离开低功率/睡眠模式的不同时间(即,每一核心可被要求独立地进入及离开睡眠模式),且同时共享将其绑定到其它核心的操作/状态的资源。因此,当在多核心环境中执行动态睡眠操作时,必须进行特别的考虑以便在各种核心之间共享数据,且协调将共享资源置成其低功率模式,这通常要求在所述核心可进入及/或离开低功率模式之前所述核心之间的显式信号交换、锁定或直接发信号。各种方面修改核心选择低功率模式,识别可停用的资源及识别在装置低功率配置期间应保持开着的资源的方式。各种方面还允许多核心系统通过以如下方式局部地(即,针对特定核心)或全局地(即,针对所有核心)设定约束有效地执行这些操作:允许离散地处置离散资源及横跨核心共享全局资源,皆不需要在进入系统低功率模式之前核心之间的任何显式信号交换、锁定或直接发信号。
图4为说明根据各种方面实施的多核心处理器系统400中的实例流程的组件流程图。多核心处理器系统400可包含两个或两个以上独立处理核心404、406,所述处理核心中的每一者可与其它核心独立地被置于睡眠/低功率模式中。多核心处理器系统400还可包含中断模块416,所述中断模块经配置以向核心404、406中的一者或一者以上发射中断,这可致使核心从睡眠状态/低功率模式中唤醒。
多核心处理器系统400还可包含数个资源438、440、452。一些资源(例如,局部资源438、440)可在每个核心的基础上来控制,且被视为局部于每一核心(即,核心轨的功率降级)。其它资源(例如,共享资源454)可由一个或一个以上核心共享且需要在进入其LPRM之前在所有核心之间的协调。
每一处理器核心404、406可具有核心计时器412、414及子系统功率管理(SPM)硬件块408、410。SPM硬件块408、410可控制其相应核心的功率状态以使得核心可进入低功率模式同时维持快速重新开始处理操作的能力。
每一核心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)实施方案中的节点。
客户端应用程序可向局部时延节点430、432登记,以致使特定核心兑现时延约束。如果客户端应用程序不知道其中断将向哪一核心发射,那么客户端应用程序可向全局时延模块434登记。在一方面中,中断时延可经计算为中断发射到执行中断服务例程(ISR)的时间之间的时间量。
在一方面中,多核心处理器系统400可包含用于管理由系统中的一个以上执行环境(或“主控器”)共享的资源的资源功率管理器(RPM)450处理器。
在一方面中,资源功率管理器(RPM)450可在兑现睡眠请求之前等待来自每一核心的子系统功率管理(SPM)硬件块408、410的信号交换。
唤醒模块426、428、436可经配置以启用客户端应用程序,以将关于未通过计时器子系统调度的预期唤醒中断的输入提供给睡眠子系统。此情形可允许睡眠过程在知道何时预期发射中断及将系统唤醒的情况下最优化低功率模式的选择。客户端应用程序可向局部唤醒模块426、428登记,以指示特定核心上的唤醒事件。如果客户端应用程序不知道其中断将向哪一核心发射,那么客户端应用程序可向全局唤醒模块436登记。
每一核心404、406可经配置以独立地确定是否兑现局部及/或全局唤醒输入及/或时延约束,核心可基于休眠模块422、424资源的存在及/或状态来确定局部及/或全局唤醒输入及/或时延约束。
在一方面中,休眠模块422、424可包含在每一相应核心上的节点功率架构(NPA)资源,所述NPA资源允许操作系统(或MP-DCVS子系统)指示核心是“在作用中”还是“在休眠”。
作用中状态可指示操作系统正积极地调度核心上的线程,且应兑现局部及全局时延两者及唤醒约束。
休眠状态可指示操作系统并未积极地调度核心上的线程,且将仅兑现局部时延及唤醒限制(即,可忽略全局时延及唤醒约束)。
在一方面中,多核心处理器系统400可经配置以使得当核心处于作用中状态时,操作系统兑现局部及全局时延两者及/或唤醒限制,且当核心处于休眠状态时,操作系统仅兑现局部时延及唤醒限制。
在一方面中,操作系统可经配置以将所有中断投送到个别核心(例如,核心0),且多核心处理器系统可经配置以使得仅个别核心(即,核心0)兑现全局唤醒/时延约束。在此类方面中,全局唤醒/时延模块可以是核心(核心0)的局部唤醒/时延模块(例如,唤醒模块426、时延模块430)的别名。
在一方面中,在核心中没有休眠模块(例如,模块422、424)致使核心在作用中状态中操作。
在一方面中,休眠模块422、424可默认处于作用中状态。
在一方面中,休眠模块422、424可经配置以识别第三状态(例如,闲置状态),其指示操作系统并未积极地调度核心上的线程,但对应于核心应兑现的经登记时延及唤醒约束的中断可被投送到核心。举例来说,执行于核心上的操作系统可定义“休眠状态”以使得核心可具有在休眠时被投送到核心的中断(即,并未调度核心上的线程)。在此类状况下,中断子系统(例如,中断模块416)可经配置以通知休眠模块422、424核心处于闲置状态且核心应兑现全局时延及唤醒约束。
在各种方面中,可存在与能直接查询的计时器子系统相关联的已知唤醒事件。各种方面还可包含唤醒资源,其允许客户端“暗示”其相信唤醒事件将在特定的时间量中发生。
在各种方面中,系统可包含预测及/或控制资源及/或核心可能在给定睡眠状态中保持多久的机制。在这些方面中,处理器可推迟某些事件以控制资源可预期睡眠多久。在各种方面中,可存在强制唤醒资源的硬性唤醒点。在各种方面中,系统可使用来自资源的“暗示”以确定预期唤醒时间帧。
各种方面可实施预测性算法,所述预测性算法可由处理器使用以估计最有效的唤醒时间。
各种方面可使用硬性限制、暗示及学习机制的组合来确定预期唤醒时间。
各种方面可使用预期唤醒时间来确定在将资源置于低功率资源模式中直到所确定预期唤醒时间为止的情况下将节约多少功率。此类预期功率节约接着可用于选择特定资源置于低功率模式中(即,选择低功率资源模式)以在即将到来的睡眠循环内在系统低功率模式配置中实施的过程中。
在一方面中,可查询唤醒模块426、428、436以识别直到下一经调度唤醒为止剩余的时间量(例如,直到“硬性唤醒”为止的持续时间)。全局唤醒模块436可返回进行请求的核心的持续时间,且核心特定唤醒模块426、428可返回其代表的核心的持续时间。
在一方面中,替代查询通过唤醒节点的经调度唤醒(例如,硬性唤醒),可将经调度唤醒信息传递到睡眠任务以用于处理。举例来说,高级操作系统(HLOS)可将闲置的特定核心的硬性唤醒持续时间传递到睡眠任务以用于处理。
在一方面中,睡眠子系统可包含由所有核心共享的库。在闲置线程的上下文内或在另一线程的上下文内,多个核心可同时读取及/或修改共享数据(例如,睡眠子系统库)。
如上文所提及,由处理器使用的一些资源可在每个核心的基础上来控制且因此局部于每一核心(即,核心轨的功率降级),而其它资源可由一个或一个以上核心共享。因为资源可为全局的(例如,由一个以上核心共享),所以核心进入睡眠模式或在允许资源进入其低功率模式之前可需要核心之间的协调。在一方面中,多核心处理器系统400可包含动态睡眠框架,动态睡眠框架提供核心之间的协调,且辅助选择每一核心的低功率模式。动态睡眠框架可识别每一低功率资源(LPR)所应用于的核心。
可添加栏位到睡眠结构452,所述栏位识别特定核心与低功率资源之间的关系。资源可为局部的,在核心的子集当中共享,或在所有核心当中共享(全局)。举例来说,如果资源应用于一个以上核心(即,LPRM为全局的),那么核心可存取存储于共享存储器中的参考计数以确定是否可将资源/核心置于低功率模式中。如果资源仅应用于特定核心(即,LPRM为局部的),那么资源所应用于的核心可将所述资源置成其低功率模式而不需要参考计数。
为了选择特定核心的睡眠集,可使动态睡眠框架注意到特定LPR应用于哪一(哪些)核心。此情形可通过查询sleep_lpr节点452的添加栏位以识别LPR所应用于的特定核心来实现。添加栏位可包含数个位,每一位对应于特定核心(即,位零可对应于核心0,位1对应于核心1等)。如果设定位中的任一者,那么LPR可经识别为仅应用于由所设定位识别的核心。如果不设定位,或如果设定所有位,那么LPR可被当作在所有核心当中共享(即,LPR为全局的)。
在一方面中,睡眠子系统可产生合成模式,其表示向睡眠子系统登记的组件模式的有效组合。合成模式可基于组件模式中给出的相关性、时延、排序及功率节约信息而产生。
在一方面中,每一核心可包含启用列表,在启用及停用LPRM时由睡眠框架即时地修整所述启用列表。每当某一核心闲置且请求启用模式列表时,睡眠登记可返回请求核心的列表。举例来说,如果以下LPRM存在于系统中,那么:
每一核心的合成模式列表可为(隐含相关性):
应注意,合成模式不需要作为各种方面的部分,且因此合成模式的此描述不应以任何方式限制权利要求书的范围,除非权利要求书特别地叙述。
在启用或停用LPRM中的每一者时,睡眠登记可修整每一核心的启用列表以使得启用列表总是反映所述核心的启用模式的当前列表。举例来说,如果核心0停用cpu_vdd0.off,那么cpu_vdd1.off仍可由核心1进入,且睡眠登记可修整每一核心的启用列表以反映此模式。
在一方面中,当启用合成模式中的所有组件模式时,可启用整个合成模式且使其为睡眠的候选。
在一方面中,如果解算机选择进入局部(非共享)LPRM,那么可在不与其它核心协调的情况下进入LPRM,且可无条件地执行局部LPRM的进入功能。
图5说明可由多核心处理器系统实施以协调不同核心的“进入”及“离开”功能且识别及进入系统低功率配置的方面方法500。多核心处理器系统可包含用于参考计数共享模式的与资源低功率资源模式(LPRM)相关联的一个或一个以上存储器位置。如上文所论述,由多核心处理器系统使用的资源可为局部的(在每个核心的基础上来控制)或共享的(由一个以上核心使用)。在图5的所说明实例中,LPRM a局部于核心0,LPRMb局部于核心1,且LPRM c、d及e由所有核心共享。
在块502及504中,多核心处理器的核心0及核心1正在运行且使用/驱动局部及全局资源。在块506中,核心0可进入闲置状态,且起始解算机过程的执行以“解算”睡眠模式。如上文所论述,当处理器准备好进入系统低功率模式时,例如当核心处于闲置状态时,低功率任务(例如,“解算机”任务/过程)可存取低功率模式掩码以识别可被置于低功率状态中的资源且基于给定动态系统状态(例如,当前作用中客户端、所需要时延、预期闲置时间及温度)确定所述资源要进入的适当低功率资源模式。即,当核心能够进入闲置状态时,低功率任务可运行“解算机”过程来确定应进入各种资源的哪些低功率模式。此外,为了允许任何核心为第一个操作失灵的且任何核心为最后出现的,每一核心可既局部地又全局地“解算”其可进入的模式的整个集合。举例来说,在块506中,核心0可执行将模式a、c及d识别为可用低功率模式且选择局部模式a及全局模式c及d的操作。
对于所选择的每一模式,可调用模式的进入功能及离开功能。在一方面中,对于在核心当中共享的模式(例如,LPRM c、d及e),可仅在共享所述模式的每一核心已选择进入所述模式时执行进入功能及离开功能的内容。此情形可通过保持与每一LPRM相关联的计数来实现,所述计数表示已进入及离开LPRM多少次。计数可以共享LPRM的运行核心的数目开始。在图5的所说明实例中,多核心处理器包含两个核心(核心0、核心1),且因此全局LPRM c、d及e中的每一者具有初始值2(模式c=2,模式d=2,模式e=2)。每次调用LPRM进入功能时,可原子地递减计数。举例来说,在块508中,核心0可递减与全局LPRM c(例如,LPRM c递减到1)及全局LPRM d(例如,模式d递减到1)相关联的值。当全局LPRM存储器位置上的计数达到零时,可执行所述LPRM的进入功能。同样,当核心唤醒时,所述核心调用LPRM离开功能,且可原子地递增计数。离开功能可在计数从零转变到一时开始执行内容(例如,离开任务)。
在一方面中,睡眠任务可对选择LPRM的每一核心执行进入及离开功能。计数操纵及是否执行进入功能及离开功能的决策可由LPRM控制,在一方面中,LPRM的拥有者可在核心之间协调所述LPRM的进入及离开。取决于LPRM的要求,LPRM可自旋锁或使用用于在核心之间协调的其它机制。
在一方面中,如果解算机任务选择进入局部(非共享)LPRM,那么多核心处理器系统可假定可在不与其它核心协调的情况下进入所述LPRM,且可无条件地执行局部LPRM的进入功能。举例来说,在块508中,可在不与核心1协调的情况下进入局部LPRM a。然而,在块508中未进入全局LPRM c及d,这是因为对应于全局LPRM c及d的存储器位置含有非零值(模式c存储器=1,模式d存储器=1)。
在块510中,核心1可闲置,且执行将LPRM b、d及e识别为可用低功率模式的操作。而且,在块510中,核心1可既局部地(例如,LPRM b)又全局地(例如,LPRMd及e)“解算”其可进入的模式的整个集合。如上文所论述,解算可进入的模式的整个集合允许任何核心为第一个操作失灵的且任何核心为最后出现的。
在块512中,核心1可进入局部LPRM b,递减全局LPRM d的值(例如,LPRM d递减到零)且递减全局LPRM e的值(例如,LPRM e递减到1)。如上文所提及,通过保持表示已进入及离开LPRM多少次的与每一全局LPRM(例如,LPRM c、d及e)相关联的计数,多核心处理器系统可确保仅在共享所述模式的每一核心已选择进入所述模式时执行进入功能及离开功能的内容。
在块514中,核心0及核心1两者可进入睡眠模式及发送睡眠集。因为对应于全局模式d的存储器位置含有零值,所以可在块512中进入全局LPRM d。
在块516中,核心0可检测唤醒事件(例如,中断)。在块518中,核心0可通过离开局部LPRM a及递增对应于全局LPRM c及d的存储器位置的值(例如,LPRM c递增到2,LPRM d递增到1)而离开睡眠模式。因为对应于LPRM d的存储器位置的值不再含有零值(LPRM d=1),所以核心0还可执行全局LPRM d的离开功能的内容。
如上文所提及,各种方面启用待由一个核心(例如,核心1)进入及由另一核心(例如,核心0)离开的全局LPRM。应注意,LPRM d由核心1进入(在块512中)且由核心0离开(在块518中)。
在块520中,核心0可再次闲置,“解算”局部LPRM a及进入局部LPRM a(例如,起始局部LPRM a的进入功能的执行)而不与核心1协调。在块522中,核心0可进入睡眠模式,且发送睡眠集以使得并未进入全局模式(例如,模式c、d及e)中的任一者。
在块526中,可在核心1上检测唤醒事件(例如,在核心1上检测中断)。在块528中,多核心处理器可通过离开局部模式b及递增对应于全局模式d及e的存储器位置的值(例如,模式d递增到2,例如模式e递增到2)而离开睡眠模式。
在各种方面中,多核心处理器系统可经配置以兑现约束。即,当核心闲置且选择其低功率模式时,存在必须满足以便闲置处理对系统的其余部分透明的某些约束。可在运行时间聚集这些约束,且在核心闲置时将其馈送到睡眠代码中。在任何特定点,在某一约束集合的情况下一个核心可闲置,而另一核心被唤醒且运行修改所述约束的线程。
在一些状况下,可以使得在睡眠的核心已进入现对于新约束而言并非最优的模式集合的方式修改约束,例如在时延预算增加或启用LPRM的情况下。在此状况下,作为优化可唤醒睡眠核心。在其它状况下,可修改约束以使得在睡眠的核心已进入违反新约束的模式集合,例如在时延预算减少或停用LPRM的情况下。在此状况下,可唤醒睡眠核心以便获得正确系统行为。
为了确定哪些核心在睡眠,指示核心是否在睡眠的每一核心的变量可在运行的线程与闲置的线程之间共享。此变量可由所述核心在其进入闲置线程时递增,且在其离开闲置线程时递减。
在一方面中,可基于所存储的数据类型及/或存取数据的方式保护共享数据。多核心处理器系统可实施自旋锁、操作系统(OS)锁或保护及同步对数据的存取的处理器特定原子指令。多核心处理器系统还可执行操作以使得读取共享数据的线程以无等待方式进行所述操作,且同步仅在修改数据时为必要的。
如上文参考图4所论述,在一方面中,多核心处理器系统可包含用于管理由系统中的一个以上执行环境(或“主控器”)共享的资源的资源功率管理器(RPM)处理器。每一主控器可产生主控器将可能置成其低功率模式的资源的“睡眠集”。睡眠集可包含事务,所述事务含有多个RPM管理资源及每一资源的所要状态值。在RPM上,此可转化成对所述主控器的“表决”。在一方面中,所有主控器表决中仅聚集状态为资源所兑现的最后状态。多核心环境可具有仅由睡眠代码调用的RPM睡眠驱动程序及睡眠运行于其中的过程。系统还可包含RPM作用中模式驱动程序,其由将RPM消息发送到睡眠上下文之外的过程调用。当RPM驱动程序在睡眠上下文中运行于多核心环境中时,必须进行特别的考虑以确保恰当地建立睡眠事务,当不需要时不进入睡眠集,及与作用中模式RPM消息的协调处于适当位置。
可关于可包含RPM睡眠驱动程序的多核心环境作出以下假设:每一核心具有SPM硬件块,所述SPM硬件块控制所述核心的功率状态且在核心进入其低功率模式时与RPM进行信号交换;应用程序处理器作为一个整体为一个PRM主控器(而非每一核心一个主控器),且因此存在用于应用程序处理器的一个睡眠集;RPM在兑现应用程序睡眠集之前等待来自每一核心的SPM的信号交换;以使得睡眠代码首先调用RPM开始功能以开始事务接着进行后续调用以将资源加入到睡眠集且接着调用RPM发送功能以发送事务的方式使用RPM睡眠驱动程序。
如上文所提及,可仅由上一核心进入每一LPRM一次以调用“进入”功能。然而,存在多个核心可同时调用其进入功能及共享产生睡眠集的最后RPM事务的责任的可能性。因为两个核心可使用相同RPM句柄操纵事务,所以所述两个核心可共享事务,且可由任何核心开始、修改或发送事务。为了防止一个核心试图在另一核心正发送RPM事务时开始RPM事务,可使用睡眠自旋锁。可仅围绕RPM开始及RPM发送持有自旋锁。当将资源加入到睡眠集时可不持有自旋锁,因为其假定每一核心将写入到睡眠集的不相交部分。
图6说明多核心处理器系统协调事务的交错建立的方面方法600。多核心处理器系统可包含与不同资源低功率资源模式(LPRM)中的每一者相关联的一个或一个以上寄存器/存储器位置,以及与rpm.start及rpm.send操作相关联的寄存器/存储器位置。在图6的所说明实例中,全局LPRM c及d由所有核心(例如,核心0及核心1)共享。
在块602及604中,多核心处理器的核心0及核心1处于运行状态且使用/驱动全局资源。在块606中,核心0可闲置,且执行操作以“解算”睡眠模式(例如,运行“解算机”任务/过程以确定应进入各种资源的哪些低功率模式)。作为此过程的部分,在块606中,核心0可执行将模式c及d识别为可用低功率模式及选择进入全局模式c及d的操作。
如上文所论述,多核心处理器系统可维持与每一LPRM相关联的计数,所述计数表示已进入及离开LPRM多少次。计数最初可含有对应于共享LPRM的运行核心的数目的值。在图6的所说明实例中,因为两个核心(即,核心0及核心1)共享全局LPRMc及d,所以与LPRM c及d相关联的存储器位置各自以值2开始(LPRM c=2,LPRMd=2)。同样,与rpm.start及rpm.send功能相关联的存储器位置可存储值2(rpm.start=2,rpm.send=2)。
在块608中,核心0可进入rpm.start功能且递减存储于存储器位置处及/或在与rpm.start功能相关联的变量中的值(rpm.start=1)。因为与rpm.start功能相关联的存储器位置含有非零值,所以核心0并不起始RPM事务的开始。
在块610中,核心1可进入闲置状态,解算睡眠模式且选择模式c及d。在块612中,核心1可进入rpm.start功能且递减由与rpm.start功能相关联的存储器位置存储的值(rpm.start=0)。因为与rpm.start功能相关联的存储器位置存储从一转变到零(即,现含有零值)的值,所以核心1可起始RPM事务的开始。
在块614中,核心1可进入全局LPRM c且递减由与LPRM c相关联的存储器位置存储的值(LPRM c=1)。因为与LPRM c相关联的存储器位置含有非零值,所以在块614中,核心1不将LPRM c加入到睡眠集。
在块616中,核心0可进入全局LPRM c,递减由与LPRM c相关联的存储器位置存储的值(LPRM c=0)。因为由与LPRM c相关联的存储器位置存储的值现含有零值,所以核心0可将LPRM c加入到睡眠集。即,在块616中,核心0将全局LPRM c加入到由核心1开始的睡眠集事务。
在块618中,核心0可进入全局LPRM d且递减由与LPRM d相关联的存储器位置存储的值(LPRM d=1)。因为与LPRM d相关联的存储器位置含有非零值,所以在块618中,核心0不将LPRM d加入到睡眠集。
在块620中,核心1可进入全局LPRM d且递减由与LPRM d相关联的存储器位置存储的值(LPRM d=0)。因为由与LPRM d转变相关联的存储器位置存储的值现含有零值,所以在块620中,核心1将LPRM d加入到睡眠集。
在块622中,核心1可进入rpm.send且递减由与rpm.send功能相关联的存储器位置存储的值(rpm.send=1)。因为与rpm.send功能相关联的存储器位置含有非零值,所以核心1不发送RPM事务。在块624中,核心0可进入rpm.send且递减由与rpm.send功能相关联的存储器位置存储的值(rpm.send=0)。因为由与rpm.send功能相关联的存储器位置存储的值从一转变到零(即,现含有零值),所以核心0可发送RPM事务。因此,在块624中,核心0发送核心1所开始的睡眠集事务。
在块626中,两个核心可皆处于睡眠模式,可发送睡眠集,且可进入全局LPRM c及d。
如上文所提及,存在一个核心可唤醒及修改事务或低功率模式的集合而另一核心正忙于建立睡眠集事务的可能性。在此状况下,被唤醒的核心可在另一核心已发送其事务之前开始新的事务。如果此情形发生,那么RPM驱动程序可取消第一事务且仅兑现第二事务。
图7说明用于发送重叠RPM事务及在发送重叠RPM事务的核心当中协调进入及离开功能的方面方法700。在图7的所说明实例中,LPRM c及d为全局的(例如,由核心0及核心1共享),且与rpm.start功能、rpm.send功能及LPRM c及d相关联的存储器位置各自存储值一(LPRM c=1,LPRM d=1,rpm.start=1,rpm.send=1)。
在块702中,核心1处于运行状态。在块704中,核心0处于睡眠状态,且已进入全局模式c及d。
在块706中,核心1可闲置,运行“解算机”过程以确定应进入各种资源的哪些低功率模式,将模式c及d识别为可用低功率模式,且选择进入全局LPRM c及d。在块708中,核心1可进入rpm.start功能且递减由与rpm.start功能相关联的存储器位置存储的值(rpm.start=0)。因为由与rpm.start功能相关联的存储器位置存储的值从一转变到零(即,现含有零值),所以在块708中,核心1可起始RPM事务的开始。
在块710中,核心1可进入全局LPRM c及d且递减由与LPRM c及d相关联的存储器位置存储的值(LPRM c=0,LPRM d=0)。因为由与LPRM c及d相关联的存储器位置存储的值从一转变到零,所以在块710中,核心1还可将LPRM c及d加入到睡眠集。
在块722中,核心1可执行各种其它功能(例如,执行其它进入功能、递减值等)。
在块712中,可在核心0上检测唤醒事件(例如,可由核心0接收中断)。在块714中,多核心处理器可离开睡眠模式及递增对应于rpm.start、rpm.send及全局LPRM c及d的存储器位置的值(例如,LPRM c递增到1,LPRM d递增到1,rpm.start递增到1,rpm.send递增到2)。
在块716中,系统可执行停用全局LPRM c的线程。
在块718中,核心0可进入闲置状态,运行“解算机”过程以确定应进入各种资源的哪些低功率模式,识别可用低功率模式,且选择进入全局LPRM d。在块720中,核心0可进入rpm.start,递减对应于rpm.start的存储器位置的值(rpm.start=0),且起始新的RPM事务的开始。而且,在块720中,RPM驱动程序可终止来自核心1的先前事务。在一方面中,RPM驱动程序可经配置以响应于检测到新的RPM事务的开始而终止先前事务。
在块724中,核心1进入rpm.send且递减由与rpm.send功能相关联的存储器位置存储的值(rpm.send=1)。因为与rpm.send功能相关联的存储器位置含有非零值,所以核心1不发送RPM事务。
在块726中,核心0可进入全局LPRM d且递减由与LPRM d相关联的存储器位置存储的值(LPRM d=0)。因为由与LPRM d相关联的存储器位置所存储的值含有零值,所以在块726中,核心0还可将LPRM d加入到事务。
在块728中,核心0可进入rpm.send且递减由与rpm.send功能相关联的存储器位置存储的值(rpm.send=0)。因为由与rpm.send功能相关联的存储器位置存储的值从一转变到零(即,现含有零值),所以核心0可发送核心0所开始的RPM事务(RPM驱动程序终止由核心1开始的先前事务)。在块730中,两个核心可皆处于睡眠模式,可发送睡眠集,且可进入全局LPRM d。
在各种方面中,在发送睡眠集事务之前,可使先前事务失效以使得来自先前事务的资源不会不合需要地进入其睡眠集。在多核心环境中,如果已经有在飞行中的作用中消息,那么可不总是发送睡眠集。然而,SPM仍可已发送其关机请求到RPM,因此RPM将会将主控器转变到其睡眠集,且可默认地使用可能不合需要的先前睡眠集。为了解决此情形,在一方面中,RPM可支持“自动失效”特征以使得如果资源被标记为自动失效,那么RPM将在主控器从睡眠中唤醒时使资源的睡眠集失效。此情形防止主控器必须在每一睡眠集事务之前发送显式失效。为了协调作用中上下文与睡眠上下文之间的RPM通信,可能已经使先前睡眠集自动失效,因此在此状况下将不会进入睡眠集,此举为所要的行为。RPM可既支持在每个资源的基础上的自动失效,又支持在全局基础上的自动失效(即,总是使所有资源失效等)。可能该由调用代码负责基于加入到睡眠集的资源的性质决定哪一情形较为优选。
在各种方面中,多核心处理器系统可经配置以使过时睡眠集失效。在一方面中,失效资源可用以在发送睡眠集事务之前使先前事务失效。睡眠集失效请求可在任何睡眠集事务中作为第一消息发送,且RPM驱动程序可经配置以确保失效请求将在其存在于事务中的情况下首先执行。在进入睡眠模式时(例如,在发送睡眠集事务时)发送失效请求消除潜在竞争条件,所述潜在竞争条件否则将在于离开睡眠模式时作为单独消息发送失效请求的情况下发生。
在各种方面中,多核心处理器系统可经配置以启用及/或停用共享低功率资源模式(LPRM)。当启用共享资源的低功率模式时,共享所述资源的核心能够进入较低功率模式,且可被唤醒以重新评估其睡眠集。每当启用或停用共享低功率模式时,睡眠子系统可修改每一核心的启用列表以反映改变。
在各种方面中,多核心处理器系统可经配置以执行SPM信号交换操作。如上文所提及,操作失灵的上一核心通常为发送RPM睡眠集的核心。然而,因为RPM可在兑现应用程序睡眠集之前等待来自每一核心的SPM的信号交换,所以如果选择进入共享低功率模式,那么并非上一操作失灵的核心仍可需要编程其SPM硬件以与RPM信号交换。
在各种方面中,对于每一核心可存在信号交换LPRM(例如,spm.handshakeLPRM)。因为每一核心可解算局部及全局模式而不管核心是否为上一操作失灵的核心,所以并非上一操作失灵的核心仍可进入信号交换LPRM。如果核心确定进入需要RPM的全局模式为可接受的,那么核心可编程SPM以与RPM信号交换。
在各种方面中,多核心处理器系统可经配置以发送RPM定时触发。如上文所提及,进入睡眠的每一核心可具有其自身的计时器硬件及其自身的硬性唤醒时间。每当核心闲置时,核心可基于选定LPRM计算“退让时间”,且将所计算的退让时间编程到本地硬件中。当上一核心睡眠时,可将定时触发发送到RPM以指示核心中的任一者的下一经调度唤醒时间。定时触发允许RPM知道处理器何时预期唤醒以使得RPM可关于将进入哪些低功率模式作出知情决策。定时触发还允许RPM在系统低功率模式期间设定计时器,使得其可准时地唤醒处理器,这是因为可不确保计时器硬件在系统低功率模式期间起作用。
为了上一操作失灵的核心知道下一核心将唤醒的时间,各种方面可包含每一核心的存储变量,所述存储变量识别核心的绝对唤醒时间(在减去退让之后)。LPRM(例如,信号交换LPRM等)可计算核心的唤醒时间且将其存储为全局变量。LPRM还可计算直到下一唤醒为止的最少时间,且将其作为定时触发发送到RPM。
除了发送正确定时触发到RPM之外,上一操作失灵的核心还可需要确保将RPM唤醒中断投送到具有最快的最后期限的核心,以使得核心可唤醒且为其计时器提供服务。具有最快的最后期限的核心可经配置以首先从系统低功率模式中唤醒,以使得所述核心可触发其本地计时器中断的发射。
每一核心的绝对唤醒时间可存储于共享位置中。每一核心可使用直到下一核心的唤醒为止的最少持续时间作为当选择低功率模式时的软性唤醒暗示。
在各种方面中,多核心处理器系统可经配置以协调核心之间的RPM通信。对于主控器处理器与RPM处理器之间的通信,从RPM到主控器处理器的中断可不是在每个核心的基础上。因此,可在任何特定时间将RPM中断投送到任何核心。此中断可由RPM使用以确认已从处理器接收到的消息,且还将通知中断发送到处理器。
每一核心可在其在作用中时在任何时间发送RPM消息。在作用中模式中,核心可获得RPM驱动程序中的操作系统锁(即,互斥量)以确保每次仅有一个核心在发送消息。然而,在睡眠期间,当发送睡眠集时,处理器的RPM驱动程序可轮询确认中断以从RPM返回,这是因为睡眠代码可正执行于INTLOCKed上下文中。
为了防止一个核心试图发送睡眠集而另一核心正等待来自RPM的确认中断,当RPM驱动程序接收睡眠集事务请求时,RPM驱动程序可首先检查是否已经持有操作系统锁。如果确实持有操作系统锁,那么RPM驱动程序可不发送睡眠集,而是忽略请求,且中断请求睡眠集的核心。中断的存在可致使所述核心离开睡眠。在下一次进入到睡眠中时,可重新评估睡眠集,且睡眠代码可再次试图在适当时发送睡眠集。
当RPM驱动程序轮询RPM中断时,RPM驱动程序可与中断控制器驱动程序介接以确保将中断投送到正轮询的核心。
取决于高级操作系统(HLOS),睡眠代码可运行于不同于正在作用中模式期间发送RPM事务的线程的过程中。在此类状况下,睡眠事务可使用自旋锁来确保正发送消息的其它处理器之间的同步。
图8说明用于协调核心之间的RPM通信以使得防止一个核心发送睡眠集而另一个核心正等待确认中断的方面方法800。在图8的所说明实例中,LPRM c及d为全局的(例如,由核心0及核心1共享),且与rpm.start功能、rpm.send功能及LPRM c及d相关联的存储器位置各自存储值一(LPRM c=1,LPRM d=1,rpm.start=1,rpm.send=1)。
在块802中,核心1处于睡眠状态,且已进入全局模式c及d。在块804中,核心1处于运行状态。在块806中,核心1可闲置,解算睡眠模式(例如,运行“解算机”过程)且选择进入全局模式。在块808中,核心1可起始RPM事务的开始。
在块810中,可在核心0上检测唤醒事件(例如,可由核心0接收中断)。在块812中,多核心处理器可离开睡眠模式。
在块814中,核心1可进入睡眠模式且建立RPM事务。
在块816中,核心0可运行发送RPM消息的线程。而且在块816中,RPM驱动程序可得到操作系统锁。应注意,在操作系统已由核心1锁定的情况下将不执行线程。如上文所论述,每一核心可在其在作用中时在任何时间发送RPM消息,且核心可获得RPM驱动程序中的操作系统锁以确保每次仅有一个核心正发送消息。
在块818中,核心0可在发送消息时继续持有操作系统锁。
在块820中,核心1可发送睡眠集。如上文所论述,当发送睡眠集时,处理器的RPM驱动程序可轮询确认中断以从RPM返回,这是因为睡眠代码可正执行于INTLOCKed上下文中。
而且在块820中,RPM可检查是否持有OS锁,且确定确实持有OS锁。如上文所提及,为了防止一个核心试图发送睡眠集而另一核心正等待来自RPM的确认中断,当RPM驱动程序接收睡眠集事务请求时,RPM驱动程序可首先检查是否已经持有操作系统锁。如果确实持有操作系统锁,那么RPM驱动程序可不发送睡眠集,而是忽略请求,且中断请求睡眠集的核心。中断的存在可致使所述核心离开睡眠,且在下一次进入到睡眠中时,可重新评估睡眠集,且睡眠代码可再次试图在适当时发送睡眠集。
在块822中,核心0可接收确认中断且释放操作系统锁。
在块824中,RPM驱动程序可忽略RPM事务且将中断发送到核心1。
在块826中,核心1可尝试停止,但针对未决中断立即唤醒。
因此,在块812、816、818及822中,核心0进入唤醒状态,且在核心1发送其睡眠集的同一时段期间发送RPM消息。
如上文所提及,可在任何特定时间将来自RPM的中断投送到任何核心,所述中断可由RPM使用以确认已从处理器接收到的消息,且发送通知中断。
图9说明用于检查睡眠期间在RPM驱动程序中的共享自旋锁的方面方法900。在块902中,核心0处于运行状态。在块904中,核心1处于运行状态。在块906中,核心1可闲置,解算睡眠模式(例如,运行“解算机”过程)且选择进入全局模式。在块908中,核心0可执行线程,发送RPM消息。而且在块908中,RPM驱动程序可得到在作用中上下文中的共享自旋锁。在块910中,核心1可进入睡眠模式且递减RPM信号交换模式上的适当参考计数。
在块912中,核心0可在等待RPM确认中断时闲置。在块914中,核心0可解算睡眠模式且选择进入全局模式。在块916中,核心0可开始RPM事务。在块918中,核心0可进入睡眠模式且建立RPM事务。在块920中,核心0可发送睡眠集。而且在块920中,RPM睡眠驱动程序可检查是否持有共享自旋锁。在图9的所说明实例中,RPM睡眠驱动程序检测当前正持有自旋锁,且在块922中,忽略事务且不发送睡眠集。在一方面中,系统可经配置以使得即使两个SPM皆执行与RPM的信号交换,根据先前所提及的自动失效特征仍无睡眠集被应用于RPM上。
在块924中,核心0可进入低功率模式。在块926中,所有核心处于睡眠状态且不发送睡眠集。在块928中,核心0可接收RPM确认事务并唤醒。在块930中,核心0可接收确认并释放自旋锁。
各种方面提供数个有用益处。各种方面改进了SOC及多核心处理器上的低功率模式的选择及实施。举例来说,各种方面不要求零核心监视其它核心,不要求驻留于睡眠过程之上的过程监视核心(如由其它操作系统所要求),且不要求核心阻塞并等待直到所有全局资源闲置为止(如由其它操作系统所要求)。各种方面还在SOC及多核心处理器上实施动态低功率资源模式,实施的方式为以对称方式来处理所有核心/处理单元,且使得每一核心可与其它核心独立地选择其操作状态。
功率函数可用以确定哪些资源(如果有的话)应被置于低功率资源模式。功率函数可为功率节约与放下资源并使资源恢复操作的能源成本的总和的函数。各种方面可使用功率函数来确定与由所实施的低功率资源模式的各种组合给予的潜在系统低功率配置中的每一者相关联的净功率节约。各种方面可将净功率节约计算为在经计算的时间帧内节约的功率量抵消掉将各种资源置于低功率资源模式中且使其返回到操作模式所需要的工作量。在各种方面中,净功率节约可由使用简单线性多项式模的函数来计算,所述简单线性多项式模具有预期闲置时间X(具有斜率M)及偏移B,其中功率节约计算为MX+B。
各种方面可基于存储于可配置系统参数中的值周期性地计算净功率节约。
在各种方面中,数个机制可用于低功率资源模式选择解算机中以基于当前操作状态及条件识别低功率资源模式的最优集合。对背包问题的各种已知算法或启发式解决方案可实施于低功率资源模式选择解算机中。此类方法可涉及如果/那么/否则逻辑树算法、表查找算法及比较方法,其通过不同资源的交替低功率资源模式的交替排列及组合而有系统地工作。
根据各种方面的动态低功率资源模式的实施方案除了仅节约额外电池电力之外还提供数个有用益处。作为一个益处,各种资源的低功率资源模式及其定义主要独立于实施模式的代码。相关驱动程序调用可包含于“进入”及“离开”功能内,因此并不影响低功率资源模式。解算机过程可负责基于硬性数据(例如,每一低功率资源模式的功率及时延数据,及存在于当前操作状态中的动态限制(例如,时延要求)及操作条件)确定何时应进入或离开低功率资源模式。因此,开发者不一定试图预期此类参数的组合以便将合适的低功率资源模式硬编码到装置中。
上文所描述的方面的另一益处在于并不要求计算装置从系统模式的预配置或预定义集合中选择单个经定义低功率资源模式,但可选择低功率资源模式的组合以基于当前操作状态、资源、操作条件、估计的睡眠循环、装置配置等动态地实施系统的低功率配置。这是有利的,因为之前已知的功率管理系统经配置以在预定义低功率配置的集合之间进行选择(例如,模式1、模式2或模式3中的一者),而上文所描述的方面使得装置能够动态地选择可用于进入低功率模式的每一资源的一个或一个以上低功率资源模式,从而提供大得多的灵活性来实施最佳地适合于当前条件及状态的系统低功率配置。举例来说,假定特定处理器具有三个资源A、B及C,所述三个资源分别具有低功率资源模式A′、B′及C′。低功率资源模式可具有不同时延,例如低功率资源模式A′可具有0.4ms的时延,低功率资源模式B′可具有0.5ms的时延,及低功率资源模式C′可具有0.6ms的时延。如果例如客户端将1毫秒时延要求强加于系统上(例如,1ms最坏状况下允许的时延),那么可彼此独立地启用或停用资源A、B及C的低功率模式,只要选定低功率模式的组合满足最坏状态下的时延要求即可。举例来说,如果处理器进入闲置状态且资源A、B及C皆被启用,那么系统可挑选低功率资源模式A′(0.4ms的时延)、低功率资源模式B′(0.5ms的时延)、低功率资源模式C′(0.6ms的时延)、模式A及B(0.9ms的时延)或模式A及C(1ms的时延)。因此,在各种方面中,在给定1ms最坏状况下的时延容限的情况下,解算机任务可挑选低功率资源模式的最佳集合来节约最大功率。
另外,典型功率管理系统要求客户端具有非作用中模式及作用中模式,且时延容限取决于当前性能状态。在上文所描述的各种方面中,客户端机制可“存在”或“不存在”,而非“在作用中”或“不在作用中”。即,在各种方面中,可遍历各种低功率资源模式以消除可能的状态,而非基于操作状态(例如,作用中或非作用中)来选择。此外,各种方面使得客户端能够产生、登记及/或忽略各种资源的低功率资源模式,及动态地选择低功率资源模式的组合以启用大数目个可能的系统低功率配置。此情形允许系统客户端进一步控制及微调装置的低功率状态。
上文所描述的方面的另一益处为计算装置处理器不需要知道系统客户端的各种操作模式。在各种方面中,客户端可直接提交仅其时延容限。因而,处理器不需要知道与每一客户端的操作状态相关联的各种细节。处理器需要仅知道客户端的登记时延容限,且基于所报告的时延容限选择低功率资源进入低功率资源模式。在各种方面中,容限及低功率模式的设定可通过离散的实体进行。举例来说,USB客户端可设定时延容限,但不一定设定低功率模式。每一低功率资源模式可具有一组发信号机制来指示在完全独立于时延考虑的任何给定睡眠循环上是否可进入所述低功率资源模式。
作为另一益处,在一方面中可提供新的NPA编程节点以使得客户端能够指定其预期睡眠多长时间。举例来说,可提供NPA编程节点“/核心/处理器/唤醒”以使得客户端能够指定其预期睡眠(即,不利用处理器或资源)不长于“X”微秒(最多71个小时)。此编程能力可针对与处理器闲置状态及低功率配置的相容性简化客户端应用程序的开发。
在另一方面中,解算机计算的结果可缓存于存储器中以使得在相同或类似操作条件(例如,操作状态、温度及时延限制)存在于可进入闲置状态的时间处时可重新使用最优低功率配置而不必须重新执行解算机算法。以此方式,处理器可通过跳过执行解算机算法的过程而仍实现最优或几乎最优的功率节约,快速地进入闲置状态。在另一方面中,可统计地分析操作状态及条件以使得缓存的最优低功率配置可与条件及状态的统计地确定的范围有关联。
适合于供各种方面使用的典型移动装置1000将共同具有图10中所说明的组件。举例来说,示范性移动接收器装置1000可包含处理器1051,所述处理器耦合到内部存储器1052、显示器1053及扬声器1059。另外,移动装置1000可具有用于发送及接收电磁辐射的天线1054,所述天线连接到耦合到处理器1051的移动多媒体接收器1056。在一些方面中,移动多媒体接收器1056可包含内部处理器1058,例如用于控制接收器1056的操作及与装置处理器1051通信的数字信号处理器(DSP)。移动装置通常还包含小键盘1056或微型键盘及菜单选择按钮或摇杆式开关1057以用于接收用户输入。
处理器1051可为可由处理器可执行软件指令(应用程序)配置以执行多种功能(包含本文中所描述的各种方面的功能)的任何可编程微处理器、微计算机或一个或一个以上多处理器芯片。而且,各种方面的功能可实施于用DSP可执行指令配置的接收器1056内的DSP处理器1058中。通常,软件应用程序及处理器可执行指令可在其被存取及载入到处理器1051中之前存储于内部存储器1052中。在一些移动装置中,处理器1051可包含足以存储应用程序软件指令的内部存储器。在一些移动装置中,安全存储器可在耦合到处理器1051的单独存储器芯片中。在许多移动装置1050中,内部存储器1052可为挥发性或非挥发性存储器,例如闪存存储器或两者的混合。出于描述的目的,对存储器的一般参考是指可由处理器1051存取的所有存储器,包含内部存储器1052、插入到移动装置中的可移动存储器及处理器1051自身内的存储器。
前述方法描述和过程流程图仅作为说明性实例而提供,且既定不需要或暗示必须以所呈现的次序执行各种方面的步骤。如所属领域的技术人员将了解到,可以任何次序执行前述方面中的步骤的次序。例如“其后”、“接着”、“接下来”等词既定不限制步骤的次序;这些词仅用以引导读者理解方法的描述。此外,对单数形式的权利要求书元件的任何参考(例如,使用冠词“一”或“所述”)并不被解释为将元件限制为单数。
结合本文中所揭示的方面而描述的各种说明性逻辑块、模块、电路和算法步骤可被实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。所述功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决策不应被解释为会导致脱离本发明的范围。
用以实施结合本文中所揭示的方面描述的各种说明性逻辑、逻辑块、模块及电路的硬件可使用通用处理器、数字信号处理器(DSP)、多媒体广播接收器芯片内的DSP、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一个或一个以上微处理器与DSP核心的联合,或任何其它此类配置。或者,一些步骤或方法可由特定用于给定功能的电路执行。
在一个或一个以上示范性方面中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么功能可存储在计算机可读媒体上,或作为一个或一个以上指令或代码通过计算机可读媒体来传输。本文中所揭示的方法或算法的步骤可体现于所执行的处理器可执行软件模块中,所述处理器可执行软件模块可驻留于计算机可读媒体上。计算机可读媒体包含计算机存储媒体与包含促进计算机程序从一处传递到另一处的任何媒体的通信媒体两者。存储媒体可为可由计算机存取的任何可用媒体。举例说明且并非限制,此些计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置,或其它磁性存储装置,或可用于以指令或数据结构的形式进行或存储所要的程序代码且可被计算机存取的任何其它媒体。而且,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再生数据。上文的组合也应包含在计算机可读媒体的范围内。另外,方法或算法的操作可作为代码及/或指令中的一者或任何组合或集合驻留于可并入到计算机程序产品中的机器可读媒体及/或计算机可读媒体上。
提供先前对所揭示方面的描述以使得所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将容易明白对这些方面的各种修改,且本文中所定义的一般原理可在不偏离本发明的精神或范围的情况下应用于其它方面。因此,本发明既定不限于本文中所展示的方面,而是应符合与以下权利要求书及本文中所揭示的原理及新颖特征相一致的最广范围。
Claims (64)
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事务的装置包括用于在将资源加入到所述睡眠集时释放所述自旋锁的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161536207P | 2011-09-19 | 2011-09-19 | |
US61/536,207 | 2011-09-19 | ||
US13/312,678 US8862917B2 (en) | 2011-09-19 | 2011-12-06 | Dynamic sleep for multicore computing devices |
US13/312,678 | 2011-12-06 | ||
PCT/US2012/053352 WO2013043352A1 (en) | 2011-09-19 | 2012-08-31 | Dynamic sleep for multicore computing devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103814342A true CN103814342A (zh) | 2014-05-21 |
CN103814342B CN103814342B (zh) | 2016-12-14 |
Family
ID=47881796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280045490.6A Active CN103814342B (zh) | 2011-09-19 | 2012-08-31 | 多核心计算装置的动态睡眠 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8862917B2 (zh) |
EP (1) | EP2758851B1 (zh) |
JP (1) | JP5752326B2 (zh) |
KR (1) | KR101529018B1 (zh) |
CN (1) | CN103814342B (zh) |
WO (1) | WO2013043352A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016066034A1 (en) * | 2014-10-27 | 2016-05-06 | Huawei Technologies Co., Ltd. | Access based resources driven low power control and management for multi-core system on a chip |
CN106774808A (zh) * | 2016-12-22 | 2017-05-31 | 杭州朔天科技有限公司 | 一种异构多核芯片的多级低功耗管理单元及其方法 |
CN107003948A (zh) * | 2014-12-02 | 2017-08-01 | 三星电子株式会社 | 电子设备及用于控制其可共享的高速缓存存储器的方法 |
CN107667326A (zh) * | 2015-06-24 | 2018-02-06 | 英特尔公司 | 双存储器平台中的功率管理 |
CN109154854A (zh) * | 2016-05-23 | 2019-01-04 | 高通股份有限公司 | 基于共享调节器当前供电电压来降低功耗且改善性能的系统和方法 |
WO2023004662A1 (zh) * | 2021-07-29 | 2023-02-02 | 华为技术有限公司 | 延迟产生方法及相关设备 |
WO2024012116A1 (zh) * | 2022-07-15 | 2024-01-18 | 华为技术有限公司 | 控制方法和装置 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9429983B1 (en) | 2013-09-12 | 2016-08-30 | Advanced Processor Architectures, Llc | System clock distribution in a distributed computing environment |
US8675371B2 (en) * | 2009-08-07 | 2014-03-18 | Advanced Processor Architectures, Llc | Distributed computing |
US9645603B1 (en) | 2013-09-12 | 2017-05-09 | Advanced Processor Architectures, Llc | System clock distribution in a distributed computing environment |
US11042211B2 (en) | 2009-08-07 | 2021-06-22 | Advanced Processor Architectures, Llc | Serially connected computing nodes in a distributed computing system |
US8504855B2 (en) | 2010-01-11 | 2013-08-06 | Qualcomm Incorporated | Domain specific language, compiler and JIT for dynamic power management |
US9235251B2 (en) | 2010-01-11 | 2016-01-12 | Qualcomm Incorporated | Dynamic low power mode implementation for computing devices |
US8812761B2 (en) * | 2011-10-28 | 2014-08-19 | Apple Inc. | System and method for adjusting power usage to reduce interrupt latency |
US9176563B2 (en) * | 2012-05-14 | 2015-11-03 | Broadcom Corporation | Leakage variation aware power management for multicore processors |
US9645630B2 (en) * | 2013-01-18 | 2017-05-09 | Apple Inc. | Selectively permitting an apparatus to be awakened depending on a programmable setting |
US20140310541A1 (en) * | 2013-04-15 | 2014-10-16 | Advanced Micro Devices, Inc. | Power Gating Shared Logic |
US9541987B2 (en) * | 2013-06-28 | 2017-01-10 | Intel Corporation | Generic host-based controller latency method and appartus |
US9535488B2 (en) | 2013-08-28 | 2017-01-03 | Via Technologies, Inc. | Multi-core microprocessor that dynamically designates one of its processing cores as the bootstrap processor |
US9465432B2 (en) | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
GB2519804A (en) * | 2013-10-31 | 2015-05-06 | Nec Corp | Power saving in mobile radio communications device |
US10079019B2 (en) | 2013-11-12 | 2018-09-18 | Apple Inc. | Always-on audio control for mobile device |
US9836113B2 (en) * | 2013-12-23 | 2017-12-05 | Intel Corporation | Method and apparatus to manage power usage in a processor |
WO2015099802A1 (en) | 2013-12-28 | 2015-07-02 | Intel Corporation | Techniques for increasing energy efficiency of sensor controllers |
US9552033B2 (en) | 2014-04-22 | 2017-01-24 | Qualcomm Incorporated | Latency-based power mode units for controlling power modes of processor cores, and related methods and systems |
US9619377B2 (en) | 2014-05-29 | 2017-04-11 | Apple Inc. | System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode |
US9778728B2 (en) | 2014-05-29 | 2017-10-03 | Apple Inc. | System on a chip with fast wake from sleep |
US10031000B2 (en) | 2014-05-29 | 2018-07-24 | Apple Inc. | System on a chip with always-on processor |
US20150355942A1 (en) * | 2014-06-04 | 2015-12-10 | Texas Instruments Incorporated | Energy-efficient real-time task scheduler |
KR20170023813A (ko) * | 2014-06-20 | 2017-03-06 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치 |
KR102169692B1 (ko) | 2014-07-08 | 2020-10-26 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법 |
US9479331B2 (en) | 2014-08-20 | 2016-10-25 | Apple Inc. | Managing security in a system on a chip (SOC) that powers down a secure processor |
US9804650B2 (en) * | 2014-09-04 | 2017-10-31 | Qualcomm Incorporated | Supply voltage node coupling using a switch |
US9395970B2 (en) * | 2014-09-30 | 2016-07-19 | Sony Interactive Entertainment America Llc | Method and apparatus for providing a time period for starting an application |
GB2532495B (en) * | 2014-11-21 | 2018-05-02 | Advanced Risc Mach Ltd | Graphics processing systems |
US20160188503A1 (en) * | 2014-12-25 | 2016-06-30 | Intel Corporation | Virtual legacy wire |
US10489202B2 (en) * | 2014-12-30 | 2019-11-26 | NetSuite Inc. | System and methods for implementing control of use of shared resource in a multi-tenant system |
US9804666B2 (en) * | 2015-05-26 | 2017-10-31 | Samsung Electronics Co., Ltd. | Warp clustering |
WO2017013799A1 (ja) * | 2015-07-23 | 2017-01-26 | 株式会社日立製作所 | 計算機及び計算機の制御方法 |
CN105117277A (zh) * | 2015-08-26 | 2015-12-02 | 深圳市华验防伪科技有限公司 | 一种任务循环实现方法及系统 |
KR102488673B1 (ko) * | 2015-10-12 | 2023-01-16 | 삼성전자주식회사 | 저전력 모드로의 진입 시간을 예측할 수 있는 제어 회로와 이를 포함하는 장치 |
US10627888B2 (en) | 2017-01-30 | 2020-04-21 | International Business Machines Corporation | Processor power-saving during wait events |
US10771580B1 (en) * | 2019-03-14 | 2020-09-08 | Dell Products L.P. | Using machine learning to improve input/output performance of an application |
EP3948535A1 (en) * | 2019-03-25 | 2022-02-09 | Telefonaktiebolaget LM Ericsson (publ) | Optimizing runtime framework for efficient hardware utilization and power saving |
US11226828B2 (en) * | 2019-04-05 | 2022-01-18 | Arm Limited | Wakeup interrupt controller |
US11281473B2 (en) * | 2019-04-05 | 2022-03-22 | Arm Limited | Dual wakeup interrupt controllers |
US20200388319A1 (en) | 2019-06-07 | 2020-12-10 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device, electronic component, and electronic device |
CN111475213B (zh) * | 2020-04-03 | 2023-04-28 | 深圳忆联信息系统有限公司 | 多核结构固态硬盘的功耗降低方法、装置和计算机设备 |
CN112306643B (zh) * | 2020-11-30 | 2023-12-29 | 深信服科技股份有限公司 | 一种虚拟机配置方法、装置及设备,一种云平台 |
US20210117307A1 (en) * | 2020-12-26 | 2021-04-22 | Chris M. MacNamara | Automated verification of platform configuration for workload deployment |
CN114090086B (zh) * | 2021-11-23 | 2023-05-30 | 西安微电子技术研究所 | 一种基于ZynqMP平台嵌入式操作系统快速启动方法 |
WO2023139330A1 (fr) * | 2022-01-24 | 2023-07-27 | Stmicroelectronics (Grenoble 2) Sas | Systeme informatique presentant un mode de sommeil profond |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026447A1 (en) * | 2004-07-27 | 2006-02-02 | Intel Corporation | Power management coordination in multi-core processors |
US20060053326A1 (en) * | 2004-09-03 | 2006-03-09 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
WO2008153592A1 (en) * | 2007-06-14 | 2008-12-18 | Second Sight Medical Products, Inc. | Video processing unit for a visual prosthetic apparatus |
US20090089602A1 (en) * | 2007-09-27 | 2009-04-02 | Pradip Bose | Method and system of peak power enforcement via autonomous token-based control and management |
US20110173474A1 (en) * | 2010-01-11 | 2011-07-14 | Salsbery Brian J | Dynamic low power mode implementation for computing devices |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7428645B2 (en) * | 2003-12-29 | 2008-09-23 | Marvell International, Ltd. | Methods and apparatus to selectively power functional units |
EP1677175B1 (en) | 2004-12-31 | 2013-08-28 | ST-Ericsson SA | Dynamic power management in system on chips (SOC) |
US7490254B2 (en) * | 2005-08-02 | 2009-02-10 | Advanced Micro Devices, Inc. | Increasing workload performance of one or more cores on multiple core processors |
TW200805047A (en) | 2005-12-23 | 2008-01-16 | Koninkl Philips Electronics Nv | Performance analysis based system level power management |
US8108056B2 (en) * | 2007-11-13 | 2012-01-31 | Rockwell Automation Technologies, Inc. | Industrial controller using shared memory multicore architecture |
US20090204834A1 (en) | 2008-02-11 | 2009-08-13 | Nvidia Corporation | System and method for using inputs as wake signals |
US20100162256A1 (en) * | 2008-12-18 | 2010-06-24 | Alexander Branover | Optimization of application power consumption and performance in an integrated system on a chip |
US20100161938A1 (en) | 2008-12-23 | 2010-06-24 | Marco Heddes | System-On-A-Chip Supporting A Networked Array Of Configurable Symmetric Multiprocessing Nodes |
US8156275B2 (en) * | 2009-05-13 | 2012-04-10 | Apple Inc. | Power managed lock optimization |
-
2011
- 2011-12-06 US US13/312,678 patent/US8862917B2/en active Active
-
2012
- 2012-08-31 WO PCT/US2012/053352 patent/WO2013043352A1/en active Application Filing
- 2012-08-31 EP EP12759577.5A patent/EP2758851B1/en active Active
- 2012-08-31 CN CN201280045490.6A patent/CN103814342B/zh active Active
- 2012-08-31 JP JP2014530687A patent/JP5752326B2/ja active Active
- 2012-08-31 KR KR1020147010486A patent/KR101529018B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026447A1 (en) * | 2004-07-27 | 2006-02-02 | Intel Corporation | Power management coordination in multi-core processors |
US20060053326A1 (en) * | 2004-09-03 | 2006-03-09 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
WO2008153592A1 (en) * | 2007-06-14 | 2008-12-18 | Second Sight Medical Products, Inc. | Video processing unit for a visual prosthetic apparatus |
US20090089602A1 (en) * | 2007-09-27 | 2009-04-02 | Pradip Bose | Method and system of peak power enforcement via autonomous token-based control and management |
US20110173474A1 (en) * | 2010-01-11 | 2011-07-14 | Salsbery Brian J | Dynamic low power mode implementation for computing devices |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016066034A1 (en) * | 2014-10-27 | 2016-05-06 | Huawei Technologies Co., Ltd. | Access based resources driven low power control and management for multi-core system on a chip |
US9612651B2 (en) | 2014-10-27 | 2017-04-04 | Futurewei Technologies, Inc. | Access based resources driven low power control and management for multi-core system on a chip |
CN107111349A (zh) * | 2014-10-27 | 2017-08-29 | 华为技术有限公司 | 用于片上多核系统的驱动基于访问的资源的低功耗控制和管理 |
CN107003948A (zh) * | 2014-12-02 | 2017-08-01 | 三星电子株式会社 | 电子设备及用于控制其可共享的高速缓存存储器的方法 |
CN107667326A (zh) * | 2015-06-24 | 2018-02-06 | 英特尔公司 | 双存储器平台中的功率管理 |
CN107667326B (zh) * | 2015-06-24 | 2021-10-01 | 英特尔公司 | 双存储器平台中的功率管理 |
CN109154854A (zh) * | 2016-05-23 | 2019-01-04 | 高通股份有限公司 | 基于共享调节器当前供电电压来降低功耗且改善性能的系统和方法 |
CN109154854B (zh) * | 2016-05-23 | 2022-02-18 | 高通股份有限公司 | 基于共享调节器当前供电电压来降低功耗且改善性能的系统和方法 |
CN106774808A (zh) * | 2016-12-22 | 2017-05-31 | 杭州朔天科技有限公司 | 一种异构多核芯片的多级低功耗管理单元及其方法 |
CN106774808B (zh) * | 2016-12-22 | 2019-11-26 | 杭州朔天科技有限公司 | 一种异构多核芯片的多级低功耗管理单元及其方法 |
WO2023004662A1 (zh) * | 2021-07-29 | 2023-02-02 | 华为技术有限公司 | 延迟产生方法及相关设备 |
WO2024012116A1 (zh) * | 2022-07-15 | 2024-01-18 | 华为技术有限公司 | 控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2758851B1 (en) | 2021-11-03 |
KR20140079420A (ko) | 2014-06-26 |
KR101529018B1 (ko) | 2015-06-16 |
US20130073884A1 (en) | 2013-03-21 |
WO2013043352A1 (en) | 2013-03-28 |
CN103814342B (zh) | 2016-12-14 |
US8862917B2 (en) | 2014-10-14 |
EP2758851A1 (en) | 2014-07-30 |
JP5752326B2 (ja) | 2015-07-22 |
JP2014527249A (ja) | 2014-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103814342A (zh) | 多核心计算装置的动态睡眠 | |
US8799697B2 (en) | Operating system synchronization in loosely coupled multiprocessor system and chips | |
US9152199B2 (en) | Power state dependent wake-up alarm | |
US20130290758A1 (en) | Sleep mode latency scaling and dynamic run time adjustment | |
US8914650B2 (en) | Dynamically adjusting power of non-core processor circuitry including buffer circuitry | |
US8504855B2 (en) | Domain specific language, compiler and JIT for dynamic power management | |
KR101551321B1 (ko) | 휴대용 컴퓨팅 디바이스에서 요청들을 스케쥴링하기 위한 방법 및 시스템 | |
CN105183128A (zh) | 强制处理器进入低功率状态 | |
US8700936B2 (en) | Modular gating of microprocessor low-power mode | |
CN103842934A (zh) | 用于降低功耗的基于优先级的应用事件控制(paec) | |
US20080098245A1 (en) | Power management system and method | |
CN102037428A (zh) | 具有用于提供降低电源消耗的睡眠状态的次要存储器控制器的集成电路及方法 | |
US8713348B2 (en) | Apparatus for performing timer management regarding a system timer scheduler service, and associated method | |
CN104969142A (zh) | 用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法 | |
WO2015135468A1 (en) | Systems and methods for messaging-based fine granularity system-on-a-chip power gating | |
CN111225434A (zh) | 一种应用程序响应方法、系统、存储介质及通信模块 | |
US20070157039A1 (en) | Power saving method of central processing unit | |
CN106095645A (zh) | 一种应用程序查找方法和装置 | |
Hung et al. | Energy-Efficient Communications for Improving Timely Progress of Intermittent-Powered BLE Devices | |
CN116070571A (zh) | 一种soc芯片和电子产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |