CN105579972A - 一次写入存储器中的联合重写和错误校正 - Google Patents

一次写入存储器中的联合重写和错误校正 Download PDF

Info

Publication number
CN105579972A
CN105579972A CN201380071398.1A CN201380071398A CN105579972A CN 105579972 A CN105579972 A CN 105579972A CN 201380071398 A CN201380071398 A CN 201380071398A CN 105579972 A CN105579972 A CN 105579972A
Authority
CN
China
Prior art keywords
value
charge level
data
bit
data set
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.)
Pending
Application number
CN201380071398.1A
Other languages
English (en)
Inventor
蒋安虓
李玥
E·恩·加德
M·朗贝格
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.)
University of Guelph
Texas A&M University System
California Institute of Technology CalTech
Original Assignee
University of Guelph
California Institute of Technology CalTech
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Guelph, California Institute of Technology CalTech filed Critical University of Guelph
Publication of CN105579972A publication Critical patent/CN105579972A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • 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
    • 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/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/5628Programming or writing circuits; Data input circuits
    • 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
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/146Write once memory, i.e. allowing changing of memory content by writing additional bits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

重写和错误校正这二者是可用于诸如闪速存储器的非易失性存储器的技术。本文公开了一种针对一次写入存储器模型组合重写和错误校正的编码方案。在一些实施方式中,码构造基于极性码,并且支持任何数量的重写并且校正大量的错误。可以针对二进制对称通道分析所述码。能够将结果扩展到多级单元和更一般的噪声模型。

Description

一次写入存储器中的联合重写和错误校正
相关申请的交叉引用
本申请要求2013年1月24日提交的标题为“JOINTREWRITINGANDERRORCORRECTIONINWRITE-ONCEMEMORIES”的美国临时专利申请第61/756,324号的权益,在此通过引用将其整体地并入本文并且用于所有目的。
有关政府赞助研究和开发的声明
本文描述的主题是根据由美国国家科学基金会授予的CIF1218005至少部分地在政府支持下进行的。美国政府可能对本文公开的主题有特定权利。
技术领域
本领域一般地涉及具有可以在单个方向上单独地改变但是作为组被擦除的单元的单向或只写存储器(WOM),并且更具体地但是不排他地涉及利用错误校正重写只写存储器。
背景技术
除非本文另外指示,否则此部分中描述的材料对于本申请中的权利要求而言不是现有技术,并且不通过包括在此部分中被承认为现有技术。
用于重写的编码是用于闪速存储器的技术。编码有基本上增加闪速存储器的寿命、速度和功率效率的潜力。最近已提出了用于重写的编码。参见例如IEEE信息理论国际研讨会学报2007年6月第1186–1190页中的V.Bohossian、A.Jiang和J.Bruck,“Buffercodingforasymmetricmulti-levelmemory”以及IEEE信息理论国际研讨会学报2007年6月第1166–1170页中的A.Jiang,V.Bohossian和J.Bruck,“Floatingcodesforjointinformationstorageinwriteasymmetricmemories”,通过引用将其并入本文。自最初提出了时间编码以来,已经在这个领域中出现了许多作品。参见例如IEEE信息理论国际研讨会学报2010年6月第1928–1932页中的Y.Wu,“Lowcomplexitycodesforwritingawrite-oncememorytwice”、Y.Wu和A.Jiang,“Positionmodulationcodeforrewritingwrite-oncememories,”IEEETrans.Inf.Theor.,第57卷,第6期,第3692–3697页,2011年6月、E.Yaakobi,S.Kayser,P.H.Siegel,A.Vardy和J.K.Wolf,“Codesforwrite-oncememories,”IEEETrans.Inf.Theor.,第58卷,第9期,第5985–5999页,2012年12月以及IEEE信息理论研究会学报2010年12第1-5页中的E.Yaakobi,S.Kayser,P.Siegel,A.Vardy和J.Wolf,“Efficienttwo-writewom-codes”,通过引用将其并入本文。
用于重写的模型是一次写入存储器(WOM)模型。参见例如R.L.Rivest和A.Shamir,“Howtoreuseawrite-oncememory,”InformationandControl,第55卷,第1-3期,第1–19页,1982,通过引用将其并入本文。在WOM模型中,一组二进制单元被用于存储数据,并且当数据被重写时单元电荷电平增加。对于闪速存储器,这个约束暗示重写操作可以使代价大的块擦除延迟,这导致单元质量的更好保存和更高的写入性能。
已存在针对WOM码的设计的许多技术。它们可以包括线性码、扁平码、基于投影几何的码、陪集编码等。参见例如G.Cohen,P.Godlewski和F.Merkx,“Linearbinarycodeforwrite-oncememories,”IEEETrans.Inf.Theor.,第32卷,第5期,第697–700页,1986年12月、Merkx,“Womcodesconstructedwithprojectivegeometries”TraitementduSignal,第1卷,第2-2期,第227–231页,1984以及R.L.Rivest和A.Shamir,“Howtoreuseawrite-oncememory,”InformationandControl,第55卷,第1-3期,第1–19页,1982,通过引用将其并入本文。近年来发现了具有基本上更高速率的码。参见例如IEEE信息理论国际研讨会学报2007年6月第1186–1190页中的的V.Bohossian,A.Jiang和J.Bruck,“Buffercodingforasymmetricmulti-levelmemory”以及IEEE信息理论国际研讨会学报2007年6月第1166–1170页中的A.Jiang,V.Bohossian和J.Bruck,“Floatingcodesforjointinformationstorageinwriteasymmetricmemories”,通过引用将其并入本文。自最初提出了时间这种编码以来,已经在这个领域中出现了许多作品。参见例如IEEE信息理论国际研讨会学报20106月第1928–1`2页中的Y.Wu,“Lowcomplexitycodesforwritingawrite-oncememorytwice”以及E.Yaakobi,S.Kayser,P.H.Siegel,A.Vardy和J.K.Wolf,“Codesforwrite-oncememories,”IEEETrans.Inf.Theor.,第58卷,第9期,第5985–5999页,2012年12月,通过引用将其并入本文。在2012年,实现容量的WOM码由Shpilka等人和Burshtein等人发现。参见例如A.Shpilka,“Capacityachievingmultiwritewomcodes,”CoRR,vol.abs/1209.1128,2012、“Capacityachievingtwo-writewomcodes,”inLATIN2012:TheoreticalInformatics,ser.LectureNotesinComputerScience,vol.7256.SpringerBerlinHeidelberg,2012,第631–642页、IEEE信息理论国际研讨会学报2012年7月第1386–1390页中的E.Yaakobi和A.Shpilka,“Highsum-ratethree-writeandnon-binarywomcodes”以及IEEE信息理论国际研讨会学报2012年7页第1972–1976页中的D.Burshtein和A.Strugatski,“Polarwriteoncememorycodes”,通过引用将其并入本文。后者码使用了基于极性编码的构造。
与对WOM码的大量工作相比,对也校正错误的WOM码的工作一直有限得多。现有工作主要在校正几个错误(例如,1、2或3个错误)上。参见例如E.Yaakobi,P.Siegel,A.Vardy和J.Wolf,“Multipleerror-correctingwom-codes,”IEEETrans.Inf.Theor.,第58卷,第4期,第2220–2230页,2012年4月以及G.Zemor和G.D.Cohen,“Error-correctingwom-codes,”IEEETrans.Inf.Theor.,第37卷,第3期,第730–734页,1991年5月,通过引用将其并入本文。
发明内容
讨论了将重写与错误校正组合的编码方案。在一些实施方式中,方案可以支持任何数量的重写并且能够校正大量的错误。码构造可以使用极性编码。在一些实施方式中,可以使用基于分别与WOM通道和错误通道(包括它们的公共降级通道和公共升级通道)对应的冻结集合的分析技术。在一些实施方式,可以实现和速率的下界。还可以针对各种参数计算实际的和速率。所述分析技术可以集中于二进制对称通道(BSC)。在实践中,对于相对较小的错误概率,可以常常将用于BSC的冻结集合包含在用于WOM通道的冻结集合中,这使得一些实施方式能够具有嵌套结构。还能够将编码方案扩展到多级单元(MLC)和更一般的噪声模型。
一个方面是一种重写存储器的方法。该方法包括以下步骤:确定所述存储器的多个单元中的每一个的当前单元电荷电平;以及根据线性变换生成多个下一个单元电荷电平,其中,各个下一个单元电荷电平是基于所述当前单元电荷电平中的对应一个并且基于输入数据生成的。各个下一个单元电荷电平大于或等于所对应的当前单元电荷电平,所述多个下一个单元电荷电平表示所述输入数据,并且所述多个下一个单元电荷电平包括用于错误校正的冗余。所述方法还包括以下步骤:将所述下一个单元电荷电平存储在所述存储器中。
另一方面是一种读取存储器的方法。方法包括以下步骤:确定所述存储器的多个单元的当前单元电荷电平,其中所述当前单元电荷电平表示数据和错误校正信息。所述方法还包括以下步骤:生成多个数据值,其中,所述数据值是基于所述当前单元电荷电平的线性变换生成的;以及将所述数据值发送到数据目的地。
另一方面是一种存储器系统。所述系统包括:存储器,该存储器包括多个单元;处理器,该处理器耦接至所述存储器并且被配置为确定所述存储器的所述多个单元的当前单元电荷电平;以及编码器,该编码器耦接至所述存储器并耦接至所述处理器,并且被配置为根据线性变换生成多个下一个单元电荷电平,其中,各个下一个单元电荷电平是基于所述当前单元电荷电平中的对应一个并且基于输入数据生成的。各个下一个单元电荷电平大于或等于所对应的先前单元电荷电平,所述多个下一个单元电荷电平表示所述输入数据,并且所述多个下一个单元电荷电平包括用于错误校正的冗余。所述系统还包括写入装置,该写入装置被配置为将所述下一个单元电荷电平存储在所述存储器中。
另一方面是一种存储器系统。所述系统包括:存储器,该存储器包括多个单元;处理器,该处理器耦接至所述存储器并且被配置为确定所述存储器的所述多个单元的当前单元电荷电平,其中,所述当前单元电荷电平表示数据和错误校正信息。所述系统还包括解码器,该解码器耦接至所述处理器并且耦接至所述存储器,并且被配置为生成多个数据值,其中,所述数据值是基于所述当前单元电荷电平的线性变换生成的。所述系统还包括发送器,该发送器耦接至所述解码器并且被配置为将所述数据值发送到数据目的地。
前面的发明内容仅是例示性的,并且不旨在以任何方式为限制性的。除以上所描述的例示性方面、实施方式和特征之外,另外的方面、实施方式和特征通过参照附图和以下具体实施方式将变得显而易见。
附图说明
本公开的前面和其它特征从结合附图进行的以下描述和所附权利要求将变得更加完全显而易见。理解这些附图仅描绘了根据本公开的数个实施方式并且因此将不被认为限制其范围,将通过使用附图以附加特性和细节来描述本公开,附图中:
图1是例示了示例性写入过程的框图。
图2是示出了由用于在WOM重写过程中对数据值进行编码的装置执行的示例操作的流程图。
图3是示出了由用于在WOM读取过程中对单元电荷电平值进行解码的装置执行的示例操作的流程图。
图4是示出了用于在WOM重写过程中对单元电荷电平值进行编码的示例装置的框图。
图5是示出了用于在WOM读取过程中对单元电荷电平值进行解码的示例装置的框图。
图6例示了示例WOM通道WOM(α,ε)。
图7例示了以下各项的示例:(a)针对的嵌套码。(b)一般码。
图8例示了使通道WOM(α,ε*)降级到BSC(αε*)的示例。在左边和在右边的两个通道可以是等效的。
图9例示了使通道降级到WOM(α,ε)的示例。这里在左边和在右边的两个通道可以是等效的。
图10例示了用于通道BSC(p)、WOM(α,ε)、和BSC(αε)的冻结集合的示例。这里p≤αε。
图11是例示了针对不同错误概率p到可实现和速率的下界的示例的曲线图。
图12是例示了针对发现的p的最大值的示例的曲线图。
图13是例示了当时在使用码长度N=8192的实验搜索中获得的不同t的和速率的示例的曲线图。
图14是示例存储器装置的例示。
图15是用于与诸如图14所描绘的存储器装置进行通信或以其它方式操作的示例计算装置的框图。
图16是例示了根据本文所讨论的方面操作的系统中的示例数据流的框图。
附图所示的这些方面和其它特征中的全部是根据本文所呈现的至少一些实施方式布置的。
具体实施方式
在以下详细描述中,参照形成其一部分的附图。在附图中,除非上下文另外规定,否则类似的符号通常标识类似的组件。在具体实施方式、附图和权利要求中描述的例示性实施方式不意在为限制性的。在不脱离本文所呈现的主题的精神或范围的情况下,可以利用其它实施方式,并且可以做出其它改变。如本文所通常描述的和图中所例示的,能够按照各式各样的不同配置布置、取代、组合、分离并且设计本公开的方面,所述不同配置中的全部在本文中被显式地设想到。
本公开通常尤其致力于与一次写入存储器中的联合重写和错误校正有关的方法、设备、系统、装置和计算机程序产品。
简单来说,重写和错误校正这二者是可以被用于诸如闪速存储器的非易失性存储器的技术。本公开呈现了针对一次写入存储器模型组合重写和错误校正的编码方案。在一些实施方式中,码构造基于极性码,并且支持任何数量的重写并校正大量的错误。可以针对二进制对称通道来分析码。能够将结果扩展到多级单元和更一般的噪声模型。
I.引言
本公开呈现了针对纠错WOM码的码构造。码构造方案可以支持任何数量的重写并且能够校正大量的错误。
例如,存储器可以具有N个二进制单元,其中每个单元有两个电荷电平:0和1。单元编程方法能够仅将单元从0改变为1,而不是从1改变为0。然而,噪声能够在两个方向上:从0到1以及从1到0改变单元。
针对单元编程的编码有两个功能:(1)重写数据,其意在存储替换旧数据的新数据,以及(2)校正错误。在一些实施方式中,编码方法可以支持t次重写,其中各个写入还被称作重写,并且其中t是大于或等于二的整数参数。
在数据的写入之后,噪声可能出现在单元电平中,并且单元编程的特定实施方式能够校正错误并且恢复通过最后写入存储的数据。在一些实施方式中,这些写入中的每一个可以使用基本上相同的过程。
例如,假设(s1,s2,…,sN)是表示N个二进制单元在写入之前的电平的二进制向量。假设(s’1,s’2,…,s’N)是表示N个二进制单元在这个写入之后的单元电平的二进制向量。另外,假设(b1,b2,…,bM)是表示要写入的数据的二进制向量,其中数据有M个比特。注意以下约束或条件:
1)对于i=1,2,…,N,s’i大于或等于si。这是因为单元编程方法增加单元的电平,但是不会降低它。
2)M是为系统所知的整数参数。它的值对于写入可以是相同的或不同的。
3)单元电平(s1,s2,…,sN)可以与正好在前一个重写之后的单元电平不同,因为噪声可能自前一个重写以来已改变了单元电平。
为了写入数据(b1,b2,…,bM),该方法可以具有以下输入:
(1)当前单元电平(s1,s2,…,sN),以及
(2)要存储的新数据(b1,b2,…,bM)。
基于来自(1)和(2)的输入,该方法计算输出(s’1,s’2,…,s’N),并且在以下约束情况下将单元编程为新电平:
1)对于i=1,2,…,N,s’i大于或等于si。
2)新单元电平(s’1,s’2,…,siN)根据由方法指定的映射来表示新数据(b1,b2,…,bM)。
图1是例示了根据一些实施方式的示例写入过程的框图。图1的写入过程包括例如如以上所描述的错误校正。要存储在存储器中的数据与针对WOM通道的冻结集合26包括在一起,并且被提供给极性编码器27。极性编码器27生成被提供给一组WOM通道装置29的极性码字28。WOM通道装置29确定要写入到WOM中的单元电平。
要存储在存储器中的数据与针对WOM通道的冻结集合26包括在一起,并且针对WOM通道的冻结集合26的数据被提供给极性编码器27。另外,附加数据31被提供给极性编码器27。在图1的实施方式中,附加数据31是针对二进制对称通道(BSC)通道的冻结集合。极性编码器27基于针对WOM通道的冻结集合26的数据和针对BSC通道的冻结集合的附加数据31来生成极性码字28。附加数据31允许极性编码器27生成包括用于错误校正的数据的极性码字28。极性编码器27根据下面更详细地讨论的编码方案的实施方式和示例特征来生成极性码字28。如下面所讨论的,编码方案允许WOM利用错误校正加以写入。
极性码字28被提供给一组WOM通道装置29,所述WOM通道装置29确定要写入到WOM中的单元电平。WOM通道装置29确定单元电平,使得WOM的新状态包括冻结集合的数据并且使得WOM中的仅有单元电平改变是从0状态到1状态。下面更详细地描述WOM通道装置的实施方式。
图2是示出了根据一些实施方式的可以由用于将要编码的数据值编码成用于重写WOM的码字的装置执行的方法的示例操作的流程图。该装置可以包括从主机装置(诸如计算机)接收数据并且根据下面所讨论的错误校正编码方案存储数据的诸如闪速存储器装置的外部数据存储装置。例如,该装置可以包括用于处理数据值并且产生对应码字的目的的编码器。
图2的方法可以包括由块1002、块1004和/或块1006中的一个或更多个例示的一个或更多个操作、功能或动作。尽管按照顺序次序例示了块,但是还可以并行和/或按照与本文所描述的那些次序不同的次序执行这些块。并且,各种块可以基于特定实施方式被组合成较少块、划分成附加块和/或消除。可以提供表示其它操作、功能或动作的附加块。
图2所示的方法可以在块1002“确定当前单元电平”中开始。块1002可以后面有块1004“生成下一个单元电平”,并且块1004可以后面有块1006“将下一个单元电平写入到存储器中”。
在由流程图块1002表示的第一操作中,确定了当前单元电荷电平。如以上所讨论的,将数据写入到存储器中使单元电平单向地改变,例如,0到1而不是1到0。因此,为了确定哪些存储器单元将从0改变为1,确定了当前单元电平。
在由块1004指示的下一个编码操作中,下一个单元电荷电平是基于要写入的数据并且基于当前单元电平生成的。下面更详细地讨论用于确定下一个单元电平的技术的示例。在块1006处,将下一个单元电荷电平写入到存储器中。例如,下一个单元电平可以被存储到数据装置的存储器单元中,或者可以被提供给主机装置的存储器,或者可以被发送到外部目的地。
结果,重写方法使得新数据能够在不降低单元电平的情况下被存储在单元中(以替换旧数据)两次或更多次。另外,即使噪声可能已改变单元中的一些的电平,错误校正方法也使得最近写入的数据能够被恢复。
具体地,重写操作取当前单元电平(s1,…,sN)和新数据(b1,…,bM)作为输入,并且计算新单元电平(s’1,…,s’N),其中对于i=1,…,N,s’i大于或等于si。另外,新单元电平向量(s’1,…,s’N)根据由方法指定的映射来表示新数据(b1,b2,…,bM)。因此,考虑到新单元电平(s’1,…,s’N),编码算法能够唯一地确定新数据(b1,…,bM)的值。
在一些实施方式中,为了例如在块1004中生成下一个单元电平,该方法可以使用N行和N列(其值是固定的并且为系统所知)的二进制矩阵ANxN=(ai,j)NxN。例如,对于i=1,…,N和j=1,…,N,ai,j∈{0,1}是矩阵ANxN的第i行和第j列中的比特。此外,该方法可以使用由FWOM表示的{1,2,…,N}的子集和由FC表示的{1,2,…,N}的另一子集来生成下一个单元电平,使得:
FC包含至少一个元素。也就是说,|FC|大于或等于1。
在FWOM中而不是在FC中存在M个元素,即,|FWOM–FC|=M。
{1,2,…,N}中的至少一个元素既不在FWOM中也不在FC中。也就是说,|{1,2,…,N}-FWOM-FC|大于或等于1。
FC是FWOM的子集。也就是说,
此外,在一些实施方式中,为了生成下一个单元电平,该方法可以使用被称作抖动(dither)的二进制向量(g1,g2,:::,gN),其值为系统所知。抖动的值对于重写中的每一个可以是相同的或不同的。可以确定两个其它二进制向量(v1,v2,…,vN)和(v’1,v’2,…,v’N)如下:
对于i=1,…,N,vi=si⊕gi被称作第i个单元在写入之前的值。这里⊕是异或操作。
对于i=1,…,N,v’i=s’i⊕gi被称作第i个单元在写入之后的值。
此外,假设A-1 NxN为矩阵ANxN的逆,并且假设(u1,u2,…,uN)为二进制向量(u1,u2,…,uN)=(v’1,v’2,…,v’N)·A-1 NxN。另外,向量(u1,u2,…,uN)可以具有以下特性:
比特{ui|1≤i≤N,i∈FWOM-FC}–即其索引在FWOMFC中的(u1,…,uN)中的那些比特–的值等于数据(b1,,bM)的值。
比特{ui|i∈FC}的值是为系统所知的常数(诸如全0或任何其它固定值)。
比特{ui|1≤i≤N,i≠FWOM–FC}的值通过用于重写的方法来计算。
在一些实施方式中,其电平通过重写方法被从0改变为1的单元的数量被最小化或以其它方式减小。因此,该方法可以使的值最小化或以其它方式减小的值。
在一些实施方式中,该方法可以使用以下第一概率模型来描述单元电平(s1,…,sN)与(s’1,…,s’N)之间的关系。假设并且假设∈∈[0,1]为其值为系统所知的实数参数。对于i=1,…,N,
Pr{Si=0|s′i=0}=1并且
Pr { s i = 0 | s ′ i = 1 } = α ∈ α ∈ + 1 - α , 并且 Pr { s = 1 | s ′ i = 1 } = 1 - α α ∈ + 1 - α .
在一些实施方式中,该方法可以将新单元电平(s’1,…,s’N)用作使值Pr{(s’1,…,s’N)|(s1,…,sN)}最大化或以其它方式增加值Pr{(s’1,…,s’N)|(s1,…,sN)}的向量。
在一些实施方式中,该方法可以将新单元电平(s’1,…,s’N)选取为使值Pr{(s1,…,sN)|(s’1,…,s’N)}最大化或以其它方式增加值Pr{(s1,…,sN)|(s’1,…,s’N)}的向量。
在一些实施方式中,为了生成下一个单元电平,该方法可以依次计算比特u1、u2、…、uN的值,并且随后将单元电平(s’1,…,s’N)的值计算为(s’1,…,s’N)=(v’1,…,v’N)⊕(g1,…,gN)=(u2,…,uN)·A-1 NxN⊕(g1,…,gN)。对于i=1,…,N,该方法计算如下:
1:如果i∈FWOM-FC并且i是FWOM-FC中的第j个元素(对于j∈{1,2...,M}),则假设ui=bj(新数据中的第j个比特)。否则,转向步骤2。
2:如果i∈FC,则假设μi为先前指定的常数值(诸如值0)。否则,转向步骤3。
3:如果i∈{1,2,…,N}–FWOM,则假设μi取假定μi+1,…,μN中的每一个同样地很可能为0和1、使Pr{μi|(s1,v1),…,(sN,vN),μ1,…,μi-1}的值最大化的值。
在一些实施方式中,该方法可以使用以下第二概率模型来描述向量(v’1,…,v’N)与向量((s1,v1),…,(sn,vn))之间的关系。对于i=1,…,N,
Pr((si,vi)=(1,0)|v′i=0)=1-α,Pr((si,vi)=(0,0)|v′i=0)
=α(1-∈),Pr((si,vi)=(0,1)|v′i=0)=α∈,Pr((si,vi)=(1,1)|v′i=0)=0,
在一些实施方式中,该方法可以将新单元电平(s’1,…,s’N)选取为使值Pr{(s’1,…,s’N)|(s1,…,sN)}最大化或以其它方式增加值Pr{(s’1,…,s’N)|(s1,…,sN)}的向量。
在一些实施方式中,该方法可以将新单元单元(s’1,…,s’N)选取为使值Pr{(s1,…,sN)|(s’1,…,s’N)}最大小化或以其它方式增加值Pr{(s1,…,sN)|(s’1,…,s’N)}的向量。
在一些实施方式中,该方法可以依次计算比特u1、u2、…、uN的值,并且随后将单元电平(s’1,…,s’N)的值计算为(s’1,…,s’N)=(v’1,…,v’N)⊕(g1,…,gN)=(u2,…,uN)·A-1 NxN⊕⊕(g1,…,gN)。对于i=1,…,N,该方法可以计算如下:
1:如果i∈FWOM-FC并且i是FWOM-FC中的第j个元素(对于j∈{1,2...,M}),则假设ui=bj(新数据中的第j个比特)。否则,转向步骤2。
2:如果i∈FC,则假设μi为先前指定的常数值(诸如值0)。否则,转向步骤3。
3:如果i∈{1,2,...,N}–FWOM,则假设μi取假定μi+1,…,μN中的每一个同样地很可能为0和1使Pr{μi|(s1,v1),…,(sN,vN),μ1,…,μi-1}的值最大化的值。
在一些实施方式中,可以指定矩阵ANxN如下。假设m为正整数,并且假设N=2m。假设 G 2 = 1 0 1 1 并且假设为G2的第m个克罗内克积(Kroneckerproduct)。
在一些实施方式中,抖动可以是能够通过使用种子数作为输入的伪随机数发生器生成的伪随机数。可以将种子数存储在系统中。
在一些实施方式中,该方法可以依次计算比特u1、u2、…、uN的值,并且随后将单元电平(s’1,…,s’N)的值计算为(s’1,…,s’N)=(v’1,…,v’N)⊕(g1,…,gN)=(u2,…,uN)·A-1 NxN⊕⊕(g1,…,gN)。对于i=1,…,N,该方法可以计算如下:
步骤1:假设y=(y1,y2),…yN)=((s1,v1),(s2,v2),…,(sN,vN))为N个元素的向量,其中每个元素yi=(si,vi)是比特对。
步骤2:假设J=(j1,j2),…jM)=FWOM-FC,其中j1<j2<…<jm。假设 u F W O M - F C = ( u j 1 , u j 2 , ... , u j M ) .
对于I=1,…,M,假设uji=bi
步骤3:对于每个i∈FC,假设ui=0。
步骤4:对于i=1,2,…,N计算 W N i ( y , ( u j 1 , u j 2 , ... , u i - 1 | u i = 1 ) 的值如下:
-根据i的奇偶性,通过以下公式中的一个递归地估计的值(始于n=N/2):
W 2 n 2 i - 1 ( ( y 1 , y 2 , ... , y 2 n ) , ( u 1 , u 2 , ... , u 2 i - 2 ) | u 2 i - 1 )
W n i ( ( y n + 1 , y n + 2 , ... , y 2 n ) , ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i ) ,
W n i ( ( y n + 1 , y n + 2 , ... , y 2 n ) , ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i )
其中基本情况
W1 1((1,0),(·)|0)=1-α
W1 1((0,0),(·)|0)=α(1-∈)
W1 1((0,1),(·)|0)=α∈
W1 1((1,1),(·)|0)=0
W1 1((1,0),(·)|1)=0(3)
W1 1((0,0),(·)|1)=α∈
W1 1((0,1),(·)|1)=α(1-∈)
W1 1((1,1),(·)|1)=1-α
其中(·)表示空向量。两个二进制向量之间的操作符表示按元素异或计算。两个比特之间的操作符表示二进制异或计算。
步骤5:对于i=1,2,...,N,如果则进行以下步骤:
-步骤5.1:假设取值 W N i ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 0 ) / W N i ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 1 ) .
-步骤5.2:假设ui在概率情况下取值0并且在概率情况下取值1。
步骤6:假设((v′1,v′2,…,v′N)=(u1,u2,…,uN)ANxN
步骤7:假设(s′1,s′2,…,s′N)=(v′1⊕g1,v′2⊕g2,…,v′N⊕gN)。
步骤8:检查对于i=1,…,N是否s′1≥si。如果是,则将用来生成抖动(g1,…,gN)的种子数存储在系统中,并且假设(s′1,…,s′N)为新单元电平;否则,使用新种子数来为抖动(g1,…,gN)生成新值,并且返回到步骤1以重复计算。
在一些实施方式中,矩阵ANxN可以是极性码的生成矩阵,并且可以将FWOM包含在与由转移第二概率模型描述的通道对应的极性码的冻结集合中,其中通道有作为通道输入的v’i和作为通道输出的(si,vi)。
在一些实施方式中,可以确定FWOM如下:
对于i=1,2,,N,假设z表示((y1,y2,,yN),(u1,u2,,ui-1)),并且计算值
F E R ( W N i ) = &Sigma; z : W N i ( z | 0 ) < W N i ( z | 1 ) W N i ( z | 0 ) + &Sigma; z : W N i ( z | 0 ) < W N i ( z | 1 ) 1 2 W N i ( z | 0 )
其中如下面所讨论的那样计算。另外,假设ΔR为大于零的实数参数。此外,假设FWOM={j1,j2,…,jN(αH(∈)-ΔR)}为具有基数N(αH(∈)-ΔR)的[1,2,…,N}的子集,使得中的所有值大于或等于 { F E R ( W N i ) | i &Element; { 1 , ... , N } - F W O M } 中的各个值。
在一些实施方式中,矩阵ANxN可以是极性码的生成矩阵。
在将单元电平改变为(s’1,s’2,…,s’N)以存储数据(b1,b2,…,bM)的以上所描述的重写之后,噪声可能出现在单元中并且将单元电平改变为(c1,c2,…,CM),其中ci是未必等于s’i的比特。错误校正方法取有噪声单元电平(c1,c2,…,CM)作为输入,并且输出存储数据(b1,b2,…,bM)。
图3是示出了根据一些实施方式的由用于对从WOM接收到的单元电平值进行解码以生成数据值的装置作为读取操作的一部分执行的方法的示例操作的流程图。该装置可以包括从主机装置(诸如计算机)接收数据并且根据下面所讨论的错误校正编码和解码方案存储数据的诸如闪速存储器装置的外部数据存储装置。例如,该装置可以包括用于处理单元电平值并且产生对应的数据值的目的的解码器。
图3的方法可以包括由块2002、块2004和/或块2006中的一个或更多个例示的一个或更多个操作、功能或动作。尽管按照顺序次序例示了块,但是还可以并行和/或按照与本文所描述的那些不同的次序执行这些块。并且,各种块可以基于特定实施方式被组合成较少块、划分成附加块和/或消除。可以提供表示其它操作、功能或动作的附加块。
图3所示的方法可以在块2002“接收单元电平值”中开始。块2002可以后面有块2004“生成数据值”,并且块2004可以后面有块2006“将数据值提供给数据目的地”。
在由流程图块2002表示的第一操作中,从WOM中检索要解码的单元电平值的集合。
在由块2004指示的下一个解码操作中,值的集合被解码以生成所对应的数据值。下面更详细地讨论用于解码的技术的示例。在块2006处,数据值被提供给诸如主机计算机的数据目的地。例如,可以通过发送器将数据值发送到数据目的地。
具体地,为了生成数据值,解码或错误校正功能可以使用二进制向量(u’1,…,1’N)并且有以下特性:
特性1:对于任何i∈FC,u′i被赋予已被分配给ui的固定比特值(其为系统所知)。
特性2:在满足特性1的所有值当中,分配给(u′1,…,u′N)的值使“噪声将码字从(s′1,…s′N)=(u′1,…,u′N)ANxN⊕(g1,…,gN)改变为(c1,…,cN)”的概率最大化。
可以通过错误概率特性确定该概率。因此,对于每个i∈FWOM–FC数据比特bj被恢复为u’i,其中bj被分配给用于最近重写的ui。
在一些实施方式中,为了生成数据值,该方法可以使用N行和N列(其值是固定的并且为系统所知)的二进制矩阵ANxN=(ai,j)NxN。例如,对于i=1,…,N和j=1,,N,ai,j∈{0,1}是矩阵ANxN的第i行和第j列中的比特。此外,该方法可以使用由FWOM表示的{1,2,…,N}的子集和由FC表示的{1,2,,N}的另一子集,使得:
FC包含至少一个元素。也就是说,|FC|大于或等于1。
在FWOM中而不是在FC中存在M个元素,即,|FWOM–FC|=M。
{1,2,…,N}中的至少一个元素既不在FWOM中也不在FC中。也就是说,|{1,2,…,N}-FWOM-FC|大于或等于1。
FC是FWOM的子集。也就是说,
此外,在一些实施方式中,单元中的错误可以具有以下分布:
假设p0和p1为0与1之间的两个实数参数。对于i=1,…,N,我们有 Pr { c i = 0 | s i &prime; = 0 } = &Delta; Pr { 0 | 0 } = 1 - p o , Pr { c i = 1 | s i &prime; = 0 } = &Delta; Pr { 1 | 0 } = p 0 , Pr { c i = 0 | s i &prime; = 1 } = &Delta; Pr { 0 | 1 } = p 1 Pr { c i = 1 | s i &prime; = 1 } = &Delta; P r { 1 | 1 } = 1 - p 1 .
在这样的实施方式中,二进制向量(u’1,…,1’N)可以具有以下特性:
特性1:对于任何i∈FC,u′i被赋予已被分配给ui的固定比特值(其为系统所知)。
特性2:在满足特性1的所有值当中,分配给(u′1,…,u′N)的值使的值最大化,其中ai表示向量(u′1,…,u′N)ANxN⊕(g1,…,gN)中的第i个比特。
在一些实施方式中,矩阵ANxN可以是极性码的生成矩阵,并且p是零与一之间的实数参数。该方法可以校正错误并且可以恢复数据值(b1,b2,…,bM)如下:
1:基于以下设定使用纠错极性码的解码算法来恢复(v′1,…,v′N)的值:
●极性码的生成矩阵是ANxN
●极性码经由公式(v′1,…,v′N)=(u1,…,uN)ANxN将用户数据(u1,…,uN)编码成码字(v′1,…,v′N)。
●对于i=1,…,N,码字比特v′i通过二进制对称通道以转移概率p发送;并且该二进制对称通道的输出是有噪声码字比特ci
●与二进制对称通道对应的极性码的冻结集合被包含在Fc中;并且当将用户数据编码成码字时,Fc中的用户数据比特被固定在已知值(诸如全0)。
●解码算法将(c1,…,cN)认为是有噪声码字,并且恢复原始码字(v′1,…,v′N)的正确值。
2:假设对于每个i∈FWOM-FC,-假设bj被分配给ui用于最近重写,-我们将数据比特bj恢复为u′i
在一些实施方式中,为了生成数据值,解码算法还可以包括对于i=1,…,N计算ui的值如下:
如果i∈FC,则假设ui为通过前一个重写分配给它的常数值。
如果i∈FC,假设ui取假定ui+1,…,uN中的每一个同样地很可能为0和1使Pr{ui|c1,…,cN,u1,…,ui-1}的值最大化的值。
在一些实施方式中,解码算法可以是进一步如下指定的列表解码算法:假设L为指示列表的大小的正整数参数,其中列表中的各个元素是值在计算ui的值之前到(u1,u2,…,ui-1)的分配。对于i=1,…,N,解码算法利用以下所列来计算ui的值:
如果i∈FC,则假设ui为通过前一个重写分配给它的常数值;
如果则对于列表中的各个元素(其是值到(u1,u2,…,ui-1)的分配),将值分配ui=0附加到它,并且还将值分配ui=0附加到它,以及还将值分配ui=1附加到它,从而将该元素转换成列表中的两个新元素。如果列表现在包含超过L个元素,则仅保持最可能在列表中的L个元素。假定ui+1,…,uN中的每一个同样地很可能为0和1可以将列表中的元素的可能性计算为Pr{c1,…,cN|u1,…,ui}。
然后可以将列表中的最可能的元素选取为(u1,…,uN)的恢复值。
在一些实施方式中,存储数据(b1,…,bM)它本身可以为纠错码C并且因此可以包含冗余。还可以指定1中的解码算法如下:
假设L为指示列表的大小的正整数参数,其中列表中的各个元素是值在计算ui的值之前到(u1,u2,…,ui-1)的分配。对于i=1,…,N,解码算法利用以下所列来计算ui的值:
如果i∈FC,则假设ui为通过前一个重写分配给它的常数值。
如果则对于列表中的各个元素(其是值到(u1,u2,…,ui-1)的分配),将值分配ui=0附加到它,并且还将值分配ui=0附加到它,以及还将值分配ui=1附加到它,从而将该元素转换成列表中的两个新元素。如果列表现在包含超过L个元素,则仅保持最可能在列表中的L个元素。假定ui+1,…,uN中的每一个同样地很可能为0和1可以将列表中的元素的可能性计算为Pr{c1,…cN|u1,…,ui}。
然后,对于列表中的各个元素,该方法检查应该等于(b1,…,bM)的它到(ui|i∈FWOM-FC)的值分配是否是纠错码C中的有效码字;并且如果不是,则从列表中去除它。然后,该方法可以将剩余列表中最可能的元素选取为(u1,…,uN)的恢复值。
在一些实施方式中,解码算法可以基于针对极性纠错码的置信传播解码算法。
在一些实施方式中,可以指定矩阵ANxN如下。假设m为正整数,并且假设N=2m。假设 G 2 = 1 0 1 1 , 并且假设为G2的第m个克罗内克积。
在一些实施方式中,恢复以上所讨论的值动作还可以包括以下所列:
1:假设y=(y1,y2,…,yN)=((c1⊕g1),(c2⊕g2),…,(cN⊕gN))为N个元素的向量,其中每个元素yi=ci⊕gi是一比特。
2:对于每个i∈FC,假设ui=0。
3:对于i=1,2,…,N计算 W N i ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 0 ) W N i ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 1 ) 的值如下:
取决于i的奇偶性,通过以下公式中的一个递归地估计的值(始于n=N/2):
W 2 n 2 i - 1 ( ( y 1 , y 2 , ... , y 2 n ) , ( u 1 , u 2 , ... , u 2 i - 2 ) | u 2 i - 1 )
W n i ( ( y n + 1 , y n + 2 , ... , y 2 n ) , ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i ) , W 2 i 2 n ( ( y 1 , y 2 ... , y n ) , ( u 1 , u 2 , ... , u 2 i - 1 ) | u 2 i ) = 1 2 W n i ( ( y 1 , y 2 , ... , y n ) , ( u 1 , u 3 , u 5 , ... , u 2 i - 3 ) &CirclePlus; ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i - 1 &CirclePlus; u 2 i ) - - - ( 6 )
W n i ( ( y n + 1 , y n + 2 , ... , y 2 n ) , ( u 2 , u 4 , u 6 ... , u 2 i - 2 ) | u 2 i )
其中基本情况W1 1((0),(.)|0)=1-p
W1 1((1),(.)|0)=p
W1 1((0),(.)|1)=p(7)
W1 1((1),(.)|1)=1-p
其中(.)表示空向量。两个二进制向量之间的操作符⊕表示按元素异或计算。两个比特之间的操作符⊕表示二进制异或计算。
4:对于各个i∈FWOM-FC,如果 W N i ( ( y 1 , y 2 , ... , y N ) , ( u 1 , u 2 , ... , u i - 1 ) | u i = 0 ) &GreaterEqual; w N i ( ( y 1 , y 2 , ... , y N ) , ( u 1 , u 2 , ... , u i - 1 ) | u i = 1 ) , 则假设ui=0;否则,假设ui=1。
5:假设{ui|i∈FWOM-FC}为数据(b1,...,bM)的恢复值,其中从{ui|i∈FWOM-FC}中的比特到(b1,...,bM)中的比特的映射是如前一个重写操作中指定的。
在一些实施方式中,该方法可以为进一步指定如下的列表解码算法:
假设L为指示列表的大小的正整数参数,其中列表中的各个元素是值在计算ui的值之前到(u1,u2,…,ui-1)的分配。另外,该方法可以包括下列的:
1:假设y=(y1y2,...,yn)=((c1⊕g1),(c2⊕g2),...(cN⊕gN))为N个元素的向量,其中每个元素yi=ci⊕gi是一比特。
2:对于每个i∈FC,假设ui=0。
3:对于i=1,2,…,N计算 W N i ( y , W N i ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 1 ) 的值如下:
●取决于i的奇偶性,通过以下公式中的一个递归地估计的值(始于n=N/2):
W 2 n 2 i - 1 ( ( y 1 , y 2 , &CenterDot; &CenterDot; &CenterDot; , y 2 n ) , ( u 1 , u 2 , ... , u 2 i - 2 | u 2 i - 1 )
W n i ( ( y n + 1 , y n + 2 , ... , y 2 n ) , ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i ) , W 2 n 2 i ( ( y 1 , y 2 , ... , y 2 n ) , ( u 1 , u 2 , ... , u 2 i - 1 ) | u 2 i ) = 1 2 W n i ( ( y 1 , y 2 , ... , y n ) , ( u 1 , u 3 , u 5 , ... , u 2 i - 3 ) &CirclePlus; ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i - 1 &CirclePlus; u 2 i )
W n i ( ( y n + 1 , y n + 2 , ... , y 2 n ) , ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i ) - - - ( 9 )
其中基本情况
W1 1((0),(.)|0)=1-p
W1 1((1),(.)|0)=p
W1 1((0),(.)|1)=p(10)
W11((1),(.)|1)=1-p
其中(.)表示空向量。两个二进制向量之间的操作符⊕表示按元素异或计算。两个比特之间的操作符⊕表示二进制异或计算。
4:对于i=1,2,...,N,进行:
●如果i∈FC,假设ui=0。
●如果则对于列表中的各个元素(其是值到(u1,u2,...,ui-1)的分配),将它附加到值分配ui=0,并且还将它附加到值分配ui=1,从而将该元素转换成列表中的两个新元素。如果列表现在包含超过L个元素,则仅保持最可能在列表中的L个元素。可以将列表中的元素的可能性计算为 W N i ( ( y 1 , ... , y N ) , ( u 1 , u i - 1 ) | u i ) .
5:将列表中最可能的元素选取为(u1,...,uN)的恢复值。这里可以将列表中的元素的可能性计算为然后假设{u1|i∈FWOM-FC}为数据(b1,...,bM)的恢复值,其中从(b1,...,bM)中的比特到(b1,...,bM)中的比特的映射是如前一个重写操作中指定的。
在一些实施方式中,存储数据(b1,…,bM)它本身可以为纠错码C并且因此可以包含冗余,并且方法可以包括:
假设L为指示列表的大小的正整数参数,其中列表中的各个元素是值在计算ui的值之前到(u1,u2,…,ui-1)的分配。方法还包括下列的:
1:假设y=(y1y2,...,yn)=((c1⊕g1),(c2⊕g2),...,(cN⊕gN))为N个元素的向量,其中每个元素yi=ci⊕gi是一比特。
2:对于每个i∈FC,假设ui=0。
3:对于i=1,2,…,N计算 W N i ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 0 ) W N i ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 1 ) 的值如下:
●取决于i的奇偶性,通过以下公式中的一个递归地估计的值(始于n=N/2):
W 2 n 2 i - 1 ( ( y 1 , y 2 , ... , y 2 n ) , ( u 1 , u 2 , ... , u 2 i - 1 | u 2 i - 1 )
W n i ( ( y n + 1 , y n + 2 , ... , y 2 n ) , ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i ) , W 2 n 2 i ( ( y 1 , y 2 , ... , y 2 n ) , ( u 1 , u 2 , ... , u 2 i - 1 ) | u 2 i ) = 1 2 W n i ( ( y 1 , y 2 , ... , y n ) , ( u 1 , u 3 , u 5 , ... , u 2 i - 3 ) &CirclePlus; ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i - 1 &CirclePlus; u 2 i )
W n i ( ( y n + 1 , y n + 2 , ... , y 2 n ) , ( u 2 , u 4 , u 6 , ... , u 2 i - 2 ) | u 2 i ) - - - ( 12 )
其中基本情况
W1 1((0),(.)|0)=1-p
W1 1((1),(.)|0)=p
W1 1((0),(.)|1)=p(13)
W1 1((1),(.)|1)=1-p
其中(.)表示空向量。两个二进制向量之间的操作符⊕表示按元素异或计算。两个比特之间的操作符⊕表示二进制异或计算。
4:对于i=1,2,...,N,进行:
●如果i∈FC,则假设ui=0。
●如果则对于列表中的各个元素(其是值到(u1,u2,...,ui-1)的分配),将它附加到值分配ui=0,并且还将它附加到值分配ui=1,从而将该元素转换成列表中的两个新元素。如果列表现在包含超过L个元素,则仅保持最可能在列表中的L个元素。可以将列表中的元素的可能性计算为 W N i ( ( y 1 , ... , y N ) , ( u 1 , ... , u i - 1 ) | u i ) .
5:将列表中最可能的元素选取为(u1,...,uN)的恢复值。这里可以将列表中的元素的可能性计算为然后假设{u1|i∈FWOM-FC}为数据(b1,...,bM)的恢复值,其中从{u1|i∈FWOM-FC}中的比特到(b1,...,bM)中的比特的映射是如前一个重写操作中指定的。
在一些实施方式中,可以确定FC如下:
假设目标块误码率为B(0与1之间的非负实数参数)。假设(j1,j2,…,jN)为{1,2,…,N}的置换,使得比特uj1的解码错误概率最大,比特uj2的解码错误概率次最大,依次类推,并且比特ujN的解码错误概率最小。假设FC的大小|FC|被选取为最小整数,使得比特的解码错误概率的求和不大于B。假设FC={j1,j2,…j|FC|}。
在一些实施方式中,在另选的实施方式中,FC不是FWOM的子集。也就是说,FC-FWOM不为空。
在一些实施方式中,使用对|FC–FWOM|个比特进行编码的长度Nadditional的纠错码来将以上所描述的重写或编码方法修改为包括将比特{ui|i∈FC-FWOM}的值包括在Nadditional个附加单元中。(那些附加单元对于重写来说是不相交的)。
在一些实施方式中,以上所描述的错误校正或解码方法被修改为包括通过对存储在Nadditional个附加单元中的纠错码进行解码来恢复{ui|i∈FC-FWOM}中的比特的值。另外,以上所描述的错误校正或解码方法可以是这样的,即{ui|i∈FC-FWOM}中的比特的值被固定为上述恢复值。
在一些实施方式中,对于j=1,2,…,t,FC,j表示用于第j个重写的集合FC,FWOMj表示用于第j个重写的集合FWOM,并且Nadditional个附加单元被用于支持t次重写和错误校正过程的码。在这样的实施方式中,对于j=1,…,t,M=|FC,j–FWOMj|个比特被存储在第j个重写中。所述码可以是本文所描述的任何码。
在一些实施方式中,可以修改以上所讨论的编码的方法,使得对于j=1,2,…,t并且对于第j个重写,Nadditional个附加单元中的比特{ui|i∈FC,j-FWOM,j}的值使用以上针对Nadditional个附加单元指定的码来存储。
在一些实施方式中,对于j=1,…,t,M=|FC,j–FWOMj|个比特被存储在第j个重写中,并且可以修改以上所讨论的解码的方法,使得通过对存储在Nadditional个附加单元中的重写和错误校正码进行解码恢复了{ui|i∈FC,j-FWOM,j}中的比特的值。另外,可以修改以上所讨论的解码的方法,使得{ui|i∈FC,j-FWOM,j}中的比特的值被固定为上述恢复值。
在一些实施方式中,WOM单元是二进制的。在另选或附加的实施方式中,每个单元有q个电平:电平0、电平1、...、和电平q-1。并且异或操作被统一为模q求和。
在这样的实施方式中,用于重写和错误校正或编码的方法可以在以下逐级方法中使用这些单元:
这些方法可以首先使用电平0和电平1并且对于二进制单元应用先前描述的特征。
这些方法然后可以使用电平1和电平2(如同它们为电平0和电平1一样)并且对于二进制单元应用先前描述的特征。
这些方法然后可以使用电平2和电平3(如同它们为电平0和电平1一样)并且对于二进制单元应用先前描述的特征。
上述过程可以继续,直到最后为止,这些方法可以使用电平q-2和电平q–1(如同它们为电平0和电平1一样)并且对于二进制单元应用先前描述的特征。
在一些实施方式中,可以修改用于重写和错误校正或编码的方法,使得各个ui、si、gi、vi、s’i或v’i从集合{0,1,…,q-1}中取它的值,并且可以将异或操作统一为模q求和。
如参照图4和图5所讨论的示例。
图4例示了编码器的实施方式。假设码具有N=8个单元。假设ANxN=A8x8矩阵41为:
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
考虑重写(编码)操作和后续错误校正(解码)操作。对于重写,假设抖动为(g1,…,gN)=(g1,…,g8)=(1,0,1,0,1,0,0,1)。假设a=0:87。假设e=0:29。假设FWOM={1,2,4,5,6}。假设FC={2,6}。假设M=|FWOM–FC|=|{1,4,5}|=3。并且假设要存储的数据为(b1,b2,…,bM)=(b1,b2,b3)=(1,0,1)。假定在这个重写之前的单元电平是(s1,…,sN)=(s1,…,sN)=(0,0,1,0,0,0,0,0)。结果,(v1,…,vN)=(v1,…,v8)=(s1⊕g1,…,s8⊕g8)=(1,0,0,0,1,0,0,1)。
考虑(v1,…,v8)=(u1,…,u8)A8x8的重写并且在图4中示出了WOM通道42的转移概率。重写的方法计算(u1,…,u8)=(1,0,0,0,1,0,0,0)(注意u1=b1=1,u4=b2=0,u5=b3=1,并且u2=u6=0);因此(v’1,…,v’8)=(u1,…,u8)A8x8=(0,0,0,0,1,0,0,0)并且(s’1,…,s’8)=(v’1⊕g1,…,v’8⊕g8)=(1,0,1,0,0,0,0,1)。结果,单元被编程为电平(s’1,…,s’8)=(1,0,1,0,0,0,0,1)。
为了写入数据(b1,b2,...,bM),我们的方法有以下输入:(1)当前单元电平(s1,s2,...,sN),以及(2)要存储的新数据(b1,b2,...,bM)。它然后计算输出(s′1,s′2,…,s′N),并且将单元编程为那些新电平。这里我们的约束是:
1)如之前提到的,对于i=1,2,…,N,我们有约束s′i≥si
2)新单元电平(s′1,s′2,…,s′N)经由由我们的方法指定的映射来表示新数据(b1,b2,...,bM)。
接下来,考虑错误校正(解码)。图5例示了解码器的实施方式。噪声通道52各自是具有错误概率p的二进制对称通道。假定在上述重写之后,噪声将单元电平从(s’1,…,s’8)=(1,0,1,0,0,0,0,1)改变为(c1,…,c8)=(0,1,1,0,0,0,0,1)。错误校正的方法使用矩阵51来将(u1,…,u8)的值恢复为(1,0,0,0,1,0,0,0)。因此存储数据被正确地恢复为(b1,b2,b3)=(u1,u4,u5)=(1,0,1)。
本描述的剩余部分被组织如下。部分II包括基本模型和表示法。部分III包括码构造的实施方式。部分IV包括码的实施方式。部分V包括码扩展的实施方式。部分VI包括对由码实施方式实现的实际和速率的分析。部分VIII包括另外的示例实施方式。部分VIII包括结束语。
II.基本模型
存储器可以具有被用于存储数据的N(=2m)个WOM单元,其中各个单元有两个电平:0和1。单元能够仅从电平0改变为电平1,但是反之不亦然。
可以将t个消息M1,M2,…,Mt的序列写入到WOM单元中,并且当写入了Mi时,不必记忆先前消息的值。(假设表示消息中的比特的数量,并且假设)为了简单,假设单元在第一写入发生之前全部在电平0下。
在对单元进行编程之后,噪声可能出现在单元电平中。噪声可以被认为是具有错误概率p的BSC,由BSC(p)表示。这些错误可以是硬错误,即,它们物理上将单元电平从0改变为1或从1改变为0。对于闪速存储器,这样的错误例如可能是通过读取/写入中断、干扰和电荷泄漏引起的,并且可能是相当普通的。
A.用于重写的模型
用于重写和错误校正的码可以包括t个编码函数E1,E2,…,Et和解码函数D1,D2,…,Dt。对于i=1,2,…,N和j=1,2,…,t,假设si,j∈{0,1和s′i,j∈{0,1}分别表示在第i个单元正好在第j次写入之前和之后的电平。如以上所讨论的,s′i,j≥si,j。假设ci,j∈{0,1}表示当消息的读取可能发生时第i个单元在第j次写入之后和在第(j+1)次写入之前的任何时候的电平。错误ci,j⊕s′i,j∈{0,1}是由噪声通道BSC(p)引起的第i个单元中的错误。(这里⊕是XOR函数。)对于j=1,2,…,t,解码函数考虑到初始单元状态sj和要存储的消息Mj将单元电平从sj=(s1,j,s2,j,…,sN,j)改变为s′j=(s′1,j,s′2,j,…,s′N,j)。(即,Ej(sj,Mj)=s′j。)当Mj的读取发生时,解码函数考虑到有噪声单元状态cj=(c1,j,c2,j,…,cN,j)来恢复消息。(即,Dj(cj)=Mj。)
对于j=1,…,t,被称作第j次写入的速率。被称作码的和速率。当不存在噪声时,WOM码的最大和速率已知为log2(t+1),然而,对于有噪声WOM,最大和速率仍然基本上未知。
B.极性码
极性码的短指令由于它与本文所讨论的码构造实施方式的关联而遵循。极性码是由Arkan提出的线性块纠错码。参见例如E.Arkan,“Channelpolarization:Amethodforconstructingcapacity-achievingcodesforsymmetricbinary-inputmemorylesschannels,”IEEETrans.Inf.Theor.,第55卷,第7期,第3051–3073期,2009年7月。它是具有可证明地实现对称二进制输入离散无记忆通道(B-DMC)的通道容量的显式构造的第一已知码。极性码的编码器通过线性变换将N个输入比特u=(u1,u2,…,uN)变换为N个码字比特x=(x1,x2,…,xN)。(例如其中 G 2 = 1 0 1 1 , 并且是G2的第m个克罗内克积。)N个码字比特(x1,x2,…,xN)通过B-DMC的N个独立拷贝来发送。对于解码,能够分别针对u1,u2,…,uN综合处理N个变换的二进制输入通道这些通道被极化使得对于大N,几乎为1的索引i的小部分接近B-DMC的容量,同时针对剩余索引i的的值几乎为0。索引的后者集合被称作冻结集合。对于错误校正,在冻结集合中具有i的ui′取固定值,并且其它ui′被用作信息比特。连续消除(SC)解码算法随着N增加而实现逐渐缩小的块错误概率。
极性码还能够被用于有各种应用的最优无损源编码。参见例如S.Korada和R.Urbanke,“Polarcodesareoptimalforlossysourcecoding,”IEEETrans.Inf.Theor.,第56卷,第4期,第1751–1768页,2010年4月。具体地,该构思可以被用于建立实现WOM码的容量。参见例如IEEE信息理论国际研讨会学报2012年7月第1972–1976月中的D.Burshtein和A.Strugatski,“Polarwriteoncememorycodes”。
所呈现的码分析使用基于冻结集合定义的升级通道和降级通道的概念。如由Tal和Vardy所教导的,如果能够通过将W与附加通道Q:Y→Z连接起来构造W′的等效通道则通道W′:X→Z被称作“相对于通道W:X→Y降级了”,其中Q的输入与W的输出链接。参见例如I.Tal和A.Vardy,“Howtoconstructpolarcodes,”CoRR,vol.abs/1105.6164,2011。即,
W &prime; ( z | x ) = &Sigma; y &Element; Y W ( y | x ) Q ( z | y )
它可以被表示为W′≤W。等效地,通道W被称作“相对于W′的升级”,由W≥W′表示。
III.码构造
在这个部分中,描述了将重写与错误校正组合的码构造的实施方式。
A.具有嵌套结构的基本码构造
1)总则:首先,考虑单个重写(即,t次写入中的一个)。假设s=(s1,s2,…sN)∈{0,1}N和s′=(s′1,s′2,…,s′N)∈{0,1}N分别表示正好在这个重写之前和之后的单元电平。假设g=(g1,g2,…,gn)为具有均匀地分布的独立且同样分布的比特的伪随机比特序列。g的值为编码器和解码器这二者所知,并且g被称作抖动。
对于i=1,2,…,N,假设vi=si⊕gi∈{0,1}和v′i=s′i⊕gi∈{0,1}分别为第i个单元在重写之前和之后的值。对于这个重写建立了WOM通道,诸如图6所示,由表示WOM(α,ε)。
这里α∈[0,1]和是给定参数,其中表示单元在重写之前在电平0下的小部分,并且表示通过重写从电平0改变为电平1的单元的小部分。假设为与这个通道WOM(α,ε)对应的极性码的冻结集合。已知参见例如I.Tal和A.Vardy,“Howtoconstructpolarcodes,”CoRR,vol.abs/1105.6164,2011。
对于噪声通道BSC(p),假设为与通道BSC(p)对应的极性码的冻结集合。已知 lim N &RightArrow; &infin; | F B S C ( p ) | | N | = H ( p ) .
在这个子部分中,这种情况如图7(a)所例示。在这种情况下,码有好的嵌套结构:对于任何消息表示消息M的单元值的集合是针对噪声通道BSC(p)的线性纠错码(ECC)的线性子空间,并且形成ECC的分区。稍后可以将码扩展到更一般情况。
2)编码器:假设为用于这个重写的编码器。即,考虑到当前单元状态s和要写入的消息编码器被配置为查找表示M并且高于s(即,单元电平仅增加)的新单元状态s′=E(s,M)。
算法1中的编码函数遵循。这里y和u是长度N的两个向量,是冻结集合FWOM(α,ε)而不是FBSC(p)中的所有比特ui是FBSC(p)中的所有比特ui,并且 G 2 = 1 0 1 1 的第m个克罗内克积。
算法1编码函数s′=E(s,M)
y←((s1,v1),(s2,v2),…(sN,vN))。
假设 u F W O M ( &alpha; , &epsiv; ) - F B S C ( p ) &LeftArrow; M .
假设 u F B S C ( p ) &LeftArrow; ( 0 , 0 , ... , 0 ) .
fori从1到Ndo
i f i &NotElement; F W O M ( &alpha; , &epsiv; ) t h e n L N ( i ) ( y , ( u 1 , u 2 , ... , u i - 1 ) ) &LeftArrow; W N ( i ) ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 0 ) W N ( i ) ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 1 ) .
(注释:这里能够使用E.Arikan,“Channelpolarization:Amethodforconstructingcapacity-achievingcodesforsymmetricbinary-inputmemorylesschannels,”IEEETrans.Inf.Theor.,第55卷,第7期,第3051–3073页,2009年7月中的公式(22)、(23)递归地计算 W N ( i ) ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 0 ) W N ( i ) ( y , ( u 1 , u 2 , ... , u i - 1 ) | u i = 1 ) ) .
假设
假设 v &prime; &LeftArrow; uG 2 &CircleTimes; m .
假设s′←v′⊕g。
3)解码器:现在跟随有解码器假设c=(c1,c2,…,cN)∈{0,1}N为在写入消息之后的有噪声单元电平。考虑到c,解码器应用将消息恢复为D(c)=M。
解码器可以被配置为按照与极性纠错码相同的方式操作。一个实施方式的解码操作被呈现为算法2。
算法2解码函数
将c⊕g视为作为二进制对称通道BSC(p)的输出的有噪声码字。
使用极性纠错码的解码算法对c⊕g进行解码,其中冻结集合FBSC(p)中的比特被设定为0。假设为经恢复的码字。
假设其表示其索引在集合FWOM(α,ε)-FBSC(p)中的向量的元素。
如从极性纠错码清楚的,编码算法和解码算法可以具有时间复杂性
4)用于t次写入的嵌套码:在上文中,已经描述了编码器和解码器针对一个重写的操作。这些操作能够应用于t次写入纠错WOM码如下。对于j=1,2,…,t,对于第j次写入,分别用αj-1、εj、sj、s′j、vj、v′j、MjEj、Dj、cj替换α、ε、s、s′、v、v′、M、E、D、c、并且应用上述编码器和解码器。
注意当N→∞时,能够使用ε1、ε2、…、εt-1来计算α1、α2、…、αt-1的值:对于BSC(p),αj=αj-1(1-εj)(1-p)+(1-αj-1(1-εj))p。改进码可以包括为ε1、ε1、…、εt选取使和速率最大化或以其它方式增加和速率的其它值。
B.扩展码构造
迄今已讨论了针对情况的码。对于相对较小的p和(α0,ε1)、(α1,ε2)、…、(αt-1,εt)的典型值,上述条件成立。现在考虑FBSC(p)未必为FWOM(α,ε)的子集的一般情况。
可以修订算法1中的编码器如下。然后使用Nadditional,j个单元(针对第j次写入)在中存储比特。(在图7(b)中例示了这个实施方式。)在本公开中,为了简单,假定中的比特仅仅使用为噪声通道BSC(p)设计的纠错码来存储。(对于更高速率,能够使用纠错WOM码(诸如以上所呈现的纠错WOM码)来存储比特。)因此,并且和速率成为
可以修订算法2中的解码器如下。首先对于Nadditional,j个附加单元使用ECC的解码算法来恢复中的比特。然后执行算法2,除了FBSC(p)-FWOM(α,ε)中的比特作为上述恢复值而不是0为解码器所知。
IV.码分析
在这个部分中,示出了上述码构造的正确性,并且分析了其性能。
A.码的正确性
首先解决码的正确性。算法1中的编码器工作类似于IEEE信息理论国际研讨会学报2012年7月第1972–1976页中的D.Burshtein和A.Strugatski,“Polarwriteoncememorycodes”中的WOM码编码器,除了FWOM(α,ε)中的比特未全部被消息M占据,替代地,其子集FWOM(α,ε)∩FBSC(p)中的比特被设定为常数值:全0。因此,编码器按照与IEEE信息理论国际研讨会学报2012年7月第1972–1976页中的D.Burshtein和A.Strugatski,“Polarwriteoncememorycodes”中的码相同的方式成功地重写数据。接下来,算法2中的解码器按照与标准极性ECC相同的方式从噪声中恢复单元值。然后,从其中提取存储消息M。
要注意的一点是,尽管物理噪声可能对单元电平s=(s1,s2,…,sN)起作用,但是在构造中使用的纠错码实际上用于单元值v=(v1,v2,…,vn)=(s1⊕g1,s2⊕g2,…,sN⊕gN)。然而,伪随机抖动g有独立且均匀地分布的元素,并且所以当s的噪声通道是BSC(p)时,v的对应噪声通道也是BSC(p)。
B.FWOM(α,ε)∩FBSC(p)的大小
可以看到如果则码有嵌套结构。一般而言,观察到交集FWOM(α,ε)FBSC(p)可以有多大。为了呈现的方便,如在部分III-A中一样考虑一次重写,其中参数是α和ε(而不是αj-1、εj)。
引理1.当H(p)≤αH(ε)时, lim N &RightArrow; &infin; | F B S C ( p ) | N &le; lim N &RightArrow; &infin; | F W O M ( &alpha; , &epsiv; ) | N .
证明: lim N &RightArrow; &infin; | F B S C ( p ) | N = H ( p ) &le; &alpha; H ( &epsiv; ) = lim N &RightArrow; &infin; | F W O M ( &alpha; , &epsiv; ) | N .
引理2.当p≤αε时,
F W O M ( &alpha; , p &alpha; ) &SubsetEqual; ( F B S C ( p ) &cap; F W O M ( &alpha; , &epsiv; ) ) ,
并且
( F W O M ( &alpha; , &epsiv; ) &cup; F B S C ( p ) ) &SubsetEqual; F B S C ( &alpha; &epsiv; ) .
证明:(1)在图8中,通过设定注意因此 F W O M ( &alpha; , p &alpha; ) &SubsetEqual; F B S C ( p ) .
(2)在图9中,可以看到 W O M ( &alpha; , &epsiv; ) &le; W O M ( &alpha; , p &alpha; ) . 因此, F W O M ( &alpha; , p &alpha; ) &SubsetEqual; F W O M ( &alpha; , &epsiv; ) .
(3)在图8中,通过设定ε*=ε,看到了BSC(αε)≤WOM(α,ε)。因此 F W O M ( &alpha; , &epsiv; ) &SubsetEqual; F B S C ( &alpha; &epsiv; ) .
(4)因为p≤αε,所以清楚地BSC(αε)≤BSC(p)。因此
在图10中例示了引理2的意义。
引理3.当p≤αε时, lim N &RightArrow; &infin; | F W O M ( &alpha; , &epsiv; ) &cap; F B S C ( p ) | N &GreaterEqual; lim N &RightArrow; &infin; | F W O M ( &alpha; , p &alpha; ) | N = &alpha; H ( p &alpha; ) .
引理4.当p≤αε时,
lim N &RightArrow; &infin; | F W O M ( &alpha; , &epsiv; ) &cap; F B S C ( p ) | N &GreaterEqual; lim N &RightArrow; &infin; | F W O M ( &alpha; , &epsiv; ) | + | F B S C ( p ) | - | F B S C ( &alpha; &epsiv; ) | N = &alpha; H ( &epsiv; ) + H ( p ) - H ( &alpha; &epsiv; )
证明:|FWOM(α,ε)∩FBSC(p)|=|FWOM(α,ε)|+|FBSC(p)|-|FWOM(α,ε)∪FBSC(p)|≥|FWOM(α,ε)|+|FBSC(p)|-|FBSC(αε)|(通过引理2)。
C.到和速率的下界
一般码构造的和速率被分析为N→∞,假设对于j=1,2,…,t,在第j次写入中写入的比特的数量是
并且用了存储中的比特的附加单元的数量是
N a d d i t i o n a l , j = N H ( p ) ( 1 - x j ) 1 - H ( p )
因此,和速率是 R s u m = &Delta; &Sigma; j = 1 t M j N + &Sigma; j = 1 t N a d d i t i o n a l , j
= &Sigma; j = 1 t &alpha; j - 1 H ( &epsiv; j ) - H ( p ) &Sigma; j = 1 t x j 1 + H ( p ) 1 - H ( p ) &Sigma; j = 1 t ( 1 - x j ) = ( 1 - H ( p ) ) &Sigma; j = 1 t &alpha; j - 1 H ( &epsiv; j ) - H ( p ) ( 1 - H ( p ) ) &Sigma; j = 1 t x j ( 1 - H ( p ) + H ( p ) t ) - H ( p ) &Sigma; j = 1 t x j = ( 1 - H ( p ) ) &CenterDot; 1 H ( p ) &Sigma; j = 1 t &alpha; j - 1 H ( &epsiv; j ) - &Sigma; j = 1 t x j 1 - H ( p ) + H ( p ) t H ( p ) - &Sigma; j = 1 t x j . .
假设 &gamma; j = &Delta; max { &alpha; j - 1 H ( p &alpha; j - 1 ) H ( p ) , &alpha; j - 1 H ( &epsiv; j ) + H ( p ) - H ( &alpha; j - 1 &epsiv; j ) H ( p ) }
引理5.假设0<p≤αj-1εj。然后xj≥γj
证明:通过引理3,
x j = | F W O M ( &alpha; j - 1 , &epsiv; j ) &cap; F B S C ( p ) | | F B S C ( p ) | &GreaterEqual; | F W O M ( &alpha; j - 1 , p &alpha; j - 1 ) | | F B S C ( p ) | = &alpha; j - 1 H ( p &alpha; j - 1 ) H ( p ) .
ByLemma4,wealsohave
x j = | F W O M ( &alpha; j - 1 , &epsiv; j ) &cap; F B S C ( p ) | | F B S C ( p ) | &GreaterEqual; | F W O M ( &alpha; j - 1 , &epsiv; j ) | + | F B S C ( p ) | - | F B S C ( &alpha; j - 1 , &epsiv; j ) | | F B S C ( p ) | = &alpha; j - 1 H ( &epsiv; j ) + H ( p ) - H ( &alpha; j - 1 , &epsiv; j ) H ( p ) .
定理6假设对于j=1,2,…,t0<p≤αj-1εj。如果则和速率Rsum通过下式有下界限
( 1 - H ( p ) ) &Sigma; j = 1 t ( &alpha; j - 1 H ( &epsiv; j ) - H ( p ) &gamma; j ) 1 - H ( p ) + H ( p ) t - H ( p ) &Sigma; j = 1 t &gamma; j .
如果对于j=1,2,…,t并且H(p)≤αj-1H(εj),则Rsum通过下式有下界
( &Sigma; j = 1 t a j - 1 H ( &epsiv; j ) ) - H ( p ) t .
证明:如果则当xj(j=1,2,…,t)取最小值时和速率被最小化,并且xj≥γj。否则,当xj取最大值1时和速率被最小化。
下界的一些数值结果在图11中被示出为和速率Rsum,其中针对p=0的曲线对于无噪声WOM码来说为最佳和速率。其它四条曲线是由定理6给出的分别在p=0.001、p=0.005、p=0.010和p=0.016情况下针对有噪声WOM的下界。注意,能够通过优化εi来进一步增加下界值。
V.扩展
现在描述更一般的噪声模型。为了简单,描述了擦除通道。但是能够将这些原理或其它特征扩展到其它噪声模型。假设噪声为具有由BEC(p)表示的擦除概率p的二进制擦除通道(BEC)。在重写之后,噪声可能出现在一些单元电平(电平0和电平1这二者)中并且可以将单元电平改变为擦除。擦除表示0与1之间的噪声单元电平。可以对擦除进行处理如下:在重写之前,所有已擦除单元电平被增加到1,并且然后如之前那样执行重写。
注意,尽管单元电平的噪声是BEC(p),但是当发生重写时,单元值v=s⊕g的等效噪声通道是因为所有已擦除单元电平已被推到电平1,并且抖动有均匀分布。因此,除p用替换之外,能够像之前那样按照相同方式执行码构造及其性能分析。
还能够通过使用q-ary极性码将码扩展到多级单元(MLC)。
VI.附加信息
在这个部分中,使用有限长度的极性码讨论了纠错WOM码的示例可实现速率。在下文中,假定噪声通道是BSC(p),并且针对为重写实现高和速率的参数ε1、ε2、…、εt执行搜索。还讨论了码何时能够具有嵌套结构时。这简化码构造。
A.查找满足的BSC
第一考虑事项是BSC(p)何时满足条件这导致特定嵌套码结构。假设N=8192。假设极性码是使用本文所描述的方法构造的。为了获得冻结集合,假设|FWOM(α,ε)|=N(αH(ε)-ΔR),其中ΔR=0.025是针对WOM通道的极性码考虑的速率损失,并且假设在目标块误码率10-5情况下选取FBSC(p)
在图12中示出了示例结果。四条曲线分别对应于α=0.4、0.6、0.8和1.0。x轴是ε,并且y轴是满足的p的最大值。清楚地,p的最大值随着α和ε这二者而增加并且有非无效值(即,p比得上或高于存储器中的典型错误概率)。
B.嵌套码的可实现和速率
可以找到具有嵌套结构的码的可实现和速率。因此,对于所有j=1,2,…,t条件可能满足。考虑到p,可以找到使和速率Rsum最大化或以其它方式增加和速率Rsum的ε1、ε2、…、εt
在图13中示出了针对t次写入纠错WOM码(对于t=2,3,4,5)的结果。(在一个示例中,假设N=8192,ΔR=0.025,并且目标块误码率为10-5。)x轴是p,并且y轴是在算法搜索中找到的最大和速率。因此,可实现和速率随着重写次数t而增加。
C.一般码的可实现和速率
现在描述当FBSC(p)未必为的子集时一般码的可实现和速率。当给出p时,一般码能够搜索比嵌套码情况更大的ε1、ε2、…、εt的解空间,并且因此实现更高的和速率。然而,对于相对较小的p(例如p<0.016)),被获得的速率的增益可能是相当小的。这指示嵌套码对于这个参数范围已经执行得很好。
参照图10讨论到和速率Rsum的下界。注意一个实施方式可能实际上高于在其它实施方式中找到的速率。这是因为下界是针对N→∞的,然而其它实施方式中的码迄今仍然可能是短的并且可以考虑速率损失ΔR。能够随着码长度增加并且随着由于由下界指示的结果而进一步改进了搜索算法而提供更好的速率。
VII.附加示例实施方式
图14是被构造/配置以便执行本文所讨论的方法和操作的数据装置的一个实施方式的例示。图14示出了由与主机装置1606进行通信的存储器控制器1604访问的存储器1602。存储器1602被用于存储根据本文所讨论的编码和解码方案表示的数据。存储器可以例如作为具有多级单元的闪速存储器被实现。存储器1602和存储器控制器1604一起至少部分地形成可以在主机装置外部或者可以与主机装置集成到单个组件或系统中的数据存储装置1608。例如,数据存储装置1608可以包括经由USB连接与主机计算机1606进行通信的闪速存储器装置(常常被称为“拇指驱动器”),或者数据存储装置可以包括为主机计算机系统存储数据的固态驱动器(SSD)。另选地,数据存储装置可以与适合的主机装置集成以包括具有采用如本文所讨论的编码和解码方案的实施方式的存储器的单个系统或组件,诸如智能电话、网络路由器、MP3播放器等。
存储器控制器1604在微控制器110的控制下操作,所述微控制器1610管理经由写入装置(诸如存储器接口1612)与存储器1602的通信并且管理经由主机接口1614与主机装置的通信。因此,存储器控制器监视从主机1606到存储器1602以及从存储器1602到主机1606的数据转移。存储器控制器1604还包括数据缓冲器116,其中可以暂时数据值以用于通过数据通道控制器1617在存储器1602与主机1606之间发送。存储器控制器还包括其中维持有用于ECC的数据的纠错码(ECC)块1618。例如,ECC块1618可以包括数据和程序代码以对于如本文所讨论的编码和解码方案的实施方式执行错误校正操作。例如在由AnxiaoJiang等人2008年11月20日提交的标题为“ErrorCorrectingCodesforRankModulation”的美国专利申请中描述了这些错误校正操作的一些实施方式,并且通过引用并入本文。ECC块1618可以包含用于要用于存储器1602的错误校正码的参数,诸如用于在接收到的符号与错误校正的符号之间转化的编程操作,或者ECC块可以包含码字或其它数据等的查找表。一个实施方式的存储器控制器1604可以执行用于对数据进行解码并且用于对数据进行编码的以上所描述的操作。
能够通过可以由数据存储装置1608的微控制器1610和关联组件执行的以上所讨论的操作来执行用于操作数据存储装置、用于从装置读取数据、用于对数据存储装置进行编程以及编码和解码的以上所描述的操作。
用于执行本文所描述的各种操作的诸如控制器1604和微控制器1610的处理组件可以在一些实施方式中以控制逻辑的形式用软件(或存储在非暂时性计算机可读存储介质并且可由一个或更多个处理器执行的其它计算机可读指令)硬件或这二者的组合加以实现,并且可以包括执行来自程序存储器或作为固件等的软件程序执行的处理器。主机装置1606可以包括计算机设备。计算机设备还可以执行在本文各种图中描绘或以上以其它方式描述的操作。
图15是例示了包括和本文连同从存储器读取数据和写入数据一起所讨论的编码与解码操作、错误校正操作、存储器单元等有关的元素的示例计算装置900的框图。在极基本配置901中,计算装置900通常包括一个或更多个处理器910和系统存储器920。存储器总线930能够被用于在处理器910与系统存储器920之间通信。
取决于所期望的配置,处理器910可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合。处理器910能够包括更多级缓存,诸如一级高速缓存器911和二级高速缓存器912、处理器核913以及寄存器914。处理器核913能够包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任何组合。存储器控制器915还能够与处理器910一起使用,或者在一些实施方式中存储器控制器915可以是处理器910的内部部分。
取决于所期望的配置,系统存储器920可以是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪速存储器等)或其任何组合。系统存储器920通常包括操作系统921、一个或更多个应用922和程序数据924。应用922包括被布置为例如对如下面所讨论的程序数据924进行编码和解码的编码和解码算法923。在一些实施方式中,应用922能够被布置为在操作系统921上利用程序数据924进行操作。这个描述的基本配置在图9中由虚线901内的那些组件例示。在一些实施方式中,图15所示的存储器或其它存储装置中的一个或更多个能够包括使用以上所描述的各种特征和操作来写入和从其读取的WOM。在一些实施方式中,应用922能够包括具有被存储在非暂时性(诸如硬件)计算机可读介质上并且可由一个或更多个处理器(诸如处理器910)执行来执行如本文所描述的WOM的联合重写和错误校正的计算机可读指令的一个或更多个算法923。一个实施方式的程序数据924可以包括各种数据925,诸如写入WOM或从WOM读取的数据、用于以上所描述的各种式/变量/向量/算法等的数据或其它数据。
计算装置900能够具有附加的特征或功能性,以及用于便于基本配置901与任何需要的装置和接口之间的通信的附加接口。例如,总线/接口控制器940能够被用于经由存储接口总线941便于基本配置901与一个或更多个数据存储装置950之间的根据本公开的通信。数据存储装置950可以为可移动存储装置951、非可移动存储装置952或其组合。可移动存储装置和非可移动存储装置的示例包括诸如柔性盘驱动器和硬盘驱动器(HDD)的磁盘装置、诸如紧致盘(CD)驱动器或数字通用盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)以及磁带驱动器等等。示例计算机存储媒体能够包括以任何方法或技术实现以用于存储信息的易失性和非易失性、可移动和非可移动媒体,所述信息诸如计算机可读指令、数据结构、程序模块或其它数据。
系统存储器920、可移动储存器951和非可移动储存器952全部是计算机存储媒体的示例。计算机存储媒体包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储部、磁盒、磁带、磁盘存储部或其它磁存储装置,或能够被用于存储所期望的信息并且能够被计算装置900访问的任何其它介质。任何这样的计算机存储媒体可以为装置900的一部分。
计算装置900还能够包括用于经由总线/接口控制器940便于从各种接口装置(例如,输出接口、外围接口和通信接口)到基本配置901的通信的接口总线942。示例输出装置960包括图形处理单元961和音频处理单元962,其能够被配置为经由一个或更多个AV端口963与诸如显示器或扬声器的各种外部装置进行通信。示例外围接口970包括串行接口控制器971或并行接口控制器972,其能够被配置为经由一个或更多个I/O端口973与诸如输入装置(例如,键盘、鼠标、笔、语音输入装置、触摸输入装置等)或其它外围装置(例如,打印机、扫描器等)的外部装置进行通信。示例通信装置980包括网络控制器981,其能够被布置为经由一个或更多个通信端口982通过网络通信来便于与一个或更多个其它计算装置990的通信。通信连接是通信媒体的一个示例。通信媒体通常可以通过计算机可读指令、数据结构、程序模块或其它数据具体实现在诸如载波或其它传输机制的已调制数据信号中,并且包括任何信息递送媒体。“已调制数据信号”可以是这样的信号,所述信号使其特性中的一个或更多个按照这样的方式设定或改变以便将信息编码在所述信号中。通过示例而非限制,通信媒体能够包括诸如有线网络或直接有线连接的有线媒体,以及诸如声学、射频(RF)、红外线(IR)的无线媒体和其它无线媒体。如本文所使用的术语计算机可读媒体能够包括存储媒体和通信媒体两者。
计算装置900能够被实现为小形状因素便携式(或移动)电子装置的一部分,所述电子装置诸如手机、个人数据助理(PDA)、个人媒体播放器装置、无线web观看装置、个人头戴式耳机装置、专用装置或包括上述功能中的任一个的混合装置。计算装置900还可以被实现为包括膝上型计算机配置和非膝上型计算机配置这二者的个人计算机。
能够如在图16中一样例示根据本文所讨论的错误校正编码方案对数据进行编码和解码的操作,图16示出了根据本文所描述的错误校正编码方案操作的存储器装置1302(诸如以上参照图14讨论的数据存储装置1608)中的数据流。在图16中,存储器装置1302包括用于将数据值编码成码字并且将码字解码成数据值的编码器和解码器1308。编码器和解码器1308对数据值进行编码并且将码字提供给源/目的地块1310,以及对来自源/目的地的码字进行解码并且提供对应的数据值。数据流的双向性质由标记为“数据值”和“码字”的双向箭头指示。编码器和解码器1308包括编码器和解码器1308用来接收并且提供数据值和信息值(码字)的接口。为了简洁起见,未在本文中提供这些接口的另外细节。虽然在图16中被表示为被标记为1308的单个块/单元,但是在其它实施方式中编码器和解码器能够包括分立且单独的块/单元。
信息值1306包括数据值和码字的物理表示。例如,信息值1306可以表示存储器单元的电荷电平,使得多个单元被配置为作为其中单元的电荷电平利用错误校正确定数据值的表示的虚拟单元。数据值被接收和编码以表示具有错误校正的数据值并且单元的电荷电平被相应调整,以及码字是根据单元电荷电平来确定的,根据所述单元电荷电平确定了对应的数据值。另选地,信息值1306可以表示发送信号的特征,诸如信号频率、大小或持续时间,使得单元或容器由信号特征定义并且表示具有错误校正的数据值。例如,频率随着时间的推移的改变能够确定具有错误校正的数据值。鉴于本文描述用于单元的物理表示的其它方案是可能的。
对于在单元电荷电平的情况下的信息值1306,源/目的地1310包括n个存储器单元提供其电荷电平定义具有错误校正的数据值的n个单元值的存储器单元。为了存储码字,存储器单元接收编码码字并且包括目的地,并且为了读取码字,存储器单元提供用于解码的码字并且包括源。在数据传输的情况下,源/目的地1310可以包括写入装置,诸如处理具有定义单元或容器的诸如频率、大小或持续时间的信号特征的信号使得信号特征确定具有错误校正的数据值的发送器/接收器。例如,包括信号频率、大小或持续时间的信号分量可以由发送器控制和调制,使得具有错误校正的数据值被表示。当源/目的地1310从控制器1304接收到码字时,源/目的地包括装置1302的用于发送编码信号的发送器。当源/目的地从接收到的信号向控制器1304提供码字时,源/目的地包括装置的用于接收编码信号的接收器。鉴于本文描述,能够适当地对已发送信号的信号分量进行调制以定义具有错误校正的数据值。
本文所讨论的各种方面能够以控制逻辑的形式用软件或硬件或这二者的组合加以实现。控制逻辑可以作为适配为控制信息处理装置执行本文所讨论的操作的多个指令被存储在信息存储介质中。基于本文提供的本公开和教导,用于实现所讨论的特征的其它方式和/或方法是可能的。
能够在用于对数据进行编码和解码以用于传送和存储的各种系统中实现本文所描述的方法和操作。例如,码字可以根据存储器写入方案通过信息通道从源接收并且被解码成它们对应的数据值并且提供给目的地,诸如存储器或处理器,并且用于存储或传输的数据值是通过信息通道从源接收的并且是根据存储器写入方法来编码的。
还能够将编码方案扩展到多级单元(MLC)。例如,使用以上所描述的编码方案的方面,能够逐级写入多级存储器。另选地或另外,以上所描述的编码方案的方面可以被用于使用多级极性码来写入多级单元存储器。
VIII.结束语
本申请呈现了针对纠错WOM码的码构造。本文所描述的实施方式支持任何数量的重写并且能够校正大量的错误。在一些实施方式中,构造可以基于极性编码以对于重写和错误校正这二者实现改进的性能。
本公开将在旨在为各种方面的例示的本申请中所描述的特定实施方式方面不受限制。如对于本领域技术人员而言将显而易见的,在不脱离本公开的精神和范围的情况下能够做出许多修改和变化。除本文所枚举的那些之外的在本公开的范围内的功能上等效的方法和设备从前面的描述对于本领域技术人员而言将是显而易见的。这样的修改和变化旨在落入所附权利要求的范围内。本公开将仅由所附权利要求的项以及这样的权利要求享有的等同物的完全范围来限制。应当理解,本公开不限于当然能够变化的特定方法、系统或装置。还应当理解,本文所使用的术语是仅用于描述特定实施方式的目的的,并且不旨在为限制性的。
相对于基本上任何复数和/或单数项在本文中的使用,像适于上下文和/或应用那样本领域技术人员能够从复数转换到单数和/或从单数转换到复数。为了清楚起见,可以在本文中明确地阐述各种单数/复数置换。
本领域技术人员应当理解,一般而言,本文以及尤其在所附权利要求(例如,所附权利要求的正文)中所使用的术语通常意图为“开放式”术语(例如,术语“包括有”应该被解释为“包括有但不限于”,术语“具有”应该被解释为“至少具有”,术语“包括”应该被解释为“包括但不限于”等)。本领域技术人员还应当理解,如果特定数量的引入的权利要求引用是意图的,则这样的意图将被显式地记载在权利要求中,并且在缺少这样的引用情况下不存在这样的意图。例如,作为对理解的帮助,以下所附权利要求可以包含介绍性短语“至少一个”和“一个或更多个”的使用以引入权利要求引用。然而,即使当同一权利要求包括介绍性短语“一个或更多个”或“至少一个”以及诸如“一”或“一个”的不定冠词时(例如,“一”和/或“一个”应该被解释成意指“至少一个”或“一个或更多个”),这样的短语的使用也不应该被解释成暗示权利要求引用通过不定冠词“一”或“一个”的引入将包含这样引入的权利要求引用的任何特定权利要求限制于包含仅一个这样的引用的实施方式;相同情况适用于用于引入权利要求引用的定冠词的使用。另外,即使特定数量的引入的权利要求引用被显式地记载,本领域技术人员也应认识到,这样的引用应该被解释成至少意指所记载的数量(例如,“两个引用”的仅有引用在没有其它修饰词的情况下意指至少两个引用或两个或更多个引用)。此外,在使用了类似于“A、B和C等中的至少一个”的约定的那些实例中,一般而言这样的构造在本领域技术人员将理解该约定的意义上被打算(例如,“具有A、B和C中的至少一个的系统”将包括但不限于只有A、只有B、只有C、A和B一起、A和C一起、B和C一起和/或A、B以及C一起等的系统)。在使用了类似于“A、B和C等中的至少一个”的约定的那些实例中,一般而言这样的构造在本领域技术人员将理解该约定的意义上被打算(例如,“具有A、B和C中的至少一个的系统”将包括但不限于只有A、只有B、只有C、A和B一起、A和C一起、B和C一起和/或A、B以及C一起等的系统)。本领域技术人员还应理解,实际上呈现两个或更多个另选术语的任何转折词和/或短语(无论在说明书、权利要求还是附图中)应该被理解成设想到包括这些术语中的一个、这些术语中的任何一个或两个术语的可能性。例如,短语“A或B”将被理解成包括“A”或“B”或“A和B”的可能性。
另外,在按Markush组对本公开的特征或方面进行描述的情况下,本领域技术人员将认识到,还因此按Markush组的成员的任何单独成员或子组对本公开进行描述。
如将由本领域技术人员所理解的,出于任何和所有目的,诸如在提供撰写的说明书方面,本文所公开的所有范围还包含任何且所有可能的子范围及其子范围的组合。任何列举的范围能够被容易地识别为充分地描述并且使得能实现被分解成至少二等分、三等分、四等分、五等分、十等分等的相同范围。作为非限制性示例,本文所讨论的各个范围能够被容易地分解成下三分之一、中间三分之一和上三分之一等。如还将由本领域技术人员所理解的,诸如“多达”、“至少”、“大于”、“小于”等的所有语言包括所记载的数量并且指代能够被随后分解成如以上所讨论的子范围的范围。最后,如将由本领域技术人员所理解的,范围包括各个单独的成员。因此,例如,具有1-3个单元的组指代具有1个单元、2个单元或3个单元的组。类似地,具有1-5个单元的组指代具有1个单元、2个单元、3个单元、4个单元或5个单元的组等等。
虽然已经在本文中公开了各种方面和实施方式,但是其它方面和实施方式对本领域技术人员而言将是显而易见的。本文所公开的各种方面和实施方式是用于例示的目的的,并且不旨在为限制性的,其中真实范围和精神由以下权利要求指示。

Claims (41)

1.一种重写存储器的方法,该方法包括以下步骤:
确定所述存储器的多个单元中的每一个的当前单元电荷电平;
根据线性变换生成多个下一个单元电荷电平,其中,各个下一个单元电荷电平是基于所述当前单元电荷电平中的对应一个并且基于输入数据生成的,
其中,各个下一个单元电荷电平大于或等于所对应的当前单元电荷电平,其中,所述多个下一个单元电荷电平表示所述输入数据,并且其中,所述多个下一个单元电荷电平包括用于错误校正的冗余;以及
将所述下一个单元电荷电平存储在所述存储器中。
2.根据权利要求1所述的方法,其中,根据所述线性变换生成所述多个下一个单元电荷电平的步骤包括:根据包括将输入向量乘以N行和N列的矩阵的线性变换生成所述多个下一个单元电荷电平,其中,所述输入向量包括所述输入数据。
3.根据权利要求2所述的方法,其中,所述矩阵等于G2的第m个克罗内克积,其中, G 2 = 1 0 1 1 , 并且N=2m
4.根据权利要求2所述的方法,其中,将所述输入向量乘以所述矩阵的步骤包括:将所述输入向量乘以极性码的生成矩阵。
5.根据权利要求2所述的方法,其中,生成所述多个下一个单元电荷电平的步骤包括:
生成等于所述输入数据的值的所述输入向量的第一子集,以及
生成等于常数的所述输入向量的第二子集。
6.根据权利要求5所述的方法,该方法还包括以下步骤:对所述输入向量编索引,使得所述输入向量的各个比特具有指示在所述输入向量的所述比特的次序内的位置的索引,其中,所述输入向量的所述第一子集的所述比特具有由数据集FWOM–数据集FC定义的集合中的索引,并且所述输入向量的所述第二子集的所述比特具有由数据集FC定义的集合中的索引,其中,数据集FC是包括至少一个元素的集合,其中,数据集FWOM是包括不在数据集FC中的M个元素的集合,其中M是整数,其中,至少一个索引既不在数据集FWOM中也不在数据集FC中,并且其中,数据集FC是数据集FWOM的子集。
7.根据权利要求6所述的方法,其中,根据所述线性变换生成所述多个下一个单元电荷电平的步骤包括:根据包括以下步骤的线性变换生成所述多个下一个单元电荷电平:
计算多个写入之前值,各自是基于对应的当前单元电荷电平并且基于多个抖动值中的对应的抖动值,其中,各个写入之前值等于与所述对应的抖动值异或的所述对应的当前单元电荷电平;以及
计算多个写入之后值,各自是基于对应的下一个单元电荷电平和所述多个抖动值中的所述对应的抖动值,其中,各个写入之后值等于与所述对应的抖动值异或的所述对应的下一个单元电荷电平。
8.根据权利要求7所述的方法,其中,所述多个写入之后值等于乘以所述矩阵的所述输入向量,并且所述多个下一个单元电荷电平等于所述多个写入之后值和所述多个抖动值的按比特异或。
9.根据权利要求7所述的方法,其中,所述多个抖动值包括多个伪随机数。
10.根据权利要求6所述的方法,其中,根据所述线性变换生成所述输入向量的步骤包括:根据包括具有既不在数据集FWOM中也不在数据集FC中的索引的所述输入向量中的所述比特的计算的线性变换生成所述输入向量中的所述多个比特。
11.根据权利要求6所述的方法,其中,所述矩阵是极性码的生成矩阵并且数据集FWOM在所述极性码的冻结集合中。
12.根据权利要求1所述的方法,其中,具有与所述当前单元电荷电平不同的值的若干下一个单元电荷电平被最小化。
13.一种读取存储器的方法,该方法包括以下步骤:
确定所述存储器的多个单元的当前单元电荷电平,其中,所述当前单元电荷电平表示数据和错误校正信息;
生成多个数据值,其中,所述数据值是基于所述当前单元电荷电平的线性变换生成的;以及
将所述数据值发送到数据目的地。
14.根据权利要求13所述的方法,其中,基于所述线性变换生成所述多个数据值的步骤包括:基于包括将等于所述多个当前单元电荷电平和多个抖动值的按比特异或的向量乘以N行和N列的矩阵的线性变换生成所述多个数据值。
15.根据权利要求14所述的方法,其中,所述矩阵等于G2的第m个克罗内克积,其中 G 2 = 1 0 1 1 , 并且N=2m
16.根据权利要求14所述的方法,其中,将所述向量乘以所述矩阵的步骤包括:将所述向量乘以极性码的生成矩阵的逆。
17.根据权利要求14所述的方法,其中,基于所述线性变换生成所述多个数据值的步骤包括:基于实现列表解码算法的线性变换生成所述多个数据值。
18.根据权利要求14所述的方法,其中,基于所述线性变换生成所述多个数据值的步骤包括:基于实现置信传播算法的线性变换生成所述多个数据值。
19.根据权利要求13所述的方法,其中,所述当前单元电荷电平定义与所述错误校正信息有关的纠错码,并且其中,生成所述数据值的步骤包括:
确定数据值的集合;以及
验证数据值的所述集合与所述纠错码一致。
20.根据权利要求13所述的方法,该方法还包括以下步骤:
生成被乘以N行和N列的矩阵的逆的、等于所述多个当前单元电荷电平和多个抖动值的按比特异或的向量,其中
所述向量包括与所述数据值对应的比特的第一子集和等于常数的比特的第二子集,
所述向量的所述比特被编索引,使得各个比特具有指示在所述向量内的位置的索引;以及
比特的所述第一子集具有数据集FWOM–数据集FC中的索引,并且比特的所述第二子集具有数据集FC中的索引,其中,数据集FC是包括至少一个元素的集合,其中,数据集FWOM是包括不在数据集FC中的M个元素的集合,其中M是整数,其中,至少一个索引既不在数据集FWOM中也不在数据集FC中,并且其中,数据集FC是数据集FWOM的子集,并且
其中,所述线性变换包括计算多个比特值,其中,所述比特值包括与所述数据值对应的比特值的第一子集和等于所述常数的比特值的第二子集。
21.一种存储器系统,该存储器系统包括:
存储器,该存储器包括多个单元;
处理器,该处理器耦接至所述存储器并且被配置为确定所述存储器的所述多个单元的当前单元电荷电平;
编码器,该编码器耦接至所述存储器并耦接至所述处理器,并且被配置为根据线性变换生成多个下一个单元电荷电平,其中,各个下一个单元电荷电平是基于所述当前单元电荷电平中的对应一个并且基于输入数据生成的,其中,各个下一个单元电荷电平大于或等于所述对应的当前单元电荷电平,其中,所述多个下一个单元电荷电平表示所述输入数据,并且其中,所述多个下一个单元电荷电平包括用于错误校正的冗余;以及
写入装置,该写入装置耦接至所述编码器和所述存储器,并且被配置为将所述下一个单元电荷电平存储在所述存储器的所述多个单元的对应单元中。
22.根据权利要求21所述的系统,其中,所述线性变换包括表示所述输入数据的输入向量与N行和N列的矩阵的乘法。
23.根据权利要求22所述的系统,其中,所述矩阵等于G2的第m个克罗内克积,其中 G 2 = 1 0 1 1 , 并且N=2m
24.根据权利要求22所述的系统,其中,所述矩阵包括极性码的生成矩阵。
25.根据权利要求22所述的系统,其中,所述输入向量包括多个比特,并且其中:
所述输入向量的比特的第一子集等于所述输入数据的值,以及
所述输入向量的比特的第二子集等于常数。
26.根据权利要求25所述的系统,其中,所述输入向量的所述比特被编索引,使得各个比特具有指示在比特的次序内的位置的索引,其中,所述第一子集的所述比特具有数据集FWOM–数据集FC中的索引,并且所述第二子集的所述比特具有数据集FC中的索引,其中,数据集FC是包括至少一个元素的集合,其中,数据集FWOM是包括不在数据集FC中的M个元素的集合,其中M是整数,其中,至少一个索引既不在数据集FWOM中也不在数据集FC中,并且其中,数据集FC是数据集FWOM的子集。
27.根据权利要求26所述的系统,其中,所述线性变换包括:
计算多个写入之前值,各自是基于对应的当前单元电荷电平并且基于多个抖动值中的对应的抖动值,其中,各个写入之前值等于与所述对应的抖动值异或的所述对应的当前单元电荷电平;以及
计算多个写入之后值,各自是基于对应的下一个单元电荷电平和所述对应的抖动值,其中,各个写入之后值等于与所述对应的抖动值异或的所述对应的下一个单元电荷电平。
28.根据权利要求27所述的系统,其中,所述多个写入之后值等于乘以所述矩阵的所述输入向量,并且所述多个下一个单元电荷电平等于所述多个写入之后值和所述多个抖动值的按比特异或。
29.根据权利要求27所述的系统,其中,所述多个抖动值包括多个伪随机数。
30.根据权利要求26所述的系统,其中,所述线性变换包括具有既不在数据集FWOM中也不在数据集FC中的索引的所述输入向量的计算。
31.根据权利要求26所述的系统,其中,所述矩阵是极性码的生成矩阵并且数据集FWOM在所述极性码的冻结集合中。
32.根据权利要求21所述的系统,其中,具有与所述当前单元电荷电平不同的值的若干下一个单元电荷电平被最小化。
33.一种存储器系统,该存储器系统包括:
存储器,该存储器包括多个单元;
处理器,该处理器耦接至所述存储器并且被配置为确定所述存储器的所述多个单元的当前单元电荷电平,其中,所述当前单元电荷电平表示数据和错误校正信息;
解码器,该解码器耦接至所述处理器并耦接至所述存储器,并且被配置为生成多个数据值,其中,所述数据值是基于所述当前单元电荷电平的线性变换生成的;以及
发送器,该发送器耦接至所述解码器并且被配置为将所述数据值发送到数据目的地。
34.根据权利要求33所述的系统,其中,所述线性变换包括所述当前单元电荷电平和多个抖动值的按比特异或与N行和N列的矩阵的逆的乘法。
35.根据权利要求34所述的系统,其中,所述矩阵等于G2的第m个克罗内克积,其中 G 2 = 1 0 1 1 , 并且N=2m
36.根据权利要求34所述的系统,其中,所述矩阵包括极性码的生成矩阵。
37.根据权利要求34所述的系统,其中,所述线性变换实现列表解码算法。
38.根据权利要求34所述的系统,其中,所述线性变换实现置信传播算法。
39.根据权利要求33所述的系统,其中,所述当前单元电荷电平定义了与所述错误校正信息有关的纠错码,并且其中,为了生成所述数据值,所述解码器被配置为:
确定数据值的集合;并且
验证数据值的所述集合与所述纠错码一致。
40.根据权利要求33所述的系统,该系统还包括:
生成被乘以N行和N列的矩阵的逆的、等于所述多个当前单元电荷电平和多个抖动值的按比特异或的向量,其中
所述向量包括与所述数据值对应的比特的第一子集和等于常数的比特的第二子集,
所述当前单元电荷电平被编索引,使得各个当前单元电荷电平具有指示在当前单元电荷电平的次序内的位置的索引,并且
比特的所述第一子集具有由数据集FWOM–数据集FC定义的集合中的索引,并且比特的所述第二子集具有数据集FC中的索引,其中,数据集FC是包括至少一个元素的集合,其中,数据集FWOM是包括不在数据集FC中的M个元素的集合,其中M是整数,其中,至少一个索引既不在数据集FWOM中也不在数据集FC中,并且其中,数据集FC是数据集FWOM的子集,
其中,所述线性变换包括计算多个比特值,其中,所述比特值包括与所述数据值对应的比特值的第一子集和等于所述常数的比特值的第二子集。
41.根据权利要求33所述的系统,其中,所述当前单元电荷电平的所述数据和错误校正信息被编码,使得所述当前单元电荷电平和多个抖动值的按比特异或等于向量的线性变换,其中,所述向量包括表示所述数据的位置的第一子集和具有常数值的子集的第二子集。
CN201380071398.1A 2013-01-24 2013-07-05 一次写入存储器中的联合重写和错误校正 Pending CN105579972A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361756324P 2013-01-24 2013-01-24
US61/756,324 2013-01-24
PCT/US2013/049480 WO2014116301A1 (en) 2013-01-24 2013-07-05 Joint rewriting and error correction in write-once memories

Publications (1)

Publication Number Publication Date
CN105579972A true CN105579972A (zh) 2016-05-11

Family

ID=51227938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380071398.1A Pending CN105579972A (zh) 2013-01-24 2013-07-05 一次写入存储器中的联合重写和错误校正

Country Status (4)

Country Link
US (1) US9946475B2 (zh)
KR (1) KR101710025B1 (zh)
CN (1) CN105579972A (zh)
WO (1) WO2014116301A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739682A (zh) * 2018-12-21 2019-05-10 山东华芯半导体有限公司 应用于闪存控制器中的自适应polar码纠错码系统和方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077886A (zh) * 2014-01-17 2017-08-18 加州理工学院 使用极性码的不对称纠错和闪速存储器重写
US9317365B2 (en) * 2014-03-06 2016-04-19 Seagate Technology Llc Soft decoding of polar codes
RU2571587C2 (ru) * 2014-04-10 2015-12-20 Самсунг Электроникс Ко., Лтд. Способ и устройство кодирования и декодирования данных в скрученном полярном коде
US20150333775A1 (en) * 2014-05-15 2015-11-19 Broadcom Corporation Frozen-Bit Selection for a Polar Code Decoder
US9953722B2 (en) * 2015-01-08 2018-04-24 SK Hynix Inc. Methods of system optimization by over-sampling read
WO2016116930A1 (en) * 2015-01-21 2016-07-28 Technion Research & Development Foundation Limited Reusable memory devices with wom codes
WO2016123590A1 (en) * 2015-01-30 2016-08-04 California Institute Of Technology Rewriting flash memories by message passing
US9479291B2 (en) 2015-02-13 2016-10-25 Samsung Electronics Co., Ltd. Apparatus and method of constructing polar code
US9742440B2 (en) 2015-03-25 2017-08-22 Samsung Electronics Co., Ltd HARQ rate-compatible polar codes for wireless channels
DE102015104841A1 (de) * 2015-03-30 2016-10-06 Infineon Technologies Ag Chip und Verfahren zum Detektieren einer Veränderung eines gespeicherten Datenvektors
US9772899B2 (en) 2015-05-04 2017-09-26 Texas Instruments Incorporated Error correction code management of write-once memory codes
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US10476634B2 (en) * 2016-03-04 2019-11-12 Huawei Technologies Co., Ltd. System and method for polar encoding and decoding
US11043966B2 (en) 2016-05-11 2021-06-22 Qualcomm Incorporated Methods and apparatus for efficiently generating multiple lifted low-density parity-check (LDPC) codes
US10454499B2 (en) 2016-05-12 2019-10-22 Qualcomm Incorporated Enhanced puncturing and low-density parity-check (LDPC) code structure
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
CN109478897B (zh) 2016-07-25 2023-05-12 高通股份有限公司 用于构造极化码的方法和装置
US10049764B2 (en) * 2016-12-13 2018-08-14 Macronix International Co., Ltd. Control method for memory device and memory controller
US10360973B2 (en) 2016-12-23 2019-07-23 Western Digital Technologies, Inc. Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity
US10327235B2 (en) 2017-01-04 2019-06-18 Coherent Logix, Incorporated Scrambling sequence design for multi-mode block discrimination on DCI blind detection
CN108288969B (zh) * 2017-01-07 2021-12-21 华为技术有限公司 数据编码及译码的方法和装置
CN108574560B (zh) * 2017-03-13 2020-07-24 华为技术有限公司 一种编码方法、译码方法、装置和设备
CN108631916B (zh) * 2017-03-24 2020-03-31 华为技术有限公司 极化Polar码的速率匹配方法和装置、通信装置
WO2018192514A1 (en) * 2017-04-20 2018-10-25 Qualcomm Incorporated Dynamic frozen bits and error detection for polar codes
CN108809482B (zh) * 2017-04-28 2023-09-01 华为技术有限公司 Polar码的速率匹配方法及装置
US10623138B2 (en) * 2017-06-02 2020-04-14 Qualcomm Incorporated Sequence-based polar code description
US10432357B2 (en) 2017-06-02 2019-10-01 Qualcomm Incorporated Sequence-based polar code description
CN109756294B (zh) * 2017-11-01 2021-06-25 上海朗帛通信技术有限公司 一种用于无线通信的用户设备、基站中的方法和装置
WO2020102862A1 (en) 2018-11-22 2020-05-28 Embraer S.A. Aircraft component systems for electrical energy harvesting and storage
US11418220B2 (en) * 2020-03-20 2022-08-16 Huawei Technologies Co., Ltd. Method, system, and apparatus for a segmented polarization-adjusted convolutional (PAC) code

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010040836A1 (en) * 1999-12-27 2001-11-15 Seiichi Mori Nonvolatile semiconductor memory and threshold voltage control method therefor
US20020136068A1 (en) * 2000-12-20 2002-09-26 Widdershoven Franciscus Petrus Data processing device with a WOM memory
US20060193180A1 (en) * 1995-02-27 2006-08-31 Btg International Inc. Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell
US20080198652A1 (en) * 2006-05-12 2008-08-21 Anobit Technologies Ltd. Memory Device Programming Using Combined Shaping And Linear Spreading
WO2011156745A3 (en) * 2010-06-10 2012-03-08 The Regents Of The University Of California Strong single and multiple error correcting wom codes, coding methods and devices
CN102823252A (zh) * 2010-04-08 2012-12-12 株式会社Ntt都科摩 动态图像预测编码装置、动态图像预测解码装置、动态图像预测编码方法、动态图像预测解码方法、动态图像预测编码程序及动态图像预测解码程序

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001093035A2 (en) 2000-05-30 2001-12-06 Dataplay, Inc. Defect management system for write-once storage disk
US6625172B2 (en) * 2001-04-26 2003-09-23 Joseph P. Odenwalder Rescheduling scheduled transmissions
US7676735B2 (en) * 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
WO2008086232A1 (en) * 2007-01-05 2008-07-17 The Texas A & M University System Storing information in a memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060193180A1 (en) * 1995-02-27 2006-08-31 Btg International Inc. Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell
US20010040836A1 (en) * 1999-12-27 2001-11-15 Seiichi Mori Nonvolatile semiconductor memory and threshold voltage control method therefor
US20020136068A1 (en) * 2000-12-20 2002-09-26 Widdershoven Franciscus Petrus Data processing device with a WOM memory
US20080198652A1 (en) * 2006-05-12 2008-08-21 Anobit Technologies Ltd. Memory Device Programming Using Combined Shaping And Linear Spreading
CN102823252A (zh) * 2010-04-08 2012-12-12 株式会社Ntt都科摩 动态图像预测编码装置、动态图像预测解码装置、动态图像预测编码方法、动态图像预测解码方法、动态图像预测编码程序及动态图像预测解码程序
WO2011156745A3 (en) * 2010-06-10 2012-03-08 The Regents Of The University Of California Strong single and multiple error correcting wom codes, coding methods and devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739682A (zh) * 2018-12-21 2019-05-10 山东华芯半导体有限公司 应用于闪存控制器中的自适应polar码纠错码系统和方法
CN109739682B (zh) * 2018-12-21 2021-04-02 山东华芯半导体有限公司 应用于闪存控制器中的自适应polar码纠错码系统和方法

Also Published As

Publication number Publication date
US9946475B2 (en) 2018-04-17
US20150293716A1 (en) 2015-10-15
WO2014116301A1 (en) 2014-07-31
KR101710025B1 (ko) 2017-02-24
KR20160023633A (ko) 2016-03-03

Similar Documents

Publication Publication Date Title
CN105579972A (zh) 一次写入存储器中的联合重写和错误校正
US10122382B2 (en) VSS LDPC decoder with improved throughput for hard decoding
CN108062258B (zh) 用于错误恢复的循环交错的xor阵列
TWI705452B (zh) 具有硬通道資訊的位元翻轉ldpc解碼演算法
US9070453B2 (en) Multiple programming of flash memory without erase
CN104040504A (zh) 用于存储器系统的软信息生成
US9124301B2 (en) Error correction code for unidirectional memory
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
US8656263B2 (en) Trellis-coded modulation in a multi-level cell flash memory device
KR20150106270A (ko) 폴라 부호의 리스트 복호 방법 및 이를 적용한 메모리 시스템
KR101926608B1 (ko) 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더
CN110444246A (zh) 用于存储器系统的相邻辅助校正错误恢复及其方法
CN110673979B (zh) 存储器控制器及其操作方法
US10846172B2 (en) Encoding method and system for memory device including QLC cells
CN104601178A (zh) 解码方法、解码电路、存储器存储装置与控制电路单元
US10970165B2 (en) Encoder and decoder for memory system and method thereof
CN110444242A (zh) 有基于深度学习的干扰校正能力的存储器系统及操作方法
CN105304142B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN111756385A (zh) 错误校正解码器
CN110415753A (zh) 错误校正电路及操作该错误校正电路的方法
CN105164646B (zh) 具有早期解码终止检测的解码器
US9236886B1 (en) Universal and reconfigurable QC-LDPC encoder
Li et al. Polar codes are optimal for write-efficient memories
CN106708649B (zh) 解码方法、存储器储存装置及存储器控制电路单元
US10884858B2 (en) LDPC decoding device, memory system including the same and method thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160511