TW201706848A - 有效資料合併方法、記憶體控制器與記憶體儲存裝置 - Google Patents
有效資料合併方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TW201706848A TW201706848A TW104125829A TW104125829A TW201706848A TW 201706848 A TW201706848 A TW 201706848A TW 104125829 A TW104125829 A TW 104125829A TW 104125829 A TW104125829 A TW 104125829A TW 201706848 A TW201706848 A TW 201706848A
- Authority
- TW
- Taiwan
- Prior art keywords
- physical
- mapping table
- logical address
- address mapping
- logical
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- G06F2212/1044—Space efficiency 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性, 最適於可攜式電子產品, 例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此, 近年快閃記憶體產業成為電子產業中相當熱門的一環。
快閃記憶體模組具有多個實體抹除單元且每一實體抹除單元具有多個實體程式化單元(physical page),其中在實體抹除單元中寫入資料時必須依據實體程式化單元的順序寫入資料。此外,已被寫入資料之實體程式化單元需先被抹除後才能再次用於寫入資料。特別是,實體抹除單元為抹除之最小單位,並且實體程式化單元為程式化(亦稱寫入)的最小單元。因此,在快閃記憶體模組的管理中,實體抹除單元會被區分為資料區與閒置區。
資料區的實體抹除單元是用以儲存主機系統所儲存之資料。具體來說,記憶體儲存裝置中的記憶體管理電路會將主機系統所存取的邏輯存取位址轉換為邏輯區塊的邏輯頁面並且將邏輯區塊的邏輯頁面映射至資料區的實體抹除單元的實體程式化單元。也就是說,快閃記憶體模組的管理上資料區的實體抹除單元是被視為已被使用之實體抹除單元(例如,已儲存主機系統所寫入的資料)。例如,記憶體管理電路會使用邏輯位址-實體位址映射表(logical address-physical address mapping table)來記載邏輯頁面與資料區的實體程式化單元的映射關係。
閒置區的實體抹除單元是用以輪替資料區中的實體抹除單元。具體來說,如上所述,已被寫入資料的實體抹除單元必須被抹除後才可再次用於寫入資料,因此,閒置區的實體抹除單元是被設計用於寫入更新資料以替換映射邏輯區塊的實體抹除單元。基此,在閒置區中的實體抹除單元為空或者可用於寫入資料的實體抹除單元。
在一般的寫入操作中,資料被寫入閒置區的實體抹除單元後,記憶體儲存裝置中的記憶體管理電路並不會立即更改邏輯位址-實體位址映射表中邏輯頁面與實體程式化單元間的映射關係,而是藉由儲存在緩衝記憶體中的一實體位址-邏輯位址映射表(physical address-logical address mapping table),來儲存對應於寫入操作的映射資訊。具體來說,在一寫入操作中,記憶體管理電路會將更新資料寫入至閒置區中的一實體抹除單元中(亦稱為,作動實體抹除單元),並在實體位址-邏輯位址映射表中紀錄關於此寫入操作的邏輯頁面以及用於儲存其更新資料的實體程式化單元兩者間的映射資訊。在適當時機,例如主機系統處於一段閒置時間或實體位址-邏輯位址映射表被寫滿時,記憶體管理電路才會根據實體位址-邏輯位址映射表中的映射資訊,載入對應的邏輯位址-實體位址映射表以進行邏輯頁面與實體程式化單元間映射資訊的更新。
此外,當閒置區中閒置的實體抹除單元的個數為非大於一預先定義值時,記憶體管理電路會執行一有效資料合併程序。具體來說,當閒置區中閒置的實體抹除單元的個數為非大於一預先定義值時,代表閒置區中可用於寫入的實體抹除單元已不夠用,而記憶體管理電路亦會藉由載入邏輯位址-實體位址映射表來執行資料合併程序,以釋放更多的空間給閒置區。
由於實體位址-邏輯位址映射表的儲存空間通常為對應於閒置區中被挑選用來寫入更新資料的作動實體抹除單元的大小或倍數,因此當實體位址-邏輯位址映射表被寫滿時,時常伴隨著作動實體抹除單元被寫入操作的更新資料寫滿的情況發生。倘若作動實體抹除單元被更新資料寫滿且閒置區中閒置的實體抹除單元的個數非大於一預先定義值時,記憶體管理電路會執行上述的有效資料合併程序。也就是說,在進行有效資料合併程序之前,經常會搭配實體位址-邏輯位址映射表的清除運作以更新邏輯位址-實體位址映射表。由於傳統的方法兩者為互相獨立的機制,在兩者皆需載入邏輯位址-實體位址映射表至緩衝記憶體中的情況下,可能會有相同的邏輯位址-實體位址映射表被重複載入至緩衝記憶體的情形,進而造成主機系統等待回應的時間過長。
本發明提供一種本發明提供一種資料管理方法、記憶體控制器與記憶體儲存裝置, 其能夠有效地降低在執行清除實體位址-邏輯位址映射表的運作及執行有效資料合併時所造成的延遲。
本發明一範例實施例提出一種有效資料合併方法,此方法適用於可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一實體抹除單元具有多個實體程式化單元,多個邏輯位址-實體位址映射表被儲存在可複寫式非揮發性記憶體模組中以記錄多個邏輯位址與實體程式化單元之間的映射資訊。本有效資料合併方法包括:從實體抹除單元之中選取一第一實體抹除單元;依據實體位址-邏輯位址映射表,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表;根據實體位址-邏輯位址映射表,更新第一邏輯位址-實體位址映射表;根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料;將第一邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組;從第一實體抹除單元中將所識別出的有效資料複製到實體抹除單元之中的一第二實體抹除單元;以及對第一實體抹除單元執行一抹除操作。
在本發明的一範例實施例中,在上述對第一實體抹除單元執行抹除操作的步驟之前包括:倘若第一實體抹除單元中有儲存其他有效資料,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中除了第一邏輯位址-實體位址映射表以外的至少一第二邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表與所述第二邏輯位址-實體位址映射表以識別出第一實體抹除單元中的其他有效資料,從第一實體抹除單元中將所識別出的所述其他有效資料複製到實體抹除單元之中的第二實體抹除單元。
在本發明的一範例實施例中,上述的有效資料合併方法更包括在緩衝記憶體中建立實體位址-邏輯位址映射表,其中此實體位址-邏輯位址映射表記錄實體抹除單元之中的一作動實體抹除單元的實體程式化單元與邏輯位址之中的已更新邏輯位址之間的映射資訊,其中所述第一邏輯位址-實體位址映射表是記錄有對應已更新邏輯位址的映射資訊。
在本發明的一範例實施例中,上述的有效資料合併方法更包括依據實體抹除單元中的有效資料的數量記錄每一實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述的有效資料合併方法更包括建立有效資料計數表以記錄每一實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述的有效資料合併方法更包括實體抹除單元至少被分組為一資料區與一閒置區,且閒置區的實體抹除單元用以替換資料區的實體抹除單元以寫入資料。
在本發明的一範例實施例中,上述從實體抹除單元之中選取第一實體抹除單元的步驟包括:從資料區中選取第一實體抹除單元,其中此第一實體抹除單元的有效資料計數小於資料區中的其他實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述的有效資料合併方法更包括判斷閒置區中的實體抹除單元的數目是否非大於一預先定義值。上述的有效資料合併方法更包括倘若閒置區中的實體抹除單元的數目非大於預先定義值,從實體抹除單元之中選取第一實體抹除單元,依據實體位址-邏輯位址映射表,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的所述第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表,更新第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料,並將第一邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組,從第一實體抹除單元中將所識別出的有效資料複製到實體抹除單元之中的第二實體抹除單元,並對第一實體抹除單元執行抹除操作;以及倘若閒置區中的實體抹除單元的數目大於預先定義值,依據實體位址-邏輯位址映射表,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表,更新所述第一邏輯位址-實體位址映射表。
本發明一範例實施例提供一種用於控制可複寫式非揮發性記憶體模組的記憶體控制器,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一實體抹除單元具有多個實體程式化單元,且多個邏輯位址-實體位址映射表被儲存在可複寫式非揮發性記憶體模組中以記錄多個邏輯位址與實體程式化單元之間的映射資訊。此記憶體控制器包括:用以耦接至主機系統的主機介面;用以耦接至可複寫式非揮發性記憶體模組的記憶體介面;以及耦接至主機介面與記憶體介面的記憶體管理電路。記憶體管理電路用以從實體抹除單元之中選取一第一實體抹除單元,依據實體位址-邏輯位址映射表,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表,更新第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料。此外,其中記憶體管理電路更用以將第一邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組,從第一實體抹除單元中將所識別出的有效資料複製到實體抹除單元之中的一第二實體抹除單元,並對第一實體抹除單元執行一抹除操作。
在本發明的一範例實施例中,其中在上述記憶體管理電路對第一實體抹除單元執行抹除操作的運作之前包括:倘若該第一實體抹除單元中有儲存其他有效資料,記憶體管理電路更用以從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中除了第一邏輯位址-實體位址映射表以外的至少一第二邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表與所述第二邏輯位址-實體位址映射表以識別出第一實體抹除單元中的其他有效資料,從第一實體抹除單元中將所識別出的所述其他有效資料複製到實體抹除單元之中的第二實體抹除單元。
在本發明的一範例實施例中,上述記憶體管理電路更用以在緩衝記憶體中建立上述實體位址-邏輯位址映射表,其中此實體位址-邏輯位址映射表記錄實體抹除單元之中的作動實體抹除單元的實體程式化單元與邏輯位址之中的多個已更新邏輯位址之間的映射資訊。並且,上述第一邏輯位址-實體位址映射表是記錄有對應已更新邏輯位址的映射資訊。
在本發明的一範例實施例中,上述記憶體管理電路更用以依據實體抹除單元中的有效資料的數量記錄每一實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述記憶體管理電路更用以建立一有效資料計數表以記錄每一實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述記憶體管理電路更用以將實體抹除單元至少分組為資料區與閒置區,且閒置區的實體抹除單元用以替換該資料區的實體抹除單元以寫入資料。
在本發明的一範例實施例中,在上述從實體抹除單元之中選取第一實體抹除單元的運作中,上述記憶體管理電路更用以從該資料區中選取此第一實體抹除單元,其中第一實體抹除單元的有效資料計數小於資料區中的其他實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述記憶體管理電路更用以判斷閒置區中的實體抹除單元的數目是否非大於預先定義值。倘若閒置區中的實體抹除單元的數目非大於預先定義值,記憶體管理電路從實體抹除單元之中選取第一實體抹除單元,依據實體位址-邏輯位址映射表從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表更新第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料,將第一邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組,從第一實體抹除單元中將所識別出的有效資料複製到實體抹除單元之中的第二實體抹除單元,並對該第一實體抹除單元執行抹除操作。倘若閒置區中的實體抹除單元的數目大於預先定義值,記憶體管理電路依據實體位址-邏輯位址映射表從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表更新所述第一邏輯位址-實體位址映射表。
本發明的一範例實施例提供一種記憶體儲存裝置,其包括:用以耦接至主機系統的連接器、可複寫式非揮發性記憶體模組與記憶體控制器。可複寫式非揮發性記憶體模組具有多個實體抹除單元且每一實體抹除單元具有多個實體程式化單元,多個邏輯位址-實體位址映射表被儲存在此可複寫式非揮發性記憶體模組中以記錄多個邏輯位址與實體程式化單元之間的映射資訊。記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組,記憶體控制器用以從實體抹除單元之中選取一第一實體抹除單元並且依據實體位址-邏輯位址映射表,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表。此外,記憶體控制器更用以根據實體位址-邏輯位址映射表,更新第一邏輯位址-實體位址映射表,並根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料。再者,記憶體控制器更用以根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料,並將第一邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組,從第一實體抹除單元中將所識別出的有效資料複製到實體抹除單元之中的一第二實體抹除單元,記憶體控制器更用以對第一實體抹除單元執行一抹除操作。
在本發明的一範例實施例中,其中上述該記憶體控制器對第一實體抹除單元執行抹除操作的運作之前包括:倘若第一實體抹除單元中有儲存其他有效資料,該記憶體管理電路從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中除了第一邏輯位址-實體位址映射表以外的至少一第二邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表與所述第二邏輯位址-實體位址映射表以識別出第一實體抹除單元中的其他有效資料,從第一實體抹除單元中將所識別出的所述其他有效資料複製到實體抹除單元之中的第二實體抹除單元。
在本發明的一範例實施例中,上述記憶體控制器更用以在緩衝記憶體中建立上述實體位址-邏輯位址映射表,其中此實體位址-邏輯位址映射表記錄實體抹除單元之中的一作動實體抹除單元的實體程式化單元與邏輯位址之中的已更新邏輯位址之間的映射資訊。並且,上述第一邏輯位址-實體位址映射表是記錄有對應已更新邏輯位址的映射資訊。
在本發明的一範例實施例中,上述記憶體控制器更用以依據實體抹除單元中的有效資料的數量記錄每一實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述記憶體控制器更用以建立有效資料計數表以記錄每一實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述記憶體控制器更用以將實體抹除單元至少分組為資料區與閒置區,且閒置區的實體抹除單元用以替換該資料區的實體抹除單元以寫入資料。
在本發明的一範例實施例中,在上述從實體抹除單元之中選取第一實體抹除單元的運作中,上述記憶體控制器更用以從該資料區中選取此第一實體抹除單元,其中第一實體抹除單元的有效資料計數小於資料區中的其他實體抹除單元的有效資料計數。
在本發明的一範例實施例中,上述記憶體控制器更用以判斷閒置區中的實體抹除單元的數目是否非大於預先定義值。倘若閒置區中的實體抹除單元的數目非大於預先定義值,記憶體控制器從實體抹除單元之中選取第一實體抹除單元,依據實體位址-邏輯位址映射表從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表更新第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料,將第一邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組,從第一實體抹除單元中將所識別出的有效資料複製到該些實體抹除單元之中的第二實體抹除單元,並對第一實體抹除單元執行抹除操作。倘若閒置區中的實體抹除單元的數目大於預先定義值,記憶體控制器依據實體位址-邏輯位址映射表從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表,根據實體位址-邏輯位址映射表更新所述第一邏輯位址-實體位址映射表。
基於上述,綜上所述,本發明藉由分段地載入邏輯位址-實體位址映射表,執行邏輯位址-實體位址映射表映射資訊的更新以及執行資料合併程序,以避免相同的邏輯位址-實體位址映射表被重複載入,並有效解決主機系統延遲時間過長的問題。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用, 以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output, I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory, RAM) 1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive, SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(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)介面標準、安全數位(Secure Digital, SD)介面標準、記憶棒(Memory Stick, MS)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE) 標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元410(0)~ 410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖5,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準 、UHS-II介面標準、SD標準 、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體208、電源管理電路210與錯誤檢查與校正電路212。
緩衝記憶體208是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。在本範例實施例中,緩衝記憶體208更用以儲存實體位址-邏輯位址映射表,所述實體位址-邏輯位址映射表用於記錄實體抹除單元之中的作動實體抹除單元的實體程式化單元與邏輯位址中的多個已更新邏輯位址之間的映射資訊。具體來說,當主機系統1000欲寫入更新資料至可複寫式非揮發性記憶體模組106時,記憶體管理電路202會將該更新資料儲存至可複寫式非揮發性記憶體模組106的閒置區的一作動實體抹除單元中,並在實體位址-邏輯位址映射表中紀錄關於此寫入操作的邏輯頁面以及該作動實體抹除單元中用於儲存其更新資料的實體程式化單元兩者間的映射資訊。
電源管理電路210是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路212是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
請參照圖6,記憶體控制器104(或記憶體管理電路202)會將實體抹除單元410(0)~410(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以替換資料區502的實體抹除單元。也就是說,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路202會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。在本範例實施例中,系統區506更用於儲存一有效資料計數表,所述有效資料計數表用於記錄資料區502中實體抹除單元410(0)~410(F-1)的有效資料計數,其中所述有效資料計數為一實體抹除單元中儲存有效資料的實體程式化單元的個數。然而在一範例實施例中,所述有效資料計數表更可以被用於記錄可複寫式非揮發性記憶體模組106中所有的實體抹除單元410(0)~410(N)的有效資料計數。
邏輯上屬於取代區508中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區508中仍存有正常之實體抹除單元並且資料區502的實體抹除單元損壞時,記憶體管理電路202會從取代區508中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區502、閒置區504、系統區506與取代區508之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區502、閒置區504、系統區506與取代區508的分組關係會動態地變動。例如,當閒置區504中的實體抹除單元損壞而被取代區508的實體抹除單元取代時,則原本取代區508的實體抹除單元會被關聯至閒置區504。
請參照圖7,記憶體控制器104(或記憶體管理電路202)會配置邏輯單元LBA(0)~LBA(H)以映射資料區502的實體抹除單元,其中每一邏輯單元具有多個邏輯頁面以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統100欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制器104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元作為作動實體抹除單元以用於寫入資料,以輪替資料區502的實體抹除單元。
為了識別資料每個邏輯單元的資料被儲存在哪個實體抹除單元,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會記錄邏輯單元與實體抹除單元之間的映射關係。並且,當主機系統1000欲在邏輯頁面中存取資料時,記憶體控制器104(或記憶體管理電路202)會確認此邏輯頁面所屬的邏輯單元,並且在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會在可複寫式非揮發性記憶體模組106中儲存邏輯位址-實體位址映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體控制器104(或記憶體管理電路202)會將邏輯位址-實體位址映射表載入至緩衝記憶體208來維護。
值得一提的是,由於緩衝記憶體208的容量有限無法儲存記錄了所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯位址-實體位址映射表。特別是,當記憶體控制器104(或記憶體管理電路202)欲更新某個邏輯單元的映射資訊時,對應此邏輯單元所屬之邏輯區域的邏輯位址-實體位址映射表會被載入至緩衝記憶體208來被更新。在本範例實施例中,儲存所有的邏輯位址-實體位址映射表所需的空間為對應於可複寫式非揮發性記憶體模組106中可用於儲存資料的空間的千分之一。也就是說,假設可複寫式非揮發性記憶體模組106的容量為1TB(Terabyte),則儲存所有的邏輯位址-實體位址映射表所需的空間為1GB(Gigabyte)。然而,在其他範例實施例中,儲存所有的邏輯位址-實體位址映射表所需的空間可以隨著可複寫式非揮發性記憶體模組106的容量的不同而改變。
在本範例實施例中,當主機系統1000欲執行寫入操作時,記憶體控制器104(或記憶體管理電路202)會從閒置區504中提取一作動實體抹除單元,並且將包含於來自主機系統1000之寫入指令中的資料(亦稱為更新資料)寫入至此作動實體抹除單元中。
具體來說,當記憶體儲存裝置100從主機系統1000接收到寫入指令時,來自於主機系統1000之寫入指令中的資料可被寫入閒置區504中的一作動實體抹除單元中。並且,當此實體抹除單元已被寫滿時,記憶體控制器104(或記憶體管理電路202)會再從閒置區504中提取空的實體抹除單元作為另一個作動實體抹除單元,以繼續寫入對應來自於主機系統1000之寫入指令的更新資料。
值得一提的是,當記憶體儲存裝置100屬於閒置狀態一段時間(例如,30秒未從主機系統1000中接收到任何指令)或者是當閒置區504中空的實體抹除單元的數目非大於一預先定義值時,記憶體控制電路單元104(或記憶體管理電路302)會對資料區502執行有效資料合併程序,以釋放出空的實體抹除單元。在本範例實施例中,所述預先定義值被設定為1。然而,必須瞭解的是,在其他範例實施例中,預先定義值亦可以是其他適當的數值。
圖8A~圖11C是繪示資料寫入的簡化範例。
為方便說明,在此假設資料區502具有3個實體抹除單元分別為實體抹除單元410(0)~410(2),閒置區504具有2個實體抹除單元分別為實體抹除單元410(3)~410(4)。其中,每一實體抹除單元具有3個實體程式化單元,並且記憶體控制器104(或記憶體管理電路202)會判斷當閒置區504中的閒置的實體抹除單元的個數非大於一預先定義值時,記憶體控制器104(或記憶體管理電路202)會執行一有效資料合併程序,以釋放更多的儲存空間。在本範例實施例中,所述預先定義值為1,也就是說,當閒置區504中僅剩一個空的實體抹除單元時,記憶體控制器104(或記憶體管理電路202)會執行上述資料合併程序。
請同時參照圖8A、圖8B與圖8C,假設在圖8A的記憶體儲存裝置100的狀態中,邏輯單元LBA(0)~LBA(2)的邏輯頁面映射資料區502的實體抹除單元410(0)~410(2)的實體程式化單元,並且閒置區504具有實體抹除單元410(3)~410(4)。也就是說,記憶體控制器104(或記憶體管理電路202)會在邏輯位址-實體位址映射表中記錄邏輯單元LBA(0)~LBA(2)與實體抹除單元410(0)~410(4)之間的映射關係,並且將實體抹除單元410(0)~410(2)的實體程式化單元視為已儲存屬於邏輯單元LBA(0)~LBA(2)的邏輯頁面的資料(即,初始資料ID1~ID9)。特別是,在此範例實施例中,假設目前的邏輯單元LBA(1) 的第2個邏輯頁面是映射至實體抹除單元410(2)的第0個實體程式化單元,且邏輯單元LBA(2) 的第0個邏輯頁面是映射至實體抹除單元410(1)的第2個實體程式化單元。此外,記憶體控制器104(或記憶體管理電路202)會記錄閒置區504中可用的實體抹除單元410(3)~410(4),且當主機系統1000執行寫入操作時,記憶體控制器104(或記憶體管理電路202)會記錄對應此寫入操作的更新資料的映射資訊至緩衝記憶體208中如圖8B所示的實體位址-邏輯位址映射表600。
具體來說,當主機系統1000執行關於一邏輯頁面的寫入操作時,記憶體控制器104(或記憶體管理電路202)會將此寫入操作對應的更新資料寫入從閒置區504選出的作動實體抹除單元中。於此同時,記憶體控制器104(或記憶體管理電路202)並不會更改邏輯位址-實體位址映射表中邏輯單元LBA(0)~LBA(2)與實體抹除單元410(0)~410(4)之間的映射關係,記憶體控制器104(或記憶體管理電路202)會將作動實體抹除單元中,被用於儲存此更新資料的實體程式化單元的位址(亦稱,實體位址),連同此寫入操作所對應的邏輯頁面的位址(亦稱,邏輯位址)記錄至圖8B中的實體位址-邏輯位址映射表600中。等到實體位址-邏輯位址映射表600被寫滿後,才會根據實體位址-邏輯位址映射表600中的映射資訊(即,更新資料所對應的邏輯位址),載入對應的邏輯位址-實體位址映射表至緩衝記憶體208中,以更新邏輯單元LBA(0)~LBA(2)與實體抹除單元410(0)~410(4)之間的映射關係。值得一提的是,當記憶體儲存裝置100屬於閒置狀態一段時間(例如,30秒未從主機系統1000中接收到任何指令)時,記憶體控制器104(或記憶體管理電路202)亦可以根據實體位址-邏輯位址映射表600中的映射資訊,載入對應的邏輯位址-實體位址映射表至緩衝記憶體208中,以更新邏輯單元LBA(0)~LBA(2)與實體抹除單元410(0)~410(4)之間的映射關係。
此外,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會建立如圖8C中的有效資料計數表700以記錄資料區502中每一實體抹除單元410(0)~410(2)的有效資料計數,其中所述有效資料計數為一實體抹除單元中儲存有效資料的實體程式化單元的個數。例如,對應於圖8A的狀態,圖8C的有效資料計數表700分別記錄了實體抹除單元410(0)、實體抹除單元410(1)以及實體抹除單元410(2)的有效資料計數為3。必須暸解的是,在另一範例實施例中,有效資料計數表700可以用於記錄可複寫式非揮發性記憶體模組106中每一實體抹除單元的有效資料個數。在本範例實施例中,在記憶體儲存裝置100運作時,有效資料計數表700會被載入至緩衝記憶體208中來更新與維護,並且在關機前,記憶體控制器104(或記憶體管理電路202)會將有效資料計數表700回存至系統區506。
請同時參照圖9A、圖9B與圖9C,假設主機系統1000欲寫入更新資料UD1並且更新資料UD1是屬於邏輯單元LBA(0)的第2個邏輯頁面時,記憶體控制器104(或記憶體管理電路202)會從閒置區504中提取例如實體抹除單元410(3)做為作動實體抹除單元,並且下達寫入指令以將此更新資料UD1寫入至實體抹除單元410(3)的第0個實體程式化單元。接著,如圖9B所示,記憶體控制器104(或記憶體管理電路202)會在實體位址-邏輯位址映射表600中記錄實體抹除單元410(3)的第0個實體程式化單元(即,資訊“410(3)-0”)與邏輯單元LBA(0)的第2個邏輯頁面(即,資訊“LBA(0)-2”)的映射資訊。此外,如圖9C所示,記憶體控制器104(或記憶體管理電路202)還會對應此寫入操作,將有效資料計數表700中原本用於儲存邏輯單元LBA(0)的第2個邏輯頁面的資料的實體抹除單元410(0)的有效資料計數修改為2。
請同時參照圖10A、圖10B與圖10C,接續圖9A、圖9B與圖9C,假設主機系統1000欲再寫入更新資料UD2並且更新資料UD2是屬於邏輯單元LBA(1)的第0個邏輯頁面時,記憶體控制器104(或記憶體管理電路202)會將此更新資料UD2寫入至實體抹除單元410(3)的第1個實體程式化單元。接著如圖10B所示,記憶體控制器104(或記憶體管理電路202)會在實體位址-邏輯位址映射表600中記錄實體抹除單元410(3)的第1個實體程式化單元(即,資訊“410(3)-1”)與邏輯單元LBA(1)的第0個邏輯頁面(即,資訊“LBA(1)-0”)的映射資訊。此外,如圖10C所示,記憶體控制器104(或記憶體管理電路202)還會對應此寫入操作,將有效資料計數表700中原本用於儲存邏輯單元LBA(1)的第0個邏輯頁面的資料的實體抹除單元410(1)的有效資料計數修改為2。
請同時參照圖11A、圖11B與圖11C,接續圖10A、圖10B與圖10C,假設主機系統1000欲再寫入更新資料UD3並且更新資料UD3是屬於邏輯單元LBA(1)的第1個邏輯頁面時,記憶體控制器104(或記憶體管理電路202)會將此更新資料UD3寫入至實體抹除單元410(3)的第2個實體程式化單元。接著如圖11B所示,記憶體控制器104(或記憶體管理電路202)會在實體位址-邏輯位址映射表600中記錄實體抹除單元410(3)的第2個實體程式化單元(即,資訊“410(3)-2”)與邏輯單元LBA(1)的第1個邏輯頁面(即,資訊“LBA(1)-1”)的映射資訊。此外,如圖11C所示,記憶體控制器104(或記憶體管理電路202)還會對應此寫入操作,將有效資料計數表700中原本用於儲存邏輯單元LBA(1)的第1個邏輯頁面的資料的實體抹除單元410(1)的有效資料計數修改為1。
必須了解的是,由於此時實體位址-邏輯位址映射表600已被寫滿,記憶體控制器104(或記憶體管理電路202) 會根據實體位址-邏輯位址映射表600中寫入資訊所對應的邏輯位址(例如,資訊“LBA(0)-2”、資訊“LBA(1)-0”以及資訊“LBA(1)-1”),載入對應的邏輯位址-實體位址映射表至緩衝記憶體208中,以更新邏輯單元LBA(0)~LBA(2)與實體抹除單元410(0)~410(4)之間的映射關係。此外,由於被選擇為作動實體抹除單元的實體抹除單元410(3)已無儲存空間,且記憶體控制器104(或記憶體管理電路202)會判斷閒置區504中閒置且可用於寫入更新資料的實體抹除單元的個數為非大於一預先定義值(例如,在本範例實施例中預先定義值為1)。也就是說,在此情況下,記憶體控制器104(或記憶體管理電路202)會執行有效資料合併程序,以釋放更多空間。也就是說,在此情況下,記憶體控制器104(或記憶體管理電路202)會更新邏輯位址-實體位址映射表中的映射關係以清空實體位址-邏輯位址映射表600,並對可複寫式非揮發性記憶體模組106執行資料合併程序。
必須了解的是,傳統藉由實體位址-邏輯位址映射表來更新邏輯位址-實體位址映射表的方法,以及執行資料合併程序的方法兩者為互相獨立的機制。具體來說,由於邏輯位址-實體位址映射表的更新需要根據實體轉邏輯映射表中儲存的映射資訊,以載入對應的邏輯位址-實體位址映射表至緩衝記憶體中進行更新。此外,在資料合併程序中,需載入所有的邏輯位址-實體位址映射表至緩衝記憶體中,並搭配實體位址-邏輯位址映射表來比對(或辨識)欲進行資料合併程序的實體抹除單元中,儲存有效資料的實體程式化單元以及儲存無效資料的實體程式化單元,以將比對出(或辨識出)的有效資料寫入至其他空的實體抹除單元中,並修改有效資料與邏輯頁面間的映射關係。要知道的是,由於實體位址-邏輯位址映射表用於儲存關於寫入操作的資訊的儲存空間通常為對應於用於寫入更新資料的作動實體抹除單元的大小或倍數,故當實體位址-邏輯位址映射表被寫滿時,通常作動實體抹除單元亦會被寫入操作的更新資料寫滿。倘若作動實體抹除單元被更新資料寫滿且閒置區504中閒置的實體抹除單元的數目為非大於一預先定義值時,記憶體控制器104(或記憶體管理電路202)會對可複寫式非揮發性記憶體106執行有效資料合併程序。
也就是說,在執行有效資料合併程序之前常會搭配邏輯轉實體映射表的更新,且由於傳統的方法兩者為互相獨立的機制,在兩者皆需載入邏輯位址-實體位址映射表至緩衝記憶體中的情況下,可能會有相同的邏輯位址-實體位址映射表被重複載入緩衝記憶體中的情形,造成主機系統等待的時間過長。基此,本發明所提出的資料管理方法為用於解決上述邏輯位址-實體位址映射表載入時間過長的問題。
圖12A~圖14C是繪示有效資料合併方法的簡化範例。
請同時參照圖12A、圖12B與圖12C,接續圖11A、圖11B與圖11C,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)首先會根據圖12C的有效資料計數表700挑選出資料區502中的實體抹除單元410(1)(即,第一實體抹除單元),其中對應實體抹除單元410(1)的有效資料計數(即,有效資料計數值為1)小於資料區502中的其他實體抹除單元(例如實體抹除單元410(0)及實體抹除單元410(3))的有效資料計數。也就是說,實體抹除單元410(1)的有效資料計數是資料區502中最小且實體抹除單元410(1)中儲存的有效資料為最少。
接著,記憶體控制器104(或記憶體管理電路202)會依據實體位址-邏輯位址映射表600,從可複寫式非揮發性記憶體模組106中載入對應於實體位址-邏輯位址映射表600的邏輯位址-實體位址映射表(亦即,第一邏輯位址-實體位址映射表)。具體來說,由於圖12B中的實體位址-邏輯位址映射表600中儲存了關於邏輯單元LBA(0)的第2個邏輯頁面的更新資訊(即,資訊“LBA(0)-2”)、邏輯單元LBA(1)的第0個邏輯頁面的更新資訊(即,資訊“LBA(1)-0”)以及邏輯單元LBA(1)的第1個邏輯頁面的更新資訊(即,資訊“LBA(1)-1”),記憶體控制器104(或記憶體管理電路202)會對應地從可複寫式非揮發性記憶體模組106中載入邏輯單元LBA(0) 的邏輯位址-實體位址映射表以及邏輯單元LBA(1)的邏輯位址-實體位址映射表(亦即,第一邏輯轉實體映射表)至緩衝記憶體208中。
接著,記憶體控制器104(或記憶體管理電路202)會根據實體位址-邏輯位址映射表600中儲存的資訊,更新邏輯單元LBA(0)以及邏輯單元LBA(1)與實體抹除單元410(0)~410(3)之間的映射關係。具體來說,由於實體位址-邏輯位址映射表600中儲存了關於邏輯單元LBA(0)的第2個邏輯頁面(即,資訊“LBA(0)-2”)的更新資料UD1被儲存至實體抹除單元410(3)的第0個實體程式化單元(即,資訊“410(3)-0”)的更新資訊、關於邏輯單元LBA(1)的第0個邏輯頁面(即,資訊“LBA(1)-0”)的更新資料UD2被儲存至實體抹除單元410(3)的第1個實體程式化單元(即,資訊“410(3)-1”)的更新資訊、以及關於邏輯單元LBA(1)的第1個邏輯頁面(即,資訊“LBA(1)-1”)的更新資料UD3被儲存至實體抹除單元410(3)的第2個實體程式化單元(即,資訊“410(3)-2”)的更新資訊,記憶體控制器104(或記憶體管理電路202)會分別更新邏輯單元LBA(0) 的邏輯位址-實體位址映射表以及邏輯單元LBA(1)的邏輯位址-實體位址映射表,以將邏輯單元LBA(0)的第2個邏輯頁面映射至實體抹除單元410(3)的第0個實體程式化單元、將邏輯單元LBA(1)的第0個邏輯頁面映射至實體抹除單元410(3)的第1個實體程式化單元以及將邏輯單元LBA(1)的第1個邏輯頁面映射至實體抹除單元410(3)的第2個實體程式化單元。
接著,記憶體控制器104(或記憶體管理電路202)會根據實體位址-邏輯位址映射表600與邏輯單元LBA(0) 的邏輯位址-實體位址映射表以及邏輯單元LBA(1)的邏輯位址-實體位址映射表,以找出實體抹除單元410(1)中的有效資料。具體來說,請參照圖11A,記憶體控制器104(或記憶體管理電路202)首先會藉由邏輯單元LBA(1)的邏輯位址-實體位址映射表來確認原本未更新前的映射關係,其中邏輯單元LBA(1)的第0個邏輯頁面原本為映射至實體抹除單元410(1)的第0個實體程式化單元,邏輯單元LBA(1)的第1個邏輯頁面原本為映射至實體抹除單元410(1)的第1個實體程式化單元,以及邏輯單元LBA(1)的第2個邏輯頁面原本為映射至實體抹除單元410(2)的第0個實體程式化單元。接著,記憶體控制器104(或記憶體管理電路202)會根據實體位址-邏輯位址映射表600中所儲存的資訊LBA(1)-0及資訊LBA(1)-1,判斷出關於邏輯單元LBA(1)的第0個邏輯頁面以及邏輯單元LBA(1)的第1個邏輯頁面的資料已被更新,且更新資料被分別儲存於實體抹除單元410(3)的第1個實體程式化單元以及實體抹除單元410(3)的第2個實體程式化單元中。故記憶體控制器104(或記憶體管理電路202)可以判斷出實體抹除單元410(1)中初始資料ID4以及初始資料ID5為無效資料。
必須了解的是,在本範例實施例中,有效資料合併的步驟是先更新第一邏輯位址-實體位址映射表,再根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料;然而需注意的是,在其他範例實施例中,亦可以先根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料,再更新第一邏輯位址-實體位址映射表,在此並不設限。
請再次參照圖12A、圖12B與圖12C。接著,記憶體控制器104(或記憶體管理電路202)會將更新後的邏輯單元LBA(0)以及邏輯單元LBA(1)的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組106中。而需注意的是,本範例實施例並非用於限定將第一邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組106中的時機;在本發明另一實施例中,第一邏輯位址-實體位址映射表亦可以在執行完本發明所述的資料合併方法後才被回存至可複寫式非揮發性記憶體模組106中,在此並不設限。
接著,記憶體控制器104(或記憶體管理電路202)會判斷實體抹除單元410(1)(即,第一實體抹除單元)中是否有儲存其他有效資料。具體來說,記憶體控制器104(或記憶體管理電路202)會判斷實體抹除單元410(1)(即,第一實體抹除單元)中是否尚有儲存未被識別出的其他有效資料。必須了解的是,在一範例實施例中,假設在此情形下記憶體控制器104(或記憶體管理電路202)藉由邏輯單元LBA(0)以及邏輯單元LBA(1)的邏輯位址-實體位址映射表,識別出實體抹除單元410(1)中的有效資料的個數剛好等於有效資料計數表700中關於實體抹除單元410(1)的有效資料計數的值時,記憶體控制器104(或記憶體管理電路202)可以判斷實體抹除單元410(1)中所有的有效資料為映射至邏輯單元LBA(0)或邏輯單元LBA(1)中。此時,記憶體控制器104(或記憶體管理電路202)可以不從可複寫式非揮發性記憶體模組106中載入其他的邏輯位址-實體位址映射表,而可以直接根據邏輯單元LBA(0)或邏輯單元LBA(1)中的映射資訊將實體抹除單元410(1)中所有的有效資料複製至其他的實體抹除單元中,以執行有效資料合併運作。
然而,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)根據圖12C中的有效資料計數表700判斷出實體抹除單元410(1)中還儲存有一有效資料(即,實體抹除單元410(1)的有效資料計數的值為1),且由於邏輯單元LBA(0)以及邏輯單元LBA(1)中並沒有儲存關於實體抹除單元410(1)中該有效資料的映射資訊,故記憶體控制器104(或記憶體管理電路202)會載入邏輯單元LBA(2)(以下稱第二邏輯位址-實體位址映射表)來識別出實體抹除單元410(1)中該有效資料所對應的邏輯位址。也就是說,記憶體控制器104(或記憶體管理電路202)會從可複寫式非揮發性記憶體模組106中載入邏輯單元LBA(0) 的邏輯位址-實體位址映射表以及邏輯單元LBA(1)的邏輯位址-實體位址映射表以外的其他邏輯位址-實體位址映射表(即,邏輯單元LBA(2)的邏輯位址-實體位址映射表)。
接著,記憶體控制器104(或記憶體管理電路202)會根據實體位址-邏輯位址映射表600與邏輯單元LBA(2)的邏輯位址-實體位址映射表,以找出實體抹除單元410(1)中的其他有效資料。具體來說,記憶體控制器104(或記憶體管理電路202)會藉由邏輯單元LBA(2)的邏輯位址-實體位址映射表,得知初始的邏輯單元LBA(2)的第0個邏輯頁面為映射至實體抹除單元410(1)的第2個實體程式化單元。然而,由於實體位址-邏輯位址映射表600中沒有儲存關於邏輯單元LBA(2)的第0個邏輯頁面的更新資訊,故記憶體控制器104(或記憶體管理電路202)會判斷關於邏輯單元LBA(2)的第0個邏輯頁面的初始資料ID6尚未被更新,記憶體控制器104(或記憶體管理電路202)會判斷初始資料ID6為有效資料。
請同時參照圖13A、圖13B與圖13C,接續圖12A、圖12B與圖12C,記憶體控制器104(或記憶體管理電路202)會從閒置區504中挑選出實體抹除單元410(4)(亦即,第二實體抹除單元),並將初始資料ID6複製到實體抹除單元410(4)的第0個實體程式化單元中。接著,記憶體控制器104(或記憶體管理電路202)更新邏輯單元LBA(2)的邏輯位址-實體位址映射表,將邏輯單元LBA(2)的第0個邏輯頁面映射至實體抹除單元410(4)的第0個實體程式化單元中,並將圖13C的有效資料計數表700中對應於實體抹除單元410(1)的有效資料計數調整為0。也就是說,原本實體抹除單元410(1)中的有效資料(即,初始資料ID6)被複製到實體抹除單元410(4)的第0個實體程式化單元後,實體抹除單元410(1)中儲存的資料皆為無效資料。此外,記憶體控制器104(或記憶體管理電路202)會清除實體位址-邏輯位址映射表600中儲存的更新資訊,以釋放實體位址-邏輯位址映射表600的空間,如圖13B所示。
請同時參照圖14A、圖14B與圖14C,接續圖13A、圖13B與圖13C,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元410(1)執行抹除操作,並將實體抹除單元410(1)關聯至閒置區504中。此外,記憶體控制器104(或記憶體管理電路202)會將實體抹除單元410(3)關聯至資料區502中,並對應修改有效資料計數表700。需注意的是,在本範例實施例中,由於有效資料計數表700僅用於紀錄資料區502中的實體抹除單元的有效資料計數,故在圖14C中,記憶體控制器104(或記憶體管理電路202)會刪除原先對應於實體抹除單元410(1)的記錄,並增加實體抹除單元410(3)的記錄,以記錄實體抹除單元410(3)的有效資料計數,其值為3。然而,在其他範例實施例中,有效資料計數表700可以記錄可複寫式非揮發性記憶體106中所有的實體抹除單元的有效計數。
基於上述,本範例實施例是藉由分段地載入邏輯位址-實體位址映射表,以執行邏輯位址-實體位址映射表的更新以及有效資料合併程序,以避免相同的邏輯位址-實體位址映射表被重複載入,並造成主機系統1000等待時間過長的問題。
值得一提的是,在一範例實施例中,當實體位址-邏輯位址映射表600被寫滿時,記憶體控制器104(或記憶體管理電路202)會先判斷閒置區504中實體抹除單元的數目是否非大於一預先定義值(例如,預先定義值為1)。倘若記憶體控制器104(或記憶體管理電路202)判斷閒置區504中實體抹除單元的數目為非大於一預先定義值時,則代表閒置區504中空的實體抹除單元已不夠用,並且記憶體控制器104(或記憶體管理電路202)會進行如上述圖12~14的有效資料合併運作,以釋放更多空間。倘若,記憶體控制器104(或記憶體管理電路202)判斷閒置區504中實體抹除單元的數目為大於預先定義值時,則代表閒置區504中實體抹除單元仍然足夠,故記憶體控制器104(或記憶體管理電路202)不需執行有效資料合併運作,只需執行邏輯位址-實體位址映射表的更新,以清除實體位址-邏輯位址映射表中的資訊。
具體來說,當記憶體控制器104(或記憶體管理電路202)判斷閒置區504中實體抹除單元的數目為大於預先定義值時,記憶體控制器104(或記憶體管理電路202)僅需根據實體位址-邏輯位址映射表中資料的更新資訊,載入對應的邏輯位址-實體位址映射表,並更新邏輯單元LBA(0)~LBA(2)與實體抹除單元410(0)~410(4)之間的映射關係,再將更新後的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組106中。也就是說,在閒置區504仍擁有足夠的實體抹除單元可以用於寫入的情況下,當實體位址-邏輯位址映射表600被寫滿時,僅需執行邏輯位址-實體位址映射表的更新以釋放實體位址-邏輯位址映射表600的空間。
圖15是根據一範例實施例所繪示的有效資料合併方法的流程圖。
請參照圖15,首先從實體抹除單元之中選取實體抹除單元(以下稱為第一實體抹除單元)(步驟S1501)並且,依據實體位址-邏輯位址映射表,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表(步驟S1503)。然後,根據實體位址-邏輯位址映射表,更新第一邏輯位址-實體位址映射表(步驟S1505),並且根據實體位址-邏輯位址映射表與第一邏輯位址-實體位址映射表識別出第一實體抹除單元中的有效資料(步驟S1507),再將第一邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組。之後,判斷第一實體抹除單元中是否有儲存其他有效資料(步驟S1511)。倘若第一實體抹除單元中沒有儲存其他有效資料,從第一實體抹除單元中將所識別出的有效資料複製到實體抹除單元之中的一第二實體抹除單元(步驟S1513)。接著,對第一實體抹除單員執行一抹除操作(步驟S1521)。倘若第一實體抹除單元中有儲存所述其他有效資料,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中除了第一邏輯位址-實體位址映射表以外的至少一其他邏輯位址-實體位址映射表(步驟S1515),且根據實體位址-邏輯位址映射表與所述其他邏輯位址-實體位址映射表以識別出第一實體抹除單元中的其他有效資料(步驟S1517)。最後從第一實體抹除單元中將所識別出的所述有效資料與所述其他有效資料複製到實體抹除單元之中的空實體抹除單元(以下稱為第二實體抹除單元)中(步驟S1519)並且對第一實體抹除單元執行一抹除操作(步驟S1521)。
圖16是根據另一範例實施例所繪示的有效資料合併方法的流程圖。
請參照圖16,首先,判斷閒置區中的實體抹除單元的數目是否非大於預先定義值(步驟S1601)。
倘若閒置區中的實體抹除單元的數目非大於預先定義值,則執行上述步驟S1501、S1503、S1505、S1507、S1509、S1511、S1513、S1515、S1517、S1519與S1521。
倘若閒置區中的實體抹除單元的數目大於預先定義值,則依據實體位址-邏輯位址映射表,從可複寫式非揮發性記憶體模組中載入邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表(步驟S1603),並且根據實體位址-邏輯位址映射表更新第一邏輯位址-實體位址映射表及將第一邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組(步驟S1605)。
綜上所述,本發明藉由分段地載入邏輯位址-實體位址映射表,執行更新邏輯位址-實體位址映射表以及資料合併程序,以避免相同的邏輯位址-實體位址映射表被重複載入,並有效解決主機系統等待時間過長的問題。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧電源管理電路
212‧‧‧錯誤檢查與校正電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
600‧‧‧實體位址-邏輯位址映射表
700‧‧‧有效資料計數表
ID1~ID9‧‧‧初始資料
UD1~UD3‧‧‧更新資料
S1501、S1503、S1505、S1507、S1509、S1511、S1513、S1515、S1517、S1519、S1521、S1601、S1603、S1605‧‧‧有效資料合併方法的步驟
圖1 是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。 圖2 是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。 圖3 是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4 是繪示圖1 所示的記憶體儲存裝置的概要方塊圖。 圖5 是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。 圖6 與圖7 是根據一範例實施例所繪示之管理實體區塊的範例示意圖。 圖8A~圖8C 是繪示資料寫入的簡化範例。 圖9A~圖9C 是繪示資料寫入的簡化範例。 圖10A~圖10C 是繪示資料寫入的簡化範例。 圖11A~圖11C 是繪示資料寫入的簡化範例。 圖12A~圖12C 是繪示有效資料合併方法的簡化範例。 圖13A~圖13C 是繪示有效資料合併方法的簡化範例。 圖14A~圖14C 是繪示有效資料合併方法的簡化範例。 圖15 是根據一範例實施例所繪示的資料管理方法的流程圖。 圖16 是根據另一範例實施例所繪示的資料管理方法的流程圖。
S1501、S1503、S1505、S1507、S1509、S1511、S1513、S1515、S1517、S1519、S1521‧‧‧有效資料合併方法的步驟
Claims (24)
- 一種有效資料合併方法,適用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,多個邏輯位址-實體位址映射表被儲存在該可複寫式非揮發性記憶體模組中以記錄多個邏輯位址與該些實體程式化單元之間的一映射資訊,該有效資料合併方法包括: 從該些實體抹除單元之中選取一第一實體抹除單元; 依據一實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表; 根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表; 根據該實體位址-邏輯位址映射表與該至少一第一邏輯位址-實體位址映射表識別出該第一實體抹除單元中的有效資料; 將該至少一第一邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組; 從該第一實體抹除單元中將所識別出的該有效資料複製到該些實體抹除單元之中的一第二實體抹除單元;以及 對該第一實體抹除單元執行一抹除操作。
- 如申請專利範圍第1項所述的有效資料合併方法,其中上述對該第一實體抹除單元執行該抹除操作的步驟之前包括: 倘若該第一實體抹除單元中有儲存其他有效資料,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中除了該至少一第一邏輯位址-實體位址映射表以外的至少一第二邏輯位址-實體位址映射表, 根據該實體位址-邏輯位址映射表與該至少一第二邏輯位址-實體位址映射表以識別出該第一實體抹除單元中的該其他有效資料, 從該第一實體抹除單元中將所識別出的該其他有效資料複製到該些實體抹除單元之中的該第二實體抹除單元。
- 如申請專利範圍第1項所述的有效資料合併方法,更包括: 在一緩衝記憶體中建立該實體位址-邏輯位址映射表,其中該實體位址-邏輯位址映射表記錄該些實體抹除單元之中的一作動實體抹除單元的實體程式化單元與該些邏輯位址之中的多個已更新邏輯位址之間的映射資訊, 其中該至少一第一邏輯位址-實體位址映射表是記錄有對應該些已更新邏輯位址的映射資訊。
- 如申請專利範圍第1項所述的有效資料合併方法,更包括: 依據該些實體抹除單元中的有效資料的數量記錄每一該些實體抹除單元的有效資料計數。
- 如申請專利範圍第4項所述的有效資料合併方法,更包括: 建立一有效資料計數表以記錄每一該些實體抹除單元的有效資料計數。
- 如申請專利範圍第4項所述的有效資料合併方法,其中該些實體抹除單元至少被分組為一資料區與一閒置區,且該閒置區的實體抹除單元用以替換該資料區的實體抹除單元以寫入資料。
- 如申請專利範圍第6項所述的有效資料合併方法,其中上述從該些實體抹除單元之中選取該第一實體抹除單元的步驟包括: 從該資料區中選取該第一實體抹除單元,其中該第一實體抹除單元的有效資料計數小於該資料區中的其他實體抹除單元的有效資料計數。
- 如申請專利範圍第7項所述的有效資料合併方法,更包括: 判斷該閒置區中的實體抹除單元的數目是否非大於一預先定義值; 倘若該閒置區中的實體抹除單元的數目非大於該預先定義值,從該些實體抹除單元之中選取該第一實體抹除單元,依據該實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的該至少一第一邏輯位址-實體位址映射表,根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表,根據該實體位址-邏輯位址映射表與該至少一第一邏輯位址-實體位址映射表識別出該第一實體抹除單元中的有效資料,並將該至少一第一邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組,從該第一實體抹除單元中將所識別出的該有效資料複製到該些實體抹除單元之中的該第二實體抹除單元,並對該第一實體抹除單元執行該抹除操作;以及 倘若該閒置區中的實體抹除單元的數目大於該預先定義值,依據該實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的該至少一第一邏輯位址-實體位址映射表,根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制器包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,且多個邏輯位址-實體位址映射表被儲存在該可複寫式非揮發性記憶體模組中以記錄多個邏輯位址與該些實體程式化單元之間的一映射資訊;以及 一記憶體管理電路,耦接至該主機介面與該記憶體介面, 其中該記憶體管理電路用以從該些實體抹除單元之中選取一第一實體抹除單元, 其中該記憶體管理電路更用以依據一實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表, 其中該記憶體管理電路更用以根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表, 其中該記憶體管理電路更用以根據該實體位址-邏輯位址映射表與該至少一第一邏輯位址-實體位址映射表識別出該第一實體抹除單元中的有效資料, 其中該記憶體管理電路更用以將該至少一第一邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組, 其中該記憶體管理電路更用以從該第一實體抹除單元中將所識別出的該有效資料複製到該些實體抹除單元之中的一第二實體抹除單元, 其中該記憶體管理電路更用以對該第一實體抹除單元執行一抹除操作。
- 如申請專利範圍第9項所述的記憶體控制器,其中上述該記憶體管理電路對該第一實體抹除單元執行該抹除操作的運作之前包括: 倘若該第一實體抹除單元中有儲存其他有效資料,該記憶體管理電路更用以從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中除了該至少一第一邏輯位址-實體位址映射表以外的至少一第二邏輯位址-實體位址映射表,根據該實體位址-邏輯位址映射表與該至少一第二邏輯位址-實體位址映射表以識別出該第一實體抹除單元中的該其他有效資料,從該第一實體抹除單元中將所識別出的該其他有效資料複製到該些實體抹除單元之中的該第二實體抹除單元。
- 如申請專利範圍第9項所述的記憶體控制器,其中該記憶體管理電路更用以在一緩衝記憶體中建立該實體位址-邏輯位址映射表,其中該實體位址-邏輯位址映射表記錄該些實體抹除單元之中的一作動實體抹除單元的實體程式化單元與該些邏輯位址之中的多個已更新邏輯位址之間的映射資訊, 其中該至少一第一邏輯位址-實體位址映射表是記錄有對應該些已更新邏輯位址的映射資訊。
- 如申請專利範圍第9項所述的記憶體控制器,其中該記憶體管理電路更用以依據該些實體抹除單元中的有效資料的數量記錄每一該些實體抹除單元的有效資料計數。
- 如申請專利範圍第12項所述的記憶體控制器,其中該記憶體管理電路更用以建立一有效資料計數表以記錄每一該些實體抹除單元的有效資料計數。
- 如申請專利範圍第12項所述的記憶體控制器,其中該記憶體管理電路更用以將該些實體抹除單元至少分組為一資料區與一閒置區,且該閒置區的實體抹除單元用以替換該資料區的實體抹除單元以寫入資料。
- 如申請專利範圍第14項所述的記憶體控制器,其中上述該記憶體管理電路從該些實體抹除單元之中選取該第一實體抹除單元的運作中,該記憶體管理電路更用以從該資料區中選取該第一實體抹除單元,其中該第一實體抹除單元的有效資料計數小於該資料區中的其他實體抹除單元的有效資料計數。
- 如申請專利範圍第15項所述的記憶體控制器,其中該記憶體管理電路更用以判斷該閒置區中的實體抹除單元的數目是否非大於一預先定義值, 倘若該閒置區中的實體抹除單元的數目非大於該預先定義值,該記憶體管理電路從該些實體抹除單元之中選取該第一實體抹除單元, 該記憶體管理電路依據該實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的該至少一第一邏輯位址-實體位址映射表, 該記憶體管理電路根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表, 該記憶體管理電路根據該實體位址-邏輯位址映射表與該至少一第一邏輯位址-實體位址映射表識別出該第一實體抹除單元中的該有效資料, 該記憶體管理電路將該至少一第一邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組, 該記憶體管理電路從該第一實體抹除單元中將所識別出的該有效資料複製到該些實體抹除單元之中的該第二實體抹除單元, 該記憶體管理電路對該第一實體抹除單元執行該抹除操作, 倘若該閒置區中的實體抹除單元的數目大於該預先定義值,該記憶體管理電路依據該實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的該至少一第一邏輯位址-實體位址映射表, 該記憶體管理電路根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表。
- 一種記憶體儲存裝置,包括: 一連接器,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,多個邏輯位址-實體位址映射表被儲存在該可複寫式非揮發性記憶體模組中以記錄多個邏輯位址與該些實體程式化單元之間的一映射資訊;以及 一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組, 其中該記憶體控制器更用以從該些實體抹除單元之中選取一第一實體抹除單元, 其中該記憶體控制器更用以依據一實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的至少一第一邏輯位址-實體位址映射表, 其中該記憶體控制器更用以根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表, 其中該記憶體控制器更用以根據該實體位址-邏輯位址映射表與該至少一第一邏輯位址-實體位址映射表識別出該第一實體抹除單元中的有效資料, 其中該記憶體控制器更用以將該至少一第一邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組, 其中該記憶體控制器更用以從該第一實體抹除單元中將所識別出的該有效資料複製到該些實體抹除單元之中的一第二實體抹除單元, 其中該記憶體控制器更用以對該第一實體抹除單元執行一抹除操作。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中上述該記憶體控制器對該第一實體抹除單元執行該抹除操作的運作之前包括: 倘若該第一實體抹除單元中有儲存其他有效資料,該記憶體控制器更用以從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中除了該至少一第一邏輯位址-實體位址映射表以外的至少一第二邏輯位址-實體位址映射表,根據該實體位址-邏輯位址映射表與該至少一第二邏輯位址-實體位址映射表以識別出該第一實體抹除單元中的該其他有效資料,從該第一實體抹除單元中將所識別出的該其他有效資料複製到該些實體抹除單元之中的該第二實體抹除單元。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中所述該記憶體控制器更用以在一緩衝記憶體中建立該實體位址-邏輯位址映射表,其中該實體位址-邏輯位址映射表記錄該些實體抹除單元之中的一作動實體抹除單元的實體程式化單元與該些邏輯位址之中的多個已更新邏輯位址之間的映射資訊, 其中該至少一第一邏輯位址-實體位址映射表是記錄有對應該些已更新邏輯位址的映射資訊。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該記憶體控制器更用以依據該些實體抹除單元中的有效資料的數量記錄每一該些實體抹除單元的有效資料計數。
- 如申請專利範圍第20項所述的記憶體儲存裝置,其中該記憶體控制器更用以建立一有效資料計數表以記錄每一該些實體抹除單元的有效資料計數。
- 如申請專利範圍第20項所述的記憶體儲存裝置,其中該記憶體控制器更用以將該些實體抹除單元至少分組為一資料區與一閒置區,且該閒置區的實體抹除單元用以替換該資料區的實體抹除單元以寫入資料。
- 如申請專利範圍第22項所述的記憶體儲存裝置,其中上述該記憶體控制器從該些實體抹除單元之中選取該第一實體抹除單元的運作中,該記憶體控制器更用以從該資料區中選取該第一實體抹除單元,其中該第一實體抹除單元的有效資料計數小於該資料區中的其他實體抹除單元的有效資料計數。
- 如申請專利範圍第23項所述的記憶體儲存裝置,其中該記憶體控制器更用以判斷該閒置區中的實體抹除單元的數目是否非大於一預先定義值, 倘若該閒置區中的實體抹除單元的數目非大於該預先定義值,該記憶體控制器從該些實體抹除單元之中選取該第一實體抹除單元, 該記憶體控制器依據該實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的該至少一第一邏輯位址-實體位址映射表, 該記憶體控制器根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表, 該記憶體控制器根據該實體位址-邏輯位址映射表與該至少一第一邏輯位址-實體位址映射表識別出該第一實體抹除單元中的該有效資料, 該記憶體控制器將該至少一第一邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組, 該記憶體控制器從該第一實體抹除單元中將所識別出的該有效資料複製到該些實體抹除單元之中的該第二實體抹除單元 該記憶體控制器對該第一實體抹除單元執行該抹除操作, 倘若該閒置區中的實體抹除單元的數目大於該預先定義值,該記憶體控制器依據該實體位址-邏輯位址映射表,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址-實體位址映射表之中的該至少一第一邏輯位址-實體位址映射表, 該記憶體控制器根據該實體位址-邏輯位址映射表,更新該至少一第一邏輯位址-實體位址映射表。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104125829A TWI569139B (zh) | 2015-08-07 | 2015-08-07 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
US14/872,154 US9880742B2 (en) | 2015-08-07 | 2015-10-01 | Valid data merging method, memory controller and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104125829A TWI569139B (zh) | 2015-08-07 | 2015-08-07 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI569139B TWI569139B (zh) | 2017-02-01 |
TW201706848A true TW201706848A (zh) | 2017-02-16 |
Family
ID=58053474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104125829A TWI569139B (zh) | 2015-08-07 | 2015-08-07 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9880742B2 (zh) |
TW (1) | TWI569139B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI534618B (zh) * | 2015-07-13 | 2016-05-21 | 群聯電子股份有限公司 | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 |
KR102655347B1 (ko) * | 2016-07-04 | 2024-04-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20200019429A (ko) * | 2018-08-14 | 2020-02-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
TWI702496B (zh) * | 2018-08-28 | 2020-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI693516B (zh) | 2018-11-13 | 2020-05-11 | 群聯電子股份有限公司 | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 |
TWI720400B (zh) * | 2019-01-04 | 2021-03-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI741779B (zh) * | 2020-09-04 | 2021-10-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
CN112051971B (zh) * | 2020-09-10 | 2023-06-27 | 群联电子股份有限公司 | 数据整并方法、存储器存储装置及存储器控制电路单元 |
TWI813978B (zh) * | 2021-04-16 | 2023-09-01 | 群聯電子股份有限公司 | 快閃記憶體控制方法、快閃記憶體儲存裝置及快閃記憶體控制器 |
CN113885808B (zh) * | 2021-10-28 | 2024-03-15 | 合肥兆芯电子有限公司 | 映射信息记录方法以及存储器控制电路单元与存储装置 |
CN115576504A (zh) * | 2022-12-09 | 2023-01-06 | 紫光同芯微电子有限公司 | 一种Flash存储器写入数据的方法及装置 |
CN116540950B (zh) * | 2023-07-05 | 2023-09-29 | 合肥康芯威存储技术有限公司 | 一种存储器件及其写入数据的控制方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104599B2 (en) * | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
JP5026213B2 (ja) * | 2007-09-28 | 2012-09-12 | 株式会社日立製作所 | ストレージ装置及びデータ重複排除方法 |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8605533B2 (en) * | 2009-11-27 | 2013-12-10 | Samsung Electronics Co., Ltd. | Apparatus and method for protecting data in flash memory |
TWI440044B (zh) * | 2010-03-01 | 2014-06-01 | Phison Electronics Corp | 記憶體管理與寫入方法、記憶體控制器與記憶體儲存系統 |
JP5066209B2 (ja) * | 2010-03-18 | 2012-11-07 | 株式会社東芝 | コントローラ、データ記憶装置、及びプログラム |
US9256527B2 (en) * | 2010-07-27 | 2016-02-09 | International Business Machines Corporation | Logical to physical address mapping in storage systems comprising solid state memory devices |
US8886990B2 (en) * | 2011-01-27 | 2014-11-11 | Apple Inc. | Block management schemes in hybrid SLC/MLC memory |
WO2013160970A1 (en) * | 2012-04-27 | 2013-10-31 | Hitachi, Ltd. | Storage system and storage control apparatus |
TWI486765B (zh) * | 2012-06-11 | 2015-06-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
KR20140114515A (ko) * | 2013-03-15 | 2014-09-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법 |
TWI520153B (zh) * | 2013-11-05 | 2016-02-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
KR20160078611A (ko) * | 2014-12-24 | 2016-07-05 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
-
2015
- 2015-08-07 TW TW104125829A patent/TWI569139B/zh active
- 2015-10-01 US US14/872,154 patent/US9880742B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
US11068391B2 (en) | 2018-09-11 | 2021-07-20 | Silicon Motion, Inc. | Mapping table updating method for data storage device |
Also Published As
Publication number | Publication date |
---|---|
US20170038977A1 (en) | 2017-02-09 |
US9880742B2 (en) | 2018-01-30 |
TWI569139B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI385523B (zh) | 用於快閃記憶體的資料備份方法及其控制器與儲存系統 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI467372B (zh) | 指令執行方法、記憶體控制器與記憶體儲存裝置 | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201437807A (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI451249B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
TWI479315B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI536166B (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TW201519242A (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201526006A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI521346B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 |