TW201407614A - 資料儲存方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料儲存方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TW201407614A TW201407614A TW101128084A TW101128084A TW201407614A TW 201407614 A TW201407614 A TW 201407614A TW 101128084 A TW101128084 A TW 101128084A TW 101128084 A TW101128084 A TW 101128084A TW 201407614 A TW201407614 A TW 201407614A
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- physical erasing
- erasing unit
- physical
- entity
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明揭露一種用於可複寫式非揮發性記憶體模組的資料儲存方法及使用此方法的記憶體控制器與記憶體儲存裝置。本資料儲存方法包括:將資料搬移或寫入至可複寫式非揮發性記憶體模組的一實體抹除單元,並且判斷此實體抹除單元是否存有跳動位元。本資料儲存方法還包括,倘若此實體抹除單元存有跳動位元時,將可複寫式非揮發性記憶體模組回復成搬移資料前的狀態或者再將資料搬移至另一個實體抹除單元。基此,本資料儲存方法可有效地確保儲存資料的可靠度。
Description
本發明是有關於一種用於可複寫式非揮發性記憶體模組的資料儲存方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
依據每個記憶胞可儲存的位元數,反及(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個位元的資料。
在NAND型快閃記憶體中,實體頁面是由排列在同一
條字元線上的數個記憶胞所組成。由於SLC NAND型快閃記憶體的每個記憶胞可儲存1個位元的資料,因此,在SLC NAND型快閃記憶體中,排列在同一條字元線上的數個記憶胞是對應一個實體頁面。
相對於SLC NAND型快閃記憶體來說,MLC NAND型快閃記憶體的每個記憶胞的浮動閘儲存層可儲存2個位元的資料,其中每一個儲存狀態(即,”11”、”10”、”01”與”00”)包括最低有效位元(Least Significant Bit,LSB)以及最高有效位元(Most Significant Bit,MSB)。例如,儲存狀態中從左側算起之第1個位元的值為LSB,而從左側算起之第2個位元的值為MSB。因此,排列在同一條字元線上的數個記憶胞可組成2個實體頁面,其中由此些記憶胞之LSB所組成的實體頁面稱為下實體頁面(low physical page),並且由此些記憶胞之MSB所組成的實體頁面稱為上實體頁面(upper physical page)。特別是,下實體頁面的寫入速度會快於上實體頁面的寫入速度,並且當程式化上實體頁面發生錯誤時,下實體頁面所儲存之資料亦可能因此遺失。
類似地,在TLC NAND型快閃記憶體中,每個記憶胞可儲存3個位元的資料,其中每一個儲存狀態(即,”111”、”110”、”101”、”100”、”011”、”010”、”001”與”000”)包括左側算起之第1個位元的LSB、從左側算起之第2個位元的中間有效位元(Center Significant Bit,CSB)以及從左側算起之第3個位元的MSB。因此,排列在同一
條字元線上的數個記憶胞可組成3個實體頁面,其中由此些記憶胞之LSB所組成的實體頁面稱為下實體頁面,由此些記憶胞之CSB所組成的實體頁面稱為中實體頁面,並且由此些記憶胞之MSB所組成的實體頁面稱為上實體頁面。特別是,對排列在同一條字元線上的數個記憶胞進行程式化時,僅能選擇僅程式化下實體頁面或者同時程式化下實體頁面、中實體頁面與上實體頁面,否則所儲存之資料可能會遺失。
基於上述,如何確保快閃記憶體內所儲存之資料的正確性,是此領域技術人員所致力的目標。
本發明提供一種資料儲存方法,使用此方法的記憶體控制器與記憶體儲存裝置,其能夠有效地確保資料的可靠度與正確性。
本發明範例實施例提出一種資料儲存方法,用於一記憶體儲存裝置,此記憶體儲存裝置具有可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一實體抹除單元具有多個實體程式化單元,且多個邏輯位址被配置以映射部分的實體抹除單元。本資料儲存方法包括:從上述邏輯位址之中選擇一第一邏輯位址,其中第一邏輯位址映射上述實體抹除單元之中的多個實體抹除單元。本資料儲存方法還包括從上述實體抹除單元中選擇第一實體抹除單元,將屬於第一邏輯位址的
有效資料從映射第一邏輯位址的實體抹除單元中搬移到第一實體抹除單元;並判斷第一實體抹除單元是否存有跳動位元(dancing bit)。本資料儲存方法還包括,倘若第一實體抹除單元存有跳動位元時,對第一實體抹除單元執行抹除運作。
在本發明之一實施例中,上述之資料儲存方法更包括:在對第一實體抹除單元執行抹除運作之後,從該些實體抹除單元中選擇一第二實體抹除單元,並且將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的實體抹除單元中搬移到該第二實體抹除單元。
在本發明之一實施例中,上述之判斷第一實體抹除單元是否存有跳動位元的步驟包括:判斷儲存在第一實體抹除單元的實體程式化單元之中的第一實體程式化單元中的資料發生錯誤位元的數目是否大於錯誤位元數門檻值且非大於最大可校正錯誤位元數;以及倘若儲存在第一實體程式化單元中的資料發生錯誤位元的數目大於錯誤位元數門檻值且非大於最大可校正錯誤位元數時,識別第一實體抹除單元存有跳動位元。
在本發明之一實施例中,上述之資料儲存方法更包括:在判斷第一實體抹除單元是否存有跳動位元之前,判斷在將屬於第一邏輯位址的有效資料從映射第一邏輯位址的實體抹除單元中搬移到第一實體抹除單元期間記憶體儲存裝置是否發生異常斷電。並且,上述判斷第一實體抹除單元是否存有跳動位元的步驟是在記憶體儲存裝置發生異
常斷電重新上電後被執行。
在本發明之一實施例中,上述之第一實體程式化單元為在記憶體儲存裝置發生異常斷電前最後一個被寫入的實體程式化單元。
在本發明之一實施例中,上述之資料儲存方法更包括:倘若第一實體抹除單元未存有該跳動位元時,對映射第一邏輯位址的實體抹除單元執行抹除運作。
本發明範例實施例提出一種記憶體控制器,用於控制記憶體儲存裝置中的可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組具有多個實體抹除單元並且每一實體抹除單元具有多個實體程式化單元。本記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。在此,記憶體管理電路用以配置多個邏輯位址以映射部分的實體抹除單元。此外,記憶體管理電路更用以從上述邏輯位址之中選擇一第一邏輯位址,其中第一邏輯位址映射上述實體抹除單元之中的多個實體抹除單元。另外,記憶體管理電路更用以從上述實體抹除單元中選擇第一實體抹除單元,將屬於第一邏輯位址的有效資料從映射第一邏輯位址的實體抹除單元中搬移到第一實體抹除單元,並且判斷第一實體抹除單元是否存有跳動位元。倘若第一實體抹除單元存有跳動位元時,記憶體管理電路更用以對第一實體抹除單元執行抹除運作。
在本發明之一實施例中,上述之記憶體管理電路更用
以在對第一實體抹除單元執行抹除運作之後,從該些實體抹除單元中選擇一第二實體抹除單元,並且將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的實體抹除單元中搬移到該第二實體抹除單元。
在本發明之一實施例中,記憶體管理電路判斷儲存在第一實體抹除單元的實體程式化單元之中的第一實體程式化單元中的資料發生錯誤位元的數目是否大於錯誤位元數門檻值且非大於最大可校正錯誤位元數。倘若儲存在第一實體程式化單元中的資料發生錯誤位元的數目大於錯誤位元數門檻值且非大於最大可校正錯誤位元數時,記憶體管理電路識別此第一實體抹除單元存有跳動位元。
在本發明之一實施例中,在判斷第一實體抹除單元是否存有跳動位元之前,記憶體管理電路更用以判斷在將屬於第一邏輯位址的有效資料從映射第一邏輯位址的實體抹除單元中搬移到第一實體抹除單元期間記憶體儲存裝置是否發生異常斷電。倘若判斷發生異常斷電時,記憶體管理電路才執行上述判斷第一實體抹除單元是否存有跳動位元的運作。
在本發明之一實施例中,上述之第一實體程式化單元為在發生異常斷電前最後一個被寫入的實體程式化單元。
在本發明之一實施例中,倘若第一實體抹除單元未存有跳動位元時,記憶體管理電路更用以對對映射第一邏輯位址的實體抹除單元執行抹除運作。
本發明範例實施例提出一種記憶體儲存裝置,其包括
連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元並且每一實體抹除單元具有多個實體程式化單元。記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組。在此,記憶體控制器用以配置多個邏輯位址以映射部分的實體抹除單元。此外,記憶體控制器更用以從上述邏輯位址之中選擇一第一邏輯位址,其中第一邏輯位址映射上述實體抹除單元之中的多個實體抹除單元。另外,記憶體控制器更用以從上述實體抹除單元中選擇第一實體抹除單元,將屬於第一邏輯位址的有效資料從映射第一邏輯位址的實體抹除單元中搬移到第一實體抹除單元,並且判斷第一實體抹除單元是否存有跳動位元。倘若第一實體抹除單元存有跳動位元時,記憶體控制器更用以對第一實體抹除單元執行抹除運作。
在本發明之一實施例中,上述之記憶體控制器更用以在對第一實體抹除單元執行抹除運作之後,從該些實體抹除單元中選擇一第二實體抹除單元,並且將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的實體抹除單元中搬移到該第二實體抹除單元。
在本發明之一實施例中,記憶體控制器判斷儲存在第一實體抹除單元的實體程式化單元之中的第一實體程式化單元中的資料發生錯誤位元的數目是否大於錯誤位元數門檻值且非大於最大可校正錯誤位元數。倘若儲存在第一實體程式化單元中的資料發生錯誤位元的數目大於錯誤位元數門檻值且非大於最大可校正錯誤位元數時,記憶體控制
器識別此第一實體抹除單元存有跳動位元。
在本發明之一實施例中,在判斷第一實體抹除單元是否存有跳動位元之前,記憶體控制器更用以判斷在將屬於第一邏輯位址的有效資料從映射第一邏輯位址的實體抹除單元中搬移到第一實體抹除單元期間記憶體儲存裝置是否發生異常斷電。倘若判斷發生異常斷電時,記憶體控制器才執行上述判斷第一實體抹除單元是否存有跳動位元的運作。
在本發明之一實施例中,上述之第一實體程式化單元為在發生異常斷電前最後一個被寫入的實體程式化單元。
在本發明之一實施例中,倘若第一實體抹除單元未存有跳動位元時,記憶體控制器更用以對對映射第一邏輯位址的實體抹除單元執行抹除運作。
本發明範例實施例提出一種資料儲存方法,用於可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一所述實體抹除單元具有多個實體程式化單元,此些實體抹除單元被至少分組為系統區。本資料儲存方法包括:將系統資料寫入至系統區的第一實體抹除單元;判斷第一實體抹除單元是否存有跳動位元;以及倘若第一實體抹除單元存有跳動位元時,選擇第二實體抹除單元,且將系統資料寫入至第二實體抹除單元。
在本發明之一實施例中,上述之資料儲存方法更包括將第一實體抹除單元的有效資料搬移至第二實體抹除單元。
在本發明之一實施例中,上述之判斷第一實體抹除單元是否存有跳動位元的步驟包括:判斷儲存在第一實體抹除單元的實體程式化單元之中的第一實體程式化單元中的資料發生錯誤位元的數目是否大於錯誤位元數門檻值且非大於最大可校正錯誤位元數;以及倘若儲存在第一實體程式化單元中的資料發生錯誤位元的數目大於錯誤位元數門檻值且非大於最大可校正錯誤位元數時,識別第一實體抹除單元存有跳動位元,其中系統資料被寫入至第一實體程式化單元。
在本發明之一實施例中,上述之資料儲存方法更包括:在將第一實體抹除單元中的有效資料搬移至第二實體抹除單元之後,對第一實體抹除單元執行抹除運作。
基於上述,本發明範例實施例的資料儲存方法、記憶體控制器與記憶體儲存裝置能夠有效地確保儲存資料的可靠度,由此避免資料遺失。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1252。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1256、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡
1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示根據本範例實施例所繪示之記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置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)標準、超高速一代(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具有實體抹除單元304(0)~304(R)。例如,實體抹除單元304(0)~304(R)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元亦可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例
實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組,即一個記憶胞中可儲存至少3個位元資料。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。必須瞭解的是,圖5所示之記憶體控制器的結構僅為一範例,本發明不以此為限。
請參照圖5,記憶體控制器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標準、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會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。具體來說,錯誤檢查與校正電路256會被設計能夠校正一數目的錯誤位元(以下稱為最大可校正錯誤位元數)。例如,最大可校正錯誤位元數為24。倘若發生在所讀取之
資料的錯誤位元的數目非大於24個時,錯誤檢查與校正電路256就能夠依據錯誤校正碼將錯誤位元校正回正確的值。反之,錯誤檢查與校正電路256就會回報錯誤校正失敗且記憶體管理電路202會將指示資料已遺失的訊息傳送給主機系統1000。
圖6與圖7是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6,記憶體控制器104(或記憶體管理電路202)會將可複寫式非揮發性記憶體模組106的實體抹除單元304(0)~304(R)邏輯地分組為(或指派至)資料區(data area)402、備用區(spare area)404、系統區(system area)406與取代區(replacement area)408。
邏輯上屬於資料區402與備用區404的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區402的實體抹除單元(亦稱為資料實體抹除單元)是被視為已儲存資料的實體抹除單元,而備用區404的實體抹除單元(亦稱為閒置實體抹除單元)是用以寫入新資料的實體抹除單元。例如,當從主機系統1000接收到寫入指令
與欲寫入之資料時,記憶體控制器104(或記憶體管理電路202)會從備用區404中提取實體抹除單元,整理欲寫入之資料並且將資料寫入至所提取的實體抹除單元中。
邏輯上屬於系統區406的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區408中的實體抹除單元是替代實體抹除單元。例如,可複寫式非揮發性記憶體模組106於出廠時會預留4%的實體抹除單元作為更換使用。也就是說,當資料區402、備用區404或系統區404中的實體抹除單元損毀時,預留於取代區408中的實體抹除單元是用以取代損壞的實體抹除單元(即,壞實體抹除單元(bad block))。因此,倘若取代區408中仍存有正常之實體抹除單元且發生實體抹除單元損毀時,記憶體控制器104(或記憶體管理電路202)會從取代區408中提取正常的實體抹除單元來更換損毀的實體抹除單元。倘若取代區408中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,資料區402、備用區404、系統區406與取代區408之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區402、備用區404、
系統區406與取代區408的分組關係會動態地變動。例如,當備用區404中的實體抹除單元損壞而被取代區408的實體抹除單元取代時,則原本取代區408的實體抹除單元會被關聯至備用區404。
請參照圖7,為了使主機系統1000能夠方便地對以輪替方式儲存資料的實體區塊進行存取,記憶體控制器104會配置邏輯位址LBA(0)~LBA(H)來映射資料區402的實體抹除單元,由此主機系統1000能夠直接地依據邏輯位址來進行資料的寫入與讀取。在本發明範例實施例中,記憶體控制器104(或記憶體管理電路202)會維護邏輯位址-實體抹除單元映射表(logical address-physical erasing unit mapping table)以記錄邏輯位址LBA(0)~LBA(H)與資料區402的實體抹除單元之間的映射關係(即,映射資訊)。
圖8~圖9是根據一範例實施例所繪示的使用替換實體抹除單元來寫入更新資料的範例。
請同時參照圖8~圖9,例如,在邏輯位址LBA(0)是映射至實體抹除單元304(0)的映射狀態下,當記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入更新資料至屬於邏輯位址LBA(0)的邏輯程式化單元時,記憶體控制器104會依據邏輯位址-實體抹除單元映射表識別邏輯位址LBA(0)目前是映射至實體抹除單元304(0)並且從備用區404中提取實體抹除單元304(D+1)來寫入更新資料。然而,在寫入更新資料至實體抹除單元304(D+1)的過程中,記憶體控制器104不會立刻將實體抹除單元304(0)中
的所有有效資料搬移至實體抹除單元304(D+1)而抹除實體抹除單元304(0)。具體來說,記憶體控制器104(或記憶體管理電路202)會從實體抹除單元304(0)中讀取欲寫入實體程式化單元之前的有效資料(即,實體抹除單元304(0)的第0實體程式化單元與第1實體程式化單元中的資料)。之後,記憶體控制器104(或記憶體管理電路202)會將實體抹除單元304(0)中欲寫入實體程式化單元之前的有效資料寫入至實體抹除單元304(D+1)的第0實體程式化單元與第1實體程式化單元中(如圖8所示),並且將新資料寫入至實體抹除單元304(D+1)的第2~4個實體程式化單元中(如圖9所示)。此時,記憶體控制器104即完成寫入的運作。因為實體抹除單元304(0)中的有效資料有可能在下一個操作(例如,寫入指令)中變成無效,因此立刻將實體抹除單元304(0)中的有效資料搬移至實體抹除單元304(D+1)可能會造成無謂的搬移。此外,資料必須依照實體程式化單元的寫入順序寫入至實體抹除單元內的實體程式化單元,因此,記憶體控制器104(或記憶體管理電路202)僅會先搬移欲寫入實體程式化單元之前的有效資料(即,儲存在實體抹除單元304(0)的第0實體程式化單元與第1實體程式化單元中資料),並且暫不搬移其餘有效資料(即,儲存在實體抹除單元304(0)的第5~K實體程式化單元中資料)。也就是說,實體抹除單元304(0)與實體抹除單元304(D+1)的實體程式化單元是映射至邏輯位址LBA(0)的邏輯程式化單元。
在本範例實施例中,暫時地維持此等暫態關係的運作稱為開啟(open)母子實體抹除單元,並且原實體抹除單元(例如,上述實體抹除單元304(0))稱為母實體抹除單元或已更新實體抹除單元,而用以替換母實體抹除單元的實體抹除單元(例如,上述實體抹除單元304(D+1))稱為子實體抹除單元或替換實體抹除單元。在此,用以儲存屬於同一個邏輯位址的資料的母實體抹除單元與子實體抹除單元稱為母子實體抹除單元組。
值得一提的是,備用區404中實體抹除單元的數目是有限的,基此,在記憶體儲存裝置100運作期間,已開啟之母子實體抹除單元組的數目亦會受到限制。也就是說,在記憶體儲存裝置100運作期間,已開啟之母子實體抹除單元組的數目不能大於一母子實體抹除單元數門檻值。例如,在本範例實施例中,母子實體抹除單元數門檻值被設定為3,但本發明不限於此。因此,當記憶體儲存裝置100接收到來自於主機系統1000的寫入指令時,倘若已開啟母子實體抹除單元組的數目達到母子實體抹除單元數門檻值時,記憶體控制器104需執行資料合併(data merge)運作以關閉至少一組目前已開啟之母子實體抹除單元組後才可執行此寫入指令。具體來說,在資料合併(data merge)運作中,記憶體控制器104會將母實體抹除單元與子實體抹除單元的資料整併至一個實體抹除單元。
圖10是根據一範例實施例所繪示之執行資料合併的範例。
請參照圖10,倘若需要將圖9所示之實體抹除單元304(0)與實體抹除單元304(D+1)的有效資料合併時,記憶體控制器104(或記憶體管理電路202)會從實體抹除單元304(0)中讀取剩餘的有效資料(即,實體抹除單元304(0)的第5~K實體程式化單元中的資料),並且將實體抹除單元304(0)中剩餘的有效資料寫入至實體抹除單元304(D+1)的第5實體程式化單元~第K實體程式化單元中。之後,記憶體控制器104(或記憶體管理電路202)會將實體抹除單元304(D+1)關聯至資料區502。也就是說,記憶體控制器104(或記憶體管理電路202)會在邏輯位址-實體抹除單元映射表中將邏輯位址LBA(0)重新映射至實體抹除單元304(D+1)。此外,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元304(0)執行抹除操作,並且將抹除後之實體抹除單元304(0)關聯至備用區404。例如,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會建立閒置區實體抹除單元表(未繪示)來記錄目前被關聯至備用區404的實體抹除單元。
由於在開啟母子實體抹除單元運作時,邏輯位址的邏輯程式化單元會映射至不同之實體抹除單元的實體程式化單元,因此,例如,記憶體控制器104(或記憶體管理電路202)使用變數表(Variable Table)來記錄邏輯位址與母子實體抹除單元之間的暫態關係。
除了上述使用替換實體抹除單元來寫入更新資料外,在本範例實施例中,記憶體控制器104(或記憶體管理
電路202)更會從備用區404中提取至少一實體抹除單元作為混亂(Random)實體抹除單元並且使用混亂實體抹除單元來寫入更新資料。例如,倘若主機系統1000欲更新之邏輯程式化單元的資料已被寫入至替換實體抹除單元時,此更新資料會被暫時寫入至混亂實體抹除單元。
圖11~12是根據一範例實施例所繪示之使用替換實體抹除單元與混亂實體抹除單元寫入資料與執行資料合併的示意圖。
請參照圖11,假設實體抹除單元304(D+2)被提取作為混亂實體抹除單元並且在圖9所示的儲存狀態下主機系統1000欲寫入更新資料至邏輯位址LBA(0)的第1邏輯程式化單元時,記憶體管理電路202會將此更新資料寫入至混亂實體抹除單元中第一個空的實體程式化單元(例如,實體抹除單元304(D+2)的第0實體程式化單元)中。
在本範例實施例中,當目前所使用之混亂實體抹除單元已被寫滿時,記憶體管理電路202會再從備用區404中提取另一個實體抹除單元作為新的混亂實體抹除單元,直到備用區404中實體抹除單元的數目小於預先定義數目為止。具體來說,備用區404的實體抹除單元是有限的,因此,作為混亂實體抹除單元之實體抹除單元的數目亦會受到限制。當備用區404中實體抹除單元的數目小於預先定義數目時,記憶體控制器104(或記憶體管理電路202)會執行資料合併操作,對所儲存之資料皆為無效資料的混亂實體抹除單元執行抹除運作並且將已抹除之實體抹除單元關
聯至備用區404。由此,在執行下一個寫入指令時,記憶體管理電路202就可再從備用區404提取空的實體抹除單元作為混亂實體抹除單元。
請參照圖12,倘若在圖11所示的狀態下對邏輯位址LBA(0)執行資料合併操作時,記憶體控制器104(或記憶體管理電路202)會從備用區404中提取一個空的實體抹除單元304(D+3),將屬於邏輯位址LBA(0)的有效資料從實體抹除單元304(0)、替換實體抹除單元304(D+1)與混亂實體抹除單元304(D+2)中複製到實體抹除單元304(D+3),並且將邏輯位址LBA(0)重新映射至實體抹除單元304(D+3)。
具體來說,在有效資料複製過程中,實體抹除單元304(0)的第0實體程式化單元中的資料會被讀取並被寫入至實體抹除單元304(D+3)的第0實體程式化單元。然後,實體抹除單元304(D+2)的第1實體程式化單元中的資料會被讀取並被寫入至實體抹除單元304(D+3)的第1實體程式化單元。之後,實體抹除單元304(D+1)的第2~4個實體程式化單元中的資料會依序地被讀取並被寫入至實體抹除單元304(D+3)的第2~4個實體程式化單元。最後,實體抹除單元304(0)的第5~K實體程式化單元中的資料會被讀取並被寫入至實體抹除單元304(D+3)的第5~K個實體程式化單元。特別是,在完成有效資料的搬移後,記憶體控制器104(或記憶體管理電路202)會在邏輯位址-實體抹除單元映射表中記錄邏輯位址LBA(0)被重新映射至實體抹除單元304(D+3)(即,將實體抹除單元304(D+3)關聯至資料區
404),對實體抹除單元304(0)、實體抹除單元304(D+1)與實體抹除單元304(D+2)執行抹除運作(即,將抹除實體抹除單元304(0)、實體抹除單元304(D+1)與實體抹除單元304(D+2)上的資料)並且將實體抹除單元304(0)、實體抹除單元304(D+1)與實體抹除單元304(D+2)關聯至備用區404。
如上所述,本發明範例實施例中,在記憶體儲存裝置100運作期間,記憶體控制器104(或記憶體管理電路202)會從備用區404中提取實體抹除單元作為已被寫入資料之實體抹除單元(即,資料區402的資料實體抹除單元)的替換實體抹除單元或混亂實體抹除單元來暫存資料,由此提升資料寫入的效率。必須瞭解的是,替換實體抹除單元或混亂實體抹除單元的數目不限於1個。例如,記憶體控制器104(或記憶體管理電路202)可為1個資料實體抹除單元配置多個替換實體抹除單元或多個混亂實體抹除單元來寫入更新資料。在此,替換實體抹除單元與混亂實體抹除單元統稱為暫態實體抹除單元。
在本範例實施例中,當將主機系統1000欲儲存的資料寫入至替換實體抹除單元或混亂實體抹除單元後,記憶體控制器104(或記憶體管理電路202)就會將指示已完成寫入指令的回應傳送給主機系統1000,並且之後於適當時機(例如,閒置狀態)進行上述資料合併程序。
然而,倘若進行上述資料合併期間記憶體儲存裝置100發生異常斷電,有可能造成資料未順利搬移至新的實
體抹除單元。在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會透過錯誤校正程序(或錯誤檢查與校正電路256)來判斷搬移的資料是否已被正確地寫入至新的實體抹除單元。
例如,如圖12所示,倘若在將邏輯位址LBA(0)的有效資料從實體抹除單元304(0)、實體抹除單元304(D+1)與實體抹除單元304(D+2)合併至實體抹除單元304(D+3)期間發生異常斷電時,在記憶體儲存裝置100重新上電後,記憶體控制器104(或記憶體管理電路202)會掃瞄實體抹除單元的冗餘位元區並據此識別出有實體抹除單元304(0)、實體抹除單元304(D+1)、實體抹除單元304(D+2)與實體抹除單元304(D+3)存有屬於邏輯位址LBA(0)的資料並且實體抹除單元304(D+3)為最後寫入的實體抹除單元。此外,記憶體控制器104(或記憶體管理電路202)會確認實體抹除單元304(D+3)中最後一個被寫入資料的實體程式化單元(例如,第2實體程式化單元)並且判斷儲存在實體抹除單元304(D+3)的第2實體程式化單元上的資料是否存有錯誤位元。例如,錯誤檢查與校正電路256)會根據從實體抹除單元304(D+3)的第2實體程式化單元的冗餘位元區所讀取的錯誤校正碼來對儲存在實體抹除單元304(D+3)的第2實體程式化單元上的資料執行錯誤檢查與校正程序。
倘若儲存在實體抹除單元304(D+3)的第2實體程式化單元上的資料未存有錯誤位元時,記憶體控制器104(或記憶體管理電路202)會繼續使用實體抹除單元304(D+3)來
完成資料合併程序。
倘若儲存在實體抹除單元304(D+3)的第2實體程式化單元上的資料存有錯誤位元且無法被錯誤校正(即,發生在資料上的錯誤位元的數目大於最大可校正錯誤位元數)時,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元304(D+3)執行抹除運作並保持以實體抹除單元304(0)、實體抹除單元304(D+1)與實體抹除單元304(D+2)來儲存邏輯位址LBA(0)的有效資料(即,未完成資料合併程序)。
倘若儲存在實體抹除單元304(D+3)的第2實體程式化單元上的資料存有錯誤位元且可被錯誤校正(即,發生在資料上的錯誤位元的數目非大於最大可校正錯誤位元數)時,記憶體控制器104(或記憶體管理電路202)會判斷實體抹除單元304(D+3)是否存有跳動位元(dancing bit)。在此,實體抹除單元存有跳動位元是一種實體抹除單元所儲存之電荷處於不穩定的現象。特別是,當一個實體抹除單元存有跳動位元時,此實體抹除單元上的資料也許可被正確讀取,但在一段時間後,資料就會遺失。
例如,在本發明一範例實施例中,記憶體控制器104(或記憶體管理電路202)會判斷發生在儲存在實體抹除單元304(D+3)的第2實體程式化單元上的資料中的錯誤位元的數目是否大於錯誤位元數門檻值。倘若發生在儲存在實體抹除單元304(D+3)的第2實體程式化單元上的資料中的錯誤位元的數目大於錯誤位元數門檻值時,記憶體控制
器104(或記憶體管理電路202)會識別實體抹除單元304(D+3)存有跳動位元。例如,在本範例實施例中,錯誤位元數門檻值被設定為20,但本發明不限於此。
倘若判斷實體抹除單元304(D+3)非存有跳動位元時,記憶體控制器104(或記憶體管理電路202)會繼續使用實體抹除單元304(D+3)來完成資料合併程序。反之,判斷實體抹除單元304(D+3)存有跳動位元時,記憶體控制器104(或記憶體管理電路202)會對實體抹除單元304(D+3)執行抹除運作並保持以實體抹除單元304(0)、實體抹除單元304(D+1)與實體抹除單元304(D+2)來儲存邏輯位址LBA(0)的有效資料(即,未完成資料合併程序)。
基於上述,在執行資料合併程序並發生異常斷電時,記憶體控制器104(或記憶體管理電路202)會透過確認實體抹除單元是否存有跳動位元,由此確保資料儲存的可靠性。
圖13是根據本發明範例實施例所繪示之儲存資料的流程圖。
請參照圖13,當欲執行資料合併程序時,在步驟S1301中,記憶體控制器104(或記憶體管理電路202)會從資料區402的實體抹除單元中選擇其中一個已處於母子實體抹除單元組的資料實體抹除單元,其中此資料實體抹除單元是映射第一邏輯位址且至少一個實體抹除單元從備用區404中被提取作為對應此資料實體抹除單元的暫態實體抹除單元。
在步驟S1303中,記憶體控制器104(或記憶體管理電
路202)會從備用區404選擇一個實體抹除單元(以下稱為第一實體抹除單元),且將屬於第一邏輯位址的有效資料從資料實體抹除單元與暫態實體抹除單元中搬移到第一實體抹除單元。
在步驟S1305中,記憶體控制器104(或記憶體管理電路202)會判斷是否發生異常斷電。
倘若未發生異常斷電時,則圖13的流程會被結束。具體來說,倘若在執行資料合併程序期間,未發生異常狀態,記憶體控制器104(或記憶體管理電路202)會識別資料合併程序順利完成。
倘若發生異常斷電時,在步驟S1307中,記憶體控制器104(或記憶體管理電路202)會判斷第一實體抹除單元是否存有跳動位元。
倘若第一實體抹除單元未存有該跳動位元時,在步驟S1309中,記憶體控制器104(或記憶體管理電路202)會繼續將屬於第一邏輯位址的有效資料從資料實體抹除單元與暫態實體抹除單元中搬移到第一實體抹除單元。
倘若第一實體抹除單元存有該跳動位元時,在步驟S1311中,記憶體控制器104(或記憶體管理電路202)會對第一實體抹除單元執行抹除運作且將第一實體抹除單元關聯至備用區404。
在本發明另一範例實施例中,記憶體控制器104(或記憶體管理電路202)更會在步驟S1311後立即從備用區的實體抹除單元中選擇第二實體抹除單元,並且將屬於第一邏
輯位址的有效資料從資料實體抹除單元與暫態實體抹除單元中搬移到第二實體抹除單元,以完成資料合併程序。然而,本發明不限於此,記憶體控制器104(或記憶體管理電路202)亦可在其他適當時機,重新進行此資料合併程序。
值得一提的是,除了於執行資料合併程序時,藉由判斷實體抹除單元是否存有跳動位元來確保資料的可靠度之外,在本發明另一範例實施例中,記憶體控制器104(或記憶體管理電路202)更可在將系統資料寫入至系統區406時,判斷實體抹除單元是否存有跳動位元以確保系統資料的可靠度。
如前所述,系統區406會初始地配置有實體抹除單元304(N+1)~304(S),以儲存系統資料。一般來說,系統資料的大小是小於一個實體抹除單元的容量,因此,記憶體控制器104(或記憶體管理電路202)接續的使用系統實體抹除單元的實體程式化單元來寫入更新的系統資料。
圖14是根據本發明一範例實施例所繪示之儲存系統資料的示意圖。
請參照圖14,在此,假設系統資料SD1需佔用一個實體程式化單元容量。當將系統資料SD1寫入至系統區406的實體抹除單元304(N+1)的第0實體程式化單元時,記憶體控制器104(或記憶體管理電路202)會判斷實體抹除單元304(N+1)是否存有跳動位元。
例如,類似上述,記憶體控制器104(或記憶體管理電路202)會讀取寫入至實體抹除單元304(N+1)的第0實體程
式化單元的系統資料SD1並且判斷系統資料SD1中的錯誤位元的數目是否大於錯誤位元數門檻值且非大於最大可校正錯誤位元數。倘若系統資料SD1中的錯誤位元的數目大於錯誤位元數門檻值且非大於最大可校正錯誤位元數時,記憶體控制器104(或記憶體管理電路202)會判斷實體抹除單元304(N+1)存有跳動位元。反之,記憶體控制器104(或記憶體管理電路202)會判斷實體抹除單元304(N+1)未存有跳動位元
特別是,倘若實體抹除單元304(N+1)存有跳動位元時,記憶體控制器104(或記憶體管理電路202)會選擇系統區404中的另一個實體抹除單元(例如,實體抹除單元304(N+2)),並且將系統資料SD1寫入至實體抹除單元304(N+2)。同樣地,記憶體控制器104(或記憶體管理電路202)會在寫入系統資料SD1後,判斷此實體抹除單元是否存有跳動位元。值得一提的是,倘若實體抹除單元304(N+1)儲存所寫入的系統資料SD1之外,已儲存有其他有效資料時,在本發明另一範例實施例中,記憶體控制器104(或記憶體管理電路202)會先將有效資料從實體抹除單元304(N+1)搬移至實體抹除單元304(N+2),之後再將系統資料SD1寫入至實體抹除單元304(N+2)。
倘若實體抹除單元304(N+1)未存有跳動位元時,則記憶體控制器104(或記憶體管理電路202)會識別系統資料SD1已被可靠地儲存。接著,當欲以新的系統資料SD2替換系統資料SD1時,記憶體控制器104(或記憶體管理電路
202)會將系統資料SD2寫入至系統區406的實體抹除單元304(N+1)的第1實體程式化單元,並且再次判斷實體抹除單元304(N+1)是否存有跳動位元(如圖15所示)。基此,每當更新系統資料時,記憶體控制器104(或記憶體管理電路202)可確保系統資料的正確性。
值得一提的是,儘管在本範例實施例中,記憶體存裝置100於初始化時多個實體抹除單元會被配置至系統區406,但本發明不限於此。在本發明另一範例實施例中,系統區406亦初始地被配置一個實體抹除單元,並且當需要空的實體抹除單元來儲存系統資料時,記憶體控制器104(或記憶體管理電路202)會從備用區404中選擇一個實體抹除單元作為系統區406的實體抹除單元。此外,系統區406中儲存無效資料的實體抹除單元亦可被抹除後關聯至備用區404,以再重新利用。
圖16是根據本發明另一範例實施例所繪示之儲存資料的流程圖,其繪示寫入系統資料至系統區的步驟。
請參照圖16,在步驟1601中,記憶體控制器104(或記憶體管理電路202)會將系統資料寫入至系統區404的實體抹除單元(以下稱為第一實體抹除單元)。
在步驟S1603中,記憶體控制器104(或記憶體管理電路202)會判斷第一實體抹除單元是否存有跳動位元。
倘若第一實體抹除單元未存有該跳動位元時,則圖16的流程會結束。
倘若第一實體抹除單元存有該跳動位元時,在步驟
S1605中,記憶體控制器104(或記憶體管理電路202)會從系統區404中選擇另一實體抹除單元(以下稱為第二實體抹除單元)。並且,在步驟S1607中,記憶體控制器104(或記憶體管理電路202)會將系統資料寫入至第二實體抹除單元。特別是,在另一範例實施例中,在執行步驟S1607時,記憶體控制器104(或記憶體管理電路202)會判斷第一實體抹除單元是否存有其他有效資料。倘若第一實體抹除單元存有其他有效資料時,記憶體控制器104(或記憶體管理電路202)更會將有效資料從第一實體抹除單元搬移至第二實體抹除單元。
在本發明另一範例實施例中,記憶體控制器104(或記憶體管理電路202)更會在步驟S1607後對第一實體抹除單元執行抹除運作且將第一實體抹除單元關聯至備用區404。
綜上所述,本發明一範例實施例的資料儲存方法、記憶體控制器與記憶體儲存裝置藉由在異常斷電後驗證在資料合併過程中所程式化的實體程式化單元中是否發生跳動位元,並且在發生跳動位元時,回復資料合併前的狀態,由此有效地確保資料的可靠度與正確性。此外,本發明一範例實施例的資料儲存方法、記憶體控制器與記憶體儲存裝置在寫入系統資料時會驗證所程式化的實體程式化單元中是否發生跳動位元,並且在發生跳動位元時,將所寫入的資料搬移至另一個位址,由此有效地確保系統資料的可靠度與正確性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1252‧‧‧印表機
1256‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
304(0)~304(R)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
402‧‧‧資料區
404‧‧‧備用區
406‧‧‧系統區
408‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯位址
S1301、S1303、S1305、S1307、S1309、S1311‧‧‧資料儲存方法的步驟
SD1、SD2‧‧‧系統資料
S1601、S1603、S1605、S1607‧‧‧資料儲存方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示根據本範例實施例所繪示之記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖6與圖7是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖8~圖9是根據一範例實施例所繪示的使用替換實體抹除單元來寫入更新資料的範例。
圖10是根據一範例實施例所繪示之執行資料合併的範例。
圖11~12是根據一範例實施例所繪示之使用替換實體抹除單元與混亂實體抹除單元寫入資料與執行資料合併的
示意圖。
圖13是根據本發明範例實施例所繪示之儲存資料的流程圖。
圖14是根據本發明一範例實施例所繪示之儲存系統資料的示意圖。
圖15是根據本發明另一範例實施例所繪示之儲存系統資料的示意圖。
圖16是根據本發明另一範例實施例所繪示之儲存資料的流程圖,其繪示寫入系統資料至系統區的步驟。
S1301、S1303、S1305、S1307、S1309、S1311‧‧‧資料儲存方法的步驟
Claims (22)
- 一種資料儲存方法,用於一記憶體儲存裝置,該記憶體儲存裝置具有一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一所述實體抹除單元具有多個實體程式化單元,多個邏輯位址被配置以映射該些實體抹除單元的一部份,該資料儲存方法包括:從該些邏輯位址之中選擇一第一邏輯位址,其中該第一邏輯位址映射該些實體抹除單元之中的多個實體抹除單元;從該些實體抹除單元中選擇一第一實體抹除單元;將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元中搬移到該第一實體抹除單元;判斷該第一實體抹除單元是否存有一跳動位元(dancing bit);以及倘若該第一實體抹除單元存有該跳動位元時,對該第一實體抹除單元執行一抹除運作。
- 如申請專利範圍第1項所述之資料儲存方法,更包括:在對該第一實體抹除單元執行該抹除運作之後,從該些實體抹除單元中選擇一第二實體抹除單元,並且將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元中搬移到該第二實體抹除單元。
- 如申請專利範圍第1項所述之資料儲存方法,其中所述判斷該第一實體抹除單元是否存有該跳動位元的步驟包括:判斷儲存在該第一實體抹除單元的實體程式化單元之中的一第一實體程式化單元中的資料發生錯誤位元的數目是否大於一錯誤位元數門檻值且非大於一最大可校正錯誤位元數;以及倘若儲存在該第一實體程式化單元中的資料發生錯誤位元的數目大於該錯誤位元數門檻值且非大於該最大可校正錯誤位元數時,識別該第一實體抹除單元存有該跳動位元。
- 如申請專利範圍第3項所述之資料儲存方法,更包括:在判斷該第一實體抹除單元是否存有該跳動位元之前,判斷在將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元中搬移到該第一實體抹除單元期間該記憶體儲存裝置是否發生一異常斷電,其中所述判斷該第一實體抹除單元是否存有該跳動位元的步驟是在該記憶體儲存裝置發生該異常斷電重新上電後被執行。
- 如申請專利範圍第4項所述之資料儲存方法,其中該第一實體程式化單元為在該記憶體儲存裝置發生該異常斷電前最後一個被寫入的實體程式化單元。
- 如申請專利範圍第1項所述之資料儲存方法,更包 括:倘若該第一實體抹除單元未存有該跳動位元時,將對應該第一邏輯位址的該些實體抹除單元執行該抹除運作。
- 一種記憶體控制器,用於控制一記憶體儲存裝置中的一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元並且每一實體抹除單元具有多個實體程式化單元,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以配置多個邏輯位址以映射該些實體抹除單元的一部份,其中該記憶體管理電路更用以從該些邏輯位址之中選擇一第一邏輯位址,其中該第一邏輯位址映射該些實體抹除單元之中的多個實體抹除單元,其中該記憶體管理電路更用以從該些實體抹除單元中選擇一第一實體抹除單元,且將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元中搬移到該第一實體抹除單元,其中該記憶體管理電路更用以判斷該第一實體抹除單元是否存有一跳動位元,其中倘若該第一實體抹除單元存有該跳動位元時,該記憶體管理電路更用以對該第一實體抹除單元執行一抹除 運作。
- 如申請專利範圍第7項所述之記憶體控制器,其中該記憶體管理電路更用以在對該第一實體抹除單元執行該抹除運作之後,從該些實體抹除單元中選擇一第二實體抹除單元,並且將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元中搬移到該第二實體抹除單元。
- 如申請專利範圍第7項所述之記憶體控制器,其中該記憶體管理電路判斷儲存在該第一實體抹除單元的實體程式化單元之中的一第一實體程式化單元中的資料發生錯誤位元的數目是否大於一錯誤位元數門檻值且非大於一最大可校正錯誤位元數,其中倘若儲存在該第一實體程式化單元中的資料發生錯誤位元的數目大於該錯誤位元數門檻值且非大於該最大可校正錯誤位元數時,該記憶體管理電路識別該第一實體抹除單元存有該跳動位元。
- 如申請專利範圍第9項所述之記憶體控制器,其中在判斷該第一實體抹除單元是否存有該跳動位元之前,該記憶體管理電路更用以判斷在將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元中搬移到該第一實體抹除單元期間該記憶體儲存裝置是否發生一異常斷電,其中倘若判斷發生該異常斷電時,該記憶體管理電路才執行上述判斷該第一實體抹除單元是否存有該跳動位元 的運作。
- 如申請專利範圍第10項所述之記憶體控制器,其中該第一實體程式化單元為在發生該異常斷電前最後一個被寫入的實體程式化單元。
- 如申請專利範圍第7項所述之記憶體控制器,其中倘若該第一實體抹除單元未存有該跳動位元時,該記憶體管理電路更用以將對應該第一邏輯位址的該些實體抹除單元執行該抹除運作。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體抹除單元並且每一實體抹除單元具有多個實體程式化單元;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,其中該記憶體控制器用以配置多個邏輯位址以映射該些實體抹除單元的一部份,其中該記憶體控制器更用以從該些邏輯位址之中選擇一第一邏輯位址,其中該第一邏輯位址映射該些實體抹除單元之中的多個實體抹除單元,其中該記憶體控制器更用以從該些實體抹除單元中選擇一第一實體抹除單元,且將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元中搬移到該第一實體抹除單元, 其中該記憶體控制器更用以判斷該第一實體抹除單元是否存有一跳動位元,其中倘若該第一實體抹除單元存有該跳動位元時,該記憶體控制器更用以對該第一實體抹除單元執行一抹除運作。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器更用以在對該第一實體抹除單元執行該抹除運作之後,從該些實體抹除單元中選擇一第二實體抹除單元,並且將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元中搬移到該第二實體抹除單元。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器判斷儲存在該第一實體抹除單元的實體程式化單元之中的一第一實體程式化單元中的資料發生錯誤位元的數目是否大於一錯誤位元數門檻值且非大於一最大可校正錯誤位元數,其中倘若儲存在該第一實體程式化單元中的資料發生錯誤位元的數目大於該錯誤位元數門檻值且非大於該最大可校正錯誤位元數時,該記憶體控制器識別該第一實體抹除單元存有該跳動位元。
- 如申請專利範圍第15項所述之記憶體儲存裝置,其中在判斷該第一實體抹除單元是否存有該跳動位元之前,該記憶體控制器更用以判斷在將屬於該第一邏輯位址的有效資料從對應該第一邏輯位址的該些實體抹除單元 中搬移到該第一實體抹除單元期間該記憶體儲存裝置是否發生一異常斷電,其中倘若判斷發生該異常斷電時,該記憶體控制器才執行上述判斷該第一實體抹除單元是否存有該跳動位元的運作。
- 如申請專利範圍第16項所述之記憶體儲存裝置,其中該第一實體程式化單元為在發生該異常斷電前最後一個被寫入的實體程式化單元。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中倘若該第一實體抹除單元未存有該跳動位元時,該記憶體控制器更用以將對應該第一邏輯位址的該些實體抹除單元執行該抹除運作。
- 一種資料儲存方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一所述實體抹除單元具有多個實體程式化單元,該些實體抹除單元被至少分組為一系統區,該資料儲存方法包括:將一系統資料寫入至該系統區的一第一實體抹除單元;判斷該第一實體抹除單元是否存有一跳動位元;以及倘若該第一實體抹除單元存有該跳動位元時,從該些實體抹除單元中選擇一第二實體抹除單元,且將該系統資料寫入至該第二實體抹除單元。
- 如申請專利範圍第19項所述之資料儲存方法,更 包括:將該第一實體抹除單元中的有效資料搬移至該第二實體抹除單元。
- 如申請專利範圍第19項所述之資料儲存方法,其中所述判斷該第一實體抹除單元是否存有該跳動位元的步驟包括:判斷儲存在該第一實體抹除單元的實體程式化單元之中的一第一實體程式化單元中的資料發生錯誤位元的數目是否大於一錯誤位元數門檻值且非大於一最大可校正錯誤位元數,其中該系統資料被寫入至該第一實體程式化單元;以及倘若儲存在該第一實體程式化單元中的資料發生錯誤位元的數目大於該錯誤位元數門檻值且非大於該最大可校正錯誤位元數時,識別該第一實體抹除單元存有該跳動位元。
- 如申請專利範圍第20項所述之資料儲存方法,更包括:在將該第一實體抹除單元中的有效資料搬移至該第二實體抹除單元之後,對該第一實體抹除單元執行一抹除運作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101128084A TWI509615B (zh) | 2012-08-03 | 2012-08-03 | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
US13/633,887 US9223688B2 (en) | 2012-08-03 | 2012-10-03 | Data storing method and memory controller and memory storage device using the same |
US14/930,669 US9383929B2 (en) | 2012-08-03 | 2015-11-03 | Data storing method and memory controller and memory storage device using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101128084A TWI509615B (zh) | 2012-08-03 | 2012-08-03 | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201407614A true TW201407614A (zh) | 2014-02-16 |
TWI509615B TWI509615B (zh) | 2015-11-21 |
Family
ID=50026656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101128084A TWI509615B (zh) | 2012-08-03 | 2012-08-03 | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9223688B2 (zh) |
TW (1) | TWI509615B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9490022B2 (en) | 2015-02-02 | 2016-11-08 | Silicon Motion, Inc. | Data storage device and data maintenance method |
TWI778644B (zh) * | 2021-05-31 | 2022-09-21 | 新唐科技股份有限公司 | 系統單晶片和其資料燒入方法 |
TWI802324B (zh) * | 2022-03-18 | 2023-05-11 | 群聯電子股份有限公司 | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI602061B (zh) * | 2017-03-16 | 2017-10-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 |
TWI634561B (zh) * | 2017-03-24 | 2018-09-01 | 群聯電子股份有限公司 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
CN111814618B (zh) * | 2020-06-28 | 2023-09-01 | 浙江大华技术股份有限公司 | 行人重识别方法、步态识别网络训练方法及相关装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW261687B (zh) * | 1991-11-26 | 1995-11-01 | Hitachi Seisakusyo Kk | |
JP2763080B2 (ja) * | 1992-03-18 | 1998-06-11 | 富士通株式会社 | 光ディスク装置 |
JP3078946B2 (ja) * | 1993-03-11 | 2000-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 |
JP3215237B2 (ja) * | 1993-10-01 | 2001-10-02 | 富士通株式会社 | 記憶装置および記憶装置の書き込み/消去方法 |
US6948026B2 (en) * | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
GB0123410D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
US20040049627A1 (en) * | 2001-11-09 | 2004-03-11 | Flex-P Industries | Method and system for controlling compact flash memory |
US6839826B2 (en) * | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
EP1556868B1 (en) * | 2002-10-28 | 2007-09-05 | SanDisk Corporation | Automated wear leveling in non-volatile storage systems |
JP3587842B2 (ja) * | 2002-12-17 | 2004-11-10 | 沖電気工業株式会社 | データ書き換え装置およびデータ書き換え方法ならびにフラッシュメモリ装置 |
US7433993B2 (en) * | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
US7350044B2 (en) * | 2004-01-30 | 2008-03-25 | Micron Technology, Inc. | Data move method and apparatus |
US20080082736A1 (en) | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
JP2005258851A (ja) * | 2004-03-12 | 2005-09-22 | Renesas Technology Corp | メモリカード |
EP2077559B1 (en) * | 2007-12-27 | 2012-11-07 | Hagiwara Solutions Co., Ltd. | Refresh method of a flash memory |
JP2009252255A (ja) * | 2008-04-01 | 2009-10-29 | Renesas Technology Corp | 不揮発性半導体記憶装置 |
US8055942B2 (en) * | 2009-12-03 | 2011-11-08 | Seagate Technology Llc | Data storage devices and methods for power-on initialization |
JP2011134410A (ja) * | 2009-12-25 | 2011-07-07 | Toshiba Corp | 不揮発性半導体記憶装置及びその試験方法 |
-
2012
- 2012-08-03 TW TW101128084A patent/TWI509615B/zh active
- 2012-10-03 US US13/633,887 patent/US9223688B2/en active Active
-
2015
- 2015-11-03 US US14/930,669 patent/US9383929B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9490022B2 (en) | 2015-02-02 | 2016-11-08 | Silicon Motion, Inc. | Data storage device and data maintenance method |
TWI573142B (zh) * | 2015-02-02 | 2017-03-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及資料維護方法 |
TWI778644B (zh) * | 2021-05-31 | 2022-09-21 | 新唐科技股份有限公司 | 系統單晶片和其資料燒入方法 |
TWI802324B (zh) * | 2022-03-18 | 2023-05-11 | 群聯電子股份有限公司 | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
TWI509615B (zh) | 2015-11-21 |
US9383929B2 (en) | 2016-07-05 |
US20140040534A1 (en) | 2014-02-06 |
US9223688B2 (en) | 2015-12-29 |
US20160054935A1 (en) | 2016-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US8386905B2 (en) | Error correcting method, and memory controller and memory storage system using the same | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI443512B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US8423838B2 (en) | Block management method, memory controller, and memory storage apparatus | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201525693A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201312351A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |