CN113924540A - 用于处理器中的传感器驱动的和基于试探的最低能量点跟踪的系统、装置和方法 - Google Patents
用于处理器中的传感器驱动的和基于试探的最低能量点跟踪的系统、装置和方法 Download PDFInfo
- Publication number
- CN113924540A CN113924540A CN202080039711.3A CN202080039711A CN113924540A CN 113924540 A CN113924540 A CN 113924540A CN 202080039711 A CN202080039711 A CN 202080039711A CN 113924540 A CN113924540 A CN 113924540A
- Authority
- CN
- China
- Prior art keywords
- processor
- mep
- information
- activity
- step value
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05F—SYSTEMS FOR REGULATING ELECTRIC OR MAGNETIC VARIABLES
- G05F1/00—Automatic systems in which deviations of an electric quantity from one or more predetermined values are detected at the output of the system and fed back to a device within the system to restore the detected quantity to its predetermined value or values, i.e. retroactive systems
- G05F1/10—Regulating voltage or current
- G05F1/46—Regulating voltage or current wherein the variable actually regulated by the final control device is dc
- G05F1/462—Regulating voltage or current wherein the variable actually regulated by the final control device is dc as a function of the requirements of the load, e.g. delay, temperature, specific voltage/current characteristic
-
- 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/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- 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/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Radar, Positioning & Navigation (AREA)
- Automation & Control Theory (AREA)
- Electromagnetism (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
在一个实施例中,一种处理器包括最低能量点(MEP)控制器,用于:至少部分基于先前和当前热信息来生成热跟踪信息的变化;至少部分基于先前活动信息和当前活动信息来生成活动跟踪信息的变化;并且至少部分基于热跟踪信息的变化和活动跟踪信息的变化来确定MEP性能状态。描述和要求保护了其他实施例。
Description
技术领域
实施例涉及控制到数字集成电路的功率以降低各种条件下的能量消耗。
背景技术
大多数数字集成电路中的能量消耗高度依赖于为集成电路供电的供应电压和控制集成电路的切换的时钟的频率。当今的集成电路能够在供应电压和频率两者的广泛动态范围上操作,这可能导致能量效率的广泛变化的范围。具体地,数字CMOS硅的最佳能量效率可能是在“近阈值电压”(near-threshold voltage,NTV)状态周围实现的,该状态具有最优的供应电压和频率以及明确的最低能量点(minimum energy point,MEP),在该点处能量效率可以比额定供应操作好5-10倍。最优电压和MEP在各工作负载活动中以及随着工艺和温度变动可广泛地变化。非线性集成电压调节器(integrated voltage regulator,IVR)的效率可进一步转变MEP和最优电压,因为整个系统消耗的能量被考虑在内。找到一个真正的最优MEP可以使系统消耗的能量发生重大差异。当前的技术未能以高效的方式做到这一点。
附图说明
图1是根据本发明的实施例的系统的一部分的框图。
图2是根据本发明的实施例的处理器的框图。
图3是根据本发明的另一实施例的多域处理器的框图。
图4是包括多个核心的处理器的实施例。
图5是根据本发明的一个实施例的处理器核心的微体系结构的框图。
图6是根据另一实施例的处理器核心的微体系结构的框图。
图7是根据又一实施例的处理器核心的微体系结构的框图。
图8是根据另外一个实施例的处理器核心的微体系结构的框图。
图9是根据本发明的另一实施例的处理器的框图。
图10是根据本发明的实施例的代表性SoC的框图。
图11是根据本发明的实施例的另一示例SoC的框图。
图12是可与实施例一起使用的示例系统的框图。
图13是可与实施例一起使用的另一示例系统的框图。
图14是代表性计算机系统的框图。
图15是根据本发明的实施例的系统的框图。
图16是根据实施例图示出IP核心开发系统的框图,该IP核心开发系统被用于制造集成电路以执行操作。
图17是根据本发明的实施例的方法的流程图。
图18是根据本发明的另一实施例的方法的流程图。
图19是根据本发明的实施例的能量消耗与操作电压的关系的图解。
图20是根据本发明的实施例的关于工作负载活动的变化的一组代表性仿真MEP曲线。
图21是根据本发明的实施例的MEP的变化与温度和活动的关系的示例图示。
图22是根据本发明的实施例的MEP控制器的框图。
图23是根据本发明的另一实施例的MEP控制器的框图。
具体实施方式
在各种实施例中,一种处理器被配置有最低能量点(MEP)控制电路,以确定和跟踪处理器和/或其构成组件的MEP,所述构成组件包括一个或多个核心或其他处理电路。为了能够在处理器的生命周期内以高速和低影响的方式高效跟踪MEP,实施例利用了一种高效的传感器驱动的能量计算技术来得出MEP。因此,实施例可以高速且低复杂度地为处理器确定和跟踪MEP,与传统的基于一点(一次一点)扫描的能量计算方法不同,后者对处理器操作电压和操作频率执行许多更新迭代,以尝试识别给定工作负载的MEP。
通过本文的实施例,传感器驱动和试探技术提供了快速的实时MEP跟踪,从而简化了相对计算式计算,并且减小了开销。因此,实施例可实现更好的MEP跟踪,因为当处理器的操作条件发生变化时,与递归/昂贵的搜索相比,本文的技术使得能够快速得多地确定更新的MEP点。换句话说,具有多个电压和频率更新的识别MEP的传统(例如,动态电压频率缩放(dynamic voltage frequency scaling,DVFS))技术在实施例中可被用智能且直接的计算硬件来代替,以预测MEP并且在单个步骤中将操作直接更新到这个操作点,从而提高性能。
在实施例中,利用一个或多个预表征的(以及每管芯可编程的)查找表(lookuptable,LUT),MEP控制器可利用传感器驱动的数据和试探来迅速计算并且重新锁定到新的最优MEP点。通过实施例,与计算上昂贵的绝对MEP跟踪方法相比,可以按相对方式确定MEP,以智能地调整最优MEP。
虽然参考特定集成电路中(例如计算平台或处理器中)的能量节约和能量效率来描述了以下实施例,但其他实施例适用于其他类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可被应用到也可受益于更好的能量效率和能量节约的其他类型的电路或半导体器件。例如,公开的实施例不限于任何特定类型的计算机系统。也就是说,公开的实施例可被用于许多不同的系统类型中,范围从服务器计算机(例如,塔式服务器、机架式服务器、刀片式服务器、微服务器等等)、通信系统、存储系统、任何配置的桌面计算机、膝上型电脑、笔记本电脑、到平板计算机(包括2:1平板设备、平板手机等等)不等,并且也可被用于其他设备中,例如手持设备、片上系统(systems on chip,SoC)、以及嵌入式应用。手持设备的一些示例包括诸如智能电话之类的蜂窝电话、互联网协议设备、数字相机、个人数字助理(personal digital assistant,PDA)、以及手持PC。嵌入式应用通常可包括微控制器、数字信号处理器(digital signal processor,DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(wide area network,WAN)交换机、可穿戴设备、或者能够执行下面教导的功能和操作的任何其他系统。另外,实施例可被实现在具有标准语音功能的移动终端中,例如移动电话、智能电话和平板手机,和/或被实现在没有标准无线语音功能通信能力的非移动终端中,例如许多可穿戴设备、平板设备、笔记本电脑、桌面电脑、微服务器、服务器,等等。另外,本文描述的装置、方法和系统不限于物理计算设备,而是也可涉及针对能量节约和效率的软件优化。正如在以下描述中将变得容易清楚的,本文描述的方法、装置和系统的实施例(无论是就硬件、固件、软件或者其组合而言)对于“绿色技术”未来,例如对于涵盖美国经济的一大部分的产品中的功率节约和能量效率,是至关重要的。
现在参考图1,示出了根据本发明的实施例的系统的一部分的框图。如图1所示,系统100可包括各种组件,其中包括处理器110,该处理器110如图所示是多核心处理器。处理器110可经由外部电压调节器160耦合到电力供应源150,该电压调节器160可执行第一电压转换以向处理器110提供主调节电压。
可以看出,处理器110可以是包括多个核心120a-120n的单管芯处理器。此外,每个核心可与集成电压调节器(integrated voltage regulator,IVR)125a-125n相关联,该集成电压调节器接收主调节电压并且生成要被提供给与该IVR相关联的处理器的一个或多个代理的操作电压。因此,可以提供IVR实现方式来允许对电压进行细粒度控制并从而允许对每个个体核心的功率和性能进行细粒度控制。这样,每个核心可按独立的电压和频率进行操作,这使能了很大的灵活性并且提供了很宽的机会来平衡功率消耗与性能。在一些实施例中,对多个IVR的使用使得能够将组件分组到分开的电力平面中,使得电力被IVR调节并且只供应给群组中的那些组件。在功率管理期间,一个IVR的给定电力平面在处理器被置于某个低功率状态中时可被掉电或断电,而另一IVR的另一电力平面保持活跃或者被完全供电。
仍然参考图1,额外的组件可存在于处理器内,包括输入/输出接口132、另一接口134、以及集成存储器控制器136。可以看出,这些组件中的每一者可由另一集成电压调节器125x来供电。在一个实施例中,接口132可为快速路径互连(Quick PathInterconnect,QPI)互连使能操作,该互连以包括多个层的缓存一致性协议提供点到点(point-to-point,PtP)链路,所述多个层包括物理层、链路层和协议层。进而,接口134可经由快速外围组件互连(Peripheral Component Interconnect Express,PCIeTM)协议来进行通信。
还示出了功率控制单元(power control unit,PCU)138,该PCU 138可包括硬件、软件和/或固件来执行关于处理器110的功率管理操作。可以看出,PCU 138经由数字接口向外部电压调节器160提供控制信息以使得电压调节器生成适当的经调节的电压。PCU 138还经由另一数字接口向IVR 125提供控制信息以控制生成的操作电压(或者使得相应的IVR在低功率模式中被禁用)。在各种实施例中,PCU 138可包括多种功率管理逻辑单元来执行基于硬件的功率管理。这种功率管理可以是完全处理器控制的(例如,由各种处理器硬件控制,并且可由工作负载和/或功率约束、热约束或其他处理器约束所触发),和/或功率管理可响应于外部源(例如,平台或管理功率管理源或系统软件)而被执行。
此外,虽然图1示出了其中PCU 138是单独的处理引擎(其可被实现为微控制器)的实现方式,但要理解在一些情况下,除了专用功率控制器以外或者取代专用功率控制器,每个核心可包括功率控制代理或者与功率控制代理相关联来更自主地独立控制功率消耗。在一些情况下,可提供层次化功率管理体系结构,其中PCU 138和与每个核心120相关联的相应功率管理代理进行通信。
PCU 138中包括的一个功率管理逻辑可以是MEP控制器,该MEP控制器被配置为至少部分基于动态处理器条件(包括热信息和/或活动信息的变化)来轻松且高效地识别MEP操作点。此外,MEP控制器可以至少部分基于多个操作电压和操作频率点的扫描以及处理器的工艺变动来确定初始MEP操作点。此后,MEP控制器可以如本文所述至少部分基于活动跟踪信息和温度跟踪信息中的一个或多个来识别对MEP操作点的适当更新。
虽然为了图示的容易而没有示出,但要理解在处理器110内可以存在额外的组件,例如额外的控制电路,以及诸如内部存储器(例如缓存存储器层次体系的一个或多个级别,等等)之类的其他组件。此外,虽然在图1的实现方式中是用集成电压调节器来示出的,但实施例不限于此。
注意,本文描述的功率管理技术可独立于基于操作系统(operating system,OS)的功率管理(operating system-based power management,OSPM)机制并且与其互补。根据一个示例OSPM技术,处理器可按各种性能状态或水平——所谓的P状态(即从P0至PN)——进行操作。一般而言,P1性能状态可对应于OS可以请求的最高保证性能状态。本文描述的实施例可使得能够基于多种输入和处理器操作参数来对P1性能状态的保证频率进行动态改变。除了这个P1状态以外,OS还可请求更高的性能状态,即P0状态。这个P0状态从而可以是机会模式或加强模式状态,其中当功率和/或热预算可用时,处理器硬件可将处理器或者其至少一些部分配置为按高于保证频率来进行操作。在许多实现方式中,处理器可包括高于P1保证最大频率的、超出到特定处理器的最大峰值频率的多个所谓的分段频率(binfrequency),这些分段频率在制造期间被烧熔或以其他方式写入到处理器中。此外,根据一个OSPM机制,处理器可按各种功率状态或水平来进行操作。关于功率状态,OSPM机制可指定不同的功率消耗状态,一般称为C状态,C0、C1至Cn状态。当核心活跃时,该核心按C0状态来运行,并且当核心空闲时,其可被置于核心低功率状态中,也被称为核心非零C状态(例如,C1-C6状态),其中每个C状态处于更低的功率消耗水平(从而C6是比C1更深的低功率状态,等等依此类推)。
要理解,许多不同类型的功率管理技术在不同的实施例中可被单独或组合使用。作为代表性示例,功率控制器可控制处理器按某种形式的动态电压频率缩放(dynamicvoltage frequency scaling,DVFS)来被功率管理,在该动态电压频率缩放中,一个或多个核心或其他处理器逻辑的操作电压和/或操作频率可被动态地控制以在某些情形中降低功率消耗。在一示例中,可利用可从加州圣克拉拉的英特尔公司获得的增强型英特尔SpeedStepTM技术来执行DVFS,以在最低的功率消耗水平下提供最优的性能。在另一示例中,可利用英特尔TurboBoostTM技术来执行DVFS,以使得一个或多个核心或其他计算引擎能够基于状况(例如,工作负载和可用性)以高于保证操作频率来进行操作。
在某些示例中可使用的另一种功率管理技术是工作负载在不同计算引擎之间的动态调换。例如,处理器可包括以不同的功率消耗水平操作的非对称核心或其他处理引擎,使得在功率受约束的情形中,一个或多个工作负载可被动态切换来在更低功率的核心或其他计算引擎上执行。另一种示范性功率管理技术是硬件工作周期循环(hardware dutycycling,HDC),其可使得核心和/或其他计算引擎根据工作周期被周期性地启用和禁用,从而使得一个或多个核心可在工作周期的非活跃时段期间被设为不活跃并且在工作周期的活跃时段期间被设为活跃。虽然是利用这些特定示例来描述的,但要理解在特定实施例中可使用许多其他功率管理技术。
实施例可被实现在针对各种市场的处理器中,包括服务器处理器、桌面处理器、移动处理器等等。现在参考图2,示出了根据本发明的实施例的处理器的框图。如图2所示,处理器200可以是包括多个核心210a-210n的多核心处理器。在一个实施例中,每个这种核心可以是独立的电力域的并且可被配置为基于工作负载来进入和退出活跃状态和/或最大性能状态。各种核心可经由互连215来耦合到包括各种组件的系统代理220。可以看出,系统代理220可包括共享缓存230,该共享缓存230可以是最后一级缓存。此外,系统代理可包括集成存储器控制器240来例如经由存储器总线与系统存储器(图2中未示出)通信。系统代理220还包括各种接口250和功率控制单元255,功率控制单元255可包括逻辑来执行本文描述的功率管理技术。在所示出的实施例中,功率控制单元255包括MEP控制器258,MEP控制器258可为处理器200确定初始MEP点。此外,MEP控制器258可以如本文所述至少部分基于活动跟踪信息和/或温度跟踪信息来动态地确定对MEP操作点的一个或多个更新。此外,在适当的与年龄相关的持续时间,MEP控制器258可确定经更新的最优MEP性能状态。
此外,通过接口250a-250n,可进行到各种芯片外组件(例如外围设备、大容量存储装置等等)的连接。虽然在图2的实施例中是利用这个特定实现方式示出的,但本发明的范围在这个方面不受限制。
现在参考图3,示出了根据本发明的另一实施例的多域处理器的框图。如图3的实施例中所示,处理器300包括多个域。具体而言,核心域310可包括多个核心3100-310n,图形域320可包括一个或多个图形引擎,并且系统代理域350可进一步存在。在一些实施例中,系统代理域350可按独立于核心域的频率来执行并且可在所有时间保持通电以应对功率控制事件和功率管理,使得域310和320可被控制来动态地进入和退出高功率和低功率状态。域310和320中的每一者可按不同的电压和/或功率来进行操作。注意,虽然只示出了三个域,但要理解本发明的范围在这个方面不受限制,并且在其他实施例中可存在额外的域。例如,多个核心域可存在,每个核心域包括至少一个核心。
一般而言,每个核心310除了各种执行单元和额外的处理元件以外还可包括低级别缓存。进而,各种核心可耦合到彼此并且耦合到由最后一级缓存(last level cache,LLC)3400-340n的多个单元形成的共享缓存存储器。在各种实施例中,LLC 340可被共享于核心和图形引擎,以及各种媒体处理电路之间。可以看出,环状互连330从而将核心耦合在一起,并且在核心、图形域320和系统代理电路350之间提供互连。在一个实施例中,互连330可以是核心域的一部分。然而,在其他实施例中,环状互连可以是其自己的域的。
还可以看出,系统代理域350可包括显示控制器352,该显示控制器352可提供对关联的显示器的控制和到关联的显示器的接口。还可以看出,系统代理域350可包括功率控制单元355,该功率控制单元355可包括逻辑来执行本文描述的功率管理技术。在所示出的实施例中,功率控制单元355包括MEP控制器359,该MEP控制器359如本文所述可基于工艺变动信息、活动跟踪信息和温度跟踪信息中的一些或全部,使用基于试探的方法来利用一个或多个查找表中的信息,从而确定初始的和经更新的MEP操作点。
从图3中还可看出,处理器300还可包括集成存储器控制器(integrated memorycontroller,IMC)370,该IMC 370可提供到诸如动态随机访问存储器(dynamic randomaccess memory,DRAM)之类的系统存储器的接口。多个接口3800-380n可存在来使能处理器和其他电路之间的互连。例如,在一个实施例中,可提供至少一个直接媒体接口(directmedia interface,DMI)接口,以及一个或多个PCIeTM接口。此外,为了提供诸如额外的处理器或其他电路之类的其他代理之间的通信,也可提供一个或多个QPI接口。虽然在图3的实施例中是在这个高级别示出的,但要理解本发明的范围在这个方面不受限制。
参考图4,图示了包括多个核心的处理器的实施例。处理器400包括任何处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(digital signal processor,DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(system on a chip,SoC)、或者用于执行代码的其他设备。处理器400在一个实施例中包括至少两个核心——核心401和402,它们可包括非对称核心或对称核心(图示的实施例)。然而,处理器400可包括可以是对称或非对称的任何数目的处理元件。
在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心、和/或能够为处理器保持状态(例如执行状态或体系结构状态)的任何其他元件。换言之,处理元件在一个实施例中指的是能够独立地与诸如软件线程、操作系统、应用或其他代码之类的代码相关联的任何硬件。物理处理器通常指的是一种集成电路,该集成电路可包括任何数目的其他处理元件,例如核心或硬件线程。
核心经常指能够维持独立体系结构状态的、位于集成电路上的逻辑,其中每个被独立维持的体系结构状态与至少一些专用执行资源相关联。与核心形成对比,硬件线程通常指能够维持独立体系结构状态的、位于集成电路上的任何逻辑,其中被独立维持的体系结构状态共享对执行资源的访问。可以看出,当某些资源被共享并且其他资源被专用于体系结构状态时,硬件线程和核心的命名法之间的界线会重叠。然而经常,核心和硬件线程被操作系统看作单独的逻辑处理器,其中操作系统能够单独调度每个逻辑处理器上的操作。
如图4所示,物理处理器400包括两个核心,即核心401和402。这里,核心401和402被认为是对称核心,即具有相同的配置、功能单元和/或逻辑的核心。在另一实施例中,核心401包括乱序处理器核心,而核心402包括有序处理器核心。然而,核心401和402可以是单独从任何类型的核心中选择的,例如,原生核心、受软件管理的核心、被适配为执行原生指令集体系结构(instruction set architecture,ISA)的核心、被适配为执行经转化的ISA的核心、共同设计的核心,或者其他已知的核心。再进一步讨论,下文更详细描述在核心401中图示的功能单元,因为核心402中的单元以类似的方式进行操作。
如图所示,核心401包括两个硬件线程401a和401b,它们也可被称为硬件线程槽401a和401b。因此,软件实体(例如操作系统)在一个实施例中可能将处理器400视为四个分开的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上文提到的,第一线程与体系结构状态寄存器401a相关联,第二线程与体系结构状态寄存器401b相关联,第三线程可与体系结构状态寄存器402a相关联,并且第四线程可与体系结构状态寄存器402b相关联。这里,体系结构状态寄存器(401a、401b、402a和402b)的每一者可被称为处理元件、线程槽或者线程单元,如上所述。如图所示,体系结构状态寄存器401a被复制在体系结构状态寄存器401b中,因此能够为逻辑处理器401a和逻辑处理器401b存储个体的体系结构状态/情境。在核心401中,也可针对线程401a和401b复制其他更小的资源,例如分配器和重命名器块430中的指令指针和重命名逻辑。通过分区可共享一些资源,例如重排序/引退单元435中的重排序缓冲器、ILTB 420、加载/存储缓冲器、以及队列。其他资源,例如通用内部寄存器、(一个或多个)页表基址寄存器、低级别数据缓存和数据TLB 415、(一个或多个)执行单元440、以及乱序单元435的一些部分,可能被完全共享。
处理器400经常包括其他资源,这些资源可被完全共享、通过分区被共享、或者被处理元件专用或者专用于处理元件。在图4中,图示了具有处理器的说明性逻辑单元/资源的纯示范性处理器的实施例。注意,处理器可包括或者省略这些功能单元中的任何一者,以及包括没有描绘的任何其他已知的功能单元、逻辑或者固件。如图所示,核心401包括简化的、代表性乱序(out-of-order,OOO)处理器核心。但在不同的实施例中可利用有序处理器。OOO核心包括分支目标缓冲器420来预测要执行/采取的分支,以及指令转化缓冲器(instruction-translation buffer,I-TLB)420来为指令存储地址转化条目。
核心401还包括与取得单元420耦合的解码模块425以对取得的元素进行解码。取得逻辑在一个实施例中包括分别与线程槽401a、401b相关联的个体定序器。通常核心401与第一ISA相关联,该第一ISA定义/指定在处理器400上可执行的指令。经常,作为第一ISA的一部分的机器代码指令包括指令的一部分(称为操作码),该部分引用/指定要执行的指令或操作。解码逻辑425包括电路,该电路从其操作码识别这些指令并且在管线中传递解码的指令来按第一ISA定义的那样处理。例如,解码器425在一个实施例中包括被设计或适配为识别诸如事务性指令之类的特定指令的逻辑。作为解码器425进行的识别的结果,体系结构或核心401采取特定的预定动作来执行与适当的指令相关联的任务。注意以下这点是重要的:本文描述的任何任务、块、操作和方法可响应于单个或多个指令而被执行;这些指令中的一些可以是新的或者旧的指令。
在一个示例中,分配器和重命名器块430包括分配器来预留资源,例如预留寄存器堆来存储指令处理结果。然而,线程401a和401b可能能够进行乱序执行,其中分配器和重命名器块430也预留其他资源,例如预留重排序缓冲器来跟踪指令结果。单元430还可包括寄存器重命名器来将程序/指令参考寄存器重命名到处理器400内部的其他寄存器。重排序/引退单元435包括组件(例如,上文提及的重排序缓冲器、加载缓冲器和存储缓冲器),来支持对被乱序执行的指令进行的乱序执行和之后的有序引退。
调度器和(一个或多个)执行单元块440在一个实施例中包括调度器单元来调度执行单元上的指令/操作。例如,在执行单元的端口上调度浮点指令,其中该执行单元具有可用的浮点执行单元。也包括与执行单元相关联的寄存器堆来存储信息指令处理结果。示范性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元、和其他已知的执行单元。
更低级别数据缓存和数据转化缓冲器(data translation buffer,D-TLB)450耦合到(一个或多个)执行单元440。数据缓存还用于存储最近使用/操作的元素(例如数据操作对象),这些元素可能被保持在存储器一致性状态中。D-TLB用于存储最近的虚拟/线性到物理地址转化。作为一个具体示例,处理器可包括页表结构来将物理存储器分解成多个虚拟页。
这里,核心401和402共享对更高级别或更远缓存410的访问,该缓存用于缓存最近取得的元素。注意,更高级别或者更远指的是缓存级别增大或者变得更远离(一个或多个)执行单元。在一个实施例中,更高级别缓存410是最后一级数据缓存——处理器400上的存储器层次体系中的最后缓存——例如第二或第三级别数据缓存。然而,更高级别缓存410不限于此,因为其可与指令缓存相关联或者包括指令缓存。取而代之,踪迹缓存——一类指令缓存——可被耦合在解码器425之后来存储最近解码的踪迹。
在描绘的配置中,处理器400还包括总线接口模块405和功率控制器460,其可根据本发明的实施例执行功率管理。在此场景中,总线接口405用于与在处理器400外部的设备(例如,系统存储器和其他组件)通信。
存储器控制器470可与诸如一个或许多存储器之类的其他设备相接口。在一示例中,总线接口405包括环状互连,该环状互连具有用于与存储器相接口的存储器控制器和用于与图形处理器相接口的图形控制器。在SoC环境中,甚至更多的设备(例如,网络接口、协处理器、存储器、图形处理器、和任何其他已知的计算机设备/接口)可被集成在单个管芯或集成电路上,以提供具有高功能和低功率消耗的小外形参数。
现在参考图5,示出了根据本发明的一个实施例的处理器核心的微体系结构的框图。如图5所示,处理器核心500可以是多阶段管线式乱序处理器。核心500可基于接收到的操作电压来按各种电压进行操作,其中接收到的操作电压可以是从集成电压调节器或者外部电压调节器接收的。
从图5中可见,核心500包括前端单元510,前端单元510可用于取得要执行的指令并且使它们为以后在处理器管线中使用做好准备。例如,前端单元510可包括取得单元501、指令缓存503、和指令解码器505。在一些实现方式中,前端单元510还可包括踪迹缓存,连同微代码存储以及微操作存储。取得单元501可取得宏指令(例如从存储器或指令缓存503取得)并且将它们馈送到指令解码器505来将其解码成基元(即,供处理器执行的微操作)。
耦合在前端单元510和执行单元520之间的是乱序(OOO)引擎515,该OOO引擎515可用于接收微指令并且使它们为执行做好准备。更具体而言,OOO引擎515可包括各种缓冲器,用于重排序微指令流并且分配执行所需要的各种资源,并且用于提供逻辑寄存器到(诸如寄存器堆530和扩展寄存器堆535之类的)各种寄存器堆内的存储位置上的重命名。寄存器堆530可包括用于整数操作和浮点操作的分开的寄存器堆。扩展寄存器堆535可提供用于向量大小单元的存储,例如256或512比特每寄存器。为了配置、控制和额外的操作,一组特定于机器的寄存器(machine specific register,MSR)538也可存在并且是核心500内(以及核心外部)的各种逻辑可访问的。
各种资源可存在于执行单元520中,包括例如各种整数、浮点、和单指令多数据(single instruction multiple data,SIMD)逻辑单元,以及其他专门的硬件。例如,这种执行单元可包括一个或多个算术逻辑单元(arithmetic logic unit,ALU)522以及一个或多个向量执行单元524,以及其他这种执行单元。
来自执行单元的结果可被提供到引退逻辑,即,重排序缓冲器(reorder buffer,ROB)540。更具体而言,ROB 540可包括各种阵列和逻辑以接收与被执行的指令相关联的信息。此信息随后被ROB 540考查来确定是否指令可被有效地引退并且结果数据可被提交给处理器的体系结构状态,或者确定是否发生了阻止指令的适当引退的一个或多个异常。当然,ROB 540可应对与引退相关联的其他操作。
如图5所示,ROB 540耦合到缓存550,缓存550在一个实施例中可以是低级别缓存(例如,L1缓存),不过本发明的范围在这个方面不受限制。另外,执行单元520可直接耦合到缓存550。从缓存550,数据通信可与更高级别缓存、系统存储器等等发生。虽然在图5的实施例中是以这个高级别来示出的,但要理解本发明的范围在这个方面不受限制。例如,虽然图5的实现方式是关于诸如x86指令集体系结构(ISA)之类的乱序机器的,但本发明的范围在这个方面不受限制。也就是说,其他实施例可被实现在有序处理器、诸如基于ARM的处理器之类的精简指令集计算(reduced instruction set computing,RISC)处理器、或者可经由仿真引擎和关联的逻辑电路来对不同ISA的指令和操作进行仿真的另一类型的ISA的处理器中。
现在参考图6,示出了根据另一实施例的处理器核心的微体系结构的框图。在图6的实施例中,核心600可以是不同微体系结构的低功率核心,例如基于AtomTM的处理器,其具有被设计为降低功率消耗的相对有限的管线深度。可以看出,核心600包括被耦合来向指令解码器615提供指令的指令缓存610。分支预测器605可耦合到指令缓存610。注意,指令缓存610还可耦合到另一级别的缓存存储器,例如L2缓存(在图6中为了图示的容易而没有示出)。进而,指令解码器615将解码的指令提供到发出队列620以便存储和输送到给定的执行管线。微代码ROM 618耦合到指令解码器615。
浮点管线630包括浮点寄存器堆632,该浮点寄存器堆632可包括诸如128、256或512比特之类的给定比特宽度的多个体系结构寄存器。管线630包括浮点调度器634来调度指令以供在管线的多个执行单元之一上执行。在示出的实施例中,这种执行单元包括ALU635、置乱单元636、以及浮点加法器638。进而,在这些执行单元中生成的结果可被提供回到寄存器堆632的缓冲器和/或寄存器。当然要理解,虽然是以这几个示例执行单元来示出的,但在另一实施例中可存在额外的或者不同的浮点执行单元。
也可提供整数管线640。在示出的实施例中,管线640包括整数寄存器堆642,该整数寄存器堆642可包括诸如128或256比特之类的给定比特宽度的多个体系结构寄存器。管线640包括整数调度器644来调度指令来在管线的多个执行单元之一上执行。在示出的实施例中,这种执行单元包括ALU 645、移位器单元646、以及跳转执行单元648。进而,在这些执行单元中生成的结果可被提供回到寄存器堆642的缓冲器和/或寄存器。当然要理解,虽然是以这几个示例执行单元示出的,但在另一实施例中可存在额外的或者不同的整数执行单元。
存储器执行调度器650可调度存储器操作来在地址生成单元652中执行,该地址生成单元652也耦合到TLB 654。可以看出,这些结构可耦合到数据缓存660,数据缓存660可以是L0和/或L1数据缓存,该L0和/或L1数据缓存进而耦合到缓存存储器层次体系的额外级别,包括L2缓存存储器。
为了提供对乱序执行的支持,除了重排序缓冲器680以外,还可提供分配器/重命名器670,该重排序缓冲器680被配置为对被乱序执行的指令进行重排序以便有序引退。虽然在图6的图示中是以这个特定的管线体系结构来示出的,但要理解许多变化和替换是可能的。
注意,在(例如根据图5和图6的微体系结构)具有非对称核心的处理器中,可出于功率管理原因在核心之间动态地调换工作负载,因为这些核心虽然具有不同的管线设计和深度,但可具有相同或相关的ISA。可以按对于用户应用而言透明(并且可能对于内核也透明)的方式来执行这种动态的核心调换。
参考图7,示出了根据又一实施例的处理器核心的微体系结构的框图。如图7所示,核心700可包括多阶段有序管线来以非常低的功率消耗水平执行。作为一个这种示例,处理器700可具有根据可从加州森尼维尔市的ARM控股有限公司获得的ARM Cortex A53设计的微体系结构。在一种实现方式中,可提供被配置为既执行32比特代码也执行64比特代码的8阶段管线。核心700包括取得单元710,该取得单元710被配置为取得指令并将它们提供给解码单元715,其中解码单元715可对指令(例如,诸如ARMv8 ISA之类的给定ISA的宏指令)进行解码。还要注意,队列730可耦合到解码单元715以存储经解码的指令。经解码的指令被提供到发出逻辑725,其中在发出逻辑725处,经解码的指令可被发出到多个执行单元中的给定一个。
进一步参考图7,发出逻辑725可将指令发出到多个执行单元之一。在示出的实施例中,这些执行单元包括整数单元735、乘法单元740、浮点/向量单元750、双重发出单元760、以及加载/存储单元770。这些不同执行单元的结果可被提供到写回单元780。要理解,虽然为了图示的容易而示出了单个写回单元,但在一些实现方式中,分开的写回单元可与每个执行单元相关联。此外,要理解,虽然图7所示的每个单元和逻辑是以高级别来表示的,但特定的实现方式可包括更多的或不同的结构。利用一个或多个(如图7所示的)具有管线的核心来设计的处理器可被实现在许多不同的最终产品(从移动设备延伸到服务器系统)中。
参考图8,示出了根据另外一个实施例的处理器核心的微体系结构的框图。如图8所示,核心800可包括多阶段多发出乱序管线以按非常高的性能水平执行(这可以按比图7的核心700更高的功率消耗水平发生)。作为一个这种示例,处理器800可具有根据ARMCortex A57设计的微体系结构。在一种实现方式中,可提供被配置为既执行32比特代码也执行64比特代码的15(或更多)阶段管线。此外,管线可提供3宽(或更宽)和3发出(或更多发出)操作。核心800包括取得单元810,取得单元810被配置为取得指令并且将它们提供到解码器/重命名器/调谴器815,解码器/重命名器/调谴器815可对指令(例如ARMv8指令集体系结构的宏指令)解码,重命名指令内的寄存器引用,并且将指令(最终)调谴到所选择的执行单元。经解码的指令可被存储在队列825中。注意,虽然在图8中为了图示的容易而示出了单个队列结构,但要理解可针对多个不同类型的执行单元中的每一者提供分开的队列。
图8中还示出了发出逻辑830,其中,被存储在队列825中的经解码指令可从该发出逻辑830被发出到所选择的执行单元。发出逻辑830也可被实现在特定实施例中,其中,针对发出逻辑830所耦合到的多种不同类型的执行单元中的每一者有单独的发出逻辑。
经解码的指令可被发出到多个执行单元中的给定一个。在示出的实施例中,这些执行单元包括一个或多个整数单元835、乘法单元840、浮点/向量单元850、分支单元860、以及加载/存储单元870。在一实施例中,浮点/向量单元850可被配置为应对128或256比特的SIMD或向量数据。此外,浮点/向量执行单元850可执行IEEE-754双精度浮点操作。这些不同执行单元的结果可被提供到写回单元880。注意,在一些实现方式中,分开的写回单元可与执行单元中的每一者相关联。此外,要理解,虽然图8所示的每个单元和逻辑是以高级别来表示的,但特定的实现方式可包括更多的或不同的结构。
注意在(例如根据图7和图8的微体系结构)具有非对称核心的处理器中,可出于功率管理原因而动态地调换工作负载,因为这些核心虽然具有不同的管线设计和深度,但可具有相同或相关的ISA。可以按对于用户应用而言透明(并且可能对于内核也透明)的方式来执行这种动态的核心调换。
利用如图5-图8中的任何一个或多个图中所示的具有管线的一个或多个核心来设计的处理器可被实现在许多不同的最终产品(从移动设备延伸到服务器系统)中。现在参考图9,示出了根据本发明的另一实施例的处理器的框图。在图9的实施例中,处理器900可以是包括多个域的SoC,每个域可被控制来按独立的操作电压和操作频率进行操作。作为具体的说明性示例,处理器900可以是可从英特尔公司获得的基于Architecture CoreTM的处理器,例如i3、i5、i7或另外的这种处理器。然而,其他低功率处理器,例如可从加州森尼维尔市的超微半导体公司(AMD)获得的,来自ARM控股有限公司的基于ARM的设计或者其被许可方,或者来自加州森尼维尔市的MIPS技术公司的基于MIPS的设计或者其被许可方或者采用者,可取而代之存在于其他实施例中,例如苹果A7处理器、高通骁龙处理器、或者德州仪器OMAP处理器。这种SoC可被用于低功率系统中,例如智能电话、平板计算机、平板手机计算机、UltrabookTM计算机、或者其他便携式计算设备或连接的设备。
在图9所示的高级别视图中,处理器900包括多个核心单元9100-910n。每个核心单元可包括一个或多个处理器核心、一个或多个缓存存储器以及其他电路。每个核心单元910可支持一个或多个指令集(例如,x86指令集(带有已随着更新版本添加的一些扩展);MIPS指令集;ARM指令集(带有诸如NEON之类的可选附加扩展))或者其他指令集或者其组合。注意,核心单元中的一些可以是异构资源(例如,具有不同的设计)。此外,每个这种核心可耦合到缓存存储器(未示出),该缓存存储器在一实施例中可以是共享级别(L2)缓存存储器。非易失性存储装置930可用于存储各种程序和其他数据。例如,此存储装置可用于存储微代码的至少一些部分、诸如BIOS之类的引导信息、其他系统软件,等等。
每个核心单元910还可包括接口(例如,总线接口单元),来使得能够互连到处理器的额外电路。在一实施例中,每个核心单元910耦合到可充当主缓存一致片上互连的一致架构,该互连进而耦合到存储器控制器935。进而,存储器控制器935控制与诸如DRAM之类的存储器(在图9中为了图示的容易而没有示出)的通信。
除了核心单元以外,还有额外的处理引擎存在于处理器内,包括至少一个图形单元920,该图形单元920可包括一个或多个图形处理单元(graphics processing unit,GPU)来执行图形处理以及可能执行图形处理器上的通用操作(所谓的GPGPU操作)。此外,至少一个图像信号处理器925可存在。信号处理器925可被配置为处理从在SoC内部或者在片外的一个或多个捕捉设备接收的传入图像数据。
其他加速器也可存在。在图9的图示中,视频编码器950可执行编码操作,这些操作包括对视频信息的编码和解码,例如为高清晰度视频内容提供硬件加速支持。还可提供显示控制器955来加速显示操作,包括为系统的内部和外部显示器提供支持。此外,安全性处理器945可存在来执行诸如安全引导操作、各种密码操作等等之类的安全性操作。
每个单元可让其功率消耗被经由功率管理器940来控制,该功率管理器940可包括控制逻辑来执行本文描述的各种功率管理技术。
在一些实施例中,SoC 900还可包括耦合到一致架构的非一致架构,各种外围设备可耦合到该一致架构。一个或多个接口960a-960d使能与一个或多个片外设备的通信。这种通信可经由各种通信协议,例如PCIeTM、GPIO、USB、I2C、UART、MIPI、SDIO、DDR、SPI、HDMI,以及其他类型的通信协议。虽然在图9的实施例中是在这个高级别示出的,但要理解本发明的范围在这个方面不受限制。
现在参考图10,示出了代表性SoC的框图。在示出的实施例中,SoC1000可以是多核心SoC,该多核心SoC被配置用于低功率操作以针对包含到智能电话或(诸如平板计算机或其他便携式计算设备之类的)其他低功率设备中而被优化。作为示例,可利用非对称的或不同类型的核心来实现SoC 1000,例如更高功率和/或低功率核心的组合,例如乱序核心和有序核心。在不同的实施例中,这些核心可基于ArchitectureTM核心设计或者ARM体系结构设计。在另外的其他实施例中,在给定的SoC中可实现和ARM核心的混合。
从图10中可看出,SoC 1000包括具有多个第一核心10120-10123的第一核心域1010。在一示例中,这些核心可以是诸如有序核心之类的低功率核心。在一个实施例中,这些第一核心可被实现为ARM Cortex A53核心。进而,这些核心耦合到核心域1010的缓存存储器1015。此外,SoC 1000包括第二核心域1020。在图10的图示中,第二核心域1020具有多个第二核心10220-10223。在一示例中,这些核心可以是比第一核心1012功率消耗更高的核心。在一实施例中,第二核心可以是乱序核心,这些乱序核心可被实现为ARM Cortex A57核心。进而,这些核心耦合到核心域1020的缓存存储器1025。注意,虽然图10所示的示例在每个域中包括4个核心,但要理解在其他示例中在给定的域中可存在更多或更少核心。
进一步参考图10,还提供了图形域1030,该图形域1030可包括被配置为独立地执行(例如,由核心域1010和1020的一个或多个核心提供的)图形工作负载的一个或多个图形处理单元(GPU)。作为示例,除了提供图形和显示渲染操作以外,GPU域1030还可用于为各种屏幕大小提供显示支持。
可以看出,各种域耦合到一致互连1040,该一致互连1040在一实施例中可以是缓存一致互连架构,该缓存一致互连架构进而耦合到集成存储器控制器1050。在一些示例中,一致互连1040可包括共享缓存存储器,例如L3缓存。在一实施例中,存储器控制器1050可以是直接存储器控制器以提供与片外存储器的通信的多个通道,例如DRAM的多个通道(在图10中为了图示的容易而没有示出)。
在不同的示例中,核心域的数目可变化。例如,对于适合于包含到移动计算设备中的低功率SoC,例如图10中所示的有限数目的核心域可存在。此外,在这种低功率SoC中,包括更高功率核心的核心域1020可具有更少数目的这种核心。例如,在一个实现方式中,可提供两个核心1022来使得能够以降低的功率消耗水平进行操作。此外,不同的核心域也可耦合到中断控制器,以使得能够在不同的域之间进行对工作负载的动态调换。
在另外的其他实施例中,更大数目的核心域以及额外的可选IP逻辑可存在,因为SoC可被缩放到更高性能(以及功率)水平,以便包含到其他计算设备(例如,桌面型电脑、服务器、高性能计算系统、基站等等)中。作为一个这种示例,可提供4个核心域,每个具有给定数目的乱序核心。此外,除了可选的GPU支持以外(其作为示例可采取GPGPU的形式),也可提供一个或多个加速器来提供对特定功能(例如,web服务、网络处理、交换等等)的优化硬件支持。此外,输入/输出接口也可存在来将这种加速器耦合到片外组件。
现在参考图11,示出了另一示例SoC的框图。在图11的实施例中,SoC 1100可包括各种电路来针对多媒体应用、通信和其他功能使能高性能。这样,SoC 1100适合于包含到各种各样的便携设备和其他设备中,例如智能电话、平板计算机、智能TV等等。在示出的示例中,SoC 1100包括中央处理器单元(central processor unit,CPU)域1110。在一实施例中,多个个体处理器核心可存在于CPU域1110中。作为一个示例,CPU域1110可以是具有4个多线程核心的四核心处理器。这种处理器可以是同构或异构处理器,例如低功率和高功率处理器核心的混合。
进而,提供GPU域1120来在一个或多个GPU中执行高级图形处理以应对图形并计算API。除了可发生在多媒体指令的执行期间的高级计算以外,DSP单元1130还可提供一个或多个低功率DSP来应对低功率多媒体应用,例如音乐重放、音频/视频等等。进而,通信单元1140可包括各种组件来经由各种无线协议(例如,蜂窝通信(包括3G/4G LTE)、诸如BluetoothTM之类的无线局域协议、IEEE 802.11,等等)提供连通性。
此外,多媒体处理器1150可用于执行对高清晰度视频和音频内容的捕捉和重放,包括对用户姿态的处理。传感器单元1160可包括多个传感器和/或传感器控制器来接口到存在于给定平台中的各种片外传感器。图像信号处理器1170可具有一个或多个分开的ISP来对于来自平台的一个或多个相机的捕捉内容执行图像处理,这些相机包括静态相机和视频相机。
显示处理器1180可提供对到给定像素密度的高清晰度显示器的连接的支持,包括无线地传输内容以便在这种显示器上重放的能力。此外,位置单元1190可包括GPS接收器,该GPS接收器带有对多个GPS星座的支持以向应用提供利用这种GPS接收器获得的高度准确的定位信息。要理解,虽然在图11的示例中是以这组特定的组件来示出的,但许多变化和替换是可能的。
现在参考图12,示出了可与实施例一起使用的示例系统的框图。可以看出,系统1200可以是智能电话或者其他无线通信器。基带处理器1205被配置为关于要从系统发送或者被系统接收的通信信号执行各种信号处理。进而,基带处理器1205耦合到应用处理器1210,应用处理器1210可以是系统的主CPU,以执行OS和其他系统软件,以及诸如许多公知的社交媒体和多媒体app之类的用户应用。应用处理器1210还可被配置为为设备执行多种其他计算操作并且执行本文描述的功率管理技术。
进而,应用处理器1210可耦合到用户界面/显示器1220,例如触摸屏显示器。此外,应用处理器1210可耦合到存储器系统,该存储器系统包括非易失性存储器(即,闪速存储器1230)以及系统存储器(即,动态随机访问存储器(DRAM)1235)。还可看出,应用处理器1210还耦合到捕捉设备1240,例如可记录视频和/或静态图像的一个或多个图像捕捉设备。
仍然参考图12,通用集成电路卡(universal integrated circuit card,UICC)1240也耦合到应用处理器1210,该通用集成电路卡1240包括订户身份模块并且可能包括安全存储装置及密码处理器。系统1200还可包括安全性处理器1250,该安全性处理器1250可耦合到应用处理器1210。多个传感器1225可耦合到应用处理器1210以使得能够输入各种感测到的信息,例如加速度计和其他环境信息。音频输出设备1295可提供接口来输出声音,例如以语音通信、播放的或流媒体音频数据等等的形式。
如还图示的,提供了近场通信(near field communication,NFC)无接触接口1260,其经由NFC天线1265在NFC近场中通信。虽然在图12中示出了分开的天线,但要理解在一些实现方式中,可提供一个天线或者不同组天线来使能各种无线功能。
PMIC 1215耦合到应用处理器1210以执行平台级功率管理。为此,PMIC 1215可向应用处理器1210发出功率管理请求以根据需要进入某些低功率状态。此外,基于平台约束,PMIC 1215也可控制系统1200的其他组件的功率水平。
为了使得通信能够被发送和接收,各种电路可被耦合在基带处理器1205和天线1290之间。具体而言,射频(radio frequency,RF)收发器1270和无线局域网(wirelesslocal area network,WLAN)收发器1275可存在。一般而言,RF收发器1270可用于根据给定的无线通信协议(例如3G或4G无线通信协议)接收和发送无线数据和呼叫,例如根据码分多路接入(code division multiple access,CDMA)、全球移动通信系统(global system formobile communication,GSM)、长期演进(long term evolution,LTE)或其他协议。此外,GPS传感器1280可存在。也可提供其他无线通信,例如对无线电信号(例如AM/FM)和其他信号的接收或发送。此外,经由WLAN收发器1275,也可实现本地无线通信。
现在参考图13,示出了可与实施例一起使用的另一示例系统的框图。在图13的图示中,系统1300可以是移动低功率系统,例如,平板计算机、2:1平板设备、平板手机、或者其他可转换的或独立的平板系统。如图所示,SoC 1310存在并且可被配置为对于该设备作为应用处理器来操作并且执行本文描述的功率管理技术。
各种设备可耦合到SoC 1310。在示出的图示中,存储器子系统包括耦合到SoC1310的闪速存储器1340和DRAM 1345。此外,触摸面板1320耦合到SoC 1310以提供显示能力和经由触摸的用户输入,包括在触摸面板1320的显示器上提供虚拟键盘。为了提供有线网络连通性,SoC 1310耦合到以太网接口1330。外设中枢(peripheral hub)1325耦合到SoC1310以使能与各种外围设备相接口,例如可通过各种端口或其他连接器中的任何一者耦合到系统1300。
除了SoC 1310内的内部功率管理电路和功能以外,PMIC 1380也耦合到SoC 1310以提供基于平台的功率管理,例如基于系统是被电池1390供电还是经由AC适配器1395被AC电力供电。除了这个基于电源的功率管理以外,PMIC 1380还可基于环境和使用状况来执行平台功率管理活动。此外,PMIC 1380可向SoC 1310传达控制和状态信息以引起SoC 1310内的各种功率管理动作。
仍然参考图13,为了提供无线能力,WLAN单元1350耦合到SoC1310并且进而耦合到天线1355。在各种实现方式中,WLAN单元1350可根据一个或多个无线协议来提供通信。
如还图示的,多个传感器1360可耦合到SoC 1310。这些传感器可包括各种加速度计、环境和其他传感器,包括用户姿态传感器。最后,音频编解码器1365耦合到SoC 1310以提供到音频输出设备1370的接口。当然要理解,虽然在图13中是以这个特定实现方式示出的,但许多变化和替换是可能的。
现在参考图14,示出了诸如笔记本、UltrabookTM或其他小外形参数系统之类的代表性计算机系统的框图。处理器1410在一个实施例中包括微处理器、多核心处理器、多线程处理器、超低电压处理器、嵌入式处理器、或者其他已知的处理元件。在图示的实现方式中,处理器1410充当主处理单元和中央中枢来与系统1400的各种组件中的许多进行通信。作为一个示例,处理器1400被实现为SoC。
处理器1410在一个实施例中与系统存储器1415通信。作为说明性示例,系统存储器1415是经由多个存储器设备或模块来实现的,以提供给定量的系统存储器。
为了提供对诸如数据、应用、一个或多个操作系统等等之类的信息的持续性存储,大容量存储装置1420也可耦合到处理器1410。在各种实施例中,为了使能更薄和更轻的系统设计以及为了改善系统响应能力,可经由SSD来实现这个大容量存储装置或者可主要利用硬盘驱动器(hard disk drive,HDD)来实现该大容量存储装置,其中较小量的SSD存储充当SSD缓存来使得能够在掉电事件期间对情境状态和其他这种信息进行非易失性存储,从而使得在系统活动重发起时可发生快速加电。图14中还示出的是,闪速设备1422可耦合到处理器1410,例如经由串行外围接口(serial peripheral interface,SPI)。这个闪速设备可提供对系统软件的非易失性存储,包括基本输入/输出软件(basic input/outputsoftware,BIOS)以及系统的其他固件。
各种输入/输出(I/O)设备可存在于系统1400内。具体而言,在图14的实施例中示出的是显示器1424,其可以是还提供触摸屏1425的高清晰度LCD或LED面板。在一个实施例中,显示器1424可经由显示互连耦合到处理器1410,该显示互连可被实现为高性能图形互连。触摸屏1425可经由另一互连耦合到处理器1410,该另一互连在一实施例中可以是I2C互连。如图14中还示出的,除了触摸屏1425以外,借由触摸的用户输入也可经由触摸板1430发生,该触摸板1430可被配置在机壳内并且也可耦合到与触摸屏1425相同的I2C互连。
为了感知计算和其他的目的,各种传感器可存在于系统内并且可按不同的方式耦合到处理器1410。某些惯性和环境传感器可通过传感器中枢1440(例如,经由I2C互连)耦合到处理器1410。在图14所示的实施例中,这些传感器可包括加速度计1441、环境光传感器(ambient light sensor,ALS)1442、罗盘1443、以及陀螺仪1444。其他环境传感器可包括一个或多个热传感器1446,这些热传感器1446在一些实施例中经由系统管理总线(SMBus)总线耦合到处理器1410。
在图14中还可看出,各种外围设备可经由低引脚数(low pin count,LPC)互连来耦合到处理器1410。在示出的实施例中,各种组件可通过嵌入式控制器1435被耦合。这种组件可包括键盘1436(例如,经由PS2接口耦合)、风扇1437、以及热传感器1439。在一些实施例中,触摸板1430也可经由PS2接口耦合到EC 1435。此外,诸如可信平台模块(trustedplatform module,TPM)1438之类的安全性处理器也可经由这个LPC互连来耦合到处理器1410。
系统1400可通过各种方式与外部设备进行通信,包括无线地进行通信。在图14所示的实施例中,存在各种无线模块,其中每一者可对应于被配置用于特定的无线通信协议的无线电装置。用于诸如近场之类的短距离中的无线通信的一种方式可经由NFC单元1445,该NFC单元1445在一个实施例中可经由SMBus与处理器1410进行通信。注意,经由这个NFC单元1445,彼此近邻的设备可通信。
从图14中还可看出,额外的无线单元可包括其他短距离无线引擎,包括WLAN单元1450和蓝牙单元1452。利用WLAN单元1450,可实现Wi-FiTM通信,而经由蓝牙单元1452,可发生短距离BluetoothTM通信。这些单元可经由给定的链路与处理器1410进行通信。
此外,(例如,根据蜂窝或其他无线广域协议的)无线广域通信可经由WWAN单元1456发生,该WWAN单元1456进而可耦合到订户身份模块(subscriber identity module,SIM)1457。此外,为了使能对位置信息的接收和使用,GPS模块1455也可存在。注意,在图14所示的实施例中,WWAN单元1456和诸如相机模块1454之类的集成捕捉设备可经由给定的链路通信。
集成相机模块1454可被包含在盖子中。为了提供音频输入和输出,可经由数字信号处理器(digital signal processor,DSP)1460来实现音频处理器,该DSP 1460可经由高清晰度音频(high definition audio,HDA)链路耦合到处理器1410。类似地,DSP 1460可与集成编码器/解码器(CODEC)及放大器1462进行通信,该集成CODEC及放大器1462进而可耦合到输出扬声器1463,该输出扬声器1463可被实现在机壳内。类似地,放大器及CODEC 1462可被耦合以从麦克风1465接收音频输入,该麦克风1465在一实施例中可经由双阵列麦克风(例如,数字麦克风阵列)来实现,以提供高质量音频输入,从而使能对系统内的各种操作的由语音激活的控制。还要注意,音频输出可从放大器/CODEC 1462被提供到耳机插孔1464。虽然在图14的实施例中是以这些特定组件来示出的,但要理解本发明的范围在这个方面不受限制。
实施例可被实现在许多不同的系统类型中。现在参考图15,示出了根据本发明的实施例的系统的框图。如图15所示,多处理器系统1500是点到点互连系统,并且包括经由点到点互连1550耦合的第一处理器1570和第二处理器1580。如图15所示,处理器1570和1580的每一者可以是多核心处理器,包括第一和第二处理器核心(即,处理器1574a和1574b和处理器核心1584a和1584b),虽然可能在处理器中可存在多得多的核心。此外,处理器1570和1580的每一者也可包括图形处理器单元(GPU)1573、1583来执行图形操作。每个处理器可包括PCU 1575、1585来执行基于处理器的功率管理。在图15的实施例中,处理器1570、1580可包括与PCU 1575、1585分开适配的MEP控制器1579、1589,以执行基于MEP的确定并且向相应的PCU提供初始和更新的MEP值,以使得PCU能够增强其功能,以除了功率控制以外还执行能量控制,如本文所述。
仍然参考图15,第一处理器1570还包括存储器控制器中枢(memory controllerhub,MCH)1572和点到点(point-to-point,P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如图15所示,MCH 1572和1582将处理器耦合到各自的存储器,即存储器1532和存储器1534,存储器1532和存储器1534可以是在本地附接到各个处理器的系统存储器(例如,DRAM)的一部分。第一处理器1570和第二处理器1580可分别经由P-P互连1562和1564耦合到芯片组1590。如图15A所示,芯片组1590包括P-P接口1594和1598。
此外,芯片组1590包括接口1592来通过P-P互连1539将芯片组1590与高性能图形引擎1538耦合。进而,芯片组1590可经由接口1596耦合到第一总线1516。如图15A所示,各种输入/输出(I/O)设备1514可以与总线桥1518一起耦合到第一总线1516,其中总线桥1518将第一总线1516耦合到第二总线1520。各种设备可耦合到第二总线1520,例如包括键盘/鼠标1522、通信设备1526和数据存储单元1528(例如,盘驱动器或者其他大容量存储设备),其中该数据存储单元1528在一个实施例中可包括代码1530。另外,音频I/O 1524可耦合到第二总线1520。实施例可被包含到其他类型的包括移动设备的系统中,该移动设备比如是智能蜂窝电话、平板计算机、上网本、UltrabookTM,等等。
图16是图示出IP核心开发系统1600的框图,该IP核心开发系统1600可用于制造集成电路来执行根据实施例的操作。IP核心开发系统1600可用于生成模块化的、可重复使用的设计,这些设计可被包含到更大的设计中或者被用于构造整个集成电路(例如,SoC集成电路)。设计设施1630可以用高级别编程语言(例如,C/C++)生成IP核心设计的软件仿真1610。软件仿真1610可用于设计、测试和验证IP核心的行为。然后可从仿真模型创建或合成寄存器传送级(register transfer level,RTL)设计。RTL设计1615是对硬件寄存器之间的数字信号的流动进行建模的集成电路的行为的抽象,其包括利用经建模的数字信号执行的关联逻辑。除了RTL设计1615以外,也可创建、设计或者合成在逻辑级或晶体管级的更低级别设计。从而,初始设计和仿真的具体细节可变化。
RTL设计1615或等同物还可被设计设施合成为硬件模型1620,该硬件模型1620可采取硬件描述语言(hardware description language,HDL)或者物理设计数据的某种其他表现形式。HDL可被进一步仿真或测试来验证IP核心设计。IP核心设计可被存储来利用非易失性存储器1640(例如,硬盘、闪速存储器或者任何非易失性存储介质)输送到第三方制造设施1665。或者,IP核心设计可通过有线连接1650或无线连接1660(例如,经由互联网)被传输。制作设施1665随后可制作至少部分基于该IP核心设计的集成电路。制作的集成电路可被配置为根据本文描述的至少一个实施例来执行操作。
现在参考图17,示出了根据本发明的实施例的方法的流程图。更具体而言,图17的方法1700是根据一实施例的用于在处理器中确定最优最低能量点(MEP)的方法。这样,方法1700可由硬件电路、固件、软件和/或其组合来执行。例如,方法1700的至少一些部分可由处理器的MEP控制器执行,例如可被实现在处理器的功率控制器中。
如图所示,方法1700开始于执行电压和频率的扫描来识别初始最优电压(块1710)。这种操作可最初在处理器的第一次初始化时发生,例如,当被配置在给定的计算平台中时,无论是在制造测试期间还是在现场。更具体而言,基于对电压和频率的这个扫描,这个最优电压可对应于处理器的最低能量点。例如,功率控制器可以使得处理器在一组不同的操作点上进行操作,每个操作点具有给定的操作电压和操作频率。基于传感器信息,在这些不同的操作点处的操作期间,可获得能量计算(例如,每操作能量值),从中可识别MEP。并且在这个MEP内,识别初始最优电压。接下来,在块1720,这个初始最优电压可被存储在配置存储装置中,例如,存在于功率控制器的配置寄存器中的配置存储装置。注意,在这个时点,有了与MEP相对应的初始最优电压和最优频率,处理器可开始或继续正常操作。
从而,如图17中进一步图示的,在这样的正常操作期间,在块1730,可在MEP控制器中接收到温度跟踪信息和活动跟踪信息。在一实施例中,温度跟踪信息可基于来自多个热传感器的热信息,这些热传感器可被适配在处理器中。并且,活动跟踪信息在一实施例中可至少部分基于关于处理器的各种微体系结构活动的活动计数器信息,包括带宽信息、缓存操作、每周期指令信息、以及许多其他类型的微体系结构活动信息。
仍然参考图17,确定这些不同类型的跟踪信息中的任何一者的变化是否超过了相应的阈值(菱形1740)。如果否,则控制传递回到块1730,在这里可接收额外的跟踪信息,例如,用于下一个评估间隔。注意,在不同的实施例中,这个评估间隔可根据给定的定时器,例如,以给定的时钟速率操作的定时器。在其他情况下,这个评估间隔可根据基于事件的触发,该触发是由超过阈值的操作条件的异步变化产生的。
在任何情况下,如果确定这些不同类型的跟踪信息中的至少一者的变化超过了给定的阈值,则控制传递到块1750。在块1750,温度跟踪信息和/或活动跟踪信息(例如,超过相应阈值的一者或两者)可被处理。例如,这个跟踪信息可至少部分基于跟踪信息的水平被编码成相应的步长值。并且根据这样的步长值,可执行进一步的处理,以确定最优的步长值。
接下来,控制传递到块1760,在这里可使用所确定的最优步长值来访问电压-频率表。更具体而言,基于这个最优步长值,可以访问电压-频率表的给定条目,以获得最优最低能量点操作点。这个MEP点可对应于这个新的最优MEP的操作电压和频率。虽然在图17中为了便于图示而没有示出,但要理解,可对配置存储装置进行更新以存储新的最优电压。此外,要理解,功率控制器可控制处理器在这个新的最优MEP上进行操作。
仍然参考图17,接下来可确定年龄相关定时器是否已期满(菱形1770)。要理解,这个年龄相关定时器可对应于相对较长的持续时间,例如大约在数月、半年、一年等等之类的量级。之所以如此,是因为这样的相对较长的持续时间可能会导致处理器的年龄相关劣化,这样初始最优电压就有可能不再是与最低能量点相对应的正确电压。换句话说,这个相对较长的持续时间是一个工艺敏感的持续时间,在这个持续时间里可能会发生基于工艺的劣化。从而,如果确定这种年龄相关定时器期满,则控制传递回到上面论述的块1710,在那里可以执行全面扫描。否则,从块1730开始可以继续进行温度和活动跟踪。要理解,虽然在图17的实施例中在这个高级别示出了,但许多变化和替换是可能的。
现在参考图18,示出了根据本发明的另一实施例的方法的流程图。更具体而言,图18的方法1800是根据本发明的实施例执行跟踪以确定对MEP的适当更新的更详细方法。这样,方法1800可由硬件电路、固件、软件和/或其组合来执行。例如,方法1800的至少一些部分可由MEP控制器执行。
如图所示,方法1800开始于接收温度跟踪信息和活动跟踪信息(块1810),例如上面所论述的。接下来,控制传递到块1820,在这里这个跟踪信息可被与跟踪信息的先前值进行比较。例如,温度跟踪信息可被与温度跟踪信息的紧邻先前值进行比较。或者在其他情况下,可维护移动平均,以反映跟踪信息的历史(并且提供一种过滤和/或滞后控制技术)。对于活动跟踪信息,以及在特定实施例中可能使用的任何其他跟踪信息,也存在类似的选项。还要注意,对于历史数据,可以使用基于机器学习的模式匹配算法来分析历史数据以识别适当的MEP值。
仍然参考图18,接下来在菱形1830,确定跟踪信息的变化是否超过了给定的阈值。例如,第一阈值可与温度跟踪信息相关联,这样,如果变化超过这个阈值,则菱形1830处的确定对于温度跟踪信息是阳性的。并且类似地,第二阈值可与活动跟踪信息相关联,这样,如果变化超过这个阈值,则菱形1830处的确定对于活动跟踪信息是阳性的。如果确定(一个或多个)变化不超过任何这样的阈值,则对于此评估间隔不发生进一步操作,并且从块1810开始执行继续跟踪。
进一步参考图18,相反,如果确定跟踪信息的值中的至少一者的变化超过阈值水平,则控制传递到块1840。在块1840,可对超过阈值的跟踪信息的变化进行编码。更具体而言,跟踪信息的这种变化可被编码成步长值。在一实施例中,可以例如参考查找表来确定此步长值,在该查找表中可利用变化的量来访问具有特定步长值的条目。例如,关于温度,大约55℃的温度变化可被编码为N等于1的步长值。类似地,例如2x的活动水平变化可被映射成M等于1的步长值变化。当然,还有许多其他示例编码是可能的。
仍然参考图18,在块1850,可基于这些一个以上的步长值来计算最优步长值。在特定实施例中,可在步长值(例如,N和M)之间执行加法操作以获得最优步长值。
在块1860,可以使用所确定的最优步长值访问电压-频率表,以获得最优MEP操作点。接下来,在块1870,可以使用最优MEP操作点来控制处理器的至少一个电压调节器。更具体而言,可将所获得的操作电压值提供给一个或多个电压调节器,以使得它们进行操作来以这个最优操作电压水平输出操作电压。类似地,在块1880,可使用最优MEP操作点来控制处理器的至少一个时钟生成器。更具体而言,可将所获得的操作频率值提供给一个或多个时钟生成器,以使得它们进行操作来以这个最优操作频率水平输出时钟信号。要理解,虽然在图18中在这个高级别示出了,但许多变化和替换是可能的。
现在参考图19,示出了能量消耗与操作电压的关系的图解。对于给定的工作负载,存在与MEP相对应的最优操作电压(Vopt)。如图19所示,对于不同的工作负载,消耗的能量在Vopt达到MEP,这通常在近阈值电压(NTV)区域中,与更高的操作点相比,能量效率提高了4-5倍。从任一方向(沿X轴),对于相同工作负载在其他操作电压下,会出现能量增大。并且如图所示,不同工作负载的Vopt(代表性的工作负载曲线存在于曲线1910、1920、1930和1940处)可在处理器循环经过各种休眠模式时随着工作负载活动而发生数百毫伏的转变。此外,MEP和Vopt也可随着操作条件而变化(例如,由于工艺、电压和温度(process,voltage andtemperature,PVT)的变动)。因此,实施例可提供一种MEP跟踪和调整的措施,以随着活动增加(如沿X轴向左移动)而降低能量消耗,如图19中所示。
如本文所述,为了达到MEP,功率控制器使得一个或多个电压调节器按所确定的MEP水平生成操作电压。此外,PMU还使得一个或多个时钟生成器以相应的所确定的MEP的操作频率来生成一个或多个时钟信号。在典型的工作负载间隔上,可按如下方式来计算每操作能量(Eop)计算:
Eop=(Vin*Iin_avg)/Fmax=P/Fmax=P*T (公式1)
其中,Vin等于输入电压,Fmax等于最大频率,T=1/Fmax;并且其中,功率(P)=Vin*Iin_avg,并且Iin_avg是在工作负载间隔(T)上消耗的平均电流并且可以经由电流遥测来提供。
在扫描操作中,执行了一系列操作,其中扫描操作可在处理器的初始化时被执行以确定初始MEP,并且被非常不频繁地执行以更新此MEP来考虑到处理器的老化。更具体而言,下面的表格1说明了确定MEP的递归扫描操作。如图所示,MEP控制器可使用公式[1]来计算多个点的EOP,以确定最优电压(VOPT)。这种MEP曲线遍历可能要花费某个不理想长度的时间,因为V/F扫描可能会由于重复的时钟频率和递增方式的电压变化延迟而消耗大量的时间。
表格1
1.开始于参考点(V1,F1) |
2.计算T1=1/F1(倒数计算) |
3.在点1计算Eop |
4.移动到点2(V2,F2) |
5.计算T2=1/F2(倒数计算) |
6.在点2计算Eop |
7.比较Eop1和Eop2 |
8.作出决策 |
如上所述,实施例可最低限度地执行对MEP的这个基于扫描的确定。相反,在根据例如按照以上表格1执行的扫描确定初始MEP之后,实施例可实现一种更快速的参数化的、基于传感器的方法,来在各PVT和工作负载条件下进行运行时MEP跟踪,其中每个变量是输入模型参数M。
现在参考图20,示出了关于工作负载活动的变化的一组代表性仿真MEP曲线。可以看出,图2000图示了不同工作负载的Vopt的差异。例如,对于给定的工作负载x,对于第一工作负载曲线2020,Vopt可能在大约0.3伏。对于工作负载的16倍增大,如曲线2010处所示,Vopt可能在0.15伏。最后,对于工作负载的16倍减小,Vopt可能在0.5伏,如曲线2030中所示。可以看出,基于工作负载的切换活动因子(α)是MEP最优转变的单个最大贡献者,其中更大的活动朝着更低的MEP值移动(反之亦然)。在实施例中,可以使用2的幂作为活动步长,然而也可使用任何其他倍数。
现在参考图21,示出了MEP的变化相对于温度的示例图示(如图2110所示)和MEP的变化相对于活动的变化的示例图示(如图2120所示)。如图2110所示,当改变管芯温度并且保持所有其他参数恒定时,有一个正的斜率,其中MEP电压随着温度升高而升高。在这个示例中,有一个代表性斜率,即对于每11摄氏度变化有10mV。当然,要理解其他斜率也是可能的。一般而言,温度升高导致的泄漏增大会使得MEP VOPT转变到更高的最优值(反之亦然)。
如图2120中用对数尺度(对于x轴)所示,对于增大的工作负载变化有一个负的斜率,这样,更高的活动会导致更低的MEP V/F值。在这个示例中,对于工作负载诱发的向量切换活动的大约每2.5倍的变化,有50mV的MEP电压变化。基于来自图21的这些考虑,对于给定的工艺,VOPT变化是确定性的,取决于温度(T)和活动因子(α)。更具体而言,可以看出VOPT与(a*Temp+b*Alpha)成比例,其中“a”和“b”是斜率参数。注意,这些值可由硅前和/或硅后数据来表征。并且如图所示,斜率a、b的方向是相反的(a为+,b为减(-))。
现在参考图22,示出了根据本发明的实施例的MEP控制器的框图。如图22所示,控制器2200可被实现为硬件电路。在一个实现方式中,MEP控制器2200可被实现在处理器的功率控制器(例如PCU)内。在其他实施例中,要理解,MEP控制器可被实现为单独的硬件电路,该硬件电路以MEP性能状态(例如,包括最优操作电压和最优操作频率)的形式向功率控制器提供输出信息。在另外一些实施例中,要理解,MEP控制器2200的各种构成组件可以是分布式的,其中某些信息被提供给MEP控制电路,进而额外的信息又被输出到例如功率控制器。
如图22所示,MEP控制器2200包括工艺-温度跟踪器2210。在实施例中,工艺-温度跟踪器2210可以接收传入的热信息,例如,以来自适配于整个处理器各处的一个或多个温度传感器的温度值的形式。在一实施例中,可以使用经校准的环形振荡器或类似的电路来确定温度。工艺-温度跟踪器2210可以处理传入的热信息,以提供温度变化(温度的变化(δT))。为此,工艺-温度跟踪器2210可维护关于接收到的先前温度信息的信息,以提供这种温度变化,这可在逐评估周期的基础上执行。在其他情况下,跟踪器2210可维护移动平均来过滤或平滑瞬时变动。在任何情况下,跟踪器2210将热跟踪信息的这个变化输出到MEP控制器2240。此外,工艺-温度跟踪器2210可包括处理器传感器,它可被使用环形振荡器来实现,以检测硅是否属于例如典型的、缓慢的或快速的变动。这样的传感器可提供一个参考,以设置初始MEP值。更具体而言,MEP控制器可使用这种工艺变动,连同电压/频率扫描信息,来确定初始MEP值。
如进一步示出的,MEP控制器2200还包括活动监视器2220。在一些情况下,注意,活动监视器2220可接收传入的微体系结构监视信息,例如,来自处理器的性能监视单元(performance monitoring unit,PMU)。在一实施例中,可以使用微体系结构和性能计数器来确定活动因子估计,用于在指令级别发生的切换事件,例如,缓存命中、缓存错失、加载、融合乘法加法(fused multiply add,FMA)引退、指令引退,等等。可从这些计数器推断出活动的度量。因此,监视器2220有可能被实现在PMU本身中。活动监视器2220可维护关于先前活动信息的信息,以提供这种温度变化,这可在逐评估周期的基础上执行。在其他情况下,活动监视器2220可维护移动平均来过滤或平滑瞬时变动。在任何情况下,活动监视器2220将活动跟踪信息的这个变化输出到MEP控制器2240。
注意,工艺-温度跟踪器2210和活动监视器2220可在运行时期间进行操作,以提供可被用于在运行时期间基于处理器的工作负载和/或温度来调整最优电压的信息。从而,在图22的实施例中,跟踪器2210、2220可在运行时期间基于来自工艺、温度和活动监视器/传感器的数据,执行迅速的VOPT调整。注意,在不同的实施例中,传感器和MEP控制器可以是片上的或片外的。
此外,要理解,也可执行扫描型MEP确定,例如,在处理器初始化时执行一次。此外,在工艺敏感的持续时间上(这可能是数月、数年之类的量级),可执行这个扫描操作以确定经更新的最优MEP。如图22中进一步图示,也可存在功率管理集成电路(power managementintegrated circuit,PMIC)电流遥测电路2230。遥测电路2230可被实现在处理器的集成电压调节器电路内。在其他情况下,遥测电路2230可与这种电压调节器分开,但在任一情况下,都从电压调节器接收电流感测信息。遥测电路2230可提供功率数据,该功率数据可被用于计算能量(例如,根据上述公式1),用于一次性MEP跟踪,来获得VOPT。在其他实施例中,可以避免这个扫描跟踪,其中预加载先前的值。基于这个信息,可以向MEP控制器2240提供电流遥测信息。
在各种实施例中,MEP控制器2240可利用来自工艺-温度跟踪器2210和活动监视器2220的信息,既执行长期MEP的计算,又对这种MEP值执行实时调整。因此,MEP控制电路2240可基于从工艺-温度跟踪器2210和活动监视器2220接收到的跟踪信息的变化来执行计算。基于这些计算,对查找表2245的访问可发生,以确定最优MEP性能状态。这个最优MEP性能状态可被输出到功率控制电路,以控制一个或多个核心或其他处理电路的操作电压和/或操作频率。要理解,虽然在图22的实施例中在这个高级别示出了,但许多变化和替换是可能的。
现在参考图23,示出了根据本发明的另一实施例的MEP控制器的框图。在图23的实施例中,更详细示出了环境2300,说明了基于从相应的工艺-温度跟踪器2310和活动监视器2320接收到热跟踪信息和活动跟踪信息而执行的操作。
如图23所示,MEP控制器2330包括相应的比较器和阈值电路2332、2342,以接收传入的跟踪信息的变化并且将其与相应的阈值进行比较,在实施例中,这些阈值可以是可编程的阈值。在一实施例中,MEP控制器2330可周期性地比较来自相应传感器的温度和活动因子数字代码(和阈值)。当确定跟踪信息的变化超过相应的阈值时,跟踪信息的变化值(δT和δα)被提供给相应的差异编码器2334、2344。编码器2334、2344可将最大差异值(例如,δT,δα)编码为离散的步长。在本文的实施例中,这些差异编码器可包括或耦合到一个或多个跟踪表,以基于跟踪信息的变化水平输出相应的步长值(n和/或m)。例如,在一实施例中,可以用预表征的温度变化(δT)和工作负载转变(δα)数据的真实范围来填充一个或多个LUT。在一个实施例中,可以使用一种线性模型,对于每2倍的工作负载变化和/或55℃的温度变化会有活动触发。
如图23中进一步图示的,这些步长值被提供给计算电路2360,它可处理这些值以确定最优步长值。在一个实施例中,计算电路2360可根据以下式子来计算这个最优步长值:δT-δα。更具体而言,可对与跟踪变化相对应的步长值执行求和操作。在一实施例中,计算电路2360可基于温度和活动传感器数据计算(δT-δα)的和(或差),并且可被实现为低开销的数字加法器/减法电路。计算电路2360在一实施例中也可从电压调节器接收遥测信息,这可提供关于电流消耗的信息。
如进一步图示的,MEP控制器2330包括查找表存储器2370,它包括多个条目,每个条目包括电压值和频率值。MEP控制器2330可使用最优步长值访问存储器2370的给定条目,以输出最优MEP性能状态(包括最优操作电压和最优操作频率)。在一个特定的示例中,对于+55℃,-4X活动变化,可生成δT=+1,δα=-2的值,给出1-(-2)=3步(2+步来自活动,并且1个正向步来自温度)。这里,50mV=1步,并且55℃变化=1步。所以新的VOPT是0.2V(原始值)+0.15V,结果是0.35V。注意,在一实施例中,最优步长值可被转换为存储器地址,以访问LUT2370,它提供最终/最优的MEP点(V,F)设置,来用于设置处理器的一个或多个域的操作电压和频率。
在实施例中,MEP控制器2330可将此信息提供给功率控制器,该功率控制器进而可控制一个或多个电压调节器和/或一个或多个时钟生成电路,以在给定的操作频率下输出一个或多个操作电压和/或一个或多个时钟信号。要理解,虽然在图23的实施例中在这个高级别示出了,但许多变化和替换是可能的。
从而,与昂贵的绝对MEP跟踪技术相比,实施例可通过有效地使用传感器数据和试探,以相对方式智能地调整最优MEP,从而实现计算和速度的大幅降低。要理解,虽然这个示例使用了50℃和2x工作负载变化的触发步长,但离散步长/动作的程度可以有所不同。并且,在实施例中,可通过在制造期间确定的LUT信息来实现每管芯和/或每工艺偏斜硅调整。在其他情况下,硅老化传感器可被用于获得基于年龄的劣化信息,以针对长期的MEP偏移自动进行调整。
下面的表格2说明了用于确定基于活动的步长变化的预先表征的查找表的示例。要理解,类似的表格可被用于确定基于温度的变化,其中所得到的步长值可像上面论述的那样被求和,以获得可被用于访问电压-频率表的最优步长值。
表格2
活动(δα) | 温度(δT) | VoptStep |
2x | 110 | -1 |
4x | 110 | -2 |
8x | 110 | -3 |
16x | 110 | -4 |
0.5x | 110 | 1 |
0.25x | 110 | 2 |
0.125x | 110 | 3 |
0.0625x | 110 | 4 |
通过实施例,执行能量消耗的动态计算,这与传统的基于功率监视的技术相比,这是延长电池寿命的一个更适当的指标。换句话说,最低功率消耗模式不一定转化为最低能量模式。实施例从而提供了传感器驱动的、快速的实时MEP跟踪和重新锁定,消除了对较慢的基于电压/频率的扫描技术的需求,并且硬件成本低。注意,在一些情况下,由MEP控制器执行的操作的至少一些部分可被实现在例如功率控制器的其他硬件、固件和/或软件内。
以下示例涉及进一步实施例。
在一个示例中,一种处理器包括:至少一个核心,用于执行指令;至少一个温度传感器,用于输出关于所述处理器的热信息;活动监视器,用于监视所述处理器的活动并且至少部分基于此来输出活动信息;以及与所述至少一个温度传感器和所述活动监视器相耦合的MEP控制器。所述MEP控制器可被配置为:至少部分基于先前热信息和所述热信息来生成热跟踪信息的变化;至少部分基于先前活动信息和所述活动信息来生成活动跟踪信息的变化;并且至少部分基于所述热跟踪信息的变化和所述活动跟踪信息的变化来确定MEP性能状态。
在一示例中,所述MEP控制器包括:用于将所述热跟踪信息的变化编码成第一步长值的编码器,以及用于将所述活动跟踪信息的变化编码成第二步长值的编码器;以及计算电路,用于基于所述第一步长值和所述第二步长值来计算步长值。
在一示例中,所述MEP控制器还包括控制电路,用于基于所述步长值来输出MEP性能状态。
在一示例中,所述处理器还包括查找表,所述查找表包括多个条目,每个条目存储操作电压和操作频率,其中所述控制电路用于利用所述步长值来访问所述查找表。
在一示例中,所述计算电路用于对所述第一步长值和所述第二步长值求和以计算所述步长值。
在一示例中,所述处理器还包括至少一个跟踪表,所述跟踪表包括多个条目,每个条目将所述热跟踪信息的变化与相应的第一步长值关联起来。
在一示例中,所述编码器用于利用所述热跟踪信息的变化来访问所述至少一个跟踪表以获得所述第一步长值。
在一示例中,所述至少一个跟踪表包括预表征的温度变化数据。
在一示例中,所述处理器还包括与所述MEP控制器相耦合的功率控制器,所述功率控制器用于:使得电压调节器根据所述MEP性能状态输出第一操作电压,并且使得时钟生成电路根据所述MEP性能状态以第一操作频率输出时钟信号。
在一示例中,所述MEP控制器还包括扫描电路,用于触发对电压/频率值的扫描以确定最优MEP性能状态,所述扫描电路用于响应于指示出工艺敏感持续时间的期满的老化定时器的期满而触发所述扫描。
在一示例中,所述扫描电路还用于在所述处理器初始化时触发对电压/频率值的扫描以确定初始最优MEP性能状态。
在一示例中,所述处理器还包括配置存储装置,用于至少存储所述初始最优MEP性能状态的最优电压。
在一示例中,所述MEP控制器用于:如果所述热跟踪信息的变化和所述活动跟踪信息的变化小于相应的阈值,则阻止对所述MEP性能状态的更新。
在另一示例中,一种方法包括:在处理器的MEP控制器中,接收关于所述处理器的温度的热跟踪信息和关于所述处理器的活动的活动跟踪信息;至少部分基于所述热跟踪信息和所述活动跟踪信息来生成跟踪信息的变化;至少部分基于所述跟踪信息的变化来计算步长值;并且利用所述步长值来输出MEP性能状态。
在一示例中,所述方法还包括在所述处理器初始化时确定工艺变动并且扫描多个电压/频率值以确定初始最优MEP性能状态。
在一示例中,所述方法还包括响应于工艺敏感持续时间的期满而确定工艺变动并且扫描所述多个电压/频率值以确定经更新的最优MEP性能状态。
在一示例中,所述方法还包括:利用所述步长值访问查找表以获得所述MEP性能状态,所述查找表包括多个条目,每个条目存储操作电压和操作频率;并且利用所述跟踪信息的变化访问至少一个跟踪表以获得用于计算所述步长值的一个或多个步长值。
在另一示例中,一种包括指令的计算机可读介质执行如上述示例中的任何一者所述的方法。
在另外一个示例中,一种包括数据的计算机可读介质被至少一个机器用来制作至少一个集成电路以执行如上述示例中的任何一者所述的方法。
在另外一个示例中,一种装置,包括用于执行如上述示例中的任何一者所述的方法的装置。
在另一示例中,一种系统包括处理器,该处理器包括:多个核心;至少一个传感器,用于输出关于所述处理器的热信息;至少一个工艺传感器,用于输出关于所述处理器的工艺变动信息;活动监视器,用于监视所述处理器的活动并且至少部分基于此来输出活动信息;以及与所述至少一个传感器、所述至少一个工艺传感器和所述活动监视器相耦合的MEP控制器。所述MEP控制器可被配置为基于对电压/频率值的扫描和所述工艺变动信息来确定初始MEP操作点,并且随后,至少部分基于所述热信息和所述活动信息且在没有对电压/频率值的扫描的情况下,将所述初始MEP操作点调整到经更新的MEP操作点。所述系统还可包括与所述处理器相耦合的动态随机访问存储器。
在一示例中,所述MEP控制器用于:至少部分基于先前热信息和所述热信息来生成热跟踪信息的变化;至少部分基于先前活动信息和所述活动信息来生成活动跟踪信息的变化;并且至少部分基于所述热跟踪信息的变化和所述活动跟踪信息的变化来确定所述经更新的MEP操作点。
在一示例中,所述MEP控制器包括:用于将所述热跟踪信息的变化编码成第一步长值的编码器,以及用于将所述活动跟踪信息的变化编码成第二步长值的编码器;以及计算电路,用于基于所述第一步长值和所述第二步长值来计算步长值,并且其中所述MEP控制器用于基于所述步长值来确定所述经更新的MEP操作点。
要理解,上述示例的各种组合是可能的。
注意,在本文中可互换使用术语“电路”和“电子线路”。如本文所使用的,这些术语和术语“逻辑”用于单独地或者按任何组合提及模拟电路、数字电路、硬连线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路、和/或任何其他类型的物理硬件组件。实施例可被用于许多不同类型的系统中。例如,在一个实施例中,通信设备可被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是其他实施例可指向其他类型的用于处理指令的装置,或者包括指令的一个或多个机器可读介质,这些指令响应于在计算设备上被执行而使得该设备实现本文描述的一个或多个方法和技术。
实施例可被实现在代码中并且可被存储在其上存储有指令的非暂态存储介质上,所述指令可用于将系统编程为执行这些指令。实施例还可被实现在数据中并且可被存储在非暂态存储介质上,该存储介质如果被至少一个机器使用则使得该至少一个机器制造至少一个集成电路来执行一个或多个操作。还有另外的实施例可被实现在包括信息的计算机可读存储介质中,所述信息当被制造到SoC或其他处理器中时将配置该SoC或其他处理器来执行一个或多个操作。存储介质可以包括但不限于任何类型的盘(包括软盘、光盘、固态驱动器(solid state drive,SSD)、致密盘只读存储器(compact disk read-only memory,CD-ROM)、可改写致密盘(compact disk rewritable,CD-RW)、以及磁光盘),半导体设备(比如只读存储器(read-only memory,ROM),随机访问存储器(random access memory,RAM)(比如动态随机访问存储器(dynamic random access memory,DRAM)、静态随机访问存储器(static random access memory,SRAM)),可擦除可编程只读存储器(erasableprogrammable read-only memory,EPROM),闪速存储器,电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)),磁卡或光卡,或者任何其他类型的适用于存储电子指令的介质。
虽然已关于有限数目的实施例描述了本发明,但本领域技术人员将会明白从这些实施例进行的许多修改和变化。希望所附权利要求覆盖落在本发明的真实精神和范围内的所有这种修改和变化。
Claims (26)
1.一种处理器,包括:
至少一个核心,用于执行指令;
至少一个温度传感器,用于输出关于所述处理器的热信息;
活动监视器,用于监视所述处理器的活动并且至少部分基于此来输出活动信息;以及
与所述至少一个温度传感器和所述活动监视器相耦合的最低能量点(MEP)控制器,所述MEP控制器用于:
至少部分基于先前热信息和所述热信息来生成热跟踪信息的变化;
至少部分基于先前活动信息和所述活动信息来生成活动跟踪信息的变化;并且
至少部分基于所述热跟踪信息的变化和所述活动跟踪信息的变化来确定MEP性能状态。
2.如权利要求1所述的处理器,其中所述MEP控制器包括:
用于将所述热跟踪信息的变化编码成第一步长值的编码器,以及用于将所述活动跟踪信息的变化编码成第二步长值的编码器;以及
计算电路,用于基于所述第一步长值和所述第二步长值来计算步长值。
3.如权利要求2所述的处理器,其中所述MEP控制器还包括控制电路,用于基于所述步长值来输出MEP性能状态。
4.如权利要求3所述的处理器,还包括查找表,所述查找表包括多个条目,每个条目存储操作电压和操作频率,其中所述控制电路用于利用所述步长值来访问所述查找表。
5.如权利要求3所述的处理器,其中所述计算电路用于对所述第一步长值和所述第二步长值求和以计算所述步长值。
6.如权利要求2所述的处理器,还包括至少一个跟踪表,所述跟踪表包括多个条目,每个条目将所述热跟踪信息的变化与相应的第一步长值关联起来。
7.如权利要求6所述的处理器,其中所述编码器用于利用所述热跟踪信息的变化来访问所述至少一个跟踪表以获得所述第一步长值。
8.如权利要求7所述的处理器,其中所述至少一个跟踪表包括预表征的温度变化数据。
9.如权利要求1所述的处理器,还包括与所述MEP控制器相耦合的功率控制器,所述功率控制器用于:使得电压调节器根据所述MEP性能状态输出第一操作电压,并且使得时钟生成电路根据所述MEP性能状态以第一操作频率输出时钟信号。
10.如权利要求1所述的处理器,其中所述MEP控制器还包括扫描电路,用于触发对电压/频率值的扫描以确定最优MEP性能状态,所述扫描电路用于响应于指示出工艺敏感持续时间的期满的老化定时器的期满而触发所述扫描。
11.如权利要求10所述的处理器,其中所述扫描电路还用于在所述处理器初始化时触发对电压/频率值的扫描以确定初始最优MEP性能状态。
12.如权利要求11所述的处理器,还包括配置存储装置,用于至少存储所述初始最优MEP性能状态的最优电压。
13.如权利要求1所述的处理器,其中所述MEP控制器用于:如果所述热跟踪信息的变化和所述活动跟踪信息的变化小于相应的阈值,则阻止对所述MEP性能状态的更新。
14.一种方法,包括:
在处理器的最低能量点(MEP)控制器中,接收关于所述处理器的温度的热跟踪信息和关于所述处理器的活动的活动跟踪信息;
至少部分基于所述热跟踪信息和所述活动跟踪信息来生成跟踪信息的变化;
至少部分基于所述跟踪信息的变化来计算步长值;并且
利用所述步长值来输出MEP性能状态。
15.如权利要求14所述的方法,还包括在所述处理器初始化时确定所述处理器的工艺变动并且扫描多个电压/频率值以确定初始最优MEP性能状态。
16.如权利要求15所述的方法,还包括响应于工艺敏感持续时间的期满而扫描所述多个电压/频率值以确定经更新的最优MEP性能状态。
17.如权利要求14所述的方法,还包括:
利用所述步长值访问查找表以获得所述MEP性能状态,所述查找表包括多个条目,每个条目存储操作电压和操作频率;并且
利用所述跟踪信息的变化访问至少一个跟踪表以获得用于计算所述步长值的一个或多个步长值。
18.一种计算机可读存储介质,包括计算机可读指令,所述计算机可读指令当被执行时,实现如权利要求14至17中的任何一者中要求保护的方法。
19.一种装置,包括用于执行如权利要求14至17中的任何一者中要求保护的方法的装置。
20.一种系统,包括:
处理器,包括:
多个核心;
至少一个传感器,用于输出关于所述处理器的热信息;
至少一个工艺传感器,用于输出关于所述处理器的工艺变动信息;
活动监视器,用于监视所述处理器的活动并且至少部分基于此来输出活动信息;以及
与所述至少一个传感器、所述至少一个工艺传感器和所述活动监视器相耦合的最低能量点(MEP)控制器,其中所述MEP控制器用于基于对电压/频率值的扫描和所述工艺变动信息来确定初始MEP操作点,并且随后,至少部分基于所述热信息和所述活动信息且在没有对电压/频率值的扫描的情况下,将所述初始MEP操作点调整到经更新的MEP操作点;以及
与所述处理器相耦合的动态随机访问存储器。
21.如权利要求20所述的系统,其中所述MEP控制器用于:
至少部分基于先前热信息和所述热信息来生成热跟踪信息的变化;
至少部分基于先前活动信息和所述活动信息来生成活动跟踪信息的变化;并且
至少部分基于所述热跟踪信息的变化和所述活动跟踪信息的变化来确定所述经更新的MEP操作点。
22.如权利要求21所述的系统,其中所述MEP控制器包括:
用于将所述热跟踪信息的变化编码成第一步长值的编码器,以及用于将所述活动跟踪信息的变化编码成第二步长值的编码器;以及
计算电路,用于基于所述第一步长值和所述第二步长值来计算步长值,并且其中所述MEP控制器用于基于所述步长值来确定所述经更新的MEP操作点。
23.一种装置,包括:
用于接收关于处理器的温度的热跟踪信息和关于所述处理器的活动的活动跟踪信息的装置;
用于至少部分基于所述热跟踪信息和所述活动跟踪信息来生成跟踪信息的变化的装置;
用于至少部分基于所述跟踪信息的变化来计算步长值的装置;以及
用于利用所述步长值来输出最低能量点(MEP)性能状态的装置。
24.如权利要求23所述的装置,还包括:
用于确定所述处理器的工艺变动的装置;以及
用于在所述处理器初始化时扫描多个电压/频率值以确定初始最优MEP性能状态的装置。
25.如权利要求24所述的装置,还包括用于响应于工艺敏感持续时间的期满而扫描所述多个电压/频率值以确定经更新的最优MEP性能状态的装置。
26.如权利要求24所述的装置,还包括:
用于利用所述步长值访问查找表装置以获得所述MEP性能状态的装置,所述查找表装置包括多个条目,每个条目存储操作电压和操作频率;以及
用于利用所述跟踪信息的变化访问至少一个跟踪表装置以获得用于计算所述步长值的一个或多个步长值的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/455,929 | 2019-06-28 | ||
US16/455,929 US11231731B2 (en) | 2019-06-28 | 2019-06-28 | System, apparatus and method for sensor-driven and heuristic-based minimum energy point tracking in a processor |
PCT/US2020/023570 WO2020263366A1 (en) | 2019-06-28 | 2020-03-19 | System, apparatus and method for sensor-driven and heuristic-based minimum energy point tracking in a processor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113924540A true CN113924540A (zh) | 2022-01-11 |
Family
ID=74043615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080039711.3A Pending CN113924540A (zh) | 2019-06-28 | 2020-03-19 | 用于处理器中的传感器驱动的和基于试探的最低能量点跟踪的系统、装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11231731B2 (zh) |
EP (1) | EP3991008A4 (zh) |
CN (1) | CN113924540A (zh) |
WO (1) | WO2020263366A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11231731B2 (en) * | 2019-06-28 | 2022-01-25 | Intel Corporation | System, apparatus and method for sensor-driven and heuristic-based minimum energy point tracking in a processor |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058824B2 (en) * | 2001-06-15 | 2006-06-06 | Microsoft Corporation | Method and system for using idle threads to adaptively throttle a computer |
US9063730B2 (en) * | 2010-12-20 | 2015-06-23 | Intel Corporation | Performing variation-aware profiling and dynamic core allocation for a many-core processor |
US9383789B2 (en) * | 2012-06-21 | 2016-07-05 | Apple Inc. | Thermal control apparatus and methodology |
US10707038B2 (en) | 2013-09-06 | 2020-07-07 | Texas Instruments Incorporated | System and method for energy monitoring |
US10108212B2 (en) | 2015-09-22 | 2018-10-23 | Intel Corporation | Digital low drop-out voltage controller including embedded dual-loop feedback for minimum energy point operation |
US11829114B2 (en) * | 2015-10-13 | 2023-11-28 | Schneider Electric Systems Usa, Inc. | Systems and methods of hierarchical smart asset control and industrial system optimization |
US10739804B2 (en) | 2017-09-22 | 2020-08-11 | Intel Corporation | Voltage regulator efficiency-aware global-minimum energy tracking |
US20190094931A1 (en) | 2017-09-28 | 2019-03-28 | Intel Corporation | ENERGY HARVESTING and AMBIENT CONDITION TRACKING in IoT for ADAPTIVE SENSING and SELF-MODIFYING APPLICATIONS |
DE112018007177T5 (de) | 2018-02-28 | 2020-12-10 | Intel Corporation | Steuerung einer verarbeitungsleistungsstufe abhängig vom energieverbrauch |
US11231731B2 (en) | 2019-06-28 | 2022-01-25 | Intel Corporation | System, apparatus and method for sensor-driven and heuristic-based minimum energy point tracking in a processor |
-
2019
- 2019-06-28 US US16/455,929 patent/US11231731B2/en active Active
-
2020
- 2020-03-19 WO PCT/US2020/023570 patent/WO2020263366A1/en active Application Filing
- 2020-03-19 CN CN202080039711.3A patent/CN113924540A/zh active Pending
- 2020-03-19 EP EP20831817.0A patent/EP3991008A4/en active Pending
-
2021
- 2021-11-17 US US17/528,241 patent/US11669114B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3991008A1 (en) | 2022-05-04 |
WO2020263366A1 (en) | 2020-12-30 |
US20200409399A1 (en) | 2020-12-31 |
US11669114B2 (en) | 2023-06-06 |
US20220075400A1 (en) | 2022-03-10 |
EP3991008A4 (en) | 2023-07-19 |
US11231731B2 (en) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372198B2 (en) | Controlling performance states of processing engines of a processor | |
US11435816B2 (en) | Processor having accelerated user responsiveness in constrained environment | |
US9983644B2 (en) | Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance | |
US11442529B2 (en) | System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor | |
US10324519B2 (en) | Controlling forced idle state operation in a processor | |
US20180314289A1 (en) | Modifying an operating frequency in a processor | |
US11669146B2 (en) | System, apparatus and method for responsive autonomous hardware performance state control of a processor | |
US11669114B2 (en) | System, apparatus and method for sensor-driven and heuristic-based minimum energy point tracking in a processor | |
US11016916B2 (en) | Generation of processor interrupts using averaged data | |
WO2019040054A1 (en) | SYSTEM, APPARATUS, AND METHOD FOR ADAPTIVE OPERATING VOLTAGE IN A USER-PROGRAMMED (FPGA) PREDIFFUSED NETWORK |
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 |