TW201913384A - 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TW201913384A TW201913384A TW106130891A TW106130891A TW201913384A TW 201913384 A TW201913384 A TW 201913384A TW 106130891 A TW106130891 A TW 106130891A TW 106130891 A TW106130891 A TW 106130891A TW 201913384 A TW201913384 A TW 201913384A
- Authority
- TW
- Taiwan
- Prior art keywords
- area
- unit
- physical erasing
- memory
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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 OR CALCULATING; 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
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)
- Memory System (AREA)
Abstract
一種記憶體管理方法及使用此方法的記憶體控制電路單元與記憶體儲存裝置。本方法包括在關聯至資料區的實體抹除單元的數目大於第一門檻值時,執行對應資料區的第一垃圾收集操作;在關聯至表格區的實體抹除單元的數目大於第二門檻值時,執行對應表格區的第二垃圾收集操作;以及依據關聯至資料區的實體抹除單元的數目,動態地調整第二門檻值。
Description
本發明是有關於一種用於可複寫式非揮發性記憶體的記憶體管理方法及使用此方法的記憶體控制電路單元與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
快閃記憶體模組具有多個實體抹除單元且每一實體抹除單元具有多個實體程式化單元,其中在實體抹除單元中寫入資料時必須依據實體程式化單元的順序寫入資料。此外,已被寫入資料之實體程式化單元需先被抹除後才能再次用於寫入資料。特別是,實體抹除單元為抹除之最小單位,並且實體程式化單元為程式化(亦稱寫入)的最小單元。
在快閃記憶體模組的管理中,在記憶體儲存裝置開卡完成後,記憶體管理電路會將空實體抹除單元放置於閒置區。在執行來自於主機系統的寫入指令時,記憶體管理電路會從閒置區中選取一實體抹除單元,將來自於主機系統的使用者資料寫入至此實體抹除單元並且將此實體抹除單元關聯至資料區(例如,在邏輯位址-實體位址映射表中記錄邏輯頁面與實體程式化單元間的映射資訊)。此外,由於在執行寫入指令時,相關的系統表資料亦已被更新(例如,邏輯位址-實體位址映射表),因此,記憶體管理電路會從閒置區中選取一實體抹除單元,將系統表資料寫入至此實體抹除單元並且將此實體抹除單元關聯至表格區(例如,在表格區佇列表中記錄儲存邏輯位址-實體位址映射表的實體抹除單元)。在記憶體儲存裝置運作期間,隨著主機系統下達寫入指令,使用者資料與系統管理表資料會被更新,而資料區與表格區中無儲存有效資料的實體抹除單元會被重新關聯至閒置區,由此實體抹除單元會不斷地輪替來寫入使用者資料與系統管理表資料
在實體抹除單元不斷輪替使用下,記憶體管理電路必須保留一定數目的實體抹除單元,才能順利執行寫入操作。因此,記憶體管理電路會監控用於資料區的實體抹除單元的數目與用於表格區的實體抹除單元的數目,並據此執行垃圾收集操作(亦稱為有效資料合併操作),以避免閒置區的實體抹除單元耗盡。例如,若資料區的實體抹除單元的數目大於一預設固定資料區門檻值時,記憶體管理電路會對資料區的實體抹除單元執行垃圾收集操作,以將資料區的數個實體抹除單元上的有效資料集中到一個空的實體抹除單元並將已無存有有效資料的實體抹除單元重新關聯至閒置區。基此,資料區的實體抹除單元的數目就會降低,並且閒置區的數目會回復。同樣地,若表格區的實體抹除單元的數目大於一預設固定表格區門檻值時,記憶體管理電路會對表格區的實體抹除單元執行垃圾收集操作,以將表格區的數個實體抹除單元上的有效資料集中到一個空的實體抹除單元並將已無存有有效資料的實體抹除單元重新關聯至閒置區。而執行垃圾收集操作會需要耗費一些時間,因此,會造成執行寫入指令的延遲。
一般來說,在記憶體儲存裝置所儲存的資料中,系統管理表資料的量會遠低使用者資料的量,因此,保留給表格區的實體抹除單元數目會遠小於保留給資料區的實體抹除單元的數目。然而,在主機系統在零散的邏輯位址中寫入資料(即,隨機寫入)時,表格區的實體抹除單元的數目會快速增加(即,保留給表格區的實體抹除單元會消耗的很快),造成記憶體儲存裝置僅儲存少量的使用者資料下就需開始對表格區的實體抹除單元執行垃圾收集操作,影響記憶體儲存裝置的寫入效能。基此,如何有效地執行垃圾收集操作,是此領域技術人員所致力的目標。
本發明提供一種記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元,其能夠有效利用閒置的實體抹除單元,延遲執行垃圾收集操作,提升執行寫入指令的效能。
本發明的的一範例實施例提出一種記憶體管理方法,用於可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體抹除單元,且實體抹除單元至少被關聯為資料區、閒置區或表格區。此記憶體管理方法包括:在關聯至資料區的實體抹除單元的數目大於第一門檻值時,執行對應資料區的第一垃圾收集操作;在關聯至表格區的實體抹除單元的數目大於第二門檻值時,執行對應表格區的第二垃圾收集操作;以及依據關聯至資料區的實體抹除單元的數目,動態地調整第二門檻值。
在本發明的一範例實施例中,第二門檻值會隨著資料區的實體抹除單元的數目增加而減少並且不小於預先定義值。
在本發明的一範例實施例中,第二門檻值小於第一門檻值,其中第一門檻值為固定值。
在本發明的一範例實施例中,上述記憶體管理方法更包括監控關聯至資料區的實體抹除單元的數目是否大於第一門檻值,以及監控關聯至表格區的實體抹除單元的數目是否大於第二門檻值。
在本發明的一範例實施例中,上述記憶體管理方法更包括從閒置區中選擇第一實體抹除單元,將使用者資料寫入至第一實體抹除單元並且將第一實體抹除單元關聯至資料區。此外,上述記憶體管理方法更包括從閒置區中選擇第二實體抹除單元,將管理表資料寫入至第二實體抹除單元並且將第二實體抹除單元關聯至表格區。
在本發明的一範例實施例中,上述執行對應資料區的第一垃圾收集操作的步驟包括:從閒置區中選擇第三實體抹除單元,將資料區的至少兩個實體抹除單元上的所有有效資料複製到第三實體抹除單元中,將此至少兩個實體抹除單元重新關聯至閒置區,將第三實體抹除單元關聯至資料區。
在本發明的一範例實施例中,上述執行對應表格區的第二垃圾收集操作的步驟包括:從閒置區中選擇第四實體抹除單元,將表格區的至少兩個實體抹除單元上的所有有效資料複製到第四實體抹除單元中,將此至少兩個實體抹除單元重新關聯至閒置區,將第四實體抹除單元關聯至表格區。
本發明的一範例實施例提出一種用於控制可複寫式非揮發性記憶體模組的記憶體控制電路單元,此可複寫式非揮發性記憶體模組具有多個實體抹除單元。此記憶體控制電路單元包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統,記憶體介面用以耦接至可複寫式非揮發性記憶體模組,以及記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路用以將實體抹除單元至少關聯為資料區、閒置區或表格區。此外,記憶體管理電路更用以在關聯至資料區的實體抹除單元的數目大於第一門檻值時,執行對應資料區的第一垃圾收集操作,並且在關聯至表格區的實體抹除單元的數目大於第二門檻值時,執行對應表格區的第二垃圾收集操作。再者,記憶體管理電路更用以依據關聯至資料區的實體抹除單元的數目,動態地調整第二門檻值,其中第二門檻值會隨著資料區的實體抹除單元的數目增加而減少並且不小於預先定義值。
在本發明的一範例實施例中,上述記憶體管理電路更用以監控關聯至資料區的實體抹除單元的數目是否大於第一門檻值,以及監控關聯至表格區的實體抹除單元的數目是否大於第二門檻值。
在本發明的一範例實施例中,上述記憶體管理電路更用以從閒置區中選擇第一實體抹除單元,下達指令序列以將使用者資料寫入至第一實體抹除單元並且將第一實體抹除單元關聯至資料區。此外,上述記憶體管理電路更用從閒置區中選擇第二實體抹除單元,下達另一指令序列以將管理表資料寫入至第二實體抹除單元並且將第二實體抹除單元關聯至表格區。
在本發明的一範例實施例中,在執行對應資料區的第一垃圾收集操作的運作中,記憶體管理電路從閒置區中選擇第三實體抹除單元,將資料區的至少兩個實體抹除單元上的所有有效資料複製到第三實體抹除單元中,將此至少兩個實體抹除單元重新關聯至閒置區,將第三實體抹除單元關聯至資料區。
在本發明的一範例實施例中,在執行對應表格區的第二垃圾收集操作的運作中,記憶體管理電路從閒置區中選擇第四實體抹除單元,將表格區的至少兩個實體抹除單元上的所有有效資料複製到第四實體抹除單元中,將此至少兩個實體抹除單元重新關聯至閒置區,將第四實體抹除單元關聯至表格區。
本發明的一範例實施例提出一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體抹除單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。記憶體控制電路單元用以將實體抹除單元至少關聯為資料區、閒置區或表格區。此外,記憶體控制電路單元更用以在關聯至資料區的實體抹除單元的數目大於第一門檻值時,執行對應資料區的第一垃圾收集操作,並且在關聯至表格區的實體抹除單元的數目大於第二門檻值時,執行對應表格區的第二垃圾收集操作。再者,記憶體控制電路單元更用以依據關聯至資料區的實體抹除單元的數目,動態地調整第二門檻值,其中第二門檻值會隨著資料區的實體抹除單元的數目增加而減少並且不小於預先定義值。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以監控關聯至資料區的實體抹除單元的數目是否大於第一門檻值,以及監控關聯至表格區的實體抹除單元的數目是否大於第二門檻值。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以從閒置區中選擇第一實體抹除單元,將使用者資料寫入至第一實體抹除單元並且將第一實體抹除單元關聯至資料區。此外,上述記憶體控制電路單元更用從閒置區中選擇第二實體抹除單元,將管理表資料寫入至第二實體抹除單元並且將第二實體抹除單元關聯至表格區。
在本發明的一範例實施例中,在執行對應資料區的第一垃圾收集操作的運作中,記憶體控制電路單元從閒置區中選擇第三實體抹除單元,將資料區的至少兩個實體抹除單元上的所有有效資料複製到第三實體抹除單元中,將此至少兩個實體抹除單元重新關聯至閒置區,將第三實體抹除單元關聯至資料區。
在本發明的一範例實施例中,在執行對應表格區的第二垃圾收集操作的運作中,記憶體控制電路單元從閒置區中選擇第四實體抹除單元,將表格區的至少兩個實體抹除單元上的所有有效資料複製到第四實體抹除單元中,將此至少兩個實體抹除單元重新關聯至閒置區,將第四實體抹除單元關聯至表格區。
基於上述,本範例實施例的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,是利用動態地調整對應限制表格區的實體抹除單元的數目的第二門檻值,由此使用閒置區中尚未使用來寫入使用者資料的實體抹除單元來儲存管理表資料。基此,可有效利用閒置的實體抹除單元,延遲執行垃圾收集操作,提升執行寫入指令的效能。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖,並且圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114是可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication Storage, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於安全數位(Secure Digital, SD)介面標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合序列先進附件(Serial Advanced Technology Attachment, SATA)標準、並列先進附件(Parallel 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)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、嵌入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等操作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元410(0)~ 410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組406為單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)、複數階記憶胞(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的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面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所能接受的格式。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會根據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
在本範例實施例中,錯誤檢查與校正電路512是以低密度奇偶檢查碼(low density parity code,LDPC)來實作。然而,在另一範例實施例中,錯誤檢查與校正電路512也可以BCH碼、迴旋碼(convolutional code)、渦輪碼(turbo code)、位元翻轉(bit flipping)等編碼/解碼演算法來實作。
具體來說,記憶體管理電路202會依據所接收之資料及對應的錯誤檢查與校正碼(以下亦稱為錯誤校正碼)來產生錯誤校正碼框(ECC Frame)並且將錯誤校正碼框寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406讀取資料時,錯誤檢查與校正電路512會根據錯誤校正碼框中的錯誤校正碼來驗證所讀取之資料的正確性。
以下描述記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512所執行的操作,亦可參考為由記憶體控制電路單元404所執行。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
一般來說,在記憶體儲存裝置10出廠之前,製造商會使用量產工具(Mass Production tool,MP tool)來對記憶體儲存裝置10執行開卡操作,以執行初始化動作。請參照圖6,例如,記憶體管理電路502會執行初始化以將實體抹除單元410(0)~410(N)邏輯地分組為系統區604、取代區606與儲存區602。
邏輯上屬於系統區604的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區606中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區606中仍存有正常之實體抹除單元並且儲存區602的實體抹除單元損壞時,記憶體管理電路502會從取代區606中提取正常的實體抹除單元來更換損壞的實體抹除單元。
邏輯上屬於儲存區602的實體抹除單元,在開卡時,空的實體抹除單元會被關聯為閒置區702。當從主機系統11接收到寫入指令與欲寫入之資料(亦稱為使用者資料)時,記憶體管理電路502會從閒置區702中提取實體抹除單元,下達一指令序列以將資料寫入至所提取的實體抹除單元中且將已寫入使用者資料的實體抹除單元(以下亦可參考為第一實體抹除單元)關聯至資料區704。而當資料區704的實體抹除單元中的資料皆為無效資料時,此實體抹除單元會重新關聯至閒置區702。也就是說,閒置區702中的實體抹除單元會不斷輪替來用於寫入使用者資料。
由於閒置區702中的實體抹除單元是輪替地來儲存使用者資料,記憶體管理電路502會配置邏輯單元LBA(0)~LBA(H)以映射資料區502的實體抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。在本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。特別是,記憶體管理電路502會從閒置區702中提取實體抹除單元來儲存邏輯位址-實體位址映射表(logical address-physical address mapping table)來記載邏輯單元與資料區的實體程式化單元的映射關係。而儲存邏輯位址-實體位址映射表的實體抹除單元(以下亦可參考為第二實體抹除單元)會被關聯至表格區706。也就是說,當寫入資料時,記憶體管理電路502會將邏輯位址-實體位址映射表載入至緩衝記憶體508來更新,並且再將更新後的邏輯位址-實體位址映射表儲存至表格區706的實體抹除單元。類似地,而當表格區706的實體抹除單元中的資料皆為無效時,此實體抹除單元會重新關聯至閒置區702。也就是說,閒置區702中的實體抹除單元會不斷輪替來用於寫入管理表資料。
值得一提的是,由於緩衝記憶體508的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體管理電路502會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯位址-實體位址映射表。特別是,當記憶體管理電路502欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯位址-實體位址映射表會被載入至緩衝記憶體508來被更新。
在本範例實施例中,記憶體管理電路502會持續監控關聯至資料區704的實體抹除單元的數目,並且倘若關聯至資料區704的實體抹除單元的數目大於第一門檻值時,記憶體管理電路502會對資料區704的實體抹除單元執行第一垃圾收集操作(亦稱為第一有效資料合併操作)。具體來說,記憶體管理電路502會從資料區704中選擇多個實體抹除單元(例如,實體抹除單元410(0)與實體抹除單元410(1)),將此些實體抹除單元上的有效資料複製到從閒置區702中提取的實體抹除單元410(F)(以下可參考為第三實體抹除單元)中,然後將資料區704中無存有有效資料的實體抹除單元重新關聯至閒置區702。在本範例實施例中,第一門檻值為一固定值。例如,倘若在開卡時配置1000個實體抹除單元至閒置區702且保留980個實體抹除單元供寫入使用者資料的例子中,第一門檻值會被設定為960。
在本範例實施例中,記憶體管理電路502會持續監控關聯至表格區706的實體抹除單元的數目,並且倘若關聯至表格區706的實體抹除單元的數目大於第二門檻值時,記憶體管理電路502會對表格區706的實體抹除單元執行第二垃圾收集操作(亦稱為第二有效資料合併操作)。具體來說,記憶體管理電路502會從表格區706中選擇多個實體抹除單元(例如,實體抹除單元410(T)與實體抹除單元410(T+1)),將此些實體抹除單元上的有效資料複製到從閒置區702中提取的實體抹除單元410(F+1)(以下可參考為第四實體抹除單元)中,然後將表格區706中無存有有效資料的實體抹除單元重新關聯至閒置區702。在本範例實施例中,第二門檻值是小於第一門檻值且是根據資料區704的實體抹除單元的數目來動態調整,其中第二門檻值是隨著資料區704的實體抹除單元的數目增加而減少並且不小於一預先定義值。例如,倘若在開卡時配置1000個實體抹除單元至閒置區702且保留20個實體抹除單元供寫入管理表資料的例子中,第二門檻值會被初始設定為100且隨著資料區704的實體抹除單元的數目增加而遞減至上述預先定義值為止,其中預先定義值被設定為18。也就是說,在閒置區702原來有許多空的實體抹除單元的情況下,記憶體管理電路502會暫時使用部分原保留給資料區704的實體抹除單元來儲存管理表資料,並且在閒置區702的可用實體抹除單元減少下,再執行第二垃圾收集操作,將表格區706中無存有有效資料的實體抹除單元重新關聯至閒置區702。特別是,由於管理表資料量較少,當執行第二垃圾收集操作,很快地就可從表格區706中找出無存有有效資料的實體抹除單元,而完成第二垃圾收集操作。
圖8是根據一範例實施例所繪示執行寫入操作的示意圖。
請參照圖8,為方便說明,在此假設在開卡時記憶體管理電路502配置1000個實體抹除單元至閒置區702,保留980個實體抹除單元供寫入使用者資料,保留20個實體抹除單元供寫入管理表資料,第一門檻值被固定地設定為960,第二門檻值被初始地設定為100,且第二門檻值的下限值(即上述預先定義值)被設定為18。
在開卡完成後,閒置區702有1000個實體抹除單元(如寫入操作W801的空白處所示)。之後,主機系統11每次固定寫入的資料(亦稱為使用者資料)的大小相當於100個實體抹除單元的容量,且需要使用20個實體抹除單元來儲存對應使用者資料的管理表資料(例如,更新的邏輯位址-實體位址映射表)。如寫入操作W802所示,記憶體管理電路502會從閒置區502中選取100個實體抹除單元來寫入使用者資料並選取20個實體抹除單元來寫入管理表資料。由於資料區704的實體抹除單元(如斜線區域所示)的數目小於第一門檻值,所以無需執行第一垃圾收集操作。此外,由於表格區706的實體抹除單元(如網點區域所示)的數目小於第二門檻值,所以無需執行第二垃圾收集操作。寫入操作W803~寫入操作W806的操作情況與寫入操作W802的情況相同,在此就不贅述。
接著,主機系統11繼續寫入資料時,如寫入操作W807所示,記憶體管理電路502會再從閒置區502中選取100個實體抹除單元來寫入使用者資料並選取20個實體抹除單元來寫入管理表資料。由於資料區704的實體抹除單元(如斜線區域所示)的數目為600並非大於第一門檻值,所以無需執行第一垃圾收集操作。特別是,由於資料區704的實體抹除單元的數目已增加到600,因此,記憶體管理電路502會將第二門檻值調整為80(即,限制表格區706的實體抹除單元的數目不得超過80)。而在調整第二門檻值後,由於表格區706的實體抹除單元的數目會大於第二門檻值,所以需執行第二垃圾收集操作,由此將表格區706中無有效資料的實體抹除單元重新關聯至閒置區702。寫入操作W808~寫入操作W810的操作情況與寫入操作W807的情況相同,在此就不贅述。
接著,主機系統11繼續寫入資料時,如寫入操作W811所示,記憶體管理電路502會再從閒置區502中選取實體抹除單元來寫入使用者資料並選取實體抹除單元來寫入管理表資料。在寫入使用者資料的過程中,資料區704的實體抹除單元的數目會大於第一門檻值,因此,需執行第一垃圾收集操作,以維持資料區704的實體抹除單元的數目不大於第一門檻值(即,960)。此外,由於資料區704的實體抹除單元的數目已達到上限(即,960),因此,記憶體管理電路502會將第二門檻值調整為18(即,限制表格區706的實體抹除單元的數目不得超過18)。而在調整第二門檻值後,在寫入管理表資料的過程中,由於表格區706的實體抹除單元的數目會大於第二門檻值,所以需執行第二垃圾收集操作,以維持表格區706的實體抹除單元的數目不大於第二門檻值(即,18)。
在上述範例中,第二門檻值的初始值會設定為開卡後閒置區702的實體抹除單元的數目的十分之一,而在資料區704的實體抹除單元的數目超過開卡後閒置區702的實體抹除單元的數目的二分之一之後,每當資料區704的實體抹除單元的數目增加初始之閒置區702的實體抹除單元的數目的十分之一時,第二門檻值會減少原初始值的百分之二十。然而,必須了解的是,此僅為一範例,本發明不限於此。
圖9是根據一範例實施例所繪示的記憶體管理方法的流程圖。
在步驟S901中,記憶體管理電路502從主機系統11中接收使用者資料。
在步驟S903中,記憶體管理電路502從閒置區702中選取一個實體抹除單元(以下參考為第一實體抹除單元),將使用者資料寫入至第一實體抹除單元中,並且將第一實體抹除單元關聯至資料區704。
在步驟S905中,記憶體管理電路502判斷資料區704的實體抹除單元的數目是否大於第一門檻值。在此第一門檻值為預設的固定值。
倘若資料區704的實體抹除單元的數目大於第一門檻值時,在步驟S907中,記憶體管理電路502執行第一垃圾收集操作。
接著,在步驟S909中,記憶體管理電路502會根據資料區704的實體抹除單元的數目調整第二門檻值。
接著,在步驟S911中,記憶體管理電路502從閒置區702中選取一個實體抹除單元(以下參考為第二實體抹除單元),將對應的管理表資料寫入至第二實體抹除單元中,並且將第二實體抹除單元關聯至表格區706。
在步驟S913中,記憶體管理電路502判斷表格區706的實體抹除單元的數目是否大於第二門檻值。
倘若表格區706的實體抹除單元的數目大於第二門檻值時,在步驟S915中,記憶體管理電路502執行第二垃圾收集操作。
綜上所述,本發明範例實施例的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置能夠根據可複寫式非揮發性記憶體模組的使用量來調整啟動用於儲存表格的實體抹除單元的垃圾收集操作,由此可以避免在可複寫式非揮發性記憶體模組還有大量可用空間下,就開始執行垃圾收集操作,而影響記憶體儲存裝置執行寫入指的效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧輸入/輸出(I/O)裝置
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體(RAM)
113‧‧‧唯讀記憶體(ROM)
114‧‧‧資料傳輸介面
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
30‧‧‧記憶體儲存裝置
31‧‧‧主機系統
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)、410(1)、410(S-1)、410(S)、410(S+1)、410(R-1)、410(R)、410(R+1)、410(N) 、410(C)、410(T)、410(D)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧儲存區
604‧‧‧系統區
606‧‧‧取代區
702‧‧‧閒置區
704‧‧‧資料區
706‧‧‧表格區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
W801、W802、W803、W804、W805、W806、W807、W808、W809、W810、W811‧‧‧寫入操作
S901‧‧‧從主機系統中接收使用者資料的步驟
S903‧‧‧從閒置區中選取第一實體抹除單元,將使用者資料寫入至第一實體抹除單元中,並且將第一實體抹除單元關聯至資料區的步驟
S905‧‧‧判斷資料區的實體抹除單元的數目是否大於第一門檻值的步驟
S907‧‧‧執行第一有效資料合併操作的步驟
S909‧‧‧根據資料區的實體抹除單元的數目調整第二門檻值的步驟
S911‧‧‧從閒置區中選取第二實體抹除單元,將對應的管理表資料寫入至第二實體抹除單元中,並且將第二實體抹除單元關聯至表格區的步驟
S913‧‧‧判斷表格區的實體抹除單元的數目是否大於第二門檻值的步驟
S915‧‧‧執行第二有效資料合併操作的步驟
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。 圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。 圖8是根據一範例實施例所繪示執行寫入操作的示意圖。 圖9是根據一範例實施例所繪示的記憶體管理方法的流程圖。
Claims (21)
- 一種記憶體管理方法,用於一可複寫式揮發性記憶體模組,所述可複寫式揮發性記憶體模組具有多個實體抹除單元,所述多個實體抹除單元至少被關聯為一資料區、一閒置區或一表格區,所述記憶體管理方法包括: 在關聯至所述資料區的實體抹除單元的數目大於一第一門檻值時,執行對應所述資料區的一第一垃圾收集操作; 在關聯至所述表格區的實體抹除單元的數目大於一第二門檻值時,執行對應所述表格區的一第二垃圾收集操作;以及 依據關聯至所述資料區的實體抹除單元的數目,動態地調整所述第二門檻值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中所述第二門檻值會隨著所述資料區的實體抹除單元的數目增加而減少並且不小於一預先定義值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中所述第二門檻值小於所述第一門檻值,其中所述第一門檻值為一固定值。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括: 監控關聯至所述資料區的實體抹除單元的數目是否大於所述第一門檻值;以及 監控關聯至所述表格區的實體抹除單元的數目是否大於一第二門檻值。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括: 從所述閒置區中選擇一第一實體抹除單元,將一使用者資料寫入至所述第一實體抹除單元並且將所述第一實體抹除單元關聯至所述資料區;以及 從所述閒置區中選擇一第二實體抹除單元,將一管理表資料寫入至所述第二實體抹除單元並且將所述第二實體抹除單元關聯至所述表格區。
- 如申請專利範圍第5項所述的記憶體管理方法,其中執行對應所述資料區的所述第一垃圾收集操作的步驟包括: 從所述閒置區中選擇一第三實體抹除單元,將所述資料區的至少兩個實體抹除單元上的所有有效資料複製到所述第三實體抹除單元中,將所述資料區的所述至少兩個實體抹除單元重新關聯至所述閒置區,將所述第三實體抹除單元關聯至所述資料區。
- 如申請專利範圍第6項所述的記憶體管理方法,其中執行對應所述表格區的所述第二垃圾收集操作的步驟包括: 從所述閒置區中選擇一第四實體抹除單元,將所述表格區的至少兩個實體抹除單元上的所有有效資料複製到所述第四實體抹除單元中,將所述表格區的所述至少兩個實體抹除單元重新關聯至所述閒置區,將所述第四實體抹除單元關聯至所述表格區。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元;以及 一記憶體管理電路,耦接至所述主機介面與所述記憶體介面, 其中所述記憶體管理電路用以將所述多個實體抹除單元至少關聯為一資料區、一閒置區或一表格區, 其中所述記憶體管理電路更用以在關聯至所述資料區的實體抹除單元的數目大於一第一門檻值時,執行對應所述資料區的一第一垃圾收集操作, 其中所述記憶體管理電路更用以在關聯至所述表格區的實體抹除單元的數目大於一第二門檻值時,執行對應所述表格區的一第二垃圾收集操作, 其中所述記憶體管理電路更用以依據關聯至所述資料區的實體抹除單元的數目,動態地調整所述第二門檻值。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中所述第二門檻值會隨著所述資料區的實體抹除單元的數目增加而減少並且不小於一預先定義值。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中所述第二門檻值小於所述第一門檻值,其中所述第一門檻值為一固定值。
- 如申請專利範圍第8項所述的記憶體控制電路單元, 其中所述記憶體管理電路更用以監控關聯至所述資料區的實體抹除單元的數目是否大於所述第一門檻值,以及監控關聯至所述表格區的實體抹除單元的數目是否大於一第二門檻值。
- 如申請專利範圍第8項所述的記憶體控制電路單元, 其中所述記憶體管理電路更用以從所述閒置區中選擇一第一實體抹除單元,下達一指令序列以將一使用者資料寫入至所述第一實體抹除單元並且將所述第一實體抹除單元關聯至所述資料區, 其中所述記憶體管理電路更用以從所述閒置區中選擇一第二實體抹除單元,下達另一指令序列以將一管理表資料寫入至所述第二實體抹除單元並且將所述第二實體抹除單元關聯至所述表格區。
- 如申請專利範圍第12項所述的記憶體控制電路單元,其中在執行對應所述資料區的所述第一垃圾收集操作的運作中,所述記憶體管理電路從所述閒置區中選擇一第三實體抹除單元,將所述資料區的至少兩個實體抹除單元上的所有有效資料複製到所述第三實體抹除單元中,將所述資料區的所述至少兩個實體抹除單元重新關聯至所述閒置區,將所述第三實體抹除單元關聯至所述資料區。
- 如申請專利範圍第13項所述的記憶體控制電路單元,其中在執行對應所述表格區的所述第二垃圾收集操作的運作中,所述記憶體管理電路從所述閒置區中選擇一第四實體抹除單元,將所述表格區的至少兩個實體抹除單元上的所有有效資料複製到所述第四實體抹除單元中,將所述表格區的所述至少兩個實體抹除單元重新關聯至所述閒置區,將所述第四實體抹除單元關聯至所述表格區。
- 一種記憶體儲存裝置,包括: 一連接器,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,具有多個實體抹除單元;以及 一記憶體控制電路單元,耦接至所述連接器與所述可複寫式非揮發性記憶體模組, 其中所述記憶體控制電路單元用以將所述多個實體抹除單元至少關聯為一資料區、一閒置區或一表格區, 其中所述記憶體控制電路單元更用以在關聯至所述資料區的實體抹除單元的數目大於一第一門檻值時,執行對應所述資料區的一第一垃圾收集操作, 其中所述記憶體控制電路單元更用以在關聯至所述表格區的實體抹除單元的數目大於一第二門檻值時,執行對應所述表格區的一第二垃圾收集操作, 其中所述記憶體控制電路單元更用以依據關聯至所述資料區的實體抹除單元的數目,動態地調整所述第二門檻值,。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中所述第二門檻值會隨著所述資料區的實體抹除單元的數目增加而減少並且不小於一預先定義值。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中所述第二門檻值小於所述第一門檻值,其中所述第一門檻值為一固定值。
- 如申請專利範圍第15項所述的記憶體儲存裝置, 其中所述記憶體控制電路單元更用以監控關聯至所述資料區的實體抹除單元的數目是否大於所述第一門檻值,以及監控關聯至所述表格區的實體抹除單元的數目是否大於一第二門檻值。
- 如申請專利範圍第15項所述的記憶體儲存裝置, 其中所述記憶體控制電路單元更用以從所述閒置區中選擇一第一實體抹除單元,將一使用者資料寫入至所述第一實體抹除單元並且將所述第一實體抹除單元關聯至所述資料區, 其中所述記憶體控制電路單元更用以從所述閒置區中選擇一第二實體抹除單元,將一管理表資料寫入至所述第二實體抹除單元並且將所述第二實體抹除單元關聯至所述表格區。
- 如申請專利範圍第19項所述的記憶體儲存裝置,其中在執行對應所述資料區的所述第一垃圾收集操作的運作中,所述記憶體控制電路單元從所述閒置區中選擇一第三實體抹除單元,將所述資料區的至少兩個實體抹除單元上的所有有效資料複製到所述第三實體抹除單元中,將所述資料區的所述至少兩個實體抹除單元重新關聯至所述閒置區,將所述第三實體抹除單元關聯至所述資料區。
- 如申請專利範圍第20項所述的記憶體儲存裝置,其中在執行對應所述表格區的所述第二垃圾收集操作的運作中,所述記憶體控制電路單元從所述閒置區中選擇一第四實體抹除單元,將所述表格區的至少兩個實體抹除單元上的所有有效資料複製到所述第四實體抹除單元中,將所述表格區的所述至少兩個實體抹除單元重新關聯至所述閒置區,將所述第四實體抹除單元關聯至所述表格區。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW106130891A TWI644210B (zh) | 2017-09-08 | 2017-09-08 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
| US15/805,148 US10025708B1 (en) | 2017-09-08 | 2017-11-07 | Memory management method, memory control circuit unit and memory storage apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW106130891A TWI644210B (zh) | 2017-09-08 | 2017-09-08 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI644210B TWI644210B (zh) | 2018-12-11 |
| TW201913384A true TW201913384A (zh) | 2019-04-01 |
Family
ID=62837494
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW106130891A TWI644210B (zh) | 2017-09-08 | 2017-09-08 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10025708B1 (zh) |
| TW (1) | TWI644210B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI702497B (zh) * | 2018-12-26 | 2020-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI734063B (zh) | 2019-01-02 | 2021-07-21 | 慧榮科技股份有限公司 | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 |
| CN112433676B (zh) * | 2020-11-24 | 2024-07-16 | 合肥康芯威存储技术有限公司 | 一种固态硬盘的垃圾回收处理方法及系统 |
| CN114203239B (zh) * | 2021-12-07 | 2024-04-30 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8122179B2 (en) * | 2007-12-14 | 2012-02-21 | Silicon Motion, Inc. | Memory apparatus and method of evenly using the blocks of a flash memory |
| US8521972B1 (en) * | 2010-06-30 | 2013-08-27 | Western Digital Technologies, Inc. | System and method for optimizing garbage collection in data storage |
| CN102004697B (zh) * | 2010-10-21 | 2012-09-19 | 北京握奇数据系统有限公司 | 一种Flash的回收方法和装置 |
| US8990477B2 (en) * | 2012-04-19 | 2015-03-24 | Sandisk Technologies Inc. | System and method for limiting fragmentation |
| CN104679437B (zh) * | 2013-11-27 | 2017-12-08 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
| TWI515735B (zh) * | 2013-12-09 | 2016-01-01 | 群聯電子股份有限公司 | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
| TWI524183B (zh) * | 2014-01-09 | 2016-03-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
| KR20150139112A (ko) * | 2014-06-02 | 2015-12-11 | 삼성전자주식회사 | 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 |
| CN105574055B (zh) * | 2014-11-07 | 2019-02-26 | 阿里巴巴集团控股有限公司 | 防止内存耗尽的方法及装置 |
-
2017
- 2017-09-08 TW TW106130891A patent/TWI644210B/zh active
- 2017-11-07 US US15/805,148 patent/US10025708B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US10025708B1 (en) | 2018-07-17 |
| TWI644210B (zh) | 2018-12-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI557561B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI622923B (zh) | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
| TWI658361B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI607309B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TW201945927A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
| TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
| TWI582776B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN106775436B (zh) | 数据存取方法、存储器控制电路单元与存储器 | |
| TW201837712A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI591640B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI642059B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN110390985A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
| CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| TWI635495B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN107102951B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
| CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| CN109522236B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| CN110389708B (zh) | 平均磨损方法、存储器控制电路单元与存储器存储装置 | |
| TWI648629B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TW201723848A (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |