一种SSD中在线校准NANDFlash读参考电压的方法与流程

文档序号:19179130发布日期:2019-11-20 00:49阅读:1048来源:国知局
一种SSD中在线校准NAND Flash读参考电压的方法与流程

本发明涉及一种nandflash读参考电压的校准方法,具体是在一种ssd中在线校准nandflash读参考电压的方法,属于存储器技术领域。



背景技术:

目前ssd通常使用nandflash做为存储介质,然而nandflash本身的物理结构特点决定了它带有天然的不稳定性。在nandflash读取过程中有概率会发生数据错误,并且随着nandflash工艺和类型的发展,错误的概率呈现上升趋势,所以如今nandflash需要的ecc算法的纠错能力越来越强。但是ecc算法已经是一种成熟的算法并且ssd中ecc算法几乎全部为硬件实现,通过改进ecc算法降低nandflash出错概率的空间较小。

读参考电压也是影响nandflash出错概率的一个因素,读参考电压是在nandflash读取过程中施加在nandflashcell的controlgate上的一个判断当前cell是否导通的电压。若读参考电压不合适,也会影响数据发生错误的概率。nandflash特性决定了一个读参考电压在nandflash生命周期的不同阶段并非一直适用。



技术实现要素:

本发明要解决的技术问题是提供一种ssd中在线校准nandflash读参考电压的方法,利用偏移读取可以调整参考电压的特性,通过使用一种多次调整参考电压偏移读取的方法获得当前page读取时最佳的参考电压,用于后续该page的读取操作,减少数据发生错误概率。

为了解决所述技术问题,本发明采用的技术方案是:一种ssd中在线校准nandflash读参考电压的方法,包括以下步骤:s01)、将nandflash某一block的所有字线分为m组,然后从每个字线组选取n个字线进行校准电压采样,m、n为大于1的正整数;s02)、分别选取选中字线对应的lowerpage、middlepage、upperpage,从ddr中获取当前page对应的参考电压vref,然后以vref所在地址d(vref)为基点依次进行偏移读取,偏移间隔设为doffset;s03)、对每次偏移读取的数据都进行ecc校验,记录每次偏移读取的校验错误率e(n);s04)、比较记录的所有e(n),找出最小值和最小值对应的偏移量,将最小e(n)对应的d(vref)+doffset(n)保存到ddr中对应位置,doffset(n)为偏移间隔与偏移次数的乘积。

考虑到大量使用偏移读取会严重影响ssd性能,在进行步骤s02之前,将偏移读取的次数设置为i次,如果i次读取的数据ecc校验都通过,则选取i次中校验错误率最小的值作为新的参考电压记录到ddr中对应位置;如果i次中出现ecc校验失败,记录失败的电压偏移,然后向该偏移的反方向重新读取i次,如果i次ecc校验都成功,选取i次中校验错误率最小的值记录到ddr中,如果反向读取中出现ecc校验错误,则将该block数据搬移到新的block。

进一步的,i=5。

进一步的,m=4,n=4。

进一步的,doffset=2。

进一步的,进行步骤s01之前,进行校准电压的block已经写满数据。

本发明的有益效果:本方法充分考虑nandflash特性,利用偏移读取的方法,通过在线扫描nandflash参考电压,在不影响数据内容的前提下,提升了数据的稳定性。本方法考虑到在线校准对ssd性能的影响,设置偏移读取的次数,在读取次数达到设置值仍存在校验错误时,将该block数据搬移到新的block。

附图说明

图1为读取正确时电压偏移顺序图;

图2为读取错误时电压偏移顺序图;

图3为实施例1的流程图。

具体实施方式

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

实施例1

nandflashread操作可以划分为正常读取(normalread)和偏移读取(shiftread)两种方式,normalread只需要发送read命令即可;shiftread需要在发送read命令前通过setfeature命令设置本次读的参考电压参数。参考电压参数代表的就是当前读取page使用的readvref,不同参数对应不同vref。本方法利用shiftread可以调整参考电压的特性,通过使用一种多次调整参考电压shiftread的方法获得当前page读取时最佳的参考电压,用于后续该page的读取操作,减少数据发生错误概率。

本实施例以包含256个wordline的2-3-2编码3dtlc为例进行说明。

由于nandflash特性表现以block为单位,所以所有的block使用同一种校准nandflash读参考电压的方法。本方法包括以下步骤:

s01)、将所有wl平均分成4组处理,分组数值可以根据实际情况扩大或者缩小。从最优参数角度考虑,记录每个wl(字线)的参考电压参数是最准确的,但是这会带来巨大的ddr占用,将所有wl分均分成4组是均衡后的结果。

s02)、选取第一个wl组wlgroup0,为了保证采样的准确度并且减少校准过程耗时,每个wl组选取4个wl进行校准电压采样,这4个wl的选取为该组第一个wlfirst、最后一个wllast以及中间随机两个wl;

s03)、分别读取选中wl对应的lowerpage、middlepage、upperpage,此处使用的3dnandflash的lowerpage对应2个vref,middlepage对应3个vref,upperpage对应3个vref,故vrefmax=2或3,每种page读取时都是使用shiftread方式,首先获取当前page对应的参考电压vref,然后以当前参考电压所在地址d(vref)为基点进行偏移读取,参考电压参数偏移量doffset(n)以2为间隔,依次为0、+2、-2、+4、-4、+6、-6、+8、-8、+10、-10、…,根据上述的顺序循环完成所有wl组的读取过程;

s04)、对每次偏移读取的数据都进行ecc校验,记录每次偏移读取的校验错误率e(n);

s05)、比较记录的所有e(n),找出最小值和最小值对应的偏移量,将最小e(n)对应的d(vref)+doffset(n)保存到ddr中对应位置,doffset(n)为偏移间隔与偏移次数的乘积。

考虑到校准过程中大量使用shiftread会严重影响ssd性能,我们采用一种方案:开始校准时设置最大shiftread次数为5次,即前5次电压偏移(0、+2、-2、+4、-4),如果5次读取的数据ecc校验都通过,则选取5次中errorbits最小的值作为新的参考电压记录到ddr对应位置。如果5次中出现ecc校验失败,记录失败的电压偏移,然后向该偏移的反方向重新读取5次,如果5次ecc校验都成功,选取这e(n)中errorbits最小的值记录到ddr中。如果反向读取中出现ecc校验错误,则将该block数据搬移到新的block。读取顺序参考下图1、图2。

本方法实现的具体流程参考图3。

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

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