使用历史解码信息选择读取参考电压的制作方法

文档序号:33129503发布日期:2023-02-01 07:19阅读:69来源:国知局
使用历史解码信息选择读取参考电压的制作方法

1.本公开涉及从非易失性存储设备读取数据并对数据进行解码,尤其涉及使用从先前解码操作中收集的历史信息来选择读取参考电压。


背景技术:

2.现代计算系统的发展的部分原因是由固态硬盘(ssd)的出现驱动的,固态硬盘显示出比传统硬盘更高的速度和延迟性能。与依赖于磁性来存储数据的硬盘驱动器不同,固态硬盘使用非易失性存储器(例如,nand或nor)设备来实现数据存储。非易失性存储设备是通过先进的工艺和组装技术制造的一系列集成电路,以实现存储单元的多层级垂直堆叠,使其成为小尺寸的颗粒和封装,实现高容量的存储。
3.所有存储系统都存在数据损坏的问题。纠正数据损坏的一种技术是使用纠错码(ecc)或前向纠错码(fec)。多年来,人们开发了许多不同的编码方案,例如,汉明码、里德-所罗门码、turbo码、低密度奇偶校验(ldpc)码等。具有复杂ecc算法的控制器可能会使用大量资源,因此实现低误码率的技术仍然需要改进。


技术实现要素:

4.本公开提供了一种使非易失性存储系统通过基于历史解码信息选择合适的读取参考电压来实现低误码率的系统、方法和装置。在一个示例性实施例中,提供了一种方法,该方法可以包括:获取待读取的存储位置的唯一标识符,从存储器中取得与唯一标识符相关联的读取参考电压(v
ref
)调整量,使用采用v
ref
调整量调整过的读取参考电压对存储位置进行读取操作,在解码过程中对从存储位置读取的数据进行解码,并使用解码过程中生成的解码信息更新v
ref
调整量。
5.在另一个示例性实施例中,提供了一种存储系统控制器,该存储系统控制器可以包括逻辑数据地址(lda)到物理数据地址(pda)映射器,该映射器被配置为获取lda的pda;读取参考电压(v
ref
)搜索控制器,该搜索控制器被配置为从存储器中取得与pda相关联的v
ref
调整量;nand接口控制器,被配置为发出读取命令以读取由pda标识的存储位置;一个或多个ecc解码器,被配置为在解码过程中对由读取命令读取的数据进行解码;以及v
ref
更新控制器,被配置为使用解码过程中生成的解码信息更新v
ref
调整量。
6.在又一个示例性实施例中,本公开还可以包括具有可执行指令的非暂时性机器可读介质。可执行指令在由存储控制器执行时,可以使存储控制器:获取待读取的存储位置的唯一标识符,从存储器中取得与唯一标识符相关联的读取参考电压(v
ref
)调整量,使用采用v
ref
调整量调整过的读取参考电压对存储位置进行读取操作,在解码过程中对从存储位置读取的数据进行解码,并使用解码过程中生成的解码信息更新v
ref
调整量。
附图说明
7.图1示意性地示出了根据本公开的一个实施例中的非易失性存储系统。
8.图2a、2b和2c示意性地示出了根据本公开的一个实施例中的nand闪存单元阈值电压偏移的影响。
9.图3示意性地示出了根据本公开的一个实施例中的如何使用历史解码信息。
10.图4示意性地示出了根据本公开的一个实施例中的如何将读取参考电压的调整存储在存储器中。
11.图5是根据本公开的一个实施例中的读取数据的过程的流程图。
12.图6是根据本公开的一个实施例中的更新读取参考电压信息的过程的流程图。
具体实施方式
13.现在将参照附图详细描述根据本发明的具体实施例。为了保持一致性,各种附图中的相似元件由相似的参考数字表示。
14.本公开提供了用于读取存储在用纠错码(ecc)编码的非易失性存储器(nvm)存储设备中的数据的装置、系统和方法。图1示意性地示出了根据本公开的一个实施例中的非易失性存储系统100。非易失性存储系统100可以包括逻辑数据地址(lda)到物理数据地址(pda)映射器102、一个或多个ecc解码器104、存储器106、读取参考电压(v
ref
)搜索控制器108、nand接口控制器110、多个nand设备112以及v
ref
更新控制器114。多个nand设备112可以经由一个或多个信道耦合到nand接口控制器110。在一个实施例中,一个信道可以包括多个的nand设备。存储器106可以包括一个或多个存储器模块。
15.在一些实施例中,一个或多个ecc解码器104可以包括用于硬判决解码和软判决解码的解码器电路。例如,一个或多个ecc解码器104可以包括一个或多个硬判决解码器和一个或多个软判决解码器,或者一个或多个可以执行硬判决解码和软判决解码两者的解码器。用于硬判决解码的解码器电路可以是实现硬判决算法的任何合适的硬判决解码器,包括但不限于位值翻转算法或任何其他有待开发的硬判决技术。用于软判决解码的解码器电路可以是实现软判决算法的任何合适的软判决解码器,包括但不限于基于行业中已知的置信传播的任何常规软判决算法(例如,和积算法(“spa”)、最小和算法、随机解码算法或他们的变体)或任何其他有待开发的软判决算法。例如,在一个实施例中,一个或多个ecc解码器104可以包括最小和解码器,其可以在单位值硬判决(hd)模式和多位值信息软判决(sd)模式下操作。
16.解码器电路用于软判决解码的软信息可以是通过多次从nand设备读取相同数据而获得的常规软信息、从历史解码过程生成的软信息,或两者兼有之。例如,在一个实施例中,可以在每个解码过程之后生成和/或更新软信息并存储在存储器106中。如果在存储器106中找不到软信息,则可以从nand设备获得常规软信息,并将其转发到解码器电路,以便在一个或多个ecc解码器104处进行软判决解码。
17.在非易失性存储系统100的操作期间,可以从主机接收具有逻辑数据地址(lda)的读取命令。具有lda的读取命令可以转发给lda到pda映射器102,以获得映射到lda的pda。lda到pda映射器102可以是被配置为将lda映射到pda的电路模块。lda和pda中的数据地址可以取决于数据单元的颗粒度,例如,pda可以是指向nand设备112中的块(block)的物理存储位置的物理块地址(pba),或者指向nand设备112中的页(page)的物理存储位置的物理页地址(ppa)。一页可以是多个ecc码字的存储空间,pda可以是可以唯一地标识页位置的唯一
标识符。一块可以是用于多页的存储空间,pda可以是可以唯一地标识块位置的唯一标识符。
18.存储在nand设备112中的数据可以使用v
ref
从存储单元来读取。合适的nand v
ref
对于使用nand闪存的存储系统实现低误码率至关重要。在非易失性存储系统100中,可以将pda发送到v
ref
搜索控制器108,该控制器可以使用pda在存储器106搜索与pda相关联的v
ref
调整量。v
ref
调整量和具有pda的读取命令可以被发送到nand接口控制器110。
19.一个或多个ecc解码器104可以对从nand设备112获得的每个数据块进行解码。每当一个或多个ecc解码器104对从nand设备112的一个物理存储位置读取的数据进行解码时,可以在一个或多个ecc解码器104处生成解码信息。例如,在解码操作期间,一些位值可以被翻转,而一些位值不会被翻转。这可能是有用的解码信息。v
ref
更新控制器114可以从一个或多个ecc解码器104接收解码信息,并更新v
ref
调整量。更新的v
ref
调整量可以保存在存储器106中。用于存储v
ref
调整量的存储器106可以是静态随机存取存储器(sram)、双倍数据速率ram或mram,或者是任何可以具有比nand设备短得多的读取延迟的存储器。
20.在一个实施例中,非易失性存储系统100可以是固态硬盘(ssd)。此外,在一个实施例中,lda到pda映射电路模块102、一个或多个ecc解码器104、v
ref
搜索控制器108、nand接口控制器110和v
ref
更新控制器114可以是存储系统控制器的一部分并且集成在一个存储系统控制器芯片(例如,集成电路(ic)芯片)中,而存储器106和多个nand设备112可以耦合到存储系统控制器芯片。在另一个实施例中,存储器106还可以集成到存储系统控制器芯片中。
21.图2a、2b和2c示意性地示出了根据本公开的一个实施例,nand闪存单元的阈值电压偏移的影响以及从过去的解码过程生成的v
ref
调整量如何应用于后续的读取操作。图2a、2b和2c中的水平轴可以是nand设备中存储单元的阈值电压。图2a、2b和2c中的竖直轴可以是存储单元的阈值电压的概率分布函数。
22.图2a中的曲线202可以指示第一逻辑状态(例如,逻辑1)的读数。图2a中的曲线204可以指示第二逻辑状态(例如,逻辑0)的读数。本文使用的读数可以指任何给定单元的读出电压,并且可以通过将该读出电压与v
ref
进行比较来为任何给定位值分配逻辑状态。
23.如图2a所示,曲线202可以具有延伸超过参考电压v
ref
进入可以被视为处于第二逻辑状态的区域的尾部部分208,并且曲线204可以具有延伸超过参考电压v
ref
进入可以被认为处于第一逻辑状态的区域的尾部部分206。也就是说,对于读数位于尾部部分206中的位值的正确逻辑状态可以是第二逻辑状态,但是因为这些位值的阈值电压小于v
ref
,因此可以将其视为第一逻辑状态。同时,对于读数在尾部部分208中的位值的正确逻辑状态可以是第一逻辑状态,但是因为这些位值的阈值电压大于v
ref
,因此可以将其视为第二逻辑状态。
24.在一些实施例中,在解码过程期间,错误标记的位值可以被校正。也就是说,在解码过程中,读数在尾部部分206中的位值可能被错误地标记为逻辑状态1,可以被翻转为逻辑状态2,读数在尾部部分208中的位值可能被错误地标记为逻辑状态2,可以被翻转为逻辑状态1。当阈值电压没有偏移时,如图2a所示,尾部部分206和208的大小可以接近,从逻辑状态1到逻辑状态2的校正的数量可以和从逻辑状态2到逻辑状态1的校正的数量相接近。
25.在各种实施例中,单元的阈值电压可以偏移。例如,随着使用的增加(例如,p/e周期的增加),单元的阈值电压可能会趋于向右偏移。因此,如果v
ref
没有相应地偏移,尾部部分206和208的大小之间的差异可能变得更大。图2b示出了逻辑状态1的阈值电压可以向右
稍微偏移,因此图2a的曲线202成为图2b中的曲线202a。逻辑状态1的阈值电压的向右偏移可能会使图2a的尾部部分208成为图2b的尾部部分208a。由于曲线202a向右偏移,尾部部分208a可能大于尾部部分208,因此尾部部分208a可能大于图2b中的尾部部分206。也就是说,在图2b中,读出电压在尾部部分208a中的位数可能比尾部部分206的位数更多。
26.阈值电压的偏移的影响是两个逻辑状态之间可能存在不平衡的校正。在至少一个实施例中,可以对两个翻转数进行计数(例如,通过两个计数器)。一个翻转数可以记录一个数据块在一个解码过程中有多少位值从第一逻辑状态被翻转到第二逻辑状态(例如,“1”到“0”),这可以称为1到0的错误翻转计数,并表示为efc
1-》0
。另一个翻转数可以记录一个数据块在一个解码过程中有多少位值从第二逻辑状态被翻转到第一逻辑状态(例如,“0”到“1”),这可以称为0到1的错误翻转计数,并表示为efc
0-》1
。在图2b示例中,efc
0-》1
可以大于efc
1-》0
,因此v
ref
可能需要向右调整(例如,增加v
ref
值),以实现efc
0-》1
和efc
1-》0
的平衡。
27.应当注意,图2b示出了逻辑状态1的阈值电压偏移到较大的示例。图2c示出了逻辑状态1的阈值电压向左偏移(例如,变得更小)的另一示例,因此图2a中的曲线202成为图2c中的曲线202b。逻辑状态1的阈值电压的向左偏移可能会使图2a中的尾部部分208成为图2c中的尾部部分208b。由于曲线202b是向左偏移的,尾部部分208b可能小于尾部部分208,因此尾部部分208b可能小于图2c中的尾部部分206。也就是说,在图2c中,读出电压在尾部部分208b中的位数可能比读出电压在尾部部分206中的位数更少。因为在图2c中,efc
0-》1
可能小于efc
1-》0
,v
ref
可能需要向左调整(例如,减小v
ref
值),以实现efc
0-》1
和efc
1-》0
的平衡。
28.应当注意,图2b和图2c中的阈值电压偏移仅为举例说明。在一些其它的实施例中,逻辑状态2的阈值电压也可以向左或向右偏移。此外,曲线202和204的形状可以在偏移时改变,例如,曲线202和/或204可以变得更低、更宽或两者兼而有之。在这些情况下,调整v
ref
以获得efc
0-》1
和efc
1-》0
的平衡对于实现存储系统的低误码率仍然至关重要。
29.返回参考图1,在解码过程结束时,可以获得两个错误翻转计数efc
0-》1
和efc
1-》0
,例如,作为一个或多个解码器104生成的解码信息的一部分,并将其转发给v
ref
更新控制器114。这两个计数(例如,efc
0-》1
和efc
1-》0
)之间的差值可以提供有关nand设备的额外信息,并可用于调整v
ref
以供将来读取相同的存储位置并实现非易失性存储系统100的低误码率。例如,0到1的错误翻转计数减去1到0的错误翻转计数(例如,efc0→
1-efc1→0)可以作为两个错误计数之间的差值。
30.应当注意,还有许多其他方法来表示两个错误翻转计数之间的差值(例如,这两个错误翻转计数可以将它们的位置切换为efc1→
0-efc0→1,或者将两个错误翻转计数平方以进行比较)。增加还是减少v
ref
的结果可能相同,因为v
ref
调整量可能取决于哪个错误翻转计数更大,以及这两个错误翻转计数的不平衡程度。
31.在一些实施例中,v
ref
更新控制器114可以基于历史解码信息生成v
ref
调整量,并将该调整量作为v
ref
信息的一部分存储到存储器106中。例如,为了避免在来自同一存储位置的数据块的每个解码过程之后的v
ref
值波动,可以使用从同一存储位置读取的数据的多个最近解码过程的efc
0-》1
和efc
1-》0
之间的差值的平均值来调整v
ref
,efc
0-》1
和efc
1-》0
之间的差值的平均值表示为用于计算的最近解码过程的数量可以表示为t
avg
。在一些实施例中,可以设置最近解码过程的数量的最大值,其可以
表示为t
avg_max

32.在解码过程结束时,v
ref
更新控制器114可以通过基于由刚刚结束的解码过程生成的解码信息来计算efc0→
1-efc1→0的新值(new value of(efc
0->1

efc
1->0
))。此外,v
ref
更新控制器114可以使用被解码的数据的存储位置的唯一标识符来搜索存储器106,以获得存储的(stored和用于计算存储的的t
avg
。如果t
avg
小于t
avg_max
,新的可以通过公式计算,其中,“*”为乘法运算符,t
avg
可以更新为t
avg
=t
avg
+1。如果t
avg
等于t
avg_max
,新的可以通过公式计算,其中,“*”为乘法运算符,t
avg
可以保持为t
avg
=t
avg

33.在一些实施例中,可以使用t
avg
的阈值(表示为t
avg_thr
)和的绝对值的阈值(表示为efc_diff
thr
)来确定是否需要调整v
ref
。一个示例性调整规则可以如下所示。如果t
avg
大于t
avg_thr
,且平均差值的绝对值(例如,)大于efc_diff
thr
,如果efc0→
1-efc1→0结果为正,v
ref
可以向右偏移(例如,增加),如果efc0→
1-efc1→0结果为负,则v
ref
可以向左偏移(例如,减少)。此外,每次当v
ref
被调整时(例如,v
ref
调整量的值会改变),和t
avg
可以重置为0。可以分步实施调整,例如,每次增加或减少一个或多个增量delta(δ)值。delta值可以通过实验确定,并且对于不同类型或品牌的nand设备其delta值可以是不同的。
[0034]vref
更新控制器114可以在每个解码过程之后基于更新的和t
avg
设置或更新v
ref
调整量,并将新值(例如,v
ref
调整量,和t
avg
)作为v
ref
信息用与存储位置相关联的唯一标识符保存到存储器106中。
[0035]
在一些实施例中,除了基于历史解码过程更新v
ref
调整量之外,非易失性存储系统100的控制器可以执行固件,该固件通过搜索v
ref
来找到具有较低误码率的方法来实现寻找v
ref
调整量的一个或多个算法。此外,nand设备112还可以实现查找更佳的v
ref
的算法。当一个或多个解码器104成功地解码数据时,它不知道用于读取nand设备112的数据的v
ref
调整量是来自存储器106还是由控制器或nand设备112所找到。因此,在这些实施例中,从一个或多个解码器104发送到v
ref
更新控制器114的解码信息可以包括对读取数据的v
ref
调整量。v
ref
更新控制器114可以将从一个或多个解码器104接收到的v
ref
调整量与存储在存储器106中v
ref
调整量进行比较。如果从一个或多个解码器104接收到的v
ref
调整量与存储在存储器106中的v
ref
调整量不同,v
ref
更新控制器114可以利用从一个或多个解码器104接收到的v
ref
调整量来更新保存在存储器106中的v
ref
调整量。因为这可能是新的v
ref
调整量,和t
avg
可以重置为0。然而,如果从一个或多个解码器104接收到的v
ref
调整量与存储在存储器106中的v
ref
调整量相同,则v
ref
更新控制器114可以更新
和t
avg
,并相应地更新存储在存储器106中的v
ref
调整量。
[0036]
图3示意性地示出了根据本公开的一个实施例中的如何使用历史解码信息。在图3中,可以在滑动窗口302内标记用于计算的最近解码过程的数量。在图3所示的示例中,t
avg_max
可以设置为4,在其他实施例中,t
avg_max
可以设置为另一个正数。在时间tl处,滑动窗口302.1可以包含一个用于对从存储位置读取的数据块进行解码的解码过程(例如,t
avg
=1),从该解码过程获得的efc
0-》1
和efc
1-》0
之间的差值可以被视为时间t1处的差值的平均值(例如,)。在时间t2处,除了时间t1处的解码过程之外,滑动窗口302.2可以包含另一个用于对从同一存储位置读取的另一个数据块进行解码的解码过程(例如,t
avg
=2),并且从第二解码过程获得的efc
0-》1
和efc
1-》0
之间的差值可以用作新值(new value)以更新差值的平均值,并生成时间t2处更新的差值的平均值(例如,其中“/”是除法运算符)。
[0037]
在时间t3处,除了在时间t2处的解码过程之外,滑动窗口302.3还可以包含另一个用于对从同一存储位置读取的另一个数据块进行解码的解码过程(例如,t
avg
=3),并且从第三解码过程获得的efc
0-》1
和efc
1-》0
之间的差值可以用作新值,以更新差值的平均值,并生成时间t3处更新的差值的平均值(例如,其中“*”是乘法运算符)。在时间t4,滑动窗口302.4可以达到具有4个解码过程(例如,t
avg
=4)的最近解码过程数量的最大值,efc
0-》1
和efc
1-》0
之间的差值的平均值可以更新为之间的差值的平均值可以更新为
[0038]
随后在时间t5,滑动窗口302.5可以保持四个最近的解码过程(例如,去除时间t1的解码过程),从最近的解码过程获得的efc
0-》1
和efc
1-》0
之间的差值可以用作新值,以更新差值的平均值,并生成此时更新的差值的平均值为
[0039]
图4示意性地示出了根据本公开的一个实施例中的如何将读取参考电压调整量存储在存储器106中。nand设备112可以包括nand设备112.1到112.n,其中n是正整数。数据块的每个存储位置可以与存储位置的唯一标识符(例如,pda)相关联,并且唯一标识符可以用作存储在存储器106中的v
ref
调整量的索引。例如,nand设备112.1可以具有存储在位置404.1的数据块,nand设备112.2可以具有存储在位置404.2的数据块和存储在位置404.3的另一数据块,nand设备112.n可以具有存储在位置404.m处的数据块,其中m大于3。
[0040]
对于每个存储位置,可以保存v
ref
调整量、基于历史解码过程的efc
0-》1
和efc
1-》0
之间差值的平均值(例如,),以及用于计算差值的平均值的t
avg
数。这三条信息也可以统称为v
ref
调整信息。在一个实施例中,v
ref
调整信息可以保存在称为v
ref
调整表的表中。在图4中,v
ref
调整量可以表示为δv
ref
。在存储器106中,存储在位置404.1处的数据的v
ref
调整信息可以存储在408.1处并且与位置404.1的唯一标识符相关联。存储在位置404.2处的数据的v
ref
调整信息可以在存储408.2处并且与另一个索引值相关联,该另一个索引值可以是位置404.2的唯一标识符。存储在位置404.3处的数据的v
ref
调整信息可以在存储408.3处并且与其自己的索引值相关联,该索引值可以是位置404.3的唯一标识符。类
似地,存储在位置404.m处的数据的v
ref
调整信息可以在存储408.m处并且与其自己的索引值相关联,该索引值可以是位置404.m的唯一标识符。
[0041]
在一些实施例中,由于大小限制,存储器106可能无法存储nand设备112的所有存储位置的v
ref
调整信息。也就是说,如果需要保存很多存储位置的v
ref
调整信息,则所需存储器的大小可能超过存储器106的大小。在一些实施例中,可以使用缓存方法。例如,可以将nand存储位置的子集(例如,j个位置)的v
ref
调整信息保存在存储器106中,而不是保存所有nand存储位置的v
ref
调整信息。其余部分可以存储在非易失性存储设备(例如,nand设备112之一)中,并在需要时加载到存储器106中。选择j个存储位置的方法多种多样。可以使用任何现有的或有待开发的缓存算法。例如,这些j个存储位置可以是最近读取的存储位置或最近有错误的存储位置。在一个实施例中,只有存储位置的子集的v
ref
信息被加载到存储器106中,存储器106还可以存储这些存储位置的唯一标识符。
[0042]
图5是根据一个实施例的使用基于历史解码信息的v
ref
调整量来读取数据块的过程500的流程图。在框502中,可以获取待读取的存储位置的唯一标识符。例如,主机可以发出具有逻辑数据地址的读取命令,并且可以获得逻辑数据地址映射到的物理数据地址。pda可以是可从其中读取数据的存储位置的唯一标识符。在框504中,可以从存储器取得与唯一标识符相关联的读取参考电压调整量。在一个实施例中,例如,v
ref
调整量可以利用先前从存储位置读取的数据的一个或多个先前解码过程中产生的错误翻转计数来生成并存储在存储器(例如,存储器106)中。v
ref
搜索控制器108可以使用pda在存储器106中搜索与pda关联的v
ref
调整量并获取它。
[0043]
在框506中,可以使用采用v
ref
调整量调整过的读取参考电压对存储位置进行读取操作。例如,在一个实施例中,nand接口控制器可以接收v
ref
调整量和pda,并且在pda标识的存储位置处,使用采用v
ref
调整量调整过的读取参考电压向非易失性存储设备发出读取命令以执行读取操作。
[0044]
在框508中,可以对从存储位置读取的数据进行解码。在一个实施例中,一个或多个ecc解码器104可以包括至少一个解码器,用于对从存储位置读取的数据进行解码。在框510中,可以使用在解码期间生成的解码信息更新v
ref
调整量。在一个实施例中,可以将一个解码过程中0到1的错误翻转计数和1到0的错误翻转计数发送到v
ref
更新控制器114,该v
ref
更新控制器114可以更新两个计数之间的差值的平均值并基于两个计数之间的差值的平均值更新v
ref
调整量。
[0045]
图6是根据一个实施例的基于历史解码信息更新v
ref
调整量的过程600的流程图。在框602中,可以接收包含读取参考电压(v
ref
)的第一调整量和错误翻转计数的解码信息。例如,v
ref
更新控制器114可以接收一个或多个解码器104对从唯一标识符标识的存储位置读取的数据进行解码过程中所产生的解码信息。解码信息可以包含v
ref
调整量和efc
0-》1
与efc
1-》0
。v
ref
调整量可以是已用于读取解码过程中数据码字的v
ref
调整。
[0046]
在框604中,可以确定v
ref
的第一调整量与从存储器获得的v
ref
的第二调整量相同。在一些实施例中,存储器106可以存储先前生成的与唯一标识符相关联的v
ref
调整量。如果用于读取数据的v
ref
调整量不同于先前生成的v
ref
调整量,用于读取数据的v
ref
调整量可以是其他地方生成(例如,通过执行固件的控制器或nand设备本身)。尽管v
ref
更新控制器114可以使用用于读取数据的v
ref
调整量来更新存储器106,并重置和t
avg
为0,但这不是过程600的一部分。对于过程600,v
ref
更新控制器114可以确定用于读取数据的v
ref
调整量与存储在存储器106中的v
ref
调整量相同。
[0047]
在框606中,可以计算的新值。例如,可以用来自最近的解码过程的efc
0-》1
和efc
1-》0
之间的差值来生成更新的差值的平均值,t
avg
也可以更新。在框608中,可以确定是否达到阈值。例如,t
avg
可以与t
avg_thr
进行比较,的绝对值可以与efc_diff
thr
进行比较,如果未达到阈值中的任何一个,则过程600可以继续进行到框610。在框610中,可以更新和t
avg
的值。例如,可以利用的值和t
avg
对与唯一标识符相关联的存储器记录进行更新。如果两个阈值都达到,则过程600可以继续进行到框612,其中可以生成更新的v
ref
调整量,并且和t
avg
可以重置为0。在框612中生成或设置的值也可以存储在存储器106中以供将来使用。
[0048]
本文所公开的过程的实施例(包括过程500和600的全部或部分)可以使用软件(例如,可由计算机处理器(例如,中央处理单元(cpu)、图形处理单元(gpu)或两者)执行)、硬件(例如,现场可编程门阵列(fpga)或专用ic(asic)、固件或三者的任何合适组合来实现。
[0049]
在一个示例性实施例中,提供了一种方法,该方法可以包括:获取待读取的存储位置的唯一标识符,从存储器中取得与唯一标识符相关联的读取参考电压(v
ref
)调整量,使用采用v
ref
调整量调整过的读取参考电压对存储位置进行读取操作,在解码过程中对从存储位置读取的数据进行解码,并使用解码过程中生成的解码信息更新v
ref
调整量。
[0050]
在一个实施例中,所述解码信息可以包括与存储在所述存储器中的v
ref
调整量不同的另一v
ref
调整量,并且更新v
ref
调整量可以包括使用所述另一v
ref
调整量来替代存储在所述存储器中的v
ref
调整量。
[0051]
在一个实施例中,所述解码信息可以包括另一v
ref
调整量、从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且更新所述v
ref
调整量可以包括:确定包括在所述解码信息中的另一v
ref
调整量与存储在存储器中的v
ref
调整量相同;计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的;确定所述efc
0-》1
和efc
1-》0
之间的差值的平均值与用来计算所述平均值的最近解码过程的数量均达到阈值;生成新的v
ref
调整量并将所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及用来计算所述平均值的最近解码过程的数量重置为0;并且存储所述新的v
ref
调整量、重置为0所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及重置为0用来计算所述平均值的最近解码过程的数量到所述存储器。
[0052]
在一个实施例中,所述解码信息可以包括另一v
ref
调整量、从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且更新所述v
ref
调整量包括:确定包括在所述解码信息中的另一v
ref
调整量与存储在存储器中的v
ref
的调整相同;计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的;确定efc
0-》1
和efc
1-》0
之间的差值平均值的新值和用来计算平均值的最近解码进程数量中的至少一个未达到其各自的阈值;并且用所述efc
0-》1
和efc
1-》0
之间的差值的平均值的新值以及用来计算所述平均值的最近解码过程的数量来更新存储器里的记录。
[0053]
在一个实施例中,所述解码信息可以包括从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且更新v
ref
调整量可以包括:计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的,确定efc
0-》1
和efc
1-》0
之间的差值平均值以及用来计算均值的最近的解码过程的数量是否达到阈值,如果两个都达到阈值,则则生成新的v
ref
调整量并将所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及用来计算所述平均值的最近解码过程的数量重置为0,如果未达到任一阈值,则使用所述efc
0-》1
和efc
1-》0
之间的差值的平均值的新值以及用来计算所述平均值的最近解码过程的数量来更新存储器里的记录。
[0054]
在一个实施例中,所述解码信息还可以进一步包括另一v
ref
调整量,并且更新v
ref
调整量还可以进一步包括确定对包含在解码信息中的另一v
ref
调整量与存储在存储器中v
ref
调整量相同。
[0055]
在一个实施例中,所述存储器可以使用存储位置的唯一标识符作为索引来存储所述v
ref
调整量。
[0056]
在一个实施例中,所述存储位置的唯一标识符可以是物理数据地址(pda)。
[0057]
在一个实施例中,该方法还可以包括使用缓存算法缓存所述v
ref
调整量。
[0058]
在另一个示例性实施例中,提供了一种存储系统控制器,该存储系统控制器可以包括逻辑数据地址(lda)到物理数据地址(pda)映射器,该映射器被配置为获得lda的pda;读取参考电压(v
ref
)搜索控制器,该搜索控制器被配置为从存储器中取得与pda相关联的v
ref
调整量;nand接口控制器,被配置为发出读取命令以读取由pda标识的存储位置;一个或多个ecc解码器,被配置为在解码过程中对由读取命令读取的数据进行解码;以及v
ref
更新控制器,被配置为使用解码过程中生成的解码信息更新所述v
ref
调整量。
[0059]
在一个实施例中,所述解码信息可以包括不同于存储在所述存储器中的v
ref
调整量的另一v
ref
调整量,并且更新v
ref
调整量可以包括使用所述另一v
ref
调整量来替代存储在所述存储器中的v
ref
调整量。
[0060]
在一个实施例中,所述解码信息可以包括另一v
ref
调整量、从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且更新所述v
ref
调整量可以包括:确定包括在解码信息中的另一v
ref
调整量与存储在所述存储器中的v
ref
调整量相同;计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的;确定所述efc
0-》1
和efc
1-》0
之间的差值的平均值与用来计算所述平均值的最近解码过程的数量均达到阈值;生成对v
ref
的新调整并将efc
0-》1
和efc
1-》0
之间的差值平均值以及计算平均值的最近解码进程数重置为0;存储所述新的v
ref
调整量、重置为0的所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及重置为0的用来计算所述平均值的最近解码过程的数量到所述存储器。
[0061]
在一个实施例中,所述解码信息可以包括另一v
ref
调整量、从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且其中更新所述v
ref
调整量可以包括:确定包括在所述解码信息中的另一v
ref
调整量与存储在所述存储器中的v
ref
调整量相同;计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的;确定efc
0-》1
和efc
1-》0
之间的差值平均值的新值和用来计算平均值的最近解码过程的数量有至少一个未达到其各自的阈值;并使用efc
0-》1
和efc
1-》0
之间的差值平均值
的新值以及用来计算平均值的最近解码过程的数量来更新存储器里的记录。
[0062]
在一个实施例中,所述解码信息可以包括从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且更新vref调整量可以包括:计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的,确定efc
0-》1
和efc
1-》0
之间的差值的平均值以及用来计算所述平均值的最近的解码过程的数量是否达到阈值,如果两个都达到阈值,则生成新的v
ref
调整量并将所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及用来计算所述平均值的最近解码过程的数量重置为0,如果其中任一阈值没有达到,则使用所述efc
0-》1
和efc
1-》0
之间的差值的平均值的新值以及于用来计算所述平均值的最近解码过程的数量来更新存储器里的记录。
[0063]
在一个实施例中,所述解码信息还可以进一步包括另一v
ref
调整量,并且更新所述v
ref
调整量还可以进一步包括确定包含在所述解码信息中的另一v
ref
调整量与存储在所述存储器中v
ref
调整量相同。
[0064]
在又一个示例性实施例中,本公开还可以包括具有可执行指令的非暂时性机器可读介质。可执行指令在由存储控制器执行时,可以使存储控制器:获取待读取的存储位置的唯一标识符,从存储器中取得与唯一标识符相关联的读取参考电压(v
ref
)调整量,使用采用v
ref
调整量调整过的读取参考电压对存储位置进行读取操作,在解码过程中对从存储位置读取的数据进行解码,并使用解码过程中生成的解码信息更新所述v
ref
调整量。
[0065]
在一个实施例中,所述解码信息可以包括不同于存储在所述存储器中的v
ref
调整量的另一v
ref
调整量,并且更新所述v
ref
调整量可以包括使用所述另一v
ref
调整量来替代存储在所述存储器中的v
ref
调整量。
[0066]
在一个实施例中,所述解码信息可以包括另一v
ref
调整量、从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且更新所述v
ref
调整量可以包括:确定包括在所述解码信息中的另一v
ref
调整量与存储在所述存储器中的v
ref
调整量相同;计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的;确定所述efc
0-》1
和efc
1-》0
之间的差值的平均值与用来计算所述平均值的最近解码过程的数量均达到阈值;生成新的v
ref
调整量并将所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及用来计算所述平均值的最近解码过程的数量重置为0;存储所述新的v
ref
调整量、重置为0的所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及重置为0的用来计算所述平均值的最近解码过程的数量到所述存储器。
[0067]
在一个实施例中,所述解码信息可以包括另一v
ref
调整量、从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且更新所述v
ref
调整量可以包括:确定包括在所述解码信息中的另一v
ref
调整量与存储在所述存储器中的v
ref
调整量相同;计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的;确定efc
0-》1
和efc
1-》0
之间的差值平均值的新值和用于计算平均值的最近解码过程的数量有至少一个未达到其各自的阈值;并使用所述efc
0-》1
和efc
1-》0
之间的差值平均值的新值以及用于计算平均值的最近解码过程的数量来更新存储器里的记录。
[0068]
在一个实施例中,所述解码信息可以包括从0到1的错误翻转计数(efc
0-》1
)和从1到0的错误翻转计数(efc
1-》0
),并且其中更新v
ref
调整量可以包括:计算efc
0-》1
和efc
1-》0
之间的差值平均值的新值,该平均值是基于多个最近的解码过程产生的解码信息计算的,确定
所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及用来计算所述平均值的最近的解码过程的数量是否达到阈值,如果两个都达到阈值,则生成新的v
ref
调整量并将所述efc
0-》1
和efc
1-》0
之间的差值的平均值以及用来计算所述平均值的最近解码过程的数量重置为0,如果未达到任一阈值,则使用所述efc
0-》1
和efc
1-》0
之间的差值的平均值的新值以及用来计算所述平均值的最近解码过程的数量来更新存储器里的记录。
[0069]
例如,在一个实施例中,所公开的方法和操作中的一些或全部可以用存储在一个或多个计算机可读存储介质上的计算机可执行指令的软件中实现。一个或多个计算机可读存储介质可以包括非暂时性计算机可读介质(例如,可移动或不可移动磁盘、磁带或盒式磁带、固态驱动器(ssd)、混合硬盘驱动器、cd-rom、cd-rw、dvd、或任何其他有形存储介质)、易失性存储器组件(例如,dram或sram)或非易失性存储器组件(例如,硬盘驱动器)。计算机可执行指令可以由计算机处理器(例如,cpu、gpu或两者)在计算机(例如,任何可商购的计算机,包括智能手机或包括计算硬件的其他移动设备)上执行。用于实现所公开的技术的任何计算机可执行指令以及在实现所公开的实例期间创建和使用的任何数据可以存储在一个或多个计算机可读介质(例如,非暂时性计算机可读介质)上。
[0070]
虽然本文已经公开了各种方面和实施例,但是对于本领域技术人员来说,其他方面和实施例是显而易见的。本文所公开的各个方面和实施例是出于说明的目的,并且不旨在限制,其真实范围和精神由所附权利要求所指示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1