TWI548991B - 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI548991B TWI548991B TW103104917A TW103104917A TWI548991B TW I548991 B TWI548991 B TW I548991B TW 103104917 A TW103104917 A TW 103104917A TW 103104917 A TW103104917 A TW 103104917A TW I548991 B TWI548991 B TW I548991B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical erasing
- unit
- threshold
- physical
- erasing units
- Prior art date
Links
Classifications
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
-
- 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/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/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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2046—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/72—Masking faults in memories by using spares or by reconfiguring with optimized replacement algorithms
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/816—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
- G11C29/82—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- 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
- G11C2029/0411—Online error correction
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/808—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
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)
Description
本發明是有關於一種記憶體管理方法,且特別是有關於用於可複寫式非揮發性記憶體模組的記憶體管理方法及使用此方法的記憶體控制電路單元與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的記憶體儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
耗損平均(Wear Leveling)是用於管理可複寫式非揮發性記憶體模組上的一種技術。可複寫式非揮發性記憶體模組的實體抹除單元有抹寫次數的限制,針對同一個單一區塊,進行重複抹除、寫入,將會造成讀取速度變慢,甚至損壞而無法使用。耗
損平均技術目的在於平均使用可複寫式非揮發性記憶體模組中的每個實體抹除單元,以避免某些「特定」實體抹除單元因過度使用,導致使用次數過大而老化,除了儲存於其上的資料錯誤發生率提高以及老化速率增加之外,也會因為使用次數到達製造廠商保證的極限值,被標記成壞實體抹除單元,而不能繼續使用。
但是並不是每個實體抹除單元在使用次數達到廠商保證的極限值之後就一定會損壞。更具體來說,在多個使用次數達到廠商保證的極限值的實體抹除單元之中,部份的實體抹除單元所發生的錯誤位元數目較少,另一部份的實體抹除單元所發生的錯誤位元數目較多,而錯誤位元數目較少且錯誤位元數目在錯誤檢查與校正保護能力之內的實體抹除單元,其資料所發生的錯誤還可以利用錯誤檢查與校正(ECC)而校正回來,而繼續使用。
過去都是以寫入或抹除次數來作為耗損平均的參考基準,並不會考慮到使用次數達到廠商保證的極限值的實體抹除單元是否還可以繼續使用,一旦使用次數一達到極限值,便標記該實體抹除單元為壞實體抹除單元並且不再使用,導致不能有效地充分利用可複寫式非揮發性記憶體模組的使用壽命。
本發明提供一種記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置,能夠有效地延長記憶體的使用壽命。
本發明提出一種用於可複寫式非揮發性記憶體模組的記
憶體管理方法,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元。本記憶體管理方法包括:記錄每個實體抹除單元的抹除次數;將實體抹除單元至少分組為閒置區與資料區以及判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值。本記憶體管理方法還包括:倘若可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值時,根據閒置區的每個實體抹除單元的抹除次數,由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元;以及倘若可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值時,根據閒置區的實體抹除單元的最大錯誤位元數目,由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元。本記憶體管理方法更包括:依據已排序實體抹除單元從閒置區中提取排序在最前面的第一實體抹除單元來寫入資料。
在本發明的一範例實施例中,上述判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值的步驟包括:依據每個實體抹除單元的抹除次數,計算實體抹除單元的平均抹除次數;判斷實體抹除單元的平均抹除次數是否大於抹除次數門檻值;倘若實體抹除單元的平均抹除次數大於抹除次數門檻值時,則識別可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值;以及倘若實體抹除單元的平均抹除次數非大於抹除次數門檻值時,則識別可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值。
在本發明的一範例實施例中,上述判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值的步驟包括:判斷是否實體抹除單元之中至少一個實體抹除單元的抹除次數大於抹除次數門檻值;倘若實體抹除單元之中至少一個實體抹除單元的抹除次數大於抹除次數門檻值時,則識別可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值;以及倘若每個實體抹除單元的抹除次數皆非大於抹除次數門檻值時,則識別可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值。
在本發明的一範例實施例中,上述判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值的步驟包括:判斷是否實體抹除單元之中至少一個實體抹除單元的抹除次數大於抹除次數門檻值;倘若實體抹除單元之中至少一個實體抹除單元的抹除次數大於抹除次數門檻值時,則識別可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值;以及倘若每個實體抹除單元的抹除次數皆非大於抹除次數門檻值時,則識別可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值。
在本發明的一範例實施例中,上述每個實體抹除單元包括多個實體程式化單元,且每個實體程式化單元可儲存至少一個錯誤檢查與校正框。並且,上述記憶體管理方法更包括:持續記錄發生在實體抹除單元之中的第一實體抹除單元的每一個錯誤檢查與校正框的錯誤位元的數目;以及以數目之中的最大數目作為第一實體抹除單元的最大錯誤位元數目。
在本發明的一範例實施例中,上述根據閒置區的每個實體抹除單元的抹除次數,由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元的步驟更包括:將閒置區的每個實體抹除單元的抹除次數乘上一個第三預先定義值得到一個抹除次數加權值;以及根據閒置區的實體抹除單元各自的抹除次數加權值由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元。
在本發明的一範例實施例中,上述根據閒置區的每個實體抹除單元的最大錯誤位元數目,由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元的步驟包括:根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值,並根據加權值由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元。
在本發明的一範例實施例中,上述根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值的步驟包括:將每個實體抹除單元的抹除次數乘上第一預先定義值以產生對應每個實體抹除單元的抹除次數權重值;將每個實體抹除單元的最大錯誤位元數目乘上第二預先定義值以產生對應每個實體抹除單元的最大錯誤位元數目權重值;以及將每個實體抹除單元各自的抹除次數權重值加上最大錯誤位元數目權重值所獲得的值作為每個實體抹除單元的加權值。
本發明提出一種用於控制可複寫式非揮發性記憶體模組
的記憶體控制電路單元。此記憶體控制電路單元包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體抹除單元。記憶體管理電路耦接至主機介面與記憶體介面,並且用以記錄每個實體抹除單元的抹除次數。在此,記憶體管理電路更用以將實體抹除單元至少分組為閒置區與資料區,並且判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值。倘若可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值時,記憶體管理電路更用以根據閒置區的每個實體抹除單元的抹除次數,由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元,並且倘若可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值時,記憶體管理電路更用以根據閒置區的實體抹除單元的最大錯誤位元數目,由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元。再者,記憶體管理電路更用以對上述可複寫式非揮發性記憶體模組下達一指令序列,其中此指令序列用以依據已排序實體抹除單元從閒置區中提取排序在最前面的第一實體抹除單元來寫入資料。
在本發明的一範例實施例中,在上述判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值的運作中,記憶體管理電路用以依據每個實體抹除單元的抹除次數,計算實體抹除單元的平均抹除次數,判斷實體抹除單元的平均抹除次數
是否大於抹除次數門檻值。倘若實體抹除單元的平均抹除次數大於抹除次數門檻值時,則記憶體管理電路識別可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值。倘若實體抹除單元的平均抹除次數非大於抹除次數門檻值時,則記憶體管理電路識別可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值。
在本發明的一範例實施例中,在上述判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值的運作中,記憶體管理電路用以判斷是否實體抹除單元之中至少一個實體抹除單元的抹除次數大於抹除次數門檻值。倘若實體抹除單元之中至少一個實體抹除單元的抹除次數大於抹除次數門檻值時,則記憶體管理電路識別可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值。倘若每個實體抹除單元的抹除次數皆非大於抹除次數門檻值時,則記憶體管理電路識別可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值。
在本發明的一範例實施例中,上述每個實體抹除單元包括多個實體程式化單元,且每個實體程式化單元可儲存至少一個錯誤檢查與校正框。並且記憶體管理電路用以持續記錄發生在實體抹除單元之中的第一實體抹除單元的每一個錯誤檢查與校正框的錯誤位元的數目,並且將這些數目之中的最大數目作為第一實體抹除單元的最大錯誤位元數目。
在本發明的一範例實施例中,在上述根據閒置區的每個
實體抹除單元的抹除次數,由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元的運作中更包括:記憶體管理電路用以將閒置區的每個實體抹除單元的抹除次數乘上一個第三預先定義值得到一個抹除次數加權值;以及根據閒置區的每個實體抹除單元各自的抹除次數加權值由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元。
在本發明的一範例實施例中,在上述根據閒置區的每個實體抹除單元的最大錯誤位元數目,由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元的運作中,記憶體管理電路根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值,並根據加權值由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元。
在本發明的一範例實施例中,在上述根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值的運作中,記憶體管理電路將每個實體抹除單元的抹除次數乘上第一預先定義值以產生對應每個實體抹除單元的抹除次數權重值,將每個實體抹除單元的最大錯誤位元數目乘上第二預先定義值以產生對應每個實體抹除單元的最大錯誤位元數目權重值,並且將每個實體抹除單元各自的抹除次數權重值加上最大錯誤位元數目權重值所獲得的值作為每個實體抹除單元的加權值。
本發明提出一種記憶體儲存裝置,其包括連接介面單
元、可複寫式非揮發性記憶體模組與記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體抹除單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,並且用以記錄每個實體抹除單元的抹除次數。此外,記憶體控制電路單元更用以將實體抹除單元至少分組為閒置區與資料區,並且判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值。倘若可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值時,記憶體控制電路單元更用以根據閒置區的每個實體抹除單元的抹除次數,由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元。倘若可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值時,記憶體控制電路單元更用以根據閒置區的實體抹除單元的最大錯誤位元數目,由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元。再者,記憶體控制電路單元更用以依據已排序實體抹除單元從閒置區中提取排序在最前面的第一實體抹除單元來寫入資料。
在本發明的一範例實施例中,在上述判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值的運作中,記憶體控制電路單元用以依據每個實體抹除單元的抹除次數,計算實體抹除單元的平均抹除次數,且判斷實體抹除單元的平均抹除次數是否大於抹除次數門檻值。倘若實體抹除單元的平均抹除次數大於抹除次數門檻值時,則記憶體控制電路單元識別可複寫
式非揮發性記憶體模組的使用次數大於使用次數門檻值。倘若實體抹除單元的平均抹除次數非大於抹除次數門檻值時,則記憶體控制電路單元識別可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值。
在本發明的一範例實施例中,在上述判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值的運作中,記憶體控制電路單元用以判斷是否實體抹除單元之中至少一個實體抹除單元的抹除次數大於抹除次數門檻值。倘若實體抹除單元之中至少一個實體抹除單元的抹除次數大於抹除次數門檻值時,則記憶體控制電路單元識別可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值。倘若每個實體抹除單元的抹除次數皆非大於抹除次數門檻值時,則記憶體控制電路單元識別可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值。
在本發明的一範例實施例中,上述每個實體抹除單元包括多個實體程式化單元,且每個實體程式化單元可儲存至少錯誤檢查與校正框。並且記憶體控制電路單元用以持續記錄發生在實體抹除單元之中的第一實體抹除單元的每一個錯誤檢查與校正框的錯誤位元的數目,且將這些數目之中的最大數目作為第一實體抹除單元的最大錯誤位元數目。
在本發明的一範例實施例中,在上述根據閒置區的每個實體抹除單元的抹除次數,由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元的運作中更包括:記憶體控制電
路單元用以將閒置區的每個實體抹除單元的抹除次數乘上一個第三預先定義值得到一個抹除次數加權值;以及根據閒置區的每個實體抹除單元各自的抹除次數加權值由小到大排序閒置區的實體抹除單元以形成多個已排序實體抹除單元。
在本發明的一範例實施例中,在上述根據閒置區的每個實體抹除單元的最大錯誤位元數目,由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元的運作中,記憶體控制電路單元用以根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值,並根據加權值由小到大排序閒置區的實體抹除單元以形成已排序實體抹除單元。
在本發明的一範例實施例中,在上述根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值的運作中,記憶體控制電路單元用以將每個實體抹除單元的抹除次數乘上第一預先定義值以產生對應每個實體抹除單元的抹除次數權重值,將每個實體抹除單元的最大錯誤位元數目乘上第二預先定義值以產生對應每個實體抹除單元的最大錯誤位元數目權重值,並且將每個實體抹除單元各自的抹除次數權重值加上最大錯誤位元數目權重值所獲得的值作為每個實體抹除單元的加權值。
基於上述,本發明可以讓可複寫式非揮發性記憶體模組中,使用次數達到廠商保證的極限值的實體抹除單元還可以繼續
被使用,以達到延長可複寫式非揮發性記憶體模組的使用壽命的效果。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧錯誤檢查與校正電路212
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧系統區
504‧‧‧資料區
506‧‧‧閒置區
508‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
410(F)‧‧‧位於閒置區504的第一實體抹除單元
802‧‧‧位於閒置區504的第一實體抹除單元410(F)的第一實體程式化單元
804‧‧‧位於閒置區504的第一實體抹除單元410(F)的第二實體程式化單元
801‧‧‧第一實體程式化單元的第一錯誤檢查與校正框
803‧‧‧第一實體程式化單元的第二錯誤檢查與校正框
805‧‧‧第一實體程式化單元的第三錯誤檢查與校正框
807‧‧‧第一實體程式化單元的第四錯誤檢查與校正框
809‧‧‧第二實體程式化單元的第一錯誤檢查與校正框
811‧‧‧第二實體程式化單元的第二錯誤檢查與校正框
813‧‧‧第二實體程式化單元的第三錯誤檢查與校正框
815‧‧‧第二實體程式化單元的第四錯誤檢查與校正框
S901、S903、S905、S907‧‧‧記憶體管理方法的步驟
S1001、S1003、S1005、S1007、S1009、S1011、S1113‧‧‧記憶體管理方法的步驟
S1101、S1103、S1105、S1107、S1109、S1111、S1113‧‧‧記憶體管理方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖6與圖7是根據第一範例實施例所繪示之管理實體區塊的範例示意圖。
圖8是根據一範例實施例所繪示之錯誤檢查與校正框的範例示意圖。
圖9為根據本發明的範例實施例,所繪示之記憶體管理方法的流程圖。
圖10為根據本發明的範例實施例,所繪示之記憶體管理方法的流程圖。
圖11為根據本發明的範例實施例,所繪示之記憶體管理方法的流程圖。
圖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個位元資料的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、
其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖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的數值。
圖8是根據一範例實施例所繪示之錯誤檢查與校正框的範例示意圖。
如上所述,在記憶體儲存裝置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的保護。
請參照圖8,在本範例實施例中,儲存於閒置區504中的第一實體抹除單元410(F)中的第一實體程式化單元802的大小為2K bytes(2048 bytes),可儲存4個錯誤檢查與校正框大小的資料,
分別為第一錯誤檢查與校正框801、第二錯誤檢查與校正框803、第三錯誤檢查與校正框805、第四錯誤檢查與校正框807、每個錯誤檢查與校正框的大小為512 bytes。
在操作可複寫式非揮發性記憶體模組106的過程時,記憶體控制電路單元104(或記憶體管理電路202),會持續記錄每個錯誤檢查與校正框所發生的錯誤位元數目,並且以這些錯誤位元數目之中的最大數目做為此第一實體程式化單元802的最大錯誤位元數目。舉例來說,假設第一錯誤檢查與校正框801的錯誤位元數目為3,第二錯誤檢查與校正框803的錯誤位元數目為4、第三錯誤檢查與校正框805的錯誤位元數目為5、第四錯誤檢查與校正框807的錯誤位元數目為11,則第一實體程式化單元802的最大錯誤位元數目即為11。依此類推,在操作可複寫式非揮發性記憶體模組106的過程時也取得並記錄第二實體程式化單元804的最大錯誤位元數目。而記憶體控制電路單元104(或記憶體管理電路202)會比較第一實體抹除單元410(F)的每個實體程式化單元的最大錯誤位元數目,取最大者做為第一實體抹除單元410(F)的最大錯誤位元數目,舉例來說,當第一實體抹除單元410(F)的每個實體程式化單元的最大錯誤位元數目之中最大值為11時,則第一實體抹除單元410(F)的最大錯誤位元數目即為11。
在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會記錄此第一實體抹除單元410(F)的最大錯誤位元數目11。舉例來說,於一個最大錯誤位元數目表中,並且將此最
大錯誤位元數目表儲存在緩衝記憶體208中,並在可複寫式非揮發性記憶體模組使用的過程中,持續記錄每個實體抹除單元的最大錯誤位元數目,並更新最大錯誤位元數目表。此外,每次所記錄的每個實體抹除單元的最大錯誤位元數目,也會與於最大錯誤位元數目表中對應每個實體抹除單元的最大錯誤位元數目的記錄值做大小的比較,選擇較大的錯誤位元數目以更新於最大錯誤位元數目表中對應的記錄值。舉例來說,第一實體抹除單元410(F)於最大錯誤位元數目表中所記錄的最大錯誤位元數目為11,當在可複寫式非揮發性記憶體模組使用的過程中,記錄到第一實體抹除單元410(F)的最大錯誤位元數目為12,則記憶體控制電路單元104(或記憶體管理電路202)會將此剛紀錄到的最大位元數目(即,12)與第一實體抹除單元410(F)於最大錯誤位元數目表中之前所記錄的最大錯誤位元數目(即,11)做比較,取較大者更新到最大錯誤位元數目表中,即更新第一實體抹除單元410(F)記錄於最大錯誤位元數目表中的最大錯誤位元數目的記錄值為12。
例如,在本範例實施例中,錯誤檢查與校正電路212的最大保護能力,為12個位元,故當錯誤檢查與校正框所發生的錯誤位元數目大於12(例如,13)時,錯誤檢查與校正電路212將無法校正於錯誤檢查與校正框內的錯誤資料,導致儲存於此錯誤檢查與校正框的資料不能正常讀取,成為不能恢復的損毀資料。當此狀況發生時,也代表具有此損毀資料的實體抹除單元已經過於老化而不堪使用,基此,記憶體控制電路單元104(或記憶體管
理電路202)會將錯誤位元數目超過錯誤檢查與校正電路212最大保護能力的實體程式化單元標記成壞實體程式化單元,並記錄於一個壞實體程式化單元分佈表中。
而在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會將閒置區的實體抹除單元依照各自的最大錯誤位元數目來分群組。舉例來說,錯誤檢查與校正電路212的最大保護能力為12個位元,記憶體控制電路單元104(或記憶體管理電路202)在記錄閒置區的每個實體抹除單元的最大錯誤位元數目之後,會分成三個群組來分組閒置區的實體抹除單元,例如,錯誤位元數目為0~4的實體抹除單元為第一群組、錯誤位元數目為5~9的實體抹除單元為第二群組,以及錯誤位元數目為10~12的實體抹除單元為第三群組。
在分組之後,記憶體控制電路單元104(或記憶體管理電路202)會將錯誤位元數目較多的群組排序比較在較後面,以上述的例子,便是第一群組排序在第二群組之前,第二群組排序在第三群組之前,而分組到每個群組的實體抹除單元便不另外在其所屬的群組之中做排序。而當記憶體控制電路單元104(或記憶體管理電路202)要從閒置區提取實體抹除單元時,會從排序在前方的群組之中的實體抹除單元開始提取,也就是說,依照上述的例子,會從分組到第一群組的實體抹除單元開始提取。
綜合上述,本發明的目的在於使可複寫式非揮發性記憶體模組的實體抹除單元,不論是否實體抹除單元的抹除次數已經
達到製造廠商保證的極限值,可在錯誤位元數目不大於錯誤檢查與校正電路212保護能力時,繼續被使用,以延長可複寫式非揮發性記憶體模組106的使用壽命。
值得一提的是,於本範例實施例中,所提及的錯誤檢查與校正框以及依照最大錯誤位元數目做分組的例子,僅用於說明之用,本發明不限於此。
以下將舉數個範例實施例,配合圖式以詳細說明根據本發明的概念,利用錯誤位元數目來決定使用率,以延長可複寫式非揮發性記憶體模組106的使用壽命的記憶體管理方法。
圖9為根據本發明的一範例實施例,所繪示之根據可複寫式非揮發性記憶體模組的使用次數,來延長可複寫式非揮發性記憶體模組的使用壽命的記憶體管理方法的流程圖。
請參考圖9,在步驟S901中,記憶體控制電路單元104(或記憶體管理電路202)會判斷可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值。於本範例實施例中,使用次數的計算方式以及使用次數門檻值可以從出廠時設定,或是出廠後由韌體或是軟體設定,本發明不限於此。例如,可複寫式非揮發性記憶體模組的使用次數可以根據整體可複寫式非揮發性記憶體模組的寫入資料量來做計算。舉例來說,記憶體控制電路單元104(或記憶體管理電路202)從出廠之後便開始記錄所寫入的資料量,不論是進行複製、搬移或是合併,只要有進行程式化,便
記錄於程式化過程之中共寫入了多少資料到可複寫式非揮發性記憶體模組中。只要此寫入的資料的量達到一個預設值,記憶體控制電路單元104(或記憶體管理電路202)便會判定可複寫式非揮發性記憶體模組的使用次數已經到達使用次數門檻值。
倘若可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值,則在步驟S903中,僅根據閒置區的每個實體抹除單元的抹除次數,由小到大排序該閒置區的實體抹除單元,以形成已排序實體抹除單元。舉例來說,為了便於說明,假設製造廠商保證的抹除次數的極限值為3000,且在可複寫式非揮發性記憶體模組的閒置區504內只有三個實體抹除單元,分別為抹除次數為300的第一實體抹除單元410(F)、抹除次數為200的第二實體抹除單元410(F+1)、抹除次數為100的第三實體抹除單元410(F+2),則記憶體控制電路單元104(或記憶體管理電路202)會根據抹除次數由小到大排序此三個實體抹除單元,形成已排序的三個實體抹除單元,由前往後的順序為第三實體抹除單元410(F+2)、第二實體抹除單元410(F+1)、第一實體抹除單元410(F)。值得一提的是,上述的“根據抹除次數”也包含以抹除次數為基準做計算之後,從計算結果來排序此三個實體抹除單元,形成已排序的三個實體抹除單元。舉例來說,此三個實體抹除單元的抹除次數可乘上一第三預先定義值來得到的一抹除次數加權值,並根據此三個實體抹除單元各自的抹除次數加權值來排序此三個實體抹除單元,但,本發明不限制於此計算方法。
經過步驟S903,形成已排序實體抹除單元之後,在步驟S907中,記憶體控制電路單元104(或記憶體管理電路202)會根據已排序的三個實體抹除單元,對可複寫式非揮發性記憶體模組106下達指令序列以提取排序在最前面的實體抹除單元來寫入資料。在上面的例子中,即先提取第三實體抹除單元410(F+2)來寫入資料,並結束根據閒置區的實體抹除單元的平均抹除次數,來延長可複寫式非揮發性記憶體模組的使用壽命的流程。
倘若可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值,則在步驟S905中,記憶體控制電路單元104(或記憶體管理電路202)根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值,並根據加權值由小到大排序該閒置區的實體抹除單元以形成已排序實體抹除單元。
例如,在一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會對閒置區的每個實體抹除單元的抹除次數乘上一個第一預先定義值來產生抹除次數權重值,將閒置區的每個實體抹除單元所記錄的最大錯誤位元數目乘上一個第二預先定義值來產生最大錯誤位元數目權重值,並且將閒置區的每個實體抹除單元的抹除次數權重值加上最大錯誤位元數目權重以得到加權值。
舉例來說,為了便於說明,假設製造廠商保證的抹除次數的極限值為3000、錯誤檢查與校正電路212的保護能力為12個
位元、第一預先定義值為1、第二預先定義值為100,且在可複寫式非揮發性記憶體模組的閒置區504內只有三個實體抹除單元,分別為抹除次數為3001的第一實體抹除單元410(F)、抹除次數為3010的第二實體抹除單元410(F+1)、抹除次數為3100的第三實體抹除單元410(F+2),並且第一實體抹除單元410(F)所記錄的最大錯誤位元數目為11、第二實體抹除單元410(F+1)所記錄的最大錯誤位元數目為10、第一實體抹除單元410(F+2)所記錄的最大錯誤位元數目為9。基此,第一實體抹除單元410(F)的抹除次數權重值為3001(即,3001乘上1)、第二實體抹除單元410(F+1)的抹除次數權重值為3010(即,3010乘上1)、第三實體抹除單元410(F+2)的抹除次數權重值為3100(即,3100乘上1)。此外,第一實體抹除單元410(F)的最大錯誤位元數目權重值為1100(即,11乘上100)、第二實體抹除單元410(F+1)的最大錯誤位元數目權重值為1000(即,10乘上100)且第三實體抹除單元410(F+2)的最大錯誤位元數目權重值為900(即,9乘上100)。在計算出閒置區的全部實體抹除單元的抹除次數權重值和最大錯誤位元數目權重值之後,記憶體控制電路單元104(或記憶體管理電路202)會將閒置區504的每個實體抹除單元的抹除次數權重值和最大錯誤位元數目權重值相加,以獲得每個實體抹除單元的加權值。也就是說,第一實體抹除單元410(F)的加權值為4101(即,3001加上1100)、第二實體抹除單元410(F+1)的加權值為4010(即,3010加上1000)且第三實體抹除單元410(F+2)的加權值為4000(即,3100加上
900)。之後,記憶體控制電路單元104(或記憶體管理電路202)會根據加權值由小到大排序此三個實體抹除單元,形成已排序的三個實體抹除單元,由前往後的順序為第三實體抹除單元410(F+2)、第二實體抹除單元410(F+1)、第一實體抹除單元410(F)。值得一提的是,若是第一預先定義值設定成零,加權值就會只有最大錯誤位元數目權重值,也就是說會變成單純只以最大錯誤位元數目的多少為依據由小到大排序此三個實體抹除單元;另一方面,若是第二預先定義值設定為零,加權值就會只有抹除次數權重值,也就是說會變成單純只以抹除次數的多少為依據由小到大排序此三個實體抹除單元。
經過步驟S905,形成已排序實體抹除單元之後,在步驟S907中,記憶體控制電路單元104(或記憶體管理電路202)會根據閒置區中已排序的三個實體抹除單元,提取排序在最前面的實體抹除單元來寫入資料。在上面的例子中,即先提取第三實體抹除單元410(F+2)來寫入資料,並結束根據閒置區的實體抹除單元的平均抹除次數,來延長可複寫式非揮發性記憶體模組的使用壽命的流程。
值得一提的是,於本範例實施例中,計算加權值的方法,僅為說明之用,本發明不受限於此。
第二範例實施例的步驟相似於上述第一範例,其差異之處在於,在第二範例實施例中是根據可複寫式非揮發性記憶體模組的平
均抹除次數來識別可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值,以下將針對不同於第一範例的地方進行描述。
圖10為根據本發明的範例實施例,所繪示之根據可複寫式非揮發性記憶體模組的實體抹除單元的平均抹除次數,來延長可複寫式非揮發性記憶體模組的使用壽命的記憶體管理方法的流程圖。
請參考圖10,在步驟S1001中,記憶體控制電路單元104(或記憶體管理電路202)會計算可複寫式非揮發性記憶體模組106的實體抹除單元的平均抹除次數。
接著在步驟S1003中,記憶體控制電路單元104(或記憶體管理電路202)會判斷可複寫式非揮發性記憶體模組106的實體抹除單元的平均抹除次數是否大於平均抹除次數門檻值。於本範例實施例中,平均抹除次數門檻值可以從出廠時設定,或是出廠後由韌體或是軟體設定,本發明不限於此。
倘若可複寫式非揮發性記憶體模組106的實體抹除單元的平均抹除次數非大於平均抹除次數門檻值,則接著步驟S1005,記憶體控制電路單元104(或記憶體管理電路202)會識別此可複寫式非揮發性記憶體模組106的使用次數非大於使用次數門檻值,並接著步驟S1007,根據閒置區的每個實體抹除單元的抹除次數,由小到大排序該閒置區的實體抹除單元,以形成已排序實體抹除單元。此排序方法與第一範例實施例相同,故省略於此。
經過步驟S1007,形成已排序實體抹除單元之後,在步驟
S1013中,記憶體控制電路單元104(或記憶體管理電路202)會根據已排序的三個實體抹除單元,提取排序在最前面的實體抹除單元來寫入資料。此提取方法與第一範例實施例相同,故省略於此。
倘若可複寫式非揮發性記憶體模組106的實體抹除單元的平均抹除次數大於平均抹除次數門檻值,則接著步驟S1009,記憶體控制電路單元104(或記憶體管理電路202)會識別此可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值,並接著步驟S1011,根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值,並根據加權值由小到大排序該閒置區的實體抹除單元以形成已排序實體抹除單元。
其中根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值的方式,與第一範例實施例相同,故省略於此。
經過步驟S1011,形成已排序實體抹除單元之後,在步驟S1013中,記憶體控制電路單元104(或記憶體管理電路202)會根據閒置區中已排序的三個實體抹除單元,提取排序在最前面的實體抹除單元來寫入資料。此提取方法與第一範例實施例相同,故省略於此。
值得一提的是,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會計算可複寫式非揮發性記憶體
模組106的全部實體抹除單元的平均抹除次數,來識別可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值。但本發明不限於此。在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)根據其中一部份的實體抹除單元的平均抹除次數來識別可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值。例如,根據閒置區504的實體抹除單元的平均抹除次數來識別可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值。
第三範例實施例的步驟相似於上述第二範例,其差異之處在於,在第三範例實施例中是以個別實體抹除單元的抹除次數來識別可複寫式非揮發性記憶體模組的使用次數是否大於使用次數門檻值,以下將針對不同於第二範例的地方進行描述。
圖11為根據本發明的範例實施例,所繪示之根據閒置區的其中之一的實體抹除單元的抹除次數,來延長可複寫式非揮發性記憶體模組106的使用壽命的記憶體管理方法的流程圖。
請參考圖11,在步驟S1101中,記憶體控制電路單元104(或記憶體管理電路202)會記錄可複寫式非揮發性記憶體模組106內每個實體抹除單元的抹除次數。
接著在步驟S1103中,記憶體控制電路單元104(或記憶體管理電路202)會判斷可複寫式非揮發性記憶體模組106中是否有任一實體抹除單元的抹除次數是否大於平均抹除次數門檻值。
於本範例實施例中,平均抹除次數門檻值可以從出廠時設定,或是出廠後由韌體或是軟體設定,本發明不限於此。
倘所有實體抹除單元的抹除次數皆非大於平均抹除次數門檻值,則接著步驟S1105,記憶體控制電路單元104(或記憶體管理電路202)會識別此可複寫式非揮發性記憶體模組的使用次數非大於使用次數門檻值,並接著步驟S1107,根據閒置區的每個實體抹除單元的抹除次數,由小到大排序該閒置區的實體抹除單元,以形成已排序實體抹除單元。此排序方法與第一範例實施例相同,故省略於此。
經過步驟S1107,形成已排序實體抹除單元之後,在步驟S1113中,記憶體控制電路單元104(或記憶體管理電路202)會根據已排序的三個實體抹除單元,提取排序在最前面的實體抹除單元來寫入資料。此提取方法與第一範例實施例相同,故省略於此。
倘若可複寫式非揮發性記憶體模組106有任一實體抹除單元的抹除次數大於平均抹除次數門檻值,則接著步驟S1109,記憶體控制電路單元104(或記憶體管理電路202)會識別此可複寫式非揮發性記憶體模組的使用次數大於使用次數門檻值,並接著步驟S1111,根據閒置區的每個實體抹除單元的抹除次數與最大錯誤位元數目,計算出對應每個實體抹除單元的加權值,並根據加權值由小到大排序該閒置區的實體抹除單元以形成已排序實體抹除單元。
其中根據閒置區的每個實體抹除單元的抹除次數與最大
錯誤位元數目,計算出對應每個實體抹除單元的加權值的方式,與第一範例實施例相同,故省略於此。
經過步驟S1111,形成已排序實體抹除單元之後,在步驟S1113中,記憶體控制電路單元104(或記憶體管理電路202)會根據閒置區中已排序的三個實體抹除單元,提取排序在最前面的實體抹除單元來寫入資料。此提取方法與第一範例實施例相同,故省略於此。
基於上述,本發明範例實施例的記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置可以讓可複寫式非揮發性記憶體模組中,使用次數達到廠商保證的極限值的實體抹除單元還可以繼續被使用,不會因為超過此極限值就被標記成壞實體抹除單元而停止使用,並且依據每個實體抹除單元的錯誤位元數目來排序實體抹除單元的使用順序。也就是說,在實體抹除單元超過平均抹除次數門檻值之後,除了可以使錯誤位元數目還在錯誤檢查與校正電路的保護能力內的這些實體抹除單元還可以繼續被使用之外,還可依據每個實體抹除單元的錯誤程度來改變每個實體抹除單元的使用頻率,使閒置區內錯誤程度較高的實體抹除單元因為排序到提取順序的較後方而降低其使用頻率,使閒置區內錯誤程度較低的實體抹除單元因為排序到提取順序的較前方而增加其使用頻率,有著平均老化的作用,最後更可達到延長可複寫式非揮發性記憶體模組的使用壽命的效果。
雖然本發明已以實施例揭露如上,然其並非用以限定本發
明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S1001、S1003、S1005、S1007、S1009、S1011、S1013‧‧‧記憶體管理方法的步驟
Claims (21)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,該記憶體管理方法包括:記錄每一該些實體抹除單元的一抹除次數;將該些實體抹除單元至少分組為一閒置區與一資料區;判斷該可複寫式非揮發性記憶體模組的一使用次數是否大於一使用次數門檻值;倘若該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值時,根據該閒置區的每一該些實體抹除單元的抹除次數,由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元;倘若該可複寫式非揮發性記憶體模組的使用次數大於該使用次數門檻值時,根據該閒置區的該些實體抹除單元的多個最大錯誤位元數目,由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元;以及依據該些已排序實體抹除單元從該閒置區中提取排序在最前面的一第一實體抹除單元來寫入資料。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述判斷該可複寫式非揮發性記憶體模組的該使用次數是否大於該使用次數門檻值的步驟包括:依據每一該些實體抹除單元的抹除次數,計算該些實體抹除 單元的一平均抹除次數;判斷該些實體抹除單元的該平均抹除次數是否大於一抹除次數門檻值;倘若該些實體抹除單元的該平均抹除次數大於該抹除次數門檻值時,則識別該可複寫式非揮發性記憶體模組的該使用次數大於該使用次數門檻值;以及倘若該些實體抹除單元的該平均抹除次數非大於該抹除次數門檻值時,則識別該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述判斷該可複寫式非揮發性記憶體模組的該使用次數是否大於該使用次數門檻值的步驟包括:判斷是否該些實體抹除單元之中至少一個實體抹除單元的抹除次數大於一抹除次數門檻值;倘若該些實體抹除單元之中至少一個實體抹除單元的抹除次數大於該抹除次數門檻值時,則識別該可複寫式非揮發性記憶體模組的該使用次數大於該使用次數門檻值;以及倘若每一該些實體抹除單元的該抹除次數皆非大於該抹除次數門檻值時,則識別該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中每一該些實體抹除單元包括多個實體程式化單元,且每一該些實體程 式化單元可儲存至少一錯誤檢查與校正框,其中該記憶體管理方法更包括:持續記錄發生在該些實體抹除單元之中的該第一實體抹除單元的每一錯誤檢查與校正框的錯誤位元的數目;以及以該些數目之中的一最大數目作為該第一實體抹除單元的一最大錯誤位元數目。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述根據該閒置區的每一該些實體抹除單元的抹除次數,由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元的步驟更包括:將該閒置區的每一該些實體抹除單元的抹除次數乘上一第三預先定義值得到一抹除次數加權值;以及根據該抹除次數加權值由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述根據該閒置區的每一該些實體抹除單元的最大錯誤位元數目,由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元的步驟包括:根據該閒置區的每一該些實體抹除單元的該抹除次數與該最大錯誤位元數目,計算出對應每一該些實體抹除單元的一加權值,並根據該加權值由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元。
- 如申請專利範圍第6項所述的記憶體管理方法,其中上述 根據該閒置區的每一該些實體抹除單元的該抹除次數與該最大錯誤位元數目,計算出對應每一該些實體抹除單元的該加權值的步驟包括:將每一該些實體抹除單元的抹除次數乘上一第一預先定義值以產生對應每一該些實體抹除單元的一抹除次數權重值;將每一該些實體抹除單元的最大錯誤位元數目乘上一第二預先定義值以產生對應每一該些實體抹除單元的一最大錯誤位元數目權重值;以及將每一該些抹除次數權重值加上每一該些最大錯誤位元數目權重值所獲得的值作為每一該些實體抹除單元的加權值。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且用以記錄每一該些實體抹除單元的一抹除次數,其中該記憶體管理電路更用以將該些實體抹除單元至少分組為一閒置區與一資料區,其中該記憶體管理電路更用以判斷該可複寫式非揮發性記憶體模組的一使用次數是否大於一使用次數門檻值,其中 倘若該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值時,該記憶體管理電路更用以根據該閒置區的每一該些實體抹除單元的抹除次數,由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元,倘若該可複寫式非揮發性記憶體模組的使用次數大於該使用次數門檻值時,該記憶體管理電路更用以根據該閒置區的該些實體抹除單元的多個最大錯誤位元數目,由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元,其中該記憶體管理電路更用以對該可複寫式非揮發性記憶體模組下達一指令序列,其中該指令序列用以依據該些已排序實體抹除單元從該閒置區中提取排序在最前面的一第一實體抹除單元來寫入資料。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中在上述判斷該可複寫式非揮發性記憶體模組的該使用次數是否大於該使用次數門檻值的運作中,該記憶體管理電路依據每一該些實體抹除單元的抹除次數,計算該些實體抹除單元的一平均抹除次數,並且判斷該些實體抹除單元的該平均抹除次數是否大於一抹除次數門檻值,其中倘若該些實體抹除單元的該平均抹除次數大於該抹除次數門檻值時,則該記憶體管理電路識別該可複寫式非揮發性記憶體模組的該使用次數大於該使用次數門檻值,倘若該些實體抹除單元的該平均抹除次數非大於該抹除次數 門檻值時,則該記憶體管理電路識別該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中在上述判斷該可複寫式非揮發性記憶體模組的該使用次數是否大於該使用次數門檻值的運作中,該記憶體管理電路判斷是否該些實體抹除單元之中至少一個實體抹除單元的抹除次數大於一抹除次數門檻值,其中倘若該些實體抹除單元之中至少一個實體抹除單元的抹除次數大於該抹除次數門檻值時,則該記憶體管理電路識別該可複寫式非揮發性記憶體模組的該使用次數大於該使用次數門檻值,倘若每一該些實體抹除單元的該抹除次數皆非大於該抹除次數門檻值時,則該記憶體管理電路識別該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中每一該些實體抹除單元包括多個實體程式化單元,且每一該些實體程式化單元可儲存至少一錯誤檢查與校正框,其中該記憶體管理電路更用以持續記錄發生在該些實體抹除單元之中的該第一實體抹除單元的每一錯誤檢查與校正框的錯誤位元的數目,並且將該些數目之中的一最大數目作為該第一實體抹除單元的一最大錯誤位元數目。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其 中在上述根據該閒置區的每一該些實體抹除單元的抹除次數,由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元的運作中更包括:該記憶體管理電路用以將該閒置區的每一該些實體抹除單元的抹除次數乘上一第三預先定義值得到一抹除次數加權值;以及根據該抹除次數加權值由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元。
- 如申請專利範圍第8項所述的記憶體控制電路單元,其中在上述根據該閒置區的每一該些實體抹除單元的最大錯誤位元數目,由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元的運作中,該記憶體管理電路根據該閒置區的每一該些實體抹除單元的該抹除次數與該最大錯誤位元數目,計算出對應每一該些實體抹除單元的一加權值,並根據該加權值由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元。
- 如申請專利範圍第13項所述的記憶體控制電路單元,其中在上述根據該閒置區的每一該些實體抹除單元的該抹除次數與該最大錯誤位元數目,計算出對應每一該些實體抹除單元的該加權值的運作中,該記憶體管理電路將每一該些實體抹除單元的抹除次數乘上一第一預先定義值以產生對應每一該些實體抹除單元的一抹除次數權重值,將每一該些實體抹除單元的最大錯誤位元數目乘上一第二預先定義值以產生對應每一該些實體抹除單元的 一最大錯誤位元數目權重值,並且將每一該些抹除次數權重值加上每一該些最大錯誤位元數目權重值所獲得的值作為每一該些實體抹除單元的加權值。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體抹除單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,並且用以記錄每一該些實體抹除單元的一抹除次數,其中該記憶體控制電路單元更用以將該些實體抹除單元至少分組為一閒置區與一資料區,其中該記憶體控制電路單元更用以判斷該可複寫式非揮發性記憶體模組的一使用次數是否大於一使用次數門檻值,其中倘若該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值時,該記憶體控制電路單元更用以根據該閒置區的每一該些實體抹除單元的抹除次數,由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元,倘若該可複寫式非揮發性記憶體模組的使用次數大於該使用次數門檻值時,該記憶體控制電路單元更用以根據該閒置區的該些實體抹除單元的多個最大錯誤位元數目,由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元, 其中該記憶體控制電路單元更用以依據該些已排序實體抹除單元從該閒置區中提取排序在最前面的一第一實體抹除單元來寫入資料。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中在上述判斷該可複寫式非揮發性記憶體模組的該使用次數是否大於該使用次數門檻值的運作中,該記憶體控制電路單元依據每一該些實體抹除單元的抹除次數,計算該些實體抹除單元的一平均抹除次數,並且判斷該些實體抹除單元的該平均抹除次數是否大於一抹除次數門檻值,其中倘若該些實體抹除單元的該平均抹除次數大於該抹除次數門檻值時,則該記憶體控制電路單元識別該可複寫式非揮發性記憶體模組的該使用次數大於該使用次數門檻值,其中倘若該些實體抹除單元的該平均抹除次數非大於該抹除次數門檻值時,則該記憶體控制電路單元識別該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中在上述判斷該可複寫式非揮發性記憶體模組的該使用次數是否大於該使用次數門檻值的運作中,該記憶體控制電路單元用以判斷是否該些實體抹除單元之中至少一個實體抹除單元的抹除次數大於一抹除次數門檻值,其中倘若該些實體抹除單元之中至少一個實體抹除單元的抹除次數大於該抹除次數門檻值時,則該記憶體控制電路單元識別 該可複寫式非揮發性記憶體模組的該使用次數大於該使用次數門檻值,其中倘若每一該些實體抹除單元的該抹除次數皆非大於該抹除次數門檻值時,則該記憶體控制電路單元識別該可複寫式非揮發性記憶體模組的該使用次數非大於該使用次數門檻值。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中每一該些實體抹除單元包括多個實體程式化單元,且每一該些實體程式化單元可儲存至少一錯誤檢查與校正框,其中該記憶體控制電路單元更用以持續記錄發生在該些實體抹除單元之中的該第一實體抹除單元的每一錯誤檢查與校正框的錯誤位元的數目,並且將該些數目之中的一最大數目作為該第一實體抹除單元的一最大錯誤位元數目。
- 如申請專利範圍第15項所述的記憶體儲存裝置,其中在上述根據該閒置區的每一該些實體抹除單元的抹除次數,由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元的運作中更包括:該記憶體控制電路單元用以將該閒置區的每一該些實體抹除單元的抹除次數乘上一第三預先定義值得到一抹除次數加權值;以及根據該抹除次數加權值由小到大排序該閒置區的該些實體抹除單元以形成多個已排序實體抹除單元。
- 如申請專利範圍第15項所述的記憶體儲存裝置, 其中在上述根據該閒置區的每一該些實體抹除單元的最大錯誤位元數目,由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元的運作中,該記憶體控制電路單元用以根據該閒置區的每一該些實體抹除單元的該抹除次數與該最大錯誤位元數目,計算出對應每一該些實體抹除單元的一加權值,並根據該加權值由小到大排序該閒置區的該些實體抹除單元以形成該些已排序實體抹除單元。
- 如申請專利範圍第20項所述的記憶體儲存裝置,其中在上述根據該閒置區的每一該些實體抹除單元的該抹除次數與該最大錯誤位元數目,計算出對應每一該些實體抹除單元的該加權值的運作中,該記憶體控制電路單元用以將每一該些實體抹除單元的抹除次數乘上一第一預先定義值以產生對應每一該些實體抹除單元的一抹除次數權重值,將每一該些實體抹除單元的最大錯誤位元數目乘上一第二預先定義值以產生對應每一該些實體抹除單元的一最大錯誤位元數目權重值,並且將每一該些抹除次數權重值加上每一該些最大錯誤位元數目權重值所獲得的值作為每一該些實體抹除單元的加權值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103104917A TWI548991B (zh) | 2014-02-14 | 2014-02-14 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US14/263,979 US9236148B2 (en) | 2014-02-14 | 2014-04-28 | Memory management method, memory control circuit unit and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103104917A TWI548991B (zh) | 2014-02-14 | 2014-02-14 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201531855A TW201531855A (zh) | 2015-08-16 |
TWI548991B true TWI548991B (zh) | 2016-09-11 |
Family
ID=53798210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103104917A TWI548991B (zh) | 2014-02-14 | 2014-02-14 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9236148B2 (zh) |
TW (1) | TWI548991B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592268B2 (en) * | 2015-04-06 | 2020-03-17 | Hitachi, Ltd. | Management computer and resource management method configured to combine server resources and storage resources and allocate the combined resources to virtual machines |
TWI622044B (zh) * | 2016-09-06 | 2018-04-21 | 合肥兆芯電子有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
TWI742509B (zh) * | 2020-01-09 | 2021-10-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
US11190217B2 (en) * | 2018-08-23 | 2021-11-30 | Phison Electronics Corp. | Data writing method, memory controlling circuit unit and memory storage device |
CN113138947B (zh) * | 2020-01-17 | 2023-06-13 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI385669B (zh) * | 2008-07-23 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
US20130111301A1 (en) * | 2011-11-02 | 2013-05-02 | Phison Electronics Corp. | Block management method, memory controller and memory storage device thereof |
US20130262810A1 (en) * | 2012-04-03 | 2013-10-03 | Phison Electronics Corp. | Memory space management method and memory controller and memory storage device using the same |
TW201351140A (zh) * | 2012-06-07 | 2013-12-16 | Phison Electronics Corp | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US6347051B2 (en) * | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
US5867641A (en) * | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US6977847B2 (en) * | 2001-11-23 | 2005-12-20 | M-Systems Flash Disk Pioneers Ltd. | Detecting partially erased units in flash devices |
CN100483552C (zh) * | 2002-10-28 | 2009-04-29 | 桑迪士克股份有限公司 | 在非易失性存储系统中执行自动磨损平衡的方法 |
US7831783B2 (en) * | 2005-12-22 | 2010-11-09 | Honeywell International Inc. | Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems |
JP4444314B2 (ja) * | 2007-07-13 | 2010-03-31 | 株式会社東芝 | 半導体メモリ情報蓄積装置とその書き込み制御方法 |
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
TWI366828B (en) * | 2007-09-27 | 2012-06-21 | Phison Electronics Corp | Wear leveling method and controller using the same |
JP4461170B2 (ja) * | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
US8001318B1 (en) * | 2008-10-28 | 2011-08-16 | Netapp, Inc. | Wear leveling for low-wear areas of low-latency random read memory |
US20120023144A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
-
2014
- 2014-02-14 TW TW103104917A patent/TWI548991B/zh active
- 2014-04-28 US US14/263,979 patent/US9236148B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI385669B (zh) * | 2008-07-23 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
US20130111301A1 (en) * | 2011-11-02 | 2013-05-02 | Phison Electronics Corp. | Block management method, memory controller and memory storage device thereof |
US20130262810A1 (en) * | 2012-04-03 | 2013-10-03 | Phison Electronics Corp. | Memory space management method and memory controller and memory storage device using the same |
TW201351140A (zh) * | 2012-06-07 | 2013-12-16 | Phison Electronics Corp | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
US9236148B2 (en) | 2016-01-12 |
US20150234692A1 (en) | 2015-08-20 |
TW201531855A (zh) | 2015-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI571882B (zh) | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI545432B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201703052A (zh) | 平均磨損方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI536166B (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN104866429A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TW201633314A (zh) | 記憶體控制電路單元、記憶體儲存裝置及資料存取方法 | |
TWI548991B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
US8966344B2 (en) | Data protecting method, memory controller and memory storage device | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI642059B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |