TWI669610B - 資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents
資料儲存裝置以及非揮發式記憶體控制方法 Download PDFInfo
- Publication number
- TWI669610B TWI669610B TW107120354A TW107120354A TWI669610B TW I669610 B TWI669610 B TW I669610B TW 107120354 A TW107120354 A TW 107120354A TW 107120354 A TW107120354 A TW 107120354A TW I669610 B TWI669610 B TW I669610B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- volatile memory
- root directory
- page
- metadata
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
非揮發式記憶體之特殊資訊的資料結構。關於一檔案,一非揮發式記憶體是以一第一區塊儲存該檔案的檔案內容,並以一第二區塊儲存該檔案的檔案系統資料。該非揮發式記憶體上維護的一根目錄包括該第一區塊以及該第二區塊的使用資訊。變動該根目錄使更新該第一區塊以及該第二區塊的使用資訊時,該第一區塊以及該第二區塊的使用資訊亦更新至該第二區塊作為元資料。元資料以及根目錄之高度同步將大大簡化一復電程序。
Description
本發明係有關於資料儲存裝置以及其中非揮發式記憶體的控制方法。
非揮發式記憶體有多種形式-例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,用於長時間資料保存。
然而,非揮發式記憶體的寫入操作可能被非預期掉電中斷。為確保資料可靠度,資料儲存裝置需要一復電程序。有效率的復電程序為本技術領域一項重要課題。
本案提出一種資料結構,幫助實現高效的復電程序。
根據本案一種實施方式實現的資料儲存裝置包括一非揮發式記憶體以及一控制器。根據一主機之要求,該控制器寫入一檔案(file)至該非揮發式記憶體。該控制器令該非揮發式記憶體以一第一區塊接收該檔案的檔案內容(file content)。
該控制器令該非揮發式記憶體以一第二區塊接收該檔案的檔案系統資料(file system data)。該控制器在該非揮發式記憶體上維護一根目錄(root table),包括該第一區塊以及該第二區塊的使用資訊。變動該根目錄使更新該第一區塊以及該第二區塊的使用資訊時,該控制器更將該第一區塊以及該第二區塊的使用資訊更新至該第二區塊作為元資料。元資料以及根目錄之高度同步將大大簡化一復電程序。
一種實施方式中,該控制器是將該根目錄完整複製至該第二區塊作為元資料。一頁空間包括N個寫入單位,N為大於一的整數。該根目錄的尺寸可小於單一個寫入單位。該控制器可規劃該第二區塊之一頁的一寫入單位複製該根目錄作為上述元資料,並規劃該第二區塊之該頁的其他(N-1)個寫入單位填寫上述檔案系統資料。
該資料儲存裝置的一復電程序中,該控制器可根據該根目錄尋得該第二區塊,且受益於上述元資料係更新自該根目錄,略去上述元資料以及該根目錄之核對,即判斷該第二區塊是否可靠,以續用該第二區塊應付檔案系統資料之儲存。
一種實施方式中,載於該根目錄、且更新至該第二區塊作為元資料者包括:該第一區塊的編號,以及該第一區塊的頁使用狀況;該第二區塊的編號,以及該第二區塊的頁使用狀況;以及一第三區塊的編號,該第三區塊為前一個用作檔案系統資料儲存的區塊。
一種實施方式中,該控制器判定該第二區塊不可靠時,更根據該根目錄尋得該第三區塊,判斷是否續用該第三
區塊應付檔案系統資料之儲存。
一種實施方式中,該控制器順向搜尋該第二區塊,在尋得一首空頁後,逆向搜尋該第二區塊,以定義一最末有效頁,並對尋得的不可靠頁進行虛資料複寫,使得以續用該第二區塊應付檔案系統資料之儲存。
本案更揭露非揮發式記憶體控制方法。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧資料儲存裝置
102‧‧‧快閃記憶體
104‧‧‧控制器
106‧‧‧主機
112‧‧‧系統內程式碼區塊池
114‧‧‧系統資訊區塊池
116‧‧‧閒置區塊池
118‧‧‧資料區塊池
122‧‧‧微處理器
124‧‧‧唯讀記憶體
126‧‧‧揮發式記憶體
132、134、136、138‧‧‧不同版本的根目錄T4
142、144、146、148‧‧‧不同版本的元資料,分別自標號132、134、136、138所指的根目錄T4複製獲得
152‧‧‧檔案內容
154‧‧‧對應檔案內容152的檔案系統資料以及元資料
202‧‧‧系統資訊
204‧‧‧區塊CBlock以及區塊TBlock的使用資訊
CBlock‧‧‧區塊,供檔案內容寫入
CPage‧‧‧區塊CBlock上最末使用頁
FEP‧‧‧首空頁
LVP、LVP’‧‧‧最末有效頁
Old_TBlock‧‧‧前一個用於寫入檔案系統資料的區塊
S1‧‧‧順向搜尋
S2‧‧‧逆向搜尋
S3‧‧‧續用處理
S302…S308、S402…S418‧‧‧步驟
T4‧‧‧根目錄
TBlock‧‧‧區塊,供檔案系統資料寫入
TPage‧‧‧區塊TBlock上最末使用頁
XBlock‧‧‧區塊
第1圖以方塊圖圖解根據本案一種實施方式所實現的一資料儲存裝置100,其中包括快閃記憶體102以及控制器104;第2圖更根據本案一種實施方式詳解根目錄T4的資料結構,並顯示根目錄T4需填入區塊TBlock作為元資料;第3圖為流程圖,根據本案一種實施方式說明控制器104如何寫入一檔案(file)至快閃記憶體102;第4圖為流程圖,根據本案一種方式說明資料儲存裝置100一復電程序如何判斷區塊TBlock是否可續用;且第5圖舉例說明區塊TBlock(或Old_TBlock)的首空頁(FEP)以及最末有效頁(LVP)搜尋、以及續用處理。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,提供長時間資料保存之儲存媒體,可用於實現資料儲存裝置、或應用於數據中心。以下特別以快閃記憶體(flash memory)為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,用來實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD)...等產品。有一種應用是採多晶片封裝(multi-chip packaging)、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置上。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備、行車電腦…等。電子裝置的運算模塊可視為一主機(host),操作電子裝置所使用的資料儲存裝置,透過資料儲存裝置中的控制器存取資料儲存裝置中的快閃記憶體。
快閃記憶體實現的資料儲存裝置也可用於建構數據中心(Data Center)。例如,伺服器可操作固態硬碟(SSD)陣列形成數據中心。伺服器即可視為一主機(host),操作所連結之固態硬碟,以存取其中快閃記憶體。
主機(host)端是以邏輯位址(例如,邏輯區塊位址LBA或全域主機頁編號GHP…等)區別資料。快閃記憶體之物
理空間則是劃分為複數個區塊(blocks)配置使用。各區塊(block)包括複數頁(pages)。各頁包括N個寫入單位,N為大於一的整數,如:4。一頁16KB空間可分為四個寫入單位,各寫入單位為4KB。一種實施方式中,一區塊係根據頁編號,由低至高編號配置空間儲存資料。隨著資料儲存,各頁(甚至各寫入單位)對應的邏輯位址須以映射表進行管理。快閃記憶體的諸多操作都是基於此映射表。特別是,快閃記憶體的儲存空間需以區塊為單位進行抹除(erase)後方能再次使用。資料更新並非同空間複寫。新版的資料被寫入閒置空間後,舊空間內容將被標為無效。一區塊可能零星留存有效資料,故垃圾回收(garbage collection)需求相應產生。一區塊中留存的零星有效資料可經垃圾回收技術搬移到閒置空間,使得徒留無效資料的區塊得以被抹除再利用。
本案特別以區塊分類方式使用快閃記憶體。關於主機要求儲存的一檔案(file),其中檔案內容(file content)以及檔案系統資料(file system data)是寫入分開的區塊。以寫入一音訊檔案一如mp3檔一為例,儲存音訊(即檔案內容)用的區塊(以下以CBlock標號)不同於儲存檔案系統資料(包括檔案類型(mp3)、名稱、大小、音質、取樣頻率…之類)用的區塊(以下以TBlock標號)。相較於檔案內容,檔案系統資料的尺寸較小,但更新可能較頻繁。專用於儲存檔案系統資料的區塊TBlock極容易僅餘少量有效資料。對區塊TBlock進行的垃圾回收(garbage collection)操作可有效率釋出儲存空間。
非預期掉電事件(sudden power-off event)之復電程
序包括決定區塊TBlock是否續用,繼續應付檔案系統資料之儲存。本案特別設計區塊TBlock之填寫方式,顯著加速復電程序。
第1圖以方塊圖圖解根據本案一種實施方式所實現的一資料儲存裝置100,其中包括快閃記憶體102以及控制器104。根據主機106發出的要求,控制器104操作快閃記憶體102回應之。
快閃記憶體102的儲存空間經配置使用後,可有多種分類。
系統內程式碼(in-system code,簡稱ISP)區塊池112儲存系統內程式碼(in-system code,簡稱ISP)。系統資訊區塊池114儲存系統資訊,其中配置有一區塊XBlock,儲存一根目錄T4。該根目錄T4負責復電程序所需資訊的儲存。控制器104會在操作該快閃記憶體102的過程中動態更新該根目錄T4,使其中內容足以運作復電程序。以一頁16KB儲存空間為例,根目錄T4尺寸可不超過4KB(一寫入單位)。圖中標號132、134、136以及138的四個版本根目錄T4代表根目錄T4多次更新。標號138所指為最新版本的根目錄T4。區塊CBlock以及區塊TBlock則是自閒置區塊池116選取使用,用於檔案寫入。如前所述,檔案內容(file content)是由區塊CBlock接收,檔案系統資料(file system data)是由區塊TBlock接收。特別是,區塊TBlock各頁更規劃空間儲存元資料(meta data),記錄區塊CBlock以及區塊TBlock的使用資訊。特別是,控制器104也會將區塊CBlock以及區塊TBlock的使用資訊動態更新
在根目錄T4中。區塊CBlock以及區塊TBlock之使用資訊在根目錄T4的動態更新將即時反應在區塊TBlock的元資料更新上。標號132、134、136以及138所指示的根目錄T4多次更新都涉及區塊CBlock以及區塊TBlock的使用資訊更新。區塊TBlock上的元資料因而也有多次更新一如標號142、144、146以及148標示的多個元資料版本。一種實施方式是直接將根目錄T4填入區塊TBlock作為元資料。標號142元資料即標號132根目錄T4複製而來。標號144元資料即標號134根目錄T4複製而來。標號146元資料即標號136根目錄T4複製而來。標號148元資料即標號138根目錄T4複製而來。對應標號142、144、146以及148所指的元資料更新,檔案系統資料也複製多次。根目錄T4尺寸若不超過4KB,區塊TBlock各頁可提供4KB空間儲存根目錄T4複製形成的元資料,而同頁可餘12KB供檔案系統資料儲存。區塊CBlock、TBlock完成資料接收後可推入資料區塊池118。閒置區塊池116相應供應新的區塊CBlock、TBlock,供其他檔案寫入。
整理之,區塊CBlock以及區塊TBlock的使用資訊一有更新,根目錄T4隨即更新,並帶動區塊TBlock上新一頁的「檔案系統資料」與「元資料」寫入。區塊TBlock上,元資料緊隨著根目錄T4同步更新的設計,使得非預期掉電事件不易打斷根目錄T4以及區塊TBlock上元資料的資料相關性。如此一來,基於區塊XBlock上根目錄T4而起始的復電程序,在決定區塊TBlock是否續用時,可以免去檢查區塊TBlock上元資料是否相符根目錄T4。復電程序的韌體大大簡化,並
減少復電程序的執行時間。
特別是,如圖所示,檔案內容152對應標號154,標號154顯示遍佈多頁、完全相同的檔案系統資料。非預期掉電事件不容易使得檔案系統資料損毀。檔案內容152不易因非預期掉電事件而遺失。
第1圖也概略說明控制器104的架構。控制器104包括一微處理器122、一唯讀記憶體124以及一揮發式記憶體126。唯讀記憶體124以及揮發式記憶體126可與微處理器122整合在一起,或是外接該微處理器122。唯讀記憶體124載有唯讀程式碼。微處理器122可根據唯讀記憶體124所載的唯讀程式碼以及ISP區塊池112所載的系統內程式碼(ISP)運作該快閃記憶體102,期間,微處理器122可利用該揮發式記憶體126做該快閃記憶體102操作所需的資訊暫存。控制器104架構也可有其他變形。
整理之,控制器104令區塊XBlock上動態維護的根目錄T4記錄有區塊CBlock以及區塊TBlock的使用資訊。隨著更新根目錄T4,控制器104更將根目錄T4填入區塊TBlock作為元資訊。非預期掉電事件後,一復電程序基於區塊XBlock上根目錄T4起始運作。該復電程序在決定區塊TBlock是否續用時,免去檢查區塊TBlock上元資料是否與根目錄T4相符。復電程序大大簡化。
第2圖更根據本案一種實施方式詳解根目錄T4的資料結構,並顯示根目錄T4需填入區塊TBlock作為元資料。如圖所示,根目錄T4除了動態維護系統資訊202(如,映射表
指標…等),更動態指示區塊CBlock以及區塊TBlock的使用資訊204。區塊CBlock以及區塊TBlock的使用資訊204包括(CBlock,CPage)、(TBlock,TPage)、Old_TBlock、以及區塊TBlock其它元資料。(CBlock,CPage)用於指示區塊CBlock為何(如,記載區塊編號)以及記錄區塊CBlock的頁使用狀況CPage(如,最末使用頁)。(TBlock,TPage)用於指示區塊TBlock為何(如,記載區塊編號)以及記錄區塊TBlock的頁使用狀況TPage(如,最末使用頁)。Old_TBlock指示前一個(舊的)專用於檔案系統資料寫入的區塊為何。區塊CBlock以及區塊TBlock的使用資訊204每有變動,除了會用於更新區塊XBlock上的根目錄T4,也會更新至區塊TBlock作為元資料。區塊XBlock根目錄T4可完整複製至區塊TBlock作為元資料(包括資訊202以及204),也可只有資訊204複製至區塊TBlock作為元資料。
傳統技術中,區塊TBlock元資料並非區塊XBlock根目錄T4之複製內容,區塊XBlock根目錄T4可能只包括區塊TBlock元資料部分資訊。傳統技術通常是在一個檔案的檔案內容完整寫入區塊CBlock後,才在區塊TBlock使用一頁空間,寫入檔案系統資料以及元資料。非預期掉電事件可能導致區塊TBlock寫入被打斷。區塊TBlock內容無法對應已寫入區塊CBlock的檔案內容。因此,傳統技術的復電程序需要花費運算資源核對區塊XBlock根目錄T4中關於區塊TBlock元資料的資訊,檢查區塊TBlock元資料更新是否正常,據以判定區塊TBlock是否可續用。相較之,本案綁定的區塊XBlock根
目錄T4與區塊TBlock元資料同步更新則可省去如是核對。本案根目錄T4資料結構會完整包括區塊CBlock以及區塊TBlock的使用資訊204。如此一來,根目錄T4可直接複製至區塊TBlock作為元資料儲存。其它實施方式更可僅將區塊XBlock根目錄T4上的區塊CBlock以及區塊TBlock的使用資訊204複製至區塊TBlock作為元資料儲存。
第3圖為流程圖,根據本案一種實施方式說明控制器104如何寫入一檔案至快閃記憶體102。步驟S302,控制器104以區塊CBlock一頁接收檔案內容(file content)。步驟S304,控制器104隨著步驟S302更新區塊XBlock上的根目錄T4。例如,更新載於根目錄T4的資訊204(區塊CBlock以及區塊TBlock使用資訊)。步驟S306,控制器104將檔案系統資料(file system data)填入區塊TBlock一頁,同樣搭配寫入該頁的元資料是複製自區塊XBlock的根目錄T4。步驟S308,控制器104檢查檔案是否完整寫入該快閃記憶體102。若尚未完成,控制器104以步驟S302繼續將檔案內容填入區塊CBlock,並進行步驟S304以及S306達到區塊TBlock元資料即時更新。
第4圖為流程圖,根據本案一種方式說明資料儲存裝置100一復電程序如何判斷區塊TBlock是否可續用。自一非預期掉電事件復電後,控制器104以步驟S402檢查區塊XBlock所載的根目錄T4,檢查是否指示有區塊TBlock。若找到區塊TBlock,控制器104以步驟S404尋找區塊TBlock的首空頁(簡稱FEP,the first empty page)、以及最末有效頁(簡稱LVP,the last valid page),以確定區塊TBlock是否有續用
空間。步驟S406確定找到區塊TBlock的首空頁以及最末有效頁後,控制器104以步驟S408對區塊TBlock進行續用處理;區塊TBlock可續用,流程結束。
倘若步驟S406判定找不著區塊TBlock的首空頁以及最末有效頁,控制器104以步驟S410尋找前一個檔案系統資料接收區塊Old_TBlock。控制器104可藉由查找區塊XBlock的根目錄T4尋找前一個檔案系統資料接收區塊Old_TBlock。關於找到的區塊Old_TBlock,控制器104以步驟S412尋找其中首空頁、以及最末有效頁,以確定區塊Old_TBlock是否有續用空間。步驟S414確定找到區塊Old_TBlock的首空頁以及最末有效頁後,控制器104以步驟S416對區塊Old_TBlock進行續用處理,以續用區塊Old_TBlock做檔案系統資料(file system data)儲存。
倘若步驟S414判定找不著區塊Old_TBlock的首空頁以及最末有效頁,控制器104以步驟S418自閒置區塊池116配置新的區塊TBlock,以新配置的區塊TBlock做檔案系統資料(file system data)儲存。
控制器無法以步驟S410找到前一個檔案系統資料接收區塊Old_TBlock時,也會進行步驟S418,自閒置區塊池116配置新的區塊TBlock,以新配置的區塊TBlock做檔案系統資料(file system data)儲存。
第4圖顯示傳統技術冗餘的區塊TBlock元資料以及區塊XBlock根目錄T4比對可省略不做。
第5圖舉例說明區塊TBlock(或Old_TBlock)的首
空頁以及最末有效頁搜尋、以及續用處理。
如圖所示,區塊TBlock包括編號0~255的256頁空間。標號S1指示一順向搜尋,用於尋得區塊TBlock的首空頁FEP。此順向搜尋可跳頁進行,以加快搜尋速度。圖例係尋得頁48為首空頁FEP。標號S2指示一逆向搜尋,用於尋得區塊TBlock的最末有效頁LVP。此逆向搜尋為逐頁搜尋,避免疏漏。圖例係尋得頁46為最末有效頁LVP。此逆向搜尋更觀察到頁47內容損毀,可判定是受非預期掉電事件影響。標號S3指示區塊TBlock的續用處理,其中對高危險頁44-47填入虛資料(dummy data by double programming),且改定義頁43為最末有效頁(LVP’)。以上步驟使得區塊TBlock儲存內容確定都為高可靠度。
舉凡採用本案所提出的根目錄T4資料結構者,即有可能涉及本案所欲保護的範圍。以上在復電程序中對區塊TBlock所進行的續用判斷,也屬於本案所欲保護的範圍。基於以上技術內容,本案更涉及非揮發式記憶體操作方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (16)
- 一種資料儲存裝置,包括:一非揮發式記憶體;以及一控制器,根據一主機之要求,寫入一檔案至該非揮發式記憶體,其中:該控制器令該非揮發式記憶體以一第一區塊接收該檔案的檔案內容;該控制器令該非揮發式記憶體以一第二區塊接收該檔案的檔案系統資料;該控制器在該非揮發式記憶體上維護一根目錄,包括該第一區塊以及該第二區塊的使用資訊;且變動該根目錄使更新該第一區塊以及該第二區塊的使用資訊時,該控制器更將該第一區塊以及該第二區塊的使用資訊更新至該第二區塊作為元資料。
- 如申請專利範圍第1項所述的資料儲存裝置,其中:該控制器是將該根目錄完整複製至該第二區塊作為元資料。
- 如申請專利範圍第2項所述的資料儲存裝置,其中:一頁空間包括N個寫入單位,N為大於一的整數;且該根目錄的尺寸小於單一個寫入單位。
- 如申請專利範圍第3項所述的資料儲存裝置,其中:該控制器規劃該第二區塊之一頁的一寫入單位複製該根目錄作為上述元資料,並規劃該第二區塊之該頁的其他(N-1)個寫入單位填寫上述檔案系統資料。
- 如申請專利範圍第1項所述的資料儲存裝置,其中:該資料儲存裝置的一復電程序中,該控制器根據該根目錄尋得該第二區塊,且受益於上述元資料係更新自該根目錄,略去上述元資料以及該根目錄之核對,即判斷該第二區塊是否可靠,以續用該第二區塊應付檔案系統資料之儲存。
- 如申請專利範圍第5項所述的資料儲存裝置,其中,載於該根目錄、且更新至該第二區塊作為元資料者包括:該第一區塊的編號,以及該第一區塊的頁使用狀況;該第二區塊的編號,以及該第二區塊的頁使用狀況;以及一第三區塊的編號,該第三區塊為前一個用作檔案系統資料儲存的區塊。
- 如申請專利範圍第6項所述的資料儲存裝置,其中:該控制器判定該第二區塊不可靠時,更根據該根目錄尋得該第三區塊,判斷是否續用該第三區塊應付檔案系統資料之儲存。
- 如申請專利範圍第5項所述的資料儲存裝置,其中:該控制器順向搜尋該第二區塊,在尋得一首空頁後,逆向搜尋該第二區塊,以定義一最末有效頁,並對尋得的不可靠頁進行虛資料複寫,使得以續用該第二區塊應付檔案系統資料之儲存。
- 一種非揮發式記憶體控制方法,包括:根據一主機之要求,寫入一檔案至一非揮發式記憶體;令該非揮發式記憶體以一第一區塊接收該檔案的檔案內容;令該非揮發式記憶體以一第二區塊接收該檔案的檔案系統資料;在該非揮發式記憶體上維護一根目錄,包括該第一區塊以及該第二區塊的使用資訊;以及變動該根目錄使更新該第一區塊以及該第二區塊的使用資訊時,更將該第一區塊以及該第二區塊的使用資訊更新至該第二區塊作為元資料。
- 如申請專利範圍第9項所述的非揮發式記憶體控制方法,更包括:將該根目錄完整複製至該第二區塊作為元資料。
- 如申請專利範圍第10項所述的非揮發式記憶體控制方法,其中:一頁空間包括N個寫入單位,N為大於一的整數;且該根目錄的尺寸小於單一個寫入單位。
- 如申請專利範圍第11項所述的非揮發式記憶體控制方法,更包括:規劃該第二區塊之一頁的一寫入單位複製該根目錄作為上述元資料,並規劃該第二區塊之該頁的其他(N-1)個寫入單位填寫上述檔案系統資料。
- 如申請專利範圍第9項所述的非揮發式記憶體控制方法,更包括:在提供該非揮發式記憶體的一資料儲存裝置的一復電程序中,根據該根目錄尋得該第二區塊,且受益於上述元資料係更新自該根目錄,略去上述元資料以及該根目錄之核對,即判斷該第二區塊是否可靠,以續用該第二區塊應付檔案系統資料之儲存。
- 如申請專利範圍第13項所述的非揮發式記憶體控制方法,其中,載於該根目錄、且更新至該第二區塊作為元資料者包括:該第一區塊的編號,以及該第一區塊的頁使用狀況;該第二區塊的編號,以及該第二區塊的頁使用狀況;以及一第三區塊的編號,該第三區塊為前一個用作檔案系統資料儲存的區塊。
- 如申請專利範圍第14項所述的非揮發式記憶體控制方法,更包括:在判定該第二區塊不可靠時,更根據該根目錄尋得該第三區塊,判斷是否續用該第三區塊應付檔案系統資料之儲存。
- 如申請專利範圍第13項所述的非揮發式記憶體控制方法,更包括:順向搜尋該第二區塊,在尋得一首空頁後,逆向搜尋該第二區塊,以定義一最末有效頁,並對尋得的不可靠頁進行虛資料複寫,使得以續用該第二區塊應付檔案系統資料之儲存。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107120354A TWI669610B (zh) | 2018-06-13 | 2018-06-13 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN201811057905.7A CN110597454B (zh) | 2018-06-13 | 2018-09-11 | 数据储存装置以及非挥发式存储器控制方法 |
US16/413,942 US10817215B2 (en) | 2018-06-13 | 2019-05-16 | Data storage system and control method for non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107120354A TWI669610B (zh) | 2018-06-13 | 2018-06-13 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI669610B true TWI669610B (zh) | 2019-08-21 |
TW202001576A TW202001576A (zh) | 2020-01-01 |
Family
ID=68316307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107120354A TWI669610B (zh) | 2018-06-13 | 2018-06-13 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10817215B2 (zh) |
CN (1) | CN110597454B (zh) |
TW (1) | TWI669610B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7275140B2 (en) * | 2005-05-12 | 2007-09-25 | Sandisk Il Ltd. | Flash memory management method that is resistant to data corruption by power loss |
TW201027334A (en) * | 2008-12-17 | 2010-07-16 | Sandisk Il Ltd | Ruggedized memory device |
TW201040720A (en) * | 2009-01-21 | 2010-11-16 | Micron Technology Inc | Logical address offset |
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
TW201344432A (zh) * | 2012-04-17 | 2013-11-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
CN104205229A (zh) * | 2012-03-30 | 2014-12-10 | 英特尔公司 | 功率损耗恢复中的固态驱动器管理 |
CN104699621A (zh) * | 2013-12-04 | 2015-06-10 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111194B1 (en) * | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Mirror split brain avoidance |
CN102200946B (zh) * | 2010-03-22 | 2014-11-19 | 群联电子股份有限公司 | 资料存取方法、记忆体控制器与储存*** |
TWI451248B (zh) * | 2012-01-13 | 2014-09-01 | Phison Electronics Corp | 資料保護方法、記憶體控制器與記憶體儲存裝置 |
CN103218300B (zh) * | 2012-01-18 | 2016-01-27 | 群联电子股份有限公司 | 数据处理方法、存储器控制器与存储器储存装置 |
TWI563383B (en) * | 2012-04-25 | 2016-12-21 | Phison Electronics Corp | Memory formatting method, memory controller and memory storage apparatus |
US9804960B2 (en) * | 2013-03-14 | 2017-10-31 | Western Digital Technologies, Inc. | Overprovision capacity in a data storage device |
US9632880B2 (en) * | 2013-12-26 | 2017-04-25 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US9003144B1 (en) * | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US10642878B2 (en) * | 2017-01-06 | 2020-05-05 | Oracle International Corporation | File system hierarchies and functionality with cloud object storage |
US10628051B2 (en) * | 2018-07-13 | 2020-04-21 | Seagate Technology Llc | Reducing a data storage device boot time |
-
2018
- 2018-06-13 TW TW107120354A patent/TWI669610B/zh active
- 2018-09-11 CN CN201811057905.7A patent/CN110597454B/zh active Active
-
2019
- 2019-05-16 US US16/413,942 patent/US10817215B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US7275140B2 (en) * | 2005-05-12 | 2007-09-25 | Sandisk Il Ltd. | Flash memory management method that is resistant to data corruption by power loss |
TW201027334A (en) * | 2008-12-17 | 2010-07-16 | Sandisk Il Ltd | Ruggedized memory device |
TW201040720A (en) * | 2009-01-21 | 2010-11-16 | Micron Technology Inc | Logical address offset |
CN104205229A (zh) * | 2012-03-30 | 2014-12-10 | 英特尔公司 | 功率损耗恢复中的固态驱动器管理 |
TW201344432A (zh) * | 2012-04-17 | 2013-11-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
CN104699621A (zh) * | 2013-12-04 | 2015-06-10 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US10817215B2 (en) | 2020-10-27 |
TW202001576A (zh) | 2020-01-01 |
CN110597454B (zh) | 2022-09-13 |
CN110597454A (zh) | 2019-12-20 |
US20190384527A1 (en) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230273876A1 (en) | Memory system, data storage device, user device and data management method thereof | |
KR101303524B1 (ko) | 불휘발성 메모리에 대한 메타데이터 리던던시 스킴 | |
US8478796B2 (en) | Uncorrectable error handling schemes for non-volatile memories | |
US8122193B2 (en) | Storage device and user device including the same | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
US8812816B2 (en) | Garbage collection schemes for index block | |
US8756458B2 (en) | Mount-time reconciliation of data availability | |
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
KR102087495B1 (ko) | 저장 파라미터 변경 | |
TW201835922A (zh) | 資料儲存裝置以及其操作方法 | |
TW201931366A (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
TW200527433A (en) | Memory card and semiconductor device | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
US11314586B2 (en) | Data storage device and non-volatile memory control method | |
US20170357462A1 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
CN110928487A (zh) | 存储装置和存储装置的操作方法 | |
JP4460967B2 (ja) | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 | |
JP4661369B2 (ja) | メモリコントローラ | |
TWI669610B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11354200B2 (en) | Method and system for facilitating data recovery and version rollback in a storage device | |
CN116774922A (zh) | 存储设备及其操作方法 | |
JP2007018528A (ja) | メモリ装置、ファイル管理方法及び記録再生装置 |