CN102203875B - 使用参考单元的用于存储器器件的软数据生成的方法和装置 - Google Patents

使用参考单元的用于存储器器件的软数据生成的方法和装置 Download PDF

Info

Publication number
CN102203875B
CN102203875B CN200980143074.8A CN200980143074A CN102203875B CN 102203875 B CN102203875 B CN 102203875B CN 200980143074 A CN200980143074 A CN 200980143074A CN 102203875 B CN102203875 B CN 102203875B
Authority
CN
China
Prior art keywords
data
unit
soft
statistical data
value
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
Application number
CN200980143074.8A
Other languages
English (en)
Other versions
CN102203875A (zh
Inventor
小H·F·博格
E·F·哈拉特什
M·伊威科维克
V·克拉琦科夫斯基
N·米拉德诺维奇
A·维缇亚埃夫
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.)
Infineon Technologies North America Corp
Original Assignee
Infineon Technologies North America Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/US2009/049333 external-priority patent/WO2010002948A1/en
Application filed by Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of CN102203875A publication Critical patent/CN102203875A/zh
Application granted granted Critical
Publication of CN102203875B publication Critical patent/CN102203875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5607Digital 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 magnetic storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5642Sensing or reading circuits; Data output circuits
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/02Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/563Multilevel memory reading aspects
    • G11C2211/5634Reference cells

Abstract

使用参考单元为存储器器件提供软数据生成的方法和装置。通过如下步骤在存储器器件中产生至少一个软数据值:向一个或更多个参考单元写入已知数据;读取所述参考单元中的一个或更多个;基于所读取的一个或更多个参考单元获得读取统计数据;以及基于所获得的读取统计数据获得所述至少一个软数据值。可以可选地为存储器阵列的一个或更多个期望位置或者为一个或更多个侵略者单元中的给定模式PATT获得所述读取统计数据。所述读取统计数据可选地可以包括关于多个可能值的非对称的统计数据。

Description

使用参考单元的用于存储器器件的软数据生成的方法和装置
相关申请的交叉引用
本申请要求在2008年9月30日提交的、题为“MethodsandApparatusforSoftDemappingandIntercellInterferenceMitigationinFlashMemories”的美国临时专利申请第61/194,751号和在2009年6月30日提交的国际专利申请PCT/US09/49333的优先权,它们均通过引用合并于此。
本申请涉及题为“MethodsandApparatusforSoftDataGenerationforMemoryDevicesBasedonPerformanceFactorAdjustment”的国际专利申请、题为“MethodsandApparatusforSoftDataGenerationforMemoryDevices”的国际专利申请和题为“MethodsandApparatusforSoftDataGenerationforMemoryDevicesUsingDecoderPerformanceFeedback”的国际专利申请,它们均与本申请同时提交并且通过引用合并于此。
技术领域
本发明通常涉及闪速存储器器件,更具体地,涉及改进的软解映射和软数据生成技术,用于减轻这些闪速存储器器件中的单元间干扰、后模式依赖性(backpatterndependency)、噪声和其他失真的影响。
背景技术
诸如闪速存储器器件的许多存储器器件使用模拟存储器单元来存储数据。每个存储器单元存储诸如电荷或电压的模拟值,其也被称为存储值。存储值表示单元中存储的信息。在闪速存储器器件中,例如,每个模拟存储器单元典型地存储特定的电压。关于每个单元的可能的模拟值的范围典型地被分为多个阈值区,每个区对应于一个或更多个数据位值。通过写入对应于期望的一个或更多个位的额定模拟值来将数据写入模拟存储器单元。
单级单元(SLC)闪速存储器器件例如,每个存储器单元存储一个位(或者两个可能的存储器状态)。另一方面,多级单元(MLC)闪速存储器器件在每个存储器单元存储两个或更多个位(即,每个单元具有四个或更多个可编程状态)。对于MLC闪速存储器器件的更详细的讨论,参见例如,在2009年3月11日提交的题为“MethodsandApparatusforStoringDatainaMulti-LevelCellFlashMemoryDevicewithCross-PageSectors,Multi-PageCodingAndPer-PageCoding”的国际专利申请PCT/US09/36810号,其通过引用合并于此。
在多级NAND闪速存储器器件中,例如,使用浮栅器件,其可编程阈值电压范围被分为多个区间,每个区间对应于不同的多位值。为了将给定多位值编程到存储器单元中,存储器单元中的浮栅器件的阈值电压被编程到对应于该值的阈值电压区间。
存储器单元中存储的模拟值常常失真。这些失真典型地归因于例如,后模式依赖性(BPD)、噪声和单元间干扰(ICI)。对于闪速存储器器件中的失真的更详细的讨论,参见例如,J.D.Lee等人的″EffectsofFloating-GateInterferenceonNANDFlashMemoryCellOperation,″IEEEElectronDeviceLetters,264-266(2002年5月)或者Ki-TaePark等人的″AZeroingCell-to-CellInterferencePageArchitectureWithTemporaryLSBStoringandParallelMSBProgramSchemeforMLCNANDFlashMemories,″IEEEJ.ofSolidStateCircuits,Vol.43,No.4,919-928,(2008年4月),它们均通过引用合并于此。
已提出或建议了许多用于减轻ICI和其他干扰的影响的技术。例如,Ki-TaePark等人描述了现有的减轻ICI的编程技术,诸如偶/奇编程、由下而上编程和多级编程。在2009年6月30日提交的题为“MethodsandApparatusforSoftDemappingandIntercellInterferenceMitigationinFlashMemories”的国际专利申请PCT/US09/49333公开了闪速存储器中的用于软解映射和干扰减轻的方法和装置。
尽管这些现有方法有助于提高闪速存储器的解码性能,但是它们受到许多限制,如果克服了这些限制,则可以进一步提高闪速存储器的可靠性。例如,当前的闪速存储器典型地仅向闪速控制系统提供用于解码的硬数据。然而,公知的是,软数据可以提高解码处理中的错误率性能。因此,需要使用来自闪速存储器的硬数据来估计或增强软数据并且从而提高解码性能的软数据生成技术。
发明内容
通常,使用参考单元为存储器器件提供软数据生成的方法和装置。根据本发明的一方面,通过如下步骤在存储器器件中产生至少一个软数据值:向一个或更多个参考单元写入已知数据;读取所述参考单元中的一个或更多个;基于所读取的一个或更多个参考单元获得读取统计数据;以及基于所获得的读取统计数据获得所述至少一个软数据值。利用电压、电流和电阻中的一个或更多个将所述已知数据写入所述参考单元。类似的,已知数据包括位模式和符号模式中的一个或更多个。所述软数据值可以包括(i)用于产生一个或更多个对数似然比的软读取值;或者(ii)一个或更多个对数似然比。所述统计数据可以包括基于位的统计数据、基于单元的和取决于模式的统计数据。
在一个实施例中,通过将从所述一个或更多个参考单元读取的一个或更多个位与所述已知数据中的一个或更多个位进行比较来确定所述读取统计数据。例如,读取统计数据可以基于与所述已知数据中的参考位的总数有关的错误位的数目。可以根据耐久性、编程/擦除周期数目、读取周期数目、保持时间、温度、温度的改变、工艺角、单元间干扰影响、所述存储器器件内的位置、字线内的位置、存储器阵列内的位置和侵略者单元中的模式中的一个或更多个来计算所述读取统计数据或软数据值(或此二者)。
根据一方面,为存储器阵列的一个或更多个期望位置获得所述读取统计数据,以及其中所述写入步骤包括将所述已知数据写入到所述一个或更多个期望位置。例如,所述期望位置包括页位置、字线位置、位线位置和多级单元内的给定位中的一个或更多个。
根据另一方面,为与至少一个目标单元关联的一个或更多个侵略者单元中的给定模式PATT获得所述读取统计数据;以及其中所述写入步骤包括如下步骤:将已知数据写入到所述至少一个目标单元;以及其中所述方法进一步包括如下步骤:确定在所述一个或更多个侵略者单元中具有所述给定模式PATT的错误目标位的数目;以及基于所述错误目标位的数目获得对于所述给定模式的所述读取统计数据。
根据另一方面,所述读取统计数据可以包括为多个可能的值获得的非对称的读取统计数据;以及其中所述方法进一步包括如下步骤:确定所述已知数据中具有第一值的错误位的数目;确定所述已知数据中具有第二值的错误位数目;基于具有所述第一值的错误位数目对于所述第一值获得读取统计数据;以及基于具有所述第二值的错误位数目对于所述第二值获得读取统计数据。
通过参考下面的详细描述和附图,将获得本发明的更完整的理解以及本发明的另外的特征和优点。
附图说明
图1是传统的闪速存储器系统的示意性框图;
图2图示了关于图1的示例性闪速存储器的示例性阈值电压分布;
图3图示了多级单元(MLC)闪速存储器器件中的示例性闪速单元阵列的架构;
图4图示了关于图2的电压分配方案的示例性两级MLC编程方案;
图5A和5B共同地图示了减少强加在相邻单元上的ICI的可替选的MLC编程方案;
图6更详细地图示了多级单元(MLC)闪速存储器器件中的示例性闪速单元阵列;
图7图示了由于许多示例性侵略者单元而对目标单元呈现的干扰,诸如单元间干扰、后模式依赖性、噪声和其他失真;
图8是根据本发明的并入了基于控制器的软解映射/软数据生成技术的示例性闪速存储器系统的示意性框图;
图9是根据本发明的可替选的实施例的并入了基于控制器的软解映射/软数据生成技术的示例性闪速存储器系统的示意性框图;
图10图示了具有迭代的解映射和解码以及可选的交织的示例性闪速读取通道架构;
图11图示了根据本发明的具有软数据生成的示例性闪速存储器系统;
图12A和12B分别是描述示例性软解映射处理和软数据生成处理的流程图;
图13是低密度奇偶校验(LDPC)码的示例性二部图表示;
图14是示例性LDPC解码器架构的框图;
图15图示了根据本发明的一个实施例的具有软数据生成的示例性闪速存储器系统;
图16是图示关于示例性二进制通道的错误概率p和q的网格图;
图17A至17C是记录关于从闪速存储器读出数据的统计数据的示例性的基于单元的统计数据表格;
图18是记录关于从闪速存储器读出数据的取决于模式的统计数据的示例性的取决于模式的基于单元的统计数据表格;
图19更详细地图示了关于本发明的参考单元实施例的图3的示例性闪速单元阵列;
图20是描述关于本发明的参考单元实施例的基于位的统计数据生成处理的示例性实现的流程图;
图21是描述关于本发明的参考单元实施例的基于单元的统计数据生成处理的示例性实现的流程图;
图22是描述关于本发明的解码码字实施例的基于位的统计数据生成处理的示例性实现的流程图;
图23是描述关于本发明的解码码字实施例的基于单元的统计数据生成处理的示例性实现的流程图;
图24是描述计算关于存储器阵列中的许多不同位置的错误概率统计数据的示例性的基于位的位置特定的统计数据生成处理的流程图;
图25是描述计算关于存储器阵列中的许多不同位置的统计数据的示例性的基于单元的位置特定的统计数据生成处理的流程图;
图26图示了基于每个侵略者单元的所有可能值的指示针对给定目标单元的取决于模式的干扰影响的概率密度函数的集合;
图27是描述估计取决于与至少一个目标单元关联的一个或更多个侵略者单元中的给定数据模式的错误概率统计数据的示例性的基于位的取决于模式的统计数据生成处理的流程图;
图28是描述估计取决于与至少一个目标单元关联的一个或更多个侵略者单元中的给定数据模式的统计数据的示例性的基于单元的取决于模式的统计数据生成处理的流程图;
图29是描述关于本发明的参考单元实施例的估计关于两个可能的二进制值的错误概率统计数据的示例性的非对称统计数据生成处理的流程图;
图30是描述关于本发明的解码码字实施例的估计关于两个可能的二进制值的错误概率统计数据的示例性的非对称统计数据生成处理的流程图;
图31是描述使用未满足的奇偶校验的统计数据生成处理的示例性实现的流程图;
图32是描述使用未满足的奇偶校验估计关于存储器阵列中的许多不同位置的错误概率统计数据的示例性的位置特定的统计数据生成处理的流程图;以及
图33是描述使用未满足的奇偶校验估计关于两个可能的二进制值的错误概率统计数据的示例性的非对称统计数据生成处理的流程图。
具体实施方式
本发明的各种方面涉及用于改进诸如单级单元或多级单元(MLC)NAND闪速存储器器件的存储器器件中的解码的软数据生成技术。如这里使用的,多级单元闪速存储器包括其中每个存储器单元存储两个或更多个位的存储器。典型地,一个闪速单元中存储的多个位属于不同的页。如对于本领域的普通技术人员明显的,尽管这里说明的本发明使用将模拟值存储为电压的存储器单元,但是本发明可以使用关于存储器器件的任何存储机制,诸如使用电压或电流来表示所存储的数据。
图1是传统的闪速存储器系统100的示意性框图。如图1中所示,示例性闪速存储器系统100包括闪速控制系统110和闪速存储器模块160。示例性闪速控制系统110包括闪速控制器120、编码器/解码器模块140和一个或更多个缓冲器145。在可替选的实施例中,编码器/解码器模块140和一些缓冲器145可以在闪速控制器120内部实现。编码器/解码器模块140和缓冲器145可以例如,使用公知的商用技术和/或产品来实现。
示例性闪速存储器模块160包括存储器阵列170和一个或更多个缓冲器180,它们均可以使用公知的商用技术和/或产品来实现。存储器阵列170可以被实施为单级或多级单元闪速存储器,诸如NAND闪速存储器、相变存储器(PCM)、MRAM存储器、NOR闪速存储器或者另外的非易失性闪速存储器。如对于本领域的普通技术人员明显的,尽管主要在多级单元NAND闪速存储器的背景下说明了本发明,但是本发明也可以应用于单级单元闪速存储器和其他非易失性存储器。
多级单元闪速存储器
在多级单元NAND闪速存储器中,典型地使用阈值检测器将与特定单元关联的电压值翻译为预先定义的存储器状态。图2基于美国专利第6,522,580号(其通过引用合并于此)的教导图示了关于图1的示例性多级单元闪速存储器170的示例性阈值电压分布。通常,单元的阈值电压是需要施加到单元的电压,从而使得单元传导特定量的电流。阈值电压是关于存储在单元中的数据的度量。
在图2中示出的示例性实施例中,每个存储元件使用四个可能的数据状态来在每个存储器单元中存储两位的数据。图2图示了四个峰值210-213,每个峰值对应于一个状态。在多级单元闪速存储器中,阈值电压分布曲线200的不同的峰值210-213被用于将两个位存储在单元中。
阈值电压分布曲线200的峰值210-213标记有相应的二进制值。因此,当单元处于第一状态210时,其表示低位(还被称为最低有效位LSB)的“1”和高位(还被称为最高有效位MSB)的“1”。状态210通常是单元的初始未编程或者擦除状态。同样地,当单元处于第二状态211时,其表示低位的“0”和高位的“1”。当单元处于第三状态212时,其表示低位的“0”和高位的“0”。最后,当单元处于第四状态213时,其表示低位的“1”和高位的“0”。
阈值电压分布210表示处于擦除状态(“11”数据状态)的阵列中的单元的阈值电压Vt的分布,具有0伏以下的负阈值电压电平。存储“10”和“00”用户数据的存储器单元的阈值电压分布211和212分别被示出为分别在0和1伏之间和1和2伏之间。阈值电压分布213示出了已被编程到“01”数据状态的单元的分布,具有设定在2和4.5伏读通电压之间的阈值电压电平。
因此,在图2的示例性实施例中,0伏、1伏和2伏可以用作每个电平或状态之间的电压电平阈值。闪速存储器160(例如,闪速存储器160中的感测电路)使用电压电平阈值来确定给定单元的电压电平或状态。闪速存储器160将基于测量的电压与电压电平阈值的比较将一个或更多个位分配给每个单元,它们随后作为硬判决被传送到闪速控制系统110。此外或者可替选地,在使用软信息的实现中,闪速存储器160可以将测量的电压或者测量的电压的量化形式作为软信息传送到闪速控制系统110,其中与存储器单元中存储的位数目相比,使用数目更大的位来表示测量的电压。
进一步注意到,典型地使用公知的编程/验证技术来对单元编程。通常,在编程/验证周期期间,闪速存储器160逐渐施加增加的电压以将电荷存储在单元晶体管中,直至超过最小目标阈值电压。例如,在图2的示例中编程“10”数据状态时,闪速存储器160可以逐渐施加增加的电压以将电荷存储在单元晶体管中,直至超过了0.4V的最小目标阈值电压。
如下文进一步讨论的,存储在单个存储器单元中的两个位中的每一个来自不同的页。换言之,存储在每个存储器单元中的两个位中的每个位承载了不同的页地址。当输入较低页地址时访问图2中示出的右侧位。当输入较高页地址时访问图2中示出的左侧位。
图3图示了多级单元(MLC)闪速存储器器件160中的示例性闪速单元阵列300的架构,其中每个示例性单元典型地对应于存储两个位的浮栅晶体管。在图3中,每个单元与两个位所属的两个页的两个编号关联。示例性单元阵列部分300示出了字线n至n+2和四个位线。示例性闪速单元阵列300被分为偶数和奇数页,其中例如具有偶数编号(诸如具有编号0和2的单元)的单元对应于偶数页,并且具有奇数编号(诸如具有编号1和3的单元)的单元对应于奇数页。字线n存储例如偶数位线中的偶数页0和2以及奇数位线中的奇数页1和3。
此外,图3指示了示例性编程顺序,其中按所指示的顺序连续地(自下而上)选择并编程偶数或奇数位线单元。编号指示其中对页编程的顺序。例如,页0在页1之前被编程。对于偶数和奇数页的编程的进一步的讨论,参见例如K.-T.Park等人的“AZeroingCell-to-CellInterferencePageArchitectureWithTemporaryLSBStoringandParallelMSBProgramSchemeforMLCNANDFlashMemories,″IEEEJ.ofSolidStateCircuits,Vol.43,No.4,919-928,(2008年4月),其通过引用合并于此。
图4图示了关于图2的电压分配方案的示例性两级MLC编程方案400。如图4中所示,在LSB编程阶段期间,如果LSB是零,则处于擦除状态410的所选择的单元的状态移动到最低编程状态411。因此,在LSB编程阶段中,将存储器单元从擦除状态“11”编程到“10”。接下来,在MSB编程阶段期间,根据前一LSB数据,连续形成两个状态,即状态“00”(412)和状态“01”(413)。通常,在MSB编程阶段期间,“10”状态被编程到“00”,并且状态“11”被编程到“01”。
注意,图4的编程方案400图示了与从状态410到状态413的状态改变关联的最大电压漂移。已提出或建议了许多编程方案来减少与状态改变关联的最大电压漂移,从而减少由电压漂移引起的ICI。
图5A和5B共同地图示了减少强加在相邻单元上的ICI的可替选的MLC编程方案500。如图5A中所示,在LSB编程阶段期间,按与SLC编程相似的方式将存储器单元从状态“11”编程到作为临时(或中间)状态的状态“x0”。在同一字线中的相邻单元也被LSB编程之后,由于ICI,分布可能被扩宽,如图5A中的峰值510所示。随后,在图5B中所示的MSB编程阶段中,“x0”状态被编程到作为对应于输入数据的最终状态的“00”和“10”,或者“11”状态被编程到最终的“01”状态。通常,在MSB编程阶段中除“11”单元以外的所有存储器单元从关于LSB数据的临时编程状态重新编程到其最终状态,从而可以极大地减少由相邻单元引起的ICI。处于最终状态的单元将不会受到当其处于中间状态时经历的ICI,这是因为其已被重新编程到最终状态。处于最终状态的单元将仅受到由于其处于最终状态而经历的ICI。如上文提到的,图5A和5B的多步骤编程顺序使用中间编程状态,从而减少了最大电压改变并且因此减少由这些电压改变引起的ICI。在图5B中可以看到,例如MSB编程阶段期间的最大电压漂移分别与从状态“11”到“01”和从状态“x0”到状态“10”的变换关联。这些电压漂移明显小于图4中的从状态“11”到“01”的最大电压漂移。
图6更详细地图示了多级单元(MLC)闪速存储器器件130中的示例性闪速单元阵列600。如图6中所示,闪速单元阵列600的每个闪速单元ci存储三个位。图6图示了关于一个模块的闪速单元阵列架构,其中每个示例性单元典型地对应于存储三个位的浮栅晶体管。示例性单元阵列600由m个字线和n个位线组成。典型地,在当前的多页单元闪速存储器中,单个单元中的位属于不同的页。在图6的示例中,每个单元的三个位对应于三个不同的页,并且每个字线存储三个页。在下面的讨论中,页0、1和2被称为字线中的较低、中间和较高页级。
如上文指示的,闪速单元阵列可以被进一步分为偶数和奇数页,其中例如具有偶数编号的单元(诸如图6中的单元2和4)对应于偶数页,并且具有奇数编号的单元(诸如图6中的单元1和3)对应于奇数页。在该情况中,页(诸如页0)将包含偶数单元中的偶数页(偶数页0)和奇数单元中的奇数页(奇数页0)。
单元间干扰和其他干扰
图7图示了由于许多示例性侵略者单元720而对目标单元710呈现的干扰,诸如单元间干扰、后模式依赖性、噪声和其他失真。在图7中使用如下记号:
WL:字线;
BL:位线;
BLo:奇数位线
BLe:偶数位线
C:电容。
例如,ICI由在目标单元710已被编程之后编程的侵略者单元720引起。ICI改变目标单元710的电压Vt。在示例性实施例中,采取“自下而上”的编程方案并且位线i和i+1中的相邻的侵略者单元引起了目标单元710的ICI。对于块的这种自下而上的编程,如图7中所示,来自较低位线i-1的ICI被移除,并且高达五个相邻单元作为侵略者单元720对ICI有贡献。然而,注意,如对于本领域的普通技术人员明显的,这里讨论的技术可以归纳为如下情况,其中来自诸如字线i-1的其他字线的侵略者单元也对ICI有贡献。如果来自字线i-1、i和i+1的侵略者单元对ICI有贡献,则需要考虑高达八个最近的相邻单元。远离目标单元的其他单元可被忽略,条件是它们对ICI的贡献是可忽略的。通常,通过分析编程顺序方案(诸如自下而上或偶/奇技术)来识别侵略者单元720,从而识别在给定目标单元710之后编程的侵略者单元720。
通常,Vt是表示存储在单元上并且在读取操作期间获得的数据的电压。Vt可以通过读取操作获得,例如,作为具有比每个单元存储的位数目更高的精度的软电压值,或者作为按与每个单元存储的位数目相同的分辨率(对于3位/单元闪速存储器,其是3位)量化到硬电压电平的值。
对于ICI减轻技术的更详细的讨论,参见例如,题为“MethodsandApparatusforRead-SideIntercellInterferenceMitigationinFlashMemories”的国际专利申请PCT/US09/49326或者题为“MethodsandApparatusforWrite-SideIntercellInterferenceMitigationinFlashMemories”的国际专利申请PCT/US09/49327,它们均通过引用合并于此。
软数据生成
本发明提供了用于闪速存储器的软解映射和软数据生成技术。在下文结合图12A进一步讨论的一个示例性实施例中,使用概率统计数据(诸如概率密度函数、其近似、基于位的概率或者基于单元的概率),根据闪速存储器分配的软数据生成增强的软数据。在下文结合图12B进一步讨论的另一示例性实施例中,使用概率统计数据(诸如概率密度函数、其近似、基于位的概率或者基于单元的概率),根据闪速存储器分配的硬数据生成软数据。通常,在最初时获得由闪速存储器分配的数据。本发明随后基于来自闪速存储器的数据生成或增强诸如概率或可靠性信息的软信息。所生成的软信息可以可选地用于软判决解码。如这里使用的,术语“概率密度函数”应包括概率密度函数及其近似,诸如直方图和高斯近似。
图8是根据本发明的并入了基于控制器的软数据生成技术的示例性闪速存储器系统800的示意性框图。如图8中所示,示例性闪速存储器系统800包括由接口850连接的闪速控制系统810和闪速存储器模块860。示例性闪速控制系统810包括闪速控制器820和读取通道825,其典型地位于一个或更多个集成电路上。
示例性读取通道825包括信号处理单元830、编码器/解码器模块840和一个或更多个缓冲器845。注意,术语“读取通道”也可以涵盖写入通道。在可替选的实施例中,编码器/解码器模块840和一些缓冲器845可以在闪速控制器820内部实现。编码器/解码器模块840和缓冲器845可以例如使用公知的商用技术和/或产品来实现,进行如这里的修改以提供本发明的特征和功能。
示例性信号处理单元830包括一个或更多个处理器,其实现一个或更多个软解映射器和/或软数据生成处理835,如下文例如分别结合图12A和12B进一步讨论的。示例性闪速存储器模块860包括存储器阵列870和一个或更多个缓冲器880,它们均可以使用公知的商用技术和/或产品来实现。
在所公开的软数据生成技术的各种实施例中,示例性接口850可能需要传送与传统的闪速存储器系统相关的额外信息,诸如表示与侵略者单元关联的信息的值。因此,接口850可能需要具有比传统的闪速存储器系统中的接口更高的容量或更快的速率。接口850可以可选地例如,根据在2009年6月30日提交的并且通过引用合并于此的题为“MethodsandApparatusforInterfacingBetweenaFlashMemoryControllerandaFlashMemoryArray”(代理人编号08-0769)的国际PCT专利申请PCT/US09/49328的教导来实现,其使用例如双数据速率(DDR)技术来增加接口850的信息承载容量。在写入操作期间,接口850典型地使用页或字线级访问技术来传输将被存储在目标单元中的编程值。对于示例性的页或字线级访问技术的更详细的讨论,参见例如,在2009年3月11日提交的题为“MethodsandApparatusforStoringDatainaMulti-LevelCellFlashMemoryDevicewithCross-PageSectors,Multi-PageCodingAndPer-PageCoding”的国际专利申请PCT/US09/36810,其通过引用合并于此。
在读取操作期间,接口850传输已从存储器阵列870获得的关于目标和侵略者单元的硬和/或软读取值。例如,除了关于具有目标单元的页的读取值之外,在接口总线上传输关于较高/较低字线或者相邻偶数或奇数位线中的一个或更多个相邻页的读取值。在图8的实施例中,所公开的软数据生成技术是在闪速存储器外部实现的,典型地以为逻辑电路优化以实现最低面积的处理技术实现。然而,这是以可能在接口850上传输额外的侵略者单元数据为代价的。
图9是根据本发明的可替选的实施例的并入了基于存储器的软数据生成技术的示例性闪速存储器系统900的示意性框图。如图9中所示,示例性闪速存储器系统900包括由接口950连接的闪速控制系统910和闪速存储器模块960。
示例性闪速控制系统910包括闪速控制器920和可选的读取通道925,其典型地位于一个或更多个集成电路上。在可替选的实施例中,编码器/解码器模块940和一些缓冲器945可以在闪速控制器920内部实现。示例性闪速控制器920可以例如使用公知的商用技术和/或产品来实现,进行如这里的修改以支持本发明的特征和功能。示例性读取通道925包括编码器/解码器模块940和一个或更多个缓冲器945。编码器/解码器模块940和缓冲器945可以使用公知的商用技术和/或产品来实现。
示例性闪速存储器模块960包括存储器阵列970和一个或更多个缓冲器980,它们均可以使用公知的商用技术和/或产品来实现。此外,示例性闪速存储器模块960包括示例性的信号处理单元985,其包括实现一个或更多个软解映射和/或软数据生成处理990的一个或更多个处理器,如下文例如分别结合图12A和12B进一步讨论的。
在所公开的软数据生成技术的各种实施例中,示例性接口950可能需要传送与传统的闪速存储器系统相关的额外信息,诸如表示与侵略者单元关联的信息的值。因此,接口950可能需要具有比传统的闪速存储器系统中的接口更高的容量或更快的速率。接口950可以可选地例如,根据在2009年6月30日提交的并且通过引用合并于此的题为“MethodsandApparatusforInterfacingBetweenaFlashMemoryControllerandaFlashMemoryArray”(代理人编号08-0769)的国际PCT专利申请PCT/US09/49328的教导来实现,其使用例如双数据速率(DDR)技术来增加接口950的信息承载容量。
在写入操作期间,接口950传输将被存储到目标和侵略者单元中的编程数据。在读取操作期间,接口950传输关于目标单元和可选地侵略者单元的新的硬或软读取值或数据。典型地,对于单次读取访问所传送的信息是数据的页或字线。注意,以使用用于制造闪速存储器的存储器加工技术在存储器内部实现软数据生成处理为代价(典型地针对存储器和非逻辑电路进行优化),仅发送关于目标单元的数据减少了接口950的带宽要求。
图10图示了具有根据在2009年6月30日提交的题为“MethodsandApparatusforSoftDemappingandIntercellInterferenceMitigationinFlashMemories”的国际专利申请PCT/US09/49333(其通过引用合并于此)的教导的迭代的解映射和解码以及可选的交织的示例性闪速读取通道架构1000。如图10中所示,示例性写入路径包括编码器1010、可选的交织器1020、串并转换器1030和映射器1040。数据以已知的方式被写入存储器1050并从其中读取。示例性读取路径包括软解映射器或软数据生成器1060、并串转换器1070、解交织器1080、解码器1090和交织器1095。通常,如下文进一步讨论的,软解映射器或者软数据生成器1060生成如下文进一步描述的软信息,该软信息由解码器1090处理以生成新的软信息并且以迭代的方式反馈到软解映射器,直至迭代处理收敛到最终判决。
在下文的题为“使用读取统计数据计算软数据(LLR)”的部分中讨论了根据本发明的由软解映射器1060使用的用于生成软信息(LLR)的等式。如图10中所示,由解映射器1060生成的软信息可以用于反馈路径中的软解映射器1060、解交织器1080、解码器1090和交织器1095之间的迭代的解映射和解码。
基于来自闪速存储器的数据的软数据生成
本发明认识到,当前的闪速存储器860、960典型地仅向闪速控制系统810、910提供硬数据。然而,公知的是,软数据可以提高解码处理中的错误率性能。因此,根据本发明的一个方面,使用来自闪速存储器860、960的硬数据来估计软数据并且从而提高闪速控制系统810、910中的解码性能。例如,如下文讨论的,硬数据的统计性质可以用于估计或增强软数据。随后可以使用所生成的软数据用于解码,诸如LDPC码的置信传播解码,以提高错误率性能。
根据本发明的另一方面,闪速存储器860、960向闪速控制系统810、910提供软数据或软信息。根据由闪速存储器860、960提供的软数据生成增强的软数据,从而提高闪速控制系统810、910中的解码性能。在使用软信息的实现中,闪速存储器系统860、960将测量的电压或者测量的电压的量化形式作为软信息传送到闪速控制系统810、910,其中与存储器单元中存储的位数目相比,使用数目更大的位来表示测量的电压。
图11图示了根据本发明的一个实施例的具有基于控制器的软数据生成的示例性闪速存储器系统1100。如图11中所示,示例性闪速存储器系统1100包括由接口1115连接的闪速存储器模块1110和闪速控制系统1120。如后面讨论的,软或硬数据值(或此两者)可以由闪速存储器模块1110分配并且在接口1115上被传输到闪速控制系统1120用于进一步解码和处理。示例性闪速控制系统1120包括下文结合图12A和12B进一步讨论的软解映射器/软数据生成器1200以及下文结合图13-14进一步讨论的解码器1400。解码器1400可以例如,使用LDPC解码算法来实施,诸如BeliefPropagation、MessagePassing、Sum-Product或者Min-Sum算法。
如图11中所示,软解映射器/软数据生成器1200生成的软信息可以可选地用于软解映射器/软数据生成器1200和解码器1400之间的迭代的解映射和解码。通常,如图11中所示,软解映射器/软数据生成器1200生成如下文的题为“使用读取统计数据计算软数据(LLR)”的部分中讨论的具有LLR,Le的形式的软信息。在最初时,由软解映射器/软数据生成器1200计算的LLR,Le基于来自闪速存储器1110的软或硬读出数据(或此两者)以及相应的统计数据。LLR,Le由解码器1400处理以生成新的软信息La,其以迭代的方式反馈回到软解映射器/软数据生成器1200,直至迭代处理收敛到最终判决。
软解映射器/软数据生成器1200
图12A是描述并入本发明的用于根据闪速存储器810、910提供的软数据生成增强的软数据的特征的示例性软解映射处理1200的流程图。如图12A中所示,示例性软解映射处理1200在最初时在步骤1210期间从闪速存储器810、910获得关于目标单元的软数据r,并且可选地获得表示存储在与目标单元关联的侵略者单元(一个或更多个)中的数据的一个或更多个值h。
软解映射处理1200随后在步骤1220期间基于r和可选地h获得统计数据(或概率),诸如一个或更多个概率密度函数。下文在题为“统计数据的收集”的部分中进一步地讨论了统计数据。
随后在步骤1230期间,使用所获得的统计数据计算LLR(一个或更多个)。在下文的题为“使用读取统计数据计算软数据(LLR)”的部分中讨论了LLR。随后在步骤1240期间,将计算的LLR提供给解码器1400,或者可选地提供给解交织器。计算的LLR可以可选地被用于例如基于LLR的符号进行关于读取数据的最终判决。
图12B是描述并入本发明的用于根据闪速存储器810、910提供的硬数据生成软数据的特征的示例性软数据生成处理1250的流程图。如图12B中所示,示例性软数据生成处理1250在最初时在步骤1260期间从闪速存储器810、910获得关于目标单元的硬数据并且可选地获得表示存储在与目标单元关联的侵略者单元(一个或更多个)中的数据的一个或更多个值硬数据可以是例如,由闪速存储器810、910分配给每个单元的二进制位或者电平。
为了计算关于单元中的一个位的LLR并且其他位不可用,使用例如页和字线访问技术来读取单元中的其他位。对于示例性的页或字线级访问技术的更详细的讨论,参见例如,在2009年3月11日提交的题为“MethodsandApparatusforStoringDatainaMulti-LevelCellFlashMemoryDevicewithCross-PageSectors,Multi-PageCodingAndPer-PageCoding”的国际专利申请PCT/US09/36810,其通过引用合并于此。对于页访问技术,读取LLR正被计算的页,并且可选地,也可以读取同一字线中的其他页,从而可以将硬数据映射到关于单元的级别通过字线访问技术,可以读取整个字线以获得单元中的所有位,从这些位获得硬数据级
例如,通过从侵略者单元720(或者其中存储侵略者单元720的页或字线)读出多个位来获得模式对于用于读出侵略者单元的技术的更详细的讨论,参见例如,题为“MethodsandApparatusforRead-SideIntercellInterferenceMitigationinFlashMemories”的国际专利申请PCT/US09/49326,其通过引用合并于此。
软数据生成处理1250随后在步骤1270期间基于和可选地获得统计数据(或概率),诸如一个或更多个概率密度函数。如下文在题为“统计数据的收集”的部分中进一步地讨论的,统计数据也可以是基于位的或基于单元的概率。如下文的题为“使用读取统计数据计算软数据(LLR)”的部分中关于各种高斯近似等式的讨论,当使用关于软读取值的分布的高斯近似时,统计数据包括分布的平均值或方差。可以例如在闪速存储器芯片针对不同性能因数的特征化期间(诸如编程/擦除周期、读取周期和温度)预先计算平均值和方差并且将其存储在表格中。可以基于性能因数,并且可选地还基于侵略者单元720中存储的模式从表格获得平均值和方差。
随后在步骤1280期间使用所获得的统计数据来计算LLR。在下文的题为“使用读取统计数据计算软数据(LLR)”的部分中讨论了LLR。注意,如题为“使用读取统计数据计算软数据(LLR)”的部分中解释的,除了统计数据或者替代统计数据,可以可选地使用由解码器提供的先验LLRLa来计算LLR。当计算了关于单元中的位的LLR时,使用关于单元中的至少一个位(可选地所有其他位)的先验LLRLa。这需要单元中的这些其他位已被读取并且已由解码器计算关于它们的先验LLRLa
随后在步骤1290期间将计算的LLR提供给解码器1400,或者可选地提供给解交织器。计算的LLR可以可选地用于例如基于LLR的符号进行关于读取数据的最终判决。注意,如在2009年3月11日提交的题为“MethodsandApparatusforStoringDatainaMulti-LevelCellFlashMemoryDevicewithCross-PageSectors,Multi-PageCodingAndPer-PageCoding”的国际专利申请PCT/US09/36810(其通过引用合并于此)中描述的,单元中的所有位(或者字线中的所有页)可以被共同地编码和解码。在另一实施例中,再次如国际专利申请PCT/US09/36810中描述的,单元中的位(或者字线中的所有页)可以被分立地编码和解码。
解码器1400-LDPC实现
下面的LDPC码和LDPC解码的背景讨论基于A.J.Blanksby和C.J.Howland的″A690-mW1-Gb/s1024-b,Rate-1/2Low-DensityParity-CheckDecoder,″IEEEJ.Solid-StateCircuits,Vol.37,404-412(Mar.2002)中的讨论,其通过引用合并于此。对于更详细的讨论,请读者参考Blanksby和Howland的完整论文。
LDPC码的图表示
还可以使用二部图来表示LDPC码,其中一个节点集合表示奇偶校验约束而另一集合表示数据位。图13是LDPC码的示例性二部图表示1300。奇偶校验矩阵是图的关联矩阵,其中如果设定了H中的元hji,即非零,则对应于H中的列i的位节点i连接到对应于H中的行j的校验节点j。
一种用于对LDPC码解码的算法被称为和-积算法。为了该算法的良好解码性能,重要的是,LDPC码的图表示中的周期长度是尽可能长的。在图13的示例性表示中,图示了长度为四的示例性短周期。诸如图13中图示的长度为4的周期的短周期使和-积算法的性能劣化。另一用于对LDPC码解码的公知算法是最小和算法。
和-积算法
和-积算法是用于对LDPC码解码的迭代算法。和-积算法还被称为消息传递算法或置信传播。对于和-积算法的更详细的讨论,参见例如,A.J.Blanksby和C.J.Howland的″A690-mW1-Gb/s1024-b,Rate-1/2Low-DensityParity-CheckDecoder,″IEEEJ.Solid-StateCircuits,Vol.37,404-412(Mar.2002)、D.E.Hocevar的″LDPCCodeConstructionWithFlexibleHardwareImplementation,″IEEEInt′lConf.onComm.(ICC),Anchorage,AK,2708-2712(May,2003)以及R.N.S.Ratnayake、E.F.Haratsch和Gu-YeonWei的″ABit-nodecentricarchitectureforlow-densityparitycheckdecoders,″′IEEEGlobalTelecommunicationsConference(Globecom),Washington,D.C.,265-270(November2007),它们均通过引用合并于此。
从位节点i到校验节点j的消息Qi,j由下式给出:
Q i , j = Σ l ∈ B i , l ≠ j R l , i + L c , i
其中Le,i是关于位i的由软解映射器/软数据生成器提供的外在LLR。从校验节点j到位节点i的消息Rj,i由下式给出:
R j , i = s j , i · φ ( Σ l ∈ C j , l ≠ i φ ( | Q i , j | ) )
其中:
s i , j = Π l ∈ C j , l = i sign ( Q i , j ) ; and
φ ( x ) = - log tanh ( x / 2 ) = log e x + 1 e x - 1
关于位i的后验信息值(其还被称为后验对数似然比(LLR))Λi由下式给出:
Λ i = Σ l ∈ B i R l , i + L e , i
提供给软解映射器/软数据生成器用于迭代解映射和解码的关于位i的LLRLa,i被给出为
L a , i = Σ l ∈ B i R l , i
其中Bi是连接到位节点i的校验节点的集合;并且Cj是连接到校验节点j的位节点的集合。
LDPC解码器-硬件共享解码器架构
实现用于对LDPC码解码的和-积算法时的重大的挑战是管理消息的传递。由于校验节点和位节点的功能相对简单,因此它们各自的实现仅牵涉小数目的门。主要问题是在功能节点之间传递消息所需要的带宽的实现。
图14是示例性硬件共享LDPC解码器架构1400的框图。如图14中所示,通用的LDPC解码器架构1400包括分别实现校验或位节点的功能的许多功能单元1410、1420以及用于存储消息和实现图连接性的存储器构造1450。控制逻辑1430控制存储器构造1450的配置。对于硬件共享LDPC解码器架构1400的实现的详细讨论,参见例如,E.Yeo等人的″VLSIArchitecturesforIterativeDecodersinMagneticRecordingChannels,″IEEETrans.OnMagnetics,Vol.37,No.2,748-755(2001年3月)。
已认识到,该硬件共享架构减少了解码器的面积。
图15图示了根据本发明的一个实施例的具有软数据生成的示例性闪速存储器系统1500。如图15中所示,示例性闪速存储器系统1500包括闪速存储器模块1510。如后面讨论的,硬或软数据值(或此两者)典型地由闪速存储器模块1510分配并且在接口1515上传输到闪速控制系统1520用于进一步解码和处理。示例性闪速控制系统1520包括下文结合图16进一步讨论的LLR生成器1550、在下文的题为“统计数据的收集”的部分中进一步讨论的统计数据生成器1570以及解码器1530。统计数据生成器1570生成的统计数据可选地被记录在下文例如结合图17A至17C和18进一步讨论的一个或更多个统计数据表格1560中,或者可替选地,可以实时地生成。
LLR生成器1550使用统计数据生成器1570生成的统计数据来生成具有LLR,Le的形式的软数据。在最初时,LLR,Le基于来自闪速存储器1510的软或硬读出数据(或此两者)以及相应的统计数据。LLR,Le由解码器1530处理以生成新的软信息La,其以迭代的方式反馈到LLR生成器1550,直至迭代处理收敛到最终判决。
解码器1530可以再次例如使用LDPC解码算法来实施,诸如置信传播、消息传递、和-积或最小和算法。注意,这里描述的统计数据生成器1570和LLR生成器1550的功能可以在闪速控制系统1520、解码器1530和读取通道825(参见例如,图8)中的一个或更多个中实现。
使用读取统计数据计算软数据(LLR)
关于位c的先验对数似然比(LLR)La可以被定义如下:
L a ( c ) = log P ( c = 0 ) P ( c = 1 )
其中P(...)是概率。
同样地,在闪速输出r上调节的位c的LLR被计算如下:
L ( c | r ) = log P ( c = 0 | r ) P ( c = 1 | r ) = log P ( c = 0 ) P ( c = 1 ) + log p ( r | c = 0 ) p ( r | c = 1 )
= L a ( c ) + L e ( c )
其中Le(c)是传递到后继解码器的外在LLR或软信息,并且p(...)是概率密度函数(PDF)。
图16是图示关于示例性二进制通道的错误概率p和q的网格图1600。注意,在二进制通道的背景下,p表示错误概率,而p(...)另外表示概率密度函数。当p≠q时,该二进制通道是非对称的。当p=q时,该二进制通道是对称的。如图16中所示,p是关于二进制0的错误概率(即当写入0时读取1的概率)。同样地,q是关于二进制1的错误概率(即当写入1时读取0的概率)。正确地读取二进制0的概率(即当写入0时读取0的概率)可以被表达为1-p。相似地,正确地读取二进制1的概率(即当写入1时读取1的概率)可以被表达为1-q。
关于二进制非对称通道的外在LLR
关于由网格图1600定义的二进制非对称通道的位c的外在LLR,Le(c)可以被表达如下:
L e ( c ) = log P ( c ^ | c = 0 ) P ( c ^ | c = 1 ) .
关于读取位的外在LLR,Le(c)被计算为:
L e ( c ) = log P ( c ^ = 0 | c = 0 ) P ( c ^ = 0 | c = 1 ) = log 1 - p q .
关于读取位的外在LLR,Le(c)被计算为:
L e ( c ) = log P ( c ^ = 1 | c = 0 ) P ( c ^ = 1 | c = 1 ) = log p 1 - q .
关于二进制对称通道(其中p=q=p0)的外在LLR
关于读取位的外在LLR,Le(c)被计算为:
L e ( c ) = log P ( c ^ = 0 | c = 0 ) P ( c ^ = 0 | c = 1 ) = log 1 - p 0 p 0 .
关于读取位的外在LLR,Le(c),该LLR被计算为:
L e ( c ) = log P ( c ^ = 1 | c = 0 ) P ( c ^ = 1 | c = 1 ) = log p 0 1 - p 0 .
关于来自闪速存储器的软输出的外在LLR
对于2位/单元闪速存储器,可以如下计算关于从闪速存储器810、910接收到的软值r的外在LLR:
L e ( c 0 ) = log p ( r | c 0 = 0 ) p ( r | c 0 = 1 ) = log P ( c 0 = 0 ) P ( c 0 = 1 ) · P ( c 0 = 0 , c 1 = 0 | r ) + P ( c 0 = 0 , c 1 = 1 | r ) P ( c 0 = 1 , c 1 = 0 | r ) + P ( c 0 = 1 , c 1 = 1 | r )
= log p ( r | c 0 = 0 , c 1 = 0 ) + P ( c 1 = 1 ) P ( c 1 = 0 ) p ( r | c 0 = 0 , c 1 = 1 ) p ( r | c 0 = 1 , c 1 = 0 ) + P ( c 1 = 1 ) P ( c 1 = 0 ) p ( r | c 0 = 1 , c 1 = 1 )
= log p ( r | c 0 = 0 , c 1 = 0 ) + exp ( - L a ( c 1 ) · p ( r | c 0 = 0 , c 1 = 1 ) p ( r | c 0 = 1 , c 1 = 0 ) + exp ( - L a ( c 1 ) · p ( r | c 0 = 1 , c 1 = 1 )
通常,对于每个单元的任何数目的位,关于位Ci的外在LLR可以被表达为
L e ( C i ) = log Σ s ∈ x 0 ′ p ( r | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ p ( r | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) ,
其中:
r:接收信号
s:由存储的位(c0,c1,...cm)给出的原始存储状态或电平
ci:编码位
每个单元m个位
L a ( C i ) = log P ( C i = 0 ) P ( C i = 1 ) : 先验LLR
Le(Ci)::外在LLR
在位置i处位标志具有值Ci=ci的状态或电平的子集其中La(Ci)例如由解码器提供,诸如LDPC解码器1090或1400。在第一次迭代中,La(Ci)可以被初始化为0。
使用如下等式:
p ( r | s ) = p ( r ) P ( s ) · P ( s | r ) ,
关于外在LLR的表达式也可以被写为如下形式:
L e ( C i ) = log Σ s ∈ x 0 ′ P ( s | r ) P ( s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | r ) P ( s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
该表达式可以被进一步简化为:
L e ( C i ) = log Σ s ∈ x 0 ′ P ( s | r ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | r ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
如果所有状态或电平是均等地可靠的,则该表达式在数学上等同于上面的表达式。
关于来自闪速存储器的软输出的取决于模式的LLR
对于从闪速存储器810、910接收到的关于目标单元的一个或更多个软值r以及关于侵略者单元的一个或更多个值可以示出:
L e ( C i ) = log Σ s ∈ x 0 ′ p ( r , h ‾ | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ p ( r , h ‾ | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) ,
其中是存储在周围单元中或者其他单元中的引起对目标单元的干扰的数据模式。例如:
表示在正在计算LLR的位置(k,l)处与目标单元相邻的所有侵略者单元。
可以例如通过从侵略者单元读出硬数据来获得模式
关于外在LLR的表达式也可以被写为如下形式:
L e ( C i ) = log Σ s ∈ x 0 ′ P ( s | r , h ‾ ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | r , h ‾ ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) .
该表达式可以被进一步简化为:
L e ( C i ) = log Σ s ∈ x 0 ′ P ( s | r , h ‾ ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | r , h ‾ ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) .
如果所有状态是均等地可靠的,则该表达式在数学上等同于上面的表达式。
关于来自闪速存储器的硬输出的外在LLR
当来自闪速存储器的软输出不可用,并且闪速存储器仅提供硬数据(其是由闪速存储器分配给存储数据的状态或电平)时,外在LLR可以被计算为:
L e ( C i ) ≈ log Σ s ∈ x 0 ′ p ( E { r | s ^ } | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ p ( E { r | s ^ } | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
≈ log Σ s ∈ x 0 ′ P ( s ^ | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s ^ | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
其中是假设硬值的关于软值r(诸如电压)的预期值或者关于软值r的某个其他估计。是在假设原始写入存储状态或电平s的情况下读取硬值(诸如状态或电平)的概率。
可替选地,外在LLR可以被计算为
L e ( C i ) ≈ log Σ s ∈ x 0 ′ P ( s | E { r | s ^ } ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | E { r | s ^ } ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
≈ log Σ s ∈ x 0 ′ P ( s | s ^ ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | s ^ ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
≈ Σ s ∈ x 0 ′ P ( s | s ^ ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | s ^ ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
其中是在假设读取硬值(诸如状态或电平)的情况下原始写入或存储状态或电平s的概率。
关于来自闪速存储器的硬输出的取决于模式的LLR
当来自闪速存储器的软输出不可用,并且闪速存储器仅提供硬数据(其是由闪速存储器分配给存储数据的状态或电平)时,可以基于存储在侵略者单元中的模式来计算外在LLR:
L e ( C i ) ≈ log Σ s ∈ x 0 ′ p ( E { r | s ^ , h ‾ } , h ‾ | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ p ( E { r | s ^ , h ‾ } , h ‾ | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
≈ log Σ s ∈ x 0 ′ P ( s ^ , h ‾ | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s ^ , h ‾ | s ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
其中假设原始写入存储状态或电平s,是读取硬值(诸如状态或电平)的概率并且侵略者单元中的模式是是存储在周围单元中或者其他单元中的引起对目标单元的干扰的数据模式。例如:表示在正在计算LLR的位置(k,l)处与目标单元相邻的所有侵略者单元。
可以例如通过从侵略者单元读出硬数据来获得模式
可替选地,取决于模式的LLR可以被计算为:
L e ( C i ) ≈ log Σ s ∈ x 0 ′ P ( s | E { r | s ^ , h ‾ } , h ‾ ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | E { r | s ^ , h ‾ } , h ‾ ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
≈ Σ s ∈ x 0 ′ P ( s | s ^ , h ‾ ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | s ^ , h ‾ ) P ( s ) Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
≈ Σ s ∈ x 0 ′ P ( s | s ^ , h ‾ ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ P ( s | s ^ , h ‾ ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
其中是在假设读取硬值(诸如状态或电平)的情况下原始写入或存储状态或电平s的概率并且侵略者单元中的模式是
关于来自闪速存储器的软输出在没有软解码器反馈的情况下的外在LLR
当在软解映射器/软数据生成器中没有使用来自解码器的软输出时(换言之,La(Ci)=0),软解映射器/软数据生成器中的外在LLR可以被计算如下:
L e ( C i ) = log Σ s ∈ x 0 ′ p ( r | s ) Σ s ∈ x 1 ′ p ( r | s )
L e ( C i ) = log Σ s ∈ x 0 ′ P ( s | r ) P ( s ) Σ s ∈ x 1 ′ P ( s | r ) P ( s ) ≈ log Σ s ∈ x 0 ′ P ( s | r ) Σ s ∈ x 1 r P ( s | r )
这些外在LLR随后被传递到如图10和11中所示的解码器。LDPC随后可以应用例如消息传递解码算法用于解码器内部的局部迭代,直至数据位被解码。在该情况中,没有执行软解映射器/软数据生成器之间的全局检测/解码迭代以减少整体计算的复杂性。
在该情况中可以如下计算取决于模式的LLR:
L e ( C i ) = log Σ s ∈ x 0 ′ p ( r , h ‾ | s ) Σ s ∈ x 1 ′ p ( r , h ‾ | s )
L e ( C i ) = log Σ s ∈ x 0 ′ P ( s | r , h ‾ ) P ( s ) Σ s ∈ x 1 ′ P ( s | r , h ‾ ) P ( s ) ≈ log Σ s ∈ x 0 ′ P ( s | r , h ‾ ) Σ s ∈ x 1 ′ P ( s | r , h ‾ )
关于来自闪速存储器的硬输出在没有软解码器反馈的情况下的外在LLR
如果来自闪速存储器的软数据不可用,并且没有使用来自解码器的软输出以减少计算的复杂性,则外在LLR可以被计算如下:
L e ( C i ) ≈ log Σ s ∈ x 0 ′ p ( E { r | s ^ } | s ) Σ s ∈ x 1 ′ p ( E { r | s ^ } | s ) ≈ log Σ s ∈ x 0 ′ P ( s ^ | s ) Σ s ∈ x 1 ′ P ( s ^ | s )
其中是假设硬值的关于软值r(诸如电压)的预期值或者关于软值r的某个其他估计。是在假设原始写入存储状态或电平s的情况下读取硬值(诸如状态或电平)的概率。
在可替选的实现方案中,外在LLR可以被计算为:
L e ( C i ) ≈ log Σ s ∈ x 0 ′ P ( s | E { r | s ^ } ) P ( s ) Σ s ∈ x 1 ′ P ( s | E { r | s ^ } ) P ( s )
≈ Σ s ∈ x 0 ′ P ( s | s ^ ) P ( s ) Σ s ∈ x 1 ′ P ( s | s ^ ) P ( s )
≈ Σ s ∈ x 0 ′ P ( s | s ^ ) Σ s ∈ x 1 ′ P ( s | s ^ )
其中是在假设读取硬值(诸如状态或电平)的情况下原始写入或存储状态或电平s的概率。
在该情况中取决于模式的LLR可以被计算如下:
L e ( C i ) ≈ log Σ s ∈ x 0 ′ P ( s ^ , h ‾ | s ) Σ s ∈ x 1 ′ P ( s ^ , h ‾ | s )
L e ( C i ) ≈ Σ s ∈ x 0 ′ P ( s | s ^ , h ‾ ) P ( s ) Σ s ∈ x 1 ′ P ( s | s ^ , h ‾ ) P ( s )
≈ Σ s ∈ x 0 ′ P ( s | s ^ , h ‾ ) Σ s ∈ x 1 ′ P ( s | s ^ , h ‾ )
关于来自闪速存储器的软输出的外在LLR的高斯近似
如果来自闪速存储器的软输出(诸如读取阈值电压)被建模为具有高斯分布,则假设原始存储或写入电平s的关于软输出p(r)的条件PDFp(r|s)可以被表示为:
p ( r | s ) = 1 2 π σ ( s ) exp ( - 1 2 σ ( s ) 2 ( r - E { r | s } ) 2
其中σ(s)是标准偏差并且E{r|s}是关于状态s的软输出(诸如阈值电压)的平均值或预期值。
随后,外在LLR可以被计算为:
L e ( C i ) = log Σ s ∈ x 0 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( r - E { r | s } ) 2 ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( r - E { r | s } ) 2 ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
= log Σ s ∈ x 0 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( r - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ) Σ s ∈ x 1 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( r - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j )
如果关于所有状态的电压分布具有相同的标准偏差σ(s)=σ,则该等式可以被简化为如下表达式:
L e ( C i ) = log Σ s ∈ x 0 ′ exp ( - 1 2 σ 2 ( r - E { r | s } ) 2 ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j ) Σ s ∈ x 1 ′ exp ( - 1 2 σ 2 ( r - E { r | s } ) 2 ) · Π j = 1 , j ≠ i m exp ( - L a ( C j ) · c j )
= log Σ s ∈ x 0 ′ exp ( - 1 2 σ 2 ( r - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ) Σ s ∈ x 1 ′ exp ( - 1 2 σ 2 ( r - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j )
该等式可以被进一步简化为:
L e ( C i ) ≈ max s ∈ x 0 ′ [ - 1 2 σ 2 ( r - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ] - max s ∈ x 1 ′ [ - 1 2 σ 2 ( r - E { r | s } ) 2 -
Σ j = 1 , j ≠ i m L a ( C j ) · c j ]
关于来自闪速存储器的硬输出的外在LLR的高斯近似
当来自闪速存储器的软输出不可用时,假设软输出是高斯分布的,则LLR可以被计算如下:
L e ( C i ) = log Σ s ∈ x 0 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( E { r | s ^ } - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ) Σ s ∈ x 1 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( E { r | s ^ } - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j )
其中E{r|s}是关于状态s的软输出r(诸如阈值电压)的平均值或预期值,并且是关于硬输出的软输出r(诸如阈值电压)的平均值或预期值,其是由闪速存储器分配和提供的状态或电平。
如果对于所有状态的电压分布具有相同的标准偏差σ(s)=σ,则该等式可以被简化为如下表达式:
L e ( C i ) = log Σ s ∈ x 0 ′ exp ( - 1 2 σ 2 ( E { r | s ^ } - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ) Σ s ∈ x 1 ′ exp ( - 1 2 σ 2 ( E { r | s ^ } - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j )
该等式可以被进一步简化为:
L e ( C i ) ≈ max s ∈ x 0 ′ [ - 1 2 σ 2 ( E { r | s ^ } - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ]
- max s ∈ x 1 ′ [ - 1 2 σ 2 ( E { r | s ^ } - E { r | s } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ]
关于来自闪速存储器的硬输出的取决于模式的外在LLR的高斯近似
如果关于软输出的分布被建模为高斯,则关于硬输出的取决于模式的LLR可以被计算如下:
L e ( C i ) = log Σ s ∈ x 0 ′ 1 σ ( s , h ‾ ) exp ( - 1 2 σ ( s , h ‾ ) 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ) Σ s ∈ x 1 ′ 1 σ ( s , h ‾ ) exp ( - 1 2 σ ( s , h ‾ ) 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j )
其中是如上文定义的存储在侵略者单元中的模式,并且是关于状态s和模式的软输出的分布的标准偏差。
如果对于所有状态和模式的电压分布具有相同的标准偏差则该等式可以被简化为如下表达式:
L e ( C i ) = log Σ s ∈ x 0 ′ exp ( - 1 2 σ 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ) Σ s ∈ x 1 ′ exp ( - 1 2 σ 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j )
该等式可以被进一步简化为:
L e ( C i ) ≈ max s ∈ x 0 ′ [ - 1 2 σ 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ]
- max s ∈ x 1 ′ [ - 1 2 σ 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 - Σ j = 1 , j ≠ i m L a ( C j ) · c j ]
关于来自闪速存储器的软输出在没有软解码器反馈的情况下的外在LLR的高斯近似
当没有使用软解码器反馈时,当来自闪速存储器的软输出可用时可以使用关于软输出分布的高斯近似来如下计算外在LLR:
L e ( C i ) = log Σ s ∈ x 0 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( r - E { r | s } ) 2 ) Σ s ∈ x 1 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( r - E { r | s } ) 2 )
如果对于所有状态的电压分布具有相同的标准偏差σ(s)=σ,则该等式可以被简化为如下表达式:
L e ( C i ) = log Σ s ∈ x 0 ′ exp ( - 1 2 σ 2 ( r - E { r | s } ) 2 ) Σ s ∈ x 1 ′ exp ( - 1 2 σ 2 ( r - E { r | s } ) 2 )
该表达式可以被进一步简化为:
L e ( C i ) ≈ max s ∈ x 0 ′ [ - 1 2 σ 2 ( r - E { r | s } ) 2 - max s ∈ x 1 ′ [ - 1 2 σ 2 ( r - E { r | s } ) 2 ]
关于来自闪速存储器的硬输出的没有软解码器反馈的外在LLR的高斯近似
当没有使用软解码器反馈时,当仅来自闪速存储器的硬输出可用时可以使用关于软输出分布的高斯近似来如下计算外在LLR:
L e ( C i ) = log Σ s ∈ x 0 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( E { r | s ^ } - E { r | s } ) 2 ) Σ s ∈ x 1 ′ 1 σ ( s ) exp ( - 1 2 σ ( s ) 2 ( E { r | s ^ } - E { r | s } ) 2 )
如果对于所有状态的电压分布具有相同的标准偏差σ(s)=σ,则该等式可以被简化为如下表达式:
L e ( C i ) = log Σ s ∈ x 0 ′ exp ( - 1 2 σ 2 ( E { r | s ^ } - E { r | s } ) 2 ) Σ s ∈ x 1 ′ exp ( - 1 2 σ 2 ( E { r | s ^ } - E { r | s } ) 2 )
该等式可以被进一步简化为:
L e ( C i ) ≈ max s ∈ x 0 ′ [ - 1 2 σ 2 ( E { r | s ^ } - E { r | s } ) 2 ]
- max s ∈ x 1 ′ [ - 1 2 σ 2 ( E { r | s ^ } - E { r | s } ) 2 ]
相应的取决于模式的LLR被计算如下:
L e ( C i ) = log Σ s ∈ x 0 ′ 1 σ ( s , h ‾ ) exp ( - 1 2 σ ( s , h ‾ ) 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 ) Σ s ∈ x 1 ′ 1 σ ( s , h ‾ ) exp ( - 1 2 σ ( s , h ‾ ) 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 )
如果对于所有状态和模式的电压分布具有相同的标准偏差 则该等式可以被简化为如下表达式:
L e ( C i ) = log Σ s ∈ x 0 ′ exp ( - 1 2 σ 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 ) Σ s ∈ x 1 ′ exp ( - 1 2 σ 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 )
这可以被进一步简化为:
L e ( C i ) ≈ max s ∈ x 0 ′ [ - 1 2 σ 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 ]
- max s ∈ x 1 ′ [ - 1 2 σ 2 ( E { r | s ^ , h ‾ } - E { r | s , h ‾ } ) 2 ]
读取统计数据表格
图17A至17C是记录关于从闪速存储器读出数据的统计数据的示例性的基于单元的统计数据表格。图17A是指示对于给定的电平(写入(s)和读取)对的、当写入电平(s)被写入时读取电平被读取的次数的示例性的基于单元的统计数据计数表格1700。例如,当写入电平(s)也等于00时,读取电平被读取10617次。此外,当写入电平(s)等于01时,读取电平被错误读取148次。计数表格1700还可选地指示每个行和列的和。计数表格1700中的值由下文结合图21、23、25和28讨论的许多个基于单元的统计数据处理使用。
图17B是指示关于给定的电平(写入(s)和读取)对的、在读取电平被读取的条件下写入电平(s)被写入的概率的示例性的基于单元的统计数据表格。图17C是指示关于给定的电平(写入(s)和读取)对的、在写入电平(s)被写入的条件下读取电平被读取的概率的示例性的基于单元的统计数据表格1740。
图18是示例性的取决于模式的基于单元的统计数据表格1800,其记录关于在存在给定模式的情况下从闪速存储器读出数据的取决于模式的统计数据。示例性表格1800指示关于给定的电平(写入(s)和读取)对的、在存在给定模式的情况下的、在写入电平(s)被写入的条件下在存在模式的情况下读取电平被读取的概率
统计数据的收集
使用参考单元的统计数据收集
图19更详细地图示了图3的示例性闪速单元阵列。如图19中所示,示例性闪速单元阵列1900包括多个参考单元1920-ref1至1920-refN(在这里被共同称为参考单元1920)以提供所有操作条件中的可靠的信道估计或统计数据。
图19中示出的示例性参考单元1920具有哈希背景。参考单元1920可以周期性地或者间歇地使用诸如已知的位模式或者已知的符号模式的已知模式进行编程。注意,参考单元1920可以以任何期望的方式在闪速单元阵列1900中分布,例如在每个字线中使用数目一致的或可变数目的单元。参考单元1920的位置可以是固定的或者随时间变化的,例如用于避免磨损或损坏的单元。在一个实现方案中,参考单元1920的位置是固定的并且可以随时间观察相同参考单元1920的性能。在该固定位置的实现方案中,参考单元1920可以可选地仅被写入一次,或者可以被写入或读取与闪速存储器阵列中的其他单元相当的次数。
在另一变化方案中,参考单元1920的位置随时间变化以便于使参考单元1920的性能反映整个阵列1900的性能。在又一变化方案中,可以从许多不同的阵列1900中的参考单元1920获得统计数据并且随后对结果求平均。
如下文进一步讨论的,读取参考单元1920并且将其与已知模式比较。例如,可以如下获得检测到错误的概率p0的估计:
参考单元的编程和读取可以可选地以已知的方式与跨越存储器展开的磨损和损毁的磨损程度算法组合。
在各种实施例中,参考单元1920可以存储所有可能的电平,可以具有周期性的模式(其中电平交替)并且随时间被周期性地写入或读取。
如后面讨论的,本发明的各种实施例收集并且使用基于位的统计数据、基于单元的或者取决于模式的统计数据。对于使用基于位的统计数据的实施例,测量位错误性能。对于使用基于单元的统计数据的实施例,基于单元测量读取统计数据。对于取决于模式的统计数据,读取统计数据还考虑存储在侵略者单元中的数据模式。
1.使用参考单元的基于位的统计数据
图20是描述关于本发明的参考单元实施例的基于位的统计数据生成处理2000的示例性实现的流程图。通常,基于位的统计数据生成处理2000计算检测到位错误的概率p0。LLR生成器1550(图15)随后可以使用检测到位错误的概率p0来计算所期望的软数据。在最初时,统计数据生成处理2000在步骤2010期间将已知模式写入一个或更多个参考单元1920。如先前表明的,已知模式可以是例如,已知位模式或已知符号模式。
随后,在步骤2020期间读取参考单元。统计数据生成处理2000随后在步骤2030期间确定错误度量,诸如参考单元1920中的错误位的数目。如先前表明的,可以将在步骤2020期间读取的参考单元1920与已知模式比较。
统计数据生成处理2000在步骤2040期间如下计算错误概率统计数据:
2.使用参考单元的基于单元的统计数据
图21是描述关于本发明的参考单元实施例的基于单元的统计数据生成处理2100的示例性实现的流程图。如图21中所示,基于单元的统计数据生成处理2100在最初时在步骤2110期间将一个或更多个已知的电压电平写入参考单元1920。
随后,基于单元的统计数据生成处理2100在步骤2120期间从参考单元1920读取电压电平。对于每个可能的写入电平s或LVLwrite,基于单元的统计数据生成处理2100在步骤2130期间对当该写入电平s或LVLwrite被写入时每个电平或LVLread被读取的次数进行计数。
在步骤2140期间如下计算错误概率统计数据:
其中#表示数目。
可替选地,在步骤2140期间可以如下计算错误概率统计数据(相反情况):
注意,对于在步骤2140期间计算的等式,可以在分母中使用可替选的归一化项。
使用解码码字的统计数据收集
在本发明的解码码字的实施例中,使用从作为参考单元的解码码字获得的数据生成关于诸如闪速存储器器件810、910的存储器器件的软数据。通常,对来自诸如闪速存储器器件的存储器器件的硬数据解码,并且获得错误度量,诸如错误解码位的数目。例如,可以通过将解码位与从存储器器件获得的硬数据比较来获得错误解码位的数目。这样,可以假设解码码字是正确的并且其可以用作上文讨论的参考单元。
1.使用解码码字的基于位的统计数据
图22是描述关于本发明的解码码字实施例的基于位的统计数据生成处理2200的示例性实现的流程图。通常,基于位的统计数据生成处理2200使用解码码字计算检测到错误的概率p0。LLR生成器1550(图15)随后可以使用检测到错误的概率p0来计算所期望的软数据。在最初时,统计数据生成处理2200在步骤2210期间从闪速存储器获得硬数据。
随后,基于位的统计数据生成处理(解码码字)2200在步骤2220期间对硬数据解码。在步骤2230期间确定错误度量,诸如来自闪速存储器的错误位的数目。可以例如通过将解码的位(其被假设是正确的)与来自闪速存储器的硬数据比较来确定错误位的数目。
统计数据生成处理2200在步骤2240期间如下计算错误概率统计数据:
2.使用解码码字的基于单元的统计数据
图23是描述并入本发明的特征的基于单元的统计数据生成处理(解码码字)2300的示例性实现的流程图。通常,统计数据生成处理2300使用解码码字计算基于单元的错误概率。在最初时,基于单元的统计数据生成处理2300在步骤2310期间从闪速存储器获得硬数据。
随后,基于单元的统计数据生成处理(解码码字)2300在步骤2320期间对硬数据解码。随后在步骤2325期间将解码位映射到相应的电压电平。
对于每个可能的解码电压电平s或LVLdecod,基于单元的统计数据生成处理(解码码字)2300随后在步骤2330期间对当该解码电平s或LVLdecod被解码时每个电压电平或LVLread被读取的次数进行计数。
在步骤2340期间如下计算错误概率统计数据:
可替选地,在步骤2340期间可以如下计算错误概率统计数据(相反情况):
条件特定的错误概率
如先前表明的,可选地可以针对不同的条件,诸如针对存储器阵列的不同位置,针对侵略者单元的不同模式,针对不同的温度,针对编程/擦除或读取周期的不同的数目等,获得错误概率统计数据。随后,当观察相同的条件时,可以使用适当的取决于条件的统计数据或概率来获得软数据。
如下文结合图24和25讨论的,示例性的位置特定的统计数据生成处理2400、2500分别使用基于位的统计数据和基于单元的统计数据获得关于存储器阵列的不同位置的错误概率统计数据。
基于位的位置特定的统计数据
图24是描述估计关于存储器阵列中的许多不同位置的检测到位错误的概率的示例性的基于位的位置特定的统计数据生成处理2400的流程图。例如,可以针对不同的页位置、字线位置、位线位置(诸如偶数和奇数位线)和多级单元中的不同的位(诸如最高有效位(MSB)和最低有效位(LSB))中的一个或更多个,获得检测到错误的概率p0,LOC。如图24中所示,示例性的基于位的位置特定的统计数据生成处理2400在最初时在步骤2430期间基于所期望的位置特定的统计数据,确定在参考单元或解码码字的期望位置的错误位的数目。例如,如果位置特定的统计数据是关于MSB的,则在步骤2430期间评估错误的MSB位的数目。注意,当正在获得MSB统计数据时,例如,可选地可以忽略每个单元中的任何其他的位,诸如LSB位。
位置特定的统计数据生成处理2400随后在步骤2440期间如下计算位置特定的错误概率统计数据:
基于单元的位置特定的统计数据
对于基于单元的位置特定的实现方案,存储器阵列中的所关注的不同的位置可以包括例如,不同的字线位置或位线位置(诸如偶数和奇数位线)中的一个或更多个。
图25是描述获得关于存储器阵列1900中的许多不同位置(诸如一个或更多个不同的字线位置或位线位置(诸如偶数和奇数位线))的错误概率统计数据的示例性的基于单元的位置特定的统计数据生成处理2500的流程图。如图25中所示,对于每个可能的参考电压电平s或LVLref,示例性的基于单元的位置特定的统计数据生成处理2500在最初时在步骤2530期间对当参考电平s或LVLref被解码或写入时每个电压电平LVLread在期望位置被读取的次数进行计数。
基于单元的位置特定的统计数据生成处理2500随后在步骤2540期间如下计算位置特定的错误概率统计数据:
可替选地,如上文讨论的,可以计算
在本发明的各种实施例中,可以针对每个页、字线或存储器阵列,或者针对页、字线或存储器阵列的组(诸如针对字线中的不同的页级,或者针对存储器阵列中的底、中和顶字线),收集分立的基于位的、基于单元的或者基于模式的统计数据。此外,可以在多个页、字线或存储器阵列上对统计数据取平均,并且随后可以将平均统计数据用于这些页、字线或存储器阵列。
取决于模式的统计数据
如先前表明的,本发明的各种实施例计算关于目标单元的一个或更多个软值r以及关于侵略者单元的一个或更多个值的外在LLR,Le,其中是存储在侵略者单元(诸如周围单元)中的数据模式。
图26图示了基于每个侵略者单元720的所有可能值的、关于示例性多级单元闪速存储器600的给定目标单元710的概率密度函数2610的示例性集合2600。示例性多级单元闪速存储器的每个单元具有四个电平(两位),并且对于取决于数据的pdf,考虑一个侵略者单元720。可应用于给定目标单元710的每个可能的电平的概率密度函数的数目是增加到影响给定目标单元710的侵略者单元720的数目的关于每个侵略者单元720的可能电平的数目。如先前表明的,在示例性实施例中,每个单元可以具有四个可能值中的一个,对于每个目标单元710存在一个侵略者单元720并且每个侵略者单元720可以具有四个可能电平中的一个。因此,为了说明,概率密度函数的集合2600包括关于数据或电压电平0的四个概率密度函数2610-1至2610-4,其可归因于侵略者单元的模式。对于其他数据电平1、2和3中的每个,也存在四个概率密度函数。如对于本领域的普通技术人员将明显的,本发明可以扩展到每个单元具有任意数目的电平的多级单元闪速存储器600以及任意数目的侵略者单元720。
通常,除了噪声和干扰影响之外,图26中的每个概率密度函数表示了关于相应的侵略者单元720的给定值对给定目标单元710的ICI影响。在本发明的另一实施例中,代替ICI或者除了ICI之外,取决于数据的概率密度函数可以表达其他取决于数据的失真。如后面讨论的,在各种实施例中,概率密度函数可以被预先定义并且是静态的,基于实时观察进行调整,或者被表示为关于侵略者单元720的测量或检测的值h的函数,诸如高斯函数。
根据本发明的一个方面,闪速存储器器件中的干扰的特征可以通过获得一个或更多个概率密度函数来描述,该概率密度函数表达了一个或更多个侵略者单元对至少一个目标单元的取决于模式的干扰。干扰可以包括,例如,后模式依赖性、单元间干扰、编程干扰、读取干扰和/或额外的噪声。概率密度函数可以基于一个或更多个数据判决进行更新。概率密度函数可以被表示为存储的表格和/或表达式。
进一步注意,概率密度函数的表元或函数参数可以可选地例如,基于接收到的数据判决进行自适应地更新。例如,基于接收到的侵略者模式选择概率密度函数。随后使用已知的技术基于接收到的目标单元值r,按最新的事件更新所选择的概率密度函数(例如,通过增加相应的计数器)。
如先前表明的,影响给定目标单元710的侵略者单元720的数目可以基于许多因素而被减少或忽略。这样,需要考虑的概率密度函数的数目可以减少。例如,在减轻ICI的示例性实现方案中,如果对角耦合系数kxy比其他耦合系数小得多(情况常常如此),则来自位于对角线的单元的ICI可以被忽略。此外,编程顺序影响需要考虑的侵略者单元720的数目。例如,如果总是以固定顺序(诸如自下而上的方式)写入字线,则可能不存在来自较低字线中的单元的干扰ICI贡献。此外,如果干扰ICI相对于目标单元710的左邻和右邻是对称的,则需要描述其特征的概率密度函数的数目被减少一半。
如先前表明的,在一个示例性实现方案中,可以使用高斯概率密度函数来近似概率密度函数。在另外的变化方案中,如果概率密度函数基于例如直方图,则可以以额外的复杂性为代价获得提高的性能。当使用直方图实现概率密度函数时,可以使用成功解码的字线来自适应地更新概率密度函数以训练直方图。
在另一实施例中,可以通过诸如Viterbi、软输出Viterbi(SOVA)和BCJR算法的基于网格图的检测算法使用概率密度函数及其近似,以检测读取数据。
1.基于位的取决于模式的统计数据
图27是描述估计关于与至少一个目标单元710(图7)关联的一个或更多个侵略者单元720的给定模式h或PATT的检测到位错误的概率p0,PATT的示例性的基于位的取决于模式的统计数据生成处理2700的流程图。在最初时,基于位的取决于模式的统计数据生成处理2700在步骤2720期间读取参考目标单元710并且潜在地读取关联的侵略者单元720。此外,在步骤2725期间针对每个读取目标位,识别关联的侵略者单元720的模式,PATT。在步骤2725期间可以例如通过评估被写入的已知模式或者基于参考单元或解码码字的实际读取操作来识别模式。
在步骤2730期间针对一个或更多个识别模式,确定具有相应的模式的错误目标位的数目。随后在步骤2740期间如下计算错误概率统计数据:
注意,如对于本领域的普通技术人员将明显的,上述技术可以可选地集成以获得位置特定的、取决于模式的统计数据。此外,在另外的变化方案中,还可以或者可替选地根据耐久性、读取周期、保持、温度或者存储器器件的其他参数获得读取统计数据。
2.基于单元的取决于模式的统计数据
图28是描述估计关于与至少一个目标单元关联的一个或更多个侵略者单元的给定模式的检测到错误的概率的示例性的基于单元的取决于模式的统计数据生成处理2800的流程图。如图28中所示,基于单元的取决于模式的统计数据生成处理2800在最初时在步骤2820期间读取一个或更多个目标单元。随后,在步骤2825期间识别关联的侵略者单元的模式或PATT。
随后,对于一个或更多个识别模式,并且对于每个可能的参考电压电平s或LVLref,基于单元的取决于模式的统计数据生成处理2800在步骤2830期间对当该参考电平s或LVLref被解码或写入时每个电压电平或LVLread被读取的次数进行计数。
在步骤2840期间如下计算取决于模式的错误概率统计数据:
非对称错误概率统计数据
如先前表明的,在诸如NAND闪速存储器通道的某些通道中,关于不同的可能的二进制值(诸如二进制0和二进制1)的检测到错误的概率可以明显不同。因此,本发明可选地提供关于非对称通道的检测到错误的概率。图29和30提供了估计关于两个可能二进制值(诸如二进制1和二进制0)的错误概率p和q的示例性的非对称统计数据生成处理2900、3000。如下文进一步讨论的,图29使用参考单元估计非对称统计数据,而图30使用解码码字估计非对称统计数据。本发明因此基于来自闪速存储器的硬数据提供关于每个可能的二进制值的非对称LLR。
非对称错误概率-参考单元
如先前表明的,在诸如NAND闪速存储器通道的某些通道中,关于不同的可能的二进制值(诸如二进制0和二进制1)的检测到错误的概率可以明显不同。因此,本发明可选地提供关于非对称通道的检测到错误的概率。图29是描述关于本发明的参考单元实施例的估计关于两个可能二进制值的错误概率的示例性的非对称统计数据生成处理2900的流程图。
如图29中所示,非对称统计数据生成处理2900在最初时在步骤2910期间将已知模式写入参考单元1920并且随后在步骤2020期间读取参考单元1920。非对称统计数据生成处理2900在步骤2930期间确定参考数据中具有二进制0的错误位的数目,并且随后在步骤2940期间如下计算关于二进制0的错误概率统计数据:
随后,非对称统计数据生成处理2900在步骤2950期间确定参考数据中具有二进制1的错误位的数目,并且随后在步骤2960期间如下计算关于二进制1的错误概率统计数据:
非对称错误概率-解码码字
图30是描述关于本发明的解码码字实施例的估计关于两个可能二进制值的错误概率的示例性的非对称统计数据生成处理3000的流程图。如图30中所示,非对称统计数据生成处理3000在最初时在步骤3010期间从闪速存储器获得硬数据并且在步骤3020期间对硬数据解码。
非对称统计数据生成处理3000随后在步骤3030期间确定来自闪速存储器的在解码数据中具有二进制0的错误位的数目。随后在步骤3040期间如下计算关于二进制0的错误概率统计数据:
相似地,随后在步骤3050期间确定来自闪速存储器的在解码数据中具有二进制1的错误位的数目。随后在步骤3060期间如下计算关于二进制1的错误概率统计数据:
在一个实施例中,可以在NAND闪速存储器空闲时(即,未在活跃地读取或写入用户数据)收集、计算和存储统计数据。
尽管示例性实施例已采用使用参考单元或解码器反馈的统计数据收集,但是也可以采用自适应方法使用检测或解码数据来估计统计数据,例如,使用最小均方差标准。
在可替选的实施例中,可以例如,基于闪速存储器的实验特征针对最差操作条件(例如,在编程/擦除周期数目、保持时间和温度的方面)预先计算统计数据或相应的LLR,并且随后使用它们用于差的通道条件。这样,当错误概率最高时,更准确的统计数据或LLR是可用的。换言之,可以针对预先定义的操作条件预先计算预先定义的统计数据或者相应的LLR。
在另一变化方案中,可以基于不同的统计数据(诸如错误概率)迭代地生成软数据,直至解码成功。统计数据可以随范围变化,直至数据的成功检测或解码。本发明的该变化方案提供了数据的虚拟重新读取。尽管实际上未从闪速存储器重新读取数据,但是利用不同的软信息对数据成功地解码。
基于未满足的奇偶校验的错误性能
本发明的各方面认识到,还可以使用未满足的奇偶校验作为获得软数据的性能度量。考虑(N,K,J,L)LDPC码,其中N是码字长度,K是未编码码字长度(码字中的用户数据长度),并且J和L分别是奇偶校验矩阵的列和行权重。当(N,K,J,L)LDPC码字以错误概率p0被传送或存储时,首次迭代中校验和失败的概率可以被表达如下:
p c = 1 - ( 1 - 2 p 0 ) L 2 .
该概率可以被估计如下:
因此,错误概率p0可以被估计如下:
p 0 = 1 - 1 - 2 p c L 2 ≈ p c L .
在以上过程中,可以在执行迭代解码之前估计通道和初始LLR值。通道估计复杂性和延时小于软判决解码的一次迭代的通道估计复杂性和延时,且具有明显优于LDPC码的硬判决解码的性能收益。较之软判决解码的标准实现方案的附加的硬件是执行如下计算的模块:
图31是描述根据本发明的一个方面的使用未满足的奇偶校验的统计数据生成处理3100的示例性实现的流程图。在一个实施例中,使用首次迭代之后的未满足的奇偶校验。通常,统计数据生成处理3100使用未满足的奇偶校验计算检测到错误的概率p0。随后LLR生成器1550(图15)可以使用检测到错误的概率p0来计算期望的软数据。
在最初时,统计数据生成处理3100在步骤3110期间获得未满足的奇偶校验的数目。统计数据生成处理3100随后在步骤3120期间如下计算错误概率统计数据:
位置特定的统计数据-未满足的奇偶校验
图32是描述使用未满足的奇偶校验获得关于存储器阵列1900中的许多不同位置的错误概率统计数据的示例性的位置特定的统计数据生成处理3200的流程图。例如,可以针对不同的页位置、字线位置、位线位置(诸如偶数和奇数位线)和多级单元中的不同的位(诸如最高有效位(MSB)和最低有效位(LSB))中的一个或更多个,获得错误概率统计数据。通常,通过使用将多个位定位在期望位置的码字,使用未满足的奇偶校验来获得位置特定的统计数据(步骤3210)。
如图32中所示,示例性的位置特定的统计数据生成处理3200随后在步骤3220期间获得关于码字的未满足的奇偶校验的数目。随后,在步骤3230期间如下计算位置特定的错误概率统计数据:
基于未满足的奇偶校验的非对称统计数据
图33是描述使用未满足的奇偶校验估计关于两个可能二进制值的检测到错误的概率的示例性的非对称统计数据生成处理3300的流程图。本发明的该方面认识到可以基于未满足的奇偶校验来计算平均错误概率(其中)。可以基于平均错误概率和错误概率p和q的比k来计算关于p和q的值。
可以使用数据分析,诸如上文描述的解码码字技术来获得错误概率p和q的比k。可替选地,可以例如,使用与本申请同时提交并且通过引用合并于此的题为“MethodsandApparatusforSoftDataGenerationforMemoryDevicesBasedUsingReferenceCells”的国际专利申请中描述的参考单元技术来获得错误概率p和q的比k。错误概率p和q的比k典型地将离线计算并且存储在例如表格中。如图33中所示,示例性的非对称统计数据生成处理(未满足的奇偶校验)3300最初时在步骤3310期间获得错误概率p和q的比k。
可以在步骤3320期间使用上文结合图16描述的技术获得平均错误概率特别地,平均错误概率可以被估计如下:
随后,在步骤3330期间如下计算关于二进制0的错误概率统计数据p:
p = 2 p ‾ k + 1 .
随后,在步骤3340期间如下计算关于二进制1的错误概率统计数据q:
q = 2 k p ‾ k + 1 .
注意,通过非对称统计数据生成处理(未满足的奇偶校验)3300计算的错误概率统计数据p和q可以可选地是位置特定的和/或取决于模式的。
处理、系统和制造物品的细节
尽管这里的许多流程图描述了示例性的步骤序列,但是序列变化的实施例也是本发明的实施例。算法的各种置换被考虑为本发明的可替选的实施例。如对于本领域的普通技术人员将明显的,尽管已参照软件程序中的处理步骤描述了本发明的示例性实施例,但是在作为软件程序中的处理步骤的数字域中,通过电路元件或状态机在硬件中,或者以软件和硬件的组合,可以实现各种功能。可以在例如,数字信号处理器、专用集成电路、微控制器或者通用计算机中使用该软件。该硬件和软件可以在集成电路中实现的电路中实施。
因此,本发明的各个功能可以以方法和用于实践这些方法的装置的形式实施。本发明的一个或更多个方面可以以程序代码的形式实施,该程序代码例如,存储在存储介质中,加载到机器中和/或由其执行,或者在某种传送介质上传送,其中,当程序代码被加载到诸如计算机的机器中并且由其执行时,机器变为用于实践本发明的装置。当在通用处理器上实现时,程序代码段与处理器组合以提供模仿特定逻辑电路操作的器件。本发明还可以在集成电路、数字信号处理器、微处理器和微控制器中的一个或更多个中实现。
如本领域中已知的,这里讨论的方法和装置可以作为制造物品来分送,其自身包括具有在其上实施的计算机可读代码部件的计算机可读介质。计算机可读程序代码部件可以结合计算机系统操作以执行用于执行这里讨论的方法或者创建这里讨论的装置的所有或一些步骤。计算机可读介质可以是可记录介质(例如,软盘、硬盘驱动器、紧凑盘、存储器卡、半导体器件、芯片、专用集成电路(ASIC))或者可以是传送介质(例如,包括光纤、万维网、线缆的网络,或者使用时分多址、码分多址的无线信道或者其他射频信道)。可以使用可以存储适于与计算机系统一起使用的信息的任何已知或已开发的介质。计算机可读代码部件是用于允许计算机读取指令和数据的任何机制,诸如磁介质上的磁变化或者紧凑盘的表面上的高度变化。
这里描述的计算机系统和服务器均包含将关联的处理器配置为实现这里公开的方法、步骤和功能的存储器。存储器可以是分布式的或者本地的,并且处理器可以是分布式的或者单独的。存储器可以被实现为电、磁或光存储器或者这些或其他类型的存储器件的任何组合。而且,术语“存储器”应被足够广泛地解释以涵盖能够被读取或者写入关联的处理器访问的可寻址空间中的地址的任何信息。通过该定义,网络上的信息仍在存储器的范畴内,这是因为关联的处理器可以从网络取回信息。
将理解,这里示出和描述的实施例和变化方案仅是本发明的原理的说明,并且在不偏离本发明的范围和精神的前提下本领域的技术人员可以实现各种修改。

Claims (37)

1.一种用于在存储器器件中产生至少一个软数据值的方法,包括:
向所述存储器器件中的一个或更多个参考单元写入已知数据,其中所述存储器器件包括多个单元,且其中所述多个单元中的至少一部分被用作所述参考单元;
读取所述参考单元中的一个或更多个;
基于所读取的一个或更多个参考单元获得读取统计数据,其中所述读取统计数据是基于从所述一个或更多个参考单元读取的一个或更多个比特和所述已知数据中的一个或更多个比特而确定的;以及
基于所获得的读取统计数据获得所述至少一个软数据值。
2.如权利要求1所述的方法,其中所述读取步骤读取数据位、电压电平、电流水平和电阻水平中的一个或更多个。
3.如权利要求1所述的方法,其中所述读取步骤读取软数据和硬数据中的一个或更多个。
4.如权利要求1所述的方法,其中所述软数据值包括用于产生一个或更多个对数似然比的软读取值。
5.如权利要求1所述的方法,其中所述软数据值包括一个或更多个对数似然比。
6.如权利要求1所述的方法,其中所述写入步骤、所述读取步骤、所述获得读取统计数据步骤和所述获得所述至少一个软数据值步骤中的一个或更多个是通过控制器、读取通道、信号处理单元和解码器来实现的。
7.如权利要求1所述的方法,其中通过将从所述一个或更多个参考单元读取的一个或更多个位与所述已知数据中的一个或更多个位进行比较来确定所述读取统计数据。
8.如权利要求1所述的方法,其中所述已知数据包括位模式和符号模式中的一个或更多个。
9.如权利要求1所述的方法,其中利用电压、电流和电阻中的一个或更多个将所述已知数据写入所述参考单元。
10.如权利要求1所述的方法,所述读取统计数据基于与所述已知数据中的参考位的总数有关的错误位的数目而确定。
11.如权利要求1所述的方法,其中根据以下方法获得所述软数据值Le:
L e ( c ) = l o g 1 - p 0 p 0 , c ^ = 1 ;
L e ( c ) = l o g p 0 1 - p 0 , c ^ = 0 ;
其中p0是所述读取统计数据以及c是从存储器器件接收的硬比特。
12.如权利要求1所述的方法,其中所述读取统计数据和所述软数据值中的一个或更多个是从表格中获得的。
13.如权利要求1所述的方法,其中根据耐久性、编程/擦除周期数目、读取周期数目、保持时间、温度、温度的改变、工艺角、单元间干扰影响、所述存储器器件内的位置、字线内的位置、存储器阵列内的位置和侵略者单元中的模式中的一个或更多个来计算所述读取统计数据和所述软数据值中的一个或更多个。
14.如权利要求1所述的方法,其中为存储器阵列的一个或更多个期望位置获得所述读取统计数据,以及其中所述写入步骤包括将所述已知数据写入到所述一个或更多个期望位置。
15.如权利要求14所述的方法,其中所述期望位置包括页位置、字线位置、位线位置和多级单元内的给定位中的一个或更多个。
16.如权利要求15所述的方法,其中所述位线位置包括偶数位线或者奇数位线。
17.如权利要求15所述的方法,其中多级单元内的所述给定位包括最高有效位MSB和最低有效位LSB中的一个或更多个。
18.如权利要求15所述的方法,其中所述已知数据被写入与多级单元内的一个或更多个所述位相对应的期望位置。
19.如权利要求14所述的方法,其中所述读取统计数据基于所述一个或更多个期望位置中与所考虑的位的总数有关的错误位的数目而确定。
20.如权利要求14所述的方法,其中对于一个或更多个期望位置的所述读取统计数据被用于解码与所述一个或更多个期望位置关联的数据。
21.如权利要求1所述的方法,其中为与至少一个目标单元关联的一个或更多个侵略者单元中的给定模式PATT获得所述读取统计数据;以及其中所述写入步骤包括如下步骤:将所述已知数据写入到所述至少一个目标单元;以及其中所述方法进一步包括如下步骤:确定在所述一个或更多个侵略者单元中具有所述给定模式PATT的错误目标位的数目;以及基于所述错误目标位的数目获得对于所述给定模式的所述读取统计数据。
22.如权利要求21所述的方法,进一步包括读取所述一个或更多个侵略者单元以确定所述给定模式PATT的步骤。
23.如权利要求21所述的方法,进一步包括将已知模式写入到所述一个或更多个侵略者单元的步骤。
24.如权利要求21所述的方法,其中所述读取统计数据基于与目标位的总数有关的错误目标位的数目而确定。
25.如权利要求21所述的方法,其中当所述一个或更多个关联的侵略者单元包括所述给定模式PATT时,关于所述给定模式PATT的所述读取统计数据被用于解码数据。
26.如权利要求1所述的方法,其中所述读取统计数据包括为多个值获得的非对称的读取统计数据;以及其中所述方法进一步包括如下步骤:确定所述已知数据中具有第一值的错误位的数目;确定所述已知数据中具有第二值的错误位数目;基于具有所述第一值的错误位数目获得针对所述第一值的读取统计数据;以及基于具有所述第二值的错误位数目获得针对所述第二值的读取统计数据。
27.如权利要求26所述的方法,其中所述读取统计数据基于具有如下相应值的错误位的所述数目而确定,所述相应值与具有所述相应值的参考位的总数有关。
28.如权利要求26所述的方法,其中所述非对称的读取统计数据被用于解码具有所述相应值的数据。
29.如权利要求26所述的方法,其中根据以下方法获得所述软数据值Le:
L e ( c ) = l o g P ( Y = 0 | X = 0 ) P ( Y = 0 | X = 1 ) = 1 - p q , 当c=0;
L e ( c ) = log P ( Y = 1 | X = 0 ) P ( Y = 1 | X = 1 ) = p 1 - q , 当c=1;
其中p是对于所述第一值的所述读取统计数据,q是对于所述第二值的所述读取统计数据以及c是从存储器器件接收的硬比特。
30.如权利要求1所述的方法,进一步包括向解码器提供所述软数据值的步骤。
31.如权利要求30所述的方法,其中所述软数据值被迭代地提供到所述解码器。
32.如权利要求1所述的方法,其中所述存储器器件是闪速存储器器件。
33.如权利要求1所述的方法,其中所述存储器器件在每个单元能够存储至少两个数据电平。
34.如权利要求1所述的方法,其中所述参考单元存储所有电平。
35.如权利要求1所述的方法,其中所述参考单元具有周期性的模式。
36.如权利要求1所述的方法,其中所述参考单元被周期性地写入或者随着时间读取。
37.一种用于在存储器器件中产生至少一个软数据值的设备,包括:
用于向所述存储器器件中的一个或更多个参考单元写入已知数据的装置,其中所述存储器器件包括多个单元,且其中所述多个单元中的至少一部分被用作所述参考单元;
用于读取所述参考单元中的一个或更多个的装置;
用于基于所读取的一个或更多个参考单元获得读取统计数据的装置,其中所述读取统计数据是基于从所述一个或更多个参考单元读取的一个或更多个比特和所述已知数据中的一个或更多个比特而确定的;以及
用于基于所获得的读取统计数据获得所述至少一个软数据值的装置。
CN200980143074.8A 2008-09-30 2009-09-30 使用参考单元的用于存储器器件的软数据生成的方法和装置 Active CN102203875B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US19475108P 2008-09-30 2008-09-30
US61/194,751 2008-09-30
PCT/US2009/049333 WO2010002948A1 (en) 2008-07-01 2009-06-30 Methods and apparatus for soft demapping and intercell interference mitigation in flash memories
USPCT/US09/49333 2009-06-30
PCT/US2009/059081 WO2010039869A1 (en) 2008-09-30 2009-09-30 Methods and apparatus for soft data generation for memory devices using reference cells

Publications (2)

Publication Number Publication Date
CN102203875A CN102203875A (zh) 2011-09-28
CN102203875B true CN102203875B (zh) 2016-08-03

Family

ID=42073862

Family Applications (4)

Application Number Title Priority Date Filing Date
CN2009801383272A Pending CN102171767A (zh) 2008-09-30 2009-09-30 用于存储装置的基于性能因素调节的软数据生成方法装置
CN200980143074.8A Active CN102203875B (zh) 2008-09-30 2009-09-30 使用参考单元的用于存储器器件的软数据生成的方法和装置
CN200980143076.7A Active CN102203876B (zh) 2008-09-30 2009-09-30 用于存储器器件的软数据生成的方法和装置
CN200980143075.2A Expired - Fee Related CN102203877B (zh) 2008-09-30 2009-09-30 使用解码器性能反馈的用于存储器器件的软数据生成的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2009801383272A Pending CN102171767A (zh) 2008-09-30 2009-09-30 用于存储装置的基于性能因素调节的软数据生成方法装置

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN200980143076.7A Active CN102203876B (zh) 2008-09-30 2009-09-30 用于存储器器件的软数据生成的方法和装置
CN200980143075.2A Expired - Fee Related CN102203877B (zh) 2008-09-30 2009-09-30 使用解码器性能反馈的用于存储器器件的软数据生成的方法和装置

Country Status (8)

Country Link
US (4) US8892966B2 (zh)
EP (4) EP2340540A1 (zh)
JP (4) JP5535219B2 (zh)
KR (3) KR20110061649A (zh)
CN (4) CN102171767A (zh)
IL (4) IL211895A0 (zh)
TW (4) TW201019327A (zh)
WO (4) WO2010039874A1 (zh)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102132350B (zh) * 2008-07-01 2015-06-17 Lsi公司 用于闪存存储器中的软解映射和单元间干扰减轻的方法和设备
US8611151B1 (en) 2008-11-06 2013-12-17 Marvell International Ltd. Flash memory read performance
US8947929B1 (en) * 2008-11-06 2015-02-03 Marvell International Ltd. Flash-based soft information generation
US8107306B2 (en) 2009-03-27 2012-01-31 Analog Devices, Inc. Storage devices with soft processing
US8213236B1 (en) 2009-04-21 2012-07-03 Marvell International Ltd. Flash memory
CN101923896A (zh) * 2009-06-12 2010-12-22 威刚科技(苏州)有限公司 电子存储装置及其纠错方法
US8392809B1 (en) * 2009-10-16 2013-03-05 Marvell International Ltd. Log-likelihood-ratio (LLR) table calibration
US8510628B2 (en) * 2009-11-12 2013-08-13 Micron Technology, Inc. Method and apparatuses for customizable error correction of memory
KR101678404B1 (ko) * 2010-02-25 2016-11-23 삼성전자주식회사 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법
TWI437570B (zh) * 2010-03-10 2014-05-11 Macronix Int Co Ltd 藉由編程準位的交換改善多位階單元的編程速度
US8504885B2 (en) 2010-03-31 2013-08-06 Lsi Corporation Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems
US8429500B2 (en) 2010-03-31 2013-04-23 Lsi Corporation Methods and apparatus for computing a probability value of a received value in communication or storage systems
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8332728B2 (en) * 2010-04-02 2012-12-11 Skymedi Corporation Method and apparatus of generating a soft value for a memory device
KR101678407B1 (ko) * 2010-05-10 2016-11-23 삼성전자주식회사 데이터 저장 장치 및 그것의 프로그램 방법
US9531406B2 (en) 2010-05-31 2016-12-27 Globalfoundries Inc. Decoding of LDPC code
US8819503B2 (en) 2010-07-02 2014-08-26 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8756394B1 (en) 2010-07-07 2014-06-17 Marvell International Ltd. Multi-dimension memory timing tuner
US8737136B2 (en) * 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
CN102436842B (zh) * 2010-09-29 2014-05-14 群联电子股份有限公司 存储器储存装置、存储器控制器与产生对数似然比的方法
US8848438B2 (en) 2010-10-05 2014-09-30 Stec, Inc. Asymmetric log-likelihood ratio for MLC flash channel
US8549382B2 (en) 2010-12-17 2013-10-01 Intel Corporation Storage drive with LDPC coding
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US9086984B2 (en) * 2011-01-04 2015-07-21 Seagate Technology Llc Detection and decoding in flash memories with selective binary and non-binary decoding
US9292377B2 (en) * 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US9106264B2 (en) 2011-01-04 2015-08-11 Lsi Corporation Encoding and decoding in flash memories using convolutional-type low-density parity check codes
US9082480B2 (en) * 2011-01-04 2015-07-14 Seagate Technology Llc Detection and decoding in flash memories with error correlations for a plurality of bits within a sliding window
KR101736337B1 (ko) * 2011-02-28 2017-05-30 삼성전자주식회사 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법
US9502117B2 (en) 2011-03-14 2016-11-22 Seagate Technology Llc Cell-level statistics collection for detection and decoding in flash memories
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8549380B2 (en) 2011-07-01 2013-10-01 Intel Corporation Non-volatile memory error mitigation
KR101775660B1 (ko) * 2011-09-29 2017-09-07 삼성전자주식회사 워드 라인 전압의 변화없이 상이한 문턱 전압들을 갖는 메모리 셀들을 읽는 방법 및 그것을 이용한 불 휘발성 메모리 장치
KR101919902B1 (ko) * 2011-10-18 2018-11-20 삼성전자 주식회사 메모리 장치의 데이터 독출 방법
US20140359381A1 (en) * 2011-11-02 2014-12-04 The University Of Tokyo Memory controller and data storage device
US8811545B2 (en) * 2011-11-08 2014-08-19 Mitsubishi Electric Research Laboratories, Inc. Method for reducing interference in OFDM wireless networks
CN102394113B (zh) * 2011-11-14 2014-06-18 清华大学 一种应用于快闪存储器中的动态ldpc纠错码方法
US8644067B2 (en) * 2011-11-30 2014-02-04 Sandisk Technologies Inc. Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding
US8913437B2 (en) * 2011-12-15 2014-12-16 Marvell World Trade Ltd. Inter-cell interference cancellation
US9117529B2 (en) * 2011-12-23 2015-08-25 Hgst Technologies Santa Ana, Inc. Inter-cell interference algorithms for soft decoding of LDPC codes
US8943386B1 (en) * 2012-02-16 2015-01-27 Sk Hynix Memory Solutions Inc. Generating soft read values which optimize dynamic range
US9195586B2 (en) 2012-02-23 2015-11-24 Hgst Technologies Santa Ana, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address
US8943384B2 (en) * 2012-04-12 2015-01-27 Seagate Technology Llc Using a soft decoder with hard data
US9256522B1 (en) * 2012-04-19 2016-02-09 Sk Hynix Memory Solutions Inc. Method and system for generating soft-information after a single read in NAND flash using expected and measured values
KR102089570B1 (ko) 2012-06-04 2020-03-16 삼성전자주식회사 저장 장치 및 그것의 데이터 처리 방법
US8856615B1 (en) 2012-06-11 2014-10-07 Western Digital Technologies, Inc. Data storage device tracking log-likelihood ratio for a decoder based on past performance
US9239754B2 (en) * 2012-08-04 2016-01-19 Seagate Technology Llc Single read based soft-decision decoding of non-volatile memory
US8732537B2 (en) 2012-08-06 2014-05-20 Lsi Corporation Method and system for symbol error rate estimation and sector quality measurement
RU2012134916A (ru) * 2012-08-15 2014-02-20 ЭлЭсАй Корпорейшн Способ выбора подходящего кода ldcp
US9159407B2 (en) * 2012-10-22 2015-10-13 Apple Inc. Soft readout from analog memory cells in the presence of read threshold errors
KR102005709B1 (ko) * 2012-10-22 2019-08-01 삼성전자 주식회사 메모리 장치 구동 방법 및 메모리 시스템
KR102081581B1 (ko) 2012-11-02 2020-02-26 삼성전자 주식회사 메모리 장치 구동 방법
CN103811077B (zh) * 2012-11-12 2017-03-29 光宝电子(广州)有限公司 闪存中的资料补偿方法
US9135155B2 (en) 2012-11-30 2015-09-15 Sandisk Technologies Inc. Storage and retrieval of shaped data
US9575683B2 (en) 2012-11-30 2017-02-21 Sandisk Technologies Llc Processing shaped data
US9190174B2 (en) 2012-11-30 2015-11-17 Micron Technology, Inc. Determining soft data from a hard read
US9116822B2 (en) 2012-12-07 2015-08-25 Micron Technology, Inc. Stopping criteria for layered iterative error correction
US9021332B2 (en) 2012-12-11 2015-04-28 Seagate Technology Llc Flash memory read error recovery with soft-decision decode
US20140169102A1 (en) * 2012-12-19 2014-06-19 Western Digital Technologies, Inc. Log-likelihood ratio and lumped log-likelihood ratio generation for data storage systems
WO2014109756A1 (en) 2013-01-11 2014-07-17 Empire Technology Development Llc Page allocation for flash memories
US9065483B2 (en) 2013-01-21 2015-06-23 Micron Technology, Inc. Determining soft data using a classification code
US9229848B2 (en) 2013-01-21 2016-01-05 Micron Technology, Inc. Determining soft data for fractional digit memory cells
JP6367562B2 (ja) * 2013-01-31 2018-08-01 エルエスアイ コーポレーション 選択的なバイナリ復号および非バイナリ復号を用いるフラッシュ・メモリ内の検出および復号
US8879324B2 (en) * 2013-02-01 2014-11-04 Lsi Corporation Compensation loop for read voltage adaptation
WO2014133490A1 (en) 2013-02-27 2014-09-04 Empire Technology Development Llc Linear programming based decoding for memory devices
US10061640B1 (en) 2013-03-12 2018-08-28 Western Digital Technologies, Inc. Soft-decision input generation for data storage systems
US9021331B2 (en) * 2013-03-14 2015-04-28 Seagate Technology Llc Method and apparatus for generation of soft decision error correction code information
KR102081415B1 (ko) 2013-03-15 2020-02-25 삼성전자주식회사 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법
US9286155B1 (en) * 2013-05-24 2016-03-15 Marvell International Ltd. Systems and methods for generating soft information in a flash device
GB2518632A (en) 2013-09-26 2015-04-01 Ibm Estimation of level-thresholds for memory cells
US9201729B2 (en) 2013-10-21 2015-12-01 Seagate Technology, Llc Systems and methods for soft data utilization in a solid state memory system
CN103594123B (zh) * 2013-11-28 2016-09-14 中国科学院微电子研究所 非挥发性存储器及其校调方法
US9859925B2 (en) 2013-12-13 2018-01-02 Empire Technology Development Llc Low-complexity flash memory data-encoding techniques using simplified belief propagation
US9798613B2 (en) * 2013-12-27 2017-10-24 Toshiba Memory Corporation Controller of nonvolatile semiconductor memory
US9645763B2 (en) * 2014-01-13 2017-05-09 Seagate Technology Llc Framework for balancing robustness and latency during collection of statistics from soft reads
TWI521529B (zh) * 2014-04-15 2016-02-11 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI492234B (zh) 2014-04-21 2015-07-11 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統
US9460783B2 (en) 2014-06-03 2016-10-04 Micron Technology, Inc. Determining soft data
CN105468471A (zh) * 2014-09-12 2016-04-06 光宝科技股份有限公司 固态存储装置及其错误更正方法
JP2016062463A (ja) * 2014-09-19 2016-04-25 株式会社東芝 メモリシステム、誤り訂正装置、および誤り訂正方法
US9639420B2 (en) * 2015-03-13 2017-05-02 Micron Technology, Inc. High performance memory controller
US10148293B2 (en) * 2015-03-17 2018-12-04 SK Hynix Inc. Incremental LLR generation for flash memories
US9595317B2 (en) * 2015-05-28 2017-03-14 Sandisk Technologies Llc Multi-state programming for non-volatile memory
US10204006B2 (en) 2015-10-28 2019-02-12 Avago Technologies International Sales Pte. Limited Systems and methods for side data based soft data flash memory access
US9740559B2 (en) * 2015-10-28 2017-08-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for compaction based flash memory data recovery
US10108489B2 (en) 2015-10-28 2018-10-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for efficient soft data based flash memory data recovery
CN105427892B (zh) * 2015-11-23 2018-05-01 北京大学深圳研究生院 一种面向相变存储的非均匀纠错方法及相变存储装置
KR102459077B1 (ko) * 2016-01-12 2022-10-27 삼성전자주식회사 비선형 필터링 방식을 사용하는 메모리 시스템 및 그것의 읽기 방법
US9984752B2 (en) * 2016-03-14 2018-05-29 Toshiba Memory Corporation Memory system and data encoding and decoding method to mitigate inter-cell interference
US10289484B2 (en) * 2016-09-16 2019-05-14 Micron Technology, Inc. Apparatuses and methods for generating probabilistic information with current integration sensing
US10158380B2 (en) * 2016-12-06 2018-12-18 Sandisk Technologies Llc ECC and read adjustment based on dynamic memory error model estimation
JP2019053798A (ja) 2017-09-14 2019-04-04 東芝メモリ株式会社 半導体記憶装置
CN107705817B (zh) * 2017-09-22 2020-09-08 山东存储之翼电子科技有限公司 利用闪存通道特性的解码方法、装置及数据存储系统
TWI693604B (zh) * 2018-03-06 2020-05-11 深圳衡宇芯片科技有限公司 用於決定非揮發性記憶體中位元值的方法與系統
CN108563533A (zh) * 2018-03-27 2018-09-21 深圳忆联信息系统有限公司 一种获取ici影响因子及提升纠错能力的方法
KR102653843B1 (ko) * 2018-04-19 2024-04-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 이의 리드 디스터번스 방지 방법, 이를 이용한 스토리지 시스템
CN110444242B (zh) * 2018-05-03 2023-09-08 爱思开海力士有限公司 有基于深度学习的干扰校正能力的存储器系统及操作方法
US11099781B2 (en) * 2018-07-19 2021-08-24 Silicon Motion, Inc. Flash memory controller, flash memory module and associated electronic device
JP7066584B2 (ja) 2018-09-18 2022-05-13 キオクシア株式会社 メモリシステム
CN109379087B (zh) * 2018-10-24 2022-03-29 江苏华存电子科技有限公司 Ldpc根据闪存组件错误率调变核编译码速率的方法
US11507642B2 (en) * 2019-05-02 2022-11-22 Silicon Storage Technology, Inc. Configurable input blocks and output blocks and physical layout for analog neural memory in deep learning artificial neural network
US11349495B2 (en) * 2020-04-15 2022-05-31 Seagate Technology Llc Recovering from hard decoding errors by remapping log likelihood ratio values read from NAND memory cells
US11177002B1 (en) * 2020-06-30 2021-11-16 Sandisk Technologies Llc Programming memory cells using encoded TLC-fine
US11699498B2 (en) 2020-12-04 2023-07-11 Micron Technology, Inc. Managing probabilistic data integrity scan intervals
US11609857B2 (en) 2020-12-04 2023-03-21 Micron Technology, Inc. Identification and caching of frequent read disturb aggressors
US11467737B2 (en) * 2020-12-04 2022-10-11 Micron Technology, Inc. Reducing probabilistic data integrity scan collisions
US11409599B2 (en) 2020-12-04 2022-08-09 Micron Technology, Inc. Managing probabilistic data integrity scans in workloads with localized read patterns
KR20220080589A (ko) * 2020-12-07 2022-06-14 삼성전자주식회사 Ecc 디코딩을 수행하는 ecc 엔진, 이의 동작 방법 및 ecc 엔진을 포함하는 스토리지 장치
US20230229336A1 (en) * 2022-01-20 2023-07-20 Dell Products L.P. Read-disturb-based read temperature time-based attenuation system
US11881869B1 (en) 2022-09-30 2024-01-23 SK Hynix Inc. Asymmetric bit errors in low-density parity-check codes for non-volatile memory devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008053472A2 (en) * 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
TW200823666A (en) * 2006-09-28 2008-06-01 Sandisk Corp Soft-input soft-output decoder for nonvolatile memory

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4015238A (en) * 1975-11-24 1977-03-29 Harris Corporation Metric updater for maximum likelihood decoder
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US6029264A (en) * 1997-04-28 2000-02-22 The Trustees Of Princeton University System and method for error correcting a received data stream in a concatenated system
US6041430A (en) * 1997-11-03 2000-03-21 Sun Microsystems, Inc. Error detection and correction code for data and check code fields
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6560733B1 (en) * 1999-07-09 2003-05-06 Micron Technology, Inc. Soft error detection for digital signal processors
JP3928311B2 (ja) * 1999-09-06 2007-06-13 三菱電機株式会社 ターボ符号の誤り訂正復号装置およびターボ符号の誤り訂正復号方法
US6625236B1 (en) * 2000-02-08 2003-09-23 Ericsson Inc. Methods and systems for decoding symbols by combining matched-filtered samples with hard symbol decisions
WO2001076079A2 (en) * 2000-04-04 2001-10-11 Comtech Telecommunication Corp. Enhanced turbo product code decoder system
US7107511B2 (en) * 2002-08-15 2006-09-12 Broadcom Corporation Low density parity check (LDPC) code decoder using min*, min**, max* or max** and their respective inverses
US6813322B2 (en) * 2001-04-26 2004-11-02 Telefonaktiebolaget L.M. Ericsson (Publ) Soft output value biasing
JP3814502B2 (ja) * 2001-08-09 2006-08-30 松下電器産業株式会社 干渉除去装置及び干渉除去方法
JP2003152553A (ja) * 2001-11-13 2003-05-23 Ntt Docomo Inc 復号方法及び通信装置
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
JP3549519B2 (ja) * 2002-04-26 2004-08-04 沖電気工業株式会社 軟出力復号器
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
KR100526186B1 (ko) * 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
US6980140B1 (en) * 2004-06-18 2005-12-27 Nortel Networks Limited Flash ADC receiver with reduced errors
US7181676B2 (en) 2004-07-19 2007-02-20 Texas Instruments Incorporated Layered decoding approach for low density parity check (LDPC) codes
CN100593911C (zh) * 2004-07-19 2010-03-10 德克萨斯仪器股份有限公司 一种对通信系统中接收到的层数据进行解码的方法和系统
JP2006114078A (ja) * 2004-10-12 2006-04-27 Toshiba Corp 不揮発性半導体記憶装置及びその動作方法
US7730384B2 (en) * 2005-02-28 2010-06-01 Agere Systems Inc. Method and apparatus for evaluating performance of a read channel
US7187585B2 (en) 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7276855B2 (en) * 2005-07-15 2007-10-02 General Electric Company Auxilary lighting circuit for high intensity discharge system
JP4664797B2 (ja) * 2005-10-13 2011-04-06 ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー Mri装置
US7526715B2 (en) * 2005-10-17 2009-04-28 Ramot At Tel Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
US7954037B2 (en) * 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
WO2007062391A2 (en) * 2005-11-22 2007-05-31 Triton Systems, Inc. Multilayer flame retardant barrier films and fabrics
JP2007183844A (ja) * 2006-01-10 2007-07-19 Hitachi Global Storage Technologies Netherlands Bv 補助記憶装置および記録再生方法
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7844879B2 (en) * 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US7400532B2 (en) 2006-02-16 2008-07-15 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7502254B2 (en) * 2006-04-11 2009-03-10 Sandisk Il Ltd Method for generating soft bits in flash memories
KR101375955B1 (ko) 2006-05-12 2014-03-18 애플 인크. 메모리 디바이스 내의 왜곡 추정 및 상쇄
JP4999921B2 (ja) * 2006-05-12 2012-08-15 アノビット テクノロジーズ リミテッド メモリ素子用の歪み推定と誤り訂正符号化の組み合せ
KR101202537B1 (ko) * 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
CN102306501B (zh) 2006-06-19 2014-03-19 桑迪士克股份有限公司 编程不同大小的容限及在选择状态下使用补偿进行感测以改进非易失性存储器中的读取操作
JP4896605B2 (ja) * 2006-07-04 2012-03-14 株式会社東芝 不揮発性半導体記憶システム
US7894269B2 (en) * 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
WO2008019348A2 (en) 2006-08-04 2008-02-14 Metacarta, Inc. Systems and methods for presenting results of geographic text searches
CA2660087C (en) * 2006-08-05 2014-09-23 Benhov Gmbh, Llc Memory configuration and method for calibrating read/write data based on performance characteristics of the memory configuration
JP4791912B2 (ja) 2006-08-31 2011-10-12 株式会社東芝 不揮発性半導体記憶装置及び不揮発性記憶システム
JP5177991B2 (ja) * 2006-10-25 2013-04-10 株式会社東芝 不揮発性半導体記憶装置
US7558109B2 (en) 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
EP2084709B1 (en) 2006-11-03 2014-04-02 SanDisk Technologies Inc. Nonvolatile memory with variable read threshold
KR100766042B1 (ko) * 2006-12-06 2007-10-12 삼성전자주식회사 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
US7814401B2 (en) * 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7480184B2 (en) * 2007-01-07 2009-01-20 International Business Machines Corporation Maximum likelihood statistical method of operations for multi-bit semiconductor memory
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
KR100838292B1 (ko) * 2007-06-20 2008-06-17 삼성전자주식회사 메모리 셀의 읽기 레벨 제어 장치 및 그 방법
KR101425958B1 (ko) 2007-09-06 2014-08-04 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법
US7751237B2 (en) * 2007-09-25 2010-07-06 Sandisk Il, Ltd. Post-facto correction for cross coupling in a flash memory
US7656707B2 (en) * 2007-12-14 2010-02-02 Intel Corporation Systems and methods for discrete channel decoding of LDPC codes for flash memory
KR101515122B1 (ko) * 2008-02-15 2015-04-27 삼성전자주식회사 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
KR101378365B1 (ko) * 2008-03-12 2014-03-28 삼성전자주식회사 하이브리드 메모리 데이터 검출 장치 및 방법
KR101398200B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
KR101398212B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
JP2009271852A (ja) * 2008-05-09 2009-11-19 Toshiba Corp 半導体記憶装置
US7843725B2 (en) 2008-06-11 2010-11-30 Micron Technology, Inc. M+L bit read column architecture for M bit memory cells
US8464131B2 (en) * 2008-06-23 2013-06-11 Ramot At Tel Aviv University Ltd. Reading a flash memory by constrained decoding
US8458563B2 (en) * 2008-06-23 2013-06-04 Ramot At Tel Aviv University Ltd. Reading a flash memory by joint decoding and cell voltage distribution tracking
JP2010109468A (ja) * 2008-10-28 2010-05-13 Toshiba Corp 復号器、メモリコントローラおよび半導体メモリ装置
JP4818381B2 (ja) * 2009-03-02 2011-11-16 株式会社東芝 半導体メモリ装置
JP5361603B2 (ja) * 2009-08-13 2013-12-04 株式会社東芝 コントローラ
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US8549385B2 (en) 2009-12-15 2013-10-01 Marvell World Trade Ltd. Soft decoding for quantizied channel
US9245653B2 (en) 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
US8498152B2 (en) 2010-12-23 2013-07-30 Sandisk Il Ltd. Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling
KR102149770B1 (ko) 2013-08-26 2020-08-31 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200823666A (en) * 2006-09-28 2008-06-01 Sandisk Corp Soft-input soft-output decoder for nonvolatile memory
WO2008053472A2 (en) * 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds

Also Published As

Publication number Publication date
WO2010039859A1 (en) 2010-04-08
CN102203877A (zh) 2011-09-28
CN102203876A (zh) 2011-09-28
TW201019328A (en) 2010-05-16
TWI581269B (zh) 2017-05-01
JP2012504841A (ja) 2012-02-23
WO2010039866A1 (en) 2010-04-08
CN102203875A (zh) 2011-09-28
TW201019329A (en) 2010-05-16
CN102203876B (zh) 2015-07-15
US20110305082A1 (en) 2011-12-15
IL211956A0 (en) 2011-06-30
US20110225350A1 (en) 2011-09-15
EP2340539A1 (en) 2011-07-06
US9378835B2 (en) 2016-06-28
EP2340541A1 (en) 2011-07-06
KR101758192B1 (ko) 2017-07-14
JP5535220B2 (ja) 2014-07-02
JP5535219B2 (ja) 2014-07-02
JP2012504842A (ja) 2012-02-23
EP2340538A1 (en) 2011-07-06
KR20110061648A (ko) 2011-06-09
US9064594B2 (en) 2015-06-23
JP2012504820A (ja) 2012-02-23
US8830748B2 (en) 2014-09-09
JP2012514819A (ja) 2012-06-28
WO2010039874A1 (en) 2010-04-08
TWI562151B (en) 2016-12-11
TW201019326A (en) 2010-05-16
CN102171767A (zh) 2011-08-31
JP5590620B2 (ja) 2014-09-17
US20110167305A1 (en) 2011-07-07
IL211895A0 (en) 2011-06-30
IL211969A0 (en) 2011-06-30
TWI517162B (zh) 2016-01-11
CN102203877B (zh) 2016-07-06
IL211955A0 (en) 2011-06-30
TW201019327A (en) 2010-05-16
KR20110061649A (ko) 2011-06-09
US8892966B2 (en) 2014-11-18
WO2010039869A1 (en) 2010-04-08
US20110239089A1 (en) 2011-09-29
KR20110061650A (ko) 2011-06-09
EP2340540A1 (en) 2011-07-06

Similar Documents

Publication Publication Date Title
CN102203875B (zh) 使用参考单元的用于存储器器件的软数据生成的方法和装置
CN102132350B (zh) 用于闪存存储器中的软解映射和单元间干扰减轻的方法和设备
US9086984B2 (en) Detection and decoding in flash memories with selective binary and non-binary decoding
US8301979B2 (en) Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
US9898361B2 (en) Multi-tier detection and decoding in flash memories
EP2763042B1 (en) Detection and decoding in flash memories with selective binary and non-binary decoding
US8990668B2 (en) Decoding data stored in solid-state memory
US9082480B2 (en) Detection and decoding in flash memories with error correlations for a plurality of bits within a sliding window
US20230052685A1 (en) Calculating soft metrics depending on threshold voltages of memory cells in multiple neighbor word lines
KR20110082016A (ko) 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템
Ashrafi Error mitigation in next generation Nand flash memories

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant