管理存储器的热条件.pdf

上传人:b*** 文档编号:974363 上传时间:2018-03-22 格式:PDF 页数:24 大小:1.42MB
返回 下载 相关 举报
摘要
申请专利号:

CN201010003678.7

申请日:

2010.01.14

公开号:

CN101813965A

公开日:

2010.08.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 1/20申请日:20100114|||公开

IPC分类号:

G06F1/20

主分类号:

G06F1/20

申请人:

国际商业机器公司

发明人:

黛安娜·G·弗莱明; 加迪尔·R·戈拉米; 奥克塔维安·F·赫里斯卡; 威廉·A·马龙; 迈索尔·S·斯里尼瓦斯

地址:

美国纽约阿芒克

优先权:

2009.01.14 US 12/353,343

专利代理机构:

北京市柳沈律师事务所 11105

代理人:

周少杰

PDF下载: PDF下载
内容摘要

在说明性实施例中提供用于管理存储器的热条件的方法、系统和计算机可用的程序产品。识别已经超过或很可能超过存储器的热条件的阈值的条件。第一工作负荷的部分识别为超过阈值的原因。识别第二工作负荷的第二部分,当被执行时所述第二部分不导致超过阈值。对应于所述第一部分的一组操作与对应于所述第二部分的第二组操作交织。执行交织的第一和第二工作负荷的第一和第二部分,执行使得存储器的热条件维持低于阈值。当执行时,第二部分可以使用第二存储器、存储器的第二区域或其组合。

权利要求书

1: 一种计算机实现的方法,用于管理数据处理系统中的存储器中的热条件,所述计算机实现的方法包括: 识别(i)已经超过存储器的热条件的阈值和(ii)很可能超过存储器的热条件的阈值之一; 识别第一工作负荷的第一部分作为超过所述阈值的原因; 识别第二工作负荷的第二部分,所述第二部分在执行时不导致超过所述阈值; 交织对应于第一工作负荷的第一部分的一组操作与对应于第二工作负荷的第二部分的第二组操作;以及 执行第一和第二工作负荷的交织的第一和第二部分,该执行导致存储器的热条件保持在所述阈值之下。
2: 如权利要求1所述的计算机实现的方法,其中当执行时,所述第二部分使用(i)第二存储器和(ii)所述存储器的第二区域之一。
3: 如权利要求1所述的计算机实现的方法,其中存储器是所述数据处理系统的存储器组件的区域,并且其中交织为存储器提供冷却时段,所述计算机实现的方法还包括: 通过(i)不执行使用所述区域的操作和(ii)对所述区域操作冷却操作之一来冷却所述存储器。
4: 如权利要求1所述的计算机实现的方法,其中所述第二工作负荷配置为在第二数据处理系统上执行,并且其中不通过执行第二部分超过的阈值是第二阈值。
5: 如权利要求4所述的计算机实现的方法,还包括: 执行第一和第二工作负荷的交织的第一和第二部分,该执行导致所述数据处理系统的存储器的热条件保持在阈值之下,该执行还导致所述第二数据处理系统的第二存储器的第二热条件保持在第二阈值之下。
6: 如权利要求1所述的计算机实现的方法,其中第一工作负荷的第一部分的一组操作和第二工作负荷的第二部分的第二组操作中的操作导致在存储器中的位置处的(i)读取和(ii)写入之一,所述操作还导致在存储器中的所述位置处的热量生成。
7: 一种计算机实现的系统,用于管理数据处理系统中的存储器中的热条件,所述计算机实现的系统包括: 用于识别(i)已经超过存储器的热条件的阈值和(ii)很可能超过存储器的热条件的阈值之一的装置; 用于识别第一工作负荷的第一部分作为超过所述阈值的原因的装置; 用于识别第二工作负荷的第二部分,所述第二部分在执行时不导致超过所述阈值的装置; 用于交织对应于第一工作负荷的第一部分的一组操作与对应于第二工作负荷的第二部分的第二组操作的装置;以及 用于执行第一和第二工作负荷的交织的第一和第二部分,该执行导致存储器的热条件保持在所述阈值之下的装置。
8: 如权利要求7所述的计算机实现的系统,其中当执行时,所述第二部分使用(i)第二存储器和(ii)所述存储器的第二区域之一。
9: 如权利要求7所述的计算机实现的系统,其中存储器是所述数据处理系统的存储器组件的区域,并且其中交织为存储器提供冷却时段,所述计算机实现的系统还包括: 用于通过(i)不执行使用所述区域的操作和(ii)对所述区域操作冷却操作之一来冷却所述存储器的装置。
10: 如权利要求7所述的计算机实现的系统,其中所述第二工作负荷配置为在第二数据处理系统上执行,并且其中不通过执行第二部分超过的阈值是第二阈值。
11: 如权利要求10所述的计算机实现的系统,还包括: 用于执行第一和第二工作负荷的交织的第一和第二部分,该执行导致所述数据处理系统的存储器的热条件保持在阈值之下,该执行还导致所述第二数据处理系统的第二存储器的第二热条件保持在第二阈值之下的装置。
12: 如权利要求7所述的计算机实现的系统,其中第一工作负荷的第一部分的一组操作和第二工作负荷的第二部分的第二组操作中的操作导致在存储器中的位置处的(i)读取和(ii)写入之一,所述操作还导致在存储器中的所述位置处的热量生成。

说明书


管理存储器的热条件 

    【技术领域】

    本发明一般涉及改进的数据处理系统,并且具体地涉及用于使用数据处理系统的存储器组件的计算机实现的方法。更具体地,本发明涉及用于管理数据处理系统中存储器的热条件(thermal condition)的计算机实现的方法、系统和计算机可用的程序代码。 

     背景技术

    通常,当使用数据处理系统的组件时,该组件生成一些热量。热量通常是组件的电操作的副产品,并且通常在数据处理系统的操作中是不希望的。当数据处理系统在操作时,一般地采用如散热片(heat sink)、冷却风扇、液冷装置和通风口的许多散热技术来消散由数据处理系统的组件生成的热量。 

    然而,存储器是对于在数据处理系统中使用的所有存储器组件的统一术语。例如,存储器包括已知为在处理器芯片上建立的1级高速缓存的板载高速缓存存储器。作为另一示例,存储器包括数据处理系统可以利用作为2级高速缓存、3级高速缓存或主存储器的可插入存储器模块。 

    数据处理系统可以包括在数据处理系统的存储器中包括的其他存储器组件。例如,图形电路板可以包括除了上述可插入存储器模块之外的、并且与上述可插入存储器模块分离的存储器组件。其他电路板、可插入电路卡和组件(如硬盘)可以包括它们自己的存储器组件,其可以是数据处理系统中的存储器的一部分。 

    可以使用多种数据处理系统配置数据处理环境。一些数据处理系统可以是独立的计算机,如桌上型或膝上型计算机。一些数据处理系统它们自己可以包括若干组件,使得组件能够独自操作为数据处理系统。例如,数据处理系统可以分为逻辑分区(LPAR)。逻辑分区也简单地已知为分区,并且作为节点。每个节点操作为独立于其他节点的分立的数据处理系统。通常,分区管理固件连接各个节点,并且提供各节点之间的网络连接性。管理程序(hypervisor)是这种分区管理固件的示例。 

    节点可以包括操作系统的备份。节点可以单独或与其他节点和数据处理系统结合执行软件应用。节点还可以包括对于该节点的使用可用的存储器,以便执行应用。在某些分布式计算架构中,节点的存储器还可以由其他节点访问。 

    数据处理系统中的固件也可以包括存储器。固件是包括硬件和软件作为单元的组件。在一些情况下,固件是存储器芯片中存储的“软件”,该存储器芯片在没有电力的情况下保持其内容,如例如只读存储器(ROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和非易失性随机存取存储器(非易失性RAM)。 

    这些仅是存储器在数据处理系统中可以采取的形式的一些示例,并且其中可应用说明性实施例。在给定的数据处理系统中,执行应用使用部分存储器空间。由于这些存储器的部分用于存储和检索数据,所以这些部分可能比存储器的其他部分展现不同的热特性。例如,频繁读取或写入的存储器的区域与很少访问的存储器的另一区域相比很可能产生更多热量。 

    【发明内容】

    说明性实施例提供用于管理数据处理系统中存储器的热条件的方法、系统和计算机可用的程序产品。识别已经超过或很可能超过存储器的热条件的阈值的条件。识别第一工作负荷的部分为超过阈值的原因。识别第二工作负荷的第二部分,所述第二部分在被执行时不导致超过阈值。交织对应于所述第一部分的一组操作与对应于所述第二部分的第二组操作。执行第一和第二工作负荷的交织的第一和第二部分,该执行使得存储器的热条件维持低于阈值。 

    在一个实施例中,当执行时,第二部分可以使用第二存储器、存储器的第二区域或其组合。 

    在另一实施例中,存储器可以是数据处理系统的存储器组件的区域。交织可以为存储器提供冷却时段、通过执行不使用该区域的操作冷却该区域、对该区域操作冷却操作或其组合。 

    在另一实施例中,第二工作负荷可以配置为在第二数据处理系统上执行。在这样的实施例中,“通过执行第二部分不超过的阈值”可以是第二阈值。 

    在另一实施例中,可以执行交织的第一和第二工作负荷的第一和第二部 分。该执行可以使得第一数据处理系统的存储器的热条件维持在阈值之下。该执行还可以使得第二数据处理系统的第二存储器的第二热条件也维持在第二阈值之下。 

    在另一实施例中,第一和第二组操作中的操作可以导致在存储器中位置处的读取、写入或其组合。操作还可以使得在存储器中位置处的热量生成。 

    【附图说明】

    在权利要求中阐述了本发明的新颖特征。然而,当结合附图阅读时,发明本身以及使用的优选模式、其进一步的目的和优点将通过参照说明性实施例的以下详细描述而被最好地理解,其中: 

    图1描述其中可以实现说明性实施例的数据处理系统的框图; 

    图2是描述其中可以实现说明性实施例的示例逻辑分区平台的框图; 

    图3描述其中可以实现说明性实施例的存储器配置的框图; 

    图4A描述可以导致可以实现说明性实施例的、用于管理的热条件的工作负荷的框图; 

    图4B描述降低存储器温度的抑制(throttle)方法的框图,所述方法的缺点可以通过说明性实施例减少或移除; 

    图5描述根据说明性实施例、用于管理存储器的热条件的交织的工作负荷的框图; 

    图6描述根据说明性实施例、跨越多个数据处理系统的交织的工作负荷的框图; 

    图7描述根据说明性实施例管理存储器的热条件的处理的流程图;以及 

    图8描述根据说明性实施例、使用另一数据处理系统管理一个数据处理系统中的存储器的热条件的处理的流程图。 

    【具体实施方式】

    说明性实施例认识到在数据处理系统中执行不同的工作负荷可以使用数据处理系统的存储器的不同区域。工作负荷是一组任务或操作,其在数据处理系统中执行,并且导致使用数据处理系统的存储器。一组任务或操作是一个或多个任务或操作。例如,执行应用的某些指令可以使得数据处理系统中的处理器在数据处理系统的存储器的某些位置读取或写入数据。 

    说明性实施例还认识到存储器的某些区域的热条件可以与在数据处理系统中执行的工作负荷相关。例如,如果数据处理系统重复地执行某应用(如操作系统的模块),则由该应用利用的存储器的区域与存储器的其他区域相比可能展现更高温度和更多热疲劳(fatigue)。温度、热应力、热疲劳、热磨损(wear and tear)、由于增加的温度的性能的劣化、以及其他与存储器相关联的类似的热因素单独或在一些组合中称为存储器的热条件。 

    此外,说明性实施例认识到许多应用、组件或工作负荷通常使用存储器的专用区域。此外,一些工作负荷通过保持它们的数据接近某些处理器或组件,维持对某些处理器或其他组件的亲和力(affinity)。以此方式维持与组件的亲和力使得数据占据或者收复存储器的局部区域。说明性实施例认识到存储器的这种使用劣化了存储器的那些区域的热条件。 

    数据处理系统的固件通常监视和管理存在于数据处理系统中的硬件条件。对于存储器,如果固件感测到存储器的区域的温度已经超过阈值,则固件可以抑制处理器。抑制处理器是在处理器的指令队列中插入空闲或“不操作”指令(no‑op),使得在执行no‑op指令时处理器不执行任何操作。 

    一方面,说明性实施例认识到应用和组件中的某些算法试图将数据保持在存储器的特定区域以便提高性能。例如,一个用于提高性能的策略是专用高速缓存以避免在文本切换期间丢失数据。该策略的一个效果是在存储器的密集位置集中热应力。 

    另一方面,说明性实施例还认识到在相同的工作负荷期间,数据处理系统固件可以采用校正措施来避免硬件故障,例如通过抑制处理器以降低由存储器使用的局部化导致的温度。因此,说明性实施例认识到存储器的热条件可以导致数据处理系统的自校正动作,以取消或劣化由某些工作负荷算法所追求的性能增益。 

    为了解决与存储器的热条件相关联的这些和其他问题,说明性实施例提供了用于管理数据处理系统中存储器的热条件的改进的方法、系统和计算机可用的程序产品。根据说明性实施例,数据处理系统可以在执行一组工作负荷的同时控制、限制、降低、改变或另外管理存储器的热条件。一组工作负荷是两个或多个工作负荷。 

    说明性实施例此外还提供交织(interleaving)工作负荷的方式。例如,使用说明性实施例的节点可以是执行可以压制存储器的一个区域的热条件的工作负荷。第二工作负荷可以利用存储器的不同区域。说明性实施例提供可以交织的两个或多个工作负荷,所述两个或多个工作负荷利用存储器的不同区域。以此方式,其热条件可以从一个工作负荷改变的存储器的区域具有在节点执行其他工作负荷的同时冷却的机会。因此,说明性实施例移除或减少用于管理存储器的热条件的抑制的使用。

    这里列出的任何优点仅是示例,并且不旨在是限制说明性实施例。通过具体的说明性实施例可以实现额外或不同的优点。此外,特定的说明性实施例可以具有一些、全部或没有上面列出的优点。 

    为了描述的清楚性,在一些使用仅作为示例的特定数据处理系统和环境的情况下描述说明性实施例。说明性实施例可以与在说明性实施例的范围内的其他可比较的或类似地提出的架构结合使用。 

    参照附图并且具体参照图1和2,这些图是其中可以实现说明性实施例的数据处理环境的示例图。图1和2仅是示例,而不旨在断言或暗示关于其中可以实现不同实施例的环境的任何限制。特定实现可以对基于以下说明描述的环境进行许多修改。 

    参照图1,该图描述其中可以实现说明性实施例的数据处理系统的框图。数据处理系统100可以是包括连接到系统总线106的多个处理器101、102、103和104的对称多处理器(SMP)系统。例如,数据处理系统100可以是实现为网络内的服务器的IBM (eServer是产品,并且e(标志)server是国际商用机器公司在美国和其他国家的商标)。替代地,可以采用单个处理器系统。提供接口给多个局部存储器160‑163的存储器控制器/高速缓存108也连接到系统总线106。I/O总线桥110连接到系统总线106,并且提供接口给I/O总线112。如所描述的,存储器控制器/高速缓存108和I/O总线桥110可以是集成的。 

    数据处理系统100是逻辑分区的数据处理系统。因此,数据处理系统100可以具有同时运行的多个不同种类的操作系统(或单个操作系统的多个实例(instance))。这些多个操作系统的每一个可以具有在其中执行的任何数目的软件程序。数据处理系统100被逻辑分区,使得不同的PCI I/O适配器120‑121、128‑129和136、图形适配器148、以及硬盘适配器149可以分配给不同的逻辑分区。在此情况下,图形适配器148为显示设备(未示出)连接,同时硬盘适配器149连接到并且控制硬盘150。 

    因此,例如,假设数据处理系统100分为三个逻辑分区P1、P2和P3。每个PCI I/O适配器120‑121、128‑129和136、图形适配器148、硬盘适配器149、每个主机处理器101‑104、以及来自局部存储器160‑163的存储器分配给三个分区的每一个。在这些示例中,存储器160‑163可以采取双重直插式存储器模块(DIMM)的形式。DIMM不是普通地基于每一DIMM分配到分区。而是分区将得到由平台看到的总体存储器的一部分。例如,处理器101、来自局部存储器160‑163的存储器的某部分、以及I/O适配器120、128和129可以分配到逻辑分区P1;处理器102‑103、来自局部存储器160‑163的存储器的某部分、以及PCI I/O适配器121和136可以分配到逻辑分区P2;以及处理器104、来自局部存储器160‑163的存储器的某部分、图形适配器148和硬盘适配器149可以分配到逻辑分区P3。 

    数据处理系统100中执行的每个操作系统分配到不同的逻辑分区。因此,数据处理系统100中执行的每个操作系统仅可以访问在其逻辑分区内的那些I/O单元。因此,例如,先进交互式执行 操作系统的一个实例可以在分区P1内执行,AIX操作系统的第二实例(镜像(image))可以在分区P2内执行,并且 或 操作系统可以在分区P3内操作(AIX和OS/400是国际商业机器公司在美国和其它国家的商标。Linux是Linus Torvalds在美国和其它国家的商标)。 

    连接到I/O总线112的外围组件互连(PCI)主机桥114提供接口给PCI局部总线115。多个PCI输入/输出适配器120‑121通过PCI到PCI桥116、PCI总线118、PCI总线119、I/O插槽170和I/O插槽171连接到PCI总线115。PCI到PCI桥116提供接口给PCI总线118和PCI总线119。PCI I/O适配器120和121分别置于I/O插槽170和171中。典型的PCI总线实现支持四个到八个I/O适配器之间(即,用于附加连接器的扩展插槽)。每个PCI I/O适配器120‑121提供数据处理系统100和输入/输出设备(如例如作为数据处理系统100的客户端的其它网络计算机)之间的接口。 

    额外的PCI主机桥122提供用于额外的PCI总线123的接口。PCI总线123连接到多个PCI I/O适配器128‑129。PCI I/O适配器128‑129通过PCI到PCI桥124、PCI总线126、PCI总线127、I/O插槽172和I/O插槽173连接到PCI总线123。PCI到PCI桥124提供接口给PCI总线126和PCI总线127。PCI I/O适配器128和129分别置于I/O插槽172和173中。以此方式,可以 通过每个PCI I/O适配器128‑129支持额外的I/O设备,如例如调制解调器或网络适配器。结果,数据处理系统100允许到多个网络计算机的连接。 

    存储器映射的图形适配器148插入I/O插槽174,并且通过PCI总线144、PCI到PCI桥142、PCI总线141和PCI主机桥140连接到I/O总线112。硬盘适配器149可以置于连接到PCI总线145的I/O插槽175。依次地,该总线连接到PCI到PCI桥142,该PCI到PCI桥142通过PCI总线141连接到PCI主机桥140。 

    PCI主机桥130为PCI总线131提供接口以连接到I/O总线112。PCI I/O适配器136连接到I/O插槽176,该I/O插槽176通过PCI总线133连接到PCI到PCI桥132。PCI到PCI桥132连接到PCI总线131。该PCI总线还将PCI主机桥130连接到服务处理器邮箱接口和ISA总线访问通过逻辑194和PCI到PCI桥132。 

    服务处理器邮箱接口和ISA总线访问通过逻辑194转发指定到PCI/ISA桥193的PCI访问。NVRAM存储192连接到ISA总线196。服务处理器135通过其局部PCI总线195连接到服务处理器邮箱接口和ISA总线访问通过逻辑194。服务处理器135还经由多个JTAG/I2C总线134连接到处理器101‑104。JTAG/I2C总线134是JTAG/扫描总线(见IEEE 1149.1)和飞利浦I2C总线的组合。 

    然而,替代地,JTAG/I2C总线134可以仅由飞利浦I2C总线或仅由JTAG/扫描总线代替。主机处理器101、102、103和104的所有SP‑ATTN信号一起连接到服务处理器135的中断输入信号。服务处理器135具有其自己的局部存储器191,并且访问硬件OP面板190。 

    当数据处理系统100初始上电时,服务处理器135使用JTAG/I2C总线134来询问系统(主机)处理器101‑104、存储器控制器/高速缓存108和I/O桥110。在该步骤完成时,服务处理器135具有数据处理系统100的盘存(inventory)和拓扑了解。服务处理器135还对通过询问主机处理器101‑104、存储器控制器/高速缓存108和I/O桥110发现的所有元件执行内建自测试(BIST)、基本保证测试(BAT)和存储器测试。通过服务处理器135收集和报告在BIST、BAT和存储器测试期间检测到的故障的任何错误信息。 

    如果在取出在BIST、BAT和存储器测试期间发现有故障的元件之后,系统资源的有意义/有效配置仍是可能的,则允许数据处理系统100继续将可执 行代码载入局部(主机)存储器160‑163。服务处理器135然后释放主机处理器101‑104,用于载入本地存储器160‑163的代码的执行。在主机处理器101‑104执行来自数据处理系统100中的各个操作系统的代码时,服务处理器135进入监视和报告错误的模式。由服务处理器135监视的项目的类型例如包括冷却风扇速度和操作、热传感器、电源调节器、以及由处理器101‑104、局部存储器160‑163和I/O桥110报告的可恢复和不可恢复错误。 

    服务处理器135保存和报告关于在数据处理系统100中所有监视项目的信息。服务处理器135还基于错误的类型和定义的阈值采取行动。例如,服务处理器135可以注意到在处理器的高速缓存存储器上的过多的可恢复错误,并且判定这是严重故障的预兆。基于该确定,服务处理器135可以标记该资源用于在当前运行会话和未来的初始程序加载(IPL)期间重新配置。IPL有时也称为“导入(boot)”或“引导(bootstrap)”。 

    数据处理系统100可以使用各种商业可获得的计算机系统实现。例如,数据处理系统100可以使用可从国际商业机器公司得到的IBM eServer iSeries模型840实现。这种系统可以支持使用OS/400操作系统的逻辑分区,OS/400操作系统也可从国际商业机器公司得到。 

    本领域的普通技术人员将理解图1中描述的硬件可以改变。例如,除了描述的硬件或代替描述的硬件,还可以使用如光盘驱动器等的其它外围设备。描述的示例不意在暗示关于说明性实施例的架构限制。 

    参照图2,该图描述其中可以实现说明性实施例的示例逻辑分区平台的框图。逻辑分区平台200中的硬件可以实现为例如图1中的数据处理系统100。 

    逻辑分区平台200包括节点硬件230、操作系统202、204、206、208和平台固件210。如平台固件210的平台固件也已知为分区管理固件。操作系统202、204、206和208可以是在逻辑分区平台200上同时运行的单个操作系统的多个拷贝或多个不同种类的操作系统。这些操作系统可以使用OS/400实现,该OS/400设计来与分区管理固件(如管理程序)接口。OS/400只用作这些说明性实施例中的示例。当然,取决于特定实现,也可以使用其它类型的操作系统(如AIX和Linux)。操作系统202、204、206、208位于节点203、205、207和209中。管理程序软件是可以用于实现分区管理固件210的软件的示例,并且可从国际商业机器公司得到。 

    此外,这些分区还包括分区固件211、213、215和217。分区固件211、 213、215和217可以使用初始引导代码、IEEE‑1275标准开放固件和可从国际商业机器公司得到的运行时间提取软件(RTAS)实现。当例示分区203、205、207和209时,通过平台固件210将引导程序代码的拷贝载入分区203、205、207和209。此后,控制转移到引导代码,然后引导代码加载开放固件和RTAS。与分区相关联或分配给分区的处理器然后分派到分区的存储器,以执行分区固件。 

    分区硬件230包括若干处理器232‑238、若干系统存储器单元240‑246、若干输入/输出(I/O)适配器248‑262以及存储单元270。每个处理器232‑238、存储器单元240‑246、NVRAM存储298和I/O适配器248‑262可以分配给逻辑分区平台200内的多个节点之一,多个节点的每个对应于操作系统202、204、206、208之一。 

    分区管理固件210执行用于节点203、205、207和209的多个功能和服务,以创建和执行逻辑分区平台200的分区。分区管理固件210是类似于底层硬件的固件实现的虚拟机。因此,分区管理固件210通过虚拟化逻辑分区平台200的所有硬件资源,允许独立OS镜像202、204、206和208的同时执行。 

    服务处理器290和294可以用于提供各种服务,如节点中平台错误的处理。这些服务还可以用作服务代理以将错误报告回厂家,如国际商业机器公司。可以通过硬件管理控制台(如硬件管理控制台280)控制不同节点的操作。硬件管理控制台280可以是分立的或联合的数据处理系统,系统管理员可以从其执行包括重新分配资源到不同节点的各种功能。 

    图1‑2中的硬件可以取决于实现而变化。除了图1‑2中描述的某些硬件或代替图1‑2中描述的某些硬件,可以使用其它内部硬件或外围设备,如闪存、等价非易失性存储器或光盘驱动器等。分区平台200仅用作其中可以实现说明性实施例的数据处理系统的示例。说明性实施例的实现也可以使用用于更新固件的替代性架构,而不背离说明性实施例的范围。 

    参照图3,该图描述其中可以实现说明性实施例的存储器配置的框图。配置300可以是数据处理系统(如例如,图2中的节点、服务器计算机或膝上型计算机)中的存储器配置。 

    作为示例的配置300包括处理器304中的1级高速缓存302。2级高速缓存306和3级高速缓存308可以存在于与主存储器310相同或不同的存储器 模块上。例如,在一个实施例中,2级高速缓存306可以在与其中可以实现3级高速缓存308和主存储器310的存储器模块分离的存储器组件中实现。作为另一示例,在另一实施例中,2级高速缓存306、3级高速缓存308和主存储器310可以全部使用存储器模块的不同部分实现。 

    盘312还包括可以用作存储器的存储空间。例如,在一个实施例中,盘312可以包括存储器设备,如可以与说明性实施例结合使用的固态存储器。在另一实施例中,盘312自身可以是存储器设备,如闪存设备。在另一实施例中,盘312可以是硬盘,其某些区域可以用作主存储器的分页空间。 

    为了说明性实施例的清楚性,图3描述仅作为示例的某些高速缓存和存储器区域。特定实现可以以适于实现的任何方式实现各种高速缓存和存储器区域而不背离说明性实施例的范围。 

    参照图4A,该图描述可以导致可以实现说明性实施例的、用于管理的热条件的工作负荷的框图。工作负荷400可以使用数据处理系统中的存储器配置(如图3中的配置300)执行。 

    工作负荷400可以包括用于处理器执行的指令402。执行来自指令402的指令可以导致关于存储器配置中一个或多个存储器区域的操作404。操作404中的一个或多个操作的执行可以导致改变存储器的热条件,如在存储器的区域中生成热量。 

    作为示例,指令402可以包括指令406。指令406可以是用于从存储器位置得到数据放入处理器的寄存器的指令。当处理器执行指令406时,存储器管理组件可以在存储器中的指定位置执行读取操作408。读取存储器位置可以改变存储器中的位置(通常,大概在存储器中的位置附近)的热条件。 

    继续该示例,在执行读取操作408时,数据处理系统中的组件可以确定由处理器请求的数据对于在所述位置的读取不可用。结果,数据处理系统的组件可以执行取出(fetch)操作410。取出操作410可以从另一存储区域(如存储器的另一区域或分页空间)读取请求的数据。 

    一旦从取出操作410可得到请求的数据,该数据就可能必须在数据对处理器可用之前写入一个或多个位置。填充(populate)操作412、414和416是可以将取出的数据写入各个存储器位置的三个示例操作。作为示例,来自取出操作410的数据首先可以在填充操作412中写入主存储器。如此写入主存储器的数据然后可以在填充操作414中写入3级高速缓存位置。在填充操 作414中如此写入3级高速缓存的数据然后可以在填充操作416中写入2级高速缓存位置。 

    在该示例中,其中如此写入数据的2级高速缓存位置可以已经是响应于得到数据指令406的读取操作408的目标位置。可以响应于得到数据指令406执行额外的读取操作(未示出)以读取现在可能可用的数据。 

    说明性实施例认识到每个示例操作408、410、412、414和416在存储器的某些部分生成热量。在一些情况下,热量可能集中在存储器的区域,从而不利地影响存储器的完整性、性能或两者。 

    此外,说明性实施例认识到操作404可能具有对存储器的热条件的延迟影响。例如,从在存储器的特定位置的写入生成的热量可能一次仅提高存储器的该区域的温度。然而,在延长的时段上,在该位置的重复操作可能导致存储器的所有或部分出故障。 

    参照图4B,该图描述降低存储器温度的抑制方法的框图,所述方法的缺点可以通过说明性实施例减少或移除。 

    工作负荷450可以类似于图4A中的工作负荷400。指令452和操作454可以以分别类似于图4A中的指令402和操作404的方式运行。 

    指令456、458和460可以是以类似于图4A中的指令406的方式用于得到数据的指令。指令456、458、460可以是由在数据处理系统上执行的一个或多个应用或数据处理系统中存在的组件发出的指令。 

    数据处理系统可以包括负责将数据处理系统的存储器的温度维持在预定范围内的固件。如果固件感测到存储器的温度已经超过阈值温度,则固件可以抑制存储器。 

    为了实现存储器抑制,固件可以在指令452中插入no‑op指令462、464、466和468。指令456‑468的具体顺序可以在任何给定时间取决于在数据处理系统中存在的各种因素而变化。例如,与如果在另一时间温度处于阈值相比,如果在一个时间温度超过阈值,则可以在两个具体指令之间插入更多no‑op指令。作为另一示例,与在另一组指令之间的no‑op指令的数目相比,可以在一组指令之间插入更多no‑op指令。 

    用于得到数据的指令456可以导致操作454包括读取操作470、取出操作471和填充操作472、473和474。操作470、471、472、473和474可以对应于如在图4A中所述的操作408、410、412、414和416。 

    No‑op指令462可以导致操作454包括冷却操作476。在一个实施例中,冷却操作476可以是根本没有操作,允许存储器的区域冷却。在另一实施例中,冷却操作476可以触发冷却机制,以对存储器操作。例如,冷却操作476可以使得风扇操作或者冷却剂循环以冷却存储器的区域。 

    No‑op指令464可以类似地导致操作454包括冷却操作478。冷却操作476和478可以在说明性实施例的范围内的特定实现中导致相同或不同的操作。 

    以类似于指令456的方式,用于得到数据的指令458可以导致操作454包括读取操作480、取出操作481和填充操作482、483和484。以类似于no‑op指令462和464的方式,no‑op指令466和468可以分别导致操作454包括冷却操作486和488。类似地,用于得到数据的指令460可以导致操作454包括读取操作490、取出操作491和填充操作492、493和494。 

    因此,数据处理系统中的固件可以抑制处理器以冷却并且避免存储器过热。如说明性实施例所认识到的,该管理存储器的热条件的方法不利地影响整个数据处理系统的总体性能。在图4B的示例说明中,由处理器处理的七个示例指令中的四个或多于百分之五十的指令是不操作指令。换句话说,与当所有指令是由应用或组件发出的计算指令时相比,用于冷却存储器的处理器抑制迫使处理器低效率地执行。 

    参照图5,该图描述根据说明性实施例、用于管理存储器的热条件的交织的工作负荷的框图。交织的工作负荷500可以以分别类似于图4B中的指令452和操作454的方式使用指令502和操作504。 

    如图4B中的工作负荷450的工作负荷可以导致在存储器处的某些操作。这种操作可以导致在存储器增加(build up)一定热量。 

    此外,工作负荷可以具有热轮廓(profile)。工作负荷的热轮廓是描述工作负荷的热生成特性的工作负荷的某些方面的组合。例如,对于特定的工作负荷,热增加可能是在存储器的某一区域、在一天的某一时间、在某一应用的执行的某一点、导致要生成某一热量、具有随着时间的热量生成的某一模式、或其组合。工作负荷的这些或其它类似热方面的一些或所有的组合统称为工作负荷的热轮廓。 

    根据说明性实施例,第一工作负荷可以类似于图4B中的工作负荷450,并且具有某一热轮廓。第二工作负荷也可以存在于如同一应用的另一线程或 属于另一应用的处理中。第二热轮廓可以与第二工作负荷相关联。第一和第二工作负荷可以在同一处理器上执行。 

    与图4B中的no‑op指令相反,说明性实施例识别第二工作负荷作为用于与第一工作负荷交织的候选者。交织两个或多个工作负荷是交织两个或多个工作负荷的指令。交织指令是排序指令,使得它们一个接一个执行。换句话说,交织工作负荷导致那些工作负荷的指令在序列中相互混合。结果,如所排序的,处理器可以执行来自一个工作负荷的一个或多个指令,之后是来自另一工作负荷的一个或多个指令。 

    图5描述交织的指令502,其中来自两个示例工作负荷的指令以示例顺序排序。当然可以以此方式交织任何数目的工作负荷。为了清楚,来自第一工作负荷的指令由标签“(1)”标识,而来自第二工作负荷的指令由标签“(2)”标识。 

    作为示例,假设当执行第二工作负荷的得到数据指令时由处理器查找的数据可用于在目标存储器位置处的读取。换句话说,数据处理系统的组件不需要从另一数据存储位置取出和填充该数据。进一步假设第二工作负荷的得到数据指令从不同于第一工作负荷的指令从其读取的区域的存储器中的区域读取数据。以该示例方式,第一和第二工作负荷具有不同和互补的热轮廓。 

    作为示例,交织的指令502可以排序第一工作负荷的得到数据指令506,跟随有第二工作负荷的得到数据指令508。交织的指令502可以排序第一工作负荷下一得到数据指令510,跟随有第二工作负荷的得到数据指令508。 

    作为该交织的效果,对应于指令506,操作504可以包括读取操作514、取出操作515和填充操作516、517和518。因为第二工作负荷的得到数据指令508仅使用读取操作,所以操作504包括读取操作520。 

    因此,在执行期间,当执行操作520时,用于操作514、515、516、517和518的存储器的区域有效地不接收操作和冷却。在一个实施例中,来自其它工作负荷的更多交织操作可以延长冷却时段,因此提供由之前操作使用的存储器区域。 

    类似地,对应于指令510,操作504可以包括读取操作522、取出操作523和填充操作524、525和526。此外,因为第二工作负荷的得到数据指令512仅使用读取操作,所以操作504包括读取操作528。此外,由之前操作使用的存储器的区域得到变凉的机会。 

    以此方式,如使用上面的示例所述,说明性实施例管理存储器的热条件而不使用处理器抑制。通过交织工作负荷,说明性实施例使得数据处理系统能够连续执行计算指令而不是no‑op指令,并且仍将存储器的热条件管理在预设范围内。 

    此外,可以以此方式交织在不同处理器上执行的工作负荷,以便管理存储器的热条件。此外,在分布式数据处理系统中,可以交织在不同节点或数据处理系统上执行的工作负荷,以便管理一个或多个数据处理系统中的存储器的热条件。图6更详细地图示跨越节点交织工作负荷。 

    参照图6,该图描述根据说明性实施例、跨越多个数据处理系统的交织的工作负荷的框图。节点602的存储器配置可以使用图3中存储器配置300的部分实现。节点604的存储器配置可以类似地使用图3中存储器配置300的部分实现。 

    节点602可以包括处理器608中的1级高速缓存606。2级高速缓存610、3级高速缓存612和主存储器614可以是分配到节点602的相同或不同存储器组件的部分。节点604可以包括处理器618中的1级高速缓存616。2级高速缓存620、3级高速缓存622和主存储器624可以是分配到节点604的相同或不同存储器组件的部分。盘626可以是节点602和604两者可访问的数据存储设备。 

    数据628可以是工作负荷中的示例得到数据指令可以查找的数据。此外,当安排来执行时,工作负荷的指令可以在处理器608上的节点602中执行。当在处理器608上执行时,示例得到数据指令可以在2级高速缓存610上的位置630中查找数据628。 

    此外,对于该示例假设这种得到数据指令类似于图4A中的指令406或图5中的506。结果,从位置630读取数据628可能要求从盘626取出数据628,并且将其填充在主存储器中的位置632、3级高速缓存中的位置634和2级高速缓存中的位置630。 

    作为示例,位置632可以存在于具有在阈值上的热条件的主存储器614的区域。因此,使用位置634执行取出和填充操作可能不是希望的,由于那些操作可能进一步劣化主存储器614的热条件。 

    根据说明性实施例,交织工作负荷也交织操作。在节点602上执行示例得到数据指令的时候,节点604的主存储器624的区域636可以是可用的, 并且没有超过热条件。以这样的方式可以交织节点602和604的工作负荷,使得在从位置630读取数据中执行的某些操作可以使用节点604执行。 

    作为示例,取出操作可以从盘626取出数据628,并且在主存储器624中的位置636处填充。填充操作可以填充节点604的3级高速缓存622中的区域638。现在,根据该示例,从节点604中的3级高速缓存622中的区域638,可以仅对节点602执行填充操作,以便填充节点2中的2级高速缓存610中的区域630。 

    通过以该示例方式交织操作,说明性实施例可以避免添加热应力到节点602中的存储器,同时仍对节点602执行希望的操作。指令、操作、各种存储器组件、数据处理系统配置和数据的位置都是用于清楚描述的示例,而不限制说明性实施例。其它实现可以在说明性实施例的范围内,以这里描述的方式使用相同或不同节点的不同区域执行不同操作。 

    参照图7,该图描述根据说明性实施例、管理存储器的热条件的处理的流程图。在图3或6中描述的节点和存储器配置的情况下,处理700可以使用图5中描述的示例工作负荷实现。具体地,处理700可以实现为在数据处理系统(如图6中的节点602)上执行的应用。 

    通过识别存储器中已经或很可能超过热条件阈值,开始处理700(步骤702)。例如,处理700可以确定执行为处理器安排的未来的若干指令可能导致存储器的温度超过存储器温度的上限。 

    处理器700识别超过热条件的工作负荷的原因(步骤704)。例如,对于步骤702的示例描述的未来的指令可能是在步骤704中识别的工作负荷的一部分。 

    处理700识别将不导致超过存储器的热条件的另一工作负荷(步骤706)。处理700可以在步骤706中识别一个或多于一个的其它工作负荷。 

    处理700交织两个工作负荷(步骤708)。处理700在此后结束。在步骤708中工作负荷的交织可以继续,如使用参照图5和6的示例所描述的。 

    参照图8,该图描述根据说明性实施例、使用另一数据处理系统管理一个数据处理系统中的存储器的热条件的处理的流程图。在图6中描述的节点和存储器配置的情况下,处理800可以使用图5中描述的示例工作负荷实现。具体地,处理800可以实现为在数据处理系统(如图6中的节点602)上或在图2中硬件管理控制台280处执行的应用。 

    通过识别数据处理系统的存储器中已经或很可能超过热条件阈值,开始处理800(步骤802)。例如,处理800可以确定执行为数据处理系统中的处理器安排的未来的若干指令可能导致数据处理系统中的存储器的温度超过存储器温度的上限。 

    处理800以类似于图7中步骤704的方式识别(未示出)超过热条件的工作负荷原因。例如,相对于步骤802的示例描述的未来的指令可能是识别工作负荷的一部分。 

    处理800识别其中存储器的热条件在其各自阈值内的另一数据处理系统(步骤804)。处理800交织工作负荷的一部分操作和其它数据处理系统的其它工作负荷,使得该部分操作使用其它数据处理系统的存储器(步骤806)。 

    处理800可以在步骤806中识别第二数据处理系统上的一个或多于一个的其它工作负荷。处理800可以交织来自第一数据处理系统的该部分工作负荷,而不导致超过第二数据处理系统的存储器的热条件。 

    处理800使用第二数据处理系统的存储器执行第一数据处理系统的工作负荷的交织部分(步骤808)。此后结束处理800。 

    仅作为示例使用两个数据处理系统描述处理800,而不限制说明性实施例。例如,处理800可以适应这样的实现,使得工作负荷在相同的数据处理系统的两个处理器之间交织。此外,用于处理800的数据处理系统可以是实际的数据处理系统或虚拟的数据处理系统,如说明性实施例的范围内的虚拟分区。 

    上述框图中的组件和流程图中的步骤仅作为示例描述。已经为了描述的清楚性选择组件和步骤,而不限制说明性实施例。例如,特定实现可以组合、省略、进一步划分、修改、增加、减少或替代地实现任何组件或步骤,而不背离说明性实施例的范围。此外,上述处理的步骤可以在说明性实施例的范围内以不同的顺序执行。 

    因此,在说明性实施例中提供计算机实现的方法、装置和计算机程序产品,用于管理数据处理系统中存储器的热条件。使用说明性实施例,存储器的热条件可以管理在预设阈值限制的范围内。使用说明性实施例,不需要抑制处理器,或者为了维持存储器处的希望的热条件,处理器可能必须抑制在降低的级别。说明性实施例通过交织工作负荷而不是插入no‑op指令以抑制处理器,实现存储器的希望的热条件。 

    可以在包括分布式数据处理系统的任何数据处理系统中实现说明性实施例。说明性实施例可以在单个处理器上、跨越多个处理器、在一个数据处理系统上、跨越多个数据处理系统或其组合上交织工作负荷。此外,说明性实施例可以组合部分工作负荷或全部工作负荷。此外,说明性实施例可以使用物理数据处理系统、虚拟数据处理系统或其组合交织工作负荷。 

    本发明可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元件两者的实施例的形式。在优选实施例中,本发明以软件实现,所述软件包括但不限于固件、驻留软件或微代码。 

    此外,本发明可以采取计算机程序产品的形式,所述计算机程序产品可从提供用于由计算机或任何指令执行系统使用或结合计算机或任何指令执行系统使用的程序代码的计算机可用或计算机可读介质访问。为了该描述的目的,计算机可用或计算机可读介质可以是任何有形装置,其可以包含、存储、通信、传播或传输用于由指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用的程序。 

    介质可以是电、磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括致密盘‑只读存储器(CD‑ROM)、致密盘‑读/写(CD‑R/W)和DVD。 

    此外,计算机存储介质可以包含或存储计算机可读程序代码,使得当在计算机上执行计算机可读程序代码时,该计算机可读程序代码的执行导致计算机在通信链路上发送另一计算机可读程序代码。例如而没有限制,该通信链路可以使用物理的或无线的介质。 

    适于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接耦合到存储器元件的处理器。存储器元件可以包括在程序代码的实际执行期间采用的局部存储器、大容量存储介质和高速缓存存储器,其提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储介质检索代码的次数。 

    数据处理系统可以用作服务器数据处理系统或客户机数据处理系统。服务器和客户机数据处理系统可以包括作为计算机可用(如计算机可读的)的数据存储介质。与服务器数据处理系统相关联的数据存储介质可以包含计算机可用的代码。客户机数据处理系统可以下载该计算机可用的代码,如用于存储在与客户机数据处理系统相关联的数据存储介质上,或在客户机数据处理系统中使用。服务器数据处理系统可以类似地从客户机数据处理系统上载计算机可用的代码。以此方式使用服务器和客户机数据处理系统,可以上载或下载从说明性实施例的计算机可用的程序产品实施例得到的计算机可用的代码。

    输入/输出或I/O设备(包括但不限于键盘、显示器、指向设备等)可以直接或通过插入I/O控制器耦合到系统。 

    网络适配器也可以耦合到系统,以便使得数据处理系统能够通过介入私人或公共网络变得耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡仅是当前可用的若干网络适配器的类型。 

    已经为了说明和描述的目的呈现了本发明的描述,并且不旨在穷尽或将本发明限制于公开的形式。许多修改和变化对于本领域的普通技术人员是显而易见的。选择和描述了实施例,以便说明本发明的原理、实际应用,并且使得本领域的普通技术人员理解具有各种修改的各种实施例的本发明为适于构思的特定使用。 

    相关申请的交叉应用 

    本发明涉及于2007年3月28日提交的题为“Method to capture hardware statistics for partitions to enable dispatching and scheduling efficiency”的同时审查的和共同转让的美国专利申请序列号11/692,276(代理目录号AUS920060547US1)的主题,在此通过引用并入。 

    

管理存储器的热条件.pdf_第1页
第1页 / 共24页
管理存储器的热条件.pdf_第2页
第2页 / 共24页
管理存储器的热条件.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《管理存储器的热条件.pdf》由会员分享,可在线阅读,更多相关《管理存储器的热条件.pdf(24页珍藏版)》请在专利查询网上搜索。

在说明性实施例中提供用于管理存储器的热条件的方法、系统和计算机可用的程序产品。识别已经超过或很可能超过存储器的热条件的阈值的条件。第一工作负荷的部分识别为超过阈值的原因。识别第二工作负荷的第二部分,当被执行时所述第二部分不导致超过阈值。对应于所述第一部分的一组操作与对应于所述第二部分的第二组操作交织。执行交织的第一和第二工作负荷的第一和第二部分,执行使得存储器的热条件维持低于阈值。当执行时,第二部。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1