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

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

Info

Publication number
CN107291377A
CN107291377A CN201610587619.6A CN201610587619A CN107291377A CN 107291377 A CN107291377 A CN 107291377A CN 201610587619 A CN201610587619 A CN 201610587619A CN 107291377 A CN107291377 A CN 107291377A
Authority
CN
China
Prior art keywords
data
order
blocks
write
spare blocks
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.)
Pending
Application number
CN201610587619.6A
Other languages
English (en)
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 CN107291377A publication Critical patent/CN107291377A/zh
Pending legal-status Critical Current

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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0626Reducing size or complexity 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/0629Configuration or reconfiguration 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供一种数据储存装置及其数据维护方法。快闪存储器具有多个单阶备用区块、多个单阶数据区块以及多个三阶备用区块。控制器响应于用以将一数据写入快闪存储器的一写入命令,将数据写入单阶备用区块,其中当一既定条件满足时,控制器每写入三个单阶备用区块便将单阶数据区块中存在最久的三者整理至三阶备用区块中之一者。

Description

数据储存装置及其数据维护方法
技术领域
本发明有关于一种数据储存装置的数据维护方法;特别系关于一种三阶储存单元的数据维护方法。
背景技术
快闪存储器为一种普遍的非挥发性数据储存媒体,以电性方式抹除与程式化。以非及闸型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD)、嵌入式快闪存储器模组(eMMC)…等的储存媒体。
快闪存储器(如,NAND FLASH)的储存阵列包括多个区块(blocks),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。然而,储存于浮置栅极的电荷会由于快闪存储器的操作以及各种环境参数,自浮置栅极流失,造成数据保存(Data retention)的问题。其中,三阶储存单元(Triple-Level Cell,TLC)的快闪存储器相较于其他快闪存储器的写入程序更为繁复。因此,如何有效地并且稳定的进行写入程序是重要的课题。
发明内容
本发明所提供的数据储存装置以及数据维护方法,可稳定的提供单阶备用区块并且同时将数据写入单阶备用区块。
本发明提供一种数据储存装置。快闪存储器具有多个单阶备用区块、多个单阶数据区块以及多个三阶备用区块。控制器响应于用以将一数据写入快闪存储器的一写入命令,将数据写入单阶备用区块,其中当一既定条件满足时,控制器每写入三个单阶备用区块便将单阶数据区块中存在最久的三者整理至三阶备用区块中之一者。
在一实施例中,每当对等单阶备用区块中之一者进行写入前,控制器判断单阶备用区块的数量是否小于一既定值,并且当单阶备用区块的数量小于既定值时,既定条件被满足。另外,当既定条件未满足时,控制器连续将数据写入单阶备用区块中。
又一实施例中,控制器在将单阶数据区块中存在最久的三者整理至三阶备用区块中之一者后,才将所写入的数据的至少一逻辑地址映射至所写入的单阶备用区块并将映射至逻辑地址的单阶备用区块定义为单阶数据区块。
另外,单阶备用区块为不具有有效数据的单阶区块,单阶数据区块为具有有效数据的单阶区块,并且三阶备用区块为不具有有效数据的三阶区块。
本发明另提供一种数据储存装置。数据储存装置包括一快闪存储器以及一控制器。快闪存储器具有多个单阶备用区块、多个单阶数据区块以及多个三阶备用区块。控制器响应于用以将一数据写入快闪存储器的一写入命令,将数据写入单阶备用区块,其中当一既定条件满足时,控制器先将数据中的一第一部分写入单阶备用储存区块中的三个第一单阶备用储存区块,并且在将数据中的其他部分写入单阶备用储存区块的其他者之前,自单阶数据区块中选择所具有的有效数据存在最久的三个第一单阶数据区块,将第一单阶数据区块中的数据编程至三阶备用区块中之一者以释放第一单阶数据区块。
在一实施例中,在第一单阶数据区块被释放后,控制器将第一部分的至少一逻辑地址映射至第一单阶备用区块,并将第一单阶备用区块定义为单阶数据区块中之三者。另外,在第一单阶备用区块被定义为单阶数据区块中之三者后,控制器先将数据中的一第二部分写入单阶备用储存区块中的三个第二单阶备用储存区块,并且在将数据中的其他部分写入单阶备用储存区块之其他者之前,自单阶数据区块中选择所具有的有效数据存在最久的三个第二单阶数据区块,将第二单阶数据区块中的数据编程至三阶备用区块中之一者以释放第二单阶数据区块。
本发明亦提供一种数据维护方法适用于具有一快闪存储器的数据储存装置,其中快闪存储器具有多个单阶备用区块、多个单阶数据区块以及多个三阶备用区块。数据维护方法包括:接收用以将一数据写入快闪存储器的一写入命令;以及响应于写入命令,将数据写入单阶备用区块。将数据写入单阶备用区块的步骤还包括:当一既定条件满足时,每写入三个单阶备用区块便将单阶数据区块中存在最久之三者整理至三阶备用区块中之一者。
在一实施例中,数据维护方法还包括每当对等单阶备用区块中之一者进行写入前,判断单阶备用区块的数量是否小于一既定值,其中当单阶备用区块的数量小于既定值时,既定条件被满足。将数据写入单阶备用区块的步骤还包括当既定条件未满足时,连续将数据写入单阶备用区块中。另外,将数据写入单阶备用区块的步骤还包括在将单阶数据区块中存在最久的三者整理至三阶备用区块中之一者后,将所写入的数据的至少一逻辑地址映射至所写入的单阶备用区块并将映射至逻辑地址的单阶备用区块定义为单阶数据区块。
本发明又提供一种数据维护方法,适用于具有一快闪存储器的数据储存装置,其中快闪存储器具有多个单阶备用区块、多个单阶数据区块以及多个三阶备用区块。数据维护方法包括:接收用以将一数据写入快闪存储器的一写入命令;以及响应于写入命令,将数据写入单阶备用区块,其中当一既定条件满足时,将数据写入单阶备用区块的步骤还包括:将数据中的一第一部分写入单阶备用储存区块中的三个第一单阶备用储存区块;以及在将数据中的其他部分写入单阶备用储存区块的其他者之前,自单阶数据区块中选择所具有的有效数据存在最久的三个第一单阶数据区块,并且将第一单阶数据区块中的数据编程至三阶备用区块中之一者以释放第一单阶数据区块。
在一实施例中,当既定条件满足时,将数据写入单阶备用区块的步骤还包括:在第一单阶数据区块被释放后,将第一部分的至少一逻辑地址映射至第一单阶备用区块,并将第一单阶备用区块定义为单阶数据区块中之三者。另外,当既定条件满足时,将数据写入单阶备用区块的步骤还包括:在第一单阶备用区块被定义为单阶数据区块中之三者后,控制器先将数据中的一第二部分写入单阶备用储存区块中的三个第二单阶备用储存区块;以及在将数据中的其他部分写入单阶备用储存区块之其他者之前,自单阶数据区块中选择所具有的有效数据存在最久的三个第二单阶数据区块,并且将第二单阶数据区块中的数据编程至三阶备用区块中之一者以释放第二单阶数据区块。
附图说明
图1是本发明的一种实施例的之电子系统的方块图。
图2是本发明的一种实施例之快闪存储器的示意图。
图3是本发明的一种实施例的数据维护方法的流程图。
符号说明
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
166 随机存取存储器;
180 快闪存储器;
SLC_SP_POOL 单阶备用池;
TLC_SP_POOL 三阶备用池;
SLC_DA_POOL 单阶数据池;
TLC_DA_POOL 三阶数据池;
SLC_SP_1~SLC_SP_N 单阶备用区块;
SLC_DA_1~SLC_DA_P 单阶数据区块;
TLC_SP_1~TLC_SP_M 三阶备用区块;
TLC_DA_1~TLC_DA_Q 三阶数据区块;
S300~S320 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图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_SP_POOL、一三阶备用池TLC_SP_POOL、一单阶数据池SLC_DA_POOL以及一三阶数据池TLC_DA_POOL。单阶备用池SLC_SP_POOL包括多个单阶备用区块(Single-Level Cell,SLC)SLC_SP_1~SLC_SP_N,其中N为单阶备用池SLC_SP_POOL中单阶备用区块的数量,并且每一单阶备用区块SLC_SP_1~SLC_SP_N的大小等同于一个区块的大小,但本发明不限于此。换言之,单阶备用区块SLC_SP_1~SLC_SP_N为不具有有效数据的单阶区块,并且单阶备用区块SLC_SP_1~SLC_SP_N用以以单阶储存模式写入数据的区块。值得注意的是,单阶备用池SLC_SP_POOL中的单阶备用区块SLC_SP_1~SLC_SP_N被写入有效数据后,则会被定义为单阶数据区块并且被分配到推到(PUSH)单阶数据池SLC_DA_POOL中。单阶数据池SLC_DA_POOL包括多个单阶数据区块(Single-Level Cell,SLC)SLC_DA_1~SLC_DA_P,其中P为单阶数据池SLC_DA_POOL中的单阶数据区块的数量,并且每一单阶数据区块SLC_DA_1~SLC_DA_P的大小等同于一个区块的大小,但本发明不限于此。换言之,单阶数据区块SLC_DA_1~SLC_DA_P为具有有效数据的单阶区块,并且单阶数据区块SLC_DA_1~SLC_DA_P中的有效数据用以以三阶储存模式写入三阶备用区块数据的区块。值得注意的是,单阶数据池SLC_DA_POOL中的单阶数据区块SLC_DA_1~SLC_DA_P中的有效数据被编程至三阶备用区块后,则会被定义为单阶备用区块并且被分配到推到(PUSH)单阶备用池SLC_SO_POOL中。三阶备用池TLC_SP_POOL包括多个三阶备用区块(Triple-Level Cell,TLC)TLC_SP_0~TLC_SP_M,其中M为三阶备用池TLC_SP_POOL中三阶备用区块TLC_SP_0~TLC_SP_M的数量,并且每一三阶备用区块TLC_SP_0~TLC_SP_M的大小等同于一个区块的大小。换言之,三阶备用区块TLC_SP_0~TLC_SP_M是不具有有效数据的三阶区块,并且三阶备用区块TLC_SP_0~TLC_SP_M系用以以三阶储存模式写入数据的区块。详细而言,三阶备用区块TLC_SP_0~TLC_SP_M被写入的数据为原本储存于单阶数据区块的数据。值得注意的是,已被写入有效数据的三阶备用区块TLC_SP_0~TLC_SP_M会被定义为三阶数据区块并且被推至三阶数据池TLC_DA_POOL中。三阶数据池TLC_DA_POOL包括多个三阶数据区块(Triple-Level Cell,SLC)TLC_DA_1~TLC_DA_Q,其中Q为三阶数据池TLC_DA_POOL中的三阶数据区块的数量,并且每一三阶数据区块TLC_DA_1~TLC_DA_P的大小等同于一个区块的大小,但本发明不限于此。换言之,三阶数据区块TLC_DA_1~TLC_DA_Q为具有有效数据的三阶区块,并且三阶数据区块TLC_DA_1~TLC_DA_Q。值得注意的是,三阶数据池TLC_DA_POOL中的三阶数据区块TLC_DA_1~TLC_DA_Q被中的有效数据被无效后,则会被定义为三阶备用区块并且被分配到推到(PUSH)三阶备用池TLC_SP_POOL中。
值得注意的是,当没有任何数据被写入快闪存储器180时,三阶数据池TLC_DA_POOL以及单阶数据池SLC_DA_POOL中不具有任何三阶数据区块以及单阶数据区块。
另外,三阶区块(三阶数据区块TLC_DA_1~TLC_DA_Q以及三阶备用区块TLC_SP_1~TLC_SP_M)可储存的数据量是单阶区块(单阶数据区块SLC_DA_1~SLC_DA_P以及单阶备用区块SLC_SP_1~SLC_SP_N)的三倍。详细而言,三阶区块以及单阶区块皆是快闪存储器180中之区块,其物理构造是相同的。然而,三阶区块是藉由电压对区块进行多次编程(Program)来写入数据,而单阶区块是藉由电压对区块进行一次编程(Program)来写入数据。在一实施例中,三阶区块是藉由电压对区块进行三次编程(Program)来写入数据。换言之,三个具有有效数据的单阶数据区块可编程为一个三阶数据区块。
由于单阶区块相较于三阶区块较为稳定,因此在本发明的实施例中,单阶区块(SLC)是用来作为预取空间(Cache),并且在单阶区块快被使用完时,才开始将单阶数据区块的数据编程至三阶区块中。一次将大量的单阶数据区块的数据转移到三阶区块,虽然可确保清出大量的单阶备用区块可使用。然而,控制器160却会因为一次性大量的编程工作无法对写入数据继续进行处理,而造成写入效能不稳定。因此,在本发明的一实施例中,控制器160可基于单阶区块以及三阶区块的特性,交替地执行写入以及清除操作,以确保快闪存储器180可稳定地提供可用的单阶备用区块也可以稳定地进行写入工作。
详细而言,当控制器160自主机120接收到用以将一数据写入快闪存储器180的一写入命令时,控制器则响应于写入命令将数据写入单阶备用区块。另外,每当对等单阶备用区块中之一者进行写入前,控制器160判断单阶备用区块SLC_SP_1~SLC_SP_N之数量是否小于一既定值,以判断一既定条件是否被满足。当单阶备用区块SLC_SP_1~SLC_SP_N之数量小于既定值时,既定条件被满足。当既定条件被满足时,控制器160则开始进行清除单阶数据区块SLC_DA_1~SLC_DA_P。换言之,当既定条件被满足时,控制器160每写入三个单阶备用区块便将单阶数据区块SLC_DA_1~SLC_DA_P中存在最久的三者整理至三阶备用区块TLC_SP_1~TLC_SP_M中之一者。值得注意的是,在一实施例中,数据储存装置140具有一区块维护表,用以记录在单阶数据池SLC_DA_POOL中的每一单阶数据区块SLC_DA_1~SLC_DA_P中的有效数据存在的时间,但本发明不限于此。在其他实施例中,数据储存装置140可藉由其他方式记录每一单阶数据区块SLC_DA_1~SLC_DA_P中的有效数据存在的时间。另外,当既定条件未满足时,控制器160则接着连续将数据写入单阶备用区块中,并且在对每个单阶备用区块进行写入前判断是否满足既定条件。在其他实施例中,既定条件可包括任何需要清理单阶数据区块的事件。
在一实施例中,控制器160是在将单阶数据区块中存在最久之三者整理至三阶备用区块TLC_SP_1~TLC_SP_M中之一者后,才将所写入的数据的至少一逻辑地址映射至所写入的单阶备用区块并将映射至逻辑地址的单阶备用区块定义为单阶数据区块。在突发的断电事件或者其他中断事件发生时,数据虽然已被写入三阶备用区块中,但数据的链结还是保存在原本的单阶数据区块。因此,数据可保存在较稳定的单阶区块中。
举例而言,当既定条件满足时,控制器160先将数据中的一第一部分写入单阶备用储存区块SLC_SP_1~SLC_SP_N中的三个第一单阶备用储存区块。接着,在将数据中的其他部分写入单阶备用储存区块SLC_SP_1~SLC_SP_N之其他者之前,控制器160自单阶数据区块SLC_DA_1~SLC_DA_P中选择所具有的有效数据存在最久的三个第一单阶数据区块,并且将第一单阶数据区块中的数据编程至三阶备用区块中之一者以释放第一单阶数据区块,其中被释放的第一单阶数据区块已失去与原数据的地址映射关系,并且被定义为单阶备用区块。接着,在第一单阶数据区块被释放后,控制器160将第一部分的至少一逻辑地址映射至第一单阶备用区块,并将第一单阶备用区块定义为单阶数据区块中之三者。
在第一单阶备用区块被定义为单阶数据区块中之三者后,控制器160接着先将数据中的一第二部分写入单阶备用储存区块中的三个第二单阶备用储存区块。在将数据中的其他部分写入单阶备用储存区块之其他者之前,控制器160自单阶数据区块中选择所具有的有效数据存在最久的三个第二单阶数据区块,将第二单阶数据区块中的数据编程至三阶备用区块中之一者以释放第二单阶数据区块,其中被释放的第二单阶数据区块已失去与原数据的地址映射关系,并且被定义为单阶备用区块。接着,在第二单阶数据区块被释放后,控制器160将第二部分的至少一逻辑地址映射至第二单阶备用区块,并将第二单阶备用区块定义为单阶数据区块中之三者。接着,控制器160重复上述步骤直到数据的所有部分皆被写入单阶备用区块中。另外,上述数据的第一部分以及第二部分的数据量,分别等于三个单阶区块的数据量。
图3是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤S300。
在步骤S300中,控制器160自主机120接收到用以将一数据写入快闪存储器180的一写入命令。在本实施例中,数据大于三个单阶区块的数据量,但本发明不限于此。
接着,在步骤S302中,控制器160判断一既定条件是否满足。在一实施例中,控制器160判断单阶备用区块SLC_SP_1~SLC_SP_N的数量是否小于一既定值,以判断一既定条件是否被满足。当单阶备用区块SLC_SP_1~SLC_SP_N的数量小于既定值时,既定条件被满足。详细而言,当既定条件被满足时,流程进行至步骤S304以开始进行清除单阶数据区块SLC_DA_1~SLC_DA_P的操作。当既定条件未被满足时,流程进行至步骤S314。在其他实施例中,既定条件可包括任何需要清理单阶数据区块的事件。
在步骤S304中,控制器160撷取数据中尚未被写入单阶备用区块的一部分。详细而言,控制器160接续着前一次所撷取的数据的部分,撷取数据中尚未被写入单阶备用区块并且等同于三个单阶区块的数据量的一部分。当所剩余的数据小于三个单阶区块时,控制器160则撷取所有剩余的数据。
接着,在步骤S306中,控制器160将所撷取的数据的部分写入单阶备用储存区块SLC_SP_1~SLC_SP_N中的三个第一单阶备用储存区块。换言之,控制器160将在步骤S304中所撷取的数据的部分写入单阶备用储存区块SLC_SP_1~SLC_SP_N中之三个单阶备用储存区块。
接着,在步骤S308中,控制器160自单阶数据区块SLC_DA_1~SLC_DA_P中选择所具有的有效数据存在最久的三个单阶数据区块。换言之,控制器160自单阶数据区块SLC_DA_1~SLC_DA_P中选取三个具有冷数据(Cold Data)的三个单阶数据区块。
接着,在步骤S310中,控制器160将所选择的三个单阶数据区块中的数据编程至三阶备用区块中之一者以释放所选择的三个单阶数据区块,其中被释放的三个单阶数据区块已失去与原数据的地址映射关系,并且被定义为单阶备用区块。
接着,在步骤S312中,控制器160将所撷取的数据的部分的至少一逻辑地址映射至被写入的单阶备用区块,并将被写入单阶备用区块定义为单阶数据区块中之三者。换言之,控制器160将在步骤S304中所撷取的数据的部分的逻辑地址映射至在步骤S306被写入的单阶备用区块,并将被写入单阶备用区块定义为单阶数据区块中之三者。
在步骤S313中,控制器160判断数据是否是全部写入单阶区块中。当数据未全部写入单阶区块时,流程回到步骤S304以继续对数据进行写入以及清除单阶数据区块。当数据已全部写入单阶区块时,流程结束于步骤S313。值得注意的是,在另一实施例中,当数据未全部写入单阶区块时,流程回到步骤S302,以继续判断既定条件是否被满足。
在步骤S314中,控制器160撷取数据中尚未被写入单阶备用区块的一部分。详细而言,控制器160接续着前一次所撷取的数据的部分,撷取数据中尚未被写入单阶备用区块并且等同于一个单阶区块的数据量的一部分。当所剩余的数据小于一个单阶区块时,控制器160则撷取所有剩余的数据。
在步骤S316中,控制器160将所撷取的数据的部分写入单阶备用储存区块SLC_SP_1~SLC_SP_N中之一者。换言之,控制器160将在步骤S314中所撷取的数据的部分写入单阶备用储存区块SLC_SP_1~SLC_SP_N中之一者。
接着,在步骤S318中,控制器160将所撷取的数据的部分的逻辑地址映射至被写入的单阶备用区块,并将被写入单阶备用区块定义为单阶数据区块中之一者。换言之,控制器160将在步骤S314中所撷取的数据的部分的逻辑地址映射至在步骤S316被写入的单阶备用区块,并将被写入单阶备用区块定义为单阶数据区块中之一者。
在步骤S320中,控制器160判断数据是否是全部写入单阶区块中。当数据未全部写入单阶区块时,流程回到步骤S302。当数据已全部写入单阶区块时,流程结束于步骤S320。
综上所述,在步骤S304~S313中,控制器160每写入三个单阶备用区块便将单阶数据区块SLC_DA_1~SLC_DA_P中存在最久之三者整理至三阶备用区块TLC_SP_1~TLC_SP_M中之一者。在步骤S314~S320中,控制器160则接着连续将数据写入单阶备用区块中,并且在对每个单阶备用区块进行写入前判断是否满足既定条件。
本发明所提供的数据储存装置以及数据维护方法,可稳定的提供单阶备用区块并且同时将数据写入单阶备用区块。
本发明的方法,或特定型态或其部份,可以以程式码的型态存在。程式码可储存于实体媒体,如软盘、光盘、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程式产品,其中,当程式码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程式码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程式码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程式码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。

Claims (22)

1.一种数据储存装置,包括:
一快闪存储器,具有多个单阶备用区块、多个单阶数据区块以及多个三阶备用区块;以及
一控制器,响应于用以将一数据写入该快闪存储器之一写入命令,将该数据写入这些单阶备用区块,其中当一既定条件满足时,该控制器每写入三个这些单阶备用区块便将这些单阶数据区块中存在最久之三者整理至这些三阶备用区块中之一者。
2.根据权利要求1所述的数据储存装置,其特征在于,每当对等单阶备用区块中之一者进行写入前,该控制器判断这些单阶备用区块的数量是否小于一既定值,并且当这些单阶备用区块的数量小于该既定值时,该既定条件被满足。
3.根据权利要求1所述的数据储存装置,其特征在于,当该既定条件未满足时,该控制器连续将该数据写入这些单阶备用区块中。
4.根据权利要求1所述的数据储存装置,其特征在于,该控制器在将这些单阶数据区块中存在最久之三者整理至这些三阶备用区块中之一者后,才将所写入的该数据的至少一逻辑地址映射至所写入的这些单阶备用区块并将映射至该逻辑地址的这些单阶备用区块定义为这些单阶数据区块。
5.根据权利要求1所述的数据储存装置,其特征在于,这些单阶备用区块为不具有有效数据的单阶区块,这些单阶数据区块为具有有效数据的单阶区块,并且这些三阶备用区块为不具有有效数据的三阶区块。
6.一种数据储存装置,包括:
一快闪存储器,具有多个单阶用区块、多个单阶数据区块以及多个三阶备用区块;以及
一控制器,响应于用以将一数据写入该快闪存储器的一写入命令,将该数据写入这些单阶备用区块,其中当一既定条件满足时,该控制器先将该数据中的一第一部分写入这些单阶备用储存区块中的三个第一单阶备用储存区块,并且在将该数据中的其他部分写入这些单阶备用储存区块之苦其他者之前,自这些单阶数据区块中选择所具有的有效数据存在最久的三个第一单阶数据区块,将这些第一单阶数据无声中的数据编程至这些三阶备用区块中之一者以释放这些第一单阶数据区块。
7.根据权利要求6所述的数据储存装置,其特征在于,在这些第一单阶数据区块被释放后,该控制器将该第一部分的至少一逻辑地址映射至这些第一单阶备用区块,并将这些第一单阶备用区块定义为这些单阶数据区块中之三者。
8.根据权利要求7所述的数据储存装置,其特征在于,在这些第一单阶备用区块被定义为这些单阶数据区块中之三者后,该控制器先将该数据中的一第二部分写入这些单阶备用储存区块中的三个第二单阶备用储存区块,并且在将该数据中的其他部分写入这些单阶备用储存区块之其他者之前,自这些单阶数据区块中选择所具有的有效数据存在最久的三个第二单阶数据区块,将这些第二单阶数据区块中的数据编程至这些三阶备用区块中之一者以释放这些第二单阶数据区块。
9.根据权利要求6所述的数据储存装置,其特征在于,每当对等单阶备用区块中之一者进行写入前,该控制器判断这些单阶备用区块的数量是否小于一既定值,并且当这些单阶备用区块的数量小于该既定值时,该既定条件被满足。
10.根据权利要求6所述的数据储存装置,其特征在于,当该既定条件未满足时,该控制器连续将该数据写入这些单阶备用区块中。
11.根据权利要求6所述的数据储存装置,其特征在于,这些单阶备用区块为不具有有效数据的单阶区块,这些单阶数据区块为具有有效数据的单阶区块,并且这些三阶备用区块为不具有有效数据的三阶区块。
12.一种数据维护方法,适用于具有一快闪存储器的数据储存装置,其中该快闪存储器具有多个单阶备用区块、多个单阶数据区块以及多个三阶备用区块,该数据维护方法包括:
接收用以将一数据写入该快闪存储器的一写入命令;以及
响应于该写入命令,将该数据写入这些单阶备用区块,其中将该数据写入这些单阶备用区块的步骤还包括:
当一既定条件满足时,每写入三个这些单阶备用区块便将这些单阶数据区块中存在最久之三者整理至这些三阶备和区块中之一者。
13.根据权利要求12所述的数据维护方法,其特征在于,还包括每当对等单阶备用区块中之一者进行写入前,判断这些单阶备用区块的数量是否小于一既定值,其中当这些单阶备用区块的数量小于该既定值时,该既定条件被满足。
14.根据权利要求12所述的数据维护方法,其特征在于,将该数据写入这些单阶备用区块的步骤还包括当该既定条件未满足时,连续将该数据写入这些单阶备用区块中。
15.根据权利要求12所述的数据维护方法,其特征在于,将该数据写入这些单阶备用区块的步骤还包括在将这些单阶数据区块中存在最久之三者整理至这些三阶备用区块中之一者后,将所写入的该数据的至少一逻辑地址映射至所写入的这些单阶备用区块并将映射至该逻辑地址的这些单阶备用区块定义为这些单阶数据区块。
16.根据权利要求12所述的数据维护方法,其特征在一地,这些单阶备用区块为不具有有效数据的单阶区块,这些单阶数据区块为具有有效数据的单阶区块,并且这些三阶备用区块为不具有有效数据的三阶区块。
17.一种数据维护方法,适用于具有一快闪存储器的数据储存装置,其中该快闪存储器具有多个单阶备用区块、多个单阶数据区块以及多个三阶备用区块,该数据维护方法包括:
接收用以将一数据写入该快闪存储器的一写入命令;以及
响应于该写入命令,将该数据写入这些单阶备用区块,其中当一既定条件满足时,将该数据写入这些单阶备用区块的步骤还包括:
将该数据中的一第一部分写入这些单阶备用存储区块中的三个第一单阶备用储存区块;以及
在将该数据中的其他部分写入这些单阶备用储存区块之其他者之前,自这些单阶数据区块中选择所具有的有效数据存在最久的三个第一单阶区块,并且将这些第一单阶区块中的数据编程至这些三阶备用区块中之一者以释放这些第一单阶数据区块。
18.根据权利要求17所述的数据维护方法,其特征在于,当该既定条件满足时,将该数据写入这些单阶备用区块的步骤还包括:
在这些第一单阶数据区块被释放后,将该第一部分的至少一逻辑地址映射至这些第一单阶备用区块,并将这些第一单阶备用区块定义为这些单阶数据区块中之三者。
19.根据权利要求18所述的数据维护方法,其特征在于,当该既定条件满足时,将该数据写入这些单阶备用区块的步骤还包括:
在这些第一单阶备用区块被定义为这皮鼓单阶数据区块中之三者后,该控制器先将该数据中的一第二部分写入这些单阶备用储存区块中的三个第二单阶备用储存区块;以及
在将该数据中的其他部分写入这些等单阶备用储存区块之其他者之前,自这些单阶数据区块中选择所具有的有效数据存在最久的三个第二单阶数据区块,并且将这些第二单阶数据区块中的数据编程至这些三阶备用区块中之一者以释放这些第二单阶数据区块。
20.根据权利要求17所述的数据维护方法,其特征在于,还包括每当对等单阶备用区块中之一者进行写入前,判断这些单阶备用区块的数量是否小于一既定值,其中当这些单阶备用区块的数量小于该既定值时,该既定条件被满足。
21.根据权利要求17所述的数据维护方法,其特征在于,当该既定条件未满足时,将该数据写入这些单阶备用区块的步骤还包括:连续将该数据写入这些单阶备用区块中。
22.根据权利要求17所述的数据维护方法,其特征在于,这些单阶备用区块为不具有有效数据的单阶区块,这些单阶数据区块为具有有效数据的单阶区块,并且这些三阶备用区块为不具有有效数据的三阶区块。
CN201610587619.6A 2016-03-31 2016-07-25 数据储存装置及其数据维护方法 Pending CN107291377A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW105110254 2016-03-31
TW105110254A TWI614605B (zh) 2016-03-31 2016-03-31 資料儲存裝置及其資料維護方法

Publications (1)

Publication Number Publication Date
CN107291377A true CN107291377A (zh) 2017-10-24

Family

ID=59958753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610587619.6A Pending CN107291377A (zh) 2016-03-31 2016-07-25 数据储存装置及其数据维护方法

Country Status (3)

Country Link
US (1) US20170285953A1 (zh)
CN (1) CN107291377A (zh)
TW (1) TWI614605B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949200A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储器及其控制方法和控制装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120246391A1 (en) * 2011-01-27 2012-09-27 Anobit Technologies Block management schemes in hybrid slc/mlc memory
CN102789427A (zh) * 2012-07-17 2012-11-21 威盛电子股份有限公司 数据储存装置与其操作方法
US20130311705A1 (en) * 2012-05-18 2013-11-21 Silicon Motion, Inc. Data storage device and method for flash block management
CN103699344A (zh) * 2013-11-05 2014-04-02 威盛电子股份有限公司 非易失性存储器装置及其操作方法
US8725935B2 (en) * 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US20150006784A1 (en) * 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
US9021177B2 (en) * 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
TWI505091B (zh) * 2014-09-16 2015-10-21 Storart Technology Co Ltd 用於非揮發性記憶體的自適應壓縮資料儲存方法及使用該方法的系統

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235441A1 (en) * 2007-03-20 2008-09-25 Itay Sherman Reducing power dissipation for solid state disks
JP5066241B2 (ja) * 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
US8713380B2 (en) * 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
CN103455440A (zh) * 2012-06-04 2013-12-18 慧荣科技股份有限公司 快闪内存装置及快闪内存的数据存取方法
TWI585778B (zh) * 2013-11-05 2017-06-01 威盛電子股份有限公司 非揮發性記憶體裝置的操作方法
US8886877B1 (en) * 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US20160225459A1 (en) * 2015-01-30 2016-08-04 Micron Technology, Inc. Apparatuses operable in multiple power modes and methods of operating the same

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725935B2 (en) * 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US9021177B2 (en) * 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US20120246391A1 (en) * 2011-01-27 2012-09-27 Anobit Technologies Block management schemes in hybrid slc/mlc memory
CN103688247A (zh) * 2011-06-15 2014-03-26 苹果公司 混合slc/mlc存储器中的块管理方案
US20130311705A1 (en) * 2012-05-18 2013-11-21 Silicon Motion, Inc. Data storage device and method for flash block management
CN102789427A (zh) * 2012-07-17 2012-11-21 威盛电子股份有限公司 数据储存装置与其操作方法
US20150006784A1 (en) * 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
CN103699344A (zh) * 2013-11-05 2014-04-02 威盛电子股份有限公司 非易失性存储器装置及其操作方法
TWI520153B (zh) * 2013-11-05 2016-02-01 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
TWI505091B (zh) * 2014-09-16 2015-10-21 Storart Technology Co Ltd 用於非揮發性記憶體的自適應壓縮資料儲存方法及使用該方法的系統

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949200A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储器及其控制方法和控制装置

Also Published As

Publication number Publication date
TWI614605B (zh) 2018-02-11
US20170285953A1 (en) 2017-10-05
TW201734797A (zh) 2017-10-01

Similar Documents

Publication Publication Date Title
CN101681300B (zh) 存储器系统
US7663933B2 (en) Memory controller
JP5002201B2 (ja) メモリシステム
KR100874998B1 (ko) 반도체 집적 회로 장치의 데이터 기록 방식
CN101595528B (zh) 存储器装置架构和操作
US8015370B2 (en) Memory control method and memory system
CN105426315B (zh) 实体储存对照表维护方法以及使用该方法的装置
CN107918588A (zh) 数据储存装置及其数据写入方法
CN107025178A (zh) 存储器控制器、非易失性存储器系统及其操作方法
CN107291378A (zh) 数据储存装置及其数据维护方法
CN107977161A (zh) 数据储存装置及其数据写入方法
TWI590051B (zh) 資料儲存裝置及其資料維護方法
CN106708754A (zh) 数据储存装置及其数据维护方法
CN109947662A (zh) 存储器系统及其操作方法
CN106598479A (zh) 闪速存储器的故障安全擦除的方法和装置
CN107291377A (zh) 数据储存装置及其数据维护方法
CN105528299B (zh) 读取命令排程方法以及使用该方法的装置
US10013210B2 (en) Data storage device and data maintenance method thereof
US20170235489A1 (en) Data storage device and data maintenance method thereof
CN103389881A (zh) 控制装置、存储装置以及数据写入方法
CN109726143A (zh) 存储器控制器的操作方法和储存设备的操作方法
CN109815158A (zh) 进行系统备份的方法、记忆装置及控制器、及电子装置
CN106155914A (zh) 实体储存对照表维护方法以及使用该方法的装置
CN106708422A (zh) 数据储存装置及其数据维护方法
CN108959109A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20171024

WD01 Invention patent application deemed withdrawn after publication