TWI642059B - 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI642059B TWI642059B TW106118213A TW106118213A TWI642059B TW I642059 B TWI642059 B TW I642059B TW 106118213 A TW106118213 A TW 106118213A TW 106118213 A TW106118213 A TW 106118213A TW I642059 B TWI642059 B TW I642059B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- physical erasing
- memory
- physical
- units
- Prior art date
Links
- 238000007726 management method Methods 0.000 title claims abstract description 119
- 230000005055 memory storage Effects 0.000 title claims abstract description 52
- 238000009826 distribution Methods 0.000 claims description 38
- 239000000463 material Substances 0.000 claims description 9
- 230000008878 coupling Effects 0.000 claims 3
- 238000010168 coupling process Methods 0.000 claims 3
- 238000005859 coupling reaction Methods 0.000 claims 3
- 238000000034 method Methods 0.000 abstract description 5
- 238000012937 correction Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/065—Replication mechanisms
-
- 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
- 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/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
- 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
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種記憶體管理方法及使用此方法的記憶體控制電路單元與記憶體儲存裝置。本方法包括記錄每一實體抹除單元的有效資料數,且識別多個第一實體抹除單元,其中第一實體抹除單元的有效資料數介於第一預定值與第二預定值之間。本方法更包括,倘若第一實體抹除單元的數目符合預先定義條件時,從此些第一實體抹除單元之中選取一實體抹除單元來執行垃圾收集操作。
Description
本發明是有關於一種用於可複寫式非揮發性記憶體的記憶體管理方法及使用此方法的記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,因此,近年可複寫式非揮發性記憶體產業成為電子產業中相當熱門的一環。例如,以快閃記憶體作為儲存媒體的固態硬碟(Solid-state drive)已廣泛應用作為電腦主機的硬碟,以提升電腦的存取效能。
一般來說,包含可複寫式非揮發性記憶體模組的記憶體儲存裝置會透過執行垃圾收集(garbage collection)操作(亦稱為有效資料合併操作)來釋放出可用的實體抹除單元。例如,傳統垃圾收集操作是選擇實體抹除單元中其有效資料最少的一個實體抹除單元,並複製此些有效資料至另一個實體抹除單元以釋放出可用的實體抹除單元。
然而,若主機系統更新一個大範圍內邏輯位址上的資料時,由於更新邏輯位址範圍大,許多實體抹除單元上會僅有少部分實體程式化單元存有有效資料。在此情況下,此些實體抹除單元的有效資料可能不是最少的,造成不會被選擇作為執行垃圾收集操作的目標。基此,使得可複寫式非揮發性記憶體內可用的實體抹除單元的數目減少,影響執行寫入指令的效能。
基此,如何選擇實體抹除單元來進行垃圾收集操作,以提升寫入效能,並延長可複寫式非揮發性記憶體的壽命是此領域技術人員所致力的目標。
本發明提供一種記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元,其能夠提升寫入效能,並延長可複寫式非揮發性記憶體的壽命。
本發明的的一範例實施例提出一種記憶體管理方法,用於可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體抹除單元,且每一個實體抹除單元具有多個實體程式化單元。本記憶體管理方法包括記錄每一實體抹除單元的有效資料數,且識別多個第一實體抹除單元,其中第一實體抹除單元的有效資料數介於第一預定值與第二預定值之間。本記憶體管理方法更包括,倘若第一實體抹除單元的數目符合預先定義條件時,從此些第一實體抹除單元之中選取一第二實體抹除單元,將第二實體抹除單元中的多個有效資料複製至第三實體抹除單元,並對第二實體抹除單元進行抹除操作。
在本發明的一範例實施例中,上述記憶體管理方法更包括:將上述實體抹除單元至少分組為資料區與閒置區;以及從閒置區中選取上述第三實體抹除單元,其中上述第一實體抹除單元是被分組至資料區。
在本發明的一範例實施例中,上述記憶體管理方法更包括:倘若上述第一實體抹除單元的所述數目不符合所述預先定義條件時,從資料區中選取第四實體抹除單元,將第四實體抹除單元中的多個有效資料複製至上述第三實體抹除單元,並對第四實體抹除單元進行抹除操作,其中第四實體抹除單元的有效資料數小於資料區中其他實體抹除單元的有效資料數。
在本發明的一範例實施例中,上述記憶體管理方法更包括:根據資料區的實體抹除單元的有效資料數,產生對應可複寫式非揮發性記憶體模組的有效資料數分佈;排序有效資料數分佈以產生已排序有效資料數分佈;計算在已排序有效資料數分佈上,對應第一實體抹除單元的斜率值;判斷此斜率值是否小於斜率門檻值;倘若斜率值小於斜率門檻值時,判斷上述第一實體抹除單元的數目符合預先定義條件;以及倘若此斜率值非小於斜率門檻值時,判斷上述第一實體抹除單元的數目不符合預先定義條件。
在本發明的一範例實施例中,上述記憶體管理方法更包括:將上述第一實體抹除單元的數目除以初始保留在閒置區的實體抹除單元的數目以獲得斜率值;判斷此斜率值是否小於斜率門檻值;倘若斜率值小於斜率門檻值時,判斷上述第一實體抹除單元的數目符合預先定義條件;以及倘若此斜率值非小於斜率門檻值時,判斷上述第一實體抹除單元的數目不符合預先定義條件。
本發明的一範例實施例提出一種用於控制可複寫式非揮發性記憶體模組的記憶體控制電路單元,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元且每一個實體抹除單元具有多個實體程式化單元。此記憶體控制電路單元包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統,記憶體介面用以耦接至可複寫式非揮發性記憶體模組,以及記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路用以記錄每一實體抹除單元的有效資料數,並識別多個第一實體抹除單元,其中第一實體抹除單元的有效資料數介於第一預定值與第二預定值之間。倘若此些第一實體抹除單元的數目符合預先定義條件時,記憶體管理電路更用以從此些第一實體抹除單元之中選取一第二實體抹除單元,下達一指令序列將第二實體抹除單元中的多個有效資料複製至第三實體抹除單元,並對第二實體抹除單元進行抹除操作。
在本發明的一範例實施例中,上述記憶體管理電路更用以將上述實體抹除單元至少分組為資料區與閒置區並且從閒置區中選取上述第三實體抹除單元,其中上述第一實體抹除單元是被分組至資料區。
在本發明的一範例實施例中,倘若上述第一實體抹除單元的所述數目不符合所述預先定義條件時,上述記憶體管理電路更用以從資料區中選取第四實體抹除單元,下達一指令序列將第四實體抹除單元中的多個有效資料複製至上述第三實體抹除單元,並對第四實體抹除單元進行抹除操作,其中第四實體抹除單元的有效資料數小於資料區中其他實體抹除單元的有效資料數。
在本發明的一範例實施例中,上述記憶體管理電路更用以根據資料區的實體抹除單元的有效資料數,產生對應可複寫式非揮發性記憶體模組的有效資料數分佈,排序有效資料數分佈以產生已排序有效資料數分佈,計算在已排序有效資料數分佈上,對應第一實體抹除單元的斜率值,並且判斷此斜率值是否小於斜率門檻值。倘若斜率值小於斜率門檻值時,上述記憶體管理電路判斷上述第一實體抹除單元的數目符合預先定義條件,並且倘若此斜率值非小於斜率門檻值時,上述記憶體管理電路更判斷上述第一實體抹除單元的數目不符合預先定義條件。
在本發明的一範例實施例中,上述記憶體管理電路更用以將上述第一實體抹除單元的數目除以初始保留在閒置區的實體抹除單元的數目以獲得斜率值並且判斷此斜率值是否小於斜率門檻值。倘若斜率值小於斜率門檻值時,上述記憶體管理電路判斷上述第一實體抹除單元的數目符合預先定義條件,並且倘若此斜率值非小於斜率門檻值時,上述記憶體管理電路更判斷上述第一實體抹除單元的數目不符合預先定義條件。
本發明的一範例實施例提出一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體抹除單元且每一個實體抹除單元具有多個實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。記憶體控制電路單元用以記錄每一實體抹除單元的有效資料數,並識別多個第一實體抹除單元,其中第一實體抹除單元的有效資料數介於第一預定值與第二預定值之間。倘若此些第一實體抹除單元的數目符合預先定義條件時,記憶體控制電路單元更用以從此些第一實體抹除單元之中選取一第二實體抹除單元,將第二實體抹除單元中的多個有效資料複製至第三實體抹除單元,並對第二實體抹除單元進行抹除操作。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以將上述實體抹除單元至少分組為資料區與閒置區並且從閒置區中選取上述第三實體抹除單元,其中上述第一實體抹除單元是被分組至資料區。
在本發明的一範例實施例中,倘若上述第一實體抹除單元的所述數目不符合所述預先定義條件時,上述記憶體控制電路單元更用以從資料區中選取第四實體抹除單元,將第四實體抹除單元中的多個有效資料複製至上述第三實體抹除單元,並對第四實體抹除單元進行抹除操作,其中第四實體抹除單元的有效資料數小於資料區中其他實體抹除單元的有效資料數。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以根據資料區的實體抹除單元的有效資料數,產生對應可複寫式非揮發性記憶體模組的有效資料數分佈,排序有效資料數分佈以產生已排序有效資料數分佈,計算在已排序有效資料數分佈上,對應第一實體抹除單元的斜率值,並且判斷此斜率值是否小於斜率門檻值。倘若斜率值小於斜率門檻值時,上述記憶體控制電路單元判斷上述第一實體抹除單元的數目符合預先定義條件,並且倘若此斜率值非小於斜率門檻值時,上述記憶體控制電路單元更判斷上述第一實體抹除單元的數目不符合預先定義條件。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以將上述第一實體抹除單元的數目除以初始保留在閒置區的實體抹除單元的數目以獲得斜率值並且判斷此斜率值是否小於斜率門檻值。倘若斜率值小於斜率門檻值時,上述記憶體控制電路單元判斷上述第一實體抹除單元的數目符合預先定義條件,並且倘若此斜率值非小於斜率門檻值時,上述記憶體控制電路單元更判斷上述第一實體抹除單元的數目不符合預先定義條件。
在本發明的一範例實施例中,上述斜率門檻值為T,並且0.5≦T≦0.9。
在本發明的一範例實施例中,上述斜率門檻值為0.8。
基於上述,本範例實施例的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,是藉由記錄實體抹除單元的有效資料數識別出有效資料數介於特定範圍的實體抹除單元,並且根據有效資料數介於特定範圍的實體抹除單元來選擇此特定範圍的實體抹除單元或具最小有效資料數的實體抹除單元來執行垃圾蒐集操作,基此,由此可避免實體抹除單元因部分實體程式化單元存有有效資料而無法有效利用,提升寫入效能,並延長可複寫式非揮發性記憶體的壽命。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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會根據錯誤校正碼框中的錯誤校正碼來驗證所讀取之資料的正確性。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
以下描述記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512所執行的操作,亦可參考為由記憶體控制電路單元404所執行。
一般來說,在記憶體儲存裝置10出廠之前,製造商會使用量產工具(Mass Production tool,MP tool)來對記憶體儲存裝置10執行開卡操作,以執行初始化動作。請參照圖6,例如,記憶體管理電路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。
請參照圖7,記憶體管理電路502會配置邏輯單元LBA(0)~LBA(H)以映射資料區602的實體抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統11欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體管理電路502會從閒置區604中提取一個實體抹除單元來寫入資料,以輪替資料區602的實體抹除單元。在本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。
為了識別每個邏輯單元的資料被儲存在哪個實體抹除單元,在本範例實施例中,記憶體管理電路502會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統11欲在邏輯子單元中存取資料時,記憶體管理電路502會確認此邏輯子單元所屬的邏輯單元,並且在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體管理電路502會在可複寫式非揮發性記憶體模組406中儲存邏輯-實體映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體管理電路502會將邏輯-實體映射表載入至緩衝記憶體508來維護。
值得一提的是,由於緩衝記憶體508的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體管理電路502會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯-實體映射表。特別是,當記憶體管理電路502欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯-實體映射表會被載入至緩衝記憶體508來被更新。
圖8是根據一範例實施例所繪示的資料更新示意圖。
請參照圖8,如上所述,在可複寫式非揮發性記憶體模組406中,提供给主機系統11存取的是資料區502的實體抹除單元,而資料區502與閒置區504的實體抹除單元會以輪替方式來儲存使用者資料。例如,倘若邏輯單元LBA(0)的原資料被程式化至實體抹除單元410(0)的情況下,主機系統11更新邏輯單元LBA(0)中部分邏輯位址的資料時,更新的資料會被程式化至另一個實體抹除單元410(F)中,此時實體抹除單元410(0)中的部分資料會被標示為無效(見斜線部分)且部分資料為有效(見網點部分)。特別是,在資料區502中有效資料數介於中間值的實體抹除單元(即,部分資料已被更新的實體抹除單元),由於有效資料數不是最少的,因此,若執行垃圾收集操作時僅選擇具最小有效資料數的實體抹除單元時,此些有效資料數介於中間值的實體抹除單元上的有效資料有較低的機率會被合併,造成閒置區504中可用的實體抹除單元的數目下降並使得執行寫入操作的可用實體抹除單元減少,而影響執行寫入操作的效能。在本範例實施例中,執行垃圾收集操作時,記憶體管理電路502會根據資料區502內的各實體抹除單元的有效資料數,來選擇具最小有效資料數的實體抹除單元或是有效資料數介於中間值的實體抹除單元來執行有效資料合併。
例如,記憶體管理電路502會記錄每一實體抹除單元的有效資料數,並且根據資料區502的實體抹除單元的有效資料數,識別出有效資料數介於第一預定值與第二預定值之間的實體抹除單元(以下稱為第一實體抹除單元)。在此,第一預定值與第二預定值是根據實體抹除單元的容量而設定,例如,第一預定值為實體抹除單元容量的33%且第二預定值為實體抹除單元容量的80%。然而,必須了解的是,第一預定值與第二預定值的設定不限於此。例如,第一設定值亦可為實體抹除單元容量的30%或者第二預定值亦可為實體抹除單元容量的90%。
在本範例實施例中,記憶體管理電路502會判斷有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數量是否符合預先定義條件。倘若有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數量符合預先定義條件時,記憶體管理電路502會從有效資料數介於第一預定值與第二預定值之間的實體抹除單元中選取實體抹除單元(以下稱為第二實體抹除單元)來執行垃圾收集操作,以將第二實體抹除單元中的有效資料複製到閒置區504中空的實體抹除單元(以下稱為第三實體抹除單元)並對第二實體抹除單元執行抹除操作。例如,記憶體管理電路502會從有效資料數介於第一預定值與第二預定值之間的實體抹除單元中隨機選擇一個實體抹除單元。倘若有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數量不符合預先定義條件時,記憶體管理電路502會資料區502中選取具有最小有效資料數的實體抹除單元(以下稱為第四實體抹除單元)來執行垃圾收集操作,以將第四實體抹除單元中的有效資料複製到第三實體抹除單元並對第四實體抹除單元執行抹除操作。
例如,記憶體管理電路502會根據資料區502的實體抹除單元的有效資料數,產生對應的有效資料數分佈,並且排序此有效資料數分佈以產生已排序有效資料分佈(見圖9)。之後,在此已排序有效資料分佈上,計算對應有效資料數介於第一預定值與第二預定值之間的實體抹除單元的線段的斜率值。特別是,記憶體管理電路502會判斷此斜率值是否小於一個斜率門檻值。倘若此斜率值小於斜率門檻值時,記憶體管理電路502判斷有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數目符合預先定義條件,並且從有效資料數介於第一預定值與第二預定值之間的實體抹除單元中選取實體抹除單元來執行垃圾收集操作。反之,倘若此斜率值非小於斜率門檻值時,記憶體管理電路502判斷有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數目不符合預先定義條件,並且從資料區502中選取具最小有效資料的實體抹除單元來執行垃圾收集操作。在此,斜率門檻值為T且被設定為0.8,然而必須了解的是,本發明不限於此,在另一範例實施例中,T亦可被設定為0.5、0.5與0.8之間、0.8與0.9之間、0.9或其他適當的值。
圖10是根據一範例實施例所繪示的記憶體管理方法的流程圖。
請參照圖10,在步驟S1001中,記憶體管理電路502記錄每一所述實體抹除單元的有效資料數。
在步驟S1003中,記憶體管理電路502會根據資料區502的實體抹除單元的有效資料數,產生對應可複寫式非揮發性記憶體模組406的有效資料數分佈並排序此有效資料數分佈以產生已排序有效資料數分佈。之後,在步驟S1005中,記憶體管理電路502會計算在已排序有效資料數分佈上,對應有效資料數介於第一預定值與第二預定值之間的實體抹除單元(即,第一實體抹除單元)的斜率值,並且在步驟S1007中,記憶體管理電路502會判斷所計算出的斜率值是否小於斜率門檻值。
倘若所計算出的斜率值小於斜率門檻值時,在步驟S1009中,記憶體管理電路502會從第一實體抹除單元中選取第二實體抹除單元來執行垃圾收集操作,以將第二實體抹除單元中的有效資料複製到第三實體抹除單元並對第二實體抹除單元執行抹除操作。
倘若所計算出的斜率值非小於斜率門檻值時,在步驟S1011中,記憶體管理電路502會從資料區502中選取據最小有效資料數的第四實體抹除單元來執行垃圾收集操作,以將第四實體抹除單元中的有效資料複製到第三實體抹除單元並對第四實體抹除單元執行抹除操作。
必須了解的是,透過已排序的有效資料分佈來計算對應有效資料數介於第一預定值與第二預定值之間的實體抹除單元的斜率值,僅為一範例,本發明不限於此。在另一範例實施例中,記憶體管理電路502亦可將有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數目除以初始保留在閒置區604的實體抹除單元的數目來估計上述斜率值。具體來說,如上所述,在記憶體儲存裝置10出廠之前,製造商會使用量產工具來對記憶體儲存裝置10執行開卡操作,以執行初始化出資料區602、閒置區604、系統區606與取代區608。資料區602的實體抹除單元為記憶體儲存裝置10的使用者容量,閒置區604的實體抹除單元是用來輪替資料區602的實體抹除單元,倘若有效資料數介於第一預定值與第二預定值之間的實體抹除單元越多時,表示閒置區604中可用的實體抹除單元越少,而已被使用的比率可藉由將有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數目除以初始保留在閒置區604的實體抹除單元的數目來獲得。
圖11是根據另一範例實施例所繪示的記憶體管理方法的流程圖。
請參照圖11,在步驟S1101中,記憶體管理電路502記錄每一所述實體抹除單元的有效資料數。
在步驟S1103中,記憶體管理電路502將有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數目除以初始保留在閒置區604的實體抹除單元的數目來估算一個斜率值,並且在步驟S1105中,記憶體管理電路502會判斷所計算出的斜率值是否小於斜率門檻值。
倘若所計算出的斜率值小於斜率門檻值時,在步驟S1107中,記憶體管理電路502會從第一實體抹除單元中選取第二實體抹除單元來執行垃圾收集操作,以將第二實體抹除單元中的有效資料複製到第三實體抹除單元並對第二實體抹除單元執行抹除操作。
倘若所計算出的斜率值非小於斜率門檻值時,在步驟S1109中,記憶體管理電路502會從資料區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(F-1)、410(F)、410(F+1)、410(S-1)、410(S)、410(S+1)、410(R-1)、410(R)、410(R+1)、410(N)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
S1001‧‧‧記錄每一所述實體抹除單元的有效資料數的步驟
S1003‧‧‧根據資料區的實體抹除單元的有效資料數,產生對應可複寫式非揮發性記憶體模組的有效資料數分佈並排序此有效資料數分佈以產生已排序有效資料數分佈的步驟
S1005‧‧‧計算在已排序有效資料數分佈上,對應有效資料數介於第一預定值與第二預定值之間的實體抹除單元(即,第一實體抹除單元)的斜率值的步驟
S1007‧‧‧判斷所計算出的斜率值是否小於斜率門檻值的步驟
S1009‧‧‧從第一實體抹除單元中選取第二實體抹除單元來執行垃圾收集操作,以將第二實體抹除單元中的有效資料複製到第三實體抹除單元並對第二實體抹除單元執行抹除操作的步驟
S1011‧‧‧從資料區中選取據最小有效資料數的第四實體抹除單元來執行垃圾收集操作,以將第四實體抹除單元中的有效資料複製到第三實體抹除單元並對第四實體抹除單元執行抹除操作的步驟
S1101‧‧‧記錄每一所述實體抹除單元的有效資料數的步驟
S1103‧‧‧將有效資料數介於第一預定值與第二預定值之間的實體抹除單元的數目除以初始保留在閒置區的實體抹除單元的數目來估算一個斜率值的步驟
S1105‧‧‧判斷所計算出的斜率值是否小於斜率門檻值的步驟
S1107‧‧‧從第一實體抹除單元中選取第二實體抹除單元來執行垃圾收集操作,以將第二實體抹除單元中的有效資料複製到第三實體抹除單元並對第二實體抹除單元執行抹除操作的步驟
S1109‧‧‧從資料區中選取據最小有效資料數的第四實體抹除單元來執行垃圾收集操作,以將第四實體抹除單元中的有效資料複製到第三實體抹除單元並對第四實體抹除單元執行抹除操作的步驟
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。 圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。 圖8是根據一範例實施例所繪示的資料更新示意圖。 圖9是根據一範例實施例所繪示的已排序有效資料分佈圖。 圖10是根據一範例實施例所繪示的記憶體管理方法的流程圖。 圖11是根據另一範例實施例所繪示的記憶體管理方法的流程圖。
Claims (20)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,所述多個實體抹除單元的每一個實體抹除單元具有多個實體程式化單元,所述記憶體管理方法包括:記錄所述多個實體抹除單元中每一個實體抹除單元的一有效資料數;識別所述多個實體抹除單元之中的多個第一實體抹除單元,其中所述多個第一實體抹除單元的每個第一實體抹除單元的有效資料數介於一第一預定值與一第二預定值之間;以及倘若所述多個第一實體抹除單元的一數目符合一預先定義條件時,從所述多個第一實體抹除單元之中選取一第二實體抹除單元,將所述第二實體抹除單元中的多個有效資料複製至所述多個實體抹除單元之中的一第三實體抹除單元,並對所述第二實體抹除單元進行一抹除操作。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括:將所述多個實體抹除單元至少分組為一資料區與一閒置區;以及從所述閒置區中選取所述第三實體抹除單元,其中所述多個第一實體抹除單元是被分組至所述資料區。
- 如申請專利範圍第2項所述的記憶體管理方法,更包括:倘若所述多個第一實體抹除單元的所述數目不符合所述預先 定義條件時,從所述資料區中選取一第四實體抹除單元,將所述第四實體抹除單元中的多個有效資料複製至所述多個實體抹除單元之中的所述第三實體抹除單元,並對所述第四實體抹除單元進行所述抹除操作,其中所述第四實體抹除單元的有效資料數小於所述資料區中其他實體抹除單元的有效資料數。
- 如申請專利範圍第3項所述的記憶體管理方法,更包括:根據所述資料區的實體抹除單元的有效資料數,產生對應所述可複寫式非揮發性記憶體模組的一有效資料數分佈;排序所述有效資料數分佈以產生一已排序有效資料數分佈;計算在所述已排序有效資料數分佈上,對應所述多個第一實體抹除單元的一斜率值;判斷所述斜率值是否小於一斜率門檻值;倘若所述斜率值小於所述斜率門檻值時,判斷所述多個第一實體抹除單元的所述數目符合所述預先定義條件;以及倘若所述斜率值非小於所述斜率門檻值時,判斷所述多個第一實體抹除單元的所述數目不符合所述預先定義條件。
- 如申請專利範圍第3項所述的記憶體管理方法,更包括:將所述多個第一實體抹除單元的數目除以初始保留在所述閒置區的實體抹除單元的數目以獲得一斜率值;判斷所述斜率值是否小於一斜率門檻值;倘若所述斜率值小於所述斜率門檻值時,判斷所述多個第一實體抹除單元的所述數目符合所述預先定義條件;以及 倘若所述斜率值非小於所述斜率門檻值時,判斷所述多個第一實體抹除單元的所述數目不符合所述預先定義條件。
- 如申請專利範圍第4項所述的記憶體管理方法,其中所述斜率門檻值為T,並且0.5≦T≦0.9。
- 如申請專利範圍第6項所述的記憶體管理方法,其中所述斜率門檻值為0.8。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,所述多個實體抹除單元的每一個實體抹除單元具有多個實體程式化單元;以及一記憶體管理電路,耦接至所述主機介面與所述記憶體介面,其中所述記憶體管理電路用以記錄所述多個實體抹除單元中每一個實體抹除單元的一有效資料數,其中所述記憶體管理電路更用以識別所述多個實體抹除單元之中的多個第一實體抹除單元,其中所述多個第一實體抹除單元的每個第一實體抹除單元的有效資料數介於一第一預定值與一第二預定值之間,其中倘若所述多個第一實體抹除單元的一數目符合一預先定義條件時,所述記憶體管理電路更用以從所述多個第一實體抹除 單元之中選取一第二實體抹除單元,下達一指令序列以將所述第二實體抹除單元中的多個有效資料複製至所述多個實體抹除單元之中的一第三實體抹除單元,並對所述第二實體抹除單元進行一抹除操作。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中所述記憶體管理電路更用以將所述多個實體抹除單元至少分組為一資料區與一閒置區,其中所述記憶體管理電路是從所述閒置區中選取所述第三實體抹除單元,其中所述多個第一實體抹除單元是被分組至所述資料區。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中倘若所述多個第一實體抹除單元的所述數目不符合所述預先定義條件時,所述記憶體管理電路從所述資料區中選取一第四實體抹除單元,下達一指令序列以將所述第四實體抹除單元中的多個有效資料複製至所述多個實體抹除單元之中的所述第三實體抹除單元,並對所述第四實體抹除單元進行所述抹除操作,其中所述第四實體抹除單元的有效資料數小於所述資料區中其他實體抹除單元的有效資料數。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中所述記憶體管理電路更用以根據所述資料區的實體抹除單元的有效資料數,產生對應所述可複寫式非揮發性記憶體模組的一 有效資料數分佈,並且排序所述有效資料數分佈以產生一已排序有效資料數分佈,其中所述記憶體管理電路更用以計算在所述已排序有效資料數分佈上,對應所述多個第一實體抹除單元的一斜率值,並且判斷所述斜率值是否小於一斜率門檻值,其中倘若所述斜率值小於所述斜率門檻值時,所述記憶體管理電路判斷所述多個第一實體抹除單元的所述數目符合所述預先定義條件;以及其中倘若所述斜率值非小於所述斜率門檻值時,所述記憶體管理電路判斷所述多個第一實體抹除單元的所述數目不符合所述預先定義條件。
- 如申請專利範圍第10項所述的記憶體控制電路單元,其中所述記憶體管理電路更用以將所述多個第一實體抹除單元的數目除以初始保留在所述閒置區的實體抹除單元的數目以獲得一斜率值,並且判斷所述斜率值是否小於一斜率門檻值,其中倘若所述斜率值小於所述斜率門檻值時,所述記憶體管理電路判斷所述多個第一實體抹除單元的所述數目符合所述預先定義條件;以及其中倘若所述斜率值非小於所述斜率門檻值時,所述記憶體管理電路判斷所述多個第一實體抹除單元的所述數目不符合所述預先定義條件。
- 如申請專利範圍第11項所述的記憶體控制電路單元,其中所述斜率門檻值為T,並且0.5≦T≦0.9。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體抹除單元,所述多個實體抹除單元的每一個實體抹除單元具有多個實體程式化單元;以及一記憶體控制電路單元,耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以記錄所述多個實體抹除單元中每一個實體抹除單元的一有效資料數,其中所述記憶體控制電路單元更用以識別所述多個實體抹除單元之中的多個第一實體抹除單元,其中所述多個第一實體抹除單元的每個第一實體抹除單元的有效資料數介於一第一預定值與一第二預定值之間,其中倘若所述多個第一實體抹除單元的一數目符合一預先定義條件時,所述記憶體控制電路單元更用以從所述多個第一實體抹除單元之中選取一第二實體抹除單元,將所述第二實體抹除單元中的多個有效資料複製至所述多個實體抹除單元之中的一第三實體抹除單元,並對所述第二實體抹除單元進行一抹除操作。
- 如申請專利範圍第14項所述的記憶體儲存裝置,其中所述記憶體管理電路更用以將所述多個實體抹除單元至少分組為一資料區與一閒置區,其中所述記憶體控制電路單元是從所述閒置區中選取所述第三實體抹除單元,其中所述多個第一實體抹除單元是被分組至所述資料區。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中倘若所述多個第一實體抹除單元的所述數目不符合所述預先定義條件時,所述記憶體控制電路單元從所述資料區中選取一第四實體抹除單元,以將所述第四實體抹除單元中的多個有效資料複製至所述多個實體抹除單元之中的所述第三實體抹除單元,並對所述第四實體抹除單元進行所述抹除操作,其中所述第四實體抹除單元的有效資料數小於所述資料區中其他實體抹除單元的有效資料數。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中所述記憶體控制電路單元更用以根據所述資料區的實體抹除單元的有效資料數,產生對應所述可複寫式非揮發性記憶體模組的一有效資料數分佈,並且排序所述有效資料數分佈以產生一已排序有效資料數分佈,其中所述記憶體控制電路單元更用以計算在所述已排序有效資料數分佈上,對應所述多個第一實體抹除單元的一斜率值,並且判斷所述斜率值是否小於一斜率門檻值, 其中倘若所述斜率值小於所述斜率門檻值時,所述記憶體控制電路單元判斷所述多個第一實體抹除單元的所述數目符合所述預先定義條件;以及其中倘若所述斜率值非小於所述斜率門檻值時,所述記憶體管理電路判斷所述多個第一實體抹除單元的所述數目不符合所述預先定義條件。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中所述記憶體控制電路單元更用以將所述多個第一實體抹除單元的數目除以初始保留在所述閒置區的實體抹除單元的數目以獲得一斜率值,並且判斷所述斜率值是否小於一斜率門檻值,其中倘若所述斜率值小於所述斜率門檻值時,所述記憶體控制電路單元判斷所述多個第一實體抹除單元的所述數目符合所述預先定義條件;以及其中倘若所述斜率值非小於所述斜率門檻值時,所述記憶體控制電路單元判斷所述多個第一實體抹除單元的所述數目不符合所述預先定義條件。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中所述斜率門檻值為T,並且0.5≦T≦0.9。
- 如申請專利範圍第19項所述的記憶體儲存裝置,其中所述斜率門檻值為0.8。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106118213A TWI642059B (zh) | 2017-06-02 | 2017-06-02 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US15/655,895 US9983805B1 (en) | 2017-06-02 | 2017-07-21 | Memory management method, memory control circuit unit and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106118213A TWI642059B (zh) | 2017-06-02 | 2017-06-02 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI642059B true TWI642059B (zh) | 2018-11-21 |
TW201903779A TW201903779A (zh) | 2019-01-16 |
Family
ID=62165766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106118213A TWI642059B (zh) | 2017-06-02 | 2017-06-02 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9983805B1 (zh) |
TW (1) | TWI642059B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI702497B (zh) * | 2018-12-26 | 2020-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI762843B (zh) * | 2019-12-12 | 2022-05-01 | 大陸商深圳大心電子科技有限公司 | 儲存控制器、記憶體管理方法與儲存裝置 |
CN113010444A (zh) * | 2019-12-20 | 2021-06-22 | 深圳大心电子科技有限公司 | 存储控制器、存储器管理方法与存储装置 |
TWI766582B (zh) * | 2021-02-17 | 2022-06-01 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150026391A1 (en) * | 2013-07-17 | 2015-01-22 | Lite-On It Corporation | Block grouping method for garbage collection of solid state drive |
US20150026389A1 (en) * | 2013-07-17 | 2015-01-22 | Lite-On It Corporation | Block grouping method for solid state drive |
US20170052720A1 (en) * | 2015-08-19 | 2017-02-23 | Phison Electronics Corp. | Data protection method, memory contorl circuit unit and memory storage apparatus |
US20170083436A1 (en) * | 2015-09-22 | 2017-03-23 | Samsung Electronics Co., Ltd. | Memory controller, non-volatile memory system, and method operating same |
US9652330B2 (en) * | 2013-11-28 | 2017-05-16 | Phison Electronics Corp. | Method for data management and memory storage device and memory control circuit unit |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI591640B (zh) * | 2016-01-08 | 2017-07-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
-
2017
- 2017-06-02 TW TW106118213A patent/TWI642059B/zh active
- 2017-07-21 US US15/655,895 patent/US9983805B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150026391A1 (en) * | 2013-07-17 | 2015-01-22 | Lite-On It Corporation | Block grouping method for garbage collection of solid state drive |
US20150026389A1 (en) * | 2013-07-17 | 2015-01-22 | Lite-On It Corporation | Block grouping method for solid state drive |
US9652330B2 (en) * | 2013-11-28 | 2017-05-16 | Phison Electronics Corp. | Method for data management and memory storage device and memory control circuit unit |
US20170052720A1 (en) * | 2015-08-19 | 2017-02-23 | Phison Electronics Corp. | Data protection method, memory contorl circuit unit and memory storage apparatus |
US20170083436A1 (en) * | 2015-09-22 | 2017-03-23 | Samsung Electronics Co., Ltd. | Memory controller, non-volatile memory system, and method operating same |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI702497B (zh) * | 2018-12-26 | 2020-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
Publication number | Publication date |
---|---|
TW201903779A (zh) | 2019-01-16 |
US9983805B1 (en) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI579693B (zh) | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI557561B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI579696B (zh) | 資料重建方法與系統及其記憶體控制電路單元 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI615711B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI658361B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI602061B (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI582776B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI642059B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI725416B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201945927A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI591640B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI629590B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI635495B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI571881B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 |