CN104380259A - 降低内存系统功耗的方法和内存控制器 - Google Patents

降低内存系统功耗的方法和内存控制器 Download PDF

Info

Publication number
CN104380259A
CN104380259A CN201280001333.5A CN201280001333A CN104380259A CN 104380259 A CN104380259 A CN 104380259A CN 201280001333 A CN201280001333 A CN 201280001333A CN 104380259 A CN104380259 A CN 104380259A
Authority
CN
China
Prior art keywords
memory modules
memory
dram
data
nvm
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.)
Granted
Application number
CN201280001333.5A
Other languages
English (en)
Other versions
CN104380259B (zh
Inventor
黄永兵
陈明宇
阮元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Publication of CN104380259A publication Critical patent/CN104380259A/zh
Application granted granted Critical
Publication of CN104380259B publication Critical patent/CN104380259B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

本发明实施例提供一种降低内存系统功耗的方法和内存控制器,其中,降低内存系统功耗的方法包括:判断内存系统中是否存在访问频度低的动态随机存储DRAM内存模块;在存在访问频度低的DRAM内存模块时,根据该内存系统中工作集的大小将该工作集之外的页面数据转移到非易失性存储器NVM内存模块,该工作集之外的页面数据为预定时间内进程运行所无需访问的页面数据。根据本发明的实施例,将工作集之外的页面数据转移到NVM内存模块,由于NVM内存模块具有非易失和低功耗的特点,因此将DRAM内存模块中存储的部分数据转移到NVM内存模块,可以降低整个内存系统的功耗。

Description

降低内存系统功耗的方法和内存控制器
技术领域 本发明实施例涉及计算机技术, 尤其涉及一种降低内存系统功耗的方法和 内存控制器。 背景技术 目前, 计算机已经成为人们日常工作、 学习中非常重要的工具, 被广泛应 用在各个领域。 其中, 内存性能是衡量计算机性能的一个重要技术指标。 随着 技术的发展, 内存不断更新换代, 然而相比内存工艺而言, 处理器的工艺发展 速度迅速, 并且两者的差距也逐渐增大。 而往往工艺的提升不仅带来性能的提 升, 也会提高能效比。 因此, 在整个计算机系统中, 内存系统的能效比相对处 理器的能效比而言差距逐渐增大。 有数据表明, 内存系统的功耗占据整个计算 机系统功耗的 46%。 由此可见, 优化内存系统的功耗, 对提高整个计算机系统 功耗有着重要的意义。
内存系统的功耗从组成上来看, 分为静态功耗和动态功耗。 静态功耗是指 内存单元在空闲情况下消耗的功耗, 主要包括漏电功耗、 刷新功耗等。 而动态 功耗是指内存单元被访问时消耗的功耗, 包括内存芯片的功耗、 row buffer的功 耗及 I/O gating的功耗等。
现有技术中, 一种利用内存控制器动态调节 DRAM ( Dynamic Random Access Memory, 动态随机存取存储器) 内存芯片的方法为, 整个 DRAM芯片 组成的内存系统划分为两个区域: 刷新区域和不刷新区域, 当内存系统根据内 存的使用情况切换到低功耗模式时,刷新区域会正常刷新,维持数据的正确性, 而不刷新区域不会按照 DDR( Double Data Rate,双倍速率同步动态随机存储器 ) 协议的要求进行刷新, 减少刷新功耗, 从而减少整个内存系统的功耗。
上述现有技术中, 降低内存系统功耗的主要手段是调整刷新频率, 这种方 式对内存系统功耗的降低幅度不高, 降低内存系统功耗的效果不明显。 发明内容 本发明实施例提供一种降低内存功耗的方法和内存控制器, 以根据内存系 统的使用情况, 降低内存系统功耗。
第一方面, 提供了一种降低内存系统功耗的方法, 包括: 判断内存系统中 是否存在访问频度低的动态随机存储 DRAM;在存在访问频度低的 DRAM内存 模块时, 根据所述内存系统中工作集的大小将所述工作集之外的页面数据转移 到非易失性存储器 NVM内存模块,所述工作集之外的页面数据为预定时间内进 程运行所无需访问的页面数据。
在第一种可能的实现方式中, 结合第一方面, 上述根据所述内存系统中工 作集的大小将所述工作集之外的页面数据转移到 NVM内存模块, 包括: 在所述 工作集的大小不超过预设功耗调节的阔值时, 将所述工作集之外的页面数据转 移到所述 NVM内存模块。
在第二种可能的实现方式中, 结合第一方面或第一方面的第一种可能的实 现方式, 上述根据所述内存系统中工作集的大小将所述工作集之外的页面数据 转移到 NVM 内存模块之前, 所述方法还包括: 根据所述工作集的大小将所述 DRAM内存模块划分为高性能 DRAM区域和低功耗 DRAM区域; 将所述工作 集的页面数据转移到所述高性能 DRAM区域中。
在第三种可能的实现方式中, 结合第一方面或第一方面的第一种或第二种 可能的实现方式, 所述方法还包括: 将所述工作集之外的页面数据在转移前和 转移后的位置映射关系记录在数据位置映射表。
在第四种可能的实现方式中, 结合第一方面或第一方面的第一种或第二种 或第三种可能的实现方式, 判断内存系统中是否存在访问频度低的 DRAM内存 模块之前, 还包括: 监控所述内存系统中内存模块的使用状态, 所述内存模块 包括 DRAM内存模块和 NVM内存模块, 所述内存模快的使用状态包括所述内 存模块是否被访问以及被访问的频率; 所述判断内存系统中是否存在访问频度 低的 DRAM内存模块包括: 根据所述被访问的频率确定所述内存系统中是否存 在访问频度低的 DRAM内存模块。
在第五种可能的实现方式中, 结合第一方面的第一种可能的实现方式, 所 述预设功耗调节的阔值的确定方法为:确定所述 NVM内存模块的性能和功耗比、 以及所述 DRAM内存模块的性能和功耗比; 确定页面数据在所述 DRAM内存 模块和所述 NVM内存模块中转移的开销、 以及更新数据位置映射表的开销; 根 据所述 NVM内存模块的性能和功耗比、所述 DRAM内存模块的性能和功耗比、 页面数据在所述 DRAM内存模块和所述 NVM内存模块中转移的开销、 更新数 据位置映射表的开销、 以及内存请求访问的模式, 确定所述预设功耗调节的阔 值。
第二方面, 提供了一种访问内存系统数据的方法, 包括: 接收处理器或緩 存 Cache 的访存请求, 所述访存请求包括请求访问的数据; 判断所述数据是否 发生过从 DRAM内存模块到 NVM内存模块的转移; 在所述数据发生过所述转 移时,根据数据位置映射表获取所述数据在所述 NVM内存模块中的位置, 所述 数据位置映射表用于记录所述数据转移前和转移后的位置映射关系; 根据所述 数据在所述 NVM内存模块中的位置访问所述数据。
在第一种可能的实现方式中, 结合第二方面, 在接收处理器或 Cache 的访 存请求之后, 所述方法还包括: 监控内存系统中内存模块的使用状态, 所述内 存模块包括 DRAM内存模块和 NVM内存模块, 所述内存模快的使用状态包括 所述内存模块是否被访问以及被访问的频率; 根据所述被访问频度判断所述内 存系统中是否存在访问频度低的 DRAM内存模块;在存在访问频度低的 DRAM 内存模块时, 执行数据从 DRAM内存模块到 NVM内存模块的转移。
第三方面, 提供了一种内存控制器, 包括: 功耗调节决策模块, 用于判断 内存系统中是否存在访问频度低的动态随机存储 DRAM内存模块; 数据转移模 块, 用于在所述功耗调节决策模块判断存在访问频度低的 DRAM 内存模块时, 根据所述内存系统中工作集的大小将所述工作集之外的页面数据转移到非易失 性存储器 NVM内存模块,所述工作集之外的页面数据为预定时间内进程运行所 无需访问的页面数据。
在第一种可能的实现方式中,结合第三方面,所述数据转移模块具体用于: 在所述工作集的大小不超过预设功耗调节的阔值时, 将所述工作集之外的页面 数据转移到所述 NVM内存模块。
在第二种可能的实现方式中, 结合第三方面或第三方面的第一种可能的实 现方式, 还包括: 划分模块, 用于根据所述工作集的大小将所述 DRAM内存模 块划分为高性能 DRAM区域和低功耗 DRAM区域;所述数据转移模块还用于: 将所述工作集的页面数据转移到所述高性能 DRAM区域中。
在第三种可能的实现方式中, 结合第三方面或第三方面的第一种或第二种 一 一 可能的实现方式, 还包括: 内存模块状态监控器, 用于监控所述内存系统中内 存模块的使用状态, 所述内存模块包括 DRAM内存模块和 NVM内存模块, 所 述内存模块的使用状态包括所述内存模块是否被访问以及被访问的频率; 所述 功耗调节决策模块, 具体用于: 根据所述被访问的频度确定所述内存系统中是 否存在访问频度低的 DRAM内存模块。
第四方面, 提供了一种内存控制器, 包括: 接收模块, 用于接收处理器或 緩存 Cache的访存请求, 所述访存请求包括请求访问的数据; 判断模块, 用于 判断所述数据是否发生过从 DRAM内存模块到 NVM内存模块的转移; 获取模 块, 用于在所述判断模块判断所述数据发生过所述转移时, 根据数据位置映射 表获取所述数据在所述 NVM内存模块中的位置,所述数据位置映射表用于记录 所述数据转移前和转移后的位置映射关系; 访问模块, 用于根据所述数据在所 述 NVM内存模块中的位置访问所述数据。
在第一种可能的实现方式中, 结合第四方面, 还包括: 内存模块状态监控 器, 用于监控内存系统中内存模块的使用状态, 所述内存模块包括 DRAM内存 模块和 NVM内存模块,所述内存模快的使用状态包括所述内存模块是否被访问 以及被访问的频率; 功耗调节决策模块, 用于根据所述被访问的频率判断所述 内存系统中是否存在访问频度低的 DRAM内存模块; 数据转移模块, 用于在所 述功耗调节决策模块判断存在访问频度低的 DRAM 内存模块时, 执行数据从 DRAM内存模块到 NVM内存模块的转移。
第五方面, 提供了一种计算机系统, 包括: 至少一个处理器、 至少一个如 上述所述的内存控制器、 以及内存系统, 所述内存系统包括 DRAM内存模块和 NVM内存模块。
本发明实施例提供的降低内存功耗的方法, 在内存系统中存在访问频度低 的 DRAM内存模块时, 将工作集之外的页面数据转移到 NVM内存模块, 由于 NVM内存模块具有非易失和低功耗的特点, 因此将 DRAM内存模块中存储的 部分数据转移到 NVM内存模块, 可以降低整个内存系统的功耗。 同时, 釆用基 于 DRAM和 NVM的混合内存系统, 可以综合互补不同内存材料在性能和功耗 上的特性, 尽可能的在满足内存系统性能的前提下, 最大限度的降低内存系统 的功耗。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施 例或现有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下面描 述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出 创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1为本发明实施例提供的一种计算机系统的结构示意图;
图 2为本发明实施例提供的一种降低内存系统功耗的方法的流程图; 图 3为本发明实施例提供的一种访问内存系统数据的方法的流程图; 图 4为本发明实施例提供的一种降低内存系统功耗的过程的流程图; 图 5为本发明实施例提供的一种确定预设功耗调节阔值的方法的流程图; 图 6为本发明实施例提供的一种访问内存系统数据的过程的流程图; 图 7 为本发明实施例提供的一种内存系统从低功耗状态恢复到高性能状态 的方法的流程图。
图 8为本发明实施例提供的一种内存控制器的结构图;
图 9为本发明又一个实施例提供的一种内存控制器的结构图;
图 10为本发明又一个实施例提供的一种内存控制器的结构图;
图 11为本发明又一个实施例提供的一种内存控制器的结构图。
图 12为本发明又一个实施例提供的一种计算机系统的结构图。 具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于本发明中 的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其 他实施例, 都属于本发明保护的范围。
图 1描述了本发明一个实施例提供的计算机系统的结构, 如图 1所示, 具 体包括:
CPU101 : 本发明实施例中所提到的 CPU ( Central Processing Unit, 中央处 理器)是处理器的一种, 处理器还可以是 ASIC ( Application Specific Integrated - -
Circuit, 应用特定集成电路), 或者其它是被配置成实施本发明实施例的一个或 多个集成电路, 本领域技术人员可以理解的是, 处理器的其它实现方式也可以 替代本发明实施例中的 CPU。
内存控制器 102: 内存控制器是计算机系统内部控制内存模块 (或称之为内 存) 并且通过内存控制器使内存与处理器之间交换数据的重要组成部分。 内存 控制器决定了计算机系统所能使用的最大内存容量、 内存 BANK数、 内存类型 和速度、 内存颗粒数据深度和数据宽度等等重要参数, 也就是说决定了计算机 系统的内存性能, 从而也对计算机系统的整体性能产生较大影响。 目前比较流 行的是将内存控制器嵌入到 CPU中, 但也可以将内存控制器与 CPU独立实现, 本发明对内存控制器 102和 CPU101的连接形式不做限制。
内存系统 103: 内存系统中通常包括多个内存模块(或称之为内存芯片 ), 内存模块是一种能够实现存储功能的硬件模块, 一个或多个内存模块通过内存 通道与内存控制器连接,进而与 CPU连接,从而实现被 CPU所访问。本发明中, 内存模块包括 DRAM内存模块 104和 NVM内存模块 105 , 即内存系统 103包 括 DRAM内存模块 104和 NVM内存模块 105。
DRAM内存模块 104: DRAM为最常见的内存芯片, DRAM 只能将数据保 持很短的时间, DRAM 芯片的电荷会随着时间而慢慢流失, 为了保持数据, DRAM内存模块使用电容存储, 每隔一段时间刷新一次。
NVM内存模块 105: NVM ( Non- Volatile Memory, 非易失性存储器)是另 一种可做内存芯片的存储颗粒, 不同于 DRAM的特性, 关机或掉电之后 NVM 中存储的数据不会丟失, 比如基于 PCM ( Phase-Change Memory, 相变存储)的 PCRAM ( Phase-Change Random Memory, 相变随机存储器)技术, 其读写速度 虽然比 DRAM慢, 但是具有非易失、 低功耗等特点。
由于内存系统的功耗从组成上来看, 分为静态功耗和动态功耗。 静态功耗 是指内存模块在空闲情况下消耗的功耗, 主要包括漏电功耗、 刷新功耗等; 动 态功耗是指内存模块被访问时消耗的功耗, 包括内存芯片的功耗、 row buffer的 功耗及 I/O gating的功耗等。 因此,本发明基于上述 DRAM内存模块和 NVM内 存模块各自的特点, 提出基于 DRAM内存模块和 NVM内存模块的混合内存系 统, 该混合内存系统在保证了内存系统性能的同时, 能够有效的降低内存系统 的功耗。 图 2 为本发明实施例提供的一种降低内存系统功耗的方法的流程图, 本实 施例的执行主体为内存控制器。 如图 2所示, 本实施例的方法具体包括:
S201 : 判断内存系统中是否存在访问频度低的 DRAM内存模块。
进一步, 在判断内存系统中是否存在访问频度低的 DRAM 内存模块之前, 还包括:
监控该内存系统中内存模块的使用状态, 该内存模块包括 NVM模块和 DRAM模块, 该内存模快的使用状态包括该内存模块是否被访问以及被访问的 频率;
判断该内存系统中是否存在访问频度低的 DRAM内存模块包括: 根据该被 访问的频率确定该内存系统中是否存在访问频度低的 DRAM内存模块。
S202: 在存在访问频度低的 DRAM内存模块时, 根据该内存系统中工作集 的大小将该工作集之外的页面数据转移到 NVM内存模块,其中,该工作集之外 的页面数据为预定时间内进程运行所无需访问的页面数据。
具体的, 所述根据内存系统中工作集的大小将该工作集之外的页面数据转 移到 NVM内存模块, 包括:
在所述工作集的大小不超过预设功耗调节的阔值时, 内存控制器将所述工 作集之外的页面数据转移到所述 NVM。 其中, 预设功耗调节的阔值的确定方法 为: 确定 NVM内存模块的性能和功耗比、 以及 DRAM内存模块的性能和功耗 比; 确定页面数据在 DRAM内存模块和 NVM内存模块中转移的开销、 以及更 新数据位置映射表的开销; 根据所述 NVM 内存模块的性能和功耗比、 DRAM 内存模块的性能和功耗比、 页面数据在 DRAM内存模块和 NVM内存模块中转 移的开销、 更新数据位置映射表的开销、 以及内存请求访问的模式, 确定该预 设功耗调节的阔值。
进一步, 在根据内存系统中工作集的大小将该工作集之外的页面数据转移 到 NVM内存模块之前, 还包括:
根据该工作集的大小将 DRAM内存模块划分为高性能 DRAM区域和低功 耗 DRAM区域, 其中, 高性能 DRAM区域是指能够正常刷新的 DRAM区域, 这部分区域消耗功耗比较大, 但是性能比较高; 低功耗 DRAM区域是指性能要 求相对较低的 DRAM区域, 这部分区域可以通过减少刷新来降低功耗;
将该工作集的页面数据转移到该高性能 DRAM区域。 一 一 进一步, 在根据内存系统中工作集的大小将该工作集之外的页面数据转移 到 NVM内存模块之后, 还包括:
将该工作集之外的页面数据在转移前和转移后的位置映射关系记录在数据 位置映射表, 该数据位置映射表用于记录数据在转移前和转移后的位置映射关 系。
本发明实施例通过在内存系统中存在访问频度低的 DRAM内存模块时, 将 工作集之外的页面数据转移到 NVM内存模块, 由于 NVM内存模块具有非易失 和低功耗的特点, 因此将 DRAM内存模块中存储的部分数据转移到 NVM内存 模块, 可以降低整个内存系统的功耗。 同时, 釆用基于 DRAM和 NVM的混合 内存系统, 可以综合互补不同内存材料在性能和功耗上的特性, 尽可能的在满 足内存系统性能的前提下, 最大限度的降低内存系统的功耗。
由于釆用基于 DRAM和 NVM的混合内存系统来降低内存系统功耗, 需要 将 DRAM内存模块中的部分数据转移至 NVM内存模块, 因此内存控制器在访 问降低了内存系统功耗的内存系统时, 不能直接访问 DRAM 内存模块中数据。 图 3描述了本发明一个实施例提供的访问内存系统数据的方法, 该内存系统为 DRAM内存模块和 NVM内存模块组成的混合内存系统, 本实施例的执行主体 为内存控制器, 具体的, 该实施例包括:
S301 : 接收处理器或緩存 Cache的访存请求, 该访存请求包括请求访问的 数据。
进一步, 接收处理器或緩存 Cache的访存请求之后, 还包括:
监控内存系统中内存模块的使用状态, 该内存模块包括 DRAM内存模块和 NVM内存模块, 该内存模快的使用状态包括该内存模块是否被访问以及被访问 的频率; 根据该被访问的频率判断该内存系统中是否存在访问频度低的 DRAM 内存模块; 在存在访问频度低的 DRAM内存模块时, 执行数据从 DRAM内存 模块到 NVM内存模块的转移。
进一步, 所述执行数据从 DRAM内存模块到 NVM内存模块的转移包括: 根据该内存系统中工作集的大小将该工作集之外的页面数据转移到 NVM 内存 模块, 该工作集之外的页面数据为预定时间内进程运行所无需访问的页面数据。
S302:判断该数据是否发生过从 DRAM内存模块到 NVM内存模块的转移。 S303 : 在该数据发生所述转移时, 根据数据位置映射表获取该数据在该 - -
NVM内存模块中的位置, 该数据位置映射表用于记录该数据在转移前和转移后 的位置映射关系。
S304: 根据该数据在该 NVM内存模块中的位置访问该数据。
下面釆用具体的实施例, 对图 2 所示降低内存系统功耗的方法实施例的技 术方案进行详细说明。 图 4 为本发明实施例提供的降低内存系统功耗的过程的 示意图, 具体的, 该实施例包括:
S401 : 监控内存模块的使用状态。
具体的, 内存控制器中内存模块状态监控器监控内存系统中内存模块的使 用状态, 其中, 内存模块包括 DRAM内存模块和 NVM内存模块, 内存模块的 使用状态包括内存模块是否被访问以及内存模块在一段时间内被访问的频率。
S402: 判断内存系统中是否存在访问频度低的 DRAM 内存模块, 若存在, 转到 S403; 否则, 转到 S411。
具体的, 内存控制器可以根据内存模块状态监控器监控的内存模块被访问 的频率来判断是否存在访问频度低的 DRAM内存模块, 若不存在访问频度低的 DRAM模块, 即 DRAM内存模块被访问的频度都比较高, 则不实施降低内存功 耗的操作, 直接转到 S411结束操作, 因为对访问频度高的 DRAM内存模块实 施降低功耗的操作会严重损失性能。
S403: 根据内存模块在一段时间内的访问情况, 获取内存系统工作集的大 小。
具体的, 内存控制器根据内存模块在一段时间内被访问的情况, 可以获取 最近一段时间内内存模块中存在访问频度高的页面数据和访问频度低的页面数 据, 其中, 访问频度高的页面数据, 即活跃的页面数据, 为最近一段时间内进 程运行所必需访问的页面数据, 即是工作集的页面数据; 访问频度低的页面数 据, 即几乎不被访问的页面数据, 为最近一段时间内进程运行所无需访问的页 面数据, 即是工作集之外的页面数据。
所以, 内存控制器获取的工作集的大小即是工作集的页面数据的大小。
S404: 判断该工作集的大小是否超过预设功耗调节的阔值, 若超过, 转到 S411 ; 否则, 转到 S405;
其中,预设功耗调节的阔值的确定方法为: 确定 NVM内存模块的性能和功 耗比、 以及 DRAM内存模块的性能和功耗比; 确定页面数据在 DRAM内存模 - - 块和 NVM内存模块中转移的开销、以及更新数据位置映射表的开销;根据 NVM 内存模块的性能和功耗比、 DRAM内存模块的性能和功耗比、页面数据在 DRAM 内存模块和 NVM内存模块中转移的开销、更新数据位置映射表的开销、 以及内 存请求访问的模式, 确定预设功耗调节的阔值。 具体的, 确定预设功耗调节的 阔值的过程见下述图 5实施例的描述的过程。
S405: 根据该工作集的大小将 DRAM内存模块划分为高性能 DRAM区域 和低功耗 DRAM区域。
具体的, 由于工作集的页面数据需要被经常访问, 性能要求比较高, 因此 需要存储在能够正常刷新的 DRAM区域, 这部分 DRAM区域虽然不能减少刷 新功耗, 但性能高, 称作高性能 DRAM区域; 相对的, 由于工作集外的页面数 据由于不被经常访问, 性能要求较低, 因此可以存储在无需正常刷新的 DRAM 区域, 这部分 DRAM区域虽然性能有所下降, 但可以减少刷新功耗, 称作低功 耗 DRAM区域。
内存控制器可以根据该工作集的大小, 划分不小于该工作集大小的高性能 需要说明的是, 本发明主要是应用将工作集的页面数据转移到高性能 DRAM区域中, 将工作集之外的页面数据转移到 NVM内存模块中, 由于 NVM 内存模块不需要刷新, 因此通过上述转移可以有效降低内存系统的功耗,但是, 由于将页面数据转移到 NVM内存模块,对转移到 NVM内存模块中数据对应的 应用的性能影响比较大,将工作集之外的页面数据转移到 NVM内存模块中并不 适用于所有的实际应用, 因此, 本发明将 DRAM划分为高性能 DRAM区域和 低功耗 DRAM区域, 以应对实际中可能需要将将工作集之外的页面数据转移到 低功耗 DRAM区域的情况。
S406: 判断是否将该工作集之外的页面数据转移到低功耗 DRAM区域, 若 转移, 转到 S407; 否则, 转到 S408;
本发明中,考虑到实际应用中的可能情况,釆用如下的页面数据转移策略, 以判断是否将该工作集之外的页面数据转移到低功耗 DRAM区域:
( 1 )如果应用程序对延迟相当敏感, 即增加细小的延迟, 应用程序的性能 也会严重下降, 则不将工作集外的页面数据从 DRAM内存模块转移到 NVM内 存模块; - -
( 2 )如果应用程序对延迟不敏感, 即增加延迟对应用程序的性能影响不是 特别大, 则将工作集外的页面数据从 DRAM内存模块转移到 NVM内存模块, 以降低功耗;
( 3 )如果应用程序对延迟的敏感程度一般, 比如延迟增加到一定值 A, 应 用的性能会受影响, 需要考虑 NVM内存模块在性能上的开销。如果相比低功耗 DRAM区域的内存模块, NVM内存模块在性能即延迟的开销特别大,超过了 A, 则不能将 DRAM 内存模块的数据转移到 NVM 内存模块。 如果相比低功耗 DRAM 区域的内存模块, NVM 内存模块在性能上的开销不超过 A, 则可以将 DRAM内存模块的数据转移到 NVM内存模块。
S407: 将工作集之外的页面数据转移到低功耗 DRAM区域, 将工作集的页 面数据转移到高性能 DRAM区域。
S408: 将工作集之外的页面数据转移到 NVM内存模块,将工作集的页面数 据转移到高性能 DRAM区域。
S409: 更新内存模块的状态、 更新数据位置映射表, 以及设置功耗控制寄 存器的值。
内存控制器更新数据位置映射表, 将页面数据从 DRAM内存模块转移到高 性能 DRAM区域、低功耗 DRAM区域或 NVM内存模块的位置对应关系记录在 数据位置映射表中。
并且, 如果执行的步骤为 S407, 即将工作集之外的页面数据转移到低功耗 DRAM 区域, 则需要设置功耗控制寄存器的值, 以便于功耗管理及调节器根据 设置后的功耗控制寄存器的值, 对低功耗 DRAM区域的功耗进行调节, 将低功 耗 DRAM区域调节为低功耗状态。
需要说明的是, 功耗控制寄存器位于内存控制器, 而功耗管理及调节器位 于内存控制器之外, 用于负责调节 DRAM内存模块的功耗, 如调整 DRAM内 存模块的运行频率、 运行电压或刷新频率等。 功耗控制寄存器向功耗管理及调 节器发送调节 DRAM内存模块功耗的命令,如 PASR( Partial Array Self Refresh, 部分阵列自刷新)命令。
S410:功耗管理及调节器根据功耗控制寄存器的值调节 DRAM功耗的层次。 具体的, 功耗管理及调节器根据功耗控制寄存器的值调节低功耗 DRAM的 功耗, 可以通过 DVFS ( Dynamic Voltage and Frequency Scaling, 动态电压和频 - - 率调节)或 DFS ( Dynamic Frequency Scaling, 动态频率调节)技术实现。
步骤 411 : 操作结束, 即一个内存系统功耗调节的周期结束。
S501 : 分别确定 NVM内存模块和 DRAM内存模块的性能 /功耗比。
S502: 测试数据在 DRAM内存模块和 NVM内存模块中转移的开销, 以及 更新数据位置映射表的开销。
S503: 计算功耗调节的基础阔值。
具体的, 根据 NVM内存模块的性能和功耗比、 DRAM内存模块的性能和 功耗比、 数据在 DRAM内存模块和 NVM内存模块中转移的开销、 以及更新数 据位置映射表的开销, 确定功耗调节的基础阔值。
S504: 获取当前内存模块的访问模式。
具体的, 由于内存模块状态监控器监控了内存模块的状态, 包括内存模块 被访问的模式, 因此通过查看内存模块状态监控器可获取当前内存模块的访问 模式。 其中, 访问模式包括流式访问、 重复访问等多种访问模式。
S505: 根据内存模块的访问模式以及该功耗调节的基础阔值, 确定预设功 耗调节阔值。
由于每种访问模式对请求访存的性能的要求不一样, 因此需要针对不同的 访问模式, 计算出对应的预设功耗调节阔值。 例如, 流式访问模式对延迟敏感 度不如重复访问模式, 则可以针对流式访问适当减少功耗调节的阔值, 尽早进 行功耗的调节。
因此, 根据上述功耗调节的基础阔值, 调整不同访问模式下功耗调节的阔 值, 最终确定不同访问模式下的功耗调节的阔值, 即为预设功耗调节的阔值, 预设功耗调节的阔值指示了何时需要进行内存系统功耗的调节。
本发明实施例通过判断在内存系统中存在访问频度低的 DRAM内存模块时 , 将工作集之外的页面数据转移到 NVM内存模块, 由于 NVM内存模块具有非易 失和低功耗的特点, 因此将 DRAM内存模块中存储的部分数据转移到 NVM内 存模块, 可以降低整个内存系统的功耗。 同时, 釆用基于 DRAM和 NVM的混 合内存系统, 可以综合互补不同内存材料在性能和功耗上的特性, 尽可能的在 满足内存系统性能的前提下, 最大限度的降低内存系统的功耗。
下面釆用具体的实施例, 对图 3 所示访问内存系统数据的方法实施例进行 - - 详细说明。 图 6 为本发明实施例提供的访问内存系统数据的过程的示意图, 其 执行主体为内存控制器。 具体过程如图 6所示, 包括:
S601 : 接收处理器或緩存 Cache的访存请求, 该访存请求包括请求访问的 数据。
S602:判断请求访问的数据是否发生过转移,若发生过转移,则转到 S604, 否则, 转到 S603。
具体的, 由于数据位置映射表记录了数据在 DRAM内存模块和 NVM内存 模块之间转移的位置映射关系, 即记录了数据是否发生过从 DRAM内存模块到 NVM内存模块的转移, 因此内存控制器可以通过查询数据位置映射表来获取请 求访问的数据是否发生过转移。
S603: 直接从请求访问的数据所在内存模块访问数据。
S604:根据数据位置映射表获取请求访问的数据在 NVM内存模块中的位置。
S605: 根据请求访问的数据在 NVM内存模块中的位置访问对应的数据。
S606: 返回请求访问的数据。
进一步, 在 S601步骤之后, 还包括:
监控内存系统中内存模块的使用状态, 该内存模块包括 DRAM内存模块和 NVM内存模块, 该内存模快的使用状态包括该内存模块是否被访问以及被访问 的频率; 根据该被访问的频率判断该内存系统中是否存在访问频度低的 DRAM 内存模块; 在存在访问频度低的 DRAM内存模块时, 执行数据从 DRAM内存 模块到 NVM内存模块的转移,具体包括: 根据该内存系统中工作集的大小将该 工作集之外的页面数据转移到 NVM内存模块,该工作集之外的页面数据为预定 时间内进程运行所无需访问的页面数据。
考虑到实际应用中, 由于应用程序的访存模式是呈阶段性的变化, 一段时 间内应用程序访问的数据不多, 因此内存控制器通过调节内存系统功耗, 将内 存系统转换到低功耗状态, 从而降低整个内存系统的功耗; 然而, 如果下一个 时间段, 应用程序访问的数据量增加, 则内存控制器需要将内存系统从低功耗 状态恢复到高性能状态, 以提高整个内存系统的性能。
图 7描述了本发明实施例提供的一种内存系统从低功耗状态恢复到高性能 状态的方法, 具体包括:
S701 : 监控内存模块的使用状态。 - -
S702: 根据内存模块在一段时间的访问情况, 获取工作集的大小。
S703: 判断工作集大小是否超过高性能 DRAM区域的大小, 若超过, 转到 S704, 否则, 转到步骤 709。
S704: 判断当前内存系统中低功耗 DRAM区域或 NVM内存模块的性能是 否能满足需求, 若能满足, 转到步骤 709, 否则, 转到步骤 705。
S705: 将低功耗 DRAM区域调整到高性能状态, 或者, 将 NVM内存模块 中数据转移到 DRAM内存模块中。
S706: 判断低功耗 DRAM区域或 NVM内存模块中数据是否发生过转移, 若是, 转到 S707, 否则, 转到 S709。
S707: 根据数据位置映射表, 将发生过转移的低功耗 DRAM区域或 NVM 内存模块中数据还原。
S708: 更新内存模块的状态以及数据位置映射表。
S709: 操作结束。
图 8描述了本发明实施例提供的内存控制器 800的结构示意图, 如图 8所 示, 内存控制器 800包括功耗调节决策模块 801和数据转移模块 802, 具体的: 功耗调节决策模块 801 ,用于判断内存系统中是否存在访问频度低的 DRAM 内存模块。
数据转移模块 802, 用于在功耗调节决策模块 801 判断存在访问频度低的 DRAM 内存模块时, 根据内存系统中工作集的大小将工作集之外的页面数据转 移到非易失性存储器 NVM内存模块, 其中, 工作集之外的页面数据为预定时间 内进程运行所无需访问的页面数据。
进一步, 数据转移模块 802 具体用于: 在工作集的大小不超过预设功耗调 节的阔值时, 将该工作集之外的页面数据转移到该 NVM内存模块。
本实施例的内存控制器 800,可以用于执行图 2和图 4所示方法实施例的技 术方案, 其实现原理和技术效果类似, 此处不再赘述。
图 9描述了本发明另一个实施例提供的内存控制器 800的结构示意图, 本 实施例内存控制器 800在图 8实施例的基础上, 进一步地, 内存控制器 800还 包括划分模块 803和内存模块状态监控器 804。 具体的,
划分模块 803 , 用于根据工作集的大小将 DRAM 内存模块划分为高性能 DRAM区域和低功耗 DRAM区域; 则此时, 数据转移模块 802还用于将该工作 - - 集的页面数据转移到高性能 DRAM区域中。
内存模块状态监控器 804,用于监控内存系统中内存模块的使用状态,其中, 该内存模块包括 DRAM内存模块和 N VM内存模块, 该内存模块的使用状态包 括该内存模块是否被访问以及被访问的频率; 则有, 功耗调节决策模块 801 具 体用于, 根据该被访问的频率确定该内存系统中是否存在访问频度低的 DRAM 内存模块。
本实施例的内存控制器 800,可以用于执行图 2和图 4所示方法实施例的技 术方案, 其实现原理和技术效果类似, 此处不再赘述。
本发明实施例提供的内存控制器, 通过判断在内存系统中存在访问频度低 的 DRAM内存模块时, 将工作集之外的页面数据转移到 NVM内存模块, 由于 NVM内存模块具有非易失和低功耗的特点, 因此将 DRAM内存模块中存储的 部分数据转移到 NVM内存模块, 可以降低整个内存系统的功耗。 同时, 釆用基 于 DRAM和 NVM的混合内存系统, 可以综合互补不同内存材料在性能和功耗 上的特性, 尽可能的在满足内存系统性能的前提下, 最大限度的降低内存系统 的功耗。
图 10描述了本发明实施例提供的内存控制器 900的结构示意图, 如图 10 所示, 内存控制器 900包括接收模块 901、 判断模块 902、 获取模块 903和访问 模块 904, 具体的:
接收模块 901 , 用于接收处理器或緩存 Cache的访存请求, 所述访存请求包 括请求访问的数据。
判断模块 902, 用于判断所述数据是否发生过从 DRAM内存模块到 NVM 内存模块的转移。
获取模块 903 , 用于在所述判断模块 902判断所述数据发生过转移时, 根据 数据位置映射表获取所述数据在所述 NVM内存模块中的位置,该数据位置映射 表用于记录所述数据在转移前和转移后的位置映射关系。
访问模块 904, 用于根据所述数据在所述 NVM内存模块中的位置访问所述 数据。
本实施例的内存控制器 900,可以用于执行图 3和图 6所示方法实施例的技 术方案, 其实现原理和技术效果类似, 此处不再赘述。
图 11描述了本发明另一个实施例提供的内存控制器 900的结构示意图, 本 - - 实施例内存控制器 900在图 10实施例的基础上, 进一步地, 内存控制器 900还 包括内存模块状态监控器 804、 功耗调节决策模块 801和数据转移模块 802。 具 体的,
内存模块状态监控器 804, 用于监控内存系统中内存模块的使用状态, 该内 存模块包括 DRAM内存模块和 NVM内存模块, 该内存模快的使用状态包括该 内存模块是否被访问以及被访问的频率;
功耗调节决策模块 801 ,用于根据上述被访问的频率判断该内存系统中是否 存在访问频度低的 DRAM内存模块;
数据转移模块 802, 用于在功耗调节决策模块 801 判断存在访问频度低的 DRAM内存模块时, 执行数据从 DRAM内存模块到 NVM内存模块的转移, 其 中, 执行数据从 DRAM内存模块到 NVM内存模块的转移, 包括: 根据内存系 统中工作集的大小将该工作集之外的页面数据转移到 NVM内存模块,该工作集 之外的页面数据为预定时间内进程运行所无需访问的页面数据。
本实施例的内存控制器 900,可以用于执行图 3和图 6所示方法实施例的技 术方案, 其实现原理和技术效果类似, 此处不再赘述。
本发明实施例提供的内存控制器, 通过判断在内存系统中存在访问频度低 的 DRAM内存模块时, 将工作集之外的页面数据转移到 NVM内存模块, 由于 NVM内存模块具有非易失和低功耗的特点, 因此将 DRAM内存模块中存储的 部分数据转移到 NVM内存模块, 可以降低整个内存系统的功耗。 同时, 釆用基 于 DRAM和 NVM的混合内存系统, 可以综合互补不同内存材料在性能和功耗 上的特性, 尽可能的在满足内存系统性能的前提下, 最大限度的降低内存系统 的功耗。
图 12描述了本发明又一个实施例提供的计算机系统的结构, 包括至少一个 处理器 1201、 至少一个内存控制器 1202和内存系统 1203 , 其中, 处理器 1201 可以是 CPU或 ASIC等; 内存控制器 1202为上述实施例提供的内存控制器 800 和 /或内存控制器 900; 内存系统 1203为混合内存系统, 包括 DRAM内存模块 和 NVM内存模块。
本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成。 前述的程序可以存储于一计算机可读取 存储介质中。 该程序在执行时, 执行包括上述各方法实施例的步骤; 而前述的 - - 存储介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对其 限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通技术 人员应当理解: 其依然可以对前述各实施例所记载的技术方案进行修改, 或者 对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并不使相 应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (1)

  1. 权 利 要 求 书
    1、 一种降低内存系统功耗的方法, 其特征在于, 包括:
    判断内存系统中是否存在访问频度低的动态随机存储 DRAM内存模块; 在存在访问频度低的 DRAM内存模块时, 根据所述内存系统中工作集的大 小将所述工作集之外的页面数据转移到非易失性存储器 NVM内存模块,所述工 作集之外的页面数据为预定时间内进程运行所无需访问的页面数据。
    2、 如权利要求 1所述的方法, 其特征在于, 所述根据所述内存系统中工作 集的大小将所述工作集之外的页面数据转移到 NVM内存模块, 包括:
    在所述工作集的大小不超过预设功耗调节的阔值时, 将所述工作集之外的 页面数据转移到所述 NVM内存模块。
    3、 如权利要求 1或 2所述的方法, 其特征在于, 在根据所述内存系统中工 作集的大小将所述工作集之外的页面数据转移到 NVM内存模块之前,所述方法 还包括:
    根据所述工作集的大小将所述 DRAM内存模块划分为高性能 DRAM区域 和低功耗 DRAM区域;
    将所述工作集的页面数据转移到所述高性能 DRAM区域。
    4、 如权利要求 1-3任一所述的方法, 其特征在于, 所述方法还包括: 将所述工作集之外的页面数据在转移前和转移后的位置映射关系记录在数 据位置映射表。
    5、 如权利要求 1-4任一所述的方法, 其特征在于, 判断内存系统中是否存 在访问频度低的动态随机存储 DRAM内存模块之前, 还包括:
    监控所述内存系统中内存模块的使用状态, 所述内存模块包括 DRAM内存 模块和 NVM内存模块,所述内存模快的使用状态包括所述内存模块是否被访问 以及被访问的频率;
    所述判断内存系统中是否存在访问频度低的动态随机存储 DRAM内存模块 包括: 根据所述被访问的频率确定所述内存系统中是否存在访问频度低的 DRAM内存模块。
    6、 如权利要求 2所述的方法, 其特征在于, 所述方法还包括:
    确定所述 NVM内存模块的性能和功耗比、 以及所述 DRAM内存模块的性 能和功耗比; 确定页面数据在所述 DRAM内存模块和所述 NVM内存模块中转移的开销、 以及更新数据位置映射表的开销;
    根据所述 NVM内存模块的性能和功耗比、 所述 DRAM内存模块的性能和 功耗比、页面数据在所述 DRAM内存模块和所述 NVM内存模块中转移的开销、 更新数据位置映射表的开销、 以及内存请求访问的模式, 确定所述预设功耗调 节的阔值。
    7、 一种访问内存系统数据的方法, 其特征在于, 包括:
    接收处理器或緩存 Cache的访存请求,所述访存请求包括请求访问的数据; 判断所述数据是否发生过从 DRAM内存模块到 NVM内存模块的转移; 在所述数据发生过所述转移时, 根据数据位置映射表获取所述数据在所述
    NVM内存模块中的位置, 所述数据位置映射表用于记录所述数据在转移前和转 移后的位置映射关系;
    根据所述数据在所述 NVM内存模块中的位置访问所述数据。
    8、 如权利要求 7所述的方法, 其特征在于, 所述接收处理器或 Cache的访 存请求之后, 所述方法还包括:
    监控内存系统中内存模块的使用状态, 所述内存模块包括 DRAM内存模块 和 NVM内存模块,所述内存模快的使用状态包括所述内存模块是否被访问以及 被访问的频率;
    根据所述被访问的频率判断所述内存系统中是否存在访问频度低的 DRAM 内存模块;
    在存在访问频度低的 DRAM内存模块时, 执行数据从 DRAM内存模块到 NVM内存模块的转移。
    9、 如权利要求 8所述的方法, 其特征在于, 所述执行数据从 DRAM内存 模块到 NVM内存模块的转移包括:根据所述内存系统中工作集的大小将所述工 作集之外的页面数据转移到 NVM内存模块,所述工作集之外的页面数据为预定 时间内进程运行所无需访问的页面数据。
    10、 一种内存控制器, 其特征在于, 包括:
    功耗调节决策模块, 用于判断内存系统中是否存在访问频度低的动态随机 存储 DRAM内存模块;
    数据转移模块, 用于在所述功耗调节决策模块判断存在访问频度低的 DRAM 内存模块时, 根据所述内存系统中工作集的大小将所述工作集之外的页 面数据转移到非易失性存储器 NVM内存模块,所述工作集之外的页面数据为预 定时间内进程运行所无需访问的页面数据。
    11、 如权利要求 10 所述的内存控制器 , 其特征在于, 所述数据转移模块 具体用于:
    在所述工作集的大小不超过预设功耗调节的阔值时, 将所述工作集之外的 页面数据转移到所述 NVM内存模块。
    12、 如权利要求 10或 11所述的内存控制器, 其特征在于, 还包括: 划分模块, 用于根据所述工作集的大小将所述 DRAM内存模块划分为高性 能 DRAM区域和低功耗 DRAM区域;
    所述数据转移模块, 还用于将所述工作集的页面数据转移到所述高性能 DRAM区域中。
    13、 如权利要求 10-12任一所述的内存控制器, 其特征在于, 还包括: 内存模块状态监控器, 用于监控所述内存系统中内存模块的使用状态, 所 述内存模块包括 DRAM内存模块和 NVM内存模块, 所述内存模块的使用状态 包括所述内存模块是否被访问以及被访问的频率;
    所述功耗调节决策模块, 具体用于: 根据所述被访问的频度确定所述内存 系统中是否存在访问频度低的 DRAM内存模块。
    14、 一种内存控制器, 其特征在于, 包括:
    接收模块, 用于接收处理器或緩存 Cache 的访存请求, 所述访存请求包括 请求访问的数据;
    判断模块, 用于判断所述数据是否发生过从 DRAM内存模块到 NVM内存 模块的转移;
    获取模块, 用于在所述判断模块判断所述数据发生过所述转移时, 根据数 据位置映射表获取所述数据在所述 NVM内存模块中的位置,所述数据位置映射 表用于记录所述数据在转移前和转移后的位置映射关系;
    访问模块,用于根据所述数据在所述 NVM内存模块中的位置访问所述数据。
    15、 如权利要求 14所述的内存控制器, 其特征在于, 还包括:
    内存模块状态监控器, 用于监控内存系统中内存模块的使用状态, 所述内 存模块包括 DRAM内存模块和 NVM内存模块, 所述内存模快的使用状态包括 所述内存模块是否被访问以及被访问的频率;
    功耗调节决策模块, 用于根据所述被访问的频率判断所述内存系统中是否 存在访问频度低的 DRAM内存模块;
    数据转移模块, 用于在所述功耗调节决策模块判断存在访问频度低的 DRAM内存模块时, 执行数据从 DRAM内存模块到 NVM内存模块的转移。
    16、 如权利要求 15所述的内存控制器, 其特征在于, 所述数据转移模块具 体用于:
    在所述功耗调节决策模块判断存在访问频度低的 DRAM内存模块时, 根据 所述内存系统中工作集的大小将所述工作集之外的页面数据转移到 NVM 内存 模块, 所述工作集之外的页面数据为预定时间内进程运行所无需访问的页面数 据。
    17、 一种计算机系统, 其特征在于, 包括: 至少一个处理器、 至少一个如 权利要求 10-13和 /或如权利要求 14-16任一所述的内存控制器、以及内存系统, 所述内存系统包括 DRAM内存模块和 NVM内存模块。
CN201280001333.5A 2012-10-17 2012-10-17 降低内存系统功耗的方法和内存控制器 Active CN104380259B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/083062 WO2014059613A1 (zh) 2012-10-17 2012-10-17 降低内存系统功耗的方法和内存控制器

Publications (2)

Publication Number Publication Date
CN104380259A true CN104380259A (zh) 2015-02-25
CN104380259B CN104380259B (zh) 2018-09-21

Family

ID=50487435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280001333.5A Active CN104380259B (zh) 2012-10-17 2012-10-17 降低内存系统功耗的方法和内存控制器

Country Status (4)

Country Link
US (1) US9927860B2 (zh)
EP (1) EP2911056B1 (zh)
CN (1) CN104380259B (zh)
WO (1) WO2014059613A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107422983A (zh) * 2016-05-24 2017-12-01 三星电子株式会社 用于租户感知存储共享平台的方法和装置
CN107533351A (zh) * 2015-04-29 2018-01-02 高通股份有限公司 用于存储器功率降低的方法和装置
WO2022226840A1 (en) * 2021-04-28 2022-11-03 Micron Technology, Inc. Light hibernation mode for memory
CN116708571A (zh) * 2023-07-22 2023-09-05 武汉船舶职业技术学院 一种基于5g通信的智能终端服务方法、系统及存储介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988875B (zh) * 2015-03-04 2020-08-14 华为技术有限公司 一种运行进程的方法及装置
CN106326135B (zh) * 2015-06-30 2020-06-02 华为技术有限公司 一种平移非易失性存储器nvm的数据的方法及装置
CN106406492B (zh) 2015-07-30 2019-10-25 华为技术有限公司 混合存储设备、计算机、控制设备、及降低功耗的方法
KR102373544B1 (ko) 2015-11-06 2022-03-11 삼성전자주식회사 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
US10416910B1 (en) 2016-09-20 2019-09-17 Altera Corporation Apparatus and method to reduce memory subsystem power dynamically
CN106774806A (zh) * 2016-12-18 2017-05-31 滁州昭阳电信通讯设备科技有限公司 一种省电的方法及移动终端
US20180188988A1 (en) * 2017-01-04 2018-07-05 Qualcomm Incorporated Partial page access in a low power memory system
KR20180094372A (ko) * 2017-02-15 2018-08-23 에스케이하이닉스 주식회사 하이브리드 메모리 시스템 및 그 제어 방법
US11561603B2 (en) * 2018-12-20 2023-01-24 Micron Technology, Inc. Memory device low power mode
CN110851273B (zh) * 2019-10-31 2022-07-15 山东省计算中心(国家超级计算济南中心) 一种基于混合内存的程序处理方法和基于混合内存的设备
CN111625265B (zh) * 2020-05-26 2023-07-04 深圳忆联信息系统有限公司 在固件升级中实现降低dram空间消耗的方法和装置
US11520498B2 (en) * 2020-06-25 2022-12-06 Intel Corporation Memory management to improve power performance
CN115190302A (zh) * 2021-04-01 2022-10-14 Oppo广东移动通信有限公司 在视频解码装置中进行图像处理的方法、装置及系统
US11720256B2 (en) * 2021-12-15 2023-08-08 Dell Products L.P. Maximizing power savings using IO monitoring

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205318A1 (en) * 2003-04-14 2004-10-14 Arm Limited Remapping of data access requests
CN101369451A (zh) * 2007-08-14 2009-02-18 三星电子株式会社 固态存储器、包含其的计算机系统和操作其的方法
CN101770430A (zh) * 2008-12-29 2010-07-07 J·鲁德利克 分析移动到非易失性存储器的ram存储对象的方法和设备
US20110029797A1 (en) * 2009-07-31 2011-02-03 Vaden Thomas L Managing memory power usage
US20110093654A1 (en) * 2009-10-20 2011-04-21 The Regents Of The University Of Michigan Memory control
CN102326149A (zh) * 2011-07-28 2012-01-18 华为技术有限公司 内存迁移的实现方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008055269A2 (en) * 2006-11-04 2008-05-08 Virident Systems, Inc. Asymmetric memory migration in hybrid main memory
US8838935B2 (en) * 2010-09-24 2014-09-16 Intel Corporation Apparatus, method, and system for implementing micro page tables
JP5624583B2 (ja) * 2012-05-31 2014-11-12 株式会社東芝 プログラム、計算処理装置、メモリ管理方法および計算機
CN104216837A (zh) 2013-05-31 2014-12-17 华为技术有限公司 一种内存系统、内存访问请求的处理方法和计算机系统
KR20150043102A (ko) * 2013-10-14 2015-04-22 한국전자통신연구원 하이브리드 메모리의 데이터 관리 장치 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205318A1 (en) * 2003-04-14 2004-10-14 Arm Limited Remapping of data access requests
CN101369451A (zh) * 2007-08-14 2009-02-18 三星电子株式会社 固态存储器、包含其的计算机系统和操作其的方法
CN101770430A (zh) * 2008-12-29 2010-07-07 J·鲁德利克 分析移动到非易失性存储器的ram存储对象的方法和设备
US20110029797A1 (en) * 2009-07-31 2011-02-03 Vaden Thomas L Managing memory power usage
US20110093654A1 (en) * 2009-10-20 2011-04-21 The Regents Of The University Of Michigan Memory control
CN102326149A (zh) * 2011-07-28 2012-01-18 华为技术有限公司 内存迁移的实现方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107533351A (zh) * 2015-04-29 2018-01-02 高通股份有限公司 用于存储器功率降低的方法和装置
CN107533351B (zh) * 2015-04-29 2020-11-03 高通股份有限公司 用于存储器功率降低的方法和装置
CN107422983A (zh) * 2016-05-24 2017-12-01 三星电子株式会社 用于租户感知存储共享平台的方法和装置
WO2022226840A1 (en) * 2021-04-28 2022-11-03 Micron Technology, Inc. Light hibernation mode for memory
CN116708571A (zh) * 2023-07-22 2023-09-05 武汉船舶职业技术学院 一种基于5g通信的智能终端服务方法、系统及存储介质
CN116708571B (zh) * 2023-07-22 2024-05-14 武汉船舶职业技术学院 一种基于5g通信的智能终端服务方法、系统及存储介质

Also Published As

Publication number Publication date
US20150220135A1 (en) 2015-08-06
US9927860B2 (en) 2018-03-27
EP2911056A1 (en) 2015-08-26
CN104380259B (zh) 2018-09-21
EP2911056B1 (en) 2018-07-18
WO2014059613A1 (zh) 2014-04-24
EP2911056A4 (en) 2016-09-28

Similar Documents

Publication Publication Date Title
CN104380259A (zh) 降低内存系统功耗的方法和内存控制器
KR100953257B1 (ko) 메모리 액세스 속도의 동적인 제어
EP2901456B1 (en) 3d memory configurable for performance and power
US8010764B2 (en) Method and system for decreasing power consumption in memory arrays having usage-driven power management
CN101387988B (zh) 具有闪速存储器的计算机和运行闪速存储器的方法
KR101665611B1 (ko) 컴퓨터 시스템 및 메모리 관리의 방법
US11556250B2 (en) Method and apparatus for temperature-gradient aware data-placement for 3D stacked DRAMs
CN106484331A (zh) 一种数据处理方法、装置及闪存设备
JP2016539406A (ja) ハイブリッドストレージ
US8190788B2 (en) Shifting volatile memories to self-refresh mode
US8364889B2 (en) Dynamic row-width memory
KR101944378B1 (ko) 메모리 장치에서의 동적 캐시 사이징 방법 및 이를 포함하는 프로세서
CN108710583A (zh) Ssd写缓存区的管理方法、装置、计算机设备及介质
CN104461389B (zh) 一种混合存储器中数据迁移的自学习的方法
CN103811048A (zh) 一种混合存储器结构的低功耗刷新方法
WO2005069148A2 (en) Memory management method and related system
CN102681792B (zh) 一种固态盘内存分区方法
CN102799390B (zh) 能耗感知的协同式自适应预取方法和装置
CN105117285A (zh) 一种基于移动虚拟化系统的非易失性存储器调度优化方法
CN106527995A (zh) 一种i/o均衡的数据扩容迁移方法
CN105243026B (zh) 终端设备的内存访问控制方法与装置
WO2022125315A1 (en) Methods for configuring span of control under varying temperature
CN106406493A (zh) 能降低功耗的电子装置及降低电子装置功耗的方法
CN107193497A (zh) 一种基于ram和nvm混合内存的汽车ecu数据动态管理方法
CN111290706B (zh) 一种基于布隆过滤器的双层读写磨损均衡方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant