CN110556150A - 一种存储单元的编程方法、装置、电子设备及存储介质 - Google Patents
一种存储单元的编程方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110556150A CN110556150A CN201810555032.6A CN201810555032A CN110556150A CN 110556150 A CN110556150 A CN 110556150A CN 201810555032 A CN201810555032 A CN 201810555032A CN 110556150 A CN110556150 A CN 110556150A
- Authority
- CN
- China
- Prior art keywords
- programming
- memory cells
- verification
- program
- memory cell
- 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.)
- Pending
Links
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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3468—Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
- G11C16/3481—Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开了一种存储单元的编程方法,该方法包括:对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作;若所述执行编程操作的总次数小于设定阈值,则对编程区域中设定等级的存储单元进行编程校验;若所述执行编程操作的总次数大于等于设定阈值,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;当编程区域的所有存储单元的校验结果均为通过时,编程过程结束,否则返回对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤。通过采用上述技术方案实现了快速将存储单元的阈值电压抬升到较高区域,节省了编程时间。
Description
技术领域
本发明实施例涉及存储技术领域,具体涉及一种存储单元的编程方法、装置、电子设备及存储介质。
背景技术
非易失闪存介质(Nand flash)是一种很常见的存储芯片,兼有随机存储器(Random Access Memory,RAM)和只读存储器(Read-Only Memory,ROM)的优点,数据掉电不会丢失,是一种可在***进行电擦写的存储器,同时具有改写速度快,存储容量大等优点,被广泛应用到电子产品中。按照每个存储单元存储数据的位数划分,Nand flash可被分成三类,分别是SLC(Single-Level Cell,单层单元)、MLC(Multi-Level Cell,多层单元)和TLC(Triple-Level Cell,三层单元),其中,SLC的每个存储单元存储一位(1bit)数据,MLC的每个存储单元存储2bit数据,TLC的每个存储单元存储3bit数据。数据的存储是通过控制存储单元阈值电压的分布来实现的,具体参见图1所示的一种TLC的存储单元阈值电压分布示意图,当存储单元的阈值电压落在A区域时,表示存储单元当前存储的数据为001,当存储单元的阈值电压落在B区域时,表示存储单元当前存储的数据为010,……当存储单元的阈值电压落在G区域时,表示存储单元当前存储的数据为111。
因此,要实现TLC存储单元正确存储数据,需要通过复杂的算法控制存储单元的阈值分布。参见图1所示,编程区域的所有存储单元的等级包括A-G七个等级,存储单元的等级A-G依据存储单元的目标阈值电压的分布范围划分,目标阈值电压的分布范围越高,则对应存储单元的等级越高。现有方案中,在对TLC的存储单元执行编程时,通常采用先对所有等级的存储单元执行编程操作,然后逐个校验,即先对包括等级A-G的所有存储单元执行编程操作,然后分别对等级为A、B、C、D、E、F以及G的存储单元进行编程校验,只有当所有等级的存储单元的校验结果均是通过(pass)时,整个编程过程才能结束,若有任何一个等级的存储单元的校验结果为不通过(fail),则需要重新对校验没通过的存储单元执行编程操作,然后再逐个校验,重复上述的编程-校验循环,直到所有等级的存储单元的校验结果均是通过,编程过程结束。可见,现有的编程过程需要花费较长的时间。
发明内容
本发明提供一种存储单元的编程方法、装置、电子设备及存储介质,实现了可以快速将存储单元的阈值电压抬升到较高区域,缩短了编程时间。
为实现上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供了一种存储单元的编程方法,所述方法包括:
对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作;
若所述执行编程操作的总次数小于设定阈值,则对编程区域中设定等级的存储单元进行编程校验;
若所述执行编程操作的总次数大于等于设定阈值,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;
当编程区域的所有存储单元的校验结果均为通过时,编程过程结束,否则返回对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤。
进一步的,所述对编程区域中设定等级的存储单元进行编程校验,包括:
对所述设定等级的存储单元逐个进行编程校验,并屏蔽编程校验通过的存储单元。
进一步的,所述设定等级的存储单元为编程区域中目标阈值电压分布在较低范围的存储单元。
进一步的,所述对编程区域中设定等级的存储单元进行编程校验,包括:
对所述设定等级的存储单元中等级最低的存储单元进行编程校验,若校验结果为不通过,则返回执行对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤;
若校验结果为通过,则对所述设定等级的存储单元中除校验已通过的存储单元之外的其他存储单元中等级最低的存储单元进行编程校验,并重复上述校验结果的判断操作,直到所述执行编程操作的总次数大于等于设定阈值;
其中,存储单元的等级依据存储单元的目标阈值电压的分布范围划分。
进一步的,所述对编程区域中设定等级的存储单元进行编程校验,包括:
对所述设定等级的存储单元中等级最低的存储单元进行编程校验,若校验结果为不通过,则返回执行对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤;
若校验结果为通过,则对所述设定等级的存储单元中除校验已通过的存储单元之外的其他存储单元中等级最低的存储单元进行编程校验,并重复上述校验结果的判断操作;
若所述设定等级的存储单元的校验结果均为通过,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;
其中,存储单元的等级依据存储单元的目标阈值电压的分布范围划分。
进一步的,所述对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验,包括:
对所述编程区域中除编程校验通过的存储单元之外的所有等级的存储单元逐个进行编程校验;
屏蔽编程校验通过的存储单元。
进一步的,所述对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验,包括:
对编程区域中除编程校验通过的存储单元之外的其他存储单元中等级最低的存储单元进行编程校验,若校验结果为不通过,则返回执行对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤;
若校验结果为通过,则继续对编程区域中除编程校验通过的存储单元之外的其他存储单元中等级最低的存储单元进行编程校验,并重复上述校验结果的判断操作,直到编程区域中所有存储单元的校验结果均为通过;
其中,存储单元的等级依据存储单元的目标阈值电压的分布范围划分。
进一步的,对存储单元执行编程操作,包括:
分别向存储单元的栅极以及漏极施加对应的编程电压。
进一步的,对存储单元进行编程校验,包括:
分别向存储单元的栅极施加对应的读电压;
依据与所述存储单元匹配的灵敏放大器设定节点处的电压值确定编程校验的结果是否为通过。
第二方面,本发明实施例提供了一种存储单元的编程装置,所述装置包括:
编程模块,用于对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作;
第一校验模块,用于若所述执行编程操作的总次数小于设定阈值,则对编程区域中设定等级的存储单元进行编程校验;
第二校验模块,用于若所述执行编程操作的总次数大于等于设定阈值,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;
结束模块,用于当编程区域的所有存储单元的校验结果均为通过时,编程过程结束;
返回执行模块,用于当所述所有存储单元的校验结果不是均为通过时,返回对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤。
第三方面,本发明实施例提供了一种电子设备,包括第一存储器、第一处理器及存储在存储器上并可在第一处理器上运行的计算机程序,所述第一处理器执行所述计算机程序时实现如上述第一方面所述的存储单元的编程方法。
第四方面,本发明实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如上述第一方面所述的存储单元的编程方法。
本发明实施例提供的一种存储单元的编程方法,通过当对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的总次数小于设定阈值时,只对编程区域中设定等级的存储单元进行编程校验,而不是对编程区域中所有等级的存储单元逐个进行编程校验,只有当所述执行编程操作的总次数大于等于设定阈值时,才对编程区域中除设定等级之外的存储单元进行编程校验的技术手段,实现了快速将存储单元的阈值电压抬升到较高区域,节省了编程时间。
附图说明
图1是一种TLC的存储单元阈值电压分布示意图;
图2是本发明实施例一中的一种存储单元的编程方法流程示意图;
图3为本发明实施例二中的一种存储单元的编程方法流程示意图;
图4为本发明实施例二中的再一种存储单元的编程方法流程示意图;
图5为本发明实施例二中的又一种存储单元的编程方法流程示意图;
图6为本发明实施例三中的一种存储单元的编程方法流程示意图;
图7为本发明实施例四中的一种存储单元的编程装置结构示意图;
图8为本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关而非全部结构。
实施例一
图2为本发明实施例一提供的一种存储单元的编程方法流程示意图,本实施例提供的编程方法可适用于对TLC类的Nand flash进行编程操作。可由存储单元的编程装置执行,该装置可通过软件和/或硬件的方式实现,一般集成在应用TLC类Nand flash的电子产品中。具体参见图2所示,本实施例提供的存储单元的编程方法具体包括如下步骤:
210、对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作。
其中,所述编程区域具体可以指一个编程页。flash芯片是由内部成千上万个存储单元组成的,多个存储单元组成页,多个页组成块,正是由于该特殊的物理结构,Nandflash以页为单位进行编程操作(或读/写数据),以块为单位进行擦除操作。字线连在一起的存储单元构成存储单元页。
示例性地,对存储单元执行编程操作,包括:
分别向存储单元的栅极以及漏极施加对应的编程电压,即向存储单元的字线以及位线分别施加一次对应的编程电压,目的是为了通过压差改变存储单元浮动栅极上电子的数量,从而实现改变存储单元阈值电压的目的。编程操作是为了使浮动栅极上的电子数量增多,从而抬升存储单元的阈值电压。由于一次编程操作向编程区域存储单元的字线、位线分别施加的编程电压只需持续ns级的时间,因此通常选择通过电荷泵来实现编程电压的施加。
需要说明的是,对编程区域执行第一次编程操作时,由于编程校验通过的存储单元为零,所以编程对象为编程区域中所有的存储单元,包括所有等级的存储单元,所述存储单元的所有等级可参见图1所示,针对TLC类的Nand flash,所述所有等级包括A-G七个等级,存储单元的等级(A-G)依据存储单元的目标阈值电压的分布范围划分,目标阈值电压的分布范围越高对应的存储单元的等级越高。所述目标阈值电压指将存储单元的阈值电压抬升之后的期望电压。由于TLC类的Nand flash的每个存储单元可以存储3bit数据,该3bit数据的存储是通过将存储单元的阈值电压抬升至不同的电压范围实现的,参见图1所示的一种TLC的存储单元阈值电压分布示意图,当存储单元的目标阈值电压落在A区域时,表示实现了存储单元对数据001的存储,当存储单元的目标阈值电压落在B区域时,表示实现了存储单元对数据010的存储,……当存储单元的目标阈值电压落在G区域时,表示实现了存储单元对数据111的存储。对编程区域执行一次编程操作之后,对设定等级的存储单元进行编程校验,若存在校验不通过的存储单元,则屏蔽校验通过的存储单元,继续对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作。由于编程区域中所有存储单元的字线是连接在一起的,屏蔽校验通过的存储单元可以通过改变校验通过的存储单元的位线电压来实现;校验通过的存储单元表示已经编程成功,即存储单元的阈值电压已经被抬升至目标阈值电压的范围,因此之后的编程操作的对象不包括校验通过的存储单元。
220、判断所述执行编程操作的总次数是否小于设定阈值,若是,则执行步骤230,否则执行步骤240。
230、对编程区域中设定等级的存储单元进行编程校验。
其中,所述设定等级的存储单元为编程区域中目标阈值电压分布在较低范围的存储单元且所述设定等级的存储单元为除编程校验通过的存储单元之外的存储单元。TLC类Nand flash的编程区域包括目标阈值电压分布在A-G七个等级的存储单元,所述编程区域中目标阈值电压分布在较低范围的存储单元具体可以指目标阈值电压分布在A-C中任何一个的存储单元。
由于对存储单元执行编程操作是将存储单元的阈值电压缓慢抬升的过程,因此,当对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的总次数小于设定阈值时,只对编程区域中设定等级的存储单元进行编程校验,所述设定等级的存储单元指编程区域中目标阈值电压分布在较低范围的存储单元。若设定较低等级的存储单元的校验结果为不通过,那较高等级的存储单元的校验结果通常也为不通过,因此无需对较高等级的存储单元进行编程校验,以缩短整个编程过程占用的时间,直接继续对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作,以快速将存储单元的阈值电压抬高至较高区域,提高编程速度。通过多次工程实践,当对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的总次数小于设定阈值时,较高等级的存储单元基本不会校验通过,因此无需对其进行编程校验。当对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的总次数大于等于设定阈值时,再开始对较高等级的存储单元进行编程校验;或者当较低等级的存储单元校验均通过后再开始对较高等级的存储单元进行编程校验。若设定的较低等级的存储单元校验结果均为通过且所述总次数小于设定阈值,此时可以不断地对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作,直到所述总次数大于等于设定阈值,再开始对较高等级的存储单元进行编程校验,以节省编程校验所需的时间。
示例性的,对存储单元进行编程校验,包括:
分别向存储单元的栅极施加对应的读电压;
依据与所述存储单元匹配的灵敏放大器设定节点处的电压值确定编程校验的结果是否为通过。若设定节点处的电压值低于设定值,则确定编程检验的结果为通过。与所述设定存储单元匹配的灵敏放大器的具体结构可参考现有技术,本实施例不再进行详细解释。
240、对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验。
250、判断编程区域的所有存储单元的校验结果是否均为通过,若是,则编程过程结束,否则返回步骤210。
本实施例提供的一种存储单元的编程方法,当对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的总次数小于设定阈值时,只对编程区域中较低等级的存储单元进行编程校验,而不对较高等级的存储单元进行编程校验,节省了整个编程过程所占的时间,实现了快速将存储单元的阈值电压抬升到较高区域的目的。
实施例二
图3为本发明实施例二提供的一种存储单元的编程方法流程示意图,在上述实施例的基础上,本实施例对操作“对编程区域中设定等级的存储单元进行编程校验”进行了具体化。参见图3所示,本实施例提供的存储单元的编程方法具体包括如下步骤:
310、对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作。
320、判断所述执行编程操作的总次数是否小于设定阈值,若是,则执行步骤330,否则执行步骤340。
330、对所述设定等级的存储单元逐个进行编程校验,并屏蔽编程校验通过的存储单元。
其中,假设所述设定等级的存储单元包括等级为A、B和C三个等级的存储单元,所述对设定等级的存储单元逐个进行编程校验具体为,分别对等级为A、B、C的存储单元进行编程校验,无论每个等级的存储单元的校验结果是通过还是不通过。本实施例不对A-C三个等级的存储单元进行编程校验的顺序做限定。
其中,屏蔽校验通过的存储单元可以通过改变校验通过的存储单元的位线电压来实现。
340、对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验。
具体的,对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验,包括:
对所述编程区域中除编程校验通过的存储单元之外的所有等级的存储单元逐个进行编程校验;
屏蔽编程校验通过的存储单元。
350、判断编程区域的所有存储单元的校验结果是否均为通过,若是,则结束流程,否则返回步骤310。
举例说明上述操作过程,假设编程区域包括等级为A-G七个等级的存储单元,所述设定等级的存储单元包括等级为A、B和C三个等级的存储单元,参见图4所示的另一种存储单元的编程方法流程示意图,所述方法包括:
410、对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作。
第一次执行编程操作的对象为等级为A-G的存储单元,即对编程区域中所有等级的存储单元进行编程操作。
420、对A等级的存储单元进行编程校验。
430、若编程校验的结果为不通过,则继续执行步骤440,否则执行步骤431。
431、屏蔽A等级的存储单元。
440、对B等级的存储单元进行编程校验。
450、若编程校验的结果为不通过,则继续执行步骤460,否则执行步骤451。
451、屏蔽B等级的存储单元。
460、对C等级的存储单元进行编程校验。
470、若编程校验的结果为不通过,则继续执行步骤480,否则执行步骤471。
471、屏蔽C等级的存储单元。
480、判断所述执行编程操作的总次数是否小于设定阈值,若是,则执行步骤490,否则返回步骤410。
需要说明的是,若设定等级的存储单元(本实施例中即等级为A、B、C的存储单元)均校验通过,且所述执行编程操作的总次数小于设定阈值,则不断地执行步骤410即可,不再对设定等级的存储单元进行编程校验,直到所述执行编程操作的总次数大于等于设定阈值。
490、对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作。
4100、对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验。
其中,对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验的过程可以参考步骤420-471,不再赘述。
4110、判断编程区域的所有存储单元的校验结果是否均为通过,若是,则结束流程,否则返回步骤490。
假设每个等级的存储单元的编程校验均为不通过,可参见图5所示的又一种存储单元的编程方法流程示意图,对上述操作过程进行了一定程度的解释。本实施例提供的一种存储单元的编程方法,当对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的总次数小于设定阈值时,只对编程区域中较低等级的存储单元进行编程校验,而不对较高等级的存储单元进行编程校验,节省了整个编程过程所占的时间,实现了快速将存储单元的阈值电压抬升到较高区域的目的。
本实施例提供的一种存储单元的编程方法,当对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的总次数小于设定阈值时,只对编程区域中较低等级的存储单元进行编程校验,而不对较高等级的存储单元进行编程校验,节省了整个编程过程所占的时间,实现了快速将存储单元的阈值电压抬升到较高区域的目的。
实施例三
图6为本发明实施例三提供的一种存储单元的编程方法流程示意图,在上述实施例的基础上,本实施例对操作“对编程区域中设定等级的存储单元进行编程校验”进行了优化,优化的好处是可以进一步节省编程时间。参见图6,本实施例提供的存储单元的编程方法具体包括如下步骤:
610、对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作。
620、判断所述执行编程操作的总次数是否小于设定阈值,若是,则执行步骤630,否则执行步骤660。
630、对所述设定等级的存储单元中等级最低的存储单元进行编程校验。
640、判断校验结果是否为通过,若是,则继续执行步骤650,否则返回执行步骤610。
650、对所述设定等级的存储单元中除校验已通过的存储单元之外的其他存储单元中等级最低的存储单元进行编程校验,并返回执行步骤640。
660、对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验。
670、判断编程区域的所有存储单元的编程校验结果是否均为通过,若是,则结束流程,否则返回执行步骤610。
同样举例说明上述过程,假设编程区域包括等级为A-G七个等级的存储单元,所述设定等级的存储单元包括等级为A、B和C三个等级的存储单元,进行编程校验的存储单元均为校验不通过的存储单元,一旦存储单元校验通过,则不再对该存储单元进行编辑以及校验操作。若所述执行编程操作的总次数小于设定阈值,则对等级为A的存储单元逐个进行编程校验,若等级为A的存储单元的校验结果为不通过,则不再对等级为B和C的存储单元进行编程校验,直接返回步骤610继续对等级为A-G的存储单元执行编程操作。若等级为A的存储单元的校验结果为通过,则屏蔽A等级的存储单元,继续对等级为B的存储单元进行编程校验,若等级为B的存储单元的校验结果为不通过,则不再对等级为C的存储单元进行编程校验,直接返回步骤610继续对等级为B-G的存储单元执行编程操作;若等级为B的存储单元的校验结果为通过,则屏蔽等级为B的存储单元,并继续对等级为C的存储单元进行编程校验,重复上述过程。若等级为A、B和C的存储单元校验结果均为通过,但是所述执行编程操作的总次数依然小于设定阈值,此时可以不断地对等级为D-G的存储单元执行编程操作,直到所述执行编程操作的总次数大于等于设定阈值,或者直接跳转至上述步骤650。
示例性地,所述对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验,包括:
对编程区域中除编程校验通过的存储单元之外所有等级的存储单元中等级最低的存储单元进行编程校验,若校验结果为不通过,则返回执行对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤;
若校验结果为通过,则继续对编程区域中除编程校验通过的存储单元之外所有等级的存储单元中等级最低的存储单元进行编程校验,并重复上述校验结果的判断操作,直到编程区域中所有存储单元的校验结果均为通过;
上述具体过程可以参考步骤630-650的过程,不再赘述。
本实施例提供的一种存储单元的编程方法,首先对编程区域所有的存储单元进行一次编程操作,然后对设定等级的存储单元中等级最低的存储单元进行编程校验,若校验不通过,则不再对设定等级的存储单元中剩余的存储单元进行编程校验,直接返回编程操作,若校验通过,则继续对设定等级的存储单元中剩余存储单元中等级最低的存储单元进行编程校验,进一步缩短了编程过程所占的时间,提高了编程效率。
实施例四
图7为本发明实施例四提供的一种存储单元的编程装置结构示意图。参见图7所示,所述装置包括:编程模块710、第一校验模块720、第二校验模块730、结束模块740和返回执行模块750;
其中,编程模块710,用于对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作;
第一校验模块720,用于若所述执行编程操作的总次数小于设定阈值,则对编程区域中设定等级的存储单元进行编程校验;
第二校验模块730,用于若所述执行编程操作的总次数大于等于设定阈值,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;
结束模块740,用于当编程区域的所有存储单元的校验结果均为通过时,编程过程结束;
返回执行模块750,用于当所述所有存储单元的校验结果不是均为通过时,返回对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤。
本实施例提供的一种存储单元的编程装置,当对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的总次数小于设定阈值时,只对编程区域中较低等级的存储单元进行编程校验,而不对较高等级的存储单元进行编程校验,节省了整个编程过程所占的时间,实现了快速将存储单元的阈值电压抬升到较高区域的目的。
实施例五
图8为本发明实施例五提供的一种电子设备的结构示意图。如图8所示,该电子设备包括:第一处理器870、第一存储器971及存储在第一存储器871上并可在第一处理器870上运行的计算机程序;其中,第一处理器870的数量可以是一个或多个,图8中以一个第一处理器870为例;第一处理器870执行所述计算机程序时实现如上述实施例一中所述的存储单元的编程方法。如图8所示,所述电子设备还可以包括第一输入装置872和第一输出装置873。第一处理器870、第一存储器871、第一输入装置872和第一输出装置873可以通过总线或其他方式连接,图8中以通过总线连接为例。
第一存储器871作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中存储单元的编程装置/模块(例如,存储单元的编程装置中的编程模块710和第一校验模块720等)。第一处理器870通过运行存储在第一存储器871中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的存储单元的编程方法。
第一存储器871可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,第一存储器871可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,第一存储器871可进一步包括相对于第一处理器870远程设置的存储器,这些远程存储器可以通过网络连接至电子设备/存储介质。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
第一输入装置872可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。第一输出装置873可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种存储单元的编程方法,该方法包括:
对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作;
若所述执行编程操作的总次数小于设定阈值,则对编程区域中设定等级的存储单元进行编程校验;
若所述执行编程操作的总次数大于等于设定阈值,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;
当编程区域的所有存储单元的校验结果均为通过时,编程过程结束,否则返回对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的存储单元的编程相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,存储介质,或者网络设备等)执行本发明各个实施例所述的。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种存储单元的编程方法,其特征在于,包括:
对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作;
若所述执行编程操作的总次数小于设定阈值,则对编程区域中设定等级的存储单元进行编程校验;
若所述执行编程操作的总次数大于等于设定阈值,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;
当编程区域的所有存储单元的校验结果均为通过时,编程过程结束,否则返回对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤。
2.根据权利要求1所述的方法,其特征在于,所述对编程区域中设定等级的存储单元进行编程校验,包括:
对所述设定等级的存储单元逐个进行编程校验,并屏蔽编程校验通过的存储单元。
3.根据权利要求1所述的方法,其特征在于,所述对编程区域中设定等级的存储单元进行编程校验,包括:
对所述设定等级的存储单元中等级最低的存储单元进行编程校验,若校验结果为不通过,则返回执行对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤;
若校验结果为通过,则对所述设定等级的存储单元中除校验已通过的存储单元之外的其他存储单元中等级最低的存储单元进行编程校验,并重复上述校验结果的判断操作,直到所述执行编程操作的总次数大于等于设定阈值;
其中,存储单元的等级依据存储单元的目标阈值电压的分布范围划分。
4.根据权利要求3所述的方法,其特征在于,所述对编程区域中设定等级的存储单元进行编程校验,包括:
对所述设定等级的存储单元中等级最低的存储单元进行编程校验,若校验结果为不通过,则返回执行对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤;
若校验结果为通过,则对所述设定等级的存储单元中除校验已通过的存储单元之外的其他存储单元中等级最低的存储单元进行编程校验,并重复上述校验结果的判断操作;
若所述设定等级的存储单元的校验结果均为通过,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;
其中,存储单元的等级依据存储单元的目标阈值电压的分布范围划分。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验,包括:
对所述编程区域中除编程校验通过的存储单元之外的所有等级的存储单元逐个进行编程校验;
屏蔽编程校验通过的存储单元。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验,包括:
对编程区域中除编程校验通过的存储单元之外所有等级的存储单元中等级最低的存储单元进行编程校验,若校验结果为不通过,则返回执行对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤;
若校验结果为通过,则继续对编程区域中除编程校验通过的存储单元之外所有等级的存储单元中等级最低的存储单元进行编程校验,并重复上述校验结果的判断操作,直到编程区域中所有存储单元的校验结果均为通过;
其中,存储单元的等级依据存储单元的目标阈值电压的分布范围划分。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述设定等级的存储单元为编程区域中目标阈值电压分布在较低范围的存储单元。
8.一种存储单元的编程装置,其特征在于,所述装置包括:
编程模块,用于对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作;
第一校验模块,用于若所述执行编程操作的总次数小于设定阈值,则对编程区域中设定等级的存储单元进行编程校验;
第二校验模块,用于若所述执行编程操作的总次数大于等于设定阈值,则对编程区域中除编程校验通过的存储单元之外的所有等级的存储单元进行编程校验;
结束模块,用于当编程区域的所有存储单元的校验结果均为通过时,编程过程结束;
返回执行模块,用于当所述所有存储单元的校验结果不是均为通过时,返回对编程区域中除编程校验通过的存储单元之外的其他存储单元执行编程操作的步骤。
9.一种电子设备,包括第一存储器、第一处理器及存储在存储器上并可在第一处理器上运行的计算机程序,其特征在于,所述第一处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的存储单元的编程方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如权利要求1-7中任一项所述的存储单元的编程方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810555032.6A CN110556150A (zh) | 2018-06-01 | 2018-06-01 | 一种存储单元的编程方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810555032.6A CN110556150A (zh) | 2018-06-01 | 2018-06-01 | 一种存储单元的编程方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110556150A true CN110556150A (zh) | 2019-12-10 |
Family
ID=68734551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810555032.6A Pending CN110556150A (zh) | 2018-06-01 | 2018-06-01 | 一种存储单元的编程方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110556150A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113409864A (zh) * | 2021-06-29 | 2021-09-17 | 芯天下技术股份有限公司 | 加快nor flash编程速度的方法、装置、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101711414A (zh) * | 2007-04-10 | 2010-05-19 | 桑迪士克公司 | 非易失性存储器和用于预测编程的方法 |
CN106663469A (zh) * | 2014-08-07 | 2017-05-10 | 桑迪士克科技有限责任公司 | 用于电流节省和快速编程的适应性选择性位线预充电 |
US20180040369A1 (en) * | 2005-07-14 | 2018-02-08 | Sau Ching Wong | Programming nonvolatile memory cells through a series of predetermined threshold voltages |
US20180090220A1 (en) * | 2016-09-26 | 2018-03-29 | Toshiba Memory Corporation | Semiconductor memory device |
-
2018
- 2018-06-01 CN CN201810555032.6A patent/CN110556150A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180040369A1 (en) * | 2005-07-14 | 2018-02-08 | Sau Ching Wong | Programming nonvolatile memory cells through a series of predetermined threshold voltages |
CN101711414A (zh) * | 2007-04-10 | 2010-05-19 | 桑迪士克公司 | 非易失性存储器和用于预测编程的方法 |
CN106663469A (zh) * | 2014-08-07 | 2017-05-10 | 桑迪士克科技有限责任公司 | 用于电流节省和快速编程的适应性选择性位线预充电 |
US20180090220A1 (en) * | 2016-09-26 | 2018-03-29 | Toshiba Memory Corporation | Semiconductor memory device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113409864A (zh) * | 2021-06-29 | 2021-09-17 | 芯天下技术股份有限公司 | 加快nor flash编程速度的方法、装置、电子设备 |
CN113409864B (zh) * | 2021-06-29 | 2024-02-06 | 芯天下技术股份有限公司 | 加快nor flash编程速度的方法、装置、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9281066B2 (en) | Dynamically configurable MLC state assignment | |
US10942796B2 (en) | Identifying asynchronous power loss | |
KR101134691B1 (ko) | 다중-레벨 비트 플래시 메모리 소거 알고리즘 | |
US20130135937A1 (en) | Programming memory cells using smaller step voltages for higher program levels | |
US20030123295A1 (en) | Programming non-volatile memory devices | |
US9378823B2 (en) | Programming a memory cell to a voltage to indicate a data value and after a relaxation time programming the memory cell to a second voltage to indicate the data value | |
US10541032B2 (en) | Responding to power loss | |
US20210151100A1 (en) | Method for programming memory system | |
CN110910938A (zh) | 一种数据纠正方法、装置、存储设备及存储介质 | |
CN110556150A (zh) | 一种存储单元的编程方法、装置、电子设备及存储介质 | |
US10580505B1 (en) | Erasing method used in flash memory | |
CN110556145A (zh) | 一种存储单元的编程方法、装置、电子设备及存储介质 | |
KR20100097964A (ko) | 불휘발성 메모리 장치의 소거 방법 및 그 독출 방법 | |
CN115470052A (zh) | 存储芯片的坏块检测方法、检测装置及存储介质 | |
US20220293192A1 (en) | De-noising using multiple threshold-expert machine learning models | |
CN110556146A (zh) | 一种存储单元的编程方法、装置、电子设备及存储介质 | |
CN113628659B (zh) | 一种擦除方法、装置及计算机可读存储介质 | |
JP2004164700A (ja) | 不揮発性半導体記憶装置および半導体集積回路装置 | |
US8045374B2 (en) | Erase verification method of flash memory by selectively assigning deselected sectors | |
CN110908825A (zh) | 一种数据读取方法、装置、存储设备及存储介质 | |
CN113900581A (zh) | 存储器装置及其读取方法 | |
CN110648714B (zh) | 数据的读取方法、装置、电子设备和存储介质 | |
CN102236584A (zh) | 用来抑制数据错误的方法以及相关的记忆装置及其控制器 | |
CN110910939B (zh) | 存储单元的阈值调整方法、装置、存储设备和存储介质 | |
TW201913681A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191210 |