一种闪存芯片中块读取与页读取换算关系测试方法及系统与流程

文档序号:23260669发布日期:2020-12-11 18:49阅读:169来源:国知局
一种闪存芯片中块读取与页读取换算关系测试方法及系统与流程

本发明涉及服务器存储技术领域,特别是一种闪存芯片中块读取与页读取换算关系测试方法及系统。



背景技术:

闪存芯片作为存储器件有很多优点,比如容量大、读写速度快、价格相对低廉等,在一些嵌入式产品、u盘、特别是ssd中得到大量应用。但是闪存芯片具有读干扰的特性,即随着块读取的次数增加,ber(biterrorrate,误码率)会升高,当读的次数达到一定值时,会导致ecc校验失败,出现数据失效,此时只能通过其他手段来对数据进行恢复,影响效率。为了减小错误恢复流程的调用次数,在对块读取的次数达到一定值时对数据进行一次搬移以消除干扰的影响。

闪存芯片厂商一般在定义读干扰可靠性时是按照块读取的次数来进行的,但是实际使用时,比如在ssd中,大部分应用场景是页读取,即很少会一次读取一个块的数据。所以就存在页读取次数到块读取次数的转换,从而判断是否达到数据搬移的门限值。

目前较为简单的做法是将块读取与页读取的权重视为相同,比如一个块中有1000个页,则1000次页读取转换为1次块读取,这种计算方式可大约估算出块读取的次数,但是结果准确度低。



技术实现要素:

本发明的目的是提供一种闪存芯片中块读取与页读取换算关系测试方法及系统,旨在解决现有技术中页读取次数与块读取次数转换准确度低的问题,实现提高准确度,减小硬解失败的概率。

为达到上述技术目的,本发明提供了一种闪存芯片中块读取与页读取换算关系测试方法,所述方法包括以下操作:

s1、写入随机数得到测试样本块,对测试样本块进行m次块读取,记录ber信息,保存文件为块读取误码率文件;

s2、确定测试起点数值、测试终点数值以及测试步长数值,在块中n个页中随机选取页,进行次数等于测试起点数值的页读取,记录ber信息并保存为一个页读取误码率文件;

s3、随机选取页,进行次数等于测试步长数值的页读取,记录ber信息并保存为一个页读取误码率文件;重复执行该步骤次;

s4、分析块读取误码率文件以及多个页读取误码率文件,设置误码率门限值,计算出块读取误码率文件中误码率大于门限值的数量以及所占比率p_br,作为参考值;计算每个页读取误码率文件中误码率大于门限值的数量以及所占比率p_pr_num,当p_br与p_pr_num的差值最小时,记录该页读取误码率文件下的页读取次数pr_num_similar;

s5、计算当前擦写次数下块读取与页读取的换算系数。

优选地,所述测试起点为0.5*m*n,所述测试终点为2*m*n,所述测试步长为10*n。

优选地,在所述页读取之前,需对测试样本块进行擦写一次,消除读干扰。

优选地,所述换算系数的计算公式为:

本发明还提供了一种闪存芯片中块读取与页读取换算关系测试系统,所述系统包括:

块读取模块,用于写入随机数得到测试样本,对测试样本块进行m次块读取,记录ber信息,保存文件为块读取误码率文件;

页读取模块,用于确定测试起点数值、测试终点数值以及测试步长数值,在块中n个页中随机选取页,进行次数等于测试起点数值的页读取,记录ber信息并保存为一个页读取误码率文件;再次随机选取页,进行次数等于测试步长数值的页读取,记录ber信息并保存为多个页读取误码率文件,重复执行次;

页读取次数获取模块,用于分析块读取误码率文件以及多个页读取误码率文件,设置误码率门限值,计算出块读取误码率文件中误码率大于门限值的数量以及所占比率p_br,作为参考值;计算每个页读取误码率文件中误码率大于门限值的数量以及所占比率p_pr_num,当p_br与p_pr_num的差值最小时,记录该页读取误码率文件下的页读取次数pr_num_similar;

换算模块,用于计算当前擦写次数下块读取与页读取的换算系数。

优选地,所述测试起点为0.5*m*n,所述测试终点为2*m*n,所述测试步长为10*n。

优选地,在所述页读取之前,需对测试样本块进行擦写一次,消除读干扰。

优选地,所述换算系数的计算公式为:

本发明还提供了一种闪存芯片中块读取与页读取换算关系测试设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序,以实现所述的闪存芯片中块读取与页读取换算关系测试方法。

本发明还提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现所述的闪存芯片中块读取与页读取换算关系测试方法。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

与现有技术相比,本发明通过选取测试点,分别进行块读取,记录误码率文件,并对在块中设置测试起点、测试终点以及测试步长,分别进行相应页读取次数的误码率文件记录,在页误码所占比率中找到最接近块误码所占比率时的页读取次数,从而完成块读取次数以及页读取次数的换算,可对处于生命周期不同状态的块计算出块读取与页读取的换算系数,在固件中可更准确的记录某个块、块读取的次数,从而达到门限值时对块中的数据进行搬移,减小硬解失败的概率,提高效率。

附图说明

图1为本发明实施例中所提供的一种闪存芯片中块读取与页读取换算关系测试方法流程图;

图2为本发明实施例中所提供的测试逻辑示意图;

图3为本发明实施例中所提供的一种闪存芯片中块读取与页读取换算关系测试系统框图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

下面结合附图对本发明实施例所提供的一种闪存芯片中块读取与页读取换算关系测试方法及系统进行详细说明。

如图1、2所示,本发明公开了一种闪存芯片中块读取与页读取换算关系测试方法,所述方法包括以下操作:

s1、写入随机数得到测试样本块,对测试样本块进行m次块读取,记录ber信息,保存文件为块读取误码率文件;

s2、确定测试起点数值、测试终点数值以及测试步长数值,在块中n个页中随机选取页,进行次数等于测试起点数值的页读取,记录ber信息并保存为一个页读取误码率文件;

s3、随机选取页,进行次数等于测试步长数值的页读取,记录ber信息并保存为一个页读取误码率文件;重复执行该步骤次;

s4、分析块读取误码率文件以及多个页读取误码率文件,设置误码率门限值,计算出块读取误码率文件中误码率大于门限值的数量以及所占比率p_br,作为参考值;计算每个页读取误码率文件中误码率大于门限值的数量以及所占比率p_pr_num,当p_br与p_pr_num的差值最小时,记录该页读取误码率文件下的页读取次数pr_num_similar;

s5、计算当前擦写次数下块读取与页读取的换算系数。

在测试之前,建立host主机与闪存芯片测试治具之间的链接,闪存芯片测试治具可实现对芯片完成各项操作,比如读、写、擦、ber统计等,host主机中运行测试程序,控制整个测试流程,运行日志的记录,测试数据的生成、下发,操作结果的记录以及对采集到的ber数据进行分析等。

为了使得测试结果满足闪存芯片的整个生命周期,对处于不同生命周期状态的块分别进行测试。

选取测试点,如果块支持3000次pe擦写,则以1000为步长,分别测试pe0、pe1000、pe2000、pe3000时的情况,或划分的更详细,比如步长500,视实际需要决定。

选取完测试点,逐个对测试点进行测试。

选取未使用过的功能正常的块,即pe为0的块,擦写一次,将测试用随机数写入到块中,然后将测试样本块进行m次块读取,m为闪存芯片支持的最大块读取次数,超出此值ber则会升高到ecc出错,使用默认读取方式读取所有测试块,以数据chunk为单位记录ber信息,chunk大小可以为页大小的1/4,即1个页划分为4个chunk,并保存为块读取误码率文件。

对所有测试块擦写一次,消除读干扰的影响,进行页读取ber数据采集,页读取ber数据采集过程如下:

计算出测试终点,如果块中页的个数为n,为了测试数据的全面性,将终点记为2*m*n次页读取;确定测试起点,根据经验以及测试效率将测试起点定为0.5*m*n次页读取;确定测试步长,即测试精度,为了兼顾效率与准确度,选择步长为10*n次页读取,随机选择一部分页,对这些页共读取0.5*m*n次,然后使用默认方式读取所有测试块,记录ber信息,保存文件为页读取误码率文件;保存后,再随机选择一些页,对这些页共读取10*n次,此时累计的次数为0.5*m*n+10*n,然后再使用默认方式读取所有测试块,记录ber信息,保存文件为页读取误码率文件,循环执行该过程,直至页读取次数不小于2*m*n,此时共保存的页读取文件个数为:

分析采集到的块读取误码率文件以及页读取误码率文件,设定ber门限值,分析出块读取误码率文件中误码率大于门限值的chunk数量,计算出块误码所占比率,作为参考值;逐个分析出每个页读取误码率文件中误码率大于门限值的chunk数量,计算出页误码所占比率;在页误码所占比率中找到最接近块误码所占比率的数据,即该比率数据下的页读取次数pr_num_similar与m次块读取最接近,换算系数公式为:

循环执行,直至所有测试点完成测试。

在本发明实施例中,块读取即对块中所有页都读取一次;所述页读取,即对块中的一个页读取一次。

本发明实施例通过选取测试点,分别进行块读取,记录误码率文件,并对在块中设置测试起点、测试终点以及测试步长,分别进行相应页读取次数的误码率文件记录,在页误码所占比率中找到最接近块误码所占比率时的页读取次数,从而完成块读取次数以及页读取次数的换算,可对处于生命周期不同状态的块计算出块读取与页读取的换算系数,在固件中可更准确的记录某个块、块读取的次数,从而达到门限值时对块中的数据进行搬移,减小硬解失败的概率,提高效率。

如图3所示,本发明实施例还公开了一种闪存芯片中块读取与页读取换算关系测试系统,所述系统包括:

块读取模块,用于写入随机数得到测试样本,对测试样本块进行m次块读取,记录ber信息,保存文件为块读取误码率文件;

页读取模块,用于确定测试起点数值、测试终点数值以及测试步长数值,在块中n个页中随机选取页,进行次数等于测试起点数值的页读取,记录ber信息并保存为一个页读取误码率文件;再次随机选取页,进行次数等于测试步长数值的页读取,记录ber信息并保存为多个页读取误码率文件,重复执行次;

页读取次数获取模块,用于分析块读取误码率文件以及多个页读取误码率文件,设置误码率门限值,计算出块读取误码率文件中误码率大于门限值的数量以及所占比率p_br,作为参考值;计算每个页读取误码率文件中误码率大于门限值的数量以及所占比率p_pr_num,当p_br与p_pr_num的差值最小时,记录该页读取误码率文件下的页读取次数pr_num_similar;

换算模块,用于计算当前擦写次数下块读取与页读取的换算系数。

选取测试点,如果块支持3000次pe擦写,则以1000为步长,分别测试pe0、pe1000、pe2000、pe3000时的情况,或划分的更详细,比如步长500,视实际需要决定。

选取完测试点,逐个对测试点进行测试。

选取未使用过的功能正常的块,即pe为0的块,擦写一次,将测试用随机数写入到块中,然后将测试样本块进行m次块读取,m为闪存芯片支持的最大块读取次数,超出此值ber则会升高到ecc出错,使用默认读取方式读取所有测试块,以数据chunk为单位记录ber信息,chunk大小可以为页大小的1/4,即1个页划分为4个chunk,并保存为块读取误码率文件。

对所有测试块擦写一次,消除读干扰的影响,进行页读取ber数据采集,页读取ber数据采集过程如下:

计算出测试终点,如果块中页的个数为n,为了测试数据的全面性,将终点记为2*m*n次页读取;确定测试起点,根据经验以及测试效率将测试起点定为0.5*m*n次页读取;确定测试步长,即测试精度,为了兼顾效率与准确度,选择步长为10*n次页读取,随机选择一部分页,对这些页共读取0.5*m*n次,然后使用默认方式读取所有测试块,记录ber信息,保存文件为页读取误码率文件;保存后,再随机选择一些页,对这些页共读取10*n次,此时累计的次数为0.5*m*n+10*n,然后再使用默认方式读取所有测试块,记录ber信息,保存文件为页读取误码率文件,循环执行该过程,直至页读取次数不小于2*m*n,此时共保存的页读取文件个数为:

分析采集到的块读取误码率文件以及页读取误码率文件,设定ber门限值,分析出块读取误码率文件中误码率大于门限值的chunk数量,计算出块误码所占比率,作为参考值;逐个分析出每个页读取误码率文件中误码率大于门限值的chunk数量,计算出页误码所占比率;在页误码所占比率中找到最接近块误码所占比率的数据,即该比率数据下的页读取次数pr_num_similar与m次块读取最接近,换算系数公式为:

循环执行,直至所有测试点完成测试。

本发明实施例还公开了一种闪存芯片中块读取与页读取换算关系测试设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序,以实现所述的闪存芯片中块读取与页读取换算关系测试方法。

本发明实施例还公开了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现所述的闪存芯片中块读取与页读取换算关系测试方法。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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