TWI693516B - 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI693516B TWI693516B TW107140233A TW107140233A TWI693516B TW I693516 B TWI693516 B TW I693516B TW 107140233 A TW107140233 A TW 107140233A TW 107140233 A TW107140233 A TW 107140233A TW I693516 B TWI693516 B TW I693516B
- Authority
- TW
- Taiwan
- Prior art keywords
- logical
- updated
- unit
- physical
- units
- Prior art date
Links
Images
Classifications
-
- 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
- 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
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
映射表更新方法、記憶體控制電路單元與記憶體儲存裝置。本方法包括:根據實體-邏輯映射表,分別計算多個已更新邏輯單元在作動實體抹除單元中的多個更新資料計數;根據更新資料計數,從多個已更新邏輯單元中選擇第一已更新邏輯單元,其中第一已更新邏輯單元的數量小於已更新邏輯單元的數量;載入對應於第一已更新邏輯單元的第一邏輯-實體映射表;以及根據實體-邏輯映射表中第一已更新邏輯單元的映射資訊更新第一邏輯-實體映射表中的映射資訊。
Description
本發明是有關於一種映射表更新方法、記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
快閃記憶體模組具有多個實體抹除單元且每一實體抹除單元具有多個實體程式化單元(physical page),其中在實體抹除單
元中寫入資料時必須依據實體程式化單元的順序寫入資料。此外,已被寫入資料之實體程式化單元需先被抹除後才能再次用於寫入資料。特別是,實體抹除單元為抹除之最小單位,並且實體程式化單元為程式化(亦稱寫入)的最小單元。因此,在快閃記憶體模組的管理中,實體抹除單元會被區分為資料區與閒置區。
資料區的實體抹除單元是用以儲存主機系統所儲存之資料。具體來說,記憶體儲存裝置中的記憶體管理電路會將主機系統所存取的邏輯存取位址轉換為邏輯區塊的邏輯頁面並且將邏輯區塊的邏輯頁面映射至資料區的實體抹除單元的實體程式化單元。也就是說,快閃記憶體模組的管理上資料區的實體抹除單元是被視為已被使用之實體抹除單元(例如,已儲存主機系統所寫入的資料)。例如,記憶體管理電路會使用邏輯-實體映射表(logical-physical mapping table)來記載邏輯頁面與資料區的實體程式化單元的映射關係。
閒置區的實體抹除單元是用以輪替資料區中的實體抹除單元。具體來說,如上所述,已被寫入資料的實體抹除單元必須被抹除後才可再次用於寫入資料,因此,閒置區的實體抹除單元是被設計用於寫入更新資料以替換映射邏輯區塊的實體抹除單元。基此,在閒置區中的實體抹除單元為空或者可用於寫入資料的實體抹除單元。
在一般的寫入操作中,資料被寫入閒置區的實體抹除單元後,記憶體儲存裝置中的記憶體管理電路並不會立即更改邏輯-
實體映射表中邏輯頁面與實體程式化單元間的映射關係,而是藉由儲存在緩衝記憶體中的一實體-邏輯映射表(physical-logical mapping table),來儲存對應於寫入操作的映射資訊。具體來說,在一寫入操作中,記憶體管理電路會將更新資料寫入至閒置區中的一實體抹除單元中(亦稱為,作動實體抹除單元),並在實體-邏輯映射表中紀錄關於此寫入操作的邏輯頁面以及用於儲存其更新資料的實體程式化單元兩者間的映射資訊。在適當時機,例如主機系統處於一段閒置時間或實體-邏輯映射表被寫滿時,記憶體管理電路才會根據實體-邏輯映射表中的映射資訊,載入對應的邏輯-實體映射表以進行邏輯頁面與實體程式化單元間映射資訊的更新。之後,記憶體管理電路會將更新後的邏輯-實體映射表回存至可複寫式非揮發性記憶體中。而上述根據實體-邏輯映射表中的映射資訊更新邏輯-實體映射表的操作又被稱為「清倉操作」(flush operation)。
然而,在傳統的清倉操作中,當被載入的一邏輯-實體映射表中所需更新的映射資訊極少(例如,僅有一個邏輯頁面與實體程式化單元之間的映射資訊需被更新)時,通常會造成映射資訊更新效率的下降。更詳細來說,若重複地執行上述的操作,則會造成大量的時間花在執行載入與回存邏輯-實體映射表的操作,並且僅有少量的時間是真正的被用來執行映射資訊的更新。因此,如何增加邏輯-實體映射表的更新的效率,是本領域技術人員所欲解決的問題之一。
本發明提供一種映射表更新方法、記憶體控制電路單元與記憶體儲存裝置,可以提升邏輯-實體映射表在更新時的效率。
本發明提出一種映射表更新方法,用於一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,多個邏輯-實體映射表被儲存在所述可複寫式非揮發性記憶體模組中以記錄多個邏輯單元與所述多個實體抹除單元之間的映射資訊,所述映射表更新方法包括:建立一實體-邏輯映射表,其中所述實體-邏輯映射表記錄所述多個實體抹除單元之中的至少一作動實體抹除單元與所述多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊;根據所述實體-邏輯映射表,分別計算所述多個已更新邏輯單元在所述作動實體抹除單元中的多個更新資料計數;根據所述多個更新資料計數,從所述多個已更新邏輯單元中選擇至少一第一已更新邏輯單元,其中所述第一已更新邏輯單元的數量小於所述多個已更新邏輯單元的數量;從所述多個邏輯-實體映射表中載入對應於所述第一已更新邏輯單元的至少一第一邏輯-實體映射表;以及根據所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊更新所述第一邏輯-實體映射表中的映射資訊。
在本發明的一實施例中,所述方法更包括:清除所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊;保留所述
實體-邏輯映射表中所述第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊;以及將已更新的所述第一邏輯-實體映射表回存至所述可複寫式非揮發性記憶體模組。
在本發明的一實施例中,所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數大於一第一門檻值。
在本發明的一實施例中,所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數小於一第二門檻值。
在本發明的一實施例中,從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的步驟包括:對所述多個更新資料計數排序;根據排序後的所述多個更新資料計數決定一第三門檻值;以及根據所述第三門檻值將所述多個更新資料計數區分為至少一第二更新資料計數以及至少一第三更新資料計數。其中所述第二更新資料計數大於所述第三門檻值且所述第三更新資料計數非大於所述第三門檻值。
在本發明的一實施例中,從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的步驟更包括:將所述多個已更新邏輯單元中對應於所述第二更新資料計數的至少一第二已更新邏輯單元識別為所述第一已更新邏輯單元,或將所述多個已更新邏輯單元中對應於所述第三更新資料計數的至少一第三已更新邏輯單元識別為所述第一已更新邏輯單元。
本發明提出一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括:主機
介面、記憶體介面以及記憶體管理電路。主機介面用以耦接至一主機系統。記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,多個邏輯-實體映射表被儲存在所述可複寫式非揮發性記憶體模組中以記錄多個邏輯單元與所述多個實體抹除單元之間的映射資訊。記憶體管理電路耦接至所述主機介面以及所述記憶體介面。記憶體管理電路用以執行下述運作:建立一實體-邏輯映射表,其中所述實體-邏輯映射表記錄所述多個實體抹除單元之中的至少一作動實體抹除單元與所述多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊;根據所述實體-邏輯映射表,分別計算所述多個已更新邏輯單元在所述作動實體抹除單元中的多個更新資料計數;根據所述多個更新資料計數,從所述多個已更新邏輯單元中選擇至少一第一已更新邏輯單元,其中所述第一已更新邏輯單元的數量小於所述多個已更新邏輯單元的數量;從所述多個邏輯-實體映射表中載入對應於所述第一已更新邏輯單元的至少一第一邏輯-實體映射表;以及根據所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊更新所述第一邏輯-實體映射表中的映射資訊。
在本發明的一實施例中,所述記憶體管理電路更用以清除所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊,保留所述實體-邏輯映射表中所述第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊,並將已更新的所述第一邏輯-實
體映射表回存至所述可複寫式非揮發性記憶體模組。
在本發明的一實施例中,所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數大於一第一門檻值。
在本發明的一實施例中,所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數小於一第二門檻值。
在本發明的一實施例中,在從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的運作中,所述記憶體管理電路更用以對所述多個更新資料計數排序,根據排序後的所述多個更新資料計數決定一第三門檻值,以及根據所述第三門檻值將所述多個更新資料計數區分為至少一第二更新資料計數以及至少一第三更新資料計數。其中所述第二更新資料計數大於所述第三門檻值且所述第三更新資料計數非大於所述第三門檻值。
在本發明的一實施例中,在從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的運作中,所述記憶體管理電路更用以將所述多個已更新邏輯單元中對應於所述第二更新資料計數的至少一第二已更新邏輯單元識別為所述第一已更新邏輯單元,或將所述多個已更新邏輯單元中對應於所述第三更新資料計數的至少一第三已更新邏輯單元識別為所述第一已更新邏輯單元。
本發明提出一種記憶體儲存裝置。記憶體儲存裝置包括連接介面單元、可複寫式非揮發性記憶體模組以及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性
記憶體模組具有多個實體抹除單元,多個邏輯-實體映射表被儲存在所述可複寫式非揮發性記憶體模組中以記錄多個邏輯單元與所述多個實體抹除單元之間的映射資訊。記憶體控制電路單元,耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。記憶體控制電路單元用以執行下述運作:建立一實體-邏輯映射表,其中所述實體-邏輯映射表記錄所述多個實體抹除單元之中的至少一作動實體抹除單元與所述多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊;根據所述實體-邏輯映射表,分別計算所述多個已更新邏輯單元在所述作動實體抹除單元中的多個更新資料計數;根據所述多個更新資料計數,從所述多個已更新邏輯單元中選擇至少一第一已更新邏輯單元,其中所述第一已更新邏輯單元的數量小於所述多個已更新邏輯單元的數量;從所述多個邏輯-實體映射表中載入對應於所述第一已更新邏輯單元的至少一第一邏輯-實體映射表;以及根據所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊更新所述第一邏輯-實體映射表中的映射資訊。
在本發明的一實施例中,所述記憶體控制電路單元更用以清除所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊,保留所述實體-邏輯映射表中所述第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊,並將已更新的所述第一邏輯-實體映射表回存至所述可複寫式非揮發性記憶體模組。
在本發明的一實施例中,所述多個更新資料計數中所述
第一已更新邏輯單元的一第一更新資料計數大於一第一門檻值。
在本發明的一實施例中,所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數小於一第二門檻值。
在本發明的一實施例中,在從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的運作中,所述記憶體控制電路單元更用以對所述多個更新資料計數排序,根據排序後的所述多個更新資料計數決定一第三門檻值,並根據所述第三門檻值將所述多個更新資料計數區分為至少一第二更新資料計數以及至少一第三更新資料計數。其中所述第二更新資料計數大於所述第三門檻值且所述第三更新資料計數非大於所述第三門檻值。
在本發明的一實施例中,在從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的運作中,所述記憶體控制電路單元更用以將所述多個已更新邏輯單元中對應於所述第二更新資料計數的至少一第二已更新邏輯單元識別為所述第一已更新邏輯單元,或將所述多個已更新邏輯單元中對應於所述第三更新資料計數的至少一第三已更新邏輯單元識別為所述第一已更新邏輯單元。
本發明提出一種映射表更新方法,用於一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,多個邏輯-實體映射表被儲存在所述可複寫式非揮發性記憶體模組中以記錄多個邏輯單元與所述多個實體抹除單元之間的映射資訊,所述映射表更新方法包括:建立一實體-邏輯
映射表,其中所述實體-邏輯映射表記錄所述多個實體抹除單元之中的至少一作動實體抹除單元與所述多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊;根據所述實體-邏輯映射表,分別計算所述多個已更新邏輯單元在所述作動實體抹除單元中的多個更新資料計數;根據所述多個更新資料計數,從所述多個已更新邏輯單元中選擇至少一第一已更新邏輯單元,其中所述第一已更新邏輯單元的數量小於所述多個已更新邏輯單元的數量且所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數大於一第一門檻值;從所述多個邏輯-實體映射表中載入對應於所述第一已更新邏輯單元的至少一第一邏輯-實體映射表;根據所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊更新所述第一邏輯-實體映射表中的映射資訊;清除所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊;以及保留所述實體-邏輯映射表中所述第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊。
基於上述,本發明的映射表更新方法、記憶體控制電路單元與記憶體儲存裝置,可以僅根據實體-邏輯映射表中一部分的映射資訊來載入對應的邏輯-實體映射表來執行映射資訊的更新,並且保留實體-邏輯映射表中其他剩餘部分的映射資訊。藉此,可以提升邏輯-實體映射表在更新時的效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
10:記憶體儲存裝置
11:主機系統
110:系統匯流排
111:處理器
112:隨機存取記憶體
113:唯讀記憶體
114:資料傳輸介面
12:輸入/輸出(I/O)裝置
20:主機板
201:隨身碟
202:記憶卡
203:固態硬碟
204:無線記憶體儲存裝置
205:全球定位系統模組
206:網路介面卡
207:無線傳輸裝置
208:鍵盤
209:螢幕
210:喇叭
30:記憶體儲存裝置
31:主機系統
32:SD卡
33:CF卡
34:嵌入式儲存裝置
341:嵌入式多媒體卡
342:嵌入式多晶片封裝儲存裝置
402:連接介面單元
404:記憶體控制電路單元
406:可複寫式非揮發性記憶體模組
702:記憶體管理電路
704:主機介面
706:記憶體介面
708:錯誤檢查與校正電路
710:緩衝記憶體
712:電源管理電路
502:資料區
504:閒置區
506:暫存區
508:取代區
510(0)~510(N)、410(0)~410(5):實體抹除單元
LBA(0)~LBA(H):邏輯單元
LZ(0)~LZ(M):邏輯區域
ID1~ID12:初始資料
UD1~UD6:更新資料
600:實體-邏輯映射表
700:更新資料計數表
S1201:建立實體-邏輯映射表,其中實體-邏輯映射表記錄多個實體抹除單元之中的作動實體抹除單元與多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊的步驟
S1203:根據實體-邏輯映射表,分別計算多個已更新邏輯單元在作動實體抹除單元中的多個更新資料計數的步驟
S1205:根據多個更新資料計數,從多個已更新邏輯單元中選擇第一已更新邏輯單元,其中第一已更新邏輯單元的數量小於前述的已更新邏輯單元的數量的步驟
S1207:從多個邏輯-實體映射表中載入對應於第一已更新邏輯單元的第一邏輯-實體映射表的步驟
S1209:根據實體-邏輯映射表中第一已更新邏輯單元的映射資訊更新第一邏輯-實體映射表中的映射資訊的步驟
S1211:將已更新的第一邏輯-實體映射表回存至可複寫式非揮發性記憶體模組的步驟
S1301:建立實體-邏輯映射表,其中實體-邏輯映射表記錄多個實體抹除單元之中的作動實體抹除單元與多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊的步驟
S1303:根據實體-邏輯映射表,分別計算多個已更新邏輯單元在作動實體抹除單元中的多個更新資料計數的步驟
S1305:根據多個更新資料計數,從多個已更新邏輯單元中選擇第一已更新邏輯單元,其中第一已更新邏輯單元的數量小於前述的已更新邏輯單元的數量且前述更新資料計數中第一已更新邏
輯單元的第一更新資料計數大於第一門檻值的步驟
S1307:從多個邏輯-實體映射表中載入對應於第一已更新邏輯單元的第一邏輯-實體映射表的步驟
S1309:根據實體-邏輯映射表中第一已更新邏輯單元的映射資訊更新第一邏輯-實體映射表中的映射資訊的步驟
S1311:清除實體-邏輯映射表中第一已更新邏輯單元的映射資訊的步驟
S1313:保留實體-邏輯映射表中第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊的步驟
S1315:將已更新的第一邏輯-實體映射表回存至可複寫式非揮發性記憶體模組的步驟
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖5A與圖5B是根據本範例時實施例所繪示之記憶胞儲存架構與實體抹除單元的範例示意圖。
圖6是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖7與圖8是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
圖9A~圖9C是根據本發明的一實施例所繪示之資料寫入的簡化範例。
圖10A~圖10C是根據本發明的第一實施例所繪示之映射表更新的簡化範例。
圖11A~圖11C是根據本發明的第二實施例所繪示之映射表
更新的簡化範例。
圖12是根據本發明的一實施例所繪示之映射表更新方法的流程圖。
圖13是根據本發明的另一實施例所繪示之映射表更新方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(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,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是相容於序列先進附件(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-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之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取、抹除與合併等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元510(0)~510(N)。例如,實體抹除單元510(0)~510(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,例如本發明的範例實施例中,每一個實體抹除
單元包含258個實體程式化單元,而其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。
在本發明的範例實施例中,可複寫式非揮發性記憶體模組406為複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模
組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5A與圖5B是根據本範例時實施例所繪示之記憶胞儲存架構與實體抹除單元的範例示意圖。
請參照圖5A,可複寫式非揮發性記憶體模組406的每個記憶胞的儲存狀態可被識別為“111”、“110”、“101”、“100”、“011”、“010”、“001”或“000”(如圖5A所示),其中左側算起之第1個位元為LSB、從左側算起之第2個位元為CSB以及從左側算起之第3個位元為MSB。此外,排列在同一條字元線上的數個記憶胞可組成3個實體程式化單元,其中由此些記憶胞之LSB所組成的實體程式化單元稱為下實體程式化單元,由此些記憶胞之CSB所組成的實體程式化單元稱為中實體程式化單元,並且由此些記憶胞之MSB所組成的實體程式化單元稱為上實體程式化單元。
請參照圖5B,一個實體抹除單元是由多個實體程式化單元組所組成,其中每個實體程式化單元組包括由排列在同一條字元線上的數個記憶胞所組成的下實體程式化單元、中實體程式化單元與上實體程式化單元。例如,在實體抹除單元中,屬於下實體程式化單元的第0個實體程式化單元、屬於中實體程式化單元的第1個實體程式化單元和屬於上實體程式化單元的第2個實體程式化單元會被視為一個實體程式化單元組。類似地,第3、4、5個實體程式化單元會被視為一個實體程式化單元組,並且以此類推其他實體程式化單元亦是依據此方式被區分為多個實體程式化單元組。
圖6是根據本發明的一範例實施例所繪示的記憶體控制
電路單元的概要方塊圖。
請參照圖6,記憶體控制電路單元404包括記憶體管理電路702、主機介面704、記憶體介面706及錯誤檢查與校正電路708。
記憶體管理電路702用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路702具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路702或任何包含於記憶體控制電路單元404中的電路元件之操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路702的控制指令是以韌體型式來實作。例如,記憶體管理電路702具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路702的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路702具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路702的隨機存取
記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路702的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路702包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的記憶胞或其群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路702還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組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。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路708是耦接至記憶體管理電路702並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路702從主機系統11中接收到寫入指令時,錯誤檢查與校正電路708會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路702會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路702從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路708會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體710與電源管理電路712。
緩衝記憶體710是耦接至記憶體管理電路702並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路712是耦接至記憶體管理電路702並且用以控制記憶體儲存裝置10的電源。
在本範例實施例中,錯誤檢查與校正電路708可以針對儲存於同一個實體程式化單元中的資料進行單框架(single-frame)編碼,也可以針對儲存於多個實體程式化單元中的資料進行多框架(multi-frame)編碼。單框架編碼與多框架編碼可以分別採用低密
度奇偶檢查校正碼(low density parity code,LDPC)、BCH碼、迴旋碼(convolutional code)或渦輪碼(turbo code)等編碼演算法的至少其中之一。或者,在一範例實施例中,多框架編碼還可以採用里德-所羅門碼(Reed-solomon codes,RS codes)演算法或互斥或(XOR)演算法。此外,在另一範例實施例中,更多未列於上的編碼演算法也可以被採用,在此便不贅述。根據所採用的編碼演算法,錯誤檢查與校正電路708可以編碼欲保護之資料來產生相對應的錯誤更正碼及/或錯誤檢查碼。為了說明方便,以下將經由編碼產生的錯誤更正碼及/或錯誤檢查碼統稱為編碼資料。
圖7與圖8是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
請參照圖7,可複寫式非揮發性記憶體模組406具有實體抹除單元510(0)~510(N),並且記憶體管理電路702會邏輯地分割(partition)為資料區502、閒置區504、暫存區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統11的資料。具體來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以替換資料區502的實體抹除單元。也就是說,當從主機系統11接收到寫入指令與欲寫入之資料時,記憶體管理電路702會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。
邏輯上屬於暫存區506的實體抹除單元是用以記錄系統資料。例如,系統資料包括邏輯-實體映射表、關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區508中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區508中仍存有正常之實體抹除單元並且資料區502的實體抹除單元損壞時,記憶體管理電路302會從取代區508中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區502、閒置區504、暫存區506與取代區508之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至資料區502、閒置區504、暫存區506與取代區508的分組關係會動態地變動。例如,當閒置區504中的實體抹除單元損壞而被取代區508的實體抹除單元取代時,則原本取代區508的實體抹除單元會被關聯至閒置區504。
請參照圖8,記憶體管理電路702會配置邏輯單元LBA(0)~LBA(H)以映射資料區502的實體抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統11欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體管理電路702會從閒置區504中提取一個實體抹除單元來寫入資料,以輪替資料區502的實體
抹除單元。在本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。
為了識別每個邏輯單元的資料被儲存在那個實體抹除單元,在本範例實施例中,記憶體管理電路702會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統11欲在邏輯子單元中存取資料時,記憶體管理電路702會確認此邏輯子單元所屬的邏輯單元,並且在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體管理電路702會在可複寫式非揮發性記憶體模組406中儲存邏輯-實體映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體管理電路702會將邏輯-實體映射表載入至緩衝記憶體710來維護。
值得一提的是,由於緩衝記憶體710的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體管理電路702會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯-實體映射表。特別是,當記憶體管理電路702欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯-實體映射表會被載入至緩衝記憶體710來被更新。在本範例實施例中,儲存所有的邏輯-實體映射表所需的空間為對應於可複寫式非揮發性記憶體模組406中可用於儲存資料的空間的千分之一。也就是說,假設可複寫式非揮發性記憶體模組406的容量為1TB(Terabyte),則儲存所有的邏輯-實體映射表所需的空間為1GB(Gigabyte)。然
而,在其他範例實施例中,儲存所有的邏輯-實體映射表所需的空間可以隨著可複寫式非揮發性記憶體模組406的容量的不同而改變。
在本範例實施例中,當主機系統11欲執行寫入操作時,記憶體管理電路702會從閒置區504中提取一作動實體抹除單元,並且將包含於來自主機系統11之寫入指令中的資料(亦稱為更新資料)寫入至此作動實體抹除單元中。
具體來說,當記憶體儲存裝置10從主機系統11接收到寫入指令時,來自於主機系統11之寫入指令中的資料可被寫入閒置區504中的一作動實體抹除單元中。並且,當此實體抹除單元已被寫滿時,記憶體管理電路702會再從閒置區504中提取空的實體抹除單元作為另一個作動實體抹除單元,以繼續寫入對應來自於主機系統11之寫入指令的更新資料。
圖9A~圖9C是根據本發明的一實施例所繪示之資料寫入的簡化範例。
為方便說明,在此假設資料區502具有4個實體抹除單元分別為實體抹除單元410(0)~410(3),閒置區504具有2個實體抹除單元分別為實體抹除單元410(4)~410(5)。
請同時參照圖9A、圖9B與圖9C,假設在圖9A的記憶體儲存裝置10的狀態中,邏輯單元LBA(0)~LBA(3)的邏輯頁面映射資料區502的實體抹除單元410(0)~410(3)的實體程式化單元,並且閒置區504具有實體抹除單元410(4)~410(5)。也就是說,記
憶體管理電路702會在邏輯-實體映射表中記錄邏輯單元LBA(0)~LBA(3)與實體抹除單元410(0)~410(5)之間的映射關係,並且將實體抹除單元410(0)~410(3)的實體程式化單元視為已儲存屬於邏輯單元LBA(0)~LBA(3)的邏輯頁面的資料(即,初始資料ID1~ID12)。此外,記憶體管理電路702會記錄閒置區504中可用的實體抹除單元410(4)~410(5),且當主機系統11執行寫入操作時,記憶體管理電路702會記錄對應此寫入操作的更新資料的映射資訊至緩衝記憶體710中如圖9B所示的實體-邏輯映射表600。
具體來說,當主機系統11執行關於一邏輯頁面的寫入操作時,記憶體管理電路702會將此寫入操作對應的更新資料寫入從閒置區504選出的作動實體抹除單元中。於此同時,記憶體管理電路702並不會更改邏輯-實體映射表中邏輯單元LBA(0)~LBA(3)與實體抹除單元410(0)~410(5)之間的映射關係,記憶體管理電路702會將作動實體抹除單元中,被用於儲存此更新資料的實體程式化單元的位址(亦稱,實體位址),連同此寫入操作所對應的邏輯頁面的位址(亦稱,邏輯位址)記錄至圖9B中的實體-邏輯映射表600中。等到實體-邏輯映射表600被寫滿後,才會根據實體-邏輯映射表600中的映射資訊(即,更新資料所對應的邏輯位址),載入對應的邏輯-實體映射表至緩衝記憶體710中,以更新邏輯單元LBA(0)~LBA(3)與實體抹除單元410(0)~410(5)之間的映射關係。值得一提的是,當記憶體儲存裝置10屬於閒置狀態一段時間(例如,30秒未從主機系統11中接收到任何指令)時,記憶體
管理電路702亦可以根據實體-邏輯映射表600中的映射資訊,載入對應的邏輯-實體映射表至緩衝記憶體710中,以更新邏輯單元LBA(0)~LBA(3)與實體抹除單元410(0)~410(5)之間的映射關係。
此外,在本範例實施例中,記憶體管理電路702會建立如圖9C中的更新資料計數表700。需說明的是,在執行寫入操作以將一邏輯頁面的資料寫入作動實體抹除單元後,該邏輯頁面所屬的邏輯單元可以被稱為「已更新邏輯單元」。換個角度來說,實體-邏輯映射表600中所記錄的邏輯位址所屬的邏輯單元即前述的「已更新邏輯單元」。更新資料計數表700用以記錄每個已更新邏輯單元目前在作動實體抹除單元中所具有的對應於寫入操作的有效的更新資料的數量(亦稱為,更新資料計數)。換句話說,以一個已更新邏輯單元的更新資料計數來說,該更新資料計數可以用於代表該已更新邏輯單元中有多少筆映射資訊需要被更新。在本範例實施例中,更新資料計數表700中擁有非零的更新資料計數的邏輯單元也可以被視為前述的「已更新邏輯單元」。需注意的是,若有多筆寫入操作是重複地對同一個邏輯位址進行寫入,則該邏輯位址在作動實體抹除單元中有效的更新資料是最後一次的寫入操作所寫入的更新資料。
請同時參照圖9A、圖9B與圖9C,假設主機系統11欲寫入更新資料UD1並且更新資料UD1是屬於邏輯單元LBA(0)的第1個邏輯頁面時,記憶體管理電路702會從閒置區504中提取例如實體抹除單元410(4)做為作動實體抹除單元,並且下達寫入
指令以將此更新資料UD1寫入至實體抹除單元410(4)的第0個實體程式化單元。接著,如圖9B所示,記憶體管理電路702會在實體-邏輯映射表600中記錄實體抹除單元410(4)的第0個實體程式化單元(即,資訊“410(4)-0”)與邏輯單元LBA(0)的第1個邏輯頁面(即,資訊“LBA(0)-1”)的映射資訊。此外,如圖9C所示,記憶體管理電路702還會對應此寫入操作,將更新資料計數表700中對應於邏輯單元LBA(0)的更新資料計數修改為1以代表邏輯單元LBA(0)中有一筆映射資訊需要被更新。
之後,假設主機系統11欲再寫入更新資料UD2並且更新資料UD2是屬於邏輯單元LBA(2)的第1個邏輯頁面時,記憶體管理電路702會將此更新資料UD2寫入至實體抹除單元410(4)的第1個實體程式化單元。接著如圖9B所示,記憶體管理電路702會在實體-邏輯映射表600中記錄實體抹除單元410(4)的第1個實體程式化單元(即,資訊“410(4)-1”)與邏輯單元LBA(2)的第1個邏輯頁面(即,資訊“LBA(2)-1”)的映射資訊。此外,記憶體管理電路702還會對應此寫入操作,將更新資料計數表700中對應於邏輯單元LBA(2)的更新資料計數修改為1以代表邏輯單元LBA(2)中有一筆映射資訊需要被更新。
之後,假設主機系統11欲再寫入更新資料UD3並且更新資料UD3是屬於邏輯單元LBA(2)的第2個邏輯頁面時,記憶體管理電路702會將此更新資料UD3寫入至實體抹除單元410(4)的第2個實體程式化單元。接著如圖9B所示,記憶體管理電路702
會在實體-邏輯映射表600中記錄實體抹除單元410(4)的第2個實體程式化單元(即,資訊“410(4)-2”)與邏輯單元LBA(2)的第2個邏輯頁面(即,資訊“LBA(2)-2”)的映射資訊。此外,記憶體管理電路702還會對應此寫入操作,將更新資料計數表700中對應於邏輯單元LBA(2)的更新資料計數修改為2以代表邏輯單元LBA(2)中有兩筆映射資訊需要被更新,如圖9C所示。
之後,假設主機系統11欲再寫入更新資料UD4並且更新資料UD4是屬於邏輯單元LBA(3)的第1個邏輯頁面時,記憶體管理電路702會從閒置區504中提取實體抹除單元410(5)。記憶體管理電路702會將此更新資料UD4寫入至實體抹除單元410(5)的第0個實體程式化單元。接著如圖9B所示,記憶體管理電路702會在實體-邏輯映射表600中記錄實體抹除單元410(5)的第0個實體程式化單元(即,資訊“410(5)-0”)與邏輯單元LBA(3)的第1個邏輯頁面(即,資訊“LBA(3)-1”)的映射資訊。此外,記憶體管理電路702還會對應此寫入操作,將更新資料計數表700中對應於邏輯單元LBA(3)的更新資料計數修改為1以代表邏輯單元LBA(3)中有一筆映射資訊需要被更新。
之後,假設主機系統11欲再寫入更新資料UD5並且更新資料UD5是屬於邏輯單元LBA(3)的第2個邏輯頁面時,記憶體管理電路702會將此更新資料UD5寫入至實體抹除單元410(5)的第1個實體程式化單元。接著如圖9B所示,記憶體管理電路702會在實體-邏輯映射表600中記錄實體抹除單元410(5)的第1個實
體程式化單元(即,資訊“410(5)-1”)與邏輯單元LBA(3)的第2個邏輯頁面(即,資訊“LBA(3)-2”)的映射資訊。此外,記憶體管理電路702還會對應此寫入操作,將更新資料計數表700中對應於邏輯單元LBA(3)的更新資料計數修改為2以代表邏輯單元LBA(3)中有兩筆映射資訊需要被更新,如圖9C所示。
之後,假設主機系統11欲再寫入更新資料UD6並且更新資料UD6是屬於邏輯單元LBA(1)的第1個邏輯頁面時,記憶體管理電路702會將此更新資料UD6寫入至實體抹除單元410(5)的第2個實體程式化單元。接著如圖9B所示,記憶體管理電路702會在實體-邏輯映射表600中記錄實體抹除單元410(5)的第2個實體程式化單元(即,資訊“410(5)-2”)與邏輯單元LBA(1)的第1個邏輯頁面(即,資訊“LBA(1)-1”)的映射資訊。此外,記憶體管理電路702還會對應此寫入操作,將更新資料計數表700中對應於邏輯單元LBA(1)的更新資料計數修改為1以代表邏輯單元LBA(1)中有兩筆映射資訊需要被更新,如圖9C所示。
經過前述的寫入操作後,如圖9C的更新資料計數表700所示,邏輯單元LBA(0)的更新資料計數為1。邏輯單元LBA(1)的更新資料計數為1,邏輯單元LBA(2)的更新資料計數為2,邏輯單元LBA(3)的更新資料計數為2。換句話說,經過前述的寫入操作後,邏輯單元LBA(0)中的一個邏輯位址的映射資訊須被更新,邏輯單元LBA(1)中的一個邏輯位址的映射資訊須被更新,邏輯單元LBA(2)中的兩個邏輯位址的映射資訊須被更新且邏輯單元
LBA(3)中的兩個邏輯位址的映射資訊須被更新。
必須了解的是,由於此時實體-邏輯映射表600已被寫滿,記憶體管理電路702會根據實體-邏輯映射表600中寫入資訊所對應的邏輯位址,載入對應的邏輯-實體映射表至緩衝記憶體710中,以更新邏輯單元LBA(0)~LBA(3)與實體抹除單元410(0)~410(5)之間的映射關係。
以下以多個實施例來描述本發明的映射表更新方法。
[第一實施例]
圖10A~圖10C是根據本發明的第一實施例所繪示之映射表更新的簡化範例。
請同時參照圖10A、圖10B與圖10C,接續圖9A、圖9B與圖9C,記憶體管理電路702首先會根據圖9C的更新資料計數表700挑選出所需載入並進行映射資訊的更新的邏輯-實體映射表。在本發明的第一實施例中,記憶體管理電路702例如可以事先設定一個門檻值(亦稱為,第一門檻值)。當一個邏輯單元所對應的更新資料計數大於第一門檻值時,記憶體管理電路702會載入該邏輯單元的邏輯-實體映射表至緩衝記憶體710中,並且根據實體-邏輯映射表600中的資訊更新該邏輯單元的邏輯-實體映射表。需注意的是,本發明並不用於限定第一門檻值的確切數值。
更詳細來說,在圖10A、圖10B與圖10C的實施例中,假設第一門檻值是1。記憶體管理電路702會選擇更新資料計數大於前述第一門檻值的邏輯單元LBA(2)與邏輯單元LBA(3)。記憶體
管理電路702會依據實體-邏輯映射表600,從可複寫式非揮發性記憶體模組406中載入對應於邏輯單元LBA(2)與邏輯單元LBA(3)(在此統稱為,第一已更新邏輯單元)的邏輯-實體映射表(亦即,第一邏輯-實體映射表)。具體來說,由於圖9B中的實體-邏輯映射表600中儲存了關於邏輯單元LBA(2)的第1-2個邏輯頁面的更新資訊(即,資訊“LBA(2)-1”與“LBA(2)-2”)以及邏輯單元LBA(3)的第1-2個邏輯頁面的更新資訊(即,資訊“LBA(3)-1”與“LBA(3)-2”),記憶體管理電路702會對應地從可複寫式非揮發性記憶體模組406中載入邏輯單元LBA(2)的邏輯-實體映射表以及邏輯單元LBA(3)的邏輯-實體映射表至緩衝記憶體710中。在本範例中,第一已更新邏輯單元的數量(即,2)是小於更新資料計數表700中更新資料計數非為零的邏輯單元(亦稱為,已更新邏輯單元)的數量(即,4)。
接著,記憶體管理電路702會根據圖9B中實體-邏輯映射表600中儲存的資訊,更新邏輯單元LBA(2)以及邏輯單元LBA(3)與實體抹除單元410(0)~410(5)之間的映射關係。具體來說,由於實體-邏輯映射表600中儲存了關於邏輯單元LBA(2)的第1個邏輯頁面(即,資訊“LBA(2)-1”)的更新資料UD2被儲存至實體抹除單元410(4)的第1個實體程式化單元(即,資訊“410(4)-1”)的更新資訊、關於邏輯單元LBA(2)的第2個邏輯頁面(即,資訊“LBA(2)-2”)的更新資料UD3被儲存至實體抹除單元410(4)的第2個實體程式化單元(即,資訊“410(4)-2”)的更新
資訊、關於邏輯單元LBA(3)的第1個邏輯頁面(即,資訊“LBA(3)-1”)的更新資料UD4被儲存至實體抹除單元410(5)的第0個實體程式化單元(即,資訊“410(5)-0”)的更新資訊以及關於邏輯單元LBA(3)的第2個邏輯頁面(即,資訊“LBA(3)-2”)的更新資料UD5被儲存至實體抹除單元410(5)的第1個實體程式化單元(即,資訊“410(5)-1”)的更新資訊,記憶體管理電路702會分別更新邏輯單元LBA(2)的邏輯-實體映射表以及邏輯單元LBA(3)的邏輯-實體映射表,以將邏輯單元LBA(2)的第1個邏輯頁面映射至實體抹除單元410(4)的第1個實體程式化單元、將邏輯單元LBA(2)的第2個邏輯頁面映射至實體抹除單元410(4)的第2個實體程式化單元、將邏輯單元LBA(3)的第1個邏輯頁面映射至實體抹除單元410(5)的第0個實體程式化單元以及將邏輯單元LBA(3)的第2個邏輯頁面映射至實體抹除單元410(5)的第1個實體程式化單元,如圖10A所示。
在經過前述映射資訊的更新後,邏輯單元LBA(2)的第1-2個邏輯頁面原先所映射的實體抹除單元410(2)的第1-2個實體程式化單元中的初始資料ID8-ID9會被識別為無效資料,而邏輯單元LBA(3)的第1-2個邏輯頁面原先所映射的實體抹除單元410(3)的第1-2個實體程式化單元中的初始資料ID11-ID12會被識別為無效資料。
接著,記憶體管理電路702會將已更新的邏輯單元LBA(2)以及邏輯單元LBA(3)的邏輯-實體映射表回存至可複寫式非揮發
性記憶體模組406中。而需注意的是,本範例實施例並非用於限定將第一邏輯-實體映射表回存至可複寫式非揮發性記憶體模組406中的時機。
此外,記憶體管理電路702還會將圖9B中的實體-邏輯映射表600修改為如圖10B中的實體-邏輯映射表600。更詳細來說,記憶體管理電路702還會清除實體-邏輯映射表600中關於邏輯單元LBA(2)的第1個邏輯頁面(即,資訊“LBA(2)-1”)的更新資料UD2被儲存至實體抹除單元410(4)的第1個實體程式化單元(即,資訊“410(4)-1”)的更新資訊、關於邏輯單元LBA(2)的第2個邏輯頁面(即,資訊“LBA(2)-2”)的更新資料UD3被儲存至實體抹除單元410(4)的第2個實體程式化單元(即,資訊“410(4)-2”)的更新資訊、關於邏輯單元LBA(3)的第1個邏輯頁面(即,資訊“LBA(3)-1”)的更新資料UD4被儲存至實體抹除單元410(5)的第0個實體程式化單元(即,資訊“410(5)-0”)的更新資訊以及關於邏輯單元LBA(3)的第2個邏輯頁面(即,資訊“LBA(3)-2”)的更新資料UD5被儲存至實體抹除單元410(5)的第1個實體程式化單元(即,資訊“410(5)-1”)的更新資訊。特別是,在本實施例中,記憶體管理電路702還會保留實體-邏輯映射表600中關於邏輯單元LBA(0)的第1個邏輯頁面(即,資訊“LBA(0)-1”)的更新資料UD1被儲存至實體抹除單元410(4)的第0個實體程式化單元(即,資訊“410(4)-0”)的更新資訊以及關於邏輯單元LBA(1)的第1個邏輯頁面(即,資訊“LBA(1)-1”)的更新資料UD6被儲存至實體
抹除單元410(5)的第2個實體程式化單元(即,資訊“410(5)-2”)的更新資訊。
此外,記憶體管理電路702還會將圖9C中的更新資料計數表700修改為如圖10C中的更新資料計數表700。更詳細來說,由於邏輯單元LBA(2)與邏輯單元LBA(3)已沒有映射資訊需要再被更新,故邏輯單元LBA(2)與邏輯單元LBA(3)的更新資料計數皆會被設為零。
在此需說明的是,在前述範例中,記憶體管理電路702是選擇更新資料計數大於第一門檻值的邏輯單元LBA(2)與邏輯單元LBA(3)並載入對應於邏輯單元LBA(2)與邏輯單元LBA(3)的邏輯-實體映射表以進行映射資訊的更新。換句話說,根據前述的第一門檻值,可以確保所載入的邏輯-實體映射表中映射資訊的更新數量可以達到一定數值,藉此提升邏輯-實體映射表在更新時的效率。而針對更新資料計數非大於第一門檻值的邏輯單元LBA(0)與邏輯單元LBA(1),記憶體管理電路702可以繼續執行後續的的寫入操作並且等到邏輯單元LBA(0)與邏輯單元LBA(1)的更新資料計數大於第一門檻值後,再載入對應於邏輯單元LBA(0)與邏輯單元LBA(1)的邏輯-實體映射表以進行映射資訊的更新。藉此,可以避免當一邏輯-實體映射表中的映射資訊的更新數量較少時,在清倉操作中大部分時間是花在載入與回存邏輯-實體映射表並造成映射表更新效率低落的問題。
[第二實施例]
圖11A~圖11C是根據本發明的第二實施例所繪示之映射表更新的簡化範例。
請同時參照圖11A、圖11B與圖11C,接續圖9A、圖9B與圖9C,記憶體管理電路702首先會根據圖9C的更新資料計數表700挑選出所需載入並進行映射資訊的更新的邏輯-實體映射表。在本發明的第二實施例中,記憶體管理電路702例如可以事先設定一個門檻值(亦稱為,第二門檻值)。當一個邏輯單元所對應的更新資料計數小於第二門檻值時,記憶體管理電路702會載入該邏輯單元的邏輯-實體映射表至緩衝記憶體710中,並且根據實體-邏輯映射表600中的資訊更新該邏輯單元的邏輯-實體映射表。需注意的是,本發明並不用於限定第二門檻值的確切數值。
更詳細來說,在圖11A、圖11B與圖11C的實施例中,假設第二門檻值是2。記憶體管理電路702會選擇更新資料計數小於前述第二門檻值的邏輯單元LBA(0)與邏輯單元LBA(1)。記憶體管理電路702會依據實體-邏輯映射表600,從可複寫式非揮發性記憶體模組406中載入對應於邏輯單元LBA(0)與邏輯單元LBA(1)(在此統稱為,第一已更新邏輯單元)的邏輯-實體映射表(亦即,第一邏輯-實體映射表)。具體來說,由於圖9B中的實體-邏輯映射表600中儲存了關於邏輯單元LBA(0)的第1個邏輯頁面的更新資訊(即,資訊“LBA(0)-1”)以及邏輯單元LBA(1)的第1個邏輯頁面的更新資訊(即,資訊“LBA(1)-1”),記憶體管理電路702會對應地從可複寫式非揮發性記憶體模組406中載入邏輯單元
LBA(0)的邏輯-實體映射表以及邏輯單元LBA(1)的邏輯-實體映射表至緩衝記憶體710中。在本範例中,第一已更新邏輯單元的數量(即,2)是小於更新資料計數表700中更新資料計數非為零的邏輯單元(亦稱為,已更新邏輯單元)的數量(即,4)。
接著,記憶體管理電路702會根據圖9B中實體-邏輯映射表600中儲存的資訊,更新邏輯單元LBA(0)以及邏輯單元LBA(1)與實體抹除單元410(0)~410(5)之間的映射關係。具體來說,由於實體-邏輯映射表600中儲存了關於邏輯單元LBA(0)的第1個邏輯頁面(即,資訊“LBA(0)-1”)的更新資料UD1被儲存至實體抹除單元410(4)的第0個實體程式化單元(即,資訊“410(4)-0”)的更新資訊以及關於邏輯單元LBA(1)的第1個邏輯頁面(即,資訊“LBA(1)-1”)的更新資料UD6被儲存至實體抹除單元410(5)的第2個實體程式化單元(即,資訊“410(5)-2”)的更新資訊,記憶體管理電路702會分別更新邏輯單元LBA(0)的邏輯-實體映射表以及邏輯單元LBA(1)的邏輯-實體映射表,以將邏輯單元LBA(0)的第1個邏輯頁面映射至實體抹除單元410(4)的第0個實體程式化單元以及將邏輯單元LBA(1)的第1個邏輯頁面映射至實體抹除單元410(5)的第2個實體程式化單元,如圖11A所示。
在經過前述映射資訊的更新後,邏輯單元LBA(0)的第1個邏輯頁面原先所映射的實體抹除單元410(0)的第1個實體程式化單元中的初始資料ID2會被識別為無效資料,而邏輯單元LBA(1)的第1個邏輯頁面原先所映射的實體抹除單元410(1)的第1個實
體程式化單元中的初始資料ID5會被識別為無效資料。
接著,記憶體管理電路702會將更新後的邏輯單元LBA(0)以及邏輯單元LBA(1)的邏輯-實體映射表回存至可複寫式非揮發性記憶體模組406中。而需注意的是,本範例實施例並非用於限定將第一邏輯-實體映射表回存至可複寫式非揮發性記憶體模組406中的時機。
此外,記憶體管理電路702還會將圖9B中的實體-邏輯映射表600修改為如圖11B中的實體-邏輯映射表600。更詳細來說,記憶體管理電路702還會清除實體-邏輯映射表600中關於邏輯單元LBA(0)的第1個邏輯頁面(即,資訊“LBA(0)-1”)的更新資料UD1被儲存至實體抹除單元410(4)的第0個實體程式化單元(即,資訊“410(4)-0”)的更新資訊以及關於邏輯單元LBA(1)的第1個邏輯頁面(即,資訊“LBA(1)-1”)的更新資料UD6被儲存至實體抹除單元410(5)的第2個實體程式化單元(即,資訊“410(5)-2”)的更新資訊。特別是,在本實施例中,記憶體管理電路702還會保留實體-邏輯映射表600中關於邏輯單元LBA(2)的第1個邏輯頁面(即,資訊“LBA(2)-1”)的更新資料UD2被儲存至實體抹除單元410(4)的第1個實體程式化單元(即,資訊“410(4)-1”)的更新資訊、關於邏輯單元LBA(2)的第2個邏輯頁面(即,資訊“LBA(2)-2”)的更新資料UD3被儲存至實體抹除單元410(4)的第2個實體程式化單元(即,資訊“410(4)-2”)的更新資訊、關於邏輯單元LBA(3)的第1個邏輯頁面(即,資訊
“LBA(3)-1”)的更新資料UD4被儲存至實體抹除單元410(5)的第0個實體程式化單元(即,資訊“410(5)-0”)的更新資訊以及關於邏輯單元LBA(3)的第2個邏輯頁面(即,資訊“LBA(3)-2”)的更新資料UD5被儲存至實體抹除單元410(5)的第1個實體程式化單元(即,資訊“410(5)-1”)的更新資訊。
此外,記憶體管理電路702還會將圖9C中的更新資料計數表700修改為如圖11C中的更新資料計數表700。更詳細來說,由於邏輯單元LBA(0)與邏輯單元LBA(1)已沒有映射資訊需要再被更新,故邏輯單元LBA(0)與邏輯單元LBA(1)的更新資料計數皆會被設為零。
在此需說明的是,在前述範例中,記憶體管理電路702是選擇更新資料計數小於第二門檻值的邏輯單元LBA(0)與邏輯單元LBA(1)並載入對應於邏輯單元LBA(0)與邏輯單元LBA(1)的邏輯-實體映射表以進行映射資訊的更新。換句話說,若一邏輯單元的更新資料計數非小於第二門檻值,代表後續的寫入操作有較高的機率是繼續寫入更新資料計數非小於第二門檻值的邏輯單元的資料。在載入更新資料計數小於第二門檻值的邏輯單元的邏輯-實體映射表以進行映射資訊的更新後,可以清除實體-邏輯映射表中前述更新資料計數小於第二門檻值的邏輯單元的映射資訊,藉此空出較多的空間來儲存更新資料計數非小於第二門檻值的邏輯單元的映射資訊。
此外,應說明的是,在上述第一實施例中,主機系統所
欲執行的寫入操作是將資料寫入至隨機的一或多個邏輯單元;在上述第二實施例中,主機系統所欲執行的寫入操作是將資料寫入至邏輯位址於固定範圍內的一或多個邏輯單元。
[第三實施例]
在本發明的第三實施例中,記憶體管理電路702例如可以事先設定一個門檻值(亦稱為,第三門檻值)。更詳細來說,記憶體管理電路702會根據更新資料計數表的多個更新資料計數進行排序,並根據排序後的更新資料計數決定出前述的第三門檻值以使得前述所述多個更新資料計數中大於第三門檻值的更新資料計數(亦稱為,第二更新資料計數)的數量等於前述多個更新資料計數中非大於第三門檻值的更新資料計數(亦稱為,第三更新資料計數)的數量。換句話說,第三門檻值可以用於將更新資料計數表中所記載的邏輯單元區分為數量相同的兩類,一類更新資料計數大於第三門檻值的邏輯單元,另一類為更新資料計數非大於第三門檻值的邏輯單元。
更詳細來說,延續圖9A、圖9B與圖9C的範例,記憶體管理電路702會對圖9C中更新資料計數表700的多個更新資料計數進行排序,並根據排序後的更新資料計數決定出前述的第三門檻值(例如,1)以使得更新資料計數表700中大於第三門檻值的更新資料計數的數量(即,2個)等於更新資料計數表700中非大於第三門檻值的更新資料計數的數量(即,2個)。藉由第三門檻值,記憶體管理電路702可以將圖9C中的邏輯單元LBA(0)~LBA(3)區分
為數量相同的兩類,一類為更新資料計數大於第三門檻值的邏輯單元LBA(2)與邏輯單元LBA(3),另一類為更新資料計數非大於第三門檻值的邏輯單元LBA(0)與邏輯單元LBA(1)。
之後,記憶體管理電路702可以將邏輯單元LBA(2)與邏輯單元LBA(3)(統稱為,第二已更新邏輯單元)識別為如第一實施例中所述的第一已更新邏輯單元,並執行如第一實施例的映射表更新方法。然而在另一實施例中,記憶體管理電路702可以將邏輯單元LBA(0)與邏輯單元LBA(1)(統稱為,第三已更新邏輯單元)識別為如第二實施例中所述的第一已更新邏輯單元,並執行如第二實施例的映射表更新方法。而映射表更新的方式已詳述如前述的第一實施例與第二實施例,故在此不再贅述。
在此需說明的是,在前述範例中,記憶體管理電路702是根據第三門檻值將更新資料計數表中所記載的邏輯單元區分為數量相同的兩類,一類為更新資料計數大於第三門檻值的邏輯單元,另一類為更新資料計數非大於第三門檻值的邏輯單元。之後,記憶體管理電路702可以選擇其中一類中的邏輯單元並載入該類的邏輯單元的邏輯-實體映射表以進行更新。換句話說,當更新資料計數表700中各個邏輯單元的更新資料計數皆相當接近時或平均時,可以直接地執行第三實施例的映射表更新方法以清除實體-邏輯映射表中所記錄的一半的映射資訊,並空出實體-邏輯映射表中一半的空間。
應注意的是,在前述範例中,第三門檻值可以用於將更
新資料計數表中所記載的邏輯單元區分為數量相同的兩類,一類更新資料計數大於第三門檻值的邏輯單元,另一類為更新資料計數非大於第三門檻值的邏輯單元,但本發明不限於此。例如,在另一實施例中,記憶體管理電路702可根據第三門檻值將更新資料計數表中所記載的邏輯單元區分為數量不相同的兩類,一類為更新資料計數大於第三門檻值的邏輯單元,另一類為更新資料計數非大於第三門檻值的邏輯單元。大於第三門檻值的邏輯單元的總數量與更新資料計數非大於第三門檻值的邏輯單元的總數量之間的比例關係可近似或等同於一預定比值。換句話說,記憶體管理電路702可選擇其中一類的多個邏輯單元,以直接地執行第三實施例的映射表更新方法以清除實體-邏輯映射表中所記錄的對應所選擇之其中一類的所述多個邏輯單元,並空出實體-邏輯映射表中部份的空間。
圖12是根據本發明的一實施例所繪示之映射表更新方法的流程圖。
請參照圖12,在步驟S1201中,記憶體管理電路702建立實體-邏輯映射表600。實體-邏輯映射表600記錄多個實體抹除單元之中的作動實體抹除單元與多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊。在步驟S1203中,記憶體管理電路702根據實體-邏輯映射表600,分別計算前述多個已更新邏輯單元在作動實體抹除單元中的多個更新資料計數。在步驟S1205中,記憶體管理電路702根據前述的更新資料計數,從多個已更新邏輯
單元中選擇第一已更新邏輯單元。其中第一已更新邏輯單元的數量小於前述多個已更新邏輯單元的數量。接著,在步驟S1207中,記憶體管理電路702從多個邏輯-實體映射表中載入對應於第一已更新邏輯單元的第一邏輯-實體映射表。在步驟S1209中,記憶體管理電路702根據實體-邏輯映射表600中第一已更新邏輯單元的映射資訊更新第一邏輯-實體映射表中的映射資訊。最後在步驟S1211中,記憶體管理電路702將已更新的第一邏輯-實體映射表回存至可複寫式非揮發性記憶體模組。
圖13是根據本發明的另一實施例所繪示之映射表更新方法的流程圖。
請參照圖13,在步驟S1301中,記憶體管理電路702建立實體-邏輯映射表600。實體-邏輯映射表600記錄多個實體抹除單元之中的作動實體抹除單元與多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊。在步驟S1303中,記憶體管理電路702根據實體-邏輯映射表600,分別計算前述多個已更新邏輯單元在作動實體抹除單元中的多個更新資料計數。在步驟S1305中,記憶體管理電路702根據前述的更新資料計數,從多個已更新邏輯單元中選擇第一已更新邏輯單元。其中第一已更新邏輯單元的數量小於前述多個已更新邏輯單元的數量且多個更新資料計數中所述第一已更新邏輯單元的第一更新資料計數大於第一門檻值。接著,在步驟S1307中,記憶體管理電路702從多個邏輯-實體映射表中載入對應於第一已更新邏輯單元的第一邏輯-實體映射表。在
步驟S1309中,記憶體管理電路702根據實體-邏輯映射表600中第一已更新邏輯單元的映射資訊更新第一邏輯-實體映射表中的映射資訊。在步驟S1311中,記憶體管理電路702清除實體-邏輯映射表600中第一已更新邏輯單元的映射資訊。在步驟S1313中,記憶體管理電路702保留實體-邏輯映射表600中第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊。最後在步驟S1315中,記憶體管理電路702將已更新的第一邏輯-實體映射表回存至可複寫式非揮發性記憶體模組。
綜上所述,本發明的映射表更新方法、記憶體控制電路單元與記憶體儲存裝置,可以僅根據實體-邏輯映射表中一部分的映射資訊來載入對應的邏輯-實體映射表來執行映射資訊的更新,並且保留實體-邏輯映射表中其他剩餘部分的映射資訊。藉此,可以提升邏輯-實體映射表在更新時的效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1201:建立實體-邏輯映射表,其中實體-邏輯映射表記錄多個實體抹除單元之中的作動實體抹除單元與多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊的步驟
S1203:根據實體-邏輯映射表,分別計算多個已更新邏輯單元在作動實體抹除單元中的多個更新資料計數的步驟
S1205:根據多個更新資料計數,從多個已更新邏輯單元中選擇第一已更新邏輯單元,其中第一已更新邏輯單元的數量小於前述的已更新邏輯單元的數量的步驟
S1207:從多個邏輯-實體映射表中載入對應於第一已更新邏輯單元的第一邏輯-實體映射表的步驟
S1209:根據實體-邏輯映射表中第一已更新邏輯單元的映射資訊更新第一邏輯-實體映射表中的映射資訊的步驟
S1211:將已更新的第一邏輯-實體映射表回存至可複寫式非揮發性記憶體模組的步驟
Claims (19)
- 一種映射表更新方法,用於一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,多個邏輯-實體映射表被儲存在所述可複寫式非揮發性記憶體模組中以記錄多個邏輯單元與所述多個實體抹除單元之間的映射資訊,所述映射表更新方法包括:建立一實體-邏輯映射表,其中所述實體-邏輯映射表記錄所述多個實體抹除單元之中的至少一作動實體抹除單元與所述多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊;根據所述實體-邏輯映射表,分別計算所述多個已更新邏輯單元在所述作動實體抹除單元中的多個更新資料計數,其中所述多個更新資料計數用以表示所述多個已更新邏輯單元中需要被更新的映射資訊的數目;根據所述多個更新資料計數,從所述多個已更新邏輯單元中選擇至少一第一已更新邏輯單元,其中所述第一已更新邏輯單元的數量小於所述多個已更新邏輯單元的數量;從所述多個邏輯-實體映射表中載入對應於所述第一已更新邏輯單元的至少一第一邏輯-實體映射表;以及根據所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊更新所述第一邏輯-實體映射表中的映射資訊。
- 如申請專利範圍第1項所述的映射表更新方法,更包括:清除所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊;保留所述實體-邏輯映射表中所述第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊;以及 將已更新的所述第一邏輯-實體映射表回存至所述可複寫式非揮發性記憶體模組。
- 如申請專利範圍第1項所述的映射表更新方法,其中所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數大於一第一門檻值。
- 如申請專利範圍第1項所述的映射表更新方法,其中所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數小於一第二門檻值。
- 如申請專利範圍第1項所述的映射表更新方法,其中從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的步驟包括:對所述多個更新資料計數排序;根據排序後的所述多個更新資料計數決定一第三門檻值;以及根據所述第三門檻值將所述多個更新資料計數區分為至少一第二更新資料計數以及至少一第三更新資料計數,其中所述第二更新資料計數大於所述第三門檻值且所述第三更新資料計數非大於所述第三門檻值。
- 如申請專利範圍第5項所述的映射表更新方法,其中從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的步驟更包括:將所述多個已更新邏輯單元中對應於所述第二更新資料計數的至少一第二已更新邏輯單元識別為所述第一已更新邏輯單元,或將所述多個已更新邏輯單元中對應於所述第三更新資料計數的 至少一第三已更新邏輯單元識別為所述第一已更新邏輯單元。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,所述記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,多個邏輯-實體映射表被儲存在所述可複寫式非揮發性記憶體模組中以記錄多個邏輯單元與所述多個實體抹除單元之間的映射資訊;一記憶體管理電路,耦接至所述主機介面以及所述記憶體介面,其中所述記憶體管理電路用以建立一實體-邏輯映射表,其中所述實體-邏輯映射表記錄所述多個實體抹除單元之中的至少一作動實體抹除單元與所述多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊,其中所述記憶體管理電路更用以根據所述實體-邏輯映射表,分別計算所述多個已更新邏輯單元在所述作動實體抹除單元中的多個更新資料計數,其中所述多個更新資料計數用以表示所述多個已更新邏輯單元中需要被更新的映射資訊的數目,其中所述記憶體管理電路更用以根據所述多個更新資料計數,從所述多個已更新邏輯單元中選擇至少一第一已更新邏輯單元,其中所述第一已更新邏輯單元的數量小於所述多個已更新邏輯單元的數量,其中所述記憶體管理電路更用以從所述多個邏輯-實體映射表中載入對應於所述第一已更新邏輯單元的至少一第一邏輯-實體映射表, 其中所述記憶體管理電路更用以根據所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊更新所述第一邏輯-實體映射表中的映射資訊。
- 如申請專利範圍第7項所述的記憶體控制電路單元,其中所述記憶體管理電路更用以清除所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊,保留所述實體-邏輯映射表中所述第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊,並將已更新的所述第一邏輯-實體映射表回存至所述可複寫式非揮發性記憶體模組。
- 如申請專利範圍第7項所述的記憶體控制電路單元,其中所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數大於一第一門檻值。
- 如申請專利範圍第7項所述的記憶體控制電路單元,其中所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數小於一第二門檻值。
- 如申請專利範圍第7項所述的記憶體控制電路單元,其中在從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的運作中,所述記憶體管理電路更用以對所述多個更新資料計數排序,根據排序後的所述多個更新資料計數決定一第三門檻值,並根據所述第三門檻值將所述多個更新資料計數區分為至少一第二更新資料計數以及至少一第三更新資料計數,其中所述第二更新資料計數大於所述第三門檻值且所述第三 更新資料計數非大於所述第三門檻值。
- 如申請專利範圍第11項所述的記憶體控制電路單元,其中在從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的運作中,所述記憶體管理電路更用以將所述多個已更新邏輯單元中對應於所述第二更新資料計數的至少一第二已更新邏輯單元識別為所述第一已更新邏輯單元,或將所述多個已更新邏輯單元中對應於所述第三更新資料計數的至少一第三已更新邏輯單元識別為所述第一已更新邏輯單元。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,多個邏輯-實體映射表被儲存在所述可複寫式非揮發性記憶體模組中以記錄多個邏輯單元與所述多個實體抹除單元之間的映射資訊;以及一記憶體控制電路單元,耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以建立一實體-邏輯映射表,其中所述實體-邏輯映射表記錄所述多個實體抹除單元之中的至少一作動實體抹除單元與所述多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊,其中所述記憶體控制電路單元更用以根據所述實體-邏輯映射表,分別計算所述多個已更新邏輯單元在所述作動實體抹除單 元中的多個更新資料計數,其中所述多個更新資料計數用以表示所述多個已更新邏輯單元中需要被更新的映射資訊的數目,其中所述記憶體控制電路單元更用以根據所述多個更新資料計數,從所述多個已更新邏輯單元中選擇至少一第一已更新邏輯單元,其中所述第一已更新邏輯單元的數量小於所述多個已更新邏輯單元的數量,其中所述記憶體控制電路單元更用以從所述多個邏輯-實體映射表中載入對應於所述第一已更新邏輯單元的至少一第一邏輯-實體映射表,其中所述記憶體控制電路單元更用以根據所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊更新所述第一邏輯-實體映射表中的映射資訊。
- 如申請專利範圍第13項所述的記憶體儲存裝置,其中所述記憶體控制電路單元更用以清除所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊,保留所述實體-邏輯映射表中所述第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊,並將已更新的所述第一邏輯-實體映射表回存至所述可複寫式非揮發性記憶體模組。
- 如申請專利範圍第13項所述的記憶體儲存裝置,其中所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數大於一第一門檻值。
- 如申請專利範圍第13項所述的記憶體儲存裝置,其中所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數小於一第二門檻值。
- 如申請專利範圍第13項所述的記憶體儲存裝置,其中在從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的運作中,所述記憶體控制電路單元更用以對所述多個更新資料計數排序,並根據排序後的所述多個更新資料計數決定一第三門檻值。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中在從所述多個已更新邏輯單元中選擇所述第一已更新邏輯單元的運作中,所述記憶體控制電路單元更用以對所述多個更新資料計數排序,根據排序後的所述多個更新資料計數決定所述第三門檻值,並根據所述第三門檻值將所述多個更新資料計數區分為至少一第二更新資料計數以及至少一第三更新資料計數,其中所述第二更新資料計數大於所述第三門檻值且所述第三更新資料計數非大於所述第三門檻值。
- 一種映射表更新方法,用於一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體抹除單元,多個邏輯-實體映射表被儲存在所述可複寫式非揮發性記憶體模組中以記錄多個邏輯單元與所述多個實體抹除單元之間的映射資訊,所述映射表更新方法包括:建立一實體-邏輯映射表,其中所述實體-邏輯映射表記錄所述多個實體抹除單元之中的至少一作動實體抹除單元與所述多個邏輯單元之中的多個已更新邏輯單元之間的映射資訊;根據所述實體-邏輯映射表,分別計算所述多個已更新邏輯單元在所述作動實體抹除單元中的多個更新資料計數,其中所述多 個更新資料計數用以表示所述多個已更新邏輯單元中需要被更新的映射資訊的數目;根據所述多個更新資料計數,從所述多個已更新邏輯單元中選擇至少一第一已更新邏輯單元,其中所述第一已更新邏輯單元的數量小於所述多個已更新邏輯單元的數量且所述多個更新資料計數中所述第一已更新邏輯單元的一第一更新資料計數大於一第一門檻值;從所述多個邏輯-實體映射表中載入對應於所述第一已更新邏輯單元的至少一第一邏輯-實體映射表;根據所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊更新所述第一邏輯-實體映射表中的映射資訊;清除所述實體-邏輯映射表中所述第一已更新邏輯單元的映射資訊;以及保留所述實體-邏輯映射表中所述第一已更新邏輯單元以外的其他已更新邏輯單元的映射資訊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107140233A TWI693516B (zh) | 2018-11-13 | 2018-11-13 | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 |
US16/238,529 US10713178B2 (en) | 2018-11-13 | 2019-01-03 | Mapping table updating method, memory controlling circuit unit and memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107140233A TWI693516B (zh) | 2018-11-13 | 2018-11-13 | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI693516B true TWI693516B (zh) | 2020-05-11 |
TW202018512A TW202018512A (zh) | 2020-05-16 |
Family
ID=70549883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107140233A TWI693516B (zh) | 2018-11-13 | 2018-11-13 | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10713178B2 (zh) |
TW (1) | TWI693516B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799973A (zh) * | 2021-02-09 | 2021-05-14 | 群联电子股份有限公司 | 编码控制方法、存储器存储装置及存储器控制电路单元 |
TWI751904B (zh) * | 2021-02-04 | 2022-01-01 | 群聯電子股份有限公司 | 編碼控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210004322A (ko) | 2019-07-04 | 2021-01-13 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵정보 및 리드카운트를 전송하는 장치 및 방법 |
KR102666123B1 (ko) | 2019-07-05 | 2024-05-16 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
US11422942B2 (en) * | 2019-04-02 | 2022-08-23 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
KR20200123684A (ko) | 2019-04-22 | 2020-10-30 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 정보를 전송하는 장치 |
KR20200139433A (ko) | 2019-06-04 | 2020-12-14 | 에스케이하이닉스 주식회사 | 컨트롤러의 동작 방법 및 메모리 시스템 |
KR20200137181A (ko) | 2019-05-29 | 2020-12-09 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵정보를 전송하는 장치 |
KR20200119059A (ko) | 2019-04-09 | 2020-10-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20210011216A (ko) * | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템의 메타 데이터 관리 방법 및 장치 |
KR20210011201A (ko) | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 온도 조절 방법 |
KR20210011176A (ko) | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템의 액세스 동작 방법 및 장치 |
KR20210068699A (ko) | 2019-12-02 | 2021-06-10 | 삼성전자주식회사 | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 |
CN113535089B (zh) * | 2020-05-22 | 2024-05-17 | 长江存储科技有限责任公司 | 用于ssd的映射表的刷新方法 |
CN113900582A (zh) * | 2020-06-22 | 2022-01-07 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113096713B (zh) * | 2021-04-12 | 2024-05-07 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326121A1 (en) * | 2012-05-30 | 2013-12-05 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
US20140082265A1 (en) * | 2012-09-20 | 2014-03-20 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
TWI534618B (zh) * | 2015-07-13 | 2016-05-21 | 群聯電子股份有限公司 | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI569139B (zh) * | 2015-08-07 | 2017-02-01 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
CN107844431A (zh) * | 2017-11-03 | 2018-03-27 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI479505B (zh) * | 2010-12-16 | 2015-04-01 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
US9524248B2 (en) * | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US9208074B2 (en) * | 2013-08-30 | 2015-12-08 | Silicon Motion, Inc. | Updating address mapping in sub-intervals in a flash memory data storage device |
TWI575374B (zh) * | 2015-08-04 | 2017-03-21 | 群聯電子股份有限公司 | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI591482B (zh) * | 2016-01-30 | 2017-07-11 | 群聯電子股份有限公司 | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 |
-
2018
- 2018-11-13 TW TW107140233A patent/TWI693516B/zh active
-
2019
- 2019-01-03 US US16/238,529 patent/US10713178B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326121A1 (en) * | 2012-05-30 | 2013-12-05 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
US20140082265A1 (en) * | 2012-09-20 | 2014-03-20 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
TWI534618B (zh) * | 2015-07-13 | 2016-05-21 | 群聯電子股份有限公司 | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI569139B (zh) * | 2015-08-07 | 2017-02-01 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
CN107844431A (zh) * | 2017-11-03 | 2018-03-27 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI751904B (zh) * | 2021-02-04 | 2022-01-01 | 群聯電子股份有限公司 | 編碼控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN112799973A (zh) * | 2021-02-09 | 2021-05-14 | 群联电子股份有限公司 | 编码控制方法、存储器存储装置及存储器控制电路单元 |
CN112799973B (zh) * | 2021-02-09 | 2023-05-02 | 群联电子股份有限公司 | 编码控制方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
TW202018512A (zh) | 2020-05-16 |
US10713178B2 (en) | 2020-07-14 |
US20200151108A1 (en) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI693516B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI579696B (zh) | 資料重建方法與系統及其記憶體控制電路單元 | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN106708416B (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
TWI615711B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI668699B (zh) | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111208932B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN110308876B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI635495B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107103930B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
TWI688958B (zh) | 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI545576B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN105573662B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN112445416B (zh) | 冷区域判断方法、存储器控制电路单元与存储器存储装置 | |
TW202011179A (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111143253A (zh) | 数据储存方法、存储器控制电路单元以及存储器储存装置 | |
CN111858389B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN111143230B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 |