CN111863087B - 一种控制编程性能的方法和装置 - Google Patents
一种控制编程性能的方法和装置 Download PDFInfo
- Publication number
- CN111863087B CN111863087B CN201910356983.5A CN201910356983A CN111863087B CN 111863087 B CN111863087 B CN 111863087B CN 201910356983 A CN201910356983 A CN 201910356983A CN 111863087 B CN111863087 B CN 111863087B
- Authority
- CN
- China
- Prior art keywords
- programming
- program
- state machine
- verification
- operation state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供了一种控制编程性能的方法和装置。所述方法应用于NOR flash存储器,所述NOR flash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,所述方法包括:所述编程操作状态机接收编程操作指令和待编程数据,根据编程操作指令和待编程数据执行编程验证和编程加压操作,再根据编程循环次数和编程验证开关的情况,连续执行编程加压操作预设次数,之后再执行编程验证操作。本发明在执行编程加压操作时,编程操作状态机连续执行编程加压操作预设次数,跳过对应的编程验证操作,控制编程验证操作和编程加压操作的循环周期,提高NOR flash存储器的编程性能。
Description
技术领域
本发明涉及存储领域,尤其涉及一种控制编程性能的方法和装置。
背景技术
目前NOR flash存储器随着擦除、编程次数的增加,编程单元的阈值电压下降,编程所需的时间越来越长,所以NOR flash存储器随着用户使用次数的增加,编程所需的时间越来越长,NOR flash存储器性能也越来越差。
参照图1,示出了现有NOR flash存储器编程操作时的状态流程框图。编程操作状态机在接收到编程指令后,首先进行编程验证操作,如果编程验证通过,则直接结束整个编程操作;如果编程验证没有通过,编程操作状态机执行编程加压,在编程加压结束后,编程循环次数加1,然后判断是否达到编程循环次数最大值,如果大于最大值,结束整个编程操作,如果不大于最大值,编程操作状态机执行下一次编程验证,检查上次编程加压操作是否成功,然后重复之前的操作。
然而随着NOR flash存储器使用时间的增加,其内部的存储单元变的更加难以编程。在NOR flash存储器接收到编程指令后,可能前期很多次执行的编程加压操作并不能成功对编程存储单元进行编程,再加上一一对应这些编程加压操作的编程验证操作,使得整个编程操作的时间较长,降低了NOR flash存储器编程性能。
发明内容
本发明提供的一种控制编程性能的方法以及装置,解决了随着NOR flash存储器使用时间的增加,其内部的存储单元变的难以编程,需要循环很多次的编程验证操作和编程加压操作,导致整个编程操作的时间较长的问题。
为了解决上述技术问题,本发明实施例提供了一种控制编程性能的方法,所述方法应用于NOR flash存储器,所述NOR flash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,所述编程操作状态机分别与所述编程验证开关和所述编程存储单元连接,所述方法包括:
所述编程操作状态机接收编程操作指令和待编程数据,所述待编程数据为所需写入所述编程存储单元的数据;
所述编程操作状态机根据所述编程操作指令和待编程数据,执行编程验证操作,所述编程验证操作为验证所述待编程数据是否与所述编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;
若验证不通过,所述编程操作状态机执行编程加压操作,所述编程加压操作为对所述编程存储单元持续施加预设电压值的操作;
所述编程操作状态机执行编程加压操作后,判断当前编程循环次数是否达到其最大值,所述编程循环次数为完成所述编程操作指令对应的编程操作需要执行所述编程验证操作和所述编程加压操作的次数,每一次循环次数对应一次所述编程验证操作和一次所述编程加压操作;
若当前编程循环次数没有达到其最大值,所述编程操作状态机判断编程验证开关是否打开;
若所述编程验证开关打开,所述编程操作状态机判断所述当前编程循环次数是否大于预设值;
若所述当前编程循环次数不大于所述预设值,所述编程操作状态机连续执行所述编程加压操作预设次数;
所述编程操作状态机连续执行所述编程加压操作预设次数后,执行下一次编程验证操作。
可选地,在若当前编程循环次数没有达到其最大值,所述编程操作状态机判断编程验证开关是否打开之后,所述方法还包括:
若所述编程验证开关未打开,所述编程操作状态机执行下一次所述编程验证操作。
可选地,所述编程验证开关与上位机连接,所述方法还包括:
所述上位机在确定完成单个编程操作指令对应的编程操作所需的时间大于预设时间时,控制所述编程验证开关打开。
可选地,所述编程循环次数大于所述预设值,所述预设值大于所述预设次数。
可选地,在若所述编程验证开关打开,所述编程操作状态机判断所述当前编程循环次数是否大于预设值之后,所述方法还包括:
若所述当前编程循环次数大于所述预设值,所述编程操作状态机执行下一次编程验证操作。
可选地,在所述编程操作状态机执行编程加压操作后,判断当前编程循环次数是否达到其最大值,所述方法还包括:
若所述当前编程循环次数达到其最大值,所述编程操作状态机结束所述编程操作指令对应的编程操作。
可选地,在所述编程操作状态机根据所述编程操作指令和待编程数据,执行编程验证操作之后,所述方法还包括:
若验证通过,所述编程操作状态机结束所述编程操作指令对应的编程操作。
本发明实施例还提供了一种控制编程性能的装置,所述装置应用于NOR flash存储器,所述NOR flash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,所述编程操作状态机分别与所述编程验证开关和所述编程存储单元连接,所述装置包括:
接收模块,用于所述编程操作状态机接收编程操作指令和待编程数据,所述待编程数据为所需写入所述编程存储单元的数据;
执行验证模块,用于所述编程操作状态机根据所述编程操作指令和待编程数据,执行编程验证操作,所述编程验证操作为验证所述待编程数据是否与所述编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;
执行加压模块,用于若验证不通过,所述编程操作状态机执行编程加压操作,所述编程加压操作为对所述编程存储单元持续施加预设电压值的操作;
判断循环次数模块,用于所述编程操作状态机执行编程加压操作后,判断当前编程循环次数是否达到其最大值,所述编程循环次数为完成所述编程操作指令对应的编程操作需要执行所述编程验证操作和所述编程加压操作的次数,每一次循环次数对应一次所述编程验证操作和一次所述编程加压操作;
判断开关模块,用于若当前编程循环次数没有达到其最大值,所述编程操作状态机判断编程验证开关是否打开;
判断当前次数模块,用于若所述编程验证开关打开,所述编程操作状态机判断所述当前编程循环次数是否大于预设值;
连续执行模块,用于若所述当前编程循环次数不大于所述预设值,所述编程操作状态机连续执行所述编程加压操作预设次数;
后续验证模块,用于执行所述编程操作状态机连续执行所述编程加压操作预设次数后,执行下一次编程验证操作。
可选地,所述装置还包括:
继续验证模块,用于若所述编程验证开关未打开,所述编程操作状态机执行下一次所述编程验证操作。
可选地,所述装置还包括:
打开模块,用于所述上位机在确定完成单个编程操作指令对应的编程操作所需的时间大于预设时间时,控制所述编程验证开关打开。
与现有技术相比,本发明提供的一种控制编程性能的方法和装置,在执行编程操作时,编程操作状态机根据编程验证开关的开启情况,和当前编程循环次数的情况,连续执行编程加压操作预设次数,跳过其对应的编程验证操作,控制编程验证操作和编程加压操作的循环周期,节省了编程操作的整体时间,提高NOR flash存储器的编程性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有NOR flash存储器编程操作时的流程框图;
图2是本发明实施例的一种控制编程性能方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2示出了本发明实施例的一种控制编程性能方法的流程图。该方法应用于NORflash存储器,NOR flash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,编程操作状态机分别与编程验证开关和编程存储单元连接,控制编程性能的方法包括如下步骤:
步骤101:编程操作状态机接收编程操作指令和待编程数据,待编程数据为所需写入编程存储单元的数据。
本发明实施例中,NOR flash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,其中编程验证开关的作用是:当编程验证开关开启时,编程操作状态机可以根据编程过程中具体情况,连续执行编程加压操作,跳过编程验证操作;当编程验证开关关闭时,编程操作状态机按照现有技术方案进行编程操作;需要说明的是,编程验证开关为NORflash存储器中功能性的电路开关,上位机发送指令“0”给编程验证开关,就是关闭其功能,发送指令“1”给编程验证开关,就是打开其功能。编程操作状态机为NOR flash存储器内控制编程状态的元件,编程存储单元为NOR flash存储器中存储写入数据的存储单元。
编程操作状态机接收由上位机发送的编程操作指令和待编程数据,其中待编程数据为本次编程操作需要写入存储单元的数据,编程操作指令中可能会包括有编程存储单元的地址,即需要将待编程数据写入指定地址的编程存储单元,编程操作是指从接收编程操作指令和待编程数据之后,到将待编程数据正确写入编程存储单元的整个过程。本发明实施例对以上所述不作详细限定,可以根据实际情况进行设置。
步骤102:编程操作状态机根据编程操作指令和待编程数据,执行编程验证操作,编程验证操作为验证待编程数据是否与编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过。
本发明实施例中,编程操作状态机在接收编程操作指令和待编程数据后,首先执行一个编程验证操作,验证待编程数据是否与编程存储单元中已存储的数据一致,之所以执行编程验证操作,是因为可能存在待编程数据已经在编程存储单元内的情况,若是已经存在,则认为编程成功,编程操作状态机结束本次编程操作。在执行编程加压操作之前,编程操作状态机需要对待编程数据和编程存储单元已存储数据执行编程验证操作,若是待编程数据和编程存储单元已存储数据不一致,则验证不通过,才会执行编程加压操作。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
步骤102':若验证通过,编程操作状态机结束编程操作指令对应的编程操作。
本发明实施例中,若编程操作状态机执行编程验证操作,结果验证通过,即待编程数据和编程存储单元已存储数据一致,编程操作状态机结束编程操作指令对应的编程操作。
步骤103:若验证不通过,编程操作状态机执行编程加压操作,编程加压操作为对编程存储单元持续施加预设电压值的操作。
本发明实施例中,若编程操作状态机执行编程验证操作,结果验证不通过,编程操作状态机执行编程加压操作,所谓编程加压操作是指:编程操作状态机对编程存储单元持续施加预设电压值的操作,预设电压值为NOR flash存储器在一般情况下,完成编程操作所需对编程存储单元施加的电压值,该值是结合大量仿真测试、实际测试和经验公式计算等方式综合得到。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
步骤104:编程操作状态机执行编程加压操作后,判断当前编程循环次数是否达到其最大值,编程循环次数为完成编程操作指令对应的编程操作需要执行编程验证操作和编程加压操作的次数,每一次循环次数对应一次编程验证操作和一次编程加压操作。
本发明实施例中,编程操作状态机接收编程操作指令后,首先执行编程验证操作,若是验证不通过,则执行第一次编程加压操作,第一次编程加压操作结束时,即为第一次编程循环,编程循环是指:编程操作状态机执行第一次编程验证操作,若是验证不通过,则执行第一次编程加压操作,该次编程加压操作结束时,即为第一次编程循环,其中完成上述两个步骤,执行第一次编程验证操作,则编程验证操作循环次数为1,执行第一次编程加压操作,则编程加压操作循环次数为1,在第一次编程加压操作结束后,编程操作状态机就执行第二次编程验证操作,若是验证不通过,则执行第二次编程加压操作,第二次编程加压操作结束时,即为第二次编程循环,执行第二次编程验证操作,则编程验证操作循环次数为2,执行第二次编程加压操作,则编程加压操作循环次数为2,在第二次编程加压操作结束后,编程操作状态机就执行第三次编程验证操作,若是验证不通过,则执行第三次编程加压操作,第三次编程加压操作结束时,即为第三次编程循环,执行第三次编程验证操作,则编程验证操作循环次数为3,执行第三次编程加压操作,则编程加压操作循环次数为3,依次类推,在每次执行编程验证操作之前,编程操作状态机需要判断编程加压操作的循环次数是否达到第一预设值,第一预设值为人为设定的一个上限值,设定该值是为了使得NOR flash存储器更高效率的工作,假设一次编程操作,因为各方面的原因,导致待编程数据无法写入编程存储单元,若是没有循环次数上限,那么编程操作状态机需要无休止地执行编程加压操作,则NOR flash存储器就会永远处于编程操作状态,相当于死机,无法处理其他任何工作。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
步骤104':若当前编程循环次数达到其最大值,编程操作状态机结束编程操作指令对应的编程操作。
本发明实施例中,若是当前编程循环次数达到其最大值,例如最大值为60次,则执行编程验证操作和编程加压操作的循环次数最高为60次,当前编程循环次数达到该数值60次,编程操作状态机结束编程操作指令对应的编程操作,而在第60次编程加压操作后,若编程存储单元阈值电压大于验证电压,则本次编程操作成功;若编程存储单元阈值电压小于验证电压,则本次编程操作失败。
步骤105:若当前编程循环次数没有达到其最大值,编程操作状态机判断编程验证开关是否打开。
本发明实施例中,若是当前编程循环次数没有达到其最大值,例如最大值为60次,则执行编程验证操作和编程加压操作的循环次数最高为60次,当前编程循环次数没有达到该数值,则编程操作状态机判断编程验证开关是否打开。本发明实施例对此不作详细限定,可以根据实际情况进行设置。
步骤105':若编程验证开关未打开,编程操作状态机执行下一次编程验证操作。
本发明实施例中,若是编程验证开关状态为未打开状态,即按照现有技术编程操作的步骤执行,编程操作状态机首先判断编程循环次数是否达到上限,没有达到则执行下一编程循环次数对应的编程验证操作。
编程验证开关是否开启的标准为:上位机在确定完成单个编程操作指令对应的编程操作所需的时间大于预设时间时,控制编程验证开关打开,该预设时间为经验值和经过大量测试的结果来定。假设全新的NOR flash存储器完成1GB大小数据的编程操作所需的时间需要5分钟,在使用了较长时间后,NOR flash存储器完成1GB大小数据的编程操作所需的时间需要35分钟以上,或者使用者自身感觉NOR flash存储器完成编程操作所需的时间比以前要慢,想缩短编程操作所需的时间,都可以控制编程验证开关打开,以跳过部分编程验证操作。
步骤106:若编程验证开关打开,编程操作状态机判断当前编程循环次数是否大于预设值。
本发明实施例中,若是编程验证开关状态为打开状态,编程操作状态机判断当前编程循环次数是否大于预设值,该预设值的大小一般通过经验值和NOR flash存储器测试的结果来定,设置该预设值的原因是为了判断是否进行后续的连续执行编程加压操作。
步骤106':若当前编程循环次数大于预设值,编程操作状态机执行下一次编程验证操作。
本发明实施例中,若当前编程循环次数大于预设值,编程操作状态机还是首先判断编程循环次数是否达到上限,没有达到则编程操作状态机执行下一编程循环次数对应的编程验证操作。
步骤107:若当前编程循环次数不大于预设值,编程操作状态机连续执行编程加压操作预设次数。
本发明实施例中,若当前编程循环次数不大于预设值,编程操作状态机连续执行编程加压操作预设次数,因对于已经使用较长时间的NOR flash存储器执行编程操作来说,前期循环的编程加压操作可能并不会成功的完成编程操作,所以其对应的编程验证操作也就没有太大的意义,而在循环执行了若干次编程加压操作后,成功完成编程操作的的概率就会很高,所以设定一个预设值,在该预设值以内编程加压操作不会成功的完成编程操作,就可以不执行对应的编程验证操作,直接连续执行编程加压操作预设次数,再执行编程验证操作,验证通过的概率会很高,即成功完成编程操作的的概率就会很高。假设编程循环次数最大值为100次,预设值为10次,预设次数为5次,编程操作状态机接收到编程操作指令和待编程数据,执行编程验证操作,验证没有通过,则编程操作状态机执行编程加压操作,编程加压操作结束后,编程循环次数加1,即此刻编程循环次数为1,编程操作状态机判断其小于编程循环次数最大值100次,编程操作状态机再判断编程验证开关打开,并且编程循环次数1小于预设值为10次,则编程操作状态机连续执行编程加压操作5次,而不执行对应这5次编程加压操作的编程验证操作。本发明实施例中编程循环次数最大值大于预设值,而预设值大于预设次数,预设次数的具体设定也是经验值和经过大量测试的结果来定。
步骤108:编程操作状态机连续执行编程加压操作预设次数后,执行下一次编程验证操作。
本发明实施例中,在编程操作状态机连续执行编程加压操作预设次数后,编程操作状态机执行下一次编程验证操作,例如在第一次编程循环周期内,5次编程加压操作结束后,编程操作状态机执行下一次编程验证操作,即编程操作状态机执行第二次编程循环周期内的编程验证操作。
举例说明,NOR flash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,编程操作状态机分别与编程验证开关和编程存储单元连接,编程操作状态机接收上位机发送的编程操作指令和待编程数据,该编程操作指令中可能会包括有编程存储单元的地址,即需要将待编程数据写入指定地址的编程存储单元,NOR flash首先执行编程验证操作,验证对应地址的编程存储单元中存储的数据是否与待编程数据一致,若一致,则本次编程操作结束,本次编程操作成功;若不一致,则编程操作状态机将执行编程加压操作。
编程操作状态机执行编程验证操作,如果编程验证未通过,则执行编程加压操作,在编程加压操作完成后,编程循环次数加1,编程操作状态机需要判断编程循环次数是否达到设置的编程循环最大值M,如果达到最大值M,则编程操作状态机直接结束编程操作指令对应的编程操作,如果没有达到最大值,编程操作状态机判断编程验证开关是否打开,如果编程验证开关没有打开,编程操作状态机按照现有技术一样的方案,执行编程验证操作,重复之前的操作。
如果编程验证开关打开,编程操作状态机判断当前编程循环次数是否大于预设值r,预设值r小于最大值M,若当前编程循环次数大于预设值r,则编程操作状态机执行编程验证操作;若当前编程循环次数不大于预设值r,则编程操作状态机连续执行编程加压操作预设次数z,预设次数z小于预设值r,即加长了编程加压操作的加压时间,这样就提高了编程操作成功的概率,在编程加压操作连续执行z次后,再执行编程验证操作,编程操作状态机判断编程操作是否成功,若是验证通过,则编程操作成功;若是验证不通过,则编程操作失败,之后再重复之前的操作。
假设最大值M为100,预设值r为10,预设次数z为5,NOR flash存储器由于各方面原因,导致其需要经过6次编程加压操作才可以编程操作成功,采用本发明的方案,编程操作状态机接收到编程操作指令和待编程数据后,首先执行第一次编程验证操作,验证未通过,则编程操作状态机执行第一次编程加压操作,此时当前编程循环次数为1,其小于编程循环最大值M=100,编程操作状态机判断编程验证开关打开,编程操作状态机再次判断当前编程循环次数1小于预设值r=10,则编程操作状态机连续执行编程加压操作预设次数5次,执行编程加压操作5次之后编程操作状态机再执行第二次编程验证操作,第二次编程验证操作结果验证通过,则本次编程操作结束,并且编程操作成功,即虽然编程加压操作执行了6次,但后5次编程加压操作都没有执行相对应的编程验证操作,缩短了整个编程操作的时间,提高了NOR flash存储器的编程性能。
可选地,本发明实施例还提供一种控制编程性能的装置,该装置应用于NOR flash存储器,NOR flash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,编程操作状态机分别与编程验证开关和编程存储单元连接,控制编程性能的装置包括:
接收模块,用于编程操作状态机接收编程操作指令和待编程数据,待编程数据为所需写入编程存储单元的数据;
执行验证模块,用于编程操作状态机根据编程操作指令和待编程数据,执行编程验证操作,编程验证操作为验证待编程数据是否与编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;
执行加压模块,用于若验证不通过,编程操作状态机执行编程加压操作,编程加压操作为对编程存储单元持续施加预设电压值的操作;
判断循环次数模块,用于编程操作状态机执行编程加压操作后,判断当前编程循环次数是否达到其最大值,编程循环次数为完成编程操作指令对应的编程操作需要执行编程验证操作和编程加压操作的次数,每一次循环次数对应一次编程验证操作和一次编程加压操作;
判断开关模块,用于若当前编程循环次数没有达到其最大值,编程操作状态机判断编程验证开关是否打开;
判断当前次数模块,用于若编程验证开关打开,编程操作状态机判断当前编程循环次数是否大于预设值;
连续执行模块,用于若当前编程循环次数不大于预设值,编程操作状态机连续执行编程加压操作预设次数;
后续验证模块,用于执行编程操作状态机连续执行编程加压操作预设次数后,执行下一次编程验证操作。
可选地,控制编程性能的装置还包括:
继续验证模块,用于若编程验证开关未打开,编程操作状态机执行下一次编程验证操作。
可选地,控制编程性能的装置还包括:
打开模块,用于上位机在确定完成单个编程操作指令对应的编程操作所需的时间大于预设时间时,控制编程验证开关打开。
通过上述实施例,本发明在编程操作时,首先执行编程验证操作,判断待编程数据和编程存储单元中存储的数据是否一致,在不一致时,编程操作状态机执行编程加压操作,编程操作状态机根据编程验证开关的开启情况,和当前编程循环次数的情况,连续执行编程加压操作预设次数,跳过其对应的编程验证操作,控制编程验证操作和编程加压操作的循环周期,节省了编程操作的整体时间,提高NOR flash存储器的编程性能。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种控制编程性能的方法,其特征在于,所述方法应用于NOR flash存储器,所述NORflash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,所述编程操作状态机分别与所述编程验证开关和所述编程存储单元连接,所述方法包括:
所述编程操作状态机接收编程操作指令和待编程数据,所述待编程数据为所需写入所述编程存储单元的数据;
所述编程操作状态机根据所述编程操作指令和待编程数据,执行编程验证操作,所述编程验证操作为验证所述待编程数据是否与所述编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;
若验证不通过,所述编程操作状态机执行编程加压操作,所述编程加压操作为对所述编程存储单元持续施加预设电压值的操作;
所述编程操作状态机执行编程加压操作后,判断当前编程循环次数是否达到其最大值,所述编程循环次数为完成所述编程操作指令对应的编程操作需要执行所述编程验证操作和所述编程加压操作的次数,每一次循环次数对应一次所述编程验证操作和一次所述编程加压操作;
若当前编程循环次数没有达到其最大值,所述编程操作状态机判断编程验证开关是否打开;
若所述编程验证开关打开,所述编程操作状态机判断所述当前编程循环次数是否大于预设值;
若所述当前编程循环次数不大于所述预设值,所述编程操作状态机连续执行所述编程加压操作预设次数;
所述编程操作状态机连续执行所述编程加压操作预设次数后,执行下一次编程验证操作。
2.根据权利要求1所述的方法,其特征在于,在若当前编程循环次数没有达到其最大值,所述编程操作状态机判断编程验证开关是否打开之后,所述方法还包括:
若所述编程验证开关未打开,所述编程操作状态机执行下一次所述编程验证操作。
3.根据权利要求1所述的方法,其特征在于,所述编程验证开关与上位机连接,所述方法还包括:
所述上位机在确定完成单个编程操作指令对应的编程操作所需的时间大于预设时间时,控制所述编程验证开关打开。
4.根据权利要求1所述的方法,其特征在于,所述编程循环次数大于所述预设值,所述预设值大于所述预设次数。
5.根据权利要求1所述的方法,其特征在于,在若所述编程验证开关打开,所述编程操作状态机判断所述当前编程循环次数是否大于预设值之后,所述方法还包括:
若所述当前编程循环次数大于所述预设值,所述编程操作状态机执行下一次编程验证操作。
6.根据权利要求1所述的方法,其特征在于,在所述编程操作状态机执行编程加压操作后,判断当前编程循环次数是否达到其最大值,所述方法还包括:
若所述当前编程循环次数达到其最大值,所述编程操作状态机结束所述编程操作指令对应的编程操作。
7.根据权利要求1所述的方法,其特征在于,在所述编程操作状态机根据所述编程操作指令和待编程数据,执行编程验证操作之后,所述方法还包括:
若验证通过,所述编程操作状态机结束所述编程操作指令对应的编程操作。
8.一种控制编程性能的装置,其特征在于,所述装置应用于NOR flash存储器,所述NORflash存储器包括:编程验证开关、编程操作状态机以及编程存储单元,所述编程操作状态机分别与所述编程验证开关和所述编程存储单元连接,所述装置包括:
接收模块,用于所述编程操作状态机接收编程操作指令和待编程数据,所述待编程数据为所需写入所述编程存储单元的数据;
执行验证模块,用于所述编程操作状态机根据所述编程操作指令和待编程数据,执行编程验证操作,所述编程验证操作为验证所述待编程数据是否与所述编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;
执行加压模块,用于若验证不通过,所述编程操作状态机执行编程加压操作,所述编程加压操作为对所述编程存储单元持续施加预设电压值的操作;
判断循环次数模块,用于所述编程操作状态机执行编程加压操作后,判断当前编程循环次数是否达到其最大值,所述编程循环次数为完成所述编程操作指令对应的编程操作需要执行所述编程验证操作和所述编程加压操作的次数,每一次循环次数对应一次所述编程验证操作和一次所述编程加压操作;
判断开关模块,用于若当前编程循环次数没有达到其最大值,所述编程操作状态机判断编程验证开关是否打开;
判断当前次数模块,用于若所述编程验证开关打开,所述编程操作状态机判断所述当前编程循环次数是否大于预设值;
连续执行模块,用于若所述当前编程循环次数不大于所述预设值,所述编程操作状态机连续执行所述编程加压操作预设次数;
后续验证模块,用于执行所述编程操作状态机连续执行所述编程加压操作预设次数后,执行下一次编程验证操作。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
继续验证模块,用于若所述编程验证开关未打开,所述编程操作状态机执行下一次所述编程验证操作。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
打开模块,用于上位机在确定完成单个编程操作指令对应的编程操作所需的时间大于预设时间时,控制所述编程验证开关打开。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910356983.5A CN111863087B (zh) | 2019-04-29 | 2019-04-29 | 一种控制编程性能的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910356983.5A CN111863087B (zh) | 2019-04-29 | 2019-04-29 | 一种控制编程性能的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111863087A CN111863087A (zh) | 2020-10-30 |
CN111863087B true CN111863087B (zh) | 2022-08-30 |
Family
ID=72966365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910356983.5A Active CN111863087B (zh) | 2019-04-29 | 2019-04-29 | 一种控制编程性能的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111863087B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022198371A1 (en) * | 2021-03-22 | 2022-09-29 | Yangtze Memory Technologies Co., Ltd. | Memory device and program operation thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001057091A (ja) * | 1999-08-03 | 2001-02-27 | Stmicroelectronics Srl | ゲート電圧の制御よるマルチレベル不揮発性メモリのプログラミング方法 |
CN104134459A (zh) * | 2013-04-30 | 2014-11-05 | 飞思卡尔半导体公司 | 带有可变验证操作的非易失性存储器(nvm) |
CN105719694A (zh) * | 2016-01-22 | 2016-06-29 | 清华大学 | Nand存储器的多比特编程方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7073103B2 (en) * | 2002-12-05 | 2006-07-04 | Sandisk Corporation | Smart verify for multi-state memories |
KR101634363B1 (ko) * | 2009-10-05 | 2016-06-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
-
2019
- 2019-04-29 CN CN201910356983.5A patent/CN111863087B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001057091A (ja) * | 1999-08-03 | 2001-02-27 | Stmicroelectronics Srl | ゲート電圧の制御よるマルチレベル不揮発性メモリのプログラミング方法 |
CN104134459A (zh) * | 2013-04-30 | 2014-11-05 | 飞思卡尔半导体公司 | 带有可变验证操作的非易失性存储器(nvm) |
CN105719694A (zh) * | 2016-01-22 | 2016-06-29 | 清华大学 | Nand存储器的多比特编程方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111863087A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7164610B2 (en) | Microcomputer having a flush memory that can be temporarily interrupted during an erase process | |
CN104134459B (zh) | 带有可变验证操作的非易失性存储器(nvm) | |
KR100257854B1 (ko) | 플래쉬 메모리의 소거 방법 | |
EP1899824B1 (en) | Interrupt-responsive non-volatile memory system and method | |
CN111863087B (zh) | 一种控制编程性能的方法和装置 | |
US20170084324A1 (en) | Memory device with timing overlap mode | |
CN109273039B (zh) | 一种闪存器的擦除验证设备和方法 | |
CN113488097A (zh) | 一种用于存储器芯片的参考电流高效调整方法、装置及应用 | |
CN111863090B (zh) | 一种控制擦除性能的方法和装置 | |
CN113946481B (zh) | Risc-v内核mcu调试的下载程序方法及调试器 | |
CN111951868B (zh) | 一种控制擦除的方法和装置 | |
CN111863082B (zh) | 一种控制编程性能的方法和装置 | |
CN111863085B (zh) | 一种控制编程性能的方法和装置 | |
CN107305792B (zh) | 一种测试存储器的方法和装置 | |
CN111863081A (zh) | 一种控制NOR flash存储器编程验证的方法和装置 | |
CN111863094A (zh) | 一种控制擦除性能的方法以及装置 | |
CN111863091B (zh) | 一种控制擦除性能的方法和装置 | |
CN111966011B (zh) | 利用控制面板开关的组合键修改控制程序运行参数的方法 | |
CN109390016A (zh) | Nor型闪存的擦除方法及装置 | |
CN111863086B (zh) | 一种控制编程性能的方法和装置 | |
CN111863096B (zh) | 一种NOR flash存储器读数据的方法和装置 | |
KR100600303B1 (ko) | 플래쉬 메모리 소자의 페이지 프로그램 방법 | |
CN106910520B (zh) | 存储装置的写入方法、存储装置、存储控制器和存储系统 | |
CN111951856A (zh) | 一种部分编程的方法和装置 | |
CN110910939B (zh) | 存储单元的阈值调整方法、装置、存储设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Applicant after: Zhaoyi Innovation Technology Group Co.,Ltd. Applicant after: HEFEI GEYI INTEGRATED CIRCUIT Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Applicant before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. Applicant before: HEFEI GEYI INTEGRATED CIRCUIT Co.,Ltd. |