1.本发明涉及使用奇偶校验数据保护数据免受损坏,具体涉及使用级联纠错码保护数据。
背景技术:2.许多数据通信或存储系统共同的一个问题是数据损坏,例如,由于通信信道或存储系统中的写入/读取过程中的噪声。一种解决数据损坏的技术是使用纠错码(ecc)或前向纠错(fec)码。ecc和fec将冗余数据或奇偶校验数据添加到用户数据,以便即使例如在存储器上传输或损坏过程中引入了许多误码(取决于所使用的代码的能力),也可以由接收器或读取器恢复用户数据。
3.多年来,已经开发了许多不同的编码方案,例如汉明码(hamming codes)、里德-所罗门码(reed-solomon codes)、turbo码等。最近,低密度奇偶校验(ldpc)码由于其出色的纠错能力而被广泛使用。然而,ldpc码有一个众所周知的差错平台(error floor)的问题。一种降低ldpc码的差错平台的方法是最小化奇偶校验矩阵(例如:陷阱集,停止集,吸收集)中导致差错平台的有害图模式的数量。此外,由于准循环(quasi-cyclic)特性使硬件实现更容易,因此使用了准循环ldpc码。但是差错平台很难通过代码构造来消除,并且ldpc解码器的收敛速度对系统吞吐量有巨大影响。
技术实现要素:4.本发明的系统和方法提供了一种新的ecc方案,以降低低密度奇偶校验(ldpc)码(例如,准循环(quasi-cyclic)ldpc码)的差错平台并提高ldpc解码器的收敛速度。该编码方案可以包括bose-chaudhuri-hocquenghem(bch)码和qc-ldpc码的级联,并且可以通过涉及ldpc解码器和bch解码器两者的迭代级联解码过程对编码的码字进行解码。在各种实施例中,在迭代ldpc解码过程的每次迭代之后,可以使用bch调度器来决定是否可以激活bch解码器以处理ldpc解码器的中间解码结果。所述bch解码器的解码结果可以馈送给ldpc解码器,用于下一次ldpc解码迭代。
5.在一些实施例中,bch解码器可以被配置为执行bch解码。在一些其他实施例中,bch解码器可以被简化为用于计算bch误码检测的bch校验子的校验子计算器。级联ecc方案可以降低任何ldpc解码算法的差错平台,并可以用于加速任何ldpc解码算法(例如,bp、最小和(min-sum)、bf等)的收敛。在至少一个实施例中,级联ecc方案在固态驱动器(ssd)控制器中实现。
6.在一个示例性实施例中,提供了一种方法,该方法可以包括:从非易失性存储设备读取低密度奇偶校验(ldpc)码字的比特;将从所述非易失性存储设备读取的ldpc码字的比特馈送到ldpc解码器;并且通过在迭代ldpc解码过程中插入一个或多个bose-chaudhuri-hocquenghem(bch)解码过程来对所述ldpc码字执行迭代级联解码过程。所述ldpc码字可以通过ldpc编码bch码字产生,并且bch码字可以通过bch编码数据单元产生。所述迭代级联解
码过程的迭代可以包括:对所述ldpc码字执行所述迭代ldpc解码过程的ldpc解码迭代,以产生中间ldpc解码结果;确定所述中间ldpc解码结果的ldpc校验子未达到零;使用bch调度器确定是否满足bch解码的触发条件,当满足所述bch解码的触发条件时,对所述中间ldpc解码结果执行bch解码过程;当不满足所述bch解码的触发条件或bch解码过程已被执行但未成功解码bch码字时,执行所述迭代级联解码过程中的下一次迭代。
7.在另一个示例性实施例中,提供了另一种方法,该方法可以包括:从非易失性存储设备读取低密度奇偶校验(ldpc)码字的比特,将从所述非易失性存储设备读取的ldpc码字的比特馈送到ldpc解码器,并通过在迭代ldpc解码过程中插入一个或多个bose-chaudhuri-hocquenghem(bch)校验子计算过程来对所述ldpc码字执行迭代级联解码过程。所述ldpc码字可以通过ldpc编码bch码字产生,并且所述bch码字可以通过bch编码数据单元产生。所述迭代级联解码过程的迭代可以包括:对所述ldpc码字执行所述迭代ldpc解码过程的ldpc解码迭代,以产生中间ldpc解码结果;确定所述中间ldpc解码结果的ldpc校验子未达到零;使用bch调度器确定是否满足bch校验子计算的触发条件,当满足所述bch校验子计算的触发条件时,对所述中间ldpc解码结果计算用于bch误码检测的bch校验子,并且当不满足所述bch校验子计算的触发条件或所述bch校验子未达到零时,执行所述迭代级联解码过程中的下一次迭代。
8.在又一个示例性实施例中,提供了一种装置,该装置可以包括:低密度奇偶校验(ldpc)解码器,其被配置为对ldpc码字的比特执行迭代ldpc解码过程;耦合到所述ldpc解码器的bose-chaudhuri-hocquenghem(bch)解码器;以及耦合到所述ldpc解码器和所述bch解码器的bch调度器。所述ldpc码字可以通过ldpc编码bose-chaudhuri-hocquenghem(bch)码字产生,并且所述bch码字可以通过bch编码数据单元产生。所述bch调度器可以被配置为在所述迭代ldpc解码过程中的每次迭代之后确定是否满足所述bch解码器的触发条件,并且如果满足所述bch解码器的所述触发条件,则激活所述bch解码器以对所述ldpc解码器的中间解码结果进行操作。附图简要说明
9.图1示意性地示出了根据本发明的一个实施例的非易失性存储控制器。
10.图2示意性地示出了根据本发明的一个实施例的编码数据路径。
11.图3是根据本发明的一个实施例的用于执行级联ecc的过程的流程图。
12.图4示意性地示出了根据本发明的一个实施例的迭代级联解码过程。
13.图5是根据本发明的另一个实施例的用于执行级联ecc的过程的流程图。
14.图6示意性地示出了根据本发明的另一个实施例的迭代级联解码过程。
具体实施方式
15.现在将参照附图详细描述根据本发明的具体实施例。为了一致性,各种附图中的相似元件由相似的参考数字表示。
16.图1示意性地示出了根据本发明的一个实施例的非易失性存储控制器100。非易失性存储控制器100可以包括处理器102、ecc引擎104、第一接口106和第二接口108。第一接口106可以是任何现有的或尚待开发的接口,其被配置为将非易失性存储控制器100耦合到主机计算机系统的系统总线,并从主机计算机系统接收数据并将数据发送到主计算机系统。
在一个实施例中,例如,第一接口106可以是外围组件互连express(pcie)接口。第二接口108可以是被配置为将存储控制器100耦合到一个或多个非易失性存储存储器(nvm)设备的任何现有的或尚待开发的接口。在一个实施例中,第二接口108可以是多通道接口,其可以被配置为并行地在多个通道上传输编码数据(例如,ecc码字)。例如,第二接口108可以是开放nand闪存接口(onfi),其可以支持不同的协议(例如,非易失性双倍数据速率(nvddr)、nvddr类型2(nvddr2)、nvddr类型3(nvddr3)),或者可能是toggle协议,并且以不同的传输速度运行。
17.处理器102可以是配置为执行可执行指令(例如,软件或固件)的微控制器单元(mcu)。在各种实施例中,处理器102可以是微处理器、微控制器、现场可编程门阵列(fpga)或专用集成电路(asic)。非易失性存储控制器100可以经由第一接口106从主机接收命令,例如,以将数据存储到非易失性存储系统(例如,写入命令)或读取存储在非易失性存储系统中的数据(例如,读取命令)。
18.ecc引擎104可以包括用于执行bch编码和ldpc编码的编码器,例如bch编码器110和ldpc编码器112。ecc引擎104还可以包括解码器,例如bch解码器118和ldpc解码器114。ldpc解码器114可以被配置为执行迭代ldpc解码过程,例如但不限于比特翻转或消息传递算法(mpa)(例如,和积算法(“spa”)、最小和算法、随机解码算法)。在一些实施例中,准循环(quasi-cyclic)ldpc码可用于ldpc编码。
19.ecc引擎104还可以包括耦合到ldpc解码器114和bch解码器118的bch调度器116。在ldpc解码过程中的每次迭代之后,ldpc解码过程的一些信息可以从ldpc解码器114传递到bch调度器116。bch调度器的输入可以包括以下的一个或多个:ldpc迭代次数、ldpc列索引、ldpc层索引、ldpc校验子、ldpc解码迭代中的翻转比特的数量、以及先前ldpc解码迭代中的翻转比特的数量。
20.ecc引擎104可以被配置为通过在迭代ldpc解码过程中插入一个或多个bch解码过程(或bch校验子计算过程)来执行迭代级联解码过程。在一些实施例中,该迭代级联解码过程的迭代可以包括:对ldpc码字执行迭代ldpc解码过程的ldpc解码迭代,以产生中间ldpc解码结果,确定该中间ldpc解码结果的ldpc校验子未达到零,使用bch调度器116确定是否满足bch解码(或bch校验子计算)的触发条件,当满足bch解码(或bch校验子计算)的触发条件时激活bch解码器118,并且当不满足bch解码(或bch校验子计算)的触发条件时,或者虽然bch解码器118被激活但是bch解码器118的bch解码不成功(或bch误码检测报告误码)时,执行迭代级联解码过程中的下一次迭代。如果执行bch解码,则bch解码结果可以从bch解码器118馈送到ldpc解码器114。
21.在一些实施例中,bch解码器118可以简化为用于bch误码检测的bch校验子计算器,而不是用于bch解码的完整版本的bch解码器。在这些实施例中,bch解码的触发条件可以由bch校验子计算的触发条件代替。在任一种情况下,触发条件可被称为激活bch解码器118的触发条件或bch解码器118的触发条件。在一个实施例中,bch解码器118的触发条件可以是当前ldpc迭代中的翻转比特的数量为零并且ldpc校验子大于零。在另一实施例中,bch解码器118的触发条件可以是ldpc校验子中“1”的数目小于预定阈值(例如,64)。在又一实施例中,bch解码器118的触发条件可以是当前ldpc迭代中的翻转比特的数量和先前ldpc迭代中的翻转比特的数量均小于阈值。在另一实施例中,bch解码器118的触发条件可以是当
前ldpc迭代次数不小于预定阈值。
22.图2示意性地示出了根据本发明的一个实施例的编码数据路径。由级联ecc方案保护的数据(例如,数据单元202)可以由bch编码器110编码。bch码字208可以由bch编码器110产生,bch码字208可以包括数据单元202和bch奇偶校验单元204。然后可以由ldpc编码器112对bch码字208进行编码。ldpc码字210可以由ldpc编码器112产生。ldpc码字210可以包括数据单元202、bch奇偶校验单元204和ldpc奇偶校验单元206。ldpc码字210可以存储在非易失性存储设备中,例如,非易失性存储器(nvm)设备。在一些实施例中,一个ldpc码字可以通过ldpc编码多个bch码字产生。此外,在一些实施例中,一个ldpc码字可以被分散以被存储在一个或多个nvm设备的多个裸片(die)上。
23.图3是根据本发明的一个实施例的执行级联ecc解码的过程300的流程图。在框302中,可以从非易失性存储设备读取低密度奇偶校验(ldpc)码字的比特。这些比特可能包含误码,并且可以被称为原始比特。该ldpc码字可以通过ldpc编码bose-chaudhuri-hocquenghem(bch)码字产生,并且该bch码字可以通过bch编码数据单元产生。在一些实施例中,可以由ldpc编码一起编码多个bch码字以产生一个ldpc码字。在框304中,从非易失性存储设备读取的ldpc码字的比特可以被馈送到ldpc解码器。例如,可以向ldpc解码器114馈送从nvm读取的原始比特,并且对从nvm读取的这些比特开始ldpc解码。在框306中,可以对ldpc码字执行迭代级联解码过程。ldpc解码器114可以被配置为执行迭代ldpc解码过程,并且一个或多个bch解码过程可以被插入到迭代ldpc解码过程中。在一些实施例中,bch解码器118可以是完整(full-fledged)bch解码器,并且bch解码过程可以由完整bch解码器执行。
24.图4示意性地示出了根据本发明的一个实施例的迭代级联解码过程400。迭代级联解码过程400的迭代可以在框402开始,其中可以对ldpc码字执行迭代ldpc解码过程的ldpc解码迭代以产生中间ldpc解码结果。在框404中,可以确定中间ldpc解码结果的ldpc校验子没有达到零。在框406中,可以使用bch调度器来确定是否满足bch解码的触发条件。在框408中,当满足bch解码的触发条件时,可以对中间ldpc解码结果执行bch解码过程。例如,在bch解码器118是完整bch解码器的实施例中,可以由bch解码器118执行完整bch解码过程(包括bch解码和bch校验子计算)。
25.在框410中,当不满足bch解码的触发条件或bch解码过程已被执行但bch解码不成功时,可以执行迭代级联解码过程中的下一次迭代。如果满足两个条件中的任一个,则迭代级联解码过程可以继续到下一次迭代。一个条件是激活bch解码器的触发条件不被满足,那么迭代级联解码过程可以开始下一次ldpc迭代。另一个条件是bch解码器被激活但bch解码不成功。也就是说,bch解码器尚未成功地解码bch码字,因此需要迭代级联解码过程的下一次迭代。
26.图5是根据本发明的另一实施例的用于执行级联ecc解码的过程500的流程图。在框502中,可以从非易失性存储设备读取低密度奇偶校验(ldpc)码字的比特。这些比特可能是包含误码的原始比特。该ldpc码字可以通过ldpc编码bose-chaudhuri-hocquenghem(bch)码字产生,并且该bch码字可以通过bch编码数据单元产生。在一些实施例中,可以由ldpc编码一起编码多个bch码字以产生一个ldpc码字。在框504中,从非易失性存储设备读取的ldpc码字的比特可以被馈送到ldpc解码器。例如,可以向ldpc解码器114馈送从nvm读
取的原始比特,并且对从nvm读取的这些比特开始ldpc解码。在框506中,可以对ldpc码字执行迭代级联解码过程。ldpc解码器114可以被配置为执行迭代ldpc解码过程。在一些实施例中,bch解码器118可以是仅包含用于bch误码检测的bch校验子计算器的简化版本,并且一个或多个bch校验子计算过程可以被插入到迭代ldpc解码过程中。所述一个或多个bch校验子计算过程中的每一个可以计算用于bch误码检测的bch校验子。
27.图6示意性地示出了根据本发明的一个实施例的迭代级联解码过程600。迭代级联解码过程600的迭代可以在框602开始,其中可以对ldpc码字执行迭代ldpc解码过程的ldpc解码迭代以产生中间ldpc解码结果。在框604中,可以确定中间ldpc解码结果的ldpc校验子没有达到零。在框606中,可以使用bch调度器确定是否满足bch校验子计算的触发条件。在框608中,当满足bch校验子计算的触发条件时,可以对中间ldpc解码结果计算用于bch错误检测的bch校验子。在bch解码器118是包含bch校验子计算器但没有其他bch解码电路的简化版本的实施例中,bch校验子计算器可以计算用于bch误码检测的bch校验子。
28.在框610中,当不满足bch校验子计算的触发条件或者用于bch误码检测计算的bch校验子没有达到零时,可以执行迭代级联解码过程中的下一次迭代。如果满足两个条件中的任一个,则迭代级联解码过程可以继续到下一次迭代。一个条件是不满足bch校验子计算的触发条件,则迭代级联解码过程可以开始下一次ldpc迭代。另一个条件是满足bch校验子计算的触发条件,但是用于bch误码检测计算的bch校验子未达到零。也就是说,在ldpc解码过程之后,bch码字的数据单元仍然包含误码并且尚未成功恢复,因此需要迭代级联解码过程的下一次迭代。
29.应当注意,第一次迭代可以以从nvm设备获得的原始比特开始,但是后续迭代可以对先前的解码结果进行操作。并且,如果执行bch解码过程,则下一次ldpc迭代可以对由bch解码过程产生的解码结果执行操作。每当ldpc校验子在ldpc解码迭代之后达到零或bch校验子达到零(例如,在bch解码过程或bch误码检测之后)时,就可以实现解码成功。迭代级联解码过程可以具有预设的最大迭代次数。当迭代级联解码过程已经达到最大迭代次数但是仍然没有成功完成解码时,可以声明解码失败。
30.在一些实施例中,ldpc解码器114可以是迭代解码器,并且bch解码过程可以插入到多次ldpc迭代之间。只要中间ldpc解码结果的数据部分中的剩余误码的数量小于bch的解码能力,则可以通过bch解码器对数据部分进行校正,而不是等待ldpc解码器继续ldpc解码过程。通过在ldpc解码器的迭代中引入bch误码解码,可以提高ldpc解码器的收敛速度。相反,如果bch解码器没有被激活,则ldpc解码器可以在未来的迭代中校正这些剩余误码,或者ldpc解码器在完成预设的最大迭代次数之后不能修复这些误码。在这两种情况下,解码过程可能引入更长的延迟。因此,根据本发明的实施例可以比常规解码过程更早地获得解码成功,并且可以尽快终止解码过程。
31.在一个示例性实施例中,提供了一种方法,该方法可以包括从非易失性存储设备读取低密度奇偶校验(ldpc)码字的比特;将从所述非易失性存储设备读取的ldpc码字的比特馈送到ldpc解码器;并且通过在迭代ldpc解码过程中插入一个或多个bose-chaudhuri-hocquenghem(bch)解码过程来对所述ldpc码字执行迭代级联解码过程。ldpc码字可以通过bch编码码字产生,bch码字可以通过bch编码数据单元产生。所述迭代级联解码过程的迭代可以包括:对所述ldpc码字执行所述迭代ldpc解码过程的ldpc解码迭代,以产生中间ldpc
解码结果;确定所述中间ldpc解码结果的ldpc校验子未达到零;使用bch调度器确定是否满足bch解码的触发条件,当满足所述bch解码的触发条件时,对所述中间ldpc解码结果执行bch解码过程;当不满足所述bch解码的触发条件或bch解码过程已被执行但未成功解码bch码字时,执行所述迭代级联解码过程中的下一次迭代。
32.在一个实施例中,bch解码的触发条件是ldpc解码迭代中的翻转比特的数量为零并且ldpc校验子大于零。
33.在一个实施例中,bch解码的触发条件是ldpc校验子中“1”的数目小于预定阈值。
34.在一个实施例中,bch解码的触发条件是ldpc解码迭代中的翻转比特的数量和先前ldpc解码迭代中的翻转比特的数量均小于阈值。
35.在一个实施例中,bch解码的触发条件是当前迭代次数已达到预定阈值。
36.在一个实施例中,bch调度器的输入可以包括以下各项中的一个或多个:ldpc迭代次数、ldpc列索引、ldpc层索引、ldpc校验子、ldpc解码迭代中的翻转比特的数量、先前ldpc解码迭代中的翻转比特的数量。
37.在一个实施例中,迭代ldpc解码过程可以是硬判决解码过程或软判决解码过程。
38.在另一个示例性实施例中,提供了另一种方法,该方法可以包括:从非易失性存储设备读取低密度奇偶校验(ldpc)码字的比特,将从所述非易失性存储设备读取的ldpc码字的比特馈送到ldpc解码器,并通过在迭代ldpc解码过程中插入一个或多个bose-chaudhuri-hocquenghem(bch)校验子计算过程来对所述ldpc码字执行迭代级联解码过程。ldpc码字可以通过bch编码码字产生,bch码字可以通过bch编码数据单元产生。所述迭代级联解码过程的迭代可以包括:对所述ldpc码字执行所述迭代ldpc解码过程的ldpc解码迭代,以产生中间ldpc解码结果;确定所述中间ldpc解码结果的ldpc校验子未达到零;使用bch调度器确定是否满足bch校验子计算的触发条件,当满足所述bch校验子计算的触发条件时,对所述中间ldpc解码结果计算用于bch误码检测的bch校验子,并且当不满足所述bch校验子计算的触发条件或所述bch校验子未达到零时,执行所述迭代级联解码过程中的下一次迭代。
39.在一个实施例中,bch校验子计算的触发条件是ldpc解码迭代中的翻转比特的数量为零并且ldpc校验子大于零。
40.在一个实施例中,bch校验子计算的触发条件是ldpc校验子中“1”的数目小于预定阈值。
41.在一个实施例中,bch校验子计算的触发条件是ldpc解码迭代中的翻转比特的数量和先前ldpc解码迭代中的翻转比特的数量均小于阈值。
42.在一个实施例中,bch校验子计算的触发条件是当前迭代次数已达到预定阈值。
43.在一个实施例中,bch调度器的输入包括以下各项中的一个或多个:ldpc迭代次数、ldpc列索引、ldpc层索引、ldpc校验子、ldpc解码迭代中的翻转比特的数量、先前ldpc解码迭代中的翻转比特的数量。
44.在又一示例性实施例中,提供了一种装置,该装置可以包括:低密度奇偶校验(ldpc)解码器,其被配置为对ldpc码字的比特执行迭代ldpc解码过程;耦合到所述ldpc解码器的bose-chaudhuri-hocquenghem(bch)解码器;以及耦合到所述ldpc解码器和所述bch解码器的bch调度器。该ldpc码字可以通过ldpc编码bose-chaudhuri-hocquenghem(bch)码
字产生,并且该bch码字可以通过bch编码数据单元产生。所述bch调度器可以被配置为在所述迭代ldpc解码过程中的每次迭代之后确定是否满足所述bch解码器的触发条件,并且如果满足所述bch解码器的所述触发条件,则激活所述bch解码器以对所述ldpc解码器的中间解码结果进行操作。
45.在一个实施例中,bch解码器可以是包含bch误码检测器的简化解码器,所述bch误码检测器被配置为对ldpc解码器的解码结果计算bch校验子。
46.在一个实施例中,bch解码器的触发条件是当前ldpc解码迭代中的翻转比特的数量为零,并且当前ldpc解码迭代之后的ldpc校验子大于零。
47.在一个实施例中,bch解码器的触发条件是当前ldpc解码迭代之后的ldpc校验子中“1”的数目小于预定阈值。
48.在一个实施例中,bch解码器的触发条件是当前ldpc解码迭代中的翻转比特的数量和先前ldpc解码迭代中的翻转比特的数量均小于阈值。
49.在一个实施例中,bch解码器的触发条件是当前迭代次数已达到预定阈值。
50.在一个实施例中,bch调度器的输入包括以下各项中的一个或多个:ldpc迭代次数、ldpc列索引、ldpc层索引、ldpc校验子权重、当前ldpc解码迭代中的翻转比特的数量、先前ldpc解码迭代中的翻转比特的数量。
51.虽然本文已经公开了各种方面和实施例,但是对于本领域技术人员来说,其他方面和实施例将是显而易见的。本文所公开的各个方面和实施例是出于说明的目的,并且不旨在限制,其真实范围和精神由所附权利要求所指示。
技术特征:1.一种方法,其特征在于,包括:从非易失性存储设备读取低密度奇偶校验(ldpc)码字的比特,所述ldpc码字是通过ldpc编码bose-chaudhuri-hocquenghem(bch)码字产生,所述bch码字是通过bch编码数据单元产生;将从所述非易失性存储设备读取的所述ldpc码字的比特馈送到ldpc解码器;以及通过在迭代ldpc解码过程中插入一个或多个bch解码过程,对所述ldpc码字执行迭代级联解码过程,所述迭代级联解码过程的迭代包括:对所述ldpc码字执行所述迭代ldpc解码过程的ldpc解码迭代,以产生中间ldpc解码结果;确定所述中间ldpc解码结果的ldpc校验子未达到零;使用bch调度器确定是否满足bch解码的触发条件;当满足所述bch解码的所述触发条件时,对所述中间ldpc解码结果执行bch解码过程;以及当不满足所述bch解码的所述触发条件或所述bch解码过程已被执行但未成功解码所述bch码字时,执行所述迭代级联解码过程中的下一次迭代。2.根据权利要求1所述的方法,其特征在于,所述bch解码的所述触发条件是所述ldpc解码迭代中的翻转比特的数量为零并且所述ldpc校验子大于零。3.根据权利要求1所述的方法,其特征在于,所述bch解码的所述触发条件是所述ldpc校验子中“1”的数目小于预定阈值。4.根据权利要求1所述的方法,其特征在于,所述bch解码的所述触发条件是所述ldpc解码迭代中的翻转比特的数量和先前ldpc解码迭代中的翻转比特的数量均小于阈值。5.根据权利要求1所述的方法,其特征在于,所述bch解码的所述触发条件是当前迭代次数已经达到预定阈值。6.根据权利要求1所述的方法,其特征在于,所述bch调度器的输入包括以下各项中的一个或多个:ldpc迭代次数、ldpc列索引、ldpc层索引、所述ldpc校验子、所述ldpc解码迭代中的翻转比特的数量、先前ldpc解码迭代中的翻转比特的数量。7.根据权利要求1所述的方法,其特征在于,所述迭代ldpc解码过程是硬判决解码过程或软判决解码过程。8.一种方法,其特征在于,包括:从非易失性存储设备读取低密度奇偶校验(ldpc)码字的比特,所述ldpc码字是通过ldpc编码bose-chaudhuri-hocquenghem(bch)码字产生,所述bch码字是通过bch编码数据单元产生;将从所述非易失性存储设备读取的所述ldpc码字的比特馈送到ldpc解码器;以及通过在迭代ldpc解码过程中插入一个或多个bch校验子计算过程,对所述ldpc码字执行迭代级联解码过程,所述迭代级联解码过程的迭代包括:对所述ldpc码字执行所述迭代ldpc解码过程的ldpc解码迭代,以产生中间ldpc解码结果;确定所述中间ldpc解码结果的ldpc校验子未达到零;使用bch调度器确定是否满足bch校验子计算的触发条件;
当满足所述bch校验子计算的所述触发条件时,对所述中间ldpc解码结果计算用于bch误码检测的bch校验子;以及当不满足所述bch校验子计算的所述触发条件或所述bch校验子未达到零时,执行所述迭代级联解码过程中的下一次迭代。9.根据权利要求8所述的方法,其特征在于,所述bch校验子计算的所述触发条件是所述ldpc解码迭代中的翻转比特的数量为零并且所述ldpc校验子大于零。10.根据权利要求8所述的方法,其特征在于,所述bch校验子计算的所述触发条件是所述ldpc校验子中“1”的数目小于预定阈值。11.根据权利要求8所述的方法,其特征在于,所述bch校验子计算的所述触发条件是所述ldpc解码迭代中的翻转比特的数量和先前ldpc解码迭代中的翻转比特的数量均小于阈值。12.根据权利要求8所述的方法,其特征在于,所述bch校验子计算的所述触发条件是当前迭代次数已经达到预定阈值。13.根据权利要求8所述的方法,其特征在于,所述bch调度器的输入包括以下各项中的一个或多个:ldpc迭代次数、ldpc列索引、ldpc层索引、所述ldpc校验子、所述ldpc解码迭代中的翻转比特的数量、先前ldpc解码迭代中的翻转比特的数量。14.一种装置,包括:低密度奇偶校验(ldpc)解码器,被配置为对ldpc码字的比特执行迭代ldpc解码过程,所述ldpc码字是通过ldpc编码bose-chaudhuri-hocquenghem(bch)码字产生,所述bch码字是通过bch编码数据单元产生;耦合到所述ldpc解码器的bose-chaudhuri-hocquenghem(bch)解码器;以及耦合到所述ldpc解码器和所述bch解码器的bch调度器,其中,所述bch调度器被配置为在所述迭代ldpc解码过程中的每次迭代之后确定是否满足所述bch解码器的触发条件,并且如果满足所述bch解码器的所述触发条件,则激活所述bch解码器以对所述ldpc解码器的中间解码结果进行操作。15.根据权利要求14所述的装置,其特征在于,所述bch解码器是包含bch误码检测器的简化解码器,所述bch误码检测器被配置为对所述ldpc解码器的解码结果计算bch校验子。16.根据权利要求14所述的装置,其特征在于,所述bch解码器的所述触发条件是当前ldpc解码迭代中的翻转比特的数量为零并且在所述当前ldpc解码迭代之后的ldpc校验子大于零。17.根据权利要求14所述的装置,其特征在于,所述bch解码器的所述触发条件是当前ldpc解码迭代之后的ldpc校验子中“1”的数目小于预定阈值。18.根据权利要求14所述的装置,其特征在于,所述bch解码器的所述触发条件是当前ldpc解码迭代中的翻转比特的数量和先前ldpc解码迭代中的翻转比特的数量均小于阈值。19.根据权利要求14所述的装置,其特征在于,所述bch解码器的所述触发条件是当前迭代次数已达到预定阈值。20.根据权利要求14所述的装置,其特征在于,所述bch调度器的输入包括以下各项中的一个或多个:ldpc迭代次数、ldpc列索引、ldpc层索引、ldpc校验子、当前ldpc解码迭代中的翻转比特的数量、先前ldpc解码迭代中的翻转比特的数量。
技术总结提供了用于级联纠错编码的系统和方法。一种装置可以包括:低密度奇偶校验(LDPC)解码器,其被配置为对LDPC码字的比特执行迭代LDPC解码过程;Bose-Chaudhuri-Hocquenghem(BCH)解码器,其耦合到所述LDPC解码器;以及BCH调度器,其耦合到所述LDPC解码器和所述BCH解码器。LDPC码字可以通过LDPC编码Bose-Chaudhuri-Hocquenghem(BCH)码字产生,BCH码字可以通过BCH编码数据单元产生。所述BCH调度器可以被配置为在所述迭代LDPC解码过程中的每次迭代之后确定是否满足所述BCH解码器的触发条件,并且如果满足所述BCH解码器的触发条件,则激活所述BCH解码器以对所述LDPC解码器的中间解码结果进行操作。结果进行操作。结果进行操作。
技术研发人员:ꢀ(74)专利代理机构
受保护的技术使用者:英韧科技(上海)有限公司
技术研发日:2022.05.12
技术公布日:2022/11/1