TWI474170B - 快閃記憶體轉譯層(ftl)資料庫日誌記錄方案 - Google Patents
快閃記憶體轉譯層(ftl)資料庫日誌記錄方案 Download PDFInfo
- Publication number
- TWI474170B TWI474170B TW102134877A TW102134877A TWI474170B TW I474170 B TWI474170 B TW I474170B TW 102134877 A TW102134877 A TW 102134877A TW 102134877 A TW102134877 A TW 102134877A TW I474170 B TWI474170 B TW I474170B
- Authority
- TW
- Taiwan
- Prior art keywords
- data structure
- log record
- volatile memory
- block
- slice
- Prior art date
Links
- 238000013519 translation Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims description 26
- 238000007726 management method Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000011084 recovery Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000009528 severe injury Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Description
本發明大體上係關於資料儲存,且特定而言,係關於用於非揮發性儲存裝置中之日誌記錄的方法及系統。
各種記憶體系統使用非揮發性記憶體(諸如,快閃記憶體)以用於儲存資料。快閃記憶體裝置通常係由被稱為快閃記憶體管理或快閃記憶體轉譯層(FTL)之管理層來管理。FTL通常管理快閃記憶體在電力中斷之前及之後的操作連同進行其他任務。
本文中所描述之本發明之實施例提供一種在包括非揮發性記憶體及揮發性記憶體之儲存裝置中的方法。該方法包括維持儲存用於管理非揮發性記憶體中之資料儲存之管理資訊的至少一資料結構,使得該資料結構之至少一部分儲存於揮發性記憶體中。在儲存裝置之操作期間,建立日誌記錄塊(journaling chunk)之序列,每一日誌記錄塊包括資料結構之各別切片(slice)及自序列中之前一日誌記錄塊起發生在資料結構中的一或多個改變。日誌記錄塊之序列儲存於非揮發性記憶體中。在自儲存裝置中之電力中斷復原後,使用所儲存之日誌記錄塊重新建構資料結構。
在一些實施例中,該資料結構包括邏輯位址至非揮發性記憶體
中之各別實體儲存位置的映射。另外或替代地,該資料結構包括非揮發性記憶體之各別記憶體區塊之參數的資料庫。
在所揭示之實施例中,建立日誌記錄塊之序列包括累積該等改變,且在所累積之改變達到預定義之資料大小時,儲存包括所累積之改變及資料結構之切片的日誌記錄塊。在一實施例中,建立日誌記錄塊之序列包括將與儲存於給定日誌記錄塊中之資料結構之切片無關的至少一改變包括於儲存於給定日誌記錄塊中之改變中。
在另一實施例中,建立日誌記錄塊之序列包括將循環掃描資料結構之各別連續切片儲存於連續日誌記錄塊中。在又一實施例中,建立日誌記錄塊之序列包括將指向資料結構中獲得各別切片之各別位置的指示儲存於每一日誌記錄塊中。
在又一實施例中,該至少、一資料結構包括多個資料結構,且每一日誌記錄塊包括該多個資料結構之各別切片。在又一實施例中,重新建構該資料結構包括識別在電力中斷之前最近寫入至非揮發性記憶體之最後日誌記錄塊;識別包括資料結構之第一有效切片的第一日誌記錄塊;及自非揮發性記憶體復原自所識別之第一日誌記錄塊直至所識別之最後日誌記錄塊的日誌記錄塊。復原日誌記錄塊可包括:僅在驗證已經復原由自給定日誌記錄塊讀取之給定改變所參考之切片後才應用給定改變。
根據本發明之實施例,另外提供一種儲存裝置,其包括非揮發性記憶體、揮發性記憶體及處理器。該處理器經組態以進行以下操作:維持儲存用於管理非揮發性記憶體中之資料儲存之管理資訊的至少一資料結構,使得該資料結構之至少一部分儲存於揮發性記憶體中;在儲存裝置之操作期間,建立日誌記錄塊之序列,每一日誌記錄塊包括資料結構之各別切片及自序列中之前一日誌記錄塊起發生在資料結構中的一或多個改變;將日誌記錄塊之序列儲存於非揮發性記憶
體中;及在自儲存裝置中之電力中斷復原後,使用所儲存之日誌記錄塊重新建構資料結構。
將自連同圖式一起進行之本發明之實施例的以下詳細描述來更全面地理解本發明。
20‧‧‧電腦
24‧‧‧固態磁碟機(SSD)
26‧‧‧中央處理單元(CPU)
30‧‧‧SSD控制器
34‧‧‧NAND快閃記憶體裝置
38‧‧‧主機介面
42‧‧‧處理器
46‧‧‧記憶體介面
50‧‧‧隨機存取記憶體(RAM)
60‧‧‧虛擬至實體映射(V2P)表
62‧‧‧虛擬至實體映射(V2P)表切片
64‧‧‧區塊資料庫(BDB)
66‧‧‧區塊資料庫(BDB)表切片
68‧‧‧日誌記錄塊
70‧‧‧虛擬至實體映射(V2P)快照欄位
72‧‧‧區塊資料庫(BDB)快照欄位
74‧‧‧改變欄位
圖1為示意性地說明根據本發明之實施例的記憶體系統之方塊圖;圖2為示意性地說明根據本發明之實施例的資料庫日誌記錄方案之圖;圖3為示意性地說明根據本發明之實施例的用於資料庫日誌記錄之方法的流程圖;及圖4為示意性地說明根據本發明之實施例的資料庫復原方案之圖。
本文中所描述之本發明之實施例提供用於進行保護以防非揮發性儲存裝置中之電力中斷的改良之方法及系統。
在一些實施例中,儲存裝置包含諸如「反及」(NAND)快閃記憶體之非揮發性記憶體及管理該非揮發性記憶體中之資料儲存的處理器。該處理器維持儲存用於非揮發性記憶體中之資料儲存之管理資訊的至少一資料結構。該資料結構可包含(例如)邏輯至實體位址轉譯表及/或記憶體區塊參數資料庫。
資料結構之至少一部分儲存於儲存裝置之揮發性記憶體(諸如,隨機存取記憶體(RAM))中。因而,應保護資料結構以防電力中斷。在本文中所描述之一些實施例中,處理器藉由應用週期性日誌記錄方案來保護資料結構。
在一典型實施中,處理器將資料結構劃分成大量連續切片。在儲存裝置之操作期間,處理器逐步地累積發生在資料結構中之改變。當所累積之改變達到預定義之資料大小時,處理器建立「日誌記錄塊」,其包含自先前日誌記錄塊起所發生之改變且亦包含資料結構之下一切片。處理器接著將日誌記錄塊儲存於非揮發性記憶體中。
換言之,處理器持續地建立及儲存日誌記錄塊之序列,使得每一日誌記錄塊包含資料結構之各別切片加上自先前塊起發生在資料結構中的改變。然而,儲存於給定塊中之改變可與整個資料結構有關,未必與儲存於給定塊中之個別切片有關。
日誌記錄塊之序列使得處理器能夠在電力中斷之情況下重新建構資料結構。以下進一步描述實例復原方案。
由於處理器以小塊而非大量地來備份資料結構及改變,因此所揭示之日誌記錄方案導致少量儲存效能之降級或不導致儲存效能之降級。此外,此方案使得處理器能夠在電力中斷之後高速地重新建構資料結構。
由於以頻繁間隔來備份資料結構之切片,因此需要備份之改變的數目相對較小。因此,在復原期間僅需要應用少量改變。此特徵亦減少在任何給定時間尚未備份至非揮發性記憶體之改變(亦即,歸因於電力中斷而將丟失之改變)的數目。
此外,選擇塊大小及塊中之個別欄位之大小的靈活性允許使日誌記錄方案適合執行階段儲存效能與復原時間之間的任何所要取捨。處理器儲存日誌記錄塊之速率通常可變且取決於活動等級:在密集儲存期間,改變迅速地累積,日誌記錄方案快速地填充且日誌記錄速率為高的。在閒置時間期間,改變緩慢地累積且日誌記錄速率相應地減小。
圖1為示意性地說明根據本發明之實施例的記憶體系統之方塊圖。在當前實例中,記憶體系統包含將資料儲存於固態磁碟機(SSD)24中之電腦20。電腦20可包含(例如)行動裝置、平板電腦或個人電腦。該電腦包含用作主機之中央處理單元(CPU)26。
在替代實施例中,主機可包含任何其他合適之處理器或控制器,且儲存裝置可包含任何其他合適之裝置。舉例而言,主機可包含企業儲存系統之儲存控制器,且儲存裝置可包含SSD或SSD陣列。將資料儲存於非揮發性儲存裝置中之主機的其他實例包含行動電話、數位攝影機、媒體播放器及抽取式記憶卡或裝置。
SSD 24將用於CPU 26之資料儲存於非揮發性記憶體中,在當前實例中,儲存於一或多個NAND快閃記憶體裝置34中。在替代實施例中,SSD 24中之非揮發性記憶體可包含任何其他合適類型之非揮發性記憶體,諸如「反或」(NOR)快閃記憶體、電荷捕獲型快閃記憶體(CTF)、相變RAM(PRAM)、磁阻式RAM(MRAM)或鐵電RAM(FeRAM)。
SSD控制器30執行SSD之各種儲存及管理任務。SSD控制器通常亦被稱為記憶體控制器。SSD控制器30包含用於與CPU 26通信之主機介面38、用於與快閃記憶體裝置34通信之記憶體介面46,及進行SSD之各種處理任務的處理器42。
SSD 24進一步包含揮發性記憶體,在當前實例中為隨機存取記憶體(RAM)50。在圖1之實施例中,將RAM 50展示為SSD控制器30之一部分,但RAM可替代地與SSD控制器分離。RAM 50可包含(例如)靜態RAM(SRAM)、動態RAM(DRAM)、兩個RAM類型之組合或任何其他合適類型之揮發性記憶體。
SSD控制器30且詳言之處理器42可以硬體來實施。或者,SSD控制器可包含執行合適軟體或硬體元件與軟體元件之組合的微處理器。
圖1之組態為僅出於概念清楚起見而展示之例示性組態。亦可使用任何其他合適之SSD或其他記憶體系統組態。已為了清楚而自圖省略對理解本發明之原理而言非為必要之元件(諸如,各種介面、定址電路、時序及定序電路以及除錯電路)。在一些應用(例如,非SSD應用)中,藉由合適記憶體控制器進行SSD控制器30之功能。
在圖1中所展示之例示性系統組態中,將記憶體裝置34及SSD控制器30實施為單獨積體電路(IC)。然而,在替代實施例中,記憶體裝置及SSD控制器可整合於單一多晶片封裝(MCP)或系統單晶片(SoC)中之單獨半導體晶粒上,且可藉由內部匯流排來互連。另外替代地,SSD控制器電路中之一些或全部可駐留於上面安置有記憶體裝置34中之一或多者的同一晶粒上。另外替代地,SSD控制器30之功能性中之一些或全部可以軟體來實施且藉由CPU 26或電腦中之其他處理器進行。在一些實施例中,可將CPU 26及SSD控制器30製造於同一晶粒上,或製造於同一裝置封裝中之單獨晶粒上。
在一些實施例中,處理器42包含以軟體程式化以進行本文中所描述之功能的通用處理器。可經由(例如)網路將軟體以電子形式下載至處理器,或可替代地或另外將軟體提供於及/或儲存於非暫時性有形媒體(諸如,磁性、光學或電子記憶體)上。
在一些實施例中,SSD控制器30之處理器42執行通常以軟體實施之管理層,其管理快閃記憶體裝置34中之資料儲存。該管理層被稱為快閃記憶體轉譯層(FTL)或快閃記憶體管理。作為此管理層之部分,處理器42維持儲存用於快閃記憶體裝置中之資料儲存之管理資訊的一或多個資料結構。在SSD之操作期間,處理器持續地更新該管理資訊。
處理器42可維持含有任何合適類型之管理資訊的任何合適數目及類型之資料結構。資料結構之一實例類型包含邏輯至實體位址轉
譯,其將由主機指定之邏輯位址(亦稱為邏輯區塊位址LBA)映射成快閃記憶體裝置34中之各別實體儲存位置。
在另一實例中,資料結構可包含快閃記憶體裝置34之記憶體區塊之參數的資料庫,例如,記憶體區塊之使用資訊、區塊狀態及/或用於記憶體區塊中之資料程式化及讀出的儲存參數。
在以下描述中,處理器42維持兩個資料結構一邏輯至實體位址轉譯表(亦稱為虛擬至實體映射V2P)及區塊資料庫(BDB)。V2P及BDB之至少一部分儲存於RAM 50中。保護儲存於RAM 50中之管理資訊以防電力中斷以便避免丟失管理資訊為重要的。在許多實際狀況下,丟失管理資訊可導致對大量所儲存資料之嚴重損害。
圖2為示意性地說明根據本發明之實施例的資料庫日誌記錄方案之圖。當前實例展示V2P表60及BDB 64。處理器42將V2P表60劃分成多個切片62,且將BDB 64劃分成多個切片66。給定資料結構之切片通常具有均勻大小。
為了將V2P表及BDB備份至快閃記憶體裝置34,處理器42在SSD之操作期間建立日誌記錄塊68之序列。每一日誌記錄塊68包含用於儲存V2P表60之各別切片62的V2P快照欄位70、用於儲存BDB 64之各別切片66的BDB快照欄位72,及用於儲存自先前日誌記錄塊68起發生在V2P表中及BDB中之改變的改變欄位74。在一實施例中,每一塊包含指向V2P表中及BDB中獲得各別切片之位置的指示。
通常,每一日誌記錄塊68之改變欄位74一經填滿,處理器42便將該塊儲存於快閃記憶體裝置34中。換言之,處理器42持續地用在V2P表中及BDB中作出之改變來更新當前塊之改變欄位74。當改變欄位已滿時,亦即,當所累積之改變達到欄位74之大小時,處理器42將日誌記錄塊寫入至快閃記憶體裝置34。
在此操作模式下,儲存塊之速率可變且取決於資料結構之可變性等級。在閒置時間期間,改變緩慢地累積,且欄位74在相對較長時間段後才填滿。在密集儲存活動期間,改變快速地累積,欄位74快速地填滿,且因此將塊寫入至快閃記憶體裝置之速率增加。
通常,處理器42循環地(逐切片)掃描V2P表60及BDB 64。在將給定資料結構之最後切片儲存於塊68中之後,處理器42通常繞回且再次開始備份資料結構之第一切片。處理器42保持追蹤最近備份至快閃記憶體裝置之切片62及66之位置的指標。當到達給定資料結構之結尾時,各別指標繞回至資料結構之開頭。
儲存塊68所需之記憶體空間通常應允許儲存每一資料結構之單一例項加上用於儲存遞增改變之額外記憶體空間。通常,處理器42追蹤快閃記憶體裝置34中儲存日誌記錄塊之位置。此等位置通常備份於快閃記憶體裝置中,此係因為該等位置在電力中斷之情況下亦可能丟失。
應注意,在給定塊68中,欄位74中之改變未必與儲存於同一塊之欄位70及72中的特定切片62及66有關。通常,儲存於給定塊中之改變可與資料結構之任何部分有關。
將給定切片(62或66)寫入至塊68通常被定義為不可部分完成之操作。換言之,在給定切片之寫入期間,處理器42通常不允許對資料結構之任何改變。儲存於塊68中之改變可包含各種類型之改變。然而,通常定義改變以便基於切片及改變實現對整個資料結構之重新建構。
圖3為示意性地說明根據本發明之實施例的用於資料庫日誌記錄之方法的流程圖。該方法開始於:在初始化步驟80,SSD控制器30之處理器42對新塊進行初始化,且使指向待備份之接下來之切片62及66的循環指標遞增。
在塊填入步驟84,處理器42用接下來之資料結構切片填入當前
塊。在當前實例中,處理器42將下一V2P表切片62複製至當前塊之欄位70,且將下一BDB表切片66複製至當前塊之欄位72。
在改變累積步驟88,處理器42開始累積在SSD中之資料儲存期間在資料結構中(例如,在V2P映射中及在BDB中)執行的改變。處理器42將新改變添加至當前建立之塊68的改變欄位74。在檢查步驟92,處理器42檢查改變欄位是否已滿。
若改變欄位尚未已滿,則方法迴圈回至以上之步驟88,且處理器42繼續累積V2P及BDB改變。若改變欄位已滿,則在塊儲存步驟96,處理器將當前塊68儲存於快閃記憶體裝置34中。方法接著迴圈回至以上之步驟80以初始化及開始填充下一塊。
圖3之流程為僅出於清楚起見而選擇之實例流程。在替代實施例中,可使用任何其他合適之操作流程。
當自電力中斷復原時,處理器42使用儲存於快閃記憶體裝置34中之日誌記錄塊重新建構V2P表60及BDB 64。在實例實施例中,處理器42如下進行復原程序(針對給定資料結構):
■處理器42識別寫入至快閃記憶體裝置之最近塊68。此塊被稱作最後塊。
■藉由使用每一資料結構之已知大小,處理器42識別保持資料結構之第一有效切片的所儲存塊68。此塊被稱作第一塊。
■處理器42自快閃記憶體裝置讀取自以上所提及之第一塊至以上所提及之最後塊的所儲存塊。
■對於每一所讀取之塊,處理器42將切片自該塊複製至RAM 50中之適當位置。處理器42接著查看所讀取之塊中的改變。若給定改變與已經復原至RAM之切片有關,則處理器42應用指定改變。否則,處理器丟棄該改變而不應用該改變(該改變應由稍後切片說明以自稍
後切片複製)。
在此程序之後,處理器42將各種指標尋回至資料結構,且移至正常執行階段操作。自此點起,處理器42繼續使用圖3之方法備份資料結構。若需要,可使用在第一復原之前儲存的塊執行第二復原程序。換言之,處理器42不必在自電力中斷復原之後執行資料結構之完整基線備份。
圖4為示意性地說明根據本發明之實施例的資料庫復原方案之圖。當前實例示範所揭示之技術的若干額外特徵。在此實例中,(例如)使用多平面寫入命令跨越N個快閃記憶體晶粒而並列地儲存多個日誌記錄塊68。亦可使用多平面讀取命令執行所儲存塊之復原。此種類之儲存增加備份及復原兩者之速度。
圖4中之箭頭標記將V2P及BDB切片自日誌記錄塊複製至RAM 50中之V2P及BDB以及應用塊中所指定之改變的程序。該等箭頭中之一些被標記為「有效」,意謂處理器42應用各別改變。如上文所解釋,由處理器丟棄之改變被標記為「不相關」。
應瞭解,以上所描述之實施例借助於實例而引證,且本發明不限於上文特別展示且描述的內容。更確切而言,本發明之範疇包括上文所描述之各種特徵的組合及子組合兩者,以及熟習此項技術者在閱讀前文描述後將想到且先前技術中未揭示之變化及修改。除了針對以與在本說明書中明顯地或隱含地作出之定義衝突的方式定義於以引用之方式併入本專利申請案中之文件中的任何術語,僅應考慮本說明書中之定義外,此等併入之文件將被視為申請案之組成部分。
60‧‧‧虛擬至實體映射(V2P)表
62‧‧‧虛擬至實體映射(V2P)表切片
64‧‧‧區塊資料庫(BDB)
66‧‧‧區塊資料庫(BDB)表切片
68‧‧‧日誌記錄塊
70‧‧‧虛擬至實體映射(V2P)快照欄位
72‧‧‧區塊資料庫(BDB)快照欄位
74‧‧‧改變欄位
Claims (20)
- 一種方法,其包含:在包括一非揮發性記憶體及一揮發性記憶體之一儲存裝置中,維持儲存用於管理該非揮發性記憶體中之資料儲存之管理資訊的至少一資料結構,使得該資料結構之至少一部分儲存於該揮發性記憶體中;在該儲存裝置之操作期間,建立日誌記錄塊之一序列,每一日誌記錄塊包含該資料結構之一各別切片及自該序列中之前一日誌記錄塊起發生在該資料結構中的一或多個改變;將該等日誌記錄塊之該序列儲存於該非揮發性記憶體中;及在自該儲存裝置中之一電力中斷復原後,使用該等所儲存之日誌記錄塊重新建構該資料結構。
- 如請求項1之方法,其中該資料結構包含邏輯位址至該非揮發性記憶體中之各別實體儲存位置的一映射。
- 如請求項1之方法,其中該資料結構包含該非揮發性記憶體之各別記憶體區塊之參數的一資料庫。
- 如請求項1之方法,其中建立該等日誌記錄塊之該序列包含:累積該等改變,且在該等所累積之改變達到一預定義之資料大小時,儲存包括該等所累積之改變及該資料結構之該切片的該日誌記錄塊。
- 如請求項1之方法,其中建立該等日誌記錄塊之該序列包含:將與儲存於一給定日誌記錄塊中之該資料結構之該切片無關的至少一改變包括於儲存於該給定日誌記錄塊中之該等改變中。
- 如請求項1之方法,其中建立該等日誌記錄塊之該序列包含:將循環掃描該資料結構之各別連續切片儲存於連續日誌記錄塊 中。
- 如請求項1之方法,其中建立該等日誌記錄塊之該序列包含:將指向該資料結構中獲得該各別切片之一各別位置的一指示儲存於每一日誌記錄塊中。
- 如請求項1之方法,其中該至少一資料結構包含多個資料結構,且其中每一日誌記錄塊包含該多個資料結構之各別切片。
- 如請求項1之方法,其中重新建構該資料結構包含:識別在該電力中斷之前最近寫入至該非揮發性記憶體之一最後日誌記錄塊;識別包含該資料結構之一第一有效切片的一第一日誌記錄塊;及自該非揮發性記憶體復原自該所識別之第一日誌記錄塊直至該所識別之最後日誌記錄塊的該等日誌記錄塊。
- 如請求項9之方法,其中復原該等日誌記錄塊包含:僅在驗證已經復原由自一給定日誌記錄塊讀取之一給定改變所參考之該切片後才應用該給定改變。
- 一種儲存裝置,其包含:一非揮發性記憶體;一揮發性記憶體;及一處理器,其經組態以進行以下操作:維持儲存用於管理該非揮發性記憶體中之資料儲存之管理資訊的至少一資料結構,使得該資料結構之至少一部分儲存於該揮發性記憶體中;在該儲存裝置之操作期間,建立日誌記錄塊之一序列,每一日誌記錄塊包含該資料結構之一各別切片及自該序列中之前一日誌記錄塊起發生在該資料結構中的一或多個改變;將該等日誌記錄塊之該序列儲存於該非揮發性記憶體中;及在自該儲存裝置中之一電力中斷復原後,使用該等所儲存之日誌記錄塊重新建構該資料結構。
- 如請求項11之儲存裝置,其中該資料結構包含邏輯位址至該非揮發性記憶體中之各別實體儲存位置的一映射。
- 如請求項11之儲存裝置,其中該資料結構包含該非揮發性記憶體之各別記憶體區塊之參數的一資料庫。
- 如請求項11之儲存裝置,其中該處理器經組態以累積該等改變,且在該等所累積之改變達到一預定義之資料大小時,儲存包括該等所累積之改變及該資料結構之該切片的該日誌記錄塊。
- 如請求項11之儲存裝置,其中該處理器經組態以將與儲存於一給定日誌記錄塊中之該資料結構之該切片無關的至少一改變包括於儲存於該給定日誌記錄塊中之該等改變中。
- 如請求項11之儲存裝置,其中該處理器經組態以將循環掃描該資料結構之各別連續切片儲存於連續日誌記錄塊中。
- 如請求項11之儲存裝置,其中該處理器經組態以將指向該資料結構中獲得該各別切片之一各別位置的一指示儲存於每一日誌記錄塊中。
- 如請求項11之儲存裝置,其中該至少一資料結構包含多個資料結構,且其中每一日誌記錄塊包含該多個資料結構之各別切片。
- 如請求項11之儲存裝置,其中該處理器經組態以藉由以下操作重新建構該資料結構:識別在該電力中斷之前最近寫入至該非揮發性記憶體之一最後日誌記錄塊;識別包含該資料結構之一第一有效切片的一第一日誌記錄塊;及自該非揮發性記憶體復原自該所識別之第一日誌記錄塊直至該所識別之最後日誌記錄塊的該等日誌記錄塊。
- 如請求項19之儲存裝置,其中該處理器經組態以僅在驗證已經復原由自一給定日誌記錄塊讀取之一給定改變所參考之該切片後才應用該給定改變。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/630,176 US8880786B2 (en) | 2012-09-28 | 2012-09-28 | Flash translation layer (FTL) database journaling schemes |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201416857A TW201416857A (zh) | 2014-05-01 |
TWI474170B true TWI474170B (zh) | 2015-02-21 |
Family
ID=49261779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102134877A TWI474170B (zh) | 2012-09-28 | 2013-09-26 | 快閃記憶體轉譯層(ftl)資料庫日誌記錄方案 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8880786B2 (zh) |
EP (1) | EP2901282B1 (zh) |
JP (1) | JP5982576B2 (zh) |
KR (1) | KR101579711B1 (zh) |
CN (1) | CN104603760B (zh) |
TW (1) | TWI474170B (zh) |
WO (1) | WO2014052016A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102225618B1 (ko) * | 2014-09-30 | 2021-03-12 | 한화테크윈 주식회사 | 실패 시나리오로부터 기록된 데이터의 시간 관련 메타데이터의 공간 효율적인 복구 |
CN107544866B (zh) * | 2016-06-29 | 2021-01-05 | 北京忆恒创源科技有限公司 | 一种日志更新方法与装置 |
CN113590504B (zh) * | 2016-06-29 | 2024-09-03 | 北京忆恒创源科技股份有限公司 | 存储日志帧以及日志条目的固态硬盘 |
KR102259256B1 (ko) * | 2017-05-16 | 2021-06-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN107220145B (zh) * | 2017-05-19 | 2021-06-01 | 北京计算机技术及应用研究所 | 一种闪存数据库数据恢复的方法 |
US10635654B2 (en) | 2017-06-12 | 2020-04-28 | Samsung Electronics Co., Ltd. | Data journaling for large solid state storage devices with low DRAM/SRAM |
US10997065B2 (en) * | 2017-11-13 | 2021-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
KR20210012085A (ko) | 2019-07-23 | 2021-02-03 | 삼성전자주식회사 | 저널 리플레이를 개선하기 위한 스토리지 장치, 그것의 동작 방법, 및 스토리지 장치를 포함하는 전자 장치 |
US11681635B2 (en) * | 2020-09-07 | 2023-06-20 | Mellanox Technologies, Ltd. | Secure flash controller |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080130156A1 (en) * | 2006-09-13 | 2008-06-05 | Hitachi Global Storage Technologies Netherlands B.V. | Disk drive with nonvolatile memory for storage of failure-related data |
TW200919185A (en) * | 2007-10-25 | 2009-05-01 | Samsung Electronics Co Ltd | Data storage device, memory system, and computing system using nonvolatile memory device |
US20100211851A1 (en) * | 2009-02-17 | 2010-08-19 | Robert William Dixon | Data storage system with non-volatile memory for error correction |
TW201101030A (en) * | 2009-06-29 | 2011-01-01 | Mediatek Inc | Memory system and mapping methods thereof |
CN102004706B (zh) * | 2009-09-01 | 2012-09-19 | 联芯科技有限公司 | 一种基于ftl的闪存擦写掉电保护方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089349B2 (en) * | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
JP2008243138A (ja) * | 2007-03-29 | 2008-10-09 | Hitachi Ltd | ストレージシステム及びデータ復元方法 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8321652B2 (en) * | 2008-08-01 | 2012-11-27 | Infineon Technologies Ag | Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks |
KR101555022B1 (ko) * | 2008-12-02 | 2015-09-23 | 삼성전자주식회사 | 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법 |
JP5377175B2 (ja) * | 2009-09-08 | 2013-12-25 | 株式会社東芝 | コントローラ、及びデータ記憶装置 |
WO2012020544A1 (ja) * | 2010-08-11 | 2012-02-16 | 日本電気株式会社 | データ処理システム、データ処理方法、およびプログラム |
JP5291166B2 (ja) * | 2011-10-04 | 2013-09-18 | 株式会社日立製作所 | 記憶装置システム及びデータ回復方法 |
US8631209B2 (en) * | 2012-01-26 | 2014-01-14 | Upthere, Inc. | Reusable content addressable stores as building blocks for creating large scale storage infrastructures |
-
2012
- 2012-09-28 US US13/630,176 patent/US8880786B2/en active Active
-
2013
- 2013-09-12 JP JP2015531341A patent/JP5982576B2/ja active Active
- 2013-09-12 CN CN201380044512.1A patent/CN104603760B/zh active Active
- 2013-09-12 WO PCT/US2013/059375 patent/WO2014052016A1/en active Application Filing
- 2013-09-12 EP EP13770574.5A patent/EP2901282B1/en active Active
- 2013-09-12 KR KR1020157004728A patent/KR101579711B1/ko active IP Right Grant
- 2013-09-26 TW TW102134877A patent/TWI474170B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080130156A1 (en) * | 2006-09-13 | 2008-06-05 | Hitachi Global Storage Technologies Netherlands B.V. | Disk drive with nonvolatile memory for storage of failure-related data |
TW200919185A (en) * | 2007-10-25 | 2009-05-01 | Samsung Electronics Co Ltd | Data storage device, memory system, and computing system using nonvolatile memory device |
US20100211851A1 (en) * | 2009-02-17 | 2010-08-19 | Robert William Dixon | Data storage system with non-volatile memory for error correction |
TW201101030A (en) * | 2009-06-29 | 2011-01-01 | Mediatek Inc | Memory system and mapping methods thereof |
CN102004706B (zh) * | 2009-09-01 | 2012-09-19 | 联芯科技有限公司 | 一种基于ftl的闪存擦写掉电保护方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20150038290A (ko) | 2015-04-08 |
CN104603760A (zh) | 2015-05-06 |
US20140095765A1 (en) | 2014-04-03 |
JP5982576B2 (ja) | 2016-08-31 |
TW201416857A (zh) | 2014-05-01 |
CN104603760B (zh) | 2017-07-21 |
JP2015527682A (ja) | 2015-09-17 |
EP2901282A1 (en) | 2015-08-05 |
KR101579711B1 (ko) | 2015-12-22 |
WO2014052016A1 (en) | 2014-04-03 |
EP2901282B1 (en) | 2016-07-20 |
US8880786B2 (en) | 2014-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI474170B (zh) | 快閃記憶體轉譯層(ftl)資料庫日誌記錄方案 | |
US9798620B2 (en) | Systems and methods for non-blocking solid-state memory | |
US9612953B1 (en) | Data placement based on data properties in a tiered storage device system | |
US10127166B2 (en) | Data storage controller with multiple pipelines | |
US9075710B2 (en) | Non-volatile key-value store | |
US10019353B2 (en) | Systems and methods for referencing data on a storage medium | |
TWI449051B (zh) | 固態硬碟中之改良型錯誤校正技術 | |
KR101821001B1 (ko) | Raid 어레이에서 장치내 데이터 보호 | |
JP6175684B2 (ja) | Nandフラッシュメモリ上のデータの記憶のためのアーキテクチャ | |
US9990263B1 (en) | Efficient use of spare device(s) associated with a group of devices | |
US8984247B1 (en) | Storing and reconstructing mapping table data in a data storage system | |
US9058288B2 (en) | Redundant storage in non-volatile memory by storing redundancy information in volatile memory | |
US20150199268A1 (en) | Data placement based on data retention in a tiered storage device system | |
TWI528174B (zh) | 基於可用記憶體空間選擇冗餘儲存組態 | |
TWI634426B (zh) | 管理邏輯至實體轉譯資訊的備份以控制開機時間以及寫入放大 | |
US20150178164A1 (en) | Reconstructing an indirection table from logged media addresses | |
TWI461901B (zh) | 資料儲存與重建的方法與系統 | |
US11347653B2 (en) | Persistent storage device management | |
CN106776147A (zh) | 一种差异数据备份方法和差异数据备份装置 | |
KR101548452B1 (ko) | 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 | |
CN105095352B (zh) | 应用于分布式系统的数据处理方法及装置 | |
US20150363274A1 (en) | Storing backup data separate from catalog data | |
CN108268336B (zh) | 保证元数据一致性的方法及装置 | |
WO2015109128A1 (en) | Data replacement based on data properties and data retention in a tiered storage device system | |
KR101545077B1 (ko) | 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |