CN109791427B - 使用滑动平均值的处理器电压控制 - Google Patents

使用滑动平均值的处理器电压控制 Download PDF

Info

Publication number
CN109791427B
CN109791427B CN201780060567.XA CN201780060567A CN109791427B CN 109791427 B CN109791427 B CN 109791427B CN 201780060567 A CN201780060567 A CN 201780060567A CN 109791427 B CN109791427 B CN 109791427B
Authority
CN
China
Prior art keywords
voltage
processor
power
determining
power supply
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780060567.XA
Other languages
English (en)
Other versions
CN109791427A (zh
Inventor
D.拉吉万
E.罗特姆
A.N.阿南塔克里什南
A.瓦尔马
A.加诺尔
N.罗森兹维格
D.M.帕洛夫斯基
A.吉恩
N.舒尔曼
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 CN109791427A publication Critical patent/CN109791427A/zh
Application granted granted Critical
Publication of CN109791427B publication Critical patent/CN109791427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

在一个实施例中,一种处理器包括功率控制单元和多个组件。所述多个组件中的第一组件要接收来自功率供应设备的功率输入。所述功率控制单元要:确定第一组件的功率输入端子处接收到的电压;确定第一组件的接收到的电压与第一组件的可靠性目标电压之间的电压差;基于该电压差来确定滑动平均值;以及基于滑动平均值来调整功率供应设备的供应电压。描述并要求保护其他实施例。

Description

使用滑动平均值的处理器电压控制
技术领域
实施例涉及计算机处理器,并且更具体地涉及使用滑动平均值的计算机处理器中的电压控制。
背景技术
半导体处理和逻辑设计方面的进步使得可能存在于集成电路设备上的逻辑量的增大成为可能。因此,计算机系统配置已从系统中的单个或多个集成电路演进到单独的集成电路上的多个硬件线程、多个核、多个设备和/或完整系统。此外,随着集成电路密度增长,针对计算系统(从嵌入式系统到服务器)的功率要求也逐步升级。此外,软件低效及其硬件要求也导致计算设备能耗的增大。事实上,一些研究表明,计算设备消耗了国家(诸如美利坚合众国)的整体电力供应的相当大的百分比。因此,存在针对与集成电路相关联的能效和节能的至关重要的需要。这些需要将随着服务器、台式计算机、笔记本电脑、超极本TM、平板电脑、移动电话、处理器、嵌入式系统等变得愈发普及(从包括于典型的计算机、汽车、电视到生物技术)而增大。
附图说明
图1是根据本发明的实施例的系统的一部分的框图。
图2是根据本发明的实施例的处理器的框图。
图3是根据本发明的另一实施例的多域处理器的框图。
图4是包括多个核的处理器的实施例。
图5是根据本发明的一个实施例的处理器核的微架构的框图。
图6是根据另一实施例的处理器核的微架构的框图。
图7是根据又一实施例的处理器核的微架构的框图。
图8是根据又一实施例的处理器核的微架构的框图。
图9是根据本发明的另一实施例的处理器的框图。
图10是根据本发明的实施例的代表性SoC的框图。
图11是根据本发明的实施例的另一示例SoC的框图。
图12是实施例可以与其一起使用的示例系统的框图。
图13是实施例可以与其一起使用的另一示例系统的框图。
图14是代表性计算机系统的框图。
图15是根据本发明的实施例的系统的框图。
图16是例示用于制造执行根据实施例的操作的集成电路的IP核开发系统的框图。
图17是根据一个或多个实施例的示例系统的图。
图18A是根据一个或多个实施例的示例系统的图。
图18B是根据一个或多个实施例的示例系统的图。
图19是根据一个或多个实施例的示例序列。
图20是根据一个或多个实施例的示例序列。
具体实施方式
尽管参考特定集成电路中(诸如计算平台或处理器中)的节能和能效来描述以下实施例,但是其他实施例也适用于其他类型的集成电路和逻辑设备。本文描述的实施例的类似技术和教导可以应用于也可以受益于更好的能效和节能的其他类型的电路或半导体器件。例如,所公开的实施例不限于任何特定类型的计算机系统。也就是说,所公开的实施例可以用于范围为从服务器计算机(例如,塔、机架、刀片、微服务器等)、通信系统、存储系统、任何配置的台式计算机、膝上型电脑、笔记本电脑和平板计算机(包括二合一平板电脑、平板手机等)的许多不同的系统类型中,并且也可以用于诸如手持设备、片上系统(SoC)和嵌入式应用的其他设备中。手持设备的一些示例包括诸如智能电话、网际协议设备、数字相机、个人数字助理(PDA)和手持PC之类的蜂窝电话。嵌入式应用通常可以包括微控制器、数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机、可穿戴设备或可以执行以下教导的功能和操作的任何其他系统。尤其是,实施例可以在诸如移动电话、智能电话和平板手机的具有标准语音功能的移动终端中实现,和/或在诸如许多可穿戴设备、平板电脑、笔记本电脑、台式电脑、微服务器、服务器等的没有标准无线语音功能通信能力的非移动终端中实现。此外,本文描述的装置、方法和系统不限于物理计算设备,还可以涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的,本文描述(无论是参考硬件、固件、软件或其组合)的方法、装置和系统的实施例对于“绿色技术”未来是至关重要的,诸如对于覆盖了US经济的大部分的产品中的节能和能效。
现在参考图1,示出的是根据本发明的实施例的系统的一部分的框图。如图1所示,系统100可以包括各种组件,包括处理器110,如所示,它是多核处理器。处理器110可以经由外部电压调节器160耦合到功率供应(power supply)150,所述外部电压调节器160可以执行第一电压转换以向处理器110提供初级调节电压Vreg。
如所见,处理器110可以是包括多个核120a-120n的单个管芯处理器。此外,每个核可以与集成电压调节器(IVR)125a-125n相关联,每个核接收初级调节电压并生成操作电压以提供给与IVR相关联的处理器的一个或多个代理。因此,可以提供IVR实现以允许对每个单独核的电压并因而功率和性能的细粒度控制。因此,每个核可以在独立的电压和频率处操作,从而实现了大的灵活性并提供了用于平衡功耗与性能的广泛机会。在一些实施例中,使用多个IVR使得能够将组件分组成单独的功率平面,使得功率由IVR调节并供应给组中的仅那些组件。在功率管理期间,当处理器被置于某个低功率状态时,一个IVR的给定功率平面可以掉电或断电,而另一个IVR的另一个功率平面保持活动或完全供电。类似地,核120可以包括诸如一个或多个锁相环(PLL)的独立的时钟生成电路或与之相关联,以独立地控制每个核120的操作频率。
仍然参考图1,处理器内可以存在附加组件,包括输入/输出接口(IF)132、另一接口134和集成存储器控制器(IMC)136。如所见,这些组件中的每个可以由另一个集成电压调节器125x供电。在一个实施例中,接口132可以实现用于英特尔®快速路径互连(QPI)互连的操作,其提供包括包含物理层、链路层和协议层的多个层的高速缓存一致协议中的点对点(PtP)链路。继而,接口134可以经由外围组件互连快速(PCIeTM)协议进行通信。
还示出了功率控制单元(PCU)138,其可以包括用于执行关于处理器110的功率管理操作的包括硬件、软件和/或固件的电路。如所见,PCU 138经由数字接口162向外部电压调节器160提供控制信息以使电压调节器生成适当的调节电压。PCU 138还经由另一数字接口163向IVR 125提供控制信息,以控制所生成的操作电压(或以使对应的IVR在低功率模式下被禁用)。在各种实施例中,PCU 138可以包括各种功率管理逻辑单元以执行基于硬件的功率管理。这样的功率管理可以完全是处理器控制的(例如,由各种处理器硬件,并且其可以由工作负载和/或功率、热或其他处理器约束触发)和/或功率管理可以响应于外部源(诸如,平台或功率管理源或系统软件)来执行。
在图1中,PCU 138被示为作为处理器的单独逻辑存在。在其他情况下,PCU逻辑138可以在给定的一个或多个核120上执行。在一些情况下,PCU 138可以被实现为微控制器(专用或通用)、或配置成执行其自己的专用功率管理代码(有时也称为P代码)的其他控制逻辑。在又其他实施例中,由PCU 138执行的功率管理操作可以在处理器外部实现,诸如通过单独的功率管理集成电路(PMIC)或处理器外部的其他组件。在又其他实施例中,由PCU 138执行的功率管理操作可以在BIOS或其他系统软件内实现。
实施例可以特别适合于多核处理器,其中多个核中的每个可以在独立的电压和频率点处操作。如本文所使用的,术语“域”用于意指在相同电压和频率点处操作的硬件和/或逻辑的集合。此外,多核处理器还可以包括其他非核处理引擎,诸如固定功能单元、图形引擎等。这样的处理器可以包括除核之外的独立域,诸如与图形引擎相关联的一个或多个域(在此称为图形域)和与非核电路相关联的一个或多个域(在此称为非核或系统代理)。尽管可以在单个半导体管芯上形成多域处理器的许多实现,但是其他实现可以通过其中不同域可以存在于单个封装的不同半导体管芯上的多芯片封装来实现。
虽然为了便于例示而未示出,但应理解,处理器110内可以存在诸如非核逻辑的附加组件、以及诸如内部存储器之类的其他组件,例如高速缓存存储器层级的一个或多个级别等。此外,虽然在图1的实现中示出有集成电压调节器,但实施例不限于此。例如,可以从外部电压调节器160或调节电压的一个或多个附加外部源将其他调节电压提供给片上资源。
注意,本文描述的功率管理技术可以独立于基于操作系统(OS)的功率管理(OSPM)机制并与之互补。根据一个示例OSPM技术,处理器可以在各种性能状态或级别(所谓的P状态,即从P0到PN)处操作。通常,P1性能状态可以对应于OS可以请求的最高保证性能状态。除了该P1状态之外,OS还可以请求更高性能状态,即P0状态。因此,该P0状态可以是机会、超频或涡轮模式状态,其中当功率和/或热预算可用时,处理器硬件可以配置处理器或其至少部分来以高于保证频率进行操作。在许多实现中,处理器可以包括P1保证最大频率以上的多个所谓的仓(bin)频率,从而超过特定处理器的最大峰值频率,如在制造期间融合或以其他方式写入处理器的。此外,根据一种OSPM机制,处理器可以在各种功率状态或级别处操作。关于功率状态,OSPM机制可以指定不同的功耗状态,通常称为C状态,C0、C1至Cn状态。当核活动时,它在C0状态处运行,并且当核空闲时,它可以被置于核低功率状态,也称为核非零C状态(例如,C1-C6状态),其中每个C状态处于较低的功耗级别(使得C6是比C1更深的低功率状态,等等)。
应理解,可以在不同实施例中单独地或组合地使用许多不同类型的功率管理技术。作为代表性示例,功率控制器可以通过某种形式的动态电压频率缩放(DVFS)来控制要被功率管理的处理器,其中在某些情况下可以动态地控制一个或多个核或其他处理器逻辑的操作电压和/或操作频率以减小功耗。在示例中,可以使用可从加利福尼亚州圣克拉拉市的英特尔公司获得的增强型英特尔SpeedStepTM技术来执行DVFS,以在最低功耗级别处提供最优性能。在另一个示例中,可以使用英特尔TurboBoostTM技术来执行DVFS,以使得一个或多个核或其他计算引擎能够基于条件(例如,工作负载和可用性)以高于保证操作频率进行操作。
可以在某些示例中使用的另一种功率管理技术是在不同计算引擎之间动态交换工作负载。例如,处理器可以包括以不同功耗级别操作的非对称核或其他处理引擎,使得在功率受限的情况下,一个或多个工作负载可以动态地切换为在较低功率核或其他计算引擎上执行。另一示例性功率管理技术是硬件工作循环(HDC),其可以使核和/或其他计算引擎根据工作周期被周期性地启用和禁用,从而使一个或多个核可以在工作周期的非有效时段期间变为非活动的并在工作周期的有效时段期间变为活动的。
当在操作环境中存在约束时,也可以使用功率管理技术。例如,当遭受功率和/或热约束时,可以通过减小操作频率和/或电压来减小功率。其他功率管理技术包括节流(throttle)指令执行速率或限制指令的调度。更进一步,给定指令集架构的指令可以包括关于功率管理操作的明确或隐含指导。尽管用这些特定示例进行了描述,但应理解,在特定实施例中可以使用许多其他功率管理技术。
实施例可以在用于各种市场的处理器中实现,用于各种市场的处理器包括服务器处理器、台式处理器、移动处理器等。现在参考图2,示出的是根据本发明的实施例的处理器的框图。如图2所示,处理器200可以是包括多个核210a-210n的多核处理器。在一个实施例中,每个这样的核可以是独立的功率域,并且可以被配置成基于工作负载而进入和退出活动状态和/或最大性能状态。一个或多个核210可以与其他核异构,例如具有不同的微架构、指令集架构、管线深度、功率和性能能力。各种核可以经由互连215耦合到包括各种组件的系统代理或非核220。如所见,非核220可以包括共享高速缓存230,其可以是最后一级高速缓存。此外,非核可以包括集成存储器控制器240,以例如经由存储器总线与系统存储器(图2中未示出)通信。非核220还包括各种接口250和功率控制单元255,其可以包括执行本文描述的功率管理技术的逻辑。
此外,通过接口250a-250n,可以连接到各种片外组件,诸如外围设备、大容量存储装置等。虽然在图2的实施例中以该特定实现示出,但本发明的范围在这方面不受限制。
现在参考图3,示出了根据本发明的另一实施例的多域处理器的框图。如图3的实施例中所示,处理器300包括多个域。具体地,核域310可以包括多个核310a-310n,图形域320可以包括一个或多个图形引擎,并且还可以存在系统代理域350。在一些实施例中,系统代理域350可以以与核域独立的频率执行,并且可以始终保持通电以处理功率控制事件和功率管理,使得可以控制域310和320动态地进入和退出高功率和低功率状态。域310和320中的每个可以以不同的电压和/或功率进行操作。注意,虽然仅示出有三个域,但应理解,本发明的范围不限于此方面,并且在其他实施例中可以存在附加的域。例如,可以存在多个核域,每个核域包括至少一个核。
通常,除了各种执行单元和附加处理元件之外,每个核310还可以包括低级高速缓存。继而,各种核可以彼此耦合并且耦合到由最后一级高速缓存(LLC)340a-340n的多个单元形成的共享高速缓存存储器。在各种实施例中,LLC 340可以在核和图形引擎以及各种媒体处理电路之间共享。如所见,环形互连330因此将核耦合在一起,并提供核、图形域320和系统代理电路350之间的互连。在一个实施例中,互连330可以是核域的一部分。然而,在其他实施例中,环形互连可以属于其自己的域。
如进一步所见,系统代理域350可以包括显示器控制器352,其可以提供对相关联的显示器的控制和到相关联的显示器的接口。如进一步所见,系统代理域350可以包括功率控制单元355,其可以包括执行本文描述的功率管理技术的逻辑。
如图3中进一步所见,处理器300还可以包括集成存储器控制器(IMC)370,其可以提供到诸如动态随机存取存储器(DRAM)的系统存储器的接口。可以存在多个接口380a-380n以实现处理器和其他电路之间的互连。例如,在一个实施例中,可以提供至少一个直接媒体接口(DMI)接口以及一个或多个PCIeTM接口。更进一步,为了提供诸如附加处理器或其他电路之类的其他代理之间的通信,还可以提供一个或多个QPI接口。尽管在图3的实施例中以这种高级别示出,但应理解,本发明的范围不限于此方面。
参考图4,例示了包括多个核的处理器的实施例。处理器400包括任何处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SoC)或执行代码的其他设备。在一个实施例中,处理器400包括至少两个核——核401和402,其可以包括非对称核或对称核(所例示的实施例)。然而,处理器400可以包括可以是对称或非对称的任何数量的处理元件。
在一个实施例中,处理元件指的是支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其他元件,其能够保持处理器的状态,诸如执行状态或架构状态。换句话说,在一个实施例中,处理元件指的是能够独立地与诸如软件线程、操作系统、应用或其他代码的代码相关联的任何硬件。物理处理器通常指的是集成电路,其潜在地包括任何数量的其他处理元件,诸如核或硬件线程。
核通常指的是位于能够维持独立架构状态的集成电路上的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核相比,硬件线程通常指的是位于能够维持独立架构状态的集成电路上的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如可以看出的,当共享某些资源而其他资源专用于架构状态时,硬件线程和核的命名之间的线重叠。然而,通常,操作系统将核和硬件线程视为单独的逻辑处理器,其中操作系统能够单独地在每个逻辑处理器上调度操作。
如图4所示,物理处理器400包括两个核,核401和402。这里,核401和402被认为是对称核,即具有相同配置、功能单元和/或逻辑的核。在另一实施例中,核401包括无序处理器核,而核402包括有序处理器核。然而,核401和402可以从任何类型的核中单独选择,任何类型的核诸如本机核、软件管理核、适于执行本机指令集架构(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中的重新排序缓冲器、分支目标缓冲器和指令转换后备缓冲器(BTB和I-TLB)420、加载/存储缓冲器和队列。诸如通用内部寄存器、(一个或多个)页表基址寄存器、低级数据高速缓存和数据TLB450、(一个或多个)执行单元440以及无序单元435的部分之类的其他资源潜在地被完全共享。
处理器400通常包括其他资源,其可以是完全共享的、通过分区共享的、或由/对处理元件专用的。在图4中,例示了具有处理器的例示性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任何一个,并且包括未描绘的任何其他已知功能单元、逻辑或固件。如所例示的,核401包括简化的、代表性的无序(OOO)处理器核。但是可以在不同的实施例中利用有序处理器。OOO核包括用于预测要执行/采取的分支的分支目标缓冲器420和用于存储用于指令的地址转换条目的指令转换缓冲器(I-TLB)420。
核401还包括解码模块425,其耦合到取得单元以解码所取得的元素。在一个实施例中,取得逻辑包括分别与线程槽401a、401b相关联的各个定序器。通常,核401与第一ISA相关联,第一ISA定义/指定在处理器400上可执行的指令。通常,作为第一ISA的一部分的机器代码指令包括引用/指定要执行的指令或操作的指令的一部分(称为操作码)。解码逻辑425包括从其操作码识别这些指令并在管线中传递解码指令以用于按照第一ISA定义处理的电路。例如,在一个实施例中,解码器425包括被设计或适配成识别诸如事务指令的特定指令的逻辑。作为由解码器425的识别的结果,架构或核401采取特定的预定义动作以执行与适当指令相关联的任务。重要的是,要注意,可以响应于单个或多个指令来执行本文描述的任何任务、块、操作和方法;单个或多个指令中的一些可能是新的或旧的指令。
在一个示例中,分配器和重命名器块430包括用于保留资源的分配器,所述资源诸如用于存储指令处理结果的寄存器堆。然而,线程401a和401b潜在地能够进行无序执行,其中分配器和重命名器块430还保留其他资源,诸如用于追踪指令结果的重新排序缓冲器。单元430还可以包括寄存器重命名器,以将程序/指令参考寄存器重命名为处理器400内部的其他寄存器。重新排序/引退单元435包括组件,诸如上面提到的重新排序缓冲器、加载缓冲器和存储缓冲器,以支持无序执行和无序执行的指令的稍后的有序引退。
在一个实施例中,调度器和(一个或多个)执行单元块440包括用于调度执行单元上的指令/操作的调度器单元。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器堆以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知的执行单元。
较低级别数据高速缓存和数据转换后备缓冲器(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可以包括各种缓冲器以重新排序微指令流并分配执行所需的各种资源,以及提供逻辑寄存器的重命名到各种寄存器堆(诸如寄存器堆530和扩展寄存器堆535)内的存储位置上。寄存器堆530可以包括用于整数和浮点运算的单独寄存器堆。出于配置、控制和附加操作的目的,一组机器特定寄存器(MSR)538也可以存在并且能被核500内(以及核外部)的各种逻辑访问。
各种资源可以存在于执行单元520中,除了其他专用硬件之外,执行单元520特别包括例如各种整数、浮点和单指令多数据(SIMD)逻辑单元。例如,除了其他这样的执行单元之外,这样的执行单元可以特别包括一个或多个算术逻辑单元(ALU)522和一个或多个向量执行单元524。
来自执行单元的结果可以被提供给引退逻辑,即重新排序缓冲器(ROB)540。更具体地,ROB 540可以包括接收与被执行的指令相关联的信息的各种阵列和逻辑。然后,由ROB540检查该信息,以确定是否可以有效地引退指令并且将结果数据提交到处理器的架构状态,或者是否发生了阻止指令的恰当引退的一个或多个异常。当然,ROB 540可以处理与引退相关联的其他操作。
如图5所示,ROB 540耦合到高速缓存550,在一个实施例中,高速缓存550可以是低级别高速缓存(例如,L1高速缓存),尽管本发明的范围不限于此方面。此外,执行单元520可以直接耦合到高速缓存550。从高速缓存550,可以发生与更高级别高速缓存、系统存储器等的数据通信。虽然在图5的实施例中以这种高级别示出,但是应理解,本发明的范围不限于此方面。例如,虽然图5的实现是关于诸如英特尔®x86指令集架构(ISA)的无序机器,但是本发明的范围不限于此方面。也就是说,其他实施例可以在有序处理器中实现、在精简指令集计算(RISC)处理器(诸如基于ARM的处理器)中实现或在可以经由模拟引擎和相关联的逻辑电路模拟不同ISA的指令和操作的另一类型ISA的处理器中实现。
现在参考图6,示出的是根据另一实施例的处理器核的微架构的框图。在图6的实施例中,核600可以是不同微架构的低功率核,诸如基于英特尔®凌动TM的处理器,其具有被设计为减小功耗的相对有限的管线深度。如所见,核600包括指令高速缓存610,其被耦合以向指令解码器615提供指令。分支预测器605可以耦合到指令高速缓存610。注意,指令高速缓存610还可以耦合到高速缓存存储器的另一级,诸如L2高速缓存(在图6中为了便于例示而未示出)。继而,指令解码器615将解码的指令提供给发布队列(IQ)620,以存储和递送到给定的执行管线。微代码ROM 618耦合到指令解码器615。
浮点管线630包括浮点(FP)寄存器堆632,其可以包括给定位宽(诸如128位、256位或512位)的多个架构寄存器。管线630包括浮点调度器634,其用于调度用于在管线的多个执行单元之一上执行的指令。在所示的实施例中,这样的执行单元包括ALU 635、混洗(shuffle)单元636和浮点加法器638。继而,在这些执行单元中生成的结果可以被提供回寄存器堆632的寄存器和/或缓冲器。当然,要理解,虽然用这几个示例执行单元示出,但是在另一个实施例中可以存在附加的或不同的浮点执行单元。
还可以提供整数管线640。在所示的实施例中,管线640包括整数(INT)寄存器堆642,其可以包括给定位宽(诸如128或256位)的多个架构寄存器。管线640包括整数执行(IE)调度器644,其用于调度用于在管线的多个执行单元之一上执行的指令。在所示的实施例中,这样的执行单元包括ALU 645、移位器单元646和跳转执行单元(JEU)648。继而,在这些执行单元中生成的结果可以被提供回寄存器堆642的寄存器和/或缓冲器。当然,要理解,虽然用这几个示例执行单元示出,但是在另一个实施例中可以存在附加的或不同的整数执行单元。
存储器执行(ME)调度器650可以调度用于在地址生成单元(AGU)652中执行的存储器操作,其还耦合到TLB 654。如所见,这些结构可以耦合到数据高速缓存660,数据高速缓存660可以是L0和/或L1数据高速缓存,其继而耦合到高速缓存存储器层级的附加级别,包括L2高速缓存存储器。
为了提供对无序执行的支持,除了被配置成对无序执行的指令重新排序以用于有序引退的重新排序缓冲器680之外,还可以提供分配器/重命名器670。尽管在图6的例示中以该特定管线架构示出,但应理解许多变型和替代方案是可能的。
注意,在具有非对称核的处理器(诸如根据图5和6的微架构)中,出于功率管理的原因,工作负载可以在核之间动态交换,因为这些核(尽管具有不同的管线设计和深度)可以属于相同或相关的ISA。可以以对用户应用(并且也可能是内核)透明的方式执行这样的动态核交换。
参考图7,示出的是根据又一实施例的处理器核的微架构的框图。如图7所示,核700可以包括多级有序管线以在非常低功耗级别下执行。作为一个这样的示例,处理器700可以具有根据可从加利福尼亚州森尼维耳市ARM股份有限公司获得的ARM Cortex A53设计的微架构。在实现中,可以提供8级管线,其被配置成执行32位和64位代码两者。核700包括取得单元710,其被配置成取得指令并将它们提供给解码单元715,解码单元715可以解码指令,例如给定ISA(诸如ARMv8 ISA)的宏指令。还要注意,队列730可以耦合到解码单元715以存储解码的指令。将解码的指令提供给发布逻辑725,其中可以将解码的指令发布给多个执行单元中的给定的一个。
进一步参考图7,发布逻辑725可以向多个执行单元之一发布指令。在所示的实施例中,这些执行单元包括整数单元735、乘法单元740、浮点/向量单元750、双发布单元760和加载/存储单元770。这些不同执行单元的结果可以被提供给回写(WB)单元780。应理解,虽然为了便于例示而示出了单个回写单元,但是在一些实现中,单独的回写单元可以与每个执行单元相关联。此外,应理解,虽然图7中所示的每个单元和逻辑以高级别表示,但是特定实现可以包括更多或不同的结构。使用具有管线的一个或多个核而设计的处理器(如图7中)可以在从移动设备扩展到服务器系统的许多不同的最终产品中实现。
参考图8,示出的是根据又一实施例的处理器核的微架构的框图。如图8所示,核800可以包括多级多发布无序管线,用于以非常高性能级别执行(这可以在比图7的核700更高的功耗级别发生)。作为一个这样的示例,处理器800可以具有根据ARM Cortex A57设计的微架构。在实现中,可以提供15(或更多)级管线,其被配置成执行32位和64位代码两者。此外,管线可以提供3(或更大)范围和3(或更多)发布操作。核800包括取得单元810,其被配置成取得指令并将它们提供给耦合到高速缓存820的解码器/重命名器/分派器单元815。单元815可以解码例如ARMv8指令集架构的宏指令的指令、重命名指令内的寄存器引用、并将指令(最终)分派到所选择的执行单元。解码的指令可以存储在队列825中。注意,虽然在图8中为了便于例示而示出了单个队列结构,但是应理解可以为多个不同类型的执行单元中的每个提供单独的队列。
图8中还示出的是发布逻辑830,从中可以将存储在队列825中的解码的指令发布到所选择的执行单元。可以在特定实施例中实现发布逻辑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处理器、高通Snapdragon处理器或德州仪器OMAP处理器。这样的SoC可以用在低功率系统中,诸如智能电话、平板计算机、平板手机计算机、超极本TM计算机或其他便携式计算设备,其可以包含具有基于异构系统架构的处理器设计的异构系统架构。
在图9所示的高级别视图中,处理器900包括多个核单元910a-910n。每个核单元可以包括一个或多个处理器核、一个或多个高速缓存存储器和其他电路。每个核单元910可以支持一个或多个指令集(例如,x86指令集(具有已经添加有较新版本的一些扩展);MIPS指令集;ARM指令集(具有可选的附加扩展,诸如NEON))或其他指令集或其组合。注意,一些核单元可以是异构资源(例如,属于不同设计)。此外,每个这样的核可以耦合到高速缓存存储器(未示出),在实施例中,高速缓存存储器可以是共享的二级(L2)高速缓存存储器。非易失性存储装置930可以用于存储各种程序和其他数据。例如,该存储装置可以用于存储微代码的至少一部分、诸如BIOS的引导信息、其他系统软件等。
每个核单元910还可以包括诸如总线接口单元的接口,以实现到处理器的附加电路的互连。在实施例中,每个核单元910耦合到一致构造,该一致构造可以充当初级高速缓存一致芯片上互连,其继而耦合到存储器控制器935。继而,存储器控制器935控制与诸如DRAM的存储器(在图9中为了便于例示而未示出)的通信。
除了核单元之外,处理器内还存在附加的处理引擎,包括至少一个图形单元920,其可以包括一个或多个图形处理单元(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的框图。在所示实施例中,SoC 1000可以是被配置用于低功率操作的多核SoC,以被优化以并入到智能电话或其他低功率设备(诸如平板计算机或其他便携式计算设备)中。作为示例,SoC 1000可以使用非对称或不同类型的核来实现,非对称或不同类型的核诸如更高功率和/或低功率核(例如,无序核和有序核)的组合。在不同的实施例中,这些核可以基于英特尔®ArchitectureTM核设计或ARM架构设计。在又其他实施例中,可以在给定的SoC中实现英特尔和ARM核的混合。
如图10所见,SoC 1000包括具有多个第一核1012a-1012d的第一核域1010。在示例中,这些核可以是低功率核,诸如有序核。在一个实施例中,这些第一核可以实现为ARMCortex A53核。继而,这些核耦合到核域1010的高速缓存存储器1015。此外,SoC 1000包括第二核域1020。在图10的例示中,第二核域1020具有多个第二核1022a-1022d。在示例中,这些核可以是比第一核1012更高功耗的核。在实施例中,第二核可以是无序核,其可以实现为ARM Cortex A57核。继而,这些核耦合到核域1020的高速缓存存储器1025。注意,虽然图10中所示的示例在每个域中包括4个核,但是应理解在其他示例中在给定域中可以存在更多或更少的核。
进一步参考图10,还提供了图形域1030,图形域1030可以包括一个或多个图形处理单元(GPU),一个或多个图形处理单元(GPU)被配置成独立地执行例如由核域1010和1020的一个或多个核提供的图形工作负载。作为示例,除了提供图形和显示渲染操作之外,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适合并入到各种各样的便携式和其他设备(诸如智能电话、平板计算机、智能电视等)中。在所示的示例中,SoC 1100包括中央处理器单元(CPU)域1110。在实施例中,多个单独的处理器核可以存在于CPU域1110中。作为一个示例,CPU域1110可以是具有四个多线程核的四核处理器。这样的处理器可以是同构或异构处理器,例如低功率和高功率处理器核的混合。
继而,提供GPU域1120以在一个或多个GPU中执行高级图形处理以处理图形和计算API。除了在多媒体指令的执行期间可能发生的高级计算之外,DSP单元1130还可以提供一个或多个低功率DSP,以用于处理诸如音乐回放、音频/视频等之类的低功率多媒体应用。继而,通信单元1140可以包括各种组件以经由各种无线协议提供连接性,各种无线协议诸如蜂窝通信(包括3G/4G LTE)、无线局域协议,诸如蓝牙TM、IEEE 802.11等。
更进一步,多媒体处理器1150可以用于执行高清晰度视频和音频内容的捕获和回放,包括用户手势的处理。传感器单元1160可以包括多个传感器和/或传感器控制器,以与给定平台中存在的各种片外传感器对接。图像信号处理器1170可以设有一个或多个单独的ISP,以关于来自平台的一个或多个相机(包括静止和视频相机)的捕获内容执行图像处理。
显示器处理器1180可以提供对连接到给定像素密度的高清晰度显示器的支持,包括无线传送内容以在这样的显示器上回放的能力。更进一步,定位单元1190可以包括具有对多个GPS星座的支持的GPS接收器,以向应用提供使用这样的GPS接收器获得的高度准确的定位信息。应理解,虽然在图11的示例中利用该特定组件组示出,但是许多变型和替代方案是可能的。
现在参考图12,示出的是可以与其一起使用实施例的示例系统的框图。如所见,系统1200可以是智能电话或其他无线通信器。基带处理器1205被配置成关于要从系统发送或由系统接收的通信信号执行各种信号处理。继而,基带处理器1205耦合到应用处理器1210,除了诸如许多公知的社交媒体和多媒体应用之类的用户应用之外,应用处理器1210还可以用于执行OS和其他系统软件的系统的主CPU。应用处理器1210还可以被配置成执行用于设备的各种其他计算操作。
继而,应用处理器1210可以耦合到用户接口/显示器1220,例如触摸屏显示器。此外,应用处理器1210可以耦合到包括非易失性存储器(即闪速存储器1230)和系统存储器(即动态随机存取存储器(DRAM)1235)的存储器系统。如进一步所见,应用处理器1210还耦合到捕获设备1240,捕获设备1240诸如是可以记录视频和/或静止图像的一个或多个图像捕获设备。
仍然参考图12,包括订户身份模块以及可能地包括安全存储装置和加密处理器的通用集成电路卡(UICC)1240也耦合到应用处理器1210。系统1200还可以包括可以耦合到应用处理器1210的安全处理器1250。多个传感器1225可以耦合到应用处理器1210以使得能够输入各种感测信息,诸如加速度计和其他环境信息。音频输出设备1295可以提供用于例如以语音通信、播放或流送的音频数据等的形式输出声音的接口。
如进一步所示,提供近场通信(NFC)非接触式接口1260,其经由NFC天线1265在NFC近场中通信。虽然在图12中示出了单独的天线,但应理解在一些实现中,可以提供一个天线或不同的一组天线以实现各种无线功能。
功率管理集成电路(PMIC)1215耦合到应用处理器1210以执行平台级别功率管理。为此,PMIC 1215可以向应用处理器1210发布功率管理请求,以根据需要进入某些低功率状态。此外,基于平台约束,PMIC 1215还可以控制系统1200的其他组件的功率级别。
为了使得能够发送和接收通信,各种电路可以耦合在基带处理器1205和天线1290之间。具体地,可以存在射频(RF)收发器1270和无线局域网(WLAN)收发器1275。通常,RF收发器1270可以用于根据诸如3G或4G无线通信协议(诸如根据码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)或其他协议)的给定的无线通信协议接收和发送无线数据和呼叫。此外,可以存在GPS传感器1280。还可以提供其他无线通信,诸如无线电信号(例如AM/FM和其他信号)的接收或发送。此外,经由WLAN收发器1275,还可以实现本地无线通信。
现在参考图13,示出的是可以与其一起使用实施例的另一示例系统的框图。在图13的例示中,系统1300可以是移动低功率系统,诸如平板计算机、二合一平板电脑、平板手机或其他可变换或独立的平板电脑系统。如所例示的,存在SoC 1310并且SoC 1310可以被配置成作为用于设备的应用处理器而操作。
各种设备可以耦合到SoC 1310。在所示的例示中,存储器子系统包括耦合到SoC1310的闪速存储器1340和DRAM 1345。此外,触摸面板1320耦合到SoC 1310以提供显示能力和经由触摸的用户输入,包括在触摸面板1320的显示器上提供虚拟键盘。为了提供有线网络连接性,SoC 1310耦合到以太网接口1330。外围中枢1325耦合到SoC 1310以使得能够与各种外围设备对接,各种外围设备诸如可以通过各种端口或其他连接器中的任何一个耦合到系统1300。
除了SoC 1310内的内部功率管理电路和功能之外,PMIC 1380耦合到SoC 1310以提供基于平台的功率管理,例如基于系统是由电池1390供电还是由AC功率经由AC适配器1395供电。除了该基于功率源的功率管理之外,PMIC 1380还可以基于环境和使用条件来执行平台功率管理活动。更进一步,PMIC 1380可以将控制和状态信息传送到SoC 1310,以在SoC 1310内引起各种功率管理动作。
仍然参考图13,为了提供无线能力,WLAN单元1350耦合到SoC 1310并且继而耦合到天线1355。在各种实现中,WLAN单元1350可以根据一个或多个无线协议提供通信。
如进一步所示,多个传感器1360可以耦合到SoC 1310。这些传感器可以包括各种加速度计、环境和其他传感器,包括用户手势传感器。最后,音频编解码器1365耦合到SoC1310以提供到音频输出设备1370的接口。当然应理解,虽然在图13中以该特定实现示出,但是许多变型和替代方案是可能的。
现在参考图14,示出的是代表性计算机系统的框图,代表性计算机系统诸如笔记本电脑、超极本TM或其他小外形因数系统。在一个实施例中,处理器1410包括微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知处理元件。在所示实现中,处理器1410充当用于与系统1400的许多各种组件的通信的主处理单元和中央中枢,并且可以包括如本文所述的功率管理电路。作为一个示例,处理器1410被实现为SoC。
在一个实施例中,处理器1410与系统存储器1415通信。作为例示性示例,系统存储器1415经由多个存储器设备或模块来实现,以提供给定量的系统存储器。
为了提供诸如数据、应用、一个或多个操作系统等之类的信息的持久存储装置,大容量存储装置1420还可以耦合到处理器1410。在各种实施例中,为了实现更薄且更轻的系统设计以及为了改进系统响应性,该大容量存储装置可以经由SSD实现,或者大容量存储装置可以主要使用硬盘驱动器(HDD)来实现,其中具有较少量SSD存储以充当SSD高速缓存,以实现在掉电事件期间的上下文状态和其他这样的信息的非易失性存储装置,使得可以在重新发起系统活动时进行快速上电。还如图14所示,闪存设备1422可以例如经由串行外围接口(SPI)耦合到处理器1410。该闪存设备可以提供系统软件的非易失性存储装置,系统软件包括系统的基本输入/输出软件(BIOS)以及其他固件。
系统1400内可以存在各种输入/输出(I/O)设备。图14的实施例中具体示出的是可以是高清晰度LCD或LED面板的显示器1424,高清晰度LCD或LED面板进一步提供触摸屏1425。在一个实施例中,显示器1424可以经由显示器互连耦合到处理器1410,显示器互连可以实现为高性能图形互连。触摸屏1425可以经由另一互连耦合到处理器1410,在实施例中,该另一互连可以是I2C互连。如图14中进一步所示,除了触摸屏1425之外,通过触摸的用户输入也可以经由触摸板1430发生,触摸板1430可以被配置在机架内并且还可以与触摸屏1425耦合到相同的I2C互连。
对于感知计算和其他目的,各种传感器可以存在于系统内并且可以以不同的方式耦合到处理器1410。某些惯性和环境传感器可以通过传感器中枢1440例如经由I2C互连耦合到处理器1410。在图14所示的实施例中,这些传感器可以包括加速度计1441、环境光传感器(ALS)1442、指南针1443和陀螺仪1444。其他环境传感器可以包括一个或多个热传感器1446,其在一些实施例中经由系统管理总线(SMBus)总线耦合到处理器1410。
还在图14中所见,各种外围设备可以经由低引脚计数(LPC)互连耦合到处理器1410。在所示的实施例中,各种组件可以通过嵌入式控制器1435耦合。这样的组件可以包括键盘1436(例如,经由PS2接口耦合)、风扇1437和热传感器1439。在一些实施例中,触摸板1430也可以经由PS2接口耦合到EC 1435。此外,诸如可信平台模块(TPM)1438的安全处理器也可以经由该LPC互连耦合到处理器1410。
系统1400可以以各种方式(包括无线方式)与外部设备通信。在图14所示的实施例中,存在各种无线模块,每个无线模块可以对应于为特定无线通信协议配置的无线电。用于诸如近场的短程中的无线通信的一种方式可以是经由NFC单元1445,其可以在一个实施例中经由SMBus与处理器1410通信。注意,经由该NFC单元1445,彼此靠近的设备可以通信。
如图14中进一步所见,附加无线单元可以包括其他短程无线引擎,包括WLAN单元1450和蓝牙TM单元1452。使用WLAN单元1450,可以实现Wi-FiTM通信,而经由蓝牙TM单元1452,可以发生短程蓝牙TM通信。这些单元可以经由给定链路与处理器1410通信。
此外,例如,根据蜂窝或其他无线广域协议的无线广域通信可以经由WWAN单元1456发生,WWAN单元1456继而可以耦合到订户身份模块(SIM)1457。此外,为了使得能够接收和使用位置信息,还可以存在GPS模块1455。注意,在图14所示的实施例中,WWAN单元1456和诸如相机模块1454的集成捕获设备可以经由给定链路进行通信。
为了提供音频输入和输出,可以经由数字信号处理器(DSP)1460实现音频处理器,数字信号处理器(DSP)1460可以经由高清晰度音频(HDA)链路耦合到处理器1410。类似地,DSP 1460可以与集成编码器/解码器(CODEC)和放大器1462通信,集成编码器/解码器(CODEC)和放大器1462继而可以耦合到可以在机架内实现的输出扬声器1463。类似地,放大器和CODEC 1462可以被耦合以接收来自麦克风1465的音频输入,在实施例中,麦克风1465可以经由双阵列麦克风(诸如数字麦克风阵列)来实现,以提供高质量音频输入来实现系统内的各种操作的语音激活控制。还要注意,音频输出可以从放大器/CODEC 1462提供给耳机插孔1464。尽管在图14的实施例中以这些特定组件示出,但是应理解,本发明的范围不限于此方面。
实施例可以以许多不同的系统类型实现。现在参考图15,示出的是根据本发明的实施例的系统的框图。如图15所示,多处理器系统1500是点对点互连系统,并且包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如图15所示,每个处理器1570和1580可以是多核处理器,包括第一和第二处理器核(即,处理器核1574a和1574b以及处理器核1584a和1584b),尽管在处理器中可能存在潜在地多得多的核。每个处理器可以包括PCU或其他功率管理逻辑以执行如本文所述的基于处理器的功率管理。
仍然参考图15,第一处理器1570还包括存储器控制器中枢(MCH)1572和点对点(P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如图15所示,MCH 1572和1582将处理器耦合到相应的存储器,即存储器1532和存储器1534,它们可以是本地附接到相应处理器的系统存储器(例如,DRAM)的部分。第一处理器1570和第二处理器1580可以分别经由P-P互连1562和1564耦合到芯片组1590。如图15所示,芯片组1590包括P-P接口1594和1598。
此外,芯片组1590包括通过P-P互连1539将芯片组1590与高性能图形引擎1538耦合的接口1592。继而,芯片组1590可以经由接口1596耦合到第一总线1516。如图15所示,各种输入/输出(I/O)设备1514可以耦合到第一总线1516,以及将第一总线1516耦合到第二总线1520的总线桥1518。在一个实施例中,各种设备可以耦合到第二总线1520,包括例如键盘/鼠标1522、通信设备1526和数据存储单元1528,诸如磁盘驱动器或可以包括代码1530的其他大容量存储设备。此外,音频I/O 1524可以耦合到第二总线1520。实施例可以并入到其他类型的系统中,包括诸如智能蜂窝电话、平板计算机、上网本、超极本TM等之类的移动设备。
可以通过存储在机器可读介质上的、表示和/或定义诸如处理器的集成电路内的逻辑的代表性代码来实现至少一个实施例的一个或多个方面。例如,机器可读介质可以包括表示处理器内的各种逻辑的指令。当由机器读取时,指令可以使机器构造执行本文描述的技术的逻辑。称为“IP核”的这样的表示是用于集成电路的可重用的逻辑单元,其可以存储在有形的机器可读介质上,作为描述集成电路的结构的硬件模型。可以将硬件模型供应给各种客户或制造设施,各种客户或制造设施将硬件模型加载在制造集成电路的构造机器上。可以构造集成电路使得电路执行与本文描述的任何实施例相关联描述的操作。
图16是例示IP核开发系统1600的框图,IP核开发系统1600可以用于制造执行根据实施例的操作的集成电路。IP核开发系统1600可以用于生成模块化的可重用的设计,模块化的可重用的设计可以并入到更大的设计中或用于构建整个集成电路(例如,SoC集成电路)。设计设施1630可以以高级编程语言(例如,C/C++)生成IP核设计的软件模拟1610。软件模拟1610可以用于设计、测试和验证IP核的行为。然后可以从模拟模型创建或合成寄存器传输级(RTL)设计。RTL设计1615是对硬件寄存器之间的数字信号流进行建模的集成电路的行为的抽象,包括使用建模的数字信号执行的相关联的逻辑。除了RTL设计1615之外,还可以创建、设计或合成逻辑级或晶体管级的较低级设计。因此,初始设计和模拟的特定细节可以变化。
RTL设计1615或等同物可以由设计设施进一步合成为硬件模型1620,硬件模型1620可以采用硬件描述语言(HDL)或物理设计数据的某种其他表示。可以进一步模拟或测试HDL以验证IP核设计。可以存储IP核设计以使用非易失性存储器1640(例如,硬盘、闪速存储器或任何非易失性存储介质)递送到第三方构造设施1665。替代地,可以通过有线连接1650或无线连接1660(例如,经由互联网)发送IP核设计。然后,构造设施1665可以构造至少部分地基于IP核设计的集成电路。构造的集成电路可以被配置成执行根据本文描述的至少一个实施例的操作。
现在参考图17,示出的是根据一个或多个实施例的系统1700的框图。如图17所示,系统1700可以包括可操作地耦合到功率供应1750的处理器1710。此外,尽管图17中未示出,但系统1700可以包括其他组件。根据一些实施例,系统1700可以是任何电子设备的全部或一部分,电子设备诸如蜂窝电话、计算机、服务器、媒体播放器、网络设备等。
在一个或多个实施例中,处理器1710可以是硬件处理设备,诸如中央处理单元(CPU)、片上系统(SoC)等。如图17的示例中所示,处理器1710可以包括一个或多个组件1720A-1720N(也笼统地称为“组件1720”)和功率控制单元1730。在一些实施例中,组件1720可以包括通用处理核、图形处理单元(GPU)、数字信号处理器(DSP)、加密/解密处理器、存储器设备(例如,双列直插式存储器模块(DIMM)、存储器高速缓存)、知识产权(IP)块、网络接口模块、无线电接口模块等。此外,在一些实施例中,组件1720可以包括嵌入在处理器1710中的功率调节设备。例如,组件1720可以包括被配置成向处理核提供功率的集成电压调节器(IVR)。
在一个或多个实施例中,组件1720可以从功率供应1750接收电功率。由功率供应1750提供的电功率可以由功率控制单元1730控制。在一些实施例中,功率控制单元1730可以基于滑动平均值来改变功率供应1750的输出。例如,滑动平均值可以是基于在组件1720处接收到的电压与组件1720的可靠性目标电压之间的差。
在一个或多个实施例中,功率控制单元1730可以确定针对组件1720的可靠性目标电压。在一些实施例中,组件1720的可靠性目标电压可以是组件1720处可以可靠地操作(例如,不会导致故障或错误)的最大电压。在一些实施例中,组件1720的可靠性目标电压可以是固定值(例如,制造商的规格要求)。在其他实施例中,可以在多个时间段中的每个或一些时间段中计算组件1720的可靠性目标电压。
在一个或多个实施例中,功率控制单元1730可以确定针对组件1720的接收到的电压。例如,在多个时间段中的每个或一些时间段中,功率控制单元1730可以通过从功率供应1750的供应电压(例如,功率供应1750的输出处的电压)减去电压损耗来计算组件1720的输入处接收到的电压。例如,电压损耗可以是由于功率路径中的电阻损耗。此外,电压损耗可以是由于其他原因(例如,阻抗损耗)。
在一个或多个实施例中,功率控制单元1730可以确定组件1720的可靠性目标电压和接收到的电压之间的差。例如,在多个时间段中的每个或一些时间段中,功率控制单元1730可以通过从组件1720的可靠性目标电压中减去接收到的电压来计算该差。如本文使用的,可靠性目标电压和接收到的电压之间的差可以称为“电压净空”。
在一个或多个实施例中,功率控制单元1730可以基于组件1720的电压净空(即,可靠性目标电压和接收到的电压之间的差)来确定滑动平均值。如本文使用的,基于电压净空的滑动平均值可以称为组件1720的“压力预算”。在一些实施例中,功率控制单元1730可以在多个时间段中的每个或一些时间段中周期性地计算压力预算。
在一个或多个实施例中,功率控制单元1730可以基于指数移动平均算法来周期性地计算压力预算。例如,可以基于以下指数移动平均公式来确定压力预算:
B[t] = (H x A) + (B[t-1] x (1-A))。
在该压力预算公式中,“B”项是压力预算,“H”项是电压净空,“A”项是平滑因子,“t”项是当前时间段,并且“t”项是紧接在当前时间段之前的时间段。在一些实施例中,可以使用以下公式来确定平滑因子“A”:
A = exp (-D x (1/W))。
在该平滑因子公式中,“D”项是每个时间段之间(例如,时段t和t-1之间)的时间差,并且“W”项是在压力预算计算中考虑的时间窗口。此外,符号“exp()”指的是指数函数。
在一个或多个实施例中,功率控制单元1730可以基于压力预算(即,基于组件1720的电压净空的滑动平均值)来调整功率供应1750的供应电压。例如,在多个时间段中的每个或一些时间段中,功率控制单元1730可以将压力预算与阈值进行比较。在一些实施例中,响应于确定了压力预算低于阈值,功率控制单元1730可以减小功率供应1750的供应电压。此外,响应于确定了压力预算高于阈值,功率控制单元1730可以增大功率供应1750的供应电压。在一些实施例中,响应于确定了压力预算等于阈值(或者在指定的阈值范围内),功率控制单元1730可以保持功率供应1750的供应电压不变。阈值可以是由设置指定的,或者可以是基于较早的压力预算。例如,与压力预算值相比较的阈值可以被设置为零、正数或负数。在另一示例中,与当前压力预算值相比较的阈值可以是较早的压力预算值(例如,紧接在前的时间段的压力预算值)。在一些实施例中,在供应电压被修改的每个时间段中,功率控制单元1730可以使供应电压改变某个预定义的增量(例如,一毫伏、两伏等)。
在一个或多个实施例中,功率控制单元1730可以基于所确定的供应电压来控制功率供应1750的输出。例如,在多个时间段中的每个或一些时间段中,功率控制单元1730可以发送信号或命令以使功率供应1750输出期望的供应电压。在一些实施例中,功率控制单元1730可以经由串联电压识别(SVID)接口向功率供应1750发送对期望的供应电压的指示。
在一个或多个实施例中,功率控制单元1730可以基于由于处理负载和/或处理器状态的波动而发生的电压变化来调整功率供应1750的供应电压。此外,功率控制单元1730可以设置供应电压水平,以使得负载释放效应不会导致组件1720超过最大电压水平。例如,假设在多个时间段中的特定时间段中,由组件1720汲取的电流在操作期间下降(例如,由于处理负载的变化)。该电流下降可能导致所提供的电压增大,并且因此可能导致组件1720超过最大输入电压。因此,功率控制单元1730可以限制供应电压以确保在负载释放情况中没有达到组件1720的最大电压水平。
在一个或多个实施例中,功率控制单元1730可以被实现在处理器1710的硬件组件中。例如,功率控制单元1730可以被实现在处理器1710的电路和/或微架构中。此外,在一些实施例中,功率控制单元1730可以至少部分地实现在固件和/或软件中。虽然被示出为图17的实施例中的特定实现,但是本文讨论的各种实施例的范围不限于此。例如可设想到,在一些实施例中,功率控制单元1730可以在处理器1710外部(例如,在嵌入式控制器中、在芯片组中等等)。此外,在一些实施例中,功率控制单元1730的一些或所有功能和/或组件可以被实现在处理器1710的组件1720中。
现在参考图18A,示出了根据一个或多个实施例的示例系统1800的框图。系统1800可以大致对应于(图17中示出的)系统1700的示例。在一些实施例中,系统1800可以包括功率供应1850、功率控制逻辑1830和组件1820。如图18A所示,功率路径1810可以将功率供应1850的输出功率提供给组件1820的输入端子1825。功率路径1810可以包括导线、连接器、导电迹线等中的一些或全部。
在一个或多个实施例中,功率控制逻辑1830可以控制功率供应1850提供期望的供应电压。在一些实施例中,功率控制逻辑1830可以使用组件1820的目标电压来确定功率供应1850的输出电压。此外,功率控制逻辑1830可以基于接收到的请求或命令来确定组件1820的目标电压。例如,功率控制逻辑1830可以从操作系统接收指定组件1820的目标电压的请求。在另一示例中,功率控制逻辑1830可以从控制程序接收指定组件1820的期望的性能或功率状态的请求,并且可以基于该期望的性能或功率状态来确定目标电压。
在一个或多个实施例中,功率控制逻辑1830可以使用指示跨功率路径1810的电压损耗的值来确定功率供应1850的输出电压。例如,功率控制单元1730可以通过将功率路径1810的估计电压损耗与组件1820的目标电压相加来确定期望的输出电压。
在一个或多个实施例中,功率控制逻辑1830可以使用功率供应1850的输出电流来确定跨功率路径1810的电压损耗。例如,功率控制逻辑1830可以接收指示跨功率路径1810的测量或估计出的电流水平的数据。在一些实施例中,可以使用以下公式来确定功率路径1810的电压损耗:
L =(I×R)。
在该电压损耗公式中,“L”项是跨路径的电压损耗,“I”项是跨该路径的电流,并且“R”项是该路径的电阻。如本文所使用的,术语“线路电压损耗”可以指由“L”项表示的电压损耗。
在一个或多个实施例中,功率控制逻辑1830可以使用所存储的数据1835来确定跨功率路径1810的电压损耗。例如,所存储的数据1835可以包括与功率路径1810的电阻相关的数据。该存储的数据可以用于确定上面的电压损耗公式中的“R”项。在另一示例中,所存储的数据1835可以包括描述功率路径1810中的各种电流水平下的电压损耗的预定义表。在又其他示例中,所存储的数据1835可以包括用于确定跨功率路径1810的电压损耗的不同的和/或另外的数据。
在一个或多个实施例中,功率控制逻辑1830可以基于组件1820的压力预算(即,基于组件1820的电压净空的滑动平均值)来确定功率供应1850的供应电压。在一个或多个实施例中,功率控制逻辑1830可以基于输入端子1825处接收到的电压与组件1820的可靠性目标电压之间的差来确定组件1820的电压净空。
现在参考图18B,示出的是根据一个或多个实施例的示例系统1860的框图。系统1860可以大致对应于(图17中示出的)系统1700。
如图18B所示,功率路径1815可以将功率供应1850的输出功率提供给集成电压调节器(IVR)1870的输入端子1875。此外,IVR 1870可以向组件1820提供电功率。在图18B的示例中,功率控制逻辑1830可以使用功率路径1815的电阻和电流流量来确定跨功率路径1815的电压损耗。
在一个或多个实施例中,功率控制逻辑1830可以基于IVR 1870的压力预算(即,基于IVR 1870的电压净空的滑动平均值)来确定功率供应1850的输出电压。在一个或多个实施例中,功率控制逻辑1830可以基于输入端子1875处接收到的电压与IVR 1870的可靠性目标电压之间的差来确定IVR 1870的电压净空。
现在参考图19,示出了根据一个或多个实施例的序列1900。在一些实施例中,序列1900的全部或一部分可以在功率控制单元1730(图17中示出)和/或功率控制逻辑1830(图18A-18B中示出)中实现。序列1900可以以硬件、软件和/或固件实现。在硬件实施例中,它可以被实现为电路和/或微架构。此外,在固件和/或软件实施例中,它可以由存储在非暂时性机器可读介质(诸如光学、半导体或磁性存储设备)中的计算机执行指令来实现。机器可读介质可以存储数据,所述数据如果由至少一个机器使用则使得所述至少一个机器构造至少一个集成电路以执行方法。为了例示,下面可以参考示出了根据一个或多个实施例的示例的图17-18B描述序列1900中涉及的动作。然而,本文讨论的各种实施例的范围不限于此。
在框1910处,可以确定处理器的第一组件的功率输入端子处接收到的电压。例如,参考图18A,功率控制逻辑1830可以确定组件1820的输入端子1825处接收到的电压。在一些实施例中,功率控制逻辑1830可以通过从功率供应1850的输出电压减去功率路径1810中的电压损耗来确定在输入端子1825处接收到的电压。在一些实施例中,功率控制逻辑1830可以基于功率路径1810中的电流流量和功率路径1810的电阻来确定电压损耗。例如,功率控制逻辑1830可以从所存储的数据1835读取或以其他方式确定功率路径1810的电阻。
在框1920处,可以确定第一组件的可靠性目标电压与第一组件的接收到的电压之间的电压差。例如,参考图18A,功率控制逻辑1830可以通过从组件1820的可靠性目标电压减去组件1820的输入端子1825处接收到的电压来计算组件1820的电压净空。在一些实施例中,可靠性目标电压可以是为组件1820指定的最大操作电压。
在框1930处,可以基于第一组件的可靠性目标电压和接收到的电压之间的电压差来确定滑动平均值。例如,参考图18A,功率控制逻辑1830可以计算组件1820的压力预算。在一些实施例中,组件1820的压力预算可以是组件1820的电压净空的指数移动平均数。
在框1940处,可基于滑动平均值来调整供应电压。例如,参考图18A,功率控制逻辑1830可以执行压力预算与阈值的比较,并且可以基于该比较来调整功率供应1850的供应电压。在框1940之后,序列1900可以返回到框1910以进行另一次迭代。例如,在一些实施例中,序列1900可以在多个时间段中重复执行。
现在参考图20,示出了根据一个或多个实施例的序列2000。在一些实施例中,序列2000的全部或一部分可以在功率控制单元1730(图17中示出)和/或功率控制逻辑1830(图18A-18B中示出)中实现。序列2000可以用硬件、软件和/或固件实现。在硬件实施例中,它可以被实现为电路和/或微架构。此外,在固件和/或软件实施例中,它可以由存储在非暂时性机器可读介质(诸如光学、半导体或磁性存储设备)中的计算机执行指令来实现。机器可读介质可以存储数据,所述数据如果由至少一个机器使用则使得所述至少一个机器构造至少一个集成电路以执行方法。为了例示,下面可以参考示出了根据一个或多个实施例的示例的图17-18B描述序列2000中涉及的动作。然而,本文讨论的各种实施例的范围不限于此。
在框2010处,可以确定处理器的第一组件的功率输入端子处接收到的电压。例如,参考图18B,功率控制逻辑1830可以确定集成电压调节器(IVR)1870的输入端子1875处接收到的电压。在一些实施例中,功率控制逻辑1830可以通过从功率供应1850的输出供应电压减去功率路径1810中的电压损耗来确定输入端子1875处接收到的电压。
在框2020处,可以确定第一组件的可靠性目标电压与第一组件的接收到的电压之间的电压差。例如,参考图18B,功率控制逻辑1830可以通过从IVR 1870的可靠性目标电压减去输入端子1875处接收到的电压来计算IVR 1870的电压净空。
在框2030处,可以基于第一组件的可靠性目标电压和接收到的电压之间的电压差来确定滑动平均值。例如,参考图18B,功率控制逻辑1830可以计算IVR 1870的压力预算。在一些实施例中,IVR 1870的压力预算可以是IVR 1870的电压净空的指数移动平均数。
在框2040处,进行滑动平均值和第一值的比较。例如,参考图18B,功率控制逻辑1830可以执行IVR 1870的压力预算与IVR 1870的阈值的比较。在一些实施例中,该阈值可以是零。在其他实施例中,该阈值可以是在框2030处确定滑动平均值之前确定的较早的滑动平均值。
如果框2040处的比较结果是该滑动平均值小于第一值,则在框2050处减小供应电压。例如,参考图18B,功率控制逻辑1830可以确定IVR 1870的压力预算小于IVR 1870的阈值,并且作为响应可以减小功率供应1850的供应电压。在框2050之后,序列2000可以返回到框2010以进行另一次迭代。例如,在一些实施例中,可以在多个时间段中重复执行序列2000。
再次参考框2040,如果比较结果是滑动平均值大于第一值,则在框2060处增大供应电压。例如,参考图18B,功率控制逻辑1830可以确定IVR 1870的压力预算大于IVR 1870的阈值,并且作为响应可以增大功率供应1850的供应电压。在框2060之后,序列2000可以返回到框2010以进行另一次迭代。
再次参考框2040,如果比较结果是滑动平均值等于第一值(或者在指定的第一值的范围内),则供应电压保持不变。然后,序列2000可以返回到框2010以进行另一次迭代。
注意,提供图1-20中所示的示例是为了例示的目的,而非意图限制任何实施例。还要注意,尽管为了清楚起见可能以简化的形式示出了实施例,但是实施例可以包括处理器、核和/或附加组件(例如,总线、存储介质、连接器、功率组件、缓冲器、接口等)的任何数量和/或布置。特别地,可设想一些实施例可以包括除了所示出的那些组件之外的任何数量的组件,并且在某些实现中可以出现所示组件的不同布置。此外,可设想图1-20中所示的示例中的具体细节可以用在一个或多个实施例中的任何地方。例如,以上关于图17-20讨论的组件和/或功能可以被实现在以上关于图1-16讨论的任何系统和/或组件中。
以下条款和/或示例涉及另外的实施例。
在一个示例中,一种用于控制供应功率的处理器包括多个组件和功率控制单元。所述多个组件中的第一组件要接收来自功率供应设备的功率输入。所述功率控制单元要:确定第一组件的功率输入端子处接收到的电压;确定第一组件的接收到的电压与第一组件的可靠性目标电压之间的电压差;基于所述电压差来确定滑动平均值;以及基于所述滑动平均值来调整所述功率供应设备的供应电压。
在一个示例中,所述功率控制单元还要:确定所述滑动平均值低于第一值;以及响应于确定了所述滑动平均值低于第一值而减小所述供应电压。
在一个示例中,所述功率控制单元还要:确定所述滑动平均值高于第一值;以及响应于确定了所述滑动平均值高于第一值而增大所述供应电压。在一个示例中,所述第一值为零。在另一示例中,所述第一值是较早的滑动平均值,其中所述较早的滑动平均值是在确定所述滑动平均值之前确定的。
在一个示例中,所述功率控制单元还要将指示所述供应电压的信号发送给所述功率供应设备,其中所述功率供应设备要基于指示所述供应电压的信号来控制所述功率输入。
在一个示例中,所述功率控制单元还要:使用从所述功率供应设备提供给所述功率输入端子的电流的测量来计算线路电压损耗;以及使用所述线路电压损耗来确定第一组件的接收到的电压。
在一个示例中,第一组件是耦合到所述处理器的第二组件的集成电压调节器。
在一个示例中,一种用于控制供应功率的方法包括:确定包括在处理器中的集成电压调节器的接收到的电压;确定所述集成电压调节器的接收到的电压与所述集成电压调节器的可靠性目标电压之间的电压差;基于所述电压差来确定滑动平均值;以及基于所述滑动平均值来控制功率供应设备的供应电压。
在一个示例中,所述方法还包括:确定所述滑动平均值低于阈值;以及响应于确定了所述滑动平均值低于所述阈值而减小所述功率供应设备的供应电压。
在一个示例中,所述方法还包括:确定所述滑动平均值高于阈值;以及响应于确定了所述滑动平均值高于所述阈值而增大所述功率供应设备的供应电压。
在一个示例中,所述方法还包括:确定所述滑动平均值等于阈值;以及响应于确定了所述滑动平均值等于所述阈值而保持所述功率供应设备的供应电压不变。
在一个示例中,所述方法还包括:使用从所述功率供应设备提供给所述集成电压调节器的电流的测量来计算线路电压损耗;以及通过从由所述功率供应设备提供的输出电压减去所述线路电压损耗来确定第一组件的接收到的电压。
在一个示例中,所述方法还包括将指示所述供应电压的信号发送给所述功率供应设备,所述功率供应设备要基于指示所述供应电压的信号来控制所述输出电压。
在一个示例中,所述方法还包括使用指数移动平均算法来计算所述滑动平均值。
在一个示例中,一种机器可读介质上存储有数据,所述数据如果被至少一个机器使用则使所述至少一个机器构造至少一个集成电路以执行根据上述示例中的任一项所述的方法。
在一个示例中,一种用于处理指令的装置,其被配置成执行上述示例中的任一项所述的方法。
在一个示例中,一种用于控制供应功率的片上系统(Soc)包括:集成电压调节器,其要接收来自功率供应设备的功率输入;以及功率控制逻辑。所述功率控制逻辑要:确定所述集成电压调节器的功率输入端子处接收到的电压;确定所述集成电压调节器的接收到的电压与所述集成电压调节器的可靠性目标电压之间的电压差;基于所述电压差来确定滑动平均值;以及基于所述滑动平均值来确定所述功率供应设备的供应电压。
在一个示例中,所述功率控制逻辑还要:确定所述滑动平均值低于第一值;以及响应于确定了所述滑动平均值低于第一值而减小所述功率供应设备的供应电压。
在一个示例中,所述功率控制逻辑还要:确定所述滑动平均值高于第一值;以及响应于确定了所述滑动平均值高于第一值而增大所述功率供应设备的供应电压。
在一个示例中,所述功率控制逻辑还要:使用从所述功率供应设备提供给所述功率输入端子的电流的测量来计算线路电压损耗;以及使用所述线路电压损耗来确定所述集成电压调节器的接收到的电压。
在一个示例中,所述功率控制逻辑还要使用描述所述功率供应设备和所述集成电压调节器之间的路径的电阻的存储数据来计算所述线路电压损耗。
在一个示例中,一种机器可读介质上存储有数据,所述数据如果被至少一个机器使用则使所述至少一个机器构造至少一个集成电路以执行包括以下步骤的方法:确定包括在处理器中的集成电压调节器的接收到的电压;确定所述集成电压调节器的接收到的电压与所述集成电压调节器的可靠性目标电压之间的电压差;基于所述电压差来确定滑动平均值;以及基于所述滑动平均值来控制功率供应设备的供应电压。
在一个示例中,所述方法还包括:确定所述滑动平均值低于阈值;以及响应于确定了所述滑动平均值低于所述阈值而减小所述功率供应设备的供应电压。
在一个示例中,所述方法还包括:确定所述滑动平均值高于阈值;以及响应于确定了所述滑动平均值高于所述阈值而增大所述功率供应设备的供应电压。
在一个示例中,所述方法还包括:确定所述滑动平均值等于阈值;以及响应于确定了所述滑动平均值等于所述阈值而保持所述功率供应设备的供应电压不变。
在一个示例中,所述方法还包括:使用从所述功率供应设备提供给所述集成电压调节器的电流的测量来计算线路电压损耗;以及通过从由所述功率供应设备提供的输出电压减去所述线路电压损耗来确定第一组件的接收到的电压。在一个示例中,所述方法还包括将指示所述供应电压的信号发送给所述功率供应设备,所述功率供应设备要基于指示所述供应电压的信号来控制所述输出电压。
在一个示例中,所述方法还包括使用指数移动平均算法来计算所述滑动平均值。
实施例可以以代码实现,并且可以存储在其上存储有指令的非暂时性存储介质上,所述非暂时性存储介质可以用于对系统进行编程以执行指令。实施例还可以以数据实现,并且可以存储在非暂时性存储介质上,所述非暂时性存储介质在由至少一个机器使用的情况下使至少一个机器制造至少一个集成电路以执行一个或多个操作。存储介质可以包括但不限于任何类型的盘(包括软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、压缩盘可重写(CD-RW)和磁光盘)、半导体器件(诸如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦除可编程只读存储器(EEPROM))、磁卡或光卡、或适合存储电子指令的任何其他类型的介质。
可设想上述示例的各种组合都是可能的。实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,并且作为代替,其他实施例可以针对用于处理指令的其他类型的装置或者包括指令的一个或多个机器可读介质,所述指令响应于在计算设备上执行使设备执行本文描述的方法和技术中的一个或多个。
本说明书各处对“一个实施例”或“实施例”的参考意指结合所述实施例描述的特定特征、结构或特性被包括在涵盖于本发明之内的至少一个实现中。因此,短语“一个实施例”或“在实施例中”的出现不一定指的是同一个实施例。此外,所述特定特征、结构或特性可以以除了所例示的特定实施例之外的其他合适的形式来构建,并且所有此类形式都可以涵盖在本申请的权利要求之内。如本文中使用的,“响应于”指的是直接因果关系。
虽然关于有限数量的实施例描述了本发明,但是本领域技术人员将从中领会到许多修改和变型。所附权利要求旨在覆盖落入本发明的真实精神和范围内的所有这样的修改和变型。

Claims (19)

1.一种用于控制供应功率的处理器,包括:
多个组件,所述多个组件中的第一组件要接收来自功率供应设备的功率输入;以及
功率控制单元,其要:
确定第一组件的功率输入端子处接收到的电压;
确定第一组件的接收到的电压与第一组件的可靠性目标电压之间的电压差;
基于所述电压差来确定滑动平均值;
确定所述滑动平均值低于第一值;以及
响应于确定了所述滑动平均值低于所述第一值而减小供应电压。
2.根据权利要求1所述的处理器,所述功率控制单元还要:
确定所述滑动平均值高于所述第一值;以及
响应于确定了所述滑动平均值高于第一值而增大所述供应电压。
3.根据权利要求2所述的处理器,其中,所述第一值为零。
4.根据权利要求2所述的处理器,其中,所述第一值是较早的滑动平均值,其中所述较早的滑动平均值是在确定所述滑动平均值之前确定的。
5.根据权利要求1所述的处理器,所述功率控制单元还要:
将指示所述供应电压的信号发送给所述功率供应设备,其中所述功率供应设备要基于指示所述供应电压的信号来控制所述功率输入。
6.根据权利要求1所述的处理器,所述功率控制单元还要:
使用从所述功率供应设备提供给所述功率输入端子的电流的测量来计算线路电压损耗;以及
使用所述线路电压损耗来确定第一组件的接收到的电压。
7.根据权利要求1所述的处理器,其中,第一组件是耦合到所述处理器的第二组件的集成电压调节器。
8.一种用于控制供应功率的方法,包括:
确定包括在处理器中的集成电压调节器的接收到的电压;
确定所述集成电压调节器的接收到的电压与所述集成电压调节器的可靠性目标电压之间的电压差;
基于所述电压差来确定滑动平均值;
确定所述滑动平均值低于阈值;以及
响应于确定了所述滑动平均值低于所述阈值而减小所述功率供应设备的供应电压。
9.根据权利要求8所述的方法,还包括:
确定所述滑动平均值高于阈值;以及
响应于确定了所述滑动平均值高于所述阈值而增大所述功率供应设备的供应电压。
10.根据权利要求8所述的方法,还包括:
确定所述滑动平均值等于阈值;以及
响应于确定了所述滑动平均值等于所述阈值而保持所述功率供应设备的供应电压不变。
11.根据权利要求8所述的方法,还包括:
使用从所述功率供应设备提供给所述集成电压调节器的电流的测量来计算线路电压损耗;以及
通过从由所述功率供应设备提供的输出电压减去所述线路电压损耗来确定第一组件的接收到的电压。
12.根据权利要求11所述的方法,还包括:
将指示所述供应电压的信号发送给所述功率供应设备,所述功率供应设备要基于指示所述供应电压的信号来控制所述输出电压。
13.根据权利要求8所述的方法,还包括:
使用指数移动平均算法来计算所述滑动平均值。
14.一种其上存储有数据的机器可读介质,所述数据如果被至少一个机器使用则使所述至少一个机器构造至少一个集成电路以执行根据权利要求8到13中的任一项所述的方法。
15.一种用于处理指令的装置,其被配置成执行根据权利要求8到13中的任一项所述的方法。
16.一种用于控制供应功率的片上系统(Soc),包括:
集成电压调节器,其要接收来自功率供应设备的功率输入;以及
功率控制逻辑,其要:
确定所述集成电压调节器的功率输入端子处接收到的电压;
确定所述集成电压调节器的接收到的电压与所述集成电压调节器的可靠性目标电压之间的电压差;
基于所述电压差来确定滑动平均值;
确定所述滑动平均值低于第一值;以及
响应于确定了所述滑动平均值低于所述第一值而减小所述功率供应设备的供应电压。
17.根据权利要求16所述的SoC,所述功率控制逻辑还要:
确定所述滑动平均值高于第一值;以及
响应于确定了所述滑动平均值高于第一值而增大所述功率供应设备的供应电压。
18.根据权利要求16所述的SoC,所述功率控制逻辑还要:
使用从所述功率供应设备提供给所述功率输入端子的电流的测量来计算线路电压损耗;以及
使用所述线路电压损耗来确定所述集成电压调节器的接收到的电压。
19.根据权利要求18所述的SoC,所述功率控制逻辑还要:
使用描述所述功率供应设备和所述集成电压调节器之间的路径的电阻的存储数据来计算所述线路电压损耗。
CN201780060567.XA 2016-09-30 2017-09-05 使用滑动平均值的处理器电压控制 Active CN109791427B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/281806 2016-09-30
US15/281,806 US10228755B2 (en) 2016-09-30 2016-09-30 Processor voltage control using running average value
PCT/US2017/050047 WO2018063753A1 (en) 2016-09-30 2017-09-05 Processor voltage control using running average value

Publications (2)

Publication Number Publication Date
CN109791427A CN109791427A (zh) 2019-05-21
CN109791427B true CN109791427B (zh) 2023-09-08

Family

ID=61758001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780060567.XA Active CN109791427B (zh) 2016-09-30 2017-09-05 使用滑动平均值的处理器电压控制

Country Status (4)

Country Link
US (1) US10228755B2 (zh)
CN (1) CN109791427B (zh)
DE (1) DE112017005000T5 (zh)
WO (1) WO2018063753A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11366505B2 (en) * 2019-03-29 2022-06-21 Micron Technology, Inc. Predictive power management
US11157329B2 (en) 2019-07-26 2021-10-26 Intel Corporation Technology for managing per-core performance states
US11435426B2 (en) 2020-01-09 2022-09-06 International Business Machines Corporation Current measurement in power-gated microprocessors
US11886275B2 (en) * 2022-06-21 2024-01-30 Microsoft Technology Licensing, Llc Efficient system on chip power delivery with adaptive voltage headroom control

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104583896A (zh) * 2012-09-17 2015-04-29 英特尔公司 向处理器的异构计算元件分配功率
CN104813283A (zh) * 2012-12-28 2015-07-29 英特尔公司 处理器核保留状态的独立控制

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484108B2 (en) 2005-06-23 2009-01-27 Intel Corporation Enhancing power delivery with transient running average power limits
WO2007148159A1 (en) * 2006-06-22 2007-12-27 Freescale Semiconductor, Inc. A method and device for power management
US8441245B2 (en) * 2010-12-05 2013-05-14 Microsemi Corporation Hysteretic voltage converter with offset voltage correction
US8650423B2 (en) 2011-10-12 2014-02-11 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
WO2015029227A1 (ja) 2013-08-30 2015-03-05 三菱電機株式会社 電圧制御装置および電圧監視機器
US9606558B2 (en) 2014-03-04 2017-03-28 Qualcomm Technologies International. Ltd. Lower power switching linear regulator
JP6285235B2 (ja) 2014-03-25 2018-02-28 ローム株式会社 デジタル制御電源回路の制御回路、制御方法およびそれを用いたデジタル制御電源回路、ならびに電子機器および基地局
WO2015164259A1 (en) * 2014-04-22 2015-10-29 Microsemi Corporation Load balancing reverse power supply
US20160147280A1 (en) * 2014-11-26 2016-05-26 Tessil Thomas Controlling average power limits of a processor
US9874922B2 (en) * 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104583896A (zh) * 2012-09-17 2015-04-29 英特尔公司 向处理器的异构计算元件分配功率
CN104813283A (zh) * 2012-12-28 2015-07-29 英特尔公司 处理器核保留状态的独立控制

Also Published As

Publication number Publication date
WO2018063753A1 (en) 2018-04-05
DE112017005000T5 (de) 2019-06-13
CN109791427A (zh) 2019-05-21
US20180095520A1 (en) 2018-04-05
US10228755B2 (en) 2019-03-12

Similar Documents

Publication Publication Date Title
US20220291732A1 (en) Techniques To Enable Communication Between A Processor And Voltage Regulator
US11481013B2 (en) Multi-level loops for computer processor control
US10379904B2 (en) Controlling a performance state of a processor using a combination of package and thread hint information
US20200310872A1 (en) System, Apparatus And Method For Power License Control Of A Processor
EP3853690A1 (en) System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
CN109791427B (zh) 使用滑动平均值的处理器电压控制
US20180314289A1 (en) Modifying an operating frequency in a processor
CN109661637B (zh) 用于可变功率轨的补偿控制
US11669146B2 (en) System, apparatus and method for responsive autonomous hardware performance state control of a processor
EP3340039A1 (en) Processor prefetch throttling based on short streams
US11016916B2 (en) Generation of processor interrupts using averaged data
CN108694154B (zh) 用于选择数据元素的硬件加速器
US11593544B2 (en) System, apparatus and method for adaptive operating voltage in a field programmable gate array (FPGA)
CN108228484B (zh) 针对处理器中的高速缓存利用的无效读取

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant