CN107077303A - 分配和配置持久存储器 - Google Patents

分配和配置持久存储器 Download PDF

Info

Publication number
CN107077303A
CN107077303A CN201580063634.4A CN201580063634A CN107077303A CN 107077303 A CN107077303 A CN 107077303A CN 201580063634 A CN201580063634 A CN 201580063634A CN 107077303 A CN107077303 A CN 107077303A
Authority
CN
China
Prior art keywords
memory
nvm
dimm
processor
management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580063634.4A
Other languages
English (en)
Other versions
CN107077303B (zh
Inventor
S.W.基尔万
A.M.鲁道夫
M.S.纳图
M.K.纳奇姆图
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN107077303A publication Critical patent/CN107077303A/zh
Application granted granted Critical
Publication of CN107077303B publication Critical patent/CN107077303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

描述用于分配和/或配置持久存储器的方法和装置。在实施例中,存储器控制器逻辑至少部分一个或多个属性将非易失性存储器配置为多个分区。一个或多个卷(对应用或操作系统可见)由多个分区中的一个或多个形成。一个或多个卷中的每个包括多个分区中的具有来自一个或多个属性的至少一个相似属性的一个或多个分区。在另一个实施例中,存储器控制器逻辑将非易失性存储器(NVM)双列直插存储器模块(DIMM)配置为持久区域和易失性区域。还公开其他实施例并且对它们要求保护。

Description

分配和配置持久存储器
技术领域
本公开一般涉及电子器件领域。更特定地,一些实施例一般涉及分配和/或配置持久存储器。
背景技术
一般,用于在计算系统中存储数据的存储器可以是易失性(存储易失性信息)或非易失性的(存储持久信息)。存储在易失性存储器中的易失性数据结构一般用于在程序运行时间期间支持该程序功能性所需要的暂时或中间信息。另一方面,存储在非易失性(或持久存储器)中的持久数据结构在程序的运行时间以外可用并且可以再用。此外,新的数据典型地在用户或程序员决定使该数据持久之前首先生成为易失性数据。例如,程序员或用户可以在对处理器直接可访问的易失性主存储器中促成易失性结构的映射(即,例示)。另一方面,持久数据结构在非易失性存储设备(像附连到输入/输出(I/O或IO)总线的旋转盘)或基于非易失性存储器的设备(像闪速存储器)上例示。
随着处理器中的计算能力增强,一个关注点是存储器可以被处理器访问的速度。例如,为了处理数据,处理器可能需要首先从存储器提取数据。在完成数据处理后,结果可能需要存储在存储器中。因此,存储器访问速度可以对整体系统性能具有直接影响。
另一个重要考量是功耗。例如,在依赖电池电力的移动计算设备中,减少功耗以允许设备在移动时操作,这是非常重要的。因为过多功耗可能增加成本(例如,由于额外用电、冷却要求提高等引起)、缩短部件寿命、限制可能使用设备的位点等,功耗对于非移动性计算设备也是重要的。
硬盘驱动器提供相对低成本的存储技术方案并且在许多计算设备中使用来提供非易失性存储。然而,在与例如闪速存储器或固态驱动器等非易失性存储器相比时,因为盘驱动器需要使它的盘以相对高的速度自旋并且使盘头相对于自旋盘移动来读/写数据,盘驱动器使用大量电力。该物理移动产生热并且增加功耗。同样,在与硬驱动器相比时,基于闪存的驱动器在执行读和写操作方面快得多。为此,许多计算段转向非易失性的闪速存储器设备。
附图说明
参考附图提供详细描述。在图中,标号最左边的数字标识该标号首次出现所在的图。在不同图中使用相同的标号指示相似或相同的项目。
图1、2、5、6和7图示可以用于实现本文论述的各种实施例的计算系统的实施例的框图。
图3A示出根据实施例的配置的存储器系统的框图。
图3B图示根据实施例配置存储器的方法的流程图。
图4A示出根据实施例的NVM管理架构的数据中心级视图。
图4B图示根据实施例的两个管理分区的框图。
图4C图示根据实施例配置存储器的方法的流程图。
具体实施方式
在下列描述中,阐述许多特定细节以便提供对各种实施例的全面理解。然而,各种实施例可在没有这些特定细节的情况下实践。在其它实例中,未详细描述众所周知的方法、规程、部件和电路以便不混淆特定实施例。此外,实施例的各种方面可以使用例如半导体集成电路(“硬件”)、组织到一个或多个程序(“软件”)内的计算机可读指令或硬件和软件的某种组合等各种手段来执行。为了该公开的目的,对“逻辑”的引用应意指硬件、软件或其某种组合。
如上文指示的,现今在计算机系统中使用的易失性存储器多半是同构资源,其被暂时性地分配给软件进程。实施例关于持久存储器,其配置有最适合长期性存储的数据的性能和可靠性需要的独特特性。如本文论述的,持久存储器视为字节可寻址的存储器,像通常的动态随机存取存储器或DRAM(其有时也称为主存储器),但其跨系统重设或失电(powerloss)维持它的内容。这样的持久存储器的示例包括字节可寻址3维交叉点存储器(例如PCM(相变存储器))、电阻随机存取存储器、磁阻RAM、自旋转移矩RAM(STTRAM)。一些实施例涉及:具有独特性能和/或可靠性特性的持久存储器的区域的发现;这些区域到服务质量(QoS)池的组织;和/或来自这些QoS池的持久存储器的应用可见卷(application visiblevolume)的分配。
此外,非易失性存储器(在本文也能互换地称为“持久存储器”)在被引入处理器(在本文也能互换地称为“CPU”或中央处理单元)存储器层级内时提供很大的配置灵活性。此外,NVM(非易失性存储器)DIMM(双列直插存储器模块)可以分区成易失性区域和持久区域。这些区域可以采用各种交错或RAS(可靠性、可用性和可服务性)模式操作来适应工作负载行为和用户要求。例如,RAS可以在影响数据耐用性的配置中应用,例如维持用户数据的两个副本来增加数据耐用性的镜像。初始NVM配置可以由系统BIOS(基本输入/输出系统)执行,因为它具有对CPU地址映射的隐含。然而,BIOS并未具有理解用户需求或表征工作负载行为的能力。为此,一些实施例:(a)使用户能够充分利用分区NVM DIMM所提供的灵活性;(b)使由于BIOS配置错误引起的用户数据丢失的机会最小化;和/或(c)使用户能够检索DIMM上存储的持久数据,即使在主板出故障情况下也如此。
此外,本文论述的技术可以在各种计算系统(例如,其包括非移动计算设备,例如台式机、工作站、服务器、机架系统等,和移动计算设备,例如智能电话、平板、UMPC(超级移动个人计算机)、便携式计算机、Ultrabook™计算设备、智能手表、智能眼镜、智能手环等)中提供,其包括参考图1-7论述的那些。更特定地,图1图示根据实施例的计算系统100的框图。该系统100包括一个或多个处理器102-1至102-N(在本文一般称为“多个处理器102”或“处理器102”)。处理器102可以经由互连或总线104通信。每个处理器可以包括各种部件,为了清楚起见,仅参考处理器102-1论述其中的一些。因此,余下的处理器102-2至102-N中的每个可以包括参考处理器102-1论述的相同或相似部件。
在实施例中,处理器102-1可以包括一个或多个处理器核106-1至106-M(在本文称为“多个核106”,或更一般地称为“核106”)、高速缓存108(其在各种实施例中可以是共享高速缓存或私有高速缓存)和/或路由器110。处理器核106可以在单个集成电路(IC)芯片上实现。此外,芯片可以包括一个或多个共享和/或私有高速缓存(例如高速缓存108)、总线或互连(例如总线或互连112)、逻辑120、逻辑150、存储器控制器(例如参考图5-7论述的那些)、NVM(非易失性存储器)152(例如,其包括闪速存储器、固态驱动器(SSD))等,或其他部件。
在一个实施例中,路由器110可以用于在处理器102-1和/或系统100的各种部件之间通信。此外,处理器102-1可以包括不只一个路由器110。此外,许多路由器110可以通信以能够在处理器102-1内部或外部的各种部件之间数据路由。
高速缓存108可以存储数据(例如,其包括指令),其被处理器102-1的一个或多个部件(例如核106)使用。例如,高速缓存108可以本地缓存易失性存储器114中存储的数据以供处理器102的部件更快访问。如在图1中示出的,存储器114可以经由互连104与处理器102通信。在实施例中,高速缓存108(其可以共享)可以具有各种级别,例如高速缓存108可以是中间级别的高速缓存和/或最后的级别的高速缓存(LLC)。核106中的每个还可以包括1级(L1)高速缓存(116-1)(在本文一般称为“L1高速缓存116”)。处理器102-1的各种部件可以直接、通过总线(例如,总线112)和/或存储器控制器或集线器(hub)与高速缓存108通信。
如在图1中示出的,存储器114可以通过易失性存储器控制器120耦合于系统100的其他部件。系统100还包括NVM存储器控制器逻辑150来使NVM存储器152耦合于系统100的各种部件。在一些实施例中,NVM存储器(持久存储器)152包括非易失性存储器,例如纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋转移矩随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器(例如PCM(相变存储器))等。即使存储器控制器150示出为在互连104与存储器152之间耦合,逻辑150可以位于系统100中的别处。例如,在各种实施例中,逻辑150(或它的部分)可以在处理器102、控制器120等中的一个内提供。在实施例中,逻辑150和NVM 152包括在SSD中。然而,逻辑150控制对一个或多个NVM设备152(例如,在一些实施例中,其中一个或多个NVM设备在相同集成电路晶片上提供)的访问,如在本文关于各种实施例论述的。在实施例中,存储器控制器120和NVM控制器150还可以组合成单个控制器。
图2图示根据实施例的两级系统主存储器的框图。一些实施例针对系统主存储器200,其包括两级存储器(备选地在本文称为“2LM”),该两级存储器包括系统盘级存储的高速缓存子集(除例如运行时数据之外)。该主存储器包括:第一级存储器210(备选地在本文称为“近存储器”),其包括例如由易失性存储器114(例如,包括DRAM(动态随机存取存储器))、NVM 152等组成的更小更快存储器;和第二级存储器208(备选地在本文称为“远存储器”),其包括更大且更慢(相对于近存储器)的易失性存储器(例如,存储器114)或非易失性存储器存储(例如,NVM 152)。
在实施例中,远存储器对主机操作系统(OS)呈现为“主存储器”,而近存储器是远存储器的高速缓存,其对OS是透明的,从而使下文描述的实施例表现得与通用主存储器技术方案一样。两级存储器的管理可以通过经由主机中央处理单元(CPU)102(其在本文能互换地称为“处理器”)执行的逻辑和模块的组合来进行。为了高效处理,近存储器可以经由一个或多个高带宽、低延迟链路、总线或互连而耦合于主机系统CPU。远存储器可以经由一个或多个低带宽、高延迟链路、总线或互连(如与近存储器的相比)耦合于CPU。
参考图2,主存储器200向CPU 102提供对系统盘存储存储器(例如图5的盘驱动器528或图6的数据存储648)的内容的运行时数据存储和访问。CPU可以包括高速缓存存储器,其将存储主存储器200的内容的子集。远存储器可以包括如本文论述的易失性或非易失性存储器。在这样的实施例中,近存储器210服务于远存储器208的低延迟和高带宽(即,对于CPU 102访问)高速缓存,其可以具有明显较低带宽和较高延迟(即,对于CPU 102访问)。
在实施例中,近存储器210由近存储器控制器(NMC)204管理,而远存储器208由远存储器控制器(FMC)206管理。FMC 206将远存储器208作为主存储器报告给系统OS(即,系统OS将远存储器208的大小识别为系统主存储器200的大小)。因为近存储器210是远存储器208的“透明”高速缓存,系统OS和系统应用“不知”近存储器210的存在。
CPU 102进一步包括2LM引擎模块/逻辑202。“2LM引擎”是逻辑构造,其可以包括硬件和/或微代码扩展来支持两级主存储器200。例如,2LM引擎202可以维持完整的标签表,其跟踪远存储器208的所有架构上可见元件的状态。例如,在CPU 102尝试访问主存储器200中的特定数据段时,2LM引擎202确定在近存储器210中是否包括数据段;如果否的话,2LM引擎202提取远存储器208中的数据段并且随后将数据段写入近存储器210(与高速缓存未命中相似)。要理解,因为近存储器210充当远存储器208的“高速缓存”,2LM引擎202可以进一步执行数据完善或相似高速缓存效能进程。
此外,2LM引擎202可以管理远存储器208的其他方面。例如,在远存储器208包括非易失性存储器(例如,NVM 152)的实施例中,理解非易失性存储器(例如闪存)经受由于大量读/写引起的存储器段的降级。从而,2LM引擎202可以采用对系统软件透明的方式执行功能,其包括损耗均衡、坏块避免及类似物。例如,执行损耗均衡逻辑可以包括从远存储器208中具有相对低擦除周期计数的干净未映射段的自由池中选择段。
在一些实施例中,近存储器210在大小上可以小于远存储器208,但确切比率可以基于例如预计系统使用而变化。在这样的实施例中,要理解因为远存储器208可以包括较密集和/或较廉价的非易失性存储器,主存储器200的大小可以廉价且高效增加并且独立于系统中的DRAM(例如,近存储器210)的数量而增加。
在一个实施例中,远存储器208采用压缩形式存储数据并且近存储器210包括对应的未压缩版本。从而,在近存储器210请求远存储器208的内容时,FMC 206检索内容并且采用定制为匹配使用中的压缩算法的固定有效载荷大小(例如,256B传输)返回它。
在实施例中,提供用于管理具有独特性能和/或可靠性特性的持久存储器的区域的机制。在实施例中,特性与独立盘冗余阵列(RAID)6相似。在一些实施例中,持久存储器的区域组织到池内并且池充当卷的容量源。该系统的优势是:(a)持久存储器区域可以具有有价值的独特特性;(b)区域分组为具有相似特性的池,从而降低配置系统的复杂性;和/或(c)具有特定特性的卷可以从池创建并且可以随获益于那些特性的应用来分配。
因此,一些实施例:(1)允许有多个持久存储器区域,每个具有独特的有价值特性;(2)通过引入池和卷的概念使持久存储器的配置抽象化和简化;(3)提供应用可见持久存储器卷,其保留创建池(从其中创建这些卷)的独特有价值特性;和/或(4)允许应用从能够使用具有匹配特性的卷来获益。
图3A示出根据实施例的配置存储器系统的框图。样本NUMA(非均匀存储器访问)块在图3A中示出,如由Px(或分区x)标签指示的。图3A示出各种DIMM(每个图示为具有多个分区的列)。每个DIMM耦合于相应的存储器控制器(例如在本文参考图1-2和5-7论述的存储器控制器)。在实施例中,在存储器控制器中进行交错和/或镜像操作。
在图3A中,P1-P10指示下列样本特性,其可以与持久存储器的不同池关联。P1至P10代表具有不同特性的不同池:
P1:NUMA,256B通道/4K iMC(集成存储器控制器)交错,套接字故障域(socket faultdomain)
P2:NUMA, 没有交错,DIMM故障域
P3:NUMA, 没有交错,DIMM故障域
P4:NUMA, 没有交错,DIMM故障域
P5:NUMA, 没有交错,DIMM故障域
P6:UMA, 4K通道/1MB iMC交错系统故障域
P7:UMA,块可寻址,系统故障域
P8:NUMA,镜像,DIMM故障域
P9:NUMA,1MB通道/1MB iMC交错,套接字故障域
P10:NUMA,镜像,DIMM,故障域。
图3B图示根据实施例配置存储器的方法350 的流程图。在一个实施例中,参考图1-3A和5-7论述的各种部件可以用于执行参考图3B论述的操作中的一个或多个。在实施例中,方法350的一个或多个操作在逻辑(例如,固件)中实现,例如图1的逻辑150和/或控制器120和/或参考其他图论述的其他存储器控制器。
参考图1至3B,在操作352处,检测或发现持久存储器的区域的属性(这些在图中示出为Px标记的框)。在一些实施例中,考虑的属性包括以下中的一个或多个:UMA、NUMA、交错类型、通信通道宽度/速度、故障域的类型(例如,系统、DIMM、套接字等)、镜像状态(即,镜像或未镜像)等。在操作354处,具有相似特性/属性的区域组织到QoS(服务质量)池内。将容量贡献给指定池的区域在图中标记Px,其中x是池号。
在操作356处,QoS池对系统管理员变得可用,例如采用以下中的一个或多个的形式:池名称、池中持久存储器的性能和/或可靠性特性,和/或池内的可用容量。
在操作358处,管理员从池容量创建一个或多个卷。这些在图中示出为圆柱。在图中卷“v1”的情况下,它由从池P6(其是UMA(均匀存储器访问))、交错池(其包含来自系统内的所有非易失性DIMM(NVDIMM)的区域)的范围组成。同样,卷“v2”使用池P2的单一范围并且具有NUMA性能特性并且它的故障域是单个NVDIMM。在数据中心环境中,来自个体节点的卷可以组合并且作为具有特定QoS特性的单个资源来管理。例如,CSP(云服务提供商)可以提供两个类型的虚拟机实例,一个具有高度可靠的持久存储并且一个具有高性能存储。这些实例可以分别由池P10和P1形成。CSP可以预备节点使得预期的容量的量在每个QoS池中可用。
在操作360处,卷作为持久存储器或块设备暴露于操作系统和/或应用。在操作312处,卷分配给具有匹配特性的应用。例如,“v1”分配给未NUMA优化的工作负载。
在一些实施例中,软件定义数据中心可以如下引入增加级别的自动化:
(1)自动卷创建:QoS卷可以响应于工作负载需求而自动创建以及破坏。因为卷是持久的,这些可以仅在拥有它们的应用被永久引退时删除;
(2)自动池创建:QoS池可以响应于工作负载需求而动态扩大和/或收缩;
(3)在出现新类型的工作负载时可以引入新的QoS池类型的时候,可以达到最高级自动化。例如,需要更多可预测存储带宽的应用的需要可以通过跨越整个持久DIMM的卷来满足。具有该QoS特性的池不在原始列表中(参见图3A),但可以根据本文论述的技术来定义。
此外,持久存储器是慢慢被工业接受的新的编程范式。借助于本文描述的一些实施例,应用能够从持久存储器获得最大利益。这样的实施例也可以用于确保持久存储器技术纳入软件定义存储(SDS)基础设施或视觉,从而导致更加动态的数据中心。
如上文论述的,非易失性存储器在被引入CPU存储器层级内时提供很大的配置灵活性。此外,NVM DIMM可以分区成易失性区域和持久区域。这些区域可以采用各种交叉或RAS模式操作来适应工作负载行为和用户要求。初始NVM配置可以由系统BIOS(基本输入/输出系统)执行,因为它具有对CPU地址映射的隐含。然而,BIOS并未具有理解用户需要或表征工作负载行为的能力。为此,一些实施例:(a)使用户能够充分利用分区NVM DIMM所提供的灵活性;(b)使由于BIOS配置错误引起的用户数据丢失的机会最小化;和/或(c)使用户能够检索DIMM上存储的持久数据,甚至在主板出故障情况下也如此。
然而,现今市场上的NVM DIMM未提供该级别的灵活性,因此工业上迄今为止还未遇到该问题。例如,类型1 NVM DIMM包含依靠NV(非易失性)存储器的DRAM。DRAM在CPU地址空间中直接映射,但这些DIMM无法用作NV存储。类型3 NVM DIMM也表现得像块设备,但无法采用易失性模式使用并且这些DIMM上的NVM无法直接在CPU地址空间中映射。因此,NVMDIMM的配置随着制造商引入提供巨大灵活性的下一代NVM技术而成为问题。对此,一些实施例可以对这样即将到来的NVM技术提供灵活性。
一些当前实现包括DIMM SPD(串行存在检测)ROM(只读存储器)、盘分区数据和RAID元数据。下列三个表描述实施例如何与这些中的每个不同:
图4A示出根据实施例的NVM管理架构的数据中心级视图。在下文描述一些部件。在最底部示出的每个NVM DIMM可以分区成易失性和持久/非易失性区域。这两个区域在CPU地址空间中映射。每个DIMM还包含两个管理分区P1和P2。P1和P2经由专用管理(例如,邮箱)接口而可访问。在NVM控制器中实现邮箱接口。管理分区甚至在NVM DIMM未另外配置(即易失性和持久区域未映射到CPU地址空间内)时也可访问。
BIOS以及NMV驱动器使用邮箱接口来访问管理分区。NVM驱动器借助于高级配置和功率接口(ACPI)规范(例如,2013年11月13日的修订5.0a)表和/或统一可扩展固件接口(UEFI)规范(例如,2013年7月发布的版本2.4)来枚举NVM DIMM。例如,表规定DIMM群体、配置选项/限制等。
本地管理应用部件通过向NVM驱动器发送IOCTL(输入/输出控制)消息来访问管理分区2。各种类型的文件系统可以在NVM驱动器顶部上分层。NVM驱动器和文件系统一起对遗留应用提供标准块和文件系统API(应用编程接口)。另一方面,PM(或持久存储器)感知应用(指已被修改来理解存储器可以是持久的并且它定位和重用之前保存在持久存储器中的内容的软件)能够绕过驱动器层并且经由加载/存储指令直接访问NVM,例如用于提高性能。
在数据中心环境中,管理软件层处的工作负载调度器感知哪些应用在每个系统上运行并且因此可以关于跨易失性和持久区域等的NVM DIMM的分区提出建议。
图4B图示根据实施例的两个管理分区的框图。即使参考图4B仅论述两个管理分区,在各种实施例中可以使用更多管理分区。更特定地,管理分区2(P2)持有下列三个表:(1)NV DIMM当前配置,由BIOS存储;(2)NV DIMM配置请求,由管理应用存储;和(3)NV DIMM配置响应,由BIOS存储。
管理分区1(P1)持有NV DIMM当前配置,其还充当最近已知可靠(LKG)配置。NVM控制器限制对P1的访问使得BIOS可以对P1读/写,但OS驱动器/应用无法这样做。这确保有缺陷/恶意OS软件无法直接消除LKG。
图4C图示根据实施例配置存储器的方法的流程图。在一个实施例中,参考图1-4B和5-7论述的各种部件可以用于执行参考图4C论述的操作中的一个或多个。在实施例中,图4C的一个或多个操作在逻辑(例如,固件)中实现,例如图1的逻辑150和/或控制器120和/或参考其他图论述的其他存储器控制器。
参考图1至4C,首先,NVM配置/重配置包括以下:(a)NVM管理控制台针对关于NVM群体和配置选项的信息询问位于每个系统上的管理应用;(b)管理应用从ACPI表和P2中的表检索该信息;(c)基于NVM配置信息、来自用户的输入、来自工作负载调度器和其他管理部件的提示,NVM管理控制台可以对每个系统计算下一个NVM配置并且将它传达给管理应用。其次,管理应用将新的配置存储在NVM DIMM管理分区2中,如在图4C中示出的。第三,在重启时,BIOS从NVM DIMM管理分区2读取新的配置请求并且处理它。如果没有新的请求,BIOS将应用来自管理分区1的LKG配置。如果BIOS能够兑现请求,它重配置DIMM并且将该配置存储在管理分区中。如果BIOS不能兑现请求,它尝试使用LKG配置来启动。如果LKG配置不运作(例如,由于DIMM故障),BIOS将采用NVM禁用模式启动。对于每个处理的请求,BIOS将响应存储在管理分区中。第四,响应由管理应用和NVM管理控制台来消耗。
在主板故障的情况下,用户可以使NVM DIMM物理转向(例如,同样的)替代系统。新系统上的BIOS应用LKG配置并且重建地址映射来匹配故障系统。如果用户按不正确顺序安装DIMM,BIOS可以采用NVM禁用模式启动并且将用户导向正确配置。
一些实施例的使用确保最终用户能够利用NV DIMM提供的灵活性。这在两个数据中心以及客户端市场方面可以是重要的。在数据中心环境中,NVM DIMM可以配置/重配置成匹配工作负载、最终用户SLA(服务等级协定)或CSP TCO(所有权总成本)。在任务关键环境中,这样的技术可以用于配置热添加NVM DIMM等。关于NVDIMM技术和更一般地本地存储的主要关注点之一还是系统崩溃情况下用户数据丢失的可能性。为了解决此,一些实施例提供减轻这些问题的方式。
例如,如参考图4A-4C论述的,一些实施例操作如下:
1. BIOS向管理软件层传达各种NVM配置选项和限制;
2. 管理软件层在BIOS规定的约束下确定最佳NVM配置。管理软件可以在该过程期间使用复杂算法和用户输入;
3. 管理软件经由位于每个NVM DIMM上的专用分区向BIOS传达期望配置;
4. BIOS处理来自管理软件的请求;
a. 如果没有新的请求,BIOS将应用最近已知可靠(LKG)配置。LKG配置存储在NVM DIMM上的另一个专用分区上。LKG分区可以仅被BIOS更新;
b.如果BIOS能够兑现请求,它重配置DIMM并且将该配置提升为最近已知可靠(LKG)配置;
c. 如果BIOS不能兑现请求,它退回LKG配置或NVM禁用模式;
d. 对于每个处理的请求,BIOS将响应存储在NVM DIMM中。响应由管理软件消耗;和/或
5. 如果主板出故障,DIMM可以移到类似的主板,其中BIOS可以从每个DIMM中的LKG分区读取LKG配置并且设置NVM地址映射来匹配之前的系统。存储在DIMM上的用户数据现在可以使用标准实用工具来检索。
图5图示根据本发明的实施例的计算系统500的框图。该计算系统500可以包括一个或多个中央处理单元(CPU)502或处理器,其经由互连网络(或总线)504通信。处理器502可以包括通用处理器、网络处理器(其处理通过计算机网络503传达的数据)、应用处理器(例如在蜂窝电话、智能电话等中使用的那些)或其他类型的处理器(其包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。可以使用各种类型的计算机网络503,其包括有线(例如,以太网、吉比特、光纤等)或无线网络(例如蜂窝、3G(第三代蜂窝电话技术或第三代无线格式(UWCC))、5G、低功率嵌入(LPE)等)。此外,处理器502可以具有单或多核设计。具有多核设计的处理器502可以使不同类型的处理器核在相同集成电路(IC)晶片上集成。具有多核设计的处理器502还可以实现为对称或不对称多处理器。
在实施例中,处理器502中的一个或多个可以与图1的处理器102相同或相似。例如,处理器502中的一个或多个可以包括核106和/或高速缓存108中的一个或多个。参考图1-4论述的操作还可以由系统500的一个或多个部件执行。
芯片集506还可以与互连网络504通信。芯片集506可以包括图形和存储器控制器集线器(GMCH)508。GMCH 508可以包括存储器控制器510(其在实施例中可以与图1的存储器控制器120相同或相似),其与存储器114通信。系统500还可以包括各种位点(例如图5中示出的那些,但可以在系统500内的其他位点(未示出)中)中的逻辑150(例如,耦合于NVM152)。存储器114可以存储数据,其包括由CPU 502或计算系统500中包括的任何其他设备执行的指令序列。在本发明的一个实施例中,存储器114可以包括一个或多个易失性存储(或存储器)设备,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其他类型的存储设备。还可以使用非易失性存储器,例如硬盘、闪存、字节可寻址3维交叉点存储器(例如PCM)、电阻随机存取存储器、NAND存储器、NOR存储器和STTRAM。额外设备可以经由互连网络504通信,例如多个CPU和/或多个系统存储器。
GMCH 508还可以包括图形接口514,其与图形加速器516通信。在本发明的一个实施例中,图形接口514可以经由加速图形端口(AGP)或外围组件互连(PCI)(或PCI高速(PCIe)接口)与图形加速器516通信。在本发明的实施例中,显示器517(例如平板显示器、触屏等)可以通过例如将存储设备(例如视频存储器或系统存储器)中存储的图像的数字表示转化成由显示器解释和显示的显示信号的单个转换器而与图形接口514通信。显示设备产生的显示信号在被显示器517解释并且随后在其上显示之前可以经过各种控制设备。
集线器接口(hub interface)518可以允许GMCH 508和输入/输出控制集线器(ICH)520通信。ICH 520可以向与计算系统500通信的I/O设备提供接口。ICH 520可以通过例如外围组件互连(PCI)桥、通用串行总线(USB)控制器或其他类型的外围桥或控制器等外围桥(或控制器)524与总线522通信。桥524可以在CPU 502与外围设备之间提供数据路径。可以使用其他类型的拓扑。多个总线也可以与ICH 520通信,例如通过多个桥或控制器。此外,与ICH 520通信的其他外设在各种实施例中可以包括集成驱动电子器件(IDE)或小型计算机系统接口(SCSI)硬驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))或其他设备。
总线522可以与音频设备526、一个或多个盘驱动器528和网络接口设备530(其与计算机网络503通信,例如经由有线或无线接口)通信。如示出的,网络接口设备530可以耦合于天线531来与网络503无线(例如,经由电气和电子工程师协会(IEEE)802.11接口(其包括IEEE 802.11a/b/g/n)、蜂窝接口、3G、5G、LPE等)通信。其他设备可以经由总线522通信。在一些实施例中,各种部件(例如网络接口设备530)也可以与GMCH 508通信。另外,处理器502和GMCH 508可以组合来形成单个芯片。此外,在其他实施例中,图形加速器516可以包括在GMCH 508内。
此外,计算系统500可以包括易失性和/或非易失性存储器(或存储)。例如,非易失性存储器可以包括下列中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、盘驱动器(例如,528)、软盘、压缩盘ROM(CD-ROM)、数字多功能盘(DVD)、闪速存储器、磁光盘或能够存储电子数据(例如,其包括指令)的其他类型的非易失性机器可读介质。
图6图示根据实施例采用点到点(PtP)配置设置的计算系统600。特别地,图6示出一种系统,其中处理器、存储器和输入/输出设备通过许多点到点接口互连。参考图1-5论述的操作可以由系统600的一个或多个部件执行。
如在图6中图示的,系统600可以包括若干处理器,为了清楚起见仅示出其中的两个:处理器602和604。处理器602和604各自可以包括本地存储器控制器集线器(MCH)606和608以能够与存储器610和612通信。存储器610和/或612可以存储各种数据,例如参考图1和/或5的存储器114或NVM 152论述的那些。在一些实施例中,MCH 606和608也可以包括图1的存储器控制器120和/或逻辑150。
在实施例中,处理器602和604可以是参考图5论述的处理器502中的一个。处理器602和604可以分别使用点到点(PtP)接口电路616和618经由PtP接口614交换数据。处理器602和604各自也可以使用点到点接口电路626、628、630和632经由个体PtP接口622和624与芯片集620交换数据。芯片集620可以进一步经由高性能图形接口636与高性能图形电路634交换数据,例如使用PtP接口电路637。如参考图5论述的,在一些实施例中,图形接口636可以耦合于显示设备(例如,显示器517)。
如在图6中示出的,图1的核106和/或高速缓存108中的一个或多个可以位于处理器602和604内。然而,在图6的系统600内的其他电路、逻辑单元或设备中可以存在其他实施例。此外,其他实施例可以遍及图6中图示的若干电路、逻辑单元或设备而分布。
芯片集620可以使用PtP接口电路641与总线640通信。总线640可以具有与之通信的一个或多个设备,例如总线桥642和I/O设备643。经由总线644,总线桥642可以与其他设备通信,例如键盘/鼠标645、通信设备646(例如调制解调器、网络接口设备或可以与计算机网络503通信的其他通信设备,如参考网络接口设备530论述的,例如包括经由天线531)、音频I/O设备和/或数据存储设备648。数据存储设备648可以存储由处理器602和/或604执行的代码649。
在一些实施例中,本文论述的部件中的一个或多个可以包含在芯片上系统(SOC)设备上。图7图示根据实施例的SOC封装的框图。如在图7中图示的,SOC 702包括一个或多个中央处理单元(CPU)核720、一个或多个图形处理器单元(CPU)核730、输入/输出(I/O)接口740和存储器控制器742(其可以与存储器控制器120和/或逻辑150相同或相同)。SOC封装702的各种部件可以耦合于互连或总线,例如在本文参考其他图论述的。SOC封装702还可以包括更多或更少的部件,例如在本文参考其他图论述的那些。此外,SOC封装720的每个部件可以包括一个或多个其他部件,例如参考本文的其他图论述的。在一个实施例中,在一个或多个集成电路(IC)晶片上提供SOC封装702(和它的部件),例如,它们封装到单个半导体器件上。
如在图7中图示的,SOC封装702经由存储器控制器742耦合于存储器760(其可以与在本文参考其他图论述的存储器相似或相同)。在实施例中,存储器760(或它的一部分)可以在SOC封装702上集成。
I/O接口740可以耦合于一个或多个I/O设备770,例如经由互连和/或总线,例如在本文参考其他图论述的。I/O设备770可以包括键盘、鼠标、触控板、显示器、图像/视频捕捉设备(例如拍摄装置或摄影机/录像机)、触屏、扬声器或类似物中的一个或多个。此外,在实施例中,SOC封装702可以包括/集成逻辑150和/或存储器控制器120。备选地,逻辑150和/或存储器控制器120可以在SOC封装702外部提供(即,作为离散逻辑)。
下列示例关于另外的实施例。示例1包括一种装置,其包括:存储器控制器逻辑,其耦合于非易失性存储器,用于至少部分基于一个或多个属性将非易失性存储器配置为多个分区,其中对应用或操作系统可见的一个或多个卷要由多个分区中的一个或多个形成,其中一个或多个卷中的每个包括多个分区中的具有来自一个或多个属性的至少一个相似属性的一个或多个分区。示例2包括示例1的装置,其中非易失性存储器要映射到处理器地址空间内以允许处理器直接对非易失性存储器寻址。示例3包括示例1的装置,其中一个或多个属性包括以下中的一个或多个:UMA(均匀存储器访问)、NUMA(非均匀存储器访问)、交错类型、通信通道宽度或速度、故障域类型或镜像状态。示例4包括示例1的装置,其中一个或多个卷跨系统重设或失电而维持它们的内容。示例5包括示例1的装置,其中非易失性存储器包括一个或多个非易失性DIMM(双列直插存储器模块)。示例6包括示例1的装置,其中非易失性存储器包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋转移矩随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器和相变存储器(PCM)。示例7包括示例1的装置,其中一个或多个处理器核耦合于存储器控制器逻辑来访问非易失性存储器中存储的数据。示例8包括示例1的装置,其中存储器控制器逻辑、一个或多个处理器核和非易失性存储器中的一个或多个在相同集成电路晶片上。
示例9包括一种装置,其包括:存储器控制器逻辑,其耦合于非易失性存储器(NVM)双列直插存储器模块(DIMM),用于将NVM DIMM配置为持久区域和易失性区域,其中NVMDIMM要映射到处理器的地址空间内以允许处理器直接对NVM DIMM寻址,其中NVM DIMM使用至少两个管理分区,其中这些管理分区甚至在NVM DIMM已映射到处理器的地址空间内之前可访问。示例10包括示例9的装置,其中管理分区要经由管理接口而可访问。示例11包括示例10的装置,其中基本输入/输出系统(BIOS)或NVM驱动器中的一个或多个使用管理接口来访问管理分区。示例12包括示例11的装置,其中NVM驱动器至少部分基于来自高级配置和功率接口(ACPI)的信息来使用管理接口。示例13包括示例9的装置,其中至少两个管理分区中的一个存储对应于NVM DIMM的最近已知可靠配置的信息。示例14包括示例13的装置,其中存储对应于最近已知可靠配置的数据的分区被保护以免受操作系统影响。示例15包括示例13的装置,其中基本输入/输出系统(BIOS)访问存储在分区中的数据,该分区存储对应于最近已知可靠配置的数据。示例16包括示例13的装置,其中管理软件使用至少两个管理分区中的一个来将NVM配置数据传达到BIOS。示例17包括示例13的装置,其中在主板出故障的情况下,NVM DIMM至少部分基于最近已知可靠配置信息转向替代系统。示例18包括示例9的装置,其中NVM DIMM包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋转移矩随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器和相变存储器(PCM)。示例19包括示例9的装置,其中一个或多个处理器核耦合于存储器控制器逻辑来访问NVM DIMM中存储的数据。
示例20包括一种方法,其包括:至少部分基于一个或多个属性将非易失性存储器配置为多个分区,其中对应用或操作系统可见的一个或多个卷由多个分区中的一个或多个形成,其中一个或多个卷中的每个包括多个分区中的具有来自一个或多个属性的至少一个相似属性的一个或多个分区。示例21包括示例20的方法,其进一步包括将非易失性存储器映射到处理器的地址空间以允许处理器直接对非易失性存储器寻址。示例22包括示例20的方法,其中一个或多个属性包括以下中的一个或多个:UMA(均匀存储器访问)、NUMA(非均匀存储器访问)、交错类型、通信通道宽度或速度、故障域类型或镜像状态。
示例23包括一种方法,其包括:将NVM DIMM配置为持久区域和易失性区域,其中NVM DIMM映射到处理器的地址空间内以允许处理器直接对NVM DIMM寻址,其中NVM DIMM使用至少两个管理分区,其中这些管理分区甚至在NVM DIMM已经映射到处理器的地址空间内之前可访问。示例24包括示例23的方法,其中管理分区要经由管理接口而可访问。示例25包括示例24的装置,其中基本输入/输出系统(BIOS)或NVM驱动器中的一个或多个使用管理接口来访问管理分区。
示例26包括一种系统,其包括:处理器,其具有一个或多个处理器核;和存储器控制器逻辑,其耦合于处理器和非易失性存储器,用于至少部分基于一个或多个属性将非易失性存储器配置为多个分区,其中对应用或操作系统可见的一个或多个卷要由多个分区中的一个或多个形成,其中一个或多个卷中的每个包括多个分区中的具有来自一个或多个属性的至少一个相似属性的一个或多个分区。示例27包括示例26的系统,其中非易失性存储器要映射到处理器的地址空间内以允许处理器直接对非易失性存储器寻址。示例28包括示例26的系统,其中一个或多个属性包括以下中的一个或多个:UMA(均匀存储器访问)、NUMA(非均匀存储器访问)、交错类型、通信通道宽度或速度、故障域类型或镜像状态。
示例29包括一种系统,其包括:处理器,其具有一个或多个处理器核;和存储器控制器逻辑,其耦合于处理器和非易失性存储器(NVM)双列直插存储器模块(DIMM),用于将NVM DIMM配置为持久区域和易失性区域,其中NVM DIMM要映射到处理器的地址空间内以允许处理器直接对NVM DIMM寻址,其中NVM DIMM使用至少两个管理分区,其中这些管理分区甚至在NVM DIMM已映射到处理器的地址空间之前可访问。示例30包括示例29的系统,其中管理分区要经由管理接口而可访问。示例31包括示例30的系统,其中基本输入/输出系统(BIOS)或NVM驱动器中的一个或多个使用管理接口来访问管理分区。
示例32包括一种装置,其包括用于执行如在任何之前的示例中阐述的方法的部件。
示例33包括机器可读存储,其包括机器可读指令,这些指令在执行时实现如在任何之前的示例中阐述的方法或实现如在任何之前的示例中阐述的装置。
在各种实施例中,例如参考图1-7在本文论述的操作可以实现为硬件(例如,电路)、软件、固件、微代码或其组合,其可以作为计算机程序产品而提供,例如包括有形(例如,非暂时性)机器可读或计算机可读介质,具有存储在其上的指令(或软件规程),用于对计算机编程来执行本文论述的进程。术语“逻辑”通过示例还可以包括软件、硬件或软件和硬件的组合。机器可读介质可以包括存储设备,例如关于图1-7论述的那些。
另外,这样的有形计算机可读介质可以作为计算机程序产品而被下载,其中程序可经由通信链路(例如,总线、调制解调器或网络连接)通过数据信号(例如在载波或其它传播介质中)从远程计算机(例如,服务器)传递到请求计算机(例如,客户端)。
在说明书中对“一个实施例”或“实施例”的引用意指连同实施例描述的特定特征、结构或特性可以包括在至少一个实现中。短语“在一个实施例中”在说明书中各种地方的出现可以全部指相同实施例,或可以并不全指相同的实施例。
在描述和权利要求中,还可使用术语“耦合”和“连接”连同它们的派生词。在一些实施例中,“连接”用于指示两个或以上的元件彼此直接物理或电接触。“耦合”可以意指两个或以上的元件直接物理或电接触。然而,“耦合”还可以意指两个或以上的元件可彼此不直接接触,但仍可彼此配合或相互作用。
从而,尽管实施例已经用结构特征和/或方法动作特定的语言描述,要理解要求保护的主旨可不限于描述的特定特征或动作。相反,特定特征和动作作为实现要求保护的主旨的示例形式而公开。

Claims (25)

1.一种装置,其包括:
存储器控制器逻辑,其耦合于非易失性存储器,用于至少部分基于一个或多个属性将非易失性存储器配置为多个分区,
其中对应用或操作系统可见的一个或多个卷要由所述多个分区中的一个或多个形成,其中所述一个或多个卷中的每个要包括所述多个分区中的具有来自所述一个或多个属性的至少一个相似属性的一个或多个分区。
2.如权利要求1所述的装置,其中所述非易失性存储器要映射到处理器的地址空间内以允许所述处理器直接对所述非易失性存储器寻址。
3.如权利要求1所述的装置,其中所述一个或多个属性要包括以下中的一个或多个:UMA(均匀存储器访问)、NUMA(非均匀存储器访问)、交错类型、通信通道宽度或速度、故障域类型,或镜像状态。
4.如权利要求1所述的装置,其中所述一个或多个卷要跨系统重设或失电维持它们的内容。
5.如权利要求1所述的装置,其中所述非易失性存储器要包括一个或多个非易失性DIMM(双列直插存储器模块)。
6.如权利要求1所述的装置,其中所述非易失性存储器要包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋转移矩随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器和相变存储器(PCM)。
7.如权利要求1所述的装置,其中一个或多个处理器核耦合于所述存储器控制器逻辑来访问所述非易失性存储器中存储的数据。
8.如权利要求1所述的装置,其中所述存储器控制器逻辑、一个或多个处理器核和所述非易失性存储器中的一个或多个在相同集成电路晶片上。
9.一种装置,其包括:
存储器控制器逻辑,其耦合于非易失性存储器(NVM)双列直插存储器模块(DIMM),用于将所述NVM DIMM配置为持久区域和易失性区域,
其中所述NVM DIMM要映射到所述处理器的地址空间内以允许所述处理器直接对所述NVM DIMM寻址,其中所述NVM DIMM要使用至少两个管理分区,其中所述管理分区甚至在所述NVM DIMM已映射到所述处理器的地址空间内之前将是可访问的。
10.如权利要求9所述的装置,其中所述管理分区经由管理接口将是可访问的。
11.如权利要求10所述的装置,其中基本输入/输出系统(BIOS)或NVM驱动器中的一个或多个要使用所述管理接口来访问所述管理分区。
12.如权利要求11所述的装置,其中所述NVM驱动器要至少部分基于来自高级配置和功率接口(ACPI)的信息来使用所述管理接口。
13. 如权利要求9所述的装置,其中所述至少两个管理分区中的一个要存储对应于所述NVM DIMM的最近已知可靠配置的信息,或其中存储对应于所述最近已知可靠配置的数据的分区要被保护以免受操作系统影响,或其中基本输入/输出系统(BIOS)要访问存储在存储对应于所述最近已知可靠配置的数据的分区中的数据。
14.如权利要求13所述的装置,其中管理软件要使用所述至少两个管理分区中的一个来将NVM配置数据传达到BIOS。
15. 如权利要求13所述的装置,其中在主板出故障的情况下,所述NVM DIMM要至少部分基于最近已知可靠配置信息而转向替代系统。
16. 如权利要求9所述的装置,其中所述NVM DIMM要包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋转移矩随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器和相变存储器(PCM)。
17. 如权利要求9所述的装置,其中一个或多个处理器核耦合于所述存储器控制器逻辑来访问所述NVM DIMM中存储的数据。
18.一种方法,其包括:
至少部分基于一个或多个属性将非易失性存储器配置为多个分区,
其中对应用或操作系统可见的一个或多个卷由所述多个分区中的一个或多个形成,其中所述一个或多个卷中的每个包括所述多个分区中的具有来自所述一个或多个属性的至少一个相似属性的一个或多个分区。
19.如权利要求20的方法,其进一步包括将所述非易失性存储器映射到所述处理器的地址空间以允许所述处理器直接对所述非易失性存储器寻址。
20.如权利要求20所述的方法,其中所述一个或多个属性要包括以下中的一个或多个:UMA(均匀存储器访问)、NUMA(非均匀存储器访问)、交错类型、通信通道宽度或速度、故障域类型,或镜像状态。
21.一种方法,其包括:
将NVM DIMM配置为持久区域和易失性区域,
其中所述NVM DIMM映射到处理器的地址空间内以允许所述处理器直接对所述NVMDIMM寻址,其中所述NVM DIMM要使用至少两个管理分区,其中所述管理分区甚至在所述NVMDIMM已映射到所述处理器的地址空间内之前将是可访问的。
22.如权利要求21所述的方法,其中所述管理分区经由管理接口将是可访问的。
23.如权利要求22所述的装置,其中基本输入/输出系统(BIOS)或NVM驱动器中的一个或多个要使用所述管理接口来访问所述管理分区。
24.一种计算机可读介质,其包括一个或多个指令,所述指令在处理器上执行时配置所述处理器来执行如权利要求18至23中任一项所述的一个或多个操作。
25.一种装置,其包括用于执行如权利要求18至23中任一项所述的方法的部件。
CN201580063634.4A 2014-12-22 2015-11-24 分配和配置持久存储器 Active CN107077303B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/580,125 2014-12-22
US14/580,125 US10126950B2 (en) 2014-12-22 2014-12-22 Allocating and configuring persistent memory
PCT/US2015/062277 WO2016105790A1 (en) 2014-12-22 2015-11-24 Allocating and configuring persistent memory

Publications (2)

Publication Number Publication Date
CN107077303A true CN107077303A (zh) 2017-08-18
CN107077303B CN107077303B (zh) 2022-11-15

Family

ID=56129384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580063634.4A Active CN107077303B (zh) 2014-12-22 2015-11-24 分配和配置持久存储器

Country Status (5)

Country Link
US (3) US10126950B2 (zh)
KR (1) KR102519904B1 (zh)
CN (1) CN107077303B (zh)
TW (1) TWI567551B (zh)
WO (1) WO2016105790A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10126950B2 (en) 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory
CN109426447A (zh) * 2017-08-28 2019-03-05 慧荣科技股份有限公司 用以优化数据储存装置的数据储存方法及其数据储存装置
CN111373385A (zh) * 2018-06-06 2020-07-03 西部数据技术公司 用于改进的进程切换的处理器和其方法
CN113692620A (zh) * 2019-04-30 2021-11-23 思科技术公司 多列交错dimm布局和路由拓扑

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9740603B2 (en) * 2015-08-06 2017-08-22 International Business Machines Corporation Managing content in persistent memory modules when organization of the persistent memory modules changes
US20170083254A1 (en) * 2015-09-19 2017-03-23 Qualcomm Incorporated Secure transaction management techniques
US9942631B2 (en) 2015-09-25 2018-04-10 Intel Corporation Out-of-band platform tuning and configuration
US10180796B2 (en) * 2015-10-16 2019-01-15 SK Hynix Inc. Memory system
US11138120B2 (en) 2015-10-16 2021-10-05 SK Hynix Inc. Memory system
US20170109074A1 (en) * 2015-10-16 2017-04-20 SK Hynix Inc. Memory system
US10191664B2 (en) * 2015-10-16 2019-01-29 SK Hynix Inc. Memory system
US10169242B2 (en) 2015-10-16 2019-01-01 SK Hynix Inc. Heterogeneous package in DIMM
US10810144B2 (en) 2016-06-08 2020-10-20 Samsung Electronics Co., Ltd. System and method for operating a DRR-compatible asynchronous memory module
US10210012B2 (en) * 2016-06-27 2019-02-19 Intel Corporation Techniques for persistent memory virtualization
US10034407B2 (en) 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10515006B2 (en) 2016-07-29 2019-12-24 Samsung Electronics Co., Ltd. Pseudo main memory system
US10025714B2 (en) * 2016-09-30 2018-07-17 Super Micro Computer, Inc. Memory type range register with write-back cache strategy for NVDIMM memory locations
US9794366B1 (en) 2016-10-19 2017-10-17 Red Hat, Inc. Persistent-memory management
US11243782B2 (en) 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
US10180793B2 (en) 2017-01-31 2019-01-15 Hewlett Packard Enterprise Development Lp Performance attributes for memory
US10318175B2 (en) 2017-03-07 2019-06-11 Samsung Electronics Co., Ltd. SSD with heterogeneous NVM types
US10901894B2 (en) 2017-03-10 2021-01-26 Oracle International Corporation Allocating and accessing memory pages with near and far memory blocks from heterogeneous memories
CN110463233B (zh) * 2017-03-24 2022-06-24 三星电子株式会社 用于短数据服务的客户端协议选择的系统和方法
US11074009B2 (en) 2017-06-19 2021-07-27 Micron Technology, Inc. Managed NAND cold data storage
TWI645295B (zh) * 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US11341490B2 (en) * 2017-10-11 2022-05-24 International Business Machines Corporation Carbon footprint blockchain network
US20210141547A1 (en) * 2017-10-31 2021-05-13 HEWLETT-PACKARD DEVELOPMENT Companu, L.P. Configuration of non-volatile dual in-line memory modules
US10776267B2 (en) * 2017-12-11 2020-09-15 Red Hat, Inc. Mirrored byte addressable storage
US10579517B2 (en) 2018-03-19 2020-03-03 Dell Products, Lp System and method for providing per channel frequency optimization in a double data rate memory system
US10635311B2 (en) * 2018-04-25 2020-04-28 Dell Products, L.P. Information handling system with reduced reset during dual in-line memory module goal reconfiguration
JP7071640B2 (ja) * 2018-09-20 2022-05-19 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
TWI688859B (zh) * 2018-12-19 2020-03-21 財團法人工業技術研究院 記憶體控制器與記憶體頁面管理方法
US10896142B2 (en) * 2019-03-29 2021-01-19 Intel Corporation Non-volatile memory out-of-band management interface for all host processor power states
US10996893B2 (en) 2019-06-10 2021-05-04 Microsoft Technology Licensing, Llc Non-volatile storage partition identifier
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
US20210389885A1 (en) * 2020-06-16 2021-12-16 Western Digital Technologies, Inc. Fast Recovery For Persistent Memory Region (PMR) of a Data Storage Device
US11544185B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11429545B2 (en) 2020-07-16 2022-08-30 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11544186B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
TWI761983B (zh) * 2020-07-16 2022-04-21 慧榮科技股份有限公司 主機效能加速模式的資料讀取方法及裝置
US12038836B2 (en) * 2020-10-13 2024-07-16 Dell Products L.P. Dynamic memory allocation based on workload characterization and optimization
CN115220639A (zh) 2021-04-15 2022-10-21 伊姆西Ip控股有限责任公司 管理存储系统的方法、电子设备和计算机程序产品
US12026380B2 (en) * 2022-06-30 2024-07-02 Advanced Micro Devices, Inc. Dynamic memory reconfiguration

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1383563A (zh) * 2000-06-09 2002-12-04 皇家菲利浦电子有限公司 用于对在存储介质上可用的存储空间进行隐分区的方法
US20080040540A1 (en) * 2006-08-11 2008-02-14 Intel Corporation On-disk caching for raid systems
US7370166B1 (en) * 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
CN101467136A (zh) * 2006-06-09 2009-06-24 微软公司 高速非易失性存储器设备
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
CN102016808A (zh) * 2008-05-01 2011-04-13 惠普发展公司,有限责任合伙企业 将检查点数据存储于非易失性存储器中
CN102369513A (zh) * 2011-08-31 2012-03-07 华为技术有限公司 提高计算机系统稳定性的方法及计算机系统
CN102945355A (zh) * 2011-08-30 2013-02-27 微软公司 基于扇区映射的快速数据加密策略遵从
CN102959525A (zh) * 2010-07-01 2013-03-06 高通股份有限公司 移动装置内的集成非易失性存储器与主易失性存储器的并行使用
CN103154913A (zh) * 2010-08-06 2013-06-12 英特尔公司 支持用于预启动和安全模式操作的安全可读存储区域
CN103890688A (zh) * 2011-07-28 2014-06-25 奈特力斯公司 一种flash-dram混合存储器模块
CN103946824A (zh) * 2011-11-22 2014-07-23 英特尔公司 用于跨平台代理的非易失性随机访问存储器的访问控制
US20140237176A1 (en) * 2011-02-08 2014-08-21 Diablo Technologies Inc. System and method for unlocking additional functions of a module

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320209A1 (en) 2000-01-06 2008-12-25 Super Talent Electronics, Inc. High Performance and Endurance Non-volatile Memory Based Storage Systems
US6601212B1 (en) 2000-03-29 2003-07-29 Hewlett-Packard Development Company, Lp. Method and apparatus for downloading firmware to a non-volatile memory
US7069431B2 (en) * 2001-07-31 2006-06-27 Lenovo ( Singapore) Pte Ltd. Recovery of a BIOS image
ES2317039T3 (es) * 2004-07-27 2009-04-16 Telecom Italia S.P.A. Transmision de contenidos multimedia a una pluralidad de usuarios moviles.
US20070132049A1 (en) * 2005-12-12 2007-06-14 Stipe Barry C Unipolar resistance random access memory (RRAM) device and vertically stacked architecture
US7886190B2 (en) 2006-09-29 2011-02-08 Intel Corporation System and method for enabling seamless boot recovery
EP2093901B1 (en) * 2006-12-08 2015-02-25 NEC Corporation Radio network performance monitoring
US8312247B2 (en) 2008-06-20 2012-11-13 Panasonic Corporation Plural-partitioned type nonvolatile storage device and system
WO2011080769A1 (en) 2009-12-29 2011-07-07 Ferdinando Bedeschi Mixed mode programming for phase change memory
US8954821B2 (en) 2009-12-29 2015-02-10 Microntechnology, Inc. Memory device having address and command selectable capabilities
US8688899B2 (en) * 2010-09-28 2014-04-01 Fusion-Io, Inc. Apparatus, system, and method for an interface between a memory controller and a non-volatile memory controller using a command protocol
US9317429B2 (en) * 2011-09-30 2016-04-19 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
WO2013077891A1 (en) * 2011-11-22 2013-05-30 Intel Corporation Collaborative processor and system performance and power management
KR101386013B1 (ko) * 2012-07-17 2014-04-16 주식회사 디에이아이오 하이브리드 스토리지 장치
WO2014051625A1 (en) * 2012-09-28 2014-04-03 Hewlett-Packard Development Company, L.P. Dynamically selecting between memory error detection and memory error correction
US9009421B2 (en) * 2012-11-13 2015-04-14 International Business Machines Corporation Dynamically improving memory affinity of logical partitions
US9110795B2 (en) * 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US11221967B2 (en) * 2013-03-28 2022-01-11 Hewlett Packard Enterprise Development Lp Split mode addressing a persistent memory
US9552176B2 (en) * 2013-04-12 2017-01-24 Microsoft Technology Licensing, Llc Block storage using a hybrid memory device
US9880754B2 (en) * 2014-07-09 2018-01-30 Dell Products, Lp System and method for enabling transportability of a non volatile dual inline memory module
US10126950B2 (en) 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1383563A (zh) * 2000-06-09 2002-12-04 皇家菲利浦电子有限公司 用于对在存储介质上可用的存储空间进行隐分区的方法
US7370166B1 (en) * 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
CN101467136A (zh) * 2006-06-09 2009-06-24 微软公司 高速非易失性存储器设备
US20080040540A1 (en) * 2006-08-11 2008-02-14 Intel Corporation On-disk caching for raid systems
CN101490662A (zh) * 2006-08-11 2009-07-22 英特尔公司 用于raid系统的磁盘缓存
CN102016808A (zh) * 2008-05-01 2011-04-13 惠普发展公司,有限责任合伙企业 将检查点数据存储于非易失性存储器中
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
CN102959525A (zh) * 2010-07-01 2013-03-06 高通股份有限公司 移动装置内的集成非易失性存储器与主易失性存储器的并行使用
CN103154913A (zh) * 2010-08-06 2013-06-12 英特尔公司 支持用于预启动和安全模式操作的安全可读存储区域
US20140237176A1 (en) * 2011-02-08 2014-08-21 Diablo Technologies Inc. System and method for unlocking additional functions of a module
CN103890688A (zh) * 2011-07-28 2014-06-25 奈特力斯公司 一种flash-dram混合存储器模块
CN102945355A (zh) * 2011-08-30 2013-02-27 微软公司 基于扇区映射的快速数据加密策略遵从
CN102369513A (zh) * 2011-08-31 2012-03-07 华为技术有限公司 提高计算机系统稳定性的方法及计算机系统
CN103946824A (zh) * 2011-11-22 2014-07-23 英特尔公司 用于跨平台代理的非易失性随机访问存储器的访问控制

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10126950B2 (en) 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory
US10339047B2 (en) 2014-12-22 2019-07-02 Intel Corporation Allocating and configuring persistent memory
CN109426447A (zh) * 2017-08-28 2019-03-05 慧荣科技股份有限公司 用以优化数据储存装置的数据储存方法及其数据储存装置
CN109426447B (zh) * 2017-08-28 2021-11-16 慧荣科技股份有限公司 用以优化数据储存装置的数据储存方法及其数据储存装置
CN111373385A (zh) * 2018-06-06 2020-07-03 西部数据技术公司 用于改进的进程切换的处理器和其方法
CN111373385B (zh) * 2018-06-06 2023-03-14 西部数据技术公司 用于改进的进程切换的处理器和其方法
CN113692620A (zh) * 2019-04-30 2021-11-23 思科技术公司 多列交错dimm布局和路由拓扑

Also Published As

Publication number Publication date
US20190303288A1 (en) 2019-10-03
TWI567551B (zh) 2017-01-21
US10126950B2 (en) 2018-11-13
US20160179375A1 (en) 2016-06-23
WO2016105790A1 (en) 2016-06-30
KR20170100488A (ko) 2017-09-04
TW201636847A (zh) 2016-10-16
US20190065364A1 (en) 2019-02-28
US10339047B2 (en) 2019-07-02
KR102519904B1 (ko) 2023-04-10
CN107077303B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN107077303A (zh) 分配和配置持久存储器
KR102268722B1 (ko) 데이터 액세스 장치 및 그것의 동작 방법
US20200241999A1 (en) Performance monitoring for short-lived functions
CN103946826B (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
KR20210147976A (ko) 확장 가능하고 일관성 있는 메모리 장치를 위한 시스템 및 방법
CN103999038B (zh) 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备
JP5947463B2 (ja) インテリジェントファーメモリ帯域幅スケーリング
CN104115129A (zh) 用于从处理器到存储器子系统智能刷新数据的系统和方法
CN108701003A (zh) 用于对远程节点的许多存储操作的原子写入的结构弹性支持
CN103946812A (zh) 用于实现多级别存储器分级体系的设备和方法
US20200348973A1 (en) Performance monitoring and resource management
CN103946811A (zh) 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
CN103999161A (zh) 用于相变存储器漂移管理的设备和方法
CN104126181A (zh) 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换
CN106462410A (zh) 加速基于非易失性存储器(nvm)技术的存储器的引导时间清零
US10095432B2 (en) Power management and monitoring for storage devices
CN104115230A (zh) 高效pcms刷新机制背景
CN110447075A (zh) 多内核管芯上存储器微控制器
US20220114115A1 (en) Interleaving of heterogeneous memory targets
CN107624178B (zh) 快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术
US12014052B2 (en) Cooperative storage architecture
US9720830B2 (en) Systems and methods facilitating reduced latency via stashing in system on chips
US10452546B2 (en) Cache utility modeling for automated cache configuration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TG01 Patent term adjustment
TG01 Patent term adjustment