管理存储器的热条件的利记博彩app

文档序号:6596957阅读:242来源:国知局
专利名称:管理存储器的热条件的利记博彩app
技术领域
本发明一般涉及改进的数据处理系统,并且具体地涉及用于使用数据处理系统的存储器组件的计算机实现的方法。更具体地,本发明涉及用于管理数据处理系统中存储器 的热条件(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 (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单元。因此,例 如,先进交互式执行(AIX )操作系统的一个实例可以在分区P1内执行,AIX操作系统的 第二实例(镜像(image))可以在分区P2内执行,并且Linux 或OS/400 操作系统可以在 分区P3内操作(AIX和0S/400是国际商业机器公司在美国和其它国家的商标。Linux是 LinusTorvalds在美国和其它国家的商标)。连接到I/O总线112的外围组件互连(PCI)主机桥114提供接口给PCI局部总线 115。多个PCI输入/输出适配器120-121通过PCI到PCI桥116、PCI总线118、PCI总线 119、1/0插槽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,并且具有对硬件0P面板 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实现。这 种系统可以支持使用0S/400操作系统的逻辑分区,0S/400操作系统也可从国际商业机器 公司得到。本领域的普通技术人员将理解图1中描述的硬件可以改变。例如,除了描述的硬 件或代替描述的硬件,还可以使用如光盘驱动器等的其它外围设备。描述的示例不意在暗 示关于说明性实施例的架构限制。参照图2,该图描述其中可以实现说明性实施例的示例逻辑分区平台的框图。逻辑 分区平台200中的硬件可以实现为例如图1中的数据处理系统100。逻辑分区平台200包括节点硬件230、操作系统202、204、206、208和平台固件 210。如平台固件210的平台固件也已知为分区管理固件。操作系统202、204、206和208 可以是在逻辑分区平台200上同时运行的单个操作系统的多个拷贝或多个不同种类的操 作系统。这些操作系统可以使用0S/400实现,该0S/400设计来与分区管理固件(如管理 程序)接口。0S/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,其中来自两个示例工作负荷的指令以示例顺序排序。 当然可以以此方式交织任何数目的工作负荷。为了清楚,来自第一工作负荷的指令由标签 “⑴”标识,而来自第二工作负荷的指令由标签“⑵”标识。作为示例,假设当执行第二工作负荷的得到数据指令时由处理器查找的数据可用 于在目标存储器位置处的读取。换句话说,数据处理系统的组件不需要从另一数据存储位 置取出和填充该数据。进一步假设第二工作负荷的得到数据指令从不同于第一工作负荷的 指令从其读取的区域的存储器中的区域读取数据。以该示例方式,第一和第二工作负荷具 有不同和互补的热轮廓。作为示例,交织的指令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 hardwarestatisties for partitions to enable dispatching and scheduling efficiency"的未决和共有的美国专利申请序列号11/692,276 (代理目录号 AUS920060547US1)的主题,在此通过引用并入。
权利要求
一种计算机实现的方法,用于管理数据处理系统中的存储器中的热条件,所述计算机实现的方法包括识别(i)已经超过存储器的热条件的阈值和(ii)很可能超过存储器的热条件的阈值之一;识别第一工作负荷的一部分作为超过所述阈值的原因;识别第二工作负荷的第二部分,所述第二部分在执行时不导致超过所述阈值;以及交织对应于第一部分的一组操作与对应于第二部分的第二组操作。
2.如权利要求1所述的计算机实现的方法,还包括执行第一和第二工作负荷的交织的第一和第二部分,该执行导致存储器的热条件保持 在所述阈值之下。
3.如权利要求1所述的计算机实现的方法,其中当执行时,所述第二部分使用(i)第二 存储器和(ii)存储器的第二区域之一。
4.如权利要求1所述的计算机实现的方法,其中存储器是所述数据处理系统的存储器 组件的区域,并且其中交织为存储器提供冷却时段,所述计算机实现的方法还包括通过(i)不执行使用所述区域的操作和(ii)对所述区域操作冷却操作之一来冷却所 述存储器。
5.如权利要求1所述的计算机实现的方法,其中所述第二工作负荷配置为在第二数据 处理系统上执行,并且其中不通过执行第二部分超过的阈值是第二阈值。
6.如权利要求5所述的计算机实现的方法,还包括执行第一和第二工作负荷的交织的第一和第二部分,该执行导致所述第一数据处理系 统的存储器的热条件保持在阈值之下,该执行还导致所述第二数据处理系统的第二存储器 的第二热条件保持在第二阈值之下。
7.如权利要求1所述的计算机实现的方法,其中第一和第二组操作中的操作导致在存 储器中的位置处的(i)读取和(ii)写入之一,所述操作还导致在存储器中的所述位置处的 热量生成。
8.一种包括计算机可使用的介质的计算机可使用的程序产品,所述计算机可使用的介 质包括用于管理数据处理系统中的存储器中的热条件的计算机可使用的代码,所述计算机 可使用的代码包括用于识别(i)已经超过存储器的热条件的阈值和(ii)很可能超过存储器的热条件的 阈值之一的计算机可使用的代码;用于识别第一工作负荷的一部分作为超过所述阈值的原因的计算机可使用的代码;用于识别第二工作负荷的第二部分的计算机可使用的代码,所述第二部分在执行时不 导致超过所述阈值;以及用于交织对应于第一部分的一组操作与对应于第二部分的第二组操作的计算机可使 用的代码。
9.如权利要求8所述的计算机可使用的程序产品,还包括用于执行第一和第二工作负荷的交织的第一和第二部分的计算机可使用的代码,该执 行导致存储器的热条件保持在所述阈值之下。
10.如权利要求8所述的计算机可使用的程序产品,其中当执行时,所述第二部分使用(i)第二存储器和(ii)存储器的第二区域之一。
11.如权利要求8所述的计算机可使用的程序产品,其中存储器是所述数据处理系统 的存储器组件的区域,并且其中交织为存储器提供冷却时段,所述计算机可使用的程序产 品还包括用于通过(i)不执行使用所述区域的操作和(ii)对所述区域操作冷却操作之一来冷 却所述存储器的计算机可使用的代码。
12.如权利要求8所述的计算机可使用的程序产品,其中所述第二工作负荷配置为在 第二数据处理系统上执行,并且其中不通过执行第二部分超过的阈值是第二阈值。
13.如权利要求12所述的计算机可使用的程序产品,还包括用于执行第一和第二工作负荷的交织的第一和第二部分的计算机可使用的代码,该执 行导致所述第一数据处理系统的存储器的热条件保持在阈值之下,该执行还导致所述第二 数据处理系统的第二存储器的第二热条件保持在第二阈值之下。
14.如权利要求8所述的计算机可使用的程序产品,其中第一和第二组操作中的操作 导致在存储器中的位置处的(i)读取和(ii)写入之一,所述操作还导致在存储器中的所述 位置处的热量生成。
15.如权利要求8所述的计算机可使用的程序产品,其中所述计算机可使用的代码存 储在数据处理系统中的计算机可读存储介质中,并且其中所述计算机可使用的代码通过网 络从远程数据处理系统传送。
16.如权利要求8所述的计算机可使用的程序产品,其中所述计算机可使用的代码存 储在服务器数据处理系统中的计算机可读存储介质中,并且其中所述计算机可使用的代码 通过网络下载到远程数据处理系统,用于在与所述远程数据处理系统相关联的计算机可读 存储介质中使用。
17.一种数据处理系统,用于管理数据处理系统中的存储器中的热条件,所述数据处理 系统包括包括存储介质的存储设备,其中所述存储设备存储计算机可用的程序代码;以及处理器,其中所述处理器执行所述计算机可用的程序代码,并且其中计算机可用的程 序代码包括用于识别(i)已经超过存储器的热条件的阈值和(ii)很可能超过存储器的热条件的 阈值之一的计算机可使用的代码;用于识别第一工作负荷的一部分作为超过所述阈值的原因的计算机可使用的代码;用于识别第二工作负荷的第二部分的计算机可使用的代码,所述第二部分在执行时不 导致超过所述阈值,并且其中当执行时,所述第二部分使用(i)第二存储器和(ii)存储器 的第二区域之一;用于交织对应于第一部分的一组操作与对应于第二部分的第二组操作的计算机可使 用的代码;以及用于执行第一和第二工作负荷的交织的第一和第二部分的计算机可使用的代码,该执 行导致存储器的热条件保持在所述阈值之下。
18.如权利要求17所述的数据处理系统,其中存储器是所述数据处理系统的存储器组 件的区域,并且其中交织为存储器提供冷却时段,所述计算机可使用的程序产品还包括用于通过(i)不执行使用所述区域的操作和(ii)对所述区域操作冷却操作之一来冷 却所述存储器的计算机可使用的代码。
19.如权利要求17所述的数据处理系统,其中所述第二工作负荷配置为在第二数据处 理系统上执行,并且其中不通过执行第二部分超过的阈值是第二阈值,所述数据处理系统 还包括用于执行第一和第二工作负荷的交织的第一和第二部分的计算机可使用的代码,该执 行导致所述第一数据处理系统的存储器的热条件保持在阈值之下,该执行还导致所述第二 数据处理系统的第二存储器的第二热条件保持在第二阈值之下。
20.如权利要求17所述的数据处理系统,其中第一和第二组操作中的操作导致在存储 器中的位置处的(i)读取和(ii)写入之一,所述操作还导致在存储器中的所述位置处的热 量生成。
全文摘要
在说明性实施例中提供用于管理存储器的热条件的方法、系统和计算机可用的程序产品。识别已经超过或很可能超过存储器的热条件的阈值的条件。第一工作负荷的部分识别为超过阈值的原因。识别第二工作负荷的第二部分,当被执行时所述第二部分不导致超过阈值。对应于所述第一部分的一组操作与对应于所述第二部分的第二组操作交织。执行交织的第一和第二工作负荷的第一和第二部分,执行使得存储器的热条件维持低于阈值。当执行时,第二部分可以使用第二存储器、存储器的第二区域或其组合。
文档编号G06F1/20GK101813965SQ201010003678
公开日2010年8月25日 申请日期2010年1月14日 优先权日2009年1月14日
发明者加迪尔·R·戈拉米, 奥克塔维安·F·赫里斯卡, 威廉·A·马龙, 迈索尔·S·斯里尼瓦斯, 黛安娜·G·弗莱明 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1