TWI646535B - 資料儲存裝置以及非揮發式記憶體操作方法 - Google Patents

資料儲存裝置以及非揮發式記憶體操作方法 Download PDF

Info

Publication number
TWI646535B
TWI646535B TW106145988A TW106145988A TWI646535B TW I646535 B TWI646535 B TW I646535B TW 106145988 A TW106145988 A TW 106145988A TW 106145988 A TW106145988 A TW 106145988A TW I646535 B TWI646535 B TW I646535B
Authority
TW
Taiwan
Prior art keywords
page
data
index
last page
write operation
Prior art date
Application number
TW106145988A
Other languages
English (en)
Other versions
TW201928968A (zh
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 慧榮科技股份有限公司
Priority to TW106145988A priority Critical patent/TWI646535B/zh
Priority to CN201810709213.XA priority patent/CN109976938B/zh
Priority to US16/229,073 priority patent/US10789163B2/en
Application granted granted Critical
Publication of TWI646535B publication Critical patent/TWI646535B/zh
Publication of TW201928968A publication Critical patent/TW201928968A/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7207Details relating to flash memory management management of metadata or control data

Abstract

資料儲存裝置的復電技術。一資料儲存裝置具有一非揮發式記憶體以及一控制單元。該非揮發式記憶體係藉由單發完成寫入操作接收資料。各單發完成寫入操作寫入N頁資料。N為大於1的數字。於復電該資料儲存裝置時,該控制單元令該非揮發式記憶體斷電前使用的一主動區塊的一最末頁指標指向一回單發完成寫入操作寫入的N頁資料中的最末頁。

Description

資料儲存裝置以及非揮發式記憶體操作方法
本發明係有關於資料儲存裝置以及其中非揮發式記憶體的操作方法。
非揮發式記憶體有多種形式-例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,用於長時間資料保存。
然而,非揮發式記憶體的寫入操作可能被非預期斷電中斷。為確保資料可靠度,資料儲存裝置的復電程序為本技術領域一項重要課題。
本案在資料儲存裝置復電時,基於單發完成寫入操作(one shot programming)之尺寸進行資料可靠度判斷。
根據本案一種實施方式所實現的一資料儲存裝置包括一非揮發式記憶體以及一控制單元。該非揮發式記憶體係藉由單發完成寫入操作接收資料。各單發完成寫入操作寫入N頁資料。N為大於1的數字。該資料儲存裝置復電時,控制單元令該非揮發式記憶體斷電前使用的一主動區塊的一最末頁指 標指向一回單發完成寫入操作寫入的N頁資料中的最末頁。
本案另一種實施方式提出一種非揮發式記憶體操作方法,包括:令一非揮發式記憶體藉由單發完成寫入操作接收資料,各單發完成寫入操作寫入N頁資料,N為大於1的數字;以及於該資料儲存裝置復電時,令該非揮發式記憶體斷電前使用的一主動區塊的一最末頁指標指向一回單發完成寫入操作寫入的N頁資料中的最末頁。
一種實施方式中,該最末頁指標所指空間對應的單發完成寫入操作之N頁資料須進行錯誤校驗。錯誤校驗失敗時,該最末頁指標需校正,指向更前一回單發完成寫入操作寫入的N頁資料中的最末頁。
一種實施方式中,該最末頁指標確定後,該最末頁指標所指空間對應的單發完成寫入操作之N頁資料是否受斷電波及也需要再做判斷,以搬移之。
一種實施方式中,該最末頁指標所指的空間若不接續空頁,則不搬移該最末頁指標所指空間對應的單發完成寫入操作之N頁資料。
一種實施方式中,該最末頁指標所指空間對應的單發完成寫入操作之映射資訊若已封存,則不搬移該最末頁指標所指空間對應的單發完成寫入操作之N頁資料。
一種實施方式中,該最末頁指標確定後,該最末頁指標所指空間對應的單發完成寫入操作之N頁資料若已被更新或搬移,則不做搬移。
下文特舉實施例,並配合所附圖示,詳細說明本
100‧‧‧資料儲存裝置
102‧‧‧快閃記憶體
104‧‧‧控制單元
106‧‧‧主機
112‧‧‧系統內程式碼區塊池
114‧‧‧系統資訊區塊池
116‧‧‧閒置區塊池
118‧‧‧資料區塊池
122‧‧‧微處理器
124‧‧‧唯讀記憶體
126‧‧‧揮發式記憶體
130、132、134‧‧‧頁
140‧‧‧映射資訊
A_BLK‧‧‧主動區塊
F2H、H2F‧‧‧映射表
*A_BLK‧‧‧指標,指向主動區塊A_BLK
*seal‧‧‧指標,指示映射表封存進度
S202…S212‧‧‧步驟
第1圖以方塊圖圖解根據本案一種實施方式所實現的一資料儲存裝置100,其中包括快閃記憶體102以及控制單元104;第2圖為流程圖,圖解根據本案一種實施方式所實現的一復電程序,其中更包括不可靠資料之判斷以及搬移(步驟S208以及S212);第3圖以圖例說明第2圖流程;第4圖另舉一例說明不可靠資料之搬移步驟S212的例外狀況;第5圖另舉一例說明不可靠資料之搬移步驟S212的例外狀況。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,提供長時間資料保存之儲存媒體,可用於實現資料儲存裝置、或應用於數據中心。以下特別以快閃 記憶體(flash memory)為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,用來實現記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起一稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為一主機(host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。
快閃記憶體實現的儲存媒體也可用於建構數據中心。例如,伺服器可操作固態硬碟(SSD)陣列形成數據中心。伺服器即可視為一主機(host),操作所連結之固態硬碟,以存取其中快閃記憶體。
主機(host)端是以邏輯位址(例如,邏輯區塊位址LBA或全域主機頁編號GHP…等)區別資料。快閃記憶體之物理空間則是以區塊(blocks)為單位,配置來接收主機要求寫入的複數頁(pages)資料。為了最佳化使用快閃記憶體,快閃記憶體之儲存空間係動態配置對應主機所識別的邏輯位址。邏輯位址以及儲存空間之間的映射資訊需妥善管理。
快閃記憶體多種操作都需參考、或可能牽動映射資訊。例如,快閃記憶體之讀取需要參考映射資訊,快閃記憶體之寫入則需更新映射資訊。特別是,快閃記憶體儲存空間需 以區塊為單位進行抹除(erase)後方能再次使用。由於各區塊可承受的抹除次數有上限,快閃記憶體之操作有抹寫平均(wear leveling)議題需要考量。另外,舊資料更新並非同空間複寫。 新版的資料被寫入閒置空間後,舊空間內容將被標為無效。一區塊可能零星留存有效資料,故垃圾回收(garbage collection)需求相應產生。一區塊中留存的零星有效資料可經垃圾回收技術搬移到閒置空間,使得徒留無效資料的區塊得以被抹除再利用。上述抹寫平均以及垃圾回收技術,都涉及映射資訊之參考或更新。映射資訊之維護為必要。
映射資訊之維護有多種方式。關於正在配置使用的資料接收區塊(接收主機要求的寫入資料,或作為垃圾回收之收集區塊),其動態變化的映射資訊可以映射表F2H動態更新。映射表F2H以物理空間為索引,標註對應的邏輯位址,可在揮發式記憶體上進行動態維護。映射表F2H需反向整理入映射表H2F,提供以邏輯位址為索引的映射資訊查詢機制。映射表H2F需要以非揮發方式備份在快閃記憶體上;即,小表F2H之映射資訊需封存(seal)至大表H2F。此外,當小表F2H封存至大表H2F後,亦可將該小表F2H儲存一份在快閃記憶體上,以供後續垃圾回收運作時判斷資料接收區塊各頁是否儲存有效資料之用。特別是,資料接收區塊各頁對應的邏輯位址可記錄在該頁的元資料(meta data)中。如此一來,若有非預期斷電事件(sudden power-off event)發生,即使揮發式存儲的小表F2H未來得及封存至大表H2F即遺失,掃描元資料也可以重建之。
關於非預期斷電事件(sudden power-off event),遭 其中斷的寫入操作將不可靠,甚至影響前後空間的可靠度。例如,剛復電時可正確讀出的資料,過一陣子後,就損毀無法讀出。如此資料穩定度問題都需要在復電程序中考量。
本案快閃記憶體特別採用一種高密度儲存技術,提升單位物理空間的儲存密度。例如,相較於單階儲存(SLC),多階儲存(MLC)使得單位物理空間得以儲存雙倍資料,而三階儲存(TLC)使得單位物理空間得以儲存三倍資料。本案所採用的高密度儲存技術特別提供一種單發完成寫入操作(one shot programming),使單位物理空間的多頁資料乃同時寫入。甚至,快閃記憶體可有單面(1-plane)、雙面(2-plane)、甚至更多面的讀/寫設計,決定單次讀/寫操作涉及的面之數量(如,單純涉及單面、或橫跨雙面、或橫跨更多面)。如此一來,單發完成寫入操作(one shot programming)是做N頁寫入,N為大於1的整數,可為Level#(共享單位物理空間之資料頁數)與Plane#(共操作之面數)的乘積:N=Level#*Plane#。以3D的MLC快閃記憶體為例,共享單位物理空間的資料頁數為2。雙面(2-plane)寫入時,N值為2x2,即4。或者,更考慮多晶片致能功能,若可藉由規劃晶片致動信號(CE signals)而交錯致動的物理空間數量為CE#,則N值計算須更乘以CE#,為Level#*Plane#* CE#。本案考量如此單發完成寫入操作(one shot programming)特色來進行復電程序。
第1圖以方塊圖圖解根據本案一種實施方式所實現的一資料儲存裝置100,其中包括快閃記憶體102以及控制單元104。根據主機106發出的要求,控制單元104操作快閃記憶 體102回應之。快閃記憶體102的儲存空間經配置使用後,可有多種分類。系統內程式碼(in-system code,簡稱ISP)區塊池112儲存系統內程式碼(in-system code,簡稱ISP)。系統資訊區塊池114儲存系統資訊。主動區塊A_BLK則是自閒置區塊池116選取使用,用於資料接收,可因應寫入要求、或是用作垃圾回收的收集區塊。特別是,主動區塊A_BLK是由前述單發完成寫入操作(one shot programming)接收資料。以SLC進行雙面寫入時,主動區塊A_BLK一次接收兩頁資料。以MLC進行單面寫入時,主動區塊A_BLK一次接收兩頁資料。以MLC進行雙面寫入時,主動區塊A_BLK一次接收四頁資料。以TLC進行單面寫入時,主動區塊A_BLK一次接收三頁資料。以TLC進行雙面寫入時,主動區塊A_BLK一次接收六頁資料。完成資料接收後,主動區塊A_BLK將推入資料區塊池118。系統資訊區塊池114所儲存的系統資訊可包括映射表H2F,也可記錄指標*A_BLK顯示目前使用哪個物理空間作為主動區塊A_BLK。
控制單元104包括一微處理器122、一唯讀記憶體124以及一揮發式記憶體126。唯讀記憶體124以及揮發式記憶體126可與微處理器122整合在一起,或是外接該微處理器122。唯讀記憶體124載有唯讀程式碼。微處理器122可根據唯讀記憶體124所載的唯讀程式碼以及ISP區塊池112所載的系統內程式碼運作該快閃記憶體102,期間微處理器122可利用該揮發式記憶體126動態整理對應該主動區塊A_BLK的映射表F2H。揮發式記憶體126可能空間有限,映射表F2H可定量封存至映射表H2F。一種實施方式中,映射表F2H是在收到掉電通 知(PON,power off notification)時局部封存至快閃記憶體102。一種實施方式中,映射表F2H可更在復電(SPOR)重建後局部封存至快閃記憶體102。映射表F2H封存至映射表H2F的進度也可呈系統資訊(如,指標*seal)記錄在系統資訊區塊池114中。非預期斷電事件若發生,揮發式記憶體126上尚未封存的映射資訊將遺失。本案控制單元104對此狀況進行復電程序,其中特別將主動區塊A_BLK之單發完成寫入操作(one shot programming)考量其中,加強復電後的資料可靠度。
如圖所示,復電程序啟動後,控制單元104會檢查系統資訊區塊池114,根據指標*A_BLK以及指標*seal,得知斷電打斷的主動區塊A_BLK為何、且主動區塊A_BLK之映射表F2H至映射表H2F的封存已經進行到何處。根據指標*seal指示,控制單元104起始該主動區塊A_BLK的元資料(meta data)掃描,順著主動區塊A_BLK內空間的使用順序獲得各頁對應之邏輯位址,將主動區塊A_BLK未來得及封存的映射資訊整理在揮發式記憶體126,重建映射表F2H。掃描到無內容元資料時,即尋得空頁(圖中為130)。控制單元104可初始化該主動區塊A_BLK的一最末頁指標指向空頁130前一頁132。控制單元104會檢查該最末頁指標所指的頁132是否是一回單發完成寫入操作(one shot programming)所寫入之N頁中的最末頁。若如圖例,頁132並非一回單發完成寫入操作(one shot programming)所寫入之N頁中的最末頁,控制單元104在主動區塊A_BLK前推,尋得前一回單發完成寫入操作(one shot programming),校正該最末頁指標指向頁134,並將揮發式記憶體126上隨復電掃 描而收集的映射資訊140捨棄。映射資訊140係復電掃描時取自頁134之下一頁至頁132之元資料。
頁132所屬的單發完成寫入操作(one shot programming)顯然受非預期斷電事件中斷。以上將主動區塊A_BLK的最末頁指標校正到頁134的動作,使極可能被非預期斷電事件損毀的該回單發完成寫入操作(one shot programming)被視為無效。如此一來,數據可靠度大幅提升。
該最末頁指標校正到頁134後,同回單發完成寫入操作(one shot programming)寫入的N頁資料可一同更被錯誤校驗。倘若N頁有任一頁無法通過錯誤校驗(如,UECC發生),則表示該回單發完成寫入操作(one shot programming)受非預期斷電事件損毀。控制單元104在主動區塊A_BLK前推,尋得更前一回的單發完成寫入操作(one shot programming)。該最末頁指標經校正,指向所述更前一回單發完成寫入操作(one shot programming)寫入的N頁資料中的最末頁。映射表F2H中相應捨棄映射資訊。
第2圖為流程圖,圖解根據本案一種實施方式所實現的一復電程序,其中更包括不可靠資料之判斷以及搬移(步驟S208以及S212);以下搭配第1圖進行說明。步驟S202,控制單元104進行復電程序。根據系統資訊區塊池114所載之指標*A_BLK,控制單元104尋得被非預期斷電事件中斷的主動區塊A_BLK。根據系統資訊區塊池114所載之指標*seal,控制單元104獲知斷電前該主動區塊A_BLK的映射資訊封存進度。步驟5204,根據封存進度,控制單元104設定該主動區塊A_BLK的 起始掃描頁,起始逐頁收集元資料中的映射資訊(各頁對應的邏輯位址),於揮發式記憶體126重建該主動區塊A_BLK的映射表F2H。控制單元104掃描到空頁130(該頁元資料無內容)後,進行步驟S206。若空頁130前一頁132並非N頁一組的單發完成寫入操作(one shot programming)之最末頁,控制單元104會在步驟S206進行主動區塊A_BLK之最末頁校正,使主動區塊A_BLK之最末頁指標指向一回單發完成寫入操作(one shot programming)寫入的N頁資料中的最末頁。步驟S208中,控制單元104對主動區塊A_BLK之最末頁指標所關聯的N頁(同回單發完成寫入操作寫入)進行錯誤校驗。若有任一頁沒有辦法通過錯誤校驗(如,發生UECC),控制單元104進行步驟S210捨棄映射表F2H所載關於該N頁的映射資訊,再次進行步驟S206,前移主動區塊A_BLK之最末頁指標。若步驟S208無發生錯誤校驗失敗(如,UECC)事件,控制單元104進行步驟S212,將不可靠資料即時搬移。
第3圖以圖例說明第2圖流程。復電後,步驟5204進行的元資料掃描可為雙面掃描,其中對跨及兩面的兩頁之元資料進行掃描。頁0x00以及0x01之元資料所載的邏輯位址會單發更新至映射表F2H。元資料之雙面掃描可一路進行到空頁0x26。此時,映射表F2H對應更新到頁0x24以及0x25之映射資訊。此實施例採MLC雙面寫入,主動區塊A_BLK一次接收四頁資料之程式化。空頁0x26前一頁0x25對應的單發完成寫入操作涉及頁0x24~0x27。頁0x25並非N頁寫入中的最末頁0x27。因此,主動區塊A_BLK的最末頁指標藉由步驟S206校正至頁 0x23,對齊前一回單發完成寫入操作之4頁0x20~0x23的最末頁0x23。根據步驟S208,控制單元104自頁0x20逐頁完整讀取4頁0x20~0x23。所讀取4頁0x20~0x23的資料都會被用各自元資料所儲存的校驗碼(例如,ECC code)校驗。若有UECC發生,四頁0x20~0x23內容以及映射資訊一起捨棄(步驟S210),主動區塊A_BLK的最末頁指標藉由步驟S206校正至頁0x19,對齊更前一回單發完成寫入操作之4頁0x16~0x19的最末頁0x19。即使步驟S208判定無UECC發生,不可靠的資料也可藉步驟S212搬移。例如,倘若頁0x20~0x23尚能讀出、但不可靠,步驟S212可將之搬移到其他空間。
步驟S212可有多種例外,使資料搬移可略過。一種實施方式中,通過錯誤校驗的該回單發完成寫入操作的最末頁的下一頁若非空頁,則代表非預期斷電事件並不發生在該回單發完成寫入操作,無不可靠資料需要靠步驟S212搬移。參閱第3圖,倘若主動區塊A_BLK確定後的(通過錯誤校驗)最末頁指標是指到頁0x23,則由於頁0x23的下一頁0x24非空頁0x26,故頁0x20~0x23可靠,無須在步驟S212搬移。
第4圖另舉一例說明不可靠資料之搬移步驟S212的例外狀況。通過錯誤校驗的該回單發完成寫入操作的映射資訊若早已封存(小表F2H至大表H2F),則代表非預期斷電事件並不發生在該回單發完成寫入操作,無不可靠資料需要靠步驟S212搬移。第4圖顯示非預期斷電事件發生前,映射表F2H至映射表H2F的封存進度(指標*seal所載)已達頁0x23。如此一來,非預期斷電事件並不發生在頁0x20~0x23的單發完成寫入操 作。頁0x20~0x23可靠,無須在步驟S212搬移。
第5圖另舉一例說明不可靠資料之搬移步驟S212的例外狀況。通過錯誤校驗的該回單發完成寫入操作的映射資訊若事實上為無效資料(例如,早被抹除或是更新),則也無需要在步驟S212搬移的必要。第5圖顯示主動區塊A_BLK最末頁指標指向頁0x23。即使頁0x20~0x23通過錯誤校驗,但因為查詢結果顯示頁0x20~0x23皆為無效,故無須在步驟S212搬移。資料有效與否可藉由查詢該系統資訊區塊池114所儲存的系統資訊進行判斷。一種實施方式中,快閃記憶體102非揮發性儲存的映射表F2H以及H2F可用作上述系統資訊,幫助判斷資料有/無效。映射表F2H查詢到一區塊上一頁所對應的邏輯區塊位址LBA後,查詢到的LBA將以映射表H2F覆核。若映射表H2F顯示該LBA的確對應該區塊的該頁,則表示所儲存為有效資料,反之則為無效資料。或者,復電過程中,控制單元104也可在揮發式記憶體126上整理出系統資訊,幫助判斷資料有效與否。
一種實施方式中,該控制單元104於確定該最末頁指標後,更在判定該最末頁指標所指空間所儲存資料仍有效、該最末頁指標所指的空間接續空頁、且該最末頁指標所指空間對應的單發完成寫入操作之映射資料未封存時,搬移該最末頁指標所指空間對應的單發完成寫入操作之N頁資料。
一種實施方式中,連續資料以及零散資料有各自的資料接收區塊,分別標號為C0以及C1。控制單元104復電程序須對兩種資料接收區塊C0以及C1都進行修復。一種實施方式 中,區塊C0/C1結束接收資料後,控制單元104會再配置區塊C2/C3用作連續/零散資料之接收。區塊C0/C1的映射表F2H至映射表H2F封存可安插在區塊C2/C3的操作空檔。復電程序中,控制單元104若自系統資訊區塊池214獲知區塊C2/C3存在,則步驟S204掃描需包括區塊C2/C3掃描。若區塊C2/C3不存在,則控制單元104是掃描區塊C0/C1重建。
舉凡在資料儲存裝置之復電程序中,根據單發完成寫入操作之尺寸(N頁)而做的資料可靠度判斷,都屬於本案所欲保護的範圍。基於以上技術內容,本案更涉及非揮發式記憶體操作方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (20)

  1. 一種資料儲存裝置,包括:一非揮發式記憶體,藉由單發完成寫入操作接收資料,各單發完成寫入操作寫入N頁資料,N為大於1的數字;以及一控制單元,於該資料儲存裝置復電時,校正該非揮發式記憶體斷電前使用的一主動區塊的一最末頁指標指向一回單發完成寫入操作寫入的N頁資料中的最末頁。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制單元包括對該最末頁指標所指空間對應的單發完成寫入操作之N頁資料進行錯誤校驗,並於錯誤校驗失敗時,校正該最末頁指標指向更前一回單發完成寫入操作寫入的N頁資料中的最末頁。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中:該控制單元於確定該最末頁指標後,更判斷該最末頁指標所指空間對應的單發完成寫入操作之N頁資料是否受斷電波及,以搬移之。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中:該控制單元於該最末頁指標所指的空間不接續空頁時,判定該最末頁指標所指空間對應的單發完成寫入操作之N頁資料不受斷電波及,不搬移之。
  5. 如申請專利範圍第3項所述之資料儲存裝置,其中:該最末頁指標所指空間對應的單發完成寫入操作之映射資訊已封存時,該控制單元判定該最末頁指標所指空間對應的單發完成寫入操作之N頁資料不受斷電波及,不搬移之。
  6. 如申請專利範圍第2項所述之資料儲存裝置,其中:該控制單元於確定該最末頁指標後,更判斷該最末頁指標所指空間對應的單發完成寫入操作之N頁資料是否已被更新或搬移,以略去無效資料之搬移。
  7. 如申請專利範圍第2項所述之資料儲存裝置,其中:該控制單元於確定該最末頁指標後,更在判定該最末頁指標所指空間所儲存資料仍有效、該最末頁指標所指的空間接續空頁、且該最末頁指標所指空間對應的單發完成寫入操作之映射資料未封存時,搬移該最末頁指標所指空間對應的單發完成寫入操作之N頁資料。
  8. 如申請專利範圍第2項所述之資料儲存裝置,其中:該資料儲存裝置復電時,該控制單元順著填寫順序掃描該主動區塊,逐頁檢查元資料,令元資料無內容者為第一空頁,且初始化該最末頁指標指向該第一空頁前一頁。
  9. 如申請專利範圍第8項所述之資料儲存裝置,其中:該控制單元逐頁檢查元資料時也重建該主動區塊的映射表F2H;且於確定該最末頁指標後,該控制單元令該映射表F2H對應該最末頁指標所指空間之後的映射資訊無效。
  10. 如申請專利範圍第1項所述之資料儲存裝置,其中:各單發完成寫入操作令共用儲存單元的資料單發寫入。
  11. 一種非揮發式記憶體操作方法,包括:令一非揮發式記憶體藉由單發完成寫入操作接收資料,各單發完成寫入操作寫入N頁資料,N為大於1的數字;以及於該資料儲存裝置復電時,校正該非揮發式記憶體斷電前使用的一主動區塊的一最末頁指標指向一回單發完成寫入操作寫入的N頁資料中的最末頁。
  12. 如申請專利範圍第11項所述之非揮發式記憶體操作方法,更包括:對該最末頁指標所指空間對應的單發完成寫入操作之N頁資料進行錯誤校驗;以及於錯誤校驗失敗時,校正該最末頁指標指向更前一回單發完成寫入操作寫入的N頁資料中的最末頁。
  13. 如申請專利範圍第12項所述之非揮發式記憶體操作方法,更包括:於確定該最末頁指標後,更判斷該最末頁指標所指空間對應的單發完成寫入操作之N頁資料是否受斷電波及,以搬移之。
  14. 如申請專利範圍第13項所述之非揮發式記憶體操作方法,更包括:於該最末頁指標所指的空間不接續空頁時,判定該最末頁指標所指空間對應的單發完成寫入操作之N頁資料不受斷電波及,不搬移之。
  15. 如申請專利範圍第13項所述之非揮發式記憶體操作方法,其中:該最末頁指標所指空間對應的單發完成寫入操作之映射資訊已封存時,判定該最末頁指標所指空間對應的單發完成寫入操作之N頁資料不受斷電波及,不搬移之。
  16. 如申請專利範圍第12項所述之非揮發式記憶體操作方法,更包括:於確定該最末頁指標後,判斷該最末頁指標所指空間對應的單發完成寫入操作之N頁資料是否已被更新或搬移,以略去無效資料之搬移。
  17. 如申請專利範圍第12項所述之非揮發式記憶體操作方法,更包括:於確定該最末頁指標後,更在判定該最末頁指標所指空間所儲存資料仍有效、該最末頁指標所指的空間接續空頁、且該最末頁指標所指空間對應的單發完成寫入操作之映射資料未封存時,搬移該最末頁指標所指空間對應的單發完成寫入操作之N頁資料。
  18. 如申請專利範圍第12項所述之非揮發式記憶體操作方法,更包括:在該資料儲存裝置復電時,順著填寫順序掃描該主動區塊,逐頁檢查元資料,令元資料無內容者為第一空頁,且初始化該最末頁指標指向該第一空頁前一頁。
  19. 如申請專利範圍第18項所述之非揮發式記憶體操作方法,更包括:在逐頁檢查元資料時,更重建該主動區塊的映射表F2H;以及於確定該最末頁指標後,令該映射表F2H對應該最末頁指標所指空間之後的映射資訊無效。
  20. 如申請專利範圍第11項所述之非揮發式記憶體操作方法,其中:各單發完成寫入操作令共用儲存單元的資料單發寫入。
TW106145988A 2017-12-27 2017-12-27 資料儲存裝置以及非揮發式記憶體操作方法 TWI646535B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106145988A TWI646535B (zh) 2017-12-27 2017-12-27 資料儲存裝置以及非揮發式記憶體操作方法
CN201810709213.XA CN109976938B (zh) 2017-12-27 2018-07-02 数据储存装置以及非挥发式存储器操作方法
US16/229,073 US10789163B2 (en) 2017-12-27 2018-12-21 Data storage device with reliable one-shot programming and method for operating non-volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106145988A TWI646535B (zh) 2017-12-27 2017-12-27 資料儲存裝置以及非揮發式記憶體操作方法

Publications (2)

Publication Number Publication Date
TWI646535B true TWI646535B (zh) 2019-01-01
TW201928968A TW201928968A (zh) 2019-07-16

Family

ID=65804045

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106145988A TWI646535B (zh) 2017-12-27 2017-12-27 資料儲存裝置以及非揮發式記憶體操作方法

Country Status (3)

Country Link
US (1) US10789163B2 (zh)
CN (1) CN109976938B (zh)
TW (1) TWI646535B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190092054A (ko) * 2018-01-30 2019-08-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102583810B1 (ko) * 2018-05-15 2023-10-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10747612B2 (en) * 2018-12-31 2020-08-18 Micron Technology, Inc. Multi-page parity protection with power loss handling
TWI777087B (zh) 2019-09-06 2022-09-11 群聯電子股份有限公司 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
CN112527184A (zh) * 2019-09-17 2021-03-19 群联电子股份有限公司 数据管理方法、存储器控制电路单元以及存储器存储装置
CN113535459B (zh) * 2020-04-14 2024-04-12 慧荣科技股份有限公司 响应电源事件的数据存取方法及装置
US10990526B1 (en) * 2020-04-30 2021-04-27 Micron Technology, Inc. Handling asynchronous power loss in a memory sub-system that programs sequentially
EP4283474A1 (en) * 2022-05-23 2023-11-29 Samsung Electronics Co., Ltd. Storage device, memory device, and computing system including the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US8799555B2 (en) * 2011-04-14 2014-08-05 Apple Inc. Boot data storage schemes for electronic devices
US9176800B2 (en) * 2011-08-31 2015-11-03 Micron Technology, Inc. Memory refresh methods and apparatuses
US20150332772A1 (en) * 2014-05-13 2015-11-19 Kyungryun Kim Nonvolatile memory system including nonvolatile memory device and memory controller and operating method of memory controller

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
KR102053953B1 (ko) * 2013-02-04 2019-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
KR20150053092A (ko) * 2013-11-07 2015-05-15 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
TWI546666B (zh) * 2014-11-03 2016-08-21 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
KR20170076878A (ko) * 2015-12-24 2017-07-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170118284A (ko) * 2016-04-14 2017-10-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20180157428A1 (en) * 2016-12-01 2018-06-07 Alibaba Group Holding Limited Data protection of flash storage devices during power loss
US10326473B2 (en) * 2017-04-13 2019-06-18 Sk Hynix Inc Symbol-based coding for NAND flash devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US8799555B2 (en) * 2011-04-14 2014-08-05 Apple Inc. Boot data storage schemes for electronic devices
US9176800B2 (en) * 2011-08-31 2015-11-03 Micron Technology, Inc. Memory refresh methods and apparatuses
US20150332772A1 (en) * 2014-05-13 2015-11-19 Kyungryun Kim Nonvolatile memory system including nonvolatile memory device and memory controller and operating method of memory controller

Also Published As

Publication number Publication date
US20190196960A1 (en) 2019-06-27
TW201928968A (zh) 2019-07-16
CN109976938B (zh) 2022-09-23
CN109976938A (zh) 2019-07-05
US10789163B2 (en) 2020-09-29

Similar Documents

Publication Publication Date Title
TWI646535B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
US11113149B2 (en) Storage device for processing corrupted metadata and method of operating the same
TWI639917B (zh) 資料儲存裝置及映射表重建方法
TWI694329B (zh) 用於記憶體之針對性淨除之方法及設備
TWI613652B (zh) 資料儲存裝置以及其操作方法
US8788876B2 (en) Stripe-based memory operation
KR101491943B1 (ko) 트랜잭션 로그 복구
JP5675954B2 (ja) メタデータタグを介した不規則なパリティ分布の検出
US9990146B2 (en) Apparatus and method of data sequencing
JP5585919B2 (ja) 電源遮断管理
WO2019174205A1 (zh) 一种垃圾回收的方法、装置及存储设备
CN108932107B (zh) 数据存储装置及其操作方法
US10866751B2 (en) Method for managing flash memory module and associated flash memory controller
KR102564774B1 (ko) 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
US20200349065A1 (en) Data storage devices and data processing methods
US20170017405A1 (en) Systems and methods for improving flash-oriented file system garbage collection
CN112612639A (zh) 操作存储器系统的方法、操作主机的方法和计算系统
TW201329999A (zh) 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置
US10942678B2 (en) Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
TW202403548A (zh) 借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器
CN112068983A (zh) 存储器系统及其操作方法