CN108885486B - 增强型动态时钟和电压缩放(dcvs)方案 - Google Patents
增强型动态时钟和电压缩放(dcvs)方案 Download PDFInfo
- Publication number
- CN108885486B CN108885486B CN201780022134.5A CN201780022134A CN108885486B CN 108885486 B CN108885486 B CN 108885486B CN 201780022134 A CN201780022134 A CN 201780022134A CN 108885486 B CN108885486 B CN 108885486B
- Authority
- CN
- China
- Prior art keywords
- frequency
- processor
- processors
- subset
- active
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 14
- 230000000694 effects Effects 0.000 description 18
- 230000004044 response Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method 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
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- 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/3243—Power saving in microcontroller unit
-
- 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/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
-
- 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
-
- 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/329—Power saving characterised by the action undertaken by task scheduling
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
Abstract
在某些方面,一种用于频率缩放的方法包括确定多个处理器中是否仅子集是活动的,其中多个处理器共享一个或多个资源。该方法还包括如果确定仅多个处理器的子集是活动的、并且多个处理器的子集中的至少一个处理器的频率低于频率阈值,则增加该至少一个处理器的频率。例如,这可以被进行以增加一个或多个共享资源的空闲模式的持续时间并且实现包括多个处理器、一个或多个共享资源和/或其他功能块的系统的总体功率降低。
Description
相关申请的交叉引用
本申请要求于2016年4月8日在美国专利商标局提交的非临时申请No.15/094,909的优先权和权益,其全部内容通过引用并入本文。
技术领域
本公开的各方面总体上涉及处理器,并且更具体地涉及处理器的动态时钟和电压缩放(DCVS)。
背景技术
片上系统(SoC)包括集成在芯片上的多个处理器。例如,SoC可以包括以下中的两个或更多个:中央处理单元(CPU)、显示处理器、视频编码器/解码器、音频处理器、图形处理单元(GPU)等。通常,SoC包括在多个处理器之间共享的资源。例如,共享资源可以包括被配置为将处理器与外部存储器(例如,动态随机存取存储器(DRAM))对接的共享存储器接口。共享资源还可以包括共享电源轨、共享系统总线等。
发明内容
以下呈现一个或多个实施例的简要概述,以便提供对这样的实施例的基本理解。本概述不是所有预期实施例的广泛概述,并且既不旨在标识所有实施例的关键或重要元素,也不旨在界定任何或所有实施例的范围。其唯一目的是以简化的形式呈现一个或多个实施例的一些概念,作为稍后呈现的更详细描述的序言。
根据一个方面,提供了一种用于频率缩放的方法。该方法包括确定多个处理器中是否仅子集是活动的,其中多个处理器共享一个或多个资源。该方法还包括如果确定仅多个处理器的子集是活动的、并且多个处理器的子集中的至少一个处理器的频率低于频率阈值,则增加该至少一个处理器的频率。
第二方面涉及一种用于频率缩放的装置。该装置包括用于确定多个处理器中是否仅子集是活动的部件,其中多个处理器共享一个或多个资源。该装置还包括用于在确定仅多个处理器的子集是活动的、并且多个处理器的子集中的至少一个处理器的频率低于频率阈值的情况下增加该至少一个处理器的频率的部件。
第三方面涉及一种系统。该系统包括多个处理器,其中多个处理器共享一个或多个资源。该系统还包括资源管理器,资源管理器被配置为确定多个处理器中是否仅子集是活动的,并且如果确定仅多个处理器的子集是活动的、并且多个处理器的子集中的至少一个处理器的频率低于频率阈值,则增加该至少一个处理器的频率。
为了实现前述和相关目的,一个或多个实施例包括在下文中充分描述并且在权利要求中特别指出的特征。以下描述和附图详细阐述了一个或多个实施例的某些说明性方面。然而,这些方面仅指示可以运用各种实施例的原理的各种方式中的一些,并且所描述的实施例旨在包括所有这样的方面及其等同物。
附图说明
图1示出了根据本公开的某些方面的包括多个处理器的片上系统(SoC)的示例。
图2是示出根据本公开的某些方面的多个处理器和共享资源随时间的示例性活动的时间线。
图3是示出根据本公开的某些方面的、其中处理器被加速以增加共享资源的空闲持续时间的示例的时间线。
图4示出了根据本公开的某些方面的包括资源管理器的SoC的示例。
图5是示出作为时钟频率的函数的处理器的功率的示例的曲线图。
图6示出了根据本公开的某些方面的动态时钟电压缩放(DCVS)方案的实例。
图7示出了根据本公开的某些方面的用于处理器的可用时钟频率的示例。
图8示出了根据本公开的某些方面的其中考虑到共享资源的效率的示例性DCVS方案。
图9示出了根据本公开的某些方面的处理器的第一和第二多个时钟频率的示例。
图10示出了根据本公开的某些方面的包括有两个CPU的SoC的示例。
图11示出了根据本公开的某些方面的其中考虑到共享资源的效率的另一示例性DCVS方案。
图12示出了根据本公开的某些方面的处理器的第一、第二和第三多个时钟频率的示例。
图13示出了根据本公开的某些方面的包括有四个CPU的SoC的示例。
图14示出了根据本公开的某些方面的其中考虑到共享资源的效率的另一示例性DCVS方案。
图15示出了根据本公开的某些方面的处理器的第一、第二、第三、第四和第五多个时钟频率的示例。
图16示出了根据本公开的某些方面的DCVS电路的示例。
图17是示出根据本公开的某些方面的用于频率缩放的方法的流程图。
图18示出了根据本公开的某些方面的用于启用或禁用DCVS方案的示例性控制机制。
具体实施方式
以下结合附图阐述的详细描述旨在作为各种配置的描述,而非旨在表示可以实践本文中描述的概念的仅有配置。详细描述包括具体细节,以便提供对各种概念的透彻理解。然而,对于本领域技术人员很清楚的是,可以在没有这些具体细节的情况下实践这些概念。在一些实例中,以框图形式示出了公知的结构和组件,以避免模糊这些概念。
片上系统(SoC)包括集成在芯片上的多个处理器。例如,SoC可以包括以下中的两个或更多个:中央处理单元(CPU)、显示处理器、视频编码器/解码器、音频处理器、图形处理单元(GPU)等。通常,SoC包括在多个处理器之间共享的资源。例如,共享资源可以包括被配置为将处理器与外部存储器的共享存储器对接。
在这方面,图1示出了包括多个处理器和共享存储器接口130的SoC 100的示例,共享存储器接口130被配置为将处理器与外部存储器150(例如,动态随机存取存储器(DRAM))对接。在这个示例中,多个处理器包括CPU 110、显示处理器115、视频编码器/解码器120、音频处理器122和GPU 125。显示处理器115、视频编码器/解码器120、音频处理器122和GPU125可以被称为多媒体处理器或核。应当理解,SoC 100不限于图1中所示的示例,并且可以包括其他处理器组合。
共享存储器接口130包括存储器控制器135和物理(PHY)块140。存储器控制器135代表处理器来管理存储器150的读取/写入操作,如下面进一步讨论的。存储器控制器135经由PHY块140与存储器150通信。PHY模块140可以经由一个或多个线(例如,一个或多个数据线、一个或多个地址线等)耦合到存储器150,并且可以包括用于经由一个或多个线向存储器150发送信号和从存储器150接收信号的一个或多个收发器(未示出)。PHY块140还可以包括用于同步输入和/或输出信号(例如,通过数据选通信号)的定时电路(未示出)。尽管图1中为了便于说明而示出了一个PHY块140,应当理解,存储器接口130可以包括多个PHY块。
为了向存储器150写入数据,处理器可以向存储器控制器135发送写入请求。写入请求可以包括数据和数据的逻辑地址。响应于写入请求,存储器控制器135可以将逻辑地址映射到存储器中的物理地址,并且经由PHY块140向存储器150发送相应的命令/地址/数据信号以向存储器150中的物理地址写入数据。
为了从存储器150读取数据,处理器可以向存储器控制器135发送读取请求。读取请求可以包括针对要从存储器150读取的数据的逻辑。响应于读取请求,存储器控制器135可以将逻辑地址映射到存储器中的物理地址,并且经由PHY块140向存储器150发送相应的命令/地址信号,以从存储器150中的物理地址读取数据。在从存储器150接收到数据时,存储器控制器135将数据发送给请求处理器。
多个处理器110、115、120、122和125可以在分时的基础上共享存储器接口130。例如,存储器控制器135可以从处理器接收读取/写入请求,将读取/写入请求放置在缓冲器(未示出)中,并且一次一个地处理缓冲器中的读取/写入请求。
SoC 100中的共享资源还可以包括共享系统总线、共享电源轨、共享锁相环(PLL)等。例如,处理器可以使用共享系统总线以用于处理器间通信、与用户接口设备的通信、与调制解调器的通信等。共享的PPL可以用于向处理器提供时钟信号以用于对处理器的操作进行定时。
SoC还可以包括用于管理SoC的功率的功率管理系统(图1中未示出)。例如,功率管理系统可以对空闲的处理器的电源和/或时钟进行门控以节省功率。对空闲处理器的供电功率进行门控可以通过减少处理器的功率泄漏来节省功率,并且对空闲处理器的时钟进行门控可以通过降低处理器的动态功耗来节省功率。功率管理系统可以解除对活动的处理器的功率和时钟的门控。管理系统还可以在共享资源未被处理器使用以用于节省功率时,对共享资源(例如,存储器控制器135)的功率和/或时钟进行门控,并且在共享资源正在被至少一个处理器使用时,解除对共享资源的功率和时钟的门控。在另一示例中,功率管理系统可以对空闲的处理器的时钟进行门控,并且将处理器的电源电压降低到足够保持处理器中的逻辑状态的电压。
活动的系统资源(例如,处理器或共享资源,如存储器)具有最小基线功率,最小基线功率可以包括来自静态组件的泄漏功率和来自动态组件的动态功率,诸如同步和移动数据所需要的运行时钟。系统的能量效率取决于活动的资源、为每个资源选择的操作点(例如,操作电压和频率)、每个资源活动的持续时间以及每个资源在活动时的利用水平。
无论共享资源的利用程度如何,共享资源的基线功率在活动时被消耗。因此,与使仅一个活动处理器使用共享资源而其他处理器空闲的情况相比,多个活动处理器使用共享资源可能更节能。这是因为,使多个活动处理器使用共享资源会减少共享资源保持活动以服务于处理器所需要的时间。相反,仅一个活动处理器使用共享资源需要共享资源保持活动并且消耗功率以仅服务于一个处理器。当前的功率管理方案没有考虑处理器和共享资源的总体能量效率(例如,没有考虑是否仅一个活动处理器正在使用共享资源)。
本公开的实施例提供了通过以下方式来提高能量效率的系统和方法:确定是否仅一个活动处理器(例如,CPU 110)正在使用共享资源,并且响应于确定仅活动处理器正在使用共享资源而加速处理器(例如,提升处理器的时钟频率)以减少共享资源保持活动所需要的时间量。现在将在下面参考图2和图3描述本公开的示例性实施例。
图2示出了示出CPU 110、多媒体处理器和共享资源随时间的活动的示例性时间线。在这个示例中,多媒体处理器(例如,显示处理器115、视频编码器/解码器120和/或GPU125)以特定的帧速率(例如,每秒30帧(FPS))来处理帧(例如,用于向用户显示)。在图2中的示例中,每个帧的开始由信号Vsync发信号通知。对于每个帧,在多媒体处理器完成处理帧与下一帧的开始之间存在帧间持续时间220。在每个帧间持续时间220期间,多媒体处理器处于空闲状态以节省功率。
在图2中的示例中,CPU 110在帧间持续时间220期间保持活动(例如,处理OS/app/驱动器相关任务)。结果,在帧间持续时间220期间,CPU 110是使用共享资源的唯一的活动处理器,并且共享资源(例如,存储器接口130)保持活动以仅服务于CPU 110。在仅CPU活动时保持共享资源活动可能是能量效率低的。
为了提高能量效率,根据本公开的某些方面的资源管理器确定是否多个处理器(例如,CPU 110)中的仅一个是活动的且正在使用共享资源(例如,存储器控制器135)。响应于确定多个处理器中的仅一个(例如,CPU 110)是活动的且正在使用共享资源,资源管理器可以使这一个处理器加速(例如,通过增加处理器的时钟频率)。这允许处理器更快地结束(完成)其任务并且更早进入空闲状态。结果,共享资源可以被置于空闲状态更长的持续时间以提高能量效率。
在这方面,图3示出了其中资源管理器响应于确定CPU 110是图2中使用共享资源的唯一的活动处理器而使CPU 110(例如,提升CPU 110的频率)加速的示例性时间线。CPU110被加速的持续时间310被加阴影。因为CPU 110被加速,所以CPU 110更快地处理任务并且能够更早进入空闲状态。结果,资源管理器能够将共享资源置于空闲状态(例如,功率门控和/或时钟门控共享资源)以降低能量低效率。如图3中的示例所示,对于每个帧,资源管理器在CPU 110完成其针对该帧的任务的时间与下一帧的开始之间的持续时间320期间将共享资源置于空闲状态。
应当理解,多媒体处理器完成处理帧的时间对于每个帧不需要相同,并且因此可以变化。在任何情况下,多媒体处理器可以在下一帧的开始之前完成对每个帧的处理,从而产生帧间持续时间220,在该时间期间,资源管理器可以使CPU 110加速以提高能量效率。
如上所述,响应于确定多个处理器中的仅一个(例如,CPU 110)是活动的且正在使用共享资源,资源管理器可以使这一个处理器加速以增加共享资源的空闲时间。使处理器加速(例如,增加处理器的时钟频率)可能增加处理器的功率。然而,通过增加共享资源的空闲时间而节省的能量的量可能超过处理器的功率增加,从而导致能量效率的整体提高。
图4示出了根据本公开的某些方面的示例性SoC 400。SoC 400包括图1所示的处理器110、115、120、122和125。SoC 400还包括资源管理器450和多个动态时钟电压缩放(DCVS)电路460-1到460-5,其中每个DCVS电路被配置为动态地缩放相应的一个处理器的时钟频率和/或电源电压。尽管多个DVCS电路在图1中被示出为分开的以便于说明,但是应当理解,DCVS电路可以共享一个或多个组件,如下面进一步讨论的。SoC 400还可以包括存储器接口130,其为了便于说明而未在图4中示出。
在这个示例中,处理器110、115、120、122和125中的每个可以被配置为将相应的状态(例如,活动状态、空闲状态等)向资源管理器450传送。例如,每个处理器可以被配置为向寄存器(未示出)写入指示处理器的状态(例如,活动状态、空闲状态等)的一个或多个位。在这个示例中,就在进入空闲状态之前(例如,在完成其针对当前帧的任务之后),处理器可以向寄存器写入指示处理器处于空闲状态的一个或多个位。当处理器从空闲状态唤醒时(例如,在下一帧的开始时),处理器可以向寄存器写入指示处理器处于活动状态的一个或多个位。另外,SoC 400上的共享源(未示出)还可以通过将指示其状态的位写入寄存器来将它们的状态(例如,活动状态、空闲状态等)向资源管理器450传送。
因此,在这个示例中,资源管理器450能够通过在寄存器中查找处理器和共享资源的状态来确定它们的状态。这允许资源管理器450确定是否仅一个处理器(例如,CPU 110)是活动的且正在使用共享资源。例如,当资源管理器450检测到一个处理器是活动的,其余处理器空闲并且共享资源是活动的时,资源管理器450可以确定仅一个处理器(例如,CPU110)是活动的且正在使用共享资源(例如,存储器控制器135)。
在另一示例中,处理器110、115、120、122和125中的每个可以被配置为当处理器是活动的时向资源管理器450发送活动信号(例如,经由专用线路)。在这个示例中,资源管理器450可以在资源管理器450从处理器接收到活动信号时确定处理器是活动的,并且在资源管理器450没有从处理器接收到活动信号时确定处理器是空闲的。例如,当资源管理器450仅从处理器之一接收到活动信号时,资源管理器450可以确定仅一个处理器是活动的。
在又一示例中,功率管理系统(未示出)可以将处理器和共享资源的状态向资源管理器450传送。在这个示例中,功率管理系统可以在资源管理器中的寄存器中或者在资源管理器可访问的任何其他寄存器中写入处理器和共享资源的状态。
在一个示例中,资源管理器450可以每当一个或多个处理器的状态发生变化时确定是否处理器110、115、120、122和125中的仅一个处理器是活动的并且正在使用共享资源。在这个示例中,当更新寄存器中的一个或多个状态被更新时,资源管理器450可以检测一个或多个处理器的状态的变化。当检测到状态变化时,资源管理器450可以检查寄存器中的处理器的状态,以确定是否仅一个处理器是活动的并且正在使用共享资源。例如,如果一个处理器是活动的,剩余的处理器空闲并且共享资源是活动的,则资源管理器450可以确定仅一个处理器是活动的并且正在使用共享资源。响应于确定处理器110、115、120、122和125中的仅一个是活动的并且正在使用共享资源,资源管理器450可以使这一个处理器加速以增加共享资源的空闲时间。例如,资源管理器450可以通过指示相应的DCVS电路增加处理器的时钟频率来使处理器加速。相应的DCVS电路可以将时钟频率增加特定百分比(例如,10%、20%或更高的水平),或者将时钟频率增加到特定频率,如下面进一步讨论的。
在一个实现中,资源管理器450快速地确定哪些处理器是活动的,并且基于该确定来快速地调整DCVS控制。例如,资源管理器450确定在一个帧期间何时仅一个处理器是活动的,并且如果确定仅一个处理器是活动的,则在帧内使这一个处理器加速。然而,应当理解,本发明不限于这个示例。
例如,在另一实现中,资源管理器450可以使用平均处理器活动信息来确定更长期的DCVS策略。在该实现中,DCVS策略控制可以基于在过去几帧上处理器的平均活动来在几个帧上进行。例如,资源管理器450可以确定在过去的几帧上每个处理器的平均活动。平均活动信息可以来自活动监测器、操作系统等。每个处理器的平均活动可以是处理器在过去几帧上活动的时间的百分比形式或另一种形式。
在这个示例中,当处理器的平均活动大于任何一个其他处理器的平均活动达至少一定量(例如,至少一定百分比)时,资源管理器450可以确定在过去几帧的至少一部分期间只有处理器之一是活动的。如果资源管理器450确定在过去几帧的至少一部分期间只有一个处理器是活动的,则资源管理器450可以在一个或多个后续帧期间使处理器加速。在这种情况下,资源管理器450可以指示相应的DCVS电路将时钟频率增加特定百分比(例如,10%、20%或更高水平),或者将时钟频率增加到特定频率。因此,基于在过去几帧中累积的活动历史,处理器的加速可以在多个帧上发生。
因此,在本公开中,应当理解,资源管理器450可以确定在当前帧期间是否只有一个处理器是活动的(例如,基于硬件信令),或者基于几帧上的活动信息(例如,在几帧上处理器的平均活动)来确定是否只有一个处理器是活动的。
如上所述,在加速处理器增加共享资源的空闲时间的情况下,由共享资源的空闲时间的增加所节省的能量的量可能超过处理器的功率增加,从而导致整体能量效率提高。然而,通过加速处理器而实现的整体能量效率的增加可能在较高时钟频率下减小。
这可以参考图5来解释,图5示出了处理器的功率作为时钟频率的函数的示例。如这个示例中所示,处理器的功率在较高时钟频率下以比在较低时钟频率下更快的速率增加。这是因为,时钟频率的增加可能伴随着处理器的电源电压的增加,以便使得处理器中的晶体管能够以增加的频率正确地切换。电源电压的增加进一步增加了处理器的动态功率,这大约是电源电压的二次函数。因此,在时钟频率的百分比增加相同的情况下,从高频率加速处理器的时钟频率与从低频率加速处理器的时钟频率相比,可能导致更大的功率的增加。
因此,在某些方面,资源管理器450可以在确定是否加速处理器时考虑处理器的当前时钟频率。例如,在确定了处理器是多个处理器中仅活动的一个处理器并且正在使用共享资源之后,资源管理器450可以将处理器的当前时钟频率与频率阈值进行比较。如果当前时钟频率低于频率阈值,则资源管理器450可以加速处理器以增加共享资源的空闲时间。如果当前时钟频率等于或高于频率阈值,则资源管理器450可以保留处理器速度。在这种情况下,加速处理器可能导致整体能量效率几乎没有增加。
在某些方面,当资源管理器450确定处理器的当前时钟频率低于频率阈值时,资源管理器450可以通过将处理器的时钟频率增加到频率阈值来加速处理器。备选地,资源管理器可以通过将处理器的时钟频率增加特定百分比(例如,10%、20%或更高水平)来加速处理器。
可以将本公开的各方面合并到用于处理器(例如,CPU 110)的DCVS方案中。在更详细地讨论本公开的这些方面之前,描述用于处理器(例如,CPU 110)的传统DCVS方案可能是有帮助的。传统的DCVS方案在设置处理器的时钟频率和电源电压时考虑处理器的工作负荷。然而,传统的DCVS方案没有考虑与处理器共享资源的其他处理器的状态,如下面进一步讨论的。
图6是示出传统DCVS方案600的流程图。在框610中,确定处理器(例如,CPU 110)的工作负荷。例如,工作负荷可以作为处理器忙于执行指令的时间的百分比而被给出。工作负荷可以由在处理器、性能监测器等上运行的程序(例如,操作系统)来确定。
在框620中,基于工作负荷来确定处理器的目标性能水平。例如,如果确定的工作负荷高于第一工作负荷阈值,则目标性能水平可以大于处理器的当前性能水平。在这种情况下,处理器的性能水平被增加。在另一示例中,如果工作负荷低于第二工作负荷阈值,则目标性能水平可以低于处理器的当前性能水平。在这种情况下,处理器的性能水平被降低。降低的性能水平可以降低功耗,而同时仍然允许处理器在可接受的时间段内完成一个或多个任务。
在框630中,将目标性能水平映射到多个可用时钟频率中使得处理器能够满足目标性能水平的一个时钟频率。例如,目标性能水平可以被映射到多个可用时钟频率中使得处理器能够满足目标性能水平的最低的时钟频率。在这方面,图7示出了处理器的多个可用时钟频率700的示例。在图7中,多个时钟频率700被标记为710-1至710-N,其中图7中的箭头指示频率增加的方向。在这个示例中,可用时钟频率710-1至710-N中的每个可以与使得处理器中的晶体管能够足够快地切换以在时钟频率下可靠地操作的电源电压配对。因此,在这个示例中,目标性能水平可以被映射到使得处理器能够满足目标性能水平的相应的时钟频率和电源电压(即,相应的频率电压对)。目标性能水平所映射到的时钟频率和电源电压可以分别称为目标时钟频率和目标电源电压。
在框640中,指示处理器的DCVS电路(例如,460-1)将处理器(例如,CPU 110)的时钟频率设置为目标时钟频率。还可以指示DCVS电路将处理器的电源电压设置为目标电源电压。
图6中示出的DCVS方案600在设置处理器的时钟频率和/或电源电压时考虑处理器的工作负荷。在这方面,DCVS方案600可以被配置为基于处理器的工作负荷来设置时钟频率和/或电源电压以优化处理器的能量效率。然而,DCVS方案600没有考虑处理器和共享资源的总体能量效率,因此可能没有针对总体能量效率进行优化,如下面进一步讨论的。
图8是示出根据本公开的某些方面的用于处理器(例如,CPU 110)的DCVS方案800的流程图。DCVS方案800可以由资源管理器450执行。DCVS方案800包括来自图6中的DCVS方案600的框610和620。因此,DCVS方案800包括确定处理器(例如,CPU 110)的工作负荷,并且基于工作负荷来确定处理器的目标性能水平,类似于图6中的DCVS方案600。
在框810中,确定处理器是否是多个处理器(例如,CPU 110、显示处理器115、视频编码器/解码器120、音频处理器122和GPU 125)中使用共享资源(例如,存储器接口130)的唯一一个活动处理器。如果确定处理器不是使用共享资源的唯一活动处理器,则DCVS方案600进行到框820。在框820中,将在框620中确定的目标性能水平映射到图9所示的第一多个时钟频率910之一。例如,目标性能水平可以被映射到第一多个时钟频率910中使得处理器能够满足目标性能水平的最低的一个时钟频率。在这个示例中,第一多个时钟频率910包括与图7中的多个可用时钟频率700相同的时钟频率710-1至710-N。因此,对于该处理器不是使用共享资源的唯一活动处理器(即,多于一个活动处理器正在使用共享资源)的情况,DCVS方案800可以将目标性能水平映射到与图6中的DCVS方案600相同的时钟频率。
如果在框810中确定仅一个处理器是活动的并且正在使用共享资源,则DCVS方案800进行到框830。在框830中,将在框620中确定的目标性能水平映射到图2中所示的第二多个时钟频率920之一。例如,目标性能水平可以被映射到第二多个时钟频率920中使得处理器能够满足目标性能水平的最低的一个时钟频率。
第二多个时钟频率920包括时钟频率710-n至710-N,其中第二多个时钟频率920中的最低(最小)时钟频率是时钟频率710-n。第二多个时钟频率920排除低于时钟频率710-n的时钟频率710-1至710-(n-1)。换言之,时钟频率710-1至710-(n-1)被禁用。在图9中,从第二多个时钟频率920中排除的时钟频率710-1至710-(n-1)被加阴影。因此,在框830中,将在框820中映射到时钟频率710-1至710-(n-1)之一的目标性能水平改为映射到时钟频率710-n,因为时钟频率710-n是第二多个时钟频率920中的最低(最小)时钟频率。这相当于,针对框820将目标性能水平映射到时钟频率710-1至710-(n-1)之一的情况,使处理器的时钟频率相对于在框820中设置的时钟频率加速。对于在框820中将目标性能水平映射到时钟频率710-n或更高的情况,相对于框820,在框830中不提升处理器速度。
在框820或框830中处理器被映射到的时钟频率可以被称为目标时钟频率。由于每个时钟频率具有相应的电源电压,因此将目标性能水平映射到时钟频率之一也将目标性能水平映射到相应的电源电压,这个电源电压可以被称为目标电源电压。
在框640中,指示处理器的DCVS电路(例如,460-1)将处理器(例如,CPU 110)的时钟频率设置为目标时钟频率。还可以指示DCVS电路将处理器的电源电压设置为目标电源电压。
因此,DCVS方案800考虑了处理器和共享资源的总体能量效率,因此与没有考虑共享资源的能量效率的DCVS方案600相比可以提供增加的总体能量效率。
在一个示例中,资源管理器450可以针对图4中的CPU 110执行DCVS方案800,在这种情况下,图8中的处理器是指CPU 110。在这个示例中,当CPU是活动的并且多媒体处理器(例如,显示处理器115、视频编码器/解码器120、音频处理器122和GPU 125)空闲时,资源管理器450可以确定CPU 110是使用共享资源的唯一活动处理器。在这个示例中,共享资源可以包括存储器接口130。
在这个示例中,DCVS方案800可以针对图3所示的多媒体用例周期性地加速CPU110。例如,假定CPU 110的时钟频率基于CPU 110的工作负荷被设置为低于时钟频率710-n的时钟频率。在这个示例中,CPU 110的时钟频率在一个或多个多媒体处理器处于活动的持续时间期间低于时钟频率710-n。在多媒体处理器空闲的持续时间220期间,DCVS方案800将CPU 110的时钟频率加速到时钟频率710-n。这是因为,当CPU 110是处理器(例如,CPU 110、显示处理器115、视频编码器/解码器120、音频处理器122和GPU 125)中使用共享资源(例如,存储器接口130)的唯一活动处理器时,低于时钟频率710-n的时钟频率被禁用。
应当理解,本公开的实施例不限于针对其中处理器是使用共享资源的唯一活动处理器的情况加速处理器。例如,除了多媒体处理器(例如,显示处理器115、视频编码器/解码器120、音频处理器122和GPU 125)之外,SoC可以包括两个或更多个CPU。在这个示例中,在两个或更多个CPU是活动的并且正在使用共享资源,并且多媒体处理器空闲时,资源管理器450可以加速两个或更多个CPU,如下面进一步讨论的。
图10示出了根据某些方面的SoC 1000的示例。SoC 1000包括多媒体处理器115、120、122和125以及图4所示的相应的DCVS电路460-2至460-5。SoC还包括两个CPU 110a和110b以及相应的DCVS电路460-1a和460-1b。在这个示例中,CPU 110a和110b中的每个可以被配置为以类似于上面参考图4讨论的方式向资源管理器450传送相应的状态(例如,活动状态、空闲状态等)。SoC 1000还可以包括存储器接口130,其为了便于说明而未在图10中示出。
这个示例中的资源管理器450可以针对一个或多个处理器中的每个(例如,针对CPU 110a和CPU 110b中的每个)实现图11所示的DCVS方案1100。
DCVS方案1100包括来自图6中的DCVS方案600的框610和620。因此,DCVS方案1100包括确定处理器(例如,CPU 110a或110b)的工作负荷,并且基于工作负荷来确定处理器的目标性能水平,类似于图6中的DCVS方案600。
在框1110中,确定使用共享资源(例如,存储器接口130)的活动处理器(例如,CPU110a和/或CPU 110b)的数目。如果确定多于两个活动处理器正在使用共享资源,则DCVS方案1100进行到框1120。在框1120中,将在框620中确定的目标性能水平映射到图12所示的第一多个时钟频率1210之一。例如,目标性能水平可以被映射到第一多个时钟频率1210中使得处理器能够满足目标性能水平的最低的一个时钟频率。在这个示例中,第一多个时钟频率1210包括与图7中的多个可用时钟频率700相同的时钟频率710-1至710-N。
如果在框1110中确定仅一个处理器是活动的并且正在使用共享资源,则DCVS方案1100进行到框1130。在框1130中,将在框620中确定的目标性能水平映射到图12所示的第二多个时钟频率1220之一。例如,目标性能水平可以被映射到第二多个时钟频率1220中使得处理器能够满足目标性能水平的最低的一个时钟频率。
第二多个时钟频率1220包括时钟频率710-n至710-N,其中第二多个时钟频率1220中的最低(最小)时钟频率是时钟频率710-n。第二多个时钟频率1220排除低于时钟频率710-n的时钟频率710-1至710-(n-1)。换言之,时钟频率710-1至710-(n-1)被禁用。在图12中,从第二多个时钟频率1220中排除的时钟频率710-1至710-(n-1)被加阴影。因此,在框1130中,将在框1120中映射到时钟频率710-1至710-(n-1)之一的目标性能水平改为映射到时钟频率710-n,因为时钟频率710-n是第二多个时钟频率1220中的最低(最小)时钟频率。这相当于,针对框1120将目标性能水平映射到时钟频率710-1至710-(n-1)之一的情况,使处理器的时钟频率相对于在框1120中设置的时钟频率加速。
如果在框1110中确定仅两个处理器是活动的并且正在使用共享资源,则DCVS方案1100进行到框1140。在框1140中,将在框620中确定的目标性能水平映射到图12所示的第三多个时钟频率1230之一。例如,目标性能水平可以被映射到第三多个时钟频率1230中使得处理器能够满足目标性能水平的最低的一个时钟频率。
第三多个时钟频率1230包括时钟频率710-m至710-N,其中第三多个时钟频率1230中的最低(最小)时钟频率是时钟频率710-m。在这个示例中,第三多个时钟频率1230中的最低时钟频率710-m低于第二多个时钟频率1220中的最低时钟频率710-n。第三多个时钟频率1230排除低于时钟频率710-m的时钟频率710-1至710-(m-1)。换言之,时钟频率710-1至710-(m-1)被禁用。在图12中,从第三多个时钟频率1230中排除的时钟频率710-1至710-(m-1)被加阴影。因此,在框1140中,将在框1120中映射到时钟频率710-1至710-(m-1)之一的目标性能水平改为映射到时钟频率710-m,因为时钟频率710-m是第三多个时钟频率1230中的最低(最小)时钟频率。这相当于,针对框1120将目标性能水平映射到时钟频率710-1至710-(m-1)之一的情况,使处理器的时钟频率相对于在框1120中设置的时钟频率加速。
在框1120、框1130或框1140中处理器被映射到的时钟频率可以被称为目标时钟频率。由于每个时钟频率具有相应的电源电压,因此将目标性能水平映射到时钟频率之一也将目标性能水平映射到相应的电源电压,这个电源电压可以被称为目标电源电压。
在框640中,指示处理器的DCVS电路(例如,460-1a或460-1b)将处理器的时钟频率设置为目标时钟频率。还可以指示DCVS电路将处理器的电源电压设置为目标电源电压。
因此,DCVS方案1100考虑了处理器和共享资源的总体能量效率,并且因此与没有考虑共享资源的能量效率的DCVS方案600相比可以提供增加的总体能量效率。当处理器(例如,CPU 110a或CPU 110b)是使用共享资源的唯一活动处理器并且DCVS方案600将处理器的时钟频率设置为低于时钟频率710-n时,DCVS方案1100将处理器的时钟频率加速到时钟频率710-n。当处理器(例如,CPU 110a或CPU 110b)是使用共享资源的仅两个活动处理器之一并且DCVS方案600将处理器的时钟频率设置为低于时钟频率710-m时,DCVS方案1100将处理器的时钟频率加速到时钟频率710-m。
在一个示例中,资源管理器450可以针对图10中的CPU 110a和CPU 110b中的每个执行DCVS方案1100。在这个示例中,图11中的处理器是指CPU 110a或CPU 110b。在这个示例中,当相应的CPU(图11中的处理器)是活动的,并且多媒体处理器和另一CPU空闲时,资源管理器450可以确定该相应的CPU是使用共享资源的唯一活动处理器。当两个CPU都是活动的,并且多媒体处理器空闲时,资源管理器450可以确定相应的CPU(图11中的处理器)是使用共享资源的仅两个活动处理器之一。多媒体处理器可以包括显示处理器115、视频编码器/解码器120、音频处理器122和GPU 125。
应当理解,本公开的实施例不限于两个CPU的示例,并且可以扩展到包括多于两个CPU(例如,四个CPU)的SoC。在这方面,图13示出了根据某些方面的包括四个CPU 110a至110d和相应的DCVS电路460-1a至460-1d的SoC 1300的示例。在这个示例中,CPU 110a至110d中的每个可以被配置为以与上面参考图4讨论的方式类似的方式向资源管理器450传送相应的状态(例如,活动状态、空闲状态等)。在这个示例中,SoC 1300还包括多媒体处理器115、120、122和125以及在图4中示出的相应的DCVS电路460-2至460-5。SoC 1300还可以包括存储器接口130,其为了便于说明而未在图13中示出。
图13中的资源管理器450可以针对CPU 110a至110d中的每个实现图14所示的示例性DCVS方案1400。在框1410中,确定CPU(即,CPU 110a至110d中的相应的一个)的工作负荷。例如,CPU的工作负荷可以使用上面参考图6讨论的任何技术来确定。
在框1420中,基于CPU的工作负荷来确定针对CPU的目标性能水平。例如,目标性能水平可以使用上面参考图6讨论的任何技术来确定。
在框1430中,取决于存在多个场景中的哪一个,将目标性能水平映射到时钟频率。在这方面,确定存在多个场景中的哪一个,并且基于所确定的场景将目标性能水平映射到时钟频率。
在第一场景中,多媒体处理器(例如,显示处理器115、视频编码器/解码器120、音频处理器122和/或GPU 125)中的至少一个是活动的并且正在使用共享资源(例如,存储器控制器135)。如果存在第一场景,则将目标性能水平映射到第一多个时钟频率1510之一,其示例在图15中示出。例如,目标性能水平可以被映射到第一多个时钟频率1510中使得CPU能够满足目标性能水平的最低的一个时钟频率。在这个示例中,第一多个时钟频率1510包括与图7中的多个可用时钟频率700相同的时钟频率710-1至710-N。
在第二场景中,多媒体处理器空闲,一个CPU是活动的并且正在使用共享资源,并且剩余的CPU空闲。如果存在第二场景,则将目标性能水平映射到第二多个时钟频率1520之一。例如,目标性能水平可以被映射到第二多个时钟频率1520中使得CPU能够满足目标性能水平的最低的一个时钟频率。
第二多个时钟频率1520包括时钟频率710-n至710-N,其中第二多个时钟频率1520中的最低(最小)时钟频率是时钟频率710-n。第二多个时钟频率1520排除低于时钟频率710-n的时钟频率710-1至710-(n-1)。换言之,时钟频率710-1至710-(n-1)被禁用。在图15中,从第二多个时钟频率1520中排除的时钟频率710-1至710-(n-1)被加阴影。因此,在第一场景中被映射到时钟频率710-1至710-(n-1)之一的目标性能水平在第二场景中改为被映射到时钟频率710-n,因为时钟频率710-n是第二多个时钟频率1220中的最低(最小)时钟频率。这相当于,针对在第一场景中目标性能水平被映射到时钟频率710-1至710-(n-1)之一的情况,使CPU的时钟频率相对于在第一场景中设置的时钟频率加速。
在第三场景中,多媒体处理器空闲,两个CPU是活动的并且正在使用共享资源,并且剩余的CPU空闲。如果存在第三场景,则将目标性能水平映射到第三多个时钟频率1530之一。例如,目标性能水平可以被映射到第三多个时钟频率1530中使得CPU能够满足目标性能水平的最低的一个时钟频率。
第三多个时钟频率1530包括时钟频率710-m至710-N,其中第三多个时钟频率1530中的最低(最小)时钟频率是时钟频率710-m。在这个示例中,第三多个时钟频率1530中的最低时钟频率710-m低于第二多个时钟频率1520中的最低时钟频率710-n。第三多个时钟频率1530排除低于时钟频率710-m的时钟频率710-1至710-(m-1)。换言之,时钟频率710-1至710-(m-1)被禁用。在图15中,从第三多个时钟频率1530中排除的时钟频率710-1至710-(m-1)被加阴影。因此,在第一场景中被映射到时钟频率710-1至710-(m-1)之一的目标性能水平在第三场景中改为被映射到时钟频率710-m,因为时钟频率710-m是第三多个时钟频率1530中的最低(最小)时钟频率。这相当于,针对第一场景中目标性能水平被映射到时钟频率710-1至710-(m-1)之一的情况,使CPU的时钟频率相对于在第一场景中设置的时钟频率加速。
在第四场景中,多媒体处理器空闲,三个CPU是活动的并且正在使用共享资源,并且剩余的CPU空闲。如果存在第四场景,则将目标性能水平映射到第四多个时钟频率1540之一。例如,目标性能水平可以被映射到第四多个时钟频率1540中使得CPU能够满足目标性能水平的最低的一个时钟频率。
第四多个时钟频率1540包括时钟频率710-p至710-N,其中第四多个时钟频率1540中的最低(最小)时钟频率是时钟频率710-p。在这个示例中,第四多个时钟频率1540中的最低时钟频率710-p低于第二多个时钟频率1520和第三多个时钟频率1530中的最低时钟频率。第四多个时钟频率1530排除低于时钟频率710-p的时钟频率710-1至710-(p-1)。换言之,时钟频率710-1至710-(p-1)被禁用。在图15中,从第四多个时钟频率1540中排除的时钟频率710-1至710-(p-1)被加阴影。因此,在第一场景中被映射到时钟频率710-1至710-(p-1)之一的目标性能水平在第四场景中改为被映射到时钟频率710-p,因为时钟频率710-p是第四多个时钟频率1540中的最低(最小)时钟频率。这相当于,针对第一场景中目标性能水平被映射到时钟频率710-1至710-(p-1)之一的情况,使CPU的时钟频率相对于在第一场景中设置的时钟频率加速。
在第五场景中,多媒体处理器空闲,并且所有CPU都是活动的并且正在使用共享资源。如果存在第五场景,则将目标性能水平映射到第五多个时钟频率1550之一。例如,目标性能水平可以被映射到第五多个时钟频率1550中使得CPU能够满足目标性能水平的最低的一个时钟频率。
第五多个时钟频率1550包括时钟频率710-s至710-N,其中第五多个时钟频率1550中的最低(最小)时钟频率是时钟频率710-s。在这个示例中,第五多个时钟频率1550中的最低时钟频率710-s低于第二多个时钟频率1520、第三多个时钟频率1530和第四多个时钟频率1540中的最低时钟频率。第五多个时钟频率1550排除低于时钟频率710-s的时钟频率710-1至710-(s-1)。换言之,时钟频率710-1至710-(s-1)被禁用。在图15中,从第五多个时钟频率1550中排除的时钟频率710-1至710-(s-1)被加阴影。因此,在第一场景中被映射到时钟频率710-1至710-(s-1)之一的目标性能水平在第五场景中改为被映射到时钟频率710-s,因为时钟频率710-s是第五多个时钟频率1550中的最低(最小)时钟频率。这相当于,针对第一场景中目标性能水平被映射到时钟频率710-1至710-(s-1)之一的情况,使CPU的时钟频率相对于在第一场景中设置的时钟频率加速。
在任何场景中CPU被映射到的时钟频率可以被称为目标时钟频率。由于每个时钟频率具有相应的电源电压,因此将目标性能水平映射到时钟频率之一也将目标性能水平映射到相应的电源电压,这个电源电压可以被称为目标电源电压。
在框1340中,指示CPU的DCVS电路将CPU的时钟频率设置为目标时钟频率。还可以指示DCVS电路将CPU的电源电压设置为目标电源电压。
因此,当多媒体处理器空闲时,最小时钟频率可以取决于活动的并且正在使用共享资源的CPU的数目。在上面的示例中,最小时钟频率随着活动CPU的数目的增加而减少。结果,当多媒体处理器变为空闲时的速度提升可以随着活动CPU的数目的增加而减少。其原因在于,共享存储器接口(例如,存储器接口130)的数据带宽可以随着正在使用共享存储器接口的活动CPU的数目的增加而增加,其中数据带宽是每单位时间通过存储器接口的数据业务的量(例如,以每秒字节数为单位)。在更高的数据带宽下,可以通过加速CPU来实现的能量效率提高可能减少。
应当理解,示例性DCVS方案1400不限于四个CPU的示例。例如,DCVS方案1400可以应用于两个CPU。在这个示例中,上面讨论的第一、第二和第三场景是适用的,而第四和第五场景可能不适用,因为在这个示例中存在两个CPU。DCVS方案1400还可以扩展到具有多于四个CPU的系统。
图16示出了DCVS电路1660和相应的处理器1610的示例性实现。处理器1610可以是图4所示的处理器110、115、120、122和125中的任何一个。在这个示例中,DCVS电路1660包括可调节电源1630、可调节时钟源1650和DCVS控制器1640。可调节电源1630被配置为向处理器1610提供可以被编程为多个不同电压电平中的任何一个电压电平的可编程电源电压。可调节电源1630可以包括电源管理集成电路(PMIC)。
可调节时钟源1650被配置为向处理器1610提供具有可以被编程为多个不同时钟频率中的任何一个时钟频率的可编程时钟频率的时钟信号。可调节时钟源1650可以包括一个或多个锁相环(PLL)、一个或多个分频器等。例如,可调节时钟源1650可以包括被配置为生成具有不同频率的时钟信号的两个PLL,其中可调节时钟源1650可以根据处理器1610的期望频率来选择时钟信号之一以用于输出给处理器1610(例如,使用多路复用器)。在另一示例中,可调节时钟源可以包括被配置为将时钟信号的频率除以不同的量以生成具有不同频率的多个时钟信号的多个分频器。在这个示例中,可调节时钟源1650可以被配置为根据处理器1610的期望频率来选择时钟信号之一以用于输出给处理器1610(例如,使用多路复用器)。
DCVS控制器1640被配置为根据由资源管理器450(图16中未示出)确定的目标电压和目标时钟频率对可调节电源1630和可调节时钟源1650进行编程,如上所述。更具体地,DCVS控制器1640对可调节电源1630进行编程以输出与目标电压相对应的电源电压,并且将可调节时钟源1650编程为与目标时钟频率相对应的时钟频率。
尽管未在图16中明确示出,但是应当理解,功率门控设备可以设置在可调节电源1630与处理器1610之间。功率门控设备可以被配置为在功率管理器的控制下门控来自可调节电源1630的功率。例如,当处理器1610空闲时,功率管理器可以关闭功率门控设备(例如,一个或多个功率开关)以门控来自可调节电源1630的功率。当处理器1610是活动的时,功率管理器可以打开功率门控设备。
类似地,尽管未在图16中明确示出,但是应当理解,时钟门控设备可以设置在可调节时钟源1650与处理器1610之间。时钟门控设备可以被配置为在功率管理器的控制下门控来自可调节时钟源1650的时钟信号。例如,当处理器1610空闲时,功率管理器可以关闭时钟门控设备(例如,一个或多个时钟开关)以门控时钟信号。当处理器1610是活动的时,功率管理器可以打开时钟门控设备。
如上所述,图4所示的DCVS电路460-1至460-5可以共享一个或多个组件。例如,DCVS电路可以共享可调节电源(例如,可调节电源1630)。在这个示例中,可调节电源可以被配置为向处理器110、115、120、122和125中的每个输出单独的电源电压,其中针对每个处理器的电源电压可以由相应的DCVS控制器独立地编程。备选地,可调节电源可以向两个或更多个处理器输出公共电源电压。在这种情况下,两个或更多个处理器的电源电压可能无法被独立编程。
在另一实例中,DCVS电路可以共享可调节时钟源(例如,可调节时钟源1650)。在这个示例中,可调节时钟源可以被配置为向处理器110、115、120、122和125中的每个输出单独的时钟信号,其中每个处理器的时钟信号的频率可以由相应的DCVS控制器独立地编程。备选地,可调节时钟源可以向两个或更多个处理器输出公共时钟信号。在这种情况下,两个或更多个处理器的时钟频率可能无法被独立编程。
图17是示出根据本公开的某些方面的频率缩放的方法1700的流程图。方法1700可以由资源管理器450执行。
在步骤1710中,确定多个处理器中是否仅子集是活动的,其中多个处理器共享一个或多个资源。例如,多个处理器可以包括一个或多个CPU(例如,CPU 110)和一个或多个多媒体处理器(例如,显示处理器115、视频编码器/解码器120、音频处理器122、GPU等)。在一个示例中,多个处理器的子集可以包括一个或多个CPU,并且一个或多个多媒体处理器可以在子集之外。在这个示例中,当一个或多个CPU是活动的并且一个或多个多媒体处理器空闲时,可以确定仅多个处理器的子集是活动的。一个或多个资源可以包括共享存储器接口(例如,存储器接口130)和共享存储器(例如,存储器150)。
应当理解,确定多个处理器中仅子集是活动的并不排除同一SoC上未包括在上述多个处理器中的其他处理器是活动的。换言之,除了上述多媒体处理器之外,SoC可以包括附加处理器。还应当理解,多个处理器的子集中的处理器的数目小于多个处理器的数目。还应当理解,术语子集可以是指多个处理器中的一个、多个处理器中的两个等。
在步骤1720中,如果确定仅多个处理器的子集是活动的并且多个处理器的子集中的至少一个处理器的频率低于频率阈值,则增加该至少一个处理器的频率。例如,可以通过指示相应的DCVS电路增加频率来增加多个处理器的子集中的至少一个CPU(例如,CPU 110)的频率(例如,时钟频率)。
图18示出了用于临时启用或禁用DCVS方案以根据处理器的工作频率和/或共享资源的操作性能水平来更智能地使用该方案的示例性控制机制。在极少数情况下,使处理器加速可能没有整体功耗优势,或者使处理器加速可能会增加整体功耗。例如,更快地运行处理器可能导致共享资源的频率增加,从而导致共享资源的功率增加太多。在这种情况下,由共享资源中较长空闲持续时间所实现的功率节省可能小于处理器和共享资源中的功率增加。在另一种情况下,共享资源(例如,共享存储器)可能已经正在以最大可能性能水平或以接近最大可能性能水平运行。在这种情况下,更快地运行处理器将导致从处理器到共享资源的流量瓶颈,并且处理器将具有等待访问共享资源的更低效的停滞时间。这些情况可以通过将所监测的系统状态与存储的查找表中的信息进行比较或者基于任何其他检测机制来检测,如下面进一步讨论的。当检测到这些情况时,图8、图11、图14或图17中的DCVS方案可以被暂时禁用以避免功率损失。在这些情况下,可以改为使用图6中的传统DCVS方案。
如上所述,可以通过将监测的系统状态与存储的查找表中的信息进行比较来检测要被禁用DCVS方案的情况。在这个示例中,查找表可以包括对于使处理器加速没有总体功率益处的处理器的工作频率和/或共享资源的性能水平。表中的工作频率和/或性能水平可以基于系统的功率模拟和/或测试来预先确定。在这个示例中,资源管理器450可以确定处理器的工作频率和/或共享资源的性能水平是否在查找表中。如果工作频率和/或性能水平在查找表中,则资源管理器450可以禁用DCVS方案(例如,禁用图8、图11、图14或图17中的DCVS方案)。如果工作频率和/或性能水平不在查找表中,则资源管理器450可以启用DCVS方案(例如,启用图8、图11、图14或图17中的DCVS方案)。
图18示出了根据本公开的某些方面的用于启用或禁用DCVS方案的示例性控制机制。在框1810中,确定处理器的工作频率和/或共享资源的操作性能水平。在框1820中,基于所确定的工作频率和/或性能水平来确定是否禁用DCVS方案(例如,图8、图11、图14或图17中的DCVS方案)。例如,这可以通过将工作频率和/或性能水平与存储的查找表中的工作频率和/或性能水平进行比较来进行,如上所述,或者可以使用另一种检测机制。如果确定要禁用DCVS方案,则在框1830中禁用DCVS方案。如果未确定要禁用DCVS方案,则在框1840中启用DCVS方案。
应当理解,本发明的各方面不限于以上使用的示例性术语。例如,应当理解,DCVS方案也可以称为动态电压和频率(DVFS)方案或其他术语。此外,应当理解,处理器可以称为核或其他术语。
资源管理器450可以用硬件、软件或两者的组合来实现。在硬件实现中,资源管理器450可以包括被配置为执行上面讨论的一个或多个操作的硬连线逻辑或现场可编程逻辑。对于软件实现,资源管理器450可以包括存储在存储介质上并且由处理器执行以执行上面讨论的一个或多个操作的指令(代码)。可以使用的存储介质的一些示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘等。
提供对本发明的先前描述是为了使得本领域技术人员能够制作或使用本发明。对本公开的各种修改对于本领域技术人员来说是很清楚的,并且在不脱离本公开的精神或范围的情况下,本文中定义的一般原理可以应用于其他变型。因此,本公开不旨在限于本文中描述的示例,而是符合与本文中公开的原理和新颖特征相一致的最宽范围。
Claims (21)
1.一种用于频率缩放的方法,包括:
使用片上系统SoC中的资源管理器来确定所述SoC中的多个处理器中是否仅子集是活动的,其中所述多个处理器共享一个或多个资源并且所述子集少于所述SoC中的多个处理器的数目,并且所述多个处理器中的每个处理器耦合到相应的动态时钟和电压缩放DCVS电路系统;以及
如果通过所述资源管理器确定所述多个处理器中仅所述子集是活动的,并且所述数目的多个处理器中在所述子集之外的剩余处理器是空闲的,并且所述多个处理器的所述子集中的至少一个处理器的频率低于频率阈值,则利用所述资源管理器和耦合到所述至少一个处理器的相应的DCVS电路系统,来增加所述至少一个处理器的所述频率;
其中所述多个处理器的所述子集包括一个或多个中央处理单元CPU,并且所述多个处理器中在所述子集之外的一个或多个处理器包括显示处理器、视频编码器/解码器、或图形处理单元GPU中的至少一者,并且所述子集中的所述至少一个处理器的所述频率的所述增加被配置为通过以下来增加共享的所述一个或多个资源在至少一个时间范围期间的空闲时间:增加所述子集中的所述至少一个处理器的速度,以能够在比所述至少一个时间范围的总持续时间少的时间进入空闲状态。
2.根据权利要求1所述的方法,其中所述一个或多个资源包括存储器和存储器控制器,并且所述存储器控制器将所述多个处理器与所述存储器对接。
3.根据权利要求2所述的方法,其中所述存储器在所述多个处理器所在的芯片外部。
4.根据权利要求1所述的方法,其中增加所述至少一个处理器的所述频率包括:将所述至少一个处理器的所述频率增加到所述频率阈值。
5.根据权利要求1所述的方法,还包括:
基于所述至少一个处理器的工作负荷来确定用于所述至少一个处理器的第一频率;以及
将所述至少一个处理器的所述频率设置为所述第一频率;
其中增加所述至少一个处理器的所述频率包括:如果确定所述多个处理器中仅所述子集是活动的、并且所述第一频率低于频率阈值,则将所述至少一个处理器的所述频率从所述第一频率增加到第二频率。
6.根据权利要求5所述的方法,其中所述第二频率等于所述频率阈值。
7.根据权利要求5所述的方法,还包括:如果所述多个处理器中在所述子集之外的一个或多个处理器变为活动的,则将所述至少一个处理器的所述频率从所述第二频率减小回所述第一频率。
8.一种用于频率缩放的装置,包括:
用于使用片上系统ScC中的资源管理器来确定所述SoC中的多个处理器中是否仅子集是活动的部件,其中所述多个处理器共享一个或多个资源并且所述子集少于所述SoC中的多个处理器的数目,并且所述多个处理器中的每个处理器耦合到相应的动态时钟和电压缩放DCVS电路系统;以及
用于在通过所述资源管理器确定所述多个处理器中仅所述子集是活动的,并且所述数目的多个处理器中在所述子集之外的剩余处理器是空闲的,并且所述多个处理器的所述子集中的至少一个处理器的频率低于频率阈值的情况下,利用所述资源管理器和耦合到所述至少一个处理器的相应的DCVS电路系统,来增加所述至少一个处理器的所述频率的部件;
其中所述多个处理器的所述子集包括一个或多个中央处理单元CPU,并且所述多个处理器中在所述子集之外的一个或多个处理器包括显示处理器、视频编码器/解码器、或图形处理单元GPU中的至少一者,并且用于所述子集中的所述至少一个处理器的所述频率的增加的所述部件被配置为通过以下来增加共享的所述一个或多个资源在至少一个时间范围期间的空闲时间:增加所述子集中的所述至少一个处理器的速度,以能够在比所述至少一个时间范围的总持续时间少的时间进入空闲状态。
9.根据权利要求8所述的装置,其中所述一个或多个资源包括存储器和存储器控制器,并且所述存储器控制器将所述多个处理器与所述存储器对接。
10.根据权利要求9所述的装置,其中所述存储器在所述多个处理器所在的芯片外部。
11.根据权利要求8所述的装置,其中用于增加所述至少一个处理器的所述频率的部件包括:用于将所述至少一个处理器的所述频率增加到所述频率阈值的部件。
12.根据权利要求8所述的装置,还包括:
用于基于所述至少一个处理器的工作负荷来确定用于所述至少一个处理器的第一频率的部件;以及
用于将所述至少一个处理器的所述频率设置为所述第一频率的部件;
其中用于增加所述至少一个处理器的所述频率的部件包括:用于在确定所述多个处理器中仅所述子集是活动的、并且所述第一频率低于频率阈值的情况下将所述至少一个处理器的所述频率从所述第一频率增加到第二频率的部件。
13.根据权利要求12所述的装置,其中所述第二频率等于所述频率阈值。
14.根据权利要求12所述的装置,还包括:用于在所述多个处理器中在所述子集之外的一个或多个处理器变为活动的情况下将所述至少一个处理器的所述频率从所述第二频率减小回所述第一频率的部件。
15.一种片上系统SoC,包括:
所述SoC中的多个处理器,其中所述多个处理器共享一个或多个资源;以及
资源管理器,被配置为:
确定所述系统中的所述多个处理器中是否仅子集是活动的,其中所述子集少于所述SoC中的多个处理器的数目,并且所述多个处理器中的每个处理器耦合到相应的动态时钟和电压缩放DCVS电路系统,以及
如果通过所述资源管理器确定所述多个处理器中仅所述子集是活动的,并且所述数目的多个处理器中在所述子集之外的剩余处理器是空闲的,并且所述多个处理器的所述子集中的至少一个处理器的频率低于频率阈值,则增加所述至少一个处理器的所述频率;
其中所述多个处理器的所述子集包括一个或多个中央处理单元CPU,并且所述多个处理器中在所述子集之外的一个或多个处理器包括显示处理器、视频编码器/解码器、或图形处理单元GPU中的至少一者,并且增加所述至少一个处理器的所述频率可操作用于通过以下来增加由所述多个处理器共享的一个或多个资源在至少一个时间范围期间的空闲时间:增加所述子集中的所述至少一个处理器的速度,以能够在比所述至少一个时间范围的总持续时间少的时间进入空闲状态。
16.根据权利要求15所述的系统,其中所述一个或多个资源包括存储器和存储器控制器,并且所述存储器控制器将所述多个处理器与所述存储器对接。
17.根据权利要求16所述的系统,其中所述存储器在所述多个处理器所在的芯片外部。
18.根据权利要求15所述的系统,其中所述资源管理器被配置为将所述至少一个处理器的所述频率增加到所述频率阈值。
19.根据权利要求15所述的系统,其中所述资源管理器被配置为基于所述至少一个处理器的工作负荷来确定用于所述至少一个处理器的第一频率,并且将所述至少一个处理器的所述频率设置为所述第一频率,其中所述资源管理器被配置为如果确定所述多个处理器中仅所述子集是活动的、并且所述第一频率低于频率阈值,则将所述至少一个处理器的所述频率从所述第一频率增加到第二频率。
20.根据权利要求19所述的系统,其中所述第二频率等于所述频率阈值。
21.根据权利要求19所述的系统,其中所述资源管理器被配置为:如果所述多个处理器中在所述子集之外的一个或多个处理器变为活动的,则将所述至少一个处理器的所述频率从所述第二频率减小回所述第一频率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/094,909 | 2016-04-08 | ||
US15/094,909 US10296067B2 (en) | 2016-04-08 | 2016-04-08 | Enhanced dynamic clock and voltage scaling (DCVS) scheme |
PCT/US2017/019410 WO2017176383A1 (en) | 2016-04-08 | 2017-02-24 | Enhanced dynamic clock and voltage scaling (dcvs) scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108885486A CN108885486A (zh) | 2018-11-23 |
CN108885486B true CN108885486B (zh) | 2021-05-25 |
Family
ID=58358822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780022134.5A Active CN108885486B (zh) | 2016-04-08 | 2017-02-24 | 增强型动态时钟和电压缩放(dcvs)方案 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10296067B2 (zh) |
EP (1) | EP3440531B1 (zh) |
KR (1) | KR20180134343A (zh) |
CN (1) | CN108885486B (zh) |
AU (1) | AU2017247094A1 (zh) |
BR (1) | BR112018070560A2 (zh) |
WO (1) | WO2017176383A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180078558A (ko) * | 2016-12-30 | 2018-07-10 | 삼성전자주식회사 | 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템 |
US10545556B2 (en) * | 2017-05-10 | 2020-01-28 | Texas Instruments Incorporated | Fine-grained dynamic power and clock-gating control |
US10732694B2 (en) * | 2017-09-22 | 2020-08-04 | Qualcomm Incorporated | Power state control of a mobile device |
KR102618561B1 (ko) | 2018-07-16 | 2023-12-27 | 삼성전자주식회사 | 로컬 오실레이터를 포함하는 rf 집적 회로 및 그 동작 방법 |
WO2021021201A1 (en) * | 2019-07-31 | 2021-02-04 | Hewlett-Packard Development Company, L.P. | Computing devices |
JP7316465B2 (ja) * | 2020-10-12 | 2023-07-27 | 日立Astemo株式会社 | 電子制御装置及び電子制御装置の消費電力低減方法 |
KR20220113087A (ko) | 2021-02-05 | 2022-08-12 | 삼성전자주식회사 | Dvfs 동작을 수행하는 집적 회로, 컴퓨팅 시스템 및 집적 회로의 동작 방법 |
US11449125B1 (en) * | 2021-04-01 | 2022-09-20 | Qualcomm Incorporated | Adaptive dynamic clock and voltage scaling |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101233475A (zh) * | 2005-08-02 | 2008-07-30 | 先进微装置公司 | 增加于多核心处理器上的一个或多个核心的工作量效能 |
CN101379453A (zh) * | 2006-03-07 | 2009-03-04 | 英特尔公司 | 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置 |
CN103914121A (zh) * | 2013-01-04 | 2014-07-09 | 华为技术有限公司 | 多机系统、用于优化多机系统功耗的方法及装置 |
WO2016041509A1 (en) * | 2014-09-17 | 2016-03-24 | Mediatek Inc. | Dynamic frequency scaling in multi-processor systems |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1204017B1 (en) * | 2000-11-03 | 2007-04-11 | STMicroelectronics S.r.l. | Device and method for selectively powering down integrated circuit blocks |
US7143411B2 (en) * | 2002-03-15 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Capping processor utilization |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
US20060123422A1 (en) * | 2004-12-02 | 2006-06-08 | International Business Machines Corporation | Processor packing in an SMP server to conserve energy |
US7502948B2 (en) * | 2004-12-30 | 2009-03-10 | Intel Corporation | Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores |
US7613941B2 (en) * | 2005-12-29 | 2009-11-03 | Intel Corporation | Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state |
US7636864B2 (en) * | 2006-05-03 | 2009-12-22 | Intel Corporation | Mechanism for adaptively adjusting a direct current loadline in a multi-core processor |
US7650518B2 (en) * | 2006-06-28 | 2010-01-19 | Intel Corporation | Method, apparatus, and system for increasing single core performance in a multi-core microprocessor |
US20090049314A1 (en) * | 2007-08-13 | 2009-02-19 | Ali Taha | Method and System for Dynamic Voltage and Frequency Scaling (DVFS) |
US8032772B2 (en) * | 2007-11-15 | 2011-10-04 | Intel Corporation | Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor |
US8370663B2 (en) * | 2008-02-11 | 2013-02-05 | Nvidia Corporation | Power management with dynamic frequency adjustments |
US20090288092A1 (en) * | 2008-05-15 | 2009-11-19 | Hiroaki Yamaoka | Systems and Methods for Improving the Reliability of a Multi-Core Processor |
US8296773B2 (en) * | 2008-06-30 | 2012-10-23 | International Business Machines Corporation | Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance |
US8195859B2 (en) * | 2008-12-03 | 2012-06-05 | Hitachi, Ltd. | Techniques for managing processor resource for a multi-processor server executing multiple operating systems |
EP2437170A4 (en) * | 2009-05-25 | 2013-03-13 | Panasonic Corp | MULTIPROCESSOR SYSTEM, MULTIPROCESSOR CONTROL METHOD AND INTEGRATED MULTIPROCESSOR CIRCUIT |
US8250395B2 (en) * | 2009-11-12 | 2012-08-21 | International Business Machines Corporation | Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors |
KR101039782B1 (ko) * | 2009-11-26 | 2011-06-09 | 한양대학교 산학협력단 | 능동 메모리 프로세서를 포함하는 네트워크-온-칩 시스템 |
US9098274B2 (en) * | 2009-12-03 | 2015-08-04 | Intel Corporation | Methods and apparatuses to improve turbo performance for events handling |
US9176572B2 (en) * | 2009-12-16 | 2015-11-03 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9104411B2 (en) * | 2009-12-16 | 2015-08-11 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9600059B2 (en) * | 2010-09-20 | 2017-03-21 | Apple Inc. | Facilitating power management in a multi-core processor |
US8793512B2 (en) * | 2010-10-29 | 2014-07-29 | Advanced Micro Devices, Inc. | Method and apparatus for thermal control of processing nodes |
US8627128B2 (en) * | 2010-11-09 | 2014-01-07 | International Business Machines Corporation | Power management for processing capacity upgrade on demand |
US9063730B2 (en) * | 2010-12-20 | 2015-06-23 | Intel Corporation | Performing variation-aware profiling and dynamic core allocation for a many-core processor |
US9075652B2 (en) * | 2010-12-20 | 2015-07-07 | Microsoft Technology Licensing, Llc | Idle time service |
US20120297232A1 (en) * | 2011-05-16 | 2012-11-22 | Bircher William L | Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value |
US8793515B2 (en) * | 2011-06-27 | 2014-07-29 | Intel Corporation | Increasing power efficiency of turbo mode operation in a processor |
US9081517B2 (en) * | 2011-08-31 | 2015-07-14 | Apple Inc. | Hardware-based automatic clock gating |
US20130097415A1 (en) * | 2011-10-12 | 2013-04-18 | Qualcomm Incorporated | Central Processing Unit Monitoring and Management Based On A busy-Idle Histogram |
US8943340B2 (en) * | 2011-10-31 | 2015-01-27 | Intel Corporation | Controlling a turbo mode frequency of a processor |
US20140317389A1 (en) * | 2011-11-18 | 2014-10-23 | The Trustees Of The University Of Pennsylvania | Computational sprinting using multiple cores |
US9075610B2 (en) * | 2011-12-15 | 2015-07-07 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation |
US9304570B2 (en) * | 2011-12-15 | 2016-04-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements |
US9137848B2 (en) * | 2012-01-31 | 2015-09-15 | Lg Electronics Inc. | Mobile terminal, controlling method thereof and recording medium thereof |
US9058166B2 (en) * | 2012-03-05 | 2015-06-16 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for managing processing resources in a distributed processing system |
US9218045B2 (en) * | 2012-06-30 | 2015-12-22 | Intel Corporation | Operating processor element based on maximum sustainable dynamic capacitance associated with the processor |
JP2014021786A (ja) * | 2012-07-19 | 2014-02-03 | International Business Maschines Corporation | コンピュータ・システム |
US9037889B2 (en) * | 2012-09-28 | 2015-05-19 | Intel Corporation | Apparatus and method for determining the number of execution cores to keep active in a processor |
US9292356B2 (en) * | 2012-12-03 | 2016-03-22 | Qualcomm Innovation Center, Inc. | Thread processing on an asymmetric multi-core processor |
US9372526B2 (en) * | 2012-12-21 | 2016-06-21 | Intel Corporation | Managing a power state of a processor |
JP6038699B2 (ja) * | 2013-03-22 | 2016-12-07 | シャープ株式会社 | 電子機器 |
US9304573B2 (en) * | 2013-06-21 | 2016-04-05 | Apple Inc. | Dynamic voltage and frequency management based on active processors |
US9927866B2 (en) * | 2013-11-21 | 2018-03-27 | Qualcomm Incorporated | Method and system for optimizing a core voltage level and enhancing frequency performance of individual subcomponents for reducing power consumption within a PCD |
US9323574B2 (en) | 2014-02-21 | 2016-04-26 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Processor power optimization with response time assurance |
US9244747B2 (en) | 2014-03-13 | 2016-01-26 | Qualcomm Incorporated | System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication |
US9378536B2 (en) * | 2014-04-30 | 2016-06-28 | Qualcomm Incorporated | CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing |
US10095286B2 (en) | 2014-05-30 | 2018-10-09 | Apple Inc. | Thermally adaptive quality-of-service |
US10082858B2 (en) * | 2014-06-23 | 2018-09-25 | Mellanox Technologies, Ltd. | Peripheral device assistance in reducing CPU power consumption |
US20160011623A1 (en) * | 2014-07-09 | 2016-01-14 | Intel Corporation | Processor state control based on detection of producer/consumer workload serialization |
US20160210174A1 (en) * | 2015-01-15 | 2016-07-21 | Microsoft Corporation | Hybrid Scheduler and Power Manager |
US20160224053A1 (en) * | 2015-01-30 | 2016-08-04 | Qualcomm Incorporated | Timer-based processing unit operational scaling employing timer resetting on idle process scheduling |
US9990024B2 (en) * | 2015-09-09 | 2018-06-05 | Qualcomm Incorporated | Circuits and methods providing voltage adjustment as processor cores become active based on an observed number of ring oscillator clock ticks |
US10579125B2 (en) * | 2016-02-27 | 2020-03-03 | Intel Corporation | Processors, methods, and systems to adjust maximum clock frequencies based on instruction type |
-
2016
- 2016-04-08 US US15/094,909 patent/US10296067B2/en active Active
-
2017
- 2017-02-24 KR KR1020187028948A patent/KR20180134343A/ko not_active Application Discontinuation
- 2017-02-24 BR BR112018070560-8A patent/BR112018070560A2/pt unknown
- 2017-02-24 AU AU2017247094A patent/AU2017247094A1/en not_active Abandoned
- 2017-02-24 WO PCT/US2017/019410 patent/WO2017176383A1/en active Application Filing
- 2017-02-24 CN CN201780022134.5A patent/CN108885486B/zh active Active
- 2017-02-24 EP EP17711822.1A patent/EP3440531B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101233475A (zh) * | 2005-08-02 | 2008-07-30 | 先进微装置公司 | 增加于多核心处理器上的一个或多个核心的工作量效能 |
CN101379453A (zh) * | 2006-03-07 | 2009-03-04 | 英特尔公司 | 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置 |
CN103914121A (zh) * | 2013-01-04 | 2014-07-09 | 华为技术有限公司 | 多机系统、用于优化多机系统功耗的方法及装置 |
WO2016041509A1 (en) * | 2014-09-17 | 2016-03-24 | Mediatek Inc. | Dynamic frequency scaling in multi-processor systems |
Also Published As
Publication number | Publication date |
---|---|
US10296067B2 (en) | 2019-05-21 |
CN108885486A (zh) | 2018-11-23 |
AU2017247094A1 (en) | 2018-09-27 |
EP3440531A1 (en) | 2019-02-13 |
US20170293340A1 (en) | 2017-10-12 |
KR20180134343A (ko) | 2018-12-18 |
EP3440531B1 (en) | 2020-03-18 |
WO2017176383A1 (en) | 2017-10-12 |
BR112018070560A2 (pt) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885486B (zh) | 增强型动态时钟和电压缩放(dcvs)方案 | |
US7281148B2 (en) | Power managed busses and arbitration | |
KR101703467B1 (ko) | 액티브 프로세서에 기초한 동적 전압 및 주파수 관리 | |
US7454632B2 (en) | Reducing computing system power through idle synchronization | |
US7610497B2 (en) | Power management system with a bridge logic having analyzers for monitoring data quantity to modify operating clock and voltage of the processor and main memory | |
US6820209B1 (en) | Power managed graphics controller | |
US8447994B2 (en) | Altering performance of computational units heterogeneously according to performance sensitivity | |
US10048741B1 (en) | Bandwidth-aware multi-frequency performance estimation mechanism | |
US8214662B2 (en) | Multiprocessor control unit, control method performed by the same, and integrated circuit | |
US20160378168A1 (en) | Dynamic power management optimization | |
US20180067539A1 (en) | Ultra-low-power design memory power reduction scheme | |
US9377833B2 (en) | Electronic device and power management method | |
US20130262792A1 (en) | Memory device support of dynamically changing frequency in memory systems | |
US9507641B1 (en) | System and method for dynamic granularity control of parallelized work in a portable computing device (PCD) | |
JP4139579B2 (ja) | 半導体装置および半導体装置の動作モード制御方法 | |
US10732697B2 (en) | Voltage rail coupling sequencing based on upstream voltage rail coupling status | |
US10304506B1 (en) | Dynamic clock control to increase stutter efficiency in the memory subsystem | |
US10496298B2 (en) | Configurable flush of data from volatile memory to non-volatile memory | |
EP2804075B1 (en) | Controlling power consumption of a processor using interrupt-mediated on-off keying | |
US20240211014A1 (en) | Power-aware, history-based graphics power optimization | |
US20160306406A1 (en) | Performance State Selection for Low Activity Scenarios | |
US11442522B2 (en) | Method of controlling performance boosting of semiconductor device based on at least user input and feedback from previous boosting policies and semiconductor device performing the method | |
US20240106423A1 (en) | Leveraging an Adaptive Oscillator for Fast Frequency Changes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |