纠错装置、纠错装置的操作方法以及包括纠错装置的控制器与流程

文档序号:18163798发布日期:2019-07-13 09:28阅读:252来源:国知局
纠错装置、纠错装置的操作方法以及包括纠错装置的控制器与流程
本申请要求2017年12月14日在韩国知识产权局提交的第10-2017-0172571号韩国专利申请的优先权,该专利申请的公开通过引用被整体合并。本公开的实施例涉及电子装置,并且更具体地涉及纠错装置、纠错装置的操作方法以及包括该纠错装置的控制器。
背景技术
:半导体存储器支持用于存储数据的写入操作和用于读取所存储的数据的读取操作。在数据被写入半导体存储器中时、在数据被存储在半导体存储器中时,或者在从半导体存储器读取数据时,错误可能出现。正在开发用于纠错的各种纠错方法。低密度奇偶校验(ldpc)方法是近年来已经开发的纠错方法之一。在ldpc方法中,用于纠错的典型的解码方法需要高计算复杂度。为了降低ldpc方法的解码复杂度,存在对ldpc解码器进行近似的各种尝试。然而,ldpc解码器的近似引起错误底限(errorfloor)的增加并且使纠错能力低于使用ldpc方法的典型解码方法的纠错能力。技术实现要素:本公开的实施例提供一种具有高纠错能力和低错误底限的纠错装置、一种纠错装置的操作方法,以及一种包括纠错装置的控制器。根据示例性实施例,一种纠错装置包括低密度奇偶校验(ldpc)解码器,其通过使用解码参数来对数据迭代地执行ldpc解码。自适应解码控制器根据ldpc解码的结果来计算错误率并且根据错误率来调整解码参数。根据示例性实施例,一种纠错装置的操作方法包括:接收数据,基于第一解码参数对数据执行第一低密度奇偶校验(ldpc)解码,根据第一ldpc解码的结果来计算错误率,根据错误率将第一解码参数调整为第二解码参数,以及基于第二解码参数对数据执行第二ldpc解码。根据示例性实施例,控制器包括从接收存储器数据的存储器接口。纠错装置纠正通过存储器接口接收的数据的错误。纠错装置包括低密度奇偶校验(ldpc)解码器,通过使用解码参数来对数据迭代地执行ldpc解码。自适应解码控制器根据ldpc解码的结果来计算错误率并且根据错误率来调整解码参数。根据示例性实施例,一种存储装置包括半导体存储器、纠错解码器、以及控制器。半导体存储器存储数据。纠错解码器从半导体存储器接收数据并且使用对数似然比(llr)参数的值向数据应用低密度奇偶校验(ldpc)解码以生成解码结果。控制器:(1)计算解码结果内的错误率,(2)基于错误率来生成llr参数的修订值,(3)控制纠错解码器使用llr参数的修订值向数据应用ldpc解码以生成不包含错误的修订解码结果,以及(4)输出修订的解码结果。附图说明通过参考附图详细地描述本公开的示例性实施例,本公开的以上及其他对象~和特征将变得明显。图1是图示出根据本公开的实施例的纠错装置的框图。图2是图示出根据本公开的实施例的纠错装置的操作方法的流程图。图3示出根据本公开的实施例的纠错装置。图4是图示出图3的纠错装置的操作方法的流程图。图5示出在低密度奇偶校验(ldpc)解码器中计算的变量节点和校验节点的示例。图6图示出在表格1至表格3中所提及的解码参数的示例。图7是图示出图3的纠错装置的操作方法的应用的流程图。图8图示出图3的纠错装置的应用。图9是图示出图8的纠错装置的操作方法的示例的流程图。图10图示出图6的第一至第三解码参数的应用。图11是图示出基于图10的迭代阈值执行ldpc解码的示例的流程图。图12是示出根据本公开的实施例的纠错装置的测试执行的结果的图。图13是示出根据本公开的实施例的纠错装置的测试执行的另一个结果的图。图14是图示出根据本公开的实施例的计算装置的框图。具体实施方式在下面,可以详细地且清楚地描述本公开的实施例至本领域普通技术人员容易地实施本公开的程度。图1是图示出根据本公开的实施例的纠错装置100的框图。参考图1,纠错装置100包括存储器110、低密度奇偶校验(ldpc)解码器120,以及自适应解码控制器130。存储器110可以存储ldpc解码器120执行纠错解码(例如,ldpc解码)所必需的解码参数。当ldpc解码器120请求解码参数时,存储器110可以向ldpc解码器120提供解码参数。ldpc解码器120可以从第一外部装置接收数据“data”。ldpc解码器120可以从存储器110接收解码参数。ldpc解码器120可以基于解码参数对数据“data”执行纠错解码(例如,ldpc解码)。例如,ldpc解码器120可以迭代地执行包括校验节点更新和变量节点更新的ldpc解码。ldpc解码器120可以向自适应解码控制器130传递ldpc解码结果。例如,当迭代地执行ldpc解码时,ldpc解码器120可以向自适应解码控制器130传递每一个ldpc解码结果。自适应解码控制器130可以从ldpc解码器120接收ldpc解码结果。如果ldpc解码结果指示没有错误存在,则自适应解码控制器130可以向第二外部装置输出经纠错的数据data_c。如果ldpc解码结果指示错误存在,则自适应解码控制器130可以计算(calculate)(或运算(compute))ldpc解码结果的错误率并且可以基于错误率来控制存储器110。例如,自适应解码控制器130可以允许存储器110根据错误率来输出不同的解码参数。例如,自适应解码控制器130可以向存储器110传递存储区的地址,在该存储区存储有存储器110将向ldpc解码器120传递的解码参数,并且可以根据错误率来改变该地址。图2是图示出根据本公开的实施例的纠错装置100的操作方法的流程图。在实施例中,描述了一示例,其中纠错装置100纠正对应于一个纠错单位的比特的错误。参考图1和2,在操作s110中,纠错装置100的ldpc解码器120可以从第一外部装置接收数据“data”。数据“data”可以具有对应于其中纠错装置100纠错一次所基于的纠错单位的长度(例如,比特的数量、样本的数量,或者码元(symbol)的数量)。在操作s120中,纠错装置100的ldpc解码器120可以对接收的数据“data”执行ldpc解码。例如,ldpc解码器120可以基于从存储器110接收到的解码参数来执行ldpc解码。ldpc解码可以包括校验节点更新和变量节点更新。ldpc解码器120可以向自适应解码控制器130传递ldpc解码结果。在操作s130中,纠错装置100的自适应解码控制器130可以根据ldpc解码结果来计算错误率。例如,自适应解码控制器130可以计算更新的变量节点的值的错误率。如果在操作s140中确定错误存在,则执行操作s150。在操作s150中,纠错装置100的自适应解码控制器130可以根据错误率来调整解码参数。例如,自适应解码控制器130可以允许存储器110根据错误率来输出不同的解码参数。之后,处理继续到操作s120,其中再次迭代ldpc解码。如果在操作s140中确定错误不存在,则在操作s160中自适应解码控制器130可以向第二外部装置输出经纠错的数据data_c(数据_c)。总之,根据本公开的实施例的纠错装置100可以迭代地执行ldpc解码并且可以根据每个ldpc解码结果的错误率来调整用于执行ldpc解码(例如,下一个ldpc解码)的解码参数。可以调整解码参数以进一步减小纠错装置100的错误底限。因此,纠错装置100的错误底限减小。图3示出根据本公开的实施例的纠错装置100。参考图3,存储器110可以存储第一至第三解码参数111至113以及初始对数似然比(llr)值115。第一至第三解码参数111至113中的每一个可以包括ldpc解码器120执行ldpc解码所需要的信息。在自适应解码控制器130的控制之下,或响应于ldpc解码器120的请求,存储器110可以向ldpc解码器120提供第一至第三解码参数111至113之一。在实施例中,在图3中图示出示例,其中第一至第三解码参数111至113被存储在存储器110中。然而,本公开可以不受限于此。而且,存储在存储器110中的解码参数的数量不局限于图3的示例。初始llr值115可以包括与数据“data”的相应比特相关联的(被指配给其的)初始对数似然比(llr)。响应于ldpc解码器120的请求或在自适应解码控制器130的控制之下,当ldpc解码器120发起ldpc解码时,存储器110可以向ldpc解码器120传递初始llr值。ldpc解码器120包括存储块121和运算块125。存储块121包括数据缓冲器122、变量节点缓冲器123,以及校验节点缓冲器124。数据缓冲器122可以存储来自第一外部装置的数据“data”。变量节点缓冲器123可以存储ldpc解码的变量节点的值。校验节点缓冲器124可以存储ldpc解码的校验节点的值。运算块125包括初始映射器126、校验节点更新器127,以及变量节点更新器128。初始映射器126可以从数据缓冲器122接收数据“data”并且可以从存储器110接收初始llr值115。初始映射器126可以将数据“data”映射到初始llr值115并且可以将映射结果存储在变量节点缓冲器123中。例如,初始映射器126可以基于数据“data”的每个比特,将初始llr值115中的一个初始llr值映射到数据“data”的每个比特。校验节点更新器127可以通过使用存储在变量节点缓冲器123中的变量节点的值来更新校验节点的值。校验节点更新器127可以将校验节点的更新的值存储在校验节点缓冲器124中。变量节点更新器128可以通过使用存储在校验节点缓冲器124中的校验节点的值、从存储器110接收到的解码参数、以及从数据缓冲器122传递的数据“data”,来更新变量节点的值。变量节点更新器128可以将变量节点的更新值存储在变量节点缓冲器123中。自适应解码控制器130包括量化器131、校正子(syndrome)计算器132、错误率计算器133,以及解码参数控制器134。量化器131可以将存储在变量节点缓冲器123中的变量节点的值转换为数字值。例如,量化器131可以将一个变量节点的值转换为一个数字比特(digitalbit)。校正子计算器132可以从量化器131接收数字比特。从量化器131接收到的数字比特可以是被应用了到目前为止所执行的ldpc解码的数据“data”的中间结果。校正子计算器132可以对数字比特和奇偶校验矩阵进行运算(例如,对其执行矩阵乘积)以计算校正子(或包括校正子的校正子向量)。例如,如果与数字比特相关联的变量节点的值是正确的值,则校正子计算结果可以是“0”。例如,如果与数字比特相关联的变量节点的值是不正确的值,则校正子计算结果可以是“1”。通过校正子计算所计算的1的数量可以是存在于数字比特(或变量节点的值)中的不正确的值(例如,错误)的数量。校正子计算器132可以向错误率计算器133传递通过校正子计算所计算的1的数量,即,ldpc解码的中间结果中存在的错误的数量。错误率计算器133可以基于错误的数量来计算错误率。例如,错误率计算器133可以计算错误的数量与变量节点的数量(例如,比特、码元、或者数据“data”的样本的数量)的比率,作为错误率。对于另一个示例,错误率计算器133可以计算错误的数量与校验节点的数量(例如,可纠正的比特、码元、或者样本的数量)的比率来作为错误率。对于另一个示例,错误率计算器133可以通过经由使用特定常量或变量归一化错误的数量来计算错误率。对于另一个示例,错误率计算器133可以计算错误的数量来作为错误率。也就是说,错误率可以被理解为错误的数量与其自身的比率。对于另一个示例,错误率计算器133可以计算通过将错误的数量归一化(缩放)到特定值(或数量)而获得的值来作为错误率。在实施例中,如果特定校验节点的值是“0”,则与特定校验节点相关联的变量节点的值可能不具有错误。在实施例中,如果特定校验节点的值是“1”,则与特定校验节点相关联的变量节点的值可能具有错误。也就是,由校正子计算器132检测到的错误的数量可以被解释为具有值“1”的校验节点的数量。在实施例中,可以将错误率计算为具有值“1”的校验节点的数量与变量节点的数量的比率。对于另一个示例,可以将错误率计算为具有值“1”的校验节点的数量与校验节点的数量的比率。对于另一个示例,错误率计算器132可以通过经由使用特定常量或变量归一化具有值“1”的校验节点的数量来计算错误率。错误率计算器133可以向解码参数控制器134传递计算的错误率。解码参数控制器134可以基于错误率来控制存储器110。例如,解码参数控制器134可以允许存储器110根据错误率输出不同的解码参数。图4是图示出图3的纠错装置100的操作方法的流程图。图5示出在ldpc解码器120中计算的变量节点v1至v8以及校验节点c1至c4的示例。参考图3至5,在操作s210中,ldpc解码器120可以接收数据“data”。可以将数据“data”存储在数据缓冲器122中。在操作s220中,ldpc解码器120的初始映射器126可以将初始llr值映射到数据“data”。例如,初始映射器126可以从存储器110接收初始llr值并且可以基于数据“data”的每个比特、样本或码元的值将初始llr值之一映射到每个比特、样本或码元。可以将初始llr值的映射结果存储在变量节点缓冲器123中。例如,可将初始llr值的映射结果存储为变量节点v1至v8的初始值。在操作s230中,ldpc解码器120的校验节点更新器127可以更新校验节点c1至c4的值。例如,校验节点更新器127可以通过使用最小和(min-sum)方法的求最小(min)方法来更新校验节点c1至c4的值。校验节点更新器127可以通过使用以下公式1来更新校验节点c1至c4的值。[公式1]在公式1中,“pm,n”指示消息,其指示第m校验节点(“m”是正整数)的值被更新并且第m校验节点向第n变量节点(“n”是正整数)传送pm,n。m(m)指示与第m校验节点连接的变量节点。例如,当“m”是2时,与第二校验节点c2连接的变量节点m(2)可以包括第一、第二、第三,和第六变量节点v1、v2、v3,和v6。在公式1中,‘qn',m’可以是在当前ldpc解码中第n’变量节点向第m校验节点传送的消息。第n’变量节点可以属于m(m),因此是与第m校验节点连接的变量节点。例如,在第一次执行ldpc解码的情况下,“qn',m”可以是变量节点v1至v8的初始值。在不止一次执行ldpc解码的情况下,“qn',m”可以是在先前ldpc解码中计算的变量节点v1至v8的值。在公式1中,“sign(qn',m)”可以指示第n变量节点的符号(sign)。根据公式1,第m校验节点可以具有与第m校验节点连接的变量节点m(m)当中的、第m校验节点打算将消息传送到的第n变量节点以外的剩余的变量节点(例如,有效变量节点)的值中的最小值。而且,第m校验节点可以具有作为将有效变量节点的所有符号相乘的结果而产生的符号。例如,当“m”是2并且“n”是3时,第一、第三,和第六变量节点v1、v3,和v6可以是有效变量节点。在操作s240中,ldpc解码器120的变量节点更新器128可以更新变量节点v1至v8的值。例如,变量节点更新器128可以通过使用最小和方法的求和(sum)方法来更新变量节点v1至v8的值。变量节点更新器128可以在更新变量节点v1至v8的值时使用从存储器110接收到的解码参数。例如,变量节点更新器128可以通过使用以下公式2来更新变量节点v1至v8的值。[公式2]在公式2中,“qn,m”指示消息,该消息指示第n变量节点的值被更新,并且是第n变量节点发送给m校验节点的。n(n)指示与第n变量节点连接的校验节点。例如,当“n”是3时,与第三变量节点v3连接的校验节点n(3)可以包括第二和第三校验节点c2和c3。在公式2中,“pm',n”可以是在当前ldpc解码中第m’校验节点向第n变量节点传送的消息。第m’校验节点可以属于n(n),因此是与第n变量节点连接的校验节点。例如,“pm',n”可以是在当前ldpc解码中计算的校验节点c1至c4的值。在公式2中,“φcv”可以是具有根据第m’校验节点向第n变量节点传送的消息所确定的值的函数。“φcv”的值可以取决于从存储器110传递的解码参数并且可以如在以下表格1所说明的来定义。在表格1中,为简要起见,用“x”来替换输入“pm',n”,并且用“y”来替换输出“φcv”。[表格1]输入x00011011输出yt1t2-t1-t2在表格1中,可以从存储器110传递llr值t1和t2,并且llr值t1和t2可以随错误率而变化。在实施例中,在ldpc解码器120是2比特解码器的假定下描述“φcv”的值。然而,ldpc解码器120不限于2比特解码器。当ldpc解码器120是k比特解码器(“k”是正整数)时,输入“x”可以是k比特信息。而且,可以通过“k”个值以及正负号来表示输出“y”。在实施例中,“φcv”可以向从第m’校验节点传递的消息指配llr值(例如,对数似然比)。在公式2中,“φch”可以是具有通过数据“data”当中的与第n变量节点相关联的比特cn、样本、或码元所确定的值的函数。“φch”的值可以取决于从存储器110传递的解码参数并且可以如在以下表格2所说明的来定义。在表格2中,为了简要,用“x”替换输入“cn”,并用“y”替换输出“φch”。[表格2]输入x01输出ycth-cth在表格2中,可以从存储器110传递代码值cth并且代码值cth可以随错误率而变化。在公式2中,“φvc”的值可以取决于从存储器110传递的解码参数并且可以如在以下表格3所说明的来定义。在表格3中,为简要起见,用“x”表示输入,并且用“y”替换输出“φvc”。[表格3]输入xx<-lth-lth≤x<00≤x<lthlth<x输出y11100001在表格3中,可以从存储器110传递范围值lth并且范围值lth可以随错误率而变化。在实施例中,在ldpc解码器120是2比特解码器的假定之下描述“φvc”的值。然而,ldpc解码器120不局限于2比特解码器。当ldpc解码器120是k比特解码器时,输入“x”可以被划分为2^k个间隔。而且,可以通过“k”个比特来表示输出“y”。在实施例中,“φvc”可以是通过当前ldpc解码所计算的中间结果。“φvc”的值可以指示每个变量节点的值接近于“1”或接近于“0”的程度。根据公式2,可以根据与第n变量节点连接的校验节点n(n)当中的、第n变量节点打算向其发送的第m校验节点以外的剩余的校验节点(例如,有效校验节点)的值来确定第n变量节点的值或消息。例如,当“n”是3并且“m”是2时,第三校验节点c3可以是有效校验节点。例如,可以通过有效校验节点的值之和以及被施加与第n变量节点相关联的数据“data”的比特cn、样本,或码元的值之和,来确定第n变量节点的值或消息。在操作s250中,自适应解码控制器130可以计算ldpc解码结果的校正子。例如,量化器131可以量化存储在变量节点缓冲器123中的变量节点的值。例如,如果特定变量节点的值小于“0”,则量化器131可以将特定变量节点的值量化为“0”。如果特定变量节点的值不小于“0”,则量化器131可以将特定变量节点的值量化为“1”。例如,如表格3中所说明的,如果特定变量节点的数字值是“11”或“10”,则量化器131可以将特定变量节点的值量化为“0”。如果特定变量节点的数字值是“00”或“01”,则量化器131可以将特定变量节点的值量化为“1”。在实施例中,当数据“data”由包括两个或更多比特的码元或样本组成时,量化器131可以将变量节点的值量化为包括两个或更多比特的码元或样本。通过量化器131所量化的每个变量节点的比特的数量不受限。通过量化器131所量化的比特、样本,或者码元可以是执行ldpc解码的结果,例如,执行一次ldpc解码的结果。ldpc解码结果可以被传递给校正子计算器132,例如作为纠错装置100的全部纠错操作的中间解码结果。校正子计算器132可以从ldpc解码结果计算校正子。例如,校正子计算器132可以对ldpc解码结果和奇偶校验矩阵进行运算(例如,将其相乘)。可以通过具有“0”和“1”中的一个值的比特的集合来表示运算结果。例如,运算结果的比特的数量可以是所有校正子的数量。运算结果的比特的数量可以是纠错装置100能够纠正的错误比特的最大数量。运算结果的比特当中的具有值“1”的比特指示错误存在。运算结果的比特当中的具有值“1”的比特的数量指示存在于ldpc解码结果中的比特的数量。在操作s260中,自适应解码控制器130可以确定错误是否存在于ldpc解码结果中。在实施例中,如果运算结果的比特不具有值“1”,则ldpc解码结果可能不具有错误。如果运算结果的至少一个比特具有值“0”,则ldpc解码结果可能具有至少一个错误。如果错误不存在,则在操作s290中,自适应解码控制器130可以向第二外部装置输出通过量化器131量化的ldpc解码结果来作为经纠错的数据data_c。自适应解码控制器130可以终止与所接收的数据“data”相关联的纠错。如果错误存在,则在操作s270中,自适应解码控制器130的错误率计算器133可以计算ldpc解码结果的错误率。例如,校正子计算器132可以向错误率计算器133传递计算结果的比特。错误率计算器133可以对计算结果的比特当中的具有值“1”的比特的数量——即,错误的数量,进行计数。错误率计算器133可以通过使用由此计数的错误的数量来计算错误率。例如,错误率计算器133可以计算错误比特的数量与计算结果的比特的总数量(例如,校验节点的总数量)的比率来作为错误率。对于另一个示例,错误率计算器133可以计算错误比特的数量与数据“data”的比特、样本,或者码元的数量(例如,变量节点的总数量)的比率来作为错误率。对于另一个示例,错误率计算器133可以通过将错误的数量归一化为特定常量、变量,或者函数来计算错误率。错误率计算器133可以改变或应用为通过使用各种方法来计算错误率。错误率计算器133计算错误率的形式不局限于以上描述。在操作s280中,自适应解码控制器130的解码参数控制器134可以根据错误率来调整解码参数。例如,错误率计算器133可以向解码参数控制器134传递计算的错误率。自适应解码控制器130可以允许存储器110根据错误率来输出不同的解码参数。之后,在操作s230中,可以执行校验节点更新,并且在操作s240中,可以执行变量节点更新。例如,校验节点更新和变量节点更新可以构成一个ldpc解码。一个ldpc解码可以伴随校正子的计算(s250)、错误率的计算(s270),以及解码参数的调整(s280)。纠错装置100可以迭代地执行ldpc解码,直到在ldpc解码结果中不存在错误。当ldpc解码被迭代时,纠错装置100可以基于ldpc解码结果来调整解码参数。因为根据错误率自适应地调整解码参数,所以可以减小纠错装置100的错误底限。图6图示出在表格1至表格3中所提及的解码参数的示例。参考图6,第一至第三解码参数111至113中的每一个可以具有范围值lth、代码值cth,以及llr值t1和t2。第一至第三解码参数111至113可以具有不同的范围值lth、不同的代码值cth,以及不同的llr值t1和t2。在实施例中,第一解码参数111可以具有为“3”的范围值lth、为“3”的代码值cth、为“1”的llr值t1,以及为“3”的llr值t2。第二解码参数112可以具有为“2”的范围值lth、为“2”的代码值cth、为“1”的llr值t1,以及为“3”的llr值t2。第三解码参数113可以具有为“2”的范围值lth、为“1”的代码值cth、为“1”的llr值t1,以及为“3”的llr值t2。例如,当错误率属于第一范围时,可以选择第一解码参数111。当错误率属于低于第一范围的第二范围时,可以选择第二解码参数112。当错误率属于低于第二范围的第三范围时,可以选择第三解码参数113。在实施例中,随着错误率减小,范围值lth和代码值cth可以减小。随着错误率减小,llr值t1和t2可以减小、可以增加,或者可以被维持。图7是图示出图3的纠错装置100的操作方法的应用的流程图。参考图3和7,在操作s310中,可以由ldpc解码器120的数据缓冲器122接收数据“data”。操作s310可以与图4的操作s210相同。在操作s311中,自适应解码控制器130可以计算所接收的数据“data”的校正子。例如,自适应解码控制器130的校正子计算器132可以计算存储在数据缓冲器122中的数据“data”和奇偶校验矩阵。如果计算结果的所有比特是“0”,则在数据“data”中可能不存在错误。如果计算结果的至少一个比特具有值“1”,则数据“data”中可能存在错误。如果在操作s312中确定数据“data”中不存在错误,则执行操作s390。在操作s390中,自适应解码控制器130可以将存储在数据缓冲器122中的数据“data”作为经纠错的数据data_c来输出。纠错装置100可以完成与所接收的数据“data”相关联的纠错。如果在操作s312中确定数据“data”中存在错误,则执行操作s320。操作s320至操作s380基本上与图2的操作s220至操作s280相同,并且因此,在这里将不重复其描述。总之,在对所接收的数据“data”执行ldpc解码之前,纠错装置100可以确定数据“data”中是否存在错误。如果数据“data”中不存在错误,则可以输出数据“data”作为经纠错的数据,而不进行ldpc解码。在实施例中,可以向图3添加数据缓冲器122向校正子计算器132传递数据“data”的信号路径(参考图8)。对于另一个示例,可以将关于存储在或将被存储在数据缓冲器122中的数据“data”计算校正子的单独校正子计算器添加到图3的自适应解码控制器130或ldpc解码器120。图8是图示出图3的纠错装置100的应用的框图。参考图8,纠错装置100_1包括存储器110_1、ldpc解码器120,以及自适应解码控制器130_1。ldpc解码器120的结构和操作方法与参考图3描述的那些结构和操作方法相同,并且因此,在这里将不重复其描述。存储器110_1可以存储第一至第三解码参数111至113以及llr值115。与图3的存储器110相比较,存储器110_1可以存储第一llr值116、第二llr值117,和第三llr值118,作为初始llr值115。自适应解码控制器130包括量化器131、校正子计算器132_1、错误率计算器133_1,以及解码参数控制器134_1。量化器131的操作与图3的量化器131的操作相同,并且因此,在这里将不重复其描述。校正子计算器132_1可以执行与参考图3所描述的校正子计算器132相同的操作。除校正子计算器132的操作之外,校正子计算器132_1可以计算存储在数据缓冲器122中的数据“data”的校正子。例如,校正子计算器132_1可以计算存储在数据缓冲器122中的数据“data”和奇偶校验矩阵。错误率计算器133_1可以执行与参考图3所描述的错误率计算器133相同的操作。除错误率计算器133的操作之外,错误率计算器133_1可以计算存储在数据缓冲器122中的数据“data”的错误率。解码参数控制器134_1可以执行与参考图3所描述的解码参数控制器134相同的操作。除解码参数控制器134的操作之外,解码参数控制器134_1可以允许存储器110_1根据数据“data”的错误率来输出第一至第三llr值116至118之一。图9是图示出图8的纠错装置100_1的操作方法的示例的流程图。参考图8和9,在操作s410中,可以由数据缓冲器122接收数据“data”。在操作s411中,校正子计算器132_1可以计算数据“data”的校正子。操作s410和操作s411可以与操作s310和操作s311相同。如果在操作s412中确定数据“data”中不存在错误,则执行操作s490。在操作s490中,自适应解码控制器130_1可以向第二外部装置输出数据“data”作为经纠错的数据data_c。如果在操作s412中确定数据“data”中存在错误,则执行操作s413。在操作s413中,错误率计算器133_1可以计算数据“data”的错误率(例如,初始错误率)。在操作s421中,解码参数控制器134_1可以基于错误率来调整解码参数。例如,解码参数控制器134_1可以允许存储器110_1根据错误率来输出第一至第三llr值116至118之一。之后,操作s430至操作s480可以被执行为与操作s230至操作s280相同,并且因此,在这里将不重复其描述。如参考图8和9所描述的,纠错装置100_1可以计算数据“data”的错误率并且可以基于数据“data”的错误率来调整解码参数,即,初始llr值。因此,可以进一步减小纠错装置100_1的错误底限。图10图示出图6的第一至第三解码参数111至113的应用。参考图10,第一至第三解码参数111至113中的每一个可以另外包括与图6相比较的迭代阈值ith。迭代阈值ith可以指示通过使用当前解码参数迭代地执行ldpc解码迭代的数量。例如,第一至第三解码参数111至113可以具有迭代阈值ith“3”、“2”,和“1”。图11是图示出基于图10的迭代阈值ith执行ldpc解码的示例的流程图。参考图1和11,在操作s510中,可以由数据缓冲器122接收数据“data”。在操作s520中,ldpc解码器120可以执行ldpc解码。ldpc解码可以包括校验节点更新和变量节点更新。在操作s530中,自适应解码控制器130可以确定迭代计数是否达到迭代阈值ith。迭代计数可以指示在选择(或调整)解码参数之后执行ldpc解码的次数。当执行ldpc解码时,迭代计数可以增加。当选择(或调整)解码参数时,可以重置迭代计数。如果确定迭代计数没有达到迭代阈值ith,则自适应解码控制器130可以省略量化、计算校正子、确定错误率,和调整(或选择)解码参数。可以维持解码参数而没有修改,ldpc解码器120可以从操作s520开始执行ldpc解码。如果迭代计数达到迭代阈值ith,则执行操作s540。操作s540至操作s560可以被执行为与图2的操作s130至操作s150相同,并且因此,在这里将不重复其描述。如上所述,纠错装置100可以进一步基于错误率来调整迭代阈值。例如,当错误率高时,纠错装置100可以省略量化、计算校正子、确定错误率,和调整(或选择)解码参数,并且可以执行ldpc解码达迭代阈值ith那么多次。如果量化、计算校正子、确定错误率、和调整(或选择)解码参数被省略,则可以减小纠错装置100的功率消耗和延迟。在实施例中,随着错误率减小,自适应解码控制器130可以使得迭代阈值ith较小。在实施例中,如参考图4所描述的,纠错装置100可以使用迭代阈值ith作为解码参数。在该情况下,纠错装置100可以计算校正子并且然后可以确定错误是否存在。如果错误存在,则纠错装置100可以计算错误率。在实施例中,如参考图7所描述的,纠错装置100可以使用迭代阈值ith作为解码参数。在该情况下,纠错装置100可以在执行ldpc解码之前计算数据“data”的校正子。在实施例中,如参考图9所描述的,纠错装置100可以使用迭代阈值ith作为解码参数。在该情况下,纠错装置100可以基于数据“data”的错误率来不同地设置初始llr值。图12是示出根据本公开的实施例的纠错装置100的测试执行的结果的图。在图12中,水平轴表示二元对称通道的交叉概率(cross-overprobability,cop),并且垂直轴表示帧错误率(fer)。第一线l1示出根据和积算法的纠错装置的错误率(例如,错误底限)。第二线l2示出根据本公开的实施例的纠错装置100的错误率(例如,错误底限)。第三线l3示出根据最小和算法的纠错装置的错误率(例如,错误底限)。图13是示出根据本公开的实施例的纠错装置100的测试执行的另一个结果的图。在图13中,水平轴表示二元对称通道的交叉概率(cop),并且垂直轴表示帧错误率(fer)。第四线l4示出根据和积算法的纠错装置的错误率(例如,错误底限)。第五线l5示出根据本公开的实施例的纠错装置100的错误率(例如,错误底限)。第六线l6示出根据向最小和算法应用偏移的算法的纠错装置的错误率(例如,错误底限)。第七线l7示出根据最小和算法的纠错装置的错误率(例如,错误底限)。根据图12和13理解,根据和积算法的纠错装置的错误底限是最低的。然而,根据和积算法的纠错装置具有高计算复杂度,因此,需要非常高的成本,例如,资源、功率、时间,等等将纠错装置应用于产品。根据本公开的实施例的纠错装置100可以具有类似于使用最小和算法或者向最小和施加偏移的算法的复杂度的复杂度并且可以实现与根据所述算法的错误底限相比较低的错误底限。这意味着提供了具有低复杂度和低错误底限的纠错装置100。图14是图示出根据本公开的实施例的计算装置200的框图。参考图14,计算装置200可以包括存储装置300和主机装置400。存储装置300可以响应于主机装置400的请求来存储数据。存储装置300可以响应于主机装置400的请求来向主机装置400输出数据。主机装置400可以将数据存储在存储装置300中并且可以从存储装置300读取数据。计算装置200可以是移动设备,诸如智能电话、智能板、智能手表,等等。主机装置400可以是应用处理器。存储装置300可以包括存储器装置340和控制器350。存储器装置340可以包括第一和第二存储器341和342。第一和第二存储器341和342可以是彼此分开的存储器管芯、彼此分开的存储器芯片,或者彼此分开的存储器封装。第一和第二存储器341和342可以是同构存储器或异构存储器。第一和第二存储器341和342可以包括易失性存储器,诸如动态随机访问存储器(dram)。第一和第二存储器341和342可以包括非易失性存储器,诸如闪速存储器、相变存储器、铁电存储器、磁存储器,或者电阻存储器。根据主机装置400的请求,控制器350可以将数据写入存储器装置340中或可以从存储器装置340读取数据。控制器350可以与主机装置400交换将被写入存储器装置340中的数据或从存储器装置340读取的数据。控制器350包括控制器核351、第一和第二存储器接口352和353,以及第一和第二纠错装置354和355。控制器核351可以控制存储装置300的操作。控制器核351可以驱动驱动存储装置300所需的固件。控制器核351可以与主机装置400进行通信并且可以处理来自主机装置400的请求。控制器核351可以根据来自主机装置400的请求来访问存储器装置340。在控制器核351的控制下,第一和第二存储器接口352和353可以与第一和第二存储器341和342交换数据。第一存储器接口352可以与第一存储器341进行通信,并且第二存储器接口353可以与第二存储器353进行通信。第一和第二存储器接口352和353可以以相同的方式或以不同的方式与第一和第二存储器341和342进行通信。第一和第二纠错装置354和355可以纠正从第一和第二存储器接口352和353接收到的数据的错误。例如,第一纠错装置354可以纠正从第一存储器354通过第一存储器接口352传递的数据的错误。第二纠错装置355可以纠正从第二存储器354通过第二存储器接口353传递的数据的错误。第一和第二纠错装置354和355可以使用相同的纠错方式或不同的纠错方式。第一和第二纠错装置354和355可以向控制器核351传递经纠错的数据。在实施例中,第一和第二纠错装置354和355中的每一个可以包括参考图1至11所描述的纠错装置100或110_1。也就是说,第一和第二纠错装置354和355中的至少一个可以在根据ldpc解码的错误率调整解码参数时迭代ldpc解码。相应地,第一和第二纠错装置354和355中的至少一个的错误底限可以减小,并且可以提高存储装置300和计算装置200的可靠性。在以上所描述的实施例中,通过使用术语“块”来指代根据本公开的实施例的组件。可以利用诸如集成电路、专用集成电路(asci)、现场可编程门阵列(fpga),并且以及复杂可编程逻辑设备(cpld)之类的各种硬件设备、诸如固件和在硬件设备中驱动的应用之类的软件,或者硬件设备和软件的组合来实施“块”。而且,“块”可以包括利用半导体装置实施的电路或知识产权(ip)。根据本公开,根据执行最小和方法的求和操作时错误率来调整解码参数。相应地,提供一种具有减小的错误底限的纠错装置、一种纠错装置的操作方法,以及一种包括纠错装置的控制器。如在领域中按照惯例,可以按照执行所描述的一个或多个功能的框描述和说明实施例。可以在本文被称为单元或者模块等等的这些框通过诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子部件、有源电子部件、光学部件、硬连线电路等等的模拟和/或数字电路被物理地实施,并且可以可选地被固件和/或软件驱动。电路例如可以被体现在一个或多个半导体芯片中,或者被体现在诸如印刷电路板等等的基板支承上。可以通过专用硬件,或者通过通过处理器(例如,一个或多个编程微处理器和相关联的电路),或者通过执行框的一些功能的专用硬件和执行框的其他功能的处理器的组合来实施构成框的电路。在不背离本公开的范围的情况下,实施例的每个框可以被物理地分离为两个或更多相互作用和分立的框。同样地,在不背离本公开的范围的情况下,实施例的框可以被物理地组合为更复杂的框。尽管已经参考其示例性实施例描述了本公开,但对于那些本领域普通技术人员将明显的是,在不背离如在所附权利要求中所阐述的本公开的精神和范围的情况下,可以对其进行各种改变和修改。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1