TWI446170B - 資料寫入方法、記憶體控制器與記憶體儲存裝置 - Google Patents

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

Info

Publication number
TWI446170B
TWI446170B TW100133031A TW100133031A TWI446170B TW I446170 B TWI446170 B TW I446170B TW 100133031 A TW100133031 A TW 100133031A TW 100133031 A TW100133031 A TW 100133031A TW I446170 B TWI446170 B TW I446170B
Authority
TW
Taiwan
Prior art keywords
page
data
physical
entity
pair
Prior art date
Application number
TW100133031A
Other languages
English (en)
Other versions
TW201312351A (zh
Inventor
Chih Kang Yeh
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 TW100133031A priority Critical patent/TWI446170B/zh
Priority to US13/323,812 priority patent/US8738847B2/en
Publication of TW201312351A publication Critical patent/TW201312351A/zh
Application granted granted Critical
Publication of TWI446170B publication Critical patent/TWI446170B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Description

資料寫入方法、記憶體控制器與記憶體儲存裝置
本發明是有關於一種資料寫入方法,且特別是有關於用於可複寫式非揮發性記憶體模組的資料寫入方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
隨著半導體製程技術的發展,多階記憶胞(Multi Level Cell,MLC)反及(NAND)快閃記憶體模組已廣泛的被使用。由於MLC NAND快閃記憶體物理特性,在程式化部分的實體頁面(physical page)時電荷會較不穩定並且鄰近的實體頁面可能會受到影響。例如,以4階NAND快閃記憶體模組為例,每一個實體區塊具有多個實體頁面並且此些實體頁面可被區分為多個下實體頁面與分別地對應此些下實體頁面的多個上實體頁面,其中一個上實體頁面會對應一個下實體頁面。也就是說,位於相同之字元線上的記憶胞會構成一個實體頁面對,並且此實體頁面對包括一個下實體頁面與一個上實體頁面。資料寫入至下實體頁面的速度大於資料寫入至上實體頁面的速度,因此,下實體頁面亦稱為快速實體頁面且上實體頁面亦稱為慢速實體頁面。特別是,在程式化上實體頁面期間發生程式化錯誤時,儲存於對應此上實體頁面的下實體頁面中的資料亦可能會遺失。
因此,相對於單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組來說,MLC NAND快閃記憶體模組雖容量較大,但儲存可靠度較差。因此,有需要發展能夠增加MLC NAND快閃記憶體模組之可靠度的資料寫入方法。
本發明提供一種資料寫入方法與記憶體控制器,其能夠有效地提升寫入資料至可複寫式非揮發性記憶體模組的可靠度。
本發明提供一種記憶體儲存裝置,其能夠可靠地儲存資料。
本發明的一範例實施例提出一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有依序排列的多個實體頁面,此些實體頁面被分組為依序排列的多個實體頁面對,每一實體頁面對至少包括下實體頁面與上實體頁面,寫入資料至下實體頁面的速度大於寫入資料至上實體頁面的速度。本資料寫入方法包括接收寫入指令與對應此寫入指令的第一資料並且將第一資料寫入至此些實體頁面之中的第一實體頁面,其中第一實體頁面屬於此些實體頁面對之中的第一實體頁面對。本資料寫入方法也包括在將第一資料寫入至第一實體頁面之前判斷第一實體頁面是否為第一實體頁面對的上實體頁面。本資料寫入方法還包括,當第一實體頁面為第一實體頁面對的上實體頁面時,在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有第二資料,其中第二資料已被寫入至第一實體頁面對的下實體頁面中。本資料寫入方法更包括,當備份區未存有第二資料時,在將第一資料寫入至第一實體頁面之前從第一實體頁面對的下實體頁面中讀取第二資料並且將所讀取的第二資料暫存至備份區中。
在本發明之一實施例中,上述之資料寫入方法更包括,當第一實體頁面為第一實體頁面對的上實體頁面時,在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有第三資料,其中第三資料已被寫入至此些實體頁面之中鄰近第一實體頁面對的下實體頁面的其他下實體頁面中。此外,本資料寫方法更包括,當在備份區中未存有第三資料時,在將第一資料寫入至第一實體頁面之前從此其他下實體頁面中讀取第三資料並且將所讀取的第三資料暫存至備份區中。
在本發明之一實施例中,上述之資料寫入方法,更包括,當第一實體頁面為第一實體頁面對的上實體頁面時,在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有屬於鄰近第一實體頁面對的至少一其他實體頁面對的資料,其中在可複寫式非揮發性記憶體模組中此其他實體頁面對是排列在第一實體頁面對的前面;以及當在備份區中未存有此其他實體頁面對的資料時,在將第一資料寫入至第一實體頁面之前從此其他實體頁面對中將此其他實體頁面對的資料暫存至備份區中。
在本發明之一實施例中,其中每一實體頁面對更包括一中實體頁面,並且上述資料寫入方法更包括,當第一實體頁面為第一實體頁面對的上實體頁面時,在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有屬於第一實體頁面對的中實體頁面的資料;以及當在備份區中未存有屬於第一實體頁面對的中實體頁面的資料時,在將第一資料寫入至第一實體頁面之前從第一實體頁面對的中實體頁面中將屬於第一實體頁面對的中實體頁面的資料暫存至備份區中。
在本發明之一實施例中,上述備份區為緩衝記憶體。
在本發明之一實施例中,上述之資料寫入方法更包括將上述實體區塊的至少其中之一配置為上述備份區。
在本發明之一實施例中,上述之資料寫入方法更包括在將第一資料寫入至第一實體頁面之後,判斷在第一實體頁面上是否發生程式化錯誤;以及當在第一實體頁面上發生該程式化錯誤時,將第一資料與第二資料寫入至上述實體頁面對之中的第二實體頁面對中。
本發明的另一範例實施例提出一種記憶體控制器,用於操作可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,每一實體區塊具有依序排列的多個實體頁面,此些實體頁面被分組為依序排列的多個實體頁面對,每一實體頁面對至少包括下實體頁面與上實體頁面,寫入資料至下實體頁面的速度大於寫入資料至上實體頁面的速度。本記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統;記憶體介面用以耦接至可複寫式非揮發性記憶體模組;並且記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路用以接收寫入指令與對應此寫入指令的第一資料,並且將第一資料寫入至此些實體頁面之中的一第一實體頁面,其中第一實體頁面屬於此些實體頁面對之中的第一實體頁面對。此外,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前判斷第一實體頁面是否為第一實體頁面對的上實體頁面。並且,其中當第一實體頁面為第一實體頁面對的上實體頁面時,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有第二資料,其中此第二資料已被寫入至第一實體頁面對的下實體頁面中。再者,當備份區未存有該第二資料時,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前從第一實體頁面對的下實體頁面中讀取第二資料並且將所讀取的第二資料暫存至備份區中。
在本發明之一實施例中,當第一實體頁面為第一實體頁面對的上實體頁面時,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有第三資料,其中第三資料已被寫入至此些實體頁面之中鄰近第一實體頁面對的下實體頁面的其他下實體頁面中。並且,當在備份區中未存有第三資料時,上述之記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前從此其他下實體頁面中讀取第三資料並且將所讀取的第三資料暫存至備份區。
在本發明之一實施例中,當第一實體頁面為第一實體頁面對的上實體頁面時,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有屬於鄰近第一實體頁面對的至少一其他實體頁面對的資料,其中在可複寫式非揮發性記憶體模組中此其他實體頁面對排列在第一實體頁面對的前面。此外,當在備份區中未存有此其他實體頁面對的資料時,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前從此其他實體頁面對中將此其他實體頁面對的資料暫存至備份區中。
在本發明之一實施例中,每一實體頁面對更包括一中實體頁面。此外,當第一實體頁面為第一實體頁面對的上實體頁面時,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有屬於第一實體頁面對的中實體頁面的資料。再者,當在備份區中未存有屬於第一實體頁面對的中實體頁面的資料時,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前從第一實體頁面對的中實體頁面中將屬於第一實體頁面對的中實體頁面的資料暫存至備份區中。
在本發明之一實施例中,上述之記憶體控制器更包括一緩衝記憶體並且上述之備份區為此緩衝記憶體。
在本發明之一實施例中,上述之記憶體管理電路更用以將上述實體區塊的至少其中之一配置為上述備份區。
在本發明之一實施例中,上述之記憶體管理電路更用以在將第一資料寫入至第一實體頁面之後判斷在第一實體頁面上是否發生程式化錯誤。並且,當在第一實體頁面上發生該程式化錯誤時,記憶體管理電路更用以將第一資料與第二資料寫入至此些實體頁面對之中的第二實體頁面對中。
本發明的一範例實施例提出一種記憶體儲存裝置,其包括可複寫式非揮發性記憶體模組、連接器與記憶體控制器。可複寫式非揮發性記憶體模組具有多個實體區塊,其中每一實體區塊具有依序排列的多個實體頁面,此些實體頁面被分組為依序排列的多個實體頁面對,每一實體頁面對至少包括下實體頁面與上實體頁面,並且寫入資料至下實體頁面的速度大於寫入資料至上實體頁面的速度。連接器用以耦接至主機系統並且記憶體控制器耦接至此可複寫式非揮發性記憶體模組與連接器。記憶體控制器用以接收寫入指令與對應寫入指令的第一資料,並且將第一資料寫入至此些實體頁面之中的第一實體頁面,其中第一實體頁面屬於此些實體頁面對之中的第一實體頁面對。此外,記憶體控制器更用以在將第一資料寫入至第一實體頁面之前判斷第一實體頁面是否為第一實體頁面對的上實體頁面。並且,當第一實體頁面為第一實體頁面對的上實體頁面時,記憶體控制器更用以在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有第二資料,其中第二資料已被寫入至第一實體頁面對的下實體頁面中。再者,當備份區未存有第二資料時,記憶體控制器更用以在將第一資料寫入至第一實體頁面之前從第一實體頁面對的下實體頁面中讀取第二資料並且將所讀取的第二資料暫存至備份區中。
在本發明之一實施例中,當第一實體頁面為第一實體頁面對的上實體頁面時,記憶體控制器更用以在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有第三資料,其中第三資料已被寫入至此些實體頁面之中鄰近第一實體頁面對的下實體頁面的其他下實體頁面中。並且,當在備份區中未存有第三資料時,記憶體控制器更用以在將第一資料寫入至第一實體頁面之前從其他下實體頁面中讀取第三資料並且將所讀取的第三資料暫存至備份區。
在本發明之一實施例中,當第一實體頁面為第一實體頁面對的上實體頁面時,記憶體控制器更用以在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有屬於鄰近第一實體頁面對的至少一其他實體頁面對的資料,其中在可複寫式非揮發性記憶體模組中此其他實體頁面對排列在第一實體頁面對的前面。此外,當在備份區中未存有此其他實體頁面對的資料時,記憶體管理電路更用以在將第一資料寫入至第一實體頁面之前從此其他實體頁面對中將此其他實體頁面對的資料暫存至備份區中。
在本發明之一實施例中,每一實體頁面對更包括一中實體頁面。此外,當第一實體頁面為第一實體頁面對的上實體頁面時,記憶體控制器更用以在將第一資料寫入至第一實體頁面之前判斷在備份區中是否存有屬於第一實體頁面對的中實體頁面的資料。並且,當在備份區中未存有屬於第一實體頁面對的中實體頁面的資料時,記憶體控制器更用以在將第一資料寫入至第一實體頁面之前從第一實體頁面對的中實體頁面中將屬於第一實體頁面對的中實體頁面的資料暫存至備份區中。
在本發明之一實施例中,上述之記憶體儲存裝置更包括緩衝記憶體,其中上述備份區為此緩衝記憶體。
在本發明之一實施例中,上述之記憶體控制器更用以將上述實體區塊的至少其中之一配置為上述備份區。
在本發明之一實施例中,上述之記憶體控制器更用以在將第一資料寫入至第一實體頁面之後判斷在第一實體頁面上是否發生程式化錯誤。並且,當在第一實體頁面上發生程式化錯誤時,記憶體管理電路更用以將第一資料與第二資料寫入至此些實體頁面對之中的第二實體頁面對中。
基於上述,本發明範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置能夠可靠地執行資料的寫入,由此避免因程式化錯誤而遺失資料。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
[第一範例實施例]
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394標準、平行先進附件(Parallel Advanced Technology Attachment,PATA)標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取、抹除與合併等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且具有多個實體區塊以儲存主機系統1000所寫入之資料。在本範例實施例中,每一實體區塊分別具有複數個實體頁面,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。例如,每一實體區塊是由128個實體頁面所組成,並且每一實體頁面的容量為4千位元組(Kilobyte,KB)。然而,必須瞭解的是,本發明不限於此。
更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為更新資料的最小單元。然而,必須瞭解的是,在本發明另一範例實施例中,更新資料的最小單位亦可以是實體扇區或其他大小。每一實體頁面通常包括資料位元區與冗餘位元區。資料位元區用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤檢查與校正碼)。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是其他具有相同特性的記憶體模組。
圖3是根據第一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括微控制器302、主機介面304、記憶體介面306、記憶體管理單元308、記憶體寫入單元310、記憶體讀取單元312、記憶體抹除單元314、資料處理單元316、資料備份單元318與緩衝記憶體320。
微控制器302用以控制記憶體控制器104的整體運作。
主機介面304是耦接至微控制器302並且用以接收與識別主機系統1000所傳送的指令與資料。在本範例實施例中,主機介面304是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面304亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面306是耦接至微控制器302並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面306轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
記憶體管理單元308、記憶體寫入單元310、記憶體讀取單元312、記憶體抹除單元314、資料處理單元316與資料備份單元318是耦接至微控制器302。在此,記憶體管理單元308用以管理可複寫式非揮發性記憶體模組106的實體區塊。記憶體寫入單元310用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中。記憶體讀取單元312用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料。記憶體抹除單元314用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除。而資料處理單元316用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。資料備份單元318用以備份已寫入至可複寫式非揮發性記憶體模組106的資料。
緩衝記憶體320是耦接至微控制器302並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。例如,緩衝記憶體320可以是靜態隨機存取記憶體、動態隨機存取記憶體等。
必須瞭解的是,圖3所繪示之記憶體控制器僅為一個範例,本發明不限於此。例如,除了上述微控制器302、主機介面304、記憶體介面306、記憶體管理單元308、記憶體寫入單元310、記憶體讀取單元312、記憶體抹除單元314、資料處理單元316、資料備份單元318與緩衝記憶體320,記憶體控制器104亦可更包括電源管理電路與錯誤檢查與校正電路。
電源管理電路是耦接至微控制器302並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路是耦接至微控制器302並且用以執行一錯誤校正程序以確保資料的正確性。具體來說,當主機介面304從主機系統1000中接收到主機寫入指令時,錯誤檢查與校正電路會為對應此主機寫入指令的寫入資料(亦稱為更新資料)產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體寫入單元310會將此更新資料與對應的錯誤校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體讀取單元312從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤校正碼,並且錯誤檢查與校正電路會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。
圖4A與圖4B是根據第一範例實施例所繪示管理可複寫式非揮發性記憶體模組之實體區塊的示意圖。
請參照圖4A,可複寫式非揮發性記憶體模組106具有實體區塊410(0)~410(N),並且記憶體控制器104的記憶體管理單元308會將實體區塊410(0)~410(N)邏輯地分組為(或指派至)資料區(data area)502、閒置區(spare area)504、系統區(system area)506與取代區(replacement area)508。
邏輯上屬於資料區502與閒置區504的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體區塊(亦稱為資料實體區塊)是被視為已儲存資料的實體區塊,而閒置區504的實體區塊(亦稱為閒置實體區塊)是用以寫入新資料的實體區塊。例如,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理單元308會從閒置區504中提取實體區塊,資料處理單元316會整理欲寫入之資料並且記憶體寫入單元310會將資料寫入至所提取的實體區塊中。再例如,當對某一邏輯區塊執行資料合併程序時,記憶體管理單元308會從閒置區504中提取實體區塊作為對應此邏輯區塊的新資料實體區塊,記憶體讀取單元312會從可複寫式非揮發性記憶體模組106中讀取屬於此邏輯區塊的有效資料,資料處理單元316會整理此些有效資料,記憶體寫入單元310會將整理後的有效資料寫入至新資料實體區塊中,並且記憶體管理單元308會將此邏輯區塊重新映射至新資料實體區塊。特別是,在完成資料合併程序後,記憶體管理單元308會將儲存無效資料的資料實體區塊重新關聯(或回收)至閒置區504,以作為下次寫入新資料之用。例如,記憶體抹除單元314會在實體區塊被關聯至閒置區504時對此實體區塊執行抹除運作或者當實體區塊從閒置區504中被提取時對此實體區塊執行抹除運作,以使得從閒置區504中所提取的實體區塊為可用於寫入資料的空實體區塊。
邏輯上屬於系統區506的實體區塊是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體區塊數、每一實體區塊的實體頁面數等。
邏輯上屬於取代區508中的實體區塊是用於壞實體區塊取代程序,以取代損壞的實體區塊。具體來說,倘若取代區508中仍存有正常之實體區塊並且資料區502的實體區塊損壞時,記憶體管理單元308會從取代區508中提取正常的實體區塊來更換損壞的實體區塊。
基於上述,在記憶體儲存裝置100的運作中,資料區502、閒置區504、系統區506與取代區508的實體區塊會動態地變動。例如,用以輪替儲存資料的實體區塊會變動地屬於資料區502或閒置區504。
值得一提的是,在本範例實施例中,記憶體管理單元308是以每一實體區塊為單位來進行管理。然而,本發明不限於此,在另一範例實施例中,記憶體管理單元308亦可將實體區塊分組為多個實體單元,並且以實體單元為單位來進行管理。例如,每一實體單元可由同一記憶體晶粒(die)或不同記憶體晶粒中的至少一個實體區塊所組成。
請參照圖4B,記憶體管理單元308會配置邏輯區塊610(0)~610(H)以映射資料區502的實體區塊,其中每一邏輯區塊具有多個邏輯頁面並且此些邏輯頁面是依序地映射對應之資料實體區塊的實體頁面。例如,在記憶體儲存裝置100被格式化時,邏輯區塊610(0)~610(H)會初始地映射資料區502的實體區塊410(0)~410(F-1)。
在本發明範例實施例中,記憶體管理單元308會維護邏輯區塊-實體區塊映射表(logical block-physical block mapping table)以記錄邏輯區塊610(0)~610(H)與資料區502的實體區塊之間的映射關係。此外,主機系統1000是以邏輯存取位址為單位來存取資料。例如,一個邏輯存取位址為一個邏輯扇區(Sector)。當主機系統1000存取資料時,記憶體管理單元308會將對應記憶體儲存裝置100的邏輯存取位址710(0)~710(K)轉換成對應之邏輯頁面內的位址。例如,當主機系統1000欲存取某一邏輯存取位址時,記憶體管理單元308會將主機系統1000所存取的邏輯存取位址轉換為以對應的邏輯區塊、邏輯頁面與邏輯偏移(offset)所構成的多維位址,並且透過邏輯區塊-實體區塊映射表於對應的實體頁面中存取資料。在此,偏移是用以定位在一個邏輯頁面(或實體頁面)中的一個邏輯(或實體)位址,其是定義為此邏輯(或實體)位址與此邏輯頁面(或實體頁面)的起始位址之間的距離,其中此邏輯(或實體)位址亦稱為邏輯(實體)偏移位址。
圖5~圖7是根據第一範例實施例所繪示的使用子實體區塊來寫入更新資料的範例。
請同時參照圖5~圖7,例如,在邏輯區塊610(0)是映射至實體區塊410(0)的映射狀態下,當記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入資料至屬於邏輯區塊610(0)的邏輯頁面時,記憶體控制器104會依據邏輯區塊-實體區塊映射表識別邏輯區塊610(0)目前是映射至實體區塊410(0)並且從閒置區504中提取實體區塊410(F)來輪替實體區塊410(0)。然而,當新資料寫入至實體區塊410(F)的同時,記憶體控制器104不會立刻將實體區塊410(0)中的所有有效資料搬移至實體區塊410(F)而抹除實體區塊410(0)。具體來說,記憶體讀取單元312會從實體區塊410(0)中讀取欲寫入實體頁面之前的有效資料(即,實體區塊410(0)的第0實體頁面與第1實體頁面中的資料)。之後,記憶體寫入單元310會將實體區塊410(0)中欲寫入實體頁面之前的有效資料寫入至實體區塊410(F)的第0實體頁面與第1實體頁面中(如圖5所示),並且將新資料寫入至實體區塊410(F)的第2~4個實體頁面中(如圖6所示)。此時,記憶體控制器104即完成寫入的運作。因為實體區塊410(0)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊410(0)中的有效資料搬移至實體區塊410(F)可能會造成無謂的搬移。此外,資料必須依序地寫入至實體區塊內的實體頁面,因此,記憶體寫入單元310、記憶體讀取單元312與資料處理單元316僅會先搬移欲寫入實體頁面之前的有效資料(即,儲存在實體區塊410(0)的第0實體頁面與第1實體頁面中資料),並且暫不搬移其餘有效資料(即,儲存在實體區塊410(0)的第5~K實體頁面中資料)。
在本範例實施例中,暫時地維持此等暫態關係的運作稱為開啟(open)母子區塊,並且原實體區塊(例如,上述實體區塊410(0))稱為母實體區塊而用以替換母實體區塊的實體區塊(例如,上述與實體區塊410(F))稱為子實體區塊。
之後,當需要將實體區塊410(0)與實體區塊410(F)的資料合併(merge)時,記憶體控制器104會將實體區塊410(0)與實體區塊410(F)的資料整併至一個實體區塊,由此提升實體區塊的使用效率。在此,合併母子區塊的運作稱為資料合併程序或關閉(close)母子區塊。例如,如圖7所示,當進行關閉母子區塊時,記憶體讀取單元312會從實體區塊410(0)中讀取剩餘的有效資料(即,實體區塊410(0)的第5~K實體頁面中的資料),之後,記憶體寫入單元310會將實體區塊410(0)中剩餘的有效資料寫入至實體區塊410(F)的第5實體頁面~第K實體頁面中,然後記憶體抹除單元314會對實體區塊410(0)執行抹除操作並記憶體管理單元308會將抹除後之實體區塊410(0)關聯至閒置區504並且將實體區塊410(F)關聯至資料區502。也就是說,記憶體管理單元308會在邏輯區塊-實體區塊映射表中將邏輯區塊610(0)重新映射至實體區塊410(F)。此外,在本範例實施例中,記憶體管理單元308會建立閒置區實體區塊表(未繪示)來記錄目前被關聯至閒置區504的實體區塊。值得一提的是,閒置區504中實體區塊的數目是有限的,基此,在記憶體儲存裝置100運作期間,已開啟之母子區塊組的數目亦會受到限制。因此,當記憶體儲存裝置100接收到來自於主機系統1000的寫入指令時,倘若已開啟母子區塊組的數目達到上限時,記憶體控制器104需關閉至少一組目前已開啟之母子區塊組後才可執行此寫入指令。
除了上述使用子實體區塊來寫入更新資料外,在本範例實施例中,在本範例實施例中,記憶體管理單元308更會從閒置區504中提取至少一實體區塊作為混亂(Random)實體區塊,以寫入更新資料。
圖8是根據第一範例實施例所繪示之使用混亂實體區塊寫入資料的範例示意圖。
請參照圖8,假設實體區塊410(S-1)被提取作為混亂實體區塊並且在圖6所示的儲存狀態下主機系統1000欲寫入更新資料至邏輯區塊610(0)的第1邏輯頁面時,記憶體寫入單元310會將此更新資料寫入至混亂實體區塊中第一個空的實體頁面(例如,實體區塊410(S-1)的第0實體頁面)中。
在本範例實施例中,當目前所使用之混亂實體區塊已被寫滿時,記憶體管理單元308會再從閒置區504中提取另一個實體區塊作為新的混亂實體區塊,直到作為混亂實體區塊的實體區塊的數目達到預設值為止。具體來說,閒置區504的實體區塊是有限的,因此,作為混亂實體區塊之實體區塊的數目亦會受到限制。當作為混亂實體區塊的實體區塊的數目達到預設值時,記憶體管理單元308、記憶體寫入單元310、記憶體讀取單元312與記憶體抹除單元314會協同地執行上述資料合併程序,對所儲存之資料皆為無效資料的混亂實體區塊執行抹除運作並且將已抹除之實體區塊關聯至閒置區504。由此,在執行下一個寫入指令時,記憶體管理單元308就可再從閒置區504提取空的實體區塊作為混亂實體區塊。
值得一提的是,儘管圖8是以當主機系統1000欲更新之邏輯頁面的資料已被寫入至子實體區塊時,將此更新資料會寫入至混亂實體區塊的例子來作說明,但混亂實體區塊的使用方式不限於此。例如,在本發明另一範例實施例中,記憶體寫入單元310亦可直接將來自於主機系統1000的更新資料直接地先寫入至混亂實體區塊,並且之後,記憶體管理單元308、記憶體寫入單元310、記憶體讀取單元312與記憶體抹除單元314再協同地將屬於一個邏輯區塊的有效資料合併至從閒置區504所提取的一個空實體區塊中。
在本範例實施例中,可複寫式非揮發性記憶體模組106為MLC NAND型快閃記憶體模組。具體來說,NAND型快閃記憶體模組可根據每一記憶胞可儲存的資料位元數而區分為MLC NAND型快閃記憶體模組及單階層記憶胞(Single-Level Cell,SLC)NAND型快閃記憶體模組。SLC NAND型快閃記憶體模組的每個記憶胞僅能儲存1個位元資料,而MLC NAND型快閃記憶體模組的每個記憶胞可儲存至少2個以上的位元資料。例如,以4階記憶胞NAND型快閃記憶體模組為例,每一記憶胞可儲存2個位元資料(即,"11"、"10"、"00"與"01")。基此,對4階記憶胞快閃記憶體模組的寫入可區分為2個階段。第一階段是下實體頁面(lower physical page)的寫入,並且第二階段為上實體頁面(upper physical page)的寫入(如圖9A所示),其中下實體頁面的寫入速度會快於上實體頁面。因此,MLC NAND型快閃記憶體模組的每一個實體區塊的實體頁面可被區分為慢速實體頁面(即,上實體頁面)與快速實體頁面(即,下實體頁面)。特別是,相較於上實體頁面來說,下實體頁面的儲存可靠度較高。類似地,在8階記憶胞NAND型快閃記憶體模組或16階記憶胞NAND型快閃記憶體模組的案例中,記憶胞可儲存更多位元資料並且會以更多階段來寫入。例如,在8階記憶胞NAND型快閃記憶體模組中,每一個實體區塊的實體頁面可被區分為慢速實體頁面(即,上實體頁面)、中速實體頁面(即,中實體頁面與快速實體頁面(即,下實體頁面)。
圖9B是根據第一範例實施例所繪示之實體區塊之實體頁面的範例示意圖,其繪示4階記憶胞快閃記憶體模組之實體區塊的實體頁面配置。
請參照圖9B,實體區塊具有127個實體頁面並且此些實體頁面可分組為依序排列的實體頁面對900(0)~900(63),其中每一個實體頁面對是由一個上實體頁面與一個下實體頁面所組成。
值得一提的是,一個實體頁面對的實體頁面是由同一組記憶胞所組成,並且上實體頁面是在下實體頁面完成程式化之後才會被程式化(如圖9A所示),因此,倘若在上實體頁面上發生程式化錯誤時,已儲存於下實體頁面上的資料可能會因此遺失。
為了避免已儲存於下實體頁面之資料因上實體頁面的程式化錯誤而遺失,在本範例實施例中,當記憶體寫入單元310將資料(以下稱為第一資料)寫入至實體區塊(例如,上述子實體區塊或混亂實體區塊)的實體頁面(以下稱為第一實體頁面)之前,資料備份單元318會判斷第一實體頁面是否屬於上實體頁面。倘若記憶體寫入單元310欲寫入之實體頁面屬於上實體頁面時,資料備份單元318會判斷備份區是否存有已寫入至此實體頁面所屬之實體頁面對的下實體頁面(以下稱為對應下實體頁面)的資料(以下稱為第二資料)。倘若備份區未存有已寫入至此對應下實體頁面的第二資料時,資料備份單元318會指示資料讀取單元312從此對應的下實體頁面中讀取第二資料並且將所讀取之第二資料暫存在備份區中。在確定備份區存有已寫入至此對應下實體頁面的第二資料之後,記憶體寫入單元310才會對第一實體頁面執行程式化指令以寫入第一資料。
之後,在將第一資料寫入至第一實體頁面之後,記憶體管理單元308會判斷是否發生程式化錯誤。特別是,倘若發生程式化錯誤時,記憶體管理單元308會重新選擇另一個實體頁面對並且記憶體寫入單元310會將第一資料與第二資料寫入至所重新選擇的實體頁面對中。
例如,以圖9A為例,在記憶體寫入單元310欲寫入資料至第9實體頁面之前,資料備份單元318會判斷備份區是否存有已寫入至第3實體頁面的資料。倘若備份區未存有已寫入至第3實體頁面的資料時,資料備份單元318會指示資料讀取單元312從第3實體頁面中讀取資料並且將所讀取之資料暫存於備份區中。
在本範例實施例中,備份區為緩衝記憶體320。然而,本發明不限於此,在本發明另一範例實施例中,記憶體管理單元308亦可從閒置區504或系統區506提取至少一個實體區塊並且將此實體區塊用作為備份區。
基於上述,本範例實施例的記憶體控制器104對可複寫式非揮發性記憶體模組106進行寫入運作時可有效地確保所寫入之資料的可靠性。
值得一提的是,儘管在本範例實施例中,是以4階記憶胞快閃記憶體模組來作說明,但本發明不限於此。例如,以8階記憶胞快閃記憶體模組為例,資料備份單元318更會備份中實體頁面的資料。具體來說,在將資料寫入至一個實體頁面對的一個上實體頁面之前,除了將此實體頁面對的下實體頁面的資料暫存至備份區之外,資料備份單元318更判斷備份區是否存有此實體頁面對的中實體頁面的資料,並且倘若備份區未存有此實體頁面對的中實體頁面的資料時,資料備份單元318更將此實體頁面對的中實體頁面的資料暫存至備份區。
[第二範例實施例]
第二範例實施例的記憶體儲存裝置的結構本質上是相同於第一範例實施例的記憶體儲存裝置,其差異僅在於第二範例實施例的記憶體控制器更會備份已寫入至其他下實體頁面中的資料。以下將配合揭露於第一範例實施例的硬體元件來說明第二範例實施例與第一範例實施例的差異之處。
如上所述,當在一個實體頁面對的上實體頁面上發生程式化錯誤時,此實體頁面對之下實體頁面的資料亦可能會遺失。特別是,在某些情況下,鄰近於此下實體頁面之其他下實體頁面中的資料亦可能會遺失。
為解決此問題,在第二範例實施例中,在將對應下實體頁面的資料暫存至備份區之後,資料備份單元318更會判斷備份區中是否存有鄰近此對應下實體頁面之其他下實體頁面的資料(以下稱為第三資料)。倘若備份區中未存有第三資料時,資料備份單元318更會指示資料讀取單元312從此其他下實體頁面中讀取資料並且將所讀取之資料暫存於備份區中。
例如,以圖9A為例,在記憶體寫入單元310欲寫入資料至第9實體頁面之前,資料備份單元318會判斷備份區是否存有已寫入至第3實體頁面的資料。倘若備份區未存有已寫入至第3實體頁面的資料時,資料備份單元318會指示資料讀取單元312從第3實體頁面中讀取資料並且將所讀取之資料暫存於備份區中。之後,資料備份單元318更會判斷備份區是否存有已寫入至第2實體頁面的資料。倘若備份區未存有已寫入至第2實體頁面的資料時,資料備份單元318會指示資料讀取單元312從第2實體頁面中讀取資料並且將所讀取之資料暫存於備份區中。必須瞭解的是,儘管在本範例實施例中是以一個其他下實體頁面為例來作說明,但本發明不限於此。在本發明另一範例實施例中,資料備份單元318亦可判斷備份區是否存有其他多個下實體頁面(例如,第2、1、0等實體頁面)的資料,並且備份多個其他下實體頁面的資料,以更確保在發生資料遺失時此些遺失的資料可被回復。
值得一提的是,儘管在本範例實施例中,在將欲寫入之上實體頁面所對應的下實體頁面的資料暫存至備份區之後,資料備份單元318是對鄰近此對應下實體頁面之其他下實體頁面的資料進行備份,然而本發明不限於此。在本發明另一範例實施例中,在將資料寫入至一個實體頁面對的上實體頁面之前,除了將此實體頁面對的下實體頁面的資料暫存至備份區之外,資料備份單元318更判斷備份區是否存有排列在此實體頁面對之前的其他實體頁面對(例如,排列在此實體頁面對的前一個實體頁面對)的資料,並且倘若備份區未存有排列在此實體頁面對之前的其他實體頁面對的資料時,資料備份單元318更將排列在此實體頁面對之前的其他實體頁面對的資料暫存至備份區。也就是說,可能會因程式一個上實體頁面而影響之其他實體頁面對的資料都會被暫存至備份區。
[第三範例實施例]
在第一範例實施例中,記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元、資料處理單元與資料備份單元是以硬體架構來實作,但本發明不限於此。在第三範例實施例中,記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元、資料處理單元與資料備份單元所執行的功能亦可以韌體型式來實作。
例如,實作上述記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元、資料處理單元與資料備份單元之功能的控制指令可被燒錄至配置於記憶體控制器的唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微控制器來執行。
此外,在本發明另一範例實施例中,實作記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元、資料處理單元與資料備份單元之功能的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組的特定區域(例如,可複寫式非揮發性記憶體模組中專用於存放系統資料的系統區)中。例如,唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)會被配置在記憶體控制器中,並且此唯讀記憶體具有一驅動碼段。當記憶體控制器被致能時,微控制器會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組中之控制指令載入至此隨機存取記憶體中,之後再運轉此些控制指令。
也就是說,第一範例實施例所揭露之資料寫入運作亦可以程式碼來實作。以下以一流程圖說明此程式碼的運作。
圖10是根據第三範例實施例所繪示之資料寫入方法的流程圖。
請參照圖10,在步驟S1001,接收寫入指令與對應此寫入指令的資料(以下稱為第一資料)。
在步驟S1003中,判斷欲用以寫入此第一資料的實體頁面(以下稱為第一實體頁面)是否為上實體頁面。
倘若第一實體頁面非為上實體頁面時,在步驟S1005中,將第一資料寫入至第一實體頁面。具體來說,用於將第一資料寫入至第一實體頁面的程式化指令會被傳送給可複寫式非揮發性記憶體模組106。
倘若第一實體頁面為上實體頁面時,在步驟S1007中,判斷在備份區中是否存有已被寫入至第一實體頁面所屬之實體頁面對(以下稱為第一實體頁面對)的下實體頁面中的資料(以下稱為第二資料)。
倘若備份區存有第二資料時,上述步驟S1005會被執行。
倘若備份區未存有第二資料時,在步驟S1009中,從第一實體頁面對的下實體頁面中讀取第二資料並且將所讀取的第二資料暫存至備份區中。之後,步驟S1005會被執行。
值得一提的是,圖10的流程可更包括在執行步驟S1005之後,判斷在第一實體頁面上是否發生程式化錯誤,並且當在第一實體頁面上發生程式化錯誤時,將第一資料與第二資料寫入至另一個實體頁面對中。例如,另一個實體頁面對(以下稱為第二實體頁面對)會被選擇並且第一資料會被寫入至第二實體頁面對的下實體頁面並且第二資料會被寫入至第二實體頁面對的上實體頁面。
儘管在本範例實施例中,是以4階記憶胞快閃記憶體模組來作說明,但本發明不限於此。例如,以8階記憶胞快閃記憶體模組為例,圖10的流程可更包括:在將資料寫入至第一實體頁面對的上實體頁面之前,判斷備份區是否存有第一實體頁面對的中實體頁面的資料(如圖11的步驟S1101);並且倘若備份區未存有第一實體頁面對的中實體頁面的資料時,將第一實體頁面對的中實體頁面的資料暫存至備份區(如圖11的步驟S1103)。
[第四範例實施例]
在第二範例實施例中,記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元、資料處理單元與資料備份單元是以硬體架構來實作,但本發明不限於此。在第四範例實施例中,記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元、資料處理單元與資料備份單元所執行的功能亦可以韌體型式來實作。
也就是說,第二範例實施例所揭露之資料寫入運作亦可以程式碼來實作。以下以一流程圖說明此程式碼的運作。
圖12是根據第四範例實施例所繪示之資料寫入方法的流程圖。
請參照圖12,在步驟S1201,接收寫入指令與對應此寫入指令的資料(以下稱為第一資料)。
在步驟S1203中,判斷欲用以寫入此第一資料的實體頁面(以下稱為第一實體頁面)是否為上實體頁面。
倘若第一實體頁面非為上實體頁面時,在步驟S1205中,將第一資料寫入至第一實體頁面。具體來說,用於將第一資料寫入至第一實體頁面的程式化指令會被傳送給可複寫式非揮發性記憶體模組106。
倘若第一實體頁面為上實體頁面時,在步驟S1207中,判斷在備份區中是否存有已被寫入至第一實體頁面所屬之實體頁面對(以下稱為第一實體頁面對)的下實體頁面中的資料(以下稱為第二資料)。
倘若備份區存有第二資料時,上述步驟S1205會被執行。
倘若備份區未存有第二資料時,在步驟S1209中,從第一實體頁面對的下實體頁面中讀取第二資料並且將所讀取的第二資料暫存至備份區中。
之後,在步驟S1211中,判斷備用區是否存有已被寫入至鄰近第一實體頁面對的下實體頁面之其他下實體頁面的資料(以下稱為第三資料)。
倘若備份區存有第三資料時,上述步驟S1205會被執行。
倘若備份區未存有第三資料時,在步驟S1213中,從鄰近第一實體頁面對之下實體頁面的其他下實體頁面中讀取第三資料並且將所讀取的第三資料暫存至備份區中。之後,步驟S1205會被執行。
值得一提的是,儘管在本範例實施例中,圖12的流程是在將欲寫入之上實體頁面所對應的下實體頁面的資料暫存至備份區之後,對鄰近此對應下實體頁面之其他下實體頁面的資料進行備份,然而本發明不限於此。例如,如圖13所示,根據本發明另一範例實施例的資料寫入流程是判斷備份區是否存有排列在此實體頁面對之前的其他實體頁面對(例如,排列在此實體頁面對的前一個實體頁面對)的資料(步驟S1301),並且倘若備份區未存有排列在此實體頁面對之前的其他實體頁面對的資料時,將排列在此實體頁面對之前的其他實體頁面對的資料暫存至備份區(步驟S1303)。
綜上所述,本發明範例實施例的資料寫入方法、記憶體控制器與記憶體儲存裝置能夠在將資料寫入至可複寫式非揮發性記憶體模組時確保資料的可靠度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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...可複寫式非揮發性記憶體模組
302...微控制器
304...主機介面
306...記憶體介面
308...記憶體管理單元
310...記憶體寫入單元
312...記憶體讀取單元
314...記憶體抹除單元
316...資料處理單元
318...資料備份單元
320...緩衝記憶體
410(0)~410(N)...實體區塊
502...資料區
504...閒置區
506...系統區
508...取代區
610(0)~610(H)...邏輯區塊
710(0)~710(K)...邏輯存取位址
900(0)~900(63)...實體頁面對
S1001、S1003、S1005、S1007、S1009...資料寫入的步驟
S1101、S1103...資料寫入的步驟
S1201、S1203、S1205、S1207、S1209、S1201、S1203...資料寫入的步驟
S1301、S1303...資料寫入的步驟
圖1A是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據本發明第一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據第一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4A與圖4B是根據第一範例實施例所繪示管理可複寫式非揮發性記憶體模組之實體區塊的示意圖。
圖5~圖7是根據第一範例實施例所繪示的使用子實體區塊來寫入更新資料的範例。
圖8是根據第一範例實施例所繪示之使用混亂實體區塊寫入資料的範例示意圖。
圖9A是根據本發明實施例繪示4階NAND快閃記憶體兩階段程式的示意圖。
圖9B是根據第一範例實施例所繪示之實體區塊之實體頁面的範例示意圖。
圖10是根據第三範例實施例所繪示之資料寫入方法的流程圖。
圖11是根據本發明另一範例實施例所繪示之資料寫入方法的流程圖。
圖12是根據第四範例實施例所繪示之資料寫入方法的流程圖。
圖13是根據本發明另一範例實施例所繪示之資料寫入方法的流程圖。
S1001、S1003、S1005、S1007、S1009...資料寫入的步驟

Claims (18)

  1. 一種資料寫入方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有依序排列的多個實體頁面,該些實體頁面被分組為依序排列的多個實體頁面對,每一該些實體頁面對至少包括一下實體頁面與一上實體頁面,寫入資料至該下實體頁面的速度大於寫入資料至該上實體頁面的速度,該資料寫入方法包括:接收一寫入指令與對應該寫入指令的一第一資料;將該第一資料寫入至該些實體頁面之中的一第一實體頁面,其中該第一實體頁面屬於該些實體頁面對之中的一第一實體頁面對;在將該第一資料寫入至該第一實體頁面之前判斷該第一實體頁面是否為該第一實體頁面對的該上實體頁面;當該第一實體頁面為該第一實體頁面對的該上實體頁面時,在將該第一資料寫入至該第一實體頁面之前判斷在一備份區中是否存有一第二資料,其中該第二資料已被寫入至該第一實體頁面對的該下實體頁面中;當該備份區未存有該第二資料時,在將該第一資料寫入至該第一實體頁面之前從該第一實體頁面對的該下實體頁面中讀取該第二資料並且將所讀取的該第二資料暫存至該備份區中;當該第一實體頁面為該第一實體頁面對的該上實體頁面時,在將該第一資料寫入至該第一實體頁面之前判斷 在該備份區中是否存有一第三資料,其中該第三資料已被寫入至該些實體頁面之中鄰近該第一實體頁面對的該下實體頁面的一其他下實體頁面中;以及當在該備份區中未存有該第三資料時,在將該第一資料寫入至該第一實體頁面之前從該其他下實體頁面中讀取該第三資料並且將所讀取的該第三資料暫存至該備份區中。
  2. 如申請專利範圍第1項所述之資料寫入方法,更包括:當該第一實體頁面為該第一實體頁面對的該上實體頁面時,在將該第一資料寫入至該第一實體頁面之前判斷在該備份區中是否存有屬於該些實體頁面對之中鄰近該第一實體頁面對的至少一其他實體頁面對的資料,其中在該可複寫式非揮發性記憶體模組中該至少一其他實體頁面對排列在該第一實體頁面對的前面;以及當在該備份區中未存有該至少一其他實體頁面對的資料時,在將該第一資料寫入至該第一實體頁面之前從該至少一其他實體頁面對中將該至少一其他實體頁面對的資料暫存至該備份區中。
  3. 如申請專利範圍第1項所述之資料寫入方法,其中每一該些實體頁面對更包括一中實體頁面,並且該資料寫入方法更包括:當該第一實體頁面為該第一實體頁面對的該上實體頁面時,在將該第一資料寫入至該第一實體頁面之前判斷 在該備份區中是否存有屬於該第一實體頁面對的該中實體頁面的資料;以及當在該備份區中未存有屬於該第一實體頁面對的該中實體頁面的資料時,在將該第一資料寫入至該第一實體頁面之前從該第一實體頁面對的該中實體頁面中將屬於該第一實體頁面對的該中實體頁面的資料暫存至該備份區中。
  4. 如申請專利範圍第1項所述之資料寫入方法,其中該備份區為一緩衝記憶體。
  5. 如申請專利範圍第1項所述之資料寫入方法,更包括:將該些實體區塊的至少其中之一配置為該備份區。
  6. 如申請專利範圍第1項所述之資料寫入方法,更包括:在將該第一資料寫入至該第一實體頁面之後,判斷在該第一實體頁面上是否發生一程式化錯誤;以及當在該第一實體頁面上發生該程式化錯誤時,將該第一資料與該第二資料寫入至該些實體頁面對之中的一第二實體頁面對中。
  7. 一種記憶體控制器,用於操作一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,每一該些實體區塊具有依序排列的多個實體頁面,該些實體頁面被分組為依序排列的多個實體頁面對,每一該些實體頁面對至少包括一下實體頁面與一上實 體頁面,寫入資料至該下實體頁面的速度大於寫入資料至該上實體頁面的速度,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以接收一寫入指令與對應該寫入指令的一第一資料,並且將該第一資料寫入至該些實體頁面之中的一第一實體頁面,其中該第一實體頁面屬於該些實體頁面對之中的一第一實體頁面對,其中該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前判斷該第一實體頁面是否為該第一實體頁面對的該上實體頁面,其中當該第一實體頁面為該第一實體頁面對的該上實體頁面時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前判斷在一備份區中是否存有一第二資料,其中該第二資料已被寫入至該第一實體頁面對的該下實體頁面中,其中當該備份區未存有該第二資料時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前從該第一實體頁面對的該下實體頁面中讀取該第二資料並且將所讀取的該第二資料暫存至該備份區中,其中當該第一實體頁面為該第一實體頁面對的該上 實體頁面時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前判斷在該備份區中是否存有一第三資料,其中該第三資料已被寫入至該些實體頁面之中鄰近該第一實體頁面對的該下實體頁面的一其他下實體頁面中,其中當在該備份區中未存有該第三資料時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前從該其他下實體頁面中讀取該第三資料並且將所讀取的該第三資料暫存至該備份區中。
  8. 如申請專利範圍第7項所述之記憶體控制器,其中當該第一實體頁面為該第一實體頁面對的該上實體頁面時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前判斷在該備份區中是否存有屬於該些實體頁面對之中鄰近該第一實體頁面對的至少一其他實體頁面對的資料,其中在該可複寫式非揮發性記憶體模組中該至少一其他實體頁面對排列在該第一實體頁面對的前面,其中當在該備份區中未存有該至少一其他實體頁面對的資料時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前從該至少一其他實體頁面對中將該至少一其他實體頁面對的資料暫存至該備份區中。
  9. 如申請專利範圍第7項所述之記憶體控制器,其中每一該些實體頁面對更包括一中實體頁面,其中當該第一實體頁面為該第一實體頁面對的該上 實體頁面時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前判斷在該備份區中是否存有屬於該第一實體頁面對的該中實體頁面的資料,其中當在該備份區中未存有屬於該第一實體頁面對的該中實體頁面的資料時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前從該第一實體頁面對的該中實體頁面中將屬於該第一實體頁面對的該中實體頁面的資料暫存至該備份區中。
  10. 如申請專利範圍第7項所述之記憶體控制器,更包括一緩衝記憶體並且該備份區為該緩衝記憶體。
  11. 如申請專利範圍第7項所述之資記憶體控制器,其中該記憶體管理電路更用以將該些實體區塊的至少其中之一配置為該備份區。
  12. 如申請專利範圍第7項所述之記憶體控制器,其中該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之後判斷在該第一實體頁面上是否發生一程式化錯誤,其中當在該第一實體頁面上發生該程式化錯誤時,該記憶體管理電路更用以將該第一資料與該第二資料寫入至該些實體頁面對之中的一第二實體頁面對中。
  13. 一種記憶體儲存裝置,包括:一可複寫式非揮發性記憶體模組,具有多個實體區塊,其中每一該些實體區塊具有依序排列的多個實體頁面,該些實體頁面被分組為依序排列的多個實體頁面對, 每一該些實體頁面對至少包括一下實體頁面與一上實體頁面,並且寫入資料至該下實體頁面的速度大於寫入資料至該上實體頁面的速度;一連接器,用以耦接至一主機系統;以及一記憶體控制器,耦接至該可複寫式非揮發性記憶體模組與該連接器,其中該記憶體控制器用以接收一寫入指令與對應該寫入指令的一第一資料,並且將該第一資料寫入至該些實體頁面之中的一第一實體頁面,其中該第一實體頁面屬於該些實體頁面對之中的一第一實體頁面對,其中該記憶體控制器更用以在將該第一資料寫入至該第一實體頁面之前判斷該第一實體頁面是否為該第一實體頁面對的該上實體頁面,其中當該第一實體頁面為該第一實體頁面對的該上實體頁面時,該記憶體控制器更用以在將該第一資料寫入至該第一實體頁面之前判斷在一備份區中是否存有一第二資料,其中該第二資料已被寫入至該第一實體頁面對的該下實體頁面中,其中當該備份區未存有該第二資料時,該記憶體控制器更用以在將該第一資料寫入至該第一實體頁面之前從該第一實體頁面對的該下實體頁面中讀取該第二資料並且將所讀取的該第二資料暫存至該備份區中,其中當該第一實體頁面為該第一實體頁面對的該上實體頁面時,該記憶體控制器更用以在將該第一資料寫入 至該第一實體頁面之前判斷在該備份區中是否存有一第三資料,其中該第三資料已被寫入至該些實體頁面之中鄰近該第一實體頁面對的該下實體頁面的一其他下實體頁面中,其中當在該備份區中未存有該第三資料時,該記憶體控制器更用以在將該第一資料寫入至該第一實體頁面之前從該其他下實體頁面中讀取該第三資料並且將所讀取的該第三資料暫存至該備份區中。
  14. 如申請專利範圍第13項所述之記憶體儲存裝置,其中當該第一實體頁面為該第一實體頁面對的該上實體頁面時,該記憶體控制器更用以在將該第一資料寫入至該第一實體頁面之前判斷在該備份區中是否存有屬於該些實體頁面對之中鄰近該第一實體頁面對的至少一其他實體頁面對的資料,其中在該可複寫式非揮發性記憶體模組中該至少一其他實體頁面對排列在該第一實體頁面對的前面,其中當在該備份區中未存有該至少一其他實體頁面對的資料時,該記憶體管理電路更用以在將該第一資料寫入至該第一實體頁面之前從該至少一其他實體頁面對中將該至少一其他實體頁面對的資料暫存至該備份區中。
  15. 如申請專利範圍第13項所述之記憶體儲存裝置,其中每一該些實體頁面對更包括一中實體頁面,其中當該第一實體頁面為該第一實體頁面對的該上實體頁面時,該記憶體控制器更用以在將該第一資料寫入 至該第一實體頁面之前判斷在該備份區中是否存有屬於該第一實體頁面對的該中實體頁面的資料,其中當在該備份區中未存有屬於該第一實體頁面對的該中實體頁面的資料時,該記憶體控制器更用以在將該第一資料寫入至該第一實體頁面之前從該第一實體頁面對的該中實體頁面中將屬於該第一實體頁面對的該中實體頁面的資料暫存至該備份區中。
  16. 如申請專利範圍第13項所述之記憶體儲存裝置,更包括一緩衝記憶體,其中該備份區為該緩衝記憶體。
  17. 如申請專利範圍第13項所述之資記憶體儲存裝置,其中該記憶體控制器更用以將該些實體區塊的至少其中之一配置為該備份區。
  18. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器更用以在將該第一資料寫入至該第一實體頁面之後判斷在該第一實體頁面上是否發生一程式化錯誤,其中當在該第一實體頁面上發生該程式化錯誤時,該記憶體管理電路更用以將該第一資料與該第二資料寫入至該些實體頁面對之中的一第二實體頁面對中。
TW100133031A 2011-09-14 2011-09-14 資料寫入方法、記憶體控制器與記憶體儲存裝置 TWI446170B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW100133031A TWI446170B (zh) 2011-09-14 2011-09-14 資料寫入方法、記憶體控制器與記憶體儲存裝置
US13/323,812 US8738847B2 (en) 2011-09-14 2011-12-12 Data writing method, and memory controller and memory storage apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100133031A TWI446170B (zh) 2011-09-14 2011-09-14 資料寫入方法、記憶體控制器與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201312351A TW201312351A (zh) 2013-03-16
TWI446170B true TWI446170B (zh) 2014-07-21

Family

ID=47830880

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100133031A TWI446170B (zh) 2011-09-14 2011-09-14 資料寫入方法、記憶體控制器與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US8738847B2 (zh)
TW (1) TWI446170B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708754B (zh) * 2015-11-13 2020-04-07 慧荣科技股份有限公司 数据储存装置及其数据维护方法
CN107967222A (zh) * 2017-12-20 2018-04-27 北京兆易创新科技股份有限公司 一种SPI-Nand查找数据页的方法及装置
TWI741779B (zh) * 2020-09-04 2021-10-01 群聯電子股份有限公司 資料整併方法、記憶體儲存裝置及記憶體控制電路單元
CN114415944A (zh) * 2021-12-27 2022-04-29 深圳忆联信息系统有限公司 固态硬盘物理块管理方法、装置、计算机设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473923B2 (en) * 2007-09-12 2013-06-25 Sandisk Technologies Inc. Pointers for write abort handling
TWI362667B (en) * 2007-12-31 2012-04-21 Phison Electronics Corp Data writing method for flash memory and controller thereof
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
JP2011048725A (ja) * 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ

Also Published As

Publication number Publication date
US20130067141A1 (en) 2013-03-14
TW201312351A (zh) 2013-03-16
US8738847B2 (en) 2014-05-27

Similar Documents

Publication Publication Date Title
TWI454911B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8386905B2 (en) Error correcting method, and memory controller and memory storage system using the same
TWI470431B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI436212B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
TWI479505B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
TWI584189B (zh) 記憶體控制器、記憶體儲存裝置與資料寫入方法
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
TW201303588A (zh) 區塊管理方法、記憶體控制器與記憶體儲存裝置
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TW201508748A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI448892B (zh) 資料搬移方法、記憶體控制器與記憶體儲存裝置
TWI509615B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI446170B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI451247B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI516934B (zh) 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
TWI464585B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US8832358B2 (en) Data writing method, memory controller and memory storage apparatus
TW201441816A (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN113138720B (zh) 数据存储方法、存储器控制电路单元以及存储器存储装置
TWI785571B (zh) 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
CN102467459B (zh) 数据写入方法、存储器控制器与存储器储存装置
TWI436209B (zh) 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置