CN108614780B - 数据储存装置及其数据维护方法 - Google Patents
数据储存装置及其数据维护方法 Download PDFInfo
- Publication number
- CN108614780B CN108614780B CN201710037314.2A CN201710037314A CN108614780B CN 108614780 B CN108614780 B CN 108614780B CN 201710037314 A CN201710037314 A CN 201710037314A CN 108614780 B CN108614780 B CN 108614780B
- Authority
- CN
- China
- Prior art keywords
- data
- page
- temporary block
- pages
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/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/30—Monitoring
-
- 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
-
- 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
- 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
-
- 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/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个区块,并且区块中包括一目前区块以及一暂时区块。控制器将相应于一第一逻辑地址的一第一数据写入目前区块,判断暂时区块中是否具有同样相应于第一逻辑地址的一第二数据,其中当暂时区块中具有同样相应于第一逻辑地址的第二数据时,控制器更将一第一暂时区块表写入暂时区块中。
Description
技术领域
本发明是关于一种数据储存装置,特别是关于可自断电事件回复数据状态的数据储存装置。
背景技术
快闪存储器为一种普遍的非挥发性数据储存装置,是以电性方式抹除与编程。以与非门型的快闪存储器(即NAND FLASH)为例,常用作存储卡(memory card)、通用序列总线闪存装置(USB flash device)、固态硬盘(SSD)、嵌入式快闪存储器模块(eMMC)…等使用。
快闪存储器(如,NAND FLASH)的储存阵列包括多个区块(blocks),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。另外,快闪存储器中的实体页面与主机装置所指定的逻辑页面的转换关系需要一个表来记录。当非预期的断电事件发生时,储存于随机存储器中的表会丢失。如何有效重建丢失的表是一个重要的课题。
发明内容
本发明所提供的数据储存装置以及数据维护方法可独立将系统数据储存在暂时区块中,并且借由暂时区块表区隔相同逻辑地址的数据何者为有效数据。
本发明提供一种数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个区块,并且区块中包括一目前区块以及一暂时区块。控制器将相应于一第一逻辑地址的一第一数据写入目前区块,判断暂时区块中是否具有同样相应于第一逻辑地址的一第二数据,其中当暂时区块中具有同样相应于第一逻辑地址的第二数据时,控制器更将一第一暂时区块表写入暂时区块中。
在一实施例中,第一数据为一主机的一写入命令所指示的数据,或者第一数据为暂时区块中的冷数据。第一暂时区块表中记录了暂时区块中所有页面的信息。
又一实施例中,在控制器在储存于一随机存取存储器中的一目前暂时区块表中,解除第二数据与逻辑地址的关系,以更新目前暂时区块表。控制器是将更新后的目前暂时区块表作为第一暂时区块表以写入暂时区块的页面中的一特定页面,其中特定页面不具有使用者数据。
又另一实施例中,每一区块包括依照一第一顺序排列的多个页面。控制器用以在数据储存装置自一断电事件回复后,根据暂时区块中的第X个页面所储存的一第二暂时区块表,判断暂时区块与目前区块中具有相同逻辑地址的数据何者为有效数据,其中第X个页面是暂时区块中在断电事件前最后一个被写入的页面,并且X为一正整数。另外,在暂时区块中的每一页面是用以储存长度小于一既定长度的系统数据,除了系统数据外的其他数据皆是写入目前区块中,并且每一页面皆具有一使用者数据空间以及一备用空间。在数据储存装置自断电事件回复后,控制器是用以使用一寻找程序来获得第X个页面,其中在寻找程序中,控制器自暂时区块中的第1个页面开始,依照第一顺序读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止。在读取到不具有有效数据的备用空间后,控制器更自所读取到不具有有效数据的备用空间所相应的页面的下一个开始,依照一第二顺序逐一读取暂时区块中的页面的备用空间,直到所读取的备用空间具有有效数据为止,其中控制器依照第二顺序读取到具有有效数据的备用空间所属的页面为一第一空白页面,并且第二顺序与第一顺序相反。控制器更读取第一空白页面中的使用者数据空间,并且判断第一空白页面中的使用者数据空间是否具有有效数据,以确认第一空白页面为暂时区块中第一个不具有使用者数据的页面,其中当第一空白页面中的使用者数据空间具有有效数据时,控制器更自第一空白页面开始依照第一顺序逐一读取暂时区块中的页面的使用者数据空间,直到所读取的使用者数据空间不具有有效数据为止,其中使用者数据空间不具有有效数据的页面取代原第一空白页面成为新的第一空白页面。控制器更自第一空白页面的上一个页面或者新的第一空白页面的上一个页面开始,依照第二顺序逐一读取暂时区块中的页面的使用者数据空间,并且判断所读取的页面的使用者空间是否具有有效数据,其中反序所读取具有有效数据的使用者数据空间所相应的页面,为暂时区块中最后一个具有有效数据的页面,并且为第X个页面。
本发明另提供一种数据维护方法,适用于具有一快闪存储器的一数据储存装置,其中快闪存储器包括多个区块,并且区块中包括一目前区块以及一暂时区块。数据维护方法包括:将相应于一第一逻辑地址的一第一数据写入目前区块;判断暂时区块中是否具有同样相应于第一逻辑地址的一第二数据;以及当暂时区块中具有同样相应于第一逻辑地址的第二数据时,将一第一暂时区块表写入暂时区块中。
在一实施例中,在储存于一随机存取存储器中的一目前暂时区块表中,解除第二数据与逻辑地址的关系,以更新目前暂时区块表。将第一暂时区块表写入暂时区块中的步骤更包括将更新后的目前暂时区块表作为第一暂时区块表,以写入暂时区块的页面中的一特定页面,其中特定页面不具有使用者数据。
另一实施例中,每一区块包括依照一第一顺序排列的多个页面。数据维护方法更包括在数据储存装置自一断电事件回复后,根据暂时区块中的第X个页面所储存的一第二暂时区块表,判断暂时区块与目前区块中具有相同逻辑地址的数据何者为有效数据,其中第X个页面是暂时区块中在断电事件前最后一个被写入的页面,并且X为一正整数,并且第X个页面是暂时区块中在断电事件前最后一个被写入的页面,并且X为一正整数。在暂时区块中的每一页面是用以储存长度小于一既定长度的系统数据,并且除了系统数据外的其他数据皆是写入目前区块中。另外,每一页面皆具有一使用者数据空间以及一备用空间,并且数据维护方法更包括在数据储存装置自断电事件回复后,使用一寻找程序来获得第X个页面。
寻找程序包括:自暂时区块中的第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~S604、S700~S702、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字节等等。值得注意的是,在本实施例中,系统数据的长度皆小于一个页面中使用者数据空间的长度。在一实施例中,每个页面P1~PN中的使用者数据空间DAA1~DAAN的大小为16K字节,但本发明不限于此。另外,控制器160可根据数据的长度以及数据所相应的逻辑地址来判断所需写入的数据是否属于系统数据。
在某些实施例中,目前区块以及暂时区块中的数据会具有重复的逻辑地址。举例而言,当暂时区块块被填满时,控制器160会将暂时区块中的数据移到目前区块中。换言之,控制器160会将暂时区块中的数据无效,并且把数据写入目前区块中。值得注意的是,在一实施例中,控制器160是将暂时区块中的冷数据搬移到目前区块中,其中冷数据为暂时区块中较少(或者最少)被读取或者更新的数据。在控制器160将冷数据写入目前区块的一页面后,控制器160接着修改在随机存取存储器166中的目前的暂时区块表,以解除原储存冷数据的页面与逻辑地址的映射关系。换言之,控制器160会将暂时区块中的冷数据无效掉,并且把冷数据写入目前区块中,其中目前区块中的冷数据为有效数据(最新的数据)。然而,虽然逻辑地址与原储存冷数据的页面的映射关系在暂时区块表中被抹除,但冷数据以及其所相应的逻辑地址还是储存在暂时区块的原页面中。另外,冷数据以及其所相应的逻辑地址也同时储存在目前区块的一页面中。换言之,控制器160需要借由随机存取存储器166中的目前的暂时区块表,才能判断目前区块以及暂时区块中的数据何者为有效数据。在另一实施例中,当主机120的写入命令指示的数据的逻辑地址与暂时区块中任一页面所储存的数据的逻辑地址相同,并且写入命令所指示的数据并非系统数据时,控制器160会将数据写入目前区块后,再将暂时区块中的数据无效。详细而言,在控制器160将数据写入目前区块的一页面后,控制器160接着修改在随机存取存储器166中的目前的暂时区块表,以解除原储存数据的页面与重复的逻辑地址的映射关系,使得相应于该逻辑地址的页面仅有最新写入目前区块的数据为有效数据。同样地,虽然逻辑地址与原储存被无效的数据的页面的映射关系在暂时区块表中被抹除,但被无效的数据以及其所相应的逻辑地址还是储存在暂时区块的原页面中。另外,新的数据以及其所相应的逻辑地址也同时储存在目前区块的一页面中。因此,控制器160也是需要借由随机存取存储器166中的目前的暂时区块表,才能判断目前区块以及暂时区块中的数据何者为有效数据。
当发生一断电事件时,随机存取存储器166中所储存的实体转逻辑对应表及暂时区块表会因为电力消失而丢失。因此当发生一断电事件并且数据储存装置140恢复电力后,控制器160需要依序读取暂时区块以及目前区块中的页面以重新在随机存取存储器166中建立一实体转逻辑对应表以及及暂时区块表。然而,上述方法需要很长的时间一一对所有暂时区块以及目前区块中的页面进行读取,并且需要特定的演算法来辨别数据的写入顺序或者新旧。
有鉴于此,在一实施例中,由于系统数据的长度会小于使用者数据空间DAA1~DAAN,故控制器160在对暂时区块中的页面进行写入的同时,会将目前的暂时区块表也一起写入该页面中,以备份目前的暂时区块表。另外,当控制器160将相应于一第一逻辑地址的一第一数据写入目前区块后,会判断暂时区块中是否具有同样相应于第一逻辑地址的一第二数据。当暂时区块中具有同样相应于第一逻辑地址的第二数据时,控制器160也会将最新的暂时区块表写入暂时区块中。详细而言,在一实施例中,在将第一数据写入目前区块后,控制器160在储存于一随机存取存储器166中的目前暂时区块表中,解除第二数据与逻辑地址的关系,以更新目前暂时区块表。接着,控制器160是将更新后的目前暂时区块表写入暂时区块的一页面中的一特定页面。值得注意的是,被写入第一暂时区块表的特定页为暂时区块中空白页面中的任一者,并且特定页面不会被写入其他使用者数据。举例而言,特定页面为暂时区块中最后一个被写入的页面的下一个页面。另外,如上所述,第一数据可能为为一主机120的一写入命令所指示的数据,或者第一数据为暂时区块中的冷数据。
因此,当数据储存装置140自断电事件回复时,控制器160可直接读取在断电事件发生前暂时区块中最后一个被写入的页面,即可获得最新的暂时区块表,并且借由最新的暂时区块表来判断暂时区块与目前区块中具有相同逻辑地址的数据何者为有效数据。
详细而言,当该数据储存装置140自一断电事件回复时,控制器160执行一寻找程序以获得暂时区块中的第X个页面,其中第X个页面是暂时区块中在断电事件前最后一个被写入的页面,并且X为一正整数。接着,控制器160将第X个页面中所储存的一第二暂时区块表载入随机存取存储器166中,以作为目前的暂时区块表。换言之,控制器160可根据暂时区块中的第X个页面所储存的第二暂时区块表,判断暂时区块与目前区块中具有相同逻辑地址的数据何者为有效数据。
在一实施例的寻找程序中,控制器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皆已被写入有效数据(使用者数据DA1~DA12以及暂时区块表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(第一空白页面)中的使用者数据空间DAA12,并且判断第12个页面P12中的使用者数据空间DAA12是否具有有效数据,以确认第12个页面P12为暂时区块B2中第一个不具有使用者数据的页面。在本实施例中,由于第12个页面P12的使用者数据空间DAA12具有有效数据DA12以及TP12。因此,控制器160判断第12个页面P12不是暂时区块B2中第一个不具有使用者数据的页面。接着,控制器160更自第12个页面P12的下一个页面开始依照第一顺序D1逐一读取暂时区块B2中的页面的使用者数据空间,直到所读取的使用者数据空间不具有有效数据为止。换言之,控制器160首先读取第13个页面P13的使用者数据空间DAA13。由于使用者数据空间DAA13不具有有效数据,因此控制器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更用以根据目前暂时区块的状态更新目前暂时区块表,并且将更新后的目前暂时区块表写入暂时区块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皆已被写入有效数据(使用者数据DA1~DA11以及暂时区块表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(第一空白页面)中的使用者数据空间DAA12,并且判断第12个页面P12中的使用者数据空间DAA12是否具有有效数据,以确认第12个页面P12为暂时区块B2中第一个不具有使用者数据的页面。在本实施例中,由于第12个页面P12的使用者数据空间DAA12不具有有效数据。因此,控制器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更用以根据目前暂时区块的状态更新目前暂时区块表,并且将更新后的目前暂时区块表写入暂时区块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,其中图5所示为断电事件发生后,暂时区块B2中页面P1~P17的状态。详细而言,暂时区块B2中的第1~12个页面P1~P12中的使用者数据空间DAA1~DAA12皆已被写入有效数据(使用者数据DA1~DA12以及暂时区块表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(第一空白页面)中的使用者数据空间DAA11,并且判断第11个页面P11中的使用者数据空间DAA11是否具有有效数据,以确认第11个页面P11为暂时区块B1中第一个不具有使用者数据的页面。在本实施例中,由于第11个页面P11的使用者数据空间DAA11具有有效数据DA11以及TP11。因此,控制器160判断第11个页面P11不是暂时区块B2中第一个不具有使用者数据的页面。接着,控制器160更自第11个页面P11的下一个页面开始依照第一顺序D1逐一读取暂时区块B2中的页面的使用者数据空间,直到所读取的使用者数据空间不具有有效数据为止。换言之,控制器160首先读取第12个页面P12的使用者数据空间DAA12。由于使用者数据空间DAA12具有有效数据DA12以及TP12,因此控制器160继续读取第13个页面P13的使用者数据空间DAA13,由于使用者数据空间DAA13不具有有效数据,因此控制器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,用以将数据写入目前区块中。流程开始于步骤S600。
在步骤S600中,控制器160将相应于一第一逻辑地址的一第一数据写入目前区块。
接着,在步骤S602中,控制器160判断暂时区块中是否具有同样相应于第一逻辑地址的一第二数据。当暂时区块中具有同样相应于第一逻辑地址的第二数据时,流程进行至步骤S604;否则,流程结束于步骤S600。
在步骤S604中,控制器160将最新的暂时区块表写入暂时区块中。详细而言,在一实施例中,控制器160在储存于一随机存取存储器166中的目前暂时区块表中,解除第二数据与逻辑地址的关系,以更新目前暂时区块表。接着,控制器160是将更新后的目前暂时区块表写入暂时区块的一页面中的一特定页面。值得注意的是,被写入第一暂时区块表的特定页为暂时区块中空白页面中的任一者,并且特定页面不会被写入其他使用者数据。举例而言,特定页面为暂时区块中最后一个被写入的页面的下一个页面。在一实施例中,当第一数据的逻辑地址重复出现在暂时区块中时,第一数据可能为为一主机120的一写入命令所指示的数据,或者第一数据为暂时区块中的冷数据。流程结束于步骤S604。
图7为本发明所提供的一数据维护方法的另一种实施例的流程图。数据维护方法适用于图1所示的数据储存装置140,用以在数据储存装置140发生一断电事件并且数据储存装置140恢复电力后重建数据状态。流程开始于步骤S700。
在步骤S700中,当数据储存装置140发生一断电事件并且数据储存装置140恢复电力后,控制器160执行一寻找程序以获得暂时区块中的第X个页面,其中第X个页面是暂时区块中在断电事件前最后一个被写入的页面,并且X为一正整数。
接着,在步骤S702中,控制器160将第X个页面中所储存的一第二暂时区块表载入随机存取存储器166中,以作为目前的暂时区块表。值得注意的是,控制器160可根据暂时区块中的第X个页面所储存的第二暂时区块表,判断暂时区块与目前区块中具有相同逻辑地址的数据何者为有效数据。流程结束于步骤S702。
图8为本发明所提供的一寻找程序的一种实施例的流程图。寻找程序适用于图1所示的数据储存装置140、图7中的步骤S700,用以在数据储存装置140自断电事件回复后找到最后一个被写入的页面。流程开始于步骤S800。
在步骤S800中,控制器160是自暂时区块中的第1个页面开始,依照第一顺序D1读取暂时区块中间隔一既定数量的页面的备用空间,直到所读取的备用空间不具有有效数据为止。
接着,在步骤S802中,控制器160自所读取到不具有有效数据的备用空间所相应的页面的下一个页面开始,依照一第二顺序D2逐一读取暂时区块中的页面的备用空间,直到所读取的备用空间具有有效数据为止,其中控制器160依照第二顺序D2的方向读取到具有有效数据的备用空间所属的页面为目前控制器160所假设的第一空白页面,并且第二顺序D2与第一顺序D1相反。
接着,在步骤S804中,控制器160自假设的第一空白页面开始,依照第一顺序D1逐一读取暂时区块中的页面的使用者数据空间,以寻找暂时区块中第一个不具有使用者数据的页面。
接着,控制器160自暂时区块中第一个不具有使用者数据的页面的上一个页面开始,依照第二顺序D2逐一读取暂时区块中的页面的使用者数据空间,并且判断所读取的页面的使用者空间是否具有有效数据,以获得暂时区块中最后一个写入的页面,其中反序所读取具有有效数据的使用者数据空间所相应的页面,为暂时区块中最后一个具有有效数据的页面(第X个页面)。
本发明所提供的数据储存装置以及数据维护方法可独立将系统数据储存在暂时区块中,并且借由暂时区块表区隔相同逻辑地址的数据何者为有效数据。
本发明的方法,或特定型态或其部分,可以以程序码的型态存在。程序码可储存于实体媒体,如软盘、光盘片、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (19)
1.一种数据储存装置,包括:
一快闪存储器,包括多个区块,该多个区块的每一区块包括多个页面,并且该多个区块中包括一目前区块以及一暂时区块;
一控制器,将相应于一第一逻辑地址的一第一数据写入该目前区块,判断该暂时区块中是否具有同样相应于该第一逻辑地址的一第二数据,其中当该暂时区块中具有同样相应于该第一逻辑地址的该第二数据时,该控制器更将一第一暂时区块表写入该暂时区块中,该第一暂时区块表用以记录该暂时区块的该多个页面中数据的实体地址与该多个页面的逻辑地址的对应关系;以及
该控制器在储存于一随机存取存储器中的一目前暂时区块表中,解除该第二数据与该第一逻辑地址的关系,以更新该目前暂时区块表。
2.根据权利要求1所述的数据储存装置,其特征在于,该第一数据为一主机的一写入命令所指示的数据,或者该第一数据为该暂时区块中的冷数据。
3.根据权利要求1所述的数据储存装置,其特征在于,该控制器是将更新后的该目前暂时区块表作为该第一暂时区块表以写入该暂时区块的一特定页面,该特定页面不具有使用者数据。
4.根据权利要求1所述的数据储存装置,其特征在于,该多个页面依照一第一顺序排列,其中该控制器是用以在该数据储存装置自一断电事件回复后,根据该暂时区块中的第X个页面所储存的一第二暂时区块表,判断该暂时区块与该目前区块中具有相同逻辑地址的数据何者为有效数据,其中该第X个页面是该暂时区块中在该断电事件前最后一个被写入的页面,并且X为一正整数。
5.根据权利要求4所述的数据储存装置,其特征在于,在该暂时区块中的该多个页面的每一页面是用以储存长度小于一既定长度的系统数据,并且除了系统数据外的其他数据皆是写入该目前区块中。
6.根据权利要求5所述的数据储存装置,其特征在于,该多个页面的每一页面皆具有一使用者数据空间以及一备用空间,在该数据储存装置自该断电事件回复后,该控制器是用以使用一寻找程序来获得该第X个页面,其中在该寻找程序中,该控制器自该暂时区块中的第1个页面开始,依照该第一顺序读取该暂时区块中间隔一既定数量的多个页面的多个备用空间,直到所读取的该备用空间不具有有效数据为止。
7.根据权利要求6所述的数据储存装置,其特征在于,在读取到不具有有效数据的该备用空间后,该控制器更自所读取到不具有有效数据的该备用空间所相应的该页面的下一个开始,依照一第二顺序逐一读取该暂时区块中的该多个页面的该多个备用空间,直到所读取的该备用空间具有有效数据为止,其中该控制器依照该第二顺序读取到具有有效数据的该备用空间所属的该页面为一第一空白页面,并且该第二顺序与该第一顺序相反。
8.根据权利要求7所述的数据储存装置,其特征在于,该控制器更读取该第一空白页面中的该使用者数据空间,并且判断该第一空白页面中的该使用者数据空间是否具有有效数据,以确认该第一空白页面为该暂时区块中第一个不具有使用者数据的页面,其中当该第一空白页面中的该使用者数据空间具有有效数据时,该控制器更自该第一空白页面开始依照该第一顺序逐一读取该暂时区块中的该多个页面的多个该使用者数据空间,直到所读取的该使用者数据空间不具有有效数据为止,其中该使用者数据空间不具有有效数据的该页面取代原该第一空白页面成为新的第一空白页面。
9.根据权利要求8所述的数据储存装置,其特征在于,该控制器更自该第一空白页面的上一个页面或者该新的第一空白页面的上一个页面开始,依照该第二顺序逐一读取该暂时区块中的该多个页面的该多个使用者数据空间,并且判断所读取的该页面的该使用者数据空间是否具有有效数据,其中反序所读取具有有效数据的该使用者数据空间所相应的该页面,为该暂时区块中最后一个具有有效数据的该页面,并且为该第X个页面。
10.一种数据维护方法,适用于具有一快闪存储器的一数据储存装置,其中该快闪存储器包括多个区块,该多个区块的每一区块包括多个页面,并且该多个区块中包括一目前区块以及一暂时区块,该数据维护方法包括:
将相应于一第一逻辑地址的一第一数据写入该目前区块;
判断该暂时区块中是否具有同样相应于该第一逻辑地址的一第二数据;
当该暂时区块中具有同样相应于该第一逻辑地址的该第二数据时,将一第一暂时区块表写入该暂时区块中,该第一暂时区块表用以记录该暂时区块的该多个页面中数据的实体地址与该多个页面的逻辑地址的对应关系;以及
在储存于一随机存取存储器中的一目前暂时区块表中,解除该第二数据与该第一逻辑地址的关系,以更新该目前暂时区块表。
11.根据权利要求10所述的数据维护方法,其特征在于,该第一数据为一主机的一写入命令所指示的数据,或者该第一数据为该暂时区块中的冷数据。
12.根据权利要求10所述的数据维护方法,其特征在于,将该第一暂时区块表写入该暂时区块中的步骤更包括将更新后的该目前暂时区块表作为该第一暂时区块表,以写入该暂时区块的一特定页面,该特定页面不具有使用者数据。
13.根据权利要求10所述的数据维护方法,其特征在于,该多个页面依照一第一顺序排列,并且数据维护方法更包括在该数据储存装置自一断电事件回复后,根据该暂时区块中的第X个页面所储存的一第二暂时区块表,判断该暂时区块与该目前区块中具有相同逻辑地址的数据何者为有效数据。
14.根据权利要求13所述的数据维护方法,其特征在于,该第X个页面是该暂时区块中在该断电事件前最后一个被写入的页面,并且X为一正整数。
15.根据权利要求14所述的数据维护方法,其特征在于,在该暂时区块中的该多个页面的每一页面是用以储存长度小于一既定长度的系统数据,并且除了系统数据外的其他数据皆是写入该目前区块中。
16.根据权利要求15所述的数据维护方法,其特征在于,该多个页面的每一页面皆具有一使用者数据空间以及一备用空间,并且该数据维护方法更包括在该数据储存装置自该断电事件回复后,使用一寻找程序来获得该第X个页面,其中该寻找程序包括:
自该暂时区块中的第1个页面开始,依照该第一顺序读取该暂时区块中间隔一既定数量的该多个页面的多个备用空间,直到所读取的该备用空间不具有有效数据为止。
17.根据权利要求16所述的数据维护方法,其特征在于,该寻找程序包括:
在读取到不具有有效数据的该备用空间后,自所读取到不具有有效数据的该备用空间所相应的该页面的下一个开始,依照一第二顺序逐一读取该暂时区块中的该多个页面的该多个备用空间,直到所读取的该备用空间具有有效数据为止,其中依照该第二顺序读取到具有有效数据的该备用空间所属的该页面为一第一空白页面,并且该第二顺序与该第一顺序相反。
18.根据权利要求17所述的数据维护方法,其特征在于,该寻找程序包括:
自该第一空白页面开始依照该第一顺序逐一读取该暂时区块中的该多个页面的多个该使用者数据空间,直到所读取的该使用者数据空间不具有有效数据为止,其中该使用者数据空间不具有有效数据的该页面取代原该第一空白页面成为新的第一空白页面。
19.根据权利要求18所述的数据维护方法,其特征在于,该寻找程序包括:
自该第一空白页面的上一个页面或者该新的第一空白页面的上一个页面开始,依照该第二顺序逐一读取该暂时区块中的该多个页面的该多个使用者数据空间,并且判断所读取的该页面的该使用者数据空间是否具有有效数据,其中反序所读取具有有效数据的该使用者数据空间所相应的该页面,为该暂时区块中最后一个具有有效数据的该页面,并且为该第X个页面。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105141178A TWI604373B (zh) | 2016-12-13 | 2016-12-13 | 資料儲存裝置及其資料維護方法 |
TW105141178 | 2016-12-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108614780A CN108614780A (zh) | 2018-10-02 |
CN108614780B true CN108614780B (zh) | 2022-07-15 |
Family
ID=61023175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710037314.2A Active CN108614780B (zh) | 2016-12-13 | 2017-01-18 | 数据储存装置及其数据维护方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10248526B2 (zh) |
CN (1) | CN108614780B (zh) |
TW (1) | TWI604373B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI606388B (zh) * | 2016-12-14 | 2017-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI698749B (zh) * | 2019-03-13 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
KR20210017481A (ko) * | 2019-08-08 | 2021-02-17 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
US11579970B2 (en) | 2020-07-30 | 2023-02-14 | Micron Technology, Inc. | Maintenance command interfaces for a memory system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933848A (en) * | 1995-12-01 | 1999-08-03 | Hewlett-Packard Company | System for managing the caching of data of a mass storage within a portion of a system memory |
CN101989235A (zh) * | 2009-08-06 | 2011-03-23 | 慧国(上海)软件科技有限公司 | 快闪存储装置及快闪存储装置的运作方法 |
CN102033814A (zh) * | 2009-09-25 | 2011-04-27 | 慧荣科技股份有限公司 | 存取一闪存的方法以及相关的记忆装置 |
TW201124844A (en) * | 2009-10-16 | 2011-07-16 | Samsung Electronics Co Ltd | Nonvolatile memory system and related method of preserving stored data during power interruption |
US8484430B2 (en) * | 2008-07-23 | 2013-07-09 | Kabushiki Kaisha Toshiba | Memory system and host device |
CN104699622A (zh) * | 2013-12-09 | 2015-06-10 | 慧荣科技股份有限公司 | 数据储存装置以及其数据抹除方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
US7181611B2 (en) | 2002-10-28 | 2007-02-20 | Sandisk Corporation | Power management block for use in a non-volatile memory system |
US8634250B2 (en) | 2008-07-22 | 2014-01-21 | Lsi Corporation | Methods and apparatus for programming multiple program values per signal level in flash memories |
TWI385517B (zh) * | 2008-12-05 | 2013-02-11 | Apacer Technology Inc | Storage device and data management method |
KR101581859B1 (ko) * | 2009-02-27 | 2016-01-21 | 삼성전자주식회사 | 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법 |
TWI433157B (zh) | 2009-09-04 | 2014-04-01 | Silicon Motion Inc | 存取快閃記憶體的方法以及相關之記憶裝置 |
TWI413897B (zh) * | 2010-01-20 | 2013-11-01 | Silicon Motion Inc | 快閃記憶體之資料存取方法以及快閃記憶體裝置 |
US20160246712A1 (en) * | 2015-02-25 | 2016-08-25 | HGST Netherlands B.V. | Indirection data structures implemented as reconfigurable hardware |
TWI604308B (zh) * | 2015-11-18 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
-
2016
- 2016-12-13 TW TW105141178A patent/TWI604373B/zh active
-
2017
- 2017-01-18 CN CN201710037314.2A patent/CN108614780B/zh active Active
- 2017-07-28 US US15/662,838 patent/US10248526B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933848A (en) * | 1995-12-01 | 1999-08-03 | Hewlett-Packard Company | System for managing the caching of data of a mass storage within a portion of a system memory |
US8484430B2 (en) * | 2008-07-23 | 2013-07-09 | Kabushiki Kaisha Toshiba | Memory system and host device |
CN101989235A (zh) * | 2009-08-06 | 2011-03-23 | 慧国(上海)软件科技有限公司 | 快闪存储装置及快闪存储装置的运作方法 |
CN102033814A (zh) * | 2009-09-25 | 2011-04-27 | 慧荣科技股份有限公司 | 存取一闪存的方法以及相关的记忆装置 |
TW201124844A (en) * | 2009-10-16 | 2011-07-16 | Samsung Electronics Co Ltd | Nonvolatile memory system and related method of preserving stored data during power interruption |
CN104699622A (zh) * | 2013-12-09 | 2015-06-10 | 慧荣科技股份有限公司 | 数据储存装置以及其数据抹除方法 |
Non-Patent Citations (1)
Title |
---|
基于区块结构的Nand Flash存储系统闪存转换层研究;曹文波;《中国硕士学位论文全文数据库 (信息科技辑)》;20130501;全文 * |
Also Published As
Publication number | Publication date |
---|---|
TWI604373B (zh) | 2017-11-01 |
US10248526B2 (en) | 2019-04-02 |
TW201821970A (zh) | 2018-06-16 |
CN108614780A (zh) | 2018-10-02 |
US20180165172A1 (en) | 2018-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228385B (zh) | 数据储存装置及其数据维护方法 | |
CN109542675B (zh) | 存储器系统及其操作方法 | |
CN105701021B (zh) | 数据储存装置及其数据写入方法 | |
CN108614780B (zh) | 数据储存装置及其数据维护方法 | |
KR100899242B1 (ko) | 메모리 시스템 및 불휘발성 반도체 메모리 기입 방법 | |
US10877898B2 (en) | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements | |
CN103150256B (zh) | 提高usb闪存写入性能的方法和器件 | |
TWI609323B (zh) | 資料儲存方法及其系統 | |
CN107526540B (zh) | 数据储存装置及其数据维护方法 | |
US20170285954A1 (en) | Data storage device and data maintenance method thereof | |
CN110928807A (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
TW201913380A (zh) | 資料儲存裝置以及其操作方法 | |
KR101150654B1 (ko) | 비휘발성 메모리 상의 데이터 관리 방법 및 기계 판독 가능한 매체 | |
US10942811B2 (en) | Data processing method for solid state drive | |
CN104408126A (zh) | 一种数据库的持久化写入方法、装置和系统 | |
KR20150094292A (ko) | 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 | |
CN111984462A (zh) | 无预警断电复原管理方法、记忆装置、控制器及电子装置 | |
CN107257281B (zh) | Nor flash存储密钥记录的方法、装置及计算机可读存储介质 | |
CN112416860B (zh) | 数据回滚更新方法、装置、计算机设备和存储介质 | |
CN116048380A (zh) | 藉助于预定命令来进行存储器装置的数据存取控制的方法及设备 | |
US11256435B2 (en) | Method and apparatus for performing data-accessing management in a storage server | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
TWI656475B (zh) | 具資料儲存裝置的電子系統 | |
CN112748873A (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 |