专利名称:用于多个阶段错误校正的方法和设备的制作方法
技术领域:
本发明一般涉及一种编码和解码的方案。尤其涉及一种通过编码 和解码较短的子代码而提供用于代码错误校正的方法和设备。
背景技术:
在现代信息时代中,诸如1和0的二进制数值被用于表示和传送
诸如存储、视频、音频、统计信息等的多种信息。令人遗憾的是,在 二进制数据的存储、传输、和/或处理过程中,错误可能无意地被引入 了 (例如,"r,位可能被变为"o"位,反之亦然。
在本领域中已知的用于克服存在的这类错误的多种技术使用了 一种错误校正代码方案来确保所存储信息的可靠性。存储方法的物理 意义在于展示了一种可以用每个存储单元核心的信息位的形式进行 表达的固定能力。这种固定的能力是在每个存储单元核心中信噪比的 直接结果,这样就定义了一个理论的上限(这就是众所周知的"香农 极限,,)。
在许多实例中,对于一个给定的代码速率,为了接近理论校正能 力,这种错误校正代码方案要求使用十分长的代码。
然而,增加代码长度会导致编码器和解码器电路的复杂性和面积 增加。这个结果就是在某些方面上,实现一个包括这样的错误校正代 码方案的集成电路并不现实或者并不有效。可替代地,还不存在充足 的硅密度以用于支持标准解码技术。
"错误校正,,的定义(也就是错误检测以及校正)在这里被用于数 据存储。根据前向错误校正代码,编码和解码或在软件中或使用硬件 来实现。
一旦发现了香农极限[i],就会这样的需要,即提供能接近达到香农信息法则的性能极限的代码。众所周知[2-[5,为了达到这些极 限, 一种方案是必须增加代码长度。1993年,Berron首次发表了使 用迭代解码的近容量接近技术。然而,仅仅考虑了长代码。随后,71 -ll]通过引入低密度奇偶校验(LDPC )代码,更加接近这些容量极 限的新结构成功地被提出了,又是仅仅对于典型的约107位的长代码。
基于LDPC迭代解码器的特定方案在[121 - [14j中进行了描述, 其中重点被放在了减少计算单元的执行复杂性、迭代次数、需要的存 储大小等等。
在一个复杂的、受限制的环境中为了实现这些长代码以及从它们 的性能中获益,于是就需要提供用于减少长代码编码器和解码器电路 复杂性的方法,这样就可以使用实用的、较短的方案。
一种现有技术由Dror等在的美国专利申请No.20050160350中所
教导,其公开了一种的删截方法,用于通过减少奇偶校验位开销以减 少编码器和解码器电路的复杂性,
Dror的专利公开了一种为了单个位前向错误校正的高速数据编 码器/解码器。数据被布置到在一个矩形阵列中进行保护,这样单个位 的错误的位置可以根据行和列的位置而进行确定。结果是,减小了被 提供用于将错误故障转换为错误位置的查找表格的尺寸。
然而,在Dror的专利中所公开的两个计算阶段的每一个,单独 地并不是一个错误校正方案,由于它不能提供用于校正在第一阶段中 的单个错误。因此,在不依赖第二阶段中所得到的计算结果情况下, 第 一 阶段甚至不能校正在每个子代码中的单个错误。
发明内容
根据本发明,它提供了一种解码代码表示的方法,该方法包括以 下步骤(a)根据代码字表示生成多个子字,以便每个子字的位都 是所述代码字表示的位的合适子集;(b )根据每个子字的位单独地 解码每个字,以生成相应的已解码子字;以及(c)如果多个子字的 其中一个的解码失败,就修正相应于所述解码失败子字的解码子字,由此产生已修正的解码子字,这种修改至少部分地根据至少一个成功 地解码的子字的对应解码子字。
根据本发明,它提供了一种用于解码M位字的设备,该设备包 括(a)用于解码N<M位字的解码器;以及(b)用于分别地将解 码器应用到从M位字中所选出的每个N位不同子集的机制,解码器 的每个应用单独地依赖于这个应用被用到的N位,每个应用生成相应 解码数据,以便至少部分地根据应用的相应解码数据生成M位字的 最终解码数据,其中如果应用中的一个失败,那么该机制至少部分地 根据至少一个成功应用的相应解码数据,实现已失败应用的相应解码 数据的修正。
根据本发明,它提供了一种用于解码M位字的设备,该设备包 括(a)多个用于各自解码N〈M位字的解码器;以及(b)用于分 别地将所述多个解码器的每一个应用到从M位字中选出的每个N位 的不同子集的机制,所述多个解码器中的每一个解码器的每个应用单 独地依赖于每个应用被用到的N位,每个应用生成相应解码数据,以 便至少部分地根据各个应用的相应解码数据生成M位字的最终解码 数据,其中如果解码器中的一个失败,那么该机制至少部分地根据已 成功的至少一个解码器的相应解码数据,实现已失败解码器的相应解 码数据的修正。
根据本发明,它提供了 一种提供用于数据位错误校正的方案的方 法,该方法包括以下步骤(a)根据第一编码方案编码数据位以生 成第一奇偶校验位组;(b)根据第二编码方案编码数据位以生成第 二奇偶校验位组;(c)将第二奇偶校验位组转换为一个奇偶校验位 的聚缩组,其中这个转换是多对一的;以及(d)通过将第一奇偶校 验位组与聚缩奇偶校验位组相组合以生成用于所述数据位的奇偶校 验位的最终组。
根据本发明,它提供了一种提供用于数据位错误校正的方案的方 法,该方法包括以下步骤(a)根据数据位生成多个位的子组,这 样每个数据位在多个子组中至少出现一次;(b)根据相应的第一编码方案对多个子组的每个子组进行编码,以对于每个子组生成相应
的、至少一个的第一奇偶校验位;(c)根据相应的第二编码方案每 个子组进行编码,以对于每个子组生成相应的、至少一个的第二奇偶 校验位;(d)将所有多个子组中的所有所述至少一个第二奇偶校验 位转换成联合的聚缩奇偶校验位,其中这个转换是多对一的;以及(e) 通过将所有所述多个子组中的所有所述至少一个第一奇偶校验位与 所述联合聚缩奇偶校验位相组合,以生成用于数据位的奇偶校验位的 最终组。
根据本发明,它提供了 一种提供用于数据位错误校正的方案的方 法,该方法包括以下步骤(a)根据数据位生成多个位的子组,这 样每个数据位在多个子组中至少出现一次;(b)使用相应的编码方 案对多个子组的每个子組进行编码,以对于每个子组生成相应的至少 一个奇偶校验位;(c)对于每个子组,从每个子组的位和每个子组 的相应的至少一个奇偶校验位中选出相应的所选子集;(d)将所有 多个子组中的所选子集转换成联合聚缩所选位,其中这个转换是多对 一的;(e)通过将每个子组的位与每个子组的相应的至少一个奇偶 校验位相组合,以对于每个子组生成相应的被缩短的代码字,然后将 每个子组中的相应的所选子集去除;以及(f)通过将所有所述多个子 組的相应的被缩短的代码字与联合聚缩所选位相组合,以生成用于数 据位的代码字。
根据本发明,它提供了 一种提供用于数据位错误校正的方案的方 法,该方法包括以下步骤(a)根据数据位生成多个位的子组,这 样每个数据位在子組中至少出现一次;(b)使用相应的编码方案对 多个子组的每个子組进行编码,以对于每个子组生成相应的代码字; (c)对于每个子组,从相应代码字的位中选择相应的所选子集;(d)
将所有相应代码字中的相应所选子集转换成联合聚缩所选位,其中这
个转换是多对一的;(e)通过去除相应于每个相应代码字的所选子
集的位,以生成用于每个相应代码字的相应被缩短的代码字;以及(f) 通过将所有多个子组中的相应被缩短的代码字与联合聚缩所选位相组合以生成用于所述数据位的代码字。
根据本发明,它提供了一种解码代码字表示的方法,所述表示包
括M个数据位和P个奇偶校验位,该方法包括以下步骤(a)将P 个奇偶校验位划分成第一奇偶校验位组和第二奇偶校验位组;(b ) 仅仅使用第一奇偶校验位组对M个数据位进行解码以提供校正的数 据位;以及(c)如果仅仅使用第一奇偶校验位组的解码失败,那么 使用第一奇偶校验位组和第二奇偶校验位组,对M个数据位进行解 码以提供校正的数据位。
根据本发明,它提供了一种解码包括M个数据位和P个奇偶校 验位的代码字表示的方法,该方法包括以下步骤(a)将M个数据 位划分成KM个子集,其中M数据位的每个在K个子集中至少出现 一次;(b)将P个奇偶校验位划分成第一奇偶校验位组和第二奇偶 校验位组;(c)将第一奇偶校验位组划分成K个子集,第一奇偶校 验位组的每个子集对应于M个数据位的各自子集;(d)根据第一奇 偶校验位组的相应子集对M数据位的每个子集进行解码,以生成M 数据位的每个子集的解码数据;(e )如果M个数据位的K子集的其 中一个解码失败,那么至少部分地根据第二奇偶校验位组对所述其中 一个子集进行解码,以生成所述其中一个子集的解码数据;以及(f) 将M个数据位的所有K个子集的解码数据相组合,以生成用于M数 据位的总的解码数据。
根据本发明,它提供一种解码解码来自具有N〉M个位的代码字 表示的M个数据位的方法该方法包括以下步骤(a)从N个位中去 除至多N-M位的所选子集,因此产生了剩余位的集合;(b)将剩余 位划分成K>1个剩余位的子集,其中每个剩余位是所述K个子集中 的至少一个的成员;(c)仅仅根据每个子集的位对K个子集的每个 进行解码,以生成每个子集的解码数据;(d)如果K个子集的其中
一个的解码失败,那么至少部分地根据被去除的所选子集对一个子集 进行解码以生成所述其中一个子集的解码数据;以及(e)将所有K 个子集的解码数据相组合,以生成用于所述M个数据位的总解码数据。
本发明的第一方面是一种解码代码字表示的方法。在本发明的这 一方面以及本发明其它的、相似的方面,被解码的代码字表示,而不 是代码字被写入存储器,因为写入、然后读取代码字会给代码字引入 错误。多个子字根据代码字的表示被生成,这样每个子字就是代码字 表示的位的合适子集。每个子字根据它自己的位独立地被解码以生成 一个相应的解码子字。如果子字中的一个的解码失败,那么对应于其 解码已失败的子字的解码子字就会被修正,因此会产生 一个已修正的 解码子字。这个修正至少部分地是根据这样的解码子字进行的,即这 些解码子字与一个或者多个的成功地被解码的子字相对应。
如下所述,术语"解码子字"的范围同时包括通过成功地解码一个 子字所得到的数值和解码子字的尝试失败的逻辑指示。需要注意的 是,通过成功地解码子字所获得的数值是原始代码字自己的一部分, 而不仅仅是其中的一个表示。换句话说, 一个"被成功地解码的子字" 是一个子代码字。"修正"一个解码子字意味着将解码子字从一个数值 改变为另一个数值,或者从一个解码失败的逻辑指示改变为一个数 值,或者从一个数值改变为一个失败的逻辑指示。
例如,在下面的范例情形1中,两个子字《^和《^是根据代
码字的表示而被生成的。每一个子字使用[ll, 7, 3的解码器而分别 地被解码。如果^^的解码失败,而^,"的解码成功,那么解码^^ 的尝试失败的逻辑指示就会通过以由^所解码的G ,代逻辑指示而 进行修正。这种修正是根据对应于成功地被解码的^,的子代码字
& : ^使用[15, 7, 5中的编码器而进行编码,以再生尸2,户2与
,进行异或运算以获得《,^^和《进行级联以获得A。
优选地,如果子字中的一个解码失败,那么来自被修正的解码子 字的数据与来自对应于成功被解码的子字的所有解码子字的数据进 行组合。例如,在下面的范例情形l中,如果解码"失败,而解码 。f"成功,那么从《所解码出的G的最前七位就与^"的最前七位相 级联以恢复首标(header)。最优选地,来自已修正的解码子字的数据与来自对应于成功地被 解码的子字的所有解码子字的数据的组合通过包含组装来自已修正
字的数据:步骤而^现。"组i"来自两个或更多不同Z源的数据在这
里被定义为将来自所有来源的位可能与被变更次序的位的顺序放在 一起,以及可能与至少被重复一次的一个或多个位放在一起,并放入 一个寄存器或存储位置。典型地,然而,如同在下面的范例情形1中, 数据通过级联来自各种不同数据来源的位进行"组装",无需考虑更改 多个位的顺序以及不考虑重复位。
优选地,多个子字是不相交的。例如,在下面范例情形1中, 和^f^是不相交的。
优选地,多个子字都包含相同数目的位。例如,在下面范例情形 1中,和;Aw都包含11位。
本发明的第二个方面是一种用于解码M位字的设备。该设备包 括用于解码N<M位的字的解码器和将解码器单独地应用到从M位字 所选出的N位的每个不同子集的机制。解码器的每个应用单独地依赖 于其应用被应用到的N位。解码器的每个应用生成对应的解码数据, 以便至少部分地根据解码器应用所产生的解码数据来生成最终的解 码数据。如果解码的多个应用中的一个失败了,那么至少部分地根据 解码器的其它应用所产生的解码数据来修正这些应用的解码数据。
例如,在下面范例情形1中,M=26, N=ll以及解码器是[ll, 7,
3的解码器。这个11位的子集是Ci和Q 。11, 7, W的解码器 单独地被应用到这两个子集。最终的解码数据是已解码的l4位首标 (header )。如果解码Ci失败,但成功解码^ ,那么解码"的 尝试失败的逻辑指示就通过用从^所解码的Ci替代该逻辑指示而
进行修正。这种修正根据对应于成功地被解码的& '的解码子字 : 采用[15, 7, s的编码器进行编码以再生&, &与#进
行异或运算以得到S, ^自和S进行级联以得到A。优选地,这些子集是不相交的。例如,在下面的范例情形l中, ^和^W是不相交的。
本发明的第三个方面是一种用于解码M位字的设备。该设备包 括多个解码器,每个解码器解码N<M位的字。该设备还包括一种机 制,用于将每个解码器单独地应用到从M位字所选出的N位的每个 不同子集。解码器的每个应用单独地依赖于其正被应用到的N位。解 码器的每个应用生成相应的解码数据,以便至少部分地根据通过应用 多个解码器所产生的解码数据来生成最终的M位字的解码数据。如 果多个解码器中的一个失败了,那么至少部分地根据其它解码器所产
生的解码数据来修改那些对应的解码数据。
例如,在下面范例情形1中,M-26,N-11以及解码器是文献[ll,
7, 3j的解码器。这个ll位的子集是q 和C2 。又献[ll, 7, 3的 每个解码器被单独地应用到这两个子集中的一个。最终的解码数据是
已解码的14位首标。如果解码61 失败,但成功解码^ ',那么试 图解码《一 的逻辑指示就通过用从^所解码的Ci替代该逻辑指示
而进行修正。这种修正根据对应于所成功地解码的^^'的解码子字 Cf^ : 釆用文献[15, 7, 5的编码器进行编码以再生&, ^与
,进行异或运算以得到耳,《^和巧进行级联以得到^。
优选地,这些子集是不相交的。例如,下面范例情形1中,《"^ 和^f"是不相交的。
本发明的第四个方面是一种提供了用于数据位错误校正方案的 方法。该数据位根据第一编码方案而被编码以生成第一奇偶校验位 组。这些数据位也根据第二编码方案而被编码以生成第二奇偶校验位 组。第二奇偶校验位組通过多对一的转换方式转换成为一个聚缩的奇 偶校验位组。通过将笫一组和第二奇偶校验位组进行組合以生成一个 最终奇偶校验位组。
例如,在下面范例情形l中,首标的数据位是14位。第一编码
方案是产生"和Q 的[ll, 7, 3I的方案。第一奇偶校验位组是每一个4 和h 的最后四位。第二编码方案是产生第二奇偶校验位组
尸/和A的[15, 7, 5]方案。第二奇偶校验位组通过多对一的转换异或 运算(8位进,4位出)而被转换成聚缩组尸。最终奇偶校验位组通过
r由" ^t由rt
将^ 的最后四位和^ 的最后四位与户进行组合而被生成,以提
供在图8以附图标记246和254所表示的代码字的奇偶校验位。
优选地,通过组装第一奇偶校验位组的至少一部分与聚缩奇偶校 验位组,第一奇偶校验位组与聚缩奇偶校验位组进行组合。例如,在
下面范例情形1中,"、Gs和一起被写在闪存设备的一个公
用位置,这样"的最后四位、^ 的最后四位和p就被一起存储 在公用位置上。
优选地,转换步骤包括对第二奇偶校验位组的多个子组进行异或 运算。例如,在下面范例情形i中,尸/和户2进行异或运算。
本发明的第五个方面是一种提供用于数据位错误校正方案的方 法。位的多个子组根据数据位而被生成,这样每个数据位在各子组中 至少出现一次。每个子组根据相应的第一编码方案进行编码以生成一 个或者多个相应的第一奇偶校验位。每一个子组根据相应的第二编码 方案进行编码以生成一个或者多个相应的第二奇偶校验位。所有的第 二奇偶校验位通过多对一操作被转换为联合聚缩奇偶校验位。最终奇 偶校验位组通过将所有第一奇偶校验位与联合聚缩奇偶校验位进行 组合而被生成。
例如,在下面范例情形l中,数据位是首标的14位。两个子组 是首标的最前7位和最后7位。每个数据位在其中 一个子组中恰好只 出现一次,而在另一个子组中根本不出现。第一编码方案全是产生
C,和"的[ll, 7, 3的方案,其生成用于第一子组的四个奇偶校
验位("的最后四位)和用于第二子组的四个奇偶校验位的
最后四位)。第二编码方案都是[15, 7, 5的方案,其生成用于第一 子组的四个奇偶校验位A和用于第二子组的四个奇偶校验位P2。尸7 和/>2通过多对一的"异或,,操作(8位进,4位出)被转换为聚缩组尸。通过将"、G2与P写入闪存设备中、并将"的最后四位和C2 的最后四位与尸进行组合生成最终奇偶校验位组。
优选地,通过组装所有第一奇偶校验位组与聚缩奇偶校验位组, 第一奇偶校验位组与聚缩奇偶校验位组进行组合。例如,在下面范例
情形1中,^ 、 C2 和户一起被写在闪存设备中,这样e的最
后四位、"的最后四位和尸就被一起存储在公用位置上。
优选地,每个数据位在多个子组中仅仅出现一次。例如,在下面
范例情形1中,每个首标的最前7位在第一子组中出现一次,而在第 二子组中根本不出现,以及每个首标的最后7位在第二子组中只出现 一次,而在第一子组中根本不出现。可替代地,至少一个数据位在多 个子组中至少出现两次。例如,在下面范例情形2中,对于编码4096 个信息位,在586个代码字中就有58叙7,1()2个数据位,这样其中一 个信息位可以被复制6次。
优选地,所有的子組具有相同的大小。例如,在下面范例情形l 中,两个子组都具有7位。
优选地,对于子组中的至少一个,通过^f吏用一个通用的编码方案 来获得相应的第一和第二编码方案,这样(多个)第一编码方案根据 第一顺序来编码(多个)子组位,并且(多个)第二编码方案根据第 二顺序来编码(多个)子组位。例如,在下面范例情形1的一个可选 例中,11, 7, 31的编码可以被作为第一编码方案独立地应用到首标 的最前和最后7位上;于是首标最前7位的顺序可以被改变,以及首 标最后7位的顺序可以被改变;然后[ll, 7, 3的编码可以作为第二 编码方案被独立地应用到已改变次序的首标的最前和最后7位上。通 过将异或运算由编码已改变序列的最前7首标位所产生的代码字的最 后四位与由编码已改变序列的最后7首标位所产生的代码字的最后四 位,产生聚缩奇偶校验位。正如在下面范例情形1中,14个数据位和 12个奇偶校验位将被存储。
优选地,根据通用的第一编码方案对所有的子组进行编码。例如, 在下面范例情形1中,这个通用的第一编码方案是[ll, 7, 3的编码方案。
优选地,根据通用的第二编码方案对所有的子组进行编码。例如,
在下面范例情形1中,这个通用的第二编码方案是[15, 7, 5的编码 方案。
优选地,将第二奇偶校验位转换为联合聚缩奇偶校验位,这个转 换包括将对应于子组中的一个的第二奇偶校验位的至少一个和对应 于子组中另一个的笫二奇偶校验位的至少一个进行异或运算。例如,
在下面范例情形1中,当尸/与尸2进行异或运算时,A和A是"第二
奇偶校验位,,的两个组。
本发明的第六个方面是一种提供用于数据位错误校正方案的方 法。多个子组的位根据数据位而被生成,这样每个数据位在多个子组 中至少出现一次。每个子组根据相应的编码方案进行编码以生成一个 或者多个相应的第一奇偶校验位。对于每个子组,相应的所选子集是 从子组的位以及(多个)相应的奇偶校验位中被选择出来的。所有的 所选子集通过多对一操作被转换为联合聚缩所选位。对于每个子集而 言,相应的被缩短代码字是通过将每个子集的位与(多个)相应奇偶 校验位进行組合,然后去除相应所选子集的位而被生成的。最后,用 于数据位的代码字是通过将所有的被缩短代码字与联合聚缩所选位 进行组合而被生成的。
例如,在下面范例情形l中,数据位是首标的14位。两个子组 是首标的最前7位和最后7位。每个数据位在一个子组中恰好只出现 一次,而在另一个子组中根本不出现。每个子组使用[l5, 7, 5的编 码器进行编码以生成代码字C,和G,其中每个包括8个奇偶校验位。 "所选,,的子集尸,和尸2通过多对一的异或操作(8位进,4位出)从 C7和G中的位转换为P的联合聚缩所选位。通过将子组的位与由[15, 7, 5]的解码器所产生的奇偶校验位进行组合,以产生全代码字G和 G,然后从C,中去除所选子集尸,和从G中移去所选子集iV生成缩
短的代码字^ 和"。通过将^ 、 L2 与尸写入闪存设备中,
并将Gf一、 Cf^与尸进行组合以生成最终的代码字。优选地,通过组装子组位与相应的奇偶校验位,将每个子组位与 相应的奇偶校验位进行组合。例如,在下面范例情形1中,代码字
c7是通过将第一子组与由编码第一子组所产生的奇偶校验位相级联
而被产生的,代码字G是通过将第二子组与由編码第二子组所产生 的奇偶校验位相级联而被产生的。
优选地,通过组装所有被缩短的代码字与联合所选聚缩位,被缩 短的代码字与联合所选聚缩位进行组合。例如,在下面范例情形1中,
"、" 与P—起被存储到闪存设备中的一个公用位置。
优选地,每个数据位在多个子组中仅仅出现一次。例如,在下面
范例情形1中,每个首标的最前7位在第一子组中出现一次,而在第 二子组中根本不出现,并且每个首标最后7位在第二子组中只出现一 次,而在第一子組中根本不出现。可替代地,至少一个数据位在多个 子组中至少出现两次。例如,在下面范例情形2中,对于编码40% 信息位,在586个代码字中就有58&£7,102个数据位,这样其中一个 信息位可以被复制6次。
优选地,所有的子组具有相同的大小。例如,在下面范例情形l 中,两个子组每一个都具有7位。
优选地,根据一个通用的第一编码方案对所有的子组进行编码。 例如,在下面范例情形1中,这个通用的第一编码方案是[l5, 7, 5
的编码方案。
优选地,将所选的子集转换为联合聚缩所选位,这个转换包括将 一个所选子集位与另一个所选子集的位进行异或运算。例如,在下面 范例情形1中,当尸,与尸2进行异或运算。
本发明的第七个方面是一种提供用于数据位错误校正方案的方 法。多个位的子组根据数据位而被生成,这样每个数据位在子组中至 少出现一次。每个子组使用相应的编码方案进行编码以生成相应的代 码字。对于每个代码字,相应的所选位的子集被选择。所有的所选子 集通过多对一操作被转换为联合聚缩所选位。对于每个代码字而言, 相应的被缩短代码字是通过从代码字中去除相应所选子集的位而被生成的。总体上,用于数据位的代码字是通过将所有被缩短代码字与 联合聚缩所选位进行组合而被生成的。需要注意的是,因为本发明的 第七个方面并不需要使用单独的、区别于数据位的奇偶校验位,因此 本发明的这个方面同时可应用于系统编码和非系统编码。
例如,在下面范例情形l中,数据位是首标的14位。两个子组 是首标的最前7位和最后7位。每个数据位在一个子组中恰好只出现 一次,而在另一个子组中根本不出现。每个子组使用对应的[15, 7, 5的编码方案而被编码以生成相应的代码字CV和C2,所选子集A是 从C/位中被选择出来的,所选子集A是从G位中被选择出来的。尸, 和尸2通过多对一的异或操作(8位进,4位出)被转换为尸。通过从
CV中去除尸;和从G中去除A以生成被缩短的代码字^和^ 。
总体上,用于数据位的代码字是通过将"、"与/>写入闪存设
备中,并将〗,"与p进行组合而被生成的。
优选地,通过组装所有被缩短的代码字与联合所选聚缩位,被缩 短的代码字与联合所选聚缩位进行组合。例如,在下面范例情形1中,
Ci、 Cs 和户一起被存储在闪存设备中的一个公用位置上。
优选地,每个数据位在多个子集中仅仅出现一次。例如,在下面
范例情形1中,每个首标的最前7位在笫一子组中出现一次,而在第 二子组中根本不出现,并且每个首标最后7位在第二子组中只出现一
次,而在第一子组中根本不出现。可替代的,至少一个数据位在多个 子组中至少出现两次。
优选地,所有的子组具有相同的大小。例如,在下面范例情形l
中,两个子组每一个都具有7位。
优选地,根据通用的第一编码方案对所有的子组进行编码。例如, 在下面范例情形1中,这个通用的第一编码方案是15, 7, 5的编码 方案。
优选地,将所选子集转换为联合聚缩所选位,这个转换包括将一 个所选子集的位与另一个所选子集的位进行异或运算。例如,在下面 范例情形1中,将户/与A进行异或运算。本发明的第八个方面是一种解码包含M个数据位和P个奇偶校 验位的代码字表示的方法。这P个奇偶校验位被划分为第 一组奇偶校 验位和第二组奇偶校验位。M个数据位仅采用第一组奇偶校验位进行 解码,以提供校正数据位。如果仅采用第一组的奇偶校验位的解码失 败了,那么M个数据位同时釆用两组奇偶校验位进行编码,以提供 校正数据位。
例如,在下面范例情形l中,M-14以及P-12。这14个数据位 是£1的最前7位和^的最前7位。这12个奇偶校验位是q
最后4位、、的最后4位、以及^。奇偶校验位的第一组是Ci
的 的
产由W g
最后4位和"的最后4位。奇偶校验位的第二组是尸。多个数据位 采用[ll, 7, 31的、仅具有第一组奇偶校验位的解码器进行解码,以
提供Ci的最前7位和、的最前7位的解码表示。如果解码q
'产由付
失败但解码^成功,那么Ca 釆用[15, 7, 5的编码器进行编码以 再生^,巧与,进行异或运算以得到,1, ^*和^进行级联以得到
G,以及^采用[15, 7, 5的解码器进行解码。
本发明的第九个方面是一种解码包含M个数据位和P个奇偶校 验位的代码字表示的方法。这M个数据位被划分为两个或更多的子 集,以使得每个数据位至少在各个子集中出现一次。这P个奇偶校验 位被划分为第一组奇偶校验位和第二组奇偶校验位。第一組奇偶校验 位进一步地被划分为相同数目的子集,如同数据位以数据位子集与第 一组奇偶校验位子集之间的l:l对应而进行划分。每个数据位子集根 据其相应的第一奇偶校验位子集进行解码,以生成相应的解码数据。 如果这些解码中的一个失败了,那么那个解码已失败的数据位子集再 次至少部分地根据第二组奇偶校验位进行解码,以生成相应的解码数 据。最后,将所有数据位子集的解码数据进行组合,以生成用于M个 数据位的总解码数据。
例如,在下面范例情形l中,M-14以及P-12。这14个数据位被划分为两个子集Gi的最前7位和、的最前7位。奇偶校验
位的第一组是"的最后4位和、的最后4位。奇偶校验位的第
二组是,。对应于"的最前7位的第一奇偶校验位子集是C! 的
最后4位。对应于、的最前7位的第一奇偶校验位子集是"的 最后4位。A的最前7位仅采用q的最后4位,由[ll, 7, 3
的解码器进行解码。、的最前7位仅采用、的最后4位,由[ll, 7, 31的解码器进行解码。如果解码^ 失败但解码^成功,那么 所解码的G自釆用[15, 7, 5的编码器进行编码以再生^, A与,进
行异或运算以得到、Cl和!进行级联以得到1 ,以及1采用[15, 7, 5的解码器进行解码,由此再生代码G。所再生的^的最前7位
和所解码的Q 的最前7位进行级联,以生成所解码的14位首标。
优选地,数据位子集的解码数据通过组装数据位子集的解码数据 而进行组合。例如,在下面的范例情形l中,所解码的"的最前7 位和所解码的C2 的最前7位进行级联,以生成所解码的U位首标。 优选地,这些数据位子集是不相交的。例如,在下面的范例情形
l中,A的最前7位和、的最前7位是不相交的两个子集。
优选地,所有数据位子集都具有相同的大小。例如,在下面的范 例情形1中,所有数据位子集都具有7个位。
优选地,每个数据子集根据相应的第一组奇偶校验位子集、采用 相应的第一解码方案进行解码;以及根据数据位子集的第二组奇偶校 验位的解码包含了要采用相应的第二解码方案,这里的数据位子集已 由第一解码方案解码失败。例如,在下面的范例情形l中,第一解码 方案是[ll, 7, 31的方案,第二解码方案是[15, 7, 5的方案。
优选地,对于这些数据位子集中的至少一个,相应的第一和第二 解码方案使用通用的解码方法。例如,将这种选择扩展至本发明的第 五方面的范例情形1,第一解码方案和第二解码方案都是[ll, 7, 3的方案。第一解码方案采用所存储的奇偶校验位,这个奇偶校验位由
未被交换次序的首标位进行编码而生成。如果第一组7个存储数据位 的解码失败但最后7个存储数据位的解码成功,那么成功地被解码的 数据位被交换次序并进行编码,以再生相应的奇偶校验位。这些所再 生的奇偶校验位与最后4位的存储奇偶校验位进行异或运算,以再生 最前7个被交换次序的首标位的奇偶校验位,这些奇偶校验位被用于 第二次尝试通过执行已交换次序的最前7个存储数据位的解码来解码 最前7个存储数据位。
优选地,所有的第一解码方案都是相同的。例如,在下面的范例 情形1中,所有的第一解码方案都是[ll, 7, 3的、同样的方案。
优选地,所有的第二解码方案都是相同的。例如,在下面的范例 情形1中,所有的第二解码方案都是15, 7, 5的、同样的方案。
本发明的第十个方面是一种从具有N>M位的代码表示中解码出 M个数据位的方法。至多N-M位的所选子集从这N位中被去除,由 此产生剩余位的集合。剩余位被划分为两个或更多子集,以使得每个 剩余位是子集中至少一个的成员。每个剩余位子集仅根据它自己的位 进行解码,以生成相应的解码数据。如果剩余位子集中的一个解码失
败,那个剩余位子集至少部分地根据被去除的所选子集进行解码,以 生成剩余位子集的相应解码数据。最后,将所有的解码数据进行組合 以生成用于M数据位的总解码数据。注意,因为本发明的第十个方 面不需要使用单独的、区别于数据位的奇偶校验位,本发明的这个方 面可以同时应用到系统编码和非系统编码。
例如,在下面的范例情形1中,M-14以及N-26。被去除的所
选子集是P。剩余位被划分为两个子集,^ 和G 。、 仅根据 其自己的11位进行解码,而不需要其它信息,作为结果的解码字的
最前7位为对应于^ 的解码数据。2 仅根据其自己的ll位进行 解码,而不需要其它信息,作为结果的解码字的最前7位为对应于
2 的解码数据。如果解码^失败但解码Q 成功,那么解码的4 采用[l5, 7, 5的编码器进行编码以再生A, ^与户进行异或
运算以获得、"和i进行级联以获得、,以及^采用[15, 7, 5
的解码器进行解码。所解码的e^的最前7位和所解码的《一 的最前 7位进行级联以生成解码的14位首标。
优选地,剩余位子集的解码数据通过组装剩余位子集的解码数据
而进行组合。例如,在下面的范例情形l中,所解码的^ 的最前7 位和所解码的的最前7位进行级联以生成解码的14位首标。
优选地,这些剩余位子集是不相交的。例如,在下面的范例情形
l中,Gi的最前7位和^的最前7位是不相交的两个子集。
优选地,所有剩余位子集都具有相同的大小。例如,在下面的范 例情形1中,所有数据位子集都具有7位。
优选地,每个剩余位子集根据其自己的位、采用相应的第一解码 方案进行解码;以及根据剩余位子集的被去除所选子集的解码包括釆 用相应的第二解码方案,这里的剩余位子集已由第一解码方案解码失 败。例如,在下面的范例情形1中,第一解码方案是[ll, 7, 3的方 案,以及第二解码方案是15, 7, 5的方案。
优选地,对于这些剩余位子集中的至少一个,相应的第一和第二 解码方案使用通用的解码方法。例如,将这种选择扩展至本发明第五 方面的范例情形1,第一解码方案和第二解码方案都是[ll, 7, 3j的 方案。第一解码方案采用所存储的奇偶校验位,这个奇偶校验位由对 未被交换次序的首标位进行编码而生成。如果最前7个存储数据位的 解码失败但最后7个存储数据位的解码成功,那么成功地解码的数据 位被交换次序并进行编码,以再生相应的奇偶校验位。这些再生的奇 偶校验位与最后4位的存储奇偶校验位进行异或运算,以再生最前7 个被交换次序的首标位的奇偶校验位,这些奇偶校验位被用于第二次 尝试通过执行已交换次序的最前7个存储数据位的解码来解码最前7 个存储数据位。
优选地,所有的第一解码方案都是相同的。例如,在下面的范例情形1中,所有的第一解码方案都是同样的[ll, 7, 3的方案。
优选地,所有的第二解码方案都是相同的。例如,在下面的范例 情形1中,所有的第二解码方案都是同样的[15, 7, 5I的方案。
为较好的理解本发明其中的实施例,以附图作为参考,其中相似 的附图标记在本文中表示对应的部件或单元,其中 图l是本发明的设备的优选实施例的方框图; 图2是含有图1的多阶段编码器的组件的方框图; 图3是当在图2的状态机控制逻辑方框中执行的编码过程的流程
图4是含有图1的多阶段解码器的组件的方框图5是含有图4的双模解码器单元的组件的方框图6是关于范例情形1的解码过程的流程图7是关于范例情形2的解码过程的流程图8是关于范例情形1的解码过程的示意性图示说明;
图9是关于范例情形2的CER性能对SER性能的图解图示说明;
图IO是关于范例情形1和范例情形2的用于块码[15, 7, 5的
生成器矩阵的描述;
图11是关于范例情形1和范例情形2的用于块码[15, 7, 5的
奇偶校验矩阵"/T,的描述;
图12是关于范例情形1和范例情形2的用于块码[15, 7, 5的
双重错误位置的表格描述;
图13是关于范例情形1和范例情形2的用于块码11, 7, 3的
奇偶校验矩阵〃〃;的描述;
图14是关于范例情形1的用于块码[ll, 7, 3的单个错误位置
的表格描述。
具体实施方式
本发明公开了 一种为了确保被存储信息可靠性而提供错误校正 编码方案的方法和设备。这个所提出的方法接近长代码的性能,然而 却避免了长代码编码器和解码器的电路复杂性。因此,获得了硬件和 软件实现的尺寸的减小和复杂性的降低。
术语"解码数据的修正"在这里是指从解码数据的第一数值到解 码数据的第二数值的修正。根据本发明提供的方法,某个短代码字表 示的解码数据的修正是在其它短代码字表示基础上实现的。因此,用 于其解码已失败的代码字表示的附加解码尝试根据其它短代码字表 示的解码数据而执行。
术语"代码字解码数据的数值"在这里是指任何有效的数值。可替 代地,这个术语备选地可以指例如因为解码失败而没有当前已知数值 的逻辑指示。因此,解码数据的"修正,,可以是从一个有效数值到另一 有效数值、从解码失败的逻辑指示到一个有效数值、或从一个有效数 值到解码失败的逻辑指示的修正。
在本发明中,术语"子集"这里同时是指小于其所属于的全集的合 适子集,以及是指全集它自己。
应当理解, 一个短字的解码数据的修正根据其它短字的解码数 据,可由本发明作为一个可选项所提供,以及不需要在解码长代码字 的每个实例期间发生。对于具有错误特定出现的长字的实例,可以是 所有短代码字表示都在第一次尝试中成功地解码的情形。在这种情形 下,不应用解码数据的修正。这种修改仅在用于至少一个短字的解码 已失败的情形才会被执行。因此,术语"实现修正,,意指"根据需要可 选择地实现修正"。
本发明方法的优选实施例在这里连同范例情形-1和范例情形-2 一起进行描述。这两个范例情形公开了提供错误校正代码方案的设 备,其中这个设备特别地、能很好地适合于数据存储的使用。因此, 本发明的优选设备包括一种解码器,它被提供用于增加特定字的延迟 以便在解码过程中应用进一步的步骤。由于峰延迟(在很少的例子 中),这个错误校正编码方案可能并不适用于一些具有固定限制延迟的同步或半同步流的通信系统。
需要强调的是,本发明的方法所引入的平均延迟并不比在本领域 中已知方法所引入的高。然而,在其中延迟相当多地增加的少有例子 中,本发明的方法特别地适用于存储媒体,较少地适用于同步通信系 统。
范例1:
这里提供了一种包括独立位的闪存设备,其中每一个核心单元有 一个位并且信元错误率(CER)是《7xl(T5。因为闪存设备中每一单元 具有一位,所以位元错误率(BER)也是4,7^10'5。闪存设备的闪存存 储器包括许多块;每个块被定义为有多页。每页包括首标或控制区以 及多个扇区,每一扇区长为512数据位。当提供用于包含14位的每 个块的首标的可靠存储以及实现首标错误率(HER)性能低于10-1G (HER<10 —1Q)时,需要在用于闪存设备的快速控制器中设计错误校 正编码方案。
为了在具有《 "0'SCER输入的14位集合上提供HER<1(T1G的 性能目标,需要3位错误校正能力。 一个错误的校正(即4 ^ 1)可提 供HER 3Jxl(T7以及两个错误的校正(即t;2:)可提供
因此,需要三错误校正[29, 14BCH代码,其中代码速率R等 于0.4828(即14/29 )以及首标采用一个29位长度的代码字进行表示。
编码和解码BCH代码以及构建这种电路的方式的文献在过去的 多年里(参看文献[16-[47)已被详尽地研究了。当使用本发明的方 法时,编码和解码的例子可被提供以用于获得相同的HER目标性能。 以下所叙述的例子利用了被简化的控制器,这个控制器包括仅能校正 两个错误而不是三个错误的组件代码。而且,因为长度的减少不一定 是组件代码能够校正的错误数目(是2而不是3)的直接结果,但是 替代地它主要以整个方案结构来确定代码长度,该代码长度需要仅26 位用于每个首标,而不是29位代码(即较高的代码速率 R= 14/26-0.5385可被实现)。在闪存首标大小上所获的减少增益是
3111.54%。这个优点可以在下面的非限制例子中而被实现-1x15, [+lx7 ,问-7xl5 , (U)
其中GF( 2 )是用于具有两个单元的伽罗瓦有限场(Galois Finite Filed)的符号,'£'被定义为包含代码字的行向量,'沮'被定义为包含 7个信息位的行向量,以及<(7被定义为系统性编码矩阵。 = 8x1 ,[用-8xl5 (1.2)
其中^为包含代码字的行向量,?为包含8位故障码的列向量,
以及'ff是奇偶校验检查矩阵,以及符号o『表示转置,所以^就是一
个列向量。
在步骤2中,8位故障码被用于存取表290 (参看图12 )。表290 提供了两个4位数字,这样4位数字中的每一个就定义了在15位代 码字中单个错误的位置。注意,在表2卯中数值,O,是指'无错误,的情形。如果表290包含 在特定条目中的两个数字,其中一个数值是零而另一个数值是非零, 那么这表示仅有一个错误而不是两个。进一步地,在故障码自身中零 表示根本没有错误。通过假定故障码向量的最上面的位是最低有效位 (LSB),而最底下的位是最高有效位(MSB),以获得故障码数值。 注意,在这个表中仅给出了 121个数值(故障码的256个可能数值中 的)。由于解码器还包括错误检测能力,那么对于未在表290中给出 的情形,有超过两个的错误(参看图12)。然而,解码器不能指向它 们的位置。
由于在其中这个代码被生成的特定方式中,用于单个位校正的子 矩阵'H^'可被提供。单个位的校正被应用于同样的代码字的最前u
位。子矩阵'^^包括'H'矩阵的最前4行和最前11列。15位字的最 前11位的解码过程在两个相似的步骤中按以下方式而被应用
在如上所述的第一步骤中,故障码计算通过在GF (2)上釆用 矩阵乘法操作按如下公式被执行
《-^w'£r , [£〗-1"1 , [£]-4x1 , [F]-4xH (1.3)
其中为包含读取字的行向量,^为包含4位故障码的列向量,
以及^^是'P的子矩阵,它包含的所述的最前4行和所迷的最前
ll列。块代码[ll, 7, 3!的矩阵^ 300被示于图13中。
在解码过程的第二步骤中,错误位置是从4位故障码310中提取 的。这个具有一个,O,值的故障码位定义了'没有错误,的情形。
基于15位代码字的最前11位的成功解码,(1.1)中的矩阵'力' 可用于再生15位代码字的最后4位,即使这最后4位不被提供给解 码器。既然最前11位已经被解码了,解码器的大小被减少以便直接 地从11解码位中的最前7位中再生最后4位。这意味着最后4位的
再生仅需要矩阵:^的最后4列。
采用上述的所生成的代码字,单个的[29, 14]的BCH代码可用
被表示为Ci^的、两个不相交字的集合进行替换。d和^是两个系统性代码字,每个长为15。不相交字^包含7个信息位和8个奇偶 校验位,而不相交字Q包含剩余的7个信息位和它们所关联的8个 奇偶校验位。因此,首标的、相同的14信息位整个地被获得了。编 码过程根据在(1.1)中所示的上述公式而被完成。
两个不相交字C" C2中的每个的最后4个奇偶校验位被定义为子 集pi,h。上述被称为整个数据的函数仅仅是这些子集(即P^P冲P2」 的异或运算(参见图8)。在编码每个7信息位之后,这两个子集Pi和 P^从C!和C2可被提取。剩余的位然后被写入闪存设备(即仅仅是C!的 最前11位和G的最前11位)。用T'所表示的整个数据的统一函数被 定义位统一数据,因为它统一了数据的不相交子组。这个统一集合P 也,皮写入闪存设备。
这个例子因此将26 (11 + 11 + 4)位一起合并。进一步强调的是 写入闪存设备的位并不包括位Pi、 P2,因为在代码字被传送到物理存 储介质之前这些位已从该代码字中被提取。在解码过程中再生的被提 取的位在下文中被定义为"隐位"。如上文中解释的,在最前11位被 成功解码的情形下,剩余的4位可以通过编码过程而被再生。正如在 下面"从闪存设备中读取首标(解码),,的部分所详述的那样,解码过
程利用了这一特性。
本领域所属技术人员能够理解,公平的比较情形是轻而易举的, 并且这样的解码和编码过程的实现是可行的。这个创新的错误校正编 码方案的结果就是指按如下的写入(编码)和读出(解码)操作
1.将首标写入闪存设备(编码)
使用首标的7个信息位的第一集合对被定义为d的第一[15, 7
中块代码进行编码,并使用以上所详述的、关于公式(1.1)的过程。 用P!表示15位的代码字d的位12-15。
使用首标的7个信息位的第二集合对被定义为C2的第二[15, 7
中块代码进行编码,并使用以上所详述的、关于公式(1.1)的过程。 用P2表示15位的代码字C2的位12-15。
将集合Pi和P2进行位与位地异或运算,以获得被定义为奇偶校验位-2或者位"P"的4个位。
将d的位1-11和C2的位1-11写入闪存设备。将d的位1-11
记为、C2的位l-ll记为"。
将4位"P"写入闪存设备。
2. 从FLASH设备中读出首标(解码)
读取两个ii位字。结果是两个字,被表示为^ 和^ 。如果
在闪存中没有错误,那么q 以及^ —q 。如果有错误,
那么^ 或、包括与最初被写入闪存的代码字"和q 相关的
错误。需要注意的是,在有错误的情形下,那么^ 或^会分别地 被表示为字(不必为代码字)。
根据以上所详述的、关于公式(1.3)的过程,即单个错误校正
解码器,来解码字^ 和^ :
如果两个字成功地被解码(因为! 有0或1个错误以及^ 有 0或1个错误)-首标成功地被读取为11位代码字A一的最前7位以
及11位代码字"的最前7位。在一个非系统代码情形中,需要进 一步的信息(举例来说, 一个表格或者其它转换)以成功地读取首标。 >如果两个字解码都失败(因为h有2个或更多错误以及
"有2个或更多错误)-首标就不能成功地被读取。
> 如果一个字解码失败,而另一个字解码成功(因为一个字有 0或1个错误而另一个字有2个或更多错误)-解码过程进入到步骤 3。
3. 如果恰好只有一个子码失败就读取首标
■从闪存设备读取位,。这些位被定义为》而不是P,因为在戶 与"P,,之间也可能存在差异。当,位从闪存设备中被读取时,可以假 定闪存设备引入了错误。
如果解码"失败,而解码^ 成功,巧就会按照下述方式而
从Q和戶中再生retort
> 通过应用以上所详述的、关于>^式(1.1)的编码过程,从、 中再生G的隐^位。
>将位,与隐位^进行异或运算以生成^ 。
>通过将位,安排在G!中的位位置1-11处以及将位A安排
在C,中的位位置12-15处,而从H和i中生成"。
■ 通过应用以上所详述的、关于公式(1.2)的解码过程,使用
作为两个错误校正15, 7块代码的所有15位对A解码。
■ 如果解码成功,那么首标就成功地被读取。否则,首标的读 取失败。
■ 如果解码^"""失败,而解码^f一成功,那么以如下方式从
户A抓 g g
lCi 和P中再生A。
> 通过应用以上所详述的、关于^>式(1.1)的编码过程,从
Cl的隐^位中再生、。 — >将位,与再生的隐位^进行异或运算以生成,2。
>通过将位^"^安排在A中的位位置1-11处以及将位A安排在
"中的位位置12-15处,而从^ 和A中生成C2。
■ 通过应用以上所详述的、关于公式(1.2)的解码过程,使用 作为两个错误校正[15, 71块代码的所有1S位对^解码。
■ 如果解码成功,那么首标就成功地被读取。否则,首标的读
取失败。
^辨',^/时炎#为、浙
下面一部分详细地叙述了本发明方法中所执行的数学分析,以评 估在尺寸和电路复杂性方面所获得的收益。关于控制器复杂性方面的 收益是显而易见的,由于能够校正两个错误的解码器的实现比能够校 正3个错误的解码器的实现要更简单。
为了计算参考方案,令/ 被定义为闪存设备的输入BER (即,在我们的例子中"'"w )。解码器的HER性能是根据二项式分布按 下述公式所给出的,其中[11=15, k=5, t=2.
24 f 24、
=2.1"0"0 , (1,4) — ,
其中,"t,,是指错误校正能力(也就是说,能够被校正的错误位
的最大数量)如下所示H(d'iW」。因为根据(1.4),当HER高于 10"。时,校正两个错误是不够的,参考方案被迫使用三-错误-校正 BCH码。现在转入使用本发明方案的HER性能的计算,本发明的子 码错误率(SCER),其中一li,k^,d一,护1],根据如下公式所给出
v j j
L2'1(T7 (l,S)
碱、乂 JE^C*
HER性能的第 一 个贡献者是在首标中两个子码的失败解码的情 形。这个概率按如下进行计算
HER性能的第二个贡献者是在第一阶段的一个字的失败解码的 情形,以及在第二阶段超过两个错误(当试图解码超过有15位的两 个错误时)的失败解码的情形。这个概率按如下进行计算
郎i 2,2 = 2. SC五i^萨〃'(1 — )'=义4- iO-,1 (1.7)
将两个可能性概率进行组合得到
Iffi及2 + EB^2i2 w ^fi!S^ = 9,4 '1(T11 (1,8)
HER性能的笫二个贡献者好五及2, 2,按如下方式进行计算 左边的两个因子^^ww"夂^^^被2相乘,因为对于第一个失 败解码的子码和第二个成功解码的子码而言,存在两个概率。根据单 个错误校正块代码,当第一子码解码失败而第二子码解码成功,就获 得了第一概率。根据单个错误校正块代码,当第一子码解码成功而第 二子码解码失败,就获得了第二概率。
最右边的因子^;是两个数相除的结果。这个结果对应于这样 的概率即假如在11位的子集中存在超过T个的错误,那么在15位
37的集合中存在超过两个的错误。将在11位子集中超过1个错误的事
件定义为事件"x",将在15位集合中超过2个错误的事件定义为事件 "y"。因此,事件P④根据Bayes定律按如下公式可得到
尸(,KH^p2 (!,9)
事件P(y, x)是指在15位集合中存在超过2个错误,并且在 11位子集中存在超过1个错误。很明显,在15位集合中所有超过2 个错误的情形包含这些事件,即15位的子集包括超过1个错误。因 此,p&中pw,并且在公式(1.7)中最右边的元素是P(y)/P(x)。
范例情形2:
这里也得到了同样的闪存设备,如上面在范例情形1中所公开 的,即每单元可放入一位以及信元错误率(CER)为4.7"0'5。设计 包含解码器的闪存设备是必要的,这样解码器就可被执行用以提供包 含512字节位(每一8位中的)的扇区数据区的可靠存储。既然数据 自己决不比每一扇区的首标重要,那么用于该数据的目标性能,即 SER(扇区错误率),应低于Sx101闪存设备的设计被限于单个的 ECC (错误校正代码)硬件(即15位的块代码,如已对于首标所设 计的)。
t - l错误的校正得到了 SER l,36x104。
t * 2错误的校正得到了 SHR"2.8xKT8。代码速率i 是由被代码长度"'所分割的信息位的数目&
所定义的。换句话说,采用总的「"2^"l-5秘代码字来表示长为 4096位的扇区,这提供了 R巧i&8/(5g6"5HW^的总代码速率。因此, 具有11 = 7/15 = 0.466的代码速率的两错误校正15, 7, 5I块代码就足够 了。
当保持上文所述的相同限制时,替代采用每个代码字长15的、 586代码字的设计,这里提供了一种新设计,包含7信息位和4奇偶 校验位的586删截码。来自所有子代码的4奇偶校验位的第二集合进 行异或运算,而这个4位结果被存储于闪存设备中。以这种方式,本 发明的方法采用同样的硬件设计以及对于每单元提供了较高的代码速率r ^ 4096/(^^1h4)k),es位,从而能够实现性能指标。好处在
于闪存设备大小显著地减小了26'6%。扇区的读取和写入操作可按如 下而被执行
1. 将扇区写入闪存设备(编码)
讓采用扇区的4096个信息位,编码[15, 7, 5块代码的586个代码字。
画对所有586个代码字的位12-15进行异或运算,以获得被定义 为奇偶校验-2位的4位。
疆写入闪存设备的所有586个代码字的位1-11。 麗将4个奇偶校验-2位写入闪存i殳备。
2. 从闪存设备中读取扇区(解码) 躍从闪存设备中读取长为11的586个代码字。
羅采用11, 7, 3的块代码解码器的单个错误校正解码器来解码 这586个字。
醫如果所有代码字都成功地被解码,那么扇区就成功地被解码。 麗如果多于一个字未被编码,则在解码扇区时出现故障。 -如果单个字未能解码而其它585个字已成功地解码,执行以下
步骤
> 再生所有585个字的隐奇偶校验位12-15,它们通过使用以 上详述的、关于公式(1.1)的编码过程而成功地被解码。
> 从闪存设备中读取奇偶校验-2位。
> 将奇偶校验-2位和已成功地解码的所有585个字的隐奇偶校 验位12-15进行异或运算,以便估计未被解码的第586个字的位12-15。
>使用具有双错误校正[15, 7, 5的块代码解码器,并以上详 迷的关于公式(1.2)的过程,使用所有15位,现在再次解码已失败 的字。如果解码成功,那么扇区也就成功地被读取了。否则,扇区解
码失败。
釆用范例情形2的本发明的方法,可获得以下的优点
* 减少了闪存设备的大小(在单元数目方面减少26% )或者提供了较高的代码速率(以0.635替代0.466 )。 * 同样的SER性能要求能被实现。
*具有同样的硬件复杂性-采用了[15, 7, 5的块代码编码器/ 解码器。
对首标和数据编码及解码进程采用了统一的硬件。 态浙橫承-2 ^炎夢为Vf.'
SER分析提供了参考方案与本发明方案之间的比较,其被示于 图9中。用于获得这些值的公式在下面的节中被给出。 1.参考方案(曲线262 )
令^表示闪存设备的CER性能(即在我们的例子中^^'7^^)。 [^1^=7,2块代码解码器的帧错误率(FER)应为
".7xl0"
(2.1)
顺,一"=|;卩,)?'.(1-尸)
w 、 z 乂
为
本发明的SER性能([n一5,^7'一2块代码的586个代码字)应
鄉-1-(卜尸Ul卿,一。-"-2.8"0-8 糾 2.本发明方案(曲线264)
1^11,—7^13块代码解码器的帧错误率(FER)应为
=1.2'1(T7 (2.3)
闪存设备的CER性能的第一贡献者是扇区中两个或多个失败字 的情形。这个概率由下式来定义
* 乂
鹏"=2 r .咪駅-尸u
m、 ^
45。0.9 (2,4)
闪存设备的CER性能的第二贡献者是在第一阶段中的单个字失 败以及在第二阶段中多于两个错误(当以能解码达到两个错误的解码 器来解码15位时)的情形。这个概率由下式来定义
=3.0-1 。4 (2.5)将这两个贡献者组合起来可得到这样的概率
5E 2 = ^S1^,!十《钱3 = 3,3' I (T* (2.6)
现在参看图1,这里示出了包含本发明设备的编码器和解码器的 方框图。本发明的设备l包含用于在设备l内接收来自应用的信息以 及存储它的主界面模块10。
主界面10将信息传送到多阶段编码器20。这个多阶段编码器20 执行如上所述的、'将首标写入闪存设备,的过程,并且在图2和3中 给出了进一步的细节。多阶段编码器20将K信息位的块转换为N位 代码字,其中N〉K。对于范例情形1, K^"以及N《6。
N-位块然后被传送到数字化处理单元30。数字化处理单元30被 提供用于如范例情形2所述的将数据扇区加入这个块,以及在这个块 被写入单元之前执行其它数字化进程。这样的数字化进程可选地包含 交织和灰度映射(gray mapping)进程。这个数字化处理单元30可 以是本领域已知的任何处理单元。
已处理的N-位块然后被传送到存储设备40,它被提供用来存储 物理信息位。
一旦从存储设备40中读取块,这个块就被传送到数字化反向处 理单元50,以便将这个N-位块转换为与呈现在多阶段编码器20的输 出端的相同的格式。
这个N-位块然后从数字化反向处理单元50被传送到多阶段解码 器100。多阶段解码器100被提供用于从26位首标代码字中恢复首标 的14信息位,如上在'从闪存设备中读取首标,一节中所述的,以及在 图4-6中给出了进一步的细节。
这个所恢复的首标信息位然后被传送回到主界面10。
现在参看图2,它示出了包含图1的多阶段编码器20的组件的 方框图。14信息位从主界面被传送以及被存储在随机存取存储器 (RAM) 21的上部(不相交的区)中。RAM 21的不相交区提供了 用于22位的存储区域。
状态机控制逻辑24被提供用于激活子码编码器22,以采用[15,
417, 5j的块代码编码器将14信息位中的最前7信息位编码成15位。
当来自子码编码器22的四个新奇偶校验位(位8-11)被传送回 到RAM 21的上部(指不相交区)时,这15位中的位12-15被传送 到联合奇偶校验处理器23。联合奇偶校验处理器23被提供用于将数 学压缩公式(即异或)应用在所有子码的第二类奇偶校验位。
7信息位的第二集合从RAM 21被传送到子码编码器,并且被编 码成[15, 7, 5块代码字。来自块代码的15位的信息位12-15被传送 到联合奇偶校验处理器23,同时这些被加入的四奇偶校验位(位8-11 ) 从子码编码器22被传送回RAM 21的上部,这样就完成了将7位的 第二集合编码成11信息位的11, 7, 3]代码。
在联合奇偶校验处理器单元23中,这四信息位12-15与已存储 在单元23中的四位进行位与位之间的异或运算。这个结果被存储在 RAM21的下部(指相交区)。
现在参看图3,它示出了图2中状态机控制逻辑块中所执行的编 码过程31的流程图。在第一步32中,子码数目W,被初始化为0。
在下一步骤33中,检查变量實的值是否已达到值2,即关于范
例情形l的两个子码。由于在编码过程W《的这个阶段中,'N,的值 以1进行递增(步骤34 )从而指示出状态机控制逻辑块24正在编码 子码l。
在下一步骤35中,子码编码器22 (参看图2)被激活用于编码
子码1。被定义为D^!的位1-11被存储在RAM 21的上部。
在步骤36中,被定义为皮^的位12-15,被存储在联合部分处理 器(JPP)单元23 (参看图2)。
在步骤37中,更新这四位12-15 (即与初始的四个O进行异或运 算)。该编码过程接着返回步骤33。
在下一步骤33中,再次检验变量^的值在循环的这个周期中是
否已达到值2。由于在该阶段N-1,该编码过程进行到步骤34,以执
行该循环的第二个周期。
在步骤34,变量^的值递增1,直到等于2。在步骤35,第二组的7位被编码为15位的代码字。被定义为DJP2 的最前11位中的后4位被存储在RAM 21的上部。该15位的最后4 位被定义为JP2。
在步骤36, JP2位被传送到JPP单元23 (参见附图2 )。
在下一步骤37中,好!的位与取的位进行位与位地异或运算,以 便生成JPP单元23的四输出JPP位。
跟随这个步骤之后,编码进程返回到步骤33。在到达步骤33的 基础上,变量'N,的值等于2。因此,在肯定的情形(:^'《:)中,编 码过程进入到步骤38。
在步骤38中,作为结果的JP位被写入RAM21的下部。
在最后的步骤39中,编码过程结束。
现在参看图4,它示出了包含图1的多阶段解码器100的组件的 方框图。多阶段解码器100的实现可被提供用于在存储联合信息的 RAM单元(JIR) 110和存储不相交信息的RAM单元(DJIR) 200 之间进行区分。两类信息之间的区别是由于这样的事实,即实际中当 考虑先前在数学分析中使用JIR单元的概率,可以发现这种概率相当 小。因此,为了减少电路的复杂性,在这两个RAM单元之间进行区 分是可取的。
DJIR 200被提供用于存储第一和第二的不相交信息字的22位。 这些字被传送到双模解码器单元130,其通过控制单元190读取这22 位。对于如上述的范例情形1,双模解码器单元在130在单个错误校
正模式中被激活。
如果第一字的解码成功,那么如果需要的话,DJIR单元200使 用校正位,经过控制单元190而被更新。解码过程然后被重复用于第 二11位字。
如果第一和第二字的解码都成功了,那么JIR单元110被留下 不激活。如果这两个字的解码都失败了,那么全部解码过程就失败了。 在子字中的一个(笫一子字或第二子字)解码失败而不是二个字
都失败的情形中,那么解码失败子字的第二尝试使用已成功地解码的子代码而进行。
例如,如果第 一子代码的解码已成功而第二子代码的解码已失 败,那么第二尝试使用已成功地解码的第一子代码,解码笫二子字。
来自JIR单元110的4位通过控制单元190而被读取并被存储在中间 RAM (IR)单元170。第一子代码通过控制单元190而被再读取到多 阶段解码器20 (参看图2)。多阶段解码器20再生4个^!位,然后 将它们传送到IR单元170。联合信息处理器(JIP )单元180被提供 用于将;JP和犯i进行位与位地异或运算。这个结果被存储在双模解码
器单元130的[15, 7,5的块代码的位置12-15中。第二子代码从DJIR 中被再读取到在双模解码器单元120的15, 7, 5j的块代码的位置 1-11,以生成15位字。在这种情形下,双模解码器单元130在双位错 误校正模式中被激活。如果双模解码器单元130在双位错误校正模式 中未被解码,那么全部解码过程就失败了。但是, 一旦双模解码器单 元130在双位错误校正模式中成功解码,那么DJIR单元200以校正 位而进行更新,读取过程被表明为成功。
可替代地,如果第二子字(根据成功解码被定义为子码)的解码 成功并且第一子字解码失败,类似的解码过程被执行,这样正如这里 以上实例所述的第一子字和第二子字之间的操作功能是可以进行交 换的。
本发明在这里被描述为提供了一种用于解码长码字的单个解码 器。然而,本发明并不仅仅限于单个解码器,它同样地可用于提供多 个解码器,每个可解码一个比长代码字位数少的代码字。
参看图5,它示出了图4的双模解码器单元130的方框图。状态 机单元138被提供用于控制由双模解码器单元130所执行的解码过 程。
从DJIR单元200、 JIR单元110以及JIP单元(参看图4 )所 转送的信息位, 一起被收集于数据控制器单元132。这样的收集由状 态机单元138进行控制。
从数据收集器单元132得到的信息位在解码器核心单元134被解码。根据单个错误或双错误校正模式,奇偶校验矩阵单元136被使用 在用于解码过程所需的计算中。该奇偶校验矩阵136在每一行包括对 于所接收字的奇偶校验检验。在所检验的位置中,矩阵每一个这样的 行包括一个数值"l"。检测进程就是对在奇偶校验行包含数值'l,的位 置上的字的元素进行异或的操作。如果异或操作的结果返回到0,检 测进程就是成功的。如果所有检测过程都返回到零,那么所接收的字 就被确定为代码字。在所接收的字上使用奇偶校验矩阵136的结果是 所接收的字的故障码。包括一个非零数值的所接收字的故障码,表明 所接收的字不是代码字。在所接收字上应用奇偶校验检验矩阵136是 根据以上详述的、关于公式(1.2)或(1.3)过程而进行的。
关于范例情形1,在奇偶校验矩阵单元136 (参见图5)中所实 现的矩阵被提供以用于单个错误和双重错误校正模式,这样在单个错 误校正模式中所使用的矩阵事实上就是在双重错误校正模式上所使 用矩阵的一个子集。
参看图6,给出了关于范例情形1的解码过程的流程图140。在 初始步骤141中,第一字从DJIR200 (参见图4)中被读出。在单个 错误校正模式中,双模式解码器130被激活。
在下一步骤142中,状态机单元138 (参见图5)检测第一字的 解码是否成功。
在肯定的情形下,解码过程进入到步骤150。在步骤1S0中,如 果存在校正,第一字就以校正进行更新。在该步骤中,双模解码器130 (参见图4)被激活以用于解码在单个错误校正模式中从DJIR 200 所读取的第二字。在下一步骤152中,状态机单元l38 (参见图5) 检查第二字的解码是否已成功。在否定的情形(即在单个错误校正模
式中第一字的解码已成功而在单个错误校正模式中第二字的解码已 失败)中,解码过程进入到步骤153。然而,在肯定的情形中-解码 过程进入到步骤156。在步骤156中,如果存在校正,第二字就以该 校正进行更新,那么解码过程就成功地结束(步骤149)。
在第一否定情形(即如果第一字解码失败)中,解码过程进入到步骤"3。在步骤1"中,第二字从DJIR 200 (参见图4)中被读取 并且在单个错误校正模式中被解码。
在下一步骤144中,状态机单元138 (参见图5 )检查第二字解 码是否已成功。在否定的情形中,全部解码过程失败,以及在步骤145 被结束。然而,在肯定的情形中(即第二字解码成功),解码过程继 续进入到步骤146。
在步骤153中,附加的解码尝试采用从已成功地解码的第一字和 从4个外部联合位所获得的信息,解码第二字。在这个步骤中,第二 字的11位从DIJIR单元200 (参见图4)中被再读取。第二字的最后 4位是由与从单元JIR110中所获得的4个联合位进行异或运算的第一 字的隐位中而被再生的。第 一字的隐位通过将解码器应用于从第 一字 所解码的ll位而获得。双模解码器130 (参见图4)被激活以用于在 双错误校正模式中解码第二字。在下一步骤154中,状态机单元138 (参见图5)检查第二字的所述附加解码是否已成功。
在否定情形中,全部解码过程失败,以及在步骤155被结束。
然而,在肯定的情形中,解码过程进入到步骤156。在步骤156 中,第二字被更新到DJIR200 (参见图4),它带有在用于第二字的 第二解码尝试中所发现的校正。解码过程然后进入最后步骤l49。在 最后步骤149中,这里声明了成功的解码过程以及解码被结束。
在步骤146中,用于解码已失败的第一字的第二尝试以与在步骤 153中对于第一字所执行的解码过程相似的方式进行(这样在第一字 和第二字之间的操作功能被交换)。
在下一步骤147中,状态机单元138 (参看图5)检查第一字的 附加的解码是否已成功。
在否定的情形下,全部解码过程失败,并且在步骤155结束。
然而,在肯定的情形中,解码过程进入到步骤H8。在步骤158 中,第一字被更新到DJIR200 (参见图4),它带有在用于第一字的 第二解码尝试中所发现的校正。在最后步骤149中,这里声明了成功 的解码过程以及解码被结束。
46参考图7,示出了关于范例情形2的解码过程的流程图。图7所 描述的解码过程更适合于软解码器的实现。为使用软解码器而专门地 实施的单元以虚线进行标记并且对于范例情形2未被使用。
在初始步骤211中,对在解码过程中所使用的多个变量执行初始 化。这些变量包括成功解码子代码的数目(A),不相交子字的数目 (:加),至过程的当前字的数目(?),阶段计数器(》),最大阶段 值("P),在单个错误校正模式中的失败字的数目(或在更通用的情 形中的第一解码器)(/),在单个错误校正模式中失败解码的最大数 目(或在更通用的情形中的第一解码器)(w《)。
向量^被提供用于对每个子代码存储值'l',这表示在向量Y 的相应元素地址中成功地被解码。在解码过程的开始阶段,向量Y的 所有元素被初始化为'O,,因为没有关于任一子代码正确性的知识。对 于范例情形2,子字数目KC被初始化为586,因此向量Y中的元素数 目为586。
变量^被初始化为40,。变量^是当前已解码子代码的数字。变 量'P,定义了当前在解码过程中运行的阶段数目,以及'P'被初始化为 '0,。
变量'琴'定义了最大阶段数目。对于范例情形2,仅激活两个阶 段是可能的,即阶段-0定义了单错误校正模式以及阶段-1定义了双错 误校正模式。注意在软解码器实现的情况下,可以是多于两个阶段,皮 执行的情形,这样单个子代码就被解码多于两次。
变量定义了在阶段-0中未解码的子字数量。对于范例情形2, 如果在阶段-0中有多于一个的失败,解码过程就不能再生子字的隐 位。然而,在软解码器实现的情况下-根据特定的设计考虑,变量4/ 可以被设置为直至'"c,的任何值。
变量f定义了成功地被解码子代码的数目,以及一旦在所有子
字上尝试了阶段-0且^的值已被设定,变量'森'就被设置为^5^"/。 为了避免变量W的新的计算,每次变量T被更新 一 变量独立于 变量t^而被定义。 一旦变量^达到值586 (或在通常的情形中的'加'),解码过程结束。
在下一步骤212中,联合奇偶校验位(JP位)从JIR单元110 (参见图4)被传送到中间RAM 170 (参见图4)。随后,对于每个 被成功地解码的子代码,J P利用再生的成功地解码子代码的隐位而进 行更新。
在步骤213中,y与值586("《进行比较。既然在解码过程的这 一点上,,的值少于586(!/^,),那么解码过程继续进入到步骤214。
在步骤214中,从DJIR单元200所传送的不相交的字-0 (即在 循环的下一应用中的字-j)在双模解码器130 (参见图4)中以模式-1 (即对于范例-情形2单错误校正模式被激活)进行解码。
在下一步骤215中,状态机单元138 (参见图5 )检查这个子字 的解码是否已成功。在否定的情形中,解码过程继续进入到步骤216。 在肯定的情形中,解码过程继续进入到步骤219。
在步骤219中,通过将解码器应用到字-0的11个成功解码的位 (即在循环的下一应用中的字-j)以及将作为结果的4个奇偶校验位 与已存储在中间RAM 170 (参见图5 )中的JP位进行异或,位-0的 隐位^Q被再构建。元素#炒的对应值被设置为'1,以表示位-0成功地 被解码并且》'以1进行递增。跟随在这些变量设置操作之后,字-0 (即在循环的下一应用中的字-j)在DJIR单元200 (参见图4)中根 据校正结果而进行更新。
在步骤221中,'/以'l,进行递增,这样实现下一子字解码。解 码过程然后返回到步骤213。
在步骤213中,确定变量T的值是否低于586。
在否定的情形中,解码过程继续进入到步骤222。在肯定的情形 中,解码过程利用变量T的已递增的值,再应用步骤214、步骤215 以及如果需要的话,还再应用步骤216。
在步骤216中,检查变量'Z的值。在对已失败子字来说其数目'7 超过值41,(对于范例情形-2)的情况下,解码过程声称失败以及在步 骤217中被终止。否则解码过程进入到步骤220 (或如果软解码器被实施就进入到步骤218)。注意在软解码器的情形下,在对于整个页 扇区的解码失败被声称之前,变量'z的值可能超过值'l,。
在步骤218中,对于字7的隐位所执行的估计被存储在中间 RAM170中。考虑软解码器的实施时,即使软解码器未能解码,但提 供有关隐位的新的知识,甚至是部分隐位的新的知识也是可能的。然 而,对于范例情形-2,提供这种估计是不可能的。因此,在范例情形 -2中,步骤218被绕过。
在步骤220中,变量7的值以1进行递增,以指示就已失败子
字而言其总数已增加。解码过程然后进入到步骤221,其中变量^的 值以l进行递增,以指示解码器继续解码下一子字。
在步骤222中,^'与值586进行比较。如果'f巧秘,,那么所有 子码的解码已成功,并且解码过程成功地在步骤223中完成。否则对 于范例情形-2,只有一个子字没有成功地被解码,以及解码过程进入 到步骤224。
在下一步骤224中,变量^的值以1进行递增。 在步骤225中,检查变量Y的值是否低于2 (或在一般情形中低 于^P,)。在否定的情形(即^等于或大于2)中声称全部解码过程 失败以及在步骤226中全部解码过程结束。然而,在肯定情形中,在
步骤227,变量,的值被重置为'O,以用于再解码已失败子字。紧随步 骤227之后,解码过程继续进入到步骤228。
在步骤228中,检查在位置,向量^的值(元素v扱)是否等于 '0,。在肯定情形中,在软解码器的情形下,解码过程进入到步骤229; 在硬解码器的情形下,解码过程绕过步骤229并且直接进入到步骤 237。然而,在否定的情形中-解码过程进入到步骤235。在步骤235
中,变量',的值以1进行递增,并且编码过程进入到下一步骤234。
在步骤234中,检查变量7的值是否低于586。在否定的情形中(即
变量^的值等于或大于586),所有元素已被扫描以及解码过程继续 返回以应用步骤222。然而,在肯定情形中(即'/<5銘)-步骤228、225和234被重复直至发现失败子字。
注意步骤229仅在软解码器的情形下才被执行。在软解码器的情 形下,采用被成功解码子字的、迄今为止已更新的JP位和被提供用 于迄今为止已失败子字的、所再构建的隐位的估计,失败子字的隐位 可被再构建。虽然本发明的优选方法釆用异或操作,提供了已失败子 字的、所再构建的隐位的估计,但是在软解码器的情形下其它操作可 以被进一步地考虑。
在硬解码器的情形下,所有其它子字必须成功地被解码。对于范 例情形2,在中间RAM170中所存储的JP位,在利用所有其它被成
功地解码子字而进行更新后,可被用作已失败子字'7隐位的估计。如
果在子字?'的最前ll位中出现两个或多个错误,所更新的JP位仅被
用于已失败子字4/的隐位的估计。注意如果解码子字?"的第二尝试成 功了,那么所更新的JP位就是所再构建的隐位它们自己,而不仅仅 是关于范例情形-2的估计。这是因为在第二解码尝试中的成功意味着 在15-位字中刚好有两个错误。进一步,还因为第一尝试已失败,在 15-位字的最前ll位中刚好有两个错误。因此,15-位字的最后4位没 有错误并且是隐位的恰当再构建。
在步骤237中,对于同时使用硬解码器和软解码器的情形,字々' 从DJIR 200 (参见图4)被读取到双模解码器130 (参见图4)。然 后联合信息从中间RAM 170中被读出。在数据收集器132(参见图5) 中联合信息与字 ,进行组合,以形成修正后的字用于在第二解码模式 的解码器核心134 (参见图5)中进行解码。对于范例情形2,这种组 合操作就只是级联以及第二解码模式就是15, 7, 5]的块解码器。一 旦修正后的字,'/被定位在解码器核心134 (参见图5 )中,状态机138 (参见图5)就在步骤237的最后阶段中启动解码操作。
在步骤230中,检查用于解码字,J的第二尝试是否已成功。在肯 定的情形中,解码过程执行步骤231。在步骤231中,变量'*,的值以 l进行递增,元素^^/的值被设置为'1,,以及代码字^在DJIR200(参 见图4)中进行更新。在软解码器的情形下,在步骤236中,子字7
50的完全地被再构建的隐位与在中间RAM170中所存储的联合奇偶校 验位进行组合,以及被提供用于这些隐位的估计从中间RAM170中被 去除。将完全地被再构建的(由于成功解码)隐位与联合奇偶校验位 进行组合的 一种方式,是通过将隐位与联合奇偶校验位进行位与位地 异或运算。跟随步骤2M (或者在软解码器的情形下步骤236)之后, 解码过程直接进入到步骤233。然而,在否定的情形(即字j的第二 解码已失败)中,解码过程直接进入到步骤233 (或者如果实施软解 码器,进入到步骤232 )。在步骤232中,用于字'/"隐位的所更新的 估计被存储在中间RAM 170中。
在步骤233中,变量'/的值以1进行递增,解码过程返回,以 应用由解码过程所提供的步骤,直到已声称了解码成功(步骤223 ) 或解码失败(步骤226)。
参看图8,示出了关于范例情形1的解码过程的示意性图示240。 由标记242所定义的每个7-位信息向量,被转换为15-位代码字244, 其被表示为G和O。每个这样的15-位代码字244的最前11位246 包含7个信息位242和最前4个奇偶校验位250。这些最前11位246 被写入到闪存设备。每个15-位代码字244的最后4个奇偶校验位252 一起进行位与位地异或运算,以生成以在这里被定义为'F位254的4 个奇偶校验位的集合,这样就提供了第二类奇偶校验位。
参看图9,示出了关于范例情形2的输入CER性能(在x轴上) 与输出SER性能(y轴)的图解性图示260。如在图解性图示260所 示的,由参考方案262 (下面的线)所获得的SER性能仅稍微地区别 于由本发明方案所获得的SER性能(上面的线)。在SER低于10-w 场合中性能上没有实际的差别,虽然本发明的闪存存储器大小远远地 小于参考方案的。
在本发明的设备中,还可能将软解码器实施作为用于字代码的组 件核心代码。软解码器被提供以用于使得例如LDPC (低密度奇偶检 测)、TCM (格状编码调谐)、TURBO编码等组件代码能够使用。
解码过程可以在多个阶段中被执行,而在每个阶段中软解码器对于某个子字,使用通过联合信息(存储在中间RAM中)从其它子字 进所行传播的已更新的信息而被激活。在一般的情形下,软解码器可 以接受包含用于每个更新信息的值的可靠性位的多个位。这意味着被 传送到软解码器的输入位值的表示可以进一步地包含多个位(即如在 以上的范例情形1和范例情形2中所述的,每个更新信息的值不限于 仅包含单个二进制值)。输入位软值可以被看作并且被转换为表示用 于输入位i的二进制值的可靠性等于'O,(或相反地等于'l,)的概率。 在下面的(2.7)中所定义的对数似然比(LLR)通常被用于本 领域已知的编码理论,以表示对于二进制值'O,或T的这些可靠性,按 照下式
Aft")
(2.7)
与通信领域形成对比,这些概率在闪存设备的存储制造过程期间 已预先确定。在闪存设备中的存储单元包括在每个单元中的一组位, 这样单元电压电平对应于表示这组位的符号。因此这些符号的任一集 合可以被定义为信号星座图(constellation)。
闪存设备由于它的物理特征,可以引起几乎任一所写入的电压电 平,以作为不同电压电平而进行读取。以交叉概率&来表示写入电压 电平'r,和读取不同的电平's,的概率。
如上所提到的,由于闪存设备的特定制造过程-这些概率是固定 的给定值。对于二进制值,0,或'1,的输入可靠性可使用包含这些交叉概 率+"的给定常数表,如(2.7)中所示进行计算。
在第一阶段中,软解码器解码每个不相交子字,而"隐奇偶校验 位,,的可靠性被设置为0 (被软解码器识别为擦除)。
一旦成功解码,这些奇偶校验位就被成功地再生。从对数似然比 (LLR)的格式到二进制值的转换按以下方式实现
二进制值在LLR格式中是可靠性的符号位。在成功解码的情形 下,二进制隐值根据应用(在上述的范例情形l和范例情形2中,由 用于编码不相交子字的过程所执行的应用)而被再生。然后,完全地被再生的二进制隐值与从闪存设备所读取的联合信息位进行位与位
地异或运算,参见图7的步骤219和236。结果,这消除了所再生的"二 进制隐值位"对不相交信息位的影响。这是由于这个进程具有异或操 作的特征,其中AXORBXORCXORB-AXORC。
注意,在闪存设备中所存储的联合信息位也包含内在的不可靠 性。因此,如果所有子字除了一个外都被成功地解码,那么对于已失 败解码子字的隐位的再生,使用其它被成功地解码子字的隐位和闪存 设备中所存储的联合信息,仍可能包含源自从闪存设备所读取联合信 息的错误。
如果软解码器失败,输出可靠性仍以用于"隐奇偶校验位,,的 LLR格式而被产生。这些可靠性被存储在中间RAM中。 一旦第一解 码阶段完成,如果所有子代码都被成功地解码,就确定了成功解码进 程。
如果在第一解码阶段中至少一个子字失败,那么附加的解码尝试 由软解码器所执行。对于每个这样的新解码尝试,软解码器使用所更 新的联合信息和从其它已失败子字所获得的可靠性。这样的解码尝试 由在子字之间所执行的"消息传递,,进程(如在图7中的软解码器使用 的情形下,步骤229、 231、 236和232所提到的)而被支持。消息是 指可靠性,其通过中间RAM在子字之间进行传递。
假定执行这个"消息传递,,进程的机制是本发明的本质,因为这个 机制给予了成功解码以克服用于不相交子字的子集的已失败解码事 件,而不需要额外的知识(除了联合信息外)。因为以LLR格式所 获得的可靠性为单个子字贡献了新的外部信息,就可能是这样的情 形,即这个子字将在下一阶段中成功地被解码。
在子字y (先前未能解码)的一般的解码阶段中,其中 > > 气 -软解码器使用所有子字的隐奇偶校验位的子字可靠性(通常以LLR
格式),这样就排除了子字y自身的可靠性的贡献。在解码阶段》'中, 对于子字y的隐奇偶校验位估计的幅值^^和符号值^对于在同一 位置的"隐奇偶校验位,,的每个组而被单独地得到。换句话说,幅值^(amplitude)和符号值7按下式进行计算以用于同一子字的、 且独立于同一子字的其它隐位的每一隐位
单独
(2.8)
其中T'被定义为包含已失败解码子字的隐位和外部更新的'F
位的组。更新的4f位是指在闪存设备中所存储的、由在解码过程中所
有迄今为止被成功解码的子字的再生隐位所更新的位。函数,:可以以
多种方式进行计算,其中之一为
《加A
J。g
加A u
(2.9)
注意,函数^;的一个有用的特性是函数是它自己的负的、可 逆的函数
符号,在这里被定义为以LLR格式进行度量的可靠性的符号, 它由在参与幅值^K计算的同一集合'P上应用异或操作,按照下式
/广
S =卿d
、
,2
(2.11)
其中'F,被定义为上述在式(2.8)中所指出的组。
一旦计算了用于子字》'的隐奇偶校验位的已更新可靠性,同样 的软解码器被再激活用于解码子字》'。解码以及可靠性更新过程被重 复直到成功解码被实现,或直到解码尝试的所预先定义的最大值以及 或解码阶段由解码方案来执行。
成功解码过程包含在RAM中更新子字位Y ,以及在中间RAM 中使用成功地解码子字》'的被再生"隐奇偶校验位"的符号位来更新 联合信息位的步骤。因此,紧随已失败解码尝试之后的是在中间RAM 中更新子字','的隐奇偶校验位的可靠性。虽然作为已失败解码尝试的 结果,更新的可靠性已被获得,但是在同一阶段^'中在解码其它子字 时考虑它们(更新的可靠性)会提高这些其它子字解码的效率。
然后,软解码器进入到解码下一子字直到所有子字被成功地被解
54码,或者直到解码阶段的预先定义的最大值被执行用于某个子代码。
如上所述,中间RAM存储了用于每个失败子字的"隐位,,可靠性。 然而,对于"隐位"的估计配置已减少大小的、包含仅仅一个位(即在 以LLR格式保持可靠性的情形下的符号位)的中间RAM,也是可能
的。在这种情况下,子字y的隐奇偶校验位从其它失败子字的、当前
已估计的隐奇偶校验位中以及从外部已更新4P,位中可被推导出。换 句话说,只是失败子字的隐奇偶校验位的当前估计(即,只是对于J曰F 的^)被存储,而不是失败子字的隐奇偶校验位的可靠性的当前估计 (即,对于^^的 和^)被存储。
本发明的新颖性可以从各种角度看出。从第一角度来看,本发明 公开了一种方法和设备,其通过多次解码较短的代码字以获得成功解 码长代码字。关于上述的范例情形-1,长代码字是[15, 7, 5的块代 码,较短的代码字是[ll, 7, 3的块代码。较短的[ll, 7, 3的块代码 -故解码两次。
这能使本发明的设备避免了与本领域已知的解码器相联系的高 实现复杂性,而且获得了同样的输出BER/SER性能。
根据第一角度,应当认为本领域所已知的种种解码方法,被提供 用于通过成功解码固定大小的子字来解码数据流,这是以与本发明的 类似方式实现的。
例如,需要解码数据流,其中每个代码字有iooo位以及每个这 样的代码字独立于先于它或跟随它的代码字而基于它自身进行解码。 根据本领域已知的解码方法,数据流被解码为N (例如N-4)组代码 字。N组的整个流对于N-4被定义为4000位的单个长代码字。短解 码分别地被应用在每个有1000位的四个短代码字的每一个上,这样 所有短解码的解码数据进行级联以生成长代码字的解码数据。
然而,本发明的方法提供了错误校正编码方案,它不同于以上所 述的现有解码方法,因为本发明的方法进一步还提供了这样的阶段, 即如果短代码字解码失败,根据其它短代码字的解码数据来修改这个 短代码字的解码数据。对于以上所述的范例情形1,这个失败的短代再构建隐位和在闪存设备中所存储的联合奇偶校验(JP)位而进行替 换。
这个阶段在上述的现有方法中完全没有,它提供了本发明众多的 自身优点。 一个这样的优点是在一个或多个短字中克服了解码失败, 因此需要较少的奇偶校验位来保护这些较短的代码字。
本领域已知的其它解码方法是基于在不同短代码字之间的连接。 根据这种通常被称为级联编码方案的方法,由第 一代码进行编码的几 个短代码字被分组到一起,以及由第二代码再次进行编码以生成长代 码字。这样的现有方法根据较长代码字的解码实现仍在编码的短代码 字的修正,然后仅仅解码短代码字。
例如,4个代码字的数据流(包含4, 000位),其中每个基本 代码字有1000位,通过第一代码而被编码为4, 500位的一个长字。 长代码字的解码将需要根据第二代码首先解码长字,然后根据第一代 码分别地解码每个短代码字。
然而,对于范例情形l,本发明的方法不同于这个现有方法,因 为本发明的方法首先解码短代码字,然后根据其它短代码字的解码数 据实现解码数据的修正。
被称为Turbo解码的其它解码方法使用了"Turbo代码",其典 型地利用软解码方法。"Turbo代码,,被定义为前向错误校正技术,由 相级联的代码结构加上迭代反馈算法而组成。通过应用Turbo解码, 同样的数据位可被编码两次或更多次(数据位被交织以在多种编码操 作中具有不同次序),这样代码字就同时包含数据位和由所有编码所 生成的多个奇偶校验位的集合。在编码时,多个编码过程被应用(并 列地或非并列地)。根据多种奇偶校验位集合中的一个所应用的每个 解码过程,从关于同样的、但具有不同奇偶校验位的信息数据的前一 解码阶段中接受外来信息。
前向错误校正技术的优点在于为解码同样数据位所应用的多种 解码过程之间的交互。这种交互提高了解码器的错误校正性能。应用Turbo解码的解码器可以进一步地被配置成根据仅仅一个奇偶校验位 集合来解码数据,这样只有在失败解码的情形下,如上所述,多个奇 偶校验位集合才会被解码。
本发明的方法在多个方面上不同于本领域已知的Turbo解码方 法。首先,在子字自身解码与实现解码字的修改进程之间有明显的分 离。本发明方法分别地解码每个短字,然后只应用解码数据的一部分 影响另一部分的过程。然而,根据Turbo解码方法,解码子字与实现 其它子字修正之间没有明显的分离_两个步骤同时地发生。
其次,根据本发明的方法,每个短字独立于其它短字而进行解码。 因此,解码子字生成解码数据的独立集合。然而根据Turbo解码方法, 所有短字(在典型的并列实现中)或者至少一个短字(在两个阶段的 实现中)同另一短字串接而进行解码,以生成解码位的联合集合。更 进一步地,解码短代码字不需要被识别为"自身的解码数据"(即依赖 于其它代码字)。
第三,根据本发明,多种短代码字是长代码字的不相交子集。然 而,在Turbo解码方法中不能提供这样的实现,其中多个短代码字全 部编码同样的数据位。
从第二角度来看,本发明的创新是通过使用两个编码方案来编码 数据位而改进了错误校正性能,不需要保存所有作为结果的奇偶校验 位,以及依靠奇偶校验位的两个集合之间的关系以使得一个集合"掩 盖了,,其它集合的不足。当从本发明的这一角度来看时,下面的各个 方面应当进行考虑。
a.这个观点的区别特征是计算奇偶校验位多于最终被使用的中 间阶段。这样将人们的注意力吸引到了现有"删截(punctured)"的 方法。在错误校正理论中术语"删截"是指丢弃一些所计算的奇偶校验 位以减少奇偶校验的开销,用已减少的开销来抵消较低的错误校正能 力。然而,在现有技术中所理解的"删截"完全不同于本发明-本发明 使用两个错误校正编码方案作为基础以用于它的操作,而在现有删截 方法中不存在这个特征,其中仅使用单一的编码方案。b.美国专利申请No.10/998, 003,由Dror等所提交的、于2004 年11月29日公布在美国专利申请公开No.2005/0160350、发明名称 为"compact high-speed single-bit error-correction circuit",公开了 一 种错误校正方法,它也在编码阶段期间停止丢弃一些所计算的奇偶校 验信息。Dror等的方法比本发明更接近于上面所讨论的删截方法,因 为Dror等的方法包括两个相分离的计算阶段,其中奇偶校验信息从 仅仅其中一个阶段的结果中被丢弃,表面上和本发明相似。然而,Dror 等的方法不同于本发明,因为以上所述的同样的事实-本发明使用了 两个错误校正编码方案,而这不是在Dror等的方法中的情形。即使 Dror等的方法实现了两个计算阶段,然而每个阶段不是一个错误校正 方案,因为它甚至不能校正它自己的单个错误。两个计算一起仅仅是 提供了用于校正错误的足够的奇偶校验信息,因此两个计算一起仅仅 是构造了 一个错误校正方案。
应当理解的是,虽然本发明涉及了系统性代码,但是本发明方法 可同样地应用于系统性的和非系统性的错误校正代码。根据错误校正 术语,系统性代码被定义为这样一种代码,其中被传送到解码器的每 个输入数据位一对一的对应于在已编码代码字中的匹配位,在删截之 前如果可应用的话,这样已编码代码字位可以被划分为两个不相交部 分-一个包括原始数据位而另一个包括奇偶校验位。从而,非系统性 代码被定义为不能满足上述条件的任何代码(即在非系统性代码中 不可能有这样的明显划分)。
本发明的方法可同样地应用于硬解码和软解码的解码器。根据错 误校正术语,软解码的解码器使用这样的解码过程,即它能接受用于 输入位的可靠性度量、能在解码过程中考虑它们、以及在这个过程中 更新可靠性度量。硬解码器是不满足以上条件的解码器。
虽然如上所述,本发明是基于简单的BCH代码,但是也可以使 用本领域已知的其它编码和解码技术,以实现相似的效率和性能增 益。
更进一步地,由本发明设备所使用的代码结构可以被使用在本领
58域已知的任一这样的设备中,包括数字存储介质、随机读取存储器、
闪存存储器、和EEPROM。术语"存储"和"存储器"在这里可互换地 被使用,以及是指任何这样的存储设备。
应当注意到,当本发明在这里被提供用于闪存存储,本发明的原 理可以被修改而使用,为诸如通信系统(无线的、有线的、有线电话 系统、卫星、蜂窝电话,包括DSL、 DVBS、 3G、 4G、 CDMA2000, 802.11和802.16的变型等)和信号处理(视频和^L频应用)等其它类 型应用提供便利。
如果解码过程的第一阶段不充分,緩存器可以在本领域已知的通 信系统中被进一步地实现,以为进一步地解码尝试的临时激活而保存 数据。然而,可以是这样的情形,即不需要额外的緩存器,因为当解 码单元空闲时这样的緩存器可能已经在通信系统的其它部分被使用 了。
可以理解的是,有关对于错误校正编码方案的任何方法和设备的 其它实现也可能是在本发明的范围内。
已经相对于某些特定的实施方式描述了本发明,但是应当理解的 是,这种描述不意味着限制,因为进一步的修改将会被所属领域的技 术人员所领悟,所以进一步的修改应包含在所附的权利要求的范围内。参考文献 Shannoiij "A mathematical theory of communications" Bell System Telephone Journal,
Vol. 27, 1948, pt. I, pp. 379-423; pt II pp.623-656. [2] M. G. L勿,M. Mitzenmacher, M. A. Shokrollahi and D. A. Spielm叫"Improved low
density parity-check codes using irregular graphs and belief propagation,"尸roc. o/快e
iE五五Jhf. S!>7w;7. o" J"/ 2Tzeo 7 「/S7r人p. 117,1998. [3〗IL G. Gallager, "Low-density parity-check codes," ZR£ 7>cms. 7h/o. 7Tieo':v, vol. IT-8, pp.
21-28, 1962. T. J. Richardson and R. Urbanke, "The capacity of low-density parity-check codes under message passing decoding," ZE5五Thmy. /",w. 7T eo", vo.47, pp. 599-618, 2001. C. Berron, A. Glavieux, and P. Thitimajshimaj 'Wear Shannon limit error correcting coding and decoding: Turbo codes," in IEEE Int. Conf. on Communications, 1993, pp. 1064-1070. T. J. Richardsonj A. Shokrollahi and It Urbanke, "Design of c叩acity approaching low-density parity-check codes," IE£E Thms. Z72eo", vol. 47, pp. 619(637,2001. E.Sharonj S.Litsyn, J.Goldberger "An Efficient Message-Passing Schedule for LDPC Decoding," in proc, 23rd IEEE Convention in Tel-Aviv, Israel, pp. 223-226, September 6-7, 2004. R. M. Tanner, "A recursive approach to low complexity code" /EEE 7Va肌on J"/o.
77ieoo>, vol. 27(5), pp. 533-547,1981. [10] J, Zhang and M. Fossorier, "Scheduled belief propagation decoding," 7Tie Proceecf!'"gs
3础血7ofnar Co—柳ce cm S!'gn。&,办Wem51 C卿戶fens, fic Grove, USA, vol. 1 ,
pp.8-15, 2002. Mustafa Eroz, Feng-Wen S叫Lin-Nan Lee, "Method and apparatus for providing reduced memory low density parity check codes". The direct TV group, INC., US Patent Application Publication No. 2005/0091565 Al, Apr. 28,2005[13] Mustafa Eroz, Feng-Wen S叫Lin-Nan Lee, "Method and system for providing long and
short block length low density parity check codes". The difect TV group, INC., US Patent
Application Publication No. 2005/0091570 Al, Apr. 28, 2005 [14] Mustafa Eroz, Feng-Wen S叫Lin-Nan Lee, "Encoding low density parity check codes
through an LDPC decoder". The direct TV group, INC., US Patent Application
Publication No. 2005/0003756 Al, Jan. 6, 2005 [15〗Richardson, et al. "Methods and apparatus for decoding LDPC codes", US Patent No.
6,633,856, Flarion Technologies, Inc. (Bedminister, NJ), October 14,2003. [16J Error-correcting codes , second edition, W. Wesley Peterson E丄Weldon. [17] Elwyn R Berlekamp / Algebraic Coding Theory, Revised 1984 Edition^ [18] Error-Correcting Codes and Finite Fields / Oliver Pretzel R.E.Blahutj Theory and Practice of Error-Correcting codes, Addison-Wesley, 1983. W.G.Chambers, R.E.Peile, K.Y.Tsie, and N.Zeii^ An algorithm for solving the Welch-
Berlekamp key-equation with a simplified proof, Electronic Letters, vol.29, 1993,
pp.1620-1621. V.Guruswami and MSud叫Improved decoding of Reed-Solomon and Algebraic-Geometry codes, IEEE T認s. Inform. Theory, 6, 1999, pp.1757—1767. D.Mandelbaum, Decoding of erasures and errors for certain RS codes by decreased redundancy,正EE Trans. Inform. Theory, voI.28, 2, 1982, pp.330—336, J.L.Massey, Shift-register synthesis and BCH decoding,正EE Trans. Inform. Theory, vol.15, 1969,pp.l22-127.
[24〗W.Peterson, and W.Weldon, Error Correcting Codes, 1974.
〖25〗L.Welch and E.R.Berlekamp, Error correction for algebraic block codes, US Patent No. 4,633,470, 1983.
权利要求
1、一种解码代码字表示的方法,所述方法包括以下步骤(a)由代码字表示生成多个子字,以便每个所述子字的位都是代码字表示的位的合适子集;(b)根据每个子字的位单独地解码它自己,以生成相应的解码子字;以及(c)如果所述子字中的一个的所述解码失败,就修正相应于这个解码失败的所述子字的所述解码子字,由此产生一个已修正的解码子字,所述修正至少是部分地根据至少一个成功地解码的子字的所述对应解码子字。
2、 根据权利要求l的方法,进一步地包括以下步骤(d) 如果所述子字中的一个的所述解码失败将来自所述已修解码子字的数据进行組合。
3、 根据权利要求2的方法,其中来自所述已修正的解码子字的 数据与来自所有所述成功地解码的子字的所述相应解码子字的数据 的所述的组合,由包括组装来自所述已修正的解码子字的数据与来自 所有所述成功地解码的子字的所述相应解码子字的数据的步骤来实 现。
4、 根据权利要求l的方法,其中所述子字是不相交的。
5、 根据权利要求l的方法,其中所述子字包含同样数目的位。
6、 一种用于解码M位字的装置,包括 (a)用于解码N〈M位字的解码器;以及(b )用于分别地将所述解码器应用到每个从M位字中所选出的 N位不同子集的机制,所述解码器的每个所述应用单独地依赖于每个 所述应用被用于的所述N位,每个所述应用生成相应的解码数据,以 便至少部分地根据所述应用的所述相应解码数据生成M位字的最终 解码数据,其中如果所述应用中的一个失败,那么所述机制会至少 部分地根据至少一个成功应用的所述相应解码数据,来实现所述已失 败应用的所述相应解码数据的修正。
7、 根据权利要求6的装置,其中所述子集是不相交的。
8、 一种用于解码M位字的装置,包括(a)多个用于各自解码N〈M位字的解码器;以及 (b )用于分别地将所述的多个解码器的每一个应用到每个从M 位字中所选出的N位的不同子集的机制,所述多个解码器每一个的每 个应用单独地依赖于每个所述应用被应到的所述N位,每个所述应用 生成相应的解码数据,以便至少部分地根据所述应用的所述相应解码 数据生成M位字的最终解码数据,其中如果所述解码器中的一个 失败,那么所述机制会至少部分地根据至少一个已取得成功的所述解 码器的所述相应解码数据,来实现所述已失败解码器的所述相应解码 数据的修正。
9、 根据权利要求8的装置,其中所述子集是不相交的。
10、 一种提供用于数据位错误校正的方案的方法,所述方法包括 以下步骤(a) 根据第一编码方案编码数据位以生成第一奇偶校验位组;(b) 根据第二编码方案编码数据位以生成第二奇偶校验位组;(c )将所述第二奇偶校验位组转换为一个奇偶校验位的聚缩组,其中,所述转换是多对一的;以及(d )通过将所述第一奇偶校验位组与所述聚缩组奇偶校验位相 组合以生成一个用于数据位的奇偶校验位最终组。
11、 根据权利要求10的方法,其中所述第一奇偶校验位组与所述奇偶校验位的聚缩组的所述组合,由包括组装所述第一奇偶校验位 组的至少一部分和所述奇偶校验位的聚缩组的步骤来实现。
12、 根据权利要求10的方法,其中所述转换步骤包括对所述第 二奇偶校验位组的多个子组进行异或运算。
13、 一种提供用于数据位错误校正的方案的方法,所述方法包括 以下步骤(a)从数据位中生成多个位的子组,这样每个数据位在所述多 个子组中至少出现一次;(b )根据相应的第一编码方案对所述多个子组的每个子组进行 编码,以对于每个所述子组生成相应的、至少一个的第一奇偶校验位;(c )根据相应的第二编码方案对所述多个子组的每个子组进行 编码,以对于每个所述子组生成相应的、至少一个的第二奇偶校验位;(d) 将所有所述多个子组中的所有的所述至少一个第二奇偶校 验位转换成联合的聚缩奇偶校验位,其中所述转换是多对一的;以及(e) 通过将所有所述多个子组中的所有的所述至少一个笫一奇 偶校验位与所述的联合聚缩奇偶校验位相组合,以生成一个用于数据 位的奇偶校验位最终组。
14、 根据权利要求13的方法,其中所述多个子组中的所有的所 述至少一个第一奇偶校验位与所述的联合聚缩奇偶校验位的所述组 合,由包括的组装所述多个子组中的所有的所述至少一个第 一奇偶校 验位和所述的联合聚缩奇偶校验位的步骤来实现。
15、 根据权利要求13的方法,其中每个数据位只在所述多个子 组中出现一次。
16、 根据权利要求13的方法,其中至少有一个数据位在所述的 多个子组中至少出现两次。
17、 根据权利要求13的方法,其中所述的多个子组有相同的大小。
18、 根据权利要求13的方法,其中所述的多个子组的至少一个 子组,所述相应第一编码方案和所述相应第二编码方案通过使用通常 的编码方法就可被获得,这样所述相应第一编码方案根据第一顺序对 所述至少一个子组的位进行编码,以及所述相应第二编码方案根据第 二顺序进行编码。
19、 根据权利要求13的方法,其中所有所述的多个子组根据通 常的、所述第一编码方案而^L编码。
20、 根据权利要求13的方法,其中所有所述的多个子组根据通 常的、所述第二编码方案而被编码。
21、 根据权利要求13的方法,其中所述转换步骤包括将相应于 所述子组中的一个的所迷至少一个笫二奇偶校验位与相应于所述子 组中的另一个的所述至少一个第二奇偶校验位进行异或运算。
22、 一种提供用于数据位错误校正的方案的方法,所述方法包括 以下步骤(a)从数据位中生成多个位的子组,这样每个数据位在所述多 个子組中至少出现一次;(b) 使用相应的编码方案对所述多个子组的每个子组进行编码, 以对于每个所述子组生成相应的、至少一个奇偶校验位;(c) 对于每个所述子组,从所述每个子组的所述位和每个所述 子组的所述相应的至少一个奇偶校验位中选出一个相应的所选子集;(d) 将所有所述多个子组中的所述所选子集转换成联合聚缩所 选位,其中所述转换是多对一的;(e )通过将每个所述子组的所述位与每个所述子组的所述相应 的至少一个奇偶校验位相组合,以对于每个所述子组生成一个相应的 被缩短的代码字,然后将每个所述子組中的所述相应所选子集的位去 除;以及(f)通过将所有所述多个子组的所述相应的被缩短的代码字与 所述联合聚缩所选位相组合,以生成用于数据位的代码字。
23、 根据权利要求22的方法,其中每个所述子组的所述位和每 个所述子组的所述相应的至少一个奇偶校验位的所述组合,通过包括 组装每个所述子组的所述位和每个所述子组的所述相应的至少一个 奇偶校验位的步骤而实现。
24、 根据权利要求22的方法,其中所述多个子组的所述相应的 被缩短的代码字与所述联合聚缩所选位的所述組合,通过包括组装所 述多个子组的所有所述相应的被缩短的代码字与所述联合聚缩所选 位的的步骤而实现。
25、 根据权利要求22的方法,其中每个数据位在所述多个子組 中只出现一次。
26、 根据权利要求22的方法,其中至少一个数据位在所述多个 子组中至少出现两次。
27、 根据权利要求22的方法,其中所述的多个子组有相同的大小。
28、 根据权利要求22的方法,其中所述的多个子组根据通常的 所述编码方案而被编码。
29、 根据权利要求22的方法,其中所述的转换步骤包括将相应 于所述子组中的一个的所述所选子集的位与相应于所述子组中的另 一个的所述所选子集的位进行异或运算。
30、 一种提供用于数据位错误校正的方案的方法,所述方法包括 以下步骤(a)从数据位中生成多个位的子组,这样每个数据位在所述子 组中至少出现一次;(b )使用相应的编码方案对所述多个子组的每个子组进行编码, 以对于每个所述子组生成相应的代码字;(c)对于每个所述子组,从所述相应代码字的位中选择一个相 应的所选子集;(d )将所有所述相应代码字中所述相应所选子集转换成联合聚 缩所选位,其中所述转换是多对一的;(e) 通过去除相应于每个所述相应代码字的所述所选子集的位, 以生成用于每个所述相应代码字的相应被缩短代码字;以及(f) 通过将所有所述多个子组中的所述相应的被缩短代码字与 所述联合聚缩所选位相组合以生成用于数据位的代码字。
31、 根据权利要求30的方法,其中所述多个子组的所述相应的 被缩短的代码字与所述联合聚缩所选位的所述组合,通过包括组装所 述多个子組的所有所述相应的被缩短的代码字与所述联合聚缩所选 位的步骤而实现。
32、 根据权利要求30的方法, 中只出现一次。
33、 根据权利要求30的方法, 子组中至少出现两次。
34、 根据权利要求30的方法,小。
35、 根据权利要求30的方法, 所述编码方案而被编码。其中每个数据位在所述多个子组 其中至少一个数据位在所述多个 其中所述的多个子组有相同的大 其中所述的多个子组根据通常的
36、 根据权利要求30的方法,其中所述的转换步骤包括将相应 于所述子组中的一个的所述所选子集的位与相应于所述子组中的另 一个的所述所选子集的位进行异或运算。
37、 一种解码代码字表示的方法,这个表示包括M个数据位和 P个奇偶校验位,所述方法包括以下步骤(a )将P个奇偶校验位划分成第一奇偶校验位组和第二奇偶校 验位组;(b .)仅仅使用所述第一奇偶校验位组对M个数据位进行解码以 提供校正的数据位;以及(c)如果仅仅使用所述第一奇偶校验位组的所述解码失败,那 么使用所述第一奇偶校验位组和所述第二奇偶校验位组对M个数据 位进行解码以提供校正的数据位。
38、 一种解码包括M个数据位和P个奇偶校验位的代码字表示 的方法,所述方法包括以下步驟(a)将M个数据位划分成IOl个子集,其中,M个数据位的 每个在所述K个子集中至少出现一次;(b )将P个奇偶校验位划分成第一奇偶校验位组和第二奇偶校 验位组;(c)将所述第一奇偶校验位組划分成K个子集,所述第一奇偶 校验位组的每个所述子集对应于M个数据位的各自子集;(d )根据所述第一奇偶校验位组的所述相应子集对M个数据位 的每个所述子集进行解码,以生成M个数据位的所述每个子集的解 码数据;(e) 如果M个数据位的所述K个子集中的一个解码失败那 么至少部分地根据所述第二奇偶校验位组对所述一个子集进行解码, 以生成所述一个子集的所述解码数据;以及(f) 将M个数据位的所有所述K个子集的所述解码数据相组合, 以生成用于M个数据位的总的解码数据。
39、 根据权利要求38的方法,其中M个数据位的所有所述K 个子集的所述解码数据的所述组合,通过包括组装M个数据位的所 有所述K个子集的所述解码数据的步骤而实现。
40、 根据权利要求38的方法,其中M个数据位的所述K个子 集是不相交的。
41、 根据权利要求38的方法,其中M个数据位的所述K个子 集有相同的大小。
42、 根据权利要求38的方法,其中以及所述每个子集的数据位 的所述解码根据所述第 一奇偶校验位组采用相应的第 一解码方案,以 及其中所述一个子集的数据位的所述解码,其解码失败,就根据所述 第二奇偶校验位组采用相应的第二解码方案。
43、 根据权利要求42的方法,其中对于M个数据位的所述K 个子集的至少一个,所述对应的第一解码方案和所述对应的第二解码 方案使用通常的解码方法。
44、 根据权利要求42的方法,其中所有所述第一解码方案都是 相同的。
45、 根据权利要求42的方法,其中所有所述第二解码方案是相同的。
46、 一种解码来自有N>M个位的代码字表示的M个数据位的 方法,所述方法包括以下步骤(a)从N个位中去除至多N-M位的所选子集,因此产生了剩 余位的集合;(b )将所述剩余位划分成K>1个剩余位的子集,其中每个所述 剩余位是K个子集中至少一个的组成;(c )仅仅根据所述每个子集的位对所述K个子集的每个进行解码,以生成所述每个子集的解码数据;(d)如果所述K个子集的一个的所迷解码失败,那么至少部分地根据所述被去除的所选子集对所述一个子集进行解码以生成所述一个子集的所述解码数据;以及(e )将所有所述K个子集的所述解码数据相组合以生成用于M 个数据位的总解码数据。
47、 根据权利要求46的方法,其中所有所述K个子集的所述解 码数据的所述组合,通过組装所有所述K个子集的所有所迷解码数据 来实现。
48、 根据权利要求46的方法,其中所迷K个子集是不相交的。
49、 根据权利要求46的方法,其中所述K个子集有相同的大小。
50、 根据权利要求46的方法,其中所述每个子集的数据位的所 述解码根据所述每个子集的所述位,包含采用了相应的第一解码方案,以及其中所述一个子集的数据位的所述解码,其解码失败,就根据所述被去除的所选子集包含采用了相应的第二解码方案。
51、 根据权利要求50的方法,其中对于所述K个子集的至少一 个,所述对应的第一解码方案和所述对应的第二解码方案使用通常的 解码方法。
52、 根据权利要求50的方法,其中所有所述第一解码方案都是 相同的。
53、 根据权利要求50的方法,其中所有所述第二解码方案是相同的。
全文摘要
要被编码的数据位被分解为多个子组。每个子组分别地被编码以生成相应的子代码。所选子集从相应的代码字中被去除以,留下了被缩短的代码字,以及多对一地被转换为聚缩位。最终的代码字是被缩短的代码字和聚缩位的组合。最终代码字的表示通过被划分成所选子集和多个剩余子集而被解码。每个剩余子集分别地被解码。如果解码中的一个失败了,那么其解码失败的剩余子集至少部分地根据所选子集进行解码。如果解码和编码是系统性的,那么所选子集就是奇偶校验位。
文档编号H03M7/00GK101611549SQ200680042594
公开日2009年12月23日 申请日期2006年11月13日 优先权日2005年11月15日
发明者E·沙龙, I·奥罗德, M·拉瑟, S·里斯特杨 申请人:特拉维夫大学拉莫特有限公司