CN107636600B - 高性能持久存储器 - Google Patents
高性能持久存储器 Download PDFInfo
- Publication number
- CN107636600B CN107636600B CN201680030358.6A CN201680030358A CN107636600B CN 107636600 B CN107636600 B CN 107636600B CN 201680030358 A CN201680030358 A CN 201680030358A CN 107636600 B CN107636600 B CN 107636600B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- memory modules
- storage device
- memory module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2069—Management of state, configuration or failover
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- 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/0647—Migration mechanisms
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
实施例通常涉及具有脱机设备储存器的高容量能量后备存储器。存储器设备包括电路板;安装在电路板上的多个存储器芯片;控制器,当检测到电力丢失状况时控制器提供以用于备份存储器芯片的内容;到备用能量源的连接;以及到与存储器设备分离的备份数据储存器的连接。
Description
技术领域
本文所描述的实施例通常涉及电子设备的领域,并且更具体地涉及具有易失性存储器性能的持久存储器解决方案。
背景技术
在不同类型的操作中可能需要计算处理,并且可以取决于特定的操作而选择不同类型的计算机存储器。在某些操作中,除了诸如DRAM(动态随机存取存储器)之类的易失性存储器之外或者作为其替代物,在针对操作存储器的至少一部分而利用非易失性存储器方面还存在优点。
计算系统通常包括易失性和非易失性存储器二者。由于易失性存储器在没有电力的情况下不保留内容,所以当从易失性存储设备移除电力时,易失性存储器的内容不再可用。通常在检测到电力丢失时,就将易失性存储器的内容移动到非易失性存储器。易失性和非易失性存储器类型二者都被提供,因为访问易失性存储器比访问非易失性存储器更快。
诸如双列直插存储器模块(DIMM)的存储器模块包括多个存储器设备。存储器设备可以包括易失性和非易失性存储器设备。
附图说明
这里所描述的实施例在附图中的各图通过示例而非限制的方式图示出,其中相同的附图标号指代相似的元件。
图1是具有脱机(off)模块储存器的能量后备混合存储器模块的实施例的图示;
图2是NVDIMM存储设备的图示;
图3是具有脱机模块加强储存器的能量后备混合存储器模块的实施例的图示;
图4是包括具有脱机模块加强储存器的能量后备混合存储器模块的系统的实施例的图示;
图5是利用NVDIMM设备的系统的图示;
图6是包括具有脱机设备加强储存器的能量后备混合存储器模块的系统的实施例的图示;
图7是根据实施例利用来图示用于恢复操作的过程的流程图;
图8是根据实施例的用于图示针对电力丢失情况下的存储器操作的过程的流程图;和
图9是包括具有脱机模块储存器的能量后备混合存储器模块的电子装置或系统的实施例的图示。
具体实施方式
本文所描述的实施例通常涉及高性能持久存储器。
为了本说明的目的:
“主存储器”或“主要存储器”是处理器或计算机主要访问程序和数据的计算机存储器。主存储器通常是易失性存储器,诸如动态随机存取存储器(DRAM)。
“非易失性存储器”意指在不连接到电源的情况下保留存储值的存储器。非易失性存储器可以包括但不限于包括在非易失性存储器芯片中的NAND存储器、NOR存储器或其它合适的非易失性存储器,诸如相变存储器(PCM)、字节可寻址的三维交叉点存储器、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、并入了忆阻器技术的磁阻随机存取存储器(MRAM)存储器、自旋传递转矩(STT)-MRAM、字节寻址随机存取非易失性存储器、和其他技术。如本文所使用的,NAND存储器可以被称为“NAND”。
“DIMM”或“双列直插存储器模块”意指包括电路板和多个计算机存储器集成电路(IC,也被称为存储器芯片)的模块,其中电路板在电路板的每一侧上包括单独的电触点以使得能够在每侧上安装电气元件。包括至少一些DRAM组件的DIMM可以被称为DRAM DIMM。
如本文所使用的,NVDIMM是DRAM DIMM的类别或类型。NVDIMM单元通常包括与诸如NAND存储器的非易失性存储器一起对接到存储器控制器的DRAM设备。在电源故障状况期间,DRAM的内容由存储器控制器保存到非易失性存储器。
然而,由于NVDIMM既包含DRAM介质又包含非易失性存储器介质的事实,所以传统设备的容量受限,从而降低了DIMM内针对DRAM介质可用的物理空间量。由于这种限制,NVDIMM设备的存储器容量显著小于仅包含DRAM设备的DIMM的容量。
在一些实施例中,混合存储器模块(其在本文中可以被称为“HMM”)是用于通过使用脱机模块储存器来提供用于保留数据值的持久存储器的存储器模块。在一些实施例中,混合存储器模块通过提供将易失性存储器的内容存储在单独的储存介质中的持久存储器来解决NVDIMM设备的限制。在这样做时,这也使得储存介质能够在多个混合存储器模块之间进行共享,而不是要求每个存储器模块在存储器模块内包括单独的储存介质。
与传统存储器设备相比,具有脱机模块储存器的能量后备混合存储器模块的实施例提供了新颖的机制来利用增加了数据持久性的DIMM设备,从而允许保持DRAM存储器性能同时还提供数据持久性。
图1是具有脱机模块储存器的能量后备混合存储器模块的实施例的图示。在一些实施例中,能量后备混合存储器模块100包括用于数据储存的多个存储器芯片(诸如DRAM存储器集成电路)110以及被示为控制120的控制元件,以提供数据从混合存储器模块100到脱机模块数据储存器150(在本文中其也可以被称为备份数据储存器)的储存。混合存储器模块100可以包括但不限于DIMM结构,并且在本文中可以被称为混合存储器模块或混合DIMM。脱机模块数据储存器150可以包括但不限于固态驱动器(SSD)。
在一些实施例中,混合存储器模块100和数据储存器150与一个或多个能量源(其在本文中也可以被称为备用能量源)耦合以允许在到包含此类元件的装置和系统的电力丢失之后进行操作。在一些实施例中,一个或多个能量源140可以包括但不限于一个或多个超级电容器,其在操作期间进行充电,并且利用该电荷来在将数据从DRAM 110储存到储存器150期间维持混合存储器模块100和数据储存器150的操作。如本文所使用的,“超级电容器”设备(在本文中也被称为“超级电容器”)是高容量电化学电容器,并且其也可以被称为“超电容器”。在一些实施例中,一个或多个能量源可以可替代地包括可再充电电池或其他可再生能量源、或能量源的组合。
在一些实施例中,用户或制造商可以选择由能量后备混合存储器模块100进行电力保护(保存和恢复)的存储器的部分范围。以这种方式,例如在用户或制造商希望利用较小的储存元件而不需要更换混合存储器模块100以匹配储存容量的情况下,脱机模块数据储存器可以具有比存储器110更小的容量。
图2是NVDIMM设备的图示。如图2中所示的NVDIMM 200在存储器模块的一侧上包含DRAM集成电路215,被图示为NVDIMM前侧210,并且包括NAND存储器(或其他非易失性存储器)225(其可以包括NAND控制器),以及在存储器模块的另一侧上的存储器控制器230(其可以是FPGA、现场可编程门阵列、ASIC、专用集成电路或其他控制器),被图示为NVDIMM后侧220。NVDIMM还包括到备用电源的连接,诸如提供电力端口的超级电容器连接器250,其被图示为包括两个接地引脚和两个电力(例如12伏)连接器。
在操作中,存储器控制器230可以检测电力故障,并且响应于电力故障进行操作以将DRAM 215的数据内容复制到NAND 225。此外,在操作期间对超级电容器电源进行充电,并且旨在提供足够的电力以允许将数据从DRAM存储器储存到NAND储存器。
在电力接通事件期间,在MRC(存储器参考代码)对DRAM进行初始化之后,MRC请求存储器控制器230从NAND 225恢复DRAM内容。BIOS(基本输入/输出系统)表示由作为持久存储器的NVDIMM所占据的系统物理地址(SPA)(在E820/UEFI获取存储器映射和NVDIMM固件接口表(NFIT)ACPI表中),并通过ASL代码将NVDIMM表示为NVM(非易失性存储器)设备。OS(操作系统)将这些SPA范围理解为持久或易失性存储器,并相应地暴露给应用/工作负载。
目前可用的NVDIMM设备包含在DIMM的一侧上的DRAM设备以及在DIMM的另一侧上的NAND设备和存储器控制器。NVDIMM与超级电容器相连,超级电容器作为DIMM电力故障时的临时电源。当系统电力操作失灵时,将DRAM内容存储在NAND中,在包含NVDIMM的系统的下一次启动的存储器初始化期间将这些内容恢复到DRAM。
然而,如图2中所图示的装置的问题可以包括:
(1)如图2中所图示,NVDIMM在前侧210上具有DRAM集成电路,并且在后侧220上具有NAND储存器225和存储器控制器230。因此,由于NAND 225和存储器控制器230所占据的空间,降低了设备的总容量,这限制了DRAM存储器的可用量。
(2)存储在NAND 225中的数据是存储在DRAM中的数据。然而,由于信号完整性变化,地址/数据加扰种子在系统的启动之间改变。为此原因,NVDIMM通常不提供地址或数据加扰,使用地址/数据加扰禁止模式,这因此会导致存储器中的热点(其中特定存储器位置始终被用于储存)或存储器子系统中的更多错误——如果存储器的某些部分容易出错的话。
(3)与可用于较大储存设备的管理相比,NAND设备管理通常是初步的,这导致低质量的RAS(可靠性、可用性和可服务性)。
(4)当DRAM IC215或NAND IC225都失败时,这要求更换整个设备200,从而增加了拥有的成本。
(5)关于制造成本,NVDIMM解决方案的总体成本约为类似尺寸的DRAM DIMM的成本的三到四倍。
(6)存储在NVDIMM 200上的数据通常不受保护,因为在电源故障中数据被简单地从DRAM 215复制到NAND 225,结果,将NVDIMM从一个系统移动到另一个系统可能无意中使存储在NAND 225上的数据是可访问的。
图3是具有脱机模块加强储存器的能量后备混合存储器模块的实施例的图示。在一些实施例中,存储器设备的实施例包括具有如图3中所图示的后备储存介质脱机NVDIMM的混合存储器模块300。在一些实施例中,混合存储器模块300包括具有第一组DRAM集成电路315的前侧310和具有第二组DRAM集成电路335的后侧320。如所图示,后侧320还包括提供电力端口的超级电容器连接器350和IO启动器340。虽然该实施例中的连接器被指定为超级电容器连接器,但是实施例不限于该能量源,并且可以可替代地包括到可再充电电池或其他可再生能量源或能量源组合的连接。
在一些实施例中,混合存储器模块的结构允许制造高容量持久存储器以保留数据值而不会妥协容量,因为混合存储器模块上的额外空间可用于在后备存储器是脱机模块情况下的DRAM。
在一些实施例中,如图3中所图示的能量后备元件可以包括在计算系统的每个DIMM中,其中系统可以选择是否实现设备的备份功能。因此,根据系统中的实现,每个这样的存储设备可以被用作能量后备的混合存储器模块或用作DRAM DIMM。
图4是包括具有脱机模块加强储存器的能量后备混合存储器模块的装置或系统的实施例的图示。如所图示,装置或系统400包括被图示为CPU(中央处理单元)405的一个或多个处理器,其经由DDR(双倍数据速率)链路来与耦合的一个415耦合。混合存储器模块410-415的每一个(HMM1和HMM2,其中HMM是指混合存储器模块)可以是如图3中所图示的混合存储器模块300。
HMM1和HMM2模块耦合到储存控制器420,储存控制器420针对在电力故障时在装置400中数据的储存提供控制操作。如所图示,储存控制器420包括多路复用器422和多路复用器控制器,用于一次一个地选择混合存储器模块,以将数据从每个模块储存到脱机模块储存器450。在一些实施例中,储存控制器420可以是数据和电力控制单元的一部分或子系统。
在一些实施例中,包括储存控制器420和储存器450的混合存储器模块410-415和脱机模块储存器与备用能量源耦合,备用能量源可以包括但不限于超级电容器子系统(包括一个或多个超级电容器)460,以提供将存储在混合存储器模块410-415上的数据保存到储存器450所需的电力。通过将储存介质从混合存储器模块410-415移动到储存器450,装置400允许多个混合存储器模块共享储存器450的储存容量,这从而能够降低混合存储器模块解决方案的总体成本。
在一些实施例中,装置或系统400包括:
(1)在每个混合存储器模块410-415上的控制器,用于在电力故障时复制其DRAM介质的内容,诸如图3中所图示的IO启动器340。
(2)储存控制器420,其后面具有用作脱机模块储存器的储存介质450。
(3)超级电容器子系统460或其他能量源,以在系统电力丢失状况下向混合存储器模块和脱机模块储存器二者提供能量。
(4)由多路复用逻辑和排序器组成的加强储存解决方案,其允许多个混合存储器模块共享储存介质。排序逻辑确保在给定时间只有一个混合存储器模块能够写入储存介质。
再次参考图4,在系统电力故障时,经由SAVE_n信号(或其他通知)向系统400上的混合存储器模块410-415上的控制器通知电力故障。在一些实施例中,响应于SAVE_n信号,混合存储器模块控制器进行仲裁以获得对储存控制器的访问以开始针对混合存储器模块的保存操作。排序逻辑一次提供对一个混合存储器模块的访问。混合存储器模块序列的选择可以基于分配给每个模块的优先级,但是实施例不限于优先级排序,并且可以使用其他因素来确定存储器模块单元的排序。在仲裁中成功的混合存储器模块(本例中为HMM1)开始针对设备的保存操作。一旦HMM1完成它的保存,HMM1放弃对多路复用器的访问,允许HMM2赢得它的仲裁。在一些实施例中,超级电容器子系统460向储存控制器420提供足够的电力以允许所有供应的混合存储器模块完成它们的保存操作。在一些实施例中,使用允许储存控制器420将保存的图像与对应的混合存储器模块相关联的元数据来标记每个混合存储器模块保存。在一些实施例中,在平台上电时,混合存储器模块410-415再一次仲裁对储存控制器420的访问,以将其各自保存的图像从储存器460恢复到每个混合存储器模块的DRAM。
虽然上面描述了多个存储器模块进行仲裁以开始保存操作从而将数据推送到储存器,但是实施例不限于这种实现。在其他实施例中,系统可以被实现反而从混合存储器模块拉取数据,其中储存控制向混合存储器模块提供指令来以某个序列从这些模块获得数据。
在一些实施例中,系统400可以在完成将数据从混合存储器模块储存到储存器450中时从每个混合存储器模块中移除电力来提供额外的电力效率。例如,在电力故障时,电力由超级电容器460提供到HMM1 410和HMM2 415。如果所选择的序列使得选择HMM1在HMM2之前,则在完成将数据从HMM1储存到储存器450时,从HMM1移除电力,并且然后在完成将数据从HMM2储存到储存器450时从HMM2移除电力。在一些实施例中,通过在电力丢失时将混合存储器模块与任何其它连接进行隔离来提供额外的电力效率。
在一些实施例中,可以通过在电力故障时压缩来自每个混合存储器模块的数据来实现电力的额外节省,使得减少将数据备份到储存器所需的时间。
图5是利用NVDIMM设备的系统的图示。图5图示出了具有带有两个集成存储器控制器(iMC)的CPU 505的计算系统500,其具有坐落于iMC0 532上的两个NVDIMM设备,被图示为NVDIMM1 520和NVDIMM2 522;和坐落于iMC1 530上的两个DRAM DIMM,被图示为DRAM-DIMM1510和DRAM-DIMM2 512。DRAM-DIMM1和NVDIMM 1在通道1上,并且DRAM-DIMM1和NVDIMM1在通道2上。还图示了集成IO、iIO 534、以及与PCIe(快速外围组件互连)连接耦合。
如进一步所图示,将每个NVDIMM附接到超级电容器,其中NVDIMM 1 520与超级电容器1 540耦合,并且NVDIMM 1 522与超级电容器2 542耦合。在平台上电期间对超级电容器进行充电,并且可以在电力故障时为每个NVDIMM供应电力。
图6是包括具有脱机模块加强储存器的能量后备混合存储器模块的系统的实施例的图示。在一些实施例中,具有CPU 605的计算系统600包括两个集成存储器控制器(iMC),其具有坐落于iMC0 632上的两个混合存储器设备,被图示为HMM1 620和HMM2 622;和坐落于iMCl 630上的两个DRAM DIMM,被图示为DRAM-DIMM1 610和DRAM-DIMM2 612。DRAM-DIMM1和HMM1位于通道1上,并且DRAM-DIMM2和HMM2位于通道2上。虽然DRAM-DIMM和混合存储器设备在计算系统600中被不同地实现和处理,但是在一些实施例中,DRAM-DIMM设备代替传统DRAM设备,也包括诸如图1和图3中所图示的能量后备元件,其中DIMM设备的实现可以确定设备被视为易失性存储器还是持久的能量后备存储器。因此,DRAM-DIMM1 610和DRAM-DIMM2 612可以在物理上等同于HMM1 620和HMM2 622。
在一些实施例中,HMM1 620和HMM2 622各自与I2C以及诸如到SATA多路复用器644的SATA(串行ATA)链路的串行接口进行耦合,SATA多路复用器644与诸如SSD 650的储存元件进行耦合。此外,CPU 605与集成IO(iIO)634耦合,该集成IO(iIO)634进一步与PCH(平台控制器集线器)660耦合,PCH 660进一步与I2C和到SATA多路复用器644的SATA链路耦合。虽然提供SATA链路用于图6中的图示,但是实施例不限于此实现,并且储存接口可以可替代地为PCIe(快速外围组件互连),其中PCIe可以与CPU 605的iIO 634或其他合适的高速串行接口耦合,诸如USB(通用串行总线)3.0™、Firewire™或与PCH 660、iIO 634耦合的其他接口、或与CPU 605耦合的IO设备。
在一些实施例中,每个HMM 620-622和SSD 650与可以包括但不限于超级电容器子系统的备用能量源耦合,以提供用于在电力故障状况下保存数据的电力,这被图示为HMM1620、HMM2 622和SSD 650分别与超级电容器640、642和644耦合,其中超级电容器1表示可以包括一个或多个超级电容器(或其他能量源)的备用电力装置或子系统。在一些实施例中,超级电容器1在平台上电期间充电,并且在计算系统600的电力丢失时向每个混合存储器设备和SSD储存器提供备用电力。
在一些实施例中,计算系统600提供数据容量和数据持久性,从而使能量后备混合存储器模块能够被用于诸如例如存储器数据库的目的。此外,通过在多个混合存储器模块上提供加强储存解决方案,该系统可以实现降低用于多个混合存储器模块环境的持久存储器解决方案的总体成本。
在一些实施例中,包括能量后备存储器的装置或系统600的实施例提供以下内容:
(1)用于混合存储器模块620-622的DRAM内容在系统电力丢失(诸如系统故障或系统掉电)时被备份到SSD 650,并且在平台上电期间恢复回到DRAM。为了实现这一点,混合存储器模块包含用于DRAM数据的电力保护的SATA(串行ATA)接口(或其他串行接口)、I2C接口和超级电容器连接器。SATA和I2C接口通过SATA多路复用器644来与被图示为SSD 650的电力保护的SATA驱动器耦合,所述SATA多路复用器644通过I2C接口连接。SATA多路复用器644允许将多个混合存储器模块连接到单个SATA驱动器,使得可以将驱动器用作所有混合存储器模块的公共储存器。在一些实施例中,多路复用器644还包括允许由主机平台控制器集线器660访问SATA驱动器的端口。
(2)当平台电力发生故障时,将HMM的DRAM内容与元数据一起保存到SATA驱动器,其中可以一次一个混合存储器模块地顺序实现保存操作。当平台返回上电时,存储器初始化代码或DIMM SATA控制器从SSD储存器恢复每个混合存储器模块的内容,其中也可以一次一个混合存储器模块地顺序地执行从SSD储存器恢复数据。
注意,虽然本文所提供的示例使用SATA SSD和I2C多路复用器,但是实施例不限于该特定实现,并且可以包括任何能量后备储存器设备,包括任何点对点、总线或基于网络的储存器。
在一些实施例中,装置或系统可以提供优于现有的基于NVDIMM的解决方案的以下优点:
(1)更持久的DRAM容量:传统系统中可用的NVDIMM容量由于需要折中大部分DRAM容量(通常是DRAM容量的一半,DIMM设备一侧上的容量)以在相同的DIMM形状因子上容纳NAND储存器和存储器控制器而显著地减少。因此,整个OS可见存储器容量通常减少一半,导致降低了工作负载性能。在一些实施例中,通过将非易失性储存器移位到模块之外的位置,混合存储器模块上的可用空间更有效地应用于DRAM。与NVDIMM设备相比,重新分区的易失性和非易失性存储器可以有效使得OS可见持久存储器大小翻倍,导致改进的工作负载性能。
(2)低TCO(总体拥有成本):NVDIMM解决方案通常花费购买DRAM的成本的三到四倍。相比之下,实施能量后备持久存储器的实施例的成本是DRAM的成本加上SSD的成本(假设处理器支持从DRAM到SSD的电力故障拷贝特征)。大容积SSD的成本显著小于(约十分之一)类似容积的DRAM的成本。在示例中,实施例中的持久存储器的总体成本可能仅为DRAM的成本的大约1.2倍(假设针对SSD供应的双倍DRAM容量)。
(3)低服务成本:在NVDIMM中,DRAM和NAND设备在同一DIMM上。如果任何一个故障/降级,则需要更换整个NVDIMM。相比之下,在包括能量后备混合存储器模块的装置或系统的实施例中,DRAM和储存设备是在装置或系统中的分开的元件,并且因此如果这些元件中的任何一个发生故障或降级,则可以更换故障或降级的设备而与另一个设备无关,从而降低了服务成本/TCO。
(4)支持数据加扰:数据加扰特征对于降低由于存储器热点引起的信号完整性噪声而言是重要的,其中用地址对从存储器控制器(MC)到DRAM的数据进行加扰以减少存储器中的热点。对于现有的NVDIMM,来自DRAM设备的数据被存储到NAND,并在下一次上电时被恢复。然而,NAND控制器通常对MC如何对数据进行加扰不具有可见性。现有的NVDIMM可以通过禁用数据加扰来规避这个问题,因此继而失去了数据加扰的益处。
相比之下,存储在能量后备混合存储器的实施例中的数据提供了对数据加扰的支持。在一些实施例中,混合存储器模块上的SATA接口将内容存储到具有为BIOS分派的DRAM区域的SATA SSD,以存储诸如DIMM交错信息和数据加扰签名之类的元数据。
在一些实施例中,当重新启动平台时,存储器初始化代码读取SATA SSD内容并确定加扰模式并转换为实际数据并存储到DRAM。BIOS还将基于ECC(纠错码)检测未校正的错误,并染毒存在错误的存储器位置。因此,存储在SSD中的数据不受地址/数据加扰特征的影响。因此,与现有的NVDIMM解决方案相比,可以实现提供改进的RAS的实施例。
(5)存储器交错变化:对于NVDIMM,如果NVDIMM交错变化,那么应用十分难以获得先前的数据。为此原因,通常需要在任何NVDIMM位置更改之前备份NVDIMM持久数据并恢复数据。在一些实施例中,由于BIOS从脱机的DIMM储存器恢复数据,所以只要存在足够的DRAM容量,BIOS就可以重新组装数据而不管新的交错或DRAM DIMM变化。
(6)高RAS(可靠性、可用性和可服务性):在现有的NVDIMM设备中,向NAND控制器添加诸如坏块重映射、磨损均衡、死机故障等特征增加了FPGA的大小或者需要额外的NAND设备,并且从而增加了成本。为此原因,NVDIMM通常不提供高RAS能力。相比之下,实施例利用标准SSD用于脱机模块储存器,其中SSD通常包含诸如坏块重新映射、磨损均衡、死机故障等的特征。
(7)持久数据安全:NVDIMM实现通常不提供对存储数据的保护。为此原因,用户能够将NVDIMM从一个系统移动到另一个系统,并且然后在没有数据作者提供任何授权的情况下就能够读取数据。在一些实施例中,利用SSD或类似储存器来用于存储持久数据,并且因此可以利用当今在SSD上可用的诸如文件加密之类的安全机制。
在一些实施例中,装置或系统的实施例包括以下平台级解决方案,其提供具有持久存储器功能性的DRAM类似的性能:
(1)混合存储器模块每个都包含SATA(或其他串行接口)控制器、I2C控制器和超级电容器(或其他能量源)连接器,其中DRAM内容在平台电力故障时被电力保护。
(2)使用超级电容器或其他能量源对SATA SSD和SATA多路复用器逻辑进行电力保护。
(3)混合存储器模块和SATA驱动器通过SATA多路复用器来连接,这可以通过I2C端口来控制,以切换到特定的混合存储器模块或通过PCH SATA端口切换到主机。
(4)当平台被上电时,BIOS正常地对包括混合存储器模块的DIMM设备进行初始化,并通过与DIMM控制器通信来了解哪些DIMM包含SATA端口。
(a)包括SATA端口的每个混合存储器模块都默认被编程为不将数据存储到SSD,该功能仅在BIOS将数据完全恢复到DRAM之后才能被启用。
(5)BIOS通过I2C发出命令,经由具有I2C控制接口的SATA多路复用器将SSD引导到适当的DIMM SATA接口或到PCH。
(6)BIOS读取SSD的内容及其元数据。如果存在DRAM内容,则BIOS将内容恢复到适当的DRAM。
(a)BIOS检查元数据以确定DRAM大小交错信息,并确定系统物理地址(SPA)范围以复制数据。BIOS检查元数据以确定数据加扰模式,并使用该模式来将数据从SSD恢复到DRAM。
(b)如果禁用加扰,则BIOS可以请求每个混合存储器模块SATA控制器恢复DRAM数据,或者BIOS可以恢复数据。
(c)BIOS检查数据的ECC(纠错码),并且如果检测到任何未校正的错误或毒物,则BIOS可以使用错误注入机制将错误注入未校正的错误或毒物位置。
(d)BIOS检查SSD的健康状况,并为OS创建S.M.A.R.T数据,以知晓DIMM备份介质的健康状况。
(e)如果启用SATA安全性,则需要BIOS首先提供适当的密码短语以访问SATA数据。在一些实施例中,可以将密码短语存储在诸如TPM(可信平台模块)的安全容器中以提供附加的安全性。
(7)一旦从SSD到DRAM的数据恢复操作完成,BIOS就对混合存储器模块进行编程,以将DRAM内容存储到SSD,并且BIOS将多路复用器切换到第一混合存储器模块。此过程导致SSD对于OS而言是不可见的。
(8)在一些实施例中,当多个混合存储器模块共享SSD时,BIOS可以将为混合存储器模块选择到SSD的存储顺序,并且可以将该顺序与电力故障看门狗定时器一起编程到混合存储器模块。
(9)BIOS向OS报告持久存储器范围。
(10)在电力故障时,PCH接收到电力故障状况并生成SMI(系统管理中断)。
(11)在一些实施例中,SMM(系统管理模式)代码冲刷CPU高速缓存并冲刷iMC写入待定队列。
(12)在一些实施例中,BIOS指引PCH向混合存储器模块发信号通知电力故障。
(13)一旦混合存储器模块接收到电力故障信号,则第一混合存储器模块依次开始将内容存储到SSD。一旦存储完成,它写入SATA多路复用器以切换到混合存储器模块的序列中的下一个混合存储器模块。
(14)下一个混合存储器模块,一旦这种混合存储器模块检测到它拥有SATA端口,就将SATA多路复用器切换到其端口并开始保存DRAM内容。此时,混合存储器模块将存储过程转移到序列中的下一个后续混合存储器模块,以此类推,直到所有混合存储器模块都被处理。
图7是根据实施例利用来图示用于恢复操作的过程的流程图。图7示出了具有脱机设备加强储存器的能量后备混合存储器模块的操作中的平台启动流程。在一些实施例中,在平台电力接通700时,读取混合存储器模块的SPD(串行存在检测)702,并且对混合存储器模块初始化704。
如果在系统中没有提供能量后备和SATA支持706,那么将系统启动为正常系统708。否则,如果系统中提供了能量后备和SATA(或其他串行接口)支持706(其中系统包括能量后备混合存储器模块),则将I2C多路复用器编程到PCH SSD 710。能量后备SSD容量可用性被确定712,其中用于使SSD能够进行读取和写入操作的任何凭证被提交714。此外,分派作为持久性的DRAM的量被确定716,其中能量后备HMM持久存储器小于或等于能量后备SSD容量的容量718。
在一些实施例中,如果能量后备HMM元数据在SSD中不可用720,则创建元数据以指示写入备份数据和进一步信息的位置722。当存在元数据并且验证检查通过时,将数据从该SSD恢复到混合存储器模块724。
在一些实施例中,要等待直到一个或多个超级电容器(或其他能量源)被充分充电以支持从混合存储器模块到SSD的DRAM数据备份728。此外,针对新的备份更新元数据,并且针对备份区域和其他要求对混合存储器模块进行编程730。对能量后备SATA驱动器禁用PCH可见性732,诸如通过ACPI表将易失性/持久存储器映射(指示哪些存储器模块提供持久存储器)呈现给操作系统734,并且启动736操作系统以开始操作。
图8是根据实施例的用于图示针对电力丢失情况下的存储器操作的处理的流程图。图8图示出了具有脱机模块加强储存器的能量后备混合存储器模块的系统或装置的实施例的平台电力故障/掉电流程。
在一些实施例中,在平台电力故障或平台停机800时,混合存储器模块检测电力丢失(电力故障或平台停机)800,比如通过接收信号来检测电力丢失,并且DIMM等待SATA端口准备好将数据从混合存储器模块的DRAM写入脱机模块储存器SSD 802。在一些实施例中,用户或制造商可以指明要被能量后备非易失性存储器进行电力保护(保存和恢复)的部分存储器范围,并且数据的写入可以被限制到此部分存储器范围。在一些实施例中,在平台电源具有足够电力的情况下,可以将PCH编程为在电力故障时断言SMI,并且在向DRAM DIMM断言ADR/电力故障之前允许SMM冲刷高速缓存和存储器控制器写入待定队列。
在一些实施例中,在启动期间,向每个混合存储器模块提供用于在故障时写入SATA驱动器的优先级顺序。在这样的实施例中,具有最高优先级的混合存储器模块首先写入储存器,并且然后通知储存过程何时完成。然后该过程以优先级顺序继续混合存储器模块,直到储存过程完成806。在一些实施例中,在完成对于这种混合存储器模块的储存过程时,移除到每个混合存储器模块的电力。
在一些实施例中,HMM SATA控制器存储元数据以指示复制操作过程以使恢复软件能够检测故障状况808。
在所有混合存储器模块完成到脱机模块储存器的存储操作时,系统进入最终平台断电810。
图9是包括具有脱机模块储存器的能量后备混合存储器的电子装置或系统的实施例的图示。在该图示中,未示出与本说明书无关的某些标准和公知的组件。可以对被示出为单独元件的元件进行组合,包括例如在单个芯片上组合多个元件的SoC(片上系统)。该装置或系统(通常被称为系统900)可以包括但不限于计算系统。
在一些实施例中,系统900可以包括诸如耦合到一个或多个总线或互连以用于处理信息的一个或多个处理器910的处理装置,总线一般被示为总线905。处理器910可以包括一个或多个物理处理器和一个或多个逻辑处理器。在一些实施例中,处理器可以包括一个或多个通用处理器或专用处理器处理器。
总线905是用于传输数据的通信装置。总线905为了简化而被图示为单个总线,但是可以表示多个不同的互连或总线,并且到这些互连或总线的组件连接可以不同。图9中所示的总线905是一种抽象概念,其表示通过适当的桥接器、适配器或控制器连接的任何一个或多个单独的物理总线、点对点连接或二者。
在一些实施例中,系统900还包括随机存取存储器(RAM)或其他动态储存设备或作为用于存储由处理器910执行的信息和指令的主存储器915的元件。主存储器915可以包括但不是限于动态随机存取存储器(DRAM)。
在一些实施例中,除了主存储器915之外或者作为主存储器915的一部分,系统900还包括一个或多个能量后备混合存储器模块,其中这种混合存储器模块可以是如图1和图3中所图示。在一些实施例中,实现混合存储器模块以利用诸如SSD 930之类的脱机模块储存器。在一些实施例中,SSD 930为多个混合存储器模块920中的每一个提供加强储存,例如图4和6中所图示。
在一些实施例中,混合存储器模块和SSD 930由能量源925进行电力保护,能量源925可以包括但不限于包括一个或多个超级电容器的超级电容器子系统。在一些实施例中,能量源925在系统900上电时被充电,并且能量源925在系统900的电力故障或停机时提供用于备份存储在混合存储器模块920上的数据的电力。
系统900还可以包括只读存储器(ROM)935或用于为处理器910存储静态信息和指令的其他静态储存设备。
在一些实施例中,系统900包括耦合到总线905的一个或多个发射机或接收机940。在一些实施例中,系统900可以包括用于使用无线发射机、接收机或两者经由无线通信发射和接收数据的诸如偶极或单极天线的一个或多个天线944以及用于经由有线通信发射和接收数据的一个或多个端口942。无线通信包括但不限于Wi-Fi、BluetoothTM、近场通信以及其他无线通信标准。
在一些实施例中,系统900包括用于输入数据的一个或多个输入设备950,包括硬和软按钮、操纵杆、鼠标或其他指示设备、键盘、语音命令系统或手势识别系统。
在一些实施例中,系统900包括输出显示器955,其中显示器955可以包括液晶显示器(LCD)或用于向用户显示信息或内容的任何其他显示技术。在一些环境中,显示器955可以包括也用作输入设备950的至少一部分的触摸屏。输出显示器955还可以包括音频输出,其包括一个或多个扬声器、音频输出插孔或其他音频、以及向用户的其他输出。
系统900还可以包括电池或其他电源960,其可以包括太阳能电池、燃料电池、充电电容器、近场感应耦合或用于在系统900中提供或生成电力的其它系统或装置。由电源960提供的电力可以根据需要分发到系统900的元件。在一些实施例中,系统900的电力结构还包括一个或多个超级电容器925。
在上面的描述中,为了解释的目的,阐述了许多具体细节以便提供对所描述的实施例的透彻理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节中的一些的情况下对实施例进行实践。在其他情形下,公知的结构和设备以框图的形式示出。在所图示的组件之间可以存在中间结构。本文描述或图示出的组件可以具有未图示出或描述的附加输入或输出。
各种实施例可以包括各种过程。 这些过程可以由硬件组件执行,或者可以体现在计算机程序或机器可执行指令中,该指令可用于使通用或专用处理器或用指令编程的逻辑电路执行该过程。可替代地,可以通过硬件和软件的组合来执行该过程。
可以将各种实施例的各部分提供为计算机程序产品,其可以包括其上存储有计算机程序指令的计算机可读介质,其可以用于对计算机(或其他电子设备)进行编程以由一个或多个处理器执行从而执行根据某些实施例的过程。计算机可读介质可以包括但不限于磁盘、光盘、光盘只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁盘或光卡、闪存或适用于存储电子指令的其他类型的计算机可读介质。此外,实施例也可以作为计算机程序产品进行下载,其中该程序可以从远程计算机传送到请求计算机。
许多方法以其最基本的形式进行描述,但是可以在不脱离本实施例的基本范围的情况下从任何方法删除或添加过程,并且可以从任何所描述的消息中添加或减少信息。对于本领域技术人员显而易见的是,可以进行许多进一步的修改和适配。提供特定实施例不是限制概念而是为了说明它。实施例的范围不是由上面所提供的具体示例来确定,而仅由下列权利要求来确定。
如果说元件“A”耦合到元件“B”或与元件“B”耦合,则元件A可以直接耦合到元件B,或者通过例如元件C而间接耦合。当说明书或权利要求书声称组件、特征、结构、过程或特性A“导致”组件、特征、结构、过程或特性B,这意味着“A”至少是“B”的部分原因,但也可能存在有助于导致“B”的至少另一个组件、特征、结构、过程或特性。如果说明书指出“可以”、“可能”或“或许”包括组件、特征、结构、过程或特性,则不需要包括该特定组件、特征、结构、过程或特性。如果说明书或权利要求涉及“一”或“一个”元件,则这并不意味着仅存在一个所描述的元件。
实施例是实现或示例。说明书中对“实施例”、“一实施例”、“一个实施例”,“一些实施例”或“其他实施例”的引用意味着结合实施例描述的特定特征、结构或特性包括在至少一些实施例中,但是不一定包括在所有实施例中。“实施例”、“一实施例”,“一个实施例”或“一些实施例”的各种出现不一定全部指代相同的实施例。应当理解,在示例性实施例的前述描述中,为了简化本公开和帮助理解各种新颖方面中的一个或多个的目的,各种特征有时在单个实施例、附图或其描述中被归组在一起。然而,公开的该方法不应被解释为反映所要求保护的实施例需要比每个权利要求中明确叙述的特征更多的特征的意图。相反,如以下权利要求所反映的那样,新颖方面在于单个前述公开实施例的小于所有特征。因此,权利要求特此被明确地并入本说明书中,其中每个权利要求独自地作为单独的实施例。
在一些实施例中,存储器设备包括安装在电路板上的多个易失性存储器芯片;控制器,其提供用于在电力丢失状况下将所述多个易失性存储器芯片的内容备份到与所述存储器模块分离的非易失性储存设备。
在一些实施例中,所述电路板包括第一侧和第二侧,并且其中所述多个存储器芯片包括安装在所述电路板的第一侧中的第一组存储器芯片以及安装在所述电路板的第二侧中的第二组存储器芯片。
在一些实施例中,到所述备用能量源的连接被并入第一连接器中。
在一些实施例中,到所述备用能量源的连接包括到一个或多个超级电容器的连接。
在一些实施例中,所述存储器模块是双列直插存储器模块(DIMM)。
在一些实施例中,备份所述多个存储器芯片的内容包括基于设置来将要备份的内容限制到部分存储器范围。
在一些实施例中,系统包括用于处理数据的处理器;用于发射数据的天线;多个存储器模块,每个存储器模块包括动态随机存取存储器(DRAM)和用于控制所述DRAM的内容的备份的控制器;数据储存设备,用于存储针对所述多个存储器模块中的至少第一组存储器模块的数据;储存控制器,在针对所述系统的电力丢失状况下针对在所述数据储存设备中储存所述存储器模块的数据提供控制操作;以及备用能量源,用于为所述第一组存储器模块、所述数据储存设备和所述储存控制器中的每一个提供电力。
在一些实施例中,所述备用能量源是包括一个或多个超级电容器的超级电容器子系统。
在一些实施例中,所述数据储存设备是SSD。
在一些实施例中,所述储存控制器包括用于选择所述第一组存储器模块之一的多路复用器。
在一些实施例中,所述多个存储器模块包括被实现为持久存储器的所述第一组存储器模块和被实现为易失性存储器的第二组存储器模块。
在一些实施例中,针对将所述存储器模块的数据储存在所述数据储存设备中而提供控制操作的所述储存控制器包括用于基于设置而将数据储存限制到部分存储器范围的所述储存控制。
在一些实施例中,一种方法包括检测计算系统中的电力丢失,所述计算系统包括多个存储器模块;将能量从备用能量源施加到所述多个存储器模块、储存控制器和数据储存设备;以及将数据从多个存储器模块中的每一个备份到所述数据储存设备,其中备份所述数据包括所述储存控制器按序选择所述多个存储器模块,以储存来自所述多个存储器模块中的每一个的数据。
在一些实施例中,该方法还包括在所述计算系统上电时将所述数据从所述数据储存设备恢复到所述多个存储器模块中的每一个。
在一些实施例中,从所述多个存储器模块中的每一个备份所述数据包括存储关于所述数据储存设备中的每个存储器模块的数据备份的元数据。
在一些实施例中,按序选择所述多个存储器模块包括根据针对每个存储器模块的优先级来选择所述多个存储器模块。
在一些实施例中,该方法还包括在从每个存储器模块的数据备份完成时从所述多个存储器模块中的每一个中移除所述备用能量源的能量。
在一些实施例中,将数据从多个存储器模块中的每一个备份到所述数据储存设备包括基于设置来备份来自多个存储器模块的部分范围的数据。
在一些实施例中,一种在其上存储有表示指令序列的数据的非瞬时计算机可读储存介质,所述指令序列在由处理器执行时使得处理器执行操作,所述操作包括:检测计算系统中的电力丢失,所述计算系统包括多个存储器模块;将能量从备用能量源施加到所述多个存储器模块、储存控制器和数据储存设备;以及将数据从多个存储器模块中的每一个备份到所述数据储存设备,其中备份所述数据包括所述储存控制器按序选择所述多个存储器模块,以储存来自所述多个存储器模块中的每一个的数据。
在一些实施例中,介质还包括用于在所述计算系统上电时将所述数据从所述数据储存设备恢复到所述多个存储器模块中的每一个的指令。
在一些实施例中,从所述多个存储器模块中的每一个备份所述数据包括存储关于所述数据储存设备中的每个存储器模块的数据备份的元数据。
在一些实施例中,按序选择所述多个存储器模块包括根据针对每个存储器模块的优先级来选择所述多个存储器模块。
在一些实施例中,介质还包括在从每个存储器模块备份数据完成时从所述多个存储器模块中的每一个移除所述备用能量源的能量的指令。
在一些实施例中,将数据从多个存储器模块中的每一个备份到所述数据储存设备包括基于设置来备份来自多个存储器模块的部分范围的数据。
在一些实施例中,装置包括:用于检测计算系统中的电力丢失的装置,所述计算系统包括多个存储器模块;用于将能量从备用能量源施加到所述多个存储器模块、储存控制器和数据储存设备的装置;以及用于将数据从多个存储器模块中的每一个备份到所述数据储存设备的装置,其中用于备份所述数据的装置包括用于按序选择所述多个存储器模块以用于储存来自所述多个存储器模块的每一个的数据的装置。
在一些实施例中,该装置还包括用于在所述计算系统上电时将所述数据从所述数据储存设备恢复到所述多个存储器模块中的每一个的装置。
在一些实施例中,用于从所述多个存储器模块中的每一个备份所述数据的装置包括用于存储关于所述数据储存设备中的每个存储器模块的数据备份的元数据的装置。
在一些实施例中,用于按序选择所述多个存储器模块的装置包括用于根据针对每个存储器模块的优先级来选择所述多个存储器模块的装置。
在一些实施例中,装置还包括用于在从每个存储器模块备份数据完成时从所述多个存储器模块中的每一个移除所述备用能量源的能量的装置。
在一些实施例中,用于将数据从多个存储器模块中的每一个备份到所述数据储存设备的装置包括用于基于设置来备份来自所述多个存储器模块中的部分范围的数据的装置。
Claims (23)
1.一种存储器模块,包括:
安装在电路板上的多个易失性存储器芯片;和
控制器,所述控制器提供用于在电力丢失状况下将所述多个易失性存储器芯片的内容移动到与所述存储器模块分离的非易失性储存设备,所述移动的定时基于分配给存储器模块的优先级,该优先级高于或低于响应于电力丢失状况而将其相应内容也移至非易失性储存设备的其他存储器模块的各自优先级,移动所述相应内容的定时用于以将所述相应内容的有序流给予控制器,以最终储存在非易失性储存设备中。
2.根据权利要求1所述的存储器模块,其中,所述电路板包括第一侧和第二侧,并且其中所述多个易失性存储器芯片包括安装在所述电路板的第一侧中的第一组易失性存储器芯片以及安装在所述电路板的第二侧中的第二组易失性存储器芯片。
3.根据权利要求1所述的存储器模块,还包括连接器,所述连接器包括到备用能量源的连接。
4.根据权利要求3所述的存储器模块,其中,到所述备用能量源的所述连接包括到一个或多个超级电容器的连接。
5.根据权利要求1所述的存储器模块,其中,所述存储器模块是双列直插存储器模块(DIMM)。
6.根据权利要求1所述的存储器模块,其中,备份所述多个易失性存储器芯片的内容包括基于设置来将要备份的内容限制到部分存储器范围。
7.一种针对电力丢失情况下的存储器操作的系统,包括:
用于处理数据的处理器;
用于发射或接收针对系统的数据的天线;
多个存储器模块,每个存储器模块包括:
动态随机存取存储器(DRAM),以及
用于控制所述DRAM的内容的备份的控制器;
数据储存设备,用于存储针对所述多个存储器模块中的至少第一组存储器模块的数据,所述数据储存设备与第一组存储器模块分离;
储存控制器,用于在所述系统的电力丢失状况下针对在所述数据储存设备中储存所述第一组存储器模块的数据提供控制操作,所述储存控制器在电力丢失状况期间选择第一组存储 模块中的一个,然后将其数据移至数据储存设备,选择该存储器模块,因为其优先级高于尚 未将其数据移动到数据储存设备的第一组存储器模块的剩余存储器模块中的每个,其中选择 一个存储器模块有助于将数据的有序流从第一组存储器模块给予控制器,以最终储存在非易 失性储存设备中;和
备用能量源,用于为所述第一组存储器模块、所述数据储存设备和所述储存控制器中的每一个提供电力。
8.根据权利要求7所述的系统,其中,所述备用能量源是包括一个或多个超级电容器的超级电容器子系统。
9.根据权利要求7所述的系统,其中,所述数据储存设备是固态驱动器(SSD)。
10.根据权利要求7所述的系统,其中,所述储存控制器包括用于选择所述第一组存储器模块之一的多路复用器。
11.根据权利要求7所述的系统,其中,所述多个存储器模块包括被实现为持久存储器的所述第一组存储器模块和被实现为易失性存储器的第二组存储器模块。
12.根据权利要求11所述的系统,其中,针对将所述第一组存储器模块的数据储存在所述数据储存设备中而提供控制操作的所述储存控制器包括用于基于设置而将数据储存限制到部分存储器范围的所述储存控制器。
13.一种针对电力丢失情况下的存储器操作的方法,包括:
检测计算系统中的电力丢失,所述计算系统包括多个存储器模块;
将能量从备用能量源施加到所述多个存储器模块、储存控制器和数据储存设备,所述数据储 存设备与所述存储器模块分离;和
将数据从多个存储器设备中的每一个备份到所述数据储存设备,其中备份所述数据包括所述储存控制器按顺序选择所述多个存储器模块,以储存来自所述多个存储器模块中的每一个的数据,所述顺序基于分配给多个存储器模块中的每一个的相应优先级,该顺序将数据的有序 流从存储器模块给予所述储存控制器,以最终储存在数据储存设备中。
14.根据权利要求13所述的方法,还包括在所述计算系统上电时将所述数据从所述数据储存设备恢复到所述多个存储器模块中的每一个。
15.根据权利要求13所述的方法,其中,从所述多个存储器模块中的每一个备份所述数据包括存储关于所述数据储存设备中的每个存储器模块的数据备份的元数据。
16.根据权利要求13所述的方法,还包括在从每个存储器模块备份数据完成时,从所述多个存储器模块中的每一个中移除所述备用能量源的能量。
17.根据权利要求13所述的方法,其中将数据从多个存储器模块中的每一个备份到所述数据储存设备包括基于设置来备份来自所述多个存储器模块的部分范围的数据。
18.一种针对电力丢失情况下的存储器操作的设备,包括:
用于检测计算系统中的电力丢失的装置,所述计算系统包括多个存储器模块;
用于将能量从备用能量源施加到所述多个存储器模块、储存控制器和数据储存设备的装置,所述数据储存设备与所述存储器模块分离;和
用于将数据从多个存储器设备中的每一个备份到所述数据储存设备的装置,其中备份所述数据的装置包括所述储存控制器按顺序选择所述多个存储器模块,以储存来自所述多个存储器模块中的每一个的数据的装置,所述顺序基于分配给多个存储器模块中的每一个的相应优先 级,该顺序将数据的有序流从存储器模块给予所述储存控制器,以最终储存在数据储存设备 中。
19.根据权利要求18所述的设备,还包括用于在所述计算系统上电时将所述数据从所述数据储存设备恢复到所述多个存储器模块中的每一个的装置。
20.根据权利要求18所述的设备,其中,用于从所述多个存储器模块中的每一个备份所述数据的装置包括用于存储关于所述数据储存设备中的每个存储器模块的数据备份的元数据的装置。
21.根据权利要求18所述的设备,还包括用于在从每个存储器模块备份数据完成时,从所述多个存储器模块中的每一个中移除所述备用能量源的能量的装置。
22.根据权利要求18所述的设备,其中用于将数据从多个存储器模块中的每一个备份到所述数据储存设备的装置包括用于基于设置来备份来自所述多个存储器模块的部分范围的数据的装置。
23.一种计算机可读介质,在其上具有指令,当指令被执行时导致计算机设备执行根据权利要求13-17中任一个的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110835295.4A CN113535093A (zh) | 2015-06-26 | 2016-05-11 | 高性能持久存储器 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/752585 | 2015-06-26 | ||
US14/752,585 US9792190B2 (en) | 2015-06-26 | 2015-06-26 | High performance persistent memory |
PCT/US2016/031893 WO2016209392A1 (en) | 2015-06-26 | 2016-05-11 | High performance persistent memory |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110835295.4A Division CN113535093A (zh) | 2015-06-26 | 2016-05-11 | 高性能持久存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107636600A CN107636600A (zh) | 2018-01-26 |
CN107636600B true CN107636600B (zh) | 2021-08-13 |
Family
ID=57586000
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110835295.4A Pending CN113535093A (zh) | 2015-06-26 | 2016-05-11 | 高性能持久存储器 |
CN201680030358.6A Active CN107636600B (zh) | 2015-06-26 | 2016-05-11 | 高性能持久存储器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110835295.4A Pending CN113535093A (zh) | 2015-06-26 | 2016-05-11 | 高性能持久存储器 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9792190B2 (zh) |
EP (1) | EP3317768B1 (zh) |
CN (2) | CN113535093A (zh) |
TW (1) | TWI709856B (zh) |
WO (1) | WO2016209392A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9971511B2 (en) * | 2016-01-06 | 2018-05-15 | Samsung Electronics Co., Ltd. | Hybrid memory module and transaction-based memory interface |
US10684948B2 (en) * | 2016-11-21 | 2020-06-16 | Sanmina Corporation | Dual inline memory module |
US10198354B2 (en) * | 2017-03-21 | 2019-02-05 | Intel Corporation | Apparatus, system, and method to flush modified data from a volatile memory to a persistent second memory |
US10474550B2 (en) | 2017-05-03 | 2019-11-12 | Vmware, Inc. | High availability for persistent memory |
US10496443B2 (en) | 2017-05-03 | 2019-12-03 | Vmware, Inc. | OS/hypervisor-based persistent memory |
WO2018226658A1 (en) * | 2017-06-05 | 2018-12-13 | Worcester Polytechnic Institute | Weatherproof cover |
US10782993B2 (en) * | 2017-10-13 | 2020-09-22 | Dell Products L.P. | Systems and methods for secure runtime dynamic resizing of memory namespaces |
US10929233B2 (en) | 2017-10-27 | 2021-02-23 | Vmware, Inc. | Application high availability via application transparent battery-backed replication of persistent data |
US11016890B2 (en) | 2018-02-05 | 2021-05-25 | Micron Technology, Inc. | CPU cache flushing to persistent memory |
US10908825B2 (en) * | 2018-03-29 | 2021-02-02 | Intel Corporation | SSD with persistent DRAM region for metadata |
US10839862B2 (en) | 2018-04-25 | 2020-11-17 | Micron Technology, Inc. | Cross point array memory in a non-volatile dual in-line memory module |
CN109582507B (zh) * | 2018-12-29 | 2023-12-26 | 西安紫光国芯半导体股份有限公司 | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm |
US11163475B2 (en) * | 2019-06-04 | 2021-11-02 | International Business Machines Corporation | Block input/output (I/O) accesses in the presence of a storage class memory |
US11249679B2 (en) | 2019-07-31 | 2022-02-15 | Micron Technology, Inc. | Selecting a write operation mode from multiple write operation modes |
KR20210136480A (ko) | 2020-05-07 | 2021-11-17 | 삼성전자주식회사 | 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법 |
US11742054B2 (en) * | 2020-11-12 | 2023-08-29 | Dell Products L.P. | Memory power fault resilience in information handling systems |
CN113127388A (zh) * | 2021-04-13 | 2021-07-16 | 郑州云海信息技术有限公司 | 一种元数据写入方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102544022A (zh) * | 2012-01-05 | 2012-07-04 | 清华大学 | 一种混合非挥发快闪存储器及其存储系统 |
CN104461964A (zh) * | 2014-12-12 | 2015-03-25 | 杭州华澜微科技有限公司 | 一种存储装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4858101A (en) * | 1987-08-26 | 1989-08-15 | Allen-Bradley Company, Inc. | Programmable controller with parallel processors |
US6177956B1 (en) * | 1996-10-23 | 2001-01-23 | Flashpoint Technology, Inc. | System and method for correlating processing data and image data within a digital camera device |
US20040190210A1 (en) * | 2003-03-26 | 2004-09-30 | Leete Brian A. | Memory back up and content preservation |
US9213609B2 (en) | 2003-12-16 | 2015-12-15 | Hewlett-Packard Development Company, L.P. | Persistent memory device for backup process checkpoint states |
US7536506B2 (en) * | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
US8074034B2 (en) * | 2007-07-25 | 2011-12-06 | Agiga Tech Inc. | Hybrid nonvolatile ram |
US8037380B2 (en) * | 2008-07-08 | 2011-10-11 | International Business Machines Corporation | Verifying data integrity of a non-volatile memory system during data caching process |
US8325554B2 (en) * | 2008-07-10 | 2012-12-04 | Sanmina-Sci Corporation | Battery-less cache memory module with integrated backup |
US8566639B2 (en) * | 2009-02-11 | 2013-10-22 | Stec, Inc. | Flash backed DRAM module with state of health and/or status information accessible through a configuration data bus |
US7990797B2 (en) * | 2009-02-11 | 2011-08-02 | Stec, Inc. | State of health monitored flash backed dram module |
US8977831B2 (en) * | 2009-02-11 | 2015-03-10 | Stec, Inc. | Flash backed DRAM module storing parameter information of the DRAM module in the flash |
US8230257B2 (en) | 2009-06-26 | 2012-07-24 | Seagate Technology Llc | Systems, methods and devices for controlling backup power provided to memory devices and used for storing of sensitive data |
US8769535B2 (en) | 2009-09-24 | 2014-07-01 | Avaya Inc. | Providing virtual machine high-availability and fault tolerance via solid-state backup drives |
US8688660B1 (en) * | 2010-09-28 | 2014-04-01 | Amazon Technologies, Inc. | System and method for providing enhancements of block-level storage |
US8954798B2 (en) | 2011-02-11 | 2015-02-10 | Taejin Info Tech Co., Ltd. | Alarm-based backup and restoration for a semiconductor storage device |
US8638634B2 (en) * | 2011-03-01 | 2014-01-28 | Agiga Tech Inc. | Apparatus and method to measure energy capacity of a backup power supply without compromising power delivery |
JP2013114416A (ja) | 2011-11-28 | 2013-06-10 | Elpida Memory Inc | メモリモジュール |
US9013946B2 (en) * | 2012-01-12 | 2015-04-21 | Agiga Tech Inc. | Apparatus and method to manage energy capacity of a backup power supply |
GB2507961A (en) * | 2012-11-14 | 2014-05-21 | Ibm | Back-up and restoration of data between volatile and flash memory |
GB2510180A (en) * | 2013-01-29 | 2014-07-30 | Ibm | Selective restoration of data from non-volatile storage to volatile memory |
US10372551B2 (en) * | 2013-03-15 | 2019-08-06 | Netlist, Inc. | Hybrid memory system with configurable error thresholds and failure analysis capability |
CN103207819B (zh) * | 2013-03-29 | 2016-05-25 | 无锡云动科技发展有限公司 | 一种存储装置及其混合存储装置 |
US9251047B1 (en) * | 2013-05-13 | 2016-02-02 | Amazon Technologies, Inc. | Backup of volatile memory to persistent storage |
US9436600B2 (en) * | 2013-06-11 | 2016-09-06 | Svic No. 28 New Technology Business Investment L.L.P. | Non-volatile memory storage for multi-channel memory system |
US9348705B1 (en) * | 2014-06-26 | 2016-05-24 | Inphi Corporation | Memory controller system with non-volatile backup storage |
-
2015
- 2015-06-26 US US14/752,585 patent/US9792190B2/en active Active
-
2016
- 2016-05-06 TW TW105114179A patent/TWI709856B/zh active
- 2016-05-11 CN CN202110835295.4A patent/CN113535093A/zh active Pending
- 2016-05-11 EP EP16814880.7A patent/EP3317768B1/en active Active
- 2016-05-11 WO PCT/US2016/031893 patent/WO2016209392A1/en active Application Filing
- 2016-05-11 CN CN201680030358.6A patent/CN107636600B/zh active Active
-
2017
- 2017-10-09 US US15/728,414 patent/US10783048B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102544022A (zh) * | 2012-01-05 | 2012-07-04 | 清华大学 | 一种混合非挥发快闪存储器及其存储系统 |
CN104461964A (zh) * | 2014-12-12 | 2015-03-25 | 杭州华澜微科技有限公司 | 一种存储装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160378623A1 (en) | 2016-12-29 |
CN113535093A (zh) | 2021-10-22 |
US10783048B2 (en) | 2020-09-22 |
TW201712551A (zh) | 2017-04-01 |
US9792190B2 (en) | 2017-10-17 |
CN107636600A (zh) | 2018-01-26 |
EP3317768B1 (en) | 2021-06-23 |
TWI709856B (zh) | 2020-11-11 |
US20180032414A1 (en) | 2018-02-01 |
WO2016209392A1 (en) | 2016-12-29 |
EP3317768A4 (en) | 2019-04-17 |
EP3317768A1 (en) | 2018-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107636600B (zh) | 高性能持久存储器 | |
US9612761B2 (en) | Semiconductor device | |
US9804794B2 (en) | Techniques for providing data redundancy after reducing memory writes | |
US20160378344A1 (en) | Processor and platform assisted nvdimm solution using standard dram and consolidated storage | |
US9164833B2 (en) | Data storage device, operating method thereof and data processing system including the same | |
US20180246790A1 (en) | System and Method for Data Restore Flexibility on Dual Channel NVDIMMs | |
KR20190117117A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11966603B2 (en) | Memory system for updating firmware when SPO occurs and operating method thereof | |
US11150842B1 (en) | Dynamic memory controller and method for use therewith | |
CN112631822A (zh) | 存储器、具有其的存储系统及其操作方法 | |
US20100306449A1 (en) | Transportable Cache Module for a Host-Based Raid Controller | |
US20140359263A1 (en) | Boot from logical volume spanning plurality of pci devices | |
US20220011939A1 (en) | Technologies for memory mirroring across an interconnect | |
US11650925B2 (en) | Memory interface management | |
KR20150072485A (ko) | 데이터 저장 장치 및 그것의 동작 방법 |
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 |