TWI594244B - 資料儲存裝置以及快閃記憶體控制方法 - Google Patents
資料儲存裝置以及快閃記憶體控制方法 Download PDFInfo
- Publication number
- TWI594244B TWI594244B TW105102819A TW105102819A TWI594244B TW I594244 B TWI594244 B TW I594244B TW 105102819 A TW105102819 A TW 105102819A TW 105102819 A TW105102819 A TW 105102819A TW I594244 B TWI594244 B TW I594244B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- space
- flash memory
- idle queue
- cleaning
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
本發明係有關於資料儲存裝置,特別有關於快閃記憶體(flash memory)之平均抹寫(wear leveling)。
現今資料儲存裝置常以快閃記憶體(flash memory)為儲存媒體。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。另外有一種應用是採多晶片封裝、將NAND flash晶片與控制晶片包成一顆晶片-稱為嵌入式快閃記憶體模組(eMMC)。
快閃記憶體的實體空間通常包括複數個區塊(blocks)。一區塊需要完整抹除(erase)後方能被重新配置。然而,一區塊的可抹除次數有限,抹除過多次的區塊會損壞。為了延長快閃記憶體的壽命,平均抹寫(wear leveling)為本技術領域一項重要課題,目的是使不同區塊之抹除次數差異不過大。
本發明揭露一種資料儲存裝置以及一種快閃記憶體控制方法。
根據本發明一種實施方式所實現的一資料儲存裝
置包括一控制器以及一快閃記憶體。該快閃記憶體之實體空間包括複數個區塊。該控制器係用於管理該等區塊,使該等區塊部分推入閒置佇列以待配置作系統區塊或作資料區塊。該控制器更於該閒置佇列內的區塊數量低於一清潔需求界限、且該閒置佇列存在抹除計數高於一過熱低標的區塊時,進行一考量抹寫平均之空間清潔。該控制器作該考量抹寫平均之空間清潔時係根據該閒置佇列內區塊之抹除計數自該閒置佇列選出一資料收集區塊,作該考量抹寫平均之空間清潔的有效資料收集。
根據本發明一種實施方式所實現的一快閃記憶體控制方法包括以下步驟:管理一快閃記憶體的複數個區塊,使該等區塊部分推入閒置佇列以待配置作系統區塊或作資料區塊;並且,於該閒置佇列內的區塊數量低於一清潔需求界限、且該閒置佇列存在抹除計數高於一過熱低標的區塊時,進行一考量抹寫平均之空間清潔。該考量抹寫平均之空間清潔係根據該閒置佇列內區塊之抹除計數自該閒置佇列選出一資料收集區塊,作該考量抹寫平均之空間清潔的有效資料收集。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
102‧‧‧資料儲存裝置
104‧‧‧快閃記憶體
106‧‧‧控制器
108‧‧‧閒置佇列
110‧‧‧系統區塊
112‧‧‧資料區塊
114‧‧‧凍結佇列
116‧‧‧自由區塊
118‧‧‧隨機存取記憶體
120‧‧‧閒置佇列管理資訊
122‧‧‧凍結佇列管理資訊
124‧‧‧主機
BLK‧‧‧區塊
Free_Blk_Erase_Cnt‧‧‧自由區塊抹除計數
Power_Cycle_Flag‧‧‧反覆斷電/上電操作標誌
Spare_Blk_Cnt‧‧‧閒置區塊數量
Spare_Blk_Erase_Cnt‧‧‧閒置區塊抹除計數
S202-S216‧‧‧步驟
第1圖以方塊圖圖解根據本發明一種實施方式所實現的一資料儲存裝置;且第2圖為流程圖,描述根據本發明一種實施方式所實現的一快閃記憶體控制方法。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
第1圖以方塊圖圖解根據本發明一種實施方式所實現的一資料儲存裝置102。資料儲存裝置102包括一快閃記憶體(flash memory)104以及一控制器106。快閃記憶體104之實體空間包括複數個區塊(blocks,皆以BLK標號)。控制器106係用於管理該等區塊BLK。在該控制器106操作下,該等區塊部分推入一閒置佇列(spare queue)108,以待配置作系統區塊(system blocks)110儲存系統資訊、或待配置作資料區塊(data blocks)112作資料儲存(data storage)。此外,該控制器106更包括使該等區塊中抹除計數(erase count)高於一過熱高標(以下標示為OverUsed_H)者推入一凍結佇列(jail queue)114凍結不用。該控制器106將特別監控該閒置佇列108內的區塊數量以及該閒置佇列108各區塊的抹除計數。當該閒置佇列108內的區塊數量低於一清潔需求界限(以下標示為Clean_TH)、且該閒置佇列108存在抹除計數高於一過熱低標(以下標示為OverUsed_L)的區塊時,即代表閒置佇列108內的區塊數量不足、且閒置佇列108內存有已被頻繁使用之區塊。此時,控制器106將進行一考量抹寫平均之空間清潔。在一種實施方式中,控制器106可更根據該凍結佇列114內的區塊數量(例如,是否到達一設定值)或/以及使用者的操作狀況(例如,是否有重新上電之反覆操作)決定是否於清潔該快閃記憶體104之空間時(即作空間釋出,又
稱Garbage Collection)更考量區塊之抹除計數,使該快閃記憶體104之抹寫平均。
根據所揭露技術,閒置佇列108之區塊數極為不足、急迫需要作空間清理的狀況也會考量抹寫平均問題。
在該閒置佇列108內的區塊數量低於該清潔需求界限Clean_TH、且該閒置佇列108有區塊之抹除計數高於該過熱低標OverUsed_L的狀況下,一種實施方式係令該控制器106於該凍結佇列114滿載、或/且使用者以反覆斷電/上電方式(英文稱此操作為Power Cycle)操作該快閃記憶體104時,使該快閃記憶體104之空間清潔(Garbage Collection)考量區塊之抹除計數。
詳細討論之,滿載之凍結佇列114代表凍結佇列114外儲存的資料相對而言為冷資料。由於冷資料區塊之無效頁數少,空間不易被釋出,因此,抹除計數低之區塊不太有機會被釋出再利用。至於以上所述之Power Cycle操作,常見於智慧型手機操作上。在智慧型手機應用中,快閃記憶體104可能已鋪寫大量資料,多數之區塊已配置為資料區塊112,僅餘少量的區塊得以應用。由於智慧型手機使用者常有隨意瀏覽網頁即關閉螢幕休眠之類的反覆操作,有限的可應用區塊會反覆抹寫來應付網頁瀏覽、與斷電/上電系統資訊紀錄…等需求(即對應Power Cycle操作)。如此一來,該些區塊之抹除計數會暴衝。整理之,上述「凍結佇列114滿載」或/以及「使用者反覆斷電/上電方式操作」相當不利於整體快閃記憶體104的抹寫平均。然而,依照本案所揭露之技術,抹寫平均需求不會因為快閃記
憶體104迫切的空間清潔需求(即,閒置佇列108內的區塊數量低於該清潔需求界限Clean_TH)而被忽視。根據本案技術,當抹寫平均以及空間清潔需求同時發生時,控制器106對快閃記憶體104之空間清潔係考量有區塊之抹除計數,即在作空間清潔時一併作抹寫平均。快閃記憶體104之壽命因而顯著延長。
在一種實施方式,控制器106於考量區塊之抹除計數作該快閃記憶體104之空間清潔時,係令該閒置佇列108中抹除計數最高之區塊作資料收集區塊。如此一來,過常使用之區塊可被配置來儲存冷資料,不再遭頻繁抹寫。在其他實施方式中,資料收集區塊可為該閒置佇列108中抹除計數次高之區塊。
在一種實施方式,控制器106於考量區塊之抹除計數作該快閃記憶體104之空間清潔時,係對上述資料區塊中抹除計數較低(例如,可為最低、或是包括最低與次低、或是自最低與次低中擇一…等)、或更同時無效頁數量較多之資料區塊作清潔。如此一來,不常使用的區塊可被釋出再利用。
在一種實施方式,控制器106面臨需配置新區塊之寫入需求時所配置的區塊(不同於空間清潔的資料收集區塊配置)係該閒置佇列108中抹除計數最低之區塊。如此一來,不常使用的區塊有機會被使用。事實上,所選擇的寫入區塊可為該閒置佇列108中抹除計數較低之區塊(例如,可為最低、或是包括最低與次低、或是自最低與次低中擇一…等)。
更有一種實施方式係令該控制器106於考量區塊之抹除計數作該快閃記憶體104之空間清潔後,更重整該閒置佇列108,使空白區塊(包括是原閒置佇列108中的區塊與該些
自由區塊116)中具有較低抹除計數者佇列於該閒置佇列108中。該閒置佇列108重整後,控制器106面臨需配置新區塊之寫入需求時所配置的區塊係該閒置佇列108中抹除計數較低(甚至最低)之區塊。相較於未作閒置佇列108重整之技術,所述閒置佇列108重整方式將使得自由區塊116中抹除計數低的區塊也有被使用的機會。
另外有一種實施方式是在檢查凍結佇列114與使用者狀況時更檢查閒置佇列108之區塊數量是否小於該清潔需求界限Clean_TH至少一預設量、且大於一報廢標準。若閒置佇列108之區塊數量小於該清潔需求界限Clean_TH至少一預設量、且大於一報廢標準,方允許在作空間清潔時考量區塊抹除計數。
以第1圖所示之實施方式為例,資料儲存裝置102更設置一隨機存取記憶體118,動態紀錄一閒置佇列管理資訊120(紀錄了該閒置佇列108內的區塊數量Spare_Blk_Cnt,且更紀錄了閒置區塊抹除計數Spare_Blk_Erase_Cnt以反應閒置佇列108是否存在抹除計數高於該過熱低標OverUsed_L的熱區塊)、一凍結佇列管理資訊122(如,標示該凍結佇列114滿載與否)、一反覆斷電/上電標誌Power_Cycle_Flag、以及一自由區塊抹除計數Free_Blk_Erase_Cnt。控制器106可基於隨機存取記憶體118所動態紀錄的內容120、或甚至122、Power_Cycle_Flag決定是否以考量抹除計數的方式對快閃記憶體104作空間清潔。此外,控制器106可基於閒置區塊抹除計數Spare_Blk_Erase_Cnt以及自由區塊抹除計數
Free_Blk_Erase_Cnt的內容重整該閒置佇列108,使其中佇列有較低抹除計數之空白區塊。
此外,如第1圖所示,資料儲存裝置102可連結一主機124由該主機124控制。本案所揭露之資料儲存裝置可實現為記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。另外有一種實施方式是採多晶片封裝、將NAND flash晶片與控制晶片包成一顆晶片-稱為嵌入式快閃記憶體模組(eMMC),可安裝於行動裝置如智慧型手機上,作其儲存媒體。
第2圖為流程圖,描述根據本發明一種實施方式所實現的一快閃記憶體控制方法,可由控制器106實行,以下搭配第1圖編號說明之。
步驟S202與步驟S204係對閒置佇列108作監控。當閒置佇列108的區塊數量Spare_Blk_Cnt低於一清潔需求界限Clean_TH、但閒置佇列108尚未有區塊之抹除計數高於一過熱低標OverUsed_L時,對該快閃記憶體104作一般空間清潔(步驟S206)。所謂一般空間清潔可不考量區塊的抹除計數,單純是將無效頁多的多個區塊之資料集中至一閒置區塊,以釋放多個區塊的空間。倘若閒置佇列108的區塊數量Spare_Blk_Cnt低於該清潔需求界限Clean_TH、且閒置佇列108有區塊之抹除計數高於該過熱低標OverUsed_L,則對該快閃記憶體更進行步驟S208之判斷,辨別凍結佇列114是否滿載、且/或辨識所述之反覆斷電/上電標誌Power_Cycle_Flag是否為真;或者,另有實施方式在步驟S208更判斷閒置佇列108之區塊數量
Spare_Blk_Cnt是否小於該清潔需求界限Clean_TH至少一預設量、且大於一報廢標準。若步驟S208判斷為真,則進行步驟S210,於清潔該快閃記憶體108之空間時考量區塊之抹除計數,使該快閃記憶體104之抹寫平均。
步驟S212係設計於步驟S210之後,用於重整閒置佇列108,使空白區塊中具有較低抹除計數者佇列於該閒置佇列108中。步驟S214將監控是否有需配置新區塊之寫入需求發生(不同於空間清潔的資料收集區塊配置)。若有配置新區塊作寫入的需求,則進行步驟S216,將閒置佇列108中抹除計數較低(甚至最低)之區塊配置來寫入資料。步驟S216之區塊配置後,流程可回到步驟S202、S204繼續對閒置佇列108作監控。所述閒置佇列108重整步驟S212也可更設計在步驟S206之一般空間清潔之後。或者,部分實施方式是略去該步驟S212。
上述實施方式所述之控制器106可包括運算單元與唯讀處理器(ROM)。以上所揭露的各技術步驟可佐以程式化方式呈韌體實現;相關程式碼係載於唯讀記憶體中,由運算單元執行之。此外,其他採用同樣概念控制一快閃記憶體的技術都屬於本案所欲保護的範圍。本案更涉及快閃記憶體的控制方法,不限定以特定架構的控制器實現。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
102‧‧‧資料儲存裝置
104‧‧‧快閃記憶體
106‧‧‧控制器
108‧‧‧閒置佇列
110‧‧‧系統區塊
112‧‧‧資料區塊
114‧‧‧凍結佇列
116‧‧‧自由區塊
118‧‧‧隨機存取記憶體
120‧‧‧閒置佇列管理資訊
122‧‧‧凍結佇列管理資訊
124‧‧‧主機
BLK‧‧‧區塊
Free_Blk_Erase_Cnt‧‧‧自由區塊抹除計數
Power_Cycle_Flag‧‧‧反覆斷電/上電操作標誌
Spare_Blk_Cnt‧‧‧閒置區塊數量
Spare_Blk_Erase_Cnt‧‧‧閒置區塊抹除計數
Claims (16)
- 一種資料儲存裝置,包括:一快閃記憶體,其實體空間包括複數個區塊;以及一控制器,管理該快閃記憶體的該等區塊,該控制器包括將該等區塊部分推入一閒置佇列待配置使用,且該控制器又包含使抹除計數高於一過熱高標的區塊凍結不用,以建立一凍結佇列;其中,該控制器更於該閒置佇列內的區塊數量低於一清潔需求界限,且該閒置佇列存在抹除計數高於一過熱低標的區塊,且該凍結佇列內之區塊個數到達一設定值時,進行一考量抹寫平均之空間清潔;其中,該控制器作該考量抹寫平均之空間清潔時,係根據該閒置佇列內區塊之抹除計數自該閒置佇列選出一資料收集區塊,作該考量抹寫平均之空間清潔的有效資料收集。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制器係於該快閃記憶體重新上電時,進行該考量抹寫平均之空間清潔。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制器作該考量抹寫平均之空間清潔時係以閒置佇列內抹除計數最高之區塊作該資料收集區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制器作該考量抹寫平均之空間清潔時係以閒置佇列內抹除計數次高之區塊作該資料收集區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 該控制器作該考量抹寫平均之空間清潔時係清潔抹除計數較低的資料區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制器作該考量抹寫平均之空間清潔時係清潔抹除計數較低且無效頁數量較多的資料區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該考量抹寫平均之空間清潔後,該控制器以該閒置佇列中抹除計數最低之區塊作為寫入區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該考量抹寫平均之空間清潔後,該控制器以該閒置佇列中抹除計數較低之區塊作為寫入區塊。
- 一種快閃記憶體控制方法,包括:建立一閒置佇列,使該閒置佇列內的區塊待配置使用;使抹除計數高於一過熱高標的區塊凍結不用;並且當該閒置佇列內的區塊數量低於一清潔需求界限,且該閒置佇列存在抹除計數高於一過熱低標的區塊,且該凍結佇列內之區塊個數到達一設定值時,進行一考量抹寫平均之空間清潔;其中,該考量抹寫平均之空間清潔係根據該閒置佇列內區塊之抹除計數自該閒置佇列選出一資料收集區塊,作該考量抹寫平均之空間清潔的有效資料收集。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,其中:係於該快閃記憶體重新上電時,進行該考量抹寫平均之空間清潔。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,其中:該考量抹寫平均之空間清潔係以閒置佇列內抹除計數最高之區塊作該資料收集區塊。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,其中:該考量抹寫平均之空間清潔係以閒置佇列內抹除計數次高之區塊作該資料收集區塊。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,其中:該考量抹寫平均之空間清潔,係清潔抹除計數較低的資料區塊。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,其中:該考量抹寫平均之空間清潔,係清潔一抹除計數較低且無效頁數量較多的資料區塊。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,其中:該抹寫平均之空間清潔後,係以該閒置佇列中抹除計數最低之區塊作為寫入區塊。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,其中:該抹寫平均之空間清潔後,係以該閒置佇列中抹除計數較低之區塊作為寫入區塊。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105102819A TWI594244B (zh) | 2013-08-30 | 2013-08-30 | 資料儲存裝置以及快閃記憶體控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105102819A TWI594244B (zh) | 2013-08-30 | 2013-08-30 | 資料儲存裝置以及快閃記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201619967A TW201619967A (zh) | 2016-06-01 |
TWI594244B true TWI594244B (zh) | 2017-08-01 |
Family
ID=56755049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105102819A TWI594244B (zh) | 2013-08-30 | 2013-08-30 | 資料儲存裝置以及快閃記憶體控制方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI594244B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10452532B2 (en) | 2017-01-12 | 2019-10-22 | Micron Technology, Inc. | Directed sanitization of memory |
TWI667571B (zh) * | 2018-06-13 | 2019-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置、系統資訊編程方法及系統資訊重建方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100017650A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
WO2012100257A2 (en) * | 2011-01-21 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
US20120198174A1 (en) * | 2011-01-31 | 2012-08-02 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
TWI386799B (zh) * | 2008-05-15 | 2013-02-21 | Silicon Motion Inc | 記憶體模組及於記憶體模組中實現平均磨損(wear-leveling)的方法 |
US8432993B2 (en) * | 2007-12-27 | 2013-04-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Using spatial properties of MIMO channels for enhanced channel estimation in MIMO systems |
-
2013
- 2013-08-30 TW TW105102819A patent/TWI594244B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8432993B2 (en) * | 2007-12-27 | 2013-04-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Using spatial properties of MIMO channels for enhanced channel estimation in MIMO systems |
TWI386799B (zh) * | 2008-05-15 | 2013-02-21 | Silicon Motion Inc | 記憶體模組及於記憶體模組中實現平均磨損(wear-leveling)的方法 |
US20100017650A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
WO2012100257A2 (en) * | 2011-01-21 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
US20120198174A1 (en) * | 2011-01-31 | 2012-08-02 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
Also Published As
Publication number | Publication date |
---|---|
TW201619967A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI529719B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
TWI597605B (zh) | 用於資料儲存裝置的損耗平均方法 | |
TWI515736B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
CN102648457B (zh) | 使用混合存储来延伸ssd生存期 | |
US9582199B2 (en) | Method and an apparatus for analyzing data to facilitate data allocation in a storage device | |
US8719660B2 (en) | Apparatus and methods for indicating the health of removable storage devices | |
TWI416528B (zh) | 非揮發性記憶體操作方法及使用該方法之資料儲存系統 | |
US8266334B2 (en) | Data writing method for non-volatile memory, and controller and storage system using the same | |
US20070168606A1 (en) | Storage device using nonvolatile cache memory and control method thereof | |
US20070168607A1 (en) | Storage device using nonvolatile cache memory and control method thereof | |
TWI436369B (zh) | 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統 | |
CN101174473A (zh) | 在包括闪存的半导体存储装置中提供块状态信息的方法 | |
JP2011070346A (ja) | メモリシステム | |
TW200947211A (en) | Memory system | |
TW201248640A (en) | Error estimation module and estimation method thereof for flash memory | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
CN104516471A (zh) | 一种管理存储器***的电源的方法和装置 | |
US20140359198A1 (en) | Notification of storage device performance to host | |
US8161251B2 (en) | Heterogeneous storage array optimization through eviction | |
TWI601059B (zh) | 資料儲存裝置與資料儲存方法 | |
JP2007193449A (ja) | 情報記録装置及びその制御方法 | |
CN103839578A (zh) | 一种提高基于nand的固态存储器数据保持时间的方法 | |
CN105867834A (zh) | 存储装置数据整理方法 | |
JP2007193865A (ja) | 情報記録装置及びその制御方法 | |
TWI714975B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 |