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

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

Info

Publication number
CN104380259B
CN104380259B CN201280001333.5A CN201280001333A CN104380259B CN 104380259 B CN104380259 B CN 104380259B CN 201280001333 A CN201280001333 A CN 201280001333A CN 104380259 B CN104380259 B CN 104380259B
Authority
CN
China
Prior art keywords
memory modules
dram
memory
power consumption
data
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.)
Active
Application number
CN201280001333.5A
Other languages
English (en)
Other versions
CN104380259A (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

Abstract

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

Description

降低内存系统功耗的方法和内存控制器
技术领域
本发明实施例涉及计算机技术,尤其涉及一种降低内存系统功耗的方法和内存控制器。
背景技术
目前,计算机已经成为人们日常工作、学习中非常重要的工具,被广泛应用在各个领域。其中,内存性能是衡量计算机性能的一个重要技术指标。随着技术的发展,内存不断更新换代,然而相比内存工艺而言,处理器的工艺发展速度迅速,并且两者的差距也逐渐增大。而往往工艺的提升不仅带来性能的提升,也会提高能效比。因此,在整个计算机系统中,内存系统的能效比相对处理器的能效比而言差距逐渐增大。有数据表明,内存系统的功耗占据整个计算机系统功耗的46%。由此可见,优化内存系统的功耗,对提高整个计算机系统功耗有着重要的意义。
内存系统的功耗从组成上来看,分为静态功耗和动态功耗。静态功耗是指内存单元在空闲情况下消耗的功耗,主要包括漏电功耗、刷新功耗等。而动态功耗是指内存单元被访问时消耗的功耗,包括内存芯片的功耗、row buffer的功耗及I/O gating的功耗等。
现有技术中,一种利用内存控制器动态调节DRAM(Dynamic Random AccessMemory,动态随机存取存储器)内存芯片的方法为,整个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区域,其他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:操作结束,即一个内存系统功耗调节的周期结束。
图5为本发明实施例提供的确定预设功耗调节阈值的方法,具体包括:
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内存模块和NVM内存模块,该内存模块的使用状态包括该内存模块是否被访问以及被访问的频率;则有,功耗调节决策模块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 (10)

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

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988875B (zh) 2015-03-04 2020-08-14 华为技术有限公司 一种运行进程的方法及装置
US9547361B2 (en) * 2015-04-29 2017-01-17 Qualcomm Incorporated Methods and apparatuses for memory power reduction
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 삼성전자주식회사 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
US10437486B2 (en) * 2016-05-24 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus for tenant-aware storage sharing platform
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广东移动通信有限公司 在视频解码装置中进行图像处理的方法、装置及系统
WO2022226840A1 (en) * 2021-04-28 2022-11-03 Micron Technology, Inc. Light hibernation mode for memory
US11720256B2 (en) * 2021-12-15 2023-08-08 Dell Products L.P. Maximizing power savings using IO monitoring

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770430A (zh) * 2008-12-29 2010-07-07 J·鲁德利克 分析移动到非易失性存储器的ram存储对象的方法和设备
CN102326149A (zh) * 2011-07-28 2012-01-18 华为技术有限公司 内存迁移的实现方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7243206B2 (en) * 2003-04-14 2007-07-10 Arm Limited Method and apparatus for using a RAM memory block to remap ROM access requests
WO2008055272A2 (en) * 2006-11-04 2008-05-08 Virident Systems, Inc. Integrating data from symmetric and asymmetric memory
KR101498673B1 (ko) 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US8392736B2 (en) * 2009-07-31 2013-03-05 Hewlett-Packard Development Company, L.P. Managing memory power usage
US8285936B2 (en) * 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770430A (zh) * 2008-12-29 2010-07-07 J·鲁德利克 分析移动到非易失性存储器的ram存储对象的方法和设备
CN102326149A (zh) * 2011-07-28 2012-01-18 华为技术有限公司 内存迁移的实现方法和装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN104380259B (zh) 降低内存系统功耗的方法和内存控制器
CN103915110B (zh) 一种易失存储器的刷新方法及相关的易失存储器的控制器
Venkatesan et al. Retention-aware placement in DRAM (RAPID): Software methods for quasi-non-volatile DRAM
Ghosh et al. Smart refresh: An enhanced memory controller design for reducing energy in conventional and 3D die-stacked DRAMs
US8010764B2 (en) Method and system for decreasing power consumption in memory arrays having usage-driven power management
Mukundan et al. Understanding and mitigating refresh overheads in high-density DDR4 DRAM systems
US9218285B2 (en) Variable mapping of memory accesses to regions within a memory
US20050125702A1 (en) Method and system for power management including device controller-based device use evaluation and power-state control
CN103811048B (zh) 一种混合存储器结构的低功耗刷新方法
CN103810126B (zh) 混合dram存储器及降低该dram存储器刷新时功耗的方法
CN106528454B (zh) 一种基于闪存的内存系统缓存方法
CN107423234A (zh) 多处理器系统及缓存共享方法
CN103890850A (zh) 使用热数据对3d栈式存储器的动态操作
JP2013508813A (ja) 省電力を目的としたメモリ・オブジェクトの再配置
US20140281202A1 (en) Dram controller for variable refresh operation timing
CN104899154B (zh) 基于嵌入式系统混合主存的页面管理方法
CN105068940A (zh) 一种基于Bank划分的自适应页策略确定方法
CN108710583A (zh) Ssd写缓存区的管理方法、装置、计算机设备及介质
CN104572500B (zh) 微处理器及其性能和功率消耗的管理方法
CN105975402B (zh) 一种混合内存环境下淘汰数据感知的缓存方法与系统
CN102681792B (zh) 一种固态盘内存分区方法
Bhati et al. Coordinated refresh: Energy efficient techniques for DRAM refresh scheduling
US20220188208A1 (en) Methods for configuring span of control under varying temperature
CN105243026B (zh) 终端设备的内存访问控制方法与装置
CN105426324B (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