CN104572497B - 通过计数逐出进行的动态高速缓存扩大 - Google Patents
通过计数逐出进行的动态高速缓存扩大 Download PDFInfo
- Publication number
- CN104572497B CN104572497B CN201410679363.2A CN201410679363A CN104572497B CN 104572497 B CN104572497 B CN 104572497B CN 201410679363 A CN201410679363 A CN 201410679363A CN 104572497 B CN104572497 B CN 104572497B
- Authority
- CN
- China
- Prior art keywords
- size
- cache memory
- deported
- microprocessor
- road
- 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
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
-
- 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
Abstract
一种微处理器包括高速缓存存储器和控制模块。所述控制模块使得高速缓存的尺寸变为零,并且随后使得高速缓存的尺寸在零和高速缓存的全尺寸之间,在使得所述尺寸在零和全尺寸之间之后,对从高速缓存逐出的数量进行计数,以及当逐出的数量达到逐出的预定数量时,增加所述尺寸。替代地,微处理器包括:多个核,其每个都具有第一高速缓存存储器;由核共享的第二高速缓存存储器;以及控制模块。所述控制模块使得所有的核睡眠,并且使得第二高速缓存的尺寸变为零,并且接收唤醒所述核中的一个的命令。所述控制模块在接收所述命令之后,对从唤醒的核的第一高速缓存逐出的数量进行计数,并且当逐出的数量达到逐出的预定数量时,使得所述第二高速缓存的尺寸变为非零。
Description
交叉申请的相关引用
本申请要求基于于2014年1月27日提交的、名为“通过计数逐出进行的动态高速缓存扩大”的美国临时申请No.61/932,135的优先权,通过引用将其全部内容合并于此。
技术领域
本发明是关于一种微处理器,特别是关于对从高速缓存存储器逐出的数量进行计数以及当逐出的数量达到逐出的预定数量时增加高速缓存存储器的尺寸的微处理器。
背景技术
已经对于由微处理器消耗的功率给出了极大的重视。现代微处理器的大量的功率预算被其高速缓存存储器消耗。因此,需要一种方式来减小高速缓存存储器的功率消耗。
发明内容
本发明的一方面提供一种微处理器。所述微处理器包括高速缓存存储器和控制模块。控制模块被配置为使得高速缓存存储器的尺寸变为零,并且随后使得高速缓存存储器的尺寸变为在零和高速缓存存储器的全尺寸之间,在使得高速缓存存储器的尺寸在零和高速缓存存储器的全尺寸之间之后对从高速缓存存储器逐出的数量进行计数,并且当逐出的数量达到逐出的预定数量时,增加高速缓存存储器的尺寸。
在另一方面,本发明提供一种通过具有能够在微处理器的操作期间使其尺寸动态地变化的高速缓存存储器的微处理器来管理性能和功率消耗的方法。所述方法包括:使得高速缓存存储器的尺寸变为零。所述方法还包括:在使得所述高速缓存存储器的尺寸变为零之后,使得高速缓存存储器的尺寸变为在零和高速缓存存储器的全尺寸之间。所述方法还包括:在使得高速缓存存储器的尺寸变为在零和高速缓存存储器的全尺寸之间之后,对从高速缓存存储器逐出的数量进行计数。所述方法还包括:当逐出的数量达到逐出的预定数量时,增加高速缓存存储器的尺寸。
在又一个方面,本发明提供一种微处理器。所述微处理器包括:多个处理核,其中的每个都包括第一高速缓存存储器、由多个处理核共享的第二高速缓存存储器、以及控制模块。所述控制模块被配置为使得所有的多个处理核睡眠,并且使得第二高速缓存存储器的尺寸变为零。所述控制模块还被配置为接收命令来唤醒所述核中的一个。所述控制模块还被配置为在接收命令之后,对从核中的一个的第一高速缓存存储器逐出的数量进行计数。所述控制模块还被配置为当逐出的数量达到逐出的预定数量时,使得第二高速缓存存储器的尺寸变为非零。
在又一个方面中,本发明提供一种用于管理具有其中的每个都具有第一高速缓存存储器的多个处理核的微处理器的性能和功率消耗的方法,所述微处理器还具有由多个处理核共享的第二高速缓存存储器。所述方法包括:使得所有的多个处理核睡眠,并且使得第二高速缓存存储器的尺寸变为零。所述方法还包括:接收命令来唤醒所述核中的一个。所述方法还包括:在接收命令之后,对源自核中的一个的第一高速缓存存储器的逐出的数量进行计数。所述方法还包括:当逐出的数量达到逐出的预定数量时,使得第二高速缓存存储器的尺寸变为非零。
附图说明
图1是微处理器的实施例的框图。
图2是示出了根据一个实施例的图1的微处理器的操作的流程图。
图3是微处理器的替代实施例的框图。
图4是示出了根据一个实施例的图3的微处理器的操作的流程图。
具体实施方式
现在参考图1,示出了微处理器100的实施例的框图。微处理器100包括多个处理核102、耦合到核102的二级(L2)高速缓存存储器106、以及耦合到核102和L2高速缓存106的控制模块108。图1示出了具有四个核102的实施例;然而,其他的实施例可以利用不同数量的核102来设计。此外,如在此所述的用于通过计数逐出来动态扩大高速缓存存储器的各种实施例可以被应用到单核的处理器。
优选地,L2高速缓存106是包括多个路(way)132的组关联高速缓存(set-associative cache)。图1的实施例示出了16个路132;然而,其他实施例可以利用不同数量的路来设计。不同的路被分离地供电。即,控制模块108被配置为单独地将电力提供给或者不提供给L2高速缓存106中的每个路。在替代实施例中,路的组被分离地供电。例如,在一个实施例中,路被以两个路为一组的方式而被分离地供电。有益的是,如在此所述地,通过仅仅对L2高速缓存106的路132中的一些进行供电,或者在一些情况下不对其进行供电,可以减小功率的消耗。在本发明中,使得L2高速缓存106的尺寸变为零意味着将电力从L2高速缓存106的所有的路132中移除,增加L2高速缓存106的尺寸意味着将电力提供给L2高速缓存106的额外的路132,并且使其可以用于高速缓存有效的数据,并且减小L2高速缓存106的尺寸意味着将电力提供给更少的L2高速缓存106的路132,并且使其不能用于高速缓存有效的数据。
控制模块108包括:耦合到L2高速缓存106的功率开关134;耦合到功率开关134并且用于对其进行控制的状态机126;都耦合到提供输出到状态机126的比较器124的可编程阈值寄存器128和逐出计数器122。当L2高速缓存106逐出高速缓存线时逐出计数器122从L2高速缓存106接收指示136,这使得逐出计数器122对从L2高速缓存106逐出的高速缓存线的数量进行计数。在高速缓存存储器响应于高速缓存丢失(cache miss)而利用另一个高速缓存线来替代有效的高速缓存线时发生高速缓存线逐出(或者简单称为逐出)。如果被逐出的高速缓存线包含修改的数据,则高速缓存存储器在替代其之前将修改的高速缓存线写入到主存储器中。比较器124比较逐出计数器122计数与在阈值寄存器128中的值。当比较器124确定两个值相等,其指示逐出计数已经达到阈值时,比较器124通知状态机126。作为响应,如将在下文中更详细地描述地,状态机126重置逐出计数器122,并且选择性地控制功率开关134以增加接收电力的路132的数量。
控制模块108可以以硬件、软件、或者其组合来实现。在一个实施例中,使得核102睡眠的控制模块108的部分包括在核102的每个上运行的微代码138。控制模块108的操作将在下文中更加详细地描述。
现在将参考图2,示出了根据一个实施例的图1的微处理器100的操作的流程图。流程在块202处开始。
在块202之前(以及在图4的块402之前),L2高速缓存106的尺寸可以随着在微处理器100上的工作负荷增加而增加,并且随着工作负荷的减少而缩小。所述尺寸还受到微处理器100所处的系统的配置的影响。例如,如果系统以电池电源来运行,则电力管理策略将偏向于省电,在其中,操作系统和/或微处理器100可以相对频繁地尝试减小L2高速缓存106的尺寸;相反,如果系统在持续的电力源(例如,A/C壁装电源插座)上运行,则电力管理策略将偏向于优化性能,在其中,操作系统和/或微处理器100可以相对不频繁地尝试减小L2高速缓存106的尺寸。操作系统可以请求微处理器100进入睡眠状态(例如,C状态)以节省电力,响应于此,微处理器100可以减小L2高速缓存106的尺寸,优选地,以分段方式(piece-wisefashion)来减小。此外,微处理器100本身可以监视其工作负荷,并且如果工作负荷较低则决定减小L2高速缓存106的尺寸。在一个实施例中,微处理器100仅仅在所有的核102在最小C状态下正处于睡眠中,并且当前操作频率低于阈值时,才减小L2高速缓存106的尺寸。优选地,最小C状态和阈值是可编程的,并且减小L2高速缓存106优选地通过微代码138来执行。
在块202处,使得所有的核102睡眠,并且使得L2高速缓存106的尺寸变为零。这造成微处理器100的非常低的功率消耗状态。在一个实施例中,这对应于被称为C5的处理器C状态。如上所述,使得L2高速缓存106的尺寸变为零意味着从其所有的路132中移除电力。使得核102睡眠意味着使得核102停止执行指令。优选地,使得核102睡眠还包括停止核102的时钟。在一个实施例中,使得核102睡眠还包括将电力从核102的部分或者从核102的整个中移除。在使得核102睡眠之前,清除(flush)L1高速缓存104。核102还可以响应于各种事件来使得核102睡眠和使得L2高速缓存106尺寸变为零,例如,通过操作系统本身或者检测到工作负荷非常小的微处理器100来指令其这么做。优选地,例如,微处理器100还通知处于芯片组或者处于微处理器100本身中的系统的存储器控制器其不需要探听微处理器100的高速缓存,因为其所有的数据都是无效的。不探听高速缓存可导致很大的功率节省,因为其可以允许微处理器100更长时间地保持在将电力从微处理器100的很大的部分(包括高速缓存存储器)中移除的状态中。流程进行到块204。
在块204,微处理器100被命令唤醒核102中的一个或者多个,并且作为响应,将L2高速缓存106的尺寸从零增加到非零。即,控制模块108给L2高速缓存106的路132中的一个或者多个上电。在一个实施例中,控制模块108给两个路132上电。在一个实施例中,L2高速缓存106和L1高速缓存104是包含式(inclusive)的,其要求如果核102中的任何一个的L1高速缓存104的尺寸为非零,则L2高速缓存106的尺寸变为非零。流程进行到块206。
在块206处,控制模块108开始对从L2高速缓存106逐出的高速缓存线的数量进行计数。如果流程从块204进行到块206,则所计数的逐出的数量是从L2高速缓存106的尺寸变为非零开始的数量,而如果流程从判决块214进行到块206,则所计数的逐出的数量是从L2高速缓存106的尺寸在块212处增加开始的数量。流程进行到判决块208。
在判决块208处,控制模块108确定由逐出计数器102计数的逐出的数量是否已经达到在可编程阈值寄存器128中存储的预定数量。如果是,则流程进行到块212;否则流程进行到判决块209。在一个实施例中,逐出的预定数量是一(1)。在其他实施例中,逐出的预定数量大于一。逐出的预定数量可以调整,以实现在受到高速缓存存储器的尺寸影响的性能(高速缓存命中率(hit ratio))和省电(上电的量)之间所需的平衡。优选地,逐出的预定数量是可编程的,以使得制造商在制造时完成所需的调整和/或使得系统软件在运行时完成所需的调整。在一个实施例中,逐出的预定数量可以例如通过x86WRMSR指令,通过到微处理器100的模型特定的寄存器的写入来进行编程。
在判决块209处,与以上在块202处讨论的相似的原因,微处理器100确定是否应该返回到使得所有的核102睡眠并且使得L2高速缓存106的尺寸变为零的状态。如果是,则流程进行到块202;否则流程返回到块206。
在块212处,控制模块108增加L2高速缓存106的尺寸,并且重置逐出计数器122。优选地,控制模块108将L2高速缓存106的尺寸增加预定数量的路132,例如,增加两路。然而,优选地,路132的预定数量是可编程的,例如,通过操作系统和/或微处理器100的制造商而可编程。流程进行到判决块214。
在判决块214处,控制模块108确定L2高速缓存106是否已经达到其全尺寸,即,所有的路132都被上电。如果是,则流程结束,并且控制模块108停止对逐出进行计数和检查是否需要增加L2高速缓存106的尺寸;否则流程返回到块206。
如上所述的动态增加L2高速缓存106的尺寸的方法是有益的,因为当微处理器100唤醒时,其不知道它的工作负荷将是多少。一方面,微处理器100可能只是被唤醒以进行服务和中断,并且然后在回到睡眠状态,此时,将L2高速缓存106的尺寸增加为大尺寸可能是浪费的。另一方面,微处理器100可能被唤醒以在长时间内执行大量的工作,此时,可能需要将L2高速缓存106的尺寸增加为其全尺寸。在此描述的实施例基于从L2高速缓存106逐出的数量而有益地动态确定所需的尺寸。
现在参考图3,示出了微处理器100的替代实施例的框图。图3的微处理器100与图1的微处理器100在很多方面上相似。然而,对于每个相关的核102,图3的微处理器100的控制模块108还包括均耦合到提供输出到状态机126的比较器324的可编程阈值寄存器328和逐出计数器322。此外,图3的状态机126被修改为接收比较器324的输出,并且响应于比较器324的输出以及比较器124的输出来控制功率开关134。逐出计数器322当逐出高速缓存线时,从相关核102的L1高速缓存104中接收指示336,这导致逐出计数器322对从L1高速缓存104逐出的高速缓存线的数量进行计数。每个比较器324比较逐出计数器322的计数和在阈值寄存器328中的值。当比较器324确定两个值相等,其指示逐出计数已经达到阈值时,比较器324通知状态机126。作为响应,如将在下文中更详细地描述地,状态机126重置逐出计数器322,并且选择性地控制功率开关134以使得接收电力的路132的数量变为非零。
在一个实施例中,L2高速缓存106和L1高速缓存104是非包含式的,其使得即使核102中的任何一个的L1高速缓存104的尺寸为非零,而L2高速缓存106的尺寸仍保持为零。
现在将参考图4,示出了显示根据一个实施例的图3的微处理器100的操作的流程图。流程在块402处开始。
在块402处,与以上在块202处描述的相似的方式,使得所有的核102睡眠,并且L2高速缓存106的尺寸变为零。流程进行到块404。
在块404处,微处理器100被命令来唤醒核102中的一个或者多个。流程进行到块406。
在块406处,控制模块108开始对从唤醒的核102的L1高速缓存104逐出的高速缓存线的数量进行计数。所计数的逐出的数量是当核102的一个或者多个在块404处被唤醒并且开始使用其L1高速缓存104开始计数的数量。流程进行到判决块408。
在判决块408处,控制模块108确定由逐出计数器322的任何一个所计数的逐出的数量是否已经达到在可编程阈值寄存器328中存储的预定数量。如果是,流程进行到块412;否则流程进行到判决块409。在一个实施例中,逐出的预定数量是一(1)。在其他实施例中,逐出的预定数量大于一。逐出的预定数量可以被调整以实现在如上所述受到高速缓存存储器的尺寸影响的性能(高速缓存命中率)和省电(上电的量)之间所需的平衡。
在判决块409处,与以上在块202处讨论的相似的原因,微处理器100确定是否应该返回到使得所有的核102睡眠并且使得L2高速缓存106的尺寸变为零的状态。如果是,则流程进行到块402;否则流程返回到块406。
在块412处,控制模块108使得L2高速缓存106的尺寸变为非零,并且重置逐出计数器322。在替代实施例中,控制模块108仅仅将其计数达到在阈值寄存器328中存储的预定数量的逐出计数器322重置。优选地,控制模块108将L2高速缓存106的尺寸增加预定数量的路132,例如,增加两路132。然而,优选地,路132预定数量是可编程的,例如,通过操作系统和/或微处理器100的制造商而可编程。流程从块412进行到图2的块206。
如上所述地动态增加L2高速缓存106的尺寸的方法是有益的,因为如上所述地,当微处理器100唤醒时,其不知道它的工作负荷将是多少。在此描述的实施例基于从L1高速缓存104逐出的数量,并且随后基于从L2高速缓存106逐出而有益地动态确定所需的尺寸。
虽然已经描述了在其中在L2高速缓存中增加其尺寸的高速缓存存储器的实施例,但是可以设计在其中以在微处理器的高速缓存存储器层级中的其他级别来动态地增加高速缓存存储器的尺寸的其他实施例,例如,但是不限于,一级高速缓存、三级高速缓存、或者四级高速缓存。例如,与图1和图2相关的实施例可以使用任何级别的高速缓存存储器。此外,与图3和图4相关的实施例可以使用除了最低级别之外的任何级别的高速缓存存储器。
虽然在此已经描述了本发明的各种实施例,但是应该理解,其仅仅通过示例的方式来表示,并且不受其限制。对于计算机领域相关人员而言显而易见的是,可以在不脱离本发明范围的情况下对本发明在形式和细节上进行各种变化。例如,软件可以实现在本文中所描述的装置和方法的功能、制作、建模、模拟、描述和/或测试。这可以通过使用一般编程语言(例如,C、C++)、包括Verilog HDL、VHDL等的硬件描述语言(HDL)、或者其他可用程序来实现。该软件可以被布置在任何已知的计算机可用介质中,例如,磁带、半导体、磁盘、或者光盘(例如,CD-ROM、DVD-ROM等)、网络、有线线路、无线或者其他通信介质。在本文中描述的装置和方法的实施例可以被包括在半导体知识产权核中,例如,微处理器核中(例如,在HDL中实现或者指定),并且可以通过集成电路的产品而成为硬件。此外,在本文中所描述的装置和方法可以被实现为硬件和软件的组合。因此,本发明不应该受限于在此描述的任何的示例性实施例,而是应该仅仅根据在以下的权利要求及其等价物来定义。具体地,本发明可以被实现在可以在通用计算机中使用的微处理器装置中。最后,本领域的技术人员应该理解,其可以在不脱离如所附权利要求所定义的本发明的范围的情况下,容易地使用所公开的概念和特定的实施例来作为设计或者修改用于执行与本发明相同的目的的其他结构的基础。
Claims (10)
1.一种微处理器,包括:
高速缓存存储器;以及
控制模块,其被配置为:
使得高速缓存存储器的尺寸变为零,并且随后响应于该微处理器的至少一个核被唤醒使得高速缓存存储器的尺寸为一唤醒后尺寸,其中唤醒后尺寸在零和高速缓存存储器的全尺寸之间;
在使得高速缓存存储器的尺寸为该唤醒后尺寸之后,对从高速缓存存储器逐出的数量进行计数;
当逐出的数量达到逐出的预定数量时,增加高速缓存存储器的尺寸,之后重置所计数的逐出的数量;以及
当高速缓存存储器达到全尺寸时,停止对从高速缓存存储器逐出的数量进行计数。
2.根据权利要求1所述的微处理器,其中,每次高速缓存存储器的尺寸变为零并响应于该微处理器的至少一个核被唤醒后,皆使得高速缓存存储器的尺寸为该唤醒后尺寸。
3.根据权利要求1所述的微处理器,其中,所述控制模块被进一步配置为:
(a)在增加高速缓存存储器的尺寸之后重置所计数的逐出的数量;
(b)在重置所计数的逐出的数量之后,对从高速缓存存储器逐出的数量进行计数;
(c)在(b)中计数的逐出的数量达到预定数量时,增加高速缓存存储器的尺寸;以及
重复(a)、(b)、(c)直到所述尺寸达到全尺寸。
4.根据权利要求1所述的微处理器,其中,高速缓存存储器包括具有N个路的组关联存储器,其中,高速缓存存储器的尺寸通过向其提供电力以使其可通过微处理器来使用的N个路中的一些路来确定,其中,所述控制模块被配置为通过在N个路中增加向其提供电力的路的数量来增加高速缓存存储器的尺寸。
5.根据权利要求4所述的微处理器,其中,为了在N个路中增加向其提供电力的路的数量,所述控制模块被配置为通过可编程数量的路来增加向其提供电力的路的数量。
6.一种通过具有能够在微处理器的操作期间使其尺寸动态地变化的高速缓存存储器的微处理器来管理性能和功率消耗的方法,所述方法包括:
使得高速缓存存储器的尺寸变为零;
在使得所述高速缓存存储器的尺寸变为零之后,响应于该微处理器的至少一个核被唤醒,使得高速缓存存储器的尺寸变为一唤醒后尺寸,其中该唤醒后尺寸在零和高速缓存存储器的全尺寸之间;
在使得高速缓存存储器的尺寸变为该唤醒后尺寸之后,对从高速缓存存储器逐出的数量进行计数;
当逐出的数量达到逐出的预定数量时,增加高速缓存存储器的尺寸,之后重置所计数的逐出的数量;以及
当高速缓存存储器达到全尺寸时,停止对从高速缓存存储器逐出的数量进行计数。
7.根据权利要求6所述的方法,其中,每次高速缓存存储器的尺寸变为零并响应于该微处理器的至少一个核被唤醒后,皆使得高速缓存存储器的尺寸为该唤醒后尺寸。
8.根据权利要求6所述的方法,进一步包括:
(a)在增加高速缓存存储器的尺寸之后重置所计数的逐出的数量;
(b)在重置所计数的逐出的数量之后,对从高速缓存存储器逐出的数量进行计数;
(c)在(b)中计数的逐出的数量达到预定数量时,增加高速缓存存储器的尺寸;以及
重复(a)、(b)、(c)直到所述尺寸达到全尺寸。
9.根据权利要求6所述的方法,其中,高速缓存存储器包括具有N个路的组关联存储器,其中,高速缓存存储器的尺寸通过向其提供电力以使其可通过微处理器来使用的N个路中的一些路来确定,其中,所述增加高速缓存存储器的尺寸包括在N个路中增加向其提供电力的路的数量。
10.根据权利要求9所述的方法,其中,所述在N个路中增加向其提供电力的路的数量包括通过可编程数量的路来增加向其提供电力的路的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510004441.3A CN104572500B (zh) | 2014-01-27 | 2014-11-24 | 微处理器及其性能和功率消耗的管理方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461932135P | 2014-01-27 | 2014-01-27 | |
US61/932,135 | 2014-01-27 | ||
US14/188,905 | 2014-02-25 | ||
US14/188,905 US10204056B2 (en) | 2014-01-27 | 2014-02-25 | Dynamic cache enlarging by counting evictions |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510004441.3A Division CN104572500B (zh) | 2014-01-27 | 2014-11-24 | 微处理器及其性能和功率消耗的管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572497A CN104572497A (zh) | 2015-04-29 |
CN104572497B true CN104572497B (zh) | 2018-09-25 |
Family
ID=50624462
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410679363.2A Active CN104572497B (zh) | 2014-01-27 | 2014-11-24 | 通过计数逐出进行的动态高速缓存扩大 |
CN201510004441.3A Active CN104572500B (zh) | 2014-01-27 | 2014-11-24 | 微处理器及其性能和功率消耗的管理方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510004441.3A Active CN104572500B (zh) | 2014-01-27 | 2014-11-24 | 微处理器及其性能和功率消耗的管理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10204056B2 (zh) |
EP (1) | EP2899638B1 (zh) |
CN (2) | CN104572497B (zh) |
TW (1) | TWI576760B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150370707A1 (en) * | 2014-06-24 | 2015-12-24 | Qualcomm Incorporated | Disunited shared-information and private-information caches |
US10345883B2 (en) * | 2016-05-31 | 2019-07-09 | Taiwan Semiconductor Manufacturing Co., Ltd. | Power estimation |
US9946646B2 (en) * | 2016-09-06 | 2018-04-17 | Advanced Micro Devices, Inc. | Systems and method for delayed cache utilization |
JP2018133038A (ja) * | 2017-02-17 | 2018-08-23 | Necプラットフォームズ株式会社 | 情報処理装置、制御装置、制御方法及びプログラム |
WO2020212151A1 (en) * | 2019-04-17 | 2020-10-22 | Sony Corporation | Power management of movable edge computing servers |
US10948957B1 (en) | 2019-09-26 | 2021-03-16 | Apple Inc. | Adaptive on-chip digital power estimator |
US11868254B2 (en) * | 2021-09-30 | 2024-01-09 | Advanced Micro Devices, Inc. | Using epoch counter values for controlling the retention of cache blocks in a cache |
US20240111683A1 (en) * | 2022-09-30 | 2024-04-04 | Advanced Micro Devices, Inc. | Dynamically altering tracking granularity in a region-based cache directory |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662272B2 (en) * | 2001-09-29 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Dynamic cache partitioning |
US6813691B2 (en) * | 2001-10-31 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | Computer performance improvement by adjusting a count used for preemptive eviction of cache entries |
US7694075B1 (en) * | 2005-03-09 | 2010-04-06 | Globalfoundries Inc. | System for enabling and disabling cache and a method thereof |
TW200821831A (en) | 2005-12-21 | 2008-05-16 | Nxp Bv | Schedule based cache/memory power minimization technique |
US7584327B2 (en) * | 2005-12-30 | 2009-09-01 | Intel Corporation | Method and system for proximity caching in a multiple-core system |
US7596662B2 (en) * | 2006-08-31 | 2009-09-29 | Intel Corporation | Selective storage of data in levels of a cache memory |
US8103830B2 (en) * | 2008-09-30 | 2012-01-24 | Intel Corporation | Disabling cache portions during low voltage operations |
CN102207830B (zh) * | 2011-05-27 | 2013-06-12 | 杭州宏杉科技有限公司 | 一种缓存动态分配管理方法及装置 |
US8924756B2 (en) | 2011-06-27 | 2014-12-30 | Intel Corporation | Processor core with higher performance burst operation with lower power dissipation sustained workload mode |
US20130036270A1 (en) * | 2011-08-04 | 2013-02-07 | The Regents Of The University Of Michigan | Data processing apparatus and method for powering down a cache |
US8713256B2 (en) * | 2011-12-23 | 2014-04-29 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including dynamic cache sizing and cache operating voltage management for optimal power performance |
US8984311B2 (en) | 2011-12-30 | 2015-03-17 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including dynamic C0-state cache resizing |
US9753831B2 (en) * | 2012-05-30 | 2017-09-05 | Red Hat Israel, Ltd. | Optimization of operating system and virtual machine monitor memory management |
US9141552B2 (en) * | 2012-08-17 | 2015-09-22 | Freescale Semiconductor, Inc. | Memory using voltage to improve reliability for certain data types |
US9021207B2 (en) * | 2012-12-20 | 2015-04-28 | Advanced Micro Devices, Inc. | Management of cache size |
US10133678B2 (en) * | 2013-08-28 | 2018-11-20 | Advanced Micro Devices, Inc. | Method and apparatus for memory management |
-
2014
- 2014-02-25 US US14/188,905 patent/US10204056B2/en active Active
- 2014-04-25 EP EP14166115.7A patent/EP2899638B1/en active Active
- 2014-11-24 CN CN201410679363.2A patent/CN104572497B/zh active Active
- 2014-11-24 CN CN201510004441.3A patent/CN104572500B/zh active Active
- 2014-12-12 TW TW103143425A patent/TWI576760B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI576760B (zh) | 2017-04-01 |
TW201530428A (zh) | 2015-08-01 |
CN104572497A (zh) | 2015-04-29 |
EP2899638A1 (en) | 2015-07-29 |
US10204056B2 (en) | 2019-02-12 |
US20150212947A1 (en) | 2015-07-30 |
CN104572500A (zh) | 2015-04-29 |
CN104572500B (zh) | 2018-08-07 |
EP2899638B1 (en) | 2018-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572497B (zh) | 通过计数逐出进行的动态高速缓存扩大 | |
US8438416B2 (en) | Function based dynamic power control | |
EP2805243B1 (en) | Hybrid write-through/write-back cache policy managers, and related systems and methods | |
KR101673500B1 (ko) | 캐시 제어를 위한 방법 및 장치 | |
US9110671B2 (en) | Idle phase exit prediction | |
US8793512B2 (en) | Method and apparatus for thermal control of processing nodes | |
KR101518440B1 (ko) | 프로세싱 노드의 동적 성능 제어 | |
CN104871114A (zh) | 用于集成电路的空闲阶段预测 | |
US9720487B2 (en) | Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration | |
CN103226521B (zh) | 多模式数据预取装置及其管理方法 | |
TWI670602B (zh) | 電子器件及省電快取記憶體使用之方法 | |
KR102553539B1 (ko) | 고체 상태 드라이브에서 가비지 수집 리소스 할당을 적응시키는 메커니즘 | |
CN109716307B (zh) | 用于延迟的高速缓存利用的系统和方法 | |
GB2480756A (en) | Reducing power consumption in a multi-core processing complex. | |
WO2014042749A1 (en) | Distributing power to heterogenous compute elements of a processor | |
CN202494949U (zh) | 一种基于总线从单元接口的时钟管理模块 | |
Saito et al. | Reduction of cache energy by switching between l1 high speed and low speed cache under application of dvfs | |
EP1958071B1 (en) | Power conservation via dram access | |
Kaxiras et al. | Managing Static (Leakage) Power | |
Schmidt et al. | Low-overhead decision support for dynamic buffer reallocation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |