CN104115132A - 借助于存储器通道关闭的功率节约 - Google Patents
借助于存储器通道关闭的功率节约 Download PDFInfo
- Publication number
- CN104115132A CN104115132A CN201180076411.3A CN201180076411A CN104115132A CN 104115132 A CN104115132 A CN 104115132A CN 201180076411 A CN201180076411 A CN 201180076411A CN 104115132 A CN104115132 A CN 104115132A
- Authority
- CN
- China
- Prior art keywords
- cache lines
- storage channel
- dram
- memory
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 147
- 238000000034 method Methods 0.000 claims abstract description 49
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000003860 storage Methods 0.000 claims description 238
- 238000013519 translation Methods 0.000 claims description 18
- 230000014616 translation Effects 0.000 claims description 18
- 230000005012 migration Effects 0.000 claims description 14
- 238000013508 migration Methods 0.000 claims description 14
- 230000005055 memory storage Effects 0.000 claims description 10
- 230000000694 effects Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 102100020800 DNA damage-regulated autophagy modulator protein 1 Human genes 0.000 claims 25
- 101000931929 Homo sapiens DNA damage-regulated autophagy modulator protein 1 Proteins 0.000 claims 25
- 229920000682 polycarbomethylsilane Polymers 0.000 claims 15
- 238000005516 engineering process Methods 0.000 description 13
- 230000005291 magnetic effect Effects 0.000 description 10
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000037361 pathway Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 3
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 3
- JWZQBEUBJXSDPP-UHFFFAOYSA-N 5-cyclohexyl-6-methylpyrimidine-2,4-diamine Chemical compound CC1=NC(N)=NC(N)=C1C1CCCCC1 JWZQBEUBJXSDPP-UHFFFAOYSA-N 0.000 description 2
- 101100072002 Arabidopsis thaliana ICME gene Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 239000005387 chalcogenide glass Substances 0.000 description 2
- 238000002425 crystallisation Methods 0.000 description 2
- 230000008025 crystallization Effects 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- UCKMPCXJQFINFW-UHFFFAOYSA-N Sulphide Chemical compound [S-2] UCKMPCXJQFINFW-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000010261 cell growth Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000005485 electric heating Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- CGIGDMFJXJATDK-UHFFFAOYSA-N indomethacin Chemical compound CC1=C(CC(O)=O)C2=CC(OC)=CC=C2N1C(=O)C1=CC=C(Cl)C=C1 CGIGDMFJXJATDK-UHFFFAOYSA-N 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 150000004767 nitrides Chemical class 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920003227 poly(N-vinyl carbazole) Polymers 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/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
- 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
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/061—Improving I/O performance
-
- 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/0647—Migration 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2024—Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
Abstract
本文描述了一种方法,方法包括决定进入更低功率状态,并且在响应中关闭计算机***中的一个存储器通道,在所述响应之后计算机***中的其它存储器通道保持活动使得在该存储器通道关闭时计算机保持运转。
Description
技术领域
本发明一般涉及计算机***领域。更具体地说,本发明涉及用于实现多级存储器层次结构的设备和方法。
背景技术
A. 当前存储器和存储配置
如今,计算机创新的限制因素之一是存储器和存储技术。在常规计算机***中,***存储器(也称为主存储器、主要存储器、可执行存储器)一般通过动态随机存取存储器(DRAM)实现。基于DRAM的存储器即使在无存储器读取或写发生时也耗能,这是因为它必须不断为内部电容器再充电。基于DRAM的存储器是易失性的,这意味着一旦功率去除,在DRAM存储器中存储的数据便丢失。常规计算机***也依赖多个级别的缓存以改进性能。缓存是高速存储器,定位在处理器与***存储器之间以便以比从***存储器能够服务于存储器访问请求更快地服务于存储器访问请求。此类缓存一般通过静态随机存取存储器(SRAM)实现。缓存管理协议可用于确保最经常访问的数据和指令存储在缓存的级别之一内,由此降低存储器访问事务的数量和改进性能。
关于大容量存储装置(也称为次要存储装置或盘存储装置),常规大容量存储装置一般包括磁性媒体(例如,硬盘驱动器)、光学媒体(例如,压缩盘(CD)驱动器、数字多功能盘(DVD)等)、全息媒体和/或大容量存储装置闪存(例如,固态驱动器(SSD)、可移动闪存驱动器等)。通常,由于由处理器通过实现各种I/O协议的各种I/O适配器访问这些存储装置,因此,将它们视为输入/输出(I/O)装置。这些I/O适配器和I/O协议消耗大量的功率,并且能够对管芯区域和平台的形状因子具有相当大的影响。在未连接到永久性电源时具有有限电池寿命的便携式或移动装置(例如,膝上型计算机、上网本、平板计算机、个人数字助理(PDA)、便携式媒体播放器、便携式游戏装置、数码相机、移动电话、智能电话、功能电话等)可包括一般经低功率互连和I/O控制器耦合到处理器以便满足活动和闲置功率预算的可移动大容量存储装置(例如,嵌入式多媒体卡(eMMC)、安全数字(SD)卡)。
关于固件存储器(如引导存储器(也称为BIOS闪存)),常规计算机***一般使用闪存装置存储经常读取但很少(或从不)写的持久性***信息。例如,处理器在引导过程(基本输入输出***(BIOS)镜像)期间为初始化关键***组件执行的初始指令一般存储在闪存装置中。市场上当前可用的闪存装置通常具有有限的速度(例如,50 MHz)。此速度由用于读取协议的开销(例如,2.5 MHz)而进一步降低。为加快BIOS执行速度,常规处理器通常在引导过程的预可扩展固件接口(PEI)阶段期间缓存一部分BIOS代码。处理器缓存的大小限制了PEI阶段中使用的BIOS代码(也称为“PEI BIOS代码”)的大小。
B. 相变存储器(PCM)和有关技术
有时也称为相变随机存取存储器(PRAM或PCRAM)、PCME、Ovonic统一存储器或硫化物RAM (C-RAM)的相变存储器(PCM)是利用硫化物玻璃的独特行为的一种类型的非易失性计算机存储器。由于电热通过产生的热,硫化物玻璃能够在两种状态之间转换:结晶和非结晶。最近版本的PCM能够实现两种另外的不同状态。
PCM提供比闪存更高的性能,这是因为PCM的存储器元素能够更快地交换,写(将单独的比特更改成1或0)能够进行而无需先擦除单元的整个区块,以及由写产生的退化更慢(PCM装置可存活大约1亿次写循环;PCM退化是由于在编程期间的热膨胀、金属(和其它材料)迁移及其它机制)。
附图说明
下面的描述和附图用于示出本发明的实施例。在图中:
图1示出根据本发明的实施例的缓存和***存储器布置;
图2示出在本发明的实施例中采用的存储器和存储层次结构;
图3示出具有***存储器的DRAM部分和***存储器的PCMS部分的存储器计算***;
图4示出用于关闭存储器通道的方法;
图5示出用于重新激活存储器通道的方法;
图6示出由功率管理***使用的存储器功率状态表;
图7示出用于实现存储器通道的关闭/重新激活的组件。
具体实施方式
在下面的描述中,陈述了许多特定的细节以便提供本发明更详尽的理解,如逻辑实现、操作码、指定操作数的方法、资源划分/共享/复制实现、***组件的类型和相互关系及逻辑划分/集成选择。然而,本领域的技术人员将理解,可无需此类特定细节而实践本发明。其它情况下,控制结构、门级电路和全软件指令序列未详细示出以免混淆本发明。通过包括的描述,本领域技术人员将能够在没有不当实验的情况下实现适当的功能性。
说明书中对“一个实施例”、“一实施例”、“示例实施例”等的引用指所述实施例可包括特定特性、结构或特征,但每个实施例可能不一定包括特定特性、结构或特征。另外,此类词语不一定指同一实施例。此外,在结合实某个实施例描述某个特定特征、结构或特性时,认为结合无论是否明确描述的其它实施例来实现此类特征、结构或特性是在本领域技术人员的认知之内。
在下面的说明和权利要求中,可使用术语“耦合”和“连接”及其衍生词。应理解,这些术语无意作为彼此的同义词。“耦合”用于指示可相互直接物理或电接触或不直接物理或电接触的两个或更多个元素相互协作或交互。“连接”用于指示在相互耦合的两个或更多个元素之间通信的建立。
括号内的文本和带虚线边的框(例如,大虚线、小虚线、点虚线、点)有时在本文中用于示出添加另外的特征到本发明的实施例的可选操作/组件。然而,此类符号不应视为表示这些符号是仅有的选择或可选操作/组件,和/或具有实线边的框在本发明的某些实施例中不是可选的。
介绍
存储器容量和性能要求随着处理器核的增大数量和诸如虚拟化的新使用模型而继续增大。另外,存储器功率和成本已分别变成电子***的总体功率和成本的相当大成分。
本发明的一些实施例通过在存储器技术之间智能地细分性能要求和容量要求来解决上述挑战。此方法的焦点是在使用更便宜和密集得多的非易失性随机存取存储器(NVRAM)实现大块的***存储器的同时,通过相对小量的相对更高速度存储器(诸如DRAM)提供性能。下述本发明的实施例定义了为NVRAM的使用实现分层存储器子***组织的平台配置。如下详细所述,存储器层级中NVRAM的使用也实现新使用,如扩展引导空间和大容量存储装置实现。
图1示出根据本发明的实施例的缓存和***存储器布置。具体而言,图1示出包括内部处理器缓存120的集合、充当可包括内部缓存106和外部缓存107-109的远存储器缓存121的“近存储器”以及“远存储器”122的存储器层级。本发明的一些实施例中可用于“远存储器”的一个特定类型的存储器是非易失性随机存取存储器(“NVRAM”)。因此,下面提供了NVRAM的概述,之后是远存储器和近存储器的概述。
A. 非易失性随机存取存储器(“NVRAM”)
存在用于NVRAM的许多可能技术选择,包括PCM、相变存储器和开关(PCMS)(后者是前者的更具体实现)、字节可寻址的持久性存储器(BPRAM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻存储器(RRAM)、RESET(非结晶)单元、SET(结晶)单元、PCME、Ovshinsky存储器、铁电体存储器(也称为聚合物存储器和聚(N-乙烯咔唑))、铁磁存储器(也称为自旋电子、SPRAM(自旋转移矩RAM)、STRAM(自旋隧穿RAM)、磁电阻存储器、磁性存储器、磁性随机存取存储器(MRAM))及半导体氧化物氮化物氧化物半导体(SONOS,也称为介电存储器)。
对于在本申请中所述存储器层级中的使用,NVRAM具有以下特性:
(1)即使功率去除,它也保持其内容,类似于在固态盘(SSD)中使用的FLASH存储器,并且不同于易失性的SRAM和DRAM;
(2)在闲置时比诸如SRAM和DRAM的易失性存储器更低的功耗;
(3)类似于SRAM和DRAM(也称为随机可寻址)的随机访问;
(4)在比SSD中发现的FLASH更低的粒度级别(例如,字节级别)可重写和可擦除(一次只能够重写和擦除一个“区块” - 大小最小对于NOR FLASH为64 KB,并且对于NAND FLASH为16 KB);
(5)可用作***存储器并且被分配全部或一部分***存储器地址空间;
(6)能够使用事务协议(支持事务标识符(ID)以区分不同事务,以便那些事务能够无序完成的协议)通过总线耦合到处理器,并且允许在足够小的粒度级别的访问以支持NVRAM作为***存储器的操作(例如,诸如64或128字节的缓存线大小)。例如,总线可以是存储器总线(例如,诸如DDR3、DDR4的DDR总线),通过其运行与通常使用的非事务协议相反的事务协议。又如,总线可以是通常通过其运行事务协议(本机事务协议)的总线,如PCI express (PCIE)总线、台式管理接口(DMI)总线或利用事务协议和足够小事务有效负载大小(例如,诸如64或128字节的缓存线大小)的任何其它类型的总线;以及
(7)以下的一项或更多项:
a)比诸如FLASH的非易失性存储器/存储技术更快的写速度;
b)极高读取速度(比FLASH更快并且接近或等于DRAM读取速度);
c)直接可写(而不是在写数据前要求擦除(用1重写),象SSD中使用的FLASH存储器一样);和/或
d)故障前量级(例如,2或3)更高的写耐久性(不止是SSD中使用的引导ROM和FLASH)。
如上所提及的,与必须一次重写和擦除一个完整“区块”的FLASH存储器不同,在任何给定实现中访问NVRAM的粒度级别可取决于特定存储器控制器和特定存储器总线或NVRAM耦合到的其它类型的总线。例如,在NVRAM用作***存储器的一些实现中,尽管固有的能力是在字节的粒度访问,但可在缓存线的粒度访问NVRAM(例如,64字节或128字节缓存线),这是因为缓存线是在存储器子***访问存储器的级别。因此,在存储器子***内部署NVRAM时,可在与相同存储器子***中使用的DRAM(例如,“近存储器”)相同的粒度级别访问它。即使如此,存储器控制器和存储器总线或其它类型的总线对NVRAM的访问的粒度级别小于闪存使用的区块大小和I/O子***的控制器和总线的访问大小的粒度级别。
NVRAM也可包含耗损平衡算法以说明在远存储器级别的存储区块在多次写访问后开始耗损的事实,特别是在可发生相当大次数的写的情况下,如在***存储器实现中。由于高循环计数区块最可能以此方式耗损,因此,通过将高循环计数区块的地址与低循环计数区块交换,耗损均衡跨远存储器单元扩展写。注意,大多数地址交换一般对应用是透明的,这是因为它通过硬件、更低级别软件(例如,低级别驱动器或操作***)或两者的组合处理。
B. 远存储器
本发明的一些实施例的远存储器122通过NVRAM实现,但不一定限于任何特定存储器技术。远存储器122在其特性和/或其在存储器/存储装置层级中的应用方面与其它指令和数据存储器/存储技术是可区分的。例如,远存储器122不同于:
静态随机存取存储器(SRAM),可用于0级和1级内部处理器缓存101a-b、102a-b、103a-b、103a-b和104a-b和由处理器核共享的更低级别缓存(LLC) 105,内部处理器缓存分别专用于每个处理器核101-104。
动态随机存取存储器(DRAM),配置为处理器100内部的缓存106(例如,与处理器100在相同管芯上)和/或配置为处理器外部的一个或更多个缓存107-109(例如,与处理器100在相同或不同封装中);以及
应用为大容量存储装置(未示出)的FLASH存储器/磁盘/光盘;以及
诸如FLSH存储器或应用为固件存储器的其它只读存储器(ROM)的存储器(能够指引导ROM、BIOS闪存和/或TPM闪存)(未示出)。
远存储器122可用作由处理器100可直接寻址并且能够与处理器充分保持一致的指令和数据存储装置,与应用为大容量存储装置的FLASH/磁盘/光盘形成对比。另外,如上所述和如下面详细描述的一样,远存储器122可位于存储器总线上,并且可与存储器控制器直接进行通信,而存储器控制器又直接与处理器100进行通信。
远存储器122可与其它指令和数据存储技术(例如,DRAM)组合以形成混合存储器(也称为共处的PCM和DRAM;第一级别存储器和第二级别存储器;FLAM(FLASH和DRAM))。注意,作为***存储器的替代或附加,包括PCM/PCMS的至少一些上述技术可用于大容量存储装置,并且以此方式应用时无需由处理器随机可访问、字节可寻址或直接可访问。
为便于解释,术语NVRAM、PCM、PCMS和远存储器可在下面的讨论中互换使用。然而,应认识到的是,如上所述,不同技术也可用于远存储器。此外,该NVRAM也不限于用作远存储器。
示范***存储器分配方案
图1示出在本发明的实施例中,如何相对于***物理地址(SPA)空间116-119配置各种级别的缓存101-109。如所提及的,此实施例包括具有一个或更多个核101-104的处理器100,每个核具有其自己的专用上级缓存(L0) 101a-104a和中级缓存(MLC) (L1)缓存101b-104b。处理器100也包括共享LLC 105。这些各种缓存级别的操作已为人所熟知并且在本文中将不详细描述。
在图1中示出的缓存107-109可专用于特定***存储器地址范围或非连续地址范围的集合。例如,缓存107专用于充当用于***存储器地址范围# 1 116的存储器侧缓存(MSC),并且缓存108和109专用于充当用于***存储器地址范围# 2 117和# 3 118的非重叠部分的MSC。后面的实现可用于其中处理器100使用的SPA空间交错到缓存107-109(例如,在配置为MSC时)使用的地址空间的***。在一些实施例中,此后面的地址空间称为存储器通道地址(MCA)空间。在一个实施例中,内部缓存101a-106为整个SPA空间执行缓存操作。
在本文中使用时,***存储器是处理器100上执行的软件可见和/或可直接寻址的存储器;而高速缓冲存储器101a-109可在以下意义中对软件透明操作:表现在它们不形成***地址空间的直接可寻址部分,而核也可支持指令的执行以允许软件提供某种控制(配置、策略、提示等)到一些或所有缓存。***存储器到区域116-119的细分可作为***配置过程的一部分(例如,由***设计人员)手动执行和/或可由软件自动执行。
在一个实施例中,***存储器区域116-119使用远存储器(例如,PCM)实现,并且在一些实施例中,近存储器配置为***存储器。***存储器地址范围# 4表示使用诸如DRMA的更高速存储器实现的地址范围,更高速存储器可以是在***存储器模式(不同于缓存模式)中配置的近存储器。
图2示出根据本发明的实施例,用于近存储器144和NVRAM的存储器/存储装置层级140和操作的不同可配置模式。存储器/存储装置层级140具有多个级别,包括(1)缓存级别150,其可包括处理器缓存150A(例如,图1中的缓存101A-105)和可选择地包括作为用于远存储器150B的缓存的近存储器(在某些操作模式中),(2)***存储器级别151,其包括远存储器151B(例如,诸如PCM的NVRAM)和作为***存储器151A操作的近存储器,(3)大容量存储装置级别152,其可包括闪存/磁性/光学大容量存储装置152B和/或NVRAM大容量存储装置152A(例如,一部分NVRAM 142);以及(4)固件存储器级别153,其可包括BIOS闪存170和/或BIOS NVRAM 172和可选择地包括受信任平台模块(TPM) NVRAM 173。
如所示的,近存储器144可实现成在以下模式中操作:其中,它作为***存储器151A操作,并且占用一部分SPA空间(有时称为近存储器“直接访问”模式);以及一个或更多个另外的操作模式中,如暂时存储器192或写缓冲器193。在本发明的一些实施例中,近存储器是可划分的,其中,每个划分可同时在支持的模式的一个不同模式中操作;并且不同实施例可通过硬件(例如,熔丝、引脚)、固件和/或软件支持划分的配置(例如,大小、模式)(例如,通过MSC控制器124内的可编程范围寄存器集合,在控制器内例如可存储不同二进制代码以识别每个模式和划分)。
如在图2中观察到的,***地址空间B 191用于显示在所有或一部分近存储器被指派一部分***地址空间时的实现。在此实施例中,***地址空间B 191表示指派到近存储器151A的***地址空间的范围,并且***地址空间A 190表示指派到NVRAM 174的***地址空间的范围。
在近存储器直接存取模式中操作时,作为***存储器151A的所有或部分近存储器对软件是直接可见的,并且形成SPA空间的一部分。此类存储器可完全在软件控制之下。此类方案可形成用于软件的非一致存储器地址(NUMA)存储器域,其中,相对于NVRAM***存储器174,它从近存储器144获得更高性能。作为示例并且不是限制,此类使用可用于要求对某些数据结构的极快访问的某些高性能计算(HPC)和图形应用。
图2也示出一部分NVRAM 142可用作固件存储器。例如,BIOS NVRAM 172部分可用于存储BIOS镜像(作在BIOS闪存170中存储BIOS信息的替代或附加)。BIOS NVRAM部分172可以是一部分SPA空间,并且由在处理器核101-104上执行的软件直接可寻址,而BIOS闪存170通过I/O子***115可寻址。作为另一示例,受信任平台模块(TPM) NVRAM 173部分可用于保护敏感***信息(例如,加密密钥)。
因此,如所示的,NVRAM 142可实现成以多种不同模式操作,包括作为远存储器151B(例如,在近存储器144存在/在直接存取模式中操作时)、NVRAM大容量存储装置152A、BIOS NVRAM 172及TPM NVRAM 173。
***存储器和大容量存储装置的选择可取决于采用本发明的实施例的电子平台的类型。例如,在个人计算机、平板计算机、笔记本计算机、智能电话、移动电话、功能电话、个人数字助理(PDA)、便携式媒体播放器、便携式游戏装置、游戏控制台、数码相机、交换机、集线器、路由器、机顶盒、数字视频记录器或具有相对小的大容量存储要求的其它装置中,大容量存储装置可使用NVRAM大容量存储装置152A单独实现,或者使用NVRAM大容量存储装置152A与闪存/磁性/光学大容量存储装置152B组合实现。
在具有较大大容量存储装置要求(例如,大型服务器)的其它电子平台中,可使用磁性存储装置(例如,硬盘驱动器)或磁性存储装置、光学存储装置、全息存储装置、大容量存储装置闪存及NVRAM大容量存储装置152A的任何组合实现大容量存储装置。在此类情况下,负责存储的***硬件和/或软件可实现各种智能持久存储分配技术,以有效或有用的方式在FM 151B/NVRAM存储装置152A和闪存/磁性/光学大容量存储装置152B之间分配持久程序代码和数据块。
例如,在一个实施例中,高功率服务器配置有近存储器(例如,DRAM)、PCMS装置和用于大量持续存储的磁性大容量存储装置。在一个实施例中,笔记本计算机配置有近存储器和指行近存储器与大容量存储装置的角色的PCMS装置。家庭或办公室台式计算机的一个实施例类似地配置成笔记本计算机,但也可包括一个或更多个磁性存储装置以提供大量持久存储能力。
平板计算机或蜂窝电话装置的一个实施例配置有PCMS存储器,但可能没有近存储器和另外的大容量存储装置(以便实现成本节省/节能)。然而,平板/电话可配置有诸如闪存或PCMS记忆棒的可移动大容量存储装置。
各种其它类型的装置可如上所述配置。例如,便携式媒体播放器和/或个人数字助理(PDA)可以类似于上述平板/电话的方式配置,游戏控制台可以类似于台式或膝上型计算机的方式配置。可类似配置的其它装置包括数码相机、路由器、机顶盒、数字视频记录器、电视和汽车。
示范***存储器分配方案
图3示出具有到多个存储器通道(例如,DDR通道)302_1到302_8的相应接口301_1到301_8的计算***的存储器控制器300,其中,每个通道能够支持一个或更多个DIMM卡(即,一个或更多个DIMM卡能够***通道中),并且图4和5示出用于通过禁用/启用存储器通道及其对应DIMM卡来控制计算***的功耗的方法。为简明起见,示出了8个存储器通道,但技术人员将理解,本文中的教导能够应用到具有不同数量的存储器通道的***。
根据图4的方法,例如,可做出决定(例如,通过诸如ACPI的智能功率管理软件)以通过禁用当前在运转的存储器通道使计算机***进入更低性能状态。相反,根据图5的方法,可做出决定以通过启用当前未运转的存储器通道使计算机***进行更高性能状态。
如图1中所示,具有DRAM和NVRAM***存储器组件的一些计算***实施例可为DRAM保留第一部分的***存储器地址并且为NVRAM保留第二部分的***存储器地址。也就是说,在“充当***存储器方法的近存储器”中,可寻址***存储器能够包括DRAM(例如,参见图2作为***存储器151A的近存储器)和PCMS(例如,参见图2实现为NVRAM***存储器174的远存储器151B)。
根据一个实施例,再参照图3,每个存储器通道302_1到302_8分配有与在存储器通道上可用的存储空间一致的计算机***存储器地址的独特部分或段。存储器通道上可用的存储空间又随***存储器通道中的DIMM卡数量和DIMM卡上存储器装置的存储密度而变化。
根据又一实施例,存储器通道的第一部分303(以及因此***存储器地址空间的对应第一部分/段)被保留用于DRAM DIMM,并且存储器通道的第二部分304(以及因此***存储器地址空间的对应剩余第二部分/段)被保留用于PCMS DIMM。
根据此特定实施例,DRAM存储空间303不充当用于PCMS存储空间304的缓存。而是,***存储器空间配置成在DRAM存储空间303中存储“访问时间关键”信息(如,程序代码指令或至少经常利用的程序代码指令)和在PCMS存储空间304中存储“访问时间非关键或更不关键”信息(如数据或至少不经常访问的数据)。
因此,在计算机的CPU上运行的操作***和/或虚拟机监视器分配与此方案一致的***存储器地址空间。例如,经常使用的程序代码指令(至少)被赋予对应于具有DRAM DIMM的那些存储器通道的地址空间,并且不经常使用的数据项(至少)被赋予对应于具有PCMS DIMM的那些存储器通道的地址空间。在各种实施例中,在无论DRAM还是PCMS的每个地址存储的内容是称为“缓存线”的固定长度数据字(例如,64比特数据字或128比特数据字)。为方便起见,术语“内容”或“缓存线”将在下面的讨论中互换使用以指在***存储器地址存储的信息。
参照图4的方法,在应用到如上刚刚描述的计算机***时,禁用存储器通道以进入更低性能状态包括禁用存储器通道的DIMM卡及其对应存储器装置,并且启用存储器通道以进入更高性能状态包括启用存储器通道的DIMM卡及其对应存储器装置。
具体而言,在选择启用/禁用具有DRAM DIMM卡的通道时,能够实现功耗和性能的有效缩放。由于DRAM装置比PCMS装置更快并且消耗更多功率,因此,通过关闭DRAM存储器通道来降低到更低性能状态应会大幅降低计算***的性能和功耗。同样地,通过启用DRAM存储器通道来提升到更高性能状态应会大幅增大计算机***的性能和功耗。
然而,存储器管理是关注的问题。具体而言,DRAM存储器通道被禁用或启用时,***存储器地址空间应有效地重新配置成解释可用DRAM存储器空间的更改。这包括将要关闭的DRAM通道的内容“移”到其它***存储器位置。根据图4的方法,操作***和/或虚拟机监视器和/或虚拟机和/或这些中的任何一个的功率管理组件(下文称为“***软件”)跟踪分配到DRAM的虚拟地址的使用402,以理解更经常访问哪些虚拟地址和/或更不经常访问哪些虚拟地址。
如熟知的技术领域,***软件一般设计成参考虚拟地址,并且基础硬件负责将虚拟地址转换成***中驻留的***存储器的对应物理地址。
在决定禁用DRAM存储器通道时,***软件有效地重新配置DRAM地址空间,使得更经常使用的虚拟地址空间保持指派到DRAM地址空间,并且在数量上约等于或等于要关闭的DRAM存储器通道保持的物理地址的一组更少使用的DRAM虚拟地址被重新指派到PCMS地址空间。基础物理地址的产生的重新指派(包括要关闭的DRAM通道中经常使用的地址的内容迁移到要保持活动的DRAM通道,以及更少使用的DRAM地址的内容迁移到PCMS地址空间)必然影响上面刚谈到的虚拟地址到物理地址转换。
一般情况下,中央处理单元(CPU)或“处理器”306中驻留的转换后备缓冲器(TLB) 305充当虚拟地址到物理地址转换的缓存。TLB在技术领域中被良好地理解,但其角色和功能的简述值得一提。TLB包含多个转换条目(TE),每个TE识别用于特定虚拟地址的独特物理地址,也称为地址转换。一般情况下,转换本身被指定到存储器页的粒度。因此,虚拟地址的TE包含在计算***的***存储器中其对应存储器页的物理地址。
TLB设计成包含最近通过执行程序代码调出其相关联虚拟地址 的TE的集合(直到TLB的大小)。因为通过执行程序代码调出的每个虚拟地址识别所操作的特定程序代码指令或特定的数据项,因此,各种处理器体系结构可包括指令TLB和数据TLB。
就指令TLB而言,在程序代码执行期间,获取用于下一指令的下一虚拟地址,并且在指令TLB中执行查找,以查找在指令的虚拟地址与指令TLB TE内虚拟地址之间的匹配。在常见方法中,查找中不使用虚拟地址的更低阶比特,使得查找参数(即,虚拟地址的更高阶比特)基本上对应于虚拟存储器页的地址。如果发现匹配,则在TE中发现的具有匹配的虚拟地址的物理地址识别能够发现所需指令的***存储器中的特定存储器页。
如果在指令TLB中未发现匹配的虚拟地址(指令TLB“缺失”),则处理器的表寻访(tablewalk)硬件从***存储器获取适当的TE。从***存储器获取的TE内的物理地址识别能够发现下一指令的***存储器中的***存储器页。一般也在指令TLB中加载从***存储器获取的TE的副本,并且从指令TLB中驱除至少最近使用的TE。从***存储器获取的原TE保留在***存储器中。
数据TLB(包括响应于TLB缺失的***操作)操作与如上所述差不多相同,除了虚拟地址用于所需数据项,以及所需TE中发现的物理地址识别发现所需数据的***存储器中的页面。
重要的是,注意包含用于在其操作过程中可操作程序(例如,应用和/或虚拟机)可调出的虚拟地址集的所有虚拟地址到物理地址转换(用于指令和数据两者)的TE的集合,位于保持在***存储器中的称为“TE仓库”的特殊仓库307中。在一实施例中,作为将可操作程序加载到存储器中用于执行的一部分,将用于可操作程序的TE仓库307加载到***存储器中。多个程序同时在计算机上操作时,在一实施例中,TE仓库保持在用于每个可操作程序的***存储器中。在又一实施例中,所有TE仓库以及因此所有TE保持在不能禁用的DRAM通道上的DRAM***存储器的特殊段中。
***存储器空间重新配置成解释存储器通道的关闭(或启用)作为更改计算机的性能状态的功率管理决定的一部分时,对于要迁移并且因此具有“新”物理地址的每个缓存线,前面提及的DRAM存储器内容的移动形成了更新其对应TE以反映其新物理地址位置404的需要。应更新的特定TE包括:i)其内容要从正关闭的DRAM通道迁移到不是正关闭的DRAM通道的更经常使用的DRAM地址的TE;以及ii)其对应内容要迁移到PCMS地址空间的更不经常使用的DRAM地址的TE。
在不可能的情况下,所有最不经常使用的DRAM地址碰巧在要关闭的特定DRAM通道上。在此情况下,任何其它DRAM通道上无DRAM地址受通道关闭影响(即,正关闭的DRAM通道的所有内容迁移到PCMS存储装置)。因此,在此不可能情况下,仅修改正关闭的通道的DRAM地址的TE以反映PCMS存储器中的新物理地址。
在更可能的情形下,一些更经常使用的DRAM地址驻留在正关闭的存储器通道上,并且一些更不经常使用的DRAM地址驻留在不是正关闭的剩余通道上。在一实施例中,为到PCMS存储装置的迁移识别的最不经常使用的DRAM地址的数量与由要关闭的DRAM通道支持的地址的数量相同(或大约相同)。这基本上对应于使标记用于到PCMS存储空间的迁移的DRAM地址的数量等于通过DRAM通道的关闭“丢失”的DRAM地址的数量。
通过此方法,其内容需要迁移到新DRAM地址(具体而言,要保持活动的另一DRAM通道上的地址)的正关闭的DRAM通道上经常使用的DRAM地址的数量应与其内容需要迁移到新PCMS地址(即,PCMS存储装置中的地址)的要保持活动的那些DRAM通道上最不经常使用的DRAM地址的数量相同。因此,前者的内容能够替换在通道关闭后要保持活动的DRAM空间中后者的内容。也就是说,能够将正关闭的DRAM通道上经常使用的DRAM地址的内容写入不是正关闭的DRAM通道的最不经常使用的DRAM地址的DRAM地址。
因此,根据图4的方法,从DRAM读取最不经常使用的DRAM地址的缓存线(在要关闭的DRAM通道上的那些缓存线和在另一DRAM通道上的那些缓存线),并且将其写入PCMS存储空间403。修改如***存储器中其对应TE中保持的用于其相应存储器页的物理地址信息(所述TE在其相应TE仓库中 - 这是因为多个软件应用可受通道关闭影响)以反映其新的相应PCMS地址404。
然后,将在活动DRAM通道上“刚空出的”DRAM地址重新填充要关闭的DRAM通道上经常使用的DRAM地址的缓存线,405。
因此,剩余活动通道上每个空出的最不经常使用的DRAM地址用来自要关闭的通道上的另一更经常使用的DRAM地址的缓存线来重写。修改正从要关闭的通道迁移到剩余活动DRAM通道的更经常使用的DRAM地址的每个存储器页的***存储器中的TE记录以反映其新的物理地址位置406。值得注意的是,每个新的物理地址对应于以前识别为最不经常使用的地址。
在一实施例中,作为原***初启(bring-up)的一部分(例如,在做出关闭DRAM通道的决定很早之前),保留PCMS存储装置308的部分以便在DRAM通道关闭的情况下接收缓存线的“DRAM通道的价值”。这里,除非或直到关闭DRAM通道,在PCMS部分中不存储活动信息,在关闭时,将总数据大小等于正关闭的DRAM通道的存储容量的缓存线的数量从DRAM存储空间加载到部分308中。在更新其相应TE仓库中的其对应TE时,随后从PCMS部分访问这些缓存线以支持程序操作。如上所述,可预先保留PCMS***存储器的多个此类部分以支持正关闭多个DRAM通道时能够操作的***407。
作为上述***存储器重新配置过程的一部分,驻留在TLB中的修改的TE的任何副本无效。要注意的是,在***存储器配置的过程中也可暂停***操作。
在关闭DRAM通道后,参照图5,可由***软件做出进入更高性能状态502的后续决定,这包括激活以前不活动的DRAM通道,502。在此情况下,将驻留在为存储从DRAM迁移的内容而保留的PCMS***存储器304的前面提及的部分308中缓存线的“重新迁移回”正激活的DRAM通道,503。在TE仓库307中修改用于所有此类缓存线的对应存储器页的TE的物理地址组件以在新激活的DRAM通道中反映其新存储,504。再一次,可暂停***操作以实现DRAM通道激活、缓存线迁移、TE修改和驻留于TLB中修改的TE的任何副本的失效。
图6示出软件表结构层级,该层级例如可由智能功率管理软件(如ACPI)用于如上所述支持计算机***启用/禁用存储器通道的能力。如在图6中观察到的,存储器功率状态表600层级包括报头601、命令集602、一个或更多个功率节点603_1到603_X的定义以及由存储器功率状态表600表示的***存储器的区域支持的不同功率状态604_1到604_Y的特性。
例如,可以为任何以下项例示存储器功率状态表的单个实例:整个***存储器、***存储器的技术特定区域(如为***存储器的DRAM部分例示的第一表和为***存储器的PCMS部分例示的第二表)等。报头信息601包括对例示存储器功率状态所代表的***存储器的部分特定的信息。在一实施例中,报头信息601包括:i)表的签名;ii)整个表的长度,包括所有其组件602、603、604;iii)表的结构的版本号;iv)表的校验和;v) OEM标识符;vi)创建表的实用程序的供应商的ID;以及vii)创建表的实用程序的修正的ID。
命令集包括用于从/向功率状态表及其各种组件读取/写信息的基本命令。
存储器功率状态表识别表中所列功率节点结构603的数量(X),并且包括功率节点结构本身603_1到603_X,或者至少提供到这些结构的引用。在一实施例中,为表600表示的存储器的部分中能够支持多个功率状态的每个存储器通道创建单独的功率节点结构实例 - 任何一个实例可编程输入。例如,简要参照图3,如果存储器功率状态表600表示具有DRAM 303和PCMS 304两种部分的***存储器的DRAM部分303,则能够为每个DRAM存储器通道302_1到302_4例示单独的功率节点结构。
如在图6中观察到的,诸如功率节点结构603_1的每个功率节点结构包括:i)功率节点结构的标识符605;ii)功率节点结构表示的***存储器地址空间的地址范围606;以及iii)功率节点结构606表示的***存储器的特定部分当前所处的功率状态607。要注意的是,当前***存储器功率状态607对应于来自由功率状态表600整体定义的存储器功率状态集604_1到604_Y的功率状态之一。
在功率节点结构603_1表示DRAM通道的实施例中,功率节点结构的地址范围606对应于虚拟***存储器地址的范围,虚拟***存储器地址到物理地址空间中的转换对应于通道支持的物理地址。然而,存储器通道的前面提及的关闭和和重新启用能够跨多个存储器通道“扰杂”连续的虚拟地址范围。换而言之,至少在某个通道关闭序列后,单个存储器通道可支持虚拟地址空间的多个不连续部分。
每次启动存储器通道关闭序列时,可复合虚拟地址空间在其对应物理存储资源内的此***。因此,在一实施例中,可为相同存储器通道例示多个另外的功率节点结构603_1_2到603_1_R,其中,每个此类功率节点结构实例对应于在通道中有效存储的虚拟地址空间的不同范围。各种功率节点结构实例能够以如下方式有效地“捆绑”在一起,该方式通过在其对应虚拟地址范围每个中输入相同功率节点结构标识符元素605来表示其对应虚拟地址范围存储在相同存储器通道上。对此特定标识符采取的任何动作将自然地调用具有该标识符的所有功率节点结构603_1和603_1_2到603_1_R。
在通道关闭或通道重新启用转变期间,应修改特定存储器通道的功率节点结构实例以反映通道支持其存储的“新”的虚拟地址。这可涉及任何以下所述:添加为存储器通道例示的新功率节点结构实例或者删除为其例示的现有功率节点结构实例,和/或修改在为存储器通道例示的现有功率节点结构实例中指定的虚拟地址范围606。因此,根据各种实施例,在关闭或重新激活存储器通道时,不但为受影响的虚拟地址到物理地址转换修改在***存储器中的TE仓库中的TE条目,而且也可修改功率管理软件使用的功率节点结构的地址范围606元素及此类结构本身的数量。
在如上详细所述关闭DRAM存储器通道时,存储器通道的功率节点结构实例的当前功率状态607对应于低功率状态,在该状态中,存储器通道被关闭并且未得到积极使用。在此功率状态中,可暂停施加时钟、选通和/或刷新信号到存储器通道上的DIMM卡。作为低功率状态的特性集的一部分,也可降低施加到通道上的DIMM卡的功率电压。
如果在关闭后重新激活存储器通道,则存储器通道的功率节点结构实例的当前功率状态设置607将改变到对应于在活动的存储器通道的另一功率状态。在此情况下,重新施加任何禁用的信号或功率电压。
对于上述功率状态转变,嵌在与存储器通道相关联的操作***中驱动器软件能够监视在进入低功率状态时各种信号和供电电压的禁用以及在进入更高功率状态时各种信号和供电电压的启用。
在一实施例中,当前存储器功率状态设置607包括指向表600支持的功率状态集604_1到604_Y中功率节点结构603_1当前所处的特定功率状态的指针610。在一实施例中,功率状态定义604_1到604_Y中的每个功率状态定义对***存储器组件在该功率状态中时消耗的平均功率(和/或最大-最小功耗率)进行了定义。在又一实施例中,每个功率状态定义也包括在转变进入或退出功率状态时花费时间量的定义(例如,退出等待时间)。
要注意的是,虽然以上讨论一直主要集中在整个单个通道的关闭上,但上面的教导能够应用到更宽和更精细的粒度。具体而言,上面的教导能够应用到其中作为相同功率状态更改序列的一部分,关闭不止一个通道的序列(例如,在跨存储器通道存在交错的情况下),或应用到其中关闭少于整个存储器通道的序列(如只一个DRAM芯片的关闭)。
图7示出软件体系结构,该软件体系结构包括功率管理软件710、如上所述的功率管理表700和跟踪软件程序的虚拟地址的使用率并更新迁移缓存线的TE信息的存储器管理软件712的组件711。
功率管理软件功能710(如ACPI)决定更低***功率状态是必需的。借助于通过功率管理表700的可用性,先前知道***存储器被组织成支持不同功率状态的各种功率节点703_1到703_N,功率管理软件701发出识别一个此类功率节点703_2和它应进入的新的更低功率状态的命令702。
这里,每个功率节点703_1–703_N对应于驻留于计算***中的不同DRAM(以及可能地PCMS)存储器通道,每个通道具有***其中的多个DIMM卡。在此示例中,功率节点703_2对应于DRAM存储器通道。响应于命令712,调用713用于计算机***的基础存储器通道的存储器管理软件712,并且存储器管理软件712识别要关闭的特定DRAM存储器通道。
存储器管理软件712包括跟踪组件711,其跟踪哪些DRAM分配的虚拟地址更经常使用,哪些DRAM分配的虚拟地址更不经常使用。减去由于关闭DRAM存储器通道DRAM存储容量的损失,了解***的新的更小DRAM容量。识别与此容量一致的最经常使用的DRAM虚拟地址(和/或标记其它“时间访问关键”虚拟地址)以便保持在DRAM存储装置中。剩余虚拟地址对应于更少使用的DRAM虚拟地址集,其对应内容的大小等于要关闭的存储器通道的容量。
迁移控制组件714控制如上所述的适当缓存线迁移。这里,再一次迁移包括从DRAM读取与更少使用的虚拟地址相关联的缓存线(在要关闭的存储器通道上的那些和在另一DRAM通道上的那些),并且将其写入PCMS存储器中保留的空间。与位于要关闭的存储器通道上经常使用的虚拟地址相关联的缓存线迁移到通过到PCMS存储器空间的迁移而有效空出的剩余活动存储器通道的位置中。更新由于迁移而具有新物理地址的虚拟地址的TE仓库中的TE,并且使TLB中的任何受影响TE失效。
然后,更新716表示剩余活动DRAM存储器通道的功率表700中功率节点的地址范围信息以反映其新的虚拟地址范围。这可包括创建或删除被识别为相同功率节点的一部分的功率节点实例。
然后,功率通道例如由能够停止或放慢在通道上各种时钟/选通信号(并可能进一步降低存储器通道上的功率电压)的用于存储器通道的装置驱动器软件717关闭。
功率通道能够根据类似的流程重新激活,但其中迁移控制组件714将以前在PCMS中存储的缓存线迁移到重新激活的存储器通道上。
虽然已将上述方法呈现为大部分(即使不是全部)在软件中执行,但可在硬件中或者通过硬件和软件的组合执行上述任何各种步骤。
Claims (28)
1. 一种方法,包括:
响应于进入更低性能状态的期望,执行以下操作:
将DRAM存储器通道上存储的缓存线迁移到其它DRAM存储器通道和PCMS存储器,其中,所述缓存线中与更经常使用的虚拟地址相关联的那些缓存线被迁移到所述其它DRAM存储器通道,并且所述缓存线中与更不经常使用的虚拟地址相关联的那些缓存线被迁移到所述PCMS存储器;以及,
关闭所述DRAM存储器通道。
2. 如权利要求1所述的方法,其中迁移到所述PCMS存储器的所述缓存线被迁移到所述PCMS存储器中为响应于DRAM存储器通道关闭操作而从DRAM存储装置迁移的缓存线以前保留的存储空间。
3. 如权利要求2所述的方法,其中所述方法还包括响应进入更高性能状态的期望,执行以下操作:
重新激活所述DRAM存储器通道;
将所述缓存线中迁移到PCMS存储器中的那些缓存线迁移到所述DRAM存储器通道上。
4. 如权利要求1所述的方法,还包括为所述缓存线更新虚拟到物理地址转换。
5. 如权利要求4所述的方法,其中所述虚拟到物理地址转换存储在所述其它DRAM存储器通道的存储空间中。
6. 如权利要求5所述的方法,还包括为转换后备缓冲器中发现的所述缓存线使任何虚拟到物理地址转换失效。
7. 一种方法,包括:
跟踪软件程序的虚拟地址的使用;以及,
响应于进入更低性能状态的期望,执行以下操作:
从与所述软件程序的更少使用的虚拟地址相关联的DRAM存储器通道读取缓存线;
将所述缓存线写入PCMS存储器;
将与所述DRAM存储器通道之一的更经常使用的虚拟地址相关联的缓存线写入其它剩余的一个或更多个DRAM通道的位置,所述位置以前存储写入PCMS存储器的所述缓存线中的至少一些;以及,
关闭所述一个DRAM存储器通道。
8. 如权利要求7所述的方法,其中写入PCMS存储器的所述缓存线被写入以前为从DRAM存储空间迁移的缓存线的存储保留的所述PCMS存储器的存储空间。
9. 如权利要求8所述的方法,还包括响应于进入更高性能状态的期望,执行以下操作:
重新激活所述一个DRAM存储器通道;
将写入PCMS存储器的所述缓存线迁移到所述DRAM存储器通道上。
10. 如权利要求7所述的方法,还包括为与更少使用的虚拟地址相关联的所述缓存线和与更经常使用的虚拟地址相关联的所述缓存线更新虚拟到物理地址转换。
11. 如权利要求11所述的方法,还包括为与更少使用的虚拟地址相关联的所述缓存线和与更经常使用的虚拟地址相关联的所述缓存线使在转换后备缓冲器中发现的任何虚拟到物理地址转换无效。
12. 一种方法,包括:
决定进入更低功率状态;以及,
在响应中关闭计算机***中的存储器通道,在所述响应之后所述计算机***中的其它存储器通道保持活动,使得所述存储器通道关闭时计算机保持运转。
13. 如权利要求12所述的方法,其中,所述方法还包括
更改存储器功率状态表的功率节点结构以关闭所述存储器通道,其中,所述功率节点结构表示所述存储器通道。
14. 如权利要求13所述的方法,其中所述功率节点结构识别其对应缓存线存储在所述存储器通道上的虚拟地址的范围。
15. 如权利要求14所述的方法,其中创建所述功能节点结构的多个实例以表示所述存储器通道,每个独特的实例具有其对应缓存线存储在所述存储器通道中的不同虚拟地址集。
16. 如权利要求13所述的方法,其中所述功率节点结构具有表示所述存储器通道的当前功率状态的字段。
17. 如权利要求13所述的方法,其中所述存储器功率状态表包括多个功率节点结构以表示多个相应存储器通道。
18. 如权利要求17所述的方法,其中所述存储器功率表包括所述多个相应存储器通道的所述不同功率状态的特性。
19. 一种包含程序代码的机器可读媒体,所述程序代码在由计算***的中央处理单元处理时使方法被执行,所述方法包括:
响应于进入更低性能状态的期望,执行以下操作:
将DRAM存储器通道上存储的缓存线迁移到其它DRAM存储器通道和PCMS存储器,其中,所述缓存线中与更经常使用的虚拟地址相关联的那些缓存线被迁移到所述其它DRAM存储器通道,并且所述缓存线中与更不经常使用的虚拟地址相关联的那些缓存线被迁移到所述PCMS存储器;以及,
关闭所述DRAM存储器通道。
20. 如权利要求19所述的机器可读媒体,其中迁移到所述PCMS存储器的所述缓存线被迁移到所述PCMS存储器中为响应于DRAM存储器通道关闭操作而从DRAM存储装置迁移的缓存线以前保留的存储空间。
21. 如权利要求20所述的机器可读媒体,其中所述方法还包括响应于进入更高性能状态的期望,执行以下操作:
重新激活所述DRAM存储器通道;
将所述缓存线中迁移到PCMS存储器中的那些缓存线迁移到所述DRAM存储器通道上。
22. 如权利要求19所述的机器可读媒体,其中所述方法还包括为所述缓存线更新虚拟到物理地址转换。
23. 如权利要求22所述的机器可读媒体,其中所述虚拟到物理地址转换存储在所述其它DRAM存储器通道的存储空间中。
24. 如权利要求23所述的机器可读媒体,还包括为转换后备缓冲器中发现的所述缓存线使任何虚拟到物理地址转换失效。
25. 一种包含程序代码的机器可读媒体,所述程序代码在由计算***的中央处理单元处理时使方法被执行,所述方法包括:
决定进入更低功率状态;以及,
更改存储器功率状态表的功率节点结构以关闭计算机***中的存储器通道。
26. 如权利要求25所述的机器可读媒体,其中所述功率节点结构表示所述存储器通道。
27. 如权利要求26所述的机器可读媒体,其中所述功率节点结构识别其对应缓存线存储在所述存储器通道上的虚拟地址的范围。
28. 如权利要求27所述的机器可读媒体,其中创建所述功能节点结构的多个实例以表示所述存储器通道,每个独特的实例具有其对应缓存线存储在所述存储器通道中的不同虚拟地址集。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067007 WO2013095559A1 (en) | 2011-12-22 | 2011-12-22 | Power conservation by way of memory channel shutdown |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104115132A true CN104115132A (zh) | 2014-10-22 |
CN104115132B CN104115132B (zh) | 2018-02-06 |
Family
ID=48669200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076411.3A Active CN104115132B (zh) | 2011-12-22 | 2011-12-22 | 借助于存储器通道关闭的功率节约 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9612649B2 (zh) |
KR (2) | KR101761044B1 (zh) |
CN (1) | CN104115132B (zh) |
BR (1) | BR112014015441B1 (zh) |
DE (1) | DE112011106032B4 (zh) |
GB (1) | GB2513748B (zh) |
TW (1) | TWI614752B (zh) |
WO (1) | WO2013095559A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117285A (zh) * | 2015-09-09 | 2015-12-02 | 重庆大学 | 一种基于移动虚拟化***的非易失性存储器调度优化方法 |
CN107066068A (zh) * | 2015-09-09 | 2017-08-18 | 联发科技股份有限公司 | 存储装置及存储装置内低功耗存储器存取方法 |
CN108632152A (zh) * | 2018-03-30 | 2018-10-09 | 上海康斐信息技术有限公司 | 一种无线路由器及快速启动的方法 |
CN113886291A (zh) * | 2021-08-29 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 一种路径的禁用方法及*** |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8597360B2 (en) | 2004-11-03 | 2013-12-03 | Neuropro Technologies, Inc. | Bone fusion device |
US9358123B2 (en) | 2011-08-09 | 2016-06-07 | Neuropro Spinal Jaxx, Inc. | Bone fusion device, apparatus and method |
WO2013101201A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Home agent multi-level nvm memory architecture |
US9532883B2 (en) | 2012-04-13 | 2017-01-03 | Neuropro Technologies, Inc. | Bone fusion device |
AU2014236698B2 (en) | 2013-03-15 | 2018-09-13 | Neuropro Technologies, Inc. | Bodiless bone fusion device, apparatus and method |
WO2015061337A1 (en) * | 2013-10-21 | 2015-04-30 | Sehat Sutardja | Final level cache system and corresponding method |
US11822474B2 (en) | 2013-10-21 | 2023-11-21 | Flc Global, Ltd | Storage system and method for accessing same |
US9389675B2 (en) * | 2013-12-19 | 2016-07-12 | International Business Machines Corporation | Power management for in-memory computer systems |
CN105531682A (zh) | 2014-08-15 | 2016-04-27 | 联发科技股份有限公司 | 管理多通道存储设备以具有改进的通道切换响应时间的方法及相关的存储控制*** |
US9858201B2 (en) | 2015-02-20 | 2018-01-02 | Qualcomm Incorporated | Selective translation lookaside buffer search and page fault |
US9658793B2 (en) * | 2015-02-20 | 2017-05-23 | Qualcomm Incorporated | Adaptive mode translation lookaside buffer search and access fault |
KR102314138B1 (ko) * | 2015-03-05 | 2021-10-18 | 삼성전자 주식회사 | 모바일 장치 및 모바일 장치의 데이터 관리 방법 |
US10127406B2 (en) * | 2015-03-23 | 2018-11-13 | Intel Corporation | Digital rights management playback glitch avoidance |
US9977606B2 (en) * | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9990283B2 (en) * | 2015-10-16 | 2018-06-05 | SK Hynix Inc. | Memory system |
US9977605B2 (en) * | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9990143B2 (en) * | 2015-10-16 | 2018-06-05 | SK Hynix Inc. | Memory system |
US9977604B2 (en) * | 2015-10-16 | 2018-05-22 | SK Hynix Inc. | Memory system |
US9824419B2 (en) * | 2015-11-20 | 2017-11-21 | International Business Machines Corporation | Automatically enabling a read-only cache in a language in which two arrays in two different variables may alias each other |
US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
US10452539B2 (en) * | 2016-07-19 | 2019-10-22 | Sap Se | Simulator for enterprise-scale simulations on hybrid main memory systems |
US10783146B2 (en) | 2016-07-19 | 2020-09-22 | Sap Se | Join operations in hybrid main memory systems |
US10387127B2 (en) | 2016-07-19 | 2019-08-20 | Sap Se | Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases |
US10474557B2 (en) | 2016-07-19 | 2019-11-12 | Sap Se | Source code profiling for line-level latency and energy consumption estimation |
US10540098B2 (en) | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main memory systems |
US10437798B2 (en) | 2016-07-19 | 2019-10-08 | Sap Se | Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems |
US10698732B2 (en) | 2016-07-19 | 2020-06-30 | Sap Se | Page ranking in operating system virtual pages in hybrid memory systems |
US11977484B2 (en) | 2016-07-19 | 2024-05-07 | Sap Se | Adapting in-memory database in hybrid memory systems and operating system interface |
US10318428B2 (en) | 2016-09-12 | 2019-06-11 | Microsoft Technology Licensing, Llc | Power aware hash function for cache memory mapping |
US10261876B2 (en) | 2016-11-08 | 2019-04-16 | Micron Technology, Inc. | Memory management |
US10430085B2 (en) | 2016-11-08 | 2019-10-01 | Micron Technology, Inc. | Memory operations on data |
US10111760B2 (en) | 2017-01-18 | 2018-10-30 | Neuropro Technologies, Inc. | Bone fusion system, device and method including a measuring mechanism |
US10729560B2 (en) | 2017-01-18 | 2020-08-04 | Neuropro Technologies, Inc. | Bone fusion system, device and method including an insertion instrument |
US10241561B2 (en) | 2017-06-13 | 2019-03-26 | Microsoft Technology Licensing, Llc | Adaptive power down of intra-chip interconnect |
US11010379B2 (en) | 2017-08-15 | 2021-05-18 | Sap Se | Increasing performance of in-memory databases using re-ordered query execution plans |
EP3695319B1 (en) * | 2017-09-27 | 2022-11-23 | Telefonaktiebolaget LM Ericsson (publ) | Method and reallocation component for managing reallocation of information from source to target memory sled |
EP3807773B1 (en) | 2018-06-18 | 2024-03-13 | FLC Technology Group Inc. | Method and apparatus for using a storage system as main memory |
US11163680B2 (en) | 2018-11-28 | 2021-11-02 | International Business Machines Corporation | Dynamic write-back to non-volatile memory |
US10642734B1 (en) | 2018-12-03 | 2020-05-05 | Advanced Micro Devices, Inc. | Non-power of two memory configuration |
US11307779B2 (en) | 2019-09-11 | 2022-04-19 | Ceremorphic, Inc. | System and method for flash and RAM allocation for reduced power consumption in a processor |
US20220188208A1 (en) * | 2020-12-10 | 2022-06-16 | Advanced Micro Devices, Inc. | Methods for configuring span of control under varying temperature |
US11721379B2 (en) * | 2021-06-17 | 2023-08-08 | Micron Technology, Inc. | Cell disturb on power state transition |
US12032840B2 (en) * | 2022-02-23 | 2024-07-09 | Nvidia Corporation | System level hardware mechanisms for dynamic assist control |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWM286985U (en) * | 2005-08-22 | 2006-02-01 | Regulus Technologies Co Ltd | Memory module with smart-type power-saving and fault-tolerance |
US20080034234A1 (en) * | 2006-08-02 | 2008-02-07 | Hitachi, Ltd. | Method and computer for reducing power consumption of a memory |
US20110271070A1 (en) * | 2010-04-30 | 2011-11-03 | Microsoft Corporation | Memory usage scanning |
Family Cites Families (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US22008A (en) * | 1858-11-09 | Hoisting-machine | ||
US122011A (en) * | 1871-12-19 | Improvement in keepers for door-latches | ||
US711129A (en) * | 1901-11-18 | 1902-10-14 | Robert Shedenhelm | Animal-shears. |
US711207A (en) * | 1901-12-14 | 1902-10-14 | Martin V Grogan | Circular handsaw. |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US7000102B2 (en) | 2001-06-29 | 2006-02-14 | Intel Corporation | Platform and method for supporting hibernate operations |
US6917999B2 (en) | 2001-06-29 | 2005-07-12 | Intel Corporation | Platform and method for initializing components within hot-plugged nodes |
US6732241B2 (en) * | 2001-09-07 | 2004-05-04 | Hewlett-Packard Development Company, L.P. | Technique for migrating data between storage devices for reduced power consumption |
US7493438B2 (en) | 2001-10-03 | 2009-02-17 | Intel Corporation | Apparatus and method for enumeration of processors during hot-plug of a compute node |
US7673090B2 (en) | 2001-12-19 | 2010-03-02 | Intel Corporation | Hot plug interface control method and apparatus |
US7117311B1 (en) | 2001-12-19 | 2006-10-03 | Intel Corporation | Hot plug cache coherent interface method and apparatus |
US7003658B2 (en) | 2002-02-21 | 2006-02-21 | Inventec Corporation | Method for user setup of memory throttling register in north bridge via BIOS to save power |
US20040028066A1 (en) * | 2002-08-06 | 2004-02-12 | Chris Quanbeck | Receiver architectures with dynamic symbol memory allocation and methods therefor |
TW200410255A (en) | 2002-12-10 | 2004-06-16 | Comax Semiconductor Inc | A memory device with power-saving mode and an electrics device with the memory device |
US7350087B2 (en) | 2003-03-31 | 2008-03-25 | Intel Corporation | System and method of message-based power management |
TW564991U (en) * | 2003-04-25 | 2003-12-01 | Sunplus Technology Co Ltd | Power-saving static memory control circuit |
US7376775B2 (en) | 2003-12-29 | 2008-05-20 | Intel Corporation | Apparatus, system, and method to enable transparent memory hot plug/remove |
US7475174B2 (en) | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US8046488B2 (en) * | 2004-05-21 | 2011-10-25 | Intel Corporation | Dynamically modulating link width |
US7337368B2 (en) | 2004-06-07 | 2008-02-26 | Dell Products L.P. | System and method for shutdown memory testing |
US7480808B2 (en) * | 2004-07-16 | 2009-01-20 | Ati Technologies Ulc | Method and apparatus for managing power consumption relating to a differential serial communication link |
US7562202B2 (en) * | 2004-07-30 | 2009-07-14 | United Parcel Service Of America, Inc. | Systems, methods, computer readable medium and apparatus for memory management using NVRAM |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US7246224B2 (en) | 2004-09-27 | 2007-07-17 | Intel Corporation | System and method to enable platform personality migration |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
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 |
US7376037B1 (en) * | 2005-09-26 | 2008-05-20 | Lattice Semiconductor Corporation | Programmable logic device with power-saving architecture |
US8145732B2 (en) | 2005-11-21 | 2012-03-27 | Intel Corporation | Live network configuration within a link based computing system |
US7496742B2 (en) * | 2006-02-07 | 2009-02-24 | Dell Products L.P. | Method and system of supporting multi-plugging in X8 and X16 PCI express slots |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US8051253B2 (en) | 2006-09-28 | 2011-11-01 | Virident Systems, Inc. | Systems and apparatus with programmable memory control for heterogeneous main memory |
WO2008055271A2 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Seamless application access to hybrid main memory |
US8344475B2 (en) * | 2006-11-29 | 2013-01-01 | Rambus Inc. | Integrated circuit heating to effect in-situ annealing |
US7908501B2 (en) | 2007-03-23 | 2011-03-15 | Silicon Image, Inc. | Progressive power control of a multi-port memory device |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8347005B2 (en) * | 2007-07-31 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | Memory controller with multi-protocol interface |
JP2009211153A (ja) * | 2008-02-29 | 2009-09-17 | Toshiba Corp | メモリ装置、情報処理装置及び電力制御方法 |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
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 |
US8161304B2 (en) * | 2009-01-20 | 2012-04-17 | Microsoft Corporation | Power management for large memory subsystems |
US8331857B2 (en) | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8180981B2 (en) * | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US20100306453A1 (en) | 2009-06-02 | 2010-12-02 | Edward Doller | Method for operating a portion of an executable program in an executable non-volatile memory |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
KR20100133710A (ko) * | 2009-06-12 | 2010-12-22 | 삼성전자주식회사 | 메모리 시스템 및 그것의 코드 데이터 로딩 방법 |
US20110047316A1 (en) * | 2009-08-19 | 2011-02-24 | Dell Products L.P. | Solid state memory device power optimization |
US8578138B2 (en) | 2009-08-31 | 2013-11-05 | Intel Corporation | Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode |
US8296496B2 (en) * | 2009-09-17 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Main memory with non-volatile memory and DRAM |
US9041720B2 (en) * | 2009-12-18 | 2015-05-26 | Advanced Micro Devices, Inc. | Static image retiling and power management method and circuit |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8407516B2 (en) | 2009-12-23 | 2013-03-26 | Intel Corporation | Controlling memory redundancy in a system |
US20110161592A1 (en) | 2009-12-31 | 2011-06-30 | Nachimuthu Murugasamy K | Dynamic system reconfiguration |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US20110179311A1 (en) * | 2009-12-31 | 2011-07-21 | Nachimuthu Murugasamy K | Injecting error and/or migrating memory in a computing system |
US8621255B2 (en) * | 2010-02-18 | 2013-12-31 | Broadcom Corporation | System and method for loop timing update of energy efficient physical layer devices using subset communication techniques |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
US9032398B2 (en) * | 2010-07-12 | 2015-05-12 | Vmware, Inc. | Online classification of memory pages based on activity level represented by one or more bits |
JP2012027655A (ja) * | 2010-07-22 | 2012-02-09 | Hitachi Ltd | 情報処理装置および省電力メモリ管理方法 |
US8762760B2 (en) * | 2010-09-14 | 2014-06-24 | Xilinx, Inc. | Method and apparatus for adaptive power control in a multi-lane communication channel |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
US8838935B2 (en) * | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US8462577B2 (en) | 2011-03-18 | 2013-06-11 | Intel Corporation | Single transistor driver for address lines in a phase change memory and switch (PCMS) array |
US8462537B2 (en) | 2011-03-21 | 2013-06-11 | Intel Corporation | Method and apparatus to reset a phase change memory and switch (PCMS) memory cell |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
US8463948B1 (en) | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
US8671309B2 (en) | 2011-07-01 | 2014-03-11 | Intel Corporation | Mechanism for advanced server machine check recovery and associated system software enhancements |
WO2013048483A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Platform storage hierarchy with non-volatile random access memory having configurable partitions |
WO2013048493A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Memory channel that supports near memory and far memory access |
EP2761476B1 (en) * | 2011-09-30 | 2017-10-25 | Intel Corporation | Apparatus, method and system that stores bios in non-volatile random access memory |
EP2761465B1 (en) * | 2011-09-30 | 2022-02-09 | Intel Corporation | Autonomous initialization of non-volatile random access memory in a computer system |
CN103946826B (zh) | 2011-09-30 | 2019-05-31 | 英特尔公司 | 用于在公共存储器通道上实现多级存储器层级的设备和方法 |
US9378142B2 (en) | 2011-09-30 | 2016-06-28 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes |
WO2013048497A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
EP2761471B1 (en) | 2011-09-30 | 2017-10-25 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
EP2761467B1 (en) * | 2011-09-30 | 2019-10-23 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
CN103946816B (zh) * | 2011-09-30 | 2018-06-26 | 英特尔公司 | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) |
US20130091331A1 (en) * | 2011-10-11 | 2013-04-11 | Iulian Moraru | Methods, apparatus, and articles of manufacture to manage memory |
US8593866B2 (en) * | 2011-11-11 | 2013-11-26 | Sandisk Technologies Inc. | Systems and methods for operating multi-bank nonvolatile memory |
US9829951B2 (en) * | 2011-12-13 | 2017-11-28 | Intel Corporation | Enhanced system sleep state support in servers using non-volatile random access memory |
US9336147B2 (en) * | 2012-06-12 | 2016-05-10 | Microsoft Technology Licensing, Llc | Cache and memory allocation for virtual machines |
US9811276B1 (en) * | 2015-09-24 | 2017-11-07 | EMC IP Holding Company LLC | Archiving memory in memory centric architecture |
-
2011
- 2011-12-22 BR BR112014015441-4A patent/BR112014015441B1/pt active IP Right Grant
- 2011-12-22 DE DE112011106032.7T patent/DE112011106032B4/de active Active
- 2011-12-22 WO PCT/US2011/067007 patent/WO2013095559A1/en active Application Filing
- 2011-12-22 US US13/997,999 patent/US9612649B2/en active Active
- 2011-12-22 KR KR1020157033114A patent/KR101761044B1/ko active IP Right Grant
- 2011-12-22 CN CN201180076411.3A patent/CN104115132B/zh active Active
- 2011-12-22 KR KR1020147017930A patent/KR101572403B1/ko not_active IP Right Cessation
- 2011-12-22 GB GB1411390.6A patent/GB2513748B/en active Active
-
2012
- 2012-12-06 TW TW101145912A patent/TWI614752B/zh active
-
2017
- 2017-04-03 US US15/477,857 patent/US10521003B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWM286985U (en) * | 2005-08-22 | 2006-02-01 | Regulus Technologies Co Ltd | Memory module with smart-type power-saving and fault-tolerance |
US20080034234A1 (en) * | 2006-08-02 | 2008-02-07 | Hitachi, Ltd. | Method and computer for reducing power consumption of a memory |
US20110271070A1 (en) * | 2010-04-30 | 2011-11-03 | Microsoft Corporation | Memory usage scanning |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117285A (zh) * | 2015-09-09 | 2015-12-02 | 重庆大学 | 一种基于移动虚拟化***的非易失性存储器调度优化方法 |
CN107066068A (zh) * | 2015-09-09 | 2017-08-18 | 联发科技股份有限公司 | 存储装置及存储装置内低功耗存储器存取方法 |
CN105117285B (zh) * | 2015-09-09 | 2019-03-19 | 重庆大学 | 一种基于移动虚拟化***的非易失性存储器调度优化方法 |
CN108632152A (zh) * | 2018-03-30 | 2018-10-09 | 上海康斐信息技术有限公司 | 一种无线路由器及快速启动的方法 |
CN113886291A (zh) * | 2021-08-29 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 一种路径的禁用方法及*** |
CN113886291B (zh) * | 2021-08-29 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 一种路径的禁用方法及*** |
Also Published As
Publication number | Publication date |
---|---|
DE112011106032T5 (de) | 2014-12-04 |
GB2513748A (en) | 2014-11-05 |
BR112014015441A8 (pt) | 2017-07-04 |
KR101761044B1 (ko) | 2017-07-24 |
GB201411390D0 (en) | 2014-08-13 |
US20170206010A1 (en) | 2017-07-20 |
US20140143577A1 (en) | 2014-05-22 |
TW201331941A (zh) | 2013-08-01 |
KR20140098221A (ko) | 2014-08-07 |
GB2513748B (en) | 2020-08-19 |
TWI614752B (zh) | 2018-02-11 |
DE112011106032B4 (de) | 2022-06-15 |
WO2013095559A1 (en) | 2013-06-27 |
BR112014015441A2 (pt) | 2017-06-13 |
KR20150138404A (ko) | 2015-12-09 |
KR101572403B1 (ko) | 2015-11-26 |
US10521003B2 (en) | 2019-12-31 |
CN104115132B (zh) | 2018-02-06 |
US9612649B2 (en) | 2017-04-04 |
BR112014015441B1 (pt) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104115132A (zh) | 借助于存储器通道关闭的功率节约 | |
US11054876B2 (en) | Enhanced system sleep state support in servers using non-volatile random access memory | |
US9817758B2 (en) | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage | |
CN103946812B (zh) | 用于实现多级别存储器分级体系的设备和方法 | |
CN103999161B (zh) | 用于相变存储器漂移管理的设备和方法 | |
CN107608910B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN104106057B (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和*** | |
US20130290597A1 (en) | Generation of far memory access signals based on usage statistic tracking | |
US20140229659A1 (en) | Thin translation for system access of non volatile semicondcutor storage as random access memory | |
CN103946816A (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
CN103946826A (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
CN104115129A (zh) | 用于从处理器到存储器子***智能刷新数据的***和方法 | |
CN105493052A (zh) | 用于存储器管理的高速缓存操作 | |
CN104115136A (zh) | 非易失性随机访问存储器中存储bios的装置、方法和*** | |
WO2013048493A1 (en) | Memory channel that supports near memory and far memory access | |
US9202548B2 (en) | Efficient PCMS refresh mechanism | |
CN103593324A (zh) | 一种具有自学习功能的快速启动低功耗计算机片上*** | |
Wang et al. | File system-independent block device support for storage class memory |
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 |