一种数据存储方法及存储器技术

技术编号:20448125 阅读:30 留言:0更新日期:2019-02-27 02:40
本发明专利技术提供了一种数据存储方法及存储器,方法包括:建立ECC表格,记录数据来源页的第一ECC值以及数据目标页的第二ECC值;更新ECC表格;加载ECC表格,检测第一ECC值是否超过第一预设阈值;如果第一ECC值超过第一预设阈值,则采用ECC模块对数据来源页进行纠错;如果第一ECC值没有超过第一预设阈值,则检测第二ECC值是否超过第二预设阈值;如果第二ECC值超过第二预设阈值,则采用ECC模块对数据来源页进行纠错;如果第二ECC值没有超过第二预设阈值,则采用copyback模式拷贝数据;该方法能够降低因copyback功能引起错误bit超出ECC纠错范围,降低数据出错的风险。

A Data Storage Method and Memory

The invention provides a data storage method and a memory, which includes: establishing an ECC table, recording the first ECC value of the data source page and the second ECC value of the data target page; updating the ECC table; loading the ECC table to detect whether the first ECC value exceeds the first preset threshold; and correcting the data source page with the ECC module if the first ECC value exceeds the first preset threshold; If the first ECC value does not exceed the first preset threshold, the second ECC value is detected to exceed the second preset threshold; if the second ECC value exceeds the second preset threshold, the ECC module is used to correct the data source page; if the second ECC value does not exceed the second preset threshold, the copyback mode is used to copy the data; this method can reduce the error exceeding caused by the copyback function. ECC error correction range, reduce the risk of data errors.

【技术实现步骤摘要】
一种数据存储方法及存储器
本专利技术涉及数据存储
,尤其涉及一种数据存储方法及存储器。
技术介绍
现有的NandFlash存储器,一般先将数据采用SLC写入NAND模块中,待SLC的空块用到一定程度后再使用copyback功能将SLC中的数据快速拷贝到MLC块或者TLC块中,因为单纯使用SLC的话会导致容量减少(MLC减少一半,TLC减少三分之二),采用copyback功能是为了提高速度,因为数据不需要传输到外部,只是在NandFlash内部数据搬移。现在通常采用降低MLC/TLC的ECC来保证数据准确,例如ECC硬件模块可以纠错60bit,在扫描的时候SLC的错误bit数为10bit,MLC/TLC中错误bit数超过20bit则代表数据出错,后续不再使用,但是这些块其实是可以保留使用的,10+20=30<60,小于ECC硬件纠错范围内,为了给后续留有30bit出错点的余量。现有的NandFlash的设计原理上存在缺陷,数据需要ECC硬件模块纠错,ECC硬件模块纠错是需要将数据从Nand中读出来,经过ECC硬件模块运算后才可以纠错,但是copyback整个过程是在NandFlash内部进行的,这样会导致SLC中的错误bit并没有被纠错就写入了MLC/TLC中,例如flash开始保留了30bit的余量,但是随着SLC与TLC的擦写次数增加,两个块的错误bit都会升高,假如SLC错误bit为15,TLC错误bit为50,一旦使用copyback命令拷贝数据的话,最终的错误bit为15+50=65>60(ECC硬件纠错最大值),导致数据出错。专
技术实现思路
本专利技术的目的在于针对上述现有技术中的NandFlash的设计原理缺陷,数据出错率高的问题,提出一种数据存储方法及存储器,能够有效降低数据出错的风向。一种数据存储方法,包括:建立ECC表格,记录数据来源页的第一ECC值,以及数据目标页的第二ECC值;更新所述ECC表格;加载所述ECC表格,检测所述第一ECC值是否超过第一预设阈值;如果所述第一ECC值超过所述第一预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第一ECC值没有超过第一预设阈值,则检测第二ECC值是否超过第二预设阈值;如果所述第二ECC值超过所述第二预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第二ECC值没有超过所述第二预设阈值,则采用copyback模式拷贝数据。进一步地,更新所述ECC表格包括第一ECC值的更新和第二ECC值的更新;空闲时扫描所述数据来源页进行第一ECC值的更新;正常读取数据时扫描所述数据目标页进行第二ECC值的更新。进一步地,所述第一预设阈值为5bit-15bit。进一步地,所述第二预设阈值为15bit-25bit。进一步地,采用ECC模块对所述数据来源页进行纠错,包括:生成读取命令;根据所述读取命令,ECC模块从所述数据来源页中读取数据进行纠错;纠错完成后生成写入命令;ECC模块根据所述写入命令将纠错后的数据写入数据来源页中。进一步地,如果所述第二ECC值没有超过所述第二预设阈值,则检测所述第一ECC值与第二ECC值之和是否超过第三预设阈值;如果所述第一ECC值与第二ECC值之和超过第三预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第一ECC值与第二ECC值之和没有超过第三预设阈值,则采用copyback模式拷贝数据。进一步地,所述第三预设阈值为20bit-40bit。进一步地,采用copyback模式拷贝数据,包括:检测数据来源页中的数据数量是否达到预设数量;如果是,则将数据来源页中的数据拷贝至所述数据目标页中,并释放所述数据来源页。一种存储器,包括主控芯片、NAND模块以及ECC模块,所述NAND模块包括数据来源页和数据目标页;所述主控芯片用于执行:建立ECC表格,记录数据来源页的第一ECC值以及数据目标页的第二ECC值;更新所述ECC表格;加载所述ECC表格,检测所述第一ECC值是否超过第一预设阈值;如果所述第一ECC值超过所述第一预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第一ECC值没有超过第一预设阈值,则检测第二ECC值是否超过第二预设阈值;如果所述第二ECC值超过所述第二预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第二ECC值没有超过所述第二预设阈值,则采用copyback模式拷贝数据。进一步地,所述数据来源页为SLC块、TLC块或者MLC块;所述数据目标页为TLC块或者MLC块。本专利技术提供的数据存储方法及存储器,至少包括如下有益效果:(1)降低因copyback功能引起错误bit超出ECC纠错范围,降低数据出错的风险;(2)通过ECC表格的记录,可以预测NANDFLASH寿命,避免关键性数据写入高ECC值的块,提高系统的稳定性;(3)增加对第一ECC值与第二ECC值之和是否超过第三预设阈值的判断,可以有效的防止边界情况,进一步降低数据出错的风险。附图说明图1为本专利技术提供的数据存储方法一种实施例的流程图。图2为本专利技术提供的数据存储方法另一种实施例的流程图。图3为本专利技术提供的存储器一种实施例的结构示意图。具体实施方式为使本专利技术的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。实施例一参考图1,本实施例提供一种数据存储方法,包括:步骤S101,建立ECC表格,记录数据来源页的第一ECC值以及数据目标页的第二ECC值;步骤S102,更新所述ECC表格;步骤S103,加载所述ECC表格,检测所述第一ECC值是否超过第一预设阈值;步骤S104,如果所述第一ECC值超过所述第一预设阈值,则采用ECC模块对所述数据来源页进行纠错;步骤S105,如果所述第一ECC值没有超过第一预设阈值,则检测第二ECC值是否超过第二预设阈值;步骤S106,如果所述第二ECC值超过所述第二预设阈值,则采用ECC模块对所述数据来源页进行纠错;步骤S107,如果所述第二ECC值没有超过所述第二预设阈值,则采用copyback模式拷贝数据。ECC(ErrorCorrectingCode,错误检查和纠正),是一种能够实现“错误检查和纠正”的技术。进一步地,执行步骤S101,在存储器出厂时建立ECC表格,通过扫描存储器每个页的数据来源页的第一ECC值,以及数据目标页的第二ECC值,并保存至存储器中。进一步地,执行步骤S102,更新所述ECC表格包括第一ECC值的更新和第二ECC值的更新;空闲时扫描所述数据来源页进行第一ECC值的更新;正常读取数据时扫描所述数据目标页进行第二ECC值的更新。数据来源页用来临时保存数据,块数少,重复利用率高,擦除读写频繁,但是随着擦除次数的增加,其ECC值会发生变化,因此需要重点关注其ECC值,空闲时进行扫描。数据目标页用来长期保存数据,块数多,因此数据目标页的扫描是在正常读取数据时进行,不会在空闲时候扫描。进一步地,执行步骤S103,上电后加载ECC表格,检测第一ECC值是否超过第一预设阈值,作为一种优选的实施方式,第一预设阈值为5bit-15bit。进一步地,执行步骤本文档来自技高网
...

【技术保护点】
1.一种数据存储方法,其特征在于,包括:建立ECC表格,记录数据来源页的第一ECC值以及数据目标页的第二ECC值;更新所述ECC表格;加载所述ECC表格,检测所述第一ECC值是否超过第一预设阈值;如果所述第一ECC值超过所述第一预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第一ECC值没有超过第一预设阈值,则检测第二ECC值是否超过第二预设阈值;如果所述第二ECC值超过所述第二预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第二ECC值没有超过所述第二预设阈值,则采用copyback模式拷贝数据。

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:建立ECC表格,记录数据来源页的第一ECC值以及数据目标页的第二ECC值;更新所述ECC表格;加载所述ECC表格,检测所述第一ECC值是否超过第一预设阈值;如果所述第一ECC值超过所述第一预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第一ECC值没有超过第一预设阈值,则检测第二ECC值是否超过第二预设阈值;如果所述第二ECC值超过所述第二预设阈值,则采用ECC模块对所述数据来源页进行纠错;如果所述第二ECC值没有超过所述第二预设阈值,则采用copyback模式拷贝数据。2.根据权利要求1所述的数据存储方法,其特征在于,更新所述ECC表格包括第一ECC值的更新和第二ECC值的更新;空闲时扫描所述数据来源页进行第一ECC值的更新;正常读取数据时扫描所述数据目标页进行第二ECC值的更新。3.根据权利要求1所述的数据存储方法,其特征在于,所述第一预设阈值为5bit-15bit。4.根据权利要求3所述的数据存储方法,其特征在于,所述第二预设阈值为15bit-25bit。5.根据权利要求1所述的数据存储方法,其特征在于,采用ECC模块对所述数据来源页进行纠错,包括:生成读取命令;根据所述读取命令,ECC模块从所述数据来源页中读取数据进行纠错;纠错完成后生成写入命令;ECC模块根据所述写入命令将纠错后的数据写入数据来源页中。6.根据权利要求5所述的数据存储方法,其特征在于,如果所述第二ECC值没有超过所述第二预设阈值,则检测所述第一ECC...

【专利技术属性】
技术研发人员:李虎罗胜
申请(专利权)人:深圳市德名利电子有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1