本發(fā)明有關于一種數(shù)據(jù)儲存裝置的數(shù)據(jù)維護方法;特別有關于一種三階儲存單元的數(shù)據(jù)維護方法。
背景技術:
::快閃存儲器為一種普遍的非揮發(fā)性數(shù)據(jù)儲存媒體,以電性方式抹除與程序化。以與非門型的快閃存儲器(即NANDFLASH)為例,常用作記憶卡(memorycard)、通用串行總線閃存裝置(USBflashdevice)、固態(tài)硬碟(SSD)、嵌入式快閃存儲器模組(eMMC)…等的儲存媒體??扉W存儲器(如,NANDFLASH)的儲存陣列包括多個區(qū)塊(blocks),其中浮置柵極晶體管可用以構(gòu)成快閃存儲器。浮置柵極晶體管中的浮置柵極,可捕捉的電荷以儲存數(shù)據(jù)。然而,儲存于浮置柵極的電荷會由于快閃存儲器的操作以及各種環(huán)境參數(shù),自浮置柵極流失,造成數(shù)據(jù)保存(Dataretention)的問題。其中,三階儲存單元(Triple-LevelCell,TLC)的快閃存儲器相較于其他單階儲存單元(Single-LevelCell,SLC)的快閃存儲器以及二階儲存單元(Multi-LevelCell,MLC)的快閃存儲器,更容易受環(huán)境影響而無法保存數(shù)據(jù)。值得注意的是,嵌入式快閃存儲器模組(eMMC)一般而言皆是焊接于母板上,因此嵌入式快閃存儲器模組會隨著母板一起承受高溫錫爐,而導致數(shù)據(jù)的損毀。技術實現(xiàn)要素:本發(fā)明所提供的數(shù)據(jù)儲存裝置以及數(shù)據(jù)維護方法可以一既定順序選取單階儲存單元以暫存將儲存于三階儲存單元的數(shù)據(jù)。本發(fā)明提供一種數(shù)據(jù)儲存裝置包括一快閃存儲器以及一控制器。快閃存儲器具有多個單階備用儲存區(qū)塊、多個三階數(shù)據(jù)區(qū)塊、及多個三階備用區(qū)塊??刂破髌湎涤脤⑿┤A數(shù)據(jù)區(qū)塊均分為三個區(qū)域,區(qū)域各包含相同數(shù)量的三階數(shù)據(jù)區(qū)塊,控制器復用以接收一預寫數(shù)據(jù)及預寫的一邏輯地址,并根據(jù)預寫數(shù)據(jù)及邏輯地址分析出 一第一子預寫數(shù)據(jù)段、一第二子預寫數(shù)據(jù)段、一第三子預寫數(shù)據(jù)段,控制器又用以于一第一階段,依據(jù)邏輯地址,決定對應于邏輯地址的一第一三階數(shù)據(jù)區(qū)塊,并將第一三階數(shù)據(jù)區(qū)塊所屬的區(qū)域定為第一區(qū)域,再判斷第一三階數(shù)據(jù)區(qū)塊是否已存在有效數(shù)據(jù),若第一三階數(shù)據(jù)區(qū)塊未存在有效數(shù)據(jù),分別自第一區(qū)域外的剩余的兩個區(qū)域內(nèi),對應第一三階數(shù)據(jù)區(qū)塊,挑選一第二三階數(shù)據(jù)區(qū)塊與一第三三階數(shù)據(jù)區(qū)塊,再以單階儲存模式分別將第一子預寫數(shù)據(jù)、第二子預寫數(shù)據(jù)、第三子預寫數(shù)據(jù)寫入第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊、第三三階數(shù)據(jù)區(qū)塊,復用以將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊、第三三階數(shù)據(jù)區(qū)塊映射至邏輯地址。在一實施例中,三階數(shù)據(jù)區(qū)塊的總數(shù)為N,并且三階數(shù)據(jù)區(qū)塊具有連續(xù)的地址。其中,第一三階數(shù)據(jù)區(qū)塊的地址加上N/3等于第二三階數(shù)據(jù)區(qū)塊的地址,第一三階數(shù)據(jù)區(qū)塊的地址加上(2N)/3等于第三三階數(shù)據(jù)區(qū)塊的地址。在另一實施例中,控制器還用以在一第二階段,將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)整理至三階備用區(qū)塊中的一者,其中控制器用以在三階備用區(qū)塊中選取一第一三階備用區(qū)塊,以將映射至邏輯地址的第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以一三階儲存單元模式整理至第一三階備用區(qū)塊,將整理后的第一三階備用區(qū)塊映射至邏輯地址,并且釋放第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊。其中,第一階段為生產(chǎn)階段(ProductionPhase),第二階段為在第一階段后的整合階段(IntegrationPhase),并且在第一階段以及第二階段之間,數(shù)據(jù)儲存裝置承受一高溫焊接。另外,上述將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以三階儲存單元模式整理至第一三階備用區(qū)塊的步驟與根據(jù)在第二階段所接收的一使用者寫入命令所致能的一寫入步驟交錯的。又另一實施例中,控制器還用以在一第二階段,接收一使用者寫入命令,并且根據(jù)使用者寫入命令,判斷映射至使用者寫入命令所要求的特定邏輯地址的一特定三階數(shù)據(jù)區(qū)塊是否具有預寫數(shù)據(jù)。當特定三階數(shù)據(jù)區(qū)塊具有預寫數(shù)據(jù)時,控制器定位被指派給特定邏輯地址的特定三階數(shù)據(jù)區(qū)塊所映射的一第二邏輯地址,在三階儲存單元備用池中選取一第二三階備用區(qū)塊,并且將映射至第二邏輯位置的特定三階數(shù)據(jù)區(qū)塊以及其他兩個三階數(shù)據(jù)區(qū)塊以一三階儲存單元模式整理至所選取的第二三階備用區(qū)塊,以釋放映射至第二邏輯位置的特定三階數(shù)據(jù)區(qū)塊以及其他兩個三階數(shù)據(jù)區(qū)塊。本發(fā)明亦提供一種數(shù)據(jù)維護方法適用于具有多個單階備用儲存區(qū)塊、多個三階數(shù)據(jù)區(qū)塊、以及多個三階備用區(qū)塊的一數(shù)據(jù)儲存裝置。數(shù)據(jù)維護方法包括:接收一預寫數(shù)據(jù)及一邏輯地址,并根據(jù)預寫數(shù)據(jù)及邏輯地址分析出一第一子預寫數(shù)據(jù)段、一第二子預寫數(shù)據(jù)段、一第三子預寫數(shù)據(jù)段;在一第一階段,將一預寫數(shù)據(jù)段依照邏輯地址的地址順序?qū)懭脒壿嫷刂分械闹辽僖粋€,其中將預寫數(shù)據(jù)段依照邏輯地址的地址順序?qū)懭脒壿嫷刂分械闹辽僖粋€的步驟還包括:將些三階數(shù)據(jù)區(qū)塊均分為三個區(qū)域,其中區(qū)域各包含相同數(shù)量的三階數(shù)據(jù)區(qū)塊;依據(jù)邏輯地址,決定對應于邏輯地址的一第一三階數(shù)據(jù)區(qū)塊,并將第一三階數(shù)據(jù)區(qū)塊所屬的區(qū)域定為第一區(qū)域;判斷第一三階數(shù)據(jù)區(qū)塊是否已存在有效數(shù)據(jù);若第一三階數(shù)據(jù)區(qū)塊未存在有效數(shù)據(jù),分別自第一區(qū)域外的剩余的兩個區(qū)域內(nèi),對應第一三階數(shù)據(jù)區(qū)塊,挑選一第二三階數(shù)據(jù)區(qū)塊與一第三三階數(shù)據(jù)區(qū)塊;以單階儲存模式分別將第一子預寫數(shù)據(jù)、第二子預寫數(shù)據(jù)、第三子預寫數(shù)據(jù)寫入第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊、第三三階數(shù)據(jù)區(qū)塊;以及將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊映射至邏輯地址。在一實施例中,數(shù)據(jù)維護方法還包括:在一第二階段,將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)整理至三階備用區(qū)塊中之一,其中將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)整理至三階備用區(qū)塊中之一的步驟還包括:在三階備用區(qū)塊中選取一第一三階備用區(qū)塊;將映射至第一邏輯地址的第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以一三階儲存單元模式整理至第一三階備用區(qū)塊;將整理后的第一三階備用區(qū)塊映射至第一邏輯地址;以及釋放將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊。其中,將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)整理至三階備用區(qū)塊中之一的步驟是與根據(jù)在第二階段所接收的一使用者寫入命令所致能的一寫入步驟交錯的。數(shù)據(jù)維護方法還包括:在一第二階段,接收一使用者寫入命令;以及根據(jù)使用者寫入命令,判斷映射至使用者寫入命令所要求的特定邏輯地址的一特定三階數(shù)據(jù)區(qū)塊是否具有預寫數(shù)據(jù)。另一實施例中,數(shù)據(jù)維護方法還包括:當特定三階數(shù)據(jù)區(qū)塊具有預寫數(shù)據(jù)時,定位被指派給特定邏輯地址的特定三階數(shù)據(jù)區(qū)塊所映射的一第二邏輯地址;在三階儲存單元備用池中選取一第二三階備用區(qū)塊;以及將映射至第二邏輯位置的特定三階數(shù)據(jù)區(qū)塊以及其他兩個三階數(shù)據(jù)區(qū)塊以一三階儲存單元模式整理至第二三階備 用區(qū)塊,以釋放映射至第二邏輯位置的特定三階數(shù)據(jù)區(qū)塊以及其他兩個三階數(shù)據(jù)區(qū)塊。附圖說明圖1是本發(fā)明的一種實施例的電子系統(tǒng)的方塊圖。圖2是本發(fā)明的一種實施例的快閃存儲器的示意圖。圖3是本發(fā)明的一種實施例的邏輯地址以及三階數(shù)據(jù)區(qū)塊的示意圖。圖4是本發(fā)明的另一種實施例的邏輯地址以及三階數(shù)據(jù)區(qū)塊的示意圖。圖5是本發(fā)明的一種實施例的區(qū)塊映射關系的示意圖。圖6是本發(fā)明的一種實施例的數(shù)據(jù)維護方法的流程圖。圖7是本發(fā)明的一種實施例的數(shù)據(jù)維護方法的流程圖。圖8A-8B是本發(fā)明的一種實施例的數(shù)據(jù)維護方法的流程圖。符號說明100電子系統(tǒng);120主機;140數(shù)據(jù)儲存裝置;160控制器;162運算單元;164永久存儲器;166隨機存取存儲器;180快閃存儲器;SLC_POOL單階儲存單元備用池;TLC_POOL三階儲存單元備用池;M_POOL三階數(shù)據(jù)區(qū)塊池;SLC_SP_1~SLC_SP_Z單階備用儲存區(qū)塊;TLC_SP_1~TLC_SP_M三階備用區(qū)塊;F_1~F_N三階數(shù)據(jù)區(qū)塊;H_1~H_N邏輯地址;R1、R2、R3區(qū)域;S602~S612、S700~S706、S800~S816步驟。具體實施方式以下將詳細討論本發(fā)明各種實施例的裝置及使用方法。然而值得注意的是,本發(fā)明所提供的許多可行的發(fā)明概念可實施在各種特定范圍中。這些特定實施例僅用于舉例說明本發(fā)明的裝置及使用方法,但非用于限定本發(fā)明的范圍。圖1為本發(fā)明所提供的一電子系統(tǒng)的一種實施例的方塊圖。電子系統(tǒng)100包括一主機120以及一數(shù)據(jù)儲存裝置140。數(shù)據(jù)儲存裝置140包括一快閃存儲器180以及一控制器160,且可根據(jù)主機110所下達的命令操作??刂破?60包括一運算單元162、一永久存儲器(如,唯讀存儲器ROM)164以及隨機存取存儲器(RAM)166。永久存儲器164與所載的程序碼、數(shù)據(jù)組成固件(firmware),由運算單元162執(zhí)行,使控制器160基于該固件控制該快閃存儲器180。隨機存取存儲器(RAM)166用以載入程序碼與參數(shù)以提供控制器160根據(jù)所載入的程序碼與參數(shù)動作??扉W存儲器180具有多個區(qū)塊,其中每一區(qū)塊具有多個頁面,其中快閃存儲器180是以頁面為最小單位進行寫入,并且以區(qū)塊為最小單位進行抹除。圖2是本發(fā)明的一種實施例的快閃存儲器的示意圖。如圖2所示,快閃存儲器180具有一單階備用儲存區(qū)塊池SLC_POOL、一三階儲存單元備用池TLC_POOL以及一三階數(shù)據(jù)區(qū)塊池M_POOL。單階備用儲存區(qū)塊池SLC_POOL包括多個單階備用儲存區(qū)塊(Single-LevelCell,SLC)SLC_SP_1~SLC_SP_Z,其中Z為單階備用儲存區(qū)塊的總數(shù)量,并且每一單階備用儲存區(qū)塊SLC_SP_1~SLC_SP_Z的大小等同于一個區(qū)塊的大小,但本發(fā)明不限于此。換言之,單階備用儲存區(qū)塊SLC_SP_1~SLC_SP_Z用以以單階儲存模式寫入數(shù)據(jù)的區(qū)塊。值得注意的是,單階備用儲存區(qū)塊池SLC_POOL中的單階儲存單元SLC_SP_1~SLC_SP_Z用以將數(shù)據(jù)整理至三階儲存單元備用池TLC_POOL的存儲器空間。三階儲存單元備用池TLC_POOL包括多個三階備用區(qū)塊(Triple-LevelCell,TLC)TLC_SP_0~TLC_SP_M,其中M為單階備用儲存區(qū)塊的總數(shù)量,并且每一三階備用區(qū)塊TLC_SP_0~TLC_SP_M的大小等同于一個區(qū)塊的大小。換言之,三階備用區(qū)塊TLC_SP_0~TLC_SP_M用以以三階儲存模式寫入數(shù)據(jù)的區(qū)塊。值得注意的是,三階儲存單元備用池TLC_POOL用以提供可進行寫入的三階備用區(qū)塊TLC_SP_0~TLC_SP_M,并且已被寫入有效數(shù)據(jù)的三階備用區(qū)塊TLC_SP_0~TLC_SP_M會與三階數(shù)據(jù)區(qū)塊池M_POOL中的具有無效數(shù)據(jù)的區(qū)塊交 換。三階數(shù)據(jù)區(qū)塊池M_POOL具有多個三階數(shù)據(jù)區(qū)塊F_1~F_N,其中N為單階備用儲存區(qū)塊的總數(shù)量,并且每一三階數(shù)據(jù)區(qū)塊F_1~F_N的大小等同于一個區(qū)塊的大小。換言之,三階數(shù)據(jù)區(qū)塊F_1~F_N用以寫入有效數(shù)據(jù)的區(qū)塊。值得注意的是,三階數(shù)據(jù)區(qū)塊池M_POOL用以提供使用者儲存有效數(shù)據(jù)的存儲器空間。另外,三階數(shù)據(jù)區(qū)塊F_1~F_N分別被指派給多個邏輯地址H_1~H_N,其中每一這些三階數(shù)據(jù)區(qū)塊F_1~F_N分別相應于這些邏輯地址H_1~H_N中的一個,如圖3所示。詳細而言,三階數(shù)據(jù)區(qū)塊F_1被指派給邏輯地址H_1、三階數(shù)據(jù)區(qū)塊F_1被指派給邏輯地址H_1、三階數(shù)據(jù)區(qū)塊F_2被指派給邏輯地址H_2、三階數(shù)據(jù)區(qū)塊F_3被指派給邏輯地址H_3、三階數(shù)據(jù)區(qū)塊F_4被指派給邏輯地址H_4…,依此類推。另外,三階數(shù)據(jù)區(qū)塊F_1~F_N以及邏輯地址H_1~H_N系依照地址由上而下排列。在本發(fā)明的一實施例中,快閃存儲器180操作于三階儲存單元(Triple-LevelCell,TLC)模式。換言之,三階數(shù)據(jù)區(qū)塊池M_POOL中的三階數(shù)據(jù)區(qū)塊F_1~F_N是三階儲存單元。值得注意的是,三階儲存單元是藉由整理(Program)單階儲存單元的電壓所獲得的儲存單元。三階儲存單元的存儲器空間是單階儲存單元的三倍。雖然三階儲存單元的存儲器空間較大,但三階儲存單元相較于單階儲存單元更容易被環(huán)境影響,尤其是作為嵌入式快閃存儲器模組(eMMC)的快閃存儲器。由于嵌入式快閃存儲器模組(eMMC)需要與裝置的母板一起過錫爐,故儲存于三階儲存單元中的數(shù)據(jù)在過錫爐之后時常被損毀。有鑒于此,本案所提供的數(shù)據(jù)儲存裝置140可在快閃存儲器180進入高溫環(huán)境之前(即第一階段),將三階數(shù)據(jù)區(qū)塊池M_POOL中的三階數(shù)據(jù)區(qū)塊F_1~F_N作為單階儲存單元,以將預寫數(shù)據(jù)段以單階儲存單元模式寫入三階數(shù)據(jù)區(qū)塊F_1~F_N。值得注意的是,當三階數(shù)據(jù)區(qū)塊池M_POOL中的三階數(shù)據(jù)區(qū)塊F_1~F_N作為單階儲存單元時,三階數(shù)據(jù)區(qū)塊池M_POOL的存儲器容量縮減為原本作為三階儲存單元的三階數(shù)據(jù)區(qū)塊F_1~F_N的三分之一倍。接著,本案所提供的數(shù)據(jù)儲存裝置140可在快閃存儲器180離開高溫環(huán)境之后(即第二階段),將以單階儲存單元模式寫入三階數(shù)據(jù)區(qū)塊F_1~F_N的預寫數(shù)據(jù)段,重新整理為三階儲存單元。在本發(fā)明的一實施例中,第一階段為生產(chǎn)階段(ProductionPhase),第二階段為在第一階段后的整合階段(IntegrationPhase),并且在第一階段以及第二階段之間,數(shù)據(jù)儲存裝置140承受一高溫焊接,但本發(fā)明不限于此。舉例而言,控制器160用以在第一階段,將一預寫數(shù)據(jù)段(PreloadData)依照邏輯地址H_1~H_N的地址順序?qū)懭脒壿嫷刂稨_1~H_N中的至少一個。在本發(fā)明的一實施例中,控制器160將三階數(shù)據(jù)區(qū)塊F_1~F_N均分為三個區(qū)域。詳細而言,控制器160將三階數(shù)據(jù)區(qū)塊F_1~F_N依序分為一第一區(qū)域R1、一第二區(qū)域R2以及一第三區(qū)域R3,以不連續(xù)地選取三階數(shù)據(jù)區(qū)塊F_1~F_N,以作為單階儲存單元,但本發(fā)明不限于此。在本發(fā)明的一實施例中,第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3各包含相同數(shù)量的三階數(shù)據(jù)區(qū)塊。換言之,當邏輯地址的總數(shù)為N時,第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3分別具有N/3個邏輯地址以及被指派給邏輯地址的N/3個三階數(shù)據(jù)區(qū)塊,并且第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3中的邏輯地址具有連續(xù)的地址,如圖3所示,但本發(fā)明不限于此。換言之,第一區(qū)域R1包括具有連續(xù)地址的邏輯地址H_1~H_N/3以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_1~F_N/3。第二區(qū)域R2包括具有連續(xù)地址的邏輯地址H_N/3+1~H_2N/3以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_N/3+1~F_2N/3。第三區(qū)域R3包括具有連續(xù)地址的邏輯地址H_2N/3+1~H_N以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_2N/3+1~F_N。舉例而言,當邏輯地址H_0~H_N的總數(shù)為900時,第一區(qū)域R1包括具有連續(xù)地址的邏輯地址H_1~H_300以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_1~F_300,第二區(qū)域R2包括具有連續(xù)地址的邏輯地址H_301~H_600以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_301~F_600,并且第三區(qū)域R3包括具有連續(xù)地址的邏輯地址H_601~H_900以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_601~F_900,如圖4所示。在其他實施例中,N亦可為其他有理數(shù),本發(fā)明不限于此。另外,當N無法被3整除時,控制器160可忽略無法被整除的1個或者2個三階數(shù)據(jù)區(qū)塊。舉例而言,當三階數(shù)據(jù)區(qū)塊的總數(shù)為901時N則為900,以及當三階數(shù)據(jù)區(qū)塊的總數(shù)為1202時N則為1200,但本發(fā)明不限于此。在將三階數(shù)據(jù)區(qū)塊F_1~F_N依序分為第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3之后,控制器160接著根據(jù)命令將預寫數(shù)據(jù)集分為多個預寫數(shù)據(jù)并且依序地寫入邏輯地址中。值得注意的是,控制器160依照每一三階儲存單元的大小將預寫數(shù)據(jù)集切割為多個預寫數(shù)據(jù)。換言之,每一預寫數(shù)據(jù)的數(shù)據(jù)量等同于一個三階儲存單元的數(shù)據(jù)量以及三個單階儲存單元的數(shù)據(jù)量。詳細而言,控制器160根據(jù)指示將預寫數(shù)據(jù)集中的一第一預寫數(shù)據(jù)寫入邏輯地址H_1~H_N中的一第一邏輯地址的一第一寫入命令,自第一區(qū)域R1選取一第一三階數(shù)據(jù)區(qū)塊、自第二區(qū)域R2選取一第二三階數(shù)據(jù)區(qū)塊以及自第三區(qū)域R3選取一第三三階數(shù)據(jù)區(qū)塊,以將第一預寫數(shù)據(jù)以一單階儲存模式寫入所選取的第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三 三階數(shù)據(jù)區(qū)塊,并將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊映射至第一邏輯地址。在完成第一寫入命令后,控制器160還用以根據(jù)指示將預寫數(shù)據(jù)集中的一第二預寫數(shù)據(jù)寫入邏輯地址H_1~H_N中的一第二邏輯地址的一第二寫入命令,自第一區(qū)域R1選取一第四三階數(shù)據(jù)區(qū)塊、自第二區(qū)域R2選取一第五三階數(shù)據(jù)區(qū)塊以及自第三區(qū)域R3選取一第六三階數(shù)據(jù)區(qū)塊,以將第二預寫數(shù)據(jù)以單階儲存模式寫入第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊,并將第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊映射至第二邏輯地址。在完成第二寫入命令后,控制器160還用以根據(jù)指示將預寫數(shù)據(jù)段中的一第三預寫數(shù)據(jù)寫入邏輯地址H_1~H_N中的一第三邏輯地址的一第三寫入命令,自第一區(qū)域R1選取一第七三階數(shù)據(jù)區(qū)塊、自第二區(qū)域R2選取一第八三階數(shù)據(jù)區(qū)塊以及自第三區(qū)域R3選取一第九三階數(shù)據(jù)區(qū)塊,以將第三子預寫數(shù)據(jù)段以單階儲存模式寫入第七三階數(shù)據(jù)區(qū)塊、第八三階數(shù)據(jù)區(qū)塊以及第九三階數(shù)據(jù)區(qū)塊,并將第七三階數(shù)據(jù)區(qū)塊、第八三階數(shù)據(jù)區(qū)塊以及第九三階數(shù)據(jù)區(qū)塊映射至第三邏輯地址,依此類推直到預寫數(shù)據(jù)段完全寫入邏輯地址中。值得注意的是,在某些實施例中,控制器160是先將欲寫入的預寫數(shù)據(jù)先寫入單階備用儲存區(qū)塊池SLC_POOL中的單階儲存單元中的三個,再將已寫入預寫數(shù)據(jù)的三個單階儲存單元與分別在第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3所選取的三個三階數(shù)據(jù)區(qū)塊交換,但本發(fā)明不限于此。在其他實施例中,控制器160是先將欲寫入的預寫數(shù)據(jù)先寫入單階備用儲存區(qū)塊池SLC_POOL中的單階儲存單元中的三個,再將已寫入預寫數(shù)據(jù)的三個單階儲存單元中的數(shù)據(jù)寫入分別在第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3所選取的三個三階數(shù)據(jù)區(qū)塊。值得注意的是,控制器160是根據(jù)第一邏輯地址所被指派的三階數(shù)據(jù)區(qū)塊,選取第一區(qū)域R1中的第一三階數(shù)據(jù)區(qū)塊,并且第一三階數(shù)據(jù)區(qū)塊即為被指派給第一邏輯地址的三階數(shù)據(jù)區(qū)塊。另外,第一三階數(shù)據(jù)區(qū)塊的地址加上N/3等于第二三階數(shù)據(jù)區(qū)塊的地址,第一三階數(shù)據(jù)區(qū)塊的地址加上(2N)/3等于第三三階數(shù)據(jù)區(qū)塊的地址。同理,控制器160是根據(jù)第二邏輯地址以及第三邏輯地址所被指派的三階數(shù)據(jù)區(qū)塊分別選取第一區(qū)域R1中的第四三階數(shù)據(jù)區(qū)塊以及第七三階數(shù)據(jù)區(qū)塊,并且第四三階數(shù)據(jù)區(qū)塊以及第七三階數(shù)據(jù)區(qū)塊即分別為被指派給第二邏輯地址以及第三邏輯地址的三階數(shù)據(jù)區(qū)塊,依此類推。第四三階數(shù)據(jù)區(qū)塊以及第七三階數(shù)據(jù)區(qū)塊的地址加上N/3分別等于第五三階數(shù)據(jù)區(qū)塊以及第八三階數(shù)據(jù)區(qū)塊的地址,第四三階 數(shù)據(jù)區(qū)塊以及第七三階數(shù)據(jù)區(qū)塊的地址加上(2N)/3分別等于第六三階數(shù)據(jù)區(qū)塊以及第九三階數(shù)據(jù)區(qū)塊的地址,依此類推。值得注意的是,在本案中,三階數(shù)據(jù)區(qū)塊以及邏輯地址的映射以及指派關系可由至少一個映射表(Mappingtable)來維持。舉例而言,快閃存儲器180可具有一第一映射表,用以記錄三階數(shù)據(jù)區(qū)塊以及被指派的邏輯地址的關系??扉W存儲器180中可更包括一第二映射表用以記錄已寫入預寫數(shù)據(jù)的三階數(shù)據(jù)區(qū)塊以及邏輯地址的映射關系,其中已寫入預寫數(shù)據(jù)的三階數(shù)據(jù)區(qū)塊可直接映射至邏輯地址,或者已寫入預寫數(shù)據(jù)的三階數(shù)據(jù)區(qū)塊是映射至被指派給邏輯地址的三階數(shù)據(jù)區(qū)塊,本發(fā)明不限于此。舉例而言,在圖4的實施例中,控制器160接著根據(jù)命令將預寫數(shù)據(jù)集分為多個預寫數(shù)據(jù),并且依照邏輯地址H_0~H_N的地址順序,依序地將預寫數(shù)據(jù)寫入邏輯地址H_0~H_N,如圖5所示。進一步而言,控制器160在接收一預寫數(shù)據(jù)及一邏輯地址后,根據(jù)所接收的預寫數(shù)據(jù)及所接收的邏輯地址分析出一第一子預寫數(shù)據(jù)段、一第二子預寫數(shù)據(jù)段、一第三子預寫數(shù)據(jù)段。接著,控制器160根據(jù)寫邏輯地址,決定對應于邏輯地址的一第一三階數(shù)據(jù)區(qū)塊,并將第一三階數(shù)據(jù)區(qū)塊所屬的區(qū)域定為第一區(qū)域,再判斷第一三階數(shù)據(jù)區(qū)塊是否已存在有效數(shù)據(jù),若第一三階數(shù)據(jù)區(qū)塊未存在有效數(shù)據(jù),分別自第一區(qū)域外的剩余的兩個區(qū)域內(nèi),對應第一三階數(shù)據(jù)區(qū)塊,挑選一第二三階數(shù)據(jù)區(qū)塊與一第三三階數(shù)據(jù)區(qū)塊,再以單階儲存模式分別將第一子預寫數(shù)據(jù)段、第二子預寫數(shù)據(jù)段、第三子預寫數(shù)據(jù)段寫入第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊、第三三階數(shù)據(jù)區(qū)塊,復用以將第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊、第三三階數(shù)據(jù)區(qū)塊映射至邏輯地址。詳細而言,控制器160根據(jù)指示將預寫數(shù)據(jù)段中的一第一預寫數(shù)據(jù)寫入第一邏輯地址H_1的一第一寫入命令,分析出一第一子預寫數(shù)據(jù)段、一第二子預寫數(shù)據(jù)段以及一第三子預寫數(shù)據(jù)段,并且自第一區(qū)域R1選取被指派給第一邏輯地址H_1的一第一三階數(shù)據(jù)區(qū)塊F_1、自第二區(qū)域R2選取與第一三階數(shù)據(jù)區(qū)塊F_1相隔N/3的一第二三階數(shù)據(jù)區(qū)塊F_301以及自第三區(qū)域R3選取與第一三階數(shù)據(jù)區(qū)塊F_1相隔2N/3的一第三三階數(shù)據(jù)區(qū)塊F_601,其中第一子預寫數(shù)據(jù)段、第二子預寫數(shù)據(jù)段以及第三子預寫數(shù)據(jù)段構(gòu)成第一預寫數(shù)據(jù)。另外,當被指派給第一邏輯地址H_1的一第一三階數(shù)據(jù)區(qū)塊F_1已具有數(shù)據(jù)時,控制器160可選擇第一三階數(shù)據(jù)區(qū)塊F_1所屬的區(qū)域中的另一三階數(shù)據(jù)區(qū)塊取代第一三階數(shù)據(jù)區(qū)塊F_1。接著,控制器160將第一子預寫數(shù)據(jù)段、第二子預寫數(shù)據(jù)段以及第三子預寫數(shù)據(jù)段以單階儲存模式分別寫入第一三階數(shù)據(jù)區(qū)塊F_1、第 二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601,并將第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601映射至第一邏輯地址H_1。在完成第一寫入命令后,控制器160更用以根據(jù)指示將預寫數(shù)據(jù)集中的一第二預寫數(shù)據(jù)寫入一第二邏輯地址H_2的一第二寫入命令,分析出一第四子預寫數(shù)據(jù)段、一第五子預寫數(shù)據(jù)段、一第六子預寫數(shù)據(jù)段,并且自第一區(qū)域R1選取被指派給第二邏輯地址H_2的一第四三階數(shù)據(jù)區(qū)塊F_2、自第二區(qū)域R2選取與第四三階數(shù)據(jù)區(qū)塊F_2相隔N/3的一第五三階數(shù)據(jù)區(qū)塊F_302以及自第三區(qū)域R3選取與第四三階數(shù)據(jù)區(qū)塊F_2相隔2N/3的一第六三階數(shù)據(jù)區(qū)塊F_602。另外,當被指派給第一邏輯地址H_2的一第四三階數(shù)據(jù)區(qū)塊F_2已具有數(shù)據(jù)時,控制器160可選擇第四三階數(shù)據(jù)區(qū)塊F_2所屬的區(qū)域中的另一三階數(shù)據(jù)區(qū)塊取代第四三階數(shù)據(jù)區(qū)塊F_2。接著,控制器160將第二子預寫數(shù)據(jù)段以單階儲存模式寫入第四三階數(shù)據(jù)區(qū)塊F_2、第五三階數(shù)據(jù)區(qū)塊F_302以及第六三階數(shù)據(jù)區(qū)塊F_602,并將第四三階數(shù)據(jù)區(qū)塊F_2、第五三階數(shù)據(jù)區(qū)塊F_302以及第六三階數(shù)據(jù)區(qū)塊F_602映射至第二邏輯地址H_2。在完成第二寫入命令后,控制器160還用以根據(jù)指示將預寫數(shù)據(jù)段中的一第三子預寫數(shù)據(jù)段寫入一第三邏輯地址的H_3中的一第三寫入命令,自第一區(qū)域R1選取被指派給第二邏輯地址H_3的一第七三階數(shù)據(jù)區(qū)塊F_3、自第二區(qū)域R2選取與第七三階數(shù)據(jù)區(qū)塊F_3相隔N/3的一第八三階數(shù)據(jù)區(qū)塊F_303以及自第三區(qū)域R3選取與第七三階數(shù)據(jù)區(qū)塊F_3相隔2N/3的一第九三階數(shù)據(jù)區(qū)塊F_603。另外,當被指派給第一邏輯地址H_1的一第七三階數(shù)據(jù)區(qū)塊F_3已具有數(shù)據(jù)時,控制器160可選擇第七三階數(shù)據(jù)區(qū)塊F_3所屬的區(qū)域中的另一三階數(shù)據(jù)區(qū)塊取代第一三階數(shù)據(jù)區(qū)塊F_3。接著,控制器160將第三子預寫數(shù)據(jù)段以單階儲存模式寫入第七三階數(shù)據(jù)區(qū)塊F_3、第八三階數(shù)據(jù)區(qū)塊F_303以及第九三階數(shù)據(jù)區(qū)塊F_603,并將第七三階數(shù)據(jù)區(qū)塊F_3、第八三階數(shù)據(jù)區(qū)塊F_303以及第九三階數(shù)據(jù)區(qū)塊F_603映射至第三邏輯地址H_3,依此類推直到預寫數(shù)據(jù)段完全寫入邏輯地址中。在第二階段中,控制器160還用以將已寫入子預寫數(shù)據(jù)段的三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)整理至三階備用區(qū)塊TLC_SP_0~TLC_SP_M中的至少一個。詳細而言,控制器160在三階儲存單元備用池TLC_POOL中選取一第一三階備用區(qū)塊,以將映射至第一邏輯地址的第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以一三階儲存單元模式整理至第一三階備用區(qū)塊。接著,控制器160還用以將整理后的第一三階備用區(qū)塊映射至第一邏輯地址,并且釋放第一三階數(shù)據(jù)區(qū)塊、 第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊。在整理完第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)后,控制器160還用以在三階儲存單元備用池TLC_POOL中選取一第二三階備用區(qū)塊,以將映射至第二邏輯地址的第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以一三階儲存單元模式整理至第二三階備用區(qū)塊。接著,控制器160還用以將整理后的第二三階備用區(qū)塊映射至第二邏輯地址,并且釋放第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊。在整理完第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)后,控制器160還用以在三階儲存單元備用池TLC_POOL中選取一第三三階備用區(qū)塊,以將映射至第三邏輯地址的第七三階數(shù)據(jù)區(qū)塊、第八三階數(shù)據(jù)區(qū)塊以及第九三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以三階儲存單元模式整理至第三三階備用區(qū)塊。接著,控制器160還用以將整理后的第三三階備用區(qū)塊映射至第三邏輯地址,并且釋放第七三階數(shù)據(jù)區(qū)塊、第八三階數(shù)據(jù)區(qū)塊以及第九三階數(shù)據(jù)區(qū)塊,依此類推直到所有已寫入子預寫數(shù)據(jù)段的三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)皆整理至三階備用區(qū)塊TLC_SP_0~TLC_SP_M中的至少一個。值得注意的是,在本發(fā)明的一實施例中,將已被寫入預寫數(shù)據(jù)的三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)整理至三階備用區(qū)塊中的至少一個的步驟是與根據(jù)指示對這些邏輯地址中的一個寫入的一使用者寫入命令所致能的一寫入步驟交錯的??刂破?60是根據(jù)指示對邏輯地址寫入的使用者寫入命令,將映射至使用者寫入命令所要求的邏輯地址的三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以三階儲存單元模式整理至第一三階備用區(qū)塊。舉例而言,使用者要對邏輯地址H_301~H_303進行寫入。首先,控制器160根據(jù)指示對邏輯地址H_301寫入的第一使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一第一三階備用區(qū)塊TLC_SP_6,并且定位出被指派給邏輯地址H_301的第二三階數(shù)據(jù)區(qū)塊F_301所映射的第一邏輯地址H_1。接著,控制器160將映射至第一邏輯地址H_1的第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601中的數(shù)據(jù)以三階儲存單元模式整理至第一三階備用區(qū)塊TLC_SP_6。接著,控制器160還用以將整理后的第一三階備用區(qū)塊TLC_SP_6映射至第一邏輯地址H_1,并且釋放第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601。在整理完第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601中的數(shù)據(jù)后,控制器160根據(jù)第一使用者寫入命令,在單階備用儲存區(qū)塊池SLC_POOL中選取三個單階儲存單元, 以將預定寫入邏輯地址H_301的數(shù)據(jù)先以單階儲存單元的方式寫入所選取的三個單階儲存單元。接著,控制器160在三階儲存單元備用池TLC_POOL選擇一第四三階備用區(qū)塊TLC_11,以將已寫入預定寫入邏輯地址H_301的數(shù)據(jù)的三個單階儲存單元的數(shù)據(jù)以三階儲存單元模式整理至第四三階備用區(qū)塊TLC_11。接著,控制器160將已整理的第四三階備用區(qū)塊TLC_11與第二三階數(shù)據(jù)區(qū)塊F_301交換,以將被指派給邏輯地址H_301的第二三階數(shù)據(jù)區(qū)塊F_301推至三階儲存單元備用池TLC_POOL以及將已整理的第四三階備用區(qū)塊TLC_11映射至邏輯地址H_301。完成第一使用者寫入命令后,控制器160根據(jù)指示對邏輯地址H_302寫入的第二使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一第二三階備用區(qū)塊TLC_SP_13,并且定位出被指派給邏輯地址H_302的第五三階數(shù)據(jù)區(qū)塊F_302所映射的第二邏輯地址H_2??刂破?60將映射至第二邏輯地址H_2的第四三階數(shù)據(jù)區(qū)塊F_2、第五三階數(shù)據(jù)區(qū)塊F_302以及第六三階數(shù)據(jù)區(qū)塊F_602中的數(shù)據(jù)以三階儲存單元模式整理至第二三階備用區(qū)塊TLC_SP_13。接著,控制器160還用以將整理后的第二三階備用區(qū)塊TLC_SP_13映射至第二邏輯地址H_2,并且釋放第四三階數(shù)據(jù)區(qū)塊F_2、第五三階數(shù)據(jù)區(qū)塊F_302以及第六三階數(shù)據(jù)區(qū)塊F_602。在整理完第四三階數(shù)據(jù)區(qū)塊F_2、第五三階數(shù)據(jù)區(qū)塊F_302以及第六三階數(shù)據(jù)區(qū)塊F_602中的數(shù)據(jù)后,控制器160根據(jù)第二使用者寫入命令,在單階備用儲存區(qū)塊池SLC_POOL中選取三個單階儲存單元,以將預定寫入邏輯地址H_302的數(shù)據(jù)先以單階儲存單元的方式寫入所選取的三個單階儲存單元。接著,控制器160在三階儲存單元備用池TLC_POOL選擇一第五三階備用區(qū)塊TLC_2,以將已寫入預定寫入邏輯地址H_302的數(shù)據(jù)的三個單階儲存單元的數(shù)據(jù)以三階儲存單元模式整理至第五三階備用區(qū)塊TLC_2。接著,控制器160將已整理的第五三階備用區(qū)塊TLC_2與第五三階數(shù)據(jù)區(qū)塊F_302交換,以將被指派給邏輯地址H_302的第五三階數(shù)據(jù)區(qū)塊F_302推至三階儲存單元備用池TLC_POOL以及將已整理的第五三階備用區(qū)塊TLC_2映射至邏輯地址H_302。完成第二使用者寫入命令后,控制器160根據(jù)指示對邏輯地址H_303寫入的第三使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一第三三階備用區(qū)塊TLC_SP_24,并且定位出被指派給邏輯地址H_303的第八三階數(shù)據(jù)區(qū)塊F_303所映射的第二邏輯地址H_3。控制器160將映射至第三邏輯地址H_3的第七三階數(shù)據(jù)區(qū)塊F_3、第八三階數(shù)據(jù)區(qū)塊F_303以及第九三階數(shù)據(jù)區(qū)塊F_603中的數(shù)據(jù)以 三階儲存單元模式整理至第三三階備用區(qū)塊TLC_SP_24。接著,控制器160還以將整理后的第三三階備用區(qū)塊TLC_SP_24映射至第三邏輯地址H_3,并且釋放第七三階數(shù)據(jù)區(qū)塊F_3、第八三階數(shù)據(jù)區(qū)塊F_303以及第九三階數(shù)據(jù)區(qū)塊F_603。在整理完第七三階數(shù)據(jù)區(qū)塊F_3、第八三階數(shù)據(jù)區(qū)塊F_303以及第九三階數(shù)據(jù)區(qū)塊F_603中的數(shù)據(jù)后,控制器160根據(jù)第三使用者寫入命令,在單階備用儲存區(qū)塊池SLC_POOL中選取三個單階儲存單元,以將預定寫入邏輯地址H_303的數(shù)據(jù)先以單階儲存單元的方式寫入所選取的三個單階儲存單元。接著,控制器160在三階儲存單元備用池TLC_POOL選擇一第六三階備用區(qū)塊TLC_9,以將已寫入預定寫入邏輯地址H_303的數(shù)據(jù)的三個單階儲存單元的數(shù)據(jù)以三階儲存單元模式整理至第六三階備用區(qū)塊TLC_9。接著,控制器160將已整理的第六三階備用區(qū)塊TLC_9與第八三階數(shù)據(jù)區(qū)塊F_303交換,以將被指派給邏輯地址H_303的第八三階數(shù)據(jù)區(qū)塊F_303推至三階儲存單元備用池TLC_POOL以及將已整理的第六三階備用區(qū)塊TLC_9映射至邏輯地址H_302??刂破?60還用以在三階儲存單元備用池TLC_POOL中選取一第二三階備用區(qū)塊,以將映射至第二邏輯地址的第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以一三階儲存單元模式整理至第二三階備用區(qū)塊。接著,控制器160還用以將整理后的第二三階備用區(qū)塊映射至第二邏輯地址,并且將第四三階數(shù)據(jù)區(qū)塊推至三階儲存單元備用池TLC_POOL。在整理完第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)后,控制器160還用以在三階儲存單元備用池TLC_POOL中選取一第三三階備用區(qū)塊,以將映射至第三邏輯地址的第七三階數(shù)據(jù)區(qū)塊、第八三階數(shù)據(jù)區(qū)塊以及第九三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以三階儲存單元模式整理至第三三階備用區(qū)塊。接著,控制器160還用以將整理后的第三三階備用區(qū)塊映射至第三邏輯地址,并且將第七三階數(shù)據(jù)區(qū)塊推至三階儲存單元備用池TLC_POOL。圖6是本發(fā)明的一種實施例的數(shù)據(jù)維護方法的流程圖。數(shù)據(jù)維護方法適用于圖1所示的數(shù)據(jù)儲存裝置140,其中數(shù)據(jù)維護方法用以在一第一階段,將一預寫數(shù)據(jù)集依照邏輯地址H_1~H_N的地址順序?qū)懭脒壿嫷刂稨_1~H_N中的至少一個。流程開始于步驟S600。在步驟S600中,控制器160將三階數(shù)據(jù)區(qū)塊F_1~F_N依序分為一第一區(qū)域R1、一第二區(qū)域R2以及一第三區(qū)域R3。在本發(fā)明的一實施例中,當邏輯地址的 總數(shù)為N時,第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3分別具有N/3個邏輯地址以及被指派給邏輯地址的N/3個三階數(shù)據(jù)區(qū)塊,并且第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3中的邏輯地址具有連續(xù)的地址,如圖3所示,但本發(fā)明不限于此。換言之,第一區(qū)域R1包括具有連續(xù)地址的邏輯地址H_1~H_N/3以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_1~F_N/3。第二區(qū)域R2包括具有連續(xù)地址的邏輯地址H_N/3+1~H_2N/3以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_N/3+1~F_2N/3。第三區(qū)域R3包括具有連續(xù)地址的邏輯地址H_2N/3+1~H_N以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_2N/3+1~F_N。舉例而言,當邏輯地址H_0~H_N的總數(shù)為900時,第一區(qū)域R1包括具有連續(xù)地址的邏輯地址H_1~H_300以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_1~F_300,第二區(qū)域R2包括具有連續(xù)地址的邏輯地址H_301~H_600以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_301~F_600,并且第三區(qū)域R3包括具有連續(xù)地址的邏輯地址H_601~H_900以及具有連續(xù)地址的三階數(shù)據(jù)區(qū)塊F_601~F_900,如圖4所示。在其他實施例中,N亦可為其他有理數(shù),本發(fā)明不限于此。另外,當N無法被3整除時,控制器160可忽略無法被整除的1個或者2個三階數(shù)據(jù)區(qū)塊。舉例而言,當三階數(shù)據(jù)區(qū)塊的總數(shù)為901時N則為900,以及當三階數(shù)據(jù)區(qū)塊的總數(shù)為1202時N則為1200,但本發(fā)明不限于此。接著,在步驟S602中,控制器160將預寫數(shù)據(jù)集分為多個預寫數(shù)據(jù)。值得注意的是,控制器160是依照每一三階儲存單元的大小將預寫數(shù)據(jù)集切割為多個預寫數(shù)據(jù)。換言之,每一預寫數(shù)據(jù)的數(shù)據(jù)量等同于一個三階儲存單元的數(shù)據(jù)量以及三個單階儲存單元的數(shù)據(jù)量。接著,在步驟S606中,控制器160根據(jù)指示將預寫數(shù)據(jù)集中的一預寫數(shù)據(jù)寫入邏輯地址中的一者的寫入命令,自第一區(qū)域R1、第二區(qū)域R2以及第三區(qū)域R3分別選取三個三階數(shù)據(jù)區(qū)塊。值得注意的是,在一實施例中,控制器160是根據(jù)欲寫入預寫數(shù)據(jù)的邏輯地址所被指派的三階數(shù)據(jù)區(qū)塊選取第一區(qū)域R1中的三階數(shù)據(jù)區(qū)塊。換言之,控制器160在第一區(qū)域R1所選取的三階數(shù)據(jù)區(qū)塊為欲寫入預寫數(shù)據(jù)的邏輯地址。另外,控制器160在第一區(qū)域R1所選擇的三階數(shù)據(jù)區(qū)塊的地址加上N/3等于第二區(qū)域R2所選擇的三階數(shù)據(jù)區(qū)塊的地址,在第一區(qū)域R1所選擇的三階數(shù)據(jù)區(qū)塊的地址加上(2N)/3等于在第三區(qū)域R3所選擇的三階數(shù)據(jù)區(qū)塊的地址。舉例而言,控制器160根據(jù)指示將預寫數(shù)據(jù)集中的一第一預寫數(shù)據(jù)寫入第一邏輯地址H_1的一第一寫入命令,自第一區(qū)域R1選取被指派給第一邏輯地址H_1的一 第一三階數(shù)據(jù)區(qū)塊F_1、自第二區(qū)域R2選取與第一三階數(shù)據(jù)區(qū)塊F_1相隔N/3的一第二三階數(shù)據(jù)區(qū)塊F_301以及自第三區(qū)域R3選取與第一三階數(shù)據(jù)區(qū)塊F_1相隔2N/3的一第三三階數(shù)據(jù)區(qū)塊F_601,但本發(fā)明不限于此。接著,在步驟S608中,控制器160將欲寫的預寫數(shù)據(jù)以單階儲存模式寫入在步驟S606中所選取的三個三階數(shù)據(jù)區(qū)塊。接著,在步驟S610中,控制器160將已寫入預寫數(shù)據(jù)的三個三階數(shù)據(jù)區(qū)塊映射至子預寫數(shù)據(jù)段欲寫入的邏輯地址。舉例而言,當欲寫的預寫數(shù)據(jù)是指示要被寫入第一邏輯地址H_1的一第一預寫數(shù)據(jù)并且控制器160在步驟S606中所選取了與第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601時,控制器160將第一預寫數(shù)據(jù)以單階儲存模式寫入第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601。接著,控制器160將第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601映射至第一邏輯地址H_1。接著,在步驟S612中,控制器160判斷所分割的預寫數(shù)據(jù)是否全部被寫入三階數(shù)據(jù)區(qū)塊。當預寫數(shù)據(jù)全部被寫入三階數(shù)據(jù)區(qū)塊時,流程結(jié)束于步驟S602。當預寫數(shù)據(jù)尚未完全被寫入三階數(shù)據(jù)區(qū)塊時,流程回到步驟S606,以依照邏輯地址H_1~H_N的地址順序是續(xù)將剩下的預寫數(shù)據(jù)寫入三階數(shù)據(jù)區(qū)塊中。圖7是本發(fā)明的一種實施例的數(shù)據(jù)維護方法的流程圖。數(shù)據(jù)維護方法適用于圖1所示的數(shù)據(jù)儲存裝置140,其中數(shù)據(jù)維護方法用以在第二階段中,控制器160還用以將已寫入預寫數(shù)據(jù)的三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)依序整理至三階備用區(qū)塊TLC_SP_0~TLC_SP_M中的至少一個。流程開始于步驟S700。在步驟S700中,控制器160在三階儲存單元備用池TLC_POOL中選取一三階備用區(qū)塊。接著,在步驟S702中,控制器160將映射至一邏輯地址的三個三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以三階儲存單元模式整理至在步驟S700中所選取的三階備用區(qū)塊。接著,在步驟S704中,控制器160還用以將整理后的三階備用區(qū)塊映射至邏輯地址,并且釋放映射至邏輯地址的三個三階數(shù)據(jù)區(qū)塊。接著,在步驟S706中,控制器160判斷是否所有以單階儲存模式儲存于三階數(shù)據(jù)區(qū)塊中的預寫數(shù)據(jù)都已被整理至三階儲存單元。當所有以單階儲存模式儲存于三階數(shù)據(jù)區(qū)塊中的預寫數(shù)據(jù)都已被整理至三階儲存單元時,流程結(jié)束于步驟S706, 否則,流程會到步驟S700,控制器160繼續(xù)依照邏輯地址的地址的順序處理尚未被整理的三階數(shù)據(jù)區(qū)塊。舉例而言,控制器160在三階儲存單元備用池TLC_POOL中選取一第一三階備用區(qū)塊,以將映射至第一邏輯地址的第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以一三階儲存單元模式整理至第一三階備用區(qū)塊。接著,控制器160還用以將整理后的第一三階備用區(qū)塊映射至第一邏輯地址,并且釋放第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊。在整理完第一三階數(shù)據(jù)區(qū)塊、第二三階數(shù)據(jù)區(qū)塊以及第三三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)后,控制器160還用以在三階儲存單元備用池TLC_POOL中選取一第二三階備用區(qū)塊,以將映射至第二邏輯地址的第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以一三階儲存單元模式整理至第二三階備用區(qū)塊。接著,控制器160還用以將整理后的第二三階備用區(qū)塊映射至第二邏輯地址,并且釋放第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊。在整理完第四三階數(shù)據(jù)區(qū)塊、第五三階數(shù)據(jù)區(qū)塊以及第六三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)后,控制器160還用以在三階儲存單元備用池TLC_POOL中選取一第三三階備用區(qū)塊,以將映射至第三邏輯地址的第七三階數(shù)據(jù)區(qū)塊、第八三階數(shù)據(jù)區(qū)塊以及第九三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以三階儲存單元模式整理至第三三階備用區(qū)塊。接著,控制器160還用以將整理后的第三三階備用區(qū)塊映射至第三邏輯地址,并且釋放第七三階數(shù)據(jù)區(qū)塊、第八三階數(shù)據(jù)區(qū)塊以及第九三階數(shù)據(jù)區(qū)塊,依此類推直到所有已寫入子預寫數(shù)據(jù)段的三階數(shù)據(jù)區(qū)塊中之數(shù)據(jù)皆整理至三階備用區(qū)塊TLC_SP_0~TLC_SP_M中的至少一個。圖8A-8B是本發(fā)明的一種實施例的數(shù)據(jù)維護方法的流程圖。數(shù)據(jù)維護方法適用于圖1所示的數(shù)據(jù)儲存裝置140,其中數(shù)據(jù)維護方法用以在第二階段中,控制器160還用以將已寫入預寫數(shù)據(jù)的三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)依序整理至三階備用區(qū)塊TLC_SP_0~TLC_SP_M中的至少一個,其中將已被寫入預寫數(shù)據(jù)的三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)整理至三階備用區(qū)塊中的至少一個的步驟與根據(jù)指示對這些邏輯地址中的一個寫入的一使用者寫入命令所致能的一寫入步驟交錯的。換言之,控制器160根據(jù)指示對邏輯地址寫入的使用者寫入命令,將映射至使用者寫入命令所要求的邏輯地址的三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以三階儲存單元模式整理至第一三階備用區(qū)塊。流程開始于步驟S800。在步驟S800中,控制器160判斷是否接收到使用者要對邏輯地址進行寫入的使用者寫入命令。當控制器160接收到使用者要對邏輯地址進行寫入的使用者寫入 命令時,流程進行至步驟S802,否則,控制器160繼續(xù)判斷是否接收到使用者要對邏輯地址進行寫入的使用者寫入命令。在步驟S802中,控制器160根據(jù)指示對一特定邏輯地址寫入的使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一三階備用區(qū)塊,并且定位出被指派給特定邏輯地址的三階數(shù)據(jù)區(qū)塊所映射的邏輯地址。接著,在步驟S804中,控制器160將映射至在步驟S802中所定位的邏輯地址的三個三階數(shù)據(jù)區(qū)塊中的數(shù)據(jù)以三階儲存單元模式整理至在步驟S802中所選取的三階備用區(qū)塊。接著,在步驟S806中,控制器160還用以將在步驟S804中所整理的三階備用區(qū)塊映射至在步驟S802中所定位的邏輯地址,并且釋放原本映射至在步驟S802中所定位的邏輯地址三個三階數(shù)據(jù)區(qū)塊。接著,在步驟S808中,控制器160在單階備用儲存區(qū)塊池中選取三個單階儲存單元。接著,在步驟S810中,控制器160將使用者寫入命令所指示寫入特定邏輯地址的數(shù)據(jù)先以單階儲存單元的方式寫入在步驟S808中所選取的三個單階儲存單元。接著,在步驟S812中,控制器160在三階儲存單元備用池TLC_POOL選擇另一三階備用區(qū)塊。接著,在步驟S814中,控制器160將已寫入預定寫入特定邏輯地址的數(shù)據(jù)的三個單階儲存單元的數(shù)據(jù)以三階儲存單元模式整理至在步驟S812中所選取的三階備用區(qū)塊。接著,在步驟S816中,控制器160將在步驟S814中所整理的三階備用區(qū)塊與被指派給特定邏輯地址的三階數(shù)據(jù)區(qū)塊交換,以將被指派給特定邏輯地址的三階數(shù)據(jù)區(qū)塊推至三階儲存單元備用池TLC_POOL以及將在步驟S814中所整理的三階備用區(qū)塊映射至特定邏輯地址。舉例而言,控制器160在步驟S800中接收到對邏輯地址H_301(特定邏輯地址)進行寫入的第一使用者寫入命令。以圖5的實施例為例,控制器160根據(jù)指示對邏輯地址H_301寫入的第一使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一第一三階備用區(qū)塊TLC_SP_6,并且定位出被指派給邏輯地址H_301的第二三階數(shù)據(jù)區(qū)塊F_301所映射的第一邏輯地址H_1(步驟S802)。接著,控制器160將映射至第一邏輯地址H_1的第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601中的數(shù)據(jù)以三階儲 存單元模式整理至第一三階備用區(qū)塊TLC_SP_6(步驟S804)。接著,控制器160還用以將整理后的第一三階備用區(qū)塊TLC_SP_6映射至第一邏輯地址H_1,并且釋放第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601(步驟S806)。在整理完第一三階數(shù)據(jù)區(qū)塊F_1、第二三階數(shù)據(jù)區(qū)塊F_301以及第三三階數(shù)據(jù)區(qū)塊F_601中的數(shù)據(jù)后,控制器160根據(jù)第一使用者寫入命令,在單階備用儲存區(qū)塊池SLC_POOL中選取三個單階儲存單元(步驟S808),以將預定寫入邏輯地址H_301的數(shù)據(jù)先以單階儲存單元的方式寫入所選取的三個單階儲存單元(步驟S810)。接著,控制器160在三階儲存單元備用池TLC_POOL選擇一第四三階備用區(qū)塊TLC_11(步驟S812),以將已寫入預定寫入邏輯地址H_301的數(shù)據(jù)的三個單階儲存單元的數(shù)據(jù)以三階儲存單元模式整理至第四三階備用區(qū)塊TLC_11(步驟S814)。接著,控制器160將已整理的第四三階備用區(qū)塊TLC_11與第二三階數(shù)據(jù)區(qū)塊F_301交換,以將被指派給邏輯地址H_301的第二三階數(shù)據(jù)區(qū)塊F_301推至三階儲存單元備用池TLC_POOL以及將已整理的第四三階備用區(qū)塊TLC_11映射至邏輯地址H_301(步驟S816)。接著,流程回到步驟S800,控制器160繼續(xù)判斷是否接收到使用者寫入命令。值得注意的是,在其他實施例中當控制器160并未接收到使用者寫入命令時,控制器160亦可在數(shù)據(jù)儲存裝置140閑置時,在背景執(zhí)行圖7所示的方法。換言之,圖7所示以及圖8A-8B所示的數(shù)據(jù)維護方法可并行。綜上所述,本發(fā)明所提供的數(shù)據(jù)儲存裝置以及數(shù)據(jù)維護方法可以一既定順序選取單階儲存單元以暫存將儲存于三階儲存單元的數(shù)據(jù)。本發(fā)明的方法,或特定型態(tài)或其部份,可以以程序碼的型態(tài)存在。程序碼可儲存于實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限于外在形式的電腦程序產(chǎn)品,其中,當程序碼被機器,如電腦載入且執(zhí)行時,此機器變成用以參與本發(fā)明的裝置。程序碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態(tài)進行傳送,其中,當程序碼被機器,如電腦接收、載入且執(zhí)行時,此機器變成用以參與本發(fā)明的裝置。當在一般用途處理單元實作時,程序碼結(jié)合處理單元提供一操作類似于應用特定邏輯電路的獨特裝置。以上所述,僅為本發(fā)明的較佳實施例而已,當不能以此限定本發(fā)明實施的范圍,即凡依本發(fā)明申請專利范圍及發(fā)明說明內(nèi)容所作的簡單的等效變化與修飾,皆仍屬本發(fā)明專利涵蓋的范圍內(nèi)。另外本發(fā)明的任一實施例或申請專利范圍不須達成本發(fā) 明所揭示的全部目的或優(yōu)點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,并非用來限制本發(fā)明的權利范圍。當前第1頁1 2 3 當前第1頁1 2 3