TWI585770B - 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI585770B TWI585770B TW104126076A TW104126076A TWI585770B TW I585770 B TWI585770 B TW I585770B TW 104126076 A TW104126076 A TW 104126076A TW 104126076 A TW104126076 A TW 104126076A TW I585770 B TWI585770 B TW I585770B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- erasing unit
- physical
- physical erasing
- entity
- Prior art date
Links
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/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
- 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
-
- 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
- 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/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
- 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/7202—Allocation control and policies
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種用於可複寫式非揮發性記憶體模組的記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,因此,近年可複寫式非揮發性記憶體產業成為電子產業中相當熱門的一環。例如,以快閃記憶體作為儲存媒體的固態硬碟(Solid-state drive)已廣泛應用作為電腦主機的硬碟,以提升電腦的存取效能。
一般來說,包含可複寫式非揮發性記憶體模組的記憶體儲存裝置會透過執行垃圾收集(garbage collection)操作來釋放出可用的實體抹除單元,並且會盡可能平均地使用可複寫式非揮發性記憶體中的實體抹除單元以增加可複寫式非揮發性記憶體的壽命。例如,傳統垃圾收集操作是選擇實體抹除單元中其有效資料最少的一個實體抹除單元,並複製此些有效資料至另一個實體抹除單元以釋放出可用的實體抹除單元。傳統平均磨損(wear leveling)操作是在可複寫式非揮發性記憶體每執行一段固定的時間後或某個特定的時間點,將資料區中的實體抹除單元與閒置區中的實體抹除單元交換,以期讓在資料區中抹除次數較少的實體抹除單元可被交換至閒置區以供程式(或寫入)使用。
然而,傳統的垃圾收集操作與平均磨損操作並不會考慮到某一個實體抹除單元所儲存的資料是否會被經常性地更新。若一個實體抹除單元所儲存的資料會被經常性地更新,則即使在垃圾收集操作中將此實體抹除單元所儲存的有效資料搬移至另一實體抹除單元,此有效資料也可能會因再次被更新而隨即被視為無效。換言之,儲存有此有效資料的實體抹除單元很可能在資料更新時再次被關聯至閒置區,並且導致原先儲存此有效資料的實體抹除單元被抹除。因此,在下一次需執行平均磨損操作時,已再被關聯至閒置區的這個實體抹除單元因其抹除次數高於其他實體抹除單元,而再次被交換至資料區的機會將遠比其他實體抹除單元高出許多,由此造成可複寫式非揮發性記憶體中某些實體抹除單元的抹除次數不斷地提高,導致可複寫式非揮發性記憶體之實體抹除單元的使用不平均。
基此,如何選擇實體抹除單元來進行垃圾收集操作,以避免執行垃圾收集操作的同時所造成的平均磨損操作之執行頻率的增加,並使得每個實體抹除單元的使用較為平均,而有效延長可複寫式非揮發性記憶體的壽命是此領域技術人員所致力的目標。
本發明提供一種記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元,其能夠有效地平均實體抹除單元的磨損以延長記憶體儲存裝置的壽命。
本發明的一範例實施例提出一種記憶體管理方法,用於可複寫式非揮發性記憶體模組,且可複寫式非揮發性記憶體模組包括多個實體單元。本記憶體管理方法包括:(a)根據第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元;(b)根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元,其中所述第二參數不同於所述第一參數;以及(c)複製第二實體抹除單元中所儲存的至少部份資料至第三實體抹除單元。
在本發明的一範例實施例中,上述記憶體管理方法更包括:為每一至少部分的實體抹除單元記錄特定性質資料計數以及為每一至少部分的實體抹除單元記錄抹除次數與寫入順序標記的至少其中之一。
在本發明的一範例實施例中,上述記憶體管理方法更包括:判斷實體抹除單元中的可用實體抹除單元是否小於預定可用數目,其中倘若實體抹除單元中的可用實體抹除單元小於預定可用數目時,執行上述步驟(a)、(b)與(c)。
在本發明的一範例實施例中,上述第一參數包括寫入順序標記與特定性質資料計數且特定性質資料計數用以反應出無效資料量,第二參數為抹除次數。
在本發明的一範例實施例中,上述根據第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元的步驟包括:根據至少部分的實體抹除單元的程式化順序為每一至少部分的實體抹除單元記錄寫入順序標記;根據所述寫入順序標記將至少部分的實體抹除單元分為第一部分與第二部分;以及根據所述特定性質資料計數從第一部份及第二部分其中之一的實體抹除單元中選出所述至少一第一實體抹除單元。
在本發明的一範例實施例中,上述根據至少部分的實體抹除單元的程式化順序為每一至少部分的實體抹除單元記錄寫入順序標記的步驟包括:配置多個邏輯位址,其中所述邏輯位址映射所述至少部分的實體抹除單元;建立一佇列;將分配至所述邏輯位址之中的第一邏輯位址的第一資料程式化至實體抹除單元之中映射所述第一邏輯位址的實體抹除單元;在所述佇列中記錄映射所述第一邏輯位址的實體抹除單元;接續在將所述第一資料程式化至映射所述第一邏輯位址的實體抹除單元之後,將分配至所述邏輯位址之中的第二邏輯位址的第二資料程式化至實體抹除單元之中映射所述第二邏輯位址的實體抹除單元;以及在所述佇列中記錄映射所述第二邏輯位址的實體抹除單元。在此,上述佇列有第一端與第二端,且在第一端與所述第二端之間有多個位置。在上述佇列中,記錄映射所述第一邏輯位址的實體抹除單元的位置是接續在記錄映射所述第二邏輯位址的實體抹除單元的位置之後,並且記錄映射所述第一邏輯位址的實體抹除單元的位置與所述第一端之間的距離大於記錄映射所述第二邏輯位址的實體抹除單元的位置與所述第一端之間的距離。
在本發明的一範例實施例中,上述根據所述寫入順序標記將至少部分的實體抹除單元分為第一部分與第二部分的步驟包括:根據第一端與二端之間的中心端點將記錄於第二端與中心端點之間的位置的實體抹除單元分為屬於第一部分的實體抹除單元,並且將記錄於第一端與中心端點之間的位置的實體抹除單元分為屬於第二部分的實體抹除單元。
在本發明的一範例實施例中,上述根據所述特定性質資料計數從第一部份及第二部分其中之一的實體抹除單元中選出所述至少一第一實體抹除單元的步驟包括:判斷屬於第一部分的實體抹除單元中是否包含至少一第一候選實體抹除單元,其中至少一第一候選實體抹除單元的特定性質資料計數與一預定值符合一預定關係。倘若屬於所述第一部分的實體抹除單元之中包含所述至少一第一候選實體抹除單元時,則將所述第一部分的實體抹除單元之中的所述至少一第一候選實體抹除單元作為所述至少一第一實體抹除單元。倘若屬於所述第一部分的實體抹除單元中不包含所述至少一第一候選實體抹除單元時,則判斷屬於所述第二部分的實體抹除單元中是否包含至少一個第二候選實體抹除單元,其中所述至少一個第二候選實體抹除單元的特定性質資料計數與預定值符合所述預定關係。倘若屬於所述第二部分的實體抹除單元之中包含所述至少一第二候選實體抹除單元時,則將所述第二部分的實體抹除單元中的所述至少一第二候選實體抹除單元作為所述至少一第一實體抹除單元。
在本發明的一範例實施例中,上述根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的步驟包括:根據抹除次數從至少一第一實體抹除單元之中選擇第二實體抹除單元,其中第二實體抹除單元的抹除次數小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,上述每一實體抹除單元包括多個實體程式化單元,每一至少部分的實體抹除單元的特定性質資料計數指示每一至少部分的實體抹除單元的實體程式化單元之中儲存無效資料的實體程式化單元的數目,且預定關係為特定性質資料計數大於預定值。
在本發明的一範例實施例中,上述每一實體抹除單元包括多個實體程式化單元,每一至少部分的實體抹除單元的特定性質資料計數指示每一至少部分的實體抹除單元的實體程式化單元之中儲存有效資料的實體程式化單元的數目,且預定關係為特定性質資料計數小於預定值。
在本發明的一範例實施例中,上述記憶體管理方法更包括:將至少部分的實體抹除單元的數目除以可複寫式非揮發性記憶體模組的實體抹除單元的數目以獲得第一值;將實體抹除單元之中的一個實體抹除單元的實體程式化單元的數目乘以所述第一值以獲得第二值;將所述一個實體抹除單元的實體程式化單元的數目減去所述第二值以獲取第三值;以及將所述第三值設定為上述預定值。
在本發明的一範例實施例中,上述第一參數為特定性質資料計數且特定性質資料計數用以反應出無效資料量,第二參數為抹除次數與寫入順序標記的至少其中之一。
在本發明的一範例實施例中,上述根據第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元的步驟包括:判斷每一至少部分的實體抹除單元中的特定性質資料計數與一預定值是否符合一預定關係,並且從至少部分的實體抹除單元中選出符合預定關係的至少一第一實體抹除單元。
在本發明的一範例實施例中,上述第二參數為寫入順序標記,且上述根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的步驟包括:根據至少一第一實體抹除單元的一程式化順序為每一至少一第一實體抹除單元記錄寫入順序標記;以及根據寫入順序標記從至少一第一實體抹除單元之中選擇第二實體抹除單元,其中第二實體抹除單元的寫入順序標記指示第二實體抹除單元的程式化順序早於至少一第一實體抹除單元之中的其他實體抹除單元的程式化順序。
在本發明的一範例實施例中,上述第二參數包括寫入順序標記與抹除次數,且上述根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的步驟包括:根據至少一第一實體抹除單元的一程式化順序為每一至少一第一實體抹除單元記錄寫入順序標記;根據寫入順序標記從至少一第一實體抹除單元之中選擇至少一第三候選實體抹除單元,其中至少一第三候選實體抹除單元的寫入順序標記指示至少一第三候選實體抹除單元的程式化順序早於至少一第一實體抹除單元之中的其他實體抹除單元的程式化順序;以及根據抹除次數從至少一第三候選實體抹除單元之中選擇第二實體抹除單元,其中第二實體抹除單元的抹除次數小於至少一第三候選實體抹除單元之中的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,上述第二參數為抹除次數,上述根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的步驟包括:根據抹除次數從至少一第一實體抹除單元之中選擇第二實體抹除單元,其中第二實體抹除單元的抹除次數小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,上述第二參數包括抹除次數與寫入順序標記,且上述根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的步驟包括:根據抹除次數從至少一第一實體抹除單元之中選擇至少一第三候選實體抹除單元,其中至少一第三候選實體抹除單元的抹除次數小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數;根據至少一第三候選實體抹除單元的程式化順序為每一第三候選實體抹除單元記錄寫入順序標記;以及根據寫入順序標記從至少一第三候選實體抹除單元之中選擇第二實體抹除單元,其中第二實體抹除單元的寫入順序標記指示第二實體抹除單元的程式化順序早於至少一第三候選實體抹除單元之中的其他實體抹除單元的程式化順序。
在本發明的一範例實施例中,上述第一參數為抹除次數,第二參數為特定性質資料計數與寫入順序標記的至少其中之一且特定性質資料計數用以反應出無效資料量。
在本發明的一範例實施例中,上述根據第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元的步驟包括:根據抹除次數從至少部分的實體抹除單元之中選擇至少一第一實體抹除單元,其中至少一第一實體抹除單元的抹除次數小於至少部分的實體抹除單元之中的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,上述第二參數為特定性質資料計數,上述根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的步驟包括:判斷每一至少一第一實體抹除單元中的特定性質資料計數與一預定值是否符合一預定關係,並且從至少一第一實體抹除單元中選出符合預定關係的第二實體抹除單元,其中第二實體抹除單元的抹除次數小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,上述第二參數包括特定性質資料計數與寫入順序標記,上述根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的步驟包括:判斷每一至少一第一實體抹除單元中的特定性質資料計數與一預定值是否符合一預定關係,並且從至少一第一實體抹除單元中選出符合預定關係的至少一第三候選實體抹除單元,其中至少一第三候選實體抹除單元的抹除次數小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數;根據至少一第三候選實體抹除單元的一程式化順序為每一第三候選實體抹除單元記錄寫入順序標記;以及根據寫入順序標記從至少一第三候選實體抹除單元之中選擇第二實體抹除單元,其中第二實體抹除單元的寫入順序標記指示第二實體抹除單元的程式化順序早於至少一第三候選實體抹除單元之中的其他實體抹除單元的程式化順序。
本發明的一範例實施例提出一種用於控制可複寫式非揮發性記憶體模組的記憶體控制電路單元,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元。此記憶體控制電路單元包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統,記憶體介面用以耦接至可複寫式非揮發性記憶體模組,以及記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路用以執行一資料合併運作,所述資料合併運作包括:記憶體管理電路根據第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元。記憶體管理電路根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元,其中所述第二參數不同於所述第一參數。以及記憶體管理電路複製所述第二實體抹除單元中所儲存的至少部份資料至所述第三實體抹除單元。
在本發明的一範例實施例中,上述記憶體管理電路更用以為每一至少部分的實體抹除單元記錄特定性質資料計數以及為每一至少部分的實體抹除單元記錄抹除次數與寫入順序標記的至少其中之一。
在本發明的一範例實施例中,上述記憶體管理電路更用以判斷實體抹除單元中的可用實體抹除單元是否小於一預定可用數目,倘若實體抹除單元中的可用實體抹除單元小於預定可用數目時,記憶體管理電路更用以執行上述資料合併運作。
在本發明的一範例實施例中,上述第一參數包括寫入順序標記與特定性質資料計數且特定性質資料計數用以反應出無效資料量,第二參數為抹除次數。
在本發明的一範例實施例中,上述在根據所述第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元的操作中,記憶體管理電路更用以根據至少部分的實體抹除單元的程式化順序為每一至少部分的實體抹除單元記錄寫入順序標記,並且根據所述寫入順序標記將至少部分的實體抹除單元分為第一部分與第二部分。並且記憶體管理電路更用以根據所述特定性質資料計數從第一部份及第二部分其中之一的實體抹除單元中選出至少一第一實體抹除單元。
在本發明的一範例實施例中,上述在根據至少部分的實體抹除單元的程式化順序為每一至少部分的實體抹除單元記錄寫入順序標記的操作中,記憶體管理電路更用以配置多個邏輯位址,其中所述邏輯位址映射至少部分的實體抹除單元。記憶體管理電路更用以建立一佇列,並且將分配至所述邏輯位址之中的第一邏輯位址的第一資料程式化至所述實體抹除單元之中映射所述第一邏輯位址的實體抹除單元。記憶體管理電路更用以在所述佇列中記錄映射所述第一邏輯位址的實體抹除單元,並且接續在將所述第一資料程式化至映射所述第一邏輯位址的實體抹除單元之後,將分配至所述邏輯位址之中的第二邏輯位址的第二資料程式化至所述實體抹除單元之中映射所述第二邏輯位址的實體抹除單元。記憶體管理電路更用以在所述佇列中記錄映射所述第二邏輯位址的實體抹除單元,並且在所述佇列中記錄映射所述第二邏輯位址的實體抹除單元。其中所述佇列有第一端與第二端,且在所述第一端與所述第二端之間有多個位置。此外,在所述佇列中,記錄映射所述第一邏輯位址的實體抹除單元的位置是接續在記錄映射所述第二邏輯位址的實體抹除單元的位置之後,並且記錄映射所述第一邏輯位址的實體抹除單元的位置與所述第一端之間的距離大於記錄映射所述第二邏輯位址的實體抹除單元的位置與所述第一端之間的距離。
在本發明的一範例實施例中,上述在根據所述寫入順序標記將至少部分的實體抹除單元分為第一部分與第二部分的操作中,記憶體管理電路更用以根據第一端與二端之間的中心端點將記錄於第二端與中心端點之間的位置的實體抹除單元分為屬於第一部分的實體抹除單元,並且將記錄於第一端與中心端點之間的位置的實體抹除單元分為屬於第二部分的實體抹除單元。
在本發明的一範例實施例中,上述在根據所述特定性質資料計數從第一部份及第二部分其中之一的實體抹除單元中選出至少一第一實體抹除單元的操作中,記憶體管理電路更用以判斷屬於所述第一部分的實體抹除單元中是否包含至少一第一候選實體抹除單元,其中所述至少一第一候選實體抹除單元的特定性質資料計數與預定值符合所述預定關係。倘若屬於所述第一部分的實體抹除單元之中包含所述至少一第一候選實體抹除單元時,則記憶體管理電路更用以將所述第一部分的實體抹除單元之中的所述至少一第一候選實體抹除單元作為所述至少一第一實體抹除單元。倘若屬於所述第一部分的實體抹除單元中不包含所述至少一第一候選實體抹除單元時,則記憶體管理電路更用以判斷屬於所述第二部分的實體抹除單元中是否包含至少一個第二候選實體抹除單元,其中所述至少一個第二候選實體抹除單元的特定性質資料計數與預定值符合所述預定關係。倘若屬於所述第二部分的實體抹除單元之中包含所述至少一第二候選實體抹除單元時,則記憶體管理電路更用以將所述第二部分的實體抹除單元中的所述至少一第二候選實體抹除單元作為所述至少一第一實體抹除單元。
在本發明的一範例實施例中,上述在根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的操作中,記憶體管理電路更用以根據抹除次數從至少一第一實體抹除單元之中選擇第二實體抹除單元,其中第二實體抹除單元的抹除次數小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,上述每一實體抹除單元包括多個實體程式化單元,每一至少部分的實體抹除單元的特定性質資料計數指示每一至少部分的實體抹除單元的實體程式化單元之中儲存無效資料的實體程式化單元的數目,且預定關係為特定性質資料計數大於預定值。
在本發明的一範例實施例中,上述每一實體抹除單元包括多個實體程式化單元,每一至少部分的實體抹除單元的特定性質資料計數指示每一至少部分的實體抹除單元的實體程式化單元之中儲存有效資料的實體程式化單元的數目,且預定關係為特定性質資料計數小於預定值。
在本發明的一範例實施例中,上述記憶體管理電路更用以將至少部分的實體抹除單元的數目除以可複寫式非揮發性記憶體模組的實體抹除單元的數目以獲得第一值。記憶體管理電路更用以將實體抹除單元之中的一個實體抹除單元的實體程式化單元的數目乘以所述第一值以獲得第二值。記憶體管理電路更用將所述一個實體抹除單元的實體程式化單元的數目減去所述第二值以獲取第三值,並且將所述第三值設定為所述預定值。
本發明的一範例實施例提出一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體抹除單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。記憶體控制電路單元用以執行一資料合併運作,所述資料合併運作包括:根據第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元。記憶體控制電路單元根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元,其中所述第二參數不同於所述第一參數。以及記憶體控制電路單元複製所述第二實體抹除單元中所儲存的至少部份資料至所述第三實體抹除單元。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以為每一至少部分的實體抹除單元記錄特定性質資料計數以及為每一至少部分的實體抹除單元記錄抹除次數與寫入順序標記的至少其中之一。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以判斷實體抹除單元中的可用實體抹除單元是否小於一預定可用數目,倘若實體抹除單元中的可用實體抹除單元小於所述預定可用數目時,記憶體控制電路單元更用以執行上述資料合併運作。
在本發明的一範例實施例中,上述第一參數包括寫入順序標記與特定性質資料計數且特定性質資料計數用以反應出無效資料量,第二參數為抹除次數。
在本發明的一範例實施例中,上述在根據第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元的操作中,記憶體控制電路單元更用以根據至少部分的實體抹除單元的程式化順序為每一至少部分的實體抹除單元記錄寫入順序標記,並且根據所述寫入順序標記將至少部分的實體抹除單元分為第一部分與第二部分。記憶體控制電路單元更用以根據所述特定性質資料計數從第一部份及第二部分其中之一的實體抹除單元中選出所述至少一第一實體抹除單元。
在本發明的一範例實施例中,上述在根據至少部分的實體抹除單元的程式化順序為每一至少部分的實體抹除單元記錄寫入順序標記的操作中,記憶體控制電路單元更用以配置多個邏輯位址,其中所述邏輯位址映射所述至少部分的實體抹除單元。記憶體控制電路單元更用以建立一佇列,並且將分配至邏輯位址之中的第一邏輯位址的第一資料程式化至所述實體抹除單元之中映射所述第一邏輯位址的實體抹除單元。記憶體控制電路單元更用以在所述佇列中記錄映射所述第一邏輯位址的實體抹除單元,並且接續在將所述第一資料程式化至映射所述第一邏輯位址的實體抹除單元之後,將分配至所述邏輯位址之中的第二邏輯位址的第二資料程式化至所述實體抹除單元之中映射所述第二邏輯位址的實體抹除單元。記憶體控制電路單元更用以在所述佇列中記錄映射所述第二邏輯位址的實體抹除單元,並且在所述佇列中記錄映射所述第二邏輯位址的實體抹除單元。其中所述佇列有第一端與第二端,且在所述第一端與所述第二端之間有多個位置。此外,在所述佇列中,記錄映射所述第一邏輯位址的實體抹除單元的位置是接續在記錄映射所述第二邏輯位址的實體抹除單元的位置之後,並且記錄映射所述第一邏輯位址的實體抹除單元的位置與所述第一端之間的距離大於記錄映射所述第二邏輯位址的實體抹除單元的位置與所述第一端之間的距離。
在本發明的一範例實施例中,上述在根據寫入順序標記將至少部分的實體抹除單元分為第一部分與第二部分的操作中,記憶體控制電路單元更用以根據第一端與二端之間的中心端點將記錄於第二端與中心端點之間的位置的實體抹除單元分為屬於所述第一部分的實體抹除單元,並且將記錄於第一端與中心端點之間的位置的實體抹除單元分為屬於所述第二部分的實體抹除單元。
在本發明的一範例實施例中,上述在根據所述特定性質資料計數從第一部份及第二部分其中之一的實體抹除單元中選出所述至少一第一實體抹除單元的操作中,記憶體控制電路單元更用以判斷屬於所述第一部分的實體抹除單元中是否包含至少一第一候選實體抹除單元,其中所述至少一第一候選實體抹除單元的特定性質資料計數與一預定值符合一預定關係。倘若屬於所述第一部分的實體抹除單元之中包含所述至少一第一候選實體抹除單元時,則記憶體控制電路單元更用以將所述第一部分的實體抹除單元之中的所述至少一第一候選實體抹除單元作為所述至少一第一實體抹除單元。倘若屬於所述第一部分的實體抹除單元中不包含所述至少一第一候選實體抹除單元時,則記憶體控制電路單元更用以判斷屬於所述第二部分的實體抹除單元中是否包含至少一個第二候選實體抹除單元,其中所述至少一個第二候選實體抹除單元的特定性質資料計數與預定值符合所述預定關係。倘若屬於所述第二部分的實體抹除單元之中包含所述至少一第二候選實體抹除單元時,則記憶體控制電路單元更用以將所述第二部分的實體抹除單元中的所述至少一第二候選實體抹除單元作為所述至少一第一實體抹除單元。
在本發明的一範例實施例中,上述在根據第二參數從至少一第一實體抹除單元之中選擇第二實體抹除單元的操作中,記憶體控制電路單元更用以根據抹除次數從至少一第一實體抹除單元之中選擇第二實體抹除單元,其中第二實體抹除單元的抹除次數小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
在本發明的一範例實施例中,上述每一實體抹除單元包括多個實體程式化單元,每一至少部分的實體抹除單元的特定性質資料計數指示每一至少部分的實體抹除單元的實體程式化單元之中儲存無效資料的實體程式化單元的數目,且預定關係為特定性質資料計數大於預定值。
在本發明的一範例實施例中,上述每一實體抹除單元包括多個實體程式化單元,每一至少部分的實體抹除單元的特定性質資料計數指示每一至少部分的實體抹除單元的實體程式化單元之中儲存有效資料的實體程式化單元的數目,且預定關係為特定性質資料計數小於預定值。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以將至少部分的實體抹除單元的數目除以可複寫式非揮發性記憶體模組的實體抹除單元的數目以獲得第一值。記憶體控制電路單元更用以將實體抹除單元之中的一個實體抹除單元的實體程式化單元的數目乘以所述第一值以獲得第二值。記憶體控制電路單元更用以將所述一個實體抹除單元的實體程式化單元的數目減去所述第二值以獲取第三值,並且將所述第三值設定為所述預定值。
基於上述,上述範例實施例是藉由實體抹除單元的時間標記、特定性質資料計數以及抹除次數來選擇用以進行垃圾收集操作的實體抹除單元。如此一來,藉由使用儲存有長時間未更動之資料的實體抹除單元來進行垃圾收集操作,能有效地避免執行垃圾收集操作的同時所造成的平均磨損操作之執行頻率的增加。據此,上述範例實施例可平均實體抹除單元的抹除次數,以延長記憶體儲存裝置的使用壽命。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖,且圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
請參照圖1,主機系統11一般包括電腦12與輸入/輸出(input/output, I/O)裝置1106。電腦12包括微處理器122、隨機存取記憶體(random access memory, RAM) 124、系統匯流排126與資料傳輸介面128。輸入/輸出裝置13包括如圖2的滑鼠21、鍵盤22、顯示器23與印表機24。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可更包括其他裝置。
在本實施例中,記憶體儲存裝置10是透過資料傳輸介面128與主機系統11的其他元件電性連接。藉由微處理器122、隨機存取記憶體124與輸入/輸出裝置13的運作可將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。例如,記憶體儲存裝置10可以是如圖2所示的隨身碟25、記憶卡26或固態硬碟(Solid State Drive, SSD)27等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
一般而言,主機系統11為可實質地與記憶體儲存裝置10配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統11是以電腦系統來做說明,然而,在另一範例實施例中主機系統11可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為圖3中的數位相機(攝影機)31時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式儲存裝置36(如圖3所示)。嵌入式儲存裝置36包括嵌入式多媒體卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接於主機系統的基板上。
圖4是根據一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parellel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE) 1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express) 標準、通用序列匯流排(Universal Serial Bus, USB) 標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、安全數位(Secure Digital, SD)介面標準、記憶棒(Memory Stick, MS)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE) 標準或其他適合的標準。在本範例實施例中,連接介面單元可與記憶體控制電路單元封裝在一個晶片中,或佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元410(0)~ 410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組406為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
主機介面504是耦接至記憶體管理電路502並且用以耦接至連接介面單元402,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準 、UHS-II介面標準、SD標準 、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6A與圖6B是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6A,記憶體控制電路單元404(或記憶體管理電路502)會將實體抹除單元410(0)~410(N)邏輯地分組為資料區602、閒置區604、系統區606與取代區608。
邏輯上屬於資料區602與閒置區604的實體抹除單元是用以儲存來自於主機系統11的資料。具體來說,資料區602的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區604的實體抹除單元是用以替換資料區602的實體抹除單元。也就是說,當從主機系統11接收到寫入指令與欲寫入之資料時,記憶體管理電路502會從閒置區604中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區602的實體抹除單元。
邏輯上屬於系統區606的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區608中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區608中仍存有正常之實體抹除單元並且資料區602的實體抹除單元損壞時,記憶體管理電路502會從取代區608中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區602、閒置區604、系統區606與取代區608之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至資料區602、閒置區604、系統區606與取代區608的分組關係會動態地變動。例如,當閒置區604中的實體抹除單元損壞而被取代區608的實體抹除單元取代時,則原本取代區608的實體抹除單元會被關聯至閒置區604。
請參照圖6B,如上所述,資料區602與閒置區604的實體抹除單元是以輪替方式來儲存主機系統11所寫入之資料。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會配置邏輯位址610(0)~610(D)給主機系統11,以映射至資料區602中部份的實體抹除單元414(0)~410(F-1),以利於在以上述輪替方式來儲存資料之實體抹除單元中進行資料存取。特別是,主機系統11會透過邏輯位址610(0)~610(D)來存取資料區602中的資料。此外,記憶體控制電路單元404(或記憶體管理電路502)會建立邏輯位址-實體抹除單元映射表(logical address-physical erasing unit mapping table),以記錄邏輯位址與實體抹除單元之間的映射關係。此邏輯位址-實體抹除單元映射表還可以例如是記錄邏輯位址與實體程式化單元、邏輯程式化單元與實體程式化單元及/或邏輯程式化單元與實體抹除單元之間的映射關係等各種邏輯與實體的對應關係,本發明不加以限制。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)是依據多個參數來選擇進行垃圾收集操作的實體抹除單元。例如,記憶體控制電路單元404(或記憶體管理電路502)會先根據一個參數(亦稱為第一參數)從至少部分的實體抹除單元中選出至少一個實體抹除單元(亦稱為至少一第一實體抹除單元)。接著,記憶體控制電路單元404(或記憶體管理電路502)會根據另一個參數(亦稱為第二參數)從根據第一參數所選出的至少一第一實體抹除單元之中選出一個實體抹除單元(亦稱為第二實體抹除單元),其中第二參數不同於第一參數。之後,記憶體控制電路單元404(或記憶體管理電路502)會複製第二實體抹除單元中所儲存的至少部份資料至所提取的另一個實體抹除單元(亦稱為第三實體抹除單元),以釋放出可用的實體抹除單元。
具體而言,記憶體控制電路單元404(或記憶體管理電路502)會為每一實體抹除單元410(0)~410(N)記錄對應的特定性質資料計數,以及為每一實體抹除單元410(0)~410(N)記錄抹除次數與寫入順序標記的至少其中之一。舉例而言,記憶體控制電路單元404(或記憶體管理電路502)是依據資料區602中的實體抹除單元中的無效資料的數量,為資料區602的每一個實體抹除單元記錄一個特定性質資料計數,換言之,此特定性質資料計數可反應出無效資料量。例如,每一實體抹除單元的特定性質資料計數是指示資料區602的每一實體抹除單元的實體程式化單元之中儲存無效資料的實體程式化單元的數目。然而,本發明並不限於此。例如,在另一範例實施例中,此特定性質資料計數亦可以是指示資料區602的每一實體抹除單元的實體程式化單元之中儲存有效資料的實體程式化單元的數目。例如,特定性質資料計數可被記錄於一特定性質資料計數表中或者其所對應的實體抹除單元中。
此外,每一實體抹除單元410(0)~410(N)的抹除次數是有限的。例如,實體抹除單元在抹除一萬次之後就會損壞,並且當實體抹除單元磨損導致儲存容量之部分容量損失或性能明顯退化時,會造成使用者所儲存的資料遺失或無法儲存資料等不利影響。特別是,實體抹除單元的磨損是取決於每一實體抹除單元中被程式化或抹除的次數。也就是說,若一實體抹除單元僅被程式化(或者寫入)一次,爾後未被再次程式化或寫入時,此實體抹除單元的磨損程度將相對地低。反之,若一個實體抹除單元被重複地程式化與抹除時,則此實體抹除單元的磨損程度就會相對地高。例如,當可複寫式非揮發性記憶體模組406中的一個實體抹除單元被抹除時,記憶體控制電路單元404(或記憶體管理電路502)會將對應此實體抹除單元的抹除次數加1。類似地,抹除次數可被記錄於一抹除次數表中或者其所對應的實體抹除單元中。
在本發明範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)是依據上述為每一實體抹除單元所記錄的特定性質資料計數、抹除次數與寫入順序標記的至少其中之二來選擇進行垃圾收集操作的實體抹除單元。例如,在一範例實施例中,上述第一參數包括特寫入順序標記與定性質資料計數,而第二參數為抹除次數。在此例子中,記憶體控制電路單元404(或記憶體管理電路502)會根據資料區602的實體抹除單元410(0)~410(F-1)的程式化順序為資料區602的每一實體抹除單元410(0)~410(F-1)記錄寫入順序標記。在此,程式化順序指的是資料區602的實體抹除單元410(0)~410(F-1)被寫入資料的先後順序。例如,資料區602的每一實體抹除單元410(0)~410(F-1)的程式化順序,即代表每一實體抹除單元410(0)~410(F-1)中的資料的新舊程度。也就是說,越早被寫入資料的實體抹除單元中的寫入資料為較舊的資料,越晚被寫入資料的實體抹除單元中的寫入資料為較新的資料。在此例子中,記憶體控制電路單元404(或記憶體管理電路502)會建立一個佇列以依序地根據資料區602的實體抹除單元410(0)~410(F-1)的程式化順序記錄實體抹除單元410(0)~410(F-1)來表示資料區602的每一實體抹除單元的寫入順序標記。特別是,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會先根據此寫入順序標記將資料區602的實體抹除單元410(0)~410(F-1)分為第一部分與第二部分。
圖7是根據一範例實施例所繪示之用以記錄對應資料區的實體抹除單元之寫入順序標記的佇列示意圖。
請參照圖7,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)所建立的佇列700具有第一端702與第二端704,並且在第一端702與第二端704之間有多個位置A1~An。在此,第一端702為佇列700的頭端,而第二端704為佇列700的尾端。然而,必須了解的是,本發明不限於此,在另一範例實施例中,第一端702亦可以是佇列700的尾端,而第二端704亦可以是佇列700的頭端。佇列700可以表格的形式被儲存在緩衝記憶體508或隨機存取記憶體124中,並且於主機系統11關機時或記憶體儲存裝置10斷電時被更新至可複寫式非揮發性記憶體模組406中。
圖8A與圖8B是根據一範例實施例所繪示之為資料區的實體抹除單元配置寫入順序標記的示意圖。
請參照圖8A,倘若記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收到欲寫入資料(亦稱為第一資料)至邏輯位址610(1)(亦稱為第一邏輯單元)的操作指令序列時,記憶體控制電路單元404(或記憶體管理電路502)會將分配至第一邏輯位址610(1)的第一資料程式化至一個實體抹除單元(例如,實體抹除單元410(1)),將實體抹除單元410(1)映射至第一邏輯位址610(1)(即,將實體抹除單元410(1)關聯至資料區602),並且從佇列700的第一端702開始將映射此第一邏輯位址610(1)的實體抹除單元410(1)記錄於佇列700中的位置A1。值得注意的是,本發明並不限制記錄於佇列700之實體抹除單元的形式。舉例來說,記憶體控制電路單元404(或記憶體管理電路502)可在佇列700中記錄用以代表實體抹除單元410(1)的資訊,例如,圖8A中所示之佇列700中的「“410(1)”」可以是實體抹除單元410(1)的編號、識別值或是其所對應的邏輯位址。
請參照圖8B,在將第一資料程式化至映射第一邏輯位址610(1)的實體抹除單元410(1)之後,倘若記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收到欲寫入資料(亦稱為第二資料)至邏輯位址610(2)(亦稱為第二邏輯單元)的操作指令序列時,記憶體控制電路單元404(或記憶體管理電路502)會將分配至第二邏輯位址610(2)的第二資料程式化至一個實體抹除單元(例如,實體抹除單元410(2)),將實體抹除單元410(2)映射至第一邏輯位址610(2)(即,將實體抹除單元410(2)關聯至資料區602),並且在佇列700中記錄映射此第二邏輯位址610(2)的實體抹除單元410(2)。類似地,圖8B中所示之佇列700中的「“410(2)”」可以是實體抹除單元410(2)的編號、識別值或是其所對應的邏輯位址。
此時,如圖8B所示,在佇列700中記錄映射第一邏輯位址610(1)的實體抹除單元410(1)的位置A2是接續在記錄映射第二邏輯位址610(2)的實體抹除單元410(2)的位置A1之後。也就是說,記錄映射第一邏輯位址610(1)的實體抹除單元410(1)的位置A2與第一端702之間的距離大於記錄映射第二邏輯位址610(2)的實體抹除單元410(2)的位置A1與第一端702之間的距離。
圖9是根據一範例實施例所繪示之根據寫入順序標記將資料區的實體抹除單元分為第一部分與第二部分的示意圖。
請參照圖9,在本範例實施例中,假設目前佇列700的位置A1~An已由記憶體控制電路單元404(或記憶體管理電路502)依照各實體抹除單元的程式化順序記錄有依序被程式化的實體抹除單元的資訊,記憶體控制電路單元404(或記憶體管理電路502)會根據第一端702與第二端704之間的中心端點C將記錄於中心端點C與第二端704之間的位置A(+1)~An的實體抹除單元分為屬於第一部分P1的實體抹除單元,並且將記錄於第一端702與中心端點C之間的位置A1~A()的實體抹除單元分為屬於第二部分P2的實體抹除單元。值得一提的是,本發明並不加以限制將實體抹除單元分成第一部分與第二部分的方法,例如,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會將佇列700的位置A1~An分為三等分,並且將靠近第二端704的其中一份的位置中所記錄於的實體抹除單元分成第一部分,而其餘的兩份位置中所記錄於的實體抹除單元分成第二部分。換言之,在本範例實施例中,第一部分與第二部分在佇列700中分別所佔的比例可依照使用者的需求或記憶體儲存裝置10的執行性能而被調整與設定。
具體而言,對於被寫入可複寫式非揮發性記憶體模組406後就長時間未曾更動或甚至被設定成唯讀屬性的資料(以下將這類資料稱為冷資料(cold data)),儲存此類資料的實體抹除單元因資料鮮少更新或不能更新,因此其抹除次數會相對較低。由於在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)是從佇列700的第一端702開始記錄依序被程式化的實體抹除單元。也就是說,被記錄在佇列700中具有距離與第二端704越小且距離與第一端702越大之位置的實體抹除單元中的資料為較舊的且較少被更動的資料,而此些較舊的且較少被更動的資料為冷資料的可能性較大。因此,記憶體控制電路單元404(或記憶體管理電路502)會先從佇列700的第一部分P1中由第二端704開始依序選出所述至少一第一實體抹除單元來執行上述判斷特定性質資料計數的操作。倘若佇列700的第一部分P1中不具有其特定性質資料計數大於預定值的實體抹除單元,則記憶體控制電路單元404(或記憶體管理電路502)會再從佇列700的第二部分P2中由中心端點C開始依序選出所述至少一第一實體抹除單元。為了更清楚地描述本發明之根據寫入順序標記與特定性質資料計數選出至少一第一實體抹除單元的運作,以下將參照圖9與圖10以一範例來進行說明。
圖10是根據一範例實施例所繪示之根據寫入順序標記與特定性質資料計數選出至少一第一實體抹除單元的流程圖。
請同時參照圖9與圖10,在步驟S1001中,記憶體控制電路單元404(或記憶體管理電路502)會判斷屬於第一部分P1的實體抹除單元中是否包含至少一第一候選實體抹除單元,其中至少一第一候選實體抹除單元的特定性質資料計數與預定值會符合一預定關係。例如,記憶體控制電路單元404(或記憶體管理電路502)會先判斷屬於第一部分P1的實體抹除單元的特定性質資料計數與預定值的關係,並且根據此特定性質資料計數與預定值的關係從屬於第一部分P1的實體抹除單元中選出至少至少一第一實體抹除單元。在本發明範例實施例中,由於特定性質資料計數是指示資料區602的每一實體抹除單元的實體程式化單元之中儲存無效資料的實體程式化單元的數目,因此,記憶體控制電路單元404(或記憶體管理電路502)是將此些實體抹除單元之中其特定性質資料計數大於此預定值的實體抹除單元選作為上述至少一第一實體抹除單元。然而,在特定性質資料計數是用以指示資料區602的每一實體抹除單元的實體程式化單元之中儲存有效資料的實體程式化單元的數目的例子中,記憶體控制電路單元404(或記憶體管理電路502)是將實體抹除單元之中其特定性質資料計數小於此預定值的實體抹除單元選作為上述至少一第一實體抹除單元。
倘若屬於第一部分P1的實體抹除單元之中包含至少一第一候選實體抹除單元時,則在步驟S1003中,記憶體控制電路單元404(或記憶體管理電路502)會將第一部分P1的實體抹除單元之中的至少一第一候選實體抹除單元作為至少一第一實體抹除單元。反之,倘若屬於第一部分P1的實體抹除單元中不包含所述至少一第一候選實體抹除單元時,則在步驟S1005中,記憶體控制電路單元404(或記憶體管理電路502)會判斷屬第二部分P2的實體抹除單元中是否包含至少一第二候選實體抹除單元,其中第二候選實體抹除單元的特定性質資料計數與上述預定值符合所述預定關係。
舉例而言,假設在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)在步驟S1001中,判斷記錄於對應第一部分P1之位置A(+1)~An的實體抹除單元中不包含具有實體抹除單元的特定性質資料計數與預定值符合所述預定關係的至少一第一候選實體抹除單元。因此,記憶體控制電路單元404(或記憶體管理電路502)會在步驟S1005中,繼續判斷記錄於對應第二部分P2之位置A1~A()的實體抹除單元中是否包含實體抹除單元的特定性質資料計數與預定值符合所述預定關係的至少一第二候選實體抹除單元。在此,倘若記憶體控制電路單元404(或記憶體管理電路502)判斷記錄於對應第二部分P2之位置A1~A()中的實體抹除單元中包含具有實體抹除單元的特定性質資料計數與預定值符合所述預定關係的實體抹除單元為分別記錄於位置A()與位置A(-1)的實體抹除單元410(8)與實體抹除單元410(3),因此,實體抹除單元410(8)與實體抹除單元410(3)可視為至少一第二候選實體抹除單元。
由於在步驟S1005中,記憶體控制電路單元404(或記憶體管理電路502)判斷屬於第二部分P2的實體抹除單元之中包含至少一第二候選實體抹除單元,因此,記憶體控制電路單元404(或記憶體管理電路502)會接著在步驟S1007中,將第二部分P2的實體抹除單元中的至少一第二候選實體抹除單元(即,實體抹除單元410(8)與實體抹除單元410(3))作為至少一第一實體抹除單元。
值得一提的是,在本範例實施例中,在依據第一參數與第二參數來選擇進行垃圾收集操作的實體抹除單元之前,記憶體控制電路單元404(或記憶體管理電路502)會判斷實體抹除單元中的可用實體抹除單元是否小於一預定可用數目,並且在實體抹除單元中的可用實體抹除單元小於此預定可用數目時,才執行依據第一參數與第二參數選擇實體抹除單元以進行垃圾收集操作的運作。然而,本發明並不限於此。例如,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會每隔一固定的時間執行依據第一參數與第二參數選擇實體抹除單元以進行垃圾收集操作的運作。
此外,在本範例實施例中,上述預定值是根據資料區602的實體抹除單元的數目與可複寫式非揮發性記憶體模組406中所有實體抹除單元的數目的比率,以及一個實體抹除單元的實體程式化單元的數目計算所獲得的。例如,記憶體控制電路單元404(或記憶體管理電路502)會先將資料區602的實體抹除單元的數目除以可複寫式非揮發性記憶體模組406的實體抹除單元的數目以獲得第一值,並且將實體抹除單元之中的一個實體抹除單元的實體程式化單元的數目乘以此第一值以獲得第二值。例如,假設資料區602的實體抹除單元的數目為“956”,可複寫式非揮發性記憶體模組406中實際上所具有的實體抹除單元的數目為“988”,而一個實體抹除單元的實體程式化單元的數目為“256”,因此,經計算後所獲得的第一值為“0.967”(即,956/988=0.967),而第二值為“247”(即,0.967*256=247)。接著,記憶體控制電路單元404(或記憶體管理電路502)會將一個實體抹除單元的實體程式化單元的數目減去第二值以獲取第三值,並且將此第三值設定為預定值。例如,記憶體控制電路單元404(或記憶體管理電路502)是將一個實體抹除單元的實體程式化單元的數目“256”減去第二值“247”所得到的第三值“8”設為預定值。換言之,此預定值即代表在可複寫式非揮發性記憶體模組406之資料區602的實體抹除單元皆寫滿資料時,從資料區602中所任選的一個實體抹除單元中至少會有8個實體程式化單元儲存有無效資料。
特別是,由於在本範例實施例中,預定值即代表在可複寫式非揮發性記憶體模組406之資料區602的實體抹除單元皆寫滿資料時,從資料區602中所任選的一個實體抹除單元中至少會有大於或等於此預定值之數個實體程式化單元儲存有無效資料。換言之,在可複寫式非揮發性記憶體模組406之資料區602的實體抹除單元中一定會具有其特定性質資料計數大於此預定值的至少一實體抹除單元。因此,在步驟S1005中,若記憶體控制電路單元404(或記憶體管理電路502)判斷屬於第二部分P2的實體抹除單元中不包含其實體抹除單元的特定性質資料計數與上述預定值符合一預定關係的至少一第二候選實體抹除單元時,則記憶體控制電路單元404(或記憶體管理電路502)會將其視為判斷錯誤,而重新執行步驟S1001以再次確認屬於第一部分P1或第二部分P2的實體抹除單元中是否包含至少一第一候選實體抹除單元或至少一第二候選實體抹除單元。
之後,如上所述,記憶體控制電路單元404(或記憶體管理電路502)會將至少一第一實體抹除單元之中的具有最小抹除次數的實體抹除單元選為用以進行垃圾收集操作的第二實體抹除單元。並且,在執行垃圾收集操作時,記憶體控制電路單元404(或記憶體管理電路502)是從閒置區604的實體抹除單元中提取第三實體抹除單元,並且複製上述第二實體抹除單元中所儲存的有效資料至此第三實體抹除單元。本範例實施例中,藉由上述根據寫入順序標記與特定性質資料計數選擇實體抹除單元的操作以及對所選擇之實體抹除單元執行抹除次數判斷的運作,可以選到儲存有較舊且較少被更動的冷資料的實體抹除單元,且所選到之實體抹除單元具有較大的特定性質資料計數。如此一來,記憶體控制電路單元404(或記憶體管理電路502)不旦可以選取到實體抹除單元中其有效資料較少的一個實體抹除單元來執行垃圾收集操作,更可避免在垃圾收集操作中將一實體抹除單元中所儲存的有效資料搬移至另一實體抹除單元後,由於所述有效資料不斷被更新而導致的可複寫式非揮發性記憶體中某些實體抹除單元的抹除次數不斷地提高所造成的平均磨損操作之執行頻率的增加。
值得一提的是,在上述第一參數包括寫入順序標記與特定性質資料計數,且第二參數為抹除次數的範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)即是根據實體抹除單元的寫入順序標記、特定性質資料計數以及抹除次數來選擇用以進行垃圾收集操作的實體抹除單元。然而,本發明並不限於此,例如,在另一範例實施例中,第一參數可以是特定性質資料計數且第二參數為抹除次數與寫入順序標記的至少其中之一,例如,記憶體控制電路單元404(或記憶體管理電路502)可僅根據實體抹除單元的特定性質資料計數與寫入順序標記來選擇用以進行垃圾收集操作的實體抹除單元或者僅根據實體抹除單元的特定性質資料計數與抹除次數來選擇用以進行垃圾收集操作的實體抹除單元。
舉例而言,在第一參數為特定性質資料計數且第二參數為寫入順序標記的範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)可僅根據實體抹除單元的特定性質資料計數與寫入順序標記來選擇用以進行垃圾收集操作的實體抹除單元。例如,記憶體控制電路單元404(或記憶體管理電路502)會先判斷資料區602的實體抹除單元中是否包含其實體抹除單元的特定性質資料計數與預定值符合預定關係的至少一實體抹除單元,並選出符合所述預定關係的至少一第一實體抹除單元。接著,記憶體控制電路單元404(或記憶體管理電路502)會根據此些至少一第一實體抹除單元的程式化順序將其排列並為至少一第一實體抹除單元記錄寫入順序標記,例如,配置寫入順序標記的方法是相同於圖8A與圖8B所述的方法,在此不再重述。之後,記憶體控制電路單元404(或記憶體管理電路502)即可根據寫入順序標記選擇一最早被寫入資料並且儲存有較舊且較少被更動的資料的實體抹除單元作為進行垃圾收集操作的第二實體抹除單元。而在第一參數為特定性質資料計數且第二參數包括寫入順序標記與抹除次數的範例實施例中,類似地,記憶體控制電路單元404(或記憶體管理電路502)會選出實體抹除單元中其實體抹除單元的特定性質資料計數與預定值符合預定關係的至少一實體抹除單元。並且,記憶體控制電路單元404(或記憶體管理電路502)會根據此些至少一第一實體抹除單元的程式化順序將其排列並為至少一第一實體抹除單元記錄寫入順序標記。接著,記憶體控制電路單元404(或記憶體管理電路502)會根據寫入順序標記從至少一第一實體抹除單元之中選擇至少一實體抹除單元(亦稱為至少一第三候選實體抹除單元),例如,此些至少一第三候選實體抹除單元的寫入順序早於至少一第一實體抹除單元之中的其他實體抹除單元的程式化順序。之後,記憶體控制電路單元404(或記憶體管理電路502)會將至少一第三候選實體抹除單元之中具有最小抹除次數的實體抹除單元選作為第二實體抹除單元,即,第二實體抹除單元的抹除次數小於此至少一第三候選實體抹除單元之中的其他實體抹除單元的抹除次數。
此外,在第一參數為特定性質資料計數且第二參數為抹除次數的範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)並不會執行上述對應圖10之根據寫入順序標記與特定性質資料計數選出至少一第一實體抹除單元的步驟,而是直接判斷資料區602的實體抹除單元中是否包含其實體抹除單元的特定性質資料計數與預定值符合預定關係的至少一實體抹除單元,並選出符合此預定關係的的至少一第一實體抹除單元。接著,記憶體控制電路單元404(或記憶體管理電路502)會在至少一第一實體抹除單元之中選擇一個具有最小抹除次數的實體抹除單元作為進行垃圾收集操作的第二實體抹除單元。而在第一參數為特定性質資料計數且第二參數包括抹除次數與寫入順序標記的範例實施例中,在記憶體控制電路單元404(或記憶體管理電路502)選出實體抹除單元中其實體抹除單元的特定性質資料計數與預定值符合預定關係的至少一第一實體抹除單元後,記憶體控制電路單元404(或記憶體管理電路502)會在至少一第一實體抹除單元之中選擇具有抹除次數小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數的至少一第三候選實體抹除單元。接著,記憶體控制電路單元404(或記憶體管理電路502)根據此些至少一第三候選實體抹除單元的程式化順序將其排列並為至少一第三候選實體抹除單元記錄寫入順序標記。之後,記憶體控制電路單元404(或記憶體管理電路502)會根據寫入順序標記從至少一第三候選實體抹除單元之中選擇一個其寫入順序最早的第二實體抹除單元,換言之,第二實體抹除單元的寫入順序標記會指示第二實體抹除單元的程式化順序早於至少一第三候選實體抹除單元之中的其他實體抹除單元的程式化順序。
在又一範例實施例中,上述第一參數亦可以是抹除次數,而第二參數為特定性質資料計數與寫入順序標記的至少其中之一,例如,在第一參數為抹除次數且第二參數為特定性質資料計數的例子中,記憶體控制電路單元404(或記憶體管理電路502)會先在至少部分的實體抹除單元之中選擇具有抹除次數小於至少部分的實體抹除單元之中的其他實體抹除單元的抹除次數的至少一第一實體抹除單元,再從至少一第一實體抹除單元中選出符合預定關係的一個第二實體抹除單元。例如,所選出的第二實體抹除單元的抹除次數會小於至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。而在第一參數為抹除次數且第二參數為特定性質資料計數與寫入順序標記的例子中,在記憶體控制電路單元404(或記憶體管理電路502)從至少部分的實體抹除單元之中選擇具有抹除次數小於至少部分的實體抹除單元之中的其他實體抹除單元的抹除次數的至少一第一實體抹除單元後,記憶體控制電路單元404(或記憶體管理電路502)會先選出至少一第一實體抹除單元中其實體抹除單元的特定性質資料計數與預定值符合預定關係的至少一第三候選實體抹除單元,並且根據此些至少一第三候選實體抹除單元的程式化順序將其排列並為至少一第三候選實體抹除單元記錄寫入順序標記。之後,類似地,記憶體控制電路單元404(或記憶體管理電路502)會根據寫入順序標記從至少一第三候選實體抹除單元之中選擇一個其寫入順序最早的第二實體抹除單元。
圖11是根據一範例實施例所繪示之記憶體管理方法的流程圖。
請參照圖11,在步驟S1101中,記憶體控制電路單元404(或記憶體管理電路502)會根據第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元。在步驟S1103中,記憶體控制電路單元404(或記憶體管理電路502)會根據第二參數從所述至少一第一實體抹除單元之中選擇一第二實體抹除單元。
接著,在步驟S1105中,記憶體控制電路單元404(或記憶體管理電路502)會複製第二實體抹除單元中所儲存的至少部份資料至第三實體抹除單元。
特別是,如上所述,在本範例實施例中,圖11所示之步驟S1001、S1003與S1005是在記憶體控制電路單元404(或記憶體管理電路502)判斷實體抹除單元中的可用實體抹除單元小於一預定可用數目時而被執行,然而,本發明並不限於此。例如,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會每隔一固定的時間執行圖11所示之步驟S1001、S1003與S1005。此外,圖11中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖11中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。此外,圖11的方法可以搭配以上實施例使用,也可以單獨使用,本發明並不在此限。
綜上所述,本發明的記憶體管理方法會以具有特定性質資料計數大於預定值且儲存有較長時間未更動之資料的實體抹除單元做為進行垃圾收集操作的實體抹除單元,由於此實體抹除單元具有較大的特定性質資料計數與較小的抹除次數,且儲存有較長時間未更動之資料,基此,可減少執行垃圾收集操作後所造成的平均磨損操作之執行頻率的增加並且可有效地避免可複寫式非揮發性記憶體中某些實體抹除單元的抹除次數不斷地提高。如此一來,實體抹除單元的磨損程度更為平均且延長了記憶體儲存系統的壽命。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧電腦
13‧‧‧輸入/輸出裝置
122‧‧‧微處理器
124‧‧‧隨機存取記憶體(RAM)
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
610(0)~610(D)‧‧‧邏輯位址
11‧‧‧主機系統
12‧‧‧電腦
13‧‧‧輸入/輸出裝置
122‧‧‧微處理器
124‧‧‧隨機存取記憶體(RAM)
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
610(0)~610(D)‧‧‧邏輯位址
700‧‧‧佇列
702‧‧‧第一端
704‧‧‧第二端
A1~An‧‧‧位置
C‧‧‧中心端點
P1‧‧‧第一部分
P2‧‧‧第二部分
S1001、S1003、S1005、S1007‧‧‧根據寫入順序標記與特定性質資料計數選出至少一第一實體抹除單元的步驟
S1101、S1103、S1105‧‧‧記憶體管理方法的步驟
圖1 是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖2 是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。 圖3 是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4 是根據一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5 是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。 圖6A 與圖6B 是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。 圖7 是根據一範例實施例所繪示之用以記錄對應資料區的實體抹除單元之寫入順序標記的佇列示意圖。 圖8A 與圖8B 是根據一範例實施例所繪示之為資料區的實體抹除單元配置寫入順序標記的示意圖。 圖9 是根據一範例實施例所繪示之根據寫入順序標記將資料區的實體抹除單元分為第一部分與第二部分的示意圖。 圖10 是根據一範例實施例所繪示之根據寫入順序標記與特定性質資料計數選出至少一第一實體抹除單元的流程圖。 圖11 是根據一範例實施例所繪示之記憶體管理方法的流程圖。
S1101、S1103、S1105‧‧‧記憶體管理方法的步驟
Claims (43)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,該記憶體管理方法包括:(a)根據一第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元;(b)根據一第二參數從該至少一第一實體抹除單元之中選擇一第二實體抹除單元,其中該第二參數不同於該第一參數;以及(c)複製該第二實體抹除單元中所儲存的至少部份資料至一第三實體抹除單元;(d)為每一該至少部分的實體抹除單元記錄一特定性質資料計數,其中該特定性質資料計數用以反應出無效資料量;以及(e)為每一該至少部分的實體抹除單元記錄一抹除次數與一寫入順序標記的至少其中之一,其中該第一參數與該第二參數分別為該特定性質參數、該抹除次數與該寫入順序標記的其中之一。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括:判斷該些實體抹除單元中的可用實體抹除單元是否小於一預定可用數目,其中倘若該些實體抹除單元中的可用實體抹除單元小於該預定可用數目時,執行上述步驟(a)、(b)與(c)。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一參數包括該寫入順序標記與該特定性質資料計數且該第二參數為該抹除次數。
- 如申請專利範圍第3項所述的記憶體管理方法,其中根據該第一參數從該至少部分的實體抹除單元中選出該至少一第一實體抹除單元的步驟包括:根據該至少部分的實體抹除單元的一程式化順序為每一該至少部分的實體抹除單元記錄該寫入順序標記;根據該寫入順序標記將該至少部分的實體抹除單元分為一第一部分與一第二部分;以及根據該特定性質資料計數從該第一部份及該第二部分其中之一的實體抹除單元中選出該至少一第一實體抹除單元。
- 如申請專利範圍第4項所述的記憶體管理方法,其中上述根據該至少部分的實體抹除單元的該程式化順序為該每一該至少部分的實體抹除單元記錄該寫入順序標記的步驟包括:配置多個邏輯位址,其中該些邏輯位址映射該至少部分的實體抹除單元;建立一佇列;將分配至該些邏輯位址之中的一第一邏輯位址的一第一資料程式化至該些實體抹除單元之中映射該第一邏輯位址的實體抹除單元;在該佇列中記錄映射該第一邏輯位址的實體抹除單元; 接續在將該第一資料程式化至映射該第一邏輯位址的實體抹除單元之後,將分配至該些邏輯位址之中的一第二邏輯位址的一第二資料程式化至該些實體抹除單元之中映射該第二邏輯位址的實體抹除單元;以及在該佇列中記錄映射該第二邏輯位址的實體抹除單元,其中該佇列有一第一端與一第二端,且在該第一端與該第二端之間有多個位置,其中在該佇列中記錄映射該第一邏輯位址的實體抹除單元的位置是接續在記錄映射該第二邏輯位址的實體抹除單元的位置之後,並且記錄映射該第一邏輯位址的實體抹除單元的位置與該第一端之間的距離大於記錄映射該第二邏輯位址的實體抹除單元的位置與該第一端之間的距離。
- 如申請專利範圍第5項所述的記憶體管理方法,其中上述根據該寫入順序標記將該至少部分的實體抹除單元分為該第一部分與該第二部分的步驟包括:根據該第一端與該第二端之間的一中心端點將記錄於該第二端與該中心端點之間的位置的實體抹除單元分為屬於該第一部分的實體抹除單元,並且將記錄於該第一端與該中心端點之間的位置的實體抹除單元分為屬於該第二部分的實體抹除單元。
- 如申請專利範圍第4項所述的記憶體管理方法,其中根據該特定性質資料計數從該第一部份及該第二部分其中之一的實體抹除單元中選出該至少一第一實體抹除單元的步驟包括: 判斷屬於該第一部分的該些實體抹除單元中是否包含至少一第一候選實體抹除單元,其中該至少一第一候選實體抹除單元的特定性質資料計數與一預定值符合一預定關係;倘若屬於該第一部分的該些實體抹除單元之中包含該至少一第一候選實體抹除單元時,則將該第一部分的該些實體抹除單元之中的該至少一第一候選實體抹除單元作為該至少一第一實體抹除單元;倘若屬於該第一部分的該些實體抹除單元中不包含該至少一第一候選實體抹除單元時,則判斷屬於該第二部分的該些實體抹除單元中是否包含至少一個第二候選實體抹除單元,其中該至少一個第二候選實體抹除單元的特定性質資料計數與該預定值符合該預定關係;倘若屬於該第二部分的該些實體抹除單元之中包含該至少一第二候選實體抹除單元時,則將該第二部分的該些實體抹除單元中的該至少一第二候選實體抹除單元作為該至少一第一實體抹除單元。
- 如申請專利範圍第7項所述的記憶體管理方法,其中根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的步驟包括:根據該抹除次數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元,其中該第二實體抹除單元的抹除次數小於該至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
- 如申請專利範圍第7項所述的記憶體管理方法,其中每一該些實體抹除單元包括多個實體程式化單元,每一該至少部分的實體抹除單元的特定性質資料計數指示每一該至少部分的實體抹除單元的實體程式化單元之中儲存無效資料的實體程式化單元的數目,且該預定關係為該特定性質資料計數大於該預定值。
- 如申請專利範圍第7項所述的記憶體管理方法,其中每一該些實體抹除單元包括多個實體程式化單元,每一該至少部分的實體抹除單元的特定性質資料計數指示每一該至少部分的實體抹除單元的實體程式化單元之中儲存有效資料的實體程式化單元的數目,且該預定關係為該特定性質資料計數小於該預定值。
- 如申請專利範圍第9項所述的記憶體管理方法,更包括:將該至少部分的該些實體抹除單元的數目除以該可複寫式非揮發性記憶體模組的該些實體抹除單元的數目以獲得一第一值;將該些實體抹除單元之中的一個實體抹除單元的實體程式化單元的數目乘以該第一值以獲得一第二值;將該一個實體抹除單元的實體程式化單元的數目減去該第二值以獲取一第三值;以及將該第三值設定為該預定值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一參數為該特定性質資料計數且該第二參數為該抹除次數與該寫入順序標記的至少其中之一。
- 如申請專利範圍第12項所述的記憶體管理方法,其中根據該第一參數從該至少部分的實體抹除單元中選出該至少一第一實體抹除單元的步驟包括:判斷每一該至少部分的實體抹除單元中的該特定性質資料計數與一預定值是否符合一預定關係,並且從該至少部分的實體抹除單元中選出符合該預定關係的該至少一第一實體抹除單元。
- 如申請專利範圍第13項所述的記憶體管理方法,其中該第二參數為該寫入順序標記,上述根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的步驟包括:根據該至少一第一實體抹除單元的一程式化順序為每一該至少一第一實體抹除單元記錄該寫入順序標記;以及根據該寫入順序標記從該至少一第一實體抹除單元之中選擇該第二實體抹除單元,其中該第二實體抹除單元的該寫入順序標記指示該第二實體抹除單元的該程式化順序早於該至少一第一實體抹除單元之中的其他實體抹除單元的該程式化順序。
- 如申請專利範圍第13項所述的記憶體管理方法,其中該第二參數包括該寫入順序標記與該抹除次數,上述根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的步驟包括:根據該至少一第一實體抹除單元的一程式化順序為每一該至少一第一實體抹除單元記錄該寫入順序標記;根據該寫入順序標記從該至少一第一實體抹除單元之中選擇 至少一第三候選實體抹除單元,其中該至少一第三候選實體抹除單元的該寫入順序標記指示該至少一第三候選實體抹除單元的該程式化順序早於該至少一第一實體抹除單元之中的其他實體抹除單元的該程式化順序;以及根據該抹除次數從該至少一第三候選實體抹除單元之中選擇該第二實體抹除單元,其中該第二實體抹除單元的抹除次數小於該至少一第三候選實體抹除單元之中的其他實體抹除單元的抹除次數。
- 如申請專利範圍第13項所述的記憶體管理方法,其中該第二參數為該抹除次數,上述根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的步驟包括:根據該抹除次數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元,其中該第二實體抹除單元的抹除次數小於該至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
- 如申請專利範圍第13項所述的記憶體管理方法,其中該第二參數包括該抹除次數與該寫入順序標記,上述根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的步驟包括:根據該抹除次數從該至少一第一實體抹除單元之中選擇至少一第三候選實體抹除單元,其中該至少一第三候選實體抹除單元的抹除次數小於該至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數; 根據該至少一第三候選實體抹除單元的一程式化順序為每一該第三候選實體抹除單元記錄該寫入順序標記;以及根據該寫入順序標記從該至少一第三候選實體抹除單元之中選擇該第二實體抹除單元,其中該第二實體抹除單元的該寫入順序標記指示該第二實體抹除單元的該程式化順序早於該至少一第三候選實體抹除單元之中的其他實體抹除單元的該程式化順序。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一參數為該抹除次數,且該第二參數為該特定性質資料計數與該寫入順序標記的至少其中之一。
- 如申請專利範圍第18項所述的記憶體管理方法,其中上述根據該第一參數從該至少部分的實體抹除單元中選出該至少一第一實體抹除單元的步驟包括:根據該抹除次數從該至少部分的實體抹除單元之中選擇該至少一第一實體抹除單元,其中該至少一第一實體抹除單元的抹除次數小於該至少部分的實體抹除單元之中的其他實體抹除單元的抹除次數。
- 如申請專利範圍第19項所述的記憶體管理方法,其中該第二參數為該特定性質資料計數,上述根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的步驟包括:判斷每一該至少一第一實體抹除單元中的該特定性質資料計數與一預定值是否符合一預定關係,並且從該至少一第一實體抹 除單元中選出符合該預定關係的該第二實體抹除單元,其中該第二實體抹除單元的抹除次數小於該至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
- 如申請專利範圍第19項所述的記憶體管理方法,其中該第二參數包括該特定性質資料計數與該寫入順序標記,上述根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的步驟包括:判斷每一該至少一第一實體抹除單元中的該特定性質資料計數與一預定值是否符合一預定關係,並且從該至少一第一實體抹除單元中選出符合該預定關係的至少一第三候選實體抹除單元,其中該至少一第三候選實體抹除單元的抹除次數小於該至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數;根據該至少一第三候選實體抹除單元的一程式化順序為每一該第三候選實體抹除單元記錄該寫入順序標記;以及根據該寫入順序標記從該至少一第三候選實體抹除單元之中選擇該第二實體抹除單元,其中該第二實體抹除單元的該寫入順序標記指示該第二實體抹除單元的該程式化順序早於該至少一第三候選實體抹除單元之中的其他實體抹除單元的該程式化順序。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以為每一該至少部分的實體抹除單元記錄一特定性質資料計數,並且為每一該至少部分的實體抹除單元記錄一抹除次數與一寫入順序標記的至少其中之一,其中該特定性質資料計數用以反應出無效資料量,其中該記憶體管理電路更用以執行一資料合併運作,該資料合併運作包括:該記憶體管理電路根據一第一參數從至少部分的實體抹除單元中選出至少一第一實體抹除單元;該記憶體管理電路根據一第二參數從該至少一第一實體抹除單元之中選擇一第二實體抹除單元,其中該第二參數不同於該第一參數;以及該記憶體管理電路複製該第二實體抹除單元中所儲存的至少部份資料至一第三實體抹除單元,其中該第一參數與該第二參數分別為該特定性質參數、該抹除次數與該寫入順序標記的其中之一。
- 如申請專利範圍第22項所述的記憶體控制電路單元,其中該記憶體管理電路更用以判斷該些實體抹除單元中的可用實體抹除單元是否小於一預定可用數目,其中倘若該些實體抹除單元中的可用實體抹除單元小於該預 定可用數目時,該記憶體管理電路更用以執行上述該資料合併運作。
- 如申請專利範圍第22項所述的記憶體控制電路單元,其中該第一參數包括該寫入順序標記與該特定性質資料計數且該第二參數為該抹除次數。
- 如申請專利範圍第24項所述的記憶體控制電路單元,其中在根據該第一參數從該至少部分的實體抹除單元中選出該至少一第一實體抹除單元的操作中,該記憶體管理電路更用以根據該至少部分的實體抹除單元的一程式化順序為每一該至少部分的實體抹除單元記錄該寫入順序標記,其中該記憶體管理電路更用以根據該寫入順序標記將該至少部分的實體抹除單元分為一第一部分與一第二部分,其中該記憶體管理電路更用以根據該特定性質資料計數從該第一部份及該第二部分其中之一的實體抹除單元中選出該至少一第一實體抹除單元。
- 如申請專利範圍第25項所述的記憶體控制電路單元,其中在根據至少部分的實體抹除單元的該程式化順序為每一該至少部分的實體抹除單元記錄該寫入順序標記的操作中,該記憶體管理電路更用以配置多個邏輯位址,且該些邏輯位址映射該至少部分的實體抹除單元,其中該記憶體管理電路更用以建立一佇列,其中該記憶體管理電路更用以將分配至該些邏輯位址之中的 一第一邏輯位址的一第一資料程式化至該些實體抹除單元之中映射該第一邏輯位址的實體抹除單元,其中該記憶體管理電路更用以在該佇列中記錄映射該第一邏輯位址的實體抹除單元,其中該記憶體管理電路更用以接續在將該第一資料程式化至映射該第一邏輯位址的實體抹除單元之後,將分配至該些邏輯位址之中的一第二邏輯位址的一第二資料程式化至該些實體抹除單元之中映射該第二邏輯位址的實體抹除單元,其中該記憶體管理電路更用以在該佇列中記錄映射該第二邏輯位址的實體抹除單元,其中該佇列有一第一端與一第二端,且在該第一端與該第二端之間有多個位置,其中在該佇列中記錄映射該第一邏輯位址的實體抹除單元的位置是接續在記錄映射該第二邏輯位址的實體抹除單元的位置之後,並且記錄映射該第一邏輯位址的實體抹除單元的位置與該第一端之間的距離大於記錄映射該第二邏輯位址的實體抹除單元的位置與該第一端之間的距離。
- 如申請專利範圍第26項所述的記憶體控制電路單元,其中在根據該寫入順序標記將該至少部分的實體抹除單元分為該第一部分與該第二部分的操作中,該記憶體管理電路更用以根據該第一端與該二端之間的一中心端點將記錄於該第二端與該中心端點之間的位置的實體抹除單元分為屬於該第一部分的實體抹除 單元,並且將記錄於該第一端與該中心端點之間的位置的實體抹除單元分為屬於該第二部分的實體抹除單元。
- 如申請專利範圍第25項所述的記憶體控制電路單元,其中在根據該特定性質資料計數從該第一部份及該第二部分其中之一的實體抹除單元中選出該至少一第一實體抹除單元的操作中,該記憶體管理電路更用以判斷屬於該第一部分的該些實體抹除單元中是否包含至少一第一候選實體抹除單元,其中該至少一第一候選實體抹除單元的特定性質資料計數與一預定值符合一預定關係,其中倘若屬於該第一部分的該些實體抹除單元之中包含該至少一第一候選實體抹除單元時,則該記憶體管理電路更用以將該第一部分的該些實體抹除單元之中的該至少一第一候選實體抹除單元作為該至少一第一實體抹除單元,其中倘若屬於該第一部分的該些實體抹除單元中不包含該至少一第一候選實體抹除單元時,則該記憶體管理電路更用以判斷屬於該第二部分的該些實體抹除單元中是否包含至少一個第二候選實體抹除單元,其中該至少一個第二候選實體抹除單元的特定性質資料計數與該預定值符合該預定關係,其中倘若屬於該第二部分的該些實體抹除單元之中包含該至少一第二候選實體抹除單元時,則該記憶體管理電路更用以將該第二部分的該些實體抹除單元中的該至少一第二候選實體抹除單元作為該至少一第一實體抹除單元。
- 如申請專利範圍第28項所述的記憶體控制電路單元,其中在根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的操作中,該記憶體管理電路更用以根據該抹除次數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元,其中該第二實體抹除單元的抹除次數小於該至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
- 如申請專利範圍第28項所述的記憶體控制電路單元,其中每一該些實體抹除單元包括多個實體程式化單元,每一該至少部分的實體抹除單元的特定性質資料計數指示每一該至少部分的實體抹除單元的實體程式化單元之中儲存無效資料的實體程式化單元的數目,且該預定關係為該特定性質資料計數大於該預定值。
- 如申請專利範圍第28項所述的記憶體控制電路單元,其中每一該些實體抹除單元包括多個實體程式化單元,每一該至少部分的實體抹除單元的特定性質資料計數指示每一該至少部分的實體抹除單元的實體程式化單元之中儲存有效資料的實體程式化單元的數目,且該預定關係為該特定性質資料計數小於該預定值。
- 如申請專利範圍第30項所述的記憶體控制電路單元,其中該記憶體管理電路更用以將該至少部分的實體抹除單元的數目除以該可複寫式非揮發性記憶體模組的該些實體抹除單元的數目以獲得一第一值, 其中該記憶體管理電路更用以將該些實體抹除單元之中的一個實體抹除單元的實體程式化單元的數目乘以該第一值以獲得一第二值,其中該記憶體管理電路更用以將該一個實體抹除單元的實體程式化單元的數目減去該第二值以獲取一第三值,並且將該第三值設定為該預定值。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以為每一該至少部分的實體抹除單元記錄一特定性質資料計數,並且為每一該至少部分的實體抹除單元記錄一抹除次數與一寫入順序標記的至少其中之一,其中該特定性質資料計數用以反應出無效資料量,其中該記憶體控制電路單元更用以執行一資料合併運作,該資料合併運作包括:該記憶體控制電路單元根據一第一參數從該至少部分的實體抹除單元中選出至少一第一實體抹除單元;其中該記憶體控制電路單元根據一第二參數從該至少一第一實體抹除單元之中選擇一第二實體抹除單元,其中該第二參數不 同於該第一參數;以及其中該記憶體控制電路單元複製該第二實體抹除單元中所儲存的至少部份資料至一第三實體抹除單元,其中該第一參數與該第二參數分別為該特定性質參數、該抹除次數與該寫入順序標記的其中之一。
- 如申請專利範圍第33項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以判斷該些實體抹除單元中的可用實體抹除單元是否小於一預定可用數目,其中倘若該些實體抹除單元中的可用實體抹除單元小於該預定可用數目時,該記憶體控制電路單元更用以執行上述該資料合併運作。
- 如申請專利範圍第33項所述的記憶體儲存裝置,其中該第一參數包括該寫入順序標記與該特定性質資料計數且該第二參數為該抹除次數。
- 如申請專利範圍第35項所述的記憶體儲存裝置,其中在根據該第一參數從該至少部分的實體抹除單元中選出該至少一第一實體抹除單元的操作中,該記憶體控制電路單元更用以根據該至少部分的實體抹除單元的一程式化順序為每一該至少部分的實體抹除單元記錄該寫入順序標記,其中該記憶體控制電路單元更用以根據該寫入順序標記將該至少部分的實體抹除單元分為一第一部分與一第二部分,其中該記憶體控制電路單元更用以根據該特定性質資料計數 從該第一部份及該第二部分其中之一的實體抹除單元中選出該至少一第一實體抹除單元。
- 如申請專利範圍第36項所述的記憶體儲存裝置,其中在根據至少部分的實體抹除單元的該程式化順序為每一該至少部分的實體抹除單元記錄該寫入順序標記的操作中,該記憶體控制電路單元更用以配置多個邏輯位址,其中該些邏輯位址映射該至少部分的實體抹除單元,其中該記憶體控制電路單元更用以建立一佇列,其中該記憶體控制電路單元更用以將分配至該些邏輯位址之中的一第一邏輯位址的一第一資料程式化至該些實體抹除單元之中映射該第一邏輯位址的實體抹除單元,其中該記憶體控制電路單元更用以在該佇列中記錄映射該第一邏輯位址的實體抹除單元,其中該記憶體控制電路單元更用以接續在將該第一資料程式化至映射該第一邏輯位址的實體抹除單元之後,將分配至該些邏輯位址之中的一第二邏輯位址的一第二資料程式化至該些實體抹除單元之中映射該第二邏輯位址的實體抹除單元,其中該記憶體控制電路單元更用以在該佇列中記錄映射該第二邏輯位址的實體抹除單元,其中該佇列有一第一端與一第二端,且在該第一端與該第二端之間有多個位置,其中在該佇列中記錄映射該第一邏輯位址的實體抹除單元的 位置是接續在記錄映射該第二邏輯位址的實體抹除單元的位置之後,並且記錄映射該第一邏輯位址的實體抹除單元的位置與該第一端之間的距離大於記錄映射該第二邏輯位址的實體抹除單元的位置與該第一端之間的距離。
- 如申請專利範圍第37項所述的記憶體儲存裝置,其中在根據該寫入順序標記將該至少部分的實體抹除單元分為該第一部分與該第二部分的操作中,該記憶體控制電路單元更用以根據該第一端與該二端之間的一中心端點將記錄於該第二端與該中心端點之間的位置的實體抹除單元分為屬於該第一部分的實體抹除單元,並且將記錄於該第一端與該中心端點之間的位置的實體抹除單元分為屬於該第二部分的實體抹除單元。
- 如申請專利範圍第36項所述的記憶體儲存裝置,其中在根據該特定性質資料計數從該第一部份及該第二部分其中之一的實體抹除單元中選出該至少一第一實體抹除單元的操作中,該記憶體控制電路單元更用以判斷屬於該第一部分的該些實體抹除單元中是否包含至少一第一候選實體抹除單元,其中該至少一第一候選實體抹除單元的特定性質資料計數與一預定值符合一預定關係,其中倘若屬於該第一部分的該些實體抹除單元之中包含該至少一第一候選實體抹除單元時,則該記憶體控制電路單元更用以將該第一部分的該些實體抹除單元之中的該至少一第一候選實體抹除單元作為該至少一第一實體抹除單元, 其中倘若屬於該第一部分的該些實體抹除單元中不包含該至少一第一候選實體抹除單元時,則該記憶體控制電路單元更用以判斷屬於該第二部分的該些實體抹除單元中是否包含至少一個第二候選實體抹除單元,其中該至少一個第二候選實體抹除單元的特定性質資料計數與該預定值符合該預定關係,其中倘若屬於該第二部分的該些實體抹除單元之中包含該至少一第二候選實體抹除單元時,則該記憶體控制電路單元更用以將該第二部分的該些實體抹除單元中的該至少一第二候選實體抹除單元作為該至少一第一實體抹除單元。
- 如申請專利範圍第39項所述的記憶體儲存裝置,其中在根據該第二參數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元的操作中,該記憶體控制電路單元更用以根據該抹除次數從該至少一第一實體抹除單元之中選擇該第二實體抹除單元,其中該第二實體抹除單元的抹除次數小於該至少一第一實體抹除單元之中的其他實體抹除單元的抹除次數。
- 如申請專利範圍第39項所述的記憶體儲存裝置,其中每一該些實體抹除單元包括多個實體程式化單元,每一該至少部分的實體抹除單元的特定性質資料計數指示每一該至少部分的實體抹除單元的實體程式化單元之中儲存無效資料的實體程式化單元的數目,且該預定關係為該特定性質資料計數大於該預定值。
- 如申請專利範圍第39項所述的記憶體儲存裝置,其中每一該些實體抹除單元包括多個實體程式化單元,每一該至少部分 的實體抹除單元的特定性質資料計數指示每一該至少部分的實體抹除單元的實體程式化單元之中儲存有效資料的實體程式化單元的數目,且該預定關係為該特定性質資料計數小於該預定值。
- 如申請專利範圍第41項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以將該至少部分的實體抹除單元的數目除以該可複寫式非揮發性記憶體模組的該些實體抹除單元的數目以獲得一第一值,其中該記憶體控制電路單元更用以將該些實體抹除單元之中的一個實體抹除單元的實體程式化單元的數目乘以該第一值以獲得一第二值,其中該記憶體控制電路單元更用以將該一個實體抹除單元的實體程式化單元的數目減去該第二值以獲取一第三值,並且將該第三值設定為該預定值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104126076A TWI585770B (zh) | 2015-08-11 | 2015-08-11 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US14/860,722 US10409525B2 (en) | 2015-08-11 | 2015-09-22 | Memory management method, memory control circuit unit and memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104126076A TWI585770B (zh) | 2015-08-11 | 2015-08-11 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201707002A TW201707002A (zh) | 2017-02-16 |
TWI585770B true TWI585770B (zh) | 2017-06-01 |
Family
ID=57995417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104126076A TWI585770B (zh) | 2015-08-11 | 2015-08-11 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10409525B2 (zh) |
TW (1) | TWI585770B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI795119B (zh) * | 2021-12-07 | 2023-03-01 | 大陸商合肥兆芯電子有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015118623A1 (ja) * | 2014-02-05 | 2015-08-13 | 株式会社日立製作所 | 情報処理装置 |
US20170300249A1 (en) * | 2016-04-15 | 2017-10-19 | Western Digital Technologies, Inc. | Validity tracking for garbage collection |
US10031689B2 (en) * | 2016-09-15 | 2018-07-24 | Western Digital Technologies, Inc. | Stream management for storage devices |
CN109558266B (zh) | 2017-09-26 | 2022-06-14 | 慧荣科技股份有限公司 | 主动错误更正失败处理方法 |
TWI670595B (zh) * | 2017-09-26 | 2019-09-01 | 慧榮科技股份有限公司 | 主動錯誤更正失敗處理方法 |
KR20190044798A (ko) * | 2017-10-23 | 2019-05-02 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
TWI648676B (zh) | 2017-11-30 | 2019-01-21 | 群聯電子股份有限公司 | 資料存取方法、記憶體控制電路單元以及記憶體儲存裝置 |
JP6901427B2 (ja) * | 2018-03-27 | 2021-07-14 | キオクシア株式会社 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
TWI705331B (zh) * | 2019-06-24 | 2020-09-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置 |
JP2022010951A (ja) * | 2020-06-29 | 2022-01-17 | キオクシア株式会社 | 半導体記憶装置 |
TWI766582B (zh) * | 2021-02-17 | 2022-06-01 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 |
CN112799601B (zh) * | 2021-02-24 | 2023-06-13 | 群联电子股份有限公司 | 有效数据合并方法、存储器存储装置及控制电路单元 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017052A1 (en) * | 2010-07-19 | 2012-01-19 | Sauber William F | Information Handling System Universal Memory Wear Leveling System and Method |
US20130166824A1 (en) * | 2011-12-21 | 2013-06-27 | Samsung Electronics Co., Ltd. | Block management for nonvolatile memory device |
TW201349099A (zh) * | 2012-05-18 | 2013-12-01 | Silicon Motion Inc | 資料儲存裝置和快閃記憶體之區塊管理方法 |
US20140258602A1 (en) * | 2007-12-28 | 2014-09-11 | Kabushiki Kaisha Toshiba | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
TWI472927B (zh) * | 2010-08-12 | 2015-02-11 | Phison Electronics Corp | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
US20150113206A1 (en) * | 2013-10-18 | 2015-04-23 | Sandisk Enterprise Ip Llc | Biasing for Wear Leveling in Storage Systems |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100881669B1 (ko) | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
CN101645309B (zh) | 2008-08-05 | 2013-05-22 | 威刚科技(苏州)有限公司 | 非挥发性存储装置及其控制方法 |
US8700841B2 (en) * | 2010-04-19 | 2014-04-15 | International Business Machines Corporation | Sub-LUN input/output profiling for SSD devices |
TWI454911B (zh) * | 2011-10-12 | 2014-10-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US20140181434A1 (en) * | 2012-12-20 | 2014-06-26 | Virtium Technology, Inc. | Integrated and naturalized static wear-leveling for block mapping |
-
2015
- 2015-08-11 TW TW104126076A patent/TWI585770B/zh active
- 2015-09-22 US US14/860,722 patent/US10409525B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140258602A1 (en) * | 2007-12-28 | 2014-09-11 | Kabushiki Kaisha Toshiba | Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks |
US20120017052A1 (en) * | 2010-07-19 | 2012-01-19 | Sauber William F | Information Handling System Universal Memory Wear Leveling System and Method |
TWI472927B (zh) * | 2010-08-12 | 2015-02-11 | Phison Electronics Corp | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
US20130166824A1 (en) * | 2011-12-21 | 2013-06-27 | Samsung Electronics Co., Ltd. | Block management for nonvolatile memory device |
TW201349099A (zh) * | 2012-05-18 | 2013-12-01 | Silicon Motion Inc | 資料儲存裝置和快閃記憶體之區塊管理方法 |
US20150113206A1 (en) * | 2013-10-18 | 2015-04-23 | Sandisk Enterprise Ip Llc | Biasing for Wear Leveling in Storage Systems |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI795119B (zh) * | 2021-12-07 | 2023-03-01 | 大陸商合肥兆芯電子有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
US11803331B2 (en) | 2021-12-07 | 2023-10-31 | Hefei Core Storage Electronic Limited | Method for recording unit management information, memory storage device and memory control circuit unit |
Also Published As
Publication number | Publication date |
---|---|
US20170046068A1 (en) | 2017-02-16 |
TW201707002A (zh) | 2017-02-16 |
US10409525B2 (en) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI585770B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US8296507B2 (en) | Memory management and writing method and rewritable non-volatile memory controller and storage system using the same | |
TWI533308B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US8898370B2 (en) | Data storage method for flash memory, and flash memory controller and flash memory storage system using the same | |
TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201703052A (zh) | 平均磨損方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US20110161565A1 (en) | Flash memory storage system and controller and data writing method thereof | |
TWI454913B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US8966157B2 (en) | Data management method, memory controller and memory storage apparatus | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201523616A (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN106354651B (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
CN106469019B (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
TWI521541B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |