生成对数似然比的压缩框架的制作方法



1.本专利文件总体上涉及非易失性存储器装置,并且更特别地,涉及非易失性存储器装置中的错误校正。


背景技术:



2.数据完整性对于任意的数据存储装置和数据传输都是重要的特征。对于包括nand闪速存储器装置的各种类型的数据存储装置,推荐使用强错误校正码(ecc)。
3.固态驱动器(ssd)使用多层nand闪存装置进行永久存储。然而,多层nand闪存装置可能本质上不可靠,并且通常需要使用ecc以达到数据可靠性的显著提高,但却以ecc奇偶校验位的额外存储空间和计算资源为代价。需要可以以最低存储要求提供低复杂性ecc实施方案的ecc。


技术实现要素:



4.所公开技术的实施例涉及用于以压缩形式生成对数似然(llr)的方法、系统和装置。本文件中描述的方法和装置除了其它特征和益处之外,还有利地使用相同存储要求支持灵活llr位宽,并且可以适应非易失性存储器装置在其整个寿命周期中可能发生的广泛的位错误情况。
5.在一个示例性方面,描述了一种用于改进非易失性存储器中的解码操作的方法。该方法包括执行第一次硬读取以获得存储在多个单元中的第一组值,将第一组值存储在第一缓冲器中,对多个单元执行多个后续硬读取以获得多个后续组的值,针对多个后续组的值中的每个后续组的值,执行以下操作:(i)计算质量度量,(ii)将后续组的值与存储在第一缓冲器中的一组值之间的差值存储在第二缓冲器中,其中该差值以压缩格式存储,以及(iii)响应于质量度量超过阈值,将后续组的值存储在第一缓冲器中,基于第一缓冲器和第二缓冲器生成对数似然比,并且基于对数似然比执行解码操作。
6.在另一示例性方面,描述了一种用于改进非易失性存储器中的解码操作的系统。该系统包括处理器与存储器,该存储器包括存储在其上的指令,其中指令在被处理器运行时使处理器执行第一次硬读取以获得存储在多个单元中的第一组值,将第一组值存储在第一缓冲器中,对多个单元执行多个后续硬读取以获得多个后续组的值,针对多个后续组的值中的每个后续组的值,执行以下操作:(i)计算质量度量,(ii)将后续组的值与存储在第一缓冲器中的一组值之间的差值存储在第二缓冲器中,其中该差值以压缩格式存储,以及(iii)响应于质量度量超过阈值,将后续组的值存储在第一缓冲器中,基于第一缓冲器和第二缓冲器,生成对数似然比,并且基于对数似然比执行解码操作。
7.在另一示例性方面,这些方法可以以处理器可运行指令的形式实现并存储在计算机可读程序介质上。
8.本专利文件中描述的主题可以以提供以下特征中的一个或多个的特定方式来实施。
附图说明
9.图1示出了存储器系统的示例。
10.图2是示例性非易失性存储器装置的示图。
11.图3是示出非易失性存储器装置的单元电压电平分布(v
th
)的示例图。
12.图4是示出非易失性存储器装置的单元电压电平分布(v
th
)的另一示例图。
13.图5是示出编程干扰之前与之后的非易失性存储器装置的单元电压电平分布(v
th
)的示例图。
14.图6是示出非易失性存储器装置的单元电压电平分布(v
th
)作为参考电压的函数的示例图。
15.图7示出了存储器单元和仓标签缓冲器的正常读取的示例。
16.图8示出了用于改进非易失性存储器中的解码操作的示例性方法的流程图。
17.图9示出了用于改进非易失性存储器中的解码操作的另一示例性方法的流程图。
具体实施方式
18.低密度奇偶校验(ldpc)码是线性分组错误校正码(ecc)的重要部分,已在数据存储系统中得到广泛使用。可以使用两类解码算法对ldpc码进行解码:软信息消息传递算法,例如,最小和或总和算法;以及硬判定算法,例如,位翻转算法。软信息解码算法提供了很好的解码性能,但是需要大量的计算资源。因此,它们在硬件实现上表现出很高的复杂性。相反,由于简单的计算单元与较小的连接网络,因此硬判定解码器的硬件实施方案显示出较低的复杂性与降低的延迟要求,并且已被开发以提供类似的错误校正性能。在其它系统中,采用硬解码与软解码实施方案的组合。
19.非易失性存储器装置中的现有ecc实施方案被配置为首先使用硬读取(包括基于历史的读取、hrr读取等),并且当它们都失败时,通常使用eboost过程和软读取作为下一步。在eboost过程中,估计中心阈值。作为软读取的一部分,一定数量(例如,七个)的读取阈值被放置在中心阈值周围以生成对数似然比(llr),该llr可以输入到例如最小总和(ms)解码器。在其它实施方案中,llr生成可以用于其它数据恢复功能,例如,芯片猎杀(chipkill)技术和相邻辅助校正(neighbor-assisted correction,nac)。
20.图1至图6概述了可以实施所公开技术的实施例的非易失性存储器系统(例如,基于闪存的存储器、nand闪存)。
21.图1是基于所公开技术的一些实施例实施的存储器系统100的示例的框图。存储器系统100包括可以用于存储供其它电子装置或系统使用的信息的存储器模块110。存储器系统100可以被并入其它电子装置和系统中(例如,位于电路板上)。可选地,存储器系统100可以被实施为诸如usb闪存驱动器和固态驱动器(ssd)的外部存储装置。
22.存储器系统100中包括的存储器模块110可以包括存储器区域(例如,存储器阵列)102、104、106和108。存储器区域102、104、106和108中的每一个可以被包括在单个存储器管芯中或多个存储器管芯中。存储器管芯可以被包括在集成电路(ic)芯片中。
23.存储器区域102、104、106和108中的每一个包括多个存储器单元。可以基于存储器单位执行读取操作、编程操作或擦除操作。因此,每个存储器单位可以包括预定数量的存储器单元。存储器区域102、104、106和108中的存储器单元可以被包括在单个存储器管芯中或
多个存储器管芯中。
24.存储器区域102、104、106和108中的每一个中的存储器单元可以在存储器单位中以行和列布置。存储器单位中的每一个可以是物理单位。例如,一组多个存储器单元可以形成存储器单位。存储器单位中的每一个也可以是逻辑单位。例如,存储器单位可以是可以分别由诸如块地址或页面地址的唯一地址识别的块或页面。再例如,其中存储器区域102、104、106和108可以包括计算机存储器,该计算机存储器包括存储体作为数据存储的逻辑单位,该存储器单位可以是可以由存储体地址识别的存储体。在读取或写入操作期间,与特定存储器单位相关联的唯一地址可以用于访问该特定存储器单位。基于唯一地址,可以将信息写入特定存储器单位中的一个或多个存储器单元或从特定存储器单位中的一个或多个存储器单元检索信息。
25.存储器区域102、104、106和108中的存储器单元可以包括非易失性存储器单元。非易失性存储器单元的示例包括闪速存储器单元、相变随机存取存储器(pram)单元、磁阻随机存取存储器(mram)单元或其它类型的非易失性存储器单元。在存储器单元被配置为nand闪速存储器单元的示例性实施方案中,可以基于页面执行读取操作或写入操作。然而,基于块执行nand闪速存储器中的擦除操作。
26.非易失性存储器单元中的每一个可以被配置为单层单元(slc)或多层存储器单元。单层单元可以每个单元存储一位信息。多层存储器单元可以每个单元存储多于一位的信息。例如,存储器区域102、104、106和108中的存储器单元中的每一个可以被配置为每个单元存储两位信息的多层单元(mlc)、每个单元存储三位信息的三层单元(tlc)或每个单元存储四位信息的四层单元(qlc)。在另一示例中,存储器区域102、104、106和108中的存储器单元中的每一个可以被配置为存储至少一位信息(例如,一位信息或多位信息),并且存储器区域102、104、106和108中的存储器单元中的每一个可以被配置为存储多于一位的信息。
27.如图1所示,存储器系统100包括控制器模块120。控制器模块120包括:存储器接口121,与存储器模块110通信;主机接口126,与主机(未示出)通信;处理器124,运行固件级代码;以及高速缓存123和系统存储器122,分别临时或永久存储可运行固件/指令和相关联的信息。在一些实施方案中,控制器模块120可以包括错误校正引擎(ecc引擎)125,以对存储器模块110中存储的信息执行错误校正操作。错误校正引擎125可以被配置为检测/校正单个位错误或多个位错误。在另一实施方案中,错误校正引擎125可以位于存储器模块110中。
28.主机可以是包括一个或多个处理器的装置或系统,该一个或多个处理器从存储器系统100检索数据或将数据存储或写入存储器系统100中。在一些实施方案中,主机的示例可以包括个人计算机(pc)、便携式数字装置、数字照相机、数字多媒体播放器、电视和无线通信装置。
29.在一些实施方案中,控制器模块120还可以包括主机接口126,以与主机进行通信。主机接口126可以包括符合主机接口规范中的至少一个的组件,主机接口规范包括但不限于串行高级技术附件(sata)、串列小型计算机系统接口(sas)规范、高速外围组件互连(pcie)。
30.图2示出了基于所公开技术的一些实施例实施的存储器单元阵列的示例。
31.在一些实施方案中,存储器单元阵列可以包括nand闪速存储器阵列,该nand闪速存储器阵列被分成许多块,并且每个块包含一定数量的页面。每个块包括多个存储器单元
串,并且每个存储器单元串包括多个存储器单元。
32.在存储器单元阵列是nand闪速存储器阵列的一些实施方案中,基于页面执行读取操作和写入(编程)操作,并且基于块执行擦除操作。在对块中包括的任意页面执行编程操作之前,必须同时擦除相同块内的所有存储器单元。在实施方案中,nand闪速存储器可以使用偶数/奇数位线结构。在另一实施方案中,nand闪速存储器可以使用全位线结构。在偶数/奇数位线结构中,偶数和奇数位线沿着每个字线交错并被交替访问,使得每对偶数和奇数位线可以共享诸如页面缓冲器的外围电路。在全位线结构中,所有位线同时被访问。
33.图3示出了多层单元装置中的阈值电压分布曲线的示例,其中每个编程/擦除状态的单元数量被绘制为阈值电压的函数。如其中所示,阈值电压分布曲线包括具有最低阈值电压的擦除状态(表示为“er”并且对应于“11”)以及三个编程状态(分别表示为对应于“01”、“00”和“10”的“p1”、“p2”和“p3”),并且读取电压在状态之间(由虚线表示)。在一些实施例中,由于在存储器阵列上的材料属性的差异,编程/擦除状态的阈值电压分布中的每一个具有有限的宽度。
34.尽管图3通过示例的方式示出了多层单元装置,但是存储器单元中的每一个可以被配置为每个单元存储任何数量的位。在一些实施方案中,存储器单元中的每一个可以被配置为每个单元存储一位信息的单层单元(slc),或者被配置为每个单元存储三位信息的三层单元(tlc),或者被配置为每个单元存储四位信息的四层单元(qlc)。
35.在将多于一个数据位写入存储器单元时,由于相邻分布之间的距离减小,因此需要对存储器单元的阈值电压电平进行精细布置。这是通过使用增量步进脉冲编程(ispp)来实现的,即,使用编程和验证的方法对相同字线上的存储器单元反复编程,在该方法中,对字线施加阶梯式的编程电压。每个编程状态与在验证操作中使用的验证电压相关联,并且设置每个阈值电压分布窗口的目标位置。
36.失真或重叠的阈值电压分布可能导致读取错误。理想的存储器单元阈值电压分布可能由于例如编程和擦除(p/e)循环、单元之间干扰以及数据保持错误而严重失真或重叠(这将在下面进行讨论),并且在大多数情况下,可以通过使用错误校正码(ecc)来管理这些读取错误。
37.图4示出了理想的阈值电压分布曲线410的示例和失真的阈值电压分布曲线420的示例。纵轴表示具有横轴上表示的特定阈值电压的存储器单元的数量。
38.对于n位多层单元nand闪速存储器,可以将每个单元的阈值电压编程为2n个可能的值。在理想的多层单元nand闪速存储器中,每个值对应于不重叠的阈值电压窗口。
39.闪速存储器p/e循环对单元晶体管的电荷撷取层的浮栅的隧道氧化物造成损害,这导致阈值电压偏移并因此逐渐降低存储器装置噪声裕量。随着p/e循环增加,不同编程状态的相邻分布之间的裕量减小,并且最终分布开始重叠。阈值电压被编程到相邻分布的重叠范围内的存储器单元中存储的数据位可能被误判为原始目标值以外的值。
40.图5示出了nand闪速存储器中的单元之间干扰的示例。单元之间干扰还可能导致闪存单元的阈值电压失真。一个存储器单元晶体管的阈值电压偏移可能通过干扰单元与牺牲单元之间的寄生电容耦合效应而影响其相邻存储器单元晶体管的阈值电压。单元之间干扰的量可能受nand闪速存储器位线结构的影响。在偶数/奇数位线结构中,一个字线上的存储器单元交替地连接到偶数位线和奇数位线,并且在相同字线中,偶数单元在奇数单元之
前被编程。因此,偶数单元和奇数单元经历不同量的单元之间干扰。全位线结构中的单元比偶数/奇数位线结构中的偶数单元遭受更少的单元之间干扰,并且全位线结构可以有效地支持高速电流感测,以提高存储器读取和验证速度。
41.图5中的虚线表示所考虑的单元的p/e状态的标称分布(编程干扰之前),并且“相邻状态值”表示相邻状态已经被编程的值。如图5所示,如果将相邻状态编程为p1,则所考虑的单元的阈值电压分布偏移特定的量。然而,如果将相邻状态编程为阈值电压高于p1的p2,则这导致相比于相邻状态为p1时更大的偏移。类似地,当将相邻状态编程为p3时,阈值电压分布的偏移最大。
42.图6示出了将正常的阈值电压分布和偏移的阈值电压分布进行比较的nand闪速存储器中的保持错误的示例。nand闪速存储器中存储的数据容易随着时间推移而损坏,这被称为数据保持错误。保持错误由单元晶体管的浮栅或电荷撷取层中存储的电荷的损失引起。由于浮栅或电荷撷取层的损耗,编程擦除循环较多的存储器单元更可能经历保持错误。在图6的示例中,将顶行的电压分布(损坏之前)和底行的分布(被保持错误污染)进行比较,显示出向左偏移。
43.在基于nand的存储系统(例如,图1至图6所示的示例)中,当前公开技术的实施例提供一种用于生成对数似然比(llr)的压缩框架。除了其它益处之外,所描述的实施例还可以显著减少存储器使用、节省门数(gate count)和面积,并且支持灵活的llr位宽而不增加存储器消耗。此外,本文公开的实施例被配置为自检测多个可用读取阈值之中的最佳读取阈值,这使得能够通过更改llr表和重试ms解码器操作来生成更好的llr表。这有利地减少了延迟并提高了可靠性和服务质量(qos)。
44.图7示出了现有llr生成算法的示例,其中使用七个阈值来生成每个数据位的3位llr。在该常规llr生成的示例中,为了针对4kb码字的每个数据位生成3位llr,需要七个4kb的存储器时隙(slot)。这七个时隙中,三个时隙用于存储仓标签(bin label),一个时隙用于存储当前读取,三个时隙用于存储辅助读取信息。
45.辅助读取(ar)是粗硬切片(coarse hard slicing)的示例,用于从粗略的意义上确定每个位单元是从哪个允许分布空间的区域中定义的。使用该信息,可以理解从nand页面读取的位聚合的密钥解码阈值用法。使用ar的原因是为了识别特定单元位于三层单元(tlc)nand单元中的七个谷中的哪个谷。这使得在从仓标签映射到llr值时使用不同的llr表。本文中,使用不同的llr表至关重要,因为不同的谷可以具有不同的潜在pv分布,并且需要不同的llr表来更好地解决不对称pv分布。然而,对于客户端和移动片上系统(soc)实施方案,使用七个4kb时隙生成llr会导致不必要的面积和功耗成本。由于需要21个4kb时隙,因此如果支持芯片猎杀和nac,则这种情况会加剧。除了其它解决方案之外,所公开技术的实施例还提供了针对该问题的技术解决方案。
46.在现有的llr生成实施方案中,没有llr表更改和ms解码器重试,假设eboost估计的中心阈值始终是所有可用读取阈值之中最准确的阈值。然而,在现实中,这种情况很少发生,特别是对于同时需要eboost和软解码的页面。由于现有的llr生成技术不具有测量每个读取阈值的质量的能力,因此用于软解码的llr表通常存在偏差。
47.所公开技术的实施例提供一种llr生成框架,该llr生成框架使用单个4kb时隙来跟踪硬读取(hr)信息以获得用于直到那时执行的最佳读取(br)。在一些实施例中,最佳读
取将用作中心阈值读取并可以用作所生成llr的符号位。这有利地补偿了eboost中的不准确性,并且能够通过显式更改llr表并重试ms解码器来使用非对称llr表。
48.在一些实施例中,跟踪最佳读取的实施如下:
49.1.对于第一次读取,i=0,设置br=hr(i)
50.2.对于第二次和后续读取,i≥1,如果质量度量下降,则br被hr(i)替换。
51.在一些实施例中,质量度量(m)被确定为:
52.m=a
×
cs+b
×
|n-1/2|
53.此处,cs是校验和,n是预定数量的单元中1的百分比,当使用最佳读取阈值时,该百分比通常应为50%,并且a和b是非负数,使得a+b=1。
54.在通常的操作条件下,nand页面将包含小于1%的原始错误,这意指码字中的大多数位是可靠的。因此,(图7的上下文中讨论的现有llr生成实施方案中的)原始仓标签时隙中的大部分(大约95%)内容将主要是0或7。对于中心阈值附近的所有读取阈值,这些可靠的单元将一致地读取,并且只有百分之几的单元将具有介于0和7之间的仓标签。因此,使用一整套三个4kb存储器时隙来存储仓标签可能被认为是浪费资源。
55.所公开技术的实施例为了克服上面讨论的资源浪费而提供了一种内联压缩(inline compression)和解压缩方案,该方案简单到可以进行即实计算,并且只使用一个4kb时隙来存储压缩的可靠性信息。
56.在一些实施例中,所公开的实施例不是对读取中1的数量进行计数并将其作为仓标签来生成可靠性信息,而是涉及对特定单元的所有读取与br缓冲器(或简单地说,br)中的位值相比有多不一致进行计数。在示例中,特定单元的值与目前为止的所有读取中br中记录的位值不同的次数被记录。该信息是高度可压缩的,因为在所有读取中,大多数单元通常将具有相同的读取值,该值等于其在br中的值。压缩算法只捕获与br不一致的少数单元,并记录不一致的程度,即观察到不同值的次数。当更新一致性信息时(例如,通过将当前的不一致信息和br与当前的读取信息相结合),解压缩引擎可以被配置为读出一定数量的被压缩的不一致信息,例如256个连续位,更新不一致信息,然后在写回4kb时隙之前将其压缩。在最后一次读取时,更新后的不一致信息将会被写回时隙。当ms解码器可用并且llr生成被触发时,将以窗口方式读出br和压缩不一致存储器(cim)内容,并且将执行llr表查以生成所需llr值并将其发送到ms解码器。
57.在一些实施例中,所描述的压缩算法使得压缩不一致存储器能够被配置为支持灵活的llr位宽。例如,通过一个4kb时隙可以支持4位或5位llr,而现有的llr生成实施方案最多只可以支持3位llr,并且如果需要更高的llr精度支持,则所需的存储器消耗随llr位宽而线性增加。
58.假设压缩窗口大小为8即l=8的更新cim的示例如下所示:
59.第一次读取:hr=[1,0,0,1,0,0,1,1]。将hr存储到br时隙/缓冲器。
[0060]
第二次读取:hr=[1,0,0,1,0,1,1,1]。不发生br替换。将[(5,1)]存储到cim,这表示索引为5的位被第一次发现关于br缓冲器不同(因为自br更新以来只发生了一次读取)。
[0061]
第三次读取:hr=[1,0,1,1,1,1,1,1]。不发生br替换。从cim读取[(5,1)]。将[(2,1),(4,1),(5,2)]写入cim,这表示索引为2和4的位被第一次发现不同,索引为5的位被第二次(即,在第二次读取和本次读取中)发现不同。
[0062]
第四次读取:hr=[1,0,1,1,0,1,1,1]。br被hr替换。从cim读取[(2,1),(4,1),(5,2)]。将[(2,2),(4,1),(5,2)]写入cim,这表示第3位(索引为2)已被第二次发现不同,第5位(索引为4)已被发现一次不同(在第三次读取时),第6位(索引为5)已被发现两次不同(在第二次和第三次读取时)。
[0063]
如以上示例所示,翻转计数的更新是累积的,并且可以从执行的读取次数、br中的位值和hr中的位值以及是否发生br替换来推断。
[0064]
在一些实施例中,每一次针对l位的信息以移动窗口的方式执行cim更新。这有利地确保当前读取的信息是即时消耗的,而不是存储在存储器中。
[0065]
cim可以以各种格式组织以适应多种位错误情况。在示例中,窗口大小可以选择为l=256,并且一个nand页面包含144个这样的窗口。在这种情况下,l内的位位置可以使用8位表示。假设每l位中最多有32个不可靠位(16/256=6.25%)的索引需要被存储。对于每个潜在的不可靠位位置,最多需要记录2
8-1=255个翻转计数,所需的总存储容量为144
×
16
×
(8+8)=36864,正好对应于一个4kb的时隙。
[0066]
所公开实施例中的硬件设计可以提供几种不同的格式选项以更好地处理不同类型的nand架构。特定产品想要使用的格式可以由固件配置。在需要存储更多位索引的情况下(例如,溢出情况),可以删除一些低翻转计数条目,并且可以使用存储空间来记录高翻转计数的索引与计数。这是由于这些高翻转计数指数对软解码器的性能有更大的影响。
[0067]
所公开的实施例包括格式设计阶段,其中对遇到最大数量的位翻转的概率进行评估。如果可能的位翻转的最大数量较高,则可以降低翻转计数的最大数量,并且可以使用这些位来存储更多的翻转索引。通常,硬件设计可以支持多种格式以覆盖广泛的可能情况,固件可以在开发后期配置格式。
[0068]
在大多数情况下,软解码性能由最差的谷值(例如,tlc nand中最高有效位(msb)页面的第一个谷值)的llr质量所决定,因此,使用同时针对所有单元优化的同一llr表,与使用每个谷值一个表的单独llr表效果一样。这有利地节省了存储容量。为了节省额外的存储容量,可以消除ar时隙(或缓冲器)中的三个,从而只需要两个4kb时隙来生成llr——第一个用于最佳读取(br)跟踪,第二个用于压缩仓标签。这使所需的4kb时隙的总数从七个(如在现有llr生成实施方案的情况下,例如图7中所描述的)减少到两个。对于面积和功率敏感的移动应用和客户端应用,这些实施例将实现显著的节省。
[0069]
图8示出了用于改进非易失性存储器中的解码操作的方法800的流程图。方法800包括执行第一次硬读取(hr)操作(810)、将最佳读取(br)缓冲器设置为第一次hr(820),然后以迭代方式进行,直到生成llr。该方法进一步包括,在每次迭代中,执行hr操作(830),如果质量度量超过阈值,则用当前hr替换br(840),然后执行压缩不一致存储器(cim)读取并更新翻转计数(850)。应当注意,质量度量超过阈值(m》t)相当于质量度量小于阈值的负值,例如,m《-t,反之亦然。如果需要,更新cim(870)并执行下一次hr操作(830);否则,现在可以使用例如查表(lut)生成llr(860)。
[0070]
图9示出了用于改进非易失性存储器中的解码操作的另一方法900的流程图。方法900包括,在操作910,执行第一次硬读取以获得存储在多个单元中的第一组值。
[0071]
方法900包括,在操作920,将第一组值存储在第一缓冲器中。
[0072]
方法900包括,在操作930,对多个单元执行多个后续硬读取以获得多个后续组的
值。
[0073]
方法900包括,在操作940,针对多个后续组的值中的每个后续组的值,执行操作942、944和946。
[0074]
针对每个后续组的值执行的操作包括操作942:计算质量度量。
[0075]
针对每个后续组的值执行的操作包括操作944:将后续组的值与存储在第一缓冲器中的一组值之间的差值存储在第二缓冲器中,该差值以压缩格式存储。
[0076]
针对每个后续组的值执行的操作包括操作946:响应于质量度量超过阈值,将后续组的值存储在第一缓冲器中。
[0077]
方法900包括,在操作950,基于第一缓冲器和第二缓冲器生成对数似然比。
[0078]
方法900包括,在操作960,基于对数似然比执行解码操作。
[0079]
在一些实施例中,质量度量(m)基于校验和(cs)与多个单元中值为1的单元的百分比(n)。
[0080]
在一些实施例中,质量度量被确定为
[0081]
m=a
×
cs+b
×
|n-1/2|
[0082]
本文中,a和b是非负实数,使得a+b=1。
[0083]
在一些实施例中,对数似然比的符号位基于存储在第一缓冲器中的一组值。
[0084]
在一些实施例中,其中压缩格式包括(i)后续组的值中的位的索引和(ii)位的值与第一缓冲器中的相应位的值不同的次数。
[0085]
在一些实施例中,生成对数似然比(llr)包括从llr查表(lut)读取对数似然比的操作。
[0086]
在一些实施例中,第一缓冲器的大小基于非易失性存储器中的页面的单元数量。
[0087]
本专利文件中描述的主题的实施方案和功能操作可以以包括本说明书中公开的结构及它们的等效结构或者它们中的一个或多个的组合的各种系统、数字电子电路实施,或者以计算机软件、固件或硬件实施。本说明书中描述的主题的实施方案可以被实施为一个或多个计算机程序产品,即,由数据处理设备运行或控制数据处理设备的操作的、在有形和非暂时性计算机可读介质上编码的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储装置、机器可读存储基底、存储器装置、影响机器可读传播信号的物质的组成或者它们中的一个或多个的组合。术语“数据处理单元”或“数据处理设备”涵盖用于处理数据的所有设备、装置和机器,例如,包括可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,设备还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
[0088]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译语言或解释语言)写入,并且可以以任何形式进行部署,包括被部署为适用于在计算环境中使用的独立程序,或者模块、组件、子例程或其它单元。计算机程序不必与文件系统中的文件相对应。程序可以存储在保存其它程序或数据的文件的一部分(例如,标记语言文档中存储的一个或多个脚本)、专用于所讨论的程序的单个文件或者多个协调文件(例如,存储一个或多个模块、子程序或代码的一部分的文件)中。计算机程序可以被部署为在一台计算机或者在位于一个站点或跨多站点分布并通过通信网络互连的多台计算机上
运行。
[0089]
本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成数据来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))执行,并且设备也可以被实施为专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))。
[0090]
适用于运行计算机程序的处理器包括,例如,通用微处理器和专用微处理器两者以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁、磁光盘或光盘),或者可操作地联接以从用于存储数据的一个或多个大容量存储装置(例如,磁、磁光盘或光盘)接收数据或向其传送数据。然而,计算机不必具有这种装置。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,作为示例,包括半导体存储器装置(例如,eprom、eeprom和闪速存储器装置)。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路。
[0091]
虽然本专利文件包含许多细节,但是这些细节不应被解释为对任何发明或可以要求保护的任何发明的范围的限制,而应被解释为对特定发明的特定实施例可以进行的特定的特征描述。本专利文件中单独的实施例的上下文中描述的某些特征也可以以单个实施例的组合来实施。相反,在单个实施例的上下文中描述的各种特征也可以单独地在多个实施例中实施,或者以任何适用的子组合来实施。此外,尽管以上可以将特征描述为以某些组合而起作用并且甚至最初如此要求保护,但是在一些情况下,可以从组合中排除所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。
[0092]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为为了实现理想的效果需要以所示的特定顺序或以连续的顺序执行这些操作,或者需要执行所有示出的操作。此外,本专利文件中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。
[0093]
本专利文件只描述了少量的实施方案和示例,并且可以基于本专利文件中描述和示出的内容进行其它实施方案、改进和变化。

技术特征:


1.一种改进非易失性存储器中的解码操作的方法,包括:执行第一次硬读取以获得存储在多个单元中的第一组值;将所述第一组值存储在第一缓冲器中;对所述多个单元执行多个后续硬读取以获得多个后续组的值;针对所述多个后续组的值中的每个后续组的值,执行以下操作:计算质量度量,将所述后续组的值与存储在所述第一缓冲器中的一组值之间的差值存储在第二缓冲器中,其中所述差值以压缩格式存储,并且响应于所述质量度量超过阈值,将所述后续组的值存储在所述第一缓冲器中;基于所述第一缓冲器和所述第二缓冲器生成对数似然比;并且基于所述对数似然比执行所述解码操作。2.根据权利要求1所述的方法,其中所述质量度量m基于校验和cs与所述多个单元中值为1的单元的百分比n。3.根据权利要求2所述的方法,其中所述质量度量被确定为m=a
×
cs+b
×
|n-1/2|其中a和b是非负实数,使得a+b=1。4.根据权利要求1所述的方法,其中所述对数似然比的符号位基于存储在所述第一缓冲器中的一组值。5.根据权利要求1所述的方法,其中所述压缩格式包括:所述后续组的值中的位的索引;以及位的值与所述第一缓冲器中的相应位的值不同的次数。6.根据权利要求1所述的方法,其中生成所述对数似然比llr包括:从llr查表lut读取所述对数似然比。7.根据权利要求1所述的方法,其中所述第一缓冲器的大小基于所述非易失性存储器中的页面的单元数量。8.一种改进非易失性存储器中的解码器的解码效率的系统,包括:处理器与存储器,所述存储器包括所述存储器上存储的指令,其中所述指令在被所述处理器运行时使所述处理器:执行第一次硬读取以获得存储在多个单元中的第一组值;将所述第一组值存储在第一缓冲器中;对所述多个单元执行多个后续硬读取以获得多个后续组的值;针对所述多个后续组的值中的每个后续组的值,执行以下操作:计算质量度量,将所述后续组的值与存储在所述第一缓冲器中的一组值之间的差值存储在第二缓冲器中,其中所述差值以压缩格式存储,并且响应于所述质量度量超过阈值,将所述后续组的值存储在所述第一缓冲器中;基于所述第一缓冲器和所述第二缓冲器生成对数似然比;并且基于所述对数似然比执行解码操作。9.根据权利要求8所述的系统,其中所述质量度量m基于校验和cs与所述多个单元中值为1的单元的百分比n。
10.根据权利要求9所述的系统,其中所述质量度量被确定为m=a
×
cs+b
×
|n-1/2|其中a和b是非负实数,使得a+b=1。11.根据权利要求8所述的系统,其中所述对数似然比的符号位基于存储在所述第一缓冲器中的一组值。12.根据权利要求8所述的系统,其中所述压缩格式包括:所述后续组的值中的位的索引;以及位的值与所述第一缓冲器中的相应位的值不同的次数。13.根据权利要求8所述的系统,其中作为生成所述llr的一部分,所述指令在被所述处理器运行时进一步使所述处理器:从llr查表lut读取所述对数似然比。14.根据权利要求8所述的系统,其中所述第一缓冲器的大小基于所述非易失性存储器中的页面的单元数量。15.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储改进非易失性存储器中的解码器的解码效率的指令,所述非暂时性计算机可读存储介质包括:执行第一次硬读取以获得存储在多个单元中的第一组值的指令;将所述第一组值存储在第一缓冲器中的指令;对所述多个单元执行多个后续硬读取以获得多个后续组的值的指令;针对所述多个后续组的值中的每个后续组的值执行以下操作的指令:计算质量度量,将所述后续组的值与存储在所述第一缓冲器中的一组值之间的差值存储在第二缓冲器中,其中所述差值以压缩格式存储,并且响应于所述质量度量超过阈值,将所述后续组的值存储在所述第一缓冲器中;基于所述第一缓冲器和所述第二缓冲器生成对数似然比的指令;以及基于所述对数似然比执行解码操作的指令。16.根据权利要求15所述的存储介质,其中所述质量度量m基于校验和cs与所述多个单元中值为1的单元的百分比n。17.根据权利要求16所述的存储介质,其中所述质量度量被确定为m=a
×
cs+b
×
|n-1/2|其中a和b是非负实数,使得a+b=1。18.根据权利要求15所述的存储介质,其中所述对数似然比的符号位基于存储在所述第一缓冲器中的一组值。19.根据权利要求15所述的存储介质,其中所述压缩格式包括:所述后续组的值中的位的索引;以及位的值与所述第一缓冲器中的相应位的值不同的次数。20.根据权利要求15所述的存储介质,其中所述第一缓冲器的大小基于所述非易失性存储器中的页面的单元数量。

技术总结


本发明描述了用于改进非易失性存储器中的解码操作的装置、系统和方法。示例性方法包括执行第一次硬读取以获得存储在多个单元中的第一组值,将第一组值存储在第一缓冲器中,对多个单元执行多个后续硬读取以获得多个后续组的值,针对每个后续组的值,执行以下操作:计算质量度量;将后续组的值与存储在第一缓冲器中的一组值之间的差值存储在第二缓冲器中,其中该差值以压缩格式存储;并且响应于质量度量超过阈值,将后续组的值存储在第一缓冲器中,并且基于第一缓冲器和第二缓冲器生成对数似然比。似然比。似然比。


技术研发人员:

张帆 哈曼

受保护的技术使用者:

爱思开海力士有限公司

技术研发日:

2021.12.22

技术公布日:

2022/12/12

本文发布于:2024-09-24 10:21:22,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/36950.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存储器   所述   多个   单元
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议