CN111951856A - 一种部分编程的方法和装置 - Google Patents
一种部分编程的方法和装置 Download PDFInfo
- Publication number
- CN111951856A CN111951856A CN201910399724.0A CN201910399724A CN111951856A CN 111951856 A CN111951856 A CN 111951856A CN 201910399724 A CN201910399724 A CN 201910399724A CN 111951856 A CN111951856 A CN 111951856A
- Authority
- CN
- China
- Prior art keywords
- programming
- partial
- program
- operation instruction
- verification
- 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.)
- Granted
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
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供了一种部分编程的方法和装置。所述方法包括:接收第一次部分编程操作指令,对对应于第一次部分编程操作指令的存储单元执行第一次编程验证操作,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数,完成第一次部分编程操作指令对应的部分编程操作,接收第二次部分编程操作指令,根据次数,确定目标电压,对对应于第二次部分编程操作指令的存储单元执行第二次部分编程操作指令对应的编程加压操作。本发明减少了第二次部分编程操作所需的编程循环次数,从而整体上减少了对没有被执行编程操作的存储单元的干扰,提高Nand flash存储器的可靠性。
Description
技术领域
本发明涉及存储领域,尤其涉及一种部分编程的方法和装置。
背景技术
目前Nand flash存储器采用的编程方式为正常编程方式和部分编程方式,所谓部分编程方式是指:将一次编程操作分成几次编程操作来完成。例如:一次编程操作需要对2K大小的存储单元执行编程,可以将其分为4次完成,即第一次对512byte大小的存储单元执行编程,第二次再对512byte大小的存储单元执行编程,第三次再对512byte大小的存储单元执行编程,第四次对剩下的512byte大小的存储单元执行编程。
在采用部分编程的方式执行编程操作时,假设单次执行部分编程时,需要6个编程循环,才可以使得存储单元通过编程验证,那么对于在同一个字线(wl)上的其它存储单元,后面每次的部分编程都需要6个编程循环才能使得相应的存储单元(即在同一字线上的其它存储单元)通过编程验证,而在每次执行部分编程操作时,都会增加对该wl上没有被执行编程操作的存储单元的干扰,这会极大地影响Nand flash存储器的可靠性。
发明内容
本发明提供一种部分编程的方法和装置,解决了在每次执行部分编程操作时,都会增加对该wl上没有被执行编程操作的存储单元的干扰的问题。
为了解决上述技术问题,本发明实施例提供了一种部分编程的方法,所述方法应用于Nand flash存储器,所述Nand flash存储器包括:存储单元,所述方法包括:
接收第一次部分编程操作指令;
根据所述第一次部分编程操作指令,对对应于所述第一次部分编程操作指令的存储单元执行第一次编程验证操作;
若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数;
完成所述第一次部分编程操作指令对应的部分编程操作;
接收第二次部分编程操作指令;
根据所述次数,确定目标电压;
根据所述第二次部分编程操作指令,对对应于所述第二次部分编程操作指令的存储单元执行所述第二次部分编程操作指令对应的编程加压操作,所述第二次部分编程操作指令对应的编程加压操作以所述目标电压为执行所述第二次部分编程操作指令对应的编程加压操作的初始电压值。
可选地,在根据所述第一次部分编程操作指令,对对应于所述第一次部分编程操作指令的存储单元执行第一次编程验证操作之后,所述方法还包括:
若第一次编程验证通过的存储单元的数量未达到目标数量,则对对应于所述第一次部分编程操作指令的存储单元,执行所述第一次部分编程操作指令对应的编程加压操作;
对所述第一次部分编程操作指令对应的存储单元,执行所述第一次部分编程操作指令对应的第二次编程验证操作;
若第二次编程验证通过的存储单元的数量达到目标数量,则记录对应第二次编程验证通过时的编程操加压操作的次数。
可选地,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数,包括:
若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在所述存储单元字线的空闲区域中;
或者,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在所述Nand flash存储器的寄存器中。
可选地,根据所述次数,确定目标电压,包括:
读取所述存储单元字线的空闲区域中记录的所述次数,根据所述次数,确定目标电压的电压值;
或者,读取所述Nand flash存储器的寄存器中记录的所述次数,根据所述次数,确定目标电压的电压值。
可选地,所述目标电压的电压值取值为:
所述Nand flash存储器执行部分编程操作的初始电压值加上所述次数乘以预设值。
本发明实施例还提供了一种部分编程的装置,所述装置应用于Nand flash存储器,所述Nand flash存储器包括:存储单元,所述装置包括:
第一接模块,用于接收第一次部分编程操作指令;
第一验证模块,用于根据所述第一次部分编程操作指令,对对应于所述第一次部分编程操作指令的存储单元执行第一次编程验证操作;
第一记录模块,用于若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数;
完成模块,用于完成所述第一次部分编程操作指令对应的部分编程操作;
第二接收指令,用于接收第二次部分编程操作指令;
确定模块,用于根据所述次数,确定目标电压;
第一加压模块,用于根据所述第二次部分编程操作指令,对对应于所述第二次部分编程操作指令的存储单元执行所述第二次部分编程操作指令对应的编程加压操作,所述第二次部分编程操作指令对应的编程加压操作以所述目标电压为执行所述第二次部分编程操作指令对应的编程加压操作的初始电压值。
可选地,所述装置还包括:
第二加压模块,用于若第一次编程验证通过的存储单元的数量未达到目标数量,则对对应于所述第一次部分编程操作指令的存储单元,执行所述第一次部分编程操作指令对应的编程加压操作;
第二验证模块,用于对所述第一次部分编程操作指令对应的存储单元,执行所述第一次部分编程操作指令对应的第二次编程验证操作;
第二记录模块,用于若第二次编程验证通过的存储单元的数量达到目标数量,则记录对应第二次编程验证通过时的编程操加压操作的次数。
可选地,所述第一记录模块包括:
记录区域寄存器子模块,用于若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在所述存储单元字线的空闲区域中;
还用于,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在所述Nand flash存储器的寄存器中。
可选地,所述确定模块包括:
读取区域寄存器子模块,用于读取所述存储单元字线的空闲区域中记录的所述次数,根据所述次数,确定目标电压的电压值;
还用于,读取所述Nand flash存储器的寄存器中记录的所述次数,根据所述次数,确定目标电压的电压值。
可选地,所述装置还包括:
取值模块,用于所述目标电压的电压值取值,其值为所述Nand flash存储器执行部分编程操作的初始电压值加上所述次数乘以预设值。
与现有技术相比,本发明提供的一种部分编程的方法和装置,在执行第一次部分编程操作时,对该部分编程操作指令的存储单元执行第一次编程验证操作,若第一次编程验证通过的存储单元的数量达到目标数量,则记录该次编程验证通过时的编程操加压操作的次数,之后按照继续完成第一次部分编程操作,在进行第二次部分编程操作时,首先读取记录的次数,根据该次数确定目标电压,之后对对应于第二次部分编程操作指令的存储单元,以目标电压为初始电压执行第二次部分编程操作指令对应的编程加压操作,该次编程加压操作结束后,通过编程验证的存储单元会直接达到目标数量,而不用像第一次部分编程操作过程中,可能需要经过若干次编程加压操作才可以达到目标数量,从而完成整个第二次部分编程操作所需的编程循环次数就会比第一次部分编程操作所需的编程循环次数少,从而整体上减少了对没有被执行编程操作的存储单元的干扰,提高Nand flash存储器的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种部分编程方法的流程图;
图2是本发明实施例步骤102之后的流程图;
图3是本发明实施例部分编程操作的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例的一种部分编程方法的流程图。该方法应用于Nandflash存储器,Nand flash存储器包括:存储单元,部分编程的方法包括如下步骤:
步骤101:接收第一次部分编程操作指令。
本发明实施例中,Nand flash存储器采用部分编程的方式来执行编程操作时,是针对同一个字线上的存储单元来执行的,例如:参照图3,采用部分编程的方式来执行编程时,第一次部分编程操作是针对地址1的wl上的存储单元执行,那么之后的第二次部分编程操作、第三次部分编程操作以及第四次部分编程操作都是针对地址1的wl上的存储单元执行。
步骤102:根据第一次部分编程操作指令,对对应于第一次部分编程操作指令的存储单元执行第一次编程验证操作。
本发明实施例中,接收第一次部分编程操作指令后,可以根据该指令,对对应于第一次部分编程操作指令的存储单元执行第一次编程验证操作。例如:参照图3,对地址1的wl上的存储单元执行部分编程操作,假设地址1的wl上的存储单元大小为2K,分为四次部分编程操作,则第一次部分编程操作只对地址1的wl上前512byte的存储单元执行编程操作,即第一次部分编程操作对地址1的wl上前512byte的存储单元执行第一次编程验证操作。
可选地,参照图2,步骤102之后,部分编程的方法还包括:
步骤102a:若第一次编程验证通过的存储单元的数量未达到目标数量,则对对应于第一次部分编程操作指令的存储单元,执行第一次部分编程操作指令对应的编程加压操作。
本发明实施例中,对对应于第一次部分编程操作指令的存储单元执行第一次编程验证操作后,若第一次编程验证通过的存储单元的数量未达到目标数量,则对对应于第一次部分编程操作指令的存储单元,执行第一次部分编程操作指令对应的编程加压操作。在Nand flash存储器中,同一个wl上的存储单元的特性相差并不大,因此在采用部分编程的方式执行编程操作的过程中,若第一次部分编程操作和第二次部分编程操作时使用相同的编程加压操作电压,则通过编程验证的存储单元数量也就基本一样,在对Nand flash存储器按照部分编程的方式执行编程操作时,发明人研究发现,假若使用一个合适的电压执行编程加压操作,使得在该次编程加压操作结束之后,可以通过编程验证的存储单元的数量达到一个合适的数量而又不会因为使用的电压不合适而导致存储单元的损伤,那么就可以整体上减少编程循环的次数。而综合各方面的因素,确定合适电压和目标数量的原则为:假设一个512byte大小的wl上的存储单元为1000个,这1000个存储单元自身的特性各不相同,若是采用10V的电压对这1000个存储单元执行编程操作,一个编程循环后,有80个存储单元编程成功(即80个存储单元通过编程验证),完成全部1000个存储单元的编程可能需要10个编程循环,在这10个编程循环的过程中,对已经编程成功的存储单元需要反复执行编程验证和编程加压,最多的需要执行10次;若是采用15V的电压对这1000个存储单元执行编程操作,一个编程循环后,有200个存储单元编程成功,完成全部1000个存储单元的编程可能需要6个编程循环,在这6个编程循环的过程中,对已经编程成功的存储单元需要反复执行编程验证和编程加压,最多的需要执行6次;若是采用20V的电压对这1000个存储单元执行编程操作,一个编程循环后,有400个存储单元编程成功,完成全部1000个存储单元的编程可能需要3个编程循环,在这3个编程循环的过程中,对已经编程成功的存储单元需要反复执行编程验证和编程加压,最多的需要执行3次。
基于以上情况,确定出目标数量的因素需要考虑两个方面:1:可以减少完成一次部分编程操作的编程循环次数;2、需要达到该目标数量而使用的编程加压操作的电压值不能对存储单元产生损伤。因此采用10V电压的方案,编程循环次数过多,因为存储单元结构的原因,过多次的编程循环会缩短存储单元的使用寿命;而采用20V电压的方案,虽然编程循环次数较少,但过高的电压对存储单元的冲击较大,伤害也较大,同样也会损伤存储单元的寿命,所以综合考虑需要采用一个适当的电压,例如15V,既不会因为电压过高而损伤存储单元,又可以减少编程循环的次数,达到了最优的选择,而对应采用15V的方案,一个编程循环后可以有200个存储单元编程成功,那么就设定目标数量为200个。需要说明的是,上述数据只是为了更好的解释本发明方案而例举的简单数据,并不代表实际应用Nand flash存储器中存储单元的特性和数据,该目标数量是出厂时经过大量实地测试和经验值综合得出。
步骤102b:对第一次部分编程操作指令对应的存储单元,执行第一次部分编程操作指令对应的第二次编程验证操作;
本发明实施例中,在对第一次部分编程操作指令对应的存储单元执行完编程加压操作后,就需要执行第一次部分编程操作指令对应的第二次编程验证操作。例如:第一次编程验证后,只有80个存储单元通过编程验证,之后对第一次部分编程操作指令对应的存储单元执行编程加压操作,结束后再对第一次部分编程操作指令对应的存储单元执行第二次编程验证操作。
步骤102c:若第二次编程验证通过的存储单元的数量达到目标数量,则记录对应第二次编程验证通过时的编程操加压操作的次数。
本发明实施例中,在执行完第一次部分编程操作指令对应的第二次编程验证操作后,若第二次编程验证通过的存储单元的数量达到目标数量,则记录对应第二次编程验证通过时的编程操加压操作的次数。例如:目标数量为200个存储单元,若第二次编程验证通过的存储单元的数量达到200个,而执行过的编程加压操作的次数为1,那么就将该次数值1进行记录。
假设上述过程中,第二次编程验证通过的存储单元依然没有达到目标数量,那么就需要执行第二次编程加压操作,完成后再执行第三次编程验证操作,若是此次通过编程验证的存储单元达到目标数量,即执行过的编程加压操作的次数为2,那么就将该次数值2进行记录。
步骤103:若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数。
本发明实施例中,在对对应于第一次部分编程操作指令的存储单元执行第一次编程验证操作后,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数。
可选地,步骤103包括:
步骤103a:若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在存储单元字线的空闲区域中;
步骤103b:或者,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在Nand flash存储器的寄存器中。
本发明实施例中,当通过编程验证的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在Nand flash存储器的寄存器中,或者存储单元字线的空闲区域中,需要说明的是,当记录在Nand flash存储器的寄存器中时,假若Nand flash存储器掉电,则根据Nand flash存储器自身的特性,其记录的编程操加压操作的次数就会被擦除,而记录在存储单元字线的空闲区域中,根据Nand flash存储器自身的特性,即使Nand flash存储器掉电,其记录的编程操加压操作的次数也不会被擦除。
步骤104:完成第一次部分编程操作指令对应的部分编程操作。
本发明实施例中,在记录对应第一次编程验证通过时的编程操加压操作的次数在Nand flash存储器的寄存器,或者存储单元字线的空闲区域后,继续执行部分编程操作,直到完成第一次部分编程操作指令对应的部分编程操作。假设第一次部分编程操作需要对512byte的存储单元执行编程操作,在其过程中,是经过2次编程加压操作后,通过编程验证的存储单元达到目标数量,则记录编程加压操作的次数2在Nand flash存储器的寄存器,或者存储单元字线的空闲区域,之后继续执行部分编程操作,直到512byte的存储单元全部通过编程验证,则第一次部分编程操作完成。
步骤105:接收第二次部分编程操作指令。
本发明实施例中,第一次部分编程完成后,就需要开始第二次部分编程操作,Nandflash存储器会接收到第二次部分编程操作的指令。
步骤106:根据次数,确定目标电压。
本发明实施例中,在接收第二次部分编程操作的指令后,首先需要根据记录的第一次部分编程操作对应的编程加压的次数,确定出目标电压的电压值。
可选地,步骤106包括:
步骤106a:读取存储单元字线的空闲区域中记录的次数,根据次数,确定目标电压的电压值;
步骤106b:或者,读取Nand flash存储器的寄存器中记录的次数,根据次数,确定目标电压的电压值。
本发明实施例中,因为第一次部分编程操作对应的编程加压的次数是记录在存储单元字线的空闲区域中,或者Nand flash存储器的寄存器中,根据第一次部分编程操作对应的编程加压的次数的存储位置,读取出该次数,确定出目标电压的电压值,该电压值的取值为:Nand flash存储器执行部分编程操作的初始电压值加上第一次部分编程操作对应的编程加压的次数乘以预设值,其中Nand flash存储器执行部分编程操作的初始电压值为Nand flash存储器出厂时经过测试,对所有的块(block)进行编程,可以编程成功的最小的电压值,预设值为Nand flash存储器出厂时经过测试,得到的每次需要增加的编程加压操作的电压值。确定目标电压的方法为:假设初始电压值为:10V,预设值为1.5V,第一次部分编程操作过程中,经过2次编程加压操作之后,通过编程验证的存储单元达到目标数量,那么在Nand flash存储器存储单元字线的空闲区域或者寄存器中,就存储有次数2,在执行第二次部分编程操作时,首先读取出次数2,根据初始电压值和预设值,得到目标电压值:10V+2*1.5V=13V。
步骤107:根据第二次部分编程操作指令,对对应于第二次部分编程操作指令的存储单元执行第二次部分编程操作指令对应的编程加压操作,第二次部分编程操作指令对应的编程加压操作以目标电压为执行第二次部分编程操作指令对应的编程加压操作的初始电压值。
本发明实施例中,在确定出目标电压的电压值之后,对对应于第二次部分编程操作指令的存储单元执行第二次部分编程操作指令对应的编程加压操作,假设第一次部分编程操作时,经过两次编程加压操作,达到15V电压,使用15V的电压执行编程加压操作,通过编程验证的存储单元达到目标数量200个,那么相对应地,在第二次部分编程操作时,直接使用15V的电压执行编程加压操作,通过编程验证的存储单元也基本会达到目标数量200个,即使达不到目标数量200个,也接近200个,那么从整体上,就会减少完成第二次部分编程操作对应的编程循环次数,若是超过200个,那么更加会减少完成第二次部分编程操作对应的编程循环次数。
举例说明,参照图3,示出了本发明实施例部分编程操作的示意图,Nand flash存储器包括:存储单元,其采用部分编程操作的方式来对地址为1的wl上的存储单元执行编程操作,假设地址1的wl上的存储单元大小为2K,共4000个存储单元,采用4次部分编程操作的方式执行编程操作,那么一次部分编程操作对应的存储单元大小为512byte,对应1000个存储单元。
设定每次需要增加的编程加压操作的电压值(即预设值)为2.5V,存储单元目标数量为200,开始第一次编程操作,首先执行编程验证操作,第一次编程验证操作后通过验证的存储单元数量为70,执行第一次编程加压操作的电压值为10V+2.5V=12.5V,本次编程加压操作结束后,第一次编程循环结束,编程循环次数为1,编程加压操作次数为1。继续执行第二次编程验证操作,第二次编程验证操作后通过验证的存储单元数量为150,没有达到目标数量,执行第二次编程加压操作,第二次编程加压操作时的电压值为12.5V+2.5V=15V,以该电压值执行第二次编程加压操作之后,第二次编程循环结束,编程循环次数为2,编程加压操作次数为2。继续执行第三次编程验证操作,第三次编程验证操作后通过验证的存储单元数量为200,达到目标数量,此时记录达到目标数量时对应的编程加压次数2在地址1的wl上的空闲区域,继续执行第三次编程加压操作,第三次编程加压操作时的电压值为15V+2.5V=17.5V,以该电压值执行第三次编程加压操作之后,第三次编程循环结束,编程循环次数为3。继续执行第四次编程验证操作,第四次编程验证操作后通过验证的存储单元数量为400,执行第四次编程加压操作,第四次编程加压操作时的电压值为17.5V+2.5V=20V,以该电压值执行第四次编程加压操作之后,第四次编程循环结束,编程循环次数为4。继续执行第五次编程验证操作,第五次编程验证操作后通过验证的存储单元数量为800,执行第五次编程加压操作,第五次编程加压操作时的电压值为20V+2.5V=22.5V,以该电压值执行第五次编程加压操作之后,第五次编程循环结束,编程循环次数为5。继续执行第六次编程验证操作,第六次编程验证操作后通过验证的存储单元数量为1000,即512byte的存储单元全部通过第六次编程验证,此时第一次部分编程操作结束,一共5次编程循环完成了第一次部分编程操作。
在执行第二次部分编程操作之前,首先根据记录的第一次部分编程操作对应的编程加压的次数2,确定目标电压为:10V+2*2.5V=15V,开始第一次编程操作,首先执行编程验证操作,第一次编程验证操作后通过验证的存储单元数量为70,执行第一次编程加压操作的电压值为15V,本次编程加压操作结束后,第一次编程循环结束,编程循环次数为1,编程加压操作次数为1。继续执行第二次编程验证操作,第二次编程验证操作后通过验证的存储单元数量为200,执行第二次编程加压操作,第二次编程加压操作时的电压值为15V+2.5V=17.5V,以该电压值执行第二次编程加压操作之后,第二次编程循环结束,编程循环次数为2,编程加压操作次数为2。继续执行第三次编程验证操作,第三次编程验证操作后通过验证的存储单元数量为400,执行第三次编程加压操作,第三次编程加压操作时的电压值为17.5V+2.5V=20V,以该电压值执行第三次编程加压操作之后,第三次编程循环结束,编程循环次数为3,编程加压操作次数为3。继续执行第四次编程验证操作,第四次编程验证操作后通过验证的存储单元数量为800,执行第四次编程加压操作,第四次编程加压操作时的电压值为20V+2.5V=22.5V,以该电压值执行第四次编程加压操作之后,第四次编程循环结束,编程循环次数为4,编程加压操作次数为4。继续执行第五次编程验证操作,第五次编程验证操作后通过验证的存储单元数量为1000,即512byte的存储单元全部通过第五次编程验证,此时第二次部分编程操作结束,一共4次编程循环完成了第二次部分编程操作。
第三次部分编程操作和第四次部分编程也按照和第二次部分编程操作一样的步骤进行,即完成第三次部分编程操作需要4次编程循环完成,即完成第四次部分编程操作需要4次编程循环完成。则完成整个4次部分编程操作一共需要17次(5次+4次+4次+4次)编程循环,而不使用本发明方案完成4次部分编程操作一共需要20次(因为4次部分编程需要的编程循环一样,所以一共需要4*5次)编程循环,一共减少了3次编程循环,整体上减少了对没有被执行编程操作的存储单元的干扰,提高Nand flash存储器的可靠性。
以上过程中,若是经过测试,在不对存储单元产生损伤的前提下,将目标数量设定的更高,那么后面三次的部分编程操作可以减少更多的编程循环,则整体上会更多的减少对没有被执行编程操作的存储单元的干扰,更多地提高Nand flash存储器的可靠性。
以上是以一个地址1的wl为例来例举说明的,而地址2的wl采用与地址1的wl同样的方案,可以根据地址2的wl上存储单元的特性,设置不同的目标数量,也同样减少完成地址2的wl上存储单元执行编程操作需要的编程循环,从而一个块中若干个wl都采用相同的方案,就整体上减少了对没有被执行编程操作的存储单元的干扰,提高Nand flash存储器的可靠性。
需要说的是,以上实施中例举的数据只是为了更好的解释本发明实施例而例举的简单数据,并不代表Nand flash存储器实际的具体数据。
本发明实施例一种部分编程的装置,该装置应用于Nand flash存储器,Nandflash存储器包括:存储单元,部分编程的装置包括:
第一接模块,用于接收第一次部分编程操作指令;
第一验证模块,用于根据第一次部分编程操作指令,对对应于第一次部分编程操作指令的存储单元执行第一次编程验证操作;
第一记录模块,用于若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数;
完成模块,用于完成第一次部分编程操作指令对应的部分编程操作;
第二接收指令,用于接收第二次部分编程操作指令;
确定模块,用于根据次数,确定目标电压;
第一加压模块,用于根据第二次部分编程操作指令,对对应于第二次部分编程操作指令的存储单元执行第二次部分编程操作指令对应的编程加压操作,第二次部分编程操作指令对应的编程加压操作以目标电压为执行第二次部分编程操作指令对应的编程加压操作的初始电压值。
可选地,部分编程的装置还包括:
第二加压模块,用于若第一次编程验证通过的存储单元的数量未达到目标数量,则对对应于第一次部分编程操作指令的存储单元,执行第一次部分编程操作指令对应的编程加压操作;
第二验证模块,用于对第一次部分编程操作指令对应的存储单元,执行第一次部分编程操作指令对应的第二次编程验证操作;
第二记录模块,用于若第二次编程验证通过的存储单元的数量达到目标数量,则记录对应第二次编程验证通过时的编程操加压操作的次数。
可选地,第一记录模块包括:
记录区域寄存器子模块,用于若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在存储单元字线的空闲区域中;
还用于,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在Nand flash存储器的寄存器中。
可选地,确定模块包括:
读取区域寄存器子模块,用于读取存储单元字线的空闲区域中记录的次数,根据次数,确定目标电压的电压值;
还用于,读取Nand flash存储器的寄存器中记录的次数,根据次数,确定目标电压的电压值。
可选地,部分编程的装置还包括:
取值模块,用于目标电压的电压值取值,其值为Nand flash存储器执行部分编程操作的初始电压值加上次数乘以预设值。
通过上述实施例,本发明在执行第一次部分编程操作时,对该部分编程操作指令的存储单元执行第一次编程验证操作,若第一次编程验证通过的存储单元的数量达到目标数量,则记录该次编程验证通过时的编程操加压操作的次数在字线的空闲区域中,或者Nand flash存储器的寄存器中,之后按照正常编程操作结束第一次部分编程操作;若第一次编程验证通过的存储单元的数量未达到目标数量,则对对应于第一次部分编程操作指令的存储单元,执行第一次部分编程操作指令对应的编程加压操作,之后执行第一次部分编程操作指令对应的第二次编程验证操作,若第二次编程验证通过的存储单元的数量达到目标数量,则记录对应第二次编程验证通过时的编程操加压操作的次数在字线的空闲区域中,或者Nand flash存储器的寄存器中。在进行第二次部分编程操作时,首先读取出记录的次数,根据次数确定目标电压,之后对对应于第二次部分编程操作指令的存储单元,以目标电压为初始电压执行第二次部分编程操作指令对应的编程加压操作。这样就减少了第二次部分编程操作所需的编程循环次数,从而整体上减少了对没有被执行编程操作的存储单元的干扰,提高Nand flash存储器的可靠性。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种部分编程的方法,其特征在于,所述方法应用于Nand flash存储器,所述Nandflash存储器包括:存储单元,所述方法包括:
接收第一次部分编程操作指令;
根据所述第一次部分编程操作指令,对对应于所述第一次部分编程操作指令的存储单元执行第一次编程验证操作;
若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数;
完成所述第一次部分编程操作指令对应的部分编程操作;
接收第二次部分编程操作指令;
根据所述次数,确定目标电压;
根据所述第二次部分编程操作指令,对对应于所述第二次部分编程操作指令的存储单元执行所述第二次部分编程操作指令对应的编程加压操作,所述第二次部分编程操作指令对应的编程加压操作以所述目标电压为执行所述第二次部分编程操作指令对应的编程加压操作的初始电压值。
2.根据权利要求1所述的方法,其特征在于,在根据所述第一次部分编程操作指令,对对应于所述第一次部分编程操作指令的存储单元执行第一次编程验证操作之后,所述方法还包括:
若第一次编程验证通过的存储单元的数量未达到目标数量,则对对应于所述第一次部分编程操作指令的存储单元,执行所述第一次部分编程操作指令对应的编程加压操作;
对所述第一次部分编程操作指令对应的存储单元,执行所述第一次部分编程操作指令对应的第二次编程验证操作;
若第二次编程验证通过的存储单元的数量达到目标数量,则记录对应第二次编程验证通过时的编程操加压操作的次数。
3.根据权利要求1所述的方法,其特征在于,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数,包括:
若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在所述存储单元字线的空闲区域中;
或者,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在所述Nand flash存储器的寄存器中。
4.根据权利要求3所述的方法,其特征在于,根据所述次数,确定目标电压,包括:
读取所述存储单元字线的空闲区域中记录的所述次数,根据所述次数,确定目标电压的电压值;
或者,读取所述Nand flash存储器的寄存器中记录的所述次数,根据所述次数,确定目标电压的电压值。
5.根据权利要求1-4任一所述的方法,其特征在于,所述目标电压的电压值取值为:
所述Nand flash存储器执行部分编程操作的初始电压值加上所述次数乘以预设值。
6.一种部分编程的装置,其特征在于,所述装置应用于Nand flash存储器,所述Nandflash存储器包括:存储单元,所述装置包括:
第一接模块,用于接收第一次部分编程操作指令;
第一验证模块,用于根据所述第一次部分编程操作指令,对对应于所述第一次部分编程操作指令的存储单元执行第一次编程验证操作;
第一记录模块,用于若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数;
完成模块,用于完成所述第一次部分编程操作指令对应的部分编程操作;
第二接收指令,用于接收第二次部分编程操作指令;
确定模块,用于根据所述次数,确定目标电压;
第一加压模块,用于根据所述第二次部分编程操作指令,对对应于所述第二次部分编程操作指令的存储单元执行所述第二次部分编程操作指令对应的编程加压操作,所述第二次部分编程操作指令对应的编程加压操作以所述目标电压为执行所述第二次部分编程操作指令对应的编程加压操作的初始电压值。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二加压模块,用于若第一次编程验证通过的存储单元的数量未达到目标数量,则对对应于所述第一次部分编程操作指令的存储单元,执行所述第一次部分编程操作指令对应的编程加压操作;
第二验证模块,用于对所述第一次部分编程操作指令对应的存储单元,执行所述第一次部分编程操作指令对应的第二次编程验证操作;
第二记录模块,用于若第二次编程验证通过的存储单元的数量达到目标数量,则记录对应第二次编程验证通过时的编程操加压操作的次数。
8.根据权利要求6所述的装置,其特征在于,所述第一记录模块包括:
记录区域寄存器子模块,用于若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在所述存储单元字线的空闲区域中;
还用于,若第一次编程验证通过的存储单元的数量达到目标数量,则记录对应第一次编程验证通过时的编程操加压操作的次数在所述Nand flash存储器的寄存器中。
9.根据权利要求8所述的装置,其特征在于,所述确定模块包括:
读取区域寄存器子模块,用于读取所述存储单元字线的空闲区域中记录的所述次数,根据所述次数,确定目标电压的电压值;
还用于,读取所述Nand flash存储器的寄存器中记录的所述次数,根据所述次数,确定目标电压的电压值。
10.根据权利要求6-9任一所述的装置,其特征在于,所述装置还包括:
取值模块,用于所述目标电压的电压值取值,其值为所述Nand flash存储器执行部分编程操作的初始电压值加上所述次数乘以预设值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910399724.0A CN111951856B (zh) | 2019-05-14 | 2019-05-14 | 一种部分编程的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910399724.0A CN111951856B (zh) | 2019-05-14 | 2019-05-14 | 一种部分编程的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111951856A true CN111951856A (zh) | 2020-11-17 |
CN111951856B CN111951856B (zh) | 2023-06-02 |
Family
ID=73335699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910399724.0A Active CN111951856B (zh) | 2019-05-14 | 2019-05-14 | 一种部分编程的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111951856B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080266970A1 (en) * | 2007-04-25 | 2008-10-30 | June Lee | Programming and/or erasing a memory device in response to its program and/or erase history |
CN101625899A (zh) * | 2008-07-10 | 2010-01-13 | 海力士半导体有限公司 | 对非易失性存储器件进行编程的方法 |
CN101794618A (zh) * | 2009-02-04 | 2010-08-04 | 海力士半导体有限公司 | 非易失性存储器件及其操作方法 |
CN102651235A (zh) * | 2011-02-28 | 2012-08-29 | 海力士半导体有限公司 | 非易失性存储装置及其操作方法 |
US20140226406A1 (en) * | 2013-02-11 | 2014-08-14 | Sandisk Technologies Inc. | Efficient Smart Verify Method For Programming 3D Non-Volatile Memory |
-
2019
- 2019-05-14 CN CN201910399724.0A patent/CN111951856B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080266970A1 (en) * | 2007-04-25 | 2008-10-30 | June Lee | Programming and/or erasing a memory device in response to its program and/or erase history |
CN101625899A (zh) * | 2008-07-10 | 2010-01-13 | 海力士半导体有限公司 | 对非易失性存储器件进行编程的方法 |
CN101794618A (zh) * | 2009-02-04 | 2010-08-04 | 海力士半导体有限公司 | 非易失性存储器件及其操作方法 |
CN102651235A (zh) * | 2011-02-28 | 2012-08-29 | 海力士半导体有限公司 | 非易失性存储装置及其操作方法 |
US20140226406A1 (en) * | 2013-02-11 | 2014-08-14 | Sandisk Technologies Inc. | Efficient Smart Verify Method For Programming 3D Non-Volatile Memory |
Also Published As
Publication number | Publication date |
---|---|
CN111951856B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4655245B2 (ja) | フラッシュメモリ装置におけるメモリブロック消去 | |
KR100945057B1 (ko) | 비휘발성 메모리 사이클에 따른 시작 프로그램 전압 시프트 | |
JP3672435B2 (ja) | 不揮発性メモリ装置 | |
CN108122588A (zh) | 非易失性存储器设备及包括其的存储设备 | |
CN103489479B (zh) | 半导体存储器件及其操作方法 | |
JP5741427B2 (ja) | 半導体記憶装置の試験方法及び半導体記憶装置 | |
KR20120006936A (ko) | 비휘발성 메모리 블록의 소프트 프로그램 | |
CN103680620A (zh) | 使用软编程的非易失性存储器(nvm) | |
CN106856102B (zh) | 一种Nand Flash的编程方法 | |
US8335113B2 (en) | Flash memory and data erasing method of the same | |
CN101447231A (zh) | 用于执行非易失性存储器件中的擦除操作的方法 | |
CN106920571A (zh) | 一种Nand Flash的编程方法 | |
WO2008048798A1 (en) | Partitioned erase and erase verification in non-volatile memory | |
CN111951856A (zh) | 一种部分编程的方法和装置 | |
KR100861378B1 (ko) | 플래시 메모리소자의 프로그램 방법 | |
CN111951868B (zh) | 一种控制擦除的方法和装置 | |
CN109390016A (zh) | Nor型闪存的擦除方法及装置 | |
JP2004071092A (ja) | 消去動作時間を短縮したフラッシュメモリ | |
CN106328202B (zh) | 闪存装置及数据擦除方法 | |
CN111863087B (zh) | 一种控制编程性能的方法和装置 | |
CN109509503A (zh) | 编程非易失性存储器的方法及存储器系统 | |
CN111863081A (zh) | 一种控制NOR flash存储器编程验证的方法和装置 | |
CN104428838A (zh) | 针对检测保护的虚拟存储器擦除或编程方法 | |
CN109979515B (zh) | 一种存储器编程方法及相关装置 | |
EP0681295A1 (en) | Burn-in method for nonvolatile flash - EPROM memory devices |
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 | ||
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: XI'AN GEYI ANCHUANG 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: XI'AN GEYI ANCHUANG INTEGRATED CIRCUIT Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |