TWI831353B - 對從複數記憶胞讀取的資料執行錯誤校正的記憶體系統和方法 - Google Patents

對從複數記憶胞讀取的資料執行錯誤校正的記憶體系統和方法 Download PDF

Info

Publication number
TWI831353B
TWI831353B TW111132956A TW111132956A TWI831353B TW I831353 B TWI831353 B TW I831353B TW 111132956 A TW111132956 A TW 111132956A TW 111132956 A TW111132956 A TW 111132956A TW I831353 B TWI831353 B TW I831353B
Authority
TW
Taiwan
Prior art keywords
voltage
voltage range
llr
value
data
Prior art date
Application number
TW111132956A
Other languages
English (en)
Other versions
TW202338852A (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 日商鎧俠股份有限公司
Publication of TW202338852A publication Critical patent/TW202338852A/zh
Application granted granted Critical
Publication of TWI831353B publication Critical patent/TWI831353B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • 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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • 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
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • 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/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/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/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

實施例提供了一種具有增強的錯誤校正能力的記憶體系統和一種對從複數記憶胞讀取的資料執行錯誤校正的方法。 一種記憶體系統包括半導體記憶體裝置和控制器,該半導體記憶體裝置包括複數個記憶胞,各個記憶胞被配置成根據其臨界電壓以非揮發性方式儲存資料並連接到字線,以及該控制器被配置成基於從該複數個記憶胞讀取的硬位元資料和軟位元資料執行錯誤校正,基於被校正的資料產生第一表,確定第一電壓和第二電壓之間的電壓差,該第一電壓是在讀取該被校正的資料時施加到該字線的電壓,並且基於該電壓差來校正該第一表。

Description

對從複數記憶胞讀取的資料執行錯誤校正的記憶體系統和方法
本文描述的實施例一般係關於從複數記憶胞讀取的資料執行錯誤校正的記憶體系統和方法。 [相關申請案之交互參考]
本申請案基於並主張於2022年3月18日申請的日本專利申請案第2022-043995號的優先權,其全部內容透過引用併入本文。
包括半導體記憶體裝置和控制半導體記憶體裝置的記憶體控制器的記憶體系統是已知的。當從半導體記憶體裝置讀取資料時,軟決策解碼(soft-decision decoding)作為錯誤校正方法是已知的。
實施例提供了一種具有增強的錯誤校正能力的記憶體系統和一種對從複數記憶胞讀取的資料執行錯誤校正的方法。
通常,根據一個實施例,記憶體系統包括半導體記憶體裝置和控制器,該半導體記憶體裝置包括複數個記憶胞,各個記憶胞被配置成根據其臨界電壓以非揮發性方式儲存資料並連接到字線,以及該控制器被配置成基於從複數個記憶胞讀取的硬位元資料和軟位元資料執行錯誤校正,基於透過錯誤校正而被校正的資料來產生第一表,確定第一電壓和第二電壓之間的電壓差,該第一電壓是在讀取被校正的資料時施加到字線的電壓,並且基於該電壓差來校正該第一表。
在下文中,將參考圖式說明實施例。在說明書中,在所有圖式中,將共同的參考標號賦予共同的部分。
在以下範例中可能不會將功能塊彼此區分開來。例如,某些功能可以由與所示功能塊不同的功能塊來執行。此外,所示功能塊可以被劃分為進一步細分的功能子塊。實施例不限於實現該功能的特定功能塊。
此外,每個功能塊可以由硬體和電腦軟體之其中任一者或二者的組合來實現。
[1]第一實施例
將說明根據第一實施例的記憶體系統。在下文中,作為半導體記憶體裝置,將以包括NAND型快閃記憶體的記憶體系統為例進行說明。
[1-1]配置
[1-1-1]記憶體系統之配置
將參考圖1說明根據實施例之記憶體系統的配置範例。圖1是示出根據實施例之包括記憶體系統的資訊處理系統的範例的方塊圖。
資訊處理系統包括記憶體系統1和主機裝置2。
記憶體系統1例如是固態硬碟(SSD)、通用快閃儲存(UFS)裝置、通用序列匯流排(USB)記憶體、多媒體卡(MMC)或SD®卡。記憶體系統1可連接到主機裝置2。記憶體系統1基於從主機裝置2接收到的請求信號或自發的(或內部的)處理請求而執行處理。
主機裝置2例如是個人電腦、伺服器系統、行動裝置、車載裝置或數位相機。
接下來,將說明記憶體系統1的內部配置。
記憶體系統1包括記憶體控制器10和半導體記憶體裝置30。半導體記憶體裝置30是非揮發性記憶體,諸如NAND型快閃記憶體。在下文中,半導體記憶體裝置30亦被稱為NAND型快閃記憶體30。
記憶體控制器10例如是系統單晶片(SoC)。記憶體控制器10係透過主機匯流排連接到主機裝置2。記憶體控制器10透過主機匯流排從主機裝置2接收請求信號。主機匯流排的類型取決於記憶體系統1的類型。例如當記憶體系統1是SSD時,使用串列連接SCSI(Serial Attached SCSI, SAS)、串列ATA(Serial ATA, SATA)或週邊組件互連高速(Peripheral Component Interconnect Express, PCI Express®或PCIe)標準的介面作為主機匯流排。當記憶體系統1是UFS裝置時,使用M-PHY標準的介面作為主機匯流排。當記憶體系統1是USB記憶體時,使用USB標準的介面作為主機匯流排。當記憶體系統1是MMC時,使用嵌入式多媒體記憶卡(Embedded Multi Media Card, eMMC)標準的介面作為主機匯流排。當記憶體系統1是SD®卡時,使用SD®標準的介面作為主機匯流排。
記憶體控制器10基於從主機裝置2接收到的請求信號或自發的處理請求,透過NAND匯流排控制NAND型快閃記憶體30。NAND匯流排根據NAND介面標準執行信號的發送和接收。
NAND型快閃記憶體30包括複數個記憶胞電晶體。該複數個記憶胞電晶體中的每一個根據其臨界電壓以非揮發性方式儲存資料。NAND型快閃記憶體30將從記憶體控制器10接收的資料以非揮發性方式儲存在複數個記憶胞電晶體中。NAND型快閃記憶體30將從複數個記憶胞電晶體讀取的資料輸出到記憶體控制器10。
接下來,將說明記憶體控制器10的內部配置。
記憶體控制器10包括主機介面(I/F)電路11、處理器(中央處理單元(CPU))12、緩衝器記憶體13、錯誤檢查和校正(error checking and correcting,ECC)電路14、唯讀記憶體(ROM)15、隨機存取記憶體(RAM)16、讀取資訊產生電路17和NAND介面(I/F)電路18。
主機介面電路11負責記憶體控制器10和主機裝置2之間的通訊。主機介面電路11透過主機匯流排連接到主機裝置2。
處理器12是記憶體控制器10的控制電路。處理器12透過執行儲存在ROM 15中的程式來控制記憶體控制器10的整體操作。例如,當處理器12接收到來自主機裝置2的寫入請求時,處理器12基於此來控制寫入操作。這同樣適用於讀取操作和擦除操作。
緩衝器記憶體13例如是靜態隨機存取記憶體(SRAM)。緩衝器記憶體13暫時性地儲存寫入資料和讀取資料。寫入資料是要被寫入NAND型快閃記憶體30的資料。讀取資料是從NAND型快閃記憶體30讀取的資料。
ECC電路14是執行ECC處理的電路。ECC處理包括資料的編碼和解碼。編碼是在寫入操作中基於從主機裝置2接收到的資料(在本文中被稱為使用者資料)產生錯誤校正碼(在下文中,亦稱為"奇偶(parity)")的操作。該錯誤校正碼被添加到使用者資料中。錯誤校正碼(ECC)會在編碼完成後被添加到使用者資料中。在下文中,在ECC電路14中,將一組要被解碼的資料表示為"ECC幀"。ECC幀包括使用者資料和錯誤校正碼(ECC)。解碼是基於在讀取操作中從NAND型快閃記憶體30接收到的ECC幀來執行使用者資料的錯誤校正的操作。錯誤校正碼(ECC)被用來檢測和校正錯誤。
此外,寫入操作和讀取操作以下面要描述的頁為單位進行。在本公開中,具有1頁資料長度的寫入資料和讀取資料也被稱為"頁資料(page data)"。頁資料可以包括複數個ECC幀。此外,頁資料的資料長度和ECC幀的資料長度可以彼此相等。
在實施例中,讀取操作包括硬位元(hard bit,HB)讀取和軟位元(soft bit,SB)讀取。
HB讀取是使用與記憶胞電晶體之臨界電壓分布(threshold voltage distribution)的邊界相對應的一種讀取電壓(在下文中,亦稱為"HB讀取電壓")來讀取資料,並獲取確定儲存在記憶胞電晶體中的資料是"0"還是"1"的確定結果的過程。透過HB讀取獲取的頁資料也被稱為"HB資料"。HB資料的每一位元被稱為"硬位元"。
SB讀取是使用以HB讀取電壓為參考設置的複數個電壓(在下文中,亦稱為"SB讀取電壓")來讀取資料,並獲取對複數個讀取資料進行邏輯計算的計算結果的過程。SB讀取是在硬決策解碼電路20執行的錯誤校正(稍後描述)不成功時執行。透過SB讀取獲取的頁資料也被稱為"SB資料"。SB資料的每一位元被稱為"軟位元"。
ROM 15例如是電可擦除可編程唯讀記憶體(EEPROM®)。ROM 15儲存例如韌體的程式。
RAM 16例如是SRAM。RAM 16被用作處理器12的工作區。RAM 16儲存用於管理NAND型快閃記憶體30的韌體和各種管理資訊。RAM 16儲存例如對數似然比(log likelihood ratio,LLR)表和從預設的HB讀取電壓(其為HB讀取電壓的初始值)移位的讀取電壓的值Vst(在下文中,亦僅用"移位值Vst"表示)。在下文中,預設的HB讀取電壓亦將被稱為"預設電壓Vdt"。
LLR表是讀取資料和LLR相互關聯的表。LLR是以對數比表示儲存在記憶胞電晶體中的資料為"0"的機率和儲存在記憶胞電晶體中的資料為"1"的機率的資訊。稍後將描述LLR表和移位值Vst的細節。例如,在接通電源之後立即將LLR表從NAND型快閃記憶體30加載到RAM 16中。例如,當移位值Vst產生時,移位值Vst被寫入RAM 16。注意,移位值Vst的初始值等於預設電壓Vdt。
讀取資訊產生電路17是執行動態LLR估計(DLE)表(本文中稱為DLE1表,以與另一DLE表,DLE2表,有所區別,稍後介紹)和移位值Vst的產生處理作為關於HB讀取和SB讀取的資訊的電路。DLE1表是表示複數個記憶胞電晶體的臨界電壓的電壓範圍與LLR之間的關係的表,並且基於在軟決策解碼電路21中校正成功的資料來產生(稍後描述)。稍後將描述讀取資訊產生電路17的處理以及DLE1表的細節。
NAND介面電路18負責記憶體控制器10和NAND型快閃記憶體30之間的通訊。NAND介面電路18透過NAND匯流排連接到NAND型快閃記憶體30。例如,NAND介面電路18控制記憶體控制器10和NAND型快閃記憶體30之間的資料、命令和位址的傳輸。
[1-1-2]ECC電路的配置
將參考圖2說明ECC電路14的內部配置。圖2是示出ECC電路之配置的範例的方塊圖。
ECC電路14包括編碼電路19、硬決策解碼電路20、軟決策解碼電路21、LLR轉換電路22、和通道矩陣產生電路23。
編碼電路19是執行編碼處理的電路。編碼電路19產生奇偶,其包括例如硬決策奇偶和軟決策奇偶。硬決策奇偶的範例是Bose-Chaudhuri-Hocquenghem(BCH)碼和里德-所羅門(Reed-Solomon, RS)碼。軟決策奇偶的範例是低密度奇偶檢查(Low-Density Parity-Check, LDPC)碼。編碼電路19將奇偶添加到使用者資料中。
硬決策解碼電路20是執行硬決策解碼的電路。硬決策解碼電路20是使用硬決策奇偶執行錯誤校正的電路。具體而言,硬決策解碼電路20針對HB資料,使用每個ECC幀的硬決策奇偶來檢測使用者資料的錯誤。當檢測到錯誤時,硬決策解碼電路20會校正使用者資料的錯誤。在下文中,由硬決策解碼電路20執行的錯誤校正亦將被稱為"HB校正"。
軟決策解碼電路21是執行軟決策解碼的電路。軟決策解碼電路21是使用LLR和軟決策奇偶執行錯誤校正的電路。具體而言,軟決策解碼電路21針對HB資料和SB資料,使用LLR和每個ECC幀的軟決策奇偶來執行基於機率的重複計算。軟決策解碼電路21基於重複計算的結果來校正使用者資料的錯誤。在下文中,由軟決策解碼電路21執行的錯誤校正亦將被稱為"SB校正"。LLR是由LLR轉換電路22產生的。
LLR轉換電路22是執行LLR轉換處理的電路。LLR轉換電路22使用LLR表將硬位元和軟位元的組合轉換成每個ECC幀的LLR。
通道矩陣產生電路23是執行通道矩陣之產生處理的電路。通道矩陣產生電路23使用硬位元和軟位元的組合以及在軟決策解碼電路21中校正成功的資料來產生每個ECC幀的通道矩陣。在下文中,在軟決策解碼電路21中校正成功的資料也將被稱為"已校正資料"。通道矩陣是透過對硬位元和軟位元的每個組合中的已校正資料中的資料"0"的數量和資料"1"的數量進行計數而產生的。稍後將描述通道矩陣的細節。
軟決策解碼電路21包括記憶體24。記憶體24例如是SRAM。記憶體24儲存從緩衝器記憶體13獲取的HB資料和SB資料、透過LLR轉換電路22中的轉換獲取的LLR、在軟決策解碼電路21中校正的資料和由讀取資訊產生電路17產生的DLE1表。
稍後將說明ECC電路14之處理的細節。
[1-1-3]NAND型快閃記憶體的配置
將參考圖3說明NAND型快閃記憶體30的配置。圖3是示出NAND型快閃記憶體30之配置的範例的方塊圖。NAND型快閃記憶體30包括記憶胞陣列31、輸入/輸出電路32、邏輯控制電路33、就緒/忙碌控制電路34、暫存器35、序列器36、驅動器模組37、列解碼器模組38和感測放大器模組39。
記憶胞陣列31包括複數個塊BLK0至BLKn(n為大於或等於1的整數)。塊BLK例如是一組複數個記憶胞電晶體,其中資料被共同擦除。例如,塊BLK被用作資料擦除操作的單位。塊BLK包括複數條字線。記憶胞電晶體能夠以非揮發性的方式儲存資料。複數條位元線和複數條字線被設置在記憶胞陣列31中。每個記憶胞電晶體與例如一條位元線和一條字線相關聯。下面將描述記憶胞陣列31的細節。
輸入/輸出電路32將輸入/輸出信號DQ(例如,8位元信號DQ0至DQ7)以及資料選通信號DQS和DQSn(信號DQS的反相信號)發送到記憶體控制器10和從記憶體控制器10接收輸入/輸出信號DQ(例如,8位元信號DQ0至DQ7)以及資料選通信號DQS和DQSn(信號DQS的反相信號)。信號DQ包含在NAND型快閃記憶體30和記憶體控制器10之間發送和接收的各種資料。信號DQ包含,例如,命令CMD、位址ADD、狀態資訊STS和資料DAT。信號DQS和DQSn是用於控制信號DQ的發送和接收時序的信號。例如,在寫入資料時,信號DQS和DQSn與包含寫入資料的信號DQ一起從記憶體控制器10被發送到NAND型快閃記憶體30。NAND型快閃記憶體30同步地接收包含寫入資料的信號DQ與信號DQS和DQSn。此外,在讀取資料時,信號DQS和DQSn與包含讀取資料的信號DQ一起從NAND型快閃記憶體30被發送到記憶體控制器10。記憶體控制器10同步地接收包含讀取資料的信號DQ與信號DQS和DQSn。此外,輸入/輸出電路32可以透過邏輯控制電路33從記憶體控制器10接收信號DQS和DQSn。
此外,輸入/輸出電路32將信號DQ中的命令CMD發送到命令暫存器35A。輸入/輸出電路32將信號DQ中的位址ADD發送到位址暫存器35B。輸入/輸出電路32從狀態暫存器35C接收狀態資訊STS。輸入/輸出電路32將信號DQ中的資料DAT發送到感測放大器模組39和從感測放大器模組39接收信號DQ中的資料DAT。
邏輯控制電路33從記憶體控制器10接收晶片致能信號CEn、命令鎖存致能信號CLE、位址鎖存致能信號ALE、寫入致能信號WEn和讀取致能信號REn。信號CEn是用於致能NAND型快閃記憶體30的信號。信號CLE是指示由NAND型快閃記憶體30接收到的信號DQ是命令CMD的信號。信號ALE是指示由NAND型快閃記憶體30接收到的信號DQ是位址ADD的信號。信號WEn是用於命令信號DQ輸入到NAND型快閃記憶體30的信號。信號REn是用於命令信號DQ輸出到NAND型快閃記憶體30的信號。NAND型快閃記憶體30基於信號REn產生信號DQS和DQSn。NAND型快閃記憶體30基於產生的信號DQS和DQSn將信號DQ輸出到記憶體控制器10。邏輯控制電路33基於接收到的信號控制輸入/輸出電路32和序列器36。
就緒/忙碌控制電路34基於序列器36的操作情況將就緒/忙碌信號RBn發送到記憶體控制器10。信號RBn是指示NAND型快閃記憶體30處於就緒狀態和忙碌狀態的哪一個狀態的信號。當NAND型快閃記憶體30處於例如忙碌狀態時,信號RBn變成"低"位準。就緒狀態是NAND型快閃記憶體30能夠從記憶體控制器10接收命令的狀態。忙碌狀態是NAND型快閃記憶體30無法從記憶體控制器10接收命令的狀態。
暫存器35包括命令暫存器35A、位址暫存器35B和狀態暫存器35C。
命令暫存器35A儲存命令CMD。命令CMD包括例如指示序列器36執行讀取操作、寫入操作和擦除操作的命令。
位址暫存器35B儲存位址ADD。位址ADD包括,例如,塊位址BAd、頁位址PAd和行位址CAd。塊位址BAd、頁位址PAd和行位址CAd分別用於例如選取塊BLK、字線和位元線。
狀態暫存器35C在例如讀取操作、寫入操作和擦除操作中暫時儲存狀態資訊STS。狀態資訊STS用於通知記憶體控制器10操作是否正常結束。
序列器36控制NAND型快閃記憶體30的整體操作。例如,序列器36基於儲存在命令暫存器35A中的命令CMD來控制就緒/忙碌控制電路34、驅動器模組37、列解碼器模組38和感測放大器模組39。例如,序列器36執行讀取操作、寫入操作和擦除操作。
驅動器模組37產生讀取操作、寫入操作和擦除操作中使用的電壓。驅動器模組37基於儲存在位址暫存器35B中的頁位址PAd,將產生的電壓施加到與所選擇的字線相對應的信號線。
列解碼器模組38基於儲存在位址暫存器35B中的塊位址BAd來選擇記憶胞陣列31中的一個塊BLK。列解碼器模組38將施加於與所選擇的字線相對應的信號線的電壓發送到所選擇的塊BLK中的所選擇的字線。
感測放大器模組39在寫入操作中基於從輸入/輸出電路32接收到的寫入資料DAT向位元線施加電壓。此外,感測放大器模組39在讀取操作中基於位元線的電壓確定儲存在記憶胞電晶體中的資料。感測放大器模組39將確定結果作為讀取資料DAT發送到輸入/輸出電路32。
[1-1-4]記憶胞陣列的電路配置
將參考圖4說明記憶胞陣列31的電路配置。圖4是記憶胞陣列31的電路圖。圖4示出設置在記憶胞陣列31中的複數塊BLK中的一個塊BLK的電路配置作為記憶胞陣列31之電路配置的範例。另一個塊BLK亦具有圖4中所示的配置。
塊BLk包括例如四個串單元(string unit)SU0至SU3。每個串單元SU例如是一組在寫入操作或讀取操作中共同被選擇的複數個NAND串NS。每個串單元SU包括分別與位元線BL0至BLm(m為大於或等於1的整數)相關聯的複數個NAND串NS。NAND串NS是一組串聯連接的複數個記憶胞電晶體。每個NAND串NS包括例如記憶胞電晶體MC0至MC7以及選擇電晶體ST1和ST2。記憶胞電晶體MC以非揮發性方式儲存資料。記憶胞電晶體MC包括控制閘極和電荷累積層。選擇電晶體ST1和ST2是開關元件。選擇電晶體ST1和ST2之各者用於在各種操作中選擇串單元SU。
在每個NAND串NS中,記憶胞電晶體MC0至MC7是串聯連接的。選擇電晶體ST1的汲極連接到對應的位元線BL。選擇電晶體ST1的源極與串聯連接的記憶胞電晶體MC0至MC7之各者的一端連接。選擇電晶體ST2的汲極與串聯連接的記憶胞電晶體MC0至MC7之各者的另一端連接。選擇電晶體ST2的源極連接到源極線SL。
同一塊BLK中的記憶胞電晶體MC0至MC7的控制閘極分別共同連接到字線WL0至WL7。串單元SU0至SU3中的選擇電晶體ST1的閘極分別共同連接到選擇閘極線SGD0至SGD3。設置在同一塊BLK中的選擇電晶體ST2的閘極共同連接到選擇閘極線SGS。
在上述記憶胞陣列31的電路配置中,位元線BL例如由被分配了相同行位址CAd的每個串單元SU中的NAND串NS共享。源極線SL例如由複數個塊BLK共享。
在一個串單元SU中連接到共同字線WL的一組複數個記憶胞電晶體MC例如被稱為胞單元(cell unit)CU。胞單元CU也被稱作頁。儲存在包括各根據臨界電壓儲存1位元資料的複數個記憶胞電晶體MC的胞單元CU中的資料相當於1頁資料。胞單元CU可以基於由胞單元CU中的各個記憶胞電晶體MC儲存的資料的位元數來儲存兩頁或更多頁的資料。
注意,記憶胞陣列31的電路配置不限於上述的配置。例如,各個塊BLK中設置的串單元SU的數量、各個NAND串NS中設置的記憶胞電晶體MC的數量以及選擇電晶體ST1和ST2的數量之各者可以是任意數量。在下文中,記憶胞電晶體MC亦被稱為記憶胞MC。
[1-1-5]記憶胞的臨界電壓分布
將參考圖5說明記憶胞MC的臨界電壓分布。圖5是示出記憶胞MC之臨界電壓分布與記憶胞MC所儲存之資料之間的關係的範例的圖。圖5的橫軸表示記憶胞MC的臨界電壓。圖5的縱軸表示記憶胞MC的數量。
每個記憶胞MC能夠基於臨界電壓儲存例如1位元的資料。在此情況下,記憶胞MC的臨界電壓採用包括在兩個臨界電壓分布之一中的值。例如,將資料"1"分配給具有較低臨界電壓的一個臨界電壓分布。將資料"0"分配給另一個臨界電壓分布。資料"1"對應於從記憶胞MC的電荷累積層去除電荷的狀態的臨界電壓。對應於資料"1"的複數個記憶胞MC的臨界電壓分布被稱為"Er"狀態。對應於"Er"狀態的記憶胞MC的臨界電壓具有正值或負值。資料"0"對應於電荷被累積在記憶胞MC的電荷累積層中的狀態的臨界電壓。對應於資料"0"的複數個記憶胞MC的臨界電壓分布被稱為"A"狀態。對應於"A"狀態的記憶胞MC的臨界電壓高於"Er"狀態的臨界電壓。用於確定記憶胞MC的臨界電壓是否為"A"狀態的讀取電壓被設定為電壓AR(0)。例如,"Er"狀態的記憶胞MC的臨界電壓低於電壓AR(0)。例如,"A"狀態的記憶胞MC的臨界電壓等於或高於電壓AR(0)。
例如,序列器36透過將電壓AR(0)設定為HB讀取電壓來執行HB讀取。如圖5中所示,當"Er"狀態的臨界電壓分布和"A"狀態的臨界電壓分布不相互重疊時,記憶體控制器10可以確定某個記憶胞MC的臨界電壓屬於與寫入時的臨界電壓分布相同的臨界電壓分布,因此記憶體控制器10的硬決策解碼成功。
然而,如圖6中所示,由於對記憶胞MC的各種影響,"Er"狀態的臨界電壓分布和"A"狀態的臨界電壓分布可能相互重疊。在此情況下,即使序列器36透過將電壓AR(0)設定為HB讀取電壓來執行HB,也可能在HB讀取期間檢測到失敗位元,其中記憶體控制器10無法確定某個記憶胞MC的臨界電壓屬於與寫入時的臨界電壓分布相同的臨界電壓分布。當失敗位元的數量超過錯誤可校正數量時,記憶體控制器10在硬決策解碼失敗。當硬決策解碼不成功時,執行SB讀取。
如圖6中所示,序列器36使用複數個SB讀取電壓(此處為電壓AR(-3)、AR(-2)、AR(-1)、AR(+1)、AR(+2)和AR(+3))來執行SB讀取。如圖6中所示,電壓dR表示電壓的偏移量。電壓AR(-1)比電壓AR(0)低了電壓dR。電壓AR(-2)比電壓AR(-1)低了電壓dR。電壓AR(-3)比電壓AR(-2)低了電壓dR。電壓AR(+1)比電壓AR(0)高了電壓dR。電壓AR(+2)比電壓AR(+1)高了電壓dR。電壓AR(+3)比電壓AR(+2)高了電壓dR。
可以基於設計和製造條件來預設HB讀取電壓和SB讀取電壓的初始值。HB讀取電壓和SB讀取電壓的初始值係儲存在例如NAND型快閃記憶體30中。HB讀取電壓和SB讀取電壓的初始值例如在接通電源之後立即從NAND型快閃記憶體30加載到RAM 16中。注意,在HB讀取電壓的低電壓側和高電壓側之各側,SB讀取電壓的數量不限於三個。
在圖6的範例中,將記憶胞MC的臨界電壓除以HB讀取電壓(AR(0))和六個SB讀取電壓(AR(-3)至AR(-1)以及AR(+1)至AR(+3)),並且分類成八個區域。具體而言,分區D1的臨界電壓低於電壓AR(-3)。分區D2的臨界電壓等於或高於電壓AR(-3)並且低於電壓AR(-2)。分區D3的臨界電壓等於或高於電壓AR(-2)並且低於電壓AR(-1)。分區D4的臨界電壓等於或高於電壓AR(-1)並且低於電壓AR(0)。分區D5的臨界電壓等於或高於電壓AR(0)並且低於電壓AR(+1)。分區D6的臨界電壓等於或高於電壓AR(+1)並且低於電壓AR(+2)。分區D7的臨界電壓等於或高於電壓AR(+2)並且低於電壓AR(+3)。分區D8的臨界電壓等於或高於電壓AR(+3)。
在圖6中,"HB"表示依據記憶胞MC的臨界電壓,硬位元可以採用的值。硬位元是透過使用例如電壓AR(0)來確定在HB讀取時從記憶胞MC讀取的資料而獲取的。當記憶胞MC的臨界電壓處於分區D1至D4時,硬位元的值為"1"。當記憶胞MC的臨界電壓處於分區D5至D8時,硬位元的值為"0"。
在圖6中,"SB1"表示第一軟位元。第一軟位元是透過例如分別使用電壓AR(-2)和AR(+2)對從記憶胞MC讀取的複數條資料進行ENOR(互斥NOR)運算而產生的。當記憶胞MC的臨界電壓處於分區D1和D2時,第一軟位元的值為"1"。當記憶胞MC的臨界電壓處於分區D3至D6時,第一軟位元的值為"0"。當記憶胞MC的臨界電壓處於分區D7和D8時,第一軟位元的值為"1"。
在圖6中,"SB2"表示第二軟位元。第二軟位元是透過例如分別使用電壓AR(-3)、AR(-1)、AR(+1)和AR(+3)對從記憶胞MC讀取的複數條資料進行ENOR運算而產生的。當記憶胞MC的臨界電壓處於分區D1時,第二軟位元的值為"1"。當記憶胞MC的臨界電壓處於分區D2和D3時,第二軟位元的值為"0"。當記憶胞MC的臨界電壓處於分區D4和D5時,第二軟位元的值為"1"。當記憶胞MC的臨界電壓處於分區D6和D7時,第二軟位元的值為"0"。當記憶胞MC的臨界電壓處於分區D8時,第二軟位元的值為"1"。
注意,在SB讀取時使用來產生第一軟位元和第二軟位元的複數個電壓的組合不限於上述組合。
分區D1至D8中的各分區包括對應於硬位元的1位元、對應於第一軟位元的1位元、和對應於第二軟位元的1位元。在圖6的範例中,將對應於分區D1至D8的索引分別設成0至7。在分別對應於索引0至7的電壓範圍內的臨界電壓係按照索引0、1、2、3、4、5、6和7的升序順序排列。
[1-1-6]軟決策解碼處理
將參考圖7說明軟決策解碼處理。圖7是說明軟決策解碼處理的圖。
[1-1-6-1]ECC電路的處理
首先,將說明ECC電路14的處理。
緩衝器記憶體13儲存HB資料、SB1資料和SB2資料。SB1資料包括一頁的第一軟位元。SB2資料包括一頁的第二軟位元。RAM 16儲存複數個LLR表(例如,TBL1、TBL2和TBL3)。LLR表TBL1、TBL2和TBL3是考慮了記憶胞MC的臨界電壓因為各種影響而產生的變動而設定的LLR表。在LLR表TBL1、TBL2和TBL3中,對應於硬位元、第一軟位元和第二軟位元之組合的LLR彼此不相同。LLR轉換電路22從緩衝器記憶體13接收每ECC幀的HB資料、SB1資料和SB2資料之各者。LLR轉換電路22選擇儲存在RAM 16中的複數個LLR表中的任一個。LLR轉換電路22使用所選擇的LLR表,將每個ECC幀的硬位元、第一軟位元和第二軟位元的組合轉換成LLR。LLR轉換電路22將LLR發送到軟決策解碼電路21。
將參考圖8說明LLR表。圖8是LLR表的概念圖。
LLR表儲存每個索引的LLR,索引指示硬位元、第一軟位元和第二軟位元的組合。LLR隨著儲存在記憶胞MC中的資料為"0"的機率增加而採用較大的值(正值)。LLR隨著儲存在記憶胞MC中的資料為"1"的機率增加而採用較小的值(負值)。
如上參考圖6所述,例如,當某個記憶胞MC的臨界電壓處於分區D1時,從記憶胞MC讀取的硬位元、第一軟位元和第二軟位元的值分別為"1"、"1"和"1"。如上所述,具有分區D1中的臨界電壓的記憶胞MC的索引為0,並且記憶胞MC的LLR的值為-9。此外,當某個記憶胞MC的臨界電壓處於分區D5時,從記憶胞MC讀取的硬位元、第一軟位元和第二軟位元的值分別為"0"、"0"和"1"。如上所述,具有在分區D5中的臨界電壓的記憶胞MC的索引為4,並且記憶胞MC的LLR的值為+1。圖8的LLR的值只是一個範例。
將在返回參考圖7的同時進行說明。軟決策解碼電路21從LLR轉換電路22接收LLR。軟決策解碼電路21將LLR儲存在記憶體24中。軟決策解碼電路21從緩衝器記憶體13接收每ECC幀的HB資料、SB1資料和SB2資料。軟決策解碼電路21將HB資料、SB1資料和SB2資料儲存在記憶體24中。軟決策解碼電路21使用LLR、HB資料、SB1資料和SB2資料之間的軟決策奇偶來執行使用者資料的錯誤校正。軟決策解碼電路21將已校正資料儲存在記憶體24中。軟決策解碼電路21將已校正資料傳輸到通道矩陣產生電路23。
通道矩陣產生電路23從緩衝器記憶體13接收每個ECC幀的HB資料、SB1資料和SB2資料。通道矩陣產生電路23從記憶體24接收已校正資料。通道矩陣產生電路23基於HB資料、SB1資料和SB2資料獲取索引。通道矩陣產生電路23按每個索引對已校正資料中的資料"0"和資料"1"的DLECNT數進行計數,以產生通道矩陣。通道矩陣產生電路23將產生的通道矩陣發送到讀取資訊產生電路17。
將參考圖9說明通道矩陣。圖9是說明通道矩陣之範例的表。
在圖9的範例中,通道矩陣的大小為兩列八行。列表示已校正資料中資料"0"和資料"1"的DLECNT數。此處,num1[0]至num1[7]表示資料"1"的數量。並且,num0[0]至num0[7]表示資料"0"的數量。行表示索引。
例如,當已校正資料中的任意位元的值為"1"且對應於該位元的索引為0時,將第一列第一行的元素num1[0]加1。也就是說,num1[0]表示具有在分區D1中的臨界電壓並儲存資料"1"的記憶胞MC的數量。例如,當已校正資料中的任意位元的值為"0"且對應於該位元的索引為0時,將第二列第一行的元素num0[0]加1。也就是說,num0[0]表示具有在分區D1中的臨界電壓並儲存資料"0"的記憶胞MC的數量。
類似地,當已校正資料中的任意位元的值為"1"且對應於該位元的索引為4時,將第一列第五行的元素num1[4]加1。也就是說,num1[4]表示具有在分區D5中的臨界電壓並儲存資料"1"記憶胞MC的數量。此外,當已校正資料中的任意位元的值為"0"且對應於該位元的索引為4時,將第二列第五行的元素num0[4]加1。也就是說,num0[4]表示具有在分區D5中的臨界電壓並儲存資料"0"記憶胞MC的數量。
[1-1-6-2]讀取資訊產生電路的處理
接下來,將說明讀取資訊產生電路17的處理。
將在返回參考圖7的同時進行說明。讀取資訊產生電路17從通道矩陣產生電路23接收通道矩陣。
(DLE1表產生處理)
讀取資訊產生電路17透過使用通道矩陣統計計算每個索引的位元的似然比(具體地,LLR)來產生DLE1表。具體而言,在下面的方程式(1)中,針對每個索引計算LLR[idx]。
方程式(1)被轉換為下面的方程式(2)。
在上面的方程式中,"idx"表示索引的值;"s"表示大於或等於0且小於或等於t的整數;以及"t"表示索引數量減1所得的值。計算出的LLR在例如絕對值為小於或等於9的整數處飽和。也就是說,當計算出的LLR小於-9時,LLR變成-9。當計算出的LLR大於9時,LLR變成+9。
(移位值產生處理)
將參考圖10A至10E說明移位值Vst的產生處理。圖10A是說明移位值Vst的產生處理的圖。圖10B至10E是示出記憶胞MC的臨界電壓分布和通道矩陣之間的關係的圖。
讀取資訊產生電路17使用通道矩陣產生移位值Vst。具體而言,讀取資訊產生電路17使用通道矩陣之每個索引的資料"1"的DLECNT數(num1[0]至num1[7])和資料"0"的DLECNT數(num0[0]至num0[7])。例如,由圖10B的斜線指示的區域對應於DLECNT數(num1[2]),其指示在複數個記憶胞MC中包括在對應於索引2的電壓範圍內並在已校正資料中儲存"1"(即,錯誤校正成功的資料)的記憶體胞MC的數量。由圖10C的斜線指示的區域對應於DLECNT數(num0[2]),其指示在複數個記憶胞MC中包括在對應於索引2的電壓範圍內並在已校正資料中儲存"0"的記憶體胞MC的數量。由圖10D的斜線包圍的區域對應於DLECNT數(num1[3]),其指示在複數個記憶胞MC中包括在對應於索引3的電壓範圍內並在已校正資料中儲存"1"的記憶體胞MC的數量。由圖10E的斜線指示的區域對應於DLECNT數(num0[3]),其指示在複數個記憶胞MC中包括在對應於索引3的電壓範圍內並在已校正資料中儲存"0"的記憶體胞MC的數量。
讀取資訊產生電路17從通道矩陣的第一行開始依序比較資料"1"的DLECNT數和資料"0"的DLECNT數。讀取資訊產生電路17檢測其中資料"1"的DLECNT數與資料"0"的DLECNT數被反轉的行。如圖10B和10C中所示,在通道矩陣中對應於索引2的第三行(分區D3)中,資料"1"的數(num1[2])大於資料"0"的數(num0[2])。如圖10D和10E中所示,在通道矩陣中對應於索引3的第四行(分區D4)中,資料"0"的數(num0[3])大於資料"1"的數(num1[3])。資料"1"的數和資料"0"的數的大小在記憶胞MC的兩個臨界電壓分布重疊的交叉點的電壓邊界上被反轉。換言之,估計記憶胞MC的兩個臨界電壓分布重疊的交叉點對應於資料"1"的數和資料"0"的數的大小被反轉的點。因此,在通道矩陣中,檢測到其中資料"1"的數和資料"0"的數的大小被反轉的行,以獲取錯誤位元數相對較少的位置,即,記憶胞MC的兩個臨界電壓分布重疊的交叉點。
因此,尋找兩個臨界電壓分布重疊的交叉點被稱為"追蹤"。讀取資訊產生電路17獲取被設定在大小被反轉的行與對應於其中臨界電壓比該行低了電壓dR的分區的行之間的電壓(透過追蹤獲取的電壓)。讀取資訊產生電路17產生移位值Vst,作為預設電壓Vdt加上或者減去透過追蹤獲取的電壓(在下文中,亦被稱為"追蹤電壓Vtr")與預設電壓Vdt之間的差分電壓的結果。
在圖10A中所示的範例中,如上所述,具有對應於索引2(分區D3)的臨界電壓且儲存資料"1"的記憶胞MC的數(num1[2])大於具有對應於索引2的臨界電壓且儲存資料"0"的記憶胞MC的數(num0[2])。此外,具有對應於索引3(分區D4)的臨界電壓且儲存資料"1"的記憶胞MC的數(num1[3])小於具有對應於索引3的臨界電壓且儲存資料"0"的記憶胞MC的數(num0[3])。也就是說,在圖10A所示的範例中,DLECNT的大小在通道矩陣的第三行和第四行之間反轉,即,SB讀取電壓AR(-1)的左右。估計記憶胞MC的兩個臨界電壓分布重疊的交叉點從HB讀取電壓AR(0)偏離至1 x dR低電壓側。在此情況下,讀取資訊產生電路17至少基於索引2的資料"1"的數(num1[2])和索引2的資料"0"的數(num0[2])來計算追蹤電壓Vtr(兩個臨界電壓分布重疊的交叉點的電壓)。此外,讀取資訊產生電路17還基於索引3的資料"1"的數(num1[3])和索引3的資料"0"的數(num0[3])來計算追蹤電壓Vtr。例如,當對應於索引2的電壓範圍內的任何電壓低於對應於索引3的電壓範圍內的任何電壓時,讀取資訊產生電路17根據num1[2]大於num0[2]且num1[3]小於num0[3],從對應於索引2的電壓範圍與對應於索引3的電壓範圍之間的電壓範圍計算追蹤電壓Vtr(例如,電壓AR(-1))。此外,讀取資訊產生電路17產生將預設電壓Vdt加上或減去追蹤電壓Vtr(電壓AR(-1))與預設電壓Vdt之間的差分電壓(圖10A之範例中的Vdif1)的結果,作為移位值Vst。
此外,例如,當DLECNT的大小在HB讀取電壓AR(0)的左右行之間反轉時,讀取資訊產生電路17產生將預設電壓Vdt加上或減去電壓AR(0)與預設電壓Vdt之間的差分電壓(圖10A之範例中的Vdif2)的結果,作為移位值Vst。當DLECNT的大小在SB讀取電壓AR(+2)的左右行之間反轉時,讀取資訊產生電路17產生將預設電壓Vdt加上或減去電壓AR(+2)與預設電壓Vdt之間的差分電壓(圖10A之範例中的Vdif3)的結果,作為移位值Vst。
注意,如從方程式(1)或(2)所理解的,當在具有對應於任何索引idx的臨界電壓的記憶胞MC中儲存資料"1"的記憶胞MC的數量大於儲存資料"0"的記憶胞MC的數量(即,當num1[idx] > num0[idx])時,對應於索引idx的LLR[idx]的符號變成負號。另一方面,當在具有對應於任何索引idx的臨界電壓的記憶胞MC中儲存資料"1"的記憶胞MC的數量小於儲存資料"0"的記憶胞MC的數量(即,當num1[idx] < num0[idx])時,對應於索引idx的LLR[idx]的符號變成正號。也就是說,在通道矩陣中DLECNT的大小被反轉的索引和在DLE1表中LLR的符號被反轉的索引是彼此相同的。
(DLE1表校正處理)
將參考圖11A至11C說明DLE1表的校正處理。圖11A至11C是說明DLE1表的校正處理的圖。圖11A示出記憶胞MC的兩個臨界電壓分布的交叉點(即,追蹤電壓Vtr)是電壓AR(-1)的情況的範例。
如圖11A中所示,DLE1表包括與分別對應於索引0至7的電壓範圍相對應的LLR。在下文中,與對應於索引0至7的電壓範圍相對應的LLR也分別被稱為"索引0的LLR"、"索引1的LLR"、…、"索引7的LLR"。在DLE1表產生之後,例如,索引2的LLR是-1。索引3的LLR是+1。
讀取資訊產生電路17獲取SB校正成功的HB讀取電壓,即,當獲取到SB校正成功的資料時施加到字線的電壓(此處,假設是電壓AR(0)),與追蹤電壓Vtr(此處,假設是電壓AR(-1))之間的電壓差。讀取資訊產生電路17基於獲取的電壓差來校正DLE1表。
具體而言,讀取資訊產生電路17基於獲取的電壓差對DLE1表的每個LLR進行移位。在圖11A中,讀取資訊產生電路17將DLE1表的索引0至5的各個LLR向右移動1。索引0的LLR (= -5)被移動到索引1。索引1的LLR (= -3)被移動到索引2。索引2的LLR (= -1)被移動到索引3。也就是說,當SB校正成功的HB讀取電壓大於追蹤電壓Vtr時,讀取資訊產生電路17將校正前DLE1表的索引2中儲存的LLR (= -1)儲存為校正後的DLE1表的索引3的LLR。索引3的LLR (= +1)被移動到索引4。索引4的LLR (= +3)被移動到索引5。索引5的LLR (= +5)被移動到索引6。由於索引7的LLR (= +9)將被替換為將在下面說明的積分值(integrated value),因此索引7的LLR被刪除一次。此時,由於LLR的移位,索引0和7中不包括LLR。
讀取資訊產生電路17使用方程式(1),基於通道矩陣之複數個索引的DLECNT計算索引7的LLR(在下文中,亦被稱為"積分值")。在圖11A所示範例的情況下,讀取資訊產生電路17將通道矩陣的索引6的"0"的數(num0[6])與索引7的"0"的數(num0[7])的和代入方程式(1)的num0[idx]。讀取資訊產生電路17將通道矩陣的索引6的"1"的數(num1[6])與索引7的"1"的數(num1[7])的和代入方程式(1)的num1[idx]。也就是說,讀取資訊產生電路17基於num0[6]和num0[7]以及num1[6]和num1[7]計算積分值。當使用方程式(1)計算的值大於+9時,讀取資訊產生電路17將+9設為積分值。此處,假設讀取資訊產生電路17計算+9作為積分值。讀取資訊產生電路17將計算出的+9設為DLE1表的索引7的LLR。
讀取資訊產生電路17將透過反轉積分值(索引7的LLR)的符號獲得的值(= -9)設為DLE1表的索引0的LLR。結果,完成了DLE1表的校正處理。
圖11B示出當獲取到SB校正成功的資料時施加到字線的電壓為電壓AR(0),並且記憶胞MC的兩個臨界電壓分布的交叉點處於電壓AR(-2)的情況的範例。
在圖11B中,讀取資訊產生電路17將DLE1表的索引0至4的各個LLR向右移動2。索引0的LLR (= -3)被移動到索引2。索引1的LLR (= -1)被移動到索引3。索引2的LLR (= +1)被移動到索引4。索引3的LLR (= +3)被移動到索引5。索引4的LLR (= +5)被移動到索引6。由於索引7的LLR (= +9)將被替換為積分值,因此索引7的LLR被刪除一次。此時,由於LLR的移位,索引0、1和7中不包括LLR。
讀取資訊產生電路17使用方程式(1),基於通道矩陣之索引5至7的三個DLECNT計算積分值。在圖11B所示範例的情況下,讀取資訊產生電路17將通道矩陣的索引5的"0"的數(num0[5])、索引6的"0"的數(num0[6])與索引7的"0"的數(num0[7])的和代入方程式(1)的num0[idx]。讀取資訊產生電路17將通道矩陣的索引5的"1"的數(num1[5])、索引6的"1"的數(num1[6])與索引7的"1"的數(num1[7])的和代入方程式(1)的num1[idx]。此處,假設讀取資訊產生電路17計算+9作為積分值。讀取資訊產生電路17將計算出的+9設為DLE1表的索引7的LLR。讀取資訊產生電路17將透過反轉積分值(索引7的LLR)的符號獲得的值(= -9)設為DLE1表的索引0的LLR。讀取資訊產生電路17將透過反轉DLE1表的索引6的LLR (= +5)的符號獲得的值(= -5)設為DLE1表的索引1的LLR。
SB讀取電壓的數量用(k x 2)表示(k為大於或等於1的整數),通道矩陣和DLE1表的索引用大於或等於0且小於或等於((k × 2) + 1)的整數表示。當記憶胞MC的兩個臨界電壓分布的交叉點是電壓AR(- j)而不是SB校正成功的HB讀取電壓(j為大於或等於1且小於或等於k的整數)時,讀取資訊產生電路17將DLE1表的索引0至((k × 2) - j)的LLR向右移動j。讀取資訊產生電路17基於通道矩陣的索引((k × 2) – j + 1)至((k × 2) + 1)中包括的(j + 1)個DLECNT計算積分值。讀取資訊產生電路17將計算出的積分值設為DLE1表的索引((k × 2) + 1)的LLR。讀取資訊產生電路17將透過反轉DLE1表的索引((k × 2) + 1)至((k × 2) + 1 - (j - 1))的LLR的符號獲得的值設為DLE1表的索引0至(j - 1))的LLR。
圖11C示出當獲取到SB校正成功的資料時施加到字線的電壓為電壓AR(0),並且記憶胞MC的兩個臨界電壓分布的交叉點處於電壓AR(+1)的情況的範例。
如圖11C中所示,在DLE1表產生之後,例如,索引2的LLR是-5。索引3的LLR是-3。
在圖11C中,讀取資訊產生電路17將DLE1表的索引2至7的各個LLR向左移動1。索引7的LLR (= +5)被移動到索引6。索引6的LLR (= +3)被移動到索引5。索引5的LLR (= +1)被移動到索引4。索引4的LLR (= -1)被移動到索引3。索引3的LLR (= -3)被移動到索引2。也就是說,當SB校正成功的HB讀取電壓小於追蹤電壓Vtr時,讀取資訊產生電路17將校正前儲存在DLE1表的索引3中的LLR (= -3)儲存為校正後的DLE1表的索引2的LLR。索引2的LLR (= -5)被移動到索引1。由於索引0的LLR (= -9)將被替換為積分值,因此索引0的LLR被刪除一次。此時,由於LLR的移位,索引0和7中不包括LLR。
讀取資訊產生電路17使用方程式(1),基於通道矩陣的索引0至1的兩個DLECNT計算積分值。在圖11C所示範例的情況下,讀取資訊產生電路17將通道矩陣的索引0的"0"的數(num0[0])與索引1的"0"的數(num0[1])的和代入方程式(1)的num0[idx]。讀取資訊產生電路17將通道矩陣的索引0的"1"的數(num1[0])與索引1的"1"的數(num1[1])的和代入方程式(1)的num1[idx]。當使用方程式(1)計算出的值小於-9時,讀取資訊產生電路17將-9設為積分值。此處,假設讀取資訊產生電路17計算-9作為積分值。讀取資訊產生電路17將計算出的-9設為DLE1表的索引0的LLR。讀取資訊產生電路17將透過反轉積分值(索引0的LLR)的符號獲得的值(= +9)設為DLE1表的索引7的LLR。
因此,當記憶胞MC的兩個臨界電壓分布的交叉點為電壓AR(+j)而不是SB校正成功的HB讀取電壓時,讀取資訊產生電路17將DLE1表的索引(j + 1)至((k × 2) + 1)的LLR向左移動j。讀取資訊產生電路17基於通道矩陣的索引0至j中包括的(j + 1)個DLECNT計算積分值。讀取資訊產生電路17將計算出的積分值設為DLE1表的索引0的LLR。讀取資訊產生電路17將透過反轉DLE1表的索引0至(j - 1)的LLR的符號獲得的值設為DLE1表的索引((k × 2) + 1)至((k × 2) + 1 - (j - 1))的LLR。
將在返回參考圖7的同時進行說明。讀取資訊產生電路17將透過移位值產生處理所產生的移位值Vst發送到RAM 16。當執行同一塊BLK中的下一頁的讀取操作時,將移位值Vst施加到HB讀取電壓。在同一塊BLK中的下一頁的讀取操作中,記憶體控制器10使用施加了移位值Vst的HB讀取電壓來執行HB讀取。記憶體控制器10基於施加了移位值Vst的HB讀取電壓,使用複數個SB讀取電壓來執行SB讀取。
讀取資訊產生電路17將透過DLE1表產生處理所產生的DLE1表發送到記憶體24。所產生的DLE1表在軟決策解碼電路21對同一頁中的下一個ECC幀執行SB校正時被用作LLR表,例如,直到DLE1表校正處理被執行為止。讀取資訊產生電路17將透過DLE1表校正處理校正的DLE1表發送到記憶體24。當DLE1表已經被儲存在記憶體24中時,DLE1表被已校正的DLE1表覆蓋。已校正的DLE1表例如在軟決策解碼電路21對同一頁中的下一個ECC幀執行SB校正時,被用作LLR表。此外,當軟決策解碼電路21對任何ECC幀執行多個SB校正時,軟決策解碼電路21可以按照例如LLR表TBL1、儲存在記憶體24中的DLE1表、LLR表TBL2和LLR表TBL3的順序來選擇LLR表。
[1-2]讀取操作
將參考圖12說明讀取操作。圖12是示出根據實施例之由設置在記憶體系統1中的記憶體控制器10執行的讀取操作的流程圖。以下,以胞單元(cell unit, CU)儲存1頁資料的情況為例進行說明。
當開始讀取操作時,記憶體控制器10首先將HB讀取電壓施加到所選擇的字線,以執行對應於任何塊BLK中的一頁的HB資料的讀取(HB讀取)(S10)。此處,選擇塊BLK中包括的一條字線(在下文中,亦被稱為"第一字線")。基於預設電壓值Vdt或儲存在RAM 16中的移位值Vst設定HB讀取電壓。讀取的HB資料(即,從連接到第一字線的複數個記憶胞MC獲取的)被儲存在緩衝器記憶體13中。
在執行HB讀取之後,記憶體控制器10從緩衝器記憶體13接收每個ECC幀的HB資料。硬決策解碼電路20校正ECC幀的使用者資料的錯誤(HB校正)。
當對應於一頁的HB資料的所有ECC幀的HB校正成功時(S11_Yes),並且當前頁並非在同一塊BLK中要讀取的最後一頁(在下文中,僅稱為"最終頁")時(S12_No),記憶體控制器10對同一塊BLK中的下一頁執行步驟S10的處理。當當前頁為最終頁時(S12_Yes),記憶體控制器10結束讀取操作。
另一方面,當對應於一頁的HB資料的至少一個ECC幀的HB校正不成功時(S11_No),記憶體控制器10將複數個SB讀取電壓施加到所選的字線以執行複數條SB資料(例如,SB1資料和SB2資料)的讀取(SB讀取)(S13)。基於HB讀取電壓設定複數個SB讀取電壓。讀取的SB1資料和SB2資料(即,從連接到第一字線的複數個記憶胞MC獲取的)被儲存在緩衝器記憶體13中。
在執行SB讀取之後,記憶體控制器10從緩衝器記憶體13接收每個ECC幀的HB資料、SB1資料和SB2資料(S14)。
LLR轉換電路22選擇複數個LLR表中的任一個。LLR轉換電路22使用所選的LLR表,針對每個ECC幀將硬位元、第一軟位元和第二軟位元的組合轉換成LLR。軟決策解碼電路21使用LLR、HB資料、SB1資料和SB2資料之中的軟決策奇偶來校正ECC幀的使用者資料的錯誤(SB校正)(S15)。
當ECC幀的SB校正成功時(S16_Yes),讀取資訊產生電路17基於從連接到第一字線的複數個記憶胞MC獲取的、透過SB校正校正的資料來產生DLE1表(S18)。產生的DLE1表被儲存在記憶體24中。
另一方面,當ECC幀的SB校正不成功時(S16_No),並且對於同一ECC幀不存在未選擇的LLR表時(S17_No),記憶體控制器10執行將於稍後說明的步驟S19的處理。儘管省略了詳細的說明,但是記憶體控制器10可以在執行步驟S19的處理之前,使用另一更強的錯誤校正方法,諸如乘積碼(product-code),來對ECC幀執行額外的錯誤校正。替代地,記憶體控制器10可以在執行步驟S19的處理之前,將無法校正的錯誤通知給主機裝置2。當對於同一ECC幀存在未選擇的LLR表時(S17_Yes),記憶體控制器10使用下一個LLR表執行步驟S15的處理。此外,"未選擇的LLR表"是指,例如,在LLR表TBL1、TBL2和TBL3以及DLE1表之中未被選擇的LLR表。
注意,當對任何ECC幀執行SB校正時,軟決策解碼電路21首先例如使用儲存在RAM 16中的LLR表TBL1來執行SB校正。當SB校正不成功,並且當DLE1表被儲存在記憶體24中時,軟決策解碼電路21使用DLE1表來執行SB校正。當SB校正不成功或當DLE1表未被儲存在記憶體24中時,軟決策解碼電路21使用儲存在RAM 16中的LLR表TBL2來執行SB校正。當SB校正不成功時,軟決策解碼電路21使用儲存在RAM 16中的LLR表TBL3來執行SB校正。
在步驟S18中的DLE1表產生處理之後或者當沒有未選擇的LLR表時(S17_否),記憶體控制器10確定當前的ECC幀是否為同一頁中的最後一個ECC幀(在下文中,稱為"最終ECC幀")。當當前的ECC幀不是最終ECC幀時(S19_否),記憶體控制器10針對同一頁中的下一個ECC幀執行步驟S14的處理。另一方面,當當前的ECC幀是最終ECC幀時(S19_是),並且當當前頁是最終頁時(S20_是),記憶體控制器10終止讀取操作。當當前頁不是最終頁時(S20_否),讀取資訊產生電路17產生移位值Vst(S21)。所產生的移位值Vst在稍後說明的處理步驟S22之後被儲存在RAM 16中。
當產生的移位值Vst與儲存在RAM 16中的移位值相同時(S22_是),記憶體控制器10針對同一塊BLK中的下一頁執行步驟S10的處理。另一方面,當產生的移位值Vst與儲存在RAM 16中的移位值不相同時(S22_否),讀取資訊產生電路17基於當獲取到SB校正成功的資料時施加到第一字線的電壓與追蹤電壓Vtr之間的電壓差來校正DLE1表(S23)。校正後的DLE1表被儲存在記憶體24中。此後,記憶體控制器10針對同一塊BLK中的下一頁執行步驟S10的處理。
同一塊BLK中的下一頁的處理將例如如下所述。在步驟S10的處理中,選擇與同一塊BLK中包括的第一字線不同的一條字線(在下文中,亦稱為"第二字線"),並且記憶體控制器10將HB讀取電壓(移位值Vst,即,追蹤電壓Vtr)施加到第二字線,以執行HB讀取。在步驟S13的處理中,記憶體控制器10將複數個SB讀取電壓施加到第二字線,以執行SB讀取。在步驟S16的處理中,記憶體控制器10使用基於從連接到包括在同一塊BLK中的第一字線的複數個記憶胞MC獲取的資料進行校正的DLE1表,對從連接到第二字線的複數個記憶胞MC獲取的資料執行錯誤校正。
[1-3]效果
根據第一實施例,可以增強記憶體系統1的資料錯誤校正能力。下面將參考圖13A和13B說明該效果。圖13A和13B是示出根據實施例之記憶體系統1的效果的圖。
在記憶體系統1中,同一塊中的下一頁(在下文中,亦稱為"第二頁")的記憶胞MC的兩個臨界電壓分布(在下文中,亦稱為"第二頁的臨界電壓分布")與任何頁(在下文中,亦稱為"第一頁")的記憶胞MC的兩個臨界電壓分布(在下文中,亦稱為"第一頁的臨界電壓分布")傾向具有類似的分布。例如,這是第一頁和第二頁連接到同一條字線並分別設置在連續的串單元SU中的情況。圖13A和13B的範例中,示出第一頁的臨界電壓分布與第二頁的臨界電壓分布。
圖13A示出第一頁的臨界電壓分布的範例,其中分布的交叉點位於電壓AR(0)附近。假設對於具有臨界電壓分布的第一頁,使用電壓AR (+1)作為HB讀取電壓來執行讀取操作。例如,當在第一頁的讀取操作中SB校正成功時,使用SB校正成功的資料來產生圖13A中所示的通道矩陣。例如,圖13A中所示的DLE1表(在下文中,亦稱為"表D1A")是使用所產生的通道矩陣來產生的。
在圖13A中所示的範例中,DLECNT的大小在通道矩陣的索引2和3之間反轉。因此,如上參考圖10A所述,LLR的符號在表D1A的索引2和3之間反轉。如上參考圖10B至10E所述,估計第一頁的臨界電壓分布的交叉點(電壓)位於通道矩陣的DLECNT的大小被反轉的位置,即,表D1A的LLR的符號被反轉的位置。
在實施例中,透過追蹤來獲取第一頁的臨界電壓分布的交叉點(電壓AR(0))。然而,在第一頁的讀取操作中使用並在SB校正中成功的HB讀取電壓AR(+1)與第一頁的臨界電壓分布的交叉點(電壓AR(0))不匹配。
如上所述,假設第一頁的臨界電壓分布與第二頁的臨界電壓分布傾向具有類似的分布。因此,估計第二頁的臨界電壓分布的交叉點的位置與第一頁的臨界電壓分布的交叉點的位置相似。如上所述,兩個臨界電壓分布重疊的交叉點的位置是指錯誤位元數相對較少的位置。結果,透過將第一頁的臨界電壓分布的交叉點的電壓(即,電壓AR(0))設為第二頁的HB讀取電壓來執行讀取操作,從而降低了第二頁的SB校正不成功的可能性。
為此,在實施例中,產生加上或減去透過追蹤獲取的電壓AR(0)與預設電壓Vdt之間的差分電壓的結果,作為移位值Vst。透過將移位值Vst(電壓AR(0))設為HB讀取電壓來執行第二頁的讀取操作。
然而,如圖13A中所示,第二頁的臨界電壓分布的交叉點的位置與表D1A的LLR的符號被反轉的位置之間存在差值。在此情況下,當表D1A的LLR被施用到使用HB讀取電壓AR(0)從第二頁讀取的資料時,第二頁的SB校正不成功的可能性增加。另一方面,若LLR的符號被反轉的位置位於索引3和4之間,則解決了第二頁的臨界電壓分布的交叉點的位置與表D1A的LLR的符號被反轉的位置之間的差值。在此情況下,降低了第二頁的SB校正不成功的可能性。
因此,在實施例中,如圖13B中所示,基於在第一頁的讀取操作中SB校正成功的HB讀取電壓(AR(+1))與第一頁的臨界電壓分布的交叉點的電壓(電壓AR(0))之間的電壓差來校正表D1A。基於該電壓差來移位表D1A的LLR,結果,表D1A被校正為圖13B中所示的DLE1表(在下文中,亦稱為"表D1B")。結果,表D1B的LLR的符號被反轉的位置位於索引3和4之間。也就是說,第二頁的臨界電壓分布的交叉點的位置與表D1B的LLR的符號被反轉的位置之間的差值被解決了。結果,當表D1B的LLR被施用到使用HB讀取電壓AR(0)從第二頁讀取的資料時,第二頁的SB校正成功的可能性增加。因此,可以增強資料的錯誤校正能力。
[2]第二實施例
將說明第二實施例。根據第二實施例的記憶體系統1與根據第一實施例的記憶體系統1的不同之處在於記憶體控制器10的配置、ECC電路14的配置、和由讀取資訊產生電路17進行的DLE1表校正處理。在下文中,將主要說明與第一實施例的不同之處。
[2-1]記憶體控制器10的配置
將參考圖14說明記憶體控制器10的內部配置。圖14是示出包括根據第二實施例的記憶體系統1的資訊處理系統的範例的方塊圖。
記憶體控制器10還包括動態LLR估計2(DLE2)表產生電路25。
DLE2表產生電路25是執行DLE2表之產生處理的電路。DLE2表是表示複數個記憶胞MC的臨界電壓的電壓範圍和LLR之間的關係的表,並且基於在軟決策解碼電路21中校正不成功的資料而產生。稍後將說明DLE2表產生電路25的處理的細節。
記憶體控制器10中的其他配置與參考圖1所述之第一實施例的配置相同。記憶體系統1中的其他配置與參考圖1所述之第一實施例的配置相同。
[2-2]ECC電路14的配置
將參考圖15說明ECC電路14的內部配置。圖15是示出ECC電路之配置的範例的方塊圖。
ECC電路14還包括通道矩陣估計電路26。
通道矩陣估計電路26是執行通道矩陣之估計處理的電路。通道矩陣估計電路26使用硬位元和軟位元的組合,以及軟決策解碼電路21中校正不成功的資料來估計每個ECC幀的通道矩陣。在下文中,軟決策解碼電路21中校正不成功的資料也被稱為"不成功的資料"。
記憶體24儲存由DLE2表產生電路25產生的DLE2表。
ECC電路14中的其他配置與參考圖2所述之第一實施例的配置相同。
[2-3]ECC電路14的處理
將參考圖16說明ECC電路14的處理。圖16是示出軟決策解碼處理的圖。
當SB校正不成功時,軟決策解碼電路21將不成功的資料儲存在記憶體24中。軟決策解碼電路21將不成功的資料傳送到通道矩陣估計電路26。
通道矩陣估計電路26從緩衝器記憶體13接收讀取自NAND型快閃記憶體30的每個ECC幀的資料(HB資料、SB1資料、和SB2資料)。通道矩陣估計電路26從記憶體24接收不成功的資料。不成功的資料中包括的錯誤位元數可能與接收自緩衝器記憶體13的資料中包括的錯誤位元數不同。通道矩陣估計電路26將從緩衝器記憶體13接收到的一組HB資料、SB1資料和SB2資料、以及從記憶體24接收到的不成功的資料進行聚合,並且基於聚合結果估計通道矩陣。通道矩陣估計電路26將估計的通道矩陣發送到DLE2表產生電路25。
ECC電路14的其他處理與參考圖7所述之第一實施例的處理相同。
[2-4]DLE2表產生電路25的處理
將參考圖16說明DLE2表產生電路25的處理。
DLE2表產生電路25透過使用估計的通道矩陣統計計算每個索引的位元的似然比(具體地,LLR)來產生DLE2表。DLE2表產生電路25根據估計的通道矩陣計算DLE2表。DLE2表的計算公開於例如在2020年1月7日申請的日本專利申請案(專利申請案號第2020-899號)中。該專利申請案的全部內容透過引用併入本文。
DLE2表產生電路25將DLE2表發送到記憶體24。當DLE2表被儲存在記憶體24中時,儲存在記憶體24中的DLE2表被記憶體24所接收的DLE2表覆蓋。DLE2表係用於稍後描述的DLE1表的第二校正處理。
[2-5]讀取資訊產生電路17的處理
由讀取資訊產生電路17執行的DLE1表校正處理包括第一校正處理和第二校正處理。
將參考圖17說明第一校正處理和第二校正處理。圖17是示出DLE1表之第一校正處理和第二校正處理的圖。圖17示出SB校正成功的HB讀取電壓是電壓AR(0),並且記憶胞MC的兩個臨界電壓分布的交叉點處於電壓AR(-1)的情況的範例。
如圖17中所示,DLE2表包括與分別對應於索引0至7的電壓範圍相對應的LLR。在圖17中,DLE2表的索引0至7分別對應於DLE1表的索引0至7。
(第一校正處理)
關於DLE1表,與第一實施例類似,讀取資訊產生電路17將索引0至5之各者的LLR向右移動1,並計算積分值以及將積分值設為索引7的LLR。結果,完成了第一校正處理。在此步驟中,索引0不包括LLR。
注意,例如,當記憶胞MC的兩個臨界電壓分布的交叉點處於電壓AR(-2)時,關於DLE1表,與第一實施例類似,讀取資訊產生電路17將索引0至4之各者的LLR向右移動2,並且計算積分值以及將積分值設為索引7的LLR。
(第二校正處理)
在第一校正處理之後,DLE2表的索引0的LLR被設為由第一校正處理校正的DLE1表的索引0的LLR。結果,完成了第二校正處理。
注意,例如,當記憶胞MC的兩個臨界電壓分布的交叉點處於電壓AR(-2)時,讀取資訊產生電路17將DLE2表之索引0的LLR設為透過第一校正處理校正的DLE1表之索引0的LLR。讀取資訊產生電路17進一步將DLE2表之索引1的LLR設為透過第一校正處理校正的DLE1表之索引1的LLR。
[2-6]讀取操作
將參考圖18和19說明讀取操作。圖18和19是示出根據第二實施例之由設置在記憶體系統1中的記憶體控制器10執行的讀取操作的流程圖。在第二實施例中,S30到S34的操作被添加到第一實施例之圖12中所示的S10到S23的操作。此外,在第二實施例中,將S23的操作替換為第一校正處理。S10到S22的操作與第一實施例的操作相同。在下文中,將主要說明S23及S30到S34的操作。
在圖18中,當ECC幀的SB校正不成功時(S16_否),並且當同一ECC幀沒有未選擇的LLR表時(S17_否),記憶體控制器10執行步驟S19的處理。當有未選擇的LLR表時(S17_是),記憶體控制器10確定DLE1表是否已被選取作為同一ECC幀的LLR表。
當DLE1表已被選取用於同一ECC幀時(S30_是),記憶體控制器10使用下一個LLR表執行步驟S15的處理。另一方面,當沒有DLE1表被選取用於同一ECC幀時(S30_否),記憶體控制器10確定DLE1表是否在記憶體24中。
當不存在DLE1表時(S31_否),記憶體控制器10使用下一個LLR表執行步驟S15的處理。另一方面,當存在DLE1表時(S31_是),記憶體控制器10確定在DLE1表中是否存在不包括LLR的索引。注意,在DLE1表中存在不包括LLR的索引的狀態是例如,LLR透過第一校正處理被移位並且在DLE1表中存在其中LLR未被設定的空白索引的狀態。
當DLE1表中不存在包括不LLR的索引時(S32_否),記憶體控制器100使用下一個LLR表(例如,DLE1表)執行步驟S15的處理。另一方面,當DLE1表中存在不包括LLR的索引時(S32_是),記憶體控制器10(更具體來說,DLE2表產生電路25)產生DLE2表(S33)。產生的DLE2表被儲存在記憶體24中。讀取資訊產生電路17使用產生的DLE2表來執行DLE1表的第二校正處理(S34)。透過第二校正處理校正的DLE1表被儲存在記憶體24中。此後,記憶體控制器10使用下一個LLR表(例如,透過第二校正處理校正的DLE1表)執行步驟S15的處理。
在圖19中,當產生的移位值Vst與儲存在RAM 16中的移位值不相同時(S22_否),讀取資訊產生電路17執行DLE1表的第一校正處理(S23)。透過第一校正處理校正的DLE1表被儲存在記憶體24中。此後,記憶體控制器10針對同一塊BLK中的下一頁執行步驟S10的處理。
[2-7]效果
利用根據第二實施例的配置,示出了與第一實施例相同的效果。
此外,根據第二實施例,執行第二校正處理以創建更靠近要進行SB校正的ECC幀的臨界電壓分布的LLR的DLE1表。
[3]第三實施例
將說明第三實施例。根據該實施例的記憶體系統1與根據第一實施例的記憶體系統1的不同之處在於由讀取資訊產生電路17執行的DLE1表校正處理。示出記憶體控制器10的讀取操作的流程圖與第一實施例的流程圖相同。在下文中,將主要說明與第一實施例的不同之處。
[3-1]讀取資訊產生電路17的處理
(DLE1表校正處理)
讀取資訊產生電路17使用LLR型樣表(pattern table)來校正DLE1表。LLR型樣表是指示複數個記憶胞MC的臨界電壓的電壓範圍與LLR之間的關係的表。例如,在接通電源之後立即將LLR型樣表從NAND型快閃記憶體30加載到RAM 16中。LLR型樣表由記憶體控制器10管理。
將參考圖20說明LLR型樣表。圖20是LLR型樣表的概念圖。
LLR型樣表儲存索引0至7之各者的LLR。如圖20中所示,LLR型樣表包括與分別對應於索引0至7的電壓範圍相對應的LLR。在圖20的範例中,LLR型樣表分別被創建為對應於HB讀取電壓之低電壓側分區D1至D4的索引0至3以及對應於高電壓側分區D5至D8的索引4至7。用於HB讀取電壓之低電壓側的LLR型樣表包括兩個LLR型樣Pat1和Pat2。LLR型樣Pat1具有對應於索引0至3之各者的LLR。同樣情形亦適用於LLR型樣Pat2。用於HB讀取電壓之高電壓側的LLR型樣表包括兩個LLR型樣Pat3和Pat4。LLR型樣Pat3具有對應於索引4至7之各者的LLR。同樣情形亦適用於LLR型樣Pat4。注意,圖20的LLR的值是範例。用於HB讀取電壓之低電壓側的LLR型樣表和用於HB讀取電壓之高電壓側的LLR型樣表可以被整合到一個表中。每個LLR型樣可以例如針對每個應力條件透過實驗來獲得。應力條件包括NAND型快閃記憶體30的溫度或者針對NAND型快閃記憶體30執行的資料擦除操作的次數。例如,當NAND型快閃記憶體30處於高溫時,LLR型樣Pat1具有對應於索引0至3之各者的LLR。例如,當NAND型快閃記憶體30處於低溫時,LLR型樣Pat2具有對應於索引0至3之各者的LLR。
將參考圖21說明DLE1表的校正處理。圖21是示出DLE1表之校正處理的圖。圖21示出SB校正成功之HB讀取電壓為電壓AR(0)且記憶胞MC的兩個臨界電壓分布的交叉點處於電壓AR(-1)的情況的範例。
在圖21中,LLR型樣表的索引0到3分別對應於DLE1表的索引0至3。
關於DLE1表,與第一實施例類似,讀取資訊產生電路17將索引0至5之各者的LLR向右移動1,並計算積分值以及將積分值設為索引7的LLR。此後,讀取資訊產生電路17將DLE1表之索引1至3的一組三個LLR(在圖21中所示的範例中為-5、-3和-1)與LLR型樣表之索引1至3的一組三個LLR進行比較。作為比較的結果,讀取資訊產生電路17選擇其中至少一部分的LLR與DLE1表的LLR匹配的LLR型樣。在圖20和21所示的範例中,讀取資訊產生電路17選擇LLR型樣Pat1。讀取資訊產生電路17可以選擇具有例如較多匹配索引數的LLR型樣。在圖21的範例中,示出匹配的索引數為3(索引1到3)的情況。讀取資訊產生電路17將選擇的LLR型樣Pat1的索引0的LLR (= -9)設為DLE1表的索引0的LLR。結果,完成了DLE1表的校正處理。
注意,例如,關於DLE1表,與第一實施例類似,若記憶胞MC的兩個臨界電壓分布的交叉點處於電壓AR(-2),讀取資訊產生電路17將索引0至4之各者的LLR向右移動2,並且計算積分值以及將積分值設為索引7的LLR。此後,讀取資訊產生電路17將DLE1表之一組兩個索引2和3的LLR與LLR型樣表之一組兩個索引2和3的LLR進行比較。作為比較的結果,讀取資訊產生電路17選擇其中至少一部分的LLR與DLE1表的LLR匹配的LLR型樣。讀取資訊產生電路17可以選擇具有例如較多匹配索引數的LLR型樣。讀取資訊產生電路17將選擇的LLR型樣的索引0的LLR設為DLE1表的索引0的LLR。讀取資訊產生電路17進一步將選擇的LLR型樣的索引1的LLR設為DLE1表的索引1的LLR。
[3-2]效果
利用根據第三實施例的配置,可獲得與第一實施例相同的效果。
此外,根據第三實施例,可以創建DLE1表,其更接近要進行SB校正之ECC幀的臨界電壓分布的LLR。
[4]第四實施例
將說明第四實施例。根據第四實施例的記憶體系統1與根據第一實施例的記憶體系統1的不同之處在於由讀取資訊產生電路17執行的DLE1表校正處理。示出記憶體控制器10的讀取操作的流程圖與第一實施例的流程圖相同。在下文中,將主要說明與第一實施例的不同之處。
[4-1]讀取資訊產生電路17的處理
(DLE1表校正處理)
讀取資訊產生電路17使用基於HB讀取電壓之高電壓側LLR的和與HB讀取電壓之低電壓側LLR的和的比率計算的LLR來校正DLE1表。
將參考圖22說明DLE1表的校正處理。圖22是示出DLE1表之校正處理的圖。圖22示出SB校正成功之HB讀取電壓為電壓AR(0),且記憶胞MC的兩個臨界電壓的交叉點處於電壓AR(-1)的範例。
關於DLE1表,與第一實施例類似,讀取資訊產生電路17將索引0至5之各者的LLR向右移動1,並且計算積分值以及將積分值設為索引7的LLR。此後,讀取資訊產生電路17基於HB讀取電壓之高電壓側LLR的和與HB讀取電壓之低電壓側LLR的和的比率,計算其中未配置LLR的空白的索引的LLR。具體而言,以下面的方程式(3)計算LLR。
在上面的方程式中,LLR1是對應於索引0的LLR。此外,LLR2至LLR8分別為對應於索引1至7的LLR的絕對值。計算出的LLR在例如絕對值小於或等於9的整數處飽和。
讀取資訊產生電路17將以上面方程式(3)計算的值(= -9)設為DLE1表之索引0的LLR。結果,完成了DLE1表的校正處理。
注意,例如,關於DLE1表,與第一實施例類似,若記憶胞MC的兩個臨界電壓分布的交叉點處於電壓AR(-2),讀取資訊產生電路17將索引0至4之各者的LLR向右移動2,並且計算積分值以及將積分值設為索引7的LLR。此後,讀取資訊產生電路17基於HB讀取電壓之高電壓側LLR的和與HB讀取電壓之低電壓側LLR的和的比率,計算其中未設定LLR的空白索引的LLR。具體而言,以下面的方程式(4)計算LLR。
在上面的方程式中,LLR2是對應於索引1的LLR。此外,LLR3至LLR7是分別對應於索引2至6之LLR的絕對值。計算出的LLR在例如絕對值為9或小於9的整數處飽和。
讀取資訊產生電路17將以上面方程式(4)計算的值設為DLE1表之索引1的LLR。讀取資訊產生電路17將以上面方程式(3)計算的值設為DLE1表之索引0的LLR。
[4-2]效果
利用根據第四實施例的配置,可以獲得與第一實施例相同的效果。
此外,根據第四實施例,可以創建DLE1表,其更接近要進行SB校正的ECC幀的臨界電壓分布的LLR。
[5]第五實施例
將說明第五實施例。在根據第五實施例的記憶體系統1中,由記憶體控制器10執行的讀取操作與第二實施例的不同。在下文中,將主要說明與第二實施例的不同之處。
[5-1]讀取操作
將參考圖23說明讀取操作。圖23是示出根據第五實施例之由設置在記憶體系統1中的記憶體控制器10執行的讀取操作的流程圖。在第五實施例中,將根據第二實施例之圖19的步驟S23的處理替換為圖23的步驟S40到S46的處理。步驟S10到S22和步驟S30到S34的處理與第二實施例的處理相同。在下文中,將主要說明S40到S46的操作。
在圖23中,當產生的移位值Vst與儲存在RAM 16中的移位值不同時(S22_否),且當基於DLE1表的LLR的符號是反轉的位置,在DLE1表的至少一部分中LLR是對稱的時(S40_是),讀取資訊產生電路17執行根據第一實施例的DLE1表的校正處理(S43)。圖24是示出DLE1表中LLR的對稱性的圖。在圖24的範例中,在索引2和3中,LLR的絕對值是相同的且LLR的符號是反轉的。也就是說,索引2的LLR和索引3的LLR是對稱的。在索引1和4中,LLR的絕對值是相同的且LLR的符號是反轉的。也就是說,索引1的LLR和索引4的LLR是對稱的。
將在返回參考圖23的同時進行說明。當在整個DLE1表中LLR不是對稱的時(S40_否),且當在DLE1表和LLR型樣中至少一部分的LLR匹配時(S41_是),讀取資訊產生電路17執行根據第三實施例的DLE1表校正處理(S44)。
當在DLE1表和LLR型樣中沒有一個LLR匹配時(S41_否),且當在DLE2表和DLE1表中至少一部分的LLR匹配時(S42_是),讀取資訊產生電路17執行第二實施例的第一校正處理(S45)。
當在DLE2表和DLE1表中沒有一個LLR匹配時(S42_否),讀取資訊產生電路17執行第四實施例的DLE1表校正處理(S46)。
[5-2]效果
利用第五實施例的配置,可以獲得與第一實施例相同的效果。
此外,根據第五實施例,可以使用根據臨界電壓分布的形狀的最佳DLE1表。
[6]修改
如上所述,根據實施例的記憶體系統包括半導體記憶體裝置(30)和控制器(10),該半導體記憶體裝置(30)包括複數個記憶胞(胞單元(CU)),各個記憶胞被配置成根據其臨界電壓以非揮發性方式儲存資料並連接到字線,以及該控制器(10)被配置成:基於從該複數個記憶胞讀取的硬位元資料和軟位元資料執行錯誤校正(21);基於透過該錯誤校正(21)而被校正的資料來產生第一表(DLE1表);確定第一電壓(HB讀取電壓)和第二電壓(Vtr)之間的電壓差,該第一電壓是在讀取該被校正的資料時施加到該字線的電壓;並且基於該電壓差來校正該第一表。
此外,實施例不限於上述的實施例,而是可以進行各種修改。
此外,在實施例中描述的流程圖中,可以盡可能地改變處理的順序。例如,步驟S40、S41和S42之確定處理的順序不限於圖23之流程圖中所示的順序。此外,在圖23的流程圖中,可以省略步驟S40和S43。可以省略步驟S41和S44。可以省略步驟S42和S45。可以省略步驟S46。
儘管已經說明了某些實施例,但這些實施例僅作為示例呈現,並不旨在限制本公開的範圍。實際上,本文所述的新穎實施例可以以多種其他形式體現;此外,在不背離本公開的精神的情況下,可以以本文所述之實施例的形式進行各種省略、替換和改變。所附之申請專利範圍和其等效物旨在覆蓋落入本公開之範圍和精神內的此類形式或修改。
1:記憶體系統 2:主機裝置 10:記憶體控制器 11:主機介面(I/F)電路 12:處理器(中央處理單元(CPU)) 13:緩衝器記憶體 14:錯誤檢查和校正(ECC)電路 15:唯讀記憶體(ROM) 16:隨機存取記憶體(RAM) 17:讀取資訊產生電路 18:NAND介面(I/F)電路 19:編碼電路 20:硬決策解碼電路 21:軟決策解碼電路 22:LLR轉換電路 23:通道矩陣產生電路 24:記憶體 25:動態LLR估計2(DLE2)表產生電路 26:通道矩陣估計電路 30:半導體記憶體裝置(NAND型快閃記憶體) 31:記憶胞陣列 32:輸入/輸出電路 33:邏輯控制電路 34:就緒/忙碌控制電路 35:暫存器 35A:命令暫存器 35B:位址暫存器 35C:狀態暫存器 36:序列器 37:驅動器模組 38:列解碼器模組 39:感測放大器模組
[圖1]是示出包括根據第一實施例之記憶體系統的資訊處理系統的範例的方塊圖。
[圖2]是示出設置在根據第一實施例之記憶體系統中的記憶體控制器中的錯誤檢查和校正(ECC)電路之配置的範例的方塊圖。
[圖3]是示出設置在根據第一實施例之記憶體系統中的半導體記憶體裝置之配置的範例的方塊圖。
[圖4]是根據第一實施例之半導體記憶體裝置中的記憶胞陣列的電路圖。
[圖5]是示出設置在根據第一實施例之記憶體系統中的記憶胞電晶體的臨界電壓分布與記憶胞電晶體所儲存之資料之間的關係的範例的圖。
[圖6]是示出設置在根據第一實施例之記憶體系統中的記憶胞電晶體的臨界電壓分布、用於資料讀取之電壓與讀取資料之間的關係的範例的圖。
[圖7]是示出根據第一實施例之軟決策解碼之處理的圖。
[圖8]是根據第一實施例之對數似然比(LLR)表的概念圖。
[圖9]是示出根據第一實施例之通道矩陣的表。
[圖10A-10E]是示出根據第一實施例之移位值的產生處理的圖。
[圖11A]是示出根據第一實施例之動態LLR估計(DLE)表的校正處理的第一範例的圖。
[圖11B]是示出根據第一實施例之DLE表的校正處理的第二範例的圖。
[圖11C]是示出根據第一實施例之DLE表的校正處理的第三範例的圖。
[圖12]是示出由設置在根據第一實施例之記憶體系統中的記憶體控制器執行的讀取操作的流程圖。
[圖13A和13B]是示出根據第一實施例之記憶體系統的效果的圖。
[圖14]是示出包括根據第二實施例之記憶體系統的資訊處理系統的範例的方塊圖。
[圖15]是示出設置在根據第二實施例之記憶體系統中的記憶體控制器中的ECC電路的配置的範例的方塊圖。
[圖16]是示出根據第二實施例之軟決策解碼的處理的圖。
[圖17]是示出根據第二實施例之DLE表的第一校正處理和第二校正處理的圖。
[圖18]是示出由設置在根據第二實施例之記憶體系統中的記憶體控制器執行的讀取操作的流程圖。
[圖19]是示出由設置在根據第二實施例之記憶體系統中的記憶體控制器執行的讀取操作的流程圖。
[圖20]是根據第三實施例之LLR型樣表的概念圖。
[圖21]是示出根據第三實施例之DLE表的校正處理的圖。
[圖22]是示出根據第四實施例之DLE表的校正處理的圖。
[圖23]是示出由設置在根據第五實施例之記憶體系統中的記憶體控制器執行的讀取操作的流程圖。
[圖24]是示出根據第五實施例之DLE表中的LLR的對稱性的圖。

Claims (20)

  1. 一種記憶體系統,包括: 半導體記憶體裝置,包括複數個記憶胞,各個記憶胞被配置成根據其臨界電壓以非揮發性方式儲存資料並連接到字線;以及 控制器,其被配置成: 基於從該複數個記憶胞讀取的硬位元資料和軟位元資料執行錯誤校正; 基於由該錯誤校正校正的資料產生第一表; 確定第一電壓和第二電壓之間的電壓差,該第一電壓是在讀取該已校正的資料時施加到該字線的電壓;以及 基於該電壓差來校正該第一表。
  2. 根據請求項1的記憶體系統,其中 該控制器被配置成至少基於具有在第一電壓範圍內的臨界電壓並儲存具有第一值的已校正資料的第一數量的該複數個記憶胞以及具有在該第一電壓範圍內的臨界電壓並儲存具有不同於該第一值的第二值的已校正資料的第二數量的該複數個記憶胞來確定該第二電壓。
  3. 根據請求項2的記憶體系統,其中 該控制器被配置成進一步基於具有在不同於該第一電壓範圍的第二電壓範圍內的臨界電壓並儲存具有該第一值的已校正資料的第三數量的該複數個記憶胞以及具有在該第二電壓範圍內的臨界電壓並儲存具有該第二值的已校正資料的第四數量的該複數個記憶胞來確定該第二電壓。
  4. 根據請求項3的記憶體系統,其中 該控制器被配置成若該第一數量大於該第二數量且該第三數量小於該第四數量,則將介於該第一電壓範圍和該第二電壓範圍之間的電壓確定為該第二電壓。
  5. 根據請求項4的記憶體系統,其中 該第一表被配置成儲存對應於該第一電壓範圍的第一設定值和對應於該第二電壓範圍的第二設定值,以及 當該第一電壓大於該第二電壓時,該控制器透過將在該校正前已被儲存為該第一表的該第一設定值的第三值儲存為在該校正後的該第一表的該第二設定值來校正該第一表。
  6. 根據請求項4的記憶體系統,其中 該第一表被配置成儲存對應於該第一電壓範圍的第一設定值和對應於該第二電壓範圍的第二設定值,以及 當該第一電壓小於該第二電壓時,該控制器透過將在該校正前已被儲存為該第一表的該第二設定值的第三值儲存為在該校正後的該第一表的該第一設定值來校正該第一表。
  7. 根據請求項1的記憶體系統,其中 該半導體記憶體裝置包括複數條字線且包括係資料擦除操作單位的塊,該複數條字線包括連接到該複數個記憶胞的第一字線和連接到另外複數個記憶胞的第二字線,以及 該控制器被配置成使用該已校正的第一表,透過將該第二電壓施加到該第二字線,對讀取自該些連接到該第二字線的另外複數個記憶胞的資料執行錯誤校正。
  8. 根據請求項1的記憶體系統,其中 該第一表是表示該複數個記憶胞的該些臨界電壓的電壓範圍與對數似然比(LLR)之間的關係的表,該第一表在該校正前至少包括對應於第一電壓範圍的第一LLR、對應於第二電壓範圍的第二LLR和對應於第三電壓範圍的第三LLR,以及 該控制器被配置成在該第一表的該校正中,基於具有在該第一電壓範圍內的臨界電壓並儲存具有第一值的已校正資料的第一數量的該複數個記憶胞、具有在該第一電壓範圍內的臨界電壓並儲存具有不同於該第一值的第二值的已校正資料的第二數量的該複數個記憶胞、具有在該第二電壓範圍內的臨界電壓並儲存具有該第一值的已校正資料的第三數量的該複數個記憶胞和具有在該第二電壓範圍內的臨界電壓並儲存具有該第二值的已校正資料的第四數量的該複數個記憶胞來計算積分值,以及在該校正後的該第一表中,將該積分值設為對應於該第一電壓範圍的LLR,以及將具有反轉符號的該積分值設為對應於該第三電壓範圍的LLR。
  9. 根據請求項8的記憶體系統,其中 該第三電壓範圍包括比該第一電壓範圍和該第二電壓範圍低的臨界電壓,以及 該第一電壓範圍包括比該第二電壓範圍高的臨界電壓。
  10. 根據請求項1的記憶體系統,其中 該控制器被配置成基於錯誤校正不成功的資料來產生第二表,該第一表和該第二表之各者表示該複數個記憶胞的該些臨界電壓的電壓範圍與對數似然比(LLR)之間的關係,該第一表在該校正前至少包括對應於第一電壓範圍的第一LLR、對應於第二電壓範圍的第二LLR和對應於第三電壓範圍的第三LLR,以及該第二表至少包括對應於該第三電壓範圍的第四LLR,以及 該控制器被配置成在該第一表的該校正中,基於具有在該第一電壓範圍內的臨界電壓並儲存具有第一值的已校正資料的第一數量的該複數個記憶胞、具有在該第一電壓範圍內的臨界電壓並儲存具有不同於該第一值的第二值的已校正資料的第二數量的該複數個記憶胞、具有在該第二電壓範圍內的臨界電壓並儲存具有該第一值的已校正資料的第三數量的該複數個記憶胞和具有在該第二電壓範圍內的臨界電壓並儲存具有該第二值的已校正資料的第四數量的該複數個記憶胞來計算積分值,以及在該校正後的該第一表中,將該積分值設為對應於該第一電壓範圍的LLR,以及將該第四LLR設為對應於該第三電壓範圍的LLR。
  11. 根據請求項10的記憶體系統,其中 該第三電壓範圍包括比該第一電壓範圍和該第二電壓範圍低的臨界電壓,以及 該第一電壓範圍包括比該第二電壓範圍高的臨界電壓。
  12. 根據請求項1的記憶體系統,其中 該控制器被配置成管理第二表,該第一表和該第二表之各者表示該複數個記憶胞的該些臨界電壓的電壓範圍與對數似然比(LLR)之間的關係,該第一表在該校正前至少包括對應於第一電壓範圍的第一LLR、對應於第二電壓範圍的第二LLR、對應於第三電壓範圍的第三LLR、對應於第四電壓範圍的第四LLR、對應於第五電壓範圍的第五LLR和對應於第六電壓範圍的第六LLR,該第二表包括複數個型樣,該複數個型樣之各者至少包括對應於該第三電壓範圍的第七LLR、對應於該第四電壓範圍的第八LLR、對應於該第五電壓範圍的第九LLR和對應於該第六電壓範圍的第十LLR,以及 該控制器被配置成在該第一表的該校正中: 基於具有在該第一電壓範圍內的臨界電壓並儲存具有第一值的已校正資料的第一數量的該複數個記憶胞、具有在該第一電壓範圍內的臨界電壓並儲存具有不同於該第一值的第二值的已校正資料的第二數量的該複數個記憶胞、具有在該第二電壓範圍內的臨界電壓並儲存具有該第一值的已校正資料的第三數量的該複數個記憶胞和具有在該第二電壓範圍內的臨界電壓並儲存具有該第二值的已校正資料的第四數量的該複數個記憶胞來計算積分值,以及在該校正後的該第一表中,將該積分值設為對應於該第一電壓範圍的LLR; 選擇其中分別對應於該第一表的該第四至第六電壓範圍的第一組該LLR與分別對應於該第二表的該第四至第六電壓範圍的第二組該LLR的至少一部分相匹配的型樣;以及 在該校正後的該第一表中,將該所選型樣的該第七LLR設為對應於該第三電壓範圍的LLR。
  13. 根據請求項12的記憶體系統,其中 該第三電壓範圍包括比該第一電壓範圍、該第二電壓範圍、該第四電壓範圍、該第五電壓範圍和該第六電壓範圍低的臨界電壓,以及 該第一電壓範圍包括比該第二電壓範圍、該第四電壓範圍、該第五電壓範圍和該第六電壓範圍高的臨界電壓。
  14. 根據請求項1的記憶體系統,其中 該第一表是表示該複數個記憶胞的該些臨界電壓的電壓範圍與對數似然比(LLR)之間的關係的表,該第一表在該校正前至少包括對應於第一電壓範圍的第一LLR、對應於第二電壓範圍的第二LLR、對應於第三電壓範圍的第三LLR、對應於第四電壓範圍的第四LLR、對應於第五電壓範圍的第五LLR、對應於第六電壓範圍的第六LLR、對應於第七電壓範圍的第七LLR和對應於第八電壓範圍的第八LLR,以及 該控制器被配置成在該第一表的該校正中,基於具有在該第一電壓範圍內的臨界電壓並儲存具有第一值的已校正資料的第一數量的該複數個記憶胞、具有在該第一電壓範圍內的臨界電壓並儲存具有不同於該第一值的第二值的已校正資料的第二數量的該複數個記憶胞、具有在該第二電壓範圍內的臨界電壓並儲存具有該第一值的已校正資料的第三數量的該複數個記憶胞和具有在該第二電壓範圍內的臨界電壓並儲存具有該第二值的已校正資料的第四數量的該複數個記憶胞來計算積分值,以及在該校正後的該第一表中,將該積分值設為對應於該第一電壓範圍的LLR,以及將基於第四LLR、第五LLR和第六LLR之和與第七LLR、第八LLR和第二LLR之和的比率計算的值設為對應於該第三電壓範圍的LLR。
  15. 根據請求項14的記憶體系統,其中 基於該比率和該對應於該第一電壓範圍的LLR得到該計算值。
  16. 根據請求項15的記憶體系統,其中 該第三電壓範圍包括比該第一電壓範圍、該第二電壓範圍、該第四電壓範圍、該第五電壓範圍、該第六電壓範圍、該第七電壓範圍和該第八電壓範圍低的臨界電壓,以及 該第一電壓範圍包括比該第二電壓範圍、該第四電壓範圍、該第五電壓範圍、該第六電壓範圍、該第七電壓範圍和該第八電壓範圍高的臨界電壓。
  17. 一種對從複數記憶胞讀取的資料執行錯誤校正的方法,該複數記憶胞各被配置成根據其臨界電壓以非揮發的方式儲存資料,該複數記憶胞包括連接到第一字線的第一記憶胞和連接到第二字線的第二記憶胞,該方法包括: 基於從該第一記憶胞讀取的硬位元資料和軟位元資料執行第一錯誤校正; 基於由該第一錯誤校正校正的資料產生第一表; 確定第一電壓和第二電壓之間的電壓差,該第一電壓是在獲取到該已校正資料時施加到該第一字線的電壓; 基於該電壓差校正該第一表;以及 使用該已校正的第一表,基於從該第二記憶胞讀取的硬位元資料和軟位元資料來執行第二錯誤校正。
  18. 根據請求項17的方法,其中 至少基於具有在第一電壓範圍內的臨界電壓並儲存具有第一值的已校正資料的第一數量的該第一記憶胞以及具有在該第一電壓範圍內的臨界電壓並儲存具有不同於該第一值的第二值的已校正資料的第二數量的該第一記憶胞來確定該第二電壓。
  19. 根據請求項18的方法,其中 進一步基於具有在不同於該第一電壓範圍的第二電壓範圍內的臨界電壓並儲存具有該第一值的已校正資料的第三數量的該第一記憶胞和具有在該第二電壓範圍內的臨界電壓並儲存具有該第二值的已校正資料的第四數量的該第一記憶胞來確定該第二電壓。
  20. 根據請求項19的方法,其中若該第一數量大於該第二數量且該第三數量小於該第四數量,則將介於該第一電壓範圍和該第二電壓範圍之間的電壓確定為該第二電壓。
TW111132956A 2022-03-18 2022-08-31 對從複數記憶胞讀取的資料執行錯誤校正的記憶體系統和方法 TWI831353B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-043995 2022-03-18
JP2022043995A JP2023137690A (ja) 2022-03-18 2022-03-18 メモリシステム

Publications (2)

Publication Number Publication Date
TW202338852A TW202338852A (zh) 2023-10-01
TWI831353B true TWI831353B (zh) 2024-02-01

Family

ID=88038540

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111132956A TWI831353B (zh) 2022-03-18 2022-08-31 對從複數記憶胞讀取的資料執行錯誤校正的記憶體系統和方法

Country Status (4)

Country Link
US (1) US20230298685A1 (zh)
JP (1) JP2023137690A (zh)
CN (1) CN116798501A (zh)
TW (1) TWI831353B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625347B2 (en) * 2011-09-22 2014-01-07 Kabushiki Kaisha Toshiba Memory device and control method of memory device
TWI436370B (zh) * 2010-09-17 2014-05-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與產生對數似然比之方法
TWI563380B (en) * 2014-09-26 2016-12-21 Intel Corp Using reliability information from multiple storage units and a parity storage unit to recover data for a failed one of the storage units
TWI576847B (zh) * 2012-03-02 2017-04-01 慧榮科技股份有限公司 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
US20210211142A1 (en) * 2020-01-07 2021-07-08 Kioxia Corporation Decoding device and decoding method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI436370B (zh) * 2010-09-17 2014-05-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與產生對數似然比之方法
US8625347B2 (en) * 2011-09-22 2014-01-07 Kabushiki Kaisha Toshiba Memory device and control method of memory device
TWI576847B (zh) * 2012-03-02 2017-04-01 慧榮科技股份有限公司 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
TWI563380B (en) * 2014-09-26 2016-12-21 Intel Corp Using reliability information from multiple storage units and a parity storage unit to recover data for a failed one of the storage units
US20210211142A1 (en) * 2020-01-07 2021-07-08 Kioxia Corporation Decoding device and decoding method

Also Published As

Publication number Publication date
JP2023137690A (ja) 2023-09-29
US20230298685A1 (en) 2023-09-21
TW202338852A (zh) 2023-10-01
CN116798501A (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
US11386952B2 (en) Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell
US11195585B2 (en) Calculating shift amounts for read voltage correction
US11609814B2 (en) Memory system
KR101633048B1 (ko) 메모리 시스템 및 그것의 데이터 처리 방법
JP7353889B2 (ja) メモリシステムおよび方法
US20190250843A1 (en) Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
US10586601B2 (en) Semiconductor memory device and read control method thereof
TWI741128B (zh) 記憶體系統及用於操作半導體記憶體裝置的方法
US10803973B2 (en) Memory management method and storage controller
KR20200065298A (ko) 메모리 시스템 및 그것의 동작방법
US20180074894A1 (en) Memory system
JP2022146585A (ja) メモリシステム
CN113297103A (zh) 主机、存储装置以及具有该主机、存储装置的计算系统
US20210397514A1 (en) Error check code (ecc) decoder and memory system including ecc decoder
US9934847B2 (en) Memory system storing 4-bit data in each memory cell and method of controlling thereof including soft bit information
TWI831353B (zh) 對從複數記憶胞讀取的資料執行錯誤校正的記憶體系統和方法
WO2018119900A1 (zh) 数据读取方法及闪存设备
US11250909B2 (en) Nonvolatile memory and memory system
US20230420067A1 (en) Memory system
US11810642B2 (en) Memory device including defective column addresses stored in ascending order
US20220310168A1 (en) Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device
US11941293B2 (en) Operation method of storage controller using history table, and storage device including the storage controller
US20240054046A1 (en) Error-handling management during copyback operations in memory devices
CN110874281B (zh) 存储器管理方法以及存储控制器