用于功率节省的存储器对象重新定位的制作方法

文档序号:6350791阅读:156来源:国知局
专利名称:用于功率节省的存储器对象重新定位的制作方法
用于功率节省的存储器对象重新定位背景计算机功耗对数据中心以及许多计算机系统的其他操作员而言可以是较大的花费。由于消耗大量功率的计算机通常也具有高冷却成本,因此功耗通常伴随冷却和数据中心内的其他花费。概述一种计算机系统可管理存储器中的对象,以便将较不频繁访问的对象合并到存储器区域中,这些存储器区域可以在其中对存储器对象的访问时间可以增加的低功率状态中操作。通过在低功率状态中操作这些存储器区域中的至少某一些,可实现显著的功率节省。该计算机系统可具有可以进行独立功率控制的若干存储器区域,并且可将存储器对象移至各存储器区域以优化功耗。在一些实施例中,操作系统级功能可基于从使用历史、存储器拓 扑结构和性能以及来自应用的输入收集到的参数来管理存储器对象。提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。附图
简述在附图中图I是示出具有存储器管理的系统的实施例的图示。图2是示出存储器设备的随时间的功率曲线的实施例的图示。图3是示出用于在存储器区域中优化存储器对象的方法的实施例的流程图。详细描述存储器管理系统可将高频率使用的存储器对象和较不频繁使用的存储器对象合并到可分开控制的存储器区域中。具有较不频繁使用的存储器对象的存储器区域可以在低功率模式中操作,而具有高频率使用的存储器对象的存储器区域可以在高功率模式中操作。存储器管理系统可作为操作系统功能来操作,并且可使用关于硬件拓扑结构、个别存储器对象的使用、来自应用的输入和其他参数的信息来确定各个存储器对象的经优化的位置。可执行优化以最大化不同的参数,诸如功率节省、总体性能、特定应用的性能、特定虚拟机实例的性能、或其他参数。许多存储器设备可具有不同的操作特性。在典型的易失性存储器设备中,低功率状态可用于维护存储器中的数据,而高功率状态可用于使用读取或写入命令来访问数据。通常,访问这一处于低功率状态的设备可通过提升功率状态并执行访问来完成。这一访问通常具有影响操作性能的等待时间特性。存储器管理系统可收集关于存储器对象的历史信息以确定将对象放置在哪里。历史信息可包括监视访问频率、访问类型和访问性能。历史信息可以至少部分地用来标识候选低功率存储器区域。存储器管理系统还可评估对存储器对象作出的改变以确定该改变是改善了还是恶化了功耗和性能。具有总体负面影响的改变在某些情况下可以撤消。贯穿本说明书,在对附图的整个描述中,相同的附图标记表示相同的元素。当元素被称为被“连接”或“耦合”时,这些元素可被直接连接或耦合在一起,或者也可存在一个或多个中间元素。相反,当元素被称为被“直接连接”或“直接耦合”时,不存在中间元素。本主题可体现为设备、系统、方法、和/或计算机程序产品。因此,本发明主题的部分或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本发明主题可以采用其上嵌入有供指令执行系统使用或结合其使用的计算机可使用或计算机可读的程序代码的计算机可使用或计算机可读的存储介质上的计算机程序产品的形式。在本文献的上下文中,计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。计算机可使用或计算机可读介质例如可以是、但不限于电、磁、光、电磁、红外、或 半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其他介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并随后存储在计算机存储器中。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。当本主题在计算机可执行指令的一般上下文中具体化时,该实施例可包括由一个或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。图I是示出具有存储器管理系统的系统的实施例100的图示。实施例100是可通过将较不频繁使用的存储器对象合并到可以在低功率状态中操作的存储器区域来管理功耗的计算机系统的简化示例。图I的示图示出系统的各个功能组件。在某些情况下,组件可以是硬件组件、软件组件、或硬件和软件的组合。某些组件可以是应用层软件,而其他组件可以是操作系统层组件。在某些情况下,一个组件到另一个组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可以通过跨长距离的网络连接来进行。各实施例可以使用不同的硬件、软件、以及互连体系结构来实现所描述的功能。实施例100示出了可管理存储器对象以节省功率并优化性能的计算机系统。实施例100可表示可具有处理器和存储器的任何类型的计算设备。示例可包括台式计算机、月艮务器计算机、手持式计算设备、移动电话、个人数字助理或具有处理器和存储器的任何其他设备。实施例100可通过将较不频繁使用的存储器对象移至可以在低功率状态中操作的存储器区域来优化功率和性能。那些频繁使用的存储器对象也可被合并到能够以高功率操作的存储器区域。基本优化例程可以在不频繁地访问对象时将那些对象放置在低功率存储器区域中。许多复杂算法可使用各种等级的历史数据、来自创建和使用存储器对象的应用的输入、以及对性能和功耗的监视来查找经优化的放置。
存在许多不同的存储器技术,并且每一种技术都可具有不同的特性。一般而言,许多类型的易失性存储器可消耗少量功率来刷新存储器,并且可以在执行读取或写入操作时消耗较大量的功率。在许多存储器技术中,从低功率状态到高功率状态的转变可导致在响应请求时的某种延迟。由此,以低功率状态操作的存储器设备可消耗较少的功率,但可能付出性能代价。对这一操作的更详细的图示可以在稍后在本说明书中呈现的实施例200中看到。一般而言,以低功率水平操作存储器设备可具有相关联的性能成本。为了最小化性能成本,不频繁地访问的那些存储器对象或者可容忍较缓慢的响应时间的那些存储器对象可被合并到能够以低功率水平操作的存储器设备上。存储器管理系统可以按若干不同的方式来管理存储器,并且可使用不同的优化机制,优化机制可基于相关联的应用、使用历史、存储器设备类型或其他因素而变化。存储器管理系统的简单版本可监视存储器块以标识频繁访问的那些存储器块以及较不频繁地访问的那些存储器块。这一版本可跟踪诸如存储器页面等存储器的每一单元,并且确定描述有多频繁地使用存储器块的统计数据。一优化例程可尝试基于存储器对象的使用频率来将它们放在一起,以便以使得尽可能多的存储器区域处于低功率模式的方式操作。在跟踪存储器的每一单元的历史的各版本中,可以在可以对存储器设备作出特定改变时移除或删除历史。例如,如果存储器区域的目的被重新确定为从高使用率到低使用率存储器区域,则可删除该区域的历史以使得该历史可以不对存储器管理算法产生不利影响。实施例100的系统可具有处理器106和各存储器区域,其中每一存储器区域都可以独立控制以便以不同的功率状态操作。出于本说明书和权利要求书的目的,存储器区域是存储器中可独立控制以便以不同的功率状态操作的部分。许多存储器技术能够以低功率状态和高功率状态操作,其中低功率状态用于维护或刷新存储器,而高功率状态用于执行读取或写入操作。在这些存储器技术中,存储器可以在高功率状态展示较高的性能,而在低功率状态展示较低的性能。其他存储器技术可具有附加的功率状态,这些附加的功率状态具有不同的功耗和不同的性能特性。
存储器状态的主要性能特性可以是接收到读取或写入请求的时间和传送完成响应的时间之间的等待时间。在一些实施例中,可以在优化期间考虑其他性能特性,包括带宽、访问时间、随机读取或写入周期时间、页模式读取或写入周期时间、进入或退出低功率模式所需的时间,以及其他性能特性。在一些实施例中,一优化例程可使用用来计算经优化的放置的存储器设备的预定义性能特性。在其他实施例中,性能监视器可以周期性地测试或监视性能以使得可使用实际性能值。实施例100示出了存储器区域的若干不同构造。在某些情况下,存储器区域可由若干存储器设备组成。在其他情况下,单个设备可具有多个存储器区域,而在还有一些其他情况下,单个存储器设备可被视作单个存储器区域。存储器设备可以是存储器封装,诸如DIP、SIPP、SIMM、DIMM和其他存储器封装。这些封装可包括印刷电路板以及一个或多个集成电路。在其他实施例中,存储器设备可以是单个集成电路或集成电路的一部分。一些存储器设备可由用户容易地移除,诸如通用串行 总线存储器设备。存储器设备可以是任何类型的存储器设备,包括易失性和非易失性存储器设备。易失性存储器设备可维护存储器内容,只要对该存储器设备供电。非易失性存储器即使在从设备移除电源时也可保存存储器内容。易失性存储器的示例包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及其他类型的易失性存储器。非易失性存储器的示例包括闪速存储器、电可擦除可编程只读存储器(EEPROM)以及各种其它类型的非易失性存储器。存储器区域108可包括多个存储器设备110和112。存储器设备110和112可以是例如单独的存储器封装。存储器设备114可以是包括两个存储器区域116和118的单个设备。在另一构造中,存储器区域120可包含单个存储器设备122。在许多计算设备中,存储器能够以典型的同质方式构造,这意味着可以存在相同或被视作性能相同的多个存储器区域。在许多情况下,这些存储器区域还可被构造成大小相同。在一些计算设备中,存储器可包括不相似的存储器设备或构造。例如,计算设备可具有若干DRAM存储器设备以及闪速存储器设备。在一些计算设备中,可以在条状(striped)或交错构造中组合存储器的两个或更多部分。交错或成条(striping)是可通过使用非连续存储器位置来将数据存储在存储器中来提高存储器性能的机制。在典型的交错存储器应用中,两个存储器设备可通过将奇数地址放置在一个存储器设备上并将偶数地址放置在第二存储器设备上来访问。在许多情况下,尤其对于涉及大量数据的操作,交错存储器可具有比非交错存储器更快的响应时间或更大的带宽。实际上,使用两个存储器设备的交错机制可通过增加可由存储器系统处理的数据的带宽来增加吞吐量。当两个或更多个存储器设备或存储器区域以精细粒度交错以使得典型的存储器访问将访问多个设备或区域时,交错设备或区域的组合可被视作用于控制高功率或低功率状态的单个存储器区域。在一些实施例中,两个或更多个设备可被配置成用于交错的存储器操作,而其他存储器设备可被配置为非交错。在典型的台式、膝上型或服务器计算机中,计算机的存储器配置在引导计算机之前设置。在一些设备中,这些配置可以在基本输入/输出系统(BIOS)级配置处设置。每一个存储器区域都能够以不同的功率状态操作。在典型的DRAM存储器设备中,读取和写入操作可以在高功率状态中执行,而相同的操作可能无法在存储器设备处于低功率状态时执行。其他设备可以在各种功率状态中具有不同的性能和不同的能力。例如,一些设备可以在低功率状态中准许读取操作,而不准许写入操作。在另一示例中,一些存储器设备可准许以低功率水平执行读取和写入操作,但具有比在高功率状态时更慢的响应时间或与在高功率状态时不同的性能特性。在一些存储器技术中,存储器设备可具有不止两个功率状态,每一功率状态都可允许具有各自性能特性的不同操作。不同的技术和体系结构可用于控制存储器区域何时进入和退出低功率状态。在一些实施例中,存储器区域可具有控制器,该控制器监视对存储器区域的访问并且当在一段时间内未发生访问时降低功率状态。当接收到对读取或写入操作的请求时,控制器可提升功率水平以响应该请求。在不具有对存储器设备的操作的一段时间后,控制器可使得存储器设备进入低功率状态。在许多实施例中,这一控制器可以是可以在没有外部输入的情况下操作的硬件组件。 示例可包括可管理存储器区域108的功率状态的存储器控制器124。在另一示例中,存储器控制器126可以是存储器设备114的组件或内置功能部件。又一示例可以是可作为处理器106的一部分的存储器控制器。在一些实施例中,存储器控制器可接收外部输入。例如,存储器管理器可以向存储器控制器发送进入低功率状态的消息或信号。这一通信可作为读取或写入操作的一部分来传送或者可以是单独的通信。在一些实施例中,在硬件中可存在各种功率监视机制。功率监视机制能够在瞬时、周期性或其他基础上测量一特定设备或一组设备的功耗。功率监视机制可用于在监视各种操作时确定功耗或功率节省,并且可用作用于存储器对象放置的优化算法的一部分。例如,功率监视器128能够监视和测量存储器设备110和112的功耗。在某些情况下,功率监视器128能够单独地或只作为集合组测量每一个存储器设备110和112的功耗。这一功率监视设备可以是存储器设备110和112的供电或配电系统的组件。在另一示例中,存储器设备114可包括可测量存储器设备114的功耗的功率监视器130。在又一示例中,功率监视器132可以是能够跨系统测量功耗的系统级功率监视系统。取决于配置,功率监视器132能够在各计算机组件、各组组件、各存储器设备、各组存储器设备或计算机系统的其他部分的功耗之间进行区分,并测量这些功耗。处理器106可执行软件104的各种组件。实施例100中描述的软件组件是可用于管理存储器中的对象的示例组件。其他实施例可具有不同的软件配置或者可以用例如硬件来实现一些功能。在典型的监视系统中,操作系统136可执行许多低级功能,而各种应用138可执行较高级的功能。通常,操作系统可担当应用的硬件接口,而应用是为用户执行特定功能的计算机程序。操作系统通常提供诸如存储器管理、联网、安全、文件系统和其他功能等由应用使用的功能。应用138可创建可被存储在硬件102中的各种存储器设备中的许多不同的存储器对象140。存储器对象140可以与单个位一样小,或者可以是包含许多千兆字节数据的大型数据库。在某些情况下,对存储器对象的读取或写入操作可涉及读取或写入整个存储器对象。在其他情况下,读取或写入操作可涉及读取或写入存储器对象的仅仅一部分。存储器管理器134可作为操作系统136的一部分来操作以管理存储器位置,以便优化功耗和性能。在其他实施例中,存储器管理器134的部分或全部功能可以是应用138,而还有一些其他实施例可使得存储器管理器134的部分或全部功能作为硬件组件。
在许多情况下,存储器管理器134可包含帮助确定关于存储器设备的特性的映射引擎。例如,映射引擎可以在存储器处于低功率状态时以及在存储器设备处于高功率状态时测试读取查询期间的等待时间。映射引擎可将这些测试作为主动测试来执行,其中映射引擎可将存储器设备配置成特定状态,然后执行读取或写入操作并进行测量。在一些实施例中,映射引擎可被动操作并且可监视其他应用的读取和写入查询以测量等待时间和其他参数。存储器管理器134可保持虚拟存储器地址和物理存储器地址之间的映射。映射可允许应用使用虚拟地址来引用存储器对象。当存储器对象被从一个存储器区域移至另一个存储器区域时,物理地址可以在不影响虚拟地址的情况下在映射中改变。存储器管理器134可监视存储在存储器区域中的存储器对象,并且可将存储器对象移至不同的存储器区域以优化功率使用。存储器管理器134可以在若干不同的体系结构中操作。此处讨论两种不同的体系结构,但还可使用其他体系结构。在第一体系结构中,存储器管理器134可监视包含在存储器中的所有存储器对象。这一存储器管理器可通过标识用于低频率访问存储器对象的存储器区域以及用于高频率访问存储器对象的其他存储器区域来优化放置,然后存储器管理器可将较不频繁地使用的存储器对象合并在一起,从而允许那些存储器区域以低功率状态操作并由此节省功率。这一体系结构可评估所有存储器区域以便为低功率和高功率状态选择候选存储器区域,然后可移动存储器对象以使得至少一个存储器区域以低功率状态操作。这一体系结构可执行广泛的优化以便针对性能和/或功率节省来定制存储器对象位置。在另一体系结构中,存储器管理器134可以监视和管理存储器区域的子集中的存储器对象。这一存储器管理器可监视存储器区域以标识高频率访问存储器对象,然后将这些存储器对象移至其他存储器区域。在该体系结构中,存储器管理器可操作以移除可导致存储器区域以较高功率状态操作的那些存储器对象。第二体系结构可监视较小的对象集,并且能够以比第一体系结构更少的开销和复杂性来执行某些优化。在一个实施例中,存储器区域可以在BIOS或另一设置机制中被标识为低功率存储器区域。该选择可以在计算机系统在运行时保持不变,并且可以改变或不改变。该第二体系结构可以只标识高频率存储器对象并将这些对象移至其他存储器区域。一些实施例还可标识其他存储器区域中的低频率存储器对象以便移至低频率存储器区域。
存储器管理器134可具有性能监视器144,该性能监视器可监视对对象的访问以及各个存储器区域的性能。性能度量可被存储在历史数据库148中。对存储器对象的访问可被监视和表征以标识存储器对象以供放置在适当的存储器区域中。在一些实施例中,性能监视器144可跟踪每一个存储器区域的统计数据。在这一实施例中,存储器的每一页或每一存储器对象都可具有指示对存储器对象的访问的一组统计数据。在其他实施例中,性能监视器144可监视读取和写入操作并且可标识具有高访问频率的那些存储器对象。在这一实施例中,可以为或不为存储器中的每一存储器对象或存储器页保存单独的统计数据。当一实施例标识具有高访问频率的那些对象时,其余对象可被假定为是低频率访问对象。这一实施例可保存关于存储器中的对象的较少的统计数据和信息。性能监视器144还可测量等待时间、响应时间、吞吐量或存储器区域的其他性能参数。在这一实施例中,性能监视器144可存储存储器区域的实际性能特性以便在优化时 使用。一些这样的实施例可以在实现各个存储器对象的经优化的位置之前和之后测量系统的性能特性。这样的测量可用于验证经优化的位置表现得如预期那样,并且在新位置未表现得与先前的设置一样好的情况下,这样的测量可用于回退到先前的位置。存储器管理器134可具有优化器142,该优化器可标识和优化对存储器对象的放置,并使得根据经优化的放置来移动那些存储器对象。优化器142可使用不同的输入信息来执行优化。在一些实施例中,可以咨询历史数据库148以标识高频率或低频率访问存储器对象。一些实施例可包括来自各个应用138的可标识将具有更高或更低的访问频率的特定存储器对象的指示器。例如,应用可能正将运行状态从活动模式改为休眠或不活动模式。当这一改变发生时,应用138可以直接或间接与存储器管理器134和优化器142进行通信,以便将与该应用相关联的存储器对象移至适当的存储器区域。一些存储器管理器134可具有功率监视器146。功率监视器146可用于在存储器区域处于高功率状态或低功率状态时收集实际功耗数据。功率监视器146可以与各个硬件功率监视器128、130和132进行对接和通信。在一些实施例中,存储器管理器134可使用功率监视器146来计算功率节省。在一个这样的实施例中,存储器管理器134可测量存储器设备在处于低功率状态时以及同样该存储器设备在处于高功率状态时的功耗。功耗之间的差异乘以设备处于低功率状态的时间长度可被计算为近似功率节省。一些实施例可以在实现改变之后验证性能和功率节省。这些实施例可以在将存储器对象移至不同的存储器区域之前和之后测量性能和功率节省,并且如果未实现足够的性能或功率节省,则这些实施例可回退至先前的配置。在一些实施例中,可以在引导操作系统132之前使用BIOS来配置硬件102。BIOS可用于配置各种存储器区域。在一些实施例中,BIOS设置可用于将一些存储器区域标识为交错以及将特定存储器区域标识为用于低功率状态操作的候选存储器区域。BIOS 150还可包括启动测试过程152。启动测试过程152可执行各种存储器区域的性能测量。启动测试过程152可循环通过每一存储器区域,并且在存储器区域处于高功率状态时执行读取和写入操作并在存储器区域处于低功率状态时执行同样的操作。每一存储器区域都可以按这样的方式进行测试,并且可以存储存储器区域的性能以供优化算法或例程使用。图2是示出存储器设备或存储器区域的相对于时间的功率图表的实施例200的图示。实施例200没有刻度,而是用来示出可反映许多不同的存储器技术的实际操作的一般功耗和性能概念。实施例200的图示是典型的DRAM存储器设备的示例。其他设备可具有不同的功耗特性。实施例200示出了相对于时间202的已消耗的功率204。示出了表示功耗206的曲线。在曲线的开头,示出了高功率状态208。在时间段210,可启动读取或写入操作,并 且该操作可结束于时间段214。在该操作期间,存储器设备可消耗由区域212指示的较高水平的功率。在该操作后,设备可保持在高功率状态208。直到时间段214的操作示出了在存储器设备处于高功率状态208时的典型的读取或写入操作。在这一操作期间,等待时间216可反映接收到命令和响应该命令之间的时间,如时间段210和214所示。在许多实施例中,存储器控制器可监视处于高功率状态208的存储器设备,并且可使该设备在时间段218处进入低功率状态224。许多这样的实施例可以在进入低功率状态224之前等待非活动的预定时间量,被示为时间段220。当典型的存储器设备处于低功率状态224时,该设备可能无法响应读取或写入请求。一些存储器设备能够在低功率状态224执行一些操作,而其他操作只可在高功率状态208执行。在时间段226,可接收读取或写入操作。因为设备处于低功率状态224,所以设备在调高时间段227期间可消耗较高的功率水平228。在调高时间段227之后,该设备可以在时间段229期间处理操作并在时间段230处返回到高功率状态208。因为当在时间段226处接收到读取或写入操作时设备处于低功率状态224,所以用于响应该请求的等待时间232可以比当设备处于高功率状态208时的等待时间216长得多。增加的等待时间232可以是当设备以低功率状态操作时遇到的性能因素。图3是示出用于管理存储器对象的方法的实施例300的流程图。实施例300是可由诸如实施例100的存储器管理器134等存储器管理器执行的方法的简化示例。其他实施例可以使用不同顺序的、附加的或更少的步骤以及不同的名称或术语来实现类似的功能。在一些实施例中,各种操作或一组操作可以按同步或异步的方式与其他操作并行执行。在此选择的这些步骤被挑选来以简化的形式示出操作的一些原理。实施例300示出了可由存储器管理器执行的优化方法。实施例300的方法仅仅是可用于在最小的性能降级的情况下以低功率模式操作一些存储器区域的方法的一个示例。实施例300的优化可重新定位各个存储器对象以使得可优化功率节省和性能。通过将不频繁使用的存储器对象一起定位在共同的存储器区域中,存储器区域可以在低功率状态中操作。在一些实施例中,优化算法可执行功率节省和性能特性之间的折衷,并且优化算法可以是可变化的,以使得用户能够针对功率节省或性能来选择加权因子。优化算法可以是用于确定存储器对象放置的任何类型的试探、过程或机制。在一些实施例中,可使用简单试探,而其他实施例可通过评估许多不同的放置方案并选择这些方案中的一个来执行复杂优化。在许多这样的优化中,可以为每一种方案计算性能成本和/或功率成本,以及功率节省方面的计划收益或性能收益(如果有的话)。还有一些其他实施例可使用其他优化机制。在框302中,可以确定存储器拓扑结构。存储器拓扑结构可包括标识每一存储器区域以及存储器区域的各种特性。这些特性可以在不同的实施例之间变化,并且可包括存储器区域的大小和性能特性、每一存储器区域占据的地址空间、用于控制存储器区域的机制以及其他因素。存储器拓扑结构可包括以下各项的定义和配置存储体、存储列(memory rank)、特定DMM、存储通道、存储电路、集成电路设备、用于存储器区域的电源导轨(power rail)或控件以及定义存储器配置的其他元素。存储器拓扑结构的定义对于各个实施例可以是不同的,并且可针对存储器管理器可以在设备中具有的优化类型和控制水平来定制。在某些情况下,存储器管理器能够以精确的控制水平管理存储器对象,诸如能够标识其中可存储存储器对象的特定存储器电路。在其他情况下,存储器管理器可具有更粗糙的控制水平。
在一些实施例中,不同的存储器区域可具有不同的性能特性,并且那些性能特性可用于优化存储器对象放置。例如,如果存储器区域包括两个交错的DIMM存储器设备,则该存储器区域可具有比具有非交错的DIMM存储器的其他存储器区域更快的响应时间和更好的吞吐量。因此,包含交错的DIMM存储器设备的存储器区域可被认为是用于高访问频率存储器对象的候选存储器区域,而其他存储器区域可以是用于低功率状态操作和不频繁访问的存储器对象的候选存储器区域。存储器拓扑结构可包括供存储器管理器控制存储器区域的机制。这些机制可包括存储器管理器可用来请求存储器区域以高功率或低功率状态操作的消息收发或通信机制。在一些实施例中,框302中确定的拓扑结构可以在BIOS或引导操作期间确定,该BIOS或引导操作可以在开始加载和执行操作系统时或之前进行。拓扑结构可由BIOS级或操作系统级例程确定,该BIOS级或操作系统级例程可检测每一存储器区域,执行查询和收集拓扑结构信息。在一些这样的实施例中,可以对每一存储器区域进行性能测试以确定这些存储器区域的性能度量。这一测试可涉及将存储器区域设为低功率状态并且测量对存储器区域的读取或写入请求的等待时间,并且还在存储器区域被设为高功率状态时执行相似的测试。在框304中,可监视存储器对象的访问频率、性能和功耗。框304可包括可由优化例程使用的许多不同的受监视的因素。如果未在框306中执行优化,则该过程可返回到框304以生成访问频率和其他因素的历史。在一些实施例中,性能和功耗可随设备的工作负载和存储在存储器中的数据而改变。在这些实施例中,可以为各个存储器对象或各组存储器对象收集和存储性能和功耗数据。框306中的优化在不同的实施例中可由不同的机制触发。在这些实施例中,优化可以在周期性的基础上执行,诸如每几分钟、每小时、每天或某一其他预定基础。在这些实施例中,计时器或其他机制可启动框306中的优化。在一些实施例中,设备长时间操作,诸如可持续操作许多天、星期或月的服务器或其他计算机。这些设备通常具有其中设备上的负载波动的规则时间段。通常,这些时间段是可预测的。例如,企业使用的服务器可能在正常的营业时间内是忙碌的,但可以在晚上以及在非营业时间内被轻度使用。这一服务器可以在晚上执行一些操作,诸如例如备份操作。这一服务器可具有对设备的使用可能改变的可预测时间,并且可以在使用可能改变之前或紧接在使用可能改变之后执行优化。在这些实施例中,性能监视器可监视设备的周期性使用,并且可基于设备的过往历史来预测何时可以执行优化。在一些实施例中,应用中的改变可指示可执行优化。性能监视器可监视设备上的特定应用或一般计算活动,并且可确定一个或多个应用已经增加或减少了活动。基于活动改变,可执行优化。一些实施例可基于来自应用的直接通知来触发优化。例如,已被触发退出休眠模式并执行大量计算的应用可以向存储器管理器发送警告、触发或其他指示符,以便基于该应用的状态改变来优化存储器位置。 在框308中,可确定优化的作用域。在一些实施例中,可以为特定存储器区域、具有特定特性的存储器对象或其他作用域执行优化。在某些情况下,优化可以对所有存储器区域执行并且可考虑所有存储器对象。在这些实施例中,框310中的优化可分析所有存储器对象的使用历史,标识高频率和低频率使用存储器对象,为那些存储器对象标识存储器区域,并且将存储器对象移至相应的存储器区域。在许多情况下,这一优化可评估许多不同的放置方案,并且可基于性能和功率因素来选择经优化的放置方案。在一些这样的实施例中,可以为具有相似使用频率的存储器对象标识若干组存储器区域。在某些情况下,可基于独立于其他存储器对象的使用频率度量来将存储器对象合并在存储器区域中。在某些情况下,使用频率与其他存储器对象相关的存储器对象可被合并到存储器区域中。例如,若干存储器对象可具有相似的使用模式,其中这些对象同时被频繁使用,且可同时不活动。这些对象可被合并到相同的存储器区域中以最大化功率节省。在一些实施例中,这些存储器对象可以与单个应用相关,并且可通过它们与该应用的关系来标识。在其他实施例中,可将存储器对象的使用历史与同时重度和轻度使用的组存储器对象进行比较。在一些实施例中,可以为特定种类的数据或者为与特定应用相关联的数据执行优化。在这样的情况下,框310的优化可以只考虑移动具有指定类型的数据或者与指定应用相关联的那些存储器对象。这样的优化例程可以为高功率和低功率状态标识存储器区域并且相应地移动存储器对象。在一些实施例中,优化例程可通过标识高频率访问的存储器对象并将那些存储器对象聚合在指定存储器区域中来操作。相反,这些实施例可通过标识不频繁访问的存储器对象并将那些存储器对象移至可以经常处于低功率状态的存储器区域来操作。这些实施例可以从其他存储器区域中标识存储器对象以填充所标识的存储器区域。其他实施例可使用检查存储器区域以标识要从该存储器区域移出的存储器对象的优化例程。例如,可分析指定的高频率访问的存储器区域以标识非高频率访问的存储器对象,并且可尝试将那些存储器对象移至其他存储器区域。在另一示例中,可分析被指定为低功率状态存储器区域的存储器区域以标识该存储器区域中的高频率访问的存储器对象,并且优化例程可尝试将那些存储器对象移至其他存储器区域。在其中为特定应用或特定类型的数据执行优化的实施例中,可分析那些存储器对象以确定其中存储这些存储器对象的存储器区域对于那些对象而言是否是适当的。例如,这一优化可将各个存储器区域标识为是重度访问或轻度访问的,然后比较所标识的存储器对象以确定这些存储器对象的使用历史是否与存储器区域兼容。任何不兼容都可通过将不兼容的存储器对象移至不同的存储器区域来纠正。在本说明书全文中,优化例程已经通过将存储器区域或存储器对象指定为以下两类来例示频繁访问的和不频繁访问的。这一指定用作描述优化的简化方式,但并非旨在是限制性的。在一些实施例中,存储器对象和存储器区域的访问频率可被分组在两个、三个、四个或更多层面或类别中。例如,存储器对象和存储器区域可被分组为高频、中频和低频类别。在一些实施例中,对存储器对象的访问类型可影响性能和功率节省。在一些实施 例中,具有相似访问类型的那些存储器对象可以在存储器区域中被分组在一起。例如,一些实施例可以与使用写入命令来频繁访问的存储器对象分开地将使用读取命令来频繁访问的存储器对象分组在一起。在另一示例中,一些实施例可以单独分组只读数据。当诸如布尔数据、串数据、数值数据或其他复杂数据类型等数据类型可被展示给存储器管理器时,一些实施例可以按这些数据类型来对存储器对象进行分组。在另一示例中,由特定应用创建的存储器对象可被分组在一起。框310中的优化可导致框312中的对要移动的对象的标识,以及为高频率访问和低频率访问标识候选存储器区域。低频率访问存储器区域可以是可以尽可能多地以低功率模式操作的那些存储器区域。在标识要移动的存储器对象后,在框314中可将低频率访问对象移至低功率区域,并且在框316中将高频率访问对象移至高频率访问存储器区域。在实现框314和316中的改变后,系统可以在框318中操作。在框318的操作期间,具有不频繁访问的存储器对象的那些存储器区域可以比在框314和316的改变之前更多地以低功率状态操作。如果这一改进在框322中找到,则在框326中可保存改变并且该过程可返回到框304。如果这一改进未在框322中检测到,则在框324中可将改变回退至先前的配置并且该过程可返回到框304。框322可检查框310的优化的性能和功率节省并且可确定是否已达到优化目标。在一些实施例中,优化目标可以纯粹是功率节省或者可以是功率节省和性能的组合。如果未达到那些目标,则该系统可撤消框324中的改变。以上对本主题的描述是出于说明和描述的目的而提出的。它不旨在穷举本主题或将本主题限于所公开的精确形式,且鉴于以上教导其他修改和变型都是可能的。选择并描述实施例来最好地解释本发明的原理及其实践应用,从而使本领域的其他技术人员能够在各种实施例和各种适于所构想的特定用途的修改中最好地利用本发明的技术。所附权利要求书旨在包括除受现有技术所限的范围之外的其他替换实施例。
权利要求
1.一种系统,包括 多个存储器区域,所述存储器区域中的每一个都具有至少低功率状态和高功率状态; 被配置成分开且独立地管理所述存储器区域的功率状态的控制器; 被配置成通过一种方法来管理存储器内容的处理器,所述方法包括 监视多个存储器对象中的每一个以确定所述存储器对象中的每一个的访问频率; 将第一存储器区域标识为用于低功率操作的候选存储器区域; 将第一存储器对象标识为低频率访问对象; 将所述第一存储器对象移至所述第一存储器区域;以及 以所述低功率状态操作所述第一存储器区域。
2.如权利要求I所述的系统,其特征在于,所述方法还包括 将第二存储器区域标识为用于高功率操作的候选存储器区域; 将所述第一存储器区域中的第二存储器对象标识为高频率访问对象; 将所述第二存储器对象从所述第一存储器区域移至所述第二存储器区域;以及 以所述高功率状态操作所述第二存储器区域。
3.如权利要求2所述的系统,其特征在于,所述系统还包括 通过监视所述第一存储器区域以确定所述第一存储器区域以所述低功率状态操作的时间长度并且根据所述时间长度来确定功率节省,来计算功率节省。
4.如权利要求2所述的系统,其特征在于,所述多个存储器区域是相同的存储器区域。
5.如权利要求2所述的系统,其特征在于,所述多个存储器区域中的至少两个是不相似的。
6.如权利要求5所述的系统,其特征在于,所述存储器区域中的一个是可移除存储器 区域。
7.如权利要求2所述的系统,其特征在于,所述第二存储器区域是包括具有交错定址的至少两个存储器设备的交错存储器区域。
8.如权利要求I所述的系统,其特征在于,还包括 映射引擎,被配置成测试所述存储器区域中的至少一个以确定在所述存储器区域处于所述低功率状态时读取查询的等待时间。
9.如权利要求8所述的系统,其特征在于,所述映射引擎还被配置成作为启动操作的一部分来操作。
10.如权利要求8所述的系统,其特征在于,所述映射引擎还被配置成确定所述存储器区域处于所述低功率状态时的第一功耗以及所述存储器区域处于所述高功率状态时的第二功耗。
11.如权利要求I所述的系统,其特征在于,还包括 被配置成测量所述存储器区域中的每一个的功耗的功率监视系统。
12.—种在计算机处理器上执行的方法,所述方法包括 接收包括多个存储器区域中的每一个的存储器地址范围的存储器拓扑结构,所述多个存储器区域中的每一个都可被单独控制成高功率状态和低功率状态; 监视所述存储器区域中的多个存储器对象以确定所述多个存储器对象中的每一个的访问频率;将第一存储器区域标识为用于低功率操作的候选存储器区域; 将第一存储器对象标识为高频率访问对象并位于所述第一存储器区域中; 将所述第一存储器对象移至第二存储器区域;以及 以所述低功率状态操作所述第一存储器区域。
13.如权利要求12所述的方法,其特征在于,还包括 将第二存储器区域标识为用于高功率操作的候选存储器区域; 将所述第二存储器区域中的第二存储器对象标识为低频率访问对象; 将所述第二存储器对象从所述第二存储器区域移至所述第一存储器区域;以及 以所述高功率状态操作所述第二存储器区域。
14.如权利要求13所述的方法,其特征在于,还包括 在所述第一存储器区域处于所述低功率状态时检测与所述第二存储器对象的第一交互; 测量所述第一交互的第一等待时间;以及 存储所述第一等待时间。
15.如权利要求14所述的方法,其特征在于,还包括 在所述第一存储器区域处于所述高功率状态时检测与所述第二存储器对象的第二交互; 测量所述第二交互的第二等待时间;以及 存储所述第二等待时间。
全文摘要
一种计算机系统可管理存储器中的对象,以便将较不频繁访问的对象合并到存储器区域中,这些存储器区域可以在其中对存储器对象的访问时间可以增加的低功率状态中操作。通过在低功率状态中操作这些存储器区域中的至少某一些,可实现显著的功率节省。该计算机系统可具有可以独立控制的若干存储器区域,并且可将存储器对象移至各存储器区域以优化功耗。在一些实施例中,操作系统级功能可基于从使用历史、存储器拓扑结构和性能以及来自应用的输入收集到的参数来管理存储器对象。
文档编号G06F13/10GK102822766SQ201080046166
公开日2012年12月12日 申请日期2010年10月6日 优先权日2009年10月15日
发明者B·L·沃辛顿, S·R·贝拉尔迪, S·N·麦格雷恩 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1