内容感知式位翻转解码器的制作方法

文档序号:30711733发布日期:2022-07-10 18:26阅读:101来源:国知局
内容感知式位翻转解码器的制作方法
内容感知式位翻转解码器
1.相关申请的交叉引用
2.本技术要求2020年1月15日提交的美国申请号16/744,061的优先权,所述申请据此全文以引用方式并入。


背景技术:
技术领域
3.本公开的实施方案大体上涉及数据解码。更具体地讲,本公开的各方面涉及用于计算机应用等的内容感知式解码方法和系统。
4.相关领域的描述
5.固态驱动器(ssd)等闪存存储器的可靠性是将这些驱动器与其他常规存储器布置区分开来的关键因素。此类ssd需要具有长期耐久性和记忆能力,尤其是在驱动器使用寿命结束时。
6.为了实现ssd的高可靠性,存储在ssd上的数据受到保护,使得其可在发生故障的情况下被恢复。恢复系统可变化,但最典型的是使用错误代码校正(ecc)代码的保护。最常见的是,ecc代码包括低密度奇偶校验(ldpc)代码。
7.ecc解码器具有允许解码器提高其性能的几个特征。ecc解码器被编程为读取数据,并且通过了解待解码数据的基础统计信息,可以进行更准确的恢复预测。在基础统计信息未知的情况下,ecc可使用默认参数,这些参数可对应于数据均匀分布的情况。
8.当然,此类解码可能耗时,这可能影响存储器的性能。如果错误较少(例如,较低误码率(ber)),那么可以改善解码器吞吐量。因此,吞吐量改善后的存储器将是有利的。


技术实现要素:

9.本文描述的示例大体上涉及内容感知式位翻转解码器。示例是一种设备。所述设备包括解码器,所述解码器被配置成:基于待解码数据的统计信息来处理一个或多个翻转阈值;并且使用一个或多个处理后的翻转阈值来对数据执行位翻转算法。
10.另一个示例是一种设备。所述设备包括解码器,所述解码器被配置成:获得数据;确定数据的统计信息;基于数据统计信息来调整一个或多个翻转阈值;对数据执行校验方程;以及基于一个或多个翻转阈值和检查方程的结果来翻转数据的一个或多个位值。
11.另一个示例是一种设备。所述设备包括用于获得数据的装置;用于生成数据的统计信息的装置;用于基于数据统计信息来处理一个或多个翻转阈值的装置;以及用于基于处理后的一个或多个翻转阈值来对数据执行位翻转算法的装置。
附图说明
12.因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意,附图仅
示出了本公开的示例并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
13.图1是具有附随的接口和解码器的主机设备和存储设备的示意性框图。
14.图2是ascii格式的文本文件的部分。
15.图3是用于生成待解码数据的概率差度量的方法的流程图。
16.图4a和图4b是根据一些示例的用于解码数据的方法的流程图。
17.图5是示出延迟的模拟结果的图。
18.图6是示出校正能力的模拟结果的图。
19.为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想,在一个示例中公开的元件可以有益地用于其他示例而无需具体叙述。
具体实施方式
20.在下文中,参考本公开中描述的各种示例。然而,应当理解,本公开不限于具体描述的示例。相反,涵盖以下特征和元件的任何组合(无论是否与不同示例相关)以实现和实践本公开。此外,尽管示例可以实现优于其他可能解决方案和/或优于现有技术的优点,是否通过给定示例来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
21.本文描述的示例大体上涉及内容感知式位翻转解码器。示例是一种设备。所述设备包括解码器,所述解码器被配置成:基于要解码的数据的统计信息来处理一个或多个翻转阈值;并且使用一个或多个处理后的翻转阈值来对数据执行位翻转算法。其他示例涉及基于待解码数据的统计信息来处理一个或多个翻转阈值的方法,并且使用一个或多个处理后的翻转阈值来对数据执行位翻转算法。
22.图1示出了主机设备102和存储设备104的示意性框图100。存储设备104包括存储控制器108、编码器/解码器110和一个或多个存储器设备a-n112a-112n(单独或共同地,存储器设备112)。数据可通过主机设备102与存储设备104之间的接口106发送和接收。接口106被配置成与主机设备102进行接口交互,即接受由主机设备102提供的数据和/或命令请求以供存储设备104处理。
23.存储控制器108被配置成控制存储设备104的各种组件之间的数据流。存储控制器108可以将从接口106接收到的数据引导到编码器/解码器110以编码接收到的数据,并且可以从编码器/解码器110接收编码后的数据,存储控制器108可以将所述编码后的数据写入存储器设备112。类似地,存储控制器108可以将从存储器设备112读取的数据引导到编码器/解码器110以解码读取到的数据,并且可以从编码器/解码器110接收解码后的数据,存储控制器108可以将解码后的数据发射到接口106以供与主机设备102通信。存储控制器108进一步被配置成将用于读取序列和写入序列的命令序列发射到存储器设备112。存储控制器108可以被配置成执行其他任务,诸如格式化存储器设备112、映射出存储器设备112的不良存储器单元、分配待取代未来故障存储器单元的备用单元、在存储器设备112的逻辑与物理地址之间转译、损耗均衡、垃圾收集等。在所说明的示例中,存储设备104可以是用于存储
信息的单个或多个ssd。
24.存储控制器108可以包括处理电路或处理器(具有存储可由处理器执行的计算机可读程序代码(例如,固件)的计算机可读介质)、逻辑电路、专用集成电路(asic)、可编程逻辑控制器、嵌入式微控制器、它们的组合,等等。存储控制器108可以配置有硬件和/或固件以执行各种功能。
25.编码器/解码器110包括低档(lg)解码器114和高档(hg)解码器116。lg解码器114可以实现低功率位翻转算法,诸如低密度奇偶校验(ldpc)算法。lg解码器114可以操作以解码数据并且在此类数据具有低误码率(ber)的情况下校正位翻转。hg解码器116可以实现全功率解码和错误校正算法,这些算法可在lg解码器114未能解码和校正数据的位翻转时启动。hg解码器116可以操作以在此类数据具有高ber的情况下校正位翻转。因此,lg解码器114和hg解码器116可以实现齿轮移位。
26.编码器/解码器110(包括lg解码器114和hg解码器116)可以是或包括处理电路或处理器(具有存储可由处理器执行的计算机可读程序代码(例如,固件)的计算机可读介质)、逻辑电路、专用集成电路(asic)、可编程逻辑控制器、嵌入式微控制器、它们的组合,等等。编码器/解码器110可以配置有硬件和/或固件,以执行下文描述并且在流程图中示出的各种功能。在一些示例中,编码器/解码器110与存储控制器108分开,并且在其他示例中,编码器212和解码器110嵌入在存储控制器中或是存储控制器的一部分。在一些示例中,lg解码器114是硬化电路,诸如逻辑电路、asic等等。在一些示例中,hg解码器116可以是软解码器(例如,由处理器实现)。
27.更通常地,将由编码器/解码器110解码的数据具有低ber。因此,lg解码器114可以实现低功率和低延迟解码以解码具有低ber的数据。通过由lg解码器114采用此类解码,编码器/解码器110的延迟和功率消耗可以减小。此外,根据一些示例的lg解码器114的硬化电路可以在裸片上具有显著较小的面积,并且消耗比软解码器小得多的功率,诸如小16倍的面积和小12到16倍的功率。如下文进一步详细描述的,lg解码器114知道数据的统计信息可以进一步减小lg解码器114的延迟并提高其解码能力。
28.存储器设备112可包括任何合适的易失性或非易失性存储介质。例如,存储器设备112可以是或包括非易失性存储介质,诸如nand闪存存储器单元和/或nor闪存存储器单元。在一些示例中,存储器单元可以采用固态(例如,闪存)存储器单元的形式,并且可以是可一次编程、可数次编程或可多次编程的。存储器单元还可以是单级单元(slc)、多级单元(mlc)、三级单元(tlc),或者使用现在已知或之后开发的其他存储器单元级技术。
29.存储设备104的各种组件可以实施在一个或多个不同的裸片中,所述一个或多个不同的裸片可以包括在封装或模块中。例如,接口106、存储控制器108和编码器/解码器110可以实施在单个裸片上,并且每个存储器设备112可以实施在相应的不同裸片上。可以实现任何数目的不同裸片。裸片和其上的组件可以通过与裸片附接的衬底通信地联接。衬底可以是或包括中介层、封装衬底、其组合等。
30.本公开的各方面使用图1中所述的元件/部件来实现几种方法的执行以利用解码器中的数据,这可以实现校正能力的提高以及解码延迟和功率消耗的减小。本公开的各方面可使用存在于数据自身中的结构来实现更有效的解码。
31.在许多情况下,写入存储器(诸如,闪存存储器,类似基于nand的ssd)的数据具有
到存储器的结构。所述结构可以是用户源的性质(例如,如果保存的数据是起源中的文本)。在一些示例中,结构可以是使用存储器的方式的性质(例如,由固件写入的表格,添加了零的数据,等等)。相比尝试执行错误校正而不使用此类特性,在解码过程中利用此类结构的特征可以产生减小的延迟和改善的校正。
32.与不使用此类方法的常规方法相比,了解数据的基本统计信息可有助于解码器在解码数据时更有效地获得正确结果。图2示出了ascii格式的文本文件200的部分。ascii中的每个字符是一个字节,并且最常见字符仅占据字节的七(7)个最低有效位。这导致这些最常见字符的字节的最高有效位202为“0”。因此,存储在数据内的任何字节的最有效位为“0”的概率高。如果待解代码字节在最高有效位中具有“1”,那么可以假设所述位的值是错误的高可能性。当位值是错误或正确的概率超出置信度阈值时,本文所描述的示例利用此类概率来减小或增大翻转算法中使用的位位置的翻转阈值。
33.通常,在一些示例中,读取到的数据在存储控制器108的控制下从存储器设备112传送到编码器/解码器110中。编码器/解码器110(例如,lg解码器114)基于数据(例如,当数据被传送到编码器/解码器110时的动态数据)来生成统计信息,诸如概率差度量。lg解码器114基于统计信息(例如,概率差度量)来处理翻转算法中使用的相应位位置的一个或多个翻转阈值。处理翻转阈值可以增大或减小翻转阈值的值。lg解码器114执行翻转算法,所述翻转算法计算奇偶校验方程满意度并且可以解码数据。翻转算法使用处理后的一个或多个翻转阈值。
34.图3是根据一些示例的用于生成待解码数据的统计信息(例如,在一些示例中,概率差度量)的方法的流程图300。在框302处,生成表示传送到编码器/解码器110的数据的直方图。传送的数据是待解码数据,所述待解码数据可以从存储器设备112读取。在一些示例中,直方图计数数据中相应k位序列(例如,k位元组)的出现次数。作为本文的示例并且为了简便起见,直方图计数表示为十进制值的k位元组的数目,尽管所述值可以由任何基本格式表示(例如,二进制、十六进制,等等)。直方图可以包括由k位表示的每个可能值的箱,并且对应于值的箱可以针对具有所述值的数据中的k位元组递增,使得直方图维持具有对应值的k位元组的数目的计数。例如,直方图可以包括值集v,其中箱vj∈v并且值j为十进制值[0,...,2
k-1]。任何箱vj的值是传送的数据中具有值j的k位元组的实例的数目。
[0035]
在框304,基于直方图来生成传送的数据中任何给定的k位元组具有相应值的概率。继续前述示例,传送的数据中任何给定k位元组具有值j的概率pj可以计算为:
[0036][0037]
在框306,基于概率来生成概率差度量的表。表t包括概率差度量t
m,n
∈t,其中n指示k位元组中的位位置,并且m是k位元组的二进制表示的值,其中在位位置n没有位值b[n](例如,(k-1)位元组的值)。每个概率差度量t
m,n
是表示任何给定k位元组具有当位值b[n]为“0”和“1”并插入对应于值m的剩余(k-1)位元组中的位位置n时获得的两个值j的相应概率pj之间的差的度量。作为示例,在4位(例如,k=4)元组的情况下,条目t
5,2
指示(k-1)位元组的值为5,并且k位元组中的位位置为2。(k-1)位元组是b
(k-1)
[0:3]=《101》2=5=m。所获得的两个值是9和13。当“0”插入位置2时,bk[0:4]=《1001》2=9,并且当“1”插入位位置2时,bk[0:4]=《1011》2=13。因此,概率差度量t
5,2
是表示概率p9与概率p
13
之间的差的度量。在一些示例中,条目t
m,n
的度量可以是两个概率pj之间的差(例如,t
5,2
=p
9-p
13
),两个概率pj的比率的对数(例如,),或另一度量。下表1是4位元组的示例表t。其他示例可以实现其他度量和/或扩展到不同的位大小的元组。
[0038][0039]
从表1将显而易见,在这个示例中,当位值b[n]在具有给定剩余(k-1)位元组的任何k位元组中具有较高概率的“1”时,对应概率差度量t
m,n
为负,并且当位值b[n]具有在具有给定剩余(k-1)位元组的任何k位元组中具有较高概率的“0”时,对应概率差度量t
m,n
为正。当概率相等时,k位元组的对应概率差度量t
m,n
为0。
[0040]
在解码数据时,基于统计信息,诸如基于表t的概率差度量t
m,n
,来处理对于k位元组的位位置k的翻转阈值f
th,k
。在处理后,在位翻转算法中使用翻转阈值f
th,k
以确定是否基于k位元组中位位置k处位值b[k]参与的未满足的奇偶校验方程的数目来翻转k位元组中位位置k处的对应位值b[k]。处理翻转阈值f
th,k
以及确定是否翻转对应的位值b[n]可以迭代地执行,直到满足所有奇偶校验方程,从而导致解码成功为止,或直到满足解码失败条件为止。通过处理翻转阈值f
th,k
,奇偶校验方程的收敛可以更快地达到并且延迟减小。另外,通过处理翻转阈值f
th,k
,解码的校正能力可以提高。
[0041]
图4a和图4b是根据一些示例的用于解码数据的方法的流程图400a、400b。在用于解码数据的方法内,处理一个或多个翻转阈值,并且实现位翻转算法。
[0042]
如本文所述,用于解码数据的方法实现奇偶校验方程。在一些示例中,奇偶校验方程诸如通过使用gallager a或gallager b算法来实现低密度奇偶校验(ldpc)代码算法。奇偶校验方程使用具有长度n的错误校正代码字。错误校正代码字可以具有对应的一组m个奇
偶校验方程。每个奇偶校验方程可以是对错误校正代码字的位子集的约束。待解码的k位元组的数目(例如,对于图4a和图4b的解码数据的方法的单个实施方式)可以具有与错误校正代码字长度n的关系。待解码的k位元组的数目s是错误校正代码字长度n与每k位元组中k个位的比率(例如,s=n/k)。每个奇偶校验方程可以具有s个k位元组中的一个或多个位作为奇偶校验方程的参与项。如果当分析s个k位元组中的一个或多个位和错误校正代码字的对应位子集时,奇偶校验方程导致例如“0”,那么可以认为满足奇偶校验方程。如果满足所有奇偶校验方程,那么s个k位元组会引发合法代码字;否则,s个k位元组不会引发合法代码字。
[0043]
双分图可以用于表示具有长度n的错误校正代码字和m个奇偶校验方程。双分图包括可变节点、校验节点和连接可变节点和校验节点的边线。每个可变节点对应于错误校正代码字的位位置,并且因此双分图中存在n个可变节点。每个校验节点对应于奇偶校验方程,并且因此双分图中存在m个校验节点。每个边线表示由校验节点表示的奇偶校验中的可变节点(和k位元组的对应位位置)所表示的错误校正码的位位置参与,其中边线将可变节点连接到校验节点。每个可变节点可以通过边线连接到任何数目的校验节点,并且每个校验节点可以通过边线连接到任何数目的可变节点。
[0044]
参考图4a,在框402,循环计数变量iter初始化为等于1。在框404,元组数目变量s初始化为等于零。通常,元组数目变量s是使用具有长度n的错误校正代码字对待解码数据内的k位元组分析以供错误校正的索引。如将显而易见,元组数目变量s可以具有零到比待解码元组的数目s小1的值(例如,0≤s≤s-1)。
[0045]
在框406,例如,从传送到编码器/解码器110的数据获得具有位值b[0:(k-1)]的s个k位元组。在框408,位位置变量q初始化为等于零。在框410,翻转阈值f
th,q
初始化为某个值。翻转阈值f
th,q
的初始化值可以是任意的,或者可以基于随后实现的奇偶校验方程。例如,如果在奇偶校验中,位位置q参与一些数目个奇偶校验方程,那么翻转阈值f
th,q
的初始化值可以是位位置q参与的奇偶校验方程的数目的一半,上舍入到最接近的整数。作为示例,如果位位置q参与2个奇偶校验方程,那么翻转阈值f
th,q
的初始化值可以是1,或者如果位位置q参与3个奇偶校验方程,那么翻转阈值f
th,q
的初始化值可以是2。在s个k位元组的相同位位置q后续迭代中,翻转阈值f
th,q
可以初始化为在先前迭代中确定的翻转阈值f
th,q
的值。
[0046]
在框412,基于k位元组和位位置变量q,从表t获得概率差度量t
m,q
。如上所述,基于k位元组和位位置q来识别概率差度量t
m,q
。总的来说,从k位元组中移除位位置q处的位值b[q],以创建剩余(k-1)位元组(例如,使用不含位值b[q]的k位元组的相应位值),并且从剩余(k-1)位元组确定值m。
[0047]
在框414到框422,基于概率差度量t
m,q
和置信度阈值c
th0
,c
th1
来设置调整因子d。预定义置信度阈值c
th0
,c
th1
。置信度阈值c
th0
是控制k位元组的任何位位置处的位值更可能具有值“0”的置信度水平的阈值值,并且置信度阈值c
th1
是控制k位元组的任何位位置处的位值更可能具有值“1”的置信度水平的阈值值。通常,置信度阈值c
th1
的值小于置信度阈值c
th0
的值(例如,c
th1
<c
th0
)。置信度阈值c
th0
可以是小于或等于1的正数(例如,0<c
th0
≤1)。置信度阈值c
th1
可以是大于或等于负1的负数(例如,-1≤c
th1
<0)。如上所述,当对应位值b[n]在给定剩余(k-1)位元组具有值m的任何k位元组中具有较高概率的“1”时,概率差度量t
m,n

负。此外,概率差度量t
m,n
的负值的量值越大,位值b[n]可能是“1”的置信度越大。另外,当对应位值b[n]具有在具有值m的给定剩余(k-1)位元组中的任何k位元组中是“0”的较高概率时,概率差度量t
m,n
为正。此外,概率差度量t
m,n
的正值的量值越大,位值b[n]可能是“1”的置信度越大。
[0048]
调整因子d设置如下:
[0049][0050]
框414-422实现以此方式设置调整因子d。在框414,确定概率差度量t
m,q
是否大于置信度阈值c
th0
。如果是,在框416,将调整因子d设置为负1。这表明位值b[q]具有在置信度程度下具有“0”值的较高概率。概率差度量t
m,q
的正值的量值大于并且超过置信度阈值c
th0
的正值的量值。如果在框414确定概率差度量t
m,q
不大于置信度阈值c
th0
,那么在框418,确定概率差度量t
m,q
是否小于置信度阈值c
th1
。如果是,那么在框420,将调整因子d设置为正1。这表明位值b[q]具有在置信度程度下具有值“1”的较高概率。概率差度量的负值的量值t
m,q
大于并且超过置信度阈值c
th1
的负值的量值。如果框418的确定是概率差度量t
m,q
不小于置信度阈值c
th1
,那么在框422,将调整因子d设置为零。这表明位值b[q]可能是“0”或“1”中的任一个的置信度不足。
[0051]
在框416、420、422中的一个中设置调整因子d之后,在框424,基于位值b[q]和调整因子d更新翻转阈值f
th,q
。通常,并且如图所示,翻转阈值f
th,q
可以使用更新函数update_func(b[q],d来调整。翻转阈值f
th,q
可以通过更新函数update_func(b[q],d增大或减小。例如,翻转阈值f
th,q
可以如下调整:
[0052]fth,q
=f
th,q
+update_func(b[q],d)
[0053]
下表2说明示例更新函数update_func(b[q],d。
[0054][0055]
表2的更新函数update_func(b[q],d可以如下重新陈述:
[0056]
update_func(b[q],d)=d(2b[q]-1)
[0057]
关于表2中的线(1),调整因子d是负1,这表明位值b[q]在置信度程度下具有值“0”的较高概率。然而,由于位值b[q]是“1”,翻转阈值f
th,q
减小1(例如,update_func(b[q],d)=-1)。减小翻转阈值f
th,q
可以允许位值b[q]在翻转算法的操作期间更容易翻转。
[0058]
关于表2中的线(2),调整因子d是负1,这表明位值b[q]在置信度程度下具有值“0”的较高概率。由于位值b[q]是“0”,翻转阈值f
th,q
增大1(例如,update_func(b[q],d)=1)。增大翻转阈值f
th,q
可以防止位值b[q]在翻转算法的操作期间被翻转。
[0059]
关于表2中的线(3),调整因子d为正1,这表明位值b[q]在置信度程度下具有值“1”的较高概率。由于位值b[q]是“1”,翻转阈值f
th,q
增大1(例如,update_func(b[q],d)=1)。增大翻转阈值f
th,q
可以防止位值b[q]在翻转算法的操作期间被翻转。
[0060]
关于表2中的线(4),调整因子d为1,这表明位值b[q]在置信度程度下具有值“1”的较高概率。然而,由于位值b[q]是“0”,翻转阈值f
th,q
减小1(例如,update_func(b[q],d)=-1)。减小翻转阈值f
th,q
可以允许位值b[q]在翻转算法的操作期间更容易翻转。
[0061]
关于表2中的线(5)和(6),调整因子d为零,这表明位值b[q]可能是“0”或“1”中的任一个的置信度不足。因此,翻转阈值f
th,q
不变(例如,update_func(b[q],d)=0)。还应注意,在这个示例中,在流程图400a中,如果在框418确定是概率差度量t
m,q
不小于置信度阈值c
th1
,那么流可以进行到框426,因为翻转阈值f
th,q
不变。
[0062]
在框426,计算k位元组的位值b[q]参与的未满足的奇偶校验方程的数目unsat
b[q]
。计算k位元组的位值b[q]参与的奇偶校验方程(例如,包括使用错误校正代码字的对应位子集)。随后,对未满足的奇偶校验方程unsat
b[q]
的数目(例如,对不等于零的奇偶校验方程)进行计数。参考图4b,在框452,确定未满足的奇偶校验方程unsat
b[q]
的数目是否大于翻转阈值f
th,q
。如果是,那么在框454,k位元组中的位值b[q]翻转。例如,如果最初b[q]=0,那么位值b[q]翻转为“1”,并且如果最初b[q]=1,那么位值b[q]翻转为“0”。如果在框452确定未满足的奇偶校验方程unsat
b[q]
的数目不大于翻转阈值f
th,q
,或在框454之后,那么在框456,使用具有长度n的错误校正代码字对s个k位元组执行奇偶校验方程。
[0063]
在框458,确定是否满足所有奇偶校验方程。如果是,那么在框460,获得s个k位元组的解码结果,并且实现收敛。如果奇偶校验方程中的至少一个不满足,那么在框462,位位置变量q递增1。
[0064]
在框464,确定位位置变量q是否小于k位元组中的k个位数。如果是,那么流环回到图4a的框410以分析k位元组的另一位位置。如果不是,那么在框466,元组数目变量s递增1。通过循环自框464到框410的流所形成的循环,可以允许流分析s个k位元组内的每个位,以尝试收敛地达到解码结果。如将显而易见,如果分析s个k位元组中的每个位而没有达到解码结果,那么外部循环可以使其他k位元组被扫描,并且可以使k位元组的位被重复扫描。
[0065]
在框468,确定元组数目变量s是否小于待解码元组的数目s。如果是,那么流环回到图4a的框406以分析另一k位元组。如果不是,那么在框470,循环计数变量iter递增1。通过循环自框468到框406的流所形成的循环,可以允许流分析待解码的每个k位元组,以尝试收敛地达到解码结果。
[0066]
在框472,确定循环计数变量iter是否小于最大迭代次数。最大迭代次数可以是在待解码数据被认为无法解码之前执行的任意数目的迭代。如果循环计数变量iter小于最大迭代次数,那么流环回到图4a中的框404。如果在框472,确定循环计数变量iter不小于最大迭代次数,那么在框474,确定解码故障。在框474,可以抛弃例外,并且例如,将待解码数据传递到hg解码器116以供错误校正和解码。
[0067]
可以对由图4a和图4b的流程图400a、400b实施的方法进行任何数目的变化。例如,
代替迭代地处理不同位位置,在一些情况下,可以并行处理任何数目的位位置。此外,可以修改由各种确定实现的位位置变量、循环计数器和逻辑以实现等效功能性。
[0068]
图5和图6是模拟结果的曲线图500、600,比较了如本文所述的解码器的示例实施方式与传统解码器。图5的曲线图500示出了作为位错误率(ber)的函数的平均延迟。图6的曲线图600示出了作为ber的函数的块错误率(bler)(例如,指示解码失败的概率)。曲线图500、600中的曲线502、602表示解码器的示例实施方式的结果。曲线图500、600中的曲线504、604表示常规解码器的结果。使用在正常使用期间记录在128个顺序闪存存储器单元(fmu)上的数据集获得图5和图6的模拟。8位元组和对应直方图用于解码器的示例实施方式。
[0069]
如图5所示,示例实施方式具有减小的解码延迟。对于较低ber值和中间ber值,延迟可以减小。预期解码器的示例实施方式将可能在解码器的大部分寿命期间用具有较低ber值的数据执行。
[0070]
如图6所示,示例实施方式具有提高的校正能力。对于较低的ber值来说,示例实施方式的bler可以比常规解码器低大约一个量级。另外,示例实施方式的解码阈值(例如,具有在给定bler达到之前可以解码的ber的数据)有所增大。
[0071]
通常,由例如lg解码器114使用统计信息来解码和错误校正数据,可以减小延迟并且提高校正能力。这可以改善位翻转解码器的性能,例如,在较低ber的情况下,在低功耗的情况下。处理翻转阈值可以允许以较少迭代解码和错误校正,并且允许针对较高ber实现位翻转算法。
[0072]
根据一些示例,一种设备包括解码器,所述解码器被配置成:基于待解码数据的统计信息来处理一个或多个翻转阈值;并且使用一个或多个处理后的翻转阈值来对数据执行位翻转算法。
[0073]
在上述设备的另外的示例中,解码器可以进一步被配置成生成数据的统计信息。
[0074]
在上述设备的另外的示例中,统计信息可以包括概率差度量,概率差度量中的每个概率差度量基于对应于相应位差值相的两个概率,两个概率中的每个概率是数据中给定k位元组具有相应值的概率,两个概率的相应位差值由对应(k-1)个位位置具有相同相应值并且一个位位置具有不同值的k位元组表示。此外,在一些示例中,解码器可以被配置成:当对应于由在位位置处具有不同位值的数据的k位元组表示的值的概率差度量超过对应于“1”的第一置信度阈值并且位位置处的位值是“1”时,或者当概率差度量超过对应于“0”的第二置信度阈值并且位值是“0”时,增大对应于数据的k位元组的位位置的相应翻转阈值;并且当概率差度量超过第一置信度阈值并且位值是“0”时,或者当概率差度量超过第二置信度阈值并且位值是“1”时,减小对应于位位置的相应翻转阈值。
[0075]
在上述设备的另外的示例中,解码器可以被配置成:当统计信息指示位位置处的位值更有可能在置信度程度下是正确的时,增大对应于k位元组的位位置的相应翻转阈值;并且当统计信息指示位值更有可能在置信度程度下是不正确的时,减小相应翻转阈值。
[0076]
在上述设备的另外的示例中,解码器可以被配置成:确定数据的位值参与的未满足的奇偶校验方程的数目;以及当位值参与的未满足的奇偶校验方程的数目超过对应于位值的位位置的相应翻转阈值时,翻转数据的位值。
[0077]
在上述设备的另外的示例中,位翻转算法可以包括低密度奇偶校验(ldpc)。
[0078]
根据一些示例,一种设备包括解码器,所述解码器被配置成:获得数据;确定数据的统计信息;基于数据统计信息来调整一个或多个翻转阈值;对数据执行校验方程;以及基于一个或多个翻转阈值和检查方程的结果来翻转数据的一个或多个位值。
[0079]
在上述设备的另外的示例中,解码器可以被配置成:生成包括箱的直方图,所述箱中的每个箱对应于由k个位表示的相应箱值,所述箱中的每个箱具有在数据中的多个实例,其中k位元组具有相应的箱值;针对每个箱值确定数据中给定k位元组具有基于直方图的相应箱值的概率;并且生成概率差度量,概率差度量中的每个概率差度量基于对应于相应位差值的概率中的相应两个,相应位差值由对应(k-1)个位位置具有相同相应值并且一个位位置具有不同值的k位元组表示,其中调整一个或多个翻转阈值是基于概率差度量。此外,在一些示例中,概率差度量中的每个概率差度量可以是概率中的相应两个概率之间的差。此外,在一些示例中,概率差度量中的每个概率差度量可以是概率中的相应两个的比率的对数。此外,在一些示例中,解码器可以被配置成针对数据的k位元组的位位置:确定多个概率差度量中的一个概率差度量是否超过对应于位值为“0”的置信度的第一置信度阈值,概率差度量基于对应于相应位位置的位值是“0”且是“1”的数据的k位元组的位值所表示的位差值的概率;确定概率差度量是否超过对应于位值为“1”的置信度的第二置信度阈值;当(i)概率差度量超过第一置信度阈值并且相应位位置的位值为“0”时,或者当(ii)概率差度量超过第二置信度阈值并且相应位位置的位值为“1”时,增大对应于相应位位置的相应翻转阈值;并且当(i)概率差度量超过第一置信度阈值并且相应位位置的位值为“1”时,或者当(ii)概率差度量超过第二置信度阈值且相应位位置的位值为“0”时,减小相应翻转阈值;
[0080]
在上述设备的另外的示例中,解码器可以被配置成针对数据的k位元组的位位置:确定统计信息指示相应位位置的位值更有可能在置信度程度下是正确的还是错误的;并且当统计信息指示位值更有可能在置信度程度下是正确的还是错误的时调整对应于相应位位置的相应翻转阈值。
[0081]
在上述设备的另外的示例中,解码器可以被配置成针对数据的k位元组的位位置:确定统计信息是否指示相应位位置的位值为“1”的概率超过第一置信度阈值;确定统计信息是否指示位值为“0”的概率超过第二置信度阈值;当(i)统计信息指示位值为“1”的概率超过第一置信度阈值并且位值为“1”时,或者当(ii)统计信息指示位值为“0”的概率超过第二置信度阈值并且位值为“0”,增大对应于相应位位置的相应翻转阈值;并且当(i)统计信息指示位值为“1”的概率超过第一置信度阈值并且位值为“0”时,或者当(ii)统计信息指示位值为“0”的概率超过第二置信度阈值并且位值为“1”,减小相应翻转阈值。
[0082]
在上述设备的另外的示例中,当相应位值参与的未满足的校验方程的数目超过对应于相应位值的位位置的相应翻转阈值时,数据的一个或多个位值中的每一个可以翻转。
[0083]
在上述设备的另外的示例中,校验方程可以是低密度奇偶校验(ldpc)的至少部分。
[0084]
根据一些示例,一种设备包括用于获得数据的装置;用于生成数据的统计信息的装置;用于基于数据统计信息来处理一个或多个翻转阈值的装置;以及用于基于处理后的一个或多个翻转阈值来对数据执行位翻转算法的装置。
[0085]
在上述设备的另外的示例中,用于生成统计信息的装置可以包括用于生成数据的概率差度量的装置,概率差度量中的每个概率差度量对应于k位元组具有数据中的相应值
的概率之间的差的表示,相应值是在对应(k-1)个位位置处具有相同位值并且在一个位位置处具有不同位值的k位元组。此外,用于处理一个或多个翻转阈值的装置可以包括用于基于概率差度量的相应概率差度量与置信度阈值的比较、对应于k位元组的位位置的相应翻转阈值、对应于在位位置具有不同位值的k位元组的相应值的相应概率差度量,增大和减小一个或多个翻转阈值的相应翻转阈值的装置。
[0086]
在上述设备的另外的示例中,位翻转算法可以包括低密度奇偶校验(ldpc)。
[0087]
根据一些示例,一种方法包括:基于待解码数据的统计信息来处理一个或多个翻转阈值;以及使用一个或多个处理后的翻转阈值来对数据执行位翻转算法。
[0088]
在另外的示例中,上述方法可以包括生成数据的统计信息。
[0089]
在上述方法的另外的示例中,统计信息可以包括概率差度量,概率差度量中的每个概率差度量基于对应于相应位差值相的两个概率,两个概率中的每个概率是数据中给定k位元组具有相应值的概率,两个概率的相应位差值由对应(k-1)个位位置具有相同相应值并且一个位位置具有不同值的k位元组表示。此外,在一些示例中,所述方法可以包括:当对应于由在位位置处具有不同位值的数据的k位元组表示的值的概率差度量超过对应于“1”的第一置信度阈值并且位位置处的位值是“1”时,或者当概率差度量超过对应于“0”的第二置信度阈值并且位值是“0”时,增大对应于数据的k位元组的位位置的相应翻转阈值;并且当概率差度量超过第一置信度阈值并且位值是“0”时,或者当概率差度量超过第二置信度阈值并且位值是“1”时,减小对应于位位置的相应翻转阈值。
[0090]
在另外的示例中,上述方法可以包括当统计信息指示位位置处的位值更有可能在置信度程度下是正确的时,增大对应于k位元组的位位置的相应翻转阈值;并且当统计信息指示位值更有可能在置信度程度下是不正确的时,减小相应翻转阈值。
[0091]
在另外的示例中,上述方法可以包括:确定数据的位值参与的未满足的奇偶校验方程的数目;以及当位值参与的未满足的奇偶校验方程的数目超过对应于位值的位位置的相应翻转阈值时,翻转数据的位值。
[0092]
在上述方法的另外的示例中,位翻转算法可以包括低密度奇偶校验(ldpc)。
[0093]
根据一些示例,一种方法包括:获得数据;确定数据的统计信息;基于数据统计信息来调整一个或多个翻转阈值;对数据执行校验方程;以及基于一个或多个翻转阈值和校验方程的结果来翻转数据的一个或多个位值。
[0094]
在另外的示例中,上述方法可以包括:生成包括箱的直方图,所述箱中的每个箱对应于由k个位表示的相应箱值,所述箱中的每个箱具有在数据中的多个实例,其中k位元组具有相应的箱值;针对每个箱值确定数据中给定k位元组具有基于直方图的相应箱值的概率;并且生成概率差度量,概率差度量中的每个概率差度量基于对应于相应位差值的概率中的相应两个,相应位差值由对应(k-1)个位位置具有相同相应值并且一个位位置具有不同值的k位元组表示,其中调整一个或多个翻转阈值是基于概率差度量。此外,在一些示例中,概率差度量中的每个概率差度量可以是概率中的相应两个概率之间的差。此外,在一些示例中,概率差度量中的每个概率差度量可以是概率中的相应两个的比率的对数。此外,在一些示例中,所述方法可以包括针对数据的k位元组的位位置:确定多个概率差度量中的一个概率差度量是否超过对应于位值为“0”的置信度的第一置信度阈值,概率差度量基于对应于相应位位置的位值是“0”且是“1”的数据的k位元组的位值所表示的位差值的概率;确
定概率差度量是否超过对应于位值为“1”的置信度的第二置信度阈值;当(i)概率差度量超过第一置信度阈值并且相应位位置的位值为“0”时,或者当(ii)概率差度量超过第二置信度阈值并且相应位位置的位值为“1”时,增大对应于相应位位置的相应翻转阈值;并且当(i)概率差度量超过第一置信度阈值并且相应位位置的位值为“1”时,或者当(ii)概率差度量超过第二置信度阈值且相应位位置的位值为“0”时,减小相应翻转阈值;
[0095]
在另外的示例中,上述方法可以包括针对数据的k位元组的位位置:确定统计信息指示相应位位置的位值更有可能在置信度程度下是正确的还是错误的;并且当统计信息指示位值更有可能在置信度程度下是正确的还是错误的时调整对应于相应位位置的相应翻转阈值。
[0096]
在另外的示例中,上述方法可以包括针对数据的k位元组的位位置:确定统计信息是否指示相应位位置的位值为“1”的概率超过第一置信度阈值;确定统计信息是否指示位值为“0”的概率超过第二置信度阈值;当(i)统计信息指示位值为“1”的概率超过第一置信度阈值并且位值为“1”时,或者当(ii)统计信息指示位值为“0”的概率超过第二置信度阈值并且位值为“0”,增大对应于相应位位置的相应翻转阈值;并且当(i)统计信息指示位值为“1”的概率超过第一置信度阈值并且位值为“0”时,或者当(ii)统计信息指示位值为“0”的概率超过第二置信度阈值并且位值为“1”,减小相应翻转阈值。
[0097]
在上述方法的另外的示例中,当相应位值参与的未满足的校验方程的数目超过对应于相应位值的位位置的相应翻转阈值时,数据的一个或多个位值中的每一个可以翻转。
[0098]
在上述方法的另外的示例中,校验方程可以是低密度奇偶校验(ldpc)的至少部分。
[0099]
根据一些示例,一种方法包括获得数据;生成数据的统计信息;基于数据统计信息来处理一个或多个翻转阈值;以及基于处理后的一个或多个翻转阈值来对数据执行位翻转算法。
[0100]
在上述方法的另外的示例中,生成统计信息可以包括用于生成数据的概率差度量的装置,概率差度量中的每个概率差度量对应于k位元组具有数据中的相应值的概率之间的差的表示,相应值是在对应(k-1)个位位置处具有相同位值并且在一个位位置处具有不同位值的k位元组。此外,处理一个或多个翻转阈值可以包括基于概率差度量的相应概率差度量与置信度阈值的比较、对应于k位元组的位位置的相应翻转阈值、对应于在位位置具有不同位值的k位元组的相应值的相应概率差度量,增大和减小一个或多个翻转阈值的相应翻转阈值。
[0101]
在上述方法的另外的示例中,位翻转算法可以包括低密度奇偶校验(ldpc)。
[0102]
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1