欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)儲存裝置及其數(shù)據(jù)維護方法與流程

文檔序號:12063269閱讀:277來源:國知局
數(shù)據(jù)儲存裝置及其數(shù)據(jù)維護方法與流程

本發(fā)明有關(guān)于一種數(shù)據(jù)儲存裝置,特別有關(guān)于以序號維護的數(shù)據(jù)儲存裝置。



背景技術(shù):

快閃存儲器為一種普遍的非揮發(fā)性數(shù)據(jù)儲存裝置,是以電性方式抹除與程式化。以與非門型的快閃存儲器(即NAND FLASH)為例,常用作記憶卡(memory card)、通用串行總線閃存裝置(USB flash device)、固態(tài)硬碟(SSD)、嵌入式快閃存儲器模塊(eMMC)…等使用。

快閃存儲器(如,NAND FLASH)的儲存陣列包括多個區(qū)塊(blocks),其中浮置柵極晶體管可用以構(gòu)成快閃存儲器。浮置柵極晶體管中的浮置柵極,可捕捉的電荷以儲存數(shù)據(jù)。另外,快閃存儲器中的實體頁面與主機裝置所指定的邏輯頁面的轉(zhuǎn)換關(guān)系需要一個實體轉(zhuǎn)邏輯表記錄。當非預期的斷電事件發(fā)生時,儲存于隨機存儲器中的實體轉(zhuǎn)邏輯表會丟失。如何有效重建實體轉(zhuǎn)邏輯表是一個重要的課題。



技術(shù)實現(xiàn)要素:

本發(fā)明所提供的數(shù)據(jù)儲存裝置以及數(shù)據(jù)維護方法可將寫入指令的順序記錄于頁面中。

本發(fā)明提供一種數(shù)據(jù)儲存裝置。數(shù)據(jù)儲存裝置包括一快閃存儲器,包括多個區(qū)塊,每一區(qū)塊包括多個頁面。控制器依序接收多個寫入指令,根據(jù)接收寫入指令的順序,分配寫入指令不同的多個寫入序號,根據(jù)寫入指令,依序?qū)⒍喙P數(shù)據(jù)以及目前所執(zhí)行的寫入指令的寫入序號寫入?yún)^(qū)塊中的一第一目前區(qū)塊以及一第二目前區(qū)塊的頁面中。

在一實施例中,寫入指令還包括數(shù)據(jù)的多個邏輯地址,控制器還將數(shù)據(jù)所相應(yīng)的邏輯地址寫入第一目前區(qū)塊以及第二目前區(qū)塊的頁面中。

又另一實施例中,控制器還根據(jù)寫入指令判斷寫入指令所指示寫入的數(shù)據(jù)的一型態(tài)為一連續(xù)型態(tài)或者一隨機型態(tài),并且將屬于連續(xù)型態(tài)的數(shù)據(jù)寫入第一目前區(qū)塊中的頁面,將屬于隨機型態(tài)的數(shù)據(jù)寫入第二目前區(qū)塊中的頁面。

詳細而言,當控制器接收寫入指令中用以寫入數(shù)據(jù)中的多筆第一數(shù)據(jù)的一第一寫入指令時,控制器根據(jù)接收第一寫入指令的順序分配寫入序號中一第一寫入序號給第一寫入指令,根據(jù)第一寫入指令以及型態(tài)依序?qū)⒌谝粩?shù)據(jù)、第一寫入序號以及第一數(shù)據(jù)所相應(yīng)的邏輯地址寫入第一目前區(qū)塊以及第二目前區(qū)塊中的多個第一頁面,其中每一第一頁面包括第一數(shù)據(jù)中的一者、第一寫入序號以及邏輯地址中的一者。

本發(fā)明另提供一種數(shù)據(jù)儲存裝置。數(shù)據(jù)儲存裝置包括一快閃存儲器以及一控制器??扉W存儲器包括多個區(qū)塊,每一區(qū)塊包括多個頁面,每一頁面具有一備用區(qū)域。控制器用以當發(fā)生一斷電事件并且數(shù)據(jù)儲存裝置恢復電力后,依序讀取區(qū)塊中的一第一目前區(qū)塊以及一第二目前區(qū)塊中的頁面所儲存的多個邏輯地址以及多個寫入序號,以建立一實體轉(zhuǎn)邏輯對應(yīng)表,其中當控制器在讀取第一目前區(qū)塊以及第二目前區(qū)塊的過程中檢測到第一目前區(qū)塊或者第二目前區(qū)塊中的一特定頁面損壞時,控制器舍棄特定頁面并且讀取特定頁面中的寫入序號以及邏輯地址,以將寫入序號大于特定頁面的寫入序號的頁面舍棄并且將寫入序號等于特定頁面的寫入序號并且邏輯地址大于特定頁面的邏輯地址的頁面舍棄。

在另一實施例中,當特定頁面的寫入序號以及邏輯地址無法被成功讀取時,控制器舍棄特定頁面并且讀取位于特定頁面之前的一參考特定頁面的寫入序號以及邏輯地址,以將寫入序號大于參考特定頁面的寫入序號的頁面舍棄并且將寫入序號等于特定頁面的寫入序號并且邏輯地址大于參考特定頁面的邏輯地址的頁面舍棄。

本發(fā)明亦提供一種數(shù)據(jù)儲存裝置。數(shù)據(jù)儲存裝置包括一快閃存儲器以及一控制器??扉W存儲器包括多個區(qū)塊,每一區(qū)塊包括多個頁面,每一頁面具有一備用區(qū)域??刂破饔靡援敯l(fā)生一斷電事件并且數(shù)據(jù)儲存裝置恢復電力后,依序讀取區(qū)塊中的一第一目前區(qū)塊以及一第二目前區(qū)塊中的頁面所儲存的多個邏輯地址以及多個寫入序號,以建立一實體轉(zhuǎn)邏輯對應(yīng)表,其中當控制器在讀取第一目前區(qū)塊以及第二目前區(qū)塊的過程中檢測到第一目前區(qū)塊以及第二目前區(qū)塊中存在具有相同邏輯地址的頁面時,控制器比較具有相同邏輯地址的頁面的寫入序號,并且將具有較小寫入序號的頁面舍棄。

本發(fā)明另提供一種數(shù)據(jù)維護方法,適用于包括一快閃存儲器的一數(shù)據(jù)儲存裝置,快閃存儲器包括多個區(qū)塊,每一區(qū)塊包括多個頁面。數(shù)據(jù)維護方法包括:依序接收多個寫入指令;根據(jù)接收寫入指令的順序,分配寫入指令不同的多個寫入序號;以及根據(jù)寫入指令,依序?qū)⒍喙P數(shù)據(jù)以及目前所執(zhí)行的寫入指令的寫入序號寫入?yún)^(qū)塊中的一第一目前區(qū)塊以及一第二目前區(qū)塊的頁面中。

在一實施例中,寫入指令還包括數(shù)據(jù)的多個邏輯地址,并且數(shù)據(jù)維護方法還包括將數(shù)據(jù)所相應(yīng)的邏輯地址寫入第一目前區(qū)塊以及第二目前區(qū)塊的頁面中。

另外,將數(shù)據(jù)以及目前所執(zhí)行的寫入指令的寫入序號寫入?yún)^(qū)塊中的第一目前區(qū)塊以及第二目前區(qū)塊的頁面中的步驟還包括:根據(jù)所接收寫入指令中用以寫入數(shù)據(jù)中的多個第一數(shù)據(jù)的一第一寫入指令的順序,分配寫入序號中的一第一寫入序號給第一寫入指令;根據(jù)寫入指令,判斷寫入指令所指示寫入的數(shù)據(jù)的一型態(tài)為一連續(xù)型態(tài)或者一隨機型態(tài);當數(shù)據(jù)屬于連續(xù)型態(tài)時,將第一數(shù)據(jù)、第一寫入序號以及第一數(shù)據(jù)所相應(yīng)的邏輯地址寫入第一目前區(qū)塊中的多個第一頁面;以及當數(shù)據(jù)屬于隨機型態(tài)時,將寫入第二目前區(qū)塊中的頁面,將第一數(shù)據(jù)、第一寫入序號以及第一數(shù)據(jù)所相應(yīng)的邏輯地址寫入第二目前區(qū)塊中的至少一第二頁面,其中每一第一頁面以及第二頁面包括邏輯地址中的一者、第一寫入序號以及第一數(shù)據(jù)中的一者。

本發(fā)明亦提供一種數(shù)據(jù)維護方法,適用于包括一快閃存儲器的一數(shù)據(jù)儲存裝置,快閃存儲器包括多個區(qū)塊,每一區(qū)塊包括多個頁面。數(shù)據(jù)維護方法包括:當發(fā)生一斷電事件并且數(shù)據(jù)儲存裝置恢復電力后,依序讀取區(qū)塊中的一第一目前區(qū)塊以及一第二目前區(qū)塊中的頁面所儲存的多個邏輯地址以及多個寫入序號,以建立一實體轉(zhuǎn)邏輯對應(yīng)表;在讀取第一目前區(qū)塊以及第二目前區(qū)塊時,檢測頁面是否損壞。

當檢測到第一目前區(qū)塊或者第二目前區(qū)塊中的一特定頁面損壞時,舍棄特定頁面并且將特定頁面的寫入序號與第一目前區(qū)塊以及上二目前區(qū)塊中的其他頁面的寫入序號進行比較;將寫入序號大于特定頁面的寫入序號的頁面舍棄;當特定頁面的寫入序號等于第一目前區(qū)塊以及第二目前區(qū)塊中的至少一第三頁面時,將特定頁面的邏輯地址與第三頁面的邏輯地址進行比較;以及將邏輯地址大于特定頁面的邏輯地址的第三頁面舍棄。

在另一實施例中,數(shù)據(jù)維護方法還包括:當特定頁面的寫入序號以及邏輯地址無法被成功讀取時,舍棄特定頁面并且將位于特定頁面之前的一參考特定頁面的寫入序號與第一目前區(qū)塊以及上二目前區(qū)塊中的其他頁面的寫入序號進行比較;將寫 入序號大于參考特定頁面的寫入序號的頁面舍棄;當參考特定頁面的寫入序號等于第一目前區(qū)塊以及第二目前區(qū)塊中的至少一第四頁面時,將參考特定頁面的邏輯地址與第四頁面的邏輯地址進行比較;以及將邏輯地址大于參考特定頁面的邏輯地址的第四頁面舍棄。

本發(fā)明亦提供一種數(shù)據(jù)維護方法,適用于包括一快閃存儲器的一數(shù)據(jù)儲存裝置,快閃存儲器包括多個區(qū)塊,每一區(qū)塊包括多個頁面。數(shù)據(jù)維護方法包括:當發(fā)生一斷電事件并且數(shù)據(jù)儲存裝置恢復電力后,依序讀取區(qū)塊中的一第一目前區(qū)塊以及一第二目前區(qū)塊中的頁面所儲存的多個邏輯地址以及多個寫入序號,以建立一實體轉(zhuǎn)邏輯對應(yīng)表;在讀取第一目前區(qū)塊以及第二目前區(qū)塊的過程中,檢測到第一目前區(qū)塊以及第二目前區(qū)塊中是否存在具有相同邏輯地址的頁面;當讀取第一目前區(qū)塊以及第二目前區(qū)塊的過程中檢測到第一目前區(qū)塊以及第二目前區(qū)塊中存在具有相同邏輯地址的頁面時,比較具有相同邏輯地址的頁面的寫入序號;以及將具有較小寫入序號的頁面舍棄。

附圖說明

圖1為本發(fā)明所提供的一電子系統(tǒng)的一種實施例的方塊圖。

圖2為本發(fā)明所提供的一快閃存儲器的一種實施例的方塊圖。

圖3為本發(fā)明所提供的一目前區(qū)塊的一種實施例的方塊圖。

圖4為本發(fā)明所提供的一數(shù)據(jù)維護方法的一種實施例的流程圖。

圖5為本發(fā)明所提供的一數(shù)據(jù)維護方法的另一種實施例的流程圖。

圖6A-6B為本發(fā)明所提供的一數(shù)據(jù)維護方法的另一種實施例的流程圖。

圖7A-7B為本發(fā)明所提供的一數(shù)據(jù)維護方法的另一種實施例的流程圖。

符號說明

100 電子系統(tǒng);

120 主機;

140 數(shù)據(jù)儲存裝置;

160 控制器;

162 運算單元;

164 永久存儲器;

166 隨機存取存儲器;

180 快閃存儲器;

TB1 數(shù)據(jù)鏈結(jié)關(guān)系表;

SPA0-SPAN 備用區(qū)域;

P0-PN 頁面;

B0~BN 區(qū)塊;

CB0 第一目前區(qū)塊;

CB1 第二目前區(qū)塊;

D1~D4 數(shù)據(jù);

AD1~AD10 邏輯地址;

1~4 寫入序號;

S400~S412、S500~S510、S600~S620、S700~S730 步驟。

具體實施方式

以下將詳細討論本發(fā)明各種實施例的裝置及使用方法。然而值得注意的是,本發(fā)明所提供的許多可行的發(fā)明概念可實施在各種特定范圍中。這些特定實施例僅用于舉例說明本發(fā)明的裝置及使用方法,但非用于限定本發(fā)明的范圍。

圖1為本發(fā)明所提供的一電子系統(tǒng)的一種實施例的方塊圖。電子系統(tǒng)100包括一主機120以及一數(shù)據(jù)儲存裝置140。數(shù)據(jù)儲存裝置140包括一快閃存儲器180以及一控制器160,且可根據(jù)主機120所下達的命令操作。控制器160包括一運算單元162、一永久存儲器(如,只讀存儲器ROM)164以及隨機存取存儲器(RAM)166。永久存儲器164與所載的程式碼、數(shù)據(jù)組成固件(firmware),由運算單元162執(zhí)行,使控制器160基于該固件控制該快閃存儲器180。隨機存取存儲器(RAM)166用以載入程式碼與參數(shù)以提供控制器160根據(jù)所載入的程式碼與參數(shù)動作。快閃存儲器180包括多個區(qū)塊,每一區(qū)塊包括多個頁面P0~PN,其中每一頁面P0~PN具有一備用區(qū)域(Spare Area)SPA0~SPAN,如圖2所示。值得注意的是,快閃存儲器180以區(qū)塊為最小單位進行抹除,并且頁面為最小單位進行寫入。另外,備用區(qū)域SPA0~SPAN可在其所相應(yīng)的頁面的前方或者后方,本發(fā)明不限于此。在其他實施例中,備用區(qū)域SPA0~SPAN亦可位于區(qū)塊B0~BN的前端或者后端。值得注意的是,在一實施例中,具有有效數(shù)據(jù)的每一頁面的備用區(qū)域中包括一邏輯地址以及一 寫入序號??扉W存儲器180還包括一數(shù)據(jù)鏈結(jié)關(guān)系表TB1,用以記錄快閃存儲器180中所有區(qū)塊以及頁面的邏輯地址以及實體地址的對應(yīng)關(guān)系。

在一實施例中,控制器160依序接收多個寫入指令,根據(jù)接收寫入指令的順序,分配寫入指令不同的多個寫入序號。另外,控制器160還根據(jù)寫入指令,依序?qū)⒍喙P數(shù)據(jù)以及目前所執(zhí)行的寫入指令的寫入序號寫入?yún)^(qū)塊中的一第一目前區(qū)塊以及一第二目前區(qū)塊的頁面中。在一實施例中,控制器160是根據(jù)寫入指令,判斷寫入指令所指示寫入的數(shù)據(jù)的一型態(tài)為一連續(xù)型態(tài)或者一隨機型態(tài),并且將屬于連續(xù)型態(tài)的數(shù)據(jù)寫入第一目前區(qū)塊CB0中的頁面,將屬于隨機型態(tài)的數(shù)據(jù)寫入第二目前區(qū)塊CB1中的頁面。舉例而言,當寫入指令所指示寫入的數(shù)據(jù)的總長度大于一個頁面的數(shù)據(jù)量時,控制器160判斷該寫入指令的數(shù)據(jù)為連續(xù)型態(tài)。當寫入指令所指示寫入的數(shù)據(jù)的總長度小于等于一個頁面的數(shù)據(jù)量時,控制器160判斷該寫入指令的數(shù)據(jù)為隨機型態(tài),但本發(fā)明不限于此。值得注意的是,當寫入指令的數(shù)據(jù)為連續(xù)型態(tài),但這些數(shù)據(jù)中具有無法寫滿一個頁面的數(shù)據(jù)的數(shù)據(jù)時,控制器160判斷該無法寫滿一個頁面的數(shù)據(jù)為隨機型態(tài)。在另一實施例中,控制器160還將數(shù)據(jù)所相應(yīng)的邏輯地址寫入第一目前區(qū)塊以及第二目前區(qū)塊的頁面中。詳細而言,在寫入數(shù)據(jù)的過程中,控制器160會自快閃存儲器180的區(qū)塊B0~BN中選取兩個可使用的區(qū)塊以作為一第一目前區(qū)塊CB0以及一第二目前區(qū)塊CB1,并且在隨機存取存儲器166中建立一實體轉(zhuǎn)邏輯對應(yīng)表以記錄第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1的頁面的實體地址與數(shù)據(jù)的頁面的邏輯地址的對應(yīng)關(guān)系,如圖3所示。第一目前區(qū)塊CB0是用以儲存連續(xù)型態(tài)的數(shù)據(jù),并且第二目前區(qū)塊CB1是用以儲存隨機型態(tài)的數(shù)據(jù)。當?shù)谝荒壳皡^(qū)塊CB0以及第二目前區(qū)塊CB1已經(jīng)被寫滿(無法再寫入新的數(shù)據(jù)時),控制器160將實體轉(zhuǎn)邏輯對應(yīng)表整理至數(shù)據(jù)鏈結(jié)關(guān)系表TB1,將第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1定義為數(shù)據(jù)母區(qū)塊,重新自快閃存儲器180的區(qū)塊B0~BN中選取兩個可使用的區(qū)塊以作為新的第一目前區(qū)塊CB0以及新的第二目前區(qū)塊CB1,并且在隨機存取存儲器166中建立新的一實體轉(zhuǎn)邏輯對應(yīng)表以記錄新的第一目前區(qū)塊CB0以及新的第二目前區(qū)塊CB1的頁面的實體地址與數(shù)據(jù)的頁面的邏輯地址的對應(yīng)關(guān)系。

圖3為本發(fā)明所提供的一目前區(qū)塊的一種實施例的方塊圖。在本實施例中,快閃存儲器180中的每一區(qū)塊B0~BN包括16個頁面P0~P15,每一頁面P0~P15具有一個相應(yīng)的備用區(qū)域SPA0~SPA15,但本發(fā)明不限于此。因此,控制器160所選 擇的第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1也同樣分別包括16個頁面P0~P15以及16個備用區(qū)域SPA0~SPA15。

舉例而言,當控制器160接收到用以寫入一第一數(shù)據(jù)D1的一第一寫入指令時,控制器160根據(jù)接收第一寫入指令的順序分配一第一寫入序號給第一寫入指令。舉例而言,當?shù)谝粚懭胫噶钍强刂破?60選取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1后所接收到的第一個寫入指令時,控制器160分配”1”以作為第一寫入指令的寫入序號。值得注意的是,第一寫入指令包括第一數(shù)據(jù)D1的邏輯地址AD1。接著,由于第一寫入指令所指示寫入的第一數(shù)據(jù)D1的長度小于等于一頁面的大小,因此控制器160判斷第一數(shù)據(jù)D1的型態(tài)為隨機型態(tài)。接著,控制器160將第一數(shù)據(jù)D1、第一寫入序號”1”以及邏輯地址AD1寫入第二目前區(qū)塊CB1中的頁面P0中。最后,控制器160在實體轉(zhuǎn)邏輯對應(yīng)表中記錄邏輯地址AD1與第二目前區(qū)塊CB1中的頁面P0的實體地址對應(yīng)關(guān)系。

接著,控制器160接收到用以寫入多個第二數(shù)據(jù)D2的一第二寫入指令??刂破?60根據(jù)接收第二寫入指令的順序分配一第二寫入序號給第二寫入指令。由于第二寫入指令是在第一寫入指令之后所接收到的,所以控制器160分配”2”以作為第二寫入指令的寫入序號。值得注意的是,其中第二寫入指令包括第二數(shù)據(jù)D1的邏輯地址AD2~AD5。接著,由于第二寫入指令所指示寫入的第二數(shù)據(jù)D2的總長度大于一頁面的大小,因此控制器160判斷第二數(shù)據(jù)D2的型態(tài)為連續(xù)型態(tài)。接著,控制器160依序?qū)⒌诙?shù)據(jù)D2、第二寫入序號”2”以及邏輯地址AD2~AD5寫入第一目前區(qū)塊CB0中的頁面P0~P3中。詳細而言,控制器160將第二數(shù)據(jù)D2中的第一者、第二寫入序號”2”以及邏輯地址AD2寫入第一目前區(qū)塊CB0中的頁面P0、將第二數(shù)據(jù)D2中的第二者、第二寫入序號”2”以及邏輯地址AD3寫入第一目前區(qū)塊CB0中的頁面P1、將第二數(shù)據(jù)D2中的第三者、第二寫入序號”2”以及邏輯地址AD4寫入第一目前區(qū)塊CB0中的頁面P2,依此類推。最后,控制器160在實體轉(zhuǎn)邏輯對應(yīng)表中記錄邏輯地址AD2~AD5與第一目前區(qū)塊CB0中的頁面P0~P3的實體地址對應(yīng)關(guān)系。

接著,控制器160接收到用以寫入多個第三數(shù)據(jù)D3的一第三寫入指令??刂破?60根據(jù)接收第三寫入指令的順序分配一第三寫入序號給第三寫入指令。由于第三寫入指令是在第二寫入指令之后所接收到的,所以控制器160分配”3”以作為第三寫入指令的寫入序號。值得注意的是,其中第三寫入指令包括第三數(shù)據(jù)D3的 邏輯地址AD6~AD10。接著,由于第三寫入指令所指示寫入的第三數(shù)據(jù)D3的總長度大于一頁面的大小,因此控制器160判斷第三數(shù)據(jù)D3的型態(tài)為連續(xù)型態(tài)。然而,第一個第三數(shù)據(jù)D3以及最后一個第三數(shù)據(jù)D3的數(shù)據(jù)量小于一個頁面的大小,因此第一個第三數(shù)據(jù)D3以及最后一個第三數(shù)據(jù)D3被定義為隨機型態(tài),并且除了第一個第三數(shù)據(jù)D3以及最后一個第三數(shù)據(jù)D3外,其他第三數(shù)據(jù)D3為連續(xù)型態(tài)。舉例而言,每一頁面P0~P15的數(shù)據(jù)量為16K,其中第一頁面的地址為0~15K、第二頁面的地址為16~32K,依此類推。當?shù)谝粋€第三數(shù)據(jù)D3的起始邏輯地址AD6為8K時,第一個第三數(shù)據(jù)D3的數(shù)據(jù)則用以儲存在8~15K的地址,故第一個第三數(shù)據(jù)D3的數(shù)據(jù)量小于一個頁面的大小,邏輯地址為AD6的第三數(shù)據(jù)D3為隨機型態(tài)。接著,控制器160將定義為隨機型態(tài)的第一個以及最后一個第三數(shù)據(jù)D3、第三寫入序號”3”以及邏輯地址AD6、AD10分別寫入第二目前區(qū)塊CB1中的頁面P1以及頁面P2中,并且依序?qū)⒈欢x為連續(xù)型態(tài)的第三數(shù)據(jù)D3、第三寫入序號”3”以及邏輯地址AD7~AD9寫入第一目前區(qū)塊CB0的頁面P4~P6中。詳細而言,控制器160將第三數(shù)據(jù)D3中的第一者、第三寫入序號”3”以及邏輯地址AD6寫入第二目前區(qū)塊CB1中的頁面P1、將第三數(shù)據(jù)D3中的第二者、第三寫入序號”3”以及邏輯地址AD7寫入第一目前區(qū)塊CB0中的頁面P4、將第三數(shù)據(jù)D3中的第三者、第三寫入序號”3”以及邏輯地址AD8寫入第一目前區(qū)塊CB0中的頁面P5,依此類推。最后,控制器160在實體轉(zhuǎn)邏輯對應(yīng)表中記錄邏輯地址AD6~AD9與第一目前區(qū)塊CB0與第二目前區(qū)塊CB1中的實體地址的對應(yīng)關(guān)系。

最后,控制器160接收到用以寫入一第四數(shù)據(jù)D4的一第四寫入指令時,控制器160根據(jù)接收第四寫入指令的順序分配一第四寫入序號給第四寫入指令。由于第四寫入指令是在第三寫入指令之后所接收到的,所以控制器160分配”4”以作為第四寫入指令的寫入序號。值得注意的是,第四寫入指令包括第四數(shù)據(jù)D4的邏輯地址AD2。接著,由于第四寫入指令所指示寫入的第四數(shù)據(jù)D4的長度小于等于一頁面的大小,因此控制器160判斷第四數(shù)據(jù)D4的型態(tài)為隨機型態(tài)。接著,控制器160將第四數(shù)據(jù)D4、第四寫入序號”4”以及邏輯地址AD2寫入第二目前區(qū)塊CB1中的頁面P3中。最后,由于第四數(shù)據(jù)D4的邏輯地址AD2與已儲存第一目前區(qū)塊CB0的頁面P0的于第二數(shù)據(jù)D2的邏輯地址AD2相同。因此,控制器160在寫入第四數(shù)據(jù)D4之后,會將實體轉(zhuǎn)邏輯對應(yīng)表中邏輯地址AD2所相應(yīng)的實體地址更新為第二目前區(qū)塊CB1的頁面P3。藉由上述流程可知,每一具有有效數(shù)據(jù)的頁面 包括數(shù)據(jù)中之一者、一寫入序號以及該數(shù)據(jù)所相應(yīng)的一邏輯地址。另外,本發(fā)明所提供的控制器160可將相應(yīng)于寫入指令的順序的寫入序號導入快閃存儲器180中。

當發(fā)生一斷電事件時,隨機存取存儲器166中所儲存的實體轉(zhuǎn)邏輯對應(yīng)表會因為電力消失而丟失。因此當發(fā)生一斷電事件并且數(shù)據(jù)儲存裝置140恢復電力后,控制器160需要依序讀取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的頁面以重新在隨機存取存儲器166中建立一實體轉(zhuǎn)邏輯對應(yīng)表。此時,控制器160可藉由先前所導入的寫入序號,成功辨認在不同的目前區(qū)塊中具有相同邏輯地址的數(shù)據(jù)的寫入順序,以在實體轉(zhuǎn)邏輯對應(yīng)表中建入最后寫入的數(shù)據(jù),并且將較舊的數(shù)據(jù)舍棄。換言之,控制器160不會將較舊的數(shù)據(jù)建入實體轉(zhuǎn)邏輯對應(yīng)表中。另外,當?shù)谝荒壳皡^(qū)塊CB0以及第二目前區(qū)塊CB1中的頁面因為非預期的斷電事件損壞時,控制器160亦可成功辨認與損壞頁面儲存于不同目前區(qū)塊并且在損壞頁面之后所寫入的頁面丟棄。

詳細而言,在一實施例中,當控制器160在讀取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1的過程中檢測到第一目前區(qū)塊CB0或者第二目前區(qū)塊CB1中的一特定頁面損壞時,控制器160將損壞的特定頁面舍棄并且讀取特定頁面的寫入序號以及邏輯地址,以將寫入序號大于特定頁面的寫入序號的頁面舍棄并且將寫入序號等于特定頁面的寫入序號并且邏輯地址大于特定頁面的邏輯地址的頁面舍棄。另外,當特定頁面的寫入序號以及邏輯地址無法被成功讀取時,控制器160將損壞的特定頁面舍棄并且讀取位于特定頁面之前的一參考特定頁面的寫入序號以及邏輯地址,以將寫入序號大于參考特定頁面的寫入序號的頁面舍棄并且將寫入序號等于特定頁面的寫入序號并且邏輯地址大于參考特定頁面有邏輯地址的頁面舍棄。

以圖3為例,當?shù)谝荒壳皡^(qū)塊CB0的頁面P5的數(shù)據(jù)D3由于斷電事件損壞時,將損壞的頁面P5以及在頁面P5中的數(shù)據(jù)D3之后被寫入第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1的數(shù)據(jù)皆要被舍棄。詳細而言,當控制器160在讀取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1的過程中檢測到第一目前區(qū)塊CB0中的頁面P5損壞時,控制器160將損壞的頁面P5舍棄并且讀取第一目前區(qū)塊CB0的頁面P5的寫入序號。接著,控制器160將第一目前區(qū)塊CB0的頁面P5中的寫入序號”3”與第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的其他頁面的寫入序號進行比較。由于第二目前區(qū)塊CB1中的頁面P4的寫入序號為4,故控制器160將寫入序號大于頁面P5中的寫入序號”3”的第二目前區(qū)塊CB1中的頁面P4舍棄。接著,控制 器160檢測到第一目前頁面CB0中的頁面P4以及頁面P6以及第二目前頁面CB1中的頁面P1~P2中的寫入序號與第一目前區(qū)塊CB0的頁面P5的寫入序號相同??刂破?60讀取第一目前區(qū)塊CB0的頁面P5中的邏輯地址”AD8”,并且將第一目前區(qū)塊CB0的頁面P5中的邏輯地址”AD8”與第一目前頁面CB0中的頁面P4、P6以及第二目前頁面CB1中的頁面P1~P2的邏輯地址進行比較。由于第一目前區(qū)塊CB0中的頁面P4的邏輯地址為AD7、第一目前區(qū)塊CB0中的頁面P6的寫入序號為AD9、第二目前區(qū)塊CB1中的頁面P2的寫入序號為AD10,故控制器160將邏輯地址大于頁面P5中的邏輯地址”AD8”的第一目前區(qū)塊CB0中的頁面P6以及第二目前區(qū)塊CB1中的頁面P2舍棄。

當?shù)谝荒壳皡^(qū)塊CB0中損壞的頁面P5的寫入序號以及邏輯地址無法被成功讀取時,控制器160將損壞的頁面P5舍棄并且將位于第一目前區(qū)塊CB0的頁面P5的實體地址前的第一目前區(qū)塊CB0的頁面P4作為一參考特定頁面。控制器160讀取第一目前區(qū)塊CB0的頁面P4的寫入序號。接著,控制器160將第一目前區(qū)塊CB0的頁面P4中的寫入序號”3”與第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的其他頁面的寫入序號進行比較。由于第二目前區(qū)塊CB1中的頁面P4的寫入序號為4,故控制器160將寫入序號大于頁面P5中的寫入序號”3”的第二目前區(qū)塊CB1中的頁面P4舍棄。接著,控制器160檢測到第一目前頁面CB0中的頁面P6以及第二目前頁面CB1中的頁面P1~P2中的寫入序號與第一目前區(qū)塊CB0的頁面P4的寫入序號相同??刂破?60讀取第一目前區(qū)塊CB0的頁面P4中的邏輯地址”AD7”,并且將與第一目前頁面CB0中的頁面P6以及第二目前頁面CB1中的頁面P1~P2的邏輯地址進行比較。由于第一目前區(qū)塊CB0中的頁面P6的寫入序號為AD9、第二目前區(qū)塊CB1中的頁面P2的寫入序號為AD10,故控制器160將邏輯地址大于頁面P4中的邏輯地址”AD7”的第一目前區(qū)塊CB0中的頁面P6以及第二目前區(qū)塊CB1中的頁面P2舍棄。如上所述,當?shù)谝荒壳皡^(qū)塊CB0以及第二目前區(qū)塊CB1中的頁面因為非預期的斷電事件損壞時,控制器160亦可成功辨認與損壞頁面儲存于不同目前區(qū)塊并且在損壞頁面之后所寫入的頁面丟棄。在本實施例中,若是沒有寫入序號,控制器160則無法判斷第二目前區(qū)塊CB1中的頁面P2是在損壞的第一目前區(qū)塊CB0的頁面P5之后寫入的。

在另一實施例中,當控制器160在讀取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1的過程中檢測到第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中存在具有相同邏 輯地址的頁面時,控制器160比較具有相同邏輯地址的頁面的寫入序號,并且將具有較小寫入序號的頁面舍棄。

以圖3為例,當控制器160在讀取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1的過程中檢測到第一目前區(qū)塊CB0的頁面P0以及第二目前區(qū)塊CB1的頁面P3具有相同的邏輯地址”AD2”。控制器160比較第一目前區(qū)塊CB0的頁面P0以及第二目前區(qū)塊CB1的頁面P3的寫入序號。在本實施例中,第一目前區(qū)塊CB0的頁面P0的寫入序號為”2”并且第二目前區(qū)塊CB1的頁面P3的寫入序號為”4”。接著,控制器160將具有較小寫入序號的第一目前區(qū)塊CB0的頁面P0舍棄。如上所述,控制器160可藉由先前所導入的寫入序號,成功辨認在不同的目前區(qū)塊中具有相同邏輯地址的數(shù)據(jù)的寫入順序,以在實體轉(zhuǎn)邏輯對應(yīng)表中建入最后寫入的數(shù)據(jù),并且將較舊的數(shù)據(jù)舍棄。

圖4為本發(fā)明所提供的一數(shù)據(jù)維護方法的一種實施例的流程圖。數(shù)據(jù)維護方法適用于圖1所示的數(shù)據(jù)儲存裝置140,并且圖4所示的數(shù)據(jù)維護方法是將數(shù)據(jù)寫入快閃存儲器180。流程開始于步驟S400。

在步驟S400中,控制器160判斷是否接收到一寫入指令。當控制器160接收到寫入指令時,流程進行至步驟S402;否則,流程回到步驟S400,控制器160繼續(xù)判斷是否接收到一寫入指令。值得注意的是,寫入指令包括至少一邏輯地址,并且寫入指令是用以指示控制器160將至少一數(shù)據(jù)寫入所具有的邏輯地址中。

接著,在步驟S402中,控制器160根據(jù)接收寫入指令的順序,分配一寫入序號給寫入指令。以圖3為例,當控制器160接收到用以寫入一第一數(shù)據(jù)D1的一第一寫入指令時,控制器160根據(jù)接收第一寫入指令的順序分配一第一寫入序號給第一寫入指令,其中第一寫入指令是控制器160選取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1后所接收到的第一個寫入指令時,故控制器160分配”1”以作為第一寫入指令的寫入序號。當控制器160在第一寫入指令之后接收到一第二寫入指令,控制器160則根據(jù)接收第二寫入指令的順序分配一第二寫入序號給第二寫入指令,其中由于第二寫入指令是在第一寫入指令之后所接收到的,所以控制器160分配”2”以作為第二寫入指令的寫入序號。當控制器160在第二寫入指令之后接收到一第三寫入指令,控制器160則根據(jù)接收第三寫入指令的順序分配一第三寫入序號給第三寫入指令,其中由于第三寫入指令是在第二寫入指令之后所接收到的,所以控 制器160分配”3”以作為第三寫入指令的寫入序號,依此類推。值得注意的是,寫入序號是用以代表寫入指令執(zhí)行的順序。在其他實施例中,寫入序號亦可為其他可代表順序先后的數(shù)值或者代號。

接著,在步驟S404中,控制器160根據(jù)寫入指令,判斷寫入指令所指示寫入的數(shù)據(jù)的一型態(tài)為一連續(xù)型態(tài)或者一隨機型態(tài)。當控制器160判斷數(shù)據(jù)為隨機型態(tài)時,流程進行至步驟S406。當控制器160判斷數(shù)據(jù)為連續(xù)型態(tài)時,流程進行至步驟S408。舉例而言,當寫入指令所指示寫入的數(shù)據(jù)的總長度大于一個頁面的數(shù)據(jù)量時,控制器160判斷該寫入指令的數(shù)據(jù)為連續(xù)型態(tài)。當寫入指令所指示寫入的數(shù)據(jù)的總長度小于等于一個頁面的數(shù)據(jù)量時,控制器160判斷該寫入指令的數(shù)據(jù)為隨機型態(tài),但本發(fā)明不限于此。值得注意的是,當寫入指令的數(shù)據(jù)為連續(xù)型態(tài),但這些數(shù)據(jù)中具有無法寫滿一個頁面的數(shù)據(jù)的數(shù)據(jù)時,控制器160判斷該無法寫滿一個頁面的數(shù)據(jù)為隨機型態(tài)。

在步驟S406中,控制器160根據(jù)所接收的寫入指令,將被判斷為隨機型態(tài)的數(shù)據(jù)以及所相應(yīng)的寫入序號與邏輯地址寫入第二目前區(qū)塊CB1的頁面中,并且在實體轉(zhuǎn)邏輯對應(yīng)表中記錄邏輯地址與第二目前區(qū)塊CB1中的頁面的實體地址對應(yīng)關(guān)系。以圖3為例,控制器160在步驟S400中接收到用以寫入一第一數(shù)據(jù)D1的一第一寫入指令。第一寫入指令是控制器160選取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1后所接收到的第一個寫入指令,故控制器160在步驟S402中分配”1”以作為第一寫入指令的寫入序號。由于第一寫入指令所指示寫入的第一數(shù)據(jù)D1的長度小于等于一頁面的大小,因此在步驟S404中控制器160判斷第一數(shù)據(jù)D1的型態(tài)為隨機型態(tài)。接著,在步驟S406中,控制器160將第一數(shù)據(jù)D1、第一寫入序號”1”以及邏輯地址AD1寫入第二目前區(qū)塊CB1中的頁面P0中。最后,控制器160在實體轉(zhuǎn)邏輯對應(yīng)表中記錄邏輯地址AD1與第二目前區(qū)塊CB1中的頁面P0的實體地址對應(yīng)關(guān)系。

在步驟S408中,控制器160根據(jù)所接收的寫入指令,將被判斷為連續(xù)型態(tài)的數(shù)據(jù)以及所相應(yīng)的寫入序號與邏輯地址依序?qū)懭氲谝荒壳皡^(qū)塊CB0的頁面中,并且在實體轉(zhuǎn)邏輯對應(yīng)表中記錄邏輯地址與第一目前區(qū)塊CB0中的頁面的實體地址對應(yīng)關(guān)系。以圖3為例,控制器160在步驟S400中接收到用以寫入多個第二數(shù)據(jù)D2的一第二寫入指令。由于第二寫入指令是在第一寫入指令之后所接收到的,所以控制器160在步驟S402中分配”2”以作為第二寫入指令的寫入序號。值得注 意的是,其中第二寫入指令包括第二數(shù)據(jù)D1的邏輯地址AD2~AD5。由于第二寫入指令所指示寫入的第二數(shù)據(jù)D2的總長度大于一頁面的大小,因此控制器160在步驟S404中判斷第二數(shù)據(jù)D2的型態(tài)為連續(xù)型態(tài)。接著,在步驟S408中,控制器160依序?qū)⒌诙?shù)據(jù)D2、第二寫入序號”2”以及邏輯地址AD2~AD5寫入第一目前區(qū)塊CB0中的頁面中。詳細而言,控制器160將第二數(shù)據(jù)D2中之第一者、第二寫入序號”2”以及邏輯地址AD2寫入第一目前區(qū)塊CB0中的頁面P0、將第二數(shù)據(jù)D2中之第二者、第二寫入序號”2”以及邏輯地址AD3寫入第一目前區(qū)塊CB0中的頁面P1、將第二數(shù)據(jù)D2中之第三者、第二寫入序號”2”以及邏輯地址AD4寫入第一目前區(qū)塊CB0中的頁面P2,依此類推。最后,控制器160在實體轉(zhuǎn)邏輯對應(yīng)表中記錄邏輯地址AD2~AD5與第一目前區(qū)塊CB0中的頁面P0~P3的實體地址對應(yīng)關(guān)系。

值得注意的是,在某些情況中,同一個寫入指令的數(shù)據(jù)可能有些是隨機型態(tài)有些是連續(xù)型態(tài)。在這個實施例中,控制器160則依序地將數(shù)據(jù)依照其形態(tài)寫入第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中。以圖3為例,控制器160在步驟S400中接收到用以寫入多個第三數(shù)據(jù)D3的一第三寫入指令。由于第三寫入指令是在第二寫入指令之后所接收到的,所以控制器160在步驟S402中分配”3”以作為第三寫入指令的寫入序號。值得注意的是,其中第三寫入指令包括第三數(shù)據(jù)D3的邏輯地址AD6~AD10。接著,由于第三寫入指令所指示寫入的第三數(shù)據(jù)D3的總長度大于一頁面的大小,因此控制器160判斷第三數(shù)據(jù)D3的型態(tài)為連續(xù)型態(tài)。然而,第一個第三數(shù)據(jù)D3以及最后一個第三數(shù)據(jù)D3的數(shù)據(jù)量小于一個頁面的大小,因此第一個第三數(shù)據(jù)D3以及最后一個第三數(shù)據(jù)D3被定義為隨機型態(tài),并且除了第一個第三數(shù)據(jù)D3以及最后一個第三數(shù)據(jù)D3外,其他第三數(shù)據(jù)D3為連續(xù)型態(tài)。舉例而言,每一頁面P0~P15的數(shù)據(jù)量為16K,其中第一頁面的地址為0~15K、第二頁面的地址為16~32K,依此類推。當?shù)谝粋€第三數(shù)據(jù)D3的起始邏輯地址AD6為8K時,第一個第三數(shù)據(jù)D3的數(shù)據(jù)則用以儲存在8~15K的地址,故第一個第三數(shù)據(jù)D3的數(shù)據(jù)量小于一個頁面的大小,邏輯地址為AD6的第三數(shù)據(jù)D3為隨機型態(tài)。接著,控制器160將定義為隨機型態(tài)的第一個以及最后一個第三數(shù)據(jù)D3、第三寫入序號”3”以及邏輯地址AD6、AD10分別寫入第二目前區(qū)塊CB1中的頁面P1以及頁面P2中,并且依序?qū)⒈欢x為連續(xù)型態(tài)的第三數(shù)據(jù)D3、第三寫入序號”3”以及邏輯地址AD7~AD9寫入第一目前區(qū)塊CB0的頁面P4~P6中。詳細而言, 控制器160執(zhí)行步驟S406已將第三數(shù)據(jù)D3中之第一者、第三寫入序號”3”以及邏輯地址AD6寫入第二目前區(qū)塊CB1中的頁面P1、接著執(zhí)行步驟S408以將第三數(shù)據(jù)D3中之第二者、第三寫入序號”3”以及邏輯地址AD7寫入第一目前區(qū)塊CB0中的頁面P4、最后執(zhí)行步驟S406以將第三數(shù)據(jù)D3中之第三者、第三寫入序號”3”以及邏輯地址AD8寫入第一目前區(qū)塊CB0中的頁面P5,依此類推。最后,控制器160在實體轉(zhuǎn)邏輯對應(yīng)表中記錄邏輯地址AD6~AD9與第一目前區(qū)塊CB0與第二目前區(qū)塊CB1中的實體地址的對應(yīng)關(guān)系。

接著,在步驟S410中,控制器160判斷第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1是否可繼續(xù)進行寫入。當?shù)谝荒壳皡^(qū)塊CB0以及第二目前區(qū)塊CB1是否可繼續(xù)進行寫入時,流程回到步驟S400,控制器160繼續(xù)判斷是否接收到其他寫入指令;否則,流程進行至步驟S412。

在步驟S412中,控制器160將實體轉(zhuǎn)邏輯對應(yīng)表整理至數(shù)據(jù)鏈結(jié)關(guān)系表TB1,將第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1定義為數(shù)據(jù)母區(qū)塊,重新自快閃存儲器180的區(qū)塊B0~BN中選取兩個可使用的區(qū)塊以作為新的第一目前區(qū)塊CB0以及新的第二目前區(qū)塊CB1,并且在隨機存取存儲器166中建立新的一實體轉(zhuǎn)邏輯對應(yīng)表以記錄新的第一目前區(qū)塊CB0以及新的第二目前區(qū)塊CB1的頁面的實體地址與數(shù)據(jù)的頁面的邏輯地址的對應(yīng)關(guān)系。接著,流程回到步驟S400,控制器160繼續(xù)判斷是否接收到其他寫入指令。

圖5為本發(fā)明所提供的一數(shù)據(jù)維護方法的另一種實施例的流程圖。數(shù)據(jù)維護方法適用于圖1所示的數(shù)據(jù)儲存裝置140,并且圖5所示的數(shù)據(jù)維護方法用以在斷電重啟之后建立實體轉(zhuǎn)邏輯對應(yīng)表。流程開始于步驟S500。

在步驟S500中,數(shù)據(jù)儲存裝置140在一斷電事件后重新啟動并且恢復電力。值得注意的是,斷電事件可為正常的關(guān)機或者不正常的電源中斷。

接著,在步驟S502中,控制器160依序讀取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的頁面以建立一實體轉(zhuǎn)邏輯對應(yīng)表。在一實施例中,控制器160是先從第一目前區(qū)塊CB0的第一個頁面開始讀取,但本發(fā)明不限于此。在其他實施例中,控制器160是先從第一目前區(qū)塊CB0的最后個頁面開始讀取。在其他實施例中,控制器160亦可從第二目前區(qū)塊CB1的第一個頁面或者最后一個頁面開始讀取。

在步驟S504中,控制器160判斷所讀取的頁面是否與先前已讀取的頁面的邏輯地址重復。當控制器160發(fā)現(xiàn)所讀取的頁面是否與先前已讀取的頁面的邏輯地址重復時,過程進行至步驟S506;否則,流程進行至步驟S505。

在步驟S505中,控制器160將所讀取的頁面的邏輯地址以及在第一目前區(qū)塊CB0或者第二目前區(qū)塊CB1的實體地址記錄于實體轉(zhuǎn)邏輯對應(yīng)表中。接著,流程回到步驟S502,控制器160繼續(xù)讀取第一目前區(qū)塊CB0或者第二目前區(qū)塊CB1中的下一個頁面。

在步驟S506中,控制器160比較具有相同邏輯地址的頁面的寫入序號。換言之,控制器160比較目前所讀取的頁面的備用區(qū)域中的寫入序號以及與目前所讀取的頁面的邏輯地址相同的頁面的備用區(qū)域中的寫入序號。

接著,在步驟S508中,控制器160將具有較小寫入序號的頁面丟棄。舉例而言,當目前所讀取的頁面的寫入序號大于與目前所讀取的頁面的邏輯地址相同的頁面的寫入序號時,控制器160將目前所讀取的頁面的邏輯地址與其在第一目前區(qū)塊CB0或者第二目前區(qū)塊CB1的實體地址覆蓋原本記錄于實體轉(zhuǎn)邏輯對應(yīng)表中與目前所讀取的頁面的邏輯地址相同的頁面的數(shù)據(jù)。當目前所讀取的頁面的寫入序號小于與目前所讀取的頁面的邏輯地址相同的頁面的寫入序號時,控制器160則不將目前所讀取的頁面的邏輯地址與其在第一目前區(qū)塊CB0或者第二目前區(qū)塊CB1的實體地址記錄于實體轉(zhuǎn)邏輯對應(yīng)表中。

接著,在步驟S510中,控制器160判斷第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的頁面是否全部讀取完畢。當?shù)谝荒壳皡^(qū)塊CB0以及第二目前區(qū)塊CB1中的頁面尚未全部讀取完畢時,流程會到步驟S502,控制器160繼續(xù)讀取下一個頁面。第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的頁面已全部讀取完畢時,流程結(jié)束于步驟S510。值得注意的是,在其他實施例中,控制器160亦可將第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的頁面全部讀完后再判斷是否有重復的邏輯地址,本發(fā)明不限于此。

圖6為本發(fā)明所提供的一數(shù)據(jù)維護方法的另一種實施例的流程圖。數(shù)據(jù)維護方法適用于圖6所示的數(shù)據(jù)儲存裝置140,并且圖6所示的數(shù)據(jù)維護方法用以在斷電重啟之后建立實體轉(zhuǎn)邏輯對應(yīng)表。流程開始于步驟S600。

在步驟S600中,數(shù)據(jù)儲存裝置140在一斷電事件后重新啟動并且恢復電力。值得注意的是,斷電事件可為正常的關(guān)機或者不正常的電源中斷。

接著,在步驟S602中,控制器160讀取第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中所有的頁面,以建立一實體轉(zhuǎn)邏輯對應(yīng)表。在一實施例中,控制器160是先從第一目前區(qū)塊CB0的第一個頁面開始讀取直到第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的所有頁面皆被讀取完畢,但本發(fā)明不限于此。在其他實施例中,控制器160是先從第一目前區(qū)塊CB0的最后個頁面開始讀取。在其他實施例中,控制器160亦可從第二目前區(qū)塊CB1的第一個頁面或者最后一個頁面開始讀取。

接著,在步驟S604中,控制器160判斷第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1的頁面中是否有一特定頁面損壞。值得注意的是,特定頁面可為斷第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1的頁面中損壞的任一者。當有頁面損壞時,流程進行至步驟S605;否則,流程結(jié)束于步驟S604。

在步驟S605中,控制器160判斷特定頁面的寫入序號以及邏輯地址是否可被成功讀取。當特定頁面的寫入序號以及邏輯地址可被成功讀取時,流程進行至步驟S606;否則,流程進行至步驟S614。

在步驟S606中,控制器160將特定頁面的寫入序號與第一目前區(qū)塊CB0以及上二目前區(qū)塊中的其他頁面的寫入序號進行比較。

接著,在步驟S608中,控制器160將損壞的特定頁面以及寫入序號大于特定頁面的寫入序號的頁面舍棄。換言之,控制器160將實體轉(zhuǎn)邏輯對應(yīng)表中關(guān)于特定頁面以及入序號大于特定頁面的寫入序號的頁面的數(shù)據(jù)鏈結(jié)關(guān)系刪除。以圖3為例,當?shù)谝荒壳皡^(qū)塊CB0的頁面P5的數(shù)據(jù)D3由于斷電事件損壞時,控制器160將損壞的頁面P5舍棄并且讀取第一目前區(qū)塊CB0的頁面P5的寫入序號??刂破?60將第一目前區(qū)塊CB0的頁面P5中的寫入序號”3”與第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的其他頁面的寫入序號進行比較。由于第二目前區(qū)塊CB1中的頁面P4的寫入序號為4,故控制器160將寫入序號大于頁面P5中的寫入序號”3”的第二目前區(qū)塊CB1中的頁面P4舍棄。

接著,在步驟S610中,控制器160比較特定頁面的邏輯地址以及寫入序號等于特定頁面的寫入序號的第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的其他頁面的邏輯地址。

接著,在步驟S612中,控制器160將邏輯地址大于特定頁面的邏輯地址的其他頁面舍棄。換言之,控制器160將實體轉(zhuǎn)邏輯對應(yīng)表中關(guān)于邏輯地址大于特定頁面的邏輯地址的其他頁面的數(shù)據(jù)鏈結(jié)關(guān)系刪除。以圖為例,當?shù)谝荒壳皡^(qū)塊CB0 的頁面P5的數(shù)據(jù)D3由于斷電事件損壞時,控制器160檢測到第一目前頁面CB0中的頁面P4以及頁面P6以及第二目前頁面CB1中的頁面P1~P2中的寫入序號與第一目前區(qū)塊CB0的頁面P5的寫入序號相同。控制器160讀取第一目前區(qū)塊CB0的頁面P5中的邏輯地址”AD8”,并且將第一目前區(qū)塊CB0的頁面P5中的邏輯地址”AD8”與第一目前頁面CB0中的頁面P4、P6以及第二目前頁面CB1中的頁面P1~P2的邏輯地址進行比較。由于第一目前區(qū)塊CB0中的頁面P4的邏輯地址為AD7、第一目前區(qū)塊CB0中的頁面P6的寫入序號為AD9、第二目前區(qū)塊CB1中的頁面P2的寫入序號為AD10,故控制器160將邏輯地址大于頁面P5中的邏輯地址”AD8”的第一目前區(qū)塊CB0中的頁面P6以及第二目前區(qū)塊CB1中的頁面P2舍棄。流程結(jié)束于步驟S612。

在步驟S614中,控制器160將特定頁面舍棄,并且將位于特定頁面之前的一參考特定頁面的寫入序號與第一目前區(qū)塊CB0以及上二目前區(qū)塊中的其他頁面的寫入序號進行比較。換言之,控制器160將實體轉(zhuǎn)邏輯對應(yīng)表中關(guān)于特定頁面的數(shù)據(jù)鏈結(jié)關(guān)系刪除。以圖3為例,當?shù)谝荒壳皡^(qū)塊CB0中損壞的頁面P5的寫入序號以及邏輯地址無法被成功讀取時,控制器160將損壞的頁面P5舍棄并且將位于第一目前區(qū)塊CB0的頁面P5的實體地址前的第一目前區(qū)塊CB0的頁面P4作為一參考特定頁面。控制器160讀取第一目前區(qū)塊CB0的頁面P4的寫入序號。接著,控制器160將第一目前區(qū)塊CB0的頁面P4中的寫入序號”3”與第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的其他頁面的寫入序號進行比較。

接著,在步驟S616中,控制器160將寫入序號大于參考特定頁面的寫入序號的頁面舍棄。換言之,控制器160將實體轉(zhuǎn)邏輯對應(yīng)表中關(guān)于寫入序號大于參考特定頁面的寫入序號的頁面的數(shù)據(jù)鏈結(jié)關(guān)系刪除。以圖3為例,當?shù)谝荒壳皡^(qū)塊CB0的頁面P4為參考特定頁面時,由于第二目前區(qū)塊CB1中的頁面P4的寫入序號為4,故控制器160將寫入序號大于頁面P5中的寫入序號”3”的第二目前區(qū)塊CB1中的頁面P4舍棄。

接著,在步驟S618中,控制器160比較寫入序號等于參考特定頁面的寫入序號的第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的其他頁面。

接著,在步驟S620中,控制器160將邏輯地址大于參考特定頁面的邏輯地址的寫入序號等于參考特定頁面的寫入序號的第一目前區(qū)塊CB0以及第二目前區(qū)塊CB1中的其他頁面舍棄。以圖3為例,當?shù)谝荒壳皡^(qū)塊CB0的頁面P4為參考特定 頁面時,控制器160檢測到第一目前頁面CB0中的頁面P6以及第二目前頁面CB1中的頁面P1~P2中的寫入序號與第一目前區(qū)塊CB0的頁面P4的寫入序號相同。控制器160在步驟S618中,讀取第一目前區(qū)塊CB0的頁面P4中的邏輯地址”AD7”,并且將與第一目前頁面CB0中的頁面P6以及第二目前頁面CB1中的頁面P1~P2的邏輯地址進行比較。接著,由于第一目前區(qū)塊CB0中的頁面P6的寫入序號為AD9、第二目前區(qū)塊CB1中的頁面P2的寫入序號為AD10,故控制器160將邏輯地址大于頁面P4中的邏輯地址”AD7”的第一目前區(qū)塊CB0中的頁面P6以及第二目前區(qū)塊CB1中的頁面P2舍棄。

圖3為本發(fā)明所提供的一數(shù)據(jù)維護方法的另一種實施例的流程圖。圖7所示的數(shù)據(jù)維護方法包括了圖5以及圖6所示的數(shù)據(jù)維護方法,其中圖7所示的步驟S700~S710的步驟相似于圖5的步驟S500~S510,并且圖7的步驟S714~S730的步驟相似于圖6中的步驟S602~S620,其說明請參考圖5~6,再此不再贅述。

本發(fā)明所提供的數(shù)據(jù)儲存裝置140以及數(shù)據(jù)維護方法可將寫入指令的順序記錄于頁面中,故數(shù)據(jù)儲存裝置140以及數(shù)據(jù)維護方法可藉由寫入指令的順序重建實體轉(zhuǎn)邏輯對應(yīng)表。

本發(fā)明的方法,或特定型態(tài)或其部份,可以以程式碼的型態(tài)存在。程式碼可儲存于實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限于外在形式的電腦程式產(chǎn)品,其中,當程式碼被機器,如電腦載入且執(zhí)行時,此機器變成用以參與本發(fā)明的裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態(tài)進行傳送,其中,當程式碼被機器,如電腦接收、載入且執(zhí)行時,此機器變成用以參與本發(fā)明的裝置。當在一般用途處理單元實作時,程式碼結(jié)合處理單元提供一操作類似于應(yīng)用特定邏輯電路的獨特裝置。

以上所述,僅為本發(fā)明的較佳實施例而已,當不能以此限定本發(fā)明實施的范圍,即凡依本發(fā)明申請專利范圍及發(fā)明說明內(nèi)容所作的簡單的等效變化與修飾,皆仍屬本發(fā)明專利涵蓋的范圍內(nèi)。另外本發(fā)明的任一實施例或申請專利范圍不須達成本發(fā)明所揭示的全部目的或優(yōu)點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,并非用來限制本發(fā)明的權(quán)利范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
高安市| 贵德县| 驻马店市| 铁岭市| 平远县| 镇雄县| 犍为县| 历史| 汉川市| 壤塘县| 五家渠市| 靖远县| 遵义市| 襄樊市| 乌恰县| 壤塘县| 津南区| 南通市| 蒙山县| 壶关县| 沾化县| 墨竹工卡县| 镶黄旗| 吉首市| 许昌县| 建宁县| 乌拉特后旗| 扎赉特旗| 麟游县| 十堰市| 邻水| 蕉岭县| 视频| 政和县| 大新县| 青浦区| 勐海县| 泰来县| 淮北市| 安达市| 衡阳市|