CN102934171A - 具有非易失性存储器的多级系统中的高级逐位操作及设备 - Google Patents

具有非易失性存储器的多级系统中的高级逐位操作及设备 Download PDF

Info

Publication number
CN102934171A
CN102934171A CN2011800276995A CN201180027699A CN102934171A CN 102934171 A CN102934171 A CN 102934171A CN 2011800276995 A CN2011800276995 A CN 2011800276995A CN 201180027699 A CN201180027699 A CN 201180027699A CN 102934171 A CN102934171 A CN 102934171A
Authority
CN
China
Prior art keywords
code
data
symbol
tcm
stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011800276995A
Other languages
English (en)
Other versions
CN102934171B (zh
Inventor
罗伯特·艾森胡特
斯蒂芬·范阿肯
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN102934171A publication Critical patent/CN102934171A/zh
Application granted granted Critical
Publication of CN102934171B publication Critical patent/CN102934171B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/256Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with trellis coding, e.g. with convolutional codes and TCM
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Read Only Memory (AREA)

Abstract

本发明涉及一种配置有用于使用码字来存储数字数据的非易失性存储器的数字系统、组件及方法。使用所述存储器的每存储器单元多个位将所述数据存储于所述存储器中。出于与所述存储器有关的写入操作及读取操作的目的,可基于输入参数而在逐码字基础上改变码效率。所述码效率可基于改变包含由所述存储器存储的位密度的所述输入参数中的任一者而改变。还描述存储及读取分数位密度。

Description

具有非易失性存储器的多级系统中的高级逐位操作及设备
技术领域
本申请案大体来说涉及多电平信息系统,且更特定来说涉及与多级系统中的逐位操作有关的设备及方法。
背景技术
2009年3月13日提出申请的标题为“多级系统中的逐位操作(BITWISEOPERATIONS IN A MULTI-LEVEL SYSTEM)”且在2009年9月24日作为第2009/0241006 A1号美国专利申请公开案公开的第12/403,546号美国专利申请案(在下文中称为‘546申请案)与本申请案为共同所有且特此以全文引用的方式并入本文中。由于所述′546申请案提供了申请人视为优于随后存在的技术现状的决定性优势,因此申请人认为本申请案提供更进一步的优势。
相关技术的前述实例及与其相关的限制既定为说明性而非排他性的。在阅读说明书及研究图式之后,所属领域的技术人员将明了相关技术的其它限制。
发明内容
结合意在为示范性及说明性而不限制范围的系统、工具及方法描述并图解说明以下实施例及其若干方面。在各种实施例中,已减少或消除上述问题中的一者或一者以上,而其它实施例是针对其它改进。
一般来说,数字系统配置有用于存储数字数据的非易失性存储器。在本发明的一个方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用里德所罗门编码器接收通过所述数字系统提供的包含输入数据的输入数据流,以产生由一系列里德所罗门符号构成的经里德所罗门编码的流。使用压缩布置接收所述经里德所罗门编码的流以产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分但非全部经配置以服从基于卷积码的码效率。由所述压缩布置修改所述经重新组块的输出数据流以基于改变提供到所述压缩布置的一个或一个以上输入参数的一个或一个以上值而支持与所述输入流中的预定数目个里德所罗门符号相关联的卷积码的码效率的改变。使用映射布置来接收所述经重新组块的输出数据流以应用TCM码来产生经TCM编码的输出数据流。根据所述卷积码的码效率使用形成所述映射布置的一部分的卷积编码器对所述经TCM编码的输出流的部分进行卷积编码以基于所述输入参数的所述值而支持码效率的改变以产生经映射的输出数据流供引导到所述非易失性存储器以作为所存储数据存储于所述非易失性存储器中。在一个特征中,通过所述压缩布置与所述映射布置之间的协作将所述经TCM编码的输出数据的部分卷积编码为构成所述经TCM编码的输出流的多个TCM符号中的每一者的最低有效位。在另一特征中,每一TCM符号由多个位构成,且通过所述压缩布置与所述映射布置之间的协作将所述经TCM编码的输出数据的部分卷积编码为构成所述经TCM编码的输出流的多个TCM符号中的每一者的至少一最低有效位但少于所有位。在又一特征中,基于读取所存储数据,使用解映射布置数据从所述非易失性存储器接收存储器输出流,并根据所述码效率对存储器输出流进行卷积解码以基于提供到所述映射布置的所述输入参数的值中的对应者而将所述存储器输出流再现为经解映射的输出流。使用解压缩布置接收所述经解映射的输出流以便以响应于基于提供到所述压缩布置的一个或一个以上输入参数的值中的对应者而改变与预定数目个里德所罗门符号相关联的卷积码的码效率的方式基于所述码效率从所述经解映射的输出流再现所述经里德所罗门编码的流。使用里德所罗门解码器从所述解压缩布置接收所述经里德所罗门编码的流以从所述经里德所罗门编码的流解码包含输入数据的读取数据流以供所述数字系统用作读取数据。
在本发明的另一方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用块码编码器接收通过所述数字系统提供的包含输入数据的输入数据流,以产生由一系列块码符号构成的经块码编码的流。使用压缩布置接收所述经块码编码的流以产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分但非全部经配置以服从基于卷积码的码效率。由所述压缩布置修改所述经重新组块的输出数据流以基于改变提供到所述压缩布置的一个或一个以上输入参数的一个或一个以上值而支持与所述输入流中的预定数目个块码符号相关联的卷积码的码效率的改变。使用映射布置来接收所述经重新组块的输出数据流以应用TCM码来产生经TCM编码的输出数据流。使用形成所述映射布置的一部分的卷积编码器根据所述卷积码的码效率对所述经TCM编码的输出流的部分进行卷积编码以基于所述输入参数的所述值支持码效率的改变以产生经映射的输出数据流供引导到所述非易失性存储器以作为所存储数据存储于所述非易失性存储器中。
在本发明的另一方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用压缩布置接收经里德所罗门编码的流以产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分经配置以服从基于卷积码的码效率。所述压缩布置及相关联方法适于用于基于作为准备将输入数据存储于非易失性存储器中的中间步骤而提供到压缩布置的一个或一个以上输入参数的给定值而改变与所述输入流中的预定数目个里德所罗门符号相关联的所述卷积码的码效率。
在本发明的又一方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用包含多个存储器单元的非易失性存储器来存储数字数据。形成所述设备的一部分的压缩布置及相关联方法经配置以用于接收由所述系统提供的输入数据流以产生基于用于在所述存储器单元中存储的块大小的输出数据流,且选择性地可基于一个或一个以上输入参数以第一模式操作以产生用于在所述存储器单元中存储的第一块大小且可至少响应于所述输入参数的改变而以第二模式操作以产生不同于所述第一块大小的第二块大小以在其操作期间选择性地改变块大小。
在本发明的又一方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位。形成所述设备的一部分的编码器布置及相关联方法经配置以接收由所述系统提供的输入数据流以产生基于用于在所述存储器单元中存储的每单元译码的选定位数目的输出数据流,且选择性地可基于一个或一个以上输入参数以第一模式操作以将用于在所述存储器单元中存储的第一位密度产生为每单元所述选定位数目且响应于所述输入参数的改变而至少以第二模式操作以产生不同于所述第一位密度的第二位密度以在其操作期间选择性地改变每单元译码的位数目。
在本发明的再一方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位。形成所述设备的一部分的编码器布置及相关联方法经配置以接收由所述系统提供为一系列输入符号的输入数据流以产生基于用于在所述存储器单元中存储的每单元译码的选定位数目的输出数据流且可基于一个或一个以上输入参数而重新配置以至少改变待存储于所述非易失性存储器的存储器单元中的每单元译码的所述选定位数目。
在本发明的延续方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位。形成所述设备的一部分的解码器布置及相关联方法经配置以用于接收响应于读取存储于所述非易失性存储器中的数据结构而提供的读取数据流以提供含有最初在写入操作期间编码为所述数据结构的一部分且存储于一系列所述存储器单元中的用户数据流的一系列读取符号,以基于存储于所述系列的存储器单元中的每单元译码的若干个不同位密度中的选定一者而再现所述用户数据流。所述解码器布置及相关联方法可基于一个或一个以上输入参数而重新配置以至少改变所述位密度中的选定一者来匹配存储于所述系列的存储器单元中的所述位密度以作为再现所述用户数据流的一部分。
在本发明的另一方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位。形成所述设备的一部分的解映射布置及相关联方法经配置以用于基于从所述非易失性存储器读取所存储数据而接收存储器输出流,其中所述存储器输出流呈经TCM编码的输出数据流的形式,在编码操作期间使所述经TCM编码的输出数据流的一个部分但非全部服从由一组参数的给定值确立的码效率,且用于基于所述码效率对所述经TCM编码的输出数据流进行卷积解码以基于在编码操作期间提供的输入参数的给定值中的对应者而将所述经TCM编码的输出数据流再现为经解映射的输出流,所述经解映射的输出流含有经里德所罗门编码的流。解压缩布置及相关联方法经配置以用于接收所述解映射器输出流并基于所述码效率而从所述解映射器输出流再现所述经里德所罗门编码的流,且所述解压缩布置及相关联方法对基于在所述编码操作期间提供的所述一个或一个以上输入参数的所述给定值中的对应者而改变与所述预定数目个里德所罗门符号相关联的卷积码的码效率做出响应。里德所罗门解码器及相关联方法经配置以用于从所述解压缩布置接收所述经里德所罗门编码的流以从所述经里德所罗门编码的流解码包含所述输入数据的读取数据流以供所述数字系统用作读取数据。
在本发明的另一方面中,形成所述数字系统的一部分的设备及相关联方法经配置以用于使用包含多个存储器单元的非易失性存储器来响应于主机装置而存储数字数据。形成所述设备的一部分的编码器/解码器布置及相关联方法经配置以使所述主机装置与所述非易失性存储器介接以在其之间以一系列码字传送读取数据及写入数据,其中每一码字具有码字大小使得从所述主机装置到所述非易失性存储器的经编码数据流及从所述非易失性存储器到所述主机装置的经解码数据流各自至少服从基于卷积码的码效率,且所述编码器/解码器布置经配置以用于接收一个或一个以上输入参数使得所述码效率可响应于所述输入参数的改变而在逐码字基础上改变。在一个特征中,每一码字由构成码字长度的多个符号构成,其中每一符号表示待存储于所述存储器单元中的一者中的值,且所述编码器/解码器布置结合相关联方法经配置以用于以第一模式操作以在给定系列码字的第一码字中产生第一码效率且以第二模式操作以在所述给定系列码字的第二码字中产生第二码效率。
在本发明的又一方面中,在配置有用于存储数字数据的非易失性存储器的数字系统中,一种数据结构存储于所述非易失性存储器中。所述数据结构包含存储于所述非易失性存储器中的一系列TCM符号,所述系列的TCM符号中的每一者表示至少两个位,使每一TCM符号的至少最低有效位服从卷积码,且每一符号的至少一个其它位未经卷积编码,且所述TCM符号构成形成一系列码字的一系列里德所罗门符号使得所述数据结构中的至少一个码字的所述卷积码的码效率不同于所述数据结构中的邻近码字的所述码效率。
在本发明的再一方面中,描述一种供与配置有非易失性存储器以将数字数据以数据结构存储于所述非易失性存储器中的数字系统一起使用的方法。所述方法包含将一系列TCM符号写入到所述非易失性存储器,所述TCM符号中的每一者表示至少两个位,使每一TCM符号的至少最低有效位服从卷积码且每一符号的至少一个其它位未经卷积编码,且所述TCM符号构成形成一系列码字的一系列里德所罗门符号使得所述数据结构中的至少一个码字的卷积码的码效率不同于所述数据结构中的邻近码字的码效率。
在本发明的延续方面中,在配置有用于存储数字数据的非易失性存储器的数字系统中,将一种数据结构存储于所述非易失性存储器中。所述数据结构包含一系列TCM符号,其存储于所述非易失性存储器中形成所述非易失性存储器的一部分的一系列存储器单元中,其中每一TCM符号包含至少一个位且构成先前写入到所述非易失性存储器的数据传送,使得所述系列的存储器单元至少平均存储表示所述数据传送的每单元分数个位。
在本发明的进一步方面中,描述一种供与配置有用于存储数字数据的非易失性存储器的数字系统一起使用的方法。所述方法包含将一系列TCM符号作为数据传送写入到所述非易失性存储器形成所述非易失性存储器的一部分的一系列存储器单元中,其中每一TCM符号包含至少一个位使得所述系列的存储器单元至少平均存储表示所述数据传送的每单元分数个位。在一个特征中,所述数据传送包含用户数据且所述方法进一步包含基于每单元所述分数个位而从所述非易失性存储器读取所述系列的TCM符号以恢复所述用户数据。
在本发明的另一方面中,一种设备形成配置有用于存储数字数据的非易失性存储器的数字系统的一部分。所述设备包含写入布置,其用于在数据传送操作中将数据结构作为一系列TCM符号写入到所述非易失性存储器形成所述非易失性存储器的一部分的一系列存储器单元中,其中每一TCM符号包含至少一个位且所述数据结构包含用户数据使得所述系列的存储器单元至少平均存储每单元分数个位。在一个特征中,读取布置经配置以用于基于每单元所述分数个位而从所述非易失性存储器读取所述系列的TCM符号以恢复所述用户数据。
除上述示范性方面及实施例以外,通过参考图式及通过研究以下详细描述还将更明了进一步的方面及实施例。
附图说明
在所述图式的参考图中图解说明示范性实施例。本文所揭示的实施例及图既定为说明性而非限制性。
图1是根据本发明产生的系统的框图,其提供存储器中的每单元多位的存储且图解说明关于可存储数据的方式的某些细节。
图2是可存储于图1的系统的存储器中的数据结构的一个实施例的示意性图解说明,其展示所述数据结构的细节。
图3是图解说明可用作图1的系统的一部分的卷积编码器的一个实施例的框图。
图4是图解说明关于图1的系统的编码区段的细节的框图。
图5是图解说明可由图4的编码区段操作的编码方法的一个实施例的流程图。
图6是图解说明关于图1的系统的解码区段的细节的框图。
图7是图解说明可由图6的解码区段操作的解码方法的一个实施例的流程图。
图8是图解说明参数寄存器区段的一个实施例的框图,所述参数寄存器区段可形成图1的系统的一部分且可由图4的编码区段以及图6的解码区段使用,此处进行展示以图解说明具有多个寄存器库的库式配置的细节。
图9是图解说明用于与图8的库式参数区段实施例有关的操作的方法的一个实施例的流程图。
图10是可存储于图1的存储器区段中的数据结构的另一实施例的示意性图解说明,此处进行展示以图解说明关于分数位密度的进一步细节。
具体实施方式
呈现以下描述以使所属领域的技术人员能够制作及使用本发明,且所述描述是在专利申请案及其要求的背景中提供。所属领域的技术人员将易于明了对所描述实施例的各种修改,且本文中所教示的一般原理可应用于其它实施例。因此,本发明并不既定限制于所展示的实施例,而是被赋予与本文中所描述的原理及特征(包含修改及等效形式)相一致的最宽广范围,如所附权利要求书的范围内所界定。应注意,所述图式并非按比例绘制,且本质上是以最佳地图解说明所关注特征的方式来图示。可关于各图中所提供的各种视图出于加强读者理解的目的采用描述性术语,且所述描述性术语绝不为限制性。
本发明提供申请人视为关于基于非易失性存储器的数据存储与检索系统的性能的显着改进。本发明涉及(举例来说)在上文并入的‘546申请案中所述的多位译码系统,其中对两个单独位群组进行译码,使得所述两个单独位群组形成一系列(举例来说)格栅译码调制(TCM)符号中的每一者的不同部分。可称为每一TCM符号的LSB的一个位群组包含至少最低有效位,且可包含有效性相继更大的额外位,但并非TCM符号的所有位。可称为MSB的另一位群组包含TCM符号的除LSB之外的所有剩余位,且可包含最高有效位及可包含有效性相继更小的额外位但并非TCM符号的所有位。在一个实施例中,针对每单元译码三个位存在两个MSB。在另一实施例中,针对每单元译码四个位存在三个MSB。所属领域的技术人员在获知本发明整体的情况下可易于配置其它实施例。
根据本发明的性能益处包含针对给定量的非易失性存储器增加的存储容量,以及与已应用本文中所揭示的教示的数据存储系统的可靠性及耐久性有关的增强。使用(举例来说)NAND快闪的现有技术系统要求包含用以校正在存储器装置中自然发生的错误的机制。本发明提供作为相对于采用非易失性存储器的现有技术系统的性能增益的基础的强大的错误检测与校正机制。申请人认识到,可将此些存储器装置中的错误率量化为可依据装置技术以及通过环境及使用统计而针对特定存储器装置预测的统计数量。可使用这些错误率及其随存储器装置的使用寿命而改变的方式的知识来构造为每一存储器装置提供最优性能的错误检测与校正系统。此外,申请人认识到,可设计一种一般化错误校正系统,其可经参数化以针对一系列特定存储器装置中的每一者最优地操作且针对每一存储器装置在所述存储器装置的使用寿命内操作。
本发明利用涉及代数错误校正与格栅译码调制(TCM)的组合的编码与解码方法以将数据与应用程序存储到非易失性存储器装置及从所述非易失性存储器装置检索数据与应用程序。在一个实施例中,由具有到主机计算机、编码与解码通道及信息存储媒体的连接的数据存储系统利用所述编码与解码技术。所述存储媒体以可符合能够进行数据的非易失性保持的任何适合技术的一个或一个以上非易失性存储器装置的形式提供。可从本文所述的高级技术受益的当今数据存储系统可使用NAND快闪作为存储媒体,但此高级技术关于基于当前可用或尚待开发的任何其它适合形式的非易失性存储器的装置也同样适用。此些其它形式的非易失性部件可实现类似于针对NAND快闪所见的那些益处的益处。
本文可使用的非易失性存储器装置是基于单元的装置,其中每一单元能够存储一信息单位。此单位可存储单个位或多个位。在非易失性存储器单元中存储一个位要求数据存储系统在所述单元中的两种可能状态之间可靠地解析。存储更多位需要额外状态及在所述状态当中解析的能力。举例来说,如果单元中的数据量是根据所感测电压而解析,那么每单元存储2个位需要在四个相异电压当中解析;存储三个位需要在八个相异电压之间解析,等等。已提出,现有技术系统已仅在使用具有极高的可靠性及相对于正存储的位数目的解析能力的存储器时在快闪存储器中存储多于两个位。换句话说,现有技术已采取尝试消除任何错误可能性以使得几乎消除对校正的任何需要的方法。然而,申请人已认识到,例如(举例来说)NAND快闪装置的非易失性装置是有缺陷的装置。如此,在使用这些装置时难以在使得本发明随附的益处显着的程度上一致地解析每单元多个电压。应了解,在每单元此多个电压当中解析的能力与正解析的电压及电平的数目成比例地减小。本发明使得可在于现有技术系统中原本将不能够可靠地存储及检索每单元多个位的存储器装置中存储每单元相同数目个位。代数编码与TCM编码的组合的应用适应申请人的以下认识:针对每单元存储多个位,在给定单元中有效性较低的位比所述同一单元中有效性较高的位更可能出错误。本发明提供每单元存储4个位的系统的示范性描述。然而,此描述不既定为限制性。举例来说,通过使参数变化,相同教示仍适用于少至每单元存储3个位或每单元存储多于4个位。
现在转到其中相似参考编号可指代相似组件的各图,随即关注图1,其是由参考编号10大体指示的系统的框图,其中系统组件提供每单元多位存储及数据检索。在系统10中,主机计算机12使用构成非易失性存储器14的存储单元来存储及检索数据。读取及写入分别由编码区段20及解码区段22实现,所述区段可靠地将数据从主机传达到非易失性存储器及从存储器传达到主机。以使得可识别在主机读取数据时发生的位错误且在数据返回到主机之前通过解码过程从所述数据移除所述位错误的方式执行主机到存储器中的数据存储。
仍参考图1,非易失性存储器14可由一个或一个以上个别存储器装置构成,所述存储器装置中的每一者可由可互换地称为编码器的编码区段20或可互换地称为解码器的解码区段22存取。用于所述非易失性存储器的装置技术可为能够每单元存储一个以上位的任何非易失性媒体。NAND快闪将为典型的,但任何非易失性技术将同样适用,如上文所论述。
主机12可为向数据存储与检索系统发出读取及写入命令的任何适合装置。其通常为处理器,且可为计算机系统的一部分,但也可为嵌入式系统的一部分。编码器20在从主机12到存储器14的数据传送过程期间操作。所述编码器的功能是以使得可在主机请求从存储器14读取由所述主机提交的数据时检测并校正错误的方式对所述数据执行变换。解码器22在从存储器14到主机12的数据传送过程期间操作。所述解码器的功能是对从存储器检索的数据(呈由所述存储器存储所述数据的形式)执行变换并将所述数据转换成最初主机将其提交给编码器的形式。存储于存储器14中的数据的形式包含使得解码器22能够检测并校正由于存储器14缺陷而发生的数据中的位错误的编码。
根据本发明产生的实施例可适用于编码器、解码器及非易失性存储器的实施方案,且适用于其中主机通过发送导致传送数据以存储到存储器中及导致存储于存储器中的数据传送到主机的命令来引导操作的系统环境。
现在关注图2,其示意性地图解说明根据本发明的由参考编号100大体指示且可存储于非易失性存储器14(图1)中的数据结构的一个实施例。特定来说,图2图解说明标示为RS1到RS13的多个里德所罗门(RS)符号,针对每单元4个位的密度且针对尚待描述的特定穿孔型式将所述多个RS符号分配到TCM符号流上。应了解,里德所罗门码是一种形式的块码。就此来说,可利用任何适合形式的块码,例如(举例来说)逐位BCH码。在获知本发明整体的情况下,所属领域的技术人员可易于基于例如逐位BCH码的块码而实施其它系统、技术及数据结构。将所述TCM符号中的某些符号个别地标示为(举例来说)TCM1、TCM2、TCM3及TCM15。将每一TCM符号的位的有效性标示为b0到b3,其中b0是最低有效位。在数据传送的初始部分102中,里德所罗门符号RS1、RS7及RS12(仅部分地展示)仅仅由从相关联TCM符号取得的最低有效位b0构成。RS2到RS6、RS8到RS11及RS13(仅部分地展示)由MSB位b1到b3构成。将所述数据结构图解说明为具有初始部分102及终止部分104。TCM符号TCM1到TCM32构成所述结构的初始部分102,其包含RS1到RS13的所图解说明部分。所述数据结构的终止部分由以RS(N)结束的RS符号群组构成且具有TCM符号TCM(N’),如将进一步描述。应了解,图2的数据结构对应于存储于非易失性存储器中的特定但示范性结构。尽管如上文所描述LSB的数目可大于1,但图2图解说明其中从每一4位TCM符号取得的三个MSB(b1到b3)与一个LSB(b0)配对的实施例。如将看出,LSB位置中的“X”符号以及LSB位置中的非“X”符号表示在将所述数据结构实际存储于存储器中之前通过卷积编码而产生的码位。就此来说,在“X”位位置中携载的数据可称为附加码位。应注意,虽然本发明及所附权利要求书可将存储器称为存储TCM符号,但应了解,实际上存储的是可视为表示TCM符号的存储器目标或目标电平的电平。
继续参考图2,将N个RS符号[RS1、RS2、...、RS(N-1)、RS(N)]的流压缩到4位TCM符号的流上。术语“压缩”指代将位从一种符号格式重新编组成另一符号格式的过程。在此情况中,将包括(举例来说)每符号10个位的RS符号流“压缩”到4位TCM符号流上是从第一TCM符号的LSB的第一RS符号提取一个位且从第一TCM符号的MSB的第二RS符号提取三个位的过程。第二TCM符号由来自第二TCM符号的LSB的第一RS符号的一额外位及来自第二TCM符号的MSB的第二RS符号的三个额外位构造而成。为了接收第一RS符号的所有10个位,创建15个TCM符号。在本实施例中,LSB中的与此15个TCM符号相关联的5个将为卷积附加码位的X个占位符,而所述LSB中的10个是构成第一RS符号的实际数据位。应注意,RS6超出RS1的末端。一旦当前RS MSB符号超出完整LSB RS符号的末端,下一RS符号便专用作LSB RS符号。当在图2中创建前30个TCM符号时,以RS2到RS5、RS1、RS6、RS8到RS11及RS7的次序完成所述RS符号,其中RS7及RS11是在创建TCM 30时同时完成。由于前30个TCM符号的创建表示完整压缩型式,因此以类似方式构造额外TCM符号,根据需要从后续RS符号取得位直到已将所有RS符号转换成TCM符号为止。只要存在源符号(即,RS符号),压缩过程就继续。如果由于来自RS符号流的所有位已被用完而使得完成最后一个4位TCM符号需要额外位,那么插入额外填充位以填满最后一个4位符号。所述图展示将N个符号放置到4位流上的方式。每一4位符号由垂直排列的四位片表示,如所展示。出于编码目的每一RS符号的位到TCM符号流上的布置次序可为任何便利次序,只要解码器可在协作解码功能期间准确地重构所述符号的原始位序列即可。TCM输出流是序列[TCM1、TCM2、...、TCM(N’-1)、TCM(N’)]。应注意,长度为N的RS符号输入流产生N’个符号的TCM流。N与N’之间的关系使得针对可包含(以非限制性实例的方式)位密度、RS数据长度、RS奇偶长度、待采用的卷积多项式及待采用的穿孔多项式的给定参数集合,N的特定值产生N’的特定值,使得知晓N会实现N’的确定。因此,关于输出位的数目对输入位的数目,RS到TCM变换是准确的。
应了解,可将输入流中的第一RS符号合理地分配给MSB或LSB。只要协作解码功能能够准确地重构序列,LSB或MSB之间的选择就是任意的。在本实施例中,基于在编码操作期间LSB符号比MSB符号消耗得慢而始终将流中的第一RS符号分配给结构的LSB侧。在初始RS符号之后,RS符号使用的序列由特定实施例确定。在图中所展示的配置中,将第一RS符号(RS1)选择为LSB符号,且接着将第二RS符号(RS2)选择为MSB符号。基于使用率而将后续RS符号分配给MSB或LSB。在图2中,在将第一RS符号(RS1)放置为LSB之后将五个RS符号(RS2到RS6)分配给MSB。在将RS6分配给MSB使用之后,将RS7分配为第二LSB符号。所述图中第一LSB符号与第二LSB符号之间的边界是TCM符号TCM15与TCM16之间的边界。分配序列以此方式继续进行,直到已使用等于RS数据长度(其中RS数据长度是构成完整输入数据流的RS符号的数目)的数目个符号。如将看出,根据本发明产生的系统经配置以监视传入RS数据流并在LSB与MSB之间适当地分配传入RS符号。
应注意,在图2中,用于填充MSB的每一RS符号由10个正方形构成,其中每一正方形表示一位(使用在每一RS符号内部的虚线分离)。在此符号的所述配置中,这些位对应于RS符号长度的10个位。然而,在LSB位置中,描绘15个位正方形(而非10个)。所述扩充是通过以尚待描述的方式卷积编码LSB位流而创建且已被添加到LSB RS符号的额外或附加码位的结果。在图2中,包含“X”的位方框指示附加码位。在本实施例中,每一LSB RS符号包含五个附加码位。所述附加码位的特定值是基于非占位符位(即,构成每一LSB RS符号的原始位)的值。应注意,最初通过将X标示符作为稍后由附加码位替换的占位符插入而在LSB的卷积编码之前产生图2的数据结构。每一RSLSB符号中的哪些位是占位符及插入多少占位符是界定所述配置的系统参数的函数;就此来说,最重要的参数是穿孔多项式,其指定被省略的某些位及在卷积编码之后包含哪些额外或附加码位,如将进一步描述。然而,目前充分理解,在LSB流中,需要图2的数据结构容纳比仅仅由馈送到LSB流中的相关联RS符号所含的位数目更多的位。
在具有标示为RS码字长度的任意长度的传入RS符号流末端,可有必要插入额外位以便在仅使用所提交RS码字中的准确数目个RS符号时从TCM编码与解码观点来看实现序列的闭包。关于此闭包存在两个方面,如下文中随即将描述。
在第一方面中,完成数据结构需要在TCM符号流的末端处TCM符号TCM(N’)中添加两个位b1及b2以弥补最后的RS符号[RS(N)]仅填入于最后一个TCM符号的位b3中的事实。另一情况可为其中LSB位置中的最后一个RS符号缺少由最后一个MSB RS符号[RS(N)]的最后若干位划分的边界的情况。在此情况中,可将额外位填入于超出最后一个LSB RS符号的末端的LSB位置中以便为终止TCM符号提供LSB位。
在根据本发明实施例的第二方面中,LSB流以一组连续0结束,所述0的数目等于卷积编码器的约束长度K或比所述约束长度K小超过1。在图2的实施例中,可由于与最后一个LSB符号中的最后占位符混合的五个最后0而将约束长度给出为6。当在编码期间提供这些连续0时,其在经解码时呈现已知且无歧义的终止序列,以便避免在解码功能期间出现相关联错误。为此目的,图2展示以TCM(N’)结束的LSB的最后五个数据位是0。就此来说,由于本发明实施例中要求最后K-1个位为0而假定约束长度K=6。应注意,所述五个0位是连续的,因为其是连续数据位。然而,这些连续数据或码位可通过附加码位间隔开,所述附加码位中的每一者使用X标示,因为所述附加码位是响应于预编码数据位而通过卷积编码过程确立的额外位。
图3是图解说明由参考编号300大体指示的卷积编码器的一个实施例的框图。通过穿孔的应用,可增加编码器的输出的码速率。通常,不使用穿孔的卷积编码器针对每一输入位产生两个输出位;在此情况中,码速率是一半,因为所述码速率的一种定义是针对每一输出(经编码)位输入位(未经编码位)的数目。期望相对于输入位的数目减少由编码器产生的输出位的数目使得码速率增加。出于此目的,应用穿孔:这一切意指从编码器的输出位流移除一些输出位使得输入位对输出位的比率增加。此增加编码器的效率,且如果其可在无过量位校正性能损失的情况下实现,那么效率增益可为所要折衷。
图3的编码器300是可编程单位卷积编码器的一个实施例。所述编码器接收串行输入数据流302(由波形指示)作为根据一系列时间增量t呈现的一连串串行单位输入。可针对具有多达移位寄存器元件的数目加1的约束长度的任何卷积码来编程此编码器。针对给定约束长度,所述编码器可适应任何卷积多项式系数及穿孔多项式系数。
在当前时间增量结束时用当前数据位输入更新移位寄存器304(在虚线内展示),同时根据时间增量t以众所周知的方式移位先前存储的数据位。在更新所述移位寄存器之后,在到移位寄存器的输入处呈现序列中的下一数据输入。所述移位寄存器由K-1个单位宽的存储元件构成,其中K是卷积编码器的约束长度。将当前输入状态标示为Dt(0),而将移位寄存器元件标示为Dt(1)、...、Dt(K-2)、Dt(K-1)以表示顺序接收次序。K-1个寄存器位连同当前输入数据位一起用于从编码器产生下一输出。
如所展示,标示为Cb(K-1)到Cb(0)的所存储位表示两个卷积多项式中的第一者。如所展示,组合当前输入数据位Dt(0)与移位寄存器304内容以针对每一输入位产生两个输出值中的一者。应了解,图3概括以使得可将表示系数Cb(K-1)到Cb(0)的任何位组合编程为第一卷积多项式的方式对卷积多项式的使用。将第一卷积多项式的每一位提供到对应“与”门320,使得提供到所述“与”门中的给定一者的值1致使所述“与”门将可为当前位Dt(0)或每一经延迟位Dt(1)到Dt(K-1)的相关联输入数据位传递到“异或”(XOR)322。“异或”322的输出324对应于两个输出值中的第一者。相反地,如果所述“与”门中的所述给定一者接收0位作为卷积多项式的一部分,那么对应输入数据位(当前或经延迟)将不利于由“异或”322确定输出位。在一个实施例中,可将Cb(K-1)到Cb(0)存储于寄存器中。可在操作所述卷积编码器之前将这些寄存器值写入为总体配置的一部分。“异或”322组合来自逻辑“与”功能320的输出。同样,由逻辑“异或”功能322产生的值是由卷积编码器针对每一Dt(0)产生的两个经编码位中的一者。是否将此结果位插入到输出数据流(Eoutb)中取决于所述位是由尚待描述的穿孔功能启用还是禁止。
类似地,如所展示,标记为Ca(K-1)到Ca(0)的所存储位表示第二卷积多项式。与第一卷积多项式的情况一样,可将表示系数Ca(K-1)到Ca(0)的任何位组合编程为第二卷积多项式。将所述第二卷积多项式的每一位提供到对应“与”门330,使得提供到“与”门中的给定一者的值1致使所述“与”门将可为当前位Dt(0)或每一经延迟位Dt(1)到Dt(K-1)的相关联输入数据位传递到“异或”332。“异或”332的输出334对应于两个输出值中的第二者。相反地,如果“与”门330中的所述给定一者接收0位作为卷积多项式的一部分,那么对应输入数据位(当前或经延迟)将不利于由“异或”332确定输出位。在一个实施例中,可将Ca(K-1)到Ca(0)存储于寄存器中。可在操作所述卷积编码器之前将这些寄存器值写入为总体配置的一部分。如所展示,将当前输入数据位Dt(0)及移位寄存器304内容与这些值组合以使用“与”门330及“异或”332针对每一输入位Dt(0)产生第二输出值。“异或”332组合来自逻辑“与”功能330的输出。同样,由逻辑“异或”功能332产生的值是由卷积编码器针对每一Dt(0)产生的两个经编码位中的第二者。是否将此结果位插入到输出数据流(Eouta)中取决于尚待描述的穿孔功能。
在本实施例中,穿孔功能由穿孔型式计数器区段338(在虚线内展示)使用第一穿孔移位寄存器340(在虚线矩形内展示)及第二穿孔移位寄存器342(在虚线矩形内展示)执行。第一穿孔移位寄存器340含有标示为Pa(x)的第一穿孔多项式的系数。将Pa(x)表示为“x”的函数说明包括Pa(x)的值是相对于数据流排序的事实。每一系数值由单个位构成,且构成Pa(x)的位的数目等于约束长度K。认识到,约束长度与穿孔型式长度的相等性对于图3为示范性的;实施例可选择更大或更小长度的穿孔型式。不管长度如何,穿孔型式的循环应用均如所描述。在所述图中所展示的可编程实施例中,用于移位寄存器340的位数目与K的值相同,且因此由卷积编码器的配置确定。针对串行输入数据流302的每一时间增量t更新移位寄存器340。在接收到第一串行数据输入之前,用Pa(x)的值以使得最左侧移位寄存器位置344加载有Pa(x)中的最高有效位且最右侧移位寄存器位置346加载有Pa(x)中的最低有效位的方式初始化移位寄存器340。在输入数据流开始之后,在每一时间增量之后递增穿孔移位寄存器340:存在移位寄存器的内容的逐位从左向右移动,且同时,将最低有效移位寄存器位的内容转移到所述移位寄存器的最高有效位(此为最低有效移位寄存器位的首尾循环移位)。以此方式,在第一输出开关功能350的控制下一次一个位地使用Pa(x)的值。只要所述卷积编码器接收到数据,Pa(x)的值就继续循环。移位寄存器340中的最高有效位始终用作对提供到输出开关350的穿孔的控制。如果最高有效移位寄存器位是逻辑“1”,那么将“异或”功能332的输出插入到输出流Eouta中。另一方面,如果最高有效移位寄存器位344是逻辑“0”,那么禁止(穿孔)“异或”输出332进入输出流Eouta。
使用第二穿孔移位寄存器342以使得反映与第一穿孔移位寄存器340有关的操作的方式来进一步执行穿孔功能。因此,出于简要的目的可能并不完全重复这些操作的描述。第二穿孔移位寄存器342含有标示为Pb(x)的第二穿孔多项式的系数。与Pa(x)的情况一样,将Pb(x)表示为“x”的函数说明包括Pb(x)的值是相对于数据流排序的事实。每一系数值由单个位构成,且构成Pb(x)的位的数目等于约束长度K。此外,在接收第一串行数据输入之前,用Pb(x)的值以使得最左侧移位寄存器位置360加载有Pb(x)中的最高有效位且最右侧移位寄存器位置362加载有Pb(x)中的最低有效位的方式初始化移位寄存器342。在输入数据流开始之后,在每一时间增量之后递增穿孔移位寄存器342。移位以与关于第一穿孔移位寄存器340所述的方式基本上相同的方式发生,使得在第二输出开关功能364的控制下一次一个位地使用Pb(x)的值。移位寄存器342中的最高有效位始终用作对提供到第二输出开关364的穿孔的控制。如果最高有效移位寄存器位是逻辑“1”,那么将“异或”功能322的输出插入到输出流Eoutb中。另一方面,如果最高有效移位寄存器位344是逻辑“0”,那么禁止(穿孔)“异或”输出332进入输出流Eoutb。应了解,第一输出开关350及第二输出开关364是可由所属领域的技术人员在获知本发明整体的情况下以任何适合方式(例如(举例来说)以软件、硬件或其任何适合组合)实施的切换功能的示意性表示。
应注意,与图3有关的所述穿孔过程可导致在每一时间增量处产生的输出的数目变化。举例来说,如果寄存器位置344及360中的最高有效位两者均为逻辑“1”,那么将针对当前时间增量添加两个位。然而,如果这些位中的一者是逻辑“1”且一者是逻辑“0”,那么将针对当前时间增量添加仅一个位;且如果两个位均为逻辑“0”,那么不针对当前时间增量添加输出位。穿孔动作约束输出流相对于输入流的大小,使得针对其中Pa(x)及Pb(x)的所有位均为“1”的未穿孔情况编码器的最大可能扩充是2∶1。输出流大小随Pa(x)及Pb(x)中的“0”值的数目增加而减小。通常,卷积编码器的实施方案利用输出流相对于输入流的某一扩充以便在解码期间发生所要的错误校正行为。一个有用的扩充率是3∶2,且此为图2中所图解说明的情况,其中每一RS LSB符号含有15个位而非10个。图2中的LSB符号中添加的“X”图解说明TCM符号中的此扩充。
图4是图解说明图1的编码器区段20的一个实施例的框图。应注意,支持组件块之间的数据流的线具有与每一线所输送的位数目连同所述图的约束内的数值标示符成比例地变化的线厚度。应了解,编码器区段20实施图2的所存储数据结构。就此来说,以非限制性实例的方式,图4通过在非易失性存储器14中实施每单元4个位的存储而与图2相一致。出于创建图2的数据结构的目的,如将看出,编码器20从RS符号输入流产生预编码TCM符号。通常,在每单元4位的配置中,每一预编码TCM符号由四个位构成。这些位又由一个LSB及三个MSB构成。在一些情况中,LSB可以是为稍后的卷积编码做准备而插入的占位符X,使得稍后由附加码位填充所述占位符。应注意,卷积编码过程分别用附加码位及码位来替换占位符及预编码数据位两者。如所提及,稍后通过针对MSB的映射功能及针对LSB的卷积编码来对预编码TCM符号进行编码。在每一预编码TCM符号中,通过将三位字段变换成其经编码形式的映射功能来编码三个MSB位。将LSB位添加到卷积编码器输入流并由来自所述卷积编码器的输出的下一位替换所述LSB位。在所述LSB位创建功能期间,根据针对所述配置选择的穿孔型式插入占位符字段X。稍后在应用于预编码LSB的卷积编码过程期间由来自卷积编码器的位替换这些占位符字段。
鉴于对编码器区段与解码器区段之间的协作的需要,应了解,给定解码器实施方案可对一些控制参数的范围施加限制,使得所述给定解码器能够支持一些编码配置(举例来说,每单元的位数目)但不支持其它配置。在一些实施例中,可将特定解码器设计为以特定配置为目标且忽视其它配置。举例来说,解码器可支持每单元三个位及每单元四个位的密度设定,但不支持每单元五个或五个以上位的密度设定。以此方式使解码器设计彼此不同的功能性表示全部被视为归属于本发明范围内的实施例,因为每一实施例仍然包含用以错误校正的常见方法。
参考图1且在继续图4的详细描述之前,应注意,从一个系统子块移动到另一系统子块的信息通常被组织为符号流。在从主机12到NV存储器14及沿反方向从NV存储器14到主机12的进程中,数据经历各种表示:从用户数据形式经过里德所罗门符号、接着在编码器功能期间以NV存储器单元目标终结的中间符号,及在解码器功能期间从NV存储器单元目标返回到用户数据形式。在编码器及解码器功能两者中,在每一步骤处的数据作为有序符号流经历其产生到其消耗,其中每一流包括特定数目个符号。
再次关注图4的编码器20。里德所罗门(RS)编码器402接收由主机12(见图1)提供到编码器的用户数据404。通常,用户数据404可为彼此具有有序关系的特定数量个8位单位(字节)。可根据其它位数量来组织所述用户数据,同时容易地保持在本文已揭示的教示的范围内。因此,可在下文中将用户数据论述为由若干字节组成,同时所属领域的技术人员认识到对任何其它适合单位的使用对实施方案将不具有实质性影响。用于任何编码操作的用户数据单位的数量是由编码器使用的参数且应用于RS编码器402的操作。在一个实施例中,将用户数据单位的数量(用户数据长度)编程到如参数寄存器区段410描绘的寄存器中。如果RS符号单位具有与呈字节形式的用户数据不同的数目个字节,那么将用户数据字节转换成一组RS符号之后RS编码器才可对所述用户数据字节进行操作。在本发明中呈现的示范性形式的RS单位(符号)是10个位,但其它RS单位大小是可能的且仍在本文教示的范围内。在本实例中,用户数据到RS符号的转换是字节到10位符号的简单转换;实际上,转换后的结果针对每五个用户数据字节(5×8个位)产生四个RS符号(4×10个位)。由于任何给定数目个用户数据字节必须可转换成整数数目个RS符号,因此可将一些“随意”位插入到RS结果的最后符号中。由用户数据到RS的转换产生的RS符号的数目(称为“RS数据长度”)是由微处理器或CPU 412编程到参数寄存器区段410中的额外参数。如所展示,运行时RS数据长度414是到编码器的运行时输入。特定来说,将RS数据长度414提供到RS计数器420。通常,运行时RS数据长度414的值源自存储于参数寄存器区段410中的RS数据长度的值。运行时RS数据长度与存储于参数寄存器区段410中的RS数据长度之间的联系可为直接或间接(经修改)的,在特定实施例中以最适当为准,如将进一步描述。
应注意,RS编码器402及卷积编码器300两者扩充其作为其执行的编码功能的必要部分而编码的数据的大小。此扩充由冗余信息的添加招致,随后解码过程将使用所述冗余信息来移除可能已引发的招致。由RS编码器402进行编码会添加RS奇偶符号,而由卷积编码器300进行编码会将额外位添加到经编码的位流。本发明中所使用的码效率是此冗余相对于正存储及检索的用户数据量的度量。可将码效率解释为通常针对较低冗余量较佳而针对较高冗余量较差的相对值。可将码效率的一个经验度量视为用户数据单位中的位的总数与图4的编码器在编码所述用户数据单位时所产生的位的总数的比率。作为简单实例,考虑由编码功能编码的512个字节(4096个位)的用户数据单位,所述编码功能将所述4096个输入位扩充600个位。所述600个位是添加到4096个信息位的冗余。则码效率为4096/(4096+600)或87.2%。所属领域的技术人员在实际技术中使用各种经验度量来测量码效率。在本发明中先前已论述的这些经验度量中的一者是码速率。
应进一步了解,在至少一些实施例中,码效率可为变化的。与相对较低的码效率相比,较佳码效率的效应通常分别是较低错误校正容量与较高错误校正容量之间的差。译码配置由随后将描述的一组可编程参数界定,且这些可编程参数的值可经调整以便产生不同的码效率。参数寄存器410中的值对较大或较小程度的码效率来说均为决定性因素,因此码效率是在必要时可在逐码字基础上调整的配置属性。
RS数据长度是由长若干用户数据长度单位的一组用户数据符号(通常为若干字节)构造的RS符号的数目。图4的用户数据符号可各自被视为8个位宽,且每一RS符号可被视为10个位宽。因此,用户数据长度8位符号到各自为10位宽的RS数据长度RS符号的转换是将用户数据长度乘以8/10。如果在执行此乘法之后剩余一分数RS单位(即,少于10个位),那么通过添加使最后一个符号长度达到10个位所必需的任意数目个位来将分数部分上舍入为10个位。因此,在一些实施例中,可从用户数据长度直接导出RS数据长度。在其它实施例中,可将RS数据长度实施为独立的寄存器值。任一形式的实施例可为适当的。
RS编码器20使用由用户数据404产生的RS符号并计算称为奇偶符号的一组额外符号。所述奇偶符号是长度为“RS奇偶长度”的一组额外有序RS符号,其被附加到从用户数据转换获得的RS符号。所述RS奇偶长度的值通常可从参数寄存器区段410获得。用户数据符号与奇偶符号的所得组合称为RS码字。所述RS码字的长度是可在参数寄存器区段410中获得但还可作为也可在参数寄存器区段410中获得的值RS数据长度与RS奇偶长度的简单总和而获得的系统参数。术语“RS码字”在用于里德所罗门编码与解码的背景中时具有特定含义;其还为相关学科的从业者所众所周知的,且因此出于简要的目的通常将不再重复关于里德所罗门译码的理论的细节[举例来说,见威克(Wicker)、斯蒂芬B.(Stephen B.)的“用于数字通信与存储的错误控制系统(Error ControlSystems for Digital Communication and Storage)”(1995年,普伦蒂斯-霍尔出版社(Prentice-Hall),第238到239页)]。编码器使用所述码字长度来完成编码操作。应注意,RS奇偶长度与由RS编码器添加的冗余量成比例,且根据称为“T”(其是目标符号校正容量)的参数确定。通常,针对具有给定符号校正容量的给定RS码字,所述系统能够校正所述RS码字中的多达某一数目个RS符号。增加T的值产生校正所述码字中的额外RS符号的能力。所述RS码字是来自RS编码器402的输出。RS数据长度、RS奇偶长度及RS码字长度的参数由随后接收RS编码器结果的组件使用。
结合图4参考图2,多路复用器424将从RS编码器402出现的RS符号引导到两个路径中的一者:MSB路径426或LSB路径428。在已完成RS编码过程之后,编码器20经配置以接着格式化数据流以用于TCM及卷积编码。针对不同编码实施例,RS符号输入流相对于TCM要求的布置导致以不同比例将RS符号分配给LSB区段及MSB区段,如在图2的数据结构100中所见。也就是说,与分配给LSB路径的数目相比,将大得多的数目个RS符号分配给MSB路径。在图2的实施例中,在每单元四个位的情况中针对10位RS符号将RS符号分配给TCM编码。两个计数器(MSB计数器430及LSB计数器432)将每一传入RS符号的目的地确定为在MSB路径426与LSB路径428之间。一般来说,MSB计数器及LSB计数器的状态确定是否需要另一RS符号,且如果需要那么确定将所述符号引导到的目的地(MSB侧或LSB侧)。如果MSB及LSB计数器两者的状态指示需要另一RS符号,那么首先针对LSB侧取得RD符号,且其次针对MSB侧取得RS符号。更特定来说,特定RS符号是变为MSB编码还是LSB编码的一部分由可从将进一步描述的以下各项导出的MSB/LSB序列型式确定:(i)一组编码参数,包含(举例来说)RS符号宽度,(ii)TCM卷积编码的方面,(iii)穿孔多项式,及(iv)位密度。基于所述序列型式,使用所述MSB及LSB计数器,因为每一RS符号值变得可用于向MSB缓冲器440或LSB缓冲器442供应。
MSB计数器430追踪MSB缓冲器440中的位数目。在从RS编码器402取得第一RS符号之前将MSB计数器初始化为0。在本实施例中,MSB计数器针对第一RS符号及针对取到MSB缓冲器中的每一额外RS符号递增10。所述MSB计数器针对从缓冲器传出以沿MSB路径426继续的每一3位字段递减3。当MSB缓冲器为小于3的计数或逻辑检测到其将在下一使用循环上递减到0时,从输入流取得下一RS符号以分配给MSB路径且使计数器值递增10。
LSB计数器432追踪LSB缓冲器442中的位数目。在从RS编码器402取得第一RS符号之前将LSB计数器初始化为0且LSB计数器针对取到LSB缓冲器中的每一额外RS符号递增10。所述LSB计数器针对从缓冲器传出以在LSB路径428上继续的每一位递减1。当LSB计数器递减到0,或逻辑检测到其将在下一使用循环上递减到0时,从输入流取得下一RS符号以分配给LSB路径且使计数器值递增10。在MSB计数器430及LSB计数器432两者进入同时请求另一RS符号的状态时的情况中,按优先级将下一RS符号取到LSB缓冲器中,其中将后续RS符号分配给MSB缓冲器。
MSB缓冲器440从多路复用器424接收引导到此区段的RS符号。将所述符号写入到此缓冲器以随后用于MSB编码路径426中。在每单元四个位配置的示范性实施例中,如所描绘,MSB缓冲器440中的位被一次3个位地消耗,即,在每一使用循环上创建额外预编码TCM符号,其从MSB缓冲器取得用作下一TCM符号的3个MSB的3个位同时从LSB缓冲器取得一个LSB位。然而,在将插入占位符的情况下,并非从所述LSB缓冲器取得位。同样,此实施例为示范性的,因为可通过更改控制参数而将其它配置应用于同一编码器。举例来说,可编程每TCM符号3位的实施例,其中MSB缓冲器消耗处于每TCM符号两个位而非三个位的速率。
来自MSB缓冲器的输出446是针对每一TCM符号的三位值。三个位的MSB群组对于此图为示范性的。一些实施例可采用此值以及其它值。举例来说,每单元3位的位密度设定可具有3位TCM符号,其中每TCM符号存在1个LSB位及2个MSB位。认识到具有MSB宽度及LSB宽度两者的变化的其它TCM符号格式。MSB缓冲器输出446是进入尚待描述的编码逻辑的数据路径的一部分。MSB位是到尚待描述的MSB映射功能450的输入。
LSB缓冲器442从多路复用器424接收RS符号,且将所述RS符号写入到LSB缓冲器以随后用于LSB编码路径428中。在所描绘的每单元四位的实施例中,由于待应用的卷积编码而以每TCM符号少于一个位的速率消耗LSB缓冲器中的位。由于在正使用MSB路径426及LSB路径428产生TCM符号时尚未应用卷积编码,因此在此阶段处的TCM符号可称为预编码符号。一些预编码TCM符号的创建需要从LSB缓冲器提取一位,且所述预编码TCM符号中的一些符号不需要额外LSB缓冲器位,因为在此时刻正插入占位符位而非基于用户数据的位。读者将回想起,这些占位符位可由图2的LSB RS符号中的符号X表示,且这些占位符位稍后由通过卷积编码产生的附加码位替换以作为数据结构100的一部分。如下文将详细描述,穿孔多项式型式控制在LSB缓冲器位或TCM符号序列中的占位符位之间的选择。
如上文所论述,LSB符号位是每循环一个位或零个位地从LSB缓冲器取得并被断定到LSB路径428。出于本论述的目的,术语“块”对应于存储在414处的值‘TCM符号的数目’。作为0的约束长度是块的最后LSB的块保证的结束,限制比较器454及限制逻辑456强制这些位值在所述块的最后K个位期间为0,其中K是待应用的卷积码的约束长度,如上文关于图2所论述。特定来说,在图2中将TCM符号TCM(N’)、TCM(N’-2)、TCM(N’-3)、TCM(N’-4)及TCM(N’-6)的LSB位强制为0。
MSB映射功能450在MSB路径426上接收MSB且可将MSB位型式从在接收时的未经编码的表示转换为既定减少在回读时发生错误的情况下可出现的位故障的数目的表示。在一个实施例中,所述映射是从格雷码表示到二进制表示的转换。应注意,将传入数据处理为经格雷译码是任选的。此外,应了解,可采用任何适合的可逆映射功能且以非限制性实例的方式描述格雷译码的使用。映射功能450成群组地接收MSB(在本实施例中,三者的群组)并针对由相同数目个位构成的每一群组产生输出462。将输出462与由前述卷积编码器300产生的对应LSB并置,并将其转发到电平/数/模转换器(DAC)472。所述LSB可为响应于用户数据或如图2的RS LSB中所展示且上文所描述的X位置中的码位的位。
结合图4参考图3,卷积编码器300可借助于限制逻辑456从LSB缓冲器442接收当前LSB位。所述卷积编码器在接收到LSB时一次一个位地作用于所述LSB。编码服从到卷积编码器300的输入的各种参数。这些参数包含其中约束长度本身可为参数的卷积多项式及穿孔多项式。在具有单个LSB的系统中,依照本发明实施例,通常存在两个卷积多项式(见图2中的Ca(0)到Ca(K-1)及Cb(0)到Cb(K-1))及两个穿孔多项式(举例来说,存储为图2中的Pa(x)及Pb(x))。这些多项式中的每一者的值可随给定实施例而变化。在并入有一个以上LSB的系统中,存在作为参数需要的额外卷积多项式及穿孔多项式。在一些实施例中,这些参数可由系统微处理器412按由所述微处理器执行的固件480的引导编程到与卷积编码器相关联的寄存器中。
参考图4,电平/DAC转换器472的输入482接收每一TCM符号的MSB群组及相关联LSB。经编码的LSB及MSB流可分别从卷积编码器300及MSB映射器450获得。这两个所得数据流与现在TCM符号流在转换器472的输入482处完整的效应合并。关于展示用于MSB的3个位及用于LSB的1个位的事实,此图中的数据路径宽度为示范性的;关于MSB及LSB两者可能有其它配置。每一TCM符号可包含多于或少于3个MSB,且每TCM符号可包含多于1个LSB位。电平/DAC的输出484被引导到图1的NV存储器14。电平/DAC 472可根据同与将写入到每一NV存储器单元中的数据位的模拟值有关的要求相关的参数对每一TCM符号执行最终调整。举例来说,所述调整可涉及将偏移值应用于TCM符号及/或所述调整还可为相对于单元目标范围压缩或扩充TCM符号值的缩放变换。电平/DAC 472可由参数寄存器410中的由微处理器412与系统固件480协作地编程的参数控制。
现在关注关于RS计数器420的额外细节。可用将从RS编码器402呈现的RS符号414的运行时数目来初始化此计数器。存储为RS符号的运行时数目的值可高达整个码字或更长,其中所述码字是一RS码字或某一整数数目个RS码字。如果采用交错,那么所述数目可为由存储于参数寄存器区段410中的交错因数所暗示的码字的整数数目。RS符号计数器420针对由多路复用器424接收的每一RS符号递减1。在RS计数器递减到0以用信号通知当前传送的结束时,指示RS块的结束,其中出于本论述的目的,术语“RS块”对应于RS符号的运行时数目的值。特定来说,LSB限制490为常数,且与RS计数器420中的值进行比较。所述RS计数器最初作为大于LSB限制490的值开始。由于RS计数器随着所传送的每一RS符号而递减,因此由所述RS计数器存储的值最终递减到其变得等于LSB限制计数的点,此由RS/LSB限制比较器454确定。在RS计数变得小于LSB限制时的点处插入/填补零。如上文所述,填补所述零作为预编码TCM符号流的LSB以形成数据结构100(图2)的一部分以用于指示存储器中的数据结构的末端的目的。
如上文所述,可从参数寄存器410提供运行时RS长度输入414。所述运行时RS长度输入的值可用于在通过用户数据输入序列定序之前初始化RS符号计数器420。所述值表示RS编码器402将通过对用户数据流进行RS编码而产生的RS符号的数目。
在用户数据流进入编码器20之前用来自运行时穿孔型式输入488的值初始化穿孔型式计数器486,且穿孔型式计数器486实施图3的穿孔型式计数器区段338。型式输入488可存储从参数寄存器区段410获得的第一及第二穿孔多项式。穿孔型式计数器486在产生构成预编码TCM符号的LSB流时控制占位符位产生(图2的RS LSB符号中的X位置)。穿孔型式是具有在图2中与卷积编码器300的约束长度相同的长度的位型式,然而,其它实施例可使用大于或小于所述约束长度的穿孔位型式长度。在处置用户数据符号流之前用穿孔型式值预设穿孔型式计数器486。如上文关于图3的穿孔型式计数器区段338所描述,穿孔型式计数器486针对所创建的每一TCM符号使穿孔型式的值旋转一个位位置,使得同一穿孔型式计数器位位置(即,图3中的Pa(x)及Pb(x)的最左侧位)始终应用于当前编码。由于卷积编码器在不存在穿孔的情况下针对每一输入位产生两个输出位,因此添加穿孔型式会将此比率减小到小于2∶1的某一值。穿孔型式计数器控制每一预编码TCM符号的LSB是扩充位(占位符X)还是来自输入LSB流的位。所述穿孔型式计数器将输出提供到卷积编码器300以及LSB缓冲器486,使得所述穿孔型式计数器及LSB缓冲器出于在LSB缓冲器的输出处的LSB路径中产生占位符的目的而协作。
RS/LSB限制比较器454在TCM编码的RS块的末端处开始起作用,其中有必要将经预编码的TCM符号流的最后K-1个LSB位断定为0(其中K是卷积编码器的约束长度),如借助图2中且上文所描述的实例所见。LSB限制计数是作为LSB限制值490获得且在逐时间增量的基础上与RS符号计数器420的计数进行比较以提供何时将预编码LSB流强制为0的指示。此允许卷积编码器300将已知闭包序列编码成经编码TCM符号序列,其中结果是在解码时避免了RS块末端闭包位解码错误。LSB限制值490可(举例来说)从参数寄存器区段410中的卷积约束长度产生,且可在使用RS/LSB限制比较器454处理用户数据流之前作为初始值应用。
在编码用户数据符号流之前初始化TCM计数器492。此值对应于将由根据参数寄存器区段410所反映的所述组配置参数编码整个用户数据流产生的TCM符号的数目。可从TCM块计数输入494初始化所述TCM计数器。TCM计数器值控制TCM编码的定序并提供用于终止每一TCM符号序列的TCM块末端准则。作为参数值,TCM符号计数可根据其它配置参数计算且表示根据所述组配置参数从特定长度的用户数据流产生的TCM符号的准确数目。举例来说,所述TCM计数器将序列末端准则提供到CPU 412。所述TCM计数器提供待在特定传送中传递的符号的准确数目的度量。此计数器可用所述数目来初始化并倒数计数到0,或所述计数器可最初被清零并正数计数到预期值。无论如何,所述TCM计数器将序列末端信号提供到系统。
TCM块计数输入494是根据参数寄存器区段410中所提供的TCM码字长度的值驱动,且供应在编码用户数据符号流之前借以初始化TCM计数器492的TCM块计数值。
如上文所述,限制逻辑456由RS/LSB限制比较器454控制,且允许预编码LSB从LSB缓冲器未经修改地传递到卷积编码器,或出于提供用于终止总体RS符号传送的序列末端指示的目的而在上文所述的零填补程序中将卷积编码器输入LSB选择性地强制为0。出于本文的目的,应注意,在里德所罗门编码器402的输出之后直到且包含MSB缓冲器440及限制逻辑456以及相关联组件的组件可称为压缩布置496。包含映射器450、卷积编码器300及相关联组件的组件可称为映射布置498。可将所述压缩布置称为产生经重新组块的输出数据流使得所述经重新组块的输出数据流的至少一个部分而非全部经配置以服从基于卷积码的码效率。此外,所述压缩布置适于修改经重新组块的输出数据流以基于改变提供到所述压缩布置的一个或一个以上输入参数的一个或一个以上值而支持与输入流中的预定数目个里德所罗门符号相关联的卷积码的码效率的改变。
参考图1及4,微处理器/CPU 412可以任何适合形式提供,例如(举例来说)以嵌入式控制件的形式(其中所述处理器在来自主机12(图1)的引导下专用于操作编码器20、解码器22(图1)及NV存储器14(图1)),且充当固件480的执行平台。固件480是使用嵌入式控制器的一个实施例的软件组件。所述固件在来自主机12(图1)的引导下实施编码器20(图1)、解码器22(图1)及NV存储器(图1)的控制。
参考图4,参数寄存器区段410可构成可由微处理器412在固件480的控制下存取的寄存器群组。存储于这些寄存器中的值起作用以界定编码配置并经由CPU 20及固件480或经由可由编码器的一些组件直接存取的寄存器控制编码器的动作。应注意,已在上文论述的背景中描述寄存器参数中的一些参数。然而,出于实现更进一步清晰的目的,随即将在下文中更详细地描述参数寄存器区段410。
进一步描述图4的参数寄存器区段410中所展示的参数值,如下:
用户数据长度:用户数据块的长度(以字节为单位)或用户数据的单位长度。以非限制性实例的方式,适合的用户数据长度包含512个字节、1024个字节或由编码器/解码器的特定实施例支持的任何其它适合长度。
RS校正容量:也称为“T”,界定RS错误校正码在单个码字中能够校正的RS符号的最大数目。此值乘以2界定每一RS码字中的奇偶符号的数目。
RS数据长度:用户数据块在其已从字节转换成RS符号之后的长度。如此,在用户数据长度与RS数据长度之间存在直接关系。然而,由于如果用户数据流不映射到整数数目个RS符号中那么必须将位添加到经转换的RS符号流,因此通常将所述RS数据长度作为独立值维持于参数寄存器区段中。
RS奇偶长度:为构造单个RS码字而附加到RS数据长度的RS奇偶符号的数目。RS奇偶长度的值由RS校正容量(T)的值直接暗示。实施例可将此值维持于独立寄存器中,或其值可从RS校正容量(T)导出。
RS交错因数:在RS译码应用中的常见做法是通过交错来编码与解码每RS块一个以上RS码字。举例来说,在上文并入的‘546申请案的图12及13中展示了此交错。如果在配置中存在交错,那么此参数的值是简单整数。由于可由特定实施例来约束交错,因此可存在对交错数目的相对小的限制。如果针对特定实施例界定交错,那么RS数据长度、RS奇偶长度及RS码字长度的值可适用于经组合交错的相应长度,或这些值可反映单一交错的相应长度。关于交错处置的此些变化是取决于实施例的。
卷积约束长度:如果卷积编码器可编程(如图3的实施例300),那么卷积约束长度(K)的值可编程及存储于参数寄存器区段中。另一方面,如果卷积编码器是针对固定约束长度而配置,那么可不需要登记K的值。
第一卷积多项式:由卷积编码器使用的两个卷积多项式中的第一者。参见图3对卷积编码器如何使用卷积多项式的图解说明及解释。
第二卷积多项式:由卷积编码器使用的两个卷积多项式中的第二者。参见图3对卷积编码器如何使用卷积多项式的图解说明及解释。
第一穿孔多项式:由卷积编码器使用的两个穿孔多项式中的第一者。参见图3对卷积编码器如何使用穿孔多项式的图解说明及相关解释。
第二穿孔多项式:由卷积编码器使用的两个穿孔多项式中的第二者。参见图3对卷积编码器如何使用穿孔多项式的图解说明及相关解释。
位密度设定:表示当前操作配置中的位密度设定。通常,所述值是表示每存储器单元所存储的数据位数目的简单整数。然而,当使用每单元分数位的设定(例如,3.8)时,所述值可不同于简单整数。在此情况中,基于由逻辑解释的经编码值而提供所述位密度设定。举例来说,可通过以每单元3个位来编程存储器单元中的一半并以每单元4个位来编程所述存储器单元中的另一半而实现每单元3.5个位的平均位密度设定。例如图2中所展示的TCM编码的使用通常针对位密度设定使用每单元至少3个位。在下文中的适当点处将进一步详细论述分数位译码。
TCM中的MSB宽度:每一TCM符号中的MSB位的数目。位密度设定的值给出整个TCM符号的宽度,分数位密度设定除外,在此情况中呈现给每一存储单元的TCM值是从位密度设定上舍入的下一最高整数值。则MSB位的数目是TCM符号的分配给所述符号的MSB部分的那部分。TCM中的MSB宽度是TCM符号宽度与LSB数目之间的差。举例来说,在每TCM符号四个位下,其中单个位用于所述符号的LSB部分,作为TCM宽度的一部分的MSB宽度是4-1=3。
TCM中的LSB宽度:每一TCM符号中的LSB位的数目。位密度设定的值给出TCM符号本身的宽度,分数位密度设定除外,在此情况中呈现给每一存储单元的TCM值是从位密度设定上舍入的下一最高整数值。则LSB位的数目是TCM符号的分配给所述符号的LSB部分的那部分。TCM中的LSB宽度是TCM符号宽度与MSB数目之间的差。举例来说,在每TCM符号四个位下,其中3个位用于所述符号的LSB部分,TCM值中的LSB宽度是4-3=1。
TCM码字长度:根据上文所述参数的特定组合而界定的配置构成若干字节的经编码用户数据长度的TCM符号的总数。由于TCM码字长度的值是RS与卷积码参数的函数,因此其可作为参数寄存器区段的一部分存储于独立寄存器中。
应了解,码效率由参数寄存器区段410所给出的参数的组合值确立。因此,通过修改参数寄存器区段中的一个或一个以上参数值,码效率将响应于参数值的改变而改变。申请人并不知晓供和提供与在逐码字基础上一样快地修改码效率的灵活性的非易失性存储器一起使用的任何系统。此灵活性增强系统(举例来说)关于数据吞吐量、存储器存储容量及存储器随时间降级的适应的操作。通常,可通过添加冗余来实现较高的位密度。所述冗余趋向于在RS容量设定较高及穿孔较少的情况下较大。较高密度通常与较高冗余相关。通常可在冗余较高但对密度的强调较少的情况下实现存储器降级的适应,使得较强大的编码与解码设定可抵消受降级影响的存储器所展现的错误的较高趋向。
下文表1提供使用确立TCM码字长度的参数值的模拟实例。所述参数包含位密度、用户字节的数目、RS交错的数目、T(RS校正容量)、RS数据符号的数目、RS奇偶符号的数目、卷积多项式及穿孔多项式、MSB及数目及TCM码字长度。应注意,约束长度与卷积多项式中的系数的数目相同。在这些实例中,在卷积多项式中存在6个系数(位),因此卷积编码器/解码器的约束长度为6。
表1
参数名 实例1 实例2
位密度 4 3
用户数据长度 2048 2048
交错的数目 4 4
软T 10 10
RS数据长度 1639 1639
RS奇偶长度 80 80
第一卷积多项式 110101 110101
第二卷积多项式 101111 101111
第一穿孔多项式 111111 111111
第二穿孔多项式 101010 101010
MSB的数目 3 2
TCM码字长度 4690 6305
这些模拟实例是使用具有表1中指定的参数的编码器与解码器配置的模型实施的。鉴于此处所提供的细节,考虑到所属领域的技术人员可易于就TCM码字长度对任何影响参数的相依性来确定所述TCM码字长度。
图5图解说明由参考编号500大体指示的方法的一个实施例,其可在图4的编码器20上操作且同样适用于其它实施例。举例来说,方法500适用于使用除每单元4个位之外的位密度的实施例。
方法500在开始步骤502处开始并继续进行到设置504。在步骤504中,可将各种参数加载到图4的参数寄存器区段410以及任何其它所要寄存器位置中。应了解,所述参数中的一些参数可为用户指定的,例如(举例来说)用户数据长度、RS校正容量,而其它参数(例如(举例来说),RS奇偶长度)可基于用户指定的参数来确定。由方法500处置的数据流以具有通常以8位字节为单位的用户数据单位的用户数据开始。如将所见,方法500的结果呈经TCM编码的值的形式,其中这些值中的每一者表示存储媒体的一个单元的目标值。输出值是基于每单元3个位或更多的编码器的配置的函数。
在压缩步骤506处,将长度‘用户数据长度’(见图4中的参数寄存器区段410)的用户数据转换成由RS符号构成的‘RS数据长度’(见图4中的参数寄存器区段410)。如果‘用户数据长度’用户数据符号不映射到整数数目个‘RS数据长度’RS符号中,那么将已知值(即,全部为0或全部为1)的位插入到最后一个RS符号的未映射部分中。因此,产生RS符号流。
步骤508通过最初确定RS奇偶值来起始所述RS符号流的处置。通过计算‘RS奇偶长度’(见图4中的参数寄存器区段410)来编码从步骤506获得的长度‘RS数据长度’的RS符号。RS奇偶计算是所属领域的技术人员众所周知的。如果配置经由RS交错因数(见图4中的参数寄存器区段410)指定一个以上交错,那么针对所述配置中所给出的交错的数目来计算RS奇偶符号。由步骤508产生的输出是具有长度‘RS数据长度’加‘RS奇偶长度’的一组RS符号。
步骤510将从步骤508产生的RS符号分离成MSB子组及LSB子组。接着,通过步骤511a随后处理所述LSB子组,同时通过步骤511b随后处理所述MSB子组。在每单元4个位的位密度的示范性情况中,与和图2相一致的方式彼此成比例地创建MSB及LSB符号。
步骤511a通过计算提供将通过步骤512处的卷积编码对LSB位流做出的添加的占位符位置来扩充LSB符号。可如关于图3所描述来确定占位符位置。除从LSB RS符号取得的LSB数据以外,占位符创建操作还创建空位位置。
步骤511b将LSB RS符号压缩到一组3位MSB字段中,其中每一MSB字段对应于一个TCM符号。此时,尚未编码所述3位字段。在步骤511c的压缩结束时,所创建的3位字段的总数等于LSB位外加占位符的总数。
通过步骤510将由步骤508产生的RS符号压缩成预编码TCM格式,其插入在图2的LSB中所见的X占位符。此步骤将所述组RS符号转换成‘TCM码字长度’(见图4中的参数寄存器区段410)数目个经预编码的TCM符号。在此上下文中,“预编码”指代各自具有MSB部分及LSB部分但尚未由图4的MSB映射区段450及卷积编码区段300格式化的TCM符号的格式。如此,所述LSB呈与X占位符混合的一系列未经卷积编码的数据位的形式。
步骤512及514响应于步骤510而以协作方式操作。在步骤512中,对‘TCM码字长度’(见图4中的参数寄存器区段410)LSB执行卷积编码(见图3及4中的项300)以便产生‘TCM码字长度’经卷积编码的LSB。也就是说,由码位替换图2中的LSB的X标示符。如果配置经由‘位密度设定’、‘TCM中的MSB宽度’及‘TCM中的LSB宽度’(见图4中的参数寄存器区段410)指定每TCM符号一个以上LSB,那么可指定借以每定时增量编码一个以上LSB的适当编码器布置。举例来说,图2的位b0及b1两者均可经受卷积编码。步骤512产生LSB符号流,其具有数目‘TCM码字长度’(见图4中的参数寄存器区段410)作为所述流中的LSB符号的数目。所述LSB符号具有宽度‘TCM中的LSB宽度’(见图4中的参数寄存器区段410)。应了解,针对一个LSB的情况(即,b0是如图2中所展示的仅有LSB),LSB符号各自由一个位构成。
在步骤514中,通过将每一MSB的值变换成以TCM编码为目标的经变换值来执行MSB映射。如上文所述,依照图2,三位MSB是示范性的,且可在本发明的范围内使用任何其它适合编组。在本实例中,所述映射是从一个3位值到符合TCM编码准则的另一3位值,如所属领域的技术人员在获知本发明整体的情况下将理解。此处,作为任选步骤,将传入的3位值处理为经格雷译码的值并映射成二进制值(见图4中的映射器450)。在归属于本发明范围内的实施例中,映射功能可经由逻辑门实现或使用查找表来实施。可针对此映射功能实施其它变化。步骤514产生具有长度‘TCM码字长度’的MSB符号流(见图4中的参数寄存器区段410)。每一MSB符号具有对应于‘TCM中的MSB宽度’(见图4中的参数寄存器区段410)的宽度。
在步骤516中,将来自步骤512的经卷积编码的LSB及来自步骤514的经映射MSB合并成单个经编码TCM符号流,所述符号流具有对应于‘TCM码字长度’(见图4中的参数寄存器区段410)的值的长度。经编码TCM符号具有对应于‘位密度设定’(见图4中的参数寄存器区段410)的值的宽度。来自此步骤的输出符号是待应用于存储器中的个别单元位置的目标电平。如上文关于图4所述,可对经编码符号应用所述电平的额外缩放。然而,此缩放是任选的,且可应用或可不应用。
步骤518将所述目标电平转换为写入到存储器单元中的个别者的模拟值,且所述方法在520处结束,以根据后续数据操作而重新开始。
图6是根据本发明产生的图1的解码器22的一个实施例的框图。通常,解码器22以使得不仅获得原始用户数据作为结果而且检测并消除在反向过程(解码)期间遭遇的错误的方式反转图4的编码器20的变换。考虑到所属领域的技术人员鉴于本发明整体可产生其它实施例。
如图6中所展示,解码器在输入602上接收TCM符号。TCM符号为由于读取存储器而感测的电压的模/数转换所产生的值。输入602接收ADC值,因为这些值由响应于读取存储器单元而产生每一ADC值的模/数转换器(未展示)产生。模/数转换功能通常位于如图1中展示的NV存储器14中,然而,一些实施例可将所述模/数转换功能定位于解码器22中。虽然图6未展示存储器本身,但所述存储器相对于解码器的布置与图1中所展示的布置相同,其中存在相对于解码器22来自NV存储器14的输入连接。此连接可被理解为包含用于多路复用的措施使得可存取所述存储器的完整范围。应了解,ADC值事实上是根据图2的数据结构存储的TCM符号。因此,一系列ADC值表示从图2的数据结构读取且将经受解码的TCM符号流。在解码后,在所述图的右侧上的输出604上出现用户数据符号流。
以特定方式配置以用于将数据存储于存储器14中的编码器的实施例将在所述数据的回读之后即刻导致给所述解码器呈现各自具有特定数目个位的特定数目个TCM符号。因此,所述回读的控制参数与相对于图2及4所论述的那些控制参数相同。尽管图6的实施例是示范性的且描绘具有每单元4位的密度及每TCM符号1个LSB位的配置,但可在本文教示的范围内配置其它解码器实施例以与其它位密度设定(例如,每单元3个位或每单元5个位)及每TCM符号一个以上LSB位一起操作。此外,根据本发明的实施例可针对TCM符号的输入流的长度适应许多可能性。至少部分地通过响应于例如(举例来说)由参数寄存器区段410提供的参数的参数而配置所述解码器的特定实施例来提供此灵活性。就此来说,应了解,参数值可出于编码或解码的目的至少逐码字地响应于传入符号流而即时改变。
给定解码器实施例可对一些控制参数的范围施加限制,使得解码器能够支持一些数据配置但不支持其它数据配置。因此,可将特定解码器实施例设计为以特定数据配置为目标且可忽视其它数据配置。举例来说,解码器实施例可支持每单元三个位及每单元四个位的密度设定,但不支持每单元五个或五个以上位的密度设定。然而,以此方式使解码器实施例彼此不同的功能性表明归属于本文教示的范围内的用以错误校正的常见方法且因此表明相似益处。
参考图6,维特比(Viterbi)解码器/检测器610在LSB路径612上从传入的TCM符号流接收LSB,所述TCM符号流由从存储器读取的单元值的模/数转换产生。通信工程领域的技术人员将熟悉此维特比检测器,且因此出于简要的目的此处将不重复这些描述。从模/数转换接收的TCM符号中的每一者具有与原始经编码流相同的结构(见图2),只不过可将额外位附加到每一符号的最低有效部分。这些额外位由高分辨率模/数转换产生,且提供具有与每一LSB有关的精确度的额外位。换句话说,可以比写入TCM符号的分辨率高的位分辨率回读所述TCM符号。这些额外位称为“软位”且由维特比检测器用来以比在没有所述软位的情况下将可能实现的分辨率更高的分辨率来感测每一LSB的值。使用软位的维特比检测器的一些实施例可使用三个或四个额外位,但可使用更多或更少的额外位。然而,应了解,并不需要使用软位来实现本文所揭示的益处中的许多益处,但借助此些软位的使用更进一步增强错误校正性能。维特比检测器硬件的实施例可经设计用于一个特定解码配置,或可支持一个以上解码配置,在此情况中,所述维特比检测器可在由微处理器412经由固件480编程时通过参数寄存器区段410中的各种寄存器来参数化。不论关于配置是固定的还是可编程的,维特比检测器实施例均包含第一及第二卷积多项式以及第一及第二穿孔多项式,所有这些多项式可在参数寄存器区段410中获得。所述卷积多项式确定实施于维特比检测器中的解码栅格,且所述穿孔多项式相对于在不存在穿孔多项式的使用的情况下原本将由卷积编码器(在本实例中,图3及4的卷积编码器300)产生的未穿孔位流识别LSB流中的位子组。维特比检测器产生反映曾呈现给编码器的原始LSB流的内容的经解码位流作为其输出。从实际观点来看,在TCM LSB流中将已发生一些位错误,且使维特比检测器的行为与错误校正检测器一致,这些位中的一些位将已由所述维特比检测器校正。然而,可能会使其它位错误通过,且接着解码器中的后续功能的任务将为检测并校正这些通过的错误。
解映射器620将在MSB路径623上从模/数转换接收的MSB流转换回成预编码MSB形式。举例来说,如果编码器应用了格雷到二进制译码,那么所述解映射器转换回到格雷码形式。所述解映射器还提供所述编码器的电平/DAC功能472(见图4)的反转。应注意,来自维特比解码器610的经卷积解码的LSB被引导到尚待描述的重新译码器622及LSB缓冲器624。由于电平/DAC 472可提供经编码TCM符号到单元目标值的缩放的选项,因此在使用尽可能接近地反映原始单元目标的回读值以便获得适当地无错误TCM解码时可增强解码过程准确度。来自ADC值及来自重新译码器622的MSB的组合将允许此增强的准确度的输入值提供到解映射器。所述解映射器的输出625是经解映射的MSB。从维特比解码器输出626取得经解码TCM符号的LSB。
重新译码器622基于由维特比解码器610提供的结果而重构既定为原始经编码位流的流。由于一些偶然错误可能存在于维特比检测器输出中,因此在630处的经重新译码流可为所述原始经编码位流的近似。期望接近实际地获得经卷积编码LSB的LSB的原始编码以便针对由图4的电平/DAC 472最初执行的正向变换找出适当准确的相反变换。以稍微不同的方式陈述,维特比解码器610将错误校正应用于从ADC值取得的传入LSB,使得维特比解码器的输出626上的经解码LSB较准确地反映编码器侧上的原始无错误LSB。重新译码器622本质上是另一卷积编码器300(见图3及4),其重新产生包含由解映射器620用于较准确地重新产生MSB的码位的LSB。因此,重新译码器622将包含码位的原始经卷积编码LSB至少在组件的准确度限制内提供到解映射器620。所述解映射器基于传入MSB及来自重新译码器622的经卷积编码LSB而在输出625上产生MSB。MSB及LSB数据路径中的排除解映射器620、维特比解码器610及重新译码器622的组件可称为解映射布置641。
MSB缓冲器640从解映射器620的输出接收经解映射的MSB。此后一缓冲器将经解码MSB流中的MSB位分级且在响应于MSB计数器644而请求所述MSB时将其转发到MSB FIFO 642。每次MSB计数器644通过将10个位的积累报数到MSB缓冲器640时,所述MSB缓冲器就将具有RS符号大小的位群组输出到MSB FIFO 642。所述RS符号大小的群组直接对应于最初在图4中的编码功能期间创建的RS符号。在图6中所图解说明的每单元4位配置将MSB缓冲器利用为3个位宽(与图2相一致),但此为示范性的且可取决于MSB宽度的参数设定而针对此缓冲器(及针对相关数据路径的其余部分)确立其它宽度。同样地,RS符号宽度是10个位(如图2中所见),但在从RS符号到TCM符号及从经解码TCM符号返回到RS符号的转换中可使用具有其它RS符号宽度(及其它压缩布置)的实施例。
LSB缓冲器624从维特比检测器610接收经解码LSB流。此缓冲器将LSB位分级且每当LSB计数器648请求额外LSB位时就将位输出到多路复用器646。LSB计数器648控制多路复用器646的操作。每当LSB计数器将10个位的积累计数到LSB缓冲器中时,所述多路复用器就通过多路复用器646将LSB RS符号从LSB缓冲器发送到RS解码器650。在所有其它时间处,将MSB RS符号积累到MSB FIFO中。紧接在通过多路复用器646将LSB RS符号传送到RS解码器650之后,通过多路复用器646将MSBFIFO的内容传送到RS解码器650。由于多个MSB RS符号将构成此传送,因此可每时钟间隔一个符号地从所述MSB缓冲器传出MSB RS符号,直到已通过多路复用器646将所有可用符号传送到RS解码器650为止。尽管在图6的实施例中,LSB缓冲器为一个位宽,但可取决于LSB宽度的参数设定而针对此缓冲器(及针对相关数据路径的其余部分)确立大于一个位的宽度的实施例。
在MSB计数器644的控制下,MSB FIFO(先进先出)642从MSB缓冲器640接收RS符号。这些符号当在MSB FIFO中经重新汇编时与最初在图4的编码器20中从用户数据输入流且在RS编码器402(图4)的作用下创建的RS MSB符号相同。所述MSB FIFO确保由解码器的TCM部分返回的所有RS符号是以其在编码过程期间被分派给TCM编码器的同一顺序重新汇编的。在一些实施例中,由于MSB数据路径以较快数据速率(每TCM符号3个MSB位对在穿孔的情况下每LSB位少于1个位)操作,因此所述MSB FIFO提供RS符号管理功能。在图2的数据结构实施例中,在序列中存在其中LSB符号边界及MSB符号边界与TCM符号边界重合的点。在编码模式中,可做出是将LSB RS符号还是MSB RS符号传输到TCM编码器的任意决策:可首先发送MSB RS符号还是可首先发送LSB符号。任一情况均可为有效的,但在解码模式中,重构序列必须与由编码模式产生的序列完全相同。所述MSB FIFO允许暂时存储相对快速移动的MSB符号,使得可以恰当次序选择MSB RS符号。就此来说,应了解,在完成时不能将所述MSB RS符号简单地传送到RS解码器,因为MSB RS符号是以比LSB RS符号快的速率完成,此导致不正确的重构序列。举例来说,如上文关于图2所述,RS2到RS5是在完成RS1之前完成的。因此,所述MSB FIFO将保持RS2到RS5直到RS 1完成。将RS1传送到RS解码器650之后才将RS2到RS5传送到解码器650。每次MSB缓冲器获取RS符号位长度时,所述MSB FIFO就从所述MSB缓冲器接收额外RS MSB符号,且每次多路复用器646启用从MSB FIFO到RS解码器650的路径时,所述MSB FIFO就将RS MSB符号发送到多路复用器646,此在MSB及LSB计数器的控制下发生以便在RS解码器650处维持RS符号的正确序列。
MSB/LSB符号多路复用器646合并来自MSB FIFO 642及LSB缓冲器624的分别表示由维特比解码器610及解映射器620产生的解码后TCM符号的MSB及LSB部分两者的经重构RS符号。经重构RS符号由MSB FIFO 642及LSB缓冲器624产生,如上文所述。在MSB计数器644及LSB计数器648的控制下,从MSB FIFO输出及LSB缓冲器输出选择10位数量,并将其合并成既定等同地匹配最初由图4的编码器20的RS编码功能产生的序列的RS符号序列。
MSB计数器644是正数计数器,其正数计数直到可从MSB FIFO 642获得完整MSBRS符号为止。当可获得完整MSB RS符号时,所述MSB计数器用信号通知多路复用器646且经由所述多路复用器将十位符号传送到RS解码器650。针对每一时间增量t,三个MSB位可供多路复用器646使用。因此所述MSB计数器每时间增量递增值3。在本实施例中,由于每一RS MSB符号由十个位构成,因此MSB计数器将需要4个时间增量来最初允许在MSB FIFO 642中积累完整RS符号。此时,计数为12。所述计数器将完整MSB RS符号的可用性用信号通知给多路复用器646,并将其计数递减10使得当前计数为2。由于4个时间增量积累总共12个MSB位,因此留下两个位用于分配给下一MSB RS符号。因此,接着3个时间增量提供额外9个位使得11个位可用,其中这些位中的1个留下用于下一MSB RS符号。此时,计数为11。所述计数器将完整MSB RS符号的可用性用信号通知给多路复用器646并将其计数递减10使得当前计数为1。在留下1个位的情况下,接下来的三个时间增量将提供9个位以提供完整MSB RS符号连同一个留下的位。此时,计数为10。所述计数器将完整MSB RS符号的可用性用信号通知给多路复用器646并将其计数递减10使得当前计数为0。因此,此过程重复,其中每次所述MSB计数器将完整MSB RS符号的可用性用信号通知给多路复用器646时其就将其计数递减10。在其中每存储器单元存在两个MSB的实施例中,所述MSB计数器每时间增量将递增2。类似地,在其中每存储器单元存在四个MSB的实施例中,所述MSB计数器每时间增量将递增4。
LSB计数器648以除了所述LSB计数器每一时间增量递增值1外类似于MSB计数器的计数的方式正数计数。因此,所述LSB计数器响应于每十个时间增量而指示完整LSB RS符号的可用性。所述LSB计数器接着复位到0并重新计数到值10。当完整LSBRS符号可用时,所述LSB计数器用信号通知多路复用器646且经由所述多路复用器将10位符号传送到RS解码器650。当所述LSB计数器及所述MSB计数器同时指示RS符号的可用性时,多路复用器646将优先级赋予LSB RS符号并首先取得所述符号以重构原始RS符号流。在其中存在每存储器单元两个LSB的实施例中,每一时间增量所述LSB计数器将递增2。类似地,在其中每存储器单元存在三个LSB的实施例中,LSB计数器每时间增量将递增值3。
用等于表示构成即将执行的传送的TCM符号的准确数目的TCM符号654数目的‘TCM码字长度’值初始化TCM计数器652。还可在解码开始接收ADC值流之前直接从参数寄存器区段410获得TCM符号的数目。TCM计数器的计数针对经解码的每一TCM符号而递减1。当计数变为0时,向CPU 412指示当前块的解码过程结束的指示,使得已到达序列的末端。取决于实施例,此事件可实现CPU 412设置可需要或可不需要重新加载参数寄存器区段410的另一编码序列的动作。应注意,TCM计数器的当前计数值以及到0的转变两者均用作TCM计数器的控制指示。举例来说,大于0的值表示序列相对于由‘TCM码字长度’表示的总长度的进度,且到0的转变指示序列完成。
用直接获得或从存储于参数寄存器区段410中的第一穿孔多项式及第二穿孔多项式导出的值661初始化穿孔型式计数器660。出于解码目的,所述穿孔型式计数器值用于向维特比解码器识别如何处置所接收LSB流中的每一位。也就是说,给定位是数据位还是码位。穿孔型式计数器计数也由重新译码器622用来重构解映射器620所使用的经重新译码LSB流。
可在解码器22开始接收ADC值流之前用RS码字中的符号数目来初始化RS计数器662。可将所述符号数目初始化在RS符号数目寄存器664中,其值是直接从参数寄存器区段410获得或从存储于参数寄存器区段410中的值导出。参数寄存器区段410中的确定待加载于RS符号数目寄存器664中的值的值包含‘RS数据长度’及‘RS奇偶长度’,通常为此两个值的总和。这些值以RS符号为单位。在解码器22产生RS符号流时,RS计数器在于MSB FIFO 642及LSB缓冲器624的输出处产生RS符号时对其进行报数。在本实施例中,所述RS计数器在已借助于递减到0而计数最后一个RS符号之后产生表示序列末端的信号。此条件可用作RS解码器的指示当前传送结束的终止控制。在其它实施例中,MSB计数器、LSB计数器及RS符号计数器可经配置以正数计数或进行正数计数与倒数计数的某一适合组合。
在解码背景中,在接近传送序列的末端处使用RS/LSB限制比较器RS/LSB限制比较器454以确认构成最后LSB RS符号的最后位是0。所述比较器检测RS计数器从大于LSB限制值的值到小于或等于LSB限制值的转变。此转变又致使多路复用器646协作以不再从LSB缓冲器624取得位且用0值位完成所有剩余LSB RS符号,如下文将关于LSB限制490进一步描述。LSB及MSB数据路径中的组件以及从LSB缓冲器624及MSB缓冲器640直到且包含多路复用器646的支持组件可称为解压缩布置668。
在多路复用器646及前面的逻辑汇编RS码字时,RS解码器650接收所述码字。一旦所述RS解码器拥有完整RS码字,RS解码操作便可继续进行。RS解码器的功能是在接收到RS码字时将其解码且检测并校正可能存在于所接收RS符号中的任何错误。所属领域的技术人员在获知本发明的情况下将理解所述RS解码器的操作。目前,充分注意到所述RS解码器能够校正每一RS码字内的某一数目个符号。如在本发明中先前所论述,RS码字由数据部分及奇偶部分构成。所述RS解码器使用RS码字的奇偶部分检测及移除来自数据部分的错误。所述RS解码器仅需返回对应于提交给图4的编码器20的原始用户数据的数据部分。所述RS解码器产生具有等于在参数寄存器区段410中识别的RS数据长度的值的长度的RS符号流。在将由RS解码器检测到的任何错误断定到输出之前将其应用于输出符号。
当借助交错来存储传入ADC值时,可以交错方式将多个RS码字呈现给RS解码器。在单码字或交错码字配置中,参数寄存器区段410中的RS交错因数的值界定特定交错配置。RS解码器650通过非交错或交错地解码其接收的RS符号流而适当地做出响应。
当选择交错配置时,如RS交错因数值大于1所证明,参数寄存器区段410中的‘RS数据长度’及‘RS奇偶长度’的值对应于交错长度。举例来说,如果RS交错因数为4,那么‘RS数据长度’对应于四个交错数据部分的长度,且‘RS奇偶长度’的值是四个奇偶部分的长度。应注意,上文并入的‘546申请案的图12、13、15及16图解说明具有四个交错的数据结构。
LSB限制490指定LSB部分中在解码序列末端处被强制为0的位的数目。LSB限制490的值作为计数值是以RS符号为单位来命名,且在RS计数器递减到0时与RS计数器值进行比较。所述LSB限制的值通常为小的整数,且对应于在最后RS LSB符号的零填补开始的点处序列中剩余的RS符号的数目。此情形的实例展示于图2中出现RS(N-1)符号的地方。RS(N-1)的出现对应于最后LSB符号位[在RS(N-7)中]为0的点。
在RS计数器针对供应到RS解码器650的每一RS符号递减时,将LSB限制与RS计数器662中的值进行比较。在如RS/LSB比较器454所确定所述RS计数器递减到小于或等于所述LSB限制的值时,将0插入到发送到RS解码器的LSB RS符号中。也就是说,LSB限制与RS计数器之间的等式比较发生的点表示通过开始零填补来构造LSB符号的方式的模式改变。尽管RS计数大于LSB限制值,但用由维特比解码器610产生的位来填入RS LSB符号中的位。在如RS/LSB比较器454所确定所述RS计数器变得等于或小于限制计数时,用0来填入额外LSB RS符号的数据位。此继续直到已填入最后LSB RS符号为止。
RS到用户数据的压缩670是构成解码设备的最后区段。将长度‘RS数据长度’(见参数寄存器区段410)的所述组RS符号从RS格式转换为用户数据格式。在图7的实施例中,此转换是从10位符号到8位符号,如所指示。当然,如果RS格式不同于10位或用户数据格式不同于8位,那么所述转换将基于当前配置中对这些宽度的定义而为从RS符号格式到用户数据符号格式。
固件480在由微处理器412执行时引导解码器22的操作。特定来说,所述微处理器与参数寄存器区段410介接。所述微处理器可将值写入到寄存器以制定待应用于供应到解码器的当前ADC值流的许多可能解码配置中的一者。微处理器在执行固件480指令时可被指示在所述解码器未活动地解码ADC值流的任何时间修改值以便改变所述解码器从一个配置到另一配置的编程。以此方式,可将参数寄存器区段410中所展示的所有参数的许多组合应用于解码器22的特定实施例。作为一个实例,可改变解码器配置以反映传入ADC值的位密度的改变。
应注意,参数寄存器区段410未相对于所存储的各种值改变,不管是将执行解码数据操作还是编码数据操作。然而,从固件480的角度来看,可稍微不同地检视各种参数。因此,下文随即将至少部分地在解码操作的框架内论述所述参数,但可出于更进一步解释的目的而提供额外细节。
用户数据长度:在解码之后必须施加到输出的用户数据长度。此值的单位通常是字节,因此用户数据长度意指用户数据单位中的字节数目。
RS校正容量(T):RS解码器在一个RS码字中能够成功地检测并校正的符号错误的数目。如果应用交错,那么此值适用于单个交错,且可通过交错而校正的符号的总数是此数目乘以RS交错因数。
RS数据长度:此为将用户数据单位变换成的RS符号的数目。如果RS符号中的位数目不同于用户数据符号中的位数目,那么此数目不同于‘用户数据长度’。在图6的背景中,用户数据符号单位是一字节且RS符号含有10个位,因此在此情况中‘RS数据长度’将是‘用户数据长度’的8/10。
RS数据长度:在RS交错因数大于1的情况下所有交错的经组合长度。
RS奇偶长度:根据当前配置RS码字的奇偶部分所需要的RS符号的数目。此值可从RS校正容量导出,但在一些实施例中可实施为独立寄存器值。
RS交错因数:构成组成存储于参数寄存器区段410中的‘RS数据长度’及‘RS奇偶长度’值的总和的RS符号长度的交错RS码字的数目。交错数目通常是相对小的整数。
卷积约束长度:接受卷积编码器中的数据的移位寄存器(见图3,移位寄存器304)中的位数目加1。来自卷积编码器的每一输出位是到所述编码器的当前输入位加上移位寄存器中的最近先前位的某一组合。
第一卷积多项式:两个卷积多项式中的一者。此多项式中的系数数目与卷积约束长度相同。在解码情况中,第一卷积多项式确立待由维特比检测器610应用于相对于应用第一卷积多项式而发生的输入流中的那些位的解释。在一些实施例中,可将此多项式应用于维特比解码器中的选择对应于特定卷积多项式的分支决策配置的实施方案特征。包括维特比检测器的特征的实施方案由所属领域的技术人员所熟知。举例来说,见威克、斯蒂芬B.的“用于数字通信与存储的错误控制系统”(1995年,普伦蒂斯-霍尔出版社,第290到332页),其以引用的方式并入本文中。
第二卷积多项式:两个卷积多项式中的第二者,其系数用于使用当前输入位及移位寄存器来计算两个卷积编码器输出位中的第二者。在解码情况中,第二卷积多项式确立由维特比检测器应用于相对于应用第二卷积多项式而发生的输入流中的那些位的解释。在一些实施例中,可将此多项式应用于维特比解码器610中的选择对应于特定卷积多项式的分支决策配置的实施方案特征。包括维特比检测器的特征的实施方案是所属领域的技术人员众所周知的。举例来说,再次见威克、斯蒂芬B.的“用于数字通信与存储的错误控制系统”(1995年,普伦蒂斯-霍尔出版社,第12章,(第290到332页))。
第一穿孔多项式:两个多项式中的与第一卷积多项式协作地确立关于穿孔对维特比检测器610的每一输入的解释的一者。作为从一个以上可能的第一穿孔多项式中进行选择的一个实施例,维特比检测器可实施有关于从多个可能穿孔多项式中的一者的选择以使得将适当解码步骤应用于经穿孔输入流以便重构适当解码序列的方式配置维特比解码器操作的能力。在维特比检测的背景中应用穿孔是所属领域的技术人员众所周知的。举例来说,再次见威克、斯蒂芬B.的“用于数字通信与存储的错误控制系统”(1995年,普伦蒂斯-霍尔出版社,第12章,(第290到332页))。见图3对如何关于可编程卷积编码器来应用上文的图解说明。
第二穿孔多项式:此为两个多项式中的确定穿孔的第二者。此值连同第二卷积多项式一起确立对维特比检测器610的每一输入的解释。作为从一个以上可能的第二穿孔多项式中进行选择的一个实施例,维特比检测器可实施有关于从多个可能穿孔多项式中的一者的选择以使得将适当解码步骤应用于经穿孔输入流以便重构适当解码序列的方式配置维特比解码器操作的能力。在维特比检测的背景中应用穿孔是所属领域的技术人员众所周知的。举例来说,再次见威克、斯蒂芬B.的“用于数字通信与存储的错误控制系统”(1995年,普伦蒂斯-霍尔出版社,第12章,(第290到332页))。见图3对如何关于可编程卷积编码器来应用上文的图解说明。
位密度设定:NV存储器中的每单元所存储的位数目。至少部分地由位密度设定的值确定参数寄存器区段中的许多其它参数。应注意,使用本文已揭示的教示所随附的优势相对于解析由存储器单元存储的不同电平的准确度与将位密度增加到至少高达某一实际限制成比例地增加。所述位密度设定是MSB、LSB及编码器及解码器中的经组合TCM符号数据路径的宽度的主要决定因素。图6的解码器及图4的编码器是关于位密度设定是4个位的事实的示范性实施例。其它编码器及解码器实施方案可使用每单元3个位,在此情况中TCM符号宽度变为3个位而非4个位。也可应用大于4的位密度设定。如果选择等于5的位密度设定,那么分别地每一TCM符号的MSB部分可由3个或4个位构成且LSB区段可由2个位或1个位构成。在LSB部分中大于1个位则将需要卷积编码器及能够处置2位宽的编码的维特比解码器。卷积多项式及穿孔多项式的应用类似于单位卷积编码器(见图3的卷积编码器300)。
TCM中的MSB宽度:从属于位密度设定的值(见上文对位密度设定的论述)。图6的解码器22使用位密度设定4,其中每一TCM符号的MSB部分的宽度等于3个位,且每一TCM符号的LSB部分的宽度等于1个位。如上文所述,可使用其它组合。
TCM中的LSB位宽度:从属于位密度设定的另一值。图4的解码器22使用位密度设定4,其中每一TCM符号的MSB部分的宽度等于3个位且每一TCM符号的LSB部分的宽度等于1个位。举例来说,如上文关于位密度设定所述,其它组合也为适合的。其它实施例及配置可包含在TCM符号的LSB部分中使用的多于一个LSB。在如此的那些配置中,LSB位宽度值作为由微处理器412编程的值指定每一LSB部分大于1的配置。特定实施例将能够具有最大数目个LSB。一些实施例可仅接受值1;而其它实施例可接受值2或更大。应了解,用户指定的信息(举例来说,见图5的步骤504)可包含:用户数据长度、RS容量(T)、RS交错因数、位密度设定及卷积与穿孔参数。这些项全部为变量,其可协作以确定序列大小及伴随的错误控制额外开销。可从这些基本参数导出其它或二次参数。所述二次参数可包含RS数据长度、RS奇偶长度、TCM长度及约束长度。用户选择可能并非指代指最终用户本身,而是确实指代可由与基于在(举例来说)制造特定系统时做出的某一外部确定而确立的使用模式相关的考虑而确定的配置变量。应了解,鉴于本发明整体可以任何适合方式组织各种参数并使其相互关联。
TCM码字长度:发送到NV存储器及/或从NV存储器检索的数据传送单元的总长度。在给定存储配置中,此值是常数且不在存储(即,写入)操作与读取操作之间变化。其与包含以下各项的其它参数中的多数参数相关:‘用户数据长度’、‘RS校正容量’、‘RS数据长度’、‘RS奇偶长度’、‘RS交错因数’、‘卷积约束长度’、卷积多项式、‘穿孔多项式’及‘位密度设定’。其通常由微处理器412存储为独立值,且将相对于准确地传送TCM码字中的TCM值的数目而控制编码器功能。
应了解,本文已揭示的解码设备及相关联方法各自协作以提供所有益处,上文关于在逐码字基础上改变码效率的能力而描述了所述益处中的至少一些益处。
图7图解说明由参考编号700大体指示的方法的一个实施例,其可在图6的编码器22上操作且同样适用于其它实施例。举例来说,方法700适用于使用除每单元4个位之外的位密度的实施例。
方法700在开始步骤702处开始并继续进行到设置704。在步骤704中,可将各种参数加载到图4的参数寄存器区段410以及任何其它所要寄存器位置中。应了解,所述参数中的一些参数可为用户指定的,例如(举例来说)RS校正容量及卷积多项式,而其它参数(例如(举例来说),TCM RS奇偶长度及TCM码字长度)可基于用户指定的参数来确定。由方法700处置的数据流以从图1的存储器14读取的ADC值开始。
在步骤706处,从到NV存储器(见图1,项14)的接口接收ADC值。接收总共‘TCM码字长度’(在图6的参数寄存器区段410中指定)个ADC值,其中每一ADC值对应于一个TCM符号。应了解,所述ADC值与由图5的编码方法500产生的经编码TCM符号不同可在于,所述ADC值反映由解码器接收的具有附加‘软位’的符号。此配置可反映以比最初将ADC值写入到存储器中的分辨率高的分辨率读取所述值。如果支持软解码,那么软位的数目可变化,但一些实施例可使用从1个位到4个位中的任一者。如果使用软位进行解码,那么可在本发明的范围内使用众多实施例。在图6中(其是以实例方式提供的实施例),软位可在所接收ADC值中计入3个位中使得接收到总共7个位。软位表现为“子LSB”值,其中其拥有比ADC流中的最低有效LSB的有效性低的算术有效性。如果使用软位,那么维特比解码器300辨识此些软位并在其解码过程中使用所述软位。软位增强位流(如果使用)中的LSB错误的检测及校正。软维特比解码器是所属领域的技术人员众所周知的,且因此出于简要的目的此处将不重复与其有关的细节。就此来说,针对额外细节,读者可参考(举例来说)威克、斯蒂芬B.的“用于数字通信与存储的错误控制系统”(1995年,普伦蒂斯-霍尔出版社,第301到305页),其以引用的方式并入本文中。
步骤706的结果是两个符号流:‘TCM码字长度’的MSB流,每一MSB具有由参数寄存器区段410中指定的当前配置所界定的宽度;及‘TCM码字长度’的LSB流,每一LSB具有由当前配置类似地界定的宽度。如果当前配置使用软位,那么所述软位表现为LSB字段的‘子LSB’扩充,如先前段落中所述。
在步骤708中,在一个实施例中,由维特比卷积解码器610解释并解码LSB流,如图6的解码器实施例22中所展示。在本实施例中,所述卷积解码器可通过编程而重新配置以便能够解码由‘卷积约束长度’值、第一及第二卷积多项式以及第一及第二穿孔多项式(其全部可在参数寄存器区段中获得)界定的不同卷积码配置。解码产生‘TCM码字长度’的解码后LSB流。所述数据位在其存在于经解码位流中时是维特比解码器选择为最可能构成先前由图5的RS到预TCM压缩步骤510接收的原始LSB位流的位。由于通过解码来操作的流已经历编码(图5)且接着存储到存储器14(图1)中,因此在与ADC值分离之后提交给维特比解码步骤708的LSB位可能在由维特比解码708解释所述流时已获取错误。然而,解码器的行为既定检测并移除这些错误的某一比例使得维特比解码器输出展现比存在于维特比解码器输入处的错误数目低的错误比例。在许多情况中,维特比解码器输出将为无错误的,且接着在此过程的剩余部分期间不需要额外错误校正。然而,在任何情况中,剩余的处理步骤可用于移除在708处的维特比解码之后仍保留的错误。
在步骤708之后,将‘TCM码字长度’的解码后LSB符号是到重新译码步骤710的输入,重新译码步骤710使用经维特比解码的LSB尝试重构‘编码后’(即,经编码)LSB位流。也就说,重新译码器步骤710作为维特比编码步骤有效地操作以重新产生最初在图5的编码过程500期间插入的码位。执行重新译码步骤以产生重新译码流,出于重新译码流与‘预解码’流相比更不会有错误的原因,所述重新译码流代替进入维特比解码步骤708的原始‘预解码’LSB流使用。如所提及,所述重新译码步骤与卷积编码步骤类似之处在于,在卷积编码序列中应用相同参数(参数寄存器区段410的卷积约束长度、第一及第二卷积多项式以及第一及第二穿孔多项式)。来自重新译码步骤710的输出是解码器对‘TCM码字长度’的LSB的原始‘编码后’LSB序列的最佳估计。
步骤712在由图6的解映射器620执行时鉴于由步骤710产生的重新译码流而对由步骤706产生的MSB进行操作。在解码过程中的此时,MSB形成在参数寄存器区段410中指定的‘TCM码字长度’的MSB部分。执行MSB值从经编码形式到未经编码形式的解映射变换,且所述解映射变换为图5的步骤514的反向变换。步骤712可与步骤514的情况一样依据逻辑门或查找表来实施。应了解,在正向及反向实例两者中,分别关于映射器450(图4)及解映射器620(图6)以及映射步骤514(图5)及解映射步骤712(图7),在输入与输出之间存在一对一关系。每一输入针对映射器及解映射器两者具有一个且仅一个正确输出值。也就是说,映射器与解映射器之间的关系是彼此完全相反的。在本实施例中,所述映射是所属领域的技术人员可鉴于本发明而易于实施的二进制到格雷码转换。同样,仅在于编码器侧上应用相反的格雷码到二进制转换的情况下执行此转换。经重新译码LSB流的使用通过致使解映射输出更紧密地匹配由步骤514在编码期间产生的原始经编码MSB流的原始MSB来实现改进的结果。来自步骤712的输出是一组‘TCM码字长度’的MSB符号。
在步骤714中,从步骤708接收解码LSB流,且从步骤712接收MSB流,以用于合并成‘TCM码字长度’的解码后TCM符号的单个流的目的。此时,将所述流恢复成由图2中的示范性情况中所表示的相同格式,其中TCM符号流覆叠RS符号布置。此外,多路复用器646及涉及图6的MSB缓冲器640、MSB FIFO 642、LSB缓冲器624、MSB计数器644及LSB计数器648的相关操作适应两个流的合并。步骤714的结果是TCM符号流,其作为依照参数寄存器区段410的宽度‘位密度设定’的符号序列而输出。
此处,将‘TCM码字长度’的解码后TCM符号转换为RS表示。所述过程与图2中所展示的示范性情况相同。将MSB及LSB转换为其相应RS符号表示,且将来自MSB及LSB两者的对应位替换到若干位位置处的对应RS符号中,使得可至少在系统能力内获得RS符号及其内的位的作为由编码序列(见图6)创建的原始未经编码序列的准确布置。
在步骤716处,将来自步骤714的经合并MSB/LSB流压缩到预解码RS符号的经重构流中。应注意,此步骤是通过图6的多路复用器646从MSB路径及LSB路径选择性地向RS解码器650中馈送的操作来实施。由步骤716产生的经重构流包含用户数据(呈RS符号格式)及RS奇偶符号两者。输出流的长度是依照参数寄存器区段410的‘RS数据长度’与‘RS奇偶长度’的总和。RS符号流与原始预TCM编码RS符号流之间的差异存在于当前流含有迄今为止响应于写入及回读过程而保留的错误的可能性中。涉及RS解码的后续步骤用于检测并移除来自当前输出符号的错误符号。
RS解码包含步骤718及720。最初,步骤718接收由步骤716产生的RS符号流以便计算称为症状码的一组值。症状码计算以长度为‘RS符号长度’加上‘RS奇偶长度’的所述组RS符号开始,并使用这些符号来计算症状码。作为RS解码步骤,症状码计算是熟悉RS解码的技术人员众所周知的。因此,出于简要的目的将不提供一些细节。充分注意到,出于本发明目的,症状码的数目始终与相对于给定大小的RS码字的奇偶符号的数目相同,因此参数‘RS奇偶长度’适用于症状码的管理。如果选择交错,那么奇偶符号(及症状码)的数目对应于依照参数寄存器区段410的‘RS奇偶长度’除以‘RS交错因数’的值。
在步骤720中应用在步骤718中确定的RS症状码来检测并校正可能存在于RS符号的每一‘RS数据长度’单位中的任何错误符号。‘RS奇偶长度’症状码由算法程序使用,所述算法程序在症状码中的任一者具有非零值的情况下计算错误的位置及值。如果所有症状码均为零值,那么跳过代数校正程序,因为所有症状码中的零值是所有RS符号输入的正确性(无错误)的指示。
如果不满足全零准则,那么在将‘RS数据长度’的每一流作为步骤720的输出而发出之前应用校正过程。如果满足全零准则,那么绕过校正程序并将‘RS数据长度’的符号的相关联流作为步骤720的输出而发出。
步骤722从步骤720接收RS符号的‘RS数据长度’单位并通过将RS符号数据压缩到用户数据符号的输出流中而将经校正的RS符号转换为用户数据格式。应注意,步骤722是图5的步骤506的反转。此处,将‘RS数据长度’的符号转换为‘用户数据长度’的用户数据符号,其中这些参数是依照参数寄存器区段410指定的。如果图5的步骤506的正向转换需要将额外位插入到最后RS符号,那么此步骤在将最后RS符号转换回到用户数据格式时从所述符号移除相同数目个位。可应用其中RS符号宽度及用户数据符号宽度两者可变化的不同配置。图6的解码器22展示解码器22的实施例的配置,其中RS符号大小是10个位(如指示为离开RS解码器650),且用户数据符号大小是8个位(如针对离开RS到用户数据压缩器670的用户数据所指示)。给定实施例的其它配置或其它实施例可采用RS符号及用户数据符号两者的不同大小。
如上文所提及,在一些实施例中,参数可针对编码与解码两者即时改变。为此目的,在图8中展示参数寄存器区段的一个实施例,且其由参考编号410’大体指示。所述参数寄存器区段的此实施例并入有展示为寄存器组0到3的多个寄存器库。所述寄存器组连接到总线800,总线800又连接到CPU 412。每一寄存器组与多路复用器810介接。分别由参考编号812及814指示的模式选择线0及1使用多路复用器810实现选择所述寄存器组中的任一者。每一寄存器组可由CPU 412独立地编程。每一寄存器组或库可由CPU 412选择以实现基于模式选择线812及814而即时选择所述库中的个别者的目的。因此,可通过停用活动库并启用另一库来以最小等待时间(即使)实现配置改变。只要已将必需的参数寄存器加载到待使用的寄存器库中,就可通过改变模式选择线所指定的值来实现寄存器库之间的切换。应了解,可针对特定实施例使用任何适合数目个寄存器库,且使用四个寄存器库的图8的实施例是以实例方式提供且并不既定为限制性。
借助于总线800,CPU 412可响应于所选择的操作模式的改变而管理任何必需寄存器。举例来说,所述CPU可响应于改变参数(例如,用户数据长度及卷积多项式及其它)及响应于主机装置而改变所述模式。应了解,可以此方式与在逐码字基础上一样快地反映参数的改变。在一个实施例中,寄存器可用于产生库选择信号,且这些寄存器可在确定有必要进行库的改变的任何时间由微处理器写入。举例来说,可基于存储器单元的布置而发生模式改变使得既定根据一组参数写入及读取存储器单元的一个子组,且既定根据另一组参数写入及读取所述存储器单元的不同子组。就此来说,可将存储器单元子组处置为通过格式化计算机存储装置而创建的分区。
关于编码器及解码器功能,在库选择0与库选择1状态改变及数据序列之间的关系中存在在使用库式架构的实施例中实现即时配置改变的时间考虑。在一个实施例中,将仅在无数据定序活动的周期期间允许库选择改变。也就是说,系统为闲置的,或可使所述系统闲置。此适用于受影响功能的外部信号活动及内部状态活动两者。只要此两者处于闲置条件,即可在不影响先前数据定序的情况下实现从一个寄存器配置到另一寄存器配置的快速改变,且接着当前寄存器改变可将选定配置应用于下一数据序列。改变的潜在多样性足够广泛以至少涵盖用户数据长度、RS容量、T(其也暗示RS奇偶长度)、RS交错因数、卷积多项式、穿孔多项式、位密度设定及由前述参数的组合确定的TCM码字长度的改变,但可被明确地编程到参数寄存器区段中。应了解,可同时改变一个或一个以上参数中的任何数目个参数,从而允许提供胜过目前技术水平的决定性优势的一定程度的灵活性。如上文所述,通过改变参数值且借此由于寄存器组之间的切换而以直接方式影响码效率。
现在关注图9,其是图解说明用于包含图8的库式参数寄存器布置的系统的操作的方法的一个实施例的流程图,所述方法由参考编号900大体指示。在图9中,由编码器及解码器两者共享寄存器库中的参数。然而,在其它实施例中,解码器及编码器与编码器可由相应专用寄存器库单独地支持。所述过程在开始步骤902处开始。针对将支持的任何特定配置,在904处,CPU 412(图4及6)及固件480确立是否已将所要寄存器配置编程到寄存器库中的一者中。如果确定将使用新配置,那么操作继续进行到步骤906,其中针对新配置选择寄存器库。可以任何适当方式做出此选择:首先,可选择先前未编程有配置的寄存器库;如果不存在此种未占用的寄存器库,那么做出可用所述新配置盖写哪一寄存器库的决策。在已选择寄存器库之后,在908处,确认所选寄存器库是否为活动库。所述“活动”库是当前经选择以控制编码器及解码器的库。应了解,可能仅存在一个“活动”寄存器库。按照定义,不活动的所有寄存器库均为非活动的。可预期将仅从非活动寄存器库当中做出对寄存器库的选择。但如果做出选择使得所述选择是活动寄存器库,那么过程返回到906以做出另一选择。另一方面,如果由906选择的寄存器库不是活动的,那么操作前进到910。在910处,CPU将各种参数寄存器编程或写入到选定库中,其中每一库存储一组针对前述参数寄存器区段410的值中的每一者。一旦已将所述配置写入到选定寄存器库,其便准备好以供编码器或解码器使用。如果CPU确定将在下一编码器或解码器序列期间使用新编程的配置,那么CPU在912处确定编码器或解码器当前是否正忙于前一序列。如果答案为是,那么CPU必须在914处等待当前活动完成。短暂地返回到步骤904,在选择现有配置的情况下,操作继续进行到步骤912。
一旦确定编码器及解码器两者均为非活动的,便从步骤914或从步骤912的“否”决策进入步骤916。步骤916可首先禁止编码器及解码器忙于新数据序列。所述方法确保直到激活新寄存器库配置或下一寄存器库配置之后才起始新序列。
结合图8参考图9,在CPU通过使用图8中的线812及814来改变库选择的值时在918处完成下一配置的激活。如果应用步骤916以便禁止编码器或解码器中的序列起始,那么步骤920针对新序列启用编码器及解码器。只要已启用编码器及解码器两者,所述过程便在920处完成。后续配置改变可由所述CPU响应于来自主机的从由其它配置设定指定的单元读取或向所述单元写入的请求而触发,且将致使在步骤902处的再入。
应了解,一旦已完成步骤904到914,步骤916到920便仅在多达CPU执行更新库选择812及814(图8)的指令所需要的时间中完成配置改变。换句话说,通常非常快速地做出配置改变,而对接下来的实际数据定序有很少或无影响。
再次转到图1,鉴于上文,应了解,非易失性存储器14以称为码字的单位来存储及检索数据。每一码字是由编码器20执行的编码过程的结果。当从非易失性存储器14检索码字时,由解码器22执行的解码过程将用户数据返回到主机计算机12。码字是具有特定长度及特定位密度设定(其中的每一者可在不同码字间变化)的多电平符号的集合。位密度设定确定存储于每一存储器单元中的位数目。在每存储器单元存储整数数目个位的实施例中,一个单元的内容构成来自所述码字的一个TCM符号。所述码字的长度是构成所述码字的TCM符号的数目。举例来说,在图1中示意性地图解说明三个码字,其中水平长度表示每一码字中的存储器单元的数目,且垂直宽度表示每一存储器单元中的对应于位密度的位数目。展示第一码字960、第二码字962及第三码字964。可看出,码字962含有比码字960相对少的符号,但每符号含有相对更多的位。可看出,码字964含有比码字960或码字962相对少的符号,但每符号含有比码字960或码字962相对多的位。因此,很明显,将具有变化TCM符号宽度及变化长度的码字同时存储于非易失性存储器中。就此来说,存储器14可表示单个集成电路裸片,其中所述裸片的不同区域可存储具有不同码效率(例如,处于不同的位密度)的数据。在另一实施例中,可在多个集成存储器电路裸片当中划分存储器14。
仍参考图1,其示意性地展示写入到存储器14中的完整数据结构且所述数据结构由参考编号970指示。应了解,此数据结构是响应于含有给定用户数据的单个写入操作而产生,且在读取操作中可相当容易读取以重新产生所述给定用户数据。在本实例中,数据结构970由参考编号972、974、976、978及980所指示的五个码字构成。码字971、974、976及978可各自具有不同长度。在本实例中,码字972、976及978具有相同的第二长度,由相同数目个TCM符号构成,而码字974具有不同的第二长度。终止码字980比数据结构970的其它码字短而具有第三长度。就此来说,应了解,鉴于本文的教示,不必(举例来说)通过在最后一个码字中的空白空间中填充到高达某一所需码字长度来使传送中的每一码字具有相同长度,因为最后码字或终止码字可通过如上文所述的终止或零填补序列而结束。此外,如数据结构970所示范,数据结构中的后续码字(甚至驻留于存储器中的邻近存储器单元组中)可以不同码效率包含以不同位密度来存储数据。举例来说,码字972可以每存储器单元4个位的位密度存储数据,码字974可以每存储器单元2个位的位密度存储数据,码字976可以每存储器单元3个位的位密度存储数据,码字978可以每存储器单元3个位的位密度存储数据,且码字980可以每存储器单元1个位的位密度存储数据。关于在不同码字间改变码效率上所提供的灵活性,基本上不引入限制。
现在关注关于分数位译码的额外细节。一般来说,可通过取得B个输入位的群组并将那些位组合映射到若干个(C)单元的不同电平值中而容易地实施分数位译码,每一单元具有L个可能电平值。所述映射的要求给出如下:
LC≥2B        (1)
举例来说,将7个输入位映射到两个单元中(每一单元被设定为12个可能电平中的一者)将产生每单元7÷2=3.5个位。
可在本文已提供的框架内高效地实施这些教示。应注意,映射功能不能由图4的映射器450结合分数位密度的应用来应用。如果电平L的所要数目是偶数,那么可不加修改地处置LSB,举例来说,在每单元3个位或4个位的情况中,其中穿孔及占位符不改变使得仅仅针对MSB来处置分数译码。在每单元3.5个位的实例中,将5个MSB位映射到12÷2=6个可能电平的两个单元中。应了解,上文所述的将传入MSB值处理为经格雷译码的任选步骤不应结合分数编码来应用。
在其中产生未经映射的TCM符号的压缩期间,压缩布置将在每TCM符号2个MSB位(每单元3个位的模式)与3个MSB位(每单元4个位的模式)之间变化。通过如此操作,以在C个单元内的正确比例,平均将达到所要的分数位密度。同样,在此实例的情况下,译码块C是2个单元,因此压缩器在每TCM符号3个MSB位与每TCM符号2个MSB位之间交替。针对所述两个单元,存在3+2个MSB位+2个LSB位=7个用户位,从而产生每单元3.5个位。
就MSB映射来说,共同地取得B个未经映射的TCM符号的群组且将其作为一群组映射到C个组的L÷2个电平中。在本实例中,将3+2个MSB位映射到2个单元中,每一单元具有6个可能电平值。针对所述5个MSB位,可基于从二进制值到C个单元值的映射而由两个存储器单元的62=36个可能译码表示25=32个输入值。针对此实施例,所述单元电平值将存在四个未使用的组合,可将其映射到最近的有效二进制输入值。所述单元电平值的四个未使用组合是62=36个可用电平对25=32个实际使用的电平之间的差。鉴于上文,所属领域的技术人员将易于实施各种各样的分数位布置。
转到图10,其示意性地图解说明由参考编号100’大体指示的数据结构的另一实施例,其可存储于图1的非易失性存储器14中。数据结构100’包含初始部分102’及终止部分104’。应了解,数据结构100’例示上文刚刚的论述。举例来说,不同TCM符号间的MSB在三个MSB与两个MSB之间交替。此外,数据结构100’与图2的数据结构100的比较揭示数据结构100’大体等同于数据结构100,只不过数据结构100’实施每单元3.5个位的分数位密度。因此,鉴于本发明已揭示的教示,所属领域的技术人员可易于实施利用分数位编码的各种各样的系统及方法。
已出于图解说明及描述的目的呈现了前文对本发明的描述。本发明并不既定为穷尽性或将本发明限制与所揭示的精确形式,且根据上文教示其它修改及变化形式可为可能的,其中所属领域的技术人员将认识到某些修改、排列、添加及其子组合。

Claims (44)

1.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的设备,其包括:
里德所罗门编码器,其用于接收通过所述数字系统提供的包含输入数据的输入数据流,以产生由一系列里德所罗门符号构成的经里德所罗门编码的流;
压缩布置,其接收所述经里德所罗门编码的流以产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分但非全部经配置以服从基于卷积码的码效率,且所述压缩布置适于修改所述经重新组块的输出数据流以基于改变提供到所述压缩布置的一个或一个以上输入参数的一个或一个以上值而支持与所述输入流中的预定数目个里德所罗门符号相关联的所述卷积码的所述码效率的改变;及
映射布置,其用于接收所述经重新组块的输出数据流并应用TCM码以产生经TCM编码的输出数据流,所述映射布置包含卷积编码器,所述卷积编码器用于根据所述卷积码的所述码效率对所述经TCM编码的输出流的所述部分进行卷积编码以基于所述输入参数的所述值而支持所述码效率的所述改变,以产生经映射的输出数据流供引导到所述非易失性存储器以作为所存储数据存储于所述非易失性存储器中。
2.根据权利要求1所述的设备,其中所述压缩布置经配置以用于至少部分地基于所述码效率而将一个或一个以上占位符位插入到所述经重新组块的输出数据流的所述部分中,且所述卷积编码器用所述经映射输出数据流中的附加码位填充所述占位符位。
3.根据权利要求2所述的设备,其中所述压缩布置与所述映射布置协作以将所述经TCM编码的输出数据的所述部分卷积编码为构成所述经TCM编码的输出流的多个TCM符号中的每一者的最低有效位。
4.根据权利要求2所述的设备,其中每一TCM符号由多个位构成,且所述压缩布置与所述映射布置协作以将所述经TCM编码的输出数据的所述部分卷积编码为构成所述经TCM编码的输出流的多个TCM符号中的每一者的至少一最低有效位但少于所有所述位,使得所述最低有效位及形成所述部分的一部分的任何额外位从所述最低有效位起呈有效性升序。
5.根据权利要求2所述的设备,其中所述设备包含用于监视穿孔型式的穿孔型式计数器,所述穿孔型式是基于用于产生所述占位符位的所述输入参数中的至少一者。
6.根据权利要求2所述的设备,其中所述经里德所罗门编码的流服从里德所罗门块大小使得里德所罗门码的一个或一个以上块构成具有码字长度的码字,且其中所述压缩布置经配置以基于所述码效率根据穿孔型式在所述经重新组块的输出数据流中提供定制数目个所述占位符位,且所述压缩布置可基于所述一个或一个以上输入参数而重新配置以至少在所述压缩布置的用于改变所述码效率的操作期间将所述穿孔型式从当前码字改变到下一码字。
7.根据权利要求2所述的设备,其中所述经TCM编码的输出数据流包含多个TCM符号,且所述多个TCM符号的所述最低有效位构成从所述系列的里德所罗门符号取得的第一子组里德所罗门符号,且从所述系列的里德所罗门符号取得的第二子组里德所罗门符号包含除所述第一子组里德所罗门符号以外的所有里德所罗门符号。
8.根据权利要求7所述的设备,其中所述第一子组的所述里德所罗门符号至少部分地基于所述码效率而通过所述第二子组的所述里德所罗门符号中的一者或一者以上的数目在所述系列的里德所罗门符号中各自彼此分离,使得所述第二子组的分离所述系列中的所述第一子组的所述里德所罗门符号的里德所罗门符号的所述数目可响应于所述码效率的改变而改变。
9.根据权利要求2所述的设备,其中每一TCM符号由多个位构成,且所述压缩布置与所述映射布置经配置以协作以将所述经TCM编码的输出数据的所述部分卷积编码为多个TCM符号中的每一者的至少一最低有效位但少于构成所述经TCM编码的输出流的所有所述位,且所述映射布置包含映射器区段,所述映射器区段用于将格雷码到二进制码转换应用于所述多个TCM符号中的每一者的除经卷积编码的所述最低有效位之外的一子组剩余位。
10.根据权利要求1所述的设备,其中所述经里德所罗门编码的流服从块大小使得所述里德所罗门码的一个或一个以上块构成具有码字长度的码字,且其中所述映射布置包含利用至少一组两个卷积多项式作为产生所述卷积编码的一部分的卷积编码器,且其中所述映射器进一步经配置使得所述卷积多项式响应于所述输入参数而改变以改变以下各项中的至少一者:(i)构成所述组的卷积多项式的总数,及(ii)所述组中的所述卷积多项式中的至少一者。
11.根据权利要求1所述的设备,其中所述非易失性存储器由至少一个存储器裸片所含有的多个存储器单元构成,且其中所述经里德所罗门编码的流服从块大小使得所述里德所罗门码的一个或一个以上块构成具有码字长度的码字,且其中所述压缩布置经配置以与所述映射布置协作以使所述经里德所罗门编码的流服从所述存储器单元中的至少一些存储器单元的指定位密度,且所述压缩布置可基于一个或一个以上输入参数而重新配置以至少在所述压缩布置的操作期间将所述指定位密度从当前码字改变到下一码字。
12.根据权利要求11所述的设备,其中所述压缩布置经配置以与所述映射器协作而以第一位密度将至少一个数据码字存储于单个存储器裸片中,且以不同于所述第一位密度的第二位密度将至少一第二数据码字存储于所述单个存储器裸片中。
13.根据权利要求12所述的设备,其中所述第一位密度被选择为每单元1个位到3个位,且所述第二位密度被选择为每单元4个位。
14.根据权利要求11所述的设备,其中所述选定位密度是基于所述非易失性存储器的所需使用寿命及与存取所述非易失性存储器的读取操作相关联的输出错误率中的至少一者而确定。
15.根据权利要求1所述的设备,其进一步包括:
解映射布置,其用于基于从所述非易失性存储器读取所述所存储数据而接收存储器输出流,且用于根据所述码效率对所述存储器输出流进行卷积解码以基于提供到所述映射布置的所述输入参数的所述值中的对应者而将所述经TCM编码的输出数据流再现为经解映射的输出流;
解压缩布置,其用于接收所述经解映射的输出流并基于所述码效率而从所述经解映射的输出流再现所述经里德所罗门编码的流,且所述解压缩布置对基于提供到所述压缩布置的所述一个或一个以上输入参数的所述值中的对应者而改变与所述预定数目个里德所罗门符号相关联的所述卷积码的所述码效率做出响应;及
里德所罗门解码器,其用于从所述解压缩布置接收所述经里德所罗门编码的流以从所述经里德所罗门编码的流解码包含所述输入数据的读取数据流以供所述数字系统用作读取数据。
16.根据权利要求15所述的设备,其中所述读取数据对应于最初作为所述输入数据含在所述输入数据流中的用户数据。
17.根据权利要求1所述的设备,其中所述压缩布置与所述映射布置经配置以协作以产生所述经映射的输出数据流,使得在于所述非易失性存储器中存储之后即刻将每单元分数个位存储于连续存储器单元的选定群组中。
18.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的方法,其包括:
接收通过所述数字系统提供的包含输入数据的输入数据流,以产生由一系列里德所罗门符号构成的经里德所罗门编码的流;
从所述经里德所罗门编码的流产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分经配置以服从基于卷积码的码效率;
基于一个或一个以上输入参数而改变与所述输入流中的预定数目个里德所罗门符号相关联的所述卷积码的所述码效率;及
根据所述码效率且基于所述输入参数而对经TCM编码的输出流的所述部分进行卷积编码以产生经映射的输出数据流供引导到所述非易失性存储器以作为所存储数据存储于所述非易失性存储器中。
19.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的设备,其包括:
块码编码器,其用于接收通过所述数字系统提供的包含输入数据的输入数据流,以产生由一系列块码符号构成的经块码编码的流;
压缩布置,其接收所述经块码编码的流以产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分但非全部经配置以服从基于卷积码的码效率,且所述压缩布置适于修改所述经重新组块的输出数据流以基于改变提供到所述压缩布置的一个或一个以上输入参数的一个或一个以上值而支持与所述输入流中的预定数目个块码符号相关联的所述卷积码的所述码效率的改变;及
映射布置,其用于接收所述经重新组块的输出数据流并应用TCM码以产生经TCM编码的输出数据流,所述映射布置包含卷积编码器,所述卷积编码器用于根据所述卷积码的所述码效率对所述经TCM编码的输出流的所述部分进行卷积编码以基于所述输入参数的所述值而支持所述码效率的所述改变,以产生经映射的输出数据流供引导到所述非易失性存储器以作为所存储数据存储于所述非易失性存储器中。
20.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的方法,其包括:
接收通过所述数字系统提供的包含输入数据的输入数据流,以产生由一系列块码符号构成的经块码编码的流;
从所述经块码编码的流产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分经配置以服从基于卷积码的码效率;
基于一个或一个以上输入参数而改变与所述输入流中的预定数目个块码符号相关联的所述卷积码的所述码效率;及
根据所述码效率且基于所述输入参数而对经TCM编码的输出流的所述部分进行卷积编码以产生经映射的输出数据流供引导到所述非易失性存储器以作为所存储数据存储于所述非易失性存储器中。
21.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的设备,其包括:
压缩布置,其经配置以接收经里德所罗门编码的流以产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分经配置以服从基于卷积码的码效率,且所述压缩布置适于基于作为准备将输入数据存储于所述非易失性存储器中的中间步骤提供到所述压缩布置的一个或一个以上输入参数的给定值而改变与输入流中的预定数目个里德所罗门符号相关联的所述卷积码的所述码效率。
22.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的方法,其包括:
配置压缩布置以用于接收经里德所罗门编码的流以产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分经配置以服从基于卷积码的码效率,且使所述压缩布置适于基于作为准备将输入数据存储于所述非易失性存储器中的中间步骤提供到所述压缩布置的一个或一个以上输入参数的给定值而改变与输入流中的预定数目个里德所罗门符号相关联的所述卷积码的所述码效率。
23.一种作为使用包含多个存储器单元的非易失性存储器来存储数字数据的数字系统的一部分的设备,其包括:
压缩布置,其接收由所述系统提供的输入数据流以产生基于用于在所述存储器单元中存储的块大小的输出数据流,且所述压缩布置选择性地可基于一个或一个以上输入参数而以第一模式操作以产生用于在所述存储器单元中存储的第一块大小且可响应于所述输入参数的改变而至少以第二模式操作以产生不同于所述第一块大小的第二块大小以在其操作期间选择性地改变所述块大小。
24.根据权利要求23所述的设备,其中所述第一模式及所述第二模式中的至少一者导致在所述存储器单元中至少平均每存储器单元存储每单元分数个位。
25.一种作为使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位的数字系统的一部分的设备,其包括:
编码器布置,其接收由所述系统提供的输入数据流以产生基于用于在所述存储器单元中存储的每单元译码选定位数目的输出数据流,且所述编码器布置选择性地可基于一个或一个以上输入参数以第一模式操作以将用于在所述存储器单元中存储的第一位密度产生为所述每单元选定位数目且可响应于所述输入参数的改变而至少以第二模式操作以产生不同于所述第一位密度的第二位密度以在其操作期间选择性地改变所述每单元译码位数目。
26.根据权利要求25所述的设备,其中所述输入数据流被配置为一系列码字且每一码字由构成码字长度的多个符号构成,其中每一符号表示待存储于所述存储器单元中的一者中的值,且所述编码器布置经配置以用于以所述第一模式操作以在所述系列的码字的第一码字中产生所述第一位密度且用于以所述第二模式操作以在所述系列的码字的第二码字中产生第二码字密度。
27.一种在使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位的数字系统中的方法,其包括:
配置编码器布置以用于接收由所述系统提供的输入数据流以产生基于用于在所述存储器单元中存储的每单元译码选定位数目的输出数据流,且选择性地基于一个或一个以上输入参数而使所述编码器布置以第一模式操作以将用于在所述存储器单元中存储的第一位密度产生为所述每单元选定位数目且响应于所述输入参数的改变而使所述编码器布置至少以第二模式操作以产生不同于所述第一位密度的第二位密度以在其操作期间选择性地改变所述每单元译码位数目。
28.一种作为使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位的数字系统的一部分的设备,其包括:
编码器布置,其接收由所述系统提供为一系列输入符号的输入数据流以产生基于用于在所述存储器单元中存储的每单元译码选定位数目的输出数据流,且所述编码器布置可基于一个或一个以上输入参数而重新配置以至少改变待存储于所述非易失性存储器的所述存储器单元中的所述每单元译码选定位数目。
29.一种在使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位的数字系统中的方法,其包括:
配置编码器布置以用于接收由所述系统提供为一系列输入符号的输入数据流以产生基于用于在所述存储器单元中存储的每单元译码选定位数目的输出数据流,使得所述编码器布置可基于一个或一个以上输入参数而重新配置以至少改变待存储于所述非易失性存储器的所述存储器单元中的所述每单元译码选定位数目。
30.一种作为使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位的数字系统的一部分的设备,其包括:
解码器布置,其接收响应于读取存储于所述非易失性存储器中的数据结构而提供的读取数据流以提供含有最初在写入操作期间编码为所述数据结构的一部分且存储于一系列所述存储器单元中的用户数据流的一系列读取符号,以基于存储于所述系列的存储器单元中的若干个不同的每单元译码位密度中的选定一者而再现所述用户数据流,且所述解码器布置可基于一个或一个以上输入参数而重新配置以至少改变所述位密度中的所述选定一者来匹配存储于所述系列的存储器单元中的所述位密度以作为再现所述用户数据流的一部分。
31.一种在使用包含多个存储器单元的非易失性存储器来存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位的数字系统中的方法,其包括:
配置解码器布置以用于接收响应于读取存储于所述非易失性存储器中的数据结构而提供的读取数据流以提供含有最初在写入操作期间编码为所述数据结构的一部分且存储于一系列所述存储器单元中的用户数据流的一系列读取符号,以基于存储于所述系列的存储器单元中的若干个不同的每单元译码位密度中的选定一者而再现所述用户数据流,使得所述解码器布置可基于一个或一个以上输入参数而重新配置以至少改变所述位密度中的所述选定一者来匹配存储于所述系列的存储器单元中的所述位密度以作为再现所述用户数据流的一部分。
32.一种作为配置有包含多个存储器单元的非易失性存储器用于存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位的数字系统的一部分的设备,其包括:
解映射布置,其用于基于从所述非易失性存储器读取所存储数据而接收存储器输出流,其中所述存储器输出流呈经TCM编码的输出数据流的形式,在编码操作期间使所述经TCM编码的输出数据流的一个部分但非全部服从由一组参数的给定值确立的码效率,且用于基于所述码效率对所述经TCM编码的输出数据流进行卷积解码以基于在所述编码操作期间提供的所述输入参数的所述给定值中的对应者而将所述经TCM编码的输出数据流再现为经解映射的输出流,所述经解映射的输出流含有经里德所罗门编码的流;
解压缩布置,其用于接收所述解映射器输出流并基于所述码效率而从所述解映射器输出流再现所述经里德所罗门编码的流,且所述解压缩布置对基于在所述编码操作期间提供的所述一个或一个以上输入参数的所述给定值中的对应者而改变与所述预定数目个里德所罗门符号相关联的卷积码的所述码效率做出响应;及
里德所罗门解码器,其用于从所述解压缩布置接收所述经里德所罗门编码的流以从所述经里德所罗门编码的流解码包含所述输入数据的读取数据流以供所述数字系统用作读取数据。
33.一种在配置有包含多个存储器单元的非易失性存储器用于存储数字数据使得所述存储器单元中的至少一些存储器单元可存储一个以上位的数字系统中的方法,其包括:
配置解映射布置以用于基于从所述非易失性存储器读取所存储数据而接收存储器输出流,其中所述存储器输出流呈经TCM编码的输出数据流的形式,在编码操作期间使所述经TCM编码的输出数据流的一个部分但非全部服从由一组参数的给定值确立的码效率,且用于基于所述码效率对所述经TCM编码的输出数据流进行卷积解码以基于在所述编码操作期间提供的所述输入参数的所述给定值中的对应者而将所述经TCM编码的输出数据流再现为经解映射的输出流,所述经解映射的输出流含有经里德所罗门编码的流;
使用解压缩布置接收所述解映射器输出流并基于所述码效率从所述解映射器输出流再现所述经里德所罗门编码的流,使得所述解压缩布置对基于在所述编码操作期间提供的所述一个或一个以上输入参数的所述给定值中的对应者而改变与所述预定数目个里德所罗门符号相关联的卷积码的所述码效率做出响应;及
提供里德所罗门解码器以用于从所述解压缩布置接收所述经里德所罗门编码的流以从所述经里德所罗门编码的流解码包含所述输入数据的读取数据流以供所述数字系统用作读取数据。
34.一种在配置有非易失性存储器以用于响应于主机装置而存储数字数据的数字系统中的设备,其包括:
编码器/解码器布置,其用于使所述主机装置与所述非易失性存储器介接以在其之间以一系列码字传送读取数据及写入数据,其中每一码字具有码字大小使得从所述主机装置到所述非易失性存储器的经编码数据流及从所述非易失性存储器到所述主机装置的经解码数据流各自至少服从基于卷积码的码效率,且所述编码器/解码器布置经配置以用于接收一个或一个以上输入参数使得所述码效率可响应于所述输入参数的改变而在逐码字基础上改变。
35.根据权利要求34所述的设备,其中每一码字由构成码字长度的多个符号构成,其中每一符号表示待存储于所述存储器单元中的一者中的值,且所述编码器/解码器布置经配置以用于以第一模式操作以在给定系列码字的第一码字中产生第一码效率且以第二模式操作以在所述给定系列码字的第二码字中产生第二码效率。
36.根据权利要求26所述的设备,其中所述编码器/解码器布置包含用于处置所述写入数据的编码器布置,所述编码器布置包括:
里德所罗门编码器,其用于接收通过所述数字系统提供的包含所述写入数据的输入数据流,以产生由一系列里德所罗门符号构成的经里德所罗门编码的流;
压缩布置,其接收所述经里德所罗门编码的流以产生经重新组块的输出数据流,使得所述经重新组块的输出数据流的至少一个部分但非全部经配置以服从基于卷积码的码效率,且所述压缩布置适于修改所述经重新组块的输出数据流以基于改变提供到所述压缩布置的一个或一个以上输入参数的一个或一个以上值而支持与所述输入流中的预定数目个里德所罗门符号相关联的所述卷积码的所述码效率的改变;及
映射布置,其用于接收所述经重新组块的输出数据流并应用TCM码以产生经TCM编码的输出数据流,所述映射器包含卷积编码器,所述卷积编码器用于根据所述卷积码的所述码效率对所述经TCM编码的输出流的所述部分进行卷积编码以基于所述输入参数的所述值而支持所述码效率的所述改变,以产生经映射的输出数据流供写入到所述非易失性存储器以作为所存储数据存储于所述非易失性存储器中。
37.根据权利要求28所述的设备,其中所述编码器/解码器布置包含用于处置所述读取数据的解码器布置,所述解码器布置包括:
解映射布置,其用于基于从所述非易失性存储器读取包含所述读取数据的所述所存储数据而接收存储器输出流,且用于根据所述码效率对所述存储器输出流进行卷积解码以基于提供到所述映射布置的所述输入参数的给定值中的对应者而将所述经TCM编码的输出数据流再现为经解映射的输出流;
解压缩布置,其用于接收所述经解映射的输出流并基于所述码效率而从所述经解映射的输出流再现所述经里德所罗门编码的流,且所述解压缩布置对基于提供到所述压缩布置的所述一个或一个以上输入参数的所述给定值中的对应者而改变与所述预定数目个里德所罗门符号相关联的所述卷积码的所述码效率做出响应;及
里德所罗门解码器,其用于从所述解压缩布置接收所述经里德所罗门编码的流以从所述经里德所罗门编码的流解码包含所述输入数据的读取数据流以供所述数字系统用作读取数据。
38.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的数据结构,所述数据结构存储于所述非易失性存储器中,所述数据结构包括:
一系列TCM符号,其存储于所述非易失性存储器中,所述系列的TCM符号中的每一者表示至少两个位,使每一TCM符号的至少最低有效位服从卷积码,且每一符号的至少一个其它位未经卷积编码,且所述TCM符号构成形成一系列码字的一系列里德所罗门符号使得所述数据结构中的至少一个码字的所述卷积码的码效率不同于所述数据结构中的邻近码字的所述码效率。
39.一种供与配置有用于存储数字数据的非易失性存储器的数字系统一起使用的用于将数据结构存储于所述非易失性存储器中的方法,所述方法包括:
将一系列TCM符号写入到所述非易失性存储器,所述系列的TCM符号中的每一者表示至少两个位,使每一TCM符号的至少最低有效位服从卷积码,且每一符号的至少一个其它位未经卷积编码,且所述TCM符号构成形成一系列码字的一系列里德所罗门符号使得所述数据结构中的至少一个码字的所述卷积码的码效率不同于所述数据结构中的邻近码字的所述码效率。
40.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的数据结构,所述数据结构存储于所述非易失性存储器中,所述数据结构包括:
一系列TCM符号,其存储于所述非易失性存储器中形成所述非易失性存储器的一部分的一系列存储器单元中,其中每一TCM符号包含至少一个位且构成先前写入到所述非易失性存储器的数据传送使得所述系列的存储器单元至少平均存储表示所述数据传送的每单元分数个位。
41.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的方法,其包括:
将一系列TCM符号作为数据传送写入到所述非易失性存储器的形成所述非易失性存储器的一部分的一系列存储器单元中,其中每一TCM符号包含至少一个位使得所述系列的存储器单元至少平均存储表示所述数据传送的每单元分数个位。
42.根据权利要求41所述的方法,其中所述数据传送包含用户数据且所述方法进一步包括:
基于所述每单元分数个位而从所述非易失性存储器读取所述系列的TCM符号以恢复所述用户数据。
43.一种在配置有用于存储数字数据的非易失性存储器的数字系统中的设备,其包括:
写入布置,其用于在数据传送操作中将数据结构作为一系列TCM符号写入到所述非易失性存储器的形成所述非易失性存储器的一部分的一系列存储器单元中,其中每一TCM符号包含至少一个位且所述数据结构包含用户数据使得所述系列的存储器单元至少平均存储每单元分数个位。
44.根据权利要求43所述的设备,其进一步包括:
读取布置,其用于基于所述每单元分数个位而从所述非易失性存储器读取所述系列的TCM符号以恢复所述用户数据。
CN201180027699.5A 2010-06-04 2011-05-19 具有非易失性存储器的多级系统中的高级逐位操作及设备 Expired - Fee Related CN102934171B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/794,706 US8615703B2 (en) 2010-06-04 2010-06-04 Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US12/794,706 2010-06-04
PCT/US2011/037194 WO2011153000A2 (en) 2010-06-04 2011-05-19 Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory

Publications (2)

Publication Number Publication Date
CN102934171A true CN102934171A (zh) 2013-02-13
CN102934171B CN102934171B (zh) 2016-05-11

Family

ID=45065438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180027699.5A Expired - Fee Related CN102934171B (zh) 2010-06-04 2011-05-19 具有非易失性存储器的多级系统中的高级逐位操作及设备

Country Status (6)

Country Link
US (3) US8615703B2 (zh)
EP (1) EP2577672B1 (zh)
KR (2) KR101504083B1 (zh)
CN (1) CN102934171B (zh)
TW (1) TWI493551B (zh)
WO (1) WO2011153000A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104425017A (zh) * 2013-08-19 2015-03-18 爱思开海力士有限公司 非易失性存储装置及使用其的半导体系统和计算机设备
CN106354425A (zh) * 2015-07-13 2017-01-25 三星电子株式会社 基于数据属性的数据布局的方法和系统
CN109391369A (zh) * 2017-08-11 2019-02-26 恩智浦有限公司 编码器输入选择器
CN109584915A (zh) * 2014-02-10 2019-04-05 慧荣科技股份有限公司 将数据写入至闪存的方法及相关的记忆装置与闪存
CN109599138A (zh) * 2017-10-02 2019-04-09 美光科技公司 用于存储器装置存取或操作的可变调制方案
CN110265071A (zh) * 2013-09-24 2019-09-20 拉姆伯斯公司 具有内部读取-修改-写入操作的存储部件
US11610613B2 (en) 2017-10-02 2023-03-21 Micron Technology, Inc. Multiple concurrent modulation schemes in a memory system
US11775460B2 (en) 2017-10-02 2023-10-03 Micron Technology, Inc. Communicating data with stacked memory dies

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6369027B1 (en) 1995-12-22 2002-04-09 Amgen Inc. Osteoprotegerin
DK2332976T3 (da) 1999-02-03 2014-06-23 Amgen Inc Nye polypeptider, der er involveret ved et immunrespons
ES2536653T3 (es) 2000-11-28 2015-05-27 Amgen Inc. Polipéptidos implicados en la respuesta inmunitaria
US8401105B2 (en) 2010-06-10 2013-03-19 Intel Mobile Communications GmbH Method for transmitting a data signal in a MIMO system
JP5525410B2 (ja) * 2010-10-14 2014-06-18 株式会社日立製作所 操作ログ格納システム、装置、およびプログラム
US9275720B2 (en) * 2010-12-30 2016-03-01 Kandou Labs, S.A. Differential vector storage for dynamic random access memory
RU2011118108A (ru) * 2011-05-06 2012-11-20 ЭлЭсАй Корпорейшн (US) Устройство (варианты) и способ параллельного декодирования для нескольких стандартов связи
WO2013093669A1 (en) * 2011-12-21 2013-06-27 International Business Machines Corporation Read/write operations in solid-state storage devices
US8788743B2 (en) 2012-04-11 2014-07-22 Micron Technology, Inc. Mapping between program states and data patterns
US8737139B2 (en) 2012-04-11 2014-05-27 Micron Technology, Inc. Determining soft data for combinations of memory cells
US8717831B2 (en) * 2012-04-30 2014-05-06 Hewlett-Packard Development Company, L.P. Memory circuit
US8804452B2 (en) * 2012-07-31 2014-08-12 Micron Technology, Inc. Data interleaving module
US8885410B2 (en) 2012-08-29 2014-11-11 Sandisk Technologies Inc. Direct multi-level cell programming
US8902650B2 (en) * 2012-08-30 2014-12-02 Micron Technology, Inc. Memory devices and operating methods for a memory device
US9852792B2 (en) 2013-01-31 2017-12-26 Hewlett Packard Enterprise Development Lp Non-volatile multi-level-cell memory with decoupled bits for higher performance and energy efficiency
KR102007174B1 (ko) * 2013-04-22 2019-08-05 에스케이하이닉스 주식회사 인코더, 디코더 및 이를 포함하는 반도체 장치
US9164837B2 (en) * 2013-09-12 2015-10-20 Seagate Technology Llc Transfer unit management
US9754682B2 (en) * 2013-11-19 2017-09-05 Western Digital Technologies, Inc. Implementing enhanced performance with read before write to phase change memory
EP3672176B1 (en) 2014-02-28 2022-05-11 Kandou Labs, S.A. Clock-embedded vector signaling codes
KR102238650B1 (ko) 2014-04-30 2021-04-09 삼성전자주식회사 저장 장치, 상기 저장 장치를 포함하는 컴퓨팅 시스템 및 상기 저장 장치의 동작 방법
CN105634654B (zh) * 2014-10-27 2019-12-17 中兴通讯股份有限公司 多用户信息传输的叠加编码、解调方法及装置
US9613664B2 (en) * 2015-01-20 2017-04-04 Samsung Electronics Co., Ltd. Method of operating memory device including multi-level memory cells
US10509770B2 (en) 2015-07-13 2019-12-17 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US10355893B2 (en) 2017-10-02 2019-07-16 Micron Technology, Inc. Multiplexing distinct signals on a single pin of a memory device
US10490245B2 (en) 2017-10-02 2019-11-26 Micron Technology, Inc. Memory system that supports dual-mode modulation
US10467177B2 (en) 2017-12-08 2019-11-05 Kandou Labs, S.A. High speed memory interface
KR20190074890A (ko) * 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN110213073B (zh) * 2018-04-20 2021-10-22 腾讯科技(深圳)有限公司 数据流向变更方法、电子设备、计算节点及存储介质
KR102616813B1 (ko) 2018-05-24 2023-12-26 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10361715B1 (en) * 2018-06-04 2019-07-23 Amazon Technologies, Inc. Decompression circuit
US11567831B2 (en) 2020-07-28 2023-01-31 Micron Technology, Inc. Generating a protected and balanced codeword
US11494264B2 (en) * 2020-07-28 2022-11-08 Micron Technology, Inc. Generating a protected and balanced codeword
US11237906B1 (en) * 2020-07-28 2022-02-01 Micron Technology, Inc. Generating a balanced codeword protected by an error correction code
US11757468B2 (en) * 2020-09-24 2023-09-12 Sandisk Technologies Llc Soft data compression for non-volatile memory
US20230410921A1 (en) * 2022-06-21 2023-12-21 Sandisk Technologies Llc Three-bit-per-cell programming using a four-bit-per-cell programming algorithm

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US20050086574A1 (en) * 2003-10-16 2005-04-21 Fackenthal Richard E. Error correction for multi-level cell memory with overwrite capability
US20070266296A1 (en) * 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding
US20080137414A1 (en) * 2006-12-06 2008-06-12 Samsung Electronics Co., Ltd. Multi-level cell memory device and method thereof
US20080151621A1 (en) * 2006-12-26 2008-06-26 Samsung Electronics Co., Ltd. Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
CN101405810A (zh) * 2006-01-20 2009-04-08 马维尔国际贸易有限公司 在闪存中用于纠错的方法和系统
CN101499325A (zh) * 2008-02-03 2009-08-05 深圳艾科创新微电子有限公司 一种具有可变纠错能力的非易失性存储系统及方法
CN101501784A (zh) * 2006-08-07 2009-08-05 马维尔国际贸易有限公司 用于利用乘积码来纠正非易失性存储器中的错误的系统和方法
CN101868831A (zh) * 2007-11-21 2010-10-20 美光科技公司 支持速率兼容经穿孔码的存储器控制器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8701996A (nl) * 1987-08-26 1989-03-16 Philips Nv Halfgeleidergeheugen voorzien van een medegeintegreerde foutkorrektie-inrichting, en geintegreerde schakeling voorzien van zo een halfgeleidergeheugen.
US5790570A (en) 1996-08-30 1998-08-04 Cornell Research Foundation, Inc. Concatenated trellis coded modulation and linear block codes
US6034996A (en) 1997-06-19 2000-03-07 Globespan, Inc. System and method for concatenating reed-solomon and trellis codes
US6034976A (en) * 1998-03-09 2000-03-07 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of The University Of Oregon Method and apparatus for laser frequency stabilization
US6567475B1 (en) 1998-12-29 2003-05-20 Ericsson Inc. Method and system for the transmission, reception and processing of 4-level and 8-level signaling symbols
KR100401801B1 (ko) * 2001-03-27 2003-10-17 (주)텔레시스테크놀로지 데이터 전송 성능을 개선하기 위한 직교주파수 분할 다중통신 시스템 및 방법
US7142612B2 (en) 2001-11-16 2006-11-28 Rambus, Inc. Method and apparatus for multi-level signaling
GB0228434D0 (en) * 2002-12-05 2003-01-08 Scient Generics Ltd Error correction
FR2840477B1 (fr) 2002-06-03 2005-02-04 Nortel Networks Ltd Procede d'adaptation de liens radio et unite de controle mettant en oeuvre le procede
US7359313B2 (en) 2002-06-24 2008-04-15 Agere Systems Inc. Space-time bit-interleaved coded modulation for wideband transmission
US7379505B2 (en) 2003-02-13 2008-05-27 Broadcom Corporation Method and apparatus for performing trellis coded modulation of signals for transmission on a TDMA channel of a cable network
KR100924189B1 (ko) * 2004-12-02 2009-10-29 미쓰비시덴키 가부시키가이샤 복호 장치 및 통신 장치
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
US8418035B2 (en) * 2007-01-19 2013-04-09 Koninklijke Philips Electronics N.V. Method and system of single carrier block transmission with parallel encoding and decoding
US7856067B2 (en) * 2007-04-04 2010-12-21 The Aerospace Corporation Unequal hierarchical communications modulation method
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US8627165B2 (en) 2008-03-24 2014-01-07 Micron Technology, Inc. Bitwise operations and apparatus in a multi-level system
US8595415B2 (en) * 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US20050086574A1 (en) * 2003-10-16 2005-04-21 Fackenthal Richard E. Error correction for multi-level cell memory with overwrite capability
CN101405810A (zh) * 2006-01-20 2009-04-08 马维尔国际贸易有限公司 在闪存中用于纠错的方法和系统
CN101405811A (zh) * 2006-01-20 2009-04-08 马维尔国际贸易有限公司 具有编码和信号处理的闪存
US20070266296A1 (en) * 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding
CN101501784A (zh) * 2006-08-07 2009-08-05 马维尔国际贸易有限公司 用于利用乘积码来纠正非易失性存储器中的错误的系统和方法
US20080137414A1 (en) * 2006-12-06 2008-06-12 Samsung Electronics Co., Ltd. Multi-level cell memory device and method thereof
US20080151621A1 (en) * 2006-12-26 2008-06-26 Samsung Electronics Co., Ltd. Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
CN101868831A (zh) * 2007-11-21 2010-10-20 美光科技公司 支持速率兼容经穿孔码的存储器控制器
CN101499325A (zh) * 2008-02-03 2009-08-05 深圳艾科创新微电子有限公司 一种具有可变纠错能力的非易失性存储系统及方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104425017A (zh) * 2013-08-19 2015-03-18 爱思开海力士有限公司 非易失性存储装置及使用其的半导体系统和计算机设备
CN110265071A (zh) * 2013-09-24 2019-09-20 拉姆伯斯公司 具有内部读取-修改-写入操作的存储部件
US11822822B2 (en) 2013-09-24 2023-11-21 Rambus Inc. Memory component having internal read-modify-write operation
CN109584915B (zh) * 2014-02-10 2020-09-08 慧荣科技股份有限公司 将数据写入至闪存的方法及相关的记忆装置与闪存
CN109584915A (zh) * 2014-02-10 2019-04-05 慧荣科技股份有限公司 将数据写入至闪存的方法及相关的记忆装置与闪存
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
CN106354425A (zh) * 2015-07-13 2017-01-25 三星电子株式会社 基于数据属性的数据布局的方法和系统
CN109391369A (zh) * 2017-08-11 2019-02-26 恩智浦有限公司 编码器输入选择器
CN109391369B (zh) * 2017-08-11 2023-11-14 恩智浦有限公司 编码器输入选择器
CN109599138A (zh) * 2017-10-02 2019-04-09 美光科技公司 用于存储器装置存取或操作的可变调制方案
US11610613B2 (en) 2017-10-02 2023-03-21 Micron Technology, Inc. Multiple concurrent modulation schemes in a memory system
CN109599138B (zh) * 2017-10-02 2023-08-29 美光科技公司 用于存储器装置存取或操作的可变调制方案
US11775460B2 (en) 2017-10-02 2023-10-03 Micron Technology, Inc. Communicating data with stacked memory dies
US11971820B2 (en) 2017-10-02 2024-04-30 Lodestar Licensing Group Llc Variable modulation scheme for memory device access or operation

Also Published As

Publication number Publication date
EP2577672B1 (en) 2015-08-12
CN102934171B (zh) 2016-05-11
KR101482889B1 (ko) 2015-01-14
EP2577672A4 (en) 2014-01-15
US20110302475A1 (en) 2011-12-08
TWI493551B (zh) 2015-07-21
US10740173B2 (en) 2020-08-11
EP2577672A2 (en) 2013-04-10
WO2011153000A2 (en) 2011-12-08
WO2011153000A3 (en) 2012-02-23
KR20140136059A (ko) 2014-11-27
TW201214439A (en) 2012-04-01
US20140082454A1 (en) 2014-03-20
US9411675B2 (en) 2016-08-09
KR101504083B1 (ko) 2015-03-19
US8615703B2 (en) 2013-12-24
US20160314039A1 (en) 2016-10-27
KR20130050335A (ko) 2013-05-15

Similar Documents

Publication Publication Date Title
CN102934171A (zh) 具有非易失性存储器的多级系统中的高级逐位操作及设备
CN101978349B (zh) 多电平系统中的逐位操作和设备
CN101944067B (zh) 存储数据的方法和存储器系统
TWI533304B (zh) 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置
CN103392172B (zh) 纠正存储阵列中的擦除
CN102823141B (zh) 用于固态存储器件的两级bch码
US11804856B2 (en) Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US9231622B2 (en) Encoding methods and systems for binary product codes
KR20130029080A (ko) 소거 없는 플래시 메모리의 다중 프로그래밍
CN101779379B (zh) 使用通用级联码(gcc)进行编码和解码
US6163871A (en) RAM based error correction code encoder and syndrome generator with programmable interleaving degrees
CN102543209A (zh) 多通道闪存控制器的纠错装置、方法及多通道闪存控制器
US8638515B2 (en) Writing data to a storage medium
CN102355331B (zh) 一种通用多模式译码装置
CN104298572A (zh) 一种纠错方法、装置和系统
CN103151078A (zh) 一种存储器检错纠错码生成方法
CN108628698A (zh) 计算crc编码的方法和装置
CN108270449A (zh) 支持多种编码率和编码长度的编码器
CN100517982C (zh) 一种数据总线转换装置及其rs编译码器
CN101345606B (zh) 一种确定汉明纠错码校验位的方法与装置
US20190020359A1 (en) Systematic coding technique for erasure correction
CN102064916A (zh) 一种基于cmmb标准的字节交织方法
CN109728826A (zh) 一种数据交织与解交织方法和装置
CN114153393A (zh) 一种数据编码方法、系统、设备以及介质
EP1175012A2 (en) Method and apparatus for error correction decoding a nordstrom-robinson encoded data stream

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160511