CN109582508B - 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm - Google Patents
用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm Download PDFInfo
- Publication number
- CN109582508B CN109582508B CN201811643227.2A CN201811643227A CN109582508B CN 109582508 B CN109582508 B CN 109582508B CN 201811643227 A CN201811643227 A CN 201811643227A CN 109582508 B CN109582508 B CN 109582508B
- Authority
- CN
- China
- Prior art keywords
- bit
- bits
- edq
- controller
- nvdimm
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title claims abstract description 33
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 239000003990 capacitor Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供用于NVDIMM的数据备份和恢复方法、NVDIMM控制器以及NVDIMM。NVDIMM(200)包括DRAM(201)、NAND闪存(202)和NVDIMM控制器(100),NVDIMM控制器控制NVDIMM并包括DDR控制器(101)、NAND闪存控制器(102)、数据备份模块(103)和数据恢复模块(104),DDR控制器采用并使能DBI。其中备份方法包括:DDR控制器从DRAM读取N位DQ和1位DBI并将其发送至数据备份模块;数据备份模块根据N位DQ和1位DBI的值将其编码成N位EDQ并将N位EDQ发送至NAND闪存控制器;NAND闪存控制器接收N位EDQ并将其写入NAND闪存。
Description
技术领域
本发明涉及非易失性内存领域,更具体地涉及一种低功耗的用于NVDIMM的数据备份方法、数据恢复方法、NVDIMM控制器以及NVDIMM。
背景技术
NVDIMM是一种非易失性内存,包括DRAM、NAND闪存(NAND Flash)和NVDIMM控制器。在主板/CPU异常或掉电时,通过中断或消息通知NVDIMM控制器,NVDIMM控制器会将DRAM中的数据备份到NAND闪存。之后在主板/CPU重新上电时,主板/CPU会通知NVDIMM控制器将备份在NAND闪存中的数据恢复到DRAM,并给超级电容充电。NVDIMM在数据备份时由超级电容供电,但超级电容供电能力有限,且随服役时间和工作温度升高有较大衰减。对于NVDIMM而言,数据备份的功耗和数据备份/恢复的时间是两个重要的产品性能指标,决定了超级电容的容量、可靠性和产品的成本。数据备份功耗增加势必需要提升超级电容容量,而超级电容容量增加会带来成本增加和可靠性降低;数据备份/恢复时间决定了数据备份过程中的功耗及用户体验。因此,低功耗的NVDIMM数据快速备份和恢复方法可明显提高产品的竞争力。
为了降低接口功耗,在DDR4中引入了数据总线反相(Data Bus Inversion;DBI)机制。对于JEDEC规范(JESD245A/B)的NVDIMM控制器,在数据备份和恢复时都需要操作DDRx和NAND闪存接口。DDR4使用1.2V接口电压和POD(Pseudo Open Drain)技术,结合DBI可降低25-40%接口的功耗。虽然现有NVDIMM产品在DDR(DDR4)侧采用DBI机制可明显降低DRAM操作功耗,但是在备份数据时需要将待备份的数据和DBI指示一起写入NAND闪存,以便在恢复数据给出DBI指示信号使DRAM得到正确的数据。备份DBI会给NVDIMM备份数据带来额外的存储开销,同时提高了备份的功耗。以16GB NVDIMM DDR4 x8为例,备份DBI需要增加2GB的存储空间,这将使得备份和恢复时间加长1/8,也将增加约1/8的备份功耗。
中国专利公开CN108255428A公开了一种数据处理方法、装置及电子设备。该数据处理方法包括:接收数据传输请求,数据传输请求指示将NVDIMM存储的数据传输至块设备,数据传输请求携带有数据块的标识;根据数据传输请求确定目标数据在NVDIMM中的存储位置信息,其中,目标数据为与数据传输请求对应的待传输数据;以字节访问的方式将NVDIMM中由存储位置信息所指示的目标数据直接传输至块设备。但是该方法在主板/CPU使用NVDIMM层面来降低数据传输时间,需要保存在NVDIMM中的数据具有一定的特点,并没有从NVDIMM的设计角度出发,因此,不具有通用意义的低功耗NVDIMM快速数据备份和恢复特性。
发明内容
对于使用了DBI机制的NVDIMM控制器,DDR接口的功耗可明显降低,但存储DBI信息增加了存储空间和数据备份时NAND闪存接口的功耗,同时使数据备份和恢复时间增加。因此,本发明的目的是解决以下问题:
(1)引入DBI后如何存储DBI信息来降低NVDIMM的数据备份功耗;
(2)引入DBI后如何存储DBI信息来降低NVDIMM的数据备份和恢复时间。
本发明通过以下方面解决上述技术问题。
根据本发明的第一方面,提供一种用于NVDIMM的数据备份方法,所述NVDIMM包括DRAM、NAND闪存和NVDIMM控制器,所述NVDIMM由NVDIMM控制器所控制,所述NVDIMM控制器包括DDR控制器、NAND闪存控制器和数据备份模块,其中所述DDR控制器采用并使能DBI,所述数据备份方法包括:
所述DDR控制器从所述DRAM读取N位DQ和1位DBI,并将所述N位DQ和1位DBI发送至所述数据备份模块;
根据所述N位DQ和1位DBI的值,所述数据备份模块将所述N位DQ和1位DBI编码成N位EDQ,并将所述N位EDQ发送至所述NAND闪存控制器;
所述NAND闪存控制器接收所述N位EDQ,并将所述N位EDQ写入所述NAND闪存。
根据本发明第一方面的一个优选实施方案,其中,当所述N位DQ中含有N/2个“1”时,将所述N位DQ编码成与之相同的N位EDQ;当所述N位DQ中的“1”的数目不是N/2个时,将所述N位DQ索引映射到N位EDQ中的N-1位,将1位DBI写入N位EDQ中的剩余1位,并且N位EDQ中的“1”的位数不为N/2。
根据本发明第一方面的一个优选实施方案,其中,所述DRAM是DDR4。
根据本发明第一方面的一个优选实施方案,其中,所述DRAM是DDR4×8或DDR4×16。
根据本发明第一方面的一个优选实施方案,其中,当所述DRAM是DDR4×8时,所述N位DQ为8位DQ,当8位DQ中含有4个“1”时,将所述8位DQ编码成与之相同的8位EDQ;当8位DQ中含有5-8个“1”时,将8位DQ索引映射到8位EDQ中的7位,将1位DBI写入8位EDQ中的剩余1位,并且8位EDQ中的“1”的位数不为4。
根据本发明的第二方面,提供一种用于NVDIMM的数据恢复方法,所述NVDIMM包括DRAM、NAND闪存和NVDIMM控制器,所述NVDIMM由NVDIMM控制器所控制,所述NVDIMM控制器包括DDR控制器、NAND闪存控制器和数据恢复模块,其中所述DDR控制器采用并使能DBI,所述数据恢复方法包括:
所述NAND闪存控制器从所述NAND闪存读取N位EDQ数据,并将所述N位EDQ数据发送至所述数据恢复模块;
所述数据恢复模块接收所述N位EDQ数据,将所述N位EDQ数据解码成N位DQ和1位DBI,并将所述N位DQ和1位DBI发送至所述DDR控制器;
所述DDR控制器根据所述1位DBI的值拉低或拉高所述DDR控制器的接口的DBI,并将所述N位DQ写入所述DRAM。
根据本发明第二方面的一个优选实施方案,其中,当所述N位EDQ中含有N/2个“1”时,所述N位DQ与所述N位EDQ相同;当所述N位EDQ中的“1”的数目不是N/2个时,则将所述N位EDQ逆映射为N位DQ和1位DBI。
根据本发明第二方面的一个优选实施方案,其中,所述DRAM是DDR4。
根据本发明第二方面的一个优选实施方案,其中,所述DRAM是DDR4×8或DDR4×16。
根据本发明第二方面的一个优选实施方案,其中,当所述DRAM是DDR4×8时,所述EDQ为8位EDQ,当8位EDQ中含有4个“1”时,所述DQ与所述EDQ相同;当8位EDQ中含有非4个“1”时,将所述8位EDQ逆映射为8位DQ和1位DBI。
根据本发明的第三方面,提供一种NVDIMM控制器,所述NVDIMM控制器包括DDR控制器和NAND闪存控制器,所述NVDIMM控制器用于控制NVDIMM,所述NVDIMM包括DRAM和NAND闪存,其中所述DDR控制器采用并使能DBI,其特征在于,
所述NVDIMM控制器还包括:
数据备份模块,用于将所述DDR控制器从所述DRAM读取的N位DQ和1位DBI编码成N位EDQ,并将N位EDQ发送至所述NAND闪存控制器;以及
数据恢复模块,用于将所述NAND闪存控制器从所述NAND闪存读取的N位EDQ解码成N位DQ和1位DBI,并将N位DQ和1位DBI发送至所述DDR控制器。
根据本发明第三方面的一个优选实施方案,其中,所述数据备份模块用于在所述N位DQ中含有N/2个“1”时将所述N位EDQ编码成与所述N位DQ相同,并且用于在所述N位DQ中的“1”的数目不是N/2个时将所述N位DQ索引映射到N位EDQ中的N-1位以及将1位DBI写入N位EDQ中的剩余1位,其中N位EDQ中的“1”的位数不为N/2。
根据本发明第三方面的一个优选实施方案,其中,所述数据恢复模块用于在所述N位EDQ中含有N/2个“1”时将所述N位EDQ解码成与之相同的N位DQ,并且用于在所述N位EDQ中的“1”的数目不是N/2个时将所述N位EDQ逆映射为N位DQ和1位DBI。
根据本发明第三方面的一个优选实施方案,其中,所述DRAM是DDR4。
根据本发明第三方面的一个优选实施方案,其中,所述DDR4是DDR4×8或DDR4×16。
根据本发明第三方面的一个优选实施方案,其中,当所述DDR4是DDR4×8时,所述EDQ为8位EDQ,所述数据备份模块用于在8位EDQ中含有4个“1”时将所述8位DQ编码成与之相同的8位EDQ,并且用于在8位EDQ中含有5-8个“1”时将8位DQ索引映射到8位EDQ中的7位以及将1位DBI写入8位EDQ中的剩余1位,其中8位EDQ中的“1”的位数不为4。
根据本发明第三方面的一个优选实施方案,其中,所述数据恢复模块用于在8位EDQ中含有4个“1”时使得所述DQ与所述EDQ相同,并且用于在8位EDQ中含有非4个“1”时将所述8位EDQ逆映射为8位DQ和1位DBI。
根据本发明的第四方面,提供一种NVDIMM,包括上述第三方面所述的NVDIMM控制器。
本发明的NVDIMM控制器针对使用了DBI机制的DDR,其中1)在数据备份时,DDR侧的DBI机制使能,从DDR接口读取要备份的数据和DBI指示,根据数据的特点,将DBI编码到数据中,通过减少要写入的NAND数据的数目来降低操作NAND接口的功耗和数据备份时间;2)在数据恢复时,从NAND闪存中读取带有DBI编码的备份数据,并从备份数据中解码得到DBI指示和要恢复到DRAM中的数据,数据恢复写入DRAM时,同样使用DBI机制来降低DDR接口的操作功耗。与在使用NVDIMM时根据数据特点来降低功耗的方法相比,本发明从NVDIMM设计层面出发,降低写入NAND闪存的数据量来降低功耗和数据备份时间,对主机的应用没有任何约束和要求。
附图说明
通过下文结合附图的详细说明,将更好地理解本发明。应理解,这些附图仅出于示例目的,且未必按比例绘制。在附图中:
图1是根据本发明一个实施方案的NVDIMM控制器的系统框图。
图2是根据本发明一个实施方案的NVDIMM的示意图。
具体实施方式
根据本发明,NVDIMM控制器实现非易失性功能主要由DDR控制器、NAND闪存控制器及数据备份/恢复模块三部分完成,这三部分是使用FPGA或ASIC实现的。DDR控制器用于控制DRAM,NAND闪存控制器用于控制NAND闪存。本发明针对使用了DBI功能的DDR,其中在数据备份/恢复环节数据备份/恢复模块对DQ和DBI二者进行编解码处理以实现接口低功耗,同时提高了数据备份/恢复速度。下文中所描述的DDR指的是DDR4,但应理解,本发明不限于DDR4,本发明同样适用于其他支持DBI的现有DDR版本和未来DDR版本。
图1也示出了根据本发明一个实施方案的数据备份方法和数据恢复方法。以DDR4x8为例,与DDR控制器相关的接口信号是8比特DQ和1比特DBI,与NAND闪存控制器相关的接口信号是经编码的DQ(EDQ)。
下面将具体描述NVDIMM控制器的数据备份方法。
DDR控制器从DRAM读取数据,由于DBI的作用,DQ中‘1’的个数和DBI指示有9种可能,如表1所示,DBI为‘0’说明DQ数据有翻转,反之,DQ没有翻转。
DQ[7:0] | DBI | 说明 |
DQ中4个1 | 1 | DQ没有翻转 |
DQ中5个1 | 1 | DQ没有翻转 |
DQ中5个1 | 0 | DQ翻转 |
DQ中6个1 | 1 | DQ没有翻转 |
DQ中6个1 | 0 | DQ翻转 |
DQ中7个1 | 1 | DQ没有翻转 |
DQ中7个1 | 0 | DQ翻转 |
DQ中8个1 | 1 | DQ没有翻转 |
DQ中8个1 | 0 | DQ翻转 |
表1:DQ和DBI的数值以及关系
从表1可知,当DBI为1时,实际存储在DRAM中的数据与DDR控制器读取的DQ相同;当DBI为0时,实际存储在DRAM中的数据与DDR控制器读取的DQ相反。
根据DQ的特点,即8比特数据中只有4/5/6/7/8个‘1’的情况。本发明的数据备份方法依据这种特点,创新性地将DQ和DBI二者共同进行编码,生成8比特的EDQ,如表2所示,数据备份模块通过编码将8比特DQ和1比特DBI用8比特EDQ来表示,EDQ通过NAND闪存控制器写入NAND闪存,完成数据备份。
表2 DQ、DBI和EDQ编码关系表
对于DQ中存在5/6/7/8个‘1’的情况,为了与DQ中存在4个‘1’的情况进行区分,当DBI=1时,表示93个可能DQ值的索引映射的7位EDQ中不含有3位‘1’;当DBI=0时,表示93个可能DQ值的索引映射的7位EDQ中不含有4位‘1’。
例如,在一个实施方案中,当DBI=1时,EDQ[7]=DBI,EDQ[6:0]表示93个可能DQ值的索引映射,其中EDQ[6:0]中不含有3位‘1’;当DBI=0时,EDQ[7]=DBI,EDQ[6:0]表示93个可能DQ值的索引映射,其中EDQ[6:0]中不含有4位‘1’。
上文的实施方案将DBI信息放置在EDQ的高位,但应理解,DBI信息可以放置在EDQ中任何位置。
当NVDIMM控制器恢复数据时,步骤包括:(1)NAND闪存控制器从NAND闪存读取备份时写入的EDQ数据;(2)数据恢复模块对读取的EDQ数据进行解码,获得DQ和DBI,并将解码后的DQ和DBI发送至所述DDR控制器,所述解码过程是表2的逆过程,如果EDQ中有4位“1”,则不需要解码,否则,将8位EDQ逆映射到8位DQ和1位DBI;(3)DDR控制器根据DBI拉低/拉高DDR控制器的接口的DBI信号,并将DQ发送至DRAM,DRAM根据DBI的值决定是否翻转DQ,从而完成数据恢复。
上文中以DDR4 x8为例进行了说明,但应理解,本发明同样适用于DDR4x16。
图2是根据本发明一个实施方案的NVDIMM的示意图。如图2所示,NVDIMM控制器100包括DDR控制器101、NAND闪存控制器102、数据备份模块103和数据恢复模块104。NVDIMM控制器控制包括DRAM 201和NAND闪存202的NVDIMM200,数据恢复/备份模块实现上文关于图1描述的数据备份方法和数据恢复方法。所述DDR控制器与所述DRAM相连接,所述NAND闪存控制器与所述NAND闪存相连接,所述数据备份模块与所述DDR控制器和所述NAND闪存控制器相连接,且所述数据恢复模块与所述DDR控制器和所述NAND闪存控制器相连接。
应理解,这些实施例仅出于示例目的,本领域技术人员可以做出许多变体,而本发明的范围由权利要求限定。
Claims (15)
1.一种用于NVDIMM的数据备份方法,所述NVDIMM包括DRAM、NAND闪存和NVDIMM控制器,所述NVDIMM由NVDIMM控制器所控制,所述NVDIMM控制器包括DDR控制器、NAND闪存控制器和数据备份模块,其中所述DDR控制器采用并使能DBI,所述数据备份方法包括:
所述DDR控制器从所述DRAM读取N位DQ和1位DBI,并将所述N位DQ和1位DBI发送至所述数据备份模块;
根据所述N位DQ和1位DBI的值,所述数据备份模块将所述N位DQ和1位DBI编码成N位EDQ,并将所述N位EDQ发送至所述NAND闪存控制器;
所述NAND闪存控制器接收所述N位EDQ,并将所述N位EDQ写入所述NAND闪存;
其中,当所述N位DQ中含有N/2个“1”时,将所述N位DQ编码成与之相同的N位EDQ;当所述N位DQ中的“1”的数目不是N/2个时,将所述N位DQ索引映射到N位EDQ中的N-1位以及将1位DBI写入N位EDQ中的剩余1位,并且N位EDQ中的“1”的位数不为N/2。
2.根据权利要求1所述的数据备份方法,其中,所述DRAM是DDR4。
3.根据权利要求2所述的数据备份方法,其中,所述DRAM是DDR4×8或DDR4×16。
4.根据权利要求3所述的数据备份方法,其中,当所述DRAM是DDR4×8时,所述N位DQ为8位DQ,当8位DQ中含有4个“1”时,将所述8位DQ编码成与之相同的8位EDQ;当8位DQ中含有5-8个“1”时,将8位DQ索引映射到8位EDQ中的7位以及将1位DBI写入8位EDQ中的剩余1位,并且8位EDQ中的“1”的位数不为4。
5.一种用于NVDIMM的数据恢复方法,所述NVDIMM包括DRAM、NAND闪存和NVDIMM控制器,所述NVDIMM由NVDIMM控制器所控制,所述NVDIMM控制器包括DDR控制器、NAND闪存控制器和数据恢复模块,其中所述DDR控制器采用并使能DBI,所述数据恢复方法包括:
所述NAND闪存控制器从所述NAND闪存读取N位EDQ数据,并将所述N位EDQ数据发送至所述数据恢复模块;
所述数据恢复模块接收所述N位EDQ数据,将所述N位EDQ数据解码成N位DQ和1位DBI,并将所述N位DQ和1位DBI发送至所述DDR控制器;
所述DDR控制器根据所述1位DBI的值拉低或拉高所述DDR控制器的接口的DBI,并将所述N位DQ发送至所述DRAM;
其中,当所述N位EDQ中含有N/2个“1”时,所述N位DQ与所述N位EDQ相同;当所述N位EDQ中的“1”的数目不是N/2个时,则将所述N位EDQ逆映射为N位DQ和1位DBI。
6.根据权利要求5所述的数据恢复方法,其中,所述DRAM是DDR4。
7.根据权利要求6所述的数据恢复方法,其中,所述DRAM是DDR4×8或DDR4×16。
8.根据权利要求7所述的数据恢复方法,其中,当所述DRAM是DDR4×8时,所述EDQ为8位EDQ,当8位EDQ中含有4个“1”时,所述DQ与所述EDQ相同;当8位EDQ中含有非4个“1”时,将所述8位EDQ逆映射为8位DQ和1位DBI。
9.一种NVDIMM控制器,所述NVDIMM控制器包括DDR控制器和NAND闪存控制器,所述NVDIMM控制器用于控制NVDIMM,所述NVDIMM包括DRAM和NAND闪存,其中所述DDR控制器采用并使能DBI,其特征在于,
所述NVDIMM控制器还包括:
数据备份模块,用于将所述DDR控制器从所述DRAM读取的N位DQ和1位DBI编码成N位EDQ,并将N位EDQ发送至所述NAND闪存控制器;以及
数据恢复模块,用于将所述NAND闪存控制器从所述NAND闪存读取的N位EDQ解码成N位DQ和1位DBI,并将N位DQ和1位DBI发送至所述DDR控制器;
其中,所述数据备份模块用于在所述N位DQ中含有N/2个“1”时将所述N位EDQ编码成与所述N位DQ相同,并且用于在所述N位DQ中的“1”的数目不是N/2个时将所述N位DQ索引映射到N位EDQ中的N-1位以及将1位DBI写入N位EDQ中的剩余1位,其中N位EDQ中的“1”的位数不为N/2。
10.根据权利要求9所述的NVDIMM控制器,其中,所述数据恢复模块用于在所述N位EDQ中含有N/2个“1”时将所述N位EDQ解码成与之相同的N位DQ,并且用于在所述N位EDQ中的“1”的数目不是N/2个时将所述N位EDQ逆映射为N位DQ和1位DBI。
11.根据权利要求9所述的NVDIMM控制器,其中,所述DRAM是DDR4。
12.根据权利要求11所述的NVDIMM控制器,其中,所述DDR4是DDR4×8或DDR4×16。
13.根据权利要求12所述的NVDIMM控制器,其中,当所述DDR4是DDR4×8时,所述EDQ为8位EDQ,所述数据备份模块用于在8位EDQ中含有4个“1”时将所述8位DQ编码成与之相同的8位EDQ,并且用于在8位EDQ中含有5-8个“1”时将8位DQ索引映射到8位EDQ中的7位以及将1位DBI写入8位EDQ中的剩余1位,其中8位EDQ中的“1”的位数不为4。
14.根据权利要求13所述的NVDIMM控制器,其中,所述数据恢复模块用于在8位EDQ中含有4个“1”时使得所述DQ与所述EDQ相同,并且用于在8位EDQ中含有非4个“1”时将所述8位EDQ逆映射为8位DQ和1位DBI。
15.一种NVDIMM,包括如权利要求9-14任一项所述的NVDIMM控制器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811643227.2A CN109582508B (zh) | 2018-12-29 | 2018-12-29 | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm |
US17/419,518 US11914484B2 (en) | 2018-12-29 | 2019-12-24 | Data backup and recovery method for NVDIMM, NVDIMM controller and NVDIMM |
PCT/CN2019/127880 WO2020135411A1 (zh) | 2018-12-29 | 2019-12-24 | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811643227.2A CN109582508B (zh) | 2018-12-29 | 2018-12-29 | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582508A CN109582508A (zh) | 2019-04-05 |
CN109582508B true CN109582508B (zh) | 2023-12-26 |
Family
ID=65932879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811643227.2A Active CN109582508B (zh) | 2018-12-29 | 2018-12-29 | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm |
Country Status (3)
Country | Link |
---|---|
US (1) | US11914484B2 (zh) |
CN (1) | CN109582508B (zh) |
WO (1) | WO2020135411A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582508B (zh) | 2018-12-29 | 2023-12-26 | 西安紫光国芯半导体股份有限公司 | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm |
CN111324306B (zh) * | 2020-02-16 | 2021-04-20 | 西安奥卡云数据科技有限公司 | 一种基于nvdimm的数据分类缓存分配方法 |
US11061818B1 (en) | 2020-03-16 | 2021-07-13 | International Business Machines Corporation | Recovering from write cache failures in servers |
CN111309646A (zh) * | 2020-03-27 | 2020-06-19 | 西安紫光国芯半导体有限公司 | 存储装置及其数据写入、读取、备份和恢复方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274710B1 (en) * | 2014-03-31 | 2016-03-01 | Amazon Technologies, Inc. | Offset-based congestion control in storage systems |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储系统 |
CN107239366A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 非易失性双列直插式存储器系统的掉电中断 |
CN107533509A (zh) * | 2015-05-29 | 2018-01-02 | 英特尔公司 | 存储器设备特定的自刷新进入和退出 |
CN108255428A (zh) * | 2018-01-10 | 2018-07-06 | 联想(北京)有限公司 | 一种数据处理方法、装置及电子设备 |
CN209803776U (zh) * | 2018-12-29 | 2019-12-17 | 西安紫光国芯半导体有限公司 | Nvdimm控制器以及nvdimm |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8606982B2 (en) | 2008-03-10 | 2013-12-10 | Qimonda Ag | Derivative logical output |
US8918597B2 (en) * | 2008-08-29 | 2014-12-23 | Infineon Technologies Ag | Digital data inversion flag generator circuit |
CN102378971B (zh) | 2011-08-05 | 2014-03-12 | 华为技术有限公司 | 数据读取的方法和存储器控制器 |
WO2014193574A1 (en) * | 2013-05-13 | 2014-12-04 | Rambus Inc. | Buffer circuit with data bit inversion |
US9922686B2 (en) * | 2016-05-19 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for performing intra-module databus inversion operations |
US10127100B2 (en) * | 2016-06-03 | 2018-11-13 | International Business Machines Corporation | Correcting a data storage error caused by a broken conductor using bit inversion |
KR102649318B1 (ko) | 2016-12-29 | 2024-03-20 | 삼성전자주식회사 | 상태 회로를 포함하는 메모리 장치와 그것의 동작 방법 |
US10146719B2 (en) * | 2017-03-24 | 2018-12-04 | Micron Technology, Inc. | Semiconductor layered device with data bus |
CN109582508B (zh) | 2018-12-29 | 2023-12-26 | 西安紫光国芯半导体股份有限公司 | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm |
KR20210136203A (ko) * | 2020-05-06 | 2021-11-17 | 삼성전자주식회사 | 저장 장치 및 그것의 리트레이닝 방법 |
-
2018
- 2018-12-29 CN CN201811643227.2A patent/CN109582508B/zh active Active
-
2019
- 2019-12-24 US US17/419,518 patent/US11914484B2/en active Active
- 2019-12-24 WO PCT/CN2019/127880 patent/WO2020135411A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274710B1 (en) * | 2014-03-31 | 2016-03-01 | Amazon Technologies, Inc. | Offset-based congestion control in storage systems |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储系统 |
CN107533509A (zh) * | 2015-05-29 | 2018-01-02 | 英特尔公司 | 存储器设备特定的自刷新进入和退出 |
CN107239366A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 非易失性双列直插式存储器系统的掉电中断 |
CN108255428A (zh) * | 2018-01-10 | 2018-07-06 | 联想(北京)有限公司 | 一种数据处理方法、装置及电子设备 |
CN209803776U (zh) * | 2018-12-29 | 2019-12-17 | 西安紫光国芯半导体有限公司 | Nvdimm控制器以及nvdimm |
Also Published As
Publication number | Publication date |
---|---|
CN109582508A (zh) | 2019-04-05 |
US20220083435A1 (en) | 2022-03-17 |
US11914484B2 (en) | 2024-02-27 |
WO2020135411A1 (zh) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582508B (zh) | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm | |
US8135903B1 (en) | Non-volatile semiconductor memory compressing data to improve performance | |
US8862967B2 (en) | Statistical distribution based variable-bit error correction coding | |
KR101602939B1 (ko) | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 | |
US20120272123A1 (en) | Data writing method, memory controller and memory storage apparatus | |
US9336081B2 (en) | Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access | |
US10180794B2 (en) | Soft decoding scheduling | |
US9304907B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
US20210081118A1 (en) | Memory addressing methods and associated controller, memory device and host | |
US10319462B2 (en) | Semiconductor device and semiconductor system | |
US9384125B2 (en) | Method for accessing flash memory having pages used for data backup and associated memory device | |
US11966298B2 (en) | Data backup method and data recovery method for NVDIMM, NVDIMM controller, and NVDIMM | |
US20180181510A1 (en) | Memory channel selection control | |
US11176033B2 (en) | Data storage devices and data processing methods | |
US11675498B2 (en) | Scheduling media management operations based on provided host system usage requirements | |
KR20170086840A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN209803776U (zh) | Nvdimm控制器以及nvdimm | |
US20190278703A1 (en) | Memory system, operating method thereof and electronic device | |
CN116048380A (zh) | 藉助于预定命令来进行存储器装置的数据存取控制的方法及设备 | |
US10963178B2 (en) | Repetitive data processing method for solid state drive | |
CN209803777U (zh) | Nvdimm控制器以及nvdimm | |
US11507302B2 (en) | Scheduling media management operations based on determined host system usage requirements | |
US20240329845A1 (en) | Memory device with compressed soft information and associated control method | |
US11023316B2 (en) | DRAM-based storage device and associated data processing method | |
US20200371952A1 (en) | Data storage devices and data processing methods |
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 | ||
CB02 | Change of applicant information |
Address after: 710003, 4th Floor, Block A, No. 38 Gaoxin 6th Road, Zhangba Street Office, Gaoxin District, Xi'an City, Shaanxi Province Applicant after: Xi'an Ziguang Guoxin Semiconductor Co.,Ltd. Address before: No.606, West District, national e-commerce demonstration base, No.528, tianguba Road, software new town, Xi'an hi tech Zone, Shaanxi 710003 Applicant before: XI''AN UNIIC SEMICONDUCTORS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |