CN106708754B - 数据储存装置及其数据维护方法 - Google Patents
数据储存装置及其数据维护方法 Download PDFInfo
- Publication number
- CN106708754B CN106708754B CN201610768284.8A CN201610768284A CN106708754B CN 106708754 B CN106708754 B CN 106708754B CN 201610768284 A CN201610768284 A CN 201610768284A CN 106708754 B CN106708754 B CN 106708754B
- Authority
- CN
- China
- Prior art keywords
- block
- pages
- data
- page
- backup
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims description 31
- 238000012423 maintenance Methods 0.000 title claims description 24
- 230000015654 memory Effects 0.000 claims abstract description 44
- 210000004027 cell Anatomy 0.000 description 20
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
Images
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个区块,每一区块包括多个页面。控制器在数据储存装置自一断电事件中恢复时,在区块中选择在断电事件之前最后一个进行写入的一第一区块,并且将第一区块中的多个第一页面中的数据写入第一区块中第一页面外的其他多个第二页面。
Description
技术领域
本发明有关于一种数据储存装置,特别有关于在断电事件后对数据进行维护的数据储存装置。
背景技术
快闪存储器为一种普遍的非挥发性数据储存装置,是以电性方式抹除与程式化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬智力(SSD)、嵌入式快闪存储器模块(eMMC)…等使用。
快闪存储器(如,NAND FLASH)的储存阵列包括多个个区块(blocks),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。然而,在写入的过程中,非预期的断电事件发生会损坏正在写入的页面的数据。因此,如何在断电事件发生后对数据进行维护是一个重要的课题。
发明内容
本发明所提供的数据储存装置以及数据维护方法可在断电事件后将可能受损坏的数据重写至相同的区块中。
本发明提供一种数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个区块,每一区块包括多个页面。控制器在数据储存装置自一断电事件中恢复时,在区块中选择在断电事件之前最后一个进行写入的一第一区块,并且将第一区块中的多个第一页面中的数据写入第一区块中第一页面外的其他多个第二页面。
在一实施例中,第一区块还包括多个字元线,并且第一区块为一二阶储存单元区块(MLC block),其中第一区块的每一字元线用以控制第一区块中的两个页面。在数据储存装置自断电事件中恢复时,控制器还用以在第一区块的页面中选择在断电事件之前最后一个被写入的页面以作为一基准页面,并且根据字元线中用以控制基准页面的一第一字元线决定第一页面。第一页面为被第一字元线以及排列于第一字元线前方的至少一第二字元线所控制的多个第三页面中具有有效数据的页面。又一实施例中,控制器还用以将冗余数据(dummy data)写入第三页面中不具有有效数据的页面。
另一实施例中,控制器还用以判断一备份区块中是否具有第一页面的备份,并且将第一页面中在备份区块不具有备份者的数据写入备份区块。另外,控制器还用以根据储存于备份区块中相应于第一页面的数据,对第二页面进行写入以将第一页面的数据写入第二页面,其中备份区块的数据保护能力高于第一区块。另外,一实施例中,第一区块为一二阶储存单元区块(MLC block),并且备份区块为一单阶储存单元区块(SLC block)。
本发明另提供一种数据维护方法适用于具有一快闪存储器的一数据储存装置,其中快闪存储器包括多个区块,并且每一区块包括多个页面。数据维护方法包括:在数据储存装置自一断电事件中恢复时,在区块中选择在断电事件之前最后一个进行写入的一第一区块;以及将第一区块中的多个第一页面中的数据写入第一区块中第一页面外的其他多个第二页面。
在一实施例中,第一区块还包括多个字元线,并且第一区块为一二阶储存单元区块(MLC block),其中第一区块的每一字元线用以控制第一区块中的两个页面。其中,数据维护方法还包括:在第一区块的页面中,选择在断电事件之前最后一个进行写入的页面以作为一基准页面;以及根据字元线中用以控制基准页面的一第一字元线决定第一页面,其中第一页面为被第一字元线以及排列于第一字元线前方的至少一第二字元线所控制的多个第三页面中具有有效数据的页面。另外,数据维护方法还包括将冗余数据(dummy data)写入第三页面中不具有有效数据的页面。
又另一实施例中,数据维护方法还包括:判断一备份区块中是否具有第一页面的备份;以及将第一页面中在备份区块不具有备份者的数据写入备份区块。上述将第一区块中的第一页面中的数据写入第一区块中第一页面外的其他第二页面的步骤还包括:根据储存于备份区块中相应于第一页面的数据,对第二页面进行写入以将第一页面的数据写入第二页面,其中备份区块的数据保护能力高于第一区块。
附图说明
图1为本发明所提供的一电子系统的一种实施例的方块图。
图2为本发明所提供的一区块的一种实施例的方块图。
图3为本发明所提供的一数据搬移的示意图。
图4为本发明所提供的另一数据搬移的示意图。
图5为本发明所提供的另一数据搬移的示意图。
图6为本发明所提供的一数据维护方法的一种实施例的流程图。
图7为本发明所提供的另一数据维护方法的另一种实施例的流程图。
符号说明
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
166 随机存取存储器;
180 快闪存储器;
LSB 强页面;
MSB 弱页面;
WL0~WLM 字元线;
Or_P0~Or_PM 原始页面;
P0~PN、P0~PX 页面;
B1 区块;
BU_B 备份区块;
POR 断电事件;
S600~S604、S700~S716 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图1为本发明所提供的一电子系统的一种实施例的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机120所下达的命令操作。控制器160包括一运算单元162、一永久存储器(如,只读存储器ROM)164以及随机存取存储器(RAM)166。永久存储器164与所载的程式码、数据组成韧体(firmware),由运算单元162执行,使控制器160基于该韧体控制该快闪存储器180。随机存取存储器(RAM)166用以载入程式码与参数以提供控制器160根据所载入的程式码与参数动作。
快闪存储器180包括多个区块,每一区块包括多个页面。值得注意的是,快闪存储器180以区块为最小单位进行抹除,并且页面为最小单位进行写入。另外,快闪存储器180还包括彼此相邻的多个字元线与多个位元线,其中每一字元线用以控制至少一页面,以选择所欲读取的页面。举例而言,当快闪存储器180中的区块系为单阶储存单元(Single-LevelCell,SLC)时,一条字元线用以控制一个页面。当快闪存储器180中的区块为多阶储存单元(Multi-Level Cell,MLC)时,一条字元线用以控制一强页面LSB(strong page)以及一弱页面MSB(weak page)。当快闪存储器180中之区块系为三阶储存单元(Triple-Level Cell,TLC)时,一条字元线用以控制一强页面LSB(strong page)、一中页面CSB(middle page)以及一弱页面MSB(weak page),但本发明不限于此。详细而言,当快闪存储器180中的区块为多阶储存单元时,区块中由一条字元线所控制的一个页面可被程式化(program)为一个强页面LSB(strong page)以及一个弱页面MSB(weak page)。当快闪存储器180中的区块为三阶储存单元时,区块中由一条字元线所控制的一个页面可被程式化(program)为一个强页面LSB(strong page)、一个中页面CSB(middle page)以及一个弱页面MSB(weak page)。
当控制器160再对快闪存储器180进行写入并且数据储存装置140经历了一断电事件后,控制器160会检查在断电事件发生时正在进行写入的一特定页面的数据是否被破坏。在某些状况下,虽然控制器160可成功的自特定页面读取数据,但特定页面中的数据已由于遭受断电事件的攻击而变得不稳定。换言之,在一段时间后,控制器160再对特定页面进行读取时,特定页面中的数据则可能无法被成功读取。值得注意的是,在本发明中,只要可经由错误校正或者重复读取修复错误位元的数据,皆是可被成功读取的数据。因此,在某时些实施例中,控制器160会在自断电事件恢复后,将成功读取的特定页面的数据写入另一个区块中,已确保数据的稳定性。然而,上述方法会消耗较多的区块,也会增加区块的抹除次数。
有鉴于此,本发明提出一实施例,以改善上述问题。在本实施例中,在数据储存装置140自一断电事件中恢复时,控制器160在区块中选择在断电事件之前最后一个进行写入的一第一区块,并且将第一区块中的多个第一页面中的数据写入第一区块中第一页面外的其他多个第二页面。如上所述,控制器160将第一页面的数据写入同一个第一区块中的第二页面,以减少区块的消耗。
值得注意的是,在一实施例中,快闪存储器180具有一备份区块,其中备份区块的数据保护能力高于第一区块B1。在控制器160对快闪存储器180进行写入时,会将数据写在备份区块上,再写入区块中。因此,在本实施例中,在将第一页面中的数据写入第二页面前,控制器160还用以判断备份区块中是否具有第一页面的备份,将第一页面中在备份区块不具有备份者的数据写入备份区块,并且根据储存于备份区块中相应于第一页面的数据,对第二页面进行写入以将第一页面的数据写入第二页面。如上所述,控制器160藉由先将数据写在备份区块来保护数据,并且预防接续的其他断电事件发生。
在一实施例中,快闪存储器中的区块大部份(第一区块)为一二阶储存单元区块(MLC block),并且快闪存储器180具有操作为单阶储存单元区块(SLC block)的备份区块,其中单阶储存单元区块的数据保护能力高于二阶储存单元区块,但本发明不限于此。在其他实施例中,第一区块可为多阶储存单元区块(TLC block),备份区块为可为单阶储存单元区块或者二阶储存单元区块,并且备份区块的数量可为一个以上。在本实施例中,为了找出不稳定的第一页面,控制器160还用以在第一区块B1的页面中选择在断电事件之前最后一个被写入的页面以作为一基准页面,并且根据字元线中用以控制基准页面的一第一字元线决定第一页面。详细而言,第一页面为被第一字元线以及排列于第一字元线前方的至少一第二字元线所控制的多个第三页面中具有有效数据的页面。又另一实施例中,控制器160还用以将冗余数据(dummy data)写入第三页面中不具有有效数据的页面,以稳定第一区块,其中冗余数据可为一既定的无效数据或者随机的数据,不具有任何意义。
详细而言,如图2所示,区块B1具有原始页面Or_P0~Or_PM,并且原始页面Or_P0~Or_PM分别由字元线WL0~WLM所控制。在本实施例中,区块B1为多阶储存单元。因此,控制器160可将每一原始页面Or_P0~Or_PM程式化为一个强页面LSB以及一个弱页面MSB,其中程式化为两个页面(强页面LSB以及一个弱页面MSB)的原始页面相较于原本被操作为单阶储存单元的原始页面的容量大两倍。值得注意的是,在一实施例中,基于特定的快闪存储器特性,控制器160会依照一既定顺序对原始页面Or_P0~Or_PM进行程式化(Program)以构成页面P0~PN,其中既定顺序为:先对原始页面Or_P0中的强页面LSB进行写入(Program)以构成页面P0,接着对原始页面Or_P1中的强页面LSB进行写入以构成页面P1,接着对原始页面Or_P0中的弱页面MSB进行写入以构成页面P2,接着对原始页面Or_P2中的强页面LSB进行写入以构成页面P3,接着对原始页面Or_P1中的弱页面MSB进行写入以构成页面P4,依此类推。因此,对于控制器160而言,区块B1中的页面P0~PN的排列顺序则如图2所示。值得注意的是,页面P0~PN的数量为原始页面Or_P0~Or_PM的两倍,但本发明不限于此。
图3为本发明所提供的一数据搬移的示意图。在发生断电事件前,控制器160依序将数据DATA0~DATA10分别写入区块B0中的页面P0~P10中,其中区块B0为如图2所示的二阶储存单元区块(MLC block)。为了防止在对区块B1中的弱页面LSB进行写入的过程中会损坏被同个字元线所控制的强页面MSB,控制器160会将强页面MSB的数据先写入备份区块BU_B,在写入强页面MSB。因此,备份区块BU_B中的页面P0~P5依序具有数据DATA0、数据DATA1、数据DATA3、数据DATA5、数据DATA7以及数据DATA9,如图3的部分(A)所示。在控制器160正在将数据DATA10写入区块B1的页面P10时,发生一断电事件POR。接着,在数据储存装置140自断电事件中恢复时,控制器160在快闪存储器的区块中选择在断电事件之前最后一个进行写入的区块B1做为第一区块。接着,控制器160在第一区块B1的页面P0~PN中,选择在断电事件之前最后一个进行写入的页面P10以作为一基准页面,自字元线WL0~WLM中选择用以控制基准页面P10的字元线WL4做为第一字元线,并且选择被第一字元线WL4以及排列于第一字元线前方的两个字元线WL2~WL3(第二字元线)所控制的多个页面P3、P5~P8以及P10中具有有效数据的页面作为第一页面。如上所述,第一页面为页面P3、P5~P8以及P10。接着,控制器160判断备份区块BU_B中是否具有第一页面P3、P5~P8、P10的备份。在本实施例中,备份区块BU_B仅具有第一页面P3的数据DATA3、第一页面P5的数据DATA5以及第一页面P7的数据DATA7,备份区块BU_B没有第一页面P6的数据DATA6、第一页面P8的数据DATA8以及第一页面P9的数据DATA9。因此,控制器160接着将第一页面P6、P8以及P9的数据DATA6、DATA8以及DATA9分别写入备份区块BU_B的页面P6~P8中,如图3的部分(B)所示。由于被第一字元线WL4以及第二字元线WL2~WL3所控制的页面P3、P5~P8以及P10中都具有有效数据。因此,控制器160不用将冗余数据(dummy data)写入区块B1中。接着,控制器160根据储存于备份区块BU_B中相应于第一页面P3、P5~P8、P10的数据DATA3、DATA5~DATA8、DATA10,将第一页面P3、P5~P8、P10的数据DATA3、DATA5~DATA8、DATA10写入第一区块B1的第二页面P11~P16中,如图3的分(C)所示。
图4为本发明所提供的另一数据搬移的示意图。详细而言,在发生断电事件前,控制器160依序将数据DATA0~DATA10分别写入区块B0中的页面P0~P10中,其中区块B0为如图2所示的二阶储存单元区块(MLC block)。为了防止在对区块B1中的弱页面LSB进行写入的过程中会损坏被同个字元线所控制的强页面MSB,控制器160会将强页面MSB的数据先写入备份区块BU_B,在写入强页面MSB。然而,由于写入的规则,某些强页面没有被备份于备份区块BU_B中。因此,在本实施例中,备份区块BU_B中的页面P0~P4依序具有数据DATA0、数据DATA1、数据DATA3、数据DATA7以及数据DATA9,如图4的部分(A)所示。在控制器160正在将数据DATA10写入区块B1的页面P10时,发生一断电事件POR。接着,在数据储存装置140自断电事件中恢复时,控制器160根据上述规则,选择页面P3、P5~P8以及P10作为第一页面。接着,控制器160判断备份区块BU_B中是否具有第一页面P3、P5~P8、P10的备份。在本实施例中,备份区块BU_B仅具有第一页面P3的数据DATA3以及第一页面P7的数据DATA7,备份区块BU_B没有第一页面P5的数据DATA5、第一页面P6的数据DATA6、第一页面P8的数据DATA8以及第一页面P9的数据DATA9。因此,控制器160接着将第一页面P5、P6、P8以及P9的数据DATA5、DATA6、DATA8以及DATA9分别写入备份区块BU_B的页面P5~P8中,如图4的部分(B)所示。由于被第一字元线WL4以及第二字元线WL2~WL3所控制的页面P3、P5~P8以及P10中都具有有效数据。因此,控制器160不用将冗余数据(dummy data)写入区块B1中。接着,控制器160根据储存于备份区块BU_B中相应于第一页面P3、P5~P8、P10的数据DATA3、DATA5~DATA8、DATA10,将第一页面P3、P5~P8、P10的数据DATA3、DATA5~DATA8、DATA10写入第一区块B1的第二页面P11~P16中,如图4的部分(C)所示。
图5为本发明所提供的另一数据搬移的示意图。在发生断电事件前,控制器160依序将数据DATA0~DATA7分别写入区块B0中的页面P0~P7中,其中区块B0为如图2所示的二阶储存单元区块(MLC block)。为了防止在对区块B1中的弱页面LSB进行写入的过程中会损坏被同个字元线所控制的强页面MSB,控制器160会将强页面MSB的数据先写入备份区块BU_B,在写入强页面MSB。然而,基于特定的写入规则,某些强页面MSB可能不会备份在备份区块BU_B中,例如页面P5的数据DATA5。在本实施例中,备份区块BU_B中的页面P0~P5依序具有数据DATA0、数据DATA1、数据DATA3以及数据DATA7,如图5的部分(A)所示。在控制器160正在将数据DATA7写入区块B1的页面P7时,发生一断电事件POR。接着,在数据储存装置140自断电事件中恢复时,控制器160在快闪存储器的区块中选择在断电事件之前最后一个进行写入的区块B1做为第一区块。接着,控制器160在第一区块B1的页面P0~PN中,选择在断电事件之前最后一个进行写入的页面P7以作为一基准页面,自字元线WL0~WLM中选择用以控制基准页面P7的字元线WL4做为第一字元线,并且选择被第一字元线WL4以及排列于第一字元线前方的两个字元线WL2~WL3(第二字元线)所控制的多个页面P3、P5~P7以及P10中具有有效数据的页面作为第一页面。在本实施例中,页面P3、P5~P8以及P10中仅有页面P3以及P5~P7具有有效数据,其中页面P8以及P10不具有有效数据。如上所述,第一页面为页面P3以及P5~P7。接着,控制器160判断备份区块BU_B中是否具有第一页面P3以及P5~P7的备份。在本实施例中,备份区块BU_B仅具有第一页面P3的数据DATA3以及第一页面P7的数据DATA7,备份区块BU_B没有第一页面P5的数据DATA5以及第一页面P6的数据DATA6。因此,控制器160接着将第一页面P5以及P6的数据DATA5以及DATA6分别写入备份区块BU_B的页面P4~P5中,如图5的部分(B)所示。由于被第一字元线WL4以及第二字元线WL2~WL3所控制的页面P3、P5~P7以及P10中页面P8以及P10不具有有效数据。因此,控制器160将冗余数据(dummy data)写入区块B1的页面P8以及P10,以避免有效数据被写入遭受断电攻击后不稳定的页面P8以及P10,如图5部分(C)所示。接着,控制器160根据储存于备份区块BU_B中相应于第一页面P3以及P5~P7的数据DATA3、DATA5~DATA7,将第一页面P3、P5~P7的数据DATA3、DATA5~DATA7写入第一区块B1的第二页面P9、P11~P13中,如图5的部分(D)所示。
图6为本发明所提供的一数据维护方法的一种实施例的流程图。数据维护方法适用于图1的数据储存装置。流程开始于步骤S600。
在步骤S600中,数据储存装置140自一断电事件中恢复。详细而言,断电事件可为任何导致数据储存装置140失去操作电压而无法进行操作的事件。
接着,在步骤S602中,控制器160在快闪存储器180所具有的区块中选择在断电事件之前最后一个进行写入的一第一区块。换言之,控制器160在快闪存储器180所具有的区块中找出在断电事件之前最后一个进行写入的区块。
接着,在步骤S604中,控制器160将第一区块中的多个第一页面中的数据写入第一区块中第一页面外的其他多个第二页面。换言之,在步骤S604中,由于第一区块是在断电事件发生时正在被进行写入的区块,故控制器160将第一区块中原本所具有的有效数据(第一页面的数据),写入其他不具有有效数据的页面(第二页面),以避免数据被储存于不稳定的页面中。流程结束于步骤S604。值得注意的是,在其他实施例中,在步骤S604中可包括上述备份区块的实施例,或者包括亢余数据写入的实施例,本发明不限于此。
图7为本发明所提供的另一数据维护方法的一种实施例的流程图。数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤S700。
在步骤S700中,数据储存装置140自一断电事件中恢复。详细而言,断电事件可为任何导致数据储存装置140失去操作电压而无法进行操作的事件。
接着,在步骤S702中,控制器160在快闪存储器180所具有的区块中选择在断电事件之前最后一个进行写入的一第一区块。换言之,控制器160在快闪存储器180所具有的区块中找出在断电事件之前最后一个进行写入的区块。
接着,在步骤S704中,控制器160在第一区块的页面中选择在断电事件之前最后一个被写入的页面以作为一基准页面。
接着,在步骤S706中,控制器160根据字元线中用以控制基准页面的一第一字元线决定第一页面。详细而言,第一页面为被第一字元线以及排列于第一字元线前方的至少一第二字元线所控制的多个第三页面中具有有效数据的页面。换言之,控制器160选择被第一字元线以及排列于第一字元线前方的至少一第二字元线所控制的多个第三页面中具有有效数据的页面作为第一页面。
接着,在步骤S708中,控制器160判断一备份区块中是否具有第一页面的备份。当备份区块中具有所有第一页面的备份时,流程进行至步骤S710;否则,流程进行至步骤S712。
接着,在步骤S710中,控制器160将在备份区块不具有备份的第一页面中的数据写入备份区块。
接着,在步骤S712中,控制器160判断被第一字元线以及排列于第一字元线前方的至少一第二字元线所控制的多个第三页面是否不具有有效数据。当第三页面中之任一者不具有有效数据时,流程进行至步骤S714;否则,流程进行至步骤S716。
在步骤S714中,控制器160将冗余数据(dummy data)写入第三页面中不具有有效数据的页面,以稳定第一区块。
接着,在步骤S716中,控制器160根据储存于备份区块中相应于第一页面的数据,对第一区块中的其他多个第二页面进行写入以将第一页面的数据写入第二页面。换言之,控制器160读取备用区块中第一页面的数据,并将所读取的第一页面的数据写入第一区块中其他不具有有效数据的页面(第二页面)。流程结束于步骤S716。
本发明所提供的数据储存装置以及数据维护方法可在断电事件后将可能受损坏的数据重写至相同的区块中。在某些实施例中,数据储存装置以及数据维护方法亦可藉由备用区块以及亢余数据使得有效数据更稳定。
本发明的方法,或特定型态或其部份,可以以程式码的型态存在。程式码可储存于实体媒体,如软盘、光盘、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程式产品,其中,当程式码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程式码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程式码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程式码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (18)
1.一种数据储存装置,包括:
一快闪存储器,包括多个区块,每一这些区块包括多个页面;以及
这些一控制器,在该数据储存装置自一断电事件中恢复时,在这些区块中选择在该断电事件之前最后一个进行写入的一第一区块,并且将该第一区块中的多个第一页面中的数据写入该第一区块中这些第一页面外的其他多个第二页面。
2.根据权利要求1所述的数据储存装置,其特征在于,该第一区块还包括多个字元线,并且该第一区块为一二阶储存单元区块,其中该第一区块的每一这些字元线用以控制该第一区块中的这些页面的其中两个页面。
3.根据权利要求2所述的数据储存装置,其特征在于,在该数据储存装置自该断电事件中恢复时,该控制器还用以在该第一区块的多个页面中选择在该断电事件之前最后一个被写入的该页面以作为一基准页面,并且根据这些字元线中用以控制该基准页面的一第一字元线决定这些第一页面。
4.根据权利要求3所述的数据储存装置,其特征在于,这些第一页面为被该第一字元线以及排列于该第一字元线前方的至少一第二字元线所控制的多个第三页面中具有有效数据的页面。
5.根据权利要求4所述的数据储存装置,其特征在于,该控制器还用以将冗余数据写入这些第三页面中不具有有效数据的页面。
6.根据权利要求1所述的数据储存装置,其特征在于,该控制器还用以判断一备份区块中是否具有这些第一页面的备份,并且将这些第一页面中在该备份区块不具有备份者的数据写入该备份区块。
7.根据权利要求6所述的数据储存装置,其特征在于,该控制器还用以根据储存于该备份区块中相应于这些第一页面的数据,对这些第二页面进行写入以将这些第一页面的数据写入这些第二页面。
8.根据权利要求6所述的数据储存装置,其特征在于,该备份区块的数据保护能力高于该第一区块。
9.根据权利要求8所述的数据储存装置,其特征在于,该第一区块为一二阶储存单元区块,并且该备份区块为一单阶储存单元区块。
10.一种数据维护方法,适用于具有一快闪存储器的一数据储存装置,其中这些快闪存储器包括多个区块,每一这些区块包括多个页面,该数据维护方法包括:
在该数据储存装置自一断电事件中恢复时,在这些区块中选择在该断电事件之前最后一个进行写入的一第一区块;以及
将该第一区块中的多个第一页面中的数据写入该第一区块中这些第一页面外的其他多个第二页面。
11.根据权利要求10所述的数据维护方法,其特征在于,该第一区块还包括多个字元线,并且该第一区块为一二阶储存单元区块,其中该第一区块的每一这些字元线用以控制该第一区块中的这些页面的其中两页面。
12.根据权利要求11所述的数据维护方法,其特征在于,还包括:
在该第一区块的多个页面中,选择在该断电事件之前最后一个进行写入的该页面以作为一基准页面;以及
根据这些字元线中用以控制该基准页面的一第一字元线决定这些第一页面。
13.根据权利要求12所述的数据维护方法,其特征在于,这些第一页面为被该第一字元线以及排列于该第一字元线前方的至少一第二字元线所控制的多个第三页面中具有有效数据的页面。
14.根据权利要求13所述的数据维护方法,其特征在于,还包括将冗余数据写入这些第三页面中不具有有效数据的页面。
15.根据权利要求10所述的数据维护方法,其特征在于,还包括:
判断一备份区块中是否具有这些第一页面的备份;以及
将这些第一页面中在该备份区块不具有备份者的数据写入该备份区块。
16.根据权利要求15所述的数据维护方法,其特征在于,上述将该第一区块中的这些第一页面中的数据写入该第一区块中这些第一页面外的其他这些第二页面的步骤还包括:
根据储存于该备份区块中相应于这些第一页面的数据,对这些第二页面进行写入以将这些第一页面的数据写入这些第二页面。
17.根据权利要求15所述的数据维护方法,其特征在于,该备份区块的数据保护能力高于该第一区块。
18.根据权利要求17所述的数据维护方法,其特征在于,该第一区块为一二阶储存单元区块,并且该备份区块为一单阶储存单元区块。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562254806P | 2015-11-13 | 2015-11-13 | |
US62/254,806 | 2015-11-13 | ||
TW105122007A TWI592801B (zh) | 2015-11-13 | 2016-07-13 | 資料儲存裝置及其資料維護方法 |
TW105122007 | 2016-07-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106708754A CN106708754A (zh) | 2017-05-24 |
CN106708754B true CN106708754B (zh) | 2020-04-07 |
Family
ID=58691163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610768284.8A Active CN106708754B (zh) | 2015-11-13 | 2016-08-30 | 数据储存装置及其数据维护方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9747173B2 (zh) |
CN (1) | CN106708754B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102593178B1 (ko) * | 2016-08-19 | 2023-10-25 | 에스케이하이닉스 주식회사 | 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
TWI631456B (zh) * | 2016-10-07 | 2018-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置及資料維護方法 |
TWI606388B (zh) * | 2016-12-14 | 2017-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI649759B (zh) * | 2017-09-28 | 2019-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
TWI649755B (zh) * | 2017-12-22 | 2019-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
TWI677879B (zh) * | 2018-09-03 | 2019-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
CN110910939B (zh) * | 2018-09-18 | 2022-05-31 | 北京兆易创新科技股份有限公司 | 存储单元的阈值调整方法、装置、存储设备和存储介质 |
TWI732192B (zh) * | 2019-03-20 | 2021-07-01 | 點序科技股份有限公司 | 記憶體管理方法及記憶體儲存裝置 |
KR20200113992A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치 |
US11126368B2 (en) * | 2019-04-30 | 2021-09-21 | Western Digital Technologies, Inc. | Systems and methods for finding a last good page in NAND open block |
CN112988069B (zh) * | 2021-03-11 | 2024-03-26 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
CN114116309B (zh) * | 2021-11-19 | 2023-04-14 | 合肥康芯威存储技术有限公司 | 一种存储器的数据存取方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7388780B2 (en) * | 2005-06-22 | 2008-06-17 | Matsushita Electric Industrial Co., Ltd. | Semiconductor memory device and control method for the semiconductor memory device |
TW201312351A (zh) * | 2011-09-14 | 2013-03-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN103064755A (zh) * | 2013-01-25 | 2013-04-24 | 珠海全志科技股份有限公司 | Nand闪存写数据处理方法和装置 |
US8588003B1 (en) * | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
CN104881334A (zh) * | 2015-02-06 | 2015-09-02 | 北京飞杰信息技术有限公司 | 缓存数据的防掉电保护方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI362667B (en) | 2007-12-31 | 2012-04-21 | Phison Electronics Corp | Data writing method for flash memory and controller thereof |
US8144512B2 (en) * | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
TW201133240A (en) | 2010-03-22 | 2011-10-01 | Phison Electronics Corp | System recovery method, and storage medium controller and storage system using the same |
US8737136B2 (en) * | 2010-07-09 | 2014-05-27 | Stec, Inc. | Apparatus and method for determining a read level of a memory cell based on cycle information |
JP5395784B2 (ja) * | 2010-12-27 | 2014-01-22 | 株式会社東芝 | 半導体記憶システム |
TWI423023B (zh) * | 2011-04-22 | 2014-01-11 | Silicon Motion Inc | 快閃記憶體之區塊選取方法及資料儲存裝置 |
US9164887B2 (en) | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
KR20150056704A (ko) * | 2013-11-15 | 2015-05-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI545567B (zh) | 2013-12-20 | 2016-08-11 | Toshiba Kk | Memory system |
JP2015176623A (ja) | 2014-03-14 | 2015-10-05 | 株式会社東芝 | 半導体記憶装置及びメモリコントローラ |
-
2016
- 2016-08-30 CN CN201610768284.8A patent/CN106708754B/zh active Active
- 2016-11-08 US US15/345,785 patent/US9747173B2/en active Active
-
2017
- 2017-07-26 US US15/660,029 patent/US9852032B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7388780B2 (en) * | 2005-06-22 | 2008-06-17 | Matsushita Electric Industrial Co., Ltd. | Semiconductor memory device and control method for the semiconductor memory device |
US8588003B1 (en) * | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
TW201312351A (zh) * | 2011-09-14 | 2013-03-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US8738847B2 (en) * | 2011-09-14 | 2014-05-27 | Phison Electronics Corp. | Data writing method, and memory controller and memory storage apparatus using the same |
CN103064755A (zh) * | 2013-01-25 | 2013-04-24 | 珠海全志科技股份有限公司 | Nand闪存写数据处理方法和装置 |
CN104881334A (zh) * | 2015-02-06 | 2015-09-02 | 北京飞杰信息技术有限公司 | 缓存数据的防掉电保护方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106708754A (zh) | 2017-05-24 |
US20170139784A1 (en) | 2017-05-18 |
US20170322854A1 (en) | 2017-11-09 |
US9747173B2 (en) | 2017-08-29 |
US9852032B2 (en) | 2017-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106708754B (zh) | 数据储存装置及其数据维护方法 | |
US10061512B2 (en) | Data storage device and data writing method thereof | |
CN107977161B (zh) | 数据储存装置及其数据写入方法 | |
US7751238B2 (en) | Memory system protected from errors due to read disturbance and reading method thereof | |
CN110874187B (zh) | 数据储存装置与数据处理方法 | |
KR100882841B1 (ko) | 읽기 디스터번스로 인한 비트 에러를 검출할 수 있는메모리 시스템 및 그것의 읽기 방법 | |
CN101303891B (zh) | 存储系统及其编程方法和包括存储系统的计算系统 | |
US20180196705A1 (en) | Identifying asynchronous power loss | |
US9786379B2 (en) | Data storage device and data maintenance method | |
CN107918523B (zh) | 数据储存装置及其数据写入方法 | |
US9405620B2 (en) | Data storage device and error correction method thereof | |
WO2014092966A1 (en) | System and method to update read voltages in a non-volatile memory in response to tracking data | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
US20180330793A1 (en) | Responding to power loss | |
CN111858390A (zh) | 存储器系统和操作存储器系统的方法 | |
CN110069362B (zh) | 数据储存装置与数据处理方法 | |
KR102389542B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN115344418A (zh) | 存储器系统及其操作方法 | |
KR102632690B1 (ko) | 비휘발성 메모리 장치 및 그 프로그램 방법 | |
US10019186B2 (en) | Data maintenance method for error control and data storage device using the same | |
TWI592801B (zh) | 資料儲存裝置及其資料維護方法 | |
KR20150056203A (ko) | 반도체 장치 및 이의 동작 방법 | |
KR20220107733A (ko) | 보호모드를 지원하는 비휘발성 메모리 장치 및 그를 포함하는 메모리 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |