本发明涉及固态存储领域。
背景技术:
目前的固态存储以mlc(multi-levelcell)/tlc(triple-levelcell)型nandflash存储芯片为主,其错误率明显要高于现有的slc(singlelevelcell)芯片;这是由于mlc/tlc型闪存的每个存储单元中存储了多位1bit数据,使存储单元对于每个状态分配的电压减少,增大了存储单元中不同状态的阈值电压分布重合的概率;nandflash发生位翻转错误的本质就是,参考电压对阈值电压状态的判断错误;并且在nandflash使用过程中,阈值电压会因为读干扰、编程干扰、编程/擦除(program/erase,p/e)磨损、驻留放电等因素发生偏移,并且每个状态的阈值电压分布会逐渐变宽,使相邻状态的阈值电压重叠加剧,导致闪存错误率上升。因此,如何能正确测量nandflash不同状态下的阈值电压分布是研究其可靠性的关键。
固态硬盘(solidstatedrives,ssds)具有读写速度快、功耗低、抗震性强等优点,ssds的优良特性使其逐渐取代现有的机械式旋转磁盘,目前已经广泛应用于嵌入式和消费电子等移动存储设备,以及大型数据服务器领域;为提高ssds的存储容量和降低其单位存储成本,nandflash逐渐从单层单元slc发展到多层单元mlc。在相同体积下,mlc/tlc临近状态的阈值电压间距会明显变小。因此nandflash芯片生产工艺的提高带来高性价比的同时,不可避免地带来了nandflash存储可靠性的降低。若想提高mlc/tlcnandflash可靠性,必须掌握其阈值电压分布规律,然而其阈值电压由浮栅结构锁存的电子数目决定,无法直接进行测量,只能通过nandflash读操作来间接测量。
技术实现要素:
本发明的目的是为了解决由于nandflash的阈值电压只能通过nandflash读操作来间接测量而导致其可靠性差的问题,本发明提出了一种面向tlc型nandflash的阈值电压获取方法。
本发明所述的一种面向tlc型nandflash的阈值电压获取方法通过以下步骤实现的:
步骤一、将指定数据写入闪存;
步骤二、对nandflash执行read-offset操作获得位翻转数据;
步骤三、对位翻转数据进行处理和拟合,最终获得阈值电压分布模型。
本发明的有益效果是利用nandflash中开放的read-offset功能,通过控制其读参考电压偏移的方法,找到参考电压和阈值电压分布的关系,间接测量出nandflash阈值电压分布;通过对不同状态的nandflash阈值电压分布测试,还可以找到其读干扰、编程干扰、驻留偏移、p/e磨损规律;可以用来预测nandflash使用寿命,也可以为ecc(errorcorrectioncode)强度匹配提供数据支撑,从而提高ssds的读写性能。本发明提供的一种面向tlc型nandflash的阈值电压获取方法使用户能够间接测试出nandflash阈值电压分布该方法通用能力强,不仅适用于tlc型nandflash,同时也适用于mlc型nandflash。
附图说明
图1为具体实施方式一所述的一种面向tlc型nandflash的阈值电压获取方法的流程图;
图2为具体实施方式三中第一种模式的指定数据写入闪存过程的流程图;
图3为具体实施方式四中第一种模式的指定数据写入闪存过程的流程图;
图4为具体实施方式五中tlc型nandflash绘制vref-翻转位数曲线流程图;
图5为具体实施方式五中参考电压-翻转位数曲线图,其中横坐标为参考电压,纵坐标为翻转位数;
图6为具体实施方式六中对位翻转数据进行处理和拟合,最终获得阈值电压分布模型的具体过程的流程图;
图7为具体实施方式六中单状态阈值电压散点拟合曲线图;
图8为具体实施方式六中tlc型nandflash阈值电压分布概念图;
图9为具体实施方式六中多状态阈值电压散点拟合曲线图。
具体实施方式
具体实施方式一:结合图1说明本实施方式,本实施方式所述的一种面向tlc型nandflash的阈值电压获取方法,该阈值电压获取方法通过以下步骤实现的:
步骤一、将指定数据写入闪存;
步骤二、对nandflash执行read-offset操作获得位翻转数据;read-offset操作为读出偏移量操作;
步骤三、对位翻转数据进行处理和拟合,最终获得阈值电压分布模型。
具体实施方式二:本实施方式是对具体实施方式一所述的一种面向tlc型nandflash的阈值电压获取方法进一步限定,在本实施方式中,步骤一中将指定数据写入闪存分为两种模式:
第一种模式为:将伪随机序列顺序写入nandflash,伪随机序列通过把调用特定的随机函数生成;
第二种模式为:按nandflash共享页写入指定数据,例如将nandflash所有共享页分成8组,依次写入000、001、010……111,共计8组数据。
在本实施方式中,第一种模式的指定数据写入闪存过程与第二种模式的指定数据写入闪存过程都是为了保证nandflash的存储单元中所有阈值电压状态均匀分布,即编程后所有存储单元000、001、010……、111,8个状态数量相等。
具体实施方式三:结合图2说明本实施方式,本实施方式是对具体实施方式二所述的一种面向tlc型nandflash的阈值电压获取方法进一步限定,在本实施方式中,第一种模式的指定数据写入闪存过程包括以下步骤:
步骤1、选定随机种子写入随机函数,生成m个随机数;其中,m为被测试nandflash页数;
步骤2、将m个随机数作为随机种子代入同一个随机函数,生成m*n个二进制数;其中,n为每页被测试nandflash页的数据个数;
步骤3、将m*n个二进制数作为指定数据按顺序写入nandflash中的一个块内;
步骤4、将m*n个二进制数作为指定数据按顺序重复写入其他nandflash块内。
具体实施方式四:结合图3说明本实施方式,本实施方式是对具体实施方式二所述的一种面向tlc型nandflash的阈值电压获取方法进一步限定,在本实施方式中,第二种模式的指定数据写入闪存过程包括以下步骤:
步骤ⅰ、对nandflash块内的页按共享页平分为两组;
步骤ⅱ、将前一组的lowerpage全写入0,将后一组的lowerpage全写入1;
步骤ⅲ、将这两组共享页每组再平分为四组,构成八组共享页;
步骤ⅳ、将前四组和后四组的upperpage和extrapage分别写入00、01、10、11。
具体实施方式五:结合图4和图5说明本实施方式,本实施方式是对具体实施方式一所述的一种面向tlc型nandflash的阈值电压获取方法进一步限定,在本实施方式中,步骤二中对nandflash执行read-offset操作获得位翻转数据的具体方法为:对nandflash进行read-offset操作,控制读参考电压定向、定量移动,记录随着参考电压偏移nandflash发生位翻转的数目,所述位翻转的数目即为位翻转数据。
在本实施方式中,通过对nandflash进行read-offset操作,控制读参考电压定向、定量移动;记录随着参考电压偏移nandflash发生位翻转的数目,并绘制曲线。
tlcnandflash每个胞元有7个读参考电压将胞元分为8个状态。绘制胞元阈值电压分布曲线,首先选中一个读参考电压作为偏移对象,将参考电压偏移量记为vref,vref初始值为0mv。之后将被选中的参考电压从最小值按照步进电压,逐渐增加到最大值(对于不同nandflash,其参考电压的正负偏移量极值、步进长度不同)。在参考电压逐渐增大的同时,记录闪存块内位翻转个数,这样就能绘制出横轴为参考电压增加量,纵轴为nandflash位翻转数量的关系曲线。之后使用同样的方法,选择余下的读参考电压,就可以绘制出其他状态的关系曲线。以tlc型nandflash为例,其绘制vref-翻转位数流程图如图4所示。统计nandflash块内位翻转的数目时,只统计被迫害页即参考电压相邻状态对应的共享页的位翻转个数,以减少计算量同时可以排除掉其他因素影响导致的位翻转数量变化。
按照图4流程,分别选中其中两条参考电压,就可以绘制出如图5所示的偏移-位翻转关系曲线。当nandflash阈值电压在读参考电压右侧时,控制读参考电压向左偏移,不会明显改变位翻转个数,但是当参考电压向右偏移即逐渐增大都参考电压时,部分nandflash胞元阈值电压就从大于读参考电压的状态变为小于读参考电压的状态,从而nandflash就会发生位翻转,其数量随着读参考电压偏移量增大而逐渐增大,直到达到最大值(一个nandflash块内总位数);当nandflash胞元阈值电压在读参考电压左侧时,控制读参考电压向左偏移即逐渐减小读参考电压,就会使部分nandflash胞元阈值电压就从小于读参考电压的状态变为大于读参考电压的状态,从而nandflash就会发生位翻转,其数量随着读参考电压偏移量增大而逐渐增大,直到达到最大值,但是控制都参考电压向右移动时,不会改变位翻转个数。
具体实施方式六:结合图6至图9说明本实施方式,本实施方式是对具体实施方式一所述的一种面向tlc型nandflash的阈值电压获取方法进一步限定,在本实施方式中,步骤三中对位翻转数据进行处理和拟合,最终获得阈值电压分布模型的具体过程为:
过程一、对步骤二中翻转的数目求差,取翻转增量;翻转增量的获取方法为:用读参考电压在n+1位置的位翻转个数与读参考电压在n位置的位翻转个数做差;用公式的形式表示为:dn=an+1-an,其中,dn为翻转增量,an+1为读参考电压在n+1位置的位翻转个数,an为读参考电压在n位置的位翻转个数;
过程二、使用概率密度分布模型对翻转增量阈值电压进行拟合得到概率密度分布函数;
过程三、对过程二中得到的概率密度分布函数求积分的到阈值电压概率分布函数;
过程四、将步骤一中写入闪存的指定数据代入过程三得到的阈值电压概率分布函数,求得匹配系数;
过程五、重复过程一至过程四,得到所有状态的阈值电压分布,并记录相邻状态期望差;
过程六、按照过程五得到的相邻状态期望差合并阈值电压模型。
在本实施方式中,dn标识为翻转增量即每个读参考电压偏移步进带来的位翻转数增加量,当步进量较小时,可以看作原曲线的微分过程。通过这个方法,绘制出dn-vref曲线。之后我们需要将离散点进行拟合,这一步我们需要找到合适的概率密度函数模型。我们使用了多种模型包括t分布、拉普拉斯分布、一阶高斯分布和二阶高斯分布与实测数据进行匹配。匹配方法是将实测数据代入选用的模型,计算其方差大小。图7为二阶高斯模型拟合出的概率密度曲线。使用相同的模型将nandflash所有状态阈值电压的分布曲线拟合,之后需要将这些分布曲线进行合并。移动一个参考电压可以确定这个参考电压左右两个状态的阈值电压曲线,以tlc型nandflash为例,如图7所示。控制vb向左移动可以绘制出p1状态的阈值电压分布,控制vb向右移动可以绘制出p2状态的阈值电压分布;同理控制读参考电压vc左右偏移,就可以绘制出p2和p3两个状态阈值电压分布模型。下一步将vb和vc得出的p2进行合并,就实现了p1、p2、p3三个阈值电压分布的合并,以此类推实现tlc型nandflash所有阈值电压分布的合并。阈值电压合并图如图9所示。