TWI675374B - 位元判斷方法、記憶體控制電路單元以及記憶體儲存裝置 - Google Patents

位元判斷方法、記憶體控制電路單元以及記憶體儲存裝置 Download PDF

Info

Publication number
TWI675374B
TWI675374B TW107125570A TW107125570A TWI675374B TW I675374 B TWI675374 B TW I675374B TW 107125570 A TW107125570 A TW 107125570A TW 107125570 A TW107125570 A TW 107125570A TW I675374 B TWI675374 B TW I675374B
Authority
TW
Taiwan
Prior art keywords
bit
memory
value
storage state
decoding
Prior art date
Application number
TW107125570A
Other languages
English (en)
Other versions
TW202008377A (zh
Inventor
林緯
劉安城
楊宇翔
許祐誠
Original Assignee
群聯電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 群聯電子股份有限公司 filed Critical 群聯電子股份有限公司
Priority to TW107125570A priority Critical patent/TWI675374B/zh
Priority to US16/120,314 priority patent/US10628259B2/en
Application granted granted Critical
Publication of TWI675374B publication Critical patent/TWI675374B/zh
Publication of TW202008377A publication Critical patent/TW202008377A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • 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
    • 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
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information

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播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,為了確保可複寫式非揮發性記憶體模組所儲存之資料的正確性,在將某一資料儲存至可複寫式非揮發性記憶體模組之前,此資料會先被編碼。編碼後的資料(包含原始資料與錯誤更正碼)會被儲存至可複寫式非揮發性記憶體模組中。往後,編碼後的資料可從可複寫式非揮發性記憶體模組中被讀取並且解 碼以更正其中可能存在的錯誤。以往錯誤更正碼多使用代數解碼演算法,如(BCH code),而目前機率解碼演算法,如低密度奇偶檢查碼(low density parity code,以下亦稱為LDPC),則逐漸成熟。低密度奇偶檢查碼是使用一個稀疏矩陣(sparse matrix)來編碼與解碼。
LDPC碼通常會被定義為一個同位檢查矩陣(parity-check matrix),且可以利用雙分圖(bipartite graph)來表達,其中雙分圖是有關於上述的坦納圖。雙分圖為一種由多個頂點所構成的圖型,且該些頂點會被劃分為兩種不同的類型,而LDPC碼得以由多個頂點所構成的雙分圖所表示。該些頂點中的一部分被稱為變數節點(variable node),而其他頂點則被稱為檢查節點(check node)。該些變數節點為一對一的映射到該些已編碼的資料位元(亦稱為碼字,codeword)。變數節點亦可稱為訊息節點(message node)或是位元節點(bit node)。檢查節點亦可稱為奇偶節點(parity node)。
一般來說,LDPC解碼器會在迭代解碼操作中,經由未滿足檢查節點(unsatisfied check node)資訊或是對數似然比值(log-likelihood ratio,LLR)來進行解碼。
然而,在位元錯誤率(bit error rate)方面,於進行迭代解碼的過程中可能會遭遇到例如高可靠度錯誤(High reliable error,以下稱HRE)的問題。HRE所造成的原因可能起因於匯流排的錯誤或可複寫式非揮發性記憶體製程上的問題,導致記憶體控制器欲 將一記憶胞程式化至一儲存狀態時,該記憶胞被程式化後其實際的儲存狀態卻是與原本預期的儲存狀態差異極大的另一儲存狀態。舉例來說,當記憶體控制器欲將一記憶胞程式化至“110”的儲存狀態時,該記憶胞被程式化後實際的儲存狀態卻是“010”。而在可複寫式非揮發性記憶體的一儲存狀態的分部圖中,值為“110”的儲存狀態與值為“010”的彼此並不相鄰並且彼此之間間隔一個以上儲存狀態。換句話說,若記憶胞被程式化後其實際的儲存狀態是與原本預期的儲存狀態差異極大的另一儲存狀態,且此兩個儲存狀態在可複寫式非揮發性記憶體的儲存狀態的分部圖中彼此不相鄰且彼此之間間隔多個儲存狀態,則可以判斷可複寫式非揮發性記憶體發生HRE。一般來說,使用屬於HRE的位元(以下稱為,HRE位元)執行LDPC解碼時,會導致位元錯誤率的錯誤地面區(error floor region)與解碼器的解碼收斂速度(decoding converging speed)的降低,進而可能導致解碼失敗。因此,如何偵測HRE位元,並且根據所偵測得的HRE位元解決發散的對數似然比值(以下亦稱,LLR)以提升LDPC解碼的效能,為此領域技術人員所關心的議題。
本發明提供一種位元判斷方法、記憶體控制電路單元與記憶體儲存裝置,可以識別一資料中的特殊位元(例如,HRE位元)。此外,還可以將對應該特殊位元的解碼參數調整為特定解碼 參數,進而避免該特殊位元在解碼的過程中影響其他位元的解碼,並且能夠提高解碼成功的機率
本發明提出一種位元判斷方法,用於可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個記憶胞,所述多個記憶胞中的每一個記憶胞具有多個儲存狀態的其中之一,所述多個儲存狀態中的每一個儲存狀態具有多個有效位元,所述位元判斷方法包括:藉由記憶體管理電路讀取所述多個記憶胞中第一記憶胞的第一儲存狀態以獲得所述第一儲存狀態的第一有效位元的第一數值;藉由記憶體管理電路讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的至少一第二有效位元的至少一第二數值;藉由錯誤檢查與校正電路根據所述第二數值執行第一解碼操作以獲得解碼後的所述第二有效位元的至少一第三數值;藉由記憶體管理電路根據所述第一儲存狀態以及所述第三數值所對應的第二儲存狀態,判斷所述第一有效位元是否為特殊位元;以及當第一有效位元為特殊位元時,藉由錯誤檢查與校正電路執行相對應的解碼操作。
在本發明的一實施例中,其中所述多個儲存狀態若反應在儲存狀態電壓分布圖中是依照順序分布,所述方法還包括:當判斷所述第一儲存狀態與所述第二儲存狀態若反應在所述儲存狀態電壓分布圖中的分布位置為不相鄰時,判斷所述第一有效位元為所述特殊位元。
在本發明的一實施例中,在讀取所述第一記憶胞的所述 第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的步驟之前,所述方法還包括:根據所述第一有效位元的所述第一數值執行第二解碼操作;以及當根據所述第一有效位元的所述第一數值執行所述第二解碼操作發生失敗時,執行讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的步驟。
在本發明的一實施例中,其中執行所述相對應的解碼操作的步驟包括:將對應於所述第一有效位元的所述第一數值的解碼參數調整為特定解碼參數,其中所述解碼參數用以在所述第二解碼操作中對所述第一有效位元的所述第一數值進行解碼;以及根據所述特定解碼參數以及所述第一有效位元的所述第一數值執行第三解碼操作以獲得解碼後的所述第一有效位元的第四數值。
在本發明的一實施例中,其中所述第一解碼操作、所述第二解碼操作以及所述第三解碼操作為軟位元解碼操作。
在本發明的一實施例中,其中所述解碼參數與所述特定解碼參數為所述軟位元解碼操作中的對數可能性比值(Log Likelihood Ratio,LLR)。
在本發明的一實施例中,其中在判斷所述第一有效位元為所述特殊位元的步驟之後,所述方法還包括:判斷所述第一有效位元為第四數值,其中所述第四數值不同於所述第一數值。
在本發明的一實施例中,其中所述可複寫式非揮發性記憶體模組包括多個字元線,所述多個記憶胞被配置於所述多個字 元線與多個位元線的交錯處,其中所述第一記憶胞位在所述多個字元線中的第一字元線上,且位在所述第一字元線上的其他記憶胞以及所述第一記憶胞形成實體程式化單元組,所述實體程式化單元組中的第一實體程式化單元用以儲存所述第一數值,所述實體程式化單元組中的至少一第二實體程式化單元用以儲存所述第二數值,且所述第一實體程式化單元不同於所述第二實體程式化單元。
在本發明提供一種記憶體控制電路單元,用於控制可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個記憶胞,所述多個記憶胞中的每一個記憶胞具有多個儲存狀態的其中之一,所述多個儲存狀態中的每一個儲存狀態具有多個有效位元,所述記憶體控制電路單元包括:主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。記憶體管理電路耦接至所述主機介面以及所述記憶體介面,並用以執行下述運作:讀取所述多個記憶胞中第一記憶胞的第一儲存狀態以獲得所述第一儲存狀態的第一有效位元的第一數值;讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的至少一第二有效位元的至少一第二數值;根據所述第二數值執行第一解碼操作以獲得解碼後的所述第二有效位元的至少一第三數值;根據所述第一儲存狀態以及所述第三數值所對應的第二儲存狀態,判斷所述第一有效位元是否為特殊位元;以及當第一有效位元為 特殊位元時,執行相對應的解碼操作。
在本發明的一實施例中,所述多個儲存狀態若反應在儲存狀態電壓分布圖中是依照一順序分布,當判斷所述第一儲存狀態與所述第二儲存狀態若反應在所述儲存狀態電壓分布圖中的分布位置為不相鄰時,所述記憶體管理電路更用以判斷所述第一有效位元為所述特殊位元。
在本發明的一實施例中,在讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的運作之前,所述記憶體管理電路還用以執行下述運作:根據所述第一有效位元的所述第一數值執行第二解碼操作;以及當根據所述第一有效位元的所述第一數值執行所述第二解碼操作發生失敗時,執行讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的運作。
在本發明的一實施例中,其中在執行所述相對應的解碼操作的運作中,所述記憶體管理電路還用以執行下述運作:將對應於所述第一有效位元的所述第一數值的解碼參數調整為特定解碼參數,其中所述解碼參數用以在所述第二解碼操作中對所述第一有效位元的所述第一數值進行解碼;以及根據所述特定解碼參數以及所述第一有效位元的所述第一數值執行第三解碼操作以獲得解碼後的所述第一有效位元的第四數值。
在本發明的一實施例中,其中所述第一解碼操作、所述 第二解碼操作以及所述第三解碼操作為軟位元解碼操作。
在本發明的一實施例中,其中所述解碼參數與所述特定解碼參數為所述軟位元解碼操作中的對數可能性比值(Log Likelihood Ratio,LLR)。
在本發明的一實施例中,其中在判斷所述第一有效位元為所述特殊位元的運作之後,所述記憶體管理電路更用以判斷所述第一有效位元為第四數值,其中所述第四數值不同於所述第一數值。
在本發明的一實施例中,其中所述可複寫式非揮發性記憶體模組包括多個字元線,所述多個記憶胞被配置於所述多個字元線與多個位元線的交錯處,其中所述第一記憶胞位在所述多個字元線中的第一字元線上,且位在所述第一字元線上的其他記憶胞以及所述第一記憶胞形成實體程式化單元組,所述實體程式化單元組中的第一實體程式化單元用以儲存所述第一數值,所述實體程式化單元組中的至少一第二實體程式化單元用以儲存所述第二數值,且所述第一實體程式化單元不同於所述第二實體程式化單元。
在本發明提供一種記憶體儲存裝置,包括:連接介面單元、可複寫式非揮發性記憶體模組以及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個記憶胞,所述多個記憶胞中的每一個記憶胞具有多個儲存狀態的其中之一,所述多個儲存狀態中的每一個儲存狀態具有 多個有效位元。記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,並且用以執行下述運作:讀取所述多個記憶胞中第一記憶胞的第一儲存狀態以獲得所述第一儲存狀態的第一有效位元的第一數值;讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的至少一第二有效位元的至少一第二數值;根據所述第二數值執行第一解碼操作以獲得解碼後的所述第二有效位元的至少一第三數值;根據所述第一儲存狀態以及所述第三數值所對應的第二儲存狀態,判斷所述第一有效位元是否為特殊位元;以及當第一有效位元為特殊位元時,執行相對應的解碼操作。
在本發明的一實施例中,其中所述多個儲存狀態若反應在一儲存狀態電壓分布圖中是依照一順序分布,當判斷所述第一儲存狀態與所述第二儲存狀態若反應在所述儲存狀態電壓分布圖中的分布位置為不相鄰時,所述記憶體控制電路單元更用以判斷所述第一有效位元為所述特殊位元。
在本發明的一實施例中,在讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的運作之前,所述記憶體控制電路單元還用以執行下述運作:根據所述第一有效位元的所述第一數值執行第二解碼操作;以及當根據所述第一有效位元的所述第一數值執行所述第二解碼操作發生失敗時,執行讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數 值的運作。
在本發明的一實施例中,其中在執行所述相對應的解碼操作的運作中,所述記憶體控制電路單元還用以執行下述運作:將對應於所述第一有效位元的所述第一數值的解碼參數調整為特定解碼參數,其中所述解碼參數用以在所述第二解碼操作中對所述第一有效位元的所述第一數值進行解碼;以及根據所述特定解碼參數以及所述第一有效位元的所述第一數值執行第三解碼操作以獲得解碼後的所述第一有效位元的第四數值。
在本發明的一實施例中,其中所述第一解碼操作、所述第二解碼操作以及所述第三解碼操作為軟位元解碼操作。
在本發明的一實施例中,其中所述解碼參數與所述特定解碼參數為所述軟位元解碼操作中的對數可能性比值(Log Likelihood Ratio,LLR)。
在本發明的一實施例中,其中在判斷所述第一有效位元為所述特殊位元的運作之後,所述記憶體控制電路單元更用以判斷所述第一有效位元為第四數值,其中所述第四數值不同於所述第一數值。
在本發明的一實施例中,其中所述可複寫式非揮發性記憶體模組包括多個字元線,所述多個記憶胞被配置於所述多個字元線與多個位元線的交錯處,其中所述第一記憶胞位在所述多個字元線中的第一字元線上,且位在所述第一字元線上的其他記憶胞以及所述第一記憶胞形成實體程式化單元組,所述實體程式化 單元組中的第一實體程式化單元用以儲存所述第一數值,所述實體程式化單元組中的至少一第二實體程式化單元用以儲存所述第二數值,且所述第一實體程式化單元不同於所述第二實體程式化單元。
基於上述,本發明的位元判斷方法、記憶體控制電路單元與記憶體儲存裝置可以用來判斷一資料中的一個位元是否屬於特殊位元(例如,HRE位元)。而根據所識別出的特殊位元,記憶體控制器可以將該特殊位元所對應的解碼參數調整為特定解碼參數,並根據該特殊位元的數值以及該特定解碼參數再次執行解碼操作以嘗試獲得成功解碼後的碼字。藉由上述方式,不但可以識別一資料中的特殊位元(例如,屬於特定錯誤的位元),還可以將對應該特殊位元的解碼參數調整為特定解碼參數,進而避免該特殊位元在解碼的過程中影響其他位元的解碼,並且能夠提高解碼成功的機率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
2202‧‧‧記憶胞陣列
2204‧‧‧字元線控制電路
2206‧‧‧位元線控制電路
2208‧‧‧行解碼器
2210‧‧‧資料輸入/輸出緩衝器
2212‧‧‧控制電路
502、C1~C8‧‧‧記憶胞
504‧‧‧位元線
506‧‧‧字元線
508‧‧‧共用源極線
512‧‧‧選擇閘汲極電晶體
514‧‧‧選擇閘源極電晶體
VA、VB、VC、VD、VE、VF、VG‧‧‧讀取電壓
400(0)~400(N)‧‧‧實體抹除單元
702‧‧‧記憶體管理電路
704‧‧‧主機介面
706‧‧‧記憶體介面
708‧‧‧錯誤檢查與校正電路
710‧‧‧緩衝記憶體
712‧‧‧電源管理電路
1410、1420、1510、1520‧‧‧分布
1430、1501~1506‧‧‧區域
1440~1444、V1~V5、V’1~V’5‧‧‧讀取電壓
b1~b5‧‧‧驗證位元
G1‧‧‧實體程式化單元組
LP1‧‧‧下實體程式化單元
MP1‧‧‧中實體程式化單元
UP1‧‧‧上實體程式化單元
BD1‧‧‧原始數值
DR1、DR2、DR3‧‧‧解碼結果
1800‧‧‧儲存狀態電壓分布圖
S1~S7‧‧‧區間
DIV_1、DIV_2‧‧‧解碼初始值
S2001‧‧‧讀取第一記憶胞的第一儲存狀態以獲得第一儲存狀態的第一有效位元的第一數值的步驟
S2003‧‧‧根據第一有效位元的第一數值與對應於第一數值的解碼參數,執行解碼操作以對第一有效位元的第一數值進行解碼的步驟
S2005‧‧‧判斷根據第一有效位元的第一數值執行解碼操作是否發生失敗的步驟
S2007‧‧‧讀取第一記憶胞的第一儲存狀態以獲得第一儲存狀態的第二有效位元的第二數值的步驟
S2009‧‧‧根據第二數值執行解碼操作以獲得解碼後的第二有效位元的第三數值的步驟
S2011‧‧‧根據第一儲存狀態以及第三數值所對應的第二儲存狀態,判斷第一有效位元是否為特殊位元的步驟
S2013‧‧‧當判斷第一儲存狀態與第二儲存狀態若反應在儲存狀態電壓分布圖中的分布位置為不相鄰時,判斷第一有效位元為特殊位元的步驟
S2015‧‧‧將對應於第一有效位元的第一數值的解碼參數調整為特定解碼參數的步驟
S2017‧‧‧根據特定解碼參數以及第一有效位元的第一數值執行解碼操作以獲得解碼後的第一有效位元的第四數值的步驟
圖1是根據本發明的一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據本發明的另一範例實施例所繪示的主機系統、記 憶體儲存裝置及I/O裝置的示意圖。
圖3是根據本發明的另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據本發明的一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
圖6是根據一範例實施例所繪示的記憶胞陣列的示意圖。
圖7是根據一範例實施例所繪示儲存於記憶胞陣列中的寫入資料所對應的閘極電壓的統計分配圖。
圖8是根據一範例實施例所繪示之程式化記憶胞的示意圖。
圖9是根據一範例實施例所繪示的從記憶胞中讀取資料的示意圖。
圖10是根據另一範例實施例所繪示的從記憶胞中讀取資料的示意圖。
圖11是根據本範例實施例所繪示之記憶胞儲存架構與實體抹除單元的範例示意圖。
圖12是根據本發明範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
圖13是根據一範例實施例所繪示之記憶體控制電路單元的概概要方塊圖。
圖14是根據一範例實施例繪示硬位元模式解碼的示意圖。
圖15是根據一範例實施例繪示軟位元模式解碼的示意圖。
圖16是根據一範例實施例繪示執行位元判斷方法的範例的示意圖。
圖17是根據一範例實施例繪的解碼後的第二有效位元的數值的示意圖。
圖18是根據一範例實施例繪的儲存狀態電壓分布圖的示意圖。
圖19是根據一範例實施例繪的將HRE位元的解碼參數設定為特定解碼參數的示意圖。
圖20是根據一範例實施例所繪示的位元判斷方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(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可為其所使用的SD卡32、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)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package,eMCP)介面標準、小型快閃(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個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組406中的記憶胞是以陣列的方式設置。以下以二維陣列來對記憶胞陣列進行說明。但是,在此須注意的是,以下範例實施例只是記憶胞陣列的一種範例,在其他的範例實施例中,記憶胞陣列的配置方式可以被調整以符合實務上的需求。
圖5是根據一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。圖6是根據一範例實施例所繪示的記憶胞陣列的示意圖。
請同時參照圖5與圖6,可複寫式非揮發性記憶體模組406包括記憶胞陣列2202、字元線控制電路2204、位元線控制電路2206、行解碼器(column decoder)2208、資料輸入/輸出緩衝器2210與控制電路2212。
在本範例實施例中,記憶胞陣列2202可包括用以儲存資料的多個記憶胞502、多個選擇閘汲極(select gate drain,SGD)電晶體512與多個選擇閘源極(select gate source,SGS)電晶體514、以 及連接此些記憶胞的多條位元線504、多條字元線506、與共用源極線508(如圖6所示)。記憶胞502是以陣列方式(或立體堆疊的方式)配置在位元線504與字元線506的交叉點上。當從記憶體控制電路單元404接收到寫入指令或讀取指令時,控制電路2212會控制字元線控制電路2204、位元線控制電路2206、行解碼器2208、資料輸入/輸出緩衝器2210來寫入資料至記憶胞陣列2202或從記憶胞陣列2202中讀取資料,其中字元線控制電路2204用以控制施予至字元線506的電壓,位元線控制電路2206用以控制施予至位元線504的電壓,行解碼器2208依據指令中的列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器2210用以暫存資料。
可複寫式非揮發性記憶體模組406中的記憶胞是以臨界電壓的改變來儲存多位元(bits)。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,因而改變了記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為“把資料寫入至記憶胞”或“程式化記憶胞”。隨著臨界電壓的改變,記憶胞陣列2202的每一記憶胞具有多個儲存狀態。並且透過讀取電壓可以判斷記憶胞是屬於哪一個儲存狀態,藉此取得記憶胞所儲存的位元。
圖7是根據一範例實施例所繪示儲存於記憶胞陣列中的寫入資料所對應的閘極電壓的統計分配圖。
請參照圖7,以MLC NAND型快閃記憶體為例,隨著不同的臨界電壓,每一記憶胞具有4種儲存狀態,並且此些儲存狀 態分別地代表"11"、"10"、"00"與"01"等位元。換言之,每一個儲存狀態包括最低有效位元(Least Significant Bit,LSB)以及最高有效位元(Most Significant Bit,MSB)。在本範例實施例中,儲存狀態(即,"11"、"10"、"00"與"01")中從左側算起之第1個位元為LSB,而從左側算起之第2個位元為MSB。因此,在此範例實施例中,每一記憶胞可儲存2個位元。必須瞭解的是,圖7所繪示的臨界電壓及其儲存狀態的對應僅為一個範例。在本發明另一範例實施例中,臨界電壓與儲存狀態的對應亦可是隨著臨界電壓越大而以"11"、"10"、"01"與"00"排列,或是其他排列。此外,在另一範例時實例中,亦可定義從左側算起之第1個位元為MSB,而從左側算起之第2個位元為LSB。
圖8是根據一範例實施例所繪示之程式化記憶胞的示意圖。
請參照圖8,在本範例實施例中,記憶胞的程式化是透過脈衝寫入/驗證臨界電壓方法來完成。具體來說,欲將資料寫入至記憶胞時,記憶體控制電路單元404會設定初始寫入電壓以及寫入脈衝時間,並且指示可複寫式非揮發性記憶體模組406的控制電路2212使用所設定的初始寫入電壓以及寫入脈衝時間來程式化記憶胞,以進行資料的寫入。之後,記憶體控制電路單元404會施加驗證電壓至控制閘極來判斷記憶胞是否導通,進而判斷記憶胞是否已處於正確的儲存狀態(具有正確的臨界電壓)。倘若記憶胞未被程式化至正確的儲存狀態時,記憶體控制電路單元404指示 控制電路2212以目前施予的寫入電壓加上一增量階躍脈衝程式(Incremental-step-pulse programming,ISPP)調整值作為新的寫入電壓並且依據新的寫入電壓與寫入脈衝時間再次來程式化記憶胞。反之,倘若記憶胞已被程式化至正確的儲存狀態時,則表示資料已被正確地寫入至記憶胞。例如,初始寫入電壓會被設定為16伏特(Voltage,V),寫入脈衝時間會被設定為18微秒(microseconds,μs)並且增量階躍脈衝程式調整值被設定為0.6V,但本發明不限於此。
圖9是根據一範例實施例所繪示的從記憶胞中讀取資料的示意圖,其是以MLC NAND型快閃記憶體為例。
請參照圖9,記憶胞陣列2202之記憶胞的讀取運作是藉由施予讀取電壓於控制閘極,藉由記憶胞的導通狀態,來識別記憶胞儲存之資料。驗證位元(VA)是用以指示施予讀取電壓VA時記憶胞是否為導通;驗證位元(VC)是用以指示施予讀取電壓VC時記憶胞是否為導通;驗證位元(VB)是用以指示施予讀取電壓VB時記憶胞是否為導通。在此假設驗證位元是”1”時表示對應的記憶胞導通,而驗證位元是”0”時表示對應的記憶胞沒有導通。如圖9所示,透過驗證位元(VA)~(VC)可以判斷記憶胞是處於哪一個儲存狀態,進而取得所儲存的位元。。
圖10是根據另一範例實施例所繪示的從記憶胞中讀取資料的示意圖。
請參照圖10,以TLC NAND型快閃記憶體為例,每一個 儲存狀態包括左側算起之第1個位元的最低有效位元LSB、從左側算起之第2個位元的中間有效位元(Center Significant Bit,CSB)以及從左側算起之第3個位元的最高有效位元MSB。在此範例中,依照不同的臨界電壓,記憶胞具有8種儲存狀態(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"與"011")。藉由施加讀取電壓VA~VG於控制閘極,可以識別記憶胞所儲存的位元。
在此需說明的是,以MLC NAND型快閃記憶體為例,排列在同一條字元線上的數個記憶胞可組成2個實體程式化單元,其中由此些記憶胞之LSB所組成的實體程式化單元稱為下實體程式化單元,並且由此些記憶胞之MSB所組成的實體程式化單元稱為上實體程式化單元。以TLC NAND型快閃記憶體為例,排列在同一條字元線上的數個記憶胞可組成3個實體程式化單元,其中由此些記憶胞之LSB所組成的實體程式化單元稱為下實體程式化單元,由此些記憶胞之CSB所組成的實體程式化單元稱為中實體程式化單元,並且由此些記憶胞之MSB所組成的實體程式化單元稱為上實體程式化單元。
圖11是根據本範例實施例所繪示之記憶胞儲存架構與實體抹除單元的範例示意圖。
請參照圖11,以TLC NAND型快閃記憶體為例,一個實體抹除單元是由多個實體程式化單元組所組成,其中每個實體程式化單元組包括由排列在同一條字元線上的數個記憶胞所組成的下實體程式化單元、中實體程式化單元與上實體程式化單元。例如,在實體抹除單元中,屬於下實體程式化單元的第0個實體程式化單元、屬於中 實體程式化單元的第1個實體程式化單元和屬於上實體程式化單元的第2個實體程式化單元會被視為一個實體程式化單元組。類似地,第3、4、5個實體程式化單元會被視為一個實體程式化單元組,並且以此類推其他實體程式化單元亦是依據此方式被區分為多個實體程式化單元組。也就是說,在圖11的範例實施例中,實體抹除單元總共有258個實體程式化單元,且由於排列在同一條字元線上的數個記憶胞所組成的下實體程式化單元、中實體程式化單元與上實體程式化單元會組成一個實體程式化單元組,故圖11的實體抹除單元總共可以分成86個實體程式化單元組。然而需注意的是,本發明並不用於限定實體抹除單元中的實體程式化單元或實體程式化單元組的個數。
圖12是根據本發明範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
請參照圖12,可複寫式非揮發性記憶體模組406的記憶胞502會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元400(0)~400(N)。具體來說,同一個字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一個字元線上的實體程式化單元可被分類為下實體程式化單元與上實體程式化單元。例如,每一記憶胞的LSB是屬於下實體程式化單元,並且每一記憶胞的MSB是屬於上實體程式化單元。在此範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程 式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。在本範例實施例中,每一個資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,本發明並不限制實體扇的大小以及個數。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。
圖13是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。必須瞭解的是,圖13所示之記憶體控制電路單元的結構僅為一範例,本發明不以此為限。
請參照圖13,記憶體控制電路單元404包括記憶體管理電路702、主機介面704、記憶體介面706及錯誤檢查與校正電路708。
記憶體管理電路702用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路702具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路702或任何包含於記憶體控制電路單元404中的電路元件之操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路702的控制指令是 以韌體型式來實作。例如,記憶體管理電路702具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路702的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路702具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路702的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路702的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路702包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的記憶胞或其群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令序列以將資料寫入至可 複寫式非揮發性記憶體模組406中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令序列以從可複寫式非揮發性記憶體模組406中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組406中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組406執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路702還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組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 code)或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路702會將對應此寫入指令的資料與對應的錯誤更正碼或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路702從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼或錯誤檢查碼,並且錯誤檢查與校正電路708會 依據此錯誤更正碼或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
在本發明一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體710與電源管理電路712。緩衝記憶體710是耦接至記憶體管理電路702並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路712是耦接至記憶體管理電路702並且用以控制記憶體儲存裝置100的電源。
圖14是根據一範例實施例繪示硬位元模式解碼的示意圖。
請參照圖14,在此以SLC快閃記憶體為例,分布1410與分布1420是用來表示多個記憶胞的儲存狀態,而分布1410與1420分別代表著不同的儲存狀態。這些記憶胞可以屬於同樣的實體程式化單元或是不同的實體程式化單元,本發明並不在此限。在此假設當一個記憶胞屬於分布1410時,此記憶胞所儲存的是位元“1”;當記憶胞屬於分布1420時,此記憶胞儲存的是位元“0”。當記憶體管理電路702以讀取電壓1440來讀取記憶胞時,記憶體管理電路702會取得驗證位元,其是用來指示此記憶胞是否為導通。在此假設記憶胞導通時驗證位元是“1”,反之則是“0”,但本發明並不在此限。若此驗證位元為“1”,則記憶體管理電路702會判斷此記憶胞屬於分布1410,反之則是分布1420。然而,分布1410與分布1420在區域1430中是重疊的。也就是說,有若干個 記憶胞應該是屬於分布1410但被辨識為分布1420,並且有若干個記憶胞應該是屬於分布1420但被辨識為分布1410。
在此範例實施例中,當要讀取上述的記憶胞時,記憶體管理電路702會先選擇一讀取電壓(例如,讀取電壓1441)來讀取這些記憶胞以取得記憶胞的驗證位元。錯誤檢查與校正電路708會根據記憶胞的驗證位元來執行包含一機率解碼演算法的解碼操作,以產生多個解碼位元,而此些解碼位元可以組成一個碼字。
在本範例實施例中,機率解碼演算法是把一個符號(symbol)可能的解碼結果當做一個候選人(candidate),並且在解碼過程中輸入的資訊或者中間運算過程的數值是以這些候選人的機率值或是候選人之間機率的比例來表示,進而決定最有可能的候選人是哪一個。舉例而言,如果一個符號有兩個候選人(位元0 and 1),機率解碼演算法是各自依照0或者1發生的機率去計算最有可能的候選人,或者是以0與1之間機率的比例去計算最有可能的候選人。假如是N個候選人,例如在有限場(Finite Field)下可能的數值為0~N-1(N為正整數,每一個候選人是代表多個位元),則機率解碼演算法是各自計算N個候選人的機率來決定最有可能的候選人,或者是以其中一個數值的機率作為分母去計算相對的機率比例來決定最有可能的候選人。在一範例實施例中,上述機率的比例也可以用對數的形式來表示。
在本範例實施例中,機率解碼演算法可以是迴旋碼(convolutional code)、渦輪碼(turbo code)、低密度奇偶檢查碼 (low-density parity-check code)或其他具有機率解碼特徵之演算法。舉例來說,在迴旋碼與渦輪碼中,可以用有限狀態機(finite state machine)來編碼與解碼,並且在本範例實施例中會根據驗證位元來計算最有可能的多個狀態,進而產生解碼位元。以下將以低密度奇偶檢查碼為例進行說明。
若使用的是低密度奇偶檢查碼,在根據驗證位元來執行解碼操作時,記憶體管理電路702還會根據每一個驗證位元來取得每一個記憶胞的解碼初始值。例如,若驗證位元是“1”,記憶體管理電路702會設定對應的記憶胞的解碼初始值為n;若驗證位元是“0”,則解碼初始值為-n。其中n為正數,但本發明並不限制正整數n的值為多少。在一實施例中,n例如是8。
接下來,錯誤檢查與校正電路708會根據這些解碼初始值來執行低密度奇偶檢查演算法的疊代解碼以產生包含多個解碼位元的碼字。在疊代解碼中,這些解碼初始值會不斷地被更新以代表一個機率值,而這個機率值亦被稱為可靠度(realiability)或信心度(belief)。被更新的解碼初始值會被轉換成多個解碼位元,錯誤檢查與校正電路708會把這些解碼位元當作一個向量,並將此向量與低密度奇偶檢查演算法的奇偶檢查矩陣(parity-check matrix)做模2(module 2)的矩陣相乘,以取得多個校驗子(syndrome)。這些校驗子可以用來判斷解碼位元所組成的碼字是否為有效的碼字。若解碼位元所組成的碼字是有效的碼字,則疊代解碼會停止,並且錯誤檢查與校正電路708會輸出這些解碼位元 所組成的碼字。若解碼位元組成無效的碼字,則會繼續更新解碼初始值並且產生新的解碼位元以進行下一次疊代。當疊代次數到達預設疊代次數時,疊代解碼會停止。錯誤檢查與校正電路708會利用最後一次疊代所產生的解碼位元來判斷是否解碼成功。例如,若根據校驗子判斷最後一次疊代所產生的解碼位元組成有效的碼字,則是解碼成功;若第一解碼位元組成無效的碼字,則表示解碼失敗。
在另一範例實施例中解碼操作所包括的機率解碼演算法是迴旋碼與渦輪碼,並且解碼操作中還會包括其他的錯誤校正碼。例如,迴旋碼與渦輪碼可以搭配任意演算法的奇偶碼一起使用。在解碼操作中迴旋碼或渦輪碼的解碼部分執行完畢以後,奇偶碼可以用來判斷所產生的解碼位元所組成的碼字是否為有效的碼字,進而判斷是否解碼成功。
不論使用何種錯誤校正碼,若解碼失敗,表示這些記憶胞儲存有不可更正的錯誤位元。若解碼失敗,記憶體管理電路702會重新取得另一讀取電壓,並用此另一讀取電壓(例如讀取電壓1442)來讀取這些記憶胞,以重新取得記憶胞的驗證位元。記憶體管理電路702會根據重新取得的驗證位元來執行上述的解碼操作以取得由多個解碼位元組成的另一碼字。在一範例實施例中,錯誤檢查與校正電路708會根據該另一碼字所對應的校驗子判斷所述另一碼字是否為有效的碼字。若所述另一碼字非為有效的碼字時,記憶體管理電路702會判斷解碼失敗。若重新取得讀取電壓 的次數沒有超過預設次數,則記憶體管理電路702會再重新取得其他取得電壓(例如,讀取電壓1443),並且根據重新取得的讀取電壓1443讀取記憶胞,以重新取得驗證位元並執行解碼操作。
換句話說,當有不可更正的錯誤位元時,透過重新取得讀取電壓,一些記憶胞的驗證位元會被改變,進而改變機率解碼演算法中若干個機率值,進而有機會改變了解碼操作的解碼結果。邏輯上來說,上述重新取得讀取電壓的動作是要翻轉(flip)一個碼字中的若干位元,並對新的碼字重新解碼。在一些情況下,在翻轉前無法解碼的碼字(有不可更正的錯誤位元),有可能在翻轉後可以解碼。並且,在一範例實施例中記憶體管理電路702會嘗試解碼數次,直到嘗試的次數超過預設次數為止。然而,本發明並不限制預設次數為多少。
值得注意的是,在圖14中所舉的是SLC快閃記憶體的例子,但重新取得讀取電壓的步驟也可以適用於MLC或是TLC快閃記憶體。如圖9所示,改變讀取電壓VA會翻轉一個記憶胞的LSB,而改變讀取電壓VB或VC則可以翻轉一個記憶胞的MSB。因此,改變讀取電壓VA、VB或VC都可以將一個碼字改變為另一個碼字。改變碼字的結果也適用於圖10的TLC快閃記憶體。本發明並不限制所使用的是SLC、MLC或是TLC快閃記憶體。
在圖14的範例實施例中,記憶胞的解碼初始值是根據一個驗證位元而被分為兩個數值(例如,n與-n)。根據兩種數值來執行的疊代解碼亦被稱為硬位元模式(hard bit mode)的疊代解碼。然 而,上述改變讀取電壓的步驟也可以應用在軟位元模式(soft bit mode)的疊代解碼,其中每一個記憶胞的解碼初始值是根據多個驗證位元所決定。值得注意的是,不論是硬位元模式或是軟位元模式,在疊代解碼中都會計算位元的機率值,因此都屬於機率解碼演算法。
圖15是根據一範例實施例繪示軟位元模式解碼的示意圖。
如上所述,當施加讀取電壓於記憶胞的控制閘極以後,隨著記憶胞是否導通,記憶體管理電路702所取得的驗證位元會是“0”或是“1”。在此假設若記憶胞沒有導通時則對應的驗證位元是“0”,反之則是“1”。在圖15中,記憶體管理電路702會施加讀取電壓V1~V5至記憶胞以取得5個驗證位元。具體來說,讀取電壓V1是對應到驗證位元b1;讀取電壓V2是對應到驗證位元b2;讀取電壓V3是對應到驗證位元b3;讀取電壓V4是對應到驗證位元b4;讀取電壓V5是對應到驗證位元b5。若一個記憶胞的臨界電壓是在區間1501,則從驗證位元b1至驗證位元b5,記憶體管理電路702所取得的驗證位元會是“11111”;若記憶胞的臨界電壓是在區間1502,則驗證位元會是“01111”;若記憶胞的臨界電壓是在區間1503,則驗證位元會是“00111”;若記憶胞的臨界電壓是在區間1504,則驗證位元會是“00011”;若記憶胞的臨界電壓是在區間1505,則驗證位元會是“00001”;若記憶胞的臨界電壓是在區間1506,則驗證位元會是“00000”。
在此範例實施例中,讀取電壓V1~V5的其中之一會被設定為正負號(sign)讀取電壓。此正負號讀取電壓是用來決定解碼初始值的正負號。例如,若讀取電壓V3為正負號讀取電壓,則區間1501~1503所對應的解碼初始值會小於0,並且區間1504~1506所對應的解碼初始值會大於0。此外,在每一個區間中,可以事先計算出記憶胞屬於分布1510的機率與屬於分布1520的機率。根據這兩個機率可以計算出對數可能性比值(Log Likelihood Ratio,LLR),而此對數可能性比值可用來決定解碼初始值的絕對值的大小。因此,記憶體管理電路702是根據正負號讀取電壓與驗證位元b1~b5取得記憶胞在軟位元模式下的解碼初始值。舉例來說,區間1501~1503所對應的解碼初始值會可以分別為-8、-4與-3,區間1504~1506所對應的解碼初始值會可以分別為3、4與8。在一範例實施例中,各個區間所對應的解碼初始值可以事先被計算出來並且儲存在一個查找表中。記憶體管理電路702可以將驗證位元b1~b5輸入此查找表中,藉此取得對應的解碼初始值。換言之,實作上記憶體管理電路702也可以根據驗證位元b1~b5,而不參照正負號讀取電壓,便取得記憶胞在軟位元模式下的解碼初始值。此外,若設定不同的正負號讀取電壓,記憶體管理電路702可以使用不同的查找表。
在記憶體管理電路702取得解碼初始值以後,錯誤檢查與校正電路708會對解碼初始值執行疊代解碼以取得由多個解碼位元組成的碼字,並利用這些由多個解碼位元組成的碼字來判斷 是否解碼成功。若解碼失敗,記憶體管理電路702可以重新取得另一讀取電壓。
在重新取得另一讀取電壓以後,每一個區間所對應的對數可能性比值也會改變,因此記憶體管理電路702會使用不同的查找表以取得解碼初始值。邏輯上來說,改變讀取電壓是為了翻轉一個碼字中若干個位元,並且給予不同的解碼初始值(改變數值大小或是正負號),使得改變前無法解碼的碼字(有不可更正的錯誤位元),有可能在改變後可以解碼。
在圖15的範例實施例中,一個軟位元模式解碼(亦稱為,軟位元解碼操作)的解碼初始值是由5個驗證位元(讀取電壓)所決定。然而,在其他範例實施例中,一個軟位元模式解碼的解碼初始值也可以由數目更多或更少的驗證位元來決定,本發明並不在此限。
然而需注意的是,一般來說,使用HRE位元執行軟位元模式解碼時,會導致位元錯誤率的錯誤地面區(error floor region)與解碼器的解碼收斂速度(decoding converging speed)的降低,進而可能導致解碼失敗。因此,本發明提出的位元判斷方法可以在一碼字解碼失敗時,找出(或判斷)該碼字中的HRE位元,並且將對應該HRE位元的LLR(亦稱為,解碼參數)調整為一特定數值並根據調整後的LLR所對應的解碼初始值重新對該碼字進行解碼以嘗試獲得解碼成功的碼字。特別是,將對應該HRE位元的LLR調整為特定數值可以避免該HRE位元在解碼的過程中影響其他位元的 解碼,進而能夠提高解碼成功的機率。在此需說明的是,雖然本申請是以找出碼字中的特殊位元(例如,前述的HRE位元)為範例來進行說明,然而本發明並不用於限制特殊位元的錯誤發生種類。在其他實施例中,前述的特殊位元也可以是由其他非HRE所產生的錯誤。
以下以找出碼字中的HRE位元的實施例進行說明。
圖16是根據一範例實施例繪示執行位元判斷方法的範例的示意圖。
請參照圖16,假設可複寫式非揮發性記憶體模組406中具有一實體程式化單元組G1。實體程式化單元組G1具有下實體程式化單元LP1、中實體程式化單元MP1以及上實體程式化單元UP1。實體程式化單元組G1由位在同一字元線上的記憶胞C1~C8所構成。記憶胞C1~C8的LSB可以組成下實體程式化單元LP1,記憶胞C1~C8的CSB可以組成中實體程式化單元MP1,記憶胞C1~C8的MSB可以組成上實體程式化單元UP1。
假設記憶體管理電路702讀取中實體程式化單元MP1的資料並且記憶體管理電路702(或錯誤檢查與校正電路708)根據此資料執行軟位元解碼操作(在此稱為,第二解碼操作)。當記憶體管理電路702根據中實體程式化單元MP1的資料執行第二解碼操作發生失敗時,可以執行本發明的位元判斷方法來判斷中實體程式化單元MP1的資料中的是否包含HRE位元。
舉例來說,如圖16所示,在判斷中實體程式化單元MP1 的資料中的是否包含HRE位元的過程中,需先讀取出實體程式化單元MP1(亦稱為,第一實體程式化單元)所屬的實體程式化單元組G1中的其他實體程式化單元的資料。也就是說,記憶體管理電路702需讀取出下實體程式化單元LP1以及上實體程式化單元UP1的資料。
在此以判斷中實體程式化單元MP1的第1個位元是否為HRE位元來舉例說明。中實體程式化單元MP1的第1個位元的數值為記憶胞C1(在此稱為,第一記憶胞)的CSB(在此稱為,第一有效位元)的數值(在此稱為,第一數值),而此第一數值為“1”。第一數值可以是在前述的第二解碼操作之前所讀出或者是在判斷中實體程式化單元MP1的第1個位元是否HRE位元的過程中所讀出,在此不做限制。而在本發明的位元判斷方法中,記憶體管理電路702會讀取下實體程式化單元LP1以獲得下實體程式化單元LP1的第1個位元,而下實體程式化單元LP1的第1個位元的數值為記憶胞C1的LSB的數值。類似地,記憶體管理電路702會讀取上實體程式化單元UP1以獲得上實體程式化單元UP1的第1個位元,而上實體程式化單元UP1的第1個位元的數值為記憶胞C1的MSB的數值。其中,記憶胞C1的LSB與MSB可以統稱為「第二有效位元」,且此第二有效位元的數值可以統稱為「第二數值」。
換句話說,以記憶胞C1的觀點來看,前述的「第一有效位元」與「第二有效位元」的值代表記憶胞目前的儲存狀態(亦稱 為,第一儲存狀態)。以圖16的範例來說,記憶胞C1目前的儲存狀態為“110”。
在取得前述的第二數值後,記憶體管理電路702會根據第二數值執行軟位元解碼操作(在此稱為,第一解碼操作)以獲得解碼後的第二有效位元的數值(在此稱為,第三數值),並根據前述的第一儲存狀態以及第三數值所對應的儲存狀態(在此稱為,第二儲存狀態),判斷第一有效位元是否為數於HRE位元(亦稱為,特殊位元)。
詳細來說,圖17是根據一範例實施例繪的解碼後的第二有效位元的數值的示意圖。
請參照圖17,接續圖16的範例,記憶體管理電路702(或錯誤檢查與校正電路708)例如會分別對下實體程式化單元LP1以及上實體程式化單元UP1所儲存的資料執行軟位元解碼操作(即上述的第一解碼操作)。在執行第一解碼操作之前,記憶胞C1的LSB(即,下實體程式化單元LP1的第1個位元)的數值為“1”,而記憶胞C1的MSB(即,上實體程式化單元UP1的第1個位元)數值為“0”,如圖17的原始數值BD1所示。在執行第一解碼操作後,記憶胞C1的LSB與記憶胞C1的MSB可能會有三種解碼結果。例如,在執行第一解碼操作後,記憶胞C1的LSB的數值仍為“1”,而記憶胞C1的MSB數值變為“1”,如圖17的解碼結果DR1所示。或者,在執行第一解碼操作後,記憶胞C1的LSB的數值變為“0”,而記憶胞C1的MSB數值仍為“0”,如圖17的解 碼結果DR2所示。或者,在執行第一解碼操作後,記憶胞C1的LSB的數值變為“0”,而記憶胞C1的MSB數值變為“1”,如圖17的解碼結果DR3所示。
接著,記憶體管理電路702可以根據解碼結果DR1、解碼結果DR2或解碼結果DR3所對應的儲存狀態(即,前述的第二儲存狀態)以及記憶胞C1的前述的第一儲存狀態,判斷記憶胞C1的CSB(即,中實體程式化單元的第1個位元)是否為HRE位元。特別是,當第一儲存狀態與第二儲存狀態在一儲存狀態電壓分布圖中的分部為不相鄰(例如,第一儲存狀態與第二儲存狀態間隔一個以上的儲存狀態)時,記憶體管理電路702可以判斷記憶胞C1的CSB(即,中實體程式化單元的第1個位元)為HRE位元。
詳細來說,圖18是根據一範例實施例繪的儲存狀態電壓分布圖的示意圖。
請參照圖18,圖18的儲存狀態電壓分布圖1800與圖10相似,皆是根據臨界電壓將記憶胞畫分為多個(例如,8個)儲存狀態,而此些儲存狀態在儲存狀態電壓分布圖1800中按照一順序排列。例如,儲存狀態電壓分布圖1800中的儲存狀態依序以"111"、"110"、"100"、"101"、"001"、"000"、"010"與"011"的順序排列。由於記憶胞C1在解碼前的儲存狀態為“110”,因此在圖18的儲存狀態電壓分布圖1800中,記憶胞C1在解碼前的儲存狀態是位在區間S1中。當記憶胞C1的LSB與MSB的解碼結果為圖17中的解碼結果DR1時,在圖18的儲存狀態電壓分布圖1800中,解 碼結果DR1是對應至區間S2及S3,而區間S2及S3所對應的儲存狀態的LSB與MSB的值分別為“1”與“1”。需注意的是。由於位在區間S2的儲存狀態“111”在儲存狀態電壓分布圖1800中是與記憶胞C1在解碼前的儲存狀態(即,“110”)相鄰,因此記憶體管理電路702並無法確認記憶胞C1的CSB的錯誤是否是屬於HRE的錯誤,在此情況下,記憶體管理電路702不會根據解碼結果DR1將記憶胞C1的CSB(即,中實體程式化單元MP1的第1個位元)識別為HRE位元。
當記憶胞C1的LSB與MSB的解碼結果為圖17中的解碼結果DR2時,在圖18的儲存狀態電壓分布圖1800中,解碼結果DR2是對應至區間S4及S5,而區間S4及S5所對應的儲存狀態的LSB與MSB的值分別為“0”與“0”。由於位在區間S4及S5的儲存狀態在儲存狀態電壓分布圖1800中分別與記憶胞C1在解碼前的儲存狀態(即,“110”)不相鄰且相距至少一個儲存狀態以上,因此記憶體管理電路702可以判斷記憶胞C1的CSB的錯誤是屬於HRE的錯誤,並且根據解碼結果DR2將記憶胞C1的CSB(即,中實體程式化單元MP1的第1個位元)識別為HRE位元。
當記憶胞C1的LSB與MSB的解碼結果為圖17中的解碼結果DR3時,在圖18的儲存狀態電壓分布圖1800中,解碼結果DR3是對應至區間S6及S7,而區間S6及S7所對應的儲存狀態的LSB與MSB的值分別為“0”與“1”。由於位在區間S6及S7的儲存狀態在儲存狀態電壓分布圖1800中分別與記憶胞C1在解 碼前的儲存狀態(即,“110”)不相鄰且相距至少一個儲存狀態以上,因此記憶體管理電路702可以判斷記憶胞C1的CSB的錯誤是屬於HRE的錯誤,並且根據解碼結果DR3將記憶胞C1的CSB(即,中實體程式化單元MP1的第1個位元)識別為HRE位元。
當一個位元被識別為HRE位元時,記憶體管理電路702(或錯誤檢查與校正電路708)會將對應於此位元在前次解碼時的LLR(亦稱為,解碼參數)調整為一特定的數值(亦稱為,特定解碼參數),並且根據此特定解碼參數以及前述被識別為HRE位元的數值再次執行解碼操作(亦稱為,第三解碼操作)以獲得該HRE位元在解碼後的數值(亦稱為,第四數值)。
更詳細來說,圖19是根據一範例實施例繪的將HRE位元的解碼參數設定為特定解碼參數的示意圖。
請參照圖19,接續圖17的範例,假設在前述的第一解碼操作中,用於對中實體程式化單元MP1中的資料進行軟位元解碼的解碼初始值DIV_1為“3 -8 8 8 -3 8 -8 -8”。而假設中實體程式化單元MP1中第1、4、6個位元(即,記憶胞C1、C4與C6的CSB)被識別為HRE位元,記憶體管理電路702會將對應於中實體程式化單元MP1中第1、4、6個位元的LLR設定為特定的數值(例如,0)以產生解碼初始值DIV_2,其中解碼初始值DIV_2為“0 -8 8 0 -3 0 -8 -8”。記憶體管理電路702會再次根據解碼初始值DIV_2與中實體程式化單元MP1中的資料進行軟位元解碼以嘗試獲得解碼後的中實體程式化單元MP1中的資料的各個數值。特別是,將 該HRE位元的LLR調整為前述特定的數值(例如,將LLR調低)可以避免HRE位元在解碼的過程中影響其他位元的解碼,進而能夠提高解碼成功的機率。
需注意的是,在上述圖19的實施例中是描述當一個位元被識別為HRE位元時,記憶體管理電路702會將對應於此位元在前次解碼時的解碼參數調整為特定的數值並且根據此特定解碼參數再次執行解碼操作。然而本發明不限於此,在其他實施例中,當一個位元被識別為HRE位元時,記憶體管理電路702也可以直接翻轉該位元的數值(例如,“0”)為另一數值(例如,“1”)。舉例來說,當記憶體管理電路702經由前述方式將圖16中記憶胞C1的CSB(即,中實體程式化單元MP1的第1個位元)識別為HRE位元時,記憶體管理電路702可以也可以直接翻轉記憶胞C1的CSB以將記憶胞C1的CSB的原始數值(例如,“1”)判斷為另一數值(例如,“0”,在此稱為第四數值)。
需說明的是,上述的範例是用於根據一記憶胞解碼後的LSB與MSB判斷該記憶胞的CSB是否為HRE位元,並且當該CSB為HRE位元時將對應該CSB的解碼參數調整為特定解碼參數後再次進行解碼。然而本發明不限於此,在另一實施例中,也可以根據一記憶胞解碼後的LSB與CSB判斷該記憶胞的MSB是否為HRE位元,並且當該MSB為HRE位元時將對應該MSB的解碼參數調整為特定解碼參數後再次進行解碼。此外,在另一實施例中,也可以根據一記憶胞解碼後的CSB與MSB判斷該記憶胞的LSB 是否為HRE位元,並且當該LSB為HRE位元時將對應該LSB的解碼參數調整為特定解碼參數後再次進行解碼。此外,雖然上述範例是以TLC NAND型快閃記憶體來進行描述,而本發明不限於此。在其他實施例中,上述的位元判斷方法也可以應用在MLC NAND型快閃記憶體中。而本發明也不用於限定上述的特定解碼參數為何。
圖20是根據一範例實施例所繪示的位元判斷方法的流程圖。
請參照圖20,在步驟S2001中,記憶體管理電路702讀取第一記憶胞的第一儲存狀態以獲得第一儲存狀態的第一有效位元的第一數值。在步驟S2003中,記憶體管理電路702根據第一有效位元的第一數值與對應於第一數值的解碼參數,執行解碼操作以對第一有效位元的第一數值進行解碼。在步驟S2005中,記憶體管理電路702判斷根據第一有效位元的第一數值執行解碼操作是否發生失敗。若沒有發生失敗,則結束圖20的流程。然而,當根據第一有效位元的第一數值執行解碼操作發生失敗時,在步驟S2007中,記憶體管理電路702讀取第一記憶胞的第一儲存狀態以獲得第一儲存狀態的第二有效位元的第二數值。在步驟S2009中,記憶體管理電路702根據第二數值執行解碼操作以獲得解碼後的第二有效位元的第三數值。在步驟S2011中,記憶體管理電路702根據第一儲存狀態以及第三數值所對應的第二儲存狀態,判斷第一有效位元是否為特殊位元。當判斷第一儲存狀態與第二 儲存狀態若反應在儲存狀態電壓分布圖中的分布位置為相鄰時,記憶體管理電路702會判斷第一有效位元非為特殊位元,因此結束圖20的流程。然而,當判斷第一儲存狀態與第二儲存狀態若反應在儲存狀態電壓分布圖中的分布位置為不相鄰時,在步驟S2013中,記憶體管理電路702判斷第一有效位元為特殊位元。之後,在步驟S2015中,記憶體管理電路702將對應於第一有效位元的第一數值的解碼參數調整為特定解碼參數,並且在步驟S2017中,記憶體管理電路702根據此特定解碼參數以及第一有效位元的第一數值執行解碼操作以獲得解碼後的第一有效位元的第四數值。
綜上所述,本發明的位元判斷方法、記憶體控制電路單元與記憶體儲存裝置可以用來判斷一資料中的一個位元是否屬於特殊位元(例如,HRE位元)。而根據所識別出的特殊位元,記憶體控制器可以將該特殊位元所對應的解碼參數調整為特定解碼參數,並根據該特殊位元的數值以及該特定解碼參數再次執行解碼操作以嘗試獲得成功解碼後的碼字。藉由上述方式,不但可以識別一資料中的特殊位元(例如,屬於特定錯誤的位元),還可以將對應該特殊位元的解碼參數調整為特定解碼參數,進而避免該特殊位元在解碼的過程中影響其他位元的解碼,並且能夠提高解碼成功的機率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍 當視後附的申請專利範圍所界定者為準。

Claims (24)

  1. 一種位元判斷方法,用於一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個記憶胞,所述多個記憶胞中的每一個記憶胞具有多個儲存狀態的其中之一,所述多個儲存狀態中的每一個儲存狀態具有多個有效位元,所述位元判斷方法包括:藉由一記憶體管理電路讀取所述多個記憶胞中一第一記憶胞的一第一儲存狀態以獲得所述第一儲存狀態的一第一有效位元的一第一數值;藉由所述記憶體管理電路讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的第二有效位元所表示的第二數值;藉由一錯誤檢查與校正電路根據所述第二數值執行一第一解碼操作以獲得解碼後的所述第二有效位元的至少一第三數值;藉由所述記憶體管理電路根據所述第一儲存狀態以及所述第三數值所對應的一第二儲存狀態,判斷所述第一有效位元是否為一特殊位元;以及當所述第一有效位元為所述特殊位元時,藉由所述錯誤檢查與校正電路執行一相對應的解碼操作。
  2. 如申請專利範圍第1項所述的位元判斷方法,其中所述多個儲存狀態若反應在一儲存狀態電壓分布圖中是依照一順序分布,所述方法還包括:當判斷所述第一儲存狀態與所述第二儲存狀態若反應在所述儲存狀態電壓分布圖中的分布位置為不相鄰時,判斷所述第一有效位元為所述特殊位元。
  3. 如申請專利範圍第2項所述的位元判斷方法,其中在讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的步驟之前,所述方法還包括:根據所述第一有效位元的所述第一數值執行一第二解碼操作;以及當根據所述第一有效位元的所述第一數值執行所述第二解碼操作發生失敗時,執行讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的步驟。
  4. 如申請專利範圍第3項所述的位元判斷方法,其中執行所述相對應的解碼操作的步驟包括:將對應於所述第一有效位元的所述第一數值的一解碼參數調整為一特定解碼參數,其中所述解碼參數用以在所述第二解碼操作中對所述第一有效位元的所述第一數值進行解碼;以及根據所述特定解碼參數以及所述第一有效位元的所述第一數值執行一第三解碼操作以獲得解碼後的所述第一有效位元的一第四數值。
  5. 如申請專利範圍第4項所述的位元判斷方法,其中所述第一解碼操作、所述第二解碼操作以及所述第三解碼操作為軟位元解碼操作。
  6. 如申請專利範圍第5項所述的位元判斷方法,其中所述解碼參數與所述特定解碼參數為所述軟位元解碼操作中的對數可能性比值(Log Likelihood Ratio,LLR)。
  7. 如申請專利範圍第3項所述的位元判斷方法,其中在判斷所述第一有效位元為所述特殊位元的步驟之後,所述方法還包括:判斷所述第一有效位元為一第四數值,其中所述第四數值不同於所述第一數值。
  8. 如申請專利範圍第1項所述的位元判斷方法,其中所述可複寫式非揮發性記憶體模組包括多個字元線,所述多個記憶胞被配置於所述多個字元線與多個位元線的交錯處,其中所述第一記憶胞位在所述多個字元線中的一第一字元線上,且位在所述第一字元線上的其他記憶胞以及所述第一記憶胞形成一實體程式化單元組,所述實體程式化單元組中的一第一實體程式化單元用以儲存所述第一數值,所述實體程式化單元組中的至少一第二實體程式化單元用以儲存所述第二數值,且所述第一實體程式化單元不同於所述第二實體程式化單元。
  9. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個記憶胞,所述多個記憶胞中的每一個記憶胞具有多個儲存狀態的其中之一,所述多個儲存狀態中的每一個儲存狀態具有多個有效位元,所述記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至所述可複寫式非揮發性記憶體模組;一記憶體管理電路,耦接至所述主機介面以及所述記憶體介面,其中所述記憶體管理電路用以讀取所述多個記憶胞中一第一記憶胞的一第一儲存狀態以獲得所述第一儲存狀態的一第一有效位元的一第一數值,其中所述記憶體管理電路更用以讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的第二有效位元所表示的第二數值,其中所述記憶體管理電路更用以根據所述第二數值執行一第一解碼操作以獲得解碼後的所述第二有效位元的至少一第三數值,其中所述記憶體管理電路更用以根據所述第一儲存狀態以及所述第三數值所對應的一第二儲存狀態,判斷所述第一有效位元是否為一特殊位元,以及其中當所述第一有效位元為所述特殊位元時,所述記憶體管理電路更用以執行一相對應的解碼操作。
  10. 如申請專利範圍第9項所述的記憶體控制電路單元,其中所述多個儲存狀態若反應在一儲存狀態電壓分布圖中是依照一順序分布,當判斷所述第一儲存狀態與所述第二儲存狀態若反應在所述儲存狀態電壓分布圖中的分布位置為不相鄰時,所述記憶體管理電路更用以判斷所述第一有效位元為所述特殊位元。
  11. 如申請專利範圍第10項所述的記憶體控制電路單元,其中在讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的運作之前,所述記憶體管理電路更用以根據所述第一有效位元的所述第一數值執行一第二解碼操作,以及當根據所述第一有效位元的所述第一數值執行所述第二解碼操作發生失敗時,所述記憶體管理電路更用以執行讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的運作。
  12. 如申請專利範圍第11項所述的記憶體控制電路單元,其中在執行所述相對應的解碼操作的運作中,所述記憶體管理電路更用以將對應於所述第一有效位元的所述第一數值的一解碼參數調整為一特定解碼參數,其中所述解碼參數用以在所述第二解碼操作中對所述第一有效位元的所述第一數值進行解碼,以及所述記憶體管理電路更用以根據所述特定解碼參數以及所述第一有效位元的所述第一數值執行一第三解碼操作以獲得解碼後的所述第一有效位元的一第四數值。
  13. 如申請專利範圍第12項所述的記憶體控制電路單元,其中所述第一解碼操作、所述第二解碼操作以及所述第三解碼操作為軟位元解碼操作。
  14. 如申請專利範圍第13項所述的記憶體控制電路單元,其中所述解碼參數與所述特定解碼參數為所述軟位元解碼操作中的對數可能性比值(Log Likelihood Ratio,LLR)。
  15. 如申請專利範圍第11項所述的記憶體控制電路單元,其中在判斷所述第一有效位元為所述特殊位元的運作之後,所述記憶體管理電路更用以判斷所述第一有效位元為一第四數值,其中所述第四數值不同於所述第一數值。
  16. 如申請專利範圍第9項所述的記憶體控制電路單元,其中所述可複寫式非揮發性記憶體模組包括多個字元線,所述多個記憶胞被配置於所述多個字元線與多個位元線的交錯處,其中所述第一記憶胞位在所述多個字元線中的一第一字元線上,且位在所述第一字元線上的其他記憶胞以及所述第一記憶胞形成一實體程式化單元組,所述實體程式化單元組中的一第一實體程式化單元用以儲存所述第一數值,所述實體程式化單元組中的至少一第二實體程式化單元用以儲存所述第二數值,且所述第一實體程式化單元不同於所述第二實體程式化單元。
  17. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個記憶胞,所述多個記憶胞中的每一個記憶胞具有多個儲存狀態的其中之一,所述多個儲存狀態中的每一個儲存狀態具有多個有效位元;以及一記憶體控制電路單元,耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以讀取所述多個記憶胞中一第一記憶胞的一第一儲存狀態以獲得所述第一儲存狀態的一第一有效位元的一第一數值,其中所述記憶體控制電路單元更用以讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的第二有效位元所表示的第二數值,其中所述記憶體控制電路單元更用以根據所述第二數值執行一第一解碼操作以獲得解碼後的所述第二有效位元的至少一第三數值,其中所述記憶體控制電路單元更用以根據所述第一儲存狀態以及所述第三數值所對應的一第二儲存狀態,判斷所述第一有效位元是否為一特殊位元,以及其中當所述第一有效位元為所述特殊位元時,所述記憶體控制電路單元更用以執行一相對應的解碼操作。
  18. 如申請專利範圍第17項所述的記憶體儲存裝置,其中所述多個儲存狀態若反應在一儲存狀態電壓分布圖中是依照一順序分布,當判斷所述第一儲存狀態與所述第二儲存狀態若反應在所述儲存狀態電壓分布圖中的分布位置為不相鄰時,所述記憶體控制電路單元更用以判斷所述第一有效位元為所述特殊位元。
  19. 如申請專利範圍第18項所述的記憶體儲存裝置,其中在讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的運作之前,所述記憶體控制電路單元更用以根據所述第一有效位元的所述第一數值執行一第二解碼操作,以及當根據所述第一有效位元的所述第一數值執行所述第二解碼操作發生失敗時,所述記憶體控制電路單元更用以執行讀取所述第一記憶胞的所述第一儲存狀態以獲得所述第一儲存狀態的所述第二有效位元的所述第二數值的運作。
  20. 如申請專利範圍第19項所述的記憶體儲存裝置,其中在執行所述相對應的解碼操作的運作中,所述記憶體控制電路單元更用以將對應於所述第一有效位元的所述第一數值的一解碼參數調整為一特定解碼參數,其中所述解碼參數用以在所述第二解碼操作中對所述第一有效位元的所述第一數值進行解碼,以及所述記憶體控制電路單元更用以根據所述特定解碼參數以及所述第一有效位元的所述第一數值執行一第三解碼操作以獲得解碼後的所述第一有效位元的一第四數值。
  21. 如申請專利範圍第20項所述的記憶體儲存裝置,其中所述第一解碼操作、所述第二解碼操作以及所述第三解碼操作為軟位元解碼操作。
  22. 如申請專利範圍第21項所述的記憶體儲存裝置,其中所述解碼參數與所述特定解碼參數為所述軟位元解碼操作中的對數可能性比值(Log Likelihood Ratio,LLR)。
  23. 如申請專利範圍第19項所述的記憶體儲存裝置,其中在判斷所述第一有效位元為所述特殊位元的運作之後,所述記憶體控制電路單元更用以判斷所述第一有效位元為一第四數值,其中所述第四數值不同於所述第一數值。
  24. 如申請專利範圍第17項所述的記憶體儲存裝置,其中所述可複寫式非揮發性記憶體模組包括多個字元線,所述多個記憶胞被配置於所述多個字元線與多個位元線的交錯處,其中所述第一記憶胞位在所述多個字元線中的一第一字元線上,且位在所述第一字元線上的其他記憶胞以及所述第一記憶胞形成一實體程式化單元組,所述實體程式化單元組中的一第一實體程式化單元用以儲存所述第一數值,所述實體程式化單元組中的至少一第二實體程式化單元用以儲存所述第二數值,且所述第一實體程式化單元不同於所述第二實體程式化單元。
TW107125570A 2018-07-24 2018-07-24 位元判斷方法、記憶體控制電路單元以及記憶體儲存裝置 TWI675374B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW107125570A TWI675374B (zh) 2018-07-24 2018-07-24 位元判斷方法、記憶體控制電路單元以及記憶體儲存裝置
US16/120,314 US10628259B2 (en) 2018-07-24 2018-09-03 Bit determining method, memory control circuit unit and memory storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107125570A TWI675374B (zh) 2018-07-24 2018-07-24 位元判斷方法、記憶體控制電路單元以及記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TWI675374B true TWI675374B (zh) 2019-10-21
TW202008377A TW202008377A (zh) 2020-02-16

Family

ID=69023966

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107125570A TWI675374B (zh) 2018-07-24 2018-07-24 位元判斷方法、記憶體控制電路單元以及記憶體儲存裝置

Country Status (2)

Country Link
US (1) US10628259B2 (zh)
TW (1) TWI675374B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201135736A (en) * 2010-04-14 2011-10-16 Phison Electronics Corp Methods for calculating compensating voltage and adjusting threshold voltage and memory apparatus and controller
US20150095741A1 (en) * 2013-09-30 2015-04-02 Phison Electronics Corp. Decoding method, memory storage device and memory controlling circuit unit
TWI540586B (zh) * 2014-04-15 2016-07-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置、記憶體控制電路單元
TW201737262A (zh) * 2016-04-11 2017-10-16 愛思開海力士有限公司 資料儲存裝置及其操作方法
TW201802818A (zh) * 2016-07-07 2018-01-16 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101411976B1 (ko) * 2007-07-09 2014-06-27 삼성전자주식회사 플래시 메모리 시스템 및 그것의 에러 정정 방법
KR101398212B1 (ko) * 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
US8848438B2 (en) * 2010-10-05 2014-09-30 Stec, Inc. Asymmetric log-likelihood ratio for MLC flash channel
US9311183B2 (en) * 2014-03-01 2016-04-12 Sandisk Enterprise Ip Llc Adaptive target charge to equalize bit errors across page types
KR102617832B1 (ko) * 2016-08-12 2023-12-27 에스케이하이닉스 주식회사 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201135736A (en) * 2010-04-14 2011-10-16 Phison Electronics Corp Methods for calculating compensating voltage and adjusting threshold voltage and memory apparatus and controller
TWI447733B (zh) * 2010-04-14 2014-08-01 Phison Electronics Corp 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器
US20150095741A1 (en) * 2013-09-30 2015-04-02 Phison Electronics Corp. Decoding method, memory storage device and memory controlling circuit unit
TWI540586B (zh) * 2014-04-15 2016-07-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置、記憶體控制電路單元
TW201737262A (zh) * 2016-04-11 2017-10-16 愛思開海力士有限公司 資料儲存裝置及其操作方法
TW201802818A (zh) * 2016-07-07 2018-01-16 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
TW202008377A (zh) 2020-02-16
US20200034232A1 (en) 2020-01-30
US10628259B2 (en) 2020-04-21

Similar Documents

Publication Publication Date Title
TWI508082B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
TWI540586B (zh) 解碼方法、記憶體儲存裝置、記憶體控制電路單元
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
TWI582779B (zh) 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元
US10108490B1 (en) Decoding method, memory storage device and memory control circuit unit
US20190163567A1 (en) Decoding method, memory storage device and memory control circuit unit
TWI695378B (zh) 位元標記方法、記憶體控制電路單元以及記憶體儲存裝置
TWI523018B (zh) 解碼方法、記憶體儲存裝置、記憶體控制電路單元
TWI668695B (zh) 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置
US10193569B2 (en) Decoding method, memory storage device and memory control circuit unit
US10685711B1 (en) Decoding method, memory controlling circuit unit and memory storage device
KR20200139571A (ko) 오류 정정 디코더 및 이를 포함하는 메모리 시스템
TWI691962B (zh) 解碼方法、記憶體控制電路單元與記憶體儲存裝置
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
US11146295B1 (en) Decoding method, memory storage device, and memory controlling circuit unit
TWI675374B (zh) 位元判斷方法、記憶體控制電路單元以及記憶體儲存裝置
CN110795268B (zh) 比特判断方法、存储器控制电路单元以及存储器存储装置
CN113496752B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN113138947B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
US11145372B2 (en) Decoding method, memory controlling circuit unit, and memory storage device
TWI742509B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
CN109960603B (zh) 比特标记方法、存储器控制电路单元以及存储器存储装置
CN111258791B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元