降低高速缓存的功耗制造技术

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

【技术实现步骤摘要】

本专利技术总体上涉及一种存储器系统,更具体地,涉及降低在高速缓存上的功耗。
技术介绍
在处理器上的高速缓存通常会消耗相当大量的功率。作为示例,在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.高速缓存行间顺序流该情况本文档来自技高网...

【技术保护点】
一种用于降低高速缓存上的功耗的方法,其包括以下步骤:确定针对所述高速缓存中的每个高速缓存组提供了最优数量的高速缓存路的高速缓存的非均匀架构,所述非均匀架构允许所述高速缓存中的多个高速缓存组具有互不相同的关联值;和在所述高速缓存中实现所述非均匀架构,以降低所述高速缓存上的功耗。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:石原亨法尔赞法拉赫
申请(专利权)人:富士通株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1