TWI479495B - 資料讀取方法、記憶體控制器及記憶體儲存裝置 - Google Patents

資料讀取方法、記憶體控制器及記憶體儲存裝置 Download PDF

Info

Publication number
TWI479495B
TWI479495B TW100119408A TW100119408A TWI479495B TW I479495 B TWI479495 B TW I479495B TW 100119408 A TW100119408 A TW 100119408A TW 100119408 A TW100119408 A TW 100119408A TW I479495 B TWI479495 B TW I479495B
Authority
TW
Taiwan
Prior art keywords
data
error
likelihood ratio
memory
read
Prior art date
Application number
TW100119408A
Other languages
English (en)
Other versions
TW201250696A (en
Inventor
Chien Fu Tseng
Kuo Hsin Lai
Original Assignee
Phison Electronics Corp
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 Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW100119408A priority Critical patent/TWI479495B/zh
Priority to US13/190,487 priority patent/US8832526B2/en
Publication of TW201250696A publication Critical patent/TW201250696A/zh
Application granted granted Critical
Publication of TWI479495B publication Critical patent/TWI479495B/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/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/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/612Aspects specific to channel or signal-to-noise ratio estimation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

資料讀取方法、記憶體控制器及記憶體儲存裝置
本發明是有關於一種記憶體系統,且特別是有關於一種具有較佳的錯誤位元校正能力之資料讀取方法,以及使用該方法之記憶體控制器及記憶體儲存裝置。
目前的快閃記憶體主要分為兩種,分別為反或快閃記憶體(NOR Flash Memory)與反及快閃記憶體(NAND Flash Memory)。其中,反及快閃記憶體存在著兩種不同的儲存模式,即多層記憶胞(Multi-Level Cell,MLC)及單層記憶胞(Single-Level Cell,SLC)。單層記憶胞在每個記憶胞中儲存1個資料位元,而多層記憶胞則可在每個記憶胞中儲存2個以上的資料位元。
一般而言,由資料位元線(Bit Line)與字元線(Word Line)串起的記憶胞陣列(memory cell array),其在讀取或寫入資料到指定的記憶胞時,其餘非指定的記憶胞則會受到干擾(disturb),進而改變這些記憶胞寫入的臨界電壓。另外,長期閒置、記憶體漏電、或是多次使用(Erase or Program)而造成磨耗(Wear)等情形,亦會使得記憶胞寫入的臨界電壓改變。此時,將會造成寫入資料在讀出時發生錯誤。
另一方面,記憶體儲存裝置會需要使用錯誤校正能力較佳的錯誤校正技術(例如,低密度同位檢查碼(Low Density Parity Check Code,LDPC code))來對資料進行錯誤校正程序。記憶體儲存裝置依據其所儲存的一查詢表取得軟資訊(Soft Information)對應到的對數似然比(Log Likelihood Ratio,LLR),接著再以LDPC碼進行錯誤更正的動作。然而,記憶體儲存裝置中的可複寫式非揮發性記憶體會隨著其儲存次數(erase-program times)的增加而改變其錯誤特性,因此若要取得最佳的對數似然比,則必須不斷地統計可複寫式非揮發性記憶體的錯誤特性,此舉將對系統造成相當大的負擔。
有鑑於此,本發明提供一種資料讀取方法,其具有較佳的錯誤位元校正能力,並可依據所取得之錯誤位元資訊選擇性地調整對數似然比查詢表或記憶胞之門檻值電壓。
本發明提供一種記憶體控制器,其具有較佳的錯誤位元校正能力,並可依據所取得之錯誤位元資訊選擇性地調整對數似然比查詢表或記憶胞之門檻值電壓。
本發明提供一種記憶體儲存裝置,其具有較佳的錯誤位元校正能力,並可依據所取得之錯誤位元資訊選擇性地調整對數似然比查詢表或記憶胞之門檻值電壓。
本發明提供一種資料讀取方法,用於一可複寫式非揮發性記憶體模組。可複寫式非揮發性記憶體模組具有多個實體區塊,且每一實體區塊具有多個實體頁面。資料讀取方法包括如下步驟。分割每一實體頁面為多個位元資料區。在每一實體頁面當中至少一位元資料區相較於其他位元資料區具有不同的資料長度。寫入一資料至位元資料區,其中每一位元資料區對應一錯誤校正碼框,且在錯誤校正碼框當中,對應於至少一位元資料區的錯誤校正碼框為具有較短的資料長度。自位元資料區讀取資料。根據所讀取之資料執行一資料處理程序以獲得一錯誤位元資訊。根據錯誤位元資訊,調整一對數似然比查詢表或記憶胞的至少一門檻值電壓。
在本發明之一實施例中,上述之分割每一實體頁面的步驟包括將至少一位元資料區配置於每一實體頁面的初始位置。對應於至少一位元資料區的錯誤校正碼框具有較佳的錯誤位元校正能力。
在本發明之一實施例中,上述之調整門檻值電壓的步驟包括根據錯誤位元資訊計算門檻值電壓的補償電壓。藉由補償電壓來調整至少一門檻值電壓。
在本發明之一實施例中,上述之資料包括多筆位元資料。根據所讀取之資料執行資料處理程序以獲得錯誤位元資訊的步驟包括比對所讀取的資料與所寫入的資料以獲得一第一錯誤位元數及一第二錯誤位元數,其中計算補償電壓是依據下列公式:
其中,x代表補償電壓,g代表一常數,error1代表第一錯誤位元數,error2代表第二錯誤位元數。
在本發明之一實施例中,上述之可複寫式非揮發性記憶體模組具有多個記憶胞且每一記憶胞具有多個儲存狀態,被讀取的資料對應一第一儲存狀態,其中根據所讀取之資料執行資料處理程序以獲得錯誤位元資訊的步驟包括對所讀取之資料執行一錯誤校正程序以獲得所讀取之資料在寫入時所對應的一第二儲存狀態。
在本發明之一實施例中,上述之調整對數似然比查詢表的步驟包括在所讀取之符合一錯誤統計總數的儲存狀態中,取得在寫入時為第二儲存狀態而在讀取時為第一儲存狀態的一儲存錯誤總數。根據錯誤統計總數、儲存狀態的一儲存狀態數量,以及儲存錯誤總數執行一對數運算,以產生被讀取的資料的一對數似然比。計算對數似然比是依據下列公式:
其中LLR_c表示對數似然比,N表示錯誤統計總數、S表示儲存狀態數量,而W表示儲存錯誤總數。
在本發明之一實施例中,上述之可複寫式非揮發性記憶體模組配置於一記憶體儲存裝置。記憶體儲存裝置包括對數似然比查詢表。對數似然比查詢表記錄被讀取的資料所對應的一當前對數似然比,其中調整對數似然比查詢表的步驟包括利用對數似然比取代對數似然比查詢表中的當前對數似然比。
本發明提供一種記憶體控制器,包括一主機系統介面、一記憶體介面、一記憶體管理電路以及一對數似然比估算電路。主機系統介面耦接一主機系統。記憶體介面耦接一可複寫式非揮發性記憶體模組。可複寫式非揮發性記憶體模組具有多個實體區塊,且每一實體區塊具有多個實體頁面。記憶體管理電路耦接至主機系統介面與記憶體介面。記憶體管理電路分割每一實體頁面為多個位元資料區;寫入一資料至位元資料區;自位元資料區讀取資料;根據所讀取之資料執行一資料處理程序;以及根據錯誤位元資訊,調整記憶胞的至少一門檻值電壓。對數似然比估算電路耦接記憶體管理電路。對數似然比估算電路根據錯誤位元資訊調整一對數似然比查詢表。在每一實體頁面當中至少一位元資料區相較於其他位元資料區具有不同的資料長度。以及,每一位元資料區的資料對應一錯誤校正碼框,在錯誤校正碼框當中,對應至少一位元資料區的錯誤校正碼框為具有較短的資料長度。
在本發明之一實施例中,上述之記憶體管理電路在分割每一實體頁面時,將資料長度較短的至少一位元資料區配置於每一實體頁面的初始位置。對應於資料長度較短的至少一位元資料區的錯誤校正碼框具有較佳的錯誤位元校正能力。
在本發明之一實施例中,上述之記憶體管理電路根據錯誤位元資訊計算門檻值電壓的補償電壓,並藉由補償電壓來調整至少一門檻值電壓。
在本發明之一實施例中,上述之記憶體管理電路執行資料處理程序係比對所讀取的資料與所寫入的資料以獲得一第一錯誤位元數及一第二錯誤位元數。計算補償電壓是依據下列公式:
其中,x代表補償電壓,g一代表常數,error1代表第一錯誤位元數,error2代表第二錯誤位元數。
在本發明之一實施例中,上述之可複寫式非揮發性記憶體模組具有多個記憶胞且每一記憶胞具有多個儲存狀態。被讀取的資料對應一第一儲存狀態。記憶體管理電路執行資料處理程序係對所讀取之該資料執行一錯誤校正程序以獲得所讀取之該資料在寫入時所對應的一第二儲存狀態。
在本發明之一實施例中,上述之對數似然比估算電路在所讀取之符合一錯誤統計總數的儲存狀態中,取得在寫入時為第二儲存狀態而在讀取時為第一儲存狀態的一儲存錯誤總數,並根據錯誤統計總數、儲存狀態的一儲存狀態數量,以及儲存錯誤總數執行一對數運算,以產生被讀取的資料的一對數似然比,其中計算對數似然比是依據下列公式:
其中LLR_c表示對數似然比,N表示錯誤統計總數、S表示儲存狀態數量,而W表示儲存錯誤總數。
在本發明之一實施例中,上述之記憶體管理電路具有對數似然比查詢表。對數似然比查詢表記錄被讀取的資料所對應的一當前對數似然比,且對數似然比估算電路利用對數似然比取代對數似然比查詢表中的當前對數似然比。
本發明提供一種記憶體儲存裝置,包括一連接器、一可複寫式非揮發性記憶體模組以及一記憶體控制器。連接器耦接一主機系統。可複寫式非揮發性記憶體模組具有多個實體區塊,且每一實體區塊具有多個實體頁面。記憶體控制器耦接至可複寫式非揮發性記憶體模組與連接器。記憶體控制器分割每一實體頁面為多個位元資料區;寫入一資料至位元資料區;自位元資料區讀取資料;根據所讀取之資料執行一資料處理程序;以及根據錯誤位元資訊,調整一對數似然比查詢表或記憶胞的至少一門檻值電壓。在每一實體頁面當中至少其中之一位元資料區相較於其他位元資料區具有不同的資料長度,以及每一位元資料區的資料對應一錯誤校正碼框,在錯誤校正碼框當中,對應於至少一位元資料區的錯誤校正碼框為具有較短的資料長度。
在本發明之一實施例中,上述之記憶體控制器在分割每一實體頁面時,將資料長度較短的至少一位元資料區配置於每一實體頁面的初始位置。對應於資料長度較短的至少一位元資料區的錯誤校正碼框具有較佳的錯誤位元校正能力。
在本發明之一實施例中,上述之記憶體控制器調整門檻值電壓係根據錯誤位元資訊計算門檻值電壓的補償電壓,並藉由補償電壓來調整至少一門檻值電壓。
在本發明之一實施例中,上述之記憶體控制器執行資料處理程序係比對所讀取的資料與所寫入的資料以獲得一第一錯誤位元數及一第二錯誤位元數。計算補償電壓是依據下列公式:
其中,x代表補償電壓,g代表一常數,error1代表第一錯誤位元數,error2代表第二錯誤位元數。
在本發明之一實施例中,上述之可複寫式非揮發性記憶體模組具有多個記憶胞且每一記憶胞具有多個儲存狀態。被讀取的資料對應一第一儲存狀態。記憶體控制器執行資料處理程序係對所讀取之資料執行一錯誤校正程序以獲得所讀取之資料在寫入時所對應的一第二儲存狀態。
在本發明之一實施例中,上述之記憶體控制器在所讀取之符合一錯誤統計總數的些儲存狀態中,取得在寫入時為第二儲存狀態而在讀取時為第一儲存狀態的一儲存錯誤總數,並根據錯誤統計總數、儲存狀態的一儲存狀態數量,以及儲存錯誤總數執行一對數運算,以產生被讀取的資料的一對數似然比。計算對數似然比是依據下列公式:
其中LLR_c表示對數似然比,N表示錯誤統計總數、S表示儲存狀態數量,而W表示儲存錯誤總數。
在本發明之一實施例中,上述之記憶體控制器具有對數似然比查詢表,對數似然比查詢表記錄被讀取的資料所對應的一當前對數似然比,且記憶體控制器利用對數似然比取代對數似然比查詢表中的當前對數似然比。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本揭露中,每一實體頁面中具有至少一資料位元區與其他資料位元區具有不同的資料長度。對應於資料位元區資料長度較短的錯誤校正碼框具有較佳的錯誤位元校正能力。因此,記憶體儲存裝置對所讀取的資料進行錯誤校正程序時,可確保該等資料能有效地被校正。進而,記憶體儲存裝置可根據所獲得的錯誤位元資訊,選擇性地調整對數似然比查詢表或記憶胞的門檻值電壓。以下將以數個範例實施例與圖式來更詳細描述本發明。
圖1A是根據本發明實施例繪示使用可複寫式非揮發性記憶體儲存裝置的主機系統。
請參照圖1A,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖2B的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中可複寫式非揮發性記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的處理可將資料寫入至可複寫式非揮發性記憶體儲存裝置100或從可複寫式非揮發性記憶體儲存裝置100中讀取資料。例如,可複寫式非揮發性記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機1000可實質地為可儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394標準、平行先進附件(Parallel Advanced Technology Attachment,PATA)標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型可複寫式非揮發性(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他可複寫式非揮發性記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據本發明範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括一儲存單元252。儲存單元252是耦接至記憶體管理電路202可用以儲存系統資料、暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路254。電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
在本發明一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤校正碼,並且錯誤檢查與校正電路256會依據此錯誤校正碼對所讀取的資料執行錯誤檢查與校正程序。
值得說明的是,在本發明之一範例實施例中,可複寫式非揮發性記憶體模組的每一實體頁面至少其中之一位元資料區與其他位元資料區具有不同的資料長度。對應於位元資料區資料長度較短的錯誤校正碼框具有較佳的錯誤位元校正能力。因此,錯誤檢查與校正電路256對所讀取的資料進行錯誤校正程序時,可確保該等資料能有效地被檢查與校正。進而,記憶體管理電路202可根據所獲得的錯誤位元資訊,選擇性地調整對數似然比查詢表或記憶胞的門檻值電壓。
一般而言,以長度為8KB的實體頁面為例,若記憶體管理電路202將該實體頁面平均分割為8個位元資料區,則每一位元資料區的可儲存的資料長度約為1KB。然而,在此種情況下,即使搭配42位元資料BCH碼(Bose、Ray-Chaudhuri、Hocquenghem code)的錯誤校正碼框,其校正能力(correction capability)仍無法達到10-14 位元錯誤率(bit error rate,BER)的解碼輸出(decoder output)。
圖4是根據本發明範例實施例所繪示之可複寫式非揮發性記憶體模組實體頁面之位元區資料的架構示意圖。
請參照圖4,本實施例之記憶體管理電路202在分割每一實體頁面時,係將其分割為具有不同資料長度的位元資料區。特別是,資料長度較短的一位元資料區係配置於每一實體頁面的初始位置,其中對應於資料長度較短的該位元資料區之錯誤校正碼框具有較佳的錯誤位元校正能力。
舉例而言,在本實施例中,記憶體管理電路202係將每一實體頁面分割為6個位元資料區。在該等位元資料區當中,初始位置的位元資料區長度為0.5KB,其他的位元資料區長度則為1.5KB。在此,搭配每一位元資料區者,係56位元資料BCH碼的錯誤校正碼框。因此,針對長度為0.5KB的位元資料區,56位元資料BCH碼的錯誤校正碼框具有較佳的錯誤位元校正能力。對應資料長度較短的位元資料區之錯誤校正碼框可稱之為「領導錯誤校正碼框」(leading ECC frame)。
對於長度較短的位元資料區而言,56位元資料BCH碼的領導錯誤校正碼框可提供10-14 位元錯誤率的解碼輸出。進而,錯誤檢查與校正電路256對該長度較短的位元資料區進行讀取時,其所讀取的資料在進行錯誤校正程序時,可確保該等資料能更有效地被檢查與校正。因此,錯誤檢查與校正電路256可提供適當的錯誤位元資訊,以利記憶體管理電路202根據所獲得的錯誤位元資訊,選擇性地調整其對數似然比查詢表或記憶胞的門檻值電壓。
惟應注意者係,本實施例之資料長度較短的位元資料區雖配置於每一實體頁面的初始位置,但本發明並不限於此。在其他實施例中,資料長度較短的位元資料區與領導錯誤校正碼框亦可配置於任兩個長度為1.5KB的位元資料區之間。此外,本發明之每一實體頁面的位元資料區數目及長度也不限於本實施例所例示者。
在記憶體管理電路202獲得適當的錯誤位元資訊之後,即可選擇性地調整其對數似然比查詢表或記憶胞的門檻值電壓。以下將以不同的範例實施例與圖式來更詳細描述如何調整其對數似然比查詢表及記憶胞的門檻值電壓。
圖5是根據本發明範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖3及圖5,記憶體儲存裝置100會與主機系統1000一起使用,以使主機系統1000可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。
記憶體控制器104包括記憶體管理電路202、主機介面204、記憶體介面206、儲存單元252、電源管理電路254與錯誤檢查與校正電路256。其中記憶體控制器104的結構與功能已描述如上,在此不重複描述。
記憶體模組106用以儲存主機系統1000所寫入之資料。在本實施例中,記憶體模組106例如為MLC快閃記憶體模組,其包括記憶胞陣列502、字元線控制電路504、資料位元線控制電路506、欄解碼器(column decoder)508、資料輸入/輸出緩衝器510與控制電路512。
記憶胞陣列502包括用以儲存資料的多個記憶胞(圖未示)、連接此些記憶胞的多條資料位元線(圖未示)、多條字元線與共用源極線(圖未示)。記憶胞是以陣列方式配置在資料位元線與字元線的交叉點上。當從記憶體控制器104接收到寫入指令或讀取資料時,控制電路512會控制字元線控制電路504、資料位元線控制電路506、欄解碼器508、資料輸入/輸出緩衝器510來寫入資料至記憶體陣列502或從記憶體陣列502中讀取資料,其中字元線控制電路504用以控制施予至字元線的字元線電壓,資料位元線控制電路506用以控制資料位元線,欄解碼器508依據指令中的解碼列位址以選擇對應的資料位元線,並且資料輸入/輸出緩衝器510用以暫存資料。
如前所述在本實施例中,記憶體模組106為MLC快閃記憶體,其使用多個浮動電壓來代表多位元資料(bits)的資料。具體來說,記憶胞陣列502的每一記憶胞具有多個儲存狀態,並且此些儲存狀態是以多個位元資料讀取電壓來區分。在第三範例實施例中,控制電路512亦會控制字元線控制電路504、資料位元線控制電路506、欄解碼器508與資料輸入/輸出緩衝器510以執行資料之寫入與讀取。
圖6是根據本發明範例實施例繪示的調整門檻值電壓的方法的流程圖。
請參照圖6,在步驟S602中,記憶體管理電路202寫入資料至記憶體模組106之位元資料區。接著,在步驟S604中,記憶體管理電路202自記憶體模組106之位元資料區讀取資料。此資料是對應至記憶體模組106的其中一種儲存狀態,而兩個儲存狀態的電壓範圍是由一門檻值電壓來區分。
在本實施例中,當記憶體管理電路202偵測到記憶體模組106發生不可校正錯誤時,記憶體管理電路202便會控制錯誤檢查與校正電路256開始執行調整門檻值電壓的方法。例如,錯誤檢查與校正電路256利用錯誤校正碼框執行錯誤校正程序來得到錯誤位元數。而記憶體管理電路202會在所發生的錯誤位元數超出一第一預設值時,判定記憶體模組106發生不可校正錯誤。
在本實施例中,記憶體管理電路202會針對記憶體模組106的儲存狀態來決定用來進行測試的資料,也就是將這些資料寫入至記憶體模組106再讀取出來進行比對,藉以調整門檻值電壓。而在其他實施例中,亦可以寫入一般的資料來調整門檻值電壓。也就是說,記憶體管理電路202在將資料寫入至記憶體模組106時,會將所寫入的資料記錄下來,之後自記憶體模組106讀取資料時,才能夠比對所讀取的資料與所寫入的資料。
之後,在步驟S606中,記憶體管理電路202分別比較所讀取的每一筆資料與其對應所寫入的資料而獲得錯誤位元資訊。換句話說,記憶體管理電路202係根據所讀取之資料執行一資料處理程序,以獲得錯誤位元資訊。例如,可在記憶體管理電路202寫入資料至記憶體模組106時,先行記錄下所寫入的資料。之後,記憶體管理電路202便可將自記憶體模組106所讀取出的資料與其先前記錄的資料進行比對,而獲得錯誤位元資訊。在此,錯誤位元資訊包括錯誤位元數以及錯誤位元資料模式(例如,以記憶胞只能儲存1位元資料而言,讀取之資料的儲存狀態由0變為1,或是由1變為0)。在本發明另一範例實施例中,上述資料處理程序亦可為一錯誤校正程序。此時,記憶體管理電路202係用錯誤校正碼來完成資料校正,進而獲得錯誤位元資訊。
在計算出錯誤位元資訊之後,如步驟S608所示,記憶體管理電路202再依據錯誤位元資訊,計算門檻值電壓的補償電壓。在步驟S610中,記憶體管理電路202藉由補償電壓來調整門檻值電壓。
值得說明的是,本實施例之記憶體管理電路202在分割每一實體頁面時,係將實體頁面分割為具有不同資料長度的位元資料區。特別是,資料長度較短的一位元資料區係配置於每一實體頁面的初始位置,其中對應於資料長度較短的該位元資料區之錯誤校正碼框具有較佳的錯誤位元校正能力。因此,錯誤檢查與校正電路256可提供適當的錯誤位元資訊,以利記憶體管理電路202根據所獲得的錯誤位元資訊,選擇性地調整其對數似然比查詢表或記憶胞的門檻值電壓。
上述寫入的資料包括多筆位元資料。以電壓範圍相鄰的第一儲存狀態與第二儲存狀態為例,記憶體管理電路202會統計這些位元資料在寫入時為第一儲存狀態而在讀取時為第二儲存狀態的第一錯誤位元數。並且,記憶體管理電路202會統計這些位元資料在寫入時為第二儲存狀態而在讀取時為第一儲存狀態的第二錯誤位元數。在此,第一儲存狀態的電壓範圍小於第二儲存狀態的電壓範圍,而記憶體管理電路202計算補償電壓是依據下列公式:
其中,x代表補償電壓,g代表常數,error2代表第二錯誤位元數,error1代表第一錯誤位元數。
而在計算出補償電壓x之後,則可將門檻值電壓加上補償電壓而獲得調整後的門檻值電壓。
以每個記憶胞中儲存2個位元資料的記憶體模組106而言,當其中一實體頁面產生的錯誤位元數大於第一預設值或是錯誤位元數超出錯誤檢查與校正電路256的錯誤校正能力時,記憶體管理電路202可先判斷此實體頁面為快速實體頁面或慢速實體頁面。當此實體頁面為快速實體頁面時,記憶體管理電路202會讀取其中之一的快速實體頁面的資料,並比對所讀取的資料與原始資料,以找出錯誤位元資料位置。之後,再自錯誤位元資料位置讀取對應的位元資料。記憶體管理電路202會依據所讀取的位元資料判斷錯誤位元資料模式。例如,寫入的位元資料為第一儲存狀態而讀取出的位元資料為第二儲存狀態,或是寫入的位元資料為第二儲存狀態,而讀取出的位元資料為第一儲存狀態(第一儲存狀態與第二儲存狀態的電壓範圍相鄰)。據此,記憶體管理電路202會統計快速實體頁面中位元資料為第一儲存狀態而誤判為第二儲存狀態的第一錯誤位元數,以及統計位元資料為第二儲存狀態而誤判至第一儲存狀態的第二錯誤位元數。另一方面,當此實體頁面為慢速實體頁面時,記憶體管理電路202自慢速實體頁面的錯誤位元資料位置讀取出慢速實體頁面對應的位元資料。並且,記憶體管理電路202依據慢速實體頁面的錯誤位元資料位置,讀取快速實體頁面對應的位元資料。藉此,記憶體管理電路202可依據上述位元資料,計算慢速實體頁面的第一錯誤位元數與第二錯誤位元數。
在本實施例中,在計算出錯誤位元資訊之後,為了使計算之後的數據具有較高的可信度,記憶體管理電路202更可先判斷錯誤位元資訊中的錯誤位元數是否大於一第二預設值,以在錯誤位元數大於第二預設值時再執行計算補償值的步驟。
其中有關調整門檻值電壓之方法的進一步說明已詳敘在台灣申請案099111612相關段落中,其因引用而納入本文成為揭露的一部份。
在本發明中,記憶體儲存裝置除了根據錯誤位元資訊,調整記憶胞的門檻值電壓之外,亦可選擇調整對數似然比查詢表。
圖7是根據本發明範例實施例所繪示的記憶體儲存裝置的概要方塊圖。請參照圖7,本實施例之記憶體控制器104’更包括一對數似然比估算電路702。記憶體管理電路202’包括一對數似然比查詢表704。
對數似然比估算電路702耦接記憶體管理電路202’以及錯誤檢查與校正電路256。對數似然比估算電路702係用以實現本範例實施例的對數似然比調整機制。此對數似然比調整機制的詳細運作方式將於以下配合圖式再作說明。在一範例實施例中,對數似然比估算電路702例如是以硬體型式實作成數個控制指令。在其他範例實施例中,對數似然比估算電路702也可以是韌體型式實作成的控制指令或以程式碼型式實作成的控制指令。
圖8是根據本發明範例實施例繪示之儲存狀態與位元資料讀取電壓的示意圖。在本範例實施例中,可複寫式非揮發性記憶體模組106為8階記憶胞NAND型快閃記憶體,如圖8所示,每個記憶胞中的浮動電壓係依據第一位元資料讀取電壓VA、第二位元資料讀取電壓VB、第三位元資料讀取電壓VC、第四位元資料讀取電壓VD、第五位元資料讀取電壓VE、第六位元資料讀取電壓VF與第七位元資料讀取電壓VG而區分為8種儲存狀態,分別是"111"、"110"、"100"、"101"、"001"、"000"、"010"與"011"。每個儲存狀態都包括最低有效位元資料(Least Significant Bit,LSB)、中間有效位元資料(Center Significant Bit,CSB),以及最高有效位元資料(Most Significant Bit,MSB)這3個位元資料。舉例來說,在本範例實施例中各儲存狀態從左側算起之第1個位元資料為LSB,從左側算起之第2個位元資料為CSB,而從左側算起之第3個位元資料為MSB。據此,每一記憶胞可儲存3個位元資料,故同一條字元線上的記憶胞會構成3個實體頁面(即,下實體頁面、中實體頁面以及上實體頁面)的儲存空間。也就是說,每一記憶胞的LSB是對應下實體頁面、每一記憶胞的CSB是對應中實體頁面,而每一記憶胞的MSB是對應上實體頁面。此外,數個實體頁面會構成一個實體區塊,而實體區塊為執行抹除運作的最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。在本範例實施例中,這8種儲存狀態的儲存狀態次序依序為"111"、"110"、"100"、"101"、"001"、"000"、"010"、"011"。必須說明的是,儲存狀態次序可能會依各家可複寫式非揮發性記憶體晶片製造商的設計而有所不同,在此並不加以限制。
圖9繪示的是在圖8所示之範例實施例中各種可能發生儲存錯誤之儲存狀態的對應關係。在圖9中,標示在"→"之右方的儲存狀態代表讀取資料的第一儲存狀態,而標示在"→"之左方的儲存狀態為讀取資料的第二儲存狀態。
請同時參閱圖8與圖9,當讀取資料的第一儲存狀態為"000"時,可能的第2儲存狀態是"010"、"001"。當讀取資料的第一儲存狀態為"001"時,可能的第二儲存狀態是"101"、"000"。而當讀取資料的第一儲存狀態為"010"時,可能的第二儲存狀態是"000"、"011",以此類推。
在圖9中標示為"*"之處,表示若讀取資料在被讀取時係對應該第一儲存狀態,則儲存錯誤發生在該位元資料的機率很小。例如,當讀取資料的第一儲存狀態為"100"時,若儲存錯誤發生在LSB則表示讀取資料的第二儲存狀態應為"000"。但由於本範例實施例已假設儲存錯誤僅會發生在儲存狀態次序相鄰的儲存狀態之間,而對照圖8可知儲存狀態"000"與儲存狀態"100"並不相鄰,是故在讀取資料的第一儲存狀態為"100"時,儲存錯誤發生在LSB的機率相當的低,在此假設不會有讀取資料的第二儲存狀態為"000"的情況,也就是LSB為0的對數似然比為負無限大。
在一範例實施例中,當對數似然比估算電路702取得讀取資料的第一儲存狀態為"001"且第二儲存狀態為"000",對數似然比估算電路702便會統計錯誤統計總數之記憶胞所儲存的該些資料中,取得資料被寫入時為儲存狀態"000"但在被讀取時為儲存狀態為"001"的儲存錯誤總數,並且以上述算式(1)計算一對數似然比。然而,倘若讀取資料的第一儲存狀態為"001"而第二儲存狀態為"100",由於第一、第二儲存狀態在儲存狀態次序中並不相鄰,因此對數似然比估算電路702會根據讀取資料之一讀取位元資料的值,將對數似然比設定為正無限大或負無限大。圖9所示之對應關係可用來算出讀取資料之儲存錯誤發生在LSB、CSB或MSB的對數似然比。
圖10是根據本發明範例實施例繪示之調整對數似然比之方法的流程圖。
在記憶體儲存裝置100接收到主機系統1000下達的讀取指令後,首先如步驟S1010所示,記憶體控制器104’中的記憶體管理電路202’指示記憶體模組106使用位元資料讀取電壓從記憶胞中獲取一讀取資料,此讀取資料對應第一儲存狀態。
接著在步驟S1020中,記憶體控制器104’中的錯誤檢查與校正電路256對讀取資料執行一錯誤校正程序以獲得讀取資料在寫入記憶體模組106當時所對應的第二儲存狀態。
接下來如步驟S1030所示,記憶體控制器104’中的對數似然比估算電路702在符合錯誤統計總數的儲存狀態中,取得在寫入時為第二儲存狀態而在讀取時為第一儲存狀態的一儲存錯誤總數。
在步驟S1040中,對數似然比估算電路702根據錯誤統計總數、儲存狀態的儲存狀態數量,以及儲存錯誤總數執行一對數運算,以產生讀取資料的一對數似然比,其中計算該對數似然比是依據下列公式:
其中LLR_c表示對數似然比,N表示錯誤統計總數、S表示儲存狀態數量,而W表示儲存錯誤總數。
之後,在步驟S1050中,對數似然比估算電路702可直接利用估算所得之對數似然比來更新記憶體管理電路202’中的對數似然比查詢表704。亦即,利用該估算所得之對數似然比取代對數似然比查詢表704中讀取資料所對應的當前對數似然比。
其中有關調整對數似然比之方法的進一步說明已詳敘在台灣申請案099131626相關段落中,其因引用而納入本文成為揭露的一部份。
圖11是根據本發明範例實施例繪示之資料讀取方法的流程圖。
請同時參照圖2及圖11,本實施例之資料讀取方法例如適用於一可複寫式非揮發性記憶體模組,其包括如下步驟。首先,在步驟S1100中,分割記憶體模組106之每一實體頁面為多個位元資料區,其中分割後的實體頁面之位元資料區長度及數量如圖4所示。接著,在步驟S1102中,寫入一資料至該等實體頁面之位元資料區。之後,在步驟S1104中,自被寫入資料的該等位元資料區中讀取資料。繼之,在步驟S1106中,根據所讀取之資料執行一資料處理程序以獲得一錯誤位元資訊。其中,該資料處理程序包括比對所讀取的該資料與所寫入的該資料。或者,該資料處理程序亦可為一錯誤校正程序。接著,在步驟S1108中,根據錯誤位元資訊,調整對數似然比查詢表或記憶胞之門檻值電壓。
另外,本發明之實施例的資料讀取方法可以由圖1至圖10實施例之敘述中獲致足夠的教示、建議與實施說明,因此不再贅述。
綜上所述,在本發明之範例實施例中,對應於位元資料區資料長度較短的錯誤校正碼框具有較佳的錯誤位元校正能力。因此,記憶體儲存裝置對所讀取的資料進行錯誤校正程序時,可確保該等資料能有效地被檢查與校正。進而,記憶體儲存裝置可根據所獲得的錯誤位元資訊,選擇性地調整對數似然比查詢表或記憶胞的門檻值電壓。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...記憶體儲存裝置
102...連接器
104、104’...記憶體控制器
106...可複寫式非揮發性記憶體模組
202、202’...記憶體管理電路
204...主機介面
206...記憶體介面
252...儲存單元
254...電源管理電路
256...錯誤檢查與校正電路
502...記憶胞陣列
504...字元線控制電路
506...位元線控制電路
508...欄解碼器
510...資料輸入/輸出緩衝器
512...控制電路
702...對數似然比估算電路
704...對數似然比查詢表
VA...第一位元資料讀取電壓
VB...第二位元資料讀取電壓
VC...第三位元資料讀取電壓
VD...第四位元資料讀取電壓
VE...第五位元資料讀取電壓
VF...第六位元資料讀取電壓
VG...第七位元資料讀取電壓
S602、S604、S606、S608、S610...調整門檻值電壓的方法步驟
S1010、S1020、S1030、S1040、S1050...調整對數似然比的方法步驟
S1100、S1102、S1104、S1106、S1108...資料讀取方法的步驟
圖1A是根據本發明實施例繪示使用可複寫式非揮發性記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4是根據本發明範例實施例所繪示之可複寫式非揮發性記憶體模組實體頁面之位元資料區的架構示意圖。
圖5是根據本發明範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖6是根據本發明範例實施例繪示的調整門檻值電壓的方法的流程圖。
圖7是根據本發明範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
圖8是根據本發明範例實施例繪示之儲存狀態與位元資料讀取電壓的示意圖。
圖9繪示的是在圖8所示之範例實施例中各種可能發生儲存錯誤之儲存狀態的對應關係。
圖10是根據本發明範例實施例繪示之調整對數似然比之方法的流程圖。
圖11是根據本發明範例實施例繪示之資料讀取方法的流程圖。
S1100、S1102、S1104、S1106、S1108...資料讀取方法的步驟

Claims (21)

  1. 一種資料讀取方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體區塊,且每一該些實體區塊具有多個實體頁面,該資料讀取方法包括:分割每一該些實體頁面為多個位元資料區,其中在每一該些實體頁面當中至少一位元資料區相較於其他位元資料區具有不同的資料長度;寫入一資料至該些位元資料區,其中每一該些位元資料區對應一錯誤校正碼框,且在該些錯誤校正碼框當中,對應於該至少一位元資料區的錯誤校正碼框為具有較短的資料長度;自該些位元資料區讀取該資料;根據所讀取之該資料執行一資料處理程序以獲得一錯誤位元資訊;以及根據該錯誤位元資訊,調整一對數似然比查詢表(Log Likelihood Ratio table,LLR table)或至少一門檻值電壓。
  2. 如申請專利範圍第1項所述之資料讀取方法,其中分割每一該些實體頁面的步驟包括:將該至少一位元資料區配置於每一該些實體頁面的初始位置,其中對應於該至少一位元資料區的錯誤校正碼框具有較佳的錯誤位元校正能力。
  3. 如申請專利範圍第1項所述之資料讀取方法,其中 調整該至少一門檻值電壓的步驟包括:根據該錯誤位元資訊計算該至少一門檻值電壓的補償電壓;以及藉由該補償電壓來調整該至少一門檻值電壓。
  4. 如申請專利範圍第3項所述之資料讀取方法,其中根據所讀取之該資料執行該資料處理程序以獲得該錯誤位元資訊的步驟包括比對所讀取的該資料與所寫入的該資料以獲得一第一錯誤位元數及一第二錯誤位元數,其中計算該補償電壓是依據下列公式: 其中,x代表該補償電壓,g代表一常數,error1代表該第一錯誤位元數,error2代表該第二錯誤位元數。
  5. 如申請專利範圍第1項所述之資料讀取方法,其中該可複寫式非揮發性記憶體模組具有多個記憶胞且每一該些記憶胞具有多個儲存狀態,被讀取的該資料對應一第一儲存狀態,其中根據所讀取之該資料執行該資料處理程序以獲得該錯誤位元資訊的步驟包括對所讀取之該資料執行一錯誤校正程序以獲得所讀取之該資料在寫入時所對應的一第二儲存狀態。
  6. 如申請專利範圍第5項所述之資料讀取方法,其中調整對數似然比查詢表的步驟包括:在所讀取之符合一錯誤統計總數的該些儲存狀態中,取得在寫入時為該第二儲存狀態而在讀取時為該第一儲存狀態的一儲存錯誤總數;以及 根據該錯誤統計總數、該些儲存狀態的一儲存狀態數量,以及該儲存錯誤總數執行一對數運算,以產生被讀取的該資料的一對數似然比,其中計算該對數似然比是依據下列公式: 其中LLR_c表示該對數似然比,N表示該錯誤統計總數、S表示該儲存狀態數量,而W表示該儲存錯誤總數。
  7. 如申請專利範圍第6項所述之資料讀取方法,其中該可複寫式非揮發性記憶體模組配置於一記憶體儲存裝置,該記憶體儲存裝置包括該對數似然比查詢表,該對數似然比查詢表記錄被讀取的該資料所對應的一當前對數似然比,其中調整對數似然比查詢表的步驟更包括:利用該對數似然比取代該對數似然比查詢表中的該當前對數似然比。
  8. 一種記憶體控制器,包括:一主機系統介面,耦接一主機系統;一記憶體介面,耦接一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體區塊,且每一該些實體區塊具有多個實體頁面;一記憶體管理電路,耦接至該主機系統介面與該記憶體介面,該記憶體管理電路分割每一該些實體頁面為多個位元資料區;寫入一資料至該些位元資料區;自該些位元資料區讀取該資料;根據所讀取之該資料執行一資料處理程序以獲得一錯誤位元資訊;以及根據該錯誤位元資訊, 調整至少一門檻值電壓;以及一對數似然比估算電路,耦接該記憶體管理電路,該對數似然比估算電路根據該錯誤位元資訊調整一對數似然比查詢表(Log Likelihood Ratio table,LLR table),其中在每一該些實體頁面當中至少一位元資料區相較於其他位元資料區具有不同的資料長度,以及每一該些位元資料區對應一錯誤校正碼框,在該些錯誤校正碼框當中,對應該至少一位元資料區的錯誤校正碼框為具有較短的資料長度。
  9. 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路將資料長度較短的該至少一位元資料區配置於每一該實體頁面的初始位置,其中對應於該至少一位元資料區的該錯誤校正碼框具有較佳的錯誤位元校正能力。
  10. 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路根據該錯誤位元資訊計算該至少一門檻值電壓的補償電壓,並藉由該補償電壓來調整該至少一門檻值電壓。
  11. 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路執行該資料處理程序係比對所讀取的該資料與所寫入的該資料以獲得一第一錯誤位元數及一第二錯誤位元數,其中計算該補償電壓是依據下列公式: 其中,x代表該補償電壓,g一代表常數,error1代表 該第一錯誤位元數,error2代表該第二錯誤位元數。
  12. 如申請專利範圍第8項所述之記憶體控制器,其中該可複寫式非揮發性記憶體模組具有多個記憶胞且每一該些記憶胞具有多個儲存狀態,被讀取的該資料對應一第一儲存狀態,其中該記憶體管理電路執行該資料處理程序係對所讀取之該資料執行一錯誤校正程序以獲得所讀取之該資料在寫入時所對應的一第二儲存狀態。
  13. 如申請專利範圍第12項所述之記憶體控制器,其中該對數似然比估算電路在所讀取之符合一錯誤統計總數的該些儲存狀態中,取得在寫入時為該第二儲存狀態而在讀取時為該第一儲存狀態的一儲存錯誤總數,並根據該錯誤統計總數、該些儲存狀態的一儲存狀態數量,以及該儲存錯誤總數執行一對數運算,以產生被讀取的該資料的一對數似然比,其中計算該對數似然比是依據下列公式: 其中LLR_c表示該對數似然比,N表示該錯誤統計總數、S表示該儲存狀態數量,而W表示該儲存錯誤總數。
  14. 如申請專利範圍第13項所述之記憶體控制器,其中該記憶體管理電路具有該對數似然比查詢表,該對數似然比查詢表記錄被讀取的該資料所對應的一當前對數似然比,且該對數似然比估算電路利用該對數似然比取代該對數似然比查詢表中的該當前對數似然比。
  15. 一種記憶體儲存裝置,包括:一連接器,耦接一主機系統; 一可複寫式非揮發性記憶體模組,具有多個實體區塊,且每一該些實體區塊具有多個實體頁面;以及一記憶體控制器,耦接至該可複寫式非揮發性記憶體模組與該連接器,該記憶體控制器分割每一該些實體頁面為多個位元資料區;寫入一資料至該些位元資料區;自該些位元資料區讀取該資料;根據所讀取之該資料執行一資料處理程序以獲得一錯誤位元資訊;以及根據該錯誤位元資訊,調整一對數似然比查詢表(Log Likelihood Ratio table,LLR table)或至少一門檻值電壓,其中在每一該些實體頁面當中至少一位元資料區相較於其他位元資料區具有不同的資料長度,以及每一該些位元資料區對應一錯誤校正碼框,在該些錯誤校正碼框當中,對應於該至少一位元資料區的錯誤校正碼框為具有較短的資料長度。
  16. 如申請專利範圍第15項所述之記憶體儲存裝置,其中該記憶體控制器將該至少一位元資料區配置於每一該些實體頁面的初始位置,其中該至少一位元資料區的該錯誤校正碼框具有較佳的錯誤位元校正能力。
  17. 如申請專利範圍第15項所述之記憶體儲存裝置,其中該記憶體控制器根據該錯誤位元資訊計算該至少一門檻值電壓的補償電壓,並藉由該補償電壓來調整該至少一門檻值電壓。
  18. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器執行該資料處理程序係比對所讀取的該資料與所寫入的該資料以獲得一第一錯誤位元數及 一第二錯誤位元數,其中計算該補償電壓是依據下列公式: 其中,x代表該補償電壓,g代表一常數,error1代表該第一錯誤位元數,error2代表該第二錯誤位元數。
  19. 如申請專利範圍第15項所述之記憶體儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個記憶胞且每一該些記憶胞具有多個儲存狀態,被讀取的該資料對應一第一儲存狀態,該記憶體控制器執行該資料處理程序係對所讀取之該資料執行一錯誤校正程序以獲得所讀取之該資料在寫入時所對應的一第二儲存狀態。
  20. 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體控制器在所讀取之符合一錯誤統計總數的該些儲存狀態中,取得在寫入時為該第二儲存狀態而在讀取時為該第一儲存狀態的一儲存錯誤總數,並根據該錯誤統計總數、該些儲存狀態的一儲存狀態數量,以及該儲存錯誤總數執行一對數運算,以產生被讀取的該資料的一對數似然比,其中計算該對數似然比是依據下列公式: 其中LLR_c表示該對數似然比,N表示該錯誤統計總數、S表示該儲存狀態數量,而W表示該儲存錯誤總數。
  21. 如申請專利範圍第20項所述之記憶體儲存裝置,其中該記憶體控制器具有該對數似然比查詢表,該對數似然比查詢表記錄被讀取的該資料所對應的一當前對數似然比,且該記憶體控制器利用該對數似然比取代該對數 似然比查詢表中的該當前對數似然比。
TW100119408A 2011-06-02 2011-06-02 資料讀取方法、記憶體控制器及記憶體儲存裝置 TWI479495B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW100119408A TWI479495B (zh) 2011-06-02 2011-06-02 資料讀取方法、記憶體控制器及記憶體儲存裝置
US13/190,487 US8832526B2 (en) 2011-06-02 2011-07-26 Data reading method, memory controller, and memory storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100119408A TWI479495B (zh) 2011-06-02 2011-06-02 資料讀取方法、記憶體控制器及記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TW201250696A TW201250696A (en) 2012-12-16
TWI479495B true TWI479495B (zh) 2015-04-01

Family

ID=47262649

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100119408A TWI479495B (zh) 2011-06-02 2011-06-02 資料讀取方法、記憶體控制器及記憶體儲存裝置

Country Status (2)

Country Link
US (1) US8832526B2 (zh)
TW (1) TWI479495B (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510637B2 (en) 2010-04-14 2013-08-13 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
TWI436370B (zh) * 2010-09-17 2014-05-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與產生對數似然比之方法
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8856615B1 (en) * 2012-06-11 2014-10-07 Western Digital Technologies, Inc. Data storage device tracking log-likelihood ratio for a decoder based on past performance
US8898526B1 (en) * 2012-07-23 2014-11-25 Google Inc. Using forward error correction coding to diagnose communication links
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US8995302B1 (en) 2013-01-16 2015-03-31 Pmc-Sierra Us, Inc. Method and apparatus for translated routing in an interconnect switch
US9123445B2 (en) * 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9128858B1 (en) 2013-01-29 2015-09-08 Pmc-Sierra Us, Inc. Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values
US9092353B1 (en) 2013-01-29 2015-07-28 Pmc-Sierra Us, Inc. Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US8990661B1 (en) 2013-03-05 2015-03-24 Pmc-Sierra Us, Inc. Layer specific attenuation factor LDPC decoder
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9397701B1 (en) * 2013-03-11 2016-07-19 Microsemi Storage Solutions (Us), Inc. System and method for lifetime specific LDPC decoding
US8935598B1 (en) 2013-03-12 2015-01-13 Pmc-Sierra Us, Inc. System and method for adaptive check node approximation in LDPC decoding
US8984365B1 (en) 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for reduced memory storage in LDPC decoding
US9450610B1 (en) 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
US9590656B2 (en) 2013-03-15 2017-03-07 Microsemi Storage Solutions (Us), Inc. System and method for higher quality log likelihood ratios in LDPC decoding
US9235467B2 (en) * 2013-03-15 2016-01-12 Pmc-Sierra Us, Inc. System and method with reference voltage partitioning for low density parity check decoding
US9454414B2 (en) 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9916906B2 (en) 2014-02-27 2018-03-13 Seagate Technology Llc Periodically updating a log likelihood ratio (LLR) table in a flash memory controller
US9495261B2 (en) * 2014-03-13 2016-11-15 Qualcomm Incorporated Systems and methods for reducing memory failures
US9582361B2 (en) 2014-05-20 2017-02-28 Seagate Technology Llc Fixed point conversion of LLR values based on correlation
US9417804B2 (en) 2014-07-07 2016-08-16 Microsemi Storage Solutions (Us), Inc. System and method for memory block pool wear leveling
TWI550628B (zh) * 2014-07-16 2016-09-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US20160055055A1 (en) * 2014-08-25 2016-02-25 Kabushiki Kaisha Toshiba Memory system and error correction decoding method
KR102265220B1 (ko) * 2015-03-09 2021-06-16 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
TWI561981B (en) * 2015-12-14 2016-12-11 Phison Electronics Corp Data reading method, memory control circuit unit and memory storage apparatus
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10283215B2 (en) 2016-07-28 2019-05-07 Ip Gem Group, Llc Nonvolatile memory system with background reference positioning and local reference positioning
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
US9933963B1 (en) * 2017-03-01 2018-04-03 Seagate Technology Open block handling to reduce write errors
TWI623878B (zh) * 2017-07-07 2018-05-11 大心電子(英屬維京群島)股份有限公司 資料讀取方法以及儲存控制器
TWI628660B (zh) * 2017-09-19 2018-07-01 群聯電子股份有限公司 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
US10408863B2 (en) * 2017-12-20 2019-09-10 Apple Inc. Reference voltage prediction in memory subsystem
KR102070307B1 (ko) * 2018-05-28 2020-01-23 에센코어 리미티드 저장 장치의 구동 방법
US11237893B2 (en) * 2019-06-26 2022-02-01 Western Digital Technologies, Inc. Use of error correction-based metric for identifying poorly performing data storage devices
KR20210156563A (ko) 2020-06-18 2021-12-27 삼성전자주식회사 에러 체크 코드(ecc) 디코더 및 이를 포함하는 메모리 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244360A1 (en) * 2007-03-31 2008-10-02 Nima Mokhlesi Non-Volatile Memory with Soft Bit Data Transmission for Error Correction Control
US20090049364A1 (en) * 2007-08-16 2009-02-19 Samsung Electronics Co., Ltd. Nonvolatile memory device, system, and method providing fast program and read operations
US20090055680A1 (en) * 2005-07-15 2009-02-26 Matsushita Electric Industrial Co., Ltd. Nonvolatile storage device, memory controller, and defective region detection method
TW200921360A (en) * 2007-11-13 2009-05-16 Ite Tech Inc Data preserving method and data accessing method for non-volatile memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101202537B1 (ko) * 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
US7958301B2 (en) * 2007-04-10 2011-06-07 Marvell World Trade Ltd. Memory controller and method for memory pages with dynamically configurable bits per cell
TWI436370B (zh) 2010-09-17 2014-05-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與產生對數似然比之方法
TWI447733B (zh) 2010-04-14 2014-08-01 Phison Electronics Corp 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090055680A1 (en) * 2005-07-15 2009-02-26 Matsushita Electric Industrial Co., Ltd. Nonvolatile storage device, memory controller, and defective region detection method
US20080244360A1 (en) * 2007-03-31 2008-10-02 Nima Mokhlesi Non-Volatile Memory with Soft Bit Data Transmission for Error Correction Control
US20090049364A1 (en) * 2007-08-16 2009-02-19 Samsung Electronics Co., Ltd. Nonvolatile memory device, system, and method providing fast program and read operations
TW200921360A (en) * 2007-11-13 2009-05-16 Ite Tech Inc Data preserving method and data accessing method for non-volatile memory

Also Published As

Publication number Publication date
US20120311402A1 (en) 2012-12-06
US8832526B2 (en) 2014-09-09
TW201250696A (en) 2012-12-16

Similar Documents

Publication Publication Date Title
TWI479495B (zh) 資料讀取方法、記憶體控制器及記憶體儲存裝置
US9442662B2 (en) Device and method for managing die groups
US10228990B2 (en) Variable-term error metrics adjustment
TWI447733B (zh) 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器
TWI436370B (zh) 記憶體儲存裝置、其記憶體控制器與產生對數似然比之方法
CN107133122B (zh) 存储器控制方法
US9257204B2 (en) Read voltage setting method, and control circuit, and memory storage apparatus using the same
US8972776B2 (en) Partial R-block recycling
US9019770B2 (en) Data reading method, and control circuit, memory module and memory storage apparatus and memory module using the same
TWI537966B (zh) 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元
CN106257594B (zh) 读取干扰收回策略
US9563508B2 (en) Memory management method, memory control circuit unit and memory storage apparatus
US8578245B2 (en) Data reading method, memory storage apparatus, and controller thereof
TWI436211B (zh) 區塊管理方法、記憶體控制器與記憶體儲存裝置
US9257187B2 (en) Data storing method, memory control circuit unit and memory storage apparatus
US20150358036A1 (en) Decoding method, memory storage device and memory control circuit unit
US10126970B2 (en) Paired metablocks in non-volatile storage device
US10522234B2 (en) Bit tagging method, memory control circuit unit and memory storage device
KR20130027138A (ko) 에러 정정 방법 및 이를 이용하는 메모리 장치
TW201508750A (zh) 解碼方法、記憶體儲存裝置與非揮發性記憶體模組
US10459630B2 (en) Memory management method, memory storage device and memory controlling circuit unit
CN102831932B (zh) 数据读取方法、存储器控制器及存储器储存装置
US20110154162A1 (en) Data writing method for a flash memory, and flash memory controller and flash memory storage apparatus using the same
US20220398155A1 (en) Data rebuilding method, memory storage apparatus, and memory control circuit unit
US11146295B1 (en) Decoding method, memory storage device, and memory controlling circuit unit