TWI584119B - 用於資料恢復的方法、用於資料恢復的裝置、用於快閃裝置的資料恢復的方法 - Google Patents

用於資料恢復的方法、用於資料恢復的裝置、用於快閃裝置的資料恢復的方法 Download PDF

Info

Publication number
TWI584119B
TWI584119B TW099131596A TW99131596A TWI584119B TW I584119 B TWI584119 B TW I584119B TW 099131596 A TW099131596 A TW 099131596A TW 99131596 A TW99131596 A TW 99131596A TW I584119 B TWI584119 B TW I584119B
Authority
TW
Taiwan
Prior art keywords
block
data
page
flash
blocks
Prior art date
Application number
TW099131596A
Other languages
English (en)
Other versions
TW201142592A (en
Inventor
李家雯
陳世新
洪仕達
陳炳盛
呂柏青
Original Assignee
聯發科技股份有限公司
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 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW201142592A publication Critical patent/TW201142592A/zh
Application granted granted Critical
Publication of TWI584119B publication Critical patent/TWI584119B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

用於資料恢復的方法、用於資料恢復的裝置、用於快閃裝置的資料恢復的方法
本發明涉及快閃裝置,尤其涉及用於資料恢復的方法、用於資料恢復的裝置、用於快閃裝置的資料恢復的方法。
快閃裝置(例如記憶卡)是一種包括用於資料儲存的快閃記憶體的裝置。快閃記憶體是非揮發(non-volatile)記憶體,能夠被電擦除或再程式化(reprogrammed)。快閃裝置用於為主機儲存資料,主機可例如個人計算機。當主機要將資料儲存至快閃裝置時,主機將資料隨同資料的邏輯位址發送至快閃裝置,其中邏輯位址表示儲存資料的位置。然而,快閃記憶體根據實體位址儲存資料。因此快閃裝置必須首先將主機發送的邏輯位址轉換為實體位址,然後指示快閃記憶體將資料儲存至具有邏輯位址的記憶體空間中。因此,快閃裝置包括微處理器,微處理器能夠將主機的邏輯位址轉換為快閃記憶體的實體位址。
為了將邏輯位址轉換為實體位址,快閃裝置需要記錄邏輯位址與實體位址之間的映射關係(mapping relationship)。邏輯位址與實體位址之間的映射關係稱為快閃轉換層(Flash Translation Layer,FTL)資料。FTL資料常儲存於快閃裝置的快閃記憶體中。致能快閃裝置後,微處理器將來自快閃記憶體的FTL資料承載至快閃裝置的動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),並且微處理器接著根據儲存於DRAM中的FTL資料將邏輯位址轉換為實體位址。
每當一個時間週期過去後,快閃裝置的微處理器必須根據儲存於DRAM中的最新(latest)FTL資料更新儲存於快閃記憶體中的FTL資料,這樣儲存於快閃記憶體中的FTL資料與儲存於DRAM中的最新FTL資料保持相同。然而,當快閃裝置的電源突然關閉時,儲存於快閃記憶體中的FTL資料沒有時間進行更新,所以電源的突然關閉導致儲存於DRAM中的最新FTL資料丟失。重新獲得快閃記憶體的電源後,快閃裝置的微處理器必須首先恢復最新的FTL資料。否則,因為儲存於快閃記憶體中的FTL資料的版本不是最新版本,微處理器會根據FTL資料的錯誤資訊將邏輯位址轉換為實體位址。舉例來說,當主機請求快閃裝置讀取資料時,快閃裝置可能讀取快閃記憶體的舊(old)實體位址從而得到錯誤的資料。當主機請求快閃裝置寫入資料時,快閃裝置可能誤將使用過的資料區塊當作空資料區塊並覆蓋使用過的資料區塊中的資料。因此,需要一種為快閃裝置恢復最新FTL資料的方法。
有鑒於此,本發明提供用於資料恢復的方法、用於資料恢復的裝置以及用於快閃裝置的資料恢復的方法。
一種用於資料恢復的方法,其中一記憶體包括用於資料儲存的多個頁面,一隨機存取記憶體根據所述多個頁面的邏輯位址與實體位址之間的一映射關係儲存快閃轉換層資料,並且所述記憶體儲存所述快閃轉換層資料的一前一個版本,所述用於資料恢復的方法包括:從一主機獲得第一資料;從所述記憶體的所述多個頁面選擇一第一頁面用於儲存所述第一資料;在所述記憶體中儲存指示所述第一頁面的一實體位址的一起始頁面鏈接;將所述第一資料、指示一下一個頁面的一實體位址的一第一頁面鏈接以及相應於所述第一頁面的第一快閃轉換層分段資料寫入所述第一頁面;從所述主機獲得下一個資料;以及將所述下一個資料、指示一後續頁面的一實體位址的一下一個頁面鏈接以及相應於所述下一個頁面的快閃轉換層分段資料寫入所述下一個頁面。
一種用於資料恢復的裝置,包括:一記憶體,包括用於資料儲存的多個頁面;一隨機存取記憶體,根據所述多個頁面的邏輯位址與實體位址之間的一映射關係儲存快閃轉換層資料;一微處理器,用於從一主機獲得第一資料,從所述記憶體的所述多個頁面選擇一第一頁面用於儲存所述第一資料,在所述記憶體中儲存指示所述第一頁面的一實體位址的一起始頁面鏈接,將所述第一資料、指示一下一個頁面的一實體位址的一第一頁面鏈接以及相應於所述第一頁面的第一快閃轉換層分段資料寫入所述第一頁面,從所述主機獲得下一個資料以及將所述下一個資料、指示一後續頁面的一實體位址的一下一個頁面鏈接以及相應於所述下一個頁面的快閃轉換層分段資料寫入所述下一個頁面。
一種用於快閃裝置的資料恢復的方法,其中所述快閃裝置的一記憶體包括用於資料儲存的多個頁面,一隨機存取記憶體根據所述多個頁面的邏輯位址與實體位址之間的一映射關係儲存快閃轉換層資料,並且所述快閃記憶體儲存所述快閃轉換層資料的一前一個版本,所述用於快閃裝置的資料恢復的方法包括:從一主機獲得第一資料;從所述快閃記憶體的所述多個頁面選擇一第一頁面用於儲存所述第一資料;將所述第一資料、指示所述快閃轉換層資料的前一個版本的一第一頁面鏈接以及相應於所述第一頁面的第一快閃轉換層分段資料寫入所述第一頁面;從所述主機獲得下一個資料;以及將所述下一個資料、指示所述第一頁面的一前一個頁面鏈接以及相應於一下一個頁面的快閃轉換層分段資料寫入所述下一個頁面。
一種用於快閃裝置的資料恢復的方法,其中所述快閃裝置的一快閃記憶體包括多個區塊,並且所述多個區塊中的每個包括用於資料儲存的多個頁面,所述用於快閃裝置的資料恢復的方法包括:當將資料寫入從所述多個區塊選擇的一目標區塊的一目標頁面時,在所述目標頁面中記錄所述目標區塊的一區塊類型與一實體區塊號;恢復所述快閃裝置的電源後,根據儲存於所述目標區塊的多個頁面中的區塊類型與實體區塊號決定所述目標區塊是否是一廢料收集區塊;以及根據所述目標區塊是否是一廢料收集區塊重建快閃轉換層資料,其中所述快閃轉換層資料記錄邏輯區塊號與實體區塊號之間的一映射關係。
一種用於資料恢復的裝置,包括:一記憶體,包括多個區塊,其中所述多個區塊中的每個包括用於資料儲存的多個頁面;以及一微處理器,當將資料寫入一目標頁面時,在所述目標頁面中記錄一目標區塊的一區塊類型與一實體區塊號,恢復所述裝置的電源後,根據儲存於所述目標區塊的多個頁面中的區塊類型與實體區塊號決定所述目標區塊是否是一廢料收集區塊,並且根據決定結果重建快閃轉換層資料,其中所述快閃轉換層資料記錄邏輯區塊號與實體區塊號之間的一映射關係。
本發明的效果之一在於,能夠在電源突然關閉後恢復最新的FTL資料。
以下為根據多個圖式對本發明的較佳實施例進行詳細描述,本領域習知技藝者閱讀後應可明確了解本發明的目的。
下面的實施例僅用來例舉本發明的實施態樣,以及闡釋本發明的技術特徵,並非用來限制本發明的範疇。任何習知技藝者可依據本發明的精神輕易完成的改變或均等性的安排均屬於本發明所主張的範圍,本發明的權利範圍應以申請專利範圍為準。
第1圖為根據本發明一實施例的裝置100的方塊示意圖。裝置100包括微處理器102、RAM(例如DRAM 104)、記憶體控制器106、記憶體108以及主機介面107。舉例來說,裝置100可為快閃裝置,記憶體108可為快閃記憶體。裝置100用於為主機(圖未示)儲存資料。主機介面107用於主機與微處理器102之間的資料通信。DRAM 104用於為微處理器102儲存資料。記憶體控制器106控制快閃記憶體108的操作。快閃記憶體108包括多個區塊,並且每個區塊包括多個用於資料儲存的頁面(page)。快閃記憶體108儲存FTL資料109(圖中顯示為FTL),其中FTL資料109記錄主機使用的邏輯位址與快閃記憶體108使用的實體位址之間的映射關係。致能裝置100後,微處理器102將FTL資料承載至DRAM 104,並且根據儲存於DRAM 104中的FTL資料105(圖中顯示為最新FTL)將從主機接收的邏輯位址轉換為實體位址。微處理器102在儲存於DRAM 104中的FTL資料105中記錄邏輯位址與實體位址之間的新映射關係。因此,儲存於DRAM 104中的FTL資料105包括位址映射關係的最新版本。
因為儲存於DRAM 104中的最新FTL資料105與儲存於快閃記憶體108中的FTL資料109有些不同,因此微處理器102需要保持FTL資料109與最新FTL資料105相同。每當一個預設時間週期過去後,微處理器102就根據儲存於DRAM 104中的最新FTL資料105更新儲存於快閃記憶體108中的FTL資料109。然而,當裝置100的電源突然關閉時,微處理器102沒有時間更新儲存於快閃記憶體108中的FTL資料109,並且電源的突然關閉導致儲存於DRAM 104中的最新FTL資料105丟失。裝置100重新獲得電源後,微處理器102需要恢復最新FTL資料105以用於位址轉換。為了參考最新FTL資料105,每當將資料寫入新頁面時,微處理器102將一些資訊隨著資料寫入新頁面。
請參考第2A圖。第2A圖為根據本發明的實施例的用於將FTL恢復資訊寫入快閃記憶體108的頁面的方法的示意圖。微處理器102首先根據儲存於DRAM 104中的最新FTL資料105更新儲存於快閃記憶體108中的FTL資料109,其中FTL資料109與最新FTL資料105相同。假設主機要將一系列資料寫入裝置100,並且主機介面107從主機順序地接收資料序列。微處理器102首先決定快閃記憶體108的第一頁面111以用於儲存資料序列的第一資料。微處理器102接著記錄起始頁面鏈接110(圖中顯示為S),起始頁面鏈接110用於指示快閃記憶體108中的第一頁面111的實體位址。微處理器102接著指導記憶體控制器106將第一資料寫入第一頁面111。將第一資料寫入第一頁面111後,微處理器102同樣指導記憶體控制器106將下一個頁面鏈接N1(即下一個頁面鏈接N1能視為第一頁面鏈接)以及FTL片段資料T1(即FTL片段資料T1能視為第一FTL片段資料)寫入第一頁面111,其中下一個頁面鏈接N1指示第二頁面112的實體位址(即第二頁面112能視為第一頁面111的下一個頁面),並且FTL片段資料T1是相應於寫入第一頁面111的資料的最新FTL資料105的更新資料。
微處理器102接著指導記憶體控制器106將資料序列的第二資料寫入第二頁面112。將第二資料寫入第二頁面112後,微處理器102同樣指導記憶體控制器106將下一個頁面鏈接N2以及FTL片段資料T2寫入第二頁面112,其中下一個頁面鏈接N2指示第三頁面的實體位址,並且FTL片段資料T2是相應於寫入第二頁面112的資料的最新FTL資料105的更新資料。微處理器102接著以與第一頁面111以及第二頁面112相同的方式將資料寫入後續頁面(例如,11K頁面是11(K-1)頁面的後續頁面)。換句話說,每當微處理器102將資料寫入新頁面,微處理器102同樣寫入指示後續頁面的實體位址的下一個頁面鏈接以及相應於寫入新頁面的資料的FTL分段資料。換句話說,重複執行寫入下一個資料、下一個頁面鏈接以及下一個頁面的快閃轉換層分段資料的步驟直到主機不再發送新資料。最後,微處理器102將資料序列的最終資料、下一個頁面鏈接NK以及FTL分段資料TK寫入最終頁面11K,其中下一個頁面鏈接NK指向空值(NULL)。當傳統快閃裝置的電源突然關閉後,儲存於DRAM 104中的最新FTL資料會丟失,並且微處理器102無法恢復儲存於多個區塊(區塊用於儲存最近的資料)中的資料。因為第2A圖所示的每個頁面儲存FTL分段資料以及指向下一個頁面的下一個頁面鏈接,因此,當裝置100的電源突然關閉時,微處理器102能夠根據下一個頁面鏈接重新獲得頁面111~11K並且根據FTL分段資料恢復最新FTL資料,沒有資料丟失。因此根據本發明的裝置100比傳統快閃裝置具有更好的性能。
假設裝置100的電源突然關閉,儲存於DRAM 104中的最新FTL資料105丟失了。裝置100重新獲得電源後,微處理器102需要恢復最新FTL資料105。請參考第2B圖,第2B圖為根據本發明的用於恢復最新FTL資料的方法200的流程示意圖。首先,微處理器102根據儲存於快閃記憶體108中的起始頁面鏈接110決定用於儲存資料的第一頁面111(步驟202)。微處理器102接著指導記憶體控制器106讀取第一頁面111以獲得相應於第一頁面的FTL分段資料T1(步驟204),其中FTL片段資料T1能視為第一FTL片段資料。因為第一頁面111的下一個頁面鏈接N1已經儲存了下一個頁面112的實體位址,因此微處理器102接著根據第一頁面111的下一個頁面鏈接N1決定下一個頁面112(步驟206)。微處理器102接著指導記憶體控制器106讀取下一個頁面112以獲得相應於下一個頁面112的FTL分段資料(步驟208)。
因為前一個頁面總是儲存指示下一個頁面的實體位址的下一個頁面鏈接,根據當前的下一個頁面的下一個頁面鏈接決定新的下一個頁面(步驟212),微處理器102繼續讀取下一個頁面以收集相應於下一個頁面的FTL分段資料(步驟208)。最後,微處理器102決定最終頁面11K是否已經儲存指向NULL的下一個頁面鏈接(步驟210)。微處理器102讀取最終頁面11K以獲得相應於最終頁面11K的FTL分段資料之後,微處理器102整合所有頁面111~11K的FTL分段資料以獲得FTL補丁(patch)資料,其中FTL補丁資料包括相應於寫入所有頁面111~11K的資料的FTL更新資料(步驟214)。舉例來說,頁面111~11K的FTL分段資料T1~TK可包括關於區塊的邏輯區塊號以及區塊類型的資訊以支持重建(rebuild)最新FTL資料,其中區塊包含頁面111~11K。因此微處理器102可結合頁面111~11K的FTL分段資料T1~TK以獲得FTL補丁資料,其中補丁資料是儲存於快閃記憶體108中的原始FTL資料109的丟失資訊。最後,微處理器102將儲存於快閃記憶體108中的FTL資料109與FTL補丁資料結合以恢復在電源被切斷之前的最新FTL資料105(步驟216)。也就是說,將儲存於快閃記憶體108中的FTL資料的前一個版本與FTL補丁資料結合以獲得FTL資料的最新版本。最新FTL資料恢復後,微處理器102接著可根據最新FTL資料105中包含的位址映射關係將從主機接收的邏輯位址轉換為實體位址並接著根據實體位址存取儲存於快閃記憶體108中的資料。
請參考第3A圖。第3A圖為根據本發明另一實施例的將FTL恢復資訊寫入快閃記憶體108的頁面的方法的示意圖。微處理器102首先根據儲存於DRAM 104中的最新FTL資料105更新儲存於快閃記憶體108中的FTL資料109,其中FTL資料109與最新FTL資料105相同。假設主機要將一系列資料寫入裝置100,並且主機介面107從主機順序地接收資料序列。微處理器102首先決定快閃記憶體108的第一頁面121以用於儲存資料序列的第一資料。微處理器102接著指導記憶體控制器106將第一資料寫入第一頁面121。將第一資料寫入第一頁面121後,微處理器102同樣指導記憶體控制器106將前一個頁面鏈接P1以及FTL片段資料T1寫入第一頁面121,其中前一個頁面鏈接P1指示儲存於快閃記憶體108中的FTL資料109的實體位址,並且FTL片段資料T1是相應於寫入第一頁面121的資料的最新FTL資料105的更新資料。
微處理器102接著決定第二頁面122用於儲存資料序列的第二資料並且指導記憶體控制器106將資料序列的第二資料寫入第二頁面122。將第二資料寫入第二頁面122後,微處理器102同樣指導記憶體控制器106將前一個頁面鏈接P2以及FTL片段資料T2(FTL片段資料T2能視為第二FTL片段資料)寫入第二頁面122,其中前一個頁面鏈接P2指示第一頁面121的實體位址,並且FTL片段資料T2是相應於寫入第二頁面122的資料的最新FTL資料105的更新資料。微處理器102接著以與第一頁面121以及第二頁面122相同的方式將資料寫入後續頁面。換句話說,每當微處理器102將資料寫入新頁面,微處理器102同樣寫入指示先前頁面的實體位址的前一個頁面鏈接以及相應於寫入新頁面的資料的FTL分段資料。最後,微處理器102將資料序列的最終資料、前一個頁面鏈接PK以及FTL分段資料TK寫入最終頁面12K,其中前一個頁面鏈接PK指示先前頁面12(K-1)的實體位址。
假設裝置100的電源突然關閉,儲存於DRAM 104中的最新FTL資料105會丟失。裝置100重新獲得電源後,微處理器102需要恢復最新FTL資料105。請參考第3B圖。第3B圖為根據本發明的用於恢復最新FTL資料的方法的流程示意圖。首先,微處理器102搜索快閃記憶體108的頁面以找到最後的頁面12K(步驟302)。微處理器102接著指導記憶體控制器106讀取最後的頁面12K以獲得相應於最後的頁面12K的FTL分段資料TK(步驟304)。因為最後的頁面12K的前一個頁面鏈接PK已經儲存了前一個頁面12(K-1)的實體位址,因此微處理器102接著根據最後的頁面12K的前一個頁面鏈接PK決定前一個頁面12(K-1)(步驟306)。微處理器102接著指導記憶體控制器106讀取前一個頁面12(K-1)以獲得相應於前一個頁面12(K-1)的FTL分段資料(步驟308)。
因為後續頁面總是儲存指示前一個頁面的實體位址的前一個頁面鏈接,根據當前的前一個頁面的前一個頁面鏈接決定新的前一個頁面(步驟312),微處理器102繼續讀取前一個頁面以收集相應於前一個頁面的FTL分段資料(步驟308)。微處理器102決定前一個頁面的前一個頁面鏈接是否指向儲存於快閃記憶體中的FTL資料(步驟310)。也就是說,微處理器102決定第一頁面121是否已經儲存指向儲存於快閃記憶體108中的FTL資料109的前一個頁面鏈接。微處理器102讀取第一頁面121以獲得相應於第一頁面121的FTL分段資料之後,微處理器102整合所有頁面121~12K的FTL分段資料以獲得FTL補丁資料,其中FTL補丁資料包括相應於寫入所有頁面121~12K的資料的FTL更新資料(步驟314)。最後,微處理器102將儲存於快閃記憶體108中的FTL資料109與FTL補丁資料結合以獲得最新FTL資料105(步驟316)。最新FTL資料恢復後,微處理器102接著可根據最新FTL資料105中包含的位址映射關係將從主機接收的邏輯位址轉換為實體位址並接著根據實體位址存取儲存於快閃記憶體108中的資料。
第3A圖的另一個實施例並不包括儲存最後的頁面12K的結束頁面鏈接。因此,當FTL資料恢復過程300開始後(即方法300開始後),微處理器102需要搜索快閃記憶體108的頁面以找到最後的頁面12K。搜索最後的頁面12K的操作需要很長的時間週期。請參考第4圖。第4圖為根據本發明另一實施例的用於將FTL恢復資訊寫入快閃記憶體108的頁面的方法的示意圖。第4圖所示實施例與第3A圖所示實施例相似,區別主要在於,第4圖中包括儲存裝置130,儲存裝置130儲存結束頁面鏈接120(圖中顯示為E)。儲存裝置130可為快閃記憶體108或額外的電可除程式化唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EEPROM)。在電源和裝置100之間耦接電容器以延長消逝喘息週期(dying gasp period),其中在消逝喘息週期中電源突然關閉後,電源仍然供電。在短暫的消逝喘息週期中,微處理器102在儲存裝置130中儲存結束頁面鏈接120,結束頁面鏈接120指示最後的頁面12K。因此,當微處理器102執行方法300以重建最新FTL資料105時,微處理器102可以直接根據儲存於儲存裝置130中的結束頁面鏈接120找到最後的頁面12K。
請參考第5圖。第5圖為根據本發明另一實施例的用於將FTL恢復資訊寫入快閃記憶體108的頁面的方法的示意圖。第5圖所示實施例與第2A圖所示實施例相似。第2A圖中所示頁面儲存FTL分段資料T1~TK,FTL分段資料T1~TK分別相應於寫入頁面111~11K的資料。其中,FTL分段資料T1~TK是未被壓縮的。第5圖中當微處理器102將資料寫入頁面131~13K時,微處理器102將壓縮的FTL分段資料C1~CK寫入頁面131~13K。舉例來說,當將第一資料寫入第一頁面131時,最新FTL資料105必須相應地改變以記錄第一頁面131的實體位址與第一資料的邏輯位址之間的映射關係。接著壓縮表明最新FTL資料105與原始FTL資料109之間的差異的更新資料以獲得已壓縮FTL分段資料C1,並且微處理器102將已壓縮FTL分段資料C1寫入第一頁面131。類似地,將相應於頁面132~13K的已壓縮FTL分段資料C2~CK寫入頁面132~13K。這樣,最新FTL資料105與原始FTL資料109之間的差異資料就儲存於已壓縮FTL分段資料C2~CK中而沒有進一步邏輯處理。重新獲得裝置100的電源後,微處理器102可將已壓縮FTL分段資料C1~CK解壓縮以獲得FTL補丁資料,其中FTL補丁資料表明最新FTL資料105與原始FTL資料109之間的差異。微處理器102可接著根據FTL補丁資料更新儲存於快閃記憶體108中的FTL資料109以獲得最新FTL資料105。
另一方面,第2A圖中所示頁面111~11K的分段FTL資料T1~TK是由邏輯處理產生的邏輯資料,並且最新FTL資料105與原始FTL資料109之間的差異資料必須經由微處理器102的邏輯處理從分段FTL資料T1~TK得到。因此,根據已壓縮分段資料C2~CK恢復最新FTL資料105比根據分段FTL資料T1~TK恢復最新FTL資料105需要更短的時間週期。
耦接於裝置100的主機可頻繁地更新具有相同邏輯區塊號(邏輯區塊號也稱為邏輯區塊位址)的資料,因此裝置100在具有不同實體區塊號(Physical Block Number,PBN)的多個區塊中儲存相應於特定邏輯區塊號的資料。舉例來說,相應於邏輯區塊號的資料區塊首先儲存資料。當主機要將更新資料寫入相同邏輯區塊號時,裝置100可將更新資料儲存於相應於相同邏輯區塊號的有效(active)區塊中。另外,裝置100的微處理器102可整合資料區塊與有效區塊的資料以獲得相應於相同邏輯區塊號的廢料收集(garbage collection)區塊。因此,可提高存取具有連續邏輯位址和間歇實體位址的資料的性能。當裝置100的電源突然關閉,儲存於DRAM 104中的最新FTL資料105丟失,微處理器102不易決定相應於相同邏輯區塊號的多個區塊是否儲存資料的最新版本。因此,需要一種用於從相應於相同邏輯區塊號的多個區塊決定最新的區塊的方法。邏輯區塊號可同時相應於儲存原始資料的資料區塊、儲存更新資料的有效區塊以及儲存資料區塊的原始資料和有效區塊的更新資料的廢料收集區塊。微處理器102接著決定相應於邏輯區塊號的區塊中的哪一個是最新的區塊,並且將最新的區塊的邏輯區塊號與實體區塊號之間的映射關係儲存於重建的最新FTL資料中。
因為廢料收集區塊是通過將資料區塊和有效區塊結合而獲得,因此和有效區塊以及資料區塊相比,通常廢料收集區塊是最新的區塊。因此,要從相應於邏輯區塊號的多個區塊中決定最新的區塊,微處理器102必須首先決定區塊是否為廢料收集區塊,並接著從廢料收集區塊選擇最新的區塊。為了更好的從多個區塊中決定最新的區塊和廢料收集區塊,當將資料寫入目標區塊的頁面時,微處理器102指導記憶體控制器106將目標區塊的區塊類型和目標區塊的實體區塊號寫入目標區塊的頁面。這樣,當裝置100的電源關閉時,區塊的每頁包括原始區塊的區塊類型以及原始區塊的實體區塊號(實體區塊號也稱為實體區塊位址)的資訊。當裝置100重新獲得電源後,微處理器102可接著根據儲存於區塊的頁面中的區塊類型資訊以及實體區塊號資訊從相應於邏輯區塊號的多個區塊決定最新的區塊。
請參考第6圖。第6圖為相應於邏輯區塊號的多個區塊601~605的實施例的示意圖。區塊601具有區塊類型「資料區塊」以及實體區塊號X,並且區塊601包括三個頁面,頁面601a~601c。頁面601a~601c都儲存區塊類型資訊「資料區塊」以及實體區塊號「X」。區塊602具有區塊類型「有效區塊」以及實體區塊號Y,並且區塊602包括三個頁面,頁面602a~602c。頁面602a~602c都儲存區塊類型資訊「有效區塊」以及實體區塊號「Y」以及相應資料區塊的實體區塊號「X」。區塊603具有區塊類型「有效區塊」以及實體區塊號Z,並且區塊603包括五個頁面,頁面603a~603e。頁面603a儲存區塊類型資訊「有效區塊」以及實體區塊號「Y」。頁面603b~603c儲存區塊類型資訊「資料區塊」以及實體區塊號「X」。頁面603d~603e儲存區塊類型資訊「資料區塊」以及實體區塊號「Z」。區塊604具有區塊類型「有效區塊」以及實體區塊號Q,並且區塊604包括三個頁面,頁面604a~604c。區塊605具有區塊類型「資料區塊」以及實體區塊號P,並且區塊605包括五個頁面,頁面605a~605e。
首先,微處理器102決定區塊601~605是否為廢料收集區塊。請參考第7圖。第7圖為決定目標區塊是否為廢料收集區塊的方法700的流程示意圖。首先,微處理器102獲得目標區塊(步驟702)。微處理器102接著決定目標區塊是否包括儲存與目標區塊的實體區塊號不同的實體區塊號的頁面(步驟704)。若是,則微處理器102決定目標區塊為廢料收集區塊(步驟708)。微處理器102接著決定目標區塊是否包括儲存不同區塊類型(資訊)的至少兩個頁面(步驟706)。若是,則微處理器102決定目標區塊為廢料收集區塊(步驟708)。若目標區塊的所有頁面儲存與目標區塊的實體區塊號相同的實體區塊號,並且目標區塊沒有包括儲存不同區塊類型資訊的兩個頁面,則微處理器102決定目標區塊不是廢料收集區塊(步驟710)。
舉例來說,區塊601的所有頁面601a~601c儲存實體區塊號X,其中實體區塊號X是區塊601的實體區塊號,並且區塊601的所有頁面601a~601c儲存相同的區塊類型資訊「資料區塊」。因此區塊601不是廢料收集區塊。類似地,區塊602的所有頁面602a~602c儲存實體區塊號Y,其中實體區塊號Y是區塊602的實體區塊號,並且區塊602的所有頁面602a~602c儲存相同的區塊類型資訊「有效區塊」。因此區塊602不是廢料收集區塊。類似地,決定區塊604也不是廢料收集區塊。然而,區塊603包括儲存實體區塊號Y的頁面603a,實體區塊號Y與區塊603的實體區塊號Z不同,並且區塊603包括頁面603b與603c,頁面603b與603c儲存實體區塊號X,其中頁面603b與603c儲存的實體區塊號X與區塊603的實體區塊號Z不同。另外,區塊603包括頁面603a,頁面603a儲存區塊類型資訊「有效區塊」,頁面603a儲存的區塊類型資訊「有效區塊」與頁面603b~603e儲存的區塊類型資訊「資料區塊」不同。因此,微處理器102決定區塊603是廢料收集區塊。類似地,決定區塊605也是廢料收集區塊。
因此微處理器102決定區塊603與區塊605是廢料收集區塊。請參考第8圖。第8圖為從相應於邏輯區塊號的多個區塊決定最新的區塊的方法800的流程示意圖。首先,微處理器102獲得相應於相同邏輯區塊號的多個區塊601~605(步驟802)。微處理器102接著決定多個區塊601~605是否為廢料收集區塊(步驟804)。根據第7圖所示方法700,僅決定區塊603與區塊605是廢料收集區塊。決定是否僅有一個區塊是廢料收集區塊(步驟806),若決定僅有一個區塊是廢料收集區塊,則微處理器102決定廢料收集區塊是最新的區塊(步驟808)。舉例來說,若僅有三個區塊601~603相應於一個邏輯區塊號,區塊603是唯一的廢料收集區塊,則決定區塊603是最新的區塊。
決定是否不止一個區塊是廢料收集區塊(步驟812),若不止一個區塊是廢料收集區塊,則微處理器102在多個廢料收集區塊中搜索目標廢料收集區塊,其中目標廢料收集區塊包括儲存其他廢料收集區塊的實體區塊號的頁面(步驟814),並且決定目標廢料收集區塊是最新的區塊(步驟816)。舉例來說,若決定區塊603與區塊605是廢料收集區塊,因為區塊605包括儲存實體區塊號Z的頁面605e,其中實體區塊號Z是另一個廢料收集區塊603的實體區塊號,因此微處理器102決定區塊605是最新的區塊。否則,若決定沒有區塊是廢料收集區塊,則微處理器102根據多個區塊的區塊類型決定最新的區塊(步驟818)。舉例來說,若僅有兩個區塊,區塊601與區塊602相應於邏輯區塊號,因為區塊602是有效區塊並且區塊601是資料區塊,所以微處理器102決定有效區塊602是最新的區塊。最後,決定最新區塊後,微處理器102記錄最新的區塊的實體區塊號與儲存於DRAM 104中的最新FTL資料105中的邏輯區塊號之間的映射關係,以重建最新FTL資料105。
請參考第9圖。第9圖為有效區塊902轉變為資料區塊902’的實施例的示意圖。資料區塊901相應於邏輯區塊號。接著更新儲存於資料區塊901中的資料。建立有效區塊902以儲存資料區塊901的更新資料。微處理器102接著將有效區塊902轉變為資料區塊902’。因為區塊902’的區塊類型從「有效區塊」改變為「資料區塊」,因此區塊902’的新頁面902o與新頁面902p儲存區塊類型資訊「資料區塊」。接著更新儲存於資料區塊902’中的資料。微處理器102接著建立有效區塊903以儲存資料區塊902’中的更新資料。當微處理器102將更新資料儲存至有效區塊903的頁面903a與頁面903b時,微處理器102也將區塊類型資訊「有效_D」寫入頁面903a與頁面903b,以指示區塊903是從有效區塊轉變過來的資料區塊902’的有效區塊。
第6圖所示的實施例中,當將資料寫入目標區塊的頁面時,微處理器102僅將關於目標區塊的區塊類型以及目標區塊的實體區塊號的資訊寫入頁面。另一個實施例中,當微處理器102將更新資料寫入有效區塊的頁面時,微處理器102除了寫入關於有效區塊的區塊類型以及有效區塊的實體區塊號的資訊,微處理器102還將關於相應於有效區塊的資料區塊的實體區塊號的資訊寫入有效區塊的頁面,其中有效區塊為相應的資料區塊儲存更新的資料。關於相應於有效區塊的資料區塊的實體區塊號的寫入的資訊可稱為「資料-源實體區塊號」,簡寫為PBNds。將PBNds資訊寫入有效區塊的頁面後,儲存於有效區塊的頁面中的PBNds資訊有助於從相應於相同邏輯區塊號的多個廢料收集區塊中決定最新的區塊。
請參考第10圖。第10圖為相應於邏輯區塊號的多個區塊1001~1005的實施例的示意圖。區塊1001具有區塊類型「資料區塊」與實體區塊號X,並且區塊1001包括三個頁面,頁面1001a~1001c。頁面1001a~1001c都儲存區塊類型資訊「資料區塊」與實體區塊號「X」。區塊1002具有區塊類型「有效區塊」與實體區塊號Y,並且區塊1002包括三個頁面,頁面1002a~1002c。頁面1002a~1002c都儲存區塊類型資訊「有效區塊」與實體區塊號「Y」。另外,因為有效區塊1002為資料區塊1001儲存更新資料,頁面1002a~1002c也儲存相應於資料區塊1001的資料-源實體區塊號「X」。區塊1003具有區塊類型「資料區塊」與實體區塊號Z,並且區塊1003包括五個頁面,頁面1003a~1003e。實際上,區塊1003是包含資料區塊1001與有效區塊1002的已整合資料的廢料收集區塊。因此,從頁面1002c得到的頁面1003a儲存相應資料區塊1001的區塊類型資訊「有效區塊」、實體區塊號「Y」以及資料-源實體區塊號「X」。從頁面1001b~1001c得到的頁面1003b~1003c儲存區塊類型資訊「資料區塊」以及實體區塊號「X」。頁面1003d~1003e儲存區塊類型資訊「資料區塊」以及實體區塊號「Z」。
區塊1004具有區塊類型「有效區塊」與實體區塊號Q,並且區塊1004是為資料區塊1003儲存更新資料的有效區塊。有效區塊1004包括三個頁面,頁面1004a~1004c。類似地,頁面1004a~1004c儲存有效區塊1004的區塊類型資訊「有效區塊」、有效區塊1004的實體區塊號「Z」以及相應資料區塊1003的資料-源實體區塊號「Z」。區塊1005具有區塊類型「資料區塊」以及實體區塊號P。實際上,區塊1005是包含資料區塊1003與有效區塊1004的已整合資料的廢料收集區塊。因此,從頁面1003a得到的頁面1005a儲存區塊類型資訊「有效區塊」、實體區塊號「Y」以及資料-源實體區塊號「X」。從頁面1003b~1003c得到的頁面1005b~1005c儲存區塊類型資訊「資料區塊」以及實體區塊號「X」。從有效區塊1004的更新頁面1004c得到的頁面1005d儲存相應資料區塊1003的區塊類型資訊「有效區塊」、實體區塊號「Q」以及資料-源實體區塊號「Z」。從頁面1003e得到的頁面1005e儲存區塊類型資訊「資料區塊」以及實體區塊號「Z」。頁面1005f儲存區塊1005的區塊類型資訊「資料區塊」以及實體區塊號「P」。
第11圖為決定目標區塊是否為廢料收集區塊的方法的流程示意圖。如第11圖所示,微處理器102可首先根據方法1100決定區塊1001~1005是否為廢料收集區塊。第11圖所示方法1100的步驟與第7圖所示方法700的步驟相似。舉例來說,資料區塊1001的所有頁面1001a~1001c儲存實體區塊號X,其中實體區塊號X是區塊1001的實體區塊號,並且資料區塊1001的所有頁面1001a~1001c儲存相同的區塊類型資訊「資料區塊」。因此區塊1001不是廢料收集區塊。類似地,區塊1002的所有頁面1002a~1002c儲存實體區塊號Y,其中實體區塊號Y是區塊1002的實體區塊號,並且區塊1002的所有頁面1002a~1002c儲存相同的區塊類型資訊「有效區塊」。因此區塊1002不是廢料收集區塊。類似地,決定區塊1004也不是廢料收集區塊。然而,區塊1003包括儲存實體區塊號Y的頁面1003a,實體區塊號Y與區塊1003的實體區塊號Z不同,並且區塊1003包括頁面1003b與1003c,頁面1003b與1003c儲存實體區塊號X,其中頁面1003b與1003c儲存的實體區塊號X與區塊1003的實體區塊號Z不同。另外,區塊1003包括頁面1003a,頁面1003a儲存區塊類型資訊「有效區塊」,頁面1003a儲存的區塊類型資訊「有效區塊」與頁面1003b~1003e儲存的區塊類型資訊「資料區塊」不同。因此,微處理器102決定區塊1003是廢料收集區塊。類似地,決定區塊1005也是廢料收集區塊。
因此微處理器102決定第10圖所示區塊1003與區塊1005是廢料收集區塊。請參考第12圖。第12圖為從相應於邏輯區塊號的多個區塊決定最新的區塊的方法1200的流程示意圖。首先,微處理器102獲得相應於相同的邏輯區塊號的多個區塊1001~1005(步驟1202)。微處理器102接著決定多個區塊1001~1005中是否存在廢料收集區塊(步驟1204)。根據第11圖所示方法1100,僅決定區塊1003與區塊1005是廢料收集區塊。微處理器102進一步決定在區塊1001~1005中是否有不止一個廢料收集區塊(步驟1206)。若決定僅有一個區塊是廢料收集區塊,則微處理器102決定廢料收集區塊是最新的區塊(即決策步驟1206之後的「否」路徑)。舉例來說,舉例來說,若僅有三個區塊1001~1003相應於一個邏輯區塊號,區塊1203是唯一的廢料收集區塊,則決定區塊1003是最新的區塊。
若決定不止一個區塊是廢料收集區塊(即決策步驟1206之後的「是」路徑),當儲存於廢料收集區塊的頁面中的實體區塊號或資料-源實體區塊號與廢料收集區塊的實體區塊號不相等,微處理器102決定具有儲存於廢料收集區塊的頁面的實體區塊號欄位或資料-源實體區塊號欄位中的實體區塊號的區塊是舊區塊(步驟1208)。舉例來說,因為廢料收集區塊1003的頁面1003a和頁面1003b分別儲存實體區塊號Y與實體區塊號X,其中實體區塊號Y與實體區塊號X分別是區塊1002和區塊1001的實體區塊號,並且決定區塊1001和區塊1002是舊區塊。另外,微處理器102決定具有儲存於另一個廢料收集區塊的頁面的實體區塊號欄位或資料-源實體區塊號欄位中的實體區塊號的廢料收集區塊是舊區塊(步驟1210)。舉例來說,因為廢料收集區塊1005的頁面1005d儲存資料-源實體區塊號Z,其中資料-源實體區塊號Z是另一個廢料收集區塊1003的實體區塊號,並且頁面1005e儲存實體區塊號Z,其中實體區塊號Z是另一個廢料收集區塊1003的實體區塊號,微處理器102決定區塊1003是舊區塊。因為從區塊1001~1005決定了舊區塊,因此微處理器102可接著根據區塊的區塊類型決定最新的區塊(步驟1212),例如從區塊1001~1005決定最新的區塊1005,並且根據儲存於最新的區塊1005中的資料重建FTL(步驟1214)。
請參考第13圖。第13圖為有效區塊1302轉變為資料區塊1302’的實施例的示意圖。資料區塊1301相應於邏輯區塊號X。接著更新儲存於資料區塊1301中的資料。建立有效區塊1302以儲存資料區塊1301的更新資料。因此頁面1302a~1302d儲存資料區塊1301的資料-源實體區塊號X。微處理器102接著將有效區塊1302轉變為資料區塊1302’。因為區塊1302’的區塊類型從「有效區塊」改變為「資料區塊」,因此區塊1302’的新頁面1302o與新頁面1302p儲存區塊類型資訊「資料區塊」。接著更新儲存於資料區塊1302’中的資料。微處理器102接著建立有效區塊1303以儲存資料區塊1302’中的更新資料。當微處理器102將更新資料儲存至有效區塊1303的頁面1303a與頁面1303b時,微處理器102也將資料區塊1302’的資料-源實體區塊號Y寫入有效區塊1303的頁面1303a與頁面1303b。因為頁面1303a與頁面1303b儲存資料區塊1302’的資料-源實體區塊號Y,因此微處理器102可根據第12圖所示方法1200決定有效區塊1303比資料區塊1302’更新。
請參考第14圖。第14圖為相應於邏輯區塊號的多個區塊1401~1405的另一個實施例的示意圖。區塊1401、區塊1403以及區塊1405為資料區塊,並且區塊1402與區塊1404為有效區塊。區塊1401~1405分別具有實體區塊號X、Y、Z、Q以及P。因此微處理器102可根據第12圖所示方法1200從區塊1401~1405決定舊區塊。區塊1403的頁面1403a儲存區塊1402的實體區塊號Y以及區塊1401的資料-源實體區塊號X。因此,根據方法1200的步驟1208,區塊1401與區塊1402相對於區塊1403是舊區塊。類似地,因為頁面1404a~1404d儲存區塊1403的資料-源實體區塊號Z,根據方法1200的步驟1208,區塊1403相對於區塊1404是舊區塊。另外,區塊1400的頁面1405d與頁面1405e儲存區塊1404的實體區塊號Q與區塊1403的資料-源實體區塊號Z。微處理器102因此根據方法1200的步驟1210決定區塊1403與區塊1404相對於區塊1405是舊區塊。因為區塊1401~1404都是舊區塊,微處理器102可決定區塊1405是最新的區塊並且根據儲存於最新的區塊1405中的資料重建FTL資料。
上述實施例中僅有兩種區塊類型,兩種區塊類型包括資料區塊類型與有效區塊類型。若存在第三種區塊類型,廢料收集區塊類型用於指示廢料收集區塊,並且將區塊類型資訊寫入廢料收集區塊的頁面,則微處理器102可根據儲存於頁面中的區塊類型直接決定廢料收集區塊的類型。請參考第15圖。第15圖為根據本發明一個實施例的區塊1501~1505的示意圖。區塊1501是資料區塊。區塊1502與區塊1504是有效區塊。區塊1503與區塊1505是廢料收集區塊。頁面1503a、頁面1503b以及頁面1503c因此儲存廢料收集區塊類型的區塊類型資訊,並且微處理器102可因此無須根據第11圖所示方法1100而決定區塊1503是廢料收集區塊。類似地,頁面1505a、頁面1505b、頁面1505c、頁面1505以及頁面1505e儲存廢料收集區塊類型的區塊類型資訊,並且微處理器102可因此無須根據第11圖所示方法1100而決定區塊1505是廢料收集區塊。
上面的實施例僅用來例舉本發明的實施態樣,以及闡釋本發明的技術特徵,並非用來限制本發明的範疇。任何習知技藝者可依據本發明的精神輕易完成的改變或均等性的安排均屬於本發明所主張的範圍,本發明的權利範圍應以申請專利範圍為準。
100...裝置
102...微處理器
104...DRAM
105...最新FTL
106...記憶體控制器
107...主機介面
108...快閃記憶體
109...FTL
110...起始頁面鏈接
111~11K、121~12K、131~13K...頁面
120...結束頁面鏈接
130...儲存裝置
200、300、700、800、1100、1200...方法
202~216、302~316、702~710、802~818、1102~1110、1202~1214...步驟
601~605、901~903、902’、1001~1005、1301~1303、1302’、1401~1405、1501~1505...區塊
601a~601c、602a~602c、603a~603e、604a~604c、605a~605e、901a、902a~902p、903a、903b、1001a~1001c、1002a~1002c、1003a~1003e、1004a~1004c、1005a~1005e、1301a、1301b、1302a~1302p、1303a、1303b、1401a~1401c、1402a~1402c、1403a~1403e、1404a~1404d、1405a~1405f、1501a~1501c、1502a~1502c、1503a~1503e、1504a~1504d、1505a~1505f...頁面
第1圖為根據本發明的裝置的方塊示意圖。
第2A圖為根據本發明的實施例的用於將FTL恢復資訊寫入快閃記憶體的頁面的方法的示意圖。
第2B圖為根據本發明的用於恢復最新FTL資料的方法的流程示意圖。
第3A圖為根據本發明另一實施例的將FTL恢復資訊寫入快閃記憶體的頁面的方法的示意圖。
第3B圖為根據本發明的用於恢復最新FTL資料的方法的流程示意圖。
第4圖為根據本發明另一實施例的用於將FTL恢復資訊寫入快閃記憶體的頁面的方法的示意圖。
第5圖為根據本發明另一實施例的用於將FTL恢復資訊寫入快閃記憶體的頁面的方法的示意圖。
第6圖為相應於邏輯區塊號的多個區塊的實施例的示意圖。
第7圖為決定目標區塊是否為廢料收集區塊的方法的流程示意圖。
第8圖為從相應於邏輯區塊號的多個區塊決定最新的區塊的方法的流程示意圖。
第9圖為有效區塊轉變為資料區塊的實施例的示意圖。
第10圖為相應於邏輯區塊號的多個區塊的實施例的示意圖。
第11圖為決定目標區塊是否為廢料收集區塊的方法的流程示意圖。
第12圖為從相應於邏輯區塊號的多個區塊決定最新的區塊的方法的流程示意圖。
第13圖為有效區塊轉變為資料區塊的實施例的示意圖。
第14圖為相應於邏輯區塊號的多個區塊的另一個實施例的示意圖。
第15圖為根據本發明一個實施例的多個區塊的示意圖。
109...FTL
110...起始頁面鏈接
111~11K...頁面

Claims (34)

  1. 一種用於資料恢復的方法,其中一記憶體包括用於資料儲存的多個頁面,一隨機存取記憶體根據所述多個頁面的邏輯位址與實體位址之間的一映射關係儲存快閃轉換層資料,並且所述記憶體儲存所述快閃轉換層資料的一前一個版本,所述用於資料恢復的方法包括:從一主機獲得第一資料;從所述記憶體的所述多個頁面選擇一第一頁面用於儲存所述第一資料;在所述記憶體中儲存指示所述第一頁面的一實體位址的一起始頁面鏈接;將所述第一資料、指示一下一個頁面的一實體位址的一第一頁面鏈接以及相應於所述第一頁面的第一快閃轉換層分段資料寫入所述第一頁面;從所述主機獲得下一個資料;以及將所述下一個資料、指示一後續頁面的一實體位址的一下一個頁面鏈接以及相應於所述下一個頁面的快閃轉換層分段資料寫入所述下一個頁面。
  2. 如申請專利範圍第1項所述之用於資料恢復的方法,其中重複執行寫入所述下一個資料、所述下一個頁面鏈接以及所述下一個頁面的快閃轉換層分段資料的步驟直到所述主機不再發送新資料。
  3. 如申請專利範圍第1項所述之用於資料恢復的方法,所述方法包括:所述記憶體的電源恢復後,根據儲存於所述記憶體中的所述起始頁面鏈接決定所述第一頁面;讀取所述第一頁面以獲得相應於所述第一頁面的第一快閃轉換層分段資料;根據所述第一頁面的所述第一頁面鏈接決定所述下一個頁面;讀取所述下一個頁面以獲得相應於所述下一個頁面的快閃轉換層分段資料;重複根據當前的下一個頁面的下一個頁面鏈接決定一新的下一個頁面並且讀取所述新的下一個頁面,以獲得相應於所述新的下一個頁面的快閃轉換層分段資料直到當前的下一個頁面的下一個頁面鏈接指向空值;整合所述第一快閃轉換層分段資料與所有快閃轉換層分段資料以獲得快閃轉換層補丁資料;以及將儲存於所述記憶體中的快閃轉換層資料的前一個版本與所述快閃轉換層補丁資料結合以獲得所述快閃轉換層資料的一最新版本。
  4. 如申請專利範圍第3項所述之用於資料恢復的方法,所述方法進一步包括:根據所述快閃轉換層資料的所述最新版本將從所述主機接收的邏輯位址轉換為實體位址;以及根據所述實體位址存取儲存於所述記憶體中的資料。
  5. 如申請專利範圍第1項所述之用於資料恢復的方法,其中相應於所述第一頁面的第一快閃轉換層分段資料是相應於所述第一頁面的已壓縮快閃轉換層資料,並且相應於所述下一個頁面的快閃轉換層分段資料是相應於所述下一個頁面的已壓縮快閃轉換層分段資料。
  6. 一種用於資料恢復的裝置,包括:一記憶體,包括用於資料儲存的多個頁面;一隨機存取記憶體,根據所述多個頁面的邏輯位址與實體位址之間的一映射關係儲存快閃轉換層資料;一微處理器,用於從一主機獲得第一資料,從所述記憶體的所述多個頁面選擇一第一頁面用於儲存所述第一資料,在所述記憶體中儲存指示所述第一頁面的一實體位址的一起始頁面鏈接,將所述第一資料、指示一下一個頁面的一實體位址的一第一頁面鏈接以及相應於所述第一頁面的第一快閃轉換層分段資料寫入所述第一頁面,從所述主機獲得下一個資料以及將所述下一個資料、指示一後續頁面的一實體位址的一下一個頁面鏈接以及相應於所述下一個頁面的快閃轉換層分段資料寫入所述下一個頁面。
  7. 如申請專利範圍第6項所述之用於資料恢復的裝置,其中所述微處理器重複從所述主機獲得新的下一個資料,並且重複將所述新的下一個資料、一新的下一個頁面鏈接以及新的快閃轉換層分段資料寫入一新的下一個頁面直到所述主機不再將所述新的下一個資料發送至所述用於資料恢復的裝置。
  8. 如申請專利範圍第6項所述之用於資料恢復的裝置,其中所述用於資料恢復的裝置的電源恢復後,根據儲存於所述記憶體中的所述起始頁面鏈接決定所述第一頁面,讀取所述第一頁面以獲得相應於所述第一頁面的第一快閃轉換層分段資料,根據所述第一頁面的所述第一頁面鏈接決定所述下一個頁面,讀取所述下一個頁面以獲得相應於所述下一個頁面的快閃轉換層分段資料,重複根據當前的下一個頁面的下一個頁面鏈接決定一新的下一個頁面並且讀取所述新的下一個頁面,以獲得相應於所述新的下一個頁面的快閃轉換層分段資料直到當前的下一個頁面的下一個頁面鏈接指向空值,整合所述第一快閃轉換層分段資料與所有快閃轉換層分段資料以獲得快閃轉換層補丁資料,以及將儲存於所述記憶體中的快閃轉換層資料的前一個版本與所述快閃轉換層補丁資料結合以獲得所述快閃轉換層資料的一最新版本。
  9. 如申請專利範圍第8項所述之用於資料恢復的裝置,其中所述微處理器根據所述快閃轉換層資料的所述最新版本將從所述主機接收的邏輯位址轉換為實體位址,並且根據所述實體位址存取儲存於所述記憶體中的資料。
  10. 如申請專利範圍第6項所述之用於資料恢復的裝置,其中相應於所述第一頁面的第一快閃轉換層分段資料是相應於所述第一頁面的已壓縮快閃轉換層資料,並且相應於所述下一個頁面的快閃轉換層分段資料是相應於所述下一個頁面的已壓縮快閃轉換層分段資料。
  11. 一種用於快閃裝置的資料恢復的方法,其中所述快閃裝置的一記憶體包括用於資料儲存的多個頁面,一隨機存取記憶體根據所述多個頁面的邏輯位址與實體位址之間的一映射關係儲存快閃轉換層資料,並且所述快閃記憶體儲存所述快閃轉換層資料的一前一個版本,所述用於快閃裝置的資料恢復的方法包括:從一主機獲得第一資料;從所述快閃記憶體的所述多個頁面選擇一第一頁面用於儲存所述第一資料;將所述第一資料、指示所述快閃轉換層資料的前一個版本的一第一頁面鏈接以及相應於所述第一頁面的第一快閃轉換層分段資料寫入所述第一頁面;從所述主機獲得下一個資料;以及將所述下一個資料、指示所述第一頁面的一前一個頁面鏈接以及相應於一下一個頁面的快閃轉換層分段資料寫入所述下一個頁面。
  12. 如申請專利範圍第11項所述之用於快閃裝置的資料恢復的方法,所述方法進一步包括:從所述主機獲得新的下一個資料;將所述新的下一個資料、指示一前一個頁面的一前一個頁面鏈接以及相應於所述新的下一個頁面的快閃轉換層分段資料寫入所述新的下一個頁面;以及重複從所述主機獲得新的下一個資料以及將所述新的下一個資料、所述前一個頁面鏈接以及所述快閃轉換層分段資料寫入所述新的下一個頁面的步驟,直到所述主機不再發送新資料至所述快閃裝置。
  13. 如申請專利範圍第11項所述之用於快閃裝置的資料恢復的方法,所述方法包括:所述快閃裝置的電源恢復後,搜索所述快閃記憶體的多個頁面以找到一最後的頁面;讀取所述最後的頁面以獲得相應於所述最後的頁面的快閃轉換層分段資料;根據所述最後的頁面的最後的頁面鏈接決定一前一個頁面;讀取所述前一個頁面以獲得相應於所述前一個頁面的快閃轉換層分段資料;重複根據當前的前一個頁面的前一個頁面鏈接決定一新的前一個頁面並且讀取所述新的前一個頁面,以獲得相應於所述新的前一個頁面的快閃轉換層分段資料直到當前的前一個頁面的前一個頁面鏈接指示所述第一頁面;整合所述第一快閃轉換層分段資料與所有快閃轉換層分段資料以獲得快閃轉換層補丁資料;以及將儲存於所述快閃記憶體中的快閃轉換層資料的前一個版本與所述快閃轉換層補丁資料結合以獲得所述快閃轉換層資料的一最新版本。
  14. 如申請專利範圍第13項所述之用於快閃裝置的資料恢復的方法,所述方法進一步包括:根據所述快閃轉換層資料的所述最新版本將從所述主機接收的邏輯位址轉換為實體位址;以及根據所述實體位址存取儲存於所述快閃記憶體中的資料。
  15. 如申請專利範圍第11項所述之用於快閃裝置的資料恢復的方法,所述方法進一步包括:關閉所述快閃裝置的電源時,在一儲存裝置中記錄指示一最後的頁面的一結束頁面鏈接;以及恢復所述快閃裝置的電源後,根據儲存於所述儲存裝置中的所述結束頁面鏈接決定所述最後的頁面。
  16. 如申請專利範圍第11項所述之用於快閃裝置的資料恢復的方法,其中相應於所述第一頁面的第一快閃轉換層分段資料是相應於所述第一頁面的已壓縮快閃轉換層資料,並且相應於所述下一個頁面的快閃轉換層分段資料是相應於所述下一個頁面的已壓縮快閃轉換層分段資料。
  17. 一種用於快閃裝置的資料恢復的方法,其中所述快閃裝置的一快閃記憶體包括多個區塊,並且所述多個區塊中的每個包括用於資料儲存的多個頁面,所述用於快閃裝置的資料恢復的方法包括:當將資料寫入從所述多個區塊選擇的一目標區塊的一目標頁面時,在所述目標頁面中記錄所述目標區塊的一區塊類型與一實體區塊號;恢復所述快閃裝置的電源後,根據儲存於所述目標區塊的多個頁面中的區塊類型與實體區塊號決定所述目標區塊是否是一廢料收集區塊;以及根據所述目標區塊是否是一廢料收集區塊重建快閃轉換層資料,其中所述快閃轉換層資料記錄邏輯區塊號與實體區塊號之間的一映射關係。
  18. 如申請專利範圍第17項所述之用於快閃裝置的資料恢復的方法,其中決定所述目標區塊是否是一廢料收集區塊的步驟包括:獲得所述目標區塊;決定所述目標區塊是否包括儲存與所述目標區塊的一第二實體區塊號不同的一第一實體區塊號的一第一頁面;以及若所述目標區塊包括儲存與所述目標區塊的所述第二實體區塊號不同的所述第一實體區塊號的所述第一頁面,則決定所述目標區塊是廢料收集區塊。
  19. 如申請專利範圍第18項所述之用於快閃裝置的資料恢復的方法,其中決定所述目標區塊是否是一廢料收集區塊的步驟進一步包括:決定所述目標區塊是否包括儲存不同區塊類型資訊的至少兩個第二頁面;以及當決定所述目標區塊包括儲存不同區塊類型資訊的至少兩個第二頁面時,決定所述目標區塊是廢料收集區塊。
  20. 如申請專利範圍第17項所述之用於快閃裝置的資料恢復的方法,所述方法進一步包括:所述快閃裝置的電源恢復後,獲得相應於一目標邏輯區塊號的多個第一區塊;決定所述多個第一區塊是否是廢料收集區塊;當所述多個第一區塊僅包括一個廢料收集區塊,決定所述廢料收集區塊是最新的區塊;當所述多個第一區塊包括多個廢料收集區塊,在多個廢料收集區塊中搜索一目標廢料收集區塊,所述目標廢料收集區塊包括儲存其他廢料收集區塊的實體區塊號的頁面,並且決定所述目標廢料收集區塊是最新的區塊;以及將最新的區塊的實體區塊號與所述目標邏輯區塊號之間的映射關係記錄於所述快閃轉換層資料中。
  21. 如申請專利範圍第20項所述之用於快閃裝置的資料恢復的方法,所述方法進一步包括:當所述多個第一區塊包括多個廢料收集區塊,決定所述多個第一區塊的區塊類型;以及當所述多個第一區塊包括一有效區塊,決定所述有效區塊是最新的區塊。
  22. 如申請專利範圍第17項所述之用於快閃裝置的資料恢復的方法,所述方法進一步包括:當將資料寫入從所述多個區塊選擇的所述目標區塊的所述目標頁面並且所述目標區塊是為一資料源區塊儲存更新資料的一有效區塊,將所述資料源區塊的一實體區塊號作為一資料-源實體區塊號記錄於所述目標頁面中。
  23. 如申請專利範圍第22項所述之用於快閃裝置的資料恢復的方法,所述方法進一步包括:所述快閃裝置的電源恢復後,獲得相應於一目標邏輯區塊號的多個第一區塊;決定所述多個第一區塊是否是廢料收集區塊;當所述多個第一區塊僅包括一個廢料收集區塊,決定所述廢料收集區塊是最新的區塊;以及根據儲存於所述最新的區塊中的資料重建一快閃轉換層資料。
  24. 如申請專利範圍第23項所述之用於快閃裝置的資料恢復的方法,所述方法進一步包括:當所述多個第一區塊包括多個廢料收集區塊,檢查儲存於所述多個廢料收集區塊的頁面中的多個特定實體區塊號或多個特定資料-源實體區塊號與所述多個廢料收集區塊的實體區塊號是否不相等;決定具有與儲存於所述多個廢料收集區塊的頁面的多個特定實體區塊號或多個特定資料-源實體區塊號相等的實體區塊號的所述多個第一區塊是舊區塊;從不是所述舊區塊的多個第一區塊中決定一最新的區塊;以及根據儲存於所述最新的區塊中的資料重建一快閃轉換層資料。
  25. 如申請專利範圍第17項所述之用於快閃裝置的資料恢復的方法,其中所述快閃記憶體的所述多個區塊具有區塊類型資料區塊、有效區塊以及廢料收集區塊,並且在所述目標頁面中記錄所述目標區塊的區塊類型的步驟進一步包括:當所述目標區塊是一廢料收集區塊,在所述目標頁面中記錄所述目標區塊的區塊類型廢料收集區塊。
  26. 一種用於資料恢復的裝置,包括:一記憶體,包括多個區塊,其中所述多個區塊中的每個包括用於資料儲存的多個頁面;以及一微處理器,當將資料寫入一目標頁面時,在所述目標頁面中記錄一目標區塊的一區塊類型與一實體區塊號,恢復所述裝置的電源後,根據儲存於所述目標區塊的多個頁面中的區塊類型與實體區塊號決定所述目標區塊是否是一廢料收集區塊,並且根據決定結果重建快閃轉換層資料,其中所述快閃轉換層資料記錄邏輯區塊號與實體區塊號之間的一映射關係。
  27. 如申請專利範圍第26項所述之用於資料恢復的裝置,其中當決定所述目標區塊是廢料收集區塊,所述微處理器獲得所述目標區塊,決定所述目標區塊是否包括儲存與所述目標區塊的一第二實體區塊號不同的一第一實體區塊號的一第一頁面,並且當所述目標區塊包括儲存與所述目標區塊的所述第二實體區塊號不同的所述第一實體區塊號的所述第一頁面,則決定所述目標區塊是廢料收集區塊。
  28. 如申請專利範圍第27項所述之用於資料恢復的裝置,其中當決定所述目標區塊是否是一廢料收集區塊時,所述微處理器進一步決定所述目標區塊是否包括儲存不同區塊類型的至少兩個第二頁面,並且當決定所述目標區塊包括儲存不同區塊類型的至少兩個第二頁面時,決定所述目標區塊是廢料收集區塊。
  29. 如申請專利範圍第26項所述之用於資料恢復的裝置,其中所述裝置的電源恢復後,所述微處理器獲得相應於一目標邏輯區塊號的多個第一區塊,決定所述多個第一區塊是否是廢料收集區塊,當所述多個第一區塊僅包括一個廢料收集區塊,決定所述廢料收集區塊是最新的區塊,當所述多個第一區塊包括多個廢料收集區塊,在多個廢料收集區塊中搜索一目標廢料收集區塊,所述目標廢料收集區塊包括儲存其他廢料收集區塊的實體區塊號的頁面,決定所述目標廢料收集區塊是最新的區塊,並且將所述最新的區塊的實體區塊號與所述目標邏輯區塊號之間的映射關係記錄於所述快閃轉換層資料中。
  30. 如申請專利範圍第29項所述之用於資料恢復的裝置,其中當所述多個第一區塊包括多個廢料收集區塊時所述微處理器進一步決定所述多個第一區塊的區塊類型,並且當所述多個第一區塊包括一有效區塊時決定所述有效區塊是最新的區塊。
  31. 如申請專利範圍第26項所述之用於資料恢復的裝置,其中當將資料寫入從所述多個區塊選擇的所述目標區塊的所述目標頁面並且所述目標區塊是為一資料源區塊儲存更新資料的一有效區塊,所述微處理器將所述資料源區塊的一實體區塊號作為一資料-源實體區塊號記錄於所述目標頁面中。
  32. 如申請專利範圍第31項所述之用於資料恢復的裝置,其中所述裝置的電源恢復後所述微處理器獲得相應於一目標邏輯區塊號的多個第一區塊,決定所述多個第一區塊是否是廢料收集區塊,當所述多個第一區塊僅包括一個廢料收集區塊,決定所述廢料收集區塊是最新的區塊,並且根據儲存於所述最新的區塊中的資料重建一快閃轉換層資料。
  33. 如申請專利範圍第32項所述之用於資料恢復的裝置,其中當所述多個第一區塊包括多個廢料收集區塊,所述微處理器進一步檢查儲存於所述多個廢料收集區塊的頁面中的多個特定實體區塊號或多個特定資料-源實體區塊號與所述多個廢料收集區塊的實體區塊號是否不相等,決定具有與儲存於所述多個廢料收集區塊的頁面的多個特定實體區塊號或多個特定資料-源實體區塊號相等的實體區塊號的所述多個第一區塊是舊區塊,從不是所述舊區塊的多個第一區塊中決定一最新的區塊,並且根據儲存於所述最新的區塊中的資料重建一快閃轉換層資料。
  34. 如申請專利範圍第26項所述之用於資料恢復的裝置,其中所述快閃記憶體的所述多個區塊具有區塊類型資料區塊、有效區塊以及廢料收集區塊,並且當所述目標區塊是一廢料收集區塊,所述微處理器在所述目標頁面中記錄所述目標區塊的區塊類型廢料收集區塊。
TW099131596A 2010-05-21 2010-09-17 用於資料恢復的方法、用於資料恢復的裝置、用於快閃裝置的資料恢復的方法 TWI584119B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/784,593 US8381018B2 (en) 2010-05-21 2010-05-21 Method for data recovery for flash devices

Publications (2)

Publication Number Publication Date
TW201142592A TW201142592A (en) 2011-12-01
TWI584119B true TWI584119B (zh) 2017-05-21

Family

ID=44973472

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099131596A TWI584119B (zh) 2010-05-21 2010-09-17 用於資料恢復的方法、用於資料恢復的裝置、用於快閃裝置的資料恢復的方法

Country Status (3)

Country Link
US (1) US8381018B2 (zh)
CN (1) CN102253868B (zh)
TW (1) TWI584119B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799555B2 (en) * 2011-04-14 2014-08-05 Apple Inc. Boot data storage schemes for electronic devices
JP5659178B2 (ja) * 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
CN102789431B (zh) * 2012-06-29 2015-11-25 记忆科技(深圳)有限公司 数据保护方法和***
KR101992934B1 (ko) 2012-11-14 2019-06-26 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
CN103279366B (zh) * 2013-04-24 2016-08-10 中国科学院苏州纳米技术与纳米仿生研究所 固态硬盘及掉电后基于固态硬盘快速开机的方法
CN103778964B (zh) * 2013-12-30 2016-08-17 上海晨思电子科技有限公司 一种NAND Flash烧写数据的处理、使用方法及装置、***
KR102069274B1 (ko) 2014-02-05 2020-01-22 삼성전자주식회사 메모리 제어 방법
CN103986898B (zh) * 2014-06-03 2017-02-01 四川效率源信息安全技术股份有限公司 一种提取dvr硬盘中残余视频和被删除视频的方法
CN104868987B (zh) * 2014-08-23 2018-05-01 深圳键桥通讯技术股份有限公司 基于机卡分离式网关装置的数据同步方法
CN106445400B (zh) * 2015-08-05 2019-05-24 宏碁股份有限公司 计算机***及非挥发性存储器的控制方法
CN107544913B (zh) * 2016-06-29 2021-09-28 北京忆恒创源科技股份有限公司 一种ftl表快速重建方法与装置
CN106802777A (zh) * 2017-01-20 2017-06-06 杭州电子科技大学 一种用于固态存储设备的闪存转换层控制方法
TWI613652B (zh) * 2017-03-27 2018-02-01 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
CN107301133B (zh) * 2017-07-20 2021-01-12 苏州浪潮智能科技有限公司 一种构建丢失的FTL table的方法及装置
US10725675B2 (en) * 2018-03-19 2020-07-28 Kabushiki Kaisha Toshiba Management apparatus, information processing apparatus, management method, and computer program product
CN108681509B (zh) * 2018-04-20 2022-04-08 江苏华存电子科技有限公司 一种快速建立闪存映射表的方法
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
CN111324289B (zh) * 2018-12-14 2024-02-20 兆易创新科技集团股份有限公司 一种存储器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535949B1 (en) * 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory
TW200419345A (en) * 2003-03-19 2004-10-01 Samsung Electronics Co Ltd A flash file system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE100256T1 (de) * 1987-06-29 1994-01-15 Digital Equipment Corp Bussender mit gesteuerter, trapezfoermiger ausgangsspannung.
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5341330A (en) 1992-10-30 1994-08-23 Intel Corporation Method for writing to a flash memory array during erase suspend intervals
US6574754B1 (en) * 2000-02-14 2003-06-03 International Business Machines Corporation Self-monitoring storage device using neural networks
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP4772214B2 (ja) 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 不揮発性記憶装置及びその書き換え制御方法
US6711663B2 (en) 2001-11-15 2004-03-23 Key Technology Corporation Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
KR100449708B1 (ko) 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6839826B2 (en) 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
CN101114255A (zh) 2002-08-29 2008-01-30 松下电器产业株式会社 用于将数据写入快闪存储设备的半导体存储器的装置和方法
FI116641B (fi) * 2003-10-24 2006-01-13 Nokia Corp Menetelmä elektronisessa laitteessa olevan pikavalinnan muuttamiseksi, laitteen näyttöyksikkö sekä elektroninen laite
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US20070016721A1 (en) * 2005-07-18 2007-01-18 Wyse Technology Inc. Flash file system power-up by using sequential sector allocation
US7818610B2 (en) * 2007-09-27 2010-10-19 Microsoft Corporation Rapid crash recovery for flash storage
US8397014B2 (en) * 2008-02-04 2013-03-12 Apple Inc. Memory mapping restore and garbage collection operations
KR101555022B1 (ko) * 2008-12-02 2015-09-23 삼성전자주식회사 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법
CN201417444Y (zh) * 2009-04-08 2010-03-03 李丽丽 一种显示***及其显示装置
US9063886B2 (en) * 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US8250324B2 (en) * 2009-11-30 2012-08-21 International Business Machines Corporation Method to efficiently locate meta-data structures on a flash-based storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535949B1 (en) * 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory
TW200419345A (en) * 2003-03-19 2004-10-01 Samsung Electronics Co Ltd A flash file system

Also Published As

Publication number Publication date
US8381018B2 (en) 2013-02-19
CN102253868A (zh) 2011-11-23
CN102253868B (zh) 2013-07-10
US20110289352A1 (en) 2011-11-24
TW201142592A (en) 2011-12-01

Similar Documents

Publication Publication Date Title
TWI584119B (zh) 用於資料恢復的方法、用於資料恢復的裝置、用於快閃裝置的資料恢復的方法
US9841917B2 (en) Systems and methods for configuring non-volatile memory
JP5696118B2 (ja) 不揮発性メモリシステムのためのウィーブシーケンスカウンタ
US10055345B2 (en) Methods, devices and systems for solid state drive control
KR102025180B1 (ko) 스토리지 시스템 및 그것의 쓰기 방법
US9104614B2 (en) Handling unclean shutdowns for a system having non-volatile memory
US8706989B2 (en) Data storage device with power-off recovery system and method thereof
TWI494760B (zh) 用來管理一記憶裝置之方法以及其相關之記憶裝置
US8347138B2 (en) Redundant data distribution in a flash storage device
US8996790B1 (en) System and method for flash memory management
US9336095B2 (en) Computing system and related data management method thereof
TWI608351B (zh) 用於具有非揮發性記憶體之系統之較快樹狀結構平坦化
US20090089610A1 (en) Rapid crash recovery for flash storage
US11379447B2 (en) Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US10007451B2 (en) Scalable SPOR algorithm for flash memories
CN101681299A (zh) 存储器***
CN102483714A (zh) 恢复索引页
JP2003167690A (ja) ディスクアレイ装置及び同装置におけるデータ復旧方法
US11520698B2 (en) Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method
KR101369408B1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
US11609844B2 (en) Memory system with hierarchical tables
CN113918085A (zh) 用于元数据管理的存储器***及其操作方法
JP2018206161A (ja) 記憶装置および記憶装置のデータ管理方法