1.一种用于闪存的数据恢复方法,包括:
采用预设读电压从所述闪存中读取数据;
计算所述数据对应的校验节点出错率;
根据所述校验节点出错率,计算读电压调整步长;
根据所述读电压调整步长调整所述预设读电压,采用调整后的预设读电压从所述闪存中读取数据,并重复所述计算所述数据对应的校验节点出错率的操作至所述根据所述读电压调整步长调整所述预设读电压的操作,直至所述校验节点出错率最小;
选择最小的校验节点出错率对应的读电压从所述闪存中读取数据,以进行数据恢复。
2.根据权利要求1所述的用于闪存的数据恢复方法,所述方法还包括:
判断当前所述校验节点出错率是否小于预设阈值;
若是,停止所述根据所述读电压调整步长调整所述预设读电压,采用调整后的预设读电压从所述闪存中读取数据的操作,以当前读取的数据进行数据恢复。
3.根据权利要求1所述的用于闪存的数据恢复方法,所述方法还包括:
判断当前所述校验节点出错率是否大于上一次所述校验节点出错率,
若是,停止所述根据所述读电压调整步长调整所述预设读电压,采用调整后的预设读电压从所述闪存中读取数据的操作,以上一次读取的数据进行数据恢复。
4.根据权利要求1-3任一项所述的用于闪存的数据恢复方法,其中,所述计算所述数据对应的校验节点出错率包括:
根据公式:
rc=sum(h·dk)/m
计算所述校验节点出错率,其中,rc为所述校验节点出错率,h为奇偶校验矩阵,dk为读出的一个码字的数据,m为校验节点的数量。
5.根据权利要求1-3任一项所述的用于闪存的数据恢复方法,其中,所述根据所述校验节点出错率,计算读电压调整步长包括:
基于所述闪存的阈值电压分布态,建立所述校验节点出错率与所述误码率的函数关系以及所述误码率与所述读电压调整步长的函数关系;
根据所述校验节点出错率与所述误码率的函数关系、所述误码率与所述读电压调整步长的函数关系,建立所述校验节点出错率与所述读电压调整步长的函数关系;
根据所述校验节点出错率与所述读电压调整步长的函数关系,计算所述读电压调整步长。
6.根据权利要求5所述的用于闪存的数据恢复方法,其中,所述建立所述校验节点出错率与所述误码率的函数关系以及所述误码率与所述读电压调整步长的函数关系包括:
计算所述预设读电压对应的误码率,所述计算所述预设读电压对应的误码率包括:根据公式:
计算所述误码率,其中,pe为误码率,i为阈值电压分布态的序号,
7.根据权利要求6所述的用于闪存的数据恢复方法,其中,所述第i个预设读电压与第i个最佳读电压存在以下关系:
其中,
所述第i个最佳读电压通过下式计算:
其中,μi为第i个阈值电压分布态的均值,σi为第i个阈值电压分布态的方差,μi-1为第i-1个阈值电压分布态的均值,σi-1为第i-1个阈值电压分布态的方差。
8.根据权利要求5所述的用于闪存的数据恢复方法,其中,所述方法还包括:
将所述校验节点出错率与所述读电压调整步长的函数关系来量化为查找表,通过查找所述查找表得到所述读电压调整步长。
9.根据权利要求7所述的用于闪存的数据恢复方法,其中,所述方法还包括:
建立第i个预设读电压与所述第i个最佳读电压之间的读电压调整步长和第j个预设读电压与所述第j个最佳读电压之间的读电压调整步长之间的函数关系;
基于函数关系,根据第i个预设读电压与所述第i个最佳读电压之间的读电压调整步长来计算第j个预设读电压与所述第j个最佳读电压之间的读电压调整步长。
10.根据权利要求1-3任一项所述的用于闪存的数据恢复方法,其中,选择最小的校验节点出错率对应的读电压从所述闪存中读取数据,以进行数据恢复包括:
采用差错控制编码对读取的数据进行数据恢复。