TW201642266A - 解碼方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents

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

Info

Publication number
TW201642266A
TW201642266A TW104117466A TW104117466A TW201642266A TW 201642266 A TW201642266 A TW 201642266A TW 104117466 A TW104117466 A TW 104117466A TW 104117466 A TW104117466 A TW 104117466A TW 201642266 A TW201642266 A TW 201642266A
Authority
TW
Taiwan
Prior art keywords
soft decision
voltage level
read voltage
memory
read
Prior art date
Application number
TW104117466A
Other languages
English (en)
Other versions
TWI562152B (en
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 TW104117466A priority Critical patent/TWI562152B/zh
Priority to US14/818,323 priority patent/US20160350179A1/en
Publication of TW201642266A publication Critical patent/TW201642266A/zh
Application granted granted Critical
Publication of TWI562152B publication Critical patent/TWI562152B/zh
Priority to US16/393,982 priority patent/US20190252035A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

一種解碼方法、記憶體儲存裝置及記憶體控制電路單元。 所述方法包括:根據第一軟決策讀取電壓準位來讀取多個第一記憶胞以獲得屬於區塊碼的第一軟決策編碼單元;對所述第一軟決策編碼單元執行第一軟決策解碼程序;若所述第一軟決策解碼程序失敗,根據第二軟決策讀取電壓準位來讀取所述第一記憶胞以獲得屬於區塊碼的第二軟決策編碼單元,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間的差值與所述第一記憶胞的損耗程度有關;以及對所述第二軟決策編碼單元執行第二軟決策解碼程序。藉此,可改善對於區塊碼的解碼效率。

Description

解碼方法、記憶體儲存裝置及記憶體控制電路 單元
本發明是有關於一種解碼技術,且特別是有關於一種解碼方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,為了確保資料的正確性,在將某一筆資料寫入至可複寫式非揮發性記憶體模組之前,此資料會被編碼。而編碼後的資料會被寫入至可複寫式非揮發性記憶體模組中。當欲讀取此筆資料時,編碼後的資料會被讀取出來並且被解碼。若資料可以成功地解碼,表示其中的錯誤位元之數目不多且此些錯誤位元可以被更正。然而,若資料無法成功地解碼(即,解碼失敗),則 更多的讀取電壓(亦稱為軟決策讀取電壓)可能會被用來讀取更多的輔助解碼資訊(亦稱為軟資訊)。根據此輔助解碼資訊,資料被成功解碼的機率將可提升。
一般來說,多個軟決策讀取電壓彼此之間的電壓差是固定的並且可透過查表而獲得。然而,對於使用程度不一的可複寫式非揮發性記憶體模組來說,使用具有固定電壓差的多個軟決策讀取電壓可能會導致解碼效率低落。
本發明提供一種解碼方法、記憶體儲存裝置及記憶體控制電路單元,可改善對於區塊碼的解碼效率。
本發明的一範例實施例提供一種解碼方法,其用於可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個記憶胞,所述解碼方法包括:根據所述記憶胞中多個第一記憶胞的損耗程度來決定第一軟決策讀取電壓準位與第二軟決策讀取電壓準位,其中所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間具有差值;以所述第一軟決策讀取電壓準位來讀取所述第一記憶胞以獲得第一軟決策編碼單元,其中所述第一軟決策編碼單元屬於區塊碼;對所述第一軟決策編碼單元執行第一軟決策解碼程序;若所述第一軟決策解碼程序失敗,以所述第二軟決策讀取電壓準位來讀取所述第一記憶胞以獲得第二軟決策編碼單元,其中所述第二軟決策編碼單元屬於所述區塊碼; 以及對所述第二軟決策編碼單元執行第二軟決策解碼程序。
在本發明的一範例實施例中,所述解碼方法更包括:接收讀取指令並且以硬決策讀取電壓準位來讀取所述第一記憶胞以獲得硬決策編碼單元,其中所述硬決策編碼單元屬於所述區塊碼;以及對所述硬決策編碼單元執行硬決策解碼程序,其中以所述第一軟決策讀取電壓準位來讀取所述第一記憶胞的步驟是在所述硬決策解碼程序失敗之後執行。
在本發明的一範例實施例中,所述解碼方法更包括:在執行所述第二軟決策解碼程序之前,將所述第二軟決策編碼單元中的至少一位元設定為在所述第一軟決策解碼程序中更正的位元值。
在本發明的一範例實施例中,根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的步驟包括:獲得所述第一記憶胞的電壓分佈狀態,其中所述電壓分佈狀態至少包括第一狀態與第二狀態;以及根據所述第一狀態與所述第二狀態之間的間隙寬度或所述第一狀態與所述第二狀態的重疊程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間的所述差值是負相關於所述第一狀態與所述第二狀態之間的所述重疊程度。
在本發明的一範例實施例中,所述第一軟決策讀取電壓 準位與所述第二軟決策讀取電壓準位之間的所述差值是正相關於與所述第一狀態與所述第二狀態之間的所述間隙寬度。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間的所述差值是負相關於所述第一記憶胞的所述損耗程度,其中根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的步驟包括:根據所述第一記憶胞的讀取次數、所述第一記憶胞的寫入次數、所述第一記憶胞的抹除次數及所述第一記憶胞的一位元錯誤率的至少其中之一,來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的其中之一為對應於所述第一記憶胞的最佳讀取電壓準位,其中根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的步驟包括:執行最佳讀取電壓準位追蹤程序(optimal read voltage level tracking process)以決定所述最佳讀取電壓準位。
在本發明的一範例實施例中,所述區塊碼由多個子編碼單元組成,所述子編碼單元中的預設位元是由多個編碼程序決定。
在本發明的一範例實施例中,所述編碼程序具有不同的編碼方向。
本發明的另一範例實施例提供一種記憶體儲存裝置,其 包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個記憶胞。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以根據所述記憶胞中多個第一記憶胞的損耗程度來決定第一軟決策讀取電壓準位與第二軟決策讀取電壓準位,其中所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間具有差值,其中所述記憶體控制電路單元更用以發送第一軟決策讀取指令序列,其中所述第一軟決策讀取指令序列用以指示以所述第一軟決策讀取電壓準位來讀取所述第一記憶胞以獲得第一軟決策編碼單元,其中所述第一軟決策編碼單元屬於區塊碼,其中所述記憶體控制電路單元更用以對所述第一軟決策編碼單元執行第一軟決策解碼程序,其中若所述第一軟決策解碼程序失敗,所述記憶體控制電路單元更用以發送第二軟決策讀取指令序列,其中所述第二軟決策讀取指令序列用以指示以所述第二軟決策讀取電壓準位來讀取所述第一記憶胞以獲得第二軟決策編碼單元,其中所述記憶體控制電路單元更用以對所述第二軟決策編碼單元執行第二軟決策解碼程序。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以接收讀取指令並且發送硬決策讀取指令序列,其中所述硬決策讀取指令序列用以指示以硬決策讀取電壓準位來讀取所述第一記憶胞以獲得硬決策編碼單元,其中所述硬決策編碼單元屬於 所述區塊碼,其中所述記憶體控制電路單元更用以對所述硬決策編碼單元執行硬決策解碼程序,其中所述記憶體控制電路單元發送所述第一軟決策讀取指令序列的操作是在所述硬決策解碼程序失敗之後執行。
在本發明的一範例實施例中,在執行所述第二軟決策解碼程序之前,所述記憶體控制電路單元更用以將所述第二軟決策編碼單元中的至少一位元設定為在所述第一軟決策解碼程序中更正的位元值。
在本發明的一範例實施例中,所述記憶體控制電路單元根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的操作包括:獲得所述第一記憶胞的電壓分佈狀態,其中所述電壓分佈狀態包括第一狀態與第二狀態;以及根據所述第一狀態與所述第二狀態之間的間隙寬度或所述第一狀態與所述第二狀態的重疊程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間的所述差值是負相關於所述第一狀態與所述第二狀態之間的所述重疊程度。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間的所述差值是正相關於與所述第一狀態與所述第二狀態之間的所述間隙寬度。
在本發明的一範例實施例中,所述第一軟決策讀取電壓 準位與所述第二軟決策讀取電壓準位之間的所述差值是負相關於所述第一記憶胞的所述損耗程度,其中所述記憶體控制電路單元根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的操作包括:根據所述第一記憶胞的讀取次數、所述第一記憶胞的寫入次數、所述第一記憶胞的抹除次數及所述第一記憶胞的位元錯誤率的至少其中之一,來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的其中之一為對應於所述第一記憶胞的最佳讀取電壓準位,其中所述記憶體控制電路單元根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的操作包括:執行最佳讀取電壓準位追蹤程序以決定所述最佳讀取電壓準位。
在本發明的一範例實施例中,所述區塊碼由多個子編碼單元組成,所述子編碼單元中的預設位元是由多個編碼程序決定。
在本發明的一範例實施例中,所述編碼程序具有不同的編碼方向。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個記憶胞,所述記憶體控制電路單元包括主機介面、記憶體介面、錯誤檢查與校正電路及記憶體管 理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面、所述記憶體介面及所述錯誤檢查與校正電路,其中所述記憶體管理電路用以根據所述記憶胞中多個第一記憶胞的損耗程度來決定第一軟決策讀取電壓準位與第二軟決策讀取電壓準位,其中所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間具有差值,其中所述記憶體管理電路更用以發送第一軟決策讀取指令序列,其中所述第一軟決策讀取指令序列用以指示以所述第一軟決策讀取電壓準位來讀取所述第一記憶胞以獲得第一軟決策編碼單元,其中所述第一軟決策編碼單元屬於區塊碼,其中所述錯誤檢查與校正電路用以對所述第一軟決策編碼單元執行第一軟決策解碼程序,其中若所述第一軟決策解碼程序失敗,所述記憶體管理電路更用以發送第二軟決策讀取指令序列,其中所述第二軟決策讀取指令序列用以指示以所述第二軟決策讀取電壓準位來讀取所述第一記憶胞以獲得第二軟決策編碼單元,其中所述第二軟決策編碼單元屬於所述區塊碼,其中所述錯誤檢查與校正電路更用以對所述第二軟決策編碼單元執行第二軟決策解碼程序。
在本發明的一範例實施例中,所述記憶體管理電路更用以接收讀取指令並且發送硬決策讀取指令序列,其中所述硬決策讀取指令序列用以指示以硬決策讀取電壓準位來讀取所述第一記憶胞以獲得硬決策編碼單元,其中所述硬決策編碼單元屬於所述 區塊碼,其中所述錯誤檢查與校正電路更用以對所述硬決策編碼單元執行硬決策解碼程序,其中所述記憶體管理電路發送所述第一軟決策讀取指令序列的操作是在所述硬決策解碼程序失敗之後執行。
在本發明的一範例實施例中,在執行所述第二軟決策解碼程序之前,所述記憶體管理電路更用以將所述第二軟決策編碼單元中的至少一位元設定為在所述第一軟決策解碼程序中更正的位元值。
在本發明的一範例實施例中,所述記憶體管理電路根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的操作包括:獲得所述第一記憶胞的電壓分佈狀態,其中所述電壓分佈狀態包括第一狀態與第二狀態;以及根據所述第一狀態與所述第二狀態之間的間隙寬度或所述第一狀態與所述第二狀態的重疊程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間的所述差值是負相關於所述第一狀態與所述第二狀態之間的所述重疊程度。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位之間的所述差值是正相關於與所述第一狀態與所述第二狀態之間的所述間隙寬度。
在本發明的一範例實施例中,所述第一軟決策讀取電壓 準位與所述第二軟決策讀取電壓準位之間的所述差值是負相關於所述第一記憶胞的所述損耗程度,其中所述記憶體管理電路根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的操作包括:根據所述第一記憶胞的讀取次數、所述第一記憶胞的寫入次數、所述第一記憶胞的抹除次數及所述第一記憶胞的位元錯誤率的至少其中之一,來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位。
在本發明的一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的其中之一為對應於所述第一記憶胞的最佳讀取電壓準位,其中所述記憶體管理電路根據所述第一記憶胞的所述損耗程度來決定所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的操作包括:執行最佳讀取電壓準位追蹤程序以決定所述最佳讀取電壓準位。
在本發明的一範例實施例中,所述區塊碼由多個子編碼單元組成,所述子編碼單元中的預設位元是由多個編碼程序決定。
在本發明的一範例實施例中,所述編碼程序具有不同的編碼方向。
基於上述,本發明可以根據具有與記憶胞的損耗程度有關的差值的第一軟決策讀取電壓準位與第二軟決策讀取電壓準位來分別讀取都屬於區塊碼的第一軟決策編碼單元與第二軟決策編碼單元,並且分別執行對應的軟決策解碼程序。藉此,可改善對 於區塊碼的解碼效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧系統區
901、902、911、912‧‧‧分佈
913‧‧‧重疊區域
1010‧‧‧編碼單元
1020(1)~1020(n)‧‧‧子編碼單元
1110、1120、1130、1140‧‧‧電壓分佈狀態
1111、1112、1121、1122、1131、1132、1141、1142‧‧‧狀態
Vread-0‧‧‧讀取電壓準位
VRead-1~VRead-18‧‧‧軟決策讀取電壓準位
S1201~S1211‧‧‧步驟
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖8是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖9是根據本發明的一範例實施例所繪示的多個記憶胞的臨 界電壓分佈的示意圖。
圖10是根據本發明的一範例實施例所繪示的區塊碼的示意圖。
圖11是根據本發明的一範例實施例所繪示的軟決策讀取電壓準位與記憶胞的臨界電壓分佈狀態的示意圖。
圖12是根據本發明的一範例實施例所繪示的解碼方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、多階記憶胞(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中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組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會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收程序等等)的相對應的指令序列,在此不一一贅述。這些指令序列例如是由記憶體管理電路702產生並且透過記憶體介面706傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路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的資料存取。
圖9是根據本發明的一範例實施例所繪示的多個記憶胞的臨界電壓分佈的示意圖。
請參照圖9,橫軸代表記憶胞的臨界電壓,而縱軸代表記憶胞個數。例如,圖9是表示一個實體單元中各個記憶胞的臨界電壓。在此假設當某一個記憶胞的臨界電壓是落在分佈901時,此記憶胞所儲存的是位元“1”;若某一個記憶胞的臨界電壓是落在分佈902時,此記憶胞所儲存的是位元“0”。值得一提的是,在本 範例實施例中,每一個記憶胞是用以儲存一個位元,故臨界電壓的分佈有兩種可能。然而,在其他範例實施例中,若一個記憶胞是用以儲存多個位元,則對應的臨界電壓的分佈則可能有四種、八種或其他任意個可能。此外,本發明也不限制每一個分佈所代表的位元。例如,在圖9的另一範例實施例中,分佈901是代表位元“0”,並且分佈902是代表位元“1”。
若要從可複寫式非揮發性記憶體模組406讀取資料,記憶體管理電路702會發送一讀取指令序列至可複寫式非揮發性記憶體模組406。此讀取指令序列用以指示讀取某一邏輯單元或實體單元中的多個記憶胞以取得多個位元。例如,根據此讀取指令序列,可複寫式非揮發性記憶體模組406會根據讀取電壓準位Vread-0來讀取多個記憶胞並且將所獲得的位元資料傳送給記憶體管理電路702。例如,若某一個記憶胞的臨界電壓小於讀取電壓準位Vread-0(例如,屬於分布901的記憶胞),則記憶體管理電路702會讀到位元“1”;若某一個記憶胞的臨界電壓大於讀取電壓準位Vread-0(例如,屬於分布902的記憶胞),則記憶體管理電路702會讀到位元“0”。
然而,隨著可複寫式非揮發性記憶體模組406的使用時間增加及/或操作環境改變,分佈901與902會發生性能衰退(degradation)。發生性能衰退後,分佈901與902可能會逐漸相互靠近甚至相互重疊。例如,分佈911與分佈912分別用來表示性能衰退後的分佈901與902。分佈911與分佈912包含一個重疊區 域913(以斜線表示)。重疊區域913表示有一些記憶胞中所儲存的應該是位元“1”,但其臨界電壓大於讀取電壓準位Vread-0;或者,有一些記憶胞中所儲存的應該是位元“0”,但其臨界電壓小於讀取電壓準位Vread-0。發生性能衰退後,若持續使用讀取電壓準位Vread-0來讀取屬於分佈911或分佈912的記憶胞,則讀取到的位元可能會包含較多錯誤。例如,將屬於分布911的記憶胞誤判為屬於分布912,或者將屬於分布912的記憶胞誤判為屬於分布911。因此,在本範例實施例中,錯誤檢查與校正電路708會對讀取到的位元資料進行解碼,從而更正其中的錯誤。
在本範例實施例中,若要將資料儲存至可複寫式非揮發性記憶體模組406中,錯誤檢查與校正電路708會編碼欲儲存至可複寫式非揮發性記憶體模組406的資料並產生一個編碼單元。例如,此編碼單元是由編碼後的資料組成。此編碼單元是屬於區塊碼。爾後,記憶體管理電路702會發送一個寫入指令序列至可複寫式非揮發性記憶體模組406。此寫入指令序列用以指示將此編碼單元儲存在可複寫式非揮發性記憶體模組406中的一個區域。例如,此區域可以是至少一個實體單元並且包括多個記憶胞(以下亦稱為第一記憶胞)。根據此寫入指令序列,可複寫式非揮發性記憶體模組406會將此編碼單元儲存至此些第一記憶胞中。爾後,當記憶體管理電路702指示讀取此區域中的資料時,可複寫式非揮發性記憶體模組406會從此些第一記憶胞中讀取此編碼單元,並且錯誤檢查與校正電路708會執行對應的解碼程序以解碼此編 碼單元。
圖10是根據本發明的一範例實施例所繪示的區塊碼的示意圖。
請參照圖10,編碼單元1010屬於區塊碼並且包括位元b11~bnm。位元b11~bnm可被分組為子編碼單元1020(1)~1020(n)。每一個子編碼單元1020(1)~1020(n)具有m個位元。n與m皆可以是大於1的任意正整數。在本範例實施例中,編碼單元1010中部分的位元(以下亦稱為預設位元)是由多個編碼程序所決定。例如,可將編碼方向為行(row)方向(例如,由左至右)的編碼程序視為第一類編碼程序,並將編碼方向為列方向(例如,由上至下)的編碼程序視為第二類編碼程序。在一範例實施例中,第一類編碼程序亦稱為行(row)編碼程序,而第二類編碼程序亦稱為列(column)編碼程序。
在本範例實施例中,第一類編碼程序會先被執行,而根據第一類編碼程序的編碼結果,第二類編碼程序會接續被執行。例如,假設欲儲存的使用者資料包含位元b11~b1p、b21~b2p、...、br1~brp(以斜線表示),則在第一類編碼程序中,位元b11~b1p、b21~b2p、...、br1~brp會分別被編碼以獲得位元b11~b1m(即,子編碼單元1020(1))、b21~b2m(即,子編碼單元1020(2))、...、br1~brm(即,子編碼單元1020(n))。位元b1q~b1m為對應於位元b11~b1p的錯誤更正碼,位元b2q~b2m為對應於位元b21~b2p的錯誤更正碼,位元brq~brm為對應於位元br1~brp的錯誤更正碼,以此類推,其中q等 於p+1。在獲得子編碼單元1020(1)~1020(n)之後,第二類編碼程序會被執行。例如,在第二類編碼程序中,位元b11~br1(即,每一個子編碼單元1020(1)~1020(n)中的第1個位元)、位元b12~br2(即,每一個子編碼單元1020(1)~1020(n)中的第2個位元)、...、位元b1m~brm(即,每一個子編碼單元1020(1)~1020(n)中的第m個位元)會分別被編碼以獲得位元b11~bn1、b12~bn2、...、b1m~bnm。位元bs1~bn1為對應於位元b11~br1的錯誤更正碼,位元bs2~bn2為對應於位元b12~br2的錯誤更正碼,位元bsm~bnm為對應於位元b1m~brm的錯誤更正碼,以此類推,其中s等於r+1。
在將編碼單元1010讀取出來之後,對應於所採用的編碼順序,編碼單元1010會被解碼。例如,在本範例實施例中,解碼方向為列方向的解碼程序(亦稱為第二類解碼程序)會先被執行,而根據第二類解碼程序的解碼結果,解碼方向為行方向的解碼程序(亦稱為第一類解碼程序)會接續被執行。例如,在第二類解碼程序中,位元bs1~bn1、bs2~bn2、...、bsm~bnm會被分別用來對位元b11~br1、b12~br2、...、b1m~brm進行解碼。在獲得解碼後的位元b11~br1、b12~br2、...、b1m~brm之後,第一類解碼程序會被執行。例如,在第一類解碼程序中,由第二類解碼程序解碼後的位元b1q~b1m、b2q~b2m、...、brq~brm會分別被用來對由第二類解碼程序解碼後的位元b11~b1p、b21~b2p、...、br1~brp進行解碼以獲得解碼後的使用者資料。
值得一提的是,上述範例實施例中提及的編碼單元之組 成以及編/解碼順序只是一個範例而非用以限制本發明。例如,在另一範例實施例中,所產生的錯誤更正碼也可以是排列在對應的使用者資料之前或者穿插在對應的使用者資料中。例如,在一範例實施例中,在編碼使用者資料時,亦可以是先執行第二類編碼程序,然後再依照第二類編碼程序的編碼結果執行第一類編碼程序;相對應的,在解碼編碼單元時,亦可以是先執行第一類解碼程序,然後再根據第一類解碼程序的解碼結果來執行第二類解碼程序。此外,在另一範例實施例中,若在編碼使用者資料時是先執行第一類編碼程序再執行第二類編碼程序,則在解碼編碼單元時也可以是先執行第一類解碼程序再執行第二類解碼程序;或者,若在編碼使用者資料時是先執行第二類編碼程序再執行第一類編碼程序,則在解碼編碼單元時也可以是先執行第二類解碼程序再執行第一類解碼程序。
在本範例實施例中,第一類編碼程序(或第一類解碼程序)與第二類編碼程序(或第二類解碼程序)的編碼方向不同,但是第一類編碼程序(或第一類解碼程序)與第二類編碼程序(或第二類解碼程序)可採用相同或不同的編/解碼演算法。例如,第一類編碼程序與對應的第一類解碼程序可以是包含低密度奇偶檢查校正碼(low density parity code,LDPC)、BCH碼及里德-所羅門碼(Reed-solomon code,RS code)、方塊渦輪碼(block turbo code,BTC)等各式編/解碼演算法的至少其中之一;而第二類編碼程序與對應的第二類解碼程序也可以是包含上述編/解碼演算法的至少其中之一或者其他類 型的編/解碼演算法,本發明不加以限制。此外,在圖10的另一範例實施例中,用以產生編碼單元1010的多個編碼/解碼程序的方向亦可以是任意方向或符合任意規則,而不限於上述行方向與列方向。例如,在一範例實施例中,亦可以是沿著對角線方向來對位元b11、b22、b33等進行編碼,而解碼時則可以沿著對角線方向來對特定的位元執行解碼。或者,在另一範例實施例中,編/解碼時也可以跳過某些行、某些列或某些位元等等。
在本範例實施例中,記憶體管理電路702會從主機系統11接收一讀取指令。此讀取指令例如是指示讀取映射至第一記憶胞所在之實體單元的至少一邏輯單元。根據此讀取指令,記憶體管理電路702會發送一讀取指令序列(以下亦稱為硬決策讀取指令序列)至可複寫式非揮發性記憶體模組406。此外,在另一範例實施例中,此硬決策讀取指令序列也可能是在執行垃圾回收(garbage collection)等任意記憶體內部之資料管理程序時被使用。此硬決策讀取指令序列用以指示以一讀取電壓準位(以下亦稱為硬決策讀取電壓準位)來從第一記憶胞讀取資料。此硬決策讀取電壓準位可以是指定於硬決策讀取指令序列中或者由可複寫式非揮發性記憶體模組406根據此硬決策讀取指令序列自行查表而獲得。根據硬決策讀取指令序列,可複寫式非揮發性記憶體模組406會施予對應於此硬決策讀取電壓準位的一個讀取電壓(例如,圖9中的讀取電壓VRead-0)至第一記憶胞並且據以回傳多個位元資料。此些位元資料可組成一個編碼單元(以下亦稱為硬決策編碼單元)。此硬決策 編碼單元屬於區塊碼。關於區塊碼的介紹已詳述於上,故在此便不贅述。然後,錯誤檢查與校正電路708會對此硬決策編碼單元執行一解碼程序(以下亦稱為硬決策解碼程序)。
在本範例實施例中,硬決策解碼程序是屬於迭代解碼程序。例如,在硬決策解碼程序中,錯誤檢查與校正電路708會執行至少一次的迭代解碼運算,以藉由迭代地更新硬決策編碼單元中至少一個位元的可靠度資訊(例如,解碼初始值)來提高硬決策編碼單元的解碼成功率。每一次的迭代解碼運算可包含相同或相似於圖10的範例實施例所介紹的解碼操作。一般來說,根據硬決策編碼單元中錯誤(亦稱為錯誤位元)的數目,硬決策解碼程序可能成功或失敗。例如,經過至少一次的迭代解碼運算之後,若硬決策解碼程序成功(例如,錯誤檢查與校正電路708判定硬決策編碼單元中的錯誤皆已被更正),則錯誤檢查與校正電路708會輸出解碼後的硬決策編碼單元。例如,此解碼後的硬決策編碼單元可被傳送至主機系統11或用以執行其他操作(例如,回存至可複寫式非揮發性記憶體模組406中原始或其他的記憶胞)。反之,若因為硬決策編碼單元中錯誤位元的數目過多及/或此些錯誤位元的分布剛好處於無法被更正的位置等等,錯誤檢查與校正電路708可能會因為所執行的迭代解碼運算之次數達到一預設次數而判定硬決策解碼程序失敗。此外,雖然在本範例實施例中硬決策解碼程序是屬於迭代解碼程序,然而,在另一範例實施例中,硬決策解碼程序也可以是屬於非迭代解碼程序。
若硬決策解碼程序失敗,記憶體管理電路702會發送另一讀取指令序列(以下亦稱為第一軟決策讀取指令序列)至可複寫式非揮發性記憶體模組406。第一軟決策讀取指令序列用以指示根據另一讀取電壓準位(以下亦稱為第一軟決策讀取電壓準位)來從第一記憶胞讀取資料。例如,此第一軟決策讀取電壓準位可以指定在第一軟決策讀取指令序列中,或者也可以由可複寫式非揮發性記憶體模組406根據第一軟決策讀取指令序列自行查表而獲得。
在接收到第一軟決策讀取指令序列之後,可複寫式非揮發性記憶體模組406會以此第一軟決策讀取電壓準位來讀取第一記憶胞以獲得另一編碼單元(以下亦稱為第一軟決策編碼單元)。例如,根據第一軟決策讀取指令序列,可複寫式非揮發性記憶體模組406會施予對應於此第一軟決策讀取電壓準位的一個讀取電壓至第一記憶胞並且據以回傳多個位元資料。此些位元資料可組成此第一軟決策編碼單元。此第一軟決策編碼單元亦屬於區塊碼。然後,錯誤檢查與校正電路708會對第一軟決策編碼單元執行另一解碼程序(以下亦稱為第一軟決策解碼程序)。
若第一軟決策解碼程序成功,錯誤檢查與校正電路708會輸出解碼後的第一軟決策編碼單元。例如,此解碼後的第一軟決策編碼單元可被傳送至主機系統11或用以執行其他操作。然而,若第一軟決策解碼程序失敗,記憶體管理電路702會發送另一讀取指令序列(以下亦稱為第二軟決策讀取指令序列)至可複寫式非揮發性記憶體模組406。第二軟決策讀取指令序列用以指示根 據另一讀取電壓準位(以下亦稱為第二軟決策讀取電壓準位)來從第一記憶胞讀取資料。在接收到第二軟決策讀取指令序列之後,可複寫式非揮發性記憶體模組406會以此第二軟決策讀取電壓準位來讀取第一記憶胞以獲得另一編碼單元(以下亦稱為第二軟決策編碼單元)。例如,根據第二軟決策讀取指令序列,可複寫式非揮發性記憶體模組406會施予對應於此第二軟決策讀取電壓準位的一個讀取電壓至第一記憶胞並且據以回傳多個位元資料。此些位元資料可組成此第二軟決策編碼單元。此第二軟決策編碼單元亦屬於區塊碼。然後,錯誤檢查與校正電路708會對第二軟決策編碼單元執行另一解碼程序(以下亦稱為第二軟決策解碼程序)。
在一範例實施例中,在執行第一軟決策解碼程序與執行第二軟決策解碼程序之間還可以包括執行其他的軟決策解碼程序。例如,在一範例實施例中,在第一軟決策解碼程序失敗之後,另一軟決策讀取電壓準位會被用來讀取第一記憶胞以獲得另一軟決策編碼單元,並且另一軟決策解碼程序(以下亦稱為第三軟決策解碼程序)會被執行。在此第三軟決策解碼程序失敗之後,上述獲得第二軟決策編碼單元並執行第二軟決策解碼程序的操作才會被執行。此外,更多或更少的軟決策讀取電壓準位可以被決定並使用,更多或更少的軟決策解碼程序也可以被執行,在此便不贅述。
值得一提的是,本文之範例實施例中提及的「硬決策」與「軟決策」只是用來區別對應的讀取操作與解碼操作。例如,在一範例實施例中,軟決策解碼程序一定是在硬決策解碼程序失 敗之後執行。然而,在另一範例實施例中,若根據通道狀態(例如,記憶胞的損耗程度或臨界電壓分布)而在執行解碼之前就識別出某一筆已編碼資料的解碼難度較高,則也可以不執行硬決策解碼程序而直接讀取軟決策編碼單元並執行對應的軟決策解碼程序。
在本範例實施例中,第一軟決策讀取電壓準位與第二軟決策讀取電壓準位之間的差值與第一記憶胞的損耗程度有關。例如,第一記憶胞的損耗程度與第一記憶胞的使用狀況或當前操作環境有關。例如,若第一記憶胞的讀取次數、第一記憶胞的寫入次數及/或第一記憶胞的抹除次數增加,則第一記憶胞的損耗程度可能會對應增加。例如,若某資料存放在第一記憶胞中的時間區間增加,則第一記憶胞的損耗程度可能會對應增加。例如,若當前可複寫式非揮發性記憶體模組106的操作環境之溫度或濕度太高或太低,則第一記憶胞的損耗程度也可能會對應增加。此外,第一記憶胞的損耗程度也可能會與儲存在第一記憶胞中的資料的正確性/錯誤率有關。例如,若第一記憶胞的損耗程度越高,則儲存在第一記憶胞中的資料的正確性越低或者儲存在第一記憶胞中的資料的錯誤率越高。在一範例實施例中,第一記憶胞的損耗程度可以用一個損耗程度值來表示。此損耗程度值的大小可以是與第一記憶胞的損耗程度成正相關或負相關。例如,若損耗程度值越大,表示第一記憶胞的損耗程度越高,則此損耗程度值的大小是正相關於第一記憶胞的損耗程度;若損耗程度值越大,表示第一記憶胞的損耗程度越低,則此損耗程度值的大小是負相關於第 一記憶胞的損耗程度。根據第一記憶胞的損耗程度(例如,損耗程度值),記憶體管理電路702可以決定第一軟決策讀取電壓準位與第二軟決策讀取電壓準位。在本範例實施例中,第一軟決策讀取電壓準位與第二軟決策讀取電壓準位之間的差值與第一記憶胞的損耗程度成負相關。也就是說,若第一記憶胞的損耗程度越高,則第一軟決策讀取電壓準位與第二軟決策讀取電壓準位之間的差值會越小;若第一記憶胞的損耗程度越低,則第一軟決策讀取電壓準位與第二軟決策讀取電壓準位之間的差值會越大。
一般來說,記憶胞的損耗程度往往會影響到記憶胞的臨界電壓分佈,因此,在一範例實施例中,記憶體管理電路702也可以根據第一記憶胞的電壓分佈狀態(即,臨界電壓分佈狀態)來決定第一軟決策讀取電壓準位與第二軟決策讀取電壓準位。第一記憶胞的電壓分佈狀態可以是藉由掃描至少部份的第一記憶胞、根據記憶胞的損耗程度值來查表、或者藉由分析某一次的解碼程序(例如,硬決策解碼程序)中統計的錯誤(即,錯誤位元)的數目等方式獲得,本發明並不限制獲得第一記憶胞的電壓分佈狀態之作法。此外,在一範例實施例中,記憶體管理電路702是藉由分析第一記憶胞完整的電壓分佈狀態來決定第一軟決策讀取電壓準位與第二軟決策讀取電壓準位。然而,在另一範例實施例中,記憶體管理電路702也可以僅分析第一記憶胞的電壓分佈狀態中錯誤率較高的區域(例如,圖9中的區域913及其附近)即可決定第一軟決策讀取電壓準位與第二軟決策讀取電壓準位,而不需要去獲得 第一記憶胞完整的電壓分佈狀態,以節省操作時間。
在一範例實施例中,記憶體管理電路702可以根據第一記憶胞的電壓分佈狀態中相鄰的兩個狀態(亦稱為第一狀態與第二狀態)之間的間隙寬度及/或此兩個狀態的重疊程度來決定第一軟決策讀取電壓準位與第二軟決策讀取電壓準位。例如,在一範例實施例中,第一記憶胞的電壓分佈狀態中相鄰的兩個狀態之間的間隙寬度會與第一軟決策讀取電壓準位與第二軟決策讀取電壓準位之間的差值成正相關。例如,若第一狀態與第二狀態之間的間隙寬度越大,則第一軟決策讀取電壓準位與第二軟決策讀取電壓準位之間的差值也越大。此間隙寬度可以是指相鄰的兩個狀態的最高峰之間的距離,或者也可以是指相鄰的兩個狀態的相鄰的兩個端點(例如,圖9中,分佈901的右端點與分佈902的左端點)之間的距離。此外,在一範例實施例中,第一記憶胞的電壓分佈狀態中相鄰的兩個狀態的重疊程度會與第一軟決策讀取電壓準位與第二軟決策讀取電壓準位之間的差值成負相關。例如,若第一狀態與第二狀態的重疊程度越高(例如,圖9中重疊區域913中記憶胞的數目越多),則第一軟決策讀取電壓準位與第二軟決策讀取電壓準位之間的差值也越大。
圖11是根據本發明的一範例實施例所繪示的軟決策讀取電壓準位與記憶胞的臨界電壓分佈狀態的示意圖。
請參照圖11,假設每一個第一記憶胞用以儲存一個位元資料並且在4個時間點(即,第一時間點、第二時間點、第三時間 點及第四時間點),第一記憶胞的電壓分佈狀態分別為電壓分佈狀態1110、1120、1130及1140。
在本範例實施例中,電壓分佈狀態1120中的狀態1121與1122之間的間隙寬度小於電壓分佈狀態1110中的狀態1111與1112之間的間隙寬度,因此,對應於電壓分佈狀態1120而可以被使用的軟決策讀取電壓準位VRead-4~VRead-6中任兩個相鄰的軟決策讀取電壓準位之間的差值會小於對應於電壓分佈狀態1110而可以被使用的軟決策讀取電壓準位VRead-1~VRead-3中任兩個相鄰的軟決策讀取電壓準位之間的差值。
在本範例實施例中,電壓分佈狀態1130中的狀態1131與1132相互重疊,故狀態1131與1132之間不具有間隙(即,間隙寬度為零)。因此,對應於電壓分佈狀態1130而可以被使用的軟決策讀取電壓準位VRead-7~VRead-11中任兩個相鄰的軟決策讀取電壓準位之間的差值會小於對應於電壓分佈狀態1120而可以被使用的軟決策讀取電壓準位VRead-4~VRead-6中任兩個相鄰的軟決策讀取電壓準位之間的差值。
在本範例實施例中,電壓分佈狀態1140中的狀態1141與1142的重疊程度大於電壓分佈狀態1130中的狀態1131與1132的重疊程度,因此,軟決策讀取電壓準位VRead-12~VRead-18中任兩個相鄰的軟決策讀取電壓準位之間的差值會小於軟決策讀取電壓準位VRead-7~VRead-11中任兩個相鄰的軟決策讀取電壓準位之間的差值。
一般來說,若記憶胞的電壓分佈狀態中相鄰的狀態之間的間隙寬度越小或相鄰之狀態的重疊程度越高,則從此些記憶胞讀取出來的資料所包含的錯誤位元之數目往往越多,並且可能需要執行更多次的軟決策解碼程序才能成功地將讀取出來的資料解碼。因此,在一範例實施例中,除了縮小所使用的軟決策讀取電壓準位之間的差值之外,還可以增加可以使用的軟決策讀取電壓準位之數目,來提升解碼成功率。例如,在圖11的範例實施例中,電壓分佈狀態1140中的狀態1141與1142的重疊程度大於電壓分佈狀態1130中的狀態1131與1132的重疊程度,因此,對應於電壓分佈狀態1140而可以被使用的軟決策讀取電壓準位VRead-12~VRead-18的數目會被設定為多於對應於電壓分佈狀態1130而可以被使用的軟決策讀取電壓準位VRead-7~VRead-11的數目。依此類推,在另一範例實施例中,隨著相鄰的狀態之間的間隙寬度改變,對應可以被使用的軟決策讀取電壓準位的數目也可以被增加或減少。
在一範例實施例中,對應於第一記憶胞當前的電壓分佈狀態或損耗程度而決定的多個軟決策讀取電壓準位可以視為是屬於同一個軟決策讀取電壓準位組。屬於同一個軟決策讀取電壓準位組的多個軟決策讀取電壓準位中任兩個相鄰的軟決策讀取電壓準位之間的差值可以相同或不同。若硬決策解碼程序失敗,則對應的軟決策讀取電壓準位組中的多個軟決策讀取電壓準位可以逐一被用來讀取對應的軟決策編碼單元。例如,以圖11中的軟決策 讀取電壓準位VRead-12~VRead-18為例,若硬決策解碼程序失敗,則軟決策讀取電壓準位VRead-12會先被用來讀取第一記憶胞並且一個軟決策解碼程序會被執行;若此軟決策解碼程序失敗,則軟決策讀取電壓準位VRead-13會接續被用來讀取第一記憶胞並且一個對應的軟決策解碼程序會被執行;若此軟決策解碼程序仍失敗,則軟決策讀取電壓準位VRead-14會接續被用來讀取第一記憶胞並且一個對應的軟決策解碼程序會被執行;若此軟決策解碼程序仍失敗,則軟決策讀取電壓準位VRead-15會接續被用來讀取第一記憶胞並且一個對應的軟決策解碼程序會被執行;若此軟決策解碼程序仍失敗,則軟決策讀取電壓準位VRead-16會接續被用來讀取第一記憶胞並且一個對應的軟決策解碼程序會被執行,以此類推,直到某一個軟決策解碼程序成功或軟決策讀取電壓準位組中所有的軟決策讀取電壓準位都被使用過為止。此外,本發明並不限制屬於同一個軟決策讀取電壓準位組中的各個軟決策讀取電壓準位的使用順序。例如,在另一範例實施例中,軟決策讀取電壓準位VRead-12~VRead-18是依照電壓值的大小或任意規則來依序被使用。
在一範例實施例中,屬於同一個軟決策讀取電壓準位組的各個軟決策讀取電壓準位可以被一次性地決定。例如,根據第一記憶胞的損耗程度,記錄有對應的軟決策讀取電壓準位組的查找表可以被選擇或產生並且此軟決策讀取電壓準位組中所有的軟決策讀取電壓準位可被獲得。然而,在另一範例實施例中,屬於同一個軟決策讀取電壓準位組的各個軟決策讀取電壓準位則是在 需要使用到時才會即時地決定。例如,在一範例實施例中,若硬決策解碼程序失敗,則只有軟決策讀取電壓準位VRead-12會先被決定並且被使用;爾後,若對應於軟決策讀取電壓準位VRead-12的軟決策解碼程序也失敗,則屬於同一個軟決策讀取電壓準位組的下一個軟決策讀取電壓準位才會接續被決定並且被使用。
在一範例實施例中,若硬決策解碼程序失敗,記憶體管理電路702會執行一個最佳讀取電壓準位追蹤程序(optimal read voltage level tracking process)以決定對應於第一記憶胞的最佳讀取電壓準位。例如,在圖11的範例實施例中,在電壓分佈狀態1110中,對應於第一記憶胞的最佳讀取電壓準位可能是軟決策讀取電壓準位VRead-1;在電壓分佈狀態1120中,對應於第一記憶胞的最佳讀取電壓準位可能是軟決策讀取電壓準位VRead-4;在電壓分佈狀態1130中,對應於第一記憶胞的最佳讀取電壓準位可能是軟決策讀取電壓準位VRead-7;在電壓分佈狀態1140中,對應於第一記憶胞的最佳讀取電壓準位可能是軟決策讀取電壓準位VRead-12。屬於同一個軟決策讀取電壓準位組的其他軟決策讀取電壓準位可以是根據此最佳讀取電壓準位來設定。例如,在一範例實施例中,記憶體管理電路702可以根據第一記憶胞的損耗程度或電壓分佈狀態來決定任兩個相鄰的軟決策讀取電壓準位之間的差值。關於如何根據第一記憶胞的損耗程度或電壓分佈狀態來決定兩個相鄰的軟決策讀取電壓準位之間的差值已詳述於上,在此便不重複贅述。在獲得最佳讀取電壓準位之後,記憶體管理電路702可以根 據此最佳讀取電壓準位以及所決定的差值來逐一決定其他的軟決策讀取電壓準位。例如,在圖11的範例實施例中,在電壓分佈狀態1140中,對應於第一記憶胞的最佳讀取電壓準位是軟決策讀取電壓準位VRead-12,則在決定一個差值之後,軟決策讀取電壓準位VRead-13可以藉由將軟決策讀取電壓準位VRead-12減去此差值而獲得,並且軟決策讀取電壓準位VRead-14則可以藉由將軟決策讀取電壓準位VRead-12加上此差值而獲得。在另一範例實施例中,所決定的差值也可以是同一個軟決策讀取電壓準位組中電壓值最大與最小的軟決策讀取電壓準位之間的差值。例如,在圖11的一範例實施例中,記憶體管理電路702可以根據第一記憶胞的損耗程度或電壓分佈狀態來決定軟決策讀取電壓準位VRead-17與VRead-18之間的差值。然後,記憶體管理電路702可以根據軟決策讀取電壓準位VRead-12以及軟決策讀取電壓準位VRead-17與VRead-18之間的差值來設定軟決策讀取電壓準位VRead-12~VRead-18。此外,在另一範例實施例中,所決定的差值也可以是任意兩個不相鄰的軟決策讀取電壓準位之間的差值。
在一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的其中之一會是對應於第一記憶胞的最佳讀取電壓準位。更具體來說,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的其中之一是對應於第一記憶胞當前的電壓分佈狀態之最佳讀取電壓準位,並且所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位的其中之另一則是 與此最佳讀取電壓準位相鄰的軟決策讀取電壓準位。然而,在另一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位則可以是指對應於第一記憶胞當前的電壓分佈狀態之軟決策讀取電壓準位組中任意兩個相鄰的軟決策讀取電壓準位(例如,圖11中的軟決策讀取電壓準位VRead-1與VRead-2)。或者,在另一範例實施例中,所述第一軟決策讀取電壓準位與所述第二軟決策讀取電壓準位也可以是指對應於第一記憶胞當前的電壓分佈狀態之軟決策讀取電壓準位組中任意的兩個不相鄰的軟決策讀取電壓準位(例如,圖11中的軟決策讀取電壓準位VRead-2與VRead-3)。
請參照回圖10,從圖10的範例實施例可知,對應於某一行的第一類解碼程序或對應於某一列的第二類解碼程序皆可能成功或失敗。每一次執行的第一類解碼程序是各自獨立的,並且每一次執行的第二類解碼程序也是各自獨立的。例如,對於子編碼單元1020(1)的第一類解碼程序可能成功或失敗,並且對於子編碼單元1020(2)的第一類解碼程序也可能成功或失敗,兩者可能無關。因此,即使對於某一個編碼單元的解碼程序失敗,但其中仍然可能存在成功解碼的行、列或者位元。
在一範例實施例中,在執行解碼程序的過程中,部分成功被解碼(或,更正)的位置上的位元值可以被視為是正確的位元值並且被記錄下來。例如,在第一軟決策解碼程序中,若某一個行或列被解碼成功,則這個行或列中各個位置的位元值可以被記錄 下來。爾後,若第一軟決策解碼程序失敗,則在執行第二軟決策解碼程序之前,記憶體管理電路702會將所獲得的第二軟決策編碼單元中的至少一個位元設定為在先前的第一軟決策解碼程序(或,硬決策解碼程序)中決定(或,更正)的至少一位元值。例如,在圖10的範例實施例中,假設對於所獲得的編碼單元1010的解碼是失敗的但解碼結果表示編碼單元1010中的位元b11是正確的,則位元b11的位元值會被記錄下來。在後續調整讀取電壓準位來讀取同一筆資料並且對讀取出的資料執行的下一次解碼中,所讀取出的編碼單元中在同一個位置上的位元b11會被直接更正為先前被記錄的位元值。換言之,在根據不同的讀取電壓準位執行對應的解碼程序的過程中,每一次所獲得的編碼單元中部分已經在先前的解碼程序中被成功解碼的位元可逐漸地被決定(例如,被更正)。例如,在圖11的範例實施例中,在逐一使用軟決策讀取電壓準位VRead-12~VRead-18中的一部分軟決策讀取電壓準位來讀取軟決策編碼單元並執行對應的軟決策解碼程序之後,即使所執行的軟決策解碼程序還是失敗,但下一次的軟決策解碼程序中真正需要被解碼的位元(即,還沒有被成功地解碼的位元)之數目會逐漸減少。藉此,接下來的軟決策解碼程序的解碼成功率將可逐漸提升。此外,本發明並不限制可以傳遞下去的額外的解碼訊息之種類,任何可以傳遞給下一次的解碼程序使用的解碼訊息都可以被記錄下來並且在下一次的解碼程序中被採用。
在一範例實施例中,硬決策解碼程序中被成功解碼出來 的至少部份位元也可以被應用在後續執行的軟決策解碼程序(例如,第一軟決策解碼程序及/或第二軟決策解碼程序)中。相關的應用方式已詳述於上,在此便不贅述。藉此,即使前幾次執行的硬決策解碼程序與軟決策解碼程序都失敗,但此些失敗的解碼程序仍可以對後續的解碼程序作出幫助。
值得一提的是,在一範例實施例中,使用硬決策讀取電壓準位所獲得的硬決策編碼單元的資料大小是與後續的每一次使用軟決策讀取電壓準位所獲得的軟決策編碼單元的資料大小相等。因此,在上述範例實施例中,用以暫存硬決策編碼單元與軟決策編碼單元的暫存區的大小並不需要因為從執行硬決策解碼程序切換為執行軟決策解碼程序而加大。此外,在上述範例實施例中,軟決策解碼程序所使用的演算法/解碼規則是相同或相似於硬決策解碼程序的所使用的演算法/解碼規則,在此便不重複贅述。
圖12是根據本發明的一範例實施例所繪示的解碼方法的流程圖。
請參照圖12,在步驟S1201中,接收一讀取指令。在步驟S1202中,根據一個硬決策讀取電壓準位來讀取可複寫式非揮發性記憶體模組中的多個記憶胞(例如,第一記憶胞)以獲得硬決策編碼單元。此硬決策編碼單元屬於區塊碼。在步驟S1203中,對所述硬決策編碼單元執行硬決策解碼程序。在步驟S1204中,判斷硬決策解碼程序是否成功。若硬決策解碼程序成功,在步驟S1205中,輸出解碼成功的資料(即,解碼成功的硬決策編碼單 元)。若硬決策解碼程序不成功(即,失敗),在步驟S1206中,以一個軟決策讀取電壓準位來讀取所述記憶胞(例如,第一記憶胞)以獲得一軟決策編碼單元。此軟決策編碼單元也屬於區塊碼。在步驟S1207中,對所述軟決策編碼單元執行軟決策解碼程序。在步驟S1208中,判斷所執行的軟決策解碼程序是否成功。若所執行的軟決策解碼程序成功,執行步驟S1205。若所執行的軟決策解碼程序不成功(即,失敗),在步驟S1209中,判斷解碼失敗的軟決策解碼程序之次數是否超過一預設次數。若解碼失敗的軟決策解碼程序之次數沒有超過此預設次數(即,還有可以使用的軟決策讀取電壓準位),在步驟S1210中,改變軟決策讀取電壓準位,並且步驟S1206會根據改變後的軟決策讀取電壓準位而被重複執行。例如,在步驟S1210中,若軟決策讀取電壓準位被從先前在步驟S1206中使用的第一軟決策讀取電壓準位調整為電壓值更大或更小的第二軟決策讀取電壓準位,則在後續執行的步驟S1206中,第二軟決策讀取電壓準位會被用來再次讀取所述記憶胞(例如,第一記憶胞)。此外,若解碼失敗的軟決策解碼程序之次數已超過此預設次數(即,所有軟決策讀取電壓準位都已被使用),則在步驟S1211中,執行一預設操作。例如,此預設操作可包括傳送一讀取失敗訊息至主機系統及/或執行其他的錯誤處理程序等等。
值得一提的是,在圖12的範例實施例中,所有可以使用的軟決策讀取電壓準位是根據欲讀取之記憶胞(例如,第一記憶胞)的損耗程度來決定(例如,透過查表或演算法運算)。每一個可以使 用的軟決策讀取電壓準位可以是一起決定或需要用到時才分別決定。
然而,圖12中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖12中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖12的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明可以根據記憶胞的損耗程度來使用第一軟決策讀取電壓準位與第二軟決策讀取電壓準位分別讀取屬於區塊碼的第一軟決策編碼單元與第二軟決策編碼單元,並且分別執行對應的軟決策解碼程序。藉此,可改善對於區塊碼的解碼效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1201~S1211‧‧‧步驟

Claims (25)

  1. 一種解碼方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個記憶胞,該解碼方法包括:根據該些記憶胞中多個第一記憶胞的一損耗程度來決定一第一軟決策讀取電壓準位與一第二軟決策讀取電壓準位,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間具有一差值;以該第一軟決策讀取電壓準位來讀取該些第一記憶胞以獲得一第一軟決策編碼單元,其中該第一軟決策編碼單元屬於一區塊碼;對該第一軟決策編碼單元執行一第一軟決策解碼程序;若該第一軟決策解碼程序失敗,以該第二軟決策讀取電壓準位來讀取該些第一記憶胞以獲得一第二軟決策編碼單元,其中該第二軟決策編碼單元屬於該區塊碼;以及對該第二軟決策編碼單元執行一第二軟決策解碼程序。
  2. 如申請專利範圍第1項所述的解碼方法,更包括:接收一讀取指令並且以一硬決策讀取電壓準位來讀取該些第一記憶胞以獲得一硬決策編碼單元,其中該硬決策編碼單元屬於該區塊碼;以及對該硬決策編碼單元執行一硬決策解碼程序,其中以該第一軟決策讀取電壓準位來讀取該些第一記憶胞的 步驟是在該硬決策解碼程序失敗之後執行。
  3. 如申請專利範圍第1項所述的解碼方法,更包括:在執行該第二軟決策解碼程序之前,將該第二軟決策編碼單元中的至少一位元設定為在該第一軟決策解碼程序中更正的位元值。
  4. 如申請專利範圍第1項所述的解碼方法,其中根據該些第一記憶胞的該損耗程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的步驟包括:獲得該些第一記憶胞的一電壓分佈狀態,其中該電壓分佈狀態至少包括一第一狀態與一第二狀態;以及根據該第一狀態與該第二狀態之間的一間隙寬度或該第一狀態與該第二狀態的一重疊程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位。
  5. 如申請專利範圍第4項所述的解碼方法,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間的該差值是負相關於該第一狀態與該第二狀態之間的該重疊程度。
  6. 如申請專利範圍第4項所述的解碼方法,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間的該差值是正相關於與該第一狀態與該第二狀態之間的該間隙寬度。
  7. 如申請專利範圍第1項所述的解碼方法,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間的該差值是負相關於該些第一記憶胞的該損耗程度, 其中根據該些第一記憶胞的該損耗程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的步驟包括:根據該些第一記憶胞的一讀取次數、該些第一記憶胞的一寫入次數、該些第一記憶胞的一抹除次數及該些第一記憶胞的一位元錯誤率的至少其中之一,來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位。
  8. 如申請專利範圍第1項所述的解碼方法,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的其中之一為對應於該些第一記憶胞的一最佳讀取電壓準位,其中根據該些第一記憶胞的該損耗程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的步驟包括:執行一最佳讀取電壓準位追蹤程序(optimal read voltage level tracking process)以決定該最佳讀取電壓準位。
  9. 如申請專利範圍第1項所述的解碼方法,其中該區塊碼由多個子編碼單元組成,該些子編碼單元中的一預設位元是由多個編碼程序決定。
  10. 如申請專利範圍第9項所述的解碼方法,其中該些編碼程序具有不同的編碼方向。
  11. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個記憶胞;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫 式非揮發性記憶體模組,其中該記憶體控制電路單元用以根據該些記憶胞中多個第一記憶胞的一損耗程度來決定一第一軟決策讀取電壓準位與一第二軟決策讀取電壓準位,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間具有一差值,其中該記憶體控制電路單元更用以發送一第一軟決策讀取指令序列,其中該第一軟決策讀取指令序列用以指示以該第一軟決策讀取電壓準位來讀取該些第一記憶胞以獲得一第一軟決策編碼單元,其中該第一軟決策編碼單元屬於一區塊碼,其中該記憶體控制電路單元更用以對該第一軟決策編碼單元執行一第一軟決策解碼程序,其中若該第一軟決策解碼程序失敗,該記憶體控制電路單元更用以發送一第二軟決策讀取指令序列,其中該第二軟決策讀取指令序列用以指示以該第二軟決策讀取電壓準位來讀取該些第一記憶胞以獲得一第二軟決策編碼單元,其中該記憶體控制電路單元更用以對該第二軟決策編碼單元執行一第二軟決策解碼程序。
  12. 如申請專利範圍第11項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以接收一讀取指令並且發送一硬決策讀取指令序列,其中該硬決策讀取指令序列用以指示以一硬決策讀取電壓準位來讀取該些第一記憶胞以獲得一硬決策編碼單元,其中該硬決策編碼單元屬於該區塊碼, 其中該記憶體控制電路單元更用以對該硬決策編碼單元執行一硬決策解碼程序,其中該記憶體控制電路單元發送該第一軟決策讀取指令序列的操作是在該硬決策解碼程序失敗之後執行。
  13. 如申請專利範圍第11項所述的記憶體儲存裝置,其中在執行該第二軟決策解碼程序之前,該記憶體控制電路單元更用以將該第二軟決策編碼單元中的至少一位元設定為在該第一軟決策解碼程序中更正的位元值。
  14. 如申請專利範圍第11項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該些第一記憶胞的該損耗程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的操作包括:獲得該些第一記憶胞的一電壓分佈狀態,其中該電壓分佈狀態包括一第一狀態與一第二狀態;以及根據該第一狀態與該第二狀態之間的一間隙寬度或該第一狀態與該第二狀態的一重疊程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位。
  15. 如申請專利範圍第14項所述的記憶體儲存裝置,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間的該差值是負相關於該第一狀態與該第二狀態之間的該重疊程度。
  16. 如申請專利範圍第14項所述的記憶體儲存裝置,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間的 該差值是正相關於與該第一狀態與該第二狀態之間的該間隙寬度。
  17. 如申請專利範圍第11項所述的記憶體儲存裝置,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間的該差值是負相關於該些第一記憶胞的該損耗程度,其中該記憶體控制電路單元根據該些第一記憶胞的該損耗程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的操作包括:根據該些第一記憶胞的一讀取次數、該些第一記憶胞的一寫入次數、該些第一記憶胞的一抹除次數及該些第一記憶胞的一位元錯誤率的至少其中之一,來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位。
  18. 如申請專利範圍第11項所述的記憶體儲存裝置,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的其中之一為對應於該些第一記憶胞的一最佳讀取電壓準位,其中該記憶體控制電路單元根據該些第一記憶胞的該損耗程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的操作包括:執行一最佳讀取電壓準位追蹤程序以決定該最佳讀取電壓準位。
  19. 如申請專利範圍第11項所述的記憶體儲存裝置,其中該區塊碼由多個子編碼單元組成,該些子編碼單元中的一預設位元是由多個編碼程序決定。
  20. 如申請專利範圍第19項所述的記憶體儲存裝置,其中該些編碼程序具有不同的編碼方向。
  21. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個記憶胞,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一錯誤檢查與校正電路;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面及該錯誤檢查與校正電路,其中該記憶體管理電路用以根據該些記憶胞中多個第一記憶胞的一損耗程度來決定一第一軟決策讀取電壓準位與一第二軟決策讀取電壓準位,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間具有一差值,其中該記憶體管理電路更用以發送一第一軟決策讀取指令序列,其中該第一軟決策讀取指令序列用以指示以該第一軟決策讀取電壓準位來讀取該些第一記憶胞以獲得一第一軟決策編碼單元,其中該第一軟決策編碼單元屬於一區塊碼,其中該錯誤檢查與校正電路用以對該第一軟決策編碼單元執 行一第一軟決策解碼程序,其中若該第一軟決策解碼程序失敗,該記憶體管理電路更用以發送一第二軟決策讀取指令序列,其中該第二軟決策讀取指令序列用以指示以該第二軟決策讀取電壓準位來讀取該些第一記憶胞以獲得一第二軟決策編碼單元,其中該第二軟決策編碼單元屬於該區塊碼,其中該錯誤檢查與校正電路更用以對該第二軟決策編碼單元執行一第二軟決策解碼程序。
  22. 如申請專利範圍第21項所述的記憶體控制電路單元,其中該記憶體管理電路根據該些第一記憶胞的該損耗程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的操作包括:獲得該些第一記憶胞的一電壓分佈狀態,其中該電壓分佈狀態包括一第一狀態與一第二狀態;以及根據該第一狀態與該第二狀態之間的一間隙寬度或該第一狀態與該第二狀態的一重疊程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位。
  23. 如申請專利範圍第22項所述的記憶體控制電路單元,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間的該差值是負相關於該第一狀態與該第二狀態之間的該重疊程度。
  24. 如申請專利範圍第22項所述的記憶體控制電路單元,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位之間的該差值是正相關於與該第一狀態與該第二狀態之間的該間隙寬度。
  25. 如申請專利範圍第21項所述的記憶體控制電路單元,其中該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的其中之一為對應於該些第一記憶胞的一最佳讀取電壓準位,其中該記憶體管理電路根據該些第一記憶胞的該損耗程度來決定該第一軟決策讀取電壓準位與該第二軟決策讀取電壓準位的操作包括:執行一最佳讀取電壓準位追蹤程序以決定該最佳讀取電壓準位。
TW104117466A 2015-05-29 2015-05-29 Decoding method, memory storage device and memory control circuit unit TWI562152B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW104117466A TWI562152B (en) 2015-05-29 2015-05-29 Decoding method, memory storage device and memory control circuit unit
US14/818,323 US20160350179A1 (en) 2015-05-29 2015-08-05 Decoding method, memory storage device and memory control circuit unit
US16/393,982 US20190252035A1 (en) 2015-05-29 2019-04-25 Decoding method, memory storage device and memory control circuit unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104117466A TWI562152B (en) 2015-05-29 2015-05-29 Decoding method, memory storage device and memory control circuit unit

Publications (2)

Publication Number Publication Date
TW201642266A true TW201642266A (zh) 2016-12-01
TWI562152B TWI562152B (en) 2016-12-11

Family

ID=57398782

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104117466A TWI562152B (en) 2015-05-29 2015-05-29 Decoding method, memory storage device and memory control circuit unit

Country Status (2)

Country Link
US (2) US20160350179A1 (zh)
TW (1) TWI562152B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170047468A (ko) * 2015-10-22 2017-05-08 삼성전자주식회사 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법
TWI588833B (zh) * 2015-11-27 2017-06-21 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
US9911466B2 (en) * 2016-02-16 2018-03-06 Micron Technology, Inc. Read threshold voltage selection
KR102512448B1 (ko) * 2016-03-28 2023-03-22 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
WO2018163258A1 (ja) * 2017-03-06 2018-09-13 株式会社日立製作所 フラッシュメモリモジュール、ストレージシステム、及びフラッシュメモリの制御方法
US10083754B1 (en) * 2017-06-05 2018-09-25 Western Digital Technologies, Inc. Dynamic selection of soft decoding information
US10062441B1 (en) 2017-08-31 2018-08-28 Micron Technology, Inc. Determining data states of memory cells
TWI640865B (zh) * 2017-09-05 2018-11-11 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
JP2019164850A (ja) * 2018-03-19 2019-09-26 東芝メモリ株式会社 メモリシステム
US10715182B2 (en) * 2018-07-27 2020-07-14 Innogrit Technologies Co., Ltd. Systems and methods for decoding error correcting codes with self-generated LLR
CN111435604B (zh) * 2019-01-15 2023-05-02 群联电子股份有限公司 解码方法、存储器控制电路单元以及存储器存储装置
KR20200139573A (ko) * 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
TWI722867B (zh) * 2020-04-14 2021-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
KR20220103227A (ko) * 2021-01-14 2022-07-22 삼성전자주식회사 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법
US11886293B2 (en) * 2021-11-15 2024-01-30 Samsung Electronics Co., Ltd. Memory controller managing strong error information and operating method thereof

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007132457A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2008121577A1 (en) * 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US8812939B2 (en) * 2011-01-28 2014-08-19 Marvell World Trade Ltd. Soft decoding systems and methods for flash based memory systems
KR101736337B1 (ko) * 2011-02-28 2017-05-30 삼성전자주식회사 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법
US9001587B2 (en) * 2011-09-16 2015-04-07 Samsung Electronics Co., Ltd. Flash memory and reading method of flash memory
US9058289B2 (en) * 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US8493791B2 (en) * 2011-12-23 2013-07-23 Stec, Inc. Word-line inter-cell interference detector in flash system
TWI576847B (zh) * 2012-03-02 2017-04-01 慧榮科技股份有限公司 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
US8856611B2 (en) * 2012-08-04 2014-10-07 Lsi Corporation Soft-decision compensation for flash channel variation
KR102028128B1 (ko) * 2012-08-07 2019-10-02 삼성전자주식회사 불휘발성 랜덤 액세스 메모리 및 낸드 플래시 메모리를 포함하는 메모리 시스템의 동작 방법
KR102125371B1 (ko) * 2012-12-04 2020-06-22 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 동작방법
KR102123946B1 (ko) * 2012-12-28 2020-06-17 삼성전자주식회사 멀티 레벨 셀 메모리 장치 및 그것의 동작방법
KR102131802B1 (ko) * 2013-03-15 2020-07-08 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
KR102065664B1 (ko) * 2013-08-09 2020-01-13 삼성전자 주식회사 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
KR20150091693A (ko) * 2014-02-03 2015-08-12 삼성전자주식회사 플래쉬 메모리 읽기 방법
KR102244618B1 (ko) * 2014-02-21 2021-04-26 삼성전자 주식회사 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법
KR20160046467A (ko) * 2014-10-21 2016-04-29 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템, 데이터 저장 시스템 및 그것의 동작 방법

Also Published As

Publication number Publication date
TWI562152B (en) 2016-12-11
US20160350179A1 (en) 2016-12-01
US20190252035A1 (en) 2019-08-15

Similar Documents

Publication Publication Date Title
TWI582779B (zh) 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元
TW201642266A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
CN106297883B (zh) 解码方法、存储器存储装置及存储器控制电路单元
TWI592869B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI628660B (zh) 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
TWI648676B (zh) 資料存取方法、記憶體控制電路單元以及記憶體儲存裝置
TWI668695B (zh) 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置
US10685711B1 (en) Decoding method, memory controlling circuit unit and memory storage device
US10447314B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI529530B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI691962B (zh) 解碼方法、記憶體控制電路單元與記憶體儲存裝置
TWI681396B (zh) 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
CN109901784B (zh) 数据存取方法、存储器控制电路单元以及存储器储存装置
TW202022861A (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
TWI751620B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TW202009944A (zh) 記憶體測試方法與記憶體測試系統
TW201802820A (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN111258791B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
TWI705449B (zh) 電壓識別方法、記憶體控制電路單元以及記憶體儲存裝置
US11145372B2 (en) Decoding method, memory controlling circuit unit, and memory storage device
CN111435604B (zh) 解码方法、存储器控制电路单元以及存储器存储装置
CN113299329A (zh) 存储装置及其控制方法、控制电路单元
CN112634972A (zh) 电压识别方法、存储器控制电路单元以及存储器储存装置