CN111819548A - 存储器的部分保存 - Google Patents

存储器的部分保存 Download PDF

Info

Publication number
CN111819548A
CN111819548A CN201980017257.9A CN201980017257A CN111819548A CN 111819548 A CN111819548 A CN 111819548A CN 201980017257 A CN201980017257 A CN 201980017257A CN 111819548 A CN111819548 A CN 111819548A
Authority
CN
China
Prior art keywords
memory
volatile
random access
dynamic random
access memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980017257.9A
Other languages
English (en)
Inventor
J·J·莱德
N·A·埃克尔
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN111819548A publication Critical patent/CN111819548A/zh
Pending legal-status Critical Current

Links

Images

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/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/0647Migration mechanisms
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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
    • 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/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Abstract

各种应用可包含在例如非易失性双列直插存储器模块的设备中的存储器的部分保存的系统及/或方法。在各个实施例中,非易失性双列直插存储器模块的一组控制寄存器可经配置以含有将内容从其备份到所述非易失性双列直插存储器模块的非易失性存储器的所述非易失性双列直插存储器模块的动态随机存取存储器的一部分的标识。所述一组控制寄存器的寄存器还可经分配以含有内容量以从所述动态随机存取存储器内容传送到所述非易失性存储器。揭示了额外设备、系统及方法。

Description

存储器的部分保存
优先权申请案
本申请案主张2018年8月27日申请的序列号为16/113,221的美国专利申请案的优先权的权益,所述申请案主张2018年2月8日申请的序列号为62/628,157的美国临时申请案的优先权的权益,所述申请案中的每一者的全部内容以引用的方式并入本文中。
技术领域
本发明的实施例大体上涉及存储器子系统,且更具体来说,涉及管理包含存储器的部分保存的存储器子系统。
背景技术
存储器子系统可为存储系统,例如非易失性双列直插存储器模块(NVDIMM),且可包含存储数据的一或多个存储器组件。存储器组件可为(例如)非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统以将数据存储于存储器组件处且从存储器组件检索数据。
附图说明
从下文给出的详细描述且从本发明的各个实施例的所附图式,将更完全理解本发明。然而,不应将图式视为将本发明限于特定实施例,而仅是为了解释及理解。
图1说明根据各个实施例的包含存储器子系统的实例计算环境。
图2是根据各个实施例的经结构化具有一组控制寄存器以提供执行从易失性存储器到非易失性存储器的部分保存及从非易失性存储器返回到易失性存储器的对应恢复的能力的实例非易失性双列直插存储器模块的框图。
图3是根据各个实施例的非易失性双列直插存储器模块中的一组寄存器的实例的表示。
图4是根据各个实施例的具有已从易失性存储器移动到非易失性双列直插存储器模块中的非易失性存储器的用户数据与额外数据的片段的表示。
图5是根据各个实施例的准备非易失性双列直插存储器模块以进行部分存储器保存的实例方法的特征的流程图。
图6是根据各个实施例的进行非易失性双列直插存储器模块中的存储器的部分保存的实例方法的特征的流程图。
图7是根据各个实施例的主机准备非易失性双列直插存储器模块以进行部分存储器保存的实例方法的特征的流程图。
图8是其中本发明的实施例可操作的实例计算机系统的框图。
具体实施方式
本发明的方面涉及管理存储器子系统,所述管理包含实施部分存储器保存。存储器子系统此后也可称为“存储器装置”。存储器子系统的实例是存储系统,例如非易失性双列直插存储器模块(NVDIMM)。在一些实施例中,存储器子系统是混合存储器/存储器子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储于存储器子系统处的数据且可请求从存储器子系统检索数据。
非易失性双列直插存储器模块(NVDIMM)是一种类型的随机存取存储器,其具有用于正常操作的易失性存储器及其中在电源失效的情况下使用机载备用电源转储易失性存储器的内容的非易失性存储器。NVDIMM-N是通常在相同模块上具有快闪存储器及传统动态随机存取存储器(DRAM)的双列直插存储器模块(DIMM)。主机处理单元可直接存取传统DRAM。相对于存储器单元,主机可经结构化为响应于由主机运行的应用程序而控制数据出入存储器单元的一或多个处理器。在电源失效的事件中,NVDIMM-N将全部数据从其易失性传统DRAM或DRAM组复制到其永久性快闪存储器且在电源恢复时将全部数据复制回到易失性传统DRAM或DRAM组。可在电力循环上执行将全部DRAM数据的状态转换为永久性快闪存储器上的永久性数据。NVDIMM具有其自身的电池备用电源或可接取专属电源以允许NVDIMM完成保存。
在各个实施例中,在NVDIMM中的一组控制寄存器可经实施以提供NVDIMM中的存储器到非易失性存储器的部分保存,其中“存储器”是指NVDIMM的主存储器。主存储器是存储用户数据的易失性存储器,例如DRAM。所述一组控制寄存器可提供用于通过含有易失性存储器的一部分的起始偏移以识别保存操作的开始且通过含有待保存的非易失性存储器的内容量而进行部分保存的机制。主机可将保存操作的开始的标识及用于保存操作的内容量填入NVDIMM中的所述一组控制寄存器。此组控制寄存器还可控制将部分保存恢复回到NVDIMM的易失性存储器的反向操作。用于维持存储于NVDIMM上的数据的此结构对主机提供相对于主机正在处理的应用程序处置用户数据的额外灵活性。对主机提供存取以在任何偏移处执行完整内容或一部分内容保存。此可为主机提供具有对所保存及恢复的内容的更好控制及更多控制的能力。
图1说明根据本发明的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可为易失性存储器组件、非易失性存储器组件或此类的组合。在一些实施例中,存储器子系统110是存储系统。存储系统的实例是NVDIMM。在一些实施例中,存储器子系统110是混合存储器/存储器子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。例如,主机系统120可将数据写入到存储器子系统110且从存储器子系统110读取数据。
主机系统120可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此计算装置。主机系统120可包含或耦合到存储器子系统110使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中使用,“耦合到”通常是指组件之间的连接,所述连接可为有线或无线的间接通信连接或直接通信连接(例如,无中间组件),包含例如电、光学、磁性等的连接。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件快速互连(PCIe)接口、通用串行总线(USB)接口、光纤信道、串行附接SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口以在存储器子系统110通过PCIe接口与主机系统120耦合时存取存储器组件112A到112N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。
存储器组件112A到112N可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含“与非”(NAND)型闪存。存储器组件112A到112N中的每一者可包含一或多个存储器单元阵列,例如单电平单元(SLC)或多电平单元(MLC)(例如,三电平单元(TLC)或四电平单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分及MLC部分两者。存储器单元中的每一者可存储由主机系统120使用的数据(例如,数据块)的一或多个位。虽然描述非易失性存储器组件(例如NAND型闪存),但存储器组件112A到112N可为基于任何其它类型的存储器(例如易失性存储器)。在一些实施例中,存储器组件112A到112N可为(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁性随机存取存储器(MRAM)、“或非”(NOR)闪存、电可擦除可编程只读存储器(EEPROM)及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可基于体电阻的改变而结合可堆叠交叉栅格数据存取阵列执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原地写入操作,其中可在先前未擦除非易失性存储器单元的情况下编程所述非易失性存储器单元。此外,存储器组件112A到112N的存储器单元可分组为可为指用于存储数据的存储器组件的单元的存储器页或数据块。
存储器系统控制器115(下文称为“控制器”)可与存储器组件112A到112N通信以执行操作,例如在存储器组件112A到112N处读取数据、写入数据或擦除数据及其它此类操作。控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它适合处理器。控制器115可包含经配置以执行存储于本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行各种程序、操作、逻辑流程的指令及控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的例程。在一些实施例中,本地存储器119可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。
一般来说,控制器115可从主机系统120接收命令或操作且可将命令或操作转换为指令或适当命令以达成对存储器组件112A到112N的所要存取。控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、快取操作及逻辑块地址与相关联于存储器组件112A到112N的物理块地址之间的地址转译。控制器115可进一步包含主机接口电路以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收的命令转换为命令指令以存取存储器组件112A到112N,以及将与存储器组件112A到112N相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)及可从控制器115接收地址且解码地址以存取存储器组件112A到112N的地址电路(例如,行解码器及列解码器)。
存储器子系统110包含可用于执行存储器的部分保存的存储器保存组件113。存储器保存组件113可包含由处理器117执行的指令。此类指令可包含于用于操作控制器115的微码中。存储器保存组件113可用于接收到非易失性存储器的保存操作从其开始的动态随机存取存储器的一部分的起始偏移及待保存的内容量,且加载起始偏移及所述内容量以保存到非易失性双列直插存储器模块的一组寄存器中。存储器保存组件113还可用于响应于发生关于可操作地耦合到存储器子系统110的主机120的主机相关事件而基于加载到所述一组寄存器中的起始偏移及所述内容量而将动态随机存取存储器的部分的内容保存到非易失性存储器中。与主机120相关的事件可为主机的电力中断。在下文描述关于类似于存储器保存组件113的存储器保存组件的操作的另外的细节。
图2是经结构化具有一组控制寄存器209以提供执行从易失性存储器205到非易失性存储器(NVM)212的部分保存及从NVM 212返回到易失性存储器205的对应恢复的能力的实例NVDIMM-N 200的实施例的框图。易失性存储器205可由可布置为一组DRAM装置以存储用户数据的DRAM 205实现,且NVM 212可经布置以备份动态随机存取存储器的内容。NVM212可实现为NAND闪存。所述一组控制寄存器209可经配置以含有将内容从其备份到NVM212的DRAM 205的一部分的标识。NVDIMM-N 200可经结构化为标准平台DIMM 210,其中DRAM205及NVM 212集成于DIMM 210上。所述一组控制寄存器209可持续通过电力循环。
在传统操作中,当主机电力中断时,NVDIMM-N 200可使用由NVDIMM-N 200凭借能量源控制件240管理的能量源245或使用由主机220经由V_12接脚244管理的能量源243执行灾难保存操作以将DRAM 205内容复制到NVM 212中。save_n接脚上的save_n信号可起始灾难保存操作。如果某事未成功完成,那么NVDIMM-N 200可经由event_n通知主机220。完成是可经由集成电路间(I2C)总线242读取的配置中的状态。所述一组控制寄存器209可包含用于从主机220从I2C总线242接收消息的寄存器。
所述一组控制寄存器209可布置于控制器215中或与控制器215分开布置于NVDIMM-N 200上。控制器215可包含用于控制关于NVM 212的操作的非易失性存储器控制器(NVM控制器)234及用于控制关于DRAM 205的操作的存储器控制器232。控制器215可包含结合控制器215的指令以控制数据从DRAM 205到NVM 212及从NVM 212返回到DRAM 205的传送的处理电路。这些指令可实现于存储器保存组件213(例如存储器保存组件213中的微码)中。替代地,这些指令可在控制器215外部存储于DIMM 210上。此类指令可包含于控制器固件中,所述指令包括在通过对应控制器执行时可引起控制器希望执行的操作的执行的指令,例如微码。所述一组控制寄存器209可经配置以含有到NVM 212的保存操作从其开始的DRAM 205的部分的起始偏移及待保存的内容量。所述一组寄存器209中的寄存器可经分配用于关于从DRAM 205到NVM 212的存储器的部分保存的操作。
NVDIMM-N 200可为可操作以在非断电模式中将DRAM 205的经识别部分的内容存储于NVM 212中。非断电模式是其中系统正在运行而未检测电力中断或即将发生的电力中断的模式。在非断电模式中,主机220启动并运行且可经操作以使用NVDIMM-N 200的能力进行存储器的部分保存。主机220可具备在主机启动并运行时的任何时间而非仅在电力循环时将主存储器的部分存储到非易失性空间的能力。主机220可经由I2C总线242使用消息通信以通知控制器215将存储区域(其为易失性的)中的数据的选定部分存储到非易失性存储器的区域中且随后,恢复数据的所述选定部分。
主机220可具有命令集,所述命令集包含到NVDIMM-N 200的用于在非断电模式中使用主机220将DRAM 205的经识别部分的内容存储到NVM 212的命令。控制器215可经配置以执行从主机220接收的命令,所述命令可经由I2C总线242接收。主机220可具有与NVDIMM-N 200的应用程序编程接口(API)以指定到NVM 212的保存操作从其开始的DRAM 205的部分中的起始偏移及待保存的内容量以加载到所述一组控制寄存器209中。API是指定软件组件应交互的方式的例程、协议及工具的集合。起始偏移可呈起始地址位、地址指针的形式或用于识别起始位置的其它格式。主机220还可使用指定待存储的数据的范围长度的API。
地址映射与部分保存相关联。地址映射将经保存的数据的逻辑地址映射到其物理位置。地址映射逻辑可安置于NVC中的NVM控制器234中,使得基本输入/输出系统(BIOS)可在NVM控制器234中设置与主机220的映射相同的映射。BIOS是用于在开机过程(其为电力开启起动)期间执行硬件初始化的非易失性固件。BIOS可提供用于操作系统及程序的运行时间服务。与部分保存相关联的逻辑地址到物理位置映射可由BIOS在开机期间载入。可多路复用地址位以在保存起始位置及长度中选择列/行/库/库群组。
NVDIMM-N 200可为可操作以在耦合到NVDIMM-N 200的主机220的电力中断或电力中断的检测之后将DRAM 205的经识别部分的内容存储于NVM 212中。NVDIMM-N 200还可为可操作以在电力恢复之后将存储于NVM 212中的DRAM 205的经识别部分的内容恢复回到DRAM 205的经识别部分。
图3是NVDIMM中的一组寄存器309的实例的实施例的表示。例如,NVDIMM可为图2的NVDIMM-N 200。所述一组寄存器309可包含提供从易失性存储器到非易失性存储器的保存的起始位置的标识的数个位置寄存器311-1、311-2、...、311-N。具有数个位置寄存器提供存储器的部分保存,其中部分保存包含经保存的易失性存储器的一部分的不同片段。针对N个片段,将存在起始位置1、起始位置2、...、起始位置N。每一起始位置可由偏移、地址、地址指针或其它值或将识别保存操作的起始位置的值的组合提供。
将指定待从每一起始位置保存的数据量的内容量寄存器314-1、314-2、...、314-N与位置寄存器311-1、311-2、...、311-N相关联。由于这些寄存器与部分保存事件相关联,所以内容量寄存器314-1、314-2、...、314-N可称为部分保存长度寄存器314-1、314-2、...、314-N。寄存器311-1、311-2、...、311-N及314-1、314-2、...、314-N可以数个不同格式布置。例如,所述一组控制寄存器309可包含多对寄存器,每一对寄存器经配置以含有针对动态随机存取存储器的部分的不同片段的起始偏移及待保存的内容量。一对此类寄存器的实例是寄存器311-2及寄存器314-2。可多路复用与逻辑地址到物理位置映射相关联的地址位以在保存起始位置及长度中选择列/行/库/库群组。
NVDIMM可经配置以在一或多个部分保存长度寄存器已经为用于停用部分保存的定义值时,停用部分保存且备份动态随机存取存储器的全部以供存储及恢复。定义值可为表示待保存的存储器的全容量的数字,其可消除针对指定内容量在特定位置处起始的程序。替代地,用于停用部分保存的定义值可为零,这是因为不存在部分保存。
图4是具有已从易失性存储器移动到NVDIMM中的非易失性存储器的用户数据416与额外数据414-1及414-2的片段400的表示。例如,NVDIMM可为图2的NVDIMM-N200。NVDIMM可存储来自动态随机存取存储器的部分的用户数据的片段,其中每一片段包含与相应片段的用户数据相关的错误校正码数据及内部路由数据。可将错误校正码数据及内部路由数据划分为两个部分414-1及414-2,其中所述两个部分414-1及414-2存储于每一相应片段的连续存储区域的相对端处。
图5是准备非易失性双列直插存储器模块以进行部分存储器保存的实例方法500的实施例的特征的流程图。方法500或类似于方法500的方法可部署于图2的实例NVDIMM-N200上且因此,仅参考其通过实例描述。将了解,方法500或类似于方法500的方法可部署于其它硬件配置上。同样地,图2的实例NVDIMM-N 200可用于部署用于准备非易失性双列直插存储器模块以进行部分存储器保存的其它方法。在操作510处,接收到非易失性存储器的保存操作从其开始的动态随机存取存储器的一部分的起始偏移及待保存的内容量。动态随机存取存储器及非易失性存储器经安置于非易失性双列直插存储器模块(例如图2的NVDIMM-N 200)中。起始偏移及待保存的内容量可通过NVDIMM-N 200经由I2C总线242从主机220接收。
在操作520处,将起始偏移及待保存的内容量加载到非易失性双列直插存储器模块的一组寄存器(例如,NVDIMM-N 200的所述一组寄存器209)中。在操作530处,响应于发生关于可操作地耦合到非易失性双列直插存储器模块的主机的主机相关事件而基于加载到所述一组寄存器中的起始偏移及所述内容量将动态随机存取存储器的部分的内容保存到非易失性存储器中。主机相关事件可为主机(例如NVDIMM-N 200的主机220)的电力中断。可经由save_n输入将此电力中断传达到NVDIMM-N 200。主机相关事件可为从主机(例如主机220经由图2的I2C总线242)接收引导非易失性双列直插存储器模块的控制器(例如控制器215)将动态随机存取存储器的部分的内容保存到非易失性存储器中的消息。
方法500或类似于方法500的方法的变化可包含可取决于此类方法的应用及/或其中实施此类方法的系统的架构而组合的数项不同实施例。方法500或类似于方法500的方法的变化可包含操作非易失性双列直插存储器模块以进行部分存储器保存,如本文中教示。此类方法可包含基于加载到所述一组寄存器中的起始偏移及所述内容量而将保存到非易失性存储器中的动态随机存取存储器的部分的内容恢复回到动态随机存取存储器的部分中。方法的此类变化可包含基于与用户数据一起存储的内部路由数据将保存到非易失性存储器中的动态随机存取存储器的部分的内容恢复回到动态随机存取存储器的部分中,所述用户数据是来自动态随机存取存储器的部分而保存到非易失性存储器中的内容。
图6是进行非易失性双列直插存储器模块中的存储器的部分保存的实例方法600的实施例的特征的流程图。方法600或类似于方法600的方法可部署于图2的实例NVDIMM-N200上且因此,仅参考其通过实例描述。将了解,方法600或类似于方法600的方法可部署于其它硬件配置上。同样地,图2的实例NVDIMM-N 200可用于部署用于准备非易失性双列直插存储器模块以进行部分存储器保存的其它方法。在操作610处,接收用于将非易失性双列直插存储器模块的动态随机存取存储器的一部分的内容保存到非易失性双列直插存储器模块的非易失性存储器中的触发。例如,触发可为在图2的架构中从主机220到控制器215的信号save_n。替代地,触发可为在图2的架构中经由I2C总线242从主机220到NVDIMM-N 200的消息。
在操作620处,存取非易失性双列直插存储器模块的一组寄存器且确定从其开始动态随机存取存储器的部分的内容的保存的动态随机存取存储器的部分的起始偏移。例如,在图2的架构中,可通过执行控制器215而存取NVDIMM-N 200的所述一组寄存器209。起始偏移的确定可包含读取所述一组寄存器或读取所述一组寄存器且将关于起始位置的读取数据转译为适当起始位置。存取所述一组寄存器且确定起始偏移可包含存取所述一组寄存器的多个寄存器以获得多个起始偏移,与部分的片段相关的每一起始偏移不同于所获得的其它起始偏移。可响应于来自产生偏移的主机的信号而基于针对相应片段获得的起始偏移恢复动态随机存取存储器的部分的每一片段。
在操作630处,确定关于起始偏移的来自所述一组寄存器中的部分保存长度寄存器的待保存的内容量。确定待存储的所述内容量可包含确定当部分保存长度寄存器具有用于停用部分保存的定义值时,待存储的所述内容量包含动态随机存取存储器的全部。定义值可为用于识别无部分保存的零或用于识别全存储器的保存的某一其它值。
在操作640处,基于存取所述一组寄存器而将动态随机存取存储器的部分的内容保存到非易失性存储器中。方法600或类似于方法600的方法的变化可包含可取决于此类方法的应用及/或其中实施此类方法的系统的架构而组合的数项不同实施例。方法600或类似于方法600的方法的变化可包含操作非易失性双列直插存储器模块以进行部分存储器保存,如本文中教示。
图7是主机准备非易失性双列直插存储器模块以进行部分存储器保存的实例方法700的实施例的特征的流程图。方法700或类似于方法700的方法可部署于图2的实例NVDIMM-N 200上且因此,仅参考其通过实例描述。将了解,方法700或类似于方法700的方法可部署于其它硬件配置上。同样地,图1的实例NVDIMM-N 200可用于部署用于准备非易失性双列直插存储器模块以进行部分存储器保存的其它方法。在操作710处,在主机中,确定待保存到非易失性双列直插存储器模块的非易失性存储器中的非易失性双列直插存储器模块的动态随机存取存储器的一部分的内容,其中主机可操作地耦合到非易失性双列直插存储器模块。例如,主机可为可操作地耦合到图2的NVDIMM-N 200的主机220。待保存于非易失性双列直插存储器模块中的存储器中的内容的确定可为主机提供具有对所保存及恢复的内容的更好控制及更多控制的能力。
在操作720处,在主机中,确定从其开始动态随机存取存储器的部分的内容的保存的动态随机存取存储器的部分的起始偏移。在操作730处,在主机中,确定用于自动态随机存取存储器保存到非易失性存储器的内容量。在操作740处,将起始偏移及所述内容量从主机加载到非易失性双列直插存储器模块的一组控制寄存器中。从主机加载起始偏移及所述内容量可包含使用主机与非易失性双列直插存储器模块之间的应用程序编程接口。
方法700或类似于方法700的方法的变化可包含可取决于此类方法的应用及/或其中实施此类方法的系统的架构而组合的数个不同实施例。方法700或类似于方法700的方法的变化可包含操作非易失性双列直插存储器模块以进行部分存储器保存,如本文中教示。此类方法可包含由主机通过凭借用于停用部分保存的定义值加载所述一组寄存器的部分保存长度寄存器而停用动态随机存取存储器的部分保存。此类方法可包含在主机中产生消息且将消息发送到非易失性双列直插存储器模块的控制器以将在部分保存中保存到非易失性存储器的内容恢复回到动态随机存取存储器。
在各个实施例中,非易失性双列直插存储器模块包括:动态随机存取存储器,其经布置以存储用户数据;非易失性存储器,其经布置以备份动态随机存取存储器的内容;及一组控制寄存器,其经配置以含有将内容从其备份到非易失性存储器的动态随机存取存储器的一部分的标识。所述一组控制寄存器可经配置以含有到非易失性存储器的保存操作从其开始的动态随机存取存储器的部分的起始偏移及待保存的内容量。所述一组控制寄存器可含有部分保存长度寄存器。非易失性双列直插存储器模块可经配置以在部分保存长度寄存器具有用于停用部分保存的定义值时,停用部分保存且备份动态随机存取存储器的全部以供保存及恢复。用于停用部分保存的定义值可为零。
非易失性双列直插存储器模块可经布置以可操作以在非断电模式中将动态随机存取存储器的经识别部分的内容存储于非易失性存储器中。非易失性双列直插存储器模块可经布置以可操作以在耦合到非易失性双列直插存储器模块的主机的电力中断或电力中断的检测之后将动态随机存取存储器的经识别部分的内容存储于非易失性存储器中。非易失性双列直插存储器模块可经布置以可操作以在电力恢复之后将存储于非易失性存储器中的动态随机存取存储器的经识别部分的内容恢复回到动态随机存取存储器的经识别部分。非易失性双列直插存储器模块可包含如本文中教示的各种特征或特征的组合。
在各个实施例中,系统包括:主机;及非易失性双列直插存储器模块,其可操作地耦合到所述主机,其中所述非易失性双列直插存储器模块包含:动态随机存取存储器,其经布置以存储用户数据;非易失性存储器,其经布置以备份动态随机存取存储器的内容;控制器,其控制所述动态随机存取存储器及所述非易失性存储器;及一组控制寄存器,其经配置以含有将内容从其备份到非易失性存储器的动态随机存取存储器的一部分的标识。主机可具有与非易失性双列直插存储器模块的应用程序编程接口以指定到非易失性存储器的保存操作从其开始的动态随机存取存储器的部分中的起始偏移及待保存的内容量以加载到所述一组控制寄存器中。主机可具有命令集,所述命令集包含到非易失性双列直插存储器模块的用于在非断电模式中使用主机将动态随机存取存储器的经识别部分的内容存储于非易失性存储器中的命令。控制器可经配置以执行从主机接收的命令。
所述一组控制寄存器可包含多对寄存器,其中每一对寄存器经配置以含有针对动态随机存取存储器的部分的不同片段的起始偏移及待保存的内容量。非易失性存储器可存储来自动态随机存取存储器的部分的用户数据的片段,每一片段包含与相应片段的用户数据相关的错误校正码数据及内部路由数据。可将错误校正码数据及内部路由数据划分为两个部分,其中所述两个部分存储于每一相应片段的连续存储区域的相对端处。系统可包含如本文中教示的各种特征或特征的组合。
图8说明在其内可执行用于引起机器执行本文中论述的任何一或多个方法论的指令集的计算机系统800的实例机器。在一些实施例中,计算机系统800可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的存储器保存组件113或如本文中教示的其它存储器保存组件的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内部网络、商际网络或因特网中的其它机器。机器可以服务器或客户端机器的身份在客户端-服务器网络环境中操作,或作为同级机器在同级间(或分布式)网络环境中操作,或作为服务器或客户端机器在云端计算基础设施或环境中操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网页设备、服务器、网络路由器、交换器或网桥,或能够执行指定应由所述机器采取的动作的指令集(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但术语“机器”还应视为包含个别地或联合地执行一组(或多组)指令以执行本文中论述的方法论中的任何一或多者的机器的任何集合。
实例计算机系统800包含处理装置802、主存储器804(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或注册DRAM(RDRAM)等)、可存储BIOS 807的静态存储器806(例如,闪存、静态随机存取存储器(SRAM)等)及数据存储系统818,其经由总线830彼此通信。
处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置802还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置802经配置以执行用于执行本文中论述的操作及步骤的指令826。计算机系统800可进一步包含用于经由网络820通信的网络接口装置808。
数据存储系统818可包含机器可读存储媒体824(也称为计算机可读媒体),其上存储器现本文中描述的方法论或功能中的任何一或多者的指令826或软件的一或多个集合。指令826在其通过计算机系统800执行期间还可完全或至少部分驻留于主存储器804内及/或处理装置802内,主存储器804及处理装置802还构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818及/或主存储器804可对应于图1的存储器子系统110。
在一个实施例中,指令826包含用于实施存储器保存组件813(其可类似于图1的存储器保存组件113)的功能性的指令。虽然在实例实施例中将机器可读存储媒体824展示为单一媒体,但术语“机器可读存储媒体”应视为包含存储一或多个指令集的单一媒体或多个媒体。术语“计算机可读存储媒体”还应视为包含能够存储或编码指令集以由机器执行且引起所述机器执行本发明的方法论中的任何一或多者的任何媒体。因此,术语“计算机可读存储媒体”应视为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已依据对计算机存储器内的数据位的操作的算法及符号表示呈现先前详细描述的一些部分。这些算法描述及表示是由数据处理领域的技术人员使用以将其工作主旨最有效地传达给其它所属领域的技术人员的手段。算法在此且通常被视为导致所要结果的从行一致操作序列。所述操作是需要物理量的物理操纵的操作。这些量通常(但不一定)采取能够经存储组合、比较及以其它方式操纵的电或磁性信号的形式。已证明,有时(主要因通用之故),将此类信号称为位、值、元件、符号、字符、术语、数字或类似者是方便的。以下是根据本文中的教示的方法、设备及系统的实例实施例。
实例非易失性双列直插存储器模块1可包括:动态随机存取存储器,其经布置以存储用户数据;非易失性存储器,其经布置以备份所述动态随机存取存储器的内容;及一组控制寄存器,其经配置以含有将内容从其备份到所述非易失性存储器的所述动态随机存取存储器的一部分的标识。
实例非易失性双列直插存储器模块2可包括实例非易失性双列直插存储器模块1的元件,其中所述一组控制寄存器经配置以含有到所述非易失性存储器的保存操作从其开始的所述动态随机存取存储器的所述部分的起始偏移及待保存的内容量。
实例非易失性双列直插存储器模块3可包括任何前述实例非易失性双列直插存储器模块的元件,其中所述非易失性双列直插存储器模块可操作以在非断电模式中将所述动态随机存取存储器的所述经识别部分的所述内容存储于所述非易失性存储器中。
实例非易失性双列直插存储器模块4可包括任何前述实例非易失性双列直插存储器模块的元件,其中所述非易失性双列直插存储器模块可操作以在耦合到所述非易失性双列直插存储器模块的主机的电力中断或电力中断的检测之后将所述动态随机存取存储器的所述经识别部分的所述内容存储于所述非易失性存储器中。
实例非易失性双列直插存储器模块5可包括任何前述实例非易失性双列直插存储器模块的元件,其中所述非易失性双列直插存储器模块可操作以在电力恢复之后将存储于所述非易失性存储器中的所述动态随机存取存储器的所述经识别部分的所述内容恢复回到所述动态随机存取存储器的所述经识别部分。
实例非易失性双列直插存储器模块6可包括任何前述实例非易失性双列直插存储器模块的元件,其中所述一组控制寄存器含有部分保存长度寄存器且所述非易失性双列直插存储器模块经配置以在所述部分保存长度寄存器具有用于停用部分保存的定义值时,停用部分存储且备份所述动态随机存取存储器的全部以供存储及恢复。
实例非易失性双列直插存储器模块3可包括任何前述实例非易失性双列直插存储器模块的元件,其中用于停用部分保存的所述定义值是零。
一种实例系统1可包括:主机;及非易失性双列直插存储器模块,其可操作地耦合到所述主机,所述非易失性双列直插存储器模块包含:动态随机存取存储器,其经布置以存储用户数据;非易失性存储器,其经布置以备份所述动态随机存取存储器的内容;控制器,其控制所述动态随机存取存储器及所述非易失性存储器;及一组控制寄存器,其经配置以含有将内容从其备份到所述非易失性存储器的所述动态随机存取存储器的一部分的标识。
实例系统2可包括实例系统1的元件,其中所述主机具有与所述非易失性双列直插存储器模块的应用程序编程接口以指定到所述非易失性存储器的保存操作从其开始的所述动态随机存取存储器的所述部分中的起始偏移及待保存的内容量以加载到所述一组控制寄存器中。
实例系统3可包括任何前述实例系统的元件,其中所述主机具有命令集,所述命令集包括到所述非易失性双列直插存储器模块的用于在非断电模式中使用所述主机将所述动态随机存取存储器的所述经识别部分的所述内容存储于所述非易失性存储器中的命令。
实例系统4可包括任何前述实例系统的元件,其中所述控制器经配置以执行从所述主机接收的所述命令。
实例系统5可包括任何前述实例系统的元件,其中所述一组控制寄存器包括多对寄存器,每一对寄存器经配置以含有针对所述动态随机存取存储器的所述部分的不同片段的起始偏移及待保存的内容量。
实例系统6可包括任何前述实例系统的元件,其中所述非易失性存储器存储来自所述动态随机存取存储器的所述部分的用户数据的片段,每一片段包含与所述相应片段的所述用户数据相关的错误校正码数据及内部路由数据。
实例系统7可包括任何前述实例系统的元件,其中将所述错误校正码数据及所述内部路由数据划分为两个部分,其中所述两个部分存储于每一相应片段的连续存储区域的相对端处。
实例方法1可包括:接收到非易失性存储器的保存操作从其开始的动态随机存取存储器的一部分的起始偏移及待保存的内容量,所述动态随机存取存储器及所述非易失性存储器安置于非易失性双列直插存储器模块中;将所述起始偏移及待保存的所述内容量加载到所述非易失性双列直插存储器模块的一组寄存器中;及响应于发生关于可操作地耦合到所述非易失性双列直插存储器模块的主机的主机相关事件而基于加载到所述一组寄存器中的所述起始偏移及所述内容量将所述动态随机存取存储器的所述部分的内容保存到所述非易失性存储器中。
实例方法2可包括实例方法1的元件,其中所述主机相关事件是所述主机的电力中断。
实例方法3可包括任何前述实例方法的元件,其进一步包括基于加载到所述一组寄存器中的所述起始偏移及所述内容量而将保存到所述非易失性存储器中的所述动态随机存取存储器的所述部分的所述内容恢复回到所述动态随机存取存储器的所述部分中。
实例方法4可包括任何前述实例方法的元件,其中其进一步包括基于与用户数据一起存储的内部路由数据将保存到所述非易失性存储器中的所述动态随机存取存储器的所述部分的所述内容恢复回到所述动态随机存取存储器的所述部分中,所述用户数据是来自所述动态随机存取存储器的所述部分而保存到所述非易失性存储器中的内容。
实例方法5可包括任何前述实例方法的元件,其中所述主机相关事件是从所述主机接收引导所述非易失性双列直插存储器模块的控制器将所述动态随机存取存储器的所述部分的所述内容保存到所述非易失性存储器中的消息。
实例方法6可包括:接收用于将非易失性双列直插存储器模块的动态随机存取存储器的一部分的内容保存到非易失性双列直插存储器模块的非易失性存储器中的触发;存取所述非易失性双列直插存储器模块的一组寄存器且确定从其开始动态随机存取存储器的所述部分的所述内容的所述保存的动态随机存取存储器的所述部分的起始偏移;确定关于所述起始偏移的来自所述一组寄存器中的部分保存长度寄存器的待保存的内容量;及基于存取所述一组寄存器而将所述动态随机存取存储器的所述部分的所述内容保存到所述非易失性存储器中。
实例方法7可包括实例方法6的元件,其中存取所述一组寄存器且确定所述起始偏移包括存取所述一组寄存器的多个寄存器以获得多个起始偏移,与所述部分的片段相关的每一起始偏移不同于所获得的其它起始偏移。
实例方法8可包括任何前述实例方法6及7的元件,其进一步包括响应于来自产生所述偏移的主机的信号而基于针对所述相应片段获得的所述起始偏移恢复所述动态随机存取存储器的所述部分的每一片段。
实例方法9可包括任何前述实例方法6到8所述的元件,其中确定待保存的所述内容量包括确定当所述部分保存长度寄存器具有用于停用部分保存的定义值时,待存储的所述内容量包括所述动态随机存取存储器的全部。
实例方法10可包括:在主机中,确定待保存到非易失性双列直插存储器模块的非易失性存储器中的所述非易失性双列直插存储器模块的动态随机存取存储器的一部分的内容,所述主机可操作地耦合到所述非易失性双列直插存储器模块;在所述主机中,确定从其开始动态随机存取存储器的所述部分的所述内容的所述保存的动态随机存取存储器的所述部分的起始偏移;在所述主机中,确定用于从所述动态随机存取存储器保存到所述非易失性存储器的内容量;及将所述起始偏移及所述内容量从所述主机加载到所述非易失性双列直插存储器模块的一组控制寄存器中。
实例方法11可包括实例方法10的元件,其进一步包括由所述主机通过凭借用于停用部分保存的定义值加载所述一组寄存器的部分保存长度寄存器而停用所述动态随机存取存储器的部分保存。
实例方法12可包括任何前述实例方法10及11的元件,其进一步包括在所述主机中产生消息且将所述消息发送到所述非易失性双列直插存储器模块的控制器以将在部分保存中保存到所述非易失性存储器的内容恢复回到所述动态随机存取存储器。
实例方法13可包括任何前述实例方法10到12所述的元件,其中从所述主机加载所述起始偏移及所述内容量包括使用所述主机与所述非易失性双列直插存储器模块之间的应用程序编程接口。
虽然已在本文中说明且描述特定实施例,但所属领域的一般技术人员将了解,从本文中的教示导出的其它布置可取代所展示的特定实施例。各个实施例使用本文中描述的实施例的排列及/或组合。应理解,上文的描述希望为阐释性,且非限制性,且本文中采用的词组或术语是为了描述的目的。所属领域的技术人员在研究上述描述后将明白上述实施例的组合及其它实施例。

Claims (20)

1.一种非易失性双列直插存储器模块,其包括:
动态随机存取存储器,其经布置以存储用户数据;
非易失性存储器,其经布置以备份所述动态随机存取存储器的内容;及
一组控制寄存器,其经配置以含有将内容从其备份到所述非易失性存储器的所述动态随机存取存储器的一部分的标识。
2.根据权利要求1所述的非易失性双列直插存储器模块,其中所述一组控制寄存器经配置以含有到所述非易失性存储器的保存操作从其开始的所述动态随机存取存储器的所述部分的起始偏移及待保存的内容量。
3.根据权利要求1所述的非易失性双列直插存储器模块,其中所述非易失性双列直插存储器模块能够操作以在非断电模式中将所述动态随机存取存储器的所述经识别部分的所述内容存储于所述非易失性存储器中。
4.根据权利要求1所述的非易失性双列直插存储器模块,其中所述非易失性双列直插存储器模块能够操作以在耦合到所述非易失性双列直插存储器模块的主机的电力中断或电力中断的检测之后将所述动态随机存取存储器的所述经识别部分的所述内容存储于所述非易失性存储器中。
5.根据权利要求4所述的非易失性双列直插存储器模块,其中所述非易失性双列直插存储器模块能够操作以在电力恢复之后将存储于所述非易失性存储器中的所述动态随机存取存储器的所述经识别部分的所述内容恢复回到所述动态随机存取存储器的所述经识别部分。
6.根据权利要求1所述的非易失性双列直插存储器模块,其中所述一组控制寄存器含有部分保存长度寄存器,且所述非易失性双列直插存储器模块经配置以在所述部分保存长度寄存器具有用于停用部分保存的定义值时,停用部分保存且备份所述动态随机存取存储器的全部以供保存及恢复。
7.根据权利要求6所述的非易失性双列直插存储器模块,其中用于停用部分保存的所述定义值是零。
8.一种方法,其包括:
接收到非易失性存储器的保存操作从其开始的动态随机存取存储器的一部分的起始偏移及待保存的内容量,所述动态随机存取存储器及所述非易失性存储器安置于非易失性双列直插存储器模块中;
将所述起始偏移及待保存的所述内容量加载到所述非易失性双列直插存储器模块的一组寄存器中;及
响应于发生关于可操作地耦合到所述非易失性双列直插存储器模块的主机的主机相关事件而基于加载到所述一组寄存器中的所述起始偏移及所述内容量将所述动态随机存取存储器的所述部分的内容保存到所述非易失性存储器中。
9.根据权利要求8所述的方法,其中所述主机相关事件是所述主机的电力中断。
10.根据权利要求9所述的方法,其进一步包括基于加载到所述一组寄存器中的所述起始偏移及所述内容量而将保存到所述非易失性存储器中的所述动态随机存取存储器的所述部分的所述内容恢复回到所述动态随机存取存储器的所述部分中。
11.根据权利要求9所述的方法,其进一步包括基于与用户数据一起存储的内部路由数据将保存到所述非易失性存储器中的所述动态随机存取存储器的所述部分的所述内容恢复回到所述动态随机存取存储器的所述部分中,所述用户数据是来自所述动态随机存取存储器的所述部分而保存到所述非易失性存储器中的内容。
12.根据权利要求8所述的方法,其中所述主机相关事件是从所述主机接收引导所述非易失性双列直插存储器模块的控制器将所述动态随机存取存储器的所述部分的所述内容保存到所述非易失性存储器中的消息。
13.一种方法,其包括:
接收用于将非易失性双列直插存储器模块的动态随机存取存储器的一部分的内容保存到非易失性双列直插存储器模块的非易失性存储器中的触发;
存取所述非易失性双列直插存储器模块的一组寄存器且确定从其开始动态随机存取存储器的所述部分的所述内容的所述保存的动态随机存取存储器的所述部分的起始偏移;
确定关于所述起始偏移的来自所述一组寄存器中的部分保存长度寄存器的待保存的内容量;及
基于存取所述一组寄存器而将所述动态随机存取存储器的所述部分的所述内容保存到所述非易失性存储器中。
14.根据权利要求13所述的方法,其中存取所述一组寄存器且确定所述起始偏移包括存取所述一组寄存器的多个寄存器以获得多个起始偏移,与所述部分的片段相关的每一起始偏移不同于所获得的其它起始偏移。
15.根据权利要求14所述的方法,其进一步包括响应于来自产生所述偏移的主机的信号而基于针对所述相应片段获得的所述起始偏移恢复所述动态随机存取存储器的所述部分的每一片段。
16.根据权利要求13所述的方法,其中确定待保存的所述内容量包括:确定当所述部分保存长度寄存器具有用于停用部分保存的定义值时,待保存的所述内容量包括所述动态随机存取存储器的全部。
17.一种方法,其包括:
在主机中,确定待保存到非易失性双列直插存储器模块的非易失性存储器中的所述非易失性双列直插存储器模块的动态随机存取存储器的一部分的内容,所述主机可操作地耦合到所述非易失性双列直插存储器模块;
在所述主机中,确定从其开始动态随机存取存储器的所述部分的所述内容的所述保存的动态随机存取存储器的所述部分的起始偏移;
在所述主机中,确定用于从所述动态随机存取存储器保存到所述非易失性存储器的内容量;及
将所述起始偏移及所述内容量从所述主机加载到所述非易失性双列直插存储器模块的一组控制寄存器中。
18.根据权利要求17所述的方法,其进一步包括由所述主机通过凭借用于停用部分保存的定义值加载所述一组寄存器的部分保存长度寄存器而停用所述动态随机存取存储器的部分保存。
19.根据权利要求17所述的方法,其进一步包括在所述主机中产生消息且将所述消息发送到所述非易失性双列直插存储器模块的控制器以将在部分保存中保存到所述非易失性存储器的内容恢复回到所述动态随机存取存储器。
20.根据权利要求17所述的方法,其中从所述主机加载所述起始偏移及所述内容量包括使用所述主机与所述非易失性双列直插存储器模块之间的应用程序编程接口。
CN201980017257.9A 2018-02-08 2019-02-05 存储器的部分保存 Pending CN111819548A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862628157P 2018-02-08 2018-02-08
US62/628,157 2018-02-08
US16/113,221 US10831393B2 (en) 2018-02-08 2018-08-27 Partial save of memory
US16/113,221 2018-08-27
PCT/US2019/016623 WO2019156965A1 (en) 2018-02-08 2019-02-05 Partial save of memory

Publications (1)

Publication Number Publication Date
CN111819548A true CN111819548A (zh) 2020-10-23

Family

ID=67476667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980017257.9A Pending CN111819548A (zh) 2018-02-08 2019-02-05 存储器的部分保存

Country Status (5)

Country Link
US (2) US10831393B2 (zh)
EP (1) EP3750065A4 (zh)
CN (1) CN111819548A (zh)
TW (1) TWI731302B (zh)
WO (1) WO2019156965A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579791B2 (en) 2018-02-08 2023-02-14 Micron Technology, Inc. Partial save of memory

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042374B2 (en) * 2019-05-02 2021-06-22 International Business Machines Corporation Non-volatile dual in-line memory module storage
TWI791966B (zh) * 2020-03-27 2023-02-11 瑞昱半導體股份有限公司 記憶體控制器與資料處理方法
TWI796935B (zh) * 2022-01-19 2023-03-21 宏碁股份有限公司 記憶體控制方法與記憶體儲存系統

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131290A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Backup Memory Administration
CN103678042A (zh) * 2013-12-25 2014-03-26 上海爱数软件有限公司 一种基于数据分析的备份策略信息生成方法
US20140181427A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Compound Memory Operations in a Logic Layer of a Stacked Memory
CN105786545A (zh) * 2014-12-25 2016-07-20 研祥智能科技股份有限公司 基于异构混合内存的断点恢复方法和系统
CN106406767A (zh) * 2016-09-26 2017-02-15 上海新储集成电路有限公司 一种非易失性双列直插式存储器及存储方法
CN106484571A (zh) * 2015-08-28 2017-03-08 株式会社东芝 存储装置和存储控制方法
US20170206036A1 (en) * 2016-01-19 2017-07-20 Micron Technology Inc. Non-volatile memory module architecture to support memory error correction
CN107003919A (zh) * 2014-12-24 2017-08-01 英特尔公司 容错自动双列直插存储器模块刷新

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934879B2 (en) 2002-03-28 2005-08-23 International Business Machines Corporation Method and apparatus for backing up and restoring data from nonvolatile memory
EP1376344A3 (en) * 2002-06-17 2005-08-24 Seiko Epson Corporation Apparatus and method of rewriting firmware
US6931477B2 (en) * 2002-12-31 2005-08-16 Motorola, Inc. Method and apparatus for patching code and data residing on a memory
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
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
US20060221850A1 (en) * 2005-03-31 2006-10-05 Teresa Buckley Field content based packet classification
US7661002B2 (en) * 2005-08-04 2010-02-09 Dot Hill Systems Corporation Storage controller super capacitor dynamic voltage throttling
US7451348B2 (en) * 2005-08-04 2008-11-11 Dot Hill Systems Corporation Dynamic write cache size adjustment in raid controller with capacitor backup energy source
US7487391B2 (en) * 2005-08-04 2009-02-03 Dot Hill Systems Corporation Storage controller super capacitor adaptive life monitor
US7620784B2 (en) 2006-06-09 2009-11-17 Microsoft Corporation High speed nonvolatile memory device using parallel writing among a plurality of interfaces
EP2122473B1 (en) 2007-01-10 2012-12-05 Mobile Semiconductor Corporation Adaptive memory system for enhancing the performance of an external computing device
US7975103B2 (en) 2007-09-13 2011-07-05 International Business Machines Corporation Method for optimized data record verification
US9223642B2 (en) * 2013-03-15 2015-12-29 Super Talent Technology, Corp. Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
US8977831B2 (en) * 2009-02-11 2015-03-10 Stec, Inc. Flash backed DRAM module storing parameter information of the DRAM module in the flash
US20100309908A1 (en) * 2009-06-08 2010-12-09 Hewlett-Packard Development Company, L.P. Method and system for communicating with a network device
TWM415338U (en) 2011-06-10 2011-11-01 Shu-Min Liu Solid-state storage device implemented by volatile memory
TW201405298A (zh) 2012-07-16 2014-02-01 Acer Inc 記憶體裝置及其控制方法
GB2510180A (en) * 2013-01-29 2014-07-30 Ibm Selective restoration of data from non-volatile storage to volatile memory
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
US9645829B2 (en) 2014-06-30 2017-05-09 Intel Corporation Techniques to communicate with a controller for a non-volatile dual in-line memory module
US20180024768A1 (en) * 2015-02-13 2018-01-25 Hewlett Packard Enterprise Development Lp Partitioning memory modules into volatile and non-volatile portions
US10261700B1 (en) * 2015-08-27 2019-04-16 Google Llc Method and apparatus for streaming buffering to accelerate reads
CN105183379B (zh) 2015-09-01 2018-10-23 上海新储集成电路有限公司 一种混合内存的数据备份系统及方法
US10031677B1 (en) * 2015-10-14 2018-07-24 Rambus Inc. High-throughput low-latency hybrid memory module
US9460791B1 (en) * 2015-12-08 2016-10-04 Inphi Corporation Data clock synchronization in hybrid memory modules
US9817610B1 (en) 2015-12-08 2017-11-14 Inphi Corporation Hybrid memory systems for autonomous non-volatile memory save and restore operations
US10044958B1 (en) * 2017-02-08 2018-08-07 Sensors Unlimited, Inc. In-pixel digital gain and offset corrections
US20180246643A1 (en) * 2017-02-28 2018-08-30 Dell Products, Lp System and Method to Perform Runtime Saves on Dual Data Rate NVDIMMs
US10831393B2 (en) 2018-02-08 2020-11-10 Micron Technology, Inc. Partial save of memory
US10984881B1 (en) * 2019-12-13 2021-04-20 Micron Technology, Inc. Memory sub-system self-testing operations
US11036413B1 (en) * 2019-12-17 2021-06-15 Micron Technology, Inc. Memory sub-system temperature regulation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131290A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Backup Memory Administration
US20140181427A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Compound Memory Operations in a Logic Layer of a Stacked Memory
CN103678042A (zh) * 2013-12-25 2014-03-26 上海爱数软件有限公司 一种基于数据分析的备份策略信息生成方法
CN107003919A (zh) * 2014-12-24 2017-08-01 英特尔公司 容错自动双列直插存储器模块刷新
CN105786545A (zh) * 2014-12-25 2016-07-20 研祥智能科技股份有限公司 基于异构混合内存的断点恢复方法和系统
CN106484571A (zh) * 2015-08-28 2017-03-08 株式会社东芝 存储装置和存储控制方法
US20170206036A1 (en) * 2016-01-19 2017-07-20 Micron Technology Inc. Non-volatile memory module architecture to support memory error correction
CN106406767A (zh) * 2016-09-26 2017-02-15 上海新储集成电路有限公司 一种非易失性双列直插式存储器及存储方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579791B2 (en) 2018-02-08 2023-02-14 Micron Technology, Inc. Partial save of memory

Also Published As

Publication number Publication date
EP3750065A1 (en) 2020-12-16
EP3750065A4 (en) 2021-11-10
WO2019156965A1 (en) 2019-08-15
US20190243575A1 (en) 2019-08-08
TW201941057A (zh) 2019-10-16
US11579791B2 (en) 2023-02-14
US20210019073A1 (en) 2021-01-21
TWI731302B (zh) 2021-06-21
US10831393B2 (en) 2020-11-10

Similar Documents

Publication Publication Date Title
US11579791B2 (en) Partial save of memory
US11749373B2 (en) Bad block management for memory sub-systems
US11282567B2 (en) Sequential SLC read optimization
US11604749B2 (en) Direct memory access (DMA) commands for noncontiguous source and destination memory addresses
CN112136178A (zh) 非易失性双列直插式存储器模块中的交叉点阵列存储器
CN112673429A (zh) 与写入操作相关联的预读取操作的调整
US11726869B2 (en) Performing error control operation on memory component for garbage collection
CN112543908A (zh) 写入缓冲器管理
US11144448B2 (en) Memory sub-system for managing flash translation layers table updates in response to unmap commands
US20220036963A1 (en) Data redirection upon failure of a program operation
US20210342236A1 (en) Data recovery within a memory sub-system
EP3841472A1 (en) Tracking error-correction parity calculations
CN112166406A (zh) 管理包含具有不同特性的存储器装置的存储器系统
WO2022027578A1 (en) Memory overlay using host memory buffer
CN115729858A (zh) 存储器中用于数据分享的散列操作
CN113126899A (zh) 完全多平面操作启用
CN115774886A (zh) 用于存储器系统的安全文件系统
CN114077404A (zh) 使存储器单元与主机系统解除关联
CN114097039A (zh) 经停用超级管理单元的恢复管理

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