CN107624178A - 快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术 - Google Patents
快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术 Download PDFInfo
- Publication number
- CN107624178A CN107624178A CN201680030155.7A CN201680030155A CN107624178A CN 107624178 A CN107624178 A CN 107624178A CN 201680030155 A CN201680030155 A CN 201680030155A CN 107624178 A CN107624178 A CN 107624178A
- Authority
- CN
- China
- Prior art keywords
- memory
- nonvolatile memory
- logic
- device described
- smc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
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)
Abstract
描述了涉及快速归零的机柜式架构(RSA)和/或共享存储器控制器(SMC)技术的方法和装置。在一个实施例中,存储设备存储对应于非易失性存储器的部分的元数据。耦合到非易失性存储器的逻辑响应于针对非易失性存储器的所述部分的初始化的请求而导致对所存储的元数据的更新。所述逻辑在非易失性存储器的重启或功率循环之前导致非易失性存储器的所述部分的初始化。还公开和要求保护其它实施例。
Description
相关申请
本申请在35 U.S.C. 365(b)之下要求对2015年6月26日提交的美国申请No. 14/752,826的优先权。所述申请No. 14/752,826特此通过引用在其整体上并入本文。
技术领域
本公开一般地涉及电子学领域。更特别地,一些实施例一般地涉及快速归零的机柜式架构(RSA)和/或共享存储器控制器(SMC)技术。
背景技术
一般地,用于在计算系统中存储数据的存储器可以是易失性的(以存储易失性信息)或非易失性的(以存储持久性信息)。存储在易失性存储器中的易失性数据结构一般用于临时或中间信息,所述临时或中间信息被要求以在程序的运行时期间支持程序的功能性。另一方面,存储在非易失性(或持久性存储器)中的持久性数据结构超出程序的运行时而是可用的并且可以被重用。而且,在用户或程序员决定使数据持久之前,典型地首先将新的数据生成为易失性数据。例如,程序员或用户可以导致可由处理器直接访问的易失性主存储器中的易失性结构的映射(即实例化)。另一方面,在比如附连到输入/输出(I/O或IO)总线的旋转盘那样的非易失性存储设备或比如固态驱动器那样的非易失性存储器上实例化持久性数据结构。
随着处理器中的计算能力的增强,一个关注点是处理器可以访问存储器的速度。例如,为了处理数据,处理器可能需要首先从存储器提取数据。在数据处理完成之后,结果可能需要存储在存储器中。因此,存储器访问速度可以具有对总体系统性能的直接影响。
另一重要考虑是功耗。例如,在依赖于电池功率的移动计算设备中,减少功耗以允许设备在移动的同时进行操作是非常重要的。功耗对于非移动计算设备同样重要,因为过量的功耗可能增加成本(例如由于附加的功率使用、增加的冷却要求等)、缩短组件寿命、限制设备可以使用在的位置等。
硬盘驱动器提供相对低成本的存储解决方案并且使用在许多计算设备中以提供非易失性存储。然而,盘驱动器在与固态驱动器相比时使用大量功率,因为硬盘驱动器需要使其盘以相对高的速度自旋并且相对于自旋盘移动盘头以读取/写入数据。该物理移动生成热量并且增加功耗。而且,当与硬盘驱动器相比时,固态驱动器在执行读取和写入操作时快得多。为此目的,许多计算区段正在朝向固态驱动器迁移。
附图说明
参考随附各图来提供详细描述。在各图中,参考数字的一个或多个最左数位标识该参考数字首次出现在其中的图。不同图中的相同参考数字的使用指示类似或相同的项。
图1和4-6图示了可以用于实现本文所讨论的各种实施例的计算系统的实施例的框图。
图2图示了根据实施例的固态驱动器的各种组件的框图。
图3A图示了根据实施例的机柜式架构(RSA)的框图。
图3B图示了根据实施例的用于共享存储器控制器(SMC)的高级架构的框图。
图3C图示了根据一些实施例的用于管理元数据的状态机的流程图。
图3D1、3D2和3D3图示了依照一些实施例的各种SMC实现的高级架构视图。
图3E和3F图示了依照一些实施例的用于对RSA和/或SMC拓扑的扩展的框图。
图3G图示了依照实施例的方法的流程图。
具体实施方式
在以下描述中,阐述众多具体细节以便提供各种实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践各种实施例。在其它实例中,并未详细描述公知的方法、过程、组件和电路以免使特定实施例模糊。另外,可以使用各种部件执行实施例的各种方面,所述部件诸如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)或硬件和软件的某种组合。出于本公开的目的,对“逻辑”的引用应当意味着硬件、软件、固件或其某种组合。
随着云计算在市场中的增长,计算机不再仅包括中央处理单元(CPU)、存储器和硬盘。在将来,整个机柜或整个服务器机群可以取决于工作载荷而包括诸如CPU或处理器(或处理器核)节点的阵列、存储器池和数个软件可配置的存储盘或单元以及软件限定的基础设施(SDI)之类的资源。因而,存在对于机柜式架构(RSA)的利用的需要。
作为RSA的部分,频繁地,云服务提供商跨服务器机群供应相同的服务器构建许多次而不管对于存储器覆盖区的实际工作载荷需求。这可能造成云服务器机群中的保持未被使用的大量服务器存储器,这可能不必要地增加对于服务提供商的成本。进而,共享存储器控制器(SMC)使得能够实现软件可配置的池式存储器的动态分配和解除分配。通过SMC,存储器可以作为服务器机群中的公共资源而是共享的且池式的。这可以减少未被使用的存储器覆盖区,并且提供云服务器机群的总体成本,并且具体地存储器成本,可以明显减少。
另外,作为SMC的部分,当一个节点利用其排他存储器完成时并且在可以向另一节点重分配存储器之前,必须将存储器内容清理成零(例如出于安全性和/或隐私性原因)。换言之,云提供商的策略一般不允许相邻的虚拟机租户访问不属于他们的数据。然而,存在关于通过当今的方法(例如,其利用用于归零内容的软件)使大容量的存储器归零所花费的时间的问题。例如,关于太字节(TB)的存储器,以4GB/s对NVM DIMM(非易失性存储器双列直插存储器模块)的写入将以大约250sec/TB或4分钟,这可以是企业计算机系统中的漫长时间。
为此目的,一些实施例涉及用于快速归零的机柜式架构(RSA)和/或共享存储器控制器(SMC)技术。在实施例中,跨池式存储器基础设施提供供共享存储器控制器使用的存储器内容的快速归零。在另一实施例中,提供存储器扩展和/或大存储器池的可缩放性,例如高达64TB每SMC,以及交叉连接的高达四个SMC,例如以在云服务器环境中提供高达256TB的存储器。
另外,尽管参考非易失性存储器(NVM)一般地讨论一些实施例,但是实施例不限于单个类型的NVM,并且可以使用任何类型的非易失性存储器或不同NVM类型的组合(例如以诸如固态驱动器(或SSD,例如包括NAND和/或NOR类型的存储器单元)之类的格式或可用于存储的其它格式,诸如存储器驱动器、闪速驱动器等)。存储介质(无论以SSD格式使用还是以其它方式)可以是任何类型的存储介质,包括例如以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)等。而且,可以使用诸如动态RAM(DRAM)之类的任何类型的随机存取存储器(RAM),其由功率储备(诸如电池或电容)后援以保留数据。因而,甚至能够在功率故障或功率中断期间保留数据的易失性存储器可以用于各种实施例中的存储。
本文所讨论的技术可以提供在各种计算系统(例如包括非移动计算设备,诸如台式机、工作站、服务器、机架系统等,和移动计算设备,诸如智能电话、平板电脑、UMPC(超移动个人计算机)、膝上型计算机、UltrabookTM计算设备、智能手表、智能眼镜、智能手镯等)中,包括参考图1-6所讨论的那些。更特别地,图1图示了根据实施例的计算系统100的框图。系统100可以包括一个或多个处理器102-1至102-N(在本文中一般称为“多个处理器102”或“处理器102”)。多个处理器102可以经由互连或总线104进行通信。每个处理器可以包括各种组件,为了清楚起见仅参考处理器102-1讨论其中的一些。相应地,其余的处理器102-2至102-N中的每个可以包括参考处理器102-1讨论的相同或类似的组件。
在实施例中,处理器102-1可以包括一个或多个处理器核106-1至106-N(在本文中称为“多个核106”或更一般地称为“核106”)、处理器高速缓存108(在各种实施例中其可以是共享高速缓存或私有高速缓存),和/或路由器110。处理器核106可以在单个集成电路(IC)芯片上实现。而且,芯片可以包括一个或多个共享和/或私有的高速缓存(诸如处理器高速缓存108)、总线或互连(诸如总线或互连112)、逻辑120、存储器控制器(诸如参考图4-6所讨论的那些)或其它组件。
在一个实施例中,路由器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)和/或存储器控制器或中枢与处理器高速缓存108通信。
如图1中所示,存储器114可以通过存储器控制器120耦合到系统100的其它组件。存储器114包括易失性存储器,并且可以可互换地称为主存储器。尽管将存储器控制器120示出为耦合在互连104与存储器114之间,但是存储器控制器120可以位于系统100中的其它地方。例如,在一些实施例中,可以在多个处理器102之一内提供存储器控制器120或其部分。
系统100还包括非易失性(NV)存储(或非易失性存储器(NVM))设备,诸如经由SSD控制器逻辑125耦合到互连104的SSD 130。因而,逻辑125可以控制通过系统100的各种组件对SSD 130的访问。另外,尽管在图1中将逻辑125示出为直接耦合到互连104,但是逻辑125可以可替换地经由存储总线/互连(诸如SATA(串行高级技术附连)总线、外围组件互连(PCI)(或快速PCI(PCIe)接口)等)与系统100的一个或多个其它组件通信(例如其中存储总线经由比如总线桥、芯片组(诸如参考图2和4-6所讨论的)等那样的某个其它逻辑耦合到互连104)。此外,在各种实施例中,逻辑125可以合并到存储器控制器逻辑(诸如参考图4-6所讨论的那些)中或提供在相同的集成电路(IC)设备上(例如在与SSD 130相同的IC设备上或者在与SSD 130相同的外壳中)。系统100还可以包括其它类型的非易失性存储部,诸如参考图4-6所讨论的那些,包括例如硬盘驱动器等。
另外,逻辑125和/或SSD 130可以耦合到一个或多个传感器(未示出)以接收指示由所述一个或多个传感器检测到的值或状态的信息(例如以一个或多个位或信号的形式)。可以与系统100(或本文讨论的其它计算系统,诸如例如参考包括图4-6的其它图所讨论的那些)的组件靠近地提供这些一个或多个传感器,以感测影响系统/平台的功率/热学行为的各种因素中的变化,所述因素诸如温度、操作频率、操作电压、功耗和/或核间通信活动等,所述组件包括多个核106、互连104或112、处理器102外部的组件、SSD 130、SSD总线、SATA总线、逻辑125等。
如图1中所图示的,系统100可以包括逻辑160,逻辑160可以位于系统100中的各种位置中(诸如所示出的那些位置,包括耦合到互连104、在处理器102内部等)。如本文所讨论的,逻辑160促进涉及一些实施例的一个或多个操作,诸如用于快速归零的RSA和/或SMC的供应。
图2图示了根据实施例的SSD的各种组件的框图。逻辑160可以位于如所讨论的图1的系统100中的各种位置中,以及SSD控制器逻辑125内部。在SSD控制器逻辑125可以促进SSD 130与其它系统组件之间经由接口250(例如SATA、SAS、PCIe等)的通信的同时,控制器逻辑282促进逻辑125与SSD 130内部的组件之间的通信(或SSD 130内部的组件之间的通信)。如图2中所示,控制器逻辑282包括一个或多个处理器核或处理器284和存储器控制器逻辑286,并且耦合到随机存取存储器(RAM)288、固件存储部290和一个或多个存储器模块或管芯292-1至292-n(其可以包括NAND闪存、NOR闪存或其它类型的非易失性存储器)。存储器模块292-1至292-n经由一个或多个存储器通道或总线耦合到存储器控制器逻辑286。参考图1-6讨论的操作中的一个或多个可以由图2的组件中的一个或多个来执行,例如多个处理器284和/或控制器282可以压缩/解压缩(或以其它方式导致压缩/解压缩)写入到存储器模块292-1至292-n或从其读取的数据。而且,可以将图1-6的操作中的一个或多个编程到固件290中。另外,在一些实施例中,可以使用混合驱动器而不是SSD 130(其中存在多个存储器模块/介质292-1至292-n,诸如硬盘驱动器、闪速存储器或本文所讨论的其它类型的非易失性存储器)。在使用混合驱动器的实施例中,逻辑160可以存在于与混合驱动器相同的外壳中。
图3A图示了根据实施例的RSA架构的框图。如图3A中所示,多个CPU(中央处理单元,在本文中还称为“多个处理器”),例如高达16个节点,可以经由一个或多个SMI(共享存储器接口)和/或PCIe(快速外围组件互连)链路耦合到共享存储器控制器(SMC)302,所述SMI和/或PCIe链路在图3A中被标注为RSA L1(1级)互连。这些链路可以是支持x2、x4、x8和x16的高速链路。每一个CPU可以具有其自身的存储器,如所示(例如如参考图1和4-6所讨论的)。在实施例中,SMC 302可以经由SMI、PCIe、DDR4(双倍数据速率4)和/或NVM DIMM(或NVDIMM)接口耦合到高达四个NVM存储器驱动器(MD),尽管实施例不限于四个NVM MD,并且可以利用更多或更少的MD。在一个实施例中,SMC 302可以以环形拓扑耦合到附加的SMC(例如高达四个)。这样的平台连接性使得能够实现跨大得多的容量(例如高达256TB)的存储器共享和池化。SMC硅的变型称为池式网络控制器(PNC)304,在该情况下,利用类似的平台拓扑,PNC 302能够经由诸如图3A中所示的PCIe耦合NVMe(或快速NVM,例如依照NVM主机控制器接口规范,修订本1.2,2014年11月3日)驱动器。如图3A中所示,PSME(池系统管理引擎)306可以管理用于SMC 302和/或PNC 304的PCIe链路。在一个实施例中,PSME是用于在机柜层级管理、分配和/或重分配资源的RSA级管理引擎/逻辑。其可以使用x86 AtomTM处理器核来实现,并且其运行RSA管理软件。
图3B图示了根据实施例的用于SMC的高级架构的框图。在实施例中,SMC 302包括执行参考本文中的快速归零所讨论的各种操作的逻辑160。图3B的SMC 302包括耦合到上游节点的数目为N的上游SMI/PCIe通路(例如64个)。其还包括耦合到池式且共享的存储器的数目为N的DDR4/NVDIMM存储器通道(例如4或某个其它数目,即不必是与上游通路的数目相同的数目)。其可以包括用于扩展的附加的数目为N的SMI/PCIe通路(例如16或32,或某个其它数目,即不必是与上游通路或存储器通道的前述数目相同的数目),以及杂项IO(输入/输出)接口,诸如SMBus(系统管理总线)和PCIe管理端口。而且,如所示,多个密钥或RV(修订版本)可以用于支持每存储器区的唯一密钥。
如本文所讨论的,SMC 302引入独立的多个存储器区的概念。每一个DIMM(双列直插存储器模块)或存储器驱动器(或SSD、NVM等)可以保持多个存储器区。SMC独立地管理这些区,因此这些区可以是私有的、在节点之间共享的或池式的。因而,一些实施例提供区的该概念和区的快速归零而不影响整个DIMM或存储器驱动器(或SSD、NVMe等)。在实施例中提供存储在SMC上(或以其它方式存储在对SMC可访问的存储器中)以用于共享且池式区的数个密钥/修订号。之前的方法可以包括擦除或更新应用于单个CPU或系统的密钥/修订号,例如仅在启动时间处工作。在实施例中,SMC处于唯一位置中以管理多个DIMM并且将它们配置/暴露为对CPU节点的共享或池式存储器区。
一个实施例允许没有功率循环/重启的情况下的快速归零,这在NVM元数据的现有方法和修订系统上进行扩展以使得SMC能够管理和与NVM DIMM通信以更新针对跨多个DIMM或存储器驱动器(或SSD、NVMe等)的多个区的元数据和修订号。
另外,实施例提供部分范围快速归零。为了使得能够在池和共享存储器区层级处实现快速归零,可以在没有实际功率循环或重启的情况下模拟NVM DIMM的功率循环或重启。由于一些实施例执行定向到元数据的写入操作,因此事务远远比向存储器介质写入实际的零更快。
而且,利用SMC提供独特的新平台存储器架构,以及跨NVM DIMM/控制器、SMC和/或CPU/处理器节点分布快速归零能力的能力。在一个实施例中,使用元数据和修订号跨多个区/DIMM执行后台快速归零。可以在存储器控制器或调度器(诸如本文参考图1-2和/或4-6所讨论的那些)内部提供SMC 302以供给硬件后台存储器“快速归零”能力。“快速归零”操作可以运用现有NVM快速归零元数据和修订号、当前版本(CV)和修订版本(RV)。然而,其将元数据和修订号扩展超出NVM DIMM并且扩展到SMC(共享存储器控制器)或MSP(存储器和存储处理器)中,这供给每共享区快速归零,其中归零一个区不影响其它区,并且快速归零不要求重启。
由于存储器控制器或调度器(或在一些实施例中,逻辑160)负责所有存储器事务,因此存储器控制器或调度器可以在一些实施例中经由以下操作中的一个或多个来实现快速归零:
1. SMC(或逻辑160)调度对NVM DIMM元数据的一个或多个写入操作以在存储器区的解除分配处使CV递增。从NVM DIMM的快速归零版本控制角度来看,这等同于NVM DIMM的重启;因此,修改NVM DIMM以在没有重启的情况下支持该命令。
2. (例如通过逻辑160)将存储器区标记为脏的/经修改的,直到所有后台写入操作完成。可以不分配所标记的区,直到其被清理。
3. SMC 302(或逻辑160)应来自节点/处理器/CPU的请求而分配经清理的存储器以形成新的池式且共享的区。如果修订号匹配当前版本(例如如由逻辑160所确定的),不需要修订更新。
4. 如果新的读取请求的修订号与(例如由逻辑160)存储的元数据中的修订号不相同,读取操作返回零(或某个其它指示符,例如通过逻辑160),并且后台快速归零引擎(或逻辑160)作为后台进程而更新元数据和所存储的数据。
在一些实例中,可以存在滞止条件。更特别地,在针对新的池式且共享的区的请求变得过于频繁的情况下,并且在通过向NVM DIMM写入元数据来使足够的存储器归零之前,SMC 302可能没有选择,只能滞止新的池式存储器区的分配。但是这可能是少见的,因为对NVM DIMM元数据的写入是相对快速的操作。例如,MSP可以通过元数据追踪针对每一个区的不同且独立的版本。NVDIMM/SMI将版本号作为关于每一个读取请求和写入请求的元数据的部分来传递。进而,NVM DIMM或MD(或存储器控制器或逻辑160)可以相应地处理这些元数据或导致这些元数据的处理。
图3C图示了根据一些实施例的用于管理元数据的状态机的流程图。例如,图3C示出可以如何在SMC/MSP芯片中管理元数据结构。与每一个存储器页相关联的元数据指示所述页被分配或是空闲的。分别通过下部状态机流示出诸如“新分区”或“删除分区”之类的SMC/MSP动作。当页变得“空闲”时,其可以是“洁净的”或“脏的”。如果其为“脏的”,后台引擎(例如逻辑160)可以使该页归零,并且更新元数据以指示其为“洁净的”。写入命令之后可以跟随有写入数据,所述写入数据将元数据状态从“洁净的”移动到“脏的”。页可以保持“脏的”,直到其分区被删除。
而且,实施例可以利用构建到x86节点/处理器中的加密引擎和能力,其中SMC 302(或逻辑160)可以通过以下来改进性能:通过借由不影响功能带宽的存储器控制器/调度器更新密钥/修订号或调度伺机后台循环来使存储器快速归零。
图3D1、3D2和3D3图示了依照一些实施例的各种SMC实现的高级架构视图。如所示,可以存在耦合到上游节点的数目为N的上游SMI/PCIe通路(例如64个)。架构可以包括耦合到池式且共享的存储器的数目为N的DDR4/NVDIMM存储器通道(例如四个或某个其它数目)。用于扩展的附加的数目为N的SMI/PCIe通路(例如16或32,或某个其它数目),以及诸如SMBus和PCIe管理端口之类的杂项IO,诸如参考图3B所讨论的。
在单个SMC拓扑中(图3D1),多个节点0-15经由SMI/PCIe链路耦合到SMC。SMI链路使用PCIe物理层(例如在PCIe物理层之上复用存储器协议)。高达64TB的SMC存储器直接可映射到任何所附连的CPU节点。
在两个SMC拓扑中(图3D2),高达128TB的存储器可以耦合到任何单独的节点。每一个SMC耦合到高达16个节点,因而在该拓扑中支持高达32个节点。在两个SMC之间,专用QPI(快速路径互连)或SMI链路提供高速且低延时连接性。每一个SMC 302检验即将到来的存储器读取请求和写入请求以确定其是针对本地SMC还是针对远程SMC。如果业务/请求是针对远程SMC,SMC的服务代理(例如逻辑16)将存储器请求路由至远程SMC。
在四个SMC拓扑中(图3D3),类似于两个SMC和一个SMC拓扑,每一个SMC耦合到高达16个CPU节点。在该拓扑中支持高达256TB的存储器。每一个SMC使用两个QPI/SMI链路来在环形拓扑中耦合到彼此。当在SMC处接收到存储器请求时,SMC确定请求是针对本地SMC还是远程SMC。远程业务/请求的路由可以遵循简单的“向右传递”(或在任一方向上向下一相邻SMC传递)算法,比如如果请求不是针对本地的,将其传递到右边/左边的SMC。如果请求不在下一SMC本地,下一SMC进而将业务传递至右边/左边的下一相邻SMC。在该拓扑中,最大跳是在请求变成本地之前的三个SMC。返回数据也可以遵循“向右传递”(或在任一方向上向下一相邻SMC传递)算法,并且如果其不是针对本地SMC的,返回数据传递至右边/左边的下一SMC。该路由算法使得能够实现针对对不在SMC本地的所有远程存储器的请求的对称延时。
环形拓扑可以在物理上应用于存储在不同抽屉或托盘中的CPU/处理器节点,例如利用光学之上的PCIe的添加,物理链路距离可以增加到数百米;因而,使得能够实现机柜式架构的视觉,其中可以将整个机柜或整个服务器机群视为一个巨大的计算机,并且存储器池跨计算机机群分布。如本文所讨论的,将RSA限定成使得机柜可以是单个传统物理机柜,或者在房间中展开或在不同物理位置中的多个机柜,所述多个机柜被连接以形成“机柜”。而且,“抽屉”或“托盘”一般被限定为在物理上接近于彼此的物理计算单元,诸如插入到机柜中的计算资源的1U(1单元)、2U(2单元)、4U(4单元)等托盘。抽屉或托盘内的通信可以被视为对比机柜级通信的短距离平台通信,所述机柜级通信可以例如牵涉与许多英里之外的另一服务器位置的光纤连接。
此外,依照一些实施例,可以将RSA和/或SMC拓扑扩展到任意大小(m),如图3E和3F中所示。当数目为m的托盘耦合在一起时,牵涉更多延时,因为取代于三个SMC,最大跳现在变成m-1,如果我们遵循如之前参考图3D2和3D3所示的相同简单环形拓扑的话。为了减少延时,可以在不同的SMC之间添加额外的物理链路,一路直至完全连接的交叉条。在完全连接的交叉条的情况下,可以将延时减小到一跳的最大值,但是以增加的物理连接(例如高达m-1)为代价。
而且,虽然可能已经存在提供硬件和物理存储器扩展的存储器扩展缓冲器,但是其扩展能力一般是低的,并且必然不如如本文所讨论的256TB那样高。这些存储器扩展解决方案可以典型地使得能够实现一个CPU节点,这是非常昂贵的存储器扩展方法。另外,在没有该大容量的共享且池化的情况下,存储器容量的大部分保持未被使用,从而造成另外的成本并且限制来自这样的系统的大容量构建。
另外,一些实施例(例如牵涉RSA和/或SMC)可以由工业界广泛地使用在数据中心和云计算机群中。而且,到以上讨论的尺度的扩展由于例如存储器技术的极其延时敏感的性质而一般不是可能的。这部分地因为许多工作载荷的性能在对存储器的访问的延时增加时明显受损。相比之下,一些实施例(利用存储器扩展的以上讨论的SMC方案)以合理的延时(例如具有三跳的最大值)提供附加的存储器容量(例如高达256TB);因此使得能够实现云/服务器机群计算环境中的许多工作载荷。
图3G图示了依照实施例的方法350的流程图。在实施例中,参考其它图讨论的各种组件可以用于执行参考图3G所讨论的操作中的一个或多个。在实施例中,方法350实现在诸如逻辑160之类的逻辑中。虽然已经在图4-7中示出逻辑160的各种位置,但是实施例不限于那些,并且可以在任何位置中提供逻辑160。
参考图1-3G,在操作352处,存储对应于非易失性存储器的部分的元数据。操作354确定是否已经接收到指向非易失性存储器的所述部分的初始化请求。如果接收到所述请求,操作356在非易失性存储器的重启或功率循环之前执行非易失性存储器的所述部分的初始化(例如在后台中或在运行时期间)。非易失性存储器的所述部分可以包括跨多个共享非易失性存储器设备或跨多个共享存储器区的存储器。而且,针对非易失性存储器的所述部分的初始化的请求可以导致非易失性存储器的所述部分的归零。在实施例中,可以在环形拓扑中耦合多个共享存储器控制器。
图4图示了依照实施例的计算系统400的框图。计算系统400可以包括经由互连网络(或总线)404通信的一个或多个中央处理单元(CPU)402或处理器。多个处理器402可以包括通用处理器、网络处理器(其处理通过计算机网络403传送的数据)、应用处理器(诸如使用在手机、智能电话等中的那些)或其它类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。可以利用各种类型的计算机网络403,包括有线(例如以太网、吉比特、光纤等)或无线网络(诸如蜂窝,包括3G(第三代手机技术或第3代无线格式(UWCC))、4G、低功率嵌入(LPE)等)。而且,多个处理器402可以具有单核或多核设计。具有多核设计的多个处理器402可以在相同集成电路(IC)管芯上集成不同类型的处理器核。而且,具有多核设计的多个处理器402可以实现为对称或非对称多处理器。
在实施例中,多个处理器402中的一个或多个可以与图1的多个处理器102相同或类似。例如,多个处理器402中的一个或多个可以包括处理器高速缓存108和/或多个核106中的一个或多个。而且,参考图1-3F讨论的操作可以由系统400的一个或多个组件执行。
芯片组406还可以与互连网络404通信。芯片组406可以包括图形和存储器控制中枢(GMCH)408。GMCH 408可以包括与存储器114通信的存储器控制器410(在实施例中,其可以与图1的存储器控制器120相同或类似)。存储器114可以存储数据,包括指令序列,所述指令序列由CPU 402或计算系统400中包括的任何其它设备执行。而且,系统400包括逻辑125、SSD 130和/或逻辑160(在各种实施例中,其可以如所图示的经由总线422、经由诸如404之类的其它互连等耦合到系统400,其中将逻辑125合并到芯片组406中)。在一个实施例中,存储器114可以包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其它类型的存储设备。还可以利用非易失性存储器,诸如硬盘驱动器、闪存等,包括本文所讨论的任何NVM。附加设备可以经由互连网络404进行通信,所述附加设备诸如多个CPU和/或多个系统存储器。
GMCH 408还可以包括与图形加速器416通信的图形接口414。在一个实施例中,图形接口414可以经由加速图形端口(AGP)或外围组件互连(PCI)(或快速PCI(PCIe)接口)与图形加速器416通信。在实施例中,显示器417(诸如平板显示器、触摸屏等)可以通过例如信号转换器与图形接口414通信,所述信号转换器将存储在诸如视频存储器或系统存储器之类的存储设备中的图像的数字表示翻译成由显示器解释和显示的显示信号。由显示设备产生的显示信号可以在由显示器417解释并且后续在显示器417上显示之前经过各种控制设备。
中枢接口418可以允许GMCH 408和输入/输出控制中枢(ICH)420进行通信。ICH420可以提供到与计算系统400通信的一个或多个I/O设备的接口。ICH 420可以通过外围桥(或控制器)424与总线422通信,所述外围桥(或控制器)424诸如外围组件互连(PCI)桥、通用串行总线(USB)控制器或其它类型的外围桥或控制器。桥424可以提供CPU 402与外围设备之间的数据路径。可以利用其它类型的拓扑。而且,多个总线可以例如通过多个桥或控制器与ICH 420通信。而且,在各种实施例中,与ICH 420通信的其它外设可以包括集成驱动电子器件(IDE)或一个或多个小型计算机系统接口(SCSI)硬盘驱动器、一个或多个USB端口、键盘、鼠标、一个或多个并行端口、一个或多个串行端口、一个或多个软盘驱动器、数字输出支持(例如数字视频接口(DVI))或其它设备。
总线422可以与音频设备426、一个或多个盘驱动器428和网络接口设备430(其例如经由有线或无线接口与计算机网络403通信)通信。如所示,网络接口设备430可以耦合到天线431以(例如经由电气和电子工程师协会(IEEE)802.11接口(包括IEEE 802.11a/b/g/n/ac等)、蜂窝接口、3G、4G、LPE等)与网络403无线通信。其它设备可以经由总线422进行通信。而且,在一些实施例中,各种组件(诸如网络接口设备430)可以与GMCH 408通信。此外,处理器402和GMCH 408可以组合以形成单个芯片。另外,在其它实施例中,图形加速器416可以被包括在GMCH 408内。
另外,计算系统400可以包括易失性和/或非易失性存储器(或存储部)。例如,非易失性存储器可以包括以下中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、盘驱动器(例如428)、软盘、致密盘ROM(CD-ROM)、数字多功能盘(DVD)、闪速存储器、磁光盘或能够存储电子数据(例如,包括指令)的其它类型的非易失性机器可读介质。
图5图示了根据实施例的以点对点(PtP)配置来布置的计算系统500。特别地,图5示出其中处理器、存储器和输入/输出设备通过数个点对点接口互连的系统。参考图1-4讨论的操作可以由系统500的一个或多个组件执行。
如图5中所图示的,系统500可以包括若干处理器,为了清楚起见仅示出其中的两个——处理器502和504。处理器502和504可以每个包括本地存储器控制器中枢(MCH)506和508以使得能够实现与存储器510和512的通信。存储器510和/或512可以存储各种数据,诸如参考图1和/或4的存储器114讨论的那些。而且,在一些实施例中,MCH 506和508可以包括存储器控制器120。另外,系统500包括逻辑125、SSD 130和/或逻辑160(在各种实施例中,其可以诸如所图示的经由总线540/544、经由到一个或多个处理器502/504或芯片组520的其它点对点连接等耦合到系统500,其中将逻辑125合并到芯片组520中)。
在实施例中,处理器502和504可以是参考图4讨论的处理器402中的一个。处理器502和504可以分别使用PtP接口电路516和518经由点对点(PtP)接口514来交换数据。而且,处理器502和504可以每个使用点对点接口电路526、528、530和532经由单独的PtP接口522和524与芯片组520交换数据。芯片组520可以进一步例如使用PtP接口电路537经由高性能图形接口536与高性能图形电路534交换数据。如参考图4所讨论的,在一些实施例中,图形接口536可以耦合到显示设备(例如显示器417)。
在一个实施例中,图1的处理器高速缓存108和/或多个核106中的一个或多个可以位于处理器502和504内(未示出)。然而,其它实施例可以存在于图5的系统500内的其它电路、逻辑单元或设备中。另外,可以遍及图5中图示的若干电路、逻辑单元或设备而分布其它实施例。
芯片组520可以使用PtP接口电路541与总线540通信。总线540可以具有与其通信的一个或多个设备,诸如总线桥542和I/O设备543。经由总线544,总线桥542可以与其它设备通信,所述其它设备诸如键盘/鼠标545、通信设备546(诸如调制解调器、网络接口设备或可以与计算机网络403通信的其它通信设备,如例如参考网络接口设备430所讨论的,包括经由天线431)、音频I/O设备和/或数据存储设备548。数据存储设备548可以存储可以由处理器502和/或504执行的代码549。
在一些实施例中,本文所讨论的组件中的一个或多个可以体现为片上系统(SOC)设备。图6图示了依照实施例的SOC封装的框图。如图6中图示的,SOC 602包括一个或多个中央处理单元(CPU)核620、一个或多个图形处理器单元(GPU)核630、输入/输出(I/O)接口640和存储器控制器642。SOC封装602的各种组件可以耦合到互连或总线,诸如在本文中参考其它图所讨论的那样。而且,SOC封装602可以包括更多或更少的组件,诸如在本文中参考其它图所讨论的那些。另外,SOC封装602的每个组件可以包括一个或多个其它组件,例如如参考本文中的其它图所讨论的那样。在一个实施例中,在一个或多个集成电路(IC)管芯上提供SOC封装602(及其组件),例如所述一个或多个集成电路(IC)管芯被封装到单个半导体器件中。
如图6中所图示的,SOC封装602经由存储器控制器642耦合到存储器660(其可以与在本文中参考其它图讨论的存储器类似或相同)。在实施例中,可以在SOC封装602上集成存储器660(或其部分)。
I/O接口640可以例如经由互连和/或总线耦合到一个或多个I/O设备670,诸如在本文中参考其它图所讨论的那样。一个或多个I/O设备670可以包括以下中的一个或多个:键盘、鼠标、触摸垫、显示器、图像/视频捕获设备(诸如相机或摄像机/录像机)、触摸屏、扬声器等。另外,在实施例中,SOC封装602可以包括/集成逻辑125/160。可替换地,可以在SOC封装602外部提供逻辑125/160(即作为分立的逻辑)。
以下示例关于另外的实施例。示例1包括一种装置,包括:存储对应于非易失性存储器的部分的元数据的存储设备;以及耦合到非易失性存储器的逻辑,用于响应于针对非易失性存储器的所述部分的初始化的请求而导致对所存储的元数据的更新,其中所述逻辑在非易失性存储器的重启或功率循环之前导致非易失性存储器的所述部分的初始化。示例2包括示例1的装置,其中非易失性存储器的所述部分包括跨多个共享非易失性存储器设备的存储器。示例3包括示例1的装置,其中非易失性存储器的所述部分包括跨多个共享存储器区的存储器。示例4包括示例1的装置,其中针对非易失性存储器的所述部分的初始化的请求导致非易失性存储器的所述部分的归零。示例5包括示例1的装置,其中所述逻辑在后台中或在运行时期间操作以导致对所存储的修订版本号的更新。示例6包括示例1的装置,其中元数据包括修订版本号和当前版本号。示例7包括示例6的装置,其中所述逻辑通过发布一个或多个写入操作以导致对当前版本号的更新来导致更新。示例8包括示例7的装置,其中所述一个或多个写入操作导致非易失性存储器的所述部分被标记为经修改的或脏的。示例9包括示例8的装置,其中所述逻辑响应于通过一个或多个处理器的共享存储器分配请求而导致非易失性存储器的所述部分被标记为洁净的。示例10包括示例1的装置,其中共享存储器控制器包括所述逻辑。示例11包括示例10的装置,其中共享存储器控制器将一个或多个处理器耦合到非易失性存储器,每一个处理器具有一个或多个处理器核。示例12包括示例10的装置,其中共享存储器控制器将一个或多个处理器耦合到多个非易失性存储器设备,每一个处理器具有一个或多个处理器核。示例13包括示例1的装置,其中非易失性存储器包括所述存储设备。示例14包括示例1的装置,其中共享存储器控制器具有对所述存储设备的访问权。示例15包括示例1的装置,其中共享存储器控制器包括所述存储设备。示例16包括示例1的装置,还包括耦合在环形拓扑中的多个共享存储器控制器,所述多个共享存储器控制器中的每一个包括所述逻辑。示例17包括示例1的装置,其中非易失性存储器包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)和由功率储备后援以在功率故障或功率中断期间保留数据的易失性存储器。示例18包括示例1的装置,还包括与主机传送数据的网络接口。
示例19包括一种方法,包括:在存储设备中存储对应于非易失性存储器的部分的元数据;以及响应于针对非易失性存储器的所述部分的初始化的请求而导致对所存储的元数据的更新,其中在非易失性存储器的重启或功率循环之前执行非易失性存储器的所述部分的初始化。示例20包括示例19的方法,其中非易失性存储器的所述部分包括跨多个共享非易失性存储器设备或跨多个共享存储器区的存储器。示例21包括示例19的方法,还包括针对非易失性存储器的所述部分的初始化的请求导致非易失性存储器的所述部分的归零。示例22包括示例19的方法,还包括在后台中或在运行时期间执行导致对所存储的修订版本号的更新。示例23包括示例19的方法,还包括在环形拓扑中耦合多个共享存储器控制器。
示例24包括一种包括一个或多个指令的计算机可读介质,所述一个或多个指令当在至少一个处理器上执行时,将所述至少一个处理器配置成执行一个或多个操作以:在存储设备中存储对应于非易失性存储器的部分的元数据;以及响应于针对非易失性存储器的所述部分的初始化的请求而导致对所存储的元数据的更新,其中在非易失性存储器的重启或功率循环之前执行非易失性存储器的所述部分的初始化。示例25包括示例24的计算机可读介质,其中非易失性存储器的所述部分包括跨多个共享非易失性存储器设备或跨多个共享存储器区的存储器。示例26包括示例24的计算机可读介质,还包括一个或多个指令,所述一个或多个指令当在所述至少一个处理器上执行时,将所述至少一个处理器配置成执行一个或多个操作以响应于针对非易失性存储器的所述部分的初始化的请求而导致非易失性存储器的所述部分的归零。
示例27包括一种系统,包括:存储对应于非易失性存储器的部分的元数据的存储设备;以及具有耦合到非易失性存储器的逻辑的处理器,所述逻辑用于响应于针对非易失性存储器的所述部分的初始化的请求而导致对所存储的元数据的更新,其中所述逻辑在非易失性存储器的重启或功率循环之前导致非易失性存储器的所述部分的初始化。示例28包括示例27的系统,其中非易失性存储器的所述部分包括跨多个共享非易失性存储器设备的存储器。示例29包括示例27的系统,其中非易失性存储器的所述部分包括跨多个共享存储器区的存储器。示例30包括示例27的系统,其中针对非易失性存储器的所述部分的初始化的请求导致非易失性存储器的所述部分的归零。示例31包括示例27的系统,其中所述逻辑在后台中或在运行时期间操作以导致对所存储的修订版本号的更新。示例32包括示例27的系统,其中元数据包括修订版本号和当前版本号。示例33包括示例27的系统,其中共享存储器控制器包括所述逻辑。示例34包括示例27的系统,其中非易失性存储器包括所述存储设备。示例35包括示例27的系统,其中共享存储器控制器具有对所述存储设备的访问权。示例36包括示例27的系统,其中共享存储器控制器包括所述存储设备。示例37包括示例27的系统,还包括耦合在环形拓扑中的多个共享存储器控制器,所述多个共享存储器控制器中的每一个包括所述逻辑。示例38包括示例27的系统,其中非易失性存储器包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)和由功率储备后援以在功率故障或功率中断期间保留数据的易失性存储器。示例39包括示例27的系统,还包括与主机传送数据的网络接口。
示例40包括一种装置,包括执行如在任何前述示例中阐述的方法的部件。示例41包括机器可读存储部,包括机器可读指令,所述机器可读指令在被执行时实现如在任何前述示例中阐述的方法或实现如在任何前述示例中阐述的装置。
在各种实施例中,在本文中例如参考图1-6讨论的操作可以实现为硬件(例如电路)、软件、固件、微代码或其组合,其可以被提供为例如包括有形(例如非暂时性)机器可读或计算机可读介质的计算机程序产品,所述介质具有存储在其上的用于对计算机编程以执行本文中讨论的过程的指令(或软件过程)。而且,作为示例,术语“逻辑”可以包括软件、硬件或软件和硬件的组合。机器可读介质可以包括诸如关于图1-6所讨论的那些之类的存储设备。
此外,这样的有形计算机可读介质可以作为计算机程序产品被下载,其中程序可以通过数据信号的方式(诸如在载波或其它传播介质中)经由通信链路(例如总线、调制解调器或网络连接)从远程计算机(例如服务器)转移到请求计算机(例如客户端)。
在本说明书中对“一个实施例”或“一实施例”的引用意味着结合实施例描述的特定特征、结构或特性可以被包括在至少一个实现中。短语“在一个实施例中”在本说明书中的各种地方中的出现可以或可以不都指代相同的实施例。
而且,在说明书和权利要求书中,可以使用术语“耦合”和“连接”连同其派生词。在一些实施例中,“连接”可以用于指示两个或更多元件与彼此直接物理或电气接触。“耦合”可以意味着两个或更多元件直接物理或电气接触。然而,“耦合”还可以意味着两个或更多元件可以不与彼此直接接触,但是仍可以与彼此协作或交互。
因此,尽管已经以特定于结构特征、数字值和/或方法动作的语言描述了实施例,但是要理解,所要求保护的主题可以不限于所描述的特定特征、数字值或动作。相反,特定特征、数字值和动作被作为实现所要求保护的主题的样本形式而公开。
Claims (25)
1.一种装置,包括:
存储对应于非易失性存储器的部分的元数据的存储设备;以及
耦合到非易失性存储器的逻辑,用于响应于针对非易失性存储器的所述部分的初始化的请求而导致对所存储的元数据的更新,
其中所述逻辑在非易失性存储器的重启或功率循环之前导致非易失性存储器的所述部分的初始化。
2.权利要求1所述的装置,其中非易失性存储器的所述部分包括跨多个共享非易失性存储器设备的存储器。
3.权利要求1所述的装置,其中非易失性存储器的所述部分包括跨多个共享存储器区的存储器。
4.权利要求1所述的装置,其中针对非易失性存储器的所述部分的初始化的请求导致非易失性存储器的所述部分的归零。
5.权利要求1所述的装置,其中所述逻辑在后台中或在运行时期间操作以导致对所存储的修订版本号的更新。
6.权利要求1所述的装置,其中元数据包括修订版本号和当前版本号。
7.权利要求6所述的装置,其中所述逻辑通过发布一个或多个写入操作以导致对当前版本号的更新来导致更新。
8.权利要求7所述的装置,其中所述一个或多个写入操作导致非易失性存储器的所述部分被标记为经修改的或脏的。
9.权利要求8所述的装置,其中所述逻辑响应于通过一个或多个处理器的共享存储器分配请求而导致非易失性存储器的所述部分被标记为洁净的。
10.权利要求1所述的装置,其中共享存储器控制器包括所述逻辑。
11.权利要求10所述的装置,其中共享存储器控制器将一个或多个处理器耦合到非易失性存储器,每一个处理器具有一个或多个处理器核。
12.权利要求10所述的装置,其中共享存储器控制器将一个或多个处理器耦合到多个非易失性存储器设备,每一个处理器具有一个或多个处理器核。
13.权利要求1所述的装置,其中非易失性存储器包括所述存储设备。
14.权利要求1所述的装置,其中共享存储器控制器具有对所述存储设备的访问权。
15.权利要求1所述的装置,其中共享存储器控制器包括所述存储设备。
16.权利要求1所述的装置,还包括耦合在环形拓扑中的多个共享存储器控制器,所述多个共享存储器控制器中的每一个包括所述逻辑。
17.权利要求1所述的装置,其中非易失性存储器包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)和由功率储备后援以在功率故障或功率中断期间保留数据的易失性存储器。
18.权利要求1所述的装置,还包括与主机传送数据的网络接口。
19.一种方法,包括:
在存储设备中存储对应于非易失性存储器的部分的元数据;以及
响应于针对非易失性存储器的所述部分的初始化的请求而导致对所存储的元数据的更新,
其中在非易失性存储器的重启或功率循环之前执行非易失性存储器的所述部分的初始化。
20.权利要求19所述的方法,其中非易失性存储器的所述部分包括跨多个共享非易失性存储器设备或跨多个共享存储器区的存储器。
21.权利要求19所述的方法,还包括针对非易失性存储器的所述部分的初始化的请求导致非易失性存储器的所述部分的归零。
22.权利要求19所述的方法,还包括在后台中或在运行时期间执行导致对所存储的修订版本号的更新。
23.权利要求19所述的方法,还包括在环形拓扑中耦合多个共享存储器控制器。
24.一种计算机可读介质,包括一个或多个指令,所述一个或多个指令当在处理器上执行时将所述处理器配置成执行权利要求19至23中的任何一项的一个或多个操作。
25.一种装置,包括执行如在权利要求19至23中的任何一项中阐述的方法的部件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/752,826 US20160378151A1 (en) | 2015-06-26 | 2015-06-26 | Rack scale architecture (rsa) and shared memory controller (smc) techniques of fast zeroing |
US14/752826 | 2015-06-26 | ||
PCT/US2016/035083 WO2016209565A1 (en) | 2015-06-26 | 2016-05-31 | Rack scale architecture (rsa) and shared memory controller (smc) techniques of fast zeroing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107624178A true CN107624178A (zh) | 2018-01-23 |
CN107624178B CN107624178B (zh) | 2021-05-11 |
Family
ID=57586128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680030155.7A Active CN107624178B (zh) | 2015-06-26 | 2016-05-31 | 快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160378151A1 (zh) |
CN (1) | CN107624178B (zh) |
WO (1) | WO2016209565A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327007A (zh) * | 2021-12-31 | 2022-04-12 | 深圳忆联信息系统有限公司 | Nvm子系统复位的实现方法、装置、计算机设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9818457B1 (en) | 2016-09-30 | 2017-11-14 | Intel Corporation | Extended platform with additional memory module slots per CPU socket |
US10216657B2 (en) | 2016-09-30 | 2019-02-26 | Intel Corporation | Extended platform with additional memory module slots per CPU socket and configured for increased performance |
US10911323B2 (en) * | 2017-01-24 | 2021-02-02 | Texas Instruments Incorporated | System-on-chip (SoC) assembly, configurable IP generation and IP integration utilizing distributed computer systems |
CN108959133B (zh) * | 2017-05-22 | 2021-12-10 | 扬智科技股份有限公司 | 可共用存储器的电路结构与数字视频转换装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020065984A1 (en) * | 1997-11-04 | 2002-05-30 | Thompson Mark J. | Method and apparatus for zeroing a transfer buffer memory as a background task |
KR20020065182A (ko) * | 2001-02-06 | 2002-08-13 | 삼성전자 주식회사 | 이동통신 시스템의 비.에스.에스에서 비.에스.피의공용화가 가능한 에프.알.아이.에이 및 비.에스.피 공용화방법 |
CN1647443A (zh) * | 2002-04-18 | 2005-07-27 | 国际商业机器公司 | 初始化、维护、更新和恢复利用数据访问控制功能的集成系统中的安全操作 |
CN1975671A (zh) * | 2005-11-29 | 2007-06-06 | 国际商业机器公司 | 用于配置相连设备的方法和系统 |
CN101438242A (zh) * | 2006-03-30 | 2009-05-20 | 晶像股份有限公司 | 共享非易失性存储器体系结构 |
US7793051B1 (en) * | 2007-03-05 | 2010-09-07 | Panta Systems, Inc. | Global shared memory subsystem |
CN102279807A (zh) * | 2010-06-09 | 2011-12-14 | 李尔公司 | 更新共享存储器的方法和系统 |
CN103999067A (zh) * | 2011-12-21 | 2014-08-20 | 英特尔公司 | 以多个非易失性存储器为特征的高性能存储结构和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960195A (en) * | 1996-06-03 | 1999-09-28 | Samsung Electronics Co., Ltd. | Intelligent volatile memory initialization |
US20060106873A1 (en) * | 2004-11-18 | 2006-05-18 | International Business Machines (Ibm) Corporation | Selective clearing of persistent metadata in a storage subsystem |
US7392456B2 (en) * | 2004-11-23 | 2008-06-24 | Mosys, Inc. | Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory |
US20090049226A1 (en) * | 2007-08-13 | 2009-02-19 | Ibm Corporation | Stale track initialization in a storage controller |
KR20150111692A (ko) * | 2014-03-26 | 2015-10-06 | 삼성전자주식회사 | 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템 |
KR102218722B1 (ko) * | 2014-06-09 | 2021-02-24 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
-
2015
- 2015-06-26 US US14/752,826 patent/US20160378151A1/en not_active Abandoned
-
2016
- 2016-05-31 CN CN201680030155.7A patent/CN107624178B/zh active Active
- 2016-05-31 WO PCT/US2016/035083 patent/WO2016209565A1/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020065984A1 (en) * | 1997-11-04 | 2002-05-30 | Thompson Mark J. | Method and apparatus for zeroing a transfer buffer memory as a background task |
KR20020065182A (ko) * | 2001-02-06 | 2002-08-13 | 삼성전자 주식회사 | 이동통신 시스템의 비.에스.에스에서 비.에스.피의공용화가 가능한 에프.알.아이.에이 및 비.에스.피 공용화방법 |
CN1647443A (zh) * | 2002-04-18 | 2005-07-27 | 国际商业机器公司 | 初始化、维护、更新和恢复利用数据访问控制功能的集成系统中的安全操作 |
CN1975671A (zh) * | 2005-11-29 | 2007-06-06 | 国际商业机器公司 | 用于配置相连设备的方法和系统 |
CN101438242A (zh) * | 2006-03-30 | 2009-05-20 | 晶像股份有限公司 | 共享非易失性存储器体系结构 |
CN101438242B (zh) * | 2006-03-30 | 2013-09-18 | 晶像股份有限公司 | 共享非易失性存储器体系结构 |
US7793051B1 (en) * | 2007-03-05 | 2010-09-07 | Panta Systems, Inc. | Global shared memory subsystem |
CN102279807A (zh) * | 2010-06-09 | 2011-12-14 | 李尔公司 | 更新共享存储器的方法和系统 |
CN103999067A (zh) * | 2011-12-21 | 2014-08-20 | 英特尔公司 | 以多个非易失性存储器为特征的高性能存储结构和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327007A (zh) * | 2021-12-31 | 2022-04-12 | 深圳忆联信息系统有限公司 | Nvm子系统复位的实现方法、装置、计算机设备及存储介质 |
CN114327007B (zh) * | 2021-12-31 | 2023-10-10 | 深圳忆联信息系统有限公司 | Nvm子系统复位的实现方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107624178B (zh) | 2021-05-11 |
WO2016209565A1 (en) | 2016-12-29 |
US20160378151A1 (en) | 2016-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210311637A1 (en) | Unified addressing and hierarchical heterogeneous storage and memory | |
CN108351813B (zh) | 用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 | |
TWI567551B (zh) | 分配與配置持續記憶體之技術 | |
CN107624178A (zh) | 快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术 | |
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN104106057B (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 | |
US9727267B1 (en) | Power management and monitoring for storage devices | |
CN108604456A (zh) | 在存储器插槽中支持多个存储器类型 | |
CN103744644B (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN110008149A (zh) | 融合式存储器件及其操作方法 | |
US10637733B2 (en) | Dynamic grouping and repurposing of general purpose links in disaggregated datacenters | |
CN106066890B (zh) | 一种分布式高性能数据库一体机系统 | |
CN103946812A (zh) | 用于实现多级别存储器分级体系的设备和方法 | |
CN107368433A (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
CN103946826A (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
CN103999161A (zh) | 用于相变存储器漂移管理的设备和方法 | |
WO2013164869A1 (en) | Storage system and control method therefor | |
CN107077441A (zh) | 使用远程直接存储器访问(rdma)和主动消息的异构输入/输出(i/o) | |
CN104115230B (zh) | 基于高效pcms刷新机制的计算装置、方法和系统 | |
CN104781794A (zh) | 用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变 | |
CN107408018A (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
US10095432B2 (en) | Power management and monitoring for storage devices | |
US20220114115A1 (en) | Interleaving of heterogeneous memory targets | |
Yang et al. | Performance evaluation on cxl-enabled hybrid memory pool | |
US10802988B2 (en) | Dynamic memory-based communication in disaggregated datacenters |
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 |