一种选择最佳NANDFlash读操作电平的方法与流程

文档序号:17630437发布日期:2019-05-11 00:04阅读:591来源:国知局
一种选择最佳NAND Flash读操作电平的方法与流程

本发明涉及一种选择最佳nandflash读操作电平的方法,属于存储器技术领域。



背景技术:

nandflash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。nandflash存储器具有容量较大,体积小、读写速度快、掉电数据不丢失等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用。

由于硬件电气特性的影响,当读取存储在nandflash存储器中的数据时,部分数据位会发生反转。当前使用nandflash存储器的产品中,都会通过硬件纠错模块恢复发生反转的数据,当发生反转的数据量较大并超出硬件纠错模块的纠错能力时,使用者必须调整nandflash存储器的读操作电平并进行额外的读操作,将反转的数据量降低至纠错模块的能力范围内,从而获得正确的数据。但是,频繁引入额外的读操作会大幅降低产品的读操作性能。

传统的nandflash访问方法中,每次对nandflash的读操作都首先使用默认的读电平。默认的读电平获取数据错误过多并且超出硬件纠错模块的纠错能力时,用户需要调节读电平并重新执行一次或多次读操作重新获取数据。这种方法会导致nandflash的读操作访问性能大幅降低。



技术实现要素:

本发明的目的是将nandflash读操作特性测试与机器学习的线性回归算法相结合,挖掘出最佳nandflash存储器读操作电平与nandflash存储器数据稳定性影响因素(pe、retentiontime、readdisturb)之间的线性关系。产品在读取nandflash存储器之前通过该线性关系找到当前对应的最佳电平,从而降低硬件纠错失败的概率,避免产品的读操作性能的下降。

nandflash存储器的数据稳定性,即数据反转的概率,主要受到nandflash块的pe、retentiontime、readdisturb三种因素的影响。通过对同一批次nandflash的批量测试,可以得到pe、retentiontime、readdisturb处于不同阶段时最佳的读电平的值。将测试得到的数据经过线性回归算法的处理后,即可得到最佳的读电平与pe、retentiontime、readdisturb之间的线性关系。

为了解决所述技术问题,本发明采用的技术方案是:一种选择最佳nandflash读操作电平的方法,包括以下步骤:s01)、对多个或者单个nandflash进行批量测试,得到pe、retentiontime、readdisturb处于不同阶段时对应的最佳读电平的值,并进行记录,pe指nandflash块的磨损次数,retentiontime指从数据写入nandflash开始,到本次读取数据为止,这个阶段的时间长度,readdisturb是指nandflash块的读操作次数;s02)、将批量测试得到的数据输入机器学习的线性回归模型,得出最佳读电平与pe、retentiontime、readdisturb之间的线性函数;s03)、用户在对nandflash进行读操作之前,将当前pe、retentiontime、readdisturb参数传入步骤s02得到的线性函数,从而得到当前最佳的读电平。

进一步的,对多个或者单个nandflash进行批量测试的方法为:取同一批次的多块nandflash或者单块nandflash的多个block块作为样本,使多块nandflash或者单块nandflash样本下的多个block块处于不同的pe、retentiontime、readdisturb的状态下,依次遍历所有可取的读电平,分别找到pe、retentiontime、readdisturb处于不同阶段时对应的最佳读电平的值。

进一步的,利用nandflash厂商提供的命令依次遍历所有可取的读电平。

进一步的,出错率最低的读电平为最佳读电平。

进一步的,对单块nandflash样本或者单块nandflash下的某个block块样本进行测试的步骤为:s11)、对nandflash执行x次磨损;s12)、向nandflash写入数据;s13)、将nandflash在某一温度下放置y小时;s14)、对nandflash执行z次块读取;s15)、依次调节读电平,读取nandflash数据,选择出错率最低的读电平。

进一步的,不同nandflash样本执行步骤s13时,将retentiontime换算到同一温度下比较。

进一步的,x≤10000,y≤3个月,z≤1000000。

本发明的有益效果:本发明将nandflash读操作特性测试与机器学习的线性回归算法相结合,挖掘出最佳nandflash存储器读操作电平与nandflash存储器数据稳定性影响因素(pe、retentiontime、readdisturb)之间的线性关系。产品在读取nandflash存储器之前通过该线性关系找到当前对应的最佳电平,从而降低硬件纠错失败的概率,避免产品的读操作性能的下降。用户在对nandflash进行读操作之前,只需将当前pe、retentiontime、readdisturb参数传入线性公式即可得到当前最佳的读电平,通过该电平访问nandflash,可以极大的降低nandflash数据错误超出硬件模块纠错能力的概率,从而保持对nandflash读取的高速、稳定。

附图说明

图1为对单块nandflash样本或者单块nandflash下的某个block块样本进行测试的流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的说明。

实施例1

由于nandflash硬件特性的原因,存储在nandflash中的数据会发生数据反转,但是选取合适的读电平能够降低数据反转的概率。本实施例针对当前应用比较多的tlc类型nandflash,每次读操作的效果由a、b、c、d、e、f、g七个读电平决定。

存储在nandflash上的数据稳定性主要受到pe、retentiontime和readdisturb三种因素的影响。pe是指nandflash块的磨损次数,一般是磨损的次数越大,数据越不稳定。retentiontime是指从数据写入nandflash开始,到第一次读取数据的时间长度。retentiontime需要换算到同一温度进行比较,比如数据写入nandflash之后,在40℃放置了48小时,在70℃放置了6个小时,那么在进行计算时,可以把时间都换算到40℃,也可以换算到70℃,通过现在常用的换算方法即可。readdisturb特性是指数据写入nandflash之后,位于同一块(block)的其他数据被读取时,当前数据的稳定性会受到影响,因此要记录nandflash块的读操作次数。最佳nandflash读电平的选取,必须要同时考虑pe、retentiontime、readdisturb三种因素。

确定要考虑的三种因素后,选择最佳nandflash读操作水平的方法包括以下步骤:

s01)、对多个或者单个nandflash进行批量测试,得到pe、retentiontime、readdisturb处于不同阶段时对应的最佳读电平的值,并进行记录。对多个或者单个nandflash进行批量测试的方法为:取同一批次的多块nandflash或者单块nandflash的多个block块作为样本,使多块nandflash或者单块nandflash样本下的多个block块处于不同的pe、retentiontime、readdisturb的状态下,利用nandflash厂商提供的命令依次遍历所有可取的读电平,分别找到pe、retentiontime、readdisturb处于不同阶段时a、b、c、d、e、f、g的当前最优值并进行记录,出错率最低的读电平为最佳读电平;

创建读操作电平特性数据统计样表,记录pe、retentiontime、readdisturb处于不同阶段时,对应的最佳读电平特性;

表1最佳nandflash读操作电平特性数据统计样表

s02)、将批量测试得到的数据输入机器学习的线性回归模型,得出最佳读电平与pe、retentiontime、readdisturb之间的线性函数;

a、b、c、d、e、f、g七个电平与pe、retentiontime、readdisturb的线性函数为:

optimal_a=fa(pe,retention_time,read_disturb),

optimal_b=fb(pe,retention_time,read_disturb),

optimal_c=fc(pe,retention_time,read_disturb),

optimal_d=fd(pe,retention_time,read_disturb),

optimal_e=fe(pe,retention_time,read_disturb),

optimal_f=ff(pe,retention_time,read_disturb),

optimal_g=fg(pe,retention_time,read_disturb),

s03)、通过以上的七个线性函数,nandflash读操作之前可以获取当前状态最佳的读电平,用户在对nandflash进行读操作之前,将当前pe、retentiontime、readdisturb参数传入步骤s02得到的线性函数,从而得到当前最佳的读电平,从而使nandflash数据的错误率维持在较低水平,避免了由于错误率太高而导致的读性能大幅下降。

如图1所示,对单块nandflash样本或者单块nandflash下的某个block块样本进行测试的步骤为:s11)、对nandflash执行x次磨损;s12)、向nandflash写入数据;s13)、将nandflash在某一温度下放置y小时;s14)、对nandflash执行z次块读取;s15)、依次调节读电平,读取nandflash数据,选择出错率最低的读电平;x≤10000,y≤3个月,z≤1000000。

不同nandflash样本执行步骤s13时,将retentiontime换算到同一温度下比较。

传统的nandflash访问方法中,每次对nandflash的读操作都首先使用默认的读电平。默认的读电平获取数据错误过多并且超出硬件纠错模块的纠错能力时,用户需要调节读电平并重新执行一次或多次读操作重新获取数据。这种方法会导致nandflash的读操作访问性能大幅降低。

通过本专利所阐述的方法,用户在对nandflash进行读操作之前,只需将当前pe、retentiontime、readdisturb参数传入线性公式即可得到当前最佳的读电平,通过该电平访问nandflash,可以极大的降低nandflash数据错误超出硬件模块纠错能力的概率,从而保持对nandflash读取的高速、稳定。

以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1