CN107526540A - 数据储存装置及其数据维护方法 - Google Patents

数据储存装置及其数据维护方法 Download PDF

Info

Publication number
CN107526540A
CN107526540A CN201610614705.1A CN201610614705A CN107526540A CN 107526540 A CN107526540 A CN 107526540A CN 201610614705 A CN201610614705 A CN 201610614705A CN 107526540 A CN107526540 A CN 107526540A
Authority
CN
China
Prior art keywords
data
rank
block
logical address
write
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
Application number
CN201610614705.1A
Other languages
English (en)
Other versions
CN107526540B (zh
Inventor
林建成
李介豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN107526540A publication Critical patent/CN107526540A/zh
Application granted granted Critical
Publication of CN107526540B publication Critical patent/CN107526540B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种数据储存装置及其数据维护方法,包括一快闪存储器以及一控制器。快闪存储器具有多个三阶数据区块。控制器接收一第一数据以及该第一数据的一第一逻辑地址,将第一数据写入一第一三阶备用区块,并且依据第一逻辑地址决定对应第一逻辑地址的一第一三阶数据区块。控制器还判断第一三阶数据区块是否已存在有效数据。当第一三阶数据区块具有有效数据时,控制器反查第一三阶数据区块所相应的一第二逻辑地址,释放映射至第二逻辑地址的第一三阶数据区块、一第二三阶数据区块以及一第三三阶数据区块。

Description

数据储存装置及其数据维护方法
技术领域
本发明有关于一种数据储存装置的数据维护方法;特别有关于一种三阶储存单元的数据维护方法。
背景技术
快闪存储器为一种普遍的非挥发性数据储存媒体,是以电性方式抹除与程式化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD)、嵌入式快闪存储器模组(eMMC)…等的储存媒体。
快闪存储器(如,NAND FLASH)的储存阵列包括多个个区块(blocks),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。然而,储存于浮置栅极的电荷会由于快闪存储器的操作以及各种环境参数,自浮置栅极流失,造成数据保存(Data retention)的问题。其中,三阶储存单元(Triple-Level Cell,TLC)的快闪存储器相较于其他单阶储存单元(Single-Level Cell,SLC)的快闪存储器以及二阶储存单元(Multi-Level Cell,MLC)的快闪存储器,更容易受环境影响而无法保存数据。值得注意的是,嵌入式快闪存储器模组(eMMC)一般而言皆是焊接于母板上,因此嵌入式快闪存储器模组会随着母板一起承受高温锡炉,而导致数据的损毁。
发明内容
本发明所提供的数据储存装置以及数据维护方法可以在一第二阶段将在一第一阶段所暂存的数据,以一三阶储存模式整理至暂存的单阶储存单元。
本发明提供一种数据储存装置。数据储存装置包括一快闪存储器以及一控制器。快闪存储器具有多个单阶备用储存区块、多个三阶数据区块、及多个三阶备用区块。控制器用以接收一第一数据以及第一数据的一第一逻辑地址,并将第一数据写入一第一三阶备用区块。控制器复用以依据第一逻辑地址,决定对应第一逻辑地址的一第一三阶数据区块是否已存在有效数据,其中当第一三阶数据区块已存在有效数据时,控制器更用以反查第一三阶数据区块所相应的一第二逻辑地址,释放映射至第二逻辑地址的第一三阶数据区块、一第二三阶数据区块以及一第三三阶数据区块,并且将第一三阶备用区块映射至第一逻辑地址。
在一实施例中,当第一三阶数据区块不具有有效数据时,控制器用以将第一三阶备用区块映射至第一逻辑地址,并且释放第一三阶数据区块。另外,控制器还用以判断第一逻辑地址是否已具有相应的有效数据,当第一逻辑地址已具有相应的有效数据时,控制器还用以释放映射至第一逻辑地址的三阶数据区块。其中,控制器用以将第一数据以一单阶储存模式写入单阶储存单元备用池中的一第一单阶备用储存区块、一第二单阶备用储存区块以及一第三单阶备用储存区块,再以一三阶储存模式将第一单阶备用储存区块、第二单阶备用储存区块以及第三单阶备用储存区块中的数据整理至第一三阶备用区块。
另一实施例中,控制器用以在一第一阶段,将一预写数据中的一第一子预写数据、一第二子预写数据以及一第三子预写数据以一单阶储存模式写入第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块,并且将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块映射至第一逻辑区。其中,控制器用以在一第二阶段接收第一数据以及第一逻辑地址。第一阶段为生产阶段(Production Phase),第二阶段为在第一阶段后的整合阶段(Integration Phase),并且在第一阶段以及第二阶段之间,数据储存装置承受一高温焊接。
本发明亦提供一种数据维护方法适用于具有多个单阶备用储存区块、多个三阶数据区块、以及多个三阶备用区块的一数据储存装置。数据维护方法包括:接收一第一数据以及第一数据的一第一逻辑地址,并将第一数据写入一第一三阶备用区块;依据第一逻辑地址,决定对应第一逻辑地址的一第一三阶数据区块是否已存在有效数据;当第一三阶数据区块已存在有效数据时,反查第一三阶数据区块所相应的一第二逻辑地址;释放映射至第二逻辑地址的第一三阶数据区块、一第二三阶数据区块以及一第三三阶数据区块;以及将第一三阶备用区块映射至第一逻辑地址。
在一实施例中数据维护方法还包括:当第一三阶数据区块不具有有效数据时,将第一三阶备用区块映射至第一逻辑地址并且释放第一三阶数据区块;判断第一逻辑地址是否已具有相应的有效数据;以及当第一逻辑地址已具有相应的有效数据时,释放映射至第一逻辑地址的三阶数据区块。其中将第一数据写入第一三阶备用区块的步骤还包括:将第一数据以一单阶储存模式写入一第一单阶备用储存区块、一第二单阶备用储存区块以及一第三单阶备用储存区块;以及以一三阶储存模式将第一单阶备用储存区块、第二单阶备用储存区块以及第三单阶备用储存区块中的数据整理至第一三阶备用区块。
另一实施例中,数据维护方法还包括:在一第一阶段,将一预写数据中的一第一子预写数据、一第二子预写数据以及一第三子预写数据以一单阶储存模式写入第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块;以及将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块映射至第一逻辑区。其中,第一数据以及第一逻辑地址是在一第二阶段被接收的。
附图说明
图1是本发明的一种实施例的电子系统的方块图。
图2是本发明的一种实施例的快闪存储器的示意图。
图3是本发明的一种实施例的逻辑地址以及三阶数据区块的示意图。
图4是本发明的一种实施例的区块映射关系的示意图。
图5是本发明的一种实施例的数据维护方法的流程图。
图6是本发明的一种实施例的数据维护方法的流程图。
符号说明
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
166 随机存取存储器;
180 快闪存储器;
SLC_POOL 单阶储存单元备用池;
TLC_POOL 三阶储存单元备用池;
M_POOL 三阶数据区块池;
SLC_SP_1~SLC_SP_Z 单阶备用储存区块;
TLC_SP_1~TLC_SP_M 三阶备用区块;
F_1~F_N 三阶数据区块;
H_1~H_N 逻辑地址;
S500~S504、S600~S614 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图1为本发明所提供的一电子系统的一种实施例的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机110所下达的命令操作。控制器160包括一运算单元162、一永久存储器(如,只读存储器ROM)164以及随机存取存储器(RAM)166。永久存储器164与所载的程式码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。随机存取存储器(RAM)166用以载入程式码与参数以提供控制器160根据所载入的程式码与参数动作。快闪存储器180具有多个区块,其中每一区块具有多个页面,其中快闪存储器180是以页面为最小单位进行写入,并且以区块为最小单位进行抹除。
图2是本发明的一种实施例的快闪存储器的示意图。如图2所示,快闪存储器180具有一单阶储存单元备用池SLC_POOL、一三阶储存单元备用池TLC_POOL以及一数据区块池M_POOL。单阶储存单元备用池SLC_POOL包括多个单阶备用储存区块(Single-Level Cell,SLC)SLC_SP_1~SLC_SP_Z,其中Z为单阶备用储存区块的总数量,并且每一单阶备用储存区块SLC_SP_1~SLC_SP_Z的大小等同于一个区块的大小,但本发明不限于此。换言之,单阶备用储存区块SLC_SP_1~SLC_SP_Z用以以单阶储存模式写入数据的区块。值得注意的是,单阶储存单元备用池SLC_POOL中的单阶储存单元SLC_SP_1~SLC_SP_Z用以将数据整理至三阶储存单元备用池TLC_POOL的存储器空间。三阶储存单元备用池TLC_POOL包括多个三阶备用区块(Triple-Level Cell,TLC)TLC_SP_0~TLC_SP_M,其中M为单阶备用储存区块的总数量,并且每一三阶备用区块TLC_SP_0~TLC_SP_M的大小等同于一个区块的大小。换言之,三阶备用区块TLC_SP_0~TLC_SP_M用以以三阶储存模式写入数据的区块。值得注意的是,三阶储存单元备用池TLC_POOL用以提供可进行写入的三阶备用区块TLC_SP_0~TLC_SP_M,并且已存在有效数据的三阶备用区块TLC_SP_0~TLC_SP_M会与数据区块池M_POOL中的具有无效数据的区块交换。数据区块池M_POOL具有多个三阶数据区块F_1~F_N,其中N为单阶备用储存区块的总数量,并且每一三阶数据区块F_1~F_N的大小等同于一个区块的大小。换言之,三阶数据区块F_1~F_N用以写入有效数据的区块。值得注意的是,数据区块池M_POOL用以提供使用者储存数据的存储器空间。另外,三阶数据区块F_1~F_N分别被指派给多个逻辑地址H_1~H_N,其中每一这些三阶数据区块F_1~F_N分别相应于这些逻辑地址H_1~H_N中之一者,如图3所示。详细而言,三阶数据区块F_1被指派给逻辑地址H_1、三阶数据区块F_1被指派给逻辑地址H_1、三阶数据区块F_2被指派给逻辑地址H_2、三阶数据区块F_3被指派给逻辑地址H_3、三阶数据区块F_4被指派给逻辑地址H_4…,依此类推。另外,三阶数据区块F_1~F_N以及逻辑地址H_1~H_N依照地址由上而下排列。
在本发明的一实施例中,快闪存储器180操作于三阶储存单元(Triple-LevelCell,TLC)模式。换言之,数据区块池M_POOL中的三阶数据区块F_1~F_N是三阶储存单元。值得注意的是,三阶储存单元是藉由整理(Program)单阶储存单元的电压所获得的储存单元。三阶储存单元的存储器空间是单阶储存单元的三倍。虽然三阶储存单元的存储器空间较大,但三阶储存单元相较于单阶储存单元更容易被环境影响,尤其是作为嵌入式快闪存储器模组(eMMC)的快闪存储器。由于嵌入式快闪存储器模组(eMMC)需要与装置的母板一起过锡炉,故储存于三阶储存单元中的数据在过锡炉之后时常被损毁。有鉴于此,本发明所提供的数据储存装置140可在快闪存储器180进入高温环境之前(即第一阶段),将数据区块池M_POOL中的三阶数据区块F_1~F_N作为单阶储存单元,以将预写数据以单阶储存单元模式写入三阶数据区块F_1~F_N。值得注意的是,当数据区块池M_POOL中的三阶数据区块F_1~F_N作为单阶储存单元时,数据区块池M_POOL的存储器容量缩减为原本作为三阶储存单元的三阶数据区块F_1~F_N的三分之一倍。接着,本发明所提供的数据储存装置140可在快闪存储器180离开高温环境之后(即第二阶段),将以单阶储存单元模式写入三阶数据区块F_1~F_N的预写数据,重新整理为三阶储存单元。在本发明的一实施例中,第一阶段为生产阶段(Production Phase),第二阶段为在第一阶段后的整合阶段(Integration Phase),并且在第一阶段以及第二阶段之间,数据储存装置140承受一高温焊接,但本发明不限于此。
举例而言,当控制器160接收到一预写数据及该预写数据的一逻辑地址时,控制器160用以在第一阶段,将一预写数据(Preload Data)根据所接收的逻辑地址,写入逻辑地址H_1~H_N中之至少一者。详细而言,在本发明中,控制器160可将预写数据(Preload Data)不依照逻辑地址H_1~H_N的地址写入逻辑地址。换言之,控制器160可将预写数据(PreloadData)写入不依序选取的逻辑地址中。
在本发明的一实施例中,控制器160将三阶数据区块F_1~F_N均分为三个区域,其各包含相同数量的数据区块。详细而言,控制器160将三阶数据区块F_1~F_N依序分为区域R1~R3,以不连续地选取三阶数据区块F_1~F_N,以作为单阶储存单元,但本发明不限于此。值得注意的是,三阶数据区块F_1~F_N具有连续的地址。在将三阶数据区块F_1~F_N依序分为三个区域之后,控制器160接着根据命令将预写数据分为多个子预写数据以写入逻辑地址中。值得注意的是,控制器160系依照每一三阶储存单元的大小将预写数据切割为多个子预写数据。换言之,每一预写数据的数据量等同于一个三阶储存单元的数据量以及三个单阶储存单元的数据量。详细而言,控制器160根据指示将预写数据写入逻辑地址H_1~H_N中的一特定逻辑地址的一写入命令,分别自三个区域选取三阶数据区块F_1~F_N中之三者。接着,控制器160将子预写数据以单阶储存模式写入所选取的三个三阶数据区块,并且将所选取的三个三阶数据区块映射至特定逻辑地址(例如,第一逻辑地址)。
值得注意的是,在本发明中,三阶数据区块以及逻辑地址的映射以及指派关系可由至少一个映射表(Mapping table)来维持。举例而言,快闪存储器180可具有一第一映射表,用以记录三阶数据区块以及被指派的逻辑地址的关系。快闪存储器180中可更包括一第二映射表用以记录已写入子预写数据的三阶数据区块以及逻辑地址的映射关系,其中已写入子预写数据的三阶数据区块可直接映射至逻辑地址,或者已写入子预写数据的三阶数据区块是映射至被指派给逻辑地址的三阶数据区块,本发明不限于此。
如图4所示,在一实施例中,控制器160在第一阶段,根据指示将一第一预写数据写入逻辑地址H_1~H_N中的一逻辑地址H_302的一第一写入命令,将第一预写数据分析为第一子预写数据、第二子预写数据以及第三子预写数据,并以一单阶储存模式将第一子预写数据、第二子预写数据以及第三子预写数据写入三阶数据区块F_302、三阶数据区块F_602以及三阶数据区块F_2,并将三阶数据区块F_302、三阶数据区块F_602以及三阶数据区块F_2映射至逻辑地址H_302。接着,控制器160在第一阶段,根据指示将一第二预写数据写入逻辑地址H_1~H_N中的一逻辑地址H_604的一第二写入命令,将第二预写数据分析为第一子预写数据、第二子预写数据以及第三子预写数据,并以一单阶储存模式将第二预写数据的第一子预写数据、第二子预写数据以及第三子预写数据写入三阶数据区块F_604、三阶数据区块F_4以及三阶数据区块F_304,并将三阶数据区块F_604、三阶数据区块F_4以及三阶数据区块F_304映射至逻辑地址H_604。接着,控制器160在第一阶段,根据指示将一第三预写数据写入逻辑地址H_1~H_N中的一逻辑地址H_8的一第三写入命令,将第三预写数据分析为第一子预写数据、第二子预写数据以及第三子预写数据,并将第三预写数据的第一子预写数据、第二子预写数据以及第三子预写数据以一单阶储存模式写入三阶数据区块F_8、三阶数据区块F_308以及三阶数据区块F_608,并将三阶数据区块F_8、三阶数据区块F_308以及三阶数据区块F_608映射至逻辑地址H_8。接着,控制器160在第一阶段,根据指示将一第四预写数据写入逻辑地址H_1~H_N中的一逻辑地址H_2的一第四写入命令,将第四子预写数据分析为第一子预写数据、第二子预写数据以及第三子预写数据,并将第四预写数据的第一子预写数据、第二子预写数据以及第三子预写数据以一单阶储存模式写入三阶数据区块F_1、三阶数据区块F_301以及三阶数据区块F_302,并将三阶数据区块F_1、三阶数据区块F_301以及三阶数据区块F_302映射至逻辑地址H_2。
然而,在某些实施例中,三阶数据区块并不是映射至被指派的逻辑地址。换言之,三阶数据区块所被写入的数据并不是相应于被指派的逻辑地址的数据。因此,当使用者要在第二阶段对逻辑地址进行写入时,控制器160无法根据某些规格的要求,将被指派的逻辑地址的三阶数据区块推至三阶储存单元备用池TLC_POOL。举例而言,如图4所示,三阶数据区块F_2是被指派给逻辑地址H_2。然而,三阶数据区块F_2已被写入相应于逻辑地址H_302的有效数据。换言之,三阶数据区块F_2是被映射至逻辑地址H_2,而并非被指派的逻辑地址H_2。
在第二阶段中,控制器160接收具有一数据以及一特定逻辑地址的使用者写入命令,并且根据所接收的使用者写入命令,判断特定逻辑地址是否已存在有效数据。当特定逻辑地址已存在有效数据时,控制器160释放映射至特定逻辑地址的三个三阶数据区块。详细而言,当特定逻辑地址已存在有效数据并且使用者写入命令是要更新特定逻辑地址时,控制器160先定位被映射至特定逻辑地址的三个三阶数据区块,并且在三阶储存单元备用池TLC_POOL选取一三阶备用区块,以将被映射至特定逻辑地址的三个三阶数据区块中的数据以三阶储存模式整理至所选取的三阶备用区块。接着,控制器160将所整理的三阶备用区块暂时先映射至特定逻辑地址直到被写入相应于使用者写入命令的数据的另一被用三阶储存单元要映射至特定逻辑地址时,以在断电事件发生时可保有特定逻辑地址原本的数据,但本发明不限于此。在其他实施例中,当特定逻辑地址已存在有效数据并且使用者写入命令是要更新特定逻辑地址时,控制器160可直接将被映射至特定逻辑地址的三个三阶数据区块与特定逻辑地址的映射关系删除。另外,当特定逻辑地址未存在有效数据时,则直接进行以下步骤。
接着,控制器160在三阶储存单元备用池TLC_POOL选取一三阶备用区块,并且将相应于使用者写入命令的数据写入所选取的三阶备用区块。接着,控制器160还用以判断被指派给特定逻辑地址的三阶数据区块(对应于特定逻辑地址的三阶数据区块)是否具有有效数据,以克服上述特定逻辑地址被指派的三阶数据区块已存在相应于其他逻辑地址的有效数据的问题。换言之,控制器160是判断被指派给特定逻辑地址的三阶数据区块是否已被映射至其他逻辑地址,以克服上述特定逻辑地址被指派的三阶数据区块已存在相应于其他逻辑地址的有效数据的问题。当被指派给特定逻辑地址的三阶数据区块具有有效数据时,控制器160还用以反查被指派给特定逻辑地址的三阶数据区块所相应的逻辑地址,并且释放映射至被指派给特定逻辑地址的三阶数据区块所相应的逻辑地址的三个三阶数据区块。换言之,当被指派给特定逻辑地址的三阶数据区块是否已被映射至其他逻辑地址,控制器160还用以反查被指派给特定逻辑地址的三阶数据区块所映射至的逻辑地址,并且释放映射至被指派给特定逻辑地址的三阶数据区块所映射的逻辑地址的三个三阶数据区块。接着,控制器160将被指派给特定逻辑地址的三阶数据区块以及已写入数据的三阶备用区块交换,以将已写入数据的三阶备用区块映射至特定逻辑地址并且将被指派给特定逻辑地址的三阶数据区块推至三阶储存单元备用池TLC_POOL。另外,当被指派给特定逻辑地址的三阶数据区块不具有有效数据时,控制器160用以将被指派给特定逻辑地址的三阶数据区块以及已写入数据的三阶备用区块交换,以将已写入数据的三阶备用区块映射至特定逻辑地址并且将被指派给特定逻辑地址的三阶数据区块推至三阶储存单元备用池TLC_POOL。
值得注意的是,在某些实施例中,控制器160是先将使用者写入命令欲写入的数据以单阶储存模式先写入单阶备用储存区块池SLC_POOL中的单阶储存单元中之三者,再以三阶储存模式将已写入数据的三个单阶储存单元整理至所选取的三阶备用区块。
详细而言,控制器160接收到具有逻辑地址H_1~H_N中的一第一逻辑地址以及一第一数据的一第一使用者写入命令。举例而言,在图4的实施例中,第一逻辑地址是逻辑地址H_209。控制器160则根据第一使用者写入命令,判断第一逻辑地址H_209是否已存在有效数据。在本实施例中,第一逻辑地址H_209并未存在有效数据。换言之,没有任何三阶数据区块被映射至第一逻辑地址H_209。由于第一逻辑地址H_209并未存在有效数据,因此控制器160接着在三阶储存单元备用池TLC_POOL选取一第一三阶备用区块TLC_SP_1,并且将第一数据写入所选取的第一三阶备用区块TLC_SP_1,其中控制器160是先以一单阶储存模式将数据写入单阶储存单元备用池SLC_POOL中的一第一单阶备用储存区块SLC_SP_1、一第二单阶备用储存区块SLC_SP_2以及一第三单阶备用储存区块SLC_SP_3,再以一三阶储存模式将第一单阶备用储存区块SLC_SP_1、第二单阶备用储存区块SLC_SP_2以及第三单阶备用储存区块SLC_SP_3中的数据整理至所选取的第一三阶备用区块TLC_SP_1。值得注意的是,本发明并未限制选取单阶备用储存区块以及三阶备用区块的方法。接着,控制器160判断被指派给第一逻辑地址H_209的三阶数据区块F_1~F_N中的一第一三阶数据区块F_209是否具有一有效数据。换言之,控制器160判断被指派给第一逻辑地址H_209的三阶数据区块F_1~F_N中的一第一三阶数据区块F_209是否已被映射至其他逻辑地址。在本实施例中,第一三阶数据区块F_209未在第一阶段被写入数据。换言之,在本实施例中,第一三阶数据区块F_209未被映射至除了第一逻辑地址H_209的其他逻辑地址。因此,控制器160则可直接将被指派给第一逻辑地址H_209的第一三阶数据区块F_209以及已写入第一数据的第一三阶备用区块TLC_SP_1交换,以将已写入第一数据的第一三阶备用区块TLC_SP_1映射至第一逻辑地址H_209并且将被指派给第一逻辑地址H_209的第一三阶数据区块F_209推至三阶储存单元备用池TLC_POOL。
在图4的另一实施例中,第一逻辑地址是逻辑地址H_304。控制器160则根据第一使用者写入命令,判断第一逻辑地址H_304是否已存在有效数据。在本实施例中,第一逻辑地址H_304所被指派的三阶数据区块F_304虽然有存在有效数据,但在第一阶段中第一逻辑地址H_304并未存在有效数据。换言之,没有任何三阶数据区块被映射至第一逻辑地址H_304。由于第一逻辑地址H_304并未存在有效数据,因此控制器160接着在三阶储存单元备用池TLC_POOL选取一第一三阶备用区块TLC_SP_1,并且将第一数据写入所选取的第一三阶备用区块TLC_SP_1,其中控制器160是先以一单阶储存模式写入单阶储存单元备用池SLC_POOL中的一第一单阶备用储存区块SLC_SP_1、一第二单阶备用储存区块SLC_SP_2以及一第三单阶备用储存区块SLC_SP_3,再以一三阶储存模式将第一单阶备用储存区块SLC_SP_1、第二单阶备用储存区块SLC_SP_2以及第三单阶备用储存区块SLC_SP_3中的数据整理至所选取的第一三阶备用区块TLC_SP_1。值得注意的是,本发明并未限制选取单阶备用储存区块以及三阶备用区块的方法。
接着,控制器160判断被指派给第一逻辑地址H_304的三阶数据区块F_1~F_N中的一第一三阶数据区块F_304是否具有一有效数据。换言之,控制器160判断被指派给第一逻辑地址H_304的三阶数据区块F_1~F_N中的一第一三阶数据区块F_304是否已被映射至除了第一逻辑地址H_304的其他逻辑地址。在本实施例中,第一三阶数据区块F_304已被写入第二逻辑地址H_604的有效数据。换言之,在本实施例中,第一三阶数据区块F_304已被映射至第二逻辑地址H_604。因此,控制器160还用以反查第一三阶数据区块F_304,以获得相应于第一三阶数据区块F_304的逻辑地址H_1~H_N中的第二逻辑地址H_604。换言之,控制器160是反查第一三阶数据区块F_304,以获得第一三阶数据区块F_304所映射至的第二逻辑地址H_604。接着,控制器160将映射至第二逻辑地址H_604的第一三阶数据区块F_304、第二三阶数据区块F_4以及第三三阶数据区块F_604的数据以三阶储存模式整理至三阶储存单元备用池TLC_POOL中的另一三阶备用区块,例如第二三阶备用区块TLC_SP_2,以释放第一三阶数据区块F_304、第二三阶数据区块F_4以及第三三阶数据区块F_604。接着,控制器160判断被指派给第二逻辑地址H_604的三阶数据区块F_604是否具有有效数据。换言之,控制器160判断被指派给第二逻辑地址H_604的三阶数据区块F_604是否已被映射至任何逻辑地址。在本实施例中,第三三阶数据区块F_604已在整理第二逻辑地址H_604时释放。换言之,三阶数据区块F_604并未被映射至任何逻辑地址也未具有有效数据。因此,控制器160将整理后的第二三阶备用区块TLC_SP_2以及被指派给第二逻辑地址H_604的三阶数据区块F_604交换,以将整理后的第二三阶备用区块TLC_SP_2映射至第二逻辑地址H_604,并且将被指派给第二逻辑地址H_604的三阶数据区块F_604推至三阶储存单元备用池TLC_POOL。藉由上述步骤,控制器160已整理了第二逻辑地址H_604,并且在整理第二逻辑地址H_604的过程中,释放了被指派给第一逻辑地址H_304的第一三阶数据区块F_304。
接着,控制器160将被指派给第一逻辑地址H_304的第一三阶数据区块F_304以及已写入第一数据的第一三阶备用区块TLC_SP_1交换,以将已写入第一数据的第一三阶备用区块TLC_SP_1映射至第一逻辑地址H_304并且将被指派给第一逻辑地址H_304的第一三阶数据区块F_304推至三阶储存单元备用池TLC_POOL。
在图4的另一实施例中,第一逻辑地址是逻辑地址H_2。控制器160则根据第一使用者写入命令,判断第一逻辑地址H_2是否已存在有效数据。在本实施例中,第一逻辑地址H_2已存在有效数据。因此,当第一逻辑地址H_2已存在有效数据时,控制器160释放映射至第一逻辑地址H_2的三阶数据区块F_1、三阶数据区块F_301以及三阶数据区块F_601。详细而言,当第一逻辑地址H_2已存在有效数据并且使用者写入命令是要更新第一逻辑地址H_2时,控制器160先定位被映射至第一逻辑地址H_2的三个三阶数据区块(三阶数据区块F_1、三阶数据区块F_301以及三阶数据区块F_601),并且在三阶储存单元备用池TLC_POOL选取一第三三阶备用区块TLC_SP_3,以将被映射至第一逻辑地址H_2的三阶数据区块F_1、三阶数据区块F_301以及三阶数据区块F_601中的数据以三阶储存模式整理至所选取的第三三阶备用区块TLC_SP_3。接着,控制器160将所整理的第三三阶备用区块TLC_SP_3暂时先映射至第一逻辑地址H_2直到被写入相应于使用者写入命令的数据的另一被用三阶储存单元要映射至特定逻辑地址时。接着,控制器160在三阶储存单元备用池TLC_POOL选取另一第一三阶备用区块TLC_SP_1,并且将第一数据写入所选取的第一三阶备用区块TLC_SP_1,其中控制器160是先以一单阶储存模式写入单阶储存单元备用池SLC_POOL中的一第一单阶备用储存区块SLC_SP_1、一第二单阶备用储存区块SLC_SP_2以及一第三单阶备用储存区块SLC_SP_3,再以一三阶储存模式将第一单阶备用储存区块SLC_SP_1、第二单阶备用储存区块SLC_SP_2以及第三单阶备用储存区块SLC_SP_3中的数据整理至所选取的第一三阶备用区块TLC_SP_1。值得注意的是,本发明并未限制选取单阶备用储存区块以及三阶备用区块的方法。
接着,控制器160判断被指派给第一逻辑地址H_2的三阶数据区块F_1~F_N中的一第一三阶数据区块F_2是否具有一有效数据。换言之,控制器160判断被指派给第一逻辑地址H_2的三阶数据区块F_1~F_N中的一第一三阶数据区块F_2是否已被映射至其他逻辑地址。在本实施例中,第一三阶数据区块F_2已被写入第二逻辑地址H_302的有效数据。换言之,在本实施例中,第一三阶数据区块F_2已被映射至第二逻辑地址H_302。因此,控制器160还用以反查第一三阶数据区块F_2所相应的逻辑地址H_1~H_N中的一第二逻辑地址H_302。换言之,控制器160还用以反查第一三阶数据区块F_2,以获得第一三阶数据区块F_2所映射的第二逻辑地址H_302。接着,控制器160将映射至第二逻辑地址H_302的第一三阶数据区块F_2、第二三阶数据区块F_302以及第三三阶数据区块F_602的数据以三阶储存模式整理至三阶储存单元备用池TLC_POOL中的另一三阶备用区块,例如第二三阶备用区块TLC_SP_2,以释放第一三阶数据区块F_2、第二三阶数据区块F_302以及第三三阶数据区块F_602。接着,控制器160判断被指派给第二逻辑地址H_302的三阶数据区块F_302是否具有有效数据。换言之,控制器160判断被指派给第二逻辑地址H_302的三阶数据区块F_302是否被映射至任何逻辑地址。在本实施例中,第三三阶数据区块F_302已在整理第二逻辑地址H_302时释放。因此,控制器160将整理后的第二三阶备用区块TLC_SP_2以及被指派给第二逻辑地址H_302的三阶数据区块F_302交换,以将整理后的第二三阶备用区块TLC_SP_2映射至第二逻辑地址H_302,并且将被指派给第二逻辑地址H_302的三阶数据区块F_302推至三阶储存单元备用池TLC_POOL。藉由上述步骤,控制器160已整理了第二逻辑地址H_302,并且在整理第二逻辑地址H_302的过程中,释放了被指派给第一逻辑地址H_2的第一三阶数据区块F_2。
接着,控制器160将被指派给第一逻辑地址H_2的第一三阶数据区块F_2以及已写入第一数据的第一三阶备用区块TLC_SP_1交换,以将已写入第一数据的第一三阶备用区块TLC_SP_1映射至第一逻辑地址H_2并且将被指派给第一逻辑地址H_2的第一三阶数据区块F_2推至三阶储存单元备用池TLC_POOL。
图5是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140,其中数据维护方法用以在一第一阶段,将一预写数据非依序地写入逻辑地址H_1~H_N中之至少一者。流程开始于步骤S600。
在步骤S500中,控制器160将三阶数据区块F_1~F_N分为三个区域。
接着,在步骤S502中,控制器160判断是否接收到具有一预写数据以及预写数据的一特定逻辑地址的一写入命令。当控制器160接收到将写入命令时,流程进行至步骤S604;否则,控制器160继续判断是否接收到具有一预写数据以及预写数据的一特定逻辑地址的一写入命令。
接着,在步骤S504中,控制器160分别自三个区块中选取一三阶数据区块,并且将分析预写数据所获得的一第一子预写数据、一第二子预写数据以及一第三子预写数据以一单阶储存模式写入所选取的三个三阶数据区块。接着,流程回到步骤S502,控制器160继续判断是否接收到将具有另一预写数据中的一预写数据写入逻辑地址H_1~H_N中的一特定逻辑地址的一写入命令。
图6是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140,其中数据维护方法用以在第二阶段中,控制器160还用以将已写入子预写数据的三阶数据区块中的数据依序整理至三阶备用区块TLC_SP_0~TLC_SP_M中之至少一者,其中将已被写入预写数据的三阶数据区块中的数据整理至三阶备用区块中之至少一者的步骤与根据指示对这些逻辑地址中之一者写入的一使用者写入命令所致能的写入步骤交错的。换言之,控制器160是根据指示对逻辑地址写入的使用者写入命令,将映射至使用者写入命令所要求的逻辑地址的三阶数据区块中的数据以三阶储存单元模式整理至第一三阶备用区块。流程开始于步骤S600。
在步骤S600中,控制器160判断是否接收到具有一数据以及数据的一特定逻辑地址的使用者写入命令。当控制器160接收到使用者写入命令时,流程进行至步骤S602,否则,控制器160继续判断是否接收到具有一数据以及数据的一特定逻辑地址的使用者写入命令。
接着,在步骤S602中,控制器160判断特定逻辑地址是否已存在有效数据。当特定逻辑地址已存在有效数据时,流程进行至步骤S604;否则,流程进行至步骤S606。
在步骤S604中,控制器160释放映射至特定逻辑地址的三个三阶数据区块。详细而言,当特定逻辑地址已存在有效数据并且使用者写入命令要更新特定逻辑地址时,控制器160先定位被映射至特定逻辑地址的三个三阶数据区块,并且在三阶储存单元备用池TLC_POOL选取一三阶备用区块,以将被映射至特定逻辑地址的三个三阶数据区块中的数据以三阶储存模式整理至所选取的三阶备用区块。接着,控制器160将所整理的三阶备用区块暂时先映射至特定逻辑地址直到被写入相应于使用者写入命令的数据的另一被用三阶储存单元要映射至特定逻辑地址时,以在断电事件发生时可保有特定逻辑地址原本的数据,但本发明不限于此。
接着,在步骤S606中,控制器160在三阶储存单元备用池TLC_POOL选取一三阶备用区块,并且将相应于使用者写入命令的数据写入所选取的三阶备用区块。值得注意的是,在某些实施例中,控制器160是先将使用者写入命令欲写入的数据以单阶储存模式先写入单阶备用储存区块池SLC_POOL中的单阶储存单元中之三者,再以三阶储存模式将已写入数据的三个单阶储存单元整理至所选取的三阶备用区块。详细而言,控制器160先以一单阶储存模式将数据写入单阶储存单元备用池SLC_POOL中的一第一单阶备用储存区块、一第二单阶备用储存区块以及一第三单阶备用储存区块,再以一三阶储存模式将第一单阶备用储存区块、第二单阶备用储存区块以及第三单阶备用储存区块中的数据整理至所选取的一第一三阶备用区块。
接着,在步骤S608中,控制器160还用以判断被指派给特定逻辑地址的三阶数据区块是否已存在有效数据。当被指派给特定逻辑地址的三阶数据区块已存在有效数据时,流程进行至步骤S610;否则,流程进行至步骤S614。换言之,在步骤S608中,控制器160还用以判断被指派给特定逻辑地址的三阶数据区块是否已被映射至其他逻辑地址。当被指派给特定逻辑地址的三阶数据区块已被映射至其他逻辑地址时,流程进行至步骤S610;否则,流程进行至步骤S614。
在步骤S610中,控制器160还用以反查被指派给特定逻辑地址的三阶数据区块,以获得被指派给特定逻辑地址的三阶数据区块所相应的逻辑地址。
接着,在步骤S612中,控制器160释放映射至被指派给特定逻辑地址的三阶数据区块所相应的逻辑地址的三个三阶数据区块。举例而言,在图5的一实施例中,控制器160在步骤S608中判断被指派给第一逻辑地址H_2(特定逻辑地址)的三阶数据区块F_1~F_N中的一第一三阶数据区块F_2具有一有效数据。在本实施例中,第一三阶数据区块F_2已被写入第二逻辑地址H_302的有效数据。因此,控制器160还用以反查第一三阶数据区块F_2,以获得第一三阶数据区块F_2所相应的逻辑地址H_1~H_N中的一第二逻辑地址H_302(步骤S610)。换言之,控制器160在步骤S608中判断被指派给第一逻辑地址H_2(特定逻辑地址)的三阶数据区块F_1~F_N中的一第一三阶数据区块F_2已被映射至其他逻辑地址。在本实施例中,第一三阶数据区块F_2已被映射至第二逻辑地址H_302。因此,控制器160还用以反查第一三阶数据区块F_2,以获得第一三阶数据区块F_2被映射至的第二逻辑地址H_302(步骤S610)。接着,在步骤S612中,控制器160将映射至第二逻辑地址H_302的第一三阶数据区块F_2、第二三阶数据区块F_302以及第三三阶数据区块F_602的数据以三阶储存模式整理至三阶储存单元备用池TLC_POOL中的另一三阶备用区块,例如第二三阶备用区块TLC_SP_2,以释放第一三阶数据区块F_2、第二三阶数据区块F_302以及第三三阶数据区块F_602。接着,控制器160判断被指派给第二逻辑地址H_302的三阶数据区块F_302是否具有有效数据。换言之,控制器160判断被指派给第二逻辑地址H_302的三阶数据区块F_302是否已被映射至任何逻辑地址。在本实施例中,第三三阶数据区块F_302已在整理第二逻辑地址H_302时释放。因此,控制器160将整理后的第二三阶备用区块TLC_SP_2以及被指派给第二逻辑地址H_302的三阶数据区块F_302交换,以将整理后的第二三阶备用区块TLC_SP_2映射至第二逻辑地址H_302,并且将被指派给第二逻辑地址H_302的三阶数据区块F_302推至三阶储存单元备用池TLC_POOL。在其他实施例中,若被指派给第二逻辑地址H_302的三阶数据区块F_302具有有效数据,控制器160则可重复上述步骤以释放三阶数据区块F_302。藉由上述步骤,控制器160已整理了第二逻辑地址H_302,并且在整理第二逻辑地址H_302的过程中,释放了被指派给第一逻辑地址H_2(特定逻辑地址)的第一三阶数据区块F_2以及另外两个原本映射至第二逻辑地址H_302的三阶数据区块。
接着,在步骤S614中,控制器160将被指派给特定逻辑地址的三阶数据区块以及已写入数据的三阶备用区块交换,以将已写入数据的三阶备用区块映射至特定逻辑地址并且将被指派给特定逻辑地址的三阶数据区块推至三阶储存单元备用池TLC_POOL。
综上所述,本发明所提供的数据储存装置以及数据维护方法可以不依序选取单阶储存单元以暂存将储存于三阶储存单元的数据,并且在一第二阶段以一特定方式整理暂存的单阶储存单元。
本发明的方法,或特定型态或其部份,可以以程式码的型态存在。程式码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程式产品,其中,当程式码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程式码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程式码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程式码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。

Claims (14)

1.一种数据储存装置,包括:
一快闪存储器,具有多个单阶备用储存区块、多个三阶数据区块、及多个三阶备用区块;以及
一控制器,用以接收一第一数据以及该第一数据的一第一逻辑地址,并将该第一数据写入一第一三阶备用区块;
其复用以依据该第一逻辑地址,决定对应该第一逻辑地址的一第一三阶数据区块是否已存在有效数据,其中当该第一三阶数据区块已存在有效数据时,该控制器还用以反查该第一三阶数据区块所相应的一第二逻辑地址,释放映射至该第二逻辑地址的该第一三阶数据区块、一第二三阶数据区块以及一第三三阶数据区块,并且将该第一三阶备用区块映射至该第一逻辑地址。
2.根据权利要求1所述的数据储存装置,其特征在于,当该第一三阶数据区块不具有有效数据时,该控制器用以将该第一三阶备用区块映射至该第一逻辑地址,并且释放该第一三阶数据区块。
3.根据权利要求1所述的数据储存装置,其特征在于,该控制器还用以判断该第一逻辑地址是否已具有相应的有效数据,当该第一逻辑地址已具有相应的有效数据时,该控制器还用以释放映射至该第一逻辑地址的这些三阶数据区块。
4.根据权利要求1所述的数据储存装置,其特征在于,该控制器用以将该第一数据以一单阶储存模式写入该单阶储存单元备用池中的一第一单阶备用储存区块、一第二单阶备用储存区块以及一第三单阶备用储存区块,再以一三阶储存模式将该第一单阶备用储存区块、该第二单阶备用储存区块以及该第三单阶备用储存区块中的数据整理至该第一三阶备用区块。
5.根据权利要求1所述的数据储存装置,其特征在于,该控制器用以在一第一阶段,将一预写数据中的一第一子预写数据、一第二子预写数据以及一第三子预写数据以一单阶储存模式写入该第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块,并且将该第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块映射至该第一逻辑区。
6.根据权利要求1所述的数据储存装置,其特征在于,该控制器用以在一第二阶段接收该第一数据以及该第一逻辑地址。
7.根据权利要求6所述的数据储存装置,其特征在于,中该第一阶段为生产阶段,该第二阶段为在该第一阶段后的整合阶段,并且在该第一阶段以及该第二阶段之间,该数据储存装置承受一高温焊接。
8.一种数据维护方法,适用于具有多个单阶备用储存区块、多个三阶数据区块、以及多个三阶备用区块的一数据储存装置,该数据维护方法包括:
接收一第一数据以及该第一数据的一第一逻辑地址,并将该第一数据写入一第一三阶备用区块;
依据该第一逻辑地址,决定对应该第一逻辑地址的一第一三阶数据区块是否已存在有效数据;
当该第一三阶数据区块已存在有效数据时,反查该第一三阶数据区块所相应的一第二逻辑地址;
释放映射至该第二逻辑地址的该第一三阶数据区块、一第二三阶数据区块以及一第三三阶数据区块;以及
将该第一三阶备用区块映射至该第一逻辑地址。
9.根据权利要求8所述的数据维护方法,其特征在于,还包括:
当该第一三阶数据区块不具有有效数据时,将该第一三阶备用区块映射至该第一逻辑地址并且释放该第一三阶数据区块。
10.根据权利要求8所述的数据维护方法,其特征在于,还包括:
判断该第一逻辑地址是否已具有相应的有效数据;以及
当该第一逻辑地址已具有相应的有效数据时,释放映射至该第一逻辑地址的这些三阶数据区块。
11.根据权利要求8所述的数据维护方法,其特征在于,将该第一数据写入该第一三阶备用区块的步骤还包括:
将该第一数据以一单阶储存模式写入一第一单阶备用储存区块、一第二单阶备用储存区块以及一第三单阶备用储存区块;以及
以一三阶储存模式将该第一单阶备用储存区块、该第二单阶备用储存区块以及该第三单阶备用储存区块中的数据整理至该第一三阶备用区块。
12.根据权利要求8所述的数据维护方法,其特征在于,还包括:
在一第一阶段,将一预写数据中的一第一子预写数据、一第二子预写数据以及一第三子预写数据以一单阶储存模式写入该第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块;以及
将该第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块映射至该第一逻辑区。
13.根据权利要求8所述的数据维护方法,其特征在于,该第一数据以及该第一逻辑地址是在一第二阶段被接收的。
14.根据权利要求13所述的数据维护方法,其特征在于,该第一阶段为生产阶段,该第二阶段为在该第一阶段后的整合阶段,并且在该第一阶段以及该第二阶段之间,该数据储存装置承受一高温焊接。
CN201610614705.1A 2016-06-21 2016-07-29 数据储存装置及其数据维护方法 Active CN107526540B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW105119404A TWI590051B (zh) 2016-06-21 2016-06-21 資料儲存裝置及其資料維護方法
TW105119404 2016-06-21

Publications (2)

Publication Number Publication Date
CN107526540A true CN107526540A (zh) 2017-12-29
CN107526540B CN107526540B (zh) 2020-07-10

Family

ID=60048546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610614705.1A Active CN107526540B (zh) 2016-06-21 2016-07-29 数据储存装置及其数据维护方法

Country Status (3)

Country Link
US (1) US10168913B2 (zh)
CN (1) CN107526540B (zh)
TW (1) TWI590051B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US11550481B2 (en) * 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10452290B2 (en) * 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
TWI655640B (zh) * 2018-01-24 2019-04-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
TWI709855B (zh) * 2018-01-26 2020-11-11 慧榮科技股份有限公司 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器
TWI660269B (zh) * 2018-01-26 2019-05-21 慧榮科技股份有限公司 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器
CN109887534B (zh) * 2018-12-29 2021-01-01 上海百功半导体有限公司 闪存器件及其边界字线配置方法/系统、存储介质/控制器
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102332290A (zh) * 2010-05-24 2012-01-25 慧荣科技股份有限公司 用来管理和存取闪存模块的控制器
US20130054903A1 (en) * 2011-08-24 2013-02-28 Novatek Microelectronics Corp. Memory device and writing method thereof
CN103093822A (zh) * 2011-10-27 2013-05-08 慧荣科技股份有限公司 三阶储存单元的闪存装置及其控制方法
US20140129206A1 (en) * 2012-11-05 2014-05-08 Phison Electronics Corp. Simulator and simulating method for flash memory background

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116792B2 (en) 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US9305665B2 (en) * 2014-03-31 2016-04-05 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
US10008250B2 (en) * 2015-03-27 2018-06-26 Intel Corporation Single level cell write buffering for multiple level cell non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102332290A (zh) * 2010-05-24 2012-01-25 慧荣科技股份有限公司 用来管理和存取闪存模块的控制器
US20130054903A1 (en) * 2011-08-24 2013-02-28 Novatek Microelectronics Corp. Memory device and writing method thereof
CN103093822A (zh) * 2011-10-27 2013-05-08 慧荣科技股份有限公司 三阶储存单元的闪存装置及其控制方法
US20140129206A1 (en) * 2012-11-05 2014-05-08 Phison Electronics Corp. Simulator and simulating method for flash memory background

Also Published As

Publication number Publication date
US20170364265A1 (en) 2017-12-21
US10168913B2 (en) 2019-01-01
TW201800947A (zh) 2018-01-01
TWI590051B (zh) 2017-07-01
CN107526540B (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
CN107526540A (zh) 数据储存装置及其数据维护方法
CN106610791B (zh) 数据储存装置及其数据维护方法
CN107092566A (zh) 数据储存装置及其数据维护方法
CN103425595B (zh) 数据储存装置和闪存的区块管理方法
CN107977161A (zh) 数据储存装置及其数据写入方法
CN109783009A (zh) 存储器系统及其操作方法
CN109783004A (zh) 数据储存装置与存储器装置的数据处理方法
CN107918588A (zh) 数据储存装置及其数据写入方法
CN106484316B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN104850514B (zh) 存取闪存的方法及相关的控制器与记忆装置
CN107291377A (zh) 数据储存装置及其数据维护方法
CN101124544A (zh) 用于在可重编程非易失性存储器中拷贝数据的方法
TW200819976A (en) Memory system with nonvolatile semiconductor memory
JP2009503735A5 (zh)
CN102792381B (zh) 用于多电平存储器单元(mlc)快闪存储器的防数据破坏的保护
CN101641679A (zh) 用于系统管理的多级单元选择的多程序
CN106158033A (zh) 存储器电路及其操作方法
CN109684230A (zh) 存储器系统及其操作方法
CN109697024A (zh) 存储器系统及其操作方法
CN107918523A (zh) 数据储存装置及其数据写入方法
CN109815158A (zh) 进行系统备份的方法、记忆装置及控制器、及电子装置
CN106708422B (zh) 数据储存装置及其数据维护方法
CN103593255B (zh) 数据管理方法、记忆存储存储器与记忆存储控制器
CN106356093B (zh) 存储器的操作方法及应用其的存储器装置
CN108614780A (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