CN109564460A - 在处理器中提供用于降级控制信息的接口 - Google Patents
在处理器中提供用于降级控制信息的接口 Download PDFInfo
- Publication number
- CN109564460A CN109564460A CN201780048227.5A CN201780048227A CN109564460A CN 109564460 A CN109564460 A CN 109564460A CN 201780048227 A CN201780048227 A CN 201780048227A CN 109564460 A CN109564460 A CN 109564460A
- Authority
- CN
- China
- Prior art keywords
- processor
- low power
- degradation
- core
- power state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015556 catabolic process Effects 0.000 claims abstract description 152
- 238000006731 degradation reaction Methods 0.000 claims abstract description 152
- 230000000593 degrading effect Effects 0.000 claims abstract description 13
- 238000003860 storage Methods 0.000 claims description 67
- 238000000034 method Methods 0.000 claims description 62
- 230000015654 memory Effects 0.000 claims description 52
- 230000004044 response Effects 0.000 claims description 18
- 230000005611 electricity Effects 0.000 claims description 3
- 241000208340 Araliaceae Species 0.000 claims 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 1
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 1
- 235000008434 ginseng Nutrition 0.000 claims 1
- 238000007726 management method Methods 0.000 description 50
- 238000010586 diagram Methods 0.000 description 44
- 238000004891 communication Methods 0.000 description 36
- 238000013461 design Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 25
- 239000000872 buffer Substances 0.000 description 14
- 229910003460 diamond Inorganic materials 0.000 description 12
- 239000010432 diamond Substances 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 12
- 238000012986 modification Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 239000000725 suspension Substances 0.000 description 10
- 238000000429 assembly Methods 0.000 description 9
- 230000000712 assembly Effects 0.000 description 9
- 238000007667 floating Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000014616 translation Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000004134 energy conservation Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- MPDGHEJMBKOTSU-YKLVYJNSSA-N 18beta-glycyrrhetic acid Chemical compound C([C@H]1C2=CC(=O)[C@H]34)[C@@](C)(C(O)=O)CC[C@]1(C)CC[C@@]2(C)[C@]4(C)CC[C@@H]1[C@]3(C)CC[C@H](O)C1(C)C MPDGHEJMBKOTSU-YKLVYJNSSA-N 0.000 description 1
- 240000001436 Antirrhinum majus Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000004087 circulation Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 229960003720 enoxolone Drugs 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/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/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
在一个实施例中,处理器包括:多个核;功率控制器,包括用于自主降级使多个核中的至少一个核进入第一低功率状态的第一请求以使至少一个核进入第二低功率状态的逻辑,第一低功率状态是比第二低功率状态更深的低功率状态;和接口,用于接收来自系统软件的输入,该输入包括至少一个降级控制参数,其中逻辑用于至少部分地基于至少一个降级控制参数来自主降级第一请求。描述并要求保护其他实施例。
Description
技术领域
实施例涉及系统的功率管理,并且更具体地涉及多核处理器的功率管理。
背景技术
半导体处理和逻辑设计方面的进步已经允许可能存在于集成电路设备上的逻辑量的增加。因此,计算机系统配置已经从系统中的单个或多个集成电路演进到多个硬件线程、多个核、多个设备和/或各个集成电路上的完整系统。此外,随着集成电路密度增长,针对计算系统(从嵌入式系统到服务器)的功率要求也已经逐步升级。此外,软件低效率及其硬件要求也已经导致计算设备能耗的增加。事实上,一些研究表明,计算设备消耗了国家(诸如美利坚合众国)的整体电力供应的相当大的百分比。因此,存在针对与集成电路相关联的能效和节能的至关重要的需要。这些需要将随着服务器、台式计算机、笔记本电脑、超极本™、平板电脑、移动电话、处理器、嵌入式系统等变得甚至更加普及(从包括于典型的计算机、汽车、电视到生物技术)而增加。
附图说明
图1是根据本发明的实施例的系统的一部分的框图。
图2是根据本发明的实施例的处理器的框图。
图3是根据本发明的另一实施例的多域处理器的框图。
图4是包括多个核的处理器的实施例。
图5是根据本发明的一个实施例的处理器核的微架构的框图。
图6是根据另一实施例的处理器核的微架构的框图。
图7是根据又一实施例的处理器核的微架构的框图。
图8是根据又一实施例的处理器核的微架构的框图。
图9是根据本发明的另一实施例的处理器的框图。
图10是根据本发明的实施例的代表性SoC的框图。
图11是根据本发明的实施例的另一示例SoC的框图。
图12是实施例可以与其一起使用的示例系统的框图。
图13是实施例可以与其一起使用的另一示例系统的框图。
图14是代表性计算机系统的框图。
图15是根据本发明的实施例的系统的框图。
图16是图示用于制造执行根据实施例的操作的集成电路的IP核开发系统的框图。
图17是根据本发明的一个实施例的方法的流程图。
图18是根据本发明的另一实施例的方法的流程图。
图19是根据本发明的又一实施例的方法的流程图。
图20是根据本发明的又一实施例的方法的流程图。
图21是根据本发明的实施例的系统的框图。
图22是根据本发明的实施例的处理器的一部分的框图。
图23是指示针对根据本发明的实施例的特定工作负载的示例性能增益的性能图。
图24是图示根据本发明的实施例的降级和未降级阈值的定时图。
具体实施方式
在各种实施例中,处理器可以配置有接口,以接收和使用针对至少某些功率管理控制参数的客户调整。更具体地,实施例提供接口技术以接收和使用降级控制参数。也就是说,处理器可以配置有所谓的自动降级特征,其是一种自主控制技术,其中操作系统(OS)功率状态控制被处理器的功率控制器(包括功率管理固件)否决。虽然这种自主处理器控制针对给定产品被调整,但在不使用实施例的情况下可能存在若干限制,包括:高度取决于特定产品和工作负载的功率管理算法;OS可能具有不可用的某些可配置配置文件;以及想要花费研究和开发努力来调整其特定使用的某些客户无法访问。因此,实施例提供外部接口、到固件和功率管理硬件的内部通信接口、以及外部可调整控制算法,以使得能够实现针对至少某些功率管理特征的改进调整。
当处理器进入更深的空闲状态时,其节省功率。另一方面,这种深度低功率状态引入了性能降级(由于进入和退出延时、比如其高速缓存、转换后备缓冲器(TLB)、分支目标缓冲器(BTB)等的核架构信息的丢失)。深度低功率状态转变也消耗能量来保存和恢复状态。在对能量节省的总体期望的情况下,由于性能降级而以给定功率运行更长时间会增加能耗。这种效果与节省/恢复能量成本一起可能花费比低功率状态所节省的能量更多的能量。因此,更多数量的低功率状态转变(本文通常是Cx转变)导致更高的能量成本和更高的性能影响。存在在其处进入给定的Cx状态导致能量损失的平滑转折点。该平滑转折点取决于工作负载特性(例如,性能降级、高速缓存占用、应用比率、Cx进入/退出简档等)。通常,工作负载行为的特征在于超过平滑转折阈值的高转变速率的突发。因此,不存在“一种设置适合所有”方法。本文的实施例使得基于客户的调整能够增加功率节省和/或性能。
在各种实施例中,提供了外部基本输入/输出系统(BIOS)/OS接口以及从该接口到功率控制电路(包括但不限于固件和硬件状态机)的内部通信接口,以使得能够实现外部可调整控制算法。在实施例中,外部接口使得原始装备制造商(OEM)或操作系统供应商(OSV)能够通过机器特定寄存器(MSR)、存储器映射输入/输出(MMIO)或邮箱接口提供控制参数以使得能够实现对用于执行自动降级的功率控制电路的直接访问。
尽管参考特定集成电路中(诸如计算平台或处理器中)的节能和能效来描述以下实施例,但是其他实施例也适用于其他类型的集成电路和逻辑设备。本文描述的实施例的类似技术和教导可以应用于也可以受益于更好的能效和节能的其他类型的电路或半导体器件。例如,所公开的实施例不限于任何特定类型的计算机系统。也就是说,所公开的实施例可以用于范围为从服务器计算机(例如,塔、机架、刀片、微服务器等)、通信系统、存储系统、任何配置的台式计算机、膝上型电脑、笔记本电脑和平板计算机(包括2:1平板电脑、平板手机等)的许多不同的系统类型中,并且也可以用于诸如手持设备、片上系统(SoC)和嵌入式应用的其他设备中。手持设备的一些示例包括诸如智能电话、网际协议设备、数字相机、个人数字助理(PDA)和手持PC之类的蜂窝电话。嵌入式应用通常可以包括微控制器、数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机、可穿戴设备或可以执行以下教导的功能和操作的任何其他系统。尤其是,实施例可以在诸如移动电话、智能电话和平板手机的具有标准语音功能的移动终端中实现,和/或在诸如许多可穿戴设备、平板电脑、笔记本电脑、台式电脑、微服务器、服务器等的没有标准无线语音功能通信能力的非移动终端中实现。此外,本文描述的装置、方法和系统不限于物理计算设备,还可以涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的,本文描述(无论是参考硬件、固件、软件或其组合)的方法、装置和系统的实施例对于“绿色技术”未来是至关重要的,诸如对于覆盖了US经济的大部分的产品中的节能和能效。
现在参考图1,示出的是根据本发明的实施例的系统的一部分的框图。如图1所示,系统100可以包括各种组件,包括处理器110,如所示,它是多核处理器。处理器110可以经由外部电压调节器160耦合到电源150,所述外部电压调节器160可以执行第一电压转换以向处理器110提供初级调节电压Vreg。
如所见,处理器110可以是包括多个核120a-120n的单个管芯(die)处理器。此外,每个核可以与集成电压调节器(IVR)125a-125n相关联,每个核接收初级调节电压并生成操作电压以提供给与IVR相关联的处理器的一个或多个代理。因此,可以提供IVR实现以允许对每个单独核的电压并因而功率和性能的细粒度控制。因此,每个核可以在独立的电压和频率处操作,从而实现了大的灵活性并提供了用于平衡功耗与性能的广泛机会。在一些实施例中,使用多个IVR使得能够将组件分组成单独的功率平面,使得功率由IVR调节并供应给组中的仅那些组件。在功率管理期间,当处理器被置于某个低功率状态时,一个IVR的给定功率平面可以掉电或断电,而另一个IVR的另一个功率平面保持活动或完全供电。类似地,核120可以包括诸如一个或多个锁相环(PLL)的独立的时钟生成电路或与之相关联,以独立地控制每个核120的操作频率。
仍然参考图1,处理器内可以存在附加组件,包括输入/输出接口(IF)132、另一接口134和集成存储器控制器(IMC)136。如所见,这些组件中的每个可以由另一个集成电压调节器125x供电。在一个实施例中,接口132可以实现用于Intel(因特尔)®快速路径互连(QPI)互连的操作,其提供包括包含物理层、链路层和协议层的多个层的高速缓存一致协议中的点对点(PtP)链路。继而,接口134可以经由外围组件互连快速(PCIeTM)协议进行通信。
还示出了功率控制单元(PCU)138,其可以包括用于执行关于处理器110的功率管理操作的包括硬件、软件和/或固件的电路。如所见,PCU 138经由数字接口162向外部电压调节器160提供控制信息以使电压调节器生成适当的调节电压。PCU 138还经由另一数字接口163向IVR 125提供控制信息,以控制所生成的操作电压(或以使对应的IVR在低功率模式下被禁用)。在各种实施例中,PCU 138可以包括各种功率管理逻辑单元以执行基于硬件的功率管理。这样的功率管理可以完全是处理器控制的(例如,由各种处理器硬件,并且其可以由工作负载和/或功率、热或其他处理器约束触发)和/或功率管理可以响应于外部源(诸如,平台或功率管理源或系统软件)来执行。PCU 138可以被配置成覆写由系统软件(诸如OS和/或BIOS)发起的功率管理请求,以使得能够在接收到导致从给定低功率状态的不期望退出的大量低功率状态中断事件时实现改进的性能。并且此外,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更深的低功率状态,等等)。注意,使用本文的基于降级的技术,可以至少部分地基于经由接口提供的客户调整信息来覆写来自OS的C状态请求,如本文所述。
应理解,可以在不同实施例中单独地或组合地使用许多不同类型的功率管理技术。作为代表性示例,功率控制器可以通过某种形式的动态电压频率缩放(DVFS)来控制要被功率管理的处理器,其中在某些情况下可以动态地控制一个或多个核或其他处理器逻辑的操作电压和/或操作频率以降低功耗。在示例中,可以使用可从加利福尼亚州圣克拉拉市的Intel公司获得的增强型Intel SpeedStepTM技术来执行DVFS,以在最低功耗级别处提供最优性能。在另一个示例中,可以使用Intel 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的实现是关于诸如Intel®x86指令集架构(ISA)的无序机器,但是本发明的范围不限于此方面。也就是说,其他实施例可以在有序处理器中实现、在精简指令集计算(RISC)处理器(诸如基于ARM的处理器)中实现或在可以经由模拟引擎和相关联的逻辑电路模拟不同ISA的指令和操作的另一类型ISA的处理器中实现。
现在参考图6,示出的是根据另一实施例的处理器核的微架构的框图。在图6的实施例中,核600可以是不同微架构的低功率核,诸如基于Intel®AtomTM的处理器,其具有被设计为降低功耗的相对有限的管线深度。如所见,核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 Holdings,LTD.获得的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可以是基于Intel®Architecture CoreTM的处理器(诸如i3、i5、i7)或可从Intel公司获得的另一个这样的处理器。然而,诸如可从加利福尼亚州森尼维耳市Advanced Micro Devices,Inc.(AMD)获得的其他低功率处理器、来自ARM Holdings,Ltd.或其许可证持有者的基于ARM的设计、或来自加利福尼亚州森尼维耳市MIPSTechnologies,Inc.或其许可证持有者或采用者的基于MIPS的设计可以作为代替存在于其他实施例中,诸如Apple A7处理器、Qualcomm Snapdragon处理器或Texas InstrumentsOMAP处理器。这样的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可以使用非对称或不同类型的核来实现,非对称或不同类型的核诸如更高功率和/或低功率核(例如,无序核和有序核)的组合。在不同的实施例中,这些核可以基于Intel®ArchitectureTM核设计或ARM架构设计。在又其他实施例中,可以在给定的SoC中实现Intel和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适合并入到各种各样的便携式和其他设备(诸如智能电话、平板计算机、智能TV等)中。在所示的示例中,SoC 1100包括中央处理器单元(CPU)域1110。在实施例中,多个单独的处理器核可以存在于CPU域1110中。作为一个示例,CPU域1110可以是具有四个多线程核的四核处理器。这样的处理器可以是同构或异构处理器,例如低功率和高功率处理器核的混合。
继而,提供GPU域1120以在一个或多个GPU中执行高级图形处理以处理图形和计算API。除了在多媒体指令的执行期间可能发生的高级计算之外,DSP单元1130还可以提供一个或多个低功率DSP,以用于处理诸如音乐回放、音频/视频等之类的低功率多媒体应用。继而,通信单元1140可以包括各种组件以经由各种无线协议提供连接性,各种无线协议诸如蜂窝通信(包括3G/4G LTE)、无线局域协议,诸如蓝牙(Bluetooth)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可以是移动低功率系统,诸如平板计算机、2:1平板电脑、平板手机或其他可变换或独立的平板电脑系统。如所图示的,存在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,示出的是代表性计算机系统的框图,代表性计算机系统诸如笔记本电脑、超极本(Ultrabook)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核设计的集成电路。构造的集成电路可以被配置成执行根据本文描述的至少一个实施例的操作。
在实施例中,当针对C6或C3状态的OS请求将被功率控制电路自主地否决并且作为代替被降级到较浅的低功率状态(例如,C1状态代替C3请求或者C1或C3状态代替C6请求)时,发生自动降级流控制。该自主流控制还控制当前降级到C1或C3何时可以“非降级(un-demote)”回到原始OS目标C状态C3或C6。该控制流设法识别空闲状态中止事件的突发,并且在频繁中止事件的情况下,激活降级控制。相反,如果在降级事件之后,从空闲状态中止的次数远低于导致降级的级别,则发生非降级。控制技术的实施例还可以忽略空闲中止的突发的旧历史,以便在降级不再适当时避免降级。
注意,在利用或不利用OS辅助的情况下可以发生非降级并且非降级可以启用原始目标C状态。利用OS辅助,硬件创建意外中止并回到活动状态,其中假设没有未决的工作并且OS将立即重新进入空闲状态。在没有由OS辅助的情况下,处理器硬件可以在不唤醒OS的情况下实现从C1或C3到C3或C6的升级。
在实施例中,降级控制可以至少部分地基于每个降级状态目标每个核的降级计数器。在实施例中,中止事件导致递减到给定计数器(直到某个定义的最大值)。生成降级事件的每个时间间隔的中止的级别(例如,每秒的中止的次数(中止/秒))、实现非降级事件和/或历史清理的中止/秒的量的控制可以由根据时间的降级的计数器清理的斜率控制。也就是说,对于给定的时间段,降级计数器递增恒定值(例如,递增1)。随着时间段减少,可以创建降级的中止/秒的数量可能更高,并且在中止事件突发之后非降级更快发生并且历史很快被清除。
对于更长的时间段,当降级计数器递增时,它将具有相反的效果并且可以生成降级事件的中止/秒的量可能更低,并且在中止突发事件之后发生的非降级事件和忘记中止事件的历史花费更多时间。在实施例中,用于不同空闲状态的不同时间值可以用于在处理器处于降级事件时递增计数器(对于非降级情况),或者单个斜率值可以用于所有不同空闲状态。
基于客户控制参数,控制从C6或C3到C1或从C3到C1(例如)的降级流的选项可以至少部分地基于降级计数器递增的时间量。以此方式,可以通过软件来控制创建降级、非降级和历史清除的空闲中止/秒的级别,并由OEM或OSV重新调整以覆写由处理器制造商设置的该斜率值的通用设置。注意,在不同的实施例中,该斜率值(和其他降级控制参数)可以被定义为单个值,或者每个功率状态(C0、C1等)可以被不同地调整。
现在参考图17,示出的是根据本发明的一个实施例的方法的流程图。更具体地,图17的方法1700是用于提供客户接口以使得特定降级控制参数能够经由与诸如OS或BIOS之类的给定系统软件的交互从诸如OEM或OSV的客户被提供的方法。在一个实施例中,方法1700可以通过硬件、软件和/或固件的适当组合(诸如硬件功率控制电路)执行,硬件功率控制电路本身可以实现为一个或多个微控制器或其他硬件控制逻辑。
如所图示的,方法1700通过接收针对客户提供一个或多个降级控制参数的请求而开始(块1710)。作为示例,可以经由OEM BIOS、OSV OS例程中的一个或多个或以另一方式接收请求。接下来,确定处理器是否处于受保护模式(菱形块1720)。应理解该受保护模式确定可以是给定OS或BIOS具有对处理器的控制并因此以特权模式(例如,环0)操作。在其他情况下,受保护模式的该确定可以是可选的。如果确定处理器不处于适当的受保护模式,则控制转到块1730,其中在执行该可选安全检查的实施例中可以防止经由该接口的客户通信。
否则,控制转到块1740,其中可以启用接口以用于降级控制参数的客户通信。应理解该接口可以采取不同的形式,包括通用邮箱接口、一个或多个MSR、MMIO等中的至少一个。接下来,在块1750处,可以经由该接口接收一个或多个降级控制参数。应理解这些降级控制参数可能是客户调整的值。如本文所述,在不同的实施例中,除了潜在的其他的这种参数之外,客户可以特别为多个降级阈值、斜率参数中的一个或多个提供调整值。此后,在块1760处,这些一个或多个降级控制参数可以存储在配置存储装置中。在一个实施例中,该配置存储装置可以存在于PCU内或与PCU相关联,并且可以是给定的非易失性存储装置。在其他情况下,这些值可以存储在MSR、MMIO或其他配置寄存器中。应理解虽然在图17的实施例中以这种高级别示出,但是许多变型和替代方案是可能的。
现在参考图18,示出的是根据本发明的另一个实施例的方法的流程图。如图18所示,方法1800可以由例如硬件功率控制电路执行,以至少部分地基于客户提供的降级控制参数来更新一个或多个降级计数器。如所图示的,方法1800开始于确定是否在至少一个核处于低功率状态时接收到中止事件(菱形块1810)。如果是,则控制转到块1820,其中可以递减降级计数器。应理解该降级计数器可以是多个这样的降级计数器中的一个,其中每个降级计数器可以与特定线程、低功率状态、核或其任何组合相关联。更具体地,在块1820中,该降级计数器可以根据恒定值递减,并且只要降级计数器的值不在下限阈值(下限阈值在一个实施例中可以是可能地由客户提供的降级控制参数)处,该降级计数器就可以执行。作为一个示例,该递减量可以以恒定值1,尽管其他恒定值也是可能的。此外,应理解,虽然在方法1800中,常规是针对在给定的低功率状态下时响应于接收到中止事件的递减,但是在其他实施例中,可以作为代替执行对降级计数器的另一种类型的更新,诸如递增等。
仍然参考图18,如果作为代替确定没有接收到中止事件,则控制转到菱形块1830以确定给定时间段是否已经期满(菱形块1830)。应理解该时间段可以是低功率状态驻留的给定持续时间,例如10微秒(μs)。注意,空闲时间的该持续时间也可以是可能由客户提供的降级控制参数。如果已经确定这样的时间段已经期满,则控制转到块1840,其中可以递增降级计数器。在图18的实施例中,该增量可以根据斜率值,该斜率值可以是客户提供的降级控制参数。作为示例,客户可以选择通过将降级操作限制到仅在接收到过量的传入中止事件时的情况来以有利于更高性能的方式控制降级操作的激进性。在这种情况下,然后,该斜率参数可以被设置在相对高的级别处(例如,在对应于每秒5000到4000次中止的约200-250毫秒之间),以使降级计数器快速或激进地达到其上限阈值(使得发生非降级)。应理解虽然在图18的实施例中以这种高级别示出,但是许多变型和替代方案是可能的。
现在参考图19,示出的是根据本发明的又一实施例的方法的流程图。如图19所示,可以由功率控制器的降级功率控制电路执行的方法1900可以用于控制进入降级操作并处理低功率状态进入和退出。如所图示的,方法1900开始于接收低功率状态请求(块1910)。作为示例,假设该低功率状态请求是对给定C状态(诸如核级C6或C7状态中的给定的一个)的OS请求。接下来,确定(例如,与所请求的特定C状态相关联的)降级计数器是否处于降级阈值级别处(菱形块1920)。注意,该降级阈值级别可以是客户提供的降级控制参数,以控制进入降级操作的激进性。如果降级计数器不在降级阈值级别处,则控制转到块1930,其中可以使与低功率状态请求相关联的一个或多个核进入所请求的低功率状态。例如,在采取适当的低功率状态进入动作(诸如在适当的存储装置中保存上下文、禁用某些核电路等)之后,PCU可以向一个或多个核发送低功率状态控制信号以使它们进入该请求的低功率状态。
仍然参考图19,作为代替,如果确定降级计数器处于降级阈值级别,则控制转到块1940,其中可以激活降级操作。为了激活降级操作,可以设置降级启用指示符以指示降级操作是活动的。这样,在块1950处,例如由于处理器正在接收的传入中止事件的量,降级控制电路可以使一个或多个核进入较浅的低功率状态。作为示例,假设请求的低功率状态是核级C6或C7状态,则降级控制电路可以使一个或多个核进入较浅的低功率状态,诸如C1或C3状态。
仍然参考图19,从块1930和1950两者,控制转到菱形块1960以确定在一个或多个核处于低功率状态时是否接收到中止事件。如果否,则控制转到菱形块1970以确定是否将这样的核保持在低功率状态下。该确定可以基于例如指示用于所请求的低功率状态的时间长度的持续时间值。如果基于菱形块1960和1970中的一个的确定而确定退出低功率状态,则控制转到块1980,其中例如通过上下文的重新建立、各种核电路的启用等,可以使一个或多个核退出低功率状态并因此返回进入到活动状态。应理解虽然在图19实施例中以这种高级别示出,但是许多变型和替代方案是可能的。
现在参考图20,示出的是根据本发明的又一实施例的方法的流程图。如图20所示,可以通过功率控制器的降级功率控制电路执行的方法2000可以用于控制退出降级操作并处理低功率状态进入和退出。如所图示的,方法2000开始于接收低功率状态请求(例如对给定C状态的OS请求)(块2010)。接下来,确定降级计数器是否处于非降级阈值级别处(菱形块2020)。注意,在实施例中,该非降级阈值级别可以是客户提供的降级控制参数。如果降级计数器不处于非降级阈值级别处(但继续高于降级阈值级别),则控制转到块2030,其中可以在此降级操作状态下使与低功率状态请求相关联的一个或多个核进入较浅的低功率状态。
仍然参考图20,作为代替,如果确定降级计数器处于非降级阈值级别处,则控制转到块2040,其中可以例如通过重置降级启用指示符来去激活降级操作。这样,在块2050处,降级控制电路可以使一个或多个核进入所请求的低功率状态。然后,从块2030和2050两者,控制转到菱形块2060以确定在一个或多个核处于低功率状态时是否接收到中止事件。如果否,则控制转到菱形块2070以确定是否将这样的核保持在低功率状态下。如果基于菱形块2060和2070中的一个的确定而确定退出低功率状态,则控制转到块2080,其中可以使一个或多个核退出低功率状态并返回进入到活动状态。应理解虽然在图20实施例中以这种高级别示出,但是许多变型和替代方案是可能的。
现在参考图21,示出的是根据本发明的实施例的系统的框图。更具体地,示出了系统2100的一部分,包括可以是多核处理器或任何其他类型的SoC的处理器2110、被耦合以向处理器2110提供一个或多个调节电压的电压调节器2160、以及可以是诸如DRAM的系统存储器的存储装置2170。
如所图示的,为了提供客户接口以接收如本文所述的配置信息(即降级控制参数信息),接口2165将处理器2110耦合到(一个或多个)存储装置2170。应理解接口2165可以是任何类型的互连或其他接口机制。作为示例,接口的部分可以在处理器2110和(一个或多个)存储装置2170中的一个或多个的内部。更进一步,部分可以被实现为例如将处理器2110和(一个或多个)存储装置2170耦合在一起的电路板上的迹线或其他互连。
如所图示的,处理器2110包括多个核21151-2115n,每个核可以被独立地控制以在一个或多个不同的P状态和/或C状态下操作。为此,核2115(通常)耦合到功率控制单元2120。在实施例中,PCU 2120可以执行各种功率管理技术,包括从OS或其他系统软件接收的C状态请求的自主降级控制,以及以使得能够接收和使用如本文所述的客户提供的降级控制参数信息。在所示实施例中,PCU 2120包括功率控制电路2122,其可以执行各种功率管理活动。更进一步,PCU 2120包括C状态控制器2124,C状态控制器2124响应于从功率控制电路2120接收的控制信息可以例如通过控制时钟生成和内部电压调节器(IVR)电路(通常为块2140)中的一个或多个来控制不同核的活动(和性能)状态。
仍然参考图21,处理器2110还包括配置存储装置2135,其可以存储用于处理器的操作和功率管理操作的各种配置信息,包括本文描述的降级控制。为此,例如,BIOS 2172和OS 2175中的一个或多个可以经由接口2165提供降级控制参数信息,以用于存储到配置存储装置2135中。
在一个实施例中,可以实现通用邮箱接口以使得能够接收和递送该信息到配置存储装置2135中。更具体地,如图21所示,电路2130可以包括MSR/MMIO和/或邮箱接口中的一个或多个以使得能够接收该信息并将其提供给PCU 2120以使得其能够如本文所述那样存储和使用。应理解虽然在图21的实施例中以这种高级别示出,但是许多变型和替代方案是可能的。
现在参考图22,示出的是根据本发明的实施例的处理器的一部分的框图。更具体地,处理器2100'示出了关于图21的处理器2110的进一步细节。更具体地,图22示出了PCU2120的进一步细节。如进一步所图示的,PCU 2120还包括斜率控制器2126和比较器2128。在本文描述的实施例中,斜率控制器2126可以接收与斜率参数对应的降级控制参数信息,以控制自动降级控制的激进性。
如所见的,斜率控制器2126从功率控制电路2122接收控制信号,更具体地,“向上”信号和“向下”信号。这些信号可以由功率控制逻辑响应于中止事件和/或低功率状态持续时间来提供,以引起降级计数器的更新(如本文所示,可以在斜率控制器2126内提供一组降级计数器2127)。为此,当在给定的C状态下已经发生了给定持续时间而没有接收到中止事件时接收到向上信号以指示递增量更新时,斜率控制器2126可以以斜率参数所指示的量(即根据斜率参数值的递增量)引起向对应的降级计数器2127的计数更新。作为代替,当在指示的核处于低功率状态时响应于中止事件而接收到向下信号时,斜率控制器2126可以根据恒定值(例如,递减量1)引起向对应的降级计数器2127的计数更新。
如图22中进一步所图示的,可以经由接口电路2130向比较器2128提供阈值信息。继而,比较器2128可以被配置成将对应的降级计数器值与这些多个阈值(例如,降级计数阈值和非降级计数阈值)进行比较。如果给定的降级计数器具有大于对应的降级阈值的值,则输出降级信号,降级信号可以被提供给功率控制电路2122以(诸如通过设置控制指示符)指示要激活降级操作。作为代替,当给定降级计数器的值达到对应的非降级计数器阈值时,发生非降级。应理解虽然在图22中以这种高级别示出,但是许多变型和替代方案是可能的。
现在参考图23,图示的是通过提供由本文描述的接口技术实现的基于客户的降级控制参数调整来指示针对特定工作负载的示例性能增益的性能图2300。如图23所示,Y轴指示当可编程阈值通过客户调整而变化时的性能增益。注意,图2300的X轴的可编程阈值提供了对许多中止事件的斜率参数的量度。因此,取决于(至少)斜率配置参数的客户调整和工作负载,可以通过使自动降级操作更激进地启用以使处理器处于较浅的低功率状态来实现大的性能增益,从而实现减少的退出延时,继而增加性能。
如图23所见,可以实现对一些工作负载的高达63%的性能改进(或者更好地为C状态进入施加约60%更少的性能惩罚)。在没有本文描述的实施例的情况下,由于性能改进而增加的运行时间可以转变为高达38%的能量损失。
现在参考图24,示出的是图示了Y轴上的降级和非降级阈值(分别为T1和T2)的定时图2400。继而,X轴示出对斜率配置参数的动态更新(在时刻2410处图示)。如所见,在该动态改变为斜率值之前的窗口2420中的处理器操作期间,在给定斜率参数的第一值的情况下激进地应用非降级。(当计数器值超过T1时)从事降级操作后的这种快速非降级使处理器更容易进入更深的低功率状态。
相比而言,在时间2410处的斜率改变之后,窗口2430期间的处理器操作提供在发生非降级(当这样的降级计数器到达非降级阈值T2时)之前在降级计数器超过第一阈值(T1)之后发生的长得多的时间段。当然,其他图示是可能的。如图24所示,当设置较不激进的斜率时,发生较慢的事件计数,从而导致较不激进的升级/降级。因此,实施例使得能够实现针对OSV和OEM的更好的能效。同样使用实施例,还可以发生对降级控制参数的制造后更新。实施例还可以更好地解决客户特定的工作负载,诸如具有良好定义的工作负载特性的服务器和数据中心,并且还可以更好地使得OEM能够允许针对特定类或应用的用户体验和调整的偏好。
以下示例涉及另外的实施例。
在一个示例中,处理器包括:多个核;功率控制器,包括用于自主降级使多个核中的至少一个核进入第一低功率状态的请求以使至少一个核进入第二低功率状态的逻辑,所述第一低功率状态是比所述第二低功率状态更深的低功率状态;和接口,用于接收来自系统软件的输入,所述输入包括至少一个降级控制参数,其中所述逻辑用于至少部分地基于至少一个降级控制参数来自主降级所述请求。
在示例中,接口包括邮箱接口、机器特定寄存器和存储器映射输入/输出存储装置中的至少一个,以从系统软件接收至少一个降级控制参数。
在示例中,系统软件包括操作系统和基本输入/输出系统中的至少一个。
在示例中,系统软件用于在第一工作负载要在至少一个核上执行时提供至少一个降级控制参数的第一值,并在第二工作负载要在至少一个核上执行时提供至少一个降级控制参数的第二值。
在示例中,至少一个降级控制参数包括斜率参数。
在示例中,该逻辑用于至少部分地基于降级计数器的值来引起自主降级。
在示例中,该逻辑用于在至少一个核已经在第一持续时间内处于给定的低功率状态时至少部分地基于斜率参数来更新降级计数器。
在示例中,该逻辑用于响应于中止事件根据与响应于给定低功率状态下的第一持续时间的更新不同的尺度来进一步更新降级计数器。
在示例中,至少一个降级控制参数包括降级阈值。
在示例中,该逻辑用于基于降级计数器的值与降级阈值的比较来引起自主降级。
在示例中,功率控制器用于当在特权模式下接收到至少一个降级控制参数时使得至少一个降级控制参数能够存储在配置存储装置中。
在示例中,至少一个降级控制参数包括对自主降级的客户调整,所述客户调整不同于由处理器的制造商存储在处理器的非易失性存储装置中的对自主降级的调整。
注意,可以使用各种装置来实现上述处理器。
在示例中,处理器包括并入在用户设备具有触摸功能的设备中的SoC。
在另一示例中,系统包括显示器和存储器,并且包括以上示例中的一个或多个的处理器。
在又一示例中,方法包括:在处理器的功率控制逻辑中经由接口从系统软件接收至少一个降级控制参数,所述至少一个降级控制参数包括对低功率状态请求的自主降级的调整;将至少一个降级控制参数存储在与功率控制逻辑相关联的存储装置中;以及至少部分地基于至少一个降级控制参数来使处理器的至少一个核进入第一低功率状态,所述第一低功率状态不同于所请求的低功率状态。
在示例中,该方法还包括:当至少一个核处于第一低功率状态时基于中止事件的数量来更新计数器;以及基于至少一个核处于第一低功率状态的一个或多个持续时间来更新计数器。
在示例中,该方法还包括:基于根据与至少一个降级控制参数对应的斜率参数的一个或多个持续时间来更新计数器;以及基于根据恒定值的中止事件的数量来更新计数器。
在示例中,该方法还包括:将计数器的值与第一阈值进行比较;基于所述比较的第一结果使至少一个核进入所请求的低功率状态;以及基于所述比较的第二结果使至少一个核进入第一低功率状态。
在示例中,该方法还包括:当第一工作负载在处理器上执行时,接收具有第一控制值的至少一个降级控制参数;以及当第二工作负载在处理器上执行时,接收具有第二控制值的至少一个降级控制参数。
在另一示例中,包括指令的计算机可读介质用于执行上述示例中的任何一个的方法。
在另一示例中,包括数据的计算机可读介质将要由至少一个机器使用来构造至少一个集成电路以执行上述示例中的任何一个的方法。
在另一示例中,装置包括用于执行上述示例中的任何一个的方法的部件。
在又一示例中,系统包括:处理器,具有多个核和功率控制器,其用于经由与系统软件的接口接收对至少一个降级控制参数的调整,其中功率控制器用于至少部分地基于至少一个降级控制参数来使多个核中的至少一个核响应于对第二低功率状态的请求而进入第一低功率状态,第二低功率状态是比第一低功率状态更深的低功率状态;电压调节器,用于向处理器提供至少一个电压,其中功率控制器用于控制至少一个电压的电平;以及存储系统软件的存储装置,其中系统软件包括包含至少一个降级控制参数的配置信息。
在示例中,接口包括邮箱接口、机器特定寄存器和存储器映射输入/输出存储装置中的至少一个,以从系统软件接收至少一个降级控制参数,其中所述调整包括用于控制系统软件低功率状态请求的自主覆写的激进性的客户调整。
在示例中,功率控制器用于至少部分地基于计数器的值来自主地覆写系统软件低功率状态请求,其中所述计数器要在至少一个核已经在第一持续时间内处于第二低功率状态下时至少部分地基于至少一个降级控制参数在第一方向上更新,并且响应于中止事件根据与第一方向更新不同的尺度在第二方向上更新。
在又一示例中,装置包括:用于执行指令的多个核部件;第一部件,用于自主降级使多个核部件中的至少一个核部件进入第一低功率状态的请求以使至少一个核部件进入第二低功率状态,所述第一低功率状态是比所述第二低功率状态更深的低功率状态;和接口部件,用于接收来自系统软件的输入,所述输入包括至少一个降级控制参数,其中所述第一部件用于至少部分地基于至少一个降级控制参数来自主降级所述请求。
在示例中,接口部件包括邮箱接口、机器特定寄存器和存储器映射输入/输出存储装置中的至少一个,以从系统软件接收至少一个降级控制参数。
在示例中,系统软件用于在第一工作负载要在至少一个核部件上执行时提供至少一个降级控制参数的第一值,并在第二工作负载要在至少一个核部件上执行时提供至少一个降级控制参数的第二值。
在示例中,第一部件用于至少部分地基于降级计数器的值来引起自主降级,降级计数器要在至少一个核部件已经在第一持续时间内处于给定的低功率状态时至少部分地基于斜率参数在第一方向上更新,并且响应于中止事件根据与响应于给定低功率状态下的第一持续时间的更新不同的尺度来在第二方向上更新。
应理解上述示例的各种组合是可能的。
注意,术语“电路”和“电路系统”在本文中可互换使用。如本文所使用的,这些术语和术语“逻辑”用于单独或以任何组合指代模拟电路、数字电路、硬连线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路和/或任何其他类型的物理硬件组件。实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,并且作为代替,其他实施例可以针对用于处理指令的其他类型的装置或者包括指令的一个或多个机器可读介质,所述指令响应于在计算设备上执行使设备执行本文描述的方法和技术中的一个或多个。
实施例可以以代码实现,并且可以存储在其上存储有指令的非暂时性存储介质上,所述非暂时性存储介质可以用于对系统进行编程以执行指令。实施例还可以以数据实现,并且可以存储在非暂时性存储介质上,所述非暂时性存储介质在由至少一个机器使用的情况下使至少一个机器制造至少一个集成电路以执行一个或多个操作。再又实施例可以以包括信息的计算机可读存储介质实现,所述计算机可读存储介质在被制造到SoC或其他处理器中时用于将SoC或其他处理器配置成执行一个或多个操作。存储介质可以包括但不限于任何类型的盘(包括软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、压缩盘可重写(CD-RW)和磁光盘)、半导体器件(诸如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦除可编程只读存储器(EEPROM))、磁卡或光卡、或适合存储电子指令的任何其他类型的介质。
虽然已经关于有限数量的实施例描述了本发明,但是本领域技术人员将从中领会到许多修改和变型。所附权利要求旨在覆盖落入本发明的真实精神和范围内的所有这样的修改和变型。
Claims (25)
1.一种处理器,包括:
多个核;
功率控制器,包括用于自主降级使多个核中的至少一个核进入第一低功率状态的请求以使至少一个核进入第二低功率状态的逻辑,所述第一低功率状态是比所述第二低功率状态更深的低功率状态;和
接口,用于接收来自系统软件的输入,所述输入包括至少一个降级控制参数,其中所述逻辑用于至少部分地基于至少一个降级控制参数来自主降级所述请求。
2.根据权利要求1所述的处理器,其中,所述接口包括邮箱接口、机器特定寄存器和存储器映射输入/输出存储装置中的至少一个,以从系统软件接收至少一个降级控制参数。
3.根据权利要求1所述的处理器,其中,所述系统软件包括操作系统和基本输入/输出系统中的至少一个。
4.根据权利要求3所述的处理器,其中,所述系统软件用于在第一工作负载要在至少一个核上执行时提供至少一个降级控制参数的第一值,并在第二工作负载要在至少一个核上执行时提供至少一个降级控制参数的第二值。
5.根据权利要求1所述的处理器,其中,至少一个降级控制参数包括斜率参数。
6.根据权利要求5所述的处理器,其中,所述逻辑用于至少部分地基于降级计数器的值来引起自主降级。
7.根据权利要求6所述的处理器,其中,所述逻辑用于在至少一个核已经在第一持续时间内处于给定的低功率状态时至少部分地基于斜率参数来更新降级计数器。
8.根据权利要求7所述的处理器,其中,所述逻辑用于响应于中止事件根据与响应于给定低功率状态下的第一持续时间的更新不同的尺度来进一步更新降级计数器。
9.根据权利要求6所述的处理器,其中,至少一个降级控制参数包括降级阈值。
10.根据权利要求9所述的处理器,其中,所述逻辑用于基于降级计数器的值与降级阈值的比较来引起自主降级。
11.根据权利要求1所述的处理器,其中,功率控制器用于当在特权模式下接收到至少一个降级控制参数时使得至少一个降级控制参数能够存储在配置存储装置中。
12.根据权利要求1所述的处理器,其中,至少一个降级控制参数包括对自主降级的客户调整,所述客户调整不同于由处理器的制造商存储在处理器的非易失性存储装置中的对自主降级的调整。
13.一种方法,包括:
在处理器的功率控制逻辑中经由接口从系统软件接收至少一个降级控制参数,所述至少一个降级控制参数包括对低功率状态请求的自主降级的调整;
将至少一个降级控制参数存储在与功率控制逻辑相关联的存储装置中;以及
至少部分地基于至少一个降级控制参数来使处理器的至少一个核进入第一低功率状态,所述第一低功率状态不同于所请求的低功率状态。
14.根据权利要求13所述的方法,还包括:
当至少一个核处于第一低功率状态时基于中止事件的数量来更新计数器;以及
基于至少一个核处于第一低功率状态的一个或多个持续时间来更新计数器。
15.根据权利要求14所述的方法,还包括:
基于根据与至少一个降级控制参数对应的斜率参数的一个或多个持续时间来更新计数器;以及
基于根据恒定值的中止事件的数量来更新计数器。
16.根据权利要求14所述的方法,还包括:
将计数器的值与第一阈值进行比较;
基于所述比较的第一结果使至少一个核进入所请求的低功率状态;以及
基于所述比较的第二结果使至少一个核进入第一低功率状态。
17.根据权利要求13所述的方法,还包括:
当第一工作负载在处理器上执行时,接收具有第一控制值的至少一个降级控制参数;以及
当第二工作负载在处理器上执行时,接收具有第二控制值的至少一个降级控制参数。
18.一种包括计算机可读指令的计算机可读存储介质,所述指令当被执行时实现根据权利要求13至17中任一项所述的方法。
19.一种装置,包括用于执行根据权利要求13至17中任一项所述的方法。
20.一种系统,包括:
处理器,具有多个核和功率控制器,其用于经由与系统软件的接口接收对至少一个降级控制参数的调整,其中功率控制器用于至少部分地基于至少一个降级控制参数响应于对第二低功率状态的请求而使多个核中的至少一个核进入第一低功率状态,第二低功率状态是比第一低功率状态更深的低功率状态;
电压调节器,用于向处理器提供至少一个电压,其中功率控制器用于控制至少一个电压的电平;以及
存储系统软件的存储装置,其中系统软件包括包含至少一个降级控制参数的配置信息。
21.根据权利要求20所述的系统,其中所述接口包括邮箱接口、机器特定寄存器和存储器映射输入/输出存储装置中的至少一个,以从系统软件接收至少一个降级控制参数,其中所述调整包括用于控制系统软件低功率状态请求的自主覆写的激进性的客户调整。
22.根据权利要求20所述的系统,其中功率控制器用于至少部分地基于计数器的值来自主地覆写系统软件低功率状态请求,其中所述计数器要在至少一个核已经在第一持续时间内处于第二低功率状态下时至少部分地基于至少一个降级控制参数在第一方向上更新,并且响应于中止事件根据与第一方向更新不同的尺度在第二方向上更新。
23.一种装置,包括:
用于执行指令的多个核部件;
第一部件,用于自主降级使多个核部件中的至少一个核部件进入第一低功率状态的请求以使至少一个核部件进入第二低功率状态,所述第一低功率状态是比所述第二低功率状态更深的低功率状态;和
接口部件,用于接收来自系统软件的输入,所述输入包括至少一个降级控制参数,其中所述第一部件用于至少部分地基于至少一个降级控制参数来自主降级所述请求。
24.根据权利要求23所述的装置,其中,所述接口部件包括邮箱接口、机器特定寄存器和存储器映射输入/输出存储装置中的至少一个,以从系统软件接收至少一个降级控制参数。
25.根据权利要求23所述的装置,其中,所述第一部件用于至少部分地基于降级计数器的值来引起自主降级,降级计数器要在至少一个核部件已经在第一持续时间内处于给定的低功率状态时至少部分地基于斜率参数在第一方向上更新,并且响应于中止事件根据与响应于给定低功率状态下的第一持续时间的更新不同的尺度来在第二方向上更新。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/227040 | 2016-08-03 | ||
US15/227,040 US10379596B2 (en) | 2016-08-03 | 2016-08-03 | Providing an interface for demotion control information in a processor |
PCT/US2017/042999 WO2018026527A1 (en) | 2016-08-03 | 2017-07-20 | Providing an interface for demotion control information in a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109564460A true CN109564460A (zh) | 2019-04-02 |
CN109564460B CN109564460B (zh) | 2024-02-02 |
Family
ID=61072020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780048227.5A Active CN109564460B (zh) | 2016-08-03 | 2017-07-20 | 在处理器中提供用于降级控制信息的接口 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10379596B2 (zh) |
CN (1) | CN109564460B (zh) |
DE (1) | DE112017003873T5 (zh) |
WO (1) | WO2018026527A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9753487B2 (en) * | 2013-03-14 | 2017-09-05 | Micron Technology, Inc. | Serial peripheral interface and methods of operating same |
WO2019040054A1 (en) | 2017-08-23 | 2019-02-28 | Intel Corporation | SYSTEM, APPARATUS, AND METHOD FOR ADAPTIVE OPERATING VOLTAGE IN A USER-PROGRAMMED (FPGA) PREDIFFUSED NETWORK |
US11137807B2 (en) * | 2018-03-28 | 2021-10-05 | Intel Corporation | System, apparatus and method for controllable processor configuration based on a temperature specification |
US11216276B2 (en) * | 2018-12-27 | 2022-01-04 | Intel Corporation | Controlling power state demotion in a processor |
US20230104685A1 (en) * | 2020-03-27 | 2023-04-06 | Intel Corporation | Power management circuitry |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100058078A1 (en) * | 2008-08-27 | 2010-03-04 | Alexander Branover | Protocol for Power State Determination and Demotion |
US20110078478A1 (en) * | 2009-09-25 | 2011-03-31 | Alexander Branover | Method and apparatus for transitioning devices between power states based on activity request frequency |
US20120191995A1 (en) * | 2005-12-30 | 2012-07-26 | Alon Naveh | Method, apparatus, and system for energy efficiency and energy conservation including optimizing c-state selection under variable wakeup rates |
CN104169832A (zh) * | 2012-03-13 | 2014-11-26 | 英特尔公司 | 提供处理器的能源高效的超频操作 |
CN104798034A (zh) * | 2012-12-17 | 2015-07-22 | 英特尔公司 | 在多处理器系统中执行频率协调 |
CN104798004A (zh) * | 2012-12-21 | 2015-07-22 | 英特尔公司 | 根据功率平衡控制偏置,跨多个处理器域的动态功率平衡 |
CN105183128A (zh) * | 2014-06-06 | 2015-12-23 | 英特尔公司 | 强制处理器进入低功率状态 |
CN105302642A (zh) * | 2014-07-25 | 2016-02-03 | 英特尔公司 | 用于具有非同构性能状态的多核处理器的热扼制的自适应算法 |
Family Cites Families (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163153A (en) | 1989-06-12 | 1992-11-10 | Grid Systems Corporation | Low-power, standby mode computer |
US5522087A (en) | 1994-03-22 | 1996-05-28 | Verifone Inc. | System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up |
US5590341A (en) | 1994-09-30 | 1996-12-31 | Intel Corporation | Method and apparatus for reducing power consumption in a computer system using ready delay |
US5621250A (en) | 1995-07-31 | 1997-04-15 | Ford Motor Company | Wake-up interface and method for awakening an automotive electronics module |
US5931950A (en) | 1997-06-17 | 1999-08-03 | Pc-Tel, Inc. | Wake-up-on-ring power conservation for host signal processing communication system |
US6823516B1 (en) | 1999-08-10 | 2004-11-23 | Intel Corporation | System and method for dynamically adjusting to CPU performance changes |
US7539885B2 (en) | 2000-01-13 | 2009-05-26 | Broadcom Corporation | Method and apparatus for adaptive CPU power management |
US7010708B2 (en) | 2002-05-15 | 2006-03-07 | Broadcom Corporation | Method and apparatus for adaptive CPU power management |
JP2001318742A (ja) | 2000-05-08 | 2001-11-16 | Mitsubishi Electric Corp | コンピュータシステムおよびコンピュータ読み取り可能な記録媒体 |
KR100361340B1 (ko) | 2000-05-15 | 2002-12-05 | 엘지전자 주식회사 | 씨피유 클럭 제어 방법 |
US6792392B1 (en) | 2000-06-30 | 2004-09-14 | Intel Corporation | Method and apparatus for configuring and collecting performance counter data |
US6748546B1 (en) | 2000-09-26 | 2004-06-08 | Sun Microsystems, Inc. | Method and apparatus for reducing power consumption |
US6829713B2 (en) | 2000-12-30 | 2004-12-07 | Intel Corporation | CPU power management based on utilization with lowest performance mode at the mid-utilization range |
US7058824B2 (en) | 2001-06-15 | 2006-06-06 | Microsoft Corporation | Method and system for using idle threads to adaptively throttle a computer |
US20030061383A1 (en) | 2001-09-25 | 2003-03-27 | Zilka Anthony M. | Predicting processor inactivity for a controlled transition of power states |
US7111179B1 (en) | 2001-10-11 | 2006-09-19 | In-Hand Electronics, Inc. | Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters |
US6996728B2 (en) | 2002-04-26 | 2006-02-07 | Hewlett-Packard Development Company, L.P. | Managing power consumption based on utilization statistics |
US7051227B2 (en) | 2002-09-30 | 2006-05-23 | Intel Corporation | Method and apparatus for reducing clock frequency during low workload periods |
US6898689B2 (en) | 2002-11-15 | 2005-05-24 | Silicon Labs Cp, Inc. | Paging scheme for a microcontroller for extending available register space |
US7043649B2 (en) | 2002-11-20 | 2006-05-09 | Portalplayer, Inc. | System clock power management for chips with multiple processing modules |
US6971033B2 (en) | 2003-01-10 | 2005-11-29 | Broadcom Corporation | Method and apparatus for improving bus master performance |
KR20050115227A (ko) | 2003-01-23 | 2005-12-07 | 유니버시티 오브 로체스터 | 다중 클록 도메인 마이크로프로세서 |
JP4061492B2 (ja) | 2003-02-10 | 2008-03-19 | ソニー株式会社 | 情報処理装置および消費電力制御方法 |
US7093147B2 (en) | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US7272732B2 (en) | 2003-06-30 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Controlling power consumption of at least one computer system |
TW200502847A (en) | 2003-07-08 | 2005-01-16 | Benq Corp | Control device and method for reducing number of interrupts in a processor |
US7146514B2 (en) | 2003-07-23 | 2006-12-05 | Intel Corporation | Determining target operating frequencies for a multiprocessor system |
US7272730B1 (en) | 2003-07-31 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform |
US7194643B2 (en) | 2003-09-29 | 2007-03-20 | Intel Corporation | Apparatus and method for an energy efficient clustered micro-architecture |
US7770034B2 (en) | 2003-12-16 | 2010-08-03 | Intel Corporation | Performance monitoring based dynamic voltage and frequency scaling |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
US20070156992A1 (en) | 2005-12-30 | 2007-07-05 | Intel Corporation | Method and system for optimizing latency of dynamic memory sizing |
US9001801B2 (en) | 2004-09-07 | 2015-04-07 | Broadcom Corporation | Method and system for low power mode management for complex Bluetooth devices |
US7941585B2 (en) | 2004-09-10 | 2011-05-10 | Cavium Networks, Inc. | Local scratchpad and data caching system |
US7426648B2 (en) | 2004-09-30 | 2008-09-16 | Intel Corporation | Global and pseudo power state management for multiple processing elements |
US7434073B2 (en) | 2004-11-29 | 2008-10-07 | Intel Corporation | Frequency and voltage scaling architecture |
US7502948B2 (en) | 2004-12-30 | 2009-03-10 | Intel Corporation | Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores |
US8041967B2 (en) | 2005-02-15 | 2011-10-18 | Hewlett-Packard Development Company, L.P. | System and method for controlling power to resources based on historical utilization data |
US7454632B2 (en) | 2005-06-16 | 2008-11-18 | Intel Corporation | Reducing computing system power through idle synchronization |
US7430673B2 (en) | 2005-06-30 | 2008-09-30 | Intel Corporation | Power management system for computing platform |
US8301868B2 (en) | 2005-09-23 | 2012-10-30 | Intel Corporation | System to profile and optimize user software in a managed run-time environment |
US20070079294A1 (en) | 2005-09-30 | 2007-04-05 | Robert Knight | Profiling using a user-level control mechanism |
US20070106827A1 (en) | 2005-11-08 | 2007-05-10 | Boatright Bryan D | Centralized interrupt controller |
US7516342B2 (en) | 2005-12-30 | 2009-04-07 | Intel Corporation | Method, apparatus and system to dynamically choose an optimum power state |
US20070245163A1 (en) | 2006-03-03 | 2007-10-18 | Yung-Hsiang Lu | Power management in computer operating systems |
US7437270B2 (en) | 2006-03-30 | 2008-10-14 | Intel Corporation | Performance state management |
US7752468B2 (en) | 2006-06-06 | 2010-07-06 | Intel Corporation | Predict computing platform memory power utilization |
US7529956B2 (en) | 2006-07-17 | 2009-05-05 | Microsoft Corporation | Granular reduction in power consumption |
US7930564B2 (en) | 2006-07-31 | 2011-04-19 | Intel Corporation | System and method for controlling processor low power states |
US7730340B2 (en) | 2007-02-16 | 2010-06-01 | Intel Corporation | Method and apparatus for dynamic voltage and frequency scaling |
WO2008117133A1 (en) | 2007-03-26 | 2008-10-02 | Freescale Semiconductor, Inc. | Anticipation of power on of a mobile device |
JP2008257578A (ja) | 2007-04-06 | 2008-10-23 | Toshiba Corp | 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法 |
US7971074B2 (en) | 2007-06-28 | 2011-06-28 | Intel Corporation | Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system |
US8024590B2 (en) | 2007-12-10 | 2011-09-20 | Intel Corporation | Predicting future power level states for processor cores |
US20090150696A1 (en) | 2007-12-10 | 2009-06-11 | Justin Song | Transitioning a processor package to a low power state |
US7966506B2 (en) | 2007-12-12 | 2011-06-21 | Intel Corporation | Saving power in a computer system |
US8442697B2 (en) | 2007-12-18 | 2013-05-14 | Packet Digital | Method and apparatus for on-demand power management |
KR101459140B1 (ko) | 2007-12-26 | 2014-11-07 | 엘지전자 주식회사 | 전원관리 제어 장치 및 방법 |
US8156362B2 (en) | 2008-03-11 | 2012-04-10 | Globalfoundries Inc. | Hardware monitoring and decision making for transitioning in and out of low-power state |
US8954977B2 (en) | 2008-12-09 | 2015-02-10 | Intel Corporation | Software-based thread remapping for power savings |
US8700943B2 (en) | 2009-12-22 | 2014-04-15 | Intel Corporation | Controlling time stamp counter (TSC) offsets for mulitple cores and threads |
US8943334B2 (en) | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
US8949637B2 (en) | 2011-03-24 | 2015-02-03 | Intel Corporation | Obtaining power profile information with low overhead |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains of a processor |
US9074947B2 (en) | 2011-09-28 | 2015-07-07 | Intel Corporation | Estimating temperature of a processor core in a low power state without thermal sensor information |
US8954770B2 (en) | 2011-09-28 | 2015-02-10 | Intel Corporation | Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin |
US8832478B2 (en) | 2011-10-27 | 2014-09-09 | Intel Corporation | Enabling a non-core domain to control memory bandwidth in a processor |
US9026815B2 (en) | 2011-10-27 | 2015-05-05 | Intel Corporation | Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor |
US9158693B2 (en) | 2011-10-31 | 2015-10-13 | Intel Corporation | Dynamically controlling cache size to maximize energy efficiency |
US8943340B2 (en) | 2011-10-31 | 2015-01-27 | Intel Corporation | Controlling a turbo mode frequency of a processor |
WO2013137862A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically controlling interconnect frequency in a processor |
US9436245B2 (en) | 2012-03-13 | 2016-09-06 | Intel Corporation | Dynamically computing an electrical design point (EDP) for a multicore processor |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US9395788B2 (en) | 2014-03-28 | 2016-07-19 | Intel Corporation | Power state transition analysis |
-
2016
- 2016-08-03 US US15/227,040 patent/US10379596B2/en active Active
-
2017
- 2017-07-20 CN CN201780048227.5A patent/CN109564460B/zh active Active
- 2017-07-20 WO PCT/US2017/042999 patent/WO2018026527A1/en active Application Filing
- 2017-07-20 DE DE112017003873.1T patent/DE112017003873T5/de active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120191995A1 (en) * | 2005-12-30 | 2012-07-26 | Alon Naveh | Method, apparatus, and system for energy efficiency and energy conservation including optimizing c-state selection under variable wakeup rates |
US20100058078A1 (en) * | 2008-08-27 | 2010-03-04 | Alexander Branover | Protocol for Power State Determination and Demotion |
US20110078478A1 (en) * | 2009-09-25 | 2011-03-31 | Alexander Branover | Method and apparatus for transitioning devices between power states based on activity request frequency |
CN104169832A (zh) * | 2012-03-13 | 2014-11-26 | 英特尔公司 | 提供处理器的能源高效的超频操作 |
CN104798034A (zh) * | 2012-12-17 | 2015-07-22 | 英特尔公司 | 在多处理器系统中执行频率协调 |
CN104798004A (zh) * | 2012-12-21 | 2015-07-22 | 英特尔公司 | 根据功率平衡控制偏置,跨多个处理器域的动态功率平衡 |
CN105183128A (zh) * | 2014-06-06 | 2015-12-23 | 英特尔公司 | 强制处理器进入低功率状态 |
CN105302642A (zh) * | 2014-07-25 | 2016-02-03 | 英特尔公司 | 用于具有非同构性能状态的多核处理器的热扼制的自适应算法 |
Non-Patent Citations (2)
Title |
---|
常晓涛等: "应用于片上系统中低功耗IP核设计的自适应门控时钟技术", 《计算机学报》 * |
常晓涛等: "应用于片上系统中低功耗IP核设计的自适应门控时钟技术", 《计算机学报》, no. 05, 15 May 2007 (2007-05-15) * |
Also Published As
Publication number | Publication date |
---|---|
US10379596B2 (en) | 2019-08-13 |
US20180039322A1 (en) | 2018-02-08 |
DE112017003873T5 (de) | 2019-04-18 |
WO2018026527A1 (en) | 2018-02-08 |
CN109564460B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533354B (zh) | 控制处理器的处理引擎的性能状态 | |
US11119555B2 (en) | Processor to pre-empt voltage ramps for exit latency reductions | |
US11481013B2 (en) | Multi-level loops for computer processor control | |
US11409560B2 (en) | System, apparatus and method for power license control of a processor | |
CN109564526B (zh) | 使用封装和线程提示信息的组合来控制处理器的性能状态 | |
US10620682B2 (en) | System, apparatus and method for processor-external override of hardware performance state control of a processor | |
CN106537285A (zh) | 处理器温度的平衡控制 | |
CN109564460A (zh) | 在处理器中提供用于降级控制信息的接口 | |
US20170371399A1 (en) | Controlling Forced Idle State Operation In A Processor | |
CN113748397A (zh) | 用于动态控制处理器的处理电路的电流消耗的系统、装置和方法 | |
US11366506B2 (en) | System, apparatus and method for globally aware reactive local power control in a processor | |
US11669146B2 (en) | System, apparatus and method for responsive autonomous hardware performance state control of a processor | |
CN113448373A (zh) | 用于处理器的电压调节器的功率状态缩放的装置和方法 | |
CN109661637B (zh) | 用于可变功率轨的补偿控制 | |
CN109791427B (zh) | 使用滑动平均值的处理器电压控制 | |
CN108694154B (zh) | 用于选择数据元素的硬件加速器 | |
CN110998487A (zh) | 现场可编程门阵列(fpga)中的自适应操作电压的系统、装置和方法 | |
US10860083B2 (en) | System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail | |
US11921564B2 (en) | Saving and restoring configuration and status information with reduced latency | |
CN109478086A (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 |