本发明涉及非易失性存储器技术领域,尤其涉及的是一种非易失性存储器的坏块修复方法、装置、存储介质和终端。
背景技术:
norflash作为一种非易失性存储器,其在量产后会经过多种片上测试,在封装后会经过多道芯片测试来保证其正常的使用。而那些未能通过测试的芯片会被筛选掉,只有通过全部测试流程(如图1所示)的芯片才会进入到市场进行售卖。
但是,这些测试流程并不能百分百保证每个芯片在后续的使用过程中不再发生芯片读写擦的错误。倘若在交付给客户使用后,芯片产生擦写错误,那么就会影响到客户对芯片的正常使用,从而导致产品的直接报废。如,通常情况下当芯片在擦除过程中遇到问题,其擦除时间会变得特别长(芯片做完擦除操作后验证不通过,又再次执行擦除操作),直到最后芯片因长时间无法退出擦除操作,而导致直接损毁,如图2所示。
因此,现有的技术还有待于改进和发展。
技术实现要素:
本发明的目的在于提供一种非易失性存储器的坏块修复方法、装置、存储介质和终端,旨在解决现有norflash芯片在通过测试交付给客户使用后产生擦除错误而无法修复导致产品报废的问题。
本发明的技术方案如下:一种非易失性存储器的坏块修复方法,其中,具体包括以下步骤:
s01:实时判断norflash是否进入擦操作状态,是则跳转至s02,否则不改变当前状态;
s02:实时判断是否接收到norflash擦除验证不通过信息,是则跳转至s03,否则跳转至s06;
s03:判断norflash当前擦除操作中循环擦除次数是否已经达到预设值,是则跳转至s04,否则跳转至s05;
s04:将可替换块模块替换norflash当前进行擦除操作的块模块,结束擦除操作;
s05:执行擦除操作并跳转至s02;
s06:完成擦除操作。
所述的非易失性存储器的坏块修复方法,其中,所述s05包括以下过程:判断得出norflash擦除发生错误,同时记录当前发生错误的块模块地址,将当前发生错误的块模块地址替换成可替换块模块的地址。
所述的非易失性存储器的坏块修复方法,其中,所述可替换块模块的存储容量与norflash中其他块模块的存储容量相同。
所述的非易失性存储器的坏块修复方法,其中,所述可替换块模块为与原芯片中的被替换的块模块的结构相同,即该可替换块模块拥有与其他块模块相同数量的字线与相同数量的位线,且该可替换块模块与芯片中其他块模块一起共用相同的字线。
所述的非易失性存储器的坏块修复方法,其中,所述可替换块模块中的所有存储单元的初始值全部为擦除状态。
一种非易失性存储器的坏块修复装置,其中,包括:
擦操作状态判断模块,实时判断norflash是否进入擦操作状态;
擦除验证信息判断模块,实时判断是否接收到norflash擦除验证不通过信息;
循环擦除次数判断模块,判断norflash当前擦除操作中循环擦除次数是否已经达到预设值;
替换模块,将可替换块模块替换norflash当前进行擦除操作的块模块;
擦除模块,执行擦除操作。
所述的非易失性存储器的坏块修复装置,其中,所述可替换块模块设置在norflash内。
所述的非易失性存储器的坏块修复装置,其中,所述可替换块模块可根据实际需要设置多个。
一种存储介质,其中,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一项所述的方法。
一种终端设备,其中,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行上述任一项所述的方法。
本发明的有益效果:本发明通过提供一种非易失性存储器的坏块修复方法、装置、存储介质和终端,当norflash开始擦除操作后,先验证待擦除的模块是否需要进行擦除,若验证不通过,则计数执行第一次擦除操作;当执行完擦除操作后,再次验证该模块是否擦除完成,若验证不通过,则再次计数执行第二次擦除操作;当被执行擦除操作的块模块为坏块时,擦除验证永远不会通过;本方案通过持续累计执行擦除操作次数,当次数超过设定值后,系统将自动判断本次擦除操作失败,并将该块模块标记为坏块;同时,记录下坏块的地址,并用可替换块模块替换掉该坏块;结束本次擦除操作;当后续读写擦操作再次对该坏块地址进行操作时,芯片会自动摒弃该坏块,直接对替换的模块进行操作;通过本方案自动修复了芯片产生的擦除问题,从而延长了芯片的寿命。
附图说明
图1是现有技术中norflash芯片擦除数据的流程图。
图2是现有技术中norflash芯片擦除数据失败导致芯片损毁的过程图。
图3是本发明中非易失性存储器的坏块修复方法步骤流程图。
图4是本发明中norflash芯片在擦除数据的过程中自动修复坏块的流程。
图5是本发明中norflash芯片加入了可替换模块的存储单元的结构图。
图6是本发明中非易失性存储器的坏块修复装置的示意图。
图7是本发明中终端的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图3所示,一种非易失性存储器的坏块修复方法,能自动修复norflash中的坏块,具体包括以下步骤:
s01:实时判断norflash是否进入擦操作状态,是则跳转至s02,否则不改变当前状态;
s02:实时判断是否接收到norflash擦除验证不通过信息,是则跳转至s03,否则跳转至s06;
s03:判断norflash当前擦除操作中循环擦除次数是否已经达到预设值,是则跳转至s04,否则跳转至s05;
s04:将可替换块模块替换norflash当前进行擦除操作的块模块,结束擦除操作;
s05:执行擦除操作并跳转至s02;
s06:完成擦除操作。
在某些具体实施例中,所述s04包括以下过程:判断得出norflash擦除发生错误,同时记录当前发生错误的块模块地址,将当前发生错误的块模块地址替换成可替换块模块的地址。
在某些具体实施例中,所述可替换块模块为与原芯片中的被替换的块模块的结构相同,即该可替换块模块拥有与其他块模块相同数量的字线(bl)与位线(wl),且与芯片中其他块模块一起共用所示的n根字线(bl)。
在某些具体实施例中,所述可替换块模块中的所有存储单元的初始值全部为擦除状态。
在某些具体实施例中,所述可替换块模块可根据实际需要设置多个。
在某些具体实施例中,所述可替换块模块的存储容量与norflash内其他块模块的存储容量相同;该可替换模块在正常情况下闲置,只有当norflash判断其擦除操作发生错误后,该可替换块模块便会代替发生错误的块模块来工作。
如图4所示,当对norflash进行擦除操作时,会输入擦除指令以及要进行擦除的模块的地址。当开始擦除操作后,先验证待擦除的模块是否需要进行擦除,若验证不通过,则计数执行第一次擦除操作。当执行完擦除操作后,再次验证该模块是否擦除完成,若验证不通过,则再次计数执行第二次擦除操作。当被执行擦除操作的块模块为坏块时,擦除验证永远不会通过。本技术方案通过计数模块,会持续累计执行擦除操作的次数,当所记数值超过一定次数后,系统将自动判断本次擦除操作失败,并将该块模块标记为坏块;同时,系统记录下坏块的地址,并用可替换块模块替换掉该坏块;至此完成一系列操作后便能结束本次擦除操作。
本发明在原有的norflash芯片中添加可替换的块存储模块,如图5所示(即一块与原芯片中块存储单元排布相同的模块)。同时,本技术方案还通过计数模块进行计数,当擦除操作超过一定次数,则判断芯片擦除发生错误,同时记录当前发生错误的块模块地址,将可替换的块存储模块把该发生错误的块模块直接替换掉,如图4。当再次对该地址块模块进行读写擦操作时,芯片将直接调用被替换的块存储模块来进行读写擦操作。而有问题的块模块因为被替换了,错误将不会继续存在。
如图6所示,本技术方案还保护一种非易失性存储器的坏块修复装置,包括:
擦操作状态判断模块101,实时判断norflash是否进入擦操作状态;
擦除验证信息判断模块102,实时判断是否接收到norflash擦除验证不通过信息;
循环擦除次数判断模块103,判断norflash当前擦除操作中循环擦除次数是否已经达到预设值;
替换模块104,将可替换块模块替换norflash当前进行擦除操作的块模块;
擦除模块105,执行擦除操作。
在某些具体实施例中,所述可替换块模块设置在norflash内。
在某些具体实施例中,所述可替换块模块可根据实际需要设置多个。
请参照图7,本发明实施例还提供一种终端。如示,终端300包括处理器301和存储器302。其中,处理器301与存储器302电性连接。处理器301是终端300的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或调用存储在存储器302内的计算机程序,以及调用存储在存储器302内的数据,执行终端的各种功能和处理数据,从而对终端300进行整体监控。
在本实施例中,终端300中的处理器301会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器302中,并由处理器301来运行存储在存储器302中的计算机程序,从而实现各种功能:s01:实时判断norflash是否进入擦操作状态,是则跳转至s02,否则不改变当前状态;s02:实时判断是否接收到norflash擦除验证不通过信息,是则跳转至s03,否则跳转至s06;s03:判断norflash当前擦除操作中循环擦除次数是否已经达到预设值,是则跳转至s04,否则跳转至s05;s04:将可替换块模块替换norflash当前进行擦除操作的块模块,结束擦除操作;s05:执行擦除操作并跳转至s02;s06:完成擦除操作。
存储器302可用于存储计算机程序和数据。存储器302存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器301通过调用存储在存储器302的计算机程序,从而执行各种功能应用以及数据处理。
本申请实施例提供一种存储介质,所述计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:s01:实时判断norflash是否进入擦操作状态,是则跳转至s02,否则不改变当前状态;s02:实时判断是否接收到norflash擦除验证不通过信息,是则跳转至s03,否则跳转至s06;s03:判断norflash当前擦除操作中循环擦除次数是否已经达到预设值,是则跳转至s04,否则跳转至s05;s04:将可替换块模块替换norflash当前进行擦除操作的块模块,结束擦除操作;s05:执行擦除操作并跳转至s02;s06:完成擦除操作。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammablereadonlymemory,简称eprom),可编程只读存储器(programmablered-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
本文用于企业家、创业者技术爱好者查询,结果仅供参考。