CN104781753B - 功率选通高速缓存存储器的一部分 - Google Patents
功率选通高速缓存存储器的一部分 Download PDFInfo
- Publication number
- CN104781753B CN104781753B CN201380059598.5A CN201380059598A CN104781753B CN 104781753 B CN104781753 B CN 104781753B CN 201380059598 A CN201380059598 A CN 201380059598A CN 104781753 B CN104781753 B CN 104781753B
- Authority
- CN
- China
- Prior art keywords
- cache
- block
- processor
- power
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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
-
- 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/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/3215—Monitoring of peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- 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)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
Abstract
在一个实施例中,处理器包括多个区块,每一区块都包括核以及区块高速缓存层次结构。此区块高速缓存层次结构包括第一级高速缓存、中级高速缓存(MLC)以及末级高速缓存(LLC),这些高速缓存中的每一个都是区块私有的。耦合到区块的控制器包括高速缓存功率控制逻辑,该逻辑接收关于区块的核以及区块高速缓存层次结构的利用率信息,并至少部分地基于此信息,导致区块的LLC被独立地功率选通。描述并要求保护其他实施例。
Description
背景技术
处理器功率耗散对于从低端移动处理器到高端服务器处理器的各种类型的处理器成为问题。在处理器组件之中,高速缓存存储器是处理器的面积以及晶体管数的主要部分,并耗费大量的泄漏功率。例如,对于典型的市场上销售的多核处理器,40%的总泄漏功率是由于末级缓存(LLC)和互连。
尽管通过关掉高速缓存存储器的某些部分来降低高速缓存的泄漏功率可以降低处理器功耗,但是,在实践中难以关掉LLC的同等部分,因为它通常被实现为共享存储器结构,在该结构中,系统的所有存储器地址的一部分被静态地映射到每一LLC部分。如此,即使多核处理器的一个核正在操作,所有LLC切片都在活跃中,以服务被映射到切片的存储器请求。如此,对于当前处理器中的高速缓存存储器,功率节省机会有限。
附图简述
图1是根据本发明实施例的系统的一部分的框图。
图2是根据本发明实施例的多区块多处理器的一个区块的框图。
图3是根据本发明的一个实施例的执行自适应本地高速缓存功率管理中涉及的组件的高级别架构框图。
图4是根据本发明一实施例的方法的流程图。
图5是根据本发明的一个实施例的处理器核的框图。
图6是根据本发明一实施例的多核处理器的框图。
图7是根据本发明一实施例的系统的框图。
具体实施方式
在各实施例中,诸如多区块芯片多处理器(CMP)之类的多核处理器可以配备有多级别高速缓存存储器层次结构。在此层次结构中,高速缓存存储器的每一级别都可以排列为私有的部分,每一私有的部分都与给定核或其他高速缓存代理相关联。如此,实现专用高速缓存组织,以允许使与高速缓存代理相关联的本地LLC部分或切片在某些情况下能够被动态地功率选通的实施例。如下文所描述的,LLC切片的这种动态功率选通可在存在下列情况中的至少一种时发生:(i)相关联的核处于低功率状态(诸如给定睡眠状态);以及,(ii)层次结构中的较低高速缓存级别(例如,中级高速缓存(MLC))为在核上运行的应用或其他工作负荷的执行提供足够的容量。如此,总的芯片功率可以显著降低。虽然此处所描述的各实施例是相对于对LLC的功率选通,但是,可以理解在其他实施例中,可以功率选通多级别高速缓存层次结构的不同级别。
现在参考图1,所示是根据本发明的实施例的系统的一部分的框图。如图1所示,系统100可以包括各种组件,包括处理器110,如图所示,该处理器110是多核处理器。处理器110可以通过外部电压调节器160耦合到电源150,调节器160可以执行第一电压转换,以向处理器110提供经初步调节的电压。
可以看出,处理器110可以是包括多个区块120a-120n的单管芯处理器。每一区块都包括处理器核以及相关联的专用高速缓存存储器层次结构,在某些实施例中,该层次结构是带有低级高速缓存、MLC以及LLC的三级层次结构。另外,每一个区块还可以与单个电压调节器125a-125n相关联。相应地,可以提供完全集成的电压调节器(FIVR)实现,以允许对每一个单个区块的电压进行细粒度的控制,因而对功率和性能进行细粒度的控制。如此,每一个区块都可以在独立电压和频率下操作,允许大灵活性,并提供用于平衡功耗与性能的广泛的机会。当然,各实施例也同样应用于没有集成的调压器的处理器包。
仍参考图1,额外的组件可以存在于处理器内,包括输入/输出接口132、另一接口134以及集成的存储器控制器136。可以看出,这些组件中的每一个都可以由另一集成的电压调节器125X来供电。在一个实施例中,接口132可以符合快速路径互连(QPI)协议,该协议在高速缓存一致性协议中提供点对点(PtP)链路,该高速缓存一致性协议包括多个层,包括物理层、链路层以及协议层。接口134又可以符合外围组件互连快速(PCIeTM)规范,例如,PCI ExpressTM规范基础规范版本2.0(2007年1月17日)。
还示出了功率控制单元(PCU)138,该功率控制单元(PCU)138可包括针对处理器110执行功率管理操作的硬件、软件和/或固件。在各实施例中,PCU 138可包括执行根据本发明的一个实施例的自适应本地LLC功率控制的逻辑。此外,PCU 138还可以通过专用接口耦合到外部电压调节器160。如此,PCU 138可以指示电压调节器向处理器提供请求的被调节的电压。
尽管为便于说明未示出,但是,可以理解,额外的组件可以存在于处理器100内,诸如非核逻辑、及其他组件,诸如内部存储器,例如,嵌入式动态随机存取存储器(eDRAM),等等。此外,尽管在图1的实现中是利用集成的电压调节器示出的,但是,各实施例不是限制性的。
虽然参考特定集成电路(诸如在计算平台或处理器中)描述了下列实施例,但其他实施例也适用于其他类型的集成电路和逻辑设备。在此描述的实施例的相似的技术和教导可适用于也可受益于更好能效和节能的其它类型的电路或半导体器件。例如,所披露的实施例不限于任何具体类型的计算机系统,并也可用于其它设备,例如手持设备、芯片上系统(SoC)以及嵌入式应用。手持设备的一些例子包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(PDA)和手持PC。嵌入式应用一般包括微控制器、数字信号处理器(DSP)、网络计算机(上网本)、机顶盒、网络集线器、广域网(WAN)交换机或能执行下面教示的功能和操作的任何其它系统。此外,本申请中描述的装置、方法和系统不限于物理计算设备,而是也涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的,本文描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件还是它们的组合)对于“绿色技术”未来是至关重要的,诸如对于包含US经济大部分的产品的节能和能量效率。
注意,此处所描述的由本地LLC功率控制实现的电能节省可以独立于基于操作系统(OS)的机制,诸如高级配置和平台接口(ACPI)标准(例如,2006年10月10日发布的Rev.3.0b),并与其互补。根据ACPI,处理器可以操作在各种性能状态或级别,即,从P0到PN。一般而言,P1性能状态可以对应于可以由OS请求的最高保证的性能状态。除此P1状态之外,OS还可以请求较高性能状态,即,P0状态。如此,此P0状态可以是机会性状态,其中,当有电能和/或热预算可用时,处理器硬件可以配置处理器或其至少一些部分,以便以高于保证的频率操作。在许多实现中,处理器可包括多个所谓的高于保证的最大频率(也被称为P1频率)的元频率(bin frequency)。另外,根据ACPI,处理器还可以在各种功率状态或级别下操作。相对于功率状态,ACPI指定不同的功率消耗状态,一般被称为C状态,C0,C1到Cn状态。当核活跃时,它在C0状态运行,而当核空闲时,它可以被置于核低功率状态,也叫做核非零C状态(例如,C1-C6状态),每一个C状态都处于低功率消耗级别(以便C6是比C1更深的低功率状态,等等)。当多核处理器的所有核都处于核低功率状态时,可以将处理器置于封装低功率状态,诸如封装C6低功率状态。此封装低功率状态是比核C6状态更深的低功率状态,因为额外的处理器电路可以被关闭,诸如包括锁相回路(PLL)的某些时钟生成电路。
现在参照图2,其中示出了根据本发明一实施例的多区块CMP的区块的框图。如图2所示,区块200包括可以跨CMP的每一区块复制以提供多处理能力的各种组件。在图2的实施例中,区块200包括核210,在不同的实施例中核210可以是有序核或无序核。在一个实施例中,核210可以具有包括用于实现指令集架构(ISA)的处理器逻辑和电路的微架构。因此,具有不同微架构的诸个处理器可共享公共指令集的至少一部分。例如,来自位于加利福尼亚州圣克拉拉市的英特尔公司的奔腾四(Pentium 4)处理器、酷睿(CoreTM)处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(AdvancedMicro Devices,Inc.)的诸多处理器执行几乎相同版本的x86指令集(在更新的版本中加入了一些扩展),但具有不同的内部设计。类似地,由其他处理器开发公司(诸如,ARM控股有限公司、MIPS或它们的授权方或兼容方)所设计的诸多处理器可共享至少一部分公共指令集,但可包括不同的处理器设计。例如,ISA的相同寄存器架构可使用新的或已知的技术在不同的微架构中以不同方法来实现,包括专用物理寄存器、使用寄存器重命名机制(诸如,使用寄存器别名表(RAT)、重排序缓冲器(ROB)、以及引退寄存器组)的一个或多个动态分配物理寄存器。在一个实施例中,寄存器可包括:可由软件编程者寻址或不可寻址的一个或多个寄存器、寄存器架构、寄存器组、或其他寄存器集合。
核210可以耦合到第一级高速缓存220,该第一级高速缓存220可以是与核紧密地关联的相对较小的高速缓存存储器。高速缓存220又耦合到可包括较大的存储容量的中级高速缓存(MLC)230。MLC 230又耦合到高速缓存层次结构的进一步部分,即可包括更大量的存储容量的末级高速缓存(LLC)240。在某些实施例中,由高速缓存220、MLC 230,以及LLC240构成的此高速缓存层次结构可以是包括性的高速缓存层次结构,以便存储在高速缓存220中的全部信息存在于高速缓存230中,且存储在高速缓存230中的全部信息存在于LLC240中。当然,当在核活跃的情况下功率选通LLC 240时,层次结构是非包括性的。
还可以理解,这种包括区块的高速缓存层次结构包括利用更大高速缓存存储器结构的LLC 240实现的共享高速缓存的一些切片或某些部分。换言之,LLC可以是等级分布式存取区块的更大高速缓存结构的一部分另外,区块200还包括路由器250以及目录260。一般而言,路由器250可以被用来往返于CMP的其他组件(诸如处理器的一个或多个其他区块和/或其他代理)路由通信。目录260又可以是在系统内启用高速缓存一致性操作的分布式目录协议的一部分。尽管在图2的实施例以这样高级别地表示,然而要理解本发明的范围不限于此方面。例如,尽管图2示出了三级的高速缓存层次结构,但是,可以理解,本发明的范围在这方面不受限制,在不同的实施例中,可以提供两级高速缓存层次结构(或具有大于三级的层次结构)。此外,尽管此处所描述的各实施例相对于对LLC的功率控制,但是,在具有不同数量的级别的实现中,可以控制另一种高速缓存级别,如此处所描述的。
现在参考图3,所示是根据本发明的一个实施例的执行自适应本地高速缓存功率管理中涉及的组件的高级别架构框图。如图3所示,电路275包括向高速缓存功率管理逻辑290提供关于处理器活动的信息的各种组件,高速缓存功率管理逻辑290又生成关于对LLC的功率控制的决定。在一个实施例中,逻辑290可以属于处理器的PCU,或它可以是独立控制逻辑。可以看出,区块200包括核210以及包括MLC以及LLC的高速缓存层次结构225。注意,可以包括高速缓存层次结构的低级高速缓存,作为核210的一部分。另外,还可以理解,MLC和LLC可以是单独的,以便响应于接收到的各种输入,逻辑290可以基于性能量度及其他条件,发送导致高速缓存层次结构的LLC部分被功率选通的决定。
在图3中进一步可以看出,OS 280向逻辑290提供QoS信息。此外,可以是处理器包的集成存储器控制器的存储器控制器285还提供某些信息,包括存储器开销信息,下面将进一步讨论其细节。逻辑290还从区块200接收各种性能量度信息。此信息可包括从核210接收到的核活动信息,以及关于高速缓存层次结构的利用率信息,包括来自MLC的缺失信息。基于所有此信息,逻辑290可以作出相对于LLC的控制决策并将该决定提供给高速缓存层次结构225。
如果决定是功率选通LLC,则可以清空存储在LLC中的信息,例如,清空到另一个区块的另一个高速缓存层次结构,处理器包内的另一个存储器,诸如eDRAM或其他内部存储器。或可以通过存储器控制器285将该信息清空到系统存储器。尽管在图3的实施例以这样高级别地表示,然而要理解本发明的范围不限于此方面。
注意,各实施例还应用于其他处理器架构,诸如群集化的高速缓存组织,例如,管芯上的簇,其中,LLC功率管理的单位是LLC切片的簇,代替一个单个LLC切片。在整个本讨论中,术语“核”和“一簇核”可互换地使用。
为判断是否可以通过LLC功率选通来进行电能节省,各实施例可以连续地监测核活动和高速缓存行为,来检测某些情况。在一个实施例中,可以检测两种不同的情况。第一,当核将被置于某一低功率状态(例如,进入C6状态)时,潜在地,可以清空并关闭其LLC,以节省电能。为判断电能节省是否可能,可以分析诸如某些性能量度之类的一个或多个运行时条件,以作出有关即将来临的空闲持续时间是否可以摊销清空并关闭LLC切片的成本的智能决策。第二,对于处于活动状态的核,可以分析其他性能量度,诸如正在从MLC发出的未命中。如果在一段时间内由MLC所生成的未命中的数量小于阈值,则可以清空并功率选通LLC,因为这是MLC具有足够的高速缓存容量来处理给定工作负荷的指示。在一个实施例中,要被分析的运行时条件包括工作负荷特征、启用的路数,每千个指令的MLC的未命中(mpki),以及即将来临的空闲持续时间估计。在某些实施例中,还可以考虑OS/应用的服务质量(QoS)要求,因为功率选通LLC会引入比较长的恢复延迟(例如,由于从系统存储器加载数据)。注意,在某些实施例中,此延迟可以通过将数据存储在其他利用不足的LLC切片中或存储在诸如eDRAM之类的另一个存储器中,来减轻。
各实施例可以当核进入低功率状态时作出关于是否清空并功率选通LLC切片的判断,因为清空/重新加载高速缓存内容以及进入/退出给定低功率状态具有与动作相关联的某些开销。如此,可以判断LLC切片是否将停留在低功率状态至少最小的时间量(此处称为能量得失平衡时间(EBET),以补偿用于转换(进出)的能量开销。此外,当核唤醒时,清空高速缓存切片并进入低功率状态还可能产生少量延迟,如此,可能会影响响应性以及性能。如此,当预期的空闲持续时间足够长以摊销开销(如通过EBET来度量),以及当某一性能级别被维持时,各实施例可以只清空并关闭LLC切片。
进一步,如果核正在运行,则MLC可以在较短时间内提供足够的高速缓存容量,直到应用程序改变其行为。因此,还可以检测此应用行为,以便只有在MLC提供足够的容量并且工作负荷的存储器需求相对稳定的情况下,才清空LLC,以防止振荡。
在一个实施例中,EBET被定义为LLC转换到给定较低功率状态并保持在该状态(包括进入和退出转换时间)的最短时间,以补偿从通电状态进入和退出此状态的成本。根据一实施例,此EBET基于静态和动态条件两者,包括恢复和退出延迟,在导通、转换和关闭状态的功耗,以及动态运行时间条件,诸如所使用的高速缓存大小。例如,当打开的高速缓存大小非常小时,清空并重新加载数据的开销通常小,如此,降低总开销。
在一个实施例中,在确定自适应EBET值时,可以考虑下列因素:(1)进入和退出延迟(L);(2)进入和退出时段的功率(Pt);(3)当LLC被功率选通时,LLC导通功率(Pon),以及LLC泄漏功率(Poff);(4)重新加载时间内的核功率Pc,以及在清空和重新加载时间内存储器相关的功率Pm;以及(5)内容清空开销Of,以及内容重新加载开销Or,包括系统存储器访问开销,例如,如从存储器控制器中获取的。此总开销是O=Of+Or。
清空以及重新加载高速缓存内容要花费时间,会带来开销。然而,需要花费多长时间取决于工作负荷特征。能源消耗开销还取决于系统特征,诸如存储器以及存储器控制器功耗。前4个因素是可以存储在处理器的配置存储器中的设计参数,而第五个因素取决于运行时间动态特性。如果给定工作负荷只消耗少量高速缓存路数,则清空时间以及重新加载时间也将小。此外,对于不频繁地重复使用数据的工作负荷(诸如流式应用),高速缓存清空以及重新加载成本相对低,因为不管怎样,将加载新的数据,不管清空与否。此工作负荷判断可以,在一个实施例中,使用LLC未命中率来度量。如果未命中率高,则应用表现流式特征。
在确定开销O之后,可以按如下方式计算出EBET:
EBET*Pon=O*Pon+L*Pt+(EBET-O-L)*Poff+Pc*Or+Pm*O。
它产生:
EBET=(O*Pon+PcOr+Pm*O+L*Pt-(O-L)*Poff)/(P0n-Poff)。
为了简化设计,Of和Or可以被替换为表示平均清空和重新加载开销的设计参数。注意,可以基于工作负荷特征,周期性地并且动态地更新EBET值。如果工作负荷行为稳定,则可以不太频繁地更新EBET,以降低计算开销;否则,可以更频繁地更新EBET。作为示例,对于相对稳定工作负荷,可以大致每隔几分钟更新EBET值。相反,对于动态地变化的工作负荷,可以大致每隔几秒钟或者甚至更短,更新EBET值。
在确定得失平衡时间EBET之后,可以将即将来临的空闲持续时间的长度与EBET值进行比较,以判断清空并关闭LLC切片是否节能。在一个实施例中,在此分析中可以考虑QoS因素。
有多项技术用于获取对即将来临的空闲持续时间的估计。一个示例性技术包括自动降级方法,其中,控制器观察最近几个空闲持续时间。如果当LLC被清空时这些持续时间小于自适应EBET,那么,控制器自动地将处理器降级到低功率状态(诸如核C4状态),在该状态,高速缓存不被功率选通。
估计即将来临的空闲持续时间的另一示例性技术包括使用一个或多个设备空闲持续时间报告及其他启发式法。可以从耦合到处理器的设备(诸如一个或多个外围设备或IO设备)接收这些设备空闲持续时间报告。基于此信息和启发式信息,可以,例如,由控制逻辑,预测下一空闲持续时间。或者,控制逻辑可以基于最近的空闲持续时间的实例的历史,诸如通过跟踪趋势并提供空闲持续时间的合理的估计的移动过滤器,预测空闲持续时间。
用于功率管理的更进一步的示例性技术是基于对MLC利用率的测量,功率选通LLC,以判断是否需要LLC。即,如果MLC满足工作负荷的存储器需要,则为给定数量的指令生成的未命中的数量应该极少。因此,为了测量MLC性能,可以监测一个量度,诸如每千个指令MLC中的未命中的数量(mpki),该值可以从与LLC相关联的一个或多个计数器中获取。如果此量度(或另一种合适的量度)在超过EBET的评估时间内持续地低于给定阈值(例如,th_mpki),那么,可以判断清空并功率选通LLC。注意,此阈值可以是零以上的值。即,即使MLC正在生成未命中,但是,未命中以非常低的速度生成,则更有益的是功率选通LLC并让那些未命中由存储器层次结构的其它部分服务,代替让LLC保持耗费电能以及泄漏功率服务这样的慢请求速率。在某些实施例中,此阈值(th_mpki)可以取决于从LLC获取数据与从存储器获取数据之间的LLC泄漏以及动态功率差异。
接下来,可以作出关于当相关联的核或核的簇进入给定低功率状态时是否应该功率选通LLC切片的决定。独立地,可以监视MLC利用率,以判断甚至在核正在运行的情况下是否可以功率选通LLC。
在一个实施例中,可以考虑QoS信息以防止太频繁的深的低功率进入,以避免性能影响。QoS信息可以以不同的方式传输。例如,QoS信息可以指出处理器是否被允许进入给定低功率状态和/或通过定义在单位时间内可以发生多少次深的低功率状态进入的QoS预算。在另一个实施例中,也可以从能量性能偏置值中获取QoS信息,以指出用户正在预期什么类型的性能/功率平衡的高级别方向。
现在参照图4,其中示出了根据本发明一实施例的方法的流程图。更具体而言,方法300可以由处理器的各种逻辑执行。作为示例,方法300的至少某些部分可以由PCU的逻辑来执行。另外,在图4中执行的操作中还可以涉及对处理器的性能监测。注意,虽然在图4中被示为组合方法,但是,可以理解,在其他实现中,方法300的左支和右支可以独立地执行。例如,方法300的左支可以在寻求进入深的低功率状态时执行,而方法300的右支可以在性能监测活动中执行,以判断在正常的处理器操作过程中是否可以有电能节省。此外,还可以理解,在一些实施例中,执行方法300的这些不同的分支的实体可以不同。例如,PCU的逻辑可以执行方法300的左支中的操作,而性能监视器或其他处理器逻辑可以执行右支操作。
如图4所示,方法300的左支的操作从判断一个核或核的簇是否正在进入深的低功率状态开始,在一个实施例中,该状态可以是核C6状态(框310)。如果是,则控制进入框320,在那里,可以接收QoS信息。虽然本发明的范围在这方面不受限制,但是,在一个实施例中,可以从OS或应用接口中获取此QoS信息,该信息可以对应于工作负荷的相对优先级。接下来,控制进入菱形325,在那里,可以判断是否允许更深的低功率状态。作为示例,此更深的低功率状态可以是核深的C6状态。如果不允许此状态,则相对于方法300的左支的分析可以结束。否则,如果此更深的低功率状态将被允许,则控制进入框330,在那里,可以确定空闲持续时间信息。如上文所讨论的,可以以各种方式确定此信息。
接下来,控制进入框335,可以确定EBET。虽然在某些实施例中,可以动态地计算此值,但是,也可以使用此EBET的高速缓存的值来执行分析。作为示例,固定的EBET可以存储在配置存储器中,或可以访问由逻辑预先计算出的高速缓存的EBET。
仍参考图4,接下来,在菱形340,可以判断获取的此空闲持续时间是否大于EBET值。如果不,相对于高速缓存存储器的控制,不采取进一步的动作,且区块可以维持在给定低功率状态,例如,在C6状态。否则,如果判断空闲持续时间大于EBET值,则控制进入框330,在那里,可以清空并功率选通LLC,如此,进一步缩小功耗。虽然本发明的范围在这方面不受限制,但是,在一个实施例中,此清空和功率选通可包括执行将所有脏数据从LLC写入到较高级别的存储器层次结构(例如,系统存储器)的操作。在此之后,LLC可以被功率选通,如此降低功耗。
现在参考方法300的右支,它可以从框360通过接收例如MLC的高速缓存的性能量度信息开始。虽然本发明的范围在这方面不受限制,但是,可以监测的一个性能量度是未命中率,在一个实施例中,未命中率可以作为mpki值来度量。接下来,控制进入菱形365,以判断此未命中率是否小于阈值。在一个实施例中,此阈值可以对应于表示耦合到MLC的LLC的相对低利用率的未命中的阈值。如果此未命中值小于此阈值,则控制进入框370,在那里,可以执行对评估持续时间的计数,无论是从初始值还是继续其未命中率低于此阈值的评估持续时间。在一个实施例中,此评估持续时间大于EBET值。
接下来,控制进入菱形375,判断性能量度信息(例如,未命中率)是否保持在此阈值之下。如果不,则在框360,计时器可以复位,监测可以再次开始。
否则,如果在菱形375,判断未命中率保持在阈值级别之下,则控制进入菱形390,在那里,可以判断评估持续时间是否大于EBET值。如果不,则控制回到框370,进一步计数评估持续时间。如果判断评估持续时间大于EBET值,则控制进入上文所讨论的框350,在那里,可以清空并功率选通LLC。尽管在图4的实施例以这样高级别地表示,然而要理解本发明的范围不限于此方面。
因为更多的计算机系统被用于互联网、文本以及多媒体应用,所以逐渐地引进更多的处理器支持。在一个实施例中,指令集架构(ISA)可与一个或多个计算机架构相关联,一个或多个计算机架构包括数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处理、以及外部输入输出(I/O)。
在一个实施例中,ISA可由一个或更多微体系结构来实现,微体系结构包括用于实现一个或多个指令集的处理器逻辑和电路。因此,具有不同微架构的诸个处理器可共享公共指令集的至少一部分。例如,来自位于加利福尼亚州圣克拉拉市的英特尔公司的奔腾四(Pentium 4)处理器、酷睿(CoreTM)处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(Advanced Micro Devices,Inc.)的诸多处理器执行几乎相同版本的x86指令集(在更新的版本中加入了一些扩展),但具有不同的内部设计。类似地,由其他处理器开发公司(诸如,ARM控股有限公司、MIPS或它们的授权方或兼容方)所设计的诸多处理器可共享至少一部分公共指令集,但可包括不同的处理器设计。例如,ISA的相同寄存器架构可使用新的或已知的技术在不同的微架构中以不同方法来实现,包括专用物理寄存器、使用寄存器重命名机制(诸如,使用寄存器别名表(RAT)、重排序缓冲器(ROB)、以及引退寄存器组)的一个或多个动态分配物理寄存器。在一个实施例中,寄存器可包括:可由软件编程者寻址或不可寻址的一个或多个寄存器、寄存器架构、寄存器组、或其他寄存器集合。
现在参照图5,图5示出了根据本发明一个实施例的处理器核的框图。如图5所示,处理核600可以是多级流水线类型的无序处理器。核600可支持一个或多个指令集(诸如,x86指令集(具有增加有更新版本的一些扩展)、加利福尼亚州桑尼威尔的MIPS技术公司的MIPS指令集、加利福尼亚州桑尼威尔的ARM控股公司的ARM指令集(具有可选附加扩展,诸如NEON))。应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化(其中单个物理核为物理核正在同步多线程化的各线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后诸如用超线程化技术来同步多线程化)。
包括核600的处理器可以是诸如英特尔公司所提供的CoreTMi3、i5、i7、2Duo以及Quad、XeonTM、ItaniumTM、XScaleTM、或StrongARMTM之类的通用处理器。或者,处理器可以来自另一个公司,诸如来自ARM控股公司、MIPS、等等。处理器可以是专用处理器,诸如,例如,网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器、或类似物。处理器可以在一个或多个芯片上实现,并可以是一个或多个衬底的一部分,和/或可以使用若干种处理技术中的任何一种,诸如,例如,BiCMOS、CMOS,或NMOS,在一个或多个衬底上实现。
如图5所示,核600可以由于集成的电压调节器609,而在各种电压和频率下操作。如图5所示,核600包括前端单元610,前端单元610可用于取得将被执行的指令并将这些指令准备好以供以后在处理器中使用。例如,前端单元610可包括获取单元601、指令高速缓存603和指令解码器605。在某些实现中,前端单元610可进一步包括跟踪高速缓存、微码存储以及微操作存储。获取单元601可(例如,从存储器或指令高速缓存603)获取宏指令并将它们馈送至指令解码器605以将它们解码为原语,即用于通过处理器执行的微操作。
无序(OOO)引擎615耦合在前端单元610与执行单元620之间,无序引擎615可用于接收微指令并将它们准备好以供执行。更具体地,OOO引擎615可包括多个缓冲器,多个缓冲器用于重排序微指令流并分配执行所需的多个资源,以及提供对多个寄存器组(例如,寄存器组630和扩展寄存器组635)中的存储位置上的逻辑寄存器的重命名。寄存器组630可包括用于整数和浮点操作的单独的寄存器组。扩展寄存器组635可提供向量尺寸单元的存储,例如,每寄存器256或512位。
在执行单元620中可存在多种资源,包括例如多种整数、浮点和单指令多数据(SIMD)逻辑单元等其它专门硬件。例如,除了这些执行单元以外,此类执行单元可包括一个或多个算术逻辑单元(ALU)622。
可以向包括重新排序缓冲器(ROB)的引退单元640,提供来自执行单元的结果。ROB可包括多种阵列和逻辑以接收与被执行的指令相关联的信息。然后,通过引退单元640检查该信息以确定指令是否可以有效引退并且结果数据是否被提交至处理器的架构状态,或阻止指令的正常引退的一个或多个异常是否发生。当然,引退单元640可处理与引退相关联的其他操作。
如图5所示,引退单元640耦合至高速缓存650,在一个实施例中,高速缓存650可以是低级高速缓存(例如,L1高速缓存),尽管本发明的范围不限于此。而且,执行单元620可直接耦合至高速缓存650。例如,从高速缓存650,可发生与更高级高速缓存、系统存储器等等的数据通信。更具体而言,在基于区块的多核处理器中,核600和低级高速缓存650可以又耦合到区块的MLC和LLC,如此处所描述的。此外,当核600将进入低功率状态时和/或当低级高速缓存650和/或MLC具有足够的容量来处理在核上执行的工作负荷时,区块的相关联的末级高速缓存可以被功率选通,如此处所描述的。
虽然在图5的实施例中用高级框图示出,但应理解本发明的范围不限于此方面。例如,虽然图5的实现方式涉及了诸如ISA之类的无序机,但本发明的范围在此方面不受限制。即,其他实施例可在以下处理器中实现:顺序处理器;诸如基于ARM的处理器之类的精简指令集计算(RISC)处理器;或具有另一类型ISA的处理器,该另一类型的ISA可经由仿真引擎和相关联的逻辑电路来仿真不同ISA的指令和操作。
现在参照图6,其中示出了根据本发明一实施例的处理器的框图。如图6的实施例所示,处理器700包括多个域。具体而言,核域710可以包括多个区块7100–710n,图形域720可以包括一个或多个图形引擎,并且还可以存在系统代理域750。在各实施例中,系统代理域750可以处理功率控制事件和功率管理,以便可以控制域710和720的单个单元(诸如核和/或图形引擎),以在考虑到在给定单元中发生的活动(或不活动)的情况下,在合适的超频模式频率,独立地动态地操作。域710和720中的每一个都可以在不同的电压和/或功率下操作,此外,域内的单个单元中的每一个都还可以在独立频率和电压下操作。注意,尽管仅示出了三个域,然而要理解本发明的范围不限于这个方面并且其它实施例中可存在附加的域。
一般而言,除了各种执行单元和附加的处理元件外,每一区块710都可包括专用高速缓存层次结构,包括两个或更多高速缓存级别。各种区块又可以通过环形互连730彼此耦合,环形互连730在核、图形域720和系统代理电路750之间进一步提供互连。在一个实施例中,互连730可以是核域的一部分。然而,在其它实施例中,环互连可以是其本身的域。
如进一步所见那样,系统代理域750可包括显示器控制器752,其可向相关联的显示器提供控制和接口。可进一步看出,系统代理域750可以包括功率控制单元755。如图6所示,PCU 755可包括根据本发明的一个实施例的高速缓存功率控制逻辑759。基于从相关联的区块710接收到的各种信息以及在PCU 755内作出的低功率状态决定,当不需要高速缓存切片用于执行当前工作负荷时和/或当区块的相关联的核正在进入低功率状态时,控制逻辑759可以导致区块中的一个或多个的专用高速缓存层次结构的LLC或其他部分被功率选通,以降低功率消耗。然而,由于存在于多核处理器700中的专用高速缓存层次结构,至少一个其他区块可以保持全功率,包括其LLC。如此,可以避免由不同的专用高速缓存切片构成的整体LLC上保持通电的必要性,提高功率节省机会。
如图6中进一步所见的,处理器700可进一步包括集成的存储器控制器(IMC)770,它可向例如动态随机存取存储器(DRAM)之类的系统存储器提供接口。可以存在多个接口7800–780n以实现处理器与其他电路系统之间的互连。例如,在一个实施例中,可提供至少一个直接媒体接口(DMI)接口以及一个或多个高速外设组件互连(PCI Express(PCIeTM))接口。再进一步,为了提供诸如附加处理器或其它电路的其它代理之间的通信,根据快速通道互连(QPI)协议的一个或多个接口也可被提供。尽管在图6的实施例以这样高级别地表示,然而要理解本发明的范围不限于此方面。
实施例可在许多不同的系统类型中实现。现在参照图7,其中示出了根据本发明一实施例的系统的框图。如图7所示,多处理器系统800是点对点互连系统,并包括通过点对点互连850而耦合的第一处理器870和第二处理器880。如图7所示,处理器870和880中的每一个可以是多核处理器,包括第一和第二处理器区块(即,处理器区块874a和774b以及处理器区块884a和784b),但处理器中也可能存在更多核。处理器区块中的每一个都可包括核和专用高速缓存层次结构,其中,所述专用高速缓存层次结构中的一个或多个级别可以独立于区块的其余部分,以及独立于多区块处理器中的其他区块,被功率选通。
仍参考图7,第一处理器870还包括存储器控制器中枢(MCH)872和点对点(P-P)接口876和878。类似地,第二处理器880包括MCH 882和P-P接口886和888。如图7所示,MCH 872和882将处理器耦合到相应的存储器,即,存储器832和存储器834,它们可以是本地连接到相应的处理器的系统存储器(例如,DRAM)的一部分。第一处理器870和第二处理器880可分别经由P-P互连852和854耦合至芯片组890。如图7中所示,芯片组890包括P-P接口894和898。
此外,芯片组890包括用于通过P-P互连839将芯片组890与高性能图形引擎838进行耦合的接口892。芯片集890又可以通过接口896耦合到第一总线816。如图7所示,各种输入/输出(I/O)设备814以及总线桥接器816可以耦合到第一总线816,总线桥接器818将第一总线816耦合到第二总线820。在一个实施例中,各种设备可耦合到第二总线820,包括例如键盘/鼠标822、通信设备826以及数据存储单元828,如可包括代码830的盘驱动器或其他大容量存储设备。此外,音频I/O 824可耦合至第二总线820。各实施例可以被合并到其他类型的系统中,包括诸如智能蜂窝电话、平板计算机、上网本、UltrabookTM等等之类的移动设备。
通过使用如此处所描述的自适应本地LLC和相关联的功率管理,可以实现大量的电能节省,特别是当每个核利用率低(例如,小于大致30%),这对于诸如基于服务器的工作负荷之类的某些工作负荷是相对常见的。通过使用具有专用高速缓存组织和动态LLC功率管理的本发明的实施例,功率消耗可以降低-50%,带有10%的负载线,以及-40%,带有20%的负载线。在具有私有的或群集化的高速缓存组织的多核处理器中,当维持性能要求时,通过基于运行时条件,在合适时清空本地LLC部分并使1其断电,可以实现最大处理器高速缓存电能节省机会。
各实施例可在许多不同类型的系统中使用。例如,在一个实施例中,通信设备可以被安排为执行在此所述的各个方法和技术。当然,本发明的范围不限于通信设备,而是其他实施例可以针对用于处理指令的其他类型的装置或者包括指令的一个或多个机器可读介质,所述指令响应于在计算设备上被执行而致使该设备执行在此所述的方法和技术中一个或多个。
实施例可以代码的形式实现,而且可存储在其上存储有可用于对系统编程以执行这些指令的非临时存储介质上。存储介质可包括但不限于:包括软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)以及磁光盘的任何类型的磁盘;诸如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦写可编程只读存储器(EPROM)、闪存、电可擦写可编程只读存储器(EEPROM)之类的半导体器件;磁卡或光卡,或适合于存储电子指令的任何其他类型的介质。
虽然已经针对有限个实施例描述了本发明,但本领域技术人员将会理解从中得出的多种修改和变化。所附权利要求旨在覆盖落入本发明的真实精神和范围中的所有这些修改和变化。
Claims (17)
1.一种用于功率选通高速缓存存储器的处理器,包括:
多个区块,每一区块都包括核和区块高速缓存层次结构,所述区块高速缓存层次结构包括第一级高速缓存以及第二级高速缓存,其中所述第一级高速缓存和所述第二级高速缓存中的每一个都在物理上是所述区块私有的;以及
耦合到所述多个区块的控制器,所述控制器包括高速缓存功率控制装置,所述高速缓存功率控制装置用于接收关于第一区块的所述核以及所述区块高速缓存层次结构的利用率信息,并且用于至少部分地基于所述利用率信息,当所述第一级高速缓存的未命中率小于第一阈值时,导致所述第一区块的所述第二级高速缓存被独立地功率选通。
2.如权利要求1所述的处理器,其特征在于,所述高速缓存功率控制装置将在所述核处于活动状态时独立地功率选通所述第二级高速缓存。
3.如权利要求1所述的处理器,其特征在于,当所述核处于低功率状态,所述多个区块中的至少另一个区块的核处于活动状态时,所述高速缓存功率控制装置将导致所述第二级高速缓存被功率选通。
4.如权利要求1所述的处理器,其特征在于,所述高速缓存功率控制装置将确定能量得失平衡值,并且当所述核的估计的空闲持续时间大于所述能量得失平衡值时,导致所述第二级高速缓存被功率选通。
5.如权利要求4所述的处理器,其特征在于,所述高速缓存功率控制装置将使用与所述处理器相关联的静态值以及动态值,计算所述能量得失平衡值。
6.如权利要求4所述的处理器,其特征在于,当所述估计的空闲持续时间大于所述能量得失平衡值时,所述高速缓存功率控制装置将基于与在所述处理器上执行的工作负荷相关联的服务质量(QoS)信息,防止所述第二级高速缓存被功率选通。
7.如权利要求1所述的处理器,其特征在于,当所述第二级高速缓存被功率选通时,所述第一级高速缓存将响应于所述第一级高速缓存中的未命中,向系统存储器发出读取请求。
8.如权利要求1所述的处理器,其特征在于,在所述第二级高速缓存被功率选通之前,存储在所述第二级高速缓存中的至少一部分信息将被清空到所述多个区块中的不同的区块的不同的第二级高速缓存。
9.一种用于功率选通高速缓存存储器的方法,包括:
确定多核处理器的核的估计的空闲持续时间,与专用高速缓存层次结构相关联的所述核包括第一级高速缓存、中级高速缓存(MLC)以及末级高速缓存(LLC);
确定得失平衡条件的时间值;
从所述专用高速缓存层次结构接收性能量度信息;
将所述性能量度信息与阈值进行比较;以及
当在与另一个专用高速缓存层次结构相关联的所述多核处理器中的至少一个其他核仍保持活动状态时所述估计的空闲持续时间大于所述时间值时,功率选通所述LLC。
10.如权利要求9所述的方法,进一步包括基于所述性能量度信息与所述阈值的所述比较,功率选通所述LLC。
11.如权利要求9所述的方法,其特征在于,所述性能量度信息包括所述MLC的未命中率,当所述未命中率小于所述阈值时,功率选通所述LLC。
12.如权利要求9所述的方法,进一步包括至少部分地基于从耦合到所述多核处理器的设备接收到的空闲持续时间报告,确定所述估计的空闲持续时间。
13.如权利要求9所述的方法,进一步包括确定第一工作负荷的所述时间值,并将所述时间值存储在所述多核处理器的存储器中。
14.如权利要求13所述的方法,进一步包括确定与第二工作负荷相关联的得失平衡条件的第二时间值,并使用所述第二时间值来判断是否在所述第二工作负荷在所述多核处理器上的执行过程中功率选通所述LLC。
15.一种用于功率选通高速缓存存储器的系统,包括:
具有多个区块的多核处理器,每一区块都包括核和区块高速缓存层次结构,所述区块高速缓存层次结构包括第一级高速缓存、中级高速缓存(MLC)以及末级高速缓存(LLC),其中,所述第一级高速缓存、所述MLC以及所述LLC中的每一个都是所述区块私有的,以及高速缓存功率控制装置,所述高速缓存功率控制装置用于接收关于所述多个区块中的第一区块的所述区块高速缓存层次结构的性能量度信息,并用于当所述第一区块的所述核、所述第一级高速缓存以及所述MLC保持在活动状态时,至少部分地基于所述性能量度信息,当所述MLC的未命中率小于第一阈值时,导致所述所述第一区块的所述LLC被功率选通;以及
耦合到所述多核处理器的动态随机存取存储器(DRAM)。
16.如权利要求15所述的系统,其特征在于,所述高速缓存功率控制装置将确定能量得失平衡值,当所述能量得失平衡值小于所述第一区块的所述核的估计的空闲持续时间时,导致所述LLC被功率选通。
17.如权利要求16所述的系统,其特征在于,当所述能量得失平衡值小于所述估计的空闲持续时间时,所述高速缓存功率控制装置将基于与在所述第一区块的所述核上执行的工作负荷相关联的服务质量(QoS)信息,防止所述LLC被功率选通。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/715,613 US9183144B2 (en) | 2012-12-14 | 2012-12-14 | Power gating a portion of a cache memory |
US13/715,613 | 2012-12-14 | ||
PCT/US2013/048486 WO2014092801A1 (en) | 2012-12-14 | 2013-06-28 | Power gating a portion of a cache memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104781753A CN104781753A (zh) | 2015-07-15 |
CN104781753B true CN104781753B (zh) | 2017-09-08 |
Family
ID=50932363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380059598.5A Active CN104781753B (zh) | 2012-12-14 | 2013-06-28 | 功率选通高速缓存存储器的一部分 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9183144B2 (zh) |
CN (1) | CN104781753B (zh) |
WO (1) | WO2014092801A1 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181553A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Idle Phase Prediction For Integrated Circuits |
US9400544B2 (en) * | 2013-04-02 | 2016-07-26 | Apple Inc. | Advanced fine-grained cache power management |
US9396122B2 (en) | 2013-04-19 | 2016-07-19 | Apple Inc. | Cache allocation scheme optimized for browsing applications |
KR102027573B1 (ko) * | 2013-06-26 | 2019-11-04 | 한국전자통신연구원 | 캐시 메모리 제어 방법 및 그 장치 |
US9335814B2 (en) * | 2013-08-28 | 2016-05-10 | Intel Corporation | Adaptively controlling low power mode operation for a cache memory |
US9436258B1 (en) * | 2013-11-21 | 2016-09-06 | Google Inc. | Dynamic service level objective power control in distributed process |
US9851777B2 (en) | 2014-01-02 | 2017-12-26 | Advanced Micro Devices, Inc. | Power gating based on cache dirtiness |
US9720487B2 (en) | 2014-01-10 | 2017-08-01 | Advanced Micro Devices, Inc. | Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration |
US9607680B2 (en) | 2014-03-04 | 2017-03-28 | Apple Inc. | EDRAM/DRAM fabricated capacitors for use in on-chip PMUS and as decoupling capacitors in an integrated EDRAM/DRAM and PMU system |
US9507410B2 (en) * | 2014-06-20 | 2016-11-29 | Advanced Micro Devices, Inc. | Decoupled selective implementation of entry and exit prediction for power gating processor components |
US10339023B2 (en) | 2014-09-25 | 2019-07-02 | Intel Corporation | Cache-aware adaptive thread scheduling and migration |
JP6451538B2 (ja) * | 2015-07-22 | 2019-01-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN107111559B (zh) * | 2015-07-31 | 2020-02-14 | 华为技术有限公司 | 处理器芯片、布局方法及访问数据的方法 |
US9959075B2 (en) | 2015-08-05 | 2018-05-01 | Qualcomm Incorporated | System and method for flush power aware low power mode control in a portable computing device |
US20170038813A1 (en) * | 2015-08-05 | 2017-02-09 | Qualcomm Incorporated | System and method for cache aware low power mode control in a portable computing device |
US11289133B2 (en) * | 2015-09-16 | 2022-03-29 | Arm Limited | Power state based data retention |
WO2017049592A1 (en) | 2015-09-25 | 2017-03-30 | Intel Corporation | Method and apparatus to improve shared memory efficiency |
US10552327B2 (en) | 2016-08-23 | 2020-02-04 | Apple Inc. | Automatic cache partitioning |
US10318428B2 (en) | 2016-09-12 | 2019-06-11 | Microsoft Technology Licensing, Llc | Power aware hash function for cache memory mapping |
CN106844232A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种面向多核处理器的共享末级高速缓存访存方法和装置 |
CN106844231A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 末级高速缓存软硬件协作分区域管理系统及管理方法 |
CN106909515B (zh) * | 2017-02-11 | 2020-09-18 | 苏州浪潮智能科技有限公司 | 面向混合主存的多核共享末级缓存管理方法及装置 |
US10424107B2 (en) | 2017-04-01 | 2019-09-24 | Intel Corporation | Hierarchical depth buffer back annotaton |
US20180300238A1 (en) * | 2017-04-17 | 2018-10-18 | Balaji Vembu | Adaptive cache sizing per workload |
US11010953B2 (en) | 2017-04-21 | 2021-05-18 | Intel Corporation | Dedicated fixed point blending for energy efficiency |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US10241561B2 (en) | 2017-06-13 | 2019-03-26 | Microsoft Technology Licensing, Llc | Adaptive power down of intra-chip interconnect |
US10178619B1 (en) | 2017-09-29 | 2019-01-08 | Intel Corporation | Advanced graphics power state management |
US20190146567A1 (en) * | 2017-11-10 | 2019-05-16 | Advanced Micro Devices, Inc. | Processor throttling based on accumulated combined current measurements |
US10705590B2 (en) * | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
US10628321B2 (en) * | 2018-02-28 | 2020-04-21 | Qualcomm Incorporated | Progressive flush of cache memory |
CN110297787B (zh) * | 2018-03-22 | 2021-06-01 | 龙芯中科技术股份有限公司 | I/o设备访问内存的方法、装置及设备 |
JP2020035128A (ja) * | 2018-08-29 | 2020-03-05 | キオクシア株式会社 | メモリシステム |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
WO2020190802A1 (en) | 2019-03-15 | 2020-09-24 | Intel Corporation | Compression techniques |
EP3938888A1 (en) | 2019-03-15 | 2022-01-19 | INTEL Corporation | Systolic disaggregation within a matrix accelerator architecture |
US20230195644A1 (en) * | 2021-12-20 | 2023-06-22 | Advanced Micro Devices, Inc. | Last level cache access during non-cstate self refresh |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630287A (zh) * | 2008-06-30 | 2010-01-20 | 英特尔公司 | 基于性能的高速缓存管理 |
Family Cites Families (87)
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 |
JP2002230065A (ja) * | 2001-02-02 | 2002-08-16 | Toshiba Corp | システムlsi開発装置およびシステムlsi開発方法 |
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 |
JP2006518064A (ja) | 2003-01-23 | 2006-08-03 | ユニバーシティー オブ ロチェスター | マルチクロックドメインを有するマイクロプロセッサ |
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 |
US20050114850A1 (en) * | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7770034B2 (en) | 2003-12-16 | 2010-08-03 | Intel Corporation | Performance monitoring based dynamic voltage and frequency scaling |
US20070156992A1 (en) | 2005-12-30 | 2007-07-05 | Intel Corporation | Method and system for optimizing latency of dynamic memory sizing |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
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 |
US20070150658A1 (en) * | 2005-12-28 | 2007-06-28 | Jaideep Moses | Pinning locks in shared cache |
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 |
US7596662B2 (en) * | 2006-08-31 | 2009-09-29 | Intel Corporation | Selective storage of data in levels of a cache memory |
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 | 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法 |
US20080307240A1 (en) * | 2007-06-08 | 2008-12-11 | Texas Instruments Incorporated | Power management electronic circuits, systems, and methods and processes of manufacture |
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 |
US7962679B2 (en) * | 2007-09-28 | 2011-06-14 | Intel Corporation | Interrupt balancing for multi-core and power |
US20090150696A1 (en) | 2007-12-10 | 2009-06-11 | Justin Song | Transitioning a processor package to a low power state |
US8024590B2 (en) | 2007-12-10 | 2011-09-20 | Intel Corporation | Predicting future power level states for processor cores |
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 |
US8112651B2 (en) | 2008-09-25 | 2012-02-07 | Intel Corporation | Conserving power in a computer system |
US8954977B2 (en) | 2008-12-09 | 2015-02-10 | Intel Corporation | Software-based thread remapping for power savings |
US8589629B2 (en) * | 2009-03-27 | 2013-11-19 | Advanced Micro Devices, Inc. | Method for way allocation and way locking in a cache |
US8521963B1 (en) * | 2009-09-21 | 2013-08-27 | Tilera Corporation | Managing cache coherence |
US8990506B2 (en) | 2009-12-16 | 2015-03-24 | Intel Corporation | Replacing cache lines in a cache memory based at least in part on cache coherency state information |
US8700943B2 (en) | 2009-12-22 | 2014-04-15 | Intel Corporation | Controlling time stamp counter (TSC) offsets for mulitple cores and threads |
US8887171B2 (en) * | 2009-12-28 | 2014-11-11 | Intel Corporation | Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection |
US8495300B2 (en) | 2010-03-03 | 2013-07-23 | Ati Technologies Ulc | Cache with reload capability after power restoration |
US8412971B2 (en) * | 2010-05-11 | 2013-04-02 | Advanced Micro Devices, Inc. | Method and apparatus for cache control |
US8943334B2 (en) | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US20120166731A1 (en) | 2010-12-22 | 2012-06-28 | Christian Maciocco | Computing platform power management with adaptive cache flush |
US8560749B2 (en) | 2011-02-11 | 2013-10-15 | Intel Corporation | Techniques for managing power consumption state of a processor involving use of latency tolerance report value |
JP2012190359A (ja) * | 2011-03-11 | 2012-10-04 | Toshiba Corp | キャッシュシステムおよび処理装置 |
US9069555B2 (en) | 2011-03-21 | 2015-06-30 | Intel Corporation | Managing power consumption in a multi-core processor |
US8949637B2 (en) | 2011-03-24 | 2015-02-03 | Intel Corporation | Obtaining power profile information with low overhead |
US9619301B2 (en) | 2011-04-06 | 2017-04-11 | Telefonaktiebolaget L M Ericsson (Publ) | Multi-core memory model and speculative mode processor management |
JP5674613B2 (ja) * | 2011-09-22 | 2015-02-25 | 株式会社東芝 | 制御システム、制御方法およびプログラム |
US9158693B2 (en) * | 2011-10-31 | 2015-10-13 | Intel Corporation | Dynamically controlling cache size to maximize energy efficiency |
WO2014014452A1 (en) * | 2012-07-18 | 2014-01-23 | Empire Technology Development Llc | Virtual cache directory in multi-processor architectures |
WO2014021853A1 (en) * | 2012-07-31 | 2014-02-06 | Empire Technology Development Llc | Directory error correction in multi-core processor architectures |
US9021207B2 (en) * | 2012-12-20 | 2015-04-28 | Advanced Micro Devices, Inc. | Management of cache size |
US9229865B2 (en) * | 2013-02-21 | 2016-01-05 | Empire Technology Development Llc | One-cacheable multi-core architecture |
-
2012
- 2012-12-14 US US13/715,613 patent/US9183144B2/en active Active
-
2013
- 2013-03-05 US US13/785,228 patent/US9176875B2/en active Active
- 2013-06-28 CN CN201380059598.5A patent/CN104781753B/zh active Active
- 2013-06-28 WO PCT/US2013/048486 patent/WO2014092801A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630287A (zh) * | 2008-06-30 | 2010-01-20 | 英特尔公司 | 基于性能的高速缓存管理 |
Also Published As
Publication number | Publication date |
---|---|
CN104781753A (zh) | 2015-07-15 |
US20140173207A1 (en) | 2014-06-19 |
WO2014092801A1 (en) | 2014-06-19 |
US9183144B2 (en) | 2015-11-10 |
US9176875B2 (en) | 2015-11-03 |
US20140173206A1 (en) | 2014-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104781753B (zh) | 功率选通高速缓存存储器的一部分 | |
US10564699B2 (en) | Dynamically controlling cache size to maximize energy efficiency | |
US20210064117A1 (en) | Optimizing power usage by factoring processor architectural events to pmu | |
CN104011624B (zh) | 包括设备中自主的基于硬件的深度掉电的用于能效和节能的方法、装置和系统 | |
US10146286B2 (en) | Dynamically updating a power management policy of a processor | |
TWI628539B (zh) | 在多核心處理器中執行電源管理 | |
CN104169832B (zh) | 提供处理器的能源高效的超频操作 | |
CN107209548A (zh) | 在多核处理器中执行功率管理 | |
KR101673500B1 (ko) | 캐시 제어를 위한 방법 및 장치 | |
CN104049715B (zh) | 平台不可知的功率管理 | |
US9594560B2 (en) | Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain | |
Arunkumar et al. | Understanding the future of energy efficiency in multi-module gpus | |
CN103765409A (zh) | 有功率效率的处理器体系结构 | |
CN107924219A (zh) | 遮蔽处理器的核的功率状态 | |
US20120166822A1 (en) | Mechanisms for enabling power management of embedded dynamic random access memory on a semiconductor integrated circuit package | |
Moghaddam et al. | Dynamic energy management for chip multi-processors under performance constraints | |
CN108694136A (zh) | 用于超越基于非局部性的指令处理的系统、设备和方法 | |
Lotfi-Kamran et al. | Dark silicon and the history of computing | |
CN109478086A (zh) | 至少部分地基于平台电容来控制处理器的电流消耗 | |
Namasudra et al. | Dark silicon and future on-chip systems | |
Chu et al. | Dual-access way-prediction cache for embedded systems | |
Dublish | Managing the memory hierarchy in GPUs | |
Chen | High performance and energy-efficient instruction cache design and optimisation for ultra-low-power multi-core clusters | |
Zamani | Run-time Predictive Modeling of Power and Performance via Time-Series in High Performance Computing | |
Lou et al. | Dynamic, tagless cache coherence architecture in chip multiprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |