CN1908859A - 降低高速缓存的功耗 - Google Patents

降低高速缓存的功耗 Download PDF

Info

Publication number
CN1908859A
CN1908859A CNA2006101091709A CN200610109170A CN1908859A CN 1908859 A CN1908859 A CN 1908859A CN A2006101091709 A CNA2006101091709 A CN A2006101091709A CN 200610109170 A CN200610109170 A CN 200610109170A CN 1908859 A CN1908859 A CN 1908859A
Authority
CN
China
Prior art keywords
speed cache
code
cache
power consumption
storer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006101091709A
Other languages
English (en)
Other versions
CN1908859B (zh
Inventor
石原亨
法尔扎·法拉赫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN1908859A publication Critical patent/CN1908859A/zh
Application granted granted Critical
Publication of CN1908859B publication Critical patent/CN1908859B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/271Non-uniform cache access [NUCA] architecture
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

降低高速缓存的功耗。在一个实施例中,一种用于降低高速缓存上的功耗的方法包括:根据哪个代码可写入与高速缓存分开的存储器来确定代码布置。该代码布置减少了当将代码从存储器载入高速缓存时高速缓存行间顺序流的出现。该方法还包括:根据代码布置来编译代码;以及将代码写入存储器中,用于随后根据代码布置将代码从存储器载入高速缓存中以降低高速缓存上的功耗。在另一实施例中,该方法还包括:确定高速缓存的非均匀架构,用以针对高速缓存中的各高速缓存组提供最优数量的高速缓存路。该非均匀架构允许高速缓存中的多个高速缓存组具有彼此不同的关联值。该方法还包括:实现高速缓存中的非均匀架构以进一步降低高速缓存上的功耗。

Description

降低高速缓存的功耗
技术领域
本发明总体上涉及一种存储器系统,更具体地,涉及降低高速缓存上的功耗。
背景技术
在处理器上的高速缓存通常会消耗相当大量的功率。作为示例,在ARM920T处理器上的指令高速缓存占用了该处理器的功耗的约25%。作为另一示例,在StrongARM SA-110处理器(其针对低功率应用)上的指令高速缓存占用了该处理器的功耗的约27%。
发明内容
本发明的具体实施例可以降低或消除与现有的存储器系统相关的问题和缺点。
在一个实施例中,一种用于降低高速缓存的功耗的方法包括如下步骤:根据哪个代码可写入与高速缓存分开的存储器来确定代码布置(placement)。该代码布置减少了当将代码从存储器载入高速缓存时高速缓存行(cache-line)间顺序流的出现。该方法还包括如下步骤:根据代码布置来编译代码,以及将代码写入存储器中,用于随后根据代码布置将代码从存储器载入高速缓存中以降低高速缓存上的功耗。
在另一实施例中,该方法还包括确定高速缓存的非均匀架构,用以为高速缓存中的各高速缓存组提供最优数量的高速缓存路的步骤。非均匀架构允许高速缓存中的多个高速缓存组具有彼此不同的关联(associativity)值。该方法还包括实现高速缓存中的非均匀架构以进一步降低高速缓存上的功耗的步骤。
本发明的具体实施例可以提供一个或更多个技术优点。作为示例而非出于限制,这些具体实施例可以降低高速缓存上的功耗。具体实施例提供了一种用以降低高速缓存上的功耗的非均匀高速缓存架构。具体实施例便于代码布置以减少在高速缓存中的标签查找、路查找、或标签查找和路查找两者,从而降低高速缓存上的功耗。具体实施例便于同时优化高速缓存架构和代码布置以减少高速缓存路或标签访问以及高速缓存未中(cache miss)。具体实施例可以提供这些技术优点中的全部技术优点、一些技术优点或不提供这些技术优点。具体实施例可以提供一个或更多个其他技术优点,对于本领域技术人员来说,根据此处的附图、说明书以及权利要求书,这些其他技术优点中的一个或更多个将易于被清楚理解。
附图说明
为了提供对本发明及其特征和优点的更全面的理解,结合附图参照以下说明,在附图中:
图1例示了一种用于降低高速缓存上的功耗的示例非均匀高速缓存架构;和
图2A和2B例示了用于降低高速缓存上处的功耗的示例代码布置。
具体实施方式
图1例示了一种用于降低高速缓存10上的功耗的示例非均匀高速缓存架构。在具体实施例中,高速缓存10是处理器的用于临时存储用于在该处理器上执行的代码的组件。对“代码”的引用包括一个或更多个可执行指令、其他代码、或在合适的情况下可执行指令和其他代码二者。高速缓存10包括多个组12、多个路14以及多个标签16。组12与多个路14和多个标签16逻辑地相交。组12与路14之间的逻辑交叉包括高速缓存10中的用于存储代码的多个彼此相邻的存储单元。组12与标签16之间的逻辑交叉包括高速缓存10中的彼此相邻的一个或更多个存储单元,该存储单元用于存储便于对存储在高速缓存10中的代码进行定位、对存储在高速缓存10中的代码进行识别、或对存储在高速缓存10中的代码进行定位和识别的数据。作为示例而非限制,组12a与标签16a之间的第一逻辑交叉可以包括如下的一个或更多个存储单元,该存储单元用于存储使得便于对存储在组12a与路14a之间的第二逻辑交叉处的代码进行定位、对存储在该第二逻辑交叉处的代码进行识别或对存储在该第二逻辑交叉处的代码进行定位和识别的数据。高速缓存10还包括多个读出放大器(sense amplifier)18。在具体实施例中,读出放大器18用于读取高速缓存10中的存储单元的内容。尽管对包括根据特定组织布置的特定组件的特定高速缓存10进行了例示和描述,但是本发明考虑了包括根据任何合适的组织布置的任何合适的组件的任何合适的高速缓存10。此外,本发明并不限于高速缓存10,而是考虑了任何合适的存储器系统。
在具体实施例中,在高速缓存10中的非均匀架构降低了在高速缓存10上的功耗、来自高速缓存10电流泄漏或这两者。非均匀架构使得多个组12可以具有彼此不同的多个关联值。在具体实施例中,如果第一组12与第一数量个活动路14相交、第二组12与第二数量个活动路14相交、并且该第一数量与该第二数量不同,则第一组12具有与第二组12不同的关联值。作为示例而非限制,根据高速缓存10中的非均匀架构,在组12a和组12b中路14a、路14b、路14c以及路14d都是活动的;在组12c和组12d中只有路14a和路14b是活动的;在组12e、组12f、组12g以及组12h中只有组14a是活动的。在具体实施例中,活动存储单元可用于进行存储,而不活动存储单元不可用于进行存储。
在具体实施例中,在对高速缓存10的设计过程中确定在各高速缓存组中的高速缓存路的最优数量。作为示例而非限制,如下所述,硬件、软件、或嵌入式逻辑组件或两个或更多个这些组件的组合可以执行用于确定在各高速缓存组中的高速缓存路的最优数量的算法。一个或更多个用户可以使用一个或更多个计算机系统来向一个或更多个组件提供输入或从一个或更多个组件接收输出。在合适的情况下,对“高速缓存路”的引用包括高速缓存10中的路14。在合适的情况下,对“高速缓存组”的引用包括高速缓存10中的组12。在具体实施例中,在应用程序正在运行时,可以动态地改变在高速缓存10中的活动高速缓存路的数量。在具体实施例中,一个或更多个休眠晶体管可用于动态地改变高速缓存10中的活动高速缓存路的数量。在具体实施例中,可以通过去除用于将电源连接到未使用高速缓存路中的存储单元的通道(vias),来将到未使用高速缓存路的电源与未使用高速缓存路的连接断开。也可以按同样的方式将未使用存储单元与位线和字线断开。
在具体实施例中,可以使用第二有效位(valid bit)来标记未使用高速缓存块。在合适的情况下,对“高速缓存块”的引用包括组12与路14之间的逻辑交叉。在合适的情况下,高速缓存块还包括组12与对应于路14的标签16之间的逻辑交叉。在具体实施例中,将一个或更多个有效位附到各组12中的各标签16中。在具体实施例中,这种位是各组12中的各标签16的一部分。如果第二有效位是1,则相对应的高速缓存块在出现了高速缓存未中的情况下不用于替换。访问不活动高速缓存块会导致高速缓存未中。在具体实施例中,为了降低在非均匀高速缓存10处的功耗,使在用于访问的高速缓存组中被标记为不活动的高速缓存路的读出放大器18不活动。在具体实施例中,这是通过检查存储器地址寄存器22的组索引20来实现的。作为示例而非限制,在图1所例示的非均匀高速缓存10中,当以组12e、组12f、组12g或组12h为访问目标时,使读出放大器18c和读出放大器18d不活动。当以组12c、组12d、组12e、组12f、组12g或组12h为访问目标时,使读出放大器18e、读出放大器18f、读出放大器18g以及读出放大器18h全都不活动。
对于所有指令取(fetch),不必执行标签访问和标签比较。考虑紧接在指令i之后执行的指令j。存在三种情况:
1.高速缓存行内顺序流
当i和j指令均驻留在同一高速缓存行上并且i是非分支指令或未采用(untaken)分支时,会出现该情况。
2.高速缓存行间顺序流
该情况类似于第一种情况,唯一的不同是i和j驻留在不同的高速缓存行上。
3.非顺序流
在此情况下,i为已采用分支指令,并且j是它的目标。
在第一种情况下,即高速缓存行内顺序流,容易检测到j和i驻留在同一高速缓存路中。因此,用于指令j的标签查找是不必要的。另一方面,针对非顺序取要求标签查找和路访问,例如已采用分支(或非顺序流)或跨过高速缓存行边界(或高速缓存行间顺序流)的顺序取。结果,在高速缓存行内顺序流的情况下使标签16和路14的存储单元不活动,会降低高速缓存10处的功耗。具体实施例使用该技术或类似的行间路存储(ILWM)技术。
图2A和2B例示了用于降低高速缓存10处的功耗的示例代码布置。考虑7个指令的基本块。将基本块表示为A,将指令表示为A1、A2、A3、A4、A5、A6以及A7。A7是已采用分支,A3不是分支指令。在图2A中,A7驻留在高速缓存行26e的字24d处。A3驻留在高速缓存行26d的字24h处。当执行A3或A7时,需要进行标签查找,这是因为在各情况下不清楚在高速缓存10中是否驻留有下一指令。然而,在图2B中,A位于高速缓存10的地址空间中,使得A不跨越任何高速缓存行边界。由于A不跨越任何高速缓存行边界,因此对于A3可以排除高速缓存访问和标签访问。在具体实施例中,改变主存储器中的基本块的布置,使得当从主存储器将频繁访问的基本块加载到高速缓存10中时这些频繁访问的基本块不会跨越任何高速缓存行边界(或者跨越尽可能少的高速缓存行边界)。
对高速缓存行间顺序流的出现次数的减少会降低高速缓存10处的功耗。尽管对高速缓存行大小的增大趋于减少这种出现,但是对高速缓存行大小的增大也趋于使与高速缓存未中相关联的片外存储器访问的次数增加。具体实施例使用这样的算法:将该平衡关系(trade-off)考虑在内,并考察不同的高速缓存行大小,以使存储器层级的总功耗达到最小。
考虑具有L个字的高速缓存行大小的大小为C(其中C=2m个字)的直接映射高速缓存10。在高速缓存读取未中时从存储器取出L个连续的字。在直接映射高速缓存10中,可以通过 来计算包含有位于存储器地址M处的字的高速缓存行。因此,如果以下条件成立,则两个存储器位置Mi和Mj将映射到同一高速缓存行:
Figure A20061010917000101
可以将以上方程写成:
               (n·C-L)<(Mi-Mj)<(n·C+L)          (1)
其中n为任意整数。如果基本块Bi和Bj在迭代次数为N的循环内,并且它们的存储器位置Mi和Mj满足条件(1),则当执行该循环时高速缓存冲突未中发生至少N次。对于W路组关联性高速缓存10,这将被扩展。如果在循环中访问满足条件(1)的W个以上的具有不同
Figure A20061010917000102
值的不同地址,则会在W路组关联性高速缓存10中发生高速缓存冲突未中。M是存储器地址。因此,可以容易地根据高速缓存参数计算出高速缓存冲突未中的数量,所述高速缓存参数例如是高速缓存行大小、高速缓存组的数量、高速缓存路的数量、各基本块在高速缓存10的存储器地址空间中的位置以及目标应用程序的各闭合循环的迭代次数。具体实施例或多或少地同时对高速缓存配置和代码布置进行最优化,以针对给定性能限制而降低高速缓存10处以及片外存储器的动态功耗和泄漏功耗。在具体实施例中,一算法针对给定关联性对各高速缓存组中的高速缓存冲突的次数进行计算。
可以使用以下符号来提供代码布置的示例问题定义:
Ememory,Eway以及Etag:分别是对主存储器每次访问的能耗、对单个高速缓存路每次访问的能耗以及对高速缓存标签存储器每次访问的能耗。
Pstatic:主存储器的静态功耗。
TEmemory和TEcache:分别是主存储器(例如片外存储器)的总能耗和高速缓存10的总能耗。
Pleakage:1字节高速缓存存储器块的泄漏功耗。
TEleakage:高速缓存存储器由于泄漏而产生的总能耗。
Wbus:存储器访问总线宽度(字节)。
Winst:指令的大小(字节)。
Scache:高速缓存存储器中的组的数量。
Caccess:单次存储器访问所需的CPU周期的数量。
Cwait:存储器访问的等待周期的数量。
Fclock:CPU的时钟频率。
nline:高速缓存存储器的行大小(字节)。
ai:在第i个高速缓存组中的路的数量。
Nmiss:高速缓存未中的数量。
Ninst:执行的指令的数量。
Xi:第i个高速缓存组的“全路访问”的次数。在“全路”访问中激活了目标高速缓存组中的所有高速缓存路和高速缓存标签。在高速缓存行间顺序流或非顺序流的情况下“全路访问”是必要的。否则,只激活单个高速缓存路。
Ttotal和Tconst:总执行时间和对它的限制。
Ptotal:存储器系统的总功耗。
假设Ememory、Eway、Etag、Pstatic、Pleakage、Wbus、Winst、Scache、Fclock、Caccess、Cwait以及Tconst是给定的参数。待确定的参数是nline、ai。Nmiss、Xi以及Ttotal是代码布置Wbus、Winst、nline以及ai的函数。可以根据一个或更多个现有方法找出Nmiss、Ninst以及Xi。由于通常将高速缓存10分成多个子存储体(sub-bank)并且每次访问只激活单个子存储体,因此Eway与nline无关。
可以将以下示例问题定义用于代码布置:对于Ememory、Eway、Etag、Pstatic、Pleakage、Wbus、Winst、Scache、Fclock、Caccess、Cwait的给定值以及原始目标代码,确定代码布置nline和ai,以使在给定时间限制Tconst下的存储器层级的总功耗Ptotal最小化。可以使用以下公式来计算Ttotal、TEmemory、TEcache、TEleakage以及Ptotal
T total = 1 F clock · { N inst + N miss · ( C access · n line W bus + C wait ) }
TE memory = E memory · N miss · n line W bus + P static · T total
TE cache = E way · N inst + E way · N miss · n line W inst + E tag · N miss + E way · Σ i = 0 S cacje { ( a i - 1 ) · X i } + E tag · Σ i = 0 S cache ( a i · X i )
TE leakage = P leakage · T total · n line · Σ i = 0 S cache a i P total = ( TE memory + TE cache + TE leakage ) T total , T total ≤ T const
在具体实施例中,算法以初始高速缓存配置(nline=32,Scache=8,ai=64)开始。在下一步骤中,算法找到应用程序的每个块在地址空间中的最优位置。在具体实施例中,这是通过改变地址空间中的布置函数的次序并找出最佳排序来执行的。对于每个排序,算法通过迭代地求得这样的高速缓存组来极大地降低能量:对于该高速缓存组,将高速缓存路的数量减少2倍会得到最大功率降低。通过计算针对给定关联性的高速缓存未中的数量来求得功耗(Ptotal)和运行时间(Ttotal)。在不对高速缓存10进行仿真的情况下并且通过针对应用程序对各循环的迭代次数和各基本块在地址空间中的位置进行分析,可以执行该计算。连同针对各高速缓存组的高速缓存路的最优数量一起选择给出了最低能量的排序。该算法针对不同的高速缓存行大小执行以上多个步骤,并且只要功耗降低了就继续下去。当改变了高速缓存行大小时可以固定函数的次序。这是个好的简化,因为当将高速缓存行大小改变2倍时函数的最优排序通常不会变化很大。在具体实施例中,该算法的计算时间与函数的数量呈二次方关系,并与应用程序的循环次数呈线性关系。
作为示例而非限制,以下伪代码实现了上述算法的一个或更多个示例要素。
Procedure MinimizePower
输入:Ememory、Eway、Etag、Pleakage、Wbus、Winst、Scache、Fclock、Caccess、Cwait、Tcount、Pstatic以及原始目标代码。
输出:nline、一组ai以及最优化目标代码中的函数的次序
令L为目标程序中的函数列表(按它们的执行次数的降序排序);
Pmin=Tmin=无穷大
for每个nline∈{32,64,128,256,512}do
      Pinit=Pmin;Tinit =Tmin
      repeat
         Pmin=Pinit;Tmin=Tinit
         for(t=0;t<|L|;t++)do
             p=L[t];
             for每个p’∈L并且p’pdo
                将函数p插在p’的位置;
                将所有ai设置为64并计算Ptotal和Ttotal
                Repeat
                  1.找出这样的高速缓存组,即,将其高速缓存路
                    的数量减少2倍会导致最大功率降低
                  2.将高速缓存组的高速缓存路的数量除以2,并
                    计算Ptotal和Ttotal
             until((Ptotal停止减小)或者(Ttotal>Tconst))
             if(Ptotal Pmin & Ttotal Tmin)then
                 Pmin=Ptotal;Tmin=Ttotal;BESTlocation=p’;
             end if
         end for
         将函数p置于BESTlocation的位置
     end for
   until(Pmin停止减小)
   if(Pinit=Pmin & Tinit Tconst)then
      输出BESTline、BESTways以及BESTorder;Exit;
   else
     BESTline=nline;BESTways=一组ai
     BESTorder=函数的次序;
   end if
 end forend Procedure
在具体实施例中,硬件、软件或嵌入式逻辑组件或两个或更多个这些组件的组合执行以上算法的一个或更多个步骤。一个或更多个用户可以使用一个或更多个计算机系统来向一个或更多个组件提供输入或从一个或更多个组件接收输出。
利用具体实施例对本发明进行了描述。本领域的技术人员可以理解对用于描述本发明的具体实施例的一个或更多个修改、替换、变化、变更或变型,这些修改、替换、变化、变更或变型是在所附权利要求的范围内。本发明涵盖所有这种修改、替换、变化、变更以及变型。

Claims (19)

1、一种用于降低高速缓存上的功耗的方法,该方法包括如下步骤:
根据哪个代码可写入与高速缓存分开的存储器来确定代码布置,该代码布置减少了当将代码从存储器载入高速缓存时高速缓存行间顺序流的出现;
根据代码布置来编译代码;以及
将代码写入存储器中,用于随后根据代码布置将代码从存储器载入高速缓存中,以降低高速缓存上的功耗。
2、根据权利要求1所述的方法,进一步包括如下步骤:
确定高速缓存的非均匀架构,用以针对高速缓存中的各高速缓存组提供最优数量的高速缓存路,该非均匀架构允许高速缓存中的多个高速缓存组具有彼此不同的关联值;和
实现高速缓存中的非均匀架构,以进一步降低高速缓存上的功耗。
3、根据权利要求1所述的方法,其中所述高速缓存是处理器上的指令高速缓存。
4、根据权利要求1所述的方法,其中与所述高速缓存分开的所述存储器包括与处理器相关联的主存储器。
5、根据权利要求1所述的方法,其中高速缓存行间顺序流包括在高速缓存中跨越高速缓存行边界的基本块。
6、根据权利要求1所述的方法,其中:
减少高速缓存行间顺序流的出现减少了执行代码过程中的标签查找;并且
减少执行代码过程中的标签查找便于降低高速缓存上的功耗。
7、一种用于降低高速缓存上的功耗的逻辑,所述逻辑被编码在一个或更多个介质中,并在被执行时可操作以:
根据哪个代码可写入与高速缓存分开的存储器来确定代码布置,该代码布置减少了当将代码从存储器载入高速缓存时高速缓存行间顺序流的出现;以及
根据代码布置来编译代码以将代码写入存储器中,用于随后根据代码布置将代码从存储器载入高速缓存中以降低高速缓存上的功耗。
8、根据权利要求7所述的逻辑,进一步可操作以:
确定高速缓存的非均匀架构,用以针对所述高速缓存中的各高速缓存组提供最优数量的高速缓存路,该非均匀架构允许高速缓存中的多个高速缓存组具有彼此不同的关联值;和
实现高速缓存中的非均匀架构以进一步降低高速缓存上的功耗。
9、根据权利要求7所述的逻辑,其中所述高速缓存是处理器上的指令高速缓存。
10、根据权利要求7所述的逻辑,其中与高速缓存分开的所述存储器包括与处理器相关联的主存储器。
11、根据权利要求7所述的逻辑,其中高速缓存行间顺序流包括在高速缓存中跨越高速缓存行边界的基本块。
12、根据权利要求7所述的逻辑,其中:
减少高速缓存行间顺序流的出现减少了执行代码过程中的标签查找;并且
减少执行代码过程中的标签查找便于降低高速缓存上的功耗。
13、一种用于降低高速缓存上的功耗的系统,该系统包括:
存储器;和
代码,已根据代码布置对其进行编译并将其写入存储器中,该代码布置减少了当将代码从存储器载入与存储器分开的高速缓存时高速缓存行间顺序流的出现,根据代码布置可将代码从存储器载入高速缓存中以降低高速缓存上的功耗。
14、根据权利要求13所述的系统,进一步包括在高速缓存中实现的以进一步降低高速缓存上的功耗的非均匀架构,该非均匀架构针对高速缓存中的各高速缓存组提供最优数量的高速缓存路并允许高速缓存中的多个高速缓存组具有彼此不同的关联值。
15、根据权利要求13所述的系统,其中所述高速缓存上处理器上的指令高速缓存。
16、根据权利要求13所述的系统,其中与高速缓存分开的所述存储器包括与处理器相关联的主存储器。
17、根据权利要求13所述的系统,其中高速缓存行间顺序流包括在高速缓存中跨越高速缓存行边界的基本块。
18、根据权利要求13所述的系统,其中:
减少高速缓存行间顺序流的出现减少了执行代码过程中的标签查找;并且
减少执行代码过程中的标签查找便于降低高速缓存上的功耗。
19、一种用于降低高速缓存上的功耗的系统,该系统包括:
用来根据哪个代码可写入与高速缓存分开的存储器来确定代码布置的装置,该代码布置减少了当将代码从存储器载入高速缓存时高速缓存行间顺序流的出现;以及
用来根据所述代码布置来编译所述代码以将所述代码写入存储器中,用于随后根据代码布置将代码从存储器载入高速缓存中以降低高速缓存上的功耗的装置。
CN2006101091709A 2005-08-05 2006-08-07 降低高速缓存的功耗 Expired - Fee Related CN1908859B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/198,693 2005-08-05
US11/198,693 US20070083783A1 (en) 2005-08-05 2005-08-05 Reducing power consumption at a cache

Publications (2)

Publication Number Publication Date
CN1908859A true CN1908859A (zh) 2007-02-07
CN1908859B CN1908859B (zh) 2010-04-21

Family

ID=37699981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101091709A Expired - Fee Related CN1908859B (zh) 2005-08-05 2006-08-07 降低高速缓存的功耗

Country Status (3)

Country Link
US (1) US20070083783A1 (zh)
JP (1) JP2007048286A (zh)
CN (1) CN1908859B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108062279A (zh) * 2016-11-07 2018-05-22 三星电子株式会社 用于处理数据的方法和设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647514B2 (en) * 2005-08-05 2010-01-12 Fujitsu Limited Reducing power consumption at a cache
US7467280B2 (en) * 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
US8589706B2 (en) * 2007-12-26 2013-11-19 Intel Corporation Data inversion based approaches for reducing memory power consumption
US9367462B2 (en) * 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors
US8412971B2 (en) * 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
JP5498526B2 (ja) * 2012-04-05 2014-05-21 株式会社東芝 キャッシュシステム
US11360704B2 (en) 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device
US11200166B2 (en) 2019-07-31 2021-12-14 Micron Technology, Inc. Data defined caches for speculative and normal executions
US11048636B2 (en) * 2019-07-31 2021-06-29 Micron Technology, Inc. Cache with set associativity having data defined cache sets
US11194582B2 (en) 2019-07-31 2021-12-07 Micron Technology, Inc. Cache systems for main and speculative threads of processors
US11010288B2 (en) 2019-07-31 2021-05-18 Micron Technology, Inc. Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877068A (ja) * 1994-09-06 1996-03-22 Toshiba Corp マルチプロセッサシステム及びメモリアロケーション最適化方法
EP0752645B1 (en) * 1995-07-07 2017-11-22 Oracle America, Inc. Tunable software control of Harvard architecture cache memories using prefetch instructions
US5617348A (en) * 1995-07-24 1997-04-01 Motorola Low power data translation circuit and method of operation
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US5870616A (en) * 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
JP3701409B2 (ja) * 1996-10-04 2005-09-28 株式会社ルネサステクノロジ メモリシステム
JPH11134077A (ja) * 1997-10-30 1999-05-21 Hitachi Ltd データ処理装置及びデータ処理システム
US6175957B1 (en) * 1997-12-09 2001-01-16 International Business Machines Corporation Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
JP2000298618A (ja) * 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
JP3755804B2 (ja) * 2000-07-07 2006-03-15 シャープ株式会社 オブジェクトコードの再合成方法および生成方法
US6480938B2 (en) * 2000-12-15 2002-11-12 Hewlett-Packard Company Efficient I-cache structure to support instructions crossing line boundaries
US6834327B2 (en) * 2002-02-08 2004-12-21 Hewlett-Packard Development Company, L.P. Multilevel cache system having unified cache tag memory
JP2003242029A (ja) * 2002-02-15 2003-08-29 Hitachi Ltd 半導体集積回路
US7185328B2 (en) * 2002-05-30 2007-02-27 Microsoft Corporation System and method for improving a working set
JP4047788B2 (ja) * 2003-10-16 2008-02-13 松下電器産業株式会社 コンパイラ装置およびリンカ装置
JP4934267B2 (ja) * 2003-10-17 2012-05-16 パナソニック株式会社 コンパイラ装置
US7502887B2 (en) * 2003-11-12 2009-03-10 Panasonic Corporation N-way set associative cache memory and control method thereof
JP2005301387A (ja) * 2004-04-07 2005-10-27 Matsushita Electric Ind Co Ltd キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JP2006040089A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd セカンドキャッシュ駆動制御回路、セカンドキャッシュ、ram、及びセカンドキャッシュ駆動制御方法
KR20060119085A (ko) * 2005-05-18 2006-11-24 삼성전자주식회사 텍스쳐 캐쉬 메모리 장치 및 이를 이용한 삼차원 그래픽가속기 및 방법
US7430642B2 (en) * 2005-06-10 2008-09-30 Freescale Semiconductor, Inc. System and method for unified cache access using sequential instruction information
US7647514B2 (en) * 2005-08-05 2010-01-12 Fujitsu Limited Reducing power consumption at a cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108062279A (zh) * 2016-11-07 2018-05-22 三星电子株式会社 用于处理数据的方法和设备
CN108062279B (zh) * 2016-11-07 2023-06-06 三星电子株式会社 用于处理数据的方法和设备

Also Published As

Publication number Publication date
CN1908859B (zh) 2010-04-21
JP2007048286A (ja) 2007-02-22
US20070083783A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
CN1908859A (zh) 降低高速缓存的功耗
Ranganathan et al. Reconfigurable caches and their application to media processing
CN102483719B (zh) 基于块的非透明高速缓存
Benini et al. Increasing energy efficiency of embedded systems by application-specific memory hierarchy generation
US20210406170A1 (en) Flash-Based Coprocessor
CN100593159C (zh) 降低高速缓存的功耗
CN101464834B (zh) 闪存数据写入方法及使用此方法的控制器
US20060212654A1 (en) Method and apparatus for intelligent instruction caching using application characteristics
CN102498477A (zh) Tlb预取
Jayasena et al. Stream register files with indexed access
Biswas et al. Multi-execution: multicore caching for data-similar executions
Lee et al. A new NAND-type flash memory package with smart buffer system for spatial and temporal localities
Banakar et al. Comparison of cache-and scratch-pad-based memory systems with respect to performance, area and energy consumption
Esakkimuthu et al. Memory system energy (poster session) influence of hardware-software optimizations
Jayasena Memory hierarchy design for stream computing
Gatlin et al. Memory hierarchy considerations for fast transpose and bit-reversals
JP2012008747A (ja) 集積装置、メモリ割り当て方法、および、プログラム
Chu et al. A set-based mapping strategy for flash-memory reliability enhancement
Hsieh et al. Implementation strategy for downgraded flash-memory storage devices
Kim et al. PP-cache: A partitioned power-aware instruction cache architecture
Kim et al. NAND flash memory system based on the Harvard buffer architecture for multimedia applications
Huang et al. A reconfigurable cache for efficient use of tag RAM as scratch-pad memory
EP4020224A1 (en) Dynamic inclusive last level cache
Naz et al. A Study of Separate Array and Scalar Caches.
Li et al. Baryon: Efficient Hybrid Memory Management with Compression and Sub-Blocking

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100421

Termination date: 20180807