TWI527037B - 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI527037B TWI527037B TW103113207A TW103113207A TWI527037B TW I527037 B TWI527037 B TW I527037B TW 103113207 A TW103113207 A TW 103113207A TW 103113207 A TW103113207 A TW 103113207A TW I527037 B TWI527037 B TW I527037B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- physical
- entity
- stylized
- units
- Prior art date
Links
Classifications
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- 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/1068—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 sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/344—Arrangements for verifying correct erasure or for detecting overerased cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- 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/1072—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 multilevel memories
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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
- 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
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本發明是有關於一種用於可複寫式非揮發性記憶體的資料儲存方法及使用此方法的記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
可複寫式非揮發性記憶體其中又以反及(NAND)型快閃記憶體最為廣泛使用,而依據每個記憶胞可儲存的位元數,反及(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 programming unit),並且由此些記憶胞之MSB所組成的實體程式化單元稱為上實體程式化單元(upper physical programming unit)。
相較於SLC NAND型快閃記憶體而言,MLC NAND型快閃記憶體的容量更大,且成本低廉,較常被業界選擇以製造使用複寫式非揮發性記憶體模組的記憶體儲存裝置。但是,MLC NAND型快閃記憶體的穩定性較SLC NAND型快閃記憶體低,故,MLC NAND型快閃記憶體有些實體抹除區塊在抹除次數很低時,就有較多的錯誤位元(Error bit)產生。而一般系統為了避免儲存於這些錯誤位元數目較高的實體抹除單元的資料損失,當偵測到某些data讀取時有過多的錯誤位元,就會做資料搬移的動作,故寫入到此些錯誤位元數目過多的不良的實體抹除單元的資料就會因此需要再做一次資料搬移,系統的效能也因此降低。
本發明提供一種資料儲存方法、記憶體控制電路單元及記憶體儲存裝置,可再利用不良的實體抹除單元,達到能夠延長記憶體儲存裝置的壽命的效用。
本發明的一範例實施例提出一種資料儲存方法,用於可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元,且每個實體抹除單元的這些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元。上述資料儲存方法包括:選擇這些實體抹除單元之中的第一實體抹除單元,其中第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域。
上述資料儲存方法還包括:使用第一程式化模式來儲存第一資料,其中第一資料被程式化至第一實體抹除單元的下實體程式化單元的至少其中之一與上實體程式化單元的至少其中之一。另外,上述資料儲存方法還包括記錄第一實體抹除單元的每個預設區域的錯誤位元數目並判斷是否第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值。上述資料儲存方法更包括,倘若第一實體抹除單元的這些實體程式化單元的這些預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,在將第一實體抹除單元中的第一資料抹除之後,使用第二程式化模式來儲存第二資料,其中使用第一程式化模式對可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數大於使用第二程式化模式對可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數。
在本發明的一範例實施例中,上述的第二程式化模式包括:單層記憶胞模式以及下實體程式化模式中的至少其中之一的模式,其中在單層記憶胞模式中,一個記憶胞只儲存有一個位元的資料,而在下實體程式化模式中,只有下實體程式化單元會被程式化。
在本發明的一範例實施例中,上述的資料儲存方法更包括:在將第一實體抹除單元中的第一資料抹除之前,判斷第一資料是否為有效的資料。上述的資料儲存方法還包括:倘若第一資
料是有效的資料時,將第一資料複製至這些實體抹除單元之中的第二實體抹除單元中,並將原映射第一實體抹除單元的邏輯單元重新映射至第二實體抹除單元,而上述第二實體抹除單元的任一預設區域的錯誤位元數目非大於錯誤位元數目門檻值。
在本發明的一範例實施例中,上述的資料儲存方法更包括:倘若第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記錄第一實體抹除單元於第二程式化模式實體抹除單元分佈表中。
在本發明的一範例實施例中,上述的資料儲存方法更包括:倘若第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,標記第一實體抹除單元為第二程式化模式實體抹除單元。
在本發明的一範例實施例中,上述的資料儲存方法,更包括在上述僅使用第一實體抹除單元的這些下實體程式化單元來儲存第二資料的步驟之前,以單層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。
在本發明的一範例實施例中,上述的資料儲存方法更包括:判斷第一實體抹除單元是否已被記錄在第二程式化模式實體抹除單元分佈表中;倘若第一實體抹除單元已被記錄在第二程式化模式實體抹除單元分佈表中時,使用單層記憶胞模式抹除指令
對第一實體抹除單元執行抹除操作;以及倘若第一實體抹除單元非被記錄在第二程式化模式實體抹除單元分佈表中時,使用多層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。
在本發明的一範例實施例中,上述的資料儲存方法,更包括:判斷第一實體抹除單元是否已被標記為第二程式化模式實體抹除單元;倘若第一實體抹除單元已被標記為第二程式化模式實體抹除單元時,使用單層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作;以及倘若第一實體抹除單元非被標記為第二程式化模式實體抹除單元時,使用多層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。
本發明的一範例實施例提出一種資料儲存方法,用於可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元,且每個實體抹除單元的這些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元。上述資料儲存方法包括:接收第一資料並且選擇這些實體抹除單元之中的第一實體抹除單元,其中第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域。此外,上述資料儲存方法也包括記錄第一實體抹除單元的每個預設區域的一錯誤位元數目,並判斷是否第一實體抹除單元的這些實體程式化單元之中的第一實體程式化單元的預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值。上述資料儲存方法更包括:倘若第一實體程式
化單元的預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,將第一資料程式化至第一實體抹除單元的這些實體程式化單元之中的第二實體程式化單元。
在本發明的一範例實施例中,上述資料儲存方法更包括:倘若第一實體程式化單元的預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,將虛擬資料程式化至第一實體程式化單元。
在本發明的一範例實施例中,上述第二實體程式化單元是配置在第一實體程式化單元之後且第二實體程式化單元每一預設區域的錯誤位元數目皆非大於錯誤位元數目門檻值。
在本發明的一範例實施例中,上述每個實體程式化單元可儲存至少一個錯誤檢查與校正框,而上述預設區域的的大小為錯誤檢查與校正框的大小。
本發明的一範例實施例提出一種記憶體控制電路單元,用於控制可複寫式非揮發性記憶體模組,上述記憶體控制電路單元包括:主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元,且每個實體抹除單元的這些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元。記憶體管理電路耦接至主機介面與記憶體介面,並且用以選擇這些實體抹除單元之中的第一實體抹除單
元,其中第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域。在此,記憶體管理電路更用以使用第一程式化模式來儲存第一資料,其中第一資料被程式化至第一實體抹除單元的下實體程式化單元的至少其中之一與上實體程式化單元的至少其中之一。此外,記憶體管理電路更用以記錄第一實體抹除單元的每個預設區域的錯誤位元數目,並且判斷是否第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值。倘若第一實體抹除單元的這些實體程式化單元的這些預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體管理電路在將第一實體抹除單元中的第一資料抹除之後,使用第二程式化模式來儲存第二資料,其中使用第一程式化模式對可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數大於使用第二程式化模式對可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數。
在本發明的一範例實施例中,上述的記憶體管理電路更用以在將第一實體抹除單元中的第一資料抹除之前,判斷第一資料是否為有效的資料。倘若第一資料是有效的資料時,記憶體管理電路將第一資料複製至這些實體抹除單元之中的第二實體抹除單元中,並將原映射第一實體抹除單元的邏輯單元重新映射至第二實體抹除單元,其中第二實體抹除單元的任一預設區域的錯誤位元數目非大於錯誤位元數目門檻值。
在本發明的一範例實施例中,倘若第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體管理電路更用以記錄第一實體抹除單元於第二程式化模式實體抹除單元分佈表中。
在本發明的一範例實施例中,倘若第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體管理電路更用以標記第一實體抹除單元為第二程式化模式實體抹除單元。
在本發明的一範例實施例中,上述的記憶體管理電路更用以在上述僅使用第一實體抹除單元的這些下實體程式化單元來儲存第二資料的步驟之前,使用單層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。
在本發明的一範例實施例中,上述的記憶體管理電路更用以判斷第一實體抹除單元是否已被記錄在第二程式化模式實體抹除單元分佈表中。倘若第一實體抹除單元已被記錄在第二程式化模式實體抹除單元分佈表中時,記憶體管理電路使用單層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。此外,倘若第一實體抹除單元非被記錄在第二程式化模式實體抹除單元分佈表中時,記憶體管理電路使用多層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。
在本發明的一範例實施例中,上述的記憶體管理電路更
用以判斷第一實體抹除單元是否已被標記為第二程式化模式實體抹除單元。倘若第一實體抹除單元已被標記為第二程式化模式實體抹除單元時,記憶體管理電路使用單層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。此外,倘若第一實體抹除單元非被標記為第二程式化模式實體抹除單元時,記憶體管理電路使用多層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。
本發明的一範例實施例提出一種記憶體控制電路單元,用於控制可複寫式非揮發性記憶體模組,上述記憶體控制電路單元包括:主機介面、記憶體介面與記憶體管理電路。其中主機介面耦接至主機系統。記憶體介面耦接至可複寫式非揮發性記憶體模組。而可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元,且每個實體抹除單元的這些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元。記憶體管理電路耦接至主機介面與記憶體介面,並且用以從主機系統接收第一資料,而上述記憶體管理電路更用以選擇這些實體抹除單元之中的第一實體抹除單元且第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域。此外,記憶體管理電路更用以記錄第一實體抹除單元的每個預設區域的錯誤位元數目,並判斷是否第一實體抹除單元的這些實體程式化單元之中的第一實體程式化單元的預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值。倘若第一實體程式化單元的預設區域之中的至少其中一個預設區域的錯誤位
元數目大於錯誤位元數目門檻值時,記憶體管理電路將第一資料程式化至第一實體抹除單元的這些實體程式化單元之中的第二實體程式化單元。
在本發明的一範例實施例中,上述記憶體控制電路單元更包括:倘若第一實體程式化單元的預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體管理電路將虛擬資料程式化至第一實體程式化單元。
本發明的一範例實施例提出一種記憶體儲存裝置,包括:連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。上述連接介面單元耦接至主機系統。上述可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元,且每個實體抹除單元的這些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且用以選擇這些實體抹除單元之中的第一實體抹除單元。上述第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域。記憶體控制電路單元更用以使用第一程式化模式來儲存第一資料,其中第一資料被程式化至第一實體抹除單元的下實體程式化單元的至少其中之一與上實體程式化單元的至少其中之一。此外,記憶體控制電路單元更用以記錄第一實體抹除單元的每個預設區域的錯誤位元數目,以及判斷是否第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預
設區域的錯誤位元數目大於錯誤位元數目門檻值。倘若第一實體抹除單元的這些實體程式化單元的這些預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體控制電路單元在將第一實體抹除單元中的第一資料抹除之後,使用第二程式化模式來儲存第二資料,其中使用第一程式化模式對可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數大於使用第二程式化模式對可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數。
在本發明的一範例實施例中,記憶體控制電路單元更用以在將第一實體抹除單元中的第一資料抹除之前,判斷第一資料是否為有效的資料。並且,倘若第一資料是有效的資料時,記憶體控制電路單元便將第一資料複製至這些實體抹除單元之中的第二實體抹除單元中,並將原映射第一實體抹除單元的邏輯單元重新映射至第二實體抹除單元,其中第二實體抹除單元的任一預設區域的錯誤位元數目非大於錯誤位元數目門檻值。
在本發明的一範例實施例中,倘若第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體控制電路單元更用以記錄第一實體抹除單元於第二程式化模式實體抹除單元分佈表中。
在本發明的一範例實施例中,倘若第一實體抹除單元的這些實體程式化單元的所述預設區域之中的至少其中一個預設區
域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體控制電路單元更用以標記第一實體抹除單元為第二程式化模式實體抹除單元。
在本發明的一範例實施例中,記憶體控制電路單元更用以在上述僅使用第一實體抹除單元的這些下實體程式化單元來儲存第二資料的步驟之前,使用單層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。
在本發明的一範例實施例中,記憶體控制電路單元更用以判斷第一實體抹除單元是否已被記錄在第二程式化模式實體抹除單元分佈表中。倘若第一實體抹除單元已被記錄在第二程式化模式實體抹除單元分佈表中時,記憶體控制電路單元使用單層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。另外,倘若第一實體抹除單元非被記錄在第二程式化模式實體抹除單元分佈表中時,記憶體控制電路單元使用多層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。
在本發明的一範例實施例中,記憶體控制電路單元更用以判斷第一實體抹除單元是否已被標記為第二程式化模式實體抹除單元。倘若第一實體抹除單元已被標記為第二程式化模式實體抹除單元時,記憶體控制電路單元使用單層記憶胞模式抹除指令對第一實體抹除單元執行抹除操作。此外,倘若第一實體抹除單元非被標記為第二程式化模式實體抹除單元時,記憶體控制電路單元使用多層記憶胞模式抹除指令對第一實體抹除單元執行抹除
操作。
本發明的一範例實施例提出一種記憶體儲存裝置,包括:連接介面單元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元,每個實體抹除單元具有多個實體程式化單元,且每個實體抹除單元的這些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且用以從主機系統接收第一資料。此外,記憶體控制電路單元更用以選擇這些實體抹除單元之中的第一實體抹除單元,而上述第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域。另外,記憶體控制電路單元更用以記錄第一實體抹除單元的每個預設區域的錯誤位元數目,並且判斷是否第一實體抹除單元的這些實體程式化單元之中的第一實體程式化單元的預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值。倘若第一實體程式化單元的預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體控制電路單元將第一資料程式化至第一實體抹除單元的這些實體程式化單元之中的第二實體程式化單元。
在本發明的一範例實施例中,上述記憶體儲存裝置更包括:倘若第一實體程式化單元的預設區域之中的至少其中一個預設區域的錯誤位元數目大於錯誤位元數目門檻值時,記憶體控制
電路單元將虛擬資料程式化至第一實體程式化單元。
基於上述,本發明可再利用錯誤位元數目較高的不良實體抹除單元,也可避免將資料儲存在錯誤位元數目較高的實體程式化單元所導致的資料錯誤,達到延長可複寫式非揮發性記憶體的壽命以及增進資料保存的穩定性的效用。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧電源管理電路
212‧‧‧錯誤檢查與校正電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧系統區
504‧‧‧資料區
506‧‧‧閒置區
508‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
410(F)‧‧‧位於閒置區的第一實體抹除單元
802‧‧‧實體程式化單元
804‧‧‧第二實體程式化單元
801‧‧‧第一實體程式化單元的第一錯誤檢查與校正框
803‧‧‧第一實體程式化單元的第二錯誤檢查與校正框
805‧‧‧第一實體程式化單元的第三錯誤檢查與校正框
807‧‧‧第一實體程式化單元的第四錯誤檢查與校正框
809‧‧‧第二實體程式化單元的第一錯誤檢查與校正框
811‧‧‧第二實體程式化單元的第二錯誤檢查與校正框
813‧‧‧第二實體程式化單元的第三錯誤檢查與校正框
815‧‧‧第二實體程式化單元的第四錯誤檢查與校正框
S901、S903、S905、S907‧‧‧資料儲存方法的步驟
S1001、S1003、S1005、S1007、S1009‧‧‧資料儲存方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖6與圖7是根據第一範例實施例所繪示之管理實體區塊的範例示意圖。
圖8是根據一範例實施例所繪示之錯誤檢查與校正框的範例
示意圖。
圖9為根據本發明的範例實施例,所繪示之資料儲存方法的流程圖。
圖10為根據本發明的範例實施例,所繪示之資料儲存方法的流程圖。
[第一範例實施例]
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件電性連接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟
1212、記憶卡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是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接介面單元102、記憶體控制電路單元104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接介面單元102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面
(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、序列先進附件(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具有實體抹除單元410(0)~410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,例如本發明的範例實施例中,每一個實體抹除單元包含258個實體程式化單元,而其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。
然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組,以下稱MLC NAND型快閃記憶體模組),然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中
可儲存1個位元資料的快閃記憶體模組)、三階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
在本範例實施例中,MLC NAND型快閃記憶體模組的實體抹除單元具有多個實體程式化單元,而此些實體程式化單元,由於一個記憶胞中可儲存2個位元資料,因此還包括下實體程式化單元(Lower programming unit)以及上實體程式化單元(Higher programming unit)。而一般使用MLC NAND型快閃記憶體模組儲存資料時,會同時使用多層記憶胞模式來程式化下實體程式化單元的其中之一與上實體程式化單元的其中之一以將資料寫入記憶胞中。
值得一提的是,上述之多層記憶胞模式為第一程式化模式(First programming mode)的一種模式。另外,在本發明中還有第二程式化模式(Second programming mode),此模式可包含至少下列三種模式或為至少其中之任一。其中一種模式為單層記憶胞模式(SLC mode),在此模式中,一個記憶胞只儲存有一個位元的資料。另一種模式為下實體程式化模式(lower physical programming unit programming mode),在此模式中,只有下實體程式化單元會被程式化(a mode that only a lower programming unit is being programmed),而此下實體程式化單元之上實體程式化單元可不對其程式化。另一種模式為混合程式化模式(mixture programming
mode),在此模式中,真實的有效資料會被程式化於下實體程式化單元中,而同時虛擬資料會被程式化至對應程式化真實資料的下實體程式化單元的上實體程式化單元中。
具體來說,可複寫式非揮發性記憶體模組106中的記憶胞是以臨界電壓的改變來儲存多位元(bits)。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,因而改變了記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為”把資料寫入至記憶胞”或”程式化記憶胞”。隨著臨界電壓的改變,記憶胞陣列的每一記憶胞具有多個儲存狀態。並且透過讀取電壓可以判斷記憶胞是屬於哪一個儲存狀態,藉此取得記憶胞所儲存的位元。以本範例實施例中的MLC NAND型快閃記憶體模組為例,當使用第一程式化模式或是混合程式化模式時,隨著不同的臨界電壓,每一記憶胞具有4種儲存狀態,並且此些儲存狀態分別地代表"11"、"10"、"00"與"01"等位元。因此,在此範例實施例中,每一記憶胞的儲存的資料位元數為2。另外,以本範例實施例中的MLC NAND型快閃記憶體模組為例,當使用第二程式化模式的單層記憶胞模式時,隨著不同的臨界電壓,每一記憶胞具有2種儲存狀態,並且此些儲存狀態分別地代表"0"與"1"位元。因此,在此範例實施例中,每一記憶胞儲存的資料位元數為1。也就是說,當使用第二程式化模式或是混合程式化模式來程式化資料時,由於每一記憶胞所需要程式化的臨界電壓較高,或是所儲存
的有效資料位元數目較多,在使用上述的第二程式化模式的單層記憶胞模式程式化資料時,所需要程式化的次數會小於當使用第二程式化模式的混合程式化模式或是第一程式化模式進行程式化資料時,所需要的程式化的次數。
圖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是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準、UHS-II介面標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是電性連接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制電路單元104還包括緩衝記憶體208、電源管理電路210與錯誤檢查與校正電路212。
緩衝記憶體208是電性連接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路210是電性連接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路212是電性連接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對
應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
請參照圖6,記憶體控制電路單元104(或記憶體管理電路202)會將實體抹除單元410(0)~410-(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以替換資料區502的實體抹除單元。也就是說,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路202會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的
製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區508中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區508中仍存有正常之實體抹除單元並且資料區502的實體抹除單元損壞時,記憶體管理電路202會從取代區508中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區502、閒置區504、系統區506與取代區508之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區502、閒置區504、系統區506與取代區508的分組關係會動態地變動。例如,當閒置區504中的實體抹除單元損壞而被取代區508的實體抹除單元取代時,則原本取代區508的實體抹除單元會被關聯至閒置區504。
請參照圖7,記憶體控制電路單元104(或記憶體管理電路202)會配置邏輯單元LBA(0)~LBA(H)以映射資料區502的實體抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統100欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元來寫入資料,以輪替資料區502的實體抹除單元。在本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。
為了識別每個邏輯單元的資料被儲存在那個實體抹除單元,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統1000欲在邏輯子單元中存取資料時,記憶體控制電路單元104(或記憶體管理電路202)會確認此邏輯子單元所屬的邏輯單元,並且對可複寫式非揮發性記憶體模組106下達對應的指令序列以在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會在可複寫式非揮發性記憶體模組106中儲存邏輯轉實體位址映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體控制電路單元104(或記憶體管理電路202)會將邏輯轉實體位址映射表載入至緩衝記憶體208來維護。
值得一提的是,由於緩衝記憶體208的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯轉實體位址映射表。特別是,當記憶體控制電路單元104(或記憶體管理電路202)欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯轉實體位址映射表會被載入至緩衝記憶體208來被更新。
如上所述,在本範例實施例中,記憶體儲存裝置100的可複寫式非揮發性記憶體模組106是以實體程式化單元為基礎來
進行管理,因此,在執行寫入指令時,不管目前資料是要寫入至那個邏輯單元的邏輯子單元,記憶體控制電路單元104(或記憶體管理電路202)皆會以一個實體程式化單元接續一個實體程式化單元的方式來寫入資料。具體來說,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個空的實體抹除單元作為目前使用之實體抹除單元來寫入資料。並且,當此目前使用之實體抹除單元已被寫滿時,記憶體控制電路單元104(或記憶體管理電路202)會再從閒置區504中提取另一個空的實體抹除單元作為目前使用之實體抹除單元,以繼續寫入對應來自於主機系統1000之寫入指令的資料。特別是,為了避免閒置區504的實體抹除單元被耗盡,當記憶體控制電路單元104(或記憶體管理電路202)欲從閒置區504中提取實體抹除單元且閒置區504的實體抹除單元的數目下降到所設定之垃圾回收門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會先執行資料合併程序,來使資料區502的至少一個實體抹除單元中的資料成為無效資料,並且將資料區502中所儲存之資料皆為無效資料之實體抹除單元關聯回閒置區504,以致於閒置區504的實體抹除單元的數目大於所設定之垃圾回收門檻值。例如,在執行資料合併程序時,記憶體控制電路單元104(或記憶體管理電路202)至少需使用一個空的實體抹除單元,因此,垃圾回收門檻值至少會被設定為大於1的數值。
如上所述,在記憶體儲存裝置100的錯誤檢查與校正電路212會被配置來驗證可複寫式非揮發性記憶體模組106中所儲
存的資料是否正確。然而,在執行錯誤校正程序時,無論是編碼或解碼步驟,錯誤檢查與校正電路212都是需要清楚知道所要保護的資料長度為何,如此才能計算出正確的特徵碼,以檢查出正確的錯誤位置。在本範例實施例中,當記憶體控制電路單元104(或記憶體管理電路202)接收到資料時,記憶體控制電路單元104(或記憶體管理電路202)會先將資料分割為多個碼框(frame),之後錯誤檢查與校正電路212再產生各碼框對應的錯誤校正碼,以將這些碼框與其各自所對應的錯誤校正碼分別編碼形成為錯誤檢查與校正框。在此,錯誤檢查與校正框的大小是根據傳輸單位的大小來分割,且此傳輸單位的大小是依據可複寫式非揮發性記憶體模組106的規格書來決定。也就是說,每個傳輸單位須保護(protect)多少個位元(bit)。例如,傳輸單位為512 bytes,保護12個位元,記憶體控制電路單元104(或記憶體管理電路202)會將資料切割為每單位為512 bytes。而錯誤檢查與校正電路212則會針對每512 bytes的資料進行錯誤校正編碼,故每個錯誤檢查與校正框的大小就是512 bytes。但必須了解的是,本發明不限於此,在另一範例實施例中,錯誤檢查與校正框的大小亦可以是1K bytes或2K bytes等等。值得一提的是,每個實體程式化單元的大小會至少大於一個錯誤檢查與校正框的大小,以使儲存在實體程式化單元的資料,以錯誤檢查與校正框的大小為單位,可以受到錯誤檢查與校正電路212的保護。
例如,在本範例實施例中,錯誤檢查與校正電路212的
最大保護能力,為12個位元,故當錯誤檢查與校正框所發生的錯誤位元數目大於12(例如,13)時,錯誤檢查與校正電路212將無法校正於錯誤檢查與校正框內的錯誤資料,導致儲存於此錯誤檢查與校正框的資料不能正常讀取,成為不能恢復的損毀資料。當此狀況發生時,也代表具有此損毀資料的實體抹除單元已經過於老化而不堪使用,基此,記憶體控制電路單元104(或記憶體管理電路202)會將錯誤位元數目超過錯誤檢查與校正電路212最大保護能力的實體程式化單元標記成不良實體程式化單元,並記錄於一個不良實體程式化單元分佈表中。
圖8是根據一範例實施例所繪示之錯誤檢查與校正框的範例示意圖。
請參照圖8,在本範例實施例中,儲存於資料區502中的第一實體抹除單元410(0)中的第一實體程式化單元802的大小為2K bytes(2048 bytes),可儲存4個錯誤檢查與校正框大小的資料,分別為第一錯誤檢查與校正框801、第二錯誤檢查與校正框803、第三錯誤檢查與校正框805、第四錯誤檢查與校正框807,其中每個錯誤檢查與校正框的大小為512 bytes。
例如,在操作可複寫式非揮發性記憶體模組106的過程時,記憶體控制電路單元104(或記憶體管理電路202),會持續記錄每個錯誤檢查與校正框所發生的錯誤位元數目。舉例來說,假設第一實體程式化單元802的第一錯誤檢查與校正框801的錯誤位元數目為3,第二錯誤檢查與校正框803的錯誤位元數目為
4、第三錯誤檢查與校正框805的錯誤位元數目為5、第四錯誤檢查與校正框807的錯誤位元數目為11;並且第二實體程式化單元804的第一錯誤檢查與校正框809的錯誤位元數目為3,第二錯誤檢查與校正框811的錯誤位元數目為4、第三錯誤檢查與校正框813的錯誤位元數目為5、第四錯誤檢查與校正框815的錯誤位元數目為6。依此類推,在操作可複寫式非揮發性記憶體模組106的過程時也取得並記錄可複寫式非揮發性記憶體模組106的每個實體抹除單元的實體程式化單元的每個錯誤檢查與校正框的錯誤位元數目。
在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會判斷第一實體抹除單元410(0)的每個實體程式化單元的錯誤位元數目是否超過系統預先定義的錯誤位元數目門檻值。例如,在本範例實施例中,系統預先定義的錯誤位元數目門檻值為10。值得一提的是,此系統預先定義的錯誤位元數目門檻值,可以在出廠時定義,或是出廠後經由軟體或是韌體設定,此錯誤位元數目門檻值不會超過錯誤檢查與校正電路212的最大保護能力。
在上述的例子中,第一實體抹除單元410(0)的第一實體程式化單元的第四錯誤檢查與校正框807的錯誤位元數目為11,超過錯誤位元數目門檻值10,此時記憶體控制電路單元104(或記憶體管理電路202)會記錄第一實體抹除單元410(0)於一個第二程式化模式實體抹除單元分佈表中。上述的第二程式化模式實體
抹除單元分佈表是用以記錄在可複寫式非揮發性記憶體模組106的實體抹除單元中,哪些是使用單層記憶胞模式操作的實體抹除單元。例如,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會將此第二程式化模式實體抹除單元分佈表儲存在緩衝記憶體208中,並在可複寫式非揮發性記憶體模組使用的過程中,持續記錄每個實體抹除單元的每個實體抹除程式化單元的錯誤位元數目,並更新第二程式化模式實體抹除單元分佈表。
除了記錄於第二程式化模式實體抹除單元分佈表的方式,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可於對應此實體抹除單元的系統資料中標記此些錯誤位元數目超過錯誤位元數目門檻值的實體抹除單元為第二程式化模式實體抹除單元。舉例來說,此系統資料可為對應此實體抹除單元的中介資料(Meta data),或是其他類型的系統資料,本發明不限於此。值得一提的是,記憶體控制電路單元104(或記憶體管理電路202)可同時或是分別使用上述兩種方式來記錄上述這些錯誤位元數目超過錯誤位元數目門檻值的實體抹除單元。
另外,在本範例實施例中,一旦第一實體抹除單元410(0)中任一錯誤檢查與校正框的錯誤位元數目超過錯誤位元數目門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會識別第一實體抹除單元410(0)為不良的實體抹除單元,並且記錄於第二程式化模式實體抹除單元分佈表或是標記為第二程式化模式實體抹除單元。值得一提的是,本發明不限於此,例如,在另一範
例實施例中,記憶體控制電路單元104(或記憶體管理電路202)亦可在一個實體抹除單元中的至少兩個錯誤檢查與校正框的錯誤位元數目超過錯誤位元數目門檻值時,才識別此實體抹除單元為不良的實體抹除單元。或者,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)可在一個實體抹除單元中的錯誤檢查與校正框的錯誤位元數目在不超過錯誤檢查與校正電路212的最大保護能力的狀況下,計算一個實體抹除單元的錯誤檢查與校正框的錯誤位元數目的平均值,並且依據此平均值是否超過錯誤位元數目門檻值,來辨識一個實體抹除單元是否為不良的實體抹除單元。
例如,在一範例實施例中,當記憶體控制電路單元104(或記憶體管理電路202)要對可複寫式非揮發性記憶體模組106的實體抹除單元進行抹除操作時,會先檢查要進行抹除操作的實體抹除單元是否被記錄在第二程式化模式實體抹除單元分佈表或是被標記為第二程式化模式實體抹除單元。倘若要進行抹除操作的實體抹除單元被記錄在第二程式化模式實體抹除單元分佈表或是被標記為第二程式化模式實體抹除單元時,記憶體控制電路單元104(或記憶體管理電路202)會對此實體抹除單元使用單層記憶胞模式抹除指令來進行抹除操作。倘若要進行抹除操作的實體抹除單元非被記錄在第二程式化模式實體抹除單元分佈表或是非被標記為第二程式化模式實體抹除單元時,記憶體控制電路單元104(或記憶體管理電路202)會對此實體抹除單元使用多層記憶
胞模式抹除指令來進行抹除操作。
例如,當記憶體控制電路單元104(或記憶體管理電路202)要對第一實體抹除單元410(0)進行抹除操作時,會先檢查第二程式化模式實體抹除單元分佈表或是檢查第一實體抹除單元410(0)是否被標記為第二程式化模式實體抹除單元,由此決定使用單層記憶胞模式抹除指令或多層記憶胞模式抹除指令來對第一實體抹除單元410(0)進行抹除操作。例如,如上所述,倘若第一實體抹除單元410(0)中任一錯誤檢查與校正框的錯誤位元數目超過錯誤位元數目門檻值時,第一實體抹除單元410(0)會被記錄於第二程式化模式實體抹除單元分佈表或是標記為第二程式化模式實體抹除單元。在此情況下,當需對第一實體抹除單元410(0)執行資料合併程序時,記憶體控制電路單元104(或記憶體管理電路202)會在第一實體抹除單元410(0)中的資料已變成無效資料後,使用單層記憶胞模式抹除指令來對第一實體抹除單元410(0)進行抹除操作。
值得一提的是,在一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)亦可在記錄第一實體抹除單元410(0)於第二程式化模式實體抹除單元分佈表時,就先將第一實體抹除單元410(0)所儲存的有效資料複製到第二實體抹除單元410(F),將原來映射第一實體抹除單元410(0)的邏輯單元重新映射到第二實體抹除單元410(F),並將儲存有效資料的第二實體抹除單元410(F)關聯到資料區502。
詳細來說,在此另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會在記錄第一實體抹除單元410(0)於第二程式化模式實體抹除單元分佈表時,就會先檢查第一實體抹除單元410(0)上所儲存的資料是否為有效資料,倘若第一實體抹除單元410(0)上鎖儲存的資料為有效資料,記憶體控制電路單元104(或記憶體管理電路202)會先從閒置區504中,提取一個第二實體抹除單元410(F),並將第一實體抹除單元410(0)中的有效資料複製到第二實體抹除單元410(F)。值得一提的是,記憶體控制電路單元104(或記憶體管理電路202)所提取的第二實體抹除單元410(F)的任一實體抹除程式化單元的任一錯誤檢查與校正框的錯誤位元數目都不大於錯誤位元數目門檻值。而在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會先從閒置區504中提取不被記錄在第二程式化模式實體抹除單元分佈表中或是不被標記為第二程式化模式實體抹除單元的實體抹除單元來儲存有效資料,當閒置區只剩下被記錄在第二程式化模式實體抹除單元分佈表中或是被標記為第二程式化模式實體抹除單元的實體抹除單元時,才提取這些第二程式化模式實體抹除單元來儲存有效資料。
而在複製第一實體抹除單元410(0)的有效資料到第二實體抹除單元410(F)之後,記憶體控制電路單元104(或記憶體管理電路202)會將原來映射第一實體抹除單元410(0)的邏輯單元重新映射到第二實體抹除單元410(F),並將儲存有效資料的第二實體
抹除單元410(F)關聯到資料區502。之後,記憶體控制電路單元104(或記憶體管理電路202)會在系統預定的時機,例如,在系統閒暇時,或是直接接著對第一實體抹除單元410(0)進行單層記憶胞模式抹除操作,再將已經完成抹除操作的第一實體抹除單元410(0)關聯到閒置區504。
在本範例實施例中,當記憶體控制電路單元104(或記憶體管理電路202)使用單層記憶胞模式抹除指令來對一個實體抹除單元進行抹除操作之後,記憶體控制電路單元104(或記憶體管理電路202)便會以單層記憶胞模式來操作此實體抹除單元。舉例來說,上述的第一實體抹除單元410(0)已經使用單層記憶胞模式抹除指令對第一實體抹除單元410(0)完成抹除操作之後,若是記憶體控制電路單元104(或記憶體管理電路202)要提取第一實體抹除單元410(0)來寫入資料時,記憶體控制電路單元104(或記憶體管理電路202)只會使用第一實體抹除單元410(0)的下實體程式化單元來儲存欲寫入的資料。換句話說,假設上述的第二實體抹除單元410(F)在寫入資料之前,是使用多層記憶胞模式抹除指令來進行抹除操作,當要寫入資料到第二實體抹除單元410(F)時,便會同時儲存資料到第二實體抹除單元410(F)的下實體程式化單元以及上實體程式化單元中。
在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)透過使用單層記憶胞模式抹除指令來對第一實體抹除單元410(0)進行抹除操作,來設定第一實體抹除單元410(0)的
寫入模式處於單層記憶胞模式。而記憶體控制電路單元104(或記憶體管理電路202)便會在之後操作為單層記憶胞模式的第一實體抹除單元410(0)時,使用單層記憶胞模式的指令來操作第一實體抹除單元410(0)。值得一提的是,在本範例實施例中,設定為單層記憶胞模式的實體抹除單元,便會一直處於單層記憶胞模式。此外,被記錄於第二程式化模式實體抹除單元分佈表中的實體抹除單元,或是被標記為第二程式化模式實體抹除單元的實體抹除單元也會一直被記錄於第二程式化模式實體抹除單元分佈表中或是一直被標記為第二程式化模式實體抹除單元。而當此些處於單層記憶胞模式的實體抹除單元的某個實體程式化單元的其中一個錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會標記此實體抹除單元為壞實體抹除單元,並記錄於一個壞實體抹除單元表中,同時提取閒置區的一個空白的實體抹除單元來儲存此壞實體抹除單元中的有效資料,並將原本映射到此壞實體抹除單元的邏輯單元重新映射到所提取的實體抹除單元,同時將此壞實體抹除單元自資料區502的關聯中移除。之後,記憶體控制電路單元104(或記憶體管理電路202)將不再使用此壞實體抹除單元。
圖9為根據本發明的範例實施例,所繪示之資料儲存方法的流程圖。
請參照圖9,在步驟S901中,記憶體控制電路單元104(或記憶體管理電路202)會選擇一個實體抹除單元(以下稱為第
一實體抹除單元)。接著,在步驟S903中,記憶體控制電路單元104(或記憶體管理電路202)會判斷所選擇的第一實體抹除單元之中的多個實體程式化單元的其中一個錯誤檢查與校正框的錯誤位元數目是否大於錯誤位元數目門檻值。倘若是,則接著在步驟S905中,記憶體控制電路單元104(或記憶體管理電路202)會設定在第一實體抹除單元被執行抹除操作之後,使用單層記憶胞模式來儲存資料。例如,如上所述,記憶體控制電路單元104(或記憶體管理電路202)會使用單層記憶胞模式抹除指令來對第一實體抹除單元進行抹除操作,以致於第一實體抹除單元在透過單層記憶胞模式抹除指令進行抹除操作之後,第一實體抹除單元的實體程式化單元僅可儲存1個位元的資料。
倘若第一實體抹除單元之中的多個實體程式化單元的其中一個錯誤檢查與校正框的錯誤位元數目非大於錯誤位元數目門檻值時,在步驟S907中,記憶體控制電路單元104(或記憶體管理電路202)會設定在第一實體抹除單元被執行抹除操作之後,同時使用第一實體抹除單元的上實體程式化單元以及下實體程式化單元來儲存資料。例如,如上所述,記憶體控制電路單元104(或記憶體管理電路202)會使用多層記憶胞模式抹除指令來對第一實體抹除單元進行抹除操作,以致於第一實體抹除單元透過多層記憶胞模式抹除指令來進行抹除操作之後,其上實體程式化單元以及下實體程式化單元會同時被用來儲存資料。
綜上,於本範例實施例中,本發明概念可讓錯誤位元數
目超過錯誤位元數目門檻值的不良的實體抹除單元,被設定成單層記憶胞模式而繼續使用。特別是,處於單層記憶胞模式的不良的實體抹除單元因為其記憶胞的電位範圍較廣,可讓原來會發生錯誤的記憶胞變成不會發生錯誤,而降低這些不良的實體抹除單元中的實體程式化單元所發生的錯誤位元數目,增進儲存於這些不良的實體抹除單元的資料的穩定性,同時也因為可以繼續使用錯誤位元數目超過錯誤位元數目門檻值的不良的實體抹除單元,而延長可複寫式非揮發性記憶體模組的使用壽命。
[第二範例實施例]
第二範例實施例在硬體架構上相似於第一範例實施例,而第二範例實施例與第一範例實施例不同的地方在於,第一範例實施例是基於實體抹除單元為單位對不良的實體抹除單元做處理,而第二範例實施例是基於實體程式化單元為單位,對不良的實體程式化單元做處理。以下將利用第一範例實施例的元件編號詳細說明此第二範例實施例的不同之處。
當從主機系統1000接收一筆第一資料,記憶體控制電路單元104(或記憶體管理電路202)會選擇可複寫式非揮發性記憶體模組的資料區502中還有空間的第一實體抹除單元410(0)來寫入第一資料。
如同第一範例實施例所述,記憶體控制電路單元104(或記憶體管理電路202)會記錄著第一實體抹除單元410(0)的每個程式化單元的每個錯誤檢查與校正框的錯誤位元數目。以上述圖8
的例子,第一實體抹除單元410(0)中的第一實體程式化單元802的大小為2K bytes(2048 bytes),可儲存4個錯誤檢查與校正框大小的資料,分別為第一錯誤檢查與校正框801、第二錯誤檢查與校正框803、第三錯誤檢查與校正框805、第四錯誤檢查與校正框807、每個錯誤檢查與校正框的大小為512 bytes;而第二實體程式化單元804的大小為2K bytes(2048 bytes),可儲存4個錯誤檢查與校正框大小的資料,分別為第一錯誤檢查與校正框809、第二錯誤檢查與校正框811、第三錯誤檢查與校正框813、第四錯誤檢查與校正框815、每個錯誤檢查與校正框的大小為512 bytes。舉例來說,假設第一實體程式化單元802的第一錯誤檢查與校正框801的錯誤位元數目為3,第二錯誤檢查與校正框803的錯誤位元數目為4、第三錯誤檢查與校正框805的錯誤位元數目為5、第四錯誤檢查與校正框807的錯誤位元數目為11;第二實體程式化單元804的第一錯誤檢查與校正框809的錯誤位元數目為3,第二錯誤檢查與校正框811的錯誤位元數目為4、第三錯誤檢查與校正框813的錯誤位元數目為5、第四錯誤檢查與校正框815的錯誤位元數目為6。
記憶體控制電路單元104(或記憶體管理電路202)會在寫入資料到第一實體抹除單元410(0)中的實體程式化單元之前,根據所記錄的實體程式化單元之錯誤檢查與校正框的錯誤位元數目來判斷在欲寫入的實體程式化單元之中是否其中一個錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值。如上述的例
子,系統預先定義的錯誤位元數目門檻值為10,而第一實體抹除單元410(0)的第一實體程式化單元802中第四錯誤檢查與校正框807的錯誤位元數目為11,大於錯誤位元數目門檻值。基此,記憶體控制電路單元104(或記憶體管理電路202)會辨識出欲寫入的第一實體程式化單元802的其中一個錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值,並且因此先將一筆虛擬資料(Dummy data)寫入並填滿第一實體程式化單元802。接著記憶體控制電路單元104(或記憶體管理電路202)會判斷下一個實體程式化單元(即,第二實體程式化單元804)中是否有任何錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值。如上述的例子,第二實體程式化單元804的每個錯誤檢查與校正框的錯誤位元數目都不大於錯誤位元數目門檻值,因此,記憶體控制電路單元104(或記憶體管理電路202)會將第一資料寫入第二實體程式化單元804中。
值得一提的是,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)亦可不將虛擬資料寫入其中一個錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值的第一實體程式化單元802,而會先將此其中一個錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值的第一實體程式化單元802先標記為不良實體程式化單元或是先記錄第一實體程式化單元802於一個不良實體程式化單元表中。之後,記憶體控制電路單元104(或記憶體管理電路202)判斷後續的實體程式化單元中
是否有任一個錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值。依序直到找到所有錯誤檢查與校正框的錯誤位元數目皆非大於錯誤位元數目門檻值的實體程式化單元時,才寫入第一資料於此所有錯誤檢查與校正框的錯誤位元數目皆非大於錯誤位元數目門檻值的實體程式化單元。
值得一提的是,在本範例實施例中,是記錄每一實體程式化單元的錯誤檢查與校正框的錯誤位元數目並據此決定是否將資料寫入至所選擇的實體程式化單元中。然而,本發明不限於此,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更可將存有錯誤位元數目大於錯誤位元數目門檻之錯誤檢查與校正框的實體程式化單元標記為不良實體程式化單元或記錄於不良實體程式化單元表中。如此一來,之後,在執行寫入指令時,記憶體控制電路單元104(或記憶體管理電路202)可根據不良實體程式化單元的標記或不良實體程式化單元表,直接在不良實體程式化單元填入虛擬資料,如此一來,可以減少需要寫入資料的時間,增進寫入效率。
而在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更可以在系統閒暇時,例如,一段預定時間未接收到任何指令時,檢查在每個實體程式化單元中是否有任一個錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值(以下稱不良的實體程式化單元)。並且,在辨識到有不良的實體程式化單元時,除了如上所述,做標記或是記錄不良的實體程式化單
元的步驟之外,記憶體控制電路單元104(或記憶體管理電路202)還檢查此不良的實體程式化單元之中,是否儲存有有效資料,其中倘若儲存著有效資料,記憶體控制電路單元104(或記憶體管理電路202)將有效資料複製到非不良的實體程式化單元中,並且將原本映射到此不良的實體程式化單元的邏輯子單元重新映射到新儲存著有效資料的非不良的實體程式化單元中,而在之後此不良的實體程式化單元所屬的實體抹除單元進行抹除操作之後,於寫入有效資料的同時,可根據標記或是壞實體程式單元表寫入虛擬資料於不良的實體程式化單元中。
圖10為根據本發明的範例實施例,所繪示之資料儲存方法的流程圖。
請參照圖10,在步驟S1001中,記憶體控制電路單元104(或記憶體管理電路202)會從主機系統1000中接收一筆第一資料,接著在步驟S1003中,記憶體控制電路單元104(或記憶體管理電路202)會選擇一個實體抹除單元(以下稱為第一實體抹除單元)的一個實體程式化單元(以下稱為第一實體程式化單元)作為目標實體程式化單元,接著在步驟S1005中,記憶體控制電路單元104(或記憶體管理電路202)會檢查在此目標實體程式化單元中是否其中一個錯誤檢查與校正框的錯誤位元數目大於錯誤位元數目門檻值。倘若是,則接著在步驟S1007中,記憶體控制電路單元104(或記憶體管理電路202)會寫入並填滿一筆虛擬資料於此目標實體程式化單元。
在寫入並填滿一筆虛擬資料於此目標實體程式化單元之後,接著回到步驟S1003中,記憶體控制電路單元104(或記憶體管理電路202)會繼續選擇第一實體抹除單元的一個實體程式化單元作為目標實體程式化單元,值得注意的是,此時所選擇的目標實體程式化單元為配置於剛剛儲存虛擬資料的實體程式化單元之後的一個實體程式化單元,接著再執行步驟S1005。
若是在步驟S1005中判斷在目標實體程式化單元中所有錯誤檢查與校正框的錯誤位元數目皆非大於錯誤位元數目門檻值時,接著在步驟S1009中,記憶體控制電路單元104(或記憶體管理電路202)會寫入第一資料於此目標實體程式化單元中。
綜上,根據第二範例實施例的描述,可得知本發明還可以使系統基於實體程式化單元,來對不良的實體程式化單元做處理,避免將資料寫入不良的實體程式化單元,造成資料損壞,也可繼續使用含有不良的實體程式化單元的不良實體抹除單元,不需使用如第一範例實施例所述,將此不良實體抹除單元設定成第二程式化模式實體抹除單元來繼續操作。如此一來,相較於第一範例實施例,第二範例實施例還可以繼續使用相較於第二程式化模式實體抹除單元,有著較大儲存空間的非第二程式化模式實體抹除單元,同時也能達到延長可複寫式非揮發性記憶體模組的使用壽命。
值得一提的是,於另一範例實施例中,第一範例實施例和第二範例實施例的方法也可以並存。也就是說,記憶體控制電
路單元104(或記憶體管理電路202)可以在寫入第一資料於已經設定成單層記憶胞模式的實體抹除單元之前,相似於第二範例實施例的方法,檢查此第二程式化模式實體抹除單元中的實體程式化單元是否有不良的實體程式化單元,寫入虛擬資料到不良的實體程式化單元,再將第一資料寫入非不良的實體程式化單元中,或是如上所述,可先不寫入虛擬資料於不良的實體程式化單元中,而先標記或是記錄此不良的實體程式化單元,再寫入第一資料於非不良的實體程式化單元。而在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)更可以在此第二程式化模式實體抹除單元含有不良的實體程式化單元的數目大於一不良實體程式化單元門檻值時,再將此實體抹除單元標記為壞實體抹除單元。如此一來,可繼續延長第二程式化模式實體抹除單元的使用壽命。
而在本發明概念中,錯誤檢查與校正框在本發明的範例實施例中,只是一個用來設定檢查每個實體程式化單元的錯誤位元數目的預設區域的大小的例子,本發明不限於此。
綜上所述,本發明可基於實體抹除單元為單位或是基於實體程式化單元為單位,來對不良的實體抹除單元或是不良的實體程式化單元做處理,藉此可以增進資料儲存的穩定性,同時藉由繼續使用不良的實體抹除單元或是不良的實體程式化單元,以延長可複寫式非揮發性記憶體模組的使用壽命。
雖然本發明已以實施例揭露如上,然其並非用以限定本
發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S901、S903、S905、S907‧‧‧資料儲存方法的步驟
Claims (36)
- 一種資料儲存方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,且每一該些實體抹除單元的該些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元,該資料儲存方法包括:選擇該些實體抹除單元之中的一第一實體抹除單元,其中該第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域;使用一第一程式化模式來儲存一第一資料,其中該第一資料被程式化至該第一實體抹除單元的該些下實體程式化單元的至少其中之一與該些上實體程式化單元的至少其中之一;記錄該第一實體抹除單元的每一該些預設區域的一錯誤位元數目;判斷是否該第一實體抹除單元的該些實體程式化單元的所述預設區域之中的至少其中一個預設區域的該錯誤位元數目大於一錯誤位元數目門檻值;以及倘若該第一實體抹除單元的該些實體程式化單元的該些預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,在將該第一實體抹除單元中的該第一資料抹除之後,使用一第二程式化模式來儲存一第二資料,其中使用該第一程式化模式對該可複寫式非揮發性記憶體模 組進行程式化操作時所需要的程式化次數大於使用該第二程式化模式對該可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數。
- 如申請專利範圍第1項所述的資料儲存方法,其中該第二程式化模式包括:一單層記憶胞模式以及一下實體程式化模式至少其中之一,其中在該單層記憶胞模式中,一個記憶胞只儲存有一個位元的資料,其中在該下實體程式化模式中,只有該些下實體程式化單元會被程式化。
- 如申請專利範圍第1項所述的資料儲存方法,更包括:在將該第一實體抹除單元中的該第一資料抹除之前,判斷該第一資料是否為有效的資料;以及倘若該第一資料是有效的資料時,將該第一資料複製至該些實體抹除單元之中的一第二實體抹除單元中,並將原映射該第一實體抹除單元的一邏輯單元重新映射至該第二實體抹除單元,其中該第二實體抹除單元的任一預設區域的錯誤位元數目非大於該錯誤位元數目門檻值。
- 如申請專利範圍第1項所述的資料儲存方法,更包括:倘若該第一實體抹除單元的該些實體程式化單元的所述預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,記錄該第一實體抹除單元於一第二程式化模式實體抹除單元分佈表中。
- 如申請專利範圍第1項所述的資料儲存方法,更包括:倘若該第一實體抹除單元的該些實體程式化單元的所述預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,標記該第一實體抹除單元為一第二程式化模式實體抹除單元。
- 如申請專利範圍第1項所述的資料儲存方法,更包括在上述使用該單層記憶胞模式來儲存該第二資料的步驟之前,以一單層記憶胞模式抹除指令對該第一實體抹除單元執行一抹除操作。
- 如申請專利範圍第1項所述的資料儲存方法,更包括:判斷該第一實體抹除單元是否已被記錄在該第二程式化模式實體抹除單元分佈表中;倘若該第一實體抹除單元已被記錄在該第二程式化模式實體抹除單元分佈表中時,使用該單層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作;以及倘若該第一實體抹除單元非被記錄在該第二程式化模式實體抹除單元分佈表中時,使用一多層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作。
- 如申請專利範圍第1項所述的資料儲存方法,更包括:判斷該第一實體抹除單元是否已被標記為該第二程式化模式實體抹除單元;倘若該第一實體抹除單元已被標記為該第二程式化模式實體抹除單元時,使用該單層記憶胞模式抹除指令對該第一實體抹除 單元執行該抹除操作;以及倘若該第一實體抹除單元非被標記為該第二程式化模式實體抹除單元時,使用一多層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作。
- 一種資料儲存方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,且每一該些實體抹除單元的該些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元,該資料儲存方法包括:接收一第一資料;選擇該些實體抹除單元之中的一第一實體抹除單元,其中該第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域;判斷是否該第一實體抹除單元的該些實體程式化單元之中的一第一實體程式化單元的預設區域之中的至少其中一個預設區域的一錯誤位元數目大於一錯誤位元數目門檻值;以及倘若該第一實體程式化單元的預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,將該第一資料程式化至該第一實體抹除單元的該些實體程式化單元之中的一第二實體程式化單元。
- 如申請專利範圍第9項所述的資料儲存方法,更包括:倘若該第一實體程式化單元的預設區域之中的至少其中一個預設 區域的該錯誤位元數目大於該錯誤位元數目門檻值時,將一虛擬資料程式化至該第一實體程式化單元。
- 如申請專利範圍第9項所述的資料儲存方法,更包括:該第二實體程式化單元不同於該第一實體程式化單元且該第二實體程式化單元每一預設區域的錯誤位元數目皆非大於該錯誤位元數目門檻值。
- 如申請專利範圍第9項所述的資料儲存方法,其中每一該些實體程式化單元可儲存至少一個錯誤檢查與校正框,其中所述預設區域的大小為該錯誤檢查與校正框的大小。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,且每一該些實體抹除單元的該些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以選擇該些實體抹除單元之中的一第一實體抹除單元,其中該第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域,其中該記憶體管理電路更用以使用一第一程式化模式來儲存 一第一資料,其中該第一資料被程式化至該第一實體抹除單元的該些下實體程式化單元的至少其中之一與該些上實體程式化單元的至少其中之一,其中該記憶體管理電路更用以記錄該第一實體抹除單元的每一該些預設區域的一錯誤位元數目,其中該記憶體管理電路更用以判斷是否該第一實體抹除單元的該些實體程式化單元的所述預設區域之中的至少其中一個預設區域的該錯誤位元數目大於一錯誤位元數目門檻值,其中倘若該第一實體抹除單元的該些實體程式化單元的該些預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體管理電路在將該第一實體抹除單元中的該第一資料抹除之後,使用一第二程式化模式來儲存一第二資料,其中使用該第一程式化模式對該可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數大於使用該第二程式化模式對該可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數。
- 如申請專利範圍第13項所述的記憶體控制電路單元,其中該第二程式化模式包括:一單層記憶胞模式以及一下實體程式化模式至少其中之一,其中在該單層記憶胞模式中,一個記憶胞只儲存有一個位元的資料,其中在該下實體程式化模式中,只有該些下實體程式化 單元會被程式化。
- 如申請專利範圍第13項所述的記憶體控制電路單元,更包括:在將該第一實體抹除單元中的該第一資料抹除之前,該記憶體管理電路更用以判斷該第一資料是否為有效的資料,其中倘若該第一資料是有效的資料時,該記憶體管理電路便將該第一資料複製至該些實體抹除單元之中的一第二實體抹除單元中,並將原映射該第一實體抹除單元的一邏輯單元重新映射至該第二實體抹除單元,其中該第二實體抹除單元的任一預設區域的錯誤位元數目非大於該錯誤位元數目門檻值。
- 如申請專利範圍第13項所述的記憶體控制電路單元,更包括:倘若該第一實體抹除單元的該些實體程式化單元的所述預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體管理電路更用以記錄該第一實體抹除單元於一第二程式化模式實體抹除單元分佈表中。
- 如申請專利範圍第13項所述的記憶體控制電路單元,更包括:倘若該第一實體抹除單元的該些實體程式化單元的所述預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體管理電路更用以標記該第一實體抹 除單元為一第二程式化模式實體抹除單元。
- 如申請專利範圍第13項所述的記憶體控制電路單元,更包括在上述使用該第二程式化模式來儲存該第二資料的運作之前,該記憶體管理電路更用以一單層記憶胞模式抹除指令對該第一實體抹除單元執行一抹除操作。
- 如申請專利範圍第18項所述的記憶體控制電路單元,更包括:該記憶體管理電路更用以判斷該第一實體抹除單元是否已被記錄在該第二程式化模式實體抹除單元分佈表中,其中倘若該第一實體抹除單元已被記錄在該第二程式化模式實體抹除單元分佈表中時,該記憶體管理電路使用該單層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作,其中倘若該第一實體抹除單元非被記錄在該第二程式化模式實體抹除單元分佈表中時,該記憶體管理電路使用一多層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作。
- 如申請專利範圍第18項所述的記憶體控制電路單元,更包括:該記憶體管理電路更用以判斷該第一實體抹除單元是否已被標記為該第二程式化模式實體抹除單元,其中倘若該第一實體抹除單元已被標記為該第二程式化模式實體抹除單元時,該記憶體管理電路使用該單層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作, 其中倘若該第一實體抹除單元非被標記為該第二程式化模式實體抹除單元時,該記憶體管理電路使用該多層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,且每一該些實體抹除單元的該些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以從該主機系統接收一第一資料,其中該記憶體管理電路更用以選擇該些實體抹除單元之中的一第一實體抹除單元,其中該第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域,其中該記憶體管理電路更用以記錄該第一實體抹除單元的每一該些預設區域的一錯誤位元數目,其中該記憶體管理電路更用以判斷是否該第一實體抹除單元的該些實體程式化單元之中的一第一實體程式化單元的預設區域之中的至少其中一個預設區域的該錯誤位元數目大於一錯誤位元數目門檻值,其中 倘若該第一實體程式化單元的預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體管理電路將該第一資料程式化至該第一實體抹除單元的該些實體程式化單元之中的一第二實體程式化單元。
- 如申請專利範圍第21項所述的記憶體控制電路單元,更包括:倘若該第一實體程式化單元的預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體管理電路將一虛擬資料程式化至該第一實體程式化單元。
- 如申請專利範圍第21項所述的記憶體控制電路單元,更包括:該第二實體程式化單元不同於該第一實體程式化單元且該第二實體程式化單元每一預設區域的錯誤位元數目皆非大於該錯誤位元數目門檻值。
- 如申請專利範圍第21項所述的記憶體控制電路單元,其中每一該些實體程式化單元可儲存至少一個錯誤檢查與校正框,其中所述預設區域的大小為該錯誤檢查與校正框的大小。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,且每一該些實體抹除單元的該些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,並且用以選擇該些實體抹除單元之中的一第一實體抹除單元,其中該第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域,其中該記憶體控制電路單元更用以使用一第一程式化模式來儲存一第一資料,其中該第一資料被程式化至該第一實體抹除單元的該些下實體程式化單元的至少其中之一與該些上實體程式化單元的至少其中之一,其中該記憶體控制電路單元更用以記錄該第一實體抹除單元的每一該些預設區域的一錯誤位元數目,其中該記憶體控制電路單元更用以判斷是否該第一實體抹除單元的該些實體程式化單元的所述預設區域之中的至少其中一個預設區域的該錯誤位元數目大於一錯誤位元數目門檻值,其中倘若該第一實體抹除單元的該些實體程式化單元的該些預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體控制電路單元在將該第一實體抹除單元中的該第一資料抹除之後,使用一第二程式化模式來儲存一第二資料,其中使用該第一程式化模式對該可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數大於使用該第二程式化模式對該可複寫式非揮發性記憶體模組進行程式化操作時所需要的程式化次數。
- 如申請專利範圍第25項所述的記憶體儲存裝置,其中該第二程式化模式包括:一單層記憶胞模式以及一下實體程式化模式至少其中之一,其中在該單層記憶胞模式中,一個記憶胞只儲存有一個位元的資料,其中在該下實體程式化模式中,只有該些下實體程式化單元會被程式化。
- 如申請專利範圍第25項所述的記憶體儲存裝置,更包括:在將該第一實體抹除單元中的該第一資料抹除之前,該記憶體控制電路單元更用以判斷該第一資料是否為有效的資料,其中倘若該第一資料是有效的資料時,該記憶體控制電路單元便將該第一資料複製至該些實體抹除單元之中的一第二實體抹除單元中,並將原映射該第一實體抹除單元的一邏輯單元重新映射至該第二實體抹除單元,其中該第二實體抹除單元的任一預設區域的錯誤位元數目非大於該錯誤位元數目門檻值。
- 如申請專利範圍第25項所述的記憶體儲存裝置,更包括:倘若該第一實體抹除單元的該些實體程式化單元的所述預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體控制電路單元更用以記錄該第一實體抹除單元於一第二程式化模式實體抹除單元分佈表中。
- 如申請專利範圍第25項所述的記憶體儲存裝置,更包括:倘若該第一實體抹除單元的該些實體程式化單元的所述預設 區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體控制電路單元更用以標記該第一實體抹除單元為一第二程式化模式實體抹除單元。
- 如申請專利範圍第25項所述的記憶體儲存裝置,更包括在上述使用該第二程式化模式來儲存該第二資料的運作之前,該記憶體控制電路單元更用以一單層記憶胞模式抹除指令對該第一實體抹除單元執行一抹除操作。
- 如申請專利範圍第30項所述的記憶體儲存裝置,更包括:該記憶體控制電路單元更用以判斷該第一實體抹除單元是否已被記錄在該第二程式化模式實體抹除單元分佈表中,其中倘若該第一實體抹除單元已被記錄在該第二程式化模式實體抹除單元分佈表中時,該記憶體控制電路單元使用該單層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作,其中倘若該第一實體抹除單元非被記錄在該第二程式化模式實體抹除單元分佈表中時,該記憶體控制電路單元使用一多層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作。
- 如申請專利範圍第30項所述的記憶體儲存裝置,更包括:該記憶體控制電路單元更用以判斷該第一實體抹除單元是否已被標記為該第二程式化模式實體抹除單元,其中倘若該第一實體抹除單元已被標記為該第二程式化模式實體抹除單元時,該記憶體控制電路單元使用該單層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作, 其中倘若該第一實體抹除單元非被標記為該第二程式化模式實體抹除單元時,該記憶體控制電路單元使用該多層記憶胞模式抹除指令對該第一實體抹除單元執行該抹除操作。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,每一該些實體抹除單元具有多個實體程式化單元,且每一該些實體抹除單元的該些實體程式化單元包括多個下實體程式化單元與多個上實體程式化單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,並且用以從該主機系統接收一第一資料,其中該記憶體控制電路單元更用以選擇該些實體抹除單元之中的一第一實體抹除單元,其中該第一實體抹除單元的每一實體程式化單元具有一個或多個預設區域,其中該記憶體控制電路單元更用以記錄該第一實體抹除單元的每一該些預設區域的一錯誤位元數目,其中該記憶體控制電路單元更用以判斷是否該第一實體抹除單元的該些實體程式化單元之中的一第一實體程式化單元的預設區域之中的至少其中一個預設區域的該錯誤位元數目大於一錯誤位元數目門檻值,其中倘若該第一實體程式化單元的預設區域之中的至少其中一個 預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體控制電路單元將該第一資料程式化至該第一實體抹除單元的該些實體程式化單元之中的一第二實體程式化單元。
- 如申請專利範圍第33項所述的記憶體儲存裝置,更包括:倘若該第一實體程式化單元的預設區域之中的至少其中一個預設區域的該錯誤位元數目大於該錯誤位元數目門檻值時,該記憶體控制電路單元將一虛擬資料程式化至該第一實體程式化單元。
- 如申請專利範圍第33項所述的記憶體儲存裝置,更包括:該第二實體程式化單元不同於該第一實體程式化單元且該第二實體程式化單元每一預設區域的錯誤位元數目皆非大於該錯誤位元數目門檻值。
- 如申請專利範圍第33項所述的記憶體儲存裝置,其中每一該些實體程式化單元可儲存至少一個錯誤檢查與校正框,其中所述預設區域的大小為該錯誤檢查與校正框的大小。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103113207A TWI527037B (zh) | 2014-04-10 | 2014-04-10 | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 |
US14/297,649 US9448868B2 (en) | 2014-04-10 | 2014-06-06 | Data storing method, memory control circuit unit and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103113207A TWI527037B (zh) | 2014-04-10 | 2014-04-10 | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201539455A TW201539455A (zh) | 2015-10-16 |
TWI527037B true TWI527037B (zh) | 2016-03-21 |
Family
ID=54265156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103113207A TWI527037B (zh) | 2014-04-10 | 2014-04-10 | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9448868B2 (zh) |
TW (1) | TWI527037B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI628660B (zh) * | 2017-09-19 | 2018-07-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
TWI631463B (zh) * | 2016-03-22 | 2018-08-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
US10108366B2 (en) | 2016-03-22 | 2018-10-23 | Via Technologies, Inc. | Non-volatile memory apparatus and operating method thereof |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10162526B2 (en) * | 2015-10-20 | 2018-12-25 | Micron Technology, Inc. | Logical address history management in memory device |
US9418731B1 (en) * | 2015-11-06 | 2016-08-16 | Phison Electronics Corp. | Memory management method, memory storage device and memory control circuit unit |
US9880780B2 (en) * | 2015-11-30 | 2018-01-30 | Samsung Electronics Co., Ltd. | Enhanced multi-stream operations |
CN107132989B (zh) * | 2016-02-26 | 2020-05-12 | 群联电子股份有限公司 | 数据程序化方法、存储器控制电路单元及存储器存储装置 |
JP2017168155A (ja) * | 2016-03-14 | 2017-09-21 | 東芝メモリ株式会社 | 半導体記憶装置 |
TWI603193B (zh) * | 2016-03-31 | 2017-10-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US10423345B2 (en) * | 2016-09-06 | 2019-09-24 | Smart IOPS, Inc. | Devices, systems, and methods for increasing endurance on a storage system having a plurality of components using adaptive code-rates |
US10453547B2 (en) * | 2017-06-16 | 2019-10-22 | Seagate Technologies Llc | Monitoring a memory for retirement |
US10289341B2 (en) | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Operating parameter offsets in solid state memory devices |
US10290347B2 (en) | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Compacting operating parameter groups in solid state memory devices |
US10460816B2 (en) | 2017-12-08 | 2019-10-29 | Sandisk Technologies Llc | Systems and methods for high-performance write operations |
TWI658359B (zh) * | 2017-12-27 | 2019-05-01 | 群聯電子股份有限公司 | 資料寫入方法、有效資料識別方法及記憶體儲存裝置 |
US20200019336A1 (en) * | 2018-07-11 | 2020-01-16 | Samsung Electronics Co., Ltd. | Novel method for offloading and accelerating bitcount and runlength distribution monitoring in ssd |
TWI688953B (zh) * | 2019-04-10 | 2020-03-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN111831210B (zh) * | 2019-04-18 | 2023-12-15 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
US11113007B2 (en) * | 2019-05-13 | 2021-09-07 | Micron Technology, Inc. | Partial execution of a write command from a host system |
CN110399094A (zh) * | 2019-06-06 | 2019-11-01 | 浙江大华技术股份有限公司 | 固态硬盘的块处理方法、装置、固态硬盘和存储介质 |
TWI769386B (zh) * | 2019-07-04 | 2022-07-01 | 群聯電子股份有限公司 | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
US11580030B2 (en) | 2019-08-18 | 2023-02-14 | Smart IOPS, Inc. | Devices, systems, and methods of logical-to-physical address mapping |
US11907114B2 (en) | 2019-08-18 | 2024-02-20 | Smart IOPS, Inc. | Devices, systems, and methods for dynamically remapping memory addresses |
CN113495675B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3964941B1 (en) | 2020-04-01 | 2024-02-28 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
EP3985494B1 (en) | 2020-04-01 | 2024-01-17 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
EP3964940A4 (en) | 2020-04-01 | 2022-08-17 | Changxin Memory Technologies, Inc. | READ/WRITE METHOD AND STORAGE DEVICE |
CN113495671B (zh) | 2020-04-01 | 2023-10-17 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495674B (zh) | 2020-04-01 | 2023-10-10 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3936996A4 (en) | 2020-04-01 | 2022-07-06 | Changxin Memory Technologies, Inc. | READ-WRITE METHOD AND STORAGE DEVICE |
CN113495672B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
US11543992B2 (en) * | 2020-12-09 | 2023-01-03 | Western Digital Technologies, Inc. | Decreasing physical secure erase times in solid state drives |
US11880265B2 (en) * | 2021-12-21 | 2024-01-23 | Nvidia Corporation | Error rate interrupts in hardware for high-speed signaling interconnect |
US11687290B1 (en) * | 2022-01-13 | 2023-06-27 | Silicon Motion, Inc. | Method for improve read disturbance phenomenon of flash memory module and associated flash memory controller and electronic device |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000298997A (ja) * | 1999-04-15 | 2000-10-24 | Nec Corp | 半導体メモリ装置、データ設定方法および装置、情報記憶媒体 |
US9092361B2 (en) * | 2005-07-15 | 2015-07-28 | Panasonic Intellectual Property Management Co., Ltd. | Nonvolatile storage device, memory controller, and defective region detection method |
TWI459197B (zh) * | 2011-04-21 | 2014-11-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US9003247B2 (en) * | 2011-04-28 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Remapping data with pointer |
US9298603B2 (en) * | 2011-09-09 | 2016-03-29 | OCZ Storage Solutions Inc. | NAND flash-based storage device and methods of using |
KR101785448B1 (ko) * | 2011-10-18 | 2017-10-17 | 삼성전자 주식회사 | 비휘발성 메모리 장치 및 이의 프로그램 방법 |
US8838883B2 (en) * | 2012-04-13 | 2014-09-16 | Sandisk Technologies Inc. | System and method of adjusting a programming step size for a block of a memory |
US8867272B2 (en) * | 2012-07-24 | 2014-10-21 | Skymedi Corporation | Method of accessing a non-volatile memory |
CN108595345B (zh) * | 2012-07-25 | 2021-11-23 | 慧荣科技股份有限公司 | 管理闪存中所储存的数据的方法及相关记忆装置与控制器 |
US9042181B2 (en) * | 2013-03-15 | 2015-05-26 | SanDisk Technologies, Inc. | Periodic erase operation for a non-volatile medium |
US9330787B2 (en) * | 2013-03-18 | 2016-05-03 | Kabushiki Kaisha Toshiba | Memory system and memory controller |
JP6104676B2 (ja) * | 2013-04-01 | 2017-03-29 | 株式会社東芝 | メモリシステム、制御システムおよび寿命予測方法 |
CN104572324A (zh) * | 2013-10-11 | 2015-04-29 | 光宝科技股份有限公司 | 固态储存装置及其控制方法 |
US9165670B2 (en) * | 2013-11-14 | 2015-10-20 | Sandisk Technologies Inc. | Data retention detection techniques for a data storage device |
US9025380B1 (en) * | 2013-12-06 | 2015-05-05 | Intel Corporation | Management of data storage in a non-volatile memory system |
-
2014
- 2014-04-10 TW TW103113207A patent/TWI527037B/zh active
- 2014-06-06 US US14/297,649 patent/US9448868B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI631463B (zh) * | 2016-03-22 | 2018-08-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
US10108366B2 (en) | 2016-03-22 | 2018-10-23 | Via Technologies, Inc. | Non-volatile memory apparatus and operating method thereof |
US10289559B2 (en) | 2016-03-22 | 2019-05-14 | Via Technologies, Inc. | Non-volatile memory apparatus and operating method thereof |
TWI628660B (zh) * | 2017-09-19 | 2018-07-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW201539455A (zh) | 2015-10-16 |
US9448868B2 (en) | 2016-09-20 |
US20150293809A1 (en) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US9213629B2 (en) | Block management method, memory controller and memory stoarge apparatus | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI459393B (zh) | 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置 | |
US10503433B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
TWI591643B (zh) | 資料保護方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
TWI725416B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI548991B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201351137A (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201526006A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US20130246687A1 (en) | Data writing method, memory controller and memory storage apparatus | |
US9436547B2 (en) | Data storing method, memory control circuit unit and memory storage device | |
TWI804236B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI777087B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 |