CN106169308B - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN106169308B CN106169308B CN201610151434.0A CN201610151434A CN106169308B CN 106169308 B CN106169308 B CN 106169308B CN 201610151434 A CN201610151434 A CN 201610151434A CN 106169308 B CN106169308 B CN 106169308B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- read reference
- error
- reference voltages
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一种用于操作存储器控制器的方法,包括:执行硬判决读取操作以从存储器件读取硬判决数据;如果针对硬判决数据的硬解码失败,则将对数似然比(LLR)值分配至落入与多个读取参考电压相对应的多个电压区域中的单元;基于LLR值来执行软判决读取操作以及对软判决数据执行软解码以产生无错误数据;使用多个读取参考电压中的每个来执行读取操作以从存储器件读取数据,以产生针对多个读取参考电压中的每个的原始数据;以及基于原始数据和无错误数据来确定多个读取参考电压之中的最优读取参考电压。
Description
相关申请的交叉引用
本申请要求2015年3月16日提交的第62/133,754号美国临时申请的权益,其全部内容通过引用合并于此。
技术领域
本公开的示例性实施例涉及一种存储器控制器及其操作方法。
背景技术
半导体存储器件通常分类为易失性存储器件(诸如,动态随机存取存储器(DRAM)和静态RAM(SRAM))和非易失性存储器件(诸如,只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、铁磁RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和快闪存储器)。
易失性存储器件在其电源被切断时丢失其储存的数据,而非易失性存储器件即使在没有恒定电源的情况下也保持其数据。因为快闪存储器件的高编程速度、低功耗和大数据储存容量,因此其被广泛地用作计算机系统中的储存介质。
在非易失性存储器件中,特别是在快闪存储器件中,在每个存储单元中可储存的数据状态基于在存储单元中储存的位的数量来确定。每单元储存1位数据的存储单元被称为单位单元或单电平单元(SLC)。每单元储存多位数据(即,2位数据或更多位数据)的存储单元被称为多位单元、多电平单元(MLC)或多状态单元。因为多位单元允许更多数据储存在有限区域中,所以多位单元是有利的。然而,随着被编程在每个存储单元中的位的数量增加,可靠性降低且读取故障率增加。因此,需要一种用于精确地确定储存在半导体存储器件的存储单元中的数据的最优读取电压的方案。
发明内容
本公开的实施例针对一种存储器控制器及其操作方法,该存储器控制器能够精确地确定用于储存在存储单元中的数据的最优读取电压。
本发明的方面包括一种用于操作存储器控制器的方法。该方法包括:执行硬判决读取操作以从存储器件读取硬判决数据;如果针对硬判决数据的硬解码失败,则将对数似然比(LLR)值分配至落入与多个读取参考电压相对应的多个电压区域中的单元;基于LLR值来执行软判决读取操作以及对软判决数据执行软解码以产生无错误数据;使用多个读取参考电压中的每个来执行读取操作以从存储器件读取数据,以产生针对多个读取参考电压中的每个的原始数据;以及基于原始数据和无错误数据来确定多个读取参考电压之中的最优读取参考电压。
本发明的其他方面包括一种用于操作存储器控制器的方法。该方法包括:对来自存储器件的单元执行软判决读取操作,所述单元落入预定区域内的与多个读取参考电压相对应的多个电压区域中;对软判决数据执行软解码以产生无错误数据;使用多个读取参考电压中的每个来执行读取操作以产生针对多个读取参考电压中的每个的原始数据;以及基于原始数据和无错误数据来确定多个读取参考电压之中的最优读取参考电压。
本发明的进一步的方面包括一种用于控制存储器件的控制器。该控制器包括:第一读取处理单元,用于执行硬判决读取操作以从存储器件读取硬判决数据;第二读取处理单元,用于:如果针对硬判决数据的硬解码失败,则将对数似然比(LLR)值分配至落入与多个读取参考电压相对应的多个电压区域中的单元,以及使用多个读取参考电压中的每个来执行读取操作以从存储器件读取数据,以产生针对多个读取参考电压中的每个的原始数据;第三读取处理单元,用于基于LLR值来执行软判决读取操作以及对软判决数据执行软解码,以产生无错误数据;以及确定器,用于基于原始数据和无错误数据来确定多个读取参考电压之中的最优读取参考电压。
本发明的又进一步的方面包括一种用于控制存储器件的控制器。该控制器包括:第一单元,用于对来自存储器件的单元执行软判决读取操作以及对软判决数据执行软解码以产生无错误数据,所述单元落入预定区域内的与多个读取参考电压相对应的多个电压区域中;第二单元,用于使用多个读取参考电压中的每个来执行读取操作以产生针对多个读取参考电压中的每个的原始数据;以及确定器,用于基于原始数据和无错误数据来确定多个读取参考电压之中的最优读取参考电压。
附图说明
图1是示意性图示根据本发明的实施例的存储系统的框图。
图2是图示根据本发明的实施例的存储系统的框图。
图3是图示根据本发明的实施例的半导体存储器件的存储块的电路图。
图4是根据本发明的方面的eBoost(e升压)过程的步骤的流程图。
图5A、图5B和图5C是示出根据本发明的方面的各种分布的示图。
图6是图示根据本发明的方面的用于选择最优读取参考电压的装置的框图。
图7是图示根据本发明的方面的用于选择最优读取参考电压的操作的流程图。
图8是图示根据本发明的实施例的用于读取操作的不同读取参考电压的示图。
图9是图示根据本发明的实施例的用于在平坦区域中选择最优读取参考电压的操作的流程图。
图10是图示根据本发明的对原始数据和无错误数据二者的异或(XOR)运算的示图。
具体实施方式
以下将参照附图更详细地描述各种实施例。然而,本发明可以以不同的形式来实现,并且不应当被解释为局限于本文中阐述的实施例。更确切地说,这些实施例被提供使得本公开将是彻底和完整的,并且这些实施例将把本发明的范围充分地传达给本领域技术人员。贯穿本公开,相同的附图标记在本发明的各种附图和实施例中指代相同的部分。
本发明可以以许多方式实现,包括处理、装置、系统、物的组合、在计算机可读储存介质上实施的计算机程序产品和/或处理器(诸如,适用于运行储存在耦接至处理器的存储器上和/或由耦接至处理器的存储器提供的指令的处理器)。在该说明书中,这些实施方式或本发明可采取的任何其他形式可以被称为技术。一般而言,所公开的过程的步骤的顺序可以在本发明的范围内改变。除非另有说明,否则描述为适用于执行任务的组件(诸如处理器或存储器)可以被实现为临时适用于在给定时间执行任务的一般组件,或被实现为被制造为执行任务的特定组件。如本文所用的,术语“处理器”指适用于处理数据(诸如计算机程序指令)的一个或更多个器件、电路和/或处理核。
以下连同示出本发明的原理的附图来提供本发明的一个或更多个实施例的详细描述。结合这样的实施例来描述本发明,但是本发明不局限于任何实施例。本发明的范围仅由权利要求来限定,本发明包含若干替代、变型和等同物。在以下描述中阐述若干特定细节以便提供对本发明的透彻理解。出于示例的目的来提供这些细节,本发明可以在没有这些特定细节中的一些或全部的情况下根据权利要求来实践。出于清楚的目的,与本发明有关的技术领域中已知的技术材料未被详细地描述,使得本发明不被不必要地混淆。
图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可以被集成至单个半导体器件中以配置诸如个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑型闪存(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可以用易失性存储器件(诸如动态随机存取存储器(DRAM)和静态随机存取存储器(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可以执行诸如逻辑至物理(L2P)映射、磨损均衡、垃圾收集和坏块处理的操作。
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)码、博斯-乔赫里-霍克文黑姆(BCH,Bose-Chaudhuri-Hocquenghem)码、涡轮码、涡轮乘积码(TPC)、里德-所罗门(RS,Reed-Solomon)码、卷积码、递归系统码(RSC)、格形编码调制(TCM)、块编码调制(BCM)等的编码调制来执行错误校正操作。ECC单元130可以包括用于错误校正操作的所有电路、系统或设备。
主机接口140可以通过诸如通用串行总线(USB)、多媒体卡(MMC)、外围组件互连快速(PCI-E)、小型计算机系统接口(SCSI)、串行附件SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小盘接口(ESDI)和集成驱动电路(IDE)的各种接口协议中的一种或更多种来与主机设备通信。
存储器接口150可以提供控制器100与存储器件200之间的接口,以允许控制器100响应于来自主机设备的请求来控制存储器件200。存储器接口150可以产生用于存储器件200的控制信号,以及在CPU 120的控制下处理数据。当存储器件200是快闪存储器(诸如NAND快闪存储器)时,存储器接口150可以产生用于存储器的控制信号,以及在CPU 120的控制下处理数据。
存储器件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/接收来自页缓冲器250的数据,或者将数据传送至输入/输出电路270/接收来自输入/输出电路270的数据。
输入/输出电路270可以将从外部设备(例如,存储器控制器100)传送来的命令和地址传送至控制电路220,将来自外部设备的数据传送至列解码器260,或者经由输入/输出电路270而将来自列解码器260的数据输出至外部设备。
控制电路220可以响应于命令和地址来控制外围电路。
图3是图示根据本发明的实施例的半导体存储器件的存储块的电路图。例如,图3的存储块可以是图2中所示的存储单元阵列200的存储块211。
参照图3,存储块211可以包括分别耦接至位线BL0至BLm-1的多个单元串221。每列的单元串可以包括一个或更多个漏极选择晶体管DST和一个或更多个源极选择晶体管SST。多个存储单元或多个存储单元晶体管可以串联地耦接在选择晶体管DST与SST之间。存储单元MC0至MCn-1中的每个可以由多电平单元(MLC)来形成,该多电平单元(MLC)在每个单元中储存多位的数据信息。单元串221可以分别电耦接至对应的位线BL0至BLm-1。
在一些实施例中,存储块221可以包括NAND型快闪存储单元。然而,存储块211不局限于NAND快闪存储器,而是可以包括NOR型快闪存储器、在其中组合了两种或更多种类型的存储单元的混合快闪存储器、以及控制器被嵌入在存储芯片内的一体NAND快闪存储器(one-NAND flash memory)。
如上所述,存储系统(或储存系统)的控制器100可以对从存储器件200读取的数据执行错误校正解码。例如,控制器100可以对从存储器件200读取的数据执行低密度奇偶校验(LDPC)硬解码。当LDPC硬解码失败时,控制器100可以启动用来寻找能够实现最小原始位错误率的最优读取参考电压的过程(例如,eBoost)。
eBoost过程将尝试不同组的读取参考电压以读取存储器件200(例如,快闪存储器),并且识别在每个有限区段(finite bin)中被读取为1或0的单元的数量。然后,可以识别落入每个区域中的针对储存的电压的单元的数量。即使每次eBoost读取的硬解码失败,eBoost过程仍然可以通过识别具有最小数量单元的区域来找到最优读取参考电压,因为最优读取参考电压处于相邻分布的交叉点,且最优读取参考电压周围的区域通常具有最小数量的闪存单元。在图4中示出了典型的eBoost过程。
eBoost过程尝试不同组的读取参考电压以读取存储器件200(例如,快闪存储器),并且识别在每个有限区段中被读取为1或0的单元的数量。然后,可以识别落入每个区域中的针对储存的电压的单元的数量。即使eBoost过程读取中的每个步骤的硬解码失败,eBoost过程仍然可以通过识别具有最小数量单元的区域来找到最优读取参考电压。
然而,随着每单元编程更多位(例如,三电平单元(TLC)闪存,其具有每单元3位)以及闪存单元的大小按比例缩小,相邻分布的距离可以变得更小以及每个状态(例如,编程状态和擦除状态)的分布的宽度可以变得更宽。例如,如图5A中所示,示出了可以通过eBoost找到的最优参考电压Vopt。然而,图5B中所示的分布是其中eBoost不能使用整体可观察到的分布的局部最小值的准则来识别最优电压的分布。在最优读取参考电压附近能够观察到的整体分布可以是如此的平坦(例如,图5B)以至于难以通过找到具有最小数量的闪存单元的区段(bin)来识别最优阈值电压的区域。同时,针对每个尝试参考电压的每次硬LDPC解码也失败了。于是,难以判断哪个参考电压是最优的。
因此,本发明的实施例是用来即使阈值电压分布处于图5B中所示的平坦区域中,也能精确地确定储存在存储单元中的数据的最佳读取电压。图5C是将LLR分配至不同的阈值电压的示例说明,如以下所描述的。
本发明的实施例包括与eBoost过程并行而利用在eBoost过程期间产生的信息来触发软解码。这是有用的,因为与硬解码相比,软解码通常具有更强大的错误校正能力。软解码成功的概率要远远高于硬解码的成功概率。一旦软解码成功,就可以得到没有任何错误的校正后的读取数据(即,无错误数据)。然后,扫描分布中的包含最优读取参考电压的平坦区域以识别具有最小原始位错误率的阈值电压,该最小原始位错误率是eBoost过程目标要找到的最优率。
图6是图示根据本发明的实施例的用于选择最优读取参考电压的装置600的框图。例如,装置600可以实施在图2中所示的控制器100(即,ECC单元130)中。
参照图6,装置600包括第一读取处理单元610、第二读取处理单元620、第三读取处理单元630和确定器640。
第一读取处理单元610可以执行硬判决读取操作以从图1的存储器件200读取硬判决数据,并且对硬判决数据执行硬解码。在一些实施例中,第一读取处理单元610可以基于LDPC码来执行硬解码。如果针对硬判决数据的硬解码失败,则第一读取处理单元610可以产生指示针对硬判决数据的硬解码失败的信号。
如果通过第一读取处理单元610的针对硬判决数据的硬解码失败,则第二读取处理单元620可以将对数似然比(LLR)值分配至落入与多个读取参考电压相对应的多个电压区域中的单元。此外,第二读取处理单元620可以使用多个读取参考电压中的每个来执行读取操作以从存储器件200读取数据。因此,可以产生针对多个读取参考电压中的每个的原始数据。
第三读取处理单元630可以基于LLR值来执行软判决读取操作,并且对软判决数据执行软解码。通过软解码,可以产生无错误数据。
确定器640可以将原始数据与无错误数据进行比较,并且基于比较结构来计算原始数据的错误的总数。然后,确定器640可以在多个读取参考电压之中选择具有最小数量的错误的读取参考电压作为最优读取参考电压。换句话说,确定器640可以基于原始数据和无错误数据来确定多个读取参考电压之中的最优读取参考电压。
在一些实施例中,确定器640可以通过对原始数据和无错误数据二者执行异或(XOR)运算来将原始数据与无错误数据进行比较以产生异或数据。确定器640可以通过对异或数据的多个位位置中的至少一个错误位计数来计算原始数据的错误的总数。
图7是图示根据本发明的实施例的用于选择最优读取参考电压的操作的流程图。例如,图7的操作可以由图2中所示的控制器100(即,ECC单元130)或图6中所示的装置600来执行。
参照图7,在步骤710处,控制器100将对数似然比(LLR)值分配至落入不同阈值电压区域(其可以通过eBoost过程来分离)中的闪存单元。当eBoost过程试图利用不同的阈值电压来顺序地读取时,在eBoost过程的几个步骤之后,阈值电压区域可以被划分为几个区段。可以利用用于将LLR值分配至落入不同区域中的单元的这种信息。可以在eBoost过程的任何阶段执行对分配LLR值的选择,而不管已经运行的eBoost步骤的数量如何。
在步骤720处,控制器100可以基于LLR值来执行软解码。换句话说,在eBoost过程中的每个步骤结束时,可以基于在步骤710处分配的LLR值来触发软解码(例如,软LDPC解码)。
在步骤730处,控制器100检查软解码是否失败。如果软解码失败,则类似于典型的eBoost过程,控制器100利用另一组读取参考电压来触发另一读取。然后,控制器100回到步骤710。
在多次迭代之后,虽然eBoost过程的每次读取的硬解码有可能仍然失败,但是软解码中的一个可能成功,因为硬解码仅可以单独地使用每次读取步骤的信息,而软解码可以结合所有读取步骤的信息来进行解码。因此,在步骤740处,在软解码之后可以产生无错误数据。
在步骤750处,利用使用计数器信息的不同读取来继续执行eBoost过程(例如,通过控制器100)以找到平坦区域,该平坦区域具有最少数量的单元并且被认为是最优读取参考电压。
再次参照图7,在步骤760处,控制器100检查是否找到最优读取参考电压。如果找到了最优读取参考电压,则在步骤770处,控制器100指示eBoost过程成功。否则,控制器100触发步骤780中的过程以帮助寻找最优读取参考电压。
在步骤780处,控制器100在平坦区域510(例如,图5B)处尝试所有可能的阈值电压选择,在该平坦区域510处eBoost过程不能识别哪个阈值电压是最优的。
在如图5B中所示的平坦区域510处,落入平坦区域中的单元的数量非常类似,且难以识别最优阈值电压。然而,它们的原始读取值可以明显不同,且错误率也可以明显不同。如图8的示例中所示,阈值电压V1、V2、V3和V4全都在平坦区域中。落入区域[V1,V2]、[V2,V3]和[V3,V4]中的单元的数量接近。然而,当利用阈值电压V1、V2、V3和V4中的每个来读取时,每个读取数据的原始位错误是不同的。在传统读取操作中,因为利用这些参考电压的ECC解码全部失败,所以这些读取的原始错误的数量是未知的。ECC解码不能报告错误计数,因此不存在无错误数据。然而,通过本文公开的软LDPC解码的帮助(例如,在步骤780处),能够在步骤720中得到无错误数据副本。因此,公开的过程和方法能够通过将利用这些电压读取的原始数据与无错误数据进行比较来对错误的数量计数。
在如图8中所示的平坦区域中,假设存在多个读取参考电压,从该多个读取参考电压之中难以选择一个最优电压。在这种情况下,控制器100可以执行用于在多个读取参考电压之中选择最优读取参考电压的操作。
图9是图示根据本发明的实施例的用于在平坦区域中选择最优读取参考电压的操作的流程图。例如,图7的操作可以由图2中的控制器100(即,ECC单元130)和/或图6中的装置600来执行。
参照图9,在步骤910处,控制器100利用平坦区域中的读取参考电压中的一个(例如,V1)来读取原始数据。然后,控制器100得到没有任何解码的原始数据,并且将原始数据加载至缓冲器(未示出)中。
在步骤920处,控制器100对原始数据与通过图7的步骤720中的软解码而获得的无错误数据执行异或(XOR)运算。即,如图10中所示,原始读取数据1020与无错误数据1010异或以产生异或数据1030。如果异或数据1030的特定位具有错误,则在对应位位置中的异或数据1030将是1。否则,其将是0。
在步骤930处,异或数据被发送至计数器,然后控制器100计算错误的总数。这种错误计数将被记录。如果仍然存在尚未尝试的一些可能的读取参考电压,则控制器100在与平坦区域相关的列表中选择另一组读取参考电压。对于另一读取参考电压,执行步骤910至930。如果平坦区域中的所有可能的读取参考电压的错误计数已经被计算,则控制器100进入步骤940。
在步骤940处,控制器100选择包含最小数量的错误的读取参考电压作为最优读取参考电压。
本文公开的示例是说明性的而非专用性的。在eBoost过程期间使用软解码来得到无错误数据,以及基于这种无错误数据来选择读取参考电压(利用这种读取参考电压读取的原始数据包含与这种无错误软LDPC解码数据的最小数量偏差)的任何方法都在本公开的范围内。
因为改善了eBosot过程能够找到最优读取参考电压的可能性,所以该技术是有用的。一个优点在于在eBoost过程期间可以早早地开始软解码以减少延迟。另一个优点在于当两个相邻阈值电压分布的边缘处的阈值电压分布接近时,能够找到最优读取参考电压(即,即使在传统eBoost过程不能找到最优读取参考电压的情况下,也能够找到最优读取参考电压)。在没有该技术的情况下,eBoost过程不能在平坦区域中找到最优读取参考电压。利用该技术,找到最优读取参考电压的可能性高得多。
虽然已经出于清楚理解的目的而相当详细地描述了前述实施例,但是本发明不局限于所提供的细节。存在实现本发明的很多替换方式。公开的实施例是说明性的而非限制性的。
Claims (20)
1.一种方法,包括:
执行硬判决读取操作以从存储器件读取硬判决数据;
如果针对硬判决数据的硬解码失败,则将对数似然比LLR值分配至落入与多个读取参考电压相对应的多个电压区域中的单元;
基于LLR值来执行软判决读取操作,以及对软判决数据执行软解码以产生无错误数据;
使用所述多个读取参考电压中的每个来执行读取操作以从存储器件读取数据,以产生针对所述多个读取参考电压中的每个的原始数据;以及
基于原始数据和无错误数据来确定所述多个读取参考电压之中的最优读取参考电压。
2.如权利要求1所述的方法,其中,确定最优读取参考电压的步骤包括:
将原始数据与无错误数据进行比较;
基于比较结果来计算原始数据的错误的总数;以及
在所述多个读取参考电压之中选择具有最小数量的错误的读取参考电压作为最优读取参考电压。
3.如权利要求2所述的方法,其中,将原始数据与无错误数据进行比较的步骤包括:
对原始数据和无错误数据二者执行异或XOR运算以产生异或数据。
4.如权利要求3所述的方法,其中,异或数据包括多个位位置,以及
其中,计算原始数据的错误的总数的步骤包括:对异或数据的位位置中的至少一个错误位计数。
5.如权利要求1所述的方法,还包括:
判断针对硬判决数据的硬解码是否失败。
6.一种方法,包括:
对来自存储器件的单元执行软判决读取操作,所述单元落入与多个读取参考电压相对应的多个电压区域中;
对软判决数据执行软解码以产生无错误数据;
使用所述多个读取参考电压中的每个来执行读取操作以产生针对所述多个读取参考电压中的每个的原始数据;以及
基于原始数据和无错误数据来确定所述多个读取参考电压之中的最优读取参考电压。
7.如权利要求6所述的方法,其中,确定最优读取参考电压的步骤包括:
将原始数据与无错误数据进行比较;
基于比较结果来计算原始数据的错误的总数;以及
在所述多个读取参考电压之中选择具有最小数量的错误的读取参考电压作为最优读取参考电压。
8.如权利要求7所述的方法,其中,将原始数据与无错误数据进行比较的步骤包括:对原始数据和无错误数据二者执行异或XOR运算以产生异或数据。
9.如权利要求8所述的方法,其中,异或数据包括多个位位置,以及
其中,计算原始数据的错误的总数的步骤包括:对异或数据的位位置中的至少一个错误位计数。
10.如权利要求6所述的方法,还包括:
执行硬判决读取操作以从存储器件读取硬判决数据,
其中,如果针对硬判决数据的硬解码失败,则所述执行软判决读取操作的步骤得以执行。
11.一种用于控制存储器件的控制器,包括:
第一读取处理单元,适用于执行硬判决读取操作以从存储器件读取硬判决数据;
第二读取处理单元,适用于:如果针对硬判决数据的硬解码失败,则将对数似然比LLR值分配至落入与多个读取参考电压相对应的多个电压区域中的单元,以及使用所述多个读取参考电压中的每个来执行读取操作以从存储器件读取数据,以产生针对所述多个读取参考电压中的每个的原始数据;
第三读取处理单元,适用于基于LLR值来执行软判决读取操作,以及对软判决数据执行软解码,以产生无错误数据;以及
确定器,适用于基于原始数据和无错误数据来确定所述多个读取参考电压之中的最优读取参考电压。
12.如权利要求11所述的控制器,其中,确定器适用于:
将原始数据与无错误数据进行比较;
基于比较结果来计算原始数据的错误的总数;以及
在所述多个读取参考电压之中选择具有最小数量的错误的读取参考电压作为最优读取参考电压。
13.如权利要求12所述的控制器,其中,确定器适用于通过对原始数据和无错误数据二者执行异或XOR运算来将原始数据与无错误数据进行比较,以产生异或数据。
14.如权利要求13所述的控制器,其中,异或数据包括多个位位置,以及
其中,确定器适用于通过对异或数据的位位置中的至少一个错误位计数来计算原始数据的错误的总数。
15.如权利要求11所述的控制器,其中,第一读取处理单元还适用于判断针对硬判决数据的硬解码是否失败。
16.一种用于控制存储器件的控制器,包括:
第一单元,适用于对来自存储器件的单元执行软判决读取操作以及对软判决数据执行软解码以产生无错误数据,所述单元落入与多个读取参考电压相对应的多个电压区域中;
第二单元,适用于使用所述多个读取参考电压中的每个来执行读取操作以产生针对所述多个读取参考电压中的每个的原始数据;以及
确定器,适用于基于原始数据和无错误数据来确定所述多个读取参考电压之中的最优读取参考电压。
17.如权利要求16所述的控制器,其中,确定器适用于:
将原始数据与无错误数据进行比较;
基于比较结果来计算原始数据的错误的总数;以及
在所述多个读取参考电压之中选择具有最小数量的错误的读取参考电压作为最优读取参考电压。
18.如权利要求17所述的控制器,其中,确定器适用于通过对原始数据和无错误数据二者执行异或XOR运算来将原始数据与无错误数据进行比较,以产生异或数据。
19.如权利要求18所述的控制器,其中,异或数据包括多个位位置,以及
其中,确定器适用于通过对异或数据的位位置中的至少一个错误位计数来计算原始数据的错误的总数。
20.如权利要求16所述的控制器,还包括:
第三单元,适用于执行硬判决读取操作以从存储器件读取硬判决数据,
其中,第一单元适用于:如果针对硬判决数据的硬解码失败,则执行软判决读取操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562133754P | 2015-03-16 | 2015-03-16 | |
US62/133,754 | 2015-03-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106169308A CN106169308A (zh) | 2016-11-30 |
CN106169308B true CN106169308B (zh) | 2020-09-15 |
Family
ID=56923952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610151434.0A Active CN106169308B (zh) | 2015-03-16 | 2016-03-16 | 存储器控制器及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9564239B2 (zh) |
CN (1) | CN106169308B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110100236B (zh) * | 2016-12-29 | 2021-03-23 | 华为技术有限公司 | 数据读取方法及闪存设备 |
US10083754B1 (en) * | 2017-06-05 | 2018-09-25 | Western Digital Technologies, Inc. | Dynamic selection of soft decoding information |
US10062441B1 (en) * | 2017-08-31 | 2018-08-28 | Micron Technology, Inc. | Determining data states of memory cells |
KR102349382B1 (ko) * | 2017-10-11 | 2022-01-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10558522B2 (en) | 2017-10-20 | 2020-02-11 | Western Digital Technologies, Inc. | Dynamic multi-stage decoding |
CN109801669B (zh) * | 2017-11-17 | 2023-05-16 | 爱思开海力士有限公司 | 具有软读取挂起方案的存储器系统及其操作方法 |
CN109840047A (zh) * | 2017-11-27 | 2019-06-04 | 华为技术有限公司 | 一种降低读延时的方法及装置 |
US10637511B2 (en) | 2017-12-18 | 2020-04-28 | Western Digital Technologies, Inc | Dynamic multi-stage decoding |
KR20190092937A (ko) | 2018-01-31 | 2019-08-08 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR102648618B1 (ko) * | 2018-03-28 | 2024-03-19 | 에스케이하이닉스 주식회사 | 컨트롤러, 그것의 동작방법 및 컨트롤러를 포함하는 메모리 시스템 |
US10997017B2 (en) * | 2018-05-03 | 2021-05-04 | SK Hynix Inc. | Neighbor assisted correction error recovery for memory system and method thereof |
KR102693836B1 (ko) * | 2018-06-12 | 2024-08-12 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US10877840B2 (en) * | 2018-08-02 | 2020-12-29 | SK Hynix Inc. | Dynamic neighbor and bitline assisted correction for NAND flash storage |
KR102671727B1 (ko) * | 2018-11-30 | 2024-06-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN109686398B (zh) * | 2018-12-24 | 2021-04-09 | 西南交通大学 | 一种用于nand闪存的似然比软值的生成方法和装置 |
KR20210003368A (ko) * | 2019-07-02 | 2021-01-12 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
CN110335636B (zh) * | 2019-07-05 | 2021-04-02 | 中国科学院上海微系统与信息技术研究所 | 相变存储器的多级存储读写方法及系统 |
US11175979B2 (en) * | 2019-08-06 | 2021-11-16 | Micron Technology, Inc. | Prioritization of error control operations at a memory sub-system |
US11194646B2 (en) * | 2019-12-03 | 2021-12-07 | Micron Technology, Inc. | Regression-based calibration and scanning of data units |
US12009034B2 (en) | 2020-03-02 | 2024-06-11 | Micron Technology, Inc. | Classification of error rate of data retrieved from memory cells |
CN111522687B (zh) * | 2020-04-16 | 2022-10-14 | 江苏芯盛智能科技有限公司 | 数据处理方法、装置、固态硬盘及计算机可读存储介质 |
US11562793B2 (en) * | 2020-05-07 | 2023-01-24 | Micron Technology, Inc. | Read soft bits through boosted modulation following reading hard bits |
US11257546B2 (en) | 2020-05-07 | 2022-02-22 | Micron Technology, Inc. | Reading of soft bits and hard bits from memory cells |
CN114121127A (zh) * | 2020-08-27 | 2022-03-01 | 成都忆芯科技有限公司 | 动态调整读重做序列以优化读命令处理 |
CN112181714B (zh) * | 2020-10-30 | 2021-06-22 | 深圳安捷丽新技术有限公司 | 一种固态硬盘纠错方法、装置、存储设备及存储介质 |
US11483014B2 (en) * | 2020-12-22 | 2022-10-25 | SK Hynix Inc. | System and method for soft decoding without additional reads |
US12045131B2 (en) | 2022-12-13 | 2024-07-23 | SK Hynix Inc. | Read error injection |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186352A (zh) * | 2011-12-30 | 2013-07-03 | 三星电子株式会社 | 从存储设备读取数据的方法、纠错设备和存储系统 |
CN103380416A (zh) * | 2011-02-18 | 2013-10-30 | 马维尔国际贸易有限公司 | 用于软解码的可靠性度量管理 |
CN104051016A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 非易失性存储装置、读取数据方法、存储系统及操作方法 |
US8924824B1 (en) * | 2013-03-12 | 2014-12-30 | Western Digital Technologies, Inc. | Soft-decision input generation for data storage systems |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9270297B2 (en) | 2011-07-31 | 2016-02-23 | SanDisk Technologies, Inc. | Error-correction decoding with reduced memory and power requirements |
CN104247273B (zh) | 2012-03-28 | 2017-05-17 | 英特尔公司 | 用于重构码字的设备及计算机实现的方法 |
US8856611B2 (en) * | 2012-08-04 | 2014-10-07 | Lsi Corporation | Soft-decision compensation for flash channel variation |
KR102123946B1 (ko) | 2012-12-28 | 2020-06-17 | 삼성전자주식회사 | 멀티 레벨 셀 메모리 장치 및 그것의 동작방법 |
US9276609B2 (en) * | 2013-11-16 | 2016-03-01 | Seagate Technology Llc | Systems and methods for soft decision generation in a solid state memory system |
KR102110767B1 (ko) | 2013-12-24 | 2020-06-09 | 삼성전자 주식회사 | 메모리 컨트롤러 구동방법 및 메모리 컨트롤러 |
-
2016
- 2016-03-16 CN CN201610151434.0A patent/CN106169308B/zh active Active
- 2016-03-16 US US15/071,986 patent/US9564239B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103380416A (zh) * | 2011-02-18 | 2013-10-30 | 马维尔国际贸易有限公司 | 用于软解码的可靠性度量管理 |
CN103186352A (zh) * | 2011-12-30 | 2013-07-03 | 三星电子株式会社 | 从存储设备读取数据的方法、纠错设备和存储系统 |
US8924824B1 (en) * | 2013-03-12 | 2014-12-30 | Western Digital Technologies, Inc. | Soft-decision input generation for data storage systems |
CN104051016A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 非易失性存储装置、读取数据方法、存储系统及操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106169308A (zh) | 2016-11-30 |
US9564239B2 (en) | 2017-02-07 |
US20160276039A1 (en) | 2016-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106169308B (zh) | 存储器控制器及其操作方法 | |
CN109616148B (zh) | 具有解码器的存储器系统、其操作方法和解码器 | |
CN107731259B (zh) | 最佳读取参考电压的存储器系统及其操作方法 | |
CN108073466B (zh) | 用于减少数据访问延迟的介质质量感知ecc解码方法选择 | |
CN106155585B (zh) | 自适应读取干扰收回策略 | |
US10388400B2 (en) | Generalized product codes for flash storage | |
US11450400B2 (en) | Controller and operating method thereof | |
US10148293B2 (en) | Incremental LLR generation for flash memories | |
CN108073467B (zh) | 具有硬信道信息的位翻转ldpc解码算法 | |
US9653176B2 (en) | Read disturb reclaim policy | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
CN107977283B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
US9979417B2 (en) | Enhanced chip-kill schemes by using ECC syndrome pattern | |
US10432363B2 (en) | Page health prediction using product codes decoder in NAND flash storage | |
CN111540393B (zh) | 用于基于字线分组的读取操作的存储器系统和方法 | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
CN110277124B (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
US20170330607A1 (en) | Memory system having optimal threshold voltage and operating method thereof | |
US11907571B2 (en) | Read threshold optimization systems and methods using domain transformation | |
CN110444245B (zh) | 具有混合迭代解码能力的存储器系统及其操作方法 | |
CN112216328B (zh) | 具有低复杂度解码的存储器系统及其操作方法 | |
CN110275844B (zh) | 利用自适应阈值解码的存储器系统及其操作方法 | |
US12124330B2 (en) | Soft decoding error prediction | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器系统及其操作方法 | |
US20240289215A1 (en) | Soft Decoding Error Prediction |
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 |