CN106250325B - 一种缓存优化方法和*** - Google Patents
一种缓存优化方法和*** Download PDFInfo
- Publication number
- CN106250325B CN106250325B CN201610575700.2A CN201610575700A CN106250325B CN 106250325 B CN106250325 B CN 106250325B CN 201610575700 A CN201610575700 A CN 201610575700A CN 106250325 B CN106250325 B CN 106250325B
- Authority
- CN
- China
- Prior art keywords
- cache
- parameter
- value
- power consumption
- predetermined
- 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.)
- Active
Links
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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/0877—Cache access modes
-
- 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
本申请公开了一种缓存优化方法和***,所述方法通过计算程序运行于预定缓存参数的不同取值时对应的功耗值的大小,确定出最小功耗值对应的所述预定缓存参数的取值,并将该取值作为该预定缓存参数的最优取值,在此基础上,对所述预定缓存参数的取值进行优化,将其调整为所述最优取值,以此实现缓存重构;从而,后续所述程序可基于优化后的缓存参数,即所述预定缓存参数的所述最优取值运行,可有效降低嵌入式等设备的***功耗。
Description
技术领域
本发明属于计算机应用技术领域,尤其涉及一种缓存优化方法和***。
背景技术
参考图1,在嵌入式等电子设备中,CPU(中央处理器,Central Processing Unit)通常有一级缓存、二级缓存。具体而言,二级缓存的出现是为了协调一级缓存与内存之间的速度,主要用于一级缓存和内存之间的数据临时交换,二级缓存比一级缓存的速度更慢,容量更大。
随着嵌入式等电子设备的日渐普及,人们在使用这些设备时对设备功耗的要求也越来越高,其中,通过对缓存尤其是对二级缓存的优化重构来降低功耗,进一步提升设备的***能效有着巨大的发展空间。现阶段技术下在缓存重构中挑战最大的莫过于对缓存参数的优化,缓存存在三个参数,缓存块大小(cache block size)、缓存行大小(line size)及关联(associativity),时下对缓存参数进行优化以实现缓存重构进而降低设备的***功耗成为本领域的热门问题。
发明内容
有鉴于此,本发明的目的在于提供一种缓存优化方法和***,旨在通过对缓存参数进行优化实现缓存重构,进而降低嵌入式等设备的***功耗。
为此,本发明公开如下技术方案:
一种缓存优化方法,包括:
获得程序运行于预定缓存参数的不同取值时对应的预定功耗参数的不同取值;
基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值;
确定最小的运行功耗值对应的所述预定缓存参数的取值,并作为所述预定缓存参数的最优取值;
将所述预定缓存参数的值调整为所述最优取值,使得所述程序后续基于所述预定缓存参数的所述最优取值运行。
上述方法,优选的,所述获得程序运行于预定缓存参数的不同取值时对应的预定功耗参数的不同取值包括:
在程序运行于所述预定缓存参数的每种取值时,相应记录所述预定缓存参数的取值及所述预定功耗参数的取值。
上述方法,优选的,所述基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值包括:
基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的缓存命中功耗,缓存未命中功耗及漏电电流功耗;
基于所述缓存命中功耗,缓存未命中功耗及漏电电流功耗计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值。
上述方法,优选的,所述预定缓存参数为缓存块大小、缓存行大小及关联中的任意一种。
上述方法,优选的,所述预定缓存参数具体为缓存块大小,则所述方法在将所述预定缓存参数的值调整为所述最优取值之后,还包括:
依次将所述预定缓存参数切换为所述缓存行大小、所述关联,并在每次对所述预定缓存参数进行切换后,执行所述方法对切换后的所述预定缓存参数的取值进行优化,使得所述程序后续基于所述缓存块大小、缓存行大小及关联的最优取值运行。
一种缓存优化***,包括:
获取模块,用于获得程序运行于预定缓存参数的不同取值时对应的预定功耗参数的不同取值;
计算模块,用于基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值;
确定模块,用于确定最小的运行功耗值对应的所述预定缓存参数的取值,并作为所述预定缓存参数的最优取值;
第一优化模块,用于将所述预定缓存参数的值调整为所述最优取值,使得所述程序后续基于所述预定缓存参数的所述最优取值运行。
上述***,优选的,所述获取模块包括:
记录单元,用于在程序运行于所述预定缓存参数的每种取值时,相应记录所述预定缓存参数的取值及所述预定功耗参数的取值。
上述***,优选的,所述计算模块包括:
第一计算单元,用于基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的缓存命中功耗,缓存未命中功耗及漏电电流功耗;
第二计算单元,用于基于所述缓存命中功耗,缓存未命中功耗及漏电电流功耗计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值。
上述***,优选的,所述预定缓存参数具体为缓存块大小,则所述***还包括:
第二优化模块,用于依次将所述预定缓存参数切换为缓存行大小及关联,并在每次对所述预定缓存参数进行切换后,触发执行所述***中的各模块对切换后的所述预定缓存参数的取值进行优化,使得所述程序后续基于所述缓存块大小、缓存行大小及关联的最优取值运行。
由以上方案可知,本申请公开了一种缓存优化方法和***,所述方法通过计算程序运行于预定缓存参数的不同取值时对应的功耗值的大小,确定出最小功耗值对应的所述预定缓存参数的取值,并将该取值作为该预定缓存参数的最优取值,在此基础上,对所述预定缓存参数的取值进行优化,将其调整为所述最优取值,以此实现缓存重构;从而,后续所述程序可基于优化后的缓存参数,即所述预定缓存参数的所述最优取值运行,可有效降低嵌入式等设备的***功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是CPU平台下的缓存架构示意图;
图2是本申请实施例一提供的缓存优化方法的一种流程图;
图3是本申请实施例一提供的二级缓存的优化原理示意图;
图4是本申请实施例二提供的缓存优化方法的另一种流程图;
图5是本申请实施例二提供的缓存参数的寻优示意图;
图6-图7是本申请实施例三提供的缓存优化***的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
缓存块大小:cache block size,其中,缓存块(cache block)具体指进行缓存处理时所采用的一逻辑操作单元,缓存块大小即指该逻辑操作单元的大小,缓存处理会按块进行操作,例如在对缓存数据进行命中时,依次取出缓存中的整块数据,并在所取出的块中进行命中。
关联:associativity,如n-way associativity,具体指缓存可同时支持多路缓存操作,如多路缓存数据命中等。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本申请实施例一公开一种缓存优化方法,该方法主要适用于对二级缓存或三级缓存等多级缓存的缓存参数进行优化,从而通过对二级缓存或其他多级缓存进行缓存重构来降低嵌入式等设备的***功耗,参考图2示出的缓存优化方法流程图,所述方法可以包括以下步骤:
S101:获得程序运行于预定缓存参数的不同取值时对应的预定功耗参数的不同取值。
其中,缓存存在三个参数,缓存块大小(cache block size)、缓存行大小(linesize)及关联(associativity),基于此,所述预定缓存参数具体可以是缓存块大小、缓存行大小及关联这三个缓存参数中的任意一个。即,具体地,本申请的主要构思是:可以在所述三个缓存参数中任意两个缓存参数的取值固定的情况下,对第三个缓存参数按程序在该参数的不同取值下进行运行时的功耗情况进行缓存寻优,基于最低功耗点得出该参数的最优取值,在此基础上实现对该参数即所述第三个缓存参数进行优化。实际应用中,可基于本申请构思通过循环方式依次对所述三个缓存参数中的每个缓存参数进行寻优及优化,从而使得程序可以在三个缓存参数均为最优的情况下运行。
本实施例具体以对二级缓存进行优化为例来对本申请方法进行说明。
上述三个缓存参数的各个可选取值一般如下:
缓存块大小:32KB,64KB,…,4MB;
缓存行大小:16B,32B,64B;
关联:1-way,2-way,4-way,8-way,16-way。
本实施例在假设缓存行大小及关联这两个缓存参数的取值固定的情况下,对缓存块大小这一参数进行寻优,即假设所述预定缓存参数具体为缓存块大小。
其中,在本步骤S101中,可在程序运行于所述预定缓存参数的每种取值时,相应记录所述预定缓存参数的取值及所述预定功耗参数的取值。具体的,以所述预定缓存参数具体为缓存块大小为例,在缓存行大小及关联这两个缓存参数的取值固定的情况下(具体可以是上述对应列举的多个可选取值中的之一),可在程序运行于缓存块大小为32KB,64KB,…,4MB中的每种取值时,记录相对应的缓存块大小的取值及程序的预定功耗参数的取值。
所述预定功耗参数具体可包含一系列与程序功耗计算相关的参数,如缓存访问中命中的次数、缓存访问中未命中的次数、当前访问的命中耗时,获取所需数据的访问耗时、访问内存功耗、缓存置换功耗等等。
S102:基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值。
在得到cache block size的每种取值情况下相匹配的程序功耗参数值的基础上,本步骤基于获得的功耗参数值,计算程序运行于cache block size的各种取值下的功耗值。
其中,程序的运行功耗值具体可采用以下各式计算得出:
Etotal=Ecache-hit+Ecache-miss+Eleakage (1)
Ecache-hit=(Nhit)×(AThit)×(Ptag+Pdata+Poutput) (2)
Ecache-miss=(Nmiss)×(AThit·Ptag+ATmiss·(Pmemory+Pprocessor-stall+Pcache-refill)) (3)
在以上各式中,各字符所表示的含义具体如下:
Etotal表示总功耗,即所述程序的运行功耗,其共包含三部分功耗数据:缓存命中功耗Ecache-hit,缓存未命中功耗Ecache-miss及漏电电流功耗Eleakage;
Nhit、Nmiss分别表示缓存访问中命中的次数、缓存访问中未命中的次数;
AThit、ATmiss分别表示当前访问的命中耗时,未命中缓存情况下通过搜索内存获取所需数据的耗时;
Ptag、Pdata、Poutput分别表示标签阵列功耗、数据阵列功耗及输出设备功耗;
Pmemory表示访问内存功耗;
Pprocessor-stall表示处理器等待时消耗的功耗;
Pcache-refill表示缓存置换功耗。
S103:确定最小的运行功耗值对应的所述预定缓存参数的取值,并作为所述预定缓存参数的最优取值。
在计算出cache block size的不同取值下,程序运行时分别对应的不同功耗值的基础上,可通过对计算得出的各功耗值进行比较,确定出最小的运行功耗值,即最低功耗点,并将最低功耗点对应的cache block size的取值,作为其最优取值。
S104:将所述预定缓存参数的值调整为所述最优取值,使得所述程序后续基于所述预定缓存参数的所述最优取值运行。
在以上步骤的基础上,本步骤将cache block size的值调整为所述最低功耗点对应的cache block size的取值,即所述最优取值,从而实现对cache block size这一缓存参数进行优化,进而实现对二级缓存进行优化。后续所述程序可基于优化后的cache blocksize的取值即所述最优取值运行。在其他不同的程序运行时,可利用本申请方法再次对该程序对应的缓存参数值进行寻优及动态修改,从而实现对该程序对应采用的缓存参数进行优化。
实际应用中,不限于必须采用本申请提出的所述各步骤的先后执行次序,例如,可不必局限于在计算出预定缓存参数的所有不同取值情况下程序的不同能耗值的基础上,再对各个能耗值进行比较以及确定最低能耗点,而是可以在每次计算出程序本次运行对应的能耗值后,随即将其与程序上一次运行时确定的最低能耗值进行比较,每次比较均可确定出当前的最低能耗值,从而对应可确定出当前的最佳缓存参数值,进而通过多次比较即可得出预定缓存参数的所有不同取值情况下程序的最低能耗点,以及对应的最优缓存参数值。
具体实施时,可采用一带有历史信息寄存器模块的装置对本申请的方法进行实现,该装置可包括一历史信息寄存器模块以及一缓存参数搜索模块,其中,所述历史信息寄存器模块包括函数接口单元,基于历史信息寄存器的参数缓存单元及功耗计算单元。
以图3示出的二级缓存为例,其中,图3中虚线左边的部分为二级缓存结构,其当前的缓存参数配置为cache block size:64KB,line size:64Bytes,associativity:8-way,缓存参数的配置具体通过访问控制器(access controller)来完成。
每个程序在运行时都会有对应的缓存参数,函数入口地址等。当函数入口单元比配到正在运行的程序(subroutine)的入口地址后,参数缓存单元在历史信息寄存器记录此地址,并记录当前的缓存参数(其中包含待搜索/优化的缓存参数以及其他两个具有固定取值的缓存参数)值以及相应的功耗参数值,功耗计算单元基于记录的功耗参数值计算程序本次运行的功耗值,当所述程序再次运行时,函数入口单元通过再次比配到该程序的入口地址获知该程序再次运行,并在历史信息寄存器记录相应信息,且通过功耗计算单元计算此次的功耗值,在此基础上,缓存参数搜索模块采用比较器将此次运行的功耗值与上次运行时确定的最低功耗值进行比较,并确定出较小的功耗值对应的缓存参数值,历史信息寄存器会更新记录当前的缓存最佳参数值,从而,通过在该程序多次运行时的多次记录、计算、比较,可得出该程序在待搜索/优化的缓存参数的各取值情况下的最低功耗点,进而可确定出该最低功耗点对应的缓存参数最优取值,实现了对待搜索/优化的缓存参数的取值进行搜索寻优,最终可基于寻优所得的最优缓存值对程序运行时采用的缓存参数进行优化。
实际应用中,为简化实施复杂度并节约资源,不必针对每一程序例如每一应用程序均采用本申请方法对其缓存参数进行搜索寻优及优化,而可以对不同程序进行类别划分,将具有相似行为或相似代码特征的程序划分为一类,从而对于同类程序,可仅针对该类中的某一程序执行本申请方法对该程序进行缓存参数寻优,后续该类程序均可基于本次寻所确定的最优缓存参数运行。
由以上方案可知,本申请公开了一种缓存优化方法,所述方法通过计算程序运行于预定缓存参数的不同取值时对应的功耗值的大小,确定出最小功耗值对应的所述预定缓存参数的取值,并将该取值作为该预定缓存参数的最优取值,在此基础上,对所述预定缓存参数的取值进行优化,将其调整为所述最优取值,以此实现缓存重构;从而,后续所述程序可基于优化后的缓存参数,即所述预定缓存参数的所述最优取值运行,可有效降低嵌入式等设备的***功耗。
实施例二
本实施例二继续对实施例一的方案进行补充,本实施例中,所述预定缓存参数具体为缓存块大小,则参考图4,所述缓存优化方法在所述步骤S104之后还可以包括:
S105:依次将所述预定缓存参数切换为所述缓存行大小、所述关联,并在每次对所述预定缓存参数进行切换后,执行所述方法对切换后的所述预定缓存参数的取值进行优化,使得所述程序后续基于所述缓存块大小、缓存行大小及关联的最优取值运行。
由于缓存参数包括三个:cache block size、line size及associativity,从而在利用实施例一的缓存优化方法对其中一个缓存参数,如cache block size进行优化的基础上,可继续将所述预定缓存参数依次切换为其他两个缓存参数,并在每次切换后,循环执行实施例一的方法对切换后的缓存参数进行寻优,从而最终使得所述三个缓存参数的取值均被优化。
具体地,由于cache block size相比于其他两个参数对功耗有着更大的影响,所以,本实施例首先确定cache block size的最优取值,之后,再依次遍历其他两个参数(line size及associativity)的各个取值实现寻优。参考图5示出的缓存参数的寻优示意图,在首先确定出cache block size的最优取值后,在cache block size的最优取值下,继续对其他两个缓存参数的各个取值进行遍历,并以最低功耗点为基准实现寻优。
实施例三
本申请实施例三公开一种缓存优化***,该***与以上各实施例公开的缓存优化方法相对应。
相应于实施例一,参考图6,所述缓存优化***包括获取模块100、计算模块200、确定模块300和第一优化模块400。
获取模块100,用于获得程序运行于预定缓存参数的不同取值时对应的预定功耗参数的不同取值。
所述获取模块100包括记录单元,用于在程序运行于所述预定缓存参数的每种取值时,相应记录所述预定缓存参数的取值及所述预定功耗参数的取值。
计算模块200,用于基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值。
所述计算模块200包括第一计算单元和第二计算单元。
第一计算单元,用于基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的缓存命中功耗,缓存未命中功耗及漏电电流功耗;
第二计算单元,用于基于所述缓存命中功耗,缓存未命中功耗及漏电电流功耗计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值。
确定模块300,用于确定最小的运行功耗值对应的所述预定缓存参数的取值,并作为所述预定缓存参数的最优取值。
第一优化模块400,用于将所述预定缓存参数的值调整为所述最优取值,使得所述程序后续基于所述预定缓存参数的所述最优取值运行。
相应于实施例二,参考图7,所述缓存优化***还可以包括第二优化模块500,用于依次将所述预定缓存参数切换为缓存行大小、关联,并在每次对所述预定缓存参数进行切换后,触发执行所述***中的各模块对切换后的所述预定缓存参数的取值进行优化,使得所述程序后续基于所述缓存块大小、缓存行大小及关联的最优取值运行。
对于本发明实施例三公开的缓存优化***而言,由于其与实施例一至实施例二公开的缓存优化方法相对应,所以描述的比较简单,相关相似之处请参见实施例一至实施例二中缓存优化方法部分的说明即可,此处不再详述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上***或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种缓存优化方法,其特征在于,包括:
获得程序运行于预定缓存参数的不同取值时对应的预定功耗参数的不同取值;所述预定缓存参数为缓存块大小、缓存行大小及关联中的任意一种;
基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值;
确定最小的运行功耗值对应的所述预定缓存参数的取值,并作为所述预定缓存参数的最优取值;
将所述预定缓存参数的值调整为所述最优取值,使得所述程序后续基于所述预定缓存参数的所述最优取值运行。
2.根据权利要求1所述的方法,其特征在于,所述获得程序运行于预定缓存参数的不同取值时对应的预定功耗参数的不同取值包括:
在程序运行于所述预定缓存参数的每种取值时,相应记录所述预定缓存参数的取值及所述预定功耗参数的取值。
3.根据权利要求1所述的方法,其特征在于,所述基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值包括:
基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的缓存命中功耗,缓存未命中功耗及漏电电流功耗;
基于所述缓存命中功耗,缓存未命中功耗及漏电电流功耗计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值。
4.根据权利要求1所述的方法,其特征在于,所述预定缓存参数具体为缓存块大小,则所述方法在将所述预定缓存参数的值调整为所述最优取值之后,还包括:
依次将所述预定缓存参数切换为所述缓存行大小、所述关联,并在每次对所述预定缓存参数进行切换后,执行所述方法对切换后的所述预定缓存参数的取值进行优化,使得所述程序后续基于所述缓存块大小、缓存行大小及关联的最优取值运行。
5.一种缓存优化***,其特征在于,包括:
获取模块,用于获得程序运行于预定缓存参数的不同取值时对应的预定功耗参数的不同取值;所述预定缓存参数为缓存块大小、缓存行大小及关联中的任意一种;
计算模块,用于基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值;
确定模块,用于确定最小的运行功耗值对应的所述预定缓存参数的取值,并作为所述预定缓存参数的最优取值;
第一优化模块,用于将所述预定缓存参数的值调整为所述最优取值,使得所述程序后续基于所述预定缓存参数的所述最优取值运行。
6.根据权利要求5所述的***,其特征在于,所述获取模块包括:
记录单元,用于在程序运行于所述预定缓存参数的每种取值时,相应记录所述预定缓存参数的取值及所述预定功耗参数的取值。
7.根据权利要求5所述的***,其特征在于,所述计算模块包括:
第一计算单元,用于基于所述预定功耗参数的相应取值,计算所述预定缓存参数的每种取值对应的所述程序的缓存命中功耗,缓存未命中功耗及漏电电流功耗;
第二计算单元,用于基于所述缓存命中功耗,缓存未命中功耗及漏电电流功耗计算所述预定缓存参数的每种取值对应的所述程序的运行功耗值。
8.根据权利要求5所述的***,其特征在于,所述预定缓存参数具体为缓存块大小,则所述***还包括:
第二优化模块,用于依次将所述预定缓存参数切换为缓存行大小及关联,并在每次对所述预定缓存参数进行切换后,触发执行所述***中的各模块对切换后的所述预定缓存参数的取值进行优化,使得所述程序后续基于所述缓存块大小、缓存行大小及关联的最优取值运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610575700.2A CN106250325B (zh) | 2016-07-19 | 2016-07-19 | 一种缓存优化方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610575700.2A CN106250325B (zh) | 2016-07-19 | 2016-07-19 | 一种缓存优化方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106250325A CN106250325A (zh) | 2016-12-21 |
CN106250325B true CN106250325B (zh) | 2019-11-19 |
Family
ID=57613566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610575700.2A Active CN106250325B (zh) | 2016-07-19 | 2016-07-19 | 一种缓存优化方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250325B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645341A (zh) * | 2003-11-26 | 2005-07-27 | 英特尔公司 | 根据优先级来处理高速缓存分配请求的方法和装置 |
CN1971538A (zh) * | 2005-08-05 | 2007-05-30 | 富士通株式会社 | 降低高速缓存的功耗 |
CN102521150A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种应用程序cache分配方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8156357B2 (en) * | 2009-01-27 | 2012-04-10 | Freescale Semiconductor, Inc. | Voltage-based memory size scaling in a data processing system |
US9021207B2 (en) * | 2012-12-20 | 2015-04-28 | Advanced Micro Devices, Inc. | Management of cache size |
-
2016
- 2016-07-19 CN CN201610575700.2A patent/CN106250325B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645341A (zh) * | 2003-11-26 | 2005-07-27 | 英特尔公司 | 根据优先级来处理高速缓存分配请求的方法和装置 |
CN1971538A (zh) * | 2005-08-05 | 2007-05-30 | 富士通株式会社 | 降低高速缓存的功耗 |
CN102521150A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种应用程序cache分配方法及装置 |
Non-Patent Citations (1)
Title |
---|
Amoeba-Cache: Adaptive Blocks for EliminatingWaste in the Memory Hierarchy;Snehasish Kumar等;《IEEE》;20121205;第376-388页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106250325A (zh) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103246613B (zh) | 缓存装置及用于缓存装置的缓存数据获取方法 | |
CN110348574A (zh) | 一种基于zynq的通用卷积神经网络加速结构及设计方法 | |
CN108418858B (zh) | 一种面向Geo-distributed云存储的数据副本放置方法 | |
Wang et al. | Forecasting the seasonal natural gas consumption in the US using a gray model with dummy variables | |
CN105808358B (zh) | 一种用于众核***的数据相关性线程分组映射方法 | |
Mishra et al. | Fine-grained accelerators for sparse machine learning workloads | |
CN102937937A (zh) | 数据预取器及预取数据至高速缓存存储器的方法 | |
US11928580B2 (en) | Interleaving memory requests to accelerate memory accesses | |
CN101593202A (zh) | 基于共享Cache多核处理器的数据库哈希连接方法 | |
Chen et al. | Dygnn: Algorithm and architecture support of dynamic pruning for graph neural networks | |
CN104714753A (zh) | 一种数据访问存储方法及装置 | |
CN109359729B (zh) | 一种在fpga上实现缓存数据的***及方法 | |
CN106802772A (zh) | 数据回收的方法、装置及固态硬盘 | |
CN110032450A (zh) | 一种基于固态盘扩展内存的大规模深度学习方法及*** | |
CN103559017A (zh) | 基于gpu异构计算平台的字符串匹配方法及*** | |
CN104965674A (zh) | 一种基于块关联的低能耗磁盘调度方法及*** | |
CN105359142A (zh) | 哈希连接方法、装置和数据库管理*** | |
CN107291630B (zh) | 一种高速缓冲存储器处理方法及装置 | |
CN106250325B (zh) | 一种缓存优化方法和*** | |
CN111653317B (zh) | 基因比对加速装置、方法及*** | |
CN102662863A (zh) | 粗粒度的末级高速缓存旁路方法 | |
CN1996944A (zh) | 一种用于集群存储***的全局缓存管理的方法 | |
CN116822600A (zh) | 一种基于risc-v架构的神经网络搜索芯片 | |
CN114025017B (zh) | 基于深度循环强化学习的网络边缘缓存方法、装置及设备 | |
Zhao et al. | Resource-aware cache management for in-memory data analytics frameworks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: Room 101-105, floor 1, Chuangda building, No. 9, Qinghua East Road, Haidian District, Beijing 100083 (Dongsheng District) Patentee after: Thunder Software Technology Co., Ltd. Address before: 100191 Beijing Haidian District Lung Cheung Road No. 1 Tai Xiang business building 4 layer 401-409 Patentee before: Thunder Software Technology Co., Ltd. |
|
CP02 | Change in the address of a patent holder |