发明名称 一种基于flash编程干扰错误感知的LDPC译码优化方法
摘要 本发明公开了一种基于flash编程干扰错误感知的LDPC译码优化方法,随着NAND闪存存储密度的提升,每个单元存储较多的比特信息,单元之间的耦合干扰较强烈,造成严重的编程干扰错误,使得传统的BCH码不足以保证数据的可靠性,LDPC码具有优于BCH码的纠错性能而被应用于NAND闪存存储系统中。使用被优化的LDPC译码算法具有重要意义。现已观察,编程干扰错误具有数值相关性特征,当进行LDPC译码时,编程干扰错误的数值相关性特征能够被融入到LDPC译码过程,为比特判决提供一种额外的信息以此提高比特判决精度和译码收敛速度,从而降低LDPC译码延迟。
申请公布号 CN106371943A 申请公布日期 2017.02.01
申请号 CN201610802793.8 申请日期 2016.09.06
申请人 华中科技大学 发明人 吴非;谢长生;张猛;马瑞祥
分类号 G06F11/10(2006.01)I;H03M13/11(2006.01)I 主分类号 G06F11/10(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种基于flash编程干扰错误感知的LDPC译码优化方法,其特征在于,包括以下步骤:(1)随机生成检验矩阵H,其元素为0或1,码率介于0.75至0.9之间,且不存在短环现象;其中检验矩阵的行数m是通过(SSD页面大小/(SSD页面大小+m))=码率获得,检验矩阵的列数是SSD页面大小+m;(2)根据生成的检验矩阵H生成列向量(码字)<img file="FDA0001109901520000011.GIF" wi="382" he="79" />使其满足<img file="FDA0001109901520000012.GIF" wi="171" he="77" />其中列向量<img file="FDA0001109901520000013.GIF" wi="38" he="68" />中的后m个记为冗余位,剩余的记为信息位;(3)根据生成的校验矩阵H和列向量<img file="FDA0001109901520000014.GIF" wi="30" he="55" />构造对应的Tanner图,其体现了检验方程C<sub>1</sub>,C<sub>2</sub>,…,C<sub>m</sub>与列向量<img file="FDA0001109901520000015.GIF" wi="38" he="61" />之间的映射关系;(4)使用0和1对列向量<img file="FDA0001109901520000016.GIF" wi="31" he="54" />中的元素V<sub>1</sub>到V<sub>n‑m</sub>进行随机赋值,并使用公式<img file="FDA0001109901520000017.GIF" wi="171" he="70" />计算获得的列向量<img file="FDA0001109901520000018.GIF" wi="30" he="55" />中的元素V<sub>n‑m</sub>到V<sub>n</sub>的值,从而生成多个列向量,并将这些生成的列向量包括<img file="FDA0001109901520000019.GIF" wi="43" he="61" />依次以顺序写的方式存入SSD的页面中一直到页面存满为止;(5)将被写入到SSD的页面中的多个列向量依次读出进行纠错,其中记发生错误的列向量为<img file="FDA00011099015200000110.GIF" wi="78" he="78" />该列向量为<img file="FDA00011099015200000111.GIF" wi="382" he="87" />(6)获取列向量<img file="FDA00011099015200000112.GIF" wi="35" he="60" />中每个元素的初始可靠性信息,并根据可靠性信息将每个元素转换为二进制,即将可靠性信息为负值的元素转换为1,将可靠性信息为正值的元素转换为0,从而获得新的列向量<img file="FDA00011099015200000113.GIF" wi="99" he="82" />(7)将校验矩阵H和列向量<img file="FDA00011099015200000114.GIF" wi="64" he="84" />相乘,并判断相乘后生成的每个检验方程是否均为零向量,如果是则将列向量<img file="FDA00011099015200000115.GIF" wi="62" he="77" />输出给用户,过程结束,否则转入步骤(8);(8)根据步骤(6)中获得的列向量<img file="FDA00011099015200000116.GIF" wi="46" he="70" />中每个元素初始可靠性信息I<sub>j</sub>,对每个码字比特进行初始化赋值为<img file="FDA0001109901520000021.GIF" wi="142" he="79" />其中当进行译码第一次迭代时,获取的变量节点可靠性信息即为初始值I<sub>j</sub>,<maths num="0001"><math><![CDATA[<mrow><msubsup><mi>V</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mo>&prime;</mo><mi>k</mi></mrow></msubsup><mo>=</mo><msub><mi>I</mi><mi>j</mi></msub><mo>,</mo><mrow><mo>(</mo><mn>1</mn><mo>&le;</mo><mi>i</mi><mo>&le;</mo><mi>m</mi><mo>,</mo><mn>1</mn><mo>&le;</mo><mi>j</mi><mo>&le;</mo><mi>n</mi><mo>,</mo><mi>i</mi><mo>&Element;</mo><mi>R</mi><mo>(</mo><mi>j</mi><mo>)</mo><mo>,</mo><mi>j</mi><mo>&Element;</mo><mi>Q</mi><mo>(</mo><mi>i</mi><mo>)</mo><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001109901520000022.GIF" wi="847" he="70" /></maths>其中i∈R(j)表示与变量节点V<sub>j</sub>相连的所有检验节点C<sub>i</sub>的集合,j∈Q(i)表示与检验节点C<sub>i</sub>相连的所有变量节点V<sub>j</sub>的集合;(9)设置计数器k=1;(10)判断k是否小于预设最大迭代次数T<sub>max</sub>,如果是,则转入步骤(11),如果否,则过程结束,将最终的码字向量输出,并向用户提示译码失败;(11)根据步骤(8)对初始变量节点赋值<img file="FDA0001109901520000023.GIF" wi="165" he="63" />并使用以下公式进行检验节点可靠性信息更新:<maths num="0002"><math><![CDATA[<mrow><msubsup><mi>C</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>=</mo><munder><mo>&Pi;</mo><mrow><mi>m</mi><mo>&Element;</mo><mi>Q</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>/</mo><mi>j</mi></mrow></munder><mi>s</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>V</mi><mrow><mi>i</mi><mi>m</mi></mrow><mrow><mo>&prime;</mo><mi>k</mi></mrow></msubsup><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>m</mi><mi>i</mi><mi>n</mi><mo>{</mo><mo>|</mo><msubsup><mi>V</mi><mrow><mi>i</mi><mi>m</mi></mrow><mrow><mo>&prime;</mo><mi>k</mi></mrow></msubsup><mo>|</mo><mo>:</mo><mi>m</mi><mo>&Element;</mo><mi>Q</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>/</mo><mi>j</mi><mo>}</mo></mrow>]]></math><img file="FDA0001109901520000024.GIF" wi="1044" he="127" /></maths>其中为符号函数,Q(i)/j表示与检验节点C<sub>i</sub>相连的所有比特节点中排除V<sub>j</sub>的集合。(12)判断步骤(11)中检验节点<img file="FDA0001109901520000025.GIF" wi="54" he="71" />更新是否结束,如果否,则返回步骤(11),如果是,则进入步骤(13);(13)根据步骤(12)中已经被更新的检验节点可靠性信息<img file="FDA0001109901520000026.GIF" wi="59" he="73" />采用以下公式进行变量节点可靠性信息更新:<maths num="0003"><math><![CDATA[<mrow><msubsup><mi>V</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mo>&prime;</mo><mi>k</mi></mrow></msubsup><mo>=</mo><msub><mi>Y</mi><mi>j</mi></msub><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>n</mi><mo>&Element;</mo><mi>R</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>/</mo><mi>i</mi></mrow></munder><msubsup><mi>C</mi><mrow><mi>n</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>+</mo><msub><mi>A</mi><mi>j</mi></msub><mo>,</mo></mrow>]]></math><img file="FDA0001109901520000027.GIF" wi="507" he="116" /></maths>其中A<sub>j</sub>是由flash编程干扰错误的数值相关性提供的额外比特判决信息,被融入到变量节点可靠性信息更新过程,其中R(j)/i表示与V<sub>j</sub>相连的所有检验节点中排除C<sub>i</sub>的集合,变量节点的可靠性信息表示为:当该检验方程成立时与之相连的变量节点等于0或1的概率;(14)判断步骤(13)中的变量节点可靠性信息<img file="FDA0001109901520000028.GIF" wi="54" he="68" />更新是否结束,如果否,则返回步骤(13),如果是,则进入步骤(15);<img file="FDA0001109901520000031.GIF" wi="365" he="55" />(15)使用以下公式对检验节点<img file="FDA0001109901520000032.GIF" wi="54" he="71" />进行译码判决:<maths num="0004"><math><![CDATA[<mrow><msubsup><mi>V</mi><mi>j</mi><mrow><mo>&prime;</mo><mi>k</mi></mrow></msubsup><mo>=</mo><msub><mi>Y</mi><mi>j</mi></msub><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>R</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></munder><msubsup><mi>C</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>+</mo><msub><mi>A</mi><mi>j</mi></msub></mrow>]]></math><img file="FDA0001109901520000033.GIF" wi="485" he="119" /></maths>(16)根据步骤(15)译码判决的结果获得每个码字比特所对应的可靠性信息<img file="FDA0001109901520000034.GIF" wi="441" he="110" />(17)对步骤(16)中获得的可靠性信息进行硬判决,即判断是否有<img file="FDA0001109901520000035.GIF" wi="365" he="78" />如果是则将0赋值给a<sub>j</sub>,然后转入步骤(18),否则将1赋值给a<sub>j</sub>,然后转入步骤(18);(18)根据步骤(17)中硬判决的结果获得被判决的码字向量<img file="FDA0001109901520000036.GIF" wi="381" he="103" />(19)检验步骤(18)中生成的码字向量是否满足检验方程<img file="FDA0001109901520000037.GIF" wi="163" he="78" />其中H为(1)中生成的检验矩阵,如果满足,则直接输出码字向量<img file="FDA0001109901520000038.GIF" wi="381" he="102" />过程结束,如果不满足则将迭代次数k逐次加1,并返回步骤(10)继续迭代操作,直到满足为止。
地址 430074 湖北省武汉市洪山区珞喻路1037号
您可能感兴趣的专利