CN105989890A - 用于快闪存储器的增量llr 产生 - Google Patents

用于快闪存储器的增量llr 产生 Download PDF

Info

Publication number
CN105989890A
CN105989890A CN201610154520.7A CN201610154520A CN105989890A CN 105989890 A CN105989890 A CN 105989890A CN 201610154520 A CN201610154520 A CN 201610154520A CN 105989890 A CN105989890 A CN 105989890A
Authority
CN
China
Prior art keywords
percentage rate
llr
read
threshold value
hard
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201610154520.7A
Other languages
English (en)
Other versions
CN105989890B (zh
Inventor
张帆
大卫·J.·皮尼亚泰利
李濬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
Hynix Semiconductor Inc
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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN105989890A publication Critical patent/CN105989890A/zh
Application granted granted Critical
Publication of CN105989890B publication Critical patent/CN105989890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • 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
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • 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
    • 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/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • 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/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
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/251Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with block coding
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/256Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with trellis coding, e.g. with convolutional codes and TCM
    • 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/2957Turbo codes and decoding
    • 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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

用于对储存在存储器上的信息解码的方法可以包括:以初始阈值执行硬读取以及确定第一分布百分率;以后续阈值执行硬读取以及确定第二分布百分率;基于以初始阈值和后续阈值执行的硬读取以及基于第一分布百分率和第二分布百分率,来产生最小似然比(LLR);以及基于产生的LLR对信息软解码。

Description

用于快闪存储器的增量LLR 产生
相关申请的交叉引用
本申请要求2015年3月17日提交的美国临时申请No.62/134,369的优先权,其全部内容通过引用其整体合并于此。
技术领域
本公开的示例性实施例涉及存储器控制器及其操作方法。
背景技术
半导体存储器件通常大体分为易失性存储器件和非易失性存储器件,易失性存储器件诸如动态随机存取存储器(DARM)和静态随机存取存储器(SRAM),非易失性存储器诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除且可编程ROM(EEPROM)、铁磁RAM(FRAM)、相变RAM(PRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)和快闪存储器。
易失性存储器件在它们的电源中断时会丢失它们储存的数据,而非易失性存储器件即使没有持续的电源也能保留它们的数据。快闪存储器件因其高编程速度、低功耗和大数据储存容量而广泛作为储存媒介用在计算机系统中。
在非易失性存储器件中,尤其在快闪存储器件中,基于储存在每个存储单元中的比特位的数量来确定可储存在每个存储单元中的数据状态。每个单元储存1比特位数据的存储单元称为单比特位单元或单电平单元(SLC)。每个单元储存多个比特位数据(即2个或更多个比特位的数据)的存储单元称为多比特位单元、多电平单元(MLC)或多状态单元。多比特位单元是有优势的,因为其允许在有限的面积内储存更多的数据。然而,随着编程在每个存储单元中的比特位的数量增加,可靠性降低,且读取失败率增加。因此需要一种方案来准确地确定储存在半导体存储器件的存储单元中的数据的最优读取电压。
发明内容
本发明的方面包括用于对储存在存储器上的信息解码的方法。方法可以包括:以初始阈值执行硬读取以及确定第一分布百分率;以后续阈值执行硬读取以及确定第二分布百分率;基于以初始阈值和后续阈值执行的硬读取以及基于第一分布百分率和第二分布 百分率,来产生最小似然比(LLR);以及基于产生的LLR对信息软解码。
本发明的另一些方面包括用于对储存在存储器上的信息解码的系统。系统可以包括控制器,控制器适用于:以初始阈值执行硬读取以及确定第一分布百分率;以后续阈值执行硬读取以及确定第二分布百分率;以及基于以初始阈值和后续阈值执行的硬读取以及基于第一分布百分率和第二分布百分率来产生最小似然比(LLR)。系统可以包括解码器,解码器适用于基于产生的LLR对信息软解码。
本发明的另外的方面包括存储器件。存储器件可以包括控制器,控制器配置成:以初始阈值执行硬读取以及确定第一分布百分率;以后续阈值执行硬读取以及确定第二分布百分率;以及基于以初始阈值和后续阈值执行的硬读取以及第一分布百分率和第二分布百分率来产生最小似然比(LLR)。
附图说明
图1是示意性地说明根据本发明的一个实施例的存储系统的框图。
图2是说明根据本发明的一个实施例的存储系统的框图。
图3是说明根据本发明的一个实施例的半导体存储器件的存储块的电路图。
图4是根据本发明的方面的基于多个硬读取而产生LLR的步骤的流程图。
图5、6、7是示出根据本发明的方面的LLR产生的例子的图。
图8是根据本发明的方面的基于多个硬读取而产生LLR的步骤的一种算法。
具体实施方式
在下文,将参照附图更详细地描述各个实施例。然而,本发明可以采用不同的形式来实施且不应理解为局限于本文所列的实施例。确切地说,提供这些实施例使得本申请公开将充分且完整,且将会向本领域技术人员充分地传达本发明的范围。贯穿整个公开文本,在本发明的各个附图和实施例中,相似的附图标记指代相似的部件。
本发明能用许多方式来实施,包括作为过程;装置;系统;物质的组成;在计算机可读储存媒介上实现的计算机程序产品;和/或处理器(诸如适用于运行耦接到处理器的存储器所储存和/或提供的指令的处理器)。在本说明书中,这些实施方式或者本发明可以采取的任何其它形式可以称为技术。总体而言,公开的过程的步骤的顺序可以在本发明的范围内改变。除非另外提及,诸如描述的适用于执行任务的处理器或存储器的部件 可以实施为暂时适用于在给定的时间执行任务的一般部件或者被制造成用于执行任务的特定部件。如本文所使用的,术语“处理器”涉及适用于处理数据(诸如计算机程序指令)的一种或更多种设备、电路和/或处理核心。
下面与附图一起提供本发明的一个或更多个实施例的详细描述,附图示出本发明的原理。与这些实施例关联描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定,且本发明包括许多替换、修改和等同。为了提供对本发明的充分理解,在以下的描述中列出众多具体细节。提供这些细节是出于示例的目的,且可以在没有这些具体细节中的一些或全部的情况下根据权利要求来实践本发明。出于清楚的目的,与本发明相关的技术领域中已知的技术材料不会详细描述,为使本发明不会不必要地被模糊。
图1是示意性地说明根据本发明的一个实施例的存储系统10的框图。
参见图1,存储系统10可以包括存储器控制器100和半导体存储器件200。
存储器控制器100可以控制半导体存储器件200的整体操作。
半导体存储器件200可以在存储器控制器100的控制之下执行一个或更多个擦除、编程和读取操作。半导体存储器件200可以经由输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器件200可以经由电源线接收电源PWR和经由控制线接收控制信号CTRL。控制信号可以包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号、以及读取使能(RE)信号等。
存储器控制器100和半导体存储器件200可以集成到单个半导体器件中。例如,存储器控制器100和半导体存储器件200可以集成到诸如固态驱动器(SSD)的单个半导体器件中。固态驱动器可以包括用于在其中储存数据的储存器件。当半导体存储系统10用在SSD中时,可以明显改善耦接到存储系统10的主机(未示出)的操作速度。
存储器控制器100和半导体存储器件200可以集成到诸如存储卡的单个半导体器件中。例如,存储器控制器100和半导体存储器件200可以集成到形成存储卡的单个半导体器件中,诸如个人计算机存储卡国际协会的PC卡(PCMCIA)、紧凑型快闪存储(CF)卡、智能媒体(SM)卡、存储棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微尺寸版本的MMC(MMCmicro)、安全数字(SD)卡、迷你安全数字(miniSD)卡、微安全数字(microSD)卡、安全数字高容量(SDHC)以及通用快闪储存器(UFS)。
再例如,存储系统10可以被提供作为包括电子设备的以下各种元件中的一种,诸如:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计 算机、平板电脑PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏机、导航设备、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字录音机、数字音频播放器、数字图像记录仪、数字图片播放器、数字视频录像机、数字视频播放器、数据中心的储存设备、能在无线环境传送和接收收发器信息的设备、家用网络的各种电子设备之一、计算机网络的各种电子设备之一、远程信息网络的各种电子设备之一、RFID设备或计算系统的元件设备之一。
图2是说明根据本发明的一个实施例的存储系统的详细框图。例如,图2的存储系统可以是图1所示的存储系统10。
参见图2,存储系统10可以包括存储器控制器100和半导体存储器件200。存储系统10可以响应于来自主机设备的请求而操作,且尤其地,储存主机设备要访问的数据。
主机设备可以用各种电子设备中的任何一种来实现。在一些实施例中,主机设备可以包括电子设备,诸如:台式计算机、工作站、三维(3D)电视、智能电视、数字录音机、数字音频播放器、数字图像记录仪、数字图片播放器、数字视频录像机和数字视频播放器。在一些实施例中,主机设备可以包括便携式电子设备,诸如:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和便携式游戏机。
存储器件200可以储存主机设备要访问的数据。
存储器件200可以用易失性存储器件或非易失性存储器件实现,易失性存储器件诸如动态随机存取存储器(DARM)和静态随机存取存储器(SRAM),非易失性存储器诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)相变RAM(PRAM)、磁阻式RAM(MRAM)以及电阻式RAM(RRAM)。
控制器100可以控制存储器件200中的数据的储存。例如,控制器100可以响应于来自主机设备的请求来控制存储器件200。控制器100可以将从存储器件200读取的数据提供到主机设备,且将从主机设备提供的数据储存在存储器件200中。
控制器100可以包括经由总线160耦接的储存单元110、中央处理单元(CPU)120、纠错码(ECC)单元130、主机接口140和存储接口150。
储存单元110可以用作存储系统10和控制器100的工作存储器,且储存用于驱动存储系统10和控制器100的数据。当控制器100控制存储器件200的操作时,储存单元110可以储存由控制器100和存储器件200使用的数据,用于诸如读取、写入、编程和擦除操作。
储存单元110可以用易失性存储器实现。储存单元110可以用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。如上所述,储存单元110可以将主机设备使用的数据储存在存储器件200中用于读取和写入操作。为了储存数据,储存单元110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、和映射缓冲器等。
CPU(或处理器)120可以响应于来自主机设备的写入请求或读取请求来控制存储系统10的一般操作、以及对存储器件200的写入操作或读取操作。CPU 120可以驱动称为快闪翻译层(FTL)的固件来控制存储系统10的一般操作。例如,FTL可以执行诸如逻辑到物理映射、损耗平衡、碎片收集(garbage collection)和坏块处理的操作。
ECC单元130可以在读取操作期间检测和纠正从存储器件200读取的数据中的错误。在错误比特位的数量大于或等于可纠正的错误比特位的阈值数量时ECC单元130不可以纠正错误比特位,并可以输出指示纠正错误比特位失败的纠错失败信号。ECC单元130可以包括ECC编码器132和ECC解码器134。
ECC编码器132可以对要编程到存储器件200中的数据执行纠错编码,以输出增加了奇偶校验位的数据。奇偶校验位可以储存在存储器件200中。
ECC解码器134可以对从存储器件200读取的数据执行纠错解码。ECC解码器134可以确定纠错解码是否成功,且可以基于确定结果来输出指令信号。ECC解码器134可以利用由ECC编码产生的奇偶校验位来纠正数据的错误比特位。
在一些实施例中,ECC单元130可以基于编码的调制来执行纠错操作,编码的调制诸如低密度奇偶校验检查(LDPC)码、Bose-Chaudhuri-Hocquenghem(BCH)码、涡轮(Turbo)码、涡轮乘积码(TPC)、Reed-Solomon(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、以及块编码调制(BCM)等。ECC单元130可以包括用于纠错操作的所有电路、系统或器件。
主机接口140可以经由以下各种接口协议中的一个或更多个来与主机设备通信,所述各种接口协议诸如通用串行总线(USB)、多媒体卡(MMC)、快速外围部件互联(PCI-E)、小型计算机系统接口(SCSI)、串行附加SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型硬盘接口(ESDI)、以及集成电路设备(IDE)。
存储接口150可以提供控制器100与存储器件200之间的接口,以允许控制器100响应于来自主机的请求来控制存储器件200。存储接口150可以在CPU 120的控制之下 产生用于存储器件200的控制信号并且处理数据。当存储器件200是诸如NAND快闪存储器的快闪存储器时,存储接口150可以在CPU的控制之下产生用于存储器的控制信号并且处理数据。
存储器件200可以包括存储单元阵列210、控制电路220、电压发生电路230、行解码器240、页缓冲器250、列解码器260以及输入/输出电路270。存储单元阵列210可以包括多个存储块211并在其中储存数据。电压发生电路230、行解码器240、页缓冲器250、列解码器260和输入/输出电路270形成用于存储单元阵列210的外围电路。外围电路可以执行存储单元阵列210的编程、读取或擦除操作。控制电路220可以控制外围电路。
电压发生电路230可以产生具有各种电平的操作电压。例如,在擦除操作中,电压发生电路230可以产生具有各种电平的操作电压诸如擦除电压和通过电压。
行解码器240可以连接到电压发生电路230和多个存储块211。行解码器240可以响应于控制电路220所产生的行地址RADD来选择多个存储块211之中的至少一个存储块,并且将从电压发生电路230提供的操作电压传送到多个存储块211之中的选中的存储块。
页缓冲器250经由位线BL(未示出)连接到存储单元阵列210。响应于控制电路220所产生的页缓冲器控制信号,页缓冲器250可以用正电压对位线BL预充电,在编程和读取操作中向/从选中的存储块传送/接收数据,或者暂时储存传送的数据。
列解码器260可以向/从页缓冲器250传送/接收数据,或者向/从输入/输出电路270传送/接收数据。
输入/输出电路270可以将从外部设备(例如存储器控制器100)传送来的命令和地址传送到控制电路220,将来自外部设备的数据传送到列解码器260,或者将来自列解码器260的数据经由输入/输出电路270输出到外部设备。
控制电路220可以响应于命令和地址来控制外围电路。
图3是说明根据本发明的一个实施例的半导体存储器件的存储块的电路图。例如,图3的存储块可以是图2所示的存储单元阵列200的存储块211。
参见图3,存储块211可以包括分别耦接到位线BL0至BLm-1的多个单元串221。每个列的单元串可以包括一个或更多个漏极选择晶体管DST和一个或更多个源极选择晶体管SST。多个存储单元或存储单元晶体管可以串联耦接在选择晶体管DST与SST 之间。存储单元MC0至MCn-1中的每个可以由在每个单元中储存多个比特位的数据信息的多电平单元(MLC)形成。单元串221可以分别电耦接到相应的位线BL0至BLm-1。
在一些实施例中,存储块211可以包括NAND型快闪存储单元。然而,存储块211不限于NAND快闪存储器,而可以包括NOR型快闪存储器、组合有两种或更多种类型的存储单元的混合快闪存储器、以及控制器嵌入到存储芯片之内的one-NAND快闪存储器。
通过将单元充电到特定电压,信息被储存在NAND快闪存储器中。在读取期间,使用预定的阈值来与单元电压(cell voltage)比较。如果单元电压小于阈值,则读取结果为1,否则,硬读取结果为0。在最简单的情况下,读回值(例如0或1)仅仅基于单元电压是高于还是低于单个阈值。由于利用这种读回(read back)机制读回值总是二进制的,因此使用硬判决(hard-decision)解码算法(例如BCH码)的代数码是纠错的自然选择。
然而,随着工艺几何量缩小且更多的比特位储存在单元中,NAND快闪存储器的耐久可靠性已明显降低。耐久可靠性可以粗略地定义为在特定数据保持时段中未超过给定的错误率度量的情况下单元能够被编程与擦除的最大次数。这种耐久可靠性的降低因而需要使用更有力的纠错码(诸如涡轮码和低密度奇偶校验检查(LDPC)码)来延长单元的可用寿命。
为了充分地利用LDPC码的纠错能力,应当计算软信息并将软信息馈送至解码器,软信息也称为对数似然比(LLR,log-likelihood ratio)。如何基于硬读取来计算软LLR对于NAND快闪存储系统是关键的。本文公开的是能适应单元电平分布并针对软解码器产生准确的LLR的用于产生LLR的系统、方法和过程。
尤其在与LLR产生相关的步骤中,其中存在两个当前错误恢复流的大问题。第一个问题是LLR产生不适应单元电压分布的改变。例如,单元电压电平在数据保留之后倾向于朝低电压偏移。一些预定值可以分配给其电压落入特定区间的单元,而不管基础的分布范围如何。
第二个问题是在执行许多冗余读取的意义上讲错误恢复流不是有效的。例如,当硬解码失败时,当前错误恢复算法尝试使用不同的读取阈值并执行另一轮的硬读取和硬解码。优选地,后续一轮的解码应当采用基于之前的硬读取产生的某一LLR值作为输入。
因此,本发明的方面实施为用于基于多轮硬读取而无单元电平分布的先验信息(priori information)来产生LLR的系统、方法和过程。
参见图4至图8,本文详细描述了用于基于多轮硬读取来产生LLR的存储系统、方法和过程。
总体而言,可以以初始阈值执行硬读取并且可以执行硬解码。如果解码失败,则可以以后续阈值执行另一硬读取。然后可以基于以初始阈值和后续阈值的硬解码来产生LLR。LLR可以被馈送到软解码器。如果解码器仍然失败,则可以以附加的阈值执行附加的硬读取,且可以利用以这些阈值的硬解码来产生LLR。当执行越来越多的硬读取时,每个附加的硬读取带来更好的电压分布估算(例如利用1计数器),因而产生更好的LLR。相应地,软解码器可以比之前利用的错误恢复流早得多来解码数据。
参见图4,示出了基于多个硬读取用LLR解码的步骤的流程图40。
在步骤400,以初始阈值执行硬读取,且确定第一分布百分率。在利用阈值t1的初轮的硬读取中,不知道基础的分布。这时候尚未产生LLR,因此LLR可以简单地表示为±C,其中该符号由硬读取的0和1来确定。分布百分率也被确定。分布百分率可以是第一硬读取中的1的百分率、第一硬读取中的0的百分率、和/或硬读取返回的值的其它分布百分率。在所描述的例子中,系统返回二进制(例如0或1)值,但这仅仅是示例性地且并非排外的,因为本领域技术人员将会理解,具有各种值的另外的系统将会从本文公开的本发明中获得益处。在此示例中,第一分布百分率是第一硬读取中的1的百分率且标记为p1
在步骤402,以后续阈值执行硬读取,且确定第二分布百分率。后续阈值可以表示为阈值t2且第二分布百分率可以表示为百分率p2
如图5的图表50可以看出,基于p1和p2,关于总体分布的粗略概念变得明显,使得处于t1和t2之间的总体分布下的面积为p2-p1。整个电压分布分为3个部分:(tmin,t1)500、(t1,t2)502以及(t2,tmax)504。落入(tmin,t1)500的单元将会具有[1,1]作为硬读取结果,落入(t1,t2)502的单元将会具有[0,1]作为硬读取结果,且落入(t2,tmax)504的单元将会具有[0,0]作为硬读取结果。只有这三个硬读取结果是有效的,而[1,0]是无效的。有时候[1,0]可能会由于读取错误而成为硬读取结果。在这些情况下,0可以分配作为这种类型的单元的LLR值。产生LLR的工作就是基于单元落入的区间来分配LLR值。在其中tmin<t1<t2<tmax的本例子中,这是真的。
在步骤404,基于硬读取和分布百分率来产生LLR。参见图6的图表60,为了计算LLR值,可以估算T50 ,T50 是与硬读取结果中约50%的1相对应的电压电平。如果扰频器(scrambler)完美工作,则T50 可以用作将来的硬读取的最佳硬读取阈值。
假设LLR的最大值为LLRmax且最小值为LLRmin(即针对4比特位LLR固定点实施方式,LLRmax=7且LLRmin=-7),LLRmax(或LLRmin)应当分配给单元电平tmin(或tmax)。单元电平T50 应当分配具有LLR值0,使得可以在LLRmax与0之间以及还在LLRmin与0之间(如图7的图表70所示)执行线性插值。然后,针对每个区间500、502、504的中间点产生LLR值,因为LLR值被分配给落入该区间的单元。在图7所示的实例中,L1将会分配给落入(tmin,t1)的单元,L2将会分配给落入(t1,t2)的单元,且L3将会分配给落入(t2,tmax)的单元。在固定点系统中,可以执行量化。然后根据单元电平的位置和在[L1,L2,L3]中的查找值来产生LLR,然后将LLR馈送至软解码器。
在步骤406,基于算得的LLR来执行软解码。在步骤408,如果软解码失败,则以附加的阈值执行硬读取,确定附加的分布百分率,且重复步骤404和406。
因此,如果软解码器失败,则利用T50 周围的一些其它附加的读取阈值来执行另一轮的硬读取。在一个实施例中,T50 不用作附加的读取阈值,因为如果所有的硬读取阈值集中在T50 周围,则关于真的LLR的新信息的量或基础分布将会受限。在一个实施例中,附加的读取阈值位于T50 周围,在相邻阈值之间具有相等的间距。
接下来参见图8,示出了控制器的用于基于多个硬读取来产生LLR的算法80。在框800,设置i=1。利用阈值ti执行第一硬读取。1的分布百分率被确定且被标记为pi。硬读取结果被馈送到硬解码器。然后,设置i=i+1。
在框802,如果解码器收敛(converge),则算法终止。如果解码器不收敛,则算法进行到框804。
在框804,以阈值ti执行新的硬读取,且新的分布百分率被确定且标记为pi
在框806,在具有坐标轴t和p的2D平面上用直线连接(ti,pi)和(ti+1,pi+1)。尝试找到(T50 ,0.5)。
在框808,利用线性或非线性函数使用(tmin,LLRmax)、(T50 ,0)和(tmax,LLRmin)进行插值。
在框810,基于所有之前的硬读取结果和区间的中心点,从插值的函数查找LLR值作为特定单元的LLR值。
在框812,发送LLR到软解码器用于解码。
在框814,如果解码器收敛或达到最大尝试次数时,则算法终止。如果解码器不收 敛或未达到最大尝试次数时,则控制器循环回到框804。
尽管出于清楚理解的目的,已用一些细节描述了前述的实施例,但是本发明不限于提供的细节。存在实施本发明的许多替换方式。公开的实施例是说明性的且并非限制性的。

Claims (19)

1.一种用于对储存在存储器上的信息解码的方法,包括:
以初始阈值执行硬读取以及确定第一分布百分率;
以后续阈值执行硬读取以及确定第二分布百分率;
基于以初始阈值和后续阈值执行的硬读取以及基于第一分布百分率和第二分布百分率,来产生最小似然比LLR;以及
基于产生的LLR对信息软解码。
2.根据权利要求1所述的方法,还包括,如果软解码失败,则:
以附加的阈值执行硬读取;
确定附加的分布百分率,以及
重复计算和软解码步骤。
3.根据权利要求1所述的方法,其中,第一分布百分率和第二分布百分率分别包括以初始阈值执行的硬读取中1的百分率和以后续阈值执行的硬读取中1的百分率。
4.根据权利要求3所述的方法,还包括:估算与从所执行的硬读取中读取的约50%的1相对应的电压电平。
5.根据权利要求1所述的方法,其中,初始读取阈值和后续读取阈值形成区间。
6.根据权利要求5所述的方法,其中,产生LLR的步骤还包括:
针对每个区间的中间点寻找LLR值;以及
将寻找到的LLR值分配给落入所述区间的单元。
7.一种用于对储存在存储器上的信息解码的系统,包括:
控制器,适用于:
以初始阈值执行硬读取以及确定第一分布百分率;
以后续阈值执行硬读取以及确定第二分布百分率;以及
基于以初始阈值和后续阈值执行的硬读取以及基于第一分布百分率和第二分布百分率来产生最小似然比LLR;以及
解码器,适用于基于产生的LLR对信息软解码。
8.根据权利要求7所述的系统,其中,如果软解码失败,则控制器还适用于:
以附加的阈值执行硬读取;
确定附加的分布百分率,以及
重复产生步骤。
9.根据权利要求7所述的系统,其中,第一分布百分率和第二分布百分率分别包括以初始阈值执行的硬读取中1的百分率和以后续阈值执行的硬读取中1的百分率。
10.根据权利要求9所述的系统,其中,控制器还适用于估算与从所执行的硬读取中读取的约50%的1相对应的电压电平。
11.根据权利要求7所述的系统,其中,初始读取阈值和后续读取阈值形成区间。
12.根据权利要求11所述的系统,其中,控制器还适用于通过以下步骤来产生LLR:
针对每个区间的中间点寻找LLR值;以及
将寻找到的LLR值分配给落入所述区间的单元。
13.一种存储器件,包括:
控制器,配置成:
以初始阈值执行硬读取以及确定第一分布百分率;
以后续阈值执行硬读取以及确定第二分布百分率;以及
基于以初始阈值和后续阈值执行的硬读取以及第一分布百分率和第二分布百分率来产生最小似然比LLR。
14.根据权利要求13所述的存储器件,还包括:
解码器,配置成基于产生的LLR对信息解码。
15.根据权利要求14所述的存储器件,其中,控制器还配置成如果软解码失败,则:
以附加的阈值执行硬读取;
确定附加的分布百分率,以及
重执行LLR的产生。
16.根据权利要求13所述的存储器件,其中,第一分布百分率和第二分布百分率分别包括以初始阈值执行的硬读取中1的百分率和以后续阈值执行的硬读取中1的百分率。
17.根据权利要求16所述的存储器件,其中,控制器还配置成估算与从所述执行的硬读取中读取的约50%的1相对应的电压电平。
18.根据权利要求13所述的存储器件,其中,初始读取阈值和后续读取阈值形成区间。
19.根据权利要求18所述的存储器件,其中,控制器被配置成通过以下步骤来产生LLR:
针对每个区间的中间点寻找LLR值;以及
将寻找到的LLR值分配给落入所述区间的单元。
CN201610154520.7A 2015-03-17 2016-03-17 用于快闪存储器的增量llr产生 Active CN105989890B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562134369P 2015-03-17 2015-03-17
US62/134,369 2015-03-17
US15/072,009 US10148293B2 (en) 2015-03-17 2016-03-16 Incremental LLR generation for flash memories
US15/072,009 2016-03-16

Publications (2)

Publication Number Publication Date
CN105989890A true CN105989890A (zh) 2016-10-05
CN105989890B CN105989890B (zh) 2020-11-20

Family

ID=56925461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610154520.7A Active CN105989890B (zh) 2015-03-17 2016-03-17 用于快闪存储器的增量llr产生

Country Status (2)

Country Link
US (1) US10148293B2 (zh)
CN (1) CN105989890B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109671465A (zh) * 2017-08-29 2019-04-23 爱思开海力士有限公司 具有自适应读取阈值方案的存储器系统及其操作方法
CN109801669A (zh) * 2017-11-17 2019-05-24 爱思开海力士有限公司 具有软读取挂起方案的存储器系统及其操作方法
CN111462800A (zh) * 2019-01-22 2020-07-28 三星电子株式会社 用于确定非易失性存储器器件的最佳阈值的方法
CN112166406A (zh) * 2018-04-25 2021-01-01 美光科技公司 管理包含具有不同特性的存储器装置的存储器系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107918571B (zh) * 2016-10-08 2021-04-30 上海宝存信息科技有限公司 测试储存单元的方法以及使用该方法的装置
CN108683423B (zh) * 2018-05-16 2022-04-19 广东工业大学 一种多级闪存信道下的ldpc码动态串行调度译码算法及装置
US10659084B1 (en) 2018-11-30 2020-05-19 Kabushiki Kaisha Toshiba Soft decoding for flash memory
US10903861B2 (en) 2019-02-05 2021-01-26 Kabushiki Kaisha Toshiba Method and device for generating soft decision detection parameters
US10847241B2 (en) 2019-03-12 2020-11-24 Kabushiki Kaisha Toshiba Joint soft boundaries and LLRS update for flash memory
US11177831B2 (en) 2020-04-09 2021-11-16 Kabushiki Kaisha Toshiba LLR estimation for soft decoding
US11797396B2 (en) * 2020-07-30 2023-10-24 Seagate Technology Llc Decoding policy management to support multiple decoding schemes in a single buffer space

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102203877A (zh) * 2008-09-30 2011-09-28 Lsi公司 使用解码器性能反馈的用于存储器器件的软数据生成的方法和装置
US20130077400A1 (en) * 2011-09-22 2013-03-28 Kabushiki Kaisha Toshiba Memory device and control method of memory device
US20140241056A1 (en) * 2011-02-25 2014-08-28 Lsi Corporation Reduced complexity reliability computations for flash memories
CN104205225A (zh) * 2012-01-27 2014-12-10 Sk海尼克斯存储技术公司 使用多次读取和/或仓来生成软读取值

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189333B2 (en) * 2013-10-17 2015-11-17 Seagate Technology Llc Generating soft decoding information for flash memory error correction using hard decision patterns
US9176815B2 (en) * 2013-11-28 2015-11-03 Seagate Technology Llc Flash channel with selective decoder likelihood dampening
US9396792B2 (en) * 2014-02-26 2016-07-19 Seagate Technology Llc Adjusting log likelihood ratio values to compensate misplacement of read voltages
US9984752B2 (en) * 2016-03-14 2018-05-29 Toshiba Memory Corporation Memory system and data encoding and decoding method to mitigate inter-cell interference

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102203877A (zh) * 2008-09-30 2011-09-28 Lsi公司 使用解码器性能反馈的用于存储器器件的软数据生成的方法和装置
US20140241056A1 (en) * 2011-02-25 2014-08-28 Lsi Corporation Reduced complexity reliability computations for flash memories
US20130077400A1 (en) * 2011-09-22 2013-03-28 Kabushiki Kaisha Toshiba Memory device and control method of memory device
CN104205225A (zh) * 2012-01-27 2014-12-10 Sk海尼克斯存储技术公司 使用多次读取和/或仓来生成软读取值

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109671465A (zh) * 2017-08-29 2019-04-23 爱思开海力士有限公司 具有自适应读取阈值方案的存储器系统及其操作方法
CN109671465B (zh) * 2017-08-29 2023-05-16 爱思开海力士有限公司 具有自适应读取阈值方案的存储器系统及其操作方法
CN109801669A (zh) * 2017-11-17 2019-05-24 爱思开海力士有限公司 具有软读取挂起方案的存储器系统及其操作方法
CN109801669B (zh) * 2017-11-17 2023-05-16 爱思开海力士有限公司 具有软读取挂起方案的存储器系统及其操作方法
CN112166406A (zh) * 2018-04-25 2021-01-01 美光科技公司 管理包含具有不同特性的存储器装置的存储器系统
CN111462800A (zh) * 2019-01-22 2020-07-28 三星电子株式会社 用于确定非易失性存储器器件的最佳阈值的方法

Also Published As

Publication number Publication date
US20160277041A1 (en) 2016-09-22
US10148293B2 (en) 2018-12-04
CN105989890B (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
CN105989890A (zh) 用于快闪存储器的增量llr 产生
CN106169308B (zh) 存储器控制器及其操作方法
CN108073466B (zh) 用于减少数据访问延迟的介质质量感知ecc解码方法选择
CN109616148B (zh) 具有解码器的存储器系统、其操作方法和解码器
TWI705446B (zh) 具有改良硬解碼處理量的vss低密度同位檢驗解碼器
US10388400B2 (en) Generalized product codes for flash storage
US10108472B2 (en) Adaptive read disturb reclaim policy
CN108073467B (zh) 具有硬信道信息的位翻转ldpc解码算法
US10484008B2 (en) Memory system with on-the-fly error detection and termination and operating method thereof
CN107731259A (zh) 最佳读取参考电压的存储器系统及其操作方法
US9979417B2 (en) Enhanced chip-kill schemes by using ECC syndrome pattern
US10846172B2 (en) Encoding method and system for memory device including QLC cells
US10432363B2 (en) Page health prediction using product codes decoder in NAND flash storage
CN110275796A (zh) 具有混合解码方案的存储器系统及其操作方法
CN106095699A (zh) 用于快闪存储器的可扩展spor算法
US11036579B2 (en) Decoder for memory system and method thereof
US10938419B2 (en) Encoding method and system for memory device including QLC cells
CN110277124A (zh) 具有混合解码方案的存储器系统及其操作方法
CN106158046A (zh) 用于turbo乘积码的误校正避免
CN110444245A (zh) 具有混合迭代解码能力的存储器系统及其操作方法
CN110277999A (zh) Ldpc解码装置、包括其的存储器系统及其方法
US10528496B2 (en) Controller and operating method thereof
US9996412B2 (en) Enhanced chip-kill schemes by using sub-trunk CRC
CN110275844A (zh) 利用自适应阈值解码的存储器系统及其操作方法
CN106980464A (zh) 利用过采样读取的系统最优化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant