CN102999132B - 管理计算系统的存储模块间的热分布的方法和系统 - Google Patents
管理计算系统的存储模块间的热分布的方法和系统 Download PDFInfo
- Publication number
- CN102999132B CN102999132B CN201210328826.1A CN201210328826A CN102999132B CN 102999132 B CN102999132 B CN 102999132B CN 201210328826 A CN201210328826 A CN 201210328826A CN 102999132 B CN102999132 B CN 102999132B
- Authority
- CN
- China
- Prior art keywords
- memory module
- overheated
- memory
- temperature sensor
- computing system
- 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.)
- Expired - Fee Related
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
Abstract
公开了管理计算系统的存储模块间的热分布的方法和系统。计算系统包括若干个存储模块和若干个温度传感器。每个温度传感器测量一个存储模块的温度。在这样的系统中,在垃圾收集期间,垃圾收集器确定温度传感器的温度测量结果是否指示存储模块过热,如果温度传感器的温度测量结果指示存储模块过热,那么垃圾收集器把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块。重新分配活动存储区域包括把活动存储区域的内容从过热的存储模块复制到不过热的存储模块。
Description
技术领域
本发明的领域是数据处理,更具体地说,是管理计算系统的存储模块间的热分布的方法、设备和产品。
背景技术
1948年EDVAC计算机系统的开发通常被视为计算机时代的开始。从那时起,计算机系统已演化成极其复杂的设备。与诸如EDVAC之类的早期系统相比,今天的计算机复杂得多。计算机系统一般包括硬件和软件组件、应用程序、操作系统、处理器、总线、存储器、输入/输出装置等的组合。随着半导体处理和计算机体系结构的发展推动计算机的性能越来越高,开发了更加完善的计算机软件以利用更高的硬件性能,从而导致今天的计算机系统比仅仅几年前的计算机系统更加强大。
在计算机的运行期间,诸如双列直插式存储模块(DIMM)之类的存储模块会产生大量的热。随着时间的过去,发热会导致DIMM的退化,最终导致DIMM的失效。目前的程序执行会在许多DIMM间,或者甚至在一个DIMM的模块间形成发热的不均衡分布。即,在包括许多DIMM的存储系统中,与系统中的其它DIMM相比,一个DIMM子集可能被访问更多次。随着时间的过去,这种不均衡访问会使所述DIMM子集与其它DIMM相比生成多得多的热。这种不均衡发热会招致所述DIMM子集比系统中的其它DIMM快得多地退化。即,与每个其它DIMM的工作寿命相比,被更频繁访问的DIMM子集中的每个DIMM的工作寿命被更快地消耗掉。因此,有益的是在子系统中的所有DIMM间以更均衡、平均的方式分布发热。
发明内容
在本说明书中,公开了管理计算系统的存储模块间的热分布的方法、设备和产品。所述计算系统包括若干个存储模块和若干个温度传感器,其中,每个温度传感器测量一个存储模块的温度。按照本发明的实施例的管理存储模块间的热分布包括:由垃圾收集器在垃圾收集期间确定温度传感器的温度测量结果是否指示存储模块过热,以及如果温度传感器的温度测量结果指示存储模块过热,则把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块。按照本发明的实施例的把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块包括:把活动存储区域的内容从过热的存储模块复制到不过热的存储模块。
根据附图中图解说明的本发明的例证实施例的以下更详细说明,本发明的上述和其它目的、特征和优点将变得明显,其中相同的附图标记代表本发明的例证实施例的相同部分。
附图说明
图1是按照本发明的实施例的管理存储模块间的热分布的系统的方框图。
图2是图解说明本发明的实施例的管理计算系统的存储模块间的热分布的例证方法的流程图。
图3是图解说明本发明的实施例的管理计算系统的存储模块间的热分布的再一例证方法的流程图。
图4是图解说明本发明的实施例的管理计算系统的存储模块间的热分布的另一例证方法的流程图。
具体实施方式
下面从图1开始参考附图来说明按照本发明的管理计算系统的存储模块间的热分布的例证方法、设备和产品。图1是按照本发明的实施例的管理存储模块间的热分布的系统的方框图。图1的系统包括例证的计算机(152),计算机(152)又包括至少一个计算机处理器(156)或者说“CPU”,以及通过高速存储总线(166)和总线适配器(158)连接到处理器(156)和计算机(152)的其它组件的随机存取存储器(168)(“RAM”)。
在图1的例证计算机(152)中,RAM(168)包括几个存储模块。本说明书中使用的术语“存储模块”指的是计算机存储器的任意单元。计算机存储器的单元的例子包括:双列直插式存储模块(“DIMM”);DIMM的区块(rank);和DIMM的动态随机存取存储器(“DRAM”)集成电路。在图1的例子中,用4个双列直插式存储模块(DIMM)(104a,104b,104c和104d)实现计算机存储器。每个DIMM被视为独立的存储模块。另一方面,DIMM本身上的计算机存储器的每个集成电路可被视为独立的存储模块。为了便于说明(非限制性),图1的例子中的每个DIMM(104a-104d)被称为独立的存储模块。
在图1的例子中,单独的温度传感器(102a,102b,102c,102d)与每个DIMM(104a-104d)相关联,每个温度传感器测量一个DIMM的温度。在图1的例子中,温度传感器被描述成与DIMM本身分离的组件,但本领域的技术人员会认识到,可利用各种方式,在母板上、在母板的DIMM插槽中或附近、在DIMM本身上等等,来实现这样的温度传感器。每种这样的实现都完全在本发明的范围内。
在图1的例子中,温度传感器(102a-102d)耦接到处理器(156)。在这样的实施例中,温度传感器可以周期性地或者按照请求把存储模块的当前温度保存在指定的公知处理器寄存器中,或者当存储模块的温度超过预定阈值时,引起中断或标记。在图1的例子中,为了说明的清楚起见(而不是对本发明的限制),温度传感器(102a-102d)被描述成耦接到处理器(156)。本领域的技术人员会认识到,可按照各种方式在操作上耦接能够测量存储模块的温度的温度传感器(102a-102d)。例如,温度传感器可通过输入/输出(I/O)适配器(178)耦接到扩展总线(160),通过带外总线耦接到服务处理器(未示出),或者按照本领域的技术人员会想到的其它方式耦接。
保存在RAM(168)中的是应用(112)和垃圾收集器(106)。应用(112)是执行用户级数据处理任务的计算机程序指令的模块。这种应用的例子包括电子表格应用、字处理应用、多媒体库管理应用、数据库管理应用、照片或视频编辑应用、电子邮件客户端应用、以及本领域的技术人员会想到的其它应用。
当应用运行时,存储器会时常被分配并被应用用于数据存储和检索。应用随后可能停止使用该存储器,而不释放该存储器用于未来的分配。例如,应用可以实例化对象,使用所述对象一段时间,随后停止使用所述对象。其中,在其中实例化所述对象的存储器不可用于分配给其它应用。
为此,图1的例子中的垃圾收集器(106)是回收垃圾或者被不再被应用使用的对象占据的存储器的计算机程序指令的模块。垃圾收集通常被描述成与手动存储器管理相反,手动存储器管理要求程序员指定对象以解除分配和释放存储器用于未来分配。垃圾收集器通过在把活动的存储区域压缩成连续块的同时,周期性地识别、标记和删除不活动的存储区域,来进行典型的垃圾收集。由于不活动的存储区域被解除分配或者被释放,因此垃圾收集器被认为“删除”该存储区域。一旦被释放,垃圾收集器实际上把活动的存储区域移动到被释放的存储区域,使得活动的存储区域变成活动的存储区域的连续块的一部分。
在图1的例子中,垃圾收集器(106)还被配置成按照本发明的实施例,管理计算系统的存储模块间的热分布。即,除了垃圾收集器的一般垃圾收集操作之外,图1的例子中的垃圾收集器(106)还支持计算系统-计算机(152)中的热分布的管理。垃圾收集器(106)通过在垃圾收集期间确定温度传感器(102a-102d)的温度测量结果(114)是否指示存储模块(104a-104d)过热,来进行这种计算机(152)的存储模块间的热分布管理。在图1的例子中,垃圾收集器可实时地(即,在垃圾收集器的正常运行期间,而没有用户交互)确定存储模块(104a-104d)是否过热。不需要任何用户请求来使垃圾收集器确定目标计算系统(152)中的存储模块是否过热。
如果温度传感器(102a-102d)的温度测量结果(114)指示存储模块(104a-104d)过热,则垃圾收集器(106)把过热的传感器模块(104a)上的一个或多个活动存储区域(110)重新分配给不过热的存储模块(104b)。把活动存储区域(110)重新分配给不过热的存储模块(104b)包括:把活动存储区域的内容从过热的存储模块(104a)复制到不过热的存储模块(104b)。
换句话说,当存储模块过热时,垃圾收集器(106)以热感知模式工作,而不是一般的工作模式工作。在热感知模式,垃圾收集器作用于活动的存储区域-实际上把过热的存储模块上的活动存储区域移动到另一个不过热的存储模块,而不是像在典型的工作模式下那样回收不活动的存储区域。
对活动存储区域的每次访问会导致在在其上分配该活动存储区域的存储模块上生成热量。通过把活动存储区域从过热的存储模块重新分配到不过热的存储模块,垃圾收集器使对活动存储区域的后续访问离开过热的存储模块,从而减少对该存储模块的访问总数。减少对存储模块的访问总数减少了该存储模块生成的热量,从而使该存储模块冷却。
当温度传感器(102a-102d)指示存储模块不再过热时,垃圾收集器(106)退出热感知执行状态。即,在过热的存储模块的温度降到低于预定阈值之后,垃圾收集器(106)将以正常方式工作,从而收集垃圾、回收不活动的存储区域、以及把活动的存储区域排列成存储器的连续块,而不考虑在其上分配所述活动存储区域的存储模块。
在RAM(168)中还保存操作系统(154)。支持按照本发明的实施例的管理存储模块间的热分布的操作系统的例子包括UNIXTM,LinuxTM,Microsoft XPTM,AIXTM,IBM的i5/OSTM,以及本领域的技术人员会想到的其它操作系统。图1的操作系统(154)、用户级应用(110)和调用栈(106)例子被表示在RAM(168)中,但这种软件的许多组件一般也保存在非易失性存储器中,比如保存在磁盘驱动器(170)上。
图1的计算机(152)包括通过扩展总线(160)和总线适配器(158)耦接到处理器(156)和计算机(152)的其它组件的磁盘驱动器适配器(172)。磁盘驱动器适配器(172)以磁盘驱动器(170)的形式把非易失性数据存储器连接到计算机(152)。可用在支持按照本发明的实施例管理存储模块间的热分布的计算机中的磁盘驱动器适配器包括电子集成驱动器(“IDE”)适配器、小型计算机系统接口(“SCSI”)适配器、以及本领域的技术人员会想到的其它适配器。本领域的技术人员会想到,非易失性计算机存储器也可被实现成光盘驱动器、电可擦可编程只读存储器(所谓的“EEPROM”或者“闪速”存储器)、RAM驱动器等。
图1的例证计算机(152)包括一个或多个输入/输出(“I/O”)适配器(178)。I/O适配器通过控制对诸如计算机显示屏之类的显示装置的输出以及来自诸如键盘和鼠标之类的用户输入装置(181)的用户输入,实现面向用户的输入/输出。图1的例证计算机(152)包括视频适配器(209),视频适配器(209)是专门设计用于对于诸如显示屏或计算机监视器之类的显示设备(180)的图形输出的I/O适配器的例子。视频适配器(209)通过高速视频总线(164)、总线适配器(158)、以及也是高速总线的前端总线(162),连接到处理器(156)。
图1的例证计算机(152)包括与其它计算机(182)进行数据通信以及与数据通信网络(101)进行数据通信的通信适配器(167)。可通过RS-232连接,通过诸如通用串行总线(“USB”)之类的外部总线,通过诸如IP数据通信网络之类的数据通信网络,以及按照本领域的技术人员会想到的其它方式,连续地进行这样的数据通信。通信适配器实现硬件层面的数据通信,通过通信适配器,一台计算机直接地或者通过数据通信网络把数据通信发送给另一台计算机。可用在支持按照本发明的实施例管理存储模块间的热分布的计算机中的通信适配器的例子包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网(IEEE 802.3)适配器、和用于无线数据通信网络通信的802.11适配器。
构成图1中图解所示的例证系统的服务器和其它设备的排列是说明性的,而不是限制性的。本领域的技术人员会想到,按照本发明的各个实施例可用的数据处理系统可包括图1中未示出的另外的服务器、路由器、其它设备和对等体系结构。这种数据处理系统中的网络可以支持许多数据通信协议,例如包括TCP(传输控制协议)、IP(网际协议)、HTTP(超文本传输协议)、WAP(无线接入协议)、HDTP(手持设备传输协议)、和本领域的技术人员会想到的其它协议。除了图1中图解说明的那些硬件平台之外,可在各种硬件平台上实现本发明的各个实施例。
进一步说明,图2是图解说明按照本发明的实施例的管理计算系统的存储模块间的热分布的例证方法的流程图。图2的方法是在与图1的计算机(152)类似的计算系统中进行的。其中执行图2的方法的计算系统包括若干个存储模块和若干个温度传感器。每个温度传感器测量计算系统中的存储模块的温度。图2的方法还由垃圾收集器(106)在垃圾收集期间进行。
图2的方法包括检索(208)计算系统的一个或多个温度传感器(102a,102b)的温度测量结果。取决于温度传感器的实现,可以按各种方式实现计算系统的一个或多个温度传感器(102a,102b)的温度测量结果的检索(208)。在其中温度传感器(102a,102b)被配置成当存储模块的温度超过阈值时中断处理器的实施例中,垃圾收集器(106)可通过响应于这种中断而提供识别存储模块的中断处理符来检索温度测量结果。在其中每个温度传感器周期性地保存存储模块的当前温度的实施例中,垃圾收集器(106)可周期性地检索该寄存器的内容,并且确定保存在该寄存器中的值是否大于预定阈值。本领域的技术人员会认识到,这些只是检索(208)温度传感器的温度测量结果的多种可能方式中的两种方式。
通过由垃圾收集器(106)在垃圾收集期间根据温度测量结果实时地确定(210)存储模块是否过热,来继续图2的方法。可用各种方式来确定(210)存储模块是否过热。例如,可通过对于每个温度测量结果,确定存储模块的测量温度是否大于预定阈值温度,来确定存储模块是否过热。
如果没有存储模块过热,那么通过等待(224)预定一段时间,再次检索(208)温度测量结果,之后确定(210)存储模块是否过热,来继续图2的方法。即,在图2的方法中,以预定时间间隔周期性地检索(208)计算系统的一个或多个温度传感器的温度测量结果并确定(210)存储模块是否过热。所述预定时间间隔可用各种方式来指定,不必局限于分和秒。相反,本领域的技术人员会想到,所述时间间隔可被规定成执行指令的数目、执行子例程的数目、函数调用的数目、子例程的返回次数等等。尽管图2描述了按照定期方式进行的检索(208)和确定(210),但可以响应于当存储模块的温度超过预定阈值时所引起的中断,异步地进行所述检索和确定。
如果温度传感器的温度测量结果指示存储模块过热,那么通过把过热的存储模块(104a)上的一个或多个活动存储区域重新分配(202)给不过热的存储模块(102b),来继续图2的方法。在图2的例子中,重新分配(202)一个或多个活动存储区域是通过把活动存储区域(110a)的内容从过热的存储模块复制(204)到不过热的存储模块(110b)来进行的。现有技术的垃圾收集器一般包括用于重新分配存储区域的工具。然而,在普通的现有应用中,这些工具用于解除分配或删除不活动的存储区域,以及把活动的存储区域的内容“上”移到解除分配的存储区域中,从而移动到活动存储区域的连续块中。相反,在图2的方法中,垃圾收集器把活动存储器从一个存储模块重新分配或者移动到另一个存储模块。通过在不过热的存储模块上,分配大小与要从过热的存储模块重新分配的活动存储区域相同的存储区域,然后把过热的存储模块上的活动存储区域的内容复制(204)到不过热的存储模块上的新分配区域,来进行所述重新分配(202)。在一些实施例中,垃圾收集器(106)可释放或解除分配过热的存储模块上的活动存储区域,而不把任何其它活动存储区域移动到释放的存储空间中。这样,该存储空间保持不被使用,从而不被访问,因而响应于所述存储器访问而生成的热量将被减少。在其它实施例中,在把活动存储区域重新分配给不过热的存储模块之后,垃圾收集器(106)可不释放过热的存储模块上的活动存储区域,从而确保该存储区域将在一定时间内不被访问。
一旦垃圾收集器(106)把过热的存储模块(104a)上的一个或多个活动存储区域(110a)重新分配(202)给不过热的存储模块(104b),垃圾收集器(106)在再次检索(208)温度测量结果并确定(210)存储模块是否过热之前,等待(224)预定的时间间隔。在所述等待时期内,垃圾收集器可被配置成在除了过热的存储模块以外的存储模块上继续正常的垃圾收集。
进一步说明,图3是按照本发明的实施例的管理计算系统的存储模块间的热分布的再一个例证方法的流程图。图3的方法和图2的方法的相似之处在于:图3的方法是在包括若干个存储模块和温度传感器的计算系统中进行的,其中每个温度传感器测量一个存储模块的温度。图3的方法和图2的方法的相似之处还在于:图3的方法包括检索(208)温度测量结果,由垃圾收集器(106)在垃圾收集期间确定温度传感器的温度测量结果是否指示存储模块过热,如果温度传感器的温度测量结果指示存储模块过热,那么把过热的存储模块上的一个或多个活动存储区域重新分配(202)给不过热的存储模块(包括把活动存储区域的内容从过热的存储模块复制(204)到不过热的存储模块)。
然而,图3的方法与图2的方法的不同之处在于:图3的方法包括在计算系统启动时,由基本输入/输出服务(310)模块在计算系统的每个存储模块(104a,104b)的非易失性存储器(306a,306b)中保存(308)与该存储模块相关联的物理存储地址。在包括多个存储模块,比如2个DIMM的计算机存储子系统中,每个存储模块代表一个范围的独立物理地址。在图3的例子中,在引导时,BIOS(310)保存每个存储模块的相关联物理地址范围的标识。这样,自动化计算机器的模块-比如垃圾收集器(106)或者操作系统(154)-可检查存储模块的非易失性存储器(306)的内容,以识别在该存储模块上的物理地址。本领域的技术人员会认识到,物理地址-存储模块关联的这种存储不必仅仅由BIOS模块来进行。相反,任何固件、软件、操作系统或操作系统组件可以把所述关联保存在存储模块(104a,104b)的非易失性存储器中。
在图3的方法中,把过热的存储模块上的一个或多个活动存储区域重新分配(202)给不过热的存储模块包括:向计算系统的操作系统(154)请求(302)映射到除了过热的存储模块(104a)以外的不同存储模块上的物理存储地址的虚拟地址。所述请求(302)可以是对操作系统函数的调用,该调用包括作为传递给所述函数的参数的存储模块标识符。
垃圾收集器和其它应用一般不知道与分配的存储区域相关联的物理地址空间。相反,垃圾收集器只知道提供给应用并由操作系统管理的应用的虚拟地址空间。图3的例子中的操作系统(154)被配置成接收对映射到不同存储模块的物理地址的虚拟地址的请求。响应于该请求,操作系统根据保存在所述不同存储模块的非易失性存储器(306a,306b)中的关联,来识别(312)所述不同存储模块的物理存储地址。
在图3的方法中,作为对请求(302)的响应,垃圾收集器(106)接收映射到另一个存储模块(104b)上的物理地址的虚拟地址,并利用(304)所述虚拟地址来分配不同的不过热的存储模块(104b)上的存储器。这种分配可以通过对操作系统函数的调用来进行,所述调用把从操作系统接收的虚拟地址和指定从所述虚拟地址开始的要分配的存储区域的大小的偏移量作为参数传递给所述函数。
进一步说明,图4是按照本发明的实施例的管理计算系统的存储模块间的热分布的另一个例证方法的流程图。图4的方法和图2的方法的相似之处在于:图4的方法是在包括若干个存储模块和温度传感器的计算系统中进行的,其中每个温度传感器测量一个存储模块的温度。图4的方法和图2的方法的相似之处还在于:图4的方法包括检索(208)温度测量结果,由垃圾收集器(106)在垃圾收集期间确定温度传感器的温度测量结果是否指示存储模块过热,如果温度传感器的温度测量结果指示存储模块过热,那么把过热的存储模块上的一个或多个活动存储区域重新分配(202)给不过热的存储模块(包括把活动存储区域的内容从过热的存储模块复制(204)到不过热的存储模块)。
然而,图4的方法与图2的方法的不同之处在于:在图4的方法中,把过热的存储模块上的一个或多个活动存储区域重新分配(202)给不过热的存储器包括:分配(402)在离开过热的存储模块上的活动存储区域预定大小的虚拟存储地址开始的存储器。
许多操作系统被配置成按照物理上连续的方式来分配存储区域;一个存储区域接着另一个存储区域,其间几乎没有空闲空间。从而,即使在利用虚拟地址工作的计算环境中,虚拟地址通常也对应于类似的物理地址。因而,对存储器子系统有一定了解,比如了解每个存储模块的大小的垃圾收集器(106)可通过请求操作系统分配在虚拟地址的存储器来分配另一个不过热的存储模块上的存储器,如果所述虚拟地址直接映射到相同或者几乎相同的物理地址,那么所述虚拟地址必然将引用另一个存储模块。例如,考虑由两个1GB DIMM构成的存储器子系统。假定第一个DIMM过热,垃圾收集器在热感知状态下运行,以及要被重新分配(202)的活动存储区域在一个虚拟地址开始,如果与物理地址相同,该虚拟地址将引用离开过热的存储模块的初始存储地址512MB的存储单元。给定操作系统的虚拟地址-物理地址映射的典型紧密特性,尽管不为垃圾收集器所知,映射到该存储区域的虚拟地址的物理地址可能在离开存储模块的初始存储地址512 MB处或附近-大约在过热的DIMM的中间点开始。因而,在大多数情况下,分配(402)在离开活动存储区域的先前利用虚拟存储地址1GB的虚拟存储地址的存储区域将导致在不同的存储模块上的存储器分配-同样,依赖于操作系统的虚拟地址-物理地址映射的通常紧密关系。例证的分配(402)是一种由垃圾收集器进行的映射到另一个存储模块上的物理地址的虚拟地址的有根据推测。
本领域的技术人员会理解,本发明的各个方面可被具体体现成系统、方法或计算机程序产品。因而,本发明的各个方面可以采取纯硬件实施例,纯软件实施例(包括固件、驻留软件、微代码等),或者结合这里通常都可被称为“电路”、“模块”或“系统”的软件和硬件特征的实施例的形式。此外,本发明的各个方面可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含于其中的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读传输介质或计算机可读存储介质。计算机可读存储介质可以是例如(但不限于)电、磁、光、电磁、红外或半导体系统、设备或装置,或者它们的任意适当组合。计算机可读存储介质的更具体例子(非穷举列表)可包括:具有一条或多条导线的电连接、可移植计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪速存储器)、光纤、可移植光盘只读存储器(CD-ROM)、光存储装置、磁存储装置,或者它们的任意适当组合。在本文的上下文中,计算机可读存储介质可以是能够包含或保存供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何有形介质。
计算机可读传输介质可包括计算机可读程序代码包含在其中,例如,包含在基带中,或者体现为载波的一部分的传播数据信号。这种传播信号可以采取任意各种形式,包括(但不限于)电磁、光,或者它们的任意适当组合。计算机可读信号介质可以是不是计算机可读存储介质,能够传递、传播或传送供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何计算机可读介质。
包含在计算机可读介质上的程序代码可利用任何适当的媒体传送,包括(但不限于)无线、有线、光缆、RF等,或者它们的任何适当组合。
可用一种或多种编程语言,包括诸如Java、Smalltalk、C++之类的面向对象编程语言,和诸如“C”编程语言或类似编程语言之类的常规过程编程语言的任意组合,编写执行本发明的各个方面的操作的计算机程序代码。程序代码可完全在用户的计算机上运行,部分在用户的计算机上运行,作为独立的软件包,部分在用户的计算机上运行并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后一情况下,远程计算机可通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户的计算机,或者可实现与外部计算机的连接(例如,利用因特网服务提供商,经因特网实现与外部计算机的连接)。
上面参考按照本发明的各个实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图,说明本发明的各个方面。要明白流程图和/或方框图的每个方框,以及流程图和/或方框图中的各个方框的组合可用计算机程序指令实现。这些计算机程序指令可被提供给通用计算机,专用计算机或者其它可编程数据处理设备的处理器,从而产生机器,以致借助计算机或其它可编程数据处理设备的处理器运行的指令产生实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。
这些计算机程序指令也可被保存在计算机可读介质中,所述计算机可读介质能够指令计算机、其它可编程数据处理设备或者其它装置按特定方式运行,以致保存在计算机可读介质中的指令产生制成品,所述制成品包括实现在示意流程图和/或示意方框图的一个或多个方框中指定的功能/动作的指令。
计算机程序指令也可被加载到计算机,其它可编程数据处理设备或其它装置上,使得在计算机,其它可编程设备或其它装置上执行一系列的操作步骤,从而产生计算机实现的处理,以致在计算机或其它可编程设备上执行的指令提供实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的处理。
附图中的流程图和方框图图解说明按照本发明的各个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框可代表包含实现指定逻辑功能的一个或多个可执行指令的模块、程序段或一部分代码。另外应注意,在一些备选实现中,在方框中表示的功能可不按照附图中所示的顺序发生。例如,接连表示的两个方框事实上可以基本同时地执行,或者各个方框有时可按照相反的顺序执行,取决于所涉及的功能。另外要注意方框图和/或流程图的每个方框,以及方框图和/或流程图中的各个方框的组合可用实现指定功能或动作的基于专用硬件的系统,或者专用硬件和计算机指令的组合实现。
根据上面的说明,应理解在本发明的各个实施例中,可以作出各种修改和变化,而不脱离本发明的精神。本说明书中的描述只是用于举例说明,而不是对本发明的限制。本发明的范围只由以下权利要求限定。
Claims (12)
1.一种管理计算系统的存储模块间的热分布的方法,所述计算系统包括多个存储模块和多个温度传感器,每个温度传感器测量一个存储模块的温度,所述方法包括:
由垃圾收集器在垃圾收集期间确定温度传感器的温度测量结果是否指示存储模块过热;和
如果温度传感器的温度测量结果指示存储模块过热,那么把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块,包括把所述活动存储区域的内容从过热的存储模块复制到不过热的存储模块。
2.按照权利要求1所述的方法,其中,把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块进一步包括:
向计算系统的操作系统请求映射到不过热的存储模块上的物理存储地址的虚拟地址;和
利用所述虚拟地址来分配不过热的存储模块上的存储器。
3.按照权利要求2所述的方法,进一步包括:
当计算系统启动时,在每个存储模块的非易失性存储器中保存与该存储模块相关联的物理存储地址;和
响应于对映射到不过热的存储模块上的物理存储地址的虚拟地址的请求,操作系统根据保存在不过热的存储模块的非易失性存储器中的关联来识别不过热的存储模块的物理存储地址。
4.按照权利要求1所述的方法,其中,把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块进一步包括:
分配在离开过热的存储模块上的活动存储区域预定大小的虚拟存储地址开始的存储器。
5.按照权利要求1所述的方法,其中,由垃圾收集器在垃圾收集期间确定温度传感器的温度测量结果是否指示存储模块过热进一步包括:
以预定时间间隔周期性地确定温度传感器的温度测量结果是否指示存储模块过热。
6.按照权利要求1所述的方法,其中,每个存储模块包括下列之一:
双列直插式存储模块(“DIMM”);
DIMM的区块;和
DIMM的动态随机存取存储器(“DRAM”)集成电路。
7.一种管理计算系统的存储模块间的热分布的设备,所述计算系统包括多个存储模块和多个温度传感器,每个温度传感器测量一个存储模块的温度,所述设备包括:
用于由垃圾收集器在垃圾收集期间确定温度传感器的温度测量结果是否指示存储模块过热的装置;和
用于如果温度传感器的温度测量结果指示存储模块过热,那么把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块,包括把所述活动存储区域的内容从过热的存储模块复制到不过热的存储模块的装置。
8.按照权利要求7所述的设备,其中,把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块进一步包括:
向计算系统的操作系统请求映射到不过热的存储模块上的物理存储地址的虚拟地址;和
利用所述虚拟地址来分配不同的存储模块上的存储器。
9.按照权利要求8所述的设备,进一步包括:
用于当计算系统启动时,在每个存储模块的非易失性存储器中保存与该存储模块相关联的物理存储地址的装置;和
用于响应于对映射到不过热的存储模块上的物理存储地址的虚拟地址的请求,操作系统根据保存在不过热的存储模块的非易失性存储器中的关联来识别不过热的存储模块的物理存储地址的装置。
10.按照权利要求7所述的设备,其中,把过热的存储模块上的一个或多个活动存储区域重新分配给不过热的存储模块进一步包括:
分配在离开过热的存储模块上的活动存储区域预定大小的虚拟存储地址开始的存储器。
11.按照权利要求7所述的设备,其中,用于由垃圾收集器在垃圾收集期间确定温度传感器的温度测量结果是否指示存储模块过热的装置进一步包括:
用于以预定时间间隔周期性地确定温度传感器的温度测量结果是否指示存储模块过热的装置。
12.按照权利要求7所述的设备,其中,每个存储模块包括下列之一:
双列直插式存储模块(“DIMM”);
DIMM的区块;和
DIMM的动态随机存取存储器(“DRAM”)集成电路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/228,898 | 2011-09-09 | ||
US13/228,898 US9164898B2 (en) | 2011-09-09 | 2011-09-09 | Administering thermal distribution among memory modules of a computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999132A CN102999132A (zh) | 2013-03-27 |
CN102999132B true CN102999132B (zh) | 2015-06-17 |
Family
ID=46546293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210328826.1A Expired - Fee Related CN102999132B (zh) | 2011-09-09 | 2012-09-07 | 管理计算系统的存储模块间的热分布的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9164898B2 (zh) |
CN (1) | CN102999132B (zh) |
DE (1) | DE102012215192B4 (zh) |
GB (1) | GB2494490B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9164898B2 (en) | 2011-09-09 | 2015-10-20 | International Business Machines Corporation | Administering thermal distribution among memory modules of a computing system |
JP5792019B2 (ja) | 2011-10-03 | 2015-10-07 | 株式会社日立製作所 | 半導体装置 |
US9146855B2 (en) * | 2012-01-09 | 2015-09-29 | Dell Products Lp | Systems and methods for tracking and managing non-volatile memory wear |
US8918699B2 (en) * | 2012-07-31 | 2014-12-23 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor storage apparatus |
JP2014044527A (ja) * | 2012-08-24 | 2014-03-13 | Canon Inc | 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体 |
JP6041610B2 (ja) * | 2012-10-02 | 2016-12-14 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体 |
US9342443B2 (en) * | 2013-03-15 | 2016-05-17 | Micron Technology, Inc. | Systems and methods for memory system management based on thermal information of a memory system |
US9501393B2 (en) * | 2014-01-27 | 2016-11-22 | Western Digital Technologies, Inc. | Data storage system garbage collection based on at least one attribute |
JP6381480B2 (ja) * | 2015-05-12 | 2018-08-29 | 東芝メモリ株式会社 | 半導体装置 |
US10209749B2 (en) * | 2015-06-15 | 2019-02-19 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Workload allocation based on downstream thermal impacts |
KR102507769B1 (ko) * | 2015-11-04 | 2023-03-09 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10108462B2 (en) * | 2016-02-12 | 2018-10-23 | Microsoft Technology Licensing, Llc | Virtualizing sensors |
US10872018B2 (en) * | 2018-01-30 | 2020-12-22 | Quanta Computer Inc. | Memory data preservation solution |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530850A (en) * | 1993-10-25 | 1996-06-25 | International Business Machines Corporation | Data storage library array with log-structured file system which allows simultaneous write and garbage collection |
US5502838A (en) | 1994-04-28 | 1996-03-26 | Consilium Overseas Limited | Temperature management for integrated circuits |
US6838331B2 (en) | 2002-04-09 | 2005-01-04 | Micron Technology, Inc. | Method and system for dynamically operating memory in a power-saving error correction mode |
US7146521B1 (en) | 2002-08-21 | 2006-12-05 | 3Pardata, Inc. | Preventing damage of storage devices and data loss in a data storage system |
US7191088B1 (en) | 2004-10-25 | 2007-03-13 | Nvidia Corporation | Method and system for memory temperature detection and thermal load management |
US20070257359A1 (en) | 2006-05-03 | 2007-11-08 | Reis Bradley E | Thermal Management Device For A Memory Module |
US7500078B2 (en) | 2006-08-25 | 2009-03-03 | Dell Products L.P. | Thermal control of memory modules using proximity information |
US7788513B2 (en) | 2006-08-29 | 2010-08-31 | Hewlett-Packard Development Company, L.P. | Method of reducing power consumption of a computing system by evacuating selective platform memory components thereof |
US7596714B2 (en) | 2006-11-20 | 2009-09-29 | Intel Corporation | Methods and apparatus to manage throttling in computing environments |
US8825718B2 (en) * | 2006-12-28 | 2014-09-02 | Oracle America, Inc. | Methods and apparatus for marking objects for garbage collection in an object-based memory system |
US8954685B2 (en) | 2008-06-23 | 2015-02-10 | International Business Machines Corporation | Virtualized SAS adapter with logic unit partitioning |
US8566539B2 (en) | 2009-01-14 | 2013-10-22 | International Business Machines Corporation | Managing thermal condition of a memory |
US8458417B2 (en) * | 2010-03-10 | 2013-06-04 | Seagate Technology Llc | Garbage collection in a storage device |
US9164898B2 (en) | 2011-09-09 | 2015-10-20 | International Business Machines Corporation | Administering thermal distribution among memory modules of a computing system |
-
2011
- 2011-09-09 US US13/228,898 patent/US9164898B2/en not_active Expired - Fee Related
-
2012
- 2012-05-18 GB GB1208777.1A patent/GB2494490B/en active Active
- 2012-08-27 DE DE102012215192.3A patent/DE102012215192B4/de active Active
- 2012-09-07 CN CN201210328826.1A patent/CN102999132B/zh not_active Expired - Fee Related
- 2012-12-11 US US13/710,778 patent/US9164899B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102999132A (zh) | 2013-03-27 |
US20130067136A1 (en) | 2013-03-14 |
DE102012215192A1 (de) | 2013-03-14 |
DE102012215192B4 (de) | 2023-07-27 |
US9164898B2 (en) | 2015-10-20 |
US20130103885A1 (en) | 2013-04-25 |
US9164899B2 (en) | 2015-10-20 |
GB2494490B (en) | 2014-01-01 |
GB201208777D0 (en) | 2012-07-04 |
GB2494490A (en) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999132B (zh) | 管理计算系统的存储模块间的热分布的方法和系统 | |
US20180276233A1 (en) | Techniques for implementing hybrid flash/hdd-based virtual disk files | |
US9182927B2 (en) | Techniques for implementing hybrid flash/HDD-based virtual disk files | |
US9886443B1 (en) | Distributed NFS metadata server | |
KR101936453B1 (ko) | 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
US9280300B2 (en) | Techniques for dynamically relocating virtual disk file blocks between flash storage and HDD-based storage | |
KR101976221B1 (ko) | 수정되지 않은 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
US20190253489A1 (en) | Command process load balancing system | |
JP7039631B2 (ja) | アクセスリクエストを管理するための方法、装置、デバイス、および記憶媒体 | |
JP5385912B2 (ja) | 算出装置、システム管理装置、算出方法およびプログラム | |
JP2018084907A (ja) | ジョブ消費電力推定プログラム、並列処理装置およびジョブ消費電力推定方法 | |
US9251149B2 (en) | Data set size tracking and management | |
US8966212B2 (en) | Memory management method, computer system and computer readable medium | |
US20200285510A1 (en) | High precision load distribution among processors | |
Herzeel et al. | elPrep 4: A multithreaded framework for sequence analysis | |
CN102326151B (zh) | 存储系统 | |
Turcu et al. | Reshaping text data for efficient processing on Amazon EC2 | |
US20090228537A1 (en) | Object Allocation System and Method | |
CN110058923A (zh) | 一种基于动态预取策略的Docker容器COW机制优化方法及系统 | |
Becker et al. | Memory-driven computing accelerates genomic data processing | |
JPWO2004084095A1 (ja) | 情報検索システム,情報検索方法,情報検索装置,情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体 | |
US8769221B2 (en) | Preemptive page eviction | |
Sim et al. | An Analysis Workflow-Aware Storage System for Multi-Core Active Flash Arrays | |
Mei et al. | Execution Repair for Spark Programs by Active Maintenance of Partition Dependency | |
Oikawa | Practical Uses of Memory Storage Extension |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150617 |