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

降低高速缓存的功耗 Download PDF

Info

Publication number
CN100593159C
CN100593159C CN200610110671A CN200610110671A CN100593159C CN 100593159 C CN100593159 C CN 100593159C CN 200610110671 A CN200610110671 A CN 200610110671A CN 200610110671 A CN200610110671 A CN 200610110671A CN 100593159 C CN100593159 C CN 100593159C
Authority
CN
China
Prior art keywords
speed cache
cache
code
described high
inactive
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
Application number
CN200610110671A
Other languages
English (en)
Other versions
CN1971538A (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 CN1971538A publication Critical patent/CN1971538A/zh
Application granted granted Critical
Publication of CN100593159C publication Critical patent/CN100593159C/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
    • 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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

降低高速缓存的功耗
技术领域
本发明总体上涉及一种存储器系统,更具体地,涉及降低在高速缓存上的功耗。
背景技术
在处理器上的高速缓存通常会消耗相当大量的功率。作为示例,在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中,可以通过
Figure C20061011067100111
来计算包含有位于存储器地址M处的字的高速缓存行。因此,如果以下条件成立,则两个存储器位置Mi和Mj将映射到同一高速缓存行:
可以将以上方程写成:
(n·C-L)<(Mi-Mj)<(n·C+L)    (1)
其中n为任意整数。如果基本块Bi和Bj在迭代次数为N的循环内,并且它们的存储器位置Mi和Mj满足条件(1),则当执行该循环时高速缓存冲突未中发生至少N次。对于W路组关联性高速缓存10,这将被扩展。如果在循环中访问满足条件(1)的W个以上的具有不同
Figure C20061011067100122
值的不同地址,则会在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 cache { ( 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 ieakage ) 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’p do
            将函数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 for
end Procedure
在具体实施例中,硬件、软件或嵌入式逻辑组件或两个或更多个这些组件的组合执行以上算法的一个或更多个步骤。一个或更多个用户可以使用一个或更多个计算机系统来向一个或更多个组件提供输入或从一个或更多个组件接收输出。
利用具体实施例对本发明进行了描述。本领域的技术人员可以理解对用于描述本发明的具体实施例的一个或更多个修改、替换、变化、变更或变型:这些修改、替换、变化、变更或变型在所附权利要求的范围内。本发明涵盖所有这种修改、替换、变化、变更以及变型。

Claims (33)

1、一种用于降低高速缓存上的功耗的方法,其包括以下步骤:
确定针对所述高速缓存中的多个高速缓存组中的每个提供了特定数量的高速缓存路的高速缓存的非均匀架构,所述特定数量的高速缓存路是通过下述方式来确定,即在该高速缓存的地址空间中对每个数据块进行迭代排序以生成多个不同的排序,并识别所述多个排序中提供了最少能量消耗的排序,
所述非均匀架构允许所述高速缓存中的所述多个高速缓存组具有互不相同的关联值;和
在所述高速缓存中实现所述非均匀架构,以降低所述高速缓存上的功耗。
2、根据权利要求1所述的方法,还包括:
确定与所述高速缓存分开的存储器中的代码布置,并且所述代码布置减少了当将所述代码从所述存储器加载到所述高速缓存时高速缓存行间顺序流的出现;
根据所述代码布置对所述代码进行编译;并且
将所述代码写入所述存储器;
根据所述代码布置将所述代码从所述存储器加载到所述高速缓存,以进一步降低所述高速缓存上的功耗;
其中所述确定代码布置、编译所述代码、写入所述代码、以及加载所述代码的步骤,是在所述确定非均匀架构和所述实现非均匀架构的步骤之前或之后执行的。
3、根据权利要求1所述的方法,其中,所述高速缓存是处理器上的指令高速缓存。
4、根据权利要求1所述的方法,还包括以下步骤:在与所述高速缓存相关联的处理器上执行程序的一个或更多个组成部分的过程中,动态地改变所述高速缓存中的一个或更多个高速缓存组的一个或更多个关联值。
5、根据权利要求1所述的方法,还包括以下步骤:使用一个或更多个有效位来标记所述高速缓存中根据所述非均匀架构而不活动的一个或更多个高速缓存块。
6、根据权利要求5所述的方法,其中,将用于标记高速缓存块的有效位附到与所述高速缓存块相关联的高速缓存标签中。
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所述的系统,其中,锁定位和有效位的组合标记所述高速缓存中的根据所述非均匀架构而不活动的高速缓存路。
CN200610110671A 2005-08-05 2006-08-07 降低高速缓存的功耗 Expired - Fee Related CN100593159C (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN1971538A CN1971538A (zh) 2007-05-30
CN100593159C true CN100593159C (zh) 2010-03-03

Family

ID=37718909

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US7647514B2 (zh)
JP (1) JP5061523B2 (zh)
CN (1) CN100593159C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070083783A1 (en) * 2005-08-05 2007-04-12 Toru Ishihara Reducing power consumption at a cache
US8156357B2 (en) * 2009-01-27 2012-04-10 Freescale Semiconductor, Inc. Voltage-based memory size scaling in a data processing system
US8230176B2 (en) * 2009-06-26 2012-07-24 International Business Machines Corporation Reconfigurable cache
US8244982B2 (en) * 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
US8412971B2 (en) * 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
CN103019954A (zh) * 2011-09-22 2013-04-03 瑞昱半导体股份有限公司 高速缓存装置与高速缓存数据存取方法
US9021207B2 (en) * 2012-12-20 2015-04-28 Advanced Micro Devices, Inc. Management of cache size
CN106250325B (zh) * 2016-07-19 2019-11-19 中科创达软件股份有限公司 一种缓存优化方法和系统
CN109857681B (zh) * 2017-11-30 2023-07-18 华为技术有限公司 高速缓存cache地址映射方法以及相关设备
CN114138685B (zh) * 2021-12-06 2023-03-10 海光信息技术股份有限公司 缓存的资源分配方法及装置、电子装置和存储介质

Family Cites Families (20)

* 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
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
JP2000298618A (ja) * 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
JP3755804B2 (ja) * 2000-07-07 2006-03-15 シャープ株式会社 オブジェクトコードの再合成方法および生成方法
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 半導体集積回路
US6944714B2 (en) * 2002-07-30 2005-09-13 Hewlett-Packard Development Company, L.P. Method and apparatus for saving microprocessor power when sequentially accessing the microprocessor's instruction cache
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
JP4047788B2 (ja) * 2003-10-16 2008-02-13 松下電器産業株式会社 コンパイラ装置およびリンカ装置
JP4934267B2 (ja) * 2003-10-17 2012-05-16 パナソニック株式会社 コンパイラ装置
JP4044585B2 (ja) * 2003-11-12 2008-02-06 松下電器産業株式会社 キャッシュメモリおよびその制御方法
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 삼성전자주식회사 텍스쳐 캐쉬 메모리 장치 및 이를 이용한 삼차원 그래픽가속기 및 방법
US20070083783A1 (en) * 2005-08-05 2007-04-12 Toru Ishihara Reducing power consumption at a cache

Also Published As

Publication number Publication date
JP2007048285A (ja) 2007-02-22
JP5061523B2 (ja) 2012-10-31
US7647514B2 (en) 2010-01-12
US20070033423A1 (en) 2007-02-08
CN1971538A (zh) 2007-05-30

Similar Documents

Publication Publication Date Title
CN1908859B (zh) 降低高速缓存的功耗
CN100593159C (zh) 降低高速缓存的功耗
Verma et al. Cache-aware scratchpad allocation algorithm
CN102498477B (zh) Tlb预取
Vijaykrishnan et al. Energy-driven integrated hardware-software optimizations using SimplePower
KR102611813B1 (ko) 바이패스 최적화, 가변 그리드 아키텍처 및 융합된 벡터 동작들을 갖는 코프로세서들
Su et al. Cache designs for energy efficiency
US7899993B2 (en) Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
CN102483719B (zh) 基于块的非透明高速缓存
CN100437518C (zh) 低功率组关联缓存
US10846091B2 (en) Coprocessor with distributed register
Artes et al. Survey of low-energy techniques for instruction memory organisations in embedded systems
US9910823B2 (en) Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch
Gatlin et al. Memory hierarchy considerations for fast transpose and bit-reversals
US8949514B2 (en) Stack processor using a ferroelectric random access memory (F-RAM) for both code and data space
Vijaykrishnan et al. A unified energy estimation framework with integrated hardware-software optimizations
US9588881B2 (en) Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses
Yoo et al. Flexram architecture design parameters
Youn et al. Improving memory system performance for multimedia applications
Chen et al. Leakage-aware SPM management
Wang Design and Implementation of Cache Memory with Dual Unit Tile/Line Accessibility
Scheuer Energy Efficient Computer Architecture
Park et al. Maximizing the filter rate of L0 compiler-managed instruction stores by pinning
Dutt Aviral Shrivastava
Kim Energy-aware hardware and software optimizations for embedded systems

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: 20100303

Termination date: 20180807