降低高速缓存的功耗的制作方法

文档序号:6560676阅读:136来源:国知局
专利名称:降低高速缓存的功耗的制作方法
技术领域
本发明总体上涉及一种存储器系统,更具体地,涉及降低在高速缓存上的功耗。
背景技术
在处理器上的高速缓存通常会消耗相当大量的功率。作为示例,在ARM920T处理器上的指令高速缓存占用了该处理器的功耗的约25%。作为另一示例,在StrongARM SA-110处理器(其针对低功率应用)上的指令高速缓存占用了该处理器的功耗的约27%。

发明内容
本发明的具体实施例可以降低或消除与现有的存储器系统相关联的问题或缺点。
在一个实施例中,提出了一种用于降低高速缓存上的功耗的方法,该方法包括以下步骤确定针对所述高速缓存中的每个高速缓存组提供了最优数量的高速缓存路的高速缓存的非均匀架构。所述非均匀架构允许所述高速缓存中的多个高速缓存组具有互不相同的关联值。所述方法还包括以下步骤在所述高速缓存中实现所述非均匀架构,以降低所述高速缓存上的功耗。
在另一实施例中,所述方法还包括以下步骤根据可以将哪条代码写入与所述高速缓存分开的存储器,来确定代码布置。所述代码布置减少了当将所述代码从所述存储器加载到所述高速缓存时高速缓存行(cache-line)间顺序流(sequential flow)的出现。所述方法还包括以下步骤根据所述代码布置对所述代码进行编译,将所述代码写入所述存储器以随后根据所述代码布置将所述代码从所述存储器加载到所述高速缓存,以进一步降低所述高速缓存上的功耗。
本发明的具体实施例可以提供一个或更多个技术优点。作为示例而非限制,具体实施例可以降低高速缓存上的功耗。具体实施例提供了用于降低高速缓存上的功耗的非均匀高速缓存架构。具体实施例使得便于进行代码布置,以减少在高速缓存中进行的标签查找、路查找或这两者,以降低高速缓存上的功耗。具体实施例使得便于对高速缓存架构和代码布置同时进行最优化,以减少高速缓存路或标签访问和高速缓存未中(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还包括多个读出放大器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是非分支指令或未采用分支时,会出现该情况。
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将映射到同一高速缓存行 可以将以上方程写成(n·C-L)<(Mi-Mj)<(n·C+L)(1)其中n为任意整数。如果基本块Bi和Bj在迭代次数为N的循环内,并且它们的存储器位置Mi和Mj满足条件(1),则当执行该循环时高速缓存冲突未中发生至少N次。对于W路组关联性高速缓存10,这将被扩展。如果在循环中访问满足条件(1)的W个以上的具有不同 值的不同地址,则会在W路组关联性高速缓存10中发生高速缓存冲突未中。M是存储器地址。因此,可以容易地根据高速缓存参数计算出高速缓存冲突未中的数量,所述高速缓存参数例如是高速缓存行大小、高速缓存组的数量、高速缓存路的数量、各基本块在高速缓存10的存储器地址空间中的位置以及目标应用程序的各闭合循环的迭代次数。具体实施例或多或少地同时对高速缓存配置和代码布置进行最优化,以针对给定性能限制降低高速缓存10以及片外存储器处的动态功耗和泄漏功耗。在具体实施例中,一算法针对给定关联性对各高速缓存组中的高速缓存冲突的次数进行计算。
可以使用以下符号来提供代码布置的示例问题定义Ememory,Eway以及Etag分别是对主存储器每次访问的能耗、对单个高速缓存路每次访问的能耗以及对高速缓存标签存储器每次访问的能耗。
Pstatic主存储器的静态功耗。
TEmemory和TEcache分别是主存储器(例如片外存储器)的总能耗和高速缓存10的总能耗。
Pleakage1字节高速缓存存储器块的泄漏功耗。
TEleakage高速缓存存储器由于泄漏而产生的总能耗。
Wbus存储器访问总线宽度(字节)。
Winst指令的大小(字节)。
Scache高速缓存存储器中的组的数量。
Caccess单次存储器访问所需的CPU周期的数量。
Cwait存储器访问的等待周期的数量。
FclockCPU的时钟频率。
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以及PtotalTtotal=1Fclock·{Ninst+Nmiss·(Caccess·nlineWbus+Cwait)}]]>TEmemory=Ememory·Nmiss·nlineWbus+Pstatic·Ttotal]]>
TEcache=Eway·Ninst+Eway·Nmiss·nlineWinst+Etag·Nmiss+Eway·Σi=0Scache{(ai-1)·Xi}+Etag·Σi=0Scache(ai:Xi)]]>TEleakage=Pleakage·Ttotal·nline·Σi=0Scacheai]]>Ptotal=(TEmemory+TEcache+TEleakage)Ttotal,Ttotal≤Tconst]]>在具体实施例中,算法以初始高速缓存配置(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,repeatPmin=Pinit;Tmin=Tinit,for(t=0;t<|L|;t++)dop=L[t];for每个p’∈L并且p’pdo将函数p插在p’的位置;将所有ai设置为64并计算Ptotal和Ttotal;Repeat1.找出这样的高速缓存组,即,将其高速缓存路的数量减少2倍会导致最大功率降低2.将高速缓存组的高速缓存路的数量除以2,并计算Ptotal和Ttotaluntil((Ptotal停止降低)或者(Ttotal>Tconst))if(PtotalPmin& TtotalTmin)thenPmin=Ptotal;Tmin=Ttotal;BESTlocation=p’;end ifend for将函数p置于BESTlocation的位置end foruntil(Pmin停止降低)if(Pinit=Pmin& TinitTconst) then输出BESTline、BESTways以及BESTorder;Exit;elseBESTline=nline;BESTways=ai的组,BESTorder=函数的次序;end ifend forend Procedure
在具体实施例中,硬件、软件或嵌入式逻辑组件或两个或更多个这些组件的组合执行以上算法的一个或更多个步骤。一个或更多个用户可以使用一个或更多个计算机系统来向一个或更多个组件提供输入或从一个或更多个组件接收输出。
利用具体实施例对本发明进行了描述。本领域的技术人员可以理解对用于描述本发明的具体实施例的一个或更多个修改、替换、变化、变更或变型,这些修改、替换、变化、变更或变型在所附权利要求的范围内。本发明涵盖所有这种修改、替换、变化、变更以及变型。
权利要求
1.一种用于降低高速缓存上的功耗的方法,其包括以下步骤确定针对所述高速缓存中的每个高速缓存组提供了最优数量的高速缓存路的高速缓存的非均匀架构,所述非均匀架构允许所述高速缓存中的多个高速缓存组具有互不相同的关联值;和在所述高速缓存中实现所述非均匀架构,以降低所述高速缓存上的功耗。
2.根据权利要求1所述的方法,还包括根据可以将哪条代码写入与所述高速缓存分开的存储器,来确定代码布置,并且所述代码布置减少了当将所述代码从所述存储器加载到所述高速缓存时高速缓存行间顺序流的出现;根据所述代码布置对所述代码进行编译;并且将所述代码写入所述存储器以随后根据所述代码布置将所述代码从所述存储器加载到所述高速缓存,以进一步降低所述高速缓存上的功耗。
3.根据权利要求1所述的方法,其中,所述高速缓存是处理器上的指令高速缓存。
4.根据权利要求1所述的方法,还包括以下步骤在与所述高速缓存相关联的处理器上执行程序的一个或更多个组成部分的过程中,动态地改变所述高速缓存中的一个或更多个高速缓存组的一个或更多个关联值。
5.根据权利要求1所述的方法,还包括以下步骤使用一个或更多个有效位来标记所述高速缓存中根据所述非均匀架构而不活动的一个或更多个高速缓存块。
6.根据权利要求6所述的方法,其中,将用于标记高速缓存块的有效位附到与所述高速缓存块相关联的高速缓存标签中。
7.根据权利要求1所述的方法,还包括以下步骤为了防止访问所述高速缓存中的根据所述非均匀架构而不活动的高速缓存块,使与用于访问的高速缓存组中的根据所述非均匀架构而不活动的一个或更多个高速缓存路相关联的一个或更多个读出放大器成为不活动的。
8.根据权利要求1所述的方法,还包括以下步骤将所述高速缓存中的根据所述非均匀架构而不活动的多个存储器单元与电源断开。
9.根据权利要求8所述的方法,所述将多个存储器单元与所述电源断开的步骤包括断开将所述多个存储器单元连接到所述电源的多个通道。
10.根据权利要求1所述的方法,还包括以下步骤将所述高速缓存中的根据所述非均匀架构而不活动的所述多个高速缓存存储器单元与所述高速缓存中的多条位线和字线断开。
11.根据权利要求1所述的方法,还包括以下步骤使用锁定位和有效位的组合来标记所述高速缓存中的根据所述非均匀架构而不活动的高速缓存路。
12.一种用于降低高速缓存上的功耗的逻辑,该逻辑被编码在一个或更多个介质中,当其被执行时其可进行操作以确定针对所述高速缓存中的每个高速缓存组提供了最优数量的高速缓存路的高速缓存的非均匀架构,所述非均匀架构允许所述高速缓存中的多个高速缓存组具有互不相同的关联值;和在所述高速缓存中实现所述非均匀架构,以降低所述高速缓存上的功耗。
13.根据权利要求12所述的逻辑,还可进行操作以根据可以将哪条代码写入与所述高速缓存分开的存储器,来确定代码布置,所述代码布置减少了当将所述代码从所述存储器加载到所述高速缓存时高速缓存行间顺序流的出现;根据所述代码布置对所述代码进行编译用于写入所述存储器,以随后根据所述代码布置将所述代码将其从所述存储器加载到所述高速缓存,以进一步降低所述高速缓存上的功耗。
14.根据权利要求12所述的逻辑,其中,所述高速缓存是处理器上的指令高速缓存。
15.根据权利要求12所述的逻辑,其中,在与所述高速缓存相关联的处理器处执行程序的一个或更多个组成部分的过程中,可以动态地改变所述高速缓存中的一个或更多个高速缓存组的一个或更多个关联值。
16.根据权利要求12所述的逻辑,其中,一个或更多个有效位标记所述高速缓存中的根据所述非均匀架构而不活动的一个或更多个高速缓存块。
17.根据权利要求16所述的逻辑,其中,将用于标记高速缓存块的有效位附到与所述高速缓存块相关联的高速缓存标签中。
18.根据权利要求12所述的逻辑,其中,为了防止对所述高速缓存中的根据所述非均匀架构而不活动的高速缓存块的访问,当将一高速缓存组作为访问对象时,使与该高速缓存组中的根据所述非均匀架构而不活动的一个或更多个高速缓存路相关联的一个或更多个读出放大器成为不活动的。
19.根据权利要求12所述的逻辑,其中,将所述高速缓存中的根据所述非均匀架构而不活动的多个存储器单元与电源断开。
20.根据权利要求19所述的逻辑,其中,断开将所述多个存储器单元连接到所述电源的通道,以将所述多个存储器单元与所述电源断开。
21.根据权利要求12所述的逻辑,将所述高速缓存中的根据所述非均匀架构而不活动的所述多个存储器单元与所述高速缓存中的多条位线和字线断开。
22.根据权利要求12所述的逻辑,其中,锁定位和有效位的组合标记所述高速缓存中的根据所述非均匀架构而不活动的高速缓存路。
23.一种用于降低高速缓存上的功耗的系统,该系统包括高速缓存;和为了降低所述高速缓存上的功耗而在所述高速缓存中实现的非均匀架构,所述非均匀架构针对所述高速缓存中的每个高速缓存组提供了最优数量的高速缓存路,并且允许所述高速缓存中的多个高速缓存组具有互不相同的关联值。
24.根据权利要求23所述的系统,还包括与所述高速缓存分开的存储器;代码,已根据降低了在将所述代码从所述存储器加载到所述高速缓存时高速缓存行间顺序流的出现的代码布置对所述代码进行了编译并将其写入所述存储器,可以根据所述代码布置将所述代码从所述存储器加载到所述高速缓存,以进一步降低所述高速缓存处的功耗。
25.根据权利要求23所述的系统,其中,所述高速缓存是处理器上的指令高速缓存。
26.根据权利要求23所述的系统,其中,在与所述高速缓存相关联的处理器处执行程序的一个或更多个组成部分的过程中,可以动态地改变所述高速缓存中的一个或更多个高速缓存组的一个或更多个关联值。
27.根据权利要求23所述的系统,其中,一个或更多个有效位标记所述高速缓存中的根据所述非均匀架构而不活动的一个或更多个高速缓存块。
28.根据权利要求27所述的系统,其中,将用于标记高速缓存块的有效位附到与所述高速缓存块相关联的高速缓存标签中。
29.根据权利要求23所述的系统,其中,为了防止对所述高速缓存中的根据所述非均匀架构而不活动的高速缓存块的访问,使与高速缓存组中的根据所述非均匀架构而不活动的一个或更多个高速缓存路相关联的一个或更多个读出放大器成为不活动的。
30.根据权利要求23所述的系统,其中,将所述高速缓存中的根据所述非均匀架构而不活动的多个存储器单元与电源断开。
31.根据权利要求30所述的系统,其中,断开将所述多个存储器单元连接到所述电源的通道,以将所述多个存储器单元与所述电源断开。
32.根据权利要求23所述的系统,将所述高速缓存中的根据所述非均匀架构而不活动的所述多个存储器单元与所述高速缓存中的多条位线和字线断开。
33.根据权利要求23所述的系统,其中,锁定位和有效位的组合标记所述高速缓存中的根据所述非均匀架构而不活动的高速缓存路。
34.一种用于降低高速缓存上的功耗的系统,所述系统包括用于确定针对所述高速缓存中的每个高速缓存组提供了最优数量的高速缓存路的高速缓存的非均匀架构的装置,所述非均匀架构允许所述高速缓存中的多个高速缓存组具有互不相同的关联值;和用于在所述高速缓存中实现所述非均匀架构以降低所述高速缓存上的功耗的装置。
全文摘要
降低高速缓存的功耗。在一个实施例中,提出了一种用于降低高速缓存上的功耗的方法,其包括以下步骤确定针对所述高速缓存中的每个高速缓存组提供了最优数量的高速缓存路的高速缓存的非均匀架构。所述非均匀架构允许所述高速缓存中的多个高速缓存组具有互不相同的关联值。所述方法还包括以下步骤在所述高速缓存中实现所述非均匀架构,以降低所述高速缓存上的功耗。在另一实施例中,所述方法还包括以下步骤根据可以将哪条代码写入与所述高速缓存分开的存储器,来确定代码布置。所述代码布置减少了当将所述代码从所述存储器加载到所述高速缓存时高速缓存行间顺序流的出现。所述方法还包括以下步骤根据所述代码布置对所述代码进行编译并且将所述代码写入所述存储器,以根据所述代码布置随后将其从所述存储器加载到所述高速缓存,以进一步降低所述高速缓存上的功耗。
文档编号G06F1/32GK1971538SQ20061011067
公开日2007年5月30日 申请日期2006年8月7日 优先权日2005年8月5日
发明者石原亨, 法尔赞·法拉赫 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1