TW202125258A - 靜態耗損平均方法 - Google Patents
靜態耗損平均方法 Download PDFInfo
- Publication number
- TW202125258A TW202125258A TW108147388A TW108147388A TW202125258A TW 202125258 A TW202125258 A TW 202125258A TW 108147388 A TW108147388 A TW 108147388A TW 108147388 A TW108147388 A TW 108147388A TW 202125258 A TW202125258 A TW 202125258A
- Authority
- TW
- Taiwan
- Prior art keywords
- candidate block
- storage blocks
- erasures
- blocks
- block
- Prior art date
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明係揭露一種有效地延長快閃記憶的壽命且不過度降低寫的速度的靜態耗損平均技術包括判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值的步驟。然後,從該等儲存塊選一個候選塊。然後,判斷該候選塊是否合格。若該候選塊合格,則對它進行垃圾回收。若該候選塊不合格,則回到判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值的步驟。
Description
本發明關於NAND快閃記憶體,特別關於NAND快閃記憶體的靜態耗損平均方法。
NAND快閃記憶體有若干特點。第一,先擦,後寫。第二,每次寫的範圍小,但每次擦的範圍大。每次寫,以頁(page)為單位。每次擦,以儲存塊(block)為單位。第三,每一儲存塊的抹除次數(erase count)有限。
耗損平均(wear leveling)技術被用來使快閃記憶體的所有儲存塊有相似的抹除次數(erase count)而延長快閃記憶的壽命。目前有兩類耗損平均技術,亦即動態耗損平均(動態耗損平均技術)技術及靜態耗損平均(靜態耗損平均方法:SWL)技術。
在動態耗損平均技術中,把熱資料(hot data:主機寫的資料)寫入年輕儲存塊(有較少抹除次數),並把冷資料(cold data:在垃圾回收中先讀後寫的資料)寫入年老儲存塊。如此,平均耗損。然而,垃圾回收是把資料從一個儲存較少有效資料(亦即可釋出較多儲存容量)的儲存塊移到另一個儲存塊。亦即,是否釋放一個儲存塊成一個自由塊(free block),是由它儲存的有效資料量決定,不是由它的抹除次數決定。若一個儲存塊儲存大量有效資料,則它不會被釋放成自由塊,即使它的抹除次
數少。因此,在動態耗損平均技術中,只接觸自由塊(原儲存較少有效資料的儲存塊),卻不接觸長期被大量有效資料(可能是冷資料)佔用的儲存塊(可能是年輕儲存塊)。亦即,動態耗損平均技術無法接觸某些年輕儲存塊(長期被大量冷卻有效的資料佔用的儲存塊)。因此,動態耗損平均技術的效果有限。
與動態耗損平均技術相比,靜態耗損平均技術多做一件事,亦即若一儲存塊的抹除次數在一個閥值以下,則從此儲存塊移動冷資料,並釋放此儲存塊成自由塊。因此,與動態耗損平均技術比,靜態耗損平均技術更有效地延長快閃記憶的壽命,卻降低寫的速度。
有鑑於上述習知技藝之問題,本發明之主要目的是提供一種有效地延長快閃記憶的壽命且不過度降低寫的速度的靜態耗損平均技術。
為達上述目的,該靜態耗損平均方法包括判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值的步驟。然後,從該等儲存塊選一個候選塊。然後,判斷該候選塊是否合格。若該候選塊合格,則對它進行垃圾回收。若該候選塊不合格,則回到判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值的步驟。
在一種態樣中,該等儲存塊包括若干被佔用塊及若干自由塊。從該等儲存塊選一個候選塊的步驟包括從該等被佔用塊選一個候選塊的步驟。
在一種態樣中,在從該等儲存塊選一個候選塊的步驟以後,從所有儲存塊的平均抹除次數減該候選塊的抹除次
數而得一個第一差值的步驟,從該等自由塊的最大抹除次數減該候選塊的抹除次數而得一個第二差值,並從目前儲存塊的編程序號減該候選塊的編程序號而得一個第三差值。
在一種態樣中,判斷該候選塊是否合格的步驟包括判斷該第一差值是否大於或等於一個相對年齡閥值,判斷該第二差值是否大於或等於一個執行閥值,及判斷該第三差值是否大於或等於一個冷卻閥值。
10‧‧‧主機
11‧‧‧固態硬碟控制器
12‧‧‧NAND快閃記憶體
13‧‧‧被佔用塊
14‧‧‧自由塊
15‧‧‧META塊
第1圖是的一個系統的方塊圖;
第2圖是第1圖所示的系統的前景管理方法的流程圖;
第3圖是第1圖所示的系統的背景管理方法的流程圖;及
第4圖是本方法的較佳實施例的靜態耗損平均方法的流程圖,靜態耗損平均方法可被用於前景管理方法及背景管理方法中。
以下參考相關圖式進一步說明本發明的較佳實施例。為便於理解本發明,以下用相同符號標示相同元件。
如第1圖所示,一個系統包括一個主機(host)10、一個固態硬碟(solid-state drive)控制器11及一個NAND快閃記憶體12。控制器11在一端連接主機10並在另一端連接NAND快閃記憶體12。NAND快閃記憶體12包括若干被佔用塊13、自由塊14及META塊15。這些被佔用塊13儲存有效使用者資料(valid user data)。這些自由塊14未儲存任何有效資料,故可把資料寫入這些自由塊14。然而,須先從這些自由塊14抹除
資料,才把資料寫入這些自由塊14。這些META塊15貯存與NAND快閃記憶體12有關的資料,例如映射表(mapping tables)及儲存塊13及14的資訊(例如抹除次數)。
使用者資料的大部分佔用儲存塊(被佔用塊13)而少被移動。以本發明的較佳實施例的靜態耗損平均方法,發現一個有較少抹除次數的被佔用塊13,並強制從它移動冷資料,並釋放它成一個自由塊14。如此,充分平均這些儲存塊的抹除次數。並減少最大抹除次數的差異。
控制器11於必要時執行第2圖所示的前景管理方法或第3圖所示的背景管理方法。兩個管理方法都包括第4圖所示的本發明的較佳實施例的靜態耗損平均方法。
參考第2圖,一旦從主機10接到一個寫命令(write command),控制器11就啟動前景管理方法。
在S01,從這些自由塊14選一個,抹除其資料,然後把寫命令的資料寫到其中。然後,到S02。
在S02,判斷被抹除的儲存塊的量是否達T1。若抹除的儲存塊的量達T1,則到S03,否則回到S01。T1是被抹除的儲存塊的數量的閥值。
在S03,執行靜態耗損平均方法。
參考第3圖,若長時間沒從主機10收到寫命令,則控制器11啟動背景管理方法。
在S11,系統進入閒置狀態(idle state)。然後,到S12。
在S12,設定閒置狀態旗幟。
在S03,執行靜態耗損平均方法。
如上述,靜態耗損平均方法之目的是使儲存塊的
抹除次數平均分佈,並減少最大抹除次數的差異。
以下參考第4圖詳述靜態耗損平均方法。
在S21,判斷ECmax(All)是否大於或等於T2。若ECmax(All)大於或等於T2,則到S22,否則到S28。ECmax(All)是所有儲存塊13及14的最大抹除次數。T2是一個絕對年齡閥值(absolute-age threshold)。設此條件是為避免過早執行靜態耗損平均方法。ECmax(All)小於T2,表示所有儲存塊都年輕。因此,不必執行靜態耗損平均方法。ECmax(All)大於或等於T2,表示至少一個儲存塊夠老。因此,執行靜態耗損平均方法。
在S22,判斷是否已檢視所有被佔用塊13。若已檢視所有被佔用塊13,則到S28,否則到S23。
在S23,從被佔用塊13選一個候選塊N。然後,到S24。
在S24,計算三個差值。然後,到S25。
第一差值△1是ECavg(All)-EC(Candidate)。ECavg(All)是所有儲存塊13及14的平均抹除次數。EC(Candidate)是候選塊的抹除次數。
第二差值△2是ECmax(Free)-EC(Candidate)。ECmax(Free)是所有自由塊14的最大抹除次數。
第三差值△3是PBsid(Current)-PBsid(Candidate)。PBsid(Current)是目前儲存塊的編程序號。PBsid(Candidate)是候選塊的編程序號。每一個儲存塊13或14依其被編寫的順序而有其序號。從這些自由塊14選一個並予以抹除後,序號就會加1,並把這資訊寫入這些META塊15。
在S25,判斷候選塊N是否合格。若候選塊N合格,則到S26,否則回到S2.7。候選塊N須滿足三項條件,才是
合格。第一條件是第一差值△1大於或等於T3。第二條件是第二差值△2大於T4。第三條件是第三差值△3大於T5。
滿足第一條件,表示一個被佔用塊13與所有儲存塊13及14比是年輕的(有較少抹除次數)。因此,可稱T3為相對年齡閥值(relative-age threshold)。若稍後靜態耗損平均方法判斷這被佔用塊13是合格候選塊,並把它交給垃圾回收而成自由塊14,則在下次主機10的IO進來並執行動態耗損平均方法時,將優先挑選並寫資料到這自由塊14。
第二條件是為避免太頻繁執行靜態耗損平均方法。因此,可稱T4為執行閥值。執行靜態耗損平均方法會減IO通量(throughput)並造成寫放大問題(write amplification)。為在平均耗損與減少寫放大之間取得平衡,就不能一直執行靜態耗損平均方法而對很多儲存塊進行垃圾回收。若不考慮第二條件,則候選塊N滿足第一條件就會被送入垃圾回收。在垃圾回收中,會從自由塊14挑出抹除次數最大的儲存塊M,並將候選塊N的有效資料搬移到儲存塊M。若儲存塊M跟候選塊N的抹除次數差不多,則因儲存塊M抹除次數增而可能在下次啟動靜態耗損平均方法時挑中儲存塊M。如此,會太頻繁執行靜態耗損平均方法。為避免這情形,檢查儲存塊M與候選塊N的差值是否大於T4,並在儲存塊M與候選塊N的差值大於T4時,才把候選塊N送入垃圾回收。
第三條件是為冷卻剛被靜態耗損平均方法釋放(被佔用塊13→自由塊14)並再被佔用(自由塊14→被佔用塊13)的儲存塊。因此,可稱T5為冷卻閥值。滿足第三條件,表示儲存塊距上次被靜態耗損平均方法釋放並再被佔用已有一段時間。若不考慮第三條件,則候選塊N滿足第一條件及第二條件
就被送入垃圾回收而成為自由塊14,且稍後被寫而成為被佔用塊13。這儲存塊(被佔用塊13)的抹除次數較少,故易又被挑中而成為靜態耗損平均方法的候選塊N。如此,靜態耗損平均方法可能持續挑中一儲存塊,直到它的抹除次數趕上所有儲存塊的平均抹除次數。在主機10太頻繁送IO時,這儲存塊的抹除次數會因執行靜態耗損平均方法而急升。不希望為消弭平抹除次數的差異而一直磨損年輕儲存塊,故設計冷卻閥值T5,避免靜態耗損平均方法在短時內一再挑中同一儲存塊成為候選塊。
在S26,把候選塊N送入垃圾回收。如此,候選塊N可被釋放而成為一自由塊14。然後,到S27。
在S27,判斷有無閒置狀態旗幟。換言之,判斷系統是否處於閒置狀態。若有閒置狀態旗幟,則回到S22而檢視下一個被佔用塊13,否則到S28。
在S28,結束程序。
以上僅為描述本發明的較佳實施方式,非用以限定本發明的範圍。本技術領域內的一般技術人員根據上述實施例所作的均等變化,以及本領域內技術人員熟知的改變,仍在本發明的範圍內。
S01~S04‧‧‧步驟
Claims (10)
- 一種快閃記憶體的靜態耗損平均方法,包括以下步驟:判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值;若所有儲存塊的最大抹除次數達該絕對年齡閥值,則從該等儲存塊選一個候選塊;判斷該候選塊是否合格;若該候選塊合格,則對它進行垃圾回收;及若該候選塊不合格,則回到判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值的步驟。
- 如申請專利範圍第1項所述之靜態耗損平均方法,其中該等儲存塊包括若干被佔用塊及若干自由塊,從該等儲存塊選一個候選塊的步驟包括以下步驟:從該等被佔用塊選一個候選塊。
- 如申請專利範圍第2項所述之靜態耗損平均方法,其中判斷該候選塊是否合格的步驟包括以下步驟:從所有儲存塊的平均抹除次數減該候選塊的抹除次數而得一個第一差值;從該等自由塊的最大抹除次數減該候選塊的抹除次數而得一個第二差值;及從目前儲存塊的編程序號減該候選塊的編程序號而得一個第三差值。
- 如申請專利範圍第3項所述之靜態耗損平均方法,其中判斷該候選塊是否合格的步驟包括以下步驟:判斷該第一差值是否大於或等於一個相對年齡閥值;判斷該第二差值是否大於或等於一個執行閥值;及判斷該第三差值是否大於或等於一個冷卻閥值。
- 如申請專利範圍第1項所述之靜態耗損平均方法,在判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值的步驟之後,還包括以下步驟:判斷是否已檢視所有被佔用塊;及若未檢視所有被佔用塊,則判斷該候選塊是否合格。
- 如申請專利範圍第5項所述之靜態耗損平均方法,還包括以下步驟:若已檢視所有被佔用塊,則結束。
- 一種快閃記憶體的前景管理方法,包括以下步驟:抹除並寫入該快閃記憶的儲存塊;判斷被抹除的儲存塊的量是否達一個閥值;若被抹除的儲存塊的量未達該閥值,則回到判斷被抹除的儲存塊的量是否達一個閥值的步驟;若被抹除的儲存塊的量達該閥值,則對該快閃記憶體執行如申請專利範圍第1項所述之靜態耗損平均方法。
- 如申請專利範圍第7項所述之前景管理方法,其中該靜態耗損平均步驟包括以下步驟:判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值;從該等儲存塊選一個候選塊;判斷該候選塊是否合格;若該候選塊合格,則對它進行垃圾回收;若該候選塊不合格,則回到判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值的步驟。
- 一種快閃記憶體的背景管理方法,包括以下步驟:進入閒置狀態;設定閒置狀態旗幟;及執行如申請專利範圍第1項所述之靜態耗損平均方法。
- 如申請專利範圍第9項所述之背景管理方法,其中該靜態耗損平均步驟包括以下步驟:判斷所有儲存塊的最大抹除次數是否達一個絕對年齡閥值;從該等儲存塊選一個候選塊;判斷該候選塊是否合格;若該候選塊合格,則對它進行垃圾回收;若該候選塊不合格,則判斷有無閒置狀態旗幟;若有閒置狀態旗幟,則回到選一個候選塊的步驟;若無閒置狀態旗幟,則結束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108147388A TWI716234B (zh) | 2019-12-24 | 2019-12-24 | 靜態耗損平均方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108147388A TWI716234B (zh) | 2019-12-24 | 2019-12-24 | 靜態耗損平均方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI716234B TWI716234B (zh) | 2021-01-11 |
TW202125258A true TW202125258A (zh) | 2021-07-01 |
Family
ID=75237661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108147388A TWI716234B (zh) | 2019-12-24 | 2019-12-24 | 靜態耗損平均方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI716234B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9348748B2 (en) * | 2013-12-24 | 2016-05-24 | Macronix International Co., Ltd. | Heal leveling |
TWI536166B (zh) * | 2015-01-27 | 2016-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN109857330B (zh) * | 2017-11-30 | 2022-02-15 | 宜鼎国际股份有限公司 | 数据存取效率的预估方法 |
-
2019
- 2019-12-24 TW TW108147388A patent/TWI716234B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI716234B (zh) | 2021-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI632457B (zh) | 用於資料儲存裝置的損耗平均方法 | |
TWI489373B (zh) | 資料儲存裝置和快閃記憶體之區塊管理方法 | |
US8051241B2 (en) | Wear leveling technique for storage devices | |
TWI505088B (zh) | 基於寫入頻率將資料寫至記憶體不同部份之方法、非暫態電腦可讀媒體與裝置 | |
TWI446345B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
US8407408B2 (en) | Static wear leveling | |
TWI474335B (zh) | 增加記憶體的複數區塊的生命週期的系統、方法及電腦程式產品 | |
US8356152B2 (en) | Initiative wear leveling for non-volatile memory | |
KR100974954B1 (ko) | 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법 | |
CN110347335B (zh) | 一种固态硬盘数据存储方法、装置 | |
TWI466121B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
KR20120007722A (ko) | 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 | |
TWI475564B (zh) | 記憶體之資料寫入方法及資料儲存裝置 | |
TWI797742B (zh) | 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 | |
US9400746B2 (en) | Data storage device and flash memory control method | |
KR20140003805A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
TWI680459B (zh) | 儲存裝置以及資料保存方法 | |
CN107844432B (zh) | 一种固态硬盘动态垃圾回收的方法及固态硬盘 | |
TW201931375A (zh) | 儲存裝置以及資料保存方法 | |
US8527690B2 (en) | Optimization of non-volatile solid-state memory by moving data based on data generation and memory wear | |
TWI716234B (zh) | 靜態耗損平均方法 | |
CN111324284B (zh) | 一种存储器 | |
CN106021124B (zh) | 一种数据的存储方法及存储系统 | |
WO2021082107A1 (zh) | 一种提高耗损平均技术效率的方法 | |
KR20230026938A (ko) | 수명 자각 지속 스토리지 |