数据储存装置及其数据维护方法与流程

文档序号:11063314阅读:725来源:国知局
本发明有关于一种数据储存装置的数据维护方法;特别有关于一种三阶储存单元的数据维护方法。
背景技术
::快闪存储器为一种普遍的非挥发性数据储存媒体,以电性方式抹除与程序化。以与非门型的快闪存储器(即NANDFLASH)为例,常用作记忆卡(memorycard)、通用串行总线闪存装置(USBflashdevice)、固态硬碟(SSD)、嵌入式快闪存储器模组(eMMC)…等的储存媒体。快闪存储器(如,NANDFLASH)的储存阵列包括多个区块(blocks),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。然而,储存于浮置栅极的电荷会由于快闪存储器的操作以及各种环境参数,自浮置栅极流失,造成数据保存(Dataretention)的问题。其中,三阶储存单元(Triple-LevelCell,TLC)的快闪存储器相较于其他单阶储存单元(Single-LevelCell,SLC)的快闪存储器以及二阶储存单元(Multi-LevelCell,MLC)的快闪存储器,更容易受环境影响而无法保存数据。值得注意的是,嵌入式快闪存储器模组(eMMC)一般而言皆是焊接于母板上,因此嵌入式快闪存储器模组会随着母板一起承受高温锡炉,而导致数据的损毁。技术实现要素:本发明所提供的数据储存装置以及数据维护方法可以一既定顺序选取单阶储存单元以暂存将储存于三阶储存单元的数据。本发明提供一种数据储存装置包括一快闪存储器以及一控制器。快闪存储器具有多个单阶备用储存区块、多个三阶数据区块、及多个三阶备用区块。控制器其系用将些三阶数据区块均分为三个区域,区域各包含相同数量的三阶数据区块,控制器复用以接收一预写数据及预写的一逻辑地址,并根据预写数据及逻辑地址分析出 一第一子预写数据段、一第二子预写数据段、一第三子预写数据段,控制器又用以于一第一阶段,依据逻辑地址,决定对应于逻辑地址的一第一三阶数据区块,并将第一三阶数据区块所属的区域定为第一区域,再判断第一三阶数据区块是否已存在有效数据,若第一三阶数据区块未存在有效数据,分别自第一区域外的剩余的两个区域内,对应第一三阶数据区块,挑选一第二三阶数据区块与一第三三阶数据区块,再以单阶储存模式分别将第一子预写数据、第二子预写数据、第三子预写数据写入第一三阶数据区块、第二三阶数据区块、第三三阶数据区块,复用以将第一三阶数据区块、第二三阶数据区块、第三三阶数据区块映射至逻辑地址。在一实施例中,三阶数据区块的总数为N,并且三阶数据区块具有连续的地址。其中,第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址,第一三阶数据区块的地址加上(2N)/3等于第三三阶数据区块的地址。在另一实施例中,控制器还用以在一第二阶段,将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据整理至三阶备用区块中的一者,其中控制器用以在三阶备用区块中选取一第一三阶备用区块,以将映射至逻辑地址的第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据以一三阶储存单元模式整理至第一三阶备用区块,将整理后的第一三阶备用区块映射至逻辑地址,并且释放第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块。其中,第一阶段为生产阶段(ProductionPhase),第二阶段为在第一阶段后的整合阶段(IntegrationPhase),并且在第一阶段以及第二阶段之间,数据储存装置承受一高温焊接。另外,上述将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据以三阶储存单元模式整理至第一三阶备用区块的步骤与根据在第二阶段所接收的一使用者写入命令所致能的一写入步骤交错的。又另一实施例中,控制器还用以在一第二阶段,接收一使用者写入命令,并且根据使用者写入命令,判断映射至使用者写入命令所要求的特定逻辑地址的一特定三阶数据区块是否具有预写数据。当特定三阶数据区块具有预写数据时,控制器定位被指派给特定逻辑地址的特定三阶数据区块所映射的一第二逻辑地址,在三阶储存单元备用池中选取一第二三阶备用区块,并且将映射至第二逻辑位置的特定三阶数据区块以及其他两个三阶数据区块以一三阶储存单元模式整理至所选取的第二三阶备用区块,以释放映射至第二逻辑位置的特定三阶数据区块以及其他两个三阶数据区块。本发明亦提供一种数据维护方法适用于具有多个单阶备用储存区块、多个三阶数据区块、以及多个三阶备用区块的一数据储存装置。数据维护方法包括:接收一预写数据及一逻辑地址,并根据预写数据及逻辑地址分析出一第一子预写数据段、一第二子预写数据段、一第三子预写数据段;在一第一阶段,将一预写数据段依照逻辑地址的地址顺序写入逻辑地址中的至少一个,其中将预写数据段依照逻辑地址的地址顺序写入逻辑地址中的至少一个的步骤还包括:将些三阶数据区块均分为三个区域,其中区域各包含相同数量的三阶数据区块;依据逻辑地址,决定对应于逻辑地址的一第一三阶数据区块,并将第一三阶数据区块所属的区域定为第一区域;判断第一三阶数据区块是否已存在有效数据;若第一三阶数据区块未存在有效数据,分别自第一区域外的剩余的两个区域内,对应第一三阶数据区块,挑选一第二三阶数据区块与一第三三阶数据区块;以单阶储存模式分别将第一子预写数据、第二子预写数据、第三子预写数据写入第一三阶数据区块、第二三阶数据区块、第三三阶数据区块;以及将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块映射至逻辑地址。在一实施例中,数据维护方法还包括:在一第二阶段,将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据整理至三阶备用区块中之一,其中将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据整理至三阶备用区块中之一的步骤还包括:在三阶备用区块中选取一第一三阶备用区块;将映射至第一逻辑地址的第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据以一三阶储存单元模式整理至第一三阶备用区块;将整理后的第一三阶备用区块映射至第一逻辑地址;以及释放将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块。其中,将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据整理至三阶备用区块中之一的步骤是与根据在第二阶段所接收的一使用者写入命令所致能的一写入步骤交错的。数据维护方法还包括:在一第二阶段,接收一使用者写入命令;以及根据使用者写入命令,判断映射至使用者写入命令所要求的特定逻辑地址的一特定三阶数据区块是否具有预写数据。另一实施例中,数据维护方法还包括:当特定三阶数据区块具有预写数据时,定位被指派给特定逻辑地址的特定三阶数据区块所映射的一第二逻辑地址;在三阶储存单元备用池中选取一第二三阶备用区块;以及将映射至第二逻辑位置的特定三阶数据区块以及其他两个三阶数据区块以一三阶储存单元模式整理至第二三阶备 用区块,以释放映射至第二逻辑位置的特定三阶数据区块以及其他两个三阶数据区块。附图说明图1是本发明的一种实施例的电子系统的方块图。图2是本发明的一种实施例的快闪存储器的示意图。图3是本发明的一种实施例的逻辑地址以及三阶数据区块的示意图。图4是本发明的另一种实施例的逻辑地址以及三阶数据区块的示意图。图5是本发明的一种实施例的区块映射关系的示意图。图6是本发明的一种实施例的数据维护方法的流程图。图7是本发明的一种实施例的数据维护方法的流程图。图8A-8B是本发明的一种实施例的数据维护方法的流程图。符号说明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~S612、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-LevelCell,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-LevelCell,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的预写数据段,重新整理为三阶储存单元。在本发明的一实施例中,第一阶段为生产阶段(ProductionPhase),第二阶段为在第一阶段后的整合阶段(IntegrationPhase),并且在第一阶段以及第二阶段之间,数据储存装置140承受一高温焊接,但本发明不限于此。举例而言,控制器160用以在第一阶段,将一预写数据段(PreloadData)依照逻辑地址H_1~H_N的地址顺序写入逻辑地址H_1~H_N中的至少一个。在本发明的一实施例中,控制器160将三阶数据区块F_1~F_N均分为三个区域。详细而言,控制器160将三阶数据区块F_1~F_N依序分为一第一区域R1、一第二区域R2以及一第三区域R3,以不连续地选取三阶数据区块F_1~F_N,以作为单阶储存单元,但本发明不限于此。在本发明的一实施例中,第一区域R1、第二区域R2以及第三区域R3各包含相同数量的三阶数据区块。换言之,当逻辑地址的总数为N时,第一区域R1、第二区域R2以及第三区域R3分别具有N/3个逻辑地址以及被指派给逻辑地址的N/3个三阶数据区块,并且第一区域R1、第二区域R2以及第三区域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、第二区域R2以及第三区域R3之后,控制器160接着根据命令将预写数据集分为多个预写数据并且依序地写入逻辑地址中。值得注意的是,控制器160依照每一三阶储存单元的大小将预写数据集切割为多个预写数据。换言之,每一预写数据的数据量等同于一个三阶储存单元的数据量以及三个单阶储存单元的数据量。详细而言,控制器160根据指示将预写数据集中的一第一预写数据写入逻辑地址H_1~H_N中的一第一逻辑地址的一第一写入命令,自第一区域R1选取一第一三阶数据区块、自第二区域R2选取一第二三阶数据区块以及自第三区域R3选取一第三三阶数据区块,以将第一预写数据以一单阶储存模式写入所选取的第一三阶数据区块、第二三阶数据区块以及第三 三阶数据区块,并将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块映射至第一逻辑地址。在完成第一写入命令后,控制器160还用以根据指示将预写数据集中的一第二预写数据写入逻辑地址H_1~H_N中的一第二逻辑地址的一第二写入命令,自第一区域R1选取一第四三阶数据区块、自第二区域R2选取一第五三阶数据区块以及自第三区域R3选取一第六三阶数据区块,以将第二预写数据以单阶储存模式写入第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块,并将第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块映射至第二逻辑地址。在完成第二写入命令后,控制器160还用以根据指示将预写数据段中的一第三预写数据写入逻辑地址H_1~H_N中的一第三逻辑地址的一第三写入命令,自第一区域R1选取一第七三阶数据区块、自第二区域R2选取一第八三阶数据区块以及自第三区域R3选取一第九三阶数据区块,以将第三子预写数据段以单阶储存模式写入第七三阶数据区块、第八三阶数据区块以及第九三阶数据区块,并将第七三阶数据区块、第八三阶数据区块以及第九三阶数据区块映射至第三逻辑地址,依此类推直到预写数据段完全写入逻辑地址中。值得注意的是,在某些实施例中,控制器160是先将欲写入的预写数据先写入单阶备用储存区块池SLC_POOL中的单阶储存单元中的三个,再将已写入预写数据的三个单阶储存单元与分别在第一区域R1、第二区域R2以及第三区域R3所选取的三个三阶数据区块交换,但本发明不限于此。在其他实施例中,控制器160是先将欲写入的预写数据先写入单阶备用储存区块池SLC_POOL中的单阶储存单元中的三个,再将已写入预写数据的三个单阶储存单元中的数据写入分别在第一区域R1、第二区域R2以及第三区域R3所选取的三个三阶数据区块。值得注意的是,控制器160是根据第一逻辑地址所被指派的三阶数据区块,选取第一区域R1中的第一三阶数据区块,并且第一三阶数据区块即为被指派给第一逻辑地址的三阶数据区块。另外,第一三阶数据区块的地址加上N/3等于第二三阶数据区块的地址,第一三阶数据区块的地址加上(2N)/3等于第三三阶数据区块的地址。同理,控制器160是根据第二逻辑地址以及第三逻辑地址所被指派的三阶数据区块分别选取第一区域R1中的第四三阶数据区块以及第七三阶数据区块,并且第四三阶数据区块以及第七三阶数据区块即分别为被指派给第二逻辑地址以及第三逻辑地址的三阶数据区块,依此类推。第四三阶数据区块以及第七三阶数据区块的地址加上N/3分别等于第五三阶数据区块以及第八三阶数据区块的地址,第四三阶 数据区块以及第七三阶数据区块的地址加上(2N)/3分别等于第六三阶数据区块以及第九三阶数据区块的地址,依此类推。值得注意的是,在本案中,三阶数据区块以及逻辑地址的映射以及指派关系可由至少一个映射表(Mappingtable)来维持。举例而言,快闪存储器180可具有一第一映射表,用以记录三阶数据区块以及被指派的逻辑地址的关系。快闪存储器180中可更包括一第二映射表用以记录已写入预写数据的三阶数据区块以及逻辑地址的映射关系,其中已写入预写数据的三阶数据区块可直接映射至逻辑地址,或者已写入预写数据的三阶数据区块是映射至被指派给逻辑地址的三阶数据区块,本发明不限于此。举例而言,在图4的实施例中,控制器160接着根据命令将预写数据集分为多个预写数据,并且依照逻辑地址H_0~H_N的地址顺序,依序地将预写数据写入逻辑地址H_0~H_N,如图5所示。进一步而言,控制器160在接收一预写数据及一逻辑地址后,根据所接收的预写数据及所接收的逻辑地址分析出一第一子预写数据段、一第二子预写数据段、一第三子预写数据段。接着,控制器160根据写逻辑地址,决定对应于逻辑地址的一第一三阶数据区块,并将第一三阶数据区块所属的区域定为第一区域,再判断第一三阶数据区块是否已存在有效数据,若第一三阶数据区块未存在有效数据,分别自第一区域外的剩余的两个区域内,对应第一三阶数据区块,挑选一第二三阶数据区块与一第三三阶数据区块,再以单阶储存模式分别将第一子预写数据段、第二子预写数据段、第三子预写数据段写入第一三阶数据区块、第二三阶数据区块、第三三阶数据区块,复用以将第一三阶数据区块、第二三阶数据区块、第三三阶数据区块映射至逻辑地址。详细而言,控制器160根据指示将预写数据段中的一第一预写数据写入第一逻辑地址H_1的一第一写入命令,分析出一第一子预写数据段、一第二子预写数据段以及一第三子预写数据段,并且自第一区域R1选取被指派给第一逻辑地址H_1的一第一三阶数据区块F_1、自第二区域R2选取与第一三阶数据区块F_1相隔N/3的一第二三阶数据区块F_301以及自第三区域R3选取与第一三阶数据区块F_1相隔2N/3的一第三三阶数据区块F_601,其中第一子预写数据段、第二子预写数据段以及第三子预写数据段构成第一预写数据。另外,当被指派给第一逻辑地址H_1的一第一三阶数据区块F_1已具有数据时,控制器160可选择第一三阶数据区块F_1所属的区域中的另一三阶数据区块取代第一三阶数据区块F_1。接着,控制器160将第一子预写数据段、第二子预写数据段以及第三子预写数据段以单阶储存模式分别写入第一三阶数据区块F_1、第 二三阶数据区块F_301以及第三三阶数据区块F_601,并将第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601映射至第一逻辑地址H_1。在完成第一写入命令后,控制器160更用以根据指示将预写数据集中的一第二预写数据写入一第二逻辑地址H_2的一第二写入命令,分析出一第四子预写数据段、一第五子预写数据段、一第六子预写数据段,并且自第一区域R1选取被指派给第二逻辑地址H_2的一第四三阶数据区块F_2、自第二区域R2选取与第四三阶数据区块F_2相隔N/3的一第五三阶数据区块F_302以及自第三区域R3选取与第四三阶数据区块F_2相隔2N/3的一第六三阶数据区块F_602。另外,当被指派给第一逻辑地址H_2的一第四三阶数据区块F_2已具有数据时,控制器160可选择第四三阶数据区块F_2所属的区域中的另一三阶数据区块取代第四三阶数据区块F_2。接着,控制器160将第二子预写数据段以单阶储存模式写入第四三阶数据区块F_2、第五三阶数据区块F_302以及第六三阶数据区块F_602,并将第四三阶数据区块F_2、第五三阶数据区块F_302以及第六三阶数据区块F_602映射至第二逻辑地址H_2。在完成第二写入命令后,控制器160还用以根据指示将预写数据段中的一第三子预写数据段写入一第三逻辑地址的H_3中的一第三写入命令,自第一区域R1选取被指派给第二逻辑地址H_3的一第七三阶数据区块F_3、自第二区域R2选取与第七三阶数据区块F_3相隔N/3的一第八三阶数据区块F_303以及自第三区域R3选取与第七三阶数据区块F_3相隔2N/3的一第九三阶数据区块F_603。另外,当被指派给第一逻辑地址H_1的一第七三阶数据区块F_3已具有数据时,控制器160可选择第七三阶数据区块F_3所属的区域中的另一三阶数据区块取代第一三阶数据区块F_3。接着,控制器160将第三子预写数据段以单阶储存模式写入第七三阶数据区块F_3、第八三阶数据区块F_303以及第九三阶数据区块F_603,并将第七三阶数据区块F_3、第八三阶数据区块F_303以及第九三阶数据区块F_603映射至第三逻辑地址H_3,依此类推直到预写数据段完全写入逻辑地址中。在第二阶段中,控制器160还用以将已写入子预写数据段的三阶数据区块中的数据整理至三阶备用区块TLC_SP_0~TLC_SP_M中的至少一个。详细而言,控制器160在三阶储存单元备用池TLC_POOL中选取一第一三阶备用区块,以将映射至第一逻辑地址的第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据以一三阶储存单元模式整理至第一三阶备用区块。接着,控制器160还用以将整理后的第一三阶备用区块映射至第一逻辑地址,并且释放第一三阶数据区块、 第二三阶数据区块以及第三三阶数据区块。在整理完第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据后,控制器160还用以在三阶储存单元备用池TLC_POOL中选取一第二三阶备用区块,以将映射至第二逻辑地址的第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块中的数据以一三阶储存单元模式整理至第二三阶备用区块。接着,控制器160还用以将整理后的第二三阶备用区块映射至第二逻辑地址,并且释放第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块。在整理完第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块中的数据后,控制器160还用以在三阶储存单元备用池TLC_POOL中选取一第三三阶备用区块,以将映射至第三逻辑地址的第七三阶数据区块、第八三阶数据区块以及第九三阶数据区块中的数据以三阶储存单元模式整理至第三三阶备用区块。接着,控制器160还用以将整理后的第三三阶备用区块映射至第三逻辑地址,并且释放第七三阶数据区块、第八三阶数据区块以及第九三阶数据区块,依此类推直到所有已写入子预写数据段的三阶数据区块中的数据皆整理至三阶备用区块TLC_SP_0~TLC_SP_M中的至少一个。值得注意的是,在本发明的一实施例中,将已被写入预写数据的三阶数据区块中的数据整理至三阶备用区块中的至少一个的步骤是与根据指示对这些逻辑地址中的一个写入的一使用者写入命令所致能的一写入步骤交错的。控制器160是根据指示对逻辑地址写入的使用者写入命令,将映射至使用者写入命令所要求的逻辑地址的三阶数据区块中的数据以三阶储存单元模式整理至第一三阶备用区块。举例而言,使用者要对逻辑地址H_301~H_303进行写入。首先,控制器160根据指示对逻辑地址H_301写入的第一使用者写入命令,在三阶储存单元备用池TLC_POOL中选取一第一三阶备用区块TLC_SP_6,并且定位出被指派给逻辑地址H_301的第二三阶数据区块F_301所映射的第一逻辑地址H_1。接着,控制器160将映射至第一逻辑地址H_1的第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601中的数据以三阶储存单元模式整理至第一三阶备用区块TLC_SP_6。接着,控制器160还用以将整理后的第一三阶备用区块TLC_SP_6映射至第一逻辑地址H_1,并且释放第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601。在整理完第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601中的数据后,控制器160根据第一使用者写入命令,在单阶备用储存区块池SLC_POOL中选取三个单阶储存单元, 以将预定写入逻辑地址H_301的数据先以单阶储存单元的方式写入所选取的三个单阶储存单元。接着,控制器160在三阶储存单元备用池TLC_POOL选择一第四三阶备用区块TLC_11,以将已写入预定写入逻辑地址H_301的数据的三个单阶储存单元的数据以三阶储存单元模式整理至第四三阶备用区块TLC_11。接着,控制器160将已整理的第四三阶备用区块TLC_11与第二三阶数据区块F_301交换,以将被指派给逻辑地址H_301的第二三阶数据区块F_301推至三阶储存单元备用池TLC_POOL以及将已整理的第四三阶备用区块TLC_11映射至逻辑地址H_301。完成第一使用者写入命令后,控制器160根据指示对逻辑地址H_302写入的第二使用者写入命令,在三阶储存单元备用池TLC_POOL中选取一第二三阶备用区块TLC_SP_13,并且定位出被指派给逻辑地址H_302的第五三阶数据区块F_302所映射的第二逻辑地址H_2。控制器160将映射至第二逻辑地址H_2的第四三阶数据区块F_2、第五三阶数据区块F_302以及第六三阶数据区块F_602中的数据以三阶储存单元模式整理至第二三阶备用区块TLC_SP_13。接着,控制器160还用以将整理后的第二三阶备用区块TLC_SP_13映射至第二逻辑地址H_2,并且释放第四三阶数据区块F_2、第五三阶数据区块F_302以及第六三阶数据区块F_602。在整理完第四三阶数据区块F_2、第五三阶数据区块F_302以及第六三阶数据区块F_602中的数据后,控制器160根据第二使用者写入命令,在单阶备用储存区块池SLC_POOL中选取三个单阶储存单元,以将预定写入逻辑地址H_302的数据先以单阶储存单元的方式写入所选取的三个单阶储存单元。接着,控制器160在三阶储存单元备用池TLC_POOL选择一第五三阶备用区块TLC_2,以将已写入预定写入逻辑地址H_302的数据的三个单阶储存单元的数据以三阶储存单元模式整理至第五三阶备用区块TLC_2。接着,控制器160将已整理的第五三阶备用区块TLC_2与第五三阶数据区块F_302交换,以将被指派给逻辑地址H_302的第五三阶数据区块F_302推至三阶储存单元备用池TLC_POOL以及将已整理的第五三阶备用区块TLC_2映射至逻辑地址H_302。完成第二使用者写入命令后,控制器160根据指示对逻辑地址H_303写入的第三使用者写入命令,在三阶储存单元备用池TLC_POOL中选取一第三三阶备用区块TLC_SP_24,并且定位出被指派给逻辑地址H_303的第八三阶数据区块F_303所映射的第二逻辑地址H_3。控制器160将映射至第三逻辑地址H_3的第七三阶数据区块F_3、第八三阶数据区块F_303以及第九三阶数据区块F_603中的数据以 三阶储存单元模式整理至第三三阶备用区块TLC_SP_24。接着,控制器160还以将整理后的第三三阶备用区块TLC_SP_24映射至第三逻辑地址H_3,并且释放第七三阶数据区块F_3、第八三阶数据区块F_303以及第九三阶数据区块F_603。在整理完第七三阶数据区块F_3、第八三阶数据区块F_303以及第九三阶数据区块F_603中的数据后,控制器160根据第三使用者写入命令,在单阶备用储存区块池SLC_POOL中选取三个单阶储存单元,以将预定写入逻辑地址H_303的数据先以单阶储存单元的方式写入所选取的三个单阶储存单元。接着,控制器160在三阶储存单元备用池TLC_POOL选择一第六三阶备用区块TLC_9,以将已写入预定写入逻辑地址H_303的数据的三个单阶储存单元的数据以三阶储存单元模式整理至第六三阶备用区块TLC_9。接着,控制器160将已整理的第六三阶备用区块TLC_9与第八三阶数据区块F_303交换,以将被指派给逻辑地址H_303的第八三阶数据区块F_303推至三阶储存单元备用池TLC_POOL以及将已整理的第六三阶备用区块TLC_9映射至逻辑地址H_302。控制器160还用以在三阶储存单元备用池TLC_POOL中选取一第二三阶备用区块,以将映射至第二逻辑地址的第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块中的数据以一三阶储存单元模式整理至第二三阶备用区块。接着,控制器160还用以将整理后的第二三阶备用区块映射至第二逻辑地址,并且将第四三阶数据区块推至三阶储存单元备用池TLC_POOL。在整理完第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块中的数据后,控制器160还用以在三阶储存单元备用池TLC_POOL中选取一第三三阶备用区块,以将映射至第三逻辑地址的第七三阶数据区块、第八三阶数据区块以及第九三阶数据区块中的数据以三阶储存单元模式整理至第三三阶备用区块。接着,控制器160还用以将整理后的第三三阶备用区块映射至第三逻辑地址,并且将第七三阶数据区块推至三阶储存单元备用池TLC_POOL。图6是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140,其中数据维护方法用以在一第一阶段,将一预写数据集依照逻辑地址H_1~H_N的地址顺序写入逻辑地址H_1~H_N中的至少一个。流程开始于步骤S600。在步骤S600中,控制器160将三阶数据区块F_1~F_N依序分为一第一区域R1、一第二区域R2以及一第三区域R3。在本发明的一实施例中,当逻辑地址的 总数为N时,第一区域R1、第二区域R2以及第三区域R3分别具有N/3个逻辑地址以及被指派给逻辑地址的N/3个三阶数据区块,并且第一区域R1、第二区域R2以及第三区域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是依照每一三阶储存单元的大小将预写数据集切割为多个预写数据。换言之,每一预写数据的数据量等同于一个三阶储存单元的数据量以及三个单阶储存单元的数据量。接着,在步骤S606中,控制器160根据指示将预写数据集中的一预写数据写入逻辑地址中的一者的写入命令,自第一区域R1、第二区域R2以及第三区域R3分别选取三个三阶数据区块。值得注意的是,在一实施例中,控制器160是根据欲写入预写数据的逻辑地址所被指派的三阶数据区块选取第一区域R1中的三阶数据区块。换言之,控制器160在第一区域R1所选取的三阶数据区块为欲写入预写数据的逻辑地址。另外,控制器160在第一区域R1所选择的三阶数据区块的地址加上N/3等于第二区域R2所选择的三阶数据区块的地址,在第一区域R1所选择的三阶数据区块的地址加上(2N)/3等于在第三区域R3所选择的三阶数据区块的地址。举例而言,控制器160根据指示将预写数据集中的一第一预写数据写入第一逻辑地址H_1的一第一写入命令,自第一区域R1选取被指派给第一逻辑地址H_1的一 第一三阶数据区块F_1、自第二区域R2选取与第一三阶数据区块F_1相隔N/3的一第二三阶数据区块F_301以及自第三区域R3选取与第一三阶数据区块F_1相隔2N/3的一第三三阶数据区块F_601,但本发明不限于此。接着,在步骤S608中,控制器160将欲写的预写数据以单阶储存模式写入在步骤S606中所选取的三个三阶数据区块。接着,在步骤S610中,控制器160将已写入预写数据的三个三阶数据区块映射至子预写数据段欲写入的逻辑地址。举例而言,当欲写的预写数据是指示要被写入第一逻辑地址H_1的一第一预写数据并且控制器160在步骤S606中所选取了与第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601时,控制器160将第一预写数据以单阶储存模式写入第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601。接着,控制器160将第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601映射至第一逻辑地址H_1。接着,在步骤S612中,控制器160判断所分割的预写数据是否全部被写入三阶数据区块。当预写数据全部被写入三阶数据区块时,流程结束于步骤S602。当预写数据尚未完全被写入三阶数据区块时,流程回到步骤S606,以依照逻辑地址H_1~H_N的地址顺序是续将剩下的预写数据写入三阶数据区块中。图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还用以将整理后的第一三阶备用区块映射至第一逻辑地址,并且释放第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块。在整理完第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的数据后,控制器160还用以在三阶储存单元备用池TLC_POOL中选取一第二三阶备用区块,以将映射至第二逻辑地址的第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块中的数据以一三阶储存单元模式整理至第二三阶备用区块。接着,控制器160还用以将整理后的第二三阶备用区块映射至第二逻辑地址,并且释放第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块。在整理完第四三阶数据区块、第五三阶数据区块以及第六三阶数据区块中的数据后,控制器160还用以在三阶储存单元备用池TLC_POOL中选取一第三三阶备用区块,以将映射至第三逻辑地址的第七三阶数据区块、第八三阶数据区块以及第九三阶数据区块中的数据以三阶储存单元模式整理至第三三阶备用区块。接着,控制器160还用以将整理后的第三三阶备用区块映射至第三逻辑地址,并且释放第七三阶数据区块、第八三阶数据区块以及第九三阶数据区块,依此类推直到所有已写入子预写数据段的三阶数据区块中之数据皆整理至三阶备用区块TLC_SP_0~TLC_SP_M中的至少一个。图8A-8B是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140,其中数据维护方法用以在第二阶段中,控制器160还用以将已写入预写数据的三阶数据区块中的数据依序整理至三阶备用区块TLC_SP_0~TLC_SP_M中的至少一个,其中将已被写入预写数据的三阶数据区块中的数据整理至三阶备用区块中的至少一个的步骤与根据指示对这些逻辑地址中的一个写入的一使用者写入命令所致能的一写入步骤交错的。换言之,控制器160根据指示对逻辑地址写入的使用者写入命令,将映射至使用者写入命令所要求的逻辑地址的三阶数据区块中的数据以三阶储存单元模式整理至第一三阶备用区块。流程开始于步骤S800。在步骤S800中,控制器160判断是否接收到使用者要对逻辑地址进行写入的使用者写入命令。当控制器160接收到使用者要对逻辑地址进行写入的使用者写入 命令时,流程进行至步骤S802,否则,控制器160继续判断是否接收到使用者要对逻辑地址进行写入的使用者写入命令。在步骤S802中,控制器160根据指示对一特定逻辑地址写入的使用者写入命令,在三阶储存单元备用池TLC_POOL中选取一三阶备用区块,并且定位出被指派给特定逻辑地址的三阶数据区块所映射的逻辑地址。接着,在步骤S804中,控制器160将映射至在步骤S802中所定位的逻辑地址的三个三阶数据区块中的数据以三阶储存单元模式整理至在步骤S802中所选取的三阶备用区块。接着,在步骤S806中,控制器160还用以将在步骤S804中所整理的三阶备用区块映射至在步骤S802中所定位的逻辑地址,并且释放原本映射至在步骤S802中所定位的逻辑地址三个三阶数据区块。接着,在步骤S808中,控制器160在单阶备用储存区块池中选取三个单阶储存单元。接着,在步骤S810中,控制器160将使用者写入命令所指示写入特定逻辑地址的数据先以单阶储存单元的方式写入在步骤S808中所选取的三个单阶储存单元。接着,在步骤S812中,控制器160在三阶储存单元备用池TLC_POOL选择另一三阶备用区块。接着,在步骤S814中,控制器160将已写入预定写入特定逻辑地址的数据的三个单阶储存单元的数据以三阶储存单元模式整理至在步骤S812中所选取的三阶备用区块。接着,在步骤S816中,控制器160将在步骤S814中所整理的三阶备用区块与被指派给特定逻辑地址的三阶数据区块交换,以将被指派给特定逻辑地址的三阶数据区块推至三阶储存单元备用池TLC_POOL以及将在步骤S814中所整理的三阶备用区块映射至特定逻辑地址。举例而言,控制器160在步骤S800中接收到对逻辑地址H_301(特定逻辑地址)进行写入的第一使用者写入命令。以图5的实施例为例,控制器160根据指示对逻辑地址H_301写入的第一使用者写入命令,在三阶储存单元备用池TLC_POOL中选取一第一三阶备用区块TLC_SP_6,并且定位出被指派给逻辑地址H_301的第二三阶数据区块F_301所映射的第一逻辑地址H_1(步骤S802)。接着,控制器160将映射至第一逻辑地址H_1的第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601中的数据以三阶储 存单元模式整理至第一三阶备用区块TLC_SP_6(步骤S804)。接着,控制器160还用以将整理后的第一三阶备用区块TLC_SP_6映射至第一逻辑地址H_1,并且释放第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601(步骤S806)。在整理完第一三阶数据区块F_1、第二三阶数据区块F_301以及第三三阶数据区块F_601中的数据后,控制器160根据第一使用者写入命令,在单阶备用储存区块池SLC_POOL中选取三个单阶储存单元(步骤S808),以将预定写入逻辑地址H_301的数据先以单阶储存单元的方式写入所选取的三个单阶储存单元(步骤S810)。接着,控制器160在三阶储存单元备用池TLC_POOL选择一第四三阶备用区块TLC_11(步骤S812),以将已写入预定写入逻辑地址H_301的数据的三个单阶储存单元的数据以三阶储存单元模式整理至第四三阶备用区块TLC_11(步骤S814)。接着,控制器160将已整理的第四三阶备用区块TLC_11与第二三阶数据区块F_301交换,以将被指派给逻辑地址H_301的第二三阶数据区块F_301推至三阶储存单元备用池TLC_POOL以及将已整理的第四三阶备用区块TLC_11映射至逻辑地址H_301(步骤S816)。接着,流程回到步骤S800,控制器160继续判断是否接收到使用者写入命令。值得注意的是,在其他实施例中当控制器160并未接收到使用者写入命令时,控制器160亦可在数据储存装置140闲置时,在背景执行图7所示的方法。换言之,图7所示以及图8A-8B所示的数据维护方法可并行。综上所述,本发明所提供的数据储存装置以及数据维护方法可以一既定顺序选取单阶储存单元以暂存将储存于三阶储存单元的数据。本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发 明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1