CN112306215A - 用于管理逐核的性能状态的技术 - Google Patents

用于管理逐核的性能状态的技术 Download PDF

Info

Publication number
CN112306215A
CN112306215A CN202010218607.2A CN202010218607A CN112306215A CN 112306215 A CN112306215 A CN 112306215A CN 202010218607 A CN202010218607 A CN 202010218607A CN 112306215 A CN112306215 A CN 112306215A
Authority
CN
China
Prior art keywords
frequency
cores
core
preliminary
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010218607.2A
Other languages
English (en)
Inventor
E·威斯曼
H·阿布-萨拉
N·罗森茨维格
E·罗特姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN112306215A publication Critical patent/CN112306215A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了用于管理逐核的性能状态的技术。处理器包括多个核并且包括功率管理控制逻辑,该功率管理控制逻辑用于(a)为这些核中的每个核确定初步频率以及(b)基于该初步频率来确定最大频率。功率管理控制逻辑用于基于最大频率和缩减因数来确定动态调谐的频率。功率管理控制逻辑用于响应于所选择的核的动态调谐的频率大于该核的初步频率而将该核设置为至少等于动态调谐的频率的频率。功率管理控制逻辑用于响应于所选择的核的初步频率大于该核的动态调谐的频率而将该核设置为至少等于初步频率的频率。描述并要求保护其他实施例。

Description

用于管理逐核的性能状态的技术
技术领域
本公开总体上涉及数据处理系统并且具体涉及用于使得处理器能够高能效的技术。
背景技术
数据处理系统可包括具有多个核的中央处理单元(CPU),并且每个核可包括多个逻辑处理器(LP)。CPU可以能够在不同的时间以不同的频率执行,其中随着频率增加需要更多的功率。具体而言,每一个可接受的频率可与对应的电压要求配对。CPU支持的每一个不同的电压-频率配对可被称为“性能状态”或“P状态”。
常规CPU可被设计成利用单片P状态模型。在单片P状态模式下,处理器针对所有的核始终使用同一P状态。换言之,当前P状态为CPU中的所有核设置速度和电压。因此,对于此类CPU,该P状态是逐CPU的P状态。
一些当前的开发工作针对允许CPU中的不同的核在同一时间使用不同的P状态的CPU类型。换言之,此种类型的CPU支持逐核的P状态。如下文更详细地描述,本公开介绍了用于使得CPU能够自动地选择高效的逐核的P状态的技术。
附图说明
从所附权利要求、下列对一个或多个示例实施例的详细描述、以及对应的附图,本发明的特征和优势将变得显而易见,其中:
图1是描绘利用自动地选择高效的逐核的P状态的技术的数据处理系统的示例实施例的框图。
图2是描绘针对图1的处理器中的核的功率与频率之间的关系的图表。
图3是描绘针对图1的处理器中的核上的典型工作负荷的性能与频率之间的关系的图表。
图4是描绘在示例场景中相对于各种P状态的图1的PMU中的各种性能管理设置的图表。
图5A-图5B呈现用于出于效率来管理逐核的P状态的过程的示例实施例的流程图。
图6是描绘在另一示例场景中相对于各种P状态的图1的PMU中的各种性能管理设置的图表。
图7是根据本发明的实施例的可具有多于一个的核、可具有集成存储器控制器、并且可具有集成图形器件的处理器的框图。
图8是根据本发明的实施例的系统的框图。
图9和图10是根据本发明的实施例的更具体的示例性系统的框图。
图11是根据本发明的实施例的芯片上系统的框图。
具体实施方式
如上文所指示,本公开介绍了用于使得CPU能够出于效率来管理逐核的P状态的技术。
图1是描绘利用自动地选择高效的逐核的P状态的技术的数据处理系统10的示例实施例的框图。数据处理系统10是假想系统,具有各种假想组件和特征,以说明本文中所介绍的技术。
在图1的实施例中,数据处理系统10包括CPU或处理器12,以及诸如随机存取存储器(RAM)14、非易失性存储(NVS)16、网络接口控制器(NIC)18等之类的其他组件。而且,在图1的实施例中,处理器12包括四个核20A-20D并且包括诸如功率管理单元(PMU)50之类的其他模块。PMU50也可被称为功率控制单元。另外,每个核提供两个逻辑处理器(LP)。例如,核20A包括LP 22和LP 24。然而,在其他实施例中,处理器可包括更少的核或更多的核以及每个核的更少的LP或更多的LP。例如,处理器可包括数十个或数百个核,并且那些核中的每一个可包括一个或多个LP。处理器可被实现为被安装至衬底以形成封装的集成电路或“芯片”。替代地,处理器可被实现为包含多于一个芯片的封装。
NVS 160包括软件60,软件60可包括操作系统(OS)、一个或多个用户应用等。数据处理系统10可将软件60复制到RAM 14中以用于在LP中的一个或多个LP上执行。具体而言,数据处理系统10可将软件60作为处理器12上的线程来执行,并且每个LP可与其他LP上运行的其他线程同时地执行线程。
在处理器12中,PMU 50能够将每一个核设置为不同的P状态。换言之,处理器12支持逐核的P状态。
如下文更详细地描述,在图1的实施例中,PMU 50包括各种数据存储结构,这些数据存储结构包含涉及各个核、LP以及处理器12内的此类核、LP的功率管理设置。出于本公开的目的,此类数据存储结构可被称为寄存器。在一个实施例中,此类寄存器被实现为“专用寄存器”(SPR)。SPR也可被称为“型号专属寄存器”(MSR)。
如下文更详细地描述,一种类型的功率管理设置可被称为“效率/性能偏好(EPP)设置”,并且PMU 50可为每个LP提供一个EPP寄存器,以使得OS能够为正在执行的每一个不同的线程提供不同的EPP设置。具体而言,OS可使用针对LP的EPP设置向处理器提供关于该LP的线程应当以偏好能效的方式还是以偏好性能的方式来执行的指示。例如,OS可提供EPP设置来指示工作负荷类别(例如,前台、后台、实时等)。
在一个实施例中,此类EPP设置可遵循诸如2016年9月的“英特尔
Figure BDA0002425281570000031
64和IA-32架构,软件开发人员手册,第3B卷:系统编程引导,第二部分”(“SDM”)之类的文档中针对“能量/性能偏好控制”所阐述的指导。例如,如SDM的14-8和14-9页上所指示,OS可将EPP设置或值写入到SPR(被称为“IA32_HWP_REQUEST寄存器”)的位31:24,其中,值0指示偏好最大性能,并且0FFFxH指示偏好最大能效。然而,出于说明的目的,本公开描述其中处理器12支持0-10的EPP设置的假想场景,其中,0指示偏好最大性能,并且10指示偏好最大能效。EPP设置也可被称为“软件提示”。PMU 50可至少部分地基于那些提示来选择核的P状态。例如,对于每一个核,PMU 50可基于EPP设置和该核的当前工作负荷来选择P状态,并且随后PMU控制流程将会将该P状态应用于该核。
图1使用虚线来指示哪些功率管理设置涉及哪些组件。例如,围绕EPP寄存器23的虚线指示该寄存器中的EPP设置涉及LP 22,并且围绕EPP寄存器25的虚线指示该寄存器中的EPP设置涉及LP 24。类似地,核功率管理(CPM)寄存器52周围的虚线指示CPM寄存器52中的设置涉及核20A。如所图示,处理器12还提供针对其他LP中的每一个的EPP寄存器(EPPR)以及针对其他核中的每一个的CPM寄存器。因此,EPP寄存器包含逐LP的功率管理设置,并且CPM寄存器包含逐核的功率管理设置。
另外,如下文更详细地描述,PMU 50包括用于全局可适用的功率管理设置的全局功率管理(GPM)寄存器54。然而,在其他实施例中,处理器可使用任何合适数量的寄存器来存储功率管理设置。例如,可将全部设置存储在单个寄存器中。因此,出于本公开的目的,术语“寄存器”可用于指代寄存器的部分。
由于处理器12支持逐核的P状态,因此PMU 50可以能够通过以相对低的P状态运行一个或多个核同时以相对高的P状态运行一个或多个其他核来节省功率(相对于针对所有核必须使用同一P状态的处理器)。另外,通过节省功率,通过使用在核的另一子集上节省的功率净空来提高核的子集的频率可以是可能的。
一般而言,PMU可至少部分地基于该核的核利用度以及该核正在进行的活动的类型来为每一个核选择P状态。PMU还可考虑附加的运行时状况或属性,包括诸如活动核的平均数量之类的最近的利用状况。为每一个核选择合适的P状态是提取逐核的P状态能力的潜在效率益处的关键要求。然而,选择提供性能与效率的期望平衡的P状态可能是非常具有挑战性的。如下文更详细地描述,除了考虑核利用度、核活动类型之外,PMU 50在为核选择P状态时还可考虑某些附加参数。那些考虑因素可使得处理器12能够以性能与效率的期望平衡来操作。
一般而言,当开发人员使用现代编程技术创建应用时,应用可利用多个软件线程在线程之间划分该应用的工作,以得到更好的并行性,在与输入/输出(I/O)设备或其他系统过程一起工作的同时避免串行化,在不同的软件组件之间实现生产者-消费者模式,调制该应用,以及出于其他原因。而且,处理器可同时执行多个软件线程,这些软件线程具有相互依赖性。例如,当OS在不同的核之间迁移线程时,迁移过程可能造成遵循生产者-消费者模式的状况。换言之,线程迁移中所涉及的操作可遵循生产者-消费者模式。
当线程相互依赖时,减慢这些线程中的一个线程可能影响整体应用性能。例如,当每个核的P状态基于该核的核利用度时,如果特定核比其他核被更少地加载,则处理器可将该特定核设置为低频率。然而,当另一核依赖于该低频率核时,该另一核最终可等待低频率核,由此减慢整个应用。因此,相较于使用同一相对高的P状态用于所有核,使用逐核的P状态将一个或多个核设置为相对低的P状态可能导致性能降级。
无论何时存在线程依赖性,处理器都可能难以选择为所调用的所有线程提供性能与效率的期望平衡的P状态。OS调度器可具有缓解这些问题中的一些问题的负载平衡机制。具体而言,当存在许多对称的软件线程时,来自负载平衡的缓解可能是最有效的。然而,一些工作负荷(诸如遵循生产者-消费者模式的那些工作负荷)可能导致负载平衡机制作出不提供性能与效率的期望平衡的P状态决策。
一种用于改善逐核的P状态的潜在性能降级的技术是,对于OS,为彼此相互依赖的所有线程指定相同的EPP设置,并且对于处理器,随后对于该组中的所有线程使用相同的P状态。具体而言,对于共享相同的EPP值的所有核,该组中的每个核将共享该组的最大P状态。这些种类的技术一般可被称为“EPP分组”。并且具体而言,当处理器对于EPP组中的所有线程使用相同的P状态时,该技术可被称为“基本EPP分组”。
例如,利用基本EPP分组,当EPP组包括具有多个线程的多个核时,处理器将基于当前状况和那些核的LP的EPP设置之类的因素来为那些核中的全部确定初步P状态。处理器随后将使用针对核中的全部的那些P状态中的最高P状态。另外,即使具有最高初步P状态的核上的LP进入空闲状态,处理器可继续将该P状态用于其他核。换言之,即使线程在其运行时期间是空闲的,该空闲线程的P状态请求应当仍然是有效的。因此,具有相互依赖性(例如,由于线程迁移、生产者-消费者模式等)的线程可实现良好的性能。
当多个应用正在同时执行并且每一个应用指定不同的EPP值时,EPP分组可以是有效的。然而,如果每一个应用指定相同的EPP值,或者如果单个应用针对其线程中的全部使用相同EPP值,则处理器能以P状态运行所有核。在该情况下,一些核会消耗必要或期望的更多的功率,并且其他核可能运行得比期望更慢。如果处理器在为每个核确定P状态时不考虑诸如EPP设置之类的软件提示,则效率和/或性能也可能受到影响。当处理器将所有的核分组在一起时,即使核并非全部具有相同的EPP设置,效率和/或性能也可能受到影响。
支持逐核的P状态的处理器可能允许每一个核选择它自己的P状态,并且该处理器可能不基于与核之间可能的直接或间接依赖关系相关联的因素来改变或微调那些P状态。然而,如果处理器不基于此类因素来改变或微调那些P状态,则性能可能受到影响。例如,如上文所指示,如果两个核是相互依赖的然而处理器仍将那些核中的一个核设置为显著低于另一核的P状态的P状态,则性能可能受到影响。EPP分组是处理器可用来考虑那些类型的依赖关系的一种技术。然而,EPP分组可能导致处理器就增加功耗而言过于激进,因为过程可能将一个或多个核的P状态设置在相比于必要的或期望的效率更低的水平。
相比之下,处理器可使用本文中所描述的技术来以低或最小效率损耗实现显著的性能增益。
如下文更详细的描述,处理器12支持增强的EPP分组。因此,对于具有相同EPP的每一组核,PMU 50协调那些核的P状态。然而,代替于要求那些核中的全部使用相同的P状态,PMU 50以相对于基本EPP分组模型并且相对于单片P状态模型增加性能或使性能最大化的方式向每一个核P状态请求提供某种水平的灵活度而不导致效率的过度降低。另外或替代地,处理器可使用像本文中所描述的那些技术之类的技术来实现性能与效率的期望平衡,其中,基于除EPP设置之外的其他因素将核组织为组。
图2是描绘针对处理器12中的代表性核的功率与频率之间的关系的图表。如所图示,频率越高则要求的功率越多。另外,随着功率增加,实现给定的功率增加量所需要的功率量越大。换言之,针对每个P状态,功率对于频率的比率随着功率增加而增加。因此,当在由核支持的高频率范围中选择频率时,发生最大的相对功率增加或减少。
针对从一个P状态变换到下一P状态的功率Δ可被称为能量影响(EI),并且每一个连续的频率改变可被称为频率影响(FI)。而且,由于能量等于功率乘以时间,并且时间可以被认为是性能的倒数,因此,可以将能量表示为功率除以性能。相应地,如果两个P状态之间的相对功率减量大于相对性能减量,则可通过使用那些P状态中较低的P状态来节省能量。在图2中,描绘了五个不同的P状态:P0-P4,其中,P0被认为是最高P状态,因为它具有最高频率。而且,从每一个P状态变换到下一P状态的EI被图示为EI1-EI4,并且对应的FI被图示为FI1-FI4。具体而言,出于说明的目的,将核示出为要求0.1伏特的增加以从P状态P4下的3.0千兆赫(GHz)变换至P状态P3下的3.4GHz。而且,从P3下的3.4GHz变换至P2下的3.8GHz需要0.2伏特的增加,从P2下的3.8GHz变换到P1下的4.2GHz需要0.4伏特的增加,并且从P1下的4.2GHz变换到P0下的4.6GHz需要0.8伏特的增加。因此,FI是恒定的或线性的,而EI呈指数地增加。
另外,当电压增加时,核温度至少部分由于晶体管泄漏效应以及整体核功率的增加而增加。一般而言,处理器12中的每一个核可根据下列功率函数(其中,“CDYN”表示动态电容)来表现:
核功率:=CDYN*电压2*功率+泄漏(温度,功率)
总体而言,核的核功率与该核的频率有关,并且更具体地,核功率是与该频率对应的电压的函数。具体而言,作为频率的函数的功率不是线性的而是多项式的。
然而,尤其是在较高的功率下,给定的核频率的增加典型地不会引起整体性能的成比例的增加。
图3是描绘处理器12中的代表性的核上的典型工作负荷的性能与频率之间的关系的图表。根据阿姆达尔定律,即使在应用的性能的一些方面可随频率而缩放时,I/O操作一般不受频率改变影响。另外,对于给定的频率改变,工作负荷的性能受活动线程的中间可缩放性的影响。一般地,此种中间可缩放性主要根据存储器停顿。存储器停顿等等的负面影响随着频率增加而增加。
图3描绘了针对不涉及I/O、不涉及存储器停顿、并且不涉及不随频率而缩放的其他操作的假想的“理想情况”的性能与频率之间的关系。在理想情况下,性能是核频率的线性函数。图3还描绘了其中增加频率的性能影响由于典型的工作负荷包括诸如I/O和存储器停顿之类的不随频率而缩放的一些操作而大多小于理想情况的“典型情况”。
在将图2和图3放在一起考虑时,显然,朝向较高的频率范围,频率的任何进一步的增加将涉及功耗的显著增加,从而推动性能的相对小的增加。相比之下,朝向较低的频率范围,频率的任何增加将涉及功耗的很小的增加,从而推动性能的相对大的增加。换言之,在核的频率范围的最低部分,如果增加核的频率,则以功率的很小的增加为成本,性能增益的量将是很高的。如上文所指示,如果两个P状态之间的相对功率减量大于相对性能减量,则可通过使用那些P状态中较低的P状态来节省能量。但是如果两个P状态之间的相对功率减量小于相对性能减量,则可通过使用那些P状态中较高的P状态来节省能量。
本公开介绍了根据关于根据频率的性能与功率的上文所描述的结果的用于以增加性能而不过度降低效率的方式来管理逐核的P状态的技术。换言之,本公开介绍了用于平衡性能与效率的技术。
再次参考图1,处理器12用来平衡性能与效率的特征包括GPM寄存器54、CPM寄存器52、以及EPPR,诸如,EPP寄存器23和25。如上文所指示,PMU 50使用CPM寄存器52来执行核专属功率管理设置,并且PMU 50使用GPM寄存器54来指定全局可适用的功率管理设置。具体而言,如图1所图示,CPM寄存器52可包括核级EPP、初步频率以及优化频率。对于那些设置中的每一个,下列列表提供符号(在括号中)和简要描述:
·核级EPP-(E):如下文更详细地描述,PMU 50基于对针对核的LP的各个EPP的解析在总体上分派给该核的EPP。
·初步频率-(P):由PMU 50基于(E)并且基于诸如当前执行状况之类的其他运行时因素分配给核的初步频率。(也被称为(AKA)“Prelim_Freq_(P)(初步_频率_(P))”或仅仅“(P)”。)
·优化频率-(O):在所有核均处于同一EPP组中时,一旦PMU 50完成频率优化过程,要由核使用的频率。(也被称为“Optimized-Freq_(O)(优化-频率_(O))”或仅仅“(O)”。)
·优化频率-(O'):在所有核并非都处于同一EPP组中时,一旦PMU 50完成频率优化过程,要由核使用的频率。(也被称为“Optimized-Freq_(O')(优化-频率_(O'))”或仅仅“(O')”。)
在下文参考图5A-图5B进一步描述这些设置。
如图1还图示出,GPM寄存器54可包括调谐频率、缩减因数、最大(“max”)封装初步频率、动态调谐的频率、底限、以及凸起。对于那些设置中的每一个,下列列表提供符号(在括号中)和简要描述:
·调谐频率-(T):在一些情况下,对频率进行调谐使得PMU 50生产高于(P)或(D)的优化频率。(也被称为“Tuned-Freq_(T)(调谐-频率_(T))”或仅仅“(T)”。)
·缩减因数(R):由PMU 50用来计算低于(A)的动态调谐的频率(D)的0与1(非包含式)之间的值。(也被称为“Reduction-Factor_(R)(缩减-因数_(R))”或仅仅“(R)”)
·最大封装初步频率-(A):考虑处理器12中的所有核,由PMU 50分派给核的最大初步频率(P)。(也被称为“Max-Package-Prelim-Freq_(A)(最大-封装-初步-频率_(A))”或仅仅“(A)”。)
·动态调谐的频率(D):基于(A)和(R)的动态调谐的频率——尤其是(D):=(A)*(R)。(也被称为“Dyn-tuning-freq_(D)(动态-调谐的-频率_(D))”或仅仅“(D)”。)
·底限-(F):由PMU 50用来确定(O)的临时值。
·凸点-(B):由PMU 50用来确定(O)的另一临时值。
在一个实施例或场景中,诸如当所有核具有相同的EPP值时,PMU 50可使用以上因素来优化每个核的频率。
在另一实施例或场景中,诸如当核并非全都具有相同的EPP值时,PMU 50可将核的子集分派到不同的组,并且PMU 50可使用不同的值来优化不同的组。替代地,如上文所指示,PMU可基于涉及核之间的性能相互依赖关系的其他因素将核的子集分派到不同的组。然而,出于本公开的目的,此类组可被称为“EPP组”。相应地,PMU 50可使用EPP组数据寄存器56来计算和保存针对每一个不同的EPP组的不同的值。在图1的实施例中,EPP组数据寄存器56是GPM寄存器54的部分。在其他实施例中,EPP组数据寄存器可以区别于GPM寄存器。
在图1的实施例中,对于每个EPP组,EPP组数据寄存器56中的值可包括EPP组标识符(ID)、属于该组的核的列表、最大初步频率、动态调谐的频率、底限、以及凸点。在图1中,第一EPP组的EPP组ID被描绘为第一列中的“EPP组ID1”,并且在下一列描绘为省略号,以指示附加组将具有相同种类的数据。下列列表提供针对每一个组的值或设置中的一些的符号(在括号中)和简要描述:
·最大组初步频率-(A'):考虑当前EPP组中的所有核,由PMU 50分派给核的最大初步频率(P)。(也被称为(AKA)“Max-Group-Prelim-Freq_(A')(最大-组-初步-频率_(A'))”或仅仅“(A')”。)
·动态调谐的频率-(D'):基于(A')和(R)的动态调谐的频率——尤其是(D'):=(A')*(R)。(也被称为“Dyn-tuning-freq_(D')(动态-调谐的-频率_(D'))”或仅仅“(D')”。)
·底限-(F'):由PMU 50用来确定(O')的临时值。
·凸点-(B'):由PMU 50用来确定(O')的另一临时值。(也被称为“Bump_(B')(凸点_(B')`)”或仅仅“(B')”。)
相应地,每个EPP组可能具有不同的最大组初步频率(A')等。在下文参考图5A-图5B进一步描述GPM寄存器54中的设置。替代地,EPP组可被称为“依赖关系组”。
图4是描绘相对于各种P状态的PMU 50中的各种示例性能管理设置的图表。具体而言,图4描绘用于两种场景的设置。下文参考图6描述至少一种附加场景。在下文参考图5A-图5B更详细地描述优化过程本身。
图5A-图5B呈现在数据处理系统10的上下文中用于管理逐核P状态的过程的示例实施例的流程图。如在框110处所示,该过程开始于PMU 50计算优化处理器12中的核要使用的缩减因数(R)。例如,PMU 50可根据正在由处理器12处理的工作负荷的类型来计算(R)。替代地,(R)可以是用于PMU 50的静态调谐因数,并且PMU 50可从内部或外部NVS检取(R)。
如框112处所示,PMU 50还可计算调谐频率(T)。在一个实施例中,PMU 50包括用于根据处理器12中的各种相关因素和状况来确定(T)的启发式控制逻辑。具体而言,PMU 50可根据功率与频率的关系来将(T)计算为对频率进行调谐的常数,以便实现性能与效率的期望或最佳平衡。具体而言,PMU 50可将(T)设置为可以在不引起大于EI的FI的情况下从较高的P状态达到的最低P状态。此类P状态也可被称为最小频率,其中,生成低于此水平的优化频率(O)将不会实现显著的能量节省。换言之,(T)表示阈值P状态,因为(a)通过使用下一较低的P状态而不是使用阈值P状态将节省的相对功率节省量小于(b)通过使用较低的P状态而不是使用阈值P状态将损失的相对性能量。例如,该相对功率节省量可被表达为百分数或分数,其中,分子是所节省的功率量,并且分母是在阈值P状态下使用的功率量。类似地,相对性能损失量可被表达为百分数或分数,其中,分子是频率的改变,并且分母是在阈值P状态下的频率。
如框114处所示,PMU 50还基于每一个核中的每一个LP的EPP来计算该核的核级EPP(E)。例如,在一个实施例或场景中,PMU 50可将(E)计算为核的LP EPP中的最小值,其中,“最小值”意指数值上最低的值(如上文所描述,该最小值实际上对应于最高性能偏好)。例如,PMU 50可将核20A的(E)计算为最小(EPP寄存器23,EPP寄存器25)。并且在每个核具有两个LP的实施例中,PMU可选择那些LP的最小EPP值。而且,当LP中的一个空闲时,PMU 50可在计算(E)时忽略该LP的EPP。
当这核的这两个LP(或所有LP)都空闲时,在不同的实施例或场景中PMU 50可不同地进行响应。例如,在一个实施例或场景中,PMU 50可基于最后的活动的LP的EPP来计算(E)。在另一实施例或场景中,PMU 50可基于核中的所有LP的EPP来计算(E),即使那些LP是空闲的,由此实现性能的偏置。
而且,如框116处所示,PMU 50为处理器12中的每一个核计算初步频率(P)。如上文所指示,PMU 50将根据核的核级EPP(E)以及涉及该核的其他各个运行时参数或状况来计算每一个核的(P)。在一个实施例或场景中,PMU 50用来确定(P)的控制逻辑倾向于是保守的,因为控制逻辑倾向于选择具有相对低的P状态的(P)。然而,此种方式典型地最终不会导致该核的不期望低水平的性能,因为当状况指示较高水平的性能将可能是期望的时,用于确定核的最终P状态的过程的其他部分倾向于将P状态抬高到较高的水平。例如,参考图4,PMU50可将初步频率(P)设置为P2。然而,如下文更详细地描述,用于确定最终P状态的过程的其他部分随后可将最终P状态抬高到P1。例如,如下文更详细地描述,当至少一个其他核具有高于(P)的P状态时,PMU 50可将P状态抬高成高于(P)。并且更具体地,当至少一个其他核具有的P状态如此高于(P)以使得该较高的P状态甚至在该较高的P状态以缩减因数(R)来缩减之后仍保持高于(P)时,PMU 50可抬高P状态。
再次参考图5A,如框120处所示,PMU 50随后可判定是否所有核均具有相同的核级EPP(E)。如果并非所有核均具有相同的核级EPP(E),则过程可通过页连接符B到达图5B。如果所有核均具有相同的核级EPP(E),则如框122处所示,PMU 50可基于分派给处理器12中的每一个核的初步频率(P)来确定最大封装初步频率(A)。
最后,如下文更详细地描述,如框124和126处所示,PMU 50可为每一个核计算优化频率(O),并且PMU 50可将那些优化频率应用于核。每一个核随后能以其优化频率(O)运行。随后,图5A的过程可结束。然而,当状况改变时,可能重复一些操作。例如,不论何时处理器12内的某些状况改变(例如,当OS改变LP的EPP时等等),PMU 50可执行从框112或114到126的操作。
再次参考框124,为了计算核的优化频率(O),PMU 50可使用一组优化操作,诸如下列:
I.动态-频率_(D):=最大-封装-初步-频率_(A)*缩减-因数_(R);
II.底限_(F):=最大(动态-频率_(D),初步-频率_(P));
III.凸点_(B):=最小(调谐-频率_(T),最大-封装-初步-频率_(A));以及
IV.优化-频率_(O):=最大(底限_(F),凸点_(B))。
因此,PMU 50建立至少处于(P)的水平的底限频率值,并且PMU 50使得核在一些情况下将该底限频率值应用于该核并且在其他情况下使用更高的频率。具体而言,PMU 50可在这样做可能实现比使用增加的频率的能量成本更有价值的性能增益时(尤其是当涉及核的相互依赖关系时)使用高于(P)的频率。
根据以上优化操作,由于操作II和IV,(O)将始终大于或等于(P)。并且如果(D)大于(P),则同样由于操作II和IV,(O)将始终大于或等于(D)。
再次参考图4,所描绘的场景涉及下列状况:当前核的(P)处于P2,(A)处于P0,并且(T)处于P3。因此,在该场景(“场景A”)中,PMU50将使用以上公式来生成下列结果:
·动态-频率_(D)将小于(A)(即,<P0),但是取决于(R),其还可能大于(P),等于(P),或者小于(P)。
·凸点_(B)将为(T)=P3,因为在该场景中(T)<(A)。
·底限_(F)为最大(动态-频率_(D),初步-频率_(P))。因此,该结果取决于(D)是大于(P)还是小于(P),在该场景中,这归结为(D)是大于P2还是小于P2。并且(D)取决于(R)的值。大的(R)可能产生(D)=P1。较小的(R)可能产生(D)=P2或更小。
a.如果(D)大于P2(即,如果(D)为P1),则(F)将为(D)=P1。
b.如果(D)小于P2(即,如果(D)为P3或P4),则(F)将为(P)=P2。
·优化-频率_(O)为最大(底限_(F),凸点_(B))。然而,取决于(D),(B)处于P3,而(F)大于P3,处于P1或P2。因此,在该情况下,(O)取决于(F),(F)取决于(D)和(P)。具体而言:
a.如果(R)不使(A)减少多于某个量,则(D)和(F)将处于P1,并且因此(O)也将如此。(该结果在图4中示出为“(O)=P1{大(R)}”。)
b.相比之下,如果(R)使(A)减少至与(P)一样的水平(或更低),则(F)将等于(P)=P2,并且(O)也将如此。(该结果在图4中示出为“(O)=P2{大(R)}”。)
因此,在场景A(该场景A实际上覆盖了两个紧密相关的场景)中,取决于(D)是否大于(P),PMU 50将为当前核生成优化频率P1或P2。具有(D)大于(P)的场景A可被称为“场景A1”,并且具有(D)小于或等于(P)的场景A可被称为“场景A2”。
具体而言,在场景A1中,该优化使得(O)低于最大封装初步频率(A),并且以此种方式,相较于简单地以(A)(作为限定,其为最高的(P))来运行所有核的PMU,优化节省了功率。具体而言,在场景A1中,PMU 50将(O)限制于不超过通过(R)产生的一定比率的(A)。因此,相较于简单地以(A)来运行所有核,PMU 50使用(R)来控制或限制负面的性能影响。
在场景A2中,优化使得核以其初步频率运行,因为(P)高于最大允许比率的组频率(A)。
图6是描绘在另一示例场景中相对于各种P状态的PMU 50中的各种性能管理设置的图表。具体而言,图6描绘具备下列条件的场景:当前核的(P)处于P3,(A)处于P2,并且(T)处于P1。因此,在该场景(“场景B”)中,PMU 50将使用以上公式来生成下列结果:
·动态-频率_(D)将小于(A)(即,<P2),并且取决于(R),其还可能小于或等于(P)(即,≤P3)。
·凸点_(B)将为(A)=P2,因为在该场景中(A)<(T)。
·底限_(F)为最大(动态-频率_(D),初步-频率_(P))。并且在该场景中,(D)小于或等于(P),因此(F)将为(P)=P3。
·优化-频率_(O)为最大(底限_(F),凸点_(B))。并且,(B)处于P2,而(F)处于P3。因此,(O)将为(B)=P2。
因此,PMU 50将会将当前核的频率设置成处于优化频率P2,而不是处于优化频率P3。
该示例示出,当系统最大核频率(A)低于可调谐的值(T)时,核将被设置为(A)。PMU50应用该结果而不是使用较低的(P)或(D)频率,因为(T)表示阈值P状态,低于该阈值P状态则节省功率的值小于使用较低的P状态的性能的成本。换言之,如上文所指示,低于调谐频率(T),节省功率的值不足以在价值上超过性能损失的量。因此,使用较低的(O)或(D)可能改善效率与性能的平衡。相应地,在一个实施例或场景中,当(A)小于(T)时,PMU 50可省略用于计算(D)的优化操作等等,并且简单地设置(O):=(A)。
再次参考图5A的框120,如上文所指示,如果并非所有核都具有相同的核级EPP(E),则过程将通过页连接符B到达图5B。PMU 50随后可为每一组中的每一个核生成优化频率(O)。
具体而言,如框150处所示,PMU 50可基于每一个核的核级EPP将核划分为组,以使得具有相同的核级EPP的所有核被分派到同一组。如框152处所示,PMU 50随后可选择第一组(或下一组)核来进行处理。如框154处所示,PMU 50随后可为所选择的组确定最大组初步频率(A')。换言之,考虑到组中的所有核,PMU 50找出该组的最大频率需求。
随后,如在下文更详细地描述,如框156处所示,对于组中的每一个核,PMU 50可计算优化频率(O')。并且如框158处所示,PMU 50可将那些优化频率应用于组中的核。如框169处所示,PMU 50可判定是否所有的组均已被处理。如上文所指示,如果所有的核均已被处理,则过程随后可结束,当条件改变时,潜在地再次执行该过程。如上文所指示,如果并非所有的核均已被处理,则过程可返回至框152,其中,PMU 50选择下一组并对其进行处理。
再次参考框156,PMU 50可使用诸如下列的公式之类的公式来为组中的每一个核计算优化频率(O'):
I.动态-频率_(D'):=最大-封装-初步-频率_(A')*缩减-因数_(R);
II.底限_(F'):=最大(动态-频率_(D'),初步-频率_(P));
III.凸点_(B'):=最小(调谐-频率_(T),最大-封装-初步-频率_(A'));以及
IV.优化-频率_(O'):=最大(底限_(F'),凸点_(B'))。
并且PMU 50能以与上文所描述的方式相同的方式应用那些公式来设置EPP组中的每一个核的频率。
另外,紧接在上文的公式可被认为是可普遍适用的,并且可在所有核具有相同的核级EPP(E)时使用。在此类情况下,核可简单地被认为是属于同一组。
根据以上公式和本文中所描述的其他约束,仅存在有限数量的(T)、(P)、(D)和(A)的有效的有序组合。一方面,(D)将始终小于(A)。而且,(P)将始终≤(A)。(B)也将始终≤(A)。然而,(T)相对于(P)、(D)和(A)的相对位置可能是不确定的。而且,(P)和(D)相对于彼此的位置可能是不确定的。可利用下列表达式和顺序列表(其中,以上符号不带括号地使用,并且根据它们的所要求的关系以从左到右的顺序来放置这些符号):
·D<A,因此有序列表DA表示潜在有效的关系。
·P≤A,因此有序列表PA表示潜在有效的关系。
·有序列表DPA表示潜在有效的关系。
·有序列表PDA表示潜在有效的关系。
·B≤A.
·T=?.
在以上列表中,“?”指示T的相对位置是不确定的。
通过将T插入到有序列表DPA和PDA中的每个可能位置,可得到下表中的有序列表。那八个有序列表对应于八种不同的场景。另外,该表图示出针对那些场景中的每一种场景通过以上公式将得到的结果。
<u>TPDA</u> <u>PTDA</u> <u>PDTA</u> <u>PDAT</u>
F:=D F:=D F:=D F:=D
B:=T B:=T B:=T B:=A
O:=D O:=D 0:=T O:=A
<u>TDPA</u> <u>DTPA</u> <u>DPTA</u> <u>DPAT</u>
F:=P F:=P F:=P F:=P
B:=T B:=T B:=T B:=A
O:=P O:=P 0:=T O:=A
表1。针对不同场景的优化设置的有序列表。
此外,场景“TPDA”与场景A1(上文参考图4所讨论)匹配,其中,(T)<(P)<(D)<(A)。并且场景“TDPA”与场景A2匹配,其中,(T)<(D)≤(P)<(A)。而且,场景“DPAT”与场景B(上文参考图6所讨论)匹配,其中,(D)≤(P)<(A)<(T)。
如表1中所指示,对于场景“DPAT”和“PDAT”,当组的最大频率低于调谐频率时,PMU50返回该组的最大频率作为核最佳频率。换言之,如果(A)<(T),则(O):=(A)。如上文所指示,PMU 50被配置成以此种方式操作,因为相较于频率的至少一个上间隔,低于调谐频率(T)时的功率节省量是相对低的。
而且,出于相同的原因,如针对表1中的其他六个场景所指示,当(T)小于(A)时,优化频率(O)将不小于(T)。
而且,如在所有八个场景中所指示,优化频率(O)将不小于初步频率(P),以便确保核能够供应至少与在推导(P)时由PMU 50考虑的因素对应的水平的性能。例如,场景“TDPA”和“DTPA”示出,当(P)>(D)时,PMU50分派(O):=(P)。
而且,如在所有八个场景中所指示,优化频率(O)将不小于动态调谐的频率(D)(其也可被称为“从组的最大频率推导出的相对频率”),以便确保核能够供应至少与组的最大频率的某个比例对应的水平的性能。PMU50由此支持至少某个最低水平的整体性能,同时还减少或消除当那些核相互依赖时一个核运行过慢而无法赶上另一核的可能性。例如,场景TPDA和PTDA示出,当(D)>(P)时,PMU 50分派(O):=(D)。
通过使用本文中所描述的优化技术,数据处理系统10可实现比简单地将EPP组的所有核设置为相同的频率的另一数据处理系统将实现的更好的性能与效率的平衡。例如,在一些工作负荷的情况下,数据处理系统10能以仅大约1%的性能降低实现大于3%至5%的功耗的减少。
附加实施例
图7-图11是示例性计算机架构的框图。图7-图11中的相同或类似组件具有同样的附图标记。用于膝上型设备、台式机、手持式PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持式设备以及各种其他电子设备的本领域中已知的其他系统设计和配置也是合适的。一般而言,能够包含如本文中所公开的处理器和/或其他执行逻辑的各种各样的系统或电子设备一般都是合适的。
图7是根据本发明的实施例可具有多于一个的核、可具有集成存储器控制器、以及可具有集成图形器件的处理器1100的框图。图7中的实线框图示具有单个核1102A、系统代理1110、一个或多个总线控制器单元的集合1116的处理器1100,而虚线框的任选的添加图示出具有多个核1102A-N、系统代理单元1110中的一个或多个集成存储器控制器单元的集合以及专用逻辑1108的替代处理器1100。
由此,处理器1100的不同实现方式可包括:1)CPU,其中专用逻辑1108是集成图形器件和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核1102A-N是一个或多个通用核(例如,通用有序核、通用乱序核、这两者的组合);2)协处理器,其中核1102A-N是旨在主要用于图形和/或科学(吞吐量)的大量专用核;以及3)协处理器,其中核1102A-N是大量通用有序核。由此,处理器1100可以是通用处理器、协处理器或专用处理器,诸如例如,网络或通信处理器、压缩引擎、图形处理器、GPGPU、高吞吐量的集成众核(MIC)协处理器(包括30个或更多个核)、嵌入式处理器,等等。处理器可被实现在一个或多个芯片上。处理器1100可以是一个或多个衬底的部分,和/或可使用数种工艺技术(诸如例如,BiCMOS、CMOS、或NMOS)中的任何工艺技术被实现在一个或多个衬底上。
存储器层级结构包括核内的一个或多个级别的高速缓存1104A-N、一组或一个或多个共享高速缓存单元1106、以及耦合至集成存储器控制器单元的集合1114的外部存储器(未示出)。共享高速缓存单元的集合1106可包括一个或多个中间级别的高速缓存、末级高速缓存(LLC)和/或其组合,中间级别的高速缓存诸如L2、第3级(L3)、第4级(L4)或其他级别的高速缓存。尽管在一个实施例中,基于环的互连单元1112使专用逻辑1108、共享高速缓存单元的集合1106以及系统代理单元1110/(多个)集成存储器控制器单元1114互连,但替代实施例可使用任何数量的公知技术使此类单元互连。在一个实施例中,在一个或多个高速缓存单元1106与核1102A-N之间维持一致性。
系统代理单元1110包括协调和操作核1102A-N的那些组件。系统代理单元1110可包括例如功率控制单元(PCU)和显示单元。PCU可以是对核1102A-N以及集成图形逻辑1108的功率状态进行调节所需要的逻辑和组件,或可包括这些逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核1102A-N在架构指令集方面可以是同构的或异构的;即,核1102A-N中的两个或更多个核可以能够执行相同的指令集,而其他核可以能够仅执行该指令集的子集或者执行不同的指令集。此类核1102A-N可将某些存储器访问指令转换为如本文中所描述的副线存储器访问。
图8是根据本发明的实施例的系统1200的框图。系统1200可包括一个或多个处理器1210、1215,这些处理器耦合至控制器中枢1220。在一个实施例中,控制器中枢1220包括图形存储器控制器中枢(GMCH)1290和输入/输出中枢(IOH)1250(它们可以在分开的芯片上);GMCH 1290包括存储器控制器和图形控制器,存储器控制器用于控制耦合的存储器内的操作,存储器1240和协处理器1245耦合至图形控制器;IOH 1250将输入/输出(I/O)设备1260耦合至GMCH 1290。替代地,存储器控制器和图形控制器中的一者或两者可以被集成在处理器内,存储器1240和协处理器1245直接耦合至处理器1210,并且控制器中枢1220与IOH1250一起处于单个芯片中。
附加的处理器1215的任选性质在图8中利用虚线来表示。每一个处理器1210、1215可包括本文中所描述的处理核中的一个或多个,并且可以是某个版本的处理器1100。
存储器1240可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢1220经由诸如前端总线(FSB)之类的多分支总线、诸如快速路径互连(QPI)之类的点对点接口、或者类似的连接1295来与(多个)处理器1210、1215进行通信。
在一个实施例中,协处理器1245是专用处理器,诸如例如,高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器,等等。在一个实施例中,控制器中枢1220可包括集成图形加速器。
在物理资源1210、1215可能存在包括架构、微架构、热、功耗特性等等的一系列品质度量方面的各种差异。
在一个实施例中,处理器1210执行控制一般类型的数据处理操作的指令。嵌入在这些指令内的可以是协处理器指令。处理器1210将这些协处理器指令识别为具有应当由附连的协处理器1245执行的类型。因此,处理器1210在协处理器总线或其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器1245。(多个)协处理器1245接受并执行所接收的协处理器指令。
图9和图10是根据本发明的实施例的更具体的示例性系统1300和1400的框图。如图9中所示,多处理器系统1300是点对点互连系统,并且包括经由点对点互连1350耦合的第一处理器1370和第二处理器1380。处理器1370和1380中的每一个可以是某个版本的处理器1100。在本发明的一个实施例中,处理器1370和1380分别是处理器1210和1215,而协处理器1338是协处理器1245。在另一实施例中,处理器1370和1380分别是处理器1210和协处理器1245。
处理器1370和1380示出为分别包括集成存储器控制器(IMC)单元1372和1382。处理器1370还包括作为其总线控制器单元的部分的点对点(P-P)接口1376和1378;类似地,第二处理器1380包括P-P接口1386和1388。处理器1370、1380可经由使用P-P接口电路1378、1388的P-P接口1350来交换信息。如图9中所示,IMC 1372和1382将处理器耦合至相应的存储器,即存储器1332和存储器1334,这些存储器可以是本地地附连至相应的处理器的主存储器的部分。
处理器1370、1380可各自经由使用点对点接口电路1376、1394、1386、1398的各个P-P接口1352、1354来与芯片组1390交换信息。芯片组1390可任选地经由高性能接口1339来与协处理器1338交换信息。在一个实施例中,协处理器1338是专用处理器,诸如例如,高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器,等等。
共享高速缓存(未示出)可被包括在任一处理器中,或在这两个处理器的外部但经由P-P互连与这些处理器连接,使得如果处理器被置于低功率模式,则任一个或这两个处理器的本地高速缓存信息可被存储在共享高速缓存中。
芯片组1390可经由接口1396耦合至第一总线1316。在一个实施例中,第一总线1316可以是外围组件互连(PCI)总线、或者诸如PCI快速(PCI Express)总线或另一第三代I/O互连总线之类的总线,但是本发明的范围不限于此。
如图9中所示,各种I/O设备1314可连同总线桥1318一起耦合至第一总线1316,该总线桥1318将第一总线1316耦合至第二总线1320。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU、加速器(诸如例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其他处理器之类的一个或多个附加处理器1315耦合至第一总线1316。在一个实施例中,第二总线1320可以是低引脚数(LPC)总线。在一个实施例中,各种设备可耦合至第二总线1320,这些设备包括例如键盘和/或鼠标1322、通信设备1327以及存储单元1328,该存储单元1328诸如可包括指令/代码和数据1330的盘驱动器或其他大容量存储设备。此外,音频I/O 1324可耦合至第二总线1320。注意,其他架构是可能的。例如,代替图9的点对点架构,系统可实现多分支总线或其他此类架构。
图10呈现出根据本发明的实施例的第二更具体的示例性系统1400的框图。已从图10中省略图9的某些方面,以免使图10的其他方面模糊。
图10图示出处理器1370、1380可分别包括集成存储器和I/O控制逻辑(“CL”)1372和1382。由此,CL 1372、1382包括集成存储器控制器单元并且包括I/O控制逻辑。图10图示出不仅存储器1332、1334耦合至CL 1372、1382,而且I/O设备1414也耦合至控制逻辑1372、1382。传统I/O设备1415耦合至芯片组1390。
图11是根据本发明的实施例的芯片上系统(SoC)1500的框图。虚线框是更先进的SoC上的任选特征。在图11中,(多个)互连单元1502耦合至:应用处理器1510,包括一个或多个核的集合1102A-N(包括对应的高速缓存单元1104A-N)以及(多个)共享高速缓存单元1106;系统代理单元1110;(多个)总线控制器单元1116;(多个)集成存储器控制器单元1114;一组或一个或多个协处理器1520,可包括集成图形逻辑、图像处理器、音频处理器、以及视频处理器;静态随机存取存储器(SRAM)单元1530;直接存储器存取(DMA)单元1532;以及显示单元1540,用于耦合至一个或多个外部显示器。在一个实施例中,(多个)协处理器1520包括专用处理器,诸如例如,网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器,等等。
结论
在本公开中,诸如“实施例”、“一个实施例”和“另一实施例”之类的表达一般意味着参考实施例的可能性。那些表达不旨在将本发明限制于特定的实施例配置。如本文中所使用,那些表达可引用相同的实施例或不同的实施例,并且那些实施例可组合成其他实施例。鉴于本文中所描述和所图示的原理和示例实施例,将认识到所图示的实施例可以在布置和细节方面进行修改而不背离本文中所描述和/或所图示的原理。
而且,根据本公开,设备可包括指令和其他数据,这些指令和其他数据在由处理器访问时使设备执行特定操作。出于本公开的目的,使设备执行操作的指令一般可被称为软件。软件等也可被称为控制逻辑。在引导过程期间使用的软件可被称为固件。被存储在非易失性存储器中的软件也可被称为固件。可使用任何合适的结构或结构的组合来组织软件。因此,像程序和模块之类的术语一般可用于涵盖广泛范围的软件构造,包括但不限于应用程序、子程序、例程、函数、过程、驱动程序、库、数据结构、进程、微代码、以及其他类型的软件组件。而且,应当理解,软件模块可包括多于一个的组件,并且那些组件可协作以完成该模块的操作。而且,软件使设备执行的操作可包括创建操作上下文、使特定数据结构实例化等。实施例可被实现为在可编程系统上执行的软件,可编程系统包括至少一个处理器、存储系统(例如,易失性存储器和/或一个或多个非易失性存储元件)、至少一个输入设备、以及至少一个输出设备。
可使用任何合适的操作环境和编程语言(或操作环境和编程语言的组合)来实现本文中所描述的软件组件。例如,能以高级过程或面向对象编程语言或者以汇编或机器语言来实现程序代码。本文中描述的机制不限于任何特定的编程语言。在任何情况下,语言可以是经编译或经解释的语言。
包含数据并且允许另一组件获得该数据的介质可以被称为机器可访问介质或机器可读介质。因此,实施例可包括包含用于执行本文中所描述的操作中的一些或全部的指令的机器可读介质。此类介质总体上可被称为装置,并且具体地被称为程序产品。在一个实施例中,用于多个组件的软件存储在一个机器可读介质中。在其他实施例中,可以使用两个或更多个机器可读介质来存储用于一个或多个组件的软件。例如,用于一个组件的指令可被存储在一个介质中,并且用于另一组件的指令可被存储在另一介质中。或者,用于一个组件的指令的部分可被存储在一个介质中,而用于该组件的指令的其余部分(以及用于其他组件的指令)可被存储在一个或多个其他介质中。类似地,上文在一个实施例中被描述为驻留在特定设备上的软件在其他实施例中可驻留在一个或多个其他设备上。例如,在分布式环境中,一些软件可本地地存储,并且一些软件可远程地存储。类似地,上文在一个实施例中被描述为在一个特定设备上执行的操作在其他实施例中可由一个或多个其他设备执行。
其他实施例还可被实现在数据中,并且可被存储在非瞬态存储介质上,该非瞬态存储介质如果被至少一个机器使用则使得该至少一个机器制造至少一个集成电路以执行根据本公开的一个或多个操作。更进一步的实施例可以在包括信息的计算机可读存储介质中实现,该计算机可读存储介质在被制造在SoC或其他处理器中时用于将SoC或其他处理器配置成用于执行根据本公开的一个或多个操作。至少一个实施例的一个或多个方面可由存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令来实现,这些代表性指令在由机器读取时使得该机器制造用于执行本文中所描述的技术的逻辑单元。表示各种逻辑单元的指令被称为“IP核”,并且它们可被存储在有形的机器可读介质上并且可被供应给各个消费者或制造设施以加载到实际制作该逻辑单元或处理器的制造机器中。至少一个实施例的一个或多个方面可包括机器可读介质,该机器可读介质包含指令或设计数据,该设计数据定义本文中所描述的结构、电路、装置、处理器和/或系统特征。例如,设计数据能以硬件描述语言(HDL)来格式化。
一些实施例的机器可读介质可包括但不限于有形的非瞬态存储组件以及处理器、控制器和包括数据存储设施的其他组件,有形的非瞬态存储组件诸如,磁盘、光盘、磁光盘、动态随机存取存储器(RAM)、静态RAM、只读存储器(ROM)、固态驱动器(SSD)、相变存储器(PCM)等。出于本公开的目的,术语“ROM”一般可用于指代非易失性存储器设备,诸如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存ROM、闪存等。
还应理解,本文中所描绘的硬件和软件组件表示功能元件,这些功能元件合理地自包含以使得每一个功能元件可以基本上独立于其他功能元件来设计、构造或更新。在替代实施例中,许多组件可被实现为用于提供本文中所描述和所图示的功能的硬件、软件或硬件和软件的组合。例如,在一些实施例中,用于实现所描述的操作中的一些或全部的控制逻辑中的一些或全部可被实现在硬件逻辑中(例如,被实现为集成电路芯片中的微代码、被实现为芯片中的可编程门阵列(PGA)、被实现为芯片中的专用集成电路(ASIC)、被实现为芯片中任何其他合适类型的硬件电路、或者被实现为一个或多个芯片中的硬件逻辑的两个或更多个不同实例和/或两种或更多种不同类型的硬件逻辑)。而且,诸如“电路”和“电路系统”之类的术语在本文中可以可互换地使用。那些术语以及像“逻辑”之类的术语可用于指代模拟电路、数字电路、硬连线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路、任何其他类型的硬件组件、或硬件组件的任何合适的组合。
另外,本教导可用于在许多不同种类的数据处理系统中取得优势。此类数据处理系统可包括但不限于加速器,芯片上系统(SOC),可穿戴设备,手持式设备,智能电话,电话,诸如音频设备、视频设备、音频/视频设备(例如,电视和机顶盒)之类的娱乐设备,车载处理系统,个人数字助理(PDA),平板计算机,膝上型计算机,便携式计算机,个人计算机(PC),工作站,服务器,客户端-服务器系统,分布式计算系统,超级计算机,高性能计算系统,计算集群,大型计算机,小型计算机以及用于处理或传送信息的其他设备。因此,除非另外明确指定或者上下文要求,否则对任何特定类型的数据处理系统(例如,PC)的引用都应当被理解为也包含其他类型的数据处理系统。数据处理系统也可被称为装置。数据处理系统的组件也可被称为装置。
而且,除非另外明确指定,否则被描述为彼此耦合、彼此通信、彼此响应等等的组件无需彼此持续通信并且无需彼此直接耦合。同样,当一个组件被描述为从另一组件接收数据或者向另一组件发送数据时,除非另外明确指定,否则该数据可通过一个或多个中间组件被发送或被接收。另外,数据处理系统的一些组件可被实现为具有接口(例如,连接器)的适配器卡以用于与总线通信。替代地,可使用诸如可编程或不可编程逻辑设备或阵列、ASIC、嵌入式计算机、智能卡等等之类的组件将设备或组件实现为嵌入式控制器。出于本公开的目的,术语“总线”包括可由多于两个的设备共享的路径以及点到点路径。类似地,诸如“线”、“引脚”等之类的术语可被理解为指代导线、导线集合、或者任何其他合适的导体或导体集合。例如,总线可包括一个或多个串行链路,串行链路可包括一个或多个通道,通道可由差分信令对组成,并且那些导体携载的电的改变的特性可被称为线上的信号。而且,出于本公开的目的,术语“处理器”表示能够执行软件的硬件组件。例如,处理器可被实现为中央处理单元(CPU)、处理核或任何其他合适类型的处理元件。CPU可包括一个或多个处理核,并且设备可以包括一个或多个CPU。
而且,虽然已经参照以特定顺序执行的特定操作描述了一个或多个示例过程,但可以对那些过程应用众多修改以得到本发明的众多替代实施例。例如,替代实施例可包括使用比所公开的全部操作更少的操作的过程、使用附加操作的过程以及其中本文公开的各个操作被组合、细分、重排列或以其他方式更改的过程。
类似地,在示例实施例中已被描述为驻留在其他组件内的组件在替代实施例中可不同地被布置。例如,上文中被描述为驻留在PMU中的组件中的至少一些在替代实施例中可能不驻留在PMU中。
实施例包括下列示例:
示例A1是一种处理器,该处理器包括多个核以及功率管理控制逻辑,该功率管理控制逻辑用于:(a)为这些核中的每一个核确定初步频率;(b)基于初步频率来确定最大频率;(c)基于最大频率和缩减因数来确定动态调谐的频率;(d)响应于这些核中所选择的核的动态调谐的频率大于所选择的核的初步频率,将所选择的核设置为至少等于动态调谐的频率的频率;以及(e)响应于所选择的核的初步频率大于所选择的核的动态调谐的频率,将所选择的核设置为至少等于初步频率的频率。
示例A2是根据示例A1所述的处理器,其中,功率管理控制逻辑进一步用于:(1)基于最大频率来为所选择的核确定凸点频率;以及(2)响应于该凸点频率(a)大于所选择的核的初步频率并且(b)大于所选择的核的动态调谐的频率,将所选择的核设置为至少等于凸点频率的频率。
示例A3是根据示例A2所述的处理器,其中,所选择的核的凸点频率还基于调谐频率,该调谐频率与阈值P状态对应,因为(a)通过使用下一个较低的P状态而不是使用阈值P状态将节省的相对功率节省量小于(b)通过使用该较低的P状态而不是使用阈值P状态将损失的相对的性能的量。
示例A4是根据示例A3所述的处理器,其中,功率管理控制逻辑用于将凸点频率设置成处于(a)最大频率和(b)调谐频率中的较小的一者。
示例A5是根据示例A1所述的处理器,其中,(a)多个核包括核的第一集合和核的第二集合;(b)为核中的每一个核确定初步频率的操作包括为核的第一集合中的核中的每一个核并且为核的第二集合中的核中的每一个核确定初步频率;以及(c)最大频率包括基于核的第一集合的初步频率的第一最大频率。示例A5还可包括示例A2-A4中的任一者或多者的特征。
示例A6是根据示例A5所述的处理器,其中,功率管理控制逻辑用于:(a)基于核的第二集合的初步频率来确定第二最大频率;(b)利用第一最大频率来为核的第一集合中的核确定优化频率;以及(c)利用第二最大频率来为核的第二集合中的核确定优化频率。
示例A7是根据示例A5所述的处理器,其中,功率管理控制逻辑用于:(a)基于第一集合中的每一个核的第一EPP设置而将核分派到该第一集合;以(b)及基于不同于第一EPP设置的第二EPP设置而将核分派到第二集合。示例A7还可包括示例A6的特征。
示例A8是根据示例A1所述的处理器,进一步包括PMU,该PMU包括功率管理控制逻辑。示例A8还可包括示例A2-A7中的任何一者或多者的特征。
示例B1是一种数据处理系统,该数据处理系统包括:RAM;处理器,耦合至该RAM;处理器中的多个核;以及处理器中的功率管理控制单元。功率管理控制逻辑用于:(a)为核中的每一个核确定初步频率;(b)基于初步频率来确定最大频率;(c)基于所述最大频率和缩减因数来确定动态调谐的频率;(d)响应于核中所选择的核的动态调谐的频率大于所选择的核的初步频率,将所选择的核设置为至少等于动态调谐的频率的频率;以及(e)响应于所选择的核的初步频率大于所选择的核的动态调谐的频率,将所选择的核设置为至少等于初步频率的频率。
示例B2是根据示例B1所述的数据处理器系统,其中,功率管理控制逻辑进一步用于:(1)基于最大频率来为所选择的核确定凸点频率;以及(2)响应于该凸点频率(a)大于所选择的核的初步频率并且(b)大于所选择的核的动态调谐的频率,将所选择的核设置为至少等于凸点频率的频率。
示例B3是根据示例B2所述的数据处理系统,其中,所选择的核的凸点频率还基于调谐频率,该调谐频率与阈值P状态对应,因为(a)通过使用下一个较低的P状态而不是使用阈值P状态将节省的相对功率节省量小于(b)通过使用该较低的P状态而不是使用阈值P状态将损失的相对的性能的量。
示例B4是根据示例B3所述的数据处理系统,其中,功率管理控制逻辑用于将所述凸点频率设置成处于(a)最大频率和(b)调谐频率中的较小的一者。
示例B5是根据示例B1所述的数据处理系统,其中,(a)多个核包括核的第一集合和核的第二集合;(b)为核中的每一个核确定初步频率的操作包括为核的第一集合中的核中的每一个核并且为核的第二集合中的核中的每一个核确定初步频率;并且(c)最大频率包括基于核的第一集合的初步频率的第一最大频率。示例B5还可包括示例B2-B4中的任何一者或多者的特征。
示例B6是根据示例B5所述的数据处理系统,其中,功率管理控制逻辑用于:(a)基于核的第二集合的初步频率来确定第二最大频率;(b)利用第一最大频率来为核的第一集合中的核确定优化频率;以及(c)利用第二最大频率来为核的第二集合中的核确定优化频率。
示例B7是根据示例B5所述的数据处理系统,其中,功率管理控制逻辑用于:(a)基于第一集合中的每一个核的第一EPP设置而将核分派到该第一集合;以及(b)基于不同于第一EPP设置的第二EPP设置而将核分派到第二集合。示例B7还可包括示例B6的特征。
示例B8是根据示例B1所述的数据处理系统,进一步包括:PMU,该PMU处于处理器中,其中,该PMU包括功率管理控制逻辑。示例B8还可包括示例B2-B7中的任何一者或多者的特征。
示例C1是一种用于管理逐核性能状态的方法。该方法包括:(a)为处理器中的多个核中的每一个核确定初步频率;(b)基于初步频率来确定最大频率;(c)基于最大频率和缩减因数来确定动态调谐的频率;(d)响应于核中所选择的核的动态调谐的频率大于所选择的核的初步频率,将所选择的核设置为至少等于动态调谐的频率的频率;以及(e)响应于所选择的核的初步频率大于所选择的核的动态调谐的频率,将所选择的核设置为至少等于初步频率的频率。
示例C2是根据示例C1所述的方法,进一步包括:(1)基于最大频率来为所选择的核确定凸点频率;以及(2)响应于该凸点频率(a)大于所选择的核的初步频率并且(b)大于所选择的核的动态调谐的频率,将所选择的核设置为至少等于凸点频率的频率。
示例C3是根据示例C2所述的方法,其中,为所选择的核确定凸点频率的操作包括:基于(a)最大频率和(b)调谐频率来为所选择的核确定凸点频率,该调谐频率与阈值P状态对应,因为(i)通过使用下一个较低的P状态而不是使用阈值P状态将节省的相对功率节省量小于(ii)通过使用该较低的P状态而不是使用阈值P状态将损失的相对的性能的量。
示例C4是根据示例C3的方法,其中,为所选择的核确定凸点频率的操作包括:将该凸点频率设置成处于(a)最大频率和(b)调谐频率中的较小的一者。
示例C5是根据示例C1所述的方法,其中,(a)多个核包括核的第一集合和核的第二集合;(b)为核中的每一个核确定初步频率的操作包括为核的第一集合中的核中的每一个核并且为核的第二集合中的核中的每一个核确定初步频率;以及(c)最大频率包括基于核的第一集合的初步频率的第一最大频率。而且,方法包括:(a)基于核的第二集合的初步频率来确定第二最大频率;(b)利用所述第一最大频率来为核的第一集合中的核确定优化频率;(c)以及利用第二最大频率来为核的第二集合中的核确定优化频率。示例C5还可包括示例C2-C4中的任何一者或多者的特征。
示例C6是根据示例C5所述的方法,进一步包括:(a)基于第一集合中的每一个核的第一EPP设置而将核分派到该第一集合;以及(b)基于不同于第一EPP设置的第二EPP设置而将核分派到第二集合。
鉴于可以从本文描述的示例实施例中容易地导出的各种各样的有用排列,此具体实施方式旨在仅仅是说明性的,且不应被视为限制覆盖范围。

Claims (22)

1.一种处理器,包括:
多个核;以及
功率管理控制逻辑,所述功率管理控制逻辑用于:
为所述核中的每一个核确定初步频率;
基于所述初步频率来确定最大频率;
基于所述最大频率和缩减因数来确定动态调谐的频率;
响应于所述核中所选择的核的所述动态调谐的频率大于所选择的核的所述初步频率,将所选择的核设置为至少等于所述动态调谐的频率的频率;以及
响应于所选择的核的所述初步频率大于所选择的核的所述动态调谐的频率,将所选择的核设置为至少等于所述初步频率的频率。
2.根据权利要求1所述的处理器,其中,所述功率管理控制逻辑进一步用于:
基于所述最大频率来为所选择的核确定凸点频率;以及
响应于所述凸点频率(a)大于所选择的核的所述初步频率并且(b)大于所选择的核的所述动态调谐的频率,将所选择的核设置为至少等于所述凸点频率的频率。
3.根据权利要求2所述的处理器,其中,所选择的核的所述凸点频率还基于与阈值性能状态P状态对应的调谐频率,因为(a)通过使用下一个较低的P状态而不是使用所述阈值P状态将节省的相对功率节省量小于(b)通过使用所述较低的P状态而不是使用所述阈值P状态将损失的相对的性能的量。
4.根据权利要求3所述的处理器,其中,所述功率管理控制逻辑用于将所述凸点频率设置成处于(a)所述最大频率和(b)所述调谐频率中的较小的一者。
5.根据权利要求1所述的处理器,其中:
所述多个核包括核的第一集合和核的第二集合;
为所述核中的每一个核确定初步频率的操作包括为所述核的第一集合中的每一个核并且为所述核的第二集合中的每一个核确定所述初步频率;并且
所述最大频率包括基于所述核的第一集合的所述初步频率的第一最大频率。
6.根据权利要求5所述的处理器,其中,所述功率管理控制逻辑用于:
基于所述核的第二集合的初步频率来确定第二最大频率;
利用所述第一最大频率来为所述核的第一集合中的核确定优化频率;以及
利用所述第二最大频率来为所述核的第二集合中的核确定优化频率。
7.根据权利要求5所述的处理器,其中,所述功率管理控制逻辑用于:
基于所述第一集合中的每一个核的第一效率/性能偏好EPP设置而将核分派到所述第一集合;以及
基于不同于所述第一EPP设置的第二EPP设置而将核分派到所述第二集合。
8.根据权利要求1所述的处理器,进一步包括:
功率管理单元PMU,所述PMU包括所述功率管理控制逻辑。
9.一种数据处理系统,包括:
随机存取存储器RAM;
处理器,所述处理器耦合至所述RAM;
多个核,所述多个核处于所述处理器中;以及
功率管理控制电路,所述功率管理控制电路处于所述处理器中,所述功率管理控制电路用于:
为所述核中的每一个核确定初步频率;
基于所述初步频率来确定最大频率;
基于所述最大频率和缩减因数来确定动态调谐的频率;
响应于所述核中所选择的核的所述动态调谐的频率大于所选择的核的所述初步频率,将所选择的核设置为至少等于所述动态调谐的频率的频率;以及
响应于所选择的核的所述初步频率大于所选择的核的所述动态调谐的频率,将所选择的核设置为至少等于所述初步频率的频率。
10.根据权利要求9所述的数据处理系统,其中,所述功率管理控制逻辑进一步用于:
基于所述最大频率来为所选择的核确定凸点频率;以及
响应于所述凸点频率(a)大于所选择的核的所述初步频率并且(b)大于所选择的核的所述动态调谐的频率,将所选择的核设置为至少等于所述凸点频率的频率。
11.根据权利要求10所述的数据处理系统,其中,所选择的核的所述凸点频率还基于与阈值性能状态P状态对应的调谐频率,因为(a)通过使用下一个较低的P状态而不是使用所述阈值P状态将节省的相对功率节省量小于(b)通过使用所述较低的P状态而不是使用所述阈值P状态将损失的相对的性能的量。
12.根据权利要求11所述的数据处理系统,其中,所述功率管理控制逻辑用于将所述凸点频率设置成处于(a)所述最大频率和(b)所述调谐频率中的较小的一者。
13.如权利要求9所述的数据处理系统,其中:
所述多个核包括核的第一集合和核的第二集合;
为所述核中的每一个核确定初步频率的操作包括为所述核的第一集合中的每一个核并且为所述核的第二集合中的每一个核确定所述初步频率;并且
所述最大频率包括基于所述核的第一集合的所述初步频率的第一最大频率。
14.根据权利要求13所述的数据处理系统,其中,所述功率管理控制逻辑用于:
基于所述核的第二集合的初步频率来确定第二最大频率;
利用所述第一最大频率来为所述核的第一集合中的核确定优化频率;以及
利用所述第二最大频率来为所述核的第二集合中的核确定优化频率。
15.根据权利要求13所述的数据处理系统,其中,所述功率管理控制逻辑用于:
基于所述第一集合中的每一个核的第一效率/性能偏好EPP设置而将核分派到所述第一集合;以及
基于不同于所述第一EPP设置的第二EPP设置而将核分派到所述第二集合。
16.根据权利要求9所述的数据处理系统,进一步包括:
功率管理单元PMU,所述PMU处于所述处理器中,其中,所述PMU包括所述功率管理控制逻辑。
17.一种用于管理逐核性能状态的方法,所述方法包括:
为处理器中的多个核中的每一个核确定初步频率;
基于所述初步频率来确定最大频率;
基于所述最大频率和缩减因数来确定动态调谐的频率;
响应于所述核中所选择的核的所述动态调谐的频率大于所选择的核的所述初步频率,将所选择的核设置为至少等于所述动态调谐的频率的频率;以及
响应于所选择的核的所述初步频率大于所选择的核的所述动态调谐的频率,将所选择的核设置为至少等于所述初步频率的频率。
18.根据权利要求17所述的方法,进一步包括:
基于所述最大频率来为所选择的核确定凸点频率;以及
响应于所述凸点频率(a)大于所选择的核的所述初步频率并且(b)大于所选择的核的所述动态调谐的频率,将所选择的核设置为至少等于所述凸点频率的频率。
19.根据权利要求18所述的方法,其中,为所选择的核确定凸点频率的操作包括:
基于(a)所述最大频率和(b)与阈值性能状态P状态对应的调谐频率来为所选择的核确定所述凸点频率,因为(i)通过使用下一个较低的P状态而不是使用所述阈值P状态将节省的相对功率节省量小于(ii)通过使用所述较低的P状态而不是使用所述阈值P状态将损失的相对的性能的量。
20.根据权利要求19所述的方法,其中,为所选择的核确定所述凸点频率的操作包括:
将所述凸点频率设置成处于(a)所述最大频率和(b)所述调谐频率中的较小的一者。
21.根据权利要求17所述的方法,其中:
所述多个核包括核的第一集合和核的第二集合;
为所述核中的每一个核确定初步频率的操作包括为所述核的第一集合中的每一个核并且为所述核的第二集合中的每一个核确定所述初步频率;
所述最大频率包括基于所述核的第一集合的所述初步频率的第一最大频率;并且
所述方法包括:
基于所述核的第二集合的初步频率来确定第二最大频率;
利用所述第一最大频率来为所述核的第一集合中的核确定优化频率;以及
利用所述第二最大频率来为所述核的第二集合中的核确定优化频率。
22.根据权利要求21所述的方法,进一步包括:
基于所述第一集合中的每一个核的第一效率/性能偏好EPP设置而将核分派到所述第一集合;以及
基于不同于所述第一EPP设置的第二EPP设置而将核分派到所述第二集合。
CN202010218607.2A 2019-07-26 2020-03-25 用于管理逐核的性能状态的技术 Pending CN112306215A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/523,009 2019-07-26
US16/523,009 US11157329B2 (en) 2019-07-26 2019-07-26 Technology for managing per-core performance states

Publications (1)

Publication Number Publication Date
CN112306215A true CN112306215A (zh) 2021-02-02

Family

ID=69844537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010218607.2A Pending CN112306215A (zh) 2019-07-26 2020-03-25 用于管理逐核的性能状态的技术

Country Status (3)

Country Link
US (1) US11157329B2 (zh)
EP (1) EP3770727B1 (zh)
CN (1) CN112306215A (zh)

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1192298C (zh) * 1996-01-17 2005-03-09 德克萨斯仪器股份有限公司 按cpu活动调节cpu时钟频率而实时管理cpu温度和节电的方法和系统
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
KR101303690B1 (ko) * 2009-12-09 2013-09-04 한국전자통신연구원 전력 관리 장치 및 그 방법, 전력 제어 시스템
US8914661B2 (en) * 2010-06-30 2014-12-16 Via Technologies, Inc. Multicore processor power credit management in which multiple processing cores use shared memory to communicate individual energy consumption
US8484498B2 (en) * 2010-08-26 2013-07-09 Advanced Micro Devices Method and apparatus for demand-based control of processing node performance
US8943334B2 (en) * 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
KR20130040485A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 휴대 단말기에서 중앙처리장치를 제어하는 장치 및 방법
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
WO2013077890A1 (en) 2011-11-22 2013-05-30 Intel Corporation Collaborative processor and system performance and power management
US9098261B2 (en) 2011-12-15 2015-08-04 Intel Corporation User level control of power management policies
US9323316B2 (en) * 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
US9361101B2 (en) 2012-06-29 2016-06-07 Intel Corporation Extension of CPU context-state management for micro-architecture state
US8984313B2 (en) * 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9348401B2 (en) 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
KR101842016B1 (ko) * 2013-12-10 2018-03-28 한국전자통신연구원 멀티 코어 환경에서의 동적 전력 제어방법
US9600058B2 (en) 2014-06-24 2017-03-21 Intel Corporation Enhancing power-performance efficiency in a computer system when bursts of activity occurs when operating in low power
US9671853B2 (en) 2014-09-12 2017-06-06 Intel Corporation Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency
US9710043B2 (en) 2014-11-26 2017-07-18 Intel Corporation Controlling a guaranteed frequency of a processor
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US9983644B2 (en) 2015-11-10 2018-05-29 Intel Corporation Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
KR102528692B1 (ko) 2016-01-04 2023-05-08 한국전자통신연구원 중앙처리장치의 동적 주파수 조절 장치 및 그 방법
US10281975B2 (en) 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
US10228755B2 (en) 2016-09-30 2019-03-12 Intel Corporation Processor voltage control using running average value
US10216246B2 (en) 2016-09-30 2019-02-26 Intel Corporation Multi-level loops for computer processor control
CN108334405A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 频率异构cpu,频率异构实现方法、装置及任务调度方法
US11182315B2 (en) 2017-02-10 2021-11-23 Intel Corporation Apparatuses, methods, and systems for hardware control of processor performance levels
US10739842B2 (en) 2017-04-01 2020-08-11 Intel Corporation Power management and protection
CN111164538A (zh) 2017-12-15 2020-05-15 英特尔公司 处理单元的功率管理
US10620682B2 (en) 2017-12-21 2020-04-14 Intel Corporation System, apparatus and method for processor-external override of hardware performance state control of a processor
US20190205061A1 (en) 2017-12-29 2019-07-04 Intel Corporation Processor, method, and system for reducing latency in accessing remote registers
US10955899B2 (en) 2018-06-20 2021-03-23 Intel Corporation System, apparatus and method for responsive autonomous hardware performance state control of a processor

Also Published As

Publication number Publication date
EP3770727A1 (en) 2021-01-27
US20210026708A1 (en) 2021-01-28
EP3770727B1 (en) 2022-09-21
US11157329B2 (en) 2021-10-26

Similar Documents

Publication Publication Date Title
US8190863B2 (en) Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction
US10613876B2 (en) Methods and apparatuses for controlling thread contention
TWI537821B (zh) 對每一核心提供電壓及頻率控制之技術
EP3155521B1 (en) Systems and methods of managing processor device power consumption
US9436245B2 (en) Dynamically computing an electrical design point (EDP) for a multicore processor
EP2207092B1 (en) Software-based thread remapping for power savings
US9223383B2 (en) Guardband reduction for multi-core data processor
US9092218B2 (en) Methods and apparatus to improve turbo performance for events handling
US9348401B2 (en) Mapping a performance request to an operating frequency in a processor
US9342122B2 (en) Distributing power to heterogeneous compute elements of a processor
US20120013627A1 (en) DYNAMIC CONTROL OF SIMDs
CN104115093A (zh) 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和系统
KR20080038389A (ko) 멀티플 코어 프로세서에서 하나 또는 그 이상의 코어의워크로드 성능의 향상 및 향상 방법
US9329658B2 (en) Block-level sleep logic
JP2013532855A (ja) グラフィクスプロセッサにおけるsimdユニットの動的な有効化及び無効化
US11422849B2 (en) Technology for dynamically grouping threads for energy efficiency
CN113448373A (zh) 用于处理器的电压调节器的功率状态缩放的装置和方法
CN112771470A (zh) 用于对多个知识产权主体和共享电源轨进行共同功率控制的系统、装置及方法
CN112306215A (zh) 用于管理逐核的性能状态的技术
US11531563B2 (en) Technology for optimizing hybrid processor utilization

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