TW201719415A - 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 - Google Patents

緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 Download PDF

Info

Publication number
TW201719415A
TW201719415A TW104137866A TW104137866A TW201719415A TW 201719415 A TW201719415 A TW 201719415A TW 104137866 A TW104137866 A TW 104137866A TW 104137866 A TW104137866 A TW 104137866A TW 201719415 A TW201719415 A TW 201719415A
Authority
TW
Taiwan
Prior art keywords
unit
area
logical address
memory
mapping table
Prior art date
Application number
TW104137866A
Other languages
English (en)
Other versions
TWI584122B (zh
Inventor
陳 國榮
Original Assignee
群聯電子股份有限公司
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 群聯電子股份有限公司 filed Critical 群聯電子股份有限公司
Priority to TW104137866A priority Critical patent/TWI584122B/zh
Priority to US15/007,222 priority patent/US9772797B2/en
Application granted granted Critical
Publication of TWI584122B publication Critical patent/TWI584122B/zh
Publication of TW201719415A publication Critical patent/TW201719415A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile 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/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置。此方法包括:在緩衝記憶體劃分出第一區域與第二區域以暫存多個邏輯位址-實體位址映射表,並且對第一區域執行回存操作。此方法也包括:接收一寫入指令,其中此寫入指令指示的邏輯位址所屬的邏輯位址-實體位址映射表已被暫存在第一區域。此方法更包括:將此邏輯位址-實體位址映射表複製到第二區域,並更新第二區域中的此邏輯位址-實體位址映射表。

Description

緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
本發明是有關於一種緩衝記憶體管理方法,且特別是有關於一種緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,在使用可複寫式非揮發性記憶體模組作為儲存媒體的記憶體儲存裝置中,通常也會配置緩衝記憶體,用以暫存程式碼、資料或是用於記憶體儲存裝置在執行背景(background)工作時資料的暫存區域。例如,記憶體儲存裝置的控制器會將邏輯位址-實體位址映射表載入至緩衝記憶體以利存取資料。而當接收到寫入指令而執行寫入操作時,記憶體儲存裝置的控制器會更新暫存在緩衝記憶體中的邏輯位址-實體位址映射表。並且當緩衝記憶體中已暫存大量的已被更新的邏輯位址-實體位址映射表時,記憶體儲存裝置的控制器會將緩衝記憶體中已被更新的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中。由於已被更新的邏輯位址-實體位址映射表有可能不是暫存在緩衝記憶體中連續的緩存單元中,而可複寫式非揮發性記憶體模組又是以實體程式化單元為最小寫入單位,因此,必須將已被更新的邏輯位址-實體位址映射表先複製到緩衝記憶體中的暫存區域,以集中成相當於一個實體程式化單元的大小才能回存至可複寫式非揮發性記憶體模組。然而,大量的複製操作將導致系統負載過重,回存時間過長,使整體性能下降。
此外,在將緩衝記憶體中已被更新的邏輯位址-實體位址映射表被回存至可複寫式非揮發性記憶體模組的期間,倘若又接收到寫入指令而需再次更新上述正被回存的邏輯位址-實體位址映射表,此時記憶體儲存裝置的控制器會先暫停接收此寫入指令的資料及寫入操作的執行。如此一來,可能發生因等待時間過長而造成寫入失敗的情況。因此,如何提升將邏輯位址-實體位址映射表從緩衝記憶體回存至可複寫式非揮發性記憶體模組時的運作效率及系統穩定性,為此領域技術人員所關心的議題。
本發明提供一種緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置,其能提升將邏輯位址-實體位址映射表從緩衝記憶體回存至可複寫式非揮發性記憶體模組時的運作效率及系統穩定性。
本發明的一範例實施例提出一種緩衝記憶體管理方法,用於記憶體儲存裝置的緩衝記憶體。此記憶體儲存裝置具有可複寫式非揮發性記憶體模組。本緩衝記憶體管理方法包括在緩衝記憶體中劃分出第一區域與第二區域,其中第一區域與第二區域分別地具有連續的多個緩存單元,並且第一區域與第二區域中的緩存單元中的至少一部份緩存單元已暫存多個邏輯位址-實體位址映射表。本緩衝記憶體管理方法也包括對第一區域的緩存單元執行回存操作以將儲存在第一區域的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中。本緩衝記憶體管理方法還包括從主機系統接收第一寫入指令,且第一寫入指令指示將第一資料寫入至第一邏輯位址,並且第一邏輯位址所屬的第一邏輯位址-實體位址映射表已被暫存在第一區域的緩存單元之中的第一緩存單元中。本緩衝記憶體管理方法更包括寫入第一資料至可複寫式非揮發性記憶體模組,並將第一區域中的第一邏輯位址-實體位址映射表複製到第二區域中的緩存單元之中的第二緩存單元中。本緩衝記憶體管理方法還包括更新暫存在第二區域中的第二緩存單元中的第一邏輯位址-實體位址映射表。
在本發明的一範例實施例中,上述更新暫存在第二區域中的第二緩存單元中的第一邏輯位址-實體位址映射表的步驟更包括將第二緩存單元標示為已更新狀態,並將第二區域設定為更新區域,並且更新區域是用以暫存多個被更新的邏輯位址-實體位址映射表。
在本發明的一範例實施例中,上述的緩衝記憶體管理方法更包括在第二區域的所有緩存單元皆為已更新狀態時,將第二區域的所有緩存單元中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中。
在本發明的一範例實施例中,上述的緩衝記憶體管理方法更包括根據第二區域中的緩存單元的順序,選取第二區域中的第一個緩存單元作為第二緩存單元,並設定一第一指標指向第二緩存單元。再者,在將第一邏輯位址-實體位址映射表複製到第二區域中的第二緩存單元之後,設定第一指標指向第二區域的緩存單元之中的另一個緩存單元,其中此另一個緩存單元為第二緩存單元的後一個不為已更新狀態的緩存單元。
在本發明的一範例實施例中,上述的緩衝記憶體管理方法更包括從主機系統接收第二寫入指令,且第二寫入指令指示將第二資料寫入至第二邏輯位址,並且第二邏輯位址所屬的第二邏輯位址-實體位址映射表已被暫存在第二區域的緩存單元之中的一第三緩存單元中。再者,寫入第二資料至可複寫式非揮發性記憶體模組,並更新暫存在第二區域中的第三緩存單元中的第二邏輯位址-實體位址映射表。
在本發明的一範例實施例中,上述的緩衝記憶體管理方法更包括從主機系統接收第三寫入指令,其中第三寫入指令指示將第三資料寫入至第三邏輯位址,並且第三邏輯位址所屬的第三邏輯位址-實體位址映射表尚未載入至映射表區。再者,從可複寫式非揮發性記憶體模組中載入第三邏輯位址-實體位址映射表,並且第三邏輯位址-實體位址映射表被暫存在第二區域的緩存單元之中的第四緩存單元中。此外,寫入第三資料至可複寫式非揮發性記憶體模組,並更新暫存在第二區域中的第四緩存單元中的第三邏輯位址-實體位址映射表。
本發明的一範例實施例提出一種記憶體控制電路單元,用於控制可複寫式非揮發性記憶體模組。記憶體控制電路單元包括主機介面、記憶體介面、緩衝記憶體及記憶體管理電路。主機介面耦接至主機系統,記憶體介面耦接至可複寫式非揮發性記憶體模組,緩衝記憶體耦接至主機介面及記憶體介面,記憶體管理電路耦接至主機介面、記憶體介面與緩衝記憶體。記憶體管理電路會在緩衝記憶體中劃分出第一區域與第二區域,其中第一區域與第二區域分別地具有連續的多個緩存單元,並且第一區域與第二區域中的緩存單元中的至少一部份緩存單元已暫存多個邏輯位址-實體位址映射表。再者,記憶體管理電路會對第一區域的緩存單元執行回存操作以將儲存在第一區域的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中。並且,記憶體管理電路更從主機系統接收第一寫入指令,此第一寫入指令指示將第一資料寫入至第一邏輯位址,並且第一邏輯位址所屬的第一邏輯位址-實體位址映射表已被暫存在第一區域的緩存單元之中的第一緩存單元中。並且,記憶體管理電路更寫入第一資料至可複寫式非揮發性記憶體模組,並將第一區域中的第一邏輯位址-實體位址映射表複製到第二區域中的緩存單元之中的第二緩存單元中。此外,記憶體管理電路更新暫存在第二區域中的第二緩存單元中的第一邏輯位址-實體位址映射表。
在本發明的一範例實施例中,上述的記憶體管理電路更將第二緩存單元標示為已更新狀態,並將第二區域設定為更新區域,並且更新區域用以暫存多個被更新的邏輯位址-實體位址映射表。
在本發明的一範例實施例中,上述的記憶體管理電路更在第二區域的所有緩存單元皆為已更新狀態時,將第二區域的所有緩存單元中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中。
在本發明的一範例實施例中,上述的記憶體管理電路更根據第二區域中的緩存單元的順序,選取第二區域中的第一個緩存單元作為第二緩存單元,並設定第一指標指向第二緩存單元。再者,在將第一區域中的第一邏輯位址-實體位址映射表複製到第二區域中的第二緩存單元中之後,上述的記憶體管理電路更設定第一指標指向第二區域的緩存單元之中的另一個緩存單元,且此另一個緩存單元為第二緩存單元的後一個不為已更新狀態的緩存單元。
在本發明的一範例實施例中,上述的記憶體管理電路更從主機系統接收第二寫入指令,此第二寫入指令指示將第二資料寫入至第二邏輯位址,並且第二邏輯位址所屬的第二邏輯位址-實體位址映射表已被暫存在第二區域的緩存單元之中的第三緩存單元中。再者,上述的記憶體管理電路更用以寫入第二資料至可複寫式非揮發性記憶體模組,並更新暫存在第二區域中的第三緩存單元中的第二邏輯位址-實體位址映射表。
在本發明的一範例實施例中,上述的記憶體管理電路更從主機系統接收第三寫入指令,此第三寫入指令指示將第三資料寫入至第三邏輯位址,並且第三邏輯位址所屬的第三邏輯位址-實體位址映射表尚未載入至映射表區。再者,上述的記憶體管理電路更從可複寫式非揮發性記憶體模組中載入第三邏輯位址-實體位址映射表,並且第三邏輯位址-實體位址映射表被暫存在第二區域的緩存單元之中的第四緩存單元中。此外,上述的記憶體管理電路更寫入第三資料至可複寫式非揮發性記憶體模組,並更新暫存在第二區域中的第四緩存單元中的第三邏輯位址-實體位址映射表。
本發明的一範例實施例提出一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及上述的記憶體控制電路單元。連接介面單元耦接至主機系統,記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且包括緩衝記憶體。
基於上述,本發明範例實施例所提出的記憶體控制電路單元、記憶體儲存裝置及其使用的緩衝記憶體管理方法能夠有效節省將邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組的時間,並在回存期間持續接收來自主機系統的寫入資料,可提升整體系統的運作效率及穩定性。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖,且圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
請參照圖1,主機系統11一般包括電腦12與輸入/輸出(input/output, I/O)裝置13。電腦12包括微處理器122、隨機存取記憶體(random access memory, RAM)124、系統匯流排126與資料傳輸介面128。輸入/輸出裝置13包括如圖2的滑鼠21、鍵盤22、顯示器23與印表機24。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可更包括其他裝置。
在本範例實施例中,記憶體儲存裝置10是透過資料傳輸介面128與主機系統11的其他元件電性連接。藉由微處理器122、隨機存取記憶體124與輸入/輸出裝置13的運作可將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。例如,記憶體儲存裝置10可以是如圖2所示的隨身碟25、記憶卡26或固態硬碟(Solid State Drive, SSD)27等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
一般而言,主機系統11為可實質地與記憶體儲存裝置10配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統11是以電腦系統來做說明,然而,在另一範例實施例中主機系統11可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為圖3中的數位相機(攝影機)31時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式儲存裝置36(如圖3所示)。嵌入式儲存裝置36包括嵌入式多媒體卡(Embedded MMC, eMMC)、通用快閃記憶體(Universal Flash Storage, UFS)。值得一提的是,嵌入式多媒體卡或通用快閃記憶體是直接電性連接於主機系統的基板上。
圖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 Media Card, MMC)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE) 標準或其他適合的標準。在本範例實施例中,連接介面單元可與記憶體控制電路單元封裝在一個晶片中,或佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元410(0)~ 410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組406為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖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)會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統11欲在邏輯子單元中存取資料時,記憶體控制電路單元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會根據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖8是根據一範例實施例所繪示之緩衝記憶體的示意圖。
請參照圖8,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)在緩衝記憶體508中劃分出映射表區MTZ,用以暫存從可複寫式非揮發性記憶體模組406所載入的邏輯位址-實體位址映射表。特別是,記憶體控制電路單元404(或記憶體管理電路502)會將映射表區MTZ更劃分為第一區域Z1與第二區域Z2,且第一區域Z1與第二區域Z2分別具有連續的多個緩存單元。每一緩存單元用以暫存一個邏輯位址-實體位址映射表,且每一緩存單元可被標示為不同狀態,例如已更新(dirty)狀態、未更新(clean)狀態、無效(invalid)狀態、儲存(saving)狀態或載入(loading)狀態等,用以表示緩存單元中的資料的狀態。在本範例實施例中,一個邏輯位址-實體位址映射表的大小為512B,因此,每一緩存單元的大小為512B。而第一區域Z1與第二區域Z2的大小可為一特定值,例如64MB或128MB。然而,必須暸解的是,在其他範例實施例中,緩存單元的大小可依實際的邏輯位址-實體位址映射表而定,且第一區域Z1與第二區域Z2的大小也可視實際使用需求而設定,本發明並不加以限制。
如圖8所示,第一區域Z1具有緩存單元810(1-0)~810(1-n),第二區域Z2具有緩存單元810(2-0)~810(2-n)。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)可預先從可複寫式非揮發性記憶體模組406中將多個邏輯位址-實體位址映射表載入至緩衝記憶體508中的映射表區MTZ,並將此些邏輯位址-實體位址映射表各別暫存至第一區域Z1與第二區域Z2的緩存單元中。
圖9A~9F是根據一範例實施例所繪示之緩衝記憶體管理方法的示意圖。
請參照圖9A,第一區域Z1中的緩存單元810(1-0)~810(1-n)分別暫存邏輯位址-實體位址映射表MT(0)~MT(n),第二區域Z2中的緩存單元810(2-0)~810(2-n)分別暫存邏輯位址-實體位址映射表MT(n+1)~MT(2n)。為方便說明,本範例實施例是以第一區域Z1與第二區域Z2的緩存單元皆不為已更新狀態開始說明。當從主機系統11接收到寫入指令,此寫入指令指示將寫入資料寫入至邏輯位址,記憶體控制電路單元404(或記憶體管理電路502)會將此邏輯位址所屬的邏輯位址-實體位址映射表暫存至映射表區MTZ的第一區域Z1以進行維護。更詳細地說,記憶體控制電路單元404(或記憶體管理電路502)會先判斷欲寫入的邏輯位址所屬的邏輯位址-實體位址映射表是否已暫存在第一區域Z1或第二區域Z2的緩存單元中。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會設定更新區域,用以暫存被更新的邏輯位址-實體位址映射表。在本範例實施例中,當記憶體儲存裝置10剛上電時,記憶體控制電路單元404(或記憶體管理電路502)是將更新區域設定為第一區域Z1。而在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)亦可初始地將更新區域設定為第二區域Z2。
當從主機系統接收到指示將資料寫入至屬於邏輯位址-實體位址映射表MT(n+2)的邏輯位址的寫入指令時,記憶體控制電路單元404(或記憶體管理電路502)會判斷邏輯位址-實體位址映射表MT(n+2)已載入至緩衝記憶體508中的映射表區MTZ,且被暫存在第二區域Z2的緩存單元810(2-1)。因此,記憶體控制電路單元404(或記憶體管理電路502)會將資料寫入至可複寫式非揮發性記憶體模組406中所述邏輯位址所映射的實體程式化單元,並更新暫存在緩存單元810(2-1)的邏輯位址-實體位址映射表MT(n+2)。接著,記憶體控制電路單元404(或記憶體管理電路502)會將已更新的邏輯位址-實體位址映射表MT(n+2)從第二區域Z2的緩存單元810(2-1)搬移至目前被設定為更新區域的第一區域Z1中。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)還會設定第一指標P1指向第一區域Z1中的其中一個緩存單元,且此被指向的緩存單元不為已更新狀態。具體來說,記憶體控制電路單元404(或記憶體管理電路502)會根據第一區域Z1中的多個緩存單元的前後順序,由前往後依序判斷是否不為已更新狀態。如圖9A所示,由於此時第一區域Z1中的所有緩存單元皆不為已更新狀態。因此,記憶體控制電路單元404(或記憶體管理電路502)設定第一指標P1指向第一區域Z1中的第一個緩存單元810(1-0)。之後,記憶體控制電路單元404(或記憶體管理電路502)會根據第一指標P1來儲存已更新的邏輯位址-實體位址映射表。例如,記憶體控制電路單元404(或記憶體管理電路502)會根據第一指標P1將已更新的邏輯位址-實體位址映射表MT(n+2)從第二區域Z2的緩存單元810(2-1)搬移至第一區域Z1的緩存單元810(1-0)中。
請參照圖9B,已更新的邏輯位址-實體位址映射表MT(n+2)被搬移至第一區域Z1的緩存單元810(1-0)中之後,記憶體控制電路單元404(或記憶體管理電路502)會將緩存單元810(1-0)標示為已更新狀態。此外,記憶體控制電路單元404(或記憶體管理電路502)會設定第一指標P1指向第一區域Z1中的緩存單元810(1-0)的後一個不為已更新狀態的緩存單元。在本範例實施例中,緩存單元810(1-0)的後一個緩存單元810(1-1)即不為已更新狀態。因此,記憶體控制電路單元404(或記憶體管理電路502)會設定第一指標P1指向緩存單元810(1-1)。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)更可將原本暫存在第一區域Z1的緩存單元810(1-0)中的邏輯位址-實體位址映射表MT(0)搬移至第二區域Z2的緩存單元810(2-1)中。而在另一範例實施例中,亦可不搬移而直接覆蓋掉邏輯位址-實體位址映射表MT(0)。
此時,倘若從主機系統接收到指示將資料寫入至屬於邏輯位址-實體位址映射表MT(n)的邏輯位址的另一寫入指令時,記憶體控制電路單元404(或記憶體管理電路502)會判斷邏輯位址-實體位址映射表MT(n)已載入至緩衝記憶體508中的映射表區MTZ,且被暫存在第一區域Z1的緩存單元810(1-n)中。如圖9C所示,記憶體控制電路單元404(或記憶體管理電路502)會將資料寫入至可複寫式非揮發性記憶體模組406中所述邏輯位址所映射的實體程式化單元,更新暫存在緩存單元810(1-n)中的邏輯位址-實體位址映射表MT(n),並將緩存單元810(1-n)標示為已更新狀態。
此時,倘若從主機系統接收到指示將資料寫入至屬於邏輯位址-實體位址映射表MT(k)的邏輯位址的又一寫入指令時,記憶體控制電路單元404(或記憶體管理電路502)會判斷邏輯位址-實體位址映射表MT(k)尚未被載入至緩衝記憶體508中的映射表區MTZ。因此,記憶體控制電路單元404(或記憶體管理電路502)會從可複寫式非揮發性記憶體模組406中將邏輯位址-實體位址映射表MT(k)載入至映射表區MTZ,並以第一指標P1所指向的第一區域Z1中的緩存單元810(1-1)來暫存邏輯位址-實體位址映射表MT(k)。如圖9D所示,邏輯位址-實體位址映射表MT(k)被暫存在第一區域Z1中的緩存單元810(1-1)中,且記憶體控制電路單元404(或記憶體管理電路502)將資料寫入至可複寫式非揮發性記憶體模組406中。此外,記憶體控制電路單元404(或記憶體管理電路502)並會更新邏輯位址-實體位址映射表MT(k),且將緩存單元810(1-1)標示為已更新狀態。更進一步地,記憶體控制電路單元404(或記憶體管理電路502)會選取第一區域Z1中緩存單元810(1-1)的後一個不為已更新狀態的緩存單元810(1-2)用以暫存下一個已更新的邏輯位址-實體位址映射表,並設定第一指標P1指向緩存單元810(1-2)。
在本範例實施例中,倘若第一區域Z1中的所有緩存單元810(1-0)~810(1-n)皆被標示為已更新狀態,記憶體控制電路單元404(或記憶體管理電路502)會啟動回存操作,以將暫存在第一區域Z1的所有緩存單元810(1-0)~810(1-n)中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組406中。然而,需了解的是,記憶體控制電路單元404(或記憶體管理電路502)也會在其他時間點啟動回存操作。舉例而言,在執行資料合併或垃圾收集(Garbage collection)等背景操作、或記憶體儲存裝置被斷電前、或經過一段時間未收到來自於主機系統11的寫入指令等情況下,記憶體控制電路單元404(或記憶體管理電路502)也會啟動回存操作,將更新的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組406。
在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)還會設定第二指標P2指向第二區域Z2中的其中一個緩存單元。具體來說,記憶體控制電路單元404(或記憶體管理電路502)會根據第二區域Z2中的多個緩存單元的前後順序,由後往前來決定第二指標P2要指向的緩存單元。如圖9E所示,可從第二區域Z2中的最後一個緩存單元810(2-n)開始,設定第二指標P2指向緩存單元810(2-n)。
此時,倘若從主機系統接收到指示讀取屬於邏輯位址-實體位址映射表MT(s)的邏輯位址的資料的讀取指令時,記憶體控制電路單元404(或記憶體管理電路502)會判斷邏輯位址-實體位址映射表MT(s)尚未被載入至緩衝記憶體508中的映射表區MTZ。因此,記憶體控制電路單元404(或記憶體管理電路502)會從可複寫式非揮發性記憶體模組406中將邏輯位址-實體位址映射表MT(s)載入至映射表區MTZ,並以第二指標P1所指向的緩存單元810(2-n)來暫存邏輯位址-實體位址映射表MT(s)。如圖9F所示,在邏輯位址-實體位址映射表MT(s)被暫存在第二區域Z2中的緩存單元810(2-n)中之後,記憶體控制電路單元404(或記憶體管理電路502)便可根據邏輯位址-實體位址映射表MT(s)讀取儲存在可複寫式非揮發性記憶體模組中的資料。此外,記憶體控制電路單元404(或記憶體管理電路502)並會設定第二指標P2指向第二區域Z2中緩存單元810(2-n)的前一個緩存單元,即緩存單元810(2-(n-1))。在本範例實施例中,倘若第二指標P2已指向第二區域Z2的第一個緩存單元810(2-0)時,記憶體控制電路單元404(或記憶體管理電路502)會選取第二區域Z2的最後一個緩存單元810(2-n)作為下一個第二指標P2要指向的緩存單元。
此時,倘若從主機系統接收到指示讀取屬於邏輯位址-實體位址映射表MT(n+1)的邏輯位址的資料的另一讀取指令時,記憶體控制電路單元404(或記憶體管理電路502)會判斷邏輯位址-實體位址映射表MT(n+1)已被載入至緩衝記憶體508中的映射表區MTZ,且被暫存在第二區域Z2的緩存單元810(2-0)中。如圖9F所示,記憶體控制電路單元404(或記憶體管理電路502)直接根據暫存在第二區域Z2的緩存單元810(2-0)中的邏輯位址-實體位址映射表MT(n+1)讀取可複寫式非揮發性記憶體模組406中的資料。
圖10A~10D是根據另一範例實施例所繪示之緩衝記憶體管理方法的示意圖。圖10A~10D是有關於在對第一區域Z1執行回存操作的期間接收到寫入指令時的緩衝記憶體管理方法。
請參照圖10A,在本範例實施例中,倘若被設定為更新區域的第一區域Z1中所有緩存單元810(1-0)~810(1-n)皆被標示為已更新狀態時,記憶體控制電路單元404(或記憶體管理電路502)會啟動回存操作,以將暫存在第一區域Z1中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中。然而,記憶體控制電路單元404(或記憶體管理電路502)也會在其他時間點啟動回存操作,並已於前述內容中舉例說明,在此不再贅述。此外,在啟動回存操作以將暫存在第一區域Z1中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組時,記憶體控制電路單元404(或記憶體管理電路502)會重新設定更新區域為第二區域Z2。因此,當從主機系統11接收到寫入指令,記憶體控制電路單元404(或記憶體管理電路502)會根據所接收的寫入指令將需更新的邏輯位址-實體位址映射表暫存至映射表區MTZ的第二區域Z2(即更新區域)以進行維護。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會將第一指標P1指向第二區域Z2中的其中一個緩存單元,且此被指向的緩存單元不為已更新狀態。如圖10A所示,由於此時第二區域Z2中的所有緩存單元皆不為已更新狀態,因此,記憶體控制電路單元404(或記憶體管理電路502)會設定第一指標P1指向第二區域Z2中的第一個緩存單元810(2-0)。
在回存操作期間,倘若從主機系統11接收到指示將資料(以下亦參考為第一資料)寫入至屬於邏輯位址-實體位址映射表MT(k)(以下亦參考為第一邏輯位址-實體位址映射表)的邏輯位址的寫入指令(以下亦參考為第一寫入指令)時,記憶體控制電路單元404(或記憶體管理電路502)會判斷邏輯位址-實體位址映射表MT(k)已載入至緩衝記憶體508中的映射表區MTZ,且被暫存在第一區域Z1的緩存單元810(1-1)(以下亦參考為第一緩存單元)中。此時,記憶體控制電路單元404(或記憶體管理電路502)會將資料寫入至可複寫式非揮發性記憶體模組406中所述邏輯位址所映射的實體程式化單元,並將邏輯位址-實體位址映射表MT(k)複製到第二區域Z2,且暫存在第一指標P1所指向的緩存單元810(2-0)(以下亦參考為第二緩存單元)中。記憶體控制電路單元404(或記憶體管理電路502)將邏輯位址-實體位址映射表MT(k)複製為邏輯位址-實體位址映射表MT(k)’,並如圖10B所示,將邏輯位址-實體位址映射表MT(k)’暫存在第二區域Z2的緩存單元810(2-0)中。並且,記憶體控制電路單元404(或記憶體管理電路502)會更新暫存在第二區域Z2中的緩存單元810(2-0)中的邏輯位址-實體位址映射表MT(k)’,且將緩存單元810(2-0)標示為已更新狀態。此外,記憶體控制電路單元404(或記憶體管理電路502)會設定第一指標P1指向第二區域Z2中的緩存單元810(2-0)的後一個不為已更新狀態的緩存單元。在本範例實施例中,緩存單元810(2-0)的後一個緩存單元810(2-1)即不為已更新狀態。因此,記憶體控制電路單元404(或記憶體管理電路502)會設定第一指標P1指向緩存單元810(2-1)。
此時,倘若從主機系統接收到指示將資料(以下亦參考為第二資料)寫入至屬於邏輯位址-實體位址映射表MT(n+3)(以下亦參考為第二邏輯位址-實體位址映射表)的邏輯位址的另一寫入指令(以下亦參考為第二寫入指令)時,記憶體控制電路單元404(或記憶體管理電路502)會判斷邏輯位址-實體位址映射表MT(n+3)已載入至緩衝記憶體508中的映射表區MTZ,且被暫存在第二區域Z2的緩存單元810(2-2)(以下亦參考為第三緩存單元)中。如圖10C所示,記憶體控制電路單元404(或記憶體管理電路502)會將資料寫入至可複寫式非揮發性記憶體模組406中所述邏輯位址所映射的實體程式化單元,並更新邏輯位址-實體位址映射表MT(n+3),且將緩存單元810(2-2)標示為已更新狀態。
此時,倘若從主機系統接收到指示將資料(以下亦參考為第三資料)寫入至屬於邏輯位址-實體位址映射表MT(x)(以下亦參考為第三邏輯位址-實體位址映射表)的邏輯位址的又一寫入指令(以下亦參考為第三寫入指令)時,記憶體控制電路單元404(或記憶體管理電路502)判斷邏輯位址-實體位址映射表MT(x)尚未被載入至緩衝記憶體508中的映射表區MTZ。因此,記憶體控制電路單元404(或記憶體管理電路502)會從可複寫式非揮發性記憶體模組406中將邏輯位址-實體位址映射表MT(x)載入至映射表區MTZ,並以第一指標P1所指向的第二區域Z2中的緩存單元810(2-1)來暫存邏輯位址-實體位址映射表MT(x)。如圖10D所示,邏輯位址-實體位址映射表MT(x)被暫存在第二區域Z2中的緩存單元810(2-1)(以下亦參考為第四緩存單元)中,且記憶體控制電路單元404(或記憶體管理電路502)會將資料寫入至可複寫式非揮發性記憶體模組406。記憶體控制電路單元404(或記憶體管理電路502)並會更新邏輯位址-實體位址映射表MT(x),且將緩存單元810(2-1)標示為已更新狀態。
更進一步地,記憶體控制電路單元404(或記憶體管理電路502)會選取第二區域Z2中緩存單元810(2-1)的後一個不為已更新狀態的緩存單元以設定第一指標P1。在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會依序判斷緩存單元810(2-1)的後一個緩存單元810(2-2)已被標示為已更新狀態。因此,記憶體控制電路單元404(或記憶體管理電路502)會依序往後尋找不為已更新狀態的緩存單元。接著,記憶體控制電路單元404(或記憶體管理電路502)會判斷緩存單元810(2-2)的後一個緩存單元810(2-3)不為已更新狀態,並設定第一指標P1指向緩存單元810(2-3)。
在本範例實施例中,當關於第一區域Z1的回存操作完成之後,即記憶體控制電路單元404(或記憶體管理電路502)已將第一區域Z1的所有緩存單元810(1-0)~810(1-n)中的邏輯位址-實體位址映射表寫入至該可複寫式非揮發性記憶體模組中,記憶體控制電路單元404(或記憶體管理電路502)會將第一區域Z1的所有緩存單元810(1-0)~810(1-n)標示為未更新狀態。如此一來,當第二區域Z2的所有緩存單元810(2-0)~810(2-n)皆被標示為已更新狀態時,記憶體控制電路單元404(或記憶體管理電路502)會啟動回存操作,以將暫存在第二區域Z2的所有緩存單元810(2-0)~810(2-n)中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組406中,同時重新設定更新區域為第一區域Z1,以持續接收來自主機系統的寫入指令的資料來執行寫入操作。除此之外,在另一範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)亦可在緩衝記憶體508中再劃分出具有連續的多個緩存單元的另一區域來暫存邏輯位址-實體位址映射表,本發明並不加以限制。
圖11A及11B是根據一範例實施例所繪示之緩衝記憶體管理方法的流程圖。
請參照圖11A,在步驟S1101中,記憶體控制電路單元404(或記憶體管理電路502)會在緩衝記憶體508中劃分出映射表區。
在步驟S1103中,記憶體控制電路單元404(或記憶體管理電路502)會將映射表區劃分為分別具有連續的多個緩存單元的第一區域與第二區域。
在步驟S1105中,記憶體控制電路單元404(或記憶體管理電路502)從可複寫式非揮發性記憶體模組中載入多個邏輯位址-實體位址映射表至第一區域與第二區域。如上所述,每一個被載入的邏輯位址-實體位址映射表是被暫存在第一區域中的其中一個緩存單元或第二區域中的其中一個緩存單元。
在步驟S1107中,記憶體控制電路單元404(或記憶體管理電路502)將更新區域設定為第一區域。
在步驟S1109中,記憶體控制電路單元404(或記憶體管理電路502)更新所述多個邏輯位址-實體位址映射表的其中一個邏輯位址-實體位址映射表,將此其中一個邏輯位址-實體位址映射表暫存至第一區域的緩存單元之中的其中一個緩存單元,並且將第一區域中的此其中一個緩存單元標示為已更新狀態。具體而言,記憶體控制電路單元404(或記憶體管理電路502)會根據從主機系統11所接收的寫入指令來更新邏輯位址-實體位址映射表,相關操作方式已於前述的範例實施例中說明,在此不再贅述。
在步驟S1111中,倘若第一區域的所有緩存單元皆被標示為已更新狀態時,記憶體控制電路單元404(或記憶體管理電路502)將暫存在第一區域的所有緩存單元中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中。然而,記憶體控制電路單元404(或記憶體管理電路502)也會在其他時間點啟動回存操作,並已於前述內容中舉例說明,在此不再贅述。
倘若在將暫存在第一區域的所有緩存單元中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中期間,從主機系統11接收到寫入指令,將另外執行圖11B的流程。
請參照圖11B,在步驟S1113中,記憶體控制電路單元404(或記憶體管理電路502)從主機系統接收到指示將資料寫入至屬於一邏輯位址-實體位址映射表的一邏輯位址的寫入指令。
在步驟S1115中,記憶體控制電路單元404(或記憶體管理電路502)將更新區域更改為第二區域。
在步驟S1117中,記憶體控制電路單元404(或記憶體管理電路502)判斷此邏輯位址所屬的邏輯位址-實體位址映射表是否已被暫存在第一區域或第二區域中。
在步驟S1119中,倘若此邏輯位址所屬的邏輯位址-實體位址映射表已被暫存在第一區域的緩存單元(以下亦參考為第一緩存單元)中,記憶體控制電路單元404(或記憶體管理電路502)將資料寫入至可複寫式非揮發性記憶體模組,且將第一區域中的第一緩存單元中的邏輯位址-實體位址映射表複製到第二區域中的緩存單元(以下亦參考為第二緩存單元)中。
在步驟S1121中,記憶體控制電路單元404(或記憶體管理電路502)更新暫存在第二區域中的第二緩存單元中的邏輯位址-實體位址映射表,並將第二緩存單元標示為已更新狀態。
在步驟S1123中,倘若此邏輯位址所屬的邏輯位址-實體位址映射表已被暫存在第二區域的緩存單元(以下亦參考為第三緩存單元)中,記憶體控制電路單元404(或記憶體管理電路502)將資料寫入至可複寫式非揮發性記憶體模組,更新暫存在第二區域中的第三緩存單元中的邏輯位址-實體位址映射表,並將第三緩存單元標示為已更新狀態。
在步驟S1125中,倘若此邏輯位址所屬的邏輯位址-實體位址映射表尚未被暫存在第一區域或第二區域,記憶體控制電路單元404(或記憶體管理電路502)從可複寫式非揮發性記憶體模組載入此邏輯位址所屬的邏輯位址-實體位址映射表並暫存在第二區域的緩存單元(以下亦參考為第四緩存單元)中。
在步驟S1127中,記憶體控制電路單元404(或記憶體管理電路502)將資料寫入至可複寫式非揮發性記憶體模組,更新暫存在第二區域中的第四緩存單元中的邏輯位址-實體位址映射表,並將第四緩存單元標示為已更新狀態。
在步驟S1129中,倘若第二區域的所有緩存單元皆被標示為已更新狀態時,記憶體控制電路單元404(或記憶體管理電路502)將暫存在第二區域的所有緩存單元中的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組中。然而,記憶體控制電路單元404(或記憶體管理電路502)也會在其他時間點啟動回存操作,並已於前述內容中舉例說明,在此不再贅述。
綜上所述,本發明所提供的緩衝記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置,是在緩衝記憶體中劃分出具有連續緩存單元的特定區域,並將更新區域設定為特定區域,以將被更新的邏輯位址-實體位址映射表集中暫存在更新區域中。如此一來,當要將緩衝記憶體中的已更新的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組時,便可根據實體程式化單元的大小,直接將更新區域中的已更新的邏輯位址-實體位址映射表寫入至實體程式化單元,而無須另外執行複製與收集的操作。且透過將此特定區域設定為特定大小,可在進行回存操作時,避免因需處理的資料量過大而造成系統負載過重的問題,進而有效提升回存操作的處理速度。此外,透過更改更新區域的方式,使得在將緩衝記憶體中的已更新的邏輯位址-實體位址映射表回存至可複寫式非揮發性記憶體模組的期間,可持續從主機系統接收寫入指令的資料,並執行寫入操作,避免因等待時間過長而導致寫入失敗的情況,提升系統的穩定性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧電腦
13‧‧‧輸入/輸出裝置
122‧‧‧微處理器
124‧‧‧隨機存取記憶體(RAM)
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
810(1-0)~810(1-n)、810(2-0)~810(2-n)‧‧‧緩存單元
MTZ‧‧‧映射表區
Z1‧‧‧第一區域
Z2‧‧‧第二區域
MT(0)~MT(2n)、MT(k)、MT(k)’、MT(s)、MT(x)‧‧‧邏輯位址-實體位址映射表
S1101、S1103、S1105、S1107、S1109、S1111、S1113、S1115、S1117、S1119、S1121、S1123、S1125、S1127、S1129‧‧‧緩衝記憶體管理方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。 圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。 圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。 圖8是根據一範例實施例所繪示之緩衝記憶體的示意圖。 圖9A~9F是根據一範例實施例所繪示之緩衝記憶體管理方法的示意圖。 圖10A~10D是根據另一範例實施例所繪示之緩衝記憶體管理方法的示意圖。 圖11A及11B是根據一範例實施例所繪示之緩衝記憶體管理方法的流程圖。
S1113、S1115、S1117、S1119、S1121、S1123、S1125、S1127、S1129‧‧‧緩衝記憶體管理方法的步驟

Claims (18)

  1. 一種緩衝記憶體管理方法,用於一記憶體儲存裝置的一緩衝記憶體,其中該記憶體儲存裝置具有一可複寫式非揮發性記憶體模組,該緩衝記憶體管理方法包括: 在該緩衝記憶體中劃分出一第一區域與一第二區域,其中該第一區域與該第二區域分別地具有連續的多個緩存單元,並且該第一區域與該第二區域中的該些緩存單元中的至少一部份緩存單元已暫存多個邏輯位址-實體位址映射表; 對該第一區域的該些緩存單元執行一回存操作以將儲存在該第一區域的該些邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組中; 從一主機系統接收一第一寫入指令,其中該第一寫入指令指示將一第一資料寫入至一第一邏輯位址,並且該第一邏輯位址所屬的一第一邏輯位址-實體位址映射表已被暫存在該第一區域的緩存單元之中的一第一緩存單元中; 寫入該第一資料至該可複寫式非揮發性記憶體模組,並將該第一區域中的該第一邏輯位址-實體位址映射表複製到該第二區域中的緩存單元之中的一第二緩存單元中;以及 更新暫存在該第二區域中的該第二緩存單元中的該第一邏輯位址-實體位址映射表。
  2. 如申請專利範圍第1項所述的緩衝記憶體管理方法,其中更新暫存在該第二區域中的該第二緩存單元中的該第一邏輯位址-實體位址映射表的步驟,更包括: 將該第二緩存單元標示為一已更新狀態,並將該第二區域設定為一更新區域,其中該更新區域用以暫存多個被更新的邏輯位址-實體位址映射表。
  3. 如申請專利範圍第2項所述的緩衝記憶體管理方法,更包括: 在該第二區域的所有緩存單元皆為該已更新狀態時,將該第二區域的所有緩存單元中的該些邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組中。
  4. 如申請專利範圍第2項所述的緩衝記憶體管理方法,更包括: 根據該第二區域中的緩存單元的順序,選取該第二區域中的第一個緩存單元作為該第二緩存單元,並設定一第一指標指向該第二緩存單元;以及 在將該第一邏輯位址-實體位址映射表複製到該第二區域中的該第二緩存單元之後,設定該第一指標指向該第二區域的緩存單元之中的另一個緩存單元,其中該另一個緩存單元為該第二緩存單元的後一個不為該已更新狀態的緩存單元。
  5. 如申請專利範圍第2項所述的緩衝記憶體管理方法,更包括: 從該主機系統接收一第二寫入指令,其中該第二寫入指令指示將一第二資料寫入至一第二邏輯位址,並且該第二邏輯位址所屬的一第二邏輯位址-實體位址映射表已被暫存在該第二區域的緩存單元之中的一第三緩存單元中;以及 寫入該第二資料至該可複寫式非揮發性記憶體模組,並更新暫存在該第二區域中的該第三緩存單元中的該第二邏輯位址-實體位址映射表。
  6. 如申請專利範圍第2項所述的緩衝記憶體管理方法,更包括: 從該主機系統接收一第三寫入指令,其中該第三寫入指令指示將一第三資料寫入至一第三邏輯位址,並且該第三邏輯位址所屬的一第三邏輯位址-實體位址映射表尚未載入至該映射表區; 從該可複寫式非揮發性記憶體模組中載入該第三邏輯位址-實體位址映射表,並且該第三邏輯位址-實體位址映射表被暫存在該第二區域的緩存單元之中的一第四緩存單元中;以及 寫入該第三資料至該可複寫式非揮發性記憶體模組,並更新暫存在該第二區域中的該第四緩存單元中的該第三邏輯位址-實體位址映射表。
  7. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組; 一緩衝記憶體,耦接至該主機介面及該記憶體介面;以及 一記憶體管理電路,耦接至該主機介面、該記憶體介面與該緩衝記憶體,並且用以在該緩衝記憶體中劃分出一第一區域與一第二區域,其中該第一區域與該第二區域分別地具有連續的多個緩存單元,並且該第一區域與該第二區域中的該些緩存單元中的至少一部份緩存單元已暫存多個邏輯位址-實體位址映射表, 其中,該記憶體管理電路更用以對該第一區域的該些緩存單元執行一回存操作以將儲存在該第一區域的該些邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組中, 其中,該記憶體管理電路更用以從該主機系統接收一第一寫入指令,該第一寫入指令指示將一第一資料寫入至一第一邏輯位址,並且該第一邏輯位址所屬的一第一邏輯位址-實體位址映射表已被暫存在該第一區域的緩存單元之中的一第一緩存單元中, 其中,該記憶體管理電路更用以寫入該第一資料至該可複寫式非揮發性記憶體模組,並將該第一區域中的該第一邏輯位址-實體位址映射表複製到該第二區域中的緩存單元之中的一第二緩存單元中, 其中,該記憶體管理電路更用以更新暫存在該第二區域中的該第二緩存單元中的該第一邏輯位址-實體位址映射表。
  8. 如申請專利範圍第7項所述的記憶體控制電路單元,其中該記憶體管理電路更用以將該第二緩存單元標示為一已更新狀態,並將該第二區域設定為一更新區域,其中該更新區域用以暫存多個被更新的邏輯位址-實體位址映射表。
  9. 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以在該第二區域的所有緩存單元皆為該已更新狀態時,將該第二區域的所有緩存單元中的該些邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組中。
  10. 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第二區域中的緩存單元的順序,選取該第二區域中的第一個緩存單元作為該第二緩存單元,並設定一第一指標指向該第二緩存單元, 其中,在將該第一區域中的該第一邏輯位址-實體位址映射表複製到該第二區域中的該第二緩存單元中之後,該記憶體管理電路更用以設定該第一指標指向該第二區域的緩存單元之中的另一個緩存單元,其中該另一個緩存單元為該第二緩存單元的後一個不為該已更新狀態的緩存單元。
  11. 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以從該主機系統接收一第二寫入指令,該第二寫入指令指示將一第二資料寫入至一第二邏輯位址,並且該第二邏輯位址所屬的一第二邏輯位址-實體位址映射表已被暫存在該第二區域的緩存單元之中的一第三緩存單元中, 其中,該記憶體管理電路更用以寫入該第二資料至該可複寫式非揮發性記憶體模組,並更新暫存在該第二區域中的該第三緩存單元中的該第二邏輯位址-實體位址映射表。
  12. 如申請專利範圍第8項所述的記憶體控制電路單元,其中該記憶體管理電路更用以從該主機系統接收一第三寫入指令,該第三寫入指令指示將一第三資料寫入至一第三邏輯位址,並且該第三邏輯位址所屬的一第三邏輯位址-實體位址映射表尚未載入至該映射表區, 其中,該記憶體管理電路更用以從該可複寫式非揮發性記憶體模組中載入該第三邏輯位址-實體位址映射表,並且該第三邏輯位址-實體位址映射表被暫存在該第二區域的緩存單元之中的一第四緩存單元中, 其中,該記憶體管理電路更用以寫入該第三資料至該可複寫式非揮發性記憶體模組,並更新暫存在該第二區域中的該第四緩存單元中的該第三邏輯位址-實體位址映射表。
  13. 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,並且包括一緩衝記憶體,並且用以在該緩衝記憶體中劃分出一第一區域與一第二區域,其中該第一區域與該第二區域分別地具有連續的多個緩存單元,並且該第一區域與該第二區域中的該些緩存單元中的至少一部份緩存單元已暫存多個邏輯位址-實體位址映射表, 其中,該記憶體控制電路單元更用以對該第一區域的該些緩存單元執行一回存操作以將儲存在該第一區域的該些邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組中, 其中,該記憶體控制電路單元更用以從該主機系統接收一第一寫入指令,該第一寫入指令指示將一第一資料寫入至一第一邏輯位址,並且該第一邏輯位址所屬的一第一邏輯位址-實體位址映射表已被暫存在該第一區域的緩存單元之中的一第一緩存單元中 其中,該記憶體控制電路單元更用以寫入該第一資料至該可複寫式非揮發性記憶體模組,並將該第一區域中的該第一邏輯位址-實體位址映射表複製到該第二區域中的緩存單元之中的一第二緩存單元中, 其中,該記憶體控制電路單元更用以更新暫存在該第二區域中的該第二緩存單元中的該第一邏輯位址-實體位址映射表。
  14. 如申請專利範圍第13項所述的記憶體儲存裝置,其中記憶體控制電路單元更用以將該第二緩存單元標示為一已更新狀態,並將該第二區域設定為一更新區域,其中該更新區域用以暫存多個被更新的邏輯位址-實體位址映射表。
  15. 如申請專利範圍第14項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以在該第二區域的所有緩存單元皆為該已更新狀態時,將該第二區域的所有緩存單元中的該些邏輯位址-實體位址映射表回存至該可複寫式非揮發性記憶體模組中。
  16. 如申請專利範圍第14項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第二區域中的緩存單元的順序,選取該第二區域中的第一個緩存單元作為該第二緩存單元,並設定一第一指標指向該第二緩存單元, 其中,在將該第一區域中的該第一邏輯位址-實體位址映射表複製到該第二區域中的該第二緩存單元中之後,該記憶體控制電路單元更用以設定該第一指標指向該第二區域的緩存單元之中的另一個緩存單元,其中該另一個緩存單元為該第二緩存單元的後一個不為該已更新狀態的緩存單元。
  17. 如申請專利範圍第14項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以從該主機系統接收一第二寫入指令,該第二寫入指令指示將一第二資料寫入至一第二邏輯位址,並且該第二邏輯位址所屬的一第二邏輯位址-實體位址映射表已被暫存在該第二區域的緩存單元之中的一第三緩存單元中, 其中,該記憶體控制電路單元更用以寫入該第二資料至該可複寫式非揮發性記憶體模組,並更新暫存在該第二區域中的該第三緩存單元中的該第二邏輯位址-實體位址映射表。
  18. 如申請專利範圍第14項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以從該主機系統接收一第三寫入指令,該第三寫入指令指示將一第三資料寫入至一第三邏輯位址,並且該第三邏輯位址所屬的一第三邏輯位址-實體位址映射表尚未載入至該映射表區, 其中,該記憶體控制電路單元更用以從該可複寫式非揮發性記憶體模組中載入該第三邏輯位址-實體位址映射表,並且該第三邏輯位址-實體位址映射表被暫存在該第二區域的緩存單元之中的一第四緩存單元中, 其中,該記憶體控制電路單元更用以寫入該第三資料至該可複寫式非揮發性記憶體模組,並更新暫存在該第二區域中的該第四緩存單元中的該第三邏輯位址-實體位址映射表。
TW104137866A 2015-11-17 2015-11-17 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 TWI584122B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104137866A TWI584122B (zh) 2015-11-17 2015-11-17 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US15/007,222 US9772797B2 (en) 2015-11-17 2016-01-27 Buffer memory management method, memory control circuit unit and memory storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104137866A TWI584122B (zh) 2015-11-17 2015-11-17 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TWI584122B TWI584122B (zh) 2017-05-21
TW201719415A true TW201719415A (zh) 2017-06-01

Family

ID=58691091

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104137866A TWI584122B (zh) 2015-11-17 2015-11-17 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9772797B2 (zh)
TW (1) TWI584122B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888588A (zh) * 2018-09-07 2020-03-17 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关的访问方法及电子装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360156B2 (en) * 2016-08-04 2019-07-23 Samsung Electronics Co., Ltd. Data storage device using host memory and method of operating same
JP6867156B2 (ja) * 2016-12-28 2021-04-28 ルネサスエレクトロニクス株式会社 半導体装置
US11221956B2 (en) * 2017-05-31 2022-01-11 Seagate Technology Llc Hybrid storage device with three-level memory mapping
KR102457564B1 (ko) * 2017-09-20 2022-10-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
TWI661303B (zh) * 2017-11-13 2019-06-01 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN110471612B (zh) * 2018-05-09 2022-09-16 深圳大心电子科技有限公司 存储器管理方法以及存储控制器
KR102589402B1 (ko) 2018-10-04 2023-10-13 삼성전자주식회사 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
KR20200059936A (ko) * 2018-11-22 2020-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US20210097004A1 (en) * 2020-12-15 2021-04-01 Intel Corporation Logical to physical address indirection table in a persistent memory in a solid state drive
WO2022139990A1 (en) * 2020-12-21 2022-06-30 Arris Enterprises Llc Method and system for memory management on the basis of zone allocations and optimization using improved lmk
CN116149572A (zh) * 2023-02-24 2023-05-23 合肥兆芯电子有限公司 映射表更新方法、存储器存储装置及存储器控制电路单元

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005099350A2 (en) * 2004-04-14 2005-10-27 Coreflow Scientific Solutions Ltd. Non-contact support platforms for distance adjustment
US20080250188A1 (en) * 2004-12-22 2008-10-09 Matsushita Electric Industrial Co., Ltd. Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Control Method
US8397014B2 (en) * 2008-02-04 2013-03-12 Apple Inc. Memory mapping restore and garbage collection operations
JP5295286B2 (ja) * 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
US20140328127A1 (en) * 2013-05-02 2014-11-06 Skymedi Corporation Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
TWI498899B (zh) * 2013-08-23 2015-09-01 Phison Electronics Corp 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI516934B (zh) * 2013-12-30 2016-01-11 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
US9448745B2 (en) * 2014-03-13 2016-09-20 NXGN Data, Inc. Configurable read-modify-write engine and method for operating the same in a solid state drive

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888588A (zh) * 2018-09-07 2020-03-17 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关的访问方法及电子装置
CN110888588B (zh) * 2018-09-07 2023-09-01 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关的访问方法及电子装置

Also Published As

Publication number Publication date
US20170139642A1 (en) 2017-05-18
US9772797B2 (en) 2017-09-26
TWI584122B (zh) 2017-05-21

Similar Documents

Publication Publication Date Title
TWI584122B (zh) 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI537728B (zh) 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI533308B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI506430B (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
TWI681295B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI515735B (zh) 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
TWI454911B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
TWI470431B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI476590B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI571882B (zh) 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置
TW201729099A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI602061B (zh) 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元
TWI438630B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN108733577B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TW201344434A (zh) 記憶體格式化方法、記憶體控制器及記憶體儲存裝置
TWI629590B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TW201903779A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI533309B (zh) 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
TW201413450A (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI571881B (zh) 有效資料合併方法、記憶體控制器與記憶體儲存裝置
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置