CN102893266B - 存储器控制器飞速映射 - Google Patents
存储器控制器飞速映射 Download PDFInfo
- Publication number
- CN102893266B CN102893266B CN201180023741.6A CN201180023741A CN102893266B CN 102893266 B CN102893266 B CN 102893266B CN 201180023741 A CN201180023741 A CN 201180023741A CN 102893266 B CN102893266 B CN 102893266B
- Authority
- CN
- China
- Prior art keywords
- memory
- memory bank
- bank
- address
- banks
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1737—Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Power Sources (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及存储器控制器飞速映射。提供用于在存储器的一部分被激活或去活时动态映射和重新映射存储器的系统、方法和设备。根据实施例,电子设备可包含几个存储体、一个或多个处理器和存储器控制器。存储体可在硬件存储单元中存储数据并且可被独立地去活。处理器可使用物理存储地址换数据,并且存储器控制器可将物理地址转换成硬件存储单元。存储器控制器可在第一数量的存储体活动时使用第一存储器映射函数,并在第二数量的存储体活动时使用第二存储器映射函数。当存储体中的一个存储体被去活时,存储器控制器可将仅仅来自要被去活的存储体的数据复制到存储体的活动的剩余存储体。
Description
对于相关申请的交叉引用
本申请要求2010年4月13日提交的、发明名称为“MEMORYCONTROLLER MAPPING ON-THE-FLY”的临时申请No.61/323,753的优先权,该申请通过引用被整体结合于此。
技术领域
本申请一般涉及存储器管理技术,更特别地,涉及用于存储器飞速映射(memory mapping on-the-fly)的技术。
背景技术
本部分要向读者介绍与以下描述和/或要求权利的本公开的各方面有关的现有技术的各方面。可以认为,该讨论有助于向读者提供背景信息以有利于更好地理解本公开的各方面。因此,应当理解,在阅读这些说明时要考虑这一点,并且不应将其视为承认现有技术。
诸如便携式和台式计算机的电子设备对于高性能图形和其它特征越来越多地使用更多的存储器。在许多情况下,由于存储器的很大的部分仅在诸如呈现高性能图形的存储器密集操作中使用,因此存储器的这种很大的部分会在给定的时间处于空闲状态。但是,即使在空闲时,存储器和附带的电路也会消耗电力。
已开发了各种技术以减少空闲存储器设备的功率消耗。例如,根据电子设备的性能需要,存储器和/或存储器总线可以较低频率被计时,但会继续消耗操作电力。并且,虽然某些技术可包含关断便携式电子设备的一个或多个存储器设备的电力以节省电力,但是这些技术不提供飞速(on-the-fly)存储器重新映射和/或会低效率地将数据从断电的存储器复制到保持的存储器。事实上,这些技术可使用诸如转换后备缓冲器(TLB)的低效率存储器映射结构,和/或可包含从存储器的要被断电的部分以外的各部分复制数据。
发明内容
以下阐述这里公开的某些实施例的概要。应当理解,给出这些方面仅是为了向读者提供这样特定实施例的简要概述,并且这些方面不是要限制本公开的范围。事实上,该公开可包含以下可能没有阐述的各种方面。
这些实施例涉及用于在存储器的一部分被激活或去活时动态映射和重新映射存储器的系统、方法和设备。根据一个实施例,电子设备可包含几个存储体、一个或多个处理器和存储器控制器。存储体可在硬件存储单元中存储数据并且可被独立地去活。处理器可使用物理存储地址请求数据,并且存储器控制器可将物理地址转换成硬件存储单元。存储器控制器可在第一数量的存储体活动时使用第一存储器映射函数,并在第二数量的存储体活动时使用第二存储器映射函数。当存储体中的一个被去活时,存储器控制器可将仅仅来自要被去活的存储体的数据复制到存储体的活动的剩余存储体。
关于当前公开的实施例,可存在以上提到的特征的各种改良。也可在这样的各种实施例中加入附加的特征。这些改良和附加的特征可单独地或以任意的组合存在。例如,以下关于一个或多个实施例讨论的各种特征可单独地或以任意的组合被加入其它的公开的实施例中。并且,以上给出的简要概述仅是要使读者熟悉本公开的实施例的某些方面和背景而不限于要求的主题。
附图说明
参照附图阅读以下的详细的说明,可以更好地理解本公开的各方面,其中,
图1是根据一个实施例的被配置为执行这里公开的技术的电子设备的框图;
图2是笔记本计算机形式的图1的电子设备的实施例的透视图;
图3是根据一个实施例的由图1的电子设备使用的存储器管理系统的框图;
图4是根据一个实施例的跨着三个存储体的动态存储器映射的处理的示意图;
图5和图6是根据某些实施例的存储器分配图;
图7是代表可在决定是将存储体通电还是断电时考虑的各种因素的存储器管理因素图;
图8是描述用于基于在图7的因素图中给出的准则来平衡电力管理和性能考虑的方法的实施例的流程图;
图9是根据一个实施例将存储器的一个存储体及其相关的存储器总线断电时的图3的存储器管理系统的框图;
图10是描述用于将存储器的一个存储体断电的方法的实施例的流程图;
图11是示出根据一个实施例用于从存储器的三个存储体到存储器的两个存储体的动态存储器重新映射的处理的示意图;
图12是描述用于执行图11的处理的方法的实施例的流程图;
图13是示出根据一个实施例用于从存储器的两个存储体到存储器的一个存储体的动态存储器重新映射的处理的示意图;
图14是描述图1的电子设备处于空闲或者考虑热限制时的功率管理方法的实施例的流程图;
图15和图16分别是根据实施例从存储器的一个存储体到存储器的两个存储体和从存储器的两个存储体到存储器的三个存储体的动态存储器重新映射的处理的示意图;
图17是描述用于根据性能和存储器考虑将存储器通电或断电的方法的实施例的流程图;
图18是通过图3的存储器管理系统映射的高速缓存线地址的示意图;
图19A~C是在存储器的各种段被断电到二分之一和四分之一时由图3的存储器管理系统使用的高速缓存线地址重新映射方案的示意图;
图20是描述以图19A~C所示的方式将包含重新映射高速缓存线地址的存储器断电的方法的实施例的流程图;
图21A~E是在存储器的各种段被断电到三分之二和三分之一时由图3的存储器管理系统使用的高速缓存线地址重新映射方案的示意图;
图22A~B是示出仅包含两个位变化的图21A~E的高速缓存线地址重新映射方案的高速缓存线地址的示意图;
图23是描述以图21A~E所示的方式将包含重新映射高速缓存线地址的存储器断电的方法的实施例的流程图;
图24和图25分别是示出根据实施例的用于从2存储体存储器映射读取并写入到2存储体存储器映射和3存储体存储器映射的处理的示意图。
具体实施方式
以下描述一个或多个特定的实施例。为了简洁地描述这些实施例,不在说明书中描述实际实现的所有特征。应当理解,在任意这种实现的开发中,诸如在任何工程或设计项目中,必须进行大量的特定实现的决定,以实现开发人员的特定目的,诸如服从会在实现之间改变的系统相关和业务相关的约束。并且,应当理解,这种开发工作会是复杂和耗时的,但是对于受益于本公开的本领域技术人员来说,这会是设计、制作和制造的例行任务。
本实施例涉及用于电子设备的功率和存储器管理。特别地,本公开描述了用于飞速存储器映射和重新映射并用于将全部的存储器的一个或多个部分通电或断电的技术,在某些实施例中,所述一个或多个部分可以是一个或多个存储体。如这里使用的那样,术语“断电”、“关断”和“去活”指的是将存储器置于任何低电力条件,诸如关断存储器、将存储器置于自刷新模式或者将存储器设定于任何其它的低功率消耗模式。另外,当前公开的技术描述了使用某些公开的映射函数将可用的存储器的一部分断电时的飞速存储器重新映射的方式。例如,在某些实施例中,电子设备可具有三个存储体,其中的每一个可具有特定的存储器总线。当希望更高水平的性能时,存储器控制器可将某些物理地址映射到大致跨着所有三个存储体均匀分配的硬件存储单元(这里,也称为“存储位置”或“双内嵌存储器模块(DIMM)地址”)。应当理解,这里使用的术语“物理地址”指的是可由存储器控制器操纵并且可具有任何适当大小的存储器块。例如,当参照映射或重新映射存储器使用术语“物理地址”时,即使存储器控制器能够操纵更小的块,该术语也可指可被映射或重新映射的存储器的高速缓存线或页。即,在一些实施例中,当参照这里的公开使用的术语“物理地址”可指存储器的页的重新映射时,甚至页的高速缓存线也可通过存储器控制器被单独地访问。当与物理地址相关的数据被访问时,可立即在所有三个存储器总线上以最大化的带宽传送数据。
在这种实施例中,当希望节省电力时,作为替代方案,或者除了简单地减少存储体和/或存储器总线的时钟频率以外,可以将存储体和/或总线中的一个或多个断电(例如,关掉、置于自刷新模式中、置于低功率消耗模式,等等)。存储器控制器可通过数学存储器映射函数飞速将剩余的物理地址重新映射到前两个存储体上的DIMM地址。在开始关断第三存储体之前,存储器控制器可将与重新映射的物理地址相关的数据直接从第三存储体复制到前两个存储体。因而,在一些实施例中,在重新映射处理中,没有数据可从第一存储体被复制到第二存储体,或者从第二存储体被复制到第一存储体。在来自第三存储体的数据被复制到前两个存储体之后,存储器控制器可使第三存储体和/或存储器总线被关断。应当理解,本技术也可被应用于任意数量的存储体和/或全部存储器的多个部分。
记住,以下提供能够使用公开的存储器管理技术的适当的电子设备的一般描述。在图1中,提供示出可存在于适于供本技术使用的电子设备中的各种部件的框图。在图2中,示出这里作为笔记本计算机系统提供的适当的电子设备的一个例子。可以与本技术结合使用具有相当的存储器管理能力的这些类型的电子设备和其它的电子设备。
图1是示出能够执行这里公开的技术的电子设备10的各种部件和特征的框图。在当前示出的实施例中,这种部件可包含一个或多个处理器12、存储器14、非易失性存储设备16、显示器18、输入结构20、输入/输出(I/O)端口22、网络设备24和电源26。图1所示的各种功能块可包含硬件元件(包含电路)、软件元件(包含存储于非暂时性计算机可读介质上的计算机代码)或硬件元件和软件元件的组合。还应注意,图1仅是特定实现的一个例子,并且是要示出可在电子设备10中存在的部件的类型。
处理器12可使得能够操作操作系统(OS),该操作系统自身可使得能够使用各种软件以在非易失性存储器14中暂时存储信息。特别地,在处理器12上运行的OS可使用可由处理器12转换成物理地址的逻辑存储地址操作,并且处理器12可基于这些物理地址通过存储器14请求某些存储器操作。如后面更详细地讨论的那样,当存储器14从处理器12接收物理地址时,存储器14的存储器控制器可将物理地址转换成诸如例如双内嵌存储器模块(DIMM)地址的任意适当大小的硬件存储单元(例如,行或页)。DIMM地址可代表与物理地址并由此也与逻辑地址对应的存储的数据的实际物理位置。并且,如后面更详细地讨论的那样,存储器14能够通过将操作DIMM的数量减少约三分之一或更多并在飞速重新映射剩余物理地址与剩余DIMM地址的对应关系节省电力。操作DIMM的数量可进一步减少,在这种情况下,剩余物理地址也可被重新映射到剩余DIMM地址。
存储器14可存储用于实施这里描述的本技术的某些方面的指令。例如,在处理器12上运行的OS和/或在OS上运行的软件可执行与本技术有关的某些算法(例如,当进入低功率模式等时)。用于实施这些指令的指令可至少被暂时存储于存储器14中。这些指令也可被存储于可包含例如硬盘驱动或闪速存储器的非易失性存储设备16中。显示器18可显示OS或软件的元件,诸如电子设备10的用户界面(UI)。用户可通过可包含键盘和/或鼠标或触摸板的输入结构20与电子设备10交互。在某些实施例中,显示器18可以是用作输入结构20中的一个的触摸屏显示器。
电子设备10的I/O端口22可使得电子设备10能够向其它电子设备10和/或诸如外部键盘或鼠标的各种外围设备传送数据并从中接收数据。网络设备24可使得能够实现个人区域网络(PAN)集成(例如,Bluetooth)、局域网络(LAN)集成(例如,Wi-Fi)和/或广域网络(WAN)集成(例如,蜂窝3G或4G)。电子设备10的电源26可以是任意适当的电源,诸如可更充电锂聚合物(Li-poly)电池和/或标准交流(AC)功率转换器。
电子设备10可采用计算机或其它类型的电子设备的形式。这些计算机可包含一般便携的计算机(诸如膝上型、笔记本和板式计算机)以及一般在一个位置使用的计算机(诸如常规的台式计算机、工作站和/或服务器)。在某些实施例中,计算机形式的电子设备10可以为可从苹果公司得到的 或的型号。在其它实施例中,电子设备10可采用手持或板式设备的形式,诸如可从苹果公司得到的 或的型号。
作为例子,根据本公开的一个实施例,在图2中示出采取笔记本计算机28的形式的电子设备10。示出的计算机28可包含外壳30、显示器18、输入结构20和I/O端口22。在一个实施例中,输入结构20(诸如键盘和/或触摸板)可被用于与计算机28交互,以诸如开始、控制或操作在计算机28上运行的GUI或应用。例如,键盘和/或触摸板可允许用户导航在显示器18上显示的用户界面或应用界面。
在一些实施例中,电子设备10能够在显示器18上显示高性能图形,这可包括在某些时间以高带宽访问大量的存储器14。但是,在其它的时间,电子设备10可不明显受益于这种大量的存储器14或这种高带宽。因而,电子设备10可包含图3所示的存储器管理系统34,该存储器管理系统34使得能够关断(例如,关掉、置于自刷新模式、置于低功率消耗模式等)存储器14的某些部分以节省电力。
如图3所示,处理器12可通过存储器控制器36和总线38与存储器14通信。一般地,在处理器12上运行的操作系统(OS)可在逻辑地址上分配和去分配存储器。在一些实施例中,处理器12的存储器管理单元(MMU)39可将由OS使用的逻辑地址转换成一般与存储器控制器36理解的存储地址对应的物理地址。MMU 39可使用一个或多个转换后备缓冲器(TLB)或任何其它适当的硬件执行该转换。在一些其它的实施例中,处理器12的OS可将逻辑地址转换成物理地址。存储器控制器36可从处理器12接收用于从物理地址中的一个读取数据或者将数据写入其中的指令。
由处理器12请求的邻接的物理地址可以不直接与在图3中示为存储体0、存储体1和存储体2的位于存储体40A、40B和40C上的邻接的硬件存储单元对应。而是,存储器控制器36可将由处理器12请求的物理地址映射到可跨着所有的存储体40A、40B和40C大致均匀分布的这里也称为“存储单元”或“双内嵌存储器模块(DIMM)地址”的某此硬件存储单元。存储体40A、40B和40C可包含任意适当的存储器设备,诸如双数据率三同步动态随机存取存储器(DDR3SDRAM)、双数据率三同步动态随机存取存储器(DDR4SDRAM)和/或图形双数据率五同步动态随机存取存储器(GDDR5SDRAM)。存储器控制器36可通过可分别互连存储器控制器36与存储体0、1和2的存储器总线42、44和46与三个存储体40A、40B和40C通信。在替代性的实施例中,存储器管理系统34可包含更多或更少的存储器总线和存储体40。
如上所述,物理地址可以不跨着DIMM地址存储体40A、40B和40C被邻接映射,而是可被映射使得没有两个“相关的”或“邻接的”物理地址被映射到同一存储体40。如这里使用的那样,术语“相关的”或“邻接的”物理地址指可能被连续访问的物理地址(例如,通过OS被映射到邻接的软件逻辑存储地址的物理地址),即使物理地址不是严格数字邻接的。即,根据存储体40A、40B和40C在没有进一步延迟的情况下提供对于连续的DIMM地址的访问的能力,第一物理地址可被映射到存储体0上的DIMM地址,第二物理地址可被映射到存储体1上的DIMM地址,等等。当存储体40A、40B和40C具有不同的带宽特性时,该方案可改变,使得更高带宽存储体可能已被映射到多于一个的相关的物理地址。例如,一些实施例可包含分别将第一和第二物理地址映射到存储体0和存储体1上的DIMM地址并将第三和第四物理地址映射到存储体2。一般地,物理地址可被分配给存储体40A、40B和/或40C的DIMM地址以减少延迟(latency)“低点”。当处理器12请求大段的物理地址时,存储器控制器36在某些实施例中可通过三个存储器总线42、44和46一次获得对于三个物理地址的访问,这会有效地使数据传送带宽最大化。
存储器控制器36一般可将由处理器12请求的物理地址映射到存储体40A、40B和40C的DIMM地址,使得各存储体40在不招致过分的延迟的情况下包含尽可能多的相关物理地址。因此,如上面讨论的那样,如果各存储体40能够在不招致附加的延迟的情况下一次仅提供对一个物理地址的访问,那么物理地址可被分配,使得没有两个相关的物理地址映射到同一存储体40上的两个DIMM地址。如果各存储体40能够在不招致附加的延迟的情况下一次提供对不多于两个的物理地址的访问,那么物理地址可被分配,使得没有三个相关的物理地址映射到同一存储体40上的三个DIMM地址。
在一些替代性的实施例中,如以上简要讨论的那样,存储器控制器36可能不将由处理器12请求的物理地址映射到存储体40A、40B和40C的DIMM地址,使得各存储体40在不招致过分的延迟的情况下包含尽可能多的相关物理地址。事实上,存储器控制器36可将物理地址映射到DIMM地址,使得存储体40可在没有延迟的情况下包含比最大可能少的相关的物理地址。然后,当存储器控制器36使存储体40和/或存储器总线42、44和/或46被关断以节省电力时,通过将剩余的物理地址重新映射到剩余存储体40的DIMM地址,即使两个相关的物理地址被映射到同一存储体40,也不会招致附加的延迟。换句话说,如果各存储体40能够在不招致附加的延迟的情况下一次提供对于不多于两个物理地址的访问,那么物理地址可被分配使得没有两个相关的物理地址映射到同一存储体40上的三个DIMM地址。因此,如后面更详细地讨论的那样,当存储器控制器36减少活动的存储体40A、40B和40C的数量并且两个相关的物理地址然后可被映射到同一存储体40时,存储体40不会招致附加的延迟。
并且,在某些实施例中,不是所有的存储器总线42、44和46会具有相同的带宽能力,并且不是所有的存储体40A、40B和40C会以相同的延迟操作。事实上,存储体40A、40B和40C可具有不同的信令特性或不同的大小。在一些实施例中,至少一个存储体40可以是DDR存储器,而另一存储体40可以是闪速存储器。在这些条件下,虽然对于DIMM地址的物理地址的映射分布可能不均匀分布,但是存储器控制器36可通过将物理地址映射到存储体40A、40B和40C的DIMM地址解决这种不对称性,使得每一个在不招致过度的延迟的情况下包含尽可能多的相关的物理地址(或者,如在上述的替代性实施例中那样,更少)。
如下面讨论的那样,存储器控制器36可控制存储体存储体40A、40B和40C和/或存储器总线42、44和46中的一个或多个什么时候被关断(例如,通过关断存储器、将存储器置于自刷新模式中或者将存储器设定于任何其它低功率消耗模式)以节省电力。当存储器控制器36采取步骤以关断存储体40A、40B或40C和/或存储器总线42、44和46时,存储器控制器36可飞速将减少的一组物理地址动态重新映射到剩余存储体40的DIMM地址。
当所有的存储体40A、40B和40C活动时,存储器控制器36可将处理器12请求的物理地址动态映射到存储器14中的某些存储器存储单元或DIMM地址。图4示出这种动态映射方案的一个实施例。在图4的实施例中,存储器映射图48示出根据由存储器控制器36使用的动态映射函数或等式的可大致均匀地跨着存储体40A、40B和40C分配相关的物理地址的方式。虽然本公开描述实现在存储器映射图48中示出的结果的特定存储器映射函数,但是存储器控制器36可使用以上述的方式中的一种跨着三个存储体40A、40B和40C将物理地址动态映射到DIMM地址的任何映射函数。并且,虽然本公开一般提到将物理地址映射到某些硬件存储单元,但是应当理解,其它的存储器映射配置可包含跨着多个存储体40分配页或存储器的任意其它适当的粒度。
在存储器映射图48中,标有“物理地址”的最左面的列表示可由处理器12请求存储器控制器36的物理地址。标有“存储体”的列列出各存储体40A、40B和40C(存储体0、存储体1和存储体2)。仅出于解释性的目的,各存储体40保持八个存储地址。实际上,应当理解,存储体40的大小和它们的存储地址可大得多,并且可代表可由存储器控制器36操纵的存储器的任何大小的块(例如,高速缓存线或页)。标有“DIMM地址”的列示出物理地址对于三个存储体40A、40B和40C上的某些硬件存储单元或DIMM地址的映射。因此,DIMM地址0可保持与物理地址0相关的数据,DIMM地址1可保持与物理地址3相关的数据,等等。并且,如上所述,物理地址可以不直接邻接地映射到DIMM地址。但是,为了清楚起见,物理地址可被理解为依次与每个存储体40可保持的一定数量的存储地址对应。即,通过第一阴影表示前八个物理地址,通过第二阴影表示第二组的八个物理地址,并且,通过第三阴影表示第三组的八个物理地址。这些阴影是要更清楚地示出存储器控制器36可如何跨着存储体40A、40B和40C将这些物理地址映射和重新映射到DIMM地址。
当处理器12指示存储器控制器36访问物理地址时,存储器控制器36可根据存储器映射函数将物理地址动态映射到其在存储体40A、40B和40C中的相应的DIMM地址。为了实现存储器映射图48的结果,可以使用以下的存储器映射函数:
BankIndex=Floor(PAddr/TotalBanks) (1)和
DIMMAddr=MOD(PAddr*BankSize,TotalMemory)+BankIndex (2)
在上式(1)和(2)中,变量PAddr代表在存储器映射图48的最左面的列中列出的物理地址,变量DIMMAddr代表映射物理地址的DIMM地址。变量BankIndex代表用于改变将物理地址映射到存储体40的DIMM地址中的哪一个的偏移值。变量BankSize代表每个存储体40的物理地址的量。变量TotalBanks代表存储体40A、40B和40C的总数量,以及变量TotalMemroy代表DIMM地址的总数。这可被称为微带存储器,该微带存储器通过它们的原始存储体缠绕在物理地址周围但偏移它们以避免依次映射到同一DIMM地址。
在一个例子中,存储器控制器36可将物理地址“4”映射到DIMM地址“9”如下:
MOD(PAddr*BankSize,TotalMemory)+BankIndex
MOD(4*8,24)+Floor(4/3)
MOD(32,24)+1
8+1
9
在另一例子中,存储器控制器36可将物理地址“2”映射到DIMM地址“16”如下:
MOD(PAddr*BankSize,TotalMemory)+BankIndex
MOD(2*8,24)+Floor(2/3)
MOD(16,24)+0
16+0
16
以这种方式,存储器控制器36可根据由式(1)和(2)描述的映射函数将物理地址动态映射到DIMM地址。在存储器映射图48的实施例中,基于式(1)和(2)的存储器映射函数,物理地址可以以防止依次的相关的物理地址被映射到同一存储体40的方式被映射到DIMM地址。当存储体能够在没有延迟的情况下一次访问一个DIMM地址时,该配置一般可使当处理器12请求一系列的依次的物理地址时可用的带宽最大化。在其它的实施例中,如果特定的存储体40能够在没有延迟的情况在给定的时间访问两个或更多个DIMM地址,那么映射函数可适于分配物理地址,使得两个或更多个依次的物理地址映射到同一存储体40上的DIMM地址。
在某些实施例中,尽管存储体40A、40B和40C可能能够在没有延迟的情况在给定的时间访问两个或更多个DIMM地址,但是存储器控制器36仍可使用上述的映射函数。这样,当存储器控制器36使存储体40A、40B和40C中的一个和/或存储器总线42、44和46中的一个被关断以节省电力并将剩余的物理地址重新映射到剩余的存储体40A、40B和40C的DIMM地址时,即使当两个相关的物理地址被随后映射到同一存储体40时,也不会明显增加延迟。
电子设备10可在不同的时间点上使用各种量的存储器14。特别地,与图形相关的存储器会是非常易失的,在不同的时间用于高度可变的量。图5和图6代表示出存储器使用的这种变化的示意图。首先转到图5,存储器使用图50代表跨着三个存储体40A、40B和40C可用的存储器的总量。使用中存储器52可存储与显示器18上的画面、光标、可具有动画的窗口和组件缓冲器等相关的数据。但是,由于会在存储体40A、40B和40C中保持一定量的未使用的存储器54,因此使用中存储器52可以不占据所有全部的可用存储器。如存储器使用图50所示,当前活动或者被电子设备10频繁使用的存储器的总量可不止跨越存储体40A、40B和40C中的两个可用的存储器的总量。因而,可以使用所有的三个存储体40A、40B和40C。在存储器使用如图5所示的那样的情况下,由存储器控制器36使用的存储器映射函数可将物理地址映射到位置跨着三个存储体40A、40B和40C的DIMM地址。
在电子设备操作期间的其它时间,会使用很少的存储器。例如,如图6所示,存储器使用图56可包含少量的使用中存储器52和大量的未使用存储器54。在存储器使用图56中,使用中存储器52的量可跨越多于一个的存储体40但少于所有的三个存储体40A、40B和40C。
随着电子设备10的存储器使用改变,电子设备10可通过更少的存储器带宽和/或通过更少的总存储器充分操作。因此,基于某些准则,电子设备存储器管理系统34可采取步骤以减少存储器14消耗的电力的量。图7的存储器管理因素图58示出几个这种设备存储器操作准则60,这些设备存储器操作准则60可包含性能计数器62、电子设备10的操作状态64、电子设备10的存储器使用历史66、电子设备10的期望存储器使用68、电子设备10的热限制70、GPU存储器停顿72、分页活动74和/或用户偏好的指示等。
作为可指示是否更多或更少的存储器应可用于电子设备10的一个代表性准则,性能计数器62可代表通过电子设备10的系统性能的操作系统(OS)的连续监视。例如,性能计数器62可指示在给定时间出现多少处理和/或可提供已如何消耗系统资源的最近的历史。如果可能的话,性能计数器62所示的处理资源的消耗增加可通知应增加可用的存储器资源。类似地,如果可能的话,处理资源的消耗减少可通知应减少可用的存储器资源。
可指示是否更多或更少的存储器应可用于电子设备10的另一准则可以是电子设备10的操作状态64。在一些实施例中,操作状态64可基于性能计数器62被确定,并且可代表例如电子设备10是否在活动、高性能或空闲的状态中操作。另外,或者,作为替代方案,操作状态64可表示电子设备10是否例如由于电源26从外部AC源变为电池源或者由于电池电力较低而在低功率状态下操作。如果可能的话,某些操作状态64(例如,活动状态)可通知应增加可用的存储器资源。如果可能的话,其它的操作状态64(例如,空闲状态)可通知应减少可用的存储器资源。
由于过去存储器使用可指示可能的将来的存储器使用,因此存储器使用历史66和期望存储器使用68可代表用于确定是否应使得更多或更少的存储器可用于电子设备10的准则。存储器使用历史66可代表最近的历史存储器使用(例如,前1分钟、2分钟、5分钟、10分钟、20分钟、1小时等的存储器使用),和/或可代表用于期望的时间周期的存储器使用模式(例如,前几天、几星期、几个月和/或电子设备10的寿命上的存储器使用)。期望存储器使用68可从存储器使用历史66得到,或者可基于电子设备10的存储器使用的典型模式。存储器使用历史66和/或期望存储器使用68可根据是否更多或更少的存储器处于使用中或者可望处于使用中通知是应增加还是应减少可用的存储器资源。
可通过以下的例子示出存储器使用历史66和/或期望存储器使用68。在第一例子中,电子设备10的操作系统(OS)可识别什么时候启动具有已知的存储器消耗历史的某些应用程序。当历史上消耗了大量存储器的应用被启动时,OS或应用可提供会在不久的将来消耗相对大量的存储器的指示。在另一例子中,电子设备10可基于用户的历史使用模式预测用户一般什么时候需要大量的存储器。例如,电子设备10可识别在星期二早晨电子设备10一般执行明显大量的图像处理,或者在星期四晚上,电子设备10被用于播放存储器密集的3D游戏。因而,在星期二早晨和星期四晚上,存储器使用历史66和期望存储器使用68会在有利于增加可用的存储器资源方面明显增加权重。在第三例子中,当前在电子设备10上运行的应用可提供指示大约在不久的将来需要相对大量的存储器或者大约在不久的将来需要相对少量的存储器的暗示。基于这种暗示,期望存储器使用68(例如,由电子设备10的OS确定)可根据需要在有利于增加或减少当前可用的存储器方面增加权重。在第四例子中,OS会遵循存储器的分配模式以确定过去什么时候出现了以及可能会在将来出现存储器分配的大的模式。
可指示是否应使得更多或更少的存储器可用于电子设备10的另一准则可以是置于电子设备10上的热限制70。由于来自环境的外部热和由电子设备10的部件产生的内部热,特别是在高性能操作的期望周期之后,电子设备10会接近热限制70。如果接近这种热限制70,那么电子设备10更可能确定是否应减少可用的存储器资源。伴随更少的存储器资源产生热,因此会减少内部产生的热的量,并且电子设备10可规避热限制70。
在一些实施例中,诸如CPU或GPU存储器停顿72或通过电子设备10的任何其它数据处理电路的存储器停顿的设备存储器停顿和存储器分页活动74可指示是否应使得更多或更少的存储器可用于电子设备10。GPU存储器停顿72的存在可指示应使得更多的存储器可用,而这种GPU存储器停顿72的缺少可指示电子设备10当前具有过量的存储器供给。类似地,存储器分页活动74可指示可用的存储器处于或不处于活动或频繁使用中的程度。
可指示是否应增加或减少电子设备10的可用存储器资源的另一准则可以是用户偏好76。例如,电子设备10的用户可指示比高性能更偏好增加电池寿命,或者相反。类似地,用户可选择使电子设备10进入更低或更低高的存储器消耗模式。在另一例子中,电子设备10可能能够被多个用户使用,并且不同的用户可以不同的方式操作电子设备10。即,一些用户一般会使用存储器密集应用,而其它的用户一般会使用消耗相对很少的存储器的应用。通过跟踪用户存储器-消耗行为,电子设备10可确定各用户的偏好76。然后,当用户使用电子设备10时,用户偏好76可关于增加或减少可用的存储器增加权重。
如上所述,电子设备10可在确定如何管理电子设备10的存储器14时考虑存储器操作准则60。在图8的流程图80中,出现用于基于这种准则60管理存储器14的方法的一个实施例。在第一框82中,电子设备10(例如,存储器控制器36、处理器12、在处理器12上运行的OS和/或在OS上运行的软件)可考虑存储器操作准则60中的一些或全部。在一些实施例中,准则60可相对于彼此被加权,以查明电子设备10存储器使用总体是过量还是不足或者可望在将来在变得过量或不足。在一些实施例中,某些准则60可被赋予不同的权重和/或一定的准则60可优先于所有其它(例如,当热变得过量时,热限制70可优先)。
如判定框84所示,如果可用的存储器被确定为过量或者可望在不久的将来过量(例如,关于重新映射和去活过量存储器所需要的时间),那么电子设备10可在判定框86中考虑存储器使用的过量经过证明存储器14的一个或多个部分的去活的阈值。作为例子,当用户选择关闭高存储器消耗应用时,电子设备10可确定一旦关闭当前可用的存储器就可望过量。阈值可包含可代表存储器使用过量的时间长度的时间成分,和/或可包含可代表存储器使用被视为过量的程度的定量成分。在一些实施例中,阈值可代表总过量存储器使用的量和/或使用中存储器保持低于存储器14的一定数量的部分(例如,如图6所示,使用少于2个的存储体40)的时间量。如果在判定框86中没有达到阈值,那么电子设备10可在框88中通过降低存储体40A、40B和/或40C和/或它们的相关存储器总线42、44和/或46的时钟速度和/或操作电压以将它们置于低功率消耗模式来减少一些功率消耗。如果在判定框86中达到阈值,那么电子设备10在框90中通过去活存储体40A、40B和/或40C和/或它们的相关存储器总线42、44和/或46中的一个来减少附加的功率消耗。以下描述可如何出现这种去活的更详细的描述。
可以以各种其它方式实施一个或多个存储体40被断电时的判定框84和86~框90的处理。在一些实施例中,当电子设备10的存储器使用减少到可映射到数量比当前使用中少的存储体40A、40B和40C中的DIMM地址的物理地址的总数时,与存储器控制器36相关的逻辑可启动关断处理。这样,在某些实施例中,在处理器12上运行的操作系统(OS)或在OS上运行的软件可遵循以上的判定框84和86,以决定什么时候将存储体40断电。OS可然后指示处理器12向存储器控制器36发送控制信号,从而导致在框90中开始关断处理。
在其它的实施例中,处理器12可自动检测存储器使用什么时候下降以包括比当前使用少的存储体40A、40B和40C。例如,MMU 39可周期性地或连续地向处理器12提供当前使用和/或被映射到物理地址的逻辑地址的总数的指示。然后,处理器12可向存储器控制器36发送控制信号以启动关断处理。
在某些其它的实施例中,与存储器控制器36相关的逻辑可通过监视处理器12请求哪些物理地址来自动检测什么时候应使用更少的存储体40A、40B和40C。例如,如果处理器12对于阈值时间周期(例如,10秒、20秒、1分钟、2分钟、5分钟、10分钟、20分钟等)没有请求超出存储体1的物理地址,那么存储器控制器36可理解不需要这些物理地址,并且可因此自动启动关断处理。
返回判定框84,如果电子设备10的存储器使用不被确定为过量,那么电子设备10可在判定框92中确定当前可用的总存储器按照存储器操作准则60是否不足。在判定框94中,电子设备10可考虑是否存储器使用的不足经过判断事先关断的存储器14的一个或多个部分的去活的阈值。这种阈值可包含可代表存储器使用不足的时间长度的时间成分,和/或可包含可代表存储器使用被视为不足的程度的定量成分。在一些实施例中,阈值可代表总存储器使用量和/或使用中存储器保持高于接近存储器14的一定数量的部分的限制的时间量(例如,当一个存储体40已被关断时,为几乎所有的2个存储体40的使用)。
如果在判定框94中没有达到阈值,那么在框96中,可通过增加存储体40A、40B和/或40C和/或它们的相关存储器总线42、44和/或46的时钟速度和/或操作电压,在不明显增加功率消耗的情况下增加电子设备10的性能。如果在判定框94中达到了阈值,那么电子设备10可在框98中重新激活事先被关断的存储体40A、40B和/或40C和它们的相关存储器总线42、44和/或46中的一个。如果准则60指示在判定框84中存储器使用不过量并且在框92中存储器使用没有不足,那么如框100所示,电子设备10可以不明显地改变存储器14的配置。
如上所述,存储器14的一个或多个部分可被去活以节省电力。在一些实施例中,如图9所示,存储器14的这些部分可包含一个或多个存储体40。特别地,图9示出存储器管理系统34可在将某些物理地址从存储体40C重新映射和复制到剩余的存储体40A和40B之后通过使存储体40C(存储体2)和/或相关的存储器总线46关断来节省电力的方式。在图9中,存储器控制器36被示为导致存储体40C(存储体2)和/或相关的存储器总线46关断。但是,应当理解,根据设计考虑和/或电子设备10的操作状态,存储器控制器36可替代性地使存储体40A或40B和/或存储器总线42或44中的任一个关断。并且,虽然一整个存储体40C被示为被关断,但是在一些实施例中,存储器控制器36可仅使存储体40C的一部分关断。
存储器控制器36可使选择的存储体40C和/或存储器总线46以任意适当的方式关断。例如,在一个实施例中,存储体40C可能能够在从存储器控制器36接收特定的控制信号或指令时关断。另外,或者作为替代方案,存储器控制器36可通过例如引导开关(未示出)切断电力使对于选择的存储体40的电源被切断。
通过图10的流程图11示出用于实施存储器关断处理的方法的一个实施例。在第一框112中,存储器控制器36可开始将存储体40A、40B或40C和/或存储器总线42、44或46中的一个断电的处理。如以上参照图8所示的那样,存储器控制器36、处理器12、在处理器12上运行的OS和/或在OS上运行的软件可基于存储器操作准则60中的一个或多个确定是否要关断存储体40A、40B或40C中的一个。作为例子,可在OS确定其存储器的工作组足够小或可使得其足够小以不使用来自存储体40A、40B或40C中的一个的存储器之后进行框112。在一些实施例中,OS然后可停止使用等于存储体40A、40B或40C中的一个的存储器量。例如,如果存储体40A、40B和40C中的每一个具有相同的容量,那么OS可停止使用三分之一的存储器。
在在框112中确定开始关断处理之后,存储器控制器36可在框114中选择关断存储体40A、40B或40C中的哪一个。在一些实施例中,存储器控制器36、处理器12、在处理器12上运行的OS和/或在OS上运行的软件可选择以一定的次序关断存储体40A、40B和40C中的一个。例如,如果所有的存储体40A、40B和40C当前是活动的,那么存储体2可被选择关断;如果存储体40A、40B和40C中的两个当前是活动的,那么存储体1可被选择关断。作为例子,OS可呼叫存储器控制器36以使存储体40A、40B或40C被关断(例如,关掉或者置于自刷新模式中)。
作为替代方案,在框114中,存储器控制器36、处理器12、在处理器12上运行的OS和/或在OS上运行的软件可基于与带宽因素平衡的功率消耗因素确定哪个存储体40和/或存储器总线42、44或46关断。例如,存储体40A、40B和40C和/或存储器总线42、44和46中的某些可具有更高的带宽能力,但会消耗更多的电力。当带宽问题比功率消耗问题重要时,存储器控制器36可选择关断低带宽存储体40和/或存储器总线42、44或46,从而节省一些电力但保持更大量的存储器带宽。当功率消耗问题比带宽问题重要时,存储器控制器36可选择关断更高带宽存储体40和/或存储器总线42、44或46。
如后面更详细地描述的那样,在框116中,存储器控制器36可将剩余的或活动的物理地址重新映射到DIMM地址并在关断选择的存储体40之前从被选择要被关断的存储体40复制数据。在重新映射和复制之后,在框118中,存储器控制器36可以以任意适当的方式使选择的存储体40和/或存储器总线42、44或46关断。例如,在一个实施例中,存储体40可能能够在从存储器控制器36接收特定的控制信号或指令时关断。另外,或者作为替代方案,存储器控制器36可通过例如引导开关(未示出)切断电力来切断对于选择的存储体40的电力。
转到图11,存储器映射图120示出在图10的框116中使用的从3存储体映射方案动态重新映射为2存储体映射方案的方式。标有“物理地址”的列列出物理地址。以虚线的格式示出不再使用的物理地址(例如,16~23),该不再使用的物理地址可被称为“不活动物理地址”。标有“存储体”的列列出仅出于示例性的目的被示为保持八个DIMM地址的存储体40A、40B和40C(存储体0、存储体1和存储体2)。实际上,应当理解,存储体40和它们的存储地址的大小可大得多,并且可代表可由存储器控制器36操纵的存储器的任何大小块(例如,高速缓存线或页)。以虚线格式示出要被关断的存储体40(例如,存储体2)。标有“DIMM地址(3个存储体)”的列示出物理地址对于三个存储体40A、40B和40C上的某些硬件存储器存储位置或DIMM地址的原始映射。标有“DIMM地址(2个存储体)”的列示出在活动存储体40的数量从3个减少到2个时将活动物理地址重新映射到某些硬件存储器存储位置或DIMM地址。
在重新映射之前,在处理器12上运行的OS、在操作系统(OS)上运行的软件或处理器12(例如,在一些实施例中,为MMU 39)可配置使用中物理地址,使得使用中物理地址处于要被断电的存储器的区域外面。例如,某些有线物理地址或页可被清除。然后,OS、软件和/或处理器12可使存储器控制器36接收命令以开始动态重新映射处理。另外,或者作为替代方案,存储器控制器36可如上面讨论的那样自动地确定开始动态重新映射处理。
存储器控制器36可使用替代性的动态存储器映射函数以将在3存储体映射方案中映射的使用中物理地址重新映射到第三存储体40的DIMM地址。替代性的存储器映射函数可以是在重新映射在3存储体方案中映射到不活动物理地址的DIMM地址的同时,保持映射位于保持使用的存储体40A、40B和40C上的活动物理地址的任何适当的函数。在存储器重新映射图120的例子中,存储体0和1保持活动,并且映射到存储体0和1上的DIMM地址的活动物理地址(例如,0~15)不会变。当活动存储体40A、40B和40C中的一个的DIMM地址被映射到不活动物理地址(例如,16~23)时,存储器控制器36可飞速重新映射这些DIMM地址。用于剩余的物理地址的替代性的存储器映射函数可包含以下的关系:
ALT_DIMMAddr3_2=如果(DIMMAddr<ReducedMemory3_2,
则DIMMAddr,
否则如果(BankReindex3_2<FirstBankEntries3_2
则FirstBankOffset3_2+BankReindex3_2.
否则SeoondBankOffset3_2+BankRaindex3_2)) (3),
其中,
BankReindex3_2=如果(DIMMAddr<ReducedMemory3_2,
则-1,
否则DIMMAddr-ReducedMemory3_2) (4);
FirstBankEntries3_2=Floor(BankSize/TotalBanks) (5);
FirstBankOffset3_2=
Floor(ReducedBanks3_2*BankSize/TotalBanks) (6);和
SecondBankOffset3_2=FirstBankEntries3_2+BankSize (7)
-Floor(BanSize/TotalBanks)+3
在以上的式(3)~(7)中,变量ALT_DIMMAddr3_2代表2存储体映射方案的替代性的DIMM地址映射,变量DIMMAddr代表3存储体映射方案的DIMM地址映射,以及ReducedMemroy3_2代表跨着剩余的活动的存储体40A、40B和40C可用的DIMM地址的新减少的量。与变量FirstBankEntries3_2、FirstBankOffset3_2和SecondBankOffset3_2组合使用变量BankReindex3_2,以查明替代性的DIMM地址映射。在确定这些变量时使用的变量BankSize代表每个存储体40的物理地址的量,变量TotalBanks代表存储体40A、40B和40C的总数,以及变量ReduceBanks3_2代表一旦选择的存储体40被关断时保持的存储体40A、40B和40C的数量。
如上面参照图4描述的那样,并且如图11所示,在3存储体存储器映射方案中,物理地址“4”映射到DIMM地址“9”。在2存储体存储器映射模式中,使用式(3)~(7)的替代性的存储器映射函数,物理地址“4”可继续被映射到DIMM地址“9”。相反,物理地址“2”可从位于要被关断的存储体40(例如,存储体2)上的DIMM地址“16”被重新映射到DIMM地址“6”。
存储器控制器36可使用复制函数122以将数据从即将关断存储体40(例如,存储体2)复制到新重新映射的存储体0和1中。在复制存储器数据时,存储器控制器36可简单地重写存储体0和1的重新映射的地址中的数据。作为例子,存储器控制器36可从与剩余的活动物理地址对应的即将关断存储体40的DIMM地址读取数据。存储器控制器36可然后将数据写入到替代性的DIMM地址或替代性的DIMM地址和原始DIMM地址。应当注意,复制函数122可在没有诸如从活动存储体0或1中的任一个的复制的其它中间复制步骤的情况下,有效地将数据从存储体2传送到存储体0和1。最后,应当注意,可如在存储器重新映射图120表示的那样进行存储器重新映射处理可能不包含处理器12的MMU 39的转换后备缓冲器(TLB)的一部分上的任何活动,而可仅通过以迅速、有效的方式执行重新映射和复制的存储器控制器36动态地进行。
在出现重新映射的同时,要被关断的存储体40(例如,存储体2)可继续是可访问的。由于存储于要被关断的存储体40(例如,存储体2)上的数据被写入到3存储体DIMM地址映射和2存储体DIMM地址映射中(例如,写入到存储体0、存储体1和存储体2上的硬件存储单元),因此要被关断的存储体40上的数据将在3存储体DIMM地址上保持可访问,直到存储体40被实际关断。并且,应当理解,该重新映射的原理可扩展到任何更少数量的存储体40,不仅仅是从3个存储体40到2个存储体40的情况。即,在最终关断要被关断的存储体40(例如,存储体2)之前,存储器控制器36可继续以2存储体DIMM地址映射操作。由于存储器控制器36继续以2存储体DIMM地址映射操作,因此可在最终关断要被关断的存储体40(例如,存储体2)之前的任何时间中止重新映射操作。
在某些实施例中,存储器控制器36可将数据从即将关断存储体40(例如,存储体2)交换而不是破坏性地复制到新重新映射的存储体0和1中。作为例子,物理地址2可与物理地址18交换,物理地址5与21交换,等等。虽然执行这种交换功能而不是复制功能可包含附加的存储器缓冲器以在出现交换的同时保持正在交换的物理地址,但是交换可使得来自当前没有使用的物理地址的数据可用于将来。特别地,要被关断的存储体40可被置于可消耗相对很少的电力但可保留在存储体40内存储的数据的自刷新模式中。在晚些时候,当存储体40要被重新激活并出现重新映射时,原始交换的物理地址可被交换回。
并且,如上所述,在一些实施例中,式(1)和式(2)的原始3存储体存储器映射函数可被计算以跨着DIMM地址分配物理存储地址,使得各存储体40包含比没有延迟的最大可能少的相关物理地址。然后,使用式(3)~(7)的替代性的映射函数,即使两个相关的物理地址被映射到同一存储体40,存储体40也不会招致附加的延迟。因此,两个相关的物理地址可基于替代性的映射函数被映射到同一存储体40,但不会明显增加存储器14的延迟。
返回图12,流程图124描述用于实施在存储器重新映射图120中表示的处理的方法的实施例。在第一框126中,存储器管理系统34可开始进入2存储体存储器映射模式。在框128中,当从处理器12接收物理地址时,存储器控制器36可使用式(3)~(7)的替代性的存储器映射函数。在框130中,如存储器映射图120所示,存储体2上的剩余的活动物理地址的存储器数据可被复制到存储体0和1的新重新映射的存储地址上。在一个实施例中,存储器控制器36可仅从要被关断的存储体40的DIMM地址读取数据,但可将数据写回3存储体DIMM地址和2存储体DIMM地址。在出现这种复制时,假定各复制是原子的(即,给定的DIMM地址的各读取伴随向两个DIMM地址的写回),存储器控制器36可继续以3存储体存储器映射模式操作,异步地向2存储体存储器映射模式转变。即,从操作系统(OS)的角度,存储器控制器36表现为以2存储体存储器映射操作。从OS的观点,OS仅使用更少的地址空间。事实上,在出现从3存储体存储器映射到2存储体存储器映射的转变的同时,所有的读取和写入会如期望的那样出现。以这种方式,存储器可在没有过量复制的情况下被动态地飞速重新映射。因此,如果存储器控制器36出于另一目的需要在存储于存储体40中的存储器上执行其它的操作时,在存储器控制器36执行这些其它的操作的同时,框130的复制可暂停。当其它的操作结束时,框130的原子复制可继续,直到完成。然后,如上面参照图10的框118讨论的那样,选择的存储体40可被关断。在某些实施例中,存储器控制器36可以以处理器12或操作系统(OS)未见的方式实施这些技术。在一些实施例中,OS可使存储器控制器36执行框126、128和130中的某些或全部(例如,OS可导致框130中的原子复制)。
在一个实施例中,存储器控制器36可通过应用以下的关系识别映射到要被关断的存储体40中的DIMM地址的物理地址:
DIMMAddrBank=Floor(DIMMAddr/BankSize) (8)和
PAddr=MOD(DIMMAddr*TotalBanks,TotalMemory) (9),
+DIMMAddrBank
其中,变量DIMMAddr代表映射物理地址的DIMM地址,变量PAddr代表物理地址。变量DIMMAddrBank代表偏移值。变量BankSize代表每个存储体40的物理地址的量,变量TotalBanks代表存储体40A、40B和40C的总数,以及变量TotalMemory代表DIMM地址的总数。
作为例子,根据上式(8)和(9),存储体2上的DIMM地址“16”映射到物理地址“2”。由于DIMM地址“16”保持与处于保持活动的物理地址之中的物理地址“2”相关的数据,因此存储器控制器36可读取DIMM地址“16”并且将存储于其中的数据复制到对于物理地址“2”的替代性DIMM地址映射以及对于物理地址“2”的原始DIMM地址映射。存储器控制器36可继续评价要被关断的存储体40(例如,存储体2)的DIMM地址中的每一个,直到确定不活动的物理地址(例如,“17”)。并且,在出现重新映射的同时,要被关断的存储体40(例如,存储体2)可继续可访问。由于存储于要被关断的存储体40(例如,存储体2)上的数据被破坏性地复制和写入到替代性的DIMM地址映射和原始DIMM地址映射中,因此要被关断的存储体40上的数据将在该原始DIMM地址映射上保持可访问,直到存储体40被实际关断,其中,存储器控制器36可遵循替代性DIMM地址映射方案。还应理解,该重新映射的原理可扩展到任何更少数量的存储体40。
一般地,在从包含更多的存储体40的存储器映射转变到包含更少的存储体40的存储器映射之后,诸如在从3存储体存储器映射转变到2存储体存储器映射之后,一个或多个存储体40可以是不活动的。但是,在诸如图24和图25所示的实施例的某些实施例中,先前关断的存储体40(例如,存储体2)可简单地在某些时间被通电。特别地,数据可从由2存储体存储器映射限定的DIMM地址被读取,但可被写入到由3存储体存储器映射和2存储体存储器映射限定的DIMM地址。以这种方式,至少在一些时间(例如,在自刷新模式中,同时不被写入)第三存储体会是不活动的,从而节省电力。但是,当存储器控制器36切换回3存储体映射时,已出现数据向DIMM地址的3存储体映射的反向复制,从而节省时间。这种实施例对于非对称的读取主导的情况是特别有用的。
图24和图25示出以上参照图10更详细地描述的替代性存储器映射120。因而,这里不再现该讨论。在图24和图25所示的实施例中,仅存储体0和存储体1是活动的,并且存储器控制器36一般以2存储体存储器映射操作。即,在图24所示的例子中,当存储器控制器36选择执行读取操作244以读取物理地址“2”时,存储器控制器仅从在2存储体存储器映射中映射到物理地址“2”的DIMM地址“6”读取。当数据被读取时,存储体2可保持不活动,从而节省电力。
如图25所示,当存储器控制器36选择向存储体40写入数据时,存储器控制器36可不仅向2存储体存储器映射而且向3存储体存储器映射写入数据。这样,存储体2可至少暂时被激活。在图25的例子中,当存储器控制器36选择执行写入物理地址“2”的写入操作246时,存储器控制器可不仅写入到存储体0上的DIMM地址“6””而且写入到存储体2上的DIMM地址“16”。如果存储器控制器36在后来从2存储体存储器映射转变到3存储体存储器映射,那么由于物理地址“2”的内容已位于DIMM地址“16”中,因此来自DIMM地址“6”的数据不需要被复制到DIMM地址“16”。
如图13的存储器映射图140所示,图11所示的动态存储器重新映射的处理可被扩展以进一步减少活动存储器的量。存储器映射图140示出从两个存储体40A、40B和40C到一个存储体40的存储器使用的减少。标有“物理地址”的列列出物理地址。以虚线格式示出不再使用的物理地址(例如,8~24),该不再使用的物理地址可被称为“不活动物理地址”。标有“存储体”的列列出仅出于示例性的目的分别被示为保持八个DIMM地址的存储体40A、40B和40C。实际上,应当理解,存储体40和它们的存储地址的大小可大得多,并且可代表可由存储器控制器36操纵的存储器的任何大小块(例如,高速缓存线或页)。以虚线格式示出要被关断的存储体40(例如,存储体1)和事先被关断的存储体40。标有“DIMM地址(2个存储体)”的列示出图11的2存储体存储器映射方案。标有“DIMM地址(1个存储体)”的列示出在活动存储体40A、40B和40C的数量从2个减少到1个时将活动物理地址重新映射到某些DIMM地址。
存储器控制器36可以以与以上参照图10和图12讨论的方法类似的方式实施在存储器映射图140中概括的存储器映射过程。存储器控制器36可使用另一替代性的动态存储器映射函数,以将在2存储体映射方案中映射的使用中物理地址重新映射到要被关断的第2存储体40的DIMM地址。替代性的存储器映射函数可以是在重新映射在2存储体方案中映射到不活动物理地址的DIMM地址的同时,保持映射位于保持使用的存储体40上的活动物理地址的任何适当的函数。在存储器重新映射图140的例子中,存储体0和1保持活动,并且映射到存储体0上的DIMM地址的那些活动物理地址(例如,0~7)不会变。当活动存储体40的DIMM地址被映射到不活动物理地址(例如,8~23)时,存储器控制器36可飞速重新映射这些DIMM地址。用于剩余的物理地址的第二替代性的存储器映射函数可包含以下的关系:
ALT_DIMMAddr2_1=如果(ALT_DIMMAddr3_2<ReducedMemory2_1,
则ALT_DIMMAddr3_2,
否则如果(BankReindex2_1<FirstBankEntries2_1,
则FirstBankOffset2_1+Bank_Reindex2_1,
否则BankReindex2_1)) (10),
其中,
BankReindex2_1=如果(ALT_DIMMAddr3_2<ReducedMemory2_1,
则-1,
否则ALT_DIMMAddr3_2-ReducedMemory2_1) (11);
FirstBankEntries2_1=Floor(BankSize/TotalBanks)+1 (12);和
FirstBankOffset2_1=Floor(ReducedBanks2_1*BankSize/TotalBanks)+1 (13)
在以上的式(10)~(13)中,变量ALT_DIMMAddr2_1代表1存储体映射方案的替代性的DIMM地址映射,变量ALT_DIMMAddr3_2代表2存储体映射方案的替代性的DIMM地址映射,以及ReducedMemroy2_1代表跨着剩余的活动存储体40A、40B和40C可用的DIMM地址的新减少的量。与变量FirstBankEntries2_1和FirstBankOffset2_1组合使用变量BankReindex2_1,以查明替代性的DIMM地址映射。在确定这些变量时使用的变量BankSize代表每个存储体40的物理地址的量,变量TotalBanks代表存储体40A、40B和40C的总数,以及变量ReducedBanks2_1代表一旦选择的存储体40(例如,存储体1)被关断时保持的存储体40A、40B和40C的数量。
如上面参照图11描述的那样,在二存储体存储器映射方案下,物理地址“4”仍可映射到DIMM地址“9”。基于式(10)~(13),如图11所示,在1存储体存储器映射方案中,物理地址“4”可被重新映射到DIMM地址“4”。类似地,在2存储体存储器映射方案中被映射到DIMM地址“6”的物理地址“2”可保持在1存储体存储器映射方案中映射到DIMM地址“6”。在进入1存储体存储器映射模式之后,存储器控制器36可执行复制功能142以在1存储体存储器映射方案中将剩余的活动存储地址传送到重新映射的地址。复制功能142可以以与以上讨论的复制功能122类似的方式出现。
存储器关断处理在某些实施例中可被电子设备10用于特定情况下的电力管理和/或热管理。特别地,图14示出描述用于电力管理和/或热管理的这种方法的实施例的流程图150。在框152中,电子设备10可进入空闲状态或者会超出温度阈值。在任一种情况下,存储器控制器36、处理器12、在处理器12上运行的OS和/或在OS上运行的软件可确定应减少功率消耗以节省电力和/或防止产生附加的热。
因而,在框154中,OS可使用可包括限制显示器18上的图形的帧速率、合并存储器的工作组以适合存储器的更小的区域和/或减少无约束存储器的各种措施中的任一种来减少存储器使用。另外,或者作为替代方案,当电源26从AC电力切换到电池电力时,电子设备10可进入空闲状态或低存储器使用状态,这可包含自动降低视频帧速率。在某些实施例中,电子设备10可通过将存储器数据备份到非易失性存储设备16上并然后指示不再使用与数据对应的高次物理地址来减少存储器使用。
然后,在框156中,存储器控制器36可执行上述的存储器重新映射过程中的一个并关断存储器14的一部分(例如,存储体2),从而节省电力和/或减少热量。在一些实施例中,在存储体40被关断之前,要被关断的存储体40(例如,存储体2)上的某些DIMM地址可被用作高速缓存。
如以上参照图8讨论的那样,除了被去活以节省电力以外,存储体40A、40B和40C也可被重新激活以增加可用的存储器。图15和图16示出用于飞速从更少的存储体40A、40B和40C重新映射到更多的存储体40A、40B和40C的存储器重新映射图。首先转到图15,存储器重新映射图160示出用于从1存储体存储器映射方案转变到2存储体存储器映射方案的过程。标有“物理地址”的列列出物理地址。以虚线的格式示出不再使用的物理地址(例如,16~23),该不再使用的物理地址可被称为“不活动物理地址”。标有“存储体”的列列出仅出于示例性的目的被示为分别保持八个DIMM地址的存储体40A、40B和40C。实际上,应当理解,存储体40和它们的存储地址的大小可大得多,并且可代表可由存储器控制器36操纵的存储器的任何大小块(例如,高速缓存线或页)。标有“DIMM地址(2个存储体)”的列示出2存储体存储器映射方案,以及标有“DIMM地址(1个存储体)”的列示出1存储体存储器映射方案。
当电子设备10从1存储体存储器映射方案转变到2存储体存储器映射方案时,存储器控制器36可执行复制功能162。存储器控制器36可确定存储体0的哪个DIMM地址当前存储与在2存储体存储器映射方案中映射到存储体1的DIMM地址的物理地址相关的数据。存储器控制器36可从这些DIMM地址读取并且可将它们的内容至少写入与2存储体存储器映射方案的这些物理地址相关的DIMM地址。在某些实施例中,存储器控制器36可将这些数据写入1存储体存储器映射方案和2存储体存储器映射方案的DIMM地址上。
然后转到图16,存储器重新映射图170示出用于从2存储体存储器映射方案转变到3存储体存储器映射方案的过程。标有“物理地址”的列列出物理地址。标有“存储体”的列列出仅出于示例性的目的被示为分别保持八个DIMM地址的存储体40A、40B和40C。实际上,应当理解,存储体40和它们的存储地址的大小可大得多,并且可代表可由存储器控制器36操纵的存储器的任何大小块(例如,高速缓存线或页)。标有“DIMM地址(3个存储体)”的列示出3存储体存储器映射方案,以及标有“DIMM地址(2个存储体)”的列示出2存储体存储器映射方案。
在上述的方式中,当电子设备10从2存储体存储器映射方案转变到3存储体存储器映射方案时,存储器控制器36可执行复制功能172。存储器控制器36可确定存储体0和1的哪些DIMM地址当前存储与在3存储体存储器映射方案中映射到存储体2的DIMM地址的物理地址相关的数据。存储器控制器36可从这些DIMM地址读取并且可将它们的内容至少写入与3存储体存储器映射方案的这些物理地址相关的DIMM地址。在某些实施例中,存储器控制器36可将这些数据写入与2存储体存储器映射方案和3存储体存储器映射方案的这些物理地址相关的DIMM地址上。
参照图15和图16,应当想起,在某些实施例中,存储器控制器36可将数据从关断的存储体40(例如,存储体2或存储体1)交换而不是破坏性性地复制到新重新映射的存储体0和/或1中。对于这些实施例,被关断的存储体40可能被置于低电力自刷新模式中。因而,关断的存储体40可能已保存存储于其物理地址中的数据。
当关断的存储体40被重新激活和重新映射(例如,根据图15或图16)时,该数据可被恢复。不是将某些物理地址从例如存储体0或1上的硬件存储单元破坏性地复制到存储体1或2上,这些数据事实上可被交换。虽然执行这种交换功能而不是破坏性的复制功能可包含用于在出现交换时保持被交换的物理地址的附加的存储器缓冲器,但是,交换可使得能够重新访问先前不可访问的数据,而不需要从非易失性存储设备16恢复这种数据。
在一些实施例中,如图17的流程图180所示,电子设备10可平衡性能需要与存储器使用需要,以减少在某些情况下由电子设备10使用的电力量。在第一框182中,存储器控制器36、处理器12、在处理器12上运行的OS和/或在OS上运行的软件可评价电子设备10的存储器使用和性能需要。可例如通过监视当前使用的存储器量和/或使用由电子设备10跟踪的性能计数器实现这一点。如判定框184和186所示,如果性能需要较低并且存储器使用较低,那么电子设备10可采取重新映射过程以根据以上在框188中描述的技术将存储体40A、40B和40C中的一个或多个断电。如果性能需要较低并且存储器需要较高,那么电子设备10可在框190中降低存储体40A、40B和40C和/或存储器总线42、44和46的时钟频率。另外,或者作为替代方案,在执行上述的重新映射和存储器关断技术中的一种之前,电子设备10可执行以上参照图14描述的系统空闲过程,以减少使用存储器的量。
如果如判定框184和192所示的那样,电子设备10的性能需要较高但存储器使用较低,那么如框194所示,存储器14可被重新映射并且附加的存储体40A、40B或40C可被重新激活。虽然不是所有的附加的DIMM地址可被电子设备10使用,但是通过跨着附加的存储体40分配存储器数据,可以增加存储器访问带宽。存储器控制器36可以以诸如以上参照图15和/或图16描述的方式执行重新映射过程。如果如判定框184和192所示的那样,性能需要较高并且存储器使用较高,那么如框196所示,可使得所有的存储体40A、40B和40C活动并处于使用中。
可通过减少对于存储体40的某些类型的访问的数量来进一步提高性能。特别地,可通过行地址选择(RAS)、列地址选择(CAS)和设备选择(DEV)访问DIMM地址。由于通过RAS的变化改变存储器行会产生比通过CAS的变化改变存储器列大的延迟,因此可以使用减少RAS变化的数量并增加CAS变化的数量的飞速存储器重新映射技术。以下更详细地描述用于执行这种存储器重新映射的技术。
为了在存储体40中的一个或多个被关断时减少行变化和存储体40之间的不必要的复制,存储器控制器36可在处理器12请求某些存储器时重新映射某些地址位。仅作为例子,如图18所示,与256个高速缓存线地址的地址空间对应的高速缓存线地址200可包含以重要性的次序标有A0~A7的8个位。应当理解,实际中,高速缓存线地址可更长或更短。事实上,图18、图19A~C、图21A~E和图22A~B所示的这些实施例仅出于便于解释的目的被示为包含用于将256个高速缓存线的地址空间编码的8个位。对于允许一个或两个存储体40被断电的系统,应减少DRAM设备之间的数据复制。例如,如果存储体40的存储器中的一半要被断电,那么应在出现断电时重新定位不多于一半的存储器。
例如,电子设备10可以在3种不同的配置中操作,其中,1、2或4个存储体40保持通电,并且各配置将可用的存储器的量加倍(例如,各存储体40具有相同的大小)。在各配置中,可通过应用三种不同的地址映射方案避免不必要的复制操作。这些方案可在各模式中实现高度的存储体40交错,同时与模式无关减少行变化。
在一个实施例中,存储器控制器36可以以每次配置变化将映射变化限制到仅两个位的方式,映射高速缓存线地址200。图19~C代表以具有相同大小的四个存储体40开始的配置的重新映射。仅作为例子,如图19A~C所示,与256个高速缓存线地址的地址空间对应的高速缓存线地址200可包含以重要性的次序标有A0~A7的8个位。应当理解,实际中,高速缓存线地址可更长或更短。事实上,图18、图19A~C、图21A~E和图22A~B所示的这些实施例仅出于便于解释的目的被示为包含用于将256个高速缓存线的地址空间编码的8个位。并且,仅仅为便于解释,图21A~C的高速缓存线地址200分别映射64个高速缓存地址。
图19代表所有的四个存储体40活动时的配置,图19B代表存储体40中的两个活动时的配置,以及图19C代表只有一个存储体40活动时的配置。在图19A~C中,R0~R2与RAS位对应,C0~C2与CAS位对应,以及D0和D1与DEV位对应。在某些实施例中,当所有的四个存储体40活动时,用于模式的系统存储器映射可将高速缓存地址128~255映射到两个最快的存储体40并分别将高速缓存地址0~63和64~127映射到较慢的存储体40。当在具有相同大小的四个存储体40中只有两个活动时,用于模式的系统存储器映射可分别将高速缓存地址0~63和64~127映射到较慢的存储体40,并且当在四个存储体40中只有一个活动时,用于模式的系统存储器映射可将高速缓存地址0~63映射到存储体40中的最慢的一个。
从图19A~C的映射可以看出,在各配置变化中,位中的一个可被重新定位到将被断电的系统地址映射的一部分。由于当所有的四个存储体40活动时DEV位D0和D1驻留于低次位中以实现最大化的存储体40交错(图19A),并且存储体40的断电意味着存储体40不能再被访问,因此为了导致不出现对于禁用的存储体40的访问,DEV位中的一个可从低次位被重新定位于将不再被访问的高次位中的一个(图19B)。
为了减少行变化,应与DEV位交换的位应是CAS位,从而意味着CAS位以前使用高速缓存地址的高次位。因此,为了减少复制,RAS必须在会另外实现的启用多个存储体40的流动中更频繁地改变,但是在任何情况下,其变化频率不应比仅启用单个存储体40时高。因此,在从图19A的4存储体配置变为图19B的2存储体配置时,高速缓存线地址位A1~A7被交换。在从19B的2存储体配置变为图19C的一存储体配置时,高速缓存线地址位A1和A6被交换。
因此,图19A~C的映射导致高速缓存线地址与系统地址之间的以下的转换,其中,表示法([#],[#],[#])[#]与([RAS],[CAS],[DEV])[系统地址]对应:
表1
从表1可以看出,不管模式如何,都在行变化之间存在八个访问。
在一些实施例中,电子设备10可仅具有3个存储体40,其中的一个存储体40可具有比剩余的两个存储体40多的存储器。在一些实施例中,较快的存储体40可具有与两个较慢的存储体40的组合容量相同的容量(例如,快存储体40可具有为两个剩余的慢存储体40中的每一个的容量的两倍的容量)。对于这些实施例,通过将DEV[0](D0)映射到较快的存储体40上附加的CAS位(例如,CAS[3](C3)),仍可使用以上的设计策略。
为了在某存储器要被断电时实施飞速存储器重新映射,电子设备10可遵循诸如通过图20的流程图210公开的过程。流程图210可在电子设备10在满存储器使用模式中操作时开始(例如,如果存在四个存储体40,那么所有的4个存储体40可以是活动的)。因此,当流程图210开始时,存储器控制器36可根据图19A所示的方案映射存储体40。如以上更详细地讨论的那样,电子设备10可准备使用任何适当的技术将可用于电子设备10的存储器14的一半断电(框212)。由于较快存储体40一般会消耗更多的电力,因此电子设备10一般会首先选择将最快的存储体40断电。
在将存储体40断电之前,存储器控制器36可根据仅变化高速缓存线地址200中的两个位的方案(例如,如19B所示),重新映射高速缓存线地址200(框214)。然后,在将选择的存储体40断电之前,以上述的方式,存储器控制器36可将某些数据从将被断电的存储体40复制到将保持活动的存储体40(框216)。
在适当的情况下,电子设备10可使用诸如以上讨论的任何适当的技术确定将剩余的存储器14的一半断电(框218)。由于较快存储体40一般会消耗更多的电力,因此电子设备10一般会选择将较快的剩余存储体40断电。作为例子,如果电子设备10总共具有相同大小的四个存储体40,那么只有最慢的存储体40可被选择为保持活动。存储器控制器36可根据仅改变高速缓存线地址200的两个位的方案(例如,如图19C所示),下一个重新映射高速缓存线地址200(框220)。然后,在将选择的存储体40断电之前,以上述的方式,存储器控制器36可将某些数据从将被断电的存储体40复制到将保持活动的存储体40(框222)。
在某些其它的实施例中,电子设备可10使用各模式从系统存储器增减相同量的存储器的技术。例如,电子设备10的某些实施例可具有相同容量的3个存储体40。为了减少复制,可以以与以上讨论的方式类似的方式在两个模式之间仅改变两个地址映射位。
例如,图21A~E给出通过具有相同大小的三个存储体40开始的配置的映射。特别地,图21A~C给出所有的三个存储体40活动时的配置的某些变更,图21D给出其中的两个存储体40活动时的配置,以及图21E给出其中只有一个存储体40活动时的配置。在图21A~E中,R0~R2与RAS位对应,C0~C2与CAS位对应,以及D0和D1与DEV位对应。仅作为例子,如图21A~E所示,与256个高速缓存线地址的地址空间对应的高速缓存线地址200可包含以重要性的次序标有A0~A7的8个位。应当理解,实际中,高速缓存线地址可更长或更短。事实上,图18、图19A~C、图21A~E和图22A~B所示的这些实施例仅出于便于解释的目的被示为包含用于将256个高速缓存线的地址空间编码的8个位。并且,仅仅为了便于解释,图21A~C的高速缓存线地址200分别映射64个高速缓存地址。即,在某些实施例中,当所有的三个存储体40活动时,用于模式的系统存储器映射可将高速缓存地址128~191映射到最快的存储体40并分别将高速缓存地址0~63和64~127映射到较慢的存储体40。当在具有相同大小的三个存储体40中只有两个活动时,用于模式的系统存储器映射可分别将高速缓存地址0~63和64~127映射到较慢的存储体40,以及当在三个存储体40中只有一个活动时,用于模式的系统存储器映射可将高速缓存地址0~63映射到存储体40中的最慢的一个。
与图19A~C的单个映射(图19A)应用于4存储体配置中的所有高速缓存地址的配置不同,当所有的三个存储体40活动时,根据某些高速缓存线地址200位的状态应用不同的映射。特别地,当所有的三个存储体40活动时,可在高速缓存线地址200位A7=1并且A1=1时应用根据图21A的映射;可在高速缓存线地址200位A7=1并且A1=1时应用根据图21B的映射;并且可在高速缓存线地址200位A7=0并且A1=0时应用根据图2CA的映射。
乍看起来,违反了在模式变化中仅改变两个高速缓存线地址200位的映射的规则。如图21B和图21D所示,当在A7=0且A1=1时在3存储体配置与2存储体配置之间切换时,A7、A6、A2和A1的映射均已改变。但是,由于A7和A1的值是已知的(例如,A7=0且A1=1),因此分别如图22A和图22B所示的那样替代固定值。从图22A和图22B可以看出,只有A6和A0在3存储体配置与2存储体配置之间改变了映射。
A21A~E的映射导致高速缓存线地址与系统地址之间的以下转换,其中,表示法([#],[#],[#])[#]与([RAS],[CAS],[DEV])[系统地址]对应:
表2
在表2中,与以上的表1同样,不管模式如何,都在行变化之间存在八个访问。
为了在存储器要在三分之一增量处被断电时实施飞速存储器重新映射,电子设备10可遵循诸如图23的流程图230公开的处理。流程图230可在电子设备10在满存储器使用模式中操作时开始(例如,如果存在具有相同大小的3个存储体40,那么所有3个存储体40可以是活动的)。因此,当流程图230开始时,根据高速缓存线地址200位A7和A1的状态,存储器控制器36可根据图21A~C所示的方案映射存储体40。如以上更详细地讨论的那样,电子设备10可准备使用任何适当的技术将可用于电子设备10的存储器14的三分之一断电(框232)。由于较快存储体40一般会消耗更多的电力,因此电子设备10一般会首先选择将最快的存储体40断电。
在将存储体40断电之前,存储器控制器36可根据仅变化高速缓存线地址200中的两个位的方案(例如,如21D所示并且如上所述),重新映射高速缓存线地址200(框234)。然后,在将选择的存储体40断电之前,以上述的方式,存储器控制器36可将某些数据从将被断电的存储体40复制到将保持活动的存储体40(框236)。
在适当的情况下,电子设备10可使用诸如以上讨论的任何适当的技术确定将剩余的存储器14的一半断电,使得只保持总存储器14的三分之一(框218)。由于较快存储体40一般会消耗更多的电力,因此电子设备10一般会选择将较快的剩余存储体40断电。作为例子,如果电子设备10总共具有相同大小的三个存储体40,那么只有最慢的存储体40可被选择为保持活动。存储器控制器36可根据仅改变高速缓存线地址200的两个位的方案(例如,如图21E所示),下一个重新映射高速缓存线地址200(框220)。然后,在将选择的存储体40断电之前,以上述的方式,存储器控制器36可将某些数据从将被断电的存储体40复制到将保持活动的存储体40(框222)。
应当理解,作为例子表示了以上描述的特定实施例,并且,这些实施例可具有各种变更和替代形式。例如,这里作为例子描述的技术可类似地被应用于各种其它数量的存储器。即,以上描述的技术也可被应用以执行飞速存储器映射和从四个或更多个存储体40到三个或更少存储体的重新映射。并且,应当理解,除了单独可控的存储体40以外,可以使用可单独地去活的任何大小的任何存储器(其中,存储器的多个部分可被去活而其它部分保持活动)。另外,例如,当在存储器映射模式之间转变时,以从电子设备10的操作系统(OS)或软件隐藏的方式由存储器控制器36完成复制,或者,假定各复制是原子的(例如,可在从第一存储器映射上的第一DIMM地址读取之后立即写入到第一和第二存储器映射的DIMM地址),可以以由OS或软件控制的方式完成复制。还应理解,权利要求不是要限于公开的特定形式,而应覆盖落入本公开的精神和范围内的所有的变更、等同和替代。
Claims (14)
1.一种电子设备,包括:
能够在硬件存储单元中存储数据的多个存储体,其中所述多个存储体中的至少一个存储体能够在所述多个存储体中的至少另一个存储体保持活动的同时被去活;
能够通过对于物理存储地址的存储请求来请求数据的一个或多个处理器;和
以可通信的方式被插入在所述多个存储体与所述一个或多个处理器之间的存储器控制器,其中所述存储器控制器能够从所述一个或多个处理器接收对于物理存储地址的存储请求、当第一数量的多个存储体活动时使用第一存储器映射等式将物理存储地址转换成硬件存储单元、当第二数量的多个存储体活动时使用第二存储器映射等式将物理存储地址转换成硬件存储单元、并且当所述多个存储体中的一个存储体要被去活时,将数据从所述多个存储体中要被去活的一个存储体复制到所述多个存储体中活动的剩余存储体中,但不在所述多个存储体的活动的剩余存储体中的任意两个存储体之间复制数据;
其中,所述第一存储器映射等式包含以下的关系:
BankIndex=Floor(PAddr/TotalBanks)和
DIMMAddr=MOD(PAddr*BankSize,TotalMemory)+BankIndex,其中PA ddr代表物理存储地址,DIMMAddr代表当所述多个存储体中的三个存储体活动时映射物理存储地址的硬件存储单元,BankSize代表所述多个存储体中每一个的物理存储地址的量,TotalBanks代表所述多个存储体中活动存储体的总数,以及TotalMemory代表所述多个存储体的活动存储体之中的硬件存储单元的总数;
其中,所述第二存储器映射等式包含以下的关系:
其中,
其中,ALT_DIMMAddr3_2代表当两个存储体活动时映射物理地址的存储单元,ReducedMemory3_2代表跨着活动的两个存储体可用的硬件存储单元的量,以及ReducedBanks3_2代表活动的两个存储体的数量。
2.根据权利要求1所述的电子设备,其中,所述第一数量的多个存储体包含多个三个存储体,并且所述第一存储器映射等式被配置为将物理地址映射到硬件存储单元,使得与邻接逻辑存储地址相关的两个物理地址不被映射到所述多个存储体中的单一的一个存储体。
3.根据权利要求1所述的电子设备,其中,所述第二数量的多个存储体包含比所述第一数量的多个存储体少的存储体,并且所述第二存储器映射等式被配置为将物理地址映射到硬件存储单元,使得所述多个存储体中每一个活动的剩余存储体的至少一个硬件存储单元映射到在第一存储器映射等式下会被映射到所述多个存储体中要被去活的一个存储体的硬件存储单元的至少一个物理地址。
4.根据权利要求1所述的电子设备,其中,所述第二数量的多个存储体包含比所述第一数量的多个存储体少的存储体,并且所述第二存储器映射等式被配置为将物理地址映射到硬件存储单元,使得所述多个存储体中的一个活动的剩余存储体的硬件存储单元不映射到在第一存储器映射等式下会被映射到所述多个存储体中不同的一个活动的剩余存储体的硬件存储单元的物理地址。
5.根据权利要求1所述的电子设备,其中,所述存储器控制器被配置为将数据从所述多个存储体中要被去活的一个存储体的硬件存储单元复制到所述多个存储体中活动的剩余存储体的硬件存储单元并复制回从中复制数据的所述多个存储体中要被去活的一个存储体的硬件存储单元。
6.根据权利要求1所述的电子设备,其中,所述存储器控制器被配置为在所述多个存储体中要被去活的一个存储体与所述多个存储体中活动的剩余存储体之间交换数据,并通过使所述多个存储体中要被去活的一个存储体进入自刷新模式来去活所述多个存储体中要被去活的一个存储体。
7.根据权利要求1所述的电子设备,其中,活动的第二数量的多个存储体包含比活动的第一数量的多个存储体少一个的存储体。
8.一种电子设备,包括:
具有硬件存储单元的多个存储体,其中所述多个存储体中的至少一个存储体被配置为被选择性地去活;
能够通过物理存储地址发出存储请求的一个或多个处理器;和
被配置为在三个存储体活动时使用第一存储器映射等式并在两个存储体活动时使用第二存储器映射等式,将物理存储地址动态映射到硬件存储单元的存储器控制器,
其中,所述第一存储器映射等式包含以下的关系:
BankIndex=Floor(PAddr/TotalBanks)和
DIMMAddr=MOD(PAddr*BankSize,TotalMemory)+BankIndex,其中PAddr代表物理存储地址,DIMMAddr代表当所述多个存储体中的三个存储体活动时映射物理存储地址的硬件存储单元,BankSize代表所述多个存储体中每一个的物理存储地址的量,TotalBanks代表所述多个存储体 中活动存储体的总数,以及TotalMemory代表所述多个存储体的活动存储体之中的硬件存储单元的总数;
其中,所述第二存储器映射等式包含以下的关系:
其中,
其中,ALT_DIMMAddr3_2代表当两个存储体活动时映射物理地址的存储单元,ReducedMemory3_2代表跨着活动的两个存储体可用的硬件存储单元的量,以及ReducedBanks3_2代表活动的两个存储体的数量。
9.根据权利要求8所述的电子设备,其中,所述存储器控制器被配置为在一个存储体活动时使用第三存储器映射等式将物理存储地址动态映射到硬件存储单元,其中所述第三存储器映射等式包含以下的关系:
其中,
其中,ALT_DIMMAddr2_1代表在一个存储体活动时映射物理地址的硬件存储单元,ReducedMemory2_1代表跨着所述一个活动的存储体可用的硬件存储单元的量,以及ReducedBanks2_1代表所述一个活动的存储体的数量。
10.一种存储器管理方法,包括:
至少部分地基于电子设备的存储器操作准则确定去活电子设备的活动存储器的一部分;
选择活动存储器要被去活的部分;
使用存储器控制器至少部分地基于使用存储器控制器的多个存储器映射等式,将数据从活动存储器的被选择为要被去活的部分上的硬件存储单元复制到活动存储器的其它部分上的硬件存储单元;和
使用存储器控制器去活活动存储器的被选择为要被去活的部分;
其中,至少在活动存储器的被选择为要被去活的部分被去活之前,活动存储器的被选择为要被去活的部分上的硬件存储单元保持可访问;
其中,在三个存储体活动时使用所述多个存储器映射等式中的第一存储器映射等式,以及在两个存储体活动时使用所述多个存储器映射等式中的第二存储器映射等式,
其中,所述第一存储器映射等式包含以下的关系:
BankIndex=Floor(PAddr/TotalBanks)和
DIMMAddr=MOD(PAddr*BankSize,TotalMemory)+BankIndex,其中PAddr代表物理存储地址,DIMMAddr代表当所述多个存储体中的三个存储体活动时映射物理存储地址的硬件存储单元,BankSize代表所述多个存储体中每一个的物理存储地址的量,TotalBanks代表所述多个存储体中活动存储体的总数,以及TotalMemory代表所述多个存储体的活动存储体之中的硬件存储单元的总数;
其中,所述第二存储器映射等式包含以下的关系:
其中,
其中,ALT_DIMMAddr3_2代表当两个存储体活动时映射物理地址的存储单元,ReducedMemory3_2代表跨着活动的两个存储体可用的硬件存储单元的量,以及ReducedBanks3_2代表活动的两个存储体的数量。
11.根据权利要求10所述的方法,其中,基于一个或多个处理器最后请求与活动存储器的要被去活的部分相关的物理地址的时间,由存储器控制器确定活动存储器的要被去活的部分。
12.根据权利要求10所述的方法,其中,基于从一个或多个处理器到存储器控制器的存储器部分关断命令,选择活动存储器的要被去活的部分。
13.根据权利要求10所述的方法,其中,至少部分地基于带宽和功率消耗因素的平衡,选择活动存储器的要被去活的部分。
14.根据权利要求10所述的方法,其中,至少部分地基于来自操作系统或软件的指令,由存储器控制器复制数据以执行一个或多个原子复制。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32375310P | 2010-04-13 | 2010-04-13 | |
US61/323,753 | 2010-04-13 | ||
US12/895,689 US8799553B2 (en) | 2010-04-13 | 2010-09-30 | Memory controller mapping on-the-fly |
US12/895,689 | 2010-09-30 | ||
PCT/US2011/031885 WO2011130141A1 (en) | 2010-04-13 | 2011-04-11 | Memory controller mapping on-the-fly |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102893266A CN102893266A (zh) | 2013-01-23 |
CN102893266B true CN102893266B (zh) | 2015-06-03 |
Family
ID=44761746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180023741.6A Active CN102893266B (zh) | 2010-04-13 | 2011-04-11 | 存储器控制器飞速映射 |
Country Status (6)
Country | Link |
---|---|
US (3) | US8799553B2 (zh) |
EP (1) | EP2558939B1 (zh) |
KR (1) | KR101459866B1 (zh) |
CN (1) | CN102893266B (zh) |
AU (1) | AU2011240803B2 (zh) |
WO (1) | WO2011130141A1 (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8339626B2 (en) * | 2009-09-08 | 2012-12-25 | Samsung Electronics Co., Ltd. | Image forming apparatus and controlling method thereof |
US8412972B2 (en) * | 2010-06-28 | 2013-04-02 | Intel Corporation | Method and apparatus for reducing power consumption for memories |
US8725978B2 (en) * | 2011-06-30 | 2014-05-13 | Red Hat, Inc. | Using symbol information for categorization of dynamic memory allocations |
US8719539B2 (en) * | 2011-06-30 | 2014-05-06 | Red Hat, Inc. | Using heuristics for field types of a structure to categorize dynamic memory allocations |
US8694753B2 (en) * | 2011-06-30 | 2014-04-08 | Red Hat, Inc. | Debugging a dynamic memory allocation using heuristics reliability scores |
WO2013046548A1 (ja) * | 2011-09-28 | 2013-04-04 | パナソニック株式会社 | メモリ制御システム及び電力制御方法 |
US20180144436A1 (en) * | 2014-06-24 | 2018-05-24 | Intel Corporation | Reducing power for 3d workloads |
US20120095607A1 (en) * | 2011-12-22 | 2012-04-19 | Wells Ryan D | Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems |
JP2013164785A (ja) * | 2012-02-13 | 2013-08-22 | Nikon Corp | 電子機器および電子機器の制御プログラム |
JP2013222321A (ja) * | 2012-04-17 | 2013-10-28 | Sony Corp | メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラム |
JP5624583B2 (ja) * | 2012-05-31 | 2014-11-12 | 株式会社東芝 | プログラム、計算処理装置、メモリ管理方法および計算機 |
US9256531B2 (en) | 2012-06-19 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear addresss remapping logic |
US9697111B2 (en) * | 2012-08-02 | 2017-07-04 | Samsung Electronics Co., Ltd. | Method of managing dynamic memory reallocation and device performing the method |
US9146846B2 (en) * | 2012-09-14 | 2015-09-29 | Advanced Micro Devices, Inc. | Programmable physical address mapping for memory |
US20140122807A1 (en) * | 2012-10-31 | 2014-05-01 | Hewlett-Packard Development Company, Lp. | Memory address translations |
US20140136793A1 (en) * | 2012-11-13 | 2014-05-15 | Nvidia Corporation | System and method for reduced cache mode |
US9218285B2 (en) * | 2012-11-26 | 2015-12-22 | Arm Limited | Variable mapping of memory accesses to regions within a memory |
US9348762B2 (en) | 2012-12-19 | 2016-05-24 | Nvidia Corporation | Technique for accessing content-addressable memory |
US9720858B2 (en) | 2012-12-19 | 2017-08-01 | Nvidia Corporation | Technique for performing memory access operations via texture hardware |
US9697006B2 (en) | 2012-12-19 | 2017-07-04 | Nvidia Corporation | Technique for performing memory access operations via texture hardware |
US9760149B2 (en) * | 2013-01-08 | 2017-09-12 | Qualcomm Incorporated | Enhanced dynamic memory management with intelligent current/power consumption minimization |
US9342443B2 (en) * | 2013-03-15 | 2016-05-17 | Micron Technology, Inc. | Systems and methods for memory system management based on thermal information of a memory system |
KR102044478B1 (ko) * | 2013-04-22 | 2019-11-13 | 삼성전자주식회사 | 드라이버 및 이를 포함하는 메모리 컨트롤러 |
US9043569B2 (en) | 2013-05-31 | 2015-05-26 | International Business Machines Corporation | Memory data management |
US9472248B2 (en) * | 2014-03-28 | 2016-10-18 | Intel Corporation | Method and apparatus for implementing a heterogeneous memory subsystem |
US9722335B2 (en) * | 2014-05-05 | 2017-08-01 | Qualcomm Incorporated | Dual in line memory module (DIMM) connector |
US9367442B2 (en) * | 2014-07-12 | 2016-06-14 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Allocating memory usage based on voltage regulator efficiency |
US20160070503A1 (en) * | 2014-09-10 | 2016-03-10 | Kabushiki Kaisha Toshiba | Memory system |
KR102347657B1 (ko) * | 2014-12-02 | 2022-01-06 | 삼성전자 주식회사 | 전자 장치 및 이의 공유 캐시 메모리 제어 방법 |
US9678872B2 (en) | 2015-01-16 | 2017-06-13 | Oracle International Corporation | Memory paging for processors using physical addresses |
US10019358B2 (en) * | 2015-03-20 | 2018-07-10 | Vixs Systems Inc. | Bank address remapping to load balance memory traffic among banks of memory |
US20160349817A1 (en) * | 2015-05-29 | 2016-12-01 | Intel Corporation | Power protected memory with centralized storage |
KR102420897B1 (ko) * | 2016-03-17 | 2022-07-18 | 에스케이하이닉스 주식회사 | 메모리 모듈, 이를 포함하는 메모리 시스템 및 그의 동작 방법 |
US10310975B2 (en) * | 2016-05-11 | 2019-06-04 | Seagate Technology Llc | Cache offload based on predictive power parameter |
US10198216B2 (en) * | 2016-05-28 | 2019-02-05 | Advanced Micro Devices, Inc. | Low power memory throttling |
EP3252651A1 (en) | 2016-05-30 | 2017-12-06 | Samsung Electronics Co., Ltd | Computing system having an on-the-fly encryptor and an operating method thereof |
US10521876B2 (en) * | 2017-04-17 | 2019-12-31 | Intel Corporation | Deferred geometry rasterization technology |
CN109086219B (zh) * | 2017-06-14 | 2022-08-05 | 北京忆恒创源科技股份有限公司 | 去分配命令处理方法及其存储设备 |
US20190073020A1 (en) * | 2017-09-01 | 2019-03-07 | Intel Corporation | Dynamic memory offlining and voltage scaling |
CN107885669B (zh) * | 2017-11-09 | 2021-06-04 | 上海华力微电子有限公司 | 一种分布式存储区块访问电路 |
US11119915B2 (en) | 2018-02-08 | 2021-09-14 | Samsung Electronics Co., Ltd. | Dynamic memory mapping for neural networks |
KR102540964B1 (ko) | 2018-02-12 | 2023-06-07 | 삼성전자주식회사 | 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작 |
KR102586741B1 (ko) * | 2018-04-23 | 2023-10-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11256696B2 (en) | 2018-10-15 | 2022-02-22 | Ocient Holdings LLC | Data set compression within a database system |
US11307996B2 (en) * | 2018-11-30 | 2022-04-19 | Intel Corporation | Hardware unit for reverse translation in a processor |
US10936507B2 (en) * | 2019-03-28 | 2021-03-02 | Intel Corporation | System, apparatus and method for application specific address mapping |
US11487339B2 (en) * | 2019-08-29 | 2022-11-01 | Micron Technology, Inc. | Operating mode register |
US11755475B2 (en) * | 2020-01-31 | 2023-09-12 | Dell Products L.P. | System and method for utilizing enhanced thermal telemetry for differential storage of data on a memory module |
CN113360423A (zh) * | 2020-03-03 | 2021-09-07 | 瑞昱半导体股份有限公司 | 数据储存系统及操作数据储存系统的方法 |
US11675413B2 (en) * | 2020-09-30 | 2023-06-13 | Dell Products L.P. | Reducing power consumption of memory devices at an information handling system |
US11604744B2 (en) | 2020-10-16 | 2023-03-14 | Alibaba Group Holding Limited | Dual-modal memory interface controller |
WO2022109898A1 (en) * | 2020-11-26 | 2022-06-02 | Micron Technology, Inc. | Programming video data to different portions of memory |
US11868266B2 (en) * | 2021-03-11 | 2024-01-09 | Micron Technology, Inc. | Bank redistribution based on power consumption |
WO2022193120A1 (en) * | 2021-03-16 | 2022-09-22 | Micron Technology, Inc. | Logical-to-physical mapping compression techniques |
US11693585B2 (en) | 2021-04-26 | 2023-07-04 | Apple Inc. | Address hashing in a multiple memory controller system |
US11972140B2 (en) | 2021-04-26 | 2024-04-30 | Apple Inc. | Hashing with soft memory folding |
US11934313B2 (en) | 2021-08-23 | 2024-03-19 | Apple Inc. | Scalable system on a chip |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7100013B1 (en) * | 2002-08-30 | 2006-08-29 | Nvidia Corporation | Method and apparatus for partial memory power shutoff |
CN1926519A (zh) * | 2003-12-24 | 2007-03-07 | 英特尔公司 | 用于节能的统一存储器组织 |
US7318114B1 (en) * | 2004-10-29 | 2008-01-08 | Sun Microsystems, Inc. | System and method for dynamic memory interleaving and de-interleaving |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04230508A (ja) * | 1990-10-29 | 1992-08-19 | Internatl Business Mach Corp <Ibm> | 低電力消費メモリ装置 |
US5428758A (en) | 1991-05-10 | 1995-06-27 | Unisys Corporation | Method and system for remapping memory from one physical configuration to another physical configuration |
US5479624A (en) * | 1992-10-14 | 1995-12-26 | Lee Research, Inc. | High-performance interleaved memory system comprising a prime number of memory modules |
AU3313795A (en) * | 1994-10-14 | 1996-04-26 | Compaq Computer Corporation | Circuit for placing a cache memory into low power mode in response to special bus cycles |
US5956744A (en) | 1995-09-08 | 1999-09-21 | Texas Instruments Incorporated | Memory configuration cache with multilevel hierarchy least recently used cache entry replacement |
US6081463A (en) | 1998-02-25 | 2000-06-27 | Micron Technology, Inc. | Semiconductor memory remapping |
US6209074B1 (en) * | 1998-04-28 | 2001-03-27 | International Business Machines Corporation | Address re-mapping for memory module using presence detect data |
US6185654B1 (en) * | 1998-07-17 | 2001-02-06 | Compaq Computer Corporation | Phantom resource memory address mapping system |
US6546453B1 (en) | 2000-08-31 | 2003-04-08 | Compaq Information Technologies Group, L.P. | Proprammable DRAM address mapping mechanism |
US6535959B1 (en) * | 2000-09-05 | 2003-03-18 | Conexant Systems, Inc. | Circuit and method for reducing power consumption in an instruction cache |
US6742097B2 (en) | 2001-07-30 | 2004-05-25 | Rambus Inc. | Consolidation of allocated memory to reduce power consumption |
US6751143B2 (en) * | 2002-04-11 | 2004-06-15 | Micron Technology, Inc. | Method and system for low power refresh of dynamic random access memories |
US6920523B2 (en) | 2002-10-07 | 2005-07-19 | Infineon Technologies Ag | Bank address mapping according to bank retention time in dynamic random access memories |
US6912616B2 (en) | 2002-11-12 | 2005-06-28 | Hewlett-Packard Development Company, L.P. | Mapping addresses to memory banks based on at least one mathematical relationship |
US7010656B2 (en) * | 2003-01-28 | 2006-03-07 | Intel Corporation | Method and apparatus for memory management |
US20050125701A1 (en) * | 2003-12-03 | 2005-06-09 | International Business Machines Corporation | Method and system for energy management via energy-aware process scheduling |
US7752470B2 (en) * | 2003-12-03 | 2010-07-06 | International Business Machines Corporation | Method and system for power management including device controller-based device use evaluation and power-state control |
US7685354B1 (en) | 2004-06-30 | 2010-03-23 | Sun Microsystems, Inc. | Multiple-core processor with flexible mapping of processor cores to cache banks |
US8190809B2 (en) * | 2004-11-23 | 2012-05-29 | Efficient Memory Technology | Shunted interleave for accessing plural memory banks, particularly those having partially accessed cells containing data for cache lines |
US8010764B2 (en) * | 2005-07-07 | 2011-08-30 | International Business Machines Corporation | Method and system for decreasing power consumption in memory arrays having usage-driven power management |
TW200805047A (en) * | 2005-12-23 | 2008-01-16 | Koninkl Philips Electronics Nv | Performance analysis based system level power management |
KR100816690B1 (ko) * | 2006-04-13 | 2008-03-27 | 주식회사 하이닉스반도체 | 온도 감지장치를 구비하는 반도체메모리소자 |
US20080005516A1 (en) | 2006-06-30 | 2008-01-03 | Meinschein Robert J | Memory power management through high-speed intra-memory data transfer and dynamic memory address remapping |
JP4209906B2 (ja) * | 2006-08-02 | 2009-01-14 | 株式会社日立製作所 | 低消費電力メモリ管理方法及びその方法を用いた計算機 |
US7788513B2 (en) | 2006-08-29 | 2010-08-31 | Hewlett-Packard Development Company, L.P. | Method of reducing power consumption of a computing system by evacuating selective platform memory components thereof |
US9195602B2 (en) | 2007-03-30 | 2015-11-24 | Rambus Inc. | System including hierarchical memory modules having different types of integrated circuit memory devices |
US8046597B2 (en) * | 2007-08-14 | 2011-10-25 | Dell Products L.P. | System and method for managing storage device capacity use |
US20090083561A1 (en) | 2007-09-26 | 2009-03-26 | Nikos Kaburlasos | Dynamic power management of dimms |
US7979648B2 (en) | 2008-05-30 | 2011-07-12 | Oracle America, Inc. | Dynamic interleaving |
US8200999B2 (en) | 2008-08-11 | 2012-06-12 | International Business Machines Corporation | Selective power reduction of memory hardware |
US8639874B2 (en) | 2008-12-22 | 2014-01-28 | International Business Machines Corporation | Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device |
JP4832553B2 (ja) * | 2009-06-16 | 2011-12-07 | 株式会社日立製作所 | コピー開始タイミングを制御するシステム及び方法 |
US8392736B2 (en) | 2009-07-31 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Managing memory power usage |
US20110047316A1 (en) * | 2009-08-19 | 2011-02-24 | Dell Products L.P. | Solid state memory device power optimization |
US8285936B2 (en) * | 2009-10-20 | 2012-10-09 | The Regents Of The University Of Michigan | Cache memory with power saving state |
US8495299B2 (en) | 2009-11-16 | 2013-07-23 | Microsoft Corporation | Non-blocking data transfer via memory cache manipulation |
KR101639574B1 (ko) * | 2009-12-30 | 2016-07-14 | 삼성전자주식회사 | 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법 |
US8412972B2 (en) * | 2010-06-28 | 2013-04-02 | Intel Corporation | Method and apparatus for reducing power consumption for memories |
US8356155B2 (en) * | 2010-09-13 | 2013-01-15 | Advanced Micro Devices, Inc. | Dynamic RAM Phy interface with configurable power states |
US9235500B2 (en) * | 2010-12-07 | 2016-01-12 | Microsoft Technology Licensing, Llc | Dynamic memory allocation and relocation to create low power regions |
-
2010
- 2010-09-30 US US12/895,689 patent/US8799553B2/en not_active Expired - Fee Related
-
2011
- 2011-04-11 AU AU2011240803A patent/AU2011240803B2/en not_active Ceased
- 2011-04-11 EP EP11717074.6A patent/EP2558939B1/en active Active
- 2011-04-11 WO PCT/US2011/031885 patent/WO2011130141A1/en active Application Filing
- 2011-04-11 KR KR1020127029643A patent/KR101459866B1/ko active IP Right Grant
- 2011-04-11 CN CN201180023741.6A patent/CN102893266B/zh active Active
-
2014
- 2014-07-14 US US14/330,320 patent/US9201608B2/en active Active
- 2014-07-15 US US14/331,336 patent/US9009383B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7100013B1 (en) * | 2002-08-30 | 2006-08-29 | Nvidia Corporation | Method and apparatus for partial memory power shutoff |
CN1926519A (zh) * | 2003-12-24 | 2007-03-07 | 英特尔公司 | 用于节能的统一存储器组织 |
US7318114B1 (en) * | 2004-10-29 | 2008-01-08 | Sun Microsystems, Inc. | System and method for dynamic memory interleaving and de-interleaving |
Also Published As
Publication number | Publication date |
---|---|
US9009383B2 (en) | 2015-04-14 |
US8799553B2 (en) | 2014-08-05 |
US20140325173A1 (en) | 2014-10-30 |
US9201608B2 (en) | 2015-12-01 |
WO2011130141A1 (en) | 2011-10-20 |
EP2558939A1 (en) | 2013-02-20 |
KR20130010485A (ko) | 2013-01-28 |
US20110252180A1 (en) | 2011-10-13 |
AU2011240803B2 (en) | 2014-05-29 |
CN102893266A (zh) | 2013-01-23 |
EP2558939B1 (en) | 2020-01-01 |
KR101459866B1 (ko) | 2014-11-07 |
AU2011240803A1 (en) | 2012-11-22 |
US20140331020A1 (en) | 2014-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102893266B (zh) | 存储器控制器飞速映射 | |
US11636038B2 (en) | Method and apparatus for controlling cache line storage in cache memory | |
US10761780B2 (en) | Memory system | |
Dhiman et al. | PDRAM: A hybrid PRAM and DRAM main memory system | |
US9471131B2 (en) | Apparatus and machine for reducing power consumption of memory including a plurality of segment areas, method therefore and non-transitory computer readable medium | |
US20100312955A1 (en) | Memory system and method of managing the same | |
JP2007527592A (ja) | Dramの部分的リフレッシュのための方法及び装置 | |
CN104899154B (zh) | 基于嵌入式系统混合主存的页面管理方法 | |
CN105103235A (zh) | 具有用于更高性能和能量效率的去耦比特的非易失性多级单元存储器 | |
US10719247B2 (en) | Information processing device, information processing method, estimation device, estimation method, and computer program product | |
US20130132704A1 (en) | Memory controller and method for tuned address mapping | |
US8423707B2 (en) | Data access method for flash memory and storage system and controller using the same | |
US11263101B2 (en) | Decision model generation for allocating memory control methods | |
Kandemir et al. | Banked scratch-pad memory management for reducing leakage energy consumption | |
CN114741329B (zh) | 一种多粒度组合的存储器数据交织方法和交织模块 | |
JP6873942B2 (ja) | 推定装置、推定方法およびプログラム | |
CN107526528B (zh) | 一种片上低延迟存储器的实现机制 | |
US20190095122A1 (en) | Memory management system, computing system, and methods thereof | |
Knyaginin | Towards Large-Capacity and Cost-Effective Main Memories | |
JP7118827B2 (ja) | 情報処理装置、メモリ制御方法およびプログラム | |
Oikawa | Exposing non-volatile memory cache for adaptive storage access | |
Ghosh et al. | DRAM Decay: Using Decay Counters to Reduce Energy Consumption in DRAMs | |
Wehmeyer et al. | Main Memory Optimizations | |
JP2012221534A (ja) | 半導体記憶装置および半導体記憶装置のリフレッシュ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |