TWI554884B - 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI554884B TWI554884B TW104123602A TW104123602A TWI554884B TW I554884 B TWI554884 B TW I554884B TW 104123602 A TW104123602 A TW 104123602A TW 104123602 A TW104123602 A TW 104123602A TW I554884 B TWI554884 B TW I554884B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- physical
- unit
- units
- 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
- 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
- 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/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
- 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
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)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,記憶體儲存裝置會透過執行垃圾收集(garbage collection)程序來釋放出可用的實體抹除單元,以供新的資料寫入。在執行垃圾收集時,記憶體儲存裝置會根據一個預先設定的垃圾回收比例值來決定每寫一個單位的資料,背景要收集多少單位的資料。然而,使用這個預先設定的垃圾回收比例值並無法因應有效資料在記憶體儲存裝置中的儲存狀態(例如,有效資料的資料量)而即時地增加或減少需要被提取有效資料的實體程式化單元,從而導致系統資源的浪費或導致資料存取速度沒有意義的下降。
本發明提供一種記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置,可改善執行資料整併程序時系統資源的浪費。
本發明的一範例實施例提供一種記憶體管理方法,其用於可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個實體程式化單元,所述實體程式化單元組成多個實體抹除單元,所述記憶體管理方法包括:接收第一寫入指令與對應於所述第一寫入指令的第一寫入資料並獲得第一數目;程式化至少部份的所述第一寫入資料並搬移儲存於所述實體程式化單元中的多個第一實體程式化單元中的第一儲存資料,其中所述第一實體程式化單元之總數符合所述第一數目;在接收到所述第一寫入指令之後,接收第二寫入指令與對應於所述第二寫入指令的第二寫入資料並獲得第二數目,其中所述第二數目與所述第一數目不同;程式化至少部份的所述第二寫入資料並搬移儲存於所述實體程式化單元中的多個第二實體程式化單元中的第二儲存資料,其中所述第二實體程式化單元之總數符合所述第二數目;以及抹除所述實體抹除單元中的至少一實體抹除單元,其中被抹除的所述實體抹除單元包含所述第一實體程式化單元中的至少一實體程式化單元或所述第二實體程式化單元中的至少一實體程式化單元。
在本發明的一範例實施例中,獲得所述第一數目的步驟包括根據實體單元計數與第一邏輯單元計數來獲得所述第一數目,獲得所述第二數目的步驟包括根據所述實體單元計數與第二邏輯單元計數來獲得所述第二數目,其中所述實體單元計數是對應於所述實體程式化單元中用以儲存來自主機系統之使用者資料的多個實體程式化單元之總數,其中所述第一邏輯單元計數是對應於接收到所述第一寫入指令時儲存有來自主機系統之使用者資料的至少一第一邏輯單元之數目,其中所述第二邏輯單元計數是對應於接收到所述第二寫入指令時儲存有來自主機系統之使用者資料的至少一第二邏輯單元之數目。
在本發明的一範例實施例中,根據所述實體單元計數與所述第一邏輯單元計數來獲得所述第一數目的步驟包括:將對應於所述實體單元計數的實體容量減去對應於所述第一邏輯單元計數的第一邏輯容量以獲得第一差值;以及根據所述實體容量與所述第一差值獲得所述第一數目,其中根據所述實體單元計數與所述第二邏輯單元計數來獲得所述第二數目的步驟包括:將所述實體容量減去對應於所述第二邏輯單元計數的第二邏輯容量以獲得第二差值;以及根據所述實體容量與所述第二差值獲得所述第二數目。
在本發明的一範例實施例中,根據所述實體單元計數與所述第一邏輯單元計數來獲得所述第一數目的步驟包括:根據參考計數、對應於所述實體單元計數的實體容量及第一儲存資料量來獲得所述第一數目,其中所述參考計數是對應於每一所述實體抹除單元所包含的多個實體程式化單元的總數,其中所述第一儲存資料量是對應於接收到所述第一寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量,其中根據所述實體單元計數與所述第二邏輯單元計數來獲得所述第二數目的步驟包括:根據所述參考計數、所述實體容量及第二儲存資料量來獲得所述第二數目,其中所述第二儲存資料量是對應於接收到所述第二寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量。
在本發明的一範例實施例中,程式化所述至少部份的所述第一寫入資料並搬移所述第一儲存資料的步驟包括:將所述至少部份的所述第一寫入資料寫入至所述實體程式化單元中的第三實體程式化單元;以及將所述第一儲存資料從所述第一實體程式化單元搬移至所述實體程式化單元中的多個第四實體程式化單元,其中所述第四實體程式化單元之總數符合所述第一數目,其中程式化所述至少部份的所述第二寫入資料並搬移所述第二儲存資料的步驟包括:將所述至少部份的所述第二寫入資料寫入至所述實體程式化單元中的第五實體程式化單元;以及將所述第二儲存資料從所述第二實體程式化單元搬移至所述實體程式化單元中的多個第六實體程式化單元,其中所述第六實體程式化單元之總數符合所述第二數目。
在本發明的一範例實施例中,每一所述實體程式化單元為實體頁面。
在本發明的一範例實施例中,所述記憶體管理方法更包括:判斷所述實體抹除單元中的多個閒置實體抹除單元的數目是否符合預設數目;若判定所述閒置實體抹除單元的所述數目符合所述預設數目,執行資料整併程序;以及若判定所述閒置實體抹除單元的所述數目不符合所述預設數目,不執行所述資料整併程序,其中搬移所述第一儲存資料的步驟與搬移所述第二儲存資料的步驟是包含於所述資料整併程序中。
在本發明的一範例實施例中,所述第一邏輯單元計數與接收到所述第一寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關,其中所述第二邏輯單元計數與接收到所述第二寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關。
在本發明的一範例實施例中,獲得所述第一數目的步驟包括:根據在第一時間點儲存有資料的邏輯單元之容量與所述可複寫式非揮發性記憶體模組提供以儲存使用者資料的額定容量之關係來獲得所述第一數目,其中獲得所述第二數目的步驟包括:根據在第二時間點儲存有資料的邏輯單元之容量與所述可複寫式非揮發性記憶體模組提供以儲存使用者資料的所述額定容量之關係來獲得所述第二數目,其中所述第二時間點晚於所述第一時間點。
在本發明的一範例實施例中,所述第一儲存資料與所述第二儲存資料皆為有效資料。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個實體程式化單元,所述實體程式化單元組成多個實體抹除單元。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面,其中所述記憶體管理電路用以接收第一寫入指令與對應於所述第一寫入指令的第一寫入資料並獲得第一數目,其中所述記憶體管理電路更用以發送第一指令序列,以指示程式化至少部份的所述第一寫入資料並搬移儲存於所述實體程式化單元中的多個第一實體程式化單元中的第一儲存資料,其中所述第一實體程式化單元之總數符合所述第一數目,其中在接收到所述第一寫入指令之後,所述記憶體管理電路更用以接收第二寫入指令與對應於所述第二寫入指令的第二寫入資料並獲得第二數目,其中所述第二數目與所述第一數目不同,其中所述記憶體管理電路更用以發送第二指令序列,以指示程式化至少部份的所述第二寫入資料並搬移儲存於所述實體程式化單元中的多個第二實體程式化單元中的第二儲存資料,其中所述第二實體程式化單元之總數符合所述第二數目,其中所述記憶體管理電路更用以發送第三指令序列,以指示抹除所述實體抹除單元中的至少一實體抹除單元,其中被抹除的所述實體抹除單元包含所述第一實體程式化單元中的至少一實體程式化單元或所述第二實體程式化單元中的至少一實體程式化單元。
在本發明的一範例實施例中,所述記憶體管理電路是根據實體單元計數與第一邏輯單元計數來獲得所述第一數目,其中所述記憶體管理電路是根據所述實體單元計數與第二邏輯單元計數來獲得所述第二數目,其中所述實體單元計數是對應於所述實體程式化單元中用以儲存來自主機系統之使用者資料的多個實體程式化單元之總數,其中所述第一邏輯單元計數是對應於接收到所述第一寫入指令時儲存有來自主機系統之使用者資料的至少一第一邏輯單元之數目,其中所述第二邏輯單元計數是對應於接收到所述第二寫入指令時儲存有來自主機系統之使用者資料的至少一第二邏輯單元之數目。
在本發明的一範例實施例中,所述記憶體管理電路根據所述實體單元計數與所述第一邏輯單元計數來獲得所述第一數目的操作包括:將對應於所述實體單元計數的實體容量減去對應於所述第一邏輯單元計數的第一邏輯容量以獲得第一差值;以及根據所述實體容量與所述第一差值獲得所述第一數目,其中所述記憶體管理電路根據所述實體單元計數與所述第二邏輯單元計數來獲得所述第二數目的操作包括:將所述實體容量減去對應於所述第二邏輯單元計數的第二邏輯容量以獲得第二差值;以及根據所述實體容量與所述第二差值獲得所述第二數目。
在本發明的一範例實施例中,所述記憶體管理電路根據所述實體單元計數與所述第一邏輯單元計數來獲得所述第一數目的操作包括:根據參考計數、對應於所述實體單元計數的實體容量及第一儲存資料量來獲得所述第一數目,其中所述參考計數是對應於每一所述實體抹除單元所包含的多個實體程式化單元的總數,其中所述第一儲存資料量是對應於接收到所述第一寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量,其中所述記憶體管理電路根據所述實體單元計數與所述第二邏輯單元計數來獲得所述第二數目的操作包括:根據所述參考計數、所述實體容量及第二儲存資料量來獲得所述第二數目,其中所述第二儲存資料量是對應於接收到所述第二寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量。
在本發明的一範例實施例中,所述第一指令序列是指示將所述至少部份的所述第一寫入資料寫入至所述實體程式化單元中的第三實體程式化單元並且將所述第一儲存資料從所述第一實體程式化單元搬移至所述實體程式化單元中的多個第四實體程式化單元,其中所述第四實體程式化單元之總數符合所述第一數目,其中所述第二指令序列是指示將所述至少部份的所述第二寫入資料寫入至所述實體程式化單元中的第五實體程式化單元並且將所述第二儲存資料從所述第二實體程式化單元搬移至所述實體程式化單元中的多個第六實體程式化單元,其中所述第六實體程式化單元之總數符合所述第二數目。
在本發明的一範例實施例中,每一所述實體程式化單元為實體頁面。
在本發明的一範例實施例中,所述記憶體管理電路更用以判斷所述實體抹除單元中的多個閒置實體抹除單元的數目是否符合預設數目,其中若判定所述閒置實體抹除單元的所述數目符合所述預設數目,所述記憶體管理電路更用以執行資料整併程序,其中若判定所述閒置實體抹除單元的所述數目不符合所述預設數目,所述記憶體管理電路不執行所述資料整併程序,其中所述記憶體管理電路發送所述第一指令序列的操作與發送所述第二指令序列的操作是包含於所述資料整併程序中。
在本發明的一範例實施例中,所述第一邏輯單元計數與接收到所述第一寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關,其中所述第二邏輯單元計數與接收到所述第二寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關。
在本發明的一範例實施例中,所述記憶體管理電路是根據在第一時間點儲存有資料的邏輯單元之容量與所述可複寫式非揮發性記憶體模組提供以儲存使用者資料的額定容量之關係來獲得所述第一數目,其中所述記憶體管理電路是根據在第二時間點儲存有資料的邏輯單元之容量與所述可複寫式非揮發性記憶體模組提供以儲存使用者資料的所述額定容量之關係來獲得所述第二數目,其中所述第二時間點晚於所述第一時間點。
在本發明的一範例實施例中,所述第一儲存資料與所述第二儲存資料皆為有效資料。
本發明的另一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體程式化單元,所述實體程式化單元組成多個實體抹除單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以接收第一寫入指令與對應於所述第一寫入指令的第一寫入資料並獲得第一數目,其中所述記憶體控制電路單元更用以發送第一指令序列,以指示程式化至少部份的所述第一寫入資料並搬移儲存於所述實體程式化單元中的多個第一實體程式化單元中的第一儲存資料,其中所述第一實體程式化單元之總數符合所述第一數目,其中在接收到所述第一寫入指令之後,所述記憶體控制電路單元更用以接收第二寫入指令與對應於所述第二寫入指令的第二寫入資料並獲得第二數目,其中所述第二數目與所述第一數目不同,其中所述記憶體控制電路單元更用以發送第二指令序列,以指示程式化至少部份的所述第二寫入資料並搬移儲存於所述實體程式化單元中的多個第二實體程式化單元中的第二儲存資料,其中所述第二實體程式化單元之總數符合所述第二數目,其中所述記憶體控制電路單元更用以發送第三指令序列,以指示抹除所述實體抹除單元中的至少一實體抹除單元,其中被抹除的所述實體抹除單元包含所述第一實體程式化單元中的至少一實體程式化單元或所述第二實體程式化單元中的至少一實體程式化單元。
在本發明的一範例實施例中,所述記憶體控制電路單元是根據實體單元計數與第一邏輯單元計數來獲得所述第一數目,其中所述記憶體控制電路單元是根據所述實體單元計數與第二邏輯單元計數來獲得所述第二數目,其中所述實體單元計數是對應於所述實體程式化單元中用以儲存來自主機系統之使用者資料的多個實體程式化單元之總數,其中所述第一邏輯單元計數是對應於接收到所述第一寫入指令時儲存有來自主機系統之使用者資料的至少一第一邏輯單元之數目,其中所述第二邏輯單元計數是對應於接收到所述第二寫入指令時儲存有來自主機系統之使用者資料的至少一第二邏輯單元之數目。
在本發明的一範例實施例中,所述記憶體控制電路單元根據所述實體單元計數與所述第一邏輯單元計數來獲得所述第一數目的操作包括:將對應於所述實體單元計數的實體容量減去對應於所述第一邏輯單元計數的第一邏輯容量以獲得第一差值;以及根據所述實體容量與所述第一差值獲得所述第一數目,其中所述記憶體控制電路單元根據所述實體單元計數與所述第二邏輯單元計數來獲得所述第二數目的操作包括:將所述實體容量減去對應於所述第二邏輯單元計數的第二邏輯容量以獲得第二差值;以及根據所述實體容量與所述第二差值獲得所述第二數目。
在本發明的一範例實施例中,所述記憶體控制電路單元根據所述實體單元計數與所述第一邏輯單元計數來獲得所述第一數目的操作包括:根據參考計數、對應於所述實體單元計數的實體容量及第一儲存資料量來獲得所述第一數目,其中所述參考計數是對應於每一所述實體抹除單元所包含的多個實體程式化單元的總數,其中所述第一儲存資料量是對應於接收到所述第一寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量,其中所述記憶體控制電路單元根據所述實體單元計數與所述第二邏輯單元計數來獲得所述第二數目的操作包括:根據所述參考計數、所述實體容量及第二儲存資料量來獲得所述第二數目,其中所述第二儲存資料量是對應於接收到所述第二寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量。
在本發明的一範例實施例中,所述第一指令序列是指示將所述至少部份的所述第一寫入資料寫入至所述實體程式化單元中的第三實體程式化單元並且將所述第一儲存資料從所述第一實體程式化單元搬移至所述實體程式化單元中的多個第四實體程式化單元,其中所述第四實體程式化單元之總數亦符合所述第一數目,其中所述第二指令序列是指示將所述至少部份的所述第二寫入資料寫入至所述實體程式化單元中的第五實體程式化單元並且將所述第二儲存資料從所述第二實體程式化單元搬移至所述實體程式化單元中的多個第六實體程式化單元,其中所述第六實體程式化單元之總數亦符合所述第二數目。
在本發明的一範例實施例中,每一所述實體程式化單元為實體頁面。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以判斷所述實體抹除單元中的多個閒置實體抹除單元的數目是否符合預設數目,其中若判定所述閒置實體抹除單元的所述數目符合所述預設數目,所述記憶體控制電路單元更用以執行資料整併程序,其中若判定所述閒置實體抹除單元的所述數目不符合所述預設數目,所述記憶體控制電路單元不執行所述資料整併程序,其中所述記憶體控制電路單元發送所述第一指令序列的操作與發送所述第二指令序列的操作是包含於所述資料整併程序中。
在本發明的一範例實施例中,所述第一邏輯單元計數與接收到所述第一寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關,其中所述第二邏輯單元計數與接收到所述第二寫入指令時儲存於所述可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關。
在本發明的一範例實施例中,所述記憶體控制電路單元是根據在第一時間點儲存有資料的邏輯單元之容量與所述可複寫式非揮發性記憶體模組提供以儲存使用者資料的額定容量之關係來獲得所述第一數目,其中所述記憶體控制電路單元是根據在第二時間點儲存有資料的邏輯單元之容量與所述可複寫式非揮發性記憶體模組提供以儲存使用者資料的所述額定容量之關係來獲得所述第二數目,其中所述第二時間點晚於所述第一時間點。
在本發明的一範例實施例中,所述第一儲存資料與所述第二儲存資料皆為有效資料。
基於上述,本發明所提供的記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置,可對應於不同的寫入指令從不同數目的實體程式化單元中搬移資料。藉此,可改善執行資料整併程序時系統資源的浪費。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
請參照圖1,主機系統11一般包括電腦12與輸入/輸出(input/output, I/O)裝置13。電腦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可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)31時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式儲存裝置36(如圖3所示)。嵌入式儲存裝置36包括嵌入式多媒體卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、安全數位(Secure Digital, SD)介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。
請參照圖5,可複寫式非揮發性記憶體模組406包括記憶胞陣列502、字元線控制電路504、位元線控制電路506、行解碼器(column decoder)508、資料輸入/輸出緩衝器510與控制電路512。
在本範例實施例中,記憶胞陣列502可包括用以儲存資料的多個記憶胞602、多個選擇閘汲極(select gate drain, SGD)電晶體612與多個選擇閘源極(select gate source, SGS)電晶體614、以及連接此些記憶胞的多條位元線604、多條字元線606、與共用源極線608(如圖6所示)。記憶胞602是以陣列方式(或立體堆疊的方式)配置在位元線604與字元線606的交叉點上。當從記憶體控制電路單元404接收到寫入指令或讀取指令時,控制電路512會控制字元線控制電路504、位元線控制電路506、行解碼器508、資料輸入/輸出緩衝器510來寫入資料至記憶胞陣列502或從記憶胞陣列502中讀取資料,其中字元線控制電路504用以控制施予至字元線606的電壓,位元線控制電路506用以控制施予至位元線604的電壓,行解碼器508依據指令中的列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器510用以暫存資料。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以臨界電壓的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,因而改變了記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為“把資料寫入至記憶胞”或“程式化記憶胞”。隨著臨界電壓的改變,記憶胞陣列502的每一個記憶胞具有多個儲存狀態。並且透過讀取電壓可以判斷記憶胞是屬於哪一個儲存狀態,藉此取得記憶胞所儲存的一或多個位元。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖7,記憶體控制電路單元404包括記憶體管理電路702、主機介面704及記憶體介面706。
記憶體管理電路702用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路702具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路702的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路702的控制指令是以韌體型式來實作。例如,記憶體管理電路702具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路702的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路702具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路702的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路702的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路702包括微控制器、實體單元管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。實體單元管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,實體單元管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。
主機介面704是耦接至記憶體管理電路702並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面704來傳送至記憶體管理電路702。在本範例實施例中,主機介面704是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面704亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面706是耦接至記憶體管理電路702並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面706轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路702要存取可複寫式非揮發性記憶體模組406,記憶體介面706會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行資料整併程序等等)的相對應的指令序列,在此不一一贅述。這些指令序列例如是由記憶體管理電路702產生並且透過記憶體介面706傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在一範例實施例中,記憶體控制電路單元404還包括錯誤檢查與校正電路708、緩衝記憶體710及電源管理電路712。
錯誤檢查與校正電路708是耦接至記憶體管理電路702並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路702從主機系統11中接收到寫入指令時,錯誤檢查與校正電路708會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路702會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路702從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路708會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
緩衝記憶體710是耦接至記憶體管理電路702並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
電源管理電路712是耦接至記憶體管理電路702並且用以控制記憶體儲存裝置10的電源。
圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的運作時,以“選擇”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元至少可被分類為下實體程式化單元與上實體程式化單元。例如,在MLC NAND型快閃記憶體中,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。
請參照圖8,記憶體管理電路702可將可複寫式非揮發性記憶體模組406的實體抹除單元800(0)~800(R)邏輯地劃分為多個區域,例如為儲存區802與系統區806。
儲存區802的實體抹除單元是用以儲存來自主機系統11的資料(即,使用者資料)。儲存區802中會儲存有效資料與無效資料。例如,當主機系統11要刪除一份有效資料時,被刪除的資料可能還是儲存在儲存區802中,但會被標記為無效資料。在以下範例實施例中,沒有儲存有效資料的實體抹除單元亦被稱為閒置(spare)實體抹除單元。例如,被抹除以後的實體抹除單元便會成為閒置實體抹除單元。此外,在以下範例實施例中,有儲存有效資料的實體抹除單元亦被稱為非閒置(non-spare)實體抹除單元。
在一範例實施例中,若儲存區802或系統區806中有實體抹除單元損壞時,儲存區802中的實體抹除單元也可以用來替換損壞的實體抹除單元。倘若儲存區802中沒有可用的實體抹除單元來替換損壞的實體抹除單元時,則記憶體管理電路702可能會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。
系統區806的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
在一範例實施例中,儲存區802與系統區806的實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至儲存區802與系統區806的分組關係可能會動態地變動。例如,當系統區806中的實體抹除單元損壞而被儲存區802的實體抹除單元取代時,則原本在儲存區802的實體抹除單元會被關聯至系統區806。
在本範例實施例中,記憶體管理電路702會配置邏輯單元810(0)~810(D)以映射至儲存區802中的實體抹除單元800(0)~800(A)。例如,在本範例實施例中,主機系統11是透過邏輯位址來存取儲存區802中的資料,因此,每一個邏輯單元810(0)~810(D)是指一個邏輯位址。此外,在一範例實施例中,每一個邏輯單元810(0)~810(D)也可以是指一個邏輯扇、一個邏輯頁、一個邏輯抹除單元或者由多個連續或不連續的邏輯位址組成。
在本範例實施例中,每一個邏輯單元810(0)~810(D)是映射至一或多個實體單元。每一個實體單元可以是指一個實體程式化單元、一個實體抹除單元或者由多個連續或不連續的實體位址組成。記憶體管理電路702會將邏輯單元與實體單元之間的映射關係記錄於至少一邏輯-實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路702可根據此邏輯-實體映射表來執行對於記憶體儲存裝置10的資料存取。
在本範例實施例中,在接收到來自主機系統11的寫入指令之後,儲存區802中的一個實體抹除單元會被用來儲存對應於此寫入指令的寫入資料。例如,若儲存區802中當前被用來儲存來自主機系統11之使用者資料的實體抹除單元尚有足夠的空間,則此寫入資料可以被儲存在此實體抹除單元;若儲存區802中當前被用來儲存來自主機系統11之使用者資料的實體抹除單元沒有足夠的空間,則此寫入資料可以被儲存在另一個閒置實體抹除單元。
在本範例實施例中,記憶體管理電路702會判斷儲存區802中剩餘的閒置實體抹除單元是否足夠。例如,記憶體管理電路702可以判斷儲存區802中剩餘的閒置實體抹除單元的數目是否等於或小於一臨界值;若儲存區802中剩餘的閒置實體抹除單元的數目等於或小於此臨界值,記憶體管理電路702可以判定此儲存區802中剩餘的閒置實體抹除單元不足;若儲存區802中剩餘的閒置實體抹除單元的數目大於於此臨界值,則記憶體管理電路702可以判定此儲存區802中剩餘的閒置實體抹除單元仍然足夠。
在本範例實施例中,判斷儲存區802中剩餘的閒置實體抹除單元是否足夠的操作是對應於所接收到的寫入指令而執行。例如,每接收到一個寫入指令,就會對應執行一次判斷儲存區802中剩餘的閒置實體抹除單元是否足夠的操作。然而,在另一範例實施例中,判斷儲存區802中剩餘的閒置實體抹除單元是否足夠的操作亦可以在背景(background)中持續執行或者僅對應於儲存區802中剩餘的閒置實體抹除單元之數目改變而執行(例如,某一個閒置實體抹除單元被選擇來儲存來自主機系統11之資料時)。
在一範例實施例中,判斷儲存區802中剩餘的閒置實體抹除單元的數目是否等於或小於一臨界值的操作亦可以視為是判斷儲存區802中剩餘的閒置實體抹除單元的數目是否符合一預設數目。例如,若儲存區802中剩餘的閒置實體抹除單元的數目等於或小於此臨界值,可視為儲存區802中剩餘的閒置實體抹除單元的數目符合此預設數目;若儲存區802中剩餘的閒置實體抹除單元的數目大於此臨界值,可視為儲存區802中剩餘的閒置實體抹除單元的數目不符合此預設數目。
在本範例實施例中,若判定儲存區802中的閒置實體抹除單元不足,記憶體管理電路702會指示可複寫式非揮發性記憶體模組406執行一資料整併程序。在本範例實施例中,此資料整併程序亦稱為垃圾回收(garbage collection)程序。此外,若判定儲存區802中的閒置實體抹除單元足夠,則記憶體管理電路702可選擇不執行資料整併程序。
在資料整併程序中,散布在儲存區802的部份有效資料會被收集並且集中搬移到某些實體抹除單元中,以釋放新的閒置實體抹除單元。若某一筆原始標記為有效資料的資料被從某一個非閒置實體抹除單元搬移出去,則此資料會在此非閒置實體抹除單元中被標記為無效資料。若某一個非閒置實體抹除單元所儲存的所有有效資料都已被搬移出去(即,此非閒置實體抹除單元所儲存的資料皆已標記為無效資料),則此非閒置實體抹除單元將可以被抹除而成為一個閒置實體抹除單元。在一範例實施例中,抹除某一個實體抹除單元的操作亦可視為是釋放一個閒置實體抹除單元。另一方面,在資料整併程序中被用來儲存所收集之有效資料的閒置實體抹除單元會成為一個非閒置實體抹除單元。
值得一提的是,在資料整併程序中,對應於指示儲存某一筆寫入資料的一個寫入指令,一特定數目的實體程式化單元會被選擇並且此些實體程式化單元所儲存的有效資料會被收集。一般來說,此特定數目是在記憶體儲存裝置出廠時就預先決定的,並且此特定數目並不會隨著記憶體儲存裝置的使用狀況對應地調整。也就是說,不管記憶體儲存裝置儲存了多少有效資料,每將一筆資料寫入至記憶體儲存裝置中,部分有效資料就會被從固定數目的實體程式化單元中收集出來。然而,這樣的資料整併程序並無法因應有效資料在記憶體儲存裝置中的儲存狀態(例如,有效資料的資料量)而即時地增加或減少需要被提取有效資料的實體程式化單元,從而導致系統資源的浪費或導致資料存取速度沒有意義的下降。
在本範例實施例中,對應於不同的寫入指令或者由不同的寫入指令所指示需儲存的寫入資料,在相對應的資料整併程序中每一次被從中收集資料的實體程式化單元的數目可能會不同。
圖9A與圖9B是根據本發明的一範例實施例所繪示的管理記憶體的示意圖。
請參照圖9A,記憶體管理電路702會從主機系統11接收一寫入指令(以下亦稱為第一寫入指令)與對應於第一寫入指令的寫入資料(以下亦稱為第一寫入資料)。例如,在本範例實施例中,是假設第一寫入資料可寫滿一個實體程式化單元。根據第一寫入指令,記憶體管理電路702會指示將第一寫入資料寫入至邏輯單元810(0)。
在本範例實施例中,記憶體管理電路702會從儲存區802中選擇一個實體抹除單元800(0)來儲存第一寫入資料並且將邏輯單元810(0)映射至實體抹除單元800(0)。例如,假設實體抹除單元800(0)包括實體程式化單元910(0)~910(E),則記憶體管理電路702可指示可複寫式非揮發性記憶體模組406將此第一寫入資料儲存在實體程式化單元910(0)並且記錄邏輯單元810(0)與實體程式化單元910(0)之間的映射關系。然而,在另一範例實施例中,若一個實體程式化單元不足以用來儲存第一寫入資料,則儲存於實體程式化單元910(0)中的資料亦可以只是第一寫入資料中的部分資料,並且第一寫入資料中的其他資料亦可以儲存於其他的實體程式化單元中(例如,實體程式化單元910(1)~910(E)中的任一實體程式化單元)。
在本範例實施例中,對應於第一寫入指令或者選擇了實體抹除單元800(0)來儲存第一寫入資料,若記憶體管理電路702判定需要執行資料整併程序以釋放閒置實體抹除單元,則記憶體管理電路702會獲得一個數目(以下亦稱為第一數目)。在本範例實施例中,第一數目以N表示。另外,記憶體管理電路702會從儲存區802中選擇一個實體抹除單元800(1)。根據第一數目N,記憶體管理電路702會從儲存區802中選擇N個實體程式化單元930(0)~930(N-1)並搬移儲存於所選擇的實體程式化單元930(0)~930(N-1)中的資料(以下亦稱為第一儲存資料)至實體抹除單元800(1)。例如,在本範例實施例中,每一個實體程式化單元930(0)~930(N-1)皆儲存了有效資料,故所搬移的第一儲存資料皆為有效資料,如圖9A所示。然而,在另一範例實施例中,實體程式化單元930(0)~930(N-1)中也可能儲存有無效資料,故所搬移的第一儲存資料也可能包含無效資料。此外,此些實體程式化單元930(0)~930(N-1)可以從一或多個實體抹除單元中選擇。例如,假設實體抹除單元800(1)包括實體程式化單元920(0)~920(E),則記憶體管理電路702可以從實體程式化單元930(0)~930(N-1)中讀取第一儲存資料並將所讀取的第一儲存資料搬移至實體程式化單元920(0)~920(N-1)中。
在本範例實施例中,第一數目N是根據一實體單元計數與一邏輯單元計數(以下亦稱為第一邏輯單元計數)而獲得。實體單元計數是對應於可複寫式非揮發性記憶體模組406中用以儲存來自主機系統11之資料(即,使用者資料)的多個實體程式化單元之總數。在一範例實施例中,可根據儲存區802中的實體抹除單元800(0)~800(A)的數目來決定此實體單元計數。例如,根據圖8的一範例實施例,可直接將此實體單元計數設定為A(即,儲存區802中的實體抹除單元800(0)~800(A)的總數)。或者,亦可以將儲存區802中特定的實體抹除單元(例如,損壞的實體抹除單元)排除後再根據儲存區802中剩餘的實體抹除單元的數目來決定此實體單元計數。例如,可根據儲存區802中可用的實體抹除單元(即,非損壞的實體抹除單元)的總數來決定此實體單元計數。第一邏輯單元計數則是對應於接收到第一寫入指令時儲存有來自主機系統11之使用者資料的至少一邏輯單元(以下亦稱為第一邏輯單元)之數目。例如,若接收到第一寫入指令,記憶體管理電路702會去查詢目前邏輯單元的使用狀況並且根據儲存有來自主機系統11之使用者資料的第一邏輯單元之總數來決定第一邏輯單元計數。例如,第一邏輯單元計數可能會等於接收到第一寫入指令時記憶體管理電路702所查詢到的第一邏輯單元之總數。
在一範例實施例中,為了計算方便,記憶體管理電路702也可以將實體單元計數與第一邏輯單元計數分別轉換為相對應的容量。記憶體管理電路702可以根據對應於實體單元計數的容量(以下亦稱為實體容量)與對應於第一邏輯單元計數的容量(以下亦稱為第一邏輯容量)來獲得第一數目N。例如,在實體單元計數為A的一範例實施例中,相對應的實體容量可以為實體抹除單元800(0)~800(A)的總容量。此外,第一邏輯容量亦可以視為是在接收到第一寫入指令時儲存於可複寫式非揮發性記憶體模組406中的有效資料之總資料量。
在一範例實施例中,記憶體管理電路702可以將實體容量減去第一邏輯容量而獲得一個差值(以下亦稱為第一差值);然後,記憶體管理電路702可以根據實體容量與第一差值來獲得第一數目N。例如,記憶體管理電路702可以將實體容量除以第一差值來獲得第一數目N。例如,可以根據以下方程式(1.1)來計算第一數目N:
(1.1)
其中,N為第一數目,P為實體容量,並且L
1為第一邏輯容量。N、P及L
1皆為正數。若根據方程式(1.1)所計算出來的第一數目N不是正整數,也可以另外對方程式(1.1)的結果取高斯或取小數點無條件進位等等。然而,在另一範例實施例中,亦可以將實體容量P與第一邏輯容量L
1輸入至一演算法或查找表並且可將此演算法或查找表的輸出作為第一數目N。此外,在另一範例實施例中,額外的邏輯運算也可以被加入至第一數目N的上述計算方式中。
在另一範例實施例中,第一數目N亦可以是根據一參考計數、上述實體容量及一資料量(以下亦稱為第一儲存資料量)來獲得。參考計數是對應於可複寫式非揮發性記憶體406中每一個實體抹除單元所包含的多個實體程式化單元的總數。例如,假設可複寫式非揮發性記憶體406中每一個實體抹除單元包含256個實體程式化單元,則此參考計數可設定為256。第一儲存資料量是對應於接收到第一寫入指令時儲存於可複寫式非揮發性記憶體模組406中的有效資料或無效資料之資料量。例如,可根據以下方程式(2.1)與(2.2)來計算第一數目N:
(2.1)
(2.2)
其中,S
1為接收到第一寫入指令時儲存於可複寫式非揮發性記憶體模組406中的無效資料之資料量,R為參考計數,並且X
1表示在接收到第一寫入指令時,可複寫式非揮發性記憶體模組406中平均一個實體抹除單元所儲存的無效資料之資料量。此外,亦可以對方程式(2.1)與(2.2)的計算結果或所使用到的任一參數取高斯或取小數點無條件進位等等。或者,在另一範例實施例中,若欲以接收到第一寫入指令時儲存於可複寫式非揮發性記憶體模組406中的有效資料之資料量作為第一儲存資料量,則只要將方程式(2.1)中的參數S
1以方程式(1.1)中所使用的第一邏輯容量L
1取代即可。藉此,可根據接收到第一寫入指令時可複寫式非揮發性記憶體模組406中平均一個實體抹除單元所儲存的有效資料(或無效資料)之資料量來獲得相對應的第一數目N。
換言之,在上述範例實施例中,第一數目N是對應於接收到第一寫入指令當時邏輯單元的使用狀況而即時決定的。此外,若某一個邏輯單元有儲存資料且此資料沒有被主機系統11刪除,則此邏輯單元會映射至有儲存有效資料的至少一個實體單元(例如,某一個實體程式化單元)。因此,在一範例實施例中,第一數目N亦可以視為是對應於接收到第一寫入指令當時可複寫式非揮發性記憶體模組406中有效資料(或無效資料)的儲存狀況而即時決定的。
在一範例實施例中,第一數目N亦可以視為是根據在某一時間點(以下亦稱為第一時間點)儲存有資料的邏輯單元之容量與可複寫式非揮發性記憶體模組406提供以儲存使用者資料的額定容量之關係來獲得的。此額定容量是指可複寫式非揮發性記憶體模組406提供給主機系統11儲存資料的一容量上限。例如,根據圖8的範例實施例中,此額定容量可以是等於邏輯單元810(0)~810(D)的一總容量。在一範例實施例中,此額定容量可能會根據對應於可複寫式非揮發性記憶體模組406的不同的格式化程序而改變。此外,第一時間點是指接收到第一寫入指令或根據第一寫入指令來查詢相關資訊的時間點。
請接續參照圖9B,在接收到第一寫入指令之後,記憶體管理電路702會接收另一寫入指令(以下亦稱為第二寫入指令)與對應於第二寫入指令的寫入資料(以下亦稱為第二寫入資料)。例如,在本範例實施例中,是假設第二寫入資料可寫滿一個實體程式化單元。根據第二寫入指令,記憶體管理電路702會指示將第二寫入資料寫入至邏輯單元810(1)。
值得一提的是,在此範例實施例中,是假設第一寫入資料與第二寫入資料是屬於連續資料,故用以儲存第二寫入資料的邏輯單元810(1)是接續於用以儲存第一寫入資料的邏輯單元810(0)。然而,在另一範例實施例中,第一寫入資料與第二寫入資料也可能不是連續資料,故儲存第二寫入資料的邏輯單元也可能不接續於用以儲存第一寫入資料的邏輯單元。此外,在此提及的某一邏輯單元接續於另一邏輯單元是指某一邏輯單元的結束邏輯位址與另一邏輯單元的起始邏輯位址是連續的。
在本範例實施例中,根據第二寫入指令,記憶體管理電路702會從儲存區802中選擇一個實體抹除單元來儲存第二寫入資料。在本範例實施例中,實體抹除單元800(0)還沒有被寫滿,故實體抹除單元800(0)會持續被選擇以儲存第二寫入資料並且邏輯單元810(1)也會被映射至實體抹除單元800(0)。例如,記憶體管理電路702可指示可複寫式非揮發性記憶體模組406將此第二寫入資料儲存在實體程式化單元910(1)並且記錄邏輯單元810(1)與實體程式化單元910(1)之間的映射關系。然而,在另一範例實施例中,若先前被選擇以儲存來自主機系統11之使用者資料的實體抹除單元已經或即將被寫滿,則另一個閒置實體抹除單元將被選擇來儲存第二寫入資料。此外,在另一範例實施例中,若一個實體程式化單元不足以用來儲存第二寫入資料,則儲存於實體程式化單元910(1)中的資料亦可以只是第二寫入資料中的部分資料,並且第二寫入資料中的其他資料亦可以儲存於其他的實體程式化單元中(例如,實體程式化單元910(2)~910(E)中的任一實體程式化單元)。
另一方面,根據第二寫入指令,若記憶體管理電路702判定需要繼續執行資料整併程序(即,儲存區802中閒置實體抹除單元的數目仍不足),則記憶體管理電路702會取得另一個數目(以下亦稱為第二數目)。其中,第一數目與第二數目可能相同也可能不同。在本範例實施例中,第二數目以M表示。根據第二數目M,記憶體管理電路702會從儲存區802中選擇M個實體程式化單元940(0)~940(M-1)並且從此M個實體程式化單元940(0)~940(M-1)中收集資料(以下亦稱為第二儲存資料)。在本範例實施例中,此M個實體程式化單元940(0)~940(M)皆儲存有有效資料,故所收集的第二儲存資料皆為有效資料,如圖9B所示。然而,在另一範例實施例中,此M個實體程式化單元940(0)~940(M-1)也可能儲存有無效資料,故所收集的第二儲存資料也可能包含無效資料。此外,此些實體程式化單元940(0)~940(M-1)也可以從一或多個實體抹除單元中選擇。
在本範例實施例中,記憶體管理電路702會從儲存區802中選擇一個實體抹除單元來儲存所收集的第二儲存資料。在本範例實施例中,是假設先前選擇的實體抹除單元800(1)尚未被寫滿,故記憶體管理電路702會持續選擇實體抹除單元800(1)來儲存所收集的第二儲存資料。如圖9B所示,記憶體管理電路702會從實體程式化單元940(0)~940(M-1)中讀取第二儲存資料並將第二儲存資料搬移至實體程式化單元920(N)~920(N+M-1)中。然而,在圖9B的另一範例實施例中,若先前選擇的實體抹除單元800(1)已被或即將被寫滿,則記憶體管理電路702也可以選擇另外的實體抹除單元來儲存所收集的第二儲存資料。
在本範例實施例中,第二數目M是根據上述實體單元計數與另一邏輯單元計數(以下亦稱為第二邏輯單元計數)而獲得。第二邏輯單元計數是對應於接收到第二寫入指令時儲存有來自主機系統11之使用者資料的至少一邏輯單元(以下亦稱為第二邏輯單元)之數目。例如,若接收到第二寫入指令,記憶體管理電路702會去查詢目前邏輯單元的使用狀況並且根據儲存有來自主機系統11之使用者資料的第二邏輯單元之總數來決定第二邏輯單元計數。例如,第二邏輯單元計數可以是等於接收到第二寫入指令時記憶體管理電路702所查詢到的第二邏輯單元之總數。
在一範例實施例中,為了計算方便,記憶體管理電路702也可以將實體單元計數與第二邏輯單元計數分別轉換為相對應的容量。記憶體管理電路702可以根據對應於實體單元計數的實體容量與對應於第二邏輯單元計數的容量(以下亦稱為第二邏輯容量)來獲得第二數目M。其中,第二邏輯容量亦可以視為是在接收到第二寫入指令時儲存於可複寫式非揮發性記憶體模組406中的有效資料之總資料量。
在一範例實施例中,記憶體管理電路702可以將實體容量減去第二邏輯容量而獲得一個差值(以下亦稱為第二差值);然後,記憶體管理電路702可以根據實體容量與第二差值來獲得第二數目M。例如,記憶體管理電路702可以將實體容量除以第二差值來獲得第二數目M。例如,可以根據以下方程式(3.1)來計算第二數目M:
(3.1)
其中,M為第二數目,P為實體容量,並且L
2為第二邏輯容量。M、P及L
2皆為正數。若根據方程式(3.1)所計算出來的第二數目M不是正整數,也可以另外對方程式(3.1)的結果取高斯或取小數點無條件進位等等。然而,在另一範例實施例中,亦可以將實體容量P與第二邏輯容量L
2輸入至一演算法或查找表並且可將此演算法或查找表的輸出作為第二數目M。此外,在另一範例實施例中,額外的邏輯運算也可以被加入至第二數目M的上述計算方式中。
在另一範例實施例中,第二數目M亦可以是根據上述參考計數、上述實體容量及另一資料量(以下亦稱為第二儲存資料量)來獲得。第二儲存資料量是對應於接收到第二寫入指令時儲存於可複寫式非揮發性記憶體模組406中的有效資料或無效資料之資料量。例如,可根據以下方程式(4.1)與(4.2)來計算第二數目M:
(4.1)
(4.2)
其中,S
2為接收到第二寫入指令時儲存於可複寫式非揮發性記憶體模組406中的無效資料之資料量,並且X
2表示在接收到第二寫入指令時,可複寫式非揮發性記憶體模組406中平均一個實體抹除單元所儲存的無效資料之資料量。此外,亦可以對方程式(4.1)與(4.2)的計算結果或所使用到的任一參數取高斯或取小數點無條件進位等等。或者,在另一範例實施例中,若欲以接收到第二寫入指令時儲存於可複寫式非揮發性記憶體模組406中的有效資料之資料量作為第二儲存資料量,則只要將方程式(4.1)中的參數S
2以方程式(3.1)中所使用的第二邏輯容量L
2取代即可。藉此,可根據接收到第二寫入指令時可複寫式非揮發性記憶體模組406中平均一個實體抹除單元所儲存的有效資料(或無效資料)之資料量來獲得相對應的第二數目M。
換言之,在上述範例實施例中,第二數目M是對應於接收到第二寫入指令當時邏輯單元的使用狀況而即時決定的。此外,邏輯單元的使用狀況與可複寫式非揮發性記憶體模組406中有效資料的儲存狀況是相互對應的,故在一範例實施例中,第二數目M亦可以視為是對應於接收到第二寫入指令當時可複寫式非揮發性記憶體模組406中有效資料的儲存狀況而即時決定的。
在另一範例實施例中,第二數目M亦可以視為是根據在某一時間點(以下亦稱為第二時間點)儲存有資料的邏輯單元之容量與可複寫式非揮發性記憶體模組406提供以儲存使用者資料的額定容量之關係來獲得的。關於何謂額定容量已於前述說明,在此便不贅述。其中,第二時間點是指接收到第二寫入指令或根據第二寫入指令查詢相關資訊的時間點。
值得一提的是,在記憶體儲存裝置10的運作中,儲存有資料(即,使用者資料)的邏輯單元之總數或相對應的邏輯容量會隨著主機系統11持續地寫入資料或刪除資料而改變。因此,對應於不同的寫入指令,在資料整併程序中每一次被選擇從中收集資料的實體程式化單元的數目(或者所收集的資料之資料量)也可能會對應地改變。例如,根據圖9A與圖9B的範例實施例,所獲得的第二邏輯容量L
2會大於所獲得的第一邏輯容量L
1,故計算出來的第二數目M也會大於第一數目N。
此外,根據圖9A與圖9B的範例實施例,第二寫入指令是接續於第一寫入指令而被接收,故第二數目M與第一數目N之間的差距不會太大。然而,根據圖9A與圖9B的另一範例實施例,若在接收第二寫入指令與接收第一寫入指令之間還包括接收了指示寫入其他資料的一或多個寫入指令,則對應於更多的資料被寫入至可複寫式非揮發性記憶體模組406,第二數目M與第一數目N之間的差距也可能會變大。相對地,在計算出第一數目N之後,若主機系統10刪除的資料之資料量大於主機系統10寫入的資料之資料量,則後續計算出的第二數目M也可能會小於第一數目N,視接收到寫入指令時所查詢到的邏輯單元的使用狀況而定。
換言之,在一範例實施例中,對應於某一筆要寫入至某一個實體程式化單元的寫入資料,若需要執行相對應的資料整併程序,則資料整併程序中所需要被選擇來從中收集資料的實體程式化單元的數目(或者所收集的儲存資料之資料量)會與當前有儲存資料的邏輯單元之數目(或相對應的邏輯容量)或可複寫式非揮發性記憶體模組406(或儲存區802)中當前儲存的有效資料之資料量成正相關。從另一角度來看,對應於某一筆要寫入至某一個實體程式化單元的寫入資料,若需要執行相對應的資料整併程序,則資料整併程序中所需要被選擇來從中收集資料的實體程式化單元的數目會與可複寫式非揮發性記憶體模組406(或儲存區802)中當前儲存的無效資料之資料量成負相關。
值得一提的是,在圖9A與圖9B的上述範例實施例中,記憶體管理電路702皆是判定需要執行相對應的資料整倂程序。然而,在另一範例實施例中,對應於某一寫入指令,記憶體管理電路702也可能判定不需要執行資料整併程序。例如,在圖9B的另一範例實施例中,若藉由前一次執行的資料收集操作即已釋放出足夠的閒置實體抹除單元,則對應於第二寫入指令,記憶體管理電路702可能僅是將對應於第二寫入指令的第二寫入資料儲存至實體程式化單元810(0),而不會去執行從多個實體程式化單元940(0)~940(M-1)中收集或搬移資料的操作。此外,在從實體程式化單元930(0)~930(N-1)或940(0)~940(M-1)收集資料之後,實體程式化單元930(0)~930(N-1)或940(0)~940(M-1)中的任一者所屬的實體抹除單元可能會被抹除,從而成為閒置實體抹除單元。
圖10是根據本發明的一範例實施例所繪示的記憶體管理方法的流程圖。以下將以連續的接收兩個寫入指令作為範例來對圖10所繪示之流程進行說明。
請參照圖10,在步驟S1001中,接收一寫入指令(例如,第一寫入指令)。在步驟S1002中,判斷可複寫式非揮發性記憶體模組中剩餘的多個閒置實體抹除單元的數目是否符合預設數目。若在步驟S1002中判定可複寫式非揮發性記憶體模組中剩餘的多個閒置實體抹除單元的數目符合預設數目,在步驟S1003中,根據一實體單元計數與一邏輯單元計數(例如,第一邏輯單元計數)來獲得一數目(例如,第一數目)。在步驟S1004中,從可複寫式非揮發性記憶體模組中的多個實體程式化單元中收集資料(例如,第一儲存資料)。特別是,步驟S1004中被選擇從中收集資料的多個實體程式化單元符合於步驟S1003中獲得的數目(例如,第一數目)。在步驟S1005中,將對應於所述寫入指令(例如,第一寫入指令)的寫入資料(例如,第一寫入資料)寫入至某一個實體抹除單元並且將步驟S1004中所收集的資料(例如,第一儲存資料)寫入至另一個實體抹除單元。此外,若在步驟S1002中判定可複寫式非揮發性記憶體模組中剩餘的多個閒置實體抹除單元的數目不符合預設數目,則在步驟S1006中,只將對應於所述寫入指令(例如,第一寫入指令)的寫入資料(例如,第一寫入資料)寫入至某一個實體抹除單元。
在接收上述寫入指令之後,若在步驟S1001接收到另一個寫入指令(例如,第二寫入指令),則在步驟S1002中,判斷可複寫式非揮發性記憶體模組中剩餘的多個閒置實體抹除單元的數目是否符合預設數目。若在步驟S1002中判定可複寫式非揮發性記憶體模組中剩餘的多個閒置實體抹除單元的數目符合預設數目,在步驟S1003中,根據一實體單元計數與一邏輯單元計數(例如,第二邏輯單元計數)來獲得一數目(例如,第二數目)。
在本範例實施例中,第二邏輯單元計數會大於第一邏輯單元計數,並且第二數目會大於第一數目。然而,在另一範例實施例中,若有資料被主機系統指示刪除,則第二邏輯單元計數也可能會小於或等於第一邏輯單元計數,並且第二數目也可能會小於或等於第一數目。
爾後,在步驟S1004中,從可複寫式非揮發性記憶體模組中的多個實體程式化單元中收集資料(例如,第二儲存資料)。特別是,步驟S1004中被選擇從中收集資料的多個實體程式化單元會符合於步驟S1003中獲得的數目(例如,第二數目)。在步驟S1005中,將對應於所述寫入指令(例如,第二寫入指令)的寫入資料(例如,第二寫入資料)寫入至某一個實體抹除單元並且將步驟S1004中所收集的資料(例如,第二儲存資料)寫入至另一個實體抹除單元。此外,若在步驟S1002中判定可複寫式非揮發性記憶體模組中剩餘的多個閒置實體抹除單元的數目不符合預設數目,則在步驟S1006中,將對應於所述寫入指令(例如,第二寫入指令)的寫入資料(例如,第二寫入資料)寫入至某一個實體抹除單元。
然而,圖10中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖10中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖10的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明所提供的記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置,可對應於不同的寫入指令從不同數目的實體程式化單元中搬移資料。藉此,可改善執行資料整併程序時系統資源的浪費。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧電腦
122‧‧‧微處理器
124‧‧‧隨機存取記憶體
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
13‧‧‧輸入/輸出裝置
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶胞陣列
504‧‧‧字元線控制電路
506‧‧‧位元線控制電路
508‧‧‧行解碼器
510‧‧‧資料輸入/輸出緩衝器
512‧‧‧控制電路
602‧‧‧記憶胞
604‧‧‧位元線
606‧‧‧字元線
608‧‧‧共用源極線
612、614‧‧‧電晶體
702‧‧‧記憶體管理電路
704‧‧‧主機介面
706‧‧‧記憶體介面
708‧‧‧錯誤檢查與校正電路
710‧‧‧緩衝記憶體
712‧‧‧電源管理電路
800(0)~800(R)‧‧‧實體抹除單元
810(0)~810(D)‧‧‧邏輯單元
802‧‧‧儲存區
806‧‧‧系統區
910(0)~910(E)、920(0)~920(E)、930(0)~930(N-1)、940(0)~940(M-1)‧‧‧實體程式化單元
S1001~S1006‧‧‧記憶體管理方法的步驟
11‧‧‧主機系統
12‧‧‧電腦
122‧‧‧微處理器
124‧‧‧隨機存取記憶體
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
13‧‧‧輸入/輸出裝置
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶胞陣列
504‧‧‧字元線控制電路
506‧‧‧位元線控制電路
508‧‧‧行解碼器
510‧‧‧資料輸入/輸出緩衝器
512‧‧‧控制電路
602‧‧‧記憶胞
604‧‧‧位元線
606‧‧‧字元線
608‧‧‧共用源極線
612、614‧‧‧電晶體
702‧‧‧記憶體管理電路
704‧‧‧主機介面
706‧‧‧記憶體介面
708‧‧‧錯誤檢查與校正電路
710‧‧‧緩衝記憶體
712‧‧‧電源管理電路
800(0)~800(R)‧‧‧實體抹除單元
810(0)~810(D)‧‧‧邏輯單元
802‧‧‧儲存區
806‧‧‧系統區
910(0)~910(E)、920(0)~920(E)、930(0)~930(N-1)、940(0)~940(M-1)‧‧‧實體程式化單元
S1001~S1006‧‧‧記憶體管理方法的步驟
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。 圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。 圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。 圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。 圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。 圖9A與圖9B是根據本發明的一範例實施例所繪示的管理記憶體的示意圖。 圖10是根據本發明的一範例實施例所繪示的記憶體管理方法的流程圖。
S1001~S1006‧‧‧記憶體管理方法的步驟
Claims (30)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體程式化單元,該些實體程式化單元組成多個實體抹除單元,該記憶體管理方法包括: 接收一第一寫入指令與對應於該第一寫入指令的第一寫入資料並獲得一第一數目; 程式化至少部份的該第一寫入資料並搬移儲存於該些實體程式化單元中的多個第一實體程式化單元中的第一儲存資料,其中該些第一實體程式化單元之總數符合該第一數目; 在接收到該第一寫入指令之後,接收一第二寫入指令與對應於該第二寫入指令的第二寫入資料並獲得一第二數目,其中該第二數目與該第一數目不同; 程式化至少部份的該第二寫入資料並搬移儲存於該些實體程式化單元中的多個第二實體程式化單元中的第二儲存資料,其中該些第二實體程式化單元之總數符合該第二數目;以及 抹除該些實體抹除單元中的至少一實體抹除單元,其中被抹除的該至少一實體抹除單元包含該些第一實體程式化單元中的至少一實體程式化單元或該些第二實體程式化單元中的至少一實體程式化單元。
- 如申請專利範圍第1項所述的記憶體管理方法,其中獲得該第一數目的步驟包括根據一實體單元計數與一第一邏輯單元計數來獲得該第一數目, 其中獲得該第二數目的步驟包括根據該實體單元計數與一第二邏輯單元計數來獲得該第二數目, 其中該實體單元計數是對應於該些實體程式化單元中用以儲存來自一主機系統之使用者資料的多個實體程式化單元之總數, 其中該第一邏輯單元計數是對應於接收到該第一寫入指令時儲存有來自主機系統之使用者資料的至少一第一邏輯單元之數目, 其中該第二邏輯單元計數是對應於接收到該第二寫入指令時儲存有來自主機系統之使用者資料的至少一第二邏輯單元之數目。
- 如申請專利範圍第2項所述的記憶體管理方法,其中根據該實體單元計數與該第一邏輯單元計數來獲得該第一數目的步驟包括: 將對應於該實體單元計數的一實體容量減去對應於該第一邏輯單元計數的一第一邏輯容量以獲得一第一差值;以及 根據該實體容量與該第一差值獲得該第一數目, 其中根據該實體單元計數與該第二邏輯單元計數來獲得該第二數目的步驟包括: 將該實體容量減去對應於該第二邏輯單元計數的一第二邏輯容量以獲得一第二差值;以及 根據該實體容量與該第二差值獲得該第二數目。
- 如申請專利範圍第2項所述的記憶體管理方法,其中根據該實體單元計數與該第一邏輯單元計數來獲得該第一數目的步驟包括: 根據一參考計數、對應於該實體單元計數的一實體容量及一第一儲存資料量來獲得該第一數目, 其中該參考計數是對應於每一該些實體抹除單元所包含的多個實體程式化單元的一總數, 其中該第一儲存資料量是對應於接收到該第一寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量, 其中根據該實體單元計數與該第二邏輯單元計數來獲得該第二數目的步驟包括: 根據該參考計數、該實體容量及一第二儲存資料量來獲得該第二數目, 其中該第二儲存資料量是對應於接收到該第二寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量。
- 如申請專利範圍第1項所述的記憶體管理方法,其中程式化該至少部份的該第一寫入資料並搬移該第一儲存資料的步驟包括: 將該至少部份的該第一寫入資料寫入至該些實體程式化單元中的一第三實體程式化單元;以及 將該第一儲存資料從該些第一實體程式化單元搬移至該些實體程式化單元中的多個第四實體程式化單元, 其中該些第四實體程式化單元之總數符合該第一數目, 其中程式化該至少部份的該第二寫入資料並搬移該第二儲存資料的步驟包括: 將該至少部份的該第二寫入資料寫入至該些實體程式化單元中的一第五實體程式化單元;以及 將該第二儲存資料從該些第二實體程式化單元搬移至該些實體程式化單元中的多個第六實體程式化單元, 其中該些第六實體程式化單元之總數符合該第二數目。
- 如申請專利範圍第5項所述的記憶體管理方法,其中每一該些實體程式化單元為一實體頁面。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括: 判斷該些實體抹除單元中的多個閒置實體抹除單元的一數目是否符合一預設數目; 若判定該些閒置實體抹除單元的該數目符合該預設數目,執行一資料整併程序;以及 若判定該些閒置實體抹除單元的該數目不符合該預設數目,不執行該資料整併程序, 其中搬移該第一儲存資料的步驟與搬移該第二儲存資料的步驟是包含於該資料整併程序中。
- 如申請專利範圍第2項所述的記憶體管理方法,其中該第一邏輯單元計數與接收到該第一寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關, 其中該第二邏輯單元計數與接收到該第二寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關。
- 如申請專利範圍第1項所述的記憶體管理方法,其中獲得該第一數目的步驟包括: 根據在一第一時間點儲存有資料的邏輯單元之容量與該可複寫式非揮發性記憶體模組提供以儲存使用者資料的一額定容量之關係來獲得該第一數目, 其中獲得該第二數目的步驟包括: 根據在一第二時間點儲存有資料的邏輯單元之容量與該可複寫式非揮發性記憶體模組提供以儲存使用者資料的該額定容量之關係來獲得該第二數目, 其中該第二時間點晚於該第一時間點。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一儲存資料與該第二儲存資料皆為有效資料。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體程式化單元,該些實體程式化單元組成多個實體抹除單元;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面, 其中該記憶體管理電路用以接收一第一寫入指令與對應於該第一寫入指令的第一寫入資料並獲得一第一數目, 其中該記憶體管理電路更用以發送一第一指令序列,以指示程式化至少部份的該第一寫入資料並搬移儲存於該些實體程式化單元中的多個第一實體程式化單元中的第一儲存資料, 其中該些第一實體程式化單元之總數符合該第一數目, 其中在接收到該第一寫入指令之後,該記憶體管理電路更用以接收一第二寫入指令與對應於該第二寫入指令的第二寫入資料並獲得一第二數目, 其中該第二數目與該第一數目不同, 其中該記憶體管理電路更用以發送一第二指令序列,以指示程式化至少部份的該第二寫入資料並搬移儲存於該些實體程式化單元中的多個第二實體程式化單元中的第二儲存資料, 其中該些第二實體程式化單元之總數符合該第二數目, 其中該記憶體管理電路更用以發送一第三指令序列,以指示抹除該些實體抹除單元中的至少一實體抹除單元,其中被抹除的該至少一實體抹除單元包含該些第一實體程式化單元中的至少一實體程式化單元或該些第二實體程式化單元中的至少一實體程式化單元。
- 如申請專利範圍第11項所述的記憶體控制電路單元,其中該記憶體管理電路是根據一實體單元計數與一第一邏輯單元計數來獲得該第一數目, 其中該記憶體管理電路是根據該實體單元計數與一第二邏輯單元計數來獲得該第二數目, 其中該實體單元計數是對應於該些實體程式化單元中用以儲存來自一主機系統之使用者資料的多個實體程式化單元之總數, 其中該第一邏輯單元計數是對應於接收到該第一寫入指令時儲存有來自主機系統之使用者資料的至少一第一邏輯單元之數目, 其中該第二邏輯單元計數是對應於接收到該第二寫入指令時儲存有來自主機系統之使用者資料的至少一第二邏輯單元之數目。
- 如申請專利範圍第12項所述的記憶體控制電路單元,其中該記憶體管理電路根據該實體單元計數與該第一邏輯單元計數來獲得該第一數目的操作包括: 將對應於該實體單元計數的一實體容量減去對應於該第一邏輯單元計數的一第一邏輯容量以獲得一第一差值;以及 根據該實體容量與該第一差值獲得該第一數目, 其中該記憶體管理電路根據該實體單元計數與該第二邏輯單元計數來獲得該第二數目的操作包括: 將該實體容量減去對應於該第二邏輯單元計數的一第二邏輯容量以獲得一第二差值;以及 根據該實體容量與該第二差值獲得該第二數目。
- 如申請專利範圍第12項所述的記憶體控制電路單元,其中該記憶體管理電路根據該實體單元計數與該第一邏輯單元計數來獲得該第一數目的操作包括: 根據一參考計數、對應於該實體單元計數的一實體容量及一第一儲存資料量來獲得該第一數目, 其中該參考計數是對應於每一該些實體抹除單元所包含的多個實體程式化單元的一總數, 其中該第一儲存資料量是對應於接收到該第一寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量, 其中該記憶體管理電路根據該實體單元計數與該第二邏輯單元計數來獲得該第二數目的操作包括: 根據該參考計數、該實體容量及一第二儲存資料量來獲得該第二數目, 其中該第二儲存資料量是對應於接收到該第二寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量。
- 如申請專利範圍第11項所述的記憶體控制電路單元,其中該第一指令序列是指示將該至少部份的該第一寫入資料寫入至該些實體程式化單元中的一第三實體程式化單元並且將該第一儲存資料從該些第一實體程式化單元搬移至該些實體程式化單元中的多個第四實體程式化單元, 其中該些第四實體程式化單元之總數符合該第一數目, 其中該第二指令序列是指示將該至少部份的該第二寫入資料寫入至該些實體程式化單元中的一第五實體程式化單元並且將該第二儲存資料從該些第二實體程式化單元搬移至該些實體程式化單元中的多個第六實體程式化單元, 其中該些第六實體程式化單元之總數符合該第二數目。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中每一該些實體程式化單元為一實體頁面。
- 如申請專利範圍第11項所述的記憶體控制電路單元,其中該記憶體管理電路更用以判斷該些實體抹除單元中的多個閒置實體抹除單元的一數目是否符合一預設數目, 其中若判定該些閒置實體抹除單元的該數目符合該預設數目,該記憶體管理電路更用以執行一資料整併程序, 其中若判定該些閒置實體抹除單元的該數目不符合該預設數目,該記憶體管理電路不執行該資料整併程序, 其中該記憶體管理電路發送該第一指令序列的操作與發送該第二指令序列的操作是包含於該資料整併程序中。
- 如申請專利範圍第12項所述的記憶體控制電路單元,其中該第一邏輯單元計數與接收到該第一寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關, 其中該第二邏輯單元計數與接收到該第二寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關。
- 如申請專利範圍第11項所述的記憶體控制電路單元,其中該記憶體管理電路是根據在一第一時間點儲存有資料的邏輯單元之容量與該可複寫式非揮發性記憶體模組提供以儲存使用者資料的一額定容量之關係來獲得該第一數目, 其中該記憶體管理電路是根據在一第二時間點儲存有資料的邏輯單元之容量與該可複寫式非揮發性記憶體模組提供以儲存使用者資料的該額定容量之關係來獲得該第二數目, 其中該第二時間點晚於該第一時間點。
- 如申請專利範圍第11項所述的記憶體控制電路單元,其中該第一儲存資料與該第二儲存資料皆為有效資料。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,包括多個實體程式化單元,該些實體程式化單元組成多個實體抹除單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以接收一第一寫入指令與對應於該第一寫入指令的第一寫入資料並獲得一第一數目, 其中該記憶體控制電路單元更用以發送一第一指令序列,以指示程式化至少部份的該第一寫入資料並搬移儲存於該些實體程式化單元中的多個第一實體程式化單元中的第一儲存資料, 其中該些第一實體程式化單元之總數符合該第一數目, 其中在接收到該第一寫入指令之後,該記憶體控制電路單元更用以接收一第二寫入指令與對應於該第二寫入指令的第二寫入資料並獲得一第二數目, 其中該第二數目與該第一數目不同, 其中該記憶體控制電路單元更用以發送一第二指令序列,以指示程式化至少部份的該第二寫入資料並搬移儲存於該些實體程式化單元中的多個第二實體程式化單元中的第二儲存資料, 其中該些第二實體程式化單元之總數符合該第二數目, 其中該記憶體控制電路單元更用以發送一第三指令序列,以指示抹除該些實體抹除單元中的至少一實體抹除單元,其中被抹除的該至少一實體抹除單元包含該些第一實體程式化單元中的至少一實體程式化單元或該些第二實體程式化單元中的至少一實體程式化單元。
- 如申請專利範圍第21項所述的記憶體儲存裝置,其中該記憶體控制電路單元是根據一實體單元計數與一第一邏輯單元計數來獲得該第一數目, 其中該記憶體控制電路單元是根據該實體單元計數與一第二邏輯單元計數來獲得該第二數目, 其中該實體單元計數是對應於該些實體程式化單元中用以儲存來自一主機系統之使用者資料的多個實體程式化單元之總數, 其中該第一邏輯單元計數是對應於接收到該第一寫入指令時儲存有來自主機系統之使用者資料的至少一第一邏輯單元之數目, 其中該第二邏輯單元計數是對應於接收到該第二寫入指令時儲存有來自主機系統之使用者資料的至少一第二邏輯單元之數目。
- 如申請專利範圍第22項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該實體單元計數與該第一邏輯單元計數來獲得該第一數目的操作包括: 將對應於該實體單元計數的一實體容量減去對應於該第一邏輯單元計數的一第一邏輯容量以獲得一第一差值;以及 根據該實體容量與該第一差值獲得該第一數目, 其中該記憶體控制電路單元根據該實體單元計數與該第二邏輯單元計數來獲得該第二數目的操作包括: 將該實體容量減去對應於該第二邏輯單元計數的一第二邏輯容量以獲得一第二差值;以及 根據該實體容量與該第二差值獲得該第二數目。
- 如申請專利範圍第22項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該實體單元計數與該第一邏輯單元計數來獲得該第一數目的操作包括: 根據一參考計數、對應於該實體單元計數的一實體容量及一第一儲存資料量來獲得該第一數目, 其中該參考計數是對應於每一該些實體抹除單元所包含的多個實體程式化單元的一總數, 其中該第一儲存資料量是對應於接收到該第一寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量, 其中該記憶體控制電路單元根據該實體單元計數與該第二邏輯單元計數來獲得該第二數目的操作包括: 根據該參考計數、該實體容量及一第二儲存資料量來獲得該第二數目, 其中該第二儲存資料量是對應於接收到該第二寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料或無效資料之資料量。
- 如申請專利範圍第21項所述的記憶體儲存裝置,其中該第一指令序列是指示將該至少部份的該第一寫入資料寫入至該些實體程式化單元中的一第三實體程式化單元並且將該第一儲存資料從該些第一實體程式化單元搬移至該些實體程式化單元中的多個第四實體程式化單元, 其中該些第四實體程式化單元之總數亦符合該第一數目, 其中該第二指令序列是指示將該至少部份的該第二寫入資料寫入至該些實體程式化單元中的一第五實體程式化單元並且將該第二儲存資料從該些第二實體程式化單元搬移至該些實體程式化單元中的多個第六實體程式化單元, 其中該些第六實體程式化單元之總數亦符合該第二數目。
- 如申請專利範圍第25項所述的記憶體儲存裝置,其中每一該些實體程式化單元為一實體頁面。
- 如申請專利範圍第21項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以判斷該些實體抹除單元中的多個閒置實體抹除單元的一數目是否符合一預設數目, 其中若判定該些閒置實體抹除單元的該數目符合該預設數目,該記憶體控制電路單元更用以執行一資料整併程序, 其中若判定該些閒置實體抹除單元的該數目不符合該預設數目,該記憶體控制電路單元不執行該資料整併程序, 其中該記憶體控制電路單元發送該第一指令序列的操作與發送該第二指令序列的操作是包含於該資料整併程序中。
- 如申請專利範圍第22項所述的記憶體儲存裝置,其中該第一邏輯單元計數與接收到該第一寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關, 其中該第二邏輯單元計數與接收到該第二寫入指令時儲存於該可複寫式非揮發性記憶體模組中的有效資料之資料量成正相關。
- 如申請專利範圍第21項所述的記憶體儲存裝置,其中該記憶體控制電路單元是根據在一第一時間點儲存有資料的邏輯單元之容量與該可複寫式非揮發性記憶體模組提供以儲存使用者資料的一額定容量之關係來獲得該第一數目, 其中該記憶體控制電路單元是根據在一第二時間點儲存有資料的邏輯單元之容量與該可複寫式非揮發性記憶體模組提供以儲存使用者資料的該額定容量之關係來獲得該第二數目, 其中該第二時間點晚於該第一時間點。
- 如申請專利範圍第21項所述的記憶體儲存裝置,其中該第一儲存資料與該第二儲存資料皆為有效資料。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104123602A TWI554884B (zh) | 2015-07-21 | 2015-07-21 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US14/846,830 US10338854B2 (en) | 2015-07-21 | 2015-09-07 | Memory management method, memory control circuit unit and memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104123602A TWI554884B (zh) | 2015-07-21 | 2015-07-21 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI554884B true TWI554884B (zh) | 2016-10-21 |
TW201704999A TW201704999A (zh) | 2017-02-01 |
Family
ID=57837221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104123602A TWI554884B (zh) | 2015-07-21 | 2015-07-21 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10338854B2 (zh) |
TW (1) | TWI554884B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102549545B1 (ko) * | 2018-03-22 | 2023-06-29 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
TWI797464B (zh) * | 2020-07-28 | 2023-04-01 | 群聯電子股份有限公司 | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271383A (zh) * | 2007-02-13 | 2008-09-24 | 三星电子株式会社 | 操作数据处理系统的系统、方法以及计算机程序产品 |
US7451265B2 (en) * | 2006-08-04 | 2008-11-11 | Sandisk Corporation | Non-volatile memory storage systems for phased garbage collection |
US20090198952A1 (en) * | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
US8407449B1 (en) * | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US20130117500A1 (en) * | 2011-11-04 | 2013-05-09 | Samsung Electronics Co., Ltd. | Memory system and memory managing method thereof |
US20140143483A1 (en) * | 2009-12-16 | 2014-05-22 | Apple Inc. | Memory management schemes for non-volatile memory devices |
TW201518945A (zh) * | 2013-11-14 | 2015-05-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201523616A (zh) * | 2013-12-09 | 2015-06-16 | Phison Electronics Corp | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444461B2 (en) * | 2006-08-04 | 2008-10-28 | Sandisk Corporation | Methods for phased garbage collection |
US8949555B1 (en) * | 2007-08-30 | 2015-02-03 | Virident Systems, Inc. | Methods for sustained read and write performance with non-volatile memory |
US8463826B2 (en) * | 2009-09-03 | 2013-06-11 | Apple Inc. | Incremental garbage collection for non-volatile memories |
JP2011192260A (ja) * | 2010-02-16 | 2011-09-29 | Toshiba Corp | 半導体記憶装置 |
US8874872B2 (en) * | 2011-01-21 | 2014-10-28 | Seagate Technology Llc | Garbage collection management in memories |
US9645924B2 (en) | 2013-12-16 | 2017-05-09 | International Business Machines Corporation | Garbage collection scaling |
-
2015
- 2015-07-21 TW TW104123602A patent/TWI554884B/zh active
- 2015-09-07 US US14/846,830 patent/US10338854B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451265B2 (en) * | 2006-08-04 | 2008-11-11 | Sandisk Corporation | Non-volatile memory storage systems for phased garbage collection |
CN101271383A (zh) * | 2007-02-13 | 2008-09-24 | 三星电子株式会社 | 操作数据处理系统的系统、方法以及计算机程序产品 |
US20090198952A1 (en) * | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
US20140143483A1 (en) * | 2009-12-16 | 2014-05-22 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8407449B1 (en) * | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US20130117500A1 (en) * | 2011-11-04 | 2013-05-09 | Samsung Electronics Co., Ltd. | Memory system and memory managing method thereof |
TW201518945A (zh) * | 2013-11-14 | 2015-05-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201523616A (zh) * | 2013-12-09 | 2015-06-16 | Phison Electronics Corp | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW201704999A (zh) | 2017-02-01 |
US10338854B2 (en) | 2019-07-02 |
US20170024136A1 (en) | 2017-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI615710B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201706847A (zh) | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI501243B (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI587135B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI454913B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI607448B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI554885B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI676176B (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI688953B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI536166B (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201703048A (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN112068782B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI529530B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI596476B (zh) | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201835753A (zh) | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI714840B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202009709A (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI688956B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI554884B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI775143B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI760697B (zh) | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 |