掌桥专利:专业的专利平台
掌桥专利
首页

一种修复闪存的方法

文献发布时间:2023-06-19 10:24:22


一种修复闪存的方法

技术领域

本发明涉及电路技术领域,特别涉及一种修复闪存的方法。

背景技术

闪存(Flash Memory)在断电情况下仍能保持所存储的数据信息,是一种非易失性(Non-Volatile)存储器。闪存在电擦除和重复编程时不需要特殊的高电压,并具有制作成本低、存储密度大等特点,使其成为非易失性半导体存储技术的主流。其中,双分离栅闪存因传输效率高,在1~4MB的小容量时具有很高的成本效益,是市场上主要的非易失性存储器之一。

而对于在闪存的冗余保护电路设计中,需要判断哪些数据错误情况可以进行冗余修复,以提高闪存良率。例如现有技术中的对于闪存所存在的错误进行判断以及判断如何进行冗余修复的方法如图1所示,包括:进入冗余分析模式后,选择写入数据的模式(全1,全0等等)后把数据写入闪存需要分析的存储块中,接着从开头的地址读出写入的数据和要写入的数据进行比较,地址+1后重新读取数据再次进行比较,直到储存块所有数据检测完成后把有多少错误,错误相关的地址,bit位置,冗余是否使用等信息写入寄存器,以便闪存读写时根据这些信息使用冗余代替错误的部分进行修复。

在另一种现有技术中的使用外部机台进行冗余修复判断的方法如图2所示,进入冗余分析模式后,选择写入数据的模式(全1,全0等等)后把数据写入闪存需要分析的存储块中,接着从开头的地址把写入的数据读出到外部机台中,并使用外部机台来和要写入的数据进行比较,将有多少错误,错误相关的地址,bit位置,冗余是否使用等相关信息记录在外部机台中,地址+1后使用外部机台重新读取数据再次进行比较并记录相关信息,直到储存块所有数据检测完成后,把所有相关信息写入寄存器,以便闪存读写时根据这些信息使用冗余代替错误的部分进行修复。相比于第一种方法,使用外部机台可以减小闪存芯片的设计以及面积成本,但是测试判断成本会增加。

发明内容

本发明的目的是提供一种修复闪存的方法,能够实现判断闪存在什么情况下无法进行冗余修复,并以此判断基准进行自动检测判断的流程设计,在判断为无法进行冗余修复后立刻结束分析,实现了对冗余判断系统判断成本的优化的目的。

为了实现以上目的,本发明通过以下技术方案实现:

一种修复闪存的方法,包括:

步骤S1、进入冗余判断分析模式,选择待写入的数据;

步骤S2、将所述数据对应写入至闪存中待分析的存储块内,

步骤S3、从初始的闪存地址开始从所述待分析的存储块内读取数据;

步骤S4、将读出的数据对应与所述待写入的数据进行比较,并统计数据的错误数量;

步骤S5、将所述错误数量与冗余数量进行对比,所述错误数量大于所述冗余数量,则所述闪存无法采用冗余进行修复。

优选地,还包括:若所述错误数量小于或等于所述冗余数量,则对冗余是否可用进行判断,并统计可用的所述冗余数量,若可用的所述冗余数量小于所述错误数量,则所述闪存无法采用冗余进行修复。

优选地,还包括:步骤S6、若所述错误数量小于或等于所述冗余数量,且可用的所述冗余数量大于或等于所述错误数量时,对可用的所述冗余是否已被使用进行判断,同时判断错误数据所在的bit位置以及出现错误时对应的闪存地址和已使用的冗余中记录的信息是否匹配,同时统计不匹配的错误数量,并将所述不匹配的错误数量与剩余的未被使用的冗余数量进行比较,若所述不匹配的错误数量大于剩余的未被使用的冗余数量,则进入步骤S7;步骤S7、所述闪存无法采用冗余进行修复。

优选地,还包括:若所述不匹配的错误数量小于或等于剩余的未被使用的冗余数量,则进入步骤S8;

步骤S8、所述闪存可以采用冗余进行修复。

优选地,还包括:步骤S9,将是否可以采用冗余进行修复的检测结果、错误的bit位置、出现错误时对应的闪存地址和已被使用过的所述冗余状态写入至寄存器,进入步骤S10;

步骤S10、读取所述寄存器,若读出的所述检测结果显示所述闪存无法采用冗余进行修复,则结束所述分析模式。

优选地,还包括:若读出的所述检测结果显示所述闪存可以采用冗余进行修复,则进入步骤S11;

步骤S11、将初始的闪存地址加1,重复所述步骤S3~步骤S11,直至所述的闪存地址为最后一个闪存地址时,则所述闪存的所有待分析的所述存储块均检测完成,结束分析模式。

本发明至少具有以下优点之一:

本发明涉及判断闪存在什么情况下无法进行冗余修复,并以此判断基准进行自动检测判断的流程设计,在判断为无法进行冗余修复后立刻结束分析,以减小冗余判断的判断成本。

在进行冗余判断分析时,在每次读取比较完数据之后,自动分析判断闪存是否无法采用冗余进行修复,如果闪存无法采用冗余进行修复,就可以马上结束冗余分析。相较于传统的冗余检测方案,本发明可以自动检测判断,而不用等闪存的储存块所有数据都分析完成后才得到分析结果。每次读取数据后对冗余进行自动检测判断。判断冗余无法修复闪存后结束判断以减少判断成本。本发明不受冗余数量以及所需分析的存储块容量限制。

附图说明

图1为现有技术中的一种闪存修复的方法的流程示意图;

图2为现有技术中的另一种闪存修复的方法的流程示意图;

图3为本发明一实施例提供的一种闪存修复的方法的流程示意图。

具体实施方式

以下结合附图和具体实施方式对本发明提出的一种闪存修复的方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。

如图3所示,本实施例提供一种修复闪存的方法,具体的是一种闪存是都可以采用冗余(冗余保护电路)进行修复的判断方法或自动检测方法,包括:

步骤S1、进入冗余判断分析模式,选择待写入的数据。在本实施例中,待写入的数据全部为0或全部为1。

步骤S2、将所述数据对应写入至闪存中待分析的存储块内,所述存储块指的是闪存本次所需分析任意大小的数据模块。

步骤S3、从初始的闪存地址开始从所述待分析的存储块内读取数据;因为每次闪存地址读取的是存储块中对应的一批多bit数据,所以一次读取分析可能有多个bit位置出现错误,即同时出现的错误数量。

步骤S4、将读出的数据对应与所述待写入的数据进行比较,并统计数据的错误数量。

步骤S5、将所述错误数量与冗余数量(预设的冗余数量)进行对比,若所述错误数量大于所述冗余数量,则所述闪存无法采用冗余进行修复;否则,需要进一步判断。

若所述错误数量小于或等于所述冗余数量,则对冗余是否可用(冗余是否处于可用状态)进行判断,并统计可用的所述冗余的冗余数量(统计处于可用状态的所述冗余的冗余数量),若可用的所述冗余数量小于所述错误数量,则所述闪存(闪存的待分析的存储块)无法采用冗余进行修复。

本实施例还包括:步骤S6、若所述错误数量小于或等于所述冗余数量,且可用的所述冗余数量大于或等于所述错误数量时,对可用的所述冗余是否已被使用进行判断,同时判断错误数据所在的bit位置以及出现错误时对应的闪存地址和已使用的冗余中记录的信息是否匹配,同时统计不匹配的错误数量,并将所述不匹配的错误数量与剩余的未被使用的冗余数量进行比较,若所述不匹配的错误数量大于剩余的未被使用的冗余数量,则进入步骤S7。步骤S7、所述闪存无法采用冗余进行修复。

本实施例还包括:若所述不匹配的错误数量小于或等于剩余的未被使用的冗余数量,则进入步骤S8。

步骤S8、所述闪存可以采用冗余进行修复。

本实施例还包括:步骤S9,将是否可以采用冗余进行修复的检测结果、错误的bit位置、错误地址(出现错误时对应的闪存地址)和已被使用过的所述冗余状态写入至寄存器,进入步骤S10。

步骤S10、读取所述寄存器,若读出的所述检测结果显示所述闪存无法采用冗余进行修复,则结束所述分析模式。

本实施例还包括:若读出的所述检测结果显示所述闪存可以采用冗余进行修复,则进入步骤S11。

步骤S11、将初始的闪存地址加1,重复所述步骤S3~步骤S11,直至所述闪存地址为最后一个闪存地址时,代表所述闪存的所有待分析的所述存储块均检测完成,结束分析模式。综上所述,如果要预先判断上述冗余是否可以进行修复,需要先进入分析模式,选择需要写入哪种数据模式(待写入的数据全是0或全是1),然后读取数据,和之前选择的数据模式进行比较,看是否有错误。因为预先设计的冗余(冗余存储块)数量有限,所以如果同时出现的错误不小于假设的冗余数量,就无法采用冗余对闪存进行修复。与此同时如果冗余存储块本身读出的数据对比写入数据是错误的,代表该冗余存储块本身不可使用,同样无法使用冗余对闪存进行修复。如果同时出现的错误数量小于预设的冗余数量,且冗余处于可用状态,进一步判断冗余是否已被使用过,如果冗余已被使用过,则判断错误出现在闪存输出数据的第几bit位即错误的bit位置是否匹配,如果不匹配代表这次出现的错误和上次出现的错误不是在同一bit位,代表这是一个新的数据错误。同时判断闪存地址是否匹配,如果不匹配代表这次出现的错误和上次出现的错误不是同样的闪存地址,也代表这是一个新的错误。如果错误的bit位置以及闪存地址和已被使用冗余不匹配的错误数量大于剩余未使用的处于可用状态的冗余数量则代表我们没足够的冗余再修复错误,所以不可修复。如果错误的bit位置以及闪存地址和已被使用冗余不匹配的错误数量小于剩余未使用的冗余数量则代表有足够的冗余修复错误,所以可修复。然后将是否可以采用冗余进行修复的检测结果或判断结果,错误的bit位置等信息写入寄存器,再读这个寄存器,如果读出显示不可修复,就直接结束分析模式,如果可以进行修复,则将闪存地址+1(即当前的闪存地址的下一个闪存地址)重新读取分析数据,直至所需分析的储存块最后一个闪存地址或者冗余显示不可修复状态。

由此可知,本实施例涉及判断闪存在什么情况下无法进行冗余修复,并以此判断基准进行自动检测判断的流程设计,在判断为无法进行冗余修复后立刻结束分析,以减小冗余判断的判断成本。

在进行冗余判断分析时,在每次读取比较完数据之后,自动分析判断闪存是否无法采用冗余进行修复,如果闪存无法采用冗余进行修复,就可以马上结束冗余分析。相较于传统的冗余检测方案,本实施例可以自动检测判断,而不用等闪存的储存块所有数据都分析完成后才得到分析结果。每次读取数据后对冗余进行自动检测判断。判断冗余无法修复闪存后结束判断以减少判断成本。本实施例不受冗余数量以及所需分析的存储块容量限制。

可以理解的是,上述冗余存储块为冗余保护电路的一部分,本文中出现冗余数量等词的语境下冗余指的是冗余存储块,使用冗余进行修复等语境下冗余指的是冗余保护电路。

可以理解的是,在本文的实施方式中所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本文的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用于执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

相关技术
  • 修复闪存的控制电路及修复闪存的方法
  • 与非闪存装置的多输入/输出修复方法及其与非闪存装置
技术分类

06120112530050