CN113096711A - 基于卡尔曼滤波的读阈值跟踪方法与装置 - Google Patents

基于卡尔曼滤波的读阈值跟踪方法与装置 Download PDF

Info

Publication number
CN113096711A
CN113096711A CN201911338051.4A CN201911338051A CN113096711A CN 113096711 A CN113096711 A CN 113096711A CN 201911338051 A CN201911338051 A CN 201911338051A CN 113096711 A CN113096711 A CN 113096711A
Authority
CN
China
Prior art keywords
threshold voltage
time
memory cell
read
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911338051.4A
Other languages
English (en)
Inventor
刘玉进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201911338051.4A priority Critical patent/CN113096711A/zh
Publication of CN113096711A publication Critical patent/CN113096711A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits

Abstract

本申请涉及存储设备领域,尤其涉及一种基于卡尔曼滤波的读阈值跟踪方法与装置,其中所述方法包括如下步骤:根据存储单元P当前时刻t‑1的最佳阈值电压估计值Vt‑1,预测下一时刻t的最佳阈值电压预测值Vt'。本申请可提供更为精确的阈值电压预测值,从而准确区分存储单元的状态。

Description

基于卡尔曼滤波的读阈值跟踪方法与装置
技术领域
本申请涉及存储设备,具体地,涉及利用卡尔曼滤波跟踪从NVM芯片中读取数据的最佳阈值电压的变化的方法与装置。
背景技术
闪存通过在存储单元中保持电荷量来存储信息。存储单元中的电荷量决定了存储单元的读出电压。在读取闪存数据时,比较存储单元的读出电压与阈值电压来识别存储单元所存储的信息。但是由于存储单元的电荷量受存储单元的质量、寿命、时间等多种因素的影响,以及从多个存储单元到敏感放大器的信号传输路径的非均一性,导致存储单元的读出电压发生变化,进而导致从存储单元读取的数据存在一些偏差,无法正确体现原始向存储单元写入的信息。阈值电压(也称为判决电压)包括用于读操作的读阈值与用于写操作的写阈值。
现有技术中采用一些手段来预防或应对因存储单元的电荷量等因素的变化而导致读取的数据无法正确体现写入的数据的问题,例如,在美国专利US9070454B1中,根据存储单元的擦写次数、保持时间等因素计算阈值电压(从存储单元中读取数据或向存储单元中写入数据时使用的阈值电压或判决电压),并使用计算出的阈值电压向存储单元写入数据。
在闪存芯片中,通过为读操作指示参数,来选择读操作时所使用的阈值电压。通过具有不同阈值电压的读操作,从存储单元读出的数据会有不同的结果。有些结果具有较低的比特错误率(Bit Error Ratio,错误比特与传输的总比特数的百分比),而有些结果具有较高的比特错误率。结合使用ECC(Error Correction Code,错误校正码)技术,具有较低的比特错误率的读取结果被ECC技术纠正的几率较高。从而通过尝试不同参数,来应对读操作中遇到的错误。参数可以合并在读操作中提供给闪存芯片。或者,在闪存芯片中设置用于读操作的参数,而在闪存芯片处理读操作时,使用所设置的参数。
存储介质上通常按页来存储和读取数据,而按块来擦除数据。通常,块包含多个页,存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节,当然,物理页也可以具有其他的尺寸。在读出或写入数据时,一般为每个页的所有存储单元设置相同的阈值电压。
图1展示了现有技术的闪存存储介质的结构。闪存块包括多条字线与位线。字线耦合了多个用于存储信息的晶体管,每个晶体管提供一个存储单元(Cn,Cn-1,…,C1,C0)。每个存储单元能存储1比特或多比特数据。每条字线中的多个存储单元提供一个或多个物理页。构成一个物理页的比特存储在耦合到同一条字线的晶体管中。
存储器目标(Target)是闪存芯片内的共享芯片使能(CE,Chip Enable)信号的一个或多个逻辑单元(LUN,Logic UNit)。闪存芯片内可包括一个或多个管芯(Di e)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.ashx获得的“Open NAND Flash Interface Specification(Revision 3.0)”中,提供了关于目标(target)、逻辑单元(LUN)、平面(Plane)的含义,其为现有技术的一部分。
在申请号为2017100938716的中国专利申请中提供了用于闪存存储设备的读阈值跟踪方法与装置。将其全文通过引用合并于此。
卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。卡尔曼滤波技术在20世纪50-60年代被提出,并得到广泛应用。
发明内容
对于每个存储单元中存储了多比特信息的新型存储单元,以及3D结构的新型闪存,传统的阈值电压获取方法不能满足需求。随着存储单元的擦写次数、读出次数、时间、温度等因素,存储单元的状态发生变化,导致在不同因素下,使用相同的阈值电压将得到不同的读取结果。需要跟踪存储单元的阈值电压的变化,以获得并使用最佳阈值电压从存储单元中读取数据。
每个存储单元中存储的比特数进一步增加,已经出现了TLC(Triple Level Cell,每个存储单元存储3比特数据)、QLC(Quad Level Cell,每个存储单元存储4比特数据)。代表存储单元所存储电荷量的状态空间被进一步细分,需要更准确的阈值电压区分存储单元的状态。
根据本申请的第一方面,提供了根据本申请第一方面的一种基于卡尔曼滤波的读阈值跟踪方法,包括如下步骤:根据存储单元P当前时刻t-1的最佳阈值电压估计值Vt-1,预测下一时刻t的最佳阈值电压预测值Vt′。
根据本申请的第一方面的第一读阈值跟踪方法,其中初始最佳阈值估计值V0由供应商提供或为指定的默认值。
根据本申请的第一方面的第一或第二读阈值跟踪方法,其中根据t-1时刻最佳阈值电压估计值Vt-1以及存储单元P的擦写次数、数据被记录在存储单元P上的时间、存储单元P被写入当前数据后被读取的次数、和/或存储单元P所处的环境温度中的一个或多个参数预测下一时刻t的最佳阈值电压预测值Vt′,使用如下公式表示:
Vt′=Vt-1+f(X);
其中X代表上述一个或多个参数,函数f符合正态分布,具有均值μf与方差σf 2
根据本申请的第一方面的第四读阈值跟踪方法,其中使用温度传感器获得存储单元P的环境温度。
根据本申请的第一方面的第五读阈值跟踪方法,,其中预测的t时刻的最佳阈值电压预测值Vt′符合正态分布,记为N(μ0t 2),其均值为μ0,方差为σt 2
根据本申请的第一方面的第六读阈值跟踪方法,,其中Vt-1为多个,构成矩阵Xt-1
Xt′=A*Xt-1+f(X)
其中矩阵Xt′为估计的t时刻的多个最佳阈值电压的预测值,A为1或单位矩阵,X代表存储单元P的擦写次数、数据被记录在存储单元P上的时间、存储单元P被写入当前数据后被读取的次数、和/或存储单元P所处的环境温度中的一个或多个;函数f所估计的阈值电压的增量符合正态分布,具有均值μf与方差σf 2
根据本申请的第二方面,提供了根据本申请第二方面的一种基于卡尔曼滤波的读阈值跟踪方法,包括如下步骤:使用多个不同的阈值电压从存储单元P读取数据;根据所读取数据的错误比特数,得到时刻t存储单元P的观测最佳阈值电压Zt
根据本申请的第二方面的第二读阈值跟踪方法,其中对形成的函数使用多个点进行求解,从而获得函数所代表的曲线的谷底,即时刻t存储单元P的观测最佳阈值电压Zt
根据本申请的第二方面的第三读阈值跟踪方法,其中观测值Zt使用以下公式获得:
Zt=Hvt+et
其中H代表转换矩阵,Vt为存储单元P的t时刻最佳阈值电压估计值,et为观测值Zt与最佳阈值电压估计值Vt的偏差,et的测量噪声协方差为Rt
根据本申请的第二方面的第四读阈值跟踪方法,其中选取错误比特数最少的阈值电压作为时刻t存储单元P的观测最佳阈值电压Zt
根据本申请的第三方面,提供了根据本申请第三方面的基于卡尔曼滤波的读阈值跟踪方法,包括如下步骤:根据本申请第一方面的第一到第六读阈值跟踪方法所述的步骤获得用于存储单元P的t时刻最佳阈值电压的预测值V′t;根据本申请第二方面的第一到第三读阈值跟踪方法所述的步骤获得用于存储单元P的观测最佳阈值电压Zt;根据t时刻最佳阈值电压的预测值V′t和观测最佳阈值电压Zt计算t时刻访问存储单元P的预测最佳阈值电压估计值。
根据本申请的第三方面的第一读阈值跟踪方法,其中还包括步骤:计算卡尔曼滤波的K增益,使用如下公式计算t时刻的K增益:
Figure BDA0002331502770000041
其中,p′t是t时刻最佳阈值电压的预测值Vt′的不确定程度,Rt是观测最佳阈值电压Zt的测量噪声协方差。
根据本申请的第三方面的第二读阈值跟踪方法,其中
pt′=pt-1+Q
pt-1为t-1时刻的最佳阈值电压估计值Vt-1的不确定程度,Q是常数或指定的值。
根据本申请的第三方面的第三读阈值跟踪方法,其中
pt′=A*pt-1*AT+Q
pt′代表估计出的t时刻最佳阈值电压的不确定程度,AT为矩阵A的转置矩阵,pt-1为t-1时刻的最佳阈值电压估计值Vt-1的不确定程度,Q是常数或指定的值。
根据本申请的第三方面的第四读阈值跟踪方法,还包括步骤:
计算卡尔曼滤波的K增益,使用如下公式计算t时刻的K增益:
Figure BDA0002331502770000042
其中H代表转换矩阵,用于将存储单元P的阈值电压转换为观测值Zt,p′t是最佳阈值电压的预测值Vt′的不确定程度,R是矩阵形式的观测最佳阈值电压Zt的测量噪声协方差。
根据本申请的第三方面的第五读阈值跟踪方法,还包括步骤:
计算卡尔曼滤波的K增益,使用如下公式计算t时刻的K增益:
Figure BDA0002331502770000051
其中H代表转换矩阵,用于将存储单元P的阈值电压转换为观测值Zt,Pt-代表矩阵形式的最佳阈值电压的预测值Vt′的不确定程度,R代表矩阵形式的最佳阈值电压Zt的测量噪声协方差。
根据本申请的第三方面的第六读阈值跟踪方法,还包括根据t时刻的K增益计算t时刻物理页p的最佳阈值电压估计值Vt,为:
Vt=Vt′+K((Zt-Vt′)
其中,k(t)是K增益。
根据本申请的第三方面的第七读阈值跟踪方法,还包括根据t时刻的K增益计算t时刻物理页p的最佳阈值电压估计值Xt,矩阵Xt代表t时刻的多个最佳阈值电压的估计值:
Xt=Xt′+K(t)(Rt-H*Xt′)
其中矩阵Xt′代表多个最佳阈值电压的预测值,k(t)是K增益,Rt是矩阵形式的观测最佳阈值电压Zt的测量噪声协方差,H是转换矩阵。
根据本申请的第三方面的第八读阈值跟踪方法,还包括步骤:
更新最佳阈值电压的估计值的误差协方差Pt,使用如下公式更新:
Pt=Pt′-K(t)*HPt
其中Pt′是最佳阈值电压的预测值Vt′的估计误差协方差,K(t)是K增益,H代表转换矩阵。
根据本申请的第三方面的第九读阈值跟踪方法,还包括步骤:
更新最佳阈值电压的估计值的误差协方差Pt,使用如下公式更新:
Figure BDA0002331502770000052
其中
Figure BDA0002331502770000053
与H为矩阵,I为单位矩阵,K(t)是K增益。
根据本申请的第三方面的第十读阈值跟踪方法,其中间隔预定的时间或响应于预定事件的发生,执行上述所有阈值跟踪方法。
根据本申请的第四方面,提供了根据本申请第四方面的一种存储计算机程序,执行如上所述的方法。
根据本申请的第五方面,提供了根据本申请第五方面的一种存储设备,包括控制部件,其中控制部件执行如上所述的方法。
根据本申请的第五方面的第一存储设备,其中包括多个存储单元。
附图说明
当连同附图阅读时,通过参考后面对示出性的实施例的详细描述,将最佳地理解本申请以及优选的使用模式和其进一步的目的和优点,其中附图包括:
图1展示了现有技术的闪存存储介质的结构;
图2为存储单元的读出电压分布曲线图;
图3展示了阈值电压与错误比特数的关系曲线图;
图4是存储设备的系统框图;
图5是根据本申请实施例的预测t时刻最佳阈值电压的流程图;
图6是根据本申请实施例的观测最佳阈值电压的流程图;
图7是根据本申请实施例的应用卡尔曼滤波跟踪阈值电压的流程图。
具体实施方式
图2为存储单元的读出电压分布曲线图。存储单元被编程后,依据被编程的值,在存储单元中存储了电荷。读存储单元时,从存储了不同电荷的存储单元会得到不同的读出电压。参看图2,钟形线L0是具有“1”状态对应的读出电压的存储单元分布,钟形线L1是具有“0”状态的读出电压的存储单元的分布。当使用阈值电压Vt2时,在阈值电压Vt2右侧的具有“1”状态的存储单元被误读并成为错误比特。类似地,当使用阈值电压Vt1时,在阈值电压Vt1左侧的具有“0”状态的存储单元被误读并成为错误比特。阈值电压Vt3是又一可选的用于从存储单元读出数据的阈值电压。
通过比较多个阈值电压对应的错误比特的数量,选择错误比特的数量最小的阈值电压作为最佳阈值电压。或者,从读出电压分布中,确定最佳阈值电压(例如,选择Vt,使得钟形线L0在Vt右侧部分的面积与钟形线L1在Vt左侧部分的面积之和最小)。
图3展示了阈值电压(阈值的取值)与错误比特数(BEC,Bit Error Count)的关系。
使用不同的阈值电压从包括多个存储单元的物理页读出数据时,曲线300展示了读出数据中的错误比特数随使用的阈值电压的变化而改变。参考图3,横轴指示读出数据所使用的阈值电压,而纵轴指示读出数据中的错误比特数。可以理解地,读出数据可以包括从一个或多个物理页读出数据,从多个存储块、LUN或NVM芯片的多个物理页读出数据,从物理页的多个存储单元的部分读出数据,或者从物理页的部分存储单元中读出属于指定物理页类型(MSB页、CSB页或LSB页)的数据。依然可以理解地,虽然图3中展示了单一阈值电压,然而为从存储单元读出数据,所使用的阈值电压可以有多个,以区分存储单元中可能存储的多个状态。
继续参看图3,曲线300上包括点310、312与314。在三个点310、312与314)中,点314具有最低的错误比特数,因而,点314所对应的阈值电压具有较佳的阈值取值。依据图3,错误比特数是阈值电压的函数,通过搜索具有最低或较低错误比特数的阈值电压,能够获得最佳或较佳的阈值电压取值。以及,对阈值电压的搜索可以在对NVM芯片的使用过程中不断进行,以追踪因NVM芯片的使用而引起的最佳或较佳阈值电压变化。
依图3所示,错误比特数随阈值电压变化的函数接近于正态函数的反函数,记为A-N(μ,σ2),其中A为常数,μ代表正态函数的均值,而σ2为正态函数的方差。从而依据图3中曲线300上的至少2个点,得到确定正态函数的参数μ与σ。
图4是存储设备的框图。根据本申请的实施例可在图4所展示的存储设备中实施。
存储设备402同主机相耦合,用于为主机提供存储能力。主机同存储设备402之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial AdvancedTechnology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备402。主机可以是能够通过上述方式同固态存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备402包括接口403、控制部件404、一个或多个NVM芯片405以及DRAM(Dynamic Random Access Memor y,动态随机访问存储器)410。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRA M(Magnetic Random Access Memory,磁阻存储器)、RRAM(Resistive Random AccessMemory,阻变存储器)等是常见的NVM。
接口403可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件404用于控制在接口403、NVM芯片405以及DRAM 410之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件404可通过软件、硬件、固件或其组合的多种方式实现。例如,控制部件404可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(App lication SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式;控制部件404也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件404的硬件来处理IO(Input/Output)命令;控制部件404还可以耦合到DRAM 410,并可访问DRAM410的数据;在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件404包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片405,并以遵循NVM芯片405的接口协议的方式向NVM芯片405发出命令,以操作NVM芯片405,并接收从NVM芯片405输出的命令执行结果。NVM芯片405的接口协议包括“Toggle”、“ONFI”等已知的接口协议或标准。
存储设备还包括一个或多个温度传感器420。由于NVM芯片的阈值电压同温度相关,根据本申请的实施例,邻近于NVM芯片405而设置温度传感器420。控制器404从温度传感器420获取其采集的温度信息。
由于具有物理尺寸,温度传感器404无法被设置于NVM芯片405的管芯或存储单元的相同位置。可选地或进一步地,还向控制部件404提供配置信息,使得控制部件404知晓传感器420相对于NVM芯片405的指定管芯或存储单元的距离或位置,从而依据传感器420的读数,得以确定指定管芯或存储单元处的温度。
可选地,控制部件404根据一些情况而控制阈值电压的选取。例如,根据要访问的存储单元所处环境温度(相对于通常温度的差异)而调整阈值电压。又例如,根据要访问的存储单元的擦写次数、数据被记录在存储单元上的时间和/或存储单元被写入当前数据后被读取的次数等因素而调整阈值电压。一些例子中,NVM芯片的供应商提供了多种情况下,推荐使用的阈值电压。通过对NVM芯片与存储设备的实验室测试,也得到了在单一因素或多种因素的组合下,推荐使用的阈值电压。从而控制部件404根据待访问的存储单元的擦写次数、数据被记录在存储单元上的时间、存储单元被写入当前数据后被读取的次数、和/或存储单元所处的环境温度,得以获知推荐的阈值电压,或者推荐的阈值电压相对于通常使用的阈值电压的变化。在又一些例子中,控制部件为确定阈值电压,既考虑从存储单元读出数据时的单一因素或多种因素的组合,又考虑数据被写入存储单元时的一种或多种因素,例如,根据数据被写入存储单元时的温度与数据被从存储单元读出时的温度二者来确定推荐的阈值电压。
本申请采用卡尔曼滤波的方法来获得最优阈值电压,并做出本申请的多个实施例。并且所提出的基于卡尔曼滤波的确定最优阈值电压的方法还能同现有的确定阈值电压的方法结合,并获得改进的效果。
卡尔曼滤波方法使用了多个重要参数。根据本申请的实施例,将t时刻的最佳阈值电压估计值Vt作为卡尔曼滤波方法所要确定的系统状态。将t时刻的最佳阈值电压估计值Vt的误差协方差记为pt,t时刻的K增益记为Kt,将t时刻最佳阈值电压的观测值记为Rt
(一)根据t-1时刻的最佳阈值电压估计值Vt-1,估计下一时刻(t时刻)的最佳阈值电压预测值Vt′。
对于指定的存储单元(例如,物理页p),t-1时刻其最佳阈值电压为Vt-1(估计值)。初始时候的最佳阈值电压估计值V0由供应商提供或为指定的默认值。而在根据本申请实施例的方法的上一轮计算中确定上一时刻的最佳阈值电压估计值Vt-1
在一个例子中,估计下一时刻(t时刻)的最佳阈值电压不会发生明显变化,即Vt′=Vt-1。在又一个例子中,根据t-1时刻最佳阈值电压为Vt-1以及控制部件获取的待访问的存储单元的擦写次数、数据被记录在存储单元上的时间、存储单元被写入当前数据后被读取的次数、和/或存储单元所处的环境温度等一个或多个因素来估计t时刻的最佳阈值电压,例如Vt′=Vt-1+f(Tt-1,PECt-1……),其中Tt-1代表t-1时刻待访问存储单元的温度,由控制部件通过例如温度传感器而得到,PECt-1代表待访问的存储单元所经历的擦写次数。函数f是已知的,由NVM芯片的供应商提供,或者在实验室中通过实验以及对实验数据的分析而获得。通常情况下,函数f所估计的阈值电压的增量也符合正态分布,并具有均值μf与方差σf 2。依然作为举例,从温度传感器采集的数据也具有误差,并且符合正态分布,其参数可从供应商处获得,或者在实验室中通过高精度温度计测量得到。
另外,将系统中存在的白噪声的协方差记为Q,其为可测量或推导的指定值或常数。
从而估计出的t时刻最佳阈值电压预测值Vt′也符合正态分布,记为N(μ0t 2),其均值为μ0,方差为σt 2
而令pt′=pt-1+Q,其代表了估计出的t时刻最佳阈值电压的不确定程度(估计的误差协方差)。pt-1为根据本申请实施例的计算过程在上一轮计算出的t-1时刻的最佳阈值电压估计值Vt-1的不确定程度(误差协方差),Q是常数或指定的值。
在又一实施方式中,从存储单元p中读出数据需要组合使用多个阈值电压,例如为读取TLC闪存,需要使用7个(2^3-1)阈值电压;为读取QLC闪存,需要使用15个(2^4-1)个阈值电压。用矩阵Xt-1代表t-1时刻的多个最佳阈值电压,用矩阵Xt′代表估计的t-1时刻的多个最佳阈值电压,其不确定程度用
Figure BDA0002331502770000101
表示。Xt′=A*Xt-1+U。A代表用于从Xt-1估计得到Xt′的预测方程(Xt′=A*Xt-1+U),在上面的例子中,A为1或单位矩阵,U=f(Tt-1,PECt-1……)。从而Xt′的不确定程度
Figure BDA0002331502770000102
其中Pt-1是Xt-1的误差协方差矩阵,Q代表预测的误差,例如系统中存在的白噪声的协方差。
图5展示了根据本申请实施例预测t时刻最佳阈值电压的流程图。
获取已经知晓的当前时刻(t-1时刻)指定存储单元(例如物理页p)的最佳阈值电压的估计值Vt-1。t-1时刻的最佳阈值电压的估计值还具有误差协方差pt-1,其代表了估计值Vt-1的可信程度。作为举例,根据本申请实施例的方法,根据t-2时刻的最佳阈值电压的估计值Vt-2,得到t-1时刻的最佳阈值电压的估计值Vt-1。作为又一个例子,从NVM芯片的供应商或产品手册得到初始的最佳阈值电压的估计值V0
获取物理页p的当前(在t-1时刻)擦写次数(记为PECt-1)。存储设备的控制部件记录了其中NVM芯片的每个物理块的擦写次数。
获取物理页p的当前环境温度(记为Tt-1)。存储设备的控制部件通过布置于N VM芯片附近的温度传感器获取物理页p的当前环境温度(Tt-1)。可选地或进一步地,控制部件对从温度传感器采集的温度数据进行滤波以及根据温度传感器与被物理页p的位置的关系而得到从温度传感器到物理页p的热阻,并利用热阻修正从温度传感器采集的温度数据以得到当前环境温度(Tt-1)。
控制部件根据t-1时刻物理页p的最佳阈值电压的估计值Vt-1、擦写次数(PECt-1)与环境温度(Tt-1)估计下一时刻(t时刻)物理页p的最佳阈值电压的预测值Vt′。作为举例,Vt′=Vt-1+f(Tt-1,PECt-1),其中函数f由NVM芯片供应商提供或在实验室中通过积累实验数据而统计得到,并以查找表或解析式的形式记录在控制部件的存储器中。可选地,函数f还依赖于具体的存储设备。例如,不同存储设备上使用的温度传感器难以完全一致,还在制造存储设备时通过校准过程而得到或更新函数f。从而控制部件通过提供参数Tt-1,与PECt-1而得到f(Tt-1,PECt-1)的结果,同时得到的还有函数f的统计上的均值(μf)与方差(σf 2),其中均值(μf)与方差(σf 2)与当前时刻的擦写次数(PE Ct-1)与环境温度(Tt-1)相关或无关。
从而预测值Vt′的均值(记为μ0)为Vt-1f
可选地,用温度传感器(例如,图4的温度传感器420)的方差作为函数f的方差(σf 2)。
pt‘=pt-1+Q,其代表预测出的t时刻最佳阈值电压Vt′的不确定程度。pt-1为t-1时刻的最佳阈值电压估计值Vt-1的不确定程度,Q是常数或指定的值。
(二)在t时刻,观测最佳阈值电压Zt
除了对t时刻最佳阈值电压的预测值Vt′,卡尔曼滤波还需要基于测量值而得到对t时刻最佳阈值电压的观测值(记为Zt)。观测值Zt具有均值μ1和,观测值Zt与真实的最佳阈值电压的偏差为et,其测量噪声协方差记为Rt
根据本申请的实施例,通过在t时刻采用两个或更多的阈值电压从物理页p读出数据来观测t时刻的最佳阈值电压(作为观测值Zt)。
也参看图3,在t时刻,对物理页p的读命令所采用的阈值电压与从物理页p的读出数据的错误比特数(BEC),具有图3所示的曲线的关系。该曲线近似于正态函数的反函数(记为A-N(μ11 2))。从而通过曲线上的两个点或更多的点,得到曲线的参数(均值μ1,方差
Figure BDA0002331502770000111
)。例如,也参看图3,以点310、点312与点314的横坐标所代表的阈值电压从物理页p读出数据,所读出数据的错误比特数(BEC)为各自点的纵坐标,从而求解出曲线的参数(均值μ1,方差
Figure BDA0002331502770000112
),即曲线的谷底(最低点,也即均值μ1)代表了观测到的t时刻访问物理页p的最佳阈值电压Zt
卡尔曼滤波中,观测值Zt是对系统真实状态(例如最佳阈值电压估计值Vt)的观测,二者可能需要通过变换得到,例如受到NVM芯片设置阈值电压的寄存器的精度所限或读取NVM芯片中的随机噪声存在等因素,观测值Zt同理想的最佳阈值电压估计值Vt存在偏差(记为et)。再又一个例子中,观测值是二元组(阈值电压,读出数据错误比特数)的集合。并且观测可能存在误差。从而,一般地,令
Zt=Hvt+et
其中H代表转换矩阵,用于将系统的真实状态Vt转换为观测值Zt,观测值Zt与真实的最佳阈值电压的偏差为et,et的测量噪声协方差为Rt。在一个例子中,用NVM芯片可设置的阈值电压的最小精度来确定Rt,例如,可设置的阈值电压的范围为100mV,并且使用7位寄存器来设置所使用的阈值电压,那么Rt=100mV/(2^7)或Rt=100mV/(2^8)(取最小量化值的一半为量化精度)。在又一个例子中,还根据NVM芯片读数据时的随机噪声Ω来确定Rt(Rt=Ω+VF/(2^n)),其中VF代表可设置的阈值电压范围,而n代表量化阈值电压范围的二进制比特数。
在又一个例子中,也参看图3,对t时刻最佳阈值电压的观测值(记为Zt)为点310、312与314中具有最小BEC的点所对应的阈值电压,从而通过少数(两次或3次)的读操作中将具有最小BEC的读出结果对应的阈值电压作为对最佳阈值电压的观测值Zt。在图3的例子中,将点314所对应的阈值电压作为观测的最佳阈值的电压Zt。以及还根据图3的点310、312与314,得到曲线300的参数(均值μ1,方差
Figure BDA0002331502770000121
),将均值μ1作为t时刻最佳阈值电压的真实值,从而观测值Zt的误差et=Zt1。以及用量化误差和/或随机噪声确定误差et的测量噪声协方差Rt
依然可以理解地,一些情况下,从存储单元p中读出数据需要组合使用多个阈值电压,从而最佳阈值电压估计值Vt及其观测值Zt包括组合使用的多个阈值电压。
图6展示了根据本申请实施例的观测最佳阈值电压的流程图。
为观测t时刻存储单元的最佳阈值电压,获取要被观测的存储单元(物理页p)。使用阈值电压的第一值从物理页p读取数据,并获取读出的数据的错误比特数(BEC)(620)。例如,阈值电压的第一值是t-1时刻估计的最佳阈值电压估计值Vt-1或Vt′。例如,通过错误校正单元对读出的数据实施错误校正,以识别其中的错误比特数(B EC)。使用阈值电压的第二值从物理页p读取数据,并获取读出的数据的错误比特数(BEC)(630)。使用阈值电压的第三值从物理页p读取数据,并获取读出的数据的错误比特数(BEC)(640)。可选地,阈值电压的第二值与第三值,分别是比阈值电压的第一值大或小的值。
通过采用多种(图6的例子中,3种)阈值电压从物理页p读出的数据的多个错误比特数,建立出t时刻物理页p的阈值电压与错误比特数的关系的函数,并通过函数获取使得物理页p的读出数据的错误比特数最小的阈值电压Zt作为观测的最佳阈值电压,以及也获得函数曲线的均值μ1和方差
Figure BDA0002331502770000122
在可选的例子中,扫描物理页p的阈值电压的可能的取值范围,并将得到了最少的错误比特数(BEC)的阈值电压,作为观测的最佳阈值电压Zt
依然可选地,采用在申请号为2017100938716的中国专利申请中提供的方法来获得观测的最佳阈值电压Zt。并且根据扫描过程中积累的数据计算出Zt的均值μ1和方差
Figure BDA0002331502770000131
将均值μ1作为物理页p的观测的最佳阈值电压Zt
可以理解地,一些情况下,从存储单元p中读出数据需要组合使用多个阈值电压,从而观测的最佳阈值电压Zt包括组合使用的多个阈值电压。
以及用访问物理页p的阈值电压的量化误差和/或从物理页p读出数据的随机噪声确定观测的最佳阈值电压Zt与最佳阈值电压的真实值的误差et的测量噪声协方差Rt
(三)计算卡尔曼滤波的K增益。
已经得到了t时刻物理页p的最佳阈值电压的预测值Vt′与观测值Zt,通过公式(1)计算t时刻的k增益:
Figure BDA0002331502770000132
其中,p′t是(一)中得到的最佳阈值电压的预测值Vt′的不确定程度,而Rt是上面(二)中得到的最佳阈值电压Zt的测量噪声协方差。
可选地,通过公式(2)计算t时刻的矩阵形式的K增益:
Figure BDA0002331502770000133
其中H代表转换矩阵,用于将系统的真实状态Vt转换为观测值Zt,R代表矩阵形式的最佳阈值电压Zt的测量噪声协方差。
依然可选地,矩阵形式的K增益
Figure BDA0002331502770000134
Figure BDA0002331502770000135
代表矩阵形式的最佳阈值电压的预测值Vt′的不确定程度,R代表矩阵形式的最佳阈值电压Zt的测量噪声协方差。
(四)确定t时刻最佳阈值电压的估计值
t时刻物理页p的的最佳阈值电压的估计值Vt=μ0+kt(Zt0),其中,kt是上面(三)中得到的K增益,而μ0代表(一)中得到的最佳阈值电压的预测值Vt′,而Zt是上面(二)中得到的观测值。
从而,得到了t时刻物理页p的的最佳阈值电压的估计值Vt,用该估计值Vt访问物理页p。
可选地,用矩阵Xt代表t时刻的多个最佳阈值电压,Xt=Xt′+K(t)(Rt-H Xt′)。
(五)更新最佳阈值电压的估计值的误差协方差pt
更新t时刻的最佳阈值电压的估计值的误差协方差Pt=pt‘-Kt*Hpt‘,其中pt‘是(一)中得到的最佳阈值电压的预测值Vt′的不确定程度(例如,预测的误差协方差),kt是上面(三)中得到的K增益,H代表转换矩阵,用于将系统的真实状态Vt转换为观测值Zt,对于图6的例子,矩阵H是单位阵。
可选地,矩阵形式的t时刻的最佳阈值电压的估计值的误差协方差
Figure BDA0002331502770000141
Figure BDA0002331502770000142
其中I为单位矩阵。
从而,在根据本申请实施例的一次迭代中,通过上面的(一)到(五),完成对卡尔曼滤波的参数的更新,用(四)得到的t时刻最佳阈值电压的估计值Vt来访问物理页p。在应用本申请实施例进行下次迭代之前,当需要访问物理页p时,都使用该最佳阈值电压的估计值Vt。从而无须每次访问物理页p,都应用根据本申请的实施例来更新要使用的阈值电压。
可选地,在指定的时机实施根据本申请实施例的一次迭代。指定的时机包括例如,经过指定的时间间隔(例如,1天、1周或更久)、存储设备的物理块的平均擦写次数进入指定区间、读数据出现了不可纠正错误等。可以理解地,发起下一次迭代的依据并非必然依赖于时间。
图7展示了根据本申请实施例的应用卡尔曼滤波跟踪阈值电压的流程图。
获取存储单元(物理页p),根据之前迭代得到的物理页p的当前时刻(t-1时刻)的最佳阈值电压估计值Vt-1,预测物理页的下一时刻(t时刻)的最佳阈值电压预测值Vt′,其具有均值μ0与方差σ0 2(710)。预测的t时刻最佳阈值电压预测值Vt′的不确定程度pt’。
通过使用多个不同阈值电压访问物理页p,从物理页p读取数据,得到所读出数据的错误比特数,并得到当前(t时刻)观测的最佳阈值电压Zt(720)。可以理解地,用多个不同阈值电压访问物理页p的时刻,必然不同于使用根据本申请实施例得到的最佳阈值电压访问物理页p的时候,但可将这些时刻统称为t时刻,其实际时间的差异不影响本申请实施例的应用。
根据预测的t时刻的最佳阈值电压的不确定程度pt’与t时刻最佳阈值电压的观测值的偏差Rt计算t时刻的卡尔曼滤波的k增益(kt)(730)。
计算t时刻的访问物理页p的最佳阈值电压估计值Vt=μ0+kt(Zt0)(740)。
可选地,同物理页p相关联的记录该最佳阈值电压估计值Vt,使得在得到物理页p的最佳阈值电压估计值Vt后,使用该最佳阈值电压估计值Vt一次或多次访问物理页p,直到该最佳阈值电压估计值Vt被根据本申请实施例的下一轮迭代所更新(750)。
还确定t时刻的访问物理页p的最佳阈值电压估计值Vt的偏差Pt=pt‘-Kt*pt‘(760)。
在为计算t+1时刻的最佳阈值电压估计值Vt+1的下一轮迭代中,继续执行步骤710-步骤760。并且用上一轮迭代的步骤740计算出的最佳阈值电压估计值Vt,作为下一轮迭代的步骤710所使用的最佳阈值电压估计值Vt-1。以及用上一轮迭代的步骤760计算出的最佳阈值电压估计值Vt的偏差Pt,结合预测引入的偏差,计算作为下一轮迭代的步骤710所使用的最佳阈值电压估计值Vt-1的不确定程度pt-1
根据本发明实施例的阈值设置方法可应用于基于NVM芯片的固态存储设备,包括但不限于固态硬盘、U盘、SD卡,还可以应用于手机、平板电脑等便携式电子设备,以及其他多种使用NVM芯片(诸如NAND闪存、相变存储器、FeRAM、MRAM等是常见的NVM。)的需要存储信息的电子设备。
虽然当前发明参考的示例被描述,其只是为了解释的目的而不是对本发明的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本发明的范围。
这些实施方式所涉及的、从上面描述和相关联的附图中呈现的教导获益的领域中的技术人员将认识到这里记载的本发明的很多修改和其他实施方式。因此,应该理解,本发明不限于公开的具体实施方式,旨在将修改和其他实施方式包括在所附权利要求书的范围内。尽管在这里采用了特定的术语,但是仅在一般意义和描述意义上使用它们并且不是为了限制的目的而使用。

Claims (10)

1.一种基于卡尔曼滤波的读阈值跟踪方法,包括如下步骤:
根据存储单元P当前时刻t-1的最佳阈值电压估计值Vt-1,预测下一时刻t的最佳阈值电压预测值Vt′。
2.如权利要求1所述的读阈值跟踪方法,其中根据t-1时刻最佳阈值电压估计值Vt-1以及存储单元P的擦写次数、数据被记录在存储单元P上的时间、存储单元P被写入当前数据后被读取的次数、和/或存储单元P所处的环境温度中的一个或多个参数预测下一时刻t的最佳阈值电压预测值Vt′,使用如下公式表示:
Vt′=Vt-1+f(X);
其中X代表上述一个或多个参数,函数f符合正态分布,具有均值μf与方差σf 2
3.如权利要求1所述的读阈值跟踪方法,其中Vt-1为多个,构成矩阵Xt-1
Xt′=A*Xt-1+f(X)
其中矩阵Xt′为估计的t时刻的多个最佳阈值电压的预测值,A为1或单位矩阵,X代表存储单元P的擦写次数、数据被记录在存储单元P上的时间、存储单元P被写入当前数据后被读取的次数、和/或存储单元P所处的环境温度中的一个或多个;函数f所估计的阈值电压的增量符合正态分布,具有均值μf与方差σf 2
4.一种基于卡尔曼滤波的读阈值跟踪方法,包括如下步骤:
使用多个不同的阈值电压从存储单元P读取数据;
根据所读取数据的错误比特数,得到时刻t存储单元P的观测最佳阈值电压Zt
5.如权利要求4所述的读阈值跟踪方法,其中对形成的函数使用多个点进行求解,从而获得函数所代表的曲线的谷底,即时刻t存储单元P的观测最佳阈值电压Zt
6.一种基于卡尔曼滤波的读阈值跟踪方法,包括如下步骤:
根据权利要求1-3之一所述的步骤获得用于存储单元P的t时刻最佳阈值电压的预测值V′t
根据权利要求4-5之一所述的步骤获得用于存储单元P的观测最佳阈值电压Zt
根据t时刻最佳阈值电压的预测值V′t和观测最佳阈值电压Zt计算t时刻访问存储单元P的预测最佳阈值电压估计值。
7.如权利要求6所述的方法,其中还包括步骤:
计算卡尔曼滤波的K增益,使用如下公式计算t时刻的K增益:
Figure FDA0002331502760000021
其中,pt′是t时刻最佳阈值电压的预测值Vt′的不确定程度,Rt是观测最佳阈值电压Zt的测量噪声协方差。
8.如权利要求6-7之一所述的方法,其中还包括根据t时刻的K增益计算t时刻物理页p的最佳阈值电压估计值Vt,为:
Vt=Vt′+K(t)(Zt-Vt′)
其中,k(t)是K增益Vt
9.如权利要求6-8之一所述的方法,其中还包括步骤:
更新最佳阈值电压的估计值的误差协方差Pt,使用如下公式更新:
Pt=Pt′-K(t)*HPt
其中Pt′是最佳阈值电压的预测值Vt′的估计误差协方差,K(t)是K增益,H代表转换矩阵。
10.一种存储设备,包括控制部件,其中控制部件执行如权利要求1-9之一所述的方法。
CN201911338051.4A 2019-12-23 2019-12-23 基于卡尔曼滤波的读阈值跟踪方法与装置 Pending CN113096711A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911338051.4A CN113096711A (zh) 2019-12-23 2019-12-23 基于卡尔曼滤波的读阈值跟踪方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911338051.4A CN113096711A (zh) 2019-12-23 2019-12-23 基于卡尔曼滤波的读阈值跟踪方法与装置

Publications (1)

Publication Number Publication Date
CN113096711A true CN113096711A (zh) 2021-07-09

Family

ID=76662854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911338051.4A Pending CN113096711A (zh) 2019-12-23 2019-12-23 基于卡尔曼滤波的读阈值跟踪方法与装置

Country Status (1)

Country Link
CN (1) CN113096711A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215503A (zh) * 2023-11-09 2023-12-12 深圳星火半导体科技有限公司 一种读取闪存数据的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215503A (zh) * 2023-11-09 2023-12-12 深圳星火半导体科技有限公司 一种读取闪存数据的方法

Similar Documents

Publication Publication Date Title
US10446242B2 (en) Temperature variation compensation
CN107025945B (zh) 使用非线性滤波方案的存储器系统及其读取方法
CN106448737B (zh) 读取闪存数据的方法、装置以及固态驱动器
US10535383B2 (en) Throughput performance for cross temperature handling scenarios
US8274823B2 (en) Methods and apparatus utilizing expected coupling effect in the programming of memory cells
US8472274B2 (en) Using temperature sensors with a memory device
US9129698B2 (en) Solid state storage device and sensing voltage setting method thereof
KR101154648B1 (ko) 시스템 영향을 제거하기 위한 메모리 제어기 자체 교정
US8000135B1 (en) Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
CN105097028A (zh) 包括非易失性存储器件的存储装置和该器件的读取方法
US10949113B2 (en) Retention aware block mapping in flash-based solid state drives
CN108461107B (zh) 读阈值跟踪方法与装置
JP2021507422A (ja) 温度ベースのメモリ動作
US10599362B2 (en) NAND flash thermal alerting
US8482978B1 (en) Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US7630240B2 (en) Read method for MLC
CN110120234B (zh) 固态存储设备及其最优读出阈值电压的搜索方法
US11335417B1 (en) Read threshold optimization systems and methods using model-less regression
CN113096711A (zh) 基于卡尔曼滤波的读阈值跟踪方法与装置
CN116230033A (zh) 存储设备
TWI521525B (zh) 時間估測方法、記憶體儲存裝置、記憶體控制電路單元
CN108257642B (zh) 读阈值设置方法与装置
US20240055065A1 (en) Memory system and method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination