一种减少擦除时间的方法、装置、电子设备及存储介质
技术领域
本申请涉及芯片
技术领域
,具体而言,涉及一种减少擦除时间的方法、装置、电子设备及存储介质。背景技术
NOR Flash支持的擦除操作指令有全芯片擦除(Chip Erase)、块擦除(BlockErase)、扇区擦除(Sector Erase),其中1个64KB容量的块相当于16个4KB容量的扇区。当一个块地址内的扇区进行多次擦除编程cycle后(例如100K),该扇区内存储单元的阈值电压(Vth)会向右平移,体现在擦除速度随擦除编程cycle的次数增加而变慢。
常规的NOR Flash擦除方法为:对块进行预编程后再一起进行擦除,擦除过后对需要擦除地址内的存储单元进行擦除校验(擦除校验是确认是否被擦好的一个操作),如果没有通过擦除校验,再重复擦除操作,以此往复,直到都通过擦除校验,再对擦除区域进行过擦除的检查和修复。
然而,如果块地址内包含一个或多个已经进行过多次擦除编程cycle扇区,这一块内不同扇区的存储单元的阈值电压分布不一(经过多次擦除编程周期的扇区更难被擦除,需要输入更多的擦除脉冲),为了照顾到经过多次擦除编程周期的扇区,就需要对整个块输入较多的擦除脉冲,这对于处于同一块地址内没有经过多次擦除编程周期的扇区而言输入的擦除脉冲过多,容易造成过擦除(over-erase),导致过擦除修复时间大幅增加,从而大幅增加了整体擦除操作时间。
针对上述问题,目前尚未有有效的技术解决方案。
发明内容
本申请实施例的目的在于提供一种减少擦除时间的方法、装置、电子设备及存储介质,避免已擦除的扇区继续进行多次擦除,从而减少过擦除存储单元,以减少过擦除修复时间、减少擦除操作时间。
第一方面,本申请实施例提供了一种减少擦除时间的方法,用于NOR Flash擦除操作,所述方法包括以下步骤:
S1、对扇区中存储单元进行预编程;
S2、对扇区中存储单元进行擦除操作;
S3、校验擦除后的扇区,忽略其内存储单元均全部成功擦除的扇区;
S4、重复步骤S2-S3,直至所有扇区的存储单元均完成擦除;
S5、对所有扇区中存储单元进行过擦除检测及修复。
本申请实施例的一种减少擦除时间的方法通过周期循环执行步骤S2-S3,逐步忽略完成擦除操作的扇区以针对性地执行擦除操作,忽略已完成擦除的扇区可减少无效操作,提高资源利用率的同时,有效避免对完成擦除的扇区造成过擦除,间接地减少了过擦除的修复时间,即减少了整体擦除时间。
所述的一种减少擦除时间的方法,其中,执行步骤S1之前还包括步骤:
S0、检查各扇区内存储单元是否为擦除状态,忽略其内存储单元均处于擦除状态的扇区。
所述的一种减少擦除时间的方法,其中,步骤S0中还包括标记内存储单元均处于擦除状态的扇区。
所述的一种减少擦除时间的方法,其中,步骤S3中,还包括根据循环擦除次数标记完成擦除的扇区以区分相应扇区的擦除速度。
所述的一种减少擦除时间的方法,其中,步骤S4中“直至所有扇区的存储单元均完成擦除”的判断条件为判断是否所有扇区是否均为擦除状态或判断是否所有扇区均已忽略。
所述的一种减少擦除时间的方法,其中,步骤S1中的预编程处理为针对所有待擦除扇区中存储单元进行全“0”编程。
所述的一种减少擦除时间的方法,其中,步骤S5中包括以下子步骤:
S51、检查是否存在过擦除的存储单元;
S52、对过擦除的储存单元进行修复;
S53、重复步骤S51-S52,直至未检查出过擦除的存储单元。
第二方面,本申请实施例还提供了一种减少擦除时间的装置,用于NOR Flash擦除操作,包括:
预编程模块,用于对待擦除扇区中的存储单元进行预编程;
擦除模块,用于对存储单元进行擦除操作;
校验模块,用于校验扇区中存储单元是否全部成功擦除;
标记忽略模块,用于标记并忽略内存储单元均全部成功擦除的扇区;
过擦除检测修复模块,用于检测并修复过擦除的存储单元;
所述擦除模块用于对已通过预编程模块进行预编程的存储单元进行擦除操作,所述校验模块和标记忽略模块配合下可将其内存储单元未全部成功擦除的扇区循环给擦除模块进行再次擦除直至所有扇区的存储单元均完成擦除操作,所述过擦除检测修复模块可对所有完成擦除操作的存储单元循环进行过擦除检测及修复直至所有过擦除存储单元完成修复。
本申请实施例提供的一种减少擦除时间的装置,通过预编程模块对待擦除目标对象的扇区内存储单元进行全“0”编程,然后周期循环地通过擦除模块进行扇区擦除并利用校验模块配合标记忽略模块进行校验、标记、忽略已完成擦除的扇区,逐步忽略完成擦除操作的扇区以针对性地执行擦除操作,可免去对已擦除扇区的无效操作,有效避免对完成擦除的扇区造成过擦除,减少了过擦除的修复时间,提高了NOR Flash芯片的擦除效率,还通过过擦除检测修复模块完成存储单元的过擦除检测及修复,确有效保存储单元在擦除后能正常使用。
第三方面,本申请实施例还提供了一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
由上可知,本申请实施例提供的一种减少擦除时间的方法、装置、电子设备及存储介质,其中方法通过周期循环进行扇区擦除并标记忽略已完成擦除的扇区,逐步忽略完成擦除操作的扇区以针对性地执行擦除操作,可免去对已擦除扇区的无效操作,有效避免对完成擦除的扇区造成过擦除,减少了过擦除的修复时间,提高了NOR Flash芯片的擦除效率。
附图说明
图1为本申请实施例提供的一种减少擦除时间的方法的流程图。
图2为本申请实施例提供的一种减少擦除时间的方法的逻辑图。
图3为本申请实施例提供的一种减少擦除时间的装置的结构示意图。
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
第一方面,请参照图1-2,图1-2是本申请一些实施例中的一种减少擦除时间的方法,用于NOR Flash擦除操作,方法包括以下步骤:
S1、对扇区中存储单元进行预编程;
具体地,对需要擦除的目标进行全编程处理,避免扇区中局部存储单元为非编程状态以至于擦除时产生过多的过擦除存储单元,可确保擦除过程整体有序性,同时也利于后续校验。
S2、对扇区中存储单元进行擦除操作;
具体地,通过对存储单元施加超过其阈值电压的擦除脉冲即可实现存储单元的擦除操作。
S3、校验擦除后的扇区,忽略其内存储单元均全部成功擦除的扇区;
具体地,由于部分扇区经过多次擦除编程周期,单次擦除后部分扇区的存储单元全部完成擦除操作,而部分扇区还包含尚未完成擦除操作的存储单元,因此,该步骤中扫描检测上一步骤S2中进行擦除操作过的扇区中的存储单元是否全部成功进行擦除处理,即检测该对应扇区中的存储单元数据是否全部为“1”,若数据全部为“1”即表明该扇区已成功完成擦除,通过忽略该扇区以在周期循环中排除该扇区,余下一些尚未完成擦除即仍然还有未成功擦除存储单元的扇区。
S4、重复步骤S2-S3,直至所有扇区的存储单元均完成擦除;
具体地,执行步骤S3后忽略掉已完成擦除的扇区,将余下尚未完成擦除的扇区周期循环至步骤S2中进行再次擦除操作,然后再次通过步骤S3进行扇区校验,进一步忽略已完成擦除的扇区,周期性地循环执行步骤S2-S3直至步骤S3检验后所有扇区均为完成擦除的扇区,从而确保存储单元全部完成擦除操作。
S5、对所有扇区中存储单元进行过擦除检测及修复。
具体地,由于本申请实施例擦除操作以扇区为操作单位,因此单一扇区中仍可能出现过擦除的存储单元,因此需要对所有参与擦除操作的存储单元进行过擦除检测及修复,避免存储单元处于过擦除状态而无法正常使用。
本申请实施例的一种减少擦除时间的方法通过周期循环执行步骤S2-S3,逐步忽略完成擦除操作的扇区以针对性地执行擦除操作,忽略已完成擦除的扇区可减少无效操作,提高资源利用率的同时,有效避免对完成擦除的扇区造成过擦除,间接地减少了过擦除的修复时间,即减少了整体擦除时间。
另外,本申请实施例一种减少擦除时间的方法一般用于全芯片擦除(ChipErase)、块擦除(Block Erase)中,全芯片包含多个块,而块中包含多个扇区,本申请实施例的以扇区作为区分擦除完成与否的操作单位,因此适用于芯片擦除和块擦除;扇区包含多个存储单元,以扇区作为区分单位可有效反映擦除对象中存储单元的擦除情况,并提高擦除过程中步骤S3的校验效率。
在一些优选的实施方式中,执行步骤S1之前还包括步骤:
S0、检查各扇区内存储单元是否为擦除状态,忽略其内存储单元均处于擦除状态的扇区。
具体地,对于一些块地址中包含未经过编程操作仍然保持擦除状态的扇区(即扇区中包含的所有存储单元均为擦除状态,亦即是扇区中存储单元数据均为“1”)和经过编程操作的扇区而言,为了提高存储单元分布的一致性,常规的块擦除方法是将整块地址进行预编程,都变成编程状态,再对所有的存储单元进行擦除操作;然而,实际上已经是擦除状态的扇区没有必要进行这些预编程和再次擦除,因为它们本身已经是处于擦除状态,对这部分扇区进行擦除只会浪费编程、擦除的时间和资源;因此,本申请实施例中设计步骤S0,在步骤S1的预编程之前,扫描检查待擦除对象中是否含有完全擦除状态的扇区(包括尚未经过编程操作还在之前进行过擦除操作尚未再次编程的存储单元),然后忽略完全擦除的扇区,使这些扇区不进入步骤S1-S5操作中,从而免去了对这些扇区的编程、擦除、过擦除检测及修复的时间和资源,有效提高芯片总的擦除时间,并节省资源。
在一些优选的实施方式中,步骤S0中还包括标记内存储单元均处于擦除状态的扇区。
具体地,通过标记的方式标记完全擦除的扇区处于擦除状态,利于标记判断该扇区是否进入步骤S1中,可明确区分忽略与未忽略的扇区,如将这些处于擦除状态的扇区标记为erase_0,即表明这些扇区在步骤S0的时候已为完全擦除,无需进入步骤S1-S5中进行擦除操作。
更具体地,标记过程还可标记该扇区未参与本次擦除操作,可反映芯片的局部存储单元使用状态,如反映一些由始至终从未进行过编程的扇区,这类扇区的读、写、擦能力相比其他扇区更好,利于后续综合开发使用;另外,还可结合标记和历史使用情况如参与步骤S2擦除次数,以计算标记忽略扇区的总擦除次数等。
在一些优选的实施方式中,步骤S3中,通过标记的方式标记其内存储单元均全部成功擦除的扇区,将这些扇区标记为成功擦除状态,通过忽略这些标记为成功擦除状态的扇区,将未标记的扇区再次执行步骤S2擦除操作,可有序、明确地逐步筛除完成擦除的扇区,逐步缩小擦除对象范围,可确保目标对象能顺利完成擦除的同时,减少了对已完成擦除的扇区进行无效操作,也避免了完成擦除的扇区中产生过多的过擦除存储单元,因而有效减少了过擦除修复时间。
在一些优选的实施方式中,步骤S3中,还包括根据循环擦除次数标记完成擦除的扇区以区分相应扇区的擦除速度。
具体地,扇区被标记为擦除状态便不再次参与步骤S2的擦除操作,而本申请实施例还可利用标记可记录扇区参与步骤S2擦除操作的次数,即可反映出该扇区中最难擦除的存储单元的擦除难度,亦反映了这些存储单元的多次编程次数;通过这些标记数据可有效区分出块中对应扇区擦写难度、分布,可数字化反映芯片使用情况;如将周期循环中完成擦除的扇区对应标记erase_n,其中n为对应进入周期循环擦除的次数,即第一次执行步骤S2-S3即完成擦除的扇区标记为erase_1,因此,通过标记可反映对应在本次擦除操作中成功擦除需要的擦除次数。
更具体地,还可根据标记次数进行数据擦写的统筹,如后续存储单元擦写时可率先针对标记次数较少的扇区进行擦写,以平衡扇区的使用频率;还可将一类标记次数相近的扇区擦写操作,因这些扇区擦除时需要的阈值电压相近,产生的过擦除存储单元也较小,有效提高整体的擦除效率。在一些优选的实施方式中,步骤S4中“直至所有扇区的存储单元均完成擦除”的判断条件为判断是否所有扇区是否均为擦除状态或判断是否所有扇区均已忽略。
具体地,当步骤S4中“直至所有扇区的存储单元均完成擦除”的判断条件为判断是否所有扇区是否均为擦除状态时,每次执行步骤S4时,需对全部扇区中的全部存储单元进行扫描检查,直至所有存储单元的写入数据均被擦除,才继续执行步骤S5;这种检查方式可有效确保存储单元数据均被擦除。
在一些优选的实施方式中,本实施例中步骤S4中“直至所有扇区的存储单元均完成擦除”的判断条件为判断是否所有扇区均已忽略。具体地,循环执行步骤S3逐步将目标对象中的完成擦除的扇区忽略筛除,当所有扇区均忽略掉则表明再无未擦除的扇区,该判定方式中,步骤S4依赖步骤S3的忽略操作进行,无需对再次对存储单元数据进行扫描检查;因此,相比起另一种判断条件,该判断方法效率更高。
在一些优选的实施方式中,步骤S1中的预编程处理为针对所有待擦除扇区中存储单元进行全“0”编程。
具体地,NOR Flash中的存储单元擦除状态的数据为1,编程状态的数据为0,因此,先对芯片中待擦除的目标对象的存储单元进行全“0”编程,确保储单元分布的一致性,避免擦除过程中产生过多的过擦除存储单元。
在一些优选的实施方式中,步骤S5中包括以下子步骤:
S51、检查是否存在过擦除的存储单元;
S52、对过擦除的储存单元进行修复;
S53、重复步骤S51-S52,直至未检查出过擦除的存储单元。
具体地,本通过周期循环检测逐步完成过擦除存储单元的修复,可有效确保擦除的目标对象中存储单元擦除后能正常使用。
本申请实施例的一种减少擦除时间的方法,通过周期循环进行扇区擦除并标记忽略已完成擦除的扇区,逐步忽略完成擦除操作的扇区以针对性地执行擦除操作,可免去对已擦除扇区的无效操作,有效避免对完成擦除的扇区造成过擦除,减少了过擦除的修复时间,提高了NOR Flash芯片的擦除效率。
第二方面,请参照图3,图3是本申请一些实施例中提供的一种减少擦除时间的装置,用于NOR Flash擦除操作,包括:
预编程模块,用于对待擦除扇区中的存储单元进行预编程;
擦除模块,用于对存储单元进行擦除操作;
校验模块,用于校验扇区中存储单元是否全部成功擦除;
标记忽略模块,用于标记并忽略内存储单元均全部成功擦除的扇区;
过擦除检测修复模块,用于检测并修复过擦除的存储单元;
擦除模块用于对已通过预编程模块进行预编程的存储单元进行擦除操作,校验模块和标记忽略模块配合下可将其内存储单元未全部成功擦除的扇区循环给擦除模块进行再次擦除直至所有扇区的存储单元均完成擦除操作,过擦除检测修复模块可对所有完成擦除操作的存储单元循环进行过擦除检测及修复直至所有过擦除存储单元完成修复。
本申请实施例提供的一种减少擦除时间的装置,通过预编程模块对待擦除目标对象的扇区内存储单元进行全“0”编程,然后周期循环地通过擦除模块进行扇区擦除并利用校验模块配合标记忽略模块进行校验、标记、忽略已完成擦除的扇区,逐步忽略完成擦除操作的扇区以针对性地执行擦除操作,可免去对已擦除扇区的无效操作,有效避免对完成擦除的扇区造成过擦除,减少了过擦除的修复时间,提高了NOR Flash芯片的擦除效率,还通过过擦除检测修复模块完成存储单元的过擦除检测及修复,确有效保存储单元在擦除后能正常使用。
第三方面,请参照图4,图4为本申请实施例提供的一种电子设备的结构示意图,本申请提供一种电子设备3,包括:处理器301和存储器302,处理器301和存储器302通过通信总线303和/或其他形式的连接机构(未标出)互连并相互通讯,存储器302存储有处理器301可执行的计算机程序,当计算设备运行时,处理器301执行该计算机程序,以执行时执行上述实施例的任一可选的实现方式中的方法。
第四方面,本申请实施例提供一种存储介质,所述计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static RandomAccess Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-Only Memory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
综上,本申请实施例提供的一种减少擦除时间的方法、装置、电子设备及存储介质,其中方法通过周期循环进行扇区擦除并标记忽略已完成擦除的扇区,逐步忽略完成擦除操作的扇区以针对性地执行擦除操作,可免去对已擦除扇区的无效操作,有效避免对完成擦除的扇区造成过擦除,减少了过擦除的修复时间,提高了NOR Flash芯片的擦除效率。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。