TWI566252B - 非揮發性記憶體裝置進行耗損管理之方法 - Google Patents
非揮發性記憶體裝置進行耗損管理之方法 Download PDFInfo
- Publication number
- TWI566252B TWI566252B TW104126643A TW104126643A TWI566252B TW I566252 B TWI566252 B TW I566252B TW 104126643 A TW104126643 A TW 104126643A TW 104126643 A TW104126643 A TW 104126643A TW I566252 B TWI566252 B TW I566252B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- error
- error count
- storage block
- storage
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
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)
Description
本發明係關於一種非揮發性記憶體裝置進行耗損管理之方法,尤其係關於一種非揮發性記憶體裝置於讀寫操作下進行耗損管理之方法。
半導體記憶體裝置一般分為兩種:揮發性記憶體裝置與非揮發性記憶體裝置。揮發性記體裝置包括有動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)以及同步隨機存取記憶體(Synchronous Random Access Memory,SRAM)。而非揮發性記憶體裝置包括有電子抹除式可複寫唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EEPROM)、鐵電隨機存取記憶體(Ferroelectric Random Access Memory,FeRAM)、相變化隨機存取記憶體(Phase-change Random Access Memory,PRAM)、磁性隨機存取記憶體(Magnetic Random Access Memory,MRAM)以及快閃型記憶體(Flash-type Memory)等。當電源供應切斷時,揮發性記憶體中
所儲存的資料即隨之消逝,而非揮發性記體卻可以持續保留所儲存的資料。特別的是,快閃型記憶體裝置具有編程速度快、低耗能以及高儲存容量的特徵,因此常廣泛地做為電腦裝置像是桌上型電腦、筆記型電腦、個人數位助理(Personal Digital Assistants,PDAs)、數位相機、平板電腦、智慧型通訊裝置等之非揮發性記憶體來使用。
快閃型記憶體裝置如具有極佳的隨機存取時間之NOR型快閃記憶體裝置或具有高整合度之NAND型快閃記憶體,兩者可採用不同的記憶胞結構,並可透過將電子移入或移出快閃記憶胞來改變其狀態。舉例來說,單層式記憶胞(Single Level Sell,SLC)可利用單一位元二進位狀態(即0或1)進行配置。相似地,多層式記憶胞(Multi-Level Sell,MLC)可利用二位元狀態(即00、01、10、11)進行配置,同理,三位元狀態之配置依此類推。
快閃記憶體裝置一般會有耗損問題,這是由於記憶胞中之通道氧化層受到編程/抹除循環(Programming/Erase cycle,P/E cycle)使得受損缺陷會持續增加,而這會使流經氧化物的電流改變。這樣的結果,會使得一些記憶胞可能無法留住電荷,或者只能短時間留住電荷,進而發生錯誤位元而產生資料錯誤。而現今,已有數個錯誤偵測與錯誤校正的手段來解決前段所述之問題,以確保資料的完整性,但這些方法僅能修復有限數量的錯誤位元。當有缺陷或較低承載電荷能力的記憶胞產生了還可被修復的錯誤位元時,該記憶胞中儲存區塊的錯誤率也有可能會變高到使得寫入到儲存區塊的資料無法達到一個可靠的水準。因此,現在也引進了一種提早退休的機制,使得這些錯誤率高的儲存區塊於即將變得無法修復時,將該些儲存區塊退役,避免資料寫入該些儲存區塊之中。
在習知的耗損管理方法中,可透過設定提早退休門檻值為一固定的值,而這個提早退休門檻值僅是些微小於可修復的錯誤位元數的最大數量。當偵測到特定儲存區塊的錯誤位元數超過提早退休門檻值時,該特定儲存區塊就會被標記為損壞儲存區塊以表示退役,並且不再做為存取資料使用。一般來說,錯誤位元數量係與P/E cycle次數成比例,換句話說,若當前的P/E cycle次數還較小時,錯誤位元數量係緩緩地隨著P/E cycle次數的增加而增加,但若當前的P/E cycle次數已經很大時,錯誤位元數量卻是以指數方式隨著P/E cycle次數的增加而爆增。當於一定程度的P/E cycle次數下執行習知的耗損管理方法時,非可靠的儲存區塊中錯誤位元計數也許小於但非常接近提早退休門檻值(固定值),而之後P/E cycle次數只要微小的增加可能會讓儲存區塊的錯誤位元瞬間指數性的快速惡化。換句話說,於儲存區塊的保證生命週期(guaranteed lifetime)即將結束時,習知的耗損管理可能無法即時將這些很快就會無法使用的儲存區塊退役。因此,需要一種更有效的非揮發性記憶體裝置耗損管理方法。
本發明揭露了一種非揮發性記憶體裝置進行耗損管理方法,該非揮發性記體裝置包含有複數個儲存單元,該方法包含下列步驟:於一第一次存取期間,自一特定儲存單元中獲取該特定儲存單元所產生之與錯誤位元數有關之一第一錯誤計數;於一第二次存取期間,自該特定儲存單元中取回該特定儲存單元所產生之與錯誤位元數有關之一第二錯誤計數,其中該第二次存取之時間係早於該第一次存取;判斷該第一錯誤計數
與該第二次錯誤計數之差值是否超過一預定數值;若該第一錯誤計數與該第二次錯誤計數之差值不超過該預定數值,則將一提早退休門檻值設定為一第一數值,或若該第一錯誤計數與該第二次錯誤計數之差值超過該預定數值,則將該提早退休門檻值設定為一第二數值,其中該第二數值小於該第一數值;當該第一錯誤計數超過該提早退休門檻值時,將該特定儲存單元標記為一損壞儲存單元,並不再做為存取數據使用。
本發明另揭露了一種於快閃記憶體裝置之一讀取操作下進行耗損管理方法,該非揮發性記體裝置包含有複數個儲存區塊,每個儲存區塊皆包含複數個頁,該方法包含下列步驟:回應一讀取指令,讀取該快閃記憶體裝置之一第一儲存區塊中之一第一頁中之數據;當該第一頁達到一提早搬移門檻值時,將該第一儲存區塊中之數據搬移至該快閃記憶體裝置之一第二儲存區塊,其中該第二儲存區塊係已被抹除過且為可編程狀態;於一第一次讀取期間,自該第二儲存區塊之一第二頁中獲取該第二頁所產生之與錯誤位元數有關之一第一錯誤計數,其中該第一次讀取係發生於將儲存於該第一儲存區塊之數據搬移至該第二儲存區塊之後;於一第二次讀取期間,自該第二儲存區塊之該第二頁中取回該第二頁所產生之與錯誤位元數有關之一第二錯誤計數,其中該第二次讀取之時間係早於該第一次讀取;判斷該第一錯誤計數與該第二次錯誤計數之差值是否超過一預定數值;若該第一錯誤計數與該第二次錯誤計數之差值不超過該預定數值,則將一提早退休門檻值設定為一第一數值,或若該第一錯誤計數與該第二次錯誤計數之差值超過該預定數值,則將該提早退休門檻值設定為一第二數值,其中該第二數值係小於該第一數值;當該第一錯誤計數超過該提早
退休門檻值時,將該第二儲存區塊標記為一損壞儲存區塊,並不再做為存取數據使用。
本發明另揭露了一種於快閃記憶體裝置之一寫入操作下進行耗損管理方法,該非揮發性記體裝置包含有複數個儲存區塊,每個儲存區塊皆包含複數個頁,該方法包含下列步驟:回應一寫入指令,將數據寫入至該快閃記憶體裝置之一特定儲存區塊中之一特定頁,其中該特定儲存區塊係已被抹除過且為可編程狀態;於一第一次寫入期間,自該特定儲存區塊之該特定頁中獲取該特定頁所產生之與錯誤位元數有關之一第一錯誤計數,其中該第一次寫入之時間係發生於將該數據儲存該特定頁之後;於一第二次寫入期間,自該該特定儲存區塊之該特定頁中獲取該特定頁所產生之與錯誤位元數有關之一第二錯誤計數,其中該第二次寫入之時間係早於該第一次寫入;判斷該第一錯誤計數與該第二次錯誤計數之差值是否超過一預定數值;若該第一錯誤計數與該第二次錯誤計數之差值不超過該預定數值,則將一提早退休門檻值設定為一第一數值,或若該第一錯誤計數與該第二次錯誤計數之差值超過該預定數值,則將該提早退休門檻值設定為一第二數值,其中該第二數值小於該第一數值;當該第一錯誤計數超過該提早退休門檻值時,將該特定儲存區塊標記為一損壞儲存區塊,並不再做為存取數據使用。
10‧‧‧記憶體晶片
100‧‧‧非揮發性記憶體系統
12‧‧‧記憶體陣列
122‧‧‧數據池
124‧‧‧保留池
14‧‧‧週邊電路
16‧‧‧晶載控制電路
18‧‧‧狀態機
20‧‧‧記憶體控制器
22‧‧‧韌體
24‧‧‧錯誤處理器
80‧‧‧主機
90‧‧‧記憶體裝置
A‧‧‧隨P/E cycle次數成長之錯誤位元數量增加曲線
B‧‧‧隨P/E cycle次數成長之錯誤位元數量增加曲線
BLOCK1~BLOCKM‧‧‧儲存區塊
BLOCK'1~BLOCK'M‧‧‧儲存區塊
E1~E6‧‧‧錯誤位元數量
EBMAX‧‧‧可修復之錯誤位元之最大數量
EM‧‧‧提早搬移門檻值
ER‧‧‧提早退休門檻值
PAGE1~PAGEN‧‧‧頁
PAGE'1~PAGE'N‧‧‧頁
步驟510~步驟590
步驟610~步驟670
步驟710~步驟750
請參閱以下有關本發明較佳實施例之詳細說明及其附圖,在本發明所屬技術領域中具有通常知識者將可進一步了解本發明之技術內容
及目的功效:圖1 係為根據本發明之一實施例之非揮發性記憶體系統執行耗損管理之功能方塊圖;圖2 係為根據本發明之一實施例之非揮發性記憶體裝置中記憶體陣列之佈置示意圖;圖3~4 係為於執行本發明之方法期間,記憶體陣列特性示意圖;圖5 係為根據本發明之一實施例之非揮發性記憶體系統執行耗損管理方法流程圖;圖6係為根據本發明之一實施例之快閃記憶體裝置於讀取操作下執行耗損管理方法流程圖;以及圖7係為根據本發明之一實施例之快閃記憶體裝置於寫入操作下執行耗損管理方法流程圖。
請參閱圖1,係為根據本發明之一實施例之非揮發性記憶體系統100執行耗損管理之功能方塊圖。非揮發性記憶體系統100包含了與記憶體裝置90通訊之主機80。主機80可傳送數據並儲存於記憶體裝置90(寫入操作),或者自記憶體裝置90取回數據(讀取操作)。記憶體裝置90包含有1或多個記憶體晶片10,而每個記憶體晶片10皆由記憶體控制器20所管理。每個記憶體晶片10包含有記憶體陣列12、週邊電路14以及晶載控制電路16。其中,記憶體陣列12可由SLC、MLC等結構之記憶胞所組成。在一實施例中,記憶
體陣列12包含用以做為儲存之數據池122以及保留池124。週邊電路14可包含行與列解碼器、感測模組、資料鎖存器以及I/O電路(未繪示於圖中)。晶載控制電路16包含有用以控制記憶體陣列12上低階記憶體操作之狀態機18。
在許多實施方式中,主機80透過包含有韌體22與錯誤處理器24之記憶體控制器20與每個記憶體晶片10相互溝通與互動。韌體22提供用以執行記憶體控制器20功能之編碼。錯誤處理器24用以於記憶體裝置90操作期間,對記憶體陣列12中的每個最小單元(如:頁)進行偵測與進行錯誤位元之校正。因此,記憶體控制器20可與記憶體晶片10相互協作並控制記憶體陣列12上之高階記憶體操作。
在本發明之實施例中,記憶體裝置90可為電子抹除式可複寫唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EEPROM)、鐵電隨機存取記憶體(Ferroelectric Random Access Memory,FeRAM)、相變化隨機存取記憶體(Phase-change Random Access Memory,PRAM)、磁性隨機存取記憶體(Magnetic Random Access Memory,MRAM)或快閃記憶體(Flash-type Memory)。為了可清楚說明本發明之目的,後續段落將以快閃記憶體90做為舉例說明。然而,以快閃記憶體作為說明並非用以限制本發明之範疇。
請參閱圖2,係為根據本發明之一實施例之快閃記憶體裝置90中記憶體陣列12之佈置示意圖。數據池122包含有複數個儲存區塊BLOCK1-BLOCKM,每個儲存區塊皆包含有複數個頁PAGE1-PAGEN(M與N皆為正整數)。保留池124包含有複數個保留區塊BLOCK' 1-BLOCK' m,每一個保留區塊包含有複數個頁PAGE' 1-PAGE' n(m與n皆為正整數)。在一般的快閃記憶體裝置中,儲存區塊係為記憶體陣列12中最小的抹除單元,而頁是記
憶體陣列12中可進行寫入與讀取的最小單元。在一實施例中,圖2中記憶體陣列12中記憶體之佈置可表示快閃記憶體裝置90中之實體儲存空間,如藉由柱狀磁頭扇區(Cylinder-Head-Sector,CHS)定址之方式。在其他的實施例中,圖2中記憶體陣列12中記憶體之佈置可表示快閃記憶體裝置90中之邏輯儲存空間,如透過邏輯區塊位址(Logical Block Address,LBA)之方式。然而,此處關於記憶體陣列12中記憶體之佈置的舉例說明並非用以限制本發明之範疇。
請參閱圖3~4,係為於圖5~7之執行本發明方法期間,記憶體陣列12特性示意圖。其中橫軸表示當前快閃記憶體裝置90之當前P/E cycle次數,而縱軸表示記憶體陣列12中儲存單元所產生之錯誤位元的量。曲線A表示記憶體陣列12中儲存單元之理想特性,而曲線B表示當快閃記憶體裝置90遭遇早期失效時之特性。曲線EBMAX表示關於可修復儲存單元所產生之錯誤位元之最大數量。曲線EM表示用以平衡每個儲存單元進行存取資料之提早搬移(early move)門檻值。曲線ER表示提早退休門(early retirement)檻值,退休門檻值係用以做為儲存單元是否保證下一次存取時保持資料完整性的判斷依據。
請參閱圖5,係為根據本發明之一實施例之非揮發性記憶體系統執行耗損管理方法流程圖。如圖5所示,包含下列步驟:
步驟510:開始。
步驟520:獲取非揮發性記憶體裝置中之儲存單元之第一錯誤計數,接著執行步驟530。
步驟530:擷取儲存單元中已儲存之第二錯誤計數,其中擷
取第二錯誤計數之時間係早於獲取第一錯誤計數之時間,接著執行步驟540。
步驟540:判斷第一錯誤計數與第二錯誤計數之差值是否超過一預定數值;若是,則進行步驟550;若否,則進行步驟560。
步驟550:調整提早退休門檻值,接著執行步驟560。
步驟560:判斷第一錯誤計數是否超過提早退休門檻值;若是,則進行570;若否,則進行步驟590。
步驟570:將儲存單元標示為一損壞儲存單元,接著執行步驟580。
步驟580:如儲存單元中已儲存的第二錯誤計數,將第一錯誤計數進行儲存,接著執行步驟590。
步驟590:結束。
現在於圖5所示之本發明之耗損管理方法係為根據圖1~4所示。為了方便說明,假設非揮發性記憶體系統100為快閃記憶體裝置90,且快閃記憶體裝置90具有3000次的保證P/E cycle次數。儲存單元可為記憶體陣列12中的儲存區塊BLOCK1-BLOCKM,或為記憶體陣列12中任意儲存區塊BLOCK1-BLOCKM其中之一中的任意頁PAGE1-PAGEN其中之一。當本發明之非揮發性記憶體100係以其他類型的記憶體裝置90實施時(於圖4中之描述),「儲存單元」可能會以別種相對應的形式所取代。然而,不同的非揮發性記憶體裝置中的「儲存單元」如何被定址並非用以限制本發明之範疇。
在本發明中,圖5中所描述之方法可於預定指令下實施於非揮發性記憶體裝置中的每個儲存單元,或是週期性地/規律地基於P/E cycle
次數來實施於特定儲存單元上。舉例來說,本發明之耗損管理方法可每隔500次P/E cycle次數即進行一次。然而,本發明於此對於實施耗損管理方法之頻率之舉例並非用以限制本發明之範疇。
在本發明中,步驟520與步驟530可藉由錯誤處理器24透過任一已知的錯誤偵測手段來執行,其中已知的錯誤偵測手段可為重複編碼、奇偶校驗位元、檢查總和、循環冗餘校驗(Cyclic Redundancy Check,CRC)、密碼雜湊演算或錯誤校正碼(Error Correction Code,ECC),並且可利用1或多次的存取手段來測得特定儲存單元所產生的錯誤位元的數量。然而,此處所舉之錯誤偵測手段類型並非用以限制本發明之範疇。
當於特定儲存單元上執行步驟520後,當前獲取的第一錯誤計數係先前即儲存於特定儲存單元之特定區域之中,像是頁的保留區域。更進一步說明,若圖5係於記憶體陣列12中之特定儲存單元上以每500次的P/E cycle次數進行一次本發明之方法,則每當快閃記憶體裝置90的當前P/E cycle次數分別達到500、1000、1500、2000以及2500時,步驟520所獲取之第一錯誤計數依序為E1~E5,且步驟530中取回之第二錯誤計數依序為E0~E4。
理論上,在未超過保證P/E cycle次數前,記憶體陣列12之儲存區塊中的每個頁皆可被存取而不會產生無法被修復的錯誤位元數量,如圖3~4中曲線A所示。在一些例子中,於3000次的保證P/E cycle次數下,當當前的P/E cycle次數達到2000後,記憶體陣列12的工作效能可能會驟降,而當當前的P/E cycle次數達到約2600次左右時,記憶體陣列12所產生的錯誤位元數可能會超過可修復之錯誤位元最大數量EBMAX(如圖3~4中所示之星號)。而本發明提出之方法(圖5)係提供了一種調整提早退休機制以保護由於記憶體
陣列12失效而造成的資料損失(如圖3~4之曲線B)。
如先前所述,當當前的P/E cycle次數還很少時,記憶體陣列12中儲存單元所產生的錯誤位元是隨著P/E cycle次數的增加而緩緩地上升,並於步驟540中進行第一錯誤計數與第二錯誤計數差值之判斷且並未超過預定數值△E。在圖3及圖4的實施例中,當快閃記憶體裝置90的當前P/E cycle次數達到2000次之前,根據步驟540的判斷,其差值之判斷結果為E1-E0<△E、E2-E1<△E以及E3-E2<△E。在這個狀況下,提早退休門檻值ER保持在初始數值V1(步驟560)。
另一方面,當當前的P/E cycle次數非常大時,記憶體陣列12之儲存單元所產生的錯誤位元數量一般係隨著P/E cycle次數增加而成指數性上升,並於步驟540中進行第一錯誤計數與第二錯誤計數差值之判斷且超過了預定數值△E。在圖3及圖4的實施例中,當快閃記憶體裝置90的當前P/E cycle次數達到2000次時,根據步驟540的判斷,其差值之判斷結果為E4-E3>△E且E5-E4>△E。在這個狀況下,提早退休門檻值ER即被調整為數值V2,其中數值V2係小於初始數值V1(步驟550)。當快閃記憶體裝置90的當前P/E cycle次數達到2500次時,於步驟560中判斷第一錯誤計數超過了提早退休門檻值(E5>V2)。即使當前獲取之第一錯誤計數並未超過初始的早提退休門檻值(E5<V1),但儲存單元仍被標示為一損壞儲存單元(步驟570)。當特定儲存單元的錯誤計數開始呈現指數性的成長時,接下來僅增加些微的P/E cycle次數所產生之錯誤位元的數量可能就超過了可修復的數量範圍。藉由本發明因應錯誤計數快速增加的情況而降低提早退休門檻值之方式,可於儲存單元損毀之前將即將失效的儲存單元即時進行標示並退役,以確保存取資料
的完整性。
在本發明中,當特定儲存單元所產生的錯誤位元數量還少時,用以做為判斷特定儲存單元退役準則之提早退休門檻值之數值係設定較大,而當特定儲存單元所產生的錯誤位元數量較多時,提早退休門檻值之數值就會調整到比初始數值還小的數值。在本發明圖3之實施例中,提早退休門檻值ER係設定為V1還是V2是取決於第一錯誤計數與第二錯誤計數兩者間之差值是否超過一預定數值。在本發明圖4之實施例中,提早退休門檻值可於判斷第一錯誤計數與第二錯誤計數之差值超過之預定數值後,逐步調降至V1、V2及V3。然而,此處所述關於調整提早退休門檻值的數量及頻率並非用以限制本發明之範疇。
在本發明中,步驟540中之預定數值△E可根據快閃記憶體裝置90的類型、特性以及/或所處環境至少其中之一或其組合來決定。
請參閱圖6,係為根據本發明之一實施例之快閃記憶體裝置於讀取操作下執行耗損管理方法流程圖,如圖6所示,包含下列步驟:
步驟610:開始。
步驟620:回應讀取命令而自快閃記憶體裝置之第一儲存區塊中之特定頁讀取數據,接著執行步驟630。
步驟630:判段特定頁是否達到提早移動門檻值;若是,則進行步驟640;若否,則進行步驟670。
步驟640:根據一預定規則自快閃記憶體裝置之保留池中選擇第二儲存區塊,接著執行步驟650。
步驟650:將數據自第一儲存區塊搬移至第二儲存區塊,並
且抹除第一儲存區塊,接著執行步驟660。
步驟660:對第二儲存區塊進行耗損管理,接著執行步驟670。
步驟670:結束。
現在於圖6所示之本發明之耗損管理方法係為根據圖1~4所示。為了方便說明,假設非揮發性記憶體系統100為快閃記憶體裝置90,且快閃記憶體裝置90具有3000次的保證P/E cycle次數,並且保留池中的所有保留儲存區塊皆已被抹除並且為可編程狀態。
步驟620中,於回應讀取命令下對第一儲存區塊中之特定頁讀取數據後,執行步驟630以判斷是否對該特定頁執行提早搬移操作。在本發明中,可透過執行步驟630使用錯誤處理器24並基於任一習知之錯誤偵側手段來獲取該特定頁之錯誤位元之計數,其中習知之錯誤偵側手段可為重複編碼、奇偶校驗位元、檢查總和、循環冗餘校驗(Cyclic Redundancy Check,CRC)、密碼雜湊演算或錯誤校正碼(Error Correction Code,ECC),從而判斷該特定頁之錯誤位元之計數是否超過提早搬移門檻值(圖3~4中之曲線EM)。
在步驟640中,第二儲存區塊係根據預定規則自快閃記憶體裝置90之保留池124中進行選擇。在一實施例中,第二儲存區塊可為自保留池124中隨機選擇之任意保留區塊。在其他實施例中,第二儲存區塊可為保留池124中錯誤位元計數最低的保留區塊,從而避免保留池124中特定保留區塊較早出現損壞。在步驟630至步驟650中,本發明所揭露之提早搬移機制係避免過度使用某一特定儲存區塊,以平均地使用所有儲存區塊。
在步驟660中,圖5所示之耗損管理方法可實施於第二儲存區
塊上。若如步驟660第二儲存區塊被標示為損壞儲存區塊,則第二儲存區塊則被除役不再做為存取資料使用,從而避免於下一次提早搬移操作時,將數據重新分配到該些不可靠之儲存區塊之中。因此,本發明可於儲存區塊損毀之前將即將失效的儲存單元即時進行標示並退役,以確保存取資料的完整性。
請參閱圖7,係為根據本發明之一實施例之快閃記憶體裝置於寫入操作下執行耗損管理方法流程圖。如圖7所示,包含下列步驟:
步驟710:開始。
步驟720:判斷特定儲存區塊是否為可編程狀態且並非被標示為損壞儲存區塊;若是,則執行步驟730;若否,則執行步驟750。
步驟730:回應一寫入指令將數據寫入至特定儲存區塊中之特定頁,接著執行步驟740。
步驟740:對特定儲存區塊執行耗損管理,接著執行步驟750。
步驟750:結束。
現在於圖7所示之本發明之耗損管理方法係為根據圖1~4所示。為了方便說明,本發明之圖7係假設非揮發性記憶體系統100為快閃記憶體裝置90,且快閃記憶體裝置90具有3000次的保證P/E cycle次數。
在步驟720中,判斷特定儲存區塊是否為可編程狀態且並非被標示為損壞儲存區塊。在步驟730中,於證實步驟720之特定儲存區塊為具有可靠性後,將數據寫入至特定儲存區塊之特定頁中。在步驟740中,圖5所示之耗損管理方法可執行於該特定儲存區塊上。若於步驟740中將特定儲
存區塊標示為損壞儲存區塊,則該特定儲存區塊將被除役而不再作為存取資料使用,從而保護之後欲儲存之數據或進行耗損管理而搬移數據時不會寫入到該些不可靠的儲存區塊之中。因此,本發明可於儲存區塊損毀之前將即將失效的儲存單元即時進行標示並退役,以確保存取資料的完整性。
在本發明中,提早退休門檻值可根據非揮發性記憶體裝置中儲存單元所產生的錯誤位元增加情況來做動態調整。當錯誤位元增加數量的趨勢太大時,藉由本發明降低提早退休門檻值的方式,可於儲存區塊損毀之前將即將失效的儲存單元即時進行標示並退役,以確保存取資料的完整性。
上列詳細說明係針對本發明之一可行實施例之具體說明,惟該實施例並非用以限制本發明之專利範圍,凡未脫離本發明技藝精神所為之等效實施或變更,均應包含於本發明之專利範圍之中。
步驟510~步驟590
Claims (15)
- 一種非揮發性記憶體裝置進行耗損管理方法,該非揮發性記體裝置包含有複數個儲存單元並具備一提早退休門檻值,當該複數個儲存單元中至少一儲存單元之錯誤計數超過該提早退休門檻值時,該至少一儲存單元係標記為一損壞儲存單元而不再使用,其中該早期退休門檻值係為小於可修復錯誤位元數之一最大數量之一第一數值,該方法包含下列步驟:於一第一次存取期間,自一特定儲存單元中獲取該特定儲存單元所產生之與錯誤位元數有關之一第一錯誤計數;於一第二次存取期間,自該特定儲存單元中取回該特定儲存單元所產生之與錯誤位元數有關之一第二錯誤計數,其中該第二次存取之時間係早於該第一次存取;判斷該第一錯誤計數與該第二次錯誤計數之差值是否超過一預定數值;若該第一錯誤計數與該第二次錯誤計數之差值不超過該預定數值,則將該提早退休門檻值保持在該第一數值,或若該第一錯誤計數與該第二次錯誤計數之差值超過該預定數值,則將該提早退休門檻值設定為一第二數值,其中該第二數值小於該第一數值但大於一提早搬移門檻值;當該第一錯誤計數超過該提早退休門檻值時,將該特定儲存單元標記為該損壞儲存單元,並不再做為存取數據使用。
- 如請求項1所述之方法,更包含下列步驟:該預定數值係根據該非揮發性記憶體裝置之一類型、一特性或一所在環境特徵至少其中之一所設定。
- 如請求項1所述之方法,更包含下列步驟:將該第一錯誤計數儲存於該特定儲存單元之中。
- 如請求項1所述之方法,其中該些儲存單元係對應該非揮發性記憶體裝置之實體儲存區域。
- 如請求項1所述之方法,其中該些儲存單元係對應該非揮發性記憶體裝置之邏輯儲存區域。
- 如請求項1所述之方法,其中當該非揮發性記憶體裝置之一當前編程抹除循環數值(Programming/Erase cycle,P/E cycle)未超過一保證可編程抹除循環數值時,該第一數值與該第二數值係小於可被修復之該錯誤位元數之該最大數量。
- 一種於快閃記憶體裝置之一讀取操作下進行耗損管理方法,該非揮發性記體裝置包含有複數個儲存區塊,每個儲存區塊皆包含複數個頁,該非揮發性記體裝置更具備一提早退休門檻值,當該複數個儲存單元中至少一儲存單元之錯誤計數超過該提早退休門檻值時,該至少一儲存單元係標記為一損壞儲存單元而不再使用,其中該早期退休門檻值係為小於可修復錯誤位元數之一最大數量之一第一數值,該方法包含下列步驟:回應一讀取指令,讀取該快閃記憶體裝置之一第一儲存區塊中之一第一頁中之數據;當該第一頁達到一提早搬移門檻值時,將該第一儲存區塊中之數據搬移至該快閃記憶體裝置之一第二儲存區塊,其中該第二儲存區塊係已被抹除過且為可編程狀態;於一第一次讀取期間,自該第二儲存區塊之一第二頁中獲取該第二頁所產生之與錯誤位元數有關之一第一錯誤計數,其中該第一次讀取係發生於將儲存於該第一儲存區塊之數據搬移至該第二儲存區塊之後;於一第二次讀取期間,自該第二儲存區塊之該第二頁中取回該第二頁所 產生之與錯誤位元數有關之一第二錯誤計數,其中該第二次讀取之時間係早於該第一次讀取之時間;判斷該第一錯誤計數與該第二次錯誤計數之差值是否超過一預定數值;若該第一錯誤計數與該第二次錯誤計數之差值不超過該預定數值,則將該提早退休門檻值保持在該第一數值,或若該第一錯誤計數與該第二次錯誤計數之差值超過該預定數值,則將該提早退休門檻值設定為一第二數值,其中該第二數值係小於該第一數值但大於一提早搬移門檻值;當該第一錯誤計數超過該提早退休門檻值時,將該第二儲存區塊標記為該損壞儲存區塊,並不再做為存取數據使用。
- 如請求項7所述之方法,更包含下列步驟:該預定數值係根據該快閃記憶體裝置之一類型、一特性或一所在環境特徵至少其中之一所設定。
- 如請求項7所述之方法,更包含下列步驟:將該第一錯誤計數儲存於該第二頁之一保留區域之中;以及儲存一損壞儲存區塊標記於該第二頁之該保留區域之中,該損壞儲存區塊標記係用以表示該第二儲存區塊是否為損壞儲存區塊。
- 如請求項7所述之方法,更包含下列步驟:當儲存於該第一儲存區塊之數據搬移至該第二儲存區塊後,該第一儲存區塊進行抹除。
- 如請求項7所述之方法,其中該第一數值與該第二數值係大於該提早搬移門檻值,而當該快閃記憶體裝置之一當前編程抹除循環數值 (Programming/Erase cycle,P/E cycle)未超過一保證可編程抹除循環數值時,該提早搬移門檻值、該第一數值與該第二數值皆小於可修復之錯誤位元之該最大數量。
- 一種於快閃記憶體裝置之一寫入操作下進行耗損管理方法,該非揮發性記體裝置包含有複數個儲存區塊,每個儲存區塊皆包含複數個頁,該非揮發性記體裝置更具備一提早退休門檻值,當該複數個儲存單元中至少一儲存單元之錯誤計數超過該提早退休門檻值時,該至少一儲存單元係標記為一損壞儲存單元而不再使用,其中該早期退休門檻值係為小於可修復錯誤位元數之一最大數量之一第一數值,該方法包含下列步驟:回應一寫入指令,將數據寫入至該快閃記憶體裝置之一特定儲存區塊中之一特定頁,其中該特定儲存區塊係已被抹除過且為可編程狀態;於一第一次寫入期間,自該特定儲存區塊之該特定頁中獲取該特定頁所產生之與錯誤位元數有關之一第一錯誤計數,其中該第一次寫入之時間係發生於將該數據儲存該特定頁之後;於一第二次寫入期間,自該該特定儲存區塊之該特定頁中取回該特定頁所產生之與錯誤位元數有關之一第二錯誤計數,其中該第二次寫入之時間係早於該第一次寫入;判斷該第一錯誤計數與該第二次錯誤計數之差值是否超過一預定數值;若該第一錯誤計數與該第二次錯誤計數之差值不超過該預定數值,則將該提早退休門檻值保持在該第一數值,或若該第一錯誤計數與該第二次錯誤計數之差值超過該預定數值,則將該提早退休門檻值設定為一第二數值,其中該第二數值小於該第一數值但大於一提早搬移門檻值;當該第一錯誤計數超過該提早退休門檻值時,將該特定儲存區塊標記為該損壞儲存區塊,並不再做為存取數據使用。
- 如請求項12所述之方法,更包含下列步驟:該預定數值係根據該快閃記憶體裝置之一類型、一特性或一所在環境特徵至少其中之一所設定。
- 如請求項12所述之方法,更包含下列步驟:將該第一錯誤計數儲存於該特定頁之一保留區域之中;以及儲存一損壞儲存區塊標記於該特定頁之該保留區域之中,該損壞儲存區塊標記係用以表示該特定儲存區塊是否為損壞儲存區塊。
- 如請求項12所述之方法,其中當該快閃記憶體裝置之一當前編程抹除循環數值(Programming/Erase cycle,P/E cycle)未超過一保證可編程抹除循環數值時,該第一數值與該第二數值皆小於可修復之錯誤位元之該最大數量。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/485,779 US20160078966A1 (en) | 2014-09-14 | 2014-09-14 | Method of performing wear management in non-volatile memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201611018A TW201611018A (zh) | 2016-03-16 |
TWI566252B true TWI566252B (zh) | 2017-01-11 |
Family
ID=55455385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104126643A TWI566252B (zh) | 2014-09-14 | 2015-08-14 | 非揮發性記憶體裝置進行耗損管理之方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20160078966A1 (zh) |
TW (1) | TWI566252B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI581093B (zh) | 2016-06-24 | 2017-05-01 | 慧榮科技股份有限公司 | 資料儲存媒體之損壞資料行的篩選方法 |
WO2018009212A1 (en) * | 2016-07-08 | 2018-01-11 | Hewlett-Packard Development Company, L.P. | Determining a device wear-rate |
KR20180093153A (ko) * | 2017-02-09 | 2018-08-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
CN110888820B (zh) | 2018-09-07 | 2022-01-25 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN110888591B (zh) * | 2018-09-07 | 2023-05-30 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN110888593B (zh) * | 2018-09-07 | 2024-01-26 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US10936209B2 (en) * | 2019-06-06 | 2021-03-02 | Micron Technology, Inc. | Memory error indicator for high-reliability applications |
US10971228B2 (en) * | 2019-08-26 | 2021-04-06 | Micron Technology, Inc. | Adaptive application of voltage pulses to stabilize memory cell voltage levels |
US11106532B1 (en) * | 2020-04-29 | 2021-08-31 | Micron Technology, Inc. | Selective sampling of a data unit during a program erase cycle based on error rate change patterns |
US11940887B2 (en) * | 2020-12-04 | 2024-03-26 | Innogrit Technologies Co., Ltd. | Cache program with backup blocks |
TWI795974B (zh) * | 2021-11-02 | 2023-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其錯誤容忍度的篩選方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201015565A (en) * | 2008-10-03 | 2010-04-16 | Via Telecom Inc | Memory wear leveling method, system and device |
US20100122148A1 (en) * | 2008-11-10 | 2010-05-13 | David Flynn | Apparatus, system, and method for predicting failures in solid-state storage |
US20100332943A1 (en) * | 2009-06-29 | 2010-12-30 | Sandisk Corporation | Method and device for selectively refreshing a region of a non-volatile memory of a data storage device |
US8051241B2 (en) * | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
TW201413721A (zh) * | 2012-09-20 | 2014-04-01 | Silicon Motion Inc | 資料儲存裝置以及快閃記憶體控制方法 |
US20140156912A1 (en) * | 2012-12-04 | 2014-06-05 | Phison Electronics Corp. | Memory management method, and memory controller and memory storage apparatus using the same |
-
2014
- 2014-09-14 US US14/485,779 patent/US20160078966A1/en not_active Abandoned
-
2015
- 2015-08-14 TW TW104126643A patent/TWI566252B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201015565A (en) * | 2008-10-03 | 2010-04-16 | Via Telecom Inc | Memory wear leveling method, system and device |
US20100122148A1 (en) * | 2008-11-10 | 2010-05-13 | David Flynn | Apparatus, system, and method for predicting failures in solid-state storage |
US8051241B2 (en) * | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
US20100332943A1 (en) * | 2009-06-29 | 2010-12-30 | Sandisk Corporation | Method and device for selectively refreshing a region of a non-volatile memory of a data storage device |
TW201413721A (zh) * | 2012-09-20 | 2014-04-01 | Silicon Motion Inc | 資料儲存裝置以及快閃記憶體控制方法 |
US20140156912A1 (en) * | 2012-12-04 | 2014-06-05 | Phison Electronics Corp. | Memory management method, and memory controller and memory storage apparatus using the same |
Also Published As
Publication number | Publication date |
---|---|
US20160078966A1 (en) | 2016-03-17 |
TW201611018A (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI566252B (zh) | 非揮發性記憶體裝置進行耗損管理之方法 | |
TWI569273B (zh) | 非揮發性記憶體裝置讀取干擾管理方法 | |
EP3158454B1 (en) | Sub-block garbage collection | |
US10020072B2 (en) | Detect developed bad blocks in non-volatile memory devices | |
US9003224B2 (en) | Managing unreliable memory in data storage systems | |
US8621266B2 (en) | Nonvolatile memory system and related method of performing erase refresh operation | |
US10528420B2 (en) | Flash memory system having abnormal wordline detector and abnormal wordline detection method | |
KR102174293B1 (ko) | 확률론적 데이터 구조에 기초한 메모리 내의 사전적인 교정 조치 | |
KR101122485B1 (ko) | 메모리 시스템 | |
TWI683252B (zh) | 資料儲存設備及其操作方法 | |
US20160118132A1 (en) | Low Impact Read Disturb Handling | |
US9639463B1 (en) | Heuristic aware garbage collection scheme in storage systems | |
KR20160074237A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN111916136A (zh) | 存储控制器和存储装置 | |
US10545810B2 (en) | Method and apparatus for monitoring non-volatile memory read errors using background media scan | |
CN116529693A (zh) | 加电时的媒体管理 | |
CN105489242B (zh) | 数据储存器件及其操作方法 | |
CN113157486A (zh) | 一种存储器的纠错方法及装置 | |
US20120159280A1 (en) | Method for controlling nonvolatile memory apparatus | |
KR20160059050A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20220156144A1 (en) | Memory system and operating method thereof | |
US20160322087A1 (en) | Data storage device and operating method thereof | |
KR102246843B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11495319B2 (en) | Memory system, memory controller, and method for operating memory system performing integrity check operation on target code when voltage drop is detected | |
US20240036741A1 (en) | Memory system, memory controller and method for operating memory system, capable of determining target meta memory block on the basis of detected target state |