防止因过擦除造成读错误的方法、装置、存储介质和终端
技术领域
本发明涉及flash
技术领域
,尤其涉及的是一种防止因过擦除造成读错误的方法、装置、存储介质和终端。背景技术
在NOR FLASH在擦除阵列A(Array A)内的扇区A(sector A)过程中,如果接收到暂停指令(erase suspend command),若此时内部算法流程正在处于擦除的步骤(如图1所示),还没有到修复“过擦除”单元的步骤就暂停(即分支2),那么在擦除暂停期间如果读取同一个阵列A(Array A)内的另一个扇区B(sectorB)的数据时可能会出错,读出的数据是一个随机值(取决于扇区A中“过擦除”单元的数量和分布,因为“过擦除”单元的阈值电压一般为负值,在读取扇区B的数据时,若扇区B中存在“过擦除”单元,0v不能使“过擦除”单元关闭,“过擦除”单元会产生电流,导致读数据出错,如图2所示)。
为避免上述的问题,现有的做法是:在收到擦除暂停指令后,先执行过擦除修复之后再响应用户暂停擦除指令,以此来消除“过擦除”单元对其他sector的读数据错误(如图3所示),然而过擦除修复往往需要比较久的时间,无法满足用户对擦除暂停的响应的时间要求(Tsus)。
因此,现有的技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种防止因过擦除造成读错误的方法、装置、存储介质和终端,旨在解决现有技术不能同时兼顾在NOR FLASH接收到擦除暂停指令后快速执行响应的时间要求和避免暂停期间过擦除造成读错误的问题。
本发明的技术方案如下:本技术方案提供一种防止因过擦除造成读错误的方法,具体包括以下步骤:
接收擦除暂停指令;
响应所述擦除暂停指令中断擦除指令退出;
接收读操作指令;
根据所述读操作指令对芯片内不需要执行读操作的存储单元施加负电压,对芯片内需要进行读操作的存储单元施加正电压。
本技术方案中,在接收到擦除暂停指令时,立即响应擦除暂停指令中断擦除指令退出,满足指令响应的时间要求;在擦除暂停期间如果接收到读操作指令,则对芯片内不需要执行读操作的存储单元施加负电压,对芯片内需要进行读操作的存储单元施加正电压,这样可以避免由于过擦除单元的存在导致读数据出错的问题。
进一步地,芯片中响应所述擦除暂停指令中断擦除指令退出的存储单元和执行读操作指令的存储单元位于芯片的同一个列中。
进一步地,芯片中响应所述擦除暂停指令中断擦除指令退出的存储单元和执行读操作指令的存储单元位于两个不同的块中,两个不同的块位于芯片的同一个列中。
进一步地,芯片中响应所述擦除暂停指令中断擦除指令退出的存储单元和执行读操作指令的存储单元位于两个不同的扇区中,两个不同的扇区位于芯片的同一个列中。
进一步地,通过负电荷泵对芯片内不需要执行读操作的存储单元施加负电压,所述负电荷泵在响应所述擦除暂停指令中断擦除指令退出同时启动。
进一步地,通过负电压电路为芯片内不需要执行读操作的存储单元施加负电压。
进一步地,通过负压输出电源为芯片内不需要执行读操作的存储单元施加负电压。
本技术方案还提供一种防止因过擦除造成读错误的装置,包括:
暂停指令接收模块,接收擦除暂停指令;
响应退出模块,响应所述擦除暂停指令中断擦除指令退出;
读指令接收模块,接收读操作指令;
电压施加模块,根据所述读操作指令对芯片内不需要执行读操作的存储单元施加负电压,对芯片内需要进行读操作的存储单元施加正电压。
本技术方案还提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一项所述的方法。
本技术方案还提供一种终端,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行上述任一项所述的方法。
通过上述可知,在接收到擦除暂停指令时,立即响应擦除暂停指令中断擦除指令退出,满足指令响应的时间要求,在响应擦除中断的同时启动负电荷泵;在擦除暂停期间如果接收到读操作指令,通过负电荷泵对芯片内不需要执行读操作的存储单元施加负电压,通过正电荷泵对芯片内需要进行读操作的存储单元施加正电压,这样不但可以避免由于过擦除单元的存在导致读数据出错的问题,还可以保证读指令的响应时间要求。
附图说明
图1是现有技术中擦除算法流程示意图。
图2是现有技术中区块的结构示意图。
图3是现有技术中针对在擦除暂停期间解决过擦除造成的读数据错误的方法流程图。
图4是本发明中防止因过擦除造成读错误的方法的步骤流程图。
图5是本发明中防止因过擦除造成读错误的装置的示意图。
图6是本发明中终端的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图4所示,一种防止因过擦除造成读错误的方法,适用于NOR FLASH芯片,具体包括以下步骤:
S1:接收擦除暂停指令。
其中,在对芯片的一个阵列(Array)内的一个块(block)或一个扇区(sector)执行擦除操作(block erase(块擦除)或sector erase(扇区擦除))的过程中,有可能会接收到用户发送的擦除暂停指令;在储存器芯片中,一般情况下,扇区的大小为4096个byte,块的大小为65536个byte,对于128Mbit容量的芯片,含有256个块,通常我们会将部分块放在同一个阵列中,如将32个块放在一个阵列中,在一个阵列中的储存单元的衬底接到一起,所以,如果在一个阵列中的某一块或者扇区执行擦除暂停指令期间,读取该这列中的另一个块或者扇区的数据,会因为执行擦除暂停指令的块或者扇区存在过擦除单元而导致读数据错误。
S2:响应所述擦除暂停指令中断擦除指令退出。
S3:接收读操作指令。
其中,在芯片中,执行擦除暂停指令的扇区与在擦除暂停期间执行读操作指令的扇区为两个不同的扇区,两个不同的扇区位于芯片的同一个列中;在芯片中,执行擦除暂停指令的块与在擦除暂停期间执行读操作指令的块为两个不同的块,两个不同的块位于芯片的同一个列中。因为在某一扇区/块执行擦除暂停指令期间,用户不会再对该扇区/块执行其他操作,以免造成数据错误。
S4:根据所述读操作指令对芯片内不需要执行读操作的存储单元施加负电压,对芯片内需要进行读操作的存储单元施加正电压(即读操作电压)并执行读操作。
其中,可以通过负压输出模块为芯片内不需要执行读操作的存储单元施加负电压,所述负压输出模块可以根据需要采用不同的方式实现:(1)通过负电荷泵为芯片内不需要执行读操作的存储单元施加负电压;因为负电荷泵在不使用时处于关闭状态,只有在需要使用时才会开启,而负电荷泵的开启需要一定时间,所以在芯片响应擦除暂停指令的同时启动负电荷泵对芯片内的所有存储单元施加负电压,这样可以保证在后续接收到其他操作指令(如读操作指令)时,可以快速响应,不需要等待负电荷泵的开启。(2)通过负电压电路为芯片内不需要执行读操作的存储单元施加负电压。(3)通过负压输出电源为芯片内不需要执行读操作的存储单元施加负电压。等等。对芯片内的所有存储单元施加的负电压可以根据芯片的储存单元的性能设置,如-1V。
其中,由正电荷泵为芯片内需要进行读操作的存储单元施加正电压(即读操作电压)。因为正电荷泵是一直都处于启动状态的,所以在接收到读操作指令时,能快速响应为芯片内需要进行读操作的存储单元施加正电压。而如果负压输出模块采用负电荷泵实现,则负电荷泵需要在响应擦除暂停指令时启动,以免影响芯片对读操作指令的响应,保证指令的响应速度满足要求。
在接收到擦除暂停指令时,立即响应擦除暂停指令中断擦除指令退出,满足指令响应的时间要求;在擦除暂停期间如果接收到读操作指令,则对芯片内不需要执行读操作的存储单元施加负电压,对芯片内需要进行读操作的存储单元施加正电压,这样可以避免由于过擦除单元的存在导致读数据出错的问题。
如图5所示,一种防止因过擦除造成读错误的装置,包括:
暂停指令接收模块101,接收擦除暂停指令;
响应退出模块102,响应所述擦除暂停指令中断擦除指令退出;
读指令接收模块103,接收读操作指令;
电压施加模块104,根据所述读操作指令对芯片内不需要执行读操作的存储单元施加负电压,对芯片内需要进行读操作的存储单元施加正电压并执行读操作。
请参照图6,本发明实施例还提供一种终端。如示,终端300包括处理器301和存储器302。其中,处理器301与存储器302电性连接。处理器301是终端300的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或调用存储在存储器302内的计算机程序,以及调用存储在存储器302内的数据,执行终端的各种功能和处理数据,从而对终端300进行整体监控。
在本实施例中,终端300中的处理器301会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器302中,并由处理器301来运行存储在存储器302中的计算机程序,从而实现各种功能:接收擦除暂停指令;响应所述擦除暂停指令中断擦除指令退出;接收读操作指令;根据所述读操作指令对芯片内不需要执行读操作的存储单元施加负电压,对芯片内需要进行读操作的存储单元施加正电压并执行读操作。
存储器302可用于存储计算机程序和数据。存储器302存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器301通过调用存储在存储器302的计算机程序,从而执行各种功能应用以及数据处理。
本申请实施例提供一种存储介质,所述计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:接收擦除暂停指令;响应所述擦除暂停指令中断擦除指令退出;接收读操作指令;根据所述读操作指令对芯片内不需要执行读操作的存储单元施加负电压,对芯片内需要进行读操作的存储单元施加正电压并执行读操作。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-OnlyMemory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。