CN104115230A - 高效pcms刷新机制背景 - Google Patents
高效pcms刷新机制背景 Download PDFInfo
- Publication number
- CN104115230A CN104115230A CN201180076407.7A CN201180076407A CN104115230A CN 104115230 A CN104115230 A CN 104115230A CN 201180076407 A CN201180076407 A CN 201180076407A CN 104115230 A CN104115230 A CN 104115230A
- Authority
- CN
- China
- Prior art keywords
- phase
- data
- address
- noninverting
- pcms
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40618—Refresh operations over multiple banks or interleaving
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
- G11C2013/0057—Read done in two steps, e.g. wherein the cell is read twice and one of the two read values serving as a reference value
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5647—Multilevel memory with bit inversion arrangement
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Chemical & Material Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
描述了一种具有反相确定逻辑电路的装置,该反相确定逻辑电路用以根据由从PCMS存储设备读取的数据所表示的信息在PCMS存储设备的刷新期间最后是以反相还是非反相逻辑状态被写入到PCMS存储设备来确定传输所述数据的读取数据路径要被反相或不反相。
Description
技术领域
本发明大体上涉及计算机系统的领域。更特别地,本发明涉及用于实现包括非易失性存储器(memory)层的多级存储器层次结构的装置和方法。
背景技术
A. 当前存储器和储存器(storage)配置
现在,对于计算机创新的限制因素之一是存储器和储存器技术。在常规的计算机系统中,通常通过动态随机存取存储器(DRAM)来实现系统存储器(也称为主存储器、初级存储器、可执行存储器)。甚至当没有存储器读取或写入发生时,基于DRAM的存储器也消耗功率,这是因为其必须不断地对内部电容器进行再充电。基于DRAM的存储器是易失性的,这意味着一旦功率被移除则丢失存储在DRAM存储器中的数据。常规的计算机系统也依赖于多级高速缓存来改善性能。高速缓存是位于处理器和系统存储器之间的高速存储器,用以与存储器访问请求能够从系统存储器被服务相比更快地服务于存储器访问请求。通常利用静态随机存取存储器(SRAM)来实现此类高速缓存。高速缓存管理协议可以用来确保被最频繁地被访问的数据和指令被存储在高速缓存的级别之一内,从而减小存储器访问事务的数量并且改善性能。
关于大容量储存器(也称为二级储存器或者磁盘储存器),常规的大容量储存设备通常包括磁介质(例如,硬盘驱动)、光介质(例如,光盘(CD)驱动、数字通用盘(DVD)等等)、全息介质和/或大容量储存闪速存储器(例如,固态驱动(SSD)、可移除闪速驱动等等)。通常,这些储存设备被视为输入/输出(I/O)设备,这是因为它们由处理器通过实现各种I/O协议的各种I/O适配器来访问。这些I/O适配器和I/O协议消耗相当大量的功率并且能够具有对管芯(die)面积和平台的形状因数的显著影响。当未连接到永久的电源时具有有限电池寿命的便携式或者移动设备(例如,膝上型电脑、上网本、平板计算机、个人数字助理( PDA)、便携式媒体播放器、便携式游戏设备、数字摄像机、移动电话、智能电话、功能手机等等)可以包括通常经由低功率互连而耦合到处理器的可移除大容量储存设备(例如,嵌入式多媒体卡(eMMC)、安全数字(SD)卡)以及I/O控制器,以便满足活动和空闲功率预算。
关于固件存储器(诸如引导存储器(也称为BIOS闪速)),常规的计算机系统通常使用闪速存储设备来存储经常被读取但是很少(或从不)被写入的持久系统信息。例如,通常在闪速存储设备中存储由处理器在引导过程期间执行以初始化关键系统组件的初始指令(基本输入和输出系统(BIOS)映像)。当前在市场中可用的闪速存储设备通常具有有限的速度(例如,50
MHz)。该速度由用于读取协议的开销进一步降低(例如,2.5 MHz)。为了使BIOS执行速度加速,常规的处理器通常在引导过程的可预扩展固件接口(PEI)阶段期间对BIOS代码的部分进行高速缓存。处理器高速缓存的大小对PEI阶段中使用的BIOS代码(也称为“PEI BIOS代码”)的大小施加了限制。
B. 相变存储器(PCM)和相关技术
有时也称为相变随机存取存储器( PRAM或者PCRAM)、PCME、双向统一存储器,或者硫属化合物RAM( C-RAM)的相变存储器( PCM)是利用硫属化合物玻璃的独特行为的一种类型的非易失性计算机存储器。由于因电流的经过而产生的热量,硫属化合物玻璃能够在两种状态之间切换:晶体和非晶体。PCM的近期版本能够实现两种附加的不同状态。
PCM提供比闪速更高的性能,这是因为PCM的存储器元件能够更快速地切换,写入能够在不需要首先擦除单元的整个块的情况下进行(将单独的位改变为1或0),并且由于写入的退化较慢(PCM设备可以幸存大约1亿个写循环;PCM退化是由于编程期间的热膨胀、金属(和其他材料)迁移以及其他机制而造成的)。
附图说明
以下描述和附图用来说明本发明的实施例。在所述附图中:
图1图示了根据本发明的实施例的高速缓存和系统存储器布置;
图2图示了在本发明的实施例中采用的存储器和储存器层次结构;
图3图示了在其上可以实现本发明的实施例的计算机系统;
图4A图示了根据本发明的实施例的包括PCM的第一系统架构;
图4B图示了根据本发明的实施例的包括PCM的第二系统架构;
图4C图示了根据本发明的实施例的包括PCM的第三系统架构;
图4D图示了根据本发明的实施例的包括PCM的第四系统架构;
图4E图示了根据本发明的实施例的包括PCM的第五系统架构;
图4F图示了根据本发明的实施例的包括PCM的第六系统架构;
图4G图示了根据本发明的实施例的包括PCM的第七系统架构;
图4H图示了根据本发明的实施例的包括PCM的第八系统架构;
图4I图示了根据本发明的实施例的包括PCM的第九系统架构;
图4J图示了根据本发明的实施例的包括PCM的第十系统架构;
图4K图示了根据本发明的实施例的包括PCM的第十一系统架构;
图4L图示了根据本发明的实施例的包括PCM的第十二系统架构;
图4M图示了根据本发明的实施例的包括PCM的第十三系统架构;
图5示出现有技术PCMS设备刷新方法;
图6示出改善的PCMS设备刷新方法;
图7示出改善的PCMS设备刷新方式的方面;
图8示出能够实现改善的PCMS设备刷新方式的NVRAM控制器架构的实施例;
图9示出反相确定电路的实施例;以及
图10示出刷新控制电路的实施例。
具体实施方式
在以下描述中,阐述了诸如逻辑实现、操作码、指定操作数的方式、资源划分/共享/复制实现、系统组件的类型和相互关系、以及逻辑划分/集成选择之类的许多特定细节,以便提供对本发明的更透彻理解。然而,本领域技术人员将理解的是,本发明可以在不具有此类特定细节的情况下实施。在其他实例中,未详细地示出控制结构、门级电路和完全软件指令序列,以免使本发明晦涩难懂。利用所包括的描述,本领域普通技术人员将能够在不具有过度实验的情况下实现适当的功能。
在说明书中对“一个实施例”、“实施例”、“示例实施例”等等的提及指示所描述的实施例可以包括特定的特征、结构、或特性,但是每个实施例可能未必包括该特定的特征、结构、或特性。此外,此类短语未必指代相同的实施例。进而,当结合实施例来描述特定的特征、结构、或特性时,无论是否明确地描述,都主张在本领域技术人员的知识内,结合其它实施例来实现此类特征、结构、或特性。
在以下描述和权利要求中,可以使用术语“耦合”和“连接”及其衍生词。应该理解,这些术语不意为彼此的同义词。“耦合”被用来指示可以或可以不处于彼此直接物理或电气接触的两个或更多元件彼此进行协作或交互。“连接”被用来指示彼此耦合的两个或更多元件之间的通信的确立。
本文中有时使用加括号的文本和具有虚线边界(例如,大虚线、小虚线、点虚线、点)的块来图示将附加特征添加到本发明实施例的可选操作/组件。然而,此类注释不应视为意味着这些是仅有的选项或可选的操作/组件,和/或具有实线边界的块在本发明的某些实施例中不是可选的。
引言
存储器容量和性能需要随处理器核和诸如虚拟化之类的新的使用模型的不断增加的数量而持续增加。另外,存储器功率和成本已经分别地变为电子系统的总体功率和成本的重要成分。
本发明的一些实施例通过智能地在存储器技术之间细分性能需要和容量需要来解决以上挑战。该方式的焦点在于利用相对小量的相对更高速的存储器(诸如DRAM)来提供性能同时使用明显更便宜且更密集的非易失性随机存取存储器(NVRAM)来实现批量的系统存储器。以下所描述的本发明的实施例定义使得能够实现用于NVRAM的使用的层次结构存储器子系统组织的平台配置。如以下详细描述的,存储器层次结构中的NVRAM的使用也使得能够实现诸如扩展的引导空间和大容量储存器实现之类的新的使用。
图1图示了根据本发明的实施例的高速缓存和系统存储器布置。具体地,图1示出包括一组内部处理器高速缓存120、充当远存储器高速缓存的“近存储器”121(其可以包括一个或多个内部高速缓存106和外部高速缓存107-109这两者)以及“远存储器”122的存储器层次结构。在本发明的一些实施例中可以被用于“远存储器”的一种特定类型的存储器是非易失性随机存取存储器(“NVRAM”)。照此,以下提供NVRAM的概述,后面跟着远存储器和近存储器的概述。
A. 非易失性随机存取存储器(“NVRAM”)
对于NVRAM存在许多可能的技术选择,包括PCM、相变存储器与开关(PCMS)(后者是前者的更特定实现)、字节可寻址持久存储器(BPRAM)、储存类存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻式存储器(RRAM)、RESET(非晶体)单元、SET(设置)(晶体)单元、PCME、奥弗辛斯基存储器、铁电存储器(也称为聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称为自旋电子、SPRAM(自旋扭矩转换RAM)、STRAM(自旋隧道RAM)、磁阻式存储器、磁存储器、和磁随机存取存储器(MRAM))、以及半导体-氧化物-氮化物-氧化物-半导体(SONOS,也称为介电存储器)。
NVRAM具有下面的特性:
(1)即使在断开电源的情况下其也保持其内容,与被用于固态磁盘(SSD)中的闪速存储器类似,并且与易失性的SRAM和DRAM不同;
(2)比诸如SRAM和DRAM之类的易失性存储器更低的功耗;
(3)与SRAM和DRAM类似的随机访问(也称为可随机寻址);
(4)以比SSD中找到的闪速(一次仅能够重写和擦除一“块”——在大小方面最小为对于NOR闪速而言64千字节并且对于NAND闪速而言16千字节)更低的粒度级别(例如,字节级别)而可重写且可擦除;
(5)被用作系统存储器并且被分配系统存储器地址空间的全部或部分;
(6)能够通过使用事务协议(支持事务标识符(ID)以区分不同事务以使得能够无序地完成那些事务的协议)的总线而耦合到处理器,并且允许以小到足以支持将NVRAM作为系统存储器来操作的粒度级别(例如,诸如64或128字节的高速缓存线大小)的访问。例如,总线可以是通过其来运行与通常所使用的非事务协议相对的事务协议的存储器总线(例如,诸如DDR3、DDR4等的DDR总线)。作为另一个示例,总线可以是通常通过其来运行事务协议(本地事务协议)的总线,诸如PCI高速(PCIE)总线、桌面管理接口(DMI)总线、或利用事务协议和足够小的事务有效载荷大小(例如,诸如64或128字节的高速缓存线大小)的任何其它类型的总线;
(7)以下中的一个或多个:
a)比诸如闪速之类的非易失性存储器/储存器技术更快的写速度;
b)非常高的读速度(比闪速更快,并且接近或等价于DRAM读速度);
c)直接可写(不同于像被用于SSD中的闪速存储器那样在写数据之前需要擦除(利用1来改写));和/或
d)故障之前的更大数量的写(比被用于SSD中的引导ROM和闪速更多);和/或
如以上提到的,对比于一次必须重写和擦除一个完整的“块”的闪速存储器,在任何给定实现中NVRAM被访问的粒度级别可以依赖于特定的存储器控制器和特定的存储器总线或NVRAM耦合到的其它类型的总线。例如,在其中NVRAM被用作系统存储器的一些实现中,尽管固有能力是以字节的粒度被访问,但NVRAM也可以以高速缓存线(例如,64字节或128字节高速缓存线)的粒度被访问,原因在于高速缓存线是存储器子系统访问存储器的级别。因而,当在存储器子系统内部署NVRAM时,其可以以与被用于相同的存储器子系统中的DRAM(例如,“近存储器”)相同的粒度级别被访问。即使如此,由存储器控制器和存储器总线或其它类型的总线对NVRAM访问的粒度级别也小于由闪速所使用的块大小和I/O子系统的控制器和总线的访问大小的粒度级别。
NVRAM还可以包含耗损均衡算法以考虑以下事实:远存储器级别处的储存单元在多个写访问之后开始耗尽,特别是其中诸如在系统存储器实现中可以发生大量的写。因为高周期计数块最可能以该方式而耗尽,所以耗损均衡通过将高周期计数块与低周期计数块的地址进行交换而跨远存储器单元来散布写。注意,通常大多数地址交换对应用程序而言透明,原因在于其由硬件、较低级别的软件(例如,低级别驱动器或操作系统)、或该二者的组合来处理。
B. 远存储器
本发明的一些实施例的远存储器122利用NVRAM来实现,但不必限于任何特定的存储器技术。远存储器122根据其在存储器/储存器层次结构中的应用和/或其特性而可与其它指令和数据存储器/储存器技术区分。例如,远存储器122不同于:
1)静态随机访问存储器(SRAM),其可以被用于分别专用于处理器核101-104的级别0和级别1内部处理器高速缓存101a-b、102a-b、103a-b、和104a-b以及由处理器核所共享的更低级别的高速缓存(LLC)105;
2)动态随机访问存储器(DRAM),被配置为处理器100内部的高速缓存106(例如,在与处理器100相同的管芯上)和/或配置为处理器外部的一个或多个高速缓存107-109(例如,在与处理器100相同或不同的封装上);以及
3)闪速存储器/磁盘/光盘,应用为大容量储存器(未示出);以及
4)诸如闪速存储器或其它只读存储器(ROM)之类的存储器,应用为固件存储器(其能够涉及引导ROM、BIOS闪速、和/或TPM闪速)(未示出)。
远存储器122可以被用作可由处理器100直接寻址的指令和数据储存器,并且对比于应用为大容量储存器的闪速/磁盘/光盘而能够与处理器100充分地保持同步。此外,如以上所讨论的以及以下详细描述的,远存储器122可以被置于存储器总线上并且可以与继而与处理器100直接通信的存储器控制器直接通信。
远存储器122可以与其它指令和数据储存技术(例如,DRAM)组合以形成混合存储器(也称为共置一处的PCM和DRAM;第一级别存储器和第二级别存储器;FLAM(闪速和DRAM))。注意,包括PCM/PCMS的以上技术中的至少一些可以被用于作为系统存储器的代替或附加的大容量储存器,并且当以该方式被应用时,不需要是由处理器随机可访问、字节可寻址或直接可寻址的。
为了解释的方便,本申请的剩余部分的大多数将把“NVRAM”或者更具体地“PCM”或“PCMS”称为用于远存储器122的技术选择。照此,在以下讨论中,术语“NVRAM”、“PCM”、“PCMS”和远存储器可以可互换地使用。然而,如以上所讨论的,应该认识到不同的技术也可以被用于远存储器。同样,该NVRAM不限于用作远存储器。
C. 近存储器
“近存储器”121是被配置在远存储器122的前面的中间级别的存储器,其相对于远存储器具有更低的读/写访问延迟和/或更对称的读/写访问延迟(即,具有大致等价于写时间的读时间)。在一些实施例中,近存储器121具有比远存储器122明显更低的写延迟但类似(略低或相等)的读延迟;例如,近存储器121可以是诸如易失性随机访问存储器(VRAM)之类的易失性存储器并且可以包括DRAM或其它基于电容器的高速存储器。然而,注意,本发明的基本原理不限于这些特定的存储器类型。另外地,近存储器121比远存储器122可以具有相对更低的密度和/或制造起来可以更贵。
在一个实施例中,近存储器121被配置在远存储器122和内部处理器高速缓存120之间。在以下所描述的实施例的一些中,近存储器121被配置为一个或多个存储器侧高速缓存(MSC)107-109,以掩盖远存储器的性能和/或使用限制,包括例如写/读延迟限制和存储器退化限制。在这些实现中,MSC 107-109和远存储器122的组合以近似、等价于或超过仅将DRAM用作系统存储器的系统的性能级别来操作。如以下详细讨论的,尽管在图1中示出为“高速缓存”,近存储器121可以包括其中它执行作为执行高速缓存的角色的附加或代替的其它角色的模式。
近存储器121能够位于处理器管芯上(作为一个或多个高速缓存106)和/或位于处理器管芯外部(作为高速缓存107-109)(例如,在位于CPU封装上的单独的管芯上、在具有到CPU封装的高带宽链路的情况下位于CPU封装之外,例如,在存储器双列直插式存储器模块(DIMM)、立管/夹层、或计算机母板上)。近存储器121可以使用单个或多个高带宽链路(诸如,DDR或其它事务高带宽链路(如以下详细描述的))与处理器100进行通信而耦合。
示例性系统存储器分配方案
图1图示了在本发明的实施例中各级别的高速缓存101-109如何关于系统物理地址(SPA)空间116-119而配置。如提到的,该实施例包括具有一个或多个核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表示使用诸如DRAM之类的可以是配置于系统存储器模式(相对于高速缓存模式)中的近存储器的更高速的存储器来实现的地址范围。
图2图示了根据本发明的实施例的存储器/储存器层次结构140和用于近存储器144和NVRAM的操作的可配置模式。存储器/储存器层次结构140具有多个级别,包括:(1)高速缓存级别150,其可以包括处理器高速缓存150A(例如,图1中的高速缓存101A-105),并且可选地作为用于远存储器150B的高速缓存的近存储器(在如本文所描述的某些操作模式中),(2)系统存储器级别151,当近存储器存在时,其可以包括远存储器151B(例如,诸如PCM的NVRAM)(或当近存储器不存在时,仅包括作为系统存储器174的NVRAM),并且可选地作为系统存储器151A操作的近存储器(在如本文所描述的某些操作模式中),(3)大容量储存器级别152,其可以包括闪速/磁/光大容量储存器152B和/或NVRAM大容量储存器152A(例如,NVRAM 142的部分);以及(4)固件存储器级别153,其可以包括BIOS闪速170和/或BIOS NVRAM 172以及可选地可信平台模块(TPM) NVRAM 173。
如所指示的,近存储器144可以被实现成采用各种不同的模式来操作,包括:第一模式,其中其操作为用于远存储器的高速缓存(近存储器作为用于FM
150B的高速缓存);第二模式,其中其操作为系统存储器151A并且占用SPA空间的部分(有时被称为近存储器“直接访问”模式);以及诸如暂存存储器192或如写缓冲器193之类的一个或多个附加操作模式。在本发明的一些实施例中,近存储器是可划分的,其中每个分区可以并行地采用所支持的模式中的不同的一个来操作;并且不同的实施例可以支持由硬件(例如,熔丝、引脚)、固件、和/或软件来配置分区(例如大小、模式)(例如,通过MSC控制器124内的一组可编程范围寄存器,在其中例如可以存储不同的二进制码以标识每个模式和分区)。
图2中的系统地址空间A 190被用来图示当近存储器配置为用于远存储器150B的MSC时的操作。在该配置中,系统地址空间A 190表示整个系统地址空间(并且系统地址空间B 191不存在)。可替代地,系统地址空间B 191被用来示出当近存储器的全部或部分被指派系统地址空间的部分时的实现。在该实施例中,系统地址空间B 191表示被指派到近存储器151A的系统地址空间的范围,并且系统地址空间A 190表示指派到NVRAM 174的系统地址空间的范围。
另外,当充当用于远存储器150 B的高速缓存时,近存储器144可以采用在MSC控制器124的控制之下的各种子模式来操作。在这些模式的每个中,近存储器地址空间(NMA)在近存储器不形成系统地址空间的直接可寻址部分的意义上对软件而言是透明的。这些模式包括但不限于以下:
(1)回写高速缓存模式:在该模式中,充当FM高速缓存 150B的近存储器的全部或部分被用作用于NVRAM远存储器(FM)151B的高速缓存。当在回写模式中时,每次写操作初始地定向到作为用于FM 150B的高速缓存的近存储器(假设该写所定向到的高速缓存线存在于高速缓存中)。执行对应的写操作以仅当作为用于FM 150B的高速缓存的近存储器内的高速缓存线要由另一个高速缓存线所替代时,更新NVRAM FM 151B(对比于以下所描述的直写模式,其中将每次写操作被立即传播到NVRAM FM 151B)。
(2)近存储器绕过模式:在该模式中,所有的读和写绕过充当FM 高速缓存150B的NM并且直接去到NVRAM FM 151B。例如,当应用不是高速缓存友好的或需要待提交的数据以高速缓存线的粒度来存留时,可以使用这种模式。在一个实施例中,由处理器高速缓存150A和充当FM高速缓存150B的NM所执行的高速缓存彼此独立地操作。因而,可以在充当FM高速缓存150B的NM中对未在处理器高速缓存150A中被高速缓存的(并且在一些情况下可能未被允许在处理器高速缓存150A中进行高速缓存的)数据进行高速缓存,并且反之亦然。因而,可能在处理器高速缓存中被指定为“不可高速缓存”的某些数据可以在充当FM高速缓存150B的NM内进行高速缓存。
(3)近存储器读高速缓存写绕过模式:这是以上模式的变形,其中允许对来自NVRAM
FM 151B中的持久数据进行读高速缓存(即,在作为用于远存储器150B的高速缓存的近存储器中对持久数据进行高速缓存以用于只读操作)。当大多数持久数据是“只读”并且应用使用是高速缓存友好时,这是有用的。
(4)近存储器读高速缓存直写模式:这是近存储器读高速缓存写绕过模式的变形,其中除读高速缓存之外,写命中(write-hit)也被高速缓存。对作为用于FM 150B的高速缓存的近存储器的每次写都引起对FM
151B的写。因而,由于高速缓存的直写性质,所以仍然保证高速缓存线存留。
当在近存储器直接访问模式中动作时,作为系统存储器151A的近存储器的全部或部分对软件而言直接可见,并且形成SPA空间的部分。此类存储器可以完全在软件控制之下。此类方案可以创建用于软件的非统一存储器地址(NUMA)存储器域,其中其相对于NVRAM系统存储器174而从近存储器144获得更高的性能。通过示例并非限制的方式,此类使用可以被用于需要对某些数据结构非常快访问的某些高性能计算(HPC)和图形应用。
在可替代的实施例中,近存储器直接访问模式通过“钉扎(pinning)”近存储器中的某些高速缓存线(即,具有也并行地存储在NVRAM
142中的数据的高速缓存线)而实现。此类钉扎可以采用更大的多路且组关联的高速缓存来高效地完成。
图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存在/操作时,无论近存储器是否经由MSC控制124而充当用于FM的高速缓存(在一个或多个高速缓存101A-105之后并且在没有MSC控制124的情况下被直接访问));仅NVRAM系统存储器174(不作为远存储器,原因在于没有近存储器存在/操作;并且在没有MSC控制124的情况下被访问);NVRAM大容量储存器152A;BIOS NVRAM 172;以及TPM NVRAM 173。虽然不同的实施例可以规定采用不同方式的NVRAM模式,但图3描述了解码表333的使用。
图3图示了本发明的实施例可以实现在其上的示例性计算机系统300。计算机系统300包括处理器310和存储器/储存器子系统380,其中NVRAM 142被用于系统存储器、大容量储存器这二者以及可选地固件存储器。在一个实施例中,NVRAM
142包括由计算机系统300所使用的用于存储数据、指令、状态、以及其它持久和非持久信息的整个系统存储器和储存器层次结构。如先前所讨论的,NVRAM
142能够被配置成实现系统存储器、大容量储存器、和固件存储器、TPM存储器等的典型存储器和储存器层次结构中的角色。在图3的实施例中,NVRAM
142被分成FM 151B、NVRAM大容量储存器152A、BIOS NVRAM 173、以及TMP NVRAM 173。还考虑具有不同角色的储存层次,并且NVRAM
142的应用不限于以上所描述的角色。
通过示例的方式,描述了当作为用于FM 150B的高速缓存的近存储器处于回写高速缓存中时的操作。在一个实施例中,当作为用于FM
150B的高速缓存的近存储器处于以上所提到的回写高速缓存模式中时,读操作将首先到达MSC控制器124,其将执行查找以确定所请求的数据是否存在于充当用于FM
150B的高速缓存的近存储器中(例如,利用标签高速缓存342)。如果存在,那么其将通过I/O子系统115把数据返回到做出请求的CPU、核101-104或I/O设备。如果数据不存在,那么MSC控制器124将把该请求与系统存储器地址一起发送到NVRAM控制器332。NVRAM控制器332将使用解码表333来把系统存储器地址转换为NVRAM物理设备地址(PDA),并且把读操作定向到远存储器115B的该区域。在一个实施例中,解码表333包括NVRAM控制器332将其用来在系统存储器地址和NVRAM PDA之间转换的地址间接表(AIT)组件。在一个实施例中,AIT作为被实现以分布存储器访问操作并且从而减少NVRAM
FM 151B上的耗损的耗损均衡算法的部分而更新。可替代地,AIT可以是在NVRAM控制器332内存储的单独的表。
在从NVRAM FM 151B接收到所请求的数据时,NVRAM控制器332将把所请求的数据返回到将在充当FM高速缓存150B的MSC近存储器中存储所述数据的MSC控制器124,并且还通过I/O子系统115把所述数据发送到做出请求的处理器核101-104、或I/O设备。可以从充当FM高速缓存150B的近存储器直接服务针对该数据的后续请求,直到其由某一其它的NVRAM FM数据所替代。
如所提到的,在一个实施例中,存储器写操作首先还去到MSC控制器124,该MSC控制器124将该存储器写操作写到充当FM高速缓存150B的MSC近存储器中。在回写高速缓存模式中,当接收到写操作时,可以不将数据直接发送到NVRAM
FM 151B。例如,可以仅当充当在其中存储所述数据的FM高速缓存150B的MSC近存储器中的位置必须被重新用于为不同的系统存储器地址而存储数据时,将所述数据发送到NVRAM FM 151B。当这发生时,MSC控制器124注意到数据当前不在NVRAM FM 151B中并且因而将从充当FM高速缓存150B的近存储器中检索该数据并且把其发送到NVRAM控制器332。NVRAM控制器332查找用于系统存储器地址的PDA并且然后将数据写到NVRAM FM 151B。
在图3中,NVRAM控制器332被示出使用3个单独的线而连接到FM 151B、NVRAM大容量储存器152A、以及BIOS NVRAM 172。然而,这不必意味着存在将NVRAM控制器332连接到NVRAM 142的这些部分的3个单独的物理总线或通信通道。更确切地,在一些实施例中,公共存储器总线或其它类型的总线(诸如以下参考图4A-M所描述的那些)被用来将NVRAM控制器332通信耦合到FM 151B、NVRAM大容量储存器152A、以及BIOS NVRAM 172。例如,在一个实施例中,图3中的三个线表示总线,诸如存储器总线(例如,DDR3、DDR4等总线),通过其NVRAM控制器332实现事务协议来与NVRAM 142通信。NVRAM控制器332还可以通过支持本地事务协议的总线与NVRAM 142通信,诸如PCI高速总线、桌面管理接口(DMI)总线、或利用事务协议和足够小的事务有效载荷大小(例如,诸如64或128字节的高速缓存线大小)的任何其它类型的总线。
在一个实施例中,计算机系统300包括执行用于处理器310的中央存储器访问控制的集成存储器控制器(IMC)331,其耦合到:1)存储器侧高速缓存(MSC)控制器124,以控制对充当远存储器高速缓存150B的近存储器(NM)的访问;以及2)NVRAM控制器332以控制对NVRAM 142的访问。尽管在图3中被图示为单独的单元,但MSC控制器124和NVRAM控制器332可以逻辑地形成IMC 331的部分。
在所图示的实施例中,MSC控制器124包括指定用于充当远存储器高速缓存150B的NM的操作模式(例如,以上所描述的回写高速缓存模式、近存储器绕过模式等)的一组范围寄存器336。在所图示的实施例中,DRAM 144被用作用于充当用于远存储器150B的高速缓存的NM的存储器技术。响应于存储器访问请求,MSC控制器124可以确定(依赖于范围寄存器336中所指定的操作模式)是能够从充当用于FM 150B的高速缓存的NM服务该请求还是必须向NVRAM控制器332发送该请求,所述MSC控制器124然后可以从NVRAM 142的远存储器(FM)部分151B服务该请求。
在其中NVRAM 142利用PCMS来实现的实施例中,NVRAM控制器332是利用与PCMS技术一致的协议来执行访问的PCMS控制器。如先前所讨论的,PCMS存储器固有地能够以字节的粒度被访问。虽然如此,NVRAM控制器332可以以诸如高速缓存线(例如,64位或128位高速缓存线)或与存储器子系统一致的任何其它级别的粒度之类的较低级别的粒度来访问基于PCMS的远存储器151B。本发明的基本原理不限于用于访问基于PCMS的远存储器151B的任何特定级别的粒度。然而通常,当基于PCMS的远存储器151B被用来形成系统地址空间的部分时,粒度级别将高于仅能够以“块”的级别来执行重写和擦除操作的传统地被用于诸如闪速之类的其它非易失性储存技术的粒度级别(在大小方面最小为对于NOR闪速而言64千字节并且对于NAND闪速而言16千字节)。
在所图示的实施例中,NVRAM控制器332能够从解码表333读配置数据来确立先前所描述的用于NVRAM
142的模式、大小等,或可替代地,能够依赖于从IMC 331和I/O子系统315所传递的解码结果。例如,在制造时或在现场中,计算机系统300能够对解码表333编程,以将NVRAM 142的不同区域标记为除其它之外尤其是系统存储器、经由SATA接口而暴露的大容量储存器、经由USB单批量传输(BOT)接口而暴露的大容量储存器、支持TPM储存的加密储存器。访问通过其被引向NVRAM设备142的不同分区的方式是经由解码逻辑。例如,在一个实施例中,每个分区的地址范围被定义在解码表333中。在一个实施例中,当IMC 331接收到访问请求时,对请求的目标地址进行解码以揭露请求是定向到存储器、NVRAM大容量储存器、还是I/O。如果其是存储器请求,IMC 131和/或MSC控制器124进一步根据目标地址来确定该请求是定向到作为用于FM
150B的高速缓存的NM还是到FM
151B。对于FM 151B访问而言,该请求被转发到NVRAM控制器332。如果该请求定向到I/O(例如,非储存和储存I/O设备),那么IMC 131将该请求传递到I/O子系统115。I/O子系统115进一步对该地址解码以确定该地址是指向NVRAM大容量储存器152A、BIOS NVRAM 172还是其它非储存或储存I/O设备。如果该地址指向NVRAM大容量储存器152A或BIOS NVRAM 172,那么I/O子系统115将该请求转发到NVRAM控制器332。如果该地址指向TMP NVRAM 173,那么I/O子系统115将该请求传递到TPM 334以执行安全的访问。
在一个实施例中,被转发到NVRAM控制器332的每个请求伴随着指示访问的类型的属性(也称为“事务类型”)。在一个实施例中,NVRAM控制器332可以模拟用于所请求的访问类型的访问协议,以使得平台的其余部分仍不知道由存储器和储存器层次结构中的NVRAM
142所执行的多个角色。在可替代的实施例中,NVRAM控制器332可以执行对NVRAM 142的存储器访问而不管其是何事务类型。要理解的是,解码路径能够与以上所描述的不同。例如,IMC 331可以对访问请求的目标地址进行解码并且确定其是否定向到NVRAM 142。如果其定向到NVRAM
142,那么IMC 131根据解码表333生成属性。基于该属性,IMC 131然后将请求转发到适当的下游逻辑(例如,NVRAM控制器332和I/O子系统315)以执行所请求的数据访问。在又另一个实施例中,如果对应的属性未从上游逻辑(例如,IMC
331和I/O子系统315)传递下去,那么NVRAM控制器332可以对目标地址进行解码。也可以实现其它解码路径。
诸如本文所描述的新存储器架构的出现提供了很多新的可能性。尽管以下进一步以大得多的长度来讨论,但就在以下快速地突显了这些可能性中的一些。
根据一个可能的实现,NVRAM 142充当用于系统存储器中的传统DRAM技术的全部的替代或补充。在一个实施例中,NVRAM 142表示第二级系统存储器的引入(例如,系统存储器可以视为具有包括作为高速缓存150B的近存储器的第一级系统存储器(DRAM设备340的部分)和包括远存储器(FM)151B的第二级系统存储器(NVRAM 142的部分)。
根据一些实施例,NVRAM 142充当用于闪速/磁/光大容量储存器152B的全部的替代或补充。如先前所描述的,在一些实施例中,即使NVRAM 152A能够字节级别可寻址,NVRAM控制器332仍然可以依赖于实现而采用多个字节的块(例如,64千字节、128千字节等)来访问NVRAM大容量储存器152A。由NVRAM控制器332从NVRAM大容量储存器152A访问数据的特定方式可以对由处理器310所运行的软件而言透明。例如,即使可以与闪速/磁/光大容量储存器152A不同地访问NVRAM大容量储存器152A,操作系统仍然可以将NVRAM大容量储存器152A视为标准大容量储存设备(例如,串行ATA硬盘驱动或其它标准形式的大容量储存设备)。
在其中NVRAM大容量储存器152A充当用于闪速/磁/光大容量储存器152B的全部替代的实施例中,不必使用储存器驱动器进行块可寻址储存器访问。储存器驱动器开销从储存器访问中的移除能够提高访问速度并且节约功率。在其中期望NVRAM大容量储存器152A对于OS和/或应用而言表现为块可访问且不可与闪速/磁/光大容量储存器152B区分的可替代实施例中,模拟的储存器驱动器能够被用来向软件暴露块可访问接口(例如,通用串行总线(USB)单批量传输(BOT)1.0;串行高级技术附件(SATA)3.0等)以供访问NVRAM大容量储存器152A。
在一个实施例中,NVRAM 142充当用于诸如BIOS闪速362和TPM闪速372之类的固件存储器的全部的替代或补充(在图3中利用点线来图示以指示其是可选的)。例如,NVRAM 142可以包括BIOS
NVRAM 172部分以补充或替代BIOS闪速362,并且可以包括TPM NVRAM 173部分以补充或替代TPM 闪速372。固件存储器还能够存储由TPM 334用来保护敏感系统信息(例如,加密密钥)的系统持久状态。在一个实施例中,将NVRAM 142用于固件存储器消除了第三方闪速部件存储对系统操作而言关键的代码和数据的需要。
然后继续图3的系统的讨论,尽管在图3中为了简单而示出了单个处理器310,但在一些实施例中,计算机系统100的架构可以包括多个处理器。处理器310可以是任何类型的数据处理器,包括通用或专用中央处理单元(CPU)、专用集成电路(ASIC)或数字信号处理器(DSP)。例如,处理器310可以是通用处理器,诸如CoreTMi3、i5、i7、2双核和四核、XeonTM、或ItaniumTM处理器,所有的这些都可从加利福尼亚州圣克拉拉市的因特尔公司获得。可替代地,处理器310可以来自另一个公司,诸如加拿大森尼维尔市的ARM持股有限公司、加拿大森尼维尔市的MIPS科技公司等。处理器310可以是专用处理器,诸如,例如网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入处理器等。处理器310可以在被包括在一个或多个封装内的一个或多个芯片上实现。处理器310可以属于和/或可以使用许多工艺技术(诸如,例如BiCMOS、COMS、或NMOS)中的任何一个而实现在一个或多个衬底上。在图3中所示出的实施例中,处理器310具有片上系统(SOC)配置。
在一个实施例中,处理器310包括集成图形单元311,其包括用于运行诸如3D或2D图形命令之类的图形命令的逻辑。虽然本发明的实施例不限于任何特定的集成图形单元311,但在一个实施例中,图形单元311能够运行行业标准图形命令,诸如由OpenGL和/或Direct X应用编程接口(API)(例如,OpenGL 4.1和Direct X 11)所规定的那些。
再次,尽管为了清楚起见,在图3中图示了单个核,但处理器310也可以包括一个或多个核101-104。在许多实施例中,一个或多个核101-104包括内部功能块,诸如一个或多个执行单元、回收单元、一组通用和特定寄存器等。如果一个或多个核是多线程或超线程的,那么每个硬件线程也可以视为“逻辑”核。核101-104可以在架构和/或指令集方面是同质或异质的。例如,一些核可以是有序的,而其它是无序的。作为另一个示例,两个或更多的核可以能够运行相同的指令集,而其它可以仅能够运行该指令集的子集或不同的指令集。
处理器310还可以包括可以被实现为SRAM和/或DRAM的一个或多个高速缓存,诸如高速缓存313。在未示出的许多实施例中,不同于高速缓存313的附加的高速缓存被实现成使得多个级别的高速缓存存在于一个或多个核101-104中的执行单元与存储设备150B和151B之间。例如,该组共享高速缓存单元可以包括高级高速缓存(诸如级别1(L1)高速缓存)、中级高速缓存(诸如级别2(L2)、级别3(L3)、级别4(L4)、或其它级别的高速缓存、(LLC)、和/或其不同的组合。在不同的实施例中,高速缓存313可以采用不同的方式来分派,并且在不同的实施例中可以是许多不同的大小之一。例如,高速缓存313可以是8兆字节(MB)高速缓存、16MB高速缓存等。另外地,在不同的实施例中,高速缓存可以是直接映射的高速缓存、全关联的高速缓存、多路且组关联的高速缓存、或具有另一种类型的映射的高速缓存。在包括多个核的其它实施例中,高速缓存313可以包括在所有核之间共享的一个大部分,或者可以被分成若干单独功能片(例如,每个核一片)。高速缓存313还可以包括所有核之间共享的一个部分以及对于每核而言单独功能片的若干其它部分。
处理器310还可以包括归属代理314,其包括协调和操作一个或多个核101-104的那些组件。归属代理单元314可以包括例如功率控制单元(PCU)和显示单元。PCU可以是或包括对于调节一个或多个核101-104和集成图形单元311的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
如所提到的,在一些实施例中,处理器310包括集成存储器控制器(IMC)331、近存储器高速缓存(MSC)控制器、以及NVRAM控制器332,所有这些能够在与处理器310相同的芯片上、或在连接到处理器310的单独的芯片和/或封装上。DRAM设备144可以在与IMC 331和MSC控制器124相同的芯片或不同的芯片上;因而,一个芯片可以具有处理器310和DRAM设备144;一个芯片可以具有处理器310并且另一个具有DRAM设备144以及(这些芯片可以在相同或不同的封装中);一个芯片可以具有一个或多个核101-104并且另一个具有IMC 331、MSC控制器124和DRAM 144(这些芯片可以在相同或不同的封装中);一个芯片可以具有一个或多个核101-104,另一个具有IMC 331和MSC控制器124,并且另一个具有DRAM 144(这些芯片可以在相同或不同的封装中)等。
在一些实施例中,处理器310包括耦合到IMC 331的I/O子系统115。I/O子系统115使得能够实现处理器310与以下串行或并行I/O设备之间的通信:一个或多个网络336(诸如,局域网、广域网、或因特网)、储存I/O设备(诸如,闪速/磁/光大容量储存器152B、BIOS闪速362、TPM闪速372)、以及一个或多个非储存I/O设备337(诸如,显示器、键盘、扬声器等)。I/O子系统115可以包括平台控制器中枢(PCH)(未示出),其进一步包括若干I/O适配器338和其它I/O电路以提供对储存及非储存I/O设备和网络的访问。为了实现此,I/O子系统115可以具有用于所利用的每个I/O协议的至少一个集成I/O适配器338。I/O子系统115能够处于与处理器310相同的芯片上、或者连接到处理器310的单独的芯片和/或封装上。
I/O适配器338将处理器310内所利用的主机通信协议转换为与特定的I/O设备兼容的协议。对于闪速/磁/光大容量储存器152B而言,I/O适配器338可以转换的协议中的一些除其它之外尤其包括外围组件互连(PCI)-高速(PCI-E),3.0、USB,3.0、SATA,3.0、小型计算机系统接口(SCSI)、超级-640;以及电气与电子工程师协会(IEEE)1394“火线”。对于BIOS闪速362而言,I/O适配器338可以转换的协议中的一些除其它之外尤其包括串行外围接口(SPI)、微总线。另外地,可以存在一个或多个无线协议I/O适配器。无线协议的示例除其它之外尤其被用于个域网,诸如IEEE 802.15和蓝牙,4.0;无线局域网,诸如基于IEEE 802.11的无线协议;和蜂窝协议。
在一些实施例中,I/O子系统115耦合到TPM控制334以控制对诸如安全数据、加密密钥、平台配置信息等之类的系统持久状态的访问。在一个实施例中,这些系统持久状态被存储在TMP
NVRAM 173中并且经由NVRAM控制器332被访问。
在一个实施例中,TPM 334是具有密码功能的安全微控制器。TPM 334具有多个信任相关的能力;例如,用于确保由TPM所保护的数据仅可用于相同的TPM的“密封”能力。TPM 334能够使用其加密能力来保护数据和密钥(例如,秘密)。在一个实施例中,TPM
334具有允许其认证硬件设备和平台的唯一且秘密的RSA密钥。例如,TPM 334能够验证:寻求对计算机系统300中存储的数据的访问的系统是所预期的系统。TPM 334还能够报告平台(例如,计算机系统300)的完整性。这允许外部资源(例如,网络上的服务器)确定平台的可信性,但不防止由用户对平台的访问。
在一些实施例中,I/O子系统315还包括管理引擎(ME)335,其是允许系统管理员监视、维护、更新、升级、和修复计算机系统300的微处理器。在一个实施例中,系统管理员能够通过经由网络336通过ME 335来编辑解码表333的内容而远程地配置计算机系统300。
为了解释的方便,本申请的剩余部分有时将NVRAM 142称为PCMS设备。PCMS设备包括非易失性的多层(垂直堆叠的)PCM单元阵列,具有低功耗,并且在位级别可修改。照此,在以下讨论中,术语“NVRAM设备”和“PCMS设备”可以可互换地使用。然而应该认识到,如以上所讨论的,除PCMS之外的不同的技术也可以被用于NVRAM 142。
应该理解,即使计算机系统的处理器不具有处理器310的所有以上所描述的组件,或者具有比处理器310更多的组件,该计算机系统也能够将NVRAM 142用于系统存储器、大容量储存器、固件存储器和/或其它存储器和储存器目的。
在图3中所示出的特定的实施例中,MSC控制器124和NVRAM控制器332位于与处理器310相同的管芯或封装(被称为CPU封装)上。在其它实施例中,MSC控制器124和/或NVRAM控制器332可以位于管芯外或CPU封装外,通过诸如存储器总线(像DDR总线(例如,DDR3、DDR4等))、PCI高速总线、桌面管理接口(DMI)总线、或任何其它类型的总线之类的总线而耦合到处理器310或CPU封装。
示例性PCM总线和封装配置
图4A-M图示了其中以不同的方式来配置和封装处理器、近存储器和远存储器的各种不同的部署。特别地,图4A-M中图示的一系列平台存储器配置使得能够使用诸如PCM技术或更具体地是PCMS技术之类的新的非易失性系统存储器。
虽然跨图4A-N中的多个图使用一些相同的附图标记,但是这未必意味着由那些附图标记标识的结构总是相同的。例如,虽然在若干图中相同的附图标记用来标识集成存储器控制器(IMC)331和CPU 401,但可以在不同的图中可以不同地实现这些组件。这些差异中的一些不是突显的,这是因为他们与理解本发明的基础原理无关。
虽然以下描述若干不同的系统平台配置方式时,但这些方式落入两个宽泛的类别中:分离架构和统一架构。简言之,在分离架构方案中,存储器侧高速缓存(MSC)控制器(例如,位于处理器管芯中或位于CPU封装中的管芯上)拦截所有的系统存储器请求。存在退出CPU封装以耦合到近存储器和远存储器的从该控制器“向下游流动”的两个单独的接口。对于特定类型的存储器来调整每个接口,并且能够在性能和容量方面独立地缩放每个存储器。
在统一架构方案中,单个存储器接口退出处理器管芯或CPU封装,并且所有的存储器请求被发送给该接口。将MSC控制器与近和远存储器子系统一起整合在该单个接口上。该存储器接口必须被调整以满足处理器的存储器性能需要并且必须至少支持事务性、无序的协议,这是因为PCMS设备可能不是有序地处理读取请求。根据以上通用的类别,可以采用以下特定平台配置。
以下描述的实施例包括各种类型的总线/通道。在本文,同义地使用术语“总线”和“通道”。每个DIMM插槽的存储器通道的数量将依赖于在计算机系统中使用的特定CPU封装(其中一些CPU封装例如支持每个插槽三个存储器通道)。
另外地,在使用DRAM的以下描述的实施例中,事实上可以使用任何类型的DRAM存储器通道,以示例且非限制的方式,包括DDR通道(例如,DDR3、DDR4、DDR5等等)。因此,虽然由于DDR在行业中的广泛接受、结果所得的价格点等等是有利的,但本发明的基础原理不限于任何特定类型的DRAM或易失性存储器。
图4A图示了分离架构的一个实施例,其包括操作为充当用于CPU封装401(在处理器管芯上或者在单独的管芯上)中的FM的高速缓存的近存储器(即,MSC)的一个或多个DRAM设备403-406、和诸如充当远存储器的驻存于DIMM 450-451上的PCM存储器之类的一个或多个NVRAM设备。CPU封装401上的高带宽链路407将单个或多个DRAM设备403-406互连到托管集成存储器控制器(IMC)331和MSC控制器124的处理器310。尽管在图4A和以下描述的其他图中被图示为单独的单元,但在一个实施例中MSC控制器124可以被集成在存储器控制器331内。
DIMM
450-451使用DDR槽位和电连接,其定义具有DDR地址、数据和控制线和电压的DDR通道440(例如,如由电子器件工程联合委员会(JEDEC)所定义的DDR3或DDR4标准)。DIMM 450-451上的PCM设备提供该分离架构的远存储器容量,其中至CPU封装401的DDR通道440能够承载DDR和事务性协议这两者。与处理器310或CPU封装内的其他逻辑(例如,IMC 331或 MSC控制器124)发送命令和接收立即响应所采用的DDR协议对比,用来与PCM设备进行通信的事务性协议允许CPU 401发布每个由唯一事务ID所标识的一系列事务。由进行接收的PCM
DIMM之一上的PCM控制器(其将响应发送回CPU封装401)潜在无序地服务命令。处理器310或CPU封装401内的其他逻辑通过其事务ID(其与响应一起被发送)来标识每个事务响应。以上配置允许系统支持标准的基于DDR
DRAM的DIMM(通过DDR电连接使用DDR协议)和基于PCM的DIMM配置(通过相同的DDR电连接使用事务性协议)这两者。
图4B图示了分离架构,其使用通过DDR通道440耦合的基于DDR DRAM的DIMM 452来形成充当MSC的近存储器。处理器310托管存储器控制器331和MSC控制器124。诸如PCM存储设备之类的NVRAM设备驻存于基于PCM的DIMM 453上,所述DIMM 453使用CPU封装401之外的附加的DDR通道442上的DDR槽位和电连接。基于PCM的DIMM 453提供该分离架构的远存储器容量,其中至CPU封装401的DDR通道442基于DDR电连接并且能够承载DDR和事务性协议这两者。这允许系统被配置有变化数量的DDR DRAM DIMM 452(例如,DDR4 DIMM)和PCM DIMM 453,以实现期望的容量和/或性能点。
图4C图示了在CPU封装401(在处理器管芯上或者在单独的管芯上)上托管充当存储器侧高速缓存(MSC)的近存储器403-406的分离架构。如分离架构所定义的,CPU封装上的高带宽链路407用来将单个或多个DRAM设备403-406互连到托管存储器控制器331和MSC控制器124的处理器310。诸如PCM存储设备的NVRAM驻存于使用高速PCI电连接和通过高速PCI总线454的高速PCI协议或不同的事务性协议的高速PCI卡或立管455上。高速PCI卡或立管455上的PCM设备提供该分离架构的远存储器容量。
图4D是使用基于DDR DRAM的DIMM 452和DDR通道440来形成充当MSC的近存储器的分离架构。处理器310托管存储器控制器331和MSC控制器124。诸如PCM存储设备455的NVRAM驻存于使用高速PCI电连接和通过高速PCI链路454的高速PCI协议或不同的事务性协议的高速PCI卡或立管上。高速PCI卡或立管455上的PCM设备提供该分离架构的远存储器容量,其中CPU封装401之外的存储器通道接口提供用于DDR DRAM DIMM
452的多个DDR通道440。
图4E图示了统一架构,其托管充当MSC的近存储器以及使用高速PCI电连接和通过高速PCI总线454的高速PCI协议或不同的事务性协议的高速PCI卡或立管456上的诸如PCM的远存储器NVRAM这两者。处理器310托管集成的存储器控制器331,但是在该统一架构情况下,MSC控制器124与DRAM近存储器和NVRAM远存储器一起驻存于卡或立管456上。
图4F图示了统一架构,其使用DDR通道457在DIMM 458上托管充当MSC的近存储器以及诸如PCM的远存储器NVRAM这两者。该统一架构中的近存储器包括每个DIMM
458上的DRAM,从而对于相同的DIMM
458上的形成该特定DIMM的远存储器的PCM设备充当存储器侧高速缓存。MSC控制器124与近和远存储器一起驻存于每个DIMM 458上。在该实施例中,在CPU封装之外提供DDR总线457的多个存储器通道。该实施例的DDR总线457通过DDR电连接实现事务性协议。
图4G图示了混合分离架构,由此MSC控制器124驻存于处理器310上,并且近存储器和远存储器接口这两者共享相同的DDR总线410。该配置使用基于DRAM的DDR DIMM 411a作为充当MSC的近存储器,其中基于PCM的DIMM 411b(即,远存储器)驻存于DDR总线410的相同的存储器通道上,从而使用DDR槽位和NVRAM(诸如,PCM存储设备)。该实施例的存储器通道同时承载DDR和事务性协议这两者以分别对近存储器和远存储器DIMM (411a和411b)进行寻址。
图4H图示了统一架构,其中充当存储器侧高速缓存的近存储器461a采用基于DRAM的DDR DIMM的形式驻存于夹层或立管461上。存储器侧高速缓存(MSC)控制器124位于立管的DDR和PCM控制器460中,其可以具有连接到夹层/立管461上的DDR DIMM通道470并且通过诸如差分存储器链路之类的一个或多个高性能互连462互连到CPU的两个或更多的存储器通道。相关联的远存储器461b位于相同的夹层/立管461上,并且由使用DDR通道470并且填充有NVRAM(诸如PCM设备)的DIMM所形成。
图4I图示了能够被用作对通过DDR总线471连接到其DDR存储器子系统上的CPU封装401的DDR存储器子系统和DIMM 464的存储器容量扩展的统一架构。对于该配置中的附加的基于NVM的容量而言,充当MSC的近存储器采用基于DRAM的DDR DIMM 463a的形式驻存于夹层或立管463上。MSC控制器124位于立管的DDR和PCM控制器460中,其可以具有连接到夹层/立管上的DDR DIMM通道470并且通过诸如差分存储器链路之类的一个或多个高性能互连462互连到CPU的两个或更多的存储器通道。相关联的远存储器463b位于相同的夹层/立管463上,并且由使用DDR通道470并且填充有NVRAM(诸如PCM设备)的DIMM 463b所形成。
图4J是其中充当存储器侧高速缓存(MSC)的近存储器采用DRAM的形式驻存于每个和每DIMM 465上的统一架构。DIMM 465在诸如差分存储器链路之类的一个或多个高性能互连/信道462(其将CPU封装401与位于DIMM上的MSC控制器124耦合)上。相关联的远存储器位于相同的DIMM
465上并且由NVRAM(诸如PCM设备)所形成。
图4K图示了其中充当MSC的近存储器采用DRAM的形式驻存于每个DIMM 466上的统一架构。DIMM在将CPU封装401与位于DIMM上的MSC控制器124连接的一个或多个高性能互连470上。相关联的远存储器位于相同的DIMM 466上并且由NVRAM(诸如PCM设备)形成。
图4L图示了分离架构,其使用DDR总线471上的基于DDR DRAM的DIMM464以形成充当MSC的必要的近存储器。处理器310托管集成的存储器控制器331和存储器侧高速缓存控制器124。诸如PCM存储器的NVRAM形成驻存于卡或立管467上的远存储器,其使用与CPU封装401进行通信的使用事务性协议的高性能互连468。托管远存储器的卡或立管467托管能够对连接在该立管上的多个基于PCM的存储器或多个基于PCM的DIMM进行控制的单个缓冲器/控制器。
图4M图示了可以使用卡或立管469上的DRAM来形成充当MSC的必要的近存储器的统一架构。诸如PCM存储设备的NVRAM形成也驻存于卡或立管469上的远存储器,其使用至CPU封装401的高性能互连468。托管远存储器的卡或立管469托管能够对该立管469上的多个基于PCM的设备或多个基于PCM的DIMM进行控制的单个缓冲器/控制器,并且还集成存储器侧高速缓存控制器124。
在以上描述的一些实施例中,诸如在图4G中图示的,DRAM
DIMM 411a和基于PCM的DIMM
411b驻存于相同的存储器通道上。因此,相同集合的地址/控制和数据线用来将CPU连接到DRAM和PCM存储器这两者。为了降低通过CPU网状互连的数据业务量,在一个实施例中,具有基于PCM的DIMM的公用存储器通道上的DDR DIMM被配置为充当用于存储在基于PCM的DIMM中的数据的单独的MSC。在此类配置中,存储在基于PCM的DIMM中的远存储器数据仅仅被高速缓存在相同的存储器通道内的DDR
DIMM近存储器中,从而使存储器事务局部化到该特定存储器通道。
另外地,为了实现以上实施例,可以在不同的存储器通道之间逻辑地细分系统地址空间。例如,如果存在四个存储器通道,那么可以给每个存储器通道分配系统地址空间的¼。如果每个存储器通道被提供有一个基于PCMS的DIMM和一个DDR DIMM,那么DDR DIMM可以被配置为充当用于系统地址空间的该¼部分的MSC。
系统存储器和大容量储存设备的选择可以依赖于在其上采用本发明的实施例的电子平台的类型。例如,在个人计算机、平板计算机、笔记本计算机、智能电话、移动电话、功能电话、个人数字助理(PDA)、便携式媒体播放机、便携式游戏设备、游戏控制台、数字式摄像机、交换机、集线器、路由器、机顶盒、数字视频记录器,或具有相对小的大容量储存需要的其他设备中,可以仅仅使用NVRAM大容量储存器152A或结合闪速/磁/光大容量储存器152B使用NVRAM大容量储存器152A来实现大容量储存器。在具有相对大的大容量储存需要的其他电子平台(例如,大规模的服务器)中,可以使用磁储存器(例如,硬盘驱动)或磁储存器、光储存器、全息照相储存器、大容量储存闪速存储器和NVRAM大容量储存器152A的任何组合来实现大容量储存器。在此类情况下,负责储存的系统硬件和/或软件可以实现各种智能持久储存分配技术以采用高效或以其他方式有用的方式在FM 151B/NVRAM储存器152A与闪速/磁/光大容量储存器152B之间分配持久程序代码和数据的块。
例如,在一个实施例中,被高供电的服务器被配置有近存储器(例如,DRAM)、PCMS设备、以及用于大量持久储存的磁大容量储存设备。在一个实施例中,笔记本计算机被配置有近存储器和执行远存储器和大容量储存设备这两者的角色的PCMS设备(即,其被逻辑分为执行如图3中所示的这些角色)。家庭或办公室台式计算机的一个实施例与笔记本计算机类似地配置,但是还可以包括一个或多个磁储存设备以提供大量的持久储存能力。
平板计算机或蜂窝电话设备的一个实施例被配置有PCMS存储器但是潜在地没有近存储器并且没有附加的大容量储存器(以供成本/功率节约)。然而,平板计算机/电话可以被配置有诸如闪速或PCMS存储棒之类的可移除大容量储存设备。
可以如上所描述地配置各种其他类型的设备。例如,可以采用与以上所描述的平板计算机/电话相类似的方式来配置便携式媒体播放机和/或个人数字助理(PDA),可以采用与台式或膝上型计算机相类似的方式来配置游戏控制台。可以类似地被配置的其他设备包括数字摄像机、路由器、机顶盒、数字视频记录器、电视、和汽车。
高效PCMS刷新机制
“单元”或“存储单元”被理解为能够存储单个位的储存电路。特定PCMS存储器地址通常调用多个单元来以多位“字”的形式来实现从/到PCMS存储器的读取/写入。例如,如果利用单个地址来访问64位字,则地址调用64个不同的存储单元。需要刷新PCMS存储单元以便保持其数据。目前,处于“1”状态的PCMS单元仅仅通过读取其而被刷新,而处于“0”状态的PCMS单元通过使该单元写入“1”状态(该单元然后被重写回到“0”状态因此其保存正确数据)而被刷新。
图5示出用于PCMS存储器的现有技术PCMS刷新循环方法的示例。根据在图5中观察的方法,在适当的刷新时间,针对与一组地址相关联的存储单元发起接下来的刷新循环501。开始接下来的刷新循环的适当的刷新时间可以例如基于设置的时间段的流逝(周期性刷新)、该地址组中的地址在预确立的时间段内未被访问的观察结果(按需进行刷新)等等。
针对地址组中的第一地址的刷新操作由以下构成:在地址处读取数据502(其将从与该地址的数据字相关联的每个单元读取数据)、对该数据执行误差检测和校正503、以及使所有的该地址的单元写入“1”状态504。作为最后的步骤,根据ECC过程503而理解成处于“0”状态的那些位的单元然后被写入成“0”状态505。针对地址组中的每个地址重复506该过程,直到地址组内的所有地址都使其对应的单元被刷新507,在该点处完成了针对该地址组的刷新循环(或简单地是“刷新循环”)。
图6示出改善的PCMS刷新循环方法。像图5的过程,在适当的刷新时间,针对与一组地址相关联的存储单元发起接下来的刷新循环601。再次,开始接下来的刷新循环的适当的刷新时间可以例如基于设置的时间段的流逝(周期性刷新)、该地址组中的地址在预确立的时间段内未被访问的观察结果(按需进行刷新)等等。
为了示例假定针对地址组的数据以非反相的形式被存储在PCMS存储器中(也就是说,如存储在存储器中的数据是逻辑上正确的)602。照此,针对地址组中的第一地址的刷新操作由以下构成:在地址处读取数据字并且不对所读取的数据进行反相603,以及仅仅对所读取的数据字执行误差检测和校正604。然后针对数据字计算CRC值。数据字和CRC值然后被逻辑反相并且被回写到PCMS存储器606中。本文,反相605和回写606导致存储在PCMS存储器中的数据处于反相状态。如以下更全面地描述的,由NVRAM控制器记住数据字是以反相状态还是非反相状态被存储在PCMS存储器中。
注意如与图5的现有技术过程相比,被花费以刷新地址的存储单元的总体时间方面的改善。具体地,在图5的现有技术过程中,存储逻辑0的数据单元被访问三次(读取502;利用“1”进行改写504;以及再次利用“0”进行改写505)。相比之下,如在图6的过程中所观察的,被刷新地址作为目标的所有的数据单元(包括存储“0”的单元)通过如下的方式被访问仅两次:i)读取步骤603;和ii)利用反相的数据进行回写606。值得注意地,存储“1”的单元被合适地刷新(读取步骤602),并且,存储“0”的单元被合适地刷新(反相步骤605将逻辑“0”反相为“1”,并且“1”被写入到单元中606)。
然后,针对地址组中的每个地址重复607、608用于以非反相形式被最后写入602的数据的过程603-606,直到地址组中的所有地址被刷新(即,刷新循环完成)607。当刷新循环完成时,NVRAM控制器记录用于地址组的数据已经以反相状态被写入609并且等待刷新数据的接下来的适当时间601。在适当的接下来的刷新时间601,由于两个刷新循环之间的存储在PCMS存储器中的数据的形式方面的差异而执行不同序列的步骤610-613。具体地,回想在刚刚执行的刷新循环之前数据原先以非反相形式被存储603,步骤606处的反相使所有数据以反相形式被存储,以用于接下来到来的刷新循环。照此,当最后的写入状态被反相614时,应用步骤610-613。
参考图6,在步骤610处,从存储器602读取用于地址组中的第一地址的数据字。本文,因为数据字以反相形式被存储在PCMS存储器中614,在执行误差检测和校正611之前将所读取的数据反相(因此误差检测和恢复能够发生在“逻辑正确的”数据上)。在执行误差检测和校正611之后,针对数据计算CRC信息612。在不具有任何反相步骤的情况下,数据(和CRC)然后被回写到存储器613。因此,这次通过刷新循环,数据以非反相形式而不是反相形式被回写到PCMS存储器(如在先前的刷新循环中那样)。
然后针对地址组中的每个地址重复以上刚刚描述的刷新过程610-613,直到地址组中的所有地址被刷新607、608。在该情况下,NVRAM控制器记录如以非反相状态被写入的数据609,并且在用于刷新循环的接下来的适当的时间601之前针对接下来的一组地址完成刷新。根据两个连续的刷新循环的以上讨论,注意最后写入的状态信息609在跨连续的刷新循环的反相和非反相之间来回切换(toggle)。
值得注意的是,针对与以上所描述的本质上相同的理由而完成用于过程610-613的合适的刷新。也就是说,即使最初被存储为从其正确数据内容被逻辑反相614,存储为“1”的逻辑反相的数据的读取步骤610仍然刷新数据,并且同样地,原先被存储为“0”的逻辑反相的数据的反相610和写入步骤613导致利用(逻辑正确的)“1”改写此类数据,这再次刷新被存储的数据。
由于存储器访问是费时的,对于存储逻辑“0”的单元的额外访问的消除(即,图5的回写步骤505的消除)对应于刷新PCMS单元所花费的时间方面的显著降低,这继而应当对应于PCMS存储设备的性能方面的显著改善(因为现在,先前花费在刷新上的时间能够改为用来服务用于存储器的对应的计算机系统的实际的读取/写入命令)。使数据反相的额外步骤被视为微不足道的,这是因为其通常能够在单个时钟周期中被执行,而所消除的第三存储器访问通常消耗多个时钟周期。
然而,移除第三访问的可识别的“成本”是每隔一个刷新循环以反相形式将数据回写到PCMS存储器中。为了合适地重建供系统使用的数据(例如,提供由CPU或I/O设备所请求的读取数据),如上所描述的,NVRAM控制器记住数据是以反相形式还是非反相形式被保存在PCMS存储器中。以下进一步提供关于可以如何实现此类记住(tracking)的实施例的更多详情。
图7示出由NVRAM控制器执行以使得能够结合以上刚刚描述的刷新过程来成功地执行与PCMS存储器的大量事务(例如,响应于由CPU或I/O设备做出的请求从/向PCMS存储器进行的读取/写入)的事务性访问方法。
本文,关于NVRAM控制器要理解对于读取事务而言从PCMS读取的数据是否被反相。同样地,对于写入事务而言,关于NVRAM控制器要理解数据应当以反相格式还是非反相格式被写入。
图7示出适于确定事务性数据是否要被反相的通用流程图。同样,至少针对其中处理地址组的系统,图7的流程图适于从PCMS存储器读取和向PCMS存储器写入这两者。由于地址组的一个实施例对应于在地址范围之上顺序地增加地址(例如,接下来的刷新地址=当前的刷新地址+1),所以进行初始查询以看看被事务作为目标的地址是在当前刷新循环的“前面”还是在当前刷新循环的“后面”700。
如果被事务作为目标的地址是在当前刷新循环的“前面”,则该地址还未由当前刷新循环所刷新。如果被事务作为目标的地址是在当前刷新循环的“后面”,则该地址已经由当前刷新循环所刷新。将地址组中的地址的集合看作水平块701a、b,根据一种方式,从左至右地增加地址值,并且通过递增“刚刚刷新”的地址的地址值(例如,通过+1)来遍及地址组推进刷新循环。照此,将块701a、b的相应的阴影区702a、b看作已经在当前刷新循环中被刷新的地址组中的那些地址,通过刷新循环的过程继续刷新剩余的地址将具有使每个阴影区702a、b的右边缘向右逐渐发展的效果。
通过将当前被刷新的特定地址(“刷新地址”)与被事务作为目标的地址(“事务地址”)相比较,能够做出事务地址是在刷新地址前面还是后面的确定700。具体地,如果事务地址大于刷新地址,则该事务地址在刷新循环前面。同样地,如果事务地址小于刷新地址,则事务地址在刷新循环后面。前者的情形是利用地址块701b观察到的(其中由指针703b表示事务地址)。后者的情形被表示是利用地址块701a观察到的(其中由指针703a表示地址)。
如果事务地址在刷新循环前面,则NVRAM控制器根据在当前刷新循环之前由刷新循环对数据所写入的状态的逻辑来对待事务的数据。例如,如果由当前刷新循环所执行的反相使数据以反相状态被存储,则之前的刷新循环以非反相状态存储数据。因此,NVRAM控制器将不反相事务的数据704、705。也就是说,在读取事务的情况下,在从PCMS存储器读取数据之后NVRAM控制器将不反相所读取的数据,或者在写入事务的情况下,在数据被写入到PCMS存储器之前NVRAM控制器将不反相写入数据。可替代地,如果由当前刷新循环所执行的反相使数据非反相状态被存储,则之前的刷新循环使数据以反相状态被存储。在该情况下,NVRAM控制器将反相事务的数据704、706。也就是说,在读取事务的情况下,在从PCMS存储器读取数据之后NVRAM控制器将反相所读取的数据,或者在写入事务的情况下,在数据被写入到PCMS存储器之前NVRAM控制器将反相写入数据。
相比之下,如果事务在刷新循环后面,则NVRAM控制器根据在当前刷新循环中对数据写入的状态的逻辑来对待事务的数据。例如,如果由当前刷新循环所执行的反相使数据以反相状态被存储,那么NVRAM控制器将反相事务的数据707、708。也就是说,在读取事务的情况下,在从PCMS存储器读取数据之后NVRAM控制器将反相所读取的数据,或者在写入事务的情况下,在数据被写入到PCMS存储器之前NVRAM控制器将反相写入数据。可替代地,如果由当前刷新循环所执行的反相使数据以非反相状态被存储,则NVRAM控制器将不反相事务的数据707、709。也就是说,在读取事务的情况下,在从PCMS存储器读取数据之后NVRAM控制器将不反相所读取的数据,或者在写入事务的情况下,在数据被写入到PCMS存储器之前NVRAM控制器将不反相写入数据。
值得注意地,以上描述的判定树的逻辑涉及对当前刷新循环写入数据采用的逻辑状态和/或紧接在之前的刷新循环写入数据采用的逻辑状态的识别。图7描绘其中紧接在之前的刷新循环写入数据采用的状态(“最后被写入的状态”)被记住704、707的实施例。可替代的实施例可以使用当前刷新循环的逻辑状态或当前和紧接在之前的逻辑状态(例如,当前逻辑状态用于步骤707并且先前的逻辑状态用于步骤704)这两者的组合。同样,如果在地址组的刷新循环之间中接收到事务(读取或写入),则针对最近完成的刷新循环写入数据采用的逻辑状态来实现该事务。例如,如果最近完成的刷新循环的反相步骤使数据以反相形式对于地址组中的所有地址被写入,则NVRAM控制器将反相所读取的事务数据或反相写入事务数据。
图8示出根据以上所描述的方法进行操作的NVRAM控制器架构的实施例。如在图8中所观察的,NVRAM控制器架构包括队列801、802、803以分别地对写入事务请求(其中每个写入事务请求包括写入地址和写入数据)、读取事务请求(其中每个读取事务请求包括读取地址)和所读取的数据(其包括针对先前处理的读取请求从PCMS存储器所读取的数据)进行排队。
写入数据路径804和读取数据路径805这两者包括可选择的反相路径和非反相路径以在反相确定电路806的控制之下实现如以上所描述的数据反相。本文,针对对PCMS存储器807的特定访问,不管针对读取访问还是写入访问,并且不管针对事务还是刷新,反相确定逻辑电路808确定数据要被反相或不反相。
在读取的情况下,再次针对读取事务或者作为刷新的一部分,如果数据要被反相,则反相确定电路806向读取数据路径804发送控制信号820,其继而使得能够实现流过读取路径反相逻辑库(bank)811的路径810。如果读取数据不被反相,则反相确定电路808改为向读取数据路径804发送控制信号,其继而使得能够实现不流过读取反相逻辑库811的可替代的路径812。同样地,在写入的情况下,针对写入事务或者作为刷新的一部分,如果数据要被反相,则反相确定电路808向写入数据路径805发送控制信号,其继而使得能够实现流过读取路径反相逻辑库811的路径810。如果读取数据不被反相,则反相确定电路806改为向读取数据路径804发送控制信号820,其继而使得能够实现不流过读取反相逻辑库811的可替代路径812。类似的控制信号824存在以实现针对写入数据路径804的非反相写入和反相写入。
如以上讨论的,能够根据紧接在之前的刷新循环的逻辑状态来确定刷新读取或写入访问(发生在刷新循环之间的事务性读取或写入访问)的合适的逻辑状态。如在图8中观察到的,在与刷新控制逻辑电路814相关联的寄存器813中保存紧接在之前的刷新循环的逻辑状态(“最后写入的状态”)。反相确定电路806因此具有耦合到寄存器813的输入。同样,再次如以上讨论的,能够从以下确定在刷新循环进行时发生的事务性读取或写入的合适的反相或非反相逻辑状态:i)事务地址;ii)当前刷新地址;以及iii)紧接在之前的刷新循环的逻辑状态。
从图8能够看出,承载写入事务的地址的写入地址总线815被路由到PCMS寻址、信令电路816和反相确定电路806的输入这两者。PCMS寻址和信令电路816使用写入地址来实现对正确的PCMS存储器地址位置的写入操作。反相确定电路806将使用写入地址来在事务性写入以当前经历刷新循环的地址组内的地址为目标的情况下确定写入数据是否要被反相。
类似地,承载读取事务的地址的读取地址总线817被路由到PCMS寻址、信令电路816和反相确定电路806的输入这两者。PCMS寻址和信令电路816使用读取地址来实现对正确的PCMS存储器地址位置的读取操作。反相确定电路806将使用读取地址来在事务性读取以当前经历刷新循环的地址组内的地址为目标的情况下确定读取数据是否要被反相。刷新或事务地址被复用到寻址和信令电路中以供读取和写入这两者。
反相确定电路806也具有输入以(从与刷新控制逻辑电路814相关联的寄存器818)接收当前刷新地址。照此,在从寄存器813接收最后写入的状态、从适当的地址总线815/817接收事务地址、以及从寄存器818接收当前刷新地址的情况下,反相确定电路能够确定当对应的地址在当前被刷新的地址组内时事务性数据是否要被反相。
刷新控制逻辑电路814包含控制刷新操作的逻辑电路。如以上讨论的,刷新控制逻辑电路814包含寄存器813,该寄存器813保存由最后完成的刷新循环写入数据采用的逻辑状态(反相或非反相)(在可替代实施例中,接下来的刷新循环的逻辑状态可以被保存,或这两个值可以被保存)。在实施例中,在每次完成针对地址组的刷新循环时,针对地址组来回切换该信息。同样如以上所描述的,刷新时间控制电路814包括记住当前刷新地址的寄存器818。
请注意,为了简单起见,示出了单个最后写入的状态寄存器813。在进一步实施例中,针对刷新定时控制电路814被设计为支持其刷新的每个地址组例示最后写入的状态寄存器(或类似的一个或多个寄存器)。这可以是例如NVRAM控制器被设计为访问其的PCMS设备的密度和/或NVRAM控制装置被设计为支持对其的访问的PCMS设备的数量(例如,与NVRAM控制器对接的通道的数量和/或可以被插入到每个通道中的DIMM卡的数量,等等)的函数。
刷新控制逻辑电路814还具有逻辑电路819以控制从读取通道到写入通道的“回送(loopback)”路径821。返回参考图6,请注意,用于特定刷新地址的每个刷新包括后面跟着写入的读取。回送路径821高效地将从存储器807读取的数据路由到写入数据路径804中,以便实现该过程序列。刷新控制电路814还包括定时电路823以确定地址组的刷新循环何时是适当的。
以上所讨论的NVRAM控制器电路可以被实现在PCMS存储设备被实现在其上的相同的卡上(或作为具有PCMS存储设备的相同封装的一部分),所述卡被(或要被)“插入”在计算系统的存储器控制器/主机侧的某种通道中。可替代地,当以上所讨论的电路的一些可以被实现在计算系统的存储器控制器/主机侧上时,可以在与PCMS设备相同的卡上或相同的封装内实现以上所讨论的电路的剩余部分(例如,接近于PCMS存储设备的寻址和信令逻辑816以及包括相关联的CRC和误差检测和校正电路的读取和写入数据路径的一部分)。可替代地,可以在计算系统的存储器控制器/主机侧上实现以上所讨论的所有电路。
图9示出被设计为实现图6(刷新操作)和图7(事务性读取或写入)中所观察到的方法的反相确定逻辑电路906的实施例。与这些图中观察到的方法一致,刷新反相确定电路901确定用于刷新操作的对于读取通道和写入通道的反相/非反相输入。对于刷新读取,如果最后写入状态被反相,则电路901将发信号通知用于刷新读取的反相,或者如果最后写入状态未被反相,则电路901将发信号通知用于刷新读取的非反相。用于刷新的写入通道反相信号正好是用于刷新的读取通道反相信号的逻辑相反。
不管事务是读取还是写入,如果:i)事务地址在当前刷新地址前面并且最后写入状态被反相;或ii)事务地址在刷新地址后面,并且最后写入状态未被反相,则事务反相确定电路902都将发信号通知反相。否则发信号通知非反相。
图10示出刷新控制电路的实施例。如在图10中观察到的,刷新控制电路包括定时电路1001以确定刷新循环何时适于特定的地址组。刷新控制电路还包括电路1002以使得能够实现从读取通道到写入通道的回送。
刷新控制电路还包括最后写入状态寄存器1013和当前刷新地址寄存器1018。以上已经描述了这些寄存器。本质上,最后写入状态寄存器1013指示用于地址组的最后完全完成刷新循环是以反相状态还是非反相状态将数据写入到PCMS存储器中。当前刷新地址寄存器1018指示地址在活动的刷新循环中被刷新。电路1003使当前刷新地址递增到接下来的刷新地址值。用以确定接下来的刷新地址的除偏移相加之外的其他算法是可能的。比较器1004确定是否已经完成刷新循环。为了简单起见,电路1004被示出为每当当前刷新地址翻转到000...0值时指示刷新循环完成。当刷新循环被视为完成时,最后写入状态寄存器1013的值被来回切换。
Claims (22)
1.一种装置,包括:
反相确定逻辑电路,用以根据由从PCMS存储设备读取的数据所表示的信息在所述PCMS存储设备的刷新期间最后是以反相还是非反相逻辑状态被写入到所述PCMS存储设备来确定传输所述数据的读取数据路径要被反相或不反相。
2.根据权利要求1所述的装置,其中,所述读取数据路径包括:第一可选择的路径,其具有对从所述PCMS存储设备读取的数据进行反相的反相器库;和第二可选择的路径,其不对从所述PCMS存储设备读取的数据进行反相,所述反相确定电路用以提供确立所述可选择的路径中的哪一个被选择的信号。
3.根据权利要求2所述的装置,进一步包括刷新控制逻辑电路,其具有用以确定所述PCMS存储设备的一组地址的接下来的刷新循环何时要被刷新的电路。
4.根据权利要求1所述的装置,其中,所述反相确定逻辑电路具有第一逻辑电路以确定所述读取数据路径是否要被反相以供刷新,并且具有第二逻辑电路以确定所述读取数据路径是否要被反相以供读取或写入事务。
5.根据权利要求2所述的装置,进一步包括寄存器,其指示所述数据在所述PCMS存储设备的所述刷新期间最后是以反相还是非反相状态被写入到所述PCMS存储设备。
6.根据权利要求1所述的装置,进一步包括刷新控制逻辑电路,以在所述PCMS存储设备的所述刷新期间使得能够实现从所述读取数据路径到传输要被写入到所述PCMS设备的写入数据的写入数据路径的回送。
7.根据权利要求6所述的装置,其中,所述写入数据路径包括:第一可选择的路径,其具有对要被写入到所述PCMS存储设备的数据进行反相的反相器库;以及,第二可选择的路径,其不对要被写入到所述PCMS存储设备的数据进行反相,所述反相确定电路确保所述数据路径中的一者而不是两者在所述PCMS设备的所述刷新期间对其相应的数据进行反相。
8.一种方法,其包括:
从PCMS设备读取数据;
反相所述数据以形成反相的数据;
在从其读取所述数据的相同的地址处将所述反相的数据写入到所述PCMS设备中;以及
记录指示所述反相的数据是表示存储在所述地址处的信息的反相形式还是非反相形式的反相/非反相信息。
9.根据权利要求8所述的方法,进一步包括确定接下来的刷新是适当的。
10.根据权利要求9所述的方法,进一步包括,作为所述确定的结果:
从所述地址读取来自PCMS设备的所述反相的数据;
反相所述反相的数据以形成二次反相的数据;
在所述地址处将所述二次反相二次数据写入到所述PCMS设备中;以及
来回切换所述反相/非反相信息并且记录结果。
11.根据权利要求9所述的方法,进一步包括:
a) 读取所述反相的数据并且参考所述反相/非反相信息;
b) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的反相形式,则反相所述反相的数据,或如果所述反相/非反相信息指示所述反相的数据表示所述信息的非反相形式,则不反相所述反相的数据;
c) 如果b)包括反相所述反相的数据,则在所述地址处将b)的结果写入到所述PCMS存储设备中,或如果b)包括不反相所述反相的数据,则在所述地址处将b)的结果的反相形式写入到所述PCMS存储设备中。
12.根据权利要求11所述的方法,进一步包括,在b)之后但是在c)之前,执行误差检测和恢复,后面跟着对由b)产生的信息进行CRC计算,以形成所述b)的结果。
13.根据权利要求8所述的方法,进一步包括:
接收针对所述地址的读取事务;
将所述地址与刷新循环的地址相比较;
参考所述反相/非反相信息;以及,
在所述地址处执行所述PCMS存储设备的第二读取,以满足所述读取事务并且执行以下之一:
i) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的反相形式并且所述地址在所述刷新循环后面,则对从所述第二读取所接收的数据进行反相;
ii) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的非反相形式并且所述地址在所述刷新循环前面,则对从所述第二读取所接收的数据进行反相;
iii) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的非反相形式并且所述地址在所述刷新循环后面,则不对从所述第二读取所接收的数据进行反相;
iv) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的反相形式并且所述地址在所述刷新循环前面,则不对从所述第二读取所接收的数据进行反相。
14.根据权利要求13所述的方法,进一步包括当所述刷新循环完成时,更新所述反相/非反相信息。
15.根据权利要求8所述的方法,进一步包括:
接收具有针对所述地址的写入数据的写入事务;
将所述地址与所述刷新循环的当前地址相比较;
参考所述反相/非反相信息;以及,
通过执行以下之一来满足所述写入事务:
i) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的反相形式并且所述地址在所述刷新循环后面,则对所述写入数据进行反相;
ii) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的非反相形式并且所述地址在所述刷新循环前面,则对所述写入数据进行反相;
iii) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的非反相形式并且所述地址在所述刷新循环后面,则不对所述写入数据进行反相;
iv) 如果所述反相/非反相信息指示所述反相的数据表示所述信息的反相形式并且所述地址在所述刷新循环前面,则不对所述写入数据进行反相。
16.根据权利要求15所述的方法,进一步包括当所述刷新循环完成时,更新所述反相/非反相信息。
17.一种计算系统,其包括:
由DRAM设备所构成的近存储器;
由PCMS存储设备所构成的远存储器;
耦合到所述PCMS设备的NVRAM控制器,所述NVRAM控制器包括反相确定逻辑电路以根据由从PCMS存储设备读取的数据所表示的信息在所述PCMS存储设备的刷新期间最后是以反相还是非反相逻辑状态被写入到所述PCMS存储设备来确定传输所述数据的读取数据路径要被反相或不反相。
18.根据权利要求17所述的计算系统,其中,所述读取数据路径包括:第一可选择的路径,其具有对从所述PCMS存储设备读取的数据进行反相的反相器库;和第二可选择的路径,其不对从所述PCMS存储设备读取的数据进行反相,所述反相确定电路用以提供确立所述可选择的路径中的哪一个被选择的信号。
19.根据权利要求18所述的计算系统,进一步包括刷新控制逻辑电路,其具有用以确定所述PCMS存储设备的一组地址的接下来的刷新循环何时要被刷新的电路。
20.根据权利要求17所述的计算系统,其中,所述反相确定逻辑电路具有第一逻辑电路以确定所述读取数据路径是否要被反相以供刷新,并且具有第二逻辑电路以确定所述读取数据路径是否要被反相以供读取或写入事务。
21.根据权利要求18所述的计算系统,进一步包括寄存器,其指示所述数据在所述PCMS存储设备的所述刷新期间最后是以反相还是非反相状态被写入到所述PCMS存储设备。
22.根据权利要求17所述的计算系统,进一步包括刷新控制逻辑电路以在所述PCMS存储设备的所述刷新期间使得能够实现从所述读取数据路径到传输要被写入到所述PCMS设备的写入数据的写入数据路径的回送。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/066945 WO2013095530A1 (en) | 2011-12-22 | 2011-12-22 | Efficient pcms refresh mechanism background |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104115230A true CN104115230A (zh) | 2014-10-22 |
CN104115230B CN104115230B (zh) | 2018-02-16 |
Family
ID=48669171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076407.7A Active CN104115230B (zh) | 2011-12-22 | 2011-12-22 | 基于高效pcms刷新机制的计算装置、方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9202548B2 (zh) |
CN (1) | CN104115230B (zh) |
WO (1) | WO2013095530A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10185499B1 (en) | 2014-01-07 | 2019-01-22 | Rambus Inc. | Near-memory compute module |
EP3211536B1 (en) * | 2014-10-24 | 2019-09-04 | Sony Corporation | Memory controller, memory system, and memory controller control method |
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 |
US20170206165A1 (en) * | 2016-01-14 | 2017-07-20 | Samsung Electronics Co., Ltd. | Method for accessing heterogeneous memories and memory module including heterogeneous memories |
KR102664704B1 (ko) * | 2016-10-24 | 2024-05-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
TWI712037B (zh) * | 2019-05-09 | 2020-12-01 | 華邦電子股份有限公司 | 電阻式記憶體及其資料寫入方法 |
US10937495B2 (en) | 2019-07-02 | 2021-03-02 | Winbond Electronics Corp. | Resistive memory apparatus and method for writing data thereof |
US11899590B2 (en) | 2021-06-18 | 2024-02-13 | Seagate Technology Llc | Intelligent cache with read destructive memory cells |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020199152A1 (en) * | 2001-06-22 | 2002-12-26 | Garney John I. | Method and apparatus for preservation of failure state in a read destructive memory |
CN1811985A (zh) * | 2005-01-19 | 2006-08-02 | 尔必达存储器株式会社 | 存储器装置 |
WO2007005859A1 (en) * | 2005-06-30 | 2007-01-11 | Intel Corporation | Technique to write to a non-volatile memory |
US7286387B2 (en) * | 2002-09-27 | 2007-10-23 | Intel Corporation | Reducing the effect of write disturbs in polymer memories |
CN101114519A (zh) * | 2006-07-27 | 2008-01-30 | 奇梦达北美公司 | 用于相变存储器的读干扰传感器 |
CN101188139A (zh) * | 2006-11-21 | 2008-05-28 | 奇梦达北美公司 | 包括选择性刷新操作的电阻式存储器 |
US7590918B2 (en) * | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
CN102057436A (zh) * | 2008-06-12 | 2011-05-11 | 松下电器产业株式会社 | 半导体存储装置、半导体装置及光盘再生装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US20050114588A1 (en) | 2003-11-26 | 2005-05-26 | Lucker Jonathan C. | Method and apparatus to improve memory performance |
US20060277367A1 (en) | 2005-06-07 | 2006-12-07 | Faber Robert W | Speculative writeback for read destructive memory |
US7516267B2 (en) | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
US8134866B2 (en) | 2006-04-06 | 2012-03-13 | Samsung Electronics Co., Ltd. | Phase change memory devices and systems, and related programming methods |
KR100819061B1 (ko) | 2007-03-06 | 2008-04-03 | 한국전자통신연구원 | 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화메모리에서의 데이터 쓰기 장치 및 방법 |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
US7941692B2 (en) | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
US20090327837A1 (en) | 2008-06-30 | 2009-12-31 | Robert Royer | NAND error management |
TWI379407B (en) * | 2008-12-30 | 2012-12-11 | Nanya Technology Corp | Phase change memory |
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 |
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 |
US8612666B2 (en) | 2009-06-30 | 2013-12-17 | Intel Corporation | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory |
US7894254B2 (en) * | 2009-07-15 | 2011-02-22 | Macronix International Co., Ltd. | Refresh circuitry for phase change memory |
US8218380B2 (en) * | 2009-10-30 | 2012-07-10 | Apple Inc. | Degradation equalization for a memory |
US8838935B2 (en) | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US8463948B1 (en) | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
US9600407B2 (en) | 2011-09-30 | 2017-03-21 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
US9141536B2 (en) | 2011-11-04 | 2015-09-22 | Intel Corporation | Nonvolatile memory wear management |
CN103999057B (zh) | 2011-12-30 | 2016-10-26 | 英特尔公司 | 具有开关的相变存储器(pcms)的元数据管理和支持 |
-
2011
- 2011-12-22 US US13/997,661 patent/US9202548B2/en active Active
- 2011-12-22 WO PCT/US2011/066945 patent/WO2013095530A1/en active Application Filing
- 2011-12-22 CN CN201180076407.7A patent/CN104115230B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020199152A1 (en) * | 2001-06-22 | 2002-12-26 | Garney John I. | Method and apparatus for preservation of failure state in a read destructive memory |
US7286387B2 (en) * | 2002-09-27 | 2007-10-23 | Intel Corporation | Reducing the effect of write disturbs in polymer memories |
US7590918B2 (en) * | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
CN1811985A (zh) * | 2005-01-19 | 2006-08-02 | 尔必达存储器株式会社 | 存储器装置 |
WO2007005859A1 (en) * | 2005-06-30 | 2007-01-11 | Intel Corporation | Technique to write to a non-volatile memory |
CN101114519A (zh) * | 2006-07-27 | 2008-01-30 | 奇梦达北美公司 | 用于相变存储器的读干扰传感器 |
CN101188139A (zh) * | 2006-11-21 | 2008-05-28 | 奇梦达北美公司 | 包括选择性刷新操作的电阻式存储器 |
CN102057436A (zh) * | 2008-06-12 | 2011-05-11 | 松下电器产业株式会社 | 半导体存储装置、半导体装置及光盘再生装置 |
Also Published As
Publication number | Publication date |
---|---|
US20140204663A1 (en) | 2014-07-24 |
US9202548B2 (en) | 2015-12-01 |
CN104115230B (zh) | 2018-02-16 |
WO2013095530A1 (en) | 2013-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103946812B (zh) | 用于实现多级别存储器分级体系的设备和方法 | |
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
CN103946813B (zh) | 基于使用统计量追踪的远存储器访问信号的生成 | |
US9817758B2 (en) | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage | |
CN103999161B (zh) | 用于相变存储器漂移管理的设备和方法 | |
TWI594182B (zh) | 用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法 | |
CN103988183B (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
CN103946816B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
CN104106057B (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 | |
CN104025060B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
CN103946810B (zh) | 配置非易失性随机访问存储器内分区的方法及计算机系统 | |
TWI614752B (zh) | 經由記憶體通道關閉之節電技術 | |
CN103975287B (zh) | 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持 | |
CN104115230A (zh) | 高效pcms刷新机制背景 | |
TWI596474B (zh) | 用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片 | |
CN104011691A (zh) | 非易失性ram盘 |
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 |