节能的动态DRAM缓存调整的制作方法

文档序号:11890501阅读:577来源:国知局
节能的动态DRAM缓存调整的制作方法与工艺

除非本文中另外指示,在本部分中所描述的方法对于本申请中的权利要求不是现有技术,并且不因包括在本部分中而被承认为是现有技术。

大规模芯片多处理器存在如下一种趋势:包括相当大量的处理器核的、具有在不久的将来中设想的高达数百或数千的核数。这样的处理器可以显著地降低具有高级别的并发的应用的处理时间,例如在应用中计算可以同时地执行或彼此并行地执行。然而,随着该趋势继续,在高核数芯片多处理器中的所有处理器核的有效使用或许变得更加困难,因为在没有指数地增加由于芯片多处理器中的泄露电流招致的静态功率消耗的情况下,阈值电压不再是按比例缩小的。结果,在将来的技术年代中高核数芯片多处理器中的每个核可用的功率预算或许降低。该情况或许导致被称作为“功率墙”、“实用墙”、或“暗硅”的现象,其中高核数芯片多处理器的越来越多的部分或许不以全频率供电或根本不通电。因此,这样的芯片多处理器的性能改进可以强有力地视能力效率、例如性能/瓦特或操作/焦耳而定。

高容量片上缓存已经被开发为提高芯片性能的方法。例如,在多核裸片(die)上的末级缓存已经在动态随机存取存储器(DRAM)而不是静态随机存取存储器(SRAM)中实现。DRAM可以是SRAM的六或八倍的密度,并因此可以具有比相似大小的SRAM阵列显著地更大的容量。这在服务器芯片中或许是特别地有利的,其中裸片区域的50%或更多可以专用于片上缓存。此外,处理器芯片封装中的DRAM芯片的重叠可以允许一个或多个分离的DRAM裸片重叠在逻辑处理器裸片上,从而促进在处理器附近的非常大的DRAM存储。实现片上高容量缓存的另一技术包括MRAM(磁阻式RAM)。DRAM是易失性存储器,同时在某些情况下MRAM可以被设计为半易失性为了降低写入延迟和能量。

概述

根据本公开的至少一些实施方式,在易失性存储设备中动态缓存调整的方法包括:接收目标存储容量;选择针对易失性存储设备的刷新间隔;以及以选择的刷新间隔来操作易失性存储设备,使得易失性存储设备具有经修改的数据存储容量,该经修改的数据存储容量等于或大于接收到的目标存储容量。

根据本公开的至少一些实施方式,在易失性存储设备中动态缓存调整的方法包括:接收目标存储容量;并确定与功率控制易失性存储设备的一部分相关联的、易失性存储设备的第一节能,易失性存储设备的剩余部分包括等于或大于接收到的目标存储容量的数据存储容量。该方法还包括:确定与以选中的刷新间隔来操作易失性存储器相关联的、易失性存储器的第二节能,与以选中的刷新间隔的操作有关的、易失性存储设备的数据存储容量等于或大于接收到的目标存储容量,以及基于第一节能大于第二节能,功率控制易失性存储设备的所述部分。

根据本公开的至少一些实施方式,处理器包括处理器单元、配置为缓存存储器并耦接到处理器单元的易失性存储设备、以及缓存存储控制器。缓存存储控制器耦接到易失性存储设备且配置选择针对易失性存储设备的刷新间隔,以及以选中的刷新间隔来操作易失性存储设备,使得易失性存储设备具有经修改的数据存储容量,该经修改的数据存储容量等于或大于目标存储容量。

根据本公开的至少一些实施方式,处理器包括处理器单元、配置为缓存存储器并耦接到处理器单元的易失性存储设备、以及缓存存储控制器。缓存存储控制器耦接到易失性存储设备且配置为确定与易失性存储设备的一部分的功率控制相关联的、易失性存储设备的第一节能,易失性存储设备的剩余的部分包括等于或大于目标存储容量的数据存储容量,确定与以选定的刷新间隔进行的易失性存储设备的操作相关联的、易失性存储设备的第二节能,与以选定的刷新间隔操作有关的、易失性存储设备的数据存储容量等于或大于目标存储容量,以及基于第一节能大于第二节能,功率控制易失性存储设备的该部分。

上述概述仅仅是说明性的,且并不意图以任何方式限制。除了以上描述的说明性的方面、实施方式和特征,进一步的方面、实施方式和特征将通过参考附图和下面详细的描述而变得明显。

附图说明

本公开的前述和其他特征将从结合附图的下文中的描述和随附权利要求中变得更加充分地明显。这些附图仅仅描绘了根据本公开的几个实施方式,且因此并不被认为是限制它的范围,本公开将通过使用附图利用附加特性和细节来描述。

图1是根据本公开的至少一些实施方式而布置的计算设备的示例性实施方式的框图;

图2A-2D图示包括在图1中所示的计算设备的有效块表中的示例有效块子表的实施方式;

图3是图示根据公开的实施方式的、图1中所示的计算设备的示例有效边界表的实施方式;

图4是图示根据本公开的实施方式的、通过缓存控制器实现的针对两种动态缓存调整技术的示例有效缓存容量与结果DRAM功率消耗比率的关系的图表;

图5是图示根据本公开的实施方式的、通过缓存控制器部署的针对混合有效边界和两种动态缓存调整技术的示例有效缓存容量与结果DRAM功率消耗比率的关系的图表;

图6阐述根据公开的实施方式的、概述构建混合有效边界的示例方法的流程图;

图7阐述根据公开的实施方式的、概述在易失性存储设备比如DRAM缓存中的动态缓存调整的示例方法的流程图;

图8阐述了根据公开的实施方式的、概述在易失性存储设备比如DRAM缓存中的动态缓存调整的示例方法的流程图;

图9是实现计算设备的易失性存储设备中的动态缓存调整的方法的计算机程序产品的说明性实施方式的框图;

图10是图示示例计算设备的框图,

全部附图根据本公开的至少一些实施例来布置。

具体实施方式

在以下详细描述中,对附图进行参考,所述附图形成详细描述的一部分。除非上下文另外指示,在附图中,相似的符号通常标识相似的部件。本文描述的说明性实施方式、附图和权利要求并不旨在作为限制性的。在不脱离本文所出现的主题的精神或范围的前提下,可以利用其它实施方式,以及可以进行其它改变。如本文一般地描述地,并且在附图中图示的,本公开的方面可以以广泛的各种不同的配置被布置、替代、组合和设计,所有这些在本文中都被明确地构想到并作为本公开的部分。

本公开总体上尤其关注涉及节能的动态缓存调整的方法、装置、系统、设备和计算机程序产品,比如例如动态地调整DRAM缓存。

简单来说,本文所描述的技术总体上包括涉及用于降低芯片多处理器中的DRAM缓存的能量消耗的动态缓存调整的方法和系统。可以通过调整DRAM缓存的刷新间隔或通过将DRAM缓存的路级功率控制(way power-gating)和调整刷新间隔相结合来执行动态缓存调整。

如上所述,用于增强处理器性能的一项技术是在单个处理器芯片中利用大量的处理器核或裸片(die)。因为更大的片上缓存总体上可以转化为减少的延迟,所以可以通过在高密度动态随机存取存储器(DRAM)中而不是在静态随机存取存储器(SRAM)中实现这样的片上末级缓存来进一步提高性能。然而,利用大容量DRAM作为片上缓存会极大地加剧主芯片中的“功率墙(power wall)”效应,使得与大得多的缓存大小相关联的主芯片中的性能提高可能被通过由大容量DRAM缓存施加的能量预算约束大大地抵消。具体地,大容量DRAM缓存的更大能量需求可能显著地降低可用于给一些或所有处理器核供电的能量预算。

DRAM设备的能量消耗的重要部分可以是由于在操作期间使用的刷新能量。不像SRAM单元,DRAM单元包括或者带电的(表示“1”的比特值)或者不带电的(表示“0”的比特值)的电容器。电荷随着时间的流逝而泄露,并且通过读出一排DRAM单元然后在该排DRAM单元中恢复每个电荷来以特定的刷新间隔进行周期地刷新,例如每64ms进行一次。为了防止特定的DRAM排中的数据的丢失,可为DRAM排中的泄露最严重的DRAM单元选择等于或小于“保留时间(retention time)”的刷新间隔,其中保留时间是在其中DRAM单元保留有足够的电荷而没有丢失数据的时间周期。

在主存储器中使用的分离DRAM设备中,刷新功率可以构成由DRAM设备消耗的总功率的相对小部分。例如,在2吉字节(GB)时代DRAM设备中,刷新功率可以在所消耗的总功率的大约10%的数量级上。但是对于后代的DRAM,由于与一致地制造这样的小晶体管相关联的增长变化性,用于实现这样的存储密度的晶体管小型化总体上也可以包含制造变化中的增长。因此,DRAM设备的刷新间隔相应地被降低以适应泄露最严重的DRAM单元的阈值电压,大大地增加了DRAM设备所消耗的刷新功率的量。例如,据估计,64GB时代的DRAM设备的刷新功率可以是在这样的设备消耗的总功率的45%的数量级上或更多。此外,实现为片上缓存的DRAM可以以更高的温度而进行操作,并且因此可以比用于主存储器的分离的DRAM设备显著地更严重泄露。因此,实现为片上缓存的DRAM的刷新间隔可以包含甚至更短的刷新间隔,使得刷新能量可以消耗与分离的DRAM设备对比较大部分的总功率。

鉴于以上,提高芯片多处理器中的能量效率的可能途径是减低与这样的多芯片处理器的DRAM缓存相关联的能量消耗。根据本公开的实施方式,动态缓存调整的系统和方法可以用于降低芯片多处理器中的DRAM缓存的能量消耗。具体地,动态缓存调整可以通过调整DRAM缓存的刷新间隔或通过将路级功率控制和调整刷新间隔相结合来执行。下文结合图5-8描述调整刷新间隔和路级功率控制的技术。

图1是根据本公开的至少一些实施方式而布置的示例计算设备100的框图。计算设备100可包括形成在单个处理器芯片101上的单核或多核处理器,并且可配置为根据本公开的一个或多个实施方式来执行动态缓存调整。计算设备100可至少包括中央处理单元(CPU)110或其他的处理器单元、DRAM缓存120、标签RAM 130、和缓存控制器140,所有这些可在处理器芯片101上形成。可选地,CPU 110、DRAM缓存120、标签RAM130和缓存控制器140中的一个或多个可以在一个或多个分离但是紧密地放置的IC芯片上、比如通过裸片堆叠而形成。除了处理器芯片101,计算设备100可以包括系统接口150、系统总线160、和主存储器170,所有如图所示布置。

应当注意,图1中的计算设备100的实施方式配置有透视缓存架构,其中缓存控制器140放置在CPU 110和系统接口150之间。在透视缓存架构中,缓存控制器140在允许处理器数据请求传递给系统总线160之前监视处理器总线周期。在其他实施方式中,计算设备100可以配置有后备缓存架构(或任何其他技术上可行的缓存架构)。

还被称为总线接口单元的系统接口150可以是CPU 110和系统总线160之间的接口。系统总线160可以耦接计算系统100的主要的各种部件,并且可以包括携带信息的数据总线、确定这样的数据被发送至何处的地址总线、和携带来自CPU 110的命令以及返回来自计算系统100的各种设备的状态信号的控制总线。主存储器170可以包括计算设备100的主存储器,并且可以是易失性存储器,比如随机存取存储器(RAM)。

CPU 110可以是任何技术上可行的处理器或适合于形成在处理器芯片101上的处理器核。总体来说,CPU 110可以配置为处理一个或多个应用或软件应用的执行线程。当CPU 110从主存储器170中的存储位置读取数据(以及在某些情况下写入数据)时,首先检查DRAM缓存120(具体地,下面描述的标签记RAM 130)那个数据的副本。当确定副本是在DRAM缓存120中时,CPU 110可以从DRAM缓存120中立即读取(或可以向其写入),其或许是比从主存储器170中读取或向其写入快得多的过程。尽管图1所示的计算设备100的实施方式包括单个CPU 110,但是在其他实施方式中,计算设备100可以包括每个耦接到缓存控制器140的多个处理器核和/或多个CPU 110。在这样的实施方式中,多个CPU 110中的一些或所有在配置上可以大体上相同的,以及在其他实施方式中,多个CPU 110中的一些或所有可以包括各种处理器核配置,比如专用于例如图形处理单元等特定应用的配置。此外,在一些实施方式中,CPU 110中的一些或所有可以包括用于指令缓冲区和数据缓冲区的缓存,有时称为“L1缓存”,以及在某些情况下,如果在L1缓存中发生缓存缺失,那么可以检查附加缓存级(称为“L2缓存”)。在其他实施方式中,DRAM缓存120可以是与CPU或多个CPU 110相关联的唯一的缓存。在又一些实施方式中,DRAM缓存120可以配置为计算设备100的一个或多个CPU 110的L2缓存。在其他实施方式中,DRAM缓存120可以配置为比L1缓存或L2缓存更高级的缓存,比如L3缓存。在这样的实施方式中,DRAM 120可以由计算设备100的多个CPU 110共享,或可选选地可以作为专用于单个CPU 110的L3缓存。

DRAM缓存120可以包括专用于计算设备100的单个CPU的缓存,或者可以是由计算设备100的多个CPU 110共享的缓存,并且可以被配置为降低与CPU 110读和写操作相关联的延迟。因此,DRAM缓存120可以包括比主存储器170更小和更快的一个或多个DRAM设备或结构,并且可以配置为存储通常也被存储在主存储器170中的更频繁使用的数据的副本。因为DRAM缓存120的存储容量中的一些、最多或甚至基本上所有可以是DRAM而不是SRAM,刷新功率可构成DRAM缓存120在操作中消耗的总功率的重要部分。根据下文描述的本公开的实施方式,DRAM缓存120的刷新功率可以最小化,或者根据CPU 110当前要求的缓存容量以其它方式有利地降低。这样,计算设备100的更多能量预算可以针对CPU110,从而促进更高的性能,尤其当计算设备100可以是芯片多处理器时。标签RAM 130可以配置为存储和追踪存储在DRAM缓存120中的数据的地址。因此,当CPU 110从主存储器170中的存储位置中读取(并且在某些情况下写入)时,针对该存储位置首先检查标签RAM 130。当该存储器位置是作为标签RAM 130的条目出现时,感兴趣的数据的副本可出现在DRAM缓存120中,并且因此或许不需要访问主存储器170。还被称作TRAM的标签RAM 130可以包括用于存储被存储在DRAM缓存120中的数据的地址。在一些实施方式中,标签RAM 130可以包括一个或多个DRAM设备、一个或多个SRAM设备、或两者的组合。

缓存控制器140可以配置为控制计算设备100的缓存操作,包括:监测用于访问包含在DRAM缓存120中的存储位置的地址线(“侦听”)、从数据线中获得信息以用于更新缓存以及用于维护缓存一致性(“抽取”)、更新DRAM缓存120和标签RAM130、实现写入策略、确定存储请求是否可缓存、以及确定请求是否缓存命中的或缺失的,和/或其它操作或其组合。根据本公开的一些实施方式,缓存控制器140还可以配置有测试模块141、缓存功率管理器142、有效块表143、和有效边界表144中的一个或多个,其依次地可以至少部分地被实施在硬件、软件或其他计算机可读指令、或其组合中。

测试模块141可以包括配置为确定有效块表143和/或有效边界表144中的条目的逻辑电路。总体来说,在计算设备100的正常操作之前,确定这样的条目的过程可以在计算设备100的正常操作之前的某一时间执行,例如作为制造和/或测试过程的一部分。下文结合图2A-D描述有效块表143的构造,并且下文结合图3-8描述有效边界表144的构造。在一些实施方式中,测试模块141可以实现为布置在CPU 110中的一个或多个中的逻辑的子单元,而不是作为如图1所示的缓存控制器140中的一部分。

缓存功率管理器142可以包括逻辑电路,被配置为针对当前CPU 110要求的特定的缓存容量确定何种(若有的话)动态缓存调整应该由缓存控制器140执行,以及实现这样确定的动态缓存调整。例如,缓存功率管理器142可以确定是否应该调整DRAM缓存120的刷新间隔,和/或是否应该在DRAM缓存120中实现路级功率控制以降低其能量消耗。在一些实施方式中,缓存功率管理器142可以通过比较当实现路级功率控制时DRAM缓存120的计算出的能量消耗和当DRAM 120的刷新间隔增加时DRAM 120的计算出的能量消耗,来针对CPU 110要求的特定的缓存容量进行这样的确定。在一些实施方式中,缓存功率管理器142可以通过参考有效边界表144来进行这样的确定。下文结合图3描述使用有效边界表144确定是否应该调整DRAM缓存120的刷新间隔和/或是否应该在DRAM缓存120中实现路级功率控制。在一些实施方式中,缓存功率管理器142可以实现为布置在CPU 100中的一个或多个中的逻辑的子单元,而不是作为如图1所示的缓存控制器140的一部分。

有效块表143可以针对特定的刷新间隔指示DRAM缓存120中的什么存储器块用来保留数据。例如,在一些实施方式中,针对计算设备100配置来进行操作的每一个刷新间隔,有效块表143可以包括有效块子表,该有效块子表指示哪些块可靠地保留数据(例如,具有“1”值)和哪些块不可靠地保留数据(例如,具有“0”值)。图2A-2D中图示这样的子表中的一个实施例。

图2A-2D图示分别地包含在有效块表143中的示例有效块子表210、220、230、和240的实施方式。示例有效块子表210、220、230、和240中的每一个可以指示在DRAM缓存120中的哪些块以DRAM缓存120的各自不同的刷新间隔保留和不保留数据。在图2A-2D中图示的实施方式中,有效块子表210、220、230、和240可以配置用于具有4路(4-way)相关联的缓存架构的DRAM缓存120,并且因此有效块子表210、220、230、和240中的每一列可表示DRAM缓存120中的一“路”。然而,有效块子表210、220、230、和240只是当DRAM缓存120具有任何技术上可行的缓存架构时才可以有效地使用,例如完全相关联缓存、2路相关联、8路相关联缓存、16路相关联缓存等。

图2A图示有效块子表210,其指示DRAM缓存120的块中的哪些以例如64ms的刷新间隔来保留数据。因为在该实施方式中,DRAM缓存120被制造用于具有64ms的刷新间隔的正常操作,DRAM缓存120的块中的所有或基本上所有可以以该刷新间隔来保留数据。所以,有效块子表210中的每个条目是“1”值,并且DRAM缓存120的有效容量被指示为是24块(DRAM缓存120的100%)。

图2B图示有效块子表220,其指示DRAM缓存120的块中的哪些以大于与有效块子表210相关联的刷新间隔、例如128ms而不是64ms来保留数据。如图所示,以128ms的刷新间隔,在该情况下,DRAM缓存120的块中的少数已经被预先确定不能够保留数据,使得23块(DRAM缓存120中的96%)保留数据。同样地,图2C图示有效块子表230,指示DRAM缓存120的块中的哪些以256ms的刷新间隔来保留数据(DRAM缓存120中的20块或80%),以及图2D图示有效块子表240,指示DRAM缓存120的块中的哪些以512ms的刷新间隔来保留数据(DRAM缓存120中的14块或58%)。以更长的刷新间隔,其可以降低由DRAM缓存120消耗的刷新功率,更少的块可以保留数据,因此降低DRAM缓存120的有效容量。

在有效块子表210、220、230、和240中输入的值可在计算设备100的正常操作之前确定,或者在当操作环境实质上被改变时的操作期间确定。例如,在制造过程的测试部分期间,刷新间隔测试可在位模式被写入DRAM缓存120的过程中执行,允许特定的刷新间隔流逝,然后检测错误。这样的测试可以通过由CPU运行的软件应用、通过外部测试设备、或通过测试模块141来实现,并且测试的结果可存储在有效块表143中的合适的有效块子表中。因此,在一示例中,64ms刷新间隔错误测试的结果可记录在有效块子表210中,128ms刷新间隔错误测试的结果可记录在有效块子表220中,256ms刷新间隔错误测试的结果可记录在有效块子表230中,以及512ms刷新间隔错误测试的结果可记录在有效块子表240中。有效块子表210、220、230、和240可作为指南来查询以确定放置最近进来的块的缓存线。

返回到图1,当实现增加的刷新间隔和/或路级功率控制级别时,有效边界表144可以包括针对DRAM缓存120的各个动态缓存调整配置和DRAM缓存120的对应的有效缓存容量。例如,在一些实施方式中,有效边界表144可以配置为查找表,该查找表针对给定的有效缓存容量指示特定的动态缓存调整配置。因此,在这样的实施方式中,给定CPU 110要求的目标最小的(或者另外降低的)缓存容量,缓存控制器140可以针对DRAM缓存120来选择合适的刷新间隔和/或路级功率控制级别,使得CPU110可以正常地操作,尽管DRAM缓存120消耗较少的功率。图3中图示有效边界表144的一个这样的实施方式。

图3图示根据公开的实施方式的有效边界表144的实施方式。如图所示,有效边界表144可以配置为查找表,并且可以包括:一系列DRAM缓存120的一系列示例有效缓存容量301、针对DRAM缓存120的一系列示例对应的缓存刷新间隔、和在一些实施方式中,针对DRAM缓存120的一系列示例对应的路级功率控制级别303。同时,每对缓存刷新间隔302和路级功率控制级303可以限定DRAM缓存120的特定的示例缓存功率配置320,其中每个特定的缓存功率配置320可以提供唯一的有效缓存容量301。作为参考,图3中还示出示例结果DRAM功率消耗比率403,其对应每个缓存功率配置320,但是实际上不必包含在有效边界表144中。结果DRAM功率消耗比率304图示随着路级功率控制级303(在DRAM缓存120中缓存路级功率控制的数量)增加,以及随着缓存刷新间隔302增加,越来越少的功率可以被DRAM缓存120消耗。此外,有效缓存容量301还可以减少。因此,当CPU 110与小于100%的缓存容量操作时,缓存功率管理器142可以使用有效边界表144来选择缓存功率配置320,因为有效边界表144可以指示哪个缓存功率配置320具有合适的有效缓存容量301,其具有最低的(或另外降低的)结果DRAM功率消耗比率304。

存在许多情况其中小于100%缓存容量可以被CPU 100使用。例如,在计算设备100是可移动设备的实施例中,电池寿命可以通过使由DRAM缓存120中CPU 110要求的缓存容量作为计算负载的函数而被延长。因此,当DRAM缓存120被多个处理器核共享为L3或其他高级缓存时,当一个或多个专用核闲置时(比如专用于网页浏览器的核),DRAM缓存120的对应部分还可以是未被使用的,并且被CPU或多个CPU110使用的有效缓存容量可以小于100%。

在图3中所示的实施方式中,有效边界表144针对DRAM缓存120提供有效缓存容量301和缓存功率配置320,DRAM缓存120配置有例如16路关联性(并因此包括可被独立功率控制的16路缓存),并且可以以至少例如64ms、512ms、和1024ms的刷新间隔来进行操作。然而,有效边界表144也可以针对DRAM缓存120的任何其他技术上可行的配置来布置。例如,有效边界表144可以包括比图3所示的更多或更少的缓存刷新间隔302和/或更多或更少路级功率控制级303。

现在描述了根据本公开的实施方式的、用于填充有效边界表144的条目的各种方法。在一些实施方式中,有效边界表144可以只包括缓存刷新间隔302和针对每个刷新间隔302表示的、DRAM缓存120的对应的有效缓存容量301。因此,有效边界表144可以不包括针对DRAM缓存120的各个路级功率控制级303,以及被缓存功率管理器142使用的用来降低DRAM缓存的能量消耗的动态缓存调整可以只基于改变DRAM缓存120的缓存刷新间隔302。在这样的实施方式中,填充有效边界表144的条目可以是相对地简单。例如,如上面结合图2A-2D所描述的,在针对处理器芯片101的制造过程的测试部分期间,刷新间隔测试可以由外部测试设备或由测试模块141来执行,其中位模式可以被写入DRAM缓存120,并且允许特定的刷新间隔流逝。针对基于在刷新间隔期间保留数据的DRAM缓存120的缓存线的数量测试的每个刷新间隔,将有效缓存301的合适值存储在有效边界表144中。

在一些实施方式中,这样所测试的刷新间隔可以一致地改变,例如所测试的刷新间隔可以包括在DRAM缓存120中的所有或基本上所有的存储块可靠地保留数据的基础刷新间隔(例如,64ms),和大于基础刷新间隔的特定时间间隔(例如,64ms,48ms等)的倍数的其他刷新间隔。因此,在这样的实施方式中,这样所测试的刷新间隔可以是例如64ms、128ms、192ms、256ms、320ms等。在其他实施方式中,所测试的刷新间隔可以包括以在DRAM缓存120中的所有或基本上所有的存储块可靠地保留数据的基础刷新间隔(例如,64ms),并且随后待测试的刷新间隔可以时间段内几何地增加,使得每个刷新间隔可以是先前刷新间隔(例如,128ms、256ms、512ms、1024ms等)的整数倍(例如双倍)。用于选择待测试的刷新间隔的上述描述的技术中的每个可以在计算上是有效的。然而,用于针对DRAM缓存120来选择刷新间隔的任何其他技术可以采用。

可选择地,在其他实施方式中,有效边界表144可包括针对DRAM缓存120的每个缓存功率配置320的或者缓存刷新间隔302或者DRAM缓存120的路级功率控制级,以及DRAM缓存120的对应有效缓存容量。因此,针对特定的目标缓存容量,有效边界表144可以指示这两个动态缓存调整技术中的哪个可以被用于降低DRAM缓存120的能量消耗,同时仍然为CPU 100提供有效缓存。下面结合图4描述了根据这样的实施方式的、用于填充有效边界表144的条目的方法。

图4是图示根据本公开的实施方式的、针对由缓存控制器140实施的两种动态缓存调整技术的示例有效缓存容量(x-轴和结果DRAM功率消耗比率(y-轴)。曲线401表示路级功率控制的动态缓存调整技术的示例,曲线402表示增加的刷新间隔的动态缓存调整技术的示例。简单的讨论并且举例来说,针对用于构建图2A-2D中的有效块子表210、220、230和240的DRAM缓存120的4路相关联的缓存配置示出曲线401和曲线402。因此,曲线401包括对应于DRAM缓存120的示例五个可能路级功率控制级的五点401A-401E(其中或者0、1、2、3、或者4缓存路分别地被控制)。同样地,曲线402包括对应于在该实施方案中以示例五个不同的刷新间隔(分别是64ms、128ms、256ms、512ms和1024ms)来测试DRAM缓存120的五个点402A-402E。

当刷新间隔与DRAM缓存120的正常操作刷新间隔相比首次增加时,通过增加刷新间隔来动态缓存调整的特征是显著降低可发生的刷新能量。图4所示的刷新能量的急剧的降低是在对应于64ms的刷新间隔的点402A和对应于256ms的刷新间隔的点402C之间。然而,因为在DRAM缓存120中的支持电路当刷新间隔增加时或许不被关闭,比如解码器和读出放大器,所以对于能量消耗降低多少或许存在限制,即使当刷新间隔被延长至非常长的持续时间,比如1024ms以及更长。因此,DRAM缓存120的刷新间隔可以具有足够长的持续时间,使得基本是没有缓存线可以可靠地保留数据(0%容量),并且结果DRAM功率消耗比率仍然可以是重要的。

图4示出该效应,其中曲线402变的显著地平坦,并且以E0+En的值与y-轴(指示0%有效缓存容量)相交,其中E0=由DRAM缓存120消耗的能量的最小量,即使当其所有的缓存路被控制时,比如睡眠晶体管功率,以及En=除了刷新能量外由DRAM缓存120消耗的所有附加能量,比如由读出放大器、解码器、标签阵列等消耗的能量。通过等式1描述的曲线402是描述目标缓存容量C的能量消耗随着刷新间隔增加的函数,其中EIRI(C)=当增加的刷新间隔被用于实现目标缓存容量C时由DRAM缓存120消耗的能量,Er=由DRAM缓存120消耗的刷新能量,i(C)=需要实现目标缓存容量C的刷新间隔,以及i0=以DRAM缓存120具有基本上100%的容量的初始刷新间隔(例如,64ms):

<mrow> <mi>E</mi> <mi>I</mi> <mi>R</mi> <mi>I</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>E</mi> <mn>0</mn> </msub> <mo>+</mo> <msub> <mi>E</mi> <mi>n</mi> </msub> <mo>+</mo> <mfrac> <msub> <mi>i</mi> <mn>0</mn> </msub> <mrow> <mi>i</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <msub> <mi>E</mi> <mi>r</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

应当注意,连接点402A-402D的曲线402的虚线表示由点402A-402D表示的刷新间隔的值之间的连续的可能刷新间隔值对应的EIRI(C)的值,在曲线402上所选择的点402A-402D在其上不可以均匀地分布。还应当注意,最初EIRI(C)由于两个因素或许非常迅速地下降。第一因素,刷新间隔可以以指数比率、例如以i0*2,i0*4,i0*8等的步数增加。因此,表达式i0/i(C)最初可以很快地下降,但是随着目标缓存容量接近0%可以变平坦。第二因素,i(C)可以与DRAM缓存120中的DRAM单元的保留时间直接地相关,例如C=Pr[保留时间>i]。由于DRAM单元的保留时间分布可以是对数正态的,那么i(C)可以随着最初C的甚至较小减少而显著地增加,但是在某种程度上进一步,增加可以涉及C的较大减少。

如通过等式1所描述的,与通过增加刷新间隔来执行动态缓存调整对比,功率控制缓存路可以更加逐步地降低能量消耗。具体地,功率控制缓存路可以基本是线性地降低由DRAM缓存120消耗的能量,因为针对每个缓存路的大多数支持电路还可以被关闭。因此,通过等式2可以描述的曲线401是描述当缓存路被功率控制时,目标缓存容量C的能量消耗的函数,其中EWPG(C)=当路级功率控制被用于实现目标缓存容量C时由DRAM缓存120消耗的能量,其中C0=当所有的缓存路在使用时,DRAM缓存120的最大缓存容量:

<mrow> <mi>E</mi> <mi>W</mi> <mi>P</mi> <mi>G</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>E</mi> <mn>0</mn> </msub> <mo>+</mo> <mfrac> <mi>C</mi> <msub> <mi>C</mi> <mn>0</mn> </msub> </mfrac> <mrow> <mo>(</mo> <msub> <mi>E</mi> <mi>r</mi> </msub> <mo>+</mo> <msub> <mi>E</mi> <mi>n</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

如图4所示,存在增加刷新间隔或许比路级功率控制更有吸引力的场景,以及存在其中路级功率控制或许比增加刷新间隔更有吸引力的场景。例如,如果CPU 110要求某目标缓存容量X,那么缓存功率管理器142可以将目标缓存容量X与有效边界表144(如图3所示)中的、超过X的最小有效缓存容量301比较。因此,在一些实施方式中,图4中的所谓的“有效边界”410(用实线表示)可以被用于针对图3中的有效缓存容量301的每个值来确定DRAM缓存120的特定缓存功率配置320。具体地,针对特定的目标缓存容量320,动态缓存调整的两种技术中的一个可以用于配置DRAM缓存120(或者路级功率控制或者增加的刷新间隔)。所选择的技术是使DRAM缓存120能够以至少具有目标缓存容量的最低的(或另外降低的)结果DRAM功率消耗比率的技术。换句话说,沿着有效边界410的、或者曲线401或者曲线402的点可以针对不同的缓存容量320用在有效边界表144中。

例如,CPU 110可以与至少25%的有效缓存容量对应于正确操作的缓存控制器140通信。如图4所示,在25%的缓存容量的DRAM缓存120利用路级功率控制(曲线401)比利用降低的刷新间隔(曲线402)的可使用显著地较少的能量。所以,针对至少25%的有效缓存容量,在DRAM缓存120中实现的缓存功率配置320可以对应于点401D,其中DRAM缓存120的四个缓存路中的三个可以进行功率控制。在另一示例中,CPU 110可以与至少75%的有效缓存容量对应于正确操作的缓存控制器140通信。如图4所示,在75%的缓存容量的DRAM缓存120可以利用降低的刷新间隔(曲线402)使用显著地少于利用路级功率控制(曲线401)的能量。所以,针对至少75%的有效缓存容量,在DRAM缓存120中实施的缓存功率配置320可以对应于点402C,其中DRAM缓存120可以利用256ms的刷新间隔进行操作并且没有缓存路被功率控制。因此,在这样的实施方式中,选择或者降低的刷新间隔或者路级功率控制来降低DRAM缓存120的功率消耗可取决于CPU 100需要的特定的目标缓存容量。

在一些实施方式中,降低的刷新间隔和路级功率控制两者的组合可用于生成混合有效边界,该混合有效边界针对特定的目标缓存容量可进一步降低由DRAM缓存120消耗的能量。在这样的实施方式中,降低的刷新间隔和某级的路级功率控制两者可用于一些目标缓存容量,以及对于其他目标缓存容量,仅可使用降低的刷新间隔。因此,不像图4中的有效边界410,混合有效边界可包括表示降低的刷新间隔和路级功率控制两者的组合的点,而不是仅仅包括表示或者降低的刷新间隔或路级功率控制的点。图5中图示这样的混合有效边界的实施方式。

图5是根据本公开的实施方式针对混合有效边界520(实线)说明示例有效缓存容量(x-轴)与结果DRAM功率消耗比率(y-轴)的关系,以及由缓存控制器140采用的两种动态缓存调整技术的表。相似于图4中的曲线401,曲线501表示针对DRAM缓存120的4路相关联缓存配置的路级功率控制的动态缓存调整技术的示例以及,相似于图4中的曲线502,曲线502表示DRAM缓存120的该配置的增加的刷新间隔的动态缓存调整技术的示例,并且包括点502A-502E。如图5所指示,混合有效边界520对应于曲线502和曲线510的部分。

曲线510表示由DRAM缓存120中实施的路级功率控制和增加的刷新间隔的各个组合形成的混合有效边界520的一部分的示例。因此,点510A、510B、和510C每个可以表示DRAM缓存120的特定的缓存功率配置,该特定的缓存功率配置包括一定级的路级功率控制和增加的刷新间隔两者。例如,当DRAM缓存120配置为利用受控的四个缓存路功率中的一个和利用等于与点502C相关联的刷新间隔的增加的刷新间隔来操作时,点510A可以指示DRAM缓存120的结果DRAM功率消耗比率;当DRAM缓存120被配置为利用受控的四个缓存路功率中的两个和利用与点502C中的同样的刷新间隔来操作时,点510B可以指示DRAM缓存120的结果DRAM功率消耗比率;当DRAM缓存120被配置为利用受控的四个缓存路功率中的三个和利用与点502C中的同样的刷新间隔来操作时,点510C可以指示DRAM缓存120的结果DRAM功率消耗比率。

如图5所示,针对与点502C相关联的缓存容量的、小于大约80%的缓存容量,提供最低的(或另外降低的)能量消耗的、DRAM缓存120的缓存功率配置可以是与混合有效边界520的曲线510相关联的那些。应当进一步注意,与仅仅使用增加的刷新间隔(即,曲线502)相比,针对小于大约80%的缓存容量,在该特定的示例中,混合有效边界520可以提供更多的缓存功率配置。例如,在图5所示的混合有效边界520的示例中,DRAM缓存120可以利用点510A、510B、和510C表示的缓存功率配置来操作。与此相反,曲线502可以只包括作为针对小于大约80%的缓存容量的DRAM缓存120的可能缓存功率配置。

图6阐述根据公开的实施方式的、概述示例方法600以构建混合有效边界520的流程图。方法600可以包括由块601-630中的一个或多个图示的一个或多个操作、功能或动作。尽管以先后顺序图示块,但是还可以以并行、和/或以不同于本文所描述的那些的顺序来至执行这些块。同样地,各个块可以基于特定的实施而被组合成较少的块、被分成附加的块、和/或被消除。可以提供表示其他操作、功能或动作的附加块。尽管结合图1中的计算设备和图5中的混合有效边界520来描述了方法600,但是被配置为执行方法600的任何适合的计算设备是在该公开的范围内。

方法600可以以块601开始(“针对多个刷新间隔确定DRAM缓存的有效缓存容量”),其中测试模块141(或任何其他适合地被配置的软件、固件或逻辑电路实体)可以针对各个期间的多个刷新间隔来确定DRAM缓存120的有效缓存容量。例如,在一些实施方式中,在计算设备100的正常操作之前,测试模块141可以在DRAM缓存120上执行刷新间隔测试,比如测试或制造过程的部分。这样测试的刷新间隔可以统一地改变,例如测试的刷新间隔可以包括基础刷新间隔和大于基础刷新间隔的附加刷新间隔,该附加的刷新间隔是大于基础刷新间隔的基础刷新间隔的倍数或特定刷新间隔的倍数(例如,64ms、128ms、192ms、256ms、320ms等)。在一些实施方式中,附加刷新间隔可以在持续时间内几何级数地增加,使得附加刷新间隔中的每个是先前刷新间隔(例如,128ms、256ms、512ms、1024ms等)的整数倍。在一些实施方式中,所测试的附加刷新间隔选择在图5中的曲线402的“弯处”附近,以更精确地确定DRAM缓存120的缓存容量在什么刷新间隔开始快速地减少。这样测试的结果可以被用于填充缓存控制器140中的有效块表143。

在块602(“构造缓存容量与结果DRAM功率的关系曲线”)中,与缓存控制器140相关联的测试模块141、缓存功率管理器142、或任何其他适当地配置的软件、固件或逻辑电路实体可以使用在块601中确定的有效缓存容量来构造缓存容量与结果DRAM功率消耗比率的关系的曲线(例如,图5中的曲线402)。

在块603(“在多个点计算所构造的曲线的斜率”)中,与缓存控制器140相关联的测试模块141、缓存功率管理器142、或任何其他适当地配置的软件、固件或逻辑电路实体可以使用任何适当的数值方法来计算沿着曲线402的斜率。

在块604(“选择构造的曲线的最右面的点”)中,与缓存控制器140相关联的测试模块141、缓存功率管理器142、或任何其他适当地被配置的软件、固件或逻辑电路实体可以确定混合有效边界520的点。例如,在一实施方式中,这样的过程可以在曲线402的最右面的点开始,其可表示DRAM缓存120的最高的能量消耗和最高的缓存容量。

在块605(“将选中的点处的斜率与从选中的点到y-截距的线的斜率进行对比”)中,缓存控制器140可以将在选中的点处的曲线402的斜率(或者在块604中或在块613中)与通过将选中的点和y-截距连接而获得的虚线的斜率(例如,E0)进行比较。

在块606(“线的斜率<曲线的斜率?”)中,缓存控制器140可以确定在块605中限定的虚线的斜率是否小于在块604中选择的最右面点处的曲线402的斜率。如果是在块605中(限定的虚线的斜率小于或等于在块604中选择的点处的曲线402的斜率),那么方法600可以转到611。如果不是(限定在块605中限定的虚线的斜率大于在块604中选择的点处的曲线402的斜率),那么方法600可以转到块621。

在块611(“将选中的点添加到混合有效边界”)中,缓存控制器140可以假设在块604中选择的曲线402的点可以认为是混合有效边界520的一部分,以及将与该点相关联的信息(有效缓存容量301、缓存刷新间隔302、结果DRAM功率消耗比率304等)添加到有效边界表144。

在块612(“在曲线上剩下的点?”)中,缓存控制器140可以确定是否存在在块611中添加到有效边界表144的点中的剩下的、曲线402上的剩下的点。如果是,那么方法600可以转到块613。如果不是,那么方法600可以转到块630。

在块613(“在曲线上选择下一个点”)中,缓存控制器140可以选择块611中被添加到有效边界表144的点的左边的曲线402的下一个点,以及方法可以转回到块605。

在块621(“确定混合有效边界的混合部分的点”)中,缓存控制器140可确定组成混合有效边界520的部分510的点。例如,在一些实施方式中,缓存控制器140可以确定图5中沿着从添加到有效边界表144的最后点至y-截距(例如,E0)的线的点。在一些实施方式中,当利用特定的级别路级功率控制别和以添加到有效边界表144的最后点的刷新间隔两者来操作时,这些添加的点可以对应于DRAM缓存120。这样,可以确定部分510,使得针对小于与在块613中添加到有效边界表144的最后点相关联的有效缓存容量,由DRAM缓存120消耗的能量显著地小于仅仅利用路级功率控制或增加的刷新间隔所消耗的能量。

在块630(“通过缓存功率管理器来制作可用于使用的混合效率曲线”)中,方法600可结束,以及在计算设备100的操作期间,可以通过缓存功率管理器142来使有效边界表144可用于使用。

图7阐述了根据公开的实施方式的、概述在易失性存储设备(比如DRAM缓存120)中动态地缓存调整的示例方法700的流程图。方法700可以包括如块701-703中的一个或多个所示的一个或多个操作、功能或动作。尽管这些块以先后顺序被图示,但是这些块还可并行、和/或以不同于本文所描述的那些顺序而被执行。同样地,各个模块可以基于特定的实现方式组合成更少模块、被分成附加模块、和/或被消除。可以提供表示其他操作、功能或动作的附加块。尽管结合图1的计算设备100描述了方法700,但是被配置为执行方法700的任何合适的计算设备是在本公开的范围内。

方法700可以从块701(“针对DRAM缓存接收目标存储容量”)开始,其中缓存控制器140可以针对与计算设备100相关联的易失性存储器、比如DRAM缓存120来接收目标存储容量。例如,在块701中,缓存控制器140可以接收来自计算设备100的CPU 110的目标存储容量。

在块702(“针对DRAM缓存选择刷新间隔,使得DRAM缓存的有效缓存容量>=目标存储容量”)中,缓存控制器140可以针对DRAM缓存120选择刷新间隔,使得DRAM缓存120的有效缓存容量等于或大于目标存储容量。在一些实施方式中,缓存控制器140可以基于其中的有效缓存容量条目从有效块表143或从有效边界表144选择针对的DRAM缓存120的刷新间隔。因此,在这样的实施方式中,基于DRAM缓存120的经测量的数据存储容量,所选择的刷新间隔可以是先前测试的刷新间隔。在计算设备100的正常操作之前,经测量的数据存储容量可以被测量,同时DRAM缓存120以先前测试的刷新间隔来测试。

在块703(“以选中的刷新间隔来操作DRAM缓存”)中,缓存控制器140可以以在块702中选中的刷新间隔来操作DRAM缓存120,使得DRAM缓存120具有经修改的数据存储容量,该经修改的数据存储容量等于或大于目标缓存容量。在这样的实施方式中,在接收目标存储容量之前、比如在计算设备100的正常操作之前的测试过程期间,可以针对刷新间隔确定经修改的数据存储容量。例如,DRAM缓存120的经修改的数据存储容量可以作为条目而包含在或者有效块表143或者有效边界表144中。

在一些实施方式中,在块703中,缓存控制器140还可以功率控制DRAM缓存120的一部分连同以在块702中选择的选中的刷新间隔操作DRAM缓存120。例如,当缓存控制器140使用有效边界表144以针对DRAM缓存选择刷新间隔时,功率控制的级别在有效边界表144中与在块702中所选择的选中的刷新间隔可以是相关联的。因此,DRAM缓存120的经修改的数据存储容量可以是结合以选中的刷新间隔操作DRAM来功率控制DRAM缓存120的一部分的结果。

在这样的实施方式中,缓存控制器140可以首先检查功率控制DRAM缓存120的一部分是比仅仅增加DRAM缓存120的刷新间隔更有效。例如,在功率控制DRAM缓存120的一部分之前,缓存控制器140可以进行:i)确定与结合以选中的刷新间隔操作DRAM缓存120来功率控制易失性存储设备的部分相关联的、DRAM缓存120的第一节能;ii)确定与以选中的刷新间隔操作DRAM缓存120相关联的、DRAM缓存120的第二节能;以及iii)确定第一节能大于第二节能。

图8阐述了根据公开的实施方式的、概述在易失性存储设备(比如DRAM缓存120)中动态地缓存调整的示例方法800的流程图。方法800可以包括如块801-804中的一个或多个所示的一个或多个操作、功能或行为。尽管这些块以先后顺序被图示,但是这些块还可并行、和/或以不同于本文所描述的那些顺序而被执行。同样地,各个模块可以基于特定的实施方式而被组合成更少模块、被分成附加模块、和/或被消除。可以提供表示其他操作、功能或行为的附加块。尽管结合图1的计算设备100描述了方法800,但是被配置为执行方法800的任何合适的计算设备是在本公开的范围内。

方法800可以从块801开始(“针对DRAM缓存接收目标存储容量”),其中缓存控制器140可以针对与计算设备100相关联的易失性存储设备、比如DRAM缓存120来接收目标存储容量。例如,在块801中,缓存控制器140可以接收来自计算设备100的CPU 110的目标存储容量。

在块802(“确定与功率控制DRAM缓存的一部分相关联的第一节能”)中,缓存控制器140可以确定与功率控制DRAM缓存120的一部分相关联的、DRAM缓存120的第一节能量,其中不被功率控制的DRAM缓存120的剩余部分可以具有等于或大于目标缓存容量的数据存储容量。

在块803(“确定与以增加的刷新间隔来操作DRAM缓存相关联的第二节能”),缓存控制器140可以确定与以选中的刷新间隔来操作DRAM缓存120相关联的、DRAM缓存120的第二节能。可以选择刷新间隔,使得当以选中的刷新间隔来操作DRAM缓存120时,易失性存储设备的数据存储容量可以等于或大于目标缓存容量。

在块804(“功率控制DRAM缓存的部分”)中,当缓存控制器140确定第一节能多于第二节能时,缓存控制器140可以功率控制DRAM缓存120的部分,其中不被功率控制的DRAM缓存120的剩余部分具有等于或大于目标缓存容量的数据存储容量。

图9是实施计算设备600的易失性存储设备中的动态缓存调整的方法的计算机程序产品900的说明性实施方式的框图。计算机程序产品900可以包括信号承载介质904。信号承载介质904可以包括响应于通过例如计算设备的处理器的执行,可以提供上面关于图1-8所描述的至少功能或特征的一组或多组可执行指令902。

在一些实施方式中,信号承载介质904可以包括非易失性计算机可读介质908,比如但不限于硬盘驱动器、压缩盘(CD)、数字多功能盘(DVD)、数字磁带、存储器等。在一些实施方式中,信号承载介质904可以包含可记录介质910,比如但不限于存储、读/写(R/W)CD、R/W DVD等。在一些实施方式中,信号承载介质904可以包含通信介质906,比如但不限于数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。计算机程序产品900可以被记录在非暂态性计算机可读介质908或另一相似的可记录介质910上。

图10是图示根据本公开的至少一些实施方式的示例计算设备1000的框图。在一些实施方式中,计算设备1000可用于实现图1中的计算设备100。在非常基础配置1002中,计算设备1000典型地包括一个或多个芯片多处理器1004和系统存储器1006。存储器总线1008可用于在处理器1004和系统存储器1006之间的通信。

芯片多处理器1004在配置和操作中基本上相似于图1中的CPU 110。根据期望的配置,芯片多处理器1004可以是包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合的任何类型。处理器1004可以包括一个多级缓存,比如一级缓存1010和二级缓存1012、处理器核1014、和寄存器1016。示例处理器核1014可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任何组合。示例存储控制器1018也可以与处理器1004一起使用,或在一些实施方式中,存储控制器1018可以是处理器1004的内部部分。在一实施方式中,存储控制器1018可以被用于实施图1中的缓存控制器140。

根据期望的配置,系统存储器1006(其可以被用于实施图1中的主存储器)可以是任何类型的,包括但不限于易失性存储器(例如RAM)、非易失性存储器(例如ROM、闪存等)或其任何组合。系统存储器1006可以包括操作系统1020、一个或多个应用1022和程序数据1024。应用1022可以包括相似于图1中的测试模块141的测试模块1026,其被布置为至少执行如关于测试模块141所描述的那些的功能和操作。程序数据1024对于与如本文所描述的与测试模块1026一起操作是有用的。在一些实施方式中,应用1022可以被布置为在操作系统1020上与程序数据1024一起操作。图10中通过内虚线内的那些部件图示出所描述的基础配置1002。

计算设备1000可以具有附加特征或功能,以及用来促进基础配置1002以及任何需要的设备和接口之间的通信的附加接口。例如,总线/接口控制器1030可以被用于促进经由存储接口总线1034在基础配置1002和一个或多个存储设备1032之间的通信。数据存储设备1032可以是可移除存储设备1036、非可移除存储设备1038或其组合。可移除存储设备和非可移除存储设备的示例包括磁盘设备,例如软盘驱动器和硬盘驱动器(HDD);光盘驱动器例如压缩盘(CD)驱动器、数字多功能盘(DVD)驱动器;固态驱动器(SSD)和磁带驱动器等。示例计算机存储介质可以包括以任何方法或技术实施的、用于比如计算机可读指令、数据结构、程序模块或其他数据的信息的存储的易失性和非易失性、可移除和非可移除介质。

系统存储器1006、可移除存储设备1036和非可移除存储设备1038是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可以被用于存储期望信息和可以被计算设备1000访问的任何其他介质。任何这样的计算机存储介质可以是计算设备1000的一部分。

计算设备1000也可以包括用于促进从各种接口设备(例如输出设备1042、外围接口1044和通信设备1046)到基本配置502经由总线/接口控制器1030的通信的接口总线1040。示例输出设备1042包括图形处理单元1048和音频处理单元1050,其可以被配置为经由一个或多个A/V端口1052与各种外部设备(例如显示器或扬声器)通信。示例外围接口1044包括串行接口控制器1054或并行接口控制器1056,其可以被配置为经由一个或多个I/O端口1058与外部设备、比如输入设备(例如键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如打印机、扫描仪等)进行通信。示例通信设备1046包括网络控制器1060,其可以布置为促进与一个或多个其他计算设备1062经由一个或多个通信端口1064在网络通信链路(例如,不作限制,光纤、长期演进技术(LTE)、3G、无线城域网)上的通信。

网络通信链路可以是通信介质的一个示例。通信介质可以典型地通过计算机可读指令、数据结构、程序模块或在已调制数据信号(例如载波或其他传输机制)中的其他数据进行实施,并且可以包括任何信息递送介质。“已调制数据信号”可以是这样的信号,其具有以信号中的编码信息那样的方式设置或改变的其特征中的一个或多个。举例而言但不做限制,通信介质可以包括有线介质(例如有线网或直接有线连接)、以及无线介质(例如声波、无线电频率(RF)、微波、红外(IR)和其他无线介质)。如本文所使用的术语计算机可读介质包括存储介质和通信介质它们两者。

计算设备1000可以被实施为小型体积便携式(或移动)电子设备(例如手机、个人数据助理(PDA)、个人媒体播放器设备、无线web查看设备、个人耳机设备、应用特定设备或包括上面功能的任何功能的混合设备)的一部分。计算设备1000也可被实施为包括膝上型计算机和非膝上型计算机配置的个人计算机。

如本文所述,本公开的实施方式实现计算设备的易失性存储设备的动态缓存调整,比如DRAM缓存。动态缓存调整可以通过调整DRAM缓存的刷新间隔或通过将调整缓存的刷新间隔与路级功率控制一路或多路缓存相结合来执行。在一些实施方式中,有效块表和/或有效边界表可以被构建以促进这样的动态缓存调整。在有效块表中的条目指示哪些块以各个刷新间隔中的每一个来可靠地保留数据,并且在有效边界表中的条目指示DRAM缓存中的哪些缓存功率配置针对目标缓存容量是最节能的。在一些实施方式中,最节能的缓存功率配置可以包括增加的刷新间隔和路级功率控制的组合。

硬件或软件的使用一般(但并非总是,因为在特定情况下硬件和软件之间的选择可能变得很重要)是一种体现成本与效率之间权衡的设计选择。存在可以通过其来实现本文所描述的处理和/或系统和/或其他技术的各种手段(例如硬件、软件和/或固件),并且优选的手段将随着所述处理和/或系统和/或其他技术所部署的环境而改变。例如,如果实施者确定速度和精确度是最重要的,实施者可选择主要为硬件和/或固件的手段;如果灵活性是最重要的,实施者可以选择主要是软件的实施方式;或者,同样也是选地,实施者可以选择硬件、软件和/或固件的一些组合。

前面的详细描述已经通过使用框图、流程图和/或示例阐述了设备和/或处理的各个实施方式。在这些框图、流程图和/或示例包含一项或多项功能和/或操作的程度上,可以通过各种各样的硬件、软件、固件或几乎其任意组合来单独地和/或共同地实现这些框图、流程图或示例内的每项功能和/或操作。在一个实施方式中,本文所描述的主题的多个部分可经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成形式来实现。然而,在本文公开的实施方式的一些方案可以整体地或部分地在集成电路中等效地实现为:在一个或多个计算机上运行的一个或多个计算机程序(例如,实现为在一个或多个计算机系统上运行的一个或多个程序)、在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序)、固件、或几乎任何组合,设计电路和/或编写用于软件和/或固件的代码根据本公开是可能的。另外,本文所描述的主题的机制能够作为程序产品以各种形式被分发,并且本文所描述的主题的示例性实施例都适用,而不论实际上用于实施分发的信号承载介质的特定类型如何。信号承载介质的示例包括但不限于以下:可记录型介质,诸如软盘、硬盘驱动器、CD、DVD、数字带、计算机存储器等;以及传输型介质,诸如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。

本领域技术人员将理解的是,在本领域内常见的是以本文阐述的方式来描述设备和/或处理,此后利用工程实践将这些所描述的设备和/或处理集成到数据处理系统中。也即,本文所描述的设备和/或处理的至少一部分可以通过合理量的实验集成到数据处理系统中。典型的数据处理系统通常包括如下中的一种或多种:系统单元壳体,视频显示设备,诸如易失性和非易失性存储器的存储器,诸如微处理器和数字信号处理器的处理器,诸如操作系统的计算实体、驱动器、图形用户接口和应用程序的计算实体,诸如触摸板或触摸屏的一个或多个交互设备,和/或包括反馈回路和控制电机(例如用于感测位置和/或速度的反馈;用于移动和/或调整部件和/或数量的控制电机)的控制系统。典型的数据处理系统可利用任何适合的商业可用部件来实现,诸如在数据计算/通信和/或网络计算/通信系统中典型地提供的那些组件。

本文所描述的主题有时示出包含在不同的其它部件中的或与不同的其它部件连接的不同部件。这些所描绘的体系结构仅是示例性的,并且实际上可以实施实现相同功能的许多其它体系结构。在概念意义上,实现相同功能的任何部件布置是有效地“关联的”,使得实现期望的功能。因此,在本文被组合以实现特定功能的任何两个部件可视为彼此“关联”以使得实现期望功能,不论体系结构或中间组件如何。同样,任意两个如此关联的部件还可视为彼此“可操作地连接”、或“可操作地耦合”以实现期望的功能,并且能够如此关联的任意两个部件还可视为彼此“能够可操作地耦合”以实现期望功能。能够可操作耦合的具体示例包括但不限于能够物理上配对和/或物理交互的部件和/或能够无线交互和/或无线交互的部件和/或逻辑上交互和/或能够逻辑上交互的部件。

关于本文中实质上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中可以明确地阐明了各种单数/复数置换。

本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包含”应解释为“包含但不限于”,等等)。本领域技术人员还将理解,如果意图表达引导权利要求记述项的具体数量,则这样的意图应该明确地记载于权利要求中,如果没有这样的记载,则这样的意图不存在。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施方式,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如不定冠词“一”或“一个”的(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、B和C等中的至少一个”的惯用法的那些实方式中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,表示两个或多个备选术语的几乎任何转折词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。

尽管本文已经公开了各个方法和实施方式,但是其他的方面和实施方式是可能。本文所公开的各个方面和实施方式是出于说明性的目的,并且并不意图是限制性的,真正的范围和精神通过下面的权利要求而被指示。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1