CN104126181A - 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换 - Google Patents
作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换 Download PDFInfo
- Publication number
- CN104126181A CN104126181A CN201180076459.4A CN201180076459A CN104126181A CN 104126181 A CN104126181 A CN 104126181A CN 201180076459 A CN201180076459 A CN 201180076459A CN 104126181 A CN104126181 A CN 104126181A
- Authority
- CN
- China
- Prior art keywords
- point
- memory
- controller
- nvram
- storer
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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)映像)通常存储在闪存存储器装置中。当前在市场上可买到的闪存存储器装置一般具有有限速度(例如50 MHz)。由于用于读协议的开销,此速度进一步降低(例如2.5 MHz)。为了加速BIOS执行速度,常规处理器一般在引导过程的预先可扩展固件接口(PEI)阶段期间高速缓存BIOS代码的一部分。处理器高速缓存的大小对在PEI阶段中使用的BIOS代码(也称为“PEI BIOS代码”)的大小施加了约束。
B.相变存储器 (PCM) 以及相关技术
相变存储器(PCM)(有时也称为相变随机存取存储器(PRAM或PCRAM)、PCME、奥式统一存储器或硫属化物RAM(C-RAM))是采用硫属化物玻璃的独特行为的非易失性计算机存储器类型。由于由电流经过产生的热量,硫属化物玻璃可在两种状态:晶体与非晶体之间切换。PCM的当前版本可获得两种截然不同的附加状态。
PCM提供比闪存更高的性能,这是因为PCM的存储元件可更快地开关,可进行写(将各个位改变成1或0)而无需首先擦除单元的整个块,并且来自写的降级更慢(PCM装置可存活近似1亿个写循环;PCM降级由于编程期间的热膨胀、金属(和其它材料)迁移以及其它机制引起)。
附图说明
如下描述和附图用于例证本发明的实施例。在附图中:
图1例证了根据本发明一个实施例的高速缓存和系统存储器布置;
图2例证了在本发明一个实施例中采用的存储器和存储装置层级;
图3例证了在其上可实现本发明实施例的计算机系统;
图4(现有技术)示出了传统SSD;
图5例证了具有能够由系统作为随机存取存储器存取的非易失性半导体存储装置的装置;
图6a例证了插入到背板中的卡的第一布置;
图6b例证了插入到背板中的卡的第二布置;
图7例证了能够由图5、图6a和图6b的控制器执行的方法;
图8例证了图5、图6a和图6b的控制器的实施例。
具体实施方式
在以下描述中,阐述了许多具体细节,诸如逻辑实现、操作码、规定操作数的构件、资源划分/共享/复制实现、系统组件的类型和相互关系以及逻辑划分/集成选择,以便提供对本发明的更透彻理解。然而,本领域技术人员将认识到,没有此类特定细节也可实践本发明。在其它实例中,控制结构、门级电路以及全软件指令序列未详细示出,以免模糊了本发明。本领域普通技术人员用所包含的描述将能够实现适当功能性,而无需过多实验。
在说明书中提到“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可包含具体特征、结构或特性,但可能不一定每一个实施例都包含该具体特征、结构或特性。此外,此类短语不一定是指同一实施例。进一步说,当具体特征、结构或特性结合一实施例描述时,认为结合其它实施例实现此类特征、结构或特性在本领域技术人员的知识范围内,而不管是否明确描述了。
在以下说明书和权利要求书中,可以使用术语“耦合”和“连接”连同它们的派生词。应该理解,这些术语不打算作为彼此的同义词。“耦合”用于指示可以直接彼此物理接触或电气接触或者可以不直接彼此物理接触或电气接触的两个或更多元件彼此协同操作或交互作用。“连接”用于指示在彼此耦合的两个或更多元件之间建立通信。
带括号的文本以及具有虚线边框(例如大破折号、小破折号、点划线、点等)的块有时在本文用于例证向本发明实施例添加附加特征的可选操作/组件。然而,此类记号不应该被视为意味着这些是仅有的选项或仅有的可选操作/组件,和/或不应该被视为意味着具有实线边框的块在本发明的某些实施例中不是可选的。
介绍
存储器容量和性能要求随着处理器核以及新用途模型(诸如虚拟化)的数量增加而继续增加。此外,存储器功率和成本已经分别变成电子系统的总体功率和成本的重要组成部分。
本发明的一些实施例通过在存储器技术之间智能细分性能要求和容量要求来解决以上挑战。此方法的焦点在于通过如下方式来提供性能:利用相对小量的相对较高速的存储器(诸如DRAM),同时使用显著更便宜并且更密集的非易失性随机存取存储器(NVRAM)来实现大多数系统存储器。下面描述的本发明实施例定义了对于使用NVRAM能够实现层级存储器子系统组织的平台配置。在存储器层级中使用NVRAM也能够实现新用途,诸如扩大的引导空间以及大容量存储装置实现,如下面所详细描述的。
图 1例证了根据本发明实施例的高速缓存和系统存储器布置。特别是,图 1示出了存储器层级,其包含一组内部处理器高速缓存120、充当远存储器高速缓存的“近存储器”121以及“远存储器”122,“近存储器”121可包含一个或多个内部高速缓存106和外部高速缓存107-109。在本发明的一些实施例中可用于“远存储器”的一种具体类型存储器是非易失性随机存取存储器(“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中含有的闪存更低级的粒度(例如字节级)可重写以及可擦除(SSD中含有的闪存每次仅能被重写并擦除“块”——对于NOR闪存而言大小最低限度是64K字节,并且对于NAND闪存而言大小最低限度是16K字节);
(5)用作系统存储器并且分配了全部系统存储器地址空间或部分系统存储器地址空间;
(6)能够使用事务协议(支持事务标识符(ID)来区分不同的事务的协议,使得那些事务可无序地完成)通过总线耦合到处理器并允许在小到足以支持作为系统存储器的NVRAM的操作(例如高速缓存线大小、诸如64字节或128字节)的粒度级存取。例如,总线可以是存储器总线(例如DDR总线、诸如DDR3、DDR4等),通过所述总线运行事务协议,这与正常使用的非事务协议形成对比。作为另一示例,总线可以是通过其正常运行事务协议(本机事务协议)的总线,诸如PCI快速(PCIE)总线、桌面管理接口(DMI)总线或利用事务协议和足够的小事务有效载荷大小(例如高速缓存线大小、诸如64字节或128字节)的任何其它类型总线;以及
(7)如下一项或多项:
a)比非易失性存储器/存储装置技术(诸如闪存)更快的写速度;
b)非常高的读速度(比闪存更快,并且接近或相当于DRAM读速度);
c)直接可写(而不是在写数据之前需要擦除(用1改写)(比如在SSD中使用的闪存存储器));
d)在故障之前的大量写(比在SSD中使用的引导ROM和闪存大);和/或
如上面所提到的,与闪存存储器形成对照(闪存存储器每次必须被重写并且擦除整个“块”),在任何给定实现中存取NVRAM所用的粒度级可取决于具体存储器控制器和具体存储器总线或耦合到NVRAM的其它类型总线。例如,在NVRAM被用作系统存储器的一些实现中,尽管固有能力是以字节粒度来存取,仍可以以高速缓存线(例如64字节或128字节的高速缓存线)的粒度来存取NVRAM,这是因为高速缓存线是存储器子系统存取存储器的所用的级。从而,当NVRAM被部署在存储器子系统内时,可以以与在同一存储器子系统中使用的DRAM(例如“近存储器”)相同的粒度级来存取NVRAM。即便如此,由存储器控制器和存储器总线或其它类型总线对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(例如在与处理器106相同的裸晶上)和/或配置为在处理器外部的一个或多个高速缓存107-109(例如在与处理器100相同的封装或不同的封装中);以及
3)闪存存储器/磁盘/光盘,其应用为大容量存储装置(未示出);及
4)存储器(诸如闪存存储器或其它只读存储器(ROM)),其应用为固件存储器(其可以指引导ROM、BIOS闪存和/或TPM闪存)(未示出)。
远存储器122可被用作可直接由处理器100寻址并且能够充分跟上处理器100的指令和数据存储装置,其与应用为大容量存储装置的闪存/磁盘/光盘形成对照。此外,如上面所讨论和下面详细描述的,远存储器122可被放在存储器总线上,并且可与存储器控制器直接通信,所述存储器控制器又与处理器100直接通信。
远存储器122可与其它指令和数据存储技术(例如DRAM)组合以形成混合存储器(也称为协同定位的PCM和DRAM;第一级存储器和第二级存储器;FLAM(闪存和DRM))。要指出,以上技术中的至少一些技术(包含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例证了在本发明实施例中如何相对于系统物理地址(SPA)空间116-119配置各级高速缓存101-109。如所提到的,这个实施例包括具有一个或多个核101-104的处理器100,其中每个核都具有它自己的专用上级高速缓存(L0) 101a-104a和中级高速缓存(MLC) (L1) 高速缓存101b-104b。处理器100还包含共享的LLC 105。这些各级高速缓存的操作众所周知,并且在此将不详细描述。
图1中例证的高速缓存107-109可专用于具体系统存储器地址范围或不连续地址范围集合。例如,高速缓存107专用于充当用于系统存储器地址范围# 1
116的MSC,并且高速缓存108和109专用于充当用于系统存储器地址范围# 2
117和# 3 118的非交叠部分的MSC。后一实现可用于如下系统:由处理器100使用的SPA空间被交织到由高速缓存107-109(例如当配置为MSC时)使用的地址空间中。在一些实施例中,这个后一地址空间被称为存储器通道地址(MCA)空间。在一个实施例中,内部高速缓存101a-106对整个SPA空间执行高速缓存操作。
本文所使用的系统存储器是对在处理器100上执行的软件而言可见和/或可直接由其寻址的存储器;而高速缓存存储器101a-109可在如下意义上对软件而言透明地操作:它们未形成系统地址空间的直接可寻址部分,但这些核也可支持指令执行以允许软件向一些高速缓存或所有高速缓存提供某种控制(配置、策略、提示等)。系统存储器细分成区域116-119可作为系统配置过程的一部分(例如由系统设计者)手动执行,和/或可由软件自动执行。
在一个实施例中,使用远存储器(例如PCM)并且在一些实施例中使用配置为系统存储器的近存储器来实现系统存储器区域116-119。系统存储器地址范围# 4表示使用较高速存储器(诸如DRAM)实现的地址范围,较高速存储器可以是配置在系统存储器模式(与高速缓存模式相对)的近存储器。
图2例证了根据本发明实施例用于近存储器144和NVRAM的存储器/存储装置层级140和不同的可配置操作模式。存储器/存储装置层级140具有多级,其包含:(1)高速缓存级150,其可包含处理器高速缓存150A(例如图 1中的高速缓存101A-105)以及可选地包含近存储器来作为用于远存储器的高速缓存150B(在本文所讨论的某些操作模式中),(2)系统存储器级151,其当近存储器存在时可包含远存储器151B (例如NVRAM、诸如PCM)(或者当近存储器不存在时可只是包含NVRAM作为系统存储器174)以及可选地包含作为系统存储器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用于例证当近存储器被配置为用于远存储器的MSC 150B时的操作。在此配置中,系统地址空间A 190表示整体系统地址空间(并且系统地址空间B 191不存在)。备选地,系统地址空间B 191用于示出当给全部或部分近存储器指配一部分系统地址空间时的实现。在此实施例中,系统地址空间B 191表示系统地址空间中指配给近存储器151 A的范围,并且系统地址空间A 190表示系统地址空间中指配给NVRAM 174的范围。
此外,当充当用于远存储器的高速缓存150B时,近存储器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 执行的高速缓存彼此独立操作。因而,未在处理器高速缓存150A中高速缓存(并且在一些情况下其可能未准许在处理器高速缓存150A中高速缓存)的数据可在充当FM高速缓存150B的NM 中高速缓存并且反之亦然。从而,在处理器高速缓存中可被指定为“不可高速缓存”的某些数据可在充当FM高速缓存150B的NM 内高速缓存。
(3)近存储器读 - 高速缓存写旁路模式:这是上面模式的变型,其中允许从NVRAM FM 151B读高速缓存持久数据(即,持久数据在作为用于远存储器的高速缓存的近存储器150B中高速缓存以便进行只读操作)。当大部分持久数据是“只读”的并且应用用途是高速缓存友好的时,这是有用的。
(4)近存储器读 - 高速缓存写直达模式:这是近存储器读-高速缓存写旁路模式的变型,其中除了读高速缓存之外,还高速缓存写命中。对作为用于FM的高速缓存150B的近存储器的每一次写引起对FM 151B的写。从而,由于高速缓存的写直达性质,仍保证了高速缓存线持久性。
当在近存储器直接存取模式中起作用时,作为系统存储器151A的近存储器的全部或部分对软件而言直接可见,并且形成SPA空间的一部分。此类存储器可完全在软件控制下。此类方案可创建用于软件的非均匀存储器地址(NUMA)存储区,其中它从近存储器144得到相对于NVRAM系统存储器174更高的性能。作为示例而非限制,此类使用可用于需要对某些数据结构进行非常快速存取的某些高性能计算(HPC)和图形应用。
在备选实施例中,近存储器直接存取模式通过对近存储器中的某些高速缓存线(即具有也同时存储在NVRAM 142中的数据的高速缓存线)“固定(pinning)”来实现。此类固定可有效地在较大、多路且组关联的高速缓存中进行。
图2还例证NVRAM 142的一部分可被用作固件存储器。例如,BIOS NVRAM 172部分可用于存储BIOS映像(代替将BIOS信息存储在BIOS闪存170中,或者作为对将BIOS信息存储在BIOS闪存170中的附加)。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,该存储器/存储装置子系统380具有用于系统存储器、大容量存储装置以及可选地固件存储器的NVRAM 142。在一个实施例中,NVRAM
142包括由计算机系统300用于存储数据、指令、状态和其它持久和非持久信息的整体系统存储器和存储装置层级。如之前所讨论的,NVRAM
142可配置成实现典型存储器和系统存储器的存储装置层级、大容量存储装置和固件存储器、TPM存储器等中的角色。在图 3的实施例中,NVRAM
142被划分成FM 151B、NVRAM大容量存储装置152A、BIOS NVRAM 173和TPM 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),并将读操作指向远存储器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中,显示NVRAM控制器332使用三条单独的线路连接到FM 151B、NVRAM大容量存储装置152A和BIOS NVRAM 172。然而,这不一定意味着,存在三条单独的物理总线或通信信道将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快速总线、桌面管理接口(DMI)总线或利用事务协议和足够的小事务有效载荷大小(例如高速缓存线大小、诸如64字节或128字节)的任何其它类型总线)与NVRAM 142通信。
在一个实施例中,计算机系统300包含执行用于处理器310的中央存储器存取控制的集成存储器控制器(IMC)331,其耦合到:1)存储器侧高速缓存(MSC)控制器124,以控制对充当远存储器高速缓存150B的近存储器(NM)的存取;以及2)NVRAM控制器332,以控制对NVRAM 142的存取。尽管在图 3中例证为单独单元,但MSC控制器124和NVRAM控制器332在逻辑上可形成IMC 331的一部分。
在例证的实施例中,MSC控制器124包含一组范围寄存器336,范围寄存器336规定供充当远存储器高速缓存 150B的NM使用的操作模式(例如上面描述的写回高速缓存模式、近存储器旁路模式等)。在所例证的实施例中,DRAM 144被用作用于充当用于远存储器的高速缓存150B的NM 的存储器技术。响应于存储器存取请求,MSC控制器124可(根据在范围寄存器336中规定的操作模式)确定是否可从充当用于FM的高速缓存150B的NM服务于该请求,或者是否必须向NVRAM控制器332发送该请求,控制器332然后可从NVRAM 142的远存储器(FM)部分151B服务于该请求。
在用PCMS实现NVRAM 142的实施例中,NVRAM控制器332是用与PCMS技术一致的协议来执行存取的PCMS控制器。如之前所讨论的,固有地,能够以字节粒度存取PCMS存储器。尽管如此,NVRAM控制器332可以以较低级粒度(诸如高速缓存线(例如64位或128位的高速缓存线))或与存储器子系统一致的任何其它级粒度来存取基于PCMS的远存储器151B。本发明的基本原理不限于用于存取基于PCMS的远存储器151B的任何具体级粒度。然而,一般而言,当基于PCMS的远存储器151B用于形成系统地址空间的一部分时,该粒度级将高于在传统上用于其它非易失性存储装置技术(诸如闪存)的粒度级,该技术仅能在“块”级(对于NOR闪存的大小最低限度是64K字节,并且对于NAND闪存最低限度是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装置和存储装置I/O装置),则IMC 331将该请求传递到I/O子系统115。I/O子系统115进一步对该地址进行解码以确定该地址是针对NVRAM大容量存储装置152A、BIOS NVRAM 172还是其它非存储装置I/O装置和存储装置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 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可以是通用处理器,诸如Core™ i3、i5、i7、2 Duo和Quad、Xeon™或Itanium™处理器,它们全都可从加利福尼亚圣克拉拉的英特尔公司得到。备选地,处理器310可以来自另一公司,诸如加利福尼亚桑尼韦尔的ARM股份有限公司、加利福尼亚桑尼韦尔的MIPS技术公司等。处理器310可以是专用处理器,诸如例如网络处理器或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等等。处理器310可实现在包含在一个或多个封装内的一个或多个芯片上。处理器310可以是一个或多个衬底的一部分,和/或可使用若干工艺技术(诸如例如BiCMOS、CMOS或NMOS)中的任一技术实现在一个或多个衬底上。在图 3中示出的示例中,处理器310具有芯片上系统(SOC)配置。
在一个实施例中,处理器310包含集成图形单元311,其包含用于执行图形命令(诸如3D或2D图形命令)的逻辑。虽然本发明的实施例不限于任何具体集成图形单元311,但在一个实施例中,图形单元311能够执行工业标准图形命令,诸如由开放式GL和/或直接X应用编程接口(API)(例如开放式GL 4.1和直接X11)规定的命令。
处理器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,归属代理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) (未示出),该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以控制对系统持久状态的存取,诸如安全数据、加密密钥、平台配置信息等等。在一个实施例中,这些系统持久状态被存储在TPM
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的微处理器。在一个实施例中,系统管理员可通过如下方式来远程配置计算机系统300:通过ME 335经由网络336编辑解码表333的内容。
为了便于说明,本申请的剩余部分有时将NVRAM 142称为PCMS装置。PCMS装置包含非易失性、具有低功耗并且在位级可修改的多层(垂直堆叠)的PCM单元阵列。因而,术语NVRAM装置和PCMS装置在以下讨论中可互换使用。然而,应该认识到,如上面所讨论的,对于NVRAM 142也可利用除PCMS之外的不同技术。
应该理解,计算机系统可将NVRAM 142用于系统存储器、大容量存储装置、固件存储器和/或其它存储器和存储装置目的(即便那个计算机系统的处理器并不具有处理器310的所有上述组件,或具有比处理器310多的组件)。
在图3中示出的具体实施例中,MSC控制器124和NVRAM控制器332位于与处理器310相同的裸晶或封装(称为CPU封装)上。在其它实施例中,MSC控制器124和/或NVRAM控制器332可位于裸晶外或CPU封装外,通过总线(诸如存储器总线(比如DDR总线(例如DDR3、DDR4等))、PCI快速总线、桌面管理接口(DMI)总线或任何其它类型总线)耦合到处理器310或CPU封装。
作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换
图4示出了现有技术闪存存储装置400的结构的描述。闪存存储装置是具有充当更大(例如计算机)系统402的数据存储资源的闪存存储器装置的装置。要指出的是,系统通过闪存存储装置接口401向闪存存储装置传递。
存储装置接口401定义系统402与存储装置400本身之间的一组通信语义。定义通信接口401允许系统设计者设计仅扩展到达 接口401的系统,并允许闪存存储装置设计者理解它们的装置期望处置什么命令以及对那些命令的适当响应理应是什么。
在公共实现中,在物理层上通过数据存储装置接口401传输读命令或写命令。固态盘(SSD)的现有实现已经利用了SATA、SAS或接口401的光纤通道。这些标准中的每个标准都定义它们自己的通信协议语义以及物理层信令和引脚输出规范。PCIe已经用于其它实现的接口401的物理层信令和引脚输出定义,但具有对具体SSD制造商特定的叠加通信协议语义。
最近,工业集团已经形成了设法使用PCIe物理层标准化闪存存储装置接口401的NVMExpress(NVMe)规范(其从题为“非易失性存储器主机控制器接口规范(NVMHCI)”的先前规范导出)。
至少相对于NVMe方法,通过接口401从系统402接收读命令和写命令的闪存存储装置400可被看作包含其中两层内部通信协议技术。第一上层403支持系统级接口401,并将从系统402接收的命令转换成对其内部闪存存储器装置405_1至405_M特定的命令。在此,中肯的是要指出,SSD被系统402视为和/或看作盘驱动器,尽管实际存储技术是闪存存储器。上层403领会该区别,并且实质上充当将存储装置视为盘驱动器的系统402与实际基于闪存的(非盘驱动器)存储装置之间的变换层。而且,上层403可包含入站和出站队列(以适应于目标可能未立即服务于手头请求的事务)。比如,NVMe是它自己的协议,其合并了缓冲、数据保护、元数据管理、数据放置等。
第二下层404向上层403提供闪存存储器装置接口406。另一工业努力(称为开放式NAND闪存接口工作小组(ONFI))已经定义了工业标准闪存存储器装置接口406和基础功能(诸如ECC处置、读高速缓存和装置定时)。接口406以及由层404执行的基础功能从层403的角度用于“不纠缠于(abstract away)”可存在于在不同SSD装置中利用的不同闪存存储器装置的行为中的任何差异,或至少呈现用于不同闪存装置制造商的公共接口。
特定的针对的通道和裸晶可通过闪存存储器装置接口406标识。从而,闪存存储器装置接口406(也称为“NAND接口”(例如ONFI、切换模式等))是允许对页面进行写的原始接口,理想上为了速度,多个通道同时与多个裸晶对话。
相比之下,上层协议103(诸如NVMe、SAS、SATA等)将块接口暴露于系统,系统允许主机向块写数据(其在上层103内的下部从主机逻辑块地址(LBA)虚拟映射到内部物理块地址(在SSD情况下,这称为通道、裸晶、块、页面、扇区))。因此,SSD的主要元件(并且最困难的部分)之一是上层103的元数据管理功能(或者如何将LBA与PBA相关,其中此关系可不受用户的控制而改变,例如垃圾收集、耗损均匀化等)。进一步说,SSD的上层103进行有关如何存储/剥离/保护数据的假定。
图4在插图410示出了闪存存储装置的典型硬件实现。控制器半导体芯片411集成在具有多个闪存存储器装置405_1至405_M的同一封装412中。上层403实现在控制器411上。下层404(包含在下面更详细讨论的其相应上层404a和下层404b)具有控制器端部分404_C和存储器装置侧部分405_1至405_M。在此,作为实现从上层403接收的闪存存储器命令的一部分,下层404_C的控制器端部分解释命令并将命令物理发送到执行所请求操作的实际闪存存储器装置本身405_1至405_M。
像这样,第二下层404本身可被看作具有不同的两层404a、404b。在控制器端的第一上层404a向上层403提供闪存存储器装置的抽象(例如技术无关)表示,并响应于从上层403接收的命令向第二下层404b发出对特定闪存存储器装置特定的命令。
第二下层404b实现控制器411与闪存存储器装置405_1至405_M之间的实际电子信令(例如电压电平、波形特性等),并且定义机械规范,包含控制器411上的引脚输出的数量以及用于实现控制器411与存储器装置405_1至405_M之间成功通信的闪存存储器装置405_1至405_M中的每个存储器装置(以及每个存储器装置的角色)。上层404a的存储器装置侧实例驻留在每个闪存装置405_1至405_M上以从控制器端404_C接收命令,并将它们应用于其本地存储单元(当它是命令的目标时)。在典型实现中,闪存存储器装置被集成在与控制器411相同的封装中,包含集成在同一裸晶上。控制器411和闪存存储器装置405_1至405_M也被共同集成到同一封装中,该封装作为整个单元被合并(例如“插入”)到更大系统中。
要指出的是,下层404b(至少由ONFI所定义的)可以说消耗了不成比例的量的衬底表面面积,因为控制器和闪存装置需要的I/O是高的。
图5示出了可表现为远存储器(而不是盘驱动器)的非易失性存储器存储装置500的描绘,其也应该允许比完全实现本ONFI规范的解决方案明显更高的存储密度和更低的等待时间。
图5还表示了图4示出传统基于闪存的SSD装置的插图410。
比较这两个装置,注意到,新装置500不包含上层403。要指出的是,层404的上层404a仍保留。像这样,在新装置500通过PCIe附连到系统502的实施例中,系统502通过PCIe主机/装置互连将ONFI命令“隧道”到上层404a。响应于那些命令格式化的ONFI同样通过PCIe连接从装置500隧道到系统502。TOGGLE是ONFI的备选,并且因此也可使用(以及其它当前或将来的专有或标准非易失性随机存取存储器或“NAND”接口技术也可使用)。
移除上层403意味着闪存存储器接口406(或其它非易失性存储器接口诸如PCMS接口)被直接呈现给系统502。像这样,系统502可作为随机存取存储器(而不是作为盘驱动器)直接寻址非易失性存储器装置505_1至505_N。作为结果(除此之外还有其它可能性)系统502可呈现高速缓存线的地址,和/或执行字节可寻址操作,而不是(与盘驱动器一样)仅寻址诸如“扇区”或“逻辑块的大部分数据”。系统例如可通过规定具体通道和/或非易失性存储器装置来通过接口406寻址非易失性存储器装置。
像这样,低级“NAND”或其它非易失性随机存取存储器接口被暴露于主机/系统。系统然后能以其认为必要的方式使用此接口。在一个实施例中,如果裸晶或块被破坏了,则系统可用ECC(例如XOR)信息写数据以使能够重构数据。在另一实施例中,其中数据是纯高速缓存(并且因此不需要保护),系统可写数据的单一拷贝,这更快速并且最大化了可用非易失性随机存取存储器的容量。因此,代替一个尺寸适合所有非易失性随机存取存储器解决方案(使用重量级协议),这种方法提供了允许系统决定应该如何使用非易失性随机存取存储器的轻量级原始接口。
而且,要指出,新装置500已经用串行(基于点对点的链路)物理层504b(诸如PCIe)替换了下层404的物理层下部分404b。从而,根据一个实施例,利用ONFI的上层404a,但下物理层404b用PCIe代替ONFI的物理层实现。在此实现中,更高级(例如ONFI)上层404a命令也通过PCIe遂穿到非易失性存储器装置505_1到505_M。在替换方法中,代替点对点技术(诸如PCIe)使用ONFI下物理层404b。为了简化,该文档的其余部分会将新装置500称为在其相应非易失性存储器装置处具有点对点互连技术。
在控制器511与非易失性存储器装置505_1至505_M之间使用基于链路的物理层504b而不是满标(full scale)总线与ONFI物理层相比较至少减少了I/O计数,导致更小的裸晶封装。与来自移除上层403的节能组合的更小封装尺寸(并且对于总装置/形状因子,无论什么最大功耗格式都允许)可被转换成新装置500上的更多非易失性存储装置,与图4的插图410的现有技术解决方案形成对比(M代替N,其中M>N)。像这样,新装置500应该能够提供比现有技术解决方案410更大的存储能力,所有其它东西都一样。
在此,对于与两个装置500和410之间相同的形状因子(例如在同一PCIe形状因子卡上比较两个解决方案),对于新装置500,添加附加非易失性存储器装置505_N+1至505_M可消耗从移除上层403可获得的附加功率预算。在此,将此类附加装置封装到同一形状因子中通过由基于链路的物理层504b在控制器与非易失性存储器装置505_1到505_M之间采用的较低I/O计数而变得可行(这应该再次导致更小的裸晶封装尺寸)。
与完全实现的ONFI卡相比较,除了增大的存储密度,新装置500作为比较的问题应该还具有缩小的等待时间。确切地说,在现有技术卡410上存在和操作上层403对指向新装置500未拥有的卡的任何读/写事务增加了等待时间。
而且,如果新装置被实现在插入到PCIe插槽中的PCIe卡上(即,图5的接口406用PCIe物理层实现),则该卡将在由系统502发送到卡的相应PCIe封装的有效载荷内接收非易失性存储器接口命令(例如PCMS接口命令或闪存接口命令(诸如ONFI命令))。在此,层404a对应于薄变换层,其例如可保留许多从系统502接收的PCIe分组结构。
更确切地说,层404a可表现得类似于分组转发装置,其在分组通过内部PCIe物理层504b重新发到特定闪存或PCMS装置之前,对接收的分组的标题信息进行适度调整(例如,将目的地地址字段更新成针对特定非易失性存储器装置)。在另外的实施例中,根据嵌入在从系统502接收的PCIe分组的有效载荷中的地址(其是由系统502发出的闪存或PCMS接口命令的一部分)来确定新目的地地址。与现有技术装置410相比较,薄变换应该对应于通过新装置500的控制器511按事务等待时间明显更小。
图5的插图520示出了新设计500的布局。控制器511包含层404a(例如在专用逻辑电路中,用指令执行逻辑电路执行的程序代码或二者的组合)和物理层504b的控制器侧部分的功能性。每一个非易失性存储器装置505_1至505_M都包含物理层504b和层404a的装置侧实例509_1至509_M。在此,层404a的装置侧实例能够理解由层404a的控制器侧实例发送给它的命令,并使它们在其常驻存储器阵列起作用。在一个实施例中,闪存/PCMS存储器装置505_1至505_M在与控制器511相同的相应封装中(备选地,存储器裸晶和控制器可在不同的相应封装中)。控制器411和闪存/PCMS存储器装置505_1至505_M也被共同集成到同一封装中,该封装作为整个单元被合并(例如“插入”)到更大系统502中。
可存取图5装置500的系统组件例如可以是上面相对于图3所讨论的NVRAM控制器332和/或TPM 334。
备选地或组合地,NVRAM控制器332和/或TPM 334的方面可被集成到图5的控制器511中。图6a示出了控制器511的上面提到的功能被移到系统中(到控制器611a)的实施例。在此,系统的上层仍可通过PCIe或系统内部的某一其它通信技术传递到控制器611。然而,要指出,如果PCIe是选择的用于向控制器611a传递的机制,则在图6a中呈现的解决方案可容易地集成到系统的I/O层级中,即便它可能更像系统存储器一样被对待。
要指出的是,插入到PCIe背板630a中的卡600_1至600_Z不包含控制器,并且通过PCIe直接向控制器611a传递。像这样,非易失性存储器装置本身通过PCIe直接向系统传递。在此,控制器611a充当命令从系统到其它卡600_1到600_Z的主集线器或路由器。当卡600_1到600_Z甚至没有控制器,并且反而(通过控制器611a)从系统直接接收上层404a命令时,甚至实现了附加节能和表面面积节省。
附加节能和表面面积节省允许在卡600_1到600_Z上填充甚至更多的非易失性存储器装置(确切地说是R个存储器装置,其中R>M)。更进一步说,在卡600_1到600_Z上缺乏控制器应该使它们以每个事务为基础比装置500呈现出减少甚至更多的等待时间(其如上面所讨论的与插图410的现有技术解决方案相比较,本身应该已经减少了等待时间)。像这样,将卡600_1到600_Z插入到其中的背板630a应该比具有完全实现的ONFI解决方案的相同数量的卡呈现出明显更大的存储密度和更小的等待时间。控制器611a充当卡600_1到600_Z的路由集线器,由系统发送到任何卡600_1到600_Z上的存储器装置的PCMS/闪存存储器接口命令首先被发送到控制器。控制器611a然后(例如通过向从系统接收的分组添加新目的地地址信息)将命令转发到卡600_1到600_Z中的适当卡。任何响应(诸如用于读命令的读数据)都被发送到控制器611a以便转发到系统。要指出,卡600_1至600_Z的存储器装置中的每个存储器装置都具有层404a和物理层504b的存储器装置侧实例,以接收和理解(并响应于(如果必要的话))由控制器611a发送的命令。
图6b示出了插入到计算系统中的多个PCIe卡的另一实施例。要指出的是,卡650_1根据图5的设计520来设计。其它卡650_2至650_Z不包含控制器。而是,具有控制器611b的卡650_1的PCIe部分504b充当命令从控制器611b到其它卡650_2至650_Z的主集线器或路由器。当卡650_2到650_Z甚至没有控制器,并且反而从卡650_1的控制器611b接收上层404a命令时,甚至实现了附加节能和表面面积节省。
附加节能和表面面积节省允许在卡650_2到650_Z上比在卡650_1上填充甚至更多的非易失性存储器装置(确切地说是R个存储器装置,其中R>M)。更进一步说,在卡650_2到650_Z上缺乏控制器应该使它们以每个事务为基础比卡650_1呈现出减少甚至更多的等待时间(其如上面所讨论的与插图410的现有技术解决方案相比较,本身应该已经减少了等待时间)。像这样,将卡650_1到650_Z插入到其中的系统的背板630b应该比具有完全实现的ONFI解决方案的相同数量的卡呈现出明显更大的存储密度和更小的等待时间。
卡650_1上的控制器611b充当卡650_2到650_Z的路由集线器,由系统发送到任何卡650_2到650_Z上的存储器装置的PCMS/闪存存储器接口命令首先被发送到卡650_1。卡650_1上的控制器611b然后(例如通过向从系统接收的分组添加新目的地地址信息)将命令转发到卡650_2到650_Z中的适当卡。像这样,命令从卡650_1流到卡650_2至650_Z中的适当卡。任何响应(诸如用于读命令的读数据)都被发送到卡650_1以便转发到系统。要指出,卡650_2至650_Z的存储器装置中的每个存储器装置都具有层404a和物理层504b的存储器装置侧实例,以接收和理解(并响应于(如果必要的话))由控制器611b发送的命令。
图7示出了可由图5的新装置500或图6a、6b的控制器611a、611b执行的方法论。根据图7的方法论,通过第一串行通道(例如通过第一PCIe连接)从系统接收701对于高速缓存线或字节可寻址操作的读或写请求。接收的请求根据PCMS或闪存存储器装置接口协议格式化,并规定高速缓存线和/或字节可寻址操作。该请求然后通过第二串行通道(例如第二PCIe连接)转发702到适当的PCMS或闪存存储器装置。该命令可被转发到与接收请求的卡和/或装置不同的卡和/或装置(例如,如果接收请求的卡/装置正在充当其它卡的集线器(诸如上面相对于图6所讨论的))。
如果该请求是对于读的,则所针对的PCMS或闪存存储器装置解释读命令并执行读。读数据在第二串行通道上返回,格式与可应用PCMS或闪存接口的基础功能一致。读数据然后在第一串行通道上通过PCMS或闪存接口转发到系统。如果该请求是对于写的,则所针对的PCMS或闪存装置解释写命令并执行写。
图8示出了图5的控制器511或图6a、6b的控制器611a、611b的更详细实施例。如上面所讨论的,控制器811可包含将从系统侧PCIe连接接收的分组转发到PCMS或闪存存储器装置侧PCIe连接的薄转换层801。转发可至少包含使用由系统针对的地址作为查找参数来标识所接收分组的新目的地地址。像这样,控制器可包含嵌入式存储器或寄存器空间以便保持查找表802以执行查找。
控制器还可包含逻辑电路以实现它监管(卡上和卡外)的存储器装置的任何如下功能:i)耗损均匀化803;ii)用于错误纠正编码/解码/纠正804的ECC电路;iii)垃圾收集805(其是用于删除移除陈旧信息的自动功能);iv)命令和/或响应806的入站和/或出站排队。要注意的是,用于任何功能803、804、805的逻辑电路也可在各个存储器装置本身上实现,与在控制器811上实现这些相同功能组合或代替之。在系统设法以不显式或直接参考特定通道或裸晶的更抽象方式寻址存储器装置的情况下,控制器还可包含轻量级元数据管理。
附加的扩展功能也是有可能的。示例包含镜像。此特征允许具有非易失性存储器装置的一个卡接收写命令,处理到其本地非易失性存储器装置的数据,同时将命令转发到另一个卡,该卡写数据的镜像到其本地非易失性存储器装置,由此增大所存储数据的可靠性(如果一个拷贝失败了,则另一个拷贝可用于读)。
Claims (20)
1. 一种方法,包括:
从系统接收命令,所述命令标识具体非易失性存储器,所述命令通过点对点链路递送;以及
将所述命令转发到所述非易失性存储器。
2. 如权利要求1所述的方法,其中所述转发所述命令包含通过第二点对点链路将所述命令定向到所述非易失性存储器装置。
3. 如权利要求2所述的方法,其中所述第二点对点链路是PCIe点对点链路。
4. 如权利要求3所述的方法,其中所述点对点链路是PCIe点对点链路。
5. 如权利要求1所述的方法,其中所述点对点链路是PCIe点对点链路。
6. 如权利要求1所述的方法,其中所述接收和转发由支持ONFI接口的控制器执行,所述命令是ONFI格式的命令。
7. 如权利要求1所述的方法,其中所述非易失性存储器是闪存随机存取存储器或PCM随机存取存储器。
8. 如权利要求1所述的方法,进一步包括:将所述命令镜像到与所述非易失性存储器在其上的卡不同的卡上的另一非易失性存储器。
9. 一种方法,包括:
通过点对点链路向非易失性随机存取存储器发送命令,所述非易失性随机存取存储器附连到所述点对点链路的端。
10. 如权利要求9所述的方法,其中所述点对点链路是PCIe点对点链路。
11. 如权利要求9所述的方法,其中所述点对点链路通过背板运行,所述背板将系统连接到插入到所述背板中的卡并且保持住所述非易失性随机存取存储器。
12. 如权利要求9所述的方法,其中所述点对点链路在具有控制器和所述非易失性存储器装置的封装内,其中所述控制器执行所述发送。
13. 如权利要求9所述的方法,其中所述发送由驻留在与所述非易失性随机存取存储器不同的卡上的控制器执行。
14. 一种半导体芯片,包括:
控制器,其具有点对点链路接口和非易失性存储器对接电路,所述点对点链路接口从系统接收标识具体非易失性存储器的命令,所述非易失性存储器对接电路接收所述命令并将所述命令转发到所述非易失性随机存取存储器。
15. 如权利要求14所述的半导体芯片,其中所述半导体芯片被集成到计算系统中。
16. 如权利要求15所述的半导体芯片,其中所述半导体芯片被集成在插入到所述计算系统的背板中的装置上。
17. 如权利要求16所述的半导体芯片,其中所述非易失性存储器对接电路是ONFI非易失性存储器对接电路。
18. 如权利要求14所述的半导体芯片,进一步包括第二点对点链路接口,所述第二点对点链路接口向所述非易失性随机存取存储器发送所述转发的命令。
19. 如权利要求15所述的半导体芯片,其中所述控制器和所述非易失性随机存取存储器被集成到插入到所述计算系统的背板中的同一封装中。
20. 一种半导体芯片,包括:
非易失性随机存取存储器存储单元;以及
点对点链路,其接收指向所述存储单元的读存取和写存取。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/068195 WO2013101209A1 (en) | 2011-12-30 | 2011-12-30 | Thin translation for system access of non volatile semicondcutor storage as random access memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104126181A true CN104126181A (zh) | 2014-10-29 |
Family
ID=48698441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076459.4A Pending CN104126181A (zh) | 2011-12-30 | 2011-12-30 | 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140229659A1 (zh) |
CN (1) | CN104126181A (zh) |
TW (1) | TWI596474B (zh) |
WO (1) | WO2013101209A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636089A (zh) * | 2015-02-25 | 2015-05-20 | 浪潮集团有限公司 | 一种基于nvme技术的国产处理器服务器性能加速方法 |
CN106919531A (zh) * | 2015-12-25 | 2017-07-04 | 华为技术有限公司 | 基于非易失性存储总线协议的交互方法及设备 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013109640A1 (en) | 2012-01-17 | 2013-07-25 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
US9921747B2 (en) | 2014-01-31 | 2018-03-20 | Hewlett Packard Enterprise Development Lp | Unifying memory controller |
US10162786B2 (en) | 2014-12-01 | 2018-12-25 | SK Hynix Inc. | Storage node based on PCI express interface |
US10318767B2 (en) | 2014-12-10 | 2019-06-11 | Hewlett Packard Enterprise Development Lp | Multi-tier security framework |
TWI564745B (zh) * | 2015-03-27 | 2017-01-01 | 物聯智慧科技(深圳)有限公司 | 點對點連線及建立方法及其通訊系統 |
US9792048B2 (en) | 2015-06-22 | 2017-10-17 | Western Digital Technologies, Inc. | Identifying disk drives and processing data access requests |
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 |
US10824348B2 (en) * | 2016-08-02 | 2020-11-03 | Samsung Electronics Co., Ltd. | Method of executing conditional data scrubbing inside a smart storage device |
TWI595356B (zh) * | 2016-08-19 | 2017-08-11 | 大心電子(英屬維京群島)股份有限公司 | 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路 |
US11397687B2 (en) | 2017-01-25 | 2022-07-26 | Samsung Electronics Co., Ltd. | Flash-integrated high bandwidth memory appliance |
US11182103B1 (en) * | 2019-01-29 | 2021-11-23 | Amazon Technologies, Inc. | Dedicated communications cache |
US11567877B2 (en) * | 2019-05-03 | 2023-01-31 | Intel Corporation | Memory utilized as both system memory and near memory |
US20200133884A1 (en) * | 2019-12-19 | 2020-04-30 | Intel Corporation | Nvram system memory with memory side cache that favors written to items and/or includes regions with customized temperature induced speed settings |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6948031B2 (en) * | 2000-12-19 | 2005-09-20 | Emc Corporation | Methods and apparatus for transferring a data element within a data storage system |
CN1924786A (zh) * | 2006-09-29 | 2007-03-07 | 我想科技股份有限公司 | 独立磁盘冗余阵列系统 |
US20080114924A1 (en) * | 2006-11-13 | 2008-05-15 | Jack Edward Frayer | High bandwidth distributed computing solid state memory storage system |
CN101187912A (zh) * | 2006-11-13 | 2008-05-28 | 三星电子株式会社 | 存储卡系统及传输其主机识别信息的方法 |
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 |
US8020035B2 (en) * | 2008-07-30 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Expander circuit for a solid state persistent storage device that provides a plurality of interfaces to corresponding storage controllers |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966429B2 (en) * | 2007-05-28 | 2011-06-21 | Super Talent Electronics, Inc. | Peripheral devices using phase-change memory |
US7822912B2 (en) * | 2005-03-14 | 2010-10-26 | Phision Electronics Corp. | Flash storage chip and flash array storage system |
US20130086311A1 (en) * | 2007-12-10 | 2013-04-04 | Ming Huang | METHOD OF DIRECT CONNECTING AHCI OR NVMe BASED SSD SYSTEM TO COMPUTER SYSTEM MEMORY BUS |
US8725946B2 (en) * | 2009-03-23 | 2014-05-13 | Ocz Storage Solutions, Inc. | Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller |
US9123409B2 (en) * | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
TWI446349B (zh) * | 2010-03-04 | 2014-07-21 | Phison Electronics Corp | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 |
US9164554B2 (en) * | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
JP5957647B2 (ja) * | 2010-06-18 | 2016-07-27 | シーゲイト テクノロジー エルエルシーSeagate Technology LLC | スケーラブルな記憶装置 |
US9009391B2 (en) * | 2010-10-25 | 2015-04-14 | Fastor Systems, Inc. | Solid state drive architecture |
US8719520B1 (en) * | 2010-12-14 | 2014-05-06 | Datadirect Networks, Inc. | System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity |
US8589723B2 (en) * | 2010-12-22 | 2013-11-19 | Intel Corporation | Method and apparatus to provide a high availability solid state drive |
US8612676B2 (en) * | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US8745294B2 (en) * | 2011-04-01 | 2014-06-03 | Taejin Info Tech Co., Ltd. | Dynamic random access memory for a semiconductor storage device-based system |
US8700834B2 (en) * | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
WO2013048500A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
EP3364304B1 (en) * | 2011-09-30 | 2022-06-15 | INTEL Corporation | Memory channel that supports near memory and far memory access |
US9600416B2 (en) * | 2011-09-30 | 2017-03-21 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
CN107608910B (zh) * | 2011-09-30 | 2021-07-02 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
US9767058B2 (en) * | 2011-11-17 | 2017-09-19 | Futurewei Technologies, Inc. | Method and apparatus for scalable low latency solid state drive interface |
WO2013095385A1 (en) * | 2011-12-20 | 2013-06-27 | Intel Corporation | Apparatus and method for phase change memory drift management |
DE112011105984T5 (de) * | 2011-12-20 | 2014-09-18 | Intel Corporation | Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen |
DE112011106013T5 (de) * | 2011-12-21 | 2014-10-02 | Intel Corp. | System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem |
AU2013263866B2 (en) * | 2013-05-02 | 2016-02-18 | Huawei Technologies Co., Ltd. | Computer system, method for accessing peripheral component interconnect express endpoint device, and apparatus |
-
2011
- 2011-12-30 WO PCT/US2011/068195 patent/WO2013101209A1/en active Application Filing
- 2011-12-30 US US13/997,658 patent/US20140229659A1/en not_active Abandoned
- 2011-12-30 CN CN201180076459.4A patent/CN104126181A/zh active Pending
-
2012
- 2012-12-24 TW TW101149528A patent/TWI596474B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6948031B2 (en) * | 2000-12-19 | 2005-09-20 | Emc Corporation | Methods and apparatus for transferring a data element within a data 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 |
CN1924786A (zh) * | 2006-09-29 | 2007-03-07 | 我想科技股份有限公司 | 独立磁盘冗余阵列系统 |
US20080114924A1 (en) * | 2006-11-13 | 2008-05-15 | Jack Edward Frayer | High bandwidth distributed computing solid state memory storage system |
CN101187912A (zh) * | 2006-11-13 | 2008-05-28 | 三星电子株式会社 | 存储卡系统及传输其主机识别信息的方法 |
US8020035B2 (en) * | 2008-07-30 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Expander circuit for a solid state persistent storage device that provides a plurality of interfaces to corresponding storage controllers |
Non-Patent Citations (1)
Title |
---|
MICHAEL WU ETC.: "eNVy:A Non-Volatile,Main Memory Storage System", 《WORKSHOP ON WORKSTATION OPERATING SYSTEMS》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636089A (zh) * | 2015-02-25 | 2015-05-20 | 浪潮集团有限公司 | 一种基于nvme技术的国产处理器服务器性能加速方法 |
CN106919531A (zh) * | 2015-12-25 | 2017-07-04 | 华为技术有限公司 | 基于非易失性存储总线协议的交互方法及设备 |
CN106919531B (zh) * | 2015-12-25 | 2020-02-21 | 华为技术有限公司 | 基于非易失性存储总线协议的交互方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
TW201346545A (zh) | 2013-11-16 |
TWI596474B (zh) | 2017-08-21 |
WO2013101209A1 (en) | 2013-07-04 |
US20140229659A1 (en) | 2014-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104126181A (zh) | 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换 | |
CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
TWI594182B (zh) | 用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法 | |
TWI454915B (zh) | 實施具有不同操作模式之多階記憶體階層的設備與方法 | |
CN104025060B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
CN103946813B (zh) | 基于使用统计量追踪的远存储器访问信号的生成 | |
CN104106057B (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 | |
CN103999161B (zh) | 用于相变存储器漂移管理的设备和方法 | |
CN103946812B (zh) | 用于实现多级别存储器分级体系的设备和方法 | |
CN103946824B (zh) | 一种用于非易失性随机访问存储器的访问控制方法、装置及系统 | |
CN104050112B (zh) | 用于标记需要写回持久存储的非事务代码区的开头和结束的指令 | |
CN103946816B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
TWI468938B (zh) | 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 | |
CN104011691B (zh) | 非易失性ram盘 | |
TWI489276B (zh) | 於第二階記憶體階層中記憶體側快取的動態部份斷電之系統與方法 | |
CN103975287A (zh) | 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持 | |
CN104115230B (zh) | 基于高效pcms刷新机制的计算装置、方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141029 |