用于多阶段软输入解码的系统和方法_3

文档序号:9332997阅读:来源:国知局
[0043] 根据从变量节点222, 224, 230和234接收的值,解码器124确定是否满足或未满 足用于校验节点206的所给定的条件。是否满足或未满足校验节点206的指示(即,校验 节点的"校正子值"或"校验节点值")被存储在校正子存储器中,其存储校验节点的校正子 值或指示。另外,校验节点的校正子值的可靠性可以基于相关联的变量节点的值和可靠性 进行更新。
[0044] 在用于校验节点200-210的指示或校正子值已经被存储在该校正子存储器中之 后,变量节点220-234的值可以基于校验节点的值和变量节点的可靠性进行更新。奇偶校 验矩阵H126被解码器124再次使用,以确定对于特定变量节点,应该访问哪些校验节点。 如图2B所图示,为了更新变量节点224,上文所给出的校验矩阵H126指示应当引用校验节 点200,206和210(即,第一、第四和第六变量节点)。基于所引用的校验节点的指示,变量 节点224的状态可以被更新。
[0045] 在本公开的一些实施例中,变量节点224的值也可以部分基于变量节点224是否 先前已经被更新、切换、或翻转来确定。校验节点和变量节点可以迭代地被更新,直到满足 所有校验节点(即,实现全零校正子)为止或直到达到最大数目的迭代为止。解码器124 的输出是终止解码过程时硬判决存储器的内容,或是解码后的消息128。
[0046]图3是根据本公开的实施例的使用后期可靠性输入进行解码的说明性多阶段解 码器系统300的框图。系统300可以实施如图2A和图2B所图示的解码过程。当执行信道 114的一次或多次读取时,接收器350接收硬判决数据和可靠性数据。因为硬判决数据由单 次读取产生和可靠性数据由多次读取产生,所以在接收可靠性数据(由[bkbki-bj表示) 之前,接收硬判决数据(由b。表示)。
[0047] 多阶段解码器的第一阶段硬解码器356从接收器350中接收硬判决数据352并且 执行硬解码。第一阶段硬解码器356可以通过确定是否基于是否满足或未满足与变量节点 相关联的校验节点的数目而更新变量节点值来执行硬解码。在示例中,可以基于更新后的 变量节点值的哪些组合最有可能减少未满足的校验节点的数目进行选择性地更新一个或 多个变量节点的值。第一阶段硬解码器356输出更新后的硬判决358,其被存储在硬判决存 储器360中并且任选地传送到第二阶段软解码器362。在一些实施例中,第一阶段硬解码 器356被配置成确定解码成功,并且终止解码。作为示例,当达到全零校正子时,可以确定 解码成功。
[0048] 第二阶段软解码器362从接收器350中接收可靠性数据354并且从第一阶段硬解 码器356中接收更新后的硬判决358。第二阶段软解码器362基于可靠性数据354和硬判 决358执行软解码。由第二阶段软解码器362执行的软解码可以包括:确定是否基于一个 或多个更新规则更新硬判决358、可靠性数据354、或两者。在示例中,更新规则可以基于是 否满足或未满足与变量节点相关联的校验节点,是否变量节点已经基于可靠性数据被先前 更新,或它们的组合。第二阶段软解码器362的输出可以包括更新后的可靠性数据363,其 被存储在可靠性数据存储器364中。而且,如果第二阶段软解码器362更新了硬判决358, 则第二阶段软解码器362可以将更新后的硬判决存储在硬判决存储器360中。
[0049] 如图3所示,使用单个第二阶段软解码器362。然而,一般而言,当接收附加的可靠 性数据时,可以使用任何数目的附加的第二阶段软解码器。特别地,对于k个比特传入的可 靠性数据,可以使用k个阶段的软解码器,每个阶段的软解码器与对应的数目的可靠性数 据比特相关联。在示例中,如本文中所描述的多阶段解码器包括具有不同吞吐量特点的至 少两个阶段解码器。特别地,因为一次处理少量比特(例如,一个比特),所以第一阶段解码 器(例如诸如第一阶段硬解码器356)可以与高吞吐量相关联。因为第二阶段解码器可以 被配置成比第一阶段解码器一次处理更多个比特,所以第二阶段解码器(例如诸如第二阶 段软解码器362)可以与比第一阶段解码器低的吞吐量相关联。备选地,第一阶段解码器和 第二阶段解码器可能具有相似的吞吐量,即使第二阶段解码器被配置成对比第一阶段解码 器更多的输入进行操作。在这种情况下,即使第二阶段解码器比第一阶段解码器处理更多 的输入,但是第一阶段解码器和第二阶段解码器的解码速度相似。这意味着,第一阶段解码 器和第二阶段解码器处理相同量的数据所花费的时间量相似。而且,多阶段解码器可以包 括第三阶段解码器,该第三阶段解码器被配置成对多个比特(例如,超过两个比特)输入进 行操作,并且与比第一或第二阶段解码器低的吞吐量值相关联。在示例中,第三阶段解码器 的吞吐量值可以是比第一阶段解码器、第二阶段解码器、或两者的吞吐量低4到400倍。
[0050] 在示例中,多阶段解码器包括第一数目的高吞吐量硬输入解码器、对两个比特输 入进行操作的第二数目的高吞吐量解码器、以及对两个以上比特的输入进行操作的第三数 目的低吞吐量解码器。因为只有未能在第一硬输入阶段成功解码的码字通过软阶段解码器 处理,所以第二数目和第三数目可以小于第一数目。在示例中,第一数目的高吞吐量硬输入 解码器可以被替换成若干被配置成对硬输入和两个比特输入进行操作的高吞吐量解码器。 图4中的流程图是能够对硬输入或多个输入进行操作的混合码字途径的示例。
[0051] 在一些实施例中,使用第二阶段软解码器362和任何附加的软解码器是任选的。 例如,由第一阶段硬解码器356执行的硬解码可能会成功,因此不需要附加的可靠性数据。 在这种情况下,控制器可以被指令成对于当前变量节点,不执行信道114的任何附加的读 取,并且可以不用第二阶段软解码器362。在另一示例中,由第n阶段软解码器所执行的软 解码可能会成功,其中,n可以为1到k之间的任意整数。在这种情况下,对于当前变量节 点,可以不执行信道114的任何附加的读取,并且可以不用其余阶段的软解码器(即,n+1到 k) 〇
[0052] 在一些实施例中,与从NAND闪存单元读取数据有关,使用系统300的多阶段解码 器。在示例中,每次读取产生一个比特的信息。特别地,第一次读取产生硬判决,或变量节 点值,或b。。第二次读取产生第一比特可靠性数据、或h。控制器可以与NAND闪存进行接 口以读取存储在存储器单元中的数据页面。为了得到多个比特,控制器多次发出读取命令。
[0053] 在示例中,控制器可以解析指令队列,其可以包括读取指令(诸如"读取页面0"、 "读取页面1"、"读取页面2"等)。硬解码器可以确定当从页面0读取的数据的硬解码失败 时,就没有必要存储结果,并且控制器可以继续尝试解码从页面1中读取的数据。在这种情 况下,如果需要后期执行解码从页面〇中读取的数据,则控制器将必须重新启动过程并且 要求再次执行第一次读取操作。这可能是浪费的,因为执行读取操作所花费的时间量会显 著地超过执行解码所花费的时间量,从而控制器的资源可能通过在执行读取操作的同时, 迫使控制器等待而被浪费。
[0054] 在一些实施例中,NAND闪存具有可以独立地与控制器通信的多个信道。在这种情 况下,控制器可以发起读取页面1(信道中的一个之上)的读取指令,而同时请求第二读取 操作在页面〇(信道中的另一个之上)上执行。以这种方式,控制器不再等待,同时执行第 二读取操作,并且系统资源没有被浪费。
[0055] 在一些实施例中,本文中所描述的系统包括存储硬判决(由存储器的单次读取产 生)和可靠性数据(由存储器的多次读取产生)的缓存。数据被存储在缓存中,而非丢弃从 一次或多次读取操作产生的数据。特别地,在执行一个或多个读取操作之后,硬判决数据和 /或可靠性数据被存储在缓存中,并且可以随后被取得,以使那些一个或多个读取操作不需 要重复。在这种情况下,如果确定了附加的可靠性数据是理想的,则可以执行附加的读取操 作,而无须重复原来的一个或多个读取操作。在一些实施例中,NAND闪存设备本身包括存 储一个或多个读取结果的缓存。在这种情况下,从读取操作中产生的数据已经存储在NAND 设备中,并且控制器只需要在需要时获取该数据。
[0056] 图4是根据本公开的实施例的使用混合码字途径进行解码的说明性过程400的流 程图。过程400可以使用如图3所示的系统300来实施。特别地,系统300可以被配置成 接收一组码字,其中的一些码字是硬输入码字,而且其中的一些是多比特输入码字。硬输入 码字是单个比特输入码字,并且可以与多比特输入码字混合。当接收到码字时,系统300可 以被配置成采用在本文中被称为"即时地(on-the-fly) "途径的途径在硬输入码字和多比 特输入码字之间进行区分。
[0057] 在402,接收第一输入。在示例中,第一输入是一个比特,并且可以是硬输入码字或 多比特输入码字的一部分。在404,系统300确定在402接收的第一输入是硬输入码字还是 多比特输入码字的一部分。在示例中,在402接收的第一输入用指示第一输入是硬输入码 字还是多比特输入码字的一部分的信息来标记(tagged)。该标记还可以提供多比特输入码 字中的比特的数目、或多比特输入码字的哪个部分与第一输入相对应的指示。
[0058] 在406,如果系统确定第一输入是硬输入码字,则在408解码第一输入。否则,如果 第一输入是多比特输入码字的一部分,则系统在410确定在解码之前,是否等待接收到完 整的码字为止。如果这样,则系统等待直到在416接收到完整的码字为止并且在418执行 完整的
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1