CN108228385A - 数据储存装置及其数据维护方法 - Google Patents
数据储存装置及其数据维护方法 Download PDFInfo
- Publication number
- CN108228385A CN108228385A CN201710181790.1A CN201710181790A CN108228385A CN 108228385 A CN108228385 A CN 108228385A CN 201710181790 A CN201710181790 A CN 201710181790A CN 108228385 A CN108228385 A CN 108228385A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- block
- space
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013500 data storage Methods 0.000 title abstract description 8
- 238000012423 maintenance Methods 0.000 title abstract 2
- 230000015654 memory Effects 0.000 claims abstract description 32
- 230000005611 electricity Effects 0.000 claims description 3
- 101000836906 Homo sapiens Signal-induced proliferation-associated protein 1 Proteins 0.000 description 10
- 102100027163 Signal-induced proliferation-associated protein 1 Human genes 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 101150118987 spaM gene Proteins 0.000 description 6
- 238000006467 substitution reaction Methods 0.000 description 6
- 101001062854 Rattus norvegicus Fatty acid-binding protein 5 Proteins 0.000 description 4
- 101100365087 Arabidopsis thaliana SCRA gene Proteins 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 102000012688 DDA1 Human genes 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 238000009414 blockwork Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005138 cryopreservation Methods 0.000 description 1
- 101150044395 dda1 gene Proteins 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 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/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据储存装置及其数据维护方法,包括一快闪存储器以及一控制器。快闪存储器包括多个区块,每一区块包括依照一第一顺序排列的多个页面。当数据储存装置自一断电事件回复时,控制器判断区块中的一暂时区块的第X面是否可被成功读取。当第X页面可被成功读取时,控制器将暂时区块表中的第X+1个页面储存无效数据以及一暂时区块表,其中第X页面是暂存区块中在断电事件前最后一个被写入的页面,暂时区块表中记录了暂存区块中所有页面的信息,并且X为一正整数。
Description
技术领域
本发明有关于一种数据储存装置,特别有关于可自断电事件回复数据状态的数据储存装置。
背景技术
快闪存储器为一种普遍的非挥发性数据储存装置,是以电性方式抹除与程序化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD)、嵌入式快闪存储器模组(eMMC)…等使用。
快闪存储器(如,NAND FLASH)的储存阵列包括多个区块(blocks),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。另外,快闪存储器中的实体页面与主机装置所指定的逻辑页面的转换关系需要一个表来记录。当非预期的断电事件发生时,储存于随机存储器中的表会丢失。如何有效重建丢失的表是一个重要的课题。
发明内容
本发明所提供的数据储存装置以及数据维护方法可独立将系统数据储存在暂时区块中,并且将暂时区块表备份在暂时区块中的每个页面中。
本发明提供一种数据储存装置。数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个区块,每一区块包括依照一第一顺序排列的多个页面。当数据储存装置自一断电事件回复时,控制器判断区块中的一暂时区块的第X面是否可被成功读取。当第X页面可被成功读取时,控制器将无效数据以及一暂时区块表写入暂时区块的第X+1个页面中,其中第X页面是暂存区块中在断电事件前最后一个被写入的页面,暂时区块表中记录了暂存区块中所有页面的信息,并且X为一正整数。
在一实施例中,在暂时区块中的每一页面用以储存长度小于一既定长度的系统数据,其中暂时区块中的第X+1页面不具有其他使用者数据。
在另一实施例中,控制器系使用不同的多个读取电压,重复读取第X页面以判断第X页面是否可被成功读取。当控制器使用了两个以上的读取电压才成功读取第X页面时,控制器还使用自第X页面成功读取的数据,对第X页面再次进行写入。
另外,当第X页面无法被成功读取时,控制器则读取暂时区块中的第X-1页面。当第X页面无法被成功读取时,控制器还舍弃暂时区块,选取区块中之另一者作为一新的暂时区块,并且将暂时区块的第1~X-1页面中所储存的数据写入新的暂时区块中。
一实施例中,控制器在寻找程序中获得暂时区块中的第X区块,并且每一页面皆具有一使用者数据空间以及一备用空间。在寻找程序中,控制器自暂时区块中的第1个页面开始,依照第一顺序读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止。在读取到不具有有效数据的备用空间后,控制器还自所读取到不具有有效数据的备用空间所相应的页面的下一个开始,依照一第二顺序逐一读取暂时区块中的页面的备用空间,直到所读取的备用空间具有有效数据为止,其中控制器依照第二顺序读取到具有有效数据的备用空间所属的页面为一第一空白页面,并且第二顺序与第一顺序相反。控制器还读取第一空白页面中的使用者数据空间,并且判断第一空白页面中的使用者数据空间是否具有有效数据,以确认第一空白页面为暂时区块中第一个不具有使用者数据的页面,其中当第一空白页面中的使用者数据空间具有有效数据时,控制器还自第一空白页面开始依照第一顺序逐一读取暂时区块中的页面的使用者数据空间,直到所读取的使用者数据空间不具有有效数据为止,其中使用者数据空间不具有有效数据的页面取代原第一空白页面成为新的第一空白页面。控制器还自第一空白页面的上一个页面或者新的第一空白页面的上一个页面开始,依照第二顺序逐一读取暂时区块中的页面的使用者数据空间,并且判断所读取的页面的使用者空间是否具有有效数据,其中反序所读取具有有效数据的使用者数据空间所相应的页面,为暂时区块中最后一个具有有效数据的页面,并且为第X页面。在每一页面皆具有一使用者数据空间以及一备用空间,其中备用空间用以储存所相应的页面的数据,暂时区块中的每一页面中的使用者数据空间用以储存长度小于一既定长度的系统数据,并且第一暂时区块表储存于第X页面中的备用空间中。
本发明另提供一种数据维护方法,适用于具有一快闪存储器的一数据储存装置,其中快闪存储器包括多个区块,并且每一区块包括依照一第一顺序排列的多个页面。数据维护方法包括:当数据储存装置自一断电事件回复时,判断区块中的一暂时区块的第X个面是否可被成功读取;以及当第X个页面可被成功读取时,将无效数据以及一暂时区块表写入第X+1页面,其中第X个页面是暂存区块中在断电事件前最后一个被写入的页面,暂时区块表中记录了暂存区块中所有页面的信息,并且X为一正整数。
在一实施例中,暂时区块中的第X+1页面不具有其他使用者数据。判断第X个面是否可被成功读取的步骤还包括:使用不同的多个读取电压,重复读取第X个页面以判断第X页面是否可被成功读取,其中当使用了两个以上的读取电压才成功读取第X页面时,数据维护方法还包括使用自第X页面成功读取的数据,对第X页面再次进行写入。
在另一实施例中,数据维护方法还包括:当第X页面无法被成功读取时,读取暂时区块中的第X-1页面;当第X页面无法被成功读取时,舍弃暂时区块,选取区块中的另一者作为一新的暂时区块,并且将暂时区块的第1~X-1页面中所储存的数据写入新的暂时区块中。
又另一实施例中,每一页面皆具有一使用者数据空间以及一备用空间,其中在寻找程序中,数据维护方法还包括:自暂时区块中的第1个页面开始,依照第一顺序读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止;在读取到不具有有效数据的备用空间后,自所读取到不具有有效数据的备用空间所相应的页面的下一个页面开始,依照一第二顺序逐一读取暂时区块中的页面的备用空间,直到所读取的备用空间具有有效数据为止,其中依照第二顺序读取到具有有效数据的备用空间所属的页面为一第一空白页面,并且第二顺序与第一顺序相反;读取第一空白页面中的使用者数据空间,并且判断第一空白页面中的使用者数据空间是否具有有效数据,以确认第一空白页面为暂时区块中第一个不具有使用者数据的页面;当第一空白页面中的使用者数据空间具有有效数据时,自第一空白页面开始依照第一顺序逐一读取暂时区块中的页面的使用者数据空间,直到所读取的使用者数据空间不具有有效数据为止,其中使用者数据空间不具有有效数据的页面取代原第一空白页面成为新的第一空白页面;自第一空白页面的上一个页面或者新的第一空白页面的上一个页面开始,依照第二顺序逐一读取暂时区块中的页面的使用者数据空间,并且判断所读取的页面的使用者空间是否具有有效数据,其中反序所读取具有有效数据的使用者数据空间所相应的页面,为暂时区块中最后一个具有有效数据的页面,并且为第X页面。
附图说明
图1为本发明所提供的一电子系统的一种实施例的方块图。
图2为本发明所提供的一快闪存储器的一种实施例的方块图。
图3为本发明所提供的一暂时区块的一种实施例的示意图。
图4为本发明所提供的一暂时区块的另一种实施例的示意图。
图5为本发明所提供的一暂时区块的另一种实施例的示意图。
图6为本发明所提供的一数据维护方法的一种实施例的流程图。
图7为本发明所提供的一目前区块表整理方法的一种实施例的流程图。
图8为本发明所提供的一寻找程序的一种实施例的流程图。
符号说明
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
166 随机存取存储器;
180 快闪存储器;
P1~PN 页面;
B0~BN 区块;
DAA1~DAAN 使用者数据空间;
SPA1~SPAN 备用空间;
D1 第一顺序;
D2 第二顺序;
DA1~DA12 数据;
TP1~TP12 暂时区块表;
SP1~SP12 备份数据;
S600~S610、S700~S710、S800~S806 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图1为本发明所提供的一电子系统的一种实施例的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机120所下达的命令操作。控制器160包括一运算单元162、一永久存储器(如,唯读存储器ROM)164以及随机存取存储器(RAM)166。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。随机存取存储器(RAM)166用以载入程序码与参数以提供控制器160根据所载入的程序码与参数动作。快闪存储器180包括多个区块,每一区块包括依照一第一顺序D1排列的多个页面P1~PN,其中每一页面P1~PN具有一使用者数据空间DAA1~DAAN以及一备用空间(SpareArea)SPA1~SPAN,如图2所示。值得注意的是,快闪存储器180以区块为最小单位进行抹除,并且页面为最小单位进行写入。另外,备用空间SPA1~SPAN可在其所相应的页面的前方或者后方,本发明不限于此。在其他实施例中,备用空间SPA1~SPAN亦可位于区块B0~BN的前端或者后端。值得注意的是,在一实施例中,具有有效数据的每一页面的备用空间中包括所处的页面的数据,例如相应的逻辑地址、数据状态等等。
在一实施例中,控制器160会自快闪存储器180的区块B0~BN中选取一个可使用的区块以作为一目前区块,并且在随机存取存储器166中建立一实体转逻辑对应表以记录目前区块的页面的实体地址与数据的页面的逻辑地址的对应关系。当目前区块已经被使用者数据写满(无法再写入新的数据时),控制器160将实体转逻辑对应表整理至储存于快闪存储器180中的一数据链结关系表,并且将目前区块定义为数据母区块,重新自快闪存储器180的区块B0~BN中选取一个可使用的区块以作为新的目前区块,并且在随机存取存储器166中建立新的一实体转逻辑对应表以记录新的目前区块的页面的实体地址与数据的页面的逻辑地址的对应关系。
然而,在被写入快闪存储器180的使用者数据中,有些类型的数据会重复地被写入相同的逻辑地址,造成先前在同个逻辑地址的数据被无效。当区块B0~BN中的数据母区块具有太多无效数据时,会导致控制器160频繁的执行整理工作,以释放可用的存储器空间。然而,频繁的整理工作会降低数据储存装置140的效能。
有鉴于此,在一实施例中,由于系统数据通常会对同个逻辑地址重复地进行写入,因此控制器160会将系统数据储存于另一个区块(暂时区块)之中。另外,控制器160亦在随机存取存储器166中,建立一暂时区块表,以记录暂时区块的页面的实体地址与数据的页面的逻辑地址的对应关系。值得注意的是,暂时区块表中记录了暂存区块中所有页面的信息。换言之,暂时区块表中记录了暂存区块中所有页面地址对应关系。
在本实施例中,快闪存储器180具有一暂时区块以及一目前区块,其中暂时区块是用以储存系统数据,目前区块是用以储存系统数据以外的数据。换言之,暂时区块中的每一页面中的使用者数据空间用以储存长度小于一既定长度的系统数据。值得注意的是,系统数据指的是主机120或者数据储存装置140为了操作上的需求而写入快闪存储器180的数据,并且系统数据也属于使用者数据的一种。在一实施例中,系统数据皆小于既定长度。举例而言,在一实施例中,系统数据的长度皆小于12K位元组,但本发明不限于此。在其他实施例中,既定长度亦可为9K位元组、10K位元组、11K位元组、13K位元组、14K位元组等等。值得注意的是,在本实施例中,系统数据的长度皆小于一个页面中使用者数据空间的长度。在一实施例中,每个页面P0~PN中的使用者数据空间DDA0~DDAN的大小为16K位元组,但本发明不限于此。另外,控制器160可根据数据的长度以及数据所相应的逻辑地址来判断所需写入的数据是否属于系统数据。
当发生一断电事件时,随机存取存储器166中所储存的实体转逻辑对应表及暂时区块表会因为电力消失而丢失。因此当发生一断电事件并且数据储存装置140恢复电力后,控制器160需要依序读取暂时区块以及目前区块中的页面以重新在随机存取存储器166中建立一实体转逻辑对应表以及及暂时区块表。然而,上述方法需要很长的时间一一对所有暂时区块以及目前区块中的页面进行读取,并且需要特定的演算法来辨别数据的写入顺序或者新旧。
有鉴于此,在一实施例中,由于系统数据的长度会小于使用者数据空间DDA1~DDAN,故控制器160在对暂时区块中的页面进行写入的同时,会将目前的暂时区块表也一起写入该页面中,以备份目前的暂时区块表。因此,当数据储存装置140自断电事件回复时,控制器160可直接读取在断电事件发生前暂时区块中最后一个被写入的页面,即可获得最新的暂时区块表。
详细而言,当该数据储存装置140自一断电事件回复时,控制器160执行一寻找程序以获得暂时区块中的第X个页面,其中第X个页面是暂存区块中在断电事件前最后一个被写入的页面,并且X为一正整数。接着,控制器160判断所获得的第X个面是否可被成功读取,其中当页面中的使用者数据空间的数据可以藉由错误校正等方式读取到正确的数据时,该页面则为可以被成功读取。当第X个页面可被成功读取时,控制器160将第X个页面中所储存的一第一暂时区块表载入随机存取存储器166中,以作为目前的暂时区块表。
在一实施例中,控制器160还藉由重复读取的方式校正第X个页面中的错误位元,以成功读取第X个页面中的数据。详细而言,控制器160是使用不同的多个读取电压,重复读取第X个页面,以判断第X个页面是否可被成功读取。在本实施例中,当控制器160使用了两个以上的读取电压才成功读取第X个页面时,控制器160还用以对第X个页面进行重复写入,以稳定第X个页面中的数据。换言之,当控制器160使用了两个以上的读取电压才成功读取第X个页面时,控制器160使用自第X个页面成功读取的数据,对第X个页面再次进行写入。
在另一实施例中,在第一暂时区块表载入随机存取存储器后,控制器160还用以根据目前暂时区块的状态更新第一暂时区块表以产生一第二暂时区块表,并且将第二暂时区块表以及无效数据(dummy data)写入暂时区块中的第X+1个页面。值得注意的是,在某些实施例中,控制器160仅会在第X+1个页面的使用者数据空间中写入目前最新的暂时区块表(第二暂时区块表),控制器160不会再将其他数据写入第X+1个页面中。换言之,暂时区块中的第X+1个页面不具有其他使用者数据。
当第X个页面无法被成功读取时,控制器160则读取暂时区块中的第X-1个页面,并且将第X-1个页面中所储存的第三暂时区块表载入随机存取存储器166中,以作为目前的暂时区块表。另外,当第X个页面无法被成功读取时,控制器160还用以选择一个新的区块取代原本的暂时区块。详细而言,当第X个页面无法被成功读取时,控制器160还舍弃目前的暂时区块,选取区块中的另一者作为一新的暂时区块,并且将旧的暂时区块的第1~X-1个页面中所储存的数据写入新的暂时区块中。
在一实施例的寻找程序中,控制器160是自暂时区块中的第1个页面开始,依照第一顺序D1读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止。在读取到不具有有效数据的备用空间后,控制器160还自所读取到不具有有效数据的备用空间所相应的页面的下一个页面开始,依照一第二顺序D2逐一读取暂时区块中的页面的备用空间,直到所读取的备用空间具有有效数据为止,其中控制器160依照第二顺序D2读取到具有有效数据的备用空间所属的页面为一第一空白页面,并且第二顺序D2与第一顺序D1相反。在获得了第一空白页面后,控制器160还读取第一空白页面中的使用者数据空间,并且判断第一空白页面中的使用者数据空间是否具有有效数据,以确认第一空白页面为暂时区块中第一个不具有使用者数据的页面。当第一空白页面中之的用者数据空间具有有效数据时,控制器160还自第一空白页面开始依照第一顺序D1逐一读取暂时区块中的页面的使用者数据空间,直到所读取的使用者数据空间不具有有效数据为止,其中所读取到使用者数据空间不具有有效数据的页面取代原第一空白页面成为新的第一空白页面。最后,控制器160自第一空白页面的上一个页面或者新的第一空白页面的上一个页面开始,依照第二顺序D2逐一读取暂时区块中的页面的使用者数据空间,并且判断所读取的页面的使用者空间是否具有有效数据,以获得暂时区块中最后一个写入的页面,其中反序所读取具有有效数据的使用者数据空间所相应的页面,为暂时区块中最后一个具有有效数据的页面(第X个页面)。
图3为本发明所提供的一暂时区块的一种实施例的示意图。在本实施例中,暂时区块B2具有依照第一顺序D1排列的17个页面P1~P17,其中图3所示为断电事件发生后,暂时区块B2中页面P1~P17的状态。详细而言,暂时区块B2中的第1~12个页面P1~P12中的使用者数据空间DAA1~DAA12皆已被写入有效数据(使用者数据DA~D12以及暂时区块表TP1~TP12),并且第1~12个页面P1~P12中的备份空间SP1~SP12也皆已被写入有效数据(备份数据SP1~SP12)。
在寻找程序中,控制器160先自暂时区块B2中的第1个页面P1开始,依照第一顺序D1读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止。在本实施例中,既定数量为3,但本发明不限于此。换言之,控制器160先读取暂时区块B2中的第1个页面P1的备用空间SPA1。由于备用空间SPA1已具有有效数据SP1,因此控制器160继续依照第一顺序D1的方向,读取与第1个页面P1间隔3个页面的第5个页面P5的备用空间SPA5。由于备用空间SPA5已具有有效数据SP5,因此控制器160继续依照第一顺序D1的方向,读取与第5个页面P5间隔3个页面的第14个页面P14的备用空间SPA14。由于页面P14的备用空间SPA14不具有有效数据,故控制器160停止依照第一顺序D1读取暂时区块B2中间隔一既定数量的页面的备用空间。在获得了不具有有效数据的备用空间SPA14的页面P14后,控制器160还自第14个页面P14开始,依照第二顺序D2逐一读取暂时区块B2中的页面的备用空间,直到所读取的备用空间具有有效数据为止。换言之,控制器160接着依照第二顺序D2的方向,读取在第14个页面P14之前的第13个页面P13的备份空间SPA13。由于备用空间SPA13不具有有效数据,因此控制器160继续依照第二顺序D2的方向,读取在第13个页面P13之前的第12个页面P12的备份空间SPA12。由于备份空间SPA12具有有效数据SP12,因此控制器160停止依照第二顺序D2逐一读取暂时区块B2中的页面的备用空间。值得注意的是,到目前为止,控制器160假设第12个页面P12为暂时区块B2中第一个空白的页面(第一空白页面)。接着,控制器160还读取第12个页面P12(第一空白页面)中的使用者数据空间DDA12,并且判断第12个页面P12中的使用者数据空间DDA12是否具有有效数据,以确认第12个页面P12为暂时区块B2中第一个不具有使用者数据的页面。在本实施例中,由于第12个页面P12的使用者数据空间DDA12具有有效数据DA12以及TP12。因此,控制器160判断第12个页面P12不是暂时区块B2中第一个不具有使用者数据的页面。接着,控制器160还自第12个页面P12的下一个页面开始依照第一顺序D1逐一读取暂时区块B2中的页面的使用者数据空间,直到所读取的使用者数据空间不具有有效数据为止。换言之,控制器160首先读取第13个页面P13的使用者数据空间DDA13。由于使用者数据空间DDA13不具有有效数据,因此控制器160将第13个页面P13取代原第一空白页面(第12页面P12)成为新的第一空白页面。换言之,控制器160确认第13个页面P13为暂时区块B2中第一个空白的页面。最后,控制器160开始寻找暂时区块B2中最后一个被写入的页面。换言之,控制器160自第13个页面P13的上一个页面(第12个页面P12)开始,依照第二顺序D2逐一读取暂时区块B2中的页面的使用者数据空间。在本实施例中,第12个页面P12的使用者数据空间DAA12具有有效数据DA12以及TP12。因此,控制器160获得暂时区块B2中最后一个被写入的页面为第12个页面P12,并且第12个页面P12为第X个页面。
当控制器160判断第12个页面P12可被成功读取时,控制器160将第12个页面P12中所储存的暂时区块表TP12载入随机存取存储器166中,以作为目前的暂时区块表。其中,当控制器160使用了两个以上的读取电压才成功读取第12个页面P12时,控制器160将数据DA12以及TP12重复再写入第12个页面P12中,以稳定第12个页面P12中的数据。另外,在暂时区块表TP12载入随机存取存储器166以做为目前暂时区块表后,控制器160还用以根据目前暂时区块的状态更新目前暂时区块表,并且将更新后的目前暂时区块表以及无效数据(dummy data)写入暂时区块B2中的第13个页面P13。
当控制器160判断第12个页面P12无法被成功读取时,控制器160则读取暂时区块B2中的第11个页面P11,并且将第11个页面P11中所储存的暂时区块表TP11载入随机存取存储器166中,以作为目前的暂时区块表。另外,控制器160还用以选择一个新的区块(例如,区块B5)取代原本的暂时区块B2。详细而言,当第12个页面P12无法被成功读取时,控制器160还舍弃暂时区块B2,选取区块B5作为一新的暂时区块,并且将暂时区块B2的第1~11个页面P1~P11中所储存的数据DA1~DA11以及TP1~TP11写入暂时区块B5中。
图4为本发明所提供的一暂时区块的一种实施例的示意图。在本实施例中,暂时区块B2具有依照第一顺序D1排列的17个页面P1~P17,其中图4所示为断电事件发生后,暂时区块B2中页面P1~P17的状态。详细而言,暂时区块B2中的第1~11个页面P1~P12中的使用者数据空间DAA1~DAA11皆已被写入有效数据(使用者数据DA~D11以及暂时区块表TP1~TP11),并且第1~12个页面P1~P12中的备份空间SP1~SP12也皆已被写入有效数据(备份数据SP1~SP12)。
在寻找程序中,控制器160先自暂时区块B2中的第1个页面P1开始,依照第一顺序D1读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止。在本实施例中,既定数量为3,但本发明不限于此。换言之,控制器160先读取暂时区块B2中的第1个页面P1的备用空间SPA1。由于备用空间SPA1已具有有效数据SP1,因此控制器160继续依照第一顺序D1的方向,读取与第1个页面P1间隔3个页面的第5个页面P5的备用空间SPA5。由于备用空间SPA5已具有有效数据SP5,因此控制器160继续依照第一顺序D1的方向,读取与第5个页面P5间隔3个页面的第14个页面P14的备用空间SPA14。由于页面P14的备用空间SPA14不具有有效数据,故控制器160停止依照第一顺序D1读取暂时区块B2中间隔一既定数量的页面的备用空间。在获得了不具有有效数据的备用空间SPA14的页面P14后,控制器160还自第14个页面P14开始,依照第二顺序D2逐一读取暂时区块B2中的页面的备用空间,直到所读取的备用空间具有有效数据为止。换言之,控制器160接着依照第二顺序D2的方向,读取在第14个页面P14之前的第13个页面P13的备份空间SPA13。由于备用空间SPA13不具有有效数据,因此控制器160继续依照第二顺序D2的方向,读取在第13个页面P13之前的第12个页面P12的备份空间SPA12。由于备份空间SPA12具有有效数据SP12,因此控制器160停止依照第二顺序D2逐一读取暂时区块B2中的页面的备用空间。值得注意的是,到目前为止,控制器160假设第12个页面P12为暂时区块B2中第一个空白的页面(第一空白页面)。接着,控制器160还读取第12个页面P12(第一空白页面)中的使用者数据空间DDA12,并且判断第12个页面P12中的使用者数据空间DDA12是否具有有效数据,以确认第12个页面P12为暂时区块B2中第一个不具有使用者数据的页面。在本实施例中,由于第12个页面P12的使用者数据空间DDA12不具有有效数据。因此,控制器160判断第12个页面P12为暂时区块B2中第一个不具有使用者数据的页面。最后,控制器160开始寻找暂时区块B2中最后一个被写入的页面。换言之,控制器160自第12个页面P12的上一个页面(第11个页面P11)开始,依照第二顺序D2逐一读取暂时区块B2中的页面的使用者数据空间。在本实施例中,第11个页面P11的使用者数据空间DAA11具有有效数据DA11以及TP11。因此,控制器160获得暂时区块B2中最后一个被写入的页面为第11个页面P11,并且第11个页面P11为第X个页面。
当控制器160判断第11个页面P11可被成功读取时,控制器160将第11个页面P11中所储存的暂时区块表TP11载入随机存取存储器166中,以作为目前的暂时区块表。其中,当控制器160使用了两个以上的读取电压才成功读取第11个页面P11时,控制器160将数据DA11以及TP11重复再写入第11个页面P11中,以稳定第11个页面P11中的数据。另外,在暂时区块表TP11载入随机存取存储器166以做为目前暂时区块表后,控制器160还用以根据目前暂时区块的状态更新目前暂时区块表,并且将更新后的目前暂时区块表以及无效数据(dummy data)写入暂时区块B2中的第12个页面P12的使用者数据空间DAA12中,并且更新第12个页面P12的备份数据SP12。
当控制器160判断第11个页面P11无法被成功读取时,控制器160则读取暂时区块B2中的第10个页面P10,并且将第10个页面P10中所储存的暂时区块表TP10载入随机存取存储器166中,以作为目前的暂时区块表。另外,控制器160还用以选择一个新的区块(例如,区块B5)取代原本的暂时区块B2。详细而言,当第11个页面P11无法被成功读取时,控制器160还舍弃暂时区块B2,选取区块B5作为一新的暂时区块,并且将暂时区块B2的第1~10个页面P1~P10中所储存的数据DA1~DA10以及TP1~TP10写入暂时区块B5中。
图5为本发明所提供的一暂时区块的一种实施例的示意图。在本实施例中,暂时区块B2具有依照第一顺序D1排列的17个页面P1~P17,其中图3所示为断电事件发生后,暂时区块B2中页面P1~P17的状态。详细而言,暂时区块B2中的第1~12个页面P1~P12中的使用者数据空间DAA1~DAA12皆已被写入有效数据(使用者数据DA~D12以及暂时区块表TP1~TP12),并且第1~11个页面P1~P11中的备份空间SP1~SP11也皆已被写入有效数据(备份数据SP1~SP11)。
在寻找程序中,控制器160先自暂时区块B2中的第1个页面P1开始,依照第一顺序D1读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止。在本实施例中,既定数量为3,但本发明不限于此。换言之,控制器160先读取暂时区块B2中的第1个页面P1的备用空间SPA1。由于备用空间SPA1已具有有效数据SP1,因此控制器160继续依照第一顺序D1的方向,读取与第1个页面P1间隔3个页面的第5个页面P5的备用空间SPA5。由于备用空间SPA5已具有有效数据SP5,因此控制器160继续依照第一顺序D1的方向,读取与第5个页面P5间隔3个页面的第14个页面P14的备用空间SPA14。由于页面P14的备用空间SPA14不具有有效数据,故控制器160停止依照第一顺序D1读取暂时区块B2中间隔一既定数量的页面的备用空间。在获得了不具有有效数据的备用空间SPA14的页面P14后,控制器160还自第14个页面P14开始,依照第二顺序D2逐一读取暂时区块B2中的页面的备用空间,直到所读取的备用空间具有有效数据为止。换言之,控制器160接着依照第二顺序D2的方向,读取在第14个页面P14之前的第13个页面P13的备份空间SPA13。由于备用空间SPA13不具有有效数据,因此控制器160继续依照第二顺序D2的方向,读取在第13个页面P13之前的第12个页面P12的备份空间SPA12。由于备份空间SPA12也不具有有效数据SP12,因此控制器160继续依照第二顺序D2的方向,读取在第12个页面P12之前的第11个页面P11的备份空间SPA11。由于备份空间SPA11具有有效数据SP11,因此控制器160停止依照第二顺序D2逐一读取暂时区块B2中的页面的备用空间。值得注意的是,到目前为止,控制器160假设第11个页面P11为暂时区块B2中第一个空白的页面(第一空白页面)。接着,控制器160还读取第11个页面P11(第一空白页面)中的使用者数据空间DDA11,并且判断第11个页面P11中的使用者数据空间DDA11是否具有有效数据,以确认第11个页面P11为暂时区块B1中第一个不具有使用者数据的页面。在本实施例中,由于第11个页面P11的使用者数据空间DDA11具有有效数据DA11以及TP11。因此,控制器160判断第11个页面P11不是暂时区块B2中第一个不具有使用者数据的页面。接着,控制器160还自第11个页面P11的下一个页面开始依照第一顺序D1逐一读取暂时区块B2中的页面的使用者数据空间,直到所读取的使用者数据空间不具有有效数据为止。换言之,控制器160首先读取第12个页面P12的使用者数据空间DDA12。由于使用者数据空间DDA12具有有效数据DA12以及TP12,因此控制器160继续读取第13个页面P13的使用者数据空间DDA13,由于使用者数据空间DDA13不具有有效数据,因此控制器160将第13个页面P13取代原第一空白页面(第11页面P11)成为新的第一空白页面。换言之,控制器160确认第13个页面P13为暂时区块B2中第一个空白的页面。最后,控制器160开始寻找暂时区块B2中最后一个被写入的页面。换言之,控制器160自第13个页面P13的上一个页面(第12个页面P12)开始,依照第二顺序D2逐一读取暂时区块B2中的页面的使用者数据空间。在本实施例中,第12个页面P12的使用者数据空间DAA12具有有效数据DA12以及TP12。因此,控制器160获得暂时区块B2中最后一个被写入的页面为第12个页面P12,并且第12个页面P12为第X个页面。
图6为本发明所提供的一数据维护方法的一种实施例的流程图。数据维护方法适用于图1所示的数据储存装置140,用以在数据储存装置140发生一断电事件并且数据储存装置140恢复电力后重建数据状态。流程开始于步骤S600。
在步骤S600中,当数据储存装置140发生一断电事件并且数据储存装置140恢复电力后,控制器160执行一寻找程序以获得暂时区块中的第X个页面,其中第X个页面是暂存区块中在断电事件前最后一个被写入的页面,并且X为一正整数。
接着,在步骤S602中,控制器160判断所获得的第X个面是否可被成功读取,其中当页面中的使用者数据空间的数据可以藉由错误校正等方式读取到正确的数据时,该页面则为可以被成功读取。当第X个面可被成功读取时,流程进行至步骤S604;否则,流程进行至步骤S608。
在步骤S604中,控制器160将第X个页面中所储存的一第一暂时区块表载入随机存取存储器166中,以作为目前的暂时区块表。
接着,在步骤S606中,控制器160还用以根据目前暂时区块的状态更新第一暂时区块表以产生一第二暂时区块表,并且将第二暂时区块表以及无效数据(dummy data)写入暂时区块中的第X+1个页面。值得注意的是,在某些实施例中,控制器160仅会在第X+1个页面的使用者数据空间中写入目前最新的暂时区块表(第二暂时区块表),控制器160不会再将其他数据写入第X+1个页面中。换言之,暂时区块中的第X+1个页面不具有其他使用者数据。流程结束于步骤S606,控制器160继续使用原本的暂时区块储存系统数据。
在步骤S608中,控制器160读取暂时区块中的第X-1个页面,并且将第X-1个页面中所储存的第三暂时区块表载入随机存取存储器166中,以作为目前的暂时区块表。
接着,在步骤S610中,控制器160选择一个新的区块取代原本的暂时区块。详细而言,当第X个页面无法被成功读取时,控制器160还舍弃目前的暂时区块,选取区块中的另一者作为一新的暂时区块,并且将旧的暂时区块的第1~X-1个页面中所储存的数据写入新的暂时区块中。流程结束于步骤S610。
图7为本发明所提供的一数据维护方法的另一种实施例的流程图。数据维护方法适用于图1所示的数据储存装置140,用以在数据储存装置140发生一断电事件并且数据储存装置140恢复电力后重建数据状态。流程开始于步骤S700,其中步骤S704~S710相似于图6的步骤S604~S610,在此不再赘述。
在步骤S700中,当数据储存装置140发生一断电事件并且数据储存装置140恢复电力后,控制器160执行一寻找程序以获得暂时区块中的第X个页面,其中第X个页面是暂存区块中在断电事件前最后一个被写入的页面,并且X为一正整数。
接着,在步骤S701中,控制器160使用一初级读取电压对第X个页面进行读取,以判断第X个面是否可被成功读取。当第X个面可被成功读取时,流程进行至步骤S704;否则,流程进行至步骤S703。
在步骤S702中,控制器160使用不同阶级的多个读取电压对第X个页面进行读取,以判断第X个面是否可被成功读取。当第X个面可被成功读取时,流程进行至步骤S703;否则,流程进行至步骤S708。
在步骤S703中,控制器160还用以对第X个页面进行重复写入,以稳定第X个页面中的数据。换言之,当控制器160使用了两个以上的读取电压才成功读取第X个页面时,控制器160使用自第X个页面成功读取的数据,对第X个页面再次进行写入。
图8为本发明所提供的一寻找程序的一种实施例的流程图。寻找程序适用于图1所示的数据储存装置140、图6中的步骤S600以及图7中的步骤S700,用以在数据储存装置140自断电事件回复后找到最后一个被写入的页面。流程开始于步骤S800。
在步骤S800中,控制器160自暂时区块中的第1个页面开始,依照第一顺序D1读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止。
接着,在步骤S802中,控制器160自所读取到不具有有效数据的备用空间所相应的页面的下一个页面开始,依照一第二顺序D2逐一读取暂时区块中的页面的备用空间,直到所读取的备用空间具有有效数据为止,其中控制器160依照第二顺序D2的方向读取到具有有效数据的备用空间所属的页面为目前控制器160所假设的第一空白页面,并且第二顺序D2与第一顺序D1相反。
接着,在步骤S804中,控制器160自假设的第一空白页面开始,依照第一顺序D1逐一读取暂时区块中的页面的使用者数据空间,以寻找暂时区块中第一个不具有使用者数据的页面。
接着,控制器160自暂时区块中第一个不具有使用者数据的页面的上一个页面开始,依照第二顺序D2逐一读取暂时区块中的页面的使用者数据空间,并且判断所读取的页面的使用者空间是否具有有效数据,以获得暂时区块中最后一个写入的页面,其中反序所读取具有有效数据的使用者数据空间所相应的页面,为暂时区块中最后一个具有有效数据的页面(第X个页面)。
本发明所提供的数据储存装置140以及数据维护方法可独立将系统数据储存在暂时区块中,并且将暂时区块表备份在暂时区块中的每个页面中。
本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (22)
1.一种数据储存装置,包括:
一快闪存储器,包括多个区块,每一这些区块包括依照一第一顺序排列的多个页面;以及
一控制器,当该数据储存装置自一断电事件回复时,判断这些区块中的一暂时区块的第X页面是否可被成功读取,并且当该第X页面可被成功读取时,将该暂时区块的一第一X+1页面储存无效数据及一暂时区块表,其中该第X页面是该暂存区块中该断电事件前最后一个被写入的页面,该暂时区块表中记录了该暂存区块中所有这些页面的信息,并且X为一正整数。
2.根据权利要求1所述的数据储存装置,其特征在于,在该暂时区块中的每一这些页面是用以储存长度小于一既定长度的系统数据。
3.根据权利要求1所述的数据储存装置,其特征在于,该暂时区块中的该第X+1页面不具有其他使用者数据。
4.根据权利要求1所述的数据储存装置,其特征在于,该控制器使用不同的多个读取电压,重复读取该第X页面以判断该第X页面是否可被成功读取,其中当该控制器使用了两个以上的这些读取电压才成功读取该第X页面时,该控制器还使用自该第X页面成功读取的数据,对该第X页面再次进行写入。
5.根据权利要求1所述的数据储存装置,其特征在于,当该第X页面无法被成功读取时,该控制器则读取该暂时区块中的第X-1页面。
6.根据权利要求5所述的数据储存装置,其特征在一地,当该第X页面无法被成功读取时,该控制器还舍弃该暂时区块,选取这些区块中的另一者作为一新的暂时区块,并且将该暂时区块的第1~X-1页面中所储存的数据写入该新的暂时区块中。
7.根据权利要求1所述的数据储存装置,其特征在于,每一这些页面皆具有一使用者数据空间以及一备用空间,并且该控制器是在一寻找程序中获得该暂时区块的第X页,其中在该寻找程序中,该控制器自该暂时区块中的第1个页面开始,依照该第一顺序读取该暂时区块中间隔一既定数量的这些页面的这些备用空间,直到所读取的该备用空间不具有有效数据为止。
8.根据权利要求7所述的数据储存装置,其特征在于,在读取到不具有有效数据的该备用空间后,该控制器还自所读取到不具有有效数据的该备用空间所相应的该页面的下一个开始,依照一第二顺序逐一读取该暂时区块中的这些页面的这些备用空间,直到所读取的该备用空间具有有效数据为止,其中该控制器依照该第二顺序读取到具有有效数据的该备用空间所属的该页面为一第一空白页面,并且该第二顺序与该第一顺序相反。
9.根据权利要求8所述的数据储存装置,其特征在于,该控制器还读取该第一空白页面中的该使用者数据空间,并且判断该第一空白页面中的该使用者数据空间是否具有有效数据,以确认该第一空白页面为该暂时区块中第一个不具有使用者数据的页面,其中当该第一空白页面中的该使用者数据空间具有有效数据时,该控制器自该第一空白页面开始依照该第一顺序逐一读取该暂时区块中的这些页面的这些使用者数据空间,直到所读取的该使用者数据空间不具有有效数据为止,其中该使用者数据空间不具有有效数据的该页面取代原该第一空白页面成为新的第一空白页面。
10.根据权利要求9所述的数据储存装置,其特征在于,该控制器还自该第一空白页面的上一个页面或者该新的第一空白页面的上一个页面开始,依照该第二顺序逐一读取该暂时区块中的这些页面的这些使用者数据空间,并且判断所读取的该页面的该使用者空间是否具有有效数据,其中反序所读取具有有效数据的该使用者数据空间所相应的该页面,为该暂时区块中最后一个具有有效数据的该页面,并且为该第X页面。
11.根据权利要求1所述的数据储存装置,其特征在于,在每一页面皆具有一使用者数据空间以及一备用空间,其中这些备用空间用以储存所相应的页面的数据,该暂时区块中的每一这些页面中的这些使用者数据空间用以储存长度小于一既定长度的系统数据,并且该暂时区块表储存于该第X+1页面中的该备用空间中。
12.一种数据维护方法,适用于具有一快闪存储器的一数据储存装置,其特征在于,该快闪存储器包括多个区块,并且每一这些区块包括依照一第一顺序排列的多个页面,该数据维护方法包括:
当该数据储存装置自一断电事件回复时,判断这些区块中的一暂进区块的一第X面是否可被成功读取;以及
当该第X页面可被成功读取时,将该暂时区块的一第X+1页面储存无效数据及一暂时区块表,其中该第X页面是该暂存区块中在该断电事件前后一个被写入的页面,该暂时区块表中记录了该暂存区块中所有这些页面的信息,并且X为一正整数。
13.根据权利要求12所述的数据维护方法,其特征在于,在该暂时区块中的每一这些页面用以储存长度小于一既定长度的系统数据。
14.根据权利要求12所述的数据维护方法,其特征在于,该暂时区块中的该第X+1页面不具有其他使用者数据。
15.根据权利要求12所述的数据维护方法,其特征在于,该判断该第X面是否可被成功读取的步骤还包括:
使用不同的多个读取电压,重复读取该第X页面以判断该第X页面是否可被成功读取,其中当使用了两个以上的这些读取电压才成功读取该第X页面时,数据维护方法还包括使用自该第X页面成功读取的数据,对该第X页面再次进行写入。
16.根据权利要求12所述的数据维护方法,其特征在于,还包括:
当该第X页面无法被成功读取时,读取该暂时区块中的第X-1页面。
17.根据权利要求16所述的数据维护方法,还包括:
当该第X页面无法被成功读取时,舍弃该暂时区块,选取这些区块中的另一者作为一新的暂时区块,并且将该暂时区块的第1~X-1页面中所储存的数据写入该新的暂时区块中。
18.根据权利要求12所述的数据维护方法,其特征在于,每一这些页面皆具有一使用者数据空间以及一备用空间,并且该数据维护方法还包括一寻找程序用以获得该暂时区块中的该第X页面,其中在该寻找程序还包括:
自该暂时区块中的第1个页面开始,依照该第一顺序读取该暂时区块中间隔一既定数量的这些页面的这些备用空间,直到所读取的该备用空间不具有有效数据为止。
19.根据权利要求18所述的数据维护方法,其特征在于,还包括:
在读取到不具有有效数据的该备用空间后,自所读取到不具有有效数据的该备用空间所相应的该页面的下一个页面开始,依照一第二顺序逐一读取该暂时区块中的这些页面的这些备用空间,直到所读取的这些用空间具有有效数据为止,其中依照第二顺序读取到具有有效数据的该备用空间所属的该页面为一第一空白页面,并且该第二顺序与该第一顺序相反。
20.根据权利要求19所述的数据维护方法,其特征在于,还包括:
读取该第一空白页面中的该使用者数据空间,并且判断该第一空白页面中的该使用者数据空间是否具有有效数据,以确认该第一空白页面为该暂时区块中第一个不具有使用者数据的页面;以及
当该第一空白页面中的该使用者数据空间具有有效数据时,自该第一空白页面开始依照该第一顺序逐一读取该暂时区块中的这些页面的这些使用者数据空间,直到所读取的该使用者数据空间不具有有效数据为止,其中该使用者数据空间不具有有效数据的该页面取代原该第一空白页面成为新的第一空白页面。
21.根据权利要求20所述的数据维护方法,其特征在于,还包括:
自该第一空白页面的上一个页面或者该新的第一空白页面的上一个页面开始,依照该第二顺序逐一读取该暂时区块中的这些页面的这些使用者数据空间,并且判断所读取的该页面的该使用者空间是否具有有效数据,其中反序所读取具有有效数据的该使用者数据空间所相应的该页面,为该暂时区块中最后一个具有有效数据的该页面,并且为该第X页面。
22.根据权利要求20所述的数据维护方法,其特征在于,在每一页面皆具有一使用者数据空间以及一备用空间,其中这些备用空间用以储存所相应的页面的数据,该暂时区块中的每一这些页面中的这些使用者数据空间用以储存长度小于一既定长度的系统数据,并且该暂时区块表储存于该第X+1页面中的该备用空间中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105141371 | 2016-12-14 | ||
TW105141371A TWI606388B (zh) | 2016-12-14 | 2016-12-14 | 資料儲存裝置及其資料維護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228385A true CN108228385A (zh) | 2018-06-29 |
CN108228385B CN108228385B (zh) | 2020-06-02 |
Family
ID=61023248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710181790.1A Active CN108228385B (zh) | 2016-12-14 | 2017-03-24 | 数据储存装置及其数据维护方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9996462B1 (zh) |
CN (1) | CN108228385B (zh) |
TW (1) | TWI606388B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104061A (zh) * | 2019-11-21 | 2020-05-05 | 深圳忆联信息系统有限公司 | 避免固体存储设备因异常掉电导致数据丢失的方法、装置、计算机设备及存储介质 |
CN112286721A (zh) * | 2019-07-23 | 2021-01-29 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
CN112306742A (zh) * | 2019-07-23 | 2021-02-02 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170329684A1 (en) * | 2016-05-13 | 2017-11-16 | Synology Incorporated | Method and apparatus for performing data recovery in redundant storage system |
JP2019117979A (ja) * | 2017-12-26 | 2019-07-18 | ファナック株式会社 | 制御装置 |
KR20190100782A (ko) * | 2018-02-21 | 2019-08-29 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
TWI655576B (zh) * | 2018-06-20 | 2019-04-01 | 深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
KR102637478B1 (ko) | 2018-12-05 | 2024-02-15 | 삼성전자주식회사 | 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법 |
KR20200113992A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치 |
TWI697780B (zh) * | 2019-07-23 | 2020-07-01 | 慧榮科技股份有限公司 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
KR20210039185A (ko) * | 2019-10-01 | 2021-04-09 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200715114A (en) * | 2005-10-12 | 2007-04-16 | Sunplus Technology Co Ltd | Apparatus for controlling flash memory and method thereof |
US20080232175A1 (en) * | 2007-03-19 | 2008-09-25 | Toshiaki Aoki | Content data storage device and its control method |
TW201007449A (en) * | 2008-08-12 | 2010-02-16 | Phison Electronics Corp | Flash memory storage system and data writing method thereof |
US20140006688A1 (en) * | 2012-07-02 | 2014-01-02 | Super Talent Technology, Corp. | Endurance and Retention Flash Controller with Programmable Binary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple, Multi, or Single-Level Flash-Memory Cells |
TW201635085A (zh) * | 2015-03-27 | 2016-10-01 | Tsann Kuen Zhangzhou Entpr Co | 斷電記憶系統及其裝置 |
CN108614780A (zh) * | 2016-12-13 | 2018-10-02 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI571742B (zh) * | 2015-10-07 | 2017-02-21 | 慧榮科技股份有限公司 | 資料儲存裝置及資料維護方法 |
CN106708754B (zh) * | 2015-11-13 | 2020-04-07 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
-
2016
- 2016-12-14 TW TW105141371A patent/TWI606388B/zh active
-
2017
- 2017-03-24 CN CN201710181790.1A patent/CN108228385B/zh active Active
- 2017-07-28 US US15/662,836 patent/US9996462B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200715114A (en) * | 2005-10-12 | 2007-04-16 | Sunplus Technology Co Ltd | Apparatus for controlling flash memory and method thereof |
US20080232175A1 (en) * | 2007-03-19 | 2008-09-25 | Toshiaki Aoki | Content data storage device and its control method |
TW201007449A (en) * | 2008-08-12 | 2010-02-16 | Phison Electronics Corp | Flash memory storage system and data writing method thereof |
US20140006688A1 (en) * | 2012-07-02 | 2014-01-02 | Super Talent Technology, Corp. | Endurance and Retention Flash Controller with Programmable Binary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple, Multi, or Single-Level Flash-Memory Cells |
TW201635085A (zh) * | 2015-03-27 | 2016-10-01 | Tsann Kuen Zhangzhou Entpr Co | 斷電記憶系統及其裝置 |
CN108614780A (zh) * | 2016-12-13 | 2018-10-02 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286721A (zh) * | 2019-07-23 | 2021-01-29 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
CN112306742A (zh) * | 2019-07-23 | 2021-02-02 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
CN111104061A (zh) * | 2019-11-21 | 2020-05-05 | 深圳忆联信息系统有限公司 | 避免固体存储设备因异常掉电导致数据丢失的方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TWI606388B (zh) | 2017-11-21 |
US9996462B1 (en) | 2018-06-12 |
TW201821971A (zh) | 2018-06-16 |
CN108228385B (zh) | 2020-06-02 |
US20180165191A1 (en) | 2018-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228385A (zh) | 数据储存装置及其数据维护方法 | |
US9645894B2 (en) | Data storage device and flash memory control method | |
CN103164345B (zh) | 固态存储装置遭遇断电后的数据存储方法 | |
CN107918588A (zh) | 数据储存装置及其数据写入方法 | |
CN103853582B (zh) | 闪存更新方法 | |
CN101231617B (zh) | 闪存设备的数据处理方法 | |
CN109542675A (zh) | 存储器系统及其操作方法 | |
CN105701021A (zh) | 数据储存装置及其数据写入方法 | |
CN102792381B (zh) | 用于多电平存储器单元(mlc)快闪存储器的防数据破坏的保护 | |
CN105740157A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN106569735B (zh) | 数据储存装置及数据维护方法 | |
CN107526540B (zh) | 数据储存装置及其数据维护方法 | |
US8296503B2 (en) | Data updating and recovering methods for a non-volatile memory array | |
CN105320464B (zh) | 防止读取干扰的方法、存储器控制电路单元与存储装置 | |
CN103389881A (zh) | 控制装置、存储装置以及数据写入方法 | |
CN106708754A (zh) | 数据储存装置及其数据维护方法 | |
CN107092566A (zh) | 数据储存装置及其数据维护方法 | |
CN108614780A (zh) | 数据储存装置及其数据维护方法 | |
CN106484308B (zh) | 数据保护方法、存储器控制电路单元及存储器储存装置 | |
CN106445404B (zh) | 存储器编程方法、存储器控制电路单元与存储器存储装置 | |
CN103593255B (zh) | 数据管理方法、记忆存储存储器与记忆存储控制器 | |
CN106708422B (zh) | 数据储存装置及其数据维护方法 | |
CN104731710B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
CN103984635B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103106148A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |