CN115499017B - 闪存编解码方法及装置、介质、固态硬盘 - Google Patents

闪存编解码方法及装置、介质、固态硬盘 Download PDF

Info

Publication number
CN115499017B
CN115499017B CN202211420536.XA CN202211420536A CN115499017B CN 115499017 B CN115499017 B CN 115499017B CN 202211420536 A CN202211420536 A CN 202211420536A CN 115499017 B CN115499017 B CN 115499017B
Authority
CN
China
Prior art keywords
matrix
sequence
check
extended
core
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.)
Active
Application number
CN202211420536.XA
Other languages
English (en)
Other versions
CN115499017A (zh
Inventor
刘晓健
秦东润
王嵩
康雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dera Technology Co Ltd
Original Assignee
Beijing Dera Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dera Technology Co Ltd filed Critical Beijing Dera Technology Co Ltd
Priority to CN202211420536.XA priority Critical patent/CN115499017B/zh
Publication of CN115499017A publication Critical patent/CN115499017A/zh
Application granted granted Critical
Publication of CN115499017B publication Critical patent/CN115499017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明涉及一种闪存编解码方法及装置、介质、固态硬盘。方法包括:针对QLC闪存采用如下步骤进行编码:确定TLC闪存使用的核心矩阵,并采用核心矩阵对应的生成矩阵对待编码序列进行编码,得到第一校验比特序列;确定核心矩阵对应的扩展矩阵,扩展矩阵中包括核心矩阵、第一扩展矩阵、第二扩展矩阵和第三扩展矩阵,第二扩展矩阵和第三扩展矩阵形成一个校验矩阵;采用校验矩阵对待编码序列进行编码,得到第二校验比特序列;将待编码序列、第一校验比特序列和第二校验比特序列进行拼接,得到编码序列。本发明可以采用经过验证的核心矩阵,降低重新设计核心矩阵的风险。

Description

闪存编解码方法及装置、介质、固态硬盘
技术领域
本发明涉及固态硬盘技术领域,尤其是涉及一种闪存编解码方法及装置、介质、固态硬盘。
背景技术
NAND 闪存从SLC发展到TLC、QLC,出错概率随着bit密度的增加而增大。SLC是指一个存储单元存储1bit的存储方式,TLC是指一个存储单元存储3bits的存储方式,QLC是指一个存储单元存储4bits的存储方式,bit的含义是“位”。
近年来,QLC闪存逐渐被各大存储器厂商接受。为了应对QLC闪存显著高于TLC闪存的原始错误率,必须使用更低码率的低密度奇偶校验码(英文为Low Density ParityCheck Code,缩写为LDPC码)。在参与编码的有效信息长度不变的情况下,更低的码率意味着更大的码长。相比TLC闪存,QLC闪存的字线具备更大的分享空间来支持低码率的LDPC码。其中,码率是指单位时间内传送比特的数目。
然而,更大码长意味着要使用更大尺寸的校验矩阵。而且一款固态硬盘SSD的控制器通常要同时支持TLC闪存和QLC闪存,如果为两种颗粒分别设计不同的核心矩阵进而得到不同的校验矩阵,显然会增加芯片的实现成本。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种闪存编解码方法及装置、介质、固态硬盘。
第一方面,本发明实施例提供一种闪存编解码方法,在该方法中针对QLC闪存采用如下步骤进行编码:
确定TLC闪存使用的核心矩阵,并采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第一校验比特序列;
确定所述核心矩阵对应的扩展矩阵,所述扩展矩阵中包括所述核心矩阵、第一扩展矩阵、第二扩展矩阵和第三扩展矩阵,所述第一扩展矩阵为与所述核心矩阵行数相同的0矩阵,所述第三扩展矩阵为与所述第二扩展矩阵行数相同的单位对角阵,所述第二扩展矩阵和所述第三扩展矩阵形成一个校验矩阵;
采用所述校验矩阵对所述待编码序列进行编码,得到第二校验比特序列;
将所述待编码序列、所述第一校验比特序列和所述第二校验比特序列进行拼接,得到编码序列。
第二方面,本发明实施例提供一种闪存编解码装置,在该装置中针对QLC闪存采用如下模块进行编码:
第一编码模块,用于确定TLC闪存使用的核心矩阵,并采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第一校验比特序列;
第一确定模块,用于确定所述核心矩阵对应的扩展矩阵,所述扩展矩阵中包括所述核心矩阵、第一扩展矩阵、第二扩展矩阵和第三扩展矩阵,所述第一扩展矩阵为与所述核心矩阵行数相同的0矩阵,所述第三扩展矩阵为与所述第二扩展矩阵行数相同的单位对角阵,所述第二扩展矩阵和所述第三扩展矩阵形成一个校验矩阵;
第二编码模块,用于采用所述校验矩阵对所述待编码序列进行编码,得到第二校验比特序列;
第一拼接模块,用于将所述待编码序列、所述第一校验比特序列和所述第二校验比特序列进行拼接,得到编码序列。
第三方面,本发明实施例提供一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面提供的所述的方法。
第四方面,本发明实施例提供一种固态硬盘,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面提供的所述方法的步骤。
本发明实施例提供的一种闪存编解码方法及装置、介质、固态硬盘,各自或者组合后至少具有如下技术效果:
(1)针对QLC闪存,确定TLC闪存使用的核心矩阵,并采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第一校验比特序列;确定所述核心矩阵对应的扩展矩阵,所述第二扩展矩阵和所述第三扩展矩阵形成一个校验矩阵,然后采用所述校验矩阵对所述待编码序列进行编码,得到第二校验比特序列,将所述待编码序列、所述第一校验比特序列和所述第二校验比特序列进行拼接,得到编码序列。可见,这个过程中可以采用已经针对TLC闪存设计且经过验证的核心矩阵,这样可以降低了重新设计核心矩阵的风险,同时也可以降低芯片的实现成本。而且,扩展矩阵中的第二扩展矩阵和第三扩展矩阵形成一个校验矩阵,该校验矩阵作为一个轻量化的校验矩阵,用于对QLC闪存进行编码,可以显著降低编码复杂度,提高编码速度。
(2)在一个实施例中,第二扩展矩阵满足至少一个限制条件,设置上述第一限制条件的目的是可以使得本发明实施例中编码得到第一校验比特序列和编码得到第二校验比特序列的步骤可以同时进行,从而提高了整体编码速度,提高编码器的吞吐率。设置上述第二限制条件的目的是可以提高解码速度。设置上述第三限制条件的目的是减少扩展矩阵增加的解码器运算量。
(3)在一个实施例中,采用所述扩展矩阵对QLC闪存的待解码序列进行解码处理时,仅采用所述核心矩阵的校验结果作为迭代终止条件,这样做可以大大提高解码速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例中针对QLC闪存进行编码的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,本发明实施例提供一种闪存编解码方法,参见图1,在该方法中针对QLC闪存采用如下步骤S110~S140进行编码:
S110、确定TLC闪存使用的核心矩阵,并采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第一校验比特序列;
其中,核心矩阵是提前设置好的,而且针对任意一个待编码序列,所采用的核心矩阵是相同的。可以采用针对TLC闪存已经经过验证的核心矩阵,这样可以降低了重新设计核心矩阵的风险。
其中,生成矩阵是由核心矩阵经过转换所得到的,由核心矩阵转换得到生成矩阵这个过程也可以参考现有技术中的转换方式。
例如,生成矩阵G的结构为:
G=[Ik,Tk×m]
其中,Ik是k行k列的单位对角阵,Tk×m是k行m列的分块循环矩阵。
在一个实施例中,S110中采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,具体可以包括:将所述待编码序列与所述核心矩阵对应的生成矩阵中的分块循环矩阵相乘,得到所述第一校验比特序列。
例如,待编码序列为X,核心矩阵对应的生成矩阵中的分块循环矩阵为Tk×m,则第一校验比特序列为P1=X·Tk×m。其中,待编码序列X中包含K个比特。
S120、确定所述核心矩阵对应的扩展矩阵,所述扩展矩阵中包括所述核心矩阵、第一扩展矩阵、第二扩展矩阵和第三扩展矩阵,所述第一扩展矩阵为与所述核心矩阵行数相同的0矩阵,所述第三扩展矩阵为与所述第二扩展矩阵行数相同的单位对角阵,所述第二扩展矩阵和所述第三扩展矩阵形成一个校验矩阵;
例如,扩展矩阵的结构如下:
Figure DEST_PATH_IMAGE001
式中,P为扩展矩阵,C为核心矩阵,0为0矩阵,即第一扩展矩阵,E为第二扩展矩阵,I为第三扩展矩阵。
其中,核心矩阵C为m行n列的矩阵,对应一个(m,k,n)的低密度奇偶校验码。在低密度奇偶校验码中位于左侧的M表示低密度奇偶校验码对应的校验矩阵的行数;位于中间的k表示信息位长度,也是待编码序列中比特的个数;位于右侧的n为校验矩阵的列数,即码长。
其中,第一扩展矩阵是一个m行h列的零矩阵。
其中,第二扩展矩阵是一个h行n列的矩阵。
其中,第三扩展矩阵是一个h行h列的单位对角阵,单位对角阵是指对角线上的元素均为1而其它位置上的元素均为0的矩阵。
其中,h的大小在生成扩展矩阵后便可以得知。
其中,第二扩展矩阵和第三扩展矩阵左右拼接,可以得到一个校验矩阵,这个校验矩阵的低密度奇偶校验码为(h,n,n+h)。
S130、采用所述校验矩阵对所述待编码序列进行编码,得到第二校验比特序列;
在一个实施例中,S130中可以具体包括:
根据奇偶校验原则以及所述第二校验比特序列中的每一个元素为0或1,确定所述第二校验比特序列;其中,所述奇偶校验原则为所述校验矩阵中的每一行与第一拼接向量相乘后等于0,所述第一拼接向量为所述待编码序列中的各个元素和所述第二校验比特序列中的各个元素拼接得到的一个列向量。
上文中涉及到两个原则,一个是奇偶校验原则,一个是二进制原则,二进制原则是指编码后的序列中的元素只能是1或者0,不存在负值,更不存在其它大于1的值。
其中,奇偶校验原则是指所述校验矩阵中的每一行与第一拼接向量相乘后等于0,所述第一拼接向量为所述待编码序列中的各个元素和所述第二校验比特序列中的各个元素拼接得到的一个列向量。
针对奇偶校验原则,举例如下:
假设待编码序列为(x1,x2) ,待生成的第二校验比特序列为(p1,p2) ,两个序列拼接后得到一个列向量,该列向量为第一拼接向量,第一拼接向量为4行1列的向量,具体如下:
Figure 344631DEST_PATH_IMAGE002
第二扩展矩阵和第三扩展矩阵形成的校验矩阵[E,I]为:
Figure DEST_PATH_IMAGE003
将校验矩阵中的第一行[1,1,1,0]与上述第一拼接向量相乘后等于0,即得到一个计算式:x1*1+x2*1+p1*1+p2*0=0。将校验矩阵中的第二行[0,1,0,1]与上述第一拼接向量相乘后等于0,即得到一个计算式:x1*0+x2*1+p1*0+p2*1=0。
由上述两个计算式,可以推导出:p1=-(x1+x2) ,p2=-x2
但是基于上述二进制原则,可知p1、p2不可能是负值,只能是1或者0,因此将p1=-(x1+x2) 演变为p1=x1⊕x2,即x1和x2为异或运算。p2=-x2演变为p2=x2。根据这两个演变计算式可以计算出p1、p2,从而得到第二校验比特序列。
可见,在编码过程中,针对p1=-(x1+x2) 这样的计算式均演变为异或关系的计算式。
基于上述两个原则,经过简单的运算就可以得到第二校验比特序列。
可理解的是,当前主流的低密度奇偶校验码的校验矩阵都是准循环阵。如果传统的方式构造校验矩阵,以用于对QLC闪存进行编码,那么校验矩阵的行数非常大,这样会显著提高编码器的复杂度,并增加编码延时。而在本发明实施例中将扩展矩阵中的第二扩展矩阵和第三扩展矩阵形成一个校验矩阵,作为一个轻量化的校验矩阵,用于对QLC闪存进行编码,可以显著降低编码复杂度,提高编码速度。
S140、将所述待编码序列、所述第一校验比特序列和所述第二校验比特序列进行拼接,得到编码序列。
即,这里将待编码序列、第一校验比特序列和所述第二校验比特序列拼接为一个长向量,该长向量即编码后的编码序列。
在一个实施例中,所述第二扩展矩阵可以满足以下至少一个限制条件:
第一限制条件为所述第二扩展矩阵的最后m列中只包含0元素,m为所述核心矩阵的行数;
第二限制条件为所述第二扩展矩阵的各行满足准正交条件;
第三限制条件为所述第二扩展矩阵的最大行重小于等于所述核心矩阵的平均行重的50%。
设置上述第一限制条件的目的是可以使得S110和S130两种编码过程同时进行。原因是:第二扩展矩阵E的最后m列对应于低密度奇偶校验码(m,k,n)的后m个校验比特。如果第二扩展矩阵E的最后m列上有非零元素,根据单奇偶校验码的编码规则可知,必须等到核心矩阵对应的低密度奇偶校验码编码完成,得到低密度奇偶校验码的校验比特后才能进行扩展矩阵的编码,即需要执行完S110才能执行S130。因此该第一限制条件使得两种编码可以同时进行,从而提高了整体编码速度,提高编码器的吞吐率。
设置上述第二限制条件的目的是可以提高解码速度。所谓“正交”指的是矩阵的任意两行在相同列上最多只有1个非零元素。此处“准正交”适当放宽了条件,即第二扩展矩阵中除了少量的列(例如,占总数的5%以下)以外,其余列都满足“正交”条件。
设置上述第三限制条件的目的是减少扩展矩阵增加的解码器运算量。所谓的行重是指一行中非零元素的个数。
在一个实施例中,本发明实施例提供的方法还可以包括:
采用所述扩展矩阵对QLC闪存的待解码序列进行解码处理;其中,在解码过程中仅采用所述核心矩阵的校验结果作为迭代终止条件。
也就是说,在解码时利用扩展矩阵对待解码矩阵进行解码,这个过程可以参考现有技术中的解码方式,不做过多介绍。
值得注意的是,在现有技术的解码方式中,需要进行多次迭代过程,根据扩展矩阵的校验结果退出迭代过程,从而终止迭代。但是在本发明实施例中,不考虑0矩阵、矩阵E和矩阵I的校验结果,仅考虑核心矩阵C的校验结果,根据核心矩阵C的校验结果判断是否可以退出迭代过程,这样做可以大大提高解码速度。
在一个实施例中,本发明实施例中,针对TLC闪存采用如下步骤S210~S220进行编码:
S210、采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第三校验比特序列;
S220、将所述待编码序列和所述第三校验比特序列进行拼接,得到对应的编码序列。
可见,上述S210与上述S110相同,S220与上述步骤S120相同,也就是说,针对TLC闪存,不需要进行两次编码,仅需要进行一次编。
在一个实施例中,本发明实施例提供的方法还可以包括:
采用所述核心矩阵对TLC闪存的待解码序列进行解码处理。
也就是说,在解码时利用核心矩阵对待解码矩阵进行解码,这个过程可以参考现有技术中的解码方式,不做过多介绍。
本发明实施例给出了上述扩展矩阵,该扩展矩阵中的第二扩展矩阵和第三扩展矩阵形成校验矩阵,该校验矩阵和扩展矩阵中的核心矩阵适用于QLC闪存的校验,同时扩展矩阵中的核心矩阵也适用于TLC闪存的校验,从而使得扩展矩阵可以兼容TLC闪存和QLC闪存的不同码长码率需求。上述校验矩阵的结构比较简单,而且通过校验矩阵和待编码序列的简单运算就可以得到第二校验比特序列。可见,本发明实施例不仅可以降低编码复杂度,而且TLC闪存和QLC闪存可以共享大部分编码器和解码器硬件,从而节省了存储控制器的硬件复杂度。
第二方面,本发明实施例提供一种闪存编解码装置,在该装置中针对QLC闪存采用如下模块进行编码:
第一编码模块,用于确定TLC闪存使用的核心矩阵,并采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第一校验比特序列;
第一确定模块,用于确定所述核心矩阵对应的扩展矩阵,所述扩展矩阵中包括所述核心矩阵、第一扩展矩阵、第二扩展矩阵和第三扩展矩阵,所述第一扩展矩阵为与所述核心矩阵行数相同的0矩阵,所述第三扩展矩阵为与所述第二扩展矩阵行数相同的单位对角阵,所述第二扩展矩阵和所述第三扩展矩阵形成一个校验矩阵;
第二编码模块,用于采用所述校验矩阵对所述待编码序列进行编码,得到第二校验比特序列;
第一拼接模块,用于将所述待编码序列、所述第一校验比特序列和所述第二校验比特序列进行拼接,得到编码序列。
在一个实施例中,第一编码模块具体用于:将所述待编码序列与所述核心矩阵对应的生成矩阵中的分块循环矩阵相乘,得到所述第一校验比特序列。
在一个实施例中,第二编码模块具体用于:根据奇偶校验原则以及所述第二校验比特序列中的每一个元素为0或1,确定所述第二校验比特序列;其中,所述奇偶校验原则为所述校验矩阵中的每一行与第一拼接向量相乘后等于0,所述第一拼接向量为所述待编码序列中的各个元素和所述第二校验比特序列中的各个元素拼接得到的一个列向量。
在一个实施例中,所述第二扩展矩阵满足以下至少一个限制条件:
第一限制条件为所述第二扩展矩阵的最后m列中只包含0元素,m为所述核心矩阵的行数;
第二限制条件为所述第二扩展矩阵的各行满足准正交条件;
第三限制条件为所述第二扩展矩阵的最大行重小于等于所述核心矩阵的平均行重的50%。
在一个实施例中,装置还包括:
第一解码模块,用于采用所述扩展矩阵对QLC闪存的待解码序列进行解码处理;其中,在解码过程中仅采用所述核心矩阵的校验结果作为迭代终止条件。
在一个实施例中,装置中针对TLC闪存采用如下模块进行编码:
第二确定模块,用于采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第三校验比特序列;
第二拼接模块,用于将所述待编码序列和所述第三校验比特序列进行拼接,得到对应的编码序列。
在一个实施例中,装置还包括:
第二解码模块,用于采用所述核心矩阵对TLC闪存的待解码序列进行解码处理。
可理解的是,本发明实施例提供的装置中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
第三方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面提供的方法的步骤。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
可理解的是,本发明实施例提供的计算机可读介质中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
第四方面,本发明实施例提供一种固态硬盘,固态硬盘包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的方法的步骤。
可理解的是,本发明实施例提供的固态硬盘中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (8)

1.一种闪存编解码方法,其特征在于,在该方法中针对QLC闪存采用如下步骤进行编码:
确定TLC闪存使用的核心矩阵,并采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第一校验比特序列,所述核心矩阵为m行n列的矩阵,对应一个(m,k,n)的低密度奇偶校验码,m表示低密度奇偶校验码对应的校验矩阵的行数;k表示信息位长度,n为校验矩阵的列数,所述生成矩阵G的结构为:G=[Ik,Tk×m],其中,Ik是k行k列的单位对角阵,Tk×m是k行m列的分块循环矩阵,所述采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,包括:将所述待编码序列与所述核心矩阵对应的生成矩阵中的分块循环矩阵相乘,得到所述第一校验比特序列;
确定所述核心矩阵对应的扩展矩阵,所述扩展矩阵中包括所述核心矩阵、第一扩展矩阵、第二扩展矩阵和第三扩展矩阵,所述第一扩展矩阵为与所述核心矩阵行数相同的0矩阵,所述第三扩展矩阵为与所述第二扩展矩阵行数相同的单位对角阵,所述第二扩展矩阵和所述第三扩展矩阵形成一个校验矩阵;
采用所述校验矩阵对所述待编码序列进行编码,得到第二校验比特序列,包括:根据奇偶校验原则以及所述第二校验比特序列中的每一个元素为0或1,确定所述第二校验比特序列;其中,所述奇偶校验原则为所述校验矩阵中的每一行与第一拼接向量相乘后等于0,所述第一拼接向量为所述待编码序列中的各个元素和所述第二校验比特序列中的各个元素拼接得到的一个列向量;
将所述待编码序列、所述第一校验比特序列和所述第二校验比特序列进行拼接,得到编码序列。
2.根据权利要求1所述的方法,其特征在于,所述第二扩展矩阵满足如下至少一个限制条件:
第一限制条件为所述第二扩展矩阵的最后m列中只包含0元素,m为所述核心矩阵的行数;
第二限制条件为所述第二扩展矩阵的各行满足准正交条件;
第三限制条件为所述第二扩展矩阵的最大行重小于等于所述核心矩阵的平均行重的50%。
3.根据权利要求1所述的方法,其特征在于,还包括:
采用所述扩展矩阵对QLC闪存的待解码序列进行解码处理;其中,在解码过程中仅采用所述核心矩阵的校验结果作为迭代终止条件。
4.根据权利要求1所述的方法,其特征在于,针对TLC闪存采用如下步骤进行编码:
采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第三校验比特序列;
将所述待编码序列和所述第三校验比特序列进行拼接,得到对应的编码序列。
5.根据权利要求4所述的方法,其特征在于,还包括:
采用所述核心矩阵对TLC闪存的待解码序列进行解码处理。
6.一种闪存编解码装置,其特征在于,在该装置中针对QLC闪存采用如下模块进行编码:
第一编码模块,用于确定TLC闪存使用的核心矩阵,并采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,得到第一校验比特序列,所述核心矩阵为m行n列的矩阵,对应一个(m,k,n)的低密度奇偶校验码,m表示低密度奇偶校验码对应的校验矩阵的行数;k表示信息位长度,n为校验矩阵的列数,所述生成矩阵G的结构为:G=[Ik,Tk×m],其中,Ik是k行k列的单位对角阵,Tk×m是k行m列的分块循环矩阵,所述采用所述核心矩阵对应的生成矩阵对待编码序列进行编码,包括:将所述待编码序列与所述核心矩阵对应的生成矩阵中的分块循环矩阵相乘,得到所述第一校验比特序列;
第一确定模块,用于确定所述核心矩阵对应的扩展矩阵,所述扩展矩阵中包括所述核心矩阵、第一扩展矩阵、第二扩展矩阵和第三扩展矩阵,所述第一扩展矩阵为与所述核心矩阵行数相同的0矩阵,所述第三扩展矩阵为与所述第二扩展矩阵行数相同的单位对角阵,所述第二扩展矩阵和所述第三扩展矩阵形成一个校验矩阵;
第二编码模块,用于采用所述校验矩阵对所述待编码序列进行编码,得到第二校验比特序列,包括:根据奇偶校验原则以及所述第二校验比特序列中的每一个元素为0或1,确定所述第二校验比特序列;其中,所述奇偶校验原则为所述校验矩阵中的每一行与第一拼接向量相乘后等于0,所述第一拼接向量为所述待编码序列中的各个元素和所述第二校验比特序列中的各个元素拼接得到的一个列向量;
第一拼接模块,用于将所述待编码序列、所述第一校验比特序列和所述第二校验比特序列进行拼接,得到编码序列。
7.一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至5中任一所述的方法。
8.一种固态硬盘,其特征在于,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述方法的步骤。
CN202211420536.XA 2022-11-14 2022-11-14 闪存编解码方法及装置、介质、固态硬盘 Active CN115499017B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211420536.XA CN115499017B (zh) 2022-11-14 2022-11-14 闪存编解码方法及装置、介质、固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211420536.XA CN115499017B (zh) 2022-11-14 2022-11-14 闪存编解码方法及装置、介质、固态硬盘

Publications (2)

Publication Number Publication Date
CN115499017A CN115499017A (zh) 2022-12-20
CN115499017B true CN115499017B (zh) 2023-03-24

Family

ID=85115633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211420536.XA Active CN115499017B (zh) 2022-11-14 2022-11-14 闪存编解码方法及装置、介质、固态硬盘

Country Status (1)

Country Link
CN (1) CN115499017B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333390B (zh) * 2014-11-26 2019-08-06 西安烽火电子科技有限责任公司 一种ldpc码的校验矩阵的构造方法与编码方法
CN108270448B (zh) * 2017-01-04 2022-11-15 中兴通讯股份有限公司 准循环低密度奇偶校验编码方法及装置
CN109120276B (zh) * 2017-05-05 2019-08-13 华为技术有限公司 信息处理的方法、通信装置
CN111327330B (zh) * 2018-12-14 2022-04-08 深圳市中兴微电子技术有限公司 一种信息处理方法、设备及计算机存储介质
CN111446971A (zh) * 2020-02-11 2020-07-24 上海威固信息技术股份有限公司 一种基于共享子矩阵的自适应低密度奇偶校验码编码方法

Also Published As

Publication number Publication date
CN115499017A (zh) 2022-12-20

Similar Documents

Publication Publication Date Title
CN107276594B (zh) 使用硬选取硬译码模式下的译码器产生软信息的方法
CN103888148B (zh) 一种动态阈值比特翻转的ldpc码硬判决译码方法
KR101535225B1 (ko) 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
US8347178B2 (en) Method, device and apparatus for correcting bursts
US8572465B2 (en) Nonvolatile semiconductor memory system having first and second error correction units
WO2007019187A2 (en) Systems and methods for a turbo low-density parity-check decoder
US20180167088A1 (en) Error-Correcting Code Method and System with Hybrid Block Product Codes
WO2017194013A1 (zh) 纠错编码方法及装置
US20170288698A1 (en) Power saving for bit flipping decoding algorithm in ldpc decoder
US8843810B2 (en) Method and apparatus for performing a CRC check
TWI520501B (zh) 記憶體控制器
CN103208995A (zh) 一种低密度奇偶校验码译码的提前终止方法
CN111858169A (zh) 一种数据恢复方法、系统及相关组件
US10606697B2 (en) Method and apparatus for improved data recovery in data storage systems
US20030188248A1 (en) Apparatus for iterative hard-decision forward error correction decoding
US20160049962A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
CN115499017B (zh) 闪存编解码方法及装置、介质、固态硬盘
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
US20070186139A1 (en) Interleaving method for low density parity check encoding
JP2014078237A (ja) 縮退故障を有するメモリセルに対応するための冗長ビットの符号化および復号化
WO2011144161A1 (zh) 前向纠错方法、装置及系统
KR101304570B1 (ko) 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
CN109245775B (zh) 一种译码器及其实现译码的方法
CN112054809A (zh) 改进的tpc纠错算法和装置
CN110289863B (zh) 译码设备、方法及信号传输系统

Legal Events

Date Code Title Description
PB01 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