TW201738751A - 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TW201738751A TW201738751A TW105113420A TW105113420A TW201738751A TW 201738751 A TW201738751 A TW 201738751A TW 105113420 A TW105113420 A TW 105113420A TW 105113420 A TW105113420 A TW 105113420A TW 201738751 A TW201738751 A TW 201738751A
- Authority
- TW
- Taiwan
- Prior art keywords
- mapping table
- logical address
- physical address
- sub
- address mapping
- Prior art date
Links
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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- 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
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本發明提出一種映射表載入方法、記憶體控制電路單元與記憶體儲存裝置。本方法包括:接收第一指令;當可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,載入對應第一指令的第一子邏輯位址-實體位址映射表;以及當可複寫式非揮發性記憶體模組的操作模式為第二操作模式時,載入對應第一指令的第一邏輯位址-實體位址映射表,其中第一邏輯位址-實體位址映射表包括第一子邏輯位址-實體位址映射表。
Description
本發明是有關於一種映射表載入方法、記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體模組作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,可複寫式非揮發性記憶體模組通常包括多個實體抹除單元,並且每一個實體抹除單元會包括多個實體程式化單元。記憶體儲存裝置中的記憶體管理電路會配置邏輯位址以映射實體抹除單元,其中每一邏輯位址具有多個邏輯單元以映射對應的實體抹除單元的實體程式化單元。
為了識別每個邏輯位址的資料被儲存在哪個實體抹除單元,記憶體管理電路會記錄邏輯位址與實體抹除單元之間的映射。具體來說,記憶體管理電路會在可複寫式非揮發性記憶體模組中儲存多個邏輯位址-實體位址映射表來記錄每一邏輯位址所映射的實體抹除單元。當欲存取資料時,記憶體管理電路會載入對應的邏輯位址-實體位址映射表,並且依據邏輯位址-實體位址映射表來寫入或讀取資料。
需注意的是,記憶體管理電路通常是以固定大小的邏輯位址-實體位址映射表來進行管理。例如,當欲存取資料時,記憶體管理電路載入固定大小的邏輯位址-實體位址映射表至緩衝記記憶體,並且依據邏輯位址-實體位址映射表來寫入或讀取資料。
特別是,在記憶體管理電路執行隨機讀取(random read)操作的情況下,通常只會使用所載入的邏輯位址-實體位址映射表的部分資訊。當記憶體管理電路重複地執行隨機讀取操作時,記憶體管理電路會多次地載入不同的邏輯位址-實體位址映射表,並且每一邏輯位址-實體位址映射表僅會使用到部分資訊,此情形會造成邏輯位址-實體位址映射表的使用效率低落。此外,當邏輯位址-實體位址映射表較大時,反覆地載入不同的邏輯位址-實體位址映射表還會浪費記憶體儲存裝置的頻寬,進而造成記憶體儲存裝置的效能惡化。
本發明提供一種映射表載入方法、記憶體控制電路單元與記憶體儲存裝置,可有效地提高記憶體儲存裝置的使用效率與效能。
本發明提出一種映射表載入方法,用於可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組儲存多個邏輯位址-實體位址映射表且每一邏輯位址-實體位址映射表具有多個子邏輯位址-實體位址映射表,此映射表載入包括:接收第一指令,其中第一指令對應於儲存在第一邏輯位址的資料;當對應可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,從可複寫式非揮發性記憶體模組載入子邏輯位址-實體位址映射表之中第一子邏輯位址-實體位址映射表至緩衝記憶體中,其中第一子邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊;以及當對應可複寫式非揮發性記憶體模組的操作模式為第二操作模式時,從可複寫式非揮發性記憶體模組載入邏輯位址-實體位址映射表之中的第一邏輯位址-實體位址映射表至緩衝記憶體中,其中第一邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊,其中第一邏輯位址-實體位址映射表包含第一子邏輯位址-實體位址映射表。
在本發明的一範例實施例中,其中於接收第一指令的步驟之前,更包括:根據第二子邏輯位址-實體位址映射表執行第二指令;當第二子邏輯位址-實體位址映射表不同於第一子邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第一操作模式;以及當第二子邏輯位址-實體位址映射表相同於第一子邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第二操作模式。
在本發明的一範例實施例中,當第二子邏輯位址-實體位址映射表不同於第一子邏輯位址-實體位址映射表時,更包括:當第一邏輯位址-實體位址映射表包含第二子邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第二模式。
在本發明的一範例實施例中,於接收第一指令的步驟之前,更包括:根據第二邏輯位址-實體位址映射表執行第三指令;當第二邏輯位址-實體位址映射表不同於第一邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第一操作模式。
在本發明的一範例實施例中,其中當可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,更包括:根據第一子邏輯位址-實體位址映射表執行第一指令;抹除第一子邏輯位址-實體位址映射表;以及於管理表中記錄第一子邏輯位址-實體位址映射表之使用歷程。
在本發明的一範例實施例中,其中可複寫式非揮發性記憶體模組於每次上電後的操作模式是預設為第一操作模式。
在本發明的一範例實施例中,其中第一操作模式包含隨機讀取操作模式、隨機寫入操作模式或垃圾蒐集(garbage collection)程序中選擇回收區塊的操作模式。
在本發明的一範例實施例中,其中第二操作模式包含連續讀取操作模式、連續寫入操作模式、垃圾蒐集(garbage collection)程序中對目的區塊進行寫入的操作模式或清倉(flush)操作模式。
本發明一範例實施例提供一種用於控制可複寫式非揮發性記憶體模組的記憶體控制電路單元。此記憶體控制電路單元包括:用以耦接至主機系統的主機介面;用以耦接至可複寫式非揮發性記憶體模組的記憶體介面,其中可複寫式非揮發性記憶體模組儲存多個邏輯位址-實體位址映射表且每一邏輯位址-實體位址映射表具有多個子邏輯位址-實體位址映射表;緩衝記憶體以及耦接至主機介面、記憶體介面與緩衝記憶體的記憶體管理電路。記憶體管理電路用以接收第一指令,其中第一指令對應於儲存在第一邏輯位址的資料;當對應可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,從可複寫式非揮發性記憶體模組載入子邏輯位址-實體位址映射表之中第一子邏輯位址-實體位址映射表至緩衝記憶體中,其中第一子邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊;以及當對應可複寫式非揮發性記憶體模組的操作模式為第二操作模式時,從可複寫式非揮發性記憶體模組載入邏輯位址-實體位址映射表之中的第一邏輯位址-實體位址映射表至緩衝記憶體中,其中第一邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊,其中第一邏輯位址-實體位址映射表包含第一子邏輯位址-實體位址映射表。
在本發明的一範例實施例中,其中於接收第一指令的運作之前,記憶體管理電路更用以:根據第二子邏輯位址-實體位址映射表執行第二指令;當第二子邏輯位址-實體位址映射表不同於第一子邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第一操作模式;以及當第二子邏輯位址-實體位址映射表相同於第一子邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第二操作模式。
在本發明的一範例實施例中,當第二子邏輯位址-實體位址映射表不同於第一子邏輯位址-實體位址映射表時且當第一邏輯位址-實體位址映射表包含第二子邏輯位址-實體位址映射表時,記憶體管理電路更用以判斷可複寫式非揮發性記憶體模組的操作模式為第二模式。
在本發明的一範例實施例中,於接收第一指令的運作之前,記憶體管理電路更用以:根據第二邏輯位址-實體位址映射表執行第三指令;當第二邏輯位址-實體位址映射表不同於第一邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第一操作模式。
在本發明的一範例實施例中,其中當可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,記憶體管理電路更用以:根據第一子邏輯位址-實體位址映射表執行第一指令;抹除第一子邏輯位址-實體位址映射表;以及於管理表中記錄第一子邏輯位址-實體位址映射表之使用歷程。
在本發明的一範例實施例中,其中可複寫式非揮發性記憶體模組於每次上電後的操作模式是預設為第一操作模式。
在本發明的一範例實施例中,其中第一操作模式包含隨機讀取操作模式、隨機寫入操作模式或垃圾蒐集(garbage collection)程序中選擇回收區塊的操作模式。
在本發明的一範例實施例中,其中第二操作模式包含連續讀取操作模式、連續寫入操作模式、垃圾蒐集(garbage collection)程序中對目的區塊進行寫入的操作模式或清倉(flush)操作模式。
本發明一範例實施例提供一種記憶體儲存裝置。其包括:用以耦接至主機系統的連接介面單元、可複寫式非揮發性記憶體模組以及耦接至連接介面單元與可複寫式非揮發性記憶體模組的記憶體控制電路單元。其中記憶體控制電路單元包括緩衝記憶體,且可複寫式非揮發性記憶體儲存多個邏輯位址-實體位址映射表且每一邏輯位址-實體位址映射表具有多個子邏輯位址-實體位址映射表。記憶體控制電路單元用以接收第一指令,其中第一指令對應於儲存在第一邏輯位址的資料;當對應可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,從可複寫式非揮發性記憶體模組載入子邏輯位址-實體位址映射表之中第一子邏輯位址-實體位址映射表至緩衝記憶體中,其中第一子邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊;以及當對應可複寫式非揮發性記憶體模組的操作模式為第二操作模式時,從可複寫式非揮發性記憶體模組載入邏輯位址-實體位址映射表之中的第一邏輯位址-實體位址映射表至緩衝記憶體中,其中第一邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊,其中第一邏輯位址-實體位址映射表包含第一子邏輯位址-實體位址映射表。
在本發明的一範例實施例中,其中於接收第一指令的運作之前,記憶體控制電路單元更用以:根據第二子邏輯位址-實體位址映射表執行第二指令;當第二子邏輯位址-實體位址映射表不同於第一子邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第一操作模式;以及當第二子邏輯位址-實體位址映射表相同於第一子邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第二操作模式。
在本發明的一範例實施例中,當第二子邏輯位址-實體位址映射表不同於第一子邏輯位址-實體位址映射表時且當第一邏輯位址-實體位址映射表包含第二子邏輯位址-實體位址映射表時,記憶體控制電路單元更用以判斷可複寫式非揮發性記憶體模組的操作模式為第二模式。
在本發明的一範例實施例中,於接收第一指令的運作之前,記憶體控制電路單元更用以:根據第二邏輯位址-實體位址映射表執行第三指令;當第二邏輯位址-實體位址映射表不同於第一邏輯位址-實體位址映射表時,判斷可複寫式非揮發性記憶體模組的操作模式為第一操作模式。
在本發明的一範例實施例中,其中當可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,記憶體控制電路單元更用以:根據第一子邏輯位址-實體位址映射表執行第一指令;抹除第一子邏輯位址-實體位址映射表;以及於管理表中記錄第一子邏輯位址-實體位址映射表之使用歷程。
在本發明的一範例實施例中,其中可複寫式非揮發性記憶體模組於每次上電後的操作模式是預設為第一操作模式。
在本發明的一範例實施例中,其中第一操作模式包含隨機讀取操作模式、隨機寫入操作模式或垃圾蒐集(garbage collection)程序中選擇回收區塊的操作模式。
在本發明的一範例實施例中,其中第二操作模式包含連續讀取操作模式、連續寫入操作模式、垃圾蒐集(garbage collection)程序中對目的區塊進行寫入的操作模式或清倉(flush)操作模式。
基於上述,本發明藉由載入不同大小的邏輯位址-實體位址映射表,藉以避免主機系統執行隨機讀取操作時反覆地載入較大的邏輯位址-實體位址映射表而造成記憶體儲存裝置的頻寬的浪費,並可以有效地提高記憶體儲存裝置的使用效率與效能。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖,並且圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114是可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication Storage, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(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)標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、安全數位(Secure Digital, SD)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、嵌入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元410(0)~ 410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組406為複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6,記憶體控制電路單元404(或記憶體管理電路502)會將實體抹除單元410(0)~410(N)邏輯地分組為資料區602、閒置區604、系統區606與取代區608。
邏輯上屬於資料區602與閒置區604的實體抹除單元是用以儲存來自於主機系統11的資料。具體來說,資料區602的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區604的實體抹除單元是用以替換資料區602的實體抹除單元。也就是說,當從主機系統11接收到寫入指令與欲寫入之資料時,記憶體管理電路502會使用從閒置區604中提取實體抹除單元來寫入資料,以替換資料區602的實體抹除單元。
邏輯上屬於系統區606的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區608中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區608中仍存有正常之實體抹除單元並且資料區602的實體抹除單元損壞時,記憶體管理電路502會從取代區608中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區602、閒置區604、系統區606與取代區608之實體抹除單元的數量會根據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至資料區602、閒置區604、系統區606與取代區608的分組關係會動態地變動。例如,當閒置區604中的實體抹除單元損壞而被取代區608的實體抹除單元取代時,則原本取代區608的實體抹除單元會被關聯至閒置區604。
請參照圖7,記憶體控制電路單元404(或記憶體管理電路502)會配置邏輯位址LBA(0)~LBA(H)以映射資料區602的實體抹除單元,其中每一邏輯位址具有多個邏輯單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統11欲寫入資料至邏輯位址或更新儲存於邏輯位址中的資料時,記憶體控制電路單元404(或記憶體管理電路502)會從閒置區604中提取一個實體抹除單元作為作動實體抹除單元來寫入資料,以輪替資料區602的實體抹除單元。並且,當此作為作動實體抹除單元的實體抹除單元被寫滿時,記憶體控制電路單元404(或記憶體管理電路502)會再從閒置區504中提取空的實體抹除單元作為作動實體抹除單元,以繼續寫入對應來自於主機系統11之寫入指令的更新資料。此外,當閒置區604中可用的實體抹除單元的數目小於預設值時,記憶體控制電路單元404(或記憶體管理電路502)會執行有效資料合併程序(亦稱為,垃圾蒐集(garbage collecting)程序)來整理資料區602中的有效資料,以將資料區602中無儲存有效資料的實體抹除單元重新關聯至閒置區604。
為了識別每個邏輯位址的資料被儲存在哪個實體抹除單元,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會記錄邏輯位址與實體抹除單元之間的映射。例如,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會在可複寫式非揮發性記憶體模組406中儲存邏輯位址-實體位址映射表來記錄每一邏輯位址所映射的實體抹除單元。當欲存取資料時記憶體控制電路單元404(或記憶體管理電路502)會將邏輯位址-實體位址映射表載入至緩衝記憶體508來維護,並且依據邏輯位址-實體位址映射表來寫入或讀取資料。
值得一提的是,由於緩衝記憶體508的容量有限無法儲存記錄所有邏輯位址之映射關係的映射表,因此,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會將邏輯位址LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯位址-實體位址映射表。特別是,當記憶體控制電路單元404(或記憶體管理電路502)欲更新某個邏輯位址的映射時,對應此邏輯位址所屬之邏輯區域的邏輯位址-實體位址映射表會被載入至緩衝記憶體508來被更新。
在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
請再參照圖5,主機介面504是耦接至記憶體管理電路502並且用以耦接至連接介面單元402,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準 、UHS-II介面標準、SD標準 、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的暫存資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。例如,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會根據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
值得一提的是,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會將邏輯位址LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯位址-實體位址映射表。特別是,記憶體控制電路單元404(或記憶體管理電路502)還會將一個邏輯位址-實體位址映射表分割為多個子邏輯位址-實體位址映射表。
圖8A與圖8B是根據一範例實施例所繪示之邏輯位址-實體位址映射表與其對應的多個子邏輯位址-實體位址映射表的範例示意圖。
請參照圖8A,以對應於邏輯區域LZ(0)的邏輯位址-實體位址映射表810為例,邏輯位址-實體位址映射表810中儲存了每一個邏輯位址LBA(0)~LBA(Z)與多個實體位址之間的映射資訊。其中,記憶體控制電路單元404(或記憶體管理電路502)還會將邏輯位址-實體位址映射表810劃分成多個子邏輯位址-實體位址映射表810a~810n。
此外,請參照圖8B,以對應於邏輯區域LZ(1)的邏輯位址-實體位址映射表820為例,邏輯位址-實體位址映射表820中儲存了每一個邏輯位址LBA(Z+1)~LBA(P)與多個實體位址之間的映射資訊。其中,記憶體控制電路單元404(或記憶體管理電路502)還會將邏輯位址-實體位址映射表810劃分成多個子邏輯位址-實體位址映射表820a~820n。在圖8A與圖8B的範例實施例中,每一個子邏輯位址-實體位址映射表分別具有11筆邏輯位址與實體位址的映射資訊。然而需注意的是,本發明並不用於限定每一個子邏輯位址-實體位址映射表可以儲存的映射資訊的個數。此外,在其他範例實施例中,同一個邏輯位址-實體位址映射表中的一個子邏輯位址-實體位址映射表的大小可以不同於位於同一個邏輯位址-實體位址映射表中的另一子邏輯位址-實體位址映射表的大小。也就是說,一個子邏輯位址-實體位址映射表的大小是小於一個邏輯位址-實體位址映射表的大小,但子邏輯位址-實體位址映射表的大小可以不同。
此外,當記憶體控制電路單元404(或記憶體管理電路502)需要某個邏輯位址的映射資訊時,記憶體控制電路單元404(或記憶體管理電路502)可以根據可複寫式非揮發性記憶體模組406目前的操作模式,選擇地載入對應此邏輯位址所屬的子邏輯位址-實體位址映射表至緩衝記憶體508,或者載入對應此邏輯位址所屬的邏輯區域的邏輯位址-實體位址映射表至緩衝記憶體508來進行讀取。例如,當可複寫式非揮發性記憶體模組406目前的操作模式為第一操作模式時,記憶體控制電路單元404(或記憶體管理電路502)會載入對應此邏輯位址所屬的子邏輯位址-實體位址映射表至緩衝記憶體508。當可複寫式非揮發性記憶體模組406目前的操作模式為第二操作模式時,記憶體控制電路單元404(或記憶體管理電路502)會載入對應此邏輯位址所屬的邏輯區域的邏輯位址-實體位址映射表至緩衝記憶體508。需注意的是,在本發明的一範例實施例中,可複寫式非揮發性記憶體模組406於每次上電後的操作模式是預設為第一操作模式。
[第一範例實施例]
圖9A~圖9B是根據第一範例所繪示之記憶體讀取方法的示意圖。在此須說明的是,在本發明的範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會在緩衝記憶體中508建立一管理表(未繪示)。其中,管理表用於記錄某一子邏輯位址-實體位址映射表被載入至緩衝記憶體並被記憶體控制電路單元404(或記憶體管理電路502)所使用的次數(以下稱為,使用次數)。簡言之,管理表用於記錄某一子邏輯位址-實體位址映射表的使用歷程。
請參照圖9A,在圖9A的範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會將緩衝記憶體508劃分為第一映射表暫存區508a以及第二映射表暫存區508b,其中第一映射表暫存區508a用於暫存從可複寫式非揮發性記憶體模組406所載入的邏輯位址-實體位址映射表,而第二映射表暫存區508b用於暫存從可複寫式非揮發性記憶體模組406所載入的子邏輯位址-實體位址映射表。
假設主機系統11下達一讀取指令(以下參考為,第二指令)以指示讀取儲存在邏輯位址LBA(0)中的資料。記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收第二指令後,記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。例如,記憶體控制電路單元404(或記憶體管理電路502)會根據管理表判斷是否曾使用過具有邏輯位址LBA(0)的映射資訊的子邏輯位址-實體位址映射表,來判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。
由於目前可複寫式非揮發性記憶體模組406處於剛上電的狀態,且管理表中也沒有存有關於邏輯位址LBA(0)的子邏輯位址-實體位址映射表的使用歷程,故記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式。記憶體控制電路單元404(或記憶體管理電路502)會從可複寫式非揮發性記憶體模組406載入對應於第二指令的子邏輯位址-實體位址映射表810a(以下參考為,第二子邏輯位址-實體位址映射表)至緩衝記憶體508的第二映射表暫存區508b中。其中,子邏輯位址-實體位址映射表810a記錄有對應邏輯位址LBA(0)的映射資訊。特別是,在本範例中,子邏輯位址-實體位址映射表810a僅包括例如邏輯位址LBA(0)~LBA(10)的映射資訊。然而,在本發明的另一範例實施例中,子邏輯位址-實體位址映射表810a的大小可以是512Bytes或其他的大小,本發明並不對子邏輯位址-實體位址映射表810a的大小做限制。
之後,記憶體控制電路單元404(或記憶體管理電路502)可以根據子邏輯位址-實體位址映射表810a執行第二指令。具體來說,記憶體控制電路單元404(或記憶體管理電路502)可以使用載入至緩衝記憶體508的子邏輯位址-實體位址映射表810a,從映射邏輯位址LBA(0)的實體程式化單元中讀取資料。如圖9A所示,由於第二指令是用以讀取位於邏輯位址LBA(0)中的資料,記憶體控制電路單元404(或記憶體管理電路502)會根據子邏輯位址-實體位址映射表810a判斷邏輯位址LBA(0)是映射至實體抹除單元410(2)。記憶體控制電路單元404(或記憶體管理電路502)會根據第二指令讀取實體抹除單元410(2)中對應的實體程式化單元的資料。需注意的是,上述第二指令是以讀取指令為範例,然而本發明並不對第二指令的指令類型作限制。
此外,在發明的範例實施例中,暫存於緩衝記憶體508的第二映射表暫存區508b的子邏輯位址-實體位址映射表810a只會被使用一次。也就是說,當記憶體控制電路單元404(或記憶體管理電路502) 載入子邏輯位址-實體位址映射表810a並根據子邏輯位址-實體位址映射表810a讀取對應第二指令的資料後,記憶體控制電路單元404(或記憶體管理電路502)會抹除暫存於緩衝記憶體508的子邏輯位址-實體位址映射表810a。
特別是,在記憶體控制電路單元404(或記憶體管理電路502) 根據子邏輯位址-實體位址映射表810a執行第二指令後,記憶體控制電路單元404(或記憶體管理電路502)還會更新管理表中對應子邏輯位址-實體位址映射表810a的使用歷程。例如,記憶體控制電路單元404(或記憶體管理電路502)會在管理表中新增一個欄位,用以記錄子邏輯位址-實體位址映射表810a包括邏輯位址LBA(0)~LBA(10),並且將子邏輯位址-實體位址映射表810a的使用次數記錄為1。
假設圖9B是接續圖9A。之後,請參照圖9B,假設之後主機系統11下達第一指令,其中此第一指令對應於儲存在邏輯位址LBA(Z+1) (以下參考為,第一邏輯位址)的資料。假設第一指令為指示讀取儲存在邏輯位址LBA(Z+1)中的資料的讀取指令。記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收第一指令後,記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。記憶體控制電路單元404(或記憶體管理電路502)會根據管理表判斷是否曾使用過具有邏輯位址LBA(Z+1)的映射資訊的子邏輯位址-實體位址映射表820a(以下參考為,第一子邏輯位址-實體位址映射表),來判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。
由於管理表中目前只儲存子邏輯位址-實體位址映射表810a的使用歷程,而子邏輯位址-實體位址映射表810a並不同於對應於邏輯位址LBA(Z+1)的子邏輯位址-實體位址映射表820a,故記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式。當對應可複寫式非揮發性記憶體模組406的操作模式為第一操作模式時,記憶體控制電路單元404(或記憶體管理電路502)會從可複寫式非揮發性記憶體模組406載入對應於第一指令的子邏輯位址-實體位址映射表820a至緩衝記憶體508的第二映射表暫存區508b中。其中,子邏輯位址-實體位址映射表820a記錄有對應邏輯位址LBA(Z+1)的映射資訊。在本範例中,子邏輯位址-實體位址映射表820a僅包括例如邏輯位址LBA(Z+1)~LBA(Z+11)的映射資訊。然而,在本發明的另一範例實施例中,子邏輯位址-實體位址映射表810a的大小可以是512Bytes或其他的大小,本發明並不對子邏輯位址-實體位址映射表810a的大小做限制。
之後,記憶體控制電路單元404(或記憶體管理電路502)可以使用載入至緩衝記憶體508的子邏輯位址-實體位址映射表820a,從映射邏輯位址LBA(Z+1)的實體程式化單元中讀取資料。具體來說,如圖9B所示,由於第一指令是用以讀取位於邏輯位址LBA(Z+1)中的資料,記憶體控制電路單元404(或記憶體管理電路502)會根據子邏輯位址-實體位址映射表820a判斷邏輯位址LBA(Z+1)是映射至實體抹除單元410(X)。記憶體控制電路單元404(或記憶體管理電路502)會根據第一指令讀取實體抹除單元410(X)中對應的實體程式化單元的資料。
當記憶體控制電路單元404(或記憶體管理電路502) 載入子邏輯位址-實體位址映射表820a並根據子邏輯位址-實體位址映射表820a讀取對應第一指令的資料後,記憶體控制電路單元404(或記憶體管理電路502)會抹除暫存於緩衝記憶體508的子邏輯位址-實體位址映射表820a。
此外,在記憶體控制電路單元404(或記憶體管理電路502) 根據子邏輯位址-實體位址映射表820a執行第一指令後,記憶體控制電路單元404(或記憶體管理電路502)還會更新管理表中對應子邏輯位址-實體位址映射表820a的使用次數。例如,記憶體控制電路單元404(或記憶體管理電路502)會在管理表中新增一個欄位,用以記錄子邏輯位址-實體位址映射表820a包括邏輯位址LBA(Z+1)~LBA(Z+11),並且將子邏輯位址-實體位址映射表820a的使用次數記錄為1。
基於上述,在本發明的第一範例實施例中,由於記憶體控制電路單元404(或記憶體管理電路502)在載入子邏輯位址-實體位址映射表820a之前根據管理表判斷記憶體控制電路單元404(或記憶體管理電路502)未曾使用過具有邏輯位址LBA(Z+1)的映射資訊的子邏輯位址-實體位址映射表820a,記憶體控制電路單元404(或記憶體管理電路502)可以合理地判斷子邏輯位址-實體位址映射表820a所對應的邏輯位址-實體位址映射表820中的映射資訊可能較不常被使用,故可以使用第一模式載入容量較小的子邏輯位址-實體位址映射表820a,藉以避免主機系統11執行隨機讀取操作時反覆地載入較大的邏輯位址-實體位址映射表而造成記憶體儲存裝置的頻寬的浪費。
[第二範例實施例]
圖10A~圖10B是根據第二範例所繪示之記憶體讀取方法的示意圖。其中圖10A的範例實施例如上述圖9A中可複寫式非揮發性記憶體模組406在上電後根據第二指令載入子邏輯位址-實體位址映射表810a,並且在管理表中紀錄對應於子邏輯位址-實體位址映射表810a的使用歷程的流程,故在此並不贅述。假設在圖10A後,請參照圖10B,當主機系統11下達的第一指令是對應於儲存在邏輯位址LBA(1) (以下亦參考為,第一邏輯位址)的資料,而第一指令為指示讀取儲存在邏輯位址LBA(1)中的資料的讀取指令。記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收第一指令後,記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。其中,記憶體控制電路單元404(或記憶體管理電路502)會根據管理表判斷是否曾使用過具有邏輯位址LBA(1)的映射資訊的子邏輯位址-實體位址映射表810a(以下亦參考為,第一子邏輯位址-實體位址映射表),來判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。
由於管理表中目前有儲存子邏輯位址-實體位址映射表810a的使用歷程,而子邏輯位址-實體位址映射表810a是相同於對應於邏輯位址LBA(1)的子邏輯位址-實體位址映射表810a,故記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第二操作模式。當對應可複寫式非揮發性記憶體模組406的操作模式為第二操作模式時,記憶體控制電路單元404(或記憶體管理電路502)會從可複寫式非揮發性記憶體模組406載入對應於第一指令的邏輯位址-實體位址映射表810至緩衝記憶體508的第一映射表暫存區508a中。特別是,邏輯位址-實體位址映射表810包括例如邏輯位址LBA(0)~LBA(Z)(即,邏輯區域LZ(0))的映射資訊。也就是說,邏輯位址-實體位址映射表810包含子邏輯位址-實體位址映射表810a的映射資訊,子邏輯位址-實體位址映射表810a是邏輯位址-實體位址映射表810的子集合。需注意的是,在本發明的一範例實施例中,邏輯位址-實體位址映射表810的大小可以是16KBytes或其他的大小,本發明並不對邏輯位址-實體位址映射表810的大小做限制。
之後,記憶體控制電路單元404(或記憶體管理電路502)可以使用載入至緩衝記憶體508的邏輯位址-實體位址映射表810,從映射邏輯位址LBA(1)的實體程式化單元中讀取資料。具體來說,由於第一指令是用以讀取位於邏輯位址LBA(1)中的資料,記憶體控制電路單元404(或記憶體管理電路502)會根據邏輯位址-實體位址映射表810判斷邏輯位址LBA(1)是映射至實體抹除單元410(1)。記憶體控制電路單元404(或記憶體管理電路502)會根據第一讀取指令讀取實體抹除單元410(1)中對應的實體程式化單元中的資料。
基於上述,在本發明的第二範例實施例中,由於記憶體控制電路單元404(或記憶體管理電路502)根據管理表判斷記憶體控制電路單元404(或記憶體管理電路502)曾經使用過具有邏輯位址LBA(1)的映射資訊的子邏輯位址-實體位址映射表810a,記憶體控制電路單元404(或記憶體管理電路502)可以合理地判斷子邏輯位址-實體位址映射表810a所對應的邏輯位址-實體位址映射表810中的映射資訊未來很有機會再次被使用,故會使用第二操作模式載入容量較大的邏輯位址-實體位址映射表810,以利於之後對於邏輯位址-實體位址映射表810中的映射資訊的存取。
[第三範例實施例]
圖11A~圖11B是根據第三範例所繪示之記憶體讀取方法的示意圖。其中圖11A的範例實施例如上述圖9A中根據第二指令載入子邏輯位址-實體位址映射表810a並且在管理表中紀錄對應於子邏輯位址-實體位址映射表810a的使用歷程的流程,故在此並不贅述。假設在圖11A的範例實施例後,主機系統11下達的第一指令是對應於儲存在邏輯位址LBA(Z) (以下亦參考為,第一邏輯位址)的資料,而第一指令為指示讀取儲存在邏輯位址LBA(Z)中的資料的讀取指令。記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收第一指令後,記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。記憶體控制電路單元404(或記憶體管理電路502)會根據管理表判斷是否曾使用過具有邏輯位址LBA(Z)的映射資訊的子邏輯位址-實體位址映射表810n(以下亦參考為,第一子邏輯位址-實體位址映射表),來判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。
由於管理表中目前只有儲存子邏輯位址-實體位址映射表810a的使用歷程,而子邏輯位址-實體位址映射表810a是不同於對應於邏輯位址LBA(Z)的子邏輯位址-實體位址映射表810n,故記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式。然而需注意的是,此時記憶體控制電路單元404(或記憶體管理電路502)會判斷子邏輯位址-實體位址映射表810a所對應的邏輯區域LZ(0)的邏輯位址-實體位址映射表810(以下亦參考為,第一邏輯位址-實體位址映射表)中包含對應於邏輯位址LBA(Z)的子邏輯位址-實體位址映射表810n,故此時記憶體控制電路單元404(或記憶體管理電路502)會改為判斷目前可複寫式非揮發性記憶體模組406的操作模式為第二操作模式。
當對應可複寫式非揮發性記憶體模組406的操作模式為第二操作模式,記憶體控制電路單元404(或記憶體管理電路502)會從可複寫式非揮發性記憶體模組406載入對應於第一指令的邏輯位址-實體位址映射表810至緩衝記憶體508的第一映射表暫存區508a中。特別是,邏輯位址-實體位址映射表810包括例如邏輯位址LBA(0)~LBA(Z)(即,邏輯區域LZ(0))的映射資訊。也就是說,邏輯位址-實體位址映射表810包含子邏輯位址-實體位址映射表810n的映射資訊,子邏輯位址-實體位址映射表810n是邏輯位址-實體位址映射表810的子集合。需注意的是,在本發明的一範例實施例中,邏輯位址-實體位址映射表810的大小可以是16KBytes或其他的大小,本發明並不對邏輯位址-實體位址映射表810的大小做限制。
基於上述,在本發明的第三範例實施例中,由於記憶體控制電路單元404(或記憶體管理電路502)會判斷第一指令所對應的邏輯位址LBA(Z)是與子邏輯位址-實體位址映射表810a所對應的邏輯位址LBA(0)~LBA(10)屬於同一個邏輯區域LZ(0),記憶體控制電路單元404(或記憶體管理電路502)可以合理地判斷對應邏輯區域LZ(0)的邏輯位址-實體位址映射表810中的映射資訊未來很有機會再次被使用,故會使用第二操作模式載入容量較大的邏輯位址-實體位址映射表810,以利於之後對於邏輯位址-實體位址映射表810中的映射資訊的存取。
[第四範例實施例]
圖12A~圖12B是根據第四範例所繪示之記憶體讀取方法的示意圖。請參照圖12A,假設記憶體控制電路單元404(或記憶體管理電路502)從可複寫式非揮發性記憶體模組406載入邏輯位址-實體位址映射表810(以下參考為,第二邏輯位址-實體位址映射表)至緩衝記憶體508的第一映射表暫存區508a中,並且記憶體控制電路單元404(或記憶體管理電路502)根據邏輯位址-實體位址映射表810執行一第三指令。例如,第三指令是指示讀取邏輯位址LBA(0)中的資料。
接著,請參照圖12B,假設在圖12A後當主機系統10下達的第一指令是對應於儲存在邏輯位址LBA(Z+11) (以下亦參考為,第一邏輯位址)的資料,而第一指令為指示讀取儲存在邏輯位址LBA(Z+11)中的資料的讀取指令。記憶體控制電路單元404(或記憶體管理電路502)從主機系統11接收第一指令後,記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會判斷對應第三指令的邏輯位址LBA(Z+11)的邏輯位址-實體位址映射表820是否存在於緩衝記憶體508的第一映射表暫存區508a中。
此時,記憶體控制電路單元404(或記憶體管理電路502)會判斷緩衝記憶體508的第一映射表暫存區508a中目前僅存有邏輯位址-實體位址映射表810,且邏輯位址-實體位址映射表810並不同於對應第三指令的邏輯位址LBA(Z+11)的邏輯位址-實體位址映射表820。此時,記憶體控制電路單元404(或記憶體管理電路502)會判斷目前可複寫式非揮發性記憶體模組406的操作模式為第一操作模式,並且載入對應第三指令的邏輯位址LBA(Z+11)的子邏輯位址-實體位址映射表820a。
特別是,假設主機系統11之後下達一第四指令,其中此第四指令的映射資訊可以在緩衝記憶體508中的邏輯位址-實體位址映射表810中找到時,則記憶體控制電路單元404(或記憶體管理電路502)可以不用判斷目前可複寫式非揮發性記憶體模組406的操作模式第一操作模式或第二操作模式,記憶體控制電路單元404(或記憶體管理電路502)可以直接根據緩衝記憶體508中的邏輯位址-實體位址映射表810執行第四指令。
基於上述,在本發明的第四範例實施例中,當執行一指令時,記憶體控制電路單元404(或記憶體管理電路502)也可以藉由判斷緩衝記憶體508中是否存有對應此指令的邏輯位址-實體位址映射表以判斷目前可複寫式非揮發性記憶體模組406的操作模式是否為第一操作模式,以決定是否載入相對應的子邏輯位址-實體位址映射表至緩衝記憶體508中。
需注意的是,第一操作模式例如是隨機讀取操作模式、隨機寫入操作模式或垃圾蒐集操作模式。隨機讀取操作模式代表主機系統11正在對可複寫式非揮發性記憶體模組406連續下達多個讀取指令以分別執行多個讀取操作,其中對應每一個讀取操作所需使用的映射資訊被分散地儲存在多個不同的邏輯位址-實體位址映射表中。記憶體控制電路單元404(或記憶體管理電路502)例如可以根據上述的多個讀取操作所分別對應的邏輯位址,判斷此些邏輯位址的映射資訊被分散地儲存在多個不同的邏輯位址-實體位址映射表中,進而判斷可複寫式非揮發性記憶體模組406目前的操作模式為隨機讀取操作模式。此時,為了避免反覆地載入較大的邏輯位址-實體位址映射表至緩衝記憶體508中而造成頻寬的浪費,在隨機讀取操作模式下,記憶體控制電路單元404(或記憶體管理電路502)會載入大小較小的子邏輯位址-實體位址映射表至緩衝記憶體508來進行讀取。
隨機寫入操作模式代表主機系統11正在對可複寫式非揮發性記憶體模組406下達多個寫入指令以分別執行多個寫入操作,其中對應每一個寫入操作所需使用的映射資訊被分散地儲存在多個不同的邏輯位址-實體位址映射表中。記憶體控制電路單元404(或記憶體管理電路502)例如可以根據上述的多個寫入操作所分別對應的邏輯位址,判斷此些邏輯位址的映射資訊被分散地儲存在多個不同的邏輯位址-實體位址映射表中,進而判斷可複寫式非揮發性記憶體模組406目前的操作模式為隨機寫入操作模式。此時,為了避免反覆地載入較大的邏輯位址-實體位址映射表至緩衝記憶體508中而造成頻寬的浪費,在隨機寫入操作模式下,記憶體控制電路單元404(或記憶體管理電路502)會載入大小較小的子邏輯位址-實體位址映射表至緩衝記憶體508。
垃圾搜集程序中選擇回收區塊的操作模式代表記憶體控制電路單元404(或記憶體管理電路502)正在執行有效資料合併程序,特別是有效資料合併程序中載入具有有效資料的回收區塊的映射資訊的過程。詳細來說,在有效資料合併程序中,由於有效資料的搬移須載入並更新各個有效資料的映射資訊,而此些映射資訊亦可能分別地被儲存在多個不同的邏輯位址-實體位址映射表中。因此,當記憶體控制電路單元404(或記憶體管理電路502) 載入有效資料的映射資訊時,記憶體控制電路單元404(或記憶體管理電路502)會判斷有效資料的映射資訊被分散的儲存在不同的邏輯位址-實體位址映射表中,進而判斷可複寫式非揮發性記憶體模組406目前的操作模式為垃圾搜集程序中選擇回收區塊的操作模式。為了避免反覆地載入較大的邏輯位址-實體位址映射表至緩衝記憶體508中而造成頻寬的浪費,在垃圾搜集程序中選擇回收區塊的操作模式下,記憶體控制電路單元404(或記憶體管理電路502)會載入大小較小的子邏輯位址-實體位址映射表至緩衝記憶體508。
此外,第二操作模式例如是連續讀取操作模式、連續寫入操作模式、垃圾搜集程序中對目的區塊進行寫入的操作模式或清倉操作模式。
連續讀取操作模式代表主機系統11正在對可複寫式非揮發性記憶體模組406連續下達多個讀取指令以分別執行多個讀取操作,其中此些讀取操作所需使用的映射資訊被連續地儲存在同一個邏輯位址-實體位址映射表中。記憶體控制電路單元404(或記憶體管理電路502)例如可以根據上述的多個讀取操作所分別對應的邏輯位址,判斷此些邏輯位址的映射資訊被連續地儲存在相同的邏輯位址-實體位址映射表中,進而判斷可複寫式非揮發性記憶體模組406目前的操作模式為連續讀取操作模式。此時,在連續讀取操作模式下,記憶體控制電路單元404(或記憶體管理電路502)會載入大小較大的邏輯位址-實體位址映射表至緩衝記憶體508來進行讀取。
連續寫入操作代表主機系統11正在對可複寫式非揮發性記憶體模組406連續下達多個寫入指令以分別執行多個寫入操作,其中此些寫入操作所需使用的映射資訊被連續地儲存在同一個邏輯位址-實體位址映射表中。記憶體控制電路單元404(或記憶體管理電路502)例如可以根據上述的多個寫入操作所分別對應的邏輯位址,判斷此些邏輯位址的映射資訊被連續地儲存在相同的邏輯位址-實體位址映射表中,進而判斷可複寫式非揮發性記憶體模組406目前的操作模式為連續寫入操作模式。此時,在連續寫入操作模式下,記憶體控制電路單元404(或記憶體管理電路502)會載入大小較大的邏輯位址-實體位址映射表至緩衝記憶體508來進行讀取。
垃圾搜集程序中對目的區塊進行寫入的操作模式代表記憶體控制電路單元404(或記憶體管理電路502)正將所搜集的有效資料寫入至一目的區塊中。在將所搜集的有效資料寫入至目的區塊的運作類似於對目的區塊進行上述的連續寫入操作。在垃圾蒐集程序中,由於多個有效資料的映射資訊可能被連續地儲存在一邏輯位址-實體位址映射表中,故記憶體控制電路單元404(或記憶體管理電路502)例如可以根據對目的區塊進行的多個寫入操作所分別對應的邏輯位址,判斷此些邏輯位址的映射資訊可能被連續地儲存在相同的邏輯位址-實體位址映射表中,進而判斷可複寫式非揮發性記憶體模組406目前的操作模式為垃圾搜集程序中對目的區塊進行寫入的操作模式。此時,在垃圾搜集程序中對目的區塊進行寫入的操作模式下,記憶體控制電路單元404(或記憶體管理電路502)會載入大小較大的邏輯位址-實體位址映射表至緩衝記憶體508來進行讀取。
清倉操作模式代表記憶體控制電路單元404(或記憶體管理電路502)正在將緩衝記憶體508中的多個暫存資料寫入至可複寫式非揮發性記憶體模組406中。在執行清倉操作時,由於記憶體控制電路單元404(或記憶體管理電路502)可能需載入邏輯位址-實體位址映射表來更新同一邏輯位址-實體位址映射表中的多個映射資訊。因此,當記憶體控制電路單元404(或記憶體管理電路502)正在執行清倉操作時,記憶體控制電路單元404(或記憶體管理電路502)會判斷可複寫式非揮發性記憶體模組406目前的操作模式為清倉操作模式。此時,在清倉操作模式下,記憶體控制電路單元404(或記憶體管理電路502)會載入大小較大的邏輯位址-實體位址映射表至緩衝記憶體508來進行讀取。
基於上述,在本發明的範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)在第一操作模式下使用容量較小的子邏輯位址-實體位址映射表載入至緩衝記憶體508,並且在第二操作模式下使用容量較大的邏輯位址-實體位址映射表載入至緩衝記憶體508。藉此可以有效地避免在第一操作模式下因反覆地載入過多容量較大的邏輯位址-實體位址映射表而造成記憶體儲存裝置的效能惡化。
圖13是根據一範例實施例所繪示之映射表載入方法的流程圖。
請參照圖13,在步驟S1301中,記憶體控制電路單元404(或記憶體管理電路502) 從主機系統11接收第一指令,其中第一指令對應於儲存在第一邏輯位址上的資料。在步驟S1303中,記憶體控制電路單元404(或記憶體管理電路502)判斷對應可複寫式非揮發性記憶體模組406的操作模式為第一操作模式或第二操作模式。當對應可複寫式非揮發性記憶體模組406的操作模式為第一操作模式時,在步驟S1305中,記憶體控制電路單元404(或記憶體管理電路502) 從可複寫式非揮發性記憶體模組406載入子邏輯位址-實體位址映射表之中第一子邏輯位址-實體位址映射表至緩衝記憶體508中,其中第一子邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊。當對應可複寫式非揮發性記憶體模組406的操作模式為第二操作模式時,在步驟S1307中,記憶體控制電路單元404(或記憶體管理電路502) 從可複寫式非揮發性記憶體模組406載入邏輯位址-實體位址映射表之中的第一邏輯位址-實體位址映射表至緩衝記憶體508中,其中第一邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊,其中第一邏輯位址-實體位址映射表包含第一子邏輯位址-實體位址映射表。
綜上所述,本發明在第一操作模式下會使用容量較小的子邏輯位址-實體位址映射表載入至緩衝記憶體,並且在第二操作模式下使用容量較大的邏輯位址-實體位址映射表載入至緩衝記憶體。特別是,由於在第一操作模式時僅會載入容量較小的子邏輯位址-實體位址映射表,可以避免主機系統在第一操作模式下反覆地載入較大的邏輯位址-實體位址映射表而造成記憶體儲存裝置的頻寬浪費,並可以有效地提高記憶體儲存裝置的使用效率與效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧輸入/輸出(I/O)裝置
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體(RAM)
113‧‧‧唯讀記憶體(ROM)
114‧‧‧資料傳輸介面
20‧‧‧主機板
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
30‧‧‧記憶體儲存裝置
31‧‧‧主機系統
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)、410(X)、410(X+1)、410(X+11)、410(Y)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯位址
LZ(0)~LZ(M)‧‧‧邏輯區域
810、820‧‧‧邏輯位址-實體位址映射表
810a~810n、820a~820n‧‧‧子邏輯位址-實體位址映射表
508a‧‧‧第一區域
508b‧‧‧第二區域
S1301‧‧‧接收第一指令,其中第一指令對應於儲存在第一邏輯位址的資料的步驟
S1303‧‧‧判斷對應可複寫式非揮發性記憶體模組的操作模式為第一操作模式或第二操作模式的步驟
S1305‧‧‧當對應可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,從可複寫式非揮發性記憶體模組載入子邏輯位址-實體位址映射表之中第一子邏輯位址-實體位址映射表至緩衝記憶體中,其中第一子邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊的步驟
S1307‧‧‧當對應可複寫式非揮發性記憶體模組的操作模式為第二操作模式時,從可複寫式非揮發性記憶體模組載入邏輯位址-實體位址映射表之中的第一邏輯位址-實體位址映射表至緩衝記憶體中,其中第一邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊,其中第一邏輯位址-實體位址映射表包含第一子邏輯位址-實體位址映射表的步驟
11‧‧‧主機系統
12‧‧‧輸入/輸出(I/O)裝置
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體(RAM)
113‧‧‧唯讀記憶體(ROM)
114‧‧‧資料傳輸介面
20‧‧‧主機板
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
30‧‧‧記憶體儲存裝置
31‧‧‧主機系統
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)、410(X)、410(X+1)、410(X+11)、410(Y)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯位址
LZ(0)~LZ(M)‧‧‧邏輯區域
810、820‧‧‧邏輯位址-實體位址映射表
810a~810n、820a~820n‧‧‧子邏輯位址-實體位址映射表
508a‧‧‧第一區域
508b‧‧‧第二區域
S1301‧‧‧接收第一指令,其中第一指令對應於儲存在第一邏輯位址的資料的步驟
S1303‧‧‧判斷對應可複寫式非揮發性記憶體模組的操作模式為第一操作模式或第二操作模式的步驟
S1305‧‧‧當對應可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,從可複寫式非揮發性記憶體模組載入子邏輯位址-實體位址映射表之中第一子邏輯位址-實體位址映射表至緩衝記憶體中,其中第一子邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊的步驟
S1307‧‧‧當對應可複寫式非揮發性記憶體模組的操作模式為第二操作模式時,從可複寫式非揮發性記憶體模組載入邏輯位址-實體位址映射表之中的第一邏輯位址-實體位址映射表至緩衝記憶體中,其中第一邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊,其中第一邏輯位址-實體位址映射表包含第一子邏輯位址-實體位址映射表的步驟
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。 圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。 圖8A與圖8B是根據一範例實施例所繪示之邏輯位址-實體位址映射表與其對應的多個子邏輯位址-實體位址映射表的範例示意圖。 圖9A~圖9B是根據第一範例所繪示之記憶體讀取方法的示意圖。 圖10A~圖10B是根據第二範例所繪示之記憶體讀取方法的示意圖。 圖11A~圖11B是根據第三範例所繪示之記憶體讀取方法的示意圖。 圖12A~圖12B是根據第四範例所繪示之記憶體讀取方法的示意圖。 圖13是根據一範例實施例所繪示之映射表載入方法的流程圖。
S1301‧‧‧接收第一指令,其中第一指令對應於儲存在第一邏輯位址的資料的步驟
S1303‧‧‧判斷對應複寫式非揮發性記憶體模組的操作模式為第一操作模式或第二操作模式的步驟
S1305‧‧‧當對應可複寫式非揮發性記憶體模組的操作模式為第一操作模式時,從可複寫式非揮發性記憶體模組載入子邏輯位址-實體位址映射表之中第一子邏輯位址-實體位址映射表至緩衝記憶體中,其中第一子邏輯位址-實體位址映射表記錄有對應第一邏輯位址的映射資訊的步驟
S1307‧‧‧當對應可複寫式非揮發性記憶體模組的操作模式為第二操作模式時,從可複寫式非揮發性記憶體模組載入邏輯位址-實體位址映射表之中的第一邏輯位址-實體位址映射表至緩衝記憶體中,其中第一邏輯位址-實體位址映射表記錄有對應第一邏輯位
址的映射資訊,其中第一邏輯位址-實體位址映射表包含第一子邏輯位址-實體位址映射表的步驟
Claims (24)
- 一種映射表載入方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組儲存多個邏輯位址-實體位址映射表且每一邏輯位址-實體位址映射表具有多個子邏輯位址-實體位址映射表,該映射表載入方法包括: 接收一第一指令,其中該第一指令對應於儲存在一第一邏輯位址的資料; 當對應該可複寫式非揮發性記憶體模組的一操作模式為一第一操作模式時,從該可複寫式非揮發性記憶體模組載入該些子邏輯位址-實體位址映射表之中一第一子邏輯位址-實體位址映射表至一緩衝記憶體中,其中該第一子邏輯位址-實體位址映射表記錄有對應該第一邏輯位址的映射資訊;以及 當對應該可複寫式非揮發性記憶體模組的該操作模式為一第二操作模式時,從該可複寫式非揮發性記憶體模組載入該些邏輯位址-實體位址映射表之中的一第一邏輯位址-實體位址映射表至該緩衝記憶體中,其中該第一邏輯位址-實體位址映射表記錄有對應該第一邏輯位址的映射資訊, 其中該第一邏輯位址-實體位址映射表包含該第一子邏輯位址-實體位址映射表。
- 如申請專利範圍第1項所述的映射表載入方法,於接收該第一指令的步驟之前,更包括: 根據一第二子邏輯位址-實體位址映射表執行一第二指令; 當該第二子邏輯位址-實體位址映射表不同於該第一子邏輯位址-實體位址映射表時,判斷該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式;以及 當該第二子邏輯位址-實體位址映射表相同於該第一子邏輯位址-實體位址映射表時,判斷該可複寫式非揮發性記憶體模組的該操作模式為該第二操作模式。
- 如申請專利範圍第2項所述的映射表載入方法,當該第二子邏輯位址-實體位址映射表不同於該第一子邏輯位址-實體位址映射表時,更包括: 當該第一邏輯位址-實體位址映射表包含該第二子邏輯位址-實體位址映射表時,判斷該可複寫式非揮發性記憶體模組的該操作模式為該第二模式。
- 如申請專利範圍第1項所述的映射表載入方法,於接收該第一指令的步驟之前,更包括: 根據一第二邏輯位址-實體位址映射表執行一第三指令; 當該第二邏輯位址-實體位址映射表不同於該第一邏輯位址-實體位址映射表時,判斷該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式。
- 如申請專利範圍第1項所述的映射表載入方法,其中當該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式時,更包括: 根據該第一子邏輯位址-實體位址映射表執行該第一指令; 抹除該第一子邏輯位址-實體位址映射表;以及 於一管理表中記錄該第一子邏輯位址-實體位址映射表之使用歷程。
- 如申請專利範圍第1項所述的映射表載入方法,其中該可複寫式非揮發性記憶體模組於每次上電後的該操作模式是預設為該第一操作模式。
- 如申請專利範圍第1項所述的映射表載入方法,其中該第一操作模式包含一隨機讀取操作模式、一隨機寫入操作模式或一垃圾蒐集(garbage collection)程序中選擇回收區塊的操作模式。
- 如申請專利範圍第1項所述的映射表載入方法,其中該第二操作模式包含一連續讀取操作模式、一連續寫入操作模式、一垃圾蒐集(garbage collection)程序中對目的區塊進行寫入的操作模式或一清倉(flush)操作模式。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組儲存多個邏輯位址-實體位址映射表且每一邏輯位址-實體位址映射表具有多個子邏輯位址-實體位址映射表; 一緩衝記憶體;以及 一記憶體管理電路,耦接至該主機介面、該記憶體介面與該緩衝記憶體, 該記憶體管理電路用以接收一第一指令,其中該第一指令對應於儲存在一第一邏輯位址上的資料, 當對應該可複寫式非揮發性記憶體模組的一操作模式為一第一操作模式時,該記憶體管理電路更用以從該可複寫式非揮發性記憶體模組載入該些子邏輯位址-實體位址映射表之中一第一子邏輯位址-實體位址映射表至該緩衝記憶體中,其中該第一子邏輯位址-實體位址映射表記錄有對應該第一邏輯位址的映射資訊, 當對應該可複寫式非揮發性記憶體模組的該操作模式為一第二操作模式時,該記憶體管理電路更用以從該可複寫式非揮發性記憶體模組載入該些邏輯位址-實體位址映射表之中的一第一邏輯位址-實體位址映射表至該緩衝記憶體中,其中該第一邏輯位址-實體位址映射表記錄有對應該第一邏輯位址的映射資訊, 其中該第一邏輯位址-實體位址映射表包含該第一子邏輯位址-實體位址映射表。
- 如申請專利範圍第9項所述的記憶體控制電路單元,於接收該第一指令的運作之前, 該記憶體管理電路更用以根據一第二子邏輯位址-實體位址映射表執行一第二指令, 當該第二子邏輯位址-實體位址映射表不同於該第一子邏輯位址-實體位址映射表時,該記憶體管理電路更用以判斷該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式,以及 當該第二子邏輯位址-實體位址映射表相同於該第一子邏輯位址-實體位址映射表時,該記憶體管理電路更用以判斷該可複寫式非揮發性記憶體模組的該操作模式為該第二操作模式。
- 如申請專利範圍第10項所述的記憶體控制電路單元,當該第二子邏輯位址-實體位址映射表不同於該第一子邏輯位址-實體位址映射表時, 當該第一邏輯位址-實體位址映射表包含該第二子邏輯位址-實體位址映射表時,該記憶體管理電路更用以判斷該可複寫式非揮發性記憶體模組的該操作模式為該第二模式。
- 如申請專利範圍第9項所述的記憶體控制電路單元,於接收該第一指令的運作之前, 該記憶體管理電路更用以根據一第二邏輯位址-實體位址映射表執行一第三指令, 當該第二邏輯位址-實體位址映射表不同於該第一邏輯位址-實體位址映射表時,該記憶體管理電路更用以判斷該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中當該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式時, 該記憶體管理電路更用以根據該第一子邏輯位址-實體位址映射表執行該第一指令, 該記憶體管理電路更用以抹除該第一子邏輯位址-實體位址映射表,以及 該記憶體管理電路更用以於一管理表中記錄該第一子邏輯位址-實體位址映射表之使用歷程。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中該可複寫式非揮發性記憶體模組於每次上電後的該操作模式是預設為該第一操作模式。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中該第一操作模式包含一隨機讀取操作模式、一隨機寫入操作模式或一垃圾蒐集(garbage collection)程序中選擇回收區塊的操作模式。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中該第二操作模式包含一連續讀取操作模式、一連續寫入操作模式、一垃圾蒐集(garbage collection)程序中對目的區塊進行寫入的操作模式或一清倉(flush)操作模式。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,用以儲存多個邏輯位址-實體位址映射表且每一邏輯位址-實體位址映射表具有多個子邏輯位址-實體位址映射表;以及 一記憶體控制電路單元,包括一緩衝記憶體,其中該記憶體控制電路單元耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以接收一第一指令,其中該第一指令對應於儲存在一第一邏輯位址上的資料, 當對應該可複寫式非揮發性記憶體模組的一操作模式為一第一操作模式時,該記憶體控制電路單元更用以從該可複寫式非揮發性記憶體模組載入該些子邏輯位址-實體位址映射表之中一第一子邏輯位址-實體位址映射表至該緩衝記憶體中,其中該第一子邏輯位址-實體位址映射表記錄有對應該第一邏輯位址的映射資訊, 當對應該可複寫式非揮發性記憶體模組的該操作模式為一第二操作模式時,該記憶體控制電路單元更用以從該可複寫式非揮發性記憶體模組載入該些邏輯位址-實體位址映射表之中的一第一邏輯位址-實體位址映射表至該緩衝記憶體中,其中該第一邏輯位址-實體位址映射表記錄有對應該第一邏輯位址的映射資訊, 其中該第一邏輯位址-實體位址映射表包含該第一子邏輯位址-實體位址映射表。
- 如申請專利範圍第17項所述的記憶體儲存裝置,於接收該第一指令的運作之前, 該記憶體控制電路單元更用以根據一第二子邏輯位址-實體位址映射表執行一第二指令, 當該第二子邏輯位址-實體位址映射表不同於該第一子邏輯位址-實體位址映射表時,該記憶體控制電路單元更用以判斷該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式,以及 當該第二子邏輯位址-實體位址映射表相同於該第一子邏輯位址-實體位址映射表時,該記憶體控制電路單元更用以判斷該可複寫式非揮發性記憶體模組的該操作模式為該第二操作模式。
- 如申請專利範圍第18項所述的記憶體儲存裝置,當該第二子邏輯位址-實體位址映射表不同於該第一子邏輯位址-實體位址映射表時, 當該第一邏輯位址-實體位址映射表包含該第二子邏輯位址-實體位址映射表時,該記憶體控制電路單元更用以判斷該可複寫式非揮發性記憶體模組的該操作模式為該第二模式。
- 如申請專利範圍第17項所述的記憶體儲存裝置,於接收該第一指令的運作之前, 該記憶體控制電路單元更用以根據一第二邏輯位址-實體位址映射表執行一第三指令; 當該第二邏輯位址-實體位址映射表不同於該第一邏輯位址-實體位址映射表時,該記憶體控制電路單元更用以判斷該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中當該可複寫式非揮發性記憶體模組的該操作模式為該第一操作模式時, 該記憶體控制電路單元更用以根據該第一子邏輯位址-實體位址映射表執行該第一指令, 該記憶體控制電路單元更用以抹除該第一子邏輯位址-實體位址映射表,以及 該記憶體控制電路單元更用以於一管理表中記錄該第一子邏輯位址-實體位址映射表之使用歷程。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該可複寫式非揮發性記憶體模組於每次上電後的該操作模式是預設為該第一操作模式。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該第一操作模式包含一隨機讀取操作模式、一隨機寫入操作模式或一垃圾蒐集(garbage collection)程序中選擇回收區塊的操作模式。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該第二操作模式包含一連續讀取操作模式、一連續寫入操作模式、一垃圾蒐集(garbage collection)程序中對目的區塊進行寫入的操作模式或一清倉(flush)操作模式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105113420A TWI579693B (zh) | 2016-04-29 | 2016-04-29 | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 |
US15/183,813 US10152426B2 (en) | 2016-04-29 | 2016-06-16 | Mapping table loading method, memory control circuit unit and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105113420A TWI579693B (zh) | 2016-04-29 | 2016-04-29 | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI579693B TWI579693B (zh) | 2017-04-21 |
TW201738751A true TW201738751A (zh) | 2017-11-01 |
Family
ID=59241360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105113420A TWI579693B (zh) | 2016-04-29 | 2016-04-29 | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10152426B2 (zh) |
TW (1) | TWI579693B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI644207B (zh) * | 2017-12-29 | 2018-12-11 | 國科美國研究實驗室 | Method for garbage collection of data storage device |
TWI676176B (zh) * | 2018-10-25 | 2019-11-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102667430B1 (ko) * | 2016-08-04 | 2024-05-23 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
TW201818248A (zh) * | 2016-11-15 | 2018-05-16 | 慧榮科技股份有限公司 | 可應用於資料儲存裝置之記憶體管理方法 |
JP2018181202A (ja) * | 2017-04-20 | 2018-11-15 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
JP2018181213A (ja) * | 2017-04-20 | 2018-11-15 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
JP2018181207A (ja) * | 2017-04-20 | 2018-11-15 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
KR102310117B1 (ko) * | 2017-07-07 | 2021-10-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
TWI629591B (zh) | 2017-08-30 | 2018-07-11 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
JP2019079377A (ja) | 2017-10-26 | 2019-05-23 | 東芝メモリ株式会社 | 半導体記憶装置 |
TWI695263B (zh) * | 2018-08-01 | 2020-06-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
KR102679985B1 (ko) * | 2018-10-18 | 2024-07-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
TWI720400B (zh) * | 2019-01-04 | 2021-03-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI707234B (zh) * | 2019-05-20 | 2020-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
US11086786B2 (en) | 2019-12-09 | 2021-08-10 | Westem Digital Technologies, Inc. | Storage system and method for caching a single mapping entry for a random read command |
US11144450B2 (en) * | 2019-12-19 | 2021-10-12 | Micron Technology, Inc. | Maintaining sequentiality for media management of a memory sub-system |
CN111124314A (zh) * | 2019-12-25 | 2020-05-08 | 深圳忆联信息系统有限公司 | 映射表动态加载的ssd性能提升方法、装置、计算机设备及存储介质 |
US11537323B2 (en) | 2020-01-07 | 2022-12-27 | SK Hynix Inc. | Processing-in-memory (PIM) device |
US11842266B2 (en) | 2020-01-07 | 2023-12-12 | SK Hynix Inc. | Processing-in-memory (PIM) device, controller for controlling the PIM device, and PIM system including the PIM device and the controller |
US11474718B2 (en) | 2020-01-07 | 2022-10-18 | SK Hynix Inc. | Processing-in-memory (PIM) device and PIM system including the PIM device |
JP2022050016A (ja) * | 2020-09-17 | 2022-03-30 | キオクシア株式会社 | メモリシステム |
CN114063918B (zh) * | 2021-11-12 | 2023-08-15 | 深圳宏芯宇电子股份有限公司 | 数据存取方法、存储器存储装置及存储器控制器 |
EP4361822A1 (en) * | 2022-10-26 | 2024-05-01 | Samsung Electronics Co., Ltd. | Storage device and electronic device including the same |
CN116149572A (zh) * | 2023-02-24 | 2023-05-23 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器存储装置及存储器控制电路单元 |
TWI845275B (zh) * | 2023-04-24 | 2024-06-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265236A (en) * | 1990-11-29 | 1993-11-23 | Sun Microsystems, Inc. | Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode |
US8788788B2 (en) * | 2011-08-11 | 2014-07-22 | Pure Storage, Inc. | Logical sector mapping in a flash storage array |
TWI486767B (zh) * | 2012-06-22 | 2015-06-01 | Phison Electronics Corp | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
TWI506430B (zh) * | 2013-03-20 | 2015-11-01 | Phison Electronics Corp | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 |
US9405672B2 (en) * | 2013-06-25 | 2016-08-02 | Seagate Technology Llc | Map recycling acceleration |
US20150026083A1 (en) * | 2013-07-18 | 2015-01-22 | InsideView Technologies, Inc. | Generating Connection Map for Intelligent Connections in Enterprises |
US9229876B2 (en) * | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
-
2016
- 2016-04-29 TW TW105113420A patent/TWI579693B/zh active
- 2016-06-16 US US15/183,813 patent/US10152426B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI644207B (zh) * | 2017-12-29 | 2018-12-11 | 國科美國研究實驗室 | Method for garbage collection of data storage device |
TWI676176B (zh) * | 2018-10-25 | 2019-11-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
Publication number | Publication date |
---|---|
TWI579693B (zh) | 2017-04-21 |
US20170315925A1 (en) | 2017-11-02 |
US10152426B2 (en) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI579693B (zh) | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI622923B (zh) | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI557561B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI615711B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI611410B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI582776B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
TWI602061B (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI650639B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN106775436B (zh) | 数据存取方法、存储器控制电路单元与存储器 | |
CN107346211B (zh) | 映射表加载方法、存储器控制电路单元与存储器储存装置 | |
TW201945927A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI705331B (zh) | 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN110390985B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI642059B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN114328297B (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI635495B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107102951B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 |