CN101097547B - 用智能最近最少使用方案在高速缓存中进行功率性能调整 - Google Patents
用智能最近最少使用方案在高速缓存中进行功率性能调整 Download PDFInfo
- Publication number
- CN101097547B CN101097547B CN2007101266661A CN200710126666A CN101097547B CN 101097547 B CN101097547 B CN 101097547B CN 2007101266661 A CN2007101266661 A CN 2007101266661A CN 200710126666 A CN200710126666 A CN 200710126666A CN 101097547 B CN101097547 B CN 101097547B
- Authority
- CN
- China
- Prior art keywords
- road
- speed cache
- subclass
- order
- set associative
- 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.)
- Expired - Fee Related
Links
Images
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/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
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
-
- 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/601—Reconfiguration of cache memory
-
- 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了用智能最近最少使用方案在高速缓存中进行功率性能调整。调整N路组相联顺序高速缓存中的路的数目以达成功率与性能的折衷。在基于地址的分配期间限制路选择,从而仅将N路的子集用于地址范围,从而能够将未使用的N路断电。
Description
技术领域
本发明通常涉及存储装置,更具体地来说涉及高速缓冲存储器。
背景技术
高的功率消耗限制了移动和台式计算机系统的处理器性能。处理器中消耗的功率直接关系到移动计算机系统的电池寿命。限制任何无用的活动或去掉边际性能增益能节省能量并延长电池寿命。为抑制系统成本,大多数计算机系统使用节流方案或以降低的频率和电压模式运行处理器以延长电池寿命。
发明内容
本发明涉及一种装置,所述装置包括:
N路组相联顺序高速缓存;以及
耦合到所述顺序高速缓存的路选择器,所述路选择器能够将对地址范围的访问指引到所述N路组相联顺序高速缓存中的N路的子集。
本发明涉及一种方法,所述方法包括:
提供N路组相联顺序高速缓存;以及
将对地址范围的访问指引到所述N路组相联顺序高速缓存中的N路的子集。
本发明涉及一种包括机器可访问介质的产品,所述机器可访问介质具有关联的信息,其中当访问所述信息时所述信息导致机器执行如下步骤:
提供N路组相联顺序高速缓存;以及
将对地址范围的访问指引到所述N路组相联顺序高速缓存中的N路的子集。
本发明涉及一种系统,所述系统包括:
动态随机存取存储器;以及
耦合到所述动态随机存取存储器的处理器,所述处理器包括:
N路组相联顺序高速缓存;以及
耦合到所述顺序高速缓存的路选择器,所述路选择器能够将对地址范围的访问指引到所述N路组相联顺序高速缓存中的N路的子集。
附图说明
参照附图,随着下文详细描述的展开,要求权利的主题的实施例的特征将变得显而易见,附图中相同数字表示相同部分,其中:
图1是包括根据本发明原理可配置成可伸缩N路组相联高速缓存的指令高速缓存的系统的框图;
图2是说明图1中所示指令高速缓存细分成8个存储体的框图;
图3是图2所示的存储体中任何一个存储体的实施例的框图;
图4是说明根据本发明原理配置为4路组相联高速缓存的可伸缩8路存储体指定的实施例的框图;
图5是用于将可伸缩8路存储体指定配置为4路组相联高速缓存的路选择器的实施例;
图6说明8路智能伪LRU的实施例;以及
图7说明可伸缩8路智能伪LRU的实施例。
尽管下文的详细描述将参照要求权利的主题的说明性实施例来展开,但很多替代、修改和变化对那些本领域的技术人员来说是显而易见的。相应地,这意味着应该将要求权利的主题的实施例视为范围广泛的,并且仅由所附的权利要求定义。
具体实施方式
处理器通常包括用于存储频繁使用的数据值的内部高速缓存。内部高速缓存通过减少为检索数据值和指令而对外部存储器的访问来提高处理器的性能。然而,随着包括在处理器中的内部高速缓冲存储器的数目增加,处理器消耗的功率也增加。
高速缓存通常比主存储器更小且更快,且存储来自最频繁使用的主存储器位置的数据的副本。高速缓存的地址空间被分成高速缓存行,高速缓存行的大小通常大于主存储器存取的大小。
高速缓存行大小是能在主存储器和高速缓存之间传输的最小存储器单元。高速缓存行通常存储多个字以利用引用的局部性,即,如果一个位置被读取,那么其后的位置可能此后不久就会被读取。主存储器和高速缓存中的每个位置具有关联的索引或地址。高速缓存中的每个位置具有关联的标志,用于存储也存储在高速缓存中的主存储器中的高速缓存行的索引。
当从主存储器的地址中读/向主存储器的地址写时,首先通过将主存储器地址的一部分与存储在高速缓存中的所有标志相比较来检查高速缓存,以确定该地址是否存储在高速缓存中。如果存在匹配,则高速缓存命中。如果不匹配,则高速缓存未命中。通常,高速缓存未命中时,在高速缓存中为未命中的地址分配新的条目,然后将从主存储器读取的数据的标志和副本存储在高速缓存中。
在N路组相联高速缓存中,地址空间被分成高速缓存行大小的高速缓存位置的块。高速缓存位置(高速缓存行)集合成组,每组具有N个高速缓存位置或N路。在找到给定地址的相应组之后,在该组内找到高速缓存行大小的高速缓存位置。高速缓存内有N个可缓存主存储器中的任何特定位置的位置。读取相联高速缓存中与每个条目一起存储的标志,以确定为特定主存储器地址要选择高速缓存的哪个条目。通常,N路组相联高速缓存并行读取存储在高速缓存中的所有N个标志和N个数据并选择与匹配标志关联的数据。
当所有高速缓存位置已满时,需要刷新(回收)该组内的其中一个元素以便为新元素腾出空间。有许多替换策略用于选择要刷新的元素。一种公知的替换策略基于伪最近最少使用(LRU)算法替换N路相联高速缓存中的元素。在给定一组元素且一系列对元素的访问事件的情况下,伪LRU算法遍历二进制搜索树以寻找伪LRU元素,即最近最有可能没被访问过的元素。二进制搜索树的每个节点具有指示搜索应当进行的方向(右或左)的关联的一位标志。根据标志的值遍历二进制树以查找伪LRU元素,同时在遍历期间通过将伪LRU元素的标志设置为所取的方向的反方向来更新每个标志。
替换策略还选择在高速缓存中将主存储器位置的副本存储在哪里。选择存储主存储器位置的副本的高速缓冲存储器位置可使用存储器位置的索引的一些位。例如,可以使用主存储器位置的索引的最低有效位作为高速缓冲存储器的索引。用存储器位置的索引的一部分来选择高速缓存条目减少了标志中存储的主存储器地址位的数量。
本发明的实施例提供一种减少N路组相联顺序高速缓存中功率消耗的方法。可以通过选择可用路或存储体(bank)的子集并在所选择的子集中选择LRU高速缓存条目,以使用顺序高速缓存的确定性特性来减少功率消耗。在顺序高速缓存中,高速缓存内的数据是顺序存储的,并按预定方式来访问。例如,指令高速缓存是顺序高速缓存,其中指令按程序定义的静态次序被存储。顺序高速缓存的另一个例子是跟踪高速缓存,其中指令在被解码之后或在退出时按执行的次序被存储。
图1是根据本发明原理的系统100的框图,系统100包括可配置为可伸缩N路组相联高速缓存的指令高速缓存102。处理器104包括用于与主存储器(外部存储器)108通信的总线接口单元106和用于存储通过总线接口单元106从主存储器108提取的指令的指令高速缓存102。处理器还包括耦合到指令高速缓存102的执行单元110,它执行从指令高速缓存102提取的指令。主存储器108可为Rambus动态随机存取存储器(RDRAM)、双倍数据速率动态随机存取存储器(DDR RAM)、同步动态随机存取存储器(SDRAM)或任何相似类型的存储器。
通过将频繁使用的数据值存储在指令高速缓存102中,因减少了为检索指令而对外部存储器110的访问,从而提高处理器104的性能。本发明的实施例将针对8路组相联指令高速缓存来描述。然而,本发明不限于8路组相联指令高速缓存。可以结合使用伪最近最少使用(LRU)算法的任何N路组相联顺序高速缓存来使用本发明。
可以将存储器分成可单独寻址的块,通称为存储体。基于地址,可以交替执行对存储体的访问,以便一次仅一个存储体是直接可访问的。因此,可以通过将组中的高速缓存位置或路分布在多个单独的存储体上(组的一个高速缓存位置存储在每个存储体中),以减少高速缓存内的功率消耗。
图2是说明细分成8个存储体的图1所示的指令高速缓存102的框图。指令高速缓存102是以非节能模式为8路组相联高速缓存配置的。
虽然图2中未示出,但是指令高速缓存102的每个存储体可以包括附加的电路,包括解码器电路、读出电路和其它控制电路。解码器电路可用于将地址信息解码,以确定给定存储体的选定组,而读出电路可用于读出选定组的数据。控制电路可用于能在存储体内执行写和读操作。
8个存储体202_0,...,202_7中的每个存储体能够存储对应于N个组中的每个组的一路。例如,对应于组0至组n-1的0路存储在存储体0中,对应于组0至组n-1的路7存储在存储体7中。由于标志比较需要时间,所以存储在每个存储体中的路信息是时间关键的。因此,可以对所有“路”并行地执行标志比较,即对8个存储体的每一个存储体并行地执行标志比较以确定存储高速缓存条目的存储体。
因为有8个单独的路(存储体),所以这8个存储体中的每个存储体存储特定组的一个元素。为了选择存储特定组的LRU元素的存储体,伪LRU算法保存7位LRU矢量(LRU[0]-LRU[6])。从LRU[0]开始检查每个LRU位的状态以确定要选择8个存储体中的哪一个存储体。
表1
如表1所示,LRU[0]的状态确定是从存储体0-3的集合中选择存储体还是从存储体4-7的集合中选择存储体。如果LRU[0]为“0”,则从存储体0-3的集合中选择存储体,如果LRU[0]为“1”,则从存储体4-7的集合中选择存储体。即使LRU[0]的状态选择存储体的两个集合的其中一个集合,仍必须对所有的存储体通电,因为基于伪LRU算法,在选择要覆写(回收)的元素之后,另一个集合的存储体将被选择,以便用于选择下一个要覆写的元素。
图3是图2所示的存储体其中之一202_0的实施例的框图。存储体202_0包括标志阵列300、数据阵列302和状态阵列304。数据阵列302存储高速缓存行中存储的数据。标志阵列300存储与高速缓存行对应的地址的标志部分。状态阵列304存储关于高速缓存中的条目是否有效的指示。数据阵列302和标志阵列300相对比较大,因此每个存储体的功率的很大部分被这些阵列消耗。
通常,物理存储器地址包括标志、组索引和偏移值。组索引用于选择组,而偏移值用于选择组内的位或字。将标志位与存储在标志阵列中对应于条目的标志位相比较来确定该物理存储器地址的数据是否存储在高速缓存中,即,是否存在高速缓存命中。
图4是说明根据本发明原理配置为4路组相联高速缓存的可伸缩8路组相联的实施例的框图。调整处于活动的路的数量以达成功率与性能的折衷。路的调整不涉及对高速缓存结构的任何物理改动,而且允许对多个市场领域使用相同的芯片,例如,使用相同的芯片作为用于高性能服务器的8路组相联高速缓存和用于移动系统的4路组相联高速缓存。
可以由修改的伪最近最少使用(LRU)算法通过在分配期间限制路选择来执行调整路的数目。在所示实施例中,虽然有8路,但是任何时间高速缓存的仅一半的路(存储体)是处于活动的,而其它4个存储体中的数据阵列、标志阵列和状态阵列可以断电。在可忽略性能上的损失的前提下,这样减少约一半的功率消耗。
在示出的8路相联高速缓存实施例中,通过可编程模式,高端工作站可使用所有的8路,而移动和超低功率领域可以仅使用存储体(路)的子集,例如,4路、2路、或1路。在一个实施例中,可编程的模式是启用/禁用位。
通过在分配期间将选择限制于N路的子集,以调整路的数量来达成功率与性能的折衷。高速缓存中的路的仅可选择子集是活动的,而其它组可以断电以减少功率消耗。
在一个实施例中,32K指令高速缓存具有64组的8路,其中每一路具有64字节的高速缓存行。8路的每一路都实施为存储体而每个存储体都具有标志阵列、数据阵列和状态阵列,如结合图3所示论述的。高速缓存行的64字节数据被存储在数据阵列中。32位的线性指令指针(LIP)组成标志部分并被存储在标志阵列中,6位的LIP用于选择64个组的其中一个组。由于每条高速缓存行都为64字节,所以当选择组时可忽略LIP的6个最低有效位(LIP[5]-LIP[0])。
本发明的实施例应用于任何顺序高速缓存,即按顺序方式访问的高速缓存,例如指令高速缓存或追踪高速缓存。指令高速缓存是存储要执行的指令的快速本地存储器。通常,指令高速缓存存储指令流。当代码的顺序代码段被执行时,处理器要执行的指令流呈现出高度空间局部性。空间局部性的概念是,如果数据附近的数据刚被引用过,则引用该数据的可能性更高。
当在代码中发生循环时,该流也呈现出高度空间和时间局部性。时间局部性是指在一时间点被引用的数据可能在不久的将来某个时间再次被引用的概率可能性。
不使用LRU矢量的最低有效位来选择N路的子集,而是使用由线性指令指针的一部分标识的地址范围。在示出的实施例中,使用LIP[12]在8路组相联指令高速缓存中选择4路的一组。由于存储器中指令存储的特性,通常顺序地访问指令高速缓存,因此下一个要访问的指令将在路的相同子集中是可能的。因此,可以将路的另一组断电以节省功率消耗,而对基于LIP[12]的状态选择的路的第一子集通电。对于特定的地址,始终仅访问8路组相联高速缓存中的4路,而可以将其它的4路断电。
如图4中的实施例所示,不使用LRU[0]位,而使用LIP[12]基于由LIP[12]的状态标识的地址范围来选择路的子集。当LIP[12]为“1”,即LIP[12:10]为“1XX”时,启用路4-7(存储体4-7202_3、…、202_6)。当LIP[12]为“0”,即LIP[12:10]为“0XX”时,启用路0-3(存储体0-3202_0、…、202_2)。在任何时间,LIP要么为“0”要么为“1”,因此在任何给定的时间两个“4路”子集中仅一个子集被选择。对于特定的寻址方案,可以始终访问4路。
与使用LRU[0]来选择多路中的一路并通过在遍历时将其设为相反状态来更新的伪LRU算法对比,该路的组是基于线性指令指针中的地址位的其中之一来选择的。
使用线性指令指针来选择N路的子集避免了对高速缓存结构的物理改变。相反,通过使用线性指令指针,在分配期间基于地址范围来限制选择。电力节省适用于路中的数据阵列、标志阵列和状态阵列。对于当前未处于活动状态的路,可以在N路的子集的每一路中将数据阵列、标志阵列和状态阵列断电。
返回到图3,可以通过单独的控制信号来控制对存储体202_0中的标志阵列300、数据阵列302和状态阵列304的每个阵列通电。在一个实施例中,利用LIP[12]来限定打开和关闭标志阵列300和状态阵列304的控制信号,这样当在8路组相联高速缓存中基于LIP[12]的状态启用4路模式时,对4个未选择的路中的标志阵列300和状态阵列304的供电处于关闭。
利用每路(存储体)中的标志阵列300输出的路启用信号限定打开和关闭数据阵列的控制信号,因此也关闭未选择的路的数据阵列,从而导致额外的电力节省。
图5是用于将可伸缩8路存储体指定配置为4路组相联高速缓存的路选择器500的实施例。在所示的实施例中,路选择器包括2:1多路复用器502。多路复用器502基于4路启用的状态来选择旧的LRU[0]或LIP[12]作为新的LRU[0]转发以供伪LRU算法使用。这样允许在高速缓存被配置成8路相联高速缓存的情况下将旧的LRU[0]作为新的LRU[0]转发,而在高速缓存被配置成4路组相联高速缓存的情况下将LIP[12]作为新LRU[0]转发。
图6说明8路智能伪LRU的实施例。如图所示,使用LIP[12]的状态来确定是启用包括路0、路1、路2和路3的路的子集还是启用包括路4、路5、路6和路7的路的子集。在LIP[12]的状态选择了路的一个子集后,使用LRU[6]-LRU[1]以从所选定的子集中选择路。
图7说明可伸缩8路智能伪LRU的实施例。在所示的实施例中,可通过使用线性指令指针(LIP)的附加位来扩展可断电的N路的子集。在可伸缩方法中,可以使用可用的8路中的4路以将8路组相联高速缓存修改成4路组相联高速缓存,使用可用的8路中的2路以将8路组相联高速缓存修改成2路组相联高速缓存,使用可用的8路中的1路以将8路组相联高速缓存修改成1路直接映射的高速缓存。
例如,当选择“2路模式”时,高速缓存变成4个“2路”高速缓存(或者实质上是256个组和2路),最后当选择“直接映射”模式时,高速缓存变成8个“1路”高速缓存。如先前所论述的,可以基于选择的操作模式在高速缓存中将特定路的数据和标志阵列断电。
例如,在“2路模式”,对于数据、标志和状态阵列,可以将这些路中的6路断电,由此节省很多的电力。表2示出使用LIP[12]、[11]、[10]的真值表以用于说明对应于不同模式所使用的路。
LIP[12] | LIP[11] | LIP[10] | 路 | 模式 |
1 | X | x | 4-7 | 4路模式 |
0 | X | x | 0-3 | 4路模式 |
0 | 0 | x | 0-1 | 2路模式 |
0 | 1 | x | 2-3 | 2路模式 |
1 | 0 | x | 4-5 | 2路模式 |
1 | 1 | x | 6-7 | 2路模式 |
0 | 0 | 0 | 0 | 直接映射 |
0 | 0 | 1 | 1 | 直接映射 |
0 | 1 | 0 | 2 | 直接映射 |
0 | 1 | 1 | 3 | 直接映射 |
1 | 0 | 0 | 4 | 直接映射 |
1 | 0 | 1 | 5 | 直接映射 |
1 | 1 | 0 | 6 | 直接映射 |
1 | 1 | 1 | 7 | 直接映射 |
表2
在所示的实施例中,使用线性指令指针值中的高阶地址位,即LIP[12-10]来选择所使用的路,因为使用这些地址位不影响高速缓存的顺序次序。
在“4路模式”中仅使用4路数据、标志和状态,可以将其余的路断电。在一个实施例中高速缓存可以是芯片上高速缓存,即与处理器在相同的芯片上。
在该实施例中,将结合图5描述的路选择器500修改成根据所选的模式是2路还是直接映射来选择是否将LIP[11:10]转发到伪LRU算法。例如,当选择2路模式时,使用LIP[12]来选择要存储在路0-3或路4-7中的地址的范围,并且根据LIP[12]的状态,使用LIP[11]在路0-1、路2-3、路4-5和路6-7之间进行选择。
在另一个实施例中,可以使用控制寄存器中的可编程(消除特征(de-feature))模式位来使一组路能打开/关闭。消除特征位允许在如台式机、可移动系统和服务器这样的不同类型系统中使用相同的处理器。例如,可以在用于移动系统的处理器中启用对一组路打开或关闭供电的能力,在移动系统中节省电力比性能更为重要。
通过将高速缓存从8路组相联高速缓存减少成两个4路组相联高速缓存,性能损失是可忽略的。由于路的数目减少而导致的高速缓存未命中,性能的损失增大。然后,可在功率和性能之间达成折衷。
在另一个实施例中,可以通过使模式永久性地被设置的熔丝位来实现可编程模式、例如图5示出的4路模式,从而使8路组相联高速缓存永久性地作为4路组相联高速缓存来工作以提供功率更低的处理器。
本领域的技术人员显见,本发明实施例中所包含的方法可以在包括计算机可用介质的计算机程序产品中实施。例如,这种计算机可用介质可由其上存储有计算机可读程序代码的只读存储器装置组成,如只读光盘(CD ROM)或常规的ROM装置或计算机软盘。
虽然本发明的实施例是参照其实施例来具体地描述和示出的,但是本领域技术人员将理解,在不背离由所附的权利要求涵盖的本发明范围的前提下可作形式和细节上的多种更改。
Claims (18)
1.一种降低高速缓存功率消耗的装置,包括:
N-路组相联顺序高速缓存;以及
耦合到所述N-路组相联顺序高速缓存的路选择器,所述路选择器将对地址范围的访问指引到所述N-路组相联顺序高速缓存中的N-路的子集,所述N-路的子集被分配给地址范围,使用线性指令指针高阶位的一部分来选择N-路的子集,基于高速缓存的顺序次序选择所述高阶位的一部分,其中通过在最近最少使用条目的分配期间将选择限制于仅仅所述N-路的子集来调整所述N-路组相联顺序高速缓存中的N-路以达成功率与性能的折衷,并将未选择的路断电。
2.如权利要求1所述的装置,其特征在于,所述路选择器基于多种模式中的一种模式来指引访问。
3.如权利要求1所述的装置,其特征在于,所述路选择器基于熔丝的状态指引访问。
4.如权利要求1所述的装置,其特征在于,所述顺序高速缓存是指令高速缓存。
5.如权利要求1所述的装置,其特征在于,所述路选择器搜索所述N-路的子集以查找最近最少使用的条目。
6.如权利要求2所述的装置,其特征在于,所述多种模式中选定的一种模式是可编程的。
7.如权利要求1所述的装置,其特征在于,所述N-路的子集是N/2。
8.如权利要求1所述的装置,其特征在于,所述N-路的子集是N/4。
9.一种降低高速缓存功率消耗的方法,包括:
提供N-路组相联顺序高速缓存;
将对地址范围的访问指引到所述N-路组相联顺序高速缓存中的N-路的子集,所述N-路的子集被分配给地址范围,使用线性指令指针高阶位的一部分来选择N-路的子集,基于高速缓存的顺序次序选择所述高阶位的一部分;以及
通过在分配期间将选择限制于所述N-路的子集来调整所述N-路组相联顺序高速缓存中的所述N-路以达成功率与性能的折衷,
其中将未选择的路断电。
10.如权利要求9所述的方法,还包括:
基于多种模式中的一种模式将访问限制于所述N-路的子集。
11.如权利要求9所述的方法,还包括:
基于熔丝的状态将访问限制于所述N-路的子集。
12.如权利要求9所述的方法,其特征在于,所述顺序高速缓存是指令高速缓存。
13.如权利要求9所述的方法,还包括:
搜索所述N-路的子集以查找最近最少使用的条目。
14.如权利要求9所述的方法,其特征在于,所述多种模式中选定的一种模式是可编程的。
15.如权利要求9所述的方法,其特征在于,所述N-路的子集是N/2。
16.如权利要求9所述的方法,其特征在于,所述N-路的子集是N/4。
17.一种降低高速缓存功率消耗的系统,包括:
动态随机存取存储器;以及
耦合到所述动态随机存取存储器的处理器,所述处理器包括:
N-路组相联顺序高速缓存;以及
耦合到所述N-路组相联顺序高速缓存的路选择器,所述路选择器将对地址范围的访问指引到所述N-路组相联顺序高速缓存中的N-路的子集,所述N-路的子集被分配给地址范围,使用线性指令指针高阶位的一部分来选择N-路的子集,基于高速缓存的顺序次序选择所述高阶位的一部分,其中通过在最近最少使用条目的分配期间将选择限制于仅仅所述N-路的子集来调整所述N-路组相联顺序高速缓存中的N-路以达成功率与性能的折衷,并将未选择的路断电。
18.如权利要求17所述的系统,其特征在于,所述顺序高速缓存是指令高速缓存。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/418883 | 2006-05-04 | ||
US11/418,883 US7689772B2 (en) | 2006-05-04 | 2006-05-04 | Power-performance modulation in caches using a smart least recently used scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101097547A CN101097547A (zh) | 2008-01-02 |
CN101097547B true CN101097547B (zh) | 2012-02-01 |
Family
ID=38662453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101266661A Expired - Fee Related CN101097547B (zh) | 2006-05-04 | 2007-05-04 | 用智能最近最少使用方案在高速缓存中进行功率性能调整 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7689772B2 (zh) |
CN (1) | CN101097547B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7616210B2 (en) * | 2005-08-23 | 2009-11-10 | Canon Kabushiki Kaisha | Memory apparatus and memory control method |
US20070288776A1 (en) * | 2006-06-09 | 2007-12-13 | Dement Jonathan James | Method and apparatus for power management in a data processing system |
US7512739B2 (en) * | 2006-07-05 | 2009-03-31 | International Business Machines Corporation | Updating a node-based cache LRU tree |
US8725983B2 (en) * | 2009-01-23 | 2014-05-13 | Cypress Semiconductor Corporation | Memory devices and systems including multi-speed access of memory modules |
US8572320B1 (en) * | 2009-01-23 | 2013-10-29 | Cypress Semiconductor Corporation | Memory devices and systems including cache devices for memory modules |
JP5650441B2 (ja) * | 2010-06-07 | 2015-01-07 | キヤノン株式会社 | 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム |
US8352683B2 (en) * | 2010-06-24 | 2013-01-08 | Intel Corporation | Method and system to reduce the power consumption of a memory device |
CN102147772B (zh) * | 2011-04-22 | 2013-05-22 | 威盛电子股份有限公司 | 快取存储器的替换装置及方法 |
US20120303897A1 (en) * | 2011-05-28 | 2012-11-29 | Sakthivel Komarasamy Pullagoundapatti | Configurable set associative cache way architecture |
US9396117B2 (en) * | 2012-01-09 | 2016-07-19 | Nvidia Corporation | Instruction cache power reduction |
US9547358B2 (en) | 2012-04-27 | 2017-01-17 | Nvidia Corporation | Branch prediction power reduction |
US9552032B2 (en) | 2012-04-27 | 2017-01-24 | Nvidia Corporation | Branch prediction power reduction |
US8977817B2 (en) * | 2012-09-28 | 2015-03-10 | Apple Inc. | System cache with fine grain power management |
US9317102B2 (en) | 2013-01-03 | 2016-04-19 | Apple Inc. | Power control for cache structures |
WO2016097812A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Cache memory budgeted by chunks based on memory access type |
EP3066571B1 (en) | 2014-12-14 | 2018-06-13 | VIA Alliance Semiconductor Co., Ltd. | Cache memory budgeted by ways on memory access type |
WO2016097810A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon mode |
WO2016097795A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or subset or tis ways depending on mode |
US10698827B2 (en) | 2014-12-14 | 2020-06-30 | Via Alliance Semiconductor Co., Ltd. | Dynamic cache replacement way selection based on address tag bits |
WO2016097806A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by memory access type |
EP3055775B1 (en) * | 2014-12-14 | 2019-08-21 | VIA Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
US9811468B2 (en) * | 2014-12-14 | 2017-11-07 | Via Alliance Semiconductor Co., Ltd. | Set associative cache memory with heterogeneous replacement policy |
EP3296880B1 (en) | 2015-06-02 | 2022-09-21 | Huawei Technologies Co., Ltd. | Access system and method for data storage |
US10366001B1 (en) * | 2017-09-15 | 2019-07-30 | Xilinx, Inc. | Partitioning memory blocks for reducing dynamic power consumption |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
US5551011A (en) * | 1994-01-27 | 1996-08-27 | Huyck Licensco, Inc. | Computerized system for simulating paper sheet formation and the appearance of print thereon |
WO1996012229A1 (en) * | 1994-10-14 | 1996-04-25 | Silicon Graphics, Inc. | Indexing and multiplexing of interleaved cache memory arrays |
US5870616A (en) * | 1996-10-04 | 1999-02-09 | International Business Machines Corporation | System and method for reducing power consumption in an electronic circuit |
US6578138B1 (en) * | 1999-12-30 | 2003-06-10 | Intel Corporation | System and method for unrolling loops in a trace cache |
US6845432B2 (en) * | 2000-12-28 | 2005-01-18 | Intel Corporation | Low power cache architecture |
KR100985239B1 (ko) * | 2003-02-24 | 2010-10-04 | 엔엑스피 비 브이 | 인스트럭션 캐시 관리 방법, 캐시 메모리, 집적 회로 및저장 매체 |
US7177981B2 (en) | 2003-05-09 | 2007-02-13 | Via-Cyrix, Inc. | Method and system for cache power reduction |
US7457917B2 (en) * | 2004-12-29 | 2008-11-25 | Intel Corporation | Reducing power consumption in a sequential cache |
US7433247B2 (en) * | 2005-09-26 | 2008-10-07 | Macronix International Co., Ltd. | Method and circuit for reading fuse cells in a nonvolatile memory during power-up |
US7562191B2 (en) * | 2005-11-15 | 2009-07-14 | Mips Technologies, Inc. | Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme |
-
2006
- 2006-05-04 US US11/418,883 patent/US7689772B2/en not_active Expired - Fee Related
-
2007
- 2007-05-04 CN CN2007101266661A patent/CN101097547B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20070260818A1 (en) | 2007-11-08 |
CN101097547A (zh) | 2008-01-02 |
US7689772B2 (en) | 2010-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101097547B (zh) | 用智能最近最少使用方案在高速缓存中进行功率性能调整 | |
CN109983536B (zh) | 响应标签匹配命令的存储电路 | |
CN101595462B (zh) | 用以减少多级高速缓冲存储器层级中的掷出的设备和方法 | |
CN1317644C (zh) | 简化了缓存替换策略的实现的多线程缓存方法和装置 | |
EP1665286B1 (en) | Integrated circuit and a method of cache remapping | |
US7953953B2 (en) | Method and apparatus for reducing page replacement time in system using demand paging technique | |
CN1317645C (zh) | 具有基于线程标识符的缓存清除的多线程缓存方法和装置 | |
US20180275899A1 (en) | Hardware based map acceleration using forward and reverse cache tables | |
US8954672B2 (en) | System and method for cache organization in row-based memories | |
US8180965B2 (en) | System and method for cache access prediction | |
US8904111B2 (en) | Cache memory with CAM and SRAM sub-tags and generation control | |
CN103597455A (zh) | 用于大型数据缓存的有效标签存储 | |
CN103198026A (zh) | 指令高速缓存功耗降低 | |
CN103942161A (zh) | 只读缓存的去冗余系统及方法以及缓存的去冗余方法 | |
US12093180B2 (en) | Tags and data for caches | |
US9261946B2 (en) | Energy optimized cache memory architecture exploiting spatial locality | |
CN107291630B (zh) | 一种高速缓冲存储器处理方法及装置 | |
CN103885890A (zh) | 高速缓冲存储器cache中cache块的替换处理方法和装置 | |
US6973540B2 (en) | Method and apparatus for selecting cache ways available for replacement | |
CN110727610B (zh) | 高速缓存存储器、存储系统和高速缓存存储器的逐出方法 | |
US6397298B1 (en) | Cache memory having a programmable cache replacement scheme | |
US20040015669A1 (en) | Method, system, and apparatus for an efficient cache to support multiple configurations | |
US20070294504A1 (en) | Virtual Address Cache And Method For Sharing Data Using A Unique Task Identifier | |
US9251070B2 (en) | Methods and apparatus for multi-level cache hierarchies | |
WO2015141731A1 (ja) | キャッシュメモリおよびプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120201 Termination date: 20130504 |