CN113448423A - 用于基于任务特性动态调整平台功率和性能的装置和方法 - Google Patents
用于基于任务特性动态调整平台功率和性能的装置和方法 Download PDFInfo
- Publication number
- CN113448423A CN113448423A CN202011381243.6A CN202011381243A CN113448423A CN 113448423 A CN113448423 A CN 113448423A CN 202011381243 A CN202011381243 A CN 202011381243A CN 113448423 A CN113448423 A CN 113448423A
- Authority
- CN
- China
- Prior art keywords
- processor
- core
- power
- cores
- background
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000015654 memory Effects 0.000 claims description 79
- 238000013461 design Methods 0.000 claims description 35
- 230000004043 responsiveness Effects 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 24
- 230000003993 interaction Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 14
- 238000011156 evaluation Methods 0.000 claims description 10
- 238000007726 management method Methods 0.000 description 71
- 238000010586 diagram Methods 0.000 description 36
- 238000012545 processing Methods 0.000 description 36
- 238000004891 communication Methods 0.000 description 31
- 239000000872 buffer Substances 0.000 description 15
- 238000007667 floating Methods 0.000 description 15
- 239000003795 chemical substances by application Substances 0.000 description 10
- 230000001427 coherent effect Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 229910003460 diamond Inorganic materials 0.000 description 6
- 239000010432 diamond Substances 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001105 regulatory effect Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003116 impacting effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000007795 chemical reaction product Substances 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- QPFMBZIOSGYJDE-UHFFFAOYSA-N 1,1,2,2-tetrachloroethane Chemical compound ClC(Cl)C(Cl)Cl QPFMBZIOSGYJDE-UHFFFAOYSA-N 0.000 description 1
- FZZACAFXVBODJN-UHFFFAOYSA-N 2,2-dichloro-5-(2-phenylethyl)-4-trimethylsilylfuran-3-one Chemical compound O1C(Cl)(Cl)C(=O)C([Si](C)(C)C)=C1CCC1=CC=CC=C1 FZZACAFXVBODJN-UHFFFAOYSA-N 0.000 description 1
- 229920013660 Cellon Polymers 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication 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
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- 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
- G06F1/3231—Monitoring the presence, absence or movement of users
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
本公开涉及用于基于任务特性动态调整平台功率和性能的装置和方法。在一个实施例中,一种处理器包括:至少一个核心;以及耦合到至少一个核心的功率控制器。功率控制器可包括:工作负载监视器电路,用于基于至少一个核心在活跃持续时间期间执行了后台任务的第一时间量来计算后台任务比率;以及控制电路,用于在后台任务比率超过后台模式阈值时动态地应用用于后台模式的功率管理策略,用于后台模式的功率管理策略用于降低处理器的功率消耗。描述和要求保护了其他实施例。
Description
技术领域
实施例涉及处理器中的工作负载调度。
背景技术
在作为大工作场所或其他实体的一部分的计算机系统中,企业信息技术(IT)促进对软件和服务的大规模部署的管理。这种部署利用例如调度的任务在平台上提供了多个可管理性、维护和安全性服务。这种操作以电池寿命和对最终用户的前台响应能力为代价。许多系统执行大量的例行维护和后台任务,这些任务是被调度来运行的并且对于这些任务最终用户没有控制权,因为这些策略是由IT管理员来配置和管理的。空闲系统上的调度的后台任务活动可引起间歇的高处理器利用率。
除了电池寿命影响以外,调度的任务与前台用户关键任务同时运行,导致资源竞争和频繁的线程迁移,这影响了用户关键任务的前台性能和响应能力。系统上的平均电池寿命可受到后台软件和服务的影响,因为它们基于由管理员配置的IT策略被调度来作为例行任务运行。这影响了移动性和用户体验。为了符合电池寿命期望,原始设备制造商(original equipment manufacturer,OEM)可能给平台配置当在DC模式中操作时的低功率限制,这可能由于频率约束而不利地影响用户体验和响应能力,并且可引起AC和DC模式间的不一致用户体验。除了电池寿命担忧以外,来自后台任务的高处理器利用率在无风扇设计上引起了高热量耗散,影响了用户体验。并且在具有风扇的设计上,后台活动使得风扇高速旋转,即使在系统空闲时也导致不良的声音,影响了用户体验。
发明内容
根据本公开的一方面,提供了一种用于应用功率管理策略的处理器,包括:至少一个核心;以及耦合到所述至少一个核心的功率控制器,所述功率控制器包括:工作负载监视器电路,用于基于所述至少一个核心在活跃持续时间期间执行了后台任务的第一时间量来计算后台任务比率;以及控制电路,用于在所述后台任务比率超过后台模式阈值时动态地应用用于后台模式的功率管理策略,所述用于后台模式的功率管理策略用于降低所述处理器的功率消耗。
根据本公开的一方面,提供了一种用于调度处理器中的任务的方法,包括:识别系统的多核处理器的至少一个第一核心,该至少一个第一核心的性能低于所述多核处理器的至少一个第二核心;设置后台核心掩码(mask)来指示出所述至少一个第一核心对于后台任务执行的亲和力(affinity);确定所述系统的用户是否在场;并且响应于确定所述用户在场,利用所述后台核心掩码将至少一个后台任务调度到所述至少一个第一核心。
根据本公开的一方面,提供了一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时实现如上所述的方法。
根据本公开的一方面,提供了一种用于应用功率管理策略的系统,包括:处理器,包括:多个核心,包括一个或多个第一核心和一个或多个第二核心,所述一个或多个第一核心与所述一个或多个第二核心是异构的;以及耦合到所述多个核心的功率控制器,所述功率控制器包括:硬件反馈控制电路,用于为所述一个或多个第一核心确定第一硬件反馈信息并且为所述一个或多个第二核心确定第二硬件反馈信息,并且将所述第一硬件反馈信息和所述第二硬件反馈信息发送到调度器,其中所述第一硬件反馈信息和所述第二硬件反馈信息包括能量效率能力信息和性能能力信息;以及控制电路,用于基于来自所述调度器的模式提示信息来更新功率管理策略,所述模式提示信息是基于任务比率信息和用户交互确定的,其中所述功率控制器用于基于更新的功率管理策略为至少所述一个或多个第一核心更新频率和电压中的至少一者;以及耦合到所述处理器的系统存储器,其中所述系统存储器包括硬件反馈数据结构来存储所述第一硬件反馈信息和所述第二硬件反馈信息。
根据本公开的一方面,提供了一种用于应用功率管理策略的处理器,包括:至少一个核心装置;以及耦合到所述至少一个核心装置的功率控制装置,所述功率控制装置包括:工作负载监视器装置,用于基于所述至少一个核心装置在活跃持续时间期间执行了后台任务的第一时间量来计算后台任务比率;以及控制装置,用于在所述后台任务比率超过后台模式阈值时动态地应用用于后台模式的功率管理策略,所述用于后台模式的功率管理策略用于降低所述处理器的功率消耗。
附图说明
图1是根据本发明的实施例的系统的一部分的框图。
图2是根据本发明的实施例的处理器的框图。
图3是根据本发明的另一实施例的多域处理器的框图。
图4是包括多个核心的处理器的实施例。
图5是根据本发明的一个实施例的处理器核心的微体系结构的框图。
图6是根据另一实施例的处理器核心的微体系结构的框图。
图7是根据另外一个实施例的处理器核心的微体系结构的框图。
图8是根据另外一个实施例的处理器核心的微体系结构的框图。
图9是根据本发明的另一实施例的处理器的框图。
图10是根据本发明的实施例的代表性SoC的框图。
图11是根据本发明的实施例的另一示例SoC的框图。
图12是可结合实施例使用的示例系统的框图。
图13是可结合实施例使用的另一示例系统的框图。
图14是代表性计算机系统的框图。
图15是根据本发明的实施例的系统的框图。
图16是根据一实施例图示出用于制造集成电路来执行操作的IP核心开发系统的框图。
图17是根据一实施例的系统布置的框图。
图18是根据一个实施例的方法的流程图。
图19是根据另一实施例的方法的流程图。
具体实施方式
在各种实施例中,具有一个或多个多核处理器的计算系统基于用户响应能力任务和调度的或者后台的任务来调度任务。此外,计算系统可具有动态地检测一个或多个处理器的多个核心中的不那么高性能的核心的能力。这个动态检测可基于不同核心具有相异能力的系统中的核心本身的硬件。作为示例,这些异构核心在微体系结构、指令集体系结构(instruction set architecture,ISA)、电压/频率(voltage/frequency,VF)曲线和/或更广泛的功率/性能特性上可具有差异。在其他情况下,这种检测可基于考虑到制造变动的硬件反馈信息。在另外的其他情况中,性能能力的确定可至少部分基于操作环境和这种环境中的不同核心的功率消耗。
有了所有这些信息,后台或调度的任务可限于一个或多个不那么高性能的核心。这样,通过消除用户驱动的任务和调度的任务之间的资源竞争,可改善前台用户关键任务的响应能力。
在不同实施例中,计算系统可以是基于客户端的系统,范围从诸如智能电话、膝上型计算机之类的小型便携式装置,到桌面型计算机不等。另外的实施例可结合企业信息技术(IT)系统来使用。利用实施例,可以实现改善的响应能力,而不影响电池寿命,并且这在多个企业环境、操作系统等等上是可缩放的。
在一个示例中,一种系统可将其核心(或其他处理单元)识别成两个类别,即最高性能的和最低性能的核心。如上所述,这些不同的性能水平可基于制造变动或者异构体系结构。这种信息可被包括操作系统(OS)任务调度器和平台功率和性能管理器以及其他实体在内的各种系统实体利用,来针对响应能力、电池寿命和性能优化处理器分配。当然,可以使用将核心分类到多于两个性能箱格中的额外分类。例如,一实施例可将核心归入三个性能箱格中,即最高性能箱格、中等性能箱格和最低性能箱格。并且核心的多于三个分类当然也是可能的。
关于不同核心的能力的信息可在一些情况下被从处理器的功率控制器提供到操作系统或其他软件实体。这个功率控制器可基于处理器的核心的当前性能和效率来提供硬件反馈信息。利用实施例,可基于动态检测最低性能处理核心来以约束的资源分配调度后台任务。基于硬件控制性能状态(P状态)、功率限制控制和异构硬件反馈信息的这种控制可改善包括应用启动、浏览和生产力使用在内的多种不同的用户关键任务上的前台响应能力,而不影响企业环境中的电池寿命。
实施例还可使得动态功率管理策略能够基于用户活动和执行中的任务的性质来实现系统优化。通过准确地识别调度的后台任务和用户关键的前台任务,实施例可实现类似AC的响应能力,同时当基于电池功率操作时实现电池寿命目标。在一些实施例中,可在多个操作模式之间确定一种平台模式,所述操作模式包括活跃操作模式、安静操作模式和响应能力操作模式。在一实施例中,活跃操作模式是这样一种模式:处理器处于活跃状态中,并且至少一些量的用户响应或用户发起任务在进行中,虽然用户可能没有在与平台活跃交互。在一实施例中,安静操作模式是这样一种模式:相对高百分比的调度的后台/维护任务在运行,而没有用户与平台的交互。以及最后,响应能力模式是这样一种模式:前台任务在平台上活跃运行,并且用户与平台实时交互。注意这个响应能力模式中的操作对于改善响应能力和用户体验可能是重要的。作为示例,活跃模式任务可包括视频或音频重放应用、用户在后台下载文件或者编译软件;安静模式任务可包括这样的情形:用户不在场,而后台调度或例行维护任务在运行,例如周期性存储器/盘扫描;并且响应能力模式任务可包括用户驱动的任务,其中用户在与平台活跃交互。响应能力模式任务的示例可包括应用启动、文件导出、文档到PDF转换、其他短持续时间突发任务,等等。不同的功率管理策略可在这些检测到的操作模式期间被配置和动态应用到处理器(以及其他平台组件)以改善性能和功率。
利用实施例,可以识别在系统上的调度的后台活动期间优化电池寿命的机会,同时在用户在场时实现响应能力。这种实施例可与额外的技术集成,这些技术包括动态平台和热框架(Dynamic Platform and Thermal Framework,DPTF)解决方案、用户在场检测能力和被训练来检测用户交互行为和参与模式的基于机器学习(machine learning,ML)的解决方案。
虽然以下实施例是参考特定集成电路(例如计算平台或处理器)描述的,但其他实施例适用于其他类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可被应用到也可受益于更好的能量效率和能量节约的其他类型的电路或半导体器件。例如,公开的实施例不限于任何特定类型的计算机系统。也就是说,公开的实施例可用于许多不同的系统类型中,范围从服务器计算机(例如,塔式服务器、机架式服务器、刀片式服务器、微服务器等等)、通信系统、存储系统、任何配置的桌面计算机、膝上型电脑、笔记本电脑到平板计算机(包括2:1平板设备、平板手机等等)不等,并且也可用于其他装置(例如手持装置、片上系统(SoC)以及嵌入式应用)中。手持装置的一些示例包括蜂窝电话(例如智能电话)、互联网协议装置、数字相机、个人数字助理(personal digital assistant,PDA)和手持PC。嵌入式应用通常可包括微控制器、数字信号处理器(digital signal processor,DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(wide area network,WAN)交换机、可穿戴装置或者能够执行下面教导的功能和操作的任何其他系统。另外,实施例可实现在具有标准语音功能的移动终端(例如移动电话、智能电话和平板手机)中,和/或实现在没有标准无线语音功能通信能力的非移动终端(例如许多可穿戴设备、平板设备、笔记本电脑、桌面电脑、微服务器、服务器等等)中。另外,本文描述的装置、方法和系统不限于物理计算装置,而是也可涉及软件优化。
现在参考图1,示出了根据本发明的实施例的系统的一部分的框图。如图1中所示,系统100可包括各种组件,其中包括处理器110,该处理器110如图所示是多核心处理器。处理器110可经由外部电压调节器160耦合到供给电源150,该外部电压调节器160可执行第一电压转换以向处理器110提供主调节电压。
可以看出,处理器110可以是包括多个核心120a-120n的单晶粒处理器。此外,每个核心可与集成电压调节器(integrated voltage regulator,IVR)125a-125n相关联,该集成电压调节器接收主调节电压并且生成要被提供给与该IVR相关联的处理器的一个或多个代理的操作电压。因此,可提供IVR实现方式来允许对电压的细粒度控制并从而允许对每个个体核心的功率和性能的细粒度控制。这样,每个核心可按独立的电压和频率操作,使能了很大的灵活性并且提供了很宽的机会来平衡功率消耗与性能。在一些实施例中,多个IVR的使用使得能够将组件分组到分开的电源平面中,使得功率被IVR调节并且只供应给群组中的那些组件。在功率管理期间,一个IVR的给定电源平面在处理器被置于某个低功率状态中时可被掉电或断电,而另一IVR的另一电源平面保持活跃,或者被完全供电。
仍参考图1,额外的组件可存在于处理器内,包括输入/输出接口132、另一接口134以及集成存储器控制器136。可以看出,这些组件的每一者可由另一集成电压调节器125x来供电。在一个实施例中,接口132可为快速路径互连(Quick Path Interconnect,QPI)互连使能操作,该互连提供包括多个层的缓存一致性协议中的点到点(point-to-point,PtP)链路,所述多个层包括物理层、链路层和协议层。进而,接口134可经由快速外围组件互连(Peripheral Component Interconnect Express,PCIeTM)协议通信。
还示出了功率控制单元(power control unit,PCU)138,该PCU 138可包括硬件、软件和/或固件来执行关于处理器110的功率管理操作。可以看出,PCU 138经由数字接口向外部电压调节器160提供控制信息以使得电压调节器生成适当的调节电压。PCU 138还经由另一数字接口向IVR125提供控制信息以控制生成的操作电压(或者使得相应的IVR在低功率模式中被禁用)。在各种实施例中,PCU 138可包括多种功率管理逻辑单元来执行基于硬件的功率管理。这种功率管理可以是完全处理器控制的(例如,由各种处理器硬件控制,并且可由工作负载和/或功率约束、热约束或其他处理器约束所触发),和/或功率管理可响应于外部源(例如,平台或管理功率管理源或系统软件)而执行。
在这里的实施例中,PCU 138可被配置为动态地确定关于诸如核心120之类的硬件电路的性能和能量效率能力的硬件反馈信息。此外,PCU138还可包括工作负载监视器电路来为前台和后台任务计算任务比率。PCU 138还可包括控制电路来至少部分基于硬件反馈信息、工作负载信息和/或模式提示中的一个或多个来更新功率管理策略,如本文进一步描述。
此外,虽然图1示出了其中PCU 138是单独的处理引擎(其可实现为微控制器)的实现方式,但要理解在一些情况下,除了专用功率控制器以外或者取代专用功率控制器,每个核心可包括功率控制代理或者与功率控制代理相关联来更自主地独立控制功率消耗。在一些情况下,可提供层次化功率管理体系结构,其中PCU 138和与每个核心120相关联的相应功率管理代理通信。
虽然为了图示的容易而没有示出,但要理解在处理器110内可存在额外的组件,例如非核心逻辑,以及诸如内部存储器之类的其他组件,例如缓存存储器层次体系的一个或多个级别,等等。此外,虽然在图1的实现方式中是用集成电压调节器示出的,但实施例不限于此。
本文描述的处理器可利用可独立于基于操作系统(operating system,OS)的功率管理(operating system-based power management,OSPM)机制并且与其互补的功率管理技术。根据一个示例OSPM技术,处理器可按各种性能状态或水平(所谓的P状态,即从P0至PN)操作。一般而言,P1性能状态可对应于OS可请求的最高保证性能状态。除了这个P1状态以外,OS还可请求更高的性能状态,即P0状态。这个P0状态从而可以是机会模式或加强模式状态,其中当功率和/或热预算可用时,处理器硬件可将处理器或者其至少一些部分配置为按高于保证频率来操作。在许多实现方式中,处理器可包括在制造期间被烧熔或以其他方式写入到处理器中的高于P1保证最大频率的多个所谓的分段频率,超出到特定处理器的最大峰值频率。此外,根据一个OSPM机制,处理器可按各种功率状态或水平操作。关于功率状态,OSPM机制可指定不同的功率消耗状态,一般称为C状态,C0、C1至Cn状态。当核心活跃时,其在C0状态运行,并且当核心空闲时,其可被置于核心低功率状态中,也称为核心非零C状态(例如,C1-C6状态),其中每个C状态处于更低的功率消耗水平(使得C6是比C1更深的低功率状态,依此类推)。
要理解,许多不同类型的功率管理技术在不同的实施例中可被单独或者组合使用。作为代表性示例,功率控制器可控制处理器被某种形式的动态电压频率缩放(dynamicvoltage frequency scaling,DVFS)进行功率管理,其中一个或多个核心或其他处理器逻辑的操作电压和/或操作频率可被动态地控制以降低某些情形中的功率消耗。在一示例中,DVFS可利用可从加州圣克拉拉的英特尔公司获得的增强型英特尔SpeedStepTM技术来执行,以在最低的功率消耗水平提供最优的性能。在另一示例中,DVFS可利用英特尔TurboBoostTM技术来执行以使得一个或多个核心或其他计算引擎能够基于条件(例如,工作负载和可用性)以高于保证操作频率操作。
在某些示例中可使用的另一个功率管理技术是不同计算引擎之间的工作负载的动态调换。例如,处理器可包括在不同的功率消耗水平操作的非对称核心或其他处理引擎,使得在功率约束情形中,一个或多个工作负载可被动态切换来在更低功率核心或其他计算引擎上执行。另一个示范性功率管理技术是硬件工作周期循环(hardware duty cycling,HDC),其可使得核心和/或其他计算引擎根据工作周期被周期性地使能和禁用,使得一个或多个核心可在工作周期的非活跃时段期间被设为不活跃并且在工作周期的活跃时段期间被设为活跃。
实施例可实现在针对各种市场的处理器(包括服务器处理器、桌面处理器、移动处理器等等)中。现在参考图2,示出了根据本发明的实施例的处理器的框图。如图2中所示,处理器200可以是包括多个核心210a-210n的多核心处理器。在一个实施例中,每个这种核心可以是独立的功率域的并且可被配置为基于工作负载而进入和退出活跃状态和/或最大性能状态。
各种核心可经由互连215耦合到包括各种组件的系统代理或非核心220。可以看出,非核心220可包括共享缓存230,该共享缓存230可以是最后一级缓存。此外,非核心可包括集成存储器控制器240来例如经由存储器总线与系统存储器(图2中未示出)通信。非核心220还包括各种接口250和功率控制单元255,功率控制单元255可包括逻辑来执行如本文所述的功率管理技术。此外,功率控制单元255可包括工作负载监视器电路256,该工作负载监视器电路256被配置为为前台和后台任务中的一个或多个动态地确定任务比率。要理解功率控制单元255还可包括控制电路来至少部分基于硬件反馈信息、工作负载信息和/或模式提示中的一个或多个来更新功率管理策略,如本文进一步描述。
此外,通过接口250a-250n,可进行到各种芯片外组件(例如外围装置、大容量存储装置等等)的连接。虽然在图2的实施例中是利用这个特定实现方式示出的,但本发明的范围在这个方面不受限制。
现在参考图3,示出了根据本发明的另一实施例的多域处理器的框图。如图3的实施例中所示,处理器300包括多个域。具体而言,核心域310可包括多个核心3100-310n,图形域320可包括一个或多个图形引擎,并且系统代理域350可进一步存在。在一些实施例中,系统代理域350可按与核心域独立的频率执行并且可在所有时间保持通电以应对功率控制事件和功率管理,使得域310和320可被控制来动态地进入和退出高功率和低功率状态。域310和320的每一者可按不同的电压和/或功率操作。注意虽然只示出了三个域,但要理解本发明的范围在这个方面不受限制,并且在其他实施例中可存在额外的域。例如,多个核心域可存在,每个包括至少一个核心。
一般而言,每个核心310除了各种执行单元和额外的处理元件以外还可包括低级别缓存。进而,各种核心可耦合到彼此并且耦合到由最后一级缓存(last level cache,LLC)3400-340n的多个单元形成的共享缓存存储器。在各种实施例中,LLC 340可被共享于核心和图形引擎之间,以及各种媒体处理电路之间。可以看出,环状互连330从而将核心耦合在一起,并且在核心、图形域320和系统代理电路350之间提供互连。在一个实施例中,互连330可以是核心域的一部分。然而,在其他实施例中,环状互连可以是其自己的域的。
还可以看出,系统代理域350可包括显示控制器352,该显示控制器352可提供对关联的显示器的控制和到关联的显示器的接口。还可以看出,系统代理域350可包括功率控制单元355,该功率控制单元355可包括工作负载监视器电路356,该工作负载监视器电路356被配置为为前台和后台任务中的一个或多个动态地确定任务比率。要理解功率控制单元355还可包括控制电路来至少部分基于硬件反馈信息、工作负载信息和/或模式提示中的一个或多个来更新功率管理策略,如本文所述。
从图3中还可看出,处理器300还可包括集成存储器控制器(integrated memorycontroller,IMC)370,该IMC 370可提供到诸如动态随机访问存储器(dynamic randomaccess memory,DRAM)之类的系统存储器的接口。多个接口3800-380n可存在来使能处理器和其他电路之间的互连。例如,在一个实施例中,可提供至少一个直接媒体接口(directmedia interface,DMI)接口,以及一个或多个PCIeTM接口。此外,为了提供诸如额外的处理器或其他电路之类的其他代理之间的通信,也可提供一个或多个QPI接口。虽然在图3的实施例中是在这个高级别示出的,但要理解本发明的范围在这个方面不受限制。
参考图4,图示了包括多个核心的处理器的实施例。处理器400包括任何处理器或处理装置,例如微处理器、嵌入式处理器、数字信号处理器(digital signal processor,DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(system on a chip,SoC)或者执行代码的其他装置。处理器400在一个实施例中包括至少两个核心——核心401和402,它们可包括非对称核心或对称核心(图示的实施例)。然而,处理器400可包括可以是对称或非对称的任何数目的处理元件。
在一个实施例中,处理元件指的是支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、情境、情境单元、逻辑处理器、硬件线程、核心和/或任何其他元件,其能够为处理器保持状态,例如执行状态或体系结构状态。换言之,处理元件在一个实施例中指的是能够与诸如软件线程、操作系统、应用或其他代码之类的代码独立关联的任何硬件。物理处理器通常指的是可能包括任何数目的其他处理元件(例如核心或硬件线程)的集成电路。
核心经常指能够维持独立体系结构状态的位于集成电路上的逻辑,其中每个独立维持的体系结构状态与至少一些专用执行资源相关联。与核心形成对比,硬件线程通常指能够维持独立体系结构状态的位于集成电路上的任何逻辑,其中独立维持的体系结构状态共享对执行资源的访问。可以看出,当某些资源被共享并且其他的被专用于体系结构状态时,硬件线程和核心的命名之间的线重叠。然而经常,核心和硬件线程被操作系统看作单独逻辑处理器,其中操作系统能够单独调度每个逻辑处理器上的操作。
物理处理器400如图4中所示包括两个核心,核心401和402。这里,核心401和402被认为是对称核心,即具有相同的配置、功能单元和/或逻辑的核心。在另一实施例中,核心401包括乱序处理器核心,而核心402包括有序处理器核心。然而,核心401和402可以是单独从任何类型的核心(例如原生核心、软件管理核心、被适配为执行原生指令集体系结构(instruction set architecture,ISA)的核心、被适配为执行转化的ISA的核心、共同设计的核心,或者其他已知的核心)中选择的。再进一步讨论,下文更详细描述在核心401中图示的功能单元,因为核心402中的单元以类似的方式操作。
如图所示,核心401包括两个硬件线程401a和401b,它们也可被称为硬件线程槽401a和401b。因此,软件实体,例如操作系统,在一个实施例中可能将处理器400视为四个分开的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上文提到的,第一线程与体系结构状态寄存器401a相关联,第二线程与体系结构状态寄存器401b相关联,第三线程可与体系结构状态寄存器402a相关联,并且第四线程可与体系结构状态寄存器402b相关联。这里,体系结构状态寄存器(401a、401b、402a和402b)的每一者可被称为处理元件、线程槽或者线程单元,如上所述。如图所示,体系结构状态寄存器401a被复制在体系结构状态寄存器401b中,因此能够为逻辑处理器401a和逻辑处理器401b存储个体的体系结构状态/情境。在核心401中,也可为线程401a和401b复制其他更小的资源,例如分配器和重命名器块430中的指令指针和重命名逻辑。通过分区可共享一些资源,例如重排序/引退单元435中的重排序缓冲器、ILTB 420、加载/存储缓冲器以及队列。其他资源,例如通用内部寄存器、(一个或多个)页表基址寄存器、低级别数据缓存和数据TLB 415、(一个或多个)执行单元440以及乱序单元435的一些部分,可能被完全共享。
处理器400经常包括其他资源,这些资源可被完全共享、通过分区被共享或者被处理元件专用或者专用于处理元件。在图4中,图示了具有处理器的说明性逻辑单元/资源的纯示范性处理器的实施例。注意处理器可包括或者省略这些功能单元中的任何一者,以及包括没有描绘的任何其他已知的功能单元、逻辑或者固件。如图所示,核心401包括简化的代表性乱序(out-of-order,OOO)处理器核心。但在不同的实施例中可利用有序处理器。OOO核心包括分支目标缓冲器420来预测要执行/采取的分支,以及指令转化缓冲器(instruction-translation buffer,I-TLB)420来为指令存储地址转化条目。
核心401还包括耦合到取得单元420的解码模块425以对取得的元素解码。取得逻辑在一个实施例中包括分别与线程槽401a、401b相关联的个体定序器。通常核心401与第一ISA相关联,该第一ISA定义/指定在处理器400上可执行的指令。经常,作为第一ISA的一部分的机器代码指令包括指令的一部分(称为操作码),该部分引用/指定要执行的指令或操作。解码逻辑425包括从其操作码识别这些指令并且在流水线中传递解码的指令来按第一ISA定义的那样处理的电路。例如,解码器425在一个实施例中包括被设计或适配为识别诸如事务性指令之类的特定指令的逻辑。作为解码器425进行的识别的结果,体系结构或核心401采取特定的预定动作来执行与适当的指令相关联的任务。注意以下这点是重要的:本文描述的任何任务、块、操作和方法可响应于单个或多个指令而被执行;这些指令中的一些可以是新的或者旧的指令。
在一个示例中,分配器和重命名器块430包括分配器来预留资源,例如预留寄存器堆来存储指令处理结果。然而,线程401a和401b可能能够乱序执行,其中分配器和重命名器块430也预留其他资源,例如预留重排序缓冲器来跟踪指令结果。单元430还可包括寄存器重命名器来将程序/指令参考寄存器重命名到处理器400内部的其他寄存器。重排序/引退单元435包括组件,例如上文提及的重排序缓冲器、加载缓冲器和存储缓冲器,来支持被乱序执行的指令的乱序执行和之后的有序引退。
(一个或多个)调度器和执行单元块440在一个实施例中包括调度器单元来调度执行单元上的指令/操作。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。也包括与执行单元相关联的寄存器堆来存储信息指令处理结果。示范性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知的执行单元。
更低级别数据缓存和数据转化缓冲器(data translation buffer,D-TLB)450耦合到(一个或多个)执行单元440。数据缓存还存储最近使用/操作的元素,例如数据操作对象,这些元素可能被保持在存储器一致性状态中。D-TLB用于存储最近的虚拟/线性到物理地址转化。作为具体示例,处理器可包括页表结构来将物理存储器分解成多个虚拟页。
这里,核心401和402共享对更高级别或更远缓存410的访问,该缓存将缓存最近取得的元素。注意,更高级别或者更远指的是缓存级别增大或者变得更远离(一个或多个)执行单元。在一个实施例中,更高级别缓存410是最后一级数据缓存——处理器400上的存储器层次体系中的最后缓存——例如第二或第三级别数据缓存。然而,更高级别缓存410不限于此,因为其可与指令缓存相关联或者包括指令缓存。取而代之,踪迹缓存——一类指令缓存——可被耦合在解码器425之后来存储最近解码的踪迹。
在描绘的配置中,处理器400还包括总线接口模块405和功率控制器460,其可根据本发明的实施例执行功率管理。在此场景中,总线接口405与处理器400外部的装置(例如系统存储器和其他组件)通信。
存储器控制器470可与诸如一个或许多存储器之类的其他装置相接口。在一示例中,总线接口405包括具有用于与存储器相接口的存储器控制器和用于与图形处理器相接口的图形控制器的环状互连。在SoC环境中,甚至更多的装置,例如网络接口、协处理器、存储器、图形处理器和任何其他已知的计算机装置/接口,可被集成在单个晶粒或集成电路上,以提供具有高功能和低功率消耗的小外形参数。
现在参考图5,示出了根据本发明的一个实施例的处理器核心的微体系结构的框图。如图5中所示,处理器核心500可以是多阶段流水线式乱序处理器。核心500可基于接收到的操作电压按各种电压操作,接收到的操作电压可以是从集成的电压调节器或者外部电压调节器接收的。
从图5中可见,核心500包括前端单元510,前端单元510可用于取得要执行的指令并且使它们为以后用于处理器流水线中做好准备。例如,前端单元510可包括取得单元501、指令缓存503和指令解码器505。在一些实现方式中,前端单元510还可包括踪迹缓存,连同微代码存储装置以及微操作存储装置。取得单元501可取得宏指令,例如从存储器或指令缓存503取得,并且将它们馈送到指令解码器505来将其解码成基元,即,供处理器执行的微操作。
耦合在前端单元510和执行单元520之间的是乱序(OOO)引擎515,该OOO引擎515可用于接收微指令并且使它们为执行做好准备。更具体而言,OOO引擎515可包括各种缓冲器来重排序微指令流并且分配执行所需要的各种资源,以及提供逻辑寄存器到诸如寄存器堆530和扩展寄存器堆535之类的各种寄存器堆内的存储位置上的重命名。寄存器堆530可包括用于整数操作和浮点操作的分开的寄存器堆。为了配置、控制和额外的操作,一组机器特定寄存器(machine specific register,MSR)538也可存在并且是核心500内(以及核心外部)的各种逻辑可访问的。
各种资源可存在于执行单元520中,执行单元520包括例如各种整数、浮点和单指令多数据(single instruction multiple data,SIMD)逻辑单元,以及其他专门的硬件。例如,这种执行单元可包括一个或多个算术逻辑单元(arithmetic logic unit,ALU)522以及一个或多个向量执行单元524,以及其他这种执行单元。
来自执行单元的结果可被提供到引退逻辑,即重排序缓冲器(reorder buffer,ROB)540。更具体而言,ROB 540可包括各种阵列和逻辑来接收与被执行的指令相关联的信息。此信息随后被ROB 540考查来确定指令是否可被有效地引退以及提交给处理器的体系结构状态的结果数据,或者确定是否发生了阻止指令的适当引退的一个或多个异常。当然,ROB 540可应对与引退相关联的其他操作。
如图5中所示,ROB 540耦合到缓存550,缓存550在一个实施例中可以是低级别缓存(例如,L1缓存),虽然本发明的范围在这个方面不受限制。另外,执行单元520可直接耦合到缓存550。从缓存550,数据通信可与更高级别缓存、系统存储器等等发生。注意核心500的性能和能量效率能力可基于工作负载和/或处理器约束而变化。这样,功率控制器(图5中未示出)可动态地确定包括性能和能量效率能力的反馈信息,来用于如本文所述的调度决策。虽然在图5的实施例中是以这个高级别示出的,但要理解本发明的范围在这个方面不受限制。例如,虽然图5的实现方式是关于诸如x86指令集体系结构(ISA)之类的乱序机器的,但本发明的范围在这个方面不受限制。也就是说,其他实施例可实现在有序处理器、诸如基于ARM的处理器之类的精简指令集计算(reduced instruction set computing,RISC)处理器或者可经由仿真引擎和关联的逻辑电路仿真不同ISA的指令和操作的另一类型的ISA的处理器中。
现在参考图6,示出了根据另一实施例的处理器核心的微体系结构的框图。在图6的实施例中,核心600可以是不同微体系结构的低功率核心,例如具有被设计为降低功率消耗的相对有限的流水线深度的基于AtomTM的处理器。可以看出,核心600包括被耦合来向指令解码器615提供指令的指令缓存610。分支预测器605可耦合到指令缓存610。注意指令缓存610还可耦合到另一级别的缓存存储器,例如L2缓存(在图6中为了图示的容易而没有示出)。进而,指令解码器615将解码的指令提供到发出队列620以便存储和输送到给定的执行流水线。微代码ROM 618耦合到指令解码器615。
浮点流水线630包括浮点寄存器堆632,该浮点寄存器堆632可包括诸如128、256或512比特之类的给定比特宽度的多个体系结构寄存器。流水线630包括浮点调度器634来调度指令来在流水线的多个执行单元之一上执行。在示出的实施例中,这种执行单元包括ALU635、打乱单元636和浮点加法器638。进而,在这些执行单元中生成的结果可被提供回到寄存器堆632的缓冲器和/或寄存器。当然要理解,虽然是以这几个示例执行单元示出的,但在另一实施例中可存在额外的或者不同的浮点执行单元。
也可提供整数流水线640。在示出的实施例中,流水线640包括整数寄存器堆642,该整数寄存器堆642可包括诸如128或256比特之类的给定比特宽度的多个体系结构寄存器。流水线640包括整数调度器644来调度指令来在流水线的多个执行单元之一上执行。在示出的实施例中,这种执行单元包括ALU 645、移位器单元646和跳转执行单元648。进而,在这些执行单元中生成的结果可被提供回到寄存器堆642的缓冲器和/或寄存器。当然要理解,虽然是以这几个示例执行单元示出的,但在另一实施例中可存在额外的或者不同的整数执行单元。
存储器执行调度器650可调度存储器操作来在地址生成单元652中执行,该地址生成单元652也耦合到TLB 654。可以看出,这些结构可耦合到数据缓存660,数据缓存660可以是L0和/或L1数据缓存,该L0和/或L1数据缓存进而耦合到缓存存储器层次体系的额外级别,包括L2缓存存储器。
为了提供对乱序执行的支持,除了重排序缓冲器680以外还可提供分配器/重命名器670,该重排序缓冲器680被配置为对乱序执行的指令重排序以便有序引退。注意核心600的性能和能量效率能力可基于工作负载和/或处理器约束而变化。这样,功率控制器(图6中未示出)可动态地确定包括性能和能量效率能力的反馈信息,来用于如本文所述的调度决策。虽然在图6的图示中是以这个特定的流水线体系结构示出的,但要理解许多变化和替换是可能的。
注意在具有非对称核心的处理器(例如根据图5和图6的微体系结构)中,可出于功率管理原因在核心之间动态地调换工作负载,因为这些核心虽然具有不同的流水线设计和深度,但可具有相同或相关的ISA。这种动态核心调换可以按对于用户应用透明(并且可能对于内核也透明)的方式来执行。
参考图7,示出了根据另外一个实施例的处理器核心的微体系结构的框图。如图7中所示,核心700可包括多阶段有序流水线来以非常低的功率消耗水平执行。作为一个这种示例,处理器700可具有根据可从加州森尼维尔市的ARM控股有限公司获得的ARM CortexA53设计的微体系结构。在一种实现方式中,可提供被配置为既执行32比特代码也执行64比特代码的8阶段流水线。核心700包括取得单元710,该取得单元710被配置为取得指令,包括如本文所述的现场自测试指令,并将它们提供给解码单元715,解码单元715可对指令(例如诸如ARMv8 ISA之类的给定ISA的宏指令)解码。还要注意队列730可耦合到解码单元715以存储解码的指令。解码的指令被提供到发出逻辑725,在这里解码的指令可被发出到多个执行单元中的给定一个。
还参考图7,发出逻辑725可将指令发出到多个执行单元之一。在示出的实施例中,这些执行单元包括整数单元735、乘法单元740、浮点/向量单元750、双重发出单元760以及加载/存储单元770。这些不同的执行单元的结果可被提供到写回单元780。要理解虽然为了图示的容易而示出了单个写回单元,但在一些实现方式中,分开的写回单元可与每个执行单元相关联。此外,要理解虽然图7中所示的每个单元和逻辑是在高级别表示的,但特定的实现方式可包括更多的或不同的结构。利用具有如图7中所示的流水线的一个或多个核心设计的处理器可实现在许多不同的最终产品(从移动装置延伸到服务器系统)中。
参考图8,示出了根据另外一个实施例的处理器核心的微体系结构的框图。如图8中所示,核心800可包括多阶段多发出乱序流水线来以非常高的性能水平执行(这可发生在比图7的核心700更高的功率消耗水平)。作为一个这种示例,处理器800可具有根据ARMCortex A57设计的微体系结构。在一种实现方式中,可提供被配置为既执行32比特代码也执行64比特代码的15(或更多)阶段流水线。此外,流水线可提供3宽(或更宽)和3发出(或更多发出)操作。核心800包括取得单元810,取得单元810被配置为取得指令,包括如本文所述的现场自测试指令,并且将它们提供到解码器/重命名器/调遣器815,解码器/重命名器/调遣器815可对指令(例如ARMv8指令集体系结构的宏指令)解码,重命名指令内的寄存器引用,并且将指令(最终)调遣到所选择的执行单元。解码的指令可被存储在队列825中。注意虽然在图8中为了图示的容易而示出了单个队列结构,但要理解对于多个不同类型的执行单元的每一者可提供分开的队列。
图8中还示出了发出逻辑830,存储在队列825中的解码的指令可从该发出逻辑830被发出到所选择的执行单元。发出逻辑830也可实现在对于发出逻辑830所耦合到的多种不同类型的执行单元的每一者有单独的发出逻辑的特定实施例中。
解码的指令可被发出到多个执行单元中的给定一个。在示出的实施例中,这些执行单元包括一个或多个整数单元835、乘法单元840、浮点/向量单元850、分支单元860以及加载/存储单元870。在一实施例中,浮点/向量单元850可被配置为应对128或256比特的SIMD或向量数据。此外,浮点/向量执行单元850可执行IEEE-754双精度浮点操作。这些不同的执行单元的结果可被提供到写回单元880。注意在一些实现方式中,分开的写回单元可与执行单元的每一者相关联。此外,要理解虽然图8中所示的每个单元和逻辑是在高级别表示的,但特定的实现方式可包括更多的或不同的结构。
注意在具有非对称核心的处理器(例如根据图7和图8的微体系结构)中,可出于功率管理原因动态地调换工作负载,因为这些核心虽然具有不同的流水线设计和深度,但可具有相同或相关的ISA。这种动态核心调换可以按对于用户应用透明(并且可能对于内核也透明)的方式来执行。
利用具有如图5-图8的任何一个或多个图中所示的流水线的一个或多个核心设计的处理器可实现在许多不同的最终产品(从移动装置延伸到服务器系统)中。现在参考图9,示出了根据本发明的另一实施例的处理器的框图。在图9的实施例中,处理器900可以是包括多个域的SoC,每个域可被控制来按独立的操作电压和操作频率操作。作为具体的说明性示例,处理器900可以是可从英特尔公司获得的基于Architecture CoreTM的处理器,例如i3、i5、i7或另外的这种处理器。然而,其他低功率处理器,例如可从加州森尼维尔市的超微半导体公司(AMD)获得的,来自ARM控股有限公司的基于ARM的设计或者其被许可方,或者来自加州森尼维尔市的MIPS技术公司的基于MIPS的设计或者其被许可方或者采用者,可取而代之存在于其他实施例中,例如苹果A7处理器、高通骁龙处理器或者德州仪器OMAP处理器。这种SoC可用于低功率系统中,例如智能电话、平板计算机、平板手机计算机、UltrabookTM计算机或者其他便携式计算装置或者载具计算系统。
在图9中所示的高级别视图中,处理器900包括多个核心单元9100-910n。每个核心单元可包括一个或多个处理器核心、一个或多个缓存存储器和其他电路。每个核心单元910可支持一个或多个指令集(例如,x86指令集(带有已随着更新版本添加的一些扩展);MIPS指令集;ARM指令集(带有诸如NEON之类的可选附加扩展)或者其他指令集或者其组合。注意,核心单元中的一些可以是异构资源(例如,具有不同的设计)。此外,每个这种核心可耦合到缓存存储器(未示出),该缓存存储器在实施例中可以是共享级别(L2)缓存存储器。非易失性存储装置930可用于存储各种程序和其他数据。例如,此存储装置可用于存储微代码的至少一些部分、诸如BIOS之类的引导信息、其他系统软件,用于本文描述的诊断自测试的测试模式,等等。
每个核心单元910还可包括接口,例如总线接口单元,来使能互连到处理器的额外电路。在一实施例中,每个核心单元910耦合到可充当主缓存一致片上互连的一致架构(coherent fabric),该互连进而耦合到存储器控制器935。进而,存储器控制器935控制与诸如DRAM之类的存储器(在图9中为了图示的容易而没有示出)的通信。
除了核心单元以外,额外的处理引擎存在于处理器内,包括至少一个图形单元920,该图形单元920可包括一个或多个图形处理单元(graphics processing unit,GPU)来执行图形处理以及可能执行图形处理器上的通用操作(所谓的GPGPU操作)。此外,至少一个图像信号处理器925可存在。信号处理器925可被配置为处理从在SoC内部或者在片外的一个或多个捕捉装置接收的传入图像数据。
其他加速器也可存在。在图9的图示中,视频编码器950可执行编码操作,包括对视频信息的编码和解码,例如为高清晰度视频内容提供硬件加速支持。还可提供显示控制器955来加速显示操作,包括为系统的内部和外部显示器提供支持。此外,安全性处理器945可存在来执行诸如安全引导操作、各种密码操作之类的安全性操作。
每个单元可让其功率消耗经由功率管理器940来控制,该功率管理器940可包括控制逻辑来执行本文描述的各种功率管理技术,包括对硬件反馈信息的动态确定,来传达给调度器。
在一些实施例中,SoC 900还可包括耦合到一致架构的非一致架构,各种外围装置可耦合到该一致架构。一个或多个接口960a-960d使能与一个或多个片外装置的通信。这种通信可经由多种通信协议,例如PCIeTM、GPIO、USB、I2C、UART、MIPI、SDIO、DDR、SPI、HDMI,以及其他类型的通信协议。虽然在图9的实施例中是在这个高级别示出的,但要理解本发明的范围在这个方面不受限制。
现在参考图10,示出了代表性SoC的框图。在示出的实施例中,SoC1000可以是多核心SoC,该多核心SoC被配置用于低功率操作以针对包含到智能电话或诸如平板计算机或其他便携式计算装置或载具计算系统之类的其他低功率装置中而加以优化。作为示例,SoC1000可利用非对称或不同类型的核心(例如更高功率和/或低功率核心的组合,例如乱序核心和有序核心)来实现。在不同的实施例中,这些核心可基于ArchitectureTM核心设计或者ARM体系结构设计。在另外的其他实施例中,在给定的SoC中可实现和ARM核心的混合。
从图10中可看出,SoC 1000包括具有多个第一核心10120-10123的第一核心域1010。在一示例中,这些核心可以是低功率核心,例如可经由如本文所述的邮箱接口与相应的核心外围逻辑相接口的有序核心。在一个实施例中,这些第一核心可实现为ARM CortexA53核心。进而,这些核心耦合到核心域1010的缓存存储器1015。此外,SoC 1000包括第二核心域1020。在图10的图示中,第二核心域1020具有多个第二核心10220-10223。在一示例中,这些核心可以是比第一核心1012更高功率消耗的核心。在一实施例中,第二核心可以是乱序核心,这些乱序核心可实现为ARM Cortex A57核心。进而,这些核心耦合到核心域1020的缓存存储器1025。注意虽然图10中所示的示例在每个域中包括4个核心,但要理解在其他示例中在给定的域中可存在更多或更少核心。
进一步参考图10,还提供了图形域1030,该图形域1030可包括被配置为独立地执行例如由核心域1010和1020的一个或多个核心提供的图形工作负载的一个或多个图形处理单元(GPU)。作为示例,除了提供图形和显示渲染操作以外,GPU域1030还可用于为多种屏幕大小提供显示支持。
可以看出,各种域耦合到一致互连1040,该一致互连1040在一实施例中可以是缓存一致互连架构,该缓存一致互连架构进而耦合到集成存储器控制器1050。在一些示例中,一致互连1040可包括共享缓存存储器,例如L3缓存。在一实施例中,存储器控制器1050可以是直接存储器控制器来提供与片外存储器的通信的多个通道,例如DRAM的多个通道(在图10中为了图示的容易没有示出)。
在不同的示例中,核心域的数目可变化。例如,对于适合于包含到移动计算装置中的低功率SoC,例如图10中所示的有限数目的核心域可存在。此外,在这种低功率SoC中,包括更高功率核心的核心域1020可具有更少数目的这种核心。例如,在一个实现方式中,可提供两个核心1022来使能以降低的功率消耗水平的操作。此外,不同的核心域也可耦合到中断控制器来使能不同域之间的工作负载的动态调换。
在另外的其他实施例中,更大数目的核心域,以及额外的可选IP逻辑可存在,因为SoC可被缩放到更高性能(以及功率)水平,以便包含到其他计算装置(例如桌面型电脑、服务器、高性能计算系统,基站等等)中。作为一个这种示例,可提供4个核心域,每个具有给定数目的乱序核心。此外,除了可选的GPU支持以外(其作为示例可采取GPGPU的形式),也可提供一个或多个加速器来提供对特定功能(例如,web服务、网络处理、交换等等)的优化硬件支持。此外,输入/输出接口也可存在来将这种加速器耦合到片外组件。
现在参考图11,示出了另一示例SoC的框图。在图11的实施例中,SoC 1100可包括各种电路来为多媒体应用、通信和其他功能使能高性能。这样,SoC 1100适合于包含到许多种便携装置和其他装置(例如智能电话、平板计算机、智能TV、载具计算系统,等等)中。在示出的示例中,SoC 1100包括中央处理器单元(central processor unit,CPU)域1110。在一实施例中,多个个体处理器核心可存在于CPU域1110中。作为一个示例,CPU域1110可以是具有4个多线程核心的四核心处理器。这种处理器可以是同构或异构处理器,例如低功率和高功率处理器核心的混合。
进而,提供GPU域1120来在一个或多个GPU中执行高级图形处理以应对图形和计算API。除了在多媒体指令的执行期间可发生的高级计算以外,DSP单元1130还可提供一个或多个低功率DSP来应对低功率多媒体应用,例如音乐重放、音频/视频等等。进而,通信单元1140可包括各种组件来经由各种无线协议(例如蜂窝通信(包括3G/4G LTE)、诸如BluetoothTM之类的无线局域协议、IEEE 802.11,等等)提供连通性。
此外,多媒体处理器1150可用于执行高清晰度视频和音频内容的捕捉和重放,包括用户姿态的处理。传感器单元1160可包括多个传感器和/或传感器控制器来接口到给定平台中存在的各种片外传感器。图像信号处理器1170可具有一个或多个分开的ISP来对于来自平台的一个或多个相机的捕捉内容执行图像处理,这些相机包括静态相机和视频相机。
显示处理器1180可提供对到给定像素密度的高清晰度显示器的连接的支持,包括无线地传输内容以便在这种显示器上重放的能力。此外,位置单元1190可包括GPS接收器,该GPS接收器带有对多个GPS星座的支持以向应用提供利用这种GPS接收器获得的高度准确的定位信息。要理解虽然在图11的示例中是以这组特定的组件示出的,但许多变化和替换是可能的。
现在参考图12,示出了可结合实施例使用的示例系统的框图。可以看出,系统1200可以是智能电话或其他无线通信器。基带处理器1205被配置为对于要从系统发送或者被系统接收的通信信号执行各种信号处理。进而,基带处理器1205耦合到应用处理器1210,应用处理器1210可以是系统的主CPU来执行OS和其他系统软件,以及诸如许多公知的社交媒体和多媒体应用之类的用户应用。应用处理器1210可包括如本文所述的功率控制器,并且还可被配置为为装置执行多种其他的计算操作。
进而,应用处理器1210可耦合到用户接口/显示器1220,例如触摸屏显示器。此外,应用处理器1210可耦合到存储器系统,包括非易失性存储器,即闪速存储器1230,以及系统存储器,即动态随机访问存储器(DRAM)1235。还可看出,应用处理器1210还耦合到捕捉装置1240,例如可记录视频和/或静态图像的一个或多个图像捕捉装置。
仍参考图12,包括订户身份模块以及可能包括安全存储装置和密码处理器的通用集成电路卡(universal integrated circuit card,UICC)1240也耦合到应用处理器1210。系统1200还可包括可耦合到应用处理器1210的安全性处理器1250。多个传感器1225可耦合到应用处理器1210以使得能够输入多种感测到的信息,例如加速度计和其他环境信息。音频输出装置1295可提供接口来输出声音,例如以语音通信、播放的或流媒体音频数据等等的形式。
如还图示的,提供了近场通信(near field communication,NFC)无接触接口1260,其经由NFC天线1265在NFC近场中通信。虽然在图12中示出了分开的天线,但要理解在一些实现方式中,可提供一个天线或者不同组天线来使能各种无线功能。
功率管理集成电路(power management integrated circuit,PMIC)1215耦合到应用处理器1210以执行平台级功率管理。为此,PMIC 1215可向应用处理器1210发出功率管理请求以根据需要进入某些低功率状态。此外,基于平台约束,PMIC 1215也可控制系统1200的其他组件的功率水平。
为了使得能够发送和接收通信,各种电路可耦合在基带处理器1205和天线1290之间。具体而言,射频(radio frequency,RF)收发器1270和无线局域网(wireless localarea network,WLAN)收发器1275可存在。一般而言,RF收发器1270可用于根据给定的无线通信协议接收和发送无线数据和呼叫,这些无线通信协议例如是3G或4G无线通信协议,例如根据码分多址接入(code division multiple access,CDMA)、全球移动通信系统(global system for mobile communication,GSM)、长期演进(long term evolution,LTE)或其他协议。此外,GPS传感器1280可存在。也可提供其他无线通信,例如无线电信号(例如AM/FM和其他信号)的接收或发送。此外,经由WLAN收发器1275,也可实现本地无线通信。
现在参考图13,示出了可结合实施例使用的另一示例系统的框图。在图13的图示中,系统1300可以是移动低功率系统,例如平板计算机、2:1平板设备、平板手机或其他可转换或独立平板系统。如图所示,SoC 1310存在并且可被配置为对于该装置作为应用处理器操作并且可包括如本文所述的功率控制器。
多种装置可耦合到SoC 1310。在示出的图示中,存储器子系统包括耦合到SoC1310的闪速存储器1340和DRAM 1345。此外,触摸面板1320耦合到SoC 1310以提供显示能力和经由触摸的用户输入,包括在触摸面板1320的显示器上提供虚拟键盘。为了提供有线网络连通性,SoC 1310耦合到以太网接口1330。外设中枢1325耦合到SoC 1310以使能与各种外围装置相接口,例如可通过各种端口或其他连接器的任何一者耦合到系统1300。
除了SoC 1310内的内部功率管理电路和功能以外,PMIC 1380也耦合到SoC 1310以提供基于平台的功率管理,例如基于系统是被电池1390供电还是经由AC适配器1395被AC电源供电。除了这个基于电源的功率管理以外,PMIC 1380还可基于环境和使用条件执行平台功率管理活动。此外,PMIC 1380可向SoC 1310传达控制和状态信息以引起SoC 1310内的各种功率管理动作。
仍参考图13,为了提供无线能力,WLAN单元1350耦合到SoC 1310并且进而耦合到天线1355。在各种实现方式中,WLAN单元1350可根据一个或多个无线协议提供通信。
如还图示的,多个传感器1360可耦合到SoC 1310。这些传感器可包括各种加速度计、环境和其他传感器,包括用户姿态传感器。最后,音频编解码器1365耦合到SoC 1310以提供到音频输出装置1370的接口。当然要理解,虽然在图13中是以这个特定实现方式示出的,但许多变化和替换是可能的。
现在参考图14,示出了诸如笔记本、UltrabookTM或其他小外形参数系统之类的代表性计算机系统的框图。处理器1410在一个实施例中包括微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或者其他已知的处理元件。在图示的实现方式中,处理器1410充当主处理单元和中央中枢来与系统1400的各种组件中的许多通信。作为一个示例,处理器1400被实现为SoC并且可包括如本文所述的功率控制器。
处理器1410在一个实施例中与系统存储器1415通信。作为说明性示例,系统存储器1415是经由多个存储器装置或模块实现的,以提供给定量的系统存储器。
为了提供诸如数据、应用、一个或多个操作系统之类的信息的持续性存储,大容量存储装置1420也可耦合到处理器1410。在各种实施例中,为了使能更薄和更轻的系统设计以及为了改善系统响应能力,这个大容量存储装置可经由SSD来实现或者大容量存储装置可主要利用硬盘驱动器(hard disk drive,HDD)来实现,其中更小量的SSD存储充当SSD缓存来使能在掉电事件期间对情境状态和其他这种信息的非易失性存储,使得在系统活动重发起时可发生快速加电。图14中还示出的是,闪速装置1422可耦合到处理器1410,例如经由串行外围接口(serial peripheral interface,SPI)。这个闪速装置可提供对系统软件(包括基本输入/输出软件(basic input/output software,BIOS)以及系统的其他固件)的非易失性存储。
各种输入/输出(I/O)装置可存在于系统1400内。具体而言,在图14的实施例中示出的是显示器1424,其可以是还提供触摸屏1425的高清晰度LCD或LED面板。在一个实施例中,显示器1424可经由可实现为高性能图形互连的显示互连耦合到处理器1410。触摸屏1425可经由另一互连耦合到处理器1410,该另一互连在一实施例中可以是I2C互连。如图14中还示出的,除了触摸屏1425以外,借由触摸的用户输入也可经由触摸板1430发生,该触摸板1430可被配置在机壳内并且也可耦合到与触摸屏1425相同的I2C互连。
为了感知计算和其他目的,各种传感器可存在于系统内并且可按不同的方式耦合到处理器1410。某些惯性和环境传感器可通过传感器中枢1440,例如经由I2C互连,耦合到处理器1410。在图14所示的实施例中,这些传感器可包括加速器计1441、环境光传感器(ambient light sensor,ALS)1442、罗盘1443和陀螺仪1444。其他环境传感器可包括一个或多个热传感器1446,该热传感器1446在一些实施例中经由系统管理总线(SMBus)总线耦合到处理器1410。
在图14中还可看出,各种外围装置可经由低引脚数(low pin count,LPC)互连耦合到处理器1410。在示出的实施例中,各种组件可通过嵌入式控制器1435耦合。这种组件可包括键盘1436(例如,经由PS2接口耦合)、风扇1437和热传感器1439。在一些实施例中,触摸板1430也可经由PS2接口耦合到EC 1435。此外,诸如可信平台模块(trusted platformmodule,TPM)1438之类的安全性处理器也可经由这个LPC互连耦合到处理器1410。
系统1400可通过多种方式与外部装置通信,包括无线地通信。在图14中所示的实施例中,存在各种无线模块,其中每一者可对应于被配置用于特定的无线通信协议的无线电装置。用于诸如近场之类的短距离中的无线通信的一种方式可经由NFC单元1445,该NFC单元1445在一个实施例中可经由SMBus与处理器1410通信。注意经由此NFC单元1445,彼此近邻的装置可通信。
从图14中还可看出,额外的无线单元可包括其他短距离无线引擎,包括WLAN单元1450和蓝牙单元1452。利用WLAN单元1450,可实现Wi-Fi通信,而经由蓝牙单元1452,可发生短距离BluetoothTM通信。这些单元可经由给定的链路与处理器1410通信。
此外,无线广域通信,例如根据蜂窝或其他无线广域协议,可经由WWAN单元1456发生,该WWAN单元1456进而可耦合到订户身份模块(subscriber identity module,SIM)1457。此外,为了使能对位置信息的接收和使用,GPS模块1455也可存在。注意在图14中所示的实施例中,WWAN单元1456和诸如相机模块1454之类的集成捕捉装置可经由给定的链路通信。
集成相机模块1454可被包含在盖子中。为了提供音频输入和输出,音频处理器可经由数字信号处理器(digital signal processor,DSP)1460实现,该DSP 1460可经由高清晰度音频(high definition audio,HDA)链路耦合到处理器1410。类似地,DSP 1460可与集成编码器/解码器(CODEC)和放大器1462通信,该集成CODEC和放大器1462进而可耦合到输出扬声器1463,该输出扬声器1463可实现在机壳内。类似地,放大器和CODEC 1462可被耦合来从麦克风1465接收音频输入,该麦克风1465在一实施例中可经由双阵列麦克风(例如数字麦克风阵列)来实现以提供高质量音频输入来使能对系统内的各种操作的由语音激活的控制。还要注意音频输出可从放大器/CODEC 1462被提供到耳机插孔1464。虽然在图14的实施例中是以这些特定组件示出的,但要理解本发明的范围在这个方面不受限制。
实施例可实现在许多不同的系统类型中。现在参考图15,示出了根据本发明的实施例的系统的框图。如图15中所示,多处理器系统1500是点到点互连系统,并且包括经由点到点互连1550耦合的第一处理器1570和第二处理器1580。如图15中所示,处理器1570和1580的每一者可以是多核处理器,包括第一和第二处理器核心(即,处理器核心1574a和1574b和处理器核心1584a和1584b),虽然可能在处理器中存在多得多的核心。每个处理器可包括PCU 1575、1585或其他功率管理逻辑来执行如本文所述的基于处理器的功率管理。为此,PCU 1575和1585包括硬件反馈控制电路来动态地确定相应核心的能力,工作负载监视器电路来动态地确定任务比率,以及附加控制电路来至少部分基于硬件反馈信息、工作负载信息和/或模式提示中的一个或多个来更新功率管理策略,如本文所述。
仍参考图15,第一处理器1570还包括存储器控制器中枢(memory controllerhub,MCH)1572和点到点(point-to-point,P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如图15中所示,MCH 1572和1582将处理器耦合到各自的存储器,即存储器1532和存储器1534,存储器1532和存储器1534可以是在本地附接到各个处理器的系统存储器(例如,DRAM)的一部分。第一处理器1570和第二处理器1580可分别经由P-P互连1562和1564耦合到芯片集1590。如图15中所示,芯片集1590包括P-P接口1594和1598。
此外,芯片集1590包括接口1592来通过P-P互连1539将芯片集1590与高性能图形引擎1538耦合。进而,芯片集1590可经由接口1596耦合到第一总线1516。如图15中所示,各种输入/输出(I/O)装置1514可耦合到第一总线1516,以及将第一总线1516耦合到第二总线1520的总线桥1518。各种装置可耦合到第二总线1520,例如包括键盘/鼠标1522、通信装置1526和数据存储单元1528,例如盘驱动器或者其他大容量存储装置,其他大容量存储装置在一个实施例中可包括代码1530。另外,音频I/O 1524可耦合到第二总线1520。实施例可被包含到其他类型的系统(包括移动装置,比如智能蜂窝电话、平板计算机、上网本、UltrabookTM,等等)中。
图16是根据一实施例图示出可用于制造集成电路来执行操作的IP核心开发系统1600的框图。IP核心开发系统1600可用于生成模块化的、可重复使用的设计,这些设计可被包含到更大的设计中或者被用于构造整个集成电路(例如,SoC集成电路)。设计设施1630可以用高级别编程语言(例如,C/C++)生成IP核心设计的软件仿真1610。软件仿真1610可用于设计、测试和验证IP核心的行为。然后可从仿真模型创建或合成寄存器传送级(registertransfer level,RTL)设计。RTL设计1615是对硬件寄存器之间的数字信号的流动(包括利用建模的数字信号执行的关联逻辑)建模的集成电路的行为的抽象。除了RTL设计1615以外,也可创建、设计或者合成在逻辑级或晶体管级的更低级别设计。从而,初始设计和仿真的特定细节可变化。
RTL设计1615或等同物还可被设计设施合成为硬件模型1620,该硬件模型1620可采取硬件描述语言(hardware description language,HDL),或者物理设计数据的某种其他表示。HDL可被进一步仿真或测试来验证IP核心设计。IP核心设计可被存储来利用非易失性存储器1640(例如,硬盘、闪速存储器或者任何其他非易失性存储介质)输送到第三方制造设施1665。或者,可通过有线连接1650或无线连接1660(例如,经由互联网)来传输IP核心设计。制造设施1665随后可制造至少部分基于该IP核心设计的集成电路。制造的集成电路可被配置为根据本文描述的至少一个实施例执行操作。
现在参考图17,示出了根据一实施例的计算布置的框图。如图17中所示,系统1700包括处理器1710,该处理器1710在一实施例中可以是异构多核处理器,该异构多核处理器在一个实施例中耦合到实现为DRAM的系统存储器1760。如还图示的,OS 1770在处理器1710上执行。在图17的图示中,出于代表性目的示出了单个核心1720。要理解在各种实施例中可存在多个核心。核心1720经由邮箱接口1750耦合到PCU 1730,该邮箱接口1750在一实施例中可实现为微代码邮箱接口。当然其他接口来使能核心1720和PCU 1730之间的通信是可能的。
如还图示的,处理器1710还包括一组寄存器1740。寄存器1740可包括多种机器特定寄存器(machine specific register,MSR)、状态寄存器、配置寄存器,等等。在图17所示的特定实施例中,这种寄存器包括CPUID寄存器1742。有趣的是,CPUID寄存器1742可包括硬件反馈字段,其当被设置时指示出处理器能够向OS提供动态硬件反馈信息。硬件反馈指针MSR 1744可包括硬件反馈指针字段来存储由OS写入的指针,以指向存储器中的要存储硬件反馈信息结构的位置。要理解在各种实施例中可存在额外的寄存器。硬件反馈配置MSR1746可存储硬件反馈配置使能字段,其在被设置时指示出处理器1710要执行如本文所述的硬件反馈信息处理。
仍参考图17,PCU 1730包括硬件反馈控制电路1735,该硬件反馈控制电路1735可计算硬件反馈信息并且触发将此信息写入到存储器1760。在一实施例中,这个硬件反馈信息可包括关于对不同核心的性能和能量效率能力的动态估计的信息。随着处理器1710的不同功率/热状态,不同核心的相对功率/性能特性变化,从而此信息可封装这种动态变化。此信息可经由邮箱接口1750被传达到核心1720。进而,核心1720的微代码可接收此硬件反馈信息并且将其写入到系统存储器1760,然后向PCU 1730发送对此信息的写入的确认。
PCU 1730还可包括工作负载监视器电路1736。在这里的实施例中,工作负载监视器电路1736可被配置为对在处理器1710上执行中的工作负载分类。在一实施例中,工作负载的任务可被分类为调度的(或者后台)任务或前台任务。这种信息可如本文所述被提供给OS调度器1780。要理解虽然在图17的实施例中被示为实现在PCU 1730内,但工作负载监视器电路在其他实施例中可位于处理器的其他部分中。
如图17中所示,系统存储器1760包括硬件反馈结构1766,该硬件反馈结构1766可将硬件反馈信息存储为具有以下两个向量的数据结构:性能和效率,其中每个向量表示针对相对性能和效率的列举核心的有序列表。注意在其他实施例中,可提供直接接口来使得PCU 1730能够将此硬件反馈信息直接写入到系统存储器1760。在实施例中,在被实际写入到存储器之前,硬件反馈信息可被临时缓存为写回信息,例如缓存在处理器1710的最后一级缓存中。这样,OS 1770或者可从LLC访问硬件反馈信息,如果存在于其中的话,或者可从存储器1760访问硬件反馈信息。
如图17中所示,OS 1770的组件之中包括调度器1780。在这里的实施例中,调度器1780可动态地知晓处理核心和其他处理元件的性能能力并且可使用此信息来向核心调度工作负载。更具体而言,如本文所述,可为后台任务开发动态任务亲和力掩码。OS调度器1780随后可使用这种掩码来将后台任务调度到更低性能核心。
可以看出,调度器1780包括默认任务亲和力掩码1782。这种掩码可基于应用/任务偏好利用在任务创建时接收的信息来设置。如还示出的,调度器1780还包括动态任务亲和力掩码1784。这些掩码如本文所述可基于从功率控制器(例如,PCU 1730)接收的反馈信息来设置。后台任务调度器1786可限制任务偏好亲和力并且根据动态任务亲和力掩码1784中的信息将后台任务调度到最低性能(或者较低性能)的核心。
仍参考OS 1770,在一些实施例中,平台模式选择器1788也可存在。平台模式选择器1788可至少部分基于执行中的后台任务的水平和用户交互来确定平台操作模式并且将这种信息提供给功率控制器。如本文所述,基于后台任务执行的水平和用户在场(与否),平台模式选择器1788可选择平台模式。虽然实施例在这个方面不受限制,但这些平台模式可包括活跃模式、安静模式和响应能力模式。当平台模式选择器1788确定平台模式的变化时,其可向PCU 1730发送模式信息,PCU 1730可基于此变化来更新功率管理策略。
在其他情况下,对平台模式的确定可在PCU 1730的电路内进行。如图17中所示,PCU 1730还可包括平台模式选择电路1738。选择电路1738可被配置为至少部分基于前台和后台任务比率、其与相应阈值的比较并且还基于用户在场确定来为诸如系统1700之类的平台确定适当的操作模式。虽然在图17的实施例中被示为存在于PCU 1730内,但平台模式选择电路可位于其他位置中。例如,在其他实施例中,平台模式选择电路1738和平台模式选择器1788的组合可确定适当的平台模式。要理解PCU 1730可包括各种控制电路,包括被配置为至少部分基于对平台模式的确定来针对检测到的操作模式动态地应用或更新功率管理策略以改善性能、效率或者其组合的控制电路。要理解虽然在图17的实施例中在这个高级别示出了,但许多变化和替换是可能的。
在各种实施例中,系统可以主动并且动态地查询核心能力信息以识别最低性能核心。在一个实施例中,可利用硬件P状态(hardware P-state,HWP)能力MSR来查询这种信息。在其他情况下,可经由硬件引导调度(hardware guided scheduling,HGS)接口来使用核心的动态硬件引导性能排序。当然在其他实施例中可使用识别核心能力的其他手段。这种信息随后可用于限制调度的后台任务可运行的一组核心。更具体而言,实施例可将这种任务限制到最低性能核心(或者至少限制到较低性能核心)。在一实施例中,在OS调度器中可更新一个或多个任务亲和力掩码来限制这种调度。这样,活跃的调度任务可被动态地识别并且在检测到用户在场时被实时限制到这些最低性能核心。同样地,当没有检测到用户在场时,这种后台任务可被调度到任何核心。这样,可以在用户不在场时将后台任务调度到最高性能核心,以便尝试以更高性能执行这种任务(并且可能带来功率节省)。当然也可能将这种任务限制到最低性能核心,尤其是在受约束的环境中。
现在参考图18,示出了根据一个实施例的方法的流程图。如图18中所示,方法1800是用于将后台任务调度到较低性能处理单元的方法。在各种实施例中,方法1800可由硬件电路、固件、软件和/或其组合来执行。在特定实施例中,方法1800可由OS调度器来执行。
如图所示,方法1800开始于系统启动时(块1810)。注意在系统启动期间,各种初始化操作可发生以初始化系统及其组件,包括处理器。作为这个初始化过程的一部分,可以向OS提供硬件能力信息,包括处理器核心的种群计数及其能力。例如,OS可被提供以核心的数目及其相对能力(例如根据性能能力的规模)的标识。如本文将描述的,这个静态或基线信息可在系统操作期间被更新。
仍参考图18,在块1820,可动态地确定一个或多个最低性能核心。在一些情况下,这个确定可基于由功率控制器提供的HWP信息。在其他情况下,此信息可以是从接收自PCU或其他功率控制器的动态硬件引导反馈信息获得的。在另外的其他情况下,此信息和可能的附加信息的组合可被用于确定最低性能核心。在一些情况下,最低性能核心可以是异构处理器中的较小的低功率(例如有序)核心。在其他情况下,最低性能核心可基于识别较低性能核心(例如,由于制造变动)的变动信息。利用动态硬件引导反馈信息,有可能在某些操作环境(例如,受约束的处理器环境)中,更大的乱序核心可被识别为最低性能核心。
在任何情况下,至少部分基于这个确定的核心能力信息,可以设置后台核心掩码(块1830)。注意在一些情况下,这个后台核心掩码可以是与默认任务亲和力掩码分离的动态任务亲和力掩码。
仍参考图18,控制传递到块1840,在这里可查询在系统上运行的活跃调度任务。例如,对于给定的评估间隔可识别调度任务的列表,即已被用户、IT人员、OEM或其他人调度的那些任务。这些调度任务可包括例如定期调度的维护或安全性任务。接下来在菱形1850确定用户是否在场以及调度任务中的一个或多个是否在运行。虽然实施例在这个方面不受限制,但可借由用户与输入/输出装置(例如,键盘、鼠标、触摸屏、麦克风等等)的交互来检测用户在场。在其他情况下,可利用平台的一个或多个传感器(比如一个或多个相机)来检测用户在场,例如可能利用眼睛注视检测。如果确定用户不在场,则控制传递到块1870,在这里没有进一步操作发生,并且方法1800对于下一个评估间隔回复到块1820。虽然实施例在这个方面不受限制,但在一个实施例中这个下一评估间隔可大约是5秒。当然更长或更短的持续时间是可能的。
仍参考图18,如果确定用户在场并且调度的任务在运行,则控制传递到块1860,在这里调度器可设置这些调度的任务与后台核心掩码的亲和力。也就是说,这些调度的任务可被调度来只在所确定的一个或多个最低性能核心上运行。这样,当检测到用户在场时,活跃调度任务被动态识别并且被实时限制到最低性能核心。注意由于设置调度任务与后台核心掩码的亲和力,后台任务的动态迁移可发生,使得当前在更高性能核心上执行的任何后台任务可被动态迁移到较低性能核心。利用这里的实施例,可实现性能增强,尤其是在应用启动、web浏览和生产力工作负载上。要理解正如上文在图18中描述的,关于将某些任务调度到最低性能核心,注意可存在核心性能能力的范围。这样,当在后台或调度的任务正在执行时识别到用户在场时,从最低性能开始的某个范围的核心可被选择来用于调度这些后台任务,其中每个核心可不具有完全相同的性能能力。
实施例还可提供动态系统优化来帮助在非关键或空闲用户会话期间实现最优电池寿命,同时在用户在场时实现响应能力。为此,在基于电池电力运行时,当用户没有在与系统活跃交互并且没有用户关键任务在执行中时的场景中,可优化电池寿命。
为此,实施例可监视用户与系统的交互,同时维护关于执行中的调度的后台任务和前台任务的信息。利用此信息,平台可识别平台操作模式并且基于操作模式来动态地切换功率管理策略。这样,当在安静操作模式中并且基于电池寿命来运行时,可在应用后台模式功率管理策略的同时执行后台任务,这可增大电池寿命。
现在参考图19,示出了根据另一实施例的方法的流程图。如图19中所示,方法1900是用于确定平台模式的方法。在不同实施例中,方法1900可由硬件电路、固件、软件和/或其组合来执行。例如,方法1900可由OS调度器、PCU电路或者其组合来执行。
如图所示,方法1900可开始于系统的活跃模式中,其中一个或多个任务在执行。在这个活跃模式期间,可以确定用户在最近评估间隔内是否与系统交互了(块1910)。对用户交互的这个确定可基于对用户与输入/输出装置的交互的检测、传感器测量,等等。
如果确定用户在最近评估间隔的持续时间内没有与系统交互,则控制传递到安静模式循环1920。在安静模式循环1920中可执行各种操作来确定用于安静模式的功率管理策略是否可适当。如图所示,安静模式循环1920包括识别在系统上运行的调度任务(块1930)。如上所述,这种调度任务可由用户、IT人员、OEM或实体来调度,例如为了定期调度的维护或安全性活动。
接下来,在块1935,可计算调度任务比率。在一个实施例中,可根据式1来计算调度任务比率:调度任务比率=总CPU时间(调度任务)/总CPU活跃时间[式1]。接下来确定调度任务比率是否超过安静模式阈值(菱形1940)。虽然这个安静模式阈值在不同实施例中可具有不同的值,但在一实施例中安静模式阈值可被设置在大约50%。
如果确定调度任务比率没有超过这个安静模式阈值,则退出安静模式循环1920并且正常活跃模式可继续进行。否则,如果在菱形1940确定调度任务比率超过安静模式阈值,则控制传递到块1945,在这里可应用用于安静模式的功率管理策略。在一实施例中,这个功率管理策略可包括被提供给功率控制器来用于控制功率消耗的一个或多个配置值。作为一个示例,这个功率管理策略可包括一个或多个降低的功率限度。在一实施例中,这种降低功率限度可被设置在小于长期功率限度的水平,例如热设计功率水平。功率控制器可使用这种功率限度来控制分配给处理器的核心或其他处理电路的功率预算。利用一个或多个降低功率限度,当用户在调度任务的执行期间没有与系统交互时,可实现更低的功率消耗。除了功率限度设置以外,这个安静模式功率管理策略还可包括使能量性能偏好偏向能量效率并且偏离性能,根据效率水平设置处理器频率/性能上限,和/或激进地占用深度核心和包空闲状态(即,减少空闲状态降级),以及其他操作。
相反,如果在菱形1910确定用户在最近评估间隔期间确实在与系统交互,则控制传递到块1950来执行响应能力循环1950。在响应能力模式循环1950中可执行各种操作来确定用于响应能力模式的功率管理策略是否可适当。如图所示,响应能力模式循环1950包括识别在系统上运行的前台任务(块1960)。如上所述,这种前台任务是其中用户在与平台实时交互的那些任务。
接下来在块1965,可计算前台任务比率。在一个实施例中,可根据式2来计算前台任务比率:前台任务比率=总前台CPU时间/总CPU时间[式2]。接下来确定前台任务比率是否超过响应能力模式阈值(菱形1970)。这个响应能力模式阈值在不同实施例中可具有不同的值。注意模式阈值可以是可配置的,例如由OEM或DPTF组件配置。
如果确定响应能力前台任务比率没有超过这个响应能力模式阈值,则退出响应能力模式循环1950并且正常活跃模式可继续进行。否则,如果在菱形1970确定前台任务比率超过响应能力模式阈值,则控制传递到块1975,在这里可应用用于响应能力模式的功率管理策略。在一实施例中,这个功率管理策略可包括被提供给功率控制器来用于控制功率消耗的一个或多个配置值。作为一个示例,这个功率管理策略可包括一个或多个增大的功率限度。在一实施例中,这种增大的功率限度可被设置在大于热设计功率水平的水平。利用一个或多个增大功率限度,对于这些用户关键任务可实现更高的功率消耗。然而要注意,功率控制器可基于诸如电池充电水平、皮肤温度/热量之类的某些约束来将操作限制在这种增大功率限度以下。除了功率限度设置以外,这个响应能力模式功率管理策略还可包括使能量性能偏好偏向性能并且偏离能量效率,请求最低性能到保证性能(P1),激进地降级核心和包空闲状态以为了性能停留在更浅空闲状态中,以及其他操作。
在实施例中,可以准确地检测后台任务并且可以动态地识别最低性能核心。利用此信息,可以降低由于调度任务引起的响应能力影响,同时高效地运行它们来节约电池寿命。实施例从而使得能够为用户响应任务动态地预留更高性能核心,同时使得较低性能核心能够执行任何后台任务。实施例还可基于动态识别的操作模式来优化平台功率和性能/响应能力。这样,可以改善用户体验并且当基于电池电力操作时可以为短的用户关键任务实现类似AC的性能/响应能力。
这种用户关键任务可包括例如文档内容创建、应用处理、文档导出、文件或应用打开,等等。并且对于后台任务在执行中的安静模式场景可实现电池寿命改善。
实施例还可结合被训练来检测用户与平台的交互行为和参与模式的基于机器学习的解决方案来工作以使能对平台模式变化的适当检测和/或预测。
以下示例属于进一步实施例。
在一个示例中,一种处理器包括:至少一个核心;以及耦合到所述至少一个核心的功率控制器。所述功率控制器可包括:工作负载监视器电路,用于基于所述至少一个核心在活跃持续时间期间执行了后台任务的第一时间量来计算后台任务比率;以及控制电路,用于在所述后台任务比率超过后台模式阈值时动态地应用用于后台模式的功率管理策略,所述用于后台模式的功率管理策略用于降低所述处理器的功率消耗。
在一示例中,所述功率管理策略包括小于所述处理器的热设计功率水平的功率限度。
在一示例中,所述工作负载监视器电路还用于基于所述至少一个核心在第二持续时间期间执行了前台任务的第二时间量来计算前台任务比率。
在一示例中,所述控制电路用于在所述前台任务比率超过响应能力模式阈值时动态地应用用于响应能力模式的功率管理策略,所述用于响应能力模式的功率管理策略用于提高所述处理器的性能,其中所述用于响应能力模式的功率管理策略包括大于所述处理器的热设计功率水平的功率限度。
在一示例中,所述控制电路用于在所述前台任务比率没有超过所述响应能力模式阈值时维持当前功率管理策略。
在一示例中,所述控制电路用于在用户在评估间隔内未曾与包括所述处理器的系统交互时动态地应用所述用于后台模式的功率管理策略。
在一示例中,所述控制电路用于在用户在评估间隔内未曾与包括所述处理器的系统交互时计算所述后台任务比率。
在一示例中,所述功率控制器包括硬件反馈电路,用于确定包括所述至少一个核心的能量效率能力和性能能力的反馈信息。
在一示例中,所述硬件反馈电路用于:当检测到与包括所述处理器的系统的用户交互时,向调度器发送所述反馈信息以使得所述调度器能够至少部分基于所述反馈信息来将一个或多个后台任务调度到较低性能核心。
在一示例中,所述功率控制器用于:当检测到与包括所述处理器的系统的用户交互时,向调度器发送所述处理器的多个核心的硬件能力信息以使得所述调度器能够至少部分基于所述硬件能力信息将一个或多个后台任务调度到所述多个核心中的较低性能核心。
在另一示例中,一种方法包括:识别系统的多核处理器的至少一个第一核心,该至少一个第一核心的性能低于所述多核处理器的至少一个第二核心;设置后台核心掩码来指示出所述至少一个第一核心对于后台任务执行的亲和力;确定所述系统的用户是否在场;并且响应于确定所述用户在场,利用所述后台核心掩码将至少一个后台任务调度到所述至少一个第一核心。
在一示例中,所述方法还包括至少部分基于包括能量效率信息和性能信息的反馈信息来识别所述至少一个第一核心。
在一示例中,所述方法还包括将所述后台核心掩码设置为具有与默认核心掩码不同的一个或多个值。
在一示例中,所述方法还包括将一个或多个前台任务调度到所述至少一个第二核心。
在一示例中,所述方法还包括响应于确定所述用户不在场,将所述至少一个后台任务调度到所述至少一个第二核心。
在一示例中,所述方法还包括基于所述多核处理器在活跃持续时间期间执行了后台任务的第一时间量来计算后台任务比率。
在一示例中,所述方法还包括当所述后台任务比率超过后台模式阈值时利用用于后台模式的功率管理策略来配置所述多核处理器的功率控制器,所述用于后台模式的功率管理策略用于降低所述多核处理器的功率消耗。
在另一示例中,一种包括指令的计算机可读介质执行如上述示例的任何一者所述的方法。
在另一示例中,一种包括数据的计算机可读介质用于被至少一个机器用来制造至少一个集成电路以执行如上述示例的任何一者所述的方法。
在另一示例中,一种装置,包括用于执行如上述示例的任何一者所述的方法的装置。
在另外一个示例中,一种系统包括处理器和耦合到所述处理器的系统存储器。所述处理器可包括:多个核心,包括一个或多个第一核心和一个或多个第二核心,所述一个或多个第一核心与所述一个或多个第二核心是异构的;以及耦合到所述多个核心的功率控制器。所述功率控制器可包括:硬件反馈控制电路,用于为所述一个或多个第一核心确定第一硬件反馈信息并且为所述一个或多个第二核心确定第二硬件反馈信息,并且将所述第一硬件反馈信息和所述第二硬件反馈信息发送到调度器,其中所述第一硬件反馈信息和所述第二硬件反馈信息包括能量效率能力信息和性能能力信息;以及控制电路,用于基于来自所述调度器的模式提示信息来更新功率管理策略,所述模式提示信息是基于任务比率信息和用户交互确定的,其中所述功率控制器用于基于更新的功率管理策略为至少所述一个或多个第一核心更新频率和电压中的至少一者。所述系统存储器可包括硬件反馈数据结构来存储所述第一硬件反馈信息和所述第二硬件反馈信息。
在一示例中,当所述模式提示信息包括后台模式时,所述控制电路用于为至少所述一个或多个第一核心降低频率和电压中的至少一者。
在一示例中,所述调度器用于至少部分基于所述第一硬件反馈信息和所述第二硬件反馈信息来更新后台任务亲和力掩码,并且使用更新的后台任务亲和力掩码来将一个或多个后台任务调度到所述一个或多个第一核心并且限制所述一个或多个后台任务来自所述一个或多个第二核心。
要理解上述示例的各种组合是可能的。
注意在本文中可互换使用术语“电路”和“电子线路”。如本文所使用的,这些术语和术语“逻辑”用于单独地或者按任何组合提及模拟电路、数字电路、硬连线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路和/或任何其他类型的物理硬件组件。实施例可用于许多不同类型的系统中。例如,在一个实施例中,通信装置可被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信装置,而是其他实施例可指向其他类型的用于处理指令的装置,或者包括指令的一个或多个机器可读介质,这些指令响应于在计算装置上被执行而使得该装置实现本文描述的一个或多个方法和技术。
实施例可实现在代码中并且可被存储在其上存储有指令的非暂态存储介质上,所述指令可用于将系统编程为执行这些指令。实施例还可实现在数据中并且可被存储在非暂态存储介质上,该存储介质如果被至少一个机器使用则使得该至少一个机器制造至少一个集成电路来执行一个或多个操作。还有另外的实施例可以实现在包括信息的计算机可读存储介质中,所述信息当被制造到SoC或其他处理器中时将配置该SoC或其他处理器执行一个或多个操作。存储介质可包括但不限于任何类型的盘(包括软盘,光盘,固态驱动器(solidstate drive,SSD),致密盘只读存储器(compact disk read-only memory,CD-ROM),可改写致密盘(compact disk rewritable,CD-RW),以及磁光盘),半导体装置,比如只读存储器(read-only memory,ROM),随机访问存储器(random access memory,RAM),比如动态随机访问存储器(dynamic random access memory,DRAM),静态随机访问存储器(staticrandom access memory,SRAM),可擦除可编程只读存储器(erasable programmable read-only memory,EPROM),闪速存储器、电可擦除可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM),磁卡或光卡,或者任何其他类型的适用于存储电子指令的介质。
虽然已针对有限数目的实施例描述了本发明,但本领域技术人员将会明白从这些实施例的许多修改和变化。希望所附权利要求覆盖落在本发明的真实精神和范围内的所有这种修改和变化。
Claims (26)
1.一种用于应用功率管理策略的处理器,包括:
至少一个核心;以及
耦合到所述至少一个核心的功率控制器,所述功率控制器包括:
工作负载监视器电路,用于基于所述至少一个核心在活跃持续时间期间执行了后台任务的第一时间量来计算后台任务比率;以及
控制电路,用于在所述后台任务比率超过后台模式阈值时动态地应用用于后台模式的功率管理策略,所述用于后台模式的功率管理策略用于降低所述处理器的功率消耗。
2.如权利要求1所述的处理器,其中所述功率管理策略包括小于所述处理器的热设计功率水平的功率限度。
3.如权利要求1所述的处理器,其中所述工作负载监视器电路还用于基于所述至少一个核心在第二持续时间期间执行了前台任务的第二时间量来计算前台任务比率。
4.如权利要求3所述的处理器,其中所述控制电路用于在所述前台任务比率超过响应能力模式阈值时动态地应用用于响应能力模式的功率管理策略,所述用于响应能力模式的功率管理策略用于提高所述处理器的性能,其中所述用于响应能力模式的功率管理策略包括大于所述处理器的热设计功率水平的功率限度。
5.如权利要求4所述的处理器,其中所述控制电路用于在所述前台任务比率没有超过所述响应能力模式阈值时维持当前功率管理策略。
6.如权利要求3所述的处理器,其中所述控制电路用于在用户在评估间隔内未曾与包括所述处理器的系统交互时动态地应用所述用于后台模式的功率管理策略。
7.如权利要求3所述的处理器,其中所述控制电路用于在用户在评估间隔内未曾与包括所述处理器的系统交互时计算所述后台任务比率。
8.如权利要求1所述的处理器,其中所述功率控制器包括硬件反馈电路,用于确定包括所述至少一个核心的能量效率能力和性能能力的反馈信息。
9.如权利要求8所述的处理器,其中所述硬件反馈电路用于:当检测到与包括所述处理器的系统的用户交互时,向调度器发送所述反馈信息以使得所述调度器能够至少部分基于所述反馈信息来将一个或多个后台任务调度到较低性能核心。
10.如权利要求1所述的处理器,其中所述功率控制器用于:当检测到与包括所述处理器的系统的用户交互时,向调度器发送所述处理器的多个核心的硬件能力信息以使得所述调度器能够至少部分基于所述硬件能力信息将一个或多个后台任务调度到所述多个核心中的较低性能核心。
11.一种用于调度处理器中的任务的方法,包括:
识别系统的多核处理器的至少一个第一核心,该至少一个第一核心的性能低于所述多核处理器的至少一个第二核心;
设置后台核心掩码来指示出所述至少一个第一核心对于后台任务执行的亲和力;
确定所述系统的用户是否在场;并且
响应于确定所述用户在场,利用所述后台核心掩码将至少一个后台任务调度到所述至少一个第一核心。
12.如权利要求11所述的方法,其中所述方法还包括至少部分基于包括能量效率信息和性能信息的反馈信息来识别所述至少一个第一核心。
13.如权利要求11所述的方法,其中所述方法还包括将所述后台核心掩码设置为具有与默认核心掩码不同的一个或多个值。
14.如权利要求11所述的方法,其中所述方法还包括将一个或多个前台任务调度到所述至少一个第二核心。
15.如权利要求14所述的方法,其中所述方法还包括:响应于确定所述用户不在场,将所述至少一个后台任务调度到所述至少一个第二核心。
16.如权利要求11所述的方法,其中所述方法还包括基于所述多核处理器在活跃持续时间期间执行了后台任务的第一时间量来计算后台任务比率。
17.如权利要求16所述的方法,其中所述方法还包括当所述后台任务比率超过后台模式阈值时利用用于后台模式的功率管理策略来配置所述多核处理器的功率控制器,所述用于后台模式的功率管理策略用于降低所述多核处理器的功率消耗。
18.一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时实现如权利要求11-17中任一项所述的方法。
19.一种用于应用功率管理策略的系统,包括:
处理器,包括:
多个核心,包括一个或多个第一核心和一个或多个第二核心,所述一个或多个第一核心与所述一个或多个第二核心是异构的;以及
耦合到所述多个核心的功率控制器,所述功率控制器包括:
硬件反馈控制电路,用于为所述一个或多个第一核心确定第一硬件反馈信息并且为所述一个或多个第二核心确定第二硬件反馈信息,并且将所述第一硬件反馈信息和所述第二硬件反馈信息发送到调度器,其中所述第一硬件反馈信息和所述第二硬件反馈信息包括能量效率能力信息和性能能力信息;以及
控制电路,用于基于来自所述调度器的模式提示信息来更新功率管理策略,所述模式提示信息是基于任务比率信息和用户交互确定的,其中所述功率控制器用于基于更新的功率管理策略为至少所述一个或多个第一核心更新频率和电压中的至少一者;以及
耦合到所述处理器的系统存储器,其中所述系统存储器包括硬件反馈数据结构来存储所述第一硬件反馈信息和所述第二硬件反馈信息。
20.如权利要求18所述的系统,其中当所述模式提示信息包括后台模式时,所述控制电路用于为至少所述一个或多个第一核心降低频率和电压中的至少一者。
21.如权利要求18所述的系统,其中所述调度器用于至少部分基于所述第一硬件反馈信息和所述第二硬件反馈信息来更新后台任务亲和力掩码,并且使用更新的后台任务亲和力掩码来将一个或多个后台任务调度到所述一个或多个第一核心并且限制所述一个或多个后台任务来自所述一个或多个第二核心。
22.一种用于应用功率管理策略的处理器,包括:
至少一个核心装置;以及
耦合到所述至少一个核心装置的功率控制装置,所述功率控制装置包括:
工作负载监视器装置,用于基于所述至少一个核心装置在活跃持续时间期间执行了后台任务的第一时间量来计算后台任务比率;以及
控制装置,用于在所述后台任务比率超过后台模式阈值时动态地应用用于后台模式的功率管理策略,所述用于后台模式的功率管理策略用于降低所述处理器的功率消耗。
23.如权利要求22所述的处理器,其中所述功率管理策略包括小于所述处理器的热设计功率水平的功率限度。
24.如权利要求22所述的处理器,其中所述工作负载监视器装置还用于基于所述至少一个核心装置在第二持续时间期间执行了前台任务的第二时间量来计算前台任务比率。
25.如权利要求24所述的处理器,其中所述控制装置用于在所述前台任务比率超过响应能力模式阈值时动态地应用用于响应能力模式的功率管理策略,所述用于响应能力模式的功率管理策略用于提高所述处理器的性能,其中所述用于响应能力模式的功率管理策略包括大于所述处理器的热设计功率水平的功率限度。
26.如权利要求25所述的处理器,其中所述控制装置用于在所述前台任务比率没有超过所述响应能力模式阈值时维持当前功率管理策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410312785.XA CN118113127A (zh) | 2020-03-26 | 2020-11-30 | 用于基于任务特性动态调整平台功率和性能的装置和方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/830,485 US11422616B2 (en) | 2020-03-26 | 2020-03-26 | System, apparatus and method for dynamically adjusting platform power and performance based on task characteristics |
US16/830,485 | 2020-03-26 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410312785.XA Division CN118113127A (zh) | 2020-03-26 | 2020-11-30 | 用于基于任务特性动态调整平台功率和性能的装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113448423A true CN113448423A (zh) | 2021-09-28 |
Family
ID=77659250
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410312785.XA Pending CN118113127A (zh) | 2020-03-26 | 2020-11-30 | 用于基于任务特性动态调整平台功率和性能的装置和方法 |
CN202011381243.6A Pending CN113448423A (zh) | 2020-03-26 | 2020-11-30 | 用于基于任务特性动态调整平台功率和性能的装置和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410312785.XA Pending CN118113127A (zh) | 2020-03-26 | 2020-11-30 | 用于基于任务特性动态调整平台功率和性能的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11422616B2 (zh) |
CN (2) | CN118113127A (zh) |
DE (1) | DE102020134491A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210016707A (ko) * | 2019-08-05 | 2021-02-17 | 삼성전자주식회사 | 성능효율을 바탕으로 한 스케줄링 방법, 스케줄링 장치 및 컴퓨터 판독가능 저장 매체 |
DE102020134681A1 (de) | 2020-01-31 | 2021-08-05 | Intel Corporation | Vorrichtungen, verfahren und systeme für anweisungen zum anfordern eines verlaufs-resets eines prozessorkerns |
US11436018B2 (en) * | 2020-01-31 | 2022-09-06 | Intel Corporation | Apparatuses, methods, and systems for instructions to request a history reset of a processor core |
US11709536B2 (en) * | 2020-06-26 | 2023-07-25 | Advanced Micro Devices, Inc. | Multi-die system performance optimization |
US20230098742A1 (en) * | 2021-09-30 | 2023-03-30 | Advanced Micro Devices, Inc. | Processor Power Management Utilizing Dedicated DMA Engines |
US11847009B1 (en) * | 2022-07-22 | 2023-12-19 | Dell Products L.P. | Power control for improving foreground application performance in an information handling system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5629594A (en) * | 1992-12-02 | 1997-05-13 | Cybernet Systems Corporation | Force feedback system |
US6047308A (en) * | 1996-07-25 | 2000-04-04 | Cisco Technology, Inc. | Modem with integrated control processor and digital signal processor sessions |
US7903579B2 (en) * | 2008-08-26 | 2011-03-08 | International Business Machines Corporation | Self-optimization and self-healing of voice quality problems utilizing service oriented architecture |
US8897762B2 (en) * | 2012-02-28 | 2014-11-25 | Qualcomm Incorporated | Optimizing signaling load overhead and battery consumption for background applications |
CN110083444B (zh) * | 2013-12-10 | 2024-06-11 | 华为终端有限公司 | 一种任务管理方法及设备 |
US9798629B1 (en) * | 2013-12-16 | 2017-10-24 | EMC IP Holding Company LLC | Predicting backup failures due to exceeding the backup window |
US10628214B2 (en) * | 2015-06-01 | 2020-04-21 | Samsung Electronics Co., Ltd. | Method for scheduling entity in multicore processor system |
US20170024243A1 (en) * | 2015-07-22 | 2017-01-26 | Microsoft Technology Licensing, Llc | Background task management |
CN105320561B (zh) * | 2015-11-09 | 2019-03-08 | 深圳市万普拉斯科技有限公司 | 任务管理方法和系统 |
KR20170085286A (ko) * | 2016-01-14 | 2017-07-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN110333770B (zh) * | 2019-07-10 | 2023-05-09 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
-
2020
- 2020-03-26 US US16/830,485 patent/US11422616B2/en active Active
- 2020-11-30 CN CN202410312785.XA patent/CN118113127A/zh active Pending
- 2020-11-30 CN CN202011381243.6A patent/CN113448423A/zh active Pending
- 2020-12-21 DE DE102020134491.0A patent/DE102020134491A1/de active Pending
-
2022
- 2022-08-02 US US17/879,256 patent/US11775047B2/en active Active
-
2023
- 2023-08-15 US US18/449,890 patent/US20240045490A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11775047B2 (en) | 2023-10-03 |
DE102020134491A1 (de) | 2021-09-30 |
US20220374066A1 (en) | 2022-11-24 |
US11422616B2 (en) | 2022-08-23 |
US20210303054A1 (en) | 2021-09-30 |
US20240045490A1 (en) | 2024-02-08 |
CN118113127A (zh) | 2024-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048318B2 (en) | Reducing microprocessor power with minimal performance impact by dynamically adapting runtime operating configurations using machine learning | |
CN107209548B (zh) | 在多核处理器中执行功率管理 | |
US11775047B2 (en) | System, apparatus and method for dynamically adjusting platform power and performance based on task characteristics | |
US11409560B2 (en) | System, apparatus and method for power license control of a processor | |
US10620682B2 (en) | System, apparatus and method for processor-external override of hardware performance state control of a processor | |
US10976801B2 (en) | System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor | |
US20190041950A1 (en) | System, Apparatus And Method For Data Driven Low Power State Control Based On Performance Monitoring Information | |
CN113748397A (zh) | 用于动态控制处理器的处理电路的电流消耗的系统、装置和方法 | |
US20220206549A1 (en) | System, Apparatus And Method For Dynamic Power State Scaling Of A Voltage Regulator For A Processor | |
US20240028101A1 (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 | |
EP3340039A1 (en) | Processor prefetch throttling based on short streams | |
CN110998487A (zh) | 现场可编程门阵列(fpga)中的自适应操作电压的系统、装置和方法 | |
US11493975B2 (en) | System, apparatus and method for providing power monitoring isolation in a processor |
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 |