CN104603713A - 具有逐核和封装级p0确定功能的处理器 - Google Patents
具有逐核和封装级p0确定功能的处理器 Download PDFInfo
- Publication number
- CN104603713A CN104603713A CN201380045955.2A CN201380045955A CN104603713A CN 104603713 A CN104603713 A CN 104603713A CN 201380045955 A CN201380045955 A CN 201380045955A CN 104603713 A CN104603713 A CN 104603713A
- Authority
- CN
- China
- Prior art keywords
- thread
- counter
- core
- processor
- state
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- 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/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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- 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)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Debugging And Monitoring (AREA)
Abstract
描述了一种包括处理核以及用于该处理核的多个计数器的处理器。该多个计数器用于对处理核所支持的多线程中的每一个计数第一数值和第二数值。第一数值反映为第一数值的对应线程请求了非休眠状态的周期数,而第二数值反映为第二数值的对应线程请求了非休眠状态和最高性能状态的周期数。第一数值的对应线程和第二数值的对应线程是同一个线程。
Description
发明领域
本发明的领域大致涉及计算系统,且更具体而言,涉及具有逐核和封装级P0确定功能的处理器。
背景
图1示出了标准多核处理器设计100的架构。如图1中所见,处理器包括:1)多个处理核101_1至101_N;2)互连网络102;3)末级缓存系统103;4)存储器控制器104以及I/O中枢105。每个处理核包含一个或多个用于执行程序代码指令的指令执行流水线。互连网络102用于将核101_1至101_N中的每一个互连至彼此,以及其他元件103、104、105。末级缓存系统103在指令和/或数据被放至系统存储器108之前用作处理器100中的最后一层缓存。存储器控制器104从/至系统存储器108读/写数据和指令。I/O中枢105管理处理器和“IO”设备(如非易失性存储设备和/或网络接口)之间的通信。端口106源自于互连网络102以连接多个处理器,使得具有超过N核的系统可以被实现。图形处理器107执行图形计算。为方便起见,其他具有意义的功能模块(锁相环(PLL)电路,功率管理电路等)在图1中未被绘出。
随着计算机系统的功耗开始受到关注,大多现今的系统包括精巧的功率管理功能。一种常见的机制是同时定义“性能”状态和“功率”状态。处理器的性能是其在设定时间周期内的工作能力。处理器的性能状态越好,在设定时间周期内其所做的工作越多。处理器的性能可以在运行期间通过改变其内部时钟速度和电压水平来进行调节。因此,处理器的功耗随着性能的提升而增加。
处理器不同的性能状态对应着不同的时钟设定和内部电压设定,导致不同的性能与功耗的折衷。根据高级配置和功率接口(ACPI)标准,不同的性能状态被标以不同的“P数值”:P0、P1、P2……P_N,其中,P0代表最高性能和功耗状态,而P_N代表处理器能工作的最低功耗水平。P1性能状态是最大保证性能的工作状态。P0状态,也被称为加速状态,是任何比P1更高的工作点。“P_R”中的“R”意味着不同的处理器可被配置具有不同数量的性能状态。
与性能状态相对,功率状态很大程度上是用来定义处理器不同的“休眠模式”。根据ACPI标准,C0状态是仅有的处理器能工作的功率状态。因此,对于要进入任何性能状态(P0至P_N)的处理器,该处理器必须处在C0功率状态中。当没有工作要做,而处理器将被置于休眠时,该处理器可被置于数个不同的功率状态C1、C2……CM中的任一个,其中每个功率状态代表一个不同的休眠等级,而相应的,需要不同数量的功率节省和不同长短的时间来切换回到可操作的C0功率状态。
更深的休眠等级对应着更慢的内部时钟频率和/或更低的内部供电电压,并且可能有一些逻辑模块被掉电。C数值的增加对应着更深层的休眠等级,以及相应更长的退出和返回至唤醒或C0状态的延迟。设计具有由加利福尼亚圣克拉拉的英特尔公司提供的处理器的计算机系统包括被称为“睿频加速(TurboBoost)”的“封装级”P0状态,在其中处理器作为一个整体会在一个有限时间周期内工作在相比其额定最大保证频率更高的时钟频率下,以达到更高性能。这里,“封装级”是指至少一颗处理器芯片以及可能其他芯片,例如一颗或多颗其他处理器芯片以及一颗或多颗其他系统存储器(如DRAM)芯片。这样,在最低限度上,根据睿频加速技术的现有状态,当进入封装级P0状态时,处理器100的所有核101_1至101_N会在一个有限时间周期内接收相比处理器额定最大保证时钟频率更高的时钟频率。
工作于加速(Turbo)模式的代价是功耗的增加。鉴于该功耗的后果,加速模式的进入是受到控制的,主要由处理器上的总工作负载需求整体上超过某个可配置阈值而确定。也就是说,进入睿频加速模式是封装级工作负载需求的函数。
仅从封装级角度而言,现有睿频加速技术的问题是其响应速度。例如,工作在一个核上的操作系统(OS)实例可请求进入封装P0状态。然而,所请求的P0状态除非且直到遍及处理器的工作负载,其包括遍及所有处理器核101_1至101_N测得的工作负载,整体上越过了预先设立的阈值,才会被进入。
附图说明
对本发明更好的理解可结合以下附图从以下详细说明中得到,其中:
图1示出了一种处理器;
图2示出了具有逐核P0功率状态确定的改进型处理器;
图3a示出了由图2中改进型处理器执行的方法;
图3b示出了可由图2中改进型处理器执行的逐核P0功率状态确定的算法;
图3c示出了可由图2中改进型处理器执行的封装级P0功率状态确定的算法;
详细说明
一种改进是将技术单独扩展至核。也就是说,处理器被设计为在一个有限时间周期内将超过处理器额定最大保证频率的时钟频率在逐个核(core-by-core)的基础上施加于不同的核,而非施加于作为整体的所有核。这样的功能可允许,例如,处理器管芯上的第一核工作于P0状态,而同一处理器管芯的另一个核工作在一个更低的性能状态,Pi,i>0。
图2绘出了实现“逐核(per core)”P0性能状态的处理器设计200,其中单一核,而非处理器的所有核一起,可被配置成在一个有限时间周期内以超过处理器最大额定保证频率的时钟速度来工作。如图2中可见,处理器200包括N个处理核201_1至201_N。处理器的其他特征,如以上相对于图1讨论的任何特征,为方便起见未被包括在图中。
每个处理核可包括多个逻辑处理器或硬件线程。多线程核能够在一段时间内同时执行不同的指令序列线程。根据虚拟化环境中的典型配置,虚拟机可被安排在一个或多个这样的逻辑核上运行。在非虚拟化环境中,OS会将进程/应用安排在逻辑核上。
在图2的实施例中,为了监测每个核的工作负载,监测计数器被分配给每个逻辑核,在物理核上亦称硬件线程。这样,由于每个核能够处理多达X个线程,每个核就有X组监测计数器。例如,核201_1被分配了监测计数器213_1至213_X。监测计数器组213_1至213_X被用于监测核201_1的整体工作负载。根据一个特定的实现,每组监测计数器包括两个计数器:线程_C0(Thread_C0)和线程_C0P0(Thread_C0P0)。
Thread_C0计数器对其对应的线程活跃,即非空闲,即处在C0状态的周期数进行计数。例如,在线程指定其核将要进入C0功率状态后,计数器每个周期都会递增,除非且直到线程指定其核将要进入休眠状态(如任一休眠状态C1、C2……等)。这里,应该意识到,OS,或运行在特定线程上的虚拟机可为其底层的核指定具体的功率状态。
Thread_C0P0计数器对其对应的线程活跃且请求进入更高性能状态的周期数进行计数,例如,在线程指定其核将要进入C0功率状态和P0性能状态后,计数器每个周期都会递增,除非以及直到线程另有指定。在一个实施例中,被计数的“周期”对应于施加于所有核的时钟信号周期而非核的实际、特有的周期时间。这里,应该指出的是,不同的核可被置于分别具有其各自唯一的时钟频率的不同性能状态中。如果不同核的不同时钟频率被用于增加每个核分别的计数结果,遍及逐核的记分计数会由于不同的计数速率而不齐(skewed)并且不会立刻能相互比较。因此,为了减轻这个问题,在一个实施例中,每个核的计数利用了共同的,遍及所有核的,时钟信号(例如,来自锁相环电路或延迟锁定环电路)。这样,所有核,不管它们的工作频率如何,在其百分比利用率方面,都被同等对待,而没有惩罚。虽然没有明确提到,该相同的技术可被用于以下讨论的任何其他被列表的逐核计数。
值得注意的是,线程可在其请求C0状态的很久之后请求P0状态。在这种情况下,Thread_C0P0计数仅在P0状态被请求后开始递增。这里,再次,应该意识到,OS或运行在特定线程上的虚拟机可为其底层的核及功率状态指定性能状态。
在一个实施例中,参照图3a,在一个特定的“观察”时间周期内核的所有线程的计数被列表于计数器中301。
在每个观察周期结束时,单独的线程或称逻辑核的C0和C0P0计数被结合以产生物理核的C0和C0P0计数。这被在单独的C0计数和C0P0计数的每一个上,不带比例的,利用简单的算术加法完成。这样,我们有一个忠实反映利用程度的计量(metric),甚至是在与物理核相关联的一个或多个逻辑核被关闭的情况下(按英特尔的说法,超线程被关闭以获得更高单线程性能),以及甚至是在仅有一个活跃进程且其从一个物理核跳至另一个的情况下。
如果,在观察时间周期结束时,核的线程的核(稍后会被更详细地讨论)计数器的综合的(consolidated)记分反映了足够高的核工作负载302,核被置于最高性能状态(如P0状态)303。根据一个实施例,最高性能状态允许核在一个有限时间周期内工作在高于处理器最大保证额定频率的频率下。
在每个观察周期结束时,一旦逻辑核相关的C0和C0P0计数器的数值被消耗以生成物理核相关的C0和C0P0记分,则逻辑核相关的C0和C0P0计数器的计数被重置,且如果在观察时间周期结束时核的线程的计数器未反映足够高的核工作负载,计数器被重置304,且另一个观察周期开始。
图2和图3b也描绘了一个实施例,用于基于计数器数值确定核的工作负载是否足够高以使进入更高性能状态成为必要。这里,图3b中示例性的“逐核”P0确定逻辑340可如图2中可见被具现N次,从240_1至240_N。如图2和3b中可见,单一核的诸个单独线程_C0计数器值被求和以产生该核总的C0计数(“记分”):核_C0(Core_C0)。同样,单一核的诸个单独线程_C0P0计数器值被求和以产生该核总的C0P0计数(“记分”)核_C0P0(Core_C0P0)。
根据图3b中特定的实施例,贯穿多个观察时间周期的连续Core_C0和Core_C0P0记分被累加至特殊的方程中,其衡量最近的观察时间周期结束时的计数值相对于先前观察时间周期各计数值之和的比例。具体来说,如图2和3b中可见,运行的计数被列表如下:
Running_Core_C0[i]=((∝c)*core_C0[i])+(((1-(∝c))*Running_Core_C0[i-l])
Running_Core_C0P0[i]=((∝cp)*core_C0P0[i])+(((1-(∝cp))*Running_Core_C0P0[i-1])
其中每次i的递增对应着下一个观察时间周期。这里,∝c和∝cp各自被分配了一个介于1.000和0.000之间的数值(需要注意的是,任何精度都可被用来指定∝c和∝cp)。一个更接近1.000的数值将各自运行核的记分衡量为更侧重于仅反映最近的观察时间周期的计数值,而一个更接近0.000的数值将各自运行核的记分衡量为更侧重于反映先前观察时间周期记分的累积计数。
前者为突发事件提供了更直接的响应,而后者提供了更为审慎的(measured)方法,其仅在多个时间周期被观察后对表现出的行为趋势进行响应。如下文将更详尽地描述的,根据一种方法,∝c和∝cp值被保持在更接近1.000而非0.000以确保处理器的功率管理逻辑220能通过快速将核置于P0状态对核负载的突然增加做出反应。在一个实施例中,∝c被设置等于∝cp,然而,它们可根据设计者的偏好被设置成不等同。
在一个实施例中,如图3b中可见,工作负载阈值是否被越过以致进入最高性能状态的决策是基于Running_Core_C0P0(运行_核_C0P0)是否为Running_Core_C0(运行_核_C0)的足够高的百分比。换一种说法,如果核表明在相应OS/虚拟机请求P0状态后,C0状态中执行的线程周期的足够高比例被执行,那么核进入P0状态是被认为合理的。在图3b的实施例中,该决定基本被计算如下:
If
(Running_Core_C0P0[i]>βc*Running_Core_C0[i])
THEN核性能状态=P0
其中βc代表处在C0状态中的周期比例,其中P0状态已经被OS所请求。更正式来说,为了防止抖动(当Running_Core_C0P0[i]近似等于βc*Running_Core_C0[i]时,不稳定地、快速往复地进入和离开P0状态),根据下式,某些回滞(hysteresis)330被建入P0确定的算法中:
If
(Running_Core_C0P0[i]>βc_h*Running_Core_C0[i])
THEN核性能状态=P0
ELSE If((核性能状态==P0)and
(Running_Core_C0P0[i]>βc_l*Running_Core_C0[i])
THEN核性能状态=!P0//退出核加速模式
其中βc_l<βc_h。
如图2中可见,功率管理电路220包括逻辑电路,如240_1,被用于将合适的记分列表,并最终决定特定的核是否要进入P0状态。功率管理电路220被耦接至时钟产生电路222,如锁相环电路,以在一个有限时间周期内将给P0状态的单独核的频率提高至超过处理器最大额定保证工作频率的时钟频率,并且,同样的,如果核将被带出P0状态,则将核的时钟频率降低。
另一个特征是,以上描述的逐核的P0状态技术也可被设计为同更传统的方法(在背景部分中所讨论的)一起和谐的工作,其仅将P0状态视为平等影响所有处理器核的整体处理器状态。
因此,如图2和3c中可见,为Package_C0(封装_C0)和Package_C0P0(封装_C0P0)保存另一组计数器,其中,Package_C0是所有处理器核每个相应Core_C0数值之和,而Package_C0P0是所有处理器核每个相应package_C0P0数值之和。因此,Package_C0提供了在C0功率状态中执行的线程资源的处理器广度的标示,而Package_C0P0提供了在C0功率状态中执行的、其中P0性能状态被请求的线程资源的处理器广度的标示。
与单独核的分析相似,封装级的分析250,根据图3c中的一个实施例,可根据下式被确定:
Running_Package_C0[i]=((∝pc)*package_C0[i])+(((l-(∝pc))*Running_Package_C0[i-1])
Running_Package_C0P0[i]=((∝pcp)*package_C0P0[i])+(((l-(∝pcp))*Running_Package_C0P0[i-1])
其中∝pc对应于相对先前的package_C0数值之和有多少比重被给予当前的package_C0数值,而∝pcp对应于相对先前的package_C0P0数值之和有多少比重被给予当前的package_C0P0数值。
根据一种方法,∝pc和∝pcp两个数值被给定一个相比∝c和∝cp两个数值更接近0.000的数值,以使封装级P0状态(其中所有核在一个有限时间周期内被提供了超过处理器最大额定频率的频率)被进入时相比逐核级进入P0状态具有更低的灵敏度。也就是说,∝c和∝cp数值被设定得相比∝pc和∝pcp数值更接近1.000,以使单一核响应于核工作负载的突然增加可以相对更快速地进入其自身的P0状态,而相对的,处理器广度的封装级P0状态仅在作出更审慎的观察(其相比逐核的方法更侧重于衡量遍及诸核的过去的工作负载要求)之后才被进入。在一个实施例中,∝pc和∝pcp被设置成彼此相等,尽管设计者可选择将其设为不等同。
同样与每个核的方法相仿,根据下式,回滞351可被建入封装级P0状态的确定:
If
(Running_Package_C0P0[i]>βp_h*Running_Package_CO[i])
THEN package performance state=PO
ELSE If((package performance state==PO)and
(Running_Package_C0P0[i]<βp_l*Running_Package_CO[i]))
THEN core performance state=!PO//退出封装性能模式
其中βp_l<βp_h以防止进入和退出封装级P0状态间的抖动(thrashing)。根据进一步的实施例,βp_l<0.5*βp_h。
这里,应该被指出的是,如以上描述的每个核和封装级控制的组合可被利用以“压制”(override)先前用户的设定,因为在当前的应用条件下,这样的压制是有其理由的(warranted)。例如,用户可将处理器设为“绿色”模式或某些其他节电模式作为处理器的常规配置。然而,某种情况会发生,即呈现于核的工作负载如此极端以致暂时压制用户设置以满足峰值需求是合理的。这里,用于封装级和逐核级的列表的计数可被用作决定去压制用户设置的基础。这里,足以触发压制操作的具体计数水平可被编程在硬件中。替代地、或与之组合,处理器可被设计为将计数公开至软件(通过寄存器空间和/或存储器)以使软件(如功率管理软件)能做出决定。
应该指出的是,尽管以上讨论很大程度上针对于影响通用处理核的性能状态,其他类型的核,如图形处理核也可适于根据本文所描述的技术来处理。例如,具有一个或多个图形核的处理器可根据以上描述的逐核的方法单独进入P0状态。确定P0状态是否适合于图形处理核的分析可包括∝c和∝cp数值,其与为通用核建立的数值相同或不同。关于图形处理器的相同的方法也可对任何内嵌于处理器的加速器采用。加速器,如普通技术人员所知,是设计成响应相比需要执行相同功能的通用核的指令数更少的命令/指令而执行特定复杂功能(如加密/解密,dsp(数字信号处理),特定的算术功能,如金融运算,科学计算运算等)的专用硬件模块。
对于实现,任何/所有所列的Thread_C0、Core_C0、Thread_P0C0、Core_P0C0、Running_Core_C0、Running_Core_P0C0、Package_C0和Package_C0P0、Running_Package_C0和Running_Package_P0C0计数可被保存于处理器的寄存器空间内。这样的寄存器空间可以是处理器的只读的、或甚至是可读/写模型特定寄存器(MSR)空间,以允许软件(如虚拟机监控(VMM)软件,OS或其他管理软件)对计数进行监控。
在一个实施例中,确定核级和封装级进入P0状态中/从P0状态退出的功率管理电路220的硬件逻辑可在MSR空间中被启用(enalbled)/禁用(disabled),以使得,例如,在禁用的情况下,VMM软件可从MSR空间监控列表计数(tabulated counts)并通过额外的MSR空间命令逐核和封装级P0状态进入/退出。也可为核级计数保留存储器空间。在相同或替代实施例中,任何和/或所有∝c、∝cp、∝pc、∝pcp、βc_l、βc_h、βp_l、βp_h参数的任何和/或全部可通过(如VMM或云监控)软件(如通过写入MSR空间)来编程以定制逐核和/或封装级P0进入/退出动态(dynamics)。任何该可编程参数可在系统建立(bring-up)时从BIOS载入。
用于实现逐核P0确定算法(如图3b的确定)和封装级P0确定(如图3c的确定)的电路可由专用逻辑电路实现为微控制器,该微控制器通常用小程序代码占用空间的(footprint)、在处理核(如处理核201_1至201_N中的任何一个或其任意组合)上执行的软件代码来执行算法。
由于上述讨论所授的任何逻辑过程可由控制器,微控制器或类似元件完成,这样的过程可以是程序代码,例如,使得执行这些指令的机器完成特定功能的机器可执行指令。上述讨论所教示的过程,作为执行程序编码的替代,或与执行程序代码相结合,也可由设计为完成所述过程(或其部分)的电子电路来完成。
据信上述讨论所教示的过程也可用不同的面向对象或非面向对象的计算机编程语言以源级程序代码来加以描述。一种制品可被用于储存程序代码。储存程序编码的制品可体现为,但不限于,一种或多种存储器(如一种或多种闪存、随机存取存储器(静态、动态或其他))、光盘、CD-ROM、DVD ROM、EPROM、EEPROM、磁卡或光卡或其他类型适合于储存电子指令的机器可读介质。程序代码也可通过体现于传播介质中(如通过通信链路(如网络连接))的数据信号的方式从远程计算机(如服务器)下载至请求计算机(如客户端)。
在前述的说明中,本发明参照其具体示例性实施例进行描述。然而,显而易见的是,在不背离如所附权利要求中阐述的本发明的更宽泛的精神和范围的情况下,各种修改和改变可对其进行实施。说明和附图相应地被认为是说明性的,而非限制性意义的。
Claims (20)
1.一种处理器,包括:
a)处理核;
b)用于所述处理核的多个计数器,所述多个计数器用于对所述处理核所支持的多线程中的每一个计数以下项:
第一数值,其反映为所述第一数值的对应线程请求了非休眠状态的周期数,以及,
第二数值,其反映为所述第二数值的对应线程请求了非休眠状态和最高性能状态的周期数,所述第一数值的对应线程和所述第二数值的对应线程是同一个线程。
2.如权利要求1所述的处理器,还包括用于基于所述多个计数器的内容确定所述处理核是否要进入所述最高性能状态的电路。
3.如权利要求2所述的处理器,还包括:
a)第二处理核;
b)用于所述第二处理核的第二多个计数器,所述第二多个计数器用于对所述第二处理核所支持的多线程中的每一个计数以下项:
另一第一数值,其反映为所述另一第一数值的对应线程请求了非休眠状态的周期数,以及,
另一第二数值,其反映为所述另一第二数值的对应线程请求了非休眠状态和最高性能状态的周期数,所述另一第一数值的对应线程和所述另一第二数值的对应线程是同一个线程,
其中,所述第一和第二处理核的所述计数器中的各个计数器被设计为基于相同的时钟频率递增。
4.如权利要求3所述的处理器,还包括:
第一电路,其用于基于所述多个计数器的内容确定所述处理核是否要进入其最高性能状态;
第二电路,其用于基于所述第二多个计数器的内容确定所述第二处理核是否要进入其最高性能状态。
5.如权利要求4所述的处理器,还包括:
第三电路,其用于基于所述第一数值和所述另一第一数值的第一组合,以及所述第二数值和所述另一第二数值的第二组合,确定所述处理器是否要进入其最高封装级性能状态。
6.如权利要求4所述的处理器,还包括用来输入可编程数值的寄存器空间,所述可编程数值确立被所述第一和第二电路用来做出它们各自确定的所述第一和第二多个计数器的过去内容对当前内容的相对权重。
7.如权利要求4所述的处理器,其中所述第一和/或第二电路被耦接以接收任何种类的程序代码来执行所述程序代码以做出所述确定中的一项或两项。
8.如权利要求4所述的处理器,其中所述第一和第二电路存在于功率管理电路中。
9.如权利要求8所述的处理器,其中所述功率管理电路被耦接至向所述第一和第二处理核提供时钟信号的时钟产生电路。
10.一种方法,包括:
在多核处理器上执行以下操作:
对于处理核的第一线程处于为该第一线程请求了非睡眠功率状态的状态中的每个周期,递增为所述处理核的所述第一线程所保留的第一计数器;
对于所述第一线程处于为该第一线程请求了非睡眠功率状态和最高性能状态的状态中的每个周期,递增为所述第一线程所保留的第二计数器;
对于所述处理核的第二线程处于为该第二线程请求了非睡眠功率状态的状态中的每个周期,递增为所述处理核的所述第二线程所保留的第一计数器;以及,
对于所述第二线程处于为该第二线程请求了非睡眠功率状态和最高性能状态的状态中的每个周期,递增为所述第二线程所保留的第二计数器。
11.如权利要求10所述的方法,还包括:
将为所述第一和第二线程所保留的所述第一计数器的内容相加以产生所述处理核的第一计量。
12.如权利要求11所述的方法,还包括:
将为所述第一和第二线程所保留的所述第二计数器的内容相加以产生所述处理核的第二计量。
13.如权利要求12所述的方法,还包括基于所述第一和第二计量确定所述处理核是否应该被置于所述最高性能状态中。
14.如权利要求13所述的方法,其中所述确定包括计算所述计量中的一个占所述计量中的另一个的百分比。
15.如权利要求12所述的方法,其中所述第一和第二计量中的至少一个由可编程数值确定,所述可编程数值帮助确立当前第一和/或第二计数器值对过去第一和/或第二计数器值的权重。
16.如权利要求10所述的方法,还包括:
对于第二处理核的第一线程处于为该第一线程请求了非睡眠功率状态的状态中的每个周期,递增为所述第二处理核的所述第一线程所保留的第一计数器;
对于所述第二处理核的第一线程处于为该第一线程请求了非睡眠功率状态和最高性能状态的状态中的每个周期,递增为所述第二处理核的所述第一线程所保留的第二计数器;
对于所述第二处理核的第二线程处于为该第二线程请求了非睡眠功率状态的状态中的每个周期,递增为所述第二处理核的所述第二线程所保留的第一计数器;以及,
对于所述第二处理核的所述第二线程处于为该第二线程请求了非睡眠功率状态和最高性能状态的状态中的每个周期,递增为所述第二处理核的所述第二线程所保留的第二计数器。
17.如权利要求16所述的方法,还包括将为所述第一和第二处理核的所述第一和第二线程所保留的所述第一计数器的内容相加以确定所述处理器的第一计量。
18.如权利要求17所述的方法,还包括将为所述第一和第二处理核的所述第一和第二线程所保留的所述第二计数器的内容相加以确定所述处理器的第二计量。
19.如权利要求18所述的方法,还包括基于所述第一和第二计量确定所述处理器是否要进入最高性能的封装级性能状态中。
20.一种包含程序代码的计算机可读介质,所述程序代码在多核处理器上执行时使得所述多核处理器执行一种方法,所述方法包括:
对于处理核的第一线程处于为该第一线程请求了非睡眠功率状态的状态中的每个周期,递增为所述处理核的所述第一线程所保留的第一计数器;
对于所述第一线程处于为该第一线程请求了非睡眠功率状态和最高性能状态的状态中的每个周期,递增为所述第一线程所保留的第二计数器;
对于所述处理核的第二线程处于为该第二线程请求了非睡眠功率状态的状态中的每个周期,递增为所述处理核的所述第二线程所保留的第一计数器;以及,
对于所述第二线程处于为该第二线程请求了非睡眠功率状态和最高性能状态的状态中的每个周期,递增为所述第二线程所保留的第二计数器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/631,831 US9141426B2 (en) | 2012-09-28 | 2012-09-28 | Processor having per core and package level P0 determination functionality |
US13/631,831 | 2012-09-28 | ||
PCT/US2013/044571 WO2014051715A1 (en) | 2012-09-28 | 2013-06-06 | Processor having per core and package level p0 determination functionality |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104603713A true CN104603713A (zh) | 2015-05-06 |
CN104603713B CN104603713B (zh) | 2017-05-17 |
Family
ID=50386553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380045955.2A Expired - Fee Related CN104603713B (zh) | 2012-09-28 | 2013-06-06 | 具有逐核和封装级p0确定功能的处理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9141426B2 (zh) |
CN (1) | CN104603713B (zh) |
GB (1) | GB2520850B (zh) |
WO (1) | WO2014051715A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378057B2 (en) * | 2014-02-28 | 2016-06-28 | Red Hat Israel, Ltd. | Paravirtualized migration counter |
US9389910B2 (en) * | 2014-06-02 | 2016-07-12 | Red Hat Israel, Ltd. | Paravirtualized migration counter for migrating a virtual CPU to a different physical CPU |
US9779058B2 (en) * | 2015-07-13 | 2017-10-03 | Google Inc. | Modulating processsor core operations |
US10216599B2 (en) | 2016-05-26 | 2019-02-26 | International Business Machines Corporation | Comprehensive testing of computer hardware configurations |
US10223235B2 (en) | 2016-05-26 | 2019-03-05 | International Business Machines Corporation | Comprehensive testing of computer hardware configurations |
US10359833B2 (en) * | 2016-06-20 | 2019-07-23 | Qualcomm Incorporated | Active-core-based performance boost |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044319A1 (en) * | 2003-08-19 | 2005-02-24 | Sun Microsystems, Inc. | Multi-core multi-thread processor |
US20060005051A1 (en) * | 2004-06-30 | 2006-01-05 | Sun Microsystems, Inc. | Thread-based clock enabling in a multi-threaded processor |
US7360103B2 (en) * | 2004-05-21 | 2008-04-15 | Intel Corporation | P-state feedback to operating system with hardware coordination |
US20100185820A1 (en) * | 2009-01-21 | 2010-07-22 | Advanced Micro Devices, Inc. | Processor power management and method |
CN101807109A (zh) * | 2009-03-06 | 2010-08-18 | 威盛电子股份有限公司 | 微处理器功率调节方法以及微处理器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396635A (en) * | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US7415708B2 (en) * | 2003-06-26 | 2008-08-19 | Intel Corporation | Virtual machine management using processor state information |
US7788670B2 (en) * | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
US8838940B2 (en) * | 2006-06-07 | 2014-09-16 | Azul Systems, Inc. | CPU utilization metering on systems that include multiple hardware threads per core |
US9785463B2 (en) * | 2009-12-26 | 2017-10-10 | Intel Corporation | Using per task time slice information to improve dynamic performance state selection |
US20110283286A1 (en) * | 2010-05-11 | 2011-11-17 | Dell Products L.P. | Methods and systems for dynamically adjusting performance states of a processor |
US8793515B2 (en) * | 2011-06-27 | 2014-07-29 | Intel Corporation | Increasing power efficiency of turbo mode operation in a processor |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains of a processor |
DE112012007115T5 (de) * | 2012-12-28 | 2015-08-20 | Paul Brett | Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform |
US9170854B2 (en) * | 2013-06-04 | 2015-10-27 | Advanced Micro Devices, Inc. | Thread assignment for power and performance efficiency using multiple power states |
-
2012
- 2012-09-28 US US13/631,831 patent/US9141426B2/en not_active Expired - Fee Related
-
2013
- 2013-06-06 WO PCT/US2013/044571 patent/WO2014051715A1/en active Application Filing
- 2013-06-06 CN CN201380045955.2A patent/CN104603713B/zh not_active Expired - Fee Related
- 2013-06-06 GB GB1500359.3A patent/GB2520850B/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044319A1 (en) * | 2003-08-19 | 2005-02-24 | Sun Microsystems, Inc. | Multi-core multi-thread processor |
US7360103B2 (en) * | 2004-05-21 | 2008-04-15 | Intel Corporation | P-state feedback to operating system with hardware coordination |
US20060005051A1 (en) * | 2004-06-30 | 2006-01-05 | Sun Microsystems, Inc. | Thread-based clock enabling in a multi-threaded processor |
US20100185820A1 (en) * | 2009-01-21 | 2010-07-22 | Advanced Micro Devices, Inc. | Processor power management and method |
CN101807109A (zh) * | 2009-03-06 | 2010-08-18 | 威盛电子股份有限公司 | 微处理器功率调节方法以及微处理器 |
Also Published As
Publication number | Publication date |
---|---|
WO2014051715A1 (en) | 2014-04-03 |
US9141426B2 (en) | 2015-09-22 |
CN104603713B (zh) | 2017-05-17 |
US20140096137A1 (en) | 2014-04-03 |
GB2520850A (en) | 2015-06-03 |
GB201500359D0 (en) | 2015-02-25 |
GB2520850B (en) | 2020-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104603713A (zh) | 具有逐核和封装级p0确定功能的处理器 | |
US9098274B2 (en) | Methods and apparatuses to improve turbo performance for events handling | |
CN104169832B (zh) | 提供处理器的能源高效的超频操作 | |
CN103649864B (zh) | 在处理器中增加超频模式操作的功耗效率 | |
CN103810048B (zh) | 一种面向资源利用最优的线程数量自动调整方法及装置 | |
TWI477945B (zh) | 用以控制處理器之渦輪加速模式頻率的方法、及能夠控制其之渦輪加速模式頻率的處理器 | |
CN106980492B (zh) | 用于计算的装置、系统、方法、机器可读存储介质和设备 | |
TWI574204B (zh) | 對每一核心提供電壓及頻率控制之技術 | |
CN102103516B (zh) | 基于虚拟cpu的频率和电压调节 | |
US20090172424A1 (en) | Thread migration to improve power efficiency in a parallel processing environment | |
US20050050310A1 (en) | Method, system, and apparatus for improving multi-core processor performance | |
CN102597912B (zh) | 用于平台功率节省的协调设备和应用程序中断事件 | |
Liao et al. | Energy-efficient algorithms for distributed storage system based on block storage structure reconfiguration | |
CN102656603B (zh) | 利用性能计数器的图形流水线调度架构 | |
WO2017172027A1 (en) | Systems, methods and devices for dynamic power management of devices using game theory | |
GB2453257A (en) | Selecting optimal processor performance levels by using processor hardware feedback mechanisms adjusted according to stall count | |
TW201346770A (zh) | 多層級中央處理單元(cpu)高電流保護技術 | |
CN111090505B (zh) | 一种多处理器系统中任务调度的方法和系统 | |
Muralidhar et al. | Energy efficient computing systems: Architectures, abstractions and modeling to techniques and standards | |
CN107423109B (zh) | 基于匿名随机变量的虚拟机节能调度方法 | |
CN101685335A (zh) | 基于seda的应用服务器及其节能装置和方法 | |
EP4163795A1 (en) | Techniques for core-specific metrics collection | |
CN106598203B (zh) | 一种数据密集环境下的单芯片多处理器系统的电源管理方法 | |
CN108388498A (zh) | 内存中计算的功率建模方法及功率管理方法 | |
Niemi et al. | Memory-based scheduling of scientific computing clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170517 Termination date: 20190606 |