CN107092566B - 数据储存装置及其数据维护方法 - Google Patents
数据储存装置及其数据维护方法 Download PDFInfo
- Publication number
- CN107092566B CN107092566B CN201610134963.XA CN201610134963A CN107092566B CN 107092566 B CN107092566 B CN 107092566B CN 201610134963 A CN201610134963 A CN 201610134963A CN 107092566 B CN107092566 B CN 107092566B
- Authority
- CN
- China
- Prior art keywords
- order
- data
- order data
- data block
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 title claims description 29
- 238000012423 maintenance Methods 0.000 title claims description 21
- 238000003860 storage Methods 0.000 claims abstract description 50
- 238000013507 mapping Methods 0.000 claims description 13
- 230000010354 integration Effects 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000007613 environmental effect Effects 0.000 description 3
- 230000036316 preload Effects 0.000 description 3
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
- G11C11/5635—Erasing 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/08—Address circuits; Decoders; Word-line control 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
-
- 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/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
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)
- Computer Hardware Design (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)一般而言皆是焊接于母板上,因此嵌入式快闪存储器模组会随着母板一起承受高温锡炉,而导致数据的损毁。
发明内容
本发明所提供的数据储存装置以及数据维护方法可以随机选取单阶储存单元以暂存将储存于三阶储存单元的数据。
本发明提供一种数据储存装置包括一快闪存储器以及一控制器。快闪存储器具有多单阶备用储存区块、多三阶数据区块、及多三阶备用区块。控制器其用将三阶数据区块均分为三个区域,其各包含相同数量的数据区块,其复用以接收一预写数据及预写数据的一逻辑地址,并分析出一第一子预写数据、一第二子预写数据、一第三子预写数据,其又用以于一第一阶段,依据预写逻辑地址,决定对应于预写逻辑地址的一第一三阶数据区块,并将第一三阶数据区块所属的区域定为第一区域,再判断第一三阶数据区块是否已存在有效数据,若第一三阶数据区块存在有效数据,则于第一区域内挑选一个抹除次数最少的三阶数据区块为一新第一三阶数据区块,分别自剩余的两个区域内,对应新第一三阶数据区块,挑选一第二三阶数据区块与一第三三阶数据区块,再以单阶储存模式分别将第一子预写数据、第二子预写数据、第三子预写数据写入新第一三阶数据区块、第二三阶数据区块、第三三阶数据区块,复用以将新第一三阶数据区块、第二三阶数据区块、第三三阶数据区块映射至逻辑地址。
在一实施例中,三阶数据区块的总数为N,并且三阶数据区块具有连续的地址。当第一区域中三阶数据区块的地址在第二区域以及第三区域中的三阶数据区块的地址之前时,新第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且新第一三阶数据区块的地址加上(2N)/3等于第三三阶数据区块的地址,当第一区域中三阶数据区块的地址在第二区域中的三阶数据区块的地址之前并且在第三区域中的三阶数据区块的地址之后时,新第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且新第一三阶数据区块的地址减去N/3等于第三三阶数据区块的地址,当第一区域中三阶数据区块的地址在第二区域以及在第三区域中的三阶数据区块的地址之后时,新第一三阶数据区块的地址减去(2N)/3等于第二三阶数据区块的地址并且新第一三阶数据区块的地址减去N/3等于第三三阶数据区块的地址。
又另一实施例中,控制器更用以在一第二阶段,将新第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据整理至三阶备用区块中的之一者,其中控制器用以在三阶备用区块中选取一第一三阶备用区块,以将映射至逻辑地址的新第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据以一三阶储存单元模式整理至第一三阶备用区块,将整理后的第一三阶备用区块映射至逻辑地址,并且释放新第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块。另外,第一阶段为生产阶段(ProductionPhase),第二阶段为在第一阶段后的整合阶段(Integration Phase),并且在第一阶段以及第二阶段之间,数据储存装置承受一高温焊接。
本发明另提供一种数据维护方法适用于具有多单阶备用储存区块、多三阶数据区块、以及多三阶备用区块的一数据储存装置。数据维护方法包括:接收一预写数据及预写数据的一逻辑地址,并根据预写数据及逻辑地址分析出一第一子预写数据、一第二子预写数据、一第三子预写数据;以及于一第一阶段,依据预写数据的逻辑地址将预写数据写入数据储存装置。在第一阶段将预写数据写入数据储存装置的步骤更包括:将三阶数据区块均分为三个区域,其各包含相同数量的数据区块;依据预写逻辑地址,决定对应于预写逻辑地址的一第一三阶数据区块,并将第一三阶数据区块所属的区域定为第一区域;判断第一三阶数据区块是否已存在有效数据;若第一三阶数据区块存在有效数据,则于第一区域内挑选一个抹除次数最少的三阶数据区块为一新第一三阶数据区块,分别自剩余的两个区域内,对应新第一三阶数据区块,挑选一第二三阶数据区块与一第三三阶数据区块;以单阶储存模式分别将第一子预写数据、第二子预写数据、第三子预写数据写入新第一三阶数据区块、第二三阶数据区块、第三三阶数据区块;以及将新第一三阶数据区块、第二三阶数据区块、第三三阶数据区块映射至逻辑地址。
在一实施例中,当第一区域中三阶数据区块的地址在第二区域以及第三区域中的三阶数据区块的地址之前时,新第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且新第一三阶数据区块的地址加上(2N)/3等于第三三阶数据区块的地址,当第一区域中三阶数据区块的地址在第二区域中的三阶数据区块的地址之前并且在第三区域中的三阶数据区块的地址之后时,新第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且新第一三阶数据区块的地址减去N/3等于第三三阶数据区块的地址,当第一区域中三阶数据区块的地址在第二区域以及在第三区域中的三阶数据区块的地址之后时,新第一三阶数据区块的地址减去(2N)/3等于第二三阶数据区块的地址并且新第一三阶数据区块的地址减去N/3等于第三三阶数据区块的地址。
在另一实施例中,数据维护方法还包括:在一第二阶段,将新第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据整理至三阶备用区块中之一者,其中将新第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据整理至三阶备用区块中之一者的步骤还包括:在三阶储存单元备用池中选取一第一三阶备用区块;将映射至逻辑地址的新第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据以一三阶储存单元模式整理至第一三阶备用区块;将整理后的第一三阶备用区块映射至逻辑地址;以及释放新第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块。
附图说明
图1是本发明的一种实施例的电子***的方块图。
图2是本发明的一种实施例的快闪存储器的示意图。
图3是本发明的一种实施例的逻辑地址以及三阶数据区块的示意图。
图4是本发明的另一种实施例的逻辑地址以及三阶数据区块的示意图。
图5是本发明的一种实施例的区块映射关系的示意图。
图6A~6B是本发明的一种实施例的数据维护方法的流程图。
图7是本发明的一种实施例的数据维护方法的流程图。
符号说明
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 逻辑地址;
R1、R2、R3 区域;
S602~S624、S700~S706、S800~S816 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图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具有连续的地址。在本发明的一实施例中,逻辑地址的总数为N并且三阶数据区块的总数也为N,区域R~R3分别具有N/3个逻辑地址以及被指派给逻辑地址的N/3个三阶数据区块,并且区域R1~R3中的逻辑地址具有连续的地址,如图3所示,但本发明不限于此。换言之,区域R1包括具有连续地址的逻辑地址H_1~H_N/3以及具有连续地址的三阶数据区块F_1~F_N/3。区域R2包括具有连续地址的逻辑地址H_N/3+1~H_2N/3以及具有连续地址的三阶数据区块F_N/3+1~F_2N/3。区域R3包括具有连续地址的逻辑地址H_2N/3+1~H_N以及具有连续地址的三阶数据区块F_2N/3+1~F_N。举例而言,当逻辑地址H_0~H_N的总数为900时,区域R1包括具有连续地址的逻辑地址H_1~H_300以及具有连续地址的三阶数据区块F_1~F_300,区域R2包括具有连续地址的逻辑地址H_301~H_600以及具有连续地址的三阶数据区块F_301~F_600,并且区域R3包括具有连续地址的逻辑地址H_601~H_900以及具有连续地址的三阶数据区块F_601~F_900,如图4所示。在其他实施例中,N亦可为其他有理数,本发明不限于此。另外,当N无法被3整除时,控制器160可忽略无法被整除的1个或者2个三阶数据区块。举例而言,当三阶数据区块的总数为901时N则为900,以及当三阶数据区块的总数为1202时N则为1200,但本发明不限于此。
在将三阶数据区块F_1~F_N依序分为区域R1~R3之后,控制器160接着根据命令将预写数据分为多子预写数据段以写入逻辑地址中。在一实施例中,控制器160根据预写数据分析出一第一子预写数据、一第二子预写数据、一第三子预写数据。值得注意的是,控制器160是依照每一三阶储存单元的大小将预写数据切割为多子预写数据段。换言之,每一子预写数据段的数据量等同于一个三阶储存单元的数据量以及三个单阶储存单元的数据量。详细而言,控制器160根据所接收到的预写的一第一逻辑地址,决定对应于第一逻辑地址的一第一三阶数据区块,并且将第一三阶数据区块所属的区域定为第一区域。换言之,控制器160根据指示将预写数据写入逻辑地址H_1~H_N中的一第一逻辑地址的一第一写入命令,定位被指派给第一逻辑地址的一第一三阶数据区块,并且将第一三阶数据区块所属的区域定为第一区域。接着,控制器160判断第一三阶数据区块是否已被存在有效数据。换言之,控制器160判断第一三阶数据区块是否已被映设至逻辑地址中之一者。
当第一三阶数据区块并未被写入有效数据时,控制器160分别自第一三阶数据区块所属的第一区域外的两个区域选取一第二三阶数据区块以及一第三三阶数据区块。换言之,当第一三阶数据区块并未被映射至任何逻辑地址时,控制器160分别自第一三阶数据区块所属的第一区域外的两个区域选取一第二三阶数据区块以及一第三三阶数据区块。接着,控制器160将第一子预写数据段以一单阶储存模式写入第一三阶数据区块、将第二子预写数据段以一单阶储存模式写入第二三阶数据区块以及将第三子预写数据段以一单阶储存模式写入第三三阶数据区块,并将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块映射至第一逻辑地址。
当第一三阶数据区块已被写入有效数据时(当第一三阶数据区块并未被映射至任何逻辑地址时),控制器160则于第一三阶数据区块所属的第一区域内挑选另一三阶数据区块以作为一新第一三阶数据区块。换言之,新三阶数据区块用以取代被指派给第一逻辑地址的第一三阶数据区块。接着,控制器160分别自第一区域外剩余的两个区域内,对应新三阶数据区块挑选一第二三阶数据区块以及一第三三阶数据区块。控制器160更用以将第一子预写数据段以一单阶储存模式写入新三阶数据区块、将第二子预写数据段以一单阶储存模式写入第二三阶数据区块以及将第三子预写数据段以一单阶储存模式写入第三三阶数据区块,并将新三阶数据区块、第二三阶数据区块以及第三三阶数据区块映射至第一逻辑地址。
在一实施例中,每一三阶数据区块具有相应的一抹除次数,并且控制器160选取三阶数据区块中未被写入有效数据并且具有最少的抹除次数的三阶数据区块以作为新三阶数据区块,但本发明不限于此。换言之,控制器160是选择不具有有效数据的三阶数据区块中被抹除过的次数最少的三阶数据区块,作为新三阶数据区块。在其他实施例中,控制器160亦可选择不具有有效数据的三阶数据区块中与第一三阶数据区块的地址最近的三阶数据区块,作为新三阶数据区块。
值得注意的是,在某些实施例中,控制器160是先将欲写入的子预写数据段先写入单阶储存单元备用池SLC_POOL中的单阶储存单元中之三者,再将已写入子预写数据段的三个单阶储存单元与分别在区域R1、区域R2以及区域R3所选取的三个三阶数据区块交换,但本发明不限于此。在其他实施例中,控制器160是先将欲写入的子预写数据段先写入单阶储存单元备用池SLC_POOL中的单阶储存单元中之三者,再将已写入子预写数据段的三个单阶储存单元中的数据写入分别在区域R1、区域R2以及区域R3所选取的三个三阶数据区块。
值得注意的是,控制器160还用以将剩余的该两个区域分别定义为第二区域以及第三区域。控制器160是根据第一逻辑地址所被指派的三阶数据区块选取第一三阶数据区块,并且第一三阶数据区块即为被指派给第一逻辑地址的三阶数据区块。另外,当第一三阶数据区块属于区域R1时,区域R1为第一区域、区域R2为第二区域并且区域R3为第三区域(第一区域R1中三阶数据区块的地址在第二区域R2以及第三区域R3中的三阶数据区块的地址之前),其中第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且第一三阶数据区块的地址加上(2N)/3等于第三三阶数据区块的地址。当第一三阶数据区块属于区域R2时,区域R2为第一区域、区域R3为第二区域并且区域R1为第三区域(第一区域R2中三阶数据区块的地址在二区域R3中的三阶数据区块的地址之前并且在三区域R1中的三阶数据区块的地址之后),其中第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且第一三阶数据区块的地址减去N/3等于第三三阶数据区块的地址。当第一三阶数据区块属于区域R3时,区域R3为第一区域、区域R1为第二区域并且区域R2为第三区域(第一区域R3中三阶数据区块的地址在第二区域R1以及在第三区域R2中的三阶数据区块的地址之后),其中第一三阶数据区块的地址减去(2N)/3等于第二三阶数据区块的地址并且第一三阶数据区块的地址减去N/3等于第三三阶数据区块的地址,依此类推。相似地,当新三阶数据区块属于区域R1时区域R1为第一区域、区域R2为第二区域并且区域R3为第三区域(第一区域R1中三阶数据区块的地址在第二区域R2以及第三区域R3中的三阶数据区块的地址之前),其中新三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且新三阶数据区块的地址加上(2N)/3等于第三三阶数据区块的地址。当新三阶数据区块属于第二区域R2时,区域R2为第一区域、区域R3为第二区域并且区域R1为第三区域(第一区域R2中三阶数据区块的地址在二区域R3中的三阶数据区块的地址之前并且在三区域R1中的三阶数据区块的地址之后),其中新三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且新三阶数据区块的地址减去N/3等于第三三阶数据区块的地址。当新三阶数据区块属于区域R3时,区域R3为第一区域、区域R1为第二区域并且区域R2为第三区域(第一区域R3中三阶数据区块的地址在第二区域R1以及在第三区域R2中的三阶数据区块的地址之后),其中新三阶数据区块的地址减去(2N)/3等于第二三阶数据区块的地址并且新三阶数据区块的地址减去N/3等于第三三阶数据区块的地址,依此类推。
值得注意的是,在本发明中,三阶数据区块、新三阶数据区块以及逻辑地址的映射以及指派关系可由至少一个映射表(Mapping table)来维持。举例而言,快闪存储器180可具有一第一映射表,用以记录三阶数据区块(新三阶数据区块)以及被指派的逻辑地址的关系。快闪存储器180中可还包括一第二映射表用以记录已写入子预写数据段的三阶数据区块(新三阶数据区块)以及逻辑地址的映射关系,其中已写入子预写数据段的三阶数据区块(新三阶数据区块)可直接映射至逻辑地址,或者已写入子预写数据段的三阶数据区块(新三阶数据区块)是映射至被指派给逻辑地址的三阶数据区块,本发明不限于此。
举例而言,控制器160是根据命令将多个预写数据,非依序地将预写数据写入逻辑地址H_0~H_900(如图4所示)中之至少一者。
如图5所示,当控制器160接收到了指示将第一预写数据写入逻辑地址H_1~H_N中的一第一逻辑地址H_302的一第一写入命令,并且自第一预写数据分析出一第一子预写数据段、一第二子预写数据段以及一第三子预写数据段。控制器160根据指示将第一预写数据写入逻辑地址H_1~H_N中的第一逻辑地址H_302的第一写入命令,定位被指派给第一逻辑地址H_302的一第一三阶数据区块F_302。接着,控制器160判断第一三阶数据区块F_302是否已被写入有效数据。换言之,控制器160藉由判断第一三阶数据区块F_302是否已被映射至其他逻辑地址来判断第一三阶数据区块F_302是否已被写入有效数据。在本实施例中,由于第一三阶数据区块F_302尚未被写入有效数据。因此,控制器160分别自第一三阶数据区块F_302所属的区域R2外的两个区域R1以及R3选取一第二三阶数据区块以及一第三三阶数据区块。当第一三阶数据区块属于区域R2时,区域R2为第一区域、区域R3为第二区域并且区域R1为第三区域(第一区域R2中三阶数据区块的地址在二区域R3中的三阶数据区块的地址之前并且在三区域R1中的三阶数据区块的地址之后)。因此,第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且第一三阶数据区块的地址减去N/3等于第三三阶数据区块的地址。换言之,控制器160自区域R3选取与第一三阶数据区块F_302相隔N/3的一第二三阶数据区块F_602,以及自区域R1选取与第一三阶数据区块F_302相隔N/3的第三三阶数据区块F_2。接着,控制器160将第一子预写数据段以一单阶储存模式写入第一三阶数据区块F_302、将第二子预写数据段以单阶储存模式写入第二三阶数据区块F_602以及将第三子预写数据段以单阶储存模式写入第三三阶数据区块F_2,并将第一三阶数据区块F_302、第二三阶数据区块F_602以及第三三阶数据区块F_2映射至第一逻辑地址H_302。
接着,控制器160接收到了指示将预写数据段中的一第二预写数据写入逻辑地址H_1~H_N中的一第二逻辑地址H_604的一第二写入命令,并且自第二预写数据分析出一第四子预写数据段、一第五子预写数据段以及一第六子预写数据段。控制器160根据指示将预写数据段中的第二预写数据写入逻辑地址H_1~H_N中的第二逻辑地址H_604的第二写入命令,定位被指派给第二逻辑地址H_604的一第四三阶数据区块F_604。接着,控制器160判断第四三阶数据区块F_604是否已被写入有效数据。在本实施例中,由于第四三阶数据区块F_604尚未被写入有效数据。因此,控制器160分别自第四三阶数据区块F_604所属的区域R3外的两个区域R1以及R2选取一第五三阶数据区块以及一第六三阶数据区块。当第四三阶数据区块F_604属于区域R3时,区域R3为第一区域、区域R1为第二区域并且区域R2为第三区域(第一区域R3中三阶数据区块的地址在第二区域R1以及在第三区域R2中的三阶数据区块的地址之后)。第四三阶数据区块F_604的地址减去(2N)/3等于第五三阶数据区块的地址并且第四三阶数据区块的地址减去N/3等于第六三阶数据区块的地址。换言之,控制器160自区域R1选取与第四三阶数据区块F_604相隔2N/3的第五三阶数据区块F_4,以及自区域R2选取与第四三阶数据区块F_604相隔N/3的第六三阶数据区块F_304。接着,控制器160将第四子预写数据段以单阶储存模式写入第四三阶数据区块F_604、将第五子预写数据段以单阶储存模式写入第五三阶数据区块F_4以及将第六子预写数据段以单阶储存模式写入第六三阶数据区块F_304,并将第四三阶数据区块F_604、第五三阶数据区块F_4以及第六三阶数据区块F_304映射至第二逻辑地址H_604。
接着,控制器160接收到了指示将预写数据段中的第三预写数据写入逻辑地址H_1~H_N中的一第三逻辑地址H_8的一第三写入命令。控制器160根据指示将预写数据段中的第三预写数据写入逻辑地址H_1~H_N中的第三逻辑地址H_8的第三写入命令,定位被指派给第三逻辑地址H_8的一第七三阶数据区块F_8,并且分析出一第七子预写数据段、一第八子预写数据段以及一第九子预写数据段。接着,控制器160判断第七三阶数据区块F_8是否已被写入有效数据。在本实施例中,由于第七三阶数据区块F_8尚未被写入有效数据。因此,控制器160定位第七三阶数据区块F_8所属的区域R1,并且分别自第七三阶数据区块F_8所属的区域R1外的两个区域R2以及R3选取一第八三阶数据区块以及一第九三阶数据区块。当第七三阶数据区块F_8属于第一区域R1时,区域R1为第一区域、区域R2为第二区域并且区域R3为第三区域(第一区域R1中三阶数据区块的地址在第二区域R2以及第三区域R3中的三阶数据区块的地址之前)。第七三阶数据区块F8的地址加上N/3等于第八三阶数据区块的地址并且第七三阶数据区块F_8的地址加上(2N)/3等于第九三阶数据区块的地址。换言之,控制器160自区域R2选取与第七三阶数据区块F_8相隔N/3的一第八三阶数据区块F_8,以及自区域R3选取与第七三阶数据区块F_8相隔2N/3的第九三阶数据区块F_608。接着,控制器160将第七子预写数据段以单阶储存模式写入第七三阶数据区块F_8、将第八子预写数据段第八三阶数据区块F_308以及将第九子预写数据段第九三阶数据区块F_608,并将第七三阶数据区块F_8、第八三阶数据区块F_308以及第九三阶数据区块F_608映射至第三逻辑地址H_8。
接着,控制器160接收到了指示将预写数据段中的一第四预写数据写入逻辑地址H_1~H_N中一第四逻辑地址H_2的一第四写入命令。控制器160根据指示将预写数据段中的第四预写数据写入逻辑地址H_1~H_N中的第四逻辑地址H_2的第四写入命令,定位被指派给第四逻辑地址H_2的一第十三阶数据区块F_2,并且分析出一第十子数据段、一第十一子数据段以及一第十二子数据段。接着,控制器160判断第十三阶数据区块F_2是否已被写入有效数据。在本实施例中,由于第十三阶数据区块F_2已被写入相应于第一逻辑地址H_302的有效数据(第一子预写数据)。因此,控制器160则用以选取三阶数据区块F1~F_900中的另一者以作为一新三阶数据区块。在本实施例中,控制器160在原第十三阶数据区块F_2所属的区域R1中选取了不具有有效数据且抹除次数最低的三阶数据区块F_1作为新三阶数据区块。接着,控制器160分别自新三阶数据区块F_1所属的区域R1外的两个区域R2以及R3选取一第十一三阶数据区块以及一第十二三阶数据区块。当新三阶数据区块F_1属于区域R1时,区域R1为第一区域、区域R2为第二区域并且区域R3为第三区域(第一区域R1中三阶数据区块的地址在第二区域R2以及第三区域R3中的三阶数据区块的地址之前)。新三阶数据区块F1的地址加上N/3等于第十一三阶数据区块的地址并且新三阶数据区块F_1的地址加上(2N)/3等于第十二三阶数据区块的地址。换言之,控制器160自区域R2选取与新三阶数据区块F_1相隔N/3的第十一三阶数据区块F_301,以及自区域R3选取与新三阶数据区块F_1相隔2N/3的第十二三阶数据区块F_601。接着,控制器160还用以将第十子预写数据段以单阶储存模式写入新三阶数据区块F_1、将第十一子预写数据段以单阶储存模式写入第十一三阶数据区块F_301以及将第十二子预写数据段以单阶储存模式写入第十二三阶数据区块F_302,并将新三阶数据区块F_1、第十一三阶数据区块F_301以及第十二三阶数据区块F_302映射至第四逻辑地址H_2。
在第二阶段中,控制器160更用以将已写入子预写数据段的三阶数据区块中的数据整理至三阶备用区块TLC_SP_0~TLC_SP_M中之至少一者。举例而言,控制器160在三阶储存单元备用池TLC_POOL中选取一第一三阶备用区块,以将映射至第一逻辑地址的第一三阶数据区块(或者新三阶数据区块)、第二三阶数据区块以及第三三阶数据区块中的数据以一三阶储存单元模式整理至第一三阶备用区块。接着,控制器160还用以将整理后的第一三阶备用区块映射至第一逻辑地址,并且释放第一三阶数据区块(或者新三阶数据区块)、第二三阶数据区块以及第三三阶数据区块,依此类推直到所有已写入子预写数据段的三阶数据区块中的数据皆整理至三阶备用区块TLC_SP_0~TLC_SP_M中之至少一者。
图6A~6B是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140,其中数据维护方法是用以在一第一阶段,将一预写数据段(Preload Data)写入逻辑地址H_1~H_N中之至少一者。流程开始于步骤S600。
在步骤S600中,控制器160将三阶数据区块F_1~F_N依序分为三个区域R1~R3。在本发明的一实施例中,当逻辑地址的总数为N时,区域R1~R3分别具有N/3个逻辑地址以及被指派给逻辑地址的N/3个三阶数据区块,并且区域R1~R3中的逻辑地址具有连续的地址,如图3所示,但本发明不限于此。换言之,区域R1包括具有连续地址的逻辑地址H_1~H_N/3以及具有连续地址的三阶数据区块F_1~F_N/3。区域R2包括具有连续地址的逻辑地址H_N/3+1~H_2N/3以及具有连续地址的三阶数据区块F_N/3+1~F_2N/3。区域R3包括具有连续地址的逻辑地址H_2N/3+1~H_N以及具有连续地址的三阶数据区块F_2N/3+1~F_N。举例而言,当逻辑地址H_0~H_N的总数为900时,区域R1包括具有连续地址的逻辑地址H_1~H_300以及具有连续地址的三阶数据区块F_1~F_300,区域R2包括具有连续地址的逻辑地址H_301~H_600以及具有连续地址的三阶数据区块F_301~F_600,并且区域R3包括具有连续地址的逻辑地址H_601~H_900以及具有连续地址的三阶数据区块F_601~F_900,如图4所示。在其他实施例中,N亦可为其他有理数,本发明不限于此。另外,当N无法被3整除时,控制器160可忽略无法被整除的1个或者2个三阶数据区块。举例而言,当三阶数据区块的总数为901时N则为900,以及当三阶数据区块的总数为1202时N则为1200,但本发明不限于此。
接着,在步骤S602中,控制器160判断是否接收到一预写数据以及预写数据的一逻辑地址。当控制器160接收到将一预写数据以及逻辑地址时,流程进行至步骤S604;否则,控制器160继续判断是否接收到将一预写数据以及预写数据的一逻辑地址。详细而言,在将三阶数据区块F_1~F_N依序均分为区域R1~R3之后,控制器160接着根据命令将预写数据分为多子预写数据段以写入逻辑地址中。在一实施例中,控制器160根据预写数据分析出一第一子预写数据、一第二子预写数据、一第三子预写数据。值得注意的是,控制器160依照每一三阶储存单元的大小将预写数据切割为多子预写数据段。换言之,每一子预写数据段的数据量等同于一个三阶储存单元的数据量以及三个单阶储存单元的数据量。在其他实施例中,子预写数据段亦可不是由预写数据所分割的其他数据段。
接着,在步骤S604中,控制器160根据所接收到的预写的一第一逻辑地址,决定对应于第一逻辑地址的一第一三阶数据区块。举例而言,当控制器160在步骤S602中接收到了指示子预写数据写入逻辑地址H_1~H_N中的一第一逻辑地址H_302的一写入命令。控制器160根据指示将预写数据写入逻辑地址H_1~H_N中的第一逻辑地址H_302的第一写入命令,定位被指派给第一逻辑地址H_302的一第一三阶数据区块F_302。
接着,在步骤S606中,控制器160将指派给特定逻辑地址的三阶数据区块所属的区域定义为第一区域。在另一实施例中,控制器160还用以将第一区域以外的剩余两个区域分别依序定义为第二区域以及第三区域。
接着,在步骤S608中,控制器160判断被指派给特定逻辑地址的三阶数据区块是否已被写入有效数据。当被指派给特定逻辑地址的三阶数据区块不具有有效数据时,流程进行至步骤S610。当被指派给特定逻辑地址的三阶数据区块已被写入有效数据,流程进行至步骤S616。
接着,在步骤S610中,控制器160分别自被指派给特定逻辑地址的三阶数据区块所属的区域外的两个区域选取两个三阶数据区块。值得注意的是,当被指派给特定逻辑地址的三阶数据区块属于区域R1时,区域R1为第一区域、区域R2为第二区域并且区域R3为第三区域(第一区域R1中三阶数据区块的地址在第二区域R2以及第三区域R3中的三阶数据区块的地址之前)。因此,被指派给特定逻辑地址的三阶数据区块的地址加上N/3等于所选取的第一个三阶数据区块的地址并且被指派给特定逻辑地址的三阶数据区块的地址加上(2N)/3等于所选取的第二个三阶数据区块的地址。当被指派给特定逻辑地址的三阶数据区块属于区域R2时,区域R2为第一区域、区域R3为第二区域并且区域R1为第三区域(第一区域R2中三阶数据区块的地址在二区域R3中的三阶数据区块的地址之前并且在三区域R1中的三阶数据区块的地址之后)。因此,被指派给特定逻辑地址的三阶数据区块的地址加上N/3等于所选取的第一个三阶数据区块的地址并且被指派给特定逻辑地址的三阶数据区块的地址减去N/3等于所选取的第二个区块的地址。当被指派给特定逻辑地址的三阶数据区块属于区域R3时,区域R3为第一区域、区域R1为第二区域并且区域R2为第三区域(第一区域R3中三阶数据区块的地址在第二区域R1以及在第三区域R2中的三阶数据区块的地址之后)。因此,被指派给特定逻辑地址的三阶数据区块的地址减去(2N)/3等于所选取的第一个三阶数据区块的地址并且被指派给特定逻辑地址的三阶数据区块的地址减去N/3等于所选取的第二个三阶数据区块的地址,依此类推。
举例而言,当控制器160在步骤S602中接收到了指示将第一预写数据写入逻辑地址H_1~H_N中的一第一逻辑地址H_302的一第一写入命令并且在步骤S604中定位被了被指派给第一逻辑地址H_302的未被写入有效数据的第一三阶数据区块F_302时,控制器160在步骤S606中定义第一三阶数据区块F_302所属的区域R2为第一区域。接着,控制器160分别自第一三阶数据区块F_302所属的区域R2外的两个区域R1以及R3选取一第二三阶数据区块以及一第三三阶数据区块。当第一三阶数据区块属于区域R2时,第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址并且第一三阶数据区块的地址减去N/3等于第三三阶数据区块的地址。换言之,控制器160自区域R3选取与第一三阶数据区块F_302相隔N/3的一第二三阶数据区块F_602,以及自区域R1选取与第一三阶数据区块F_302相隔N/3的第三三阶数据区块F_2。在其他实施例中,当第一三阶数据区块为属于区域R3的三阶数据区块F_604时,第一三阶数据区块F_604的地址减去(2N)/3等于第二三阶数据区块的地址并且第一三阶数据区块的地址减去)/3等于第三三阶数据区块的地址。换言之,控制器160自区域R1选取与第一三阶数据区块F_604相隔2N/3的第二三阶数据区块F_4,以及自区域R2选取与第一三阶数据区块F_604相隔N/3的第三三阶数据区块F_304。当第一三阶数据区块为属于区域R1的三阶数据区块F_8时,第一三阶数据区块F8的地址加上N/3等于第二三阶数据区块的地址并且第一三阶数据区块F_8的地址加上(2N)/3等于第三三阶数据区块的地址。换言之,控制器160自区域R2选取与第一三阶数据区块F_8相隔N/3的一第二三阶数据区块F_8,以及自区域R3选取与第一三阶数据区块F_8相隔2N/3的第三三阶数据区块F_608。
接着,在步骤S612中,控制器160将子预写数据段以一单阶储存模式写入被指派给特定逻辑地址的三阶数据区块以及在步骤S618中所选取的两个三阶数据区块。
接着,在步骤S614中,控制器160将被指派给特定逻辑地址的三阶数据区块以及在步骤S610中所选取的两个三阶数据区块映射至特定逻辑地址。换言之,控制器160将在步骤S612中被写入子预写数据段的三个三阶数据区块映射至特定逻辑地址。接着,流程回到步骤S602。控制器160继续根据所接收到的写入指令,将子预写数据段写入写入指令所指定的逻辑地址中。
在步骤S616中,控制器160选取三阶数据区块中的另一者以作为一新三阶数据区块。换言之,新三阶数据区块用以取代被指派给特定逻辑地址的三阶数据区块。在一实施例中,每一三阶数据区块具有相应的一抹除次数,并且控制器160在第一区域中选取三阶数据区块中未被写入有效数据并且具有最小的抹除次数的三阶数据区块以作为新三阶数据区块,但本发明不限于此。换言之,控制器160是在第一区域中选择不具有有效数据的三阶数据区块中被抹除过的次数最少的三阶数据区块,作为新三阶数据区块。在其他实施例中,控制器160亦可选择不具有有效数据的三阶数据区块中与第一三阶数据区块的地址最近的三阶数据区块,作为新三阶数据区块。
接着,在步骤S620中,控制器160分别自新三阶数据区块所属的区域外的两个区域选取两个三阶数据区块。值得注意的是,当新三阶数据区块属于区域R1时,新三阶数据区块的地址加上N/3等于所选取的第一个三阶数据区块的地址并且新三阶数据区块的地址加上(2N)/3等于所选取的第二个三阶数据区块的地址。当新三阶数据区块属于区域R2时,新三阶数据区块的地址加上N/3等于所选取的第一个三阶数据区块的地址并且新三阶数据区块的地址减去N/3等于所选取的第二个区块的地址。当新三阶数据区块属于区域R3时,新三阶数据区块的地址减去(2N)/3等于所选取的第一个三阶数据区块的地址并且新三阶数据区块的地址减去N/3等于所选取的第二个三阶数据区块的地址,依此类推。
以图5的实施例为例,当控制器160在步骤S602接收到指示将一第四预写数据写入逻辑地址H_1~H_N中的一第四逻辑地址H_2的一第四写入命令时,控制器160在步骤S604中根据第四写入命令,定位被指派给第四逻辑地址H_2的一第十三阶数据区块F_2。接着,控制器160在步骤S608中判断第十三阶数据区块F_2是否已被写入有效数据。在本实施例中,由于第十三阶数据区块F_2已被写入相应于第一逻辑地址H_302的有效数据(第一预写数据)。因此,控制器160在步骤S616中则用以选取三阶数据区块F1~F_900中的另一者以作为一新三阶数据区块。在本实施例中,控制器160选取了不具有有效数据且抹除次数最低的三阶数据区块F_1作为新三阶数据区块。接着,控制器160分别自新三阶数据区块F_1所属的区域R1外的两个区域R2以及R3选取一第十一三阶数据区块以及一第十二三阶数据区块(步骤S620)。当新三阶数据区块F_1属于区域R1时,新三阶数据区块F1的地址加上N/3等于第十一三阶数据区块的地址并且新三阶数据区块F_1的地址加上(2N)/3等于第十二三阶数据区块的地址。换言之,控制器160自区域R2选取与新三阶数据区块F_1相隔N/3的第十一三阶数据区块F_301,以及自区域R3选取与新三阶数据区块F_1相隔2N/3的第十二三阶数据区块F_601。在其他实施例中,当新三阶数据区块为属于区域R3的三阶数据区块F_604时,新三阶数据区块F_604的地址减去(2N)/3等于第二三阶数据区块的地址并且第一三阶数据区块的地址减去)/3等于第三三阶数据区块的地址。换言之,控制器160自区域R1选取与新三阶数据区块F_604相隔2N/3的第二三阶数据区块F_4,以及自区域R2选取与新三阶数据区块F_604相隔N/3的第三三阶数据区块F_304。当新三阶数据区块为属于区域R1的三阶数据区块F_8时,新三阶数据区块F8的地址加上N/3等于第二三阶数据区块的地址并且新三阶数据区块F_8的地址加上(2N)/3等于第三三阶数据区块的地址。换言之,控制器160自区域R2选取与新三阶数据区块F_8相隔N/3的一第二三阶数据区块F_8,以及自区域R3选取与新三阶数据区块F_8相隔2N/3的第三三阶数据区块F_608。
接着,在步骤S622中,控制器160将子数据段以一单阶储存模式写入新三阶数据区块以及在步骤S620中所选取的两个三阶数据区块。
接着,在步骤S624中,控制器160将新三阶数据区块以及在步骤S620中所选取的两个三阶数据区块映射至特定逻辑地址。换言之,控制器160将在步骤S622中被写入预写数据的三个三阶数据区块映射至特定逻辑地址。接着,流程回到步骤S602。控制器160继续根据所接收到的写入指令,将预写数据写入指定的逻辑地址中。
图7是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140,其中数据维护方法用以在第二阶段中,控制器160还用以将已写入子预写数据段的三阶数据区块中的数据依序整理至三阶备用区块TLC_SP_0~TLC_SP_M中之至少一者。流程开始于步骤S700。
在步骤S700中,控制器160在三阶储存单元备用池TLC_POOL中选取一三阶备用区块。
接着,在步骤S702中,控制器160将映射至一逻辑地址的三个三阶数据区块中的数据以三阶储存单元模式整理至在步骤S700中所选取的三阶备用区块。
接着,在步骤S704中,控制器160更用以将整理后的三阶备用区块映射至逻辑地址,并且释放映射至逻辑地址的三个三阶数据区块。
接着,在步骤S706中,控制器160判断是否所有以单阶储存模式储存于三阶数据区块中的子预写数据段都已被整理至三阶储存单元。当所有以单阶储存模式储存于三阶数据区块中的子预写数据段都已被整理至三阶储存单元时,流程结束于步骤S706,否则,流程会到步骤S700,控制器160继续依照逻辑地址的地址的顺序处理尚未被整理的三阶数据区块。举例而言,控制器160在三阶储存单元备用池TLC_POOL中选取一第一三阶备用区块,以将映射至第一逻辑地址的第一三阶数据区块(新三阶数据区块)、第二三阶数据区块以及第三三阶数据区块中的数据以一三阶储存单元模式整理至第一三阶备用区块。接着,控制器160还用以将整理后的第一三阶备用区块映射至第一逻辑地址,并且释放第一三阶数据区块(新三阶数据区块)、第二三阶数据区块以及第三三阶数据区块。
综上所述,本发明所提供的数据储存装置以及数据维护方法可以一既定顺序选取单阶储存单元以暂存将储存于三阶储存单元的数据。
本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (10)
1.一种数据储存装置,包括:
一快闪存储器,具有多个单阶备用储存区块,多个三阶数据区块以及多个三阶备用区块;以及
一控制器;
其用以将这些三阶数据区块均分为三个区域,这些三个区域各包含相同数据的数据区块;
其又用以接收一预写数据及该预写数据的一逻辑地址,并分析出一第一子预写数据、一第二子预写数据、一第三子预写数据;
其又用以于一第一阶段,依据预写的该逻辑地址,决定对应于预写的该逻辑地址的一第一三阶数据区块,并将该第一三阶数据区块所属的区块定为第一区域,再判断该第一三阶数据区块是否已存在有效数据,若该第一三阶数据存在有效数据,则于该第一区域内挑选一个抹除次数最少的三阶数据区域为一新第一三阶数据区块,分别自这些三阶数据区块的三个区域中剩余的两个区域内,对应该新第一三阶数据区块,挑选一第二三阶数据区块与一第三三阶数据区块,再以单阶储存模式分别将该第一子预写数据、该第二子预写数据、该第三子预写数据写入该新第一三阶数据区块、该第二三阶数据区块、该第三三阶数据区块;
再用以将该新第一三阶数据区块、该第二三阶数据区块、该第三三阶数据区块映射至该逻辑地址。
2.根据权利要求1所述的数据储存装置,其特征在于,这些三阶数据区块的总数为N,并且这些三阶数据区块具有连续的地址。
3.根据权利要求2所述的数据储存装置,其特征在于,该控制器还用以将剩余的该两个区域分别定义为第二区域以及第三区域,当该第一区域中这些三阶数据区块的地址在该第二区域以及该第三区域中的这些三阶数据区块的地址之前时,该新第一三阶数据区块的地址加上N/3等于该第二三阶数据区块的地址并且该新第一三阶数据区块的地址加上(2N)/3等于该第三三阶数据区块的地址,当该第一区域中这些三阶数据区块的地址在该第二区域中的这些三阶数据区块的地址之前并且在该第三区域中的这些三阶数据区块的地址之后时,该新第一三阶数据区块的地址加上N/3等于该第二三阶数据区块的地址并且该新第一三阶数据区块的地址减去N/3等于该第三三阶数据区块的地址,当该第一区域中这些三阶数据区块的地址在该第二区域以及在该第三区域中的这些三阶数据区块的地址之后时,该新第一三阶数据区块的地址减去(2N)/3等于该第二三阶数据区块的地址并且该新第一三阶数据区块的地址减去N/3等于该第三三阶数据区块的地址。
4.根据权利要求1所述的数据储存装置,其特征在于,该控制器还用以在一第二阶段,将该新第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块中的数据整理至这些三阶备用区块中之一者,其中该控制器用以在这些三阶备用区块中选取一第一三阶备用区块,以将映射至该逻辑地址的该新第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块中的数据以一三阶储存单元模式整理至该第一三阶备用区块,将整理后的该第一三阶备用区块映射至该逻辑地址,并且释放该新第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块。
5.根据权利要求4所述的数据储存装置,其特征在于,该第一阶段为生产阶段,该第二阶段为在该第一阶段后的整合阶段,并且在该第一阶段以及该第二阶段之间,该数据储存装置承受一高温焊接。
6.一种数据维护方法,适用于具有多个单阶备用储存区块、多个三阶数据区块、以及多个三阶备用区块的一数据储存装置,该数据维护方法包括:
接收一预写数据及该预写数据的逻辑地址,并根据该预写数据及该逻辑地址分析出一第一子预写数据、一第二子预写数据、一第三子预写数据;以及
于一第一阶段,依据该预写数据的该逻辑地址将该预写数据写入该数据储存装置,其中在该第一阶段将该预写数据写入该数据储存装置的步骤还包括:
将这些三阶数据区块均分为三个区域,其各包含相同数据一数据区块;
依据预写的该逻辑地址,决定对应于预写的该逻辑地址的一第一三阶数据区块,并将该第一三阶数据区块所属的区块定为第一区域;
判断该第一三阶数据区块是否已存在有效数据;
若该第一三阶数据存在有效数据,则于该第一区域内挑选一个抹除次数最少的三阶数据区域为一新第一三阶数据区块,分别自这些三阶数据区块的三个区域中剩余的两个区域内,对应该新第一三阶数据区块,挑选一第二三阶数据区块与一第三三阶数据区块;
以单阶储存模式分别将该第一子预写数据、该第二子预写数据、该第三子预写数据写入该新第一三阶数据区块、该第二三阶数据区块、该第三三阶数据区块;以及
将该新第一三阶数据区块、该第二三阶数据区块、该第三三阶数据区块映射至该逻辑地址。
7.根据权利要求6所述的数据维护方法,其特征在于,这些三阶数据区块的总数为N,并且这些三阶数据区声具有连续的地址。
8.根据权利要求7所述的数据维护方法,其特征在于,剩余的该两个区域分别被定义为第二区域以及第三区域,当该第一区域中这些三阶数据区块的地址在该第二区域以及该第三区域中的这些三阶数据区块的地址之前时,该新第一三阶数据区块的地址加上N/3等于该第二三阶数据区块的地址并且该新第一三阶数据区块的地址加上(2N)/3等于该第三三阶数据区块的地址,当该第一区域中这些三阶数据区块的地址在该第二区域中的这些三阶数据区块的地址之前并且在该第三区域中的这些三阶数据区块的地址之后时,该新第一三阶数据区块的地址加上N/3等于该第二三阶数据区块的地址并且该新第一三阶数据区块的地址减去N/3等于该第三三阶数据区块的地址,当该第一区域中这些三阶数据区块的地址在该第二区域以及在该第三区域中的这些三阶数据区块的地址之后时,该新第一三阶数据区块的地址减去(2N)/3等于该第二三阶数据区块的地址并且该新第一三阶数据区块的地址减去N/3等于该第三三阶数据区块的地址。
9.根据权利要求6所述的数据维护方法,其特征在于,还包括:
在一第二阶段,将该新第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块中的数据整理至这些三阶备用区中之一者,其中将该新第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块中的数据整理至这些三阶备用区块中之一者的步骤还包括:
在这些三阶备用区块中选取一第一三阶备用区块;
将映射至该逻辑地址的新第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块中的数据以一三阶储存单元模式整理至该第一三阶备用区块;
将整理后的该第一三阶备用区块映身至该逻辑地址;以及
释放该新第一三阶数据区块、该第二三阶数据区块以及该第三三阶数据区块。
10.根据权利要求9所述的数据维护方法,其特征在于,该第一阶段为生产阶段,该第二阶段为在该第一阶段后的整合阶段,并且在该第一阶段以及该第二阶段之间,该数据储存装置承受一高温焊接。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105104554 | 2016-02-17 | ||
TW105104554A TWI606339B (zh) | 2016-02-17 | 2016-02-17 | 資料儲存裝置及其資料維護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107092566A CN107092566A (zh) | 2017-08-25 |
CN107092566B true CN107092566B (zh) | 2020-07-10 |
Family
ID=59561498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610134963.XA Active CN107092566B (zh) | 2016-02-17 | 2016-03-10 | 数据储存装置及其数据维护方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9940058B2 (zh) |
CN (1) | CN107092566B (zh) |
TW (1) | TWI606339B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200015247A (ko) | 2018-08-03 | 2020-02-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
JP2020086748A (ja) * | 2018-11-21 | 2020-06-04 | Tdk株式会社 | メモリコントローラ、及びメモリシステム |
TWI705331B (zh) * | 2019-06-24 | 2020-09-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置 |
US11069417B2 (en) | 2019-08-27 | 2021-07-20 | Samsung Electronics Co., Ltd. | Memory system and method of operating the same |
KR20210025249A (ko) | 2019-08-27 | 2021-03-09 | 삼성전자주식회사 | 메모리 시스템 및 그 동작 방법 |
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789427A (zh) * | 2012-07-17 | 2012-11-21 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
CN104571938A (zh) * | 2013-10-28 | 2015-04-29 | 擎泰科技股份有限公司 | 在多层单元存储器存取数据的方法及其多层单元存储装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI388986B (zh) | 2008-06-19 | 2013-03-11 | Silicon Motion Inc | 快閃記憶體裝置的運作方法及快閃記憶體裝置 |
US20090319721A1 (en) | 2008-06-19 | 2009-12-24 | Silicon Motion, Inc. | Flash memory apparatus and method for operating the same |
US9245653B2 (en) | 2010-03-15 | 2016-01-26 | Intelligent Intellectual Property Holdings 2 Llc | Reduced level cell mode for non-volatile memory |
TW201310237A (zh) | 2011-08-24 | 2013-03-01 | Innodisk Corp | 快閃記憶體儲存裝置 |
TWI470432B (zh) | 2011-11-21 | 2015-01-21 | Mstar Semiconductor Inc | 電子系統及其快閃記憶體管理方法 |
-
2016
- 2016-02-17 TW TW105104554A patent/TWI606339B/zh active
- 2016-03-10 CN CN201610134963.XA patent/CN107092566B/zh active Active
- 2016-10-07 US US15/287,998 patent/US9940058B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789427A (zh) * | 2012-07-17 | 2012-11-21 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
CN104571938A (zh) * | 2013-10-28 | 2015-04-29 | 擎泰科技股份有限公司 | 在多层单元存储器存取数据的方法及其多层单元存储装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI606339B (zh) | 2017-11-21 |
US9940058B2 (en) | 2018-04-10 |
CN107092566A (zh) | 2017-08-25 |
US20170235489A1 (en) | 2017-08-17 |
TW201730772A (zh) | 2017-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107092566B (zh) | 数据储存装置及其数据维护方法 | |
CN107526540B (zh) | 数据储存装置及其数据维护方法 | |
CN107977161B (zh) | 数据储存装置及其数据写入方法 | |
US9292432B2 (en) | Garbage collection method for flash memory | |
CN107291378B (zh) | 数据储存装置及其数据维护方法 | |
CN106598876B (zh) | 数据储存装置及其数据维护方法 | |
CN107918523B (zh) | 数据储存装置及其数据写入方法 | |
CN108228385B (zh) | 数据储存装置及其数据维护方法 | |
US9058256B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US20090012976A1 (en) | Data Tree Storage Methods, Systems and Computer Program Products Using Page Structure of Flash Memory | |
CN105988718A (zh) | 非挥发性储存装置与控制器进行的控制方法 | |
JP2006309829A (ja) | 不揮発性半導体記憶装置及びその制御方法 | |
US20160019142A1 (en) | Method of collecting garbage blocks in a solid state drive | |
TW201715399A (zh) | 資料儲存裝置及其資料維護方法 | |
CN112506814A (zh) | 一种存储器及其控制方法与存储*** | |
TW201324145A (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI614605B (zh) | 資料儲存裝置及其資料維護方法 | |
CN103389881A (zh) | 控制装置、存储装置以及数据写入方法 | |
CN104598386A (zh) | 通过追踪和利用二级映射索引重复利用固态驱动器块 | |
CN109426447B (zh) | 用以优化数据储存装置的数据储存方法及其数据储存装置 | |
CN110532195B (zh) | 存储器***的工作负荷分簇及执行其的方法 | |
CN108614780B (zh) | 数据储存装置及其数据维护方法 | |
TWI578222B (zh) | 資料儲存裝置及其資料維護方法 | |
CN105988936A (zh) | 非挥发性储存装置与控制器 | |
CN101894077B (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 |