CN106341136A - Ldpc解码方法及其装置 - Google Patents
Ldpc解码方法及其装置 Download PDFInfo
- Publication number
- CN106341136A CN106341136A CN201510398193.5A CN201510398193A CN106341136A CN 106341136 A CN106341136 A CN 106341136A CN 201510398193 A CN201510398193 A CN 201510398193A CN 106341136 A CN106341136 A CN 106341136A
- Authority
- CN
- China
- Prior art keywords
- soft
- ldpc
- hard
- decision decoding
- bit data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明提供一种生成LDPC软信息的方法,包括指示读取针对存储设备中存储数据的硬比特数据;接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出,响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码。通过本发明的技术方案,能够降低对flash反复读取的次数,提高吞吐量,并且提高译码成功率。
Description
技术领域
本发明涉及低密度奇偶校验码(Low Density Parity Check Code,LDPC)译码方法及其装置,更具体地,本发明涉及LDPC译码过程的软信息生成方法。
背景技术
低密度奇偶校验(LDPC)码在迭代译码下具有优越的性能,但是在高信噪比区呈现出误码平台(error floor)现象。与传统的理德-所罗门(RS)码和Bose、Ray-Chaudhuri、Hocquenghem(BCH)码(如图1中“RS/BCH”所指示的曲线)相比,如图1中“LDPC”指示的曲线所示,当原始误码率(RBER)处于一定范围时,LDPC译码方案的误帧率(FER)逐渐下降;随着RBER的进一步下降,LDPC的FER出现剧烈下降,此区域称为瀑布区域。经过瀑布区域的急剧下降之后,LDPC通常会出现FER下降缓慢甚至不再下降的情况,此区域一般称为误码平台。在误码平台中FER变化相对平缓的区域一般被用作LDPC系统的工作区域(如图1所示)。在这个区域中LDPC系统具有较低的FER,能够满足应用的要求。
存储设备中通常使用NVM(Non-Volatile Memory非易失存储器)作为存储介质。NAND闪存、相变存储器、FeRAM、MRAM等是常见的NVM。NVM中存储的数据会在一定程度上出现损坏,为克服此类问题,通常在访问NVM时,通过容错编解码对NVM上存储的数据进行保护。正在研究在NVM中使用LDPC的方案来提升存储设备的数据可靠性。
在LDPC译码过程中,一般先对从NVM中读出的数据采用硬判决译码,在硬判决失败后再使用软判决译码。软判决译码需要若干比特的软信息。需要多次对NVM的读操作来获得所需要的软信息。然而,多次读操作会占用NVM的读带宽,也增加了读取所需的时间。
如图2所示,通常,软判决译码过程中,通过多次读NVM,拼出软信息(≥2bits)。一般软信息由一个硬比特和一个或多个软比特导出。如图2所示,作为举例,在NVM中存储(被写入)的比特序列200是全为0的比特序列,而从NVM中读出该比特序列时,由于NVM本身的特性,可能存在一些错误的比特,导致所读出的比特序列未必是原始存储的全0比特序列,所读出的比特序列被称为硬比特(HB)序列。对所读出的硬比特(HB)序列210进行硬判决译码,得到硬判决译码输出的比特序列220,在硬判决译码中还输出指示硬判决译码成功与否的硬判决译码结果(未示出)。在图2的例子中,硬判决译码输出的比特序列220不同于NVM存储的比特序列200,相应地,硬判决译码结果为失败。
在图2的例子中,响应于硬判决译码结果为失败,从NVM中读出与硬比特(HB)序列210相关联的软比特(SB)序列SB0230与软比特序列SB1240。将硬比特序列210、软比特序列230以及软比特序列240映射为软信息,并利用软信息进行LDPC软译码。
需要指出的是,对于硬比特和软比特,不同的厂家定义是不同的,例如,硬比特可以是通过“normal read(常规读)”或者某一次“retry read”(重做读)而读到的比特值,而软比特是在前述读操作的阈值电压V的两侧分别使用V+Δv和V-Δv读到的值。通过设置不同的Δv,可以针对一个硬比特而得到一个或多个软比特。一个硬比特与一个或多个软比特构成了软信息。在现有技术中,还可以对读到的两个或多个软比特做“同或”运算,所得到的结果也可被称为“软信息”。由此可以看出,软比特是以硬比特为基础并且与该硬比特相关联的。以上只是举出了硬比特和软比特的一种示例,本发明并不局限于上面所述的具体类型和操作。
继续参看图2,图2中的硬比特(HB)序列210中的第一个比特210-1和软比特(SB)序列230的第一个比特(230-1)与软比特序列240的第一个比特(240-1)共同构成了一个三比特的第一软信息SI-1,为000。可以理解,还可以存在其他软信息,例如如图2所示的,由图2的硬比特序列210中的第五个比特210-5、软比特序列230的第五个比特230-5与软比特序列240的第五个比特240-5构成的第五软信息SI-5为100,由图2的硬比特序列210中的第十个比特210-10、软比特序列230的第十个比特230-10与软比特序列240的第十个比特240-10构成的第十软信息SI-10为010,等等。上面的每个软信息中,包括了从NVM中读出的原始硬比特(在此示例中为1个比特,例如图2中的硬比特210-1),以及与该硬比特相关联的软比特(在此示例中为2个比特,例如图2中的软比特230-1与软比特240-1)。需要理解的是,根据本发明实施例的软信息并不局限于上面的比特数量。
由于在硬判决译码失败的情况下,从Flash中读出的硬比特序列的错误率较高,造成现有技术中的软信息准确率低,进而影响了译码速度和译码成功率。
综上所述,当硬判决译码失败启动软译码时,需要重新从flash中读取硬比特,这带来的缺点包括:(1)多次读flash造成读吞吐量下降;(2)在硬判决译码失败的情况下,从flash中读出的硬比特错误率较高,因此影响了译码速度和译码成功率。
发明内容
本发明的目的在于提高将LDPC用于NVM时的译码效率。
根据本发明的第一方面,提供一种生成LDPC软信息的方法,包括:指示读取针对存储设备中存储数据的硬比特数据;接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出,响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码。
根据本发明的一个实施方式,进一步包括,循环地执行以下操作:如果所述LDPC软判决译码的结果为失败,则确定所述LDPC软判决译码的失败次数是否超过第一次数;如果未超过所述第一次数;则指示读取与所述硬比特数据相关联的第一更新后软比特数据;指示将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息,以用于进行LDPC软判决译码。
根据本发明的一个实施方式,进一步包括,循环地执行以下操作:如果所述LDPC软判决译码的失败次数超过第一次数;则确定所述LDPC硬判决译码的次数是否超过第二次数;如果未超过所述第二次数,则指示读取针对所述存储设备中存储数据的更新后硬比特数据;接收基于所述更新后硬比特数据进行LDPC硬判决译码的更新后LDPC硬判决译码的结果和更新后硬判决译码输出,如果所述更新后LDPC硬判决译码的结果为失败,则指示读取与所述更新后硬比特数据相关联的第二更新后软比特数据;指示将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息,以用于进行LDPC软判决译码。
根据本发明的第二方面,提供一种LDPC译码方法,包括:读取针对存储设备中存储数据的硬比特数据;基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出,如果所述LDPC硬判决译码的结果为失败,则读取与所述硬比特数据相关联的软比特数据;将所述硬判决译码输出和所述软比特数据映射为软信息;基于所述软信息进行LDPC软判决译码。
根据本发明第二方面的一个实施方式,进一步包括,循环地执行以下操作:如果所述LDPC软判决译码的结果为失败,则确定所述LDPC软判决译码的失败次数是否超过第一次数;如果未超过所述第一次数;则读取与所述硬比特数据相关联的第一更新后软比特数据;将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息;基于所述第一更新后软信息进行LDPC软判决译码。
根据本发明的第二方面一个实施方式,进一步包括:循环地执行以下操作:如果所述LDPC软判决译码的失败次数超过第一次数;则确定所述LDPC硬判决译码的次数是否超过第二次数;如果未超过所述第二次数,则读取针对所述存储设备中存储数据的更新后硬比特数据;基于所述更新后硬比特数据进行LDPC硬判决译码,得到更新后LDPC硬判决译码的结果和更新后硬判决译码输出,如果所述更新后LDPC硬判决译码的结果为失败,则读取与所述更新后硬比特数据相关联的第二更新后软比特数据;将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息;基于所述第二更新后软信息进行LDPC软判决译码。
根据本发明第二方面的一个实施方式,其中,所述映射为对数似然比映射。
根据本发明第二方面的一个实施方式,其中所述存储设备为闪存存储器。
根据本发明的第三方面,提供一种LDPC译码的方法,包括:控制设备指示读取针对存储设备中存储数据的硬比特数据;软信息生成器存储所述硬比特数据;LDPC译码器基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出;所述控制设备从所述LDPC译码器接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出;控制设备响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;所述软信息生成器从所述LDPC译码器至少接收硬判决译码输出,并将所述硬判决译码输出和所述软比特映射为软信息;所述LDPC译码器基于所述软信息进行LDPC软判决译码,得到LDPC软判决译码的结果,并将所述LDPC软判决译码的结果发送给所述控制设备。
根据本发明第三方面的一个实施方式,进一步包括循环地执行如下操作:如果所述LDPC软判决译码的结果为失败,则所述控制设备确定所述LDPC软判决译码的失败次数是否超过第一次数;如果未超过所述第一次数;则所述控制设备指示读取与所述硬比特数据相关联的第一更新后软比特数据;所述软信息生成器将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息;所述LDPC译码器对所述第一更新后软信息进行LDPC软判决译码。
根据本发明第三方面的一个实施方式,进一步包括循环地执行如下操作:如果所述控制设备确定所述LDPC软判决译码的失败次数超过第一次数;则所述控制设备确定所述LDPC硬判决译码的次数是否超过第二次数;如果未超过所述第二次数,则所述控制设备指示读取针对所述存储设备中存储数据的更新后硬比特数据;所述LDPC译码器基于所述更新后硬比特数据进行LDPC硬判决译码,得到更新后LDPC硬判决译码的结果和更新后硬判决译码输出,如果所述控制设备确定所述更新后LDPC硬判决译码的结果为失败,则所述控制设备指示读取与所述更新后硬比特数据相关联的第二更新后软比特数据;所述软信息生成器将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息;所述LDPC译码器基于所述第二更新后软信息进行LDPC软判决译码。
根据本发明的第四方面,提供一种LDPC译码设备,包括:用于读取针对存储设备中存储数据的硬比特数据的装置;用于基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出的装置,用于如果所述LDPC硬判决译码的结果为失败,则读取与所述硬比特数据相关联的软比特数据的装置;用于将所述硬判决译码输出和所述软比特数据映射为软信息的装置;用于基于所述软信息进行LDPC软判决译码的装置。
根据本发明的第五方面,提供一种生成LDPC软信息的设备,包括:用于指示读取针对存储设备中存储数据的硬比特数据的装置;用于接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出的装置,用于如果所述LDPC硬判决译码的结果为失败,则指示读取与所述硬比特数据相关联的软比特数据的装置;用于指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码的装置。
根据本发明的第六方面,提供一种LDPC译码系统,包括:软信息生成器,LDPC译码器以及控制设备,其中,所述软信息生成器用于:存储针对存储设备中存储数据的硬比特数据和/或软比特数据;从所述LDPC译码器至少接收硬判决译码输出,将所述硬判决译码输出和所述软比特映射为软信息;所述LDPC译码器用于基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出,和/或基于所述软信息进行LDPC软判决译码,得到LDPC软判决译码的结果;以及所述控制设备用于:指示读取针对存储设备中存储数据的硬比特数据;接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出,响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码。
根据本发明第六方面的一个实施方式,其中,所述控制设备进一步用于循环地执行以下操作:如果所述LDPC软判决译码的结果为失败,则确定所述LDPC软判决译码的失败次数是否超过第一次数;如果未超过所述第一次数;则指示读取与所述硬比特数据相关联的第一更新后软比特数据;指示将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息,以用于进行LDPC软判决译码。
根据本发明第六方面的一个实施方式,进一步包括,循环地执行以下操作:如果所述LDPC软判决译码的失败次数超过第一次数;则确定所述LDPC硬判决译码的次数是否超过第二次数;如果未超过所述第二次数,则指示读取针对所述存储设备中存储数据的更新后硬比特数据;接收基于所述更新后硬比特数据进行LDPC硬判决译码的更新后LDPC硬判决译码的结果和更新后硬判决译码输出,如果所述更新后LDPC硬判决译码的结果为失败,则指示读取与所述更新后硬比特数据相关联的第二更新后软比特数据;指示将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息,以用于进行LDPC软判决译码。
根据本发明第六方面的一个实施方式,其中所述系统通过应用专用集成电路(ASIC)来实现。
根据本发明的第七方面,提供一种包含计算机程序代码的计算机程序,当被载入计算机系统并在计算机系统上执行时,所述计算机程序代码使所述计算机系统执行上面所述的方法。
根据本发明的第八方面,提供一种包括程序代码的程序,当被载入存储设备并在存储设备上执行时,所述计程序代码使所述存储设备执行上面所述的方法。
通过本发明的技术方案,能够降低对NVM反复读取的次数,提高吞吐量,并且提高译码成功率。
附图说明
图1示出了LDPC译码方案的误码平台示意图;
图2示出了现有技术下对存储器读出数据进行LDPC译码的示意图;
图3示出了根据本发明一个实施方式的LDPC译码系统的系统框图;
图4示出了根据本发明一个方面的LDPC译码的方法流程图;
图5示出了根据本发明一个实施方式的LDPC译码的方法的信号流图;
图6示出了根据本发明一个实施方式的LDPC译码的方法流程图;
图7示出了根据本发明一个方面的生成LDPC软信息的方法的流程图;
图8示出了根据本发明实施方式的生成LDPC软信息的方法的流程图;
图9示出了根据本发明另一个方面的生成LDPC软信息的设备的示意性框图;
图10示出了根据本发明又一个方面的LDPC译码的方法流程图;
图11示出了根据本发明一个实施方式的LDPC译码的方法的流程图;
图12示出了根据本发明另一个方面的生成LDPC软信息的设备的示意性框图;以及
图13示出了根据本发明实施例对存储器读出数据进行LDPC译码的示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述。
根据现有技术的描述可知,当硬判决译码失败后启动软译码时,需要重新从存储器中读取硬比特,这带来吞吐量降低、译码成功率较低等缺陷。因此,以高效的方式来生成或者构建该软信息,则有利于改善吞吐量,提高译码成功率。
图3示出了根据本发明一个实施方式的LDPC译码系统的系统框图。如图3所示,根据本发明一个实施方式的LDPC译码系统包括:软信息生成器10,LDPC译码器20以及控制设备30,其中,所述软信息生成器10用于:存储针对存储设备中存储数据的硬比特数据和/或软比特数据;从所述LDPC译码器至少接收并存储硬判决译码输出,将所述硬判决译码输出和所述软比特(如果存在的话)映射为软信息。
存储设备中的存储数据通常指从存储设备,例如flash存储器中读出的数据,其主要包含用户数据,系统数据和校验位,这些数据可能存在错误。可以对这些数据做LDPC译码,以得到正确的用户数据和系统数据。
所述软信息生成器10可以接收来自LDPC译码器20的输出结果。需要理解的是,这里所述的“接收来自LDPC译码器20的输出结果”可以是从LDPC译码器20直接接收该输出结果,也可以是通过其他部件间接地从LDPC译码器20接收该输出结果。例如,控制设备30可以从LDPC译码器20接收该输出结果,然后软信息生成器10从控制设备30接收该输出结果。
软信息生成器10在接收到LDPC译码器20的硬判决译码输出与硬判决译码结果之后,如果该LDPC译码器20的硬判决译码结果为成功,则表示译码成功,此时无需再读取软比特;如果硬判决译码结果为失败,则需要进一步读取与该硬比特数据相关联的软比特数据,并将硬判决译码的输出与该软比特数据映射形成软信息。对应于一个硬比特的软信息通常为大于等于2个比特,其中包括了1个硬比特和若干软比特,通常可以是2个软比特。但本发明并不限于以上具体数量的硬比特和软比特。
上述映射例如可以是对数似然比(LLR)映射。LLR映射在LDPC译码中得到广泛使用。例如,不管发射端发送比特1还是比特0,接收端都可能误判。假设收到信号r,正确判为0的概率p(r|b=0)与正确判为1的概率p(r|b=1)的比值就是似然比p(r|b=0)/p(r|b=1),然后,该似然比的对数即可得到LLR=ln[p(r|b=0)/p(r|b=1)]。
需要指出的是,可以对软信息直接进行译码,但优选地,首先由LLR映射器将软信息映射成LLR,然后将此LLR送入译码器。软判决译码可以和硬判决译码完全一样,而软判决译码之所以具备更强的纠错能力是因为由软信息映射的LLR更加准确。
具体而言,硬比特只有1比特,因此LLR只能映射成例如+4和-4;而对应于该硬比特的软信息有多个比特,因此LLR例如可以映射成+5,+2,-2和-5,因此输入信息准确,译码成功率也由此提升。
如图3所示,LDPC译码器20可以基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出。此外,LDPC译码器20还可以基于所述软比特数据进行LDPC软判决译码,得到LDPC软判决译码的结果。
本领域技术人员可以理解,译码器20可以是任何已知或者未来开发的能够进行硬判决译码和软判决译码的译码器。还需要理解的是,硬判决译码和软判决译码可以由同一个主体来统一地进行,也可以由分立的主体来进行。例如,LDPC译码器20可以包括单独的硬判决译码器(未示出)和软判决译码器(未示出),即硬判决译码器仅仅执行硬判决译码,而软判决译码器仅仅执行软判决译码。并发明并不对LDPC译码器20是整体还是分立进行任何的限制。
译码器20可以判断出译码是否成功(译码结果)并且在译码时产生译码输出。然后,可以将译码结果和/或译码输出发送给控制设备30以供进行进一步的处理。
虽然图3中示出了控制设备30是单独的一个控制设备,但控制设备30也可以是分离的多个控制设备,各个控制设备分别承担不同的功能并相互配合。例如,控制设备30可以包括结果分析器负责分析译码的结果并将结果传送给主机,而主机则可以根据该分析结果来更改策略或发出其他指令。这将在后文中进行更详细的描述。
下文中将结合软信息生成器10、译码器20以及控制设备30来解释本发明的多种实施方式。
图4示出了根据本发明一个实施方式的LDPC译码的方法流程图。图5示出了根据本发明一个实施方式的LDPC译码的方法的信号流图。如图4和图5所示,本发明的实施方式的方法包括下列操作。
在第一操作S100,控制设备30指示读取针对存储设备中存储数据的硬比特数据;这里所述的针对存储设备中存储数据的硬比特数据,是指用于对闪存中读取的数据进行硬判决所用的硬比特。该硬比特可以是原始所采用的硬比特,也可以是后续重新读入的硬比特。硬比特在上文中已经进行了描述,这里将不再赘述。
还需要理解的是,上文所说的“指示读取”可以是控制设备30发出读取指示,而由其他部件(例如软信息生成器20)来进行读取动作,也可以是控制设备30本身直接进行读取。
在第二操作S200,软信息生成器存储所述硬比特数据。软信息生成器10可以在其中的存储器中存储该硬比特。
在第三操作S300,LDPC译码器基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出。需要理解的是,本发明所述的硬判决译码的结果是指硬判决的译码是否成功。该结果可以是成功,也可以是译码失败。这些结果都可以发送给控制设备30。如果译码成功,则表示对闪存数据进行了成功译码。而这里所述的硬判决译码输出,则是指对数据进行了硬判决译码之后得到的输出结果,该结果可以是正确的结果,也可以是错误的结果。换言之,如果该硬判决译码输出为正确的结果,则硬判决译码结果指示译码成功,而如果硬判决译码输出为错误的结果,则硬判决译码结果指示译码失败。
在第四操作S400,所述控制设备30从所述LDPC译码器20接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出。
接下来讨论译码失败的情况。
如果所述LDPC硬判决译码的结果为失败,那么在第五操作S500,控制设备30响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据。
如背景技术中所述,软比特数据总是基于的硬比特数据并与硬比特数据相关联,并且根据厂家的不同而具有不同的定义。这里将不再赘述。
在第六操作S600,所述软信息生成器10从所述LDPC译码器20至少接收硬判决译码输出,并将所述硬判决译码输出和所述软比特映射为软信息。软信息是由硬判决输出和相应的软比特构成的。相较于硬比特,软信息包含了更多的信息,因此其译码的准确度更高。此外,对软信息进行LLR映射也有利于提高译码的成功率。上文已进行了详细描述,这里将不再赘述。
在第七操作S700,所述LDPC译码器20基于所述软信息进行LDPC软判决译码,得到LDPC软判决译码的结果,并将所述LDPC软判决译码的结果发送给所述控制设备30。
可以理解,LDPC译码器20对软信息的译码也存在着成功和失败这两种情况。如果成功,则意味着则表示对从存储设备读出的数据进行了成功译码。如果失败,则进行进一步的处理。下文中将对进一步的处理进行详细描述。
在现有技术中,如果硬判决译码失败,会利用硬比特与相应的软比特进行软信息映射。而在本发明的实施例中,在硬判决译码失败时,使用硬判决译码的输出与相应的软比特进行软信息映射。而现有技术中如果软信息译码失败,则会立刻重新获取硬比特,并基于该硬比特进行新的软信息映射和译码,这样无疑会加大数据的读取次数,并由此降低吞吐量。
图6示出了根据本发明一个实施方式的LDPC译码的方法流程图。
如图6所示,根据本发明的一个实施方式,进一步包括循环地执行如下操作S500-S700。
具体而言,如图6所示,首先,在第一操作S100,控制设备30指示读取针对存储设备中存储数据的硬比特数据。
然后,在第二操作S200,软信息生成器10存储所述硬比特数据。软信息生成器10可以在其中的存储器中存储该硬比特。
接下来,在第三操作S300,LDPC译码器20基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出。
进一步地,在第四操作S400,所述控制设备30从所述LDPC译码器20接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出。
硬判决译码的结果可以是成功,也可以是失败。如果成功,则表明对存储器数据的译码获得成功,如图6的流程所示。
下面重点讨论译码失败的情况。
如果所述LDPC硬判决译码的结果为失败,那么操作前进到第五操作S500。在第五操作S500,控制设备30响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据。
如背景技术中所述,软比特数据总是基于的硬比特数据并与硬比特数据相关联,并且根据厂家的不同而具有不同的定义。这里将不再赘述。
更进一步地,在第六操作S600,所述软信息生成器10从所述LDPC译码器20至少接收硬判决译码输出,并将所述硬判决译码输出和所述软比特映射为软信息。软信息是由硬判决输出和相应的软比特构成的。在另一个例子中,软信息从硬判决输出和相应的软比特中导出。相较于硬比特,软信息包含了更多的信息,因此其译码的准确度更高。此外,对软信息进行LLR映射也有利于提高译码的成功率。上文已进行了详细描述,这里将不再赘述。
在第七操作S700,所述LDPC译码器20基于所述软信息进行LDPC软判决译码,得到LDPC软判决译码的结果。在进一步的实施例中,还将所述LDPC软判决译码的结果发送给所述控制设备30。
如果软判决译码成功,则表明对存储器数据的译码成功。译码成功后,译码过程结束,如图6所示。
如果所述LDPC软判决译码的结果为失败,则控制设备30确定所述LDPC软判决译码的失败次数是否超过第一次数N;如果未超过所述第一次数N(参看图6),则所述控制设备30指示读取与所述硬比特数据相关联的第一更新后软比特数据,此时流程回到操作S500。需要理解的是,这里所述的第一更新后软比特是基于原硬比特数据或与原硬比特数据相关联的新读取的软比特数据。此时,新读取的软比特数据将替代原软比特数据。在另一个实施例中,新读取的软比特数据与原软比特数据被一同使用。
然后,所述软信息生成器10将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息(S600)。此时,更新后的软信息将替代原软信息以用于进行进一步的软判决译码。本领域技术人员可以理解,虽然图6中并未直接地给出“更新后软比特数据”,“第一更新后软信息”等此类术语,但每一次的循环或迭代则会产生相应的更新后的数据内容。
所述LDPC译码器20对所述第一更新后软信息进行新一轮的LDPC软判决译码(S700)。
从图6中可以看出,如果LDPC译码器20对软信息的译码失败,那么控制设备30将再次指示读取针对所述存储数据的、以原硬比特数据为基础的软比特数据。
在读取到新的软比特数据之后,软信息生成器生成新的软信息。由此,LDPC译码器20将针对该新的软信息来进行译码。如果译码成功,则报告成功,表明对存储器数据的译码成功。译码成功后,运行结束。
如果失败,则控制设备30可以再次请求读取新的软比特,并以原硬比特的硬判决译码输出与新读取的软比特(和/或之前读取的软比特)为基础进行多次的软信息映射和软译码。
这里的第一次数N可以由本领域技术人员根据实际情况来设定,较大的N有助于以较少的硬比特读取来完成译码,但较大的N也使得有可能对软信息进行过多次数无效的译码,由此减小吞吐量。而较小的N有助于减少同一硬比特下软信息解码的次数,但也有可能浪费掉该硬比特下成功译码的机会。本领域技术人员将根据实际的需求以及存储器设计的要求来选定合适的N。
再次参考图6,根据本发明一个实施方式,进一步包括:如果所述控制设备30确定所述LDPC软判决译码的失败次数超过第一次数N;则所述控制设备30确定所述LDPC硬判决译码的次数是否超过第二次数M;如果未超过所述第二次数M,则执行操作S100-S700。
从上段的描述中可以看出,在经过多次译码失败之后,控制设备30可以改变策略,以进行进一步的硬判决译码。
具体而言,如果所述LDPC软判决译码的失败次数超过第一次数N,则意味着在同一硬判决输出下进行多次软判决译码的成功概率已经较低了,此时需要改变译码策略以提高译码成功的可能性。
在此情况下,控制设备30可以继续确定所述LDPC硬判决译码的次数是否超过第二次数M;如果未超过所述第二次数,则控制设备30可以指示读取针对所述存储设备中存储数据的更新后硬比特数据,即回到图6中的操作S100。该更新后硬比特数据可以是重新读取的新的硬比特。
因此,所述LDPC译码器20可以基于所述更新后硬比特数据进行LDPC硬判决译码,得到更新后LDPC硬判决译码的结果和更新后硬判决译码输出(S300)。
如果所述控制设备30确定所述更新后LDPC硬判决译码的结果为失败,则所述控制设备30指示读取与所述更新后硬比特数据相关联的第二更新后软比特数据(S500)。
这里所述的第二更新后软比特数据,是指与更新后的硬比特数据相关联的软比特数据,这里用“第二”是为了与同原硬比特数据相关的更新后软比特数据(即第一更新后软比特数据)进行文字上的区分,以方便理解。本领域技术人员可以理解,这里所述的“第一”和“第二”也是一个动态的概念,随着硬比特不断地更新和迭代,原先的“第二软比特数据”在下一轮循环中可以指示为“第一软比特数据”,而新入读的软比特数据则可以称为“第二软比特数据”。本发明中的第一、第二、更新等术语是一个动态而不是静态的概念。
在基于更新后的硬比特读取了新的软比特之后,所述软信息生成器10可以将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息(S600)。
然后,所述LDPC译码器20可以基于所述第二更新后软信息进行LDPC软判决译码(S700)。
可以理解,如果上面译码中的任何一次译码成功,则可以报告,例如向控制设备30报告译码成功。此时表明对存储数据的译码成功,从而结束本次运行。而如果对硬比特的译码失败次数超过第二次数M,则意味着成功译码的可能性很低,在此情况下,则报告译码失败。
从上面的描述中可以看出,与现有技术相比,在对软信息的译码失败之后,本发明并不立刻读取新的硬比特,而是在同一硬比特的基础上多次读取软比特,将基于该硬比特进行硬判决译码而得到的输出与读入的新的软比特组合成为新的软信息,并不断地对新生成的软信息进行译码,直到在若干次数之后仍然无法对软信息进行译码才读取新的硬比特。
LDPC本身是一种迭代译码算法,迭代过程中,一个比特会根据其他比特传递过来的信息决定是否更改本比特的值,因此迭代一次会得到一个更正过的码字,迭代后会校验更正过的码字是否是一个合法码字,如果是则译码成功,则报告成功,并结束本次运行,否则开始下一次迭代,直到超过预先设定的最大迭代次数。本发明的一个实施方式在做软判决译码时利用硬判决译码的迭代后的码字和新读入的软比特共同拼接成的软信息,软译码成功率高。
从以上的描述中可以看出,如何生成软信息对于是否能够成功译码有着重要作用,因此本发明将进一步讨论如何生成有效的软信息。图7示出了根据本发明一个方面的生成LDPC软信息的方法的流程图。
如图7所示,根据本发明的另一个方面,还提供一种生成LDPC软信息的方法,该方法包括:在操作S1000,指示读取针对存储设备中存储数据的硬比特数据;在操作S2000,接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出;在操作S3000,响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;在操作S4000,指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码。
根据本发明的一个实施方式,硬比特数据可以包括一个或多个硬比特,本发明的例子中示意性地提供了1个比特。软比特数据可以包括一个或多个软比特,本发明示意性地提供了2个比特。需要理解的是,上面的数量仅仅是一种示例,本发明并不局限于上面的具体数量,而是可以有多种变形。
上述方法和操作可以单独地实施在如图3所示的控制设备30中。如上文所述,控制设备30可以包括结果分析装置和主机(图中未示出)。结果分析装置可以是一个能够对LDPC译码器20的输出结果进行记录、总结、分析和/或转发的装置。该结果分析装置可以由软件、硬件、固件以及上述的组合等任何适当的方式来实现。这里所述的主机可以是PC、数字处理器、专用控制器等能够从/向结果分析装置接收/发送各种数据,指令等内容的设备。
此外,控制设备30也可以是结果分析装置,即结果分析装置负责所有的记录、总结、分析、处理、指示等功能,而无须向外部的主机(例如PC)转发信息。这样的优点在于处理速度可以得到提升。
操作S1000-S3000可以单独地由结果分析器来执行,也可以由结果分析器和主机来共同执行,例如主机可以执行步骤S1000,S3000和S4000,而结果分析器可以执行S2000。具体而言,主机可以发出读取针对存储设备中存储数据的硬比特数据的指示,在LDPC译码器20(参见图3)对该硬比特数据进行了硬判决译码之后,结果分析器可以接收该译码结果和译码输出,并转交给主机,主机根据该译码结果在进行后续的操作,例如在硬判决译码失败之后,主机可以指示读取更新后的软比特数据,并指示软信息生成器10(参见图3)来生成更新后的软信息。
上面只是介绍了其中一种示例,在另一种实施方式中,结果分析器在接收到译码结果时(例如译码失败时),可以直接指示进行软比特的读取,而无需向主机报告。
进一步地,对于操作S1000和S3000,“指示读取”可以是由一个执行实体(例如控制设备30)来执行,即该实体发出读取指示,并且还进行进一步的读取操作;“指示读取”也可以是由不同的执行实体来执行,例如一个实体(例如控制设备30)发出读取指示,并命令另一个实体(例如软信息生成器10)来执行“读取”操作。本发明并不限于上述具体的执行实体。
图8示出了根据本发明实施方式的生成LDPC软信息的方法的流程图。
如图8所示,在操作S1000,指示读取针对存储设备中存储数据的硬比特数据。这里的“指示读取”可以包含一个或多个执行实体,例如一个实体发出进行读取的指示,以指示另外一个实体来执行读取动作。也可以是发出指示的实体本身进行读取动作。本发明并不限于实体的具体数量。
接下来,在操作S2000,接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出。
硬判决译码的结果可以是成功,也可以是失败。如果成功,则表明对存储器数据的译码获得成功,此时结束本次运行,如图8的流程所示。
下面重点讨论译码失败的情况。
当硬判决译码的结果为失败时,在操作S3000,响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据。
在操作S4000,指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码。
接下来判断LDPC软判决译码的结果是否成功。如果LDPC软判决译码的结果为失败,则循环地执行操作S3000-S4000,直到所述LDPC软判决译码的失败次数超过第一次数N。如果软判决译码成功,则报告译码成功并结束本次运行。
具体而言,本发明的生成LDPC软信息的方法进一步包括循环地执行以下操作:如果所述LDPC软判决译码的结果为失败,则确定所述LDPC软判决译码的失败次数是否超过第一次数N;如果未超过所述第一次数N;则指示读取与所述硬比特数据相关联的第一更新后软比特数据(S3000);指示将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息,以用于进行LDPC软判决译码(S4000)。
上面的实施方式给出了LDPC软判决译码的失败次数未超过第一次数N的情况。下面介绍LDPC软判决译码失败次数超过第一次数N的另一个实施方式。
进一步如图8所示,如果LDPC软判决译码失败的次数超过第一次数N,则本发明的生成LDPC软信息的方法进一步包括循环地执行操作S1000-S4000,直到所述LDPC硬判决译码的失败次数超过第二次数M。如果在此期间译码成功,则报告译码成功,并结束本次运行。
具体而言,本发明的生成LDPC软信息的方法进一步包括循环地执行以下操作:如果所述LDPC软判决译码的失败次数超过第一次数N;则确定所述LDPC硬判决译码的次数是否超过第二次数M;如果未超过所述第二次数M,则指示读取针对所述存储设备中存储数据的更新后硬比特数据(S1000);接收基于所述更新后硬比特数据进行LDPC硬判决译码的更新后LDPC硬判决译码的结果和更新后硬判决译码输出(S2000),如果所述更新后LDPC硬判决译码的结果为失败,则指示读取与所述更新后硬比特数据相关联的第二更新后软比特数据(S3000);指示将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息,以用于进行LDPC软判决译码(S4000)。
可以理解,对是否超过次数的确定,可以在结果分析器中执行,也可以在主机中执行。本发明并不局限于其执行的实体。
还可以理解,上面所述的操作S1000-S4000以及后续的循环迭代方法均可以仅仅在结果分析装置和/或主机中实施,而无论软信息生成器10和LDPC译码器20如何。换言之。上述的操作S1000-S4000以及后续的循环迭代方法的实施并不依赖于软信息生成器10和LDPC译码器20是否存在。本领域技术人员可以将上述的操作单独地实现在结果分析装置和/或主机中,并用在不用类型的场景下。结果分析装置可以采用软件,硬件,固件,通用/专用集成电路(ASIC)等各种方式来实现。
图9示出了根据本发明另一个方面的生成LDPC软信息的设备的示意性框图。如图9所示,本发明的设备包括:第一装置M10,用于指示读取针对存储设备中存储数据的硬比特数据;第二装置M20,用于接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出;第三装置M30,用于响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;第四装置M40,用于指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码。
上述的装置可以由软件来实现,也可以由硬件,例如电路来实现,本发明并不限制其实施方式。
根据本发明的另一方面,如图10所示,还提供一种LDPC译码的方法,包括:在操作S910,读取针对存储设备中存储数据的硬比特数据;在操作S920,基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出;如果所述LDPC硬判决译码的结果为失败,那么在操作S930,读取与所述硬比特数据相关联的软比特数据;在操作S940,将所述硬判决译码输出和所述软比特数据映射为软信息;在操作S950,基于所述软信息进行LDPC软判决译码。
上述的方法,可以共同地实施在一个包括了软信息生成器、LDPC译码器和控制装置的一体化设备中,也可以以软件的形式实施在一个能够运行该软件的设备中。
图11示出了根据本发明一个实施方式的LDPC译码的方法的流程图。
如图11所示,首先,在操作S910,读取针对存储设备中存储数据的硬比特数据。该读取动作可以由软信息生成器10来执行,也可以由处理设备30来执行。这里的读取并不限制具体的执行实体。
接下来,在操作S920,基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出。通常,该操作可以在LDPC译码器处执行。LDPC硬判决译码的结果包含了译码成功和译码失败两种情况,而硬判决译码输出包括了译码成功后的码字或失败后输出的码字。如果成功,则认为对存储数据的译码成功,此时结束本次运行,如图11所示。
如果所述LDPC硬判决译码的结果为失败,那么在操作S930,读取与所述硬比特数据相关联的软比特数据。软比特总是与特定的硬比特相关联,上文已进行了详细描述,这里将不再赘述。
更进一步地,在操作S940,将所述硬判决译码输出和所述软比特数据映射为软信息。此时,生成的软信息包含了硬判决译码输出的错误码字以及读取的软比特。
最后,在操作S950,基于所述软信息进行LDPC软判决译码。
如图11所示,LDPC译码的方法进一步包括:如果LDPC软判决译码的结果为失败,则循环地执行操作S930-S950,直至满足特定的条件。
具体而言,本发明的方法进一步包括循环地执行以下操作:如果所述LDPC软判决译码的结果为失败,则确定所述LDPC软判决译码的失败次数是否超过第一次数N;如果未超过所述第一次数N;则读取与所述硬比特数据相关联的第一更新后软比特数据(S930);将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息(S940);基于所述第一更新后软信息进行LDPC软判决译码(S950)。
根据本发明的一个实施方式,如图11所示,本发明的方法进一步包括:循环地执行以下操作:如果所述LDPC软判决译码的失败次数超过第一次数N;则确定所述LDPC硬判决译码的次数是否超过第二次数M;如果未超过所述第二次数M,则读取针对所述存储设备中存储数据的更新后硬比特数据(S910);基于所述更新后硬比特数据进行LDPC硬判决译码,得到更新后LDPC硬判决译码的结果和更新后硬判决译码输出(S920),如果所述更新后LDPC硬判决译码的结果为失败,则读取与所述更新后硬比特数据相关联的第二更新后软比特数据(S930);将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息(S940);基于所述第二更新后软信息进行LDPC软判决译码(S950)。
本领域技术人员可以理解,这里所述的“第一”和“第二”也是一个动态的概念,随着硬比特不断地更新和迭代,原先的“第二软比特数据”在下一轮循环中可以指示为“第一软比特数据”,而新入读的软比特数据则可以称为“第二软比特数据”。本发明中的第一、第二、更新等术语是一个动态而不是静态的概念。
在基于更新后的硬比特读取了新的软比特之后,可以将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息。
然后,可以基于所述第二更新后软信息进行LDPC软判决译码。
可以理解,如果上面译码中的任何一次译码成功,则可以报告译码成功,此时结束本次运行,。而如果对硬比特的译码失败次数超过第二次数M,则意味着成功译码的可能性很低,在此情况下,则报告译码失败。
从上面的描述中可以看出,与现有技术相比,在对软信息的译码失败之后,本发明并不立刻读取新的硬比特,而是在同一硬比特数据的基础上多次读取软比特,将基于该硬比特数据进行硬判决译码而得到的输出与读入的新的软比特组合成为新的软信息,并不断地对新生成的软信息进行译码,直到在若干次数之后仍然无法对软信息进行译码才读取新的硬比特。
LDPC本身是一种迭代译码算法,迭代过程中,一个比特会根据其他比特传递过来的信息决定是否更改本比特的值,因此迭代一次会得到一个更正过的码字,迭代后会校验更正过的码字是否是一个合法码字,如果是则译码成功,否则开始下一次迭代,直到超过预先设定的最大迭代次数。本发明的一个实施方式在做软判决译码时利用硬判决译码的迭代后的码字和新读入的软比特共同拼接成的软信息,软译码成功率高。
图12示出了根据本发明另一个方面的生成LDPC软信息的设备的示意性框图。
如图12所示,本发明的设备包括:第一装置M100,用于读取针对存储设备中存储数据的硬比特数据;第二装置M200,用于基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出;第三装置M300,用于如果所述LDPC硬判决译码的结果为失败,读取与所述硬比特数据相关联的软比特数据;第四装置M400,用于将所述硬判决译码输出和所述软比特数据映射为软信息;以及第五装置M500,用于基于所述软信息进行LDPC软判决译码。
上述的装置可以由软件来实现,也可以由硬件,例如电路来实现,本发明并不限制其实施方式。
图13示出了根据本发明实施例的对存储器读出数据进行LDPC译码的示意图。如图13所示,作为举例,在NVM中存储(被写入)的比特序列1300是全为0的比特序列,而从NVM中读出该比特序列时,由于NVM本身的特性,可能存在一些错误的比特,所读出的比特序列被称为硬比特(HB)序列1310。对所读出的硬比特(HB)序列1310进行硬判决译码,得到硬判决译码输出的比特序列1320,在硬判决译码中还输出指示硬判决译码成功与否的硬判决译码结果(未示出)。在图13的例子中,硬判决译码输出的比特序列1320不同于NVM存储的比特序列1300,相应地,硬判决译码结果为失败。
在图13的例子中,响应于硬判决译码结果为失败,从NVM中读出与硬比特(HB)序列1310相关联的软比特(SB)序列SB01330与软比特序列SB11340。将硬判决译码输出的比特序列1320、软比特序列1330以及软比特序列1340映射为软信息,并利用软信息进行LDPC软译码。在一个例子中,将硬判决译码输出的比特序列1320、软比特序列1330以及软比特序列1340的对应比特映射为软信息。
如图13所示,通过本发明的优选实施方式,与现有技术相比(参见图2),本发明在硬判决译码失败之后,并不再频繁地再次读入硬比特。而是利用硬判决译码输出的比特序列1320与软比特序列1330、软比特序列1340来生成软信息。以及每当软信息的译码失败之后,也不再频繁地读入硬比特。在本发明中,如图13所示,在一定的软信息的译码失败次数之内,无需重复读取硬比特,在软判决译码失败之后仅需要重新读入新的软比特序列1330和/或新的软比特序列1340。而只有软判决译码失败次数超过了一定范围,才重新读入新的硬比特。因此,本发明可以降低重新读取硬比特的次数,提高吞吐量。
此外,LDPC是一种迭代译码算法,迭代过程中,一个比特会根据其他比特传递过来的信息决定是否更改本比特的值,因此迭代一次会得到一个更正过的码字,迭代后会校验更正过的码字是否是一个合法码字,如果是则译码成功并结束本次运行,否则开始下一次迭代,直到超过预先设定的最大迭代次数。
硬判决在一定概率下无法正常译码,而码字在硬判决阶段经过多次译码迭代后得到的译码结果中存在较少的错误比特。也就是说,根据本发明的实施方式,随着迭代次数的增加,将有更多的码字会得到更正,本发明的实施方式在做软判决译码时利用硬判决译码的迭代后的码字和新读入的软比特共同拼接成的软信息,软译码成功率得到提高。
根据本发明的一个方面,本发明还提供一种包含计算机程序代码的计算机程序,当被载入计算机系统并在计算机系统上执行时,所述计算机程序代码使所述计算机系统执行上面所述的方法。
根据本发明的另一个方面,还提供一种包括程序代码的程序,当被载入存储设备并在存储设备上执行时,所述计程序代码使所述存储设备执行上面所述的方法。
应该理解,框图和流程图的每个框以及框图和流程图的框的组合可以分别由包括计算机程序指令的各种装置来实施。这些计算机程序指令可以加载到通用计算机、专用计算机或其他可编程数据控制设备上以产生机器,从而在计算机或其他可编程数据控制设备上执行的指令创建了用于实现一个或多个流程图框中指定的功能的装置。
这些计算机程序指令还可以存储在可以引导计算机或其他可编程数据控制设备的计算机可读存储器中从而以特定方式起作用,从而能够利用存储在计算机可读存储器中的指令来制造包括用于实现一个或多个流程图框中所指定功能的计算机可读指令的制品。计算机程序指令还可以加载到计算机或其他可编程数据控制设备上以使得在计算机或其他可编程数据控制设备上执行一系列的操作步骤,从而产生计算机实现的过程,进而在计算机或其他可编程数据控制设备上执行的指令提供了用于实现一个或多个流程图框中所指定功能的步骤。
因而,框图和流程图的框支持用于执行指定功能的装置的组合、用于执行指定功能的步骤的组合和用于执行指定功能的程序指令装置的组合。还应该理解,框图和流程图的每个框以及框图和流程图的框的组合可以由执行指定功能或步骤的、基于硬件的专用计算机系统实现,或由专用硬件和计算机指令的组合实现。
上述的不同块、操作以及技术的至少一部分可以被执行,通过使用硬件,控制设备执行固件指令,控制设备执行软件指令,或者及其任意组合。当采用执行固件以及软件指令的控制设备执行时,软件或固件指令可以被存储在任意计算机可读存储介质中,例如磁盘,光盘或者其他存储介质,在RAM或者ROM或者flash存储器,控制设备,硬盘,光盘,磁盘等等。同样地,软件和固件指令可以被传输到用户或者系统,通过任意已知的或者期望的传输方式包括,例如,在计算机可读盘或者其他便携式计算机存储机制或者通过通信媒介。通信媒介典型地具体化计算机可读指令,数据结构,序模块或者在已调制数据信号中的其它数据例如载波或者其他传输机制。通过示例,并非限制,通信介质包括有线介质例如有线网络或者单线连接,以及无线媒介,例如声、无线频率,红外以及其它无线介质。从而,软件和固件指令可以被传输给用户或者系统,通过通信信道,例如电话线,DSL线,电缆电视线,光纤线缆,无线信道,因特网,等等(通过便携式存储介质提供这样的软件,其被看作是相同的或者可互换的)。软件或者固件指令可以包括机器可读指令,这些可读指令在由控制设备执行时,导致控制设备执行不同动作。
当在硬件中执行时,硬件可以包括一个或多个离散组件,集成电路,应用的集成电路(ASIC),等等。
需要理解的是,本发明可以以纯软件、纯硬件、固件以及上述的各种组合来实现。硬件例如可以是控制设备、专用集成电路、大规模集成电路等等。
虽然当前发明参考的示例被描述,其只是为了解释的目的而不是对本发明的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本发明的范围。
这些实施方式所涉及的、从上面描述和相关联的附图中呈现的教导获益的领域中的技术人员将认识到这里记载的本发明的很多修改和其他实施方式。因此,应该理解,本发明不限于公开的具体实施方式,旨在将修改和其他实施方式包括在所附权利要求书的范围内。尽管在这里采用了特定的术语,但是仅在一般意义和描述意义上使用它们并且不是为了限制的目的而使用。
Claims (10)
1.一种生成LDPC软信息的方法,包括:
指示读取针对存储设备中存储数据的硬比特数据;
接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出,
响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;
指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码。
2.根据权利要求1所述的方法,进一步包括,循环地执行以下操作:
如果所述LDPC软判决译码的结果为失败,则
确定所述LDPC软判决译码的失败次数是否超过第一次数;
如果未超过所述第一次数;则
指示读取与所述硬比特数据相关联的第一更新后软比特数据;
指示将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息,以用于进行LDPC软判决译码。
3.根据权利要求2所述的方法,进一步包括,循环地执行以下操作:
如果所述LDPC软判决译码的失败次数超过第一次数;则
确定所述LDPC硬判决译码的次数是否超过第二次数;
如果未超过所述第二次数,则
指示读取针对所述存储设备中存储数据的更新后硬比特数据;
接收基于所述更新后硬比特数据进行LDPC硬判决译码的更新后LDPC硬判决译码的结果和更新后硬判决译码输出,如果所述更新后LDPC硬判决译码的结果为失败,
则指示读取与所述更新后硬比特数据相关联的第二更新后软比特数据;
指示将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息,以用于进行LDPC软判决译码。
4.一种LDPC译码方法,包括:
读取针对存储设备中存储数据的硬比特数据;
基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出,
如果所述LDPC硬判决译码的结果为失败,则读取与所述硬比特数据相关联的软比特数据;
将所述硬判决译码输出和所述软比特数据映射为软信息;
基于所述软信息进行LDPC软判决译码。
5.根据权利要求4所述的方法,进一步包括,循环地执行以下操作:
如果所述LDPC软判决译码的结果为失败,则
确定所述LDPC软判决译码的失败次数是否超过第一次数;
如果未超过所述第一次数;则
读取与所述硬比特数据相关联的第一更新后软比特数据;
将所述硬判决译码输出和所述第一更新后软比特数据映射为第一更新后软信息;
基于所述第一更新后软信息进行LDPC软判决译码。
6.根据权利要求5所述的方法,进一步包括:循环地执行以下操作:
如果所述LDPC软判决译码的失败次数超过第一次数;则
确定所述LDPC硬判决译码的次数是否超过第二次数;
如果未超过所述第二次数,则
读取针对所述存储设备中存储数据的更新后硬比特数据;
基于所述更新后硬比特数据进行LDPC硬判决译码,得到更新后LDPC硬判决译码的结果和更新后硬判决译码输出,如果所述更新后LDPC硬判决译码的结果为失败,
则读取与所述更新后硬比特数据相关联的第二更新后软比特数据;
将所述更新后硬判决译码输出和所述第二更新后软比特数据映射为第二更新后软信息;
基于所述第二更新后软信息进行LDPC软判决译码。
7.一种LDPC译码的方法,包括:
控制设备指示读取针对存储设备中存储数据的硬比特数据;
软信息生成器存储所述硬比特数据;
LDPC译码器基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出;
所述控制设备从所述LDPC译码器接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出;
控制设备响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;
所述软信息生成器从所述LDPC译码器至少接收硬判决译码输出,并将所述硬判决译码输出和所述软比特映射为软信息;
所述LDPC译码器基于所述软信息进行LDPC软判决译码,得到LDPC软判决译码的结果,并将所述LDPC软判决译码的结果发送给所述控制设备。
8.一种LDPC译码设备,包括:
用于读取针对存储设备中存储数据的硬比特数据的装置;
用于基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出的装置;
用于如果所述LDPC硬判决译码的结果为失败,则读取与所述硬比特数据相关联的软比特数据的装置;
用于将所述硬判决译码输出和所述软比特数据映射为软信息的装置;
用于基于所述软信息进行LDPC软判决译码的装置。
9.一种生成LDPC软信息的设备,包括:
用于指示读取针对存储设备中存储数据的硬比特数据的装置;
用于接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出的装置,
用于如果所述LDPC硬判决译码的结果为失败,则指示读取与所述硬比特数据相关联的软比特数据的装置;
用于指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码的装置。
10.一种LDPC译码系统,包括:软信息生成器,LDPC译码器以及控制设备,其中,
所述软信息生成器用于:
存储针对存储设备中存储数据的硬比特数据和/或软比特数据;
从所述LDPC译码器至少接收硬判决译码输出,
将所述硬判决译码输出和所述软比特映射为软信息;
所述LDPC译码器用于
基于所述硬比特数据进行LDPC硬判决译码,得到LDPC硬判决译码的结果和硬判决译码输出,和/或
基于所述软信息进行LDPC软判决译码,得到LDPC软判决译码的结果;以及
所述控制设备用于:
指示读取针对存储设备中存储数据的硬比特数据;
接收基于所述硬比特数据进行的LDPC硬判决译码的结果和硬判决译码输出,
响应于所述LDPC硬判决译码的结果为失败,指示读取与所述硬比特数据相关联的软比特数据;
指示将所述硬判决译码输出和所述软比特数据映射为软信息,以用于进行LDPC软判决译码。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510398193.5A CN106341136B (zh) | 2015-07-08 | 2015-07-08 | Ldpc解码方法及其装置 |
CN202110482557.3A CN113225091A (zh) | 2015-07-08 | 2015-07-08 | Ldpc解码方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510398193.5A CN106341136B (zh) | 2015-07-08 | 2015-07-08 | Ldpc解码方法及其装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110482557.3A Division CN113225091A (zh) | 2015-07-08 | 2015-07-08 | Ldpc解码方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106341136A true CN106341136A (zh) | 2017-01-18 |
CN106341136B CN106341136B (zh) | 2021-05-25 |
Family
ID=57826053
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510398193.5A Active CN106341136B (zh) | 2015-07-08 | 2015-07-08 | Ldpc解码方法及其装置 |
CN202110482557.3A Pending CN113225091A (zh) | 2015-07-08 | 2015-07-08 | Ldpc解码方法及其装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110482557.3A Pending CN113225091A (zh) | 2015-07-08 | 2015-07-08 | Ldpc解码方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN106341136B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154902A (zh) * | 2017-12-22 | 2018-06-12 | 联芸科技(杭州)有限公司 | 存储器的高可靠性错误检测方法、读取控制方法及装置 |
CN108628695A (zh) * | 2017-03-22 | 2018-10-09 | 北京忆恒创源科技有限公司 | 互信息计算方法与装置 |
CN109634772A (zh) * | 2018-11-01 | 2019-04-16 | 西南交通大学 | 一种用于nand闪存数据的迭代差错控制方法和装置 |
CN109669806A (zh) * | 2018-12-24 | 2019-04-23 | 西南交通大学 | 一种用于nand闪存的译码似然比软值的生成方法和装置 |
CN109686398A (zh) * | 2018-12-24 | 2019-04-26 | 西南交通大学 | 一种用于nand闪存的似然比软值的生成方法和装置 |
CN111147084A (zh) * | 2018-11-06 | 2020-05-12 | 北京忆芯科技有限公司 | 多通道并行译码器及其译码方法 |
CN111162794A (zh) * | 2018-11-08 | 2020-05-15 | 北京忆芯科技有限公司 | 译码数据缓存方法和译码器 |
CN111190764A (zh) * | 2020-01-13 | 2020-05-22 | 山东华芯半导体有限公司 | 一种获得nand闪存ldpc码软信息的方法 |
CN112599169A (zh) * | 2020-12-30 | 2021-04-02 | 联芸科技(杭州)有限公司 | 存储器的读操作控制方法及装置以及存储器控制器 |
CN113131947A (zh) * | 2019-12-30 | 2021-07-16 | 华为技术有限公司 | 译码方法、译码器和译码装置 |
CN113612581A (zh) * | 2021-08-03 | 2021-11-05 | 浙江极传信息技术有限公司 | 一种通用高吞吐率的ldpc译码方法及系统 |
CN114078560A (zh) * | 2021-10-22 | 2022-02-22 | 北京得瑞领新科技有限公司 | Nand闪存芯片的纠错译码方法、存储介质及ssd设备 |
WO2023103141A1 (zh) * | 2021-12-06 | 2023-06-15 | 上海垣信卫星科技有限公司 | Ldpc解码装置及其方法,低轨道卫星接收设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567339B (zh) * | 2022-02-24 | 2024-04-12 | 哲库科技(北京)有限公司 | 基带芯片、信号解调方法、终端设备、存储介质和产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1307432A (zh) * | 2000-01-24 | 2001-08-08 | 华为技术有限公司 | 用于Turbo码的解码方法和解码器 |
CN101136898A (zh) * | 2006-08-28 | 2008-03-05 | 大唐移动通信设备有限公司 | 一种正交调幅软判决方法及装置 |
WO2008141094A1 (en) * | 2007-05-10 | 2008-11-20 | Comsys Communication & Signal Processing Ltd. | Multiple-input multiple-output (mimo) detector incorporating efficient signal point search and soft information refinement |
CN101552613A (zh) * | 2009-05-14 | 2009-10-07 | 上海交通大学 | 基于外信息符号变化的低密度校验码译码方法 |
CN101562499A (zh) * | 2009-05-27 | 2009-10-21 | 西安电子科技大学 | 16apsk编码调制中软判决信息获取方法 |
US20100275088A1 (en) * | 2009-04-22 | 2010-10-28 | Agere Systems Inc. | Low-latency decoder |
WO2010068772A3 (en) * | 2008-12-12 | 2011-03-03 | Qualcomm Incorporated | Near soft-output maximum likelihood detection for multiple-input multiple-output systems using reduced list detection |
CN101997639A (zh) * | 2009-08-10 | 2011-03-30 | 中兴通讯股份有限公司 | 低密度奇偶校验-多输入多输出通信系统的迭代接收方法 |
CN103503319A (zh) * | 2013-04-03 | 2014-01-08 | 华为技术有限公司 | 一种译码方法、译码装置和通信系统 |
CN103684694A (zh) * | 2013-12-23 | 2014-03-26 | 东莞中山大学研究院 | 一种适用于ofdm基带系统的软比特解码系统 |
-
2015
- 2015-07-08 CN CN201510398193.5A patent/CN106341136B/zh active Active
- 2015-07-08 CN CN202110482557.3A patent/CN113225091A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1307432A (zh) * | 2000-01-24 | 2001-08-08 | 华为技术有限公司 | 用于Turbo码的解码方法和解码器 |
CN101136898A (zh) * | 2006-08-28 | 2008-03-05 | 大唐移动通信设备有限公司 | 一种正交调幅软判决方法及装置 |
WO2008141094A1 (en) * | 2007-05-10 | 2008-11-20 | Comsys Communication & Signal Processing Ltd. | Multiple-input multiple-output (mimo) detector incorporating efficient signal point search and soft information refinement |
WO2010068772A3 (en) * | 2008-12-12 | 2011-03-03 | Qualcomm Incorporated | Near soft-output maximum likelihood detection for multiple-input multiple-output systems using reduced list detection |
US20100275088A1 (en) * | 2009-04-22 | 2010-10-28 | Agere Systems Inc. | Low-latency decoder |
CN101552613A (zh) * | 2009-05-14 | 2009-10-07 | 上海交通大学 | 基于外信息符号变化的低密度校验码译码方法 |
CN101562499A (zh) * | 2009-05-27 | 2009-10-21 | 西安电子科技大学 | 16apsk编码调制中软判决信息获取方法 |
CN101997639A (zh) * | 2009-08-10 | 2011-03-30 | 中兴通讯股份有限公司 | 低密度奇偶校验-多输入多输出通信系统的迭代接收方法 |
CN103503319A (zh) * | 2013-04-03 | 2014-01-08 | 华为技术有限公司 | 一种译码方法、译码装置和通信系统 |
CN103684694A (zh) * | 2013-12-23 | 2014-03-26 | 东莞中山大学研究院 | 一种适用于ofdm基带系统的软比特解码系统 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628695A (zh) * | 2017-03-22 | 2018-10-09 | 北京忆恒创源科技有限公司 | 互信息计算方法与装置 |
CN108154902A (zh) * | 2017-12-22 | 2018-06-12 | 联芸科技(杭州)有限公司 | 存储器的高可靠性错误检测方法、读取控制方法及装置 |
CN109634772A (zh) * | 2018-11-01 | 2019-04-16 | 西南交通大学 | 一种用于nand闪存数据的迭代差错控制方法和装置 |
CN109634772B (zh) * | 2018-11-01 | 2020-09-25 | 西南交通大学 | 一种用于nand闪存数据的迭代差错控制方法和装置 |
CN111147084A (zh) * | 2018-11-06 | 2020-05-12 | 北京忆芯科技有限公司 | 多通道并行译码器及其译码方法 |
CN111147084B (zh) * | 2018-11-06 | 2023-12-19 | 北京忆芯科技有限公司 | 多通道并行译码器及其译码方法 |
CN111162794A (zh) * | 2018-11-08 | 2020-05-15 | 北京忆芯科技有限公司 | 译码数据缓存方法和译码器 |
CN111162794B (zh) * | 2018-11-08 | 2023-10-20 | 北京忆芯科技有限公司 | 译码数据缓存方法和译码器 |
CN109669806A (zh) * | 2018-12-24 | 2019-04-23 | 西南交通大学 | 一种用于nand闪存的译码似然比软值的生成方法和装置 |
CN109686398A (zh) * | 2018-12-24 | 2019-04-26 | 西南交通大学 | 一种用于nand闪存的似然比软值的生成方法和装置 |
CN113131947A (zh) * | 2019-12-30 | 2021-07-16 | 华为技术有限公司 | 译码方法、译码器和译码装置 |
US11750219B2 (en) | 2019-12-30 | 2023-09-05 | Huawei Technologies Co., Ltd. | Decoding method, decoder, and decoding apparatus |
CN113131947B (zh) * | 2019-12-30 | 2023-11-10 | 华为技术有限公司 | 译码方法、译码器和译码装置 |
CN111190764A (zh) * | 2020-01-13 | 2020-05-22 | 山东华芯半导体有限公司 | 一种获得nand闪存ldpc码软信息的方法 |
CN112599169B (zh) * | 2020-12-30 | 2022-09-23 | 联芸科技(杭州)股份有限公司 | 存储器的读操作控制方法及装置以及存储器控制器 |
CN112599169A (zh) * | 2020-12-30 | 2021-04-02 | 联芸科技(杭州)有限公司 | 存储器的读操作控制方法及装置以及存储器控制器 |
CN113612581A (zh) * | 2021-08-03 | 2021-11-05 | 浙江极传信息技术有限公司 | 一种通用高吞吐率的ldpc译码方法及系统 |
CN114078560A (zh) * | 2021-10-22 | 2022-02-22 | 北京得瑞领新科技有限公司 | Nand闪存芯片的纠错译码方法、存储介质及ssd设备 |
CN114078560B (zh) * | 2021-10-22 | 2022-06-17 | 北京得瑞领新科技有限公司 | Nand闪存芯片的纠错译码方法、存储介质及ssd设备 |
WO2023103141A1 (zh) * | 2021-12-06 | 2023-06-15 | 上海垣信卫星科技有限公司 | Ldpc解码装置及其方法,低轨道卫星接收设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106341136B (zh) | 2021-05-25 |
CN113225091A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106341136A (zh) | Ldpc解码方法及其装置 | |
KR101306645B1 (ko) | 시행착오에 의한 에러 보정 디코딩 | |
US10608672B2 (en) | Decoding concatenated codes by guessing noise | |
US9891991B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US7823043B2 (en) | Corruption-resistant data porting with multiple error correction schemes | |
CN108563532B (zh) | 数据处理方法及相关装置 | |
CN105453439B (zh) | 用于乘积码的组合纠错和擦除解码的系统和方法 | |
US20120096328A1 (en) | Multi-write endurance and error control coding of non-volatile memories | |
TWI509624B (zh) | 快閃記憶體裝置、記憶體控制器及快閃記憶體的控制方法 | |
TW201642266A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201810025A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN108958963A (zh) | 一种基于ldpc和循环冗余校验码的nand flash差错控制方法 | |
CN109361403A (zh) | Ldpc译码方法、ldpc译码器及其存储设备 | |
JP2019125910A (ja) | メモリシステム | |
CN111813591B (zh) | Nand Flash的数据纠错方法、装置、电子设备及存储介质 | |
CN112558875A (zh) | 数据校验方法、装置、电子设备及存储介质 | |
CN105095011B (zh) | 数据处理方法、存储器控制电路单元以及存储器存储装置 | |
CN109901784A (zh) | 数据存取方法、存储器控制电路单元以及存储器储存装置 | |
Schoeny et al. | Analysis and coding schemes for the flash normal-Laplace mixture channel | |
KR20160075001A (ko) | 플래시 메모리 시스템 동작 방법 | |
CN111464267A (zh) | 通信数据校验方法、装置、计算机设备和存储介质 | |
TWI751620B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI739157B (zh) | 快閃記憶體控制器、儲存裝置及讀取方法 | |
CN111522687B (zh) | 数据处理方法、装置、固态硬盘及计算机可读存储介质 | |
CN107423159B (zh) | 一种基于闪存错误模式提升ldpc译码性能的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EC01 | Cancellation of recordation of patent licensing contract |
Assignee: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd. Assignor: Shanghai Pleiades Microelectronics Co.,Ltd. Contract record no.: 2016110000016 Date of cancellation: 20211026 |
|
EC01 | Cancellation of recordation of patent licensing contract |