TW202234227A - 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TW202234227A TW202234227A TW110105240A TW110105240A TW202234227A TW 202234227 A TW202234227 A TW 202234227A TW 110105240 A TW110105240 A TW 110105240A TW 110105240 A TW110105240 A TW 110105240A TW 202234227 A TW202234227 A TW 202234227A
- Authority
- TW
- Taiwan
- Prior art keywords
- physical
- logic
- mapping table
- unit
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration 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/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
- 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; 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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
-
- 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/7207—Details relating to flash memory management management of metadata or control data
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播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體模組通常包括多個實體抹除單元,並且每一個實體抹除單元會包括多個實體程式化單元。記憶體儲存裝置中的記憶體管理電路會配置邏輯位址以映射實體抹除單元,其中每一邏輯單元具有多個邏輯位址以映射對應的實體抹除單元。
為了識別每個邏輯位址的資料被儲存在哪個實體抹除單元,記憶體管理電路會記錄邏輯位址與實體抹除單元之間的映射。具體來說,記憶體管理電路會在可複寫式非揮發性記憶體模組中儲存多個邏輯至實體映射表來記錄每一邏輯位址所映射的實體抹除單元。當欲存取資料時,記憶體管理電路會載入對應的邏輯至實體映射表,並且依據邏輯至實體映射表來寫入或讀取資料。
當記憶體儲存裝置的閒置區中實體抹除單元的數目不足時,一般可藉由垃圾收集程序來將儲存區中實體抹除單元所儲存的有效資料執行資料搬移並釋放出新的閒置實體抹除單元。在執行垃圾收集程序時,記憶體儲存裝置需要花費可觀的時間查詢出邏輯至實體映射表以用於收集來源實體抹除單元中的有效資料。基此,如何減少收集有效資料的時間,是本領域人員研究的課題之一。
本發明提供一種有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元,可縮短資料整併操作的時間並增加記憶體儲存裝置的系統效能。
本發明一範例實施例提出一種有效資料合併方法,用於可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,且每一所述多個實體抹除單元包括多個實體程式化單元。所述有效資料合併方法包括:根據候選資訊記錄的第一邏輯至實體映射表收集所述多個實體抹除單元中的第一來源單元中的第一有效資料,並判斷所述第一有效資料的第一資料量與所述第一來源單元的有效計數對應的有效資料的第二資料量是否相同;響應於判斷所述第一資料量與所述第二資料量相同,將所述第一有效資料複製至所述多個實體抹除單元中的回收單元;以及響應於判斷所述第一資料量與所述第二資料量不相同,根據所述第一來源單元的管理資訊獲取一或多個第二邏輯至實體映射表,並根據所述第二邏輯至實體映射表收集所述第一來源單元中的第二有效資料,並將所述第二有效資料複製至所述回收單元。其中所述管理資訊記錄每一所述多個實體抹除單元儲存的有效資料對應的邏輯至實體映射表。
在本發明的一範例實施例中,上述方法更包括:設定所述候選資訊,其中所述候選資訊記錄有所述第一邏輯至實體映射表。
在本發明的一範例實施例中,上述設定所述候選資訊的步驟包括:根據所述多個實體抹除單元的有效計數選擇所述多個實體抹除單元中的一或多個作為第二來源單元;根據所述第二來源單元的管理資訊獲取映射所述第二來源單元的有效資料的所述第二邏輯至實體映射表;以及選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
在本發明的一範例實施例中,上述選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊的步驟包括:根據所述第二邏輯至實體映射表被獲取的次數計算每個所述第二邏輯至實體映射表的計數值;以及根據所述計數值選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
在本發明的一範例實施例中,上述設定所述候選資訊的步驟包括:預設所述候選資訊所記錄的所述第一邏輯至實體映射表。
在本發明的一範例實施例中,上述在將所述第二有效資料複製至所述回收單元之後,所述有效資料合併方法更包括:根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊。
在本發明的一範例實施例中,上述根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊的步驟包括:根據所述第二邏輯至實體映射表被獲取的次數重新計算每個所述第二邏輯至實體映射表的計數值;以及根據所述計數值從所述第二邏輯至實體映射表重新選擇所述第一邏輯至實體映射表以更新所述候選資訊。
在本發明的一範例實施例中,上述方法更包括:獲得所述多個實體抹除單元的有效計數,其中所述多個實體抹除單元的所述有效計數反映所述多個實體抹除單元中的每一者所儲存的有效資料的資料量;以及根據所述多個實體抹除單元的所述有效計數選擇所述多個實體抹除單元中的一或多個作為所述第一來源單元。
本發明一範例實施例提出一種記憶體儲存裝置,包括:連接介面單元、可複寫式非揮發性記憶體模組以及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一所述多個實體抹除單元包括多個實體程式化單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以根據候選資訊記錄的第一邏輯至實體映射表收集所述多個實體抹除單元中的第一來源單元中的第一有效資料,並判斷所述第一有效資料的第一資料量與所述第一來源單元的有效計數對應的有效資料的第二資料量是否相同。響應於判斷所述第一資料量與所述第二資料量相同,所述記憶體控制電路單元更用以將所述第一有效資料複製至所述多個實體抹除單元中的回收單元。並且,響應於判斷所述第一資料量與所述第二資料量不相同,所述記憶體控制電路單元更用以根據所述第一來源單元的管理資訊獲取一或多個第二邏輯至實體映射表,並根據所述第二邏輯至實體映射表收集所述第一來源單元中的第二有效資料,並將所述第二有效資料複製至所述回收單元。其中所述管理資訊記錄每一所述多個實體抹除單元儲存的有效資料對應的邏輯至實體映射表。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以設定所述候選資訊,其中所述候選資訊記錄有所述第一邏輯至實體映射表。
在本發明的一範例實施例中,上述在設定所述候選資訊的運作中,所述記憶體控制電路單元更用以根據所述多個實體抹除單元的有效計數選擇所述多個實體抹除單元中的一或多個作為第二來源單元。所述記憶體控制電路單元更用以根據所述第二來源單元的管理資訊獲取映射所述第二來源單元的有效資料的所述第二邏輯至實體映射表。並且,所述記憶體控制電路單元更用以選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
在本發明的一範例實施例中,上述在選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊的運作中,所述記憶體控制電路單元更用以根據所述第二邏輯至實體映射表被獲取的次數計算每個所述第二邏輯至實體映射表的計數值。並且,所述記憶體控制電路單元更用以根據所述計數值選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
在本發明的一範例實施例中,上述在設定所述候選資訊的運作中,所述記憶體控制電路單元更用以預設所述候選資訊所記錄的所述第一邏輯至實體映射表。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊。
在本發明的一範例實施例中,上述在根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊的運作中,所述記憶體控制電路單元更用以根據所述第二邏輯至實體映射表被獲取的次數重新計算每個所述第二邏輯至實體映射表的計數值。並且,所述記憶體控制電路單元更用以根據所述計數值從所述第二邏輯至實體映射表重新選擇所述第一邏輯至實體映射表以更新所述候選資訊。
在本發明的一範例實施例中,上述記憶體控制電路單元更用以獲得所述多個實體抹除單元的有效計數,其中所述多個實體抹除單元的所述有效計數反映所述多個實體抹除單元中的每一者所儲存的有效資料的資料量。並且,所述記憶體控制電路單元更用以根據所述多個實體抹除單元的所述有效計數選擇所述多個實體抹除單元中的一或多個作為所述第一來源單元。
本發明一範例實施例提出一種記憶體控制電路單元,用於控制可複寫式非揮發性記憶體模組。所述記憶體控制電路單元包括主機介面、記憶體介面以及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一所述多個實體抹除單元包括多個實體程式化單元。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面。所述記憶體管理電路用以根據候選資訊記錄的第一邏輯至實體映射表收集所述多個實體抹除單元中的第一來源單元中的第一有效資料,並判斷所述第一有效資料的第一資料量與所述第一來源單元的有效計數對應的有效資料的第二資料量是否相同。響應於判斷所述第一資料量與所述第二資料量相同,所述記憶體管理電路更用以將所述第一有效資料複製至所述多個實體抹除單元中的回收單元。並且,響應於判斷所述第一資料量與所述第二資料量不相同,所述記憶體管理電路更用以根據所述第一來源單元的管理資訊獲取一或多個第二邏輯至實體映射表,並根據所述第二邏輯至實體映射表收集所述第一來源單元中的第二有效資料,並將所述第二有效資料複製至所述回收單元。其中所述管理資訊記錄每一所述多個實體抹除單元儲存的有效資料對應的邏輯至實體映射表。
在本發明的一範例實施例中,上述記憶體管理電路更用以設定所述候選資訊,其中所述候選資訊記錄有所述第一邏輯至實體映射表。
在本發明的一範例實施例中,上述在設定所述候選資訊的運作中,所述記憶體管理電路更用以根據所述多個實體抹除單元的有效計數選擇所述多個實體抹除單元中的一或多個作為第二來源單元。所述記憶體管理電路更用以根據所述第二來源單元的管理資訊獲取映射所述第二來源單元的有效資料的所述第二邏輯至實體映射表。並且,所述記憶體管理電路更用以選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
在本發明的一範例實施例中,上述在選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊的運作中,所述記憶體管理電路更用以根據所述第二邏輯至實體映射表被獲取的次數計算每個所述第二邏輯至實體映射表的計數值。並且,所述記憶體管理電路更用以根據所述計數值選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
在本發明的一範例實施例中,上述在設定所述候選資訊的運作中,所述記憶體管理電路更用以預設所述候選資訊所記錄的所述第一邏輯至實體映射表。
在本發明的一範例實施例中,上述記憶體管理電路更用以根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊。
在本發明的一範例實施例中,上述在根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊的運作中,所述記憶體管理電路更用以根據所述第二邏輯至實體映射表被獲取的次數重新計算每個所述第二邏輯至實體映射表的計數值。並且,所述記憶體管理電路更用以根據所述計數值從所述第二邏輯至實體映射表重新選擇所述第一邏輯至實體映射表以更新所述候選資訊。
在本發明的一範例實施例中,上述記憶體管理電路更用以獲得所述多個實體抹除單元的有效計數,其中所述多個實體抹除單元的所述有效計數反映所述多個實體抹除單元中的每一者所儲存的有效資料的資料量。並且,所述記憶體管理電路更用以根據所述多個實體抹除單元的所述有效計數選擇所述多個實體抹除單元中的一或多個作為所述第一來源單元。
基於上述,基於設定的候選資訊,記憶體儲存裝置可根據候選資訊記錄的邏輯至實體映射表收集實體抹除單元的有效資料。當有效資料與實體抹除單元儲存的所有有效資料量相同時,屬於此實體抹除單元的資料會被複製至另一個實體抹除單元中。如此一來,根據本發明的有效資料合併方法,記憶體儲存裝置可在執行資料整併操作時縮短查詢此實體抹除單元映射的邏輯至實體映射表的時間,以減少收集有效資料的時間。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼等管理資料)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊(block),並且實體程式化單元為實體頁面(page)或實體扇區(sector),但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組406為單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell, TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)或其他具有相同特性的記憶體模組。具體來說,同一條字元線上的記憶胞可組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit, LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit, MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為「把資料寫入至記憶胞」或「程式化(programming)記憶胞」。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路502的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路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所能接受的格式。具體來說,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406,記憶體介面506會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾收集操作等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路502產生並且透過記憶體介面506傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。例如,緩衝記憶體508可以包括動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)或靜態隨機存取記憶體(Static Random Access Memory, SRAM)等任何會因斷電或電壓供應不穩而遺失已儲存之資料的記憶體。此外,緩衝記憶體508是以晶片組或系統單晶片(System on Chip, SoC)的方式實作在記憶體控制電路單元404內,或者是被獨立於記憶體控制電路單元404之外,本發明不對其限制。電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會根據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
請參照圖6,記憶體管理電路502會將可複寫式非揮發性記憶體模組406的記憶胞邏輯地分組為實體抹除單元610(0)~610(C)。須注意的是,在以下的範例實施例中,描述可複寫式非揮發性記憶體模組406的實體抹除單元的管理時,以「選擇」與「分組」等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組406的實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組406的實體抹除單元進行操作。
請參圖6,記憶體管理電路502會將實體抹除單元610(0)~610(C)邏輯地分組為儲存區601與閒置(spare)區602及系統區603。儲存區601中的實體抹除單元610(0)~610(A)儲存有資料,而閒置區602中的實體抹除單元610(A+1)~610(B)尚未被用來儲存資料。系統區603中的實體抹除單元610(B+1)~610(C)用以儲存系統資料,例如邏輯至實體映射表、壞塊管理表、裝置型號或其他類型的管理資料。
在記憶體儲存裝置10的運作過程中,某一個實體抹除單元與儲存區601或閒置區602的關連關係可能會動態地變動。例如,當接收到來自主機系統11的寫入資料時,記憶體管理電路502會從閒置區602中選擇一個實體抹除單元以儲存此寫入資料的至少一部份資料並且將這個實體抹除單元關連至儲存區601。此外,在將屬於儲存區601的某一個實體抹除單元抹除以清除其中的資料之後,記憶體管理電路502會將這個被抹除的實體抹除單元關聯至閒置區602。
在本範例實施例中,屬於閒置區602的實體抹除單元亦稱為閒置實體抹除單元,而屬於儲存區601的實體抹除單元亦可稱為非閒置(non-spare)實體抹除單元。屬於閒置區602的每一個實體抹除單元皆是被抹除的實體抹除單元並且沒有儲存任何資料,而屬於儲存區601的每一個實體抹除單元皆儲存有資料。更進一步,屬於閒置區602的每一個實體抹除單元皆不會儲存任何有效(valid)資料,而屬於儲存區601的每一個實體抹除單元皆可能儲存有效資料及/或無效(invalid)資料。
在一範例實施例中,記憶體管理電路502會配置邏輯單元612(0)~612(D)以映射儲存區601中的實體抹除單元610(0)~610(A)的至少一部分。在本範例實施例中,主機系統11是透過邏輯位址(logical address, LA)來存取儲存於儲存區601中的資料,因此,邏輯單元612(0)~612(D)中的每一者是指一個邏輯位址,其中每一邏輯位址具有多個子邏輯單元以映射與邏輯位址對應的實體抹除單元所包括的實體程式化單元。然而,在另一範例實施例中,邏輯單元612(0)~612(D)中的每一者也可以是由多個連續(例如,連續編號)的邏輯位址組成。
在一範例實施例中,為了識別每個邏輯位址的資料被儲存在哪個實體抹除單元,記憶體管理電路502會將邏輯單元與實體抹除單元之間的映射關係(亦稱為邏輯-實體映射關係)記錄於至少一邏輯至實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路502可根據此邏輯至實體映射表來執行對於記憶體儲存裝置10的資料存取。例如,在本範例實施例中,記憶體管理電路502會在可複寫式非揮發性記憶體模組406中儲存邏輯至實體映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體管理電路502會將邏輯至實體映射表載入至緩衝記憶體508來維護。在一範例實施例中,邏輯至實體映射表以及特定的使用資料(例如,記錄有記憶體儲存裝置10的管理資訊的管理表格)會被儲存在不屬於儲存區601與閒置區602的其他實體抹除單元中,以避免被使用者修改。
值得一提的是,由於緩衝記憶體508的容量有限無法儲存記錄所有邏輯單元與實體抹除單元之間的映射關係的映射表,因此,在一範例實施例中,記憶體管理電路502會將子邏輯單元分組為多個邏輯單元,並且為每一邏輯單元配置一個邏輯至實體映射表。在另一範例實施例中,記憶體管理電路502也可以將邏輯單元分組為多個邏輯區域,並且為每一邏輯區域配置一個邏輯至實體映射表。特別是,當記憶體管理電路502欲更新某個子邏輯單元(或邏輯區域)的映射時,對應此子邏輯單元(或邏輯區域)所屬之邏輯單元(或邏輯區域)的邏輯至實體映射表會被載入至緩衝記憶體508來被更新。
在本範例實施例中,有效資料是屬於某一個邏輯單元的最新資料,而無效資料則不是屬於任一個邏輯單元的舊資料。例如,若主機系統11將一筆新資料儲存至某一邏輯單元而覆蓋掉此邏輯單元原先儲存的舊資料(即,更新屬於此邏輯單元的資料),則儲存在儲存區601中的此筆新資料即為屬於此邏輯單元的最新資料並且會被標記為有效,而被覆蓋掉的舊資料可能仍然儲存在儲存區601中但被標記為無效。在本範例實施例中,若屬於某一邏輯單元的資料被更新,則此邏輯單元與儲存有屬於此邏輯單元之舊資料的實體抹除單元之間的映射關係會被移除,並且此邏輯單元與儲存有屬於此邏輯單元之最新資料的實體抹除單元之間的映射關係會被建立。
在執行資料寫入操作時,除了來自主機系統11的寫入資料以外,通常還會伴隨檔案系統(file system)的資料。在某些情況下,例如主機系統11大量連續寫入或是區域性複寫資料的時候,寫入資料可能會在一定時間內被複寫,但檔案系統資料的修改頻率通常較低。這種情況下,較常更新的寫入資料可視為熱資料(hot data),不常更新的檔案系統資料可視為冷資料(cold data)。
當寫入資料和檔案系統資料混合在一起寫入至可複寫式非揮發性記憶體模組中相同的實體抹除單元時,後續可能會因為寫入資料在一定時間內被複寫,而使得該實體抹除單元剩餘少量的有效資料。而在複寫寫入資料時,當來自於主機系統11的寫入指令指示將寫入資料寫入屬於不同的邏輯單元的多個邏輯子單元時,記憶體管理電路502會將屬於不同邏輯單元的邏輯子單元的資料依序寫入至目前使用之實體抹除單元的實體程式化單元中。換句話說,經過一段時間的運作之後,屬於相同邏輯單元的連續的邏輯子單元的資料可能會被寫入至不同實體抹除單元中。
圖7A-7B是根據本發明的一範例實施例所繪示的以實體程式化單元為基礎來寫入資料的示意圖。
請參照圖7A,假設邏輯單元612(7)具有子邏輯單元LCA(0-0)~LCA(0-M),實體抹除單元610(0)具有實體程式化單元610(0-0)~610(0-N),其中M、N的值可依據可複寫式非揮發性記憶體模組406的設計而不同,本發明不在此限制。假設主機系統11發送一或多個寫入指令以指示將寫入資料WD1儲存至邏輯單元612(7)的子邏輯單元LCA(0-0),將寫入資料WD2儲存至邏輯單元612(7)的子邏輯單元LCA(0-1),將寫入資料WD3儲存至邏輯單元612(7)的子邏輯單元LCA(0-2)。並且伴隨著寫入資料WD1~WD3,記憶體管理電路502根據寫入指令將檔案系統資料FD1儲存至邏輯單元612(7)的子邏輯單元LCA(0-3)。回應於寫入指令,記憶體管理電路502從閒置區602中提取實體抹除單元610(0)作為目前使用之實體抹除單元,並且將寫入資料WD1、WD2、WD3、FD1分別寫入實體抹除單元610(0)的實體程式化單元610(0-0)~ 610(0-3)中。記憶體管理電路502還會將相關的映射資訊記錄在邏輯至實體映射表中,例如邏輯單元612(7)的邏輯子單元LCA(0-0)~LCA(0-3)分別映射至實體抹除單元610(0)的實體程式化單元610(0-0)~610(0-3)。須注意的是,圖7A中實體程式化單元610(0-0)~610(0-3)的斜線陰影部分為儲存的有效資料。
之後,記憶體管理電路502又接收到來自於主機系統11的一或多個寫入指令。請參照圖7B,假設主機系統11發送一或多個寫入指令以指示將寫入資料WD4儲存至邏輯單元612(7)的子邏輯單元LCA(0-0),將寫入資料WD5儲存至邏輯單元612(7)的子邏輯單元LCA(0-1),將寫入資料WD6儲存至邏輯單元612(7)的子邏輯單元LCA(0-2)。假設實體抹除單元610(0)已被寫滿,記憶體管理電路502會從閒置區604中提取實體抹除單元610(1)作為目前使用之實體抹除單元。記憶體管理電路502根據寫入指令將寫入資料WD4、WD5、WD6分別寫入實體抹除單元610(1)的實體程式化單元610(1-0)~610(1-2)中。此外,記憶體管理電路502還會記錄相關的映射資訊,例如邏輯單元612(7)的邏輯子單元LCA(0-0)~LCA(0-2)分別映射至實體抹除單元610(1)的實體程式化單元610(1-0)~610(0-2)。須注意的是,圖7B中實體程式化單元610(0-3)、610(0-N)、610(1-0)~610(1-2)的斜線陰影部分為儲存的有效資料。
由上述可知,在經過一段時間的運作之後,較常更新的熱資料(例如,寫入資料)可能會被寫入至不同實體抹除單元中。而熱資料寫入的邏輯單元與儲存有熱資料的舊資料的實體抹除單元之間的映射關係會被移除,並且該熱資料的舊資料形成無效資料。相較於此,冷資料(例如,檔案系統資料)則因為不常更新而儲存在原本的實體抹除單元。此時,經過多次資料複寫,實體抹除單元的有效資料可能會只剩下冷資料。
在本範例實施例中,記憶體管理電路502還會記錄對應每一個實體抹除單元的使用資訊。例如,記憶體管理電路502可將使用資訊儲存至系統區603。使用資訊可包括實體抹除單元的有效計數(valid count)、讀取次數與寫入次數等。有效計數可用以表示一個實體抹除單元中儲存有效資料的實體程式化單元的數目,亦即,有效計數反映一個實體抹除單元所儲存的有效資料的資料量。然而,使用資訊也可包括更多其他資訊,並不以上述揭露的內容為限。以圖7為例,當接收到寫入指令後,記憶體管理電路502會執行對應實體抹除單元610(0)的實體程式化單元610(0-0)的寫入操作。此外,記憶體管理電路502會將對應實體抹除單元610(0)的有效計數加1。另一方面,當屬於實體抹除單元610(0)的實體程式化單元610(0-0)的資料被刪除或被標識為無效資料時,記憶體管理電路502會將對應實體抹除單元610(0)的有效計數減1。
圖8是根據本發明的一範例實施例所繪示的實體抹除單元的使用資訊的示意圖。請參照圖8,記憶體管理電路502使用記錄表810來記錄每一個實體抹除單元的有效計數資訊。如記錄表810所示,對應實體抹除單元610(0)的有效計數為4,表示實體抹除單元610(0)具有已儲存有效資料的4個實體程式化單元。
在本範例實施例中,使用資訊還可包括每個實體抹除單元的管理資訊。管理資訊記錄各個實體抹除單元儲存的有效資料所對應的邏輯至實體映射表。以圖7A為例,假設為邏輯單元612(7)配置一個邏輯至實體映射表PTE(7)。當接收到寫入指令後,記憶體管理電路502會將寫入資料WD1儲存至邏輯單元612(7)的子邏輯單元LCA(0-0)並執行對應實體抹除單元610(0)的實體程式化單元610(0-0)的寫入操作。此外,記憶體管理電路502會將對應實體抹除單元610(0)的管理資訊中對應邏輯至實體映射表PTE(7)的識別資訊標記為位元“1”,表示實體抹除單元610(0)儲存的有效資料有映射至邏輯至實體映射表PTE(7)。另一方面,當實體抹除單元610(0)儲存的有效資料沒有映射至邏輯至實體映射表PTE(7)時記憶體管理電路502會將邏輯至實體映射表PTE(7)的識別資訊標記為位元“0”。
圖9是根據本發明的一範例實施例所繪示的實體抹除單元的管理資訊的示意圖。請參照圖7A及圖9,記憶體管理電路502使用記錄表910來記錄實體抹除單元610(0)的管理資訊。如記錄表910所示,邏輯至實體映射表PTE(7)的識別資訊為位元“1”,表示實體抹除單元610(0)映射邏輯至實體映射表PTE(7)的資料,即,實體抹除單元610(0)儲存的有效資料有映射至邏輯至實體映射表PTE(7)。另一方面,邏輯至實體映射表PTE(0)~PTE(6)的識別資訊為位元“0”,表示實體抹除單元610(0)沒有映射邏輯至實體映射表PTE(0)~PTE(6)的資料,即,實體抹除單元610(0)儲存的有效資料沒有映射至邏輯至實體映射表PTE(0)~PTE(6)。
在記憶體儲存裝置10的運作中,記憶體管理電路502可持續更新屬於閒置區602的實體抹除單元的總數。記憶體管理電路502可根據閒置區602中的實體抹除單元的數目判斷是否執行資料整併操作。例如,記憶體管理電路502可判斷屬於閒置區602的實體抹除單元的總數是否小於或等於一個門檻值。此第一門檻值例如是2或者更大的值(例如,10),本發明不加以限制。若屬於閒置區602的實體抹除單元的總數小於或等於門檻值,記憶體管理電路502可執行資料整併操作。在一範例實施例中,資料整併操作亦稱為垃圾收集(Garbage Collection,GC)操作。
在垃圾收集操作中,記憶體管理電路502會根據實體抹除單元的使用資訊來選擇執行垃圾收集操作的實體抹除單元。並且記憶體管理電路502會從閒置區602中提取至少一個實體抹除單元作為回收單元。記憶體管理電路502可發送至少一指令序列以指示可複寫式非揮發性記憶體模組406將有效資料從作為來源單元的實體抹除單元複製到作為回收單元的實體抹除單元。若某一個來源單元所儲存的有效資料皆已被複製至回收單元,則此來源單元可被抹除並且被關聯至閒置區602。在一範例實施例中,將某一個來源單元從儲存區601重新關聯回閒置區602的操作(或抹除某一個來源單元的操作)亦稱為釋放一個閒置實體抹除單元。藉由執行資料整併操作,一或多個閒置實體抹除單元會被釋放並且使得屬於閒置區602的實體抹除單元的總數逐漸增加。
在一範例實施例中,記憶體管理電路502會根據對應一個實體抹除單元的使用資訊來取得此實體抹除單元的有效計數來決定來源單元。例如,記憶體管理電路502可查詢記錄表810來獲得實體抹除單元的有效計數,並根據實體抹除單元的有效計數選擇實體抹除單元中的一或多個作為來源單元。記憶體管理電路502可依序選擇多個實體抹除單元中有效計數的數值最小的實體抹除單元作為目前使用的來源單元。需說明的是,本發明提供的記憶體管理電路502還可利用實體抹除單元的其他參數及方法挑選所使用的其他來源單元,本發明不在此限制。
在某些情況下,檔案系統(例如,Windows的NTFS、FAT檔案系統等)在資料寫入的時候,冷資料(例如,檔案系統資料)可能會集中在某些邏輯位址的範圍。因此在本範例實施例中,記憶體管理電路502可設定候選資訊來記錄有較高機率儲存冷資料的邏輯至實體映射表,此邏輯至實體映射表映射邏輯位址的一範圍。例如,可在出廠時預設候選資訊所記錄的邏輯至實體映射表。或者,在記憶體儲存裝置10運作一段時間後學習冷資料可能對應的邏輯至實體映射表以建立候選資訊。此候選資訊記錄有至少一個邏輯至實體映射表(亦稱為第一邏輯至實體映射表)。例如,記憶體管理電路502可將候選資訊儲存至系統區603。
在本範例實施例中,記憶體管理電路502例如可在執行一或多次垃圾收集操作之後根據所獲取的邏輯至實體映射表建立候選資訊。例如,在執行一次垃圾收集操作後,記憶體管理電路502可根據來源單元(亦稱為第二來源單元)的管理資訊獲取映射來源單元的有效資料的一或多個邏輯至實體映射表(亦稱為第二邏輯至實體映射表),並選擇第二邏輯至實體映射表中的至少一個作為第一邏輯至實體映射表以建立候選資訊。又或者,記憶體管理電路502可在執行多次垃圾收集操作後,根據第二邏輯至實體映射表被獲取的次數決定至少一個第一邏輯至實體映射表以建立候選資訊。例如,記憶體管理電路502可根據第二邏輯至實體映射表被獲取的次數計算每個第二邏輯至實體映射表的計數值,並根據計數值選擇第二邏輯至實體映射表中的至少一個作為第一邏輯至實體映射表以建立候選資訊。例如,選擇所對應的計數值最大的第二邏輯至實體映射表作為第一邏輯至實體映射表。需說明的是,本發明提供的記憶體管理電路502還可利用第二邏輯至實體映射表的其他參數及方法挑選第一邏輯至實體映射表,本發明不在此限制。
圖10是根據本發明的一範例實施例所繪示的候選資訊的示意圖。請參照圖10,記憶體管理電路502使用記錄表1010來記錄候選資訊。如記錄表1010所示,候選資訊記錄有邏輯至實體映射表PTE(7)。
記憶體管理電路502啟動垃圾收集操作之後,可先判斷記憶體儲存裝置10是否存在候選資訊。若判斷不存在候選資訊,記憶體管理電路502執行一般垃圾收集操作。垃圾收集操作具體操作細節相同或相似於前述,故在此便不贅述。而記憶體管理電路502可在執行一般垃圾收集操作之後根據所獲取的邏輯至實體映射表建立候選資訊,具體操作細節相同或相似於前述關於建立候選資訊的操作,故在此便不贅述。
在本範例實施例中,若判斷存在候選資訊,記憶體管理電路502根據候選資訊記錄的第一邏輯至實體映射表收集實體抹除單元中的來源單元(亦稱為第一來源單元)中的有效資料(亦稱為第一有效資料),並判斷第一有效資料的資料量(亦稱為第一資料量)與第一來源單元的有效計數對應的有效資料的資料量(亦稱為第二資料量)是否相同。響應於判斷第一資料量與第二資料量相同,記憶體管理電路502將來源單元中的第一有效資料複製至回收單元。響應於判斷第一資料量與第二資料量不相同,記憶體管理電路502根據第一來源單元的管理資訊獲取一或多個邏輯至實體映射表(亦稱為第二邏輯至實體映射表)。接著,記憶體管理電路502根據所獲取的第二邏輯至實體映射表收集第一來源單元中的第二有效資料,並將第二有效資料複製至回收單元。
請同時參照圖9及圖10。舉例來說,假設執行垃圾收集操作時,第一來源單元的管理資訊如圖9所示的記錄表910。在本範例實施例中,記憶體管理電路502會直接根據圖10所示的候選資訊記錄的邏輯至實體映射表PTE(7)收集第一來源單元中的第一有效資料,並判斷第一有效資料的第一資料量。於此,第一資料量會與第一來源單元的有效計數對應的有效資料的第二資料量相同(即,根據第一來源單元的管理資訊收集的資料量相同)。換句話說,在本範例實施例中,記憶體管理電路502利用候選資訊成功直接挑選到映射第一來源單元中所有有效資料的邏輯至實體映射表。因此,記憶體管理電路502就不需要花費時間查詢記錄表910來找出第一來源單元儲存的有效資料所映射的邏輯至實體映射表。
圖11是根據本發明的一範例實施例所繪示的實體抹除單元的管理資訊的示意圖。另一方面,請同時參照圖10及圖11。假設執行垃圾收集操作時,第一來源單元的管理資訊如圖11所示的記錄表1110。在本範例實施例中,記憶體管理電路502會直接根據圖10所示的候選資訊記錄的邏輯至實體映射表PTE(7)收集第一來源單元中的第一有效資料,並判斷第一有效資料的第一資料量。於此,從記錄表1110可知,第一來源單元的有效資料還映射到其他邏輯至實體映射表PTE(0)、PTE(1)及PTE(3)~PTE(6)。因此,第一資料量會與第一來源單元的有效計數對應的有效資料的第二資料量會不相同(即,根據第一來源單元的管理資訊收集的資料量不相同)。換句話說,在本範例實施例中,記憶體管理電路502利用候選資訊沒有直接挑選到映射第一來源單元中所有有效資料的邏輯至實體映射表。在判斷第一資料量與第二資料量不相同時,記憶體管理電路502會查詢第一來源單元的管理資訊以獲取其他邏輯至實體映射表PTE(0)、PTE(1)及PTE(3)~PTE(6),並利用這些邏輯至實體映射表PTE(0)、PTE(1)及PTE(3)~PTE(6)收集第一來源單元中的第二有效資料,並將第二有效資料複製至回收單元。
在本範例實施例中,在將有效資料複製至回收單元後,記憶體管理電路502還可以根據第一來源單元的管理資訊中記錄的第二邏輯至實體映射表更新候選資訊。例如,記憶體管理電路502可根據第二邏輯至實體映射表被獲取的次數重新計算每個第二邏輯至實體映射表的計數值。例如,參照圖11的管理資訊,記憶體管理電路502可將第二邏輯至實體映射表PTE(0)、PTE(1)及PTE(3)~PTE(7)對應的計數值加1,本發明不在此限制。並且,記憶體管理電路502會根據重新計算的計數值從第二邏輯至實體映射表重新選擇第一邏輯至實體映射表以更新候選資訊。例如,選擇所對應的計數值最大的第二邏輯至實體映射表作為第一邏輯至實體映射表,本發明不在此限制。需說明的是,本發明提供的記憶體管理電路502還可利用第二邏輯至實體映射表的其他參數及方法挑選第一邏輯至實體映射表,本發明不在此限制。
藉由動態地更新候選資訊所記錄的第一邏輯至實體映射表可更準確地映射至實體抹除單元儲存的冷資料。因此在執行垃圾收集操作時,可有更高的機率直接利用候選資訊所記錄的第一邏輯至實體映射表找出實體抹除單元儲存的所有有效資料。
值得注意的是,上述範例實施例中所述的邏輯至實體映射表、使用資訊、候選資訊及計數值等資訊可以實作為查找表或是以其他方式儲存,本發明不加以限制。
圖12是根據本發明的一範例實施例所繪示的有效資料合併方法的流程圖。請參照圖12,在步驟S1202中,啟動垃圾收集操作。在步驟S1204中,判斷是否存在候選資訊。若判斷存在候選資訊(步驟S1204,判斷為是),進入圖13的步驟S1304。若判斷不存在候選資訊(步驟S1204,判斷為否),則在步驟S1206,根據來源單元的管理資訊獲取一或多個邏輯至實體映射表,並根據邏輯至實體映射表收集來源單元中的有效資料,並將有效資料複製至回收單元,並在步驟S1208,根據所獲取的邏輯至實體映射表建立候選資訊。
圖13是根據本發明的一範例實施例所繪示的有效資料合併方法的流程圖。請參照圖13,在步驟S1304中,根據候選資訊記錄的一第一邏輯至實體映射表收集第一來源單元中的第一有效資料。在步驟S1306中,判斷第一有效資料的第一資料量與第一來源單元的有效計數對應的有效資料的第二資料量是否相同。若判斷相同(步驟S1306,判斷為是),則在步驟S1308,將第一有效資料複製至回收單元。若判斷不相同(步驟S1306,判斷為否),則在步驟S1310,根據第一來源單元的管理資訊獲取一或多個第二邏輯至實體映射表,並根據第二邏輯至實體映射表收集第一來源單元中的第二有效資料,並將第二有效資料複製至回收單元。
圖14是根據本發明的一範例實施例所繪示的有效資料合併方法的流程圖。請參照圖14,在步驟S1410中,根據第一來源單元的管理資訊獲取一或多個第二邏輯至實體映射表,並根據第二邏輯至實體映射表收集第一來源單元中的第二有效資料,並將第二有效資料複製至回收單元。在步驟S1412中,根據第一來源單元的管理資訊中記錄的第二邏輯至實體映射表更新候選資訊。
然而,圖12、圖13與圖14中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖12、圖13與圖14中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖12、圖13與圖14的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明範例實施例的有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元可根據設定的候選資訊所記錄的邏輯至實體映射表先收集實體抹除單元映射此邏輯至實體映射表的有效資料。當所收集的有效資料與實體抹除單元儲存的所有有效資料量相同時,屬於此實體抹除單元的資料會被複製至一個實體抹除單元中。如此一來,根據本發明的有效資料合併方法,記憶體儲存裝置可在執行資料整併操作時縮短查詢此實體抹除單元映射的邏輯至實體映射表的時間,以減少收集有效資料的時間。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10,30:記憶體儲存裝置
11,31:主機系統
12:輸入/輸出(I/O)裝置
110:系統匯流排
111:處理器
112:隨機存取記憶體(RAM)
113:唯讀記憶體(ROM)
114:資料傳輸介面
20:主機板
201:隨身碟
202:記憶卡
203:固態硬碟
204:無線記憶體儲存裝置
205:全球定位系統模組
206:網路介面卡
207:無線傳輸裝置
208:鍵盤
209:螢幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式儲存裝置
341:嵌入式多媒體卡
342:嵌入式多晶片封裝儲存裝置
402:連接介面單元
404:記憶體控制電路單元
406:可複寫式非揮發性記憶體模組
410(0)~410(N):實體抹除單元
502:記憶體管理電路
504:主機介面
506:記憶體介面
508:緩衝記憶體
510:電源管理電路
512:錯誤檢查與校正電路
612(0)~612(D):邏輯單元
601:儲存區
602:閒置區
603:系統區
610(0)~610(A), 610(A+1)~610(B), 610(B+1)~610(C):實體單元
610(0-0)~610(0-N), 610(1-0)~610(1-N):實體程式化單元
810, 910, 1010, 1110:記錄表
FD1:檔案系統資料
LCA(0-0)~LCA(0-M):子邏輯單元
PTE(0)~PTE(7):邏輯至實體映射表
S1202~S1208, S1304~S1310, A1410~S1412:步驟
WD1~WD6:寫入資料
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖7A-7B是根據本發明的一範例實施例所繪示的以實體程式化單元為基礎來寫入資料的示意圖。
圖8是根據本發明的一範例實施例所繪示的實體抹除單元的使用資訊的示意圖。
圖9是根據本發明的一範例實施例所繪示的實體抹除單元的管理資訊的示意圖。
圖10是根據本發明的一範例實施例所繪示的候選資訊的示意圖。
圖11是根據本發明的一範例實施例所繪示的實體抹除單元的管理資訊的示意圖。
圖12是根據本發明的一範例實施例所繪示的有效資料合併方法的流程圖。
圖13是根據本發明的一範例實施例所繪示的有效資料合併方法的流程圖。
圖14是根據本發明的一範例實施例所繪示的有效資料合併方法的流程圖。
S1304~S1310:步驟
Claims (24)
- 一種有效資料合併方法,用於一可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,且每一所述多個實體抹除單元包括多個實體程式化單元,所述有效資料合併方法包括: 根據一候選資訊記錄的一第一邏輯至實體映射表收集所述多個實體抹除單元中的第一來源單元中的第一有效資料,並判斷所述第一有效資料的第一資料量與所述第一來源單元的有效計數對應的有效資料的第二資料量是否相同; 響應於判斷所述第一資料量與所述第二資料量相同,將所述第一有效資料複製至所述多個實體抹除單元中的回收單元;以及 響應於判斷所述第一資料量與所述第二資料量不相同,根據所述第一來源單元的一管理資訊獲取一或多個第二邏輯至實體映射表,並根據所述第二邏輯至實體映射表收集所述第一來源單元中的第二有效資料,並將所述第二有效資料複製至所述回收單元, 其中所述管理資訊記錄每一所述多個實體抹除單元儲存的有效資料對應的邏輯至實體映射表。
- 如請求項1所述的有效資料合併方法,其中所述方法更包括: 設定所述候選資訊,其中所述候選資訊記錄有所述第一邏輯至實體映射表。
- 如請求項2所述的有效資料合併方法,其中設定所述候選資訊的步驟包括: 根據所述多個實體抹除單元的有效計數選擇所述多個實體抹除單元中的一或多個作為第二來源單元; 根據所述第二來源單元的管理資訊獲取映射所述第二來源單元的有效資料的所述第二邏輯至實體映射表;以及 選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
- 如請求項3所述的有效資料合併方法,其中選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊的步驟包括: 根據所述第二邏輯至實體映射表被獲取的次數計算每個所述第二邏輯至實體映射表的計數值;以及 根據所述計數值選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
- 如請求項2所述的有效資料合併方法,其中設定所述候選資訊的步驟包括: 預設所述候選資訊所記錄的所述第一邏輯至實體映射表。
- 如請求項1所述的有效資料合併方法,其中在將所述第二有效資料複製至所述回收單元之後,所述有效資料合併方法更包括: 根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊。
- 如請求項6所述的有效資料合併方法,其中根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊的步驟包括: 根據所述第二邏輯至實體映射表被獲取的次數重新計算每個所述第二邏輯至實體映射表的計數值;以及 根據所述計數值從所述第二邏輯至實體映射表重新選擇所述第一邏輯至實體映射表以更新所述候選資訊。
- 如請求項1所述的有效資料合併方法,其中所述方法更包括: 獲得所述多個實體抹除單元的有效計數,其中所述多個實體抹除單元的所述有效計數反映所述多個實體抹除單元中的每一者所儲存的有效資料的資料量;以及 根據所述多個實體抹除單元的所述有效計數選擇所述多個實體抹除單元中的一或多個作為所述第一來源單元。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,每一所述多個實體抹除單元包括多個實體程式化單元;以及 一記憶體控制電路單元,耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組, 其中所述記憶體控制電路單元用以根據一候選資訊記錄的一第一邏輯至實體映射表收集所述多個實體抹除單元中的第一來源單元中的第一有效資料,並判斷所述第一有效資料的第一資料量與所述第一來源單元的有效計數對應的有效資料的第二資料量是否相同, 響應於判斷所述第一資料量與所述第二資料量相同,所述記憶體控制電路單元更用以將所述第一有效資料複製至所述多個實體抹除單元中的回收單元,並且 響應於判斷所述第一資料量與所述第二資料量不相同,所述記憶體控制電路單元更用以根據所述第一來源單元的一管理資訊獲取一或多個第二邏輯至實體映射表,並根據所述第二邏輯至實體映射表收集所述第一來源單元中的第二有效資料,並將所述第二有效資料複製至所述回收單元, 其中所述管理資訊記錄每一所述多個實體抹除單元儲存的有效資料對應的邏輯至實體映射表。
- 如請求項9所述的記憶體儲存裝置,其中所述記憶體控制電路單元更用以設定所述候選資訊,其中所述候選資訊記錄有所述第一邏輯至實體映射表。
- 如請求項10所述的記憶體儲存裝置,其中在設定所述候選資訊的運作中,所述記憶體控制電路單元更用以根據所述多個實體抹除單元的有效計數選擇所述多個實體抹除單元中的一或多個作為第二來源單元, 所述記憶體控制電路單元更用以根據所述第二來源單元的管理資訊獲取映射所述第二來源單元的有效資料的所述第二邏輯至實體映射表,並且 所述記憶體控制電路單元更用以選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
- 如請求項11所述的記憶體儲存裝置,其中在選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊的運作中,所述記憶體控制電路單元更用以根據所述第二邏輯至實體映射表被獲取的次數計算每個所述第二邏輯至實體映射表的計數值,並且 所述記憶體控制電路單元更用以根據所述計數值選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
- 如請求項10所述的記憶體儲存裝置,其中在設定所述候選資訊的運作中,所述記憶體控制電路單元更用以預設所述候選資訊所記錄的所述第一邏輯至實體映射表。
- 如請求項9所述的記憶體儲存裝置,其中所述記憶體控制電路單元更用以根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊。
- 如請求項14所述的記憶體儲存裝置,其中在根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊的運作中,所述記憶體控制電路單元更用以根據所述第二邏輯至實體映射表被獲取的次數重新計算每個所述第二邏輯至實體映射表的計數值,並且 所述記憶體控制電路單元更用以根據所述計數值從所述第二邏輯至實體映射表重新選擇所述第一邏輯至實體映射表以更新所述候選資訊。
- 如請求項9所述的記憶體儲存裝置,其中所述記憶體控制電路單元更用以獲得所述多個實體抹除單元的有效計數,其中所述多個實體抹除單元的所述有效計數反映所述多個實體抹除單元中的每一者所儲存的有效資料的資料量,並且 所述記憶體控制電路單元更用以根據所述多個實體抹除單元的所述有效計數選擇所述多個實體抹除單元中的一或多個作為所述第一來源單元。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一所述多個實體抹除單元包括多個實體程式化單元;以及 一記憶體管理電路,耦接至所述主機介面與所述記憶體介面, 其中所述記憶體管理電路用以根據一候選資訊記錄的一第一邏輯至實體映射表收集所述多個實體抹除單元中的第一來源單元中的第一有效資料,並判斷所述第一有效資料的第一資料量與所述第一來源單元的有效計數對應的有效資料的第二資料量是否相同, 響應於判斷所述第一資料量與所述第二資料量相同,所述記憶體管理電路更用以將所述第一有效資料複製至所述多個實體抹除單元中的回收單元,並且 響應於判斷所述第一資料量與所述第二資料量不相同,所述記憶體管理電路更用以根據所述第一來源單元的一管理資訊獲取一或多個第二邏輯至實體映射表,並根據所述第二邏輯至實體映射表收集所述第一來源單元中的第二有效資料,並將所述第二有效資料複製至所述回收單元, 其中所述管理資訊記錄每一所述多個實體抹除單元儲存的有效資料對應的邏輯至實體映射表。
- 如請求項17所述的記憶體控制電路單元,其中所述記憶體管理電路更用以設定所述候選資訊,其中所述候選資訊記錄有所述第一邏輯至實體映射表。
- 如請求項18所述的記憶體控制電路單元,其中在設定所述候選資訊的運作中,所述記憶體管理電路更用以根據所述多個實體抹除單元的有效計數選擇所述多個實體抹除單元中的一或多個作為第二來源單元, 所述記憶體管理電路更用以根據所述第二來源單元的管理資訊獲取映射所述第二來源單元的有效資料的所述第二邏輯至實體映射表,並且 所述記憶體管理電路更用以選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
- 如請求項19所述的記憶體控制電路單元,其中在選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊的運作中,所述記憶體管理電路更用以根據所述第二邏輯至實體映射表被獲取的次數計算每個所述第二邏輯至實體映射表的計數值,並且 所述記憶體管理電路更用以根據所述計數值選擇所述第二邏輯至實體映射表中的一個作為所述第一邏輯至實體映射表以建立所述候選資訊。
- 如請求項18所述的記憶體控制電路單元,其中在設定所述候選資訊的運作中,所述記憶體管理電路更用以預設所述候選資訊所記錄的所述第一邏輯至實體映射表。
- 如請求項17所述的記憶體控制電路單元,其中所述記憶體管理電路更用以根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊。
- 如請求項22所述的記憶體控制電路單元,其中在根據所述管理資訊中記錄的所述第二邏輯至實體映射表更新所述候選資訊的運作中,所述記憶體管理電路更用以根據所述第二邏輯至實體映射表被獲取的次數重新計算每個所述第二邏輯至實體映射表的計數值,並且 所述記憶體管理電路更用以根據所述計數值從所述第二邏輯至實體映射表重新選擇所述第一邏輯至實體映射表以更新所述候選資訊。
- 如請求項17所述的記憶體控制電路單元,其中所述記憶體管理電路更用以獲得所述多個實體抹除單元的有效計數,其中所述多個實體抹除單元的所述有效計數反映所述多個實體抹除單元中的每一者所儲存的有效資料的資料量,並且 所述記憶體管理電路更用以根據所述多個實體抹除單元的所述有效計數選擇所述多個實體抹除單元中的一或多個作為所述第一來源單元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110105240A TWI766582B (zh) | 2021-02-17 | 2021-02-17 | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 |
US17/207,749 US11334273B1 (en) | 2021-02-17 | 2021-03-22 | Valid data merging method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110105240A TWI766582B (zh) | 2021-02-17 | 2021-02-17 | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI766582B TWI766582B (zh) | 2022-06-01 |
TW202234227A true TW202234227A (zh) | 2022-09-01 |
Family
ID=81588977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110105240A TWI766582B (zh) | 2021-02-17 | 2021-02-17 | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11334273B1 (zh) |
TW (1) | TWI766582B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11977773B2 (en) * | 2021-09-30 | 2024-05-07 | Kioxia Corporation | Validity table for solid state drives |
US11669254B2 (en) | 2021-09-30 | 2023-06-06 | Kioxia Corporation | SSD supporting deallocate summary bit table and associated SSD operations |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US7464216B2 (en) * | 2006-09-29 | 2008-12-09 | Sandisk Corporation | Method for phased garbage collection with state indicators |
JP4912174B2 (ja) * | 2007-02-07 | 2012-04-11 | 株式会社日立製作所 | ストレージシステム及び記憶管理方法 |
US8285918B2 (en) * | 2009-12-11 | 2012-10-09 | Nimble Storage, Inc. | Flash memory cache for data storage device |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US9734911B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9336133B2 (en) * | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9348746B2 (en) * | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9465731B2 (en) * | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9734050B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US8873284B2 (en) * | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9223693B2 (en) * | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9361040B1 (en) * | 2013-02-27 | 2016-06-07 | Marvell International Ltd. | Systems and methods for data storage management |
KR102053865B1 (ko) * | 2013-03-15 | 2019-12-09 | 삼성전자주식회사 | 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템 |
US20140325148A1 (en) * | 2013-04-29 | 2014-10-30 | Sang Hoon Choi | Data storage devices which supply host with data processing latency information, and related data processing methods |
TWI585770B (zh) * | 2015-08-11 | 2017-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
KR102501751B1 (ko) * | 2015-09-22 | 2023-02-20 | 삼성전자주식회사 | 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법 |
US10133490B2 (en) * | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US9778855B2 (en) * | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10120613B2 (en) * | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
KR20180091296A (ko) * | 2017-02-06 | 2018-08-16 | 삼성전자주식회사 | 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US10430279B1 (en) * | 2017-02-27 | 2019-10-01 | Tintri By Ddn, Inc. | Dynamic raid expansion |
TWI642059B (zh) * | 2017-06-02 | 2018-11-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
TWI668570B (zh) * | 2018-08-09 | 2019-08-11 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
KR102585883B1 (ko) * | 2018-09-18 | 2023-10-10 | 에스케이하이닉스 주식회사 | 메모리 시스템의 동작 방법 및 메모리 시스템 |
US10983715B2 (en) * | 2018-09-19 | 2021-04-20 | Western Digital Technologies, Inc. | Expandable memory for use with solid state systems and devices |
TWI676176B (zh) * | 2018-10-25 | 2019-11-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI701552B (zh) * | 2019-03-22 | 2020-08-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20200122685A (ko) * | 2019-04-18 | 2020-10-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 내에서 서로 다른 종류의 데이터를 처리하기 위한 장치 및 방법 |
TWI726314B (zh) * | 2019-05-02 | 2021-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
TWI717755B (zh) * | 2019-06-12 | 2021-02-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI705331B (zh) * | 2019-06-24 | 2020-09-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置 |
-
2021
- 2021-02-17 TW TW110105240A patent/TWI766582B/zh active
- 2021-03-22 US US17/207,749 patent/US11334273B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11334273B1 (en) | 2022-05-17 |
TWI766582B (zh) | 2022-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI587135B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN110879793B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI701552B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202016937A (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202038098A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI766582B (zh) | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI717755B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI702496B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112051971B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
TWI688956B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202201229A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111737165A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN112799601B (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
CN110096215B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN112394883A (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
TWI741779B (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN114203239B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN112445418B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI823792B (zh) | 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI724427B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI718492B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI741870B (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI768738B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111813325B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |