本公开涉及纠错码(ecc)解码中的错误恢复,尤其涉及自适应地生成用于错误恢复的对数似然比(llr)值。
背景技术:
1、现代计算系统的发展在一定程度上是基于非易失性存储器(例如,nand或nor)存储设备的存储系统的出现推动的,例如固态驱动器(ssd)和usb闪存驱动器,与传统硬盘驱动器或软盘相比,其速度和延迟性能更高。这些存储系统的一个问题是数据损坏,因此通常使用纠错码(ecc)对数据进行编码。ecc将冗余数据或奇偶校验数据添加到用户数据中,以便即使在引入了许多错误(取决于所使用的代码的能力)时,读取系统也可以恢复用户数据。
2、从存储设备检索的编码数据需要被解码。ecc解码包括硬判决解码和软判决解码。软判决解码比硬判决解码更强大,可以恢复硬判决解码无法恢复的错误。软判决解码依赖于软判决信息,软判决信息用于指示位值的可靠性,并且通常采用对数似然比(llr)的形式。一些非易失性存储设备可以提供软判决信息,但许多非易失性存储设备不能。此外,存储控制器通常用来控制错误恢复流程,并且应当能够确定哪些llr值可能最适合软解码操作。因此,在本领域中需要存储控制器基于错误恢复过程的配置细节来生成llr。
技术实现思路
1、本公开提供了一种用于为软判决解码生成对数似然比(llr)的系统和方法。非易失性存储控制器的各种实施例可以实现复杂的错误恢复流程,该错误恢复流程需要多次读取相同的用户数据并且从多个读取结果生成软判决信息。在一些实施例中,错误恢复流程可以包括扩展重读(re-read)操作或多次读(multi-read)操作。在多次读操作中,可以选择一组解码因子并且可以从具有不同参考电压(vref)设置的非易失性存储设备(例如,nand设备)中执行多次读取以检索附加数据(或与原始用户数据相关联的信息)。对数似然比(llr)值可以由llr引擎根据一组解码因子来生成。聚合读取结果可以从多个读取结果中获得,并将其用作从llr引擎生成的llr值中检索一个llr值的索引。被检索出来的llr值可以在软判决解码器中用来恢复原始失败的码字。
2、在一个示例性实施例中,提供了一种方法,该方法可以包括为多次读操作选择一组解码因子以多次读取非易失性存储设备。所述一组解码因子可以包括但不局限于读取的总次数、用于聚合多次读取结果的聚合模式以及读取结果是否包括软数据。所述方法还可以包括:根据所述一组解码因子向所述非易失性存储设备发出读取用户数据的命令,使用映射引擎生成多个对数似然比(llr)值,所述映射引擎基于所述一组解码因子从一组预选的llr幅值中生成所述多个llr值,根据所述聚合模式获得聚合读取结果,并且使用聚合读取结果作为索引从所述多个llr值中获取llr值。
3、在另一个示例性实施例中,提供了一种存储系统控制器。所述存储系统控制器可以包括处理器,所述处理器被配置为:为多次读操作选择一组解码因子以多次读取非易失性存储设备;以及根据所述一组解码因子向所述非易失性存储设备发出读取用户数据的命令。一组解码因子可以包括但不局限于读取的总次数、用于聚合多次读取结果的聚合模式以及读取结果是否包括软数据。所述存储系统控制器还可以包括映射引擎和软判决解码器。所述映射引擎可以被配置为基于所述一组解码因子从一组预选的llr幅值中生成多个对数似然比(llr)值。所述软判决解码器可以被配置为使用聚合读取结果作为索引从所述多个llr值获取一个llr值,并且使用获取的llr值执行软判决解码。所述聚合读取结果可以根据聚合模式获得。
4、在又一个示例性实施例中,提供了一种方法,该方法包括预选一组对数似然比(llr)幅值,通过为多个多次读操作中的每一个选择相应的一组解码因子来启动多个多次读操作并发出对应于所述多个多次读操作的读取指令。每一组相应的解码因子可以包括但不局限于读取的总次数、用于聚合多次读取结果的聚合模式以及读取结果是否包括软数据。所述方法还可以包括使用映射引擎和软判决解码器以流水线方式处理所述多个多次读操作。在第一级流水线中,所述映射引擎可以基于与已经完成数据读取的多个多次读操作中的一个相对应的一组解码因子,从所述一组llr幅值中生成llr查找表(lut)。并且在第二级流水线中,所述软判决解码器可以使用以聚合读取结果作为索引从所述llr查找表获取的llr值来执行软判决解码。所述聚合读取结果可以根据与已经完成数据读取的多个多次读操作中的一个相对应的一组解码因子中的聚合模式来获得。
1.一种方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述读取结果包括软数据,并且所述一组解码因子还包括所述软数据是使用一(1)还是使用零(0)来指示可靠度。
3.根据权利要求1所述的方法,其特征在于,所述聚合模式是直接模式或间接模式,在所述直接模式中,所述多个结果被单独地放置在所述聚合读取结果中,每个读取结果都占据一个位的位置;在所述间接模式中,第一读取结果被放置在第一位位置,并且剩余的读取结果被累积成总和放置在所述聚合读取结果后续位位置中。
4.根据权利要求1所述的方法,其特征在于,由所述映射引擎生成的所述多个llr值是llr查找表的条目,所述llr查找表的每个条目通过从所述条目的索引计算出的加权索引值映射到所述一组预选的llr幅值中的一个,所述加权索引值由一组带权重的索引条目计算生成,所述带权重的索引条目由所述解码因子以及一张映射表确定的映射关系决定生成。
5.根据权利要求4所述的方法,其特征在于,所述映射表定义了要添加到所述llr查找表的每个条目中的符号位。
6.根据权利要求1所述的方法,其特征在于,还包括使用具有从所述多个llr值获取llr值的软判决解码器来执行软判决解码。
7.根据权利要求6所述的方法,其特征在于,所述映射引擎和所述软判决解码器是用于处理多个多次读取操作数据的硬件流水线的两级流水线。
8.一种存储系统控制器,其特征在于,包括:
9.根据权利要求8所述的存储系统控制器,其特征在于,所述读取结果包括软数据,并且所述一组解码因子还包括所述软数据是使用一(1)或还是使用零(0)来指示可靠度。
10.根据权利要求8所述的存储系统控制器,其特征在于,所述聚合模式是直接模式或者间接模式,在所述直接模式中,所述多个结果被单独地放置在所述聚合读取结果中,每个读取结果都占据一个位的位置;在所述间接模式中,第一读取结果被放置在第一位位置,并且剩余的读取结果被累积成总和放置在所述聚合读取结果的后续位位置中。
11.根据权利要求8所述的存储系统控制器,其特征在于,所述一组预选的llr幅值被放入寄存器组的多个寄存器中,并且所述寄存器组被耦合到所述映射引擎以作为所述映射引擎的输入。
12.根据权利要求8所述的存储系统控制器,其特征在于,由所述映射引擎生成的所述多个llr值是llr查找表的条目,所述llr查找表的每个条目通过从所述条目的索引计算出的加权索引值映射到所述一组预选的llr幅值中的一个,所述加权索引值由一组带权重的索引条目计算生成,所述带权重的索引条目由所述解码因子以及一张映射表确定的映射关系决定生成。
13.根据权利要求12所述的存储系统控制器,其特征在于,所述映射表定义了要添加到所述llr查找表的每个条目中的符号位。
14.根据权利要求8所述的存储系统控制器,其特征在于,所述映射引擎和所述软判决解码器是用于处理多个多次读操作数据的硬件流水线的两级流水线。
15.一种方法,其特征在于,包括:
16.根据权利要求15所述的方法,其特征在于,所述多个多次读操作中的至少一个的读取结果包括软数据,并且与所述多个多次读操作中的至少一个的相对应的一组解码因子还包括所述软数据是使用一(1)还是使用零(0)来指示可靠度。
17.根据权利要求15所述的方法,其特征在于,每个相应的一组解码因子中的所述聚合模式是直接模式或间接模式;在所述直接模式中,所述多个结果被单独地放置在所述聚合的读取结果中,每个读取结果都占据一个位的位置;在所述间接模式中,第一读取结果被放置在第一位位置,并且剩余的读取结果被累积成总和放置在所述聚合读取结果的后续位位置中。
18.根据权利要求15所述的方法,其特征在于,所述一组llr幅值被放入寄存器组的多个寄存器中,并且所述寄存器组被耦合到所述映射引擎作为所述映射引擎的输入。
19.根据权利要求15所述的方法,其特征在于,所述llr查找表的每个条目通过从所述条目的索引计算出的加权索引值被映射到所述一组预选的llr幅值中的一个,用于计算所述加权索引值的权重由所述一组解码因子确定,所述映射关系由映射表决定,并且所述映射表定义了要添加到所述llr查找表的每个条目中的符号位。
20.一种方法,其特征在于,包括: