TW201407349A - 資料管理方法、記憶體控制器與記憶體儲存裝置 - Google Patents

資料管理方法、記憶體控制器與記憶體儲存裝置 Download PDF

Info

Publication number
TW201407349A
TW201407349A TW101127807A TW101127807A TW201407349A TW 201407349 A TW201407349 A TW 201407349A TW 101127807 A TW101127807 A TW 101127807A TW 101127807 A TW101127807 A TW 101127807A TW 201407349 A TW201407349 A TW 201407349A
Authority
TW
Taiwan
Prior art keywords
unit
memory
data
physical
entity
Prior art date
Application number
TW101127807A
Other languages
English (en)
Other versions
TWI495998B (zh
Inventor
Yi-Hsiang Huang
Chao-Ming Chan
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 TW101127807A priority Critical patent/TWI495998B/zh
Priority to US13/633,140 priority patent/US9442834B2/en
Publication of TW201407349A publication Critical patent/TW201407349A/zh
Application granted granted Critical
Publication of TWI495998B publication Critical patent/TWI495998B/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
    • 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/7211Wear leveling

Abstract

一種資料管理方法,用於包括第一記憶單元與第二記憶單元的可複寫式非揮發性記憶體模組。此方法包括:將第一記憶單元的多個實體抹除單元劃分出資料區與閒置區,並且將第二記憶單元的多個實體抹除單元劃分出備份資料區與指令記錄區;配置多個邏輯位址以映射到關聯至資料區的實體抹除單元;接收指示將資料寫入的寫入指令:將資料寫入到關聯至閒置區的一個實體抹除單元,並且將資料寫入到關聯至備份資料區的一個實體抹除單元;將至少部份的寫入指令紀錄在關聯至指令記錄區的實體抹除單元。藉此,可以在可複寫式非揮發性記憶體模組中備份資料。

Description

資料管理方法、記憶體控制器與記憶體儲存裝置
本發明是有關於一種用於可複寫式非揮發性記體模組的資料管理方法、記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,一個可複寫式非揮發性記憶體模組會包括多個實體區塊。一個實體區塊在被抹除之前並無法被寫入新的資料。因此,一個記憶體控制器需要透過整併與搬移的操作來管理可複寫式非揮發性記憶體模組。當可複寫式非揮發性記憶體模組被用來備份資料時,若使用廉價磁碟冗餘陣列-1(Redundant Array of Inexpensive Disks-1,RAID-1)的方式來備份資料,則上述整併與搬移的操作會被執行兩次,造成系統額外的負荷。因此,如何在可複寫式非揮發性記憶體模組中有效地備份資料,為此領域研究人員所關心的議題。
本發明的範例實施例中提出一種資料管理方法、記憶體控制器與記憶體儲存裝置,可以在可複寫式非揮發性記體模組中備份資料。
本發明一範例實施例提出一種資料管理方法,用於可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體包括第一記憶單元與第二記憶單元。第一記憶單元包括多個第一實體抹除單元,並且第二記憶單元包括多個第二實體抹除單元。此資料管理方法包括:將第一實體抹除單元至少劃分出資料區與閒置區,並且將第二實體抹除單元至少劃分出備份資料區與指令記錄區;配置多個邏輯位址以映射至關聯至資料區的第一實體抹除單元;接收一個寫入指令,此寫入指令指示將第一資料寫入到至少一個第一邏輯位址;將第一資料寫入第一實體抹除單元中關聯至閒置區的其中之一,並且將第一資料寫入至第二實體抹除單元中關聯至備份資料區的其中之一;以及,將至少部份的寫入指令紀錄在第二實體抹除單元中關聯至指令記錄區的其中之一。
在一範例實施例中,上述的第一資料包括第一部分與第二部份。上述將第一資料寫入至第一實體抹除單元中關聯至閒置區的其中之一,並且將第一資料寫入至第二實體抹除單元中關聯至備份資料區的其中之一的步驟包括:致能第一記憶單元,並且傳送第一指令至第一記憶單元,其中第一指令是用以指示第一部份欲被寫入;致能第二記憶 單元,並且傳送第一指令至第二記憶單元;同時將第一部份傳送至第一記憶單元與第二記憶單元;致能第一記憶單元與第二記憶單元,並且同時傳送第二指令至第一記憶單元與第二記憶單元,其中第二指令用以表示第一部分已傳送完畢;致能第一記憶單元,並且傳送第三指令至第一記憶單元,其中第三指令用以指示第二部分欲被寫入;致能第二記憶單元,並且傳送第三指令至第二記憶單元;同時將第二部份傳送至第一記憶單元與第二記憶單元;以及,致能第一記憶單元與第二記憶單元,同時傳送第四指令至第一記憶單元與第二記憶單元,其中第四指令用以指示將第一部分與第二部分寫入。
在一範例實施例中,上述的第一資料是被寫入至第二實體抹除單元中關聯至備份資料區的一個第三實體抹除單元。上述將寫入指令紀錄在第二實體抹除單元中關聯至指令記錄區的其中之一的步驟包括:將第三實體抹除單元的一個初始實體位址以及第一資料的一個資料長度寫入至第二實體抹除單元中關聯至指令記錄區的其中之一。此第一資料是從初始實體位址開始被寫入。
在一範例實施例中,上述將第一資料寫入至第二實體抹除單元中關聯至備份資料區的其中之一的步驟還包括:建立一個前指標,此前指標指向第二實體抹除單元中關聯至備份資料區的一個第四實體抹除單元中的一個第一實體程式化單元;建立一個後指標,此後指標指向第二實體抹除單元中關聯至備份資料區的一個第五實體抹除單元;將 第一資料寫入至第一實體程式化單元;判斷關聯至備份資料區的第二實體抹除單元的一個閒置記憶體空間是否足夠寫入第一資料;若此閒置記憶體空間不足夠寫入第一資料時,抹除第五實體抹除單元,將第一資料寫入至第五實體抹除單元,將後指標移動至第六實體抹除單元,並將前指標移動至接續在第一資料後的實體程式化單元。
在一範例實施例中,上述判斷閒置記憶體空間是否足夠寫入第一資料的步驟包括:判斷第一實體程式化單元的實體位址與上述資料長度的和是否超過第五實體抹除單元的實體位址;若第一實體程式化單元的實體位址與資料長度的和超過第五實體抹除單元的實體位址,則判斷閒置記憶體空間不足夠寫入第一資料。上述的第六實體抹除單元的程式化順序接續在第五實體抹除單元之後。
在一範例實施例中,上述的每一個第二實體抹除單元包括多個實體程式化單元。上述將寫入指令紀錄在關聯至指令記錄區的第二實體抹除單元的步驟包括:將指令記錄區的第二實體抹除單元劃分為第一指令記錄區與第二指令記錄區;建立第一指標與第二指標,其中第一指標與第二指標指向第二實體程式化單元中關聯至第一指令記錄區的其中之一或指向第二實體程式化單元中關聯至第二指令記錄區的其中之一;將寫入指令紀錄在第二指標所指向的實體程式化單元,並且將第二指標移動至下一個實體程式化單元;以及,當第一指標與第二指標皆指向第二指令記錄區時,抹除第二實體抹除單元中關聯至第一指令記錄區的 其中之一。
在一範例實施例中,上述的資料管理方法,更包括;從關聯至指令記錄區的第二實體抹除單元中讀取第三實體抹除單元的初始實體位址以及第一資料的資料長度;根據第一資料的資料長度以及第三實體抹除單元的初始實體位址,從備份資料區中讀取第一資料;以及將第一資料寫入至所述第一實體抹除單元的其中之一。
在一範例實施例中,上述的資料管理方法,更包括:將第一實體抹除單元更劃分出系統區;以及將第一指標、第二指標、前指標以及後指標寫入至第一實體抹除單元中關聯至系統區的其中之一。
在一範例實施例中,上述的每一個第二實體抹除單元包括多個實體程式化單元組,每一個實體程式化單元組包括下實體程式化單元與上實體程式化單元。下實體程式化單元的寫入速度大於上實體程式化單元的寫入速度。上述將寫入指令紀錄在第二實體抹除單元中關聯至指令記錄區的其中之一的步驟包括:僅使用關聯智指令記錄區的第二實體抹除單元的下實體程式化單元來紀錄所述至少部份的寫入指令。
在一範例實施例中,上述的資料管理方法更包括:對位於第一實體抹除單元中相關於第一資料之有效資料與第一資料執行一個資料合併程序。位於第二實體抹除單元中相關於第一資料之有效資料不與第一資料進行資料合併程序。
在一範例實施例中,上述的資料管理方法,更包括:執行一個第一平均磨損程序於第一實體抹除單元;以及執行一個第二平均磨損程序於第二實體抹除單元。其中,第一平均磨損程序不同於第二平均磨損程序,並且第一實體抹除單元之間的交換頻率高於第二實體抹除單元之間的交換頻率。
以另外一個角度來說,本發明一範例實施例提出一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器是用以耦接至主機系統。可複寫式非揮發性記憶體模組包括第一記憶單元與第二記憶單元。第一記憶單元包括多個第一實體抹除單元,並且第二記憶單元包括多個第二實體抹除單元。記憶體控制器是耦接至連接器與可複寫式非揮發性記憶體模組,用以將第一實體抹除單元至少劃分出資料區與閒置區,將第二實體抹除單元至少劃分出備份資料區與指令記錄區,並且配置多個邏輯位址以映射至關聯至資料區的第一實體抹除單元。記憶體控制器也用以接收寫入指令,此寫入指令指示將第一資料寫入到至少一個第一邏輯位址。記憶體控制器也用以將第一資料寫入至第一實體抹除單元中關聯至閒置區的其中之一,將第一資料寫入至第二實體抹除單元中關聯至備份資料區的其中之一,並且將至少部分的寫入指令紀錄在第二實體抹除單元中關聯至指令記錄區的其中之一。
在一範例實施例中,上述的第一資料包括第一部分與 第二部份。記憶體控制器還用以致能第一記憶單元,並且傳送第一指令至第一記憶單元,其中第一指令是用以指示第一部份欲被寫入。記憶體控制器還用以致能第二記憶單元,傳送第一指令至第二記憶單元,並且同時將第一部份傳送至第一記憶單元與第二記憶單元。記憶體控制器還用以致能第一記憶單元與第二記憶單元,並且同時傳送第二指令至第一記憶單元與第二記憶單元,其中第二指令用以表示第一部分已傳送完畢。記憶體控制器還用以致能第一記憶單元,並且傳送第三指令至第一記憶單元,其中第三指令用以指示第二部分欲被寫入。記憶體控制器還用以致能第二記憶單元,傳送第三指令至第二記憶單元,並且同時將第二部份傳送至第一記憶單元與第二記憶單元。記憶體控制器還用以致能第一記憶單元與第二記憶單元,並且同時傳送第四指令至第一記憶單元與第二記憶單元,其中第四指令用以指示將第一部分與第二部分寫入。
在一範例實施例中,上述的第一資料是被寫入至第二實體抹除單元中關聯至備份資料區的第三實體抹除單元。記憶體控制器還用以將第三實體抹除單元的初始實體位址以及第一資料的資料長度寫入至第二實體抹除單元中關聯至指令記錄區的其中之一。其中,第一資料是從初始實體位址開始被寫入。
在一範例實施例中,上述的記憶體控制器還用以建立一個前指標,此前指標指向第二實體抹除單元關聯至備份資料區的第四實體抹除單元中的第一實體程式化單元。記 憶體控制器還用以建立一個後指標,此後指標指向第二實體抹除單元中關聯至備份資料區的第五實體抹除單元。記憶體控制器還用以將第一資料寫入至第一實體程式化單元,並判斷關聯至備份資料區的第二實體抹除單元的一個閒置記憶體空間是否足夠寫入第一資料。若閒置記憶體空間不足夠寫入第一資料時,記憶體控制器還用以抹除第五實體抹除單元,將第一資料寫入至第五實體抹除單元,將後指標移動至第六實體抹除單元,並將前指標移動至接續在第一資料後的實體程式化單元。
在一範例實施例中,上述的記憶體控制器還用以判斷第一實體程式化單元的實體位址與上述資料長度的和是否超過第五實體抹除單元的實體位址。若第一實體程式化單元的實體位址與資料長度的和超過第五實體抹除單元的實體位址,記憶體控制器判斷閒置記憶體空間不足夠寫入第一資料。其中,第六實體抹除單元的程式化順序是接續在第五實體抹除單元之後。
在一範例實施例中,上述的每一個第二實體抹除單元包括多個實體程式化單元。記憶體控制器還用以將指令記錄區的第二實體抹除單元劃分為第一指令記錄區與第二指令記錄區,並且建立第一指標與第二指標。第一指標與第二指標是指向第二實體抹除單元中關聯至第一指令記錄區的其中之一或指向實體程式化單元中關聯至第二指令記錄區的其中之一。記憶體控制器還用以將寫入指令紀錄在第二指標所指向的實體程式化單元,並且將第二指標移動至 下一個實體程式化單元。當第一指標與第二指標皆指向第二指令記錄區時,記憶體控制器還用以抹除第二實體抹除單元中關聯至第一指令記錄區的其中之一。
在一範例實施例中,上述的記憶體控制器還用以從關聯至指令記錄區的第二實體抹除單元中讀取第三實體抹除單元的初始實體位址以及第一資料的資料長度。記憶體控制器還用以根據第一資料的資料長度以及第三實體抹除單元的初始實體位址,從備份資料區中讀取第一資料。記憶體控制器還用以將第一資料寫入至所述第一實體抹除單元的其中之一。
在一範例實施例中,上述的記憶體控制器還用以將第一實體抹除單元更劃分出一個系統區,並且將第一指標、第二指標、前指標以及後指標寫入至第一實體抹除單元中關聯至系統區的其中之一。
在一範例實施例中,上述的每一個第二實體抹除單元包括多個實體程式化單元組,每一實體程式化單元組包括下實體程式化單元與上實體程式化單元,並且下實體程式化單元的寫入速度大於上實體程式化單元的寫入速度。記憶體控制器還用以僅使用關聯至指令記錄區的第二實體抹除單元的下實體程式化單元來紀錄所述至少部分的寫入指令。
在一範例實施例中,上述的記憶體控制器還用以對位於第一實體抹除單元中相關於第一資料之有效資料與第一資料執行一個資料合併程序。其中,位於第二實體抹除單 元中相關於第一資料的有效資料不與第一資料進行資料合併程序。
在一範例實施例中,上述的記憶體控制器還用以執行第一平均磨損程序於第一實體抹除單元,並且執行第二平均磨損程序於第二實體抹除單元。其中,第一平均磨損程序不同於第二平均磨損程序,且第一實體抹除單元之間的交換頻率高於第二實體抹除單元之間的交換頻率。
以另外一個角度來說,本發明一範例實施例提出一種記憶體控制器,包括主機介面、記憶體介面與記憶體管理電路。主機介面是用以耦接至主機系統。記憶體面是用以耦接至可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組包括第一記憶單元與第二記憶單元。第一記憶單元包括多個第一實體抹除單元,並且第二記憶單元包括多個第二實體抹除單元。記憶體管理電路是耦接至主機介面與記憶體介面,用以將第一實體抹除單元至少劃分出資料區與閒置區,將第二實體抹除單元至少劃分出備份資料區與指令記錄區,並且配置多個邏輯位址以映射至關聯至資料區的第一實體抹除單元。記憶體管理電路也用以接收寫入指令,此寫入指令指示將第一資料寫入到至少一個第一邏輯位址。記憶體管理電路也用以將第一資料寫入至第一實體抹除單元中關聯至閒置區的其中之一,將第一資料寫入至第二實體抹除單元中關聯至備份資料區的其中之一,並且將至少部分的寫入指令紀錄在第二實體抹除單元中關聯至指令記錄區的其中之一。
在一範例實施例中,上述的第一資料包括第一部分與第二部份。記憶體管理電路還用以致能第一記憶單元,並且傳送第一指令至第一記憶單元,其中第一指令是用以指示第一部份欲被寫入。記憶體管理電路還用以致能第二記憶單元,傳送第一指令至第二記憶單元,並且同時將第一部份傳送至第一記憶單元與第二記憶單元。記憶體管理電路還用以致能第一記憶單元與第二記憶單元,並且同時傳送第二指令至第一記憶單元與第二記憶單元,其中第二指令用以表示第一部分已傳送完畢。記憶體管理電路還用以致能第一記憶單元,並且傳送第三指令至第一記憶單元,其中第三指令用以指示第二部分欲被寫入。記憶體管理電路還用以致能第二記憶單元,傳送第三指令至第二記憶單元,並且同時將第二部份傳送至第一記憶單元與第二記憶單元。記憶體管理電路還用以致能第一記憶單元與第二記憶單元,並且同時傳送第四指令至第一記憶單元與第二記憶單元,其中第四指令用以指示將第一部分與第二部分寫入。
在一範例實施例中,上述的第一資料是被寫入至第二實體抹除單元中關聯至備份資料區的第三實體抹除單元。記憶體管理電路還用以將第三實體抹除單元的初始實體位址以及第一資料的資料長度寫入至第二實體抹除單元中關聯至指令記錄區的其中之一。其中,第一資料是從初始實體位址開始被寫入。
在一範例實施例中,上述的記憶體管理電路還用以建 立一個前指標,此前指標指向第二實體抹除單元關聯至備份資料區的第四實體抹除單元中的第一實體程式化單元。記憶體管理電路還用以建立一個後指標,此後指標指向第二實體抹除單元中關聯至備份資料區的第五實體抹除單元。記憶體管理電路還用以將第一資料寫入至第一實體程式化單元,並判斷關聯至備份資料區的第二實體抹除單元的一個閒置記憶體空間是否足夠寫入第一資料。若閒置記憶體空間不足夠寫入第一資料時,記憶體管理電路還用以抹除第五實體抹除單元,將第一資料寫入至第五實體抹除單元,將後指標移動至第六實體抹除單元,並將前指標移動至接續在第一資料後的實體程式化單元。
在一範例實施例中,上述的記憶體管理電路還用以判斷第一實體程式化單元的實體位址與上述資料長度的和是否超過第五實體抹除單元的實體位址。若第一實體程式化單元的實體位址與資料長度的和超過第五實體抹除單元的實體位址,記憶體管理電路判斷閒置記憶體空間不足夠寫入第一資料。其中,第六實體抹除單元的程式化順序是接續在第五實體抹除單元之後。
在一範例實施例中,上述的每一個第二實體抹除單元包括多個實體程式化單元。記憶體管理電路還用以將指令記錄區的第二實體抹除單元劃分為第一指令記錄區與第二指令記錄區,並且建立第一指標與第二指標。第一指標與第二指標是指向第二實體抹除單元中關聯至第一指令記錄區的其中之一或指向實體程式化單元中關聯至第二指令記 錄區的其中之一。記憶體管理電路還用以將寫入指令紀錄在第二指標所指向的實體程式化單元,並且將第二指標移動至下一個實體程式化單元。當第一指標與第二指標皆指向第二指令記錄區時,記憶體管理電路還用以抹除第二實體抹除單元中關聯至第一指令記錄區的其中之一。
在一範例實施例中,上述的記憶體管理電路還用以從關聯至指令記錄區的第二實體抹除單元中讀取第三實體抹除單元的初始實體位址以及第一資料的資料長度。記憶體管理電路還用以根據第一資料的資料長度以及第三實體抹除單元的初始實體位址,從備份資料區中讀取第一資料。記憶體管理電路還用以將第一資料寫入至所述第一實體抹除單元的其中之一。
在一範例實施例中,上述的記憶體管理電路還用以將第一實體抹除單元更劃分出一個系統區,並且將第一指標、第二指標、前指標以及後指標寫入至第一實體抹除單元中關聯至系統區的其中之一。
在一範例實施例中,上述的每一個第二實體抹除單元包括多個實體程式化單元組,每一實體程式化單元組包括下實體程式化單元與上實體程式化單元,並且下實體程式化單元的寫入速度大於上實體程式化單元的寫入速度。記憶體管理電路還用以僅使用關聯至指令記錄區的第二實體抹除單元的下實體程式化單元來紀錄所述至少部分的寫入指令。
在一範例實施例中,上述的記憶體管理電路還用以對 位於第一實體抹除單元中相關於第一資料之有效資料與第一資料執行一個資料合併程序。其中,位於第二實體抹除單元中相關於第一資料的有效資料不與第一資料進行資料合併程序。
在一範例實施例中,上述的記憶體管理電路還用以執行第一平均磨損程序於第一實體抹除單元,並且執行第二平均磨損程序於第二實體抹除單元。其中,第一平均磨損程序不同於第二平均磨損程序,且第一實體抹除單元之間的交換頻率高於第二實體抹除單元之間的交換頻率。
基於上述,本發明提出的資料管理方法、記憶體控制器與記憶體儲存裝置可以在可複寫式非揮發性記憶體中備份資料。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1A,主機系統1000一般包括電腦1100與輸 入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是, 嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2A是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2A,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(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包括第一記憶單元310與第二記憶單元320。第一記憶單元310包括一或多個記憶體晶粒(die);相同地,第二記憶單元320也包括一或多個記憶體晶粒。然而,第一記憶單元310與第二記憶單元320各自有一個或多個接腳(pin),耦接至記憶體控制器1()4。記憶體控制器104可以傳送致能信號至這些接腳來分別致能第一記憶單元310或第二記憶單元320中對應此致能腳位之記憶體晶粒。
圖2B是根據一範例實施例說明記憶體控制器104與可複寫示非揮發性記憶體之間的耦接關係。
請參照圖2B,記憶體控制器104可以透過信號312致能第一記憶單元310,並且透過信號322致能第二記憶單元320。記憶體控制器104透過匯流排330來傳送資料給第一記憶單元310與第二記憶單元320。當第一記憶單元310被致能時,會從匯流排330上讀取資料。相同的,當第二記憶單元320被致能時,會從匯流排330上讀取資料。其中在本範例實施例中,第一記憶單元310與第二記憶單元320是耦接至相同匯流排330,但在另一範例實施例中,第一記憶單元310與第二記憶單元320可分別耦接 至不同的匯流排330,並不以此為限。
第一記憶單元310包括實體抹除單元311(0)~311(A)(亦稱第一實體抹除單元)。第二記憶單元320包括實體抹除單元321(0)~321(B)(亦稱第二實體抹除單元)。每個實體抹除單元可包括一個或多個實體程式化單元。屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面。在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,即一個記憶胞中可儲存至少2個位元資料。也就是說,排列在同一條字元線上的數個記憶胞可以組成下實體程式化單元與上實體程式化單元。下實體程式化單元與上實體程式化單元會組成一個程式化單元組。一個實體抹除單元會包括多個實體程式化單元組。其中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度。另一方面,每一個 實體抹除單元有抹除次數的上限。當僅使用下實體程式化單元時,抹除次數的上限是第一臨界值(例如,5000次)。當使用下實體程式化單元與上實體程式化單元時,抹除次數的上限為第二臨界值(例如,50000次)。第二臨界值會大於第一臨界值。然而,在其他範例實施例中,可複寫式非揮發性記憶體模組106亦可是單數階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有類似特性的記憶體模組。
每一實體程式化單元(例如,上實體程式化單元或下實體程式化單元)通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤檢查與校正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整 體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單 元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用 以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252、電源管理電路254與錯誤檢查與校正電路256。
緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4是根據一範例實施例所繪示之管理第一記憶單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“分組”、“替換”、”關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖4,記憶體控制器104可將第一記憶單元310的實體抹除單元311(0)~311(A)邏輯地分組為多個區域,例如為資料區410、閒置區420、系統區430與取代區440。在另一範例實施例中,取代區440亦可與閒置區420共用包含無效資料之實體抹除單元。在此,”關聯至一個區域的實體抹除單元”所代表的意思相同於”被分組為此區域的實體抹除單元”與”此區域的實體抹除單元”。
資料區410與閒置區420的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區410包括已儲存資料的實體抹除單元,而閒置區420包括用以替換資料區410的實體抹除單元。因此,閒置區420的實體抹除單元為空或可使用的實體抹除單元,即無記錄資料或標記為已沒用的無效資料。也就是說,在閒置區420中的實體抹除單元已被執行抹除運作。或者,當閒置區420中的實體抹除單元被提取用於儲存資料之前,所提取之實體抹除單元會先被執行抹除運作。因此,閒置區420的實體抹 除單元為可被使用的實體抹除單元。
邏輯上屬於系統區430的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區440中的實體抹除單元是替代實體抹除單元。例如,可複寫式非揮發性記憶體模組於出廠時會預留4%的實體抹除單元作為更換使用。也就是說,當資料區410、閒置區420與系統區430中的實體抹除單元損毀時,預留於取代區440中的實體抹除單元是用以取代損壞的實體抹除單元(即,壞實體抹除單元(bad erasing unit))。因此,倘若取代區440中仍存有正常之實體抹除單元且發生實體抹除單元損毀時,記憶體控制器104會從取代區440中提取正常的實體抹除單元來更換損毀的實體抹除單元。倘若取代區440中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,資料區410、閒置區420、系統區430與取代區440之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區410、閒置區420、系統區430與取代區440的分組關係會動態地變動。例如,當閒置區中的實體抹除單元損壞而被取代區的實體抹除單 元取代時,則原本取代區的實體抹除單元會被關聯至閒置區。
在本範例實施例中,記憶體控制器104會配置邏輯位址450(0)~450(G)。例如,當記憶體儲存裝置100被主機系統1000上的作業系統透過一個檔案系統(例如,FAT 32)格式化時,邏輯位址450(0)~450(G)分別地映射至資料區410的實體抹除單元311(0)~311(C)。在此,記憶體管理電路202會建立邏輯位址-實體抹除單元映射表(logical block address-physical erasing unit mapping table),以記錄邏輯位址與實體抹除單元之間的映射關係。
主機系統1000會透過邏輯位址450(0)~450(G)來存取資料。例如,主機系統1000下達了一個寫入指令給記憶體管理電路202,此寫入指令是指示將第一資料460寫入至邏輯位址450(0)。邏輯位址450(0)是映射至實體抹除單元311(0)。亦即,主機系統1000是透過存取邏輯位址450(0)來存取儲存在實體抹除單元311(0)中的資料。記憶體管理電路202在接收到此寫入旨令以後,會將第一資料460寫入至閒置區450的實體抹除單元311(C+1)。之後在適當的時間點,記憶體管理電路202會對相關於第一資料460的有效資料與第一資料460執行一個資料合併程序,用以整併屬於邏輯位址450(0)的有效資料。具體來說,記憶體管理電路202會將實體抹除單元311(0)中相關於第一資料460的有效資料(即,屬於邏輯位址450(0)的有效資料)複製到實體抹除單元311(C+1),抹除實體抹除單元311(0),將 實體抹除單元311(0)關聯至閒置區420,將實體抹除單元311(C+1)關聯至資料區410,並且將邏輯位址450(0)重新映射至實體抹除單元311(C+1)。
此外,記憶體管理電路202還會將第一資料460寫入至第二記憶單元320的實體抹除單元。也就是說,第二記憶單元320是用以備份第一資料460。當第一記憶單元310中的第一資料460遺失時,記憶體管理電路202會從第二記憶單元320中讀取第一資料460,並重新寫入至第一記憶單元460的實體抹除單元。特別的是,在本範例實施例中,第二記憶單元320中可不實施上述的資料合併程序。換言之,在第二記憶單元320中相關於第一資料460的有效資料並不會與第一資料460一起被整併至同一個實體抹除單元。記憶體管理電路202會在第二記憶單元320紀錄主機系統1000下達的寫入指令與第一資料460,並且利用此寫入指令的資訊來回復第一資料460。
圖5是根據一範例實施例說明管理第二記憶單元的示意圖。
請參照圖5,記憶體管理電路202會將實體抹除單元321(0)~321(B)分組為備份資料區510與指令記錄區520。備份資料區510是用以備份主機系統1000寫入至第一記憶單元310的資料。指令記錄區520是用以紀錄主機系統1000所下達的寫入指令。
圖6是根據一範例實施例說明備份第一資料的示意圖。
請參照圖6,邏輯位址450(0)包括邏輯程式化單元位址610(0)~610(J)。實體抹除單元321(O)包括實體程式化單元620(0)~620(J)。實體抹除單元321(H+1)包括實體程式化單元630(0)~630(L)。一個邏輯程式化單元位址是映射至一個實體程式化單元。主機系統1000是要將第一資料460寫入至邏輯程式化單元位址610((0)與610(1)而下達了寫入指令給記憶體管理電路202。換言之,第一資料460的資料長度是兩個實體程式化單元的大小。在此,資料長度也表示第一資料460的資料量。除了將第一資料460寫入至第一記憶單元310的實體抹除單元外,記憶體管理電路202也會將第一資料460寫入至實體抹除單元321(0)(亦稱第三實體抹除單元)的實體程式化單元620(1)與620(2)。並且,記憶體管理電路202會將主機系統1000指示寫入第一資料460的寫入指令的至少部份紀錄在實體程式化單元630(0)中,成為寫入指令640。當第一記憶單元310中的第一資料460遺失時,記憶體管理電路202便可以讀取寫入指令640,並且根據寫入指令640將第一資料460重新寫入至第一記憶單元310。
在一範例實施例中,寫入指令640可包括實體抹除單元321(0)的一個初始實體位址、以及第一資料460的資料長度。此初始實體位址是在第二記憶單元320中第一資料460開始被寫入的位址。在本範例實施例中,此初始實體位址是實體程式化單元620(1)的實體位址。然而,在其他實施利中,實體抹除單元321(0)的初始實體位址也可以是 一個實體扇或一個實體抹除單元的實體位址。
在一範例實施例中,記憶體管理電路202會記錄邏輯位址450(0)的一個初始邏輯位址。主機系統1000是指示從初始邏輯位址開始寫入第一資料460,例如,初始邏輯位址是邏輯程式化單元位址610(0)。此初始邏輯位址可被視為寫入指令640的一部份而被紀錄在實體程式化單元630(0)中或被視為第一資料460之一部份而被紀錄在實體程式化單元620(1)中的冗餘位元區中,本發明並不在此限。在另一範例實施例中,邏輯位址450(0)的初始邏輯位址也可以是一個邏輯扇位址或邏輯位址。
當記憶體管理電路202要回復第一資料460時,會從實體抹除單元321(H+1)中讀取實體抹除單元321(0)的初始實體位址以及第一資料460的資料長度。根據初始實體位址,記憶體管理電路202可以在第二記憶單元320中找到第一資料460。再根據資料長度,記憶體管理電路202便可以從第二記憶單元320的實體抹除單元中讀取出第一資料460。在一範例實施例中,記憶體管理電路202還會讀取邏輯位址450(0)的初始邏輯位址、並且根據初始邏輯位址、第一資料460以及資料長度重建出一個寫入指令。記憶體管理電路202會將重建出的寫入指令傳送給主機系統1000上的一個應用程式。此應用程式會下達此重建出的寫入指令,用以將第一資料460寫入至第一記憶單元310。在另一範例實施例中,記憶體管理電路202也可以自己根據所讀取資料長度來將第一資料460寫入至第一記憶單元 310的實體抹除單元,並不用透過主機系統1000。
在一範例實施例中,記憶體管理電路202僅使用實體抹除單元321(H+1)的下實體程式化單元來紀錄寫入指令640(即,實體程式化單元630(0)~630(L)皆是下實體程式化擔元)。也就是說,記憶體管理電路202會設定實體抹除單元321(H+1)的上實體程式化單元為不可程式化。由於當一個實體抹除單元中僅下實體程式化單元被程式化時,此實體抹除單元所儲存的資料比較不容易遺失(相較於下實體程式化單元與上實體程式化單元都被程式化),因此寫入指令640較不容易遺失。
在其他範例實施例中,所紀錄的寫入指令640也可以包括第一資料460被寫入的時間、或者包括第一資料460是否已正確地被寫入至第一記憶單元310的資訊,本發明並不在此限。
記憶體管理電路202會對第一記憶單元310的實體抹除單元311(0)~311(A)執行一個平均磨損(wear-leveling)程序(亦稱第一平均磨損程序);並且會對第二記憶單元320的實體抹除單元321(0)~321(B)執行另一個平均磨損程序(亦稱第二平均磨損程序)。換言之,第一平均磨損程序不同於第二平均磨損程序。平均磨損程序是用以將存取頻率高的資料移動至抹除次數較少的實體抹除單元,因此兩個實體抹除單元所儲存的資料會被交換。在本範例實施例中,當被執行平均抹損程序時,實體抹除單元311(0)~311(A)之間的交換頻率會高於實體抹除單元321(0)~321(B)之間 的交換頻率。此交換頻率所指的便是交換資料的頻率。
在本範例實施例中,記憶體管理電路202是用兩平面(two-plane)的方式將第一資料460同時寫入第一記憶單元310與第二記憶單元320。因此,記憶體管理電路202會將第一資料460分為第一部份與第二部份。
請參照回圖2B,首先,記憶體管理電路202會致能第一記憶單元310,禁能第二記憶單元,並且傳送一個第一指令給第一記憶單元310。此第一指令是用以通知第一記憶單元310第一部份將要被寫入。接著,記憶體管理電路202會透過匯流排330傳送一個實體位址給第一記憶單元310。此實體位址是表示第一部分要被寫入至第一記憶單元310中的哪一個實體抹除單元。此時,由於第二記憶單元320被禁能,因此不會接收到此實體位址。
接下來,記憶體管理電路202會致能第二記憶單元320,並且禁能第一記憶單元310。接著,記憶體管理電路202會傳送此第一指令給第二記憶單元320。類似地,記憶體管理電路202會傳送一個實體位址給第二記憶單元320。此實體位址是表示第一部分要被寫入至第二記憶單元320中的哪一個實體抹除單元。因此,第一記憶單元310與第二記憶單元320會接收到不同的實體位址。
在接收到第一指令以後,第一記憶單元310與第二記憶單元320便準備從匯流排330上接收資料。接著,記憶體管理電路202會透過匯流排330將第一部分同時傳送給第一記憶單元310與第二記憶單元320。換句話說,此時 第一記憶單元310與第二記憶單元320會同時接收相同的資料。
接著,記憶體管理電路202會同時致能第一記憶單元310與第二記憶單元320,並且同時傳送一個第二指令給第一記憶單元310與第二記憶單元320。此第二指令是對應至第一指令,用以表示第一部份以傳送完畢。值得注意的是,此時第一部份會儲存在第一記憶單元310與第二記憶單元320中的暫存記憶體,並不會被寫入至實體抹除單元中。
接著,記憶體管理電路202會致能第一記憶單元310、禁能第二記憶單元320、傳送一個第三指令給第一記憶單元310。此第三指令表示第二部分將要被寫入。記憶體管理電路202會傳送一個實體位址給第一記憶單元310,用以表示第二部分要被寫入第一記憶單元310的哪一個實體抹除單元。
接著,記憶體管理電路202會致能第二記憶單元320、禁能第一記憶單元310、傳送第三指令給第二記憶單元320。記憶體管理電路202會傳送一個實體位址給第二記憶單元320,用以表示第二部分要被寫入第二記憶單元320中的哪一個實體抹除單元。
在接收到第三指令以後,第一記憶單元310與第二記憶單元320便準備從匯流排330上接收資料。接著,記憶體管理電路202會透過匯流排330將第二部分同時傳送給第一記憶單元310與第二記憶單元320。
最後,記憶體管理電路202會致能第一記憶單元310與第二記憶單元320,並且同時傳送一個第四指令給第一記憶單元310與第二記憶單元320。此第四指令是用以指示第一記憶單元310與第二記憶單元320將第一部份與第二部分寫入至所對應的實體抹除單元。因此,第一資料460可以同時被寫入至第一記憶單元310與第二記憶單元320。並且,第一資料460在匯流排330上僅會被傳送一次,藉此降低匯流排330的頻寬需求。
在另一範例實施例中,記憶體管理電路202也可以用單平面(one-plane)的方式將第一資料460同時寫入第一記憶310單元與第二記憶單元320。換言之,此時第一資料460並不會被分為第一部份與第二部分。
每當主機系統1000下達一個寫入指令以後,記憶體管理電路202便會將對應的資料寫入至第一記憶單元310並且備份至第二記憶單元320。若第二記憶單元320中已經沒有可用的實體抹除單元以後,記憶體管理電路202會抹除第二記憶單元320中部份的實體抹除單元。
圖7是根據一範例實施例說明抹除備份資料區的實體抹除單元的範例示意圖。
請參照圖7,在備份資料區510中,記憶體管理電路202會設定實體抹除單元321(0)的程式化順序在實體抹除單元321(1)之前,而實體抹除單元321(1)的程式化順序是在實體抹除單元321(2)之前。實體抹除單元321(1)包括實體程式化單元721(0)~721(J)。記憶體管理電路202會建立 一個前指標730,指向實體抹除單元321(0)(亦稱第四實體抹除單元)中的實體程式化單元620(J)。亦即,前指標730是用實體程式化單元620(J)的實體位址來表示。當要備份第一資料460時,前指標730是用以指向第一資料460所要開始儲存的第一個實體程式化單元。此外,記憶體管理電路202也會建立一個後指標740,指向實體抹除單元321(1)(亦稱第五實體抹除單元)。換言之,後指標740是表示為實體抹除單元321(1)的實體位址。在此範例實施例中,實體抹除單元321(1)的實體位址亦為其中第一個實體程式化單元721(0)的實體位址。
當要備份第一資料460時,記憶體管理電路202會從前指標730所指向的實體程式化單元620(J)開始寫入第一資料460。並且,記憶體管理電路202會判斷實體抹除單元321(0)~321(H)中的閒置記憶體空間是否足夠寫入第一資料460。此閒置記憶體空間即表示已被抹除,可用來寫入新資料的實體抹除單元的記憶體空間。在此假設閒置記憶體空間僅包括實體程式化單元620(J)。當閒置記憶體空間不足夠寫入第一資料460時,記憶體管理電路202會抹除後指標740所指向的實體抹除單元721(0)。藉此,記憶體管理電路202可以將第一資料460接續地寫入至實體程式化單元721(0)。並且,記憶體管理電路202會將後指標740移動至另一個實體抹除單元(例如,實體抹除單元321(H))。
值得注意的是,在另一範例實施例中,在備份第一資 料460之前,後指標740也可指向實體抹除單元321(2)。因此,若閒置記憶體空間不足夠寫入第一資料460時,第一資料460會被分別寫入實體程式化單元620(J)與實體抹除單元321(2)當中,本發明並不在此限。
在一範例實施例中,實體抹除單元321(0)~321(H)中所有的實體程式化單元被表示為連續的實體位址。前指標730所指向的是第一資料460可開始被寫入的實體程式化單元;而後指標740所指向的是第一資料460不能被寫入的實體程式化單元。換言之,前指標730與後指標740之間的實體程式化單元為第一資料460可被寫入的區域。記憶體管理電路202會判斷前指標730所表示的實體位址加上第一資料460的資料長度的和是否會大於後指標740所表示的實體位址,藉此判斷是否要抹除一個實體抹除單元。舉例來說,第一資料460的資料長度為兩個實體程式化單元的大小。因此,實體程式化單元620(J)的實體位址加上第一資料460的資料長度的和會成為實體程式化單元721(1)的實體位址。記憶體管理電路202會判斷實體程式化單元721(1)的實體位址大於實體抹除單元321(1)的實體位址。此時,記憶體管理電路202會將後指標740移動至實體抹除單元321(2)(亦稱第六實體抹除單元),並且抹除實體抹除單元321(1)。接著,記憶體管理電路202會將第一資料460寫入至實體程式化單元620(J)與721(0),並且把前指標740移動至實體程式化單元721(1)。
值得注意的是,當後指標740指向實體抹除單元 321(H)時,若記憶體管理電路202判斷要再移動後指標740,則會將後指標740移動至實體抹除單元321(0)。換言之,備份資料區510是以循環的方式來儲存資料,並且當其中沒有可用的實體抹除單元時,最舊的資料會被抹除。
在另一範例實施例中,當記憶體管理電路202判斷要寫入的資料量大於前指標730所指向的實體程式化單元所可寫入的資料量時,記憶體管理電路202會在實體抹除單元321(0)~321(H)中,再找一個可寫入資料的實體抹除單元(例如是已抹除過的實體抹除單元),再將後指標740移動至另一可寫入資料的實體抹除單元,並將前指標730移動至接續第一資料460後的實體程式化單元。
圖8至圖10是根據一範例實施例說明抹除指令記錄區的實體抹除單元的範例示意圖。
請參照圖8,記憶體管理電路202會將指令記錄區的實體抹除單元劃分為第一指令記錄區810與第二指令記錄區820。在此範例實施例中,第一指令記錄區810的大小相同於第二指令記錄區820的大小。第一指令記錄區810包括了實體抹除單元321(H+1)~321(K)。第二指令記錄區820包括了實體抹除單元321(K+1)~321(I)。實體抹除單元321(H+1)包括實體程式化單元830(0)~830(L);實體抹除單元321(K)包括實體程式化單元821(0)~821(L);實體抹除單元321(K+1)包括實體程式化單元834(0)~834(L);並且實體抹除單元321(I)包括實體程式化單元836(0)~836(L)。
記憶體管理電路202會建立第一指標802與第二指標 804。在指令記錄區520中沒有儲存任何有效資料時,第一指標802與第二指標804都指向實體程式化單元830(0)。當記憶體管理電路要把一個寫入指令紀錄在指令記錄區520時,會將此寫入指令紀錄在第二指標804所指向的實體程式化單元,並且把第二指標804移動至下一個實體程式化單元。例如,第二指標804會從實體程式化單元830(0)被移動至實體程式化單元830(1)。當第二指標804被移動至實體程式化單元832(L)時,表示第一命令記錄區810已沒有可用的實體抹除單元。此時若再接收一個寫入指令,則記憶體管理電路202會將第二指標移動至實體程式化單元834(0),並將第一指標移動至830(1)(如圖9所示)。換句話說,當第一指令記錄區810已沒有可用的實體程式化單元時,記憶體管理電路202會同時移動第一指標802與第二指標804。
請參照圖10,依照上述移動方式,當第二指標804被移動到實體程式化單元836((L)時,第一指標802會被移動至實體程式化單元834(0)。此時記憶體管理電路202會判斷第一指標802與第二指標804都指向第二指令記錄區820。記憶體管理電路202會抹除第一指令記錄區810中的至少一個實體抹除單元(或全部的實體抹除單元)。如此一來,第一指令記錄區810便可以用來紀錄其他的寫入指令。
值得注意的是,接下來第二指標804會從實體程式化單元836(L)被移動至實體程式化單元830(0)。換言之,第一指令記錄區810與第二指令記錄區820是交替的被使 用。在另一範例實施例中,第一指令記錄區810的大小可以不同於第二指令記錄區820的大小,本發明並不在此限。
在一範例實施例中,記憶體管理電路202也會將第一指標802、第二指標804、前指標730與後指標740紀錄在系統區430中的實體抹除單元。當記憶體儲存裝置100被斷電時,這些指標便不會遺失。
在另一範例實施例中,當第二記憶單元320中已沒有可用的實體抹除單元時,記憶體管理電路202會停止備份資料。此時主機系統1000所要寫入的資料只會被寫入至第一記憶單元310。當第二記憶單元320中有可用的實體抹除單元可紀錄資料與寫入指令以後,記憶體管理電路202才會開始備份。
圖11是根據一範例實施例說明資料管理方法的流程圖。
請參照圖11,在步驟S1102中,記憶體管理電路202會將第一記憶單元的實體抹除單元至少劃分出資料區與閒置區,並且將第二記憶單元的實體抹除單元至少劃分出備份資料區與指令記錄區。
在步驟S1104中,記憶體管理電路202會配置多個邏輯位址以映射到關聯至資料區的實體抹除單元。
在步驟S1106中,記憶體管理電路202會接收一個指示將第一資料寫入至第一邏輯位址的寫入指令。
在步驟S1108中,記憶體管理電路202會將第一資料寫入到關聯至閒置區的實體抹除單元的其中之一,並且將 第一資料寫入到關聯至備份資料區的實體抹除單元的其中之一。
在步驟S1110中,記憶體管理電路202會將至少部份的寫入指令紀錄在關聯至指令記錄區的實體抹除單元的其中之一。
然而,步驟S1108與步驟S1110可以互換,本發明並不限制圖11中各步驟的順序。並且,圖11中各步驟已詳細說明如上,在此並不再贅述。
綜上所述,本發明實施例提出一種資料管理方法、記憶體控制器與記憶體儲存裝置。其中主機系統下達的寫入指令會被備份在可複寫式非揮發性記憶體中,藉此根據這些寫入指令重建出遺失的資料。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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‧‧‧可複寫式非揮發性記憶體模組
310‧‧‧第一記憶單元
320‧‧‧第二記憶單元
312、322‧‧‧信號
311(0)~311(A)、321(0)~321(B)‧‧‧實體抹除單元
330‧‧‧匯流排
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
410‧‧‧資料區
420‧‧‧閒置區
430‧‧‧系統區
440‧‧‧取代區
450(0)~450(G)‧‧‧邏輯位址
460‧‧‧第一資料
510‧‧‧備份資料區
520‧‧‧指令記錄區
610(0)~610(J)‧‧‧邏輯程式化單元位址
620(0)~620(J)、630(0)~630(L)、721(0)~721(J)、830(0)~830(L)、832(0)~832(L)、834(0)~834(L)、836(0)~836(L)‧‧‧實體程式化單元
640‧‧‧寫入指令
730‧‧‧前指標
740‧‧‧後指標
802‧‧‧第一指標
804‧‧‧第二指標
S1102、S1104、S1106、S1108、S1110‧‧‧資料管理方法的步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2A是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖2B是根據一範例實施例說明記憶體控制器104與可複寫示非揮發性記憶體之間的耦接關係。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4是根據一範例實施例所繪示之管理第一記憶單元的範例示意圖。
圖5是根據一範例實施例說明管理第二記憶單元的示意圖。
圖6是根據一範例實施例說明備份第一資料的示意圖。
圖7是根據一範例實施例說明抹除備份資料區的實體抹除單元的範例示意圖。
圖8至圖10是根據一範例實施例說明抹除指令記錄區的實體抹除單元的範例示意圖。
圖11是根據一範例實施例說明資料管理方法的流程圖。
S1102、S1104、S1106、S1108、S1110‧‧‧資料管理方法的步驟

Claims (33)

  1. 一種資料管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體包括一第一記憶單元與一第二記憶單元,該第一記憶單元包括多個第一實體抹除單元,並且該第二記憶單元包括多個第二實體抹除單元,該資料管理方法包括:將該些第一實體抹除單元至少劃分出一資料區與一閒置區,並且將該些第二實體抹除單元至少劃分出一備份資料區與一指令記錄區;配置多個邏輯位址以映射至關聯至該資料區的該些第一實體抹除單元;接收一寫入指令,其中該寫入指令指示將一第一資料寫入至該些邏輯位址的至少一第一邏輯位址;將該第一資料寫入該些第一實體抹除單元中關聯至該閒置區的其中之一,並且將該第一資料寫入至該些第二實體抹除單元中關聯至該備份資料區的其中之一;以及將至少部份的該寫入指令紀錄在該些第二實體抹除單元中關聯至該指令記錄區的其中之一。
  2. 如申請專利範圍第1項所述之資料管理方法,其中該第一資料包括一第一部分與一第二部份,其中將該第一資料寫入至該些第一實體抹除單元中關聯至該閒置區的其中之一,並且將該第一資料寫入至該些第二實體抹除單元中關聯至該備份資料區的其中之一的步驟包括:致能該第一記憶單元,並且傳送一第一指令至該第一 記憶單元,其中該第一指令用以指示該第一部份欲被寫入;致能該第二記憶單元,並且傳送該第一指令至該第二記憶單元;同時將該第一部份傳送至該第一記憶單元與該第二記憶單元;致能該第一記憶單元與該第二記憶單元,並且同時傳送一第二指令至該第一記憶單元與該第二記憶單元,其中該第二指令用以表示該第一部分已傳送完畢;致能該第一記憶單元,傳送一第三指令至該第一記憶單元,其中該第三指令用以指示該第二部分欲被寫入;致能該第二記憶單元,傳送該第三指令至該第二記憶單元;同時將該第二部份傳送至該第一記憶單元與該第二記憶單元;以及致能該第一記憶單元與該第二記憶單元,同時傳送一第四指令至該第一記憶單元與該第二記憶單元,其中該第四指令用以指示將該第一部分與該第二部分寫入。
  3. 如申請專利範圍第1項所述之資料管理方法,其中該第一資料是被寫入至該些第二實體抹除單元中關聯至該備份資料區的一第三實體抹除單元,其中將該至少部份的該寫入指令紀錄在該些第二實體抹除單元中關聯至該指令記錄區的其中之一的步驟包括:將該第三實體抹除單元的一初始實體位址以及該第一資料的一資料長度寫入至該些第二實體抹除單元關聯至 該指令記錄區的其中之一,其中該第一資料是從該初始實體位址開始被寫入。
  4. 如申請專利範圍第3項所述之資料管理方法,其中將該第一資料寫入至該些第二實體抹除單元中關聯至該備份資料區的其中之一的步驟還包括:建立一前指標,其中該前指標指向該些第二實體抹除單元中關聯至該備份資料區的一第四實體抹除單元中的一第一實體程式化單元;建立一後指標,其中該後指標指向該些第二實體抹除單元中關聯至該備份資料區的一第五實體抹除單元;將該第一資料寫入至該第一實體程式化單元;判斷關聯至該備份資料區的該些第二實體抹除單元的一閒置記憶體空間是否足夠寫入該第一資料;若該閒置記憶體空間不足夠寫入該第一資料時,抹除該第五實體抹除單元,將該第一資料寫入至該第五實體抹除單元,將該後指標移動至一第六實體抹除單元,並將該前指標移動至接續在該第一資料後的實體程式化單元。
  5. 如申請專利範圍第4項所述之資料管理方法,其中判斷該閒置記憶體空間是否足夠寫入該第一資料的步驟包括:判斷該第一實體程式化單元的一實體位址加上該資料長度的和是否超過該第五實體抹除單元的一實體位址;若該第一實體程式化單元的該實體位址加上該資料長度的和超過該第五實體抹除單元的該實體位址,則判斷 該閒置記憶體空間不足夠寫入該第一資料,其中該第六實體抹除單元的程式化順序接續在該第五實體抹除單元之後。
  6. 如申請專利範圍第3項所述之資料管理方法,其中每一該些第二實體抹除單元包括多個實體程式化單元,其中將該寫入指令紀錄在該些第二實體抹除單元中關聯至該指令記錄區的其中之一的步驟包括:將該指令記錄區的該些第二實體抹除單元劃分為一第一指令記錄區與一第二指令記錄區;建立一第一指標與一第二指標,其中該第一指標與該第二指標指向該些第二實體程式化單元中關聯至該第一指令記錄區的其中之一或指向該些第二實體程式化單元中關聯至該第二指令記錄區的其中之一;將該寫入指令紀錄在該第二指標所指向的該實體程式化單元,並且將該第二指標移動至下一個實體程式化單元;以及當該第一指標與該第二指標皆指向該第二指令記錄區時,抹除該些第二實體抹除單元中關聯至該第一指令記錄區的其中之一。
  7. 如申請專利範圍第3項所述之資料管理方法,更包括;從關聯至該指令記錄區的該些第二實體抹除單元中讀取該第三實體抹除單元的該初始實體位址以及該第一資料的該資料長度; 根據該第一資料的該資料長度以及該第三實體抹除單元的該初始實體位址,從該備份資料區中讀取該第一資料;以及將該第一資料寫入至該些第一實體抹除單元的其中之一。
  8. 如申請專利範圍第6項所述之資料管理方法,更包括:將該些第一實體抹除單元更劃分出一系統區;以及將該第一指標、該第二指標、一前指標以及一後指標寫入至該些第一實體抹除單元中關聯至該系統區的其中之一。
  9. 如申請專利範圍第1項所述之資料管理方法,其中每一該些第二實體抹除單元包括多個實體程式化單元組,每一該些實體程式化單元組包括一下實體程式化單元與一上實體程式化單元,並且該下實體程式化單元的寫入速度大於該上實體程式化單元的寫入速度,其中將該寫入指令紀錄在該些第二實體抹除單元中關聯至該指令記錄區的其中之一的步驟包括:僅使用關聯至該指令記錄區的該些第二實體抹除單元的該些下實體程式化單元來紀錄該至少部份的該寫入指令。
  10. 如申請專利範圍第1項所述之資料管理方法,更包括:對位於該些第一實體抹除單元中相關於該第一資料 之一有效資料與該第一資料執行一資料合併程序,其中位於該些第二實體抹除單元中相關於該第一資料之一有效資料不與該第一資料進行該資料合併程序。
  11. 如申請專利範圍第1項所述之資料管理方法,更包括:執行一第一平均磨損程序於該些第一實體抹除單元;以及執行一第二平均磨損程序於該些第二實體抹除單元,其中該第一平均磨損程序不同於該第二平均磨損程序,且該些第一實體抹除單元之間的一交換頻率高於該些第二實體抹除單元之間的一交換頻率。
  12. 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括一第一記憶單元與一第二記憶單元,該第一記憶單元包括多個第一實體抹除單元,該第二記憶單元包括多個第二實體抹除單元;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,用以將該些第一實體抹除單元至少劃分出一資料區與一閒置區,將該些第二實體抹除單元至少劃分出一備份資料區與一指令記錄區,並且配置多個邏輯位址以映射至關聯至該資料區的該些第一實體抹除單元,其中,該記憶體控制器用以接收一寫入指令,其中該寫入指令指示將一第一資料寫入至該些邏輯位址的至少一 第一邏輯位址,其中,該記憶體控制器用以將該第一資料寫入至該些第一實體抹除單元中關聯至該閒置區的其中之一,將該第一資料寫入至該些第二實體抹除單元中關聯至該備份資料區的其中之一,並且將至少部份的該寫入指令紀錄在該些第二實體抹除單元中關聯至該指令記錄區的其中之一。
  13. 如申請專利範圍第12項所述之記憶體儲存裝置,其中該第一資料包括一第一部分與一第二部份,其中該記憶體控制器還用以致能該第一記憶單元,並且傳送一第一指令至該第一記憶單元,其中該第一指令用以指示該第一部份欲被寫入,其中,該記憶體控制器還用以致能該第二記憶單元,傳送該第一指令至該第二記憶單元,並且同時將該第一部份傳送至該第一記憶單元與該第二記憶單元,其中,該記憶體控制器還用以致能該第一記憶單元與該第二記憶單元,並且同時傳送一第二指令至該第一記憶單元與該第二記憶單元,其中該第二指令用以表示該第一部分已傳送完畢,其中,該記憶體控制器還用以致能該第一記憶單元,並且傳送一第三指令至該第一記憶單元,其中該第三指令用以指示該第二部分欲被寫入,其中,該記憶體控制器還用以致能該第二記憶單元,傳送該第三指令至該第二記憶單元,並且同時將該第二部份傳送至該第一記憶單元與該第二記憶單元, 其中,該記憶體控制器還用以致能該第一記憶單元與該第二記憶單元,並且同時傳送一第四指令至該第一記憶單元與該第二記憶單元,其中該第四指令用以指示將該第一部分與該第二部分寫入。
  14. 如申請專利範圍第12項所述之記憶體儲存裝置,其中該第一資料是被寫入至該些第二實體抹除單元中關聯至該備份資料區的一第三實體抹除單元,其中,該記憶體控制器還用以將該第三實體抹除單元的一初始實體位址以及該第一資料的一資料長度寫入至該些第二實體抹除單元中關聯至該指令記錄區的其中之一,其中該第一資料是從該初始實體位址開始被寫入。
  15. 如申請專利範圍第14項所述之記憶體儲存裝置,其中,該記憶體控制器還用以建立一前指標,其中該前指標指向該些第二實體抹除單元關聯至該備份資料區的一第四實體抹除單元中的一第一實體程式化單元,其中,該記憶體控制器還用以建立一後指標,其中該後指標指向該些第二實體抹除單元中關聯至該備份資料區的一第五實體抹除單元,其中,該記憶體控制器還用以將該第一資料寫入至該第一實體程式化單元,並判斷關聯至該備份資料區的該些第二實體抹除單元的一閒置記憶體空間是否足夠寫入該第一資料,若該閒置記憶體空間不足夠寫入該第一資料時,該記憶體控制器還用以抹除該第五實體抹除單元,將該第一資 料寫入至該第五實體抹除單元,將該後指標移動至一第六實體抹除單元,並將該前指標移動至接續在該第一資料後的實體程式化單元。
  16. 如申請專利範圍第15項所述之記憶體儲存裝置,其中該記憶體控制器還用以判斷該第一實體程式化單元的一實體位址加上該資料長度的和是否超過該第五實體抹除單元的一實體位址,若該第一實體程式化單元的該實體位址加上該資料長度的和超過該第五實體抹除單元的該實體位址,該記憶體控制器判斷該閒置記憶體空間不足夠寫入該第一資料,其中該第六實體抹除單元的程式化順序接續在該第五實體抹除單元之後。
  17. 如申請專利範圍第14項所述之記憶體儲存裝置,其中每一該些第二實體抹除單元包括多個實體程式化單元,其中,該記憶體控制器還用以將該指令記錄區的該些第二實體抹除單元劃分為一第一指令記錄區與一第二指令記錄區,並且建立一第一指標與一第二指標,其中該第一指標與該第二指標指向該些第二實體抹除單元關聯至該第一指令記錄區的其中之一或指向該些實體程式化單元中關聯至該第二指令記錄區的其中之一,其中,該記憶體控制器還用以將該寫入指令紀錄在該第二指標所指向的該實體程式化單元,並且將該第二指標移動至下一個實體程式化單元,當該第一指標與該第二指標皆指向該第二指令記錄 區時,該記憶體控制器還用以抹除該些第二實體抹除單元中關聯至該第一指令記錄區的其中之一。
  18. 如申請專利範圍第14項所述之記憶體儲存裝置,其中該記憶體控制器還用以從關聯至該指令記錄區的該些第二實體抹除單元中讀取該第三實體抹除單元的該初始實體位址以及該第一資料的該資料長度,該記憶體控制器還用以根據該第一資料的該資料長度以及該第三實體抹除單元的該初始實體位址,從該備份資料區中讀取該第一資料,該記憶體控制器還用以將該第一資料寫入至該些第一實體抹除單元的其中之一。
  19. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器還用以將該些第一實體抹除單元更劃分出一系統區,並且將該第一指標、該第二指標、一前指標以及一後指標寫入至該些第一實體抹除單元中關聯至該系統區的其中之一。
  20. 如申請專利範圍第12項所述之記憶體儲存裝置,其中每一該些第二實體抹除單元包括多個實體程式化單元組,每一該些實體程式化單元組包括一下實體程式化單元與一上實體程式化單元,並且該下實體程式化單元的寫入速度大於該上實體程式化單元的寫入速度,其中該記憶體控制器還用以僅使用關聯至該指令記錄區的該些第二實體抹除單元的該些下實體程式化單元來紀錄該至少部份的該寫入指令。
  21. 如申請專利範圍第12項所述之記憶體儲存裝置,其中該記憶體控制器還用以對位於該些第一實體抹除單元中相關於該第一資料之一有效資料與該第一資料執行一資料合併程序,其中位於該些第二實體抹除單元中相關於該第一資料之一有效資料不與該第一資料進行該資料合併程序。
  22. 如申請專利範圍第12項所述之記憶體儲存裝置,其中該記憶體控制器還用以執行一第一平均磨損程序於該些第一實體抹除單元,並且執行一第二平均磨損程序於該些第二實體抹除單元,其中該第一平均磨損程序不同於該第二平均磨損程序,且該些第一實體抹除單元之間的一交換頻率高於該些第二實體抹除單元之間的一交換頻率。
  23. 一種記憶體控制器,包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括一第一記憶單元與一第二記憶單元,該第一記憶單元包括多個第一實體抹除單元,並且該第二記憶單元包括多個第二實體抹除單元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,用以將該些第一實體抹除單元至少劃分出一資料區與一閒置區,將該些第二實體抹除單元至少劃分出一備份資料區與一指令記錄區,並且配置多個邏輯位址以映射至關 聯至該資料區的該些第一實體抹除單元,其中,該記憶體管理電路用以接收一寫入指令,其中該寫入指令指示將一第一資料寫入至該些邏輯位址的至少一第一邏輯位址,其中,該記憶體管理電路用以將該第一資料寫入至該些第一實體抹除單元中關聯至該閒置區的其中之一,將該第一資料寫入至該些第二實體抹除單元中關聯至該備份資料區的其中之一,並且將至少部份的該寫入指令紀錄在該些第二實體抹除單元中關聯至該指令記錄區的其中之一。
  24. 如申請專利範圍第23項所述之記憶體控制器,其中該第一資料包括一第一部分與一第二部份,其中該記憶體管理電路還用以致能該第一記憶單元,並且傳送一第一指令至該第一記憶單元,其中該第一指令用以指示該第一部份欲被寫入,其中,該記憶體管理電路還用以致能該第二記憶單元,傳送該第一指令至該第二記憶單元,並且同時將該第一部份傳送至該第一記憶單元與該第二記憶單元,其中,該記憶體管理電路還用以致能該第一記憶單元與該第二記憶單元,並且同時傳送一第二指令至該第一記憶單元與該第二記憶單元,其中該第二指令用以表示該第一部分已傳送完畢,其中,該記憶體管理電路還用以致能該第一記憶單元,並且傳送一第三指令至該第一記憶單元,其中該第三指令用以指示該第二部分欲被寫入, 其中,該記憶體管理電路還用以致能該第二記憶單元,傳送該第三指令至該第二記憶單元,並且同時將該第二部份傳送至該第一記憶單元與該第二記憶單元,其中,該記憶體管理電路還用以致能該第一記憶單元與該第二記憶單元,並且同時傳送一第四指令至該第一記憶單元與該第二記憶單元,其中該第四指令用以指示將該第一部分與該第二部分寫入。
  25. 如申請專利範圍第23項所述之記憶體控制器,其中該第一資料是被寫入至該些第二實體抹除單元中關聯至該備份資料區的一第三實體抹除單元,其中,該記憶體管理電路還用以將該第三實體抹除單元的一初始實體位址以及該第一資料的一資料長度寫入至該些第二實體抹除單元中關聯至該指令記錄區的其中之一,其中該第一資料是從該初始實體位址開始被寫入。
  26. 如申請專利範圍第25項所述之記憶體控制器,其中,該記憶體管理電路還用以建立一前指標,其中該前指標指向該些第二實體抹除單元關聯至該備份資料區的一第四實體抹除單元中的一第一實體程式化單元,其中,該記憶體管理電路還用以建立一後指標,其中該後指標指向該些第二實體抹除單元中關聯至該備份資料區的一第五實體抹除單元,其中,該記憶體管理電路還用以將該第一資料寫入至該第一實體程式化單元,並判斷關聯至該備份資料區的該些第二實體抹除單元的一閒置記憶體空間是否足夠寫入該 第一資料,若該閒置記憶體空間不足夠寫入該第一資料時,該記憶體管理電路還用以抹除該第五實體抹除單元,將該第一資料寫入至該第五實體抹除單元,將該後指標移動至一第六實體抹除單元,並將該前指標移動至接續在該第一資料後的實體程式化單元。
  27. 如申請專利範圍第26項所述之記憶體控制器,其中該記憶體管理電路還用以判斷該第一實體程式化單元的一實體位址加上該資料長度的和是否超過該第五實體抹除單元的一實體位址,若該第一實體程式化單元的該實體位址加上該資料長度的和超過該第五實體抹除單元的該實體位址,該記憶體管理電路判斷該閒置記憶體空間不足夠寫入該第一資料,其中該第六實體抹除單元的程式化順序接續在該第五實體抹除單元之後。
  28. 如申請專利範圍第25項所述之記憶體控制器,其中每一該些第二實體抹除單元包括多個實體程式化單元,其中,該記憶體管理電路還用以將該指令記錄區的該些第二實體抹除單元劃分為一第一指令記錄區與一第二指令記錄區,並且建立一第一指標與一第二指標,其中該第一指標與該第二指標指向該些第二實體抹除單元關聯至該第一指令記錄區的其中之一或指向該些實體程式化單元中關聯至該第二指令記錄區的其中之一, 其中,該記憶體管理電路還用以將該寫入指令紀錄在該第二指標所指向的該實體程式化單元,並且將該第二指標移動至下一個實體程式化單元,當該第一指標與該第二指標皆指向該第二指令記錄區時,該記憶體管理電路還用以抹除該些第二實體抹除單元中關聯至該第一指令記錄區的其中之一。
  29. 如申請專利範圍第25項所述之記憶體控制器,其中該記憶體管理電路還用以從關聯至該指令記錄區的該些第二實體抹除單元中讀取該第三實體抹除單元的該初始實體位址以及該第一資料的該資料長度,該記憶體管理電路還用以根據該第一資料的該資料長度以及該第三實體抹除單元的該初始實體位址,從該備份資料區中讀取該第一資料,該記憶體管理電路還用以將該第一資料寫入至該些第一實體抹除單元的其中之一。
  30. 如申請專利範圍第28項所述之記憶體控制器,其中該記憶體管理電路還用以將該些第一實體抹除單元更劃分出一系統區,並且將該第一指標、該第二指標、一前指標以及一後指標寫入至該些第一實體抹除單元中關聯至該系統區的其中之一。
  31. 如申請專利範圍第23項所述之記憶體控制器,其中每一該些第二實體抹除單元包括多個實體程式化單元組,每一該些實體程式化單元組包括一下實體程式化單元與一上實體程式化單元,並且該下實體程式化單元的寫入 速度大於該上實體程式化單元的寫入速度,其中該記憶體管理電路還用以僅使用關聯至該指令記錄區的該些第二實體抹除單元的該些下實體程式化單元來紀錄該至少部份的該寫入指令。
  32. 如申請專利範圍第23項所述之記憶體控制器,其中該記憶體管理電路還用以對位於該些第一實體抹除單元中相關於該第一資料之一有效資料與該第一資料執行一資料合併程序,其中位於該些第二實體抹除單元中相關於該第一資料之一有效資料不與該第一資料進行該資料合併程序。
  33. 如申請專利範圍第23項所述之記憶體控制器,其中該記憶體管理電路還用以執行一第一平均磨損程序於該些第一實體抹除單元,並且執行一第二平均磨損程序於該些第二實體抹除單元,其中該第一平均磨損程序不同於該第二平均磨損程序,且該些第一實體抹除單元之間的一交換頻率高於該些第二實體抹除單元之間的一交換頻率。
TW101127807A 2012-08-01 2012-08-01 資料管理方法、記憶體控制器與記憶體儲存裝置 TWI495998B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101127807A TWI495998B (zh) 2012-08-01 2012-08-01 資料管理方法、記憶體控制器與記憶體儲存裝置
US13/633,140 US9442834B2 (en) 2012-08-01 2012-10-02 Data management method, memory controller and memory storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101127807A TWI495998B (zh) 2012-08-01 2012-08-01 資料管理方法、記憶體控制器與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201407349A true TW201407349A (zh) 2014-02-16
TWI495998B TWI495998B (zh) 2015-08-11

Family

ID=50026655

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101127807A TWI495998B (zh) 2012-08-01 2012-08-01 資料管理方法、記憶體控制器與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9442834B2 (zh)
TW (1) TWI495998B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI601011B (zh) * 2016-07-05 2017-10-01 慧榮科技股份有限公司 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法
US11249676B2 (en) 2020-07-02 2022-02-15 Silicon Motion, Inc. Electronic device, flash memory controller and associated control method
TWI814501B (zh) * 2022-07-19 2023-09-01 大陸商合肥兆芯電子有限公司 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016008088A1 (en) 2014-07-15 2016-01-21 Microsoft Technology Licensing, Llc Data retrieval across multiple models
WO2016008087A1 (en) 2014-07-15 2016-01-21 Microsoft Technology Licensing, Llc Managing multiple data models over data storage system
WO2016008086A1 (en) 2014-07-15 2016-01-21 Microsoft Technology Licensing, Llc Data model indexing for model queries
WO2016008085A1 (en) 2014-07-15 2016-01-21 Microsoft Technology Licensing, Llc Data model change management
US9582201B2 (en) * 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
TWI575374B (zh) * 2015-08-04 2017-03-21 群聯電子股份有限公司 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元
TWI709850B (zh) * 2019-01-30 2020-11-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
TWI368223B (en) * 2007-12-07 2012-07-11 Phison Electronics Corp Flash memory data writing method and controller using the same
TWI362668B (en) * 2008-03-28 2012-04-21 Phison Electronics Corp Method for promoting management efficiency of an non-volatile memory storage device, non-volatile memory storage device therewith, and controller therewith
TWI385669B (zh) * 2008-07-23 2013-02-11 Phison Electronics Corp 用於快閃記憶體的平均磨損方法、儲存系統與控制器
TWI385523B (zh) * 2009-11-06 2013-02-11 Phison Electronics Corp 用於快閃記憶體的資料備份方法及其控制器與儲存系統
TWI435329B (zh) * 2009-12-15 2014-04-21 Phison Electronics Corp 快閃記憶體管理方法、快閃記憶體控制器與儲存系統
US9405670B2 (en) * 2011-06-09 2016-08-02 Tsinghua University Wear leveling method and apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI601011B (zh) * 2016-07-05 2017-10-01 慧榮科技股份有限公司 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法
US10248339B2 (en) 2016-07-05 2019-04-02 Silicon Motion, Inc. Data storage device and data storage method for detecting currently-used logical pages
US11249676B2 (en) 2020-07-02 2022-02-15 Silicon Motion, Inc. Electronic device, flash memory controller and associated control method
TWI787627B (zh) * 2020-07-02 2022-12-21 慧榮科技股份有限公司 電子裝置、快閃記憶體控制器及其存取方法
TWI814501B (zh) * 2022-07-19 2023-09-01 大陸商合肥兆芯電子有限公司 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
US20140040533A1 (en) 2014-02-06
US9442834B2 (en) 2016-09-13
TWI495998B (zh) 2015-08-11

Similar Documents

Publication Publication Date Title
TWI495998B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
TWI506430B (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9176865B2 (en) Data writing method, memory controller, and memory storage device
TWI515735B (zh) 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
US9009399B2 (en) Flash memory storage system and controller and data writing method thereof
TWI476590B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
US9177656B2 (en) Data writing method, memory storage device and memory controlling circuit unit
US9304900B2 (en) Data reading method, memory controller, and memory storage device
US9141530B2 (en) Data writing method, memory controller and memory storage device
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI525625B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
TWI486765B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI533309B (zh) 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI596477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US9652378B2 (en) Writing method, memory controller and memory storage device
TW201638960A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置