CN103946813B - 基于使用统计量追踪的远存储器访问信号的生成 - Google Patents
基于使用统计量追踪的远存储器访问信号的生成 Download PDFInfo
- Publication number
- CN103946813B CN103946813B CN201180075119.XA CN201180075119A CN103946813B CN 103946813 B CN103946813 B CN 103946813B CN 201180075119 A CN201180075119 A CN 201180075119A CN 103946813 B CN103946813 B CN 103946813B
- Authority
- CN
- China
- Prior art keywords
- memory
- address
- storage
- circuit
- nvram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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
-
- 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
描述了需要接收用于对非易失性系统存储装置的读或写事务的地址的方法。该方法进一步涉及针对地址是其成员的地址集合确定存储器装置的使用统计量。该方法进一步涉及基于使用统计量确定将被施加至用于读或写事务的存储器装置的信号的特性。该方法进一步涉及生成具有特性的信号,以执行读或写事务。
Description
技术领域
本发明一般涉及计算机系统的领域。更特别地,本发明涉及用于实现包括非易失性存储器层的多级别存储器分级体系的设备和方法。
背景技术
A.当前存储器和存储配置
对于当今计算机创新的限制因素之一是存储器和存储技术。在常规的计算机系统中,系统存储器(也被称作主存储器、初级存储器、可执行存储器)通常通过动态随机访问存储器(DRAM)来实现。即使当没有存储器读或写发生时,基于DRAM的存储器也消耗功率,因为它必须不断地对内部电容器进行重新充电。基于DRAM的存储器是易失性的,这意味着一旦移除功率,则丢失存储在DRAM存储器中的数据。常规的计算机系统也依赖多级别的缓存以改善性能。缓存是在处理器与系统存储器之间的高速度存储器,用来比从系统存储器供应存储器访问请求快地供应存储器访问请求。这样的缓存通常用静态随机访问存储器(SRAM)来实现。缓存管理协议可以用来确保最频繁访问的数据和指令被存储在缓存的级别之一中,由此减少了存储器访问事务的数量并改善了性能。
关于大容量存储设备(也被称作次级存储设备或磁盘存储设备),常规的大容量存储装置通常包括磁介质(例如,硬盘驱动器)、光介质(例如,光盘(CD)驱动、数字通用磁盘(DVD)等等)、全息介质和/或大容量存储闪存存储器(例如,固态驱动(SSD)、可移除闪存驱动等等)。一般地,这些存储装置被认为是输入/输出(I/O)装置,因为它们由处理器通过实现各种I/O协议的各种I/O适配器来访问。这些I/O适配器和I/O协议消耗大量的功率,并且可以具有对管芯区域和平台的形成因素的显著影响。当没有连接到永久电源时具有有限电池寿命的便携式或移动装置(例如,膝上型计算机、笔记本计算机、平板计算机、个人数字助理(PDA)、便携式媒体播放器、便携式游戏装置、数字摄像机、移动电话、智能电话、功能电话等等)可以包括可移除大容量存储装置(例如,嵌入式多媒体卡(eMMC)、安全数字(SD)卡),所述大容量存储装置通常经由低功率互连和I/O控制器耦合至处理器,以便满足活动的和空闲的功率预算。
关于固件存储器(诸如引导程序存储器(也被称作BIOS闪存)),常规的计算机系统通常使用闪存存储器装置存储经常读但很少(或从不)写入的持久性系统信息。例如,由处理器执行来在引导过程(基本输入和输出系统(BIOS)映像)期间初始化关键系统部件的初始指令通常被存储在闪存存储器装置中。当前在市场中可得的闪存存储器装置一般具有有限速度(例如,50MHz)。该速度由用于读协议的开销进一步降低(例如,2.5MHz)。为了使BIOS执行速度加速,常规的处理器一般在引导过程的预先可扩展固件接口(PEI)阶段期间缓存BIOS代码的一部分。处理器缓存的大小对用在PEI阶段的BIOS代码(也被称作“PEI BIOS代码”)的大小设置了限制。
B.相变存储器(PCM)和相关的技术
相变存储器(PCM)(有时也被称作相变随机访问存储器(PRAM或PCRAM)、PCME、双向通用存储器或者硫族化物RAM(C-RAM))是一种开发了硫族化物玻璃的独特行为的非易失性计算机存储器。作为电流经过产生的热的结果,硫族化物玻璃可以在以下两个状态之间切换:晶体和非晶体。PCM的最近版本可以实现两个附加的不同状态。
PCM提供了比闪存更高的性能,因为PCM的存储器元素可以被更快地切换,写(将各个位改变到1或0)可以在不需要首先擦除整个单元块的情况下完成,并且来自写的退化更慢(PCM装置可以经受得住大约100兆个写周期;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图示了用于基于使用统计量追踪确定远存储器信令的NVRAM控制器的方面;
图6图示了可以由图5的NVRAM控制器执行的方法;以及
图7A-7D图示了用于将图5的NVRAM控制器集成到存储器信道中的各种方法。
具体实施方式
在下面的描述中,叙述了诸如逻辑实现、操作码、用来指定操作数的装置、资源分割/共享/复制实现、系统部件的类型和相互关系以及逻辑分割/集成选择的大量具体细节,以便提供对本发明的更透彻理解。然而,本领域技术人员将理解本发明可以在没有这样的具体细节的情况下进行实践。在其它情况下,没有详细示出控制结构、栅级别电路和全软件指令序 列,以便不使本发明模糊。利用所包括的描述,本领域普通技术人员将能够在没有过度实验的情况下实现适当的功能。
在说明书中参考“一个实施例”“实施例”“示例实施例”等等指示了所描述的实施例可以包括特别的特征、结构或特性,但每个实施例可以不必须包括特别的特征、结构或特性。此外,这样的短语不必指的是相同的实施例。此外,当结合实施例描述特别的特征、结构或特性时,所认为的是,结合无论是否明确描述的其它实施例实现这样的特征、结构或特性是在本领域技术人员的知识内的。
在下面的描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解的是,这些术语不意在为彼此的同义词。“耦合”用来指示可以或可以不彼此直接物理或电接触的两个或更多的元件彼此协作或相互作用。“连接”用来指示在彼此耦合的两个或更多的元件之间的通信的建立。
括号括的文本和具有虚线边界(例如,大虚线、小虚线、点划线、点)的块在本文中有时用来说明将附加的特征添加到本发明的实施例的可选的操作/部件。然而,这样的符号不应当意味着这些是仅有的选项或可选操作/部件,和/或具有实线边界的块在本发明的特定实施例中是不可选的。
引言
存储器容量和性能要求随着处理器核心和诸如虚拟化的新使用模型的数量增加而继续增加。此外,存储器功率和成本已经分别变成了电子系统的总功率和成本的显著成分。
本发明的一些实施例通过在存储器技术之间智能地再分性能要求和容量要求来解决上面的挑战。该方法的焦点是在于利用相对小的量的相对更高速度的存储器(诸如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、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在大小上最小64K字节以及对于NAND FLASH在大小上最小16K字节))相比,在更低的粒度级别(例如,字节级别)下可重写和可擦除;
(5)用作系统存储器且被分派了系统存储器地址空间的全部或部分;
(6)能够使用事务性协议(支持事务标识符(ID)区分不同的事务以使得那些事务能够无次序地完成的协议)通过总线耦合至处理器,并且允许在足够小以支持作为系统存储器的NVRAM的操作的粒度级别(例如,诸如64或128字节的缓存行大小)下的访问。例如,总线可以是存储器总线(例如,诸如DDR3、DDR4等等的DDR总线),与通常使用的非事务性协议相反,通过所述存储器总线运行事务性协议。作为另一个示例,总线可以是通过其通常运行事务性协议(本地事务性协议)的总线,诸如:PCI express(PCIE)总线、桌面管理接口(DMI)总线或者利用事务性协议和足够小的事务有效负载大小(例如,诸如64或128字节的缓存行大小)的任何其它类型的总线;以及
(7)下面的一个或多个:
a)比非易失性存储器/存储技术(诸如FLASH)更快的写速度;
b)非常高的读速度(比FLASH更快且接近或等于DRAM读速度);
c)直接可写(而非像用在SSD中的FLASH存储器在写数据之前要求擦除(用1s改写));
d)在故障之前更大数量的写(比引导程序ROM和用在SSD中的FLASH更多);和/或如上面提到的,与FLASH存储器(其必须每次被重写且被擦除完整的“块”)相比,在任何给定的实现中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、103a-b和104a-b,以及由处理器核心共享的较低级别缓存(LLC)105;
2)动态随机访问存储器(DRAM),其被配置为对于处理器100内部的缓存106(例如,在与处理器100相同的管芯上)和/或被配置为对于处理器外部的一个或多个缓存107-109(例如,在与处理器100相同的或不同的封装中);以及
3)应用为大容量存储设备的FLASH存储器/磁盘/光盘(未示出);以及
4)诸如FLASH存储器或其它只读存储器(ROM)的存储器,其被应用为固件存储器(其可以指代引导程序ROM、BIOS闪存和/或TPM闪存)(未示出)。
远存储器122可以用作指令和数据存储设备,其可由处理器100直接寻址并且与应用 为大容量存储设备的FLASH/磁盘/光盘相比能够充分地跟上处理器100。此外,如在上面讨论的且在下面详细描述的,远存储器122可以被放置在存储器总线上并可以直接与存储器控制器通信,其转而直接与处理器100通信。
远存储器122可以与其它指令和数据存储技术(例如,DRAM)相组合,以形成混合存储器(也被称作共处一地的PCM和DRAM;第一级别存储器和第二级别存储器;FLAM(FLASH和DRAM))。注意到,取代系统存储器或除系统存储器以外,包括PCM/PCMS的上面技术中的至少一些可以用于大容量存储设备,并且当以这种方式应用时不需要是可随机访问、可字节寻址或可由处理器直接寻址的。
为了方便解释,本申请的剩余部分的大部分将指的是“NVRAM”,或者更具体地,指的是作为用于远存储器122的技术选择的“PCM”或“PCMS”。同样地,术语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)、竖板(riser)/小背板(mezzanine)或者计算机母板上)。通过使用诸如DDR或其它事务性高带宽链路的单个或多个高带宽链路,近传感器121可以在与处理器100的通信中进行耦合(如下面详细描述的)。
示例性系统存储器分派方案
图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上执行的软件可见的和/或可由在处理器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用来图示当存储器被配置为用于远存储器的MSC 150B时的操作。在该配置中,系统地址空间A表示整个系统地址空间(并且系统地址空间B不存在)。可替换地,系统地址空间B用来示出当近存储器的全部或部分被分配系统地址空间的部分时的实现。在该实施例中,系统地址空间B表示分配给近存储器151A的系统地址空间的范围,并且系统地址空间A表示分配给NVRAM 174的系统地址空间的范围。
此外,当充当用于远存储器的缓存150B时,近存储器144可以在MSC控制器124的控制下以各种子模式进行操作。在这些模式中的每一个模式中,近存储器地址空间(NMA)在近存储器不形成系统地址空间的可直接寻址部分的意义上对于软件是透明的。这些模式包括但不限于以下:
(1)回写缓存模式:在该模式中,充当FM缓存150B的近存储器的全部或部分用作用于NVRAM远存储器(FM)151B的缓存。尽管在回写模式中,但是每一个写操作最初指向作为用于FM的缓存150B的近存储器(假定写所指向的缓存行在缓存中存在)。仅当作为用于FM的缓存150B的近存储器内的缓存行要由另一个缓存行取代时,执行对应写操作以更新NVRAM FM151B(与下面描述的写通过模式相反,在所述写通过模式中,将每一个写操作立即传播到NVRAM FM 151B)。
(2)近存储器绕过模式:在该模式中,所有读和写绕过充当FM缓存150B的NM, 并且直接转到NVRAM FM 151B。例如,当应用不是缓存友好的或要求数据持续在缓存行的粒度下被提交时,可以使用这样的模式。在一个实施例中,由处理器缓存150A和充当FM缓存150B的NM执行的缓存彼此独立地进行操作。因此,没有在处理器缓存150A中缓存的数据(以及在一些情况下可能不被许可在处理器缓存150A中缓存的数据)可以在充当FM缓存150B的NM中缓存,并且反之亦然。因此,可能在处理器缓存中被指定为“不可缓存”的特定数据可以在充当FM缓存150B的NM内缓存。
(3)近存储器读缓存写绕过模式:这是上面模式的变型,其中,允许来自NVRAM FM151B的持久性数据的读缓存(即,针对只读操作,持久性数据在作为用于远存储器的缓存150B的近存储器中缓存)。当持久性数据中的大部分是“只读”的且应用使用是缓存友好的时,这是有用的。
(4)近存储器读缓存写通过模式:这是近存储器读缓存写绕过模式的变型,其中,除读缓存以外,写命中也是缓存的。每个对作为用于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闪存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 NVRAM173。尽管不同的实施例可以以不同的方式指定NVRAM模式,但是图3描述了解码表333的使用。
图3图示了其上可以实现本发明的实施例的示例性计算机系统300。计算机系统300包括处理器310和具有NVRAM 142的存储器/存储子系统380,所述NVRAM 142用于系统存储器、大容量存储设备和可选固件存储器。在一个实施例中,NVRAM 142包括用于存储数据、指令、状态以及其它持久性和非持久性信息的由计算机系统300使用的整个系统存储器和存储分级体系。如先前讨论的,NVRAM 142可以被配置为实现在系统存储器、大容量存储设备和固件存储器、TPM存储器等等的典型存储器和存储分级体系中的角色。在图3的实施例中,NVRAM 142被分区为FM 151B,NVRAM大容量存储设备152A、BIOS NVRAM 173和TMP NVRAM173。也预期了具有不同角色的存储分级体系,并且NVRAM 142的应用不限于上面描述的角色。
通过举例的方式,描述了在作为用于FM的缓存150B的近存储器处于回写缓存中时的操作。在一个实施例中,在作为用于FM的缓存150B的近存储器处于上面提到的回写缓存模式中的同时,读操作将首先到达MSC控制器124处,所述MSC控制器124将执行查找以(例如,利用标签缓存342)确定请求的数据是否存在于充当用于FM的缓存150B的近存储器中。如果存在,则它将通过I/O子系统115使数据返回到请求CPU、核心101-104或I/O装置。如果数据不存在,则MSC控制器124将连同系统存储器地址一起发送请求到NVRAM控制器332。NVRAM控制器332将使用解码表333将系统存储器地址转换到NVRAM物理装置地址(PDA)并使读操作指向远存储器151B的该区域。在一个实施例中,解码表333包括地址间接引用表(AIT)成分,NVRAM控制器332使用所述地址间接引用表(AIT)成分在系统存储器地址与NVRAM PDA之间进行转换。在一个实施例中,将AIT更新为损耗均衡算法的一部分,所述损耗均衡算法被实现来分发存储器访问操作并由此减小对NVRAM FM 151B的损耗。可替换地,AIT可以是存储在NVRAM控制器332内的单独的表。
在从NVRAM FM 151B接收请求的数据时,NVRAM控制器332将使请求的数据返回到MSC控制器124,所述MSC控制器124将在充当FM缓存150B的MSC近存储器中存储数据,并且也通过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中,示出了使用三个单独的线路连接到FM 151B、NVRAM大容量存储设备152A和BIOS NVRAM 172的NVRAM控制器332。然而,这不必意味着存在将NVRAM控制器332连接到NVRAM 142的这些部分的三个单独的物理总线或通信信道。相反,在一些实施例中,共同的存储器总线或其它类型的总线(诸如下面相对于图4A-M描述的总线)用来将NVRAM控制器332通信地耦合至FM 151B、NVRAM大容量存储设备152A和BIOS NVRAM 172。例如,在一个实施例中,图3中的三个线路表示总线,诸如存储器总线(例如,DDR3、DDR4等等的总线),通过所述总线,NVRAM控制器332实现事务性协议以与NVRAM 142通信。NVRAM控制器332也可以通过支持本地事务性协议的总线(诸如PCI express总线、桌面管理接口(DMI)总线)或者利用事务性协议和足够小的事务有效负载大小(例如,诸如64或128字节的缓存行大小)的任何其它类型的总线来与NVRAM 142通信。
在一个实施例中,计算机系统300包括集成存储器控制器(IMC)331,其执行用于处理器310的中央存储器访问控制,其耦合至:1)用来控制对充当远存储器缓存150B的近存储器(NM)的访问的存储器侧缓存(MSC)控制器124;以及2)用来控制对NVRAM 142的访问的NVRAM控制器332。虽然在图3中图示为单独的单元,但是MSC控制器124和NVRAM控制器332可以逻辑地形成IMS 331的一部分。
在图示的实施例中,MSC控制器124包括范围寄存器336的集合,其在用于充当远存储器缓存150B的NM的使用中指定操作模式(例如,上面描述的回写缓存模式、近存储器绕过模式等等)。在图示的实施例中,DRAM 144用作充当用于远存储器的缓存150B的NM的存储器技术。响应于存储器访问请求,MSC控制器124可以(根据在范围寄存器336中指定的操作模式)确定是否可以从充当用于FM的缓存150B的NM供应请求,或者请求是否必须被发送到NVRAM控制器332,所述NVRAM控制器332接着可以从NVRAM 142的远存储 器(FM)部分151B供应请求。
在NVRAM 142用PCMS实现的实施例中,NVRAM控制器332是用与PCMS技术一致的协议执行访问的PCMS控制器。如先前讨论的,PCMS存储器固有地能够在字节的粒度下被访问。尽管如此,NVRAM控制器332可以在诸如缓存行(例如,64位或128位缓存行)的较低粒度级别或与存储器子系统一致的任何其它粒度级别下访问基于PCMS的远存储器151B。本发明的根本原理不限于用于访问基于PCMS的远存储器151B的任何特别的粒度级别。然而,一般地,当基于PCMS的远存储器151B用来形成系统地址空间的一部分时,粒度级别将高于传统地用于诸如FLASH的其它非易失性存储技术(其仅能够在“块”级别(对于NOR FLASH最小64K字节的大小,并且对于NAND FLASH最小16K字节的大小)下执行重写和擦除操作)的粒度级别。
在图示的实施例中,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 331和/或MSC控制器124进一步根据目标地址确定请求指向作为用于FM的缓存150B的NM还是指向FM 151B。对于FM 151B访问,请求被转发到NVRAM控制器332。如果该请求指向I/O(例如,非存储和存储I/O装置),则IMC 331将请求传递到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的存储 器访问,而不管它是哪一个事务类型。可以理解的是,解码路径可以不同于上面描述的内容。例如,IMC331可以对访问请求的目标地址进行解码,并且确定它是否指向NVRAM 142。如果它指向NVRAM 142,IMC 331根据解码表333生成属性。基于该属性,IMC 331接着将请求转发到适当的下游逻辑(例如,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仍可以根据实现(例如,64K字节、128K字节等等)按多个字节的块访问NVRAM大容量存储设备152A。由NVRAM控制器332从NVRAM大容量存储设备152A访问数据的特定方式对于由处理器310执行的软件可以是透明的。例如,即便NVRAM大容量存储设备152A可以不同于闪存/磁/光学大容量存储设备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的系统的讨论,在一些实施例中,计算机系统100的体系结构可以包括多个处理器,虽然为了简单在图3中图示了单个处理器310。处理器310可以是任何类型的数据处理器,包括:通用或专用中央处理单元(CPU)、专用集成电路(ASIC)或数字信号处理器(DSP)。例如,处理器310可以是通用处理器,诸如CoreTMi3、i5、i7、2Duo和Quad、XeonTM或者ItaniumTM处理器,所述处理器的全部从加州(Calif)的圣克拉拉(Santa Clara)的英特尔公司(Intel Corporation)可得。可替换地,处理器310可以来自另一个公司,诸如:CA的森尼维尔(Sunnyvale)的ARM股份有限公司(ARM Holding,Ltd)、CA的森尼维尔(Sunnyvale)的MIPS科技公司(MIPS Technologies)等等。处理器310可以是专用处理器,诸如例如:网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等等。处理器310可以在包含在一个或多个封装内的一个或多个芯片上实现。处理器310可以是使用许多工艺技术(诸如例如BiCMOS、CMOS或NMOS)中的任何一个工艺技术的一个或多个衬底的一部分,和/或可以在其上实现。在图3所示的实施例中,处理器310具有片上系统(SOC)配置。
在一个实施例中,处理器310包括集成图形单元311,其包括用于执行诸如3D或2D图形命令的图形命令的逻辑。尽管本发明的实施例不限于任何特别的集成图形单元311,但是在一个实施例中,图形单元311能够执行工业标准图形命令,诸如由Open GL和/或DirectX应用编程接口(API)(例如,Open GL 4.1和Direct X 11)指定的工业标准图形命令。
处理器310也可以包括一个或多个核心101-104,虽然为了清楚起见,在图3中再次图示了单个核心。在许多实施例中,一个或多个核心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)-Express(PCI-E),3.0;USB,3.0;SATA,3.0;小型计算机系统接口(SCSI),Ultra-640;以及电气和电子工程师协会(IEEE)1394“火线接口(Firewire)”等等。对于BIOS闪存362,I/O适配器338可以转换的协议中的一些协议包括:串行外围接口(SPI),Microwire等等。此外,可以存在一个或多个无线协议I/O适配器。无线协议的示例尤其还用在个域网中,诸如IEEE 802.15和蓝牙,4.0;用在无线局域网中,诸如基于IEEE802.11的无线协议;以及蜂窝协议。
在一些实施例中,I/O子系统115耦合至TPM控制334以控制对系统持久性状态的访问,诸如:安全数据、加密密钥、平台配置信息等等。在一个实施例中,这些系统持久性状态被存储在TMP NVRAM 173中,并且经由NVRAM控制器332来访问。
在一个实施例中,TPM 334是具有密码功能的安全微控制器。TPM 334具有许多信任相关的能力;例如,用于确保由TPM保护的数据仅对于相同的TPM可用的密封(SEAL)能力。TPM 334可以使用它的加密能力保护数据和密钥(例如秘密)。在一个实施例中,TPM 334具有唯一且秘密的RSA密钥,其允许它对硬件装置和平台进行认证。例如,TPM 334可以验证探寻对存储在计算机系统300中的数据的访问的系统是预期的系统。TPM 334也能够报告平台(例如,计算机系统300)的完整性。这允许外部资源(例如,网络上的服务器)确定平台的可信赖度,但不阻止由用户对平台的访问。
在一些实施例中,I/O子系统315也包括管理引擎(ME)335,其是允许系统管理员监控、维持、更新、升级和修复计算机系统300的微处理器。在一个实施例中,通过经由网络336通过ME 335编辑解码表333的内容,系统管理员可以远程地配置计算机系统300。
为了方便解释,本申请的剩余部分有时指的是作为PCMS装置的NVRAM 142。PCMS装置包括多层(垂直堆叠的)PCM单元阵列,其是非易失性的,具有低功率消耗,并且在位级别处可修改。同样地,在下面的讨论中可以可交换地使用术语NVRAM装置和PCMS装置。然而,应当认识到,如上面讨论的,除PCMS之外的不同的技术也可以用于NVRAM 142。
应当理解的是,即便计算机系统的处理器不具有上面描述的处理器310的部件的全 部,或者具有比处理器310更多的部件,该计算机系统可以为了系统存储器、大容量存储设备、固件存储器和/或其它存储器和存储目的利用NVRAM 142。
在图3所示的特别的实施例中,MSC控制器124和NVRAM控制器332位于与处理器310相同的管芯或封装(被称作CPU封装)上。在其它实施例中,MSC控制器124和/或NVRAM控制器332可以位于管芯外或CPU封装外,通过总线耦合至处理器310或CPU封装,所述总线诸如是:存储器总线(像DDR总线(例如,DDR3、DDR4等等))、PCI express总线、桌面管理接口(DMI)总线或者任何其它类型的总线。
示例性PCM总线和封装配置
图4A-M图示了多种不同的部署,其中,处理器、近存储器和远存储器以不同的方式进行配置和封装。特别是,图4A-M中图示的一系列平台存储器配置使得能够使用新的非易失性系统存储器,诸如PCM技术,或者更具体地,PCMS技术。
尽管跨越图4A-M中的多个图使用相同的数字标记中的一些,但这不必意味着由那些数字标记识别的结构总是同样的。例如,尽管相同的数字用来在若干图中识别集成存储器控制器(IMC)331和CPU 401,但是这些部件在不同的图中可以不同地实现。这些差异中的一些未被突出,因为它们与理解本发明的根本原理不相干。
尽管下面描述了若干不同的系统平台配置方法,但是这些方法落入两个宽的类别中:分裂的体系结构和统一的体系结构。简要地,在分裂的体系结构方案中,存储器侧缓存(MSC)控制器(例如,位于处理器管芯中或位于CPU封装中的单独的管芯上)截取所有系统存储器请求。存在从该控制器“流向下游”的两个单独的接口,所述该控制器脱离(exit)CPU封装以耦合至近存储器和远存储器。为了特定类型的存储器修整每一个接口,并且在性能和容量方面可以独立地按比例缩放每一个存储器。
在统一的体系结构方案中,单个存储器接口脱离处理器管芯或CPU封装,并且所有的存储器请求被发送到该接口。MSC控制器连同近存储器和远存储器子系统一起在该单个接口上合并。该存储器接口必须被修整以满足处理器的存储器性能要求,并且必须至少支持事务性的无次序协议,因为PCMS装置可能不按次序处理读请求。根据上面的一般的类别,可以采用下面特定的平台配置。
下面描述的实施例包括各种类型的总线/信道。术语“总线”和“信道”在本文中同义地使用。每个DIMM插座的存储器信道的数量将取决于用在计算机系统中的特别的CPU封装(在一些CPU封装支持的情况下,例如,每个插座三个存储器信道)。
此外,在下面描述的使用DRAM的实施例中,可以使用通过举例而非限制的方式包括 DDR信道(例如,DDR3、DDR4、DDR5等等)的实际上任何类型的DRAM存储器信道。因此,尽管DDR因为它在工业中的广泛接受、结果价格点等等而是有利的,但本发明的根本原理不限于任何特别类型的DRAM或易失性存储器。
图4A图示了分裂的体系结构的一个实施例,其包括一个或多个DRAM装置403-406和一个或多个NVRAM装置,所述一个或多个DRAM装置403-406在CPU封装401中(在处理器管芯上或在单独的管芯上)作为充当用于FM的缓存(即,MSC)的近存储器进行操作,所述一个或多个NVRAM装置诸如是充当远存储器的驻留在DIMM 450-451上的PCM存储器。在CPU封装401上的高带宽链路407使单个或多个DRAM装置403-406互连到处理器310,所述处理器310作为主机运行集成存储器控制器(IMC)331和MSC控制器124。虽然在图4A和下面描述的其它图中图示为单独的单元,但是在一个实施例中,MSC控制器124可以被集成在存储器控制器331内。
DIMM 450-451使用DDR槽以及用DDR地址、数据和控制行和电压(例如,如由电子器件工程联合会(JEDEC)限定的DDR3或DDR4标准)限定DDR信道440的电连接。在DIMM450-451上的PCM装置提供该分裂的体系结构的远存储器容量,其中,到CPU封装401的DDR信道440能够携带DDR协议和事务性协议两者。与处理器310或CPU封装内的其它逻辑(例如,IMC 331或MSC控制器124)传送命令并接收立即响应的DDR协议相反,用来与PCM装置通信的事务性协议允许CPU 401发行一系列事务,每一个事务由唯一事务ID识别。命令由在PCM DIMM中的容纳的一个PCM DIMM上的PCM控制器供应,所述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使用DDR槽和在离开CPU封装401的附加的DDR信道442上的电连接。基于PCM的DIMM 453提供该分裂的体系结构的远存储器容量,其中,到CPU封装401的DDR信道442基于DDR电连接并能够携带DDR协议和事务性协议两者。这允许系统用变化数量的DDR DRAM DIMM 452(例如,DDR4DIMM)和PCM DIMM 453来进行配置,以达到期望的容量和/或性能点。
图4C图示了作为主机运行充当在CPU封装401上(在处理器管芯上或在单独的管芯上)的存储器侧缓存(MSC)的近存储器403-406的分裂的体系结构。如由分裂的体系结构限定的,在CPU封装上的高带宽链路407用来使单个或多个DRAM装置403-406互连到处理器310,所述处理器310作为主机运行存储器控制器331和MSC控制器124。诸如PCM存储器装置的NVRAM驻留在PCI Express卡或竖板455上,所述PCI Express卡或竖板455通过PCIExpress总线454使用PCI Express电连接和PCI Express协议或不同的事务性协议。在PCIExpress卡或竖板455上的PCM装置提供该分裂的体系结构的远存储器容量。
图4D是使用基于DDR DRAM的DIMM 452和DDR信道440形成充当MSC的近存储器的分裂的体系结构。处理器310作为主机运行存储器控制器331和MSC控制器124。诸如PCM存储器装置455的NVRAM驻留在PCI Express卡或竖板上,所述PCI Express卡或竖板通过PCIExpress链路454使用PCI Express电连接和PCI Express协议或不同的事务性协议。在PCIExpress卡或竖板455上的PCM装置提供该分裂的体系结构的远存储器容量,其中,离开CPU封装401的存储器信道接口提供用于DDR DRAM DIMM 452的多个DDR信道440。
图4E图示了作为主机运行充当MSC的近存储器和诸如在PCI Express卡或竖板456上的PCM的远存储器NVRAM两者的统一的体系结构,所述PCI Express卡或竖板456通过PCIExpress总线454使用PCI Express电连接和PCI Express协议或不同的事务性协议。处理器310作为主机运行集成存储器控制器331,但在该统一的体系结构的情况下,MSC控制器124连同DRAM近存储器和NVRAM远存储器一起驻留在卡或竖板456上。
图4F图示了作为主机运行充当MSC的近存储器和诸如在使用DDR信道457的DIMM458上的PCM的远存储器NVRAM两者的统一的体系结构。在该统一的体系结构中的近存储器包括在每一个DIMM 458上的DRAM,其充当对在该相同的DIMM 458上的PCM装置的存储器侧缓存,所述PCM装置形成该特别的DIMM的远存储器。MSC控制器124连同近存储器和远存储器一起驻留在每一个DIMM 458上。在该实施例中,提供了离开CPU封装的DDR总线457的多个存储器信道。该实施例的DDR总线457通过DDR电连接实现事务性协议。
图4G图示了混合分裂的体系结构,MSC控制器124由此驻留在处理器310上,并且近存储器和远存储器接口都共享相同的DDR总线410。通过使用DDR槽和NVRAM(诸如PCM存储器装置),该配置将基于DRAM的DDR DIMM 411a用作充当MSC的近存储器,其中,基于PCM的DIMM411b(即,远存储器)驻留在DDR总线410的相同的存储器信道 上。该实施例的存储器信道同时携带DDR协议和事务性协议两者以分别对近存储器和远存储器DIMM 411a和411b进行寻址。
图4H图示了充当存储器侧缓存的近存储器461a驻留在具有基于DRAM的DDR DIMM形式的小背板或竖板461上的统一的体系结构。存储器侧缓存(MSC)控制器124位于竖板的DDR和PCM控制器460中,所述竖板的DDR和PCM控制器460可以具有连接到在小背板/竖板461上的DDR DIMM信道470且通过一个或多个高性能互连462(诸如差分存储器链路)互连到CPU的两个或更多的存储器信道。相关联的远存储器461b位于相同的小背板/竖板461上,并且由使用DDR信道470并且用NVRAM(诸如PCM装置)填充的DIMM形成。
图4I图示了可以用作对DDR存储器子系统和DIMM 464的存储器容量扩充的统一的体系结构,所述DDR存储器子系统和DIMM 464通过DDR总线471连接到在它的DDR存储器子系统上的CPU封装401。对于在该配置中的附加的基于NVM的容量,充当MSC的近存储器以基于DRAM的DDR DIMM 463a形式驻留小背板或竖板463上。MSC控制器124位于竖板的DDR和PCM控制器460中,所述竖板的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的一个或多个高性能互连470上的,其中,MSC控制器124位于DIMM上。相关联的远存储器坐在相同的DIMM 466上,并且由NVRAM(诸如PCM装置)形成。
图4L图示了使用在DDR总线471上的基于DDR DRAM的DIMM 464形成必要的充当MSC的近存储器的分裂的体系结构。处理器310作为主机运行集成存储器控制器331和存储器侧缓存控制器124。诸如PCM存储器的NVRAM形成驻留在卡或竖板467上的远存储器,通过使用事务性协议,所述卡或竖板467使用高性能互连468进行到CPU封装401的通 信。卡或竖板467作为主机运行远存储器,所述卡或竖板467作为主机运行单个缓冲器/控制器,所述单个缓冲器/控制器可以控制多个基于PCM的存储器或在该竖板上连接的多个基于PCM的DIMM。
图4M图示了可以使用在卡或竖板469上的DRAM形成必要的充当MSC的近存储器的统一的体系结构。诸如PCM存储器装置的NVRAM形成也驻留在卡或竖板469上的远存储器,所述卡或竖板469使用到CPU封装401的高性能互连468。卡或竖板469作为主机运行远存储器,所述卡或竖板469作为主机运行单个缓冲器/控制器,所述单个缓冲器/控制器可以控制多个基于PCM的装置或在该竖板469上的多个基于PCM的DIMM,并且也集成存储器侧缓存控制器124。
在上面描述的实施例中的一些实施例(诸如在图4G中图示的该实施例)中,DRAMDIMM 411a和基于PCM的DIMM 411b驻留在相同的存储器信道上。因此,地址/控制和数据行的相同集合用来将CPU连接到DRAM和PCM存储器两者。为了降低通过CPU网格互连的数据通信量的量,在一个实施例中,在与基于PCM的DIMM共同的存储器信道上的DDR DIMM被配置为充当用于存储在基于PCM的DIMM中的数据的单一的MSC。在这样的配置中,存储在基于PCM的DIMM中的远存储器数据仅在相同的存储器信道内的DDR DIMM近存储器中进行缓存,由此将存储器事务定位到该特别的存储器信道。
此外,为了实现上面的实施例,系统地址空间可以在不同的存储器信道之间逻辑地再分。例如,如果存在四个存储器信道,则系统地址空间的1/4可以被分派给每一个存储器信道。如果每一个存储器信道被提供有一个基于PCMS的DIMM和一个DDR DIMM,则DDRDIMM可以被配置为充当用于系统地址空间的该1/4部分的MSC。
系统存储器和大容量存储装置的选择可以取决于其上采用本发明的实施例的电子平台的类型。例如,在个人计算机、平板计算机、笔记本计算机、智能电话、移动电话、功能电话、个人数字助理(PDA)、便携式媒体播放器、便携式游戏装置、游戏控制台、数字摄像机、交换机、集线器、路由器、机顶盒、数字视频记录器或者具有相对小的大容量存储要求的其它装置中,可以仅仅使用NVRAM大容量存储设备152A或者使用与闪存/磁/光学大容量存储设备152B相组合的NVRAM大容量存储设备152A实现大容量存储设备。在具有相对大的大容量存储要求的其它电子平台(例如,大规模服务器)中,可以使用磁存储设备(例如,硬盘驱动器)或者磁存储设备、光学存储设备、全息存储设备、大容量存储闪存存储器和NVRAM大容量存储设备152A的任何组合实现大容量存储设备。在这样的情况下,对存储负责的系统硬件和/或软件可以实现各种智能的持久性存储分派技术,以便以有效或以其它 有用的方式在FM 151B/NVRAM存储设备152A与闪存/磁/光学大容量存储设备152B之间分派持久性程序代码和数据的块。
例如,在一个实施例中,高功率的服务器被配置有近存储器(例如,DRAM)、PCMS装置和用于大量的持久性存储的磁大容量存储装置。在一个实施例中,笔记本计算机被配置有近存储器和PCMS装置,所述PCMS装置执行远存储器和大容量存储装置两者的角色(即,如图3所示,其被逻辑地分区以执行这些角色)。家庭或办公台式计算机的一个实施例类似于笔记本计算机进行配置,但也可以包括一个或多个磁存储装置以提供大量的持久性存储能力。
平板计算机或蜂窝电话装置的一个实施例被配置有PCMS存储器,但可能没有近存储器,并且没有附加的大容量存储设备(为了节省成本/功率)。然而,平板/电话可以被配置有可移除大容量存储装置,诸如闪存或PCMS记忆棒。
可以如上面描述的配置各种其它类型的装置。例如,可以以类似于上面描述的平板/电话的方式配置便携式媒体播放器和/或个人数字助理(PDA),可以以与台式计算机或膝上型计算机类似的方式配置游戏控制台。可以进行类似配置的其它装置包括数字摄像机、路由器、机顶盒、数字视频记录器、电视机和汽车。
基于一个或多个使用统计量追踪的远存储器信令
如上面提及的,各种远存储器技术的存储单元(诸如PCMS),可以具有依据它们的使用的各种可靠性关注。例如,施加到远存储器存储单元的适当的读和/或写低电平访问信号(例如,脉冲宽度、电压幅度、电流幅度等等)可以根据它已经被写入的次数而改变。此外,用于远存储器存储单元的适当的读阈值电压(其也可以被视作模拟访问信号)可以根据自自从写入存储单元所流逝的时间的长度而改变。
如先前提到的,为了解决这些可靠性关注,损耗均衡算法可以用来“展开”对单元的访问,以试图跨越PCMS存储装置的存储单元保持低电平信令特性近似相同。然而,损耗均衡算法可能是高成本实现的。例如,损耗均衡算法在重度使用的存储单元和最低程度使用的存储单元的数据被“交换”的时间段期间可以临时暂停远存储器访问。这具有降低远存储器性能的效果。此外,实现损耗均衡功能所需的逻辑电路可能消耗许多逻辑门,使得如果最接近于远存储器存储装置自身而实现(例如,在相同的DIMM卡上或在相同的SSD封装内),则可能超过或以其它方式挑战远存储器附加在其上的外围平台的功率和表面面积约束。
所以,可以有益的是,不强调或完全避免在具有远存储器技术的系统中使用损耗均衡。
根据一个可能的方法,追踪远存储器存储地址的特定集合的一个或多个使用统计量,并且按照追踪的访问确定施加到该地址集合的适当的低电平信令性质。此处,使用统计量在正常系统操作期间,而非仅在系统突然停止、系统测试诊断和/或响应于系统故障处被追踪和利用。然后,施加适当的低电平信号。然而,显著地,适当的低电平信号的特定特性(例如,特定波形形状、诸如特定电压和电流的特定模拟参数)和用于确定适当的信号所根据的追踪参数的特别的值(例如,写访问的特定数量和/或自最后的写以来所已经流逝的特定时间量)应当取决于所采用的特定远存储器技术(例如,PCMS的类型、PCMS的生成等等)。
所以,系统设计者必须实现能够施加作为与存储装置的特别的技术无关的追踪参数的函数的适当的信号的普通平台。即,平台实质上支持用来将特定低电平访问信号特性(例如,特定脉冲宽度、特定电压幅度、特定电流幅度、特定读阈值电压等等)和确定这样的信号值所根据的特定追踪值参数(例如,特定的写的数量、自最后的写以来所的特定时间量)“编程”到系统的NVRAM电路532中的能力,其中,特定信号特性和追踪值是依据在系统中驻留的特定类型的远存储器技术。
图5和6提供了这样的平台的表示。图5示出了用于NVRAM控制器532的硬件体系结构的部件,并且图6示出了可以由硬件体系结构执行的基本方法。参考图5,例如,可以使用NVRAM控制器532访问计算机系统的主存储器,其中,主存储器仅具有PCMS技术或组合的近/远存储器技术(例如,DRAM和PCMS)。例如,NVRAM控制器532可以耦合至或包括DIMM卡插入的主存储器信道。可替换地,NVRAM控制器532可以用来访问计算机系统的大容量存储设备。例如,NVRAM控制器532可以耦合至SSD封装,和/或被集成在SSD封装内。
第一相关被例示为针对存储器核心516的地址空间501_1到501_N的N个集合中的每一个集合追踪特定使用参数502_1到502_N。例如,存储器核心516可以用耦合至相同的存储器信道的PCMS装置实现,并且PCMS装置的地址空间被分解为N个地址集合501_1到501_N。也就是说,由存储器信道支持的存储器存储设备的地址空间可以被视作被布置为N个地址集合501_1到501_N。
此处,如果X个位用来指定对存储器核心516的地址,则存在2X个唯一地址。如果存在N个地址集合,则每一个唯一地址集合将因此对应于2X/N个唯一地址。例如,如果存储器信道使用24位的地址来访问存储器核心516,则存在由存储器信道支持的224=16,777,216个唯一存储器地址。如果存储器信道的存储器地址空间被配置为N=214=16384个唯一地址集合501_1到501_N,则每一个地址集合将对应于由存储器信道支持的224/214=210=1,024个唯一地 址。集合可以表示连续地址空间,但它们不需要以这种方式进行组织。例如,可以使用某种形式的交错,使得在相同的集合中的连续地址具有N或基于N的值的数字偏移量。仍进一步地,用于确定哪些地址属于哪个集合的策略可以基于存储器核心516的结构上的和/或布线的体系结构。下面进一步描述对可能的地址集合限定方案的更透彻的讨论。
无论什么方案用来将特定地址组织到不同的地址集合中,都并入到地址解码器503中。此处,地址解码器503接收601作为输入的以存储器核心516为目标的读或写事务的地址,并且作为响应,产生602作为输出的地址所属的特定集合的标识符506。此处,N可以是可编程的,并且可以是提供给地址解码器503的输入项。
响应于地址解码器503识别进来的地址所属的特别的地址集合,从第一级别的查找电路504(诸如内容可寻址存储器(CAM)电路)查找603用于该地址集合的追踪统计量。在实施例中,针对每一个地址集合保持两个追踪统计量:1)写访问的总数量507;和2)最后写操作的时间508。在进一步的实施例中,针对以存储器核心516为目标的写事务更新这些统计量,但不针对以存储器核心516为目标的读事务更新604这些统计量(如果更新,它们最终被回写入第一级别存储电路504)。具体地,如果进来的事务是写事务,则写访问的数量507被增加1,并且最后写操作的时间508被更新为当前时间。
然后,取出的(并且可能更新的)使用统计量用作对第二查找级别505的查找参数,以取回605用于暗示的地址集合511的适当的低电平信令特性(或特性集合或“签名”)的数字表示(例如,多个位)。例如,如在图5的实施例中观察的,针对暗示的地址集合取回的写的总数量统计量507用作对存储电路509(其也可以用CAM电路实现)的查找参数,以取回低电平签名511。低电平信令签名511实质上是数字代码或其它表示,根据其可以确定用于特别的事务(读或写)的存储器核心516的适当的低电平信令(例如,波形形状、电压幅度、电流幅度等等中的任何一个或多个)和暗示的地址集合。如在它的存储电路509(例如,CAM)内包含的签名511可以具有读签名和写签名,并且根据在手边的事务类型使用这些中的任何适当的一个。此处,值得注意的是,各种类型的PCMS装置可能实际上在写之前执行“预读”,因此,写事务可能实际上用读操作和写操作两者来实现。在这种情况下,读签名和写签名两者将都被包含在用来实现事务的总签名信息中。值得注意地,如在图5中观察的,存储电路509具有对应于粒度的X个条目,在所述粒度下,用作查找参数(例如,写的总数量)的追踪统计量被设计来影响施加到用于事务的存储器核心516的特定低电平信号。
此外,如在图5的实施例中观察的,在读操作的情况下,在第二查找级别505中(例如,在另一个CAM电路510中)执行另一个查找。此处,在第一查找中取出的最后写操作的 时间统计量508由逻辑电路511使用,以计算自最后写操作以来已经流逝的时间量。然后,自最后写操作511以来流逝的时间用作到存储电路510中的查找参数,以便当读目标存储单元时取出用来施加的适当的读阈值电压512的签名。然后,将可应用签名511、512提供给低级别存储器访问电路514,所述低级别存储器访问电路514具有数模转换器和/或波成形电路,其帮助实现施加至存储器核心516的正确的模拟信号。
在实施例中,第二级别查找存储电路509、510限定具有范围的它的一个或多个搜索关键列条目。当输入项落入范围中的一个范围内时认可命中。例如,用于查找表509的搜索列的条目可以由写操作的总数量的不同的连续范围组成(例如,0到1,000用于第一条目;1,001到10,000用于第二条目等等)。当从第一查找级别504取出用于可应用地址集合的写操作的总数量时,它将命中在表510的搜索列的范围中的一个范围内,其转而将识别用于事务的适当的模拟信号签名。
根据各种方法,各个地址集合501_1至501_N由连续的地址(地址范围)组成,并且地址解码器503包含装仓(binning)逻辑,其可以确定特别的地址与哪一个地址范围相关联。例如,逻辑电路503可以被告知或计算用于N个连续的地址范围的适当的地址范围,并且可以进一步利用用于每一个集合/范围的最小和最大地址填充2N个寄存器。在具有耦合至用于集合/范围的寄存器的比较逻辑电路(例如,对于相同的集合/范围,“大于”比较电路耦合至最小地址值寄存器,并且“小于”比较电路耦合至最大地址值寄存器)的情况下,逻辑电路可以确定接收的地址属于哪一个集合(例如,大于和小于比较电路两者都表示逻辑“真”)。
在更简单的方法中,地址集合标识符506可以是事务地址或事务地址的部分(例如,地址的行分量或列分量,或者其部分)。此处,在第一级别的查找504中的各个地址集合501_1到501_N可以由地址(或地址部分)范围限定。
在其它方法中,地址集合由具有相对于彼此的固定偏移量的交错的地址(例如,集合中的每一个地址具有相对于它在相同集合中的相邻地址的N的偏移量)组成,而不是具有连续的地址范围。在这种情况下,地址解码器503可以包括划分逻辑电路,其通过基于N的值来划分进来的地址,并且检查剩余部分以识别地址属于什么集合。
如设计到地址解码器503中的用于确定地址集合的方法也可以考虑存储器核心516自身的结构。例如,耦合至相同行或相同列的存储单元可以被分组为相同集合,因为这样的单元耦合至存储器核心内的共同的关键性节点(例如,相同的行节点或相同的列节点),其可应用脉冲宽度、电压/电流幅度等等以相似的方式对单元加压力。同样地,追踪作为组的这些单 元的使用并且确定用来向它们施加的作为组的适当低电平信号很大程度上与在个别单元接单元基础上追踪使用并将信号施加至单元的更理想(但较不实际)的方案一致。为了进一步降低追踪的数据量,来自核心的不同的行/列的地址可以被分组为相同集合,如果它们的布线被认为近似于彼此,和/或存在在存储器核心内的某种其它结构性关系,所述其它结构性关系导致相信它们可以根据对作为整体的组进行的访问接收相同的低电平信令。
也可以存在与图5中描绘的硬件平台体系结构不同的硬件平台体系结构。例如,图5的体系结构指示了低电平信令签名511、512两者都根据相同的地址集合限定被确定。在替换的方法中,签名511、512可以由不同的地址集合限定驱动,其转而对应于存储器核心体系结构的不同部分的分组。例如,用于写操作或读操作的低电平信令签名511(而非在读操作的情况下的读阈值电压)可以根据地址的列分量已经被写入的总次数(或者存储器核心布线和/或结构的其它第一分组)来确定。
相比之下,用于读操作的读阈值电压512可以根据自最后写入地址的对应行分量以来流逝的时间(或者其它不同的核心布线和/或结构的第二分组)来确定。这将对应于不同类型的集合标识符506(一个用于读事务,以及一个用于写事务)以及在第一级别查找504中的可能两个单独的查找电路(第一CAM用于读,以及第二CAM用于写)。再次,普通技术人员可以根据存储器核心516的结构的低级别设计细节确定什么地址分组适于根据对作为整体的组进行的访问许可相同的信号应用,以及什么追踪统计量是相干的,事务类型是否是相干的(读或写)和特定低电平信令必须是什么。
在另一个可能的实施例中,对于单个输入事务地址,与相同行(或其它第一地址分组)相关联的地址被识别在第一地址集合中,并且与相同列(或其它第二地址分组)相关联的地址被识别是第二地址集合。针对所有集合追踪写的总数量和最后写的时间,使得系统针对系统中的每一行和每一列(或更一般地,两个不同的分组)追踪写的总数量和最后写的时间。在这种情况下,针对单个事务地址输入产生追踪统计量的两个集合(例如,写访问的总数量的两个集合)。追踪统计可以以某种方式(例如,每一个相等地加权,或者一个比另一个更重地加权)相加或进行数学组合,以便例如基于两个地址分组的组合的观点(例如,组合的行和列的观点)建立用于目标单元的写地址的总数量。然后,总数量可以用作到第二阶段查找505中的查找参数,以基于该组合的观点产生模拟信令签名。
再次,为了降低追踪的信息量,上面描述的“行”或“列”可以改为更大的不同的存储器核心结构和/或布线的分组,其中,基于对作为整体的对应组的访问,相同的低电平信令是适当的。
地址解码器503为了配置自身以适当地识别用于任何事务地址输入的正确地址集合,将识别存储器核心类型的信息、用于存储器核心类型的地址集合、或者用于确定用于存储器核心的地址集合(例如,连续的范围、交错的等等)的一个或多个可应用函数提供给NVRAM控制器532。根据一个方法,该信息由存储器核心516(例如,其中具有预编程的信息)传送到NVRAM控制器532。根据另一个方法,该信息被保持在系统BIOS中并被提供给NVRAM控制器532。在二者之中任一方法中,信息可以在系统暂停处被提供给NVRAM控制器532。然后,信息由NVRAM控制器532使用以在内部配置地址解码器503,使得它随后可以确定用于任何给定的读或写事务地址的正确地址集合。
图7A-D示出了上面描述的技术可以被集成到计算系统内的存储器信道中的不同的可能方式。此处,存储器信道被理解为包括主机侧701和耦合至存储器信道的互连结构(诸如总线)703的一个或多个平台702(例如,DIMM卡、SDD装置等等)。一个或多个平台702具有包括非易失性存储器装置(诸如PCMS装置)716的存储装置。接口电路717也可以驻留在平台上,以专门地对存储器装置716进行寻址。此处,接口电路717可以被视作对于存储核心716本地(例如,在DIMM卡上或在SSD封装内)的NVRAM控制器的部件,而在图7A-D中描绘为“存储器控制器701”的主机侧可以被视作NVRAM控制器的主机侧部件。在标准方法中,存储器控制器701利用对应存储器地址将读或写命令发送到接口电路717。接口电路717响应于接收的命令,对存储器存储装置执行期望的操作(读或写)。
此处,图7A-D的存储装置716可以被视作上面相对于图5指代的存储器核心516。如在图7A-D中观察的,将接收的签名转换为实际低电平信号的D/A电路和/或波形电路714a位于接口电路717a(和/或一个或多个存储器装置716a)中。上面描述的技术的所有其它角色/责任可以在存储器控制器701a上完整地实现,在接口电路717a上完整地实现,或者可以在这两者上部分地实现。
在一个极端处,如在图7A中观察的,剩下的角色/责任中的全部在存储器控制器701a上完整地实现。即,地址解码器703a、第一级别查找存储电路704a和第二级别查找存储电路705a中的每一个以及在其间的任何逻辑驻留在存储器控制器701a上。在这种情况下,对于发送到远接口电路717a的读或写命令,存储器控制器701a也将一个或多个可应用低电平信令签名711a(例如,其可以进一步包括用于读操作的读阈值电压签名)发送到接口电路717。
在另一个极端处,如在图7B中观察的,这些角色/责任703b、704b、705b中的全部改为在接口电路717b上实现。同样地,对于读和写事务两者,存储器控制器701b发送带有地址的读或写命令,但用来确定可应用低电平信令签名的任何附加的信息不被发送到接口电路717b,因为关于适当的低电平信令的所有确定可以在一个或多个存储装置716驻留的平台上本地做出。
在跨越信道共享角色/责任的情况下,如在图7C和7D中观察的,存储器控制器701c将除了签名自身以外的与低电平信令签名相关并用于确定其的信息发送到接口电路717c。
例如,根据在图7C中观察的方法,存储器控制器701c包括地址解码器703c,使得它可以确定哪一个地址集合或哪一些地址集合由事务地址暗示。然后,存储器控制器将暗示的地址集合的标识符717c发送到接口电路717c。然后,包括第一和第二级别查找电路704c、705c的接口电路717c(例如,通过执行第一和第二阶段查找两者)根据地址集合信息确定可应用低电平信令签名。
根据在图7D中观察的另一个方法,存储器控制器701d包括地址解码器703d,并且确定用于事务的地址的适当的地址集合。存储器控制器701d也包括第一级别查找电路704d,并且查找针对地址集合追踪的信息。然后,将追踪信息707c(例如,写的总数量和/或最后写的时间或自最后的写以来所流逝的时间)发送到接口电路717d,所述接口电路717d使用该信息确定可应用低电平信令签名。根据实现,在读操作的情况下,存储器控制器701d可以包括用来确定自最后的写以来所流逝的时间的逻辑,或者,这样的逻辑可以位于接口电路717上。
Claims (18)
1.一种用于处理读或写事务的方法,包括:
接收用于对非易失性系统存储器装置的读或写事务的地址;
基于所述地址确定所述地址属于的地址集合;
针对所述地址集合确定所述存储器装置的使用统计量,所述确定包括使用所述地址来生成到存储所述使用统计量的第二存储电路的第二输入,所述第二存储电路响应于被提供以所述第二输入而提供所述使用统计量;
基于所述使用统计量确定将被施加至用于所述读或写事务的所述存储器装置的信号的特性,所述确定所述信号的所述特性包括使用所述使用统计量来生成到存储所述信号的所述特性的第一存储电路的第一输入,所述第一存储电路提供所述信号的所述特性;以及
生成具有所述特性的信号,以执行所述读或写事务。
2.权利要求1所述的方法,其中所述使用统计量包括总的写。
3.权利要求1所述的方法,其中所述使用统计量包括自最后的写以来所流逝的时间。
4.权利要求3所述的方法,其中所述特性是特定读阈值电压。
5.权利要求1所述的方法,其中存储器控制器确定所述地址属于的所述地址集合。
6.权利要求5所述的方法,其中使用统计量的所述确定是由所述存储器控制器确定的。
7.权利要求1所述的方法,其中在其上设置所述存储器装置的相同平台上设置的接口电路执行所述使用统计量的所述确定。
8.权利要求1所述的方法,其中在其上设置所述存储器装置的相同平台上设置的接口电路执行所述信号的所述特性的所述确定。
9.一种用于处理读或写事务的设备,包括:
第一存储电路,用来存储信号特性,当在非易失性系统存储器装置上执行读或写事务时将生成具有所述信号特性的信号,所述第一存储电路用来在第一输出端处提供所述信号特性,响应于在所述第一存储电路的输入端处针对地址集合接收所述存储器装置的使用统计量,由所述第一存储电路在所述第一输出端处提供所述信号特性,所述读或写事务的地址是所述地址集合的成员;
电路,用来基于所述读或写事务的地址确定所述地址集合;以及
第二存储电路,具有耦合至所述第一存储电路的所述输入端的第二输出端,所述第二存储电路用来存储所述使用统计量,响应于在所述第二存储电路的第二输入端处接收由所述电路提供用来确定所述地址集合的所述地址集合的标识符,由所述第二存储电路在所述第二输出端处提供所述使用统计量。
10.权利要求9所述的设备,其中所述第一存储电路是CAM电路。
11.权利要求9所述的设备,进一步包括:地址解码器电路,具有耦合至所述第二存储电路的所述第二输入端的第三输出端,所述地址解码器用来根据所述读或写事务的地址提供所述地址集合的所述标识符。
12.权利要求11所述的设备,其中所述地址解码器进一步包括:寄存器,用来存储所述存储器装置的地址空间的地址范围。
13.权利要求9所述的设备,进一步包括:数模电路,耦合来自所述第一输出端的下游,所述数模电路用来接收所述信号特性并生成所述信号。
14.权利要求9所述的设备,其中所述第一存储电路在存储器控制器上实现。
15.权利要求9所述的设备,其中所述第一存储电路在接口电路上实现,所述接口电路被设置在与所述非易失性系统存储器装置被设置在其上的平台相同的平台上。
16.一种用于处理读或写事务的设备,包括:
信道;
存储器控制器,耦合至所述信道;
平台,耦合至所述信道,所述平台具有在其上设置的非易失性系统存储器装置和接口电路;所述存储器控制器或接口电路进一步包括:第一存储电路,用来存储信号特性,当在所述存储器装置上执行读或写事务时将生成具有所述信号特性的信号,所述第一存储电路用来在第一输出端处提供所述信号特性,响应于在所述第一存储电路的输入端处针对地址集合接收所述非易失性系统存储器装置的使用统计量,由所述第一存储电路在所述第一输出端处提供所述信号特性,其中所述读或写事务的地址是所述地址集合的成员,所述地址集合特定地由接收作为输入的读或写事务的地址的电路所标识;
第二存储电路,具有耦合至所述第一存储电路的所述输入端的第二输出端,所述第二存储电路用来存储所述使用统计量,响应于在所述第二存储电路的第二输入端处接收由所述电路提供的特定地标识所述地址集合的所述地址集合的标识符,由所述第二存储电路在所述第二输出端处提供所述使用统计量。
17.权利要求16所述的设备,进一步包括:地址解码器电路,具有耦合至所述第二存储电路的所述第二输入端的第三输出端,所述地址解码器用来根据所述读或写事务的地址提供所述地址集合的所述标识符。
18.权利要求17所述的设备,其中所述地址解码器进一步包括:寄存器,用来存储所述非易失性系统存储器装置的地址空间的地址范围。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/054379 WO2013048467A1 (en) | 2011-09-30 | 2011-09-30 | Generation of far memory access signals based on usage statistic tracking |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103946813A CN103946813A (zh) | 2014-07-23 |
CN103946813B true CN103946813B (zh) | 2017-08-25 |
Family
ID=47996199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180075119.XA Active CN103946813B (zh) | 2011-09-30 | 2011-09-30 | 基于使用统计量追踪的远存储器访问信号的生成 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9600407B2 (zh) |
EP (1) | EP2761467B1 (zh) |
CN (1) | CN103946813B (zh) |
TW (1) | TWI518686B (zh) |
WO (1) | WO2013048467A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874865B2 (en) * | 2011-09-09 | 2014-10-28 | International Business Machines Corporation | Memory type-specific access control of a field of a record |
WO2013048493A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Memory channel that supports near memory and far memory access |
CN104115136B (zh) | 2011-09-30 | 2017-12-08 | 英特尔公司 | 非易失性随机访问存储器中存储bios的装置、方法和系统 |
US9829951B2 (en) | 2011-12-13 | 2017-11-28 | Intel Corporation | Enhanced system sleep state support in servers using non-volatile random access memory |
US9448922B2 (en) | 2011-12-21 | 2016-09-20 | Intel Corporation | High-performance storage structures and systems featuring multiple non-volatile memories |
WO2013095559A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Power conservation by way of memory channel shutdown |
US9202548B2 (en) | 2011-12-22 | 2015-12-01 | Intel Corporation | Efficient PCMS refresh mechanism |
CN104137084B (zh) | 2011-12-28 | 2017-08-11 | 英特尔公司 | 提高耐久性和抗攻击性的用于pcm缓存的有效动态随机化地址重映射 |
US9899066B2 (en) * | 2012-09-10 | 2018-02-20 | Texas Instruments Incorporated | Priority based backup in nonvolatile logic arrays |
US9697905B2 (en) | 2013-05-31 | 2017-07-04 | Sandisk Technologies Llc | Updating read voltages using syndrome weight comparisons |
US10475523B2 (en) | 2013-05-31 | 2019-11-12 | Western Digital Technologies, Inc. | Updating read voltages triggered by the rate of temperature change |
US9728263B2 (en) * | 2013-05-31 | 2017-08-08 | Sandisk Technologies Llc | Method and device for iteratively updating read voltages |
KR102116258B1 (ko) * | 2013-12-24 | 2020-06-05 | 삼성전자주식회사 | 메모리 시스템 및 그것을 포함하는 유저 장치 |
KR102211865B1 (ko) * | 2014-05-20 | 2021-02-04 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
US10204047B2 (en) | 2015-03-27 | 2019-02-12 | Intel Corporation | Memory controller for multi-level system memory with coherency unit |
US10073659B2 (en) | 2015-06-26 | 2018-09-11 | Intel Corporation | Power management circuit with per activity weighting and multiple throttle down thresholds |
US10387259B2 (en) | 2015-06-26 | 2019-08-20 | Intel Corporation | Instant restart in non volatile system memory computing systems with embedded programmable data checking |
US10108549B2 (en) | 2015-09-23 | 2018-10-23 | Intel Corporation | Method and apparatus for pre-fetching data in a system having a multi-level system memory |
US10185501B2 (en) | 2015-09-25 | 2019-01-22 | Intel Corporation | Method and apparatus for pinning memory pages in a multi-level system memory |
US10261901B2 (en) | 2015-09-25 | 2019-04-16 | Intel Corporation | Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory |
US9792224B2 (en) | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
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 |
US10095618B2 (en) | 2015-11-25 | 2018-10-09 | Intel Corporation | Memory card with volatile and non volatile memory space having multiple usage model configurations |
US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
US20170177482A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Computing system having multi-level system memory capable of operating in a single level system memory mode |
US9747041B2 (en) | 2015-12-23 | 2017-08-29 | Intel Corporation | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
US10007606B2 (en) | 2016-03-30 | 2018-06-26 | Intel Corporation | Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory |
US10185619B2 (en) | 2016-03-31 | 2019-01-22 | Intel Corporation | Handling of error prone cache line slots of memory side cache of multi-level system memory |
US10120806B2 (en) | 2016-06-27 | 2018-11-06 | Intel Corporation | Multi-level system memory with near memory scrubbing based on predicted far memory idle time |
US10915453B2 (en) | 2016-12-29 | 2021-02-09 | Intel Corporation | Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures |
US10445261B2 (en) | 2016-12-30 | 2019-10-15 | Intel Corporation | System memory having point-to-point link that transports compressed traffic |
CN108733311B (zh) * | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
US10304814B2 (en) | 2017-06-30 | 2019-05-28 | Intel Corporation | I/O layout footprint for multiple 1LM/2LM configurations |
US11188467B2 (en) | 2017-09-28 | 2021-11-30 | Intel Corporation | Multi-level system memory with near memory capable of storing compressed cache lines |
US10418097B2 (en) | 2017-11-27 | 2019-09-17 | Western Digital Technologies, Inc. | Non-volatile storage system with read calibration |
US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
US11099995B2 (en) | 2018-03-28 | 2021-08-24 | Intel Corporation | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory |
US10811091B2 (en) | 2018-10-12 | 2020-10-20 | Western Digital Technologies, Inc. | Adaptive processing for read threshold voltage calibration |
US11055228B2 (en) | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
US11036642B2 (en) * | 2019-04-26 | 2021-06-15 | Intel Corporation | Architectural enhancements for computing systems having artificial intelligence logic disposed locally to memory |
US20220345414A1 (en) * | 2019-08-30 | 2022-10-27 | Unitex Corporation | Interface Conversion Device |
KR20220070951A (ko) | 2020-11-23 | 2022-05-31 | 삼성전자주식회사 | 메모리 장치, 이를 포함하는 시스템 및 메모리 장치의 동작 방법 |
US11860773B2 (en) * | 2022-02-03 | 2024-01-02 | Micron Technology, Inc. | Memory access statistics monitoring |
US12093540B2 (en) | 2022-04-21 | 2024-09-17 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for selecting devices in tiered memory |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259627B1 (en) * | 2000-01-27 | 2001-07-10 | Multi Level Memory Technology | Read and write operations using constant row line voltage and variable column line load |
CN101118782A (zh) * | 2006-08-01 | 2008-02-06 | 国际商业机器公司 | 存储和检索处理系统的数据的存储器系统和性能监视方法 |
CN101496110A (zh) * | 2006-05-12 | 2009-07-29 | 爱诺彼得技术有限责任公司 | 存储设备中的失真估计和消除 |
Family Cites Families (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3451099B2 (ja) | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
US6161208A (en) | 1994-05-06 | 2000-12-12 | International Business Machines Corporation | Storage subsystem including an error correcting cache and means for performing memory to memory transfers |
US5517615A (en) | 1994-08-15 | 1996-05-14 | Unisys Corporation | Multi-channel integrity checking data transfer system for controlling different size data block transfers with on-the-fly checkout of each word and data block transferred |
US6470405B2 (en) * | 1995-10-19 | 2002-10-22 | Rambus Inc. | Protocol for communication with dynamic memory |
US5974576A (en) | 1996-05-10 | 1999-10-26 | Sun Microsystems, Inc. | On-line memory monitoring system and methods |
JP3210590B2 (ja) | 1996-11-29 | 2001-09-17 | 株式会社日立製作所 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
US5822251A (en) | 1997-08-25 | 1998-10-13 | Bit Microsystems, Inc. | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers |
JP3098486B2 (ja) | 1998-03-31 | 2000-10-16 | 山形日本電気株式会社 | 不揮発性半導体記憶装置 |
US6038166A (en) * | 1998-04-01 | 2000-03-14 | Invox Technology | High resolution multi-bit-per-cell memory |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US7827348B2 (en) | 2000-01-06 | 2010-11-02 | Super Talent Electronics, Inc. | High performance flash memory devices (FMD) |
US6868472B1 (en) | 1999-10-01 | 2005-03-15 | Fujitsu Limited | Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory |
US8171204B2 (en) | 2000-01-06 | 2012-05-01 | Super Talent Electronics, Inc. | Intelligent solid-state non-volatile memory device (NVMD) system with multi-level caching of multiple channels |
US6922350B2 (en) | 2002-09-27 | 2005-07-26 | Intel Corporation | Reducing the effect of write disturbs in polymer memories |
US7328304B2 (en) | 2004-02-27 | 2008-02-05 | Intel Corporation | Interface for a block addressable mass storage system |
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 |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US7441081B2 (en) | 2004-12-29 | 2008-10-21 | Lsi Corporation | Write-back caching for disk drives |
US7681004B2 (en) | 2005-06-13 | 2010-03-16 | Addmm, Llc | Advanced dynamic disk memory module |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
US7797479B2 (en) | 2005-06-30 | 2010-09-14 | Intel Corporation | Technique to write to a non-volatile memory |
KR100609621B1 (ko) | 2005-07-19 | 2006-08-08 | 삼성전자주식회사 | 메모리 블락별로 레이턴시 제어가 가능한 동기식 반도체메모리 장치 |
US7533215B2 (en) | 2005-09-15 | 2009-05-12 | Intel Corporation | Distributed and packed metadata structure for disk cache |
US7516267B2 (en) | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
US7516349B2 (en) | 2005-12-29 | 2009-04-07 | Intel Corporation | Synchronized memory channels with unidirectional links |
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 |
US7761657B2 (en) | 2006-07-10 | 2010-07-20 | Hitachi, Ltd. | Storage control system, control method for storage control system, port selector, and controller |
US7587559B2 (en) * | 2006-08-10 | 2009-09-08 | International Business Machines Corporation | Systems and methods for memory module power management |
US7555605B2 (en) | 2006-09-28 | 2009-06-30 | Freescale Semiconductor, Inc. | Data processing system having cache memory debugging support and method therefor |
WO2008040028A2 (en) | 2006-09-28 | 2008-04-03 | Virident Systems, Inc. | Systems, methods, and apparatus with programmable memory control for heterogeneous main memory |
US7774556B2 (en) * | 2006-11-04 | 2010-08-10 | Virident Systems Inc. | Asymmetric memory migration in hybrid main memory |
US9153337B2 (en) * | 2006-12-11 | 2015-10-06 | Marvell World Trade Ltd. | Fatigue management system and method for hybrid nonvolatile solid state memory system |
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 |
US8799620B2 (en) | 2007-06-01 | 2014-08-05 | Intel Corporation | Linear to physical address translation with support for page attributes |
KR101498673B1 (ko) | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
CN101237546A (zh) | 2007-11-13 | 2008-08-06 | 东南大学 | 应用于车载环境的高速音视频海量存储方法及其装置 |
US7941692B2 (en) | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
TWI373768B (en) | 2008-02-05 | 2012-10-01 | Phison Electronics Corp | System, controller and method for data storage |
TWI437429B (zh) | 2008-06-04 | 2014-05-11 | A Data Technology Co Ltd | 多通道混合密度記憶體儲存裝置及其控制方法 |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US20090327837A1 (en) | 2008-06-30 | 2009-12-31 | Robert Royer | NAND error management |
US9152569B2 (en) | 2008-11-04 | 2015-10-06 | International Business Machines Corporation | Non-uniform cache architecture (NUCA) |
US8375241B2 (en) | 2009-04-02 | 2013-02-12 | Intel Corporation | Method and system to improve the operations of a registered memory module |
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 |
US8159881B2 (en) * | 2009-06-03 | 2012-04-17 | Marvell World Trade Ltd. | Reference voltage optimization for flash 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 |
US8626997B2 (en) | 2009-07-16 | 2014-01-07 | Micron Technology, Inc. | Phase change memory in a dual inline memory module |
CN102473140B (zh) | 2009-07-17 | 2015-05-13 | 株式会社东芝 | 存储器管理装置 |
US8077515B2 (en) | 2009-08-25 | 2011-12-13 | Micron Technology, Inc. | Methods, devices, and systems for dealing with threshold voltage change in memory devices |
US8249099B2 (en) | 2009-08-27 | 2012-08-21 | Texas Instruments Incorporated | External memory data management with data regrouping and channel look ahead |
US20110087824A1 (en) | 2009-10-08 | 2011-04-14 | Giga-Byte Technology Co.,Ltd. | Flash memory accessing apparatus and method thereof |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US20110197031A1 (en) | 2010-02-05 | 2011-08-11 | Nokia Corporation | Update Handler For Multi-Channel Cache |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
US9189385B2 (en) * | 2010-03-22 | 2015-11-17 | Seagate Technology Llc | Scalable data structures for control and management of non-volatile storage |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
GB201011146D0 (en) * | 2010-07-02 | 2010-08-18 | Vodafone Ip Licensing Ltd | Mobile computing device |
US8838935B2 (en) | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
CN101989183A (zh) | 2010-10-15 | 2011-03-23 | 浙江大学 | 混合主存储器实现节能存储的方法 |
US8806106B2 (en) * | 2010-11-12 | 2014-08-12 | Seagate Technology Llc | Estimating wear of non-volatile, solid state memory |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US9779020B2 (en) | 2011-02-08 | 2017-10-03 | Diablo Technologies Inc. | System and method for providing an address cache for memory map learning |
US8595597B2 (en) | 2011-03-03 | 2013-11-26 | Intel Corporation | Adjustable programming speed for NAND memory devices |
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 |
CN102209262B (zh) * | 2011-06-03 | 2017-03-22 | 中兴通讯股份有限公司 | 一种内容调度的方法、装置和系统 |
US20120324195A1 (en) | 2011-06-14 | 2012-12-20 | Alexander Rabinovitch | Allocation of preset cache lines |
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 |
US8767482B2 (en) | 2011-08-18 | 2014-07-01 | Micron Technology, Inc. | Apparatuses, devices and methods for sensing a snapback event in a circuit |
EP2761471B1 (en) | 2011-09-30 | 2017-10-25 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
-
2011
- 2011-09-30 EP EP11873232.0A patent/EP2761467B1/en active Active
- 2011-09-30 US US13/996,525 patent/US9600407B2/en active Active
- 2011-09-30 CN CN201180075119.XA patent/CN103946813B/zh active Active
- 2011-09-30 WO PCT/US2011/054379 patent/WO2013048467A1/en active Application Filing
-
2012
- 2012-08-27 TW TW101130980A patent/TWI518686B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259627B1 (en) * | 2000-01-27 | 2001-07-10 | Multi Level Memory Technology | Read and write operations using constant row line voltage and variable column line load |
CN101496110A (zh) * | 2006-05-12 | 2009-07-29 | 爱诺彼得技术有限责任公司 | 存储设备中的失真估计和消除 |
CN101118782A (zh) * | 2006-08-01 | 2008-02-06 | 国际商业机器公司 | 存储和检索处理系统的数据的存储器系统和性能监视方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130290597A1 (en) | 2013-10-31 |
CN103946813A (zh) | 2014-07-23 |
WO2013048467A1 (en) | 2013-04-04 |
EP2761467A1 (en) | 2014-08-06 |
TWI518686B (zh) | 2016-01-21 |
US9600407B2 (en) | 2017-03-21 |
EP2761467A4 (en) | 2015-03-11 |
EP2761467B1 (en) | 2019-10-23 |
TW201322261A (zh) | 2013-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103946813B (zh) | 基于使用统计量追踪的远存储器访问信号的生成 | |
CN103946812B (zh) | 用于实现多级别存储器分级体系的设备和方法 | |
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN104050112B (zh) | 用于标记需要写回持久存储的非事务代码区的开头和结束的指令 | |
CN103988183B (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
CN103946826B (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
US10241943B2 (en) | Memory channel that supports near memory and far memory access | |
CN104106057B (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 | |
CN103975287B (zh) | 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持 | |
CN103946816B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
CN104115136B (zh) | 非易失性随机访问存储器中存储bios的装置、方法和系统 | |
CN103999161B (zh) | 用于相变存储器漂移管理的设备和方法 | |
CN104115230B (zh) | 基于高效pcms刷新机制的计算装置、方法和系统 | |
TWI596474B (zh) | 用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |