TWI680460B - 儲存裝置以及資料保存方法 - Google Patents
儲存裝置以及資料保存方法 Download PDFInfo
- Publication number
- TWI680460B TWI680460B TW107145217A TW107145217A TWI680460B TW I680460 B TWI680460 B TW I680460B TW 107145217 A TW107145217 A TW 107145217A TW 107145217 A TW107145217 A TW 107145217A TW I680460 B TWI680460 B TW I680460B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- minimum
- blocks
- data
- erasure
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種儲存裝置,包括:快閃式記憶體陣列以及控制器。快閃式記憶體陣列包括複數區塊,複數區塊中的最小抹除數量之區塊的抹除次數係為最小抹除次數。最小抹除次數係為複數區塊之抹除次數的最小值。當最小抹除數量之區塊之一者的資料被抹除時,控制器將最小抹除數量減1。
Description
本發明係有關於一種快閃式記憶體及其資料保存方法,特別係有關於一種應用於快閃式記憶體之靜態耗損均衡(static wear-leveling)方法,進而提高快閃式記憶體之使用壽命。
隨著製程尺寸下降及多電壓位準存儲技術的發展,快閃式記憶體之物理區塊的抹除次數(Erase Count,EC)之理論值上限不斷下降,而且由於使用者資料有冷熱屬性(即,頻繁存取之資料稱之為熱資料,不常存取之資料稱之為冷資料),所以導致每個物理區塊的抹除次數有所差別。由於存放熱資料的區塊會因頻繁抹除與寫入使得抹除次數很快達到上限而壞掉,而存放冷資料的區塊容量得不到充分利用,為了充分利用有限的快閃式記憶體壽命,因而提出了靜態耗損均衡(Static wear-leveling)演算法。
由於靜態耗損均衡演算法是軟體內部的控制操作,會對主機的性能產生影響,所以不好的選擇策略會導致內
部的資料搬移沒有意義。例如,將一部分特別熱的資料搬移到一個抹除次數很大的物理區塊上,如此將無法達成防止該區塊之抹除次數繼續增長的目的;或者,累計使用過程中產生之抹除次數比較小的物理區塊總是很難被抹除與寫入,導致該區塊之抹除次數顯著的小於平均抹除次數,也使得該區塊的利用率降低。
因此,我們有必要針對靜態損耗均衡演算法進行優化,以利在合適的時機選擇最合適的物理區塊來資料進行搬移,進而降低成本並有效的控制物理區塊之抹除次數。
有鑑於此,本發明提出一種儲存裝置,包括:一快閃式記憶體陣列以及一控制器。上述快閃式記憶體陣列包括複數區塊,上述複數區塊中的一最小抹除數量之區塊的抹除次數係為一最小抹除次數,其中上述最小抹除次數係為上述複數區塊之抹除次數的最小值。當上述最小抹除數量之上述區塊之一者的資料被抹除時,上述控制器將上述最小抹除數量減1。
本發明更提出一種資料保存方法,適用於一快閃式記憶體陣列,其中上述快閃式記憶體陣列包括複數區塊上述複數區塊中一最小抹除數量之區塊係為一最小抹除次數,其中上述最小抹除次數係為上述複數區塊之抹除次數的最小值,包括:抹除上述最小抹除數量之上述區塊之一者的資料;以及當上述最小抹除數量之區塊之一者的資料被抹除時,將上述最小抹除數量減1。
本實施例的技術方案能夠避免控制器頻繁掃描快閃式記憶體陣列之操作,進而減少主機掃描快閃式記憶體陣列之硬件開銷。此外,由於最小抹除次數以及最小抹除數量儲存至快閃式記憶體陣列,當突然失去電源時最小抹除次數以及最小抹除數量依然得以保存。
100‧‧‧儲存裝置
110‧‧‧快閃式記憶體陣列
120‧‧‧控制器
200‧‧‧資料保存方法
310‧‧‧第一區塊
320‧‧‧第二區塊
410‧‧‧第三區塊
420‧‧‧第四區塊
510‧‧‧第五區塊
520‧‧‧第六區塊
611‧‧‧第一源區塊
612‧‧‧第二源區塊
613‧‧‧第三源區塊
620‧‧‧目標區塊
ECave‧‧‧平均抹除次數
ECmin‧‧‧最小抹除次數
CEmax‧‧‧最大抹除次數
SNmin‧‧‧最小寫入序號
SN1‧‧‧第一寫入序號
SN2‧‧‧第二寫入序號
SN3‧‧‧第三寫入序號
SND‧‧‧目標寫入序號
TH‧‧‧目標臨限值
THC‧‧‧冷資料臨限值
ECmin+1‧‧‧第二最小抹除次數
S210~S280‧‧‧步驟流程
第1圖係顯示根據本發明之一實施例所述之儲存裝置之方塊圖;第2A、2B圖係顯示根據本發明之一實施例所述之資料保存方法之流程圖;第3圖係顯示根據本發明之一實施例所述之快閃式記憶體陣列之抹除次數之分佈圖;第4圖係顯示根據本發明之一實施例所述之快閃式記憶體陣列之抹除次數之分佈圖;第5圖係顯示根據本發明之另一實施例所述之快閃式記憶體陣列之抹除次數之分佈圖;以及第6圖係顯示根據本發明之一實施例所述之均衡磨損程序之資料搬移之示意圖。
以下說明為本發明的實施例。其目的是要舉例說明本發明一般性的原則,不應視為本發明之限制,本發明之範
圍當以申請專利範圍所界定者為準。
值得注意的是,以下所揭露的內容可提供多個用以實踐本發明之不同特點的實施例或範例。以下所述之特殊的元件範例與安排僅用以簡單扼要地闡述本發明之精神,並非用以限定本發明之範圍。此外,以下說明書可能在多個範例中重複使用相同的元件符號或文字。然而,重複使用的目的僅為了提供簡化並清楚的說明,並非用以限定多個以下所討論之實施例以及/或配置之間的關係。此外,以下說明書所述之一個特徵連接至、耦接至以及/或形成於另一特徵之上等的描述,實際可包含多個不同的實施例,包括該等特徵直接接觸,或者包含其它額外的特徵形成於該等特徵之間等等,使得該等特徵並非直接接觸。
第1圖係顯示根據本發明之一實施例所述之儲存裝置之方塊圖。如第1圖所示,儲存裝置100包括快閃式記憶體陣列110以及控制器120,其中快閃式記憶體陣列110包括複數區塊。根據本發明之一實施例,快閃式記憶體陣列110係為非及快閃式記憶體(NAND flash)。根據本發明之另一實施例,快閃式記憶體陣列110係為非或快閃式記憶體(NOR flash)。控制器120控制快閃式記憶體陣列110,用以進行各種操作。
第2圖係顯示根據本發明之一實施例所述之資料保存方法之流程圖。根據本發明之一實施例,控制器120用以對快閃式記憶體陣列110執行資料保存方法200,以下將結合第1圖以及第2圖,以利詳細說明。
首先,控制器120對快閃式記憶體陣列110之一抹
除區塊進行抹除操作(步驟S210)。根據本發明之一實施例,當控制器120完成抹除儲存於抹除區塊之資料時,控制器120將快閃式記憶體陣列110之總抹除次數加1,並且利用總抹除次數以及快閃式記憶體陣列110之區塊的數量,計算快閃式記憶體陣列110之平均抹除次數ECave。
當控制器120完成抹除操作時,控制器120維護快閃式記憶體陣列110之最小抹除次數ECmin以及最小抹除數量EC_NUM(步驟S220),其中快閃式記憶體陣列110的區塊中抹除次數為最小抹除次數ECmin之區塊的數量定義為最小抹除數量EC_NUM。
根據本發明之一實施例,每當前述抹除區塊為一個具有最小抹除次數ECmin之區塊時,控制器120將最小抹除數量EC_NUM減1。當最小抹除數量EC_NUM為0時,控制器120將最小抹除次數ECmin加1,並重新掃描快閃式記憶體陣列110之每一區塊之抹除次數,並根據快閃式記憶體陣列110之所有區塊之抹除次數,重新決定上述最小抹除數量EC_NUM。在一實施例中,前述掃描操作係確定抹除次數為新的ECmin的區塊的數量,以作為新的最小抹除數量EC_NUM;在另一實施例中,前述掃描操作係比較所有區塊的抹除次數以確定此時新的最小抹除次數ECmin,并確定抹除次數為該新的ECmin的區塊數量作為最小抹除數量EC_NUM。
在一實施例中,儲存裝置100出廠時,其最小抹除次數ECmin被設定為0,最小抹除數量EC_NUM的初始值被設定為快閃式記憶體陣列110中的區塊總數。一旦有區塊被抹除
時,控制器120將最小抹除數量EC_NUM減1,直至所有的區塊都至少被抹除一遍時,最小抹除數量EC_NUM減至0,此時將最小抹除次數ECmin加1(而為1),再掃描快閃式記憶體陣列110之每一區塊之抹除次數,確定抹除次數為新的ECmin(此時為1)的區塊數量作為最小抹除數量EC_NUM。每當一個具有該最小抹除次數ECmin(此時為1)的區塊再次被抹除時,控制器120將最小抹除數量EC_NUM減1。當前次掃描所得的最小抹除數量EC_NUM再次減為0時,控制器120將最小抹除次數ECmin加1(而為2),並重新掃描快閃式記憶體陣列110之每一區塊之抹除次數,確定抹除次數為新的ECmin(此時為2)的區塊數量作為上述最小抹除數量EC_NUM。後面的流程依次類推,直至ECmin達到快閃式記憶體陣列110之允許的最大可被抹除次數。
此外,在前述更新操作后,控制器120更將最小抹除次數ECmin以及最小抹除數量EC_NUM儲存至快閃式記憶體陣列110。存儲至快閃式記憶體陣列110的最小抹除次數ECmin以及最小抹除數量EC_NUM在掉電時不丟失,每當需要使用最小抹除次數ECmin時,從快閃式記憶體陣列110特定的位址直接讀取即可。
換句話說,假設快閃式記憶體陣列110之區塊的最大可被抹除次數係為既定值,亦即,快閃式記憶體陣列110之區塊之抹除次數達到既定值時則不可再被寫入資料,因此控制器120執行前述掃描操作以決定上述最小抹除數量EC_NUM的操作次數係為該既定值。該既定值並不大,例如當快閃式記憶體陣列110採用區塊壽命較短的TLC(Trinary-Level Cell)技術
時,其區塊的最大可被抹除次數例如係300,則在該快閃式記憶體陣列110的整個使用壽命期間,僅需執行300次前述掃描操作。因此,較之每當有使用最小抹除次數ECmin的需求就需要重新執行全盤掃描,並且執行全盤比較操作才能得出ECmin的技術方案,本實施例的技術方案能夠避免控制器120頻繁掃描快閃式記憶體陣列110之操作,進而減少主機掃描快閃式記憶體陣列110之硬件開銷。此外,由於最小抹除次數ECmin以及最小抹除數量EC_NUM儲存至快閃式記憶體陣列110,當突然失去電源時最小抹除次數ECmin以及最小抹除數量EC_NUM依然得以保存。
接著,控制器120判斷前述抹除區塊之抹除次數與最小抹除次數EC_min之差是否超過目標臨限值TH(步驟S230)。當抹除區塊之抹除次數與最小抹除次數EC_min之差超過目標臨限值TH時,則選擇該抹除區塊作為一均衡磨損程序之資料搬移之目標區塊(步驟S240)。另一方面,當控制器120在步驟S230判斷抹除區塊之抹除次數與最小抹除次數EC_min之差不超過目標臨限值TH時,控制器120結束資料保存方法200,即不對該抹除區塊進行前述均衡磨損程序之資料搬移。
第3圖係顯示根據本發明之一實施例所述之快閃式記憶體陣列之抹除次數之分佈圖。如第3圖之實施例所示,快閃式記憶體陣列110中,具有最小抹除次數ECmin之區塊係為1個,具有最大抹除次數ECmax之區塊亦為1個,其中填滿斜線之方塊代表寫滿資料的區塊,白色方塊代表閒置的區塊。值得注意的是,第3圖僅為舉例,本發明並不局限於此,例如具有
最小抹除次數ECmin之區塊與具有最大抹除次數ECmax之區塊均可為多個。
根據本發明之一實施例,當資料保存方法200之步驟230之抹除區塊係為第一區塊310時,由於第一區塊310之抹除次數係為最大抹除次數ECmax,因此第一區塊310之抹除次數與最小抹除次數ECmin之差超過目標臨限值TH,因此控制器120選擇第一區塊310作為均衡磨損程序之資料搬移之目標區塊。根據本發明之另一實施例,當資料保存方法200之步驟230之抹除區塊係為第二區塊320時,由於第二區塊320之抹除次數與最小抹除次數ECmin之差並未超過目標臨限值TH,因此控制器120結束資料保存方法200,即不對該抹除區塊(第二區塊320)進行均衡磨損程序之資料搬移。
回到步驟S240,當控制器120選擇抹除區塊作為均衡磨損程序之資料搬移之目標區塊時,控制器120更判斷快閃式記憶體陣列110之平均抹除次數ECave與最小抹除次數ECmin之差是否超過冷資料臨限值THC(步驟S250)。當判斷平均抹除次數ECave與最小抹除次數ECmin之差超過冷資料臨限值THC時,控制器120選擇具有最小抹除次數ECmin之一區塊作為源區塊(步驟S261)。
第4圖係顯示根據本發明之一實施例所述之快閃式記憶體陣列之抹除次數之分佈圖。如第4圖所示,由於快閃式記憶體陣列110之平均抹除次數ECave與最小抹除次數ECmin之差係超過冷資料臨限值THC,因此控制器120選擇一具有最小抹除次數ECmin之第三區塊410作為源區塊。值得注意的
是,具有最小抹除次數ECmin之區塊與具有最大抹除次數ECmax之區塊均可為多個,並不局限於第4圖所示的數量。
當平均抹除次數ECave與最小抹除次數ECmin之差係超過冷資料臨限值THC時,代表最小抹除次數ECmin之增長速度過慢,控制器120選擇具有最小抹除次數ECmin之區塊作為源區塊,使得具有最小抹除次數ECmin之區塊被磨損的機會增加,進而均衡快閃式記憶體陣列110之每一區塊之抹除次數。
根據本發明之一實施例,控制器120更維護快閃式記憶體陣列110之每一區塊之寫入序號WSN(Writing Serial Number)。寫入序號係WSN記錄一區塊所寫入資料之時間屬性(即新或舊),其當一個區塊被寫滿時賦值,表征各個區塊被寫滿之先後順序,其中最小寫入序號WSNmin係代表快閃式記憶體陣列110中最早被寫滿之區塊,最大寫入序號WSNmax係代表快閃式記憶體陣列110中最晚被寫滿之區塊。值得注意的是,在一實施例中,每一區塊之寫入序號WSN係當一個區塊被寫滿時賦值,當該區塊被抹除時清除,待該區塊下一次被寫滿時再次賦值。
回到第2圖之步驟S261,當選擇了具有最小抹除次數ECmin之區塊作為源區塊之後,控制器120更判斷最大寫入序號WSNmax與源區塊之寫入序號WSNsrc之差是否超過第一臨限值(步驟S271),其中源區塊為步驟S261所選擇之具有最小抹除次數ECmin之區塊。當最大寫入序號WSNmax與源區塊之寫入序號WSNsrc之差超過第一臨限值時,代表源區塊之資料在當前時間點很久之前就被寫滿后就沒有被再次寫入,確係為
冷資料,因此控制器120執行均衡磨損程序之資料搬移(步驟S280)。
回到步驟S271,當最大寫入序號與源區塊之寫入序號之差不超過第一臨限值時,代表源區塊之資料可能為剛寫入而無法判定源區塊之資料係為冷資料。在此情形下,若是執行均衡磨損程序之資料搬移,將源區塊之資料搬運至目標區塊,恐不能減少目標區塊的抹除機會,造成均衡磨損程序無效,因此控制器120此時結束資料保存方法200或返回步驟S261重新選擇其它具有最小抹除次數ECmin之區塊作為源區塊。
現在參考第4圖,根據本發明之一實施例,當控制器120執行均衡磨損程序之資料搬移時,僅將源區塊之有效資料搬移至目標區塊,因此選擇第三區塊410可能不足以填滿目標區塊。根據本發明之一實施例,當第三區塊410之有效資料不足以填滿目標區塊時,控制器120將再選擇具有最小抹除次數ECmin之另一區塊,例如第四區塊420作為源區塊。如果具有最小抹除次數ECmin之所有區塊,例如第三區塊410及第四區塊420之有效資料加起來仍不足以填滿目標區塊,則控制器120進一步選擇第二最小抹除次數ECmin+1之區塊之一者作為源區塊,其中具有第二最小抹除次數ECmin+1之區塊係有四個,控制器120隨機選擇其中的第四區塊430。值得注意的是,源區塊通常是寫滿的區塊,但本發明並不局限於此。
回到資料保存方法200之步驟S250,當判斷平均抹除次數ECave與最小抹除次數ECmin之差不超過冷資料臨限值THC時,控制器120選擇具有最小寫入序號WSNmin之區塊作為
源區塊(步驟S262)。
第5圖係顯示根據本發明之另一實施例所述之快閃式記憶體陣列之抹除次數之分佈圖。如第5圖所示,由於快閃式記憶體陣列110之平均抹除次數ECave與最小抹除次數ECmin之差係不超過冷資料臨限值THC,因此控制器120選擇具有最小寫入序號WSNmin之第五區塊510及/或第六區塊520作為源區塊。值得注意的是,具有最小寫入序號WSNmin之區塊、最小抹除次數ECmin之區塊與最大抹除次數ECmax之區塊均可為多個,並不局限於第5圖所示的數量。
當平均抹除次數ECave與最小抹除次數ECmin之差係不超過冷資料臨限值THC時,代表最大抹除次數ECmax之增長速度過快,控制器120選擇具有最小寫入序號WSNmin之區塊作為源區塊,利用冷資料凍結目標區塊以阻止其抹除次數再上升,進而均衡快閃式記憶體陣列110之每一區塊之抹除次數。值得注意的是,具有最小寫入序號WSNmin之區塊所含的資料應該是較冷的資料,其作為源區塊執行均衡磨損程序之資料搬移,將冷資料搬移至被抹除的目標區塊,才能降低目標區塊後續再被抹除的幾率,如此才能實現磨損均衡的目的,因此為了保證最小寫入序號WSNmin之區塊所含的資料確係較冷的資料,在一實施例中,控制器120於步驟S262所選擇之最小寫入序號WSNmin並非整個快閃式記憶體陣列110最小,而是選擇抹除次數在平均抹除次數ECave以下的寫入序號WSN最小之區塊。
回到第2圖之步驟S262,當選擇了具有最小寫入序
號WSNmin之區塊作為源區塊之後,控制器120更判斷最大寫入序號WSNmax與最小寫入序號WSNmin之差是否超過第二臨限值(步驟S272),在一實施例中,前述第二臨限值例如可設定為將快閃式記憶體陣列110之區塊總數的倍數(例如3~4倍),當最大寫入序號WSNmax與最小寫入序號WSNmin之差超過第二臨限值時,代表最小寫入序號WSNmin之區塊一次被寫滿之後全盤區塊平均再被寫入3~4遍時都未再次寫該區塊,則最小寫入序號WSNmin之區塊上的資料足夠冷,以防止全盤皆熱的情形下,即便是最小寫入序號WSNmin之區塊,其資料仍係熱資料。當然第二臨限值還可以設定為其它經驗值,本發明並不局限於此。當最大寫入序號與最小寫入序號SNmin之差超過第二臨限值時,代表源區塊之資料確實為冷資料,因此控制器120執行均衡磨損程序之資料搬移(步驟S280)。在一實施例中,第二臨限值係大於前述之第一臨限值,步驟S261選擇具有最小抹除次數ECmin之區塊作為源區塊參與均衡磨損的目的是為了提高具有最小抹除次數ECmin之區塊被抹除的機會,其上資料無須非常冷,因此步驟S261之第一臨限值可設定為小於第二臨限值。
回到步驟S272,當最大寫入序號與最小寫入序號WSNmin之差不超過第二臨限值時,則無法確認源區塊之資料是否為冷資料。在此情形下,若是執行均衡磨損程序之資料搬移,將源區塊之資料搬運至目標區塊,恐不能減少目標區塊的抹除機會,造成均衡磨損程序無效,因此控制器120此時結束資料保存方法200或返回步驟S262重新選擇其它具有最小寫入
序號WSNmin之區塊作為源區塊。
當控制器120執行均衡磨損程序之資料搬移(步驟S280)時,控制器120係選取至少一區塊作為源區塊,並將源區塊儲存之有效資料搬移至目標區塊。並且,當將源區塊儲存之有效資料搬移至目標區塊後,控制器120在將源區塊之資料抹除,以供使用。根據本發明之一實施例,控制器120係選擇一區塊作為源區塊,當選擇之區塊的有效資料不足以填滿目標區塊時,控制器120可再根據選擇條件,選擇另一區塊。根據本發明之另一實施例,控制器120可選擇至少二區塊作為源區塊,當選取之二區塊之有效資料不足以填滿目標區塊時,控制器120可再根據選擇條件,選擇另至少二區塊。
現在參考第5圖,根據本發明之一實施例,當控制器120執行均衡磨損程序時,僅將源區塊之有效資料搬移至目標區塊,因此選擇第五區塊510以及第六區塊520之一者可能不足以填滿目標區塊。根據本發明之一實施例,當第五區塊510以及第六區塊520之一者之有效資料不足以填滿目標區塊時,控制器120將再選擇其它具有最小寫入序號WSNmin之區塊作為源區塊。根據本發明之一實施例,若具有最小寫入序號WSNmin之區塊之有效資料已經被搬移至目標區塊,控制器120可進一步選擇具有第二最小寫入序號WSNmin+1之區塊。
根據本發明之另一實施例,當判斷平均抹除次數ECave與最小抹除次數ECmin之差不超過冷資料臨限值THC時,控制器120選擇抹除次數在ECave以下且具有最小寫入序號WSNmin之至少一區塊作為源區塊。以第5圖之實施例為例,控
制器120可選擇具有最小寫入序號SNmin之第五區塊510以及第六區塊520之一者,或同時選擇具有最小寫入序號SNmin之第五區塊510以及第六區塊520。
值得注意的是,當步驟S271及步驟S272判斷為否時,控制器120會對應取消執行資料搬移操作,在需選擇多個源區塊的實施例中,該取消操作可僅用於第一源區塊,後續根據步驟S261及步驟S262選擇的源區塊無須執行步驟S271及步驟S272的判斷步驟。
此外,在當控制器120執行步驟S280之均衡磨損程序之資料搬移之後,目標區塊被搬移過來的資料寫滿,一般會將該目標區塊的寫入序號賦值為當前的最大寫入序號WSNmax,但是由於搬移過來的資料並非來自於主機端而是來自於源區塊,其資料往往係較舊資料,最大寫入序號WSNmax並不能表征其上資料的新舊,因此根據本發明一實施例,當步驟S280之均衡磨損程序之資料搬移執行完畢之後,控制器120將目標區塊之寫入序號更新為源區塊之寫入序號。
第6圖係顯示根據本發明之一實施例所述之均衡磨損程序之資料搬移之示意圖。如第6圖所示,控制器120將第一源區塊611、第二源區塊612以及第三源區塊613之有效資料搬移至目標區塊620,其中第一源區塊611具有第一寫入序號WSN1,第二源區塊622具有第二寫入序號WSN2,第三源區塊613具有第三寫入序號WSN3,目標區塊620具有目標寫入序號WSND。
根據本發明之一實施例,當控制器120僅將第一源
區塊611、第二源區塊612以及第三源區塊613之有效區塊搬移至目標區塊620並填滿目標區塊620之空間之後,控制器120判斷第一寫入序號WSN1、第二寫入序號WSN2以及第三寫入序號WSN3之大小,並選擇第一寫入序號WSN1、第二寫入序號WSN2以及第三寫入序號WSN3之最大者賦值給目標寫入序號SND。
根據本發明之另一實施例,當控制器120僅將第一源區塊611、第二源區塊612以及第三源區塊613之有效區塊搬移至目標區塊620並填滿目標區塊620之後,控制器120判斷第一源區塊611、第二源區塊612以及第三源區塊613之有效資料佔目標區塊620之空間的比例,並選擇有效資料最多的區塊之寫入序號賦值給目標寫入序號SND。
舉例來說,第一源區塊611、第二源區塊612以及第三源區塊613之有效資料佔目標區塊620之比例分別為:45%、30%以及25%。也就是,第一源區塊611之有效資料填滿了目標區塊620之45%的空間,第二源區塊612之有效資料填滿了目標區塊620之30%的空間,第三源區塊613之有效資料填滿了目標區塊620之25%的空間。控制器120判斷第一源區塊611之有效資料佔目標區塊620之空間的比例最高,因此控制器120選擇第一源區塊611對應之第一寫入序號SN1賦值給目標寫入序號SND。
本發明之資料保存方法係根據不同的情況,選擇抹除次數最小或寫入序號最小之區塊作為均衡磨損程序之資料搬移之源區塊。若是選擇抹除次數最小的區塊作為源區塊的話,能夠提高抹除資料次數最小的區塊被使用的機會,使得快
閃式記憶體陣列之整體抹除次數能夠均衡,不會出現抹除次數過小的區塊。若是選擇寫入序號最小的區塊,代表將最早被寫入之資料(亦即,冷資料)搬移至頻繁被抹除與寫入之區塊,使得該目標區塊的抹除次數得以凍結,避免快閃式記憶體陣列之最大抹除次數增加的過快,進而均衡整體的抹除次數。本發明之資料保存方法係根據所有的區塊的當前抹除狀態合理地照顧到分離的冷資料和冷塊(即抹除次數較小的塊),使得源區塊的選擇更有針對性。
本發明之資料保存方法更具有取消機制,用以確保不會針對熱資料(即,需要頻繁寫入之資料)進行搬移,而產生無效的寫入並造成抹除次數的增加以及系統資源的損耗。因此,本發明之資料保存方法能夠更有效的均衡快閃式記憶體陣列之抹除次數,進而提昇快閃是抹除記憶體之使用壽命。
以上所述為實施例的概述特徵。所屬技術領域中具有通常知識者應可以輕而易舉地利用本發明為基礎設計或調整以實行相同的目的和/或達成此處介紹的實施例的相同優點。所屬技術領域中具有通常知識者也應了解相同的配置不應背離本創作的精神與範圍,在不背離本創作的精神與範圍下他們可做出各種改變、取代和交替。說明性的方法僅表示示範性的步驟,但這些步驟並不一定要以所表示的順序執行。可另外加入、取代、改變順序和/或消除步驟以視情況而作調整,並與所揭露的實施例精神和範圍一致。
Claims (20)
- 一種儲存裝置,包括:一快閃式記憶體陣列,包括複數區塊,其中上述複數區塊中的一最小抹除數量之區塊的抹除次數相等且係為一最小抹除次數,其中上述最小抹除次數係為上述複數區塊之抹除次數的最小值;以及一控制器,其中當上述最小抹除數量之區塊之一者的資料被抹除時,上述控制器將上述最小抹除數量減1。
- 如申請專利範圍第1項所述之儲存裝置,其中當上述最小抹除數量為0時,上述控制器將上述最小抹除次數加1,並重新掃描上述快閃式記憶體陣列之每一上述複數區塊之抹除次數,並根據上述複數區塊之抹除次數,重新決定上述最小抹除數量。
- 如申請專利範圍第1項所述之儲存裝置,其中初始時,上述最小抹除次數設定為0,上述最小抹除數量設定為上述複數區塊的總數。
- 如申請專利範圍第1項所述之儲存裝置,其中當上述控制器更新上述最小抹除次數及/或上述最小抹除數量時,上述控制器將上述最小抹除次數以及上述最小抹除數量儲存至上述快閃式記憶體陣列。
- 如申請專利範圍第1項所述之儲存裝置,當上述控制器判斷上述複數區塊之一平均抹除次數與上述最小抹除次數之差超過一冷資料臨限值時,選擇具有上述最小抹除次數之一第一區塊作為一源區塊,其中當執行一均衡磨損程序之資料搬移時,上述控制器將上述源區塊之資料搬移至一目標區塊。
- 如申請專利範圍第5項所述之儲存裝置,其中當上述控制器抹除上述複數區塊中之一第二區塊之資料後,如果上述控制器判斷到上述第二區塊之一目前抹除次數與上述最小抹除次數之差超過一目標臨限值時,上述控制器選擇上述第二區塊為上述目標區塊。
- 如申請專利範圍第5項所述之儲存裝置,其中上述第一區塊具有一第一寫入序號,上述複數區塊中之一第三區塊具有一最大寫入序號,上述第一寫入序號以及上述最大寫入序號分別代表上述第一區塊以及上述第三區塊被寫滿之順序,上述第三區塊係為上述複數區塊中最晚被寫滿之區塊,其中上述控制器更判斷上述最大寫入序號與上述第一寫入序號之差是否超過一第一臨限值,其中當上述最大寫入序號與上述第一寫入序號之差不超過上述第一臨限值時,上述控制器不執行上述均衡磨損程序之資料搬移。
- 如申請專利範圍第5項所述之儲存裝置,其中當上述平均抹除次數與上述最小抹除次數之差不超過上述冷資料臨限值時,上述控制器選擇一第四區塊作為上述源區塊,其中上述第四區塊具有一最小寫入序號。
- 如申請專利範圍第8項所述之儲存裝置,其中上述第四區塊係上述複數區塊中抹除次數小於上述平均抹除次數的區塊之中最早被寫滿之區塊。
- 如申請專利範圍第8項所述之儲存裝置,其中上述複數區塊之一第三區塊具有一最大寫入序號,上述第三區塊係為上述複數區塊中最晚被寫滿之區塊,上述控制器更判斷上述最大寫入序號與上述最小寫入序號之差是否超過一第二臨限值,其中當上述最大寫入序號與上述最小寫入序號之差不超過上述第二臨限值時,上述控制器不執行上述均衡磨損程序之資料搬移。
- 一種資料保存方法,適用於一快閃式記憶體陣列,其中上述快閃式記憶體陣列包括複數區塊,上述複數區塊中的一最小抹除數量之區塊的抹除次數相等且係為一最小抹除次數,其中上述最小抹除次數係為上述複數區塊之抹除次數的最小值,包括:抹除上述最小抹除數量之上述區塊之一者的資料;以及當上述最小抹除數量之區塊之一者的資料被抹除時,將上述最小抹除數量減1。
- 如申請專利範圍第11項所述之資料保存方法,更包括:當上述最小抹除數量為0時,將上述最小抹除次數加1;重新掃描上述快閃式記憶體陣列之每一上述複數區塊之抹除次數;以及根據上述複數區塊之抹除次數,重新決定上述最小抹除數量。
- 如申請專利範圍第11項所述之資料保存方法,其中初始時,上述最小抹除次數設定為0,上述最小抹除數量設定為上述複數區塊的總數。
- 如申請專利範圍第11項所述之資料保存方法,其中當更新上述最小抹除次數及/或上述最小抹除數量時,將上述最小抹除次數以及上述最小抹除數量儲存至上述快閃式記憶體陣列。
- 如申請專利範圍第11項所述之資料保存方法,其中上述快閃式記憶體陣列更具有一平均抹除次數,上述資料保存方法更包括:判斷上述複數區塊之一平均抹除次數與上述最小抹除次數之差是否超過一冷資料臨限值;以及當上述平均抹除次數與上述最小抹除次數超過上述冷資料臨限值時,選擇上述第一區塊作為一源區塊,其中當執行一均衡磨損程序之資料搬移時,上述控制器將上述源區塊之資料搬移至一目標區塊。
- 如申請專利範圍第15項所述之資料保存方法,更包括:抹除上述快閃式記憶體陣列之上述複數區塊之一第二區塊之資料;當上述第二區塊之資料被抹除後,判斷上述第二區塊之一目前抹除次數與上述最小抹除次數之差是否超過一目標臨限值;以及當上述目前抹除次數與上述最小抹除次數之差超過上述目標臨限值時,選擇上述第二區塊作為上述目標區塊。
- 如申請專利範圍第15項所述之資料保存方法,其中上述第一區塊具有一第一寫入序號,上述複數區塊中之一第三區塊具有一最大寫入序號,上述第一寫入序號以及上述最大寫入序號分別代表上述第一區塊以及上述第三區塊被寫滿之順序,上述第三區塊係為上述複數區塊中最晚被寫滿之區塊,其中在上述選擇上述第一區塊作為上述源區塊之步驟後,上述資料保存方法更包括:判斷上述最大寫入序號與上述第一寫入序號之差是否超過一第一臨限值;以及當上述最大寫入序號與上述第一寫入序號之差不超過上述第一臨限值時,不執行上述均衡磨損程序之資料搬移。
- 如申請專利範圍第15項所述之資料保存方法,其中在上述判斷上述複數區塊之上述平均抹除次數與上述最小抹除次數之差是否超過上述冷資料臨限值之步驟後,上述資料保存方法更包括:當上述平均抹除次數以及上述最小抹除次數之差不超過上述冷資料臨限值時,選擇上述快閃式記憶體陣列之一第四區塊作為上述源區塊,其中上述第四區塊具有一最小寫入序號。
- 如申請專利範圍第18項所述之資料保存方法,其中上述第四區塊係上述複數區塊中抹除次數小於上述平均抹除次數的區塊之中最早被寫滿之區塊。
- 如申請專利範圍第17項所述之資料保存方法,其中上述複數區塊之一第三區塊具有一最大寫入序號,上述第三區塊係為上述複數區塊中最晚被寫滿之區塊,其中在上述選擇上述快閃式記憶體陣列之上述第四區塊作為上述源區塊之步驟後,上述資料保存方法更包括:判斷上述最大寫入序號與上述最小寫入序號之差是否超過一第二臨限值,其中上述第二臨限值大於上述第一臨限值;以及當上述最大寫入序號與上述最小寫入序號之差不超過上述第二臨限值時,不執行上述均衡磨損程序之資料搬移。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201810007643.7 | 2018-01-04 | ||
CN201810007643.7 | 2018-01-04 | ||
CN201810007643.7A CN108089994B (zh) | 2018-01-04 | 2018-01-04 | 存储装置以及数据保存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201931375A TW201931375A (zh) | 2019-08-01 |
TWI680460B true TWI680460B (zh) | 2019-12-21 |
Family
ID=62181549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107145217A TWI680460B (zh) | 2018-01-04 | 2018-12-14 | 儲存裝置以及資料保存方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11249894B2 (zh) |
CN (1) | CN108089994B (zh) |
TW (1) | TWI680460B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725835B (zh) * | 2017-10-27 | 2022-04-29 | 伊姆西Ip控股有限责任公司 | 用于管理盘阵列的方法、设备和计算机程序产品 |
JP2021099642A (ja) * | 2019-12-20 | 2021-07-01 | キヤノン株式会社 | 情報処理装置および情報処理装置の制御方法 |
JP2023044509A (ja) | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | メモリシステムおよびメモリシステムの制御方法 |
US20230386588A1 (en) * | 2022-05-25 | 2023-11-30 | Micron Technology, Inc. | Media management |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004040578A2 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Wear leveling in non-volatile storage systems |
US20100115186A1 (en) * | 2008-10-31 | 2010-05-06 | A-Data Technology Co., Ltd. | Flash memory device with wear-leveling mechanism and controlling method thereof |
US20100205359A1 (en) * | 2006-03-29 | 2010-08-12 | Hitachi, Ltd. | Storage System Using Flash Memory Modules Logically Grouped for Wear-Leveling and Raid |
US8335887B2 (en) * | 2009-10-29 | 2012-12-18 | Hynix Semiconductor Inc. | Solid state storage systems and methods for flexibly controlling wear leveling |
US20150026389A1 (en) * | 2013-07-17 | 2015-01-22 | Lite-On It Corporation | Block grouping method for solid state drive |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7441067B2 (en) * | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
US8006050B2 (en) * | 2007-04-19 | 2011-08-23 | International Business Machines Corporation | System for determining allocation of tape drive resources for a secure data erase process |
US7856522B2 (en) * | 2007-05-16 | 2010-12-21 | Oracle International Corporation | Flash-aware storage optimized for mobile and embedded DBMS on NAND flash memory |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8051241B2 (en) * | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
US8621141B2 (en) * | 2010-04-01 | 2013-12-31 | Intel Corporations | Method and system for wear leveling in a solid state drive |
JP2012203443A (ja) * | 2011-03-23 | 2012-10-22 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
US8892811B2 (en) * | 2012-03-01 | 2014-11-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing write amplification in a flash memory |
US8724388B2 (en) * | 2012-04-02 | 2014-05-13 | Spansion Llc | Adaptively programming or erasing flash memory blocks |
US9116792B2 (en) * | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
US9811414B2 (en) * | 2012-07-25 | 2017-11-07 | Silicon Motion Inc. | Method for managing data stored in flash memory and associated memory device and controller |
JP2014098978A (ja) * | 2012-11-13 | 2014-05-29 | Sony Corp | メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法 |
KR20150044753A (ko) * | 2013-10-17 | 2015-04-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
TWI516922B (zh) * | 2014-03-12 | 2016-01-11 | 慧榮科技股份有限公司 | 資料儲存裝置及快閃記憶體零散資料收集方法 |
KR102291507B1 (ko) * | 2014-05-20 | 2021-08-20 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 |
US20160321172A1 (en) * | 2015-05-01 | 2016-11-03 | Kabushiki Kaisha Toshiba | Memory device that performs garbage collection |
US9812215B2 (en) * | 2016-03-25 | 2017-11-07 | Toshiba Memory Corporation | Memory device that executes an erase operation for a nonvolatile memory |
US10481798B2 (en) * | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US10228862B2 (en) * | 2017-03-15 | 2019-03-12 | Western Digital Technologies, Inc. | Capacity-aware wear leveling in solid-state storage devices |
KR20180123265A (ko) * | 2017-05-08 | 2018-11-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2018
- 2018-01-04 CN CN201810007643.7A patent/CN108089994B/zh active Active
- 2018-06-13 US US16/007,025 patent/US11249894B2/en active Active
- 2018-12-14 TW TW107145217A patent/TWI680460B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004040578A2 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Wear leveling in non-volatile storage systems |
US20100205359A1 (en) * | 2006-03-29 | 2010-08-12 | Hitachi, Ltd. | Storage System Using Flash Memory Modules Logically Grouped for Wear-Leveling and Raid |
US20100115186A1 (en) * | 2008-10-31 | 2010-05-06 | A-Data Technology Co., Ltd. | Flash memory device with wear-leveling mechanism and controlling method thereof |
US8335887B2 (en) * | 2009-10-29 | 2012-12-18 | Hynix Semiconductor Inc. | Solid state storage systems and methods for flexibly controlling wear leveling |
US20150026389A1 (en) * | 2013-07-17 | 2015-01-22 | Lite-On It Corporation | Block grouping method for solid state drive |
Also Published As
Publication number | Publication date |
---|---|
TW201931375A (zh) | 2019-08-01 |
CN108089994B (zh) | 2021-06-01 |
CN108089994A (zh) | 2018-05-29 |
US11249894B2 (en) | 2022-02-15 |
US20190205245A1 (en) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI680460B (zh) | 儲存裝置以及資料保存方法 | |
TWI680459B (zh) | 儲存裝置以及資料保存方法 | |
US9405670B2 (en) | Wear leveling method and apparatus | |
JP5031849B2 (ja) | フラッシュメモリのブロック管理方法 | |
US9600408B2 (en) | Data storage device and method for flash block management | |
JP2019168937A (ja) | メモリシステム、制御方法及びコントローラ | |
US10178265B2 (en) | Image formation apparatus, method of controlling flash memory, and non-transitory computer-readable storage medium | |
US20100161885A1 (en) | Semiconductor storage device and storage controlling method | |
JP2009205335A (ja) | 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法 | |
TWI466121B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
KR101839664B1 (ko) | 데이터 기억 시스템 및 그 제어 방법 | |
JP2005222550A (ja) | フラッシュメモリのリマッピング方法 | |
KR20170059339A (ko) | 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법 | |
CN110688326A (zh) | 一种基于多阈值的闪存磨损均衡算法 | |
JP2019185350A (ja) | メモリシステム及びメモリシステムの制御方法 | |
WO2012167642A1 (en) | Wear leveling method and apparatus | |
JP6245041B2 (ja) | 情報処理装置及びフラッシュメモリの制御方法 | |
CN112204514A (zh) | 用于保留非易失性存储器的预期寿命的技术 | |
CN108572924B (zh) | 一种3d mlc闪存设备的请求处理方法 | |
KR20090053164A (ko) | 상태 정보를 관리하는 플래시 메모리 제어 장치 및 방법 | |
JP2020086748A (ja) | メモリコントローラ、及びメモリシステム | |
CN111459855A (zh) | 存储器系统 | |
TWI716234B (zh) | 靜態耗損平均方法 | |
CN110618792A (zh) | 基于固态硬盘的内部任务优化方法、装置和计算机设备 | |
JP2015043183A (ja) | メモリ管理装置 |