TWI529530B - 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents

記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 Download PDF

Info

Publication number
TWI529530B
TWI529530B TW103129175A TW103129175A TWI529530B TW I529530 B TWI529530 B TW I529530B TW 103129175 A TW103129175 A TW 103129175A TW 103129175 A TW103129175 A TW 103129175A TW I529530 B TWI529530 B TW I529530B
Authority
TW
Taiwan
Prior art keywords
unit
physical
data
entity
type
Prior art date
Application number
TW103129175A
Other languages
English (en)
Other versions
TW201608375A (zh
Inventor
葉志剛
Original Assignee
群聯電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 群聯電子股份有限公司 filed Critical 群聯電子股份有限公司
Priority to TW103129175A priority Critical patent/TWI529530B/zh
Priority to US14/519,138 priority patent/US10459630B2/en
Publication of TW201608375A publication Critical patent/TW201608375A/zh
Application granted granted Critical
Publication of TWI529530B publication Critical patent/TWI529530B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
本發明是有關於一種記憶體管理機制,且特別是有關於一種記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,為了節省儲存空間,一些欲寫入至可複寫式非揮發性記憶體模組的資料會先被壓縮為資料體積較小的壓縮資料,然後才被寫入至可複寫式非揮發性記憶體模組。爾後,在壓縮資料被讀取出來後,壓縮資料會被解壓縮。然而,若壓縮資料中存在錯誤,則此錯誤可能會嚴重影響到經由解壓縮此壓縮資料而獲得的資料的正確性。
本發明提供一種記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元,其可增強對於可複寫式非揮發性記憶體模組中特定區域/資料的保護。
本發明的一範例實施例提供一種記憶體管理方法,其用於控制可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個實體單元,記憶體管理方法包括:定義對於第一類實體單元的第一資料管理規則與對於第二類實體單元的第二資料管理規則,其中第一類實體單元的第一資料密度低於第二類實體單元的第二資料密度;若所述實體單元中的第一實體單元屬於第一類實體單元,根據第一資料管理規則來管理第一實體單元,以使儲存於第一實體單元的資料具有第一信賴等級;以及若所述實體單元中的第一實體單元屬於第二類實體單元,根據第二資料管理規則來管理第一實體單元,以使儲存於第一實體單元的資料具有第二信賴等級,其中第二信賴等級高於第一信賴等級。
在本發明的一範例實施例中,所述記憶體管理方法更包括:判斷所述實體單元中的第一實體單元的有效計數的值是否大於門檻值;若第一實體單元的有效計數的值大於門檻值,判定第一實體單元是屬於第二類實體單元;以及若第一實體單元的有效計數的值沒有大於門檻值,判定第一實體單元是屬於第一類實體單元。
在本發明的一範例實施例中,所述有效計數的值正相關於(positively correlated)第一實體單元的資料密度。
在本發明的一範例實施例中,所述儲存於第一類實體單元中的資料所對應的邏輯單元的數目小於儲存於第二類實體單元中的資料所對應的邏輯單元的數目。
在本發明的一範例實施例中,所述記憶體管理方法更包括:當執行垃圾回收程序時,判斷所述實體單元中的第一實體單元是屬於第一類實體單元或第二類實體單元,其中第一實體單元是用來儲存垃圾回收程序所回收的有效資料。
在本發明的一範例實施例中,所述實體單元包括非閒置實體單元,並且非閒置實體單元包括儲存有有效資料的第一實體子單元,所述記憶體管理方法更包括:當執行垃圾回收程序時,判斷第一實體子單元是屬於第一類實體子單元或第二類實體子單元,或者判斷非閒置實體單元是屬於第一類實體單元或第二類實體單元;若第一實體子單元是屬於第一類實體子單元或非閒置實體單元是屬於第一類實體單元,不將第一實體子單元所儲存的有效資料複製至第一實體單元;以及若第一實體子單元是屬於第二類實體子單元或非閒置實體單元是屬於第二類實體單元,將第一實體子單元所儲存的有效資料複製至第一實體單元。
在本發明的一範例實施例中,所述記憶體管理方法更包括:當執行主機系統所請求的資料寫入程序時,判斷所述實體單元中的第一實體單元是屬於第一類實體單元或第二類實體單元, 其中第一實體單元是用來儲存資料寫入程序所對應的寫入資料。
在本發明的一範例實施例中,所述根據第一資料管理規則來管理第一實體單元的步驟包括:不產生對應於第一實體單元的縱向驗證碼,其中縱向驗證碼用以對第一實體單元中的資料執行一縱向驗證;其中根據第二資料管理規則來管理第一實體單元的步驟包括:產生對應於第一實體單元的縱向驗證碼。
在本發明的一範例實施例中,所述根據第一資料管理規則來管理第一實體單元的步驟包括:產生對應於第一實體單元的第一縱向驗證碼,其中根據第二資料管理規則來管理第一實體單元的步驟包括:產生對應於第一實體單元的第二縱向驗證碼,其中第一縱向驗證碼用以對第一實體單元中的資料執行第一縱向驗證,第二縱向驗證碼用以對第一實體單元中的資料執行第二縱向驗證,並且第二縱向驗證碼的長度長於第一縱向驗證碼的長度。
在本發明的一範例實施例中,所述根據第一資料管理規則來管理第一實體單元的步驟包括:產生對應於欲儲存至第一實體單元的資料的第一錯誤更正碼,其中根據第二資料管理規則來管理第一實體單元的步驟包括:產生對應於欲儲存至第一實體單元的資料的一第二錯誤更正碼,其中第二錯誤更正碼的長度長於第一錯誤更正碼的長度。
在本發明的一範例實施例中,所述根據第一資料管理規則來管理第一實體單元的步驟包括:以預設程式化模式來使用第一實體單元,其中根據第二資料管理規則來管理第一實體單元的 步驟包括:以快頁(fast page)模式來使用第一實體單元。
在本發明的一範例實施例中,所述根據第一資料管理規則來管理第一實體單元的步驟包括:將對於第一實體單元的寫入電壓設定為預設寫入電壓,其中根據第二資料管理規則來管理第一實體單元的步驟包括:根據第一實體單元中至少一記憶胞的使用程度,動態調整對於第一實體單元的寫入電壓。
本發明的一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組,其中記憶體控制電路單元用以定義對於第一類實體單元的第一資料管理規則與對於第二類實體單元的第二資料管理規則,其中第一類實體單元的第一資料密度低於第二類實體單元的第二資料密度,若所述實體單元中的第一實體單元屬於第一類實體單元,記憶體控制電路單元更用以根據第一資料管理規則來管理第一實體單元,以使儲存於第一實體單元的資料具有第一信賴等級,若所述實體單元中的第一實體單元屬於第二類實體單元,記憶體控制電路單元更用以根據第二資料管理規則來管理第一實體單元,以使儲存於第一實體單元的資料具有第二信賴等級,其中第二信賴等級高於第一信賴等級。
在本發明的一範例實施例中,所述記憶體控制電路單元 更用以判斷所述實體單元中的第一實體單元的有效計數的值是否大於門檻值,若第一實體單元的有效計數的值大於門檻值,記憶體控制電路單元更用以判定第一實體單元是屬於第二類實體單元,若第一實體單元的有效計數的值沒有大於門檻值,記憶體控制電路單元更用以判定第一實體單元是屬於第一類實體單元。
在本發明的一範例實施例中,當執行垃圾回收程序時,記憶體控制電路單元更用以判斷所述實體單元中的第一實體單元是屬於第一類實體單元或第二類實體單元,其中第一實體單元是用來儲存垃圾回收程序所回收的有效資料。
在本發明的一範例實施例中,所述實體單元包括非閒置實體單元,並且非閒置實體單元包括儲存有有效資料的第一實體子單元,當執行垃圾回收程序時,記憶體控制電路單元更用以判斷第一實體子單元是屬於第一類實體子單元或第二類實體子單元,或者判斷非閒置實體單元是屬於第一類實體單元或第二類實體單元,若第一實體子單元是屬於第一類實體子單元或非閒置實體單元是屬於第一類實體單元,記憶體控制電路單元不將第一實體子單元所儲存的有效資料複製至第一實體單元;以及若第一實體子單元是屬於第二類實體子單元或非閒置實體單元是屬於第二類實體單元,記憶體控制電路單元更用以將第一實體子單元所儲存的有效資料複製至第一實體單元。
在本發明的一範例實施例中,當執行主機系統所請求的資料寫入程序時,記憶體控制電路單元更用以判斷所述實體單元 中的第一實體單元是屬於第一類實體單元或第二類實體單元,其中第一實體單元是用來儲存資料寫入程序所對應的寫入資料。
在本發明的一範例實施例中,所述記憶體控制電路單元根據第一資料管理規則來管理第一實體單元的操作包括:不產生對應於第一實體單元的縱向驗證碼,其中縱向驗證碼用以對第一實體單元中的資料執行縱向驗證,其中記憶體控制電路單元根據第二資料管理規則來管理第一實體單元的操作包括:產生對應於第一實體單元的縱向驗證碼。
在本發明的一範例實施例中,所述記憶體控制電路單元根據第一資料管理規則來管理第一實體單元的操作包括:產生對應於第一實體單元的第一縱向驗證碼,其中記憶體控制電路單元根據第二資料管理規則來管理第一實體單元的操作包括:產生對應於第一實體單元的第二縱向驗證碼,其中第一縱向驗證碼用以對第一實體單元中的資料執行第一縱向驗證,第二縱向驗證碼用以對第一實體單元中的資料執行第二縱向驗證,並且第二縱向驗證碼的長度長於第一縱向驗證碼的長度。
在本發明的一範例實施例中,所述記憶體控制電路單元根據第一資料管理規則來管理第一實體單元的操作包括:產生對應於欲儲存至第一實體單元的資料的第一錯誤更正碼,其中記憶體控制電路單元根據第二資料管理規則來管理第一實體單元的操作包括:產生對應於欲儲存至第一實體單元的資料的第二錯誤更正碼,其中第二錯誤更正碼的長度長於第一錯誤更正碼的長度。
在本發明的一範例實施例中,所述記憶體控制電路單元根據第一資料管理規則來管理第一實體單元的操作包括:以預設程式化模式來使用第一實體單元,其中記憶體控制電路單元根據第二資料管理規則來管理第一實體單元的操作包括:以快頁模式來使用第一實體單元。
在本發明的一範例實施例中,所述記憶體控制電路單元根據第一資料管理規則來管理第一實體單元的操作包括:將對於第一實體單元的寫入電壓設定為預設寫入電壓,其中記憶體控制電路單元根據第二資料管理規則來管理第一實體單元的操作包括:根據第一實體單元中至少一記憶胞的使用程度,動態調整對於第一實體單元的寫入電壓。
本發明的一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個實體單元,所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面,其中記憶體管理電路用以定義對於第一類實體單元的第一資料管理規則與對於第二類實體單元的第二資料管理規則,其中第一類實體單元的第一資料密度低於第二類實體單元的第二資料密度,若所述實體單元中的第一實體單元屬於第一類實體單元,記憶體管理電路更用以根據第一資料管理規則來管理第一實體單元,以使儲存於第 一實體單元的資料具有第一信賴等級,若所述實體單元中的第一實體單元屬於第二類實體單元,記憶體管理電路更用以根據第二資料管理規則來管理第一實體單元,以使儲存於第一實體單元的資料具有第二信賴等級,其中第二信賴等級高於第一信賴等級。
在本發明的一範例實施例中,所述記憶體管理電路更用以判斷所述實體單元中的第一實體單元的有效計數的值是否大於門檻值,若第一實體單元的有效計數的值大於門檻值,記憶體管理電路更用以判定第一實體單元是屬於第二類實體單元,若第一實體單元的有效計數的值沒有大於門檻值,記憶體管理電路更用以判定第一實體單元是屬於第一類實體單元。
在本發明的一範例實施例中,當執行垃圾回收程序時,記憶體管理電路更用以判斷所述實體單元中的第一實體單元是屬於第一類實體單元或第二類實體單元,其中第一實體單元是用來儲存垃圾回收程序所回收的有效資料。
在本發明的一範例實施例中,所述實體單元包括非閒置實體單元,並且非閒置實體單元包括儲存有有效資料的第一實體子單元,當執行垃圾回收程序時,記憶體管理電路更用以判斷第一實體子單元是屬於第一類實體子單元或第二類實體子單元,或者判斷非閒置實體單元是屬於第一類實體單元或第二類實體單元,若第一實體子單元是屬於第一類實體子單元或非閒置實體單元是屬於第一類實體單元,記憶體管理電路不將第一實體子單元所儲存的有效資料複製至第一實體單元,以及若第一實體子單元 是屬於第二類實體子單元或非閒置實體單元是屬於第二類實體單元,記憶體管理電路更用以將第一實體子單元所儲存的有效資料複製至第一實體單元。
在本發明的一範例實施例中,當執行主機系統所請求的資料寫入程序時,記憶體管理電路更用以判斷所述實體單元中的第一實體單元是屬於第一類實體單元或第二類實體單元,其中第一實體單元是用來儲存資料寫入程序所對應的寫入資料。
在本發明的一範例實施例中,所述記憶體管理電路根據第一資料管理規則來管理第一實體單元的操作包括:不控制錯誤檢查與校正電路產生對應於第一實體單元的縱向驗證碼,其中縱向驗證碼用以對第一實體單元中的資料執行縱向驗證;其中記憶體管理電路根據第二資料管理規則來管理第一實體單元的操作包括:控制錯誤檢查與校正電路產生對應於第一實體單元的縱向驗證碼。
在本發明的一範例實施例中,所述記憶體管理電路根據第一資料管理規則來管理第一實體單元的操作包括:控制錯誤檢查與校正電路產生對應於第一實體單元中的第一縱向驗證碼,其中記憶體管理電路根據第二資料管理規則來管理第一實體單元的操作包括:控制錯誤檢查與校正電路產生對應於第一實體單元的第二縱向驗證碼,其中第一縱向驗證碼用以對第一實體單元中的資料執行第一縱向驗證,第二縱向驗證碼用以對第一實體單元中的資料執行第二縱向驗證,並且第二縱向驗證碼的長度長於第一 縱向驗證碼的長度。
在本發明的一範例實施例中,所述記憶體管理電路根據第一資料管理規則來管理第一實體單元的操作包括:控制錯誤檢查與校正電路產生對應於欲儲存至第一實體單元的資料的第一錯誤更正碼,其中記憶體管理電路根據第二資料管理規則來管理第一實體單元的操作包括:控制錯誤檢查與校正電路產生對應於欲儲存至第一實體單元的資料的第二錯誤更正碼,其中第二錯誤更正碼的長度長於第一錯誤更正碼的長度。
在本發明的一範例實施例中,所述記憶體管理電路根據第一資料管理規則來管理第一實體單元的操作包括:以預設程式化模式來使用第一實體單元,其中記憶體管理電路根據第二資料管理規則來管理第一實體單元的操作包括:以快頁模式來使用第一實體單元。
在本發明的一範例實施例中,所述記憶體管理電路根據第一資料管理規則來管理第一實體單元的操作包括:將對於第一實體單元的寫入電壓設定為預設寫入電壓,其中記憶體管理電路根據第二資料管理規則來管理第一實體單元的操作包括:根據第一實體單元中至少一記憶胞的使用程度,動態調整對於第一實體單元的寫入電壓。
基於上述,在本發明的一範例實施例中,對於一個實體單元中的資料的保護強度是基於此實體單元的資料密度來決定的。藉此,可降低資料密度較高的實體單元中的資料發生錯誤的 機率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧電腦
122‧‧‧微處理器
124‧‧‧隨機存取記憶體
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
13‧‧‧輸入/輸出裝置
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶胞陣列
504‧‧‧字元線控制電路
506‧‧‧位元線控制電路
508‧‧‧行解碼器
510‧‧‧資料輸入/輸出緩衝器
512‧‧‧控制電路
602‧‧‧記憶胞
604‧‧‧位元線
606‧‧‧字元線
608‧‧‧共用源極線
612、614‧‧‧電晶體
702‧‧‧記憶體管理電路
704‧‧‧主機介面
706‧‧‧記憶體介面
708‧‧‧錯誤檢查與校正電路
710‧‧‧緩衝記憶體
712‧‧‧電源管理電路
800(0)~800(R)‧‧‧實體抹除單元
810(0)~810(D)‧‧‧邏輯單元
802‧‧‧儲存區
806‧‧‧系統區
910(0)~910(C)‧‧‧實體程式化單元
S1102、S1104、S1106、S1108‧‧‧步驟
圖1是根據本發明之一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的範例示意圖。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的範例示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的範例示意圖。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖9是根據本發明的一範例實施例所繪示的邏輯單元映射至 實體單元的範例示意圖。
圖10是根據本發明的另一範例實施例所繪示的管理實體單元的範例示意圖。
圖11是根據本發明的一範例實施例所繪示的資料管理方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的範例示意圖。圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的範例示意圖。
請參照圖1,主機系統11一般包括電腦12與輸入/輸出(input/output,I/O)裝置13。電腦12包括微處理器122、隨機存取記憶體(random access memory,RAM)124、系統匯流排126與資料傳輸介面128。輸入/輸出裝置13包括如圖2的滑鼠21、鍵盤22、顯示器23與印表機24。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可更包括其他裝置。
在一範例實施例中,記憶體儲存裝置10是透過資料傳輸介面128與主機系統11的其他元件耦接。藉由微處理器122、隨 機存取記憶體124與輸入/輸出裝置13的運作可將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。例如,記憶體儲存裝置10可以是如圖2所示的隨身碟25、記憶卡26或固態硬碟(Solid State Drive,SSD)27等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的範例示意圖。
一般而言,主機系統11為可實質地與記憶體儲存裝置10配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統11是以電腦系統來作說明,然而,另一範例實施例中,主機系統11可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)31時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式儲存裝置36(如圖3所示)。嵌入式儲存裝置36包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然 而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫 式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的範例示意圖。
請參照圖5,可複寫式非揮發性記憶體模組406包括記憶胞陣列502、字元線控制電路504、位元線控制電路506、行解碼器(column decoder)508、資料輸入/輸出緩衝器510與控制電路512。
在本範例實施例中,記憶胞陣列502可包括用以儲存資料的多個記憶胞602、多個選擇閘汲極(select gate drain,SGD)電晶體612與多個選擇閘源極(select gate source,SGS)電晶體614、以及連接此些記憶胞的多條位元線604、多條字元線606、與共用源極線608(如圖6所示)。記憶胞602是以陣列方式(或立體堆疊的方式)配置在位元線604與字元線606的交叉點上。當從記憶體控制電路單元404接收到寫入指令或讀取指令時,控制電路512會控制字元線控制電路504、位元線控制電路506、行解碼器508、資 料輸入/輸出緩衝器510來寫入資料至記憶胞陣列502或從記憶胞陣列502中讀取資料,其中字元線控制電路504用以控制施予至字元線606的電壓,位元線控制電路506用以控制施予至位元線604的電壓,行解碼器508依據指令中的列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器510用以暫存資料。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以臨界電壓的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,因而改變了記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為”把資料寫入至記憶胞”或”程式化記憶胞”。隨著臨界電壓的改變,記憶胞陣列502的每一個記憶胞具有多個儲存狀態。並且透過讀取電壓可以判斷記憶胞是屬於哪一個儲存狀態,藉此取得記憶胞所儲存的一或多個位元。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖7,記憶體控制電路單元404包括記憶體管理電路702、主機介面704、記憶體介面706及錯誤檢查與校正電路708。
記憶體管理電路702用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路702具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路702 的操作時,等同於說明記憶體控制電路單元404的操作,以下並不再贅述。
在本範例實施例中,記憶體管理電路702的控制指令是以韌體型式來實作。例如,記憶體管理電路702具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路702的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路702具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路702的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路702的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路702包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是 耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入單元用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面704是耦接至記憶體管理電路702並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面704來傳送至記憶體管理電路702。在本範例實施例中,主機介面704是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面704亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面706是耦接至記憶體管理電路702並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面706轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說, 若記憶體管理電路702要存取可複寫式非揮發性記憶體模組406,記憶體介面706會傳送對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路708是耦接至記憶體管理電路702並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路702從主機系統11中接收到寫入指令時,錯誤檢查與校正電路708會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路702會將對應此寫入指令的資料與對應的錯誤更正碼或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路702從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼或錯誤檢查碼,並且錯誤檢查與校正電路708會依據此錯誤更正碼或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體710與電源管理電路712。緩衝記憶體710是耦接至記憶體管理電路702並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路712是耦接至記憶體管理電路702並且用以控制記憶體儲存裝置10的電源。
圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。在此範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區 包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。在本範例實施例中,每一個資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,本發明並不限制實體扇的大小以及個數。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。
請參照圖8,記憶體管理電路702可將可複寫式非揮發性記憶體模組406的實體抹除單元800(0)~800(R)邏輯地劃分為多個區域,例如為儲存區802與系統區806。
儲存區802的實體抹除單元是用以儲存來自主機系統11的資料。儲存區802中會儲存有效資料與無效資料。例如,當主機系統要刪除一份有效資料時,被刪除的資料可能還是儲存在儲存區802中,但會被標記為無效資料。沒有儲存有效資料的實體抹除單元亦被稱為閒置(spare)實體抹除單元。例如,被抹除以後的實體抹除單元便會成為閒置實體抹除單元。若儲存區802或系統區806中有實體抹除單元損壞時,儲存區802中的實體抹除單元也可以用來替換損壞的實體抹除單元。倘若儲存區802中沒有可用的實體抹除單元來替換損壞的實體抹除單元時,則記憶體管理電路702會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。此外,有儲存有效資料的實體 抹除單元亦被稱為非閒置(non-spare)實體抹除單元。
系統區806的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
儲存區802與系統區806的實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至儲存區802與系統區806的分組關係會動態地變動。例如,當系統區806中的實體抹除單元損壞而被儲存區802的實體抹除單元取代時,則原本在儲存區802的實體抹除單元會被關聯至系統區806。
記憶體管理電路702會配置邏輯單元810(0)~810(D)以映射至儲存區802中的實體抹除單元800(0)~800(A)。例如,在本範例實施例中,主機系統11是透過邏輯位址來存取儲存區802中的資料,因此,每一個邏輯單元810(0)~810(D)是指一個邏輯位址。此外,在一範例實施例中,每一個邏輯單元810(0)~810(D)也可以是指一個邏輯扇、一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續的邏輯位址組成。每一個邏輯單元810(0)~810(D)是映射至一或多個實體單元。在本範例實施例中,一個實體單元是指一個實體抹除單元。然而,在另一範例實施例中,一個實體單元也可以是一個實體位址、一個實體扇、一個實體程式化單元或者是由多個連續的實體位址組成,本發明不加以限制。記憶體管理電路702會將邏輯單元與實體單元之間的映射關係記錄於一或多 個邏輯-實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路702可根據此一或多個邏輯-實體映射表來執行對於記憶體儲存裝置10的資料存取。
在本範例實施例中,記憶體管理電路702會判斷一個實單元(亦稱為第一實體單元)是屬於第一類實體單元或第二類實體單元。為便於說明,以下將以一個實體抹除單元作為一個實體單元對本發明的至少一範例實施例進行說明。記憶體管理電路702會判斷一個實體抹除單元(亦稱為第一實體抹除單元)是屬於第一類實體抹除單元或第二類實體抹除單元。例如,記憶體管理電路702可以根據第一實體抹除單元的資料密度,來判斷第一實體抹除單元是屬於第一類實體抹除單元或第二類實體抹除單元。其中,若一個實體抹除單元屬於第一類實體抹除單元,則此實體抹除單元的資料密度(亦稱為第一資料密度)會低於屬於第二類實體抹除單元的另一個實體抹除單元的資料密度(亦稱為第二資料密度)。
在一範例實施例中,一個實體抹除單元的資料密度是與儲存在此實體抹除單元中的資料所對應的邏輯單元的數目及/或資料長度有關。例如,一個實體抹除單元的資料密度是正相關(positively correlated)於儲存在此實體抹除單元中的資料所對應的邏輯單元的數目及/或資料長度。也就是說,若儲存在一個實體抹除單元中的資料所對應的邏輯單元的數目越多,或者此資料所對應的邏輯單元的資料長度越長,則此實體抹除單元的資料密度就 越大;若儲存在一個實體抹除單元中的資料所對應的邏輯單元的數目越少,或者此資料所對應的邏輯單元的資料長度越短,則此實體抹除單元的資料密度就越小。值得一提的是,在本範例實施例中,所提及的資料所對應的邏輯單元的數目與資料長度分別是指此資料所對應的所有邏輯單元的總數與總資料長度(或稱為總容量)。例如,若儲存在一個實體抹除單元中且寫滿此實體抹除單元的資料是對應至512個邏輯單元,其中每一個邏輯單元的資料長度是4KB,則表示儲存在此實體抹除單元中的資料所對應的邏輯單元的數目是512個,且此些邏輯單元的資料長度是2048KB。此外,儲存在一個實體抹除單元中的資料所對應的邏輯單元的數目也可以是任意的實數。例如,若主機系統11欲儲存一筆資料長度是5KB的資料至可複寫式非揮發性記憶體模組406,則此資料僅會使用到1又1/4個邏輯單元(例如,一個邏輯單元的資料長度是4KB),並且在將此資料寫入至可複寫式非揮發性記憶體模組406之後,此資料是對應至1又1/4個邏輯單元。在另一範例實施例中,所提及的資料所對應的邏輯單元的數目與資料長度分別是指有效資料或某些特定類型的資料(例如,系統資料或使用者資料)所對應的所有邏輯單元的總數與總資料長度。
在一範例實施例中,一個實體抹除單元的資料密度也會與儲存在此實體抹除單元中的資料是否被壓縮及/或壓縮程度有關。例如,有儲存經過壓縮的資料的實體抹除單元的資料密度會高於沒有儲存經過壓縮的資料的實體抹除單元的資料密度,或者 儲存較多的經過壓縮的資料的實體抹除單元的資料密度會高儲存較少的經過壓縮的資料的實體抹除單元的資料密度。此外,儲存經過強力壓縮的資料的實體抹除單元的資料密度也可能會高於儲存經過輕量壓縮的資料的實體抹除單元的資料密度。例如,若初始大小為2個或2個以上的邏輯單元的資料被壓縮為一個或小於一個邏輯單元的大小,則可將此壓縮視為強力壓縮;若初始大小為2個邏輯單元的資料僅被壓縮為1.5個的邏輯單元的大小,則可將此壓縮視為輕量壓縮。然而,強力壓縮與輕量壓縮是一種相對的概念,而非限於上述。此外,對於資料的編碼(coding)也可能會增加或縮短欲寫入至可複寫式非揮發性記憶體模組406的資料的資料長度。因此,在一範例實施例中,一個實體抹除單元的資料密度也可能會與儲存在此實體抹除單元中的資料是否被編碼及/或編碼類型有關。例如,對於一個儲存有編碼後的資料的實體抹除單元來說,若此編碼後的資料的資料長度短於其編碼前的資料長度,則類似於上述壓縮的概念,此實體抹除單元的資料密度可能會較高。然而,在一些特定的用途中,資料在寫入至可複寫式非揮發性記憶體模組406之前會先被編碼以增加資料長度,因此,相反於上述壓縮的概念,在將此編碼後的資料寫入至可複寫式非揮發性記憶體模組406的一個實體抹除單元之後,此實體抹除單元的資料密度可能會被降低。也就是說,若一筆資料被壓縮或編碼後其資料長度變短,則此資料的資料密度較高,並且在此壓縮或編碼後的資料被寫入至可複寫式非揮發性記憶體模組406中的 某一個實體抹除單元之後,此實體抹除單元的資料密度可能會被提高;反之,若一筆資料被壓縮或編碼後其資料長度變長,則此資料的資料密度較低,並且在將此壓縮或編碼後的資料被寫入至可複寫式非揮發性記憶體模組406中的某一個實體抹除單元之後,此實體抹除單元的資料密度可能會被降低。
圖9是根據本發明的一範例實施例所繪示的管理實體單元的範例示意圖。
請參照圖9,實體抹除單元800(0)包括實體程式化單元910(0)~910(B),並且實體抹除單元800(1)包括實體程式化單元910(B+1)~910(C)。在本範例實施例中,一個實體程式化單元的資料長度等於4個邏輯單元的資料長度。例如,一個實體程式化單元的資料長度是16KB,而一個邏輯單元的資料長度是4KB。假設屬於邏輯單元810(0)~810(3)的資料在寫入至可複寫式非揮發性記憶體模組406之前沒有被壓縮、沒有被編碼、或者有經過壓縮或編碼但其資料長度不變,則在將此些屬於邏輯單元810(0)~810(3)的資料寫入至實體程式化單元910(0)之後,儲存在實體程式化單元910(0)中的資料是對應至4個邏輯單元(即,邏輯單元810(0)~810(3))。另一方面,假設屬於邏輯單元810(4)~810(8)的資料在寫入至可複寫式非揮發性記憶體模組406之前已被壓縮或編碼而使其資料長度變短,例如,縮短成一個實體程式化單元的資料長度,則在將此些屬於邏輯單元810(4)~810(8)的資料寫入至實體程式化單元910(B+1)之後,儲存在實體程式化單元910(B+1)中 的資料是對應至5個邏輯單元(即,邏輯單元810(4)~810(8))。此時,儲存在實體程式化單元910(0)中的資料是對應至4個邏輯單元的資料長度,儲存在實體程式化單元910(B+1)中的資料則是對應至5個邏輯單元的資料長度,並且實體程式化單元910(B+1)的資料密度會高於實體程式化單元910(0)的資料密度。在此範例實施例中,實體程式化單元910(0)可能會被辨識為屬於第一類實體程式化單元,並且實體程式化單元910(B+1)可能會被辨識為屬於第二類實體程式化單元。此外,基於資料本身或使用的壓縮/編碼演算法的特性,上述在對屬於邏輯單元810(4)~810(8)的資料進行壓縮或編碼之後,此些屬於邏輯單元810(4)~810(8)的資料各別的資料長度可以相同也可以不相同。
圖10是根據本發明的另一範例實施例所繪示的管理實體單元的範例示意圖。
請參照圖10,本範例實施例與圖9的範例實施例的差別在於,假設屬於邏輯單元810(4)~810(5)的資料在寫入至可複寫式非揮發性記憶體模組406之前有被壓縮或編碼而使其資料長度變長,例如,增加為一個實體程式化單元的資料長度,則在將此些屬於邏輯單元810(4)~810(5)的資料寫入至實體程式化單元910(B+1)之後,儲存在實體程式化單元910(B+1)中的資料是對應至2個邏輯單元(即,邏輯單元810(4)~810(5))。此時,儲存在實體程式化單元910(0)中的資料是對應至4個邏輯單元的資料長度,儲存在實體程式化單元910(B+1)中的資料則是對應至2個邏 輯單元的資料長度,並且實體程式化單元910(0)的資料密度會高於實體程式化單元910(B+1)的資料密度。在此範例實施例中,實體程式化單元910(0)可能會被辨識為屬於第二類實體程式化單元,並且實體程式化單元910(B+1)可能會被辨識為屬於第一類實體程式化單元。或者,實體程式化單元910(0)與實體程式化單元910(B+1)皆可能會被辨識為屬於第一類實體程式化單元。此外,上述在對屬於邏輯單元810(4)~810(5)的資料進行壓縮或編碼之後,此些屬於邏輯單元810(4)~810(5)的資料各別的資料長度可以相同也可以不相同。
記憶體管理電路702可以根據一個實體單元中的資料所對應的一或多個邏輯單元的數目、資料長度及/或此資料的資料長度相對於其被壓縮或編碼之前是變長或變短等資訊來決定此實體單元的資料密度或者直接據以決定此實體單元是屬於第一類實體單元或第二類實體單元。例如,記憶體管理電路702可以判斷儲存在屬於同一個實體抹除單元的每一個或者大部分的實體程式化單元中的資料是否都是對應至N個或少於N個邏輯單元(例如,N是4)、儲存在此實體抹除單元中的資料所對應的邏輯單元的總數是否小於一預設數目、儲存在此實體抹除單元中的資料所對應的邏輯單元的總資料長度是否小於一預設長度、大部分儲存在此實體抹除單元中的資料是否沒有被編碼或壓縮、以及大部分儲存在此實體抹除單元中的資料是否相對於其被壓縮或編碼之前其資料長度變長。若上述判斷的至少其中之一成立(即,判斷為是),則記 憶體管理電路702可以將此實體抹除單元辨識為屬於第一類實體抹除單元;反之,若上述判斷皆不成立,則此實體抹除單元可能會被辨識為屬於第二類實體抹除單元。以圖9為例,在一範例實施例中,若一個實體程式化單元的資料長度等於4個邏輯單元的資料長度,則對於實體抹除單元800(0)的預設數目可以是“B*4”,並且對於實體抹除單元800(1)的預設數目可以是“(C-B)*4”,其中“B”與“C-B”可以相等也可以不相等。記憶體管理電路702可以僅採用上述多個判斷的至少其中之一或者全部採用,本發明不加以限制。此外,上述與一個實體單元是屬於第一類實體單元或第二類實體單元有關的資訊皆可以例如是記錄於一或多個查找表,以供記憶體管理電路702查詢。
值得一提的是,在上述各範例實施例中,是假設記憶體管理電路702可以獲得儲存於每一個實體單元中的資料所對應的邏輯單元的數目及/或資料長度等資訊。然而,在一範例實施例中,記憶體管理電路702也可能不會獲得儲存於每一個實體單元中的資料所對應的邏輯單元的數目及/或資料長度等資訊。在此種情況下,記憶體管理電路702可以根據第一實體單元的一有效計數(valid_count)的值,來判斷第一實體單元是屬於第一類實體單元或第二類實體單元。例如,此有效計數的值是正相關或負相關(negatively correlated)於第一實體單元的資料密度。以有效計數的值正相關於第一實體單元的資料密度為例,記憶體管理電路702會判斷第一實體單元的一有效計數的值是否大於一門檻值。若此 有效計數的值大於門檻值,記憶體管理電路702會判定第一實體單元是屬於第二類實體單元。若此有效計數的值沒有大於門檻值,則記憶體管理電路702會判定第一實體單元是屬於該第一類實體單元。換言之,在此提及的有效計數可以用來評估儲存在一個實體單元中的資料所對應的邏輯單元的數目、資料長度、此資料相對於其被壓縮或編碼之前其資料長度是變長或變短等等。
在本範例實施例中,記憶體管理電路702可以在任意的時間點來判斷一個實體單元是屬於第一類實體單元或第二類實體單元。然而,在另一範例實施例中,記憶體管理電路702則只會在特定的時間點來執行此判斷。例如,在一範例實施例中,當記憶體管理電路702執行垃圾回收(garbage collection)程序或資料寫入程序等與存取特定的實體單元中的資料有關程序時,記憶體管理電路702可對此特定的實體單元執行上述判斷。例如,在一範例實施例中,當執行垃圾回收程序時,記憶體管理電路702會判斷第一實體單元是屬於第一類實體單元或第二類實體單元,其中此第一實體單元是用來儲存此垃圾回收程序所回收的有效資料。例如,記憶體管理電路702可以在執行垃圾回收程序之前、之後或在執行垃圾回收程序的過程中同步判斷用來儲存所回收的有效資料的第一實體單元是屬於第一類實體單元或第二類實體單元。或者,在另一範例實施例中,當執行主機系統11所請求的資料寫入程序時,記憶體管理電路702會判斷第一實體單元是屬於第一類實體單元或第二類實體單元,其中此第一實體單元是用來儲存 此資料寫入程序所對應的寫入資料。類似地,記憶體管理電路702可以在執行主機系統11所請求的資料寫入程序之前、之後或者在執行此資料寫入程序的過程中同步判斷用來儲存此資料寫入程序所對應的寫入資料的第一實體單元是屬於第一類實體單元或第二類實體單元。值得一提的是,在此提及的判斷還可以包括查詢一查找表以獲得所需的資訊等操作,其中此查找表例如是預先儲存了一個實體單元是屬於第一類實體單元或第二類實體單元、一個實體單元的有效計數、儲存在一個實體單元中的資料所對應的邏輯單元的數目、資料長度、此資料是否被壓縮或編碼等與資料密度有關的資訊。
在記憶體管理電路702得知一個實體單元是屬於第一類實體單元或第二類實體單元之後,記憶體管理電路702可以執行相對應的操作來使用此實體單元。例如,記憶體管理電路702可以將所有來自屬於第一類實體單元的有效資料或資料密度較低的資料(例如,未經過壓縮或編碼的資料、或者經過壓縮或編碼而使其資料長度變長的資料)都儲存到已被識別為第一類實體單元的實體單元或者即將被識別為第一類實體單元的實體單元,並且將所有來自屬於第二類實體單元的有效資料或資料密度較高的資料(例如,經過壓縮或編碼而使其資料長度變短的資料)都儲存到已被識別為第二類實體單元的實體單元或者即將被識別為第二類實體單元的實體單元。藉此,記憶體管理電路702可以將資料密度較高的資料與資料密度較低的資料分開管理。
舉例來說,垃圾回收程序是將一或多個實體抹除單元(即,非閒置實體抹除單元)中的有效資料複製到另外的一或多個實體抹除單元,因此,在一範例實施例中,假設第一實體抹除單元是用來儲存回收的有效資料,且圖8的實體抹除單元800(0)~800(2)是屬於非閒置實體抹除單元,則當執行垃圾回收程序時,記憶體管理電路702還會判斷實體抹除單元800(0)~800(2)中目前有儲存有效資料的每一個實體程式化單元(亦稱為第一實體程式化單元)是屬於第一類實體程式化單元或第二類實體程式化單元。其中,第一類實體程式化單元的資料密度低於第二類實體程式化單元的資料密度。第一類實體程式化單元與第二類實體程式化單元的判斷機制類似於第一類實體抹除單元與第二類實體抹除單元的判斷機制,在此不重複贅述。若一個第一實體程式化單元是屬於第一類實體程式化單元,記憶體管理電路702不會將此第一實體程式化單元所儲存的有效資料複製至第一實體抹除單元。例如,記憶體管理電路702會將此第一實體程式化單元所儲存的有效資料複製至另一個用來儲存回收的有效資料的實體抹除單元。若一個第一實體程式化單元是第二類實體程式化單元,則記憶體管理電路702才會將此第一實體程式化單元所儲存的有效資料複製至第一實體抹除單元。或者,在另一範例實施例中,若一個第一實體程式化單元是屬於第一類實體程式化單元,記憶體管理電路702會將此第一實體程式化單元所儲存的有效資料複製至第一實體抹除單元。若一個第一實體程式化單元是第二類實體程式化單元,則 記憶體管理電路702不會將此第一實體程式化單元所儲存的有效資料複製至第一實體抹除單元。藉此,當執行垃圾回收程序時,記憶體管理電路702可以將來自第一類實體程式化單元的有效資料複製到一個特定的實體抹除單元,並且將來自第二類實體程式化單元的有效資料複製到另一個實體抹除單元。
在一範例實施例中,假設第一實體抹除單元是用來儲存回收的有效資料,且圖8的實體抹除單元800(0)是屬於非閒置實體單元,則當執行垃圾回收程序時,記憶體管理電路702會判斷實體抹除單元800(0)是屬於第一類實體抹除單元或第二類實體抹除單元。若實體抹除單元800(0)是屬於第一類實體抹除單元,則記憶體管理電路702不會將實體抹除單元800(0)所儲存的有效資料複製至第一實體抹除單元。例如,記憶體管理電路702會將實體抹除單元800(0)所儲存的有效資料複製至另一個用來儲存回收的有效資料的實體抹除單元。若實體抹除單元800(0)是屬於第二類實體抹除單元,則記憶體管理電路702才會將實體抹除單元800(0)所儲存的有效資料複製至第一實體抹除單元。或者,記憶體管理電路702也可以僅將來自屬於第一類實體抹除單元的有效資料複製到第一實體抹除單元。藉此,當執行垃圾回收程序時,記憶體管理電路702可以將來自第一類實體抹除單元的有效資料複製到一個特定的實體抹除單元,並且將來自第二類實體抹除單元的有效資料複製到另一個實體抹除單元,以將資料密度較高的有效資料與資料密度較低的有效資料分開管理。
值得一提的是,上述根據儲存有有效資料的實體程式化單元是屬於第一類實體程式化單元或第二類實體程式化單元來執行垃圾回收程序的操作,以及根據儲存有有效資料的實體抹除單元是屬於第一類實體抹除單元或第二類實體抹除單元來執行垃圾回收程序的操作可以單獨使用或合併使用,本發明不加以限制。
在一範例實施例中,當執行資料寫入程序時,記憶體管理電路702會將資料密度較高的資料(例如,經過壓縮或編碼而使其資料長度變短的資料)寫入至同一個實體單元,並且將資料密度較低的資料(例如,沒有經過壓縮或編碼或者經過壓縮或編碼而使其資料長度變長的資料)寫入至另一個實體單元。藉此,當在將資料複製或者寫入至某一個實體單元時,記憶體管理電路702可以預先判斷或設定此實體單元會是屬於第一類實體單元或第二類實體單元,以使用對應的資料管理規則來管理此實體單元。
在本範例實施例中,記憶體管理電路702會定義對於第一類實體單元的資料管理規則(亦稱為第一資料管理規則)與對於第二類實體單元的資料管理規則(亦稱為第二資料管理規則)。在此提及的定義,可以是指設定、載入或啟動,且不限於上述動作。例如,當記憶體儲存裝置10開機時,記憶體管理電路702會載入第一資料管理規則與第二資料管理規則。若記憶體管理電路702判定第一實體單元是屬於第一類實體單元,記憶體管理電路702會根據第一資料管理規則來管理第一實體單元,以使儲存於第一實體單元的資料具有一信賴等級(亦稱為第一信賴等級)。反之,若 記憶體管理電路702判定第一實體單元是屬於第二類實體單元,則記憶體管理電路702會根據第二資料管理規則來管理第一實體單元,以使儲存於第一實體單元的資料具有另一信賴等級(亦稱為第二信賴等級),其中第二信賴等級高於第一信賴等級。
在本範例實施例中,若儲存於一個實體單元中的資料的信賴等級越高,則此資料受保護的程度也越高。也就是說,由於第二類實體單元的資料密度高於第一類實體單元的資料密度,因此若儲存在第二類實體單元中的資料發生錯誤,往往會導致比儲存在第一類實體單元中的資料發生錯誤更加嚴重的後果。因此,在本範例實施例中,記憶體管理電路702在管理第二類實體單元時,會使用對於資料的保護程度相對較高的機制;而在管理第一類實體單元時,會使用對於資料的保護程度相對較低的機制。其中,這些機制包括對於資料的寫入、讀取及/或驗證機制。為便於說明,以下將以第一實體抹除單元作為第一實體單元的範例。
在一範例實施例中,若使用第二資料管理規則來管理第一實體抹除單元,記憶體管理電路702會控制錯誤檢查與校正電路708產生對應於第一實體抹除單元中的多個實體程式化單元的縱向驗證碼,其中此縱向驗證碼用以同時對這些實體程式化單元中的資料執行縱向驗證。例如,一個縱向驗證碼可以同時對一或多個實體抹除單元中的N個實體程式化單元中的資料進行縱向驗證,其中,N可以是3或者更多或更少。當記憶體管理電路702讀取儲存在受同一個縱向驗證碼保護的多個實體程式化單元中的 資料時,記憶體管理電路702會一併讀取此縱向驗證碼,並且錯誤檢查與校正電路708可利用此縱向驗證碼來驗證所讀取的資料的正確性。反之,若使用第一資料管理規則來管理此第一實體抹除單元,則記憶體管理電路702就不會控制錯誤檢查與校正電路708來產生此縱向驗證碼,並且錯誤檢查與校正電路708不會對儲存在此第一實體抹除單元中的資料執行縱向驗證。在一範例實施例中,此縱向驗證碼是理德-所羅門碼(Reed-solomon codes,RS codes),且不限於此。
在一範例實施例中,若使用第一資料管理規則來管理第一實體抹除單元,記憶體管理電路702會控制錯誤檢查與校正電路708產生對應於第一實體抹除單元中的多個實體程式化單元的縱向驗證碼(亦稱為第一縱向驗證碼);若使用第二資料管理規則來管理第一實體抹除單元,記憶體管理電路702則會控制錯誤檢查與校正電路708產生另一個縱向驗證碼(亦稱為第二縱向驗證碼)。其中,第二縱向驗證碼的資料長度會長於第一縱向驗證碼的資料長度。藉此,若第一實體抹除單元是屬於第一類實體抹除單元,則資料長度較短的第一縱向驗證碼可提供對於儲存在第一實體抹除單元中的資料基本的保護;若第一實體抹除單元是屬於第二類實體抹除單元,則資料長度較長的第二縱向驗證碼可提供對於儲存在第一實體抹除單元中的資料較強的保護。換言之,相對於第一縱向驗證碼,第二縱向驗證碼可更正更多的錯誤位元。
在一範例實施例中,若使用第一資料管理規則來管理第 一實體抹除單元,記憶體管理電路702會控制錯誤檢查與校正電路708產生對應於欲儲存至第一實體抹除單元的資料的錯誤更正碼(亦稱為第一錯誤更正碼);若使用第二資料管理規則來管理第一實體抹除單元,記憶體管理電路702則會控制錯誤檢查與校正電路708產生對應於欲儲存至第一實體抹除單元的資料的另一錯誤更正碼(亦稱為第二錯誤更正碼)。其中,第二錯誤更正碼的資料長度會長於第一錯誤更正碼的資料長度。藉此,若第一實體抹除單元是屬於第一類實體抹除單元,則資料長度較短的第一錯誤更正碼可提供對於儲存在第一實體抹除單元中的資料基本的保護;若第一實體抹除單元是屬於第二類實體抹除單元,則資料長度較長的第二錯誤更正碼可提供對於儲存在第一實體抹除單元中的資料較強的保護。換言之,相對於第一錯誤更正碼,第二錯誤更正碼可更正更多的錯誤位元。值得一提的是,相對於上述縱向驗證碼,在此提及的錯誤更正碼指的是對資料進行橫向驗證的碼。例如,對應於多筆資料各別的第N位元的一個縱向驗證碼是用以對此些資料各別的第N位元進行驗證,而對應於一筆資料的一個錯誤更正碼則是對此筆資料的所有位元進行驗證。例如,此錯誤更正碼可以是低密度奇偶檢查校正碼(low density parity code,LDPC)、BCH碼、迴旋碼(convolutional code)、渦輪碼(turbo code),且不限於此。
在一範例實施例中,若使用第一資料管理規則來管理第一實體抹除單元,記憶體管理電路702會以第一實體抹除單元的 預設程式化模式(programming mode)來使用第一實體抹除單元。例如,若此第一實體抹除單元預設是使用SLC、MLC或TLC模式,則記憶體管理電路702會使用此預設程式化模式來程式化第一實體抹除單元中的各個記憶胞。若使用第二資料管理規則來管理第一實體抹除單元,記憶體管理電路702則會以一快頁(fast page)模式來使用第一實體抹除單元。也就是說,若使用快頁模式來使用一個實體抹除單元,則不管此實體抹除單元預設是使用SLC、MLC及TLC模式中的哪一種模式,此實體抹除單元中的每一個記憶胞都只會被用來儲存一個位元。藉此,若第一實體抹除單元是屬於第二類實體抹除單元,則透過減少第一實體抹除單元中每一個記憶胞可能儲存的位元的數目,可降低儲存在第一實體抹除單元中的資料的錯誤率。值得一提的是,在此提及的快頁模式是指類似於SLC模式來程式化記憶胞的操作。然而,快頁模式並不等於使用SLC模式來程式化記憶胞。例如,快頁模式與SLC模式所使用的寫入電壓可能不同,並且一個記憶胞被以快頁模式程式化後的臨界電壓與以SLC模式程式化後的臨界電壓也可能不同。
在一範例實施例中,若使用第一資料管理規則來管理第一實體抹除單元,記憶體管理電路702會將對於第一實體抹除單元的寫入電壓設定為一或多個預設寫入電壓。若使用第二資料管理規則來管理第一實體抹除單元,記憶體管理電路702則會根據第一實體抹除單元中至少一記憶胞的使用程度,動態地調整對於第一實體抹除單元的寫入電壓。特別是,在此提及的至少一記憶 胞的使用程度,可以是指一或多個記憶胞的損耗程度或平均損耗程度。例如,可透過每一個記憶胞的損耗程度值或多個記憶胞的平均損耗程度值來評估此至少一記憶胞的使用程度。然後,針對每一個或多個記憶胞的使用程度,記憶體管理電路702可動態地調整對於每一個或多個記憶胞的寫入電壓。此外,每一個記憶胞的損耗程度值可以根據每一個記憶胞的抹除次數、寫入次數、錯誤位元數、錯誤位元率、讀取次數或這些參數的組合而獲得。也就是說,在程式化第一實體抹除單元的一個記憶胞時,對於使用程度不同的記憶胞,可改變注入記憶胞的電荷補捉層的電子量。例如,記憶體管理電路702可以發送帶有指示欲使用的寫入電壓或指示使用適當的寫入電壓的指令序列至可複寫式非揮發性記憶體模組406。藉此,對於屬於第二類實體抹除單元的第一實體抹除單元,雖然寫入資料的速度可能會降低,卻可有效確保資料寫入的穩定性。
值得一提的是,上述各個範例實施例所提及的各種第一資料管理規則與第二資料管理規則,可以單獨使用也可以搭配使用。例如,在一範例實施例中,若使用第一資料管理規則來管理一個實體抹除單元,記憶體管理電路702會利用第一縱向驗證碼與第一錯誤更正碼來提供基本的保護給儲存在此實體抹除單元中的資料;而若使用第二資料管理規則來管理另一個實體抹除單元,則記憶體管理電路702會利用第二縱向驗證碼、第二錯誤更正碼並且搭配使用快頁模式來提供進階的保護給儲存在此另一實 體抹除單元中的資料。
此外,雖然上述各範例實施例主要是以實體抹除單元作為實體單元的範例,然而,在另一範例實施例中,一個實體單元亦可以是一個實體位址、一個實體扇、一個實體程式化單元或者是由多個連續的實體位址組成,本發明不加以限制。在一範例實施例中,一個實體單元包括多個實體子單元。例如,在以實體抹除單元作為實體單元的範例中,一個實體子單元可以是指一個實體位址、一個實體扇、一個實體程式化單元或者多個連續的實體位址。或者,在以一個實體程式化單元作為實體單元的範例中,一個實體子單元可以是指一個實體位址、一個實體扇或者多個連續的實體位址。此外,在一範例實施例中,一個實體單元的資料密度只與儲存在此實體單元中的有效資料有關,而與儲存在此實體單元中的無效資料無關。
圖11是根據本發明的一範例實施例所繪示的資料管理方法的流程圖。請參照圖11,在步驟S1102中,定義對於第一類實體單元的第一資料管理規則與對於第二類實體單元的第二資料管理規則,其中第一類實體單元的第一資料密度低於第二類實體單元的第二資料密度。在步驟S1104中,判斷第一實體單元屬於第一類實體單元或第二類實體單元。若第一實體單元屬於第一類實體單元,在步驟S1106中,根據第一資料管理規則來管理第一實體單元,以使儲存於第一實體單元中的資料具有第一信賴等級。若所述第一實體單元屬於第二類實體單元,在步驟S1108中,根 據第二資料管理規則來管理第一實體單元,以使儲存於第一實體單元的資料具有第二信賴等級,其中第二信賴等級高於第一信賴等級。然而,圖11中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖11中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。此外,圖11的方法可以搭配以上實施例使用,也可以單獨使用,本發明並不在此限。
綜上所述,在本發明的一範例實施例中,若一個實體單元的資料密度較高,則對於此實體單元的保護會被增強。若一個實體單元的資料密度較低,則對於此實體單元的保護強度會維持在基本強度。藉此,可在不嚴重影響記憶體儲存裝置的存取效能的前提下,有效地降低資料密度較高的實體單元中的資料發生錯誤的機率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1102、S1104、S1106、S1108‧‧‧步驟

Claims (23)

  1. 一種記憶體管理方法,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,該記憶體管理方法包括:定義對於一第一類實體單元的一第一資料管理規則與對於一第二類實體單元的一第二資料管理規則,其中該第一類實體單元的一第一資料密度低於該第二類實體單元的一第二資料密度;若該些實體單元中的一第一實體單元屬於該第一類實體單元,根據該第一資料管理規則來管理該第一實體單元,以使儲存於該第一實體單元的資料具有一第一信賴等級;以及若該些實體單元中的該第一實體單元屬於該第二類實體單元,根據該第二資料管理規則來管理該第一實體單元,以使儲存於該第一實體單元的資料具有一第二信賴等級,其中該第二信賴等級高於該第一信賴等級。
  2. 如申請專利範圍第1項所述的記憶體管理方法,更包括:判斷該些實體單元中的該第一實體單元的一有效計數的值是否大於一門檻值;若該第一實體單元的該有效計數的值大於該門檻值,判定該第一實體單元是屬於該第二類實體單元;以及若該第一實體單元的該有效計數的值沒有大於該門檻值,判定該第一實體單元是屬於該第一類實體單元。
  3. 如申請專利範圍第2項所述的記憶體管理方法,其中該有 效計數的值正相關於(positively correlated)該第一實體單元的一資料密度。
  4. 如申請專利範圍第1項所述的記憶體管理方法,其中儲存於該第一類實體單元中的資料所對應的邏輯單元的數目小於儲存於該第二類實體單元中的資料所對應的邏輯單元的數目。
  5. 如申請專利範圍第1項所述的記憶體管理方法,更包括:當執行一垃圾回收程序時,判斷該些實體單元中的該第一實體單元是屬於該第一類實體單元或該第二類實體單元,其中該第一實體單元是用來儲存該垃圾回收程序所回收的有效資料。
  6. 如申請專利範圍第5項所述的記憶體管理方法,其中該些實體單元包括一非閒置實體單元,並且該非閒置實體單元包括儲存有一有效資料的一第一實體子單元,該記憶體管理方法更包括:當執行該垃圾回收程序時,判斷該第一實體子單元是屬於一第一類實體子單元或一第二類實體子單元,或者判斷該非閒置實體單元是屬於該第一類實體單元或該第二類實體單元;若該第一實體子單元是屬於該第一類實體子單元或該非閒置實體單元是屬於該第一類實體單元,不將該第一實體子單元所儲存的該有效資料複製至該第一實體單元;以及若該第一實體子單元是屬於該第二類實體子單元或該非閒置實體單元是屬於該第二類實體單元,將該第一實體子單元所儲存的該有效資料複製至該第一實體單元。
  7. 如申請專利範圍第1項所述的記憶體管理方法,更包括: 當執行一主機系統所請求的一資料寫入程序時,判斷該些實體單元中的該第一實體單元是屬於該第一類實體單元或該第二類實體單元,其中該第一實體單元是用來儲存該資料寫入程序所對應的一寫入資料。
  8. 如申請專利範圍第1項所述的記憶體管理方法,其中根據該第一資料管理規則來管理該第一實體單元的步驟包括:不產生對應於該第一實體單元的一縱向驗證碼,其中該縱向驗證碼用以對該第一實體單元中的資料執行一縱向驗證;其中根據該第二資料管理規則來管理該第一實體單元的步驟包括:產生對應於該第一實體單元的該縱向驗證碼。
  9. 如申請專利範圍第1項所述的記憶體管理方法,其中根據該第一資料管理規則來管理該第一實體單元的步驟包括:產生對應於該第一實體單元的一第一縱向驗證碼,其中根據該第二資料管理規則來管理該第一實體單元的步驟包括:產生對應於該第一實體單元的一第二縱向驗證碼,其中該第一縱向驗證碼用以對該第一實體單元中的資料執行一第一縱向驗證,該第二縱向驗證碼用以對該第一實體單元中的資料執行一第二縱向驗證,並且該第二縱向驗證碼的長度長於該第一縱向驗證碼的長度。
  10. 如申請專利範圍第1項所述的記憶體管理方法,其中根 據該第一資料管理規則來管理該第一實體單元的步驟包括:產生對應於欲儲存至該第一實體單元的資料的一第一錯誤更正碼,其中根據該第二資料管理規則來管理該第一實體單元的步驟包括:產生對應於欲儲存至該第一實體單元的資料的一第二錯誤更正碼,其中該第二錯誤更正碼的長度長於該第一錯誤更正碼的長度。
  11. 如申請專利範圍第1項所述的記憶體管理方法,其中根據該第一資料管理規則來管理該第一實體單元的步驟包括:以一預設程式化模式來使用該第一實體單元,其中根據該第二資料管理規則來管理該第一實體單元的步驟包括:以一快頁(fast page)模式來使用該第一實體單元。
  12. 如申請專利範圍第1項所述的記憶體管理方法,其中根據該第一資料管理規則來管理該第一實體單元的步驟包括:將對於該第一實體單元的一寫入電壓設定為一預設寫入電壓,其中根據該第二資料管理規則來管理該第一實體單元的步驟包括:根據該第一實體單元中至少一記憶胞的一使用程度,動態調整對於該第一實體單元的該寫入電壓。
  13. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以定義對於一第一類實體單元的一第一資料管理規則與對於一第二類實體單元的一第二資料管理規則,其中該第一類實體單元的一第一資料密度低於該第二類實體單元的一第二資料密度,若該些實體單元中的一第一實體單元屬於該第一類實體單元,該記憶體控制電路單元更用以根據該第一資料管理規則來管理該第一實體單元,以使儲存於該第一實體單元的資料具有一第一信賴等級,若該些實體單元中的該第一實體單元屬於該第二類實體單元,該記憶體控制電路單元更用以根據該第二資料管理規則來管理該第一實體單元,以使儲存於該第一實體單元的資料具有一第二信賴等級,其中該第二信賴等級高於該第一信賴等級。
  14. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以判斷該些實體單元中的該第一實體單元的一有效計數的值是否大於一門檻值,若該第一實體單元的該有效計數的值大於該門檻值,該記憶體控制電路單元更用以判定該第一實體單元是屬於該第二類實體 單元,若該第一實體單元的該有效計數的值沒有大於該門檻值,該記憶體控制電路單元更用以判定該第一實體單元是屬於該第一類實體單元。
  15. 如申請專利範圍第14項所述的記憶體儲存裝置,其中該有效計數的值正相關於該第一實體單元的一資料密度。
  16. 如申請專利範圍第13項所述的記憶體儲存裝置,其中儲存於該第一類實體單元中的資料所對應的邏輯單元的數目小於儲存於該第二類實體單元中的資料所對應的邏輯單元的數目。
  17. 如申請專利範圍第13項所述的記憶體儲存裝置,其中當執行一垃圾回收程序時,該記憶體控制電路單元更用以判斷該些實體單元中的該第一實體單元是屬於該第一類實體單元或該第二類實體單元,其中該第一實體單元是用來儲存該垃圾回收程序所回收的有效資料。
  18. 如申請專利範圍第13項所述的記憶體儲存裝置,其中當執行一主機系統所請求的一資料寫入程序時,該記憶體控制電路單元更用以判斷該些實體單元中的該第一實體單元是屬於該第一類實體單元或該第二類實體單元,其中該第一實體單元是用來儲存該資料寫入程序所對應的一寫入資料。
  19. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該第一資料管理規則來管理該第一實體單元的操作包括: 以一預設程式化模式來使用該第一實體單元,其中該記憶體控制電路單元根據該第二資料管理規則來管理該第一實體單元的操作包括:以一快頁模式來使用該第一實體單元。
  20. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以定義對於一第一類實體單元的一第一資料管理規則與對於一第二類實體單元的一第二資料管理規則,其中該第一類實體單元的一第一資料密度低於該第二類實體單元的一第二資料密度,若該些實體單元中的一第一實體單元屬於該第一類實體單元,該記憶體管理電路更用以根據該第一資料管理規則來管理該第一實體單元,以使儲存於該第一實體單元的資料具有一第一信賴等級,若該些實體單元中的該第一實體單元屬於該第二類實體單元,該記憶體管理電路更用以根據該第二資料管理規則來管理該第一實體單元,以使儲存於該第一實體單元的資料具有一第二信 賴等級,其中該第二信賴等級高於該第一信賴等級。
  21. 如申請專利範圍第20項所述的記憶體控制電路單元,其中該記憶體管理電路更用以判斷該些實體單元中的該第一實體單元的一有效計數的值是否大於一門檻值,若該第一實體單元的該有效計數的值大於該門檻值,該記憶體管理電路更用以判定該第一實體單元是屬於該第二類實體單元,若該第一實體單元的該有效計數的值沒有大於該門檻值,該記憶體管理電路更用以判定該第一實體單元是屬於該第一類實體單元。
  22. 如申請專利範圍第20項所述的記憶體控制電路單元,其中該有效計數的值正相關於該第一實體單元的一資料密度。
  23. 如申請專利範圍第20項所述的記憶體控制電路單元,其中儲存於該第一類實體單元中的資料所對應的邏輯單元的數目小於儲存於該第二類實體單元中的資料所對應的邏輯單元的數目。
TW103129175A 2014-08-25 2014-08-25 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 TWI529530B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW103129175A TWI529530B (zh) 2014-08-25 2014-08-25 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US14/519,138 US10459630B2 (en) 2014-08-25 2014-10-21 Memory management method, memory storage device and memory controlling circuit unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103129175A TWI529530B (zh) 2014-08-25 2014-08-25 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Publications (2)

Publication Number Publication Date
TW201608375A TW201608375A (zh) 2016-03-01
TWI529530B true TWI529530B (zh) 2016-04-11

Family

ID=55348345

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103129175A TWI529530B (zh) 2014-08-25 2014-08-25 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Country Status (2)

Country Link
US (1) US10459630B2 (zh)
TW (1) TWI529530B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI658463B (zh) * 2018-08-23 2019-05-01 群聯電子股份有限公司 資料存取方法、記憶體控制電路單元與記憶體儲存裝置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI628660B (zh) * 2017-09-19 2018-07-01 群聯電子股份有限公司 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
TWI633428B (zh) * 2017-09-28 2018-08-21 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
TWI680373B (zh) * 2018-03-29 2019-12-21 大陸商合肥沛睿微電子股份有限公司 固態硬碟及其運作方法
TWI705333B (zh) * 2018-03-29 2020-09-21 大陸商合肥沛睿微電子股份有限公司 控制電路及控制方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101632068B (zh) * 2007-12-28 2015-01-14 株式会社东芝 半导体存储装置
US8321727B2 (en) * 2009-06-29 2012-11-27 Sandisk Technologies Inc. System and method responsive to a rate of change of a performance parameter of a memory
TWI459197B (zh) * 2011-04-21 2014-11-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8949513B2 (en) * 2011-05-10 2015-02-03 Marvell World Trade Ltd. Data compression and compacting for memory devices
TW201416849A (zh) * 2012-10-30 2014-05-01 Jmicron Technology Corp 錯誤檢查及校正方法以及相關錯誤檢查及校正電路
KR20140067254A (ko) * 2012-11-26 2014-06-05 삼성전자주식회사 메모리 시스템과 이의 동작 방법
US9619309B2 (en) * 2012-12-28 2017-04-11 Intel Corporation Enforcing different operational configurations for different tasks for failure rate based control of processors
US9939865B2 (en) * 2014-06-13 2018-04-10 Seagate Technology Llc Selective storage resource powering for data transfer management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI658463B (zh) * 2018-08-23 2019-05-01 群聯電子股份有限公司 資料存取方法、記憶體控制電路單元與記憶體儲存裝置

Also Published As

Publication number Publication date
TW201608375A (zh) 2016-03-01
US20160054921A1 (en) 2016-02-25
US10459630B2 (en) 2019-10-29

Similar Documents

Publication Publication Date Title
TWI649754B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI582779B (zh) 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元
TW201642266A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI550612B (zh) 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元
TWI670716B (zh) 資料存取方法、記憶體儲存裝置與記憶體控制電路單元
TW201802823A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI554885B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TWI529530B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TW202009942A (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
TWI672698B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TWI545581B (zh) 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
TW201913382A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI628543B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI670725B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TW202029202A (zh) 解碼方法、記憶體控制電路單元與記憶體儲存裝置
TWI797464B (zh) 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元
TW202022877A (zh) 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
TWI550625B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI597731B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI783522B (zh) 資料重建方法、記憶體儲存裝置及記憶體控制電路單元
TWI751620B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TWI554884B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI834149B (zh) 表格管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI808483B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元