自适应的闪存数据重读方法、装置及介质与流程

文档序号:24638827发布日期:2021-04-09 20:50阅读:115来源:国知局
自适应的闪存数据重读方法、装置及介质与流程

本发明涉及计算机领域,具体涉及了一种自适应的闪存数据重读方法、装置及介质。



背景技术:

nandflash(闪存)是现如今广泛使用的存储产片,具有速度快,非易失等优良特性。其内部实际上以存储电荷的形式来表示数据,在实际使用过程中,由于各种内外部条件的变化会导致存储电荷数量的变化,如果这一变化累积到一定程度,以默认的读操作来访问nandflash,很可能无法得到正确的数据。一般来说nandflash的生产厂家会允许用于调整用于判决闪存单元状态的读电压,通过调整读电压来将数据正确的恢复出来,通常这个过程被称为重读。

导致nandflash数据错误bit上升一般有以下原因:读写温度变化,例如在高低温环境的读写行为;dataretention(数据保持),本质上是存储在闪存单元中的电荷随时间慢慢流失;readdisturb(读干扰)。

通常原厂会提供多组重读方法以调整读电压的方式来恢复数据,即轮询方式。当使用默认读电压无法正确恢复数据时,便会进入重读流程。现有重读恢复数据的过程中通常是一组一组的尝试,直到能找到能正确读取数据的那一组重读方法。现有技术的读数据的时间长,读取数据的数据不稳定。



技术实现要素:

本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种自适应的闪存数据重读方法、装置及介质,降低读数据的时间延迟,保障数据读取时速度的稳定性。

本发明的技术方案包括一种自适应的闪存数据重读方法,其特征在于,该方法包括:s100,闪存设备执行默认读取失败时,从记录表中获取对应的重读组编号,或者,从重读表使用轮询方式查询对应的重读组编号;s200,获取所述重读组编号中的参数进行重读处理,更新所述记录表,将使用轮询方式查询对应的重读组编号添加至记录表。

根据所述的自适应的闪存数据重读方法,其中s100还包括:闪存设备上电启动默认读失败时初始化所述记录表,其中记录表的数据组数量与闪存页类型的数量一致。

根据所述的自适应的闪存数据重读方法,其中记录表的数据组数量与闪存页类型的数量一致通过初始化所述记录表时,获取闪存设备的参数,获取闪存页类型的数量得到。

根据所述的自适应的闪存数据重读方法,其中s100包括:当任意类型的闪存页的数据读错误时,检查记录数组对应的闪存页类型是否有记录的重读组编号,如果有,则使用此组重读编号;如果没有则,沿着重读表轮询下一组重读组编号,直到找到正确的可以恢复数据的重读组编号。

根据所述的自适应的闪存数据重读方法,其中该方法还包括:如果记录数组中有记录重读组数,通过重读组数中的重读数据无法恢复数据时,按照重读表轮询搜索合适的重读并更新记录表中对应的项。

根据所述的自适应的闪存数据重读方法,其中该方法还包括:所述记录表存储于内存空间中,其中记录表数据根据闪存的读取进行实时更新,当发生掉电时,删除所述记录表并且重读时进行重新创建。

根据所述的自适应的闪存数据重读方法,其中记录表包括若干重读组编号,每个重读组编号包括有对应的闪存页类型。

本发明的技术方案还包括一种自适应的闪存数据重读装置,该装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现任一所述的方法步骤。

本发明的技术方案还包括一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现任一所述的方法步骤。

本发明的有益效果为:优化了nandflash默认读失败后,数据重读策略,降低了读数据的时间延迟;使nandflash在各种温度条件下读速度更平稳,波动小保障数据读取时速度的稳定性。

附图说明

下面结合附图和实施例对本发明进一步地说明;

图1所示为根据本发明实施方式的总体流程图;

图2所示为根据本发明实施方式的记录数据的流程图;

图3所示为根据本发明实施方式的重读的记录数组;

图4所示为根据本发明实施方式的装置示意图。

具体实施方式

本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。

在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。

本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

图1所示为根据本发明实施方式的总体流程图,该流程包括:s100,闪存设备执行默认读取失败时,从记录表中获取对应的重读组编号,或者,从重读表使用轮询方式查询对应的重读组编号;s200,获取重读组编号中的参数进行重读处理,更新记录表,将使用轮询方式查询对应的重读组编号添加至记录表。

图2所示为根据本发明实施方式的记录数据的流程图,流程具体如下:

可以发现以上导致数据出错的原因在时间和空间上均具有一定的一致性,导致同一类型的闪存页在数据失效时,用来恢复的重读组编号也相同。记录下一种闪存页类型的重读编号,当下次遇到同一种类型闪存页默认读失败时,可以立即使用记录的重读参数,来恢复数据。有很大概率可以恢复成功。如果恢复失败,会轮询寻找下一组重读,直到找到可以恢复的重读参数,更新到记录表中,以备下次相同类型的闪存页出错时使用。参考图2,自适应的闪存数据重读方法如下:

(1)初始化一个记录最佳重读组编号的数据,数据的组数为nandflash所有的页类型数量。

(2)当某个类型的闪存页的数据读错误时,首先检查记录数组对应的闪存页类型是否有记录的重读组编号,如果有,则使用此组重读编号,如果没有则沿着重读表轮询下一组重读,直到找到正确的可以恢复数据的重读组编号。并更新到记录数据中。如果记录数组中有记录重读组数,但使用此参数有,仍然无法正确恢复数据,页按照重读表轮询搜索合适的重读并更新记录数据中对应的项。

(3)记录数据是在内存中实时更新的,当发生掉电时,内存中的数据会丢失。但考虑到重新初始化并更新到有初始值的记录表格或记录数组的代价并不大,实际使用中可以不存储记录数据到非易失存储介质中(如nandflash)。

图3所示为根据本发明实施方式的重读的记录数组,图2是记录数据的示意图,数据长度为nandflash所有可能的页类型数,将这些类型编号,以此编号为下标的数组项纪录的是对应页类型的最佳重读组编号。

图4所示为根据本发明实施方式的装置示意图。该装置包括存储器100及处理器200,其中处理器200存储有计算机程序,计算机程序用于执行:闪存设备执行默认读取失败时,从记录表中获取对应的重读组编号,或者,从重读表使用轮询方式查询对应的重读组编号;获取重读组编号中的参数进行重读处理,更新记录表,将使用轮询方式查询对应的重读组编号添加至记录表。其中,存储器100用于存储数据。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

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