TW201727660A - 解碼方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
解碼方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TW201727660A TW201727660A TW105101654A TW105101654A TW201727660A TW 201727660 A TW201727660 A TW 201727660A TW 105101654 A TW105101654 A TW 105101654A TW 105101654 A TW105101654 A TW 105101654A TW 201727660 A TW201727660 A TW 201727660A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- reliability information
- channel reliability
- unit
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/63—Joint error correction and other techniques
- H03M13/6325—Error control coding in combination with demodulation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
Abstract
一種解碼方法、記憶體儲存裝置及記憶體控制電路單元。此解碼方法包括:程式化第一資料至可複寫式非揮發性記憶體模組中的第一實體單元;讀取第一實體單元以獲得第二資料;根據第一資料與第二資料獲得對應於第一位元值的第一臨界電壓分布與對應於第二位元值的第二臨界電壓分布,其中第一位元值與第二位元值不同;根據第一臨界電壓分布與第二臨界電壓分布計算對應於第一實體單元的第一通道可靠度資訊;以及根據第一通道可靠度資訊來解碼儲存於第一實體單元的第三資料。藉此,可提升對於第一實體單元的解碼效率。
Description
本發明是有關於一種解碼技術,且特別是有關於一種解碼方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體模組中用以儲存資料的最小單位為記憶胞。隨著可複寫式非揮發性記憶體模組的使用程度增加,記憶胞的可靠度會下降,從而導致儲存於記憶胞中的資料出現錯誤。因此,在將某資料從可複寫式非揮發性記憶體模組中讀取出來後,會藉由解碼程序來更正其中的錯誤。然而,在基於機率來解碼的某些解碼程序中,若沒有隨著使用程度不同的記憶胞來適應性地調整在相對應的解碼程序中使用的一些參數,則可能會導致後續解碼效率低落。
有鑑於此,本發明提供一種解碼方法、記憶體儲存裝置及記憶體控制電路單元,可即時地更新使用程度不同的記憶胞所對應的通道可靠度資訊,從而提升解碼效率。
本發明的一範例實施例提供一種解碼方法,其用於可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個實體單元,所述解碼方法包括:程式化第一資料至所述實體單元中的至少一第一實體單元;讀取所述第一實體單元以獲得第二資料;根據所述第一資料與所述第二資料獲得對應於第一位元值的第一臨界電壓分布與對應於第二位元值的第二臨界電壓分布,其中所述第一位元值與所述第二位元值不同;根據所述第一臨界電壓分布與所述第二臨界電壓分布計算對應於所述第一實體單元的第一通道可靠度資訊;以及根據所述第一通道可靠度資訊來解碼儲存於所述第一實體單元的第三資料。
在本發明的一範例實施例中,所述解碼方法更包括:將隨機種子輸入至隨機數產生器以產生所述第一資料並儲存所述隨機種子與所述第一資料的至少其中之一。
在本發明的一範例實施例中,獲得所述第一臨界電壓分布與所述第二臨界電壓分布並且計算所述第一通道可靠度資訊的步驟包括:根據所述第二資料將所述第一實體單元中用以儲存所述第一資料的每一個記憶胞的臨界電壓分組至多個電壓區間的其中之一;根據所述第一資料統計被分組至所述電壓區間中的每一者的記憶胞中,屬於所述第一臨界電壓分布的第一記憶胞的第一總數;根據所述第一資料統計被分組至所述電壓區間中的每一者的記憶胞中,屬於所述第二臨界電壓分布的第二記憶胞的第二總數;以及根據所述第一總數與所述第二總數計算所述第一通道可靠度資訊。
在本發明的一範例實施例中,根據所述第一通道可靠度資訊來解碼所述第三資料的步驟包括:根據所述第一通道可靠度資訊查詢查找表以獲得預設通道可靠度資訊;以及根據所述預設通道可靠度資訊來解碼所述第三資料。
在本發明的一範例實施例中,所述解碼方法更包括:根據所述第一通道可靠度資訊從多個通道可靠度資訊集合中選擇其中之一;從所選擇的通道可靠度資訊集合中獲得對應於至少一第二實體單元的第二通道可靠度資訊;以及根據所述第二通道可靠度資訊來解碼儲存於所述第二實體單元的第四資料。
本發明的另一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以發送寫入指令序列,其中所述寫入指令序列用以指示程式化第一資料至所述實體單元中的至少一第一實體單元,所述記憶體控制電路單元更用以發送讀取指令序列,其中所述讀取指令序列用以指示讀取所述第一實體單元以獲得第二資料,所述記憶體控制電路單元更用以根據所述第一資料與所述第二資料獲得對應於第一位元值的第一臨界電壓分布與對應於第二位元值的第二臨界電壓分布,其中所述第一位元值與所述第二位元值不同,所述記憶體控制電路單元更用以根據所述第一臨界電壓分布與所述第二臨界電壓分布計算對應於所述第一實體單元的第一通道可靠度資訊,所述記憶體控制電路單元更用以根據所述第一通道可靠度資訊來解碼儲存於所述第一實體單元的第三資料。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以將隨機種子輸入至隨機數產生器以產生所述第一資料並儲存所述隨機種子與所述第一資料的至少其中之一。
在本發明的一範例實施例中,所述記憶體控制電路單元獲得所述第一臨界電壓分布與所述第二臨界電壓分布並且計算所述第一通道可靠度資訊的操作包括:根據所述第二資料將所述第一實體單元中用以儲存所述第一資料的每一個記憶胞的臨界電壓分組至多個電壓區間的其中之一;根據所述第一資料統計被分組至所述電壓區間中的每一者的記憶胞中,屬於所述第一臨界電壓分布的第一記憶胞的第一總數;根據所述第一資料統計被分組至所述電壓區間中的每一者的記憶胞中,屬於所述第二臨界電壓分布的第二記憶胞的第二總數;以及根據所述第一總數與所述第二總數計算所述第一通道可靠度資訊。
在本發明的一範例實施例中,所述記憶體控制電路單元根據所述第一通道可靠度資訊來解碼所述第三資料的操作包括:根據所述第一通道可靠度資訊查詢查找表以獲得預設通道可靠度資訊;以及根據所述預設通道可靠度資訊來解碼所述第三資料。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述第一通道可靠度資訊從多個通道可靠度資訊集合中選擇其中之一,所述記憶體控制電路單元更用以從所選擇的通道可靠度資訊集合中獲得對應於至少一第二實體單元的第二通道可靠度資訊,所述記憶體控制電路單元更用以根據所述第二通道可靠度資訊來解碼儲存於所述第二實體單元的第四資料。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用以控制可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個實體單元,所述記憶體控制電路單元包括主機介面、記憶體介面、錯誤檢查與校正電路及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面、所述記憶體介面及所述錯誤檢查與校正電路,所述記憶體管理電路用以發送寫入指令序列,其中所述寫入指令序列用以指示程式化第一資料至所述實體單元中的至少一第一實體單元,所述記憶體管理電路更用以發送讀取指令序列,其中所述讀取指令序列用以指示讀取所述第一實體單元以獲得第二資料,所述記憶體管理電路更用以根據所述第一資料與所述第二資料獲得對應於第一位元值的第一臨界電壓分布與對應於第二位元值的第二臨界電壓分布,其中所述第一位元值與所述第二位元值不同,所述記憶體管理電路更用以根據所述第一臨界電壓分布與所述第二臨界電壓分布計算對應於所述第一實體單元的第一通道可靠度資訊,所述錯誤檢查與校正電路用以根據所述第一通道可靠度資訊來解碼儲存於所述第一實體單元的第三資料。
在本發明的一範例實施例中,所述記憶體管理電路更用以將隨機種子輸入至隨機數產生器以產生所述第一資料並儲存所述隨機種子與所述第一資料的至少其中之一。
在本發明的一範例實施例中,所述記憶體管理電路獲得所述第一臨界電壓分布與所述第二臨界電壓分布並且計算所述第一通道可靠度資訊的操作包括:根據所述第二資料將所述第一實體單元中用以儲存所述第一資料的每一個記憶胞的一臨界電壓分組至多個電壓區間的其中之一;根據所述第一資料統計被分組至所述電壓區間中的每一者的記憶胞中,屬於所述第一臨界電壓分布的第一記憶胞的第一總數;根據所述第一資料統計被分組至所述電壓區間中的每一者的記憶胞中,屬於所述第二臨界電壓分布的第二記憶胞的第二總數;以及根據所述第一總數與所述第二總數計算所述第一通道可靠度資訊。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據所述第一通道可靠度資訊查詢查找表以獲得預設通道可靠度資訊,所述錯誤檢查與校正電路更用以根據所述預設通道可靠度資訊來解碼所述第三資料。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據所述第一通道可靠度資訊從多個通道可靠度資訊集合中選擇其中之一,所述記憶體管理電路更用以從所選擇的通道可靠度資訊集合中獲得對應於至少一第二實體單元的第二通道可靠度資訊,所述錯誤檢查與校正電路更用以根據所述第二通道可靠度資訊來解碼儲存於所述第二實體單元的第四資料。
在本發明的一範例實施例中,所述第一實體單元與所述第二實體單元位於同一條字元線或同一個字元線層。
在本發明的一範例實施例中,所述實體單元包括資料位元區與冗餘位元區,所述第一資料被儲存於所述資料位元區與所述冗餘位元區的至少其中之一。
基於上述,在將第一資料儲存至第一實體單元並藉由讀取第一實體單元來獲得第二資料之後,透過分析第一資料與第二資料,對應於第一位元值的第一臨界電壓分布與對應於第二位元值的第二臨界電壓分布會被獲得。根據第一臨界電壓分布與第二臨界電壓分布,對應於第一實體單元的第一通道可靠度資訊會被獲得。爾後,此第一通道可靠度資訊即可用來解碼儲存於第一實體單元中的資料,從而提升解碼效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(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。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的安全數位(Secure Digital, SD)卡32、小型快閃(Compact Flash, CF)卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖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)標準、SD介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、eMCP介面標準、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個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組406中的記憶胞是以陣列的方式設置。以下分別以二維陣列與三維陣列來對不同範例實施例中的記憶胞陣列進行說明。但是,在此須注意的是,以下範例實施例只是記憶胞陣列的幾種範例,在其他的範例實施例中,記憶胞陣列的配置方式可以被調整以符合實務上的需求。
圖5A是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。
請參照圖5A,記憶胞陣列510包括用以儲存資料的多個記憶胞502、多個選擇閘汲極(select gate drain, SGD)電晶體512與多個選擇閘源極(select gate source, SGS)電晶體514、以及連接此些記憶胞的多條位元線504、多條字元線506、與共用源極線508。在本範例實施例中,記憶胞502是以陣列方式配置在位元線504與字元線506的交叉點上。
圖5B是根據本發明的另一範例實施例所繪示的記憶胞陣列的示意圖。
請參照圖5B,在本範例實施例中,記憶胞陣列520包括用以儲存資料的多個記憶胞522、多個位元線組524(1)~524(4)及多個字元線層526(1)~526(8)。位元線組524(1)~524(4)彼此獨立(例如,彼此分離)並且沿第一方向(例如,X軸方向)排列。位元線組524(1)~524(4)中的每一個位元線組包括彼此獨立(例如,彼此分離)的多條位元線524。包含於位元線組524(1)~524(4)中的每一者的位元線524沿第二方向(例如,Y軸方向)排列並且往第三方向(例如,Z軸方向)延伸。字元線層526(1)~526(8)彼此獨立(例如,彼此分離)並且沿第三方向堆疊。
在本範例實施例中,字元線層526(1)~526(8)中的每一個字元線層可視為一個字元線平面。每一個記憶胞522皆被配置於位元線組524(1)~524(4)與字元線層526(1)~526(8)之間的每一個交錯處。然而,在另一範例實施例中,記憶胞陣列520可以包括更多或更少的字元線層,一個位元線組可以包括更多或更少的位元線,並且一個字元線層也可以讓更多或更少的位元線組通過。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為“把資料寫入至記憶胞”或“程式化記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組406中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
圖6是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖6,記憶體控制電路單元404包括記憶體管理電路602、主機介面604、記憶體介面606及錯誤檢查與校正電路608。
記憶體管理電路602用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路602具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路602的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路602的控制指令是以韌體型式來實作。例如,記憶體管理電路602具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路602的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路602具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路602的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路602的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路602包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路皆耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的記憶胞或其群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組406中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路602還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組406以指示執行相對應的操作。
主機介面604是耦接至記憶體管理電路602並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面604來傳送至記憶體管理電路602。在本範例實施例中,主機介面604是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面604亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面606是耦接至記憶體管理電路602並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面606轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路602要存取可複寫式非揮發性記憶體模組406,記憶體介面606會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路602產生並且透過記憶體介面606傳送至可複寫式非揮發性記憶體模組406。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路608是耦接至記憶體管理電路602並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路602從主機系統11中接收到寫入指令時,錯誤檢查與校正電路608會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路602會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路602從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路608會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
在本範例實施例中,錯誤檢查與校正電路608所使用的是低密度奇偶檢查碼(low density parity code,LDPC)。然而,在另一範例實施例中,錯誤檢查與校正電路608所使用的也可以是BCH碼、迴旋碼(convolutional code)、渦輪碼(turbo code)、位元翻轉(bit flipping)等編/解碼演算法。
圖7是根據本發明的一範例實施例所繪示的低密度奇偶檢查碼之置信傳播(belief propagation)的示意圖。
請參照圖7,低密度奇偶檢查碼的解碼過程可以表示為一個置信傳播圖710。置信傳播圖710包括奇偶節點701(1)~701(k
)與訊息節點702(1)~702(n
)。每一個奇偶節點701(1)~701(k
)是對應到一個校驗子(syndrome),而每一個訊息節點702(1)~702(n
)是對應當前解碼之碼字中的一個資料位元。資料位元與校驗子之間的對應關係(即,訊息節點702(1)~702(n
)與奇偶節點701(1)~701(k
)之間的連結關係)是根據低密度奇偶檢查碼所採用的一個奇偶檢查矩陣所產生的。具體來說,若奇耦檢查矩陣中第i
列(row)第j
行(column)的元素為1,則第i
個奇偶節點701(i
)便會連接到第j
個訊息節點702(j),其中i
與j
為正整數。
當記憶體管理電路602從可複寫式非揮發性記憶體模組406中讀取n
個資料位元(形成一個碼字)時,記憶體管理電路602(或錯誤檢查與校正電路608)也會取得每一個資料位元的通道可靠度資訊。此通道可靠度資訊用以表示對應的資料位元被解碼為位元“1”或是“0”的機率(或稱信心度)。例如,在置信傳播圖710中,訊息節點702(1)~702(n
)會接收到對應的通道可靠度資訊L1
~Ln
。其中,訊息節點702(1)會接收第1個資料位元的通道可靠度資訊L1
,而訊息節點702(j)會接收第j
個資料位元的通道可靠度資訊Lj
。錯誤檢查與校正電路608會根據置信傳播圖710的結構與通道可靠度資訊L1
~Ln
來執行解碼程序。
在本範例實施例中,錯誤檢查與校正電路608所執行的解碼程序為迭代解碼(iterative decoding)程序。在迭代解碼程序中,訊息節點702(1)~702(n
)會計算出可靠度資訊給奇偶節點701(1)~701(k
),並且奇偶節點701(1)~701(k
)也會計算出可靠度資訊給訊息節點702(1)~702(n
)。計算出來的可靠度資訊會沿著置信傳播圖710中的邊(edge)來傳送。例如,奇偶節點701(i
)傳送給訊息節點702(j
)的是可靠度資訊,而訊息節點702(j
)傳送給奇偶節點701(i
)是可靠度資訊。某一個可靠度資訊是用來表示一個節點認為某一個資料位元被解碼為“1”或是“0”的機率(或上述信心度)有多少。舉例來說,可靠度資訊表示訊息節點702(j
)認為第j
個資料位元被解碼為“1”或是“0”的信心度(可為正或是負),而可靠度資訊表示奇偶節點701(i
)認為第j
個資料位元被解碼為“1”或是“0”的信心度(亦可為正或是負)。而訊息節點702(1)~702(n
)與奇偶節點701(1)~701(k
)會根據輸入的可靠度資訊來計算輸出的可靠度資訊,其近似於計算一個資料位元被解碼為“1”或是“0”的條件機率。因此,上述傳送可靠度資訊的過程又被稱為置信傳播。
在一範例實施例中,在節點間傳輸的可靠度資訊(例如,可靠度資訊與)以及實際用來對資料位元進行解碼的通道可靠度資訊(例如,通道可靠度資訊L1
~Ln
)皆是以對數可能性比值(Log Likelihood Ratio,LLR)來表示。然而,當採用不同的演算法來更新迭代解碼程序中的可靠度資訊及/或通道可靠度資訊時,訊息節點702(1)~702(n
)及/或奇偶節點701(1)~701(k
)會計算出不同類型/屬性的可靠度資訊及/或通道可靠度資訊。例如,錯誤檢查與校正電路608可以採用總和-乘積演算法(Sum-Product Algorithm)、最小值-總和演算法(Min-Sum Algorithm)、或位元翻轉演算法(Bit-Flipping Algorithm)等,本發明不加以限制。
在本範例實施例中,迭代解碼程序中的迭代(iteration)會不斷的重覆執行,以更新至少部份資料位元所對應的通道可靠度資訊。例如,在迭代解碼程序的每一次迭代中,訊息節點702(1)~702(n
)會傳遞可靠度資訊給奇偶節點701(1)~701(k
),並且奇偶節點701(1)~701(k
)會傳遞可靠度資訊給訊息節點702(1)~702(n
)。藉此,實際用來對資料位元進行解碼的通道可靠度資訊(例如,通道可靠度資訊L1
~Ln
)可能會在任一次的迭代中被更新。若經由解碼程序中的某一次迭代所產生的碼字為有效(valid)碼字,表示解碼成功,並且解碼程序會停止。若所產生的碼字不是有效的碼字,則會進行下一次的迭代。此外,若解碼程序中執行迭代的總次數到達一預定門檻值,則表示解碼失敗,並且此解碼程序也會停止。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體610與電源管理電路612。
緩衝記憶體610是耦接至記憶體管理電路602並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路612是耦接至記憶體管理電路602並且用以控制記憶體儲存裝置10的電源。
在本範例實施例中,可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線(或同一個字元線層)上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞被用以儲存2個以上的位元,則同一條字元線(或同一個字元線層)上的實體程式化單元至少可被分類為一個下(lower)實體程式化單元與一個上(upper)實體程式化單元。
在一範例實施例中,若每一個記憶胞被用以儲存2個位元,則同一條字元線(或同一個字元線層)上的實體程式化單元可被分類為一個下實體程式化單元與一個上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度會高於上實體程式化單元的可靠度。
在另一範例實施例中,若每一個記憶胞被用以儲存3個位元,則同一條字元線(或同一個字元線層)上的實體程式化單元可被分類為一個下實體程式化單元、一個上實體程式化單元及一個額外(extra)實體程式化單元。例如,一記憶胞的最低有效位元是屬於下實體程式化單元,一記憶胞的中間有效位元(Central Significant Bit,CSB)是屬於上實體程式化單元,並且一記憶胞的的最高有效位元是屬於額外實體程式化單元。
在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面(page)或是實體扇(sector)。若實體程式化單元為實體頁面,則此些實體程式化單元通常包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
在一範例實施例中,記憶體管理電路602是基於實體單元來管理可複寫式非揮發性記憶體模組406中的記憶胞。例如,在以下範例實施例中,是以一個實體程式化單元作為一個實體單元的範例。然而,在另一範例實施例中,一個實體單元亦可以是指一個實體抹除單元或由任意數目的記憶胞組成,視實務上的需求而定。此外,必須瞭解的是,當記憶體管理電路602對可複寫式非揮發性記憶體模組406中的記憶胞(或實體單元)進行分組時,此些記憶胞(或實體單元)是被邏輯地分組,而其實際位置並未更動。
圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
請參照圖8,記憶體管理電路602會將可複寫式非揮發性記憶體模組406的實體單元810(0)~810(B)邏輯地分組為儲存區801與替換區802。儲存區801中的實體單元810(0)~810(A)是用以儲存資料,而替換區802中的實體單元810(A+1)~810(B)是用以替換儲存區801中損壞的實體單元。
在本範例實施例中,記憶體管理電路602會配置邏輯單元812(0)~812(C)以映射儲存區801中的實體單元810(0)~800(A)的至少一部分。在本範例實施例中,主機系統11是透過邏輯位址(logical address, LA)來存取儲存區801中的資料,因此,邏輯單元812(0)~812(C)中的每一者是指一個邏輯位址。然而,在另一範例實施例中,邏輯單元812(0)~812(C)中的每一者也可以是指一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續或不連續的邏輯位址組成,視實務上的需求而定。此外,邏輯單元812(0)~812(C)中的每一者也可被映射至一或多個實體單元。
在本範例實施例中,記憶體管理電路602會在特定時間點執行一通道可靠度資訊更新程序,以更新對應於特定的實體單元的通道可靠度資訊。在一範例實施例中,此特定時間點包括記憶體儲存裝置10開機時、記憶體儲存裝置10正常關機時、記憶體儲存裝置10突然斷電時及記憶體儲存裝置10閒置超過一預設時間時的至少其中之一。在一範例實施例中,此特定時間點亦可以是週期性的時間點。例如,每隔一段時間(例如,一週)執行一次通道可靠度資訊更新程序。在一範例實施例中,此特定時間點亦可以是當某一實體單元的位元錯誤率、抹除計數、寫入計數、讀取計數及資料儲存時間的至少其中之一超過對應的一預設值時。在一範例實施例中,此特定時間點亦可以是當上述特定的實體單元被抹除時。在一範例實施例中,此特定時間點亦可以是當上述特定的實體單元被抹除後並且再次被用以儲存來自主機系統11的資料時。在一範例實施例中,此特定時間點亦可以是當上述特定的實體單元被從替換區801選擇以替換儲存區802的一個損壞的實體單元時。在一範例實施例中,此特定時間點亦可以是對儲存於上述特定實體單元之資料所執行的某一次迭代解碼程序失敗時。
在通道可靠度資訊更新程序中,記憶體管理電路602會發送一寫入指令序列至可複寫式非揮發性記憶體模組406。此寫入指令序列用以指示可複寫式非揮發性記憶體模組406將一資料(以下亦稱為第一資料)程式化至實體單元810(0)~800(A)的至少其中之一(以下亦稱為第一實體單元)。然後,記憶體管理電路602會發送一讀取指令序列至可複寫式非揮發性記憶體模組406。此讀取指令序列用以指示可複寫式非揮發性記憶體模組406讀取此第一實體單元以獲得另一資料(以下亦稱為第二資料)。
根據第一資料與第二資料,記憶體管理電路602會獲得對應於一位元值(以下亦稱為第一位元值)的一臨界電壓分布(以下亦稱為第一臨界電壓分布)與對應於另一位元值(以下亦稱為第二位元值)的另一臨界電壓分布(以下亦稱為第二臨界電壓分布),其中第一位元值與第二位元值不同。在本範例實施例中,第一位元值是“1”,而第二位元值是“0”。也就是說,第一臨界電壓分布是第一實體單元中儲存有位元“1”的記憶胞的臨界電壓分布,而第二臨界電壓分布是第一實體單元中儲存有位元“0”的記憶胞的臨界電壓分布。
根據第一臨界電壓分布與第二臨界電壓分布,記憶體管理電路602會計算對應於第一實體單元的通道可靠度資訊(以下亦稱為第一通道可靠度資訊)。爾後,當第一實體單元被用來儲存來自主機系統11的其他資料(以下亦稱為第三資料)且此第三資料被從第一實體單元讀取出來時,錯誤檢查與校正電路608會根據此第一通道可靠度資訊來解碼此第三資料。由於第一通道可靠度資訊是根據第一實體單元真實的第一臨界電壓分布與真實的第二臨界電壓所計算出來的,錯誤檢查與校正電路608根據此第一通道可靠度資訊來解碼第三資料的效率也可被提升。
圖9至圖12是根據本發明的一範例實施例所繪示的通道可靠度資訊更新程序的示意圖。
請參照圖9,在一個特定時間點,記憶體管理電路602會執行對應於實體單元810(0)的通道可靠度資訊更新程序。在此通道可靠度資訊更新程序中,記憶體管理電路602指示將資料901(即,第一資料)程式化至實體單元810(0)。
請參照圖10,在本範例實施例中,在將資料901程式化至實體單元810(0)之前,記憶體管理電路602會將一個隨機種子1001輸入至隨機數產生器1010以產生資料901。也就是說,在本範例實施例中,資料901為隨機資料。其中,隨機數產生器1010可以是擾碼器(scrambler)並且可以實作為軟體模組或硬體電路。在本範例實施例中,記憶體管理電路602會儲存隨機種子1001。藉此,在將資料901程式化至實體單元810(0)之後,記憶體管理電路602可再次利用隨機種子1001產生相同的資料901。在另一範例實施例中,記憶體管理電路602也可以直接儲存資料901,以在後續需要計算第一通道可靠度資訊時使用。在另一範例實施例中,資料901也可以是不經過隨機數產生器1010的任意資料或來自主機系統11的資料。此外,在不同的通道可靠度資訊更新程序中,所使用的隨機種子1001及/或資料901可能相同也可能不同,本發明不加以限制。例如,在某一次的通道可靠度資訊更新程序中所使用的隨機種子1001及/或資料901,也可以在其他的通道可靠度資訊更新程序中使用。
請再次參照圖9,在將資料901程式化至實體單元810(0)之後,記憶體管理電路602會指示讀取儲存有資料901的實體單元810(0)以獲得資料902(即,第二資料)。
請參照圖11,假設在將資料901程式化至實體單元810(0)之後,實體單元810(0)中儲存有資料902的記憶胞的臨界電壓分布包括臨界電壓分布1110與1120。其中,臨界電壓分布1110是儲存有位元“1”的記憶胞(以下亦稱為第一記憶胞)的臨界電壓分布(即,第一臨界電壓分布),而臨界電壓分布1120是儲存有位元“0”的記憶胞(以下亦稱為第二記憶胞)的臨界電壓分布(即,第二臨界電壓分布)。記憶體管理電路602會根據資料901與902來獲得臨界電壓分布1110與1120。
具體而言,在讀取資料902的操作中,記憶體管理電路602會指示利用多個讀取電壓V1
~V5
來讀取實體單元810(0)中儲存有資料902的記憶胞,以獲得多個驗證位元b1
~b5
。在一範例實施例中,此些驗證位元b1
~b5
亦稱為軟位元(soft bits)或軟資訊(soft information)。相對地,在另一範例實施例中,若僅使用讀取電壓V1
~V5
的其中之一來讀取此些記憶胞,則只有驗證位元b1
~b5
的其中之一會被獲得,並且此單一個驗證位元亦稱為硬位元(hard bit)或硬資訊(hard information)。
在一範例實施例中,基於多個驗證位元(例如,驗證位元b1
~b5
)來執行的解碼程序亦稱為軟解碼程序,而基於單一個驗證位元來執行的解碼程序亦稱為硬解碼程序。一般來說,軟解碼程序的錯誤更正能力強於硬解碼程序的錯誤更正能力,但是,硬解碼程序的解碼速度會高於軟解碼程序的解碼速度。因此,在一範例實施例中,當欲解碼某一資料(例如,某一個碼字)時,錯誤檢查與校正電路608會先執行硬解碼程序;若硬解碼程序解碼失敗,錯誤檢查與校正電路608會接續執行軟解碼程序。在一範例實施例中,執行所述通道可靠度資訊更新程序的特定時間點亦可以是在硬解碼程序失敗時或軟解碼程序失敗時。
請參照回圖11,在獲得驗證位元b1
~b5
之後,記憶體管理電路602會將實體單元810(0)中儲存有資料902的每一個記憶胞的臨界電壓分組至多個電壓區間1101~1106的其中之一。例如,假設在利用讀取電壓V1
~V5
來讀取某一個記憶胞後,此記憶胞反應於讀取電壓V1
~V5
回傳的驗證位元b1
~b5
是“11111”,則記憶體管理電路602會將此記憶胞的臨界電壓分組至電壓區間1101;假設在利用讀取電壓V1
~V5
來讀取某一個記憶胞後,此記憶胞反應於讀取電壓V1
~V5
回傳的驗證位元b1
~b5
是“01111”,則記憶體管理電路602會將此記憶胞的臨界電壓分組至電壓區間1102;假設在利用讀取電壓V1
~V5
來讀取某一個記憶胞後,此記憶胞反應於讀取電壓V1
~V5
回傳的驗證位元b1
~b5
是“00111”,則記憶體管理電路602會將此記憶胞的臨界電壓分組至電壓區間1103;假設在利用讀取電壓V1
~V5
來讀取某一個記憶胞後,此記憶胞反應於讀取電壓V1
~V5
回傳的驗證位元b1
~b5
是“00011”,則記憶體管理電路602會將此記憶胞的臨界電壓分組至電壓區間1104;假設在利用讀取電壓V1
~V5
來讀取某一個記憶胞後,此記憶胞反應於讀取電壓V1
~V5
回傳的驗證位元b1
~b5
是“00001”,則記憶體管理電路602會將此記憶胞的臨界電壓分組至電壓區間1105;假設在利用讀取電壓V1
~V5
來讀取某一個記憶胞後,此記憶胞反應於讀取電壓V1
~V5
回傳的驗證位元b1
~b5
是“00000”,則記憶體管理電路602會將此記憶胞的臨界電壓分組至電壓區間1106。
在完成分組後,記憶體管理電路602會根據資料901統計被分組至電壓區間1101~1106中的每一者的記憶胞中,屬於臨界電壓分布1110的記憶胞(即,實際儲存位元“1”的第一記憶胞)的總數(以下亦稱為第一總數)。同時,記憶體管理電路602會根據資料901統計被分組至電壓區間1101~1106中的每一者的記憶胞中,屬於臨界電壓分布1120的記憶胞(即,實際儲存位元“0”的第二記憶胞)的總數(以下亦稱為第二總數)。然後,記憶體管理電路602會根據第一總數與第二總數來計算第一通道可靠度資訊。
請參照圖12,假設在屬於臨界電壓分布1120的記憶胞中,被分組至電壓區間1101~1106的記憶胞之總數分別為“5”、“6”、“9”、“72”、“309”及“18031”,而在屬於臨界電壓分布1110的記憶胞中,被分組至電壓區間1101~1106的記憶胞之總數分別為“17497”、“230”、“208”、“189”、“124”及“184”,則記憶體管理電路602可分別計算出對應於這6個電壓區間1101~1106之記憶胞的通道可靠度資訊為“-8”、“-4”、“-3”、“-1”、“1”及“5”。這些通道可靠度資訊皆屬於第一通道可靠度資訊。爾後,當這些記憶胞被用來儲存其他資料(即,第三資料)且此些資料被讀取出來時,通道可靠度資訊“-8”、“-4”、“-3”、“-1”、“1”及“5”可分別被用來解碼從相對應的記憶胞中讀取出來的資料。
在一範例實施例中,記憶體管理電路602可根據以下方程式(1)來計算上述第一通道可靠度資訊:
…(1)
其中,y
表示電壓區間1101~1106中的某一者,cnt
(x
=1 |y
)表示此電壓區間中第一記憶胞(實際儲存位元“1”的記憶胞)的總數,cnt
(x
=0 |y
)表示此電壓區間中第二記憶胞(實際儲存位元“0”的記憶胞)的總數,並且LLR
(y
)表示對應於此電壓區間中所有記憶胞的通道可靠度資訊。然而,在另一範例實施例中,在獲得第一總數與第二總數之後,第一通道可靠度資訊亦可以採用任意的演算法來計算,本發明並不限於使用方程式(1)。
在一範例實施例中,在獲得上述第一通道可靠度資訊之後,此第一通道可靠度資訊可能不會直接被錯誤檢查與校正電路608使用。例如,記憶體管理電路602會根據第一通道可靠度資訊來查詢一查找表,以獲得記錄在此查找表中的一個預設通道可靠度資訊。爾後,錯誤檢查與校正電路608會根據此預設通道可靠度資訊來解碼上述第三資料。
在一範例實施例中,第一資料還可以用來更新未儲存此第一資料的其他實體單元所對應的通道可靠度資訊。例如,在一範例實施例中,記憶體管理電路602會根據計算出來的第一通道可靠度資訊從多個通道可靠度資訊集合中選擇其中之一。例如,此些通道可靠度資訊集合被記載於一查找表。記憶體管理電路602會從此些通道可靠度資訊集合中尋找並選擇一個特定的通道可靠度資訊集合。例如,所選擇的通道可靠度資訊集合可能包含與第一通道可靠度資訊(或上述預設通道可靠度資訊)相同或相近的通道可靠度資訊。記憶體管理電路602會從所選擇的通道可靠度資訊集合中獲得對應於另一實體單元(以下亦稱為第二實體單元)的通道可靠度資訊(以下亦稱為第二通道可靠度資訊)。例如,此第二通道可靠度資訊會記錄於所選擇的通道可靠度資訊集合中。往後,錯誤檢查與校正電路608即可根據此第二通道可靠度資訊來執行對應於第二實體單元的解碼程序,以解碼儲存於第二實體單元的資料(以下亦稱為第四資料)。
在一範例實施例中,上述第一實體單元與上述第二實體單元是位於同一條字元線或同一個字元線層。例如,若第一實體單元是位於某一條字元線的一個下實體程式化單元,則第二實體單元可以是同樣位於此字元線的上實體程式化單元及/或額外實體程式化單元。
圖13是根據本發明的一範例實施例所繪示的實體單元的示意圖。
請參照圖13,實體單元810(0)~810(2)位於同一條字元線或同一個字元線層。其中,實體單元810(0)是下實體程式化單元、實體單元810(1)是上實體程式化單元,並且實體單元810(2)是額外實體程式化單元。實體單元810(0)~810(2)分別包含一個資料位元區1301與一個冗餘位元區1302。實體單元810(0)~810(2)中的每一者的資料位元區1301與冗餘位元區1302分別用於儲存來自主機系統11的使用者資料與相對應的系統資料(例如,ECC)。
在一範例實施例中,上述第一資料的儲存位置可以是實體單元810(0)~810(2)的至少其中之一的資料位元區1301及/或冗餘位元區1302。在圖13的一範例實施例中,第一資料僅儲存於實體單元810(0)中。例如,此第一資料可能僅儲存於實體單元810(0)的資料位元區1301、僅儲存於實體單元810(0)的冗餘位元區1302、或者同時儲存於實體單元810(0)的資料位元區1301與實體單元810(0)的冗餘位元區1302。第一資料的資料大小可以是等於或小於一個資料位元區1301的容量、等於或小於一個冗餘位元區1302的容量大小、或者等於整個實體單元810(0)的容量。
在利用儲存於實體單元810(0)的第一資料計算出對應於實體單元810(0)的通道可靠度資訊之後,記憶體管理電路602可從某一個通道可靠度資訊集合中查詢對應於實體單元810(1)的通道可靠度資訊及/或對應於實體單元810(2)的通道可靠度資訊。此外,在一範例實施例中,第一資料亦可以儲存於實體單元810(1)及/或810(2)並且可用於計算實體單元810(0)~810(2)中未儲存第一資料之實體單元所對應的通道可靠度資訊。
在一範例實施例中,在獲得對應於第一實體單元的第一通道可靠度資訊(或上述預設通道可靠度資訊)之後,此第一通道可靠度資訊(或上述預設通道可靠度資訊)亦可以被直接對應至特定的實體單元(以下亦稱為第三實體單元)。例如,此第三實體單元的使用程度會與第一實體單元的使用程度屬於同一個使用程度範圍。例如,某一個使用程度範圍是抹除計數大於0且小於250,另一個使用程度範圍是抹除計數大於250且小於500等。使用程度範圍亦可以視實務上的需求來設定。例如,使用程度範圍還可以是與位元錯誤率、寫入計數、讀取計數及資料儲存時間等參數有關。
圖14是根據本發明的一範例實施例所繪示的解碼方法的流程圖。
請參照圖14,在步驟S1401中,程式化第一資料至第一實體單元。在步驟S1402中,讀取第一實體單元以獲得第二資料。在步驟S1403中,根據第一資料與第二資料獲得對應於第一位元值得第一臨界電壓分布與對應於第二位元值得第二臨界電壓分布,其中第一位元值與第二位元值不同。在步驟S1404中,根據第一臨界電壓分布與第二臨界電壓分布計算對應於第一實體單元的第一通道可靠度資訊。在步驟S1405中,根據所述第一通道可靠度資訊來解碼儲存於第一實體單元的第三資料。
然而,圖14中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖14中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖14的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在將第一資料儲存至第一實體單元並藉由讀取第一實體單元來獲得第二資料之後,透過分析第一資料與第二資料,對應於第一位元值的第一臨界電壓分布與對應於第二位元值的第二臨界電壓分布會被獲得。根據第一臨界電壓分布與第二臨界電壓分布,對應於第一實體單元的第一通道可靠度資訊會被獲得。爾後,此第一通道可靠度資訊即可用來解碼儲存於第一實體單元中的資料,從而提升解碼效率。此外,在獲得第一通道可靠度資訊之後,此第一通道可靠度資訊也可以被直接用來設定使用程度與第一實體單元相當及/或與第一實體單元屬於同一字元線(或字元線層)的其他實體單元,從而提高通道可靠度資訊的更新效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
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‧‧‧可複寫式非揮發性記憶體模組
510、520‧‧‧記憶胞陣列
502、522‧‧‧記憶胞
504、524‧‧‧位元線
506‧‧‧字元線
508‧‧‧共用源極線
512‧‧‧選擇閘汲極電晶體
514‧‧‧選擇閘源極電晶體
524(1)~524(4)‧‧‧位元線組
526(1)~526(8)‧‧‧字元線層
602‧‧‧記憶體管理電路
604‧‧‧主機介面
606‧‧‧記憶體介面
608‧‧‧錯誤檢查與校正電路
610‧‧‧緩衝記憶體
612‧‧‧電源管理電路
710‧‧‧置信傳播圖
701(1)~701(k)‧‧‧奇偶節點
702(1)~702(n)‧‧‧訊息節點
L1~Ln‧‧‧通道可靠度資訊
、‧‧‧可靠度資訊
810(0)~810(B)‧‧‧實體單元
812(0)~812(C)‧‧‧邏輯單元
801‧‧‧儲存區
802‧‧‧替換區
901、902‧‧‧資料
1001‧‧‧隨機種子
1010‧‧‧隨機數產生器
1110、1120‧‧‧臨界電壓分布
1101~1106‧‧‧電壓區間
b1~b5‧‧‧驗證位元
V1~V5‧‧‧讀取電壓
1301‧‧‧資料位元區
1302‧‧‧冗餘位元區
S1401‧‧‧步驟(程式化第一資料至第一實體單元)
S1402‧‧‧步驟(讀取第一實體單元以獲得第二資料)
S1403‧‧‧步驟(根據第一資料與第二資料獲得對應於第一位元值得第一臨界電壓分布與對應於第二位元值得第二臨界電壓分布,其中第一位元值與第二位元值不同)
S1404‧‧‧步驟(根據第一臨界電壓分布與第二臨界電壓分布計算對應於第一實體單元的第一通道可靠度資訊)
S1405‧‧‧步驟(根據所述第一通道可靠度資訊來解碼儲存於第一實體單元的第三資料)
11‧‧‧主機系統
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‧‧‧可複寫式非揮發性記憶體模組
510、520‧‧‧記憶胞陣列
502、522‧‧‧記憶胞
504、524‧‧‧位元線
506‧‧‧字元線
508‧‧‧共用源極線
512‧‧‧選擇閘汲極電晶體
514‧‧‧選擇閘源極電晶體
524(1)~524(4)‧‧‧位元線組
526(1)~526(8)‧‧‧字元線層
602‧‧‧記憶體管理電路
604‧‧‧主機介面
606‧‧‧記憶體介面
608‧‧‧錯誤檢查與校正電路
610‧‧‧緩衝記憶體
612‧‧‧電源管理電路
710‧‧‧置信傳播圖
701(1)~701(k)‧‧‧奇偶節點
702(1)~702(n)‧‧‧訊息節點
L1~Ln‧‧‧通道可靠度資訊
、‧‧‧可靠度資訊
810(0)~810(B)‧‧‧實體單元
812(0)~812(C)‧‧‧邏輯單元
801‧‧‧儲存區
802‧‧‧替換區
901、902‧‧‧資料
1001‧‧‧隨機種子
1010‧‧‧隨機數產生器
1110、1120‧‧‧臨界電壓分布
1101~1106‧‧‧電壓區間
b1~b5‧‧‧驗證位元
V1~V5‧‧‧讀取電壓
1301‧‧‧資料位元區
1302‧‧‧冗餘位元區
S1401‧‧‧步驟(程式化第一資料至第一實體單元)
S1402‧‧‧步驟(讀取第一實體單元以獲得第二資料)
S1403‧‧‧步驟(根據第一資料與第二資料獲得對應於第一位元值得第一臨界電壓分布與對應於第二位元值得第二臨界電壓分布,其中第一位元值與第二位元值不同)
S1404‧‧‧步驟(根據第一臨界電壓分布與第二臨界電壓分布計算對應於第一實體單元的第一通道可靠度資訊)
S1405‧‧‧步驟(根據所述第一通道可靠度資訊來解碼儲存於第一實體單元的第三資料)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。 圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。 圖5A是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。 圖5B是根據本發明的另一範例實施例所繪示的記憶胞陣列的示意圖。 圖6是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖7是根據本發明的一範例實施例所繪示的低密度奇偶檢查碼之置信傳播(belief propagation)的示意圖。 圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。 圖9至圖12是根據本發明的一範例實施例所繪示的通道可靠度資訊更新程序的示意圖。 圖13是根據本發明的一範例實施例所繪示的實體單元的示意圖。 圖14是根據本發明的一範例實施例所繪示的解碼方法的流程圖。
S1401‧‧‧步驟(程式化第一資料至第一實體單元)
S1402‧‧‧步驟(讀取第一實體單元以獲得第二資料)
S1403‧‧‧步驟(根據第一資料與第二資料獲得對應於第一位元值得第一臨界電壓分布與對應於第二位元值得第二臨界電壓分布,其中第一位元值與第二位元值不同)
S1404‧‧‧步驟(根據第一臨界電壓分布與第二臨界電壓分布計算對應於第一實體單元的第一通道可靠度資訊)
S1405‧‧‧步驟(根據所述第一通道可靠度資訊來解碼儲存於第一實體單元的第三資料)
Claims (21)
- 一種解碼方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體單元,該解碼方法包括: 程式化一第一資料至該些實體單元中的至少一第一實體單元; 讀取該至少一第一實體單元以獲得一第二資料; 根據該第一資料與該第二資料獲得對應於一第一位元值的一第一臨界電壓分布與對應於一第二位元值的一第二臨界電壓分布,其中該第一位元值與該第二位元值不同; 根據該第一臨界電壓分布與該第二臨界電壓分布計算對應於該至少一第一實體單元的一第一通道可靠度資訊;以及 根據該第一通道可靠度資訊來解碼儲存於該至少一第一實體單元的一第三資料。
- 如申請專利範圍第1項所述的解碼方法,更包括: 將一隨機種子輸入至一隨機數產生器以產生該第一資料並儲存該隨機種子與該第一資料的至少其中之一。
- 如申請專利範圍第1項所述的解碼方法,其中獲得該第一臨界電壓分布與該第二臨界電壓分布並且計算該第一通道可靠度資訊的步驟包括: 根據該第二資料將該至少一第一實體單元中用以儲存該第一資料的每一個記憶胞的一臨界電壓分組至多個電壓區間的其中之一; 根據該第一資料統計被分組至該些電壓區間中的每一者的記憶胞中,屬於該第一臨界電壓分布的第一記憶胞的一第一總數; 根據該第一資料統計被分組至該些電壓區間中的每一者的記憶胞中,屬於該第二臨界電壓分布的第二記憶胞的一第二總數;以及 根據該第一總數與該第二總數計算該第一通道可靠度資訊。
- 如申請專利範圍第1項所述的解碼方法,其中根據該第一通道可靠度資訊來解碼該第三資料的步驟包括: 根據該第一通道可靠度資訊查詢一查找表以獲得一預設通道可靠度資訊;以及 根據該預設通道可靠度資訊來解碼該第三資料。
- 如申請專利範圍第1項所述的解碼方法,更包括: 根據該第一通道可靠度資訊從多個通道可靠度資訊集合中選擇其中之一; 從所選擇的通道可靠度資訊集合中獲得對應於至少一第二實體單元的一第二通道可靠度資訊;以及 根據該第二通道可靠度資訊來解碼儲存於該至少一第二實體單元的一第四資料。
- 如申請專利範圍第5項所述的解碼方法,其中該至少一第一實體單元與該至少一第二實體單元位於同一條字元線或同一個字元線層。
- 如申請專利範圍第1項所述的解碼方法,其中該至少一實體單元包括一資料位元區與一冗餘位元區, 其中該第一資料被儲存於該資料位元區與該冗餘位元區的至少其中之一。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以發送一寫入指令序列,其中該寫入指令序列用以指示程式化一第一資料至該些實體單元中的至少一第一實體單元, 其中該記憶體控制電路單元更用以發送一讀取指令序列,其中該讀取指令序列用以指示讀取該至少一第一實體單元以獲得一第二資料, 其中該記憶體控制電路單元更用以根據該第一資料與該第二資料獲得對應於一第一位元值的一第一臨界電壓分布與對應於一第二位元值的一第二臨界電壓分布,其中該第一位元值與該第二位元值不同, 其中該記憶體控制電路單元更用以根據該第一臨界電壓分布與該第二臨界電壓分布計算對應於該至少一第一實體單元的一第一通道可靠度資訊, 其中該記憶體控制電路單元更用以根據該第一通道可靠度資訊來解碼儲存於該至少一第一實體單元的一第三資料。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以將一隨機種子輸入至一隨機數產生器以產生該第一資料並儲存該隨機種子與該第一資料的至少其中之一。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元獲得該第一臨界電壓分布與該第二臨界電壓分布並且計算該第一通道可靠度資訊的操作包括: 根據該第二資料將該至少一第一實體單元中用以儲存該第一資料的每一個記憶胞的一臨界電壓分組至多個電壓區間的其中之一; 根據該第一資料統計被分組至該些電壓區間中的每一者的記憶胞中,屬於該第一臨界電壓分布的第一記憶胞的一第一總數; 根據該第一資料統計被分組至該些電壓區間中的每一者的記憶胞中,屬於該第二臨界電壓分布的第二記憶胞的一第二總數;以及 根據該第一總數與該第二總數計算該第一通道可靠度資訊。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該第一通道可靠度資訊來解碼該第三資料的操作包括: 根據該第一通道可靠度資訊查詢一查找表以獲得一預設通道可靠度資訊;以及 根據該預設通道可靠度資訊來解碼該第三資料。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第一通道可靠度資訊從多個通道可靠度資訊集合中選擇其中之一, 其中該記憶體控制電路單元更用以從所選擇的通道可靠度資訊集合中獲得對應於至少一第二實體單元的一第二通道可靠度資訊, 其中該記憶體控制電路單元更用以根據該第二通道可靠度資訊來解碼儲存於該至少一第二實體單元的一第四資料。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該至少一第一實體單元與該至少一第二實體單元位於同一條字元線或同一個字元線層。
- 如申請專利範圍第8項所述的記憶體儲存裝置,其中該至少一實體單元包括一資料位元區與一冗餘位元區, 其中該第一資料被儲存於該資料位元區與該冗餘位元區的至少其中之一。
- 一種記憶體控制電路單元,用以控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組; 一錯誤檢查與校正電路;以及 一記憶體管理電路,耦接至該主機介面、該記憶體介面及該錯誤檢查與校正電路, 其中該記憶體管理電路用以發送一寫入指令序列,其中該寫入指令序列用以指示程式化一第一資料至該些實體單元中的至少一第一實體單元, 其中該記憶體管理電路更用以發送一讀取指令序列,其中該讀取指令序列用以指示讀取該至少一第一實體單元以獲得一第二資料, 其中該記憶體管理電路更用以根據該第一資料與該第二資料獲得對應於一第一位元值的一第一臨界電壓分布與對應於一第二位元值的一第二臨界電壓分布,其中該第一位元值與該第二位元值不同, 其中該記憶體管理電路更用以根據該第一臨界電壓分布與該第二臨界電壓分布計算對應於該至少一第一實體單元的一第一通道可靠度資訊, 其中該錯誤檢查與校正電路用以根據該第一通道可靠度資訊來解碼儲存於該至少一第一實體單元的一第三資料。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路更用以將一隨機種子輸入至一隨機數產生器以產生該第一資料並儲存該隨機種子與該第一資料的至少其中之一。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路獲得該第一臨界電壓分布與該第二臨界電壓分布並且計算該第一通道可靠度資訊的操作包括: 根據該第二資料將該至少一第一實體單元中用以儲存該第一資料的每一個記憶胞的一臨界電壓分組至多個電壓區間的其中之一; 根據該第一資料統計被分組至該些電壓區間中的每一者的記憶胞中,屬於該第一臨界電壓分布的第一記憶胞的一第一總數; 根據該第一資料統計被分組至該些電壓區間中的每一者的記憶胞中,屬於該第二臨界電壓分布的第二記憶胞的一第二總數;以及 根據該第一總數與該第二總數計算該第一通道可靠度資訊。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第一通道可靠度資訊查詢一查找表以獲得一預設通道可靠度資訊, 其中該錯誤檢查與校正電路更用以根據該預設通道可靠度資訊來解碼該第三資料。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第一通道可靠度資訊從多個通道可靠度資訊集合中選擇其中之一, 其中該記憶體管理電路更用以從所選擇的通道可靠度資訊集合中獲得對應於至少一第二實體單元的一第二通道可靠度資訊, 其中該錯誤檢查與校正電路更用以根據該第二通道可靠度資訊來解碼儲存於該至少一第二實體單元的一第四資料。
- 如申請專利範圍第19項所述的記憶體控制電路單元,其中該至少一第一實體單元與該至少一第二實體單元位於同一條字元線或同一個字元線層。
- 如申請專利範圍第15項所述的記憶體控制電路單元,其中該至少一實體單元包括一資料位元區與一冗餘位元區, 其中該第一資料被儲存於該資料位元區與該冗餘位元區的至少其中之一。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105101654A TWI595498B (zh) | 2016-01-20 | 2016-01-20 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US15/068,663 US9906244B2 (en) | 2016-01-20 | 2016-03-14 | Decoding method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105101654A TWI595498B (zh) | 2016-01-20 | 2016-01-20 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201727660A true TW201727660A (zh) | 2017-08-01 |
TWI595498B TWI595498B (zh) | 2017-08-11 |
Family
ID=59314585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105101654A TWI595498B (zh) | 2016-01-20 | 2016-01-20 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9906244B2 (zh) |
TW (1) | TWI595498B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI634557B (zh) * | 2017-10-17 | 2018-09-01 | 群聯電子股份有限公司 | 資料編碼方法、記憶體控制電路單元與記憶體儲存裝置 |
US11115062B2 (en) * | 2018-03-16 | 2021-09-07 | SK Hynix Inc. | Memory system with adaptive threshold decoding and method of operating such memory system |
US10541038B2 (en) * | 2018-06-12 | 2020-01-21 | Sandisk Technologies Llc | Subgroup selection for verification |
TWI664634B (zh) * | 2018-08-17 | 2019-07-01 | 慧榮科技股份有限公司 | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 |
TWI672698B (zh) * | 2018-11-23 | 2019-09-21 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI681396B (zh) * | 2018-12-06 | 2020-01-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN111326186B (zh) * | 2018-12-13 | 2022-05-31 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111324478B (zh) * | 2018-12-14 | 2023-05-30 | 群联电子股份有限公司 | 解码方法、存储器控制电路单元以及存储器存储装置 |
TWI721842B (zh) * | 2020-03-27 | 2021-03-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
CN113496752B (zh) * | 2020-04-07 | 2023-08-29 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN112735498B (zh) * | 2021-02-03 | 2024-02-20 | 山东大学 | 一种存储器译码方法 |
TWI808483B (zh) * | 2021-09-08 | 2023-07-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
CN113724774B (zh) * | 2021-09-14 | 2023-08-29 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8607124B2 (en) * | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
KR101635506B1 (ko) * | 2010-03-29 | 2016-07-04 | 삼성전자주식회사 | 데이터 저장 시스템 및 그것의 읽기 방법 |
US9898361B2 (en) * | 2011-01-04 | 2018-02-20 | Seagate Technology Llc | Multi-tier detection and decoding in flash memories |
KR101968746B1 (ko) * | 2011-12-30 | 2019-04-15 | 삼성전자주식회사 | 저장 장치로부터 데이터를 읽는 읽기 방법, 에러 정정 장치, 그리고 에러 정정 코드 디코더를 포함하는 저장 시스템 |
US9177664B2 (en) * | 2012-02-22 | 2015-11-03 | Silicon Motion, Inc. | Method, memory controller and system for reading data stored in flash memory |
US20130343131A1 (en) * | 2012-06-26 | 2013-12-26 | Lsi Corporation | Fast tracking for flash channels |
KR102123946B1 (ko) * | 2012-12-28 | 2020-06-17 | 삼성전자주식회사 | 멀티 레벨 셀 메모리 장치 및 그것의 동작방법 |
US9728263B2 (en) * | 2013-05-31 | 2017-08-08 | Sandisk Technologies Llc | Method and device for iteratively updating read voltages |
TWI508082B (zh) * | 2013-09-30 | 2015-11-11 | Phison Electronics Corp | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 |
US9209835B2 (en) * | 2013-11-27 | 2015-12-08 | Seagate Technology Llc | Read retry for non-volatile memories |
TWI527048B (zh) * | 2013-11-29 | 2016-03-21 | 慧榮科技股份有限公司 | 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器 |
TWI545580B (zh) * | 2014-01-07 | 2016-08-11 | 群聯電子股份有限公司 | 隨機數產生方法、記憶體儲存裝置及控制電路 |
TWI540586B (zh) * | 2014-04-15 | 2016-07-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 |
US9761326B2 (en) * | 2015-07-29 | 2017-09-12 | Toshiba Memory Corporation | Memory system and memory control method |
US20170111060A1 (en) * | 2015-10-15 | 2017-04-20 | Macronix International Co., Ltd. | Method and device for performing polar codes channel-aware procedure |
-
2016
- 2016-01-20 TW TW105101654A patent/TWI595498B/zh active
- 2016-03-14 US US15/068,663 patent/US9906244B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170206130A1 (en) | 2017-07-20 |
US9906244B2 (en) | 2018-02-27 |
TWI595498B (zh) | 2017-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI595498B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI540586B (zh) | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI649754B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI670715B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI537966B (zh) | 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI592937B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI612527B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI523018B (zh) | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 | |
TW201642266A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI672698B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI550628B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI634556B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI670725B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI691962B (zh) | 解碼方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI702602B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI607452B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN107025935B (zh) | 译码方法、内存储存装置及内存控制电路单元 | |
CN109697134B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202244732A (zh) | 資料存取方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI764602B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI805509B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111258791B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI705449B (zh) | 電壓識別方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN109213614B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 |