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

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

Info

Publication number
TWI476590B
TWI476590B TW101119551A TW101119551A TWI476590B TW I476590 B TWI476590 B TW I476590B TW 101119551 A TW101119551 A TW 101119551A TW 101119551 A TW101119551 A TW 101119551A TW I476590 B TWI476590 B TW I476590B
Authority
TW
Taiwan
Prior art keywords
physical
area
entity
unit
entity unit
Prior art date
Application number
TW101119551A
Other languages
English (en)
Other versions
TW201348960A (zh
Inventor
Kim-Hon Wong
Ying Chi Lin
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 TW101119551A priority Critical patent/TWI476590B/zh
Priority to US13/567,102 priority patent/US8489942B1/en
Publication of TW201348960A publication Critical patent/TW201348960A/zh
Application granted granted Critical
Publication of TWI476590B publication Critical patent/TWI476590B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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
    • G06F2212/1036Life time enhancement
    • 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/7202Allocation control and policies
    • 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

Description

記憶體管理方法、記憶體控制器與記憶體儲存裝置
本發明是有關於一種記憶體管理方法,且特別是有關於一種用於可複寫式非揮發性記憶體模組的記憶體管理方法、記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
依據每個記憶胞可儲存的位元數,反及(NAND)型快閃記憶體可區分為單階儲存單元(Single Level Cell,SLC)NAND型快閃記憶體、多階儲存單元(Multi Level Cell,MLC)NAND型快閃記憶體與複數階儲存單元(Trinary Level Cell,TLC)NAND型快閃記憶體,其中SLC NAND 型快閃記憶體的每個記憶胞可儲存1個位元的資料(即,”1”與”0”),MLC NAND型快閃記憶體的每個記憶胞可儲存2個位元的資料並且TLC NAND型快閃記憶體的每個記憶胞可儲存3個位元的資料。
以TLC NAND型快閃記憶體來說,每個實體區塊會包括多個實體頁面組,每個實體頁面組會包括下實體頁 面,中實體頁面以及上實體頁面。一般來說,快閃記憶體中的實體區塊會被分為多個使用區域,取代區中也會包括多個實體區塊。當使用區域的實體區塊損壞時,取代區的實體區塊可以被用來替換損壞的實體區塊。然而,當其中取代區中已沒有實體區塊時,即代表快閃記憶體的使用壽命已經結束。因此,如何有效的管理實體區塊,使得快閃記憶體的壽命可以延長,為此領域研究人員所關心的議題。
本發明一範例實施例提出一種記憶體管理方法、記憶體控制器與記憶體儲存裝置,可以延長可複寫式非揮發性記憶體模組的使用壽命。
本發明一範例實施例提出一種記憶體管理方法,用於控制一可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體單元集合,每一個實體單元集合包括多個實體單元組,每一個實體單元組包括多個實體單元,每一個實體單元組的實體單元至少包括一個第一實體單元。此記憶體管理方法包括:將實體單元集合至少分割為第一區與第二區,設定第一區的實體單元集合屬於第一程式化模式,設定第二區的實體單元集合屬於第二程式化模式。其中第一程式化模式表示所有的實體單元可被程式化,第二程式化模式表示僅第一實體單元可被程式化。本方法還包括:當第二區的第一實體單元集合符合第二損壞條件時,使用第一區的第二實體單元集合來替換第一實 體單元集合,設定第二實體單元集合屬於第二程式化模式並且第二實體單元集合無法再被設定為第一程式化模式。
在一範例實施中,上述的第二損壞條件包括:第一實體單元集合的抹除次數達到第二臨界值、第一實體單元集合發生程式化錯誤或第一實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述當第二區的第一實體單元集合符合第二損壞條件時,使用第一區的第二實體單元集合來替換第一實體單元集合的步驟包括:從第一區的實體單元集合中,取得符合第一損壞條件的第二實體單元集合來替換第一實體單元集合。第一損壞條件包括:第二實體單元集合的抹除次數達到第一臨界值、第二實體單元集合發生一程式化錯誤或第二實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述當第二區的第一實體單元集合符合第二損壞條件時,使用第一區的第二實體單元集合來替換第一實體單元集合的步驟包括:從第一區的實體單元集合中,取得抹除次數介於0至第一臨界值的第二實體單元集合來替換第一實體單元集合。
在一範例實施中,上述的記憶體管理方法更包括:當第一區的第三實體單元集合符合第一損壞條件時,將第三實體單元集合劃分為第二區;以及設定第三實體單元集合屬於第二程式化模式並且第三實體單元集合無法再被設定為第一程式化模式。第一損壞條件包括:第三實體單元集 合的抹除次數達到第一臨界值、第三實體單元集合發生程式化錯誤或第三實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體管理方法更包括:當第一區的第三實體單元集合符合第一損壞條件時,取得第一區中多個符合第一損壞條件的第四實體單元集合;設定這些第四實體單元集合屬於第二程式化模式;以及使用第四實體單元集合來替換第三實體單元集合。第一損壞條件包括:第四實體單元集合的抹除次數達到第一臨界值、第四實體單元集合發生一程式化錯誤或第四實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述當第一區的第三實體單元集合符合第一損壞條件時,取得第一區中屬於第一損壞條件的第四實體單元集合的步驟包括;判斷第一區中是否有實體單元集合可在第一程式化模式下儲存資料,若否,取得第四實體單元集合來替換第三實體單元集合。
以另外一個角度來說,本發明一範例實施例提出一種記憶體儲存裝置,包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。其中連接器是用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體單元集合,每一個實體單元集合包括多個實體單元組。而每一個實體單元組又包括多個實體單元,每一個實體單元組的實體單元至少包括第一實體單元。記憶體控制器是耦接至連 接器與可複寫式非揮發性記憶體模組。記憶體控制器會將實體單元集合至少分割為第一區與第二區。並且,記憶體控制器會設定第一區的實體單元集合屬於第一程式化模式,並且設定第二區的實體單元集合屬於第二程式化模式。其中第一程式化模式表示所有的實體單元可被程式化,第二程式化模式表示僅第一實體單元可被程式化。當第二區的第一實體單元集合符合第二損壞條件時,記憶體控制器用以使用第一區的第二實體單元集合來替換第一實體單元集合,並且設定第二實體單元集合屬於第二程式化模式且第二實體單元集合無法再被劃分為第一程式化模式。
在一範例實施中,上述的第二損壞條件包括:第一實體單元集合的抹除次數達到第二臨界值、第一實體單元集合發生程式化錯誤或第一實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體控制器還用以從第一區的實體單元集合中,取得符合第一損壞條件的第二實體單元集合來替換第一實體單元集合。第一損壞條件包括:第二實體單元集合的抹除次數達到第一臨界值、第二實體單元集合發生程式化錯誤或第二實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體控制器還用以從第一區的實體單元集合中,取得抹除次數介於0至第一臨界值的第二實體單元集合來替換第一實體單元集合。
在一範例實施中,當第一區的第三實體單元集合符合第一損壞條件時,記憶體控制器還用以將第三實體單元集合劃分為第二區,並設定第三實體單元集合屬於第二程式化模式且無法再被設定為第一程式化模式。第一損壞條件包括:第三實體單元集合的抹除次數達到第一臨界值、第三實體單元集合發生一程式化錯誤或第三實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體控制器更用以在第一區的第三實體單元集合損壞時,取得第一區中多個符合第一損壞條件的第四實體單元集合,設定第四實體單元集合屬於第二程式化模式,並且使用第四實體單元集合來替換第三實體單元集合。第一損壞條件包括:第四實體單元集合的抹除次數達到第一臨界值、第四實體單元集合發生程式化錯誤或第四實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體控制器更用以判斷第一區中是否有實體單元集合可在第一程式化模式下儲存資料,若否,取得第四實體單元集合來替換第三實體單元集合。
以另外一個角度來說,本發明一範例實施例提出一種記憶體控制器,包括主機介面、記憶體介面與記憶體管理電路。主機介面是用以耦接至主機系統。記憶體介面是用以耦接至上述的可複寫式非揮發性記憶體模組。記憶體管 理電路是耦接至主機介面與記憶體介面。記憶體管理電路會將實體單元集合至少分割為第一區與第二區。並且,記憶體管理電路用以設定第一區的實體單元集合屬於第一程式化模式,設定第二區的實體單元集合屬於第二程式化模式。其中,第一程式化模式表示所有的實體單元可被程式化,第二程式化模式表示僅第一實體單元可被程式化。當第二區的第一實體單元集合符合第二損壞條件時,記憶體管理電路會使用第一區的第二實體單元集合來替換第一實體單元集合,並且設定第二實體單元集合為第二程式化模式並且第二實體單元集合無法再被劃分為第一程式化模式。
在一範例實施中,上述的第二損壞條件包括:第一實體單元集合的抹除次數達到第二臨界值、第一實體單元集合發生程式化錯誤或第一實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體管理電路還用以從第一區的實體單元集合中,取得符合第一損壞條件的第二實體單元集合來替換第一實體單元集合。第一損壞條件包括:第二實體單元集合的抹除次數達到第一臨界值、第二實體單元集合發生一程式化錯誤或第二實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體管理電路還用以從第一區的實體單元集合中,取得抹除次數介於0至第一臨界 值的第二實體單元集合來替換第一實體單元集合。
在一範例實施中,當第一區的第三實體單元集合符合第一損壞條件時,記憶體管理電路還用以將第三實體單元集合劃分為第二區,設定第三實體單元集合屬於第二程式化模式並且第三實體單元集合不會再被設定為第一程式化模式。第一損壞條件包括:第三實體單元集合的抹除次數達到第一臨界值、第三實體單元集合發生程式化錯誤或第三實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體管理電路更用以在第一區的第三實體單元集合損壞時,取得第一區中多個符合第一損壞條件的第四實體單元集合,設定這些第四實體單元集合屬於第二程式化模式,並且使用第四實體單元集合來替換第三實體單元集合。第一損壞條件包括:第四實體單元集合的抹除次數達到第一臨界值、第四實體單元集合發生程式化錯誤或第四實體單元集合發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體管理電路更用以判斷第一區中是否有實體單元集合可在第一程式化模式下儲存資料,若否,取得第四實體單元集合來替換第三實體單元集合。
以另外一個角度來說,本發明一範例實施例提出一種記憶體管理方法,用於控制上述的可複寫式非揮發性記憶體模組。此記憶體管理方法包括:將實體單元集合至少分 割為第一區與第二區,設定第一區的實體單元集合屬於第一程式化模式,設定第二區的實體單元集合屬於第二程式化模式,其中第一程式化模式表示實體單元可被程式化,第二程式化模式表示僅第一實體單元可被程式化。此方法還包括:當第一區的至少一個第一實體單元集合符合第一損壞條件時,將第一實體單元集合劃分至第二區,設定第一實體單元集合屬於第二程式化模式,並且第一實體單元集合無法再被設定為第一程式化模式。
在一範例實施中,上述的第一損壞條件包括:第一實體單元集合的抹除次數達到第一臨界值、第一實體單元集合發生程式化錯誤或第一實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
在一範例實施中,上述的記憶體管理方法更包括:將第一區劃分為一個資料區與一個第三區,配置多個邏輯單元集合映射至資料區的實體單元集合;當至少第一實體單元集合符合第一損壞條件時,判斷第三區是否存有實體單元集合可在第一程式化模式下儲存資料,若否,從第二區中取得多個第二實體單元集合;以及將第二實體單元集合劃分為第三區。
基於上述,本發明範例實施例提出一種記憶體管理方法、記憶體控制器與記憶體儲存裝置,可以增加可複寫式非揮發性記憶體的使用壽命。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
[第一範例實施例]
在本說明書中,所指的實體單元亦被稱為實體頁面,實體單元集合亦被稱為實體區塊,實體單元組亦被稱為實體頁面組。其中,實體單元集合是被抹除的最小單位。並且,被一個邏輯單元群映射的多個實體單元集合可以被稱為一個實體單元群。此外,上實體單元亦被稱為上實體頁面,中實體單元亦被稱為中實體頁面,而下實體單元亦被稱為下實體頁面。然而,在其他範例實施例中,實體單元可以為其他具有可複寫與非揮發特性的一或多個電子元件,例如實體扇,本發明並不在此限。另外,邏輯區塊亦被稱為邏輯單元集合,邏輯頁面組亦被稱為邏輯單元組,邏輯頁面亦被稱為邏輯單元。而多個邏輯單元集合亦可稱為一個邏輯單元群。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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是相容於安全數位(Secure Digital,SD)介面標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體區塊304(0)~304(R)。例如,實體區塊304(0)~304(R)可屬於同一個記憶 體晶粒(die)或者屬於不同的記憶體晶粒。在本範例實施例中,每一實體區塊分別具有複數個實體頁面組並且每一實體頁面組包括由位於同一條字元線之記憶胞所構成的至少一個實體頁面,其中屬於同一個實體區塊之實體頁面必須被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。
圖3A與圖3B是根據第一範例實施例所繪示之記憶胞儲存架構與實體區塊的範例示意圖。
請參照圖3A,可複寫式非揮發性記憶體模組106的每個記憶胞的儲存狀態可被識別為”111”、”110”、”101”、”100”、”011”、”010”、”001”或”000”(如圖3A所示),其中左側算起之第1個位元為LSB(Least significant bit)、從左側算起之第2個位元為CSB(center significant bit)以及從左側算起之第3個位元為MSB(most significant bit)。此外,排列在同一條字元線上的數個記憶胞可組成3個實體頁面,其中由此些記憶胞之LSB所組成的實體頁面稱為下實體頁面,由此些記憶胞之CSB所組成的實體頁面稱為中實體頁面,並且由此些記憶胞之MSB所組成的實體頁面稱為上實體頁面。
請參照圖3B,一個實體區塊是由多個實體頁面組所組成,其中每個實體頁面組包括由排列在同一條字元線上的數個記憶胞所組成的下實體頁面、中實體頁面與上實體頁面。例如,圖3B中的數字表示實體頁面的排列順序,在實體區塊中,屬於下實體頁面的第0個實體頁面、屬於 中實體頁面的第1個實體頁面和屬於上實體頁面的第2個實體頁面會被視為一個實體頁面組。類似地,第3、4、5個實體頁面會被視為一個實體頁面組,並且以此類推其他實體頁面亦是依據此方式被區分為多個實體頁面組。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。特別的是,對排列在同一條字元線上的數個記憶胞進行程式化時,僅能在程式化下實體頁面以後或者是在程式化下實體頁面、中實體頁面與上實體頁面之後才能進行讀取,否則所儲存之資料可能會遺失。例如,當第0個實體頁面與第1個實體頁面被程式化以後,必須要先程式化第2個實體頁面以後才能讀取第0~2個實體頁面。
圖3C是根據一範例實施例說明實體頁面的寫入順序的範例示意圖。
請參照圖3C,一個實體區塊也可以由鋸齒狀的順序來程式化實體頁面。字元線欄位322中每一個數字代表每一個字元線的編號。而下實體頁面欄位324、中實體頁面欄位326與上實體頁面欄位328中的每一個數字為實體頁面的寫入順序。例如,當要把資料程式化至實體區塊時,記憶體控制器104會先程式化至第0個字元線的下實體頁面。接著,記憶體控制器104會程式化第1個字元線的下實體頁面以及程式化第0個字元線的中實體頁面。接著,記憶體控制器104會程式化第2個字元線的下實體頁面、第1個字元線的中實體頁面以及第0個字元線的上實體頁面,以此類推。藉此,不同字元線的實體頁面可以同時地 被程式化。然而,在其他範例實施例中,記憶體控制器104也可以用不同的順序來程式化一個實體區塊,本發明並不在此限。
除此之外,當一個實體區塊滿足多個損壞條件的其中之一時,此實體區塊便會被稱為損壞的實體區塊。例如,實體區塊的抹除次數會有一上限,若實體區塊的抹除次數到達此上限則會滿足損壞條件。在此假設若選擇程式化下實體頁面、中實體頁面與上實體頁面時,則實體區塊的抹除次數的上限為第一臨界值。若僅選擇程式化下實體頁面,則實體區塊的抹除次數的上限為第二臨界值。特別的是,第一臨界值會小於第二臨界值。例如,第一臨界值為3000,而第二臨界值為20000。下實體頁面的寫入速度會快於中實體頁面與上實體頁面的寫入速度。也就是說,當把一筆資料程式化至一個實體區塊時,把資料寫入至下實體頁面所需的時間會比把資料寫入至中實體頁面或上實體頁面所需的時間較短。此外,若把資料寫入實體區塊時發生了程式化錯誤,則發生程式化錯誤的實體區塊也會滿足損壞條件。或者,若從實體區塊讀取資料時發生錯誤的位元個數超過錯誤檢查與校正碼(error detection and correction code)所能更正的上限,則此實體區塊也滿足損壞條件。綜上所述,當一個實體區塊滿足上述之損壞條件的其中之一時,此實體區塊便會被稱為損壞的實體區塊。然而,本發明並不限制損壞的條件。
另一方面,在實體區塊304(0)~304(R)中寫入資料時必 須依據實體頁面的排列順序寫入資料。此外,已被寫入資料之實體頁面必需先被抹除後才能再次用於寫入資料。因此,一般來說,實體區塊為管理可複寫式非揮發性記憶體模組106的最小單位。例如,倘若一個實體區塊中僅部分頁面的資料被更新時,此實體區塊中的有效資料必須被搬移至另一個空的實體區塊,此實體區塊才能被執行抹除操作。在此,搬移有效資料的操作稱為資料合併運作。然而,在另一範例實施例中,也可以用實體頁面當作管理可複寫式非揮發性記憶體模組106的最小單位,本發明並不在此限。
每一個實體頁面通常包括資料位元區與冗餘位元區。資料位元區用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤檢查與校正碼)。在本範例實施例中,每一實體區塊是由258個實體頁面所組成,並且每一實體頁面的容量為8千位元組(Kilobyte,KB)。然而,必須瞭解的是,本發明不限於此。
在本範例實施例中,可複寫式非揮發性記憶體模組106為一複數階儲存單元(Trinary Level Cell,TLC)NAND型快閃記憶體模組,亦即每一個實體頁面組包括了下實體頁面、中實體頁面以及上實體頁面。然而,必須瞭解的是,可複寫式非揮發性記憶體模組106並非限於TLC NAND型快閃記憶體模組。在本發明另一範例實施例中,可複寫式非揮發性記憶體模組106亦可是四階以上,或其他具有相同特性的記憶體模組。
圖4是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖4,記憶體控制器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是相容於SD標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、 IEEE 1394標準、PCI Express標準、USB標準、SATA標準、MS標準、MMC標準、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會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
一般來說,記憶體管理電路202會將實體區塊304(0)~304(R)劃分為系統區、資料區、取代區以及閒置區。
資料區與閒置區的實體區塊是用以儲存來自於主機系統1000的資料。資料區是已儲存資料的實體區塊,而閒置區的實體區塊是用以替換資料區的實體區塊。因此,閒置區的實體區塊為空或可使用的實體區塊,即無記錄資料或標記為已沒用的無效資料。也就是說,在閒置區中的實體區塊已被執行抹除運作,或者當閒置區中的實體區塊被提取用於儲存資料之前所提取之實體區塊會先被執行抹除運作。
邏輯上屬於系統區的實體區塊是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體區塊數、每一實體區塊的實體頁面數等。
邏輯上屬於取代區中的實體區塊是替代實體區塊。例如,可複寫式非揮發性記憶體模組於出廠時會預留4%的實體區塊作為更換使用。也就是說,當資料區、閒置區與系統區中的實體區塊損毀時,預留於取代區中的實體區塊是用以取代損壞的實體區塊(即,壞實體區塊(bad block))。
然而,在本範例實施例中,記憶體管理電路202會將 傳統的取代區與閒置區合併成一個區域(亦稱第三區)來使用。也就是說,當有實體區塊損壞時,會從第三區來提取實體區塊來替換。當有資料要暫存時,也會從第三區中提取實體區塊來使用。
圖5是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
請參照圖5,記憶體管理電路202會將實體區塊304(0)~304(R)至少劃分為第一區580與第二區560。特別的是,記憶體管理電路202會設定第一區580的實體區塊屬於第一程式化模式,並設定第二區560的實體區塊屬於第二程式化模式。其中,第一程式化模式表示所有的下實體頁面、中實體頁面與上實體頁面都可被程式化。第二程式化模式表示只有下實體頁面(亦稱為第一實體頁面)可被程式化。換言之,記憶體管理電路202會使用第一區580中每個實體區塊的下實體頁面、中實體頁面與上實體頁面來儲存資料。而在第二區560中,記憶體管理電路202僅使用每個實體區塊的下實體頁面來儲存資料。第一區580的實體區塊是用以提供大量的儲存空間,但相對地抹除次數的上限(即,第一臨界值)較小。而第二區560的實體區塊的儲存空間相對的較小,但其抹除次數的上限(即,第二臨界值)較大。
當第一區580的一個實體區塊符合一個第一損壞條件時,此實體區塊會被稱為損壞的實體區塊。例如,第一損壞條件包括:抹除次數達到第一臨界值、發生程式化錯誤、 或是實體區塊中發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。當第二區580的一個實體區塊符合一個第二損壞條件時,此實體區塊會被稱為損壞的實體區塊。例如,第二損壞條件包括:抹除次數達到第二臨界值、發生程式化錯誤、或是實體區塊中發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
例如,記憶體管理電路202會將第一區580再劃分為第三區520與資料區540。第三區520包括了實體區塊304(0)~304(A),資料區540包括了實體區塊304(A+1)~304(B),而第二區包括了實體區塊304(B+1)~304(P)。然而,在其他範例實施例中,記憶體管理電路202也可以將實體區塊304(0)~304(R)再劃分出一個系統區,本發明並不限制所劃分出的區域的個數。
在本範例實施例中,記憶體管理電路202會分配邏輯區塊位址LBA(A+1)~LBA(B)以映射至資料區540的實體區塊304(A+1)~304(B)。並且,記憶體管理電路202會建立一個邏輯區塊位址-實體區塊映射表,以紀錄邏輯區塊位址LBA(A+1)~LBA(B)與實體區塊304(A+1)~304(B)之間的映射關係。記憶體管理電路202還會將邏輯區塊位址LBA(A+1)~LBA(B)提供給主機系統1000。如此一來,主機系統1000便可以存取邏輯區塊位址LBA(A+1)~LBA(B)。
第三區520的實體區塊可用以替換資料區540或是第二區560中損壞的實體區塊。在本範例實施例中,若第三 區520中已沒有可用的實體區塊時,則記憶體管理電路202會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
圖6是根據另一範例實施例說明將資料寫入至第二區的實體區塊的範例示意圖。
請參照圖6,當一個實體區塊被設定從第一程式化模式轉換至第二程式化模式時,記憶體管理電路202會下達一個指令給可複寫式非揮發性記憶體模組106,使得被設定為第二程式化模式的實體區塊僅會提供下實體頁面來寫入資料。也就是說,記憶體管理電路202只能取得此實體區塊的下實體頁面的實體位址。例如,在將實體區塊304(B+1)~304(B+3)轉換為第二程式化模式以後,實體區塊304(B+1)~304(B+3)僅能提供下實體頁面的實體位址0-85給記憶體管理電路202。當從主機系統1000接收到寫入指令以後,記憶體管理電路202可先把資料寫入至實體區塊304(B+1)~304(B+3)的下實體頁面。接下來,記憶體管理電路202會把資料從實體區塊304(B+1)~304(B+3)的下實體頁面複製到實體區塊304(A+1)。
當第一區580的一個實體區塊滿足第一損壞條件時,記憶體管理電路202會設定此實體區塊屬於第二程式化模式並劃分為第二區560。並且,記憶體管理電路202會設定此實體區塊無法被再轉變為第一程式化模式。
圖7是根據一範例實施例說明用第三區的實體區塊替換資料區的實體區塊的範例示意圖。
請參照圖7,當資料區540的實體區塊304(A+1)(亦稱第一實體區塊)滿足第一損壞條件時,表示實體區塊304(A+1)無法再用下實體頁面、中實體頁面與上實體頁面來寫入資料。記憶體管理電路202會判斷實體區塊304(A+1)為損壞的實體區塊,並且使用第三區520的實體區塊來替換實體區塊304(A+1)。例如,記憶體管理電路202會取得第三區520的實體區塊304(0)來替換實體區塊304(A+1)。在此假設實體區塊304(A+1)原本是映射至邏輯區塊位址LBA(A+1),因此當記憶體管理電路202用實體區塊304(0)來替換實體區塊304(A+1)時,會將邏輯區塊位址LBA(A+1)重新映射至實體區塊304(0)。並且,記憶體管理電路202會把實體區塊304(A+1)中的有效資料複製到實體區塊304(0)。此外,記憶體管理電路202會把實體區塊304(A+1)劃分為第二區560,並設定實體區塊304(A+1)從第一程式化模式轉變為第二程式化模式。特別的是,實體區塊304(A+1)被轉變為第二程式化模式以後便無法再被轉變回第一程式化模式。由於當僅使用下實體頁面來寫入資料時,一個實體區塊的抹除次數的上限會增加(從第一臨界值變為第二臨界值)。因此,實體區塊304(A+1)被設定為第二程式化模式以後還可以繼續被使用。
在一範例實施例中,記憶體管理電路202也可以先收集第一區580中三個損壞的實體區塊,並將這三個實體區塊同時劃分為第二區560。然而,記憶體管理電路202也可以同時劃分數目更多或更少的實體區塊至第二區560, 本發明並不在此限。
然而,當第三區520已沒有可用的實體區塊時,記憶體管理電路202也會從第二區560中取得三個屬於第二程式化模式的實體區塊並劃分至第三區520。這三個實體區塊可以用以取代第三區520的一個實體區塊。具體來說,記憶體管理電路202會將這三個實體區塊的下實體頁面當做一個實體區塊的下實體頁面、中實體頁面以及上實體頁面來使用。換言之,當第三區520已沒有可以使用的實體區塊時,記憶體管理電路202會提取第二區560的實體區塊來避免將整個記憶體儲存裝置100宣告為寫入保護,進而延長其使用壽命。
圖8是根據一範例實施例說明記憶體管理方法的流程圖。
請參照圖8,在步驟S802中,記憶體管理電路202會將實體區塊至少劃分為第一區與第二區,設定第一區的實體區塊屬於第一程式化模式,設定第二區的實體區塊屬於第二程式化模式。其中第一程式化模式表示所有的實體頁面都可被程式化,第二程式化模式表示僅第一實體頁面可被程式化。
在步驟S804中,當第一區有實體區塊符合第一損壞條件時,記憶體管理電路202會將此實體區塊劃分至第二區,設定此實體區塊屬於第二程式化模式並且無法再被設定回第一程式化模式。其中第一損壞條件包括:此實體區塊的抹除次數達到第一臨界值、發生程式化錯誤或發生錯 誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
然而,圖8中各步驟已詳細說明如上,在此便不再贅述。
[第二範例實施例]
在第一範例實施例中,當第一區有實體區塊損壞時,記憶體管理電路202便會將損壞的實體區塊轉變為第二程式化模式並劃分為第二區。然而,在第二範例實施例中,記憶體管理電路202是在第二區有實體區塊損壞時,才從第一區中挑選一個實體區塊,並將挑選的實體區塊劃分為第二區並設定為第二程式化模式。此外,在第一範例實施例中,記憶體管理電路202是以實體區塊為單元來管理可複寫式非揮發性記憶體模組106,但在第二範例實施例中,記憶體管理電路202是以實體頁面為單位來管理可複寫式非揮發性記憶體模組106。然而,在第二範例實施例中,記憶體管理電路202也可以以實體區塊為單位來管理可複寫式非揮發性記憶體模組106,本發明並不在此限。
圖9是根據一範例實施例說明將實體區塊劃分為第一區與第二區的範例示意圖。
請參照圖9,記憶體管理電路202會將實體區塊304(0)~304(R)劃分出第一區920與第二區940。第一區920包括實體區塊304(0)~304(D),而第二區940包括實體區塊304(D+1)~304(E)。實體區塊304(0)~304(D)會被設定為第一程式化模式,而實體區塊304(D+1)~304(E)會被設定為 第二程式化模式。
當記憶體管理電路202從主機系統1000接收到一個寫入指令與寫入資料以後,會先把寫入資料寫入至第二區940中的實體區塊。接著,記憶體管理電路202會把這些寫入資料從第二區940複製到第一區920。也就是說,第二區940的實體區塊是作為暫存的實體區塊,而第一區920的實體區塊可以提供大的儲存空間。
圖10是根據一範例實施例說明以實體頁面為單位將資料寫入的範例示意圖。
請參照圖10,邏輯區塊位址LBA(A+1)包括了邏輯頁面位址702(0)~702(F),而邏輯頁面位址702(0)是映射至實體區塊304(0)中的下實體頁面902。當主機系統1000要更改實體頁面902中的資料時,會下達存取邏輯頁面位址702(0)的寫入指令與寫入資料給記憶體管理電路202。記憶體管理電路202會先把寫入資料寫入至實體區塊304(D+1)的下實體頁面904。接著,記憶體管理電路202會把實體頁面902標記為無效,並把邏輯頁面位址702(0)重新映射至實體頁面904。若主機系統1000又下達了一個存取邏輯頁面位址702(0)的寫入指令與寫入資料,記憶體管理電路202會將寫入資料寫入至實體頁面906,把實體頁面904標記為無效,並且把邏輯頁面位址702(0)重新映射至實體頁面906。經過上述動作以後,實體頁面902與904中所儲存的是無效資料,而實體頁面906中儲存的是有效資料。當實體區塊304(D+1)中沒有可用的實體頁面以後,記 憶體管理電路202也可以使用實體區塊304(D+2)中的實體頁面來儲存資料。當實體區塊304(D+1)、304(D+2)與其他實體區塊中的有效資料的大小符合第一區的實體區塊(例如,實體區塊304(0))的大小時,記憶體管理電路202會把這些有效資料複製回第一區的實體區塊。並且,記憶體管理電路202會對實體區塊304(D+1)與304(D+2)下達抹除指令,以供儲存其他來自於主機系統1000的寫入資料。
在第二範例實施例中,當第一區920的一個實體區塊滿足第一損壞條件以後,記憶體管理電路202會將此實體區塊中的有效資料複製到第一區920中其他的實體區塊,並且會把此實體區塊標記為損壞的實體區塊。換句話說,第一區920會包括多個符合第一損壞條件的實體區塊,而這些實體區塊無法在第一程式化模式下儲存資料。特別的是,這些實體區塊可以被設定為第二程式化模式,用以替換第一區920中一個實體區塊的下實體頁面、中實體頁面與上實體頁面。舉例來說,當記憶體管理電路202要把有效資料從第二區940複製到第一區920時,若第一區920已經沒有實體區塊可在第一程式化模式下儲存資料時,則記憶體管理電路202會把三個符合第一損壞條件的實體區塊設定為第二程式化模式,並且使用這三個實體區塊的下實體頁面來儲存有效資料。或者,當第一區的一實體區塊損壞時,記憶體管理電路202會把三個實體區塊設定為第二程式化模式,並用這些實體區塊來替換一個實體區塊。
圖11是根據一範例實施例說明將一個實體區塊的有 效資料複製到三個設定為第二程式化模式的實體區塊的範例示意圖。
請參照圖11,當實體區塊304(0)(亦稱第三實體區塊)滿足損壞條件時,記憶體管理電路202會取得符合第一損壞條件實體區塊304(1)~304(3)(亦稱第四實體區塊)。記憶體管理電路202會把實體區塊304(1)~304(3)設定為第二程式化模式,並且使用實體區塊304(1)~304(3)來替換實體區塊304(0)。詳細來說,每一個邏輯區塊位址LBA(A+1)~LBA(B)會包括多個邏輯頁面位址。其中至少一個邏輯頁面位址(亦稱第三邏輯頁面位址)會映射至實體區塊304(0)中儲存有效資料的實體頁面(亦稱第三實體頁面)。接下來,記憶體管理電路202會把第三實體頁面中的有效資料複製到實體區塊304(1)~304(3)中的至少一個實體頁面(亦稱第四實體頁面)。並且,記憶體管理電路202會把原本映射至實體區塊304(0)的第三邏輯頁面位址重新映射至實體區塊304(1)~304(3)中的第四實體頁面。
在圖11所示的範例實施例中,記憶體管理電路202是在第一區920已經沒有實體區塊可在第一程式化模式下儲存資料時,才把符合第一損壞條件的實體區塊304(1)~304(3)設定為第二程式化模式。然而,在其他範例實施例中,記憶體管理電路202也可以在其他時間點將第一區920中三個符合第一損壞條件的實體區塊設定為第二程式化模式並繼續使用,本發明並不在此限。此外,在另一範例實施例中,當一個實體頁面組包括四個實體頁面 時,記憶體管理電路202也可以使用四個設定為第二程式化模式的實體區塊來替換一個實體區塊,以及當設定為第二程式化模式的實體區塊可程式化2個實體頁面時,記憶體管理電路202會使用兩個設定為第二程式化模式的實體區塊來替換一個實體區塊,本發明並不在此限。
另一方面,當第二區940的實體區塊(亦稱第一實體區塊)滿足第二損壞條件以後,記憶體管理電路202會從第一區920中選取一個實體區塊(亦稱第二實體區塊)來替換第一實體區塊。例如,記憶體管理電路202可以從第一區920優先挑選符合第一損壞條件的實體區塊作為替換用的實體區塊。然而,記憶體管理電路202也可以從第一區920中挑選抹除次數抹除次數介於0到第一臨界值的實體區塊作為替換用的實體區塊,本發明並不在此限。值得注意的是,在將第二實體區塊被劃分為第二區940以後,記憶體管理電路202會設定第二實體區塊為第二程式化模式並無法再被設定回第一程式化模式。
圖12是根據一範例實施例所繪示的記憶體管理方法的流程圖。
請參照圖12,在步驟S1202中,記憶體管理電路202會將實體區塊至少分割第一區與第二區。並且,記憶體管理電路202會設定第一區的實體區塊屬於第一程式化模式,並設定第二區的實體區塊屬於第二程式化模式。其中第一程式化模式表示所有的實體頁面都可被程式化,第二程式化模式表示僅第一實體頁面可被程式化。
在步驟S1204中,當第二區的第一實體區塊符合第二損壞條件時,記憶體管理電路202會使用第一區的第二實體區塊來替換第一實體區塊。記憶體管理電路202會設定第二實體區塊為第二程式化模式,並且第二實體區塊無法再被設定為第一程式化模式,其中第二損壞條件包括:第一實體區塊的抹除次數達到第二臨界值、第一實體區塊發生一程式化錯誤或第一實體區塊發生錯誤的位元個數超過錯誤檢查與校正碼所能更正的上限。
然而,圖12中的各步驟已詳細說明如上,在此便不再贅述。
綜上所述,本發明範例實施例提出了一種記憶體管理方法、記憶體控制器與記憶體儲存裝置。其中當第二區的實體區塊損壞時,會使用第一區中已經使用過的實體區塊來替換。或者,當第一區的實體區塊損壞時,損壞的實體區塊會被設定為第二程式化模式繼續使用。如此一來,可以增加可複寫式非揮發性記憶體的使用壽命。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
304(0)~304(R)‧‧‧實體區塊
322‧‧‧字元線欄位
324‧‧‧下實體頁面欄位
326‧‧‧中實體頁面欄位
328‧‧‧上實體頁面欄位
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
520‧‧‧第三區
540‧‧‧資料區
560、940‧‧‧第二區
580、920‧‧‧第一區
LBA(A+1)~LBA(B)‧‧‧邏輯區塊位址
S802、S804、S1202、S1204‧‧‧記憶體管理方法的步驟
702(0)~702(F)‧‧‧邏輯頁面位址
902、904、906‧‧‧實體頁面
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3A與圖3B是根據一範例實施例所繪示之記憶胞儲存架構與實體區塊的範例示意圖。
圖3C是根據一範例實施例說明實體頁面的寫入順序的範例示意圖。
圖4是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖5是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖6是根據另一範例實施例說明將資料寫入至第二區的實體區塊的範例示意圖。
圖7是根據一範例實施例說明用第三區的實體區塊替換第一區的實體區塊的範例示意圖。
圖8是根據一範例實施例說明記憶體管理方法的流程圖。
圖9是根據一範例實施例說明以實體頁面為單元時將實體區塊劃分為第一區與第二區的範例示意圖。
圖10是根據一範例實施例說明以實體頁面為單位時,將資料寫入的範例示意圖。
圖11是根據一範例實施例說明將一個實體區塊的有效資料複製到三個設定為第二程式化模式的實體區塊的範例示意圖。
圖12是根據一範例實施例所繪示的記憶體管理方法的流程圖。
S802、S804‧‧‧記憶體管理方法的步驟

Claims (24)

  1. 一種記憶體管理方法,用於控制一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體單元集合,每一該些實體單元集合包括多個實體單元組,每一該些實體單元組包括多個實體單元,每一該些實體單元組的該些實體單元至少包括一第一實體單元,其中該記憶體管理方法包括:將該些實體單元集合至少分割為一第一區與一第二區,設定該第一區的該些實體單元集合屬於一第一程式化模式,設定該第二區的該些實體單元集合屬於一第二程式化模式,其中該第一程式化模式表示該些實體單元可被程式化,該第二程式化模式表示僅該第一實體單元可被程式化;以及當該第二區的一第一實體單元集合符合一第二損壞條件時,使用該第一區的一第二實體單元集合來替換該第一實體單元集合,其中設定該第二實體單元集合屬於該第二程式化模式並且該第二實體單元集合無法再被設定為該第一程式化模式。
  2. 如申請專利範圍第1項所述之記憶體管理方法,其中該第二損壞條件包括:該第一實體單元集合的抹除次數達到一第二臨界值、該第一實體單元集合發生一程式化錯誤或該第一實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  3. 如申請專利範圍第1項所述之記憶體管理方法,其 中當該第二區的該第一實體單元集合符合該第二損壞條件時,使用該第一區的該第二實體單元集合來替換該第一實體單元集合的步驟包括:從該第一區的該些實體單元集合中,取得符合一第一損壞條件的該第二實體單元集合來替換該第一實體單元集合,其中該第一損壞條件包括:該第二實體單元集合的抹除次數達到一第一臨界值、該第二實體單元集合發生一程式化錯誤或該第二實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  4. 如申請專利範圍第1項所述之記憶體管理方法,其中當該第二區的該第一實體單元集合符合該第二損壞條件時,使用該第一區的該第二實體單元集合來替換該第一實體單元集合的步驟包括:從該第一區的該些實體單元集合中,取得抹除次數介於0至一第一臨界值的該第二實體單元集合來替換該第一實體單元集合。
  5. 如申請專利範圍第1項所述之記憶體管理方法,更包括:當該第一區的一第三實體單元集合符合一第一損壞條件時,將該第三實體單元集合劃分為該第二區;以及設定該第三實體單元集合屬於該第二程式化模式並且該第三實體單元集合無法再被設定為該第一程式化模式,其中該第一損壞條件包括:該第三實體單元集合的抹除次數達到一第一臨界值、該第三實體單元集合發生一程 式化錯誤或該第三實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  6. 如申請專利範圍第1項所述之記憶體管理方法,更包括:當該第一區的一第三實體單元集合符合一第一損壞條件時,取得該第一區中多個符合該第一損壞條件的第四實體單元集合;設定該些第四實體單元集合屬於該第二程式化模式;以及使用該些第四實體單元集合來替換該第三實體單元集合,其中該第一損壞條件包括:該些第四實體單元集合的抹除次數達到一第一臨界值、該些第四實體單元集合發生一程式化錯誤或該些第四實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  7. 如申請專利範圍第6項所述之記憶體管理方法,其中當該第一區的該第三實體單元集合符合該第一損壞條件時,取得該第一區中屬於該第一損壞條件的該些第四實體單元集合的步驟包括;判斷該第一區中是否有實體單元集合可在該第一程式化模式下儲存資料,若否,取得該些第四實體單元集合來替換該第三實體單元集合。
  8. 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體單元 集合,每一該些實體單元集合包括多個實體單元組,每一該些實體單元組包括多個實體單元,每一該些實體單元組的該些實體單元至少包括一第一實體單元;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,其中,該記憶體控制器用以將該些實體單元集合至少分割為一第一區與一第二區,設定該第一區的該些實體單元集合屬於一第一程式化模式,設定該第二區的該些實體單元集合屬於一第二程式化模式,其中該第一程式化模式表示該些實體單元可被程式化,該第二程式化模式表示僅該些第一實體單元可被程式化,其中,當該第二區的一第一實體單元集合符合一第二損壞條件時,該記憶體控制器用以使用該第一區的一第二實體單元集合來替換該第一實體單元集合,並且設定該第二實體單元集合屬於該第二程式化模式且該第二實體單元集合無法再被設定為該第一程式化模式。
  9. 如申請專利範圍第8項所述之記憶體儲存裝置,其中該第二損壞條件包括:該第一實體單元集合的抹除次數達到一第二臨界值、該第一實體單元集合發生一程式化錯誤或該第一實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  10. 如申請專利範圍第9項所述之記憶體儲存裝置,其中該記憶體控制器還用以從該第一區的該些實體單元集合中,取得符合一第一損壞條件的該第二實體單元集合來 替換該第一實體單元集合,其中該第一損壞條件包括:該第二實體單元集合的抹除次數達到一第一臨界值、該第二實體單元集合發生一程式化錯誤或該第二實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  11. 如申請專利範圍第8項所述之記憶體儲存裝置,其中該記憶體控制器還用以從該第一區的該些實體單元集合中,取得抹除次數介於0至一第一臨界值的該第二實體單元集合來替換該第一實體單元集合。
  12. 如申請專利範圍第8項所述之記憶體儲存裝置,其中當該第一區的一第三實體單元集合符合一第一損壞條件時,該記憶體控制器還用以將該第三實體單元集合劃分為該第二區,並設定該第三實體單元集合屬於該第二程式化模式且無法再被設定為該第一程式化模式,其中該第一損壞條件包括:該第三實體單元集合的抹除次數達到一第一臨界值、該第三實體單元集合發生一程式化錯誤或該第三實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  13. 如申請專利範圍第8項所述之記憶體儲存裝置,其中該記憶體控制器更用以在該第一區的一第三實體單元集合損壞時,取得第一區中多個符合一第一損壞條件的第四實體單元集合,設定該些第四實體單元集合屬於該第二程式化模式,並且使用該些第四實體單元集合來替換該第三實體單元集合,其中該第一損壞條件包括:該些第四實 體單元集合的抹除次數達到一第一臨界值、該些第四實體單元集合發生一程式化錯誤或該些第四實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  14. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器更用以判斷該第一區中是否有實體單元集合可在該第一程式化模式下儲存資料,若否,取得該些第四實體單元集合來替換該第三實體單元集合。
  15. 一種記憶體控制器,包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體單元集合,每一該些實體單元集合包括多個實體單元組,每一該些實體單元組包括多個實體單元,每一該些實體單元組的該些實體單元至少包括一第一實體單元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中,該記憶體管理電路用以將該些實體單元集合至少分割為一第一區與一第二區,設定該第一區的該些實體單元集合屬於一第一程式化模式,設定該第二區的該些實體單元集合屬於一第二程式化模式,其中該第一程式化模式表示該些實體單元可被程式化,並且該第二程式化模式表示僅該些第一實體單元可被程式化,其中,當該第二區的一第一實體單元集合符合一第二 損壞條件時,該記憶體管理電路使用該第一區的一第二實體單元集合來替換該第一實體單元集合,設定該第二實體單元集合屬於該第二程式化模式並且該第二實體單元集合無法再被設定為該第一程式化模式。
  16. 如申請專利範圍第15項所述之記憶體控制器,其中該第二損壞條件包括:該第一實體單元集合的抹除次數達到一第二臨界值、該第一實體單元集合發生一程式化錯誤或該第一實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  17. 如申請專利範圍第16項所述之記憶體控制器,其中該記憶體管理電路還用以從該第一區的該些實體單元集合中,取得符合一第一損壞條件的該第二實體單元集合來替換該第一實體單元集合,其中該第一損壞條件包括:該第二實體單元集合的抹除次數達到一第一臨界值、該第二實體單元集合發生一程式化錯誤或該第二實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  18. 如申請專利範圍第16項所述之記憶體控制器,其中該記憶體管理電路還用以從該第一區的該些實體單元集合中,取得抹除次數介於0至一第一臨界值的該第二實體單元集合來替換該第一實體單元集合。
  19. 如申請專利範圍第15項所述之記憶體控制器,其中當該第一區的一第三實體單元集合符合一第一損壞條件時,該記憶體管理電路還用以將該第三實體單元集合劃分 為該第二區,設定該第三實體單元集合屬於該第二程式化模式並且該第三實體單元集合不會再被設定為該第一程式化模式,其中該第一損壞條件包括:該第三實體單元集合的抹除次數達到一第一臨界值、該第三實體單元集合發生一程式化錯誤或該第三實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  20. 如申請專利範圍第15項所述之記憶體控制器,其中該記憶體管理電路更用以在該第一區的一第三實體單元集合損壞時,取得第一區中多個符合一第一損壞條件的第四實體單元集合,設定該些第四實體單元集合屬於該第二程式化模式,並且使用該些第四實體單元集合來替換該第三實體單元集合,其中該第一損壞條件包括:該些第四實體單元集合的抹除次數達到一第一臨界值、該些第四實體單元集合發生一程式化錯誤或該些第四實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限。
  21. 如申請專利範圍第20項所述之記憶體控制器,其中該記憶體管理電路更用以判斷該第一區中是否有實體單元集合可在該第一程式化模式下儲存資料,若否,取得該些第四實體單元集合來替換該第三實體單元集合。
  22. 一種記憶體管理方法,用於控制一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體單元集合,每一該些實體單元集合包括多個實體單元組,每一該些實體單元組包括多個實體單元,每一該些 實體單元組的該些實體單元至少包括一第一實體單元,該記憶體管理方法包括:將該些實體單元集合至少分割為一第一區與一第二區,設定該第一區的該些實體單元集合屬於一第一程式化模式,設定該第二區的該些實體單元集合屬於一第二程式化模式,其中該第一程式化模式表示該些實體單元可被程式化,該第二程式化模式表示僅該些第一實體單元可被程式化;以及當該第一區的至少一第一實體單元集合符合一第一損壞條件時,將該至少一第一實體單元集合劃分至該第二區,設定該至少一第一實體單元集合屬於該第二程式化模式,並且該至少一第一實體單元集合無法再被設定為該第一程式化模式。
  23. 如申請專利範圍第22項所述之記憶體管理方法,其中該第一損壞條件包括:該至少一第一實體單元集合的抹除次數達到一第一臨界值、該至少一第一實體單元集合發生一程式化錯誤或該至少一第一實體單元集合發生錯誤的位元個數超過一錯誤檢查與校正碼所能更正的上限
  24. 如申請專利範圍第23項所述之記憶體管理方法,更包括:將該第一區劃分為一資料區與一第三區,配置多個邏輯單元集合映射至該資料區的該些實體單元集合;當該至少一第一實體單元集合符合該第一損壞條件時,判斷該第三區是否存有實體單元集合可在該第一程式化模 式下儲存資料,若否,從該第二區中取得多個第二實體單元集合;以及將該些第二實體單元集合劃分為該第三區。
TW101119551A 2012-05-31 2012-05-31 記憶體管理方法、記憶體控制器與記憶體儲存裝置 TWI476590B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101119551A TWI476590B (zh) 2012-05-31 2012-05-31 記憶體管理方法、記憶體控制器與記憶體儲存裝置
US13/567,102 US8489942B1 (en) 2012-05-31 2012-08-06 Memory management method, and memory controller and memory storage device using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101119551A TWI476590B (zh) 2012-05-31 2012-05-31 記憶體管理方法、記憶體控制器與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201348960A TW201348960A (zh) 2013-12-01
TWI476590B true TWI476590B (zh) 2015-03-11

Family

ID=48749201

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101119551A TWI476590B (zh) 2012-05-31 2012-05-31 記憶體管理方法、記憶體控制器與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US8489942B1 (zh)
TW (1) TWI476590B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI602055B (zh) * 2015-12-17 2017-10-11 華邦電子股份有限公司 半導體儲存裝置及其編程方法
TWI661299B (zh) * 2018-04-30 2019-06-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140142035A (ko) * 2013-06-03 2014-12-11 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작방법
US9274715B2 (en) 2013-08-02 2016-03-01 Qualcomm Incorporated Methods and apparatuses for in-system field repair and recovery from memory failures
US9268487B2 (en) * 2014-03-24 2016-02-23 Western Digital Technologies, Inc. Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached
US9443616B2 (en) 2014-04-02 2016-09-13 Seagate Technology Llc Bad memory unit detection in a solid state drive
US9582205B2 (en) * 2014-04-17 2017-02-28 Sandisk Technologies Llc Protection scheme with dual programming of a memory system
TWI537816B (zh) * 2014-10-13 2016-06-11 慧榮科技股份有限公司 非揮發性儲存裝置與控制器進行的控制方法
TWI563507B (en) * 2015-07-01 2016-12-21 Phison Electronics Corp Memory management method, memory control circuit unit and memry storage apparatus
TWI592800B (zh) 2016-10-04 2017-07-21 大心電子(英屬維京群島)股份有限公司 記憶體管理方法及使用所述方法的儲存控制器
CN113050877B (zh) * 2019-12-27 2024-03-01 兆易创新科技集团股份有限公司 一种映射表存储的方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007033321A2 (en) * 2005-09-14 2007-03-22 Sandisk Corporation Secure yet flexible system architecture for secure devices with flash mass storage memory
TW200919474A (en) * 2007-10-19 2009-05-01 Phison Electronics Corp Writing method for non-volatile memory and controller using the same
US20090164696A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Physical block addressing of electronic memory devices
US20100302847A1 (en) * 2009-06-01 2010-12-02 Komai Hiromitsu Multi-level nand flash memory
TW201128648A (en) * 2010-02-05 2011-08-16 Phison Electronics Corp Memory management and writing method and rewritable non-volatile memory controller and storage system thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
TWI409633B (zh) * 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007033321A2 (en) * 2005-09-14 2007-03-22 Sandisk Corporation Secure yet flexible system architecture for secure devices with flash mass storage memory
TW200919474A (en) * 2007-10-19 2009-05-01 Phison Electronics Corp Writing method for non-volatile memory and controller using the same
US20090164696A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Physical block addressing of electronic memory devices
US20100302847A1 (en) * 2009-06-01 2010-12-02 Komai Hiromitsu Multi-level nand flash memory
TW201128648A (en) * 2010-02-05 2011-08-16 Phison Electronics Corp Memory management and writing method and rewritable non-volatile memory controller and storage system thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI602055B (zh) * 2015-12-17 2017-10-11 華邦電子股份有限公司 半導體儲存裝置及其編程方法
TWI661299B (zh) * 2018-04-30 2019-06-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器

Also Published As

Publication number Publication date
US8489942B1 (en) 2013-07-16
TW201348960A (zh) 2013-12-01

Similar Documents

Publication Publication Date Title
TWI527037B (zh) 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
TWI476590B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
US8046645B2 (en) Bad block identifying method for flash memory, storage system, and controller thereof
TWI480733B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
TWI537728B (zh) 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US9772797B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
US9177656B2 (en) Data writing method, memory storage device and memory controlling circuit unit
TWI454913B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI479314B (zh) 系統資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI495998B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
TWI486765B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TW201945927A (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
TW201403319A (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TW201727492A (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI548991B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
TWI464585B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
US10824340B2 (en) Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置