一种多级缓存的功耗控制方法、装置及设备与流程

文档序号:19431239发布日期:2019-12-17 16:49阅读:153来源:国知局
本发明涉及计算机
技术领域
:,特别涉及一种多级缓存的功耗控制方法、装置及设备。
背景技术
::随着计算机技术的发展,现有技术中通常会采用多级缓存来缓冲处理器运算速度与内存读写速度之间的速度差,且多级缓存的空间越来越大。目前,针对多级缓存中的二级或二级以上缓存,均采用统一的功耗相关参数进行控制,其中,该功耗相关参数为和缓存功耗相关的参数,即能够对缓存功耗产生影响的参数,如电源电压、时钟频率等。例如图1所示的多级缓存中的二级缓存,所有二级缓存采用同一个电源电压和同一个时钟频率,即统一由一个电源域和一个时钟域控制,并且为了保证二级缓存的访问性能,电源电压和时钟频率均设置得较高,需要实时刷新缓存以保证数据不丢失。因此,多级缓存在提高计算机性能的同时也带来了功耗的问题,尤其是在电池容量有限的移动终端设备中。技术实现要素:本发明实施例提供一种多级缓存的功耗控制方法、装置、设备及计算机程序产品,能够减小多级缓存的功耗。第一方面,提供一种多级缓存的功耗控制方法,包括:获取多级缓存中待控制级缓存包括的各缓存区间的访问率;其中,所述待控制级缓存为所述多级缓存中的二级或二级以上缓存;所述待控制级缓存包括至少两个缓存区间,每个缓存区间包括至少一个缓存块;根据所述各缓存区间的访问率,控制各缓存区间的功耗相关参数。结合第一方面,在第一种可能的实现方式中,所述功耗相关参数包括电源电压和/或时钟频率;根据所述各缓存区间的访问率,控制各缓存区间的功耗相关参数,包括:所述各缓存区间中的每个缓存区间为指定缓存区间,当所述指定缓存区间的访问率高于第一预设阈值时,调整所述指定缓存区间的电源电压和/或时钟频率升高;当所述指定缓存区间的访问率低于第二预设阈值时,调整所述指定缓存区间的电源电压和/或时钟频率降低;其中,所述第一预设阈值大于所述第二预设阈值。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在调整所述指定缓存区间的电源电压之前,还包括:确定当前时刻已到达采用预设电压调整周期调整所述指定缓存区间的电源电压的时刻;在调整所述指定缓存区间的时钟频率之前,还包括:确定当前时刻已到达采用预设频率调整周期调整所述指定缓存区间的时钟频率的时刻;其中,所述预设电压调整周期大于所述预设频率调整周期。结合第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第三种可能的实现方式中,根据所述各缓存区间的访问率,控制各缓存区间的功耗相关参数,还包括:当所述指定缓存区间的访问率低于第二预设阈值的次数达到预设次数、且所述指定缓存区间中可用缓存块的数量达到预设数量时,关闭所述指定缓存区间的电源和/或时钟。结合第一方面,第一方面的第一种可能的实现方式,第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,在第四种可能的实现方式中,具体采用如下方式将内存中的指定数据写入所述待控制级缓存:获取所述指定数据在内存中对应的内存地址包含的索引位,所述索引位为指定索引位;其中,所述内存的内存地址和所述待控制级缓存的缓存地址均包含索引位,每个缓存地址对应一个缓存块;按照预设的缓存区间顺序,依次确定所述各缓存区间中、包含所述指定索引位的缓存地址对应的缓存块是否为可用缓存块,直至确定出可用缓存块;将内存中的所述指定数据写入确定出的可用缓存块。结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:当所述各缓存区间中,包含所述指定索引位的缓存地址对应的缓存块均不为可用缓存块时,按照所述预设的缓存区间顺序,将内存中的所述指定数据写入第一个缓存区间中、包含所述指定索引位的缓存地址对应的缓存块。结合第一方面的第四种可能的实现方式,或者第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述待控制级缓存的缓存地址还包含区间位;所述区间位为所述缓存地址中的高位,所述索引位为所述缓存地址中的低位。第二方面,提供一种多级缓存的功耗控制装置,包括:获取单元,用于获取多级缓存中待控制级缓存包括的各缓存区间的访问率;其中,所述待控制级缓存为所述多级缓存中的二级或二级以上缓存;所述待控制级缓存包括至少两个缓存区间,每个缓存区间包括至少一个缓存块;控制单元,用于根据所述各缓存区间的访问率,控制各缓存区间的功耗相关参数。结合第二方面,在第一种可能的实现方式中,所述功耗相关参数包括电源电压和/或时钟频率;所述控制单元,具体用于所述各缓存区间中的每个缓存区间为指定缓存区间,当所述指定缓存区间的访问率高于第一预设阈值时,调整所述指定缓存区间的电源电压和/或时钟频率升高;当所述指定缓存区间的访问率低于第二预设阈值时,调整所述指定缓存区间的电源电压和/或时钟频率降低;其中,所述第一预设阈值大于所述第二预设阈值。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制单元,还用于在调整所述指定缓存区间的电源电压之前,确定当前时刻已到达采用预设电压调整周期调整所述指定缓存区间的电源电压的时刻;在调整所述指定缓存区间的时钟频率之前,确定当前时刻已到达采用预设频率调整周期调整所述指定缓存区间的时钟频率的时刻;其中,所述预设电压调整周期大于所述预设频率调整周期。结合第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述控制单元,还用于当所述指定缓存区间的访问率低于第二预设阈值的次数达到预设次数、且所述指定缓存区间中可用缓存块的数量达到预设数量时,关闭所述指定缓存区间的电源和/或时钟。结合第二方面,第二方面的第一种可能的实现方式,第二方面的第二种可能的实现方式,或者第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述装置还包括写入单元,用于具体采用如下方式将内存中的指定数据写入所述待控制级缓存:获取所述指定数据在内存中对应的内存地址包含的索引位,所述索引位为指定索引位;其中,所述内存的内存地址和所述待控制级缓存的缓存地址均包含索引位,每个缓存地址对应一个缓存块;按照预设的缓存区间顺序,依次确定所述各缓存区间中、包含所述指定索引位的缓存地址对应的缓存块是否为可用缓存块,直至确定出可用缓存块;将内存中的所述指定数据写入确定出的可用缓存块。结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述写入单元,还用于当所述各缓存区间中,包含所述指定索引位的缓存地址对应的缓存块均不为可用缓存块时,按照所述预设的缓存区间顺序,将内存中的所述指定数据写入第一个缓存区间中、包含所述指定索引位的缓存地址对应的缓存块。结合第二方面的第四种可能的实现方式,或者第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述待控制级缓存的缓存地址还包含区间位;所述区间位为所述缓存地址中的高位,所述索引位为所述缓存地址中的低位。第三方面,提供一种移动终端设备,包括上述多级缓存的功耗控制装置。第四方面,提供一种移动终端设备,包括处理器和存储器,所述处理器运行所述存储器中存储的预设程序,用于:获取多级缓存中待控制级缓存包括的各缓存区间的访问率;其中,所述待控制级缓存为所述多级缓存中的二级或二级以上缓存;所述待控制级缓存包括至少两个缓存区间,每个缓存区间包括至少一个缓存块;根据所述各缓存区间的访问率,控制各缓存区间的功耗相关参数。结合第四方面,在第一种可能的实现方式中,所述功耗相关参数包括电源电压和/或时钟频率;所述处理器,具体用于:所述各缓存区间中的每个缓存区间为指定缓存区间,当所述指定缓存区间的访问率高于第一预设阈值时,调整所述指定缓存区间的电源电压和/或时钟频率升高;当所述指定缓存区间的访问率低于第二预设阈值时,调整所述指定缓存区间的电源电压和/或时钟频率降低;其中,所述第一预设阈值大于所述第二预设阈值。结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器,还用于:在调整所述指定缓存区间的电源电压之前,确定当前时刻已到达采用预设电压调整周期调整所述指定缓存区间的电源电压的时刻;在调整所述指定缓存区间的时钟频率之前,确定当前时刻已到达采用预设频率调整周期调整所述指定缓存区间的时钟频率的时刻;其中,所述预设电压调整周期大于所述预设频率调整周期。结合第四方面的第一种可能的实现方式,或者第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器,还用于:当所述指定缓存区间的访问率低于第二预设阈值的次数达到预设次数、且所述指定缓存区间中可用缓存块的数量达到预设数量时,关闭所述指定缓存区间的电源和/或时钟。结合第四方面,第四方面的第一种可能的实现方式,第四方面的第二种可能的实现方式,或者第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器,还用于具体采用如下方式将内存中的指定数据写入所述待控制级缓存:获取所述指定数据在内存中对应的内存地址包含的索引位,所述索引位为指定索引位;其中,所述内存的内存地址和所述待控制级缓存的缓存地址均包含索引位,每个缓存地址对应一个缓存块;按照预设的缓存区间顺序,依次确定所述各缓存区间中、包含所述指定索引位的缓存地址对应的缓存块是否为可用缓存块,直至确定出可用缓存块;将内存中的所述指定数据写入确定出的可用缓存块。结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理器,还用于:当所述各缓存区间中,包含所述指定索引位的缓存地址对应的缓存块均不为可用缓存块时,按照所述预设的缓存区间顺序,将内存中的所述指定数据写入第一个缓存区间中、包含所述指定索引位的缓存地址对应的缓存块。结合第四方面的第四种可能的实现方式,或者第四方面的第五种可能的实现方式,在第六种可能的实现方式中,所述待控制级缓存的缓存地址还包含区间位;所述区间位为所述缓存地址中的高位,所述索引位为所述缓存地址中的低位。第五方面,提供一种计算机程序产品,所述计算机程序产品包括可读取存储介质用于存储计算机程序代码,所述计算机程度代码运行在一个处理器上,所述计算机程序代码包括:用于获取多级缓存中待控制级缓存包括的各缓存区间的访问率;其中,所述待控制级缓存为所述多级缓存中的二级或二级以上缓存;所述待控制级缓存包括至少两个缓存区间,每个缓存区间包括至少一个缓存块;用于根据所述各缓存区间的访问率,控制各缓存区间的功耗相关参数。结合第五方面,在第一种可能的实现方式中,所述功耗相关参数包括电源电压和/或时钟频率;所述计算机程序代码包括:具体用于所述各缓存区间中的每个缓存区间为指定缓存区间,当所述指定缓存区间的访问率高于第一预设阈值时,调整所述指定缓存区间的电源电压和/或时钟频率升高;当所述指定缓存区间的访问率低于第二预设阈值时,调整所述指定缓存区间的电源电压和/或时钟频率降低;其中,所述第一预设阈值大于所述第二预设阈值。结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述计算机程序代码包括:还用于在调整所述指定缓存区间的电源电压之前,确定当前时刻已到达采用预设电压调整周期调整所述指定缓存区间的电源电压的时刻;在调整所述指定缓存区间的时钟频率之前,确定当前时刻已到达采用预设频率调整周期调整所述指定缓存区间的时钟频率的时刻;其中,所述预设电压调整周期大于所述预设频率调整周期。结合第五方面的第一种可能的实现方式,或者第五方面的第二种可能的实现方式,在第三种可能的实现方式中,所述计算机程序代码包括:还用于当所述指定缓存区间的访问率低于第二预设阈值的次数达到预设次数、且所述指定缓存区间中可用缓存块的数量达到预设数量时,关闭所述指定缓存区间的电源和/或时钟。结合第五方面,第五方面的第一种可能的实现方式,第五方面的第二种可能的实现方式,或者第五方面的第三种可能的实现方式,在第四种可能的实现方式中,所述计算机程序代码包括:还用于具体采用如下方式将内存中的指定数据写入所述待控制级缓存:获取所述指定数据在内存中对应的内存地址包含的索引位,所述索引位为指定索引位;其中,所述内存的内存地址和所述待控制级缓存的缓存地址均包含索引位,每个缓存地址对应一个缓存块;按照预设的缓存区间顺序,依次确定所述各缓存区间中、包含所述指定索引位的缓存地址对应的缓存块是否为可用缓存块,直至确定出可用缓存块;将内存中的所述指定数据写入确定出的可用缓存块。结合第五方面的第四种可能的实现方式,在第五种可能的实现方式中,所述计算机程序代码包括:还用于当所述各缓存区间中,包含所述指定索引位的缓存地址对应的缓存块均不为可用缓存块时,按照所述预设的缓存区间顺序,将内存中的所述指定数据写入第一个缓存区间中、包含所述指定索引位的缓存地址对应的缓存块。结合第五方面的第四种可能的实现方式,或者第五方面的第五种可能的实现方式,在第六种可能的实现方式中,所述待控制级缓存的缓存地址还包含区间位;所述区间位为所述缓存地址中的高位,所述索引位为所述缓存地址中的低位。根据第一方面提供的多级缓存的功耗控制方法,第二方面提供的多级缓存的功耗控制装置,第三方面、第四方面提供的移动终端设备,第五方面提供的计算机程序产品,针对多级缓存中的二级或二级以上缓存,将该级缓存划分为多个缓存区间,根据每个缓存区间的访问率,控制该缓存区间的功耗相关参数;对于一些访问率较低的缓存区间,这部分缓存区间对计算机性能影响较小,可以通过调整这部分缓存区间的功耗相关参数减小缓存区间的功耗,进而减小了多级缓存的功耗。附图说明附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1为现有技术中多级缓存中的二级缓存的控制方案的示意图;图2为本发明实施例提供的多级缓存的功耗控制方法的流程示意图;图3为本发明实施例提供的多级缓存中的二级缓存的控制方案的示意图;图4为本发明实施例提供的多级缓存中的二级缓存的功耗控制方法的详细流程示意图;图5为本发明实施例提供的多级缓存中的二级缓存的数据写入方法的详细流程示意图;图6为本发明实施例提供的数据写入结果的示意图;图7为多核异步处理器系统的示意图;图8为大小核架构的示意图;图9为本发明实施例提供的多级缓存的功耗控制装置的结构示意图;图10为本发明实施例提供的移动终端设备的示意图。具体实施方式为了给出减小多级缓存功耗的实现方案,本发明实施例提供了一种功耗控制方法、装置、设备及计算机程序产品,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明实施例提供了一种多级缓存的功耗控制方法,如图2所示,具体可以包括:步骤201、获取多级缓存中待控制级缓存包括的各缓存区间的访问率;其中,该待控制级缓存为多级缓存中的二级或二级以上缓存;所述待控制级缓存包括至少两个缓存区间,每个缓存区间包括至少一个缓存块。即本发明实施例提供的功耗控制方法中,针对多级缓存中的待控制级缓存(二级或二级以上缓存),将该待控制级缓存划分为多个缓存区间(region),具体划分方法本发明不作具体限定;每个缓存区间包括至少一个缓存块(block),缓存块为缓存空间的最小单位。现有的scu(snoopcontrolunit,窥探控制器)等多种模块都可以监控各缓存区间的访问率,因此实际实施时,可以从scu或其它模块直接获取各缓存区间的访问率。步骤202、根据各缓存区间的访问率,控制各缓存区间的功耗相关参数。其中,该功耗相关参数为和缓存功耗相关的参数,即能够对缓存功耗产生影响的参数。例如电源电压,并且,电源电压越低,缓存功耗越小,即电源电压为一种和缓存功耗正相关的功耗相关的参数;同理,时钟频率也为一种和缓存功耗正相关的功耗相关的参数。具体的,当功耗相关参数为和缓存功耗正相关的参数时,步骤202中,缓存区间的访问率越低,控制该缓存区间的该功耗相关参数越小,使得该缓存区间的功耗越小;当功耗相关参数为和缓存功耗负相关的参数时,步骤202中,缓存区间的访问率越低,控制该缓存区间的该功耗相关参数越大,使得该缓存区间的功耗越小。即针对多级缓存中的待控制级缓存(二级或二级以上缓存)的不同缓存区间,功耗相关参数的具体值可以不同。例如图3所示的多级缓存中的二级缓存,不同缓存区间可以采用不同的电源电压和时钟频率,即每个缓存区间由一个电源域和一个时钟域控制。上述电源电压和时钟频率仅为示例,本发明实施例提供的功耗控制方法中功耗相关参数也可以为其它能够对缓存功耗产生影响的参数,在此不再进行举例说明。在本发明下述具体实施例中,功耗相关参数包括电源电压和时钟频率中的至少一个。当功耗相关参数具体为电源电压时,此时,根据各缓存区间的访问率,对各缓存区间的电源电压进行控制;当功耗相关参数具体为时钟频率时,此时,根据各缓存区间的访问率,对各缓存区间的时钟频率进行控制;较佳的,功耗相关参数可以同时包括电源电压和时钟频率,此时,根据各缓存区间的访问率,对各缓存区间的电源电压和时钟频率均进行控制,能够更有效的控制功耗。具体的控制方法遵循低访问率低功耗的原则,本发明不作具体限定。下面以功耗相关参数同时包括电源电压和时钟频率为例,对具体的控制方法进行举例说明。当然,下述具体的控制方法中,功耗相关参数也可以仅为电源电压或时钟频率,即仅对电源电压或时钟频率进行控制。多级缓存中的待控制级缓存(二级或二级以上缓存)的各缓存区间中的每个缓存区间为指定缓存区间,若功耗相关参数同时包括电源电压和时钟频率,当该指定缓存区间的访问率高于第一预设阈值时,调整该指定缓存区间的电源电压和时钟频率升高,以满足性能需求;当该指定缓存区间的访问率低于第二预设阈值时,调整该指定缓存区间的电源电压和时钟频率降低,以减小功耗损失;其中,该第一预设阈值大于该第二预设阈值。较佳的,可以同时记录该指定缓存区间的访问率低于第二预设阈值的次数,当该指定缓存区间的访问率低于第二预设阈值的次数达到预设次数、且该指定缓存区间中的可用缓存块的数量达到预设数量时,关闭该指定缓存区间的电源和时钟。具体的,预设数量可以为该指定缓存区间中缓存块的数量的一半。即此时,该指定缓存区间的访问率较低,存储的数据较少,可以关闭该指定缓存区间以进一步减小功耗损失。其中,可用缓存块包括空闲缓存块,也可以进一步包括超过预设时长未被访问的缓存块。下面以多级缓存中的二级缓存为例,结合附图,对上述功耗控制方法进行详细说明。如图4所示,具体可以包括如下步骤:步骤401、获取多级缓存中的二级缓存包括的各缓存区间的访问率。步骤402、各缓存区间每个缓存区间为指定缓存区间,判断该指定缓存区间的访问率是否高于第一预设阈值t1。当该指定缓存区间的访问率高于第一预设阈值t1时,进入步骤403;当该指定缓存区间的访问率不高于第一预设阈值t1时,直接进入步骤404。步骤403、上调该指定缓存区间的电源电压和时钟频率。本次控制流程结束,直接进入步骤409。步骤404、判断该指定缓存区间的访问率是否低于第二预设阈值t2。当该指定缓存区间的访问率低于第二预设阈值t2时,进入步骤405;当该指定缓存区间的访问率不低于第二预设阈值t2时,电源电压和时钟频率无需进行调整,直接进入步骤409。步骤405、下调该指定缓存区间的电源电压和时钟频率。步骤406、记录该指定缓存区间的访问率低于第二预设阈值t2的次数,判断该指定缓存区间的访问率低于第二预设阈值t2的次数是否达到预设次数m。当该指定缓存区间的访问率低于第二预设阈值t2的次数达到预设次数m时,进入步骤407;当该指定缓存区间的访问率低于第二预设阈值t2的次数未达到预设次数m时,本次控制流程结束,直接进入步骤409。步骤407、判断该指定缓存区间中可用缓存块的数量是否达到预设数量。其中,该预设数量可以为该指定缓存区间中缓存块总数量的一半。当该指定缓存区间中可用缓存块的数量达到该预设数量时,进入步骤408;当该指定缓存区间中可用缓存块的数量未达到该预设数量时,本次控制流程结束,直接进入步骤409。步骤408、关闭该指定缓存区间的电源和时钟。即此时,关闭该指定缓存区间;在后续存在待写入数据时可以再开启该指定缓存区间,即开启该指定缓存区间的电源和时钟。步骤409、判断是否到达下一次获取各缓存区间的访问率、执行下一次控制流程的时刻。具体实施时,可以设置访问率监控周期,周期性地获取访问率,进行电源电压和时钟周期的控制调整。即,此时该访问率监控周期即为电压调整周期和频率调整周期。此时,访问率监控周期应当根据实际情况选择一个适当的值,以防止电源电压和时钟频率的频繁调整。由于时钟切换的延迟时间远小于电源切换的延迟时间,较佳的,也可以针对电源电压和时钟频率分别设置不同的访问率监控周期,针对电源电压设置的访问率监控周期应大于针对时钟频率设置的访问率监控周期,可以到达更优的控制效果。即,此时针对电源电压设置的访问率监控周期即为电压调整周期,针对时钟频率设置的访问率监控周期即为时钟频率调整周期。进一步的,当仅设置了一个访问率监控周期时,也可以针对电源电压和时钟频率分别预设调整周期,预设电压调整周期和预设频率调整周期的大小关系本发明不作具体限定,较佳的,预设电压调整周期应大于预设频率调整周期,可以到达更优的控制效果。即在调整指定缓存区间的电源电压之前,确定当前时刻已到达采用预设电压调整周期调整该指定缓存区间的电源电压的时刻;在调整指定缓存区间的时钟频率之前,确定当前时刻已到达采用预设频率调整周期调整该指定缓存区间的时钟频率的时刻。较佳的,由于预设频率调整周期小于预设电压调整周期,可以设置访问率监控周期等于预设频率调整周期,这样在每一次控制流程中,调整时钟频率之前,无需判断当前时刻是否已到达采用预设频率调整周期调整时钟频率的时刻,只需要在调整电源电压之前,判断当前时刻是否已到达采用预设电压调整周期调整电源电压的时刻即可。上述根据缓存区间的访问率,控制缓存区间的功耗相关参数的具体方法仅为示例,并不用于限定本发明。在本发明的其它实施例中也可以采用其它方法,例如,可以预先设定访问率区间和功耗相关参数的对应关系,访问率越低的区间对应的功耗相关参数能够使缓存功耗越小,确定每个缓存区间的访问率所处的访问率区间,即可以根据预设的对应关系确定出对应的功耗相关参数,进行控制。综上,本发明实施例提供的多级缓存的功耗控制方法,对于多级缓存中待控制级缓存(二级或二级以上缓存)中的各缓存区间,分别进行功耗相关参数的动态控制,对于一些访问率较低的缓存区间,这部分缓存区间对计算机性能影响较小,可以通过调整这部分缓存区间的功耗相关参数减小这部分缓存区间的功耗,甚至关闭部分缓存区间,减少不必要的缓存刷新,从而减小了多级缓存的功耗。显然,若在向待控制级缓存中写入数据时,将数据尽量集中写入该待控制级缓存中的一个或几个缓存区间中,便会使得该一个或几个缓存区间的访问率较高;而其它缓存区间写入的数据较少,甚至没有数据写入,访问率自然也较低;即这样可以大大增加访问率低的缓存区间的数量,进而可以通过调整功耗相关参数,减小更多缓存区间的功耗,进一步减小了多级缓存的功耗。实际实施时,内存的内存地址中可以包含索引位,待控制级缓存的缓存地址中也包含索引位,其中,每个缓存地址对应一个缓存块,可以采用如下方式将内存中的指定数据写入该待控制级缓存:获取该指定数据在内存中对应的内存地址包含的索引位,该索引位为指定索引位;按照预设的缓存区间顺序,依次确定各缓存区间中、包含该指定索引位的缓存地址对应的缓存块是否为可用缓存块,直至确定出可用缓存块;将内存中的该指定数据写入确定出的可用缓存块。进一步的,当遍历所有缓存区间后,各缓存区间中包含该指定索引位的缓存地址对应的缓存块均不为可用缓存块时,按照上述预设的缓存区间顺序,将内存中的该指定数据写入第一个缓存区间中、包含该指定索引位的缓存地址对应的缓存块。即将内存中的数据尽量集中写入预设的缓存区间顺序中,顺序靠前的缓存区间。下面以多级缓存中的二级缓存为例,结合附图,对上述数据写入方法进行详细说明。如图5所示,具体可以包括如下步骤:步骤501、获取待写入二级缓存的指定数据对应的内存地址中的索引位。步骤502、判断预设的缓存区间顺序中第一个缓存区间中,步骤501获取的索引位对应的缓存块是否为可用缓存块。当第一个缓存区间中,步骤501获取的索引位对应的缓存块不是可用缓存块时,进入步骤503,继续寻找可用缓存块;当第一个缓存区间中,步骤501获取的索引位对应的缓存块是可用缓存块时,直接进入步骤506。步骤503、按照预设的缓存区间顺序,判断下一个缓存区间中,步骤501获取的索引位对应的缓存块是否为可用缓存块。若该下一个缓存区间处于关闭状态,则将该下一个缓存区间开启。当该下一个缓存区间中,步骤501获取的索引位对应的缓存块是可用缓存块时,进入步骤504;当该下一个缓存区间中,步骤501获取的索引位对应的缓存块不是可用缓存块时,进入步骤505。步骤504、将指定数据写入步骤503确定出的可用缓存块,本次数据写入流程结束。步骤505、判断步骤503中的下一个缓存区间是否为预设的缓存区间顺序中的最后一个缓存区间。当步骤503中的下一个缓存区间不是最后一个缓存区间时,返回步骤503,继续寻找可用缓存快;当步骤503中的下一个缓存区间已经是最后一个缓存区间时,进入步骤506。步骤506、将指定数据写入第一个缓存区间中对应的缓存块。为便于上述数据写入方法的实现,具体实施时,可以将多级缓存中待控制级缓存(二级或二级以上缓存)划分为大小相等的n个缓存区间,每个缓存区间均包括m个缓存块,较佳的,m=2、4、8、16......2l1,l1≥1,此时,索引位的位数为以2为底的m的对数。进一步的,缓存地址中还可以包含区间位,用于标识每个缓存块所属的缓存区间。较佳的,n=2、4、8、16......2l2,l2≥1,此时,区间位的位数为以2为底的n的对数。具体的,可以将区间位作为缓存地址中的高位,索引位作为缓存地址中的低位。例如,如下表所示:如上表所示,此时,多级缓存中待控制级缓存(二级或二级以上缓存)被分为2个缓存区间,区间位的位数为1位;每个缓存区间包括4个缓存块,索引位的位数为2位。内存地址中包含的索引位的位数应该和缓存地址中包含的索引位的位数相同,进一步的,内存地址中还可以包含标识位。具体的,可以将标识位作为内存地址中的高位,索引位作为内存地址中的低位。对应于上述表格所示的缓存地址,内存地址可以如下表所示:假设当前待控制级缓存(二级或二级以上缓存)各缓存区间中的缓存块均为可用缓存块,将内存中内存地址为00011、01000、11001的数据采用上述数据写入方法写入该待控制级缓存时,写入结果如图6所示,上述数据分别写入了缓存地址为011、000、001的缓存块,可见内存中不同位置的数据集中写入了缓存区间0中。后续在访问缓存时,缓存区间0的访问率较高,可以调整功耗相关参数以满足性能需求,例如设置较高的电源电压和时钟频率;而缓存区间1则可以调整功耗相关参数以减少功耗损失,例如设置较低的电源电压和时钟频率,甚至可以关闭缓存区间1的电源和时钟。具体在记录内存地址与缓存地址的映射关系时可以采用lut(look-uptable,查找表),较佳的,也可以采用如下的方式记录,其中可用位用于标识对应的缓存块是否为可用缓存块。可用位区间位标识位索引位000100000110011000011表中,区间位+索引位=缓存地址,标识位+索引位=内存地址。综上所述,采用本发明实施例提供的控制方法,在对多级缓存中待控制级缓存(二级或二级以上缓存)包括的各缓存区间分别进行管理控制时,综合考虑到了各缓存区间的访问率和使用率,能够在保证性能的同时避免功耗损失。本发明上述实施例提供的多级缓存的功耗控制方法适用于多种系统架构,例如,单核处理器系统、多核处理器系统等。对于多核处理器系统,既适用于多核同步处理器系统,也适用于多核异步处理器系统。例如图7所示的多核异步处理器系统,以二级缓存为例,采用本发明实施例提供的多级缓存的功耗控制方法,可以将二级缓存0、二级缓存1......二级缓存n作为一个整体进行缓存区间的划分、管理;也可以对二级缓存0、二级缓存1......二级缓存n单独进行缓存区间的划分、管理,较佳的,此时不同二级缓存上的缓存区间编号是连续的,例如二级缓存0包括的缓存区间编号为1、2、3,二级缓存1包括的缓存区间编号可以从4开始。本发明上述实施例提供的多级缓存的功耗控制方法还可以应用于图8所示的大小核架构中,针对大核的多级缓存中的二级或二级以上缓存,和小核的多级缓存中的二级或二级以上缓存,可以分别进行分区管理。基于同一发明构思,根据本发明上述实施例提供的多级缓存的功耗控制方法,相应地,本发明实施例还提供一种多级缓存的功耗控制装置,其结构示意图如图9所示,具体包括:获取单元901,用于获取多级缓存中待控制级缓存包括的各缓存区间的访问率;其中,该待控制级缓存为多级缓存中的二级或二级以上缓存;该待控制级缓存包括至少两个缓存区间,每个缓存区间包括至少一个缓存块;控制单元902,用于根据各缓存区间的访问率,控制各缓存区间的功耗相关参数。其中,该功耗相关参数为和缓存功耗相关的参数,即能够对缓存功耗产生影响的参数。具体的,当功耗相关参数为和缓存功耗正相关的参数时,缓存区间的访问率越低,控制该缓存区间的该功耗相关参数越小,使得该缓存区间的功耗越小;当功耗相关参数为和缓存功耗负相关的参数时,缓存区间的访问率越低,控制该缓存区间的该功耗相关参数越大,使得该缓存区间的功耗越小。即针对多级缓存中的待控制级缓存(二级或二级以上缓存)的不同缓存区间,功耗相关参数的具体值可以不同。进一步的,该功耗相关参数可以包括电源电压和/或时钟频率;电源电压和时钟频率均为和缓存功耗正相关的功耗相关的参数;在本发明的一个具体实施例中,控制单元902,具体用于各缓存区间中的每个缓存区间为指定缓存区间,当该指定缓存区间的访问率高于第一预设阈值时,调整该指定缓存区间的电源电压和/或时钟频率升高,以满足性能需求;当该指定缓存区间的访问率低于第二预设阈值时,调整该指定缓存区间的电源电压和/或时钟频率降低,以减小功耗损失;其中,第一预设阈值大于第二预设阈值。较佳的,控制单元902,还用于在调整该指定缓存区间的电源电压之前,确定当前时刻已到达采用预设电压调整周期调整指定缓存区间的电源电压的时刻;在调整该指定缓存区间的时钟频率之前,确定当前时刻已到达采用预设频率调整周期调整指定缓存区间的时钟频率的时刻。其中,预设电压调整周期和预设频率调整周期的大小关系本发明不作具体限定,较佳的,由于时钟切换的延迟时间远小于电源切换的延迟时间,因此,预设电压调整周期可以大于预设频率调整周期,能够到达更优的控制效果。进一步的,控制单元902,还用于记录该指定缓存区间的访问率低于第二预设阈值的次数,当该指定缓存区间的访问率低于第二预设阈值的次数达到预设次数、且该指定缓存区间中可用缓存块的数量达到预设数量时,关闭该指定缓存区间的电源和/或时钟。其中,可用缓存块包括空闲缓存块,也可以进一步包括超过预设时长未被访问的缓存块。具体的,预设数量可以为该指定缓存区间中缓存块的数量的一半。即此时,该指定缓存区间的访问率较低,存储的数据较少,可以关闭该指定缓存区间以进一步减小功耗损失。上述电源电压和时钟频率仅为示例,本发明的其它具体实施例中功耗相关参数也可以为其它能够对缓存功耗产生影响的参数,在此不再进行举例说明。上述根据缓存区间的访问率,控制缓存区间的功耗相关参数的具体方式仅为示例,并不用于限定本发明。若在向待控制级缓存中写入数据时,将数据尽量集中写入该待控制级缓存中的一个或几个缓存区间中,便会使得该一个或几个缓存区间的访问率较高;而其它缓存区间写入的数据较少,甚至没有数据写入,访问率自然也较低;即这样可以大大增加访问率低的缓存区间的数量,进而可以通过调整功耗相关参数,减小更多缓存区间的功耗,进一步减小了多级缓存的功耗。因此,较佳的,该多级缓存的功耗控制装置还包括写入单元,用于具体采用如下方式将内存中的指定数据写入待控制级缓存:获取该指定数据在内存中对应的内存地址包含的索引位,该索引位为指定索引位;其中,内存的内存地址和待控制级缓存的缓存地址均包含索引位,每个缓存地址对应一个缓存块;按照预设的缓存区间顺序,依次确定各缓存区间中、包含该指定索引位的缓存地址对应的缓存块是否为可用缓存块,直至确定出可用缓存块;将内存中的该指定数据写入确定出的可用缓存块。进一步的,该写入单元,还用于在遍历所有缓存区间后,当各缓存区间中,包含该指定索引位的缓存地址对应的缓存块均不为可用缓存块时,按照预设的缓存区间顺序,将内存中的该指定数据写入第一个缓存区间中、包含该指定索引位的缓存地址对应的缓存块。即将内存中的数据尽量集中写入预设的缓存区间顺序中,顺序靠前的缓存区间。进一步的,待控制级缓存的缓存地址还包含区间位;该区间位为缓存地址中的高位,索引位为缓存地址中的低位。内存的内存地址还包含标识位;该标识位为内存地址中的高位,索引位为内存地址中的低位。上述各单元的功能可对应于图2、图4或图5所示流程中的相应处理步骤,在此不再赘述。本发明实施例还提供了一种移动终端设备,包括上述多级缓存的功耗控制装置。基于同一发明构思,根据本发明上述实施例提供的多级缓存的功耗控制方法,相应地,本发明实施例还提供一种移动终端设备,其结构示意图如图10所示,包括处理器1001和存储器1002,处理器1001运行存储器1002中存储的预设程序,用于:获取多级缓存中待控制级缓存包括的各缓存区间的访问率;其中,该待控制级缓存为多级缓存中的二级或二级以上缓存;该待控制级缓存包括至少两个缓存区间,每个缓存区间包括至少一个缓存块;根据各缓存区间的访问率,控制各缓存区间的功耗相关参数。进一步的,该功耗相关参数包括电源电压和/或时钟频率;处理器1001,具体用于:各缓存区间中的每个缓存区间为指定缓存区间,当该指定缓存区间的访问率高于第一预设阈值时,调整该指定缓存区间的电源电压和/或时钟频率升高;当该指定缓存区间的访问率低于第二预设阈值时,调整该指定缓存区间的电源电压和/或时钟频率降低;其中,第一预设阈值大于第二预设阈值。较佳的,处理器1001,还用于:在调整该指定缓存区间的电源电压之前,确定当前时刻已到达采用预设电压调整周期调整指定缓存区间的电源电压的时刻;在调整该指定缓存区间的时钟频率之前,确定当前时刻已到达采用预设频率调整周期调整指定缓存区间的时钟频率的时刻;其中,预设电压调整周期大于预设频率调整周期。进一步的,处理器1001,还用于:当该指定缓存区间的访问率低于第二预设阈值的次数达到预设次数、且该指定缓存区间中可用缓存块的数量达到预设数量时,关闭该指定缓存区间的电源和/或时钟。较佳的,处理器1001,还用于具体采用如下方式将内存中的指定数据写入待控制级缓存:获取该指定数据在内存中对应的内存地址包含的索引位,该索引位为指定索引位;其中,内存的内存地址和待控制级缓存的缓存地址均包含索引位,每个缓存地址对应一个缓存块;按照预设的缓存区间顺序,依次确定各缓存区间中、包含该指定索引位的缓存地址对应的缓存块是否为可用缓存块,直至确定出可用缓存块;将内存中的该指定数据写入确定出的可用缓存块。进一步的,处理器1001,还用于:当各缓存区间中,包含该指定索引位的缓存地址对应的缓存块均不为可用缓存块时,按照预设的缓存区间顺序,将内存中的该指定数据写入第一个缓存区间中、包含该指定索引位的缓存地址对应的缓存块。进一步的,待控制级缓存的缓存地址还包含区间位;该区间位为缓存地址中的高位,索引位为缓存地址中的低位。上述处理器的功能可对应于图2、图4或图5所示流程中的相应处理步骤,在此不再赘述。采用本发明实施例提供的移动终端设备,可以减小设备功耗,延长设备的续航时间,进而提高了用户的使用体验。基于同一发明构思,根据本发明上述实施例提供的多级缓存的功耗控制方法,相应地,本发明实施例还提供一种计算机程序产品,该计算机程序产品包括可读取存储介质用于存储计算机程序代码,该计算机程度代码运行在一个处理器上,该计算机程序代码包括:用于获取多级缓存中待控制级缓存包括的各缓存区间的访问率;其中,该待控制级缓存为多级缓存中的二级或二级以上缓存;该待控制级缓存包括至少两个缓存区间,每个缓存区间包括至少一个缓存块;用于根据各缓存区间的访问率,控制各缓存区间的功耗相关参数。进一步的,该功耗相关参数包括电源电压和/或时钟频率;该计算机程序代码包括:具体用于各缓存区间中的每个缓存区间为指定缓存区间,当该指定缓存区间的访问率高于第一预设阈值时,调整该指定缓存区间的电源电压和/或时钟频率升高;当该指定缓存区间的访问率低于第二预设阈值时,调整该指定缓存区间的电源电压和/或时钟频率降低;其中,第一预设阈值大于第二预设阈值。较佳的,该计算机程序代码包括:还用于在调整该指定缓存区间的电源电压之前,确定当前时刻已到达采用预设电压调整周期调整指定缓存区间的电源电压的时刻;在调整该指定缓存区间的时钟频率之前,确定当前时刻已到达采用预设频率调整周期调整指定缓存区间的时钟频率的时刻;其中,预设电压调整周期大于预设频率调整周期。进一步的,该计算机程序代码包括:还用于当该指定缓存区间的访问率低于第二预设阈值的次数达到预设次数、且该指定缓存区间中可用缓存块的数量达到预设数量时,关闭该指定缓存区间的电源和/或时钟。较佳的,该计算机程序代码包括:还用于具体采用如下方式将内存中的指定数据写入待控制级缓存:获取该指定数据在内存中对应的内存地址包含的索引位,该索引位为指定索引位;其中,内存的内存地址和待控制级缓存的缓存地址均包含索引位,每个缓存地址对应一个缓存块;按照预设的缓存区间顺序,依次确定各缓存区间中、包含该指定索引位的缓存地址对应的缓存块是否为可用缓存块,直至确定出可用缓存块;将内存中的该指定数据写入确定出的可用缓存块。进一步的,该计算机程序代码包括:还用于当各缓存区间中,包含该指定索引位的缓存地址对应的缓存块均不为可用缓存块时,按照预设的缓存区间顺序,将内存中的该指定数据写入第一个缓存区间中、包含该指定索引位的缓存地址对应的缓存块。进一步的,待控制级缓存的缓存地址还包含区间位;该区间位为缓存地址中的高位,索引位为缓存地址中的低位。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1