TW202301131A - 跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents

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

Info

Publication number
TW202301131A
TW202301131A TW110123904A TW110123904A TW202301131A TW 202301131 A TW202301131 A TW 202301131A TW 110123904 A TW110123904 A TW 110123904A TW 110123904 A TW110123904 A TW 110123904A TW 202301131 A TW202301131 A TW 202301131A
Authority
TW
Taiwan
Prior art keywords
group
data
physical
entity
tag
Prior art date
Application number
TW110123904A
Other languages
English (en)
Other versions
TWI764771B (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 TW110123904A priority Critical patent/TWI764771B/zh
Priority to US17/376,194 priority patent/US11669394B2/en
Application granted granted Critical
Publication of TWI764771B publication Critical patent/TWI764771B/zh
Publication of TW202301131A publication Critical patent/TW202301131A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding 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
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0703Error 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F3/0688Non-volatile semiconductor memory arrays

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元。所述方法包括:讀取對應於第一實體群組的標籤置換資訊;編碼第一資料;將經編碼的第一資料的第一部分資料儲存至第一實體群組中對應於第一標籤資訊的至少一第一實體單元;以及根據所述標籤置換資訊將經編碼的第一資料的第二部分資料儲存至第一實體群組中對應於第二標籤資訊的至少一第二實體單元。所述第一標籤資訊對應於第一跨框編碼群組。所述第二標籤資訊對應於第二跨框編碼群組。所述第一跨框編碼群組不同於所述第二跨框編碼群組。

Description

跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元
本發明是有關於一種記憶體內部的群組編碼管理技術,且特別是有關於一種跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元。
行動電話與筆記型電腦等可攜式電子裝置在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式電子裝置中。
在獨立硬碟冗餘陣列(Redundant Array of Independent Disks, RAID)錯誤更正碼(Error Correction Code, ECC)架構下,存入可複寫式非揮發性記憶體模組的多個實體程式化單元(例如實體頁)的資料可被編碼,以產生可同時保護多個實體程式化單元中的資料的奇偶(parity)資料(亦稱為全域(global)奇偶資料)。在解碼資料時,此全域奇偶資料可利用多個實體程式化單元中的資料位元彼此間的邏輯關係來執行跨實體程式化單元的錯誤偵測及/或更正。
然而,在包含可複寫式非揮發性記憶體模組的記憶體儲存裝置出廠時,可複寫式非揮發性記憶體模組中可被同步編碼的多個實體程式化單元是固定的並且可被賦予同一個標籤(亦稱為編碼標籤)。當儲存資料時,對應於同一個標籤的實體程式化單元中的資料可被同步編碼以產生對應的全域奇偶資料。但是,隨著可複寫式非揮發性記憶體模組的損耗增加(例如P/E周期增加),一旦被賦予相同標籤的多個實體程式化單元中同時出現多個位元錯誤率(Bit Error Rate, BER)較高的實體程式化單元,往後從這幾個實體程式化單元讀取的資料可能就無法被成功解碼。
本發明提供一種跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元,可動態管理可複寫式非揮發性記憶體模組中對資料的群組編碼配置,從而提高可複寫式非揮發性記憶體模組的使用效率。
本發明的範例實施例提供一種跨框編碼管理方法,其用於可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體群組。所述多個實體群組中的每一個實體群組包括多個實體單元。所述跨框編碼管理方法包括:讀取對應於所述多個實體群組中的第一實體群組的標籤置換資訊;編碼第一資料;將經編碼的所述第一資料的第一部分資料儲存至所述第一實體群組中對應於第一標籤資訊的至少一第一實體單元;以及根據所述標籤置換資訊將經編碼的所述第一資料的第二部分資料儲存至所述第一實體群組中對應於第二標籤資訊的至少一第二實體單元。所述第一標籤資訊對應於第一跨框編碼群組。所述第二標籤資訊對應於第二跨框編碼群組。所述第一跨框編碼群組不同於所述第二跨框編碼群組。
在本發明的一範例實施例中,所述的跨框編碼管理方法更包括:為所述第一實體群組中的每一實體單元配置標籤資訊,其中所述標籤資訊反映所述每一實體單元所屬的跨框編碼群組。
在本發明的一範例實施例中,所述的跨框編碼管理方法更包括:根據所述第一資料的編碼結果產生奇偶資料。所述奇偶資料用以保護儲存於所述至少一第一實體單元的所述第一資料的所述第一部分資料以及儲存於所述至少一第二實體單元的所述第一資料的所述第二部分資料。
在本發明的一範例實施例中,根據所述標籤置換資訊將經編碼的所述第一資料的所述第二部分資料儲存至所述第一實體群組中對應於所述第二標籤資訊的所述至少一第二實體單元的步驟包括:根據所述標籤置換資訊將所述至少一第二實體單元所對應的所述第二標籤資訊與所述第一實體群組中的至少一第三實體單元所對應的所述第一標籤資訊對調;以及根據標籤對調結果將所述第二部分資料儲存至所述至少一第二實體單元。
在本發明的一範例實施例中,根據所述標籤置換資訊將經編碼的所述第一資料的所述第二部分資料儲存至所述第一實體群組中對應於所述第二標籤資訊的所述至少一第二實體單元的步驟包括:將經編碼的所述第一資料的所述第二部分資料儲存至所述至少一第二實體單元中的資料區;以及將所述標籤置換資訊儲存至所述至少一第二實體單元中的閒置區。
在本發明的一範例實施例中,所述的跨框編碼管理方法更包括:在讀取對應於所述第一實體群組的所述標籤置換資訊之前,從所述第一實體群組中讀取第二資料;根據所述第二資料的位元錯誤狀況儲存所述標籤置換資訊;將所述第二資料搬移到所述多個實體群組中的第二實體群組進行儲存;以及抹除所述第一實體群組。
在本發明的一範例實施例中,根據所述第二資料的所述位元錯誤狀況儲存所述標籤置換資訊的步驟包括:響應於從所述第一實體群組中的至少一第三實體單元讀取的資料的位元錯誤率高於預設值,儲存對應於所述至少一第三實體單元的所述標籤置換資訊。
本發明的範例實施例另提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體群組。所述多個實體群組中的每一個實體群組包括多個實體單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以讀取對應於所述多個實體群組中的第一實體群組的標籤置換資訊。所述記憶體控制電路單元更用以編碼第一資料。所述記憶體控制電路單元更用以將經編碼的所述第一資料的第一部分資料儲存至所述第一實體群組中對應於第一標籤資訊的至少一第一實體單元。所述記憶體控制電路單元更用以根據所述標籤置換資訊將經編碼的所述第一資料的第二部分資料儲存至所述第一實體群組中對應於第二標籤資訊的至少一第二實體單元。所述第一標籤資訊對應於第一跨框編碼群組。所述第二標籤資訊對應於第二跨框編碼群組。所述第一跨框編碼群組不同於所述第二跨框編碼群組。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以為所述第一實體群組中的每一實體單元配置標籤資訊,其中所述標籤資訊反映所述每一實體單元所屬的跨框編碼群組。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述第一資料的編碼結果產生奇偶資料。所述奇偶資料用以保護儲存於所述至少一第一實體單元的所述第一資料的所述第一部分資料以及儲存於所述至少一第二實體單元的所述第一資料的所述第二部分資料。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以:在讀取對應於所述第一實體群組的所述標籤置換資訊之前,從所述第一實體群組中讀取第二資料;根據所述第二資料的位元錯誤狀況儲存所述標籤置換資訊;將所述第二資料搬移到所述多個實體群組中的第二實體群組進行儲存;以及抹除所述第一實體群組。
本發明的範例實施例另提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體群組。所述多個實體群組中的每一個實體群組包括多個實體單元。所述記憶體控制電路單元包括主機介面、記憶體介面、錯誤檢查與校正電路及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面、所述記憶體介面及所述錯誤檢查與校正電路。所述記憶體管理電路用以讀取對應於所述多個實體群組中的第一實體群組的標籤置換資訊。所述錯誤檢查與校正電路用以編碼第一資料。所述記憶體管理電路更用以將經編碼的所述第一資料的第一部分資料儲存至所述第一實體群組中對應於第一標籤資訊的至少一第一實體單元。所述記憶體管理電路更用以根據所述標籤置換資訊將經編碼的所述第一資料的第二部分資料儲存至所述第一實體群組中對應於第二標籤資訊的至少一第二實體單元。所述第一標籤資訊對應於第一跨框編碼群組。所述第二標籤資訊對應於第二跨框編碼群組。所述第一跨框編碼群組不同於所述第二跨框編碼群組。
在本發明的一範例實施例中,所述記憶體管理電路更用以為所述第一實體群組中的每一實體單元配置標籤資訊。所述標籤資訊反映所述每一實體單元所屬的跨框編碼群組。
在本發明的一範例實施例中,所述錯誤檢查與校正電路更用以根據所述第一資料的編碼結果產生奇偶資料。所述奇偶資料用以保護儲存於所述至少一第一實體單元的所述第一資料的所述第一部分資料以及儲存於所述至少一第二實體單元的所述第一資料的所述第二部分資料。
在本發明的一範例實施例中,根據所述標籤置換資訊將經編碼的所述第一資料的所述第二部分資料儲存至所述第一實體群組中對應於所述第二標籤資訊的所述至少一第二實體單元的操作包括:根據所述標籤置換資訊將所述至少一第二實體單元所對應的所述第二標籤資訊與所述第一實體群組中的至少一第三實體單元所對應的所述第一標籤資訊對調;以及根據標籤對調結果將所述第二部分資料儲存至所述至少一第二實體單元。
在本發明的一範例實施例中,所述至少一第二實體單元的位元錯誤率低於所述至少一第三實體單元的位元錯誤率。
在本發明的一範例實施例中,根據所述標籤置換資訊將經編碼的所述第一資料的所述第二部分資料儲存至所述第一實體群組中對應於所述第二標籤資訊的所述至少一第二實體單元的操作包括:將經編碼的所述第一資料的所述第二部分資料儲存至所述至少一第二實體單元中的資料區;以及將所述標籤置換資訊儲存至所述至少一第二實體單元中的閒置區。
在本發明的一範例實施例中,所述記憶體管理電路更用以:在讀取對應於所述第一實體群組的所述標籤置換資訊之前,從所述第一實體群組中讀取第二資料;根據所述第二資料的位元錯誤狀況儲存所述標籤置換資訊;將所述第二資料搬移到所述多個實體群組中的第二實體群組進行儲存;以及抹除所述第一實體群組。
在本發明的一範例實施例中,根據所述第二資料的所述位元錯誤狀況儲存所述標籤置換資訊的操作包括:響應於從所述第一實體群組中的至少一第三實體單元讀取的資料的位元錯誤率高於預設值,儲存對應於所述至少一第三實體單元的所述標籤置換資訊。
本發明的範例實施例另提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體群組。所述多個實體群組中的每一個實體群組包括多個實體單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以發送讀取指令序列,其指示從所述多個實體群組中的第一實體群組讀取第二資料。所述記憶體控制電路單元更用以根據所述第二資料的位元錯誤狀況調整所述第一實體群組的跨框編碼群組之配置。所述跨框編碼群組之配置反映所述第一實體群組中的多個實體單元屬於同一個跨框編碼群組。所述記憶體控制電路單元更用以根據經調整的所述跨框編碼群組之配置來存取所述第一實體群組。
在本發明的一範例實施例中,根據所述第二資料的所述位元錯誤狀況調整所述第一實體群組的所述跨框編碼群組之配置的操作包括:響應於從所述第一實體群組中的至少一第三實體單元讀取的資料的位元錯誤率高於預設值,調整所述第一實體群組的所述跨框編碼群組之配置。
在本發明的一範例實施例中,根據所述第二資料的所述位元錯誤狀況調整所述第一實體群組的所述跨框編碼群組之配置的操作包括:將所述第一實體群組中的一部分的實體單元所屬的跨框編碼群組與所述第一實體群組中的另一部分的實體單元所屬的跨框編碼群組對調,以改變所述第一實體群組的所述跨框編碼群組之配置。
在本發明的一範例實施例中,將所述第一實體群組中的所述部分的實體單元所屬的跨框編碼群組與所述第一實體群組中的所述另一部分的實體單元所屬的跨框編碼群組對調的操作包括:將所述第一實體群組中的所述部分的實體單元所對應的標籤資訊與所述第一實體群組中的所述另一部分的實體單元所對應的標籤資訊對調。
本發明的一範例實施例中,根據經調整的所述跨框編碼群組之配置來存取所述第一實體群組的操作包括:儲存標籤置換資訊,其反映經調整的所述第一實體群組的所述跨框編碼群組之配置;以及根據所述標籤置換資訊來存取所述第一實體群組。
基於上述,在讀取對應於第一實體群組的標籤置換資訊後,經編碼的第一資料的第一部分資料可被儲存至第一實體群組中對應於第一標籤資訊的第一實體單元。另一方面,經編碼的第一資料的第二部分資料則可根據所述標籤置換資訊而被儲存至第一實體群組中對應於第二標籤資訊的第二實體單元。第一標籤資訊對應於第一跨框編碼群組。第二標籤資訊對應於第二跨框編碼群組。第一跨框編碼群組不同於第二跨框編碼群組。藉由動態管理可複寫式非揮發性記憶體模組中對資料的群組編碼配置,可提高可複寫式非揮發性記憶體模組的使用效率。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。記憶體儲存裝置可與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。圖2是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
請參照圖1與圖2,主機系統11可包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可耦接至系統匯流排(system bus)110。
在一範例實施例中,主機系統11可透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料儲存至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11可透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在一範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。
在一範例實施例中,記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,主機系統11為電腦系統。在一範例實施例中,主機系統11可為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在一範例實施例中,主機系統31可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統。記憶體儲存裝置30可為主機系統31所使用的安全數位(Secure Digital, SD)卡32、小型快閃(Compact Flash, CF)卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded Multi Media Card, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
連接介面單元402用以將記憶體儲存裝置10耦接主機系統11。記憶體儲存裝置10可經由連接介面單元402與主機系統11通訊。在一範例實施例中,連接介面單元402是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準。在一範例實施例中,連接介面單元402亦可以是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準、並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、通用序列匯流排(Universal Serial Bus, USB)標準、SD介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、MCP介面標準、MMC介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404耦接至連接介面單元402與可複寫式非揮發性記憶體模組406。記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可包括單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、二階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell, TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quad Level Cell, QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化(programming)記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
在一範例實施例中,可複寫式非揮發性記憶體模組406的記憶胞可構成多個實體程式化單元,並且此些實體程式化單元可構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞可組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在一範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元可為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元可包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼等管理資料)。在一範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504、記憶體介面506及錯誤檢查與校正電路508。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路502的操作時,等同於說明記憶體控制電路單元404的操作。
在一範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
在一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的記憶胞或記憶胞群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路502還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組406以指示執行相對應的操作。
主機介面504是耦接至記憶體管理電路502。記憶體管理電路502可透過主機介面504與主機系統11通訊。主機介面504可用以接收與識別主機系統11所傳送的指令與資料。例如,主機系統11所傳送的指令與資料可透過主機介面504來傳送至記憶體管理電路502。此外,記憶體管理電路502可透過主機介面504將資料傳送至主機系統11。在本範例實施例中,主機介面504是相容於PCI Express標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於SATA標準、PATA標準、IEEE 1394標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路502要存取可複寫式非揮發性記憶體模組406,記憶體介面506會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收操作等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路502產生並且透過記憶體介面506傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路508是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正操作以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路508會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路508會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正操作。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體510與電源管理電路512。緩衝記憶體510是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路512是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
在一範例實施例中,圖4的記憶體儲存裝置10亦稱為快閃記憶體儲存裝置,可複寫式非揮發性記憶體模組406亦稱為快閃記憶體模組,且記憶體控制電路單元404亦稱為快閃記憶體控制器。在一範例實施例中,圖5的記憶體管理電路502亦稱為快閃記憶體管理電路。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。請參照圖6,記憶體管理電路502可將可複寫式非揮發性記憶體模組406中的實體單元610(0)~610(C)邏輯地分組至儲存區(storage region)601與閒置(spare region)區602。在本範例實施例中,一個實體單元是指一個實體位址或一個實體程式化單元。在另一範例實施例中,一個實體單元亦可以是由多個連續或不連續的實體位址組成。
儲存區601中的實體單元610(0)~610(A)用以儲存使用者資料(例如來自圖1的主機系統11的使用者資料)。例如,儲存區601中的實體單元610(0)~610(A)可儲存有效(valid)資料與無效(invalid)資料。閒置區602中的實體單元610(A+1)~610(B)未儲存資料(例如有效資料)。例如,若某一個實體單元未儲存有效資料,則此實體單元可被關聯(或加入)至閒置區602。此外,閒置區602中的實體單元(或未儲存有效資料的實體單元)可被抹除。在寫入新資料時,一個實體單元可被從閒置區602中提取以儲存此新資料。在一範例實施例中,閒置區602亦稱為閒置池(free pool)。
記憶體管理電路502可配置邏輯單元612(0)~612(C)以映射儲存區601中的實體單元610(0)~610(A)。在一範例實施例中,每一個邏輯單元對應一個邏輯位址。例如,一個邏輯位址可包括一或多個邏輯區塊位址(Logical Block Address, LBA)或其他的邏輯管理單元。在另一範例實施例中,一個邏輯單元也可對應一個邏輯程式化單元或者由多個連續或不連續的邏輯位址組成。此外,一個邏輯單元可被映射至一或多個實體單元。須注意的是,若某一實體單元當前有被某一邏輯單元映射,則表示此實體單元當前儲存的資料為有效資料。反之,若某一實體單元當前未被任一邏輯單元映射,則表示此實體單元當前儲存的資料為無效資料。
記憶體管理電路502可將描述邏輯單元與實體單元之間的映射關係之管理資料(亦稱為邏輯至實體映射資訊)記錄於至少一邏輯至實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路502可根據此邏輯至實體映射表來執行對於記憶體儲存裝置10的資料存取操作。
圖7是根據本發明的一範例實施例所繪示的寫入新資料的示意圖。請參照圖7,在從主機系統11接收指示儲存資料701的寫入指令後,記憶體管理電路502可指示編碼電路71對資料701進行編碼。然後,記憶體管理電路502可指示可複寫式非揮發性記憶體模組將經編碼電路71編碼的資料701儲存至可複寫式非揮發性記憶體模組406中的實體群組70(0)~70(D)的其中之一。實體群組70(0)~70(D)中的每一個實體群組可包含圖6中的多個實體單元。在一範例實施例中,一或多個實體群組亦可形成一個虛擬區塊。
編碼電路71可包含於錯誤檢查與校正電路508中並可用以對資料701執行編碼(與解碼)。須注意的是,編碼電路71可對資料701執行RAID ECC編碼或類似的多訊框(亦稱為跨框)編碼(與解碼)操作。例如,在RAID ECC編碼或類似的多訊框編碼操作中,資料701可被執行跨實體單元(例如跨實體程式化單元)的編碼,以產生可用以同時保護多個實體單元(例如多個實體程式化單元)的奇偶資料(即全域奇偶資料)。例如,編碼電路71可採用里德-所羅門碼(Reed-solomon code, RS code)或互斥或(Exclusive OR, XOR)等編/解碼演算法來進行資料的編碼(與解碼)。經編碼電路71編碼的資料701與經由對資料701進行編碼而產生的全域奇偶資料可被儲存至具有相同標籤(亦稱為編碼標籤)的多個實體單元中。爾後,當讀取資料時,若所讀取的資料701中存在錯誤,則編碼電路71可從具有相同標籤的多個實體單元中讀取經編碼的資料701以及相應的全域奇偶資料並使用此些資料對所讀取的資料701進行解碼,以嘗試更正所讀取的資料701中的錯誤。
圖8是根據本發明的一範例實施例所繪示的實體群組的標籤配置的示意圖。請參照圖8,以實體群組70(0)~70(D)中的實體群組70(i)為例,記憶體管理電路502可為實體群組70(i)中的每一個實體單元預先配置一個標籤(亦稱為初始標籤),例如,標籤Tag_0~Tag_5的其中之一。例如,每一個實體單元所對應的標籤可在記憶體儲存裝置10或可複寫式非揮發性記憶體模組406出廠前就預先儲存於每一個實體單元中或系統管理表格中。所述標籤可反映每一實體單元所屬的跨框編碼群組。在對資料執行RAID ECC編碼或類似的多訊框編碼操作後,經編碼的資料以及相應的全域奇偶資料可被儲存於具有相同標籤的多個實體單元中。爾後,儲存於具有相同標籤的多個實體單元中的資料可共同用以解碼其中的一或多個實體單元中的資料的錯誤。
在一範例實施例中,一個特定的標籤對應於一個特定的跨框編碼群組。不同的標籤對應於不同的跨框編碼群組。以圖7為例,經編碼的資料701以及藉由編碼資料701而產生的全域奇偶資料可預設為儲存於實體群組70(i)中對應於相同的標籤Tag_0的實體單元810(0)~810(7)中。例如,經編碼的資料701可分段儲存於實體單元810(0)~810(6)中,且藉由編碼資料701而產生的全域奇偶資料則可儲存於實體單元810(7)中。當後續需要從實體群組70(i)中讀取資料701時,儲存於實體單元810(0)~810(7)中的所有或至少部分資料可用於解碼從實體單元810(0)~810(7)中的任一者讀取的資料,從而嘗試更正所讀取的資料中的錯誤。依此類推,經編碼的某一資料與相應的奇偶資料(即全域奇偶資料)可儲存於對應於標籤Tag_k的多個實體單元中,且k可為0~5中的任一整數。
在一範例實施例中,若實體群組70(i)中對應於標籤Tag_k的多個實體單元中的資料中存在太多錯誤,則編碼電路71可能無法順利更正從對應於同一個標籤Tag_k的某一實體單元中讀取的資料中的所有錯誤。
在一範例實施例中,若實體群組70(i)中對應於標籤Tag_k的多個實體單元中的資料中存在太多錯誤,則記憶體管理電路502可更新、調整或改變實體群組70(i)的跨框編碼群組之配置(例如將標籤Tag_k所對應的某一個實體單元與標籤Tag_p所對應的某一個實體單元對調,且k不等於p),從而提高往後儲存於實體群組70(i)中的資料可靠度。
圖9是根據本發明的一範例實施例所繪示的高位元錯誤率的實體單元的示意圖。請參照圖9,以標籤Tag_0為例,假設從對應於標籤Tag_0的實體單元810(3)與810(5)中讀取的資料中存在太多錯誤位元(圖9中標記為HECC),則後續從實體單元810(3)及/或810(5)中讀取的資料中的錯誤可能無法被完全更正。在此狀況下,若未動態調整對應於標籤Tag_0的實體單元之分組配置,則可能導致往後從對應於標籤Tag_0的實體單元讀取的資料都無法被成功解碼,甚至可能導致整個實體群組70(i)無法使用。
圖10是根據本發明的一範例實施例所繪示的儲存標籤置換資訊與搬移資料的示意圖。請參照圖10,在一範例實施例中,記憶體管理電路502可從圖7的實體群組70(0)~70(D)中選擇實體群組70(i)。在實體群組70(i)已儲存有資料的狀態下,記憶體管理電路502可發送讀取指令序列至可複寫式非揮發性記憶體模組406,以指示可複寫式非揮發性記憶體模組406從實體群組70(i)中讀取資料(亦稱為第二資料)。記憶體管理電路502可根據第二資料的位元錯誤狀況儲存標籤置換資訊1001。例如,記憶體管理電路502可指示錯誤檢查與校正電路508(或編碼電路71)解碼第二資料並根據解碼結果獲得第二資料的位元錯誤狀況。例如,假設第二資料的解碼結果可反映第二資料的位元錯誤率,則記憶體管理電路502可根據第二資料的位元錯誤率獲得第二資料的位元錯誤狀況。然後,記憶體管理電路502可根據第二資料的位元錯誤狀況產生標籤置換資訊1001。記憶體管理電路502可將標籤置換資訊1001儲存於緩衝記憶體510中。
在一範例實施例中,標籤置換資訊1001是用以對實體群組70(i)中的至少兩個實體單元執行標籤置換。通過此標籤置換,可將原先指向位元錯誤率較高(例如位元錯誤率高於一預設值)的實體單元的某一標籤改為指向位元錯誤率較低(例如位元錯誤率不高於此預設值)的另一實體單元。在一範例實施例中,相較於始終使用固定的標籤配置,動態調整實體群組70(i)中的至少部分實體單元的標籤配置(即跨框編碼的分組配置),可有效提高爾後對實體群組70(i)中的資料的解碼效率及/或延長實體群組70(i)的使用壽命。
在一範例實施例中,記憶體管理電路502可根據第二資料的位元錯誤狀況將原先儲存於實體群組70(i)中的第二資料搬移到另一實體群組70(j)。i的數值不等於j的數值。例如,在搬移第二資料的過程中,第二資料可被從實體群組70(i)中讀取出來並經由錯誤檢查與校正電路508(或編碼電路71)解碼。然後,經解碼的第二資料可被儲存至實體群組70(j)中。在完成第二資料的搬移後,仍儲存於實體群組70(i)中的第二資料可被標記為無效,且實體群組70(i)可被抹除。
在一範例實施例中,記憶體管理電路502可判斷第二資料的位元錯誤狀況是否符合特定條件。若第二資料的位元錯誤狀況符合特定條件,記憶體管理電路502可產生標籤置換資訊1001。然而,若第二資料的位元錯誤狀況不符合特定條件,記憶體管理電路502可不產生標籤置換資訊1001且不將所述第二資料搬移至實體群組70(j)。
在一範例實施例中,記憶體管理電路502可判斷從實體群組70(i)中的某一實體單元讀取的資料的位元錯誤率是否高於預設值。若從實體群組70(i)中的某一實體單元讀取的資料的位元錯誤率高於預設值,記憶體管理電路502可標記此實體單元,例如將此實體單元標記為高位元錯誤率(圖9中標記為HECC)的實體單元。
在一範例實施例中,記憶體管理電路502可判斷實體群組70(i)中對應於同一個標籤Tag_k的多個實體單元中,屬於高位元錯誤率的實體單元的總數是否高於或等於一預設數目。若實體群組70(i)中對應於同一個標籤Tag_k的多個實體單元中,屬於高位元錯誤率的實體單元的總數高於或等於預設數目,記憶體管理電路502可產生對應於標籤Tag_k的標籤置換資訊1001。反之,若實體群組70(i)中對應於同一個標籤Tag_k的實體單元中,屬於高位元錯誤率的實體單元的總數低於預設數目,則記憶體管理電路502可不產生標籤置換資訊1001。
以圖8與圖9為例,假設此預設數目為2。當偵測到實體單元810(3)與810(5)皆屬於高位元錯誤率的實體單元時,記憶體管理電路502可判定實體群組70(i)中對應於標籤Tag_0的多個實體單元中,屬於高位元錯誤率的實體單元的總數(例如2)等於預設數目(例如2)。因此,記憶體管理電路502可產生對應於標籤Tag_0的標籤置換資訊1001。對應於標籤Tag_0的標籤置換資訊1001可記載用以將位元錯誤率較高的實體單元810(3)與810(5)所對應的標籤(即Tag_0)分別與其餘位元錯誤率較低的實體單元所對應的標籤對調的資訊。
圖11是根據本發明的一範例實施例所繪示的標籤置換的示意圖。請參照圖11,根據標籤置換資訊1001,在將資料儲存至實體群組70(i)時,對應於實體單元810(3)的標籤Tag_0與對應於實體單元1110(3)的標籤Tag_2可被對調,且對應於實體單元810(5)的標籤Tag_0與對應於實體單元1120(5)的標籤Tag_4可被對調。藉此,當將資料儲存至實體群組70(i)時,原先對應於標籤Tag_0且位元錯誤率較高的實體單元810(3)與810(5)可分別被調整為對應於標籤Tag_2與Tag_4,從而避免太多位元錯誤率較高的實體單元同時儲存對應於同一個標籤Tag_0的資料。
換言之,在一範例實施例中,標籤置換資訊1001的用途可包括將原先對應於同一個標籤Tag_k且位元錯誤率較高的多個實體單元分散用於儲存對應於其他標籤Tag_p的資料,p的數值不同於k的數值。藉此,可減少對應於同一個標籤Tag_k的資料中的錯誤位元的總數。
圖12是根據本發明的一範例實施例所繪示的寫入新資料的示意圖。請參照圖12,接續於圖7至圖11的範例實施例,在將標籤置換資訊1001儲存至緩衝記憶體510後,記憶體管理電路502可從主機系統11接收指示儲存資料1201(亦稱為第一資料)的寫入指令。根據此寫入指令,記憶體管理電路502可指示編碼電路71對資料1201進行編碼。另一方面,記憶體管理電路502可從圖6的閒置區602中提取經抹除的實體群組70(i)並從緩衝記憶體510中讀取對應於實體群組70(i)的標籤置換資訊1001。記憶體管理電路502可根據標籤置換資訊1001指示可複寫式非揮發性記憶體模組將經編碼電路71編碼的資料1201儲存至可複寫式非揮發性記憶體模組406中的實體群組70(i)中。
圖13是根據本發明的一範例實施例所繪示的根據調整後的標籤配置儲存資料的示意圖。請參照圖13,接續於圖12的範例實施例,記憶體管理電路502可將經編碼的資料1201與經由對資料1201進行編碼所產生的奇偶資料(即全域奇偶資料)儲存至實體群組70(i)中。例如,根據實體群組70(i)預設的標籤配置,記憶體管理電路502可將經編碼的資料1201的一部分資料(亦稱為第一部分資料)儲存於標籤Tag_0所預設指向的實體單元810(0)~810(2)、810(4)、810(6)並將對應於資料1201的全域奇偶資料儲存於實體單元810(7)。
另一方面,根據標籤置換資訊1001,記憶體管理電路502可將經編碼的資料1201的另一部分資料(亦稱為第二部分資料)儲存於經對調的標籤Tag_0所指向的實體單元1110(3)與1120(5)。例如,實體單元1110(3)與1120(5)是用以替換標籤Tag_0所預設指向的實體單元810(3)與810(5),以降低資料1201所屬的跨框編碼群組的位元錯誤率。
在一範例實施例中,實體單元1110(3)的位元錯誤率(必須)低於實體單元810(3)的位元錯誤率,且實體單元1120(5)的位元錯誤率(必須)低於實體單元810(5)的位元錯誤率。相較於實體群組70(i)預設的標籤配置(即跨框編碼的群組配置),根據標籤置換資訊1001來執行標籤置換並儲存經編碼的資料1201,對應於標籤Tag_0的所有實體單元所儲存的資料的位元錯誤率可被有效降低。此外,經過所述標籤置換,原先對應於標籤Tag_0且位元錯誤率較高的實體單元810(3)與810(5)可被分散調整為用以儲存對應於標籤Tag_2與Tag_4的部分資料,從而避免位元錯誤率較高的實體單元在使用上過度集中。
在一範例實施例中,在將經編碼的資料1201及相應的全域奇偶資料儲存至實體單元810(0)~810(2)、1110(3)、810(4)、1120(5)、810(6)及810(7)的過程中,資料1201的資料片段可儲存於各個實體單元中的資料區(data area)。同時,記憶體管理電路502可將標籤置換資訊1001儲存至經標籤置換的實體單元中的閒置區(spare area)。例如,記憶體管理電路502可將標籤置換資訊1001中與實體單元1110(3)有關的標籤置換資訊儲存於實體單元1110(3)中的閒置區,將標籤置換資訊1001中與實體單元1120(5)有關的標籤置換資訊儲存於實體單元1120(5)中的閒置區,將標籤置換資訊1001中與實體單元810(3)有關的標籤置換資訊儲存於實體單元810(3)中的閒置區,並將標籤置換資訊1001中與實體單元810(5)有關的標籤置換資訊儲存於實體單元810(5)中的閒置區。然後,記憶體管理電路502可刪除緩衝記憶體510中的標籤置換資訊1001。爾後,當從實體單元1110(3)、1120(5)、810(3)及/或810(5)讀取資料時,記憶體管理電路502可根據實體單元1110(3)、1120(5)、810(3)及/或810(5)中的標籤置換資訊得知當前實體單元1110(3)及/或1120(5)皆是用以儲存屬於標籤Tag_0的資料(非預設的屬於標籤Tag_2或Tag_4的資料),當前實體單元810(3)是用以儲存屬於標籤Tag_2的資料(非預設的屬於標籤Tag_0的資料)及/或當前實體單元810(5)是用以儲存屬於標籤Tag_4的資料(非預設的屬於標籤Tag_0的資料)。在一範例實施例中,當欲從實體群組70(i)讀取資料1201時,記憶體管理電路502可指示可複寫式非揮發性記憶體模組406從實體單元810(0)~810(2)、1110(3)、810(4)、1120(5)、810(6)及810(7)中讀取資料並指示編碼電路71對所讀取的資料進行解碼。
在一範例實施例中,當欲將特定資料儲存至實體群組70(i)或從實體群組70(i)讀取特定資料時,記憶體管理電路502可判斷是否存在對應於實體群組70(i)的標籤置換資訊(例如標籤置換資訊1001)。例如,記憶體管理電路502可判斷緩衝記憶體510中是否存在對應於實體群組70(i)的標籤置換資訊(例如標籤置換資訊1001)。或者,記憶體管理電路502可判斷當前欲儲存此資料的一或多個實體單元或者當前欲讀取的一或多個實體單元中是否存在所述標籤置換資訊。若記憶體管理電路502可取得對應於實體群組70(i)的標籤置換資訊,表示對應於實體群組70(i)的標籤置換資訊(例如標籤置換資訊1001)存在,則記憶體管理電路502可根據對應於實體群組70(i)的標籤置換資訊(例如標籤置換資訊1001)來對實體群組70(i)執行標籤置換後的資料存取。相關操作細節皆已詳述於上,在此便不贅述。此外,若記憶體管理電路502無法取得對應於實體群組70(i)的標籤置換資訊,表示對應於實體群組70(i)的標籤置換資訊(例如標籤置換資訊1001)不存在,則記憶體管理電路502可根據實體群組70(i)預設的標籤配置(即預設的跨框編碼的群組配置)來存取實體群組70(i)。
在一範例實施例中,記憶體管理電路502可發送讀取指令序列至可複寫式非揮發性記憶體模組406。此讀取指令序列指示從實體群組70(i)讀取資料(例如所述第二資料)。記憶體管理電路502可根據第二資料的位元錯誤狀況來調整實體群組70(i)的跨框編碼群組之配置。特別是,此跨框編碼群組之配置可反映實體群組70(i)中的多個實體單元是屬於同一個跨框編碼群組(及/或實體群組70(i)中的某一個實體單元是屬於某一個跨框編碼群組)。爾後,記憶體控制電路單元502可根據經調整的跨框編碼群組之配置來存取實體群組70(i)。
在一範例實施例中,調整實體群組70(i)的跨框編碼群組之配置可藉由產生或記錄所述對應於實體群組70(i)的標籤置換資訊來達成,以供往後存取實體群組70(i)時查詢。關於如何產生與使用對應於實體群組70(i)的標籤置換資訊的相關細節皆已詳述於上,在此便不贅述。
在一範例實施例中,調整實體群組70(i)的跨框編碼群組之配置亦可包括直接調整實體群組70(i)的跨框編碼的群組配置或直接調整產生實體群組70(i)的跨框編碼群組之配置的演算法,從而改變調整實體群組70(i)的跨框編碼群組之預設配置(或當前配置)。在一範例實施例中,透過直接調整實體群組70(i)的跨框編碼群組之配置或調整產生實體群組70(i)的跨框編碼群組之配置的演算法,記憶體管理電路502可使用或不使用對應於實體群組70(i)的標籤置換資訊來根據調整後的實體群組70(i)的跨框編碼群組之配置來存取實體群組70(i)。
從另一角度而言,在一範例實施例中,針對同一個實體群組70(i),隨著實體群組70(i)中的至少部分實體單元的位元錯誤狀況(例如位元錯誤率)改變,實體群組70(i)中針對資料儲存的標籤配置(即跨框編碼的群組配置)可被持續改變。例如,在圖7與圖8的範例實施例中,儲存於實體群組70(i)中的資料是以第一種標籤配置模式(亦稱為跨框編碼的第一群組配置)來進行資料儲存。然而,隨著實體群組70(i)中的至少部分實體單元的位元錯誤率改變,在圖12與圖13的範例實施例中,儲存於實體群組70(i)中的資料則改變為以第二種標籤配置模式(亦稱為跨框編碼的第二群組配置)來進行資料儲存。透過以改變實體群組70(i)的跨框編碼群組之配置,可有效提高實體群組70(i)的使用效率,延長實體群組70(i)的使用壽命,甚至延長整個可複寫式非揮發性記憶體模組406的使用壽命。
圖14是根據本發明的一範例實施例所繪示的跨框編碼管理方法的流程圖。請參照圖14,在步驟S1401中,讀取對應於第一實體群組的標籤置換資訊。在步驟S1402中,編碼第一資料。在步驟S1403中,將經編碼的第一資料的第一部分資料儲存至所述第一實體群組中對應於某一標籤資訊(亦稱為第一標籤資訊)的至少一第一實體單元。在步驟S1404中,根據所述標籤置換資訊將經編碼的第一資料的第二部分資料儲存至所述第一實體群組中對應於另一標籤資訊(亦稱為第二標籤資訊)的至少一第二實體單元。須注意的是,所述第一標籤資訊對應於某一跨框編碼群組(亦稱為第一跨框編碼群組),所述第二標籤資訊對應於另一跨框編碼群組(亦稱為第二跨框編碼群組),且第一跨框編碼群組不同於第二跨框編碼群組。
以圖13為例,第一實體單元可包括實體單元810(0)~810(2)、810(4)、810(6)(及810(7)),而第二實體單元可包括實體單元1110(3)與1120(5)。其中,實體單元810(0)~810(2)、810(4)、810(6)(及810(7))所對應的初始標籤為Tag_0,而實體單元1110(3)與1120(5)所對應的初始標籤則分別為Tag_2與Tag_4。標籤Tag_2與Tag_4所對應的跨框編碼群組不同於標籤Tag_0所對應的跨框編碼群組。但是,在調整跨框編碼群組之配置(例如參考標籤置換資訊1001)後,實體單元810(0)~810(2)、810(4)、810(6)、810(7)、1110(3)及1120(5)可用以儲存同一個跨框編碼群組中的資料。相關操作細節皆已詳述於上,在此便不贅述。
須注意的是,在前述範例實施例中,每一個實體群組中包含的實體單元的總數、預設的標籤配置、及經調整的標籤配置等都僅為範例且可根據實務需求調整,而非用以限制本發明。此外,標籤置換資訊(例如標籤置換資訊1001)可記載任何可用以調整所述標籤配置的相關資訊,本發明不限制其具體內容。
圖15是根據本發明的一範例實施例所繪示的跨框編碼管理方法的流程圖。請參照圖15,在步驟S1501中,從多個實體群組中選擇一個實體群組作為第一實體群組。在步驟S1502中,從所述第一實體群組中讀取資料(即第二資料)。在步驟S1503中,判斷所述資料的錯誤位元狀況是否符合特定條件。若所述資料的錯誤位元狀況符合特定條件,在步驟S1504中,儲存對應於所述第一實體群組的標籤置換資訊。若所述資料的錯誤位元狀況不符合特定條件,可回到步驟S1501中,選擇另一實體群組作為第一實體群組。
在步驟S1504之後,步驟S1505中,將所述資料從所述第一實體群組搬移到所述多個實體群組中的另一實體群組(即第二實體群組)進行儲存。在步驟S1506中,第一實體群組可被抹除。
圖16是根據本發明的一範例實施例所繪示的跨框編碼管理方法的流程圖。請參照圖16,在步驟S1601中,接收指示儲存第一資料的寫入指令。在步驟S1602中,編碼第一資料。在步驟S1603中,判斷是否存在對應於第一實體群組的標籤置換資訊。若存在對應於第一實體群組的標籤置換資訊,在步驟S1604中,讀取對應於所述第一實體群組的標籤置換資訊。在步驟S1605中,將經編碼的第一資料的第一部分資料儲存至所述第一實體群組中對應於第一標籤資訊的至少一第一實體單元。在步驟S1606中,根據所述標籤置換資訊將經編碼的第一資料的第二部分資料儲存至所述第一實體群組中對應於第二標籤資訊的至少一第二實體單元。此外,若步驟S1603判斷為否,則在步驟S1607中,(僅)將經編碼的第一資料儲存至所述第一實體群組中對應於第一標籤資訊的多個第一實體單元,而不須根據標籤置換結果存取第一實體群組。
圖17是根據本發明的一範例實施例所繪示的跨框編碼管理方法的流程圖。請參照圖17,在步驟S1701中,接收指示讀取第一資料的讀取指令。在步驟S1702中,判斷是否存在對應於第一實體群組的標籤置換資訊。若存在對應於第一實體群組的標籤置換資訊,在步驟S1703中,讀取對應於所述第一實體群組的標籤置換資訊。在步驟S1704中,從所述第一實體群組中對應於第一標籤資訊的至少一第一實體單元中讀取第一資料的第一部分資料。在步驟S1705中,根據所述標籤置換資訊從所述第一實體群組中對應於第二標籤資訊的至少一第二實體單元讀取第一資料的第二部分資料。此外,若步驟S1702判斷為否,則在步驟S1706中,(僅)從所述第一實體群組中對應於第一標籤資訊的多個第一實體單元中讀取所述第一資料,而不須根據標籤置換結果存取第一實體群組。爾後,在步驟S1707中,解碼所讀取的第一資料。經解碼的第一資料可被回傳以回應所述讀取指令。
然而,圖14~圖17中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖14~圖17中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖14~圖17的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明所提出的範例實施例可根據可複寫式非揮發性記憶體模組中的特定實體群組的使用狀態(例如各實體單元的損耗程度及/或位元錯誤狀態)來動態改變此實體群組的標籤配置(即跨框編碼群組之配置)。藉由動態管理可複寫式非揮發性記憶體模組中的跨框編碼群組之配置,可有效提高可複寫式非揮發性記憶體模組的使用效率(例如提高對儲存於可複寫式非揮發性記憶體模組中的資料的錯誤更正能力及/或延長可複寫式非揮發性記憶體模組的使用壽命)。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10, 30:記憶體儲存裝置 11, 31:主機系統 110:系統匯流排 111:處理器 112:隨機存取記憶體 113:唯讀記憶體 114:資料傳輸介面 12:輸入/輸出(I/O)裝置 20:主機板 201:隨身碟 202:記憶卡 203:固態硬碟 204:無線記憶體儲存裝置 205:全球定位系統模組 206:網路介面卡 207:無線傳輸裝置 208:鍵盤 209:螢幕 210:喇叭 32:SD卡 33:CF卡 34:嵌入式儲存裝置 341:嵌入式多媒體卡 342:嵌入式多晶片封裝儲存裝置 402:連接介面單元 404:記憶體控制電路單元 406:可複寫式非揮發性記憶體模組 502:記憶體管理電路 504:主機介面 506:記憶體介面 508:錯誤檢查與校正電路 510:緩衝記憶體 512:電源管理電路 601:儲存區 602:替換區 610(0)~610(B), 810(0)~810(7), 1110(3), 1120(5):實體單元 612(0)~612(C):邏輯單元 701, 1201:資料 71:編碼電路 70(0)~70(D), 70(i), 70(j):實體群組 1001:標籤置換資訊 S1401:步驟(讀取對應於第一實體群組的標籤置換資訊) S1402:步驟(編碼第一資料) S1403:步驟(將經編碼的第一資料的第一部分資料儲存至所述第一實體群組中的至少一第一實體單元) S1404:步驟(根據所述標籤置換資訊將經編碼的第一資料的第二部分資料儲存至所述第一實體群組中的至少一第二實體單元) S1501:步驟(從多個實體群組中選擇一個實體群組作為第一實體群組) S1502:步驟(從所述第一實體群組中讀取資料) S1503:步驟(所述資料的錯誤位元狀況是否符合特定條件) S1504:步驟(儲存對應於所述第一實體群組的標籤置換資訊) S1505:步驟(將所述資料從所述第一實體群組搬移到所述多個實體群組中的另一實體群組進行儲存) S1506:步驟(抹除所述第一實體群組) S1601:步驟(接收指示儲存第一資料的寫入指令) S1602:步驟(編碼第一資料) S1603:步驟(是否存在對應於第一實體群組的標籤置換資訊) S1604:步驟(讀取對應於所述第一實體群組的標籤置換資訊) S1605:步驟(將經編碼的第一資料的第一部分資料儲存至所述第一實體群組中對應於第一標籤資訊的至少一第一實體單元) S1606:步驟(根據所述標籤置換資訊將經編碼的第一資料的第二部分資料儲存至所述第一實體群組中對應於第二標籤資訊的至少一第二實體單元) S1607:步驟(將經編碼的第一資料儲存至所述第一實體群組中對應於所述第一標籤資訊的多個第一實體單元) S1701:步驟(接收指示讀取第一資料的讀取指令) S1702:步驟(是否存在對應於所述第一實體群組的標籤置換資訊) S1703:步驟(讀取對應於所述第一實體群組的標籤置換資訊) S1704:步驟(從所述第一實體群組中對應於第一標籤資訊的至少一第一實體單元中讀取第一資料的第一部分資料) S1705:步驟(根據所述標籤置換資訊從所述第一實體群組中對應於第二標籤資訊的至少一第二實體單元讀取第一資料的第二部分資料) S1706:步驟(從所述第一實體群組中對應於第一標籤資訊的多個第一實體單元中讀取所述第一資料) S1707:步驟(解碼所述第一資料)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。 圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。 圖7是根據本發明的一範例實施例所繪示的寫入新資料的示意圖。 圖8是根據本發明的一範例實施例所繪示的實體群組的預設標籤配置的示意圖。 圖9是根據本發明的一範例實施例所繪示的高位元錯誤率的實體單元的示意圖。 圖10是根據本發明的一範例實施例所繪示的儲存標籤置換資訊與搬移資料的示意圖。 圖11是根據本發明的一範例實施例所繪示的標籤置換的示意圖。 圖12是根據本發明的一範例實施例所繪示的寫入新資料的示意圖。 圖13是根據本發明的一範例實施例所繪示的根據調整後的標籤配置儲存資料的示意圖。 圖14是根據本發明的一範例實施例所繪示的跨框編碼管理方法的流程圖。 圖15是根據本發明的一範例實施例所繪示的跨框編碼管理方法的流程圖。 圖16是根據本發明的一範例實施例所繪示的跨框編碼管理方法的流程圖。 圖17是根據本發明的一範例實施例所繪示的跨框編碼管理方法的流程圖。
S1401:步驟(讀取對應於第一實體群組的標籤置換資訊)
S1402:步驟(編碼第一資料)
S1403:步驟(將經編碼的第一資料的第一部分資料儲存至所述第一實體群組中的至少一第一實體單元)
S1404:步驟(根據所述標籤置換資訊將經編碼的第一資料的第二部分資料儲存至所述第一實體群組中的至少一第二實體單元)

Claims (29)

  1. 一種跨框編碼管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體群組,該多個實體群組中的每一個實體群組包括多個實體單元,且該跨框編碼管理方法包括: 讀取對應於該多個實體群組中的一第一實體群組的一標籤置換資訊; 編碼一第一資料; 將經編碼的該第一資料的一第一部分資料儲存至該第一實體群組中對應於一第一標籤資訊的至少一第一實體單元;以及 根據該標籤置換資訊將經編碼的該第一資料的一第二部分資料儲存至該第一實體群組中對應於一第二標籤資訊的至少一第二實體單元, 其中該第一標籤資訊對應於一第一跨框編碼群組,該第二標籤資訊對應於一第二跨框編碼群組,且該第一跨框編碼群組不同於該第二跨框編碼群組。
  2. 如請求項1所述的跨框編碼管理方法,更包括: 為該第一實體群組中的每一實體單元配置一標籤資訊,其中該標籤資訊反映該每一實體單元所屬的一跨框編碼群組。
  3. 如請求項1所述的跨框編碼管理方法,更包括: 根據該第一資料的一編碼結果產生一奇偶資料, 其中該奇偶資料用以保護儲存於該至少一第一實體單元的該第一資料的該第一部分資料以及儲存於該至少一第二實體單元的該第一資料的該第二部分資料。
  4. 如請求項1所述的跨框編碼管理方法,其中根據該標籤置換資訊將經編碼的該第一資料的該第二部分資料儲存至該第一實體群組中對應於該第二標籤資訊的該至少一第二實體單元的步驟包括: 根據該標籤置換資訊將該至少一第二實體單元所對應的該第二標籤資訊與該第一實體群組中的至少一第三實體單元所對應的該第一標籤資訊對調;以及 根據一標籤對調結果將該第二部分資料儲存至該至少一第二實體單元。
  5. 如請求項4所述的跨框編碼管理方法,其中該至少一第二實體單元的一位元錯誤率低於該至少一第三實體單元的一位元錯誤率。
  6. 如請求項1所述的跨框編碼管理方法,其中根據該標籤置換資訊將經編碼的該第一資料的該第二部分資料儲存至該第一實體群組中對應於該第二標籤資訊的該至少一第二實體單元的步驟包括: 將經編碼的該第一資料的該第二部分資料儲存至該至少一第二實體單元中的一資料區;以及 將該標籤置換資訊儲存至該至少一第二實體單元中的一閒置區。
  7. 如請求項1所述的跨框編碼管理方法,更包括: 在讀取對應於該第一實體群組的該標籤置換資訊之前,從該第一實體群組中讀取一第二資料; 根據該第二資料的一位元錯誤狀況儲存該標籤置換資訊; 將該第二資料搬移到該多個實體群組中的一第二實體群組進行儲存;以及 抹除該第一實體群組。
  8. 如請求項7所述的跨框編碼管理方法,其中根據該第二資料的該位元錯誤狀況儲存該標籤置換資訊的步驟包括: 響應於從該第一實體群組中的至少一第三實體單元讀取的資料的一位元錯誤率高於一預設值,儲存對應於該至少一第三實體單元的該標籤置換資訊。
  9. 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體群組,且該多個實體群組中的每一個實體群組包括多個實體單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以讀取對應於該多個實體群組中的一第一實體群組的一標籤置換資訊, 該記憶體控制電路單元更用以編碼一第一資料, 該記憶體控制電路單元更用以將經編碼的該第一資料的一第一部分資料儲存至該第一實體群組中對應於一第一標籤資訊的至少一第一實體單元,並且 該記憶體控制電路單元更用以根據該標籤置換資訊將經編碼的該第一資料的一第二部分資料儲存至該第一實體群組中對應於一第二標籤資訊的至少一第二實體單元, 其中該第一標籤資訊對應於一第一跨框編碼群組,該第二標籤資訊對應於一第二跨框編碼群組,且該第一跨框編碼群組不同於該第二跨框編碼群組。
  10. 如請求項9所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以為該第一實體群組中的每一實體單元配置一標籤資訊,其中該標籤資訊反映該每一實體單元所屬的一跨框編碼群組。
  11. 如請求項9所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第一資料的一編碼結果產生一奇偶資料,並且 該奇偶資料用以保護儲存於該至少一第一實體單元的該第一資料的該第一部分資料以及儲存於該至少一第二實體單元的該第一資料的該第二部分資料。
  12. 如請求項9所述的記憶體儲存裝置,其中根據該標籤置換資訊將經編碼的該第一資料的該第二部分資料儲存至該第一實體群組中對應於該第二標籤資訊的該至少一第二實體單元的操作包括: 根據該標籤置換資訊將該至少一第二實體單元所對應的該第二標籤資訊與該第一實體群組中的至少一第三實體單元所對應的該第一標籤資訊對調;以及 根據一標籤對調結果將該第二部分資料儲存至該至少一第二實體單元。
  13. 如請求項12所述的記憶體儲存裝置,其中該至少一第二實體單元的一位元錯誤率低於該至少一第三實體單元的一位元錯誤率。
  14. 如請求項9所述的記憶體儲存裝置,其中根據該標籤置換資訊將經編碼的該第一資料的該第二部分資料儲存至該第一實體群組中對應於該第二標籤資訊的該至少一第二實體單元的操作包括: 將經編碼的該第一資料的該第二部分資料儲存至該至少一第二實體單元中的一資料區;以及 將該標籤置換資訊儲存至該至少一第二實體單元中的一閒置區。
  15. 如請求項9所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以: 在讀取對應於該第一實體群組的該標籤置換資訊之前,從該第一實體群組中讀取一第二資料; 根據該第二資料的一位元錯誤狀況儲存該標籤置換資訊; 將該第二資料搬移到該多個實體群組中的一第二實體群組進行儲存;以及 抹除該第一實體群組。
  16. 如請求項15所述的記憶體儲存裝置,其中根據該第二資料的該位元錯誤狀況儲存該標籤置換資訊的操作包括: 響應於從該第一實體群組中的至少一第三實體單元讀取的資料的一位元錯誤率高於一預設值,儲存對應於該至少一第三實體單元的該標籤置換資訊。
  17. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體群組,該多個實體群組中的每一個實體群組包括多個實體單元,且該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組; 一錯誤檢查與校正電路;以及 一記憶體管理電路,耦接至該主機介面、該記憶體介面及該錯誤檢查與校正電路, 其中該記憶體管理電路用以讀取對應於該多個實體群組中的一第一實體群組的一標籤置換資訊, 該錯誤檢查與校正電路用以編碼一第一資料, 該記憶體管理電路更用以將經編碼的該第一資料的一第一部分資料儲存至該第一實體群組中對應於一第一標籤資訊的至少一第一實體單元,並且 該記憶體管理電路更用以根據該標籤置換資訊將經編碼的該第一資料的一第二部分資料儲存至該第一實體群組中對應於一第二標籤資訊的至少一第二實體單元, 其中該第一標籤資訊對應於一第一跨框編碼群組,該第二標籤資訊對應於一第二跨框編碼群組,且該第一跨框編碼群組不同於該第二跨框編碼群組。
  18. 如請求項17所述的記憶體控制電路單元,其中該記憶體管理電路更用以為該第一實體群組中的每一實體單元配置一標籤資訊,其中該標籤資訊反映該每一實體單元所屬的一跨框編碼群組。
  19. 如請求項17所述的記憶體控制電路單元,其中該錯誤檢查與校正電路更用以根據該第一資料的一編碼結果產生一奇偶資料,並且 該奇偶資料用以保護儲存於該至少一第一實體單元的該第一資料的該第一部分資料以及儲存於該至少一第二實體單元的該第一資料的該第二部分資料。
  20. 如請求項17所述的記憶體控制電路單元,其中根據該標籤置換資訊將經編碼的該第一資料的該第二部分資料儲存至該第一實體群組中對應於該第二標籤資訊的該至少一第二實體單元的操作包括: 根據該標籤置換資訊將該至少一第二實體單元所對應的該第二標籤資訊與該第一實體群組中的至少一第三實體單元所對應的該第一標籤資訊對調;以及 根據一標籤對調結果將該第二部分資料儲存至該至少一第二實體單元。
  21. 如請求項20所述的記憶體控制電路單元,其中該至少一第二實體單元的一位元錯誤率低於該至少一第三實體單元的一位元錯誤率。
  22. 如請求項17所述的記憶體控制電路單元,其中根據該標籤置換資訊將經編碼的該第一資料的該第二部分資料儲存至該第一實體群組中對應於該第二標籤資訊的該至少一第二實體單元的操作包括: 將經編碼的該第一資料的該第二部分資料儲存至該至少一第二實體單元中的一資料區;以及 將該標籤置換資訊儲存至該至少一第二實體單元中的一閒置區。
  23. 如請求項17所述的記憶體控制電路單元,其中該記憶體管理電路更用以: 在讀取對應於該第一實體群組的該標籤置換資訊之前,從該第一實體群組中讀取一第二資料; 根據該第二資料的一位元錯誤狀況儲存該標籤置換資訊; 將該第二資料搬移到該多個實體群組中的一第二實體群組進行儲存;以及 抹除該第一實體群組。
  24. 如請求項23所述的記憶體控制電路單元,其中根據該第二資料的該位元錯誤狀況儲存該標籤置換資訊的操作包括: 響應於從該第一實體群組中的至少一第三實體單元讀取的資料的一位元錯誤率高於一預設值,儲存對應於該至少一第三實體單元的該標籤置換資訊。
  25. 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體群組,且該多個實體群組中的每一個實體群組包括多個實體單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以發送一讀取指令序列,其指示從該多個實體群組中的一第一實體群組讀取第二資料, 該記憶體控制電路單元更用以根據該第二資料的一位元錯誤狀況調整該第一實體群組的一跨框編碼群組之配置,該跨框編碼群組之配置反映該第一實體群組中的多個實體單元屬於同一個跨框編碼群組,並且 該記憶體控制電路單元更用以根據經調整的該跨框編碼群組之配置來存取該第一實體群組。
  26. 如請求項25所述的記憶體儲存裝置,其中根據該第二資料的該位元錯誤狀況調整該第一實體群組的該跨框編碼群組之配置的操作包括: 響應於從該第一實體群組中的至少一第三實體單元讀取的資料的一位元錯誤率高於一預設值,調整該第一實體群組的該跨框編碼群組之配置。
  27. 如請求項25所述的記憶體儲存裝置,其中根據該第二資料的該位元錯誤狀況調整該第一實體群組的該跨框編碼群組之配置的操作包括: 將該第一實體群組中的一部分的實體單元所屬的跨框編碼群組與該第一實體群組中的另一部分的實體單元所屬的跨框編碼群組對調,以改變該第一實體群組的該跨框編碼群組之配置。
  28. 如請求項27所述的記憶體儲存裝置,其中將該第一實體群組中的該部分的實體單元所屬的跨框編碼群組與該第一實體群組中的該另一部分的實體單元所屬的跨框編碼群組對調的操作包括: 將該第一實體群組中的該部分的實體單元所對應的標籤資訊與該第一實體群組中的該另一部分的實體單元所對應的標籤資訊對調。
  29. 如請求項25所述的記憶體儲存裝置,其中根據經調整的該跨框編碼群組之配置來存取該第一實體群組的操作包括: 儲存一標籤置換資訊,其反映經調整的該第一實體群組的該跨框編碼群組之配置;以及 根據該標籤置換資訊來存取該第一實體群組。
TW110123904A 2021-06-29 2021-06-29 跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元 TWI764771B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110123904A TWI764771B (zh) 2021-06-29 2021-06-29 跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元
US17/376,194 US11669394B2 (en) 2021-06-29 2021-07-15 Crossing frames encoding management method, memory storage apparatus and memory control circuit unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110123904A TWI764771B (zh) 2021-06-29 2021-06-29 跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元

Publications (2)

Publication Number Publication Date
TWI764771B TWI764771B (zh) 2022-05-11
TW202301131A true TW202301131A (zh) 2023-01-01

Family

ID=82594319

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110123904A TWI764771B (zh) 2021-06-29 2021-06-29 跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元

Country Status (2)

Country Link
US (1) US11669394B2 (zh)
TW (1) TWI764771B (zh)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7801132B2 (en) * 1999-11-09 2010-09-21 Synchrodyne Networks, Inc. Interface system and methodology having scheduled connection responsive to common time reference
JP2004030527A (ja) * 2002-06-28 2004-01-29 Fujitsu Ltd 記憶制御装置、および記憶制御方法
US20050180641A1 (en) * 2004-02-02 2005-08-18 Clark Adam L. System and method for transmitting live audio/video information
US8245101B2 (en) * 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
US8275928B2 (en) * 2008-05-15 2012-09-25 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables
CN101640069B (zh) * 2008-08-01 2013-12-18 群联电子股份有限公司 用于闪速存储器的平均磨损方法与平均磨损***
US8447918B2 (en) * 2009-04-08 2013-05-21 Google Inc. Garbage collection for failure prediction and repartitioning
US9208025B2 (en) * 2009-07-30 2015-12-08 Cleversafe, Inc. Virtual memory mapping in a dispersed storage network
KR101616100B1 (ko) * 2009-09-25 2016-04-28 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
TWI447735B (zh) * 2010-02-05 2014-08-01 Phison Electronics Corp 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統
US9146810B2 (en) * 2012-01-31 2015-09-29 Cleversafe, Inc. Identifying a potentially compromised encoded data slice
US9262267B2 (en) * 2013-12-02 2016-02-16 Intel Corporation Error correction in solid state drives (SSD)
US9484113B2 (en) * 2014-04-15 2016-11-01 Advanced Micro Devices, Inc. Error-correction coding for hot-swapping semiconductor devices
US9672106B2 (en) * 2014-12-30 2017-06-06 Nutanix, Inc. Architecture for implementing erasure coding
US10296457B2 (en) * 2017-03-30 2019-05-21 Intel Corporation Reducing conflicts in direct mapped caches
US11003584B2 (en) * 2019-02-28 2021-05-11 Intel Corporation Technology for managing memory tags

Also Published As

Publication number Publication date
US20220413960A1 (en) 2022-12-29
TWI764771B (zh) 2022-05-11
US11669394B2 (en) 2023-06-06

Similar Documents

Publication Publication Date Title
TWI725416B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
TWI797464B (zh) 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元
TW202016940A (zh) 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
TWI709850B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN113140253B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TW201913353A (zh) 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
CN113724774A (zh) 解码方法、存储器存储装置及存储器控制电路单元
TWI764771B (zh) 跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元
CN113434331B (zh) 跨框编码管理方法、存储器存储装置及存储器控制电路
CN108428464B (zh) 解码方法、存储器储存装置及存储器控制电路单元
TWI777519B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI777087B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
TWI844172B (zh) 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元
CN112445416B (zh) 冷区域判断方法、存储器控制电路单元与存储器存储装置
TWI771079B (zh) 記憶體存取方法、記憶體儲存裝置及記憶體控制電路單元
CN114527941B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN113419683B (zh) 存储器存取方法、存储器存储装置及存储器控制电路单元
US11817172B2 (en) Table management method, memory storage device and memory control circuit unit
TWI751904B (zh) 編碼控制方法、記憶體儲存裝置及記憶體控制電路單元
TWI763310B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN111858389B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
CN109460372B (zh) 数据存储方法、存储器控制电路单元及存储器存储装置
CN115857802A (zh) 数据存储方法、存储器存储装置及存储器控制电路单元
TW202217556A (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TW202422347A (zh) 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元