TWI506430B - 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 - Google Patents

映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 Download PDF

Info

Publication number
TWI506430B
TWI506430B TW102109836A TW102109836A TWI506430B TW I506430 B TWI506430 B TW I506430B TW 102109836 A TW102109836 A TW 102109836A TW 102109836 A TW102109836 A TW 102109836A TW I506430 B TWI506430 B TW I506430B
Authority
TW
Taiwan
Prior art keywords
logical address
consecutive
mapping table
memory
mapping
Prior art date
Application number
TW102109836A
Other languages
English (en)
Other versions
TW201437807A (zh
Inventor
Kuo Hwa Ho
Kheng-Chong Tan
Original Assignee
Phison Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW102109836A priority Critical patent/TWI506430B/zh
Priority to US13/896,328 priority patent/US9043536B2/en
Publication of TW201437807A publication Critical patent/TW201437807A/zh
Application granted granted Critical
Publication of TWI506430B publication Critical patent/TWI506430B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical 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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
本發明是有關於一種用於可複寫式非揮發性記憶體的映射資訊記錄方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,快閃記憶體儲存裝置的快閃記憶體模組會劃分為多個實體區塊,其中實體區塊更劃分為多個實體頁面,而實體區塊是快閃記憶體的抹除單位並且實體頁面是快閃記憶體的寫 入單位。由於在程式化快閃記憶體之記憶胞時,僅能執行單向的程式化(即,僅能將記憶胞的值由1程式化為0),因此無法對已程式化的實體頁面(即,存有舊資料的頁面)直接進行寫入,而是必須先將此實體頁面抹除後方可重新程式化。特別是,由於快閃記憶體的抹除是以實體區塊為單位,因此當欲將存有舊資料的實體頁面執行抹除運作時,必須對此實體頁面所屬的整個實體區塊進行抹除。因此,快閃記憶體模組的實體區塊會被區分為資料區與閒置區,其中資料區的實體區塊是已被使用來儲存資料的實體區塊,而備用區中的實體區塊是未被使用的實體區塊,其中當主機系統欲寫入資料至快閃記憶體儲存裝置時,快閃記憶體儲存裝置的控制電路會從備用區中提取實體區塊來寫入資料,並且將所提取的實體區塊會關聯為資料區。並且,當資料區的實體區塊被執行抹除運作(erase operation)後,已抹除的實體區塊會被關聯為備用區。
由於主機系統是以邏輯位址來進行寫入,因此,在快閃記憶體儲存系統運作過程中,控制電路會在用以暫存資料的隨機存取記憶體中儲存邏輯位址與實體頁面之間的映射關係,以利資料的存取。然而,一般來說,快閃記憶體儲存系統的隨機存取記憶體空間有限,因此,如何有效地記錄邏輯位址與實體位址之間的映射關係,以提升資料的存取速度是此領域技術人員所致力的目標。
本發明提供一種映射資訊記錄方法、記憶體控制器與記憶體儲存裝置,其能夠有效地記錄邏輯位址與實體位址之間的映射關係並提升資料讀取的速度。
本發明範例實施例提出一種映射資訊記錄方法用於可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體抹除單元並且每一實體抹除單元具有多個實體程式化單元。本映射資訊記錄方法包括配置多個邏輯位址;建立至少一邏輯位址映射表並且將邏輯位址映射表儲存至可複寫式非揮發性記憶體模組。本映射資訊記錄方法也包括從主機系統中接收多筆第一資料,其中此主機系統指示將此些第一資料儲存至此些邏輯位址之中的多個第一連續邏輯位址中。本映射資訊記錄方法還包括將此些第一資料寫入至所述實體抹除單元的實體程式化單元之中的多個第一實體程式化單元中;將對應該些第一第一連續邏輯位址的第一邏輯位址映射表載入至緩衝記憶體;在第一邏輯位址映射表中更新此些第一連續邏輯位址與此些第一實體程式化單元之間的映射關係;在此緩衝記憶體中存放連續映射表;並且在此連續映射表中記錄對應此些第一連續邏輯位址的第一連續映射記錄。
在本發明的一範例實施例中,上述第一連續映射記錄的一起始邏輯位址欄位記錄此些第一連續邏輯位址的起始邏輯位址,上述第一連續映射記錄的起始實體程式化單元欄位記錄此些 第一實體程式化單元的起始實體程式化單元並且上述第一連續映射記錄的長度欄位記錄此些第一連續邏輯位址的長度。
在本發明的一範例實施例中,上述映射資訊記錄方法更包括:從主機系統中接收多筆第二資料,其中主機系統指示將此些第二資料儲存至此些邏輯位址之中的多個第二連續邏輯位址中,且此些第二連續邏輯位址接續此些第一連續邏輯位址。上述映射資訊記錄方法還包括:將此些第二資料寫入至所述實體抹除單元的實體程式化單元之中的多個第二實體程式化單元中,其中此些第二實體程式化單元是接續此些第一實體程式化單元。上述映射資訊記錄方法也包括:在連續映射表中更新第一連續映射記錄,其中第一連續映射記錄的長度欄位被更新為此些第一連續邏輯位址的長度與此些第二連續邏輯位址的長度的總和。
在本發明的一範例實施例中,上述映射資訊記錄方法更包括:在第一邏輯位址映射表中更新此些第二連續邏輯位址與此些第二實體程式化單元之間的映射關係。
在本發明的一範例實施例中,上述映射資訊記錄方法更包括:將第一邏輯位址映射表回存至可複寫式非揮發性記憶體模組;以及將對應第二連續邏輯位址的第二邏輯位址映射表載入至緩衝記憶體,並且在第二邏輯位址映射表中更新此些第二連續邏輯位址與此些第二實體程式化單元之間的映射關係。
在本發明的一範例實施例中,上述映射資訊記錄方法更包括:從主機系統中接收一第三資料,其中主機系統指示將第三 資料儲存至此些第一連續邏輯位址之中的第一邏輯位址中,其中第一邏輯位址接續於此些第一連續邏輯位址之中的多個第三連續邏輯位址並且此些第一連續邏輯位址之中的多個第四連續邏輯位址接續此第一邏輯位址。上述映射資訊記錄方法還包括:將第三資料寫入至所述實體抹除單元的實體程式化單元之中的第三實體程式化單元中;在第一邏輯位址映射表中更新第一邏輯位址與第三實體程式化單元之間的映射關係;以及在上述連續映射表中將第一連續映射記錄的長度欄位更新為此些第三連續邏輯位址的長度,並且增加第二連續映射記錄,其中此第二連續映射記錄的起始邏輯位址欄位記錄此些第四連續邏輯位址的起始邏輯位址,此第二連續映射記錄的起始實體程式化單元欄位記錄映射接續第一邏輯位址的邏輯位址的實體程式化單元,並且此第二連續映射記錄的長度欄位記錄此些第四連續邏輯位址的長度。
在本發明的一範例實施例中,上述映射資訊記錄方法更包括:從主機系統中接收讀取指令;判斷連續映射表中是否存有對應此讀取指令指示的邏輯位址的資訊;以及倘若此連續映射表中存有對應此讀取指令指示的邏輯位址的資訊時,根據此連續映射表從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的讀取資料。
在本發明的一範例實施例中,上述映射資訊記錄方法更包括:倘若此連續映射表中未存有對應此讀取指令指示的邏輯位址的資訊時,從可複寫式非揮發性記憶體模組中載入此些邏輯位 址映射表之中的一對應邏輯位址映射表並且根據此對應邏輯位址映射表從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的讀取資料,其中此對應邏輯位址映射表為此讀取指令指示的邏輯位址所對應的邏輯位址映射表。
本發明範例實施例提出一種記憶體控制器,其配置在記憶體裝置中。此記憶體控制器包括主機介面、記憶體介面、緩衝記憶體與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面、記憶體介面與緩衝記憶體。記憶體管理電路用以配置多個邏輯位址,建立至少一邏輯位址映射表並且將邏輯位址映射表儲存至可複寫式非揮發性記憶體模組。記憶體管理電路也用以從主機系統中接收多筆第一資料,其中此主機系統指示將此些第一資料儲存至此些邏輯位址之中的多個第一連續邏輯位址中。記憶體管理電路還用以將此些第一資料寫入至所述實體抹除單元的實體程式化單元之中的多個第一實體程式化單元中,將對應第一連續邏輯位址的第一邏輯位址映射表載入至緩衝記憶體,在第一邏輯位址映射表中更新此些第一連續邏輯位址與此些第一實體程式化單元之間的映射關係,在此緩衝記憶體中存放連續映射表,並且在此連續映射表中記錄對應此些第一連續邏輯位址的第一連續映射記錄。
在本發明的一範例實施例中,上述第一連續映射記錄的一起始邏輯位址欄位記錄此些第一連續邏輯位址的起始邏輯位 址,上述第一連續映射記錄的起始實體程式化單元欄位記錄此些第一實體程式化單元的起始實體程式化單元並且上述第一連續映射記錄的長度欄位記錄此些第一連續邏輯位址的長度。
在本發明的一範例實施例中,記憶體管理電路更用以從主機系統中接收多筆第二資料,其中主機系統指示將此些第二資料儲存至此些邏輯位址之中的多個第二連續邏輯位址中,且此些第二連續邏輯位址接續此些第一連續邏輯位址。記憶體管理電路還用以將此些第二資料寫入至所述實體抹除單元的實體程式化單元之中的多個第二實體程式化單元中,其中此些第二實體程式化單元是接續此些第一實體程式化單元。記憶體管理電路也用以在連續映射表中更新第一連續映射記錄,其中第一連續映射記錄的長度欄位被更新為此些第一連續邏輯位址的長度與此些第二連續邏輯位址的長度的總和。
在本發明的一範例實施例中,記憶體管理電路更用以在第一邏輯位址映射表中更新此些第二連續邏輯位址與此些第二實體程式化單元之間的映射關係。
在本發明的一範例實施例中,上述記憶體管理電路更用以將第一邏輯位址映射表回存至可複寫式非揮發性記憶體模組,將對應第二連續邏輯位址的第二邏輯位址映射表載入至緩衝記憶體,並且在第二邏輯位址映射表中更新此些第二連續邏輯位址與此些第二實體程式化單元之間的映射關係。
在本發明的一範例實施例中,上述記憶體管理電路更用 以從主機系統中接收一第三資料,其中主機系統指示將第三資料儲存至此些第一連續邏輯位址之中的第一邏輯位址中,第一邏輯位址接續於此些第一連續邏輯位址之中的多個第三連續邏輯位址並且此些第一連續邏輯位址之中的多個第四連續邏輯位址接續此第一邏輯位址。上述記憶體管理電路還用以將第三資料寫入至所述實體抹除單元的實體程式化單元之中的第三實體程式化單元中,在第一邏輯位址映射表中更新第一邏輯位址與第三實體程式化單元之間的映射關係,以及在上述連續映射表中將第一連續映射記錄的長度欄位更新為此些第三連續邏輯位址的長度,並且增加第二連續映射記錄,其中此第二連續映射記錄的起始邏輯位址欄位記錄此些第四連續邏輯位址的起始邏輯位址,此第二連續映射記錄的起始實體程式化單元欄位記錄映射接續第一邏輯位址的邏輯位址的實體程式化單元,並且此第二連續映射記錄的長度欄位記錄此些第四連續邏輯位址的長度。
在本發明的一範例實施例中,上述記憶體管理電路更用以從主機系統中接收讀取指令,判斷連續映射表中是否存有對應此讀取指令指示的邏輯位址的資訊,以及倘若此連續映射表中存有對應此讀取指令指示的邏輯位址的資訊時,根據此連續映射表從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的讀取資料。
在本發明的一範例實施例中,倘若此連續映射表中未存有對應此讀取指令指示的邏輯位址的資訊時,上述記憶體管理電 路更用以從可複寫式非揮發性記憶體模組中載入此些邏輯位址映射表之中的一對應邏輯位址映射表並且根據此對應邏輯位址映射表從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的讀取資料,其中此對應邏輯位址映射表為此讀取指令指示的邏輯位址所對應的邏輯位址映射表。
本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統,記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組。記憶體控制器用以配置多個邏輯位址,建立至少一邏輯位址映射表並且將邏輯位址映射表儲存至可複寫式非揮發性記憶體模組。記憶體控制器也用以從主機系統中接收多筆第一資料,其中此主機系統指示將此些第一資料儲存至此些邏輯位址之中的多個第一連續邏輯位址中。記憶體控制器還用以將此些第一資料寫入至所述實體抹除單元的實體程式化單元之中的多個第一實體程式化單元中,將對應第一連續邏輯位址的第一邏輯位址映射表載入至緩衝記憶體,在第一邏輯位址映射表中更新此些第一連續邏輯位址與此些第一實體程式化單元之間的映射關係,在此緩衝記憶體中存放連續映射表,並且在此連續映射表中記錄對應此些第一連續邏輯位址的第一連續映射記錄。
在本發明的一範例實施例中,上述第一連續映射記錄的一起始邏輯位址欄位記錄此些第一連續邏輯位址的起始邏輯位址,上述第一連續映射記錄的起始實體程式化單元欄位記錄此些 第一實體程式化單元的起始實體程式化單元並且上述第一連續映射記錄的長度欄位記錄此些第一連續邏輯位址的長度。
在本發明的一範例實施例中,記憶體控制器更用以從主機系統中接收多筆第二資料,其中主機系統指示將此些第二資料儲存至此些邏輯位址之中的多個第二連續邏輯位址中,且此些第二連續邏輯位址接續此些第一連續邏輯位址。記憶體控制器還用以將此些第二資料寫入至所述實體抹除單元的實體程式化單元之中的多個第二實體程式化單元中,其中此些第二實體程式化單元是接續此些第一實體程式化單元。記憶體控制器也用以在連續映射表中更新第一連續映射記錄,其中第一連續映射記錄的長度欄位被更新為此些第一連續邏輯位址的長度與此些第二連續邏輯位址的長度的總和。
在本發明的一範例實施例中,記憶體控制器更用以在第一邏輯位址映射表中更新此些第二連續邏輯位址與此些第二實體程式化單元之間的映射關係。
在本發明的一範例實施例中,上述記憶體控制器更用以將第一邏輯位址映射表回存至可複寫式非揮發性記憶體模組,將對應第二連續邏輯位址的第二邏輯位址映射表載入至緩衝記憶體,並且在第二邏輯位址映射表中更新此些第二連續邏輯位址與此些第二實體程式化單元之間的映射關係。
在本發明的一範例實施例中,上述記憶體控制器更用以從主機系統中接收一第三資料,其中主機系統指示將第三資料儲 存至此些第一連續邏輯位址之中的第一邏輯位址中,第一邏輯位址接續於此些第一連續邏輯位址之中的多個第三連續邏輯位址並且此些第一連續邏輯位址之中的多個第四連續邏輯位址接續此第一邏輯位址。上述記憶體控制器還用以將第三資料寫入至所述實體抹除單元的實體程式化單元之中的第三實體程式化單元中,在第一邏輯位址映射表中更新此些第一邏輯位址與第三實體程式化單元之間的映射關係,以及在上述連續映射表中將第一連續映射記錄的長度欄位更新為此些第三連續邏輯位址的長度,並且增加第二連續映射記錄,其中此第二連續映射記錄的起始邏輯位址欄位記錄此些第四連續邏輯位址的起始邏輯位址,此第二連續映射記錄的起始實體程式化單元欄位記錄映射接續第一邏輯位址的邏輯位址的實體程式化單元,並且此第二連續映射記錄的長度欄位記錄此些第四連續邏輯位址的長度。
在本發明的一範例實施例中,上述記憶體控制器更用以從主機系統中接收讀取指令,判斷連續映射表中是否存有對應此讀取指令指示的邏輯位址的資訊,以及倘若此連續映射表中存有對應此讀取指令指示的邏輯位址的資訊時,根據此連續映射表從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的讀取資料。
在本發明的一範例實施例中,倘若此連續映射表中未存有對應此讀取指令指示的邏輯位址的資訊時,上述記憶體控制器更用以從可複寫式非揮發性記憶體模組中載入此些邏輯位址映射 表之中的一對應邏輯位址映射表並且根據此對應邏輯位址映射表從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的讀取資料,其中此對應邏輯位址映射表為此讀取指令指示的邏輯位址所對應的邏輯位址映射表。
基於上述,本範例實施例的映射資訊記錄方法、記憶體控制器與記憶體儲存裝置能夠在有限的緩衝記憶體空間內記錄連續映射資訊,以提升資料讀取的速度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
304(0)~304(R)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧電源管理電路
212‧‧‧錯誤檢查與校正電路
402‧‧‧儲存區
404‧‧‧系統區
406‧‧‧取代區
LZ(0)~LZ(M)‧‧‧邏輯區域
LBA(0)~LBA(H)‧‧‧邏輯位址
PBA(0-1)~PBA(N-K)‧‧‧實體程式化單元
800、801、802‧‧‧邏輯位址映射表
802‧‧‧邏輯位址索引欄位
804‧‧‧實體位址欄位
1290‧‧‧實體位址儲存狀態表
1292‧‧‧實體位址索引欄位
1294‧‧‧狀態欄位
1300‧‧‧連續映射表
1302‧‧‧記錄編號欄位
1304‧‧‧起始邏輯位址欄位
1306‧‧‧起始實體程式化單元欄位
1308‧‧‧長度
S1901、S1903、S1905‧‧‧記錄映射資訊的步驟
S2001、S2003、S2005、S2007、S2009、S2011‧‧‧寫入運作的步驟
S2101、S2103、S2105、S2107、S2109、S2111‧‧‧寫入運作的步驟
S2201、S2203、S2205、S2207、S2209、S2211、S2213‧‧‧寫 入運作的步驟
S2301、S2303、S2305、S2307、S2309、S2311、S2313‧‧‧讀取運作的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖6與圖7是根據一範例實施例所繪示之管理可複寫式非揮 發性記憶體模組的範例示意圖。
圖8是根據本發明範例實施例所繪示之邏輯位址映射表的範例。
圖9~圖11是根據本發明範例實施例所繪示之進行寫入運作而更新邏輯位址映射表的一範例。
圖12是根據本範例實施例所繪示之實體位址儲存狀態表的示意圖。
圖13是根據本發明一範例實施例所繪示的連續映射表的範例示意圖。
圖14是根據本發明範例實施例所繪示的執行連續寫入運作而更新邏輯位址映射表與連續映射表的一範例。
圖15是根據本發明範例實施例所繪示的執行連續寫入運作而更新邏輯位址映射表與連續映射表的另一範例。
圖16與圖17是根據本發明範例實施例所繪示的執行連續寫入運作而更新邏輯位址映射表與連續映射表的另一範例。
圖18是根據本發明範例實施例所繪示的執行寫入運作而更新邏輯位址映射表與連續映射表的另一範例。
圖19是根據本範例實施例所繪示的映射資訊記錄方法中初始化記憶體儲存裝置的流程圖。
圖20是根據本範例實施例所繪示之映射資訊記錄方法中執行連續寫入運作的流程圖。
圖21是根據另一範例實施例所繪示之映射資訊記錄方法中 執行連續寫入運作的流程圖。
圖22是根據另一範例實施例所繪示之映射資訊記錄方法中執行寫入運作的流程圖。
圖23是根據另一範例實施例所繪示之映射資訊記錄方法中執行讀取運作的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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所示的隨身碟1256、記憶卡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是相容於安全數位(Secure Digital,SD)介面標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會 (Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元304(0)~304(R)。例如,實體抹除單元304(0)~304(R)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128 個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元亦可由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所示之記憶體控制器的結構僅為一範例,本發明不以此為限。
請參照圖5,記憶體控制器104包括記憶體管理電路202、主機介面204、記憶體介面206與緩衝記憶體208。
記憶體管理電路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是相容於SD標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SATA標準、UHS-I介面標準、UHS-II介面標準、MS標準、MMC標準、eMMC介面標準、UFS介面標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
緩衝記憶體208是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路210以及錯誤檢查與校正電路212。
電源管理電路210是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路212是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令 時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6,記憶體控制器104(或記憶體管理電路202)會將可複寫式非揮發性記憶體模組106的實體抹除單元304(0)~304(R)邏輯地分組為儲存區402、系統區404與取代區406。
邏輯上屬於儲存區402的實體抹除單元304(0)~304(N)是用以儲存主機系統1000所寫入的資料。也就是說,記憶體儲存裝置100會使用分組為儲存區402的實體抹除單元來實際地儲存 主機系統1000所寫入的資料。
邏輯上屬於系統區404的實體抹除單元304(N+1)~304(S)是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區406中的實體抹除單元304(S+1)~304(R)是替代實體抹除單元。例如,可複寫式非揮發性記憶體模組106於出廠時會預留4%的實體抹除單元作為更換使用。也就是說,當儲存區402與系統區404中的實體抹除單元損毀時,預留於取代區406中的實體抹除單元是用以取代損壞的實體抹除單元(即,壞實體抹除單元(bad block))。因此,倘若取代區406中仍存有正常之實體抹除單元且發生實體抹除單元損毀時,記憶體控制器104會從取代區406中提取正常的實體抹除單元來更換損毀的實體抹除單元。倘若取代區406中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,儲存區402、系統區404與取代區406之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至儲存區402、系統區404與取代區406的分組關係會動態地變動。例如,當儲存區402中的實體抹除單元損壞而被取代區406 的實體抹除單元取代時,則原本取代區406的實體抹除單元會被關聯至儲存區402。
請參照圖7,如上所述,儲存區402的實體抹除單元是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會配置邏輯位址LBA(0)~LBA(H)給主機系統1000以進行資料的存取。每個邏輯位址是由數個扇區(sector)所組成。例如,在本範例實施例中,每一邏輯位址是由4個扇區所組成。但本發明不限於此,在本發明另一範例實施例中,邏輯位址亦可是由8個扇區所組成或是由16個扇區所組成。一般來說,儲存區402的實體抹除單元的實體程式化單元的數目是大於邏輯位址的數目。
例如,當記憶體控制器104(或記憶體管理電路202)開始使用實體抹除單元304(0)來儲存主機系統1000欲寫入的資料時,不管主機系統1000是寫入那個邏輯位址,記憶體控制器104(或記憶體管理電路202)會將資料寫入至實體抹除單元304(0)的實體程式化單元;而當記憶體控制器104(或記憶體管理電路202)開始使用實體抹除單元304(1)來儲存主機系統1000欲寫入的資料時,不管主機系統1000是寫入那個邏輯位址,記憶體控制器104(或記憶體管理電路202)會將資料寫入至實體抹除單元304(1)的實體程式化單元中。
為了識別資料每個邏輯位址的被儲存在那個實體程式化單元,在本範例實施例中,記憶體控制器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來被更新。
圖8是根據本發明範例實施例所繪示之邏輯位址映射表的範例。
請參照圖8,在本範例實施例中,每~邏輯區域的邏輯位址映射表是相同的,在此僅以對應邏輯區域LZ(0)的邏輯位址映射表800來作說明。邏輯位址映射表800包括邏輯位址索引欄位 802以及實體位址欄位804。邏輯位址索引欄位802記錄邏輯區域LZ(0)的每個邏輯位址的編號並且實體位址欄位804記錄每個邏輯位址所映射的實體程式化單元。在記憶體儲存裝置100為全新且未曾被用來儲存資料的狀態下,所有邏輯位址映射表中對應每一個邏輯位址所映射之實體程式單元的欄位會被標記為空值(例如,NULL)。
圖9~圖11是根據本發明範例實施例所繪示之進行寫入運作而更新邏輯位址映射表的一範例。
請參照圖9,倘若在記憶體儲存裝置100為全新且未曾被用來儲存資料的狀態下主機系統1000欲寫入資料至邏輯位址LBA(1)時,記憶體控制器104(或記憶體管理電路202)會選擇一個實體抹除單元(例如,實體抹除單元304(0))並且將主機系統1000欲寫入的資料寫入至實體程式化單元PBA(0-1)。在完成資料的寫入後,記憶體控制器104(或記憶體管理電路202)會在邏輯位址映射表800中將邏輯位址LBA(1)映射至實體程式化單元PBA(0-1)。
請參照圖10,倘若在圖9的狀態下主機系統1000欲寫入資料至邏輯位址LBA(129)時,記憶體控制器104(或記憶體管理電路202)會將主機系統1000欲寫入的資料寫入至實體程式化單元PBA(0-2)中。此時,記憶體控制器104(或記憶體管理電路202)會在邏輯位址映射表800中將邏輯位址LBA(129)映射至實體程式化單元PBA(0-2)。
請參照圖11,倘若在圖10的狀態下主機系統1000欲寫入資料至邏輯位址LBA(1)時,記憶體控制器104(或記憶體管理電路202)會將主機系統1000欲寫入的資料寫入至實體程式化單元PBA(0-3)中。此時,記憶體控制器104(或記憶體管理電路202)會在邏輯位址映射表800中將邏輯位址LBA(1)映射至實體程式化單元PBA(0-3)。此時,實體程式化單元PBA(0-1)所儲存之資料為無效資料。特別是,在某個實體抹除單元的所有實體程式化單元所儲存之資料皆為無效資料時,記憶體控制器104(或記憶體管理電路202)就可對此實體抹除單元執行抹除運作並且所抹除後之實體抹除單元就可再被用來寫入資料。基此,為了識別儲存無效資料的實體程式化單元,例如,在一範例實施例中,記憶體控制器104(或記憶體管理電路202)會維護實體位址資訊表,由此來識別每個實體位址所儲存的資料為有效資料或無效資料。例如,記憶體控制器104(或記憶體管理電路202)會使用實體位址儲存狀態表來記錄實體位址的狀態。
圖12是根據本範例實施例所繪示之實體位址儲存狀態表的示意圖。
請參照圖12,實體位址儲存狀態表1290包括實體位址索引欄位1292與狀態欄位1294,實體位址索引欄位1292記錄每個實體程式化單元的編號且狀態欄位1294記錄每個對應實體程式化單元的狀態。例如,當狀態欄位被標記為’0’時,表示對應之實體程式化單元所儲存的資料為無效資料且狀態欄位被標記 為’1’時,表示對應之實體程式化單元儲存資料為有效資料,但本發明不限於此。
值得一提的,除了使用上述之實體位址儲存狀態表1290來識別實體位址的狀態外,在本發明另一範例實施例中,亦可用實體位址映射表來識別實體位址的狀態。例如,實體位址映射表包括實體位址索引欄位與邏輯位址欄位,其中邏輯位址欄位用以記錄映射實體位址索引欄位所記錄之實體程式化單元的邏輯位址。並且,透過比對邏輯位址映射表與實體位址映射表,每個實體程式化單元所儲存的資料為有效資料或無效資料就可被識別。
如上所述,在記憶體儲存裝置100運作期間對應所有邏輯區域的邏輯位址映射表無法同時被載入至緩衝記憶體208,因此,當主機系統1000欲讀取儲存於某個邏輯位址的資料時,記憶體控制器104(或記憶體管理電路202)需從可複寫式非揮發性記憶體模組106中載入對應的邏輯位址映射表(即,將已完成更新的邏輯位址映射表回存至可複寫式非揮發性記憶體模組106且將對應目前欲存取之邏輯位址所屬之邏輯區域的邏輯位址映射表載入至緩衝記憶體208),由此會延遲讀取資料所需的時間,進而影響記憶體儲存裝置100的存取效能。基此,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)更會在執行連續寫入運作時利用緩衝記憶體208的一部分空間來存放連續映射表,以記錄連續邏輯位址與連續實體程式化單元的映射關係。在此,連續寫入運作意指寫入欲儲存至連續邏輯位址的資料。也就是說, 在本範例實施例中,當主機系統1000將多筆資料寫入至連續邏輯位址時,除了更新對應的邏輯位址映射表(如圖9所示)之外,記憶體控制器104(或記憶體管理電路202)會在連續映射表中記錄對應所寫入之資料的起始邏輯位址、起始實體程式化單元與長度,由此以較少的資料量來記錄邏輯位址與實體程式化單元的映射關係。特別是,在執行讀取運作期間,若欲存取的邏輯位址的映射資訊可由連續映射表來提供時,記憶體控制器104(或記憶體管理電路202)會根據連續映射表中的映射資訊來從對應的實體程式化單元中讀取資料,由此減少從可複寫式非揮發性記憶體模組106中載入邏輯位址映射表的次數,以提升讀取速度。以下將配合圖式詳細描述記憶體控制器104(或記憶體管理電路202)如何在寫入資料時維護連續映射表以提升後續讀取資料的速度。值得一提的是,在本範例實施例,連續映射表存放在緩衝記憶體208中,並且不會存至可複寫式非揮發性記憶體模組106。然而,本發明不限於此,在本發明另一範例實施例中,連續映射表亦可於記憶體儲存裝置100關機前存至可複寫式非揮發性記憶體模組106並且於記憶體儲存裝置100再次啟動時被載入至緩衝記憶體208中來繼續維護。
圖13是根據本發明一範例實施例所繪示的連續映射表的範例示意圖。
請參照圖13,連續映射表1300包括記錄編號欄位1302、起始邏輯位址欄位1304、起始實體程式化單元欄位1306 與長度欄位1308。記錄編號欄位1302用以記錄連續映射記錄的編號,起始邏輯位址欄位1304用以記錄此筆連續映射記錄之起始邏輯位址、起始實體程式化單元欄位1306用以記錄此筆連續映射記錄之起始實體程式化單元與長度1308欄位用以記錄此筆連續映射記錄之邏輯位址的長度。在本範例實施例中,連續映射表1300可記錄多筆連續映射記錄。例如,在一範例實施例中,連續映射表1300可記錄的連續映射記錄的數目可根據緩衝記憶體208的大小來決定。
圖14是根據本發明範例實施例所繪示的執行連續寫入運作而更新邏輯位址映射表與連續映射表的一範例。為了方便說明說,在此假設主機系統1000欲儲存多筆資料至連續邏輯位址LBA(0)~LBA(3),邏輯位址LBA(0)~LBA(9)被分組為第一邏輯區域且邏輯位址映射表801被指配用於記錄第一邏輯區域之邏輯位址LBA(0)~LBA(9)的映射關係。
請參照圖14,當接收到欲儲存至連續邏輯位址LBA(0)~LBA(3)的資料時,記憶體控制器104(或記憶體管理電路202)會選擇一個空的實體抹除單元304(0)並且將欲儲存至連續邏輯位址LBA(0)~LBA(3)的資料寫入至實體抹除單元304(0)的連續實體程式化單元PBA(0-0)~PBA(0-3)中。並且,記憶體控制器104(或記憶體管理電路202)會從可複寫式非揮發性記憶體模組106中載入邏輯位址映射表801至緩衝記憶體208並且在邏輯位址映射表801中記錄連續邏輯位址LBA(0)~LBA(3)與連續實體程式化 單元PBA(0-0)~PBA(0-3)的映射關係,其中邏輯位址LBA(0)映射實體程式化單元PBA(0-0),邏輯位址LBA(1)映射實體程式化單元PBA(0-1),邏輯位址LBA(2)映射實體程式化單元PBA(0-2),並且邏輯位址LBA(3)映射實體程式化單元PBA(0-3)。
另外,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300新增一個連續映射記錄(以下稱為第一連續映射記錄),以記錄連續邏輯位址LBA(0)~LBA(3)的起始邏輯位址LBA(0)、連續實體程式化單元PBA(0-0)~PBA(0-3)的起始實體程式化單元PBA(0-0)以及連續邏輯位址LBA(0)~LBA(3)的長度(即,4)。
圖15是根據本發明範例實施例所繪示的執行連續寫入運作而更新邏輯位址映射表與連續映射表的另一範例。圖15的範例是延續圖14的範例,並假設主機系統1000在儲存多筆資料至連續邏輯位址LBA(0)~LBA(3)後再儲存多筆資料至連續邏輯位址LBA(4)~LBA(6)。
請參照圖15,當後續接收到欲儲存至連續邏輯位址LBA(4)~LBA(6)的資料時,記憶體控制器104(或記憶體管理電路202)會將欲儲存至連續邏輯位址LBA(4)~LBA(6)的資料寫入至實體抹除單元304(0)的連續實體程式化單元PBA(0-4)~PBA(0-6)中。特別是,由於邏輯位址映射表801已被載入至緩衝記憶體208,因此,記憶體控制器104(或記憶體管理電路202)可直接在邏輯位址映射表801中記錄連續邏輯位址LBA(4)~LBA(6)與連 續實體程式化單元PBA(0-4)~PBA(0-6)的映射關係,其中邏輯位址LBA(4)映射實體程式化單元PBA(0-4),邏輯位址LBA(5)映射實體程式化單元PBA(0-5),並且邏輯位址LBA(6)映射實體程式化單元PBA(0-6)。
另外,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300更新第一連續映射記錄,以將對應的長度更新為7。具體來說,由於儲存第二資料的邏輯位址LBA(4)~LBA(6)是接續邏輯位址LBA(0)~LBA(3)並且實體程式化單元PBA(0-4)~PBA(0-6)是接續實體程式化單元PBA(0-0)~PBA(0-3),因此,記憶體控制器104(或記憶體管理電路202)僅需更新第一連續映射記錄中的長度欄位內的值,即可存有連續邏輯位址LBA(0)~LBA(6)的映射資訊。
圖16與圖17是根據本發明範例實施例所繪示的執行連續寫入運作而更新邏輯位址映射表與連續映射表的另一範例。為了方便說明,在此假設主機系統1000先儲存多筆資料至連續邏輯位址LBA(0)~LBA(9)且之後再儲存多筆資料至連續邏輯位址LBA(10)~LBA(19),其中邏輯位址LBA(0)~LBA(9)被分組為第一邏輯區域,邏輯位址LBA(10)~LBA(19)被分組為第二邏輯區域,邏輯位址映射表801被指配用於記錄第一邏輯區域內之邏輯位址LBA(0)~LBA(9)的映射關係並且邏輯位址映射表802被指配用於記錄第二邏輯區域內之邏輯位址LBA(10)~LBA(19)的映射關係。
請參照圖16,當接收到欲儲存至連續邏輯位址 LBA(0)~LBA(9)的資料時,記憶體控制器104(或記憶體管理電路202)會選擇一個空的實體抹除單元304(0)並且將欲儲存至連續邏輯位址LBA(0)~LBA(9)的資料寫入至實體抹除單元304(0)的連續實體程式化單元PBA(0-0)~PBA(0-9)中。並且,記憶體控制器104(或記憶體管理電路202)會從可複寫式非揮發性記憶體模組106中載入邏輯位址映射表801至緩衝記憶體208並且在邏輯位址映射表801中記錄連續邏輯位址LBA(0)~LBA(9)與連續實體程式化單元PBA(0-0)~PBA(0-9)的映射關係。
另外,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300新增第一連續映射記錄,以記錄連續邏輯位址LBA(0)~LBA(9)的起始邏輯位址LBA(0)、連續實體程式化單元PBA(0-0)~PBA(0-9)的起始實體程式化單元PBA(0-0)以及連續邏輯位址LBA(0)~LBA(9)的長度(即,10)。
請參照圖17,當後續接收到欲儲存至連續邏輯位址LBA(10)~LBA(19)的資料時,記憶體控制器104(或記憶體管理電路202)會將欲儲存至連續邏輯位址LBA(10)~LBA(19)的資料寫入至實體抹除單元304(0)的連續實體程式化單元PBA(0-10)~PBA(0-19)中。特別是,由於邏輯位址映射表802未被載入至緩衝記憶體208,因此,記憶體控制器104(或記憶體管理電路202),記憶體控制器104(或記憶體管理電路202)會從可複寫式非揮發性記憶體模組106中載入邏輯位址映射表802至緩衝記憶體208以替換邏輯位址映射表801並且在邏輯位址映射表802 中記錄連續邏輯位址LBA(10)~LBA(19)與連續實體程式化單元PBA(0-10)~PBA(0-19)的映射關係。
另外,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300中更新第一連續映射記錄,以將對應的長度更新為20。具體來說,由於邏輯位址LBA(10)~LBA(19)是接續邏輯位址LBA(0)~LBA(9)並且實體程式化單元PBA(0-10)~PBA(0-19)是接續實體程式化單元PBA(0-0)~PBA(0-9),因此,記憶體控制器104(或記憶體管理電路202)僅需更新第一連續映射記錄中的長度值,則可存有連續邏輯位址LBA(0)~LBA(19)的映射資訊。
值得一提的是,在完成圖17之寫入運作後,倘若主機系統1000欲讀取儲存於邏輯位址LBA(8)的資料時,儘管邏輯位址映射表801未被載入至緩衝記憶體208中,但記憶體控制器104(或記憶體管理電路202)亦可根據連續映射表1300中的資訊獲取邏輯位址LBA(8)的映射資訊,以從對應的實體程式化單元(即,實體程式化單元PBA(0-0))中讀取資料,由此縮短讀取資料所需的時間。具體來說,記憶體控制器104(或記憶體管理電路202)會計算邏輯位址LBA(8)與第一連續映射記錄中之起始邏輯位址(即,邏輯位址LBA(0))之間的偏移並且根據此偏移以及第一連續映射記錄中之起始實體程式化單元(即,實體程式化單元PBA(0-0))計算出映射邏輯位址LBA(8)的實體程式化單元。
圖18是根據本發明範例實施例所繪示的執行寫入運作而更新邏輯位址映射表與連續映射表的另一範例。為了方便說明 說,在此假設接續圖16與圖17的寫入運作(即,儲存多筆資料至連續邏輯位址LBA(0)~LBA(9)並儲存多筆資料至連續邏輯位址LBA(10)~LBA(19))後主機系統1000再更新一筆資料至邏輯位址LBA(12)。
請參照圖18,當接收到欲儲存至邏輯位址LBA(12)的更新資料時,記憶體控制器104(或記憶體管理電路202)會將欲儲存至邏輯位址LBA(12)的更新資料寫入至實體抹除單元304(0)的實體程式化單元PBA(0-20)中,並且在邏輯位址映射表802中更新邏輯位址LBA(12)的映射關係(即,邏輯位址LBA(12)映射至實體程式化單元PBA(0-20))。
另外,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300中更新第一連續映射記錄,以將長度欄位更新為連續邏輯位址LBA(0)~LBA(11)的長度(即,12)。此外,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300中新增第二連續映射記錄,以記錄連續邏輯位址LBA(13)~LBA(19)的起始邏輯位址LBA(13)、連續實體程式化單元PBA(0-13)~PBA(0-19)的起始實體程式化單元PBA(0-13)以及連續邏輯位址LBA(13)~LBA(19)的長度(即,7)。具體來說,由於邏輯位址LBA(12)中的資料被更新且更新資料被寫入至實體程式化單元PBA(0-20),因此,原連續邏輯位址LBA(0)~LBA(19)會被切割為連續邏輯位址LBA(0)~LBA(11)與連續邏輯位址LBA(13)~LBA(19)並且記憶體控制器104(或記憶體管理電路202) 會以兩筆連續映射記錄來儲存連續邏輯位址LBA(0)~LBA(11)與連續邏輯位址LBA(13)~LBA(19)的映射關係。
值得一提的是,在本範例實施例中,寫入運作是在一個實體抹除單元中依序地使用實體程式化單元來進行,因此,上述連續實體程式化單元被定義為每個實體抹除單元中依序排列的實體程式化單元。然而,必須了解的是,在另一範例實施例中,寫入運作亦可將預先定義數目之實體抹除單元劃分為一組,並且輪流地使用每一個實體抹除單元的實體程式化單元。例如,依據實體程式化單元PBA(0-1)、PBA(1-1)、PBA(2-1)、PBA(3-1)、PBA(0-2)、PBA(1-2)、PBA(2-2)、PBA(3-2)、…PBA(0-k)、PBA(1-k)、PBA(2-k)與PBA(N-k)的順序來執行寫入運作。在此例子中,上述連續實體程式化單元被定義為在多個實體抹除單元中被依序使用之實體程式化單元。
圖19是根據本範例實施例所繪示的映射資訊記錄方法中初始化記憶體儲存裝置的流程圖。
請參照圖19,在步驟S1901中,記憶體控制器104(或記憶體管理電路202)會配置複數個邏輯位址。
在步驟S1903中,記憶體控制器104(或記憶體管理電路202)會建立至少一邏輯位址映射表。
並且,在步驟S1905中,記憶體控制器104(或記憶體管理電路202)會劃分緩衝記憶體208的其中一部分來存放連續映射表,以記錄被寫入之連續邏輯位址與實體程式化單元的映射關 係。
圖20是根據本範例實施例所繪示之映射資訊記錄方法中執行連續寫入運作的流程圖,其中此連續寫入運作非接續前一個寫入指令所寫入的邏輯位址。
請參照圖20,在步驟S2001中,記憶體控制器104(或記憶體管理電路202)會從主機系統1000中接收欲儲存至連續邏輯位址(以下稱為第一連續邏輯位址)的資料(以下稱為第一資料)。
在步驟S2003中,記憶體控制器104(或記憶體管理電路202)會將所接收的第一資料寫入至空的實體程式化單元(以下稱為第一實體程式化單元)中。
在步驟S2005中,記憶體控制器104(或記憶體管理電路202)會判斷緩衝記憶體208中是否存有對應第一連續邏輯位址的邏輯位址映射表(以下稱為第一邏輯位址映射表)。
倘若緩衝記憶體208中未存有第一邏輯位址映射表時,在步驟S2007中,記憶體控制器104(或記憶體管理電路202)會將目前暫存於緩衝記憶體208中的邏輯位址映射表回存至可複寫式非揮發性記憶體模組106並且從可複寫式非揮發性記憶體模組106中將指派給第一邏輯區域的第一邏輯位址映射表載入至緩衝記憶體208中。
之後,在步驟S2009中,記憶體控制器104(或記憶體管理電路202)會在第一邏輯位址映射表中更新第一連續邏輯位址 的映射關係。
然後,在步驟S2011中,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300中新增一筆連續映射記錄(以下稱為第一連續映射記錄)以記錄第一連續邏輯位址的起始邏輯位址、第一實體程式化單元的起始實體程式化單元與第一連續邏輯位址的長度。
圖21是根據另一範例實施例所繪示之映射資訊記錄方法中執行連續寫入運作的流程圖,其中此連續寫入運作是接續前一個寫入指令所寫入的邏輯位址。
請參照圖21,在步驟S2101中,記憶體控制器104(或記憶體管理電路202)會從主機系統1000中接收欲儲存至連續邏輯位址(以下稱為第二連續邏輯位址)的資料(以下稱為第二資料),其中第二連續邏輯位址是接續上述第一連續邏輯位址。
在步驟S2103中,記憶體控制器104(或記憶體管理電路202)會將所接收的第二資料寫入至空的實體程式化單元(以下稱為第二實體程式化單元)中。
在步驟S2105中,記憶體控制器104(或記憶體管理電路202)會判斷緩衝記憶體208中是否存有對應第二連續邏輯位址的邏輯位址映射表。
倘若緩衝記憶體208中未存有對應第二連續邏輯位址的邏輯位址映射表時,在步驟S2107中,記憶體控制器104(或記憶體管理電路202)會將目前暫存於緩衝記憶體208中的邏輯位址映 射表(例如,第一邏輯位址映射表)回存至可複寫式非揮發性記憶體模組106並且從可複寫式非揮發性記憶體模組106中將對應第二連續邏輯位址的邏輯位址映射表(以下稱為第二邏輯位址映射表)載入至緩衝記憶體208中。
之後,在步驟S2109中,記憶體控制器104(或記憶體管理電路202)會在對應第二連續邏輯位址的邏輯位址映射表中更新第二連續邏輯位址的映射關係。
然後,在步驟S2111中,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300中更新對應第一連續邏輯位址的連續映射記錄(即,上述第一連續映射記錄)以將第一連續映射記錄的長度欄位更新為第一連續邏輯位址的長度與第二連續邏輯位址的長度的總和。
圖22是根據另一範例實施例所繪示之映射資訊記錄方法中執行寫入運作的流程圖,其中此寫入運作為更新先前所寫入之連續邏輯位址的其中一個邏輯位址的資料
在步驟S2201中,記憶體控制器104(或記憶體管理電路202)會從主機系統1000中接收欲更新至邏輯位址(以下稱為第一邏輯位址)的資料(以下稱為第三資料),其中第一邏輯位址是將先前所寫入之連續邏輯位址切割為兩個連續邏輯位址(以下稱為第三連續邏輯位址與第四連續邏輯位址),第一邏輯位址是接續第三連續邏輯位址且第四連續邏輯位址接續第一邏輯位址。
在步驟S2203中,記憶體控制器104(或記憶體管理電 路202)會將所接收的第三資料寫入至空的實體程式化單元(以下稱為第三實體程式化單元)中。
在步驟S2205中,記憶體控制器104(或記憶體管理電路202)會判斷緩衝記憶體208中是否存有對應第一邏輯位址的邏輯位址映射表。
倘若緩衝記憶體208中未存有對應第一邏輯位址的邏輯位址映射表時,在步驟S2207中,記憶體控制器104(或記憶體管理電路202)會將目前暫存於緩衝記憶體208中的邏輯位址映射表回存至可複寫式非揮發性記憶體模組106且從可複寫式非揮發性記憶體模組106中將對應第一邏輯位址的邏輯位址映射表載入至緩衝記憶體208中。
之後,在步驟S2209中,記憶體控制器104(或記憶體管理電路202)會在對應第一邏輯位址的邏輯位址映射表中更新第一邏輯位址的映射關係。
然後,在步驟S2211中,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300中更新對應被分割之連續邏輯位址的連續映射記錄(以下稱為第一連續映射記錄)以將第一連續映射記錄的長度欄位更新為第三連續邏輯位址的長度。並且,在步驟S2213中,記憶體控制器104(或記憶體管理電路202)會在連續映射表1300中新增一筆連續映射記錄(以下稱為第二連續映射記錄)以記錄第四連續邏輯位址的起始邏輯位址、第四連續邏輯位址的起始邏輯位址所映射的實體程式化單元與第四連續 邏輯位址的長度。
圖23是根據另一範例實施例所繪示之映射資訊記錄方法中執行讀取運作的流程圖。
請參照圖23,在步驟S2301中,記憶體控制器104(或記憶體管理電路202)會從主機系統1000中接收讀取指令。
之後,在步驟S2303中,記憶體控制器104(或記憶體管理電路202)會判斷連續映射表1300中是否存有此讀取指令所指示之邏輯位址的映射資訊。
倘若連續映射表1300中存有此讀取指令所指示之邏輯位址的映射資訊時,在步驟S2305中,記憶體控制器104(或記憶體管理電路202)會根據連續映射表1300中的資訊識別對應的實體程式化單元。
倘若連續映射表1300中未存有此讀取指令所指示之邏輯位址的映射資訊時,在步驟S2307中,記憶體控制器104(或記憶體管理電路202)會判斷緩衝記憶體208中是否對應此讀取指令所指示之邏輯位址的邏輯位址映射表。
倘若緩衝記憶體208未存有對應此讀取指令所指示之邏輯位址的邏輯位址映射表時,在步驟S2309中,記憶體控制器104(或記憶體管理電路202)會將目前暫存於緩衝記憶體208中的邏輯位址映射表回存至可複寫式非揮發性記憶體模組106且從可複寫式非揮發性記憶體模組106中載入指派給此讀取指令所指示之邏輯位址所屬的邏輯區域的邏輯位址映射表至緩衝記憶體208。
之後,在步驟S2311中,記憶體控制器104(或記憶體管理電路202)會根據在對應此讀取指令所指示之邏輯位址的邏輯位址映射表中的映射資訊識別對應的實體程式化單元。
並且,在步驟S2313中,記憶體控制器104(或記憶體管理電路202)會從對應的實體程式化單元中讀取資料並且將所讀取的資料傳送給主機系統1000。
綜上所述,本發明範例實施例的映射資訊記錄方法、記憶體控制器與記憶體儲存裝置能夠有效地利用有限的緩衝記憶體空間來儲存連續映射資訊,由此縮短執行讀取運作所需的時間,提升記憶體儲存裝置的效能。
S1901、S1903、S1905‧‧‧記錄映射資訊的步驟

Claims (24)

  1. 一種映射資訊記錄方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元並且每一所述實體抹除單元具有多個實體程式化單元,該映射資訊記錄方法包括:配置多個邏輯位址;建立至少一邏輯位址映射表並且將該至少一邏輯位址映射表儲存至該可複寫式非揮發性記憶體模組;從一主機系統中接收多筆第一資料,其中該主機系統指示將該些第一資料儲存至該些邏輯位址之中的多個第一連續邏輯位址中;將該些第一資料寫入至所述實體抹除單元的實體程式化單元之中的多個第一實體程式化單元中;將對應該些第一連續邏輯位址的一第一邏輯位址映射表載入至一緩衝記憶體,並且在該第一邏輯位址映射表中更新該些第一連續邏輯位址與該些第一實體程式化單元之間的映射關係;以及在該緩衝記憶體中存放一連續映射表並且在該連續映射表中記錄對應該些第一連續邏輯位址的一第一連續映射記錄,其中,該第一連續映射記錄具有該些第一連續邏輯位址的一起始邏輯位址以及該些第一連續邏輯位址的一長度。
  2. 如申請專利範圍第1項所述的映射資訊記錄方法,其中該第一連續映射記錄的一起始邏輯位址欄位記錄該些第一連續邏輯 位址的該起始邏輯位址,該第一連續映射記錄的一起始實體程式化單元欄位記錄該些第一實體程式化單元的一起始實體程式化單元並且該第一連續映射記錄的一長度欄位記錄該些第一連續邏輯位址的該長度。
  3. 如申請專利範圍第2項所述的映射資訊記錄方法,更包括:從該主機系統中接收多筆第二資料,其中該主機系統指示將該些第二資料儲存至該些邏輯位址之中的多個第二連續邏輯位址中,且該些第二連續邏輯位址接續該些第一連續邏輯位址;將該些第二資料寫入至所述實體抹除單元的實體程式化單元之中的多個第二實體程式化單元中,其中該些第二實體程式化單元是接續該些第一實體程式化單元;以及在該連續映射表中更新該第一連續映射記錄,其中該第一連續映射記錄的該長度欄位被更新為該些第一連續邏輯位址的長度與該些第二連續邏輯位址的長度的一總和。
  4. 如申請專利範圍第3項所述的映射資訊記錄方法,更包括:在該第一邏輯位址映射表中更新該些第二連續邏輯位址與該些第二實體程式化單元之間的映射關係。
  5. 如申請專利範圍第3項所述的映射資訊記錄方法,更包括:將該第一邏輯位址映射表回存至該可複寫式非揮發性記憶體模組;以及將對應該些第二連續邏輯位址的一第二邏輯位址映射表載入至該緩衝記憶體,並且在該第二邏輯位址映射表中更新該些第二 連續邏輯位址與該些第二實體程式化單元之間的映射關係。
  6. 如申請專利範圍第2項所述的映射資訊記錄方法,更包括:從該主機系統中接收一第三資料,其中該主機系統指示將該第三資料儲存至該些第一連續邏輯位址之中的一第一邏輯位址中,其中該第一邏輯位址接續於該些第一連續邏輯位址之中的多個第三連續邏輯位址並且該些第一連續邏輯位址之中的多個第四連續邏輯位址接續該第一邏輯位址;將該第三資料寫入至所述實體抹除單元的實體程式化單元之中的一第三實體程式化單元中;在該第一邏輯位址映射表中更新該第一邏輯位址與該第三實體程式化單元之間的映射關係;以及在該連續映射表中將該第一連續映射記錄的該長度欄位更新為該些第三連續邏輯位址的一長度,並且增加一第二連續映射記錄,其中該第二連續映射記錄的一起始邏輯位址欄位記錄該些第四連續邏輯位址的一起始邏輯位址,該第二連續映射記錄的一起始實體程式化單元欄位記錄映射接續該第一邏輯位址的一邏輯位址的一實體程式化單元,並且該第二連續映射記錄的一長度欄位記錄該些第四連續邏輯位址的一長度。
  7. 如申請專利範圍第1項所述的映射資訊記錄方法,更包括:從該主機系統中接收一讀取指令;判斷該連續映射表中是否存有對應該讀取指令指示的一邏輯位址的資訊;以及 倘若該連續映射表中存有對應該讀取指令指示的邏輯位址的資訊時,根據該連續映射表從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一讀取資料。
  8. 如申請專利範圍第7項所述的映射資訊記錄方法,更包括:倘若該連續映射表中未存有對應該讀取指令指示的邏輯位址的資訊時,從該可複寫式非揮發性記憶體模組中載入該些邏輯位址映射表之中的一對應邏輯位址映射表並且根據該對應邏輯位址映射表從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一讀取資料,其中該對應邏輯位址映射表為該讀取指令指示的邏輯位址所對應的邏輯位址映射表。
  9. 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元並且每一所述實體抹除單元具有多個實體程式化單元,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一緩衝記憶體;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面與該緩衝記憶體,其中該記憶體管理電路用以配置多個邏輯位址,其中該記憶體管理電路更用以建立至少一邏輯位址映射表並且將該至少一邏輯位址映射表儲存至該可複寫式非揮發性記憶體 模組,其中該記憶體管理電路更用以從該主機系統中接收多筆第一資料,其中該主機系統指示將該些第一資料儲存至該些邏輯位址之中的多個第一連續邏輯位址中,其中該記憶體管理電路更用以將該些第一資料寫入至所述實體抹除單元的實體程式化單元之中的多個第一實體程式化單元中,其中該記憶體管理電路更用以將對應該第一連續邏輯位址的一第一邏輯位址映射表載入至該緩衝記憶體,並且在該第一邏輯位址映射表中更新該些第一連續邏輯位址與該些第一實體程式化單元之間的映射關係,其中該記憶體管理電路更用以在該緩衝記憶體中存放一連續映射表並且在該連續映射表中記錄對應該些第一邏輯位址的一第一連續映射記錄,其中,該第一連續映射記錄具有該些第一連續邏輯位址的一起始邏輯位址以及該些第一連續邏輯位址的一長度。
  10. 如申請專利範圍第9項所述的記憶體控制器,其中該第一連續映射記錄的一起始邏輯位址欄位記錄該些第一連續邏輯位址的該起始邏輯位址,該第一連續映射記錄的一起始實體程式化單元欄位記錄該些第一實體程式化單元的一起始實體程式化單元並且該第一連續映射記錄的一長度欄位記錄該些第一連續邏輯位址的該長度。
  11. 如申請專利範圍第10項所述的記憶體控制器,其中該記憶體管理電路更用以從該主機系統中接收多筆第二資料,其中該主機系統指示將該些第二資料儲存至該些邏輯位址之中的多個第二連續邏輯位址中,且該些第二連續邏輯位址接續該些第一連續邏輯位址,其中該記憶體管理電路更用以將該些第二資料寫入至所述實體抹除單元的實體程式化單元之中的多個第二實體程式化單元中,其中該些第二實體程式化單元是接續該些第一實體程式化單元,其中該記憶體管理電路更用以在該連續映射表中更新該第一連續映射記錄,其中該第一連續映射記錄的該長度欄位被更新為該些第一連續邏輯位址的長度與該些第二連續邏輯位址的長度的一總和。
  12. 如申請專利範圍第11項所述的記憶體控制器,其中該記憶體管理電路更用以在該第一邏輯位址映射表中更新該些第二連續邏輯位址與該些第二實體程式化單元之間的映射關係。
  13. 如申請專利範圍第11項所述的記憶體控制器,其中該記憶體管理電路更用以將該第一邏輯位址映射表回存至該可複寫式非揮發性記憶體模組,其中該記憶體管理電路更用以將對應該些第二連續邏輯位址的一第二邏輯位址映射表載入至該緩衝記憶體,並且在該第二邏 輯位址映射表中更新該些第二連續邏輯位址與該些第二實體程式化單元之間的映射關係。
  14. 如申請專利範圍第10項所述的記憶體控制器,其中該記憶體管理電路更用以從該主機系統中接收一第三資料,其中該主機系統指示將該第三資料儲存至該些第一連續邏輯位址之中的一第一邏輯位址中,其中該第一邏輯位址接續於該些第一連續邏輯位址之中的多個第三連續邏輯位址並且該些第一連續邏輯位址之中的多個第四連續邏輯位址接續該第一邏輯位址,其中該記憶體管理電路更用以將該第三資料寫入至所述實體抹除單元的實體程式化單元之中的一第三實體程式化單元中,其中該記憶體管理電路更用以在該第一邏輯位址映射表中更新該第一邏輯位址與該第三實體程式化單元之間的映射關係,其中該記憶體管理電路更用以在該連續映射表中將該第一連續映射記錄的該長度欄位更新為該些第三連續邏輯位址的一長度,並且增加一第二連續映射記錄,其中該第二連續映射記錄的一起始邏輯位址欄位記錄該些第四連續邏輯位址的一起始邏輯位址,該第二連續映射記錄的一起始實體程式化單元欄位記錄映射接續該第一邏輯位址的一邏輯位址的一實體程式化單元,並且該第二連續映射記錄的一長度欄位記錄該些第四連續邏輯位址的一長度。
  15. 如申請專利範圍第9項所述的記憶體控制器,其中該記憶體管理電路更用以從該主機系統中接收一讀取指 令,並判斷該連續映射表中是否存有對應該讀取指令指示的一邏輯位址的資訊,其中倘若該連續映射表中存有對應該讀取指令指示的邏輯位址的資訊時,該記憶體管理電路更用以根據該連續映射表從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一讀取資料。
  16. 如申請專利範圍第15項所述的記憶體控制器,其中倘若該連續映射表中未存有對應該讀取指令指示的邏輯位址的資訊時,該記憶體管理電路更用以從該可複寫式非揮發性記憶體模組中載入該些邏輯位址映射表之中的一對應邏輯位址映射表並且根據該對應邏輯位址映射表從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一讀取資料,其中該對應邏輯位址映射表為該讀取指令指示的邏輯位址所對應的邏輯位址映射表。
  17. 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體抹除單元,其中每一所述實體抹除單元具有多個實體程式化單元;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,並具有一緩衝記憶體,其中該記憶體控制器用以配置多個邏輯位址,其中該記憶體控制器更用以建立至少一邏輯位址映射表並且 將至少一邏輯位址映射表儲存至該可複寫式非揮發性記憶體模組,其中該記憶體控制器更用以從該主機系統中接收多筆第一資料,其中該主機系統指示將該些第一資料儲存至該些邏輯位址之中的多個第一連續邏輯位址中,其中該記憶體控制器更用以將該些第一資料寫入至所述實體抹除單元的實體程式化單元之中的多個第一實體程式化單元中,其中該記憶體控制器更用以將對應該些第一連續邏輯位址的一第一邏輯位址映射表載入至該緩衝記憶體,並且在該第一邏輯位址映射表中更新該些第一連續邏輯位址與該些第一實體程式化單元之間的映射關係,其中該記憶體控制器更用以在該緩衝記憶體中存放一連續映射表並且在該連續映射表中記錄對應該些第一連續邏輯位址的一第一連續映射記錄,其中,該第一連續映射記錄具有該些第一連續邏輯位址的一起始邏輯位址以及該些第一連續邏輯位址的一長度。
  18. 如申請專利範圍第17項所述的記憶體儲存裝置,其中該第一連續映射記錄的一起始邏輯位址欄位記錄該些第一連續邏輯位址的該起始邏輯位址,該第一連續映射記錄的一起始實體程式化單元欄位記錄該些第一實體程式化單元的一起始實體程式化單元並且該第一連續映射記錄的一長度欄位記錄該些第一連續邏輯位址的該長度。
  19. 如申請專利範圍第18項所述的記憶體儲存裝置,其中該記憶體控制器更用以從該主機系統中接收多筆第二資料,其中該主機系統指示將該些第二資料儲存至該些邏輯位址之中的多個第二連續邏輯位址中,且該些第二連續邏輯位址接續該些第一連續邏輯位址,其中該記憶體控制器更用以將該些第二資料寫入至所述實體抹除單元的實體程式化單元之中的多個第二實體程式化單元中,其中該些第二實體程式化單元是接續該些第一實體程式化單元,其中該記憶體控制器更用以在該連續映射表中更新該第一連續映射記錄,其中該第一連續映射記錄的該長度欄位被更新為該些第一連續邏輯位址的長度與該些第二連續邏輯位址的長度的一總和。
  20. 如申請專利範圍第19項所述的記憶體儲存裝置,其中該記憶體控制器更用以在該第一邏輯位址映射表中更新該些第二連續邏輯位址與該些第二實體程式化單元之間的映射關係。
  21. 如申請專利範圍第19項所述的記憶體儲存裝置,其中該記憶體控制器更用以將該第一邏輯位址映射表回存至該可複寫式非揮發性記憶體模組,其中該記憶體控制器更用以將對應該些第二連續邏輯位址的一第二邏輯位址映射表載入至該緩衝記憶體,並且在該第二邏輯位址映射表中更新該些第二連續邏輯位址與該些第二實體程式化 單元之間的映射關係。
  22. 如申請專利範圍第18項所述的記憶體儲存裝置,其中該記憶體控制器更用以從該主機系統中接收一第三資料,其中該主機系統指示將該第三資料儲存至該些第一連續邏輯位址之中的一第一邏輯位址中,其中該第一邏輯位址接續於該些第一連續邏輯位址之中的多個第三連續邏輯位址並且該些第一連續邏輯位址之中的多個第四連續邏輯位址接續該第一邏輯位址,其中該記憶體控制器更用以將該第三資料寫入至所述實體抹除單元的實體程式化單元之中的一第三實體程式化單元中,其中該記憶體控制器更用以在該第一邏輯位址映射表中更新該第一邏輯位址與該第三實體程式化單元之間的映射關係,其中該記憶體控制器更用以在該連續映射表中將該第一連續映射記錄的該長度欄位更新為該些第三連續邏輯位址的一長度,並且增加一第二連續映射記錄,其中該第二連續映射記錄的一起始邏輯位址欄位記錄該些第四連續邏輯位址的一起始邏輯位址,該第二連續映射記錄的一起始實體程式化單元欄位記錄映射接續該第一邏輯位址的一邏輯位址的一實體程式化單元,並且該第二連續映射記錄的一長度欄位記錄該些第四連續邏輯位址的一長度。
  23. 如申請專利範圍第17項所述的記憶體儲存裝置,其中該記憶體控制器更用以從該主機系統中接收一讀取指令,並判斷該連續映射表中是否存有對應該讀取指令指示的一邏 輯位址的資訊,其中倘若該連續映射表中存有對應該讀取指令指示的邏輯位址的資訊時,該記憶體控制器更用以根據該連續映射表從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一讀取資料。
  24. 如申請專利範圍第23項所述的記憶體儲存裝置,其中倘若該連續映射表中未存有對應該讀取指令指示的邏輯位址的資訊時,該記憶體控制器更用以從該可複寫式非揮發性記憶體模組中載入該些邏輯位址映射表之中的一對應邏輯位址映射表並且根據該對應邏輯位址映射表從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一讀取資料,其中該對應邏輯位址映射表為該讀取指令指示的邏輯位址所對應的邏輯位址映射表。
TW102109836A 2013-03-20 2013-03-20 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 TWI506430B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW102109836A TWI506430B (zh) 2013-03-20 2013-03-20 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
US13/896,328 US9043536B2 (en) 2013-03-20 2013-05-17 Method of recording mapping information, and memory controller and memory storage apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102109836A TWI506430B (zh) 2013-03-20 2013-03-20 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201437807A TW201437807A (zh) 2014-10-01
TWI506430B true TWI506430B (zh) 2015-11-01

Family

ID=51570007

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102109836A TWI506430B (zh) 2013-03-20 2013-03-20 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9043536B2 (zh)
TW (1) TWI506430B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10001928B2 (en) 2016-11-07 2018-06-19 Phison Electronics Corp. Memory management method, memory control circuit unit and memory storage device
TWI785876B (zh) * 2021-10-28 2022-12-01 大陸商合肥兆芯電子有限公司 映射資訊記錄方法、記憶體控制電路單元與記憶體儲存裝置

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6155769B2 (ja) * 2013-03-29 2017-07-05 富士通株式会社 ストレージ制御装置、制御プログラム及び制御方法
US9939865B2 (en) * 2014-06-13 2018-04-10 Seagate Technology Llc Selective storage resource powering for data transfer management
US10282096B1 (en) * 2014-12-17 2019-05-07 Western Digital Technologies, Inc. Identification of data with predetermined data pattern
US10162561B2 (en) 2016-03-21 2018-12-25 Apple Inc. Managing backup of logical-to-physical translation information to control boot-time and write amplification
TWI579693B (zh) * 2016-04-29 2017-04-21 群聯電子股份有限公司 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置
KR102667430B1 (ko) * 2016-08-04 2024-05-23 삼성전자주식회사 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법
CN106681654B (zh) * 2016-09-29 2019-08-27 合肥兆芯电子有限公司 映射表载入方法与存储器存储装置
CN106681932B (zh) * 2016-11-14 2020-10-16 合肥兆芯电子有限公司 存储器管理方法、存储器控制电路单元及存储器存储装置
US10606760B2 (en) 2017-08-23 2020-03-31 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
KR102565895B1 (ko) * 2017-11-13 2023-08-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN108121667B (zh) * 2017-12-20 2021-06-15 北京兆易创新科技股份有限公司 数据擦除方法、装置及计算机存储介质
TWI658359B (zh) * 2017-12-27 2019-05-01 群聯電子股份有限公司 資料寫入方法、有效資料識別方法及記憶體儲存裝置
CN110297595B (zh) * 2018-03-21 2022-11-22 群联电子股份有限公司 主机存储器缓冲区配置方法、储存装置与控制电路单元
CN110442300B (zh) * 2018-05-03 2022-12-13 群联电子股份有限公司 整理指令记录方法、存储器控制电路单元与存储装置
KR20200022118A (ko) * 2018-08-22 2020-03-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN110955384B (zh) * 2018-09-26 2023-04-18 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN109683852B (zh) * 2018-12-24 2021-04-16 成都三零嘉微电子有限公司 一种真随机数发生器
TWI709854B (zh) * 2019-01-21 2020-11-11 慧榮科技股份有限公司 資料儲存裝置及用於存取邏輯至物理位址映射表之方法
TWI707234B (zh) * 2019-05-20 2020-10-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
TWI777087B (zh) * 2019-09-06 2022-09-11 群聯電子股份有限公司 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
CN112527184A (zh) * 2019-09-17 2021-03-19 群联电子股份有限公司 数据管理方法、存储器控制电路单元以及存储器存储装置
US10997080B1 (en) * 2020-02-11 2021-05-04 Western Digital Technologies, Inc. Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address
US11467751B2 (en) * 2020-03-13 2022-10-11 EMC IP Holding Company LLC Migation of data portions between different sized slices in the same of different performance tier
TWI791966B (zh) * 2020-03-27 2023-02-11 瑞昱半導體股份有限公司 記憶體控制器與資料處理方法
US11262938B2 (en) * 2020-05-05 2022-03-01 Silicon Motion, Inc. Method and apparatus for performing access management of a memory device with aid of dedicated bit information
CN116578246B (zh) * 2023-07-05 2023-09-29 合肥康芯威存储技术有限公司 一种存储设备及其控制方法
CN117370222A (zh) * 2023-12-08 2024-01-09 成都佰维存储科技有限公司 存储映射方法、装置、计算机可读存储介质及电子设备
CN118349186A (zh) * 2024-06-14 2024-07-16 合肥开梦科技有限责任公司 映射表更新方法与存储装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024896A1 (en) * 2007-07-16 2009-01-22 Li-Chih Tseng Method and Apparatus for Improving Hybrid Automatic Repeat Request Operation in a Wireless Communications System
US20090150597A1 (en) * 2007-12-07 2009-06-11 Phison Electronics Corp. Data writing method for flash memory and controller using the same
TW201118569A (en) * 2009-11-23 2011-06-01 Phison Electronics Corp Data storing method for a flash memory, and flash memory controller and flash memory storage system using the same
TW201305818A (zh) * 2011-07-21 2013-02-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804746B2 (en) * 2001-03-01 2004-10-12 Sony Corporation Method and system for optimizing data storage and retrieval by an audio/video file system using hierarchical file allocation table
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
JP4432088B2 (ja) * 2007-02-28 2010-03-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 一連の処理を所定の順序で行うための処理システム、ストレージ装置、及び方法
US9128699B2 (en) * 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US9582431B2 (en) * 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
JP5066241B2 (ja) * 2010-09-24 2012-11-07 株式会社東芝 メモリシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024896A1 (en) * 2007-07-16 2009-01-22 Li-Chih Tseng Method and Apparatus for Improving Hybrid Automatic Repeat Request Operation in a Wireless Communications System
US20090150597A1 (en) * 2007-12-07 2009-06-11 Phison Electronics Corp. Data writing method for flash memory and controller using the same
TW201118569A (en) * 2009-11-23 2011-06-01 Phison Electronics Corp Data storing method for a flash memory, and flash memory controller and flash memory storage system using the same
TW201305818A (zh) * 2011-07-21 2013-02-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10001928B2 (en) 2016-11-07 2018-06-19 Phison Electronics Corp. Memory management method, memory control circuit unit and memory storage device
TWI785876B (zh) * 2021-10-28 2022-12-01 大陸商合肥兆芯電子有限公司 映射資訊記錄方法、記憶體控制電路單元與記憶體儲存裝置
US11748026B2 (en) 2021-10-28 2023-09-05 Hefei Core Storage Electronic Limited Mapping information recording method, memory control circuit unit, and memory storage device

Also Published As

Publication number Publication date
TW201437807A (zh) 2014-10-01
US9043536B2 (en) 2015-05-26
US20140289451A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
TWI506430B (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
TWI526830B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI486767B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI516927B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI537728B (zh) 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
TWI470431B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8667234B2 (en) Data writing method, memory controller, and memory storage apparatus
US9304900B2 (en) Data reading method, memory controller, and memory storage device
US9177656B2 (en) Data writing method, memory storage device and memory controlling circuit unit
TWI454913B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9442834B2 (en) Data management method, memory controller and memory storage device
TWI525625B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8943289B2 (en) Data moving method for flash memory module, and memory controller and memory storage apparatus using the same
TWI509615B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI534814B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI517165B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TW201413450A (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI464585B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
US8738847B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
TWI428743B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置