CN109658964B - 闪存器的数据写入方法及装置、存储设备及存储介质 - Google Patents
闪存器的数据写入方法及装置、存储设备及存储介质 Download PDFInfo
- Publication number
- CN109658964B CN109658964B CN201811362520.1A CN201811362520A CN109658964B CN 109658964 B CN109658964 B CN 109658964B CN 201811362520 A CN201811362520 A CN 201811362520A CN 109658964 B CN109658964 B CN 109658964B
- Authority
- CN
- China
- Prior art keywords
- programming
- voltage
- pulse
- flash memory
- current
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- 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
Landscapes
- Read Only Memory (AREA)
Abstract
本发明实施例公开了一种闪存器的数据写入方法及装置、存储设备及存储介质。所述方法,包括:利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,其中,所述编程脉冲的脉冲宽度,与编程电压和导通电压之间压差正相关。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种闪存器的数据写入方法及装置、存储设备及存储介质。
背景技术
闪存器的写入速度取决于闪存器的编程时间;若编程时间越短,则闪存器的写入速度越快。与此同时,闪存器一旦制作完成,其闪存器耐高压时间限制了最长总编程时间,最长总编程时间确定了,若单次编程时间较长,则闪存器的可编程次数就越少。故如何减少闪存器的编程时间,是现有技术亟待进一步解决的问题。
发明内容
有鉴于此,本发明实施例期望提供一种闪存器的数据写入方法及装置、存储设备及存储介质。
本发明的技术方案是这样实现的:
一种闪存器的数据写入方法,包括:
利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,其中,所述编程脉冲的脉冲宽度,与编程电压和导通电压之间压差正相关。
基于上述方案,所述利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,包括:
利用台阶型脉冲对所述闪存器进行编程,其中,所述台阶型脉冲包括:M个编程台阶,第P+1个编程台阶的脉冲电压高于第P个编程台阶的脉冲电压,P为小于M的正整数,M为不小于2的正整数。
基于上述方案,所述利用台阶型脉冲对所述闪存器进行编程,包括:
根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压等于所述导通电压及所述编程步长之和;
利用当前编程台阶对所述闪存器进行编程;
确定当前编程台阶的脉冲电压是否等于所述编程电压,若所述当前编程台阶的脉冲电压小于所述编程电压,重新确定当前编程台阶的脉冲电压;若所述当前编程台阶的脉冲电压等于所述编程电压,验证所述闪存器的编程是否成功。
基于上述方案,所述利用台阶型脉冲对所述闪存器进行编程,还包括:
根据所述编程脉冲的脉冲宽度,确定台阶型脉冲所包括的编程台阶个数M,;
利用包含有M个编程台阶的所述台阶型脉冲对所述闪存器进行编程。
基于上述方案,所述利用包含有M个编程台阶的所述台阶型脉冲对所述闪存器进行编程,包括:
确定当前编程台阶是否为第M个编程台阶;
若当前编程台阶不是第M个编程台阶,根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压为所述导通电压和所述编程步长之和;
利用当前编程台阶对所述闪存器进行编程;
若当前编程台阶是第M个编程台阶,验证所述闪存器的编程是否成功。
基于上述方案,所述利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,还包括:
利用一个斜坡型脉冲,对所述闪存器进行数据写入的编程,其中,所述斜坡型脉冲包括:斜坡区和平坦区,其中,所述斜坡区的最低电压等于所述导通电压;所述斜坡区的最高电压等于所述平坦区的电压,且等于所述编程电压。
基于上述方案,所述方法还包括:
在利用所述斜坡型脉冲对所述闪存器进行数据写入的编程之前,确定所述编程脉冲的脉冲宽度。
一种闪存器的数据写入装置,包括:
编程模块,用于利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,其中,可变脉冲宽度所述编程脉冲的脉冲宽度,与编程电压和导通电压之间压差正相关。
基于上述方案,所述编程模块,具体用于利用台阶型脉冲对所述闪存器进行编程,其中,所述台阶型脉冲包括:M个编程台阶,第P+1个编程台阶的脉冲电压高于第P个编程台阶的脉冲电压,P为小于M的正整数,M为不小于2的正整数。
基于上述方案,所述编程模块,包括:
第一确定子模块,用于根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压等于所述导通电压及所述编程步长之和;
第一编程子模块,用于利用当前编程台阶对所述闪存器进行编程;
第二确定子模块,用于确定当前编程台阶的脉冲电压是否等于所述编程电压,若所述当前编程台阶的脉冲电压小于所述编程电压,重新确定当前编程台阶的脉冲电压;若所述当前编程台阶的脉冲电压等于所述编程电压,验证所述闪存器的编程是否成功。
基于上述方案,所述编程模块,包括:
第三确定模块,用于根据所述编程脉冲的脉冲宽度,确定台阶型脉冲所包括的编程台阶个数M;
第二编程子模块,用于利用包含有M个编程台阶的所述台阶型脉冲对所述闪存器进行编程。
基于上述方案,所述第二编程子模块,具体用于确定当前编程台阶是否为第M个编程台阶;若当前编程台阶不是第M个编程台阶,根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压为所述导通电压和所述编程步长之和;利用当前编程台阶对所述闪存器进行编程;若当前编程台阶是第M个编程台阶,验证所述闪存器的编程是否成功。
基于上述方案,所述编程模块,具体用于利用一个斜坡型脉冲,对所述闪存器进行数据写入的编程,其中,所述斜坡型脉冲包括:斜坡区和平坦区,其中,所述斜坡区的最低电压等于所述导通电压;所述斜坡区的最高电压等于所述平坦区的电压,且等于所述编程电压。
基于上述方案,所述装置还包括:
确定模块,用于在利用所述斜坡型脉冲对所述闪存器进行数据写入的编程之前,确定所述编程脉冲的脉冲宽度。
一种存储设备,包括:
闪存器,
处理器,与所述闪存器连接,用于通过计算机可指令的执行,利用前述任意技术方案提供的方法对所述闪存器进行数据写入的编程。
一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令被执行后,能够实现前述任意技术方案提供的方法。
本发明实施例提供的闪存器的数据写入方法及装置、存储设备及存储介质,在进行闪存器的编程时,利用不同的编程电压进行编程时,不再是采用统一脉冲宽度,而是根据不同编程电压与导通电压之间的压差正相关的不同脉冲宽度;如此,第一方面,可以减少编程电压比较低时能够快速从导通电压抬升到编程电压的编程过程中所浪费的时间,从而提升了编程速度,进一步提升了闪存器的数据写入速率;第二方面,由于单次编程的编程时间减少了,相当于减少了闪存器中存储单元在单次编程经受编程电压(较高电压)的耐压时间,如此,在存储单元总耐高压时间不变的情况下,由于单次编程所需的耐高压时间减少了,从而增加了存储单元的可编程次数,从而整体上增长了闪存器的可编程次数;第三方面,由于单次编程维持高压的时间缩短了,从而减少了存储设备维持高压的时间,从而减少了维持高压所产生的编程功耗,故节省了存储器的功耗。
附图说明
图1为本发明实施例提供的第一种闪存器的数据写入方法的流程示意图;
图2为本发明实施例提供的一种台阶型脉冲的示意图;
图3为本发明实施例提供的第二种闪存器的数据写入方法的流程示意图;
图4为本发明实施例提供的第三种闪存器的数据写入方法的流程示意图
图5为本发明实施例提供的一种斜坡型脉冲的示意图;
图6为本发明实施例提供的第四种闪存器的数据写入方法的流程示意图;
图7为本发明实施例提供的一种闪存器的数据写入装置的结构示意图;
图8为本发明实施例提供的一种利用斜坡型脉冲的编程电压变化示意图;
图9为本发明实施例提供的一种闪存器的编程状态切换示意图;
图10为本发明实施例提供的一种利用台阶型脉冲的编程电压变化示意图;
图11为本发明实施例提供的第五种闪存器的数据写入方法的流程示意图;
图12为本发明实施例提供的第六种闪存器的数据写入方法的流程示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
如图1所示,本实施例提供一种闪存器的数据写入方法,包括:
步骤S110:利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,其中,所述编程脉冲的脉冲宽度,与编程电压和导通电压之间压差正相关。
本实施例中所述闪存器可为各种类型的闪存器,所述闪存器可包括:二维闪存器或三维闪存器。
所述闪存器包括:存储阵列;所述存储阵列由排列成行和列的存储单元形成。
在存储阵列中的存储单元分别与字线和位线连接。位线与存储单元的栅极连接,位线与存储单元的源极和漏极连接。
如此,在字线上输入大于存储单元的开启电压的电压时,则存储单元被开启,可供基于位线上的电压对存储单元进行数据写入和数据读取,例如,写入“0”或“1”。字线和位线可正交。
在字线上输入电压供存储单元的数据写入,可认为是:对存储器的编程。
在一些实施例中,在字线上输入的电压是通过具有一定电压值的脉冲累加得到的,这种脉冲即为前述的编程脉冲。
在存储器的一次编程过程中,有的字线被选中,有的字线不被选中。被选中的字线所连接的存储单元中至少部分是需要写入数据;不被选中的字线选中的存储单元是禁止数据写入的存储单元。
存储单元能够被编程,则需要向存储单元冲入电荷,从而需要写入数据的存储单元所连接的字线上施加一个大于导通电压(Vpass)的编程电压,才可成功对存储单元进行数据写入。被选中的字线上所传输的编程电压是需要比导通电压高。
利用字线上的编程脉冲进行数据写入;为了确保编程成功,会利用脉冲电压抬升编程方式进行编程。所述脉冲电压抬升编程方式是指:利用多个不同编程电压的编程脉冲进行编程。若较低脉冲电压的编程脉冲编程失败,则提升编程电压,以具有更高的编程电压的编程脉冲,直到编程成功或者编程脉冲达到最大编程电压。脉冲电压抬升编程方式从Vpass增大编程脉冲的编程电压。
在相关技术中,为了实现最大编程电压的编程脉冲有足够的时间能够达到最大编程电压值,不同编程电压的编程脉冲都会采用同一个脉冲宽度,以确保最大编程电压的编程脉冲可以达到最大编程电压。脉冲宽度越大,则表示编程脉冲在时域上占用的时长越长。但是如此,对于编程电压较小的编程脉冲,可以在较短的时间内就达到编程电压,若采用同一个脉冲宽度,对于较小脉冲电压的编程脉冲而言显然是有时间浪费的;如此,就统计数据而言,若多次编程台阶编程过程中,所有的编程脉冲都采用相同的脉冲宽度,会降低编程效率,从而导致数据写入速度慢;与此同时,对于存储单元而言产生了不必要的耐高压时间,从而消耗了存储单元的有效耐高压时间,减少了存储单元的可供写入的次数。
针对上述情况,在本实施例中,用于编程的编程脉冲采用的可变脉冲宽度是与导通电压和编程电压之间的压差正相关的。
此处的正相关,可包括:导通电压和编程电压之间的压值满足正比例关系。
例如,在一些实施例中,所述可变脉冲宽度与所述压差之间的关系可如下:
T1/(Vpgm1-Vpass)=T2/(Vpgm2-Vpass)=T3/(Vpgm3-Vpass)=……Tmax/(Vpgmmax-Vpass)。其中,Vpgm1小于Vpgm2;Vpgm2小于Vpgm3,且Vpgmmax为最大编程电压。显然,T1小于T2,T2小于T3,且Tmax最大。
如此,编程电压越高则编程电压和导通电压之间的压差就越大,则编程脉冲的脉冲宽度就越大。若编程电压越低,则编程电压和导通电压之间的压差就越小,则编程脉冲的脉冲宽度就越小;如此,大大的缩短了编程电压低时不必要的脉冲宽度、编程时间及编程开销;提升了编程效率、提升了闪存器的数据写入效率、增加了存储单元可供数据写入的次数。
在一些实施例中,所述步骤S110可包括:
利用台阶型脉冲对所述闪存器进行编程,其中,所述台阶型脉冲包括:M个编程台阶,第P+1个编程台阶的脉冲电压高于第P个编程台阶的脉冲电压,P为小于M的正整数,M为不小于2的正整数。第1个编程台阶至第M-1个编程台阶的脉冲宽度可以相等也可以不相等;若所述第1编程台阶至第M-1编程台阶的脉冲宽度相等,则更加简便的控制台阶型脉冲的当前脉冲宽度。
编程脉冲根据其波形不同,可以分为多种;例如,台阶型脉冲和斜坡型脉冲。台阶型脉冲可认为是由多个编程台阶组成。图2所示的为一种台阶型脉冲的示意图,在该台阶性脉冲中包含有6个编程台阶,分别是编程台阶1、编程台阶2、编程台阶3、编程台阶4、编程台阶5及编程台阶6;编程台阶1的脉冲电压小于编程台阶2的脉冲电压;编程台阶2的脉冲电压小于编程台阶3的脉冲电压;编程台阶3的脉冲电压小于编程台阶4的脉冲电压;编程台阶4的脉冲电压小于编程台阶5的脉冲电压;编程台阶5的脉冲电压小于编程台阶6的脉冲电压。在图2所示的台阶型脉冲中,至少前6个编程台阶的脉冲宽度是相等的。第6个编程台阶的脉冲宽度可与前述5个编程台阶的脉冲宽度相等,也可以与前5个编程台阶的脉冲宽度不相等。例如,在一些实施例中,台阶型脉冲的最后一个编程台阶的脉冲宽度等于预设脉冲宽度,该预设脉冲宽度可与台阶型脉冲的前M-1个编程台阶的脉冲宽度相等,也可以为前M-1个编程台阶的脉冲宽度的S倍,该S可为不小于1正整数。
台阶型脉冲的最后一个编程台阶的脉冲电压等于所述编程电压,则在图2中编程台阶5的编程电压等于所述编程电压。在一些实施例中,组成台阶型脉冲的任意两个编程台阶的脉冲电压之差相等。
利用台阶型脉冲,可以使得脉冲电压逐个编程台阶的增长,最后达到编程电压,从而在达到编程电压之后,可供存储器对对应的存储单元进行数据写入。
在一些实施例中,如图3所示,所述步骤S110可包括:
步骤S111:根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压等于所述导通电压及所述编程步长之和;
步骤S112:利用当前编程台阶对所述闪存器进行编程;
步骤S113:确定当前编程台阶的脉冲电压是否等于所述编程电压;若否,则进入步骤S114,若是则进入步骤S115;
步骤S114:重新确定当前编程台阶的脉冲电压,并返回步骤S113,即在当前编程台阶的脉冲高电压小于所述编程电压时,会重新确定当前编程台阶的脉冲电压,并在重新确定当前编程台阶的编程电压之后返回步骤S113;
步骤S115:验证所述闪存器的编程是否成功。即,在确定出若所述当前编程台阶的脉冲电压等于所述编程电压之后,会进入到验证步骤,从而验证闪存器的本次编程是否成功。
在本实施例中,台阶型脉冲的第1个编程台阶的脉冲电压为导通电压与编程步长之和。若确定出一个编程台阶之后,利用该编程台阶作用于闪存器,例如,利用该当前编程台阶作用于闪存器被选择的字线。该编程台阶的脉冲宽度可为预设宽度。一个台阶型脉冲中的前M-1个编程台阶的第一脉冲宽度和最后一个编程台阶的第二脉冲宽度都可以通过查找参数表所确定。该参数表可以存储有本次编程电压的参数表;但是在本实施例中该参数表还可包括:编程步长及所述第一脉冲宽度和/或第二脉冲宽度。例如,若第一脉冲宽度和第二脉冲宽度相等,则参数表中可以仅存储第一脉冲宽度和第二脉冲宽度中的一个,若第一脉冲宽度和第二脉冲宽度不相等,则所述参数表中可以同时存储有所述第一脉冲宽度和所述第二脉冲宽度。
在步骤S113中若确定了当前编程台阶的脉冲电压不等于本次的编程电压,则说明当前还需要继续增加脉冲电压,故会返回步骤S111进一步添加脉冲电压并形成一个新的当前脉冲电压。在步骤S113中若发现当前编程台阶的脉冲电压达到所述编程电压,则可以直接或等待预定时长之后进入到闪存器的编程是否成功的验证步骤。
闪存器的编程过程中的编程周期可包括:编程时间段和验证时间段,在编程时间段内,进行数据编程;在验证时间段内进行编程是否成功的验证。若利用编程电压抬升式编程方式,在每更换一次编程电压,则进行一次编程是否成功的验证。在验证时间段内,在字线上写入验证电压;该验证电压低于所述导通电压。
在本实施例中所述验证步骤为:验证对应的存储单元是否写入的期望的数据、是否成功完成了数据擦除等验证操作。在编程电压抬升式编程方式中,若在当前编程电压进行编程通过验证,则停止抬升编程电压,不再继续编程,否则重复编程电压抬升、编程及验证的步骤值到达到最大编程电压。
在一些实施例中,如图4所示,所述步骤S110还包括:
步骤S121:根据所述编程脉冲的脉冲宽度,确定台阶型脉冲所包括的编程台阶个数M,其中,M为大于P的正整数;
步骤S122:利用包含有M个编程台阶的所述台阶型脉冲对所述闪存器进行编程。
在本实施例中,S110首先会确定出可变脉冲宽度确定出所包含的编程台阶个数M。然后利用包含M个编程台阶的台阶型脉冲编程。
例如,所述步骤S122可包括:
确定当前编程台阶是否为第M个编程台阶;
若当前编程台阶不是第M个编程台阶,根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压为所述导通电压和所述编程步长之和;
利用当前编程台阶对所述闪存器进行编程;
若当前编程台阶是第M个编程台阶,验证所述闪存器的编程是否成功。
从上述方案可知,在本实施例中,不再判断当前脉冲的编程电压是否达到编程电压,而是直接判断当前编程台阶是否为第M个编程台阶,若为第M个编程台阶,则停止根据编程步长继续抬升编程脉冲电压。
在本实施例中,前述的参数表中可存储有与编程电压对应的编程台阶个数(M);故在本实施例中在确定出编程电压,通过查表可以确定出所述M。
在还有一些实施例中,M的取值还可以是根据计算函数,以所述编程电压为因变量计算出的。
总之,确定M的方式有多种,具体实现不局限于上述任意一种。
在一些实施例中,所述步骤S110还包括:
利用一个斜坡型脉冲,对所述闪存器进行数据写入的编程,其中,所述斜坡型脉冲包括:斜坡区和平坦区,其中,所述斜坡区的最低电压等于所述导通电压;所述斜坡区的最高电压等于所述平坦区的电压,且等于所述编程电压。
图5所示的为一个斜坡型脉冲。利用斜坡型脉冲同样可以对应闪存器进行数据写入的编程。比较图2及图5可知,台阶型脉冲的波形呈较为明显的阶梯状;斜坡型脉冲的波形曲线为具有可变斜率的斜坡。在产生所述台阶型脉冲时,脉冲产生器将会阶跃式的增加脉冲电压,每次阶跃式增加的电压值等于所述编程步长。在产生所述斜坡型脉冲时,脉冲产生器会持续增长脉冲电压直到谐波型脉冲的电压达到编程电压。
在本实施例中,一个编程电压对应于一个斜坡型脉冲。
在一些实施例中,如图6所示,所述方法还包括:
步骤S100:在利用所述斜坡型脉冲对所述闪存器进行数据写入的编程之前,确定所述编程电压的脉冲宽度。
所述步骤S110可包括:利用一个脉冲宽度等于所述确定的脉冲宽度的斜坡型脉冲,对闪存器进行数据写入的编程。
在本实施例中,需要确定本次编程时所述斜坡型脉冲的脉冲宽度,例如,通过查询参数表的方式确定所述编程脉冲的脉冲宽度。
例如,在所述参数表中存储有压差与脉冲宽度的对应关系。
再例如,在所述参数表中存储有编程电压与脉冲宽度的对应关系;由于闪存器的导通电压一般是固定的,若编程电压确定了,则编程电压和导通电压之间的压差是确定的,如此,在参数表中也可以直接存储了编程电压和脉冲宽度的对应关系。
还例如,在电压抬升编程方式中,第X次脉冲电压抬升之后编程电压是确定的,故在参数表中还可以存储有编程电压的电压抬升序号和脉冲宽度的对应关系。
总之,本实施例中提供了一种基于参数表的查询确定所述编程脉冲的脉冲宽度的方式。
在还有些实施例中,还可以设置有函数关系,该函数关系可以编程电压和导通电压之间的压差与脉冲宽度之间的换算关系,也可以是编程电压和脉冲宽度之间的换算关系,故还可以通过函数关系计算出所述编程脉冲的脉冲宽度。
在计算出所述编程脉冲的脉冲宽度之后,可以根据编程脉冲的脉冲宽度控制脉冲产生器(例如,振荡器)产生等于所述可变脉冲宽度的斜坡型脉冲。
如图7所示,本实施例提供一种闪存器的数据写入装置,包括:
编程模块,用于利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,其中,所述编程脉冲的脉冲宽度,与编程电压和导通电压之间压差正相关。
在一些实施例中,该编程模块可为:程序模块,被存储设备中的处理器执行后就能够实现对闪存器的数据编程。
在还有一些实施例中,该编程模块还可为软硬件模块,例如,该编程模块可为复杂可编程阵列或者现场可编程阵列等。
在一些实施例中,所述编程模块,具体用于利用台阶型脉冲对所述闪存器进行编程,其中,所述台阶型脉冲包括:M个编程台阶,第P+1个编程台阶的脉冲电压高于第P个编程台阶的脉冲电压P为小于M的正整数,M为不小于2的正整数。在一些实施例中,P为小于M的正整数。
在一些实施例中,所述编程模块,包括:
第一确定子模块,用于根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压等于所述导通电压及所述编程步长之和;
第一编程子模块,用于利用当前编程台阶对所述闪存器进行编程;
第二确定子模块,用于确定当前编程台阶的脉冲电压是否等于所述编程电压,若所述当前编程台阶的脉冲电压小于所述编程电压,重新确定当前编程台阶的脉冲电压;若所述当前编程台阶的脉冲电压等于所述编程电压,验证所述闪存器的编程是否成功。
在还有一些实施例中,所述编程模块,包括:
第三确定模块,用于根据所述编程脉冲的脉冲宽度,确定台阶型脉冲所包括的编程台阶个数M;
第二编程子模块,用于利用包含有M个编程台阶的所述台阶型脉冲对所述闪存器进行编程。
在一些实施例中,所述第二编程子模块,具体用于确定当前编程台阶是否为第M个编程台阶;若当前编程台阶不是第M个编程台阶,根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压为所述导通电压和所述编程步长之和;利用当前编程台阶对所述闪存器进行编程;若当前编程台阶是第M个编程台阶,验证所述闪存器的编程是否成功。
在一些实施例中,所述编程模块,具体用于利用一个斜坡型脉冲,对所述闪存器进行数据写入的编程,其中,所述斜坡型脉冲包括:斜坡区和平坦区,其中,所述斜坡区的最低电压等于所述导通电压;所述斜坡区的最高电压等于所述平坦区的电压,且等于所述编程电压。
在一些实施例中,所述装置还包括:
确定模块,用于在利用所述斜坡型脉冲对所述闪存器进行数据写入的编程之前,确定所述编程脉冲的脉冲宽度。
以下结合上述任意实施例提供几个具体示例:
示例1:
在本示例中利用脉冲电压抬升方式对闪存器进行编程。在脉冲电压抬升方式编程的过程中使用的编程脉冲可以简称ISPP;ISPP可为increment step programming pulse的缩写。
图8所示为一种ISPP的示意图,在图8中横轴为时间轴,纵轴为选择的字线(Selected Word Line,Sel WL)电压。在图8中编程电压用Vpgm表示,在图8中展示有Vpgm1、Vpgm2、Vpgm3……至VpgmS。Vstep为相邻两个编程电压的编程步长。脉冲宽度T1、T2、T3……至Ts分别对应于Vpgm1、Vpgm2、Vpgm3……至VpgmS。且不同编程电压的脉冲宽度(即前述的可变脉冲宽度)满足T1/ΔV1=T2/ΔV2……=TS/ΔVS。
ΔV1为Vpgm1与导通电压(Vpass)之间的压差;ΔV2为Vpgm2与导通电压(Vpass)之间的压差;ΔV3为Vpgm3与导通电压(Vpass)之间的压差;……ΔVS为VpgmS与导通电压(Vpass)之间的压差。
如此,ΔV1<ΔV2<ΔV3…<ΔV,T1<T2<T3…<Ts。
如此,一次脉冲电压抬升编程方式中的相对于每个编程电压都使用对应的可变的脉冲宽度,编程时间大大的缩短,从而加速了数据写入的速度;同时减少了存储单元在一次编程中需要经受住高压的时间,如此,存储单元总耐高压时间不变的情况下,存储单元可编程的次数增加了,即提升了闪存器可写入数据的总次数。
图9可为本示例提供的一种闪存器的数据写入方法,可包括:
确定Vpgms,s小于S;S为不小于2的正整数;
查询参数表;
确定脉冲宽度Ts;
进入下一循环周期。该下一个循环周期可为下一个数据写入周期。
示例2:
本示例提供一种利用台阶型脉冲的闪存器的数据写入方法,可包括:以固定的编程步长使得脉冲电压达到当前的编程电压;在脉冲电压的抬升过程中作用于闪存器,从而对闪存器进行编程。编程电压的比导通电压至少大一个编程步长。
图10为一种台阶性脉冲的脉冲电压编程方式的脉冲示意图。图10中横轴为时间轴,纵轴为选择的字线的编程电压。从图10中可知每一个编程电压对应的编程脉冲都是一个由多个编程台阶组成的台阶型脉冲组成。
图11为本示例提供的台阶型脉冲的闪存器的数据写入方法,可包括:
下载需要编程数据,确定编程地址,基于参数表设置编程电压初始值,将脉冲计数值设置为0;
判断脉冲计数值是否等于最大脉冲计数值;
若是,结束本次编程;
若否,执行编程,所述编程可包括:初始化、编程地址的复位、对编程地址所对应的字线施加导通电压(Vpass);
以编程步长抬升Vpgm;
Vpgm的抬升次数执行加1操作;
判断抬升次数达到预定次数;
若否,返回Vpgm的抬升步骤;
若是,PGM、Vpgm及Vpass的恢复及完成;此处的PGM表示编程;所述Vpgm及Vpass的恢复表示将Vpgm及Vpass的电压值降到初始值;
执行编程验证;
判断是否通过编程验证,例如,判断编程失败的比特数小于最大允许值;
若验证通过,则本次编程结束;
若验证未通过,执行Vpgm=Vpgm+Vstep,Pusle count=Pusle count+1,并返回前述脉冲计数值是否等于最大脉冲计数值的步骤;其中,Vpgm为编程电压,Vstep为编程步长;Pusle count为脉冲计数值。
示例3:
本示例提供一种利用斜坡型脉冲的闪存器的数据写入方法,可包括:利用最大电压等于编程电压的斜坡型脉冲进行闪存器的编程。
图8为一种斜坡型脉冲的脉冲电压编程方式的脉冲示意图。图8中横轴为时间轴,纵轴为选择的字线的编程电压。从图8中可知每一个编程电压对应的编程脉冲都对应一个斜坡型脉冲,相邻两个斜坡型脉冲的电压是逐步抬升的。
如图12所示,本示例提供的方法可具体包括:
下载需要编程数据,确定编程地址,基于参数表设置编程电压初始值,将脉冲计数值设置为0;
判断脉冲计数值是否等于最大脉冲计数值;
若是,结束本次编程;
若否,执行编程,所述编程可包括:初始化、编程地址的复位、对编程地址所对应的字线施加导通电压(Vpass);
查询参数表确定本次编程电压Vpgm对应的可变脉冲宽度T;设置T,使得编程电压从Vpass斜线上升到Vpgm;
Vpgm恢复、Vpass恢复及完成;此处的Vpgm恢复、Vpass恢复的电压降压都初始电压值;
执行编程验证;
判断是否通过编程验证,例如,判断编程失败的比特数小于最大允许值;例如,对整页存储单元进行数据编程,然后读取出本次写入的数据,与原本要写入的数据进行比对,若错误的比特数小于最大允许值,则确定编程成功(即验证通过,否则编程失败(即验证不通过)。
若验证通过,则本次编程结束;
若验证未通过,执行Vpgm=Vpgm+Vstep,Pusle count=Pusle count+1,并返回前述脉冲计数值是否等于最大脉冲计数值的步骤;其中,Vpgm为编程电压,Vstep为编程步长;Pusle count为脉冲计数值。
本实施例还提供一种存储设备,包括:
闪存器,
处理器,与所述闪存器连接,用于通过计算机可指令的执行,利用前述任意实施例提供的方法对所述闪存器进行数据写入的编程,例如,如图1、图3、图4、图6、图11及图12所示方法中的一个或多个。
在一些实施例中,该处理器与闪存器之间的连接可以利用总线与闪存器建立有连接,该总线可为:集成电路总线或外设互连总线。
在另一些实施例中,该处理器与闪存器之间的连接可为:利用通用输入/输入(General Purpose Input Out,GPIO)连接。
该处理器可为各种类型具有信息处理功能的器件,例如,中央处理器(CPU)、微处理器(MCU)、数字信号处理器(DSP)或嵌入式处理器(E C)等。
一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令被执行后,能够前述一个或多个技术方案提供的闪存器的数据写入方法,例如,如图1、图3、图4、图6、图11及图12所示方法中的一个或多个。
本实施例提供的存储介质可为各种类型的存储介质,可选为非瞬间存储介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读闪存器(Read-Only Memory,ROM)、随机存取闪存器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种闪存器的数据写入方法,其特征在于,包括:
利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,其中,所述编程脉冲的脉冲宽度,与编程电压和导通电压之间压差正相关;
其中所述编程脉冲的脉冲宽度与所述编程电压和所述导通电压之间压差正相关,具体为:
所述编程脉冲的脉冲宽度与所述编程电压和所述导通电压之间的压差呈正比例关系。
2.根据权利要求1所述的方法,其特征在于,
所述利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,包括:
利用台阶型脉冲对所述闪存器进行编程,其中,所述台阶型脉冲包括:M个编程台阶,第P+1个编程台阶的脉冲电压高于第P个编程台阶的脉冲电压,P为小于M的正整数,M为不小于2的正整数。
3.根据权利要求2所述的方法,其特征在于,
所述利用台阶型脉冲对所述闪存器进行编程,包括:
根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压等于所述导通电压及所述编程步长之和;
利用当前编程台阶对所述闪存器进行编程;
确定当前编程台阶的脉冲电压是否等于所述编程电压,若所述当前编程台阶的脉冲电压小于所述编程电压,重新确定当前编程台阶的脉冲电压;若所述当前编程台阶的脉冲电压等于所述编程电压,验证所述闪存器的编程是否成功。
4.根据权利要求2所述的方法,其特征在于,
所述利用台阶型脉冲对所述闪存器进行编程,还包括:
根据所述编程脉冲的脉冲宽度,确定台阶型脉冲所包括的编程台阶个数M;
利用包含有M个编程台阶的所述台阶型脉冲对所述闪存器进行编程。
5.根据权利要求4所述的方法,其特征在于,所述利用包含有M个编程台阶的所述台阶型脉冲对所述闪存器进行编程,包括:
确定当前编程台阶是否为第M个编程台阶;
若当前编程台阶不是第M个编程台阶,根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压为所述导通电压和所述编程步长之和;
利用当前编程台阶对所述闪存器进行编程;
若当前编程台阶是第M个编程台阶,验证所述闪存器的编程是否成功。
6.根据权利要求1所述的方法,其特征在于,
所述利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,还包括:
利用一个斜坡型脉冲,对所述闪存器进行数据写入的编程,其中,所述斜坡型脉冲包括:斜坡区和平坦区,其中,所述斜坡区的最低电压等于所述导通电压;所述斜坡区的最高电压等于所述平坦区的电压,且等于所述编程电压。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在利用所述斜坡型脉冲对所述闪存器进行数据写入的编程之前,确定所述编程脉冲的脉冲宽度。
8.一种闪存器的数据写入装置,其特征在于,包括:
编程模块,用于利用可变脉冲宽度的编程脉冲,对闪存器进行数据写入,其中,可变脉冲宽度所述编程脉冲的脉冲宽度,与编程电压和导通电压之间压差正相关;
其中所述编程脉冲的脉冲宽度与所述编程电压和所述导通电压之间压差正相关,具体为:
所述编程脉冲的脉冲宽度与所述编程电压和所述导通电压之间的压差呈正比例关系。
9.根据权利要求8所述的装置,其特征在于,
所述编程模块,具体用于利用台阶型脉冲对所述闪存器进行编程,其中,所述台阶型脉冲包括:M个编程台阶,第P+1个编程台阶的脉冲电压高于第P个编程台阶的脉冲电压,P为小于M的正整数,M为不小于2的正整数。
10.根据权利要求9所述的装置,其特征在于,
所述编程模块,包括:
第一确定子模块,用于根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压等于所述导通电压及所述编程步长之和;
第一编程子模块,用于利用当前编程台阶对所述闪存器进行编程;
第二确定子模块,用于确定当前编程台阶的脉冲电压是否等于所述编程电压,若所述当前编程台阶的脉冲电压小于所述编程电压,重新确定当前编程台阶的脉冲电压;若所述当前编程台阶的脉冲电压等于所述编程电压,验证所述闪存器的编程是否成功。
11.根据权利要求8所述的装置,其特征在于,
所述编程模块,包括:
第三确定模块,用于根据所述编程脉冲的脉冲宽度,确定台阶型脉冲所包括的编程台阶个数M;
第二编程子模块,用于利用包含有M个编程台阶的所述台阶型脉冲对所述闪存器进行编程。
12.根据权利要求11所述的装置,其特征在于,所述第二编程子模块,具体用于确定当前编程台阶是否为第M个编程台阶;若当前编程台阶不是第M个编程台阶,根据前一个编程台阶的脉冲电压及编程步长,确定当前编程台阶的脉冲电压,其中,第1个编程台阶的脉冲电压为所述导通电压和所述编程步长之和;利用当前编程台阶对所述闪存器进行编程;若当前编程台阶是第M个编程台阶,验证所述闪存器的编程是否成功。
13.根据权利要求8所述的装置,其特征在于,
所述编程模块,具体用于利用一个斜坡型脉冲,对所述闪存器进行数据写入的编程,其中,所述斜坡型脉冲包括:斜坡区和平坦区,其中,所述斜坡区的最低电压等于所述导通电压;所述斜坡区的最高电压等于所述平坦区的电压,且等于所述编程电压。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
确定模块,用于在利用所述斜坡型脉冲对所述闪存器进行数据写入的编程之前,确定所述编程脉冲的脉冲宽度。
15.一种存储设备,包括:
闪存器,
处理器,与所述闪存器连接,用于通过计算机可指令的执行,利用权利要求1至7任一项提供的方法对所述闪存器进行数据写入的编程。
16.一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令被执行后,能够实现1至7任一项提供的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811362520.1A CN109658964B (zh) | 2018-11-15 | 2018-11-15 | 闪存器的数据写入方法及装置、存储设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811362520.1A CN109658964B (zh) | 2018-11-15 | 2018-11-15 | 闪存器的数据写入方法及装置、存储设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109658964A CN109658964A (zh) | 2019-04-19 |
CN109658964B true CN109658964B (zh) | 2020-08-14 |
Family
ID=66111277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811362520.1A Active CN109658964B (zh) | 2018-11-15 | 2018-11-15 | 闪存器的数据写入方法及装置、存储设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109658964B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102663034B1 (ko) | 2019-08-28 | 2024-05-03 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 플래시 메모리 디바이스에서의 프로그래밍 방법 |
CN111712877B (zh) * | 2020-05-06 | 2021-06-08 | 长江存储科技有限责任公司 | 非易失性存储器件及其控制方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100865804B1 (ko) * | 2006-12-28 | 2008-10-28 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 ispp 전압 발생기 및 그프로그램 방법 |
US7882407B2 (en) * | 2007-12-17 | 2011-02-01 | Qualcomm Incorporated | Adapting word line pulse widths in memory systems |
JP2010134986A (ja) * | 2008-12-03 | 2010-06-17 | Sony Corp | 抵抗変化型メモリデバイス |
-
2018
- 2018-11-15 CN CN201811362520.1A patent/CN109658964B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109658964A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107750381B (zh) | 使用存储器器件中的不同感测节点电压的验证操作 | |
US7064986B2 (en) | Non-volatile semiconductor memory device using differential start programming voltage and programming method thereof | |
KR101285576B1 (ko) | 비휘발성 메모리를 프로그래밍/소거하기 위한 방법 및 장치 | |
US6912155B2 (en) | Non volatile memory | |
JP5450013B2 (ja) | 不揮発性半導体記憶装置 | |
JP5598677B2 (ja) | メモリの動作条件に作用するためのパラメータを含むメモリ命令 | |
KR102240082B1 (ko) | 멀티-레벨 패스 신호를 이용한 메모리들의 프로그래밍 | |
TW200917259A (en) | Programming multilevel cell memory arrays | |
KR101705294B1 (ko) | 플래시 메모리 및 그 프로그램 방법 | |
KR20140013383A (ko) | 불휘발성 메모리 장치 및 그것의 동작 방법 | |
US9281021B2 (en) | Method and apparatus for reduced read latency for consecutive read operations of memory of an integrated circuit | |
KR20160108770A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
CN103680615A (zh) | 半导体存储器件及其操作方法 | |
CN109658964B (zh) | 闪存器的数据写入方法及装置、存储设备及存储介质 | |
JP5931236B1 (ja) | 半導体装置の制御回路及び方法、並びに半導体装置 | |
KR20140134797A (ko) | 반도체 장치 및 이의 동작 방법 | |
KR20170011324A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
US9672914B1 (en) | Semiconductor memory device and operating method thereof | |
KR20100056860A (ko) | 비휘발성 메모리 소자의 프로그램 방법 | |
CN101501782A (zh) | 具有被控编程/擦除的非易失性存储器 | |
US9361951B2 (en) | Statistical peak-current management in non-volatile memory devices | |
JP2019075180A (ja) | 半導体記憶装置 | |
KR20210110382A (ko) | 메모리 디바이스를 프로그래밍하는 방법 | |
JP2024063130A (ja) | メモリデバイスおよびそのプログラミング方法 | |
US9953709B2 (en) | Semiconductor memory device and memory system |
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 |