TWI722867B - 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI722867B TWI722867B TW109112487A TW109112487A TWI722867B TW I722867 B TWI722867 B TW I722867B TW 109112487 A TW109112487 A TW 109112487A TW 109112487 A TW109112487 A TW 109112487A TW I722867 B TWI722867 B TW I722867B
- Authority
- TW
- Taiwan
- Prior art keywords
- voltage level
- data
- read
- read voltage
- memory
- Prior art date
Links
Images
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/01—Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/015—Simulation or testing of codes, e.g. bit error rate [BER] measurements
-
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/12005—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
-
- 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/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- 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/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
-
- 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/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/563—Multilevel memory reading aspects
- G11C2211/5632—Multilevel reading using successive approximation
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明的範例實施例提供一種記憶體控制方法,包括:發送第一讀取指令序列,其指示使用第一讀取電壓準位讀取第一實體單元以獲得第一資料;解碼第一資料;若第一資料解碼失敗,發送第二讀取指令序列,其指示使用第二讀取電壓準位讀取第一實體單元以獲得第二資料;若第二讀取電壓準位符合第一條件或第二資料符合第二條件,使用輔助資訊解碼第二資料以提高第二資料的解碼成功率;以及若第二讀取電壓準位不符合第一條件且第二資料不符合第二條件,不使用輔助資訊而解碼第二資料。
Description
本發明是有關於一種記憶體控制技術,且特別是有關於一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
部分類型的記憶體儲存裝置同時支援硬位元模式解碼與軟位元模式解碼。硬位元模式解碼具有較快的解碼速度,而軟位元模式解碼則具有較高的解碼成功率。在硬位元模式解碼中,每當解碼失敗時,用來讀取可複寫式非揮發性記憶體模組中的記憶胞的讀取電壓準位可參照重讀表格而被調整,而調整後的讀取電壓準位可用來重讀資料(亦稱為硬位元)。一旦硬位元模式解碼的重試次數超過一預設值,軟位元模式解碼可被執行。在軟位元模式解碼中,更多的讀取電壓準位可被用於讀取記憶胞以獲得與硬位元有關的額外資訊(亦稱為軟位元),以藉由導入所述額外資訊來提高解碼成功率。
但是,針對電壓偏移較嚴重的可複寫式非揮發性記憶體模組而言,硬位元模式解碼的解碼成功率低落,導致系統需要花費許多時間在等待硬位元模式解碼結束後才能在軟位元模式解碼中順利解碼資料。
本發明提供一種記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元,可有效提高資料在硬位元模式解碼中的解碼成功率。
本發明的範例實施例提供一種記憶體控制方法,其用於可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體單元。所述記憶體控制方法包括:發送第一讀取指令序列,其指示使用第一讀取電壓準位讀取所述多個實體單元中的第一實體單元以獲得第一資料;解碼所述第一資料;若所述第一資料的解碼失敗,發送第二讀取指令序列,其指示使用第二讀取電壓準位讀取所述第一實體單元以獲得第二資料,其中所述第二讀取電壓準位不同於所述第一讀取電壓準位;若所述第二讀取電壓準位符合第一條件或所述第二資料符合第二條件,使用輔助資訊解碼所述第二資料,其中所述輔助資訊用以提高所述第二資料的解碼成功率;以及若所述第二讀取電壓準位不符合所述第一條件且所述第二資料不符合所述第二條件,不使用所述輔助資訊而解碼所述第二資料。
在本發明的一範例實施例中,所述的記憶體控制方法更包括:根據所述第二讀取電壓準位是否位於特定電壓範圍內,決定所述第二讀取電壓準位是否符合所述第一條件。
在本發明的一範例實施例中,所述的記憶體控制方法更包括:獲得所述第二資料的校驗子數值,其中所述校驗子數值與所述第二資料的位元錯誤率有關;以及根據所述校驗子數值是否小於預設值,決定所述第二資料是否符合所述第二條件。
在本發明的一範例實施例中,所述的記憶體控制方法更包括:在發送所述第一讀取指令序列之前,發送第三讀取指令序列,其指示使用第三讀取電壓準位讀取所述第一實體單元以獲得第三資料;解碼所述第三資料;以及根據所述第一讀取電壓準位與所述第三讀取電壓準位決定特定電壓範圍,其中所述第一讀取電壓準位與所述第三讀取電壓準位的其中之一用以界定所述特定電壓範圍的上邊界,且所述第一讀取電壓準位與所述第三讀取電壓準位的其中之另一用以界定所述特定電壓範圍的下邊界。
在本發明的一範例實施例中,所述的記憶體控制方法更包括:根據所述第二讀取電壓準位更新所述特定電壓範圍的邊界。
在本發明的一範例實施例中,根據所述第二讀取電壓準位更新所述特定電壓範圍的所述邊界值的步驟包括:根據所述第二讀取電壓準位與所述特定電壓範圍的相對關係決定是否更新所述特定電壓範圍的所述邊界。
在本發明的一範例實施例中,所述的記憶體控制方法更包括:若所述第二讀取電壓準位符合所述第一條件或所述第二資料符合所述第二條件,根據所述第一讀取電壓準位與所述第二讀取電壓準位劃分多個電壓區間;以及根據所劃分的所述多個電壓區間決定所述輔助資訊。
本發明的範例實施例另提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組。所述記憶體控制電路單元用以發送第一讀取指令序列,其指示使用第一讀取電壓準位讀取所述多個實體單元中的第一實體單元以獲得第一資料。所述記憶體控制電路單元更用以解碼所述第一資料。若所述第一資料的解碼失敗,所述記憶體控制電路單元更用以發送第二讀取指令序列,其指示使用第二讀取電壓準位讀取所述第一實體單元以獲得第二資料。所述第二讀取電壓準位不同於所述第一讀取電壓準位。若所述第二讀取電壓準位符合第一條件或所述第二資料符合第二條件,所述記憶體控制電路單元更用以使用輔助資訊解碼所述第二資料,其中所述輔助資訊用以提高所述第二資料的解碼成功率。若所述第二讀取電壓準位不符合所述第一條件且所述第二資料不符合所述第二條件,所述記憶體控制電路單元更用以不使用所述輔助資訊而解碼所述第二資料。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述第二讀取電壓準位是否位於特定電壓範圍內,決定所述第二讀取電壓準位是否符合所述第一條件。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以獲得所述第二資料的校驗子數值,所述校驗子數值與所述第二資料的位元錯誤率有關。所述記憶體控制電路單元更用以根據所述校驗子數值是否小於預設值,決定所述第二資料是否符合所述第二條件。
在本發明的一範例實施例中,在發送所述第一讀取指令序列之前,所述記憶體控制電路單元更用以發送第三讀取指令序列,其指示使用第三讀取電壓準位讀取所述第一實體單元以獲得第三資料。所述記憶體控制電路單元更用以解碼所述第三資料。所述記憶體控制電路單元更用以根據所述第一讀取電壓準位與所述第三讀取電壓準位決定特定電壓範圍。所述第一讀取電壓準位與所述第三讀取電壓準位的其中之一用以界定所述特定電壓範圍的上邊界。所述第一讀取電壓準位與所述第三讀取電壓準位的其中之另一用以界定所述特定電壓範圍的下邊界。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據所述第二讀取電壓準位更新所述特定電壓範圍的邊界。
在本發明的一範例實施例中,所述記憶體控制電路單元根據所述第二讀取電壓準位更新所述特定電壓範圍的所述邊界值的操作包括:根據所述第二讀取電壓準位與所述特定電壓範圍的一相對關係決定是否更新所述特定電壓範圍的所述邊界。
在本發明的一範例實施例中,若所述第二讀取電壓準位符合所述第一條件或所述第二資料符合所述第二條件,所述記憶體控制電路單元更用以根據所述第一讀取電壓準位與所述第二讀取電壓準位劃分多個電壓區間。所述記憶體控制電路單元更用以根據所劃分的所述多個電壓區間決定所述輔助資訊。
本發明的範例實施例另提供一種記憶體控制電路單元,其用以控制記憶體儲存裝置。所述記憶體儲存裝置包括可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組包括多個實體單元。所述記憶體控制電路單元包括主機介面、記憶體介面、解碼電路及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面、所述記憶體介面及所述解碼電路。所述記憶體管理電路用以發送第一讀取指令序列,其指示使用第一讀取電壓準位讀取所述多個實體單元中的第一實體單元以獲得第一資料。所述解碼電路用以解碼所述第一資料。若所述第一資料的解碼失敗,所述記憶體管理電路更用以發送第二讀取指令序列,其指示使用第二讀取電壓準位讀取所述第一實體單元以獲得第二資料。所述第二讀取電壓準位不同於所述第一讀取電壓準位。若所述第二讀取電壓準位符合第一條件或所述第二資料符合第二條件,所述解碼電路更用以使用輔助資訊解碼所述第二資料,其中所述輔助資訊用以提高所述第二資料的解碼成功率。若所述第二讀取電壓準位不符合所述第一條件且所述第二資料不符合所述第二條件,所述解碼電路更用以不使用所述輔助資訊而解碼所述第二資料。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據所述第二讀取電壓準位是否位於特定電壓範圍內,決定所述第二讀取電壓準位是否符合所述第一條件。
在本發明的一範例實施例中,所述記憶體管理電路更用以獲得所述第二資料的校驗子數值。所述校驗子數值與所述第二資料的位元錯誤率有關。所述記憶體管理電路更用以根據所述校驗子數值是否小於預設值,決定所述第二資料是否符合所述第二條件。
在本發明的一範例實施例中,在發送所述第一讀取指令序列之前,所述記憶體管理電路更用以發送第三讀取指令序列,其指示使用第三讀取電壓準位讀取所述第一實體單元以獲得第三資料。所述解碼電路更用以解碼所述第三資料。所述記憶體管理電路更用以根據所述第一讀取電壓準位與所述第三讀取電壓準位決定特定電壓範圍。所述第一讀取電壓準位與所述第三讀取電壓準位的其中之一用以界定所述特定電壓範圍的上邊界。所述第一讀取電壓準位與所述第三讀取電壓準位的其中之另一用以界定所述特定電壓範圍的下邊界。
在本發明的一範例實施例中,所述記憶體管理電路更用以根據所述第二讀取電壓準位更新所述特定電壓範圍的邊界。
在本發明的一範例實施例中,所述記憶體管理電路根據所述第二讀取電壓準位更新所述特定電壓範圍的所述邊界值的操作包括:根據所述第二讀取電壓準位與所述特定電壓範圍的相對關係決定是否更新所述特定電壓範圍的所述邊界。
在本發明的一範例實施例中,若所述第二讀取電壓準位符合所述第一條件或所述第二資料符合所述第二條件,所述記憶體管理電路更用以根據所述第一讀取電壓準位與所述第二讀取電壓準位劃分多個電壓區間。所述記憶體管理電路更用以根據所劃分的所述多個電壓區間決定所述輔助資訊。
基於上述,在至少一次讀取第一實體單元且經歷至少一次解碼失敗後,可提高資料的解碼成功率的輔助資訊只在滿足特定條件時被使用,而非在每一次的重讀與解碼中無條件使用。藉此,可在嘗試提高資料在硬位元模式解碼中的解碼成功率的前提下,避免因過度使用或調整輔助資訊而反而降低解碼成功率。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(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 Multi Media Card, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
連接介面單元402用以將記憶體儲存裝置10耦接至主機系統11。記憶體儲存裝置10可透過連接介面單元402與主機系統11通訊。在本範例實施例中,連接介面單元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)介面標準、MCP介面標準、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個位元的快閃記憶體模組)、四階記憶胞(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是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、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會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正操作。
須注意的是,錯誤檢查與校正電路508可支援硬位元模式解碼操作與軟位元模式解碼操作。硬位元模式解碼操作每一次的解碼速度快於軟位元模式解碼操作每一次的解碼速度。但是,軟位元模式解碼操作每一次的解碼成功率高於硬位元模式解碼操作每一次的解碼成功率。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體510與電源管理電路512。緩衝記憶體510是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路512是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
在一範例實施例中,圖4的可複寫式非揮發性記憶體模組406亦稱為快閃(flash)記憶體模組,且記憶體控制電路單元404亦稱為用於控制快閃記憶體模組的快閃記憶體控制器。在一範例實施例中,圖5的記憶體管理電路502亦稱為快閃記憶體管理電路。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。請參照圖6,記憶體管理電路502可將可複寫式非揮發性記憶體模組406的實體單元610(0)~610(B)邏輯地分組至儲存區601與替換區602。儲存區601中的實體單元610(0)~610(A)是用以儲存資料,而替換區602中的實體單元610(A+1)~610(B)則是用以替換儲存區601中損壞的實體單元。例如,若從某一個實體單元中讀取的資料所包含的錯誤過多而無法被更正時,此實體單元會被視為是損壞的實體單元。須注意的是,若替換區602中沒有可用的實體抹除單元,則記憶體管理電路502可能會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。
在本範例實施例中,每一個實體單元是指一個實體程式化單元。然而,在另一範例實施例中,一個實體單元亦可以是指一個實體位址、一個實體抹除單元或由多個連續或不連續的實體位址組成。記憶體管理電路502會配置邏輯單元612(0)~612(C)以映射儲存區601中的實體單元610(0)~610(A)。在本範例實施例中,每一個邏輯單元是指一個邏輯位址。然而,在另一範例實施例中,一個邏輯單元也可以是指一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續或不連續的邏輯位址組成。此外,邏輯單元612(0)~612(C)中的每一者可被映射至一或多個實體單元。
記憶體管理電路502可將邏輯單元與實體單元之間的映射關係(亦稱為邏輯-實體位址映射關係)記錄於至少一邏輯-實體位址映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路502可根據此邏輯-實體位址映射表來執行對於記憶體儲存裝置10的資料存取操作。
圖7是根據本發明的一範例實施例所繪示的記憶胞的臨界電壓分布的示意圖。請參照圖7,以TLC NAND型快閃記憶體模組為例,在程式化某一個實體單元(亦稱為第一實體單元)後,第一實體單元中經程式化的每一個記憶胞的臨界電壓可能會屬於狀態701~708的其中之一。例如,若經程式化的多個記憶胞分別用以儲存位元“111”、“011”、“001”、“000”、“010”、“110”、“100”及“101”,則此些記憶胞會分別屬於狀態701~708。當欲讀取此些記憶胞所儲存的資料時,讀取電壓準位V1~V7可被施予至第一實體單元。根據第一實體單元中各記憶胞響應於讀取電壓準位V1~V7的導通狀態,各記憶胞所屬的狀態可被識別,進而獲得各記憶胞所儲存的資料。
須注意的是,在另一範例實施例中,若以SLC NAND型快閃記憶體模組、MLC NAND型快閃記憶體模組或QLC NAND型快閃記憶體模組為例,則每一個記憶胞所儲存的位元的數目可能不同。因此,記憶胞的臨界電壓分布中可能具有更多或更少的狀態,本發明不加以限制。
圖8是根據本發明的一範例實施例所繪示的臨界電壓分布與硬位元解碼模式中使用的讀取電壓準位的示意圖。請參照圖8,狀態801與802可為圖7中的任兩個相鄰的狀態。受到使用環境(例如環境溫度)及/或使用程度(例如使用時間)的影響,狀態801與802之間可能會發生重疊,使得後續從此重疊區域中讀取的資料有很高的機率包含錯誤位元。
在硬位元解碼模式中,記憶體管理電路502可發送一讀取指令序列,其指示可複寫式非揮發性記憶體模組406使用一讀取電壓準位(例如讀取電壓準位V
R(1))讀取第一實體單元。記憶體管理電路502可獲得反映此讀取電壓準位的讀取結果的資料。錯誤檢查與校正電路508可解碼此資料。若此資料的解碼成功,則解碼成功的資料可被輸出(例如傳送給主機系統)。若此資料的解碼失敗,則記憶體管理電路502可發送另一讀取指令序列,其指示可複寫式非揮發性記憶體模組406使用另一讀取電壓準位(例如讀取電壓準位V
R(2))讀取第一實體單元。記憶體管理電路502可獲得反映此讀取電壓準位的讀取結果的資料。錯誤檢查與校正電路508可解碼此資料。
依此類推,在硬位元解碼模式中,在重試次數超過一個重試臨界值之前,每當解碼失敗,下一個不同的讀取電壓準位(例如讀取電壓準位V
R(3)及/或讀取電壓準位V
R(4))可被再次用於讀取第一實體單元,且所讀取的資料可被解碼。此外,硬位元解碼模式中所使用的讀取電壓準位的資訊可以是記載於一重試表格。根據此重試表格,多個讀取電壓準位(例如讀取電壓準位V
R(1)~V
R(4))可在硬位元解碼模式中被依序使用。
在一範例實施例中,若硬位元解碼模式的重試次數超過此重試臨界值,表示以硬位元解碼模式的解碼能力無法更正所讀取的資料中的所有錯誤。因此,錯誤檢查與校正電路508可進入軟位元解碼模式,以提高對於資料的解碼能力。
圖9是根據本發明的一範例實施例所繪示的臨界電壓分布與軟位元解碼模式中使用的讀取電壓準位的示意圖。請參照圖9,在軟位元解碼模式中,記憶體管理電路502可發送多個讀取指令序列,其指示可複寫式非揮發性記憶體模組406使用多個讀取電壓準位(例如讀取電壓準位V
S(1)~V
S(5))讀取第一實體單元。記憶體管理電路502可獲得反映此些讀取電壓準位的讀取結果的資料。根據此些讀取電壓準位的讀取結果,各記憶胞的臨界電壓可被識別為屬於多個電壓區間(例如電壓區間901~906)的其中之一並且被賦予相應的可靠度資訊。以對數相似性比值(Log Likelihood Ratio, LLR)作為可靠度資訊的範例,越往左的電壓區間所對應的可靠度資訊的數值越小。
在根據此些讀取電壓準位的讀取結果決定各電壓區間所對應的可靠度資訊後,根據各記憶胞所屬的電壓區間,錯誤檢查與校正電路508可使用相應的可靠度資訊來解碼使用一個特定讀取電壓準位從此些記憶胞讀取的資料。例如,此特定讀取電壓準位亦稱為正負號讀取電壓準位並且用以初步決定從每一記憶胞讀取出的位元是“0”或“1”。以圖9為例,此特定讀取電壓準位可為讀取電壓準位V
S(1)。
從另一角度而言,在圖8的硬位元解碼模式中,每施予一個讀取電壓準位,反映此讀取電壓準位的讀取結果的資料就會被解碼一次。然而,在圖9的軟位元解碼模式中,在連續施予多個讀取電壓準位之後,反映特定讀取電壓準位的讀取結果的資料才會被解碼一次。
傳統上,硬位元解碼模式中的每一次解碼皆僅是對每一次施予讀取電壓準位所獲得的資料進行解碼,而不像軟位元解碼模式中會動態產生或更新可用以提高解碼成功率的可靠度資訊。因此,才會導致硬位元解碼模式的解碼成功率普遍偏低。在記憶胞的臨界電壓偏移較為嚴重的情況下,系統可能需要等到硬位元解碼模式中的所有讀取電壓準位都被使用過後,才會進入軟位元解碼模式,導致解碼時間延長。
在一範例實施例中,在硬位元解碼模式中,記憶體管理電路502可發送一讀取指令序列(亦稱為第一讀取指令序列),其指示使用一讀取電壓準位(亦稱為第一讀取電壓準位)讀取第一實體單元以獲得一資料(亦稱為第一資料)。第一資料可反映第一讀取電壓準位對第一實體單元中各記憶胞的讀取結果。錯誤檢查與校正電路508可解碼第一資料。若第一資料的解碼成功,解碼成功的第一資料可被輸出。
若第一資料的解碼失敗,記憶體管理電路502可發送另一讀取指令序列(亦稱為第二讀取指令序列),其指示使用另一讀取電壓準位(亦稱為第二讀取電壓準位)讀取第一實體單元以獲得另一資料(亦稱為第二資料)。第二資料可反映第二讀取電壓準位對第一實體單元中各記憶胞的讀取結果。第二讀取電壓準位不同於第一讀取電壓準位。以圖8為例,第一讀取電壓準位與第二讀取電壓準位可為讀取電壓準位V
R(1)~V
R(4)中的任兩者。
在獲得第二資料後,記憶體管理電路502可判斷第二讀取電壓準位是否符合一特定條件(亦稱為第一條件)及/或第二資料是否符合一特定條件(亦稱為第二條件)。若第二讀取電壓準位符合第一條件或第二資料符合第二條件,錯誤檢查與校正電路508可使用輔助資訊解碼第二資料。此輔助資訊可用以提高第二資料的解碼成功率。例如,此輔助資訊可包括對應於多個電壓區間而動態決定的可靠度資訊(類似於圖9的範例實施例中動態決定的可靠度資訊)。在導入此輔助資訊來解碼第二資料後,即便在硬位元解碼模式中,第二資料的解碼成功率也可被顯著提升。
然而,若第二讀取電壓準位不符合第一條件且第二資料不符合第二條件,錯誤檢查與校正電路508可不使用此輔助資訊而解碼第二資料。例如,若第二讀取電壓準位不符合第一條件且第二資料不符合第二條件,則錯誤檢查與校正電路508可維持硬位元解碼模式中預設的解碼操作來解碼第二資料,而不額外參考動態決定的可靠度資訊。換言之,透過在硬位元解碼模式中適度且正確地使用輔助資訊,也可避免因過度使用或調整輔助資訊而反而降低資料的解碼成功率。
在一範例實施例中,記憶體管理電路502可根據第二讀取電壓準位是否位於一特定電壓範圍內,決定第二讀取電壓準位是否符合第一條件。在一範例實施例中,若第二讀取電壓準位位於特定電壓範圍內,記憶體管理電路502可判定第二讀取電壓準位符合第一條件。在一範例實施例中,若第二讀取電壓準位不位於特定電壓範圍內,記憶體管理電路502可判定第二讀取電壓準位不符合第一條件。
圖10是根據本發明的一範例實施例所繪示的特定電壓範圍的示意圖。請參照圖8與圖10,在一範例實施例中,在使用了讀取電壓準位V
R(1)與V
R(2)來讀取第一實體單元且未成功解碼資料後,記憶體管理電路502可根據讀取電壓準位V
R(1)與V
R(2)決定特定電壓範圍1010。例如,記憶體管理電路502可根據讀取電壓準位V
R(1)決定特定電壓範圍1010的邊界1011並根據讀取電壓準位V
R(2)決定特定電壓範圍1010的邊界1012。換言之,特定電壓範圍1010包含邊界1011與1012之間的電壓範圍。
圖11是根據本發明的一範例實施例所繪示的特定電壓範圍與多個讀取電壓準位的示意圖。請參照圖11,在一範例實施例中,在決定了特定電壓範圍1010後,假設使用了讀取電壓準位V
R(3)來讀取第一實體單元(即讀取電壓準位V
R(3)為第二讀取電壓準位)。響應於讀取電壓準位V
R(3)非位於特定電壓範圍1010內,記憶體管理電路502可判定讀取電壓準位V
R(3)不符合第一條件。響應於讀取電壓準位V
R(3)不符合第一條件,記憶體管理電路502可指示錯誤檢查與校正電路508在不參考額外的輔助資訊的前提下解碼反映讀取電壓準位V
R(3)的讀取結果的資料(即第二資料)。
或者,在另一範例實施例中,在決定了特定電壓範圍1010後,假設使用了讀取電壓準位V
R(4)來讀取第一實體單元(即讀取電壓準位V
R(4)為第二讀取電壓準位)。響應於讀取電壓準位V
R(4)位於特定電壓範圍1010內,記憶體管理電路502可判定讀取電壓準位V
R(4)符合第一條件。響應於讀取電壓準位V
R(4)符合第一條件,記憶體管理電路502可指示錯誤檢查與校正電路508參考額外的輔助資訊來解碼反映讀取電壓準位V
R(4)的讀取結果的資料(即第二資料)。
在一範例實施例中,記憶體管理電路502可獲得第二資料的校驗子數值。此校驗子數值與第二資料的位元錯誤率有關。例如,記憶體管理電路502(或錯誤檢查與校正電路508)可對第二資料執行一個奇偶檢查(parity check)操作以獲得第二資料的校驗子數值。記憶體管理電路502可根據此校驗子數值是否小於一個預設值,決定第二資料是否符合第二條件。例如,若此校驗子數值小於此預設值,記憶體管理電路502可判定第二資料符合第二條件。若此校驗子數值不小於此預設值,記憶體管理電路502可判定第二資料不符合第二條件。
圖12是根據本發明的一範例實施例所繪示的奇偶檢查操作的示意圖。請參照圖12,在一範例實施例中,假設第二資料包含碼字1202。碼字1202中包含多個位元V
0~V
8。記憶體管理電路502(或錯誤檢查與校正電路508)可將矩陣(亦稱為奇偶檢查矩陣,標記為H)1201乘上碼字1202以獲得校驗子向量1203。校驗子向量1203中包含多個校驗子S
0~S
7。若碼字1202中沒有錯誤位元,則校驗子S
0~S
7應皆為位元“0”。校驗子S
0~S
7中的位元“1”越多(或校驗子S
0~S
7中的位元“0”越少),表示碼字1202中的錯誤位元可能越多。
在一範例實施例中,記憶體管理電路502可根據校驗子S
0~S
7的總和決定第二資料的校驗子數值。例如,第二資料的校驗子數值可反映校驗子S
0~S
7的總和。例如,第二資料的校驗子數值可正相關於校驗子S
0~S
7的總和。若校驗子S
0~S
7中的位元“1”越多(或校驗子S
0~S
7中的位元“0”越少),則第二資料的校驗子數值越大。
在一範例實施例中,記憶體管理電路502可根據第二讀取電壓準位更新所述特定電壓範圍的邊界,以擴大所述特定電壓範圍的涵蓋範圍。在一範例實施例中,記憶體管理電路502可根據第二讀取電壓準位是否位於所述特定電壓範圍內或者其餘第二讀取電壓準位與所述特定電壓範圍的相對關係,決定是否更新所述特定電壓範圍的邊界。藉此,可提高後續在硬位元解碼模式中,所使用的讀取電壓準位符合第一條件的機率。
圖13是根據本發明的一範例實施例所繪示的更新特定電壓範圍的邊界的示意圖。請參照圖13,假設讀取電壓準位V
R(3)不位於特定電壓範圍1010內。在使用讀取電壓準位V
R(3)來讀取第一實體單元後,記憶體管理電路502可將特定電壓範圍1010的邊界從原先對應於讀取電壓準位V
R(1)的邊界1010更新至對應於讀取電壓準位V
R(3)的邊界1301,從而擴大特定電壓範圍1010的涵蓋範圍。
在一範例實施例中,在判定第二讀取電壓準位符合第一條件或第二資料符合第二條件後,記憶體管理電路502可根據第一讀取電壓準位與第二讀取電壓準位等至少部分在硬位元模式解碼中使用的多個讀取電壓準位來劃分多個電壓區間。然後,記憶體管理電路502可根據所劃分的多個電壓區間決定所述輔助資訊。
圖14是根據本發明的一範例實施例所繪示的根據硬位元模式解碼中使用的多個讀取電壓準位來劃分多個電壓區間的示意圖。請參照圖14,在一範例實施例中,響應於讀取電壓準位V
R(4)符合第一條件,記憶體管理電路502可根據硬位元模式解碼中已使用的讀取電壓準位V
R(1)、V
R(2)及V
R(4)來劃分電壓區間1401~1404。
根據讀取電壓準位V
R(1)、V
R(2)及V
R(4)的讀取結果,第一實體單元中各記憶胞的臨界電壓可被識別為屬於電壓區間1401~1404的其中之一並且被賦予相應的可靠度資訊。所述輔助資訊可包含此時獲得的可靠度資訊。以對數相似性比值(LLR)作為可靠度資訊的範例,越往左的電壓區間所對應的可靠度資訊的數值可越小。接著,根據各記憶胞所屬的電壓區間,錯誤檢查與校正電路508可使用相應的可靠度資訊(即所述輔助資訊)來解碼使用讀取電壓準位V
R(4)從此些記憶胞讀取的資料。
在一範例實施例中,假設使用讀取電壓準位V
R(1)讀取的資料為第三資料、使用讀取電壓準位V
R(2)讀取的資料為第一資料,且使用讀取電壓準位V
R(4)讀取的資料為第二資料。記憶體管理電路502可根據第三資料的校驗子數值與第二資料的校驗子數值之間的差值以及讀取電壓準位V
R(1)與讀取電壓準位V
R(4)之間的差值來決定電壓區間1402所對應的可靠度資訊。例如,記憶體管理電路502可根據以下方程式(1.1)決定電壓區間1402所對應的可靠度資訊。
LLR(1402)=α×(DIF(A)/DIF(B))+β×DIF(A)+γ×DIF(B)+C
其中,DIF(A)對應第三資料的校驗子數值與第二資料的校驗子數值之間的差值,DIF(B)對應讀取電壓準位V
R(1)與讀取電壓準位V
R(4)之間的差值。α、β、γ及C皆為常數。類似的,記憶體管理電路502可根據第二資料的校驗子數值與第一資料的校驗子數值之間的差值以及讀取電壓準位V
R(4)與讀取電壓準位V
R(2)之間的差值來決定電壓區間1403所對應的可靠度資訊。例如,在一範例實施例中,電壓區間1401~1404所對應的可靠度資訊可分別決定為“-1”、“-0.2”、“0.4”及“1”。
圖15是根據本發明的一範例實施例所繪示的根據硬位元模式解碼中使用的多個讀取電壓準位來劃分多個電壓區間的示意圖。請參照圖15,接續於圖14的範例實施例,若對於使用讀取電壓準位V
R(4)讀取的資料的解碼仍然失敗,則讀取電壓準位V
R(5)可接續用於讀取第一實體單元。
在一範例實施例中,響應於讀取電壓準位V
R(5)符合第一條件,記憶體管理電路502可根據硬位元模式解碼中已使用的讀取電壓準位V
R(1)、V
R(2)、V
R(4)及V
R(5)來劃分電壓區間1501~1505。
根據讀取電壓準位V
R(1)、V
R(2)、V
R(4)及V
R(5)的讀取結果,第一實體單元中各記憶胞的臨界電壓可被識別為屬於電壓區間1501~1505的其中之一並且被賦予相應的可靠度資訊。所述輔助資訊可包含此時獲得的可靠度資訊。接著,根據各記憶胞所屬的電壓區間,錯誤檢查與校正電路508可使用相應的可靠度資訊(即所述輔助資訊)來解碼使用讀取電壓準位V
R(5)從此些記憶胞讀取的資料。
在一範例實施例中,記憶體管理電路502可以同時考慮第二讀取電壓準位符合第一條件以及第二資料符合第二條件來決定是否使用輔助資訊解碼第二資料。在一範例實施例中,記憶體管理電路502亦可以只根據第二讀取電壓準位是否符合第一條件或者只根據第二資料是否符合第二條件來決定是否使用輔助資訊解碼第二資料,視實務需求而定。
在前述範例實施例中,是以單一個讀取電壓準位的資料讀取作為範例進行說明。然而,在以下範例實施例中,則是以多個讀取電壓準位的資料讀取作為範例進行說明。
圖16是根據本發明的一範例實施例所繪示的臨界電壓分布與硬位元解碼模式中使用的讀取電壓準位的示意圖。請參照圖16,假設第一實體單元中經程式化的記憶胞的臨界電壓分布包含狀態1601~1604。狀態1601與1602相鄰,且狀態1603與1604相鄰。在硬位元解碼模式中,讀取電壓準位V
R(1)與V
R(1)’、讀取電壓準位V
R(2)與V
R(2)’或讀取電壓準位V
R(3)與V
R(3)’可被同時施予至第一實體單元以讀取相應的資料。例如,讀取電壓準位V
R(1)與V
R(1)’、讀取電壓準位V
R(2)與V
R(2)’或讀取電壓準位V
R(3)與V
R(3)’可對應圖7中任兩個可被同時施加的讀取電壓準位(例如讀取電壓準位V1與V2)。
在一範例實施例中,記憶體管理電路502可發送一讀取指令序列,其指示使用讀取電壓準位V
R(1)與V
R(1)’讀取第一實體單元以獲得反映讀取電壓準位V
R(1)與V
R(1)’的讀取結果的資料。錯誤檢查與校正電路508可解碼此資料。假設此資料的解碼失敗,記憶體管理電路502可發送一讀取指令序列,其指示使用讀取電壓準位V
R(2)與V
R(2)’讀取第一實體單元以獲得反映讀取電壓準位V
R(2)與V
R(2)’的讀取結果的資料。錯誤檢查與校正電路508可解碼此資料。假設此資料的解碼失敗,記憶體管理電路502可發送一讀取指令序列,其指示使用讀取電壓準位V
R(3)與V
R(3)’讀取第一實體單元以獲得反映讀取電壓準位V
R(3)與V
R(3)’的讀取結果的資料。
圖17是根據本發明的一範例實施例所繪示的特定電壓範圍與多個讀取電壓準位的示意圖。請參照圖16與圖17,在一範例實施例中,記憶體管理電路502可根據讀取電壓準位V
R(1)與V
R(2)決定特定電壓範圍1710並根據讀取電壓準位V
R(1)’與V
R(2)’決定特定電壓範圍1720。
如圖17所示,讀取電壓準位V
R(3)與V
R(3)’未位於特定電壓範圍1710與1720中,故記憶體管理電路502可判定讀取電壓準位V
R(3)與V
R(3)’不符合第一條件。響應於讀取電壓準位V
R(3)與V
R(3)’不符合第一條件,在解碼反映讀取電壓準位V
R(3)與V
R(3)’的讀取結果的資料時,錯誤檢查與校正電路508將不使用輔助資訊。
另一方面,記憶體管理電路502可根據讀取電壓準位V
R(3)與V
R(3)’與特定電壓範圍1710與1720之間的相對關係,決定是否更新特定電壓範圍1710與1720的邊界。在一範例實施例中,記憶體管理電路502可根據讀取電壓準位V
R(3)與V
R(3)’是否分別在特定電壓範圍1710與1720內,決定是否更新特定電壓範圍1710與1720的邊界。相關操作可參照圖13的範例實施例,在此不重複贅述。
在一範例實施例中,記憶體管理電路502可獲得讀取電壓準位V
R(1)與V
R(2)之間的差值D(1)與讀取電壓準位V
R(1)’與V
R(2)’之間的差值D(1)’。記憶體管理電路502可獲得讀取電壓準位V
R(1)與V
R(3)之間的差值D(2)與讀取電壓準位V
R(1)’與V
R(3)’之間的差值D(2)’。記憶體管理電路502可判斷差值D(2)與D(2)’的總和是否大於差值D(1)與D(1)’的總和。若差值D(2)與D(2)’的總和大於差值D(1)與D(1)’的總和,記憶體管理電路502可根據讀取電壓準位V
R(3)更新特定電壓範圍1710的邊界1712並根據讀取電壓準位V
R(3)’更新特定電壓範圍1720的邊界1722。
記憶體管理電路502可獲得讀取電壓準位V
R(2)與V
R(3)之間的差值D(3)與讀取電壓準位V
R(2)’與V
R(3)’之間的差值D(3)’。記憶體管理電路502可判斷差值D(3)與D(3)’的總和是否大於差值D(1)與D(1)’的總和。若差值D(3)與D(3)’的總和大於差值D(1)與D(1)’的總和,記憶體管理電路502可根據讀取電壓準位V
R(3)更新特定電壓範圍1710的邊界1711並根據讀取電壓準位V
R(3)’更新特定電壓範圍1720的邊界1721。
如圖17所示,差值D(2)與D(2)’的總和未大於差值D(1)與D(1)’的總和且差值D(3)與D(3)’的總和大於差值D(1)與D(1)’的總和,故記憶體管理電路502可根據讀取電壓準位V
R(3)更新特定電壓範圍1710的邊界1711並根據讀取電壓準位V
R(3)’更新特定電壓範圍1720的邊界1721。例如,記憶體管理電路502可將特定電壓範圍1710的左邊界從對應於讀取電壓準位V
R(1)的邊界1711更新至對應於邊界讀取電壓準位V
R(3)的邊界1713,以擴大特定電壓範圍1710的涵蓋範圍。同時,記憶體管理電路502可將特定電壓範圍1720的左邊界從對應於讀取電壓準位V
R(1)’的邊界1721更新至對應於邊界讀取電壓準位V
R(3)’的邊界1723,以擴大特定電壓範圍1710的涵蓋範圍。
圖18是根據本發明的一範例實施例所繪示的臨界電壓分布與硬位元解碼模式中使用的讀取電壓準位的示意圖。圖19是根據本發明的一範例實施例所繪示的特定電壓範圍與多個讀取電壓準位的示意圖。請參照圖18與圖19,相較於圖16與圖17的範例實施例,圖18與圖19的範例實施例是以讀取電壓準位V
R(4)與讀取電壓準位V
R(4)’來分別取代讀取電壓準位V
R(3)與讀取電壓準位V
R(3)’。例如,讀取電壓準位V
R(4)與V
R(4)’可對應圖7中任兩個可被同時施加的讀取電壓準位(例如讀取電壓準位V1與V2)。
如圖19所示,讀取電壓準位V
R(4)與V
R(4)’位於特定電壓範圍1910與1920中,故記憶體管理電路502可判定讀取電壓準位V
R(4)與V
R(4)’符合第一條件。響應於讀取電壓準位V
R(4)與V
R(4)’符合第一條件,錯誤檢查與校正電路508可使用輔助資訊來解碼反映讀取電壓準位V
R(3)與V
R(3)’的讀取結果的資料。關於如何使用輔助資訊來執行硬位元模式解碼中的解碼操作已詳述於上,在此不重複贅述。
另一方面,記憶體管理電路502可根據讀取電壓準位V
R(4)與V
R(4)’與特定電壓範圍1910與1920之間的相對關係,決定是否更新特定電壓範圍1910與1920的邊界。在一範例實施例中,記憶體管理電路502可根據讀取電壓準位V
R(4)與V
R(4)’是否分別在特定電壓範圍1910與1920內,決定是否更新特定電壓範圍1910與1920的邊界。相關操作可參照圖13的範例實施例,在此不重複贅述。
在一範例實施例中,記憶體管理電路502可獲得讀取電壓準位V
R(1)與V
R(4)之間的差值D(4)與讀取電壓準位V
R(1)’與V
R(4)’之間的差值D(4)’。記憶體管理電路502可判斷差值D(4)與D(4)’的總和是否大於差值D(1)與D(1)’的總和。若差值D(4)與D(4)’的總和大於差值D(1)與D(1)’的總和,記憶體管理電路502可根據讀取電壓準位V
R(4)更新特定電壓範圍1910的邊界1912並根據讀取電壓準位V
R(4)’更新特定電壓範圍1920的邊界1922。
記憶體管理電路502可獲得讀取電壓準位V
R(2)與V
R(4)之間的差值D(5)與讀取電壓準位V
R(2)’與V
R(4)’之間的差值D(5)’。記憶體管理電路502可判斷差值D(5)與D(5)’的總和是否大於差值D(1)與D(1)’的總和。若差值D(5)與D(5)’的總和大於差值D(1)與D(1)’的總和,記憶體管理電路502可根據讀取電壓準位V
R(4)更新特定電壓範圍1910的邊界1911並根據讀取電壓準位V
R(4)’更新特定電壓範圍1920的邊界1921。
如圖19所示,差值D(4)與D(4)’的總和未大於差值D(1)與D(1)’的總和且差值D(5)與D(5)’的總和也未大於差值D(1)與D(1)’的總和,故記憶體管理電路502可不更新特定電壓範圍1910與1920,以避免縮小特定電壓範圍1910與1920的涵蓋範圍。
圖20是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。請參照圖20,在步驟S2001,發送第一讀取指令序列,其指示使用第一讀取電壓準位讀取第一實體單元以獲得第一資料。在步驟S2002,解碼第一資料。在步驟S2003,判斷第一資料的解碼是否成功。若第一資料的解碼成功,在步驟S2004,輸出解碼成功的第一資料。若第一資料的解碼失敗,在步驟S2005,發送第二讀取指令序列,其指示使用第二讀取電壓準位讀取第一實體單元以獲得第二資料。第二讀取電壓準位不同於第一讀取電壓準位。
在步驟S2006,判斷第二讀取電壓準位是否符合第一條件或所述第二資料是否符合第二條件。若第二讀取電壓準位符合第一條件或第二資料符合第二條件,在步驟S2007,使用輔助資訊解碼第二資料。所述輔助資訊用以提高第二資料的解碼成功率。若第二讀取電壓準位不符合第一條件且第二資料不符合所述第二條件,在步驟S2008,不使用所述輔助資訊而解碼第二資料。
圖21是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。請參照圖21,在步驟S2101,啟動硬位元模式解碼(亦稱為硬解碼模式)。在步驟S2102,發送讀取指令序列,其指示讀取第一實體單元以獲得資料。此資料可反映所使用的讀取電壓對於第一實體單元的讀取結果。在步驟S2103,判斷一個預設條件是否符合或被滿足。例如,此預設條件可包括所使用的讀取電壓是否符合第一條件及/或所讀取的資料是否符合第二條件。若所使用的讀取電壓符合第一條件及/或所讀取的資料符合第二條件,可判定此預設條件被符合或滿足。若所使用的讀取電壓不符合第一條件且所讀取的資料不符合第二條件,可判定此預設條件不符合或不滿足。
若此預設條件符合或被滿足,在步驟S2104,使用輔助資訊解碼所讀取的資料。所述輔助資訊用以提高資料的解碼成功率。若此預設條件未符合或未被滿足,在步驟S2105,不使用所述輔助資訊而解碼所讀取的資料。在步驟S2106,判斷是否解碼成功。若解碼成功,在步驟S2107,輸出解碼成功的資料。若解碼不成功,在步驟S2108,判斷執行解碼的次數是否超過一重試臨界值。若執行解碼的次數未超過此重試臨界值,在步驟S2109,調整下一次使用的讀取電壓準位並回到步驟S2102,使用調整過的讀取電壓準位再次讀取第一實體單元。若執行解碼的次數超過此重試臨界值,在步驟S2110,離開硬解碼模式並啟動軟位元模式解碼(亦稱為軟位元模式)。
然而,圖20與圖21中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖20與圖21中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖20與圖21的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在硬位元模式解碼中,在至少一次讀取第一實體單元且經歷至少一次解碼失敗後,可提高資料的解碼成功率的輔助資訊只在滿足特定條件時被使用,而非在每一次的重讀與解碼中無條件使用。藉此,可在嘗試提高資料在硬位元模式解碼中的解碼成功率的前提下,避免因過度使用或調整輔助資訊而反而降低解碼成功率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
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):實體單元
612(0)~612(C):邏輯單元
701~708,801,802,1601~1604:狀態
V1~V7,V
R(1)~V
R(5),V
S(1)~V
S(5),V
R(1)’~V
R(4)’:讀取電壓準位
901~906,1401~1404,1501~1505:電壓區間
1010,1710,1720,1910,1920:特定電壓範圍
1011,1012,1301,1711,1712,1721,1722,1731,1732,1911,1912,1921,1922:邊界
1201:矩陣
1202:碼字
1203:校驗子向量
S2001:步驟(發送第一讀取指令序列,其指示使用第一讀取電壓準位讀取第一實體單元以獲得第一資料)
S2002:步驟(解碼第一資料)
S2003:步驟(是否解碼成功)
S2004:步驟(輸出解碼成功的第一資料)
S2005:步驟(發送第二讀取指令序列,其指示使用第二讀取電壓準位讀取第一實體單元以獲得第二資料)
S2006:步驟(第二讀取電壓準位符合第一條件或第二資料符合第二條件)
S2007:步驟(使用輔助資訊解碼第二資料)
S2008:步驟(不使用所述輔助資訊而解碼第二資料)
S2101:步驟(啟動硬位元模式解碼)
S2102:步驟(發送讀取指令序列,其指示讀取第一實體單元以獲得資料)
S2103:步驟(是否符合預設條件)
S2104:步驟(使用輔助資訊解碼資料)
S2105:步驟(不使用輔助資訊而解碼資料)
S2106:步驟(是否解碼成功)
S2107:步驟(輸出解碼成功的資料)
S2108:步驟(是否超過重試臨界值)
S2109:步驟(調整讀取電壓準位)
S2110:步驟(啟動軟位元模式解碼)
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據本發明的另一範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖7是根據本發明的一範例實施例所繪示的記憶胞的臨界電壓分布的示意圖。
圖8是根據本發明的一範例實施例所繪示的臨界電壓分布與硬位元解碼模式中使用的讀取電壓準位的示意圖。
圖9是根據本發明的一範例實施例所繪示的臨界電壓分布與軟位元解碼模式中使用的讀取電壓準位的示意圖。
圖10是根據本發明的一範例實施例所繪示的特定電壓範圍的示意圖。
圖11是根據本發明的一範例實施例所繪示的特定電壓範圍與多個讀取電壓準位的示意圖。
圖12是根據本發明的一範例實施例所繪示的奇偶檢查操作的示意圖。
圖13是根據本發明的一範例實施例所繪示的更新特定電壓範圍的邊界的示意圖。
圖14是根據本發明的一範例實施例所繪示的根據硬位元模式解碼中使用的多個讀取電壓準位來劃分多個電壓區間的示意圖。
圖15是根據本發明的一範例實施例所繪示的根據硬位元模式解碼中使用的多個讀取電壓準位來劃分多個電壓區間的示意圖。
圖16是根據本發明的一範例實施例所繪示的臨界電壓分布與硬位元解碼模式中使用的讀取電壓準位的示意圖。
圖17是根據本發明的一範例實施例所繪示的特定電壓範圍與多個讀取電壓準位的示意圖。
圖18是根據本發明的一範例實施例所繪示的臨界電壓分布與硬位元解碼模式中使用的讀取電壓準位的示意圖。
圖19是根據本發明的一範例實施例所繪示的特定電壓範圍與多個讀取電壓準位的示意圖。
圖20是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。
圖21是根據本發明的一範例實施例所繪示的記憶體控制方法的流程圖。
S2001:步驟(發送第一讀取指令序列,其指示使用第一讀取電壓準位讀取第一實體單元以獲得第一資料)
S2002:步驟(解碼第一資料)
S2003:步驟(是否解碼成功)
S2004:步驟(輸出解碼成功的第一資料)
S2005:步驟(發送第二讀取指令序列,其指示使用第二讀取電壓準位讀取第一實體單元以獲得第二資料)
S2006:步驟(第二讀取電壓準位符合第一條件或第二資料符合第二條件)
S2007:步驟(使用輔助資訊解碼第二資料)
S2008:步驟(不使用所述輔助資訊而解碼第二資料)
Claims (21)
- 一種記憶體控制方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,該記憶體控制方法包括: 發送一第一讀取指令序列,其指示使用一第一讀取電壓準位讀取該多個實體單元中的一第一實體單元以獲得一第一資料; 解碼該第一資料; 若該第一資料的解碼失敗,發送一第二讀取指令序列,其指示使用一第二讀取電壓準位讀取該第一實體單元以獲得一第二資料,其中該第二讀取電壓準位不同於該第一讀取電壓準位; 若該第二讀取電壓準位符合一第一條件或該第二資料符合一第二條件,使用一輔助資訊解碼該第二資料,其中該輔助資訊用以提高該第二資料的一解碼成功率;以及 若該第二讀取電壓準位不符合該第一條件且該第二資料不符合該第二條件,不使用該輔助資訊而解碼該第二資料。
- 如請求項1所述的記憶體控制方法,更包括: 根據該第二讀取電壓準位是否位於一特定電壓範圍內,決定該第二讀取電壓準位是否符合該第一條件。
- 如請求項1所述的記憶體控制方法,更包括: 獲得該第二資料的一校驗子數值,其中該校驗子數值與該第二資料的一位元錯誤率有關;以及 根據該校驗子數值是否小於一預設值,決定該第二資料是否符合該第二條件。
- 如請求項1所述的記憶體控制方法,更包括: 在發送該第一讀取指令序列之前,發送一第三讀取指令序列,其指示使用一第三讀取電壓準位讀取該第一實體單元以獲得一第三資料; 解碼該第三資料;以及 根據該第一讀取電壓準位與該第三讀取電壓準位決定一特定電壓範圍,其中該第一讀取電壓準位與該第三讀取電壓準位的其中之一用以界定該特定電壓範圍的一上邊界,且該第一讀取電壓準位與該第三讀取電壓準位的其中之另一用以界定該特定電壓範圍的一下邊界。
- 如請求項4所述的記憶體控制方法,更包括: 根據該第二讀取電壓準位更新該特定電壓範圍的一邊界。
- 如請求項5所述的記憶體控制方法,其中根據該第二讀取電壓準位更新該特定電壓範圍的該邊界值的步驟包括: 根據該第二讀取電壓準位與該特定電壓範圍的一相對關係決定是否更新該特定電壓範圍的該邊界。
- 如請求項1所述的記憶體控制方法,更包括: 若該第二讀取電壓準位符合該第一條件或該第二資料符合該第二條件,根據該第一讀取電壓準位與該第二讀取電壓準位劃分多個電壓區間;以及 根據所劃分的該多個電壓區間決定該輔助資訊。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以發送一第一讀取指令序列,其指示使用一第一讀取電壓準位讀取該多個實體單元中的一第一實體單元以獲得一第一資料, 該記憶體控制電路單元更用以解碼該第一資料, 若該第一資料的解碼失敗,該記憶體控制電路單元更用以發送一第二讀取指令序列,其指示使用一第二讀取電壓準位讀取該第一實體單元以獲得一第二資料,其中該第二讀取電壓準位不同於該第一讀取電壓準位, 若該第二讀取電壓準位符合一第一條件或該第二資料符合一第二條件,該記憶體控制電路單元更用以使用一輔助資訊解碼該第二資料,其中該輔助資訊用以提高該第二資料的一解碼成功率,並且 若該第二讀取電壓準位不符合該第一條件且該第二資料不符合該第二條件,該記憶體控制電路單元更用以不使用該輔助資訊而解碼該第二資料。
- 如請求項8所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第二讀取電壓準位是否位於一特定電壓範圍內,決定該第二讀取電壓準位是否符合該第一條件。
- 如請求項8所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以獲得該第二資料的一校驗子數值,該校驗子數值與該第二資料的一位元錯誤率有關,並且 該記憶體控制電路單元更用以根據該校驗子數值是否小於一預設值,決定該第二資料是否符合該第二條件。
- 如請求項8所述的記憶體儲存裝置,其中在發送該第一讀取指令序列之前,該記憶體控制電路單元更用以發送一第三讀取指令序列,其指示使用一第三讀取電壓準位讀取該第一實體單元以獲得一第三資料, 該記憶體控制電路單元更用以解碼該第三資料,並且 該記憶體控制電路單元更用以根據該第一讀取電壓準位與該第三讀取電壓準位決定一特定電壓範圍,其中該第一讀取電壓準位與該第三讀取電壓準位的其中之一用以界定該特定電壓範圍的一上邊界,且該第一讀取電壓準位與該第三讀取電壓準位的其中之另一用以界定該特定電壓範圍的一下邊界。
- 如請求項11所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第二讀取電壓準位更新該特定電壓範圍的一邊界。
- 如請求項12所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該第二讀取電壓準位更新該特定電壓範圍的該邊界值的操作包括: 根據該第二讀取電壓準位與該特定電壓範圍的一相對關係決定是否更新該特定電壓範圍的該邊界。
- 如請求項8所述的記憶體儲存裝置,其中若該第二讀取電壓準位符合該第一條件或該第二資料符合該第二條件,該記憶體控制電路單元更用以根據該第一讀取電壓準位與該第二讀取電壓準位劃分多個電壓區間,並且 該記憶體控制電路單元更用以根據所劃分的該多個電壓區間決定該輔助資訊。
- 一種記憶體控制電路單元,用以控制一記憶體儲存裝置,其中該記憶體儲存裝置包括一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體單元,且該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組; 一解碼電路;以及 一記憶體管理電路,耦接至該主機介面、該記憶體介面及該解碼電路, 其中該記憶體管理電路用以發送一第一讀取指令序列,其指示使用一第一讀取電壓準位讀取該多個實體單元中的一第一實體單元以獲得一第一資料, 該解碼電路用以解碼該第一資料, 若該第一資料的解碼失敗,該記憶體管理電路更用以發送一第二讀取指令序列,其指示使用一第二讀取電壓準位讀取該第一實體單元以獲得一第二資料,其中該第二讀取電壓準位不同於該第一讀取電壓準位, 若該第二讀取電壓準位符合一第一條件或該第二資料符合一第二條件,該解碼電路更用以使用一輔助資訊解碼該第二資料,其中該輔助資訊用以提高該第二資料的一解碼成功率,並且 若該第二讀取電壓準位不符合該第一條件且該第二資料不符合該第二條件,該解碼電路更用以不使用該輔助資訊而解碼該第二資料。
- 如請求項15所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第二讀取電壓準位是否位於一特定電壓範圍內,決定該第二讀取電壓準位是否符合該第一條件。
- 如請求項15所述的記憶體控制電路單元,其中該記憶體管理電路更用以獲得該第二資料的一校驗子數值,該校驗子數值與該第二資料的一位元錯誤率有關,並且 該記憶體管理電路更用以根據該校驗子數值是否小於一預設值,決定該第二資料是否符合該第二條件。
- 如請求項15所述的記憶體控制電路單元,其中在發送該第一讀取指令序列之前,該記憶體管理電路更用以發送一第三讀取指令序列,其指示使用一第三讀取電壓準位讀取該第一實體單元以獲得一第三資料, 該解碼電路更用以解碼該第三資料,並且 該記憶體管理電路更用以根據該第一讀取電壓準位與該第三讀取電壓準位決定一特定電壓範圍,其中該第一讀取電壓準位與該第三讀取電壓準位的其中之一用以界定該特定電壓範圍的一上邊界,且該第一讀取電壓準位與該第三讀取電壓準位的其中之另一用以界定該特定電壓範圍的一下邊界。
- 如請求項18所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第二讀取電壓準位更新該特定電壓範圍的一邊界。
- 如請求項19所述的記憶體控制電路單元,其中該記憶體管理電路根據該第二讀取電壓準位更新該特定電壓範圍的該邊界值的操作包括: 根據該第二讀取電壓準位與該特定電壓範圍的一相對關係決定是否更新該特定電壓範圍的該邊界。
- 如請求項15所述的記憶體控制電路單元,其中若該第二讀取電壓準位符合該第一條件或該第二資料符合該第二條件,該記憶體管理電路更用以根據該第一讀取電壓準位與該第二讀取電壓準位劃分多個電壓區間,並且 該記憶體管理電路更用以根據所劃分的該多個電壓區間決定該輔助資訊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109112487A TWI722867B (zh) | 2020-04-14 | 2020-04-14 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
US16/889,808 US11101820B1 (en) | 2020-04-14 | 2020-06-02 | Memory control method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109112487A TWI722867B (zh) | 2020-04-14 | 2020-04-14 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI722867B true TWI722867B (zh) | 2021-03-21 |
TW202139189A TW202139189A (zh) | 2021-10-16 |
Family
ID=76036159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109112487A TWI722867B (zh) | 2020-04-14 | 2020-04-14 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11101820B1 (zh) |
TW (1) | TWI722867B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8811081B2 (en) * | 2011-12-09 | 2014-08-19 | Sandisk Technologies Inc. | Systems and methods of updating read voltages in a memory |
US9495518B2 (en) * | 2011-02-28 | 2016-11-15 | Samsung Electronics Co., Ltd. | Method of reliably reading data stored in multi-level cell (MLC) non-volatile memory |
US10445002B2 (en) * | 2017-11-30 | 2019-10-15 | Phison Electronics Corp. | Data accessing method, memory controlling circuit unit and memory storage device |
US20190318791A1 (en) * | 2018-04-16 | 2019-10-17 | Phison Electronics Corp. | Memory management method, memory storage device and memory control circuit unit |
US20190391865A1 (en) * | 2018-06-20 | 2019-12-26 | Micron Technology, Inc. | Memory sub-system with dynamic calibration using component-based function(s) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102089532B1 (ko) * | 2013-02-06 | 2020-03-16 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI540586B (zh) * | 2014-04-15 | 2016-07-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 |
TWI582779B (zh) * | 2015-04-14 | 2017-05-11 | 群聯電子股份有限公司 | 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI562152B (en) * | 2015-05-29 | 2016-12-11 | Phison Electronics Corp | Decoding method, memory storage device and memory control circuit unit |
TWI612525B (zh) * | 2016-07-07 | 2018-01-21 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI651721B (zh) * | 2018-03-09 | 2019-02-21 | 大陸商深圳大心電子科技有限公司 | 解碼方法以及儲存控制器 |
TWI650757B (zh) * | 2018-03-30 | 2019-02-11 | 大陸商深圳大心電子科技有限公司 | 解碼方法以及儲存控制器 |
TWI655576B (zh) * | 2018-06-20 | 2019-04-01 | 深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
KR102535110B1 (ko) * | 2018-10-01 | 2023-05-23 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
TW202025165A (zh) * | 2018-12-22 | 2020-07-01 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
TWI686804B (zh) * | 2019-04-26 | 2020-03-01 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
-
2020
- 2020-04-14 TW TW109112487A patent/TWI722867B/zh active
- 2020-06-02 US US16/889,808 patent/US11101820B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495518B2 (en) * | 2011-02-28 | 2016-11-15 | Samsung Electronics Co., Ltd. | Method of reliably reading data stored in multi-level cell (MLC) non-volatile memory |
US8811081B2 (en) * | 2011-12-09 | 2014-08-19 | Sandisk Technologies Inc. | Systems and methods of updating read voltages in a memory |
US10445002B2 (en) * | 2017-11-30 | 2019-10-15 | Phison Electronics Corp. | Data accessing method, memory controlling circuit unit and memory storage device |
US20190318791A1 (en) * | 2018-04-16 | 2019-10-17 | Phison Electronics Corp. | Memory management method, memory storage device and memory control circuit unit |
US20190391865A1 (en) * | 2018-06-20 | 2019-12-26 | Micron Technology, Inc. | Memory sub-system with dynamic calibration using component-based function(s) |
Also Published As
Publication number | Publication date |
---|---|
US11101820B1 (en) | 2021-08-24 |
TW202139189A (zh) | 2021-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI649754B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10318379B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US10685711B1 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
US10447314B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
TWI691962B (zh) | 解碼方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111538687B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US11726709B2 (en) | Memory control method, memory storage device and memory control circuit unit | |
TW202022861A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10713160B1 (en) | Data writing method, memory control circuit unit and memory storage device | |
US11983069B2 (en) | Data rebuilding method, memory storage apparatus, and memory control circuit unit | |
TWI784224B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI722867B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
US11531589B1 (en) | Decoding method, memory storage device, and memory control circuit unit | |
TWI777519B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI705449B (zh) | 電壓識別方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111863099B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US11409596B1 (en) | Encoding control method, memory storage device and memory control circuit unit | |
US11372590B2 (en) | Memory control method, memory storage device and memory control circuit unit | |
US20240354024A1 (en) | Memory management method, memory storage device and memory control circuit unit | |
US20240201857A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20230297232A1 (en) | Table sorting method, memory storage device, and memory control circuit unit | |
US20240304235A1 (en) | Voltage calibration method, memory storage device and memory control circuit unit | |
TW202027083A (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |