TW202238369A - 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 - Google Patents
在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 Download PDFInfo
- Publication number
- TW202238369A TW202238369A TW110133145A TW110133145A TW202238369A TW 202238369 A TW202238369 A TW 202238369A TW 110133145 A TW110133145 A TW 110133145A TW 110133145 A TW110133145 A TW 110133145A TW 202238369 A TW202238369 A TW 202238369A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- blocks
- age
- area
- erase
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種在一快閃記憶體中進行一耗損平衡操作的方法,該方法包含:根據一區塊被抹除後,該快閃記憶體進行抹除操作的次數,決定該快閃記憶體的複數個區塊中每一區塊的一區塊年齡;透過將該複數個區塊的區塊年齡與一年齡限制進行比較,從該複數個區塊中選出一個或多個候選來源區塊;根據該一個或多個候選來源區塊的抹除次數或者區塊年齡,從該一個或多個候選來源區塊中選出一來源區塊;以及對該來源區塊進行該耗損平衡操作。
Description
本發明關於快閃記憶體,尤指在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統。
快閃記憶體由個別的可抹除區塊組成,每個可抹除區塊在提前耗損或者是超過其耐久度之前,具有有限的P/E(編程program/抹除erase)週期。因此,快閃記憶體需定期依靠耗損平衡(wear-leveling)操作,防止特定區塊上發生密集抹除,並且將抹除更均勻地分散在快閃記憶體的所有區塊上。
一般來說,只要空閒區塊(spare block)的最高抹除次數與快閃記憶體中的最低抹除次數之間的差值超過一個臨界值,習知的靜態耗損平衡(static wear-leveling)操作就會被觸發。此時,抹除次數少的區塊被選作為來源區塊,且這些區塊中的資料被當成冷資料(即,不常被存取的資料)。另一方面,具有高抹除次數的空閒區塊則被選作為目的區塊,並且這些區塊中的資料被當成熱資料(即,經常被存取的資料)。被認定的“冷資料”將被移動到目的區塊,而被認定的“熱資料”將被寫入到來源區塊。在這個情形下,可以預期在一段時間後,來源區塊(現在包含熱資料)的抹除次數有相對較大的增加,而目的區塊(現在包含冷資料)的抹除次數的增加相對較小,從而使得抹除次數之間的差異得以平衡。然而,這種方式可能會導致意外的結果。
考慮第1A圖所示的情況,少量的區塊(即區塊組A)具有低抹除次數差值,並包含冷資料,而大量的區塊(即,區塊組B)具有高抹除次數差值,並包含熱資料。之後,當區塊組B的抹除次數差值達到抹除次數差值臨界值ECTH,在時間T1將觸發耗損平衡操作。由於區塊組A中區塊的抹除次數較少,這些區塊被選作來源區塊,而區塊組A中的冷資料將被移動到區塊組B中的多個區塊(即,區塊組B1)中。再者,熱資料將被移動到區塊組A中的區塊,從而平衡兩區塊組的抹除次數差值。如第1B圖所示,當再次達到抹除次數差值臨界值ECTH,在時間T2將觸發耗損平衡操作。此時,由於區塊組A中區塊的抹除次數仍然很少,區塊組A中的資料會被誤認為是冷資料,並且被進一步移動到區塊組B中的區塊(即,區塊組B2)中。
如此一來,先前在時間Tl時,被寫入到區塊組A1的“熱資料”,會再次被移動到具有高抹除次數的區塊組B2中的區塊,從而導致區塊組B2的抹除次數不斷上升,繼而無法平衡抹除次數之間的差異。由上可知,區塊的抹除次數不能完美地反映出資料的溫度,僅依靠抹除次數來選擇耗損平衡操作的來源區塊,可能會導致無意義的資料搬移,降低耗損平衡的效果,甚至可能使寫入放大(write amplification)變得更糟。因此,有必要提供一種在耗損平衡操作中選擇來源區塊的方法。
有鑑於此,本發明的目的之一在於提供一種執行耗損平衡操作的方法。本發明實施例提供了可更精確地判斷資料溫度的方式。首先,本發明維護一個區塊年齡表,用以記錄快閃記憶體中的區塊年齡。再者,本發明設定了年齡限制,一旦一個區塊的區塊年齡超過年齡限制,則判斷該區塊長時間未進行抹除操作,而該區塊很可能包含冷資料,並將該區塊選作耗損平衡操作的一個候選來源區塊。透過本發明的技術,可以更加準確地判斷資料溫度,從而避免選出包含有熱資料的區塊作為來源區塊。如此一來,本發明可有效提升耗損平衡的效率。
本發明實施例提供一種在一快閃記憶體中進行執行一耗損平衡操作的方法,該方法包含:根據一區塊被抹除後,該快閃記憶體進行抹除操作的次數,決定該快閃記憶體的複數個區塊中每一區塊的一區塊年齡;透過將該複數個區塊的區塊年齡與一年齡限制進行比較,從該複數個區塊中選出一個或多個候選來源區塊;根據該一個或多個候選來源區塊的抹除次數或者區塊年齡,從該一個或多個候選來源區塊中選出一來源區塊;以及對該來源區塊進行該耗損平衡操作。
本發明實施例提供一種用於控制一快閃記憶體並對該快閃記憶體進行一耗損平衡操作的控制器。該控制器包含:一儲存單元以及一處理單元。該儲存單元用於儲存資訊。該處理單元用於執行一程序碼,並參考該快閃記憶體或該儲存單元中儲存的資訊。該處理單元用以進行以下操作:根據一區塊被抹除後,該快閃記憶體進行抹除操作的次數,決定該快閃記憶體的複數個區塊中每一區塊的一區塊年齡;透過將該複數個區塊的區塊年齡與一年齡限制進行比較,從該複數個區塊中選出一個或多個候選來源區塊;根據該一個或多個候選來源區塊的抹除次數或者區塊年齡,從該一個或多個候選來源區塊中選出一來源區塊;以及對該來源區塊進行該耗損平衡操作。
本發明實施例提供一種儲存系統,該儲存系統包含一快閃記憶體以及一控制器。該控制器用於控制該快閃記憶體並對該快閃記憶體進行一耗損平衡操作,並且進行以下操作:根據一區塊被抹除後,該快閃記憶體進行抹除操作的次數,決定該快閃記憶體的複數個區塊中每一區塊的一區塊年齡;透過將該複數個區塊的區塊年齡與一年齡限制進行比較,從該複數個區塊中選出一個或多個候選來源區塊;根據該一個或多個候選來源區塊的抹除次數或者區塊年齡,從該一個或多個候選來源區塊中選出一來源區塊;以及對該來源區塊進行該耗損平衡操作。
在以下內文中,描述了許多具體細節以提供閱讀者對本發明實施例的透徹理解。然而,本領域的技術人士將能理解,如何在缺少一個或多個具體細節的情況下,或者利用其他方法或元件或材料等來實現本發明。在其他情況下,眾所皆知的結構、材料或操作不會被示出或詳細描述,從而避免模糊本發明的核心概念。
說明書中提到的「一實施例」意味著該實施例所描述的特定特徵、結構或特性可能被包含於本發明的至少一個實施例中。因此,本說明書中各處出現的「在一實施例中」不一定意味著同一個實施例。此外,前述的特定特徵、結構或特性可以以任何合適的形式在一個或多個實施例中結合。
第2圖為本發明實施例之電子裝置10的架構示意圖。如圖所示,電子裝置10包含主控裝置(host device)50與儲存系統100。主控裝置50可包含:至少一處理器52,用來控制主控裝置50之運作。在不同實施例中,主控裝置50可以是(但不限於):智慧型手機、平板電腦、可穿戴裝置、個人電腦、筆記型電腦、數位相機、數位錄影機、遊戲主機、車用導航系統、印表機、掃描器或者伺服器。另外,在不同實施例中,儲存系統100可以是(但不限於):可攜式儲存裝置(如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)、固態硬碟(solid state drive, SSD)以及各種嵌入式(embedded)儲存裝置(如符合UFS或EMMC規格之嵌入式儲存裝置)。
在本發明的各種實施例中,儲存系統100可以包含如記憶體控制器110之類的控制器,並且還可以包括非揮發性(non-volatile, NV)記憶體120。NV記憶體120用於儲存資訊。NV記憶體120可以包括一個或多個NV記憶體元件,例如,多個NV記憶體元件122_1-122_N。再者,NV記憶體120可以是快閃記憶體,並且NV記憶體元件122_1-122_N可以分別是多個快閃記憶體晶片或多個快閃記憶體裸晶,但本發明不限於此。另外,NV記憶體120可以包含具有二維結構的記憶體單元(memory cells),或者可以包含具有三維結構的記憶體單元。
如第1圖所示,記憶體控制器110可以包含如微處理器112之類的處理電路、唯讀記憶體(read-only memory, ROM)112M之類的儲存元件、控制邏輯電路114、垃圾回收操作管理引擎115、揮發性記憶體116和傳輸介面電路118。其中,這些元件的至少一部分(例如,一部分或全部)可以透過匯流排彼此互連。揮發性記憶體116由隨機存取記憶體(random-access memory, RAM)實現。例如,揮發性記憶體116可以是靜態RAM(static RAM, SRAM)。揮發性記憶體116可以用於向記憶體控制器110提供內部儲存空間,例如,暫時性地儲存資訊。另外,本實施例的ROM 112M用於儲存程式碼112C,而微處理器112用於執行程式碼112C,從而控制對NV記憶體120的存取。在另一個實施例中,程式碼112C可以被儲存在NV記憶體120中。
記憶體控制器110透過控制邏輯電路114來控制NV記憶體120的讀取、寫入和抹除。此外,記憶體控制器110可以同時基於來自主控裝置50的主機命令執行使用者資料的寫入,以及基於垃圾回收操作或耗損平衡操作從NV記憶體120中蒐集的有效資料,進行有效資料的寫入。控制邏輯電路114可以進一步用於控制NV記憶體120,其包含錯誤校正(error correction code, ECC)電路(未示出),以執行資料保護和/或校正,但是本發明不限於此。傳輸介面電路118符合特定的資料傳輸規範(例如,序列進階技術附加裝置(Serial Advanced Technology Attachment, SATA)規範、通用序列匯流排(Universal Serial Bus, USB)規範、快捷外設互聯標準((Peripheral Component Interconnect Express, PCIE)規範、嵌入式多媒體卡(Embedded Multimedia Card, eMMC)規範、或通用快閃記憶體儲存(Universal Flash Storage, UFS)規範,並可以根據特定的通信規範與主控裝置50進行通訊。
一般來說,主控裝置50可以透過向記憶體控制器110發送主機命令和相應的邏輯位址來間接存取儲存系統100。記憶體控制器110接收主機命令和邏輯位址,將主機命令轉換為記憶體操作命令,並且進一步用記憶體操作命令控制NV記憶體120,從而對NV記憶體120內具有特定物理位址的記憶體單元(memory cells)或頁(pages),執行讀、寫或抹除操作,其中物理位址對應於邏輯位址。當記憶體控制器110對NV記憶體元件122_1-122_N內的任何NV記憶體元件122_k執行抹除操作時,NV記憶體元件122_k中的至少一個區塊(block)可以被抹除。另外,NV記憶體元件122_k的每個區塊可以包括多個頁,並且可以在一個或多個頁上執行存取操作(例如,讀取或寫入)。
如前所述,區塊的抹除次數不能準確地反映出區塊是否儲存冷資料。因此,本發明的實施例提供了區分冷資料區塊的方法。並且,將具有冷資料的區塊選作為耗損平衡的候選來源區塊。首先,記憶體控制器110決定NV記憶體120中的區塊的區塊年齡。區塊年齡的用途在於估計區塊未被抹除的時間。如果一個區塊長時間沒有被抹除,該區塊很可能包含冷資料。因此,記憶體控制器110將判斷一個區塊的區塊年齡是否超過一個預定年齡限制。如果是,該區塊將被視為可能包含冷資料,然後被選作耗損平衡的候選來源區塊。
為了決定NV記憶體120中的區塊的區塊年齡,記憶體控制器110維護至少一個區塊年齡表。該區塊年齡表記錄NV記憶體120中的每個區塊(NV記憶體120的一部分物理區塊,或全部物理區塊)的一區塊抹除時戳(block erase stamp)BES。此外,記憶體控制器110還透過計算已經對NV記憶體120的區塊執行抹除操作的次數,記錄一系統抹除時戳(system erase stamp)SES。系統抹除時戳SES將會因每次對NV記憶體120執行抹除操作而更新,而區塊抹除時戳BES則根據區塊被抹除時,系統抹除時戳SES的當前數值而更新。由於系統抹除時戳SES根據對NV記憶體120執行抹除操作的次數來更新,因此其實質上反映了NV記憶體120的耗損。再者,由於區塊抹除時戳BES隨著系統抹除時戳SES的當前數值而更新,故其可大致反映出區塊被抹除的時間點。透過將系統抹除時戳SES的值減去一個區塊的區塊抹除時戳BES的值,可以相應地估計該區塊的區塊年齡。區塊年齡可以反映出一個區塊有多久沒有被抹除,或者該區塊被抹除後經歷的時間。區塊年齡越老,就越有可能包含冷資料。
第3圖繪示了在本發明實施例中,記憶體控制器110如何維護區塊年齡表。在本實施例中,假設NV記憶體120中有100個區塊(即B0~B99)。請注意,區塊B0~B99可能僅是NV記憶體120的部分區塊。換句話說,區塊年齡表可以僅用於估計NV記憶體120中某些區塊的區塊年齡。
請再次參考第3圖,區塊B3在時間T1被抹除。當區塊B3被抹除時,系統抹除時戳SES的當前數值為0。因此,區塊B3的區塊抹除時戳BES_B3將被更新成0。相應地,系統抹除時戳SES將因區塊B3的抹除操作而增加1,即,從0到1。在時間T2,區塊B1被抹除。當區塊B1被抹除時,系統抹除時戳SES的當前數值為1。因此,區塊B1的區塊抹除時戳BES_B1被更新成1。由於區塊B1的抹除操作,使得系統抹除時戳SES從1更新成2。在時間T3,區塊B98被抹除。當區塊B98被抹除時,系統抹除時戳SES的當前數值為2。因此,區塊B98的區塊抹除時戳BES_B98被更新成2。由於區塊B98的抹除操作,系統抹除時戳SES從2更新成3。在時間T4,區塊B1再次被抹除。當區塊B1被抹除時,系統抹除時戳SES的當前數值為3。因此,區塊B1的區塊抹除時戳BES_B1更新成3。由於區塊B1的抹除操作,系統抹除時戳SES將從3更新成4。由於區塊B1在時間T4再次被抹除,區塊B1的區塊年齡BA_B1為1(即,4-3=1),變得比先前年輕。
第4圖繪示如何根據以上的方式維護區塊年齡表的流程圖。在步驟210,抹除一區塊。在步驟220,根據系統抹除時戳的當前數值更新區塊的區塊抹除時戳。在步驟220,因應區塊的抹除,更新系統抹除時戳。根據區塊年齡表BAT,記憶體控制器110可以透過計算系統抹除時戳SES的當前數值與區塊抹除時戳BES_k之間的差值,從而決定區塊Bk的區塊年齡BA_k。其中,BA_k=(SES)-(BES_Bk)。
基於區塊年齡表BAT,記憶體控制器110可以隨時決定區塊的區塊年齡。據此,記憶體控制器110持續監控區塊的區塊年齡。一旦一個區塊的區塊年齡區塊超過了年齡限制,則表示該區塊已經很長時間沒有被抹除。有鑑於此,記憶體控制器110選擇該區塊作為耗損平衡操作的候選來源區塊,因為該區塊可能具有冷資料。
根據本發明的多個實施例,記憶體控制器110可以根據NV記憶體120中區塊的抹除次數差值的變化,來設定年齡限制。進一步來說,記憶體控制器110記錄每個區塊的抹除次數,其中抹除次數表示區塊已被抹除的次數。記憶體控制器110將每個區塊的抹除次數中減去與NV記憶體120相關的區塊最低抹除次數,從而決定每個區塊的抹除次數差值。下面解釋幾種決定年齡限制的方式。
請考慮第5A圖與第5B圖所示的情況,其繪示NV記憶體120的區塊的抹除次數差值的分布。如第5A圖所示,NV記憶體120中存在可能包含冷資料的少量區塊(即,區塊組A)和可能包含熱資料的大量區塊(即,區塊組B)。在一段時間後,抹除次數差值的分布發生如第5B圖所示的變化,其中區塊組B中的區塊的抹除次數差值顯著地增加。這種情況可能是因為在這段時間中區塊組A的區塊的抹除次數很少,而區塊組B的區塊抹除次數很多。由此看來,區塊組A的區塊中的資料極有可能是冷資料。
因此,記憶體控制器110可以根據NV記憶體120的區塊總數量的倍數來設置年齡限制,即,年齡限制為:TBN*N,其中TBN為NV記憶體120的區塊總數量,並且N大於等於1。這是因為當區塊組B的區塊數量足夠大時,會接近NV記憶體120的區塊總數量TBN,因此數值“TBN*N”會很接近區塊組B中的區塊平均地被抹除N次的總次數。如果一個區塊的區塊年齡超過這個年齡限制,顯然代表即便區塊組的B中的區塊已經被抹除了很多次,但該區塊依然沒有被抹除過一次。由此看來,該區塊極有可能包含冷資料。因此,將年齡限制設置成區塊總數量的N倍,可以準確地將具有冷資料的區塊,與區塊組A(即少量區塊)區隔開來。
考慮第6A圖與第6B圖所示的另一種情況,其繪示NV記憶體120的區塊的抹除次數差值的分布。如第6A圖所示,NV記憶體120中存在可能包含熱資料的少量區塊(即,區塊組C),和可能包含冷資料的大量區塊(即,區塊組D)。在一段時間後,抹除次數差值的分布發生如第6B圖所示的變化,其中區塊組C中的區塊的抹除次數差值顯著地增加,且這些抹除次數差值達到了抹除次數差值臨界值ECTH。這種情況可能是因為區塊組D中的區塊的抹除次數很少,而區塊組C中的區塊的抹除次數很多。由此看來,區塊組D的區塊中的資料極有可能是冷資料。
因此,記憶體控制器110可以根據抹除次數差值臨界值ECTH和NV記憶體120中超額配置(over-provisioning)區塊的區塊數量OPN來設置年齡限制。即,年齡限制為:ECTH*OPN*N,其中N大於等於1。超額配置區塊的區塊數量OPN可用於估計區塊組C的實際區塊數量的最小值。如果區塊組C中所有區塊都增加了如第6B圖所示的抹除次數差值,這意味著至少有“OPN”個區塊的抹除次數差值具有相同的增加。因此,如果一個區塊的區塊年齡超過年齡限制:“ECTH*OPN*N”,則表示在區塊組C的區塊經歷了很多次的抹除操作後,該區塊依然沒有被抹除一次。因此,可以肯定該區塊極有可能包含冷資料。由上可知,使用年齡限制:“ECTH*OPN*N”可以準確地將具有冷資料的區塊,與區塊組D(即大量區塊)區隔開來。
在本發明的一個實施例中,可以根據區塊的預期壽命(expected lifetime)編程/抹除(P/E)週期(區塊在完全耗損前,預期的P/E週期上限)的百分比,決定抹除次數差值臨界值ECTH。例如,抹除次數差值臨界值ECTH可以根據3000次的預期壽命P/E週期的10%,即300次週期來設置。此外,由於預期壽命P/E週期的差異,NV記憶體120的單層儲存單元(single-level cell)區域中的區塊,其抹除次數差值臨界值ECTH可以高於NV記憶體120的三層儲存單元(triple-level cell)區域中的區塊的抹除次數差值臨界值ECTH。
考慮由第7A圖與第7B圖所示的情況,其繪示NV記憶體120的區塊的抹除次數差值的分布。如第7A圖所示,NV記憶體120中的少量區塊(即,區塊組E)可能包含熱資料,而大量區塊(即,區塊組F)可能包含冷資料。如果區塊組E的區塊的抹除次數在一定時間內顯著地增加,且平均地達到抹除次數差值臨界值ECTH。這意味著在一段時間內,相較於區塊組F中的區塊,區塊組E中的區塊經歷了很多次抹除操作。有鑑於此,記憶體控制器110可以根據NV快閃記憶體120中區塊的抹除次數差值DiffSUM的總和,除以抹除次數差值臨界值ECTH的結果,設置年齡限制。亦即,年齡限制可以設置成:(DiffSUM/ECTH)*N,其中N大於或等於1。如第7A圖所示,數值“DiffSUM/ECTH”將非常接近區塊組E的區塊數。因此,數值“(DiffSUM/DiffTH)*N”將接近區塊組E的區塊被平均地被抹除N次的總次數。有鑑於此,如果一個區塊的區塊年齡超過了這個年齡限制,可以確定該區塊很可能包含冷資料。因此,年齡限制:“(DiffSUM/ECTH)*N”可以準確地將具有冷資料的區塊,與區塊組F(即大量區塊)區隔開來。
如第7B圖所示的情況,數值“DiffSUM/ECTH”將非常接近區塊組G(即,可能包含熱資料的大量區塊)的區塊數量。因此,數值“(DiffSUM/DiffTH)*N”將接近區塊組G的區塊被平均地抹除N次的總次數。有鑑於此,如果一個區塊的區塊年齡超過了這個年齡限制,可以確定該區塊很可能包含冷資料。因此,年齡限制:“(DiffSUM/ECTH)*N”可以準確地將具有冷資料的區塊,與區塊組H(即少量區塊)區隔開來。
當一個或多個區塊的區塊年齡超過年齡限制時,這意味著該一個或多個區塊長時間沒有被抹除,並且它們很可能包含冷資料。因此,記憶體控制器110可以選擇這樣的區塊作為候選來源區塊,然後從這些候選來源區塊中,決定耗損平衡操作的來源區塊。根據不同實施例,記憶體控制器110可以用不同方式來確定來源區塊。在一個實施例中,記憶體控制器110可以從候選來源區塊中選擇具有最老區塊年齡的區塊作為來源區塊。這是因為區塊年齡與資料溫度高度地相關,所以具有最老區塊年齡的區塊很可能包含冷資料。在另一個實施例中,記憶體控制器110可以從候選來源區塊中選擇具有最低抹除次數的區塊作為來源區塊。這是因為抹除次數也與資料溫度高度地相關,所以抹除次數最少的區塊也很可能包含冷資料。
在來源區塊被選擇之後,記憶體控制器110開始對來源區塊進行耗損平衡操作。耗損平衡操作將來源區塊中的資料移動到NV記憶體120中具有最高抹除次數的空閒/備用區塊(spare/free block)。另一方面,來自NV記憶體120中具有高抹除次數的一個或多個區塊的熱資料將被寫入至來源區塊,從而平衡NV記憶體120的區塊之間的抹除次數差異。
第6圖繪示本發明一個實施例中,管理一快閃記憶體的一耗損平衡操作的方法流程圖,其包括以下步驟:
步驟310:根據一區塊被抹除後,該快閃記憶體進行抹除操作的次數,決定該快閃記憶體的複數個區塊中每一個區塊的一區塊年齡;
步驟320:透過將該複數個區塊的區塊年齡與一年齡限制進行比較,從該複數個區塊中選出一個或多個候選來源區塊;
步驟330:根據該一個或多個候選來源區塊的抹除次數或者區塊年齡,從該一個或多個候選來源區塊中選出一來源區塊;以及
步驟340:對該來源區塊進行該耗損平衡操作。
由於在上述實施例中,已對這些步驟的原理和詳細操作進行了透徹的說明,為簡潔起見,在此不再贅述。
請注意,以上段落中的用語“所有區塊”、“區塊總數量”可能代表一特定區塊組,而非NV記憶體120中所有的物理區塊。此外,針對NV記憶體120中的不同區塊,可以採用不同的區塊年齡決定方法以及不同的年齡限制決定方法。
請參考第9圖以進一步理解。如第9圖所示,NV記憶體120可能包含單層儲存單元(SLC)區域126和三層儲存單元(TLC)區域127。也就是說,記憶體控制器110可以為SLC區域126中的區塊維護一個區塊年齡表BAT_SLC,以及為TLC區域127中的區塊維護另一個區塊年齡表BAT_TLC。更具體地說,記憶體控制器110記錄僅在SLC區域126中的區塊被抹除時才更新的第一系統抹除時戳,並相應地維護區塊年齡表BAT_SLC,同時記錄僅在TLC區域126中的區塊被抹除時才更新的第二系統抹除時戳,並相應地維護區塊年齡表BAT_TLC。換言之,SLC區域126中的區塊抹除可能不會導致區塊年齡表BAT_TLC的更新,反之亦然。在另一實施例中,如果SLC區域126是動態SLC區域(dynamic SLC region),在SLC區域126或者TLC區域127中的一個區塊中被抹除時,SLC區域126的第一系統抹除時戳和TLC區域127的第二系統抹除時戳將會被更新。
此外,SLC區域126中的區塊和TLC區域127中的區塊的年齡限制可能不同,這是因為SLC區塊和TLC區塊通常具有不同的預期壽命P/E週期,從而具有不同的抹除次數差值臨界值ECTH。另外,以上所提到的用語“所有區塊”,可以代表“SLC區域126中的所有區塊”或者是“TLC區域127中的所有區塊”,而用語“區塊總數量”可以代表“SLC區域126的區塊總數量”,或者是“TLC區域127的區塊總數量”。
總結來說,本發明提供了一種執行耗損平衡操作的方法,以及相關的控制器和儲存系統。在本發明中,只有當一個區塊的區塊年齡超過年齡限制時,才會將該區塊選作耗損平衡的候選來源區塊。因此,來源區塊的選擇不再僅憑區塊的抹除次數,從而避免習知技術對資料溫度的誤判。由此可知,本發明提升了在快閃記憶體中進行耗損平衡的效率。
本發明之實施例可使用硬體、軟體、韌體以及其相關結合來完成。藉由適當之一指令執行系統,可使用儲存於一記憶體中之軟體或韌體來實作本發明的實施例。就硬體而言,則是可應用下列任一技術或其相關結合來完成:具有可根據資料信號執行邏輯功能之邏輯閘的一個別運算邏輯、具有合適的組合邏輯閘之一特定應用積體電路(application specific integrated circuit, ASIC)、可程式閘陣列(programmable gate array, PGA)或一現場可程式閘陣列(field programmable gate array, FPGA)等。
說明書內的流程圖中的流程和方塊示出了基於本發明的各種實施例的系統、方法和電腦軟體產品所能實現的架構,功能和操作。在這方面,流程圖或功能方塊圖中的每個方塊可以代表程式碼的模組,區段或者是部分,其包括用於實現指定的邏輯功能的一個或多個可執行指令。另外,功能方塊圖以及/或流程圖中的每個方塊,以及方塊的組合,基本上可以由執行指定功能或動作的專用硬體系統來實現,或專用硬體和電腦程式指令的組合來實現。這些電腦程式指令還可以存儲在電腦可讀媒體中,該媒體可以使電腦或其他可編程數據處理裝置以特定方式工作,使得存儲在電腦可讀媒體中的指令,實現流程圖以及/或功能方塊圖中的方塊所指定的功能/動作。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
50:主控裝置
52:處理器
100:儲存系統
120:NV記憶體
122_1~122_N:NV記憶體元件
110:記憶體控制器
112:微處理器112
112M:唯讀記憶體
112C:程式碼
114:控制邏輯電路
115:垃圾回收操作管理引擎
116:隨機存取記憶體
118:傳輸介面電路
210~230、310~340:步驟
第1A圖與第1B圖解釋了習知技術如何進行耗損平衡操作。
第2圖為本發明實施例的電子裝置的架構示意圖。
第3圖繪示在本發明實施例中如何維護區塊年齡表。
第4圖繪示在本發明實施例中維護區塊年齡表的方法流程圖。
第5A圖與第5B圖解釋了本發明第一實施例如何設定年齡限制。
第6A圖與第6B圖解釋了本發明第二實施例如何設定年齡限制。
第7A圖與第7B圖解釋了本發明第三實施例如何設定年齡限制。
第8圖繪示在本發明實施例中針對快閃記憶體中進行耗損平衡操作的方法流程圖。
第9圖繪示本發明實施例針對快閃記憶體的不同區域維護不同的區塊年齡表。
310~340:步驟
Claims (23)
- 一種在一快閃記憶體中進行執行一耗損平衡操作的方法,包含: 根據一區塊被抹除後,該快閃記憶體進行抹除操作的次數,決定該快閃記憶體的複數個區塊中每一區塊的一區塊年齡; 透過將該複數個區塊的區塊年齡與一年齡限制進行比較,從該複數個區塊中選出一個或多個候選來源區塊; 根據該一個或多個候選來源區塊的抹除次數或者區塊年齡,從該一個或多個候選來源區塊中選出一來源區塊;以及 對該來源區塊進行該耗損平衡操作。
- 如請求項1所述的方法,其中決定該複數個區塊中的每一區塊的該區塊年齡的步驟包含: 因應該複數個區塊上所進行的抹除操作,記錄並且更新一系統抹除時戳; 當一區塊被抹除時,根據該系統抹除時戳的一當前數值,記錄並且更新一區塊抹除時戳;以及 透過計算該系統抹除時戳的數值與該區塊抹除時戳的數值之間的差值,決定該區塊年齡。
- 如請求項1所述的方法,其中該快閃記憶體包含一單層儲存單元(single-level cell, SLC)區域以及一三層儲存單元(triple-level cell, TLC)區域,並且其中決定該複數個區塊中的每一區塊的該區塊年齡的步驟包含: 記錄一第一系統抹除時戳,並且僅在該SLC區域中有抹除操作發生時,才更新該第一系統抹除時戳;以及記錄一第二系統抹除時戳,並且僅在該TLC區域中有抹除操作發生時,才更新該第二系統抹除時戳; 當該SLC區域中的一個區塊被抹除時,根據該第一系統抹除時戳的一當前數值,更新該SLC區域中的該區塊的一第一區塊抹除時戳,並且當該TLC區域中的一個區塊被抹除時,根據該第二系統抹除時戳的一當前數值,更新該TLC區域中的該區塊的一第二區塊抹除時戳;以及 透過計算該第一系統抹除時戳的數值與該第一區塊抹除時戳的數值之間的差值,來決定該SLC區域中的該區塊的該區塊年齡;並且透過計算該第二系統抹除時戳的數值與該第二區塊抹除時戳的數值之間的差值,來決定該TLC區域中的該區塊的該區塊年齡。
- 如請求項1所述的方法,其中選擇該一個或多個候選來源區塊的步驟包含: 設定該年齡限制;以及 選擇區塊年齡超過該年齡限制的一個或多個區塊作為該一個或多個候選來源區塊。
- 如請求項4所述的方法,其中設定該年齡限制的步驟包含: 根據該快閃記憶體中該複數個區塊的一區塊數量來設定該年齡限制。
- 如請求項5所述的方法,其中該快閃記憶體包含一SLC區域與一TLC區域,且設定該年齡限制的步驟包含: 根據該SLC區域的一區塊數量,設定一第一年齡限制;以及根據該TLC區域的一區塊數量,設定一第二年齡限制,並且選擇該一個或多個候選來源區塊的步驟包含: 從該SLC區域中選擇區塊年齡超過該第一年齡限制的一個或多個區塊作為該一個或多個候選來源區塊;以及 從該TLC區域中選擇區塊年齡超過該第二年齡限制的一個或多個區塊作為該一個或多個候選來源區塊。
- 如請求項4所述的方法,其中設定該年齡限制的步驟包含: 根據一抹除次數差值臨界值和該快閃記憶體中超額配置(over-provisioning)區塊的數量設定該年齡限制。
- 如請求項7所述的方法,其中該抹除次數差值臨界值係根據該複數個區塊的預期壽命編程/抹除週期(program/erase cycle)的一百分比所決定。
- 如請求項7所述的方法,其中該快閃記憶體包含一SLC區域與一TLC區域,且設定該年齡限制的步驟包含: 根據該SLC區域的一第一抹除次數差值臨界值和該快閃記憶體中超額配置區塊的數量,設定一第一年齡限制;以及 根據該TLC區域的一第二抹除次數差值臨界值和該快閃記憶體中超額配置區塊的數量,設定一第二年齡限制;以及選擇該一個或多個候選來源區塊的步驟包含: 從該SLC區域中選擇區塊年齡超過該第一年齡限制的一個或多個區塊作為該一個或多個候選來源區塊;以及 從該TLC區域中選擇區塊年齡超過該第二年齡限制的一個或多個區塊作為該一個或多個候選來源區塊。
- 如請求項4所述的方法,其中設定該年齡限制的步驟包含: 根據該快閃記憶體中該複數個區塊的抹除次數差值的總和以及一抹除次數差值臨界值來設定該年齡限制。
- 如請求項10所述的方法,其中該快閃記憶體包含一SLC區域與一TLC區域,且設定該年齡限制的步驟包含: 根據該SLC區域中區塊的抹除次數差值的總和以及該SLC區域的一第一抹除次數差值臨界值,設定一第一年齡限制;以及 根據該TLC區域中區塊的抹除次數差值的總和以及該TLC區域的一第二抹除次數差值臨界值,設定一第二年齡限制;以及選擇該一個或多個候選來源區塊的步驟包含: 從該SLC區域中選擇區塊年齡超過該第一年齡限制的一個或多個區塊作為該一個或多個候選來源區塊;以及 從該TLC區域中選擇區塊年齡超過該第二年齡限制的一個或多個區塊作為該一個或多個候選來源區塊。
- 一種用於控制一快閃記憶體並對該快閃記憶體進行一耗損平衡操作的控制器,包含: 一儲存單元,用於儲存資訊;以及 一處理單元,用於執行一程序碼,並參考該快閃記憶體或該儲存單元中儲存的資訊,進行以下操作: 根據一區塊被抹除後,該快閃記憶體進行抹除操作的次數,決定該快閃記憶體的複數個區塊中每一區塊的一區塊年齡; 透過將該複數個區塊的區塊年齡與一年齡限制進行比較,從該複數個區塊中選出一個或多個候選來源區塊; 根據該一個或多個候選來源區塊的抹除次數或者區塊年齡,從該一個或多個候選來源區塊中選出一來源區塊;以及 對該來源區塊進行該耗損平衡操作。
- 如請求項12所述的控制器,其中該處理單元執行該程式碼以進行以下操作: 因應該複數個區塊上所進行的抹除操作,記錄並且更新一系統抹除時戳; 當一區塊被抹除時,根據該系統抹除時戳的一當前數值,記錄並且更新一區塊抹除時戳;以及 透過計算該系統抹除時戳的數值與該區塊抹除時戳的數值之間的差值,決定該區塊年齡。
- 如請求項12所述的控制器,其中該快閃記憶體包含一單層儲存單元(single-level cell, SLC)區域以及一三層儲存單元(triple-level cell, TLC)區域,該處理單元執行該程式碼以進行以下操作: 記錄一第一系統抹除時戳,並且僅在該SLC區域中有抹除操作發生時,才更新該第一系統抹除時戳;以及記錄一第二系統抹除時戳,並且僅在該TLC區域中有抹除操作發生時,才更新該第二系統抹除時戳; 當該SLC區域中的一個區塊被抹除時,根據該第一系統抹除時戳的一當前數值,更新該SLC區域中的該區塊的一第一區塊抹除時戳,並且當該TLC區域中的一個區塊被抹除時,根據該第二系統抹除時戳的一當前數值,更新該TLC區域中的該區塊的一第二區塊抹除時戳;以及 透過計算該第一系統抹除時戳的數值與該第一區塊抹除時戳的數值之間的差值,來決定該SLC區域中的該區塊的該區塊年齡;並且透過計算該第二系統抹除時戳的數值與該第二區塊抹除時戳的數值之間的差值,來決定該TLC區域中的該區塊的該區塊年齡。
- 如請求項12所述的控制器,其中該處理單元執行該程式碼以進行以下操作: 設定該年齡限制;以及 選擇區塊年齡超過該年齡限制的一個或多個區塊作為該一個或多個候選來源區塊。
- 如請求項15所述的控制器,其中該處理單元執行該程式碼以進行以下操作: 根據該快閃記憶體中該複數個區塊的一區塊數量來設定該年齡限制。
- 如請求項16所述的控制器,其中該快閃記憶體包含一SLC區域與一TLC區域,且該處理單元執行該程式碼以進行以下操作: 根據該SLC區域的一區塊數量,設定一第一年齡限制;以及根據該TLC區域的一區塊數量,設定一第二年齡限制,並且選擇該一個或多個候選來源區塊的步驟包含: 從該SLC區域中選擇區塊年齡超過該第一年齡限制的一個或多個區塊作為該一個或多個候選來源區塊;以及 從該TLC區域中選擇區塊年齡超過該第二年齡限制的一個或多個區塊作為該一個或多個候選來源區塊。
- 如請求項15所述的控制器,其中該處理單元執行該程式碼以進行以下操作: 根據一抹除次數差值臨界值和該快閃記憶體中超額配置(over-provisioning)區塊的數量設定該年齡限制。
- 如請求項18所述的控制器,其中該抹除次數差值臨界值係根據該複數個區塊的預期壽命編程/抹除週期(program/erase cycle)的一百分比所決定。
- 如請求項18所述的控制器,其中該快閃記憶體包含一SLC區域與一TLC區域,且該處理單元執行該程式碼以進行以下操作: 根據該SLC區域的一第一抹除次數差值臨界值和該快閃記憶體中超額配置區塊的數量,設定一第一年齡限制;以及 根據該TLC區域的一第二抹除次數差值臨界值和該快閃記憶體中超額配置區塊的數量,設定一第二年齡限制;以及選擇該一個或多個候選來源區塊的步驟包含: 從該SLC區域中選擇區塊年齡超過該第一年齡限制的一個或多個區塊作為該一個或多個候選來源區塊;以及 從該TLC區域中選擇區塊年齡超過該第二年齡限制的一個或多個區塊作為該一個或多個候選來源區塊。
- 如請求項15所述的控制器,其中該處理單元執行該程式碼以進行以下操作: 根據該快閃記憶體中該複數個區塊的抹除次數差值的總和以及一抹除次數差值臨界值來設定該年齡限制。
- 如請求項21所述的控制器,其中該快閃記憶體包含一SLC區域與一TLC區域,且該處理單元執行該程式碼以進行以下操作: 根據該SLC區域中區塊的抹除次數差值的總和以及該SLC區域的一第一抹除次數差值臨界值,設定一第一年齡限制;以及 根據該TLC區域中區塊的抹除次數差值的總和以及該TLC區域的一第二抹除次數差值臨界值,設定一第二年齡限制;以及選擇該一個或多個候選來源區塊的步驟包含: 從該SLC區域中選擇區塊年齡超過該第一年齡限制的一個或多個區塊作為該一個或多個候選來源區塊;以及 從該TLC區域中選擇區塊年齡超過該第二年齡限制的一個或多個區塊作為該一個或多個候選來源區塊。
- 一種儲存系統,包含: 一快閃記憶體;以及 一控制器,用於控制該快閃記憶體並對該快閃記憶體進行一耗損平衡操作,該控制器用於: 根據一區塊被抹除後,該快閃記憶體進行抹除操作的次數,決定該快閃記憶體的複數個區塊中每一區塊的一區塊年齡; 透過將該複數個區塊的區塊年齡與一年齡限制進行比較,從該複數個區塊中選出一個或多個候選來源區塊; 根據該一個或多個候選來源區塊的抹除次數或者區塊年齡,從該一個或多個候選來源區塊中選出一來源區塊;以及 對該來源區塊進行該耗損平衡操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/206,147 US20220300184A1 (en) | 2021-03-19 | 2021-03-19 | Method of performing wear-leveling operation in flash memory and related controller and storage system |
US17/206,147 | 2021-03-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202238369A true TW202238369A (zh) | 2022-10-01 |
TWI797742B TWI797742B (zh) | 2023-04-01 |
Family
ID=83284678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110133145A TWI797742B (zh) | 2021-03-19 | 2021-09-07 | 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220300184A1 (zh) |
CN (1) | CN115114180A (zh) |
TW (1) | TWI797742B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11893244B2 (en) * | 2021-10-12 | 2024-02-06 | Western Digital Technologies, Inc. | Hybrid memory management of non-volatile memory (NVM) devices for use with recurrent neural networks |
US20230386588A1 (en) * | 2022-05-25 | 2023-11-30 | Micron Technology, Inc. | Media management |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035967B2 (en) * | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US7752382B2 (en) * | 2005-09-09 | 2010-07-06 | Sandisk Il Ltd | Flash memory storage system and method |
KR100881669B1 (ko) * | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
TW201015581A (en) * | 2008-10-01 | 2010-04-16 | A Data Technology Co Ltd | Non-volatile storage device and control method thereof |
US8082386B2 (en) * | 2008-10-21 | 2011-12-20 | Skymedi Corporation | Method of performing wear leveling with variable threshold |
KR20120096212A (ko) * | 2011-02-22 | 2012-08-30 | 삼성전자주식회사 | 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이들의 동작 방법 |
US9405670B2 (en) * | 2011-06-09 | 2016-08-02 | Tsinghua University | Wear leveling method and apparatus |
US9176862B2 (en) * | 2011-12-29 | 2015-11-03 | Sandisk Technologies Inc. | SLC-MLC wear balancing |
US9361222B2 (en) * | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US10235056B2 (en) * | 2014-09-26 | 2019-03-19 | Western Digital Technologies, Inc. | Storage device health diagnosis |
KR102258126B1 (ko) * | 2015-03-19 | 2021-05-28 | 삼성전자주식회사 | 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
US10228862B2 (en) * | 2017-03-15 | 2019-03-12 | Western Digital Technologies, Inc. | Capacity-aware wear leveling in solid-state storage devices |
US10956317B2 (en) * | 2019-02-11 | 2021-03-23 | International Business Machines Corporation | Garbage collection in non-volatile memory that fully programs dependent layers in a target block |
JP7490469B2 (ja) * | 2020-06-25 | 2024-05-27 | キオクシア株式会社 | ストレージデバイス、ストレージシステム及び制御方法 |
-
2021
- 2021-03-19 US US17/206,147 patent/US20220300184A1/en active Pending
- 2021-09-07 TW TW110133145A patent/TWI797742B/zh active
-
2022
- 2022-02-22 CN CN202210160308.7A patent/CN115114180A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220300184A1 (en) | 2022-09-22 |
TWI797742B (zh) | 2023-04-01 |
CN115114180A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI597605B (zh) | 用於資料儲存裝置的損耗平均方法 | |
US11593259B2 (en) | Directed sanitization of memory | |
US9747202B1 (en) | Storage module and method for identifying hot and cold data | |
US20180373428A1 (en) | Methods and systems for managing data migration in solid state non-volatile memory | |
US8626996B2 (en) | Solid state memory (SSM), computer system including an SSM, and method of operating an SSM | |
TWI446345B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
US9665481B2 (en) | Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit | |
US11429284B2 (en) | Data categorization based on invalidation velocities | |
US10990325B2 (en) | Write control method, associated data storage device and controller thereof | |
TW201706847A (zh) | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201349099A (zh) | 資料儲存裝置和快閃記憶體之區塊管理方法 | |
TWI501243B (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
US20170046068A1 (en) | Memory management method, memory control circuit unit and memory storage device | |
TWI797742B (zh) | 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 | |
US20200073591A1 (en) | Flash memory controller and associated accessing method and electronic device | |
TWI437569B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
CN106445401B (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
TW202042068A (zh) | 資料儲存裝置與資料處理方法 | |
US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
US11403018B2 (en) | Method and apparatus for performing block management regarding non-volatile memory | |
CN112068782A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN106055488B (zh) | 数据储存设备及其操作方法 | |
TWI792534B (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
US20110087828A1 (en) | Method for enhancing performance of accessing a flash memory, and associated memory device and controller thereof | |
Li et al. | SSKIP: Lifetime Aware Page Skipping for Multi-Level Cell Flash-based Solid-State Drives |