于2006年1月25日提交的名为“Increase Storage Capacity of FlashMemory through Coding and Signal Processing”的第60/761,888号临时申请;以及
于2006年2月8日提交的名为“Increase Storage Capacity of FlashMemory through Coding and Signal Processing”的第60/771,621号临时申请。
本申请还与同时提交的名为“Method And System For Error CorrectionIn Flash Memory”、律师签号为MP0909的第号美国专利申请有关,该申请是共同转让的并且通过引用而整体结合于此。
发明内容
根据本发明的一个实施例,一种固态非易失性存储元件部分地包括编码器、适应于存储由编码器编码的数据的多级固态非易失性存储阵列,以及适应于对从存储阵列取回的数据进行解码的解码器。在一个实施例中,存储元件布置在集成电路中。存储阵列可以是闪速EEPROM阵列。
在一种实施例中,存储元件可以还包括:第二编码器,适应于向第一编码器提供经编码数据;以及第二解码器,适应于解码由第一解码器提供的数据。第一编码器可以执行第一ECC,该第一ECC与第二编码器所适合执行的第二ECC不同。在一些实施例中,第二编码器包括Reed-Solomon编码器。
在一些实施例中,存储元件还部分地包括调制器和解调器。由调制器调制的数据随后存储在存储阵列中。解调器解调从存储阵列取回的经调制数据。
在一些实施例中,所述第一编码器是二进制编码器,其根据例如Hamming码、BCH码、Reed-Muller码和阵列码对数据进行编码。在其他实施例中,第一编码器是非二进制编码器,其根据例如Reed-Solomon(RS)码对数据进行编码。
在一些实施例中,第一编码器是卷积编码器。在其他实施例中,第一编码器和调制器形成网格编码的调制器。第一编码器可以是迭代编码器,其根据例如低密度奇偶校验码和Turbo码对数据进行编码。第一编码器还可以是基于码元的迭代编码器。
根据本发明的一个实施例,一种操作固态非易失性存储元件的方法包括对第一数据进行编码,将经编码的第一数据存储在多级固态非易失性存储阵列中;以及对从存储阵列取回的第一数据进行解码。存储阵列可以是闪速EEPROM阵列。
在一个实施例中,方法还包括对第二数据进行编码以生成第一数据,以及对经解码的第一数据进行解码以生成第二数据。可以根据第一ECC来执行对第一数据的编码,第一ECC不同于第二ECC,根据第二ECC来对第二数据进行编码。可以根据Reed-Solomon码对第二数据进行编码。
在一些实施例中,方法还部分地包括:对经编码的数据进行调制;将经调制的数据存储在存储阵列中;以及对从存储阵列取回的数据进行解调。在一些实施例中,可以根据二进制码(例如Hamming码、BCH码、Reed-Muller码或阵列码)对数据进行编码。在其他实施例中,可以根据非二进制码(例如Reed-Solomon码)对数据进行编码。
在一些实施例中,可以根据卷积码对数据进行编码。在其他实施例中,可以根据网格编码调制来执行对数据的编码和调制。在一些实施例中,可以根据迭代码(例如低密度奇偶校验码或Turbo码)对数据进行编码。迭代码可以是基于码元的迭代码。
根据本发明的一种实施例,一种固态非易失性存储元件部分地包括:用于对第一数据进行编码的装置;用于将经编码的第一数据存储在多级固态非易失性存储阵列中的装置;以及用于对从存储阵列取回的第一数据进行解码的装置。存储阵列可以是闪速EEPROM阵列。
在一种实施例中,存储元件还包括用于对第二数据进行编码以生成第一数据的装置,以及用于对经解码的第一数据进行解码以生成第二数据的装置。用于对第一数据进行编码的装置可以执行与由第二编码装置执行的第二ECC技术不同的ECC。第二编码装置可以是Reed-Solomon编码器。
在一些实施例中,存储元件还部分地包括用于对经编码的数据进行调制的装置,以及用于对从存储阵列取回的数据进行解调的装置。在一些实施例中,编码装置可以利用诸如Hamming码、BCH码、Reed-Muller码和阵列码之类的码来执行二进制编码。在其他实施例中,编码装置可以利用诸如Reed-Solomon码之类的码来执行非二进制编码。
在一些实施例中,编码装置可以执行卷积编码。在其他实施例中,编码装置和调制装置可以执行网格编码调制。在一些实施例中,编码装置可以利用诸如低密度奇偶校验码或Turbo码之类的码来执行迭代编码。迭代码可以是基于码元的迭代码。
根据本发明的一种实施例,一种固态非易失性存储元件部分地包括:用于对第一数据进行编码的代码;用于将经编码的第一数据存储在多级固态非易失性存储阵列中的代码;以及用于对从存储阵列取回的第一数据进行解码的代码。存储阵列可以是闪速EEPROM阵列。
在一种实施例中,存储元件还包括用于对第二数据进行编码以生成第一数据的代码,以及用于对经解码的第一数据进行解码以生成第二数据的代码。用于对第一数据进行编码的码可以是与用于对第二数据进行编码的第二ECC码不同的ECC码。用于对第二数据进行编码的码可以是Reed-Solomon码。
在一些实施例中,存储元件还部分地包括用于对经编码的数据进行调制的代码,以及用于对从存储阵列取回的数据进行解调的代码。在一些实施例中,用于对数据进行编码的码可以是二进制码,例如Hamming码、BCH码、Reed-Muller码和阵列码。在其他实施例中,用于对数据进行编码的码可以是非二进制码,例如Reed-Solomon码。
在一些实施例中,用于对数据进行编码的码可以是卷积码。在其他实施例中,编码代码和调制代码可以是网格编码调制代码。在一些实施例 中,用于对数据进行编码的码可以是迭代码,例如低密度奇偶校验码或Turbo码。迭代码可以是基于码元的迭代码。
具体实施方式
图2A是所根据用于将信息存储为0(-1伏)或1(+1伏)的未编码一位PAM(脉冲幅度调制)方案的星座图。图2B是使用PAM方案调制的二位数据的星座图。二位所定义的四种状态(即状态00、01、10和11)被映射到四种可能电平(例如-3/
伏、-1/
伏、+1/
伏和+3/
伏)之一。在给定这些电压的情况下,具有1/2编码率的2点PAM(2-PAM)和4点PAM(4-PAM)都提供1位/单元的频谱效率并且特征在于相等的力度。对于图2B所示的调制方案,具有Gray映射的4状态码与4状态自然映射相比减小了位差错率。
在固态非易失性存储设备中,应用于浮动栅极处的最大电压限制了对映射多级码元可用的最大电压。该电压限制引起了对所应用的调制和编码方案的星座值的峰值约束。因此,对于固态非易失性存储设备,星座点必须说明该限制。固态非易失性存储元件的最大电压约束特性与其中可获得另外力度增加的其他信道形成对比。因此,本发明的实施例利用了被设计为尽管在这种约束下也可以操作的用于多级非易失性固态存储器的调制和编码方案。
图2C是使用用于固态非易失性存储单元的PAM方案而调制的二位数据的星座图,该PAM方案将峰值限制为±1。将码元00映射到-1伏的信号幅度并将码元10映射到+1伏的信号幅度,这些码元在该示例中对应于给定固态非易失性存储单元所存储的最大电压。应用力度缩放以说明非易失性固态存储单元两端的最大容许电压,可见平方的自由距离减小5/9,与未编码2-PAM系统相比产生0dB的编码增益。
随着电平数目增加,信噪比(SNR)减小。然而,SNR的减小斜率对这两种系统而言并不相同。参考图2B和2C,SNR与星座图中的最近邻居 之间的最小距离有关。结果,固态非易失性存储设备中的电压约束减小了可用的最小距离和SNR。因此,对于给定数目的电平,存储系统与其他已知系统相比通常具有更低的SNR。由于这些差异,根据本发明各种实施例,编码和调制技术被适应于固态非易失性存储器的环境特性。
假定能量星座相等,对于未编码的系统,差错概率(Puncoded)的上限为:
其中A
min是最近邻居的数目,
是星座中两点之间的最小距离平方,Q(x)是互补差错函数(余误差函数)。
对于经编码系统:
其中dfree是最小距离。
渐近编码增益由下式定义:
对于经编码系统,最小距离dfree与未编码系统相比通常增大,导致渐近编码增益大于1。然而,最近邻居的数目也增加,故实际编码增益略微降低。
图3A是根据本发明实施例的具有ECC的示例性固态非易失性存储元件300的简化框图。将要写入多级固态非易失性存储器314的多级存储单元的用户数据被编码器310进行ECC编码,以加入冗余码元。经编码的数据被传递给调制器312以供信道编码。根据本发明的实施例,可以使用多种编码和调制技术中的任一种。
多级固态非易失性存储器314从调制器312接收经编码并经调制的数据。多级固态非易失性存储器314可以是闪速EEPROM等。一般而言,多级闪存包括一个或多个闪存单元阵列以及读写(编程)电路。除了多级闪存之外,还有其他类型的固态非易失性存储技术也包括在本发明的范围内。诸如闪存之类的浮动栅极存储单元在此仅作为示例讨论。利用适当修改,整个本说明书中描述的本发明的实施例也适用于除浮动栅极技术之外的其他存储技术。本领域普通技术人员将认识到许多变更、修改和替代。
数据被从多级固态非易失性存储器314读出并且传递到解调器316和解码器318。本发明实施例中的解调器包括信号处理逻辑,该逻辑适用于提取与存储在多级固态非易失性存储器314中的数据有关的软信息。在传统的二进制非易失性存储元件中,利用阈值检测器来判定与特定单元相关联的电压值是小于还是大于给定阈值。在多级存储元件中也利用这种基于阈值的方法,其中阈值检测电路仅利用更多的阈值。虽然某些多级存储元件包括跟踪处理或其他变更并相应调节阈值的电路,这些元件从等于多级元件中的电平数目的多个可能值中输出一值。因此,例如对传统的四电平非易失性存储器而言,读出放大器将产生表示四种电平之一的数据信号。
与传统的多级存储元件相比,本发明的实施例利用产生输出的解调器,该输出具有比多级固态非易失性存储器314所提供的级别数目更大的多个可能值。该信息有时被称为软信息,这是因为输出包括除存储在多级存储器中的值之外的信息。仅仅作为示例,作为解调器316的一部分而提供的或者与解调器316协同工作的模数(A/D)转换器或检测器响应于由例如与四级存储器相通信地布置的读出放大器所检测的值而提供例如具有32种可能值的输出信号。本发明的实施例不限于使用具有32级的输出信号,因为例如具有8、16或更多级的其他输出信号也包括在本发明的范围内。在某些应用中,软信息被传递到软输入解码器(未示出)以进行处理。根据本发明,在信号处理操作期间利用由解调器316提供的软信息,以提高从固态非易失性存储器314读取数据的可靠性。
在本发明的实施例中,编码器310、调制器312、解调器316和解码器318是与多级固态非易失性存储器314相通信的控制器的组件。存储设备通常包括安装在卡片上的一个或多个存储芯片。每个存储芯片可以包括存储单元阵列以及执行诸如编程、读取和擦除之类操作的集成电路。根据本发明的实施例,执行这些操作的控制器电路可以也可以不布置在亦布置有一个或多个存储芯片的集成电路(IC)中。这里所提供的控制器不限于执行编码/解码和调制/解调处理,而是也可以提供诸如平均读写(wear- leveling)和接口连接处理之类的其他功能。
本发明的实施例使得设计者可以增大现有固态非易失性存储器的存储密度。如在整个本说明书中更充分描述的,与传统的元件相比,利用这里所提供的技术和方法校正了增大水平的读写差错。因此,虽然通过引入另外的级别来为例如八级应用利用四级存储系统的尝试可能在读操作期间产生在给定性能指标下不可接受的大量差错,但是这里描述的技术可被用于在解调处理期间校正这种差错并且使得例如可以在八级应用中使用四级存储系统。因此,根据本发明,在仍然使用某些相同组件(包括存储阵列、读出放大器等)的同时,可以增大现有固态非易失性存储系统的存储密度。
图3B是根据本发明实施例的包括A/D转换器的固态非易失性存储元件350的简化框图。如图3B所示,编码器360和调制器362向多级非易失性固态存储器364提供经编码并经调制的数据。A/D转换器366接收来自多级非易失性固态存储器364的信号。A/D转换器366所输出的数字信号具有比与多级非易失性固态存储器364相关联的电平数目更高的分辨率(特征在于更多级)。仅作为示例,在特定实施例中,多级非易失性固态存储器364例如是在每个单元中提供2位存储的四级存储器。在读操作期间,A/D转换器366根据具体应用而把与存储器364的一个或多个单元相关联的模拟信号转换为例如8、16、32或64级之一。在其他实施例中使用比四电平更多的其他数目的电平。驻留在解调器368中的信号处理算法利用A/D转换器366的输出来判定单元包含与存储在单元中的四种电平之一相关联的数据的可能性。本领域普通技术人员将认识到许多变更、修改和替代。
在传统的固态存储器中,利用ECC技术来检测和校正当从存储器中读出数据时数据中的差错。这种ECC技术仅对由读出放大器产生的二进制或多级数字数据进行操作。另一方面,根据本发明,解调器316所产生和利用的软信息不仅包括二进制或多级数字数据,而且包括附加信息。软信息通常由在执行如下信号处理技术时有用的分布来表示:一旦数据已被减小至在数目上等于多级系统中的级别数目的基于阈值的数字值,则所述信号 处理技术并未一般地适用。
通过利用本发明的实施例,与未编码系统相比,针对多级固态非易失性存储系统实现了正的编码增益。表1图示出作为编码状态数目的函数的、卷积编码的2位/单元多级非易失性存储器较之未编码的1位/单元非易失性存储器的示例性编码增益。如第一行条目所示,对于4态系统(图2A-2C所示),与未编码系统相比的编码增益是0dB。然而,随着状态数目增加,与未编码系统相比的编码增益是正的。
表1
状态数目 | 编码增益(dB) |
4 | 0 |
8 | 0.46 |
16 | 0.87 |
32 | 1.50 |
表2图示出作为编码状态数目的函数的、卷积编码的3位/单元多级非易失性存储器较之未编码的2位/单元多级非易失性存储器的编码增益。如针对具有四个或更多状态的1位/单元多级非易失性存储器所示,对于具有四种或更多状态的系统,与未编码系统相比的编码增益是正的。
表2
状态数目 | 编码增益(dB) |
4 | 2.18 |
8 | 2.64 |
16 | 3.05 |
32 | 3.78 |
图4是根据本发明另一实施例的具有纠错的固态非易失性存储元件的简化框图。如图4所示,外编码器410向内编码器412提供经编码的数据。作为示例,外编码器410可以是Reed-Solomon编码器,内编码器可以是LDPC编码器。这些编码技术仅仅用作示例并且不是意图限制本发明 的范围。本领域普通技术人员将认识到许多变更、修改和替代。调制器414接收来自内编码器412的经编码数据并且在编程操作期间将数据存储在多级固态非易失性存储器416中之前对数据进行调制。在读操作期间,存储在多级固态非易失性存储器416中的数据被取回并被提供给解调器418、内解码器420和外解码器422。
根据本发明的实施例,可以使用包括前向纠错(FEC)码在内的任何数目的纠错码(ECC)通过向所传输的数据加入结构化冗余来改善力度有限和/或带宽有限信道的误码率(BER)性能。例如,块码(block code)可以用于对具有附加突发噪声(随机多位差错)的信道的数据块进行编码。可以明白,本发明既可应用于在编码和存储之前不操作用户数据的系统化编码器,也可应用于非系统化编码器。
可以使用例如包括诸如Hamming码、BCH码、Reed-Muller码和阵列码之类的二进制码和诸如Reed-Solomon(RS)码之类的非二进制码在内的多种不同线性块码中的任何一种。块大小之选择取决于SNR和所使用的码。例如,假定电压级别从每单元4种增加到每单元8种,并假定每三个单元集合在一起以形成一个9位码元。应用(511、451)Reed-Solomon码,基于GF(29),码字长度是511*9=4599位,并且编码率是451/511~=0.883。因此,经编码系统的存储容量是3*451/511~=2.6位/单元,这表示较之4级未编码系统的32%容量增长。在图5中,这一编码系统的字差错率被与未编码4级系统相比较。可见当WER<10-8时,经RS编码的系统表现胜过未编码系统。因此,利用上面的RS编码,实现了更佳的可靠性和更高的容量。
根据本发明的其他示例性实施例,例如当噪声独立于码元时,卷积码被用于对数据进行编码。卷积码将相关性引入经编码数据,并因而增加了解码器处的最小距离。卷积码应用于在固态非易失性存储器中存储的或者从固态非易失性存储器中读取的串行传输的数据,这些数据受到高斯噪声。卷积码是渐进码。在任一时间点处,卷积编码器的输出可取决于过去和当前的输入值两者。因此,卷积码通常针对校正跨越数据值的有序进展的差错。因此,这种码可以用于以有序、渐进流(即,数据流)的形式存 储和读出数据的多级固态非易失性存储器。
解码器接收硬判决输入或多级量化输入。已知软输入在检测器处造成更少的差错。图6示出示例性的编码率为1/2的卷积编码器600的各个块。由模2(modulo-2)加法器610生成的输出C2是由移位寄存器602、606和输入U限定的。例如,如果电压级别从四个增加到八个,应用编码率为3/4的卷积码以获得3*3/4=2.25位/单元,从而导致10%的存储容量增加。为了实现与未编码4级系统相同的差错率,卷积码的自由距离必须大于(7/3)2=5.44。具有六个存储元件的3/4卷积编码器将需要具有26=64种状态的维特比(Viterbi)解码器。
网格编码调制(TCM)将卷积码与集分割相结合以实现高编码率、高编码增益和低编码复杂度。星座点的集合可被分割为更小的子集,其中每个子集中的点较之在原始星座中被更加分开。图7示出2-D集分割的一个示例,其中点“·”表示一个子集,交叉“x”表示另一子集。如果原始星座点之间的最小距离是d,那么每个子集中的点之间的最小距离是 d。在具有高斯加性白噪声(AWGN)信道(例如闪存系统读路径信道)的系统中,控制系统性能的参数不是卷积码的自由Hamming距离,而是所传输的信号序列之间的自由欧几里德距离。因此,TCM设计的优化是基于欧几里德距离而非Hamming距离。
图8中示出了TCM800的示例。输入位被分为两组——第一组具有k1位,通过编码率为k1/(k1+1)的编码器802以选择子集;第二组具有k-k1位,其使用星座映射器804在每个子集中选择星座点。下面是对从2位/单元到2.5位/单元的示例性容量增加的描述。假定存在8种电压级别并且每两个相邻单元被组合以形成64QAM星座。64QAM被分割为4个陪集(coset)。每个陪集中的任意两点之间的距离是8*d0。假定使用编码率为3/4的卷积码来选择陪集,并使用两个未编码的位来选择任何给定陪集中的点。总的编码率将因而变为5/6,从而导致2.5位/单元。总的编码增益是0.43dB。因此,这种TCM经编码系统具有比未编码4级系统更好的性能,同时使存储容量增加25%。
某些基于随机构造的码可以通过迭代检测方法来有效解码。这些码包 括Turbo码(即串行级联的卷积码或者并行级联的卷积码)、低密度奇偶校验(LDPC)码、Turbo乘积码,以及它们的变体。
TCM的编码增益来自两个领域——用于增加每个子集内的星座点之间的距离的集分割,以及用于实现不同子集之间的高欧几里德距离的卷积码,如果用其他高增益编码替代卷积码也可以实现后者。图9中示出了将集分割与迭代码相组合的一个示例。假定16-PAM系统被分割为4个子集。那么每个子集中各点之间的最小距离是4d0,从而提供较之未编码系统的12dB增益。然而,在不同子集之间,最小距离仍是d0。因为子集的选择取决于由LDPC编码器902提供的LDPC编码位,因此如果使用了具有12dB增益的LDPC码,那么整个系统具有大约12dB的增益。一般而言,整个系统的增益是集分割增益和迭代编码增益中的最小者。图9中示出的LDPC编码器902需要在由迭代编码块大小所定义的整个码字上操作。除了迭代码之外,包括RS码和BCH码在内的其他高增益码可用于对输入的一部分进行编码以进行子集选择。
根据某些实施例,为了进一步提高编码增益,多级编码可被使用。图10A中示出包括内编码器和外编码器的两级编码。在一种示例性实施例中,外码编码器1002可以是RS编码器,内码编码器1004可以是TCM编码器。通过RS解码器1008来校正由TCM解码器1006造成的突发差错。
在另一示例性实施例中,内编码器1004适用于执行诸如LDPC码或Turbo码之类的迭代码,外编码器1002适合于执行RS码。迭代码可以是二进制码或是基于码元的码。每个码元可以包括多个位。可以使用软输入软输出(SISO)解码器来解码迭代码,而可以使用SISO解码器或硬判决解码器来解码RS码。外部RS解码器1008可以与内解码器1006迭代以交换软信息。这种迭代将提高软信息的质量并从而在每次迭代后减少位差错的数目。
这里提供的对各实施例的描述仅是作为示例而提供,并非意图限制本发明的范围。各种其他编码技术、交织技术、调制技术、解调技术、解码技术、映射技术等包括在本发明的范围内。
图10B是根据本发明另一示例性实施例的二级编码1020的简化框 图。外编码器1022是校正力度为t的Reed-Solomon编码器。内编码器1030包括编码率为3/4的TCM1024和使任意两点之间的间隔为2/15的16-PAM星座映射器1026。对于为图10B所示的编码信道执行的计算,具有3阶、4阶和5阶多项式的卷积编码器被利用。可以明白,虽然图10B所示的示例性实施例包括Reed-Solomon编码器1022、TCM1024和16-PAM星座映射器1026,本发明的其他实施例也可以包括其他编码器、调制器和映射器。另外,对于这里描述和在附图中示出的所有示例性实施例,可以使用包括多维调制器(例如由Wei在IEEE Transactions onInformation Theory第IT-33卷第四期(1987年7月)第483-501页上发表的“Trellis-Coded Modulation with Multidimensional Constellations”所提出的那些)的调制器、多级编码(例如由Imai和Hirakawa在IEEETransactions on Information Theory第IT-23卷第3期(1977年5月)第371-377页上发表的“A New Multilevel Coding Method Using Error-Correcting Codes”所提出的那些)、及其任何组合等。
参考图10B,由228个9位码元来表示大约2k位(2048位)。仅作为示例,9位码元是通过组合三个相邻8级单元而形成的。Reed-Solomon编码器1022向228个9位码元补充2t码元,以便提供被输入到内编码器1030的230个码元。在示例性实施例中,由228个9位码元表示的用户数据被写入存储阵列的一部分,该存储阵列的特征在于宽度等于三十个3位单元。在将用户数据以串行方式写入存储阵列之后,集合三个相邻的3位单元以形成9位码元。然后向十列这种9位码元附加以例如由RS编码器1022提供的列奇偶值。所附加的奇偶值的数目将部分地取决于为RS编码器1022选择的校正力度。对每个3位单元执行TCM编码以提供经编码的4位码元,这些经编码的4位码元随后被提供给16-PAM星座映射器1026,然后被写入固态非易失性存储器。将认识到,还可以例如通过提供多个并行工作的TCM1024来并行执行编码,从而增加处理速度。通过使联系图10B讨论的操作反向来执行对用户数据的解码。
取决于所选择的编码技术,可以使用多种生成多项式之一。仅作为示例,如表3中图示的生成多项式与编码率为1/2的系统化编码器一起被用 于某些应用。每种状态的分支数目等于二。
表3
第一级的集分割如下:
Q(0)-{-15,-11,-7,-3,+1,+5,+9,+13}
Q(1)-{-13,-9,-5,-1,+3,+7,+11,+15}
第二级的集分割如下:
Q(00)-{-15,-7,+1,+9},
Q(10)-{-11,-3,+5,+13}
Q(01)-{-13,-5,+3,+11}
Q(11)-{-9,-1,+7,+15}
如图10B所示,本发明的一些实施例利用RS编码器作为外编码器1022。RS编码器所提供的功能很好地适合于存在差错突发的应用。对于固态非易失性存储器应用,差错可能因多种原因而以突发的方式出现。首先,存储阵列介质的一部分中的缺陷可以影响由布置在这种部分中的单元造成的差错。另外,差错突发可以由内编码器1024的操作引起。因为任何给定时刻的输出部分地取决于先前的输出,因此卷积解码器可能产生差错突发。因此,本发明的某些实施例利用适合于处理差错突发的RS编码器和解码器。
如由图1可见,经编程单元的PDF取决于单元的阈值电压而不同。如果四种级别被相等地间隔,那么对应于如下单元的级别由于其更宽的分布而比其他级别更容易受到差错,所述单元具有由范围在2和4伏之间的阈值电压定义的PDF。因此,在某些实施例中,使用约束编码来抑制某些模 式或减小它们的频率。例如降低对应于如下单元的数据的频率降低了总的差错概率,所述单元具有由范围在2和4伏之间的阈值电压定义的PDF。
在某些实施例中,使码字大小与扇区大小一致。例如,如果扇区大小例如是256k位,那么可以配置内码和外码,使得一个外码字是256k位。也可以使用比扇区大小更小或更大的码字大小。在图11A中,扇区大小被示出为等于码字大小。在更小码字大小的情况下,每个扇区包括多个码字,如图11B所示。在更大码字的情况下,每个码字包括多个扇区,如图11C所示。一般而言,码字大小越大,编码增益越大,解码延迟越长,并且解码器复杂度越高。
码字在存储前可被交织。图12示出示例性的3路交织单元,其中单元1202形成码字1、单元1204形成码字2、并且单元1206形成码字3。如果缺陷跨越仅仅三个单元,那么其仅导致每个码字中的一个码元差错,这比三个码元差错的突发更容易校正。
根据本发明的其他示例性实施例,如上所述的数据编码可以跨多个非易失性固态半导体存储器得到应用,这多个非易失性固态半导体存储器在某些实施例中在物理上层层堆叠。例如,如果8个这种非易失性固态半导体存储器堆叠在一起,那么可以跨这些存储器而应用基于GF(28)的RS码,其中RS码码元的每个位来自这些存储器之一。如果这些存储器之一具有大的缺陷,那么跨这些存储器进行编码会改善差错恢复。
图13A是根据本发明示例性实施例提供的交织技术的简化示意图。如图13A所示,对数据的行利用内编码器(例如TCM编码器),对数据的块列利用外编码器(例如RS编码器)。该示例性实施例例如可用于固态非易失性存储器,其中数据以矩形格式(即,块)被写入存储单元。在相当长的多位差错存在于内TCM码上的情况下,本发明的实施例提供了多个独立外部RS码来处理由多位差错损坏的数据。因此,影响个体RS码的差错数目是有限的。参考图13A,特定实现方式中的列的数目部分地由最大差错突发长度决定。行的数目部分地由每个块码字的扇区数目决定。
根据本发明的某些实施例,列的数目是根据特定应用预先确定的。例如,如果列的数目(与交织深度有关)大于最大差错突发长度,那么对列 进行操作的外编码器类似于特征在于特定码元差错率的无记忆信道。因此,所发生的差错突发影响不同的外编码器码。通常通过独立使用TCM仿真来确定码元差错率,并可以通过独立建模来估计差错概率。可以通过增大块码字的行尺寸来减小外编码器(例如RS编码器)的开销的百分比。可替代地,可以增大RS码的行尺寸同时使开销百分比保持恒定,从而允许每列有更高的校正力度。
图13B是针对如图13A中图示的交织系统的、作为SNR的函数的SER的曲线图。为了计算在图13B中呈现的数据,针对每个块码字使用10列。其他实施例将根据具体应用针对每个块码字使用不同数目的列和扇区。为了比较目的而图示出未编码的2位/单元4-PAM系统的SER。示出多种实现方式的SER值,在这些实现方式中,外编码器(在该示例中为RS编码器)的强度在校正力度的范围内变化(tRS分别为12、14和16)。随着外编码的校正力度或强度增大,经编码系统下降到与未编码系统相等的水平时的SNR减小。参考图13B,对于TRS分别为12、14和16而言,该交叉点大约位于22.4dB、22.2dB和22.0dB。
在特定示例性实施例中,多级固态非易失性存储器例如包括2.5位/单元。在这种实施例中,两个相邻的8级单元(3位/单元)形成64-QAM调制码元。在64-QAM调制码元中的六位中,五个位用于数据,一个位用于编码。因此,在这种示例性实施例中,编码率是5/6,每种状态的分支数目等于四。这种系统提供2.5位/单元,因为5个数据位存储在两个相邻单元之间。在这种示例性实施例中,与未编码4-PAM系统相比的编码增益例如可以是针对16状态的0.423dB。应当注意到,当重复(multiplicity)被包括在这种计算中时,计算结果将被修改。例如,在重复加倍的情况下,预期会损失大约0.2dB。本领域普通技术人员将认识到许多变体、修改和替代。
在本发明的另一特定示例性实施例中,例如提供了3.5位/单元的多级固态非易失性存储器。在这种实施例中,两个相邻的16级单元(4位/单元)形成256-QAM调制码元。在256-QAM调制码元中的八位中,七个位用于数据,一个位用于编码。因此,在这种示例性实施例中,编码率是 7/8,每种状态的分支数目等于四。这种系统提供3.5位/单元,因为7个数据位存储在两个相邻单元之间。与未编码8-PAM系统相比的编码增益例如可以是针对8状态的0.527dB和针对16状态的1.317dB。应当注意到,当重复被包括在这种计算中时,计算结果将被修改。例如,在重复加倍的情况下,预期会损失大约0.2dB。本领域普通技术人员将认识到许多变体、修改和替代。
现在参考图14A—图14H,本发明的各种示例性实现方式被示出。参考图14A,本发明可以实现在硬盘驱动器1400中。本发明可以实现在图14A中1402处总地标识出的信号处理和/或控制电路。在某些实现方式中,HDD1400中的信号处理和/或控制电路1402和/或其他电路(未示出)可以处理数据,执行编码和/或加密,执行计算,并且/或者格式化被输出到和/或接收自磁性存储介质1406的数据。
HDD1400可以经由一个或多个有线或无线通信链路1408与诸如计算机之类的主机设备(未示出)、诸如个人数字助理、蜂窝电话、媒体或MP3播放器等之类的移动计算设备、和/或其他设备进行通信。HDD1400可以连接到存储器1409,存储器1409例如是随机存取存储器(RAM)、诸如闪存之类的低等待时间非易失性存储器、只读存储器(ROM)和/或其他合适的电子数据存储装置。
参考图14B,本发明可以实现在数字通用光盘(DVD)驱动器1410中。本发明可以实现DVD驱动器1410的信号处理和/或控制电路(在图14B中1412处总地标识出)和/或海量数据存储装置1418。DVD1410中的信号处理和/或控制电路1412和/或其他电路(未示出)可以处理数据,执行编码和/或加密,执行计算,并且/或者格式化读取自和/或被写入光学存储介质1416的数据。在某些实现方式中,DVD1410中的信号处理和/或控制电路1412和/或其他电路(未示出)还可以执行其他功能,例如编码和/或解码和/或与DVD驱动器相关联的任何其他信号处理功能。
DVD驱动器1410可以经由一个或多个有线或无线通信链路1417与诸如计算机之类的输出设备(未示出)、电视机或其他设备进行通信。DVD1410可以与以非易失性方式存储数据的海量数据存储装置1418进行通 信。海量数据存储装置1418可以包括诸如图14A所示的硬盘驱动器(HDD)。HDD可以是包括一个或多个直径小于大约1.8"的盘片的迷你HDD。DVD1410可以连接到存储器1419,存储器1419例如是RAM、ROM、诸如闪存之类的低等待时间非易失性存储器和/或其他合适的电子数据存储装置。
参考图14C,本发明可以实现在高清晰度电视(HDTV)1420中。本发明可以实现HDTV1420的信号处理和/或控制电路(在图14C中1422处总地标识出)、WLAN接口和/或海量数据存储装置。HDTV1420接收有线或无线格式的HDTV输入信号并且针对显示装置1426生成HDTV输出信号。在某些实现方式中,HDTV1420的信号处理和/或控制电路1422和/或其他电路(未示出)可以处理数据、执行编码和/或加密、执行计算、格式化数据并且/或者执行可能需要的任何其他类型的HDTV处理。
HDTV1420可以与诸如光学和/或磁性存储设备之类的以非易失性方式存储数据的海量数据存储装置1427进行通信。至少一个HDD可以具有图14A所示的配置,并且/或者至少一个DVD可以具有图14B所示的配置。HDD可以是包括一个或多个直径小于大约1.8″的盘片的迷你HDD。HDTV1420可以连接到存储器1428,存储器1428例如是RAM、ROM、诸如闪存之类的低等待时间非易失性存储器和/或其他合适的电子数据存储装置。HDTV1420还可以支持经由WLAN网络接口1429与WLAN相连接。
现在参考图14D,本发明实现了车辆1430的控制系统、车辆控制系统的WLAN接口和/或海量数据存储装置。在一些实现方式中,本发明实现了动力系控制系统1432,它从一个或多个传感器(诸如温度传感器、压力传感器、旋转传感器、气流传感器和/或任意其他适用的传感器)接收输入,并且/或者生成一个或多个输出控制信号,诸如引擎操作参数、传送操作参数和/或其他控制信号。
本发明还可被实现于车辆1430的其他控制系统1440中。控制系统1440同样可以从输入传感器1442接收信号和/或向一个或多个输出设备1444输出控制信号。在一些实现方式中,控制系统1440可以是防抱死制 动系统(ABS)、导航系统、远程通信系统、车辆远程通信系统、车道偏离系统、自适应巡航控制系统、车辆娱乐系统(诸如立体声、DVD、光盘等)等的一部分。还可以预期其他的实现方式。
动力系控制系统1432可以与海量数据存储装置1446通信,该存储装置以非易失方式存储数据。海量数据存储装置1446可以包括光和/或磁存储设备,例如硬盘驱动器HDD和/或DVD。至少一个HDD可以具有图14A所示的配置,并且/或者至少一个DVD可以具有图14B所示的配置。HDD可以是迷你HDD,它包括一个或多个直径小于大约1.8″的盘片。动力系控制系统1432可以连接到存储器1447,存储器1447例如是RAM、ROM、诸如闪存之类的低等待时间非易失性存储器和/或其他适合的电子数据存储装置。动力系控制系统1432还可以支持通过WLAN网络接口1448与WLAN相连接。控制系统1440还可以包括海量数据存储装置、存储器和/或WLAN接口(全部未示出)。
现在参考图14E,本发明可以实现于蜂窝电话1450中,该蜂窝电话可以包括蜂窝天线1451。本发明可以实现蜂窝电话1450的信号处理和/或控制电路(在图14E中1452处总地标识出)、WLAN接口和/或海量数据存储装置。在一些实现方式中,蜂窝电话1450包括麦克风1456、音频输出1458(例如扬声器和/或音频输出插孔)、显示装置1460和/或输入设备1462(例如小键盘、点选设备、声音致动和/或其他输入设备)。蜂窝电话1450中的信号处理和/或控制电路1452和/或其他电路(未示出)可以处理数据、执行编码和/或加密、执行计算、格式化数据和/或执行其他的蜂窝电话功能。
蜂窝电话1450可以与诸如光学和/或磁性存储设备(例如硬盘驱动器HDD和/或DVD)之类的以非易失性方式存储数据的海量数据存储装置1464通信。至少一个HDD可以具有图14A所示的配置,并且/或者至少一个DVD可以具有图14B所示的配置。HDD可以是迷你HDD,它包括一个或多个直径小于大约1.8″的盘片。蜂窝电话1450可以连接到存储器1466,存储器1466例如是RAM、ROM、诸如闪存之类的低等待时间非易失性存储器和/或其他适用的电子数据存储装置。蜂窝电话1450还可以支 持通过WLAN网络接口1468与WLAN相连接。
现在参见图14F,本发明可以实现于机顶盒1480中。本发明可以实现机顶盒1480的信号处理和/或控制电路(在图14F中1484处总地标识出)、WLAN接口和/或海量数据存储装置。机顶盒1480从诸如宽带源之类的源接收信号并输出标准的和/或高清晰度的音频/视频信号,这些信号适用于显示装置1488(例如电视和/或监视器)和/或其他视频和/或音频输出设备。机顶盒1480中的信号处理和/或控制电路1484和/或其他电路(未示出)可以处理数据、执行编码和/或加密、执行计算、格式化数据和/或执行任何其他的机顶盒功能。
机顶盒1480可以与海量数据存储装置1490通信,该存储装置以非易失性方式存储数据。海量数据存储装置1490可以包括光学和/或磁性存储设备,例如硬盘驱动器HDD和/或DVD。至少一个HDD可以具有图14A所示的配置,并且/或者至少一个DVD可以具有图14B所示的配置。HDD可以是迷你HDD,它包括一个或多个直径小于大约1.8″的盘片。机顶盒1480可以连接到存储器1494,存储器1494例如是RAM、ROM、诸如闪存之类的低等待时间非易失存储器和/或其他适用的电子数据存储装置。机顶盒1480还可以支持经由WLAN网络接口1496与WLAN相连接。
现在参考图14G,本发明可以实现于媒体播放器1472中。本发明可以实现媒体播放器1472的信号处理和/或控制电路(在图14G中1471处总地标识出)、WLAN接口和/或海量数据存储装置。在一些实现方式中,媒体播放器1472包括显示装置1476和/或用户输入1477,例如小键盘、触摸板等。在一些实现方式中,媒体播放器1472可以采用图形用户界面(GUI),它通常经由显示装置1476和/或用户输入1477而采用菜单、下拉菜单、图标和/或点击界面。媒体播放器1472还包括音频输出1475,例如扬声器和/或音频输出插孔。媒体播放器1472的信号处理和/或控制电路1471和/或其他电路(未示出)可以处理数据、执行编码和/或加密、执行计算、格式化数据和/或执行任何其他的媒体播放器功能。
媒体播放器1472可以与海量数据存储装置1470通信,该存储装置以非易失性方式存储数据,例如压缩的音频和/或视频内容。在一些实现方式 中,压缩音频文件包括符合MP3格式或其他适用的压缩音频和/或视频格式的文件。海量数据存储装置可以包括光学和/或磁性存储设备,例如硬盘驱动器HDD和/或DVD。至少一个HDD可以具有图14A所示的配置,并且/或者至少一个DVD可以具有图14B所示的配置。HDD可以是迷你HDD,它包括一个或多个直径小于大约1.8″的盘片。媒体播放器1472可以连接到存储器1473,存储器1473例如事RAM、ROM、诸如闪存之类的低等待时间非易失存储器和/或其他适用的电子数据存储装置。媒体播放器1472还可以支持通过WLAN网络接口1474与WLAN相连接。
参考图14H,本发明可以实现于因特网协议语音(VoIP)电话1483中,该电话可以包括天线1439。本发明可以实现VoIP电话1483的信号处理和/或控制电路(在图14H中1482处总地标识出)、无线接口和/或海量数据存储装置。在一些实现方式中,VoIP电话1483部分地包括麦克风1487、音频输出1489(例如扬声器和/或音频输出插孔)、显示监视器1491、输入设备1492(例如小键盘、点选设备、声音致动和/或其他输入设备),以及无线保真(Wi-Fi)通信模块1486。VoIP电话1483中的信号处理和/或控制电路1482和/或其他电路(未示出)可以处理数据、执行编码和/或加密、执行计算、格式化数据和/或执行其他的VoIP电话功能。
VoIP电话1483可以与诸如光学和/或磁性存储设备(例如硬盘驱动器HDD和/或DVD)之类的以非易失性方式存储数据的海量数据存储装置1402通信。至少一个HDD可以具有图14A所示的配置,并且/或者至少一个DVD可以具有图14B所示的配置。HDD可以是迷你HDD,它包括一个或多个直径小于大约1.8″的盘片。VoIP电话1483可以连接到存储器1485,存储器1485可以是RAM、ROM、诸如闪存之类的低等待时间非易失性存储器和/或其他适用的电子数据存储装置。VoIP电话1483被配置为经由Wi-Fi通信模块1486与VoIP网络(未示出)建立通信链路。还可以预期除上述那些实现方式以外的实现方式。
本发明的上述实施例是说明性而非限制性的。各种替代和等同物是可能的。本发明不受所使用的比较器、计数器、脉宽调制器、驱动器或滤波器的类型限制。本发明不受用于建立基准充电和放电电流的放大器的类型 限制。本发明不受振荡器的类型限制。本发明不受本发明可布置于的集成电路类型的限制。本发明也不限于可用于制造本发明的任何特定类型的处理工艺,例如CMOS、双极或BICMOS。考虑到本文,其他增加、删减或修改是显然的并且意图落入所附权利要求书的范围内。