使用历史解码信息选择读取参考电压
文献发布时间:2023-06-19 18:27:32
技术领域
本公开涉及从非易失性存储设备读取数据并对数据进行解码,尤其涉及使用从先前解码操作中收集的历史信息来选择读取参考电压。
背景技术
现代计算系统的发展的部分原因是由固态硬盘(SSD)的出现驱动的,固态硬盘显示出比传统硬盘更高的速度和延迟性能。与依赖于磁性来存储数据的硬盘驱动器不同,固态硬盘使用非易失性存储器(例如,NAND或NOR)设备来实现数据存储。非易失性存储设备是通过先进的工艺和组装技术制造的一系列集成电路,以实现存储单元的多层级垂直堆叠,使其成为小尺寸的颗粒和封装,实现高容量的存储。
所有存储系统都存在数据损坏的问题。纠正数据损坏的一种技术是使用纠错码(ECC)或前向纠错码(FEC)。多年来,人们开发了许多不同的编码方案,例如,汉明码、里德-所罗门码、Turbo码、低密度奇偶校验(LDPC)码等。具有复杂ECC算法的控制器可能会使用大量资源,因此实现低误码率的技术仍然需要改进。
发明内容
本公开提供了一种使非易失性存储系统通过基于历史解码信息选择合适的读取参考电压来实现低误码率的系统、方法和装置。在一个示例性实施例中,提供了一种方法,该方法可以包括:获取待读取的存储位置的唯一标识符,从存储器中取得与唯一标识符相关联的读取参考电压(V
在另一个示例性实施例中,提供了一种存储系统控制器,该存储系统控制器可以包括逻辑数据地址(LDA)到物理数据地址(PDA)映射器,该映射器被配置为获取LDA的PDA;读取参考电压(V
在又一个示例性实施例中,本公开还可以包括具有可执行指令的非暂时性机器可读介质。可执行指令在由存储控制器执行时,可以使存储控制器:获取待读取的存储位置的唯一标识符,从存储器中取得与唯一标识符相关联的读取参考电压(V
附图说明
图1示意性地示出了根据本公开的一个实施例中的非易失性存储系统。
图2A、2B和2C示意性地示出了根据本公开的一个实施例中的NAND闪存单元阈值电压偏移的影响。
图3示意性地示出了根据本公开的一个实施例中的如何使用历史解码信息。
图4示意性地示出了根据本公开的一个实施例中的如何将读取参考电压的调整存储在存储器中。
图5是根据本公开的一个实施例中的读取数据的过程的流程图。
图6是根据本公开的一个实施例中的更新读取参考电压信息的过程的流程图。
具体实施方式
现在将参照附图详细描述根据本发明的具体实施例。为了保持一致性,各种附图中的相似元件由相似的参考数字表示。
本公开提供了用于读取存储在用纠错码(ECC)编码的非易失性存储器(NVM)存储设备中的数据的装置、系统和方法。图1示意性地示出了根据本公开的一个实施例中的非易失性存储系统100。非易失性存储系统100可以包括逻辑数据地址(LDA)到物理数据地址(PDA)映射器102、一个或多个ECC解码器104、存储器106、读取参考电压(V
在一些实施例中,一个或多个ECC解码器104可以包括用于硬判决解码和软判决解码的解码器电路。例如,一个或多个ECC解码器104可以包括一个或多个硬判决解码器和一个或多个软判决解码器,或者一个或多个可以执行硬判决解码和软判决解码两者的解码器。用于硬判决解码的解码器电路可以是实现硬判决算法的任何合适的硬判决解码器,包括但不限于位值翻转算法或任何其他有待开发的硬判决技术。用于软判决解码的解码器电路可以是实现软判决算法的任何合适的软判决解码器,包括但不限于基于行业中已知的置信传播的任何常规软判决算法(例如,和积算法(“SPA”)、最小和算法、随机解码算法或他们的变体)或任何其他有待开发的软判决算法。例如,在一个实施例中,一个或多个ECC解码器104可以包括最小和解码器,其可以在单位值硬判决(HD)模式和多位值信息软判决(SD)模式下操作。
解码器电路用于软判决解码的软信息可以是通过多次从NAND设备读取相同数据而获得的常规软信息、从历史解码过程生成的软信息,或两者兼有之。例如,在一个实施例中,可以在每个解码过程之后生成和/或更新软信息并存储在存储器106中。如果在存储器106中找不到软信息,则可以从NAND设备获得常规软信息,并将其转发到解码器电路,以便在一个或多个ECC解码器104处进行软判决解码。
在非易失性存储系统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可以是可以唯一地标识块位置的唯一标识符。
存储在NAND设备112中的数据可以使用V
一个或多个ECC解码器104可以对从NAND设备112获得的每个数据块进行解码。每当一个或多个ECC解码器104对从NAND设备112的一个物理存储位置读取的数据进行解码时,可以在一个或多个ECC解码器104处生成解码信息。例如,在解码操作期间,一些位值可以被翻转,而一些位值不会被翻转。这可能是有用的解码信息。V
在一个实施例中,非易失性存储系统100可以是固态硬盘(SSD)。此外,在一个实施例中,LDA到PDA映射电路模块102、一个或多个ECC解码器104、V
图2A、2B和2C示意性地示出了根据本公开的一个实施例,NAND闪存单元的阈值电压偏移的影响以及从过去的解码过程生成的V
图2A中的曲线202可以指示第一逻辑状态(例如,逻辑1)的读数。图2A中的曲线204可以指示第二逻辑状态(例如,逻辑0)的读数。本文使用的读数可以指任何给定单元的读出电压,并且可以通过将该读出电压与V
如图2A所示,曲线202可以具有延伸超过参考电压V
在一些实施例中,在解码过程期间,错误标记的位值可以被校正。也就是说,在解码过程中,读数在尾部部分206中的位值可能被错误地标记为逻辑状态1,可以被翻转为逻辑状态2,读数在尾部部分208中的位值可能被错误地标记为逻辑状态2,可以被翻转为逻辑状态1。当阈值电压没有偏移时,如图2A所示,尾部部分206和208的大小可以接近,从逻辑状态1到逻辑状态2的校正的数量可以和从逻辑状态2到逻辑状态1的校正的数量相接近。
在各种实施例中,单元的阈值电压可以偏移。例如,随着使用的增加(例如,P/E周期的增加),单元的阈值电压可能会趋于向右偏移。因此,如果V
阈值电压的偏移的影响是两个逻辑状态之间可能存在不平衡的校正。在至少一个实施例中,可以对两个翻转数进行计数(例如,通过两个计数器)。一个翻转数可以记录一个数据块在一个解码过程中有多少位值从第一逻辑状态被翻转到第二逻辑状态(例如,“1”到“0”),这可以称为1到0的错误翻转计数,并表示为EFC
应当注意,图2B示出了逻辑状态1的阈值电压偏移到较大的示例。图2C示出了逻辑状态1的阈值电压向左偏移(例如,变得更小)的另一示例,因此图2A中的曲线202成为图2C中的曲线202B。逻辑状态1的阈值电压的向左偏移可能会使图2A中的尾部部分208成为图2C中的尾部部分208B。由于曲线202B是向左偏移的,尾部部分208B可能小于尾部部分208,因此尾部部分208B可能小于图2C中的尾部部分206。也就是说,在图2C中,读出电压在尾部部分208B中的位数可能比读出电压在尾部部分206中的位数更少。因为在图2C中,EFC
应当注意,图2B和图2C中的阈值电压偏移仅为举例说明。在一些其它的实施例中,逻辑状态2的阈值电压也可以向左或向右偏移。此外,曲线202和204的形状可以在偏移时改变,例如,曲线202和/或204可以变得更低、更宽或两者兼而有之。在这些情况下,调整V
返回参考图1,在解码过程结束时,可以获得两个错误翻转计数EFC
应当注意,还有许多其他方法来表示两个错误翻转计数之间的差值(例如,这两个错误翻转计数可以将它们的位置切换为EFC
在一些实施例中,V
在解码过程结束时,V
在一些实施例中,可以使用T
V
在一些实施例中,除了基于历史解码过程更新V
图3示意性地示出了根据本公开的一个实施例中的如何使用历史解码信息。在图3中,可以在滑动窗口302内标记用于计算
在时间t3处,除了在时间t2处的解码过程之外,滑动窗口302.3还可以包含另一个用于对从同一存储位置读取的另一个数据块进行解码的解码过程(例如,T
随后在时间t5,滑动窗口302.5可以保持四个最近的解码过程(例如,去除时间t1的解码过程),从最近的解码过程获得的EFC
图4示意性地示出了根据本公开的一个实施例中的如何将读取参考电压调整量存储在存储器106中。NAND设备112可以包括NAND设备112.1到112.N,其中N是正整数。数据块的每个存储位置可以与存储位置的唯一标识符(例如,PDA)相关联,并且唯一标识符可以用作存储在存储器106中的V
对于每个存储位置,可以保存V
在一些实施例中,由于大小限制,存储器106可能无法存储NAND设备112的所有存储位置的V
图5是根据一个实施例的使用基于历史解码信息的V
在框506中,可以使用采用V
在框508中,可以对从存储位置读取的数据进行解码。在一个实施例中,一个或多个ECC解码器104可以包括至少一个解码器,用于对从存储位置读取的数据进行解码。在框510中,可以使用在解码期间生成的解码信息更新V
图6是根据一个实施例的基于历史解码信息更新V
在框604中,可以确定V
在框606中,可以计算
本文所公开的过程的实施例(包括过程500和600的全部或部分)可以使用软件(例如,可由计算机处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)执行)、硬件(例如,现场可编程门阵列(FPGA)或专用IC(ASIC)、固件或三者的任何合适组合来实现。
在一个示例性实施例中,提供了一种方法,该方法可以包括:获取待读取的存储位置的唯一标识符,从存储器中取得与唯一标识符相关联的读取参考电压(V
在一个实施例中,所述解码信息可以包括与存储在所述存储器中的V
在一个实施例中,所述解码信息可以包括另一V
在一个实施例中,所述解码信息可以包括另一V
在一个实施例中,所述解码信息可以包括从0到1的错误翻转计数(EFC
在一个实施例中,所述解码信息还可以进一步包括另一V
在一个实施例中,所述存储器可以使用存储位置的唯一标识符作为索引来存储所述V
在一个实施例中,所述存储位置的唯一标识符可以是物理数据地址(PDA)。
在一个实施例中,该方法还可以包括使用缓存算法缓存所述V
在另一个示例性实施例中,提供了一种存储系统控制器,该存储系统控制器可以包括逻辑数据地址(LDA)到物理数据地址(PDA)映射器,该映射器被配置为获得LDA的PDA;读取参考电压(V
在一个实施例中,所述解码信息可以包括不同于存储在所述存储器中的V
在一个实施例中,所述解码信息可以包括另一V
在一个实施例中,所述解码信息可以包括另一V
在一个实施例中,所述解码信息可以包括从0到1的错误翻转计数(EFC
在一个实施例中,所述解码信息还可以进一步包括另一V
在又一个示例性实施例中,本公开还可以包括具有可执行指令的非暂时性机器可读介质。可执行指令在由存储控制器执行时,可以使存储控制器:获取待读取的存储位置的唯一标识符,从存储器中取得与唯一标识符相关联的读取参考电压(V
在一个实施例中,所述解码信息可以包括不同于存储在所述存储器中的V
在一个实施例中,所述解码信息可以包括另一V
在一个实施例中,所述解码信息可以包括另一V
在一个实施例中,所述解码信息可以包括从0到1的错误翻转计数(EFC
例如,在一个实施例中,所公开的方法和操作中的一些或全部可以用存储在一个或多个计算机可读存储介质上的计算机可执行指令的软件中实现。一个或多个计算机可读存储介质可以包括非暂时性计算机可读介质(例如,可移动或不可移动磁盘、磁带或盒式磁带、固态驱动器(SSD)、混合硬盘驱动器、CD-ROM、CD-RW、DVD、或任何其他有形存储介质)、易失性存储器组件(例如,DRAM或SRAM)或非易失性存储器组件(例如,硬盘驱动器)。计算机可执行指令可以由计算机处理器(例如,CPU、GPU或两者)在计算机(例如,任何可商购的计算机,包括智能手机或包括计算硬件的其他移动设备)上执行。用于实现所公开的技术的任何计算机可执行指令以及在实现所公开的实例期间创建和使用的任何数据可以存储在一个或多个计算机可读介质(例如,非暂时性计算机可读介质)上。
虽然本文已经公开了各种方面和实施例,但是对于本领域技术人员来说,其他方面和实施例是显而易见的。本文所公开的各个方面和实施例是出于说明的目的,并且不旨在限制,其真实范围和精神由所附权利要求所指示。
- 一种实时读取与监测旋变解码芯片数据的方法
- 基于FPGA的多轴伺服电机位置读取、解码系统及方法
- 用于使用参考画面信息进行并行视频编码的方法和设备以及用于使用参考画面信息进行并行视频解码的方法和设备
- 使用基于经解码数据的误码率的读取阈值电压自适应