CN104395965A - 用于在具有多个存储状态的非易失性存储单元中执行操作的设备和方法 - Google Patents
用于在具有多个存储状态的非易失性存储单元中执行操作的设备和方法 Download PDFInfo
- Publication number
- CN104395965A CN104395965A CN201380032997.2A CN201380032997A CN104395965A CN 104395965 A CN104395965 A CN 104395965A CN 201380032997 A CN201380032997 A CN 201380032997A CN 104395965 A CN104395965 A CN 104395965A
- Authority
- CN
- China
- Prior art keywords
- data
- voltage scope
- volatile memory
- program voltage
- memory cells
- 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/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
Abstract
公开了用于在具有多个存储状态的非易失性存储单元中执行操作的设备和方法。一种方法是用于在配置为存储多达N+1个位的非易失性存储单元中对N个位进行编程的方法,其中N是大于零的整数。用于编程的方法包括将N位数据编程到所述非易失性存储单元中。用于编程的方法还包括将作为所述N位数据的逻辑函数的额外数据位编程到所述非易失性存储单元中。所述非易失性存储单元被配置为提供用于位存储的2N+1个阈值电压范围,且根据所述逻辑函数:i)所述2N+1个阈值电压范围中的第一组2N个阈值电压范围用于存储所述N位数据;以及ii)与所述第一组交替的剩余的第二组2N个阈值电压范围未被使用。
Description
相关申请的交叉引用
本申请要求于2013年3月13日提交的标题为“APPARATUS ANDMETHODS FOR CARRYING OUT OPERATIONS IN A NON-VOLATILEMEMORY CELL HAVING MULTIPLE MEMORY STATES”的美国专利申请13/799,765和于2012年6月22日提交的且标题为“METHOD,DEVICE,APPARATUS,AND SYSTEMS FOR STORING DATA IN AMULTIPLE-BIT-PER-CELL(MBC)FLASH”的美国临时专利申请61/663,081的优先权,这两个专利申请通过引用全部被并入本文。
背景技术
非易失性计算机存储器是能够在没有能量被供应到存储器时保留所存储的信息的电子存储器。非易失性闪存使用多个存储单元来将信息存储为电荷。存储单元可被配置为例如NAND闪存或NOR闪存,其在利用大体类似的存储单元时具有不同的内部配置且在操作上稍微不同。
NAND闪存可被配置为所谓的单电平单元(SLC),其中单个二进制数字(位)存储在包括浮栅晶体管的存储单元中,浮栅晶体管可被配置在代表所存储的信息的单个位的两个分立阈值电压电平之一中。NAND闪存也可被配置为多电平单元(MLC),其中两个或更多个位被存储为四个或更多个分立阈值电压电平。
虽然今天制造的许多NAND闪存装置被配置为在单元中存储多个位,但依然存在一些应用,对于这些应用而言在每个单元中的单个位存储是有利的。为了将多个位存储在单元中,多个阈值电压范围被规定,且这些电压范围通常比在每单元单个位存储器中的电压范围被更紧密地间隔开。因此,每单元多个位存储器更容易遭受由于感测噪声、单元间干扰和电荷损失而导致的错误。此外,每单元多个位存储器通常具有较低的持久性,该持久性以可被成功地执行的编程和擦除(P/E)周期的数量表达。例如,每单元单个位存储器可允许大约100000个P/E周期,而每单元多个位存储器只可允许大约5000个或更少的P/E周期。
被配置为每单元单个位或每单元多个位存储器的NAND闪存可具有相同的基本设计,且仅在制造的最后阶段中例如通过金属掩膜或引线键合操作来将存储器配置用于每单元单个位或每单元多个位。为每单元单个位操作配置的NAND闪存将通常具有使用相同的制造技术实现并具有相同的硅面积的每单元多个位存储器的存储容量的大约一半或更少。另一方面,每单元多个位存储器的当前制造量远远超过每单元单个位存储器,且基于每位价格的每单元单个位存储器的成本明显高于每单元多个位存储器的成本。
发明内容
根据本发明的一个方面,提供了用于在配置为存储多达N+1个位的非易失性存储单元中对N个位进行编程的方法,其中N是大于零的整数。该方法包括将N位数据编程到所述非易失性存储单元中。该方法还包括将作为所述N位数据的逻辑函数的额外数据位编程到所述非易失性存储单元中。所述非易失性存储单元被配置为提供用于位存储的2N+1个阈值电压范围,且根据所述逻辑函数:i)所述2N+1个阈值电压范围中的第一组2N个阈值电压范围用于存储所述N位数据;以及ii)与所述第一组交替的剩余的第二组2N个阈值电压范围未被使用。
根据本发明的另一方面,提供了包括多个非易失性存储单元的存储器装置。非易失性存储单元的每个非易失性存储单元被配置为提供用于位存储的2N+1个阈值电压范围,其中N是大于零的整数。所述2N+1个阈值电压范围包括擦除电压范围和多个编程电压范围。所述多个编程电压范围包括与所述擦除电压范围相邻的第一编程电压范围和多个较高的编程电压范围。所述非易失性存储单元被配置为存储多达N+1个位,且存储器装置被配置为:a)将N位数据编程到所述非易失性存储单元中;以及b)将作为所述N位数据的逻辑函数的额外数据位编程到所述非易失性存储单元中。根据逻辑函数:i)所述2N+1个阈值电压范围中的第一组2N个阈值电压范围用于存储所述N位数据;以及ii)与所述第一组交替的剩余的第二组2N个阈值电压范围未被使用。
根据本发明的另一方面,提供了在具有多个非易失性存储单元的存储器装置中执行的方法。非易失性存储单元中的每个非易失性存储单元具有由包括擦除电压范围、第一编程电压范围、第二编程电压范围和第三编程电压范围的各个阈值电压范围定义的多个存储状态。第一编程电压范围相邻于擦除电压范围,且第二编程电压范围在第一编程电压范围和第三编程电压范围之间。当在两位存储模式中操作所述非易失性存储单元时,通过执行第一阶段编程以编程两位数据中的第一位并执行第二阶段编程以编程两位数据中的第二位来存储两位数据。当在一位存储模式中操作所述非易失性存储单元时,通过下列操作来存储单个数据位:如果所述单个数据位是数据“1”,则以升高单元阈值电压两次以达到所述第二编程电压范围的方式执行所述第一阶段编程和第二阶段编程,且如果所述单个数据位是数据“0”,则将所述单元阈值电压保持在所述擦除电压范围。
根据本发明的另一方面,提供了在包括非易失性存储器装置的系统中执行的方法。该方法包括从所述非易失性存储器装置的非易失性存储单元顺序地读取N位中间读数据,其中N是大于1的整数。该方法还包括向逻辑电路的N个输入端提供N位中间读数据。该方法还包括从逻辑电路的N-1个输出端输出N-1位最终读数据。
根据本发明的另一方面,提供了包括存储器装置的系统。存储器装置包括多个非易失性存储单元。存储器装置被配置为从至少一个非易失性存储单元顺序地读取N位中间读数据,其中N是大于1的整数。该系统还包括外部控制器,其包括逻辑电路。外部控制器配置成从存储器装置接收N位中间读数据,并向逻辑电路的N个输入端提供N位中间读数据。外部控制器还配置成从逻辑电路的N-1个输出端输出N-1位最终读数据。
根据本发明的另一方面,提供了存储器装置。存储器装置包括存储阵列,其包括多个非易失性存储单元。存储器装置还包括通信地耦合到存储阵列的逻辑电路。存储器装置配置成从至少一个非易失性存储单元顺序地读取N位中间读数据,其中N是大于1的整数。存储器装置还配置成向逻辑电路的N个输入端输入N位中间读数据,并从逻辑电路的N-1个输出端输出N-1位最终读数据。
根据本发明的另一方面,提供了用于将输入数据存储在具有多个存储状态的非易失性存储单元中的方法,所述多个存储状态提供用于存储多于一位数据的单元容量,所述多个存储状态由包括擦除电压范围和多个编程电压范围的各个阈值电压范围定义。该方法涉及接收具有小于单元容量的至少一位的输入数据,根据输入数据使用小于单元容量的至少一位来编程存储单元,使得至少一个额外的位不用于存储输入数据。该方法还涉及对输入数据执行逻辑函数以生成恢复数据,恢复数据可操作来使两个相邻定位的编程电压范围与单个存储状态相关联,以及将恢复数据编程到至少一个额外的位中。
根据本发明的另一方面,提供了存储器设备。设备包括多个非易失性存储单元,每个非易失性存储单元具有提供用于存储多于一位数据的单元容量的多个存储状态,所述多个存储状态由包括擦除电压范围和多个编程电压范围的各个阈值电压范围定义。存储器配置成通过根据所述输入数据使用小于所述单元容量的至少一位来编程所述存储单元,来存储具有小于所述单元容量的至少一位的输入数据,使得至少一个额外的位不用于存储所述输入数据。存储器还包括逻辑电路,其被配置为对所述输入数据执行逻辑函数以生成恢复数据,所述恢复数据能够操作来使两个相邻定位的编程电压范围与单个存储状态相关联,所述恢复数据被编程到所述至少一个额外的位中。
当结合附图阅读本发明的特定实施方式的下面的描述时,本发明的其它方面和特征将对本领域中的普通技术人员变得明显。
附图说明
现在将作为例子参考附图:
图1是非易失性存储单元的示意图;
图2是包含图1所示的存储单元的存储块的示意图;
图3是包含图2所示的存储块的存储器装置的方框图;
图4是包含图3的存储器装置的系统的方框图;
图5是基于阈值电压的存储单元的数量的分布的图形描述;
图6是基于阈值电压的存储单元的数量的分布的另一图形描述;
图7是根据示例的用于编程和读取存储单元的过程流程图;
图8是针对图7所示的过程示例的基于阈值电压的存储单元的数量的分布的图形描述;
图9是根据本发明的实施方式的用于编程存储单元的过程流程图;
图10是针对图9所示的过程实施方式的基于阈值电压的存储单元的数量的分布的图形描述;
图11是针对图9所示的过程实施方式的基于阈值电压的存储单元的数量的分布的另一图形描述;
图12是用于读取根据图9的过程存储在存储单元中的数据的过程流程图;
图13是用于实现根据图9的过程的可选实施方式的电压范围的图形描述;
图14是用于实现根据图9的过程的可选实施方式的电压范围的另一图形描述;
图15是用于读取根据图13和14的可选实施方式存储在存储单元中的数据的过程;
图16是用于将三位数据存储在单个存储单元中的电压范围的图形描述;
图17是用于读取根据图16的实施方式存储的两位数据的真值表;
图18是用于实现图17的真值表的组合逻辑电路实施方式的示意图;
图19是用于根据图17的本发明的实施方式将数据存储在存储单元中的真值表;
图20是用于实现图19的真值表的组合逻辑电路实施方式的示意图;
图21是用于根据图16-20所示的实施方式将数据存储在存储单元中的编程过程的流程图;
图22是用于根据图16-20所示的实施方式从存储单元读取数据的过程的流程图;
图23是根据本发明的另一实施方式用于从存储单元读取数据的过程;以及
图24是根据图23的实施方式用于存储两位数据的电压范围的图形描述。
具体实施方式
参考图1,在100概括性地示出非易失性存储单元的例子。存储单元100包括p型衬底102,该p型衬底102具有源极104、漏极106和穿过衬底在源极和漏极之间延伸的沟道108。存储单元100还包括控制栅极110和浮动栅极112。浮动栅极112布置在控制栅极110和衬底102之间,并被氧化物层114和116隔离。
为了配置存储单元100,相对高的电压被施加到控制栅极110,同时将源极104和漏极106保持在地电位处。这个操作(被称为“编程”)使沟道108中的电荷载子隧穿氧化物层116并被俘获在浮动栅极112上,从而建立由于隔离氧化物层114和116而被维持很长时间的电荷。
读取存储单元100涉及将较低的读电压施加到控制栅极110。在浮动栅极112上的电荷部分地抵消由读电压Vrd引起的电场,且浮动栅极112的电荷状态可通过在读电压所建立的条件下检测电流是否流经沟道来测试沟道108的传导性来确定。浮动栅极112上的电荷通常与单元阈值电压Vt相关联,且如果Vt小于Vrd,则沟道108应传导电流。然而如果单元阈值电压Vt大于Vrd,则沟道108将不传导电流。沟道传导可由感测放大器(未示出)检测,该感测放大器还可包括用于锁存从存储单元100读取的数据的逻辑电路。
为了将单个二进制数字(位)存储在存储单元100中,浮动栅极112被充电以实现阈值电压差(阈值电压Vt),其取决于从控制栅极110到浮动栅极112和从浮动栅极112到沟道108的电容。当浮动栅极112未被充电时,阈值电压Vt将通常是负的,其对应于是两个规定阈值电压范围中的第一个的擦除电压范围,并通常被分配给数据“1”。通过在存储单元上执行编程操作,存储单元100可被配置为落在编程电压范围内的阈值电压Vt,该编程电压范围为两个规定阈值电压范围中的第二个。编程操作通常涉及将编程电压Vpgm施加到控制栅极110,而将衬底102、源极104和漏极106保持在地电位处,同时如上所述通过测试沟道108的传导性来定期地检测在浮动栅极112上的积聚的电荷。编程因此涉及连续的充电周期,并且每个充电周期后面是感测周期。当在浮动栅极112上的积聚的电荷落在被分配到期望数据状态(例如数据“0”)的规定编程电压范围内时,编程被停止。
通常,将存储单元100配置在擦除状态中发生在作用于多个存储单元上的擦除操作中,其将每个单元重置到数据“1”。因此,当输入数据“1”被接收以用于存储在存储单元100中时,阈值电压Vt应在擦除电压范围内,而当输入数据“0”被接收到时,单元被编程以将阈值电压Vt移动到编程电压范围中。当期望将输入数据“1”存储在已经被编程(即,数据“0”)的存储单元100中时,单元连同多个其它存储单元必须首先在擦除操作中被擦除。
在图1中的120处示出表示存储单元的示意性符号。也可实现具有氮化硅或硅纳米晶体电荷陷阱的存储单元的可选配置来代替图1所示的浮栅存储单元100。
在一个例子中,存储单元可连接在串中以形成存储块,其一部分在图2中的200处被示出。存储块200包括在NAND串202中将源极串联连接到漏极的多个存储单元100(在本例中是32个存储单元)。存储块200包括地选择晶体管204,其具有连接到公共源极线220(CSL)的源极和连接到NAND串202中的第一存储单元206的源极的漏极。存储块200还包括串选择晶体管208,其具有连接到位线222(BL0)的漏极和连接到NAND串202中的第一存储单元210的漏极的源极。NAND串202中的每个存储单元具有连接到单元的控制栅极的字线(WL)。地选择晶体管204的控制栅极连接到地选择线224(GSL),且串选择晶体管208的控制栅极连接到串选择线226(SSL)。
在所示例子中,存储块200包括具有位线228(BL1)并与NAND串202共享相应的字线WL0-WL31的第二NAND串212。地选择线224和串选择线226也与NAND串202共享。存储块200将通常包括用于实现期望字节长度的多个NAND串。在图2中,另外的NAND串214和216被示为连接到相应的位线BLj-1和BLj。也可包括额外的NAND串以用于错误管理功能,例如存储由用于校正在例如读数据中的错误的ECC引擎使用的纠错码(ECC)。可通过将串选择信号施加到串选择线226并通过将适当的电压施加到地选择线224、字线和位线BL0-BLj来写入数据的字节或字或从存储器的页面读取数据的字节或字,如上面结合图1所示的存储单元100描述的。
在存储块200中的连接到公共字线的存储单元100通常被称为存储器的“页面”,且存储块200将因此包括存储器的32个页面。在所示例子中,存储块200是j个字节宽乘32个页面。将数据编程到存储块200和从存储块200读取数据在页面范围基础上发生,而存储单元的擦除通常在块范围基础上发生,即,块中的所有单元在块范围擦除操作中被一起擦除。部分块擦除也是可能的,如在标题为“Partial Block Erase Architecture for Flash Memory”的Kim的美国专利号7,804,718中所公开的。
在其它例子中,存储单元100可包含在与例如如图2所示的NAND串配置不同的存储器配置中。例如,如在图1中的100处概括性地示出的多个存储单元也可配置成提供NOR闪存或存储器的其它配置。
参考图3,在300示意性示出了存储器装置。存储器装置300包括布置在存储阵列302中的多个存储块200。存储器装置300还包括具有输入/输出接口306的控制器304,输入/输出接口306提供在存储器和在图4中示出的系统311的外部控制器309之间的接口功能。外部控制器可以是用于控制存储器装置300的操作的任何适当的装置,例如存储器控制器或处理器。
再次参考图3,存储器装置300还包括在控制器304和存储阵列302之间的互连308。互连308可包括用于在阵列302中的存储块200和控制器304(例如行解码器、字线、位线、列解码器、页面缓冲器和感测放大器)之间进行互连的多个常规存储器元件。控制器304控制存储器装置300的功能,例如执行在输入/输出端306上接收的命令、将在输入/输出端处接收的数据编程到存储阵列302、从存储阵列302读取数据、将数据提供到输入/输出端306以及从存储块200擦除数据。
当存储单元被编程时,阈值电压Vt可具有在编程电压范围内的一系列值中的任一个。因此,在存储块200和存储器装置300内的在同一电压范围中编程的不同存储单元100之间将存在阈值电压Vt的变化。参考图5,在350处用图形示出存储器(例如存储器装置300)的基于阈值电压Vt的存储单元100的数量的分布。在每个存储块200中,存储单元100中的一些将处于擦除状态中,并由于在浮动栅极112上的残留电荷的小差异,相应的阈值电压Vt分布在擦除电压范围352上。
在这种情况下,擦除电压范围352包括在范围的电压下限(Vel)和范围的电压上限(Veh)之间的阈值电压Vt。在统计上,在擦除状态中的较大数量的存储单元100会具有朝着擦除电压范围352的中心的阈值电压Vt,因而形成图5所示的分布。在这种情况下,擦除电压范围352包括在Vel和Veh之间的负电压,且具有在这个范围内的阈值电压的单元被用来表示数据“1”。
在编程期间,通过使负电荷积聚在浮动栅极112上来从擦除电压范围352内增加存储单元的阈值电压Vt,直到阈值电压在编程电压范围354内为止。编程电压范围354包括在范围的电压下限(Vpl)和范围的电压上限(Vph)之间的阈值电压Vt。在这种情况下,编程电压范围包括在Vpl和Vph之间的正电压,且在这个范围内的阈值电压Vt被用来表示数据“0”。
读取存储单元的存储状态通常涉及施加在Veh和Vpl之间的读电压Vrd以及测试沟道传导。对于图5所示的情况,这可涉及将0伏的读电压Vrd施加到位线并将0伏的电压施加到正被读取的页面的字线。电压也被施加到NAND串(图2中的202、212、214、216)中的其它存储单元100的所有字线以使这些存储单元的沟道传导。如果在这些条件下NAND串传导,则正被读取的存储单元具有在擦除电压范围352内的阈值电压Vt,且该单元因此在已擦除状态中以及数据“1”被读取。如果AND串不传导,则正被读取的单元具有在编程电压范围354内的阈值电压Vt,且单元因此在编程状态中(即,数据“0”被读取)。对于只为两个存储状态配置的存储单元,在电压范围352和354之间的间隔相对大,并提供相应地宽的读余量用于存储单元的可靠读取,即使特定单元的阈值电压漂移到电压范围352和354的外部。
电压范围352和354的上限和下限通常被选择为在将存储单元编程和擦除所花费的时间和单元中的数据存储的余量之间的折衷。虽然在电压范围352和354之间的较大间隔潜在地提供提高的余量用于更可靠的存储,但将存储单元编程和擦除所花费的时间增加了,因为在浮动栅极112上的电荷的较大积聚是较大的间隔所需的。回来参考图3,存储器装置300的控制器304包括用于配置电压范围352和354的一组阈值电压范围310。这组阈值电压范围310可包括存储在控制器的存储器区域中的Vel、Veh、Vpl和Vph的值,存储器区域用于存储操作算法和/或配置参数。可选地,可以通过例如金属掩膜或引线键合在制造期间在控制器304中硬编码电压范围310。用于编程存储单元100的电压范围352和354因此可沿着Vt轴移动和/或变宽或变窄,或者在制造时的配置步骤中,或者通过将配置存储在控制器304的代码存储设备中。
如图5所示的电压范围352和354的配置实现单个位在每个存储单元中的存储。存储器装置300可以可选地配置成在每个存储单元中实现多个存储状态,因而实现在每个单元中的数据的多个位的存储。通过将存储单元的浮动栅极112编程到在多个编程电压范围之一内的阈值电压Vt来提供多个存储状态。多个编程电压范围可由存储在控制器304中的一组阈值电压范围310规定。
参考图6,在380处用图形示出了用于将两位数据存储在每个存储单元中的基于阈值电压Vt的单元的数量的分布。每个单元的阈值电压Vt落在多个编程电压范围384和擦除电压范围382中的一个内。多个编程电压范围384包括相邻于擦除电压范围382的第一编程电压范围386和两个更高的编程电压范围388和390。电压范围382、386、388和390代表四个可能的存储状态,其中单元可被编程以存储两位数据。可以使用几种不同的编码方案将四个存储状态分配到四个可能的数据位组合“11”、“10”、“01”和“00”。在图6中示出一个可能的编码方案,其中擦除电压范围与数据“11”相关联,第一编程电压范围386与数据“10”相关联,且较高的编程电压范围388和390分别与数据“01”和“00”相关联。可选的编码方案可不同地分配多个编程电压范围384,同时仍然将擦除电压范围382分配给数据“11”。每个存储单元可因此用于存储数据的下页面位和数据的上页面位。
在存储器设备(例如存储器装置300)中,存储单元100通常具有在擦除电压范围382内的初始电压阈值Vt。此外,本领域中的技术人员将认识到,对于非易失性存储单元(例如NAND型存储单元或NOR型存储单元),可通过离子注入来调节初始电压阈值Vt。NAND和NOR存储单元都具有存储电子的浮动栅极。浮动栅极的空(即,无电子)的单元状态一般被设置为擦除状态。类似地,相应于浮动栅极中的电子的单元状态是编程状态。由于在NAND和NOR存储器中的单元结构,已擦除单元的Vt在NAND存储单元中是负的而在NOR存储单元中是正的。再次,已擦除单元Vt可通过离子注入被调节为负的或正的。
仍然参考图6,对数据的最低有效位进行编程涉及对浮动栅极112充电以将单元的阈值电压配置在第一编程电压范围386中,使得最低有效位从“1”改变到“0”。为了对较高阶的位进行编程,如果存储单元被配置在擦除电压范围382中,则浮动栅极112被充电以将单元阈值电压Vt配置在编程电压范围388内。如果单元已经被配置在第一编程电压范围386中,则浮动栅极112被充电以将单元电压配置在较高编程电压范围390中。
可通过将一系列读电压Vrd施加到存储单元的位线来读取根据图6所示的编码方案存储在存储单元中的数据,如之前在本文中所描述的。对于图6所示的编码方案,读取较高阶的位需要仅仅单个读电压V1的施加,如果沟道传导,则指示存储单元被配置在第一编程电压范围386或擦除电压范围382内。在这种情况下,较高阶的位被读作数据“1”。
读取最低有效位需要读电压V0、V1和V2的施加,如果沟道传导在电压V1处出现,则存储单元被配置为在第一编程电压范围386或擦除电压范围382内的阈值电压Vt,并且需要以电压V0进行进一步读取来确定最低有效位。如果沟道在读电压V0处传导,则存储单元被配置在擦除电压范围382内,且最低有效数据位是“1”。如果沟道传导不在电压V1处出现,则存储单元被配置为在两个较高编程电压范围388或390中的任一个内的阈值电压Vt,且需要以电压V2进行进一步读取来确定最低有效位。如果沟道在V2处传导,则存储单元被配置在编程电压范围388内,且最低有效数据位被读作数据“1”。读取最低有效位因此需要在电压V0、V1和V2的每个处测试沟道传导。
可为存储器装置300(在图3中示出)中的仅仅特定的存储块200或为存储器中的所有存储块实现用于存储数据的多个位的图6所示的电压范围配置。存储单元100和存储块200的物理配置可以是实质上类似的,而不论是存储数据的单个位还是多个位。可通过控制器304中的变化(例如通过改变这组阈值电压范围310并通过改变与读操作实现相关的算法)来实现该配置。
在图7中的400处概括性地示出了用于根据实施例对存储单元进行编程和读取的过程流程图。用于根据该实施例对存储单元进行编程的电压范围在图8中的430处概括性地示出并包括擦除电压阈值432和多个编程电压范围434。多个编程电压范围434包括相邻于擦除电压范围的第一编程电压范围436和多个较高的编程电压范围438和440。在图8中规定的电压范围大体对应于在图6中示出的电压范围,且存储单元因此具有用于存储两位数据的已配置容量。用于将四个存储状态分配给可能的数据位组合的编码方案也大体对应于图6中所示的编码方案。第一编程电压范围436与编程存储单元中的最低有效位相关联,而多个较高的编程电压范围438和440与编程存储单元中的较高阶的位相关联。
过程400在块402开始,其中存储单元处于擦除状态。过程400在块404继续,这时存储单元接收到用于在单元中编程的输入数据。在存储单元的容量是两位数据的这个示例实施例中,输入数据包括单个数据位。过程400然后在块406继续,其中输入数据的单个位被编程到上页面中。因此,如果输入数据是“1”,则存储单元的阈值电压Vt保持在擦除电压范围432中。然而,如果输入数据是“0”,则存储单元的阈值电压Vt移动到编程电压范围438中,如图8中的箭头442所指示的。第一编程电压范围436因此保持未被使用,且存储在存储单元中的输入数据由在擦除电压范围432或编程电压范围438中的存储单元的配置来指示。在本例中,编程电压范围440也保持未被使用。
输入数据的单个位被存储在处于编程电压范围438中的存储单元中。这提供在用于存储输入数据的单个位的电压范围432和438之间的较大间隔。此外,因为编程电压范围440也没有被使用,因此存储单元的编程时间也减小了,这是因为在浮动栅极112上的电荷只需要向上移动到中间编程电压范围438而不到较高的编程电压范围440。由于浮动栅极112的充电,编程较高的编程电压范围440与在存储单元上的较大应力相关,且避免这个电压范围的使用潜在地增加了存储单元在不可靠的存储变成问题之前可经受的编程周期的数量。
再次参考图7,现在描述过程400的读取过程。读取过程通常涉及将一系列读电压Vrd施加到存储单元的相应位线。在块452,通过施加单个读电压V1来读取上页面,如果沟道传导,则指示存储单元具有被配置在擦除电压范围438或第一编程电压范围436内的阈值电压Vt。因为第一编程电压范围436未被使用,在电压V1处(或在V0和V1之间的某个地方的可选电压处,如果MLC闪存装置将被如此定制)的单次读取应在技术上足以区分开在擦除电压范围432和编程电压范围438内的已配置阈值电压Vt。然而,在一些例子中,例如当过程400在标准MLC闪存装置中实现而没有与内部装置操作有关的某些读取定制时,读取过程在块454继续,其中如上面结合图6所述的通过施加读电压V0、V1和V2来读取下页面,用于读取存储在单元中的数据的最低有效位。
读取过程然后在块456继续,其中确定来自存储单元的中间读数据是否是数据“11”,在这种情况下,在块458,单元被确定为明确地被配置在擦除电压范围432中,且输出数据(最终读数据)因此是数据“1”。然而如果在块456来自存储单元的中间读数据是数据“10”、“01”或“00”(即,不是数据“11”),则在块460,单元的输出数据(最终读数据)的单个位被确定为“0”。
通常,擦除电压范围432比多个编程电压范围434宽。此外,因为擦除状态相应于在存储单元的浮动栅极112上不具有电荷,因此电荷泄漏不再是个问题,且在擦除电压范围432中的阈值电压Vt不太可能漂移,因而提供了在擦除状态中的单元的提高的读取余量。这就是说,本领域中的技术人员将认识到,已擦除的单元可由于在相邻单元中的编程干扰而得到电子;然而在任何情况下都有在擦除电压范围432内的单元电压Vt漂移或被干扰的相应地较低的概率。虽然根据过程400用于将单个位存储在存储单元中的编程时间小于图6的两位存储情况,但读取时间保持相同。
可以预期到在过程400中的另外变化。例如,所示块的顺序不需要必须确切地如所示的(更一般地,对于下文讨论的任何流程图,关于所示块的顺序的相同陈述都适用)。例如设想下页面的读取(块454)可出现在上页面的读取(块452)之前。
作为另外变化的另一例子,即使在具有如前面描述的读取定制的MLC闪存装置中,可能存在其中装置仍然读取下页面的情况,例如在单元的阈值电压Vt漂移到V1之下的情况下。在这样的实例中,块454因此便于确定单元的最初编程的阈值电压Vt是否已经漂移到V1之下或V2之上。由于随着时间的过去在存储单元的浮动栅极112上的电荷泄漏,在单元的阈值电压Vt中的漂移可能出现。此外,当存储块200(在图2中示出)的存储单元被读取时,在NAND串202中的未选择的单元被配置成传导,这可引起在这些单元的浮动栅极112上的所存储的电荷中的小变化。由于来自正被编程的相邻单元的电容耦合,被称为读取干扰的这个效应也可引起在存储单元的阈值电压Vt中的变化。
如上面提到的,例如在图2中示出的NAND存储块可以以页面进行布置,每个页面可通过相应的字线来寻址。当每存储单元存储多个位时,通常使用术语“下页面”和“上页面”。这些页面中的每一个可被视为用于存储数据的单独存储位置,即使这些页面存储在相同物理单元中。存储器装置300的控制器304可配置为提供对上页面和下页面的访问,以用于编程和读取操作,这允许用户访问这些页面,通常好像它们是存储器的物理页面一样。
参考图9,在500处概括性地示出根据本发明的实施方式的用于编程存储单元的过程流程图。根据本发明的实施方式的用于编程存储单元的电压范围在图10中的530处概括性地示出,并包括擦除电压范围532和多个编程电压范围534。编程电压范围534包括相邻于擦除电压范围532的第一编程电压范围536和多个较高的编程电压范围538和540。在这个实施方式中的存储单元也具有用于存储两位数据的已配置容量。电压范围538和540的编码与图8所示的例子相反。较高的编程电压范围538和540然而仍然与存储单元中的上页面编程相关联。
过程500在块502开始,其中存储单元处于擦除状态。过程在块504继续,存储单元接收输入数据,其在本例中是具有两位容量的单元的单个位。过程接着在块506继续,其中第一阶段编程发生。更具体地,输入数据的单个位被编程到下页面中。参考图10,如果输入数据是“1”,则存储单元的阈值电压Vt保持在擦除电压范围532内,而如果输入数据是“0”,则阈值电压Vt移动到第一编程电压范围536中。
再次参考图9,过程然后在块508继续,其中第二阶段编程出现。更具体地,额外数据位然后被编程到上页面中。额外数据位是输入数据的所述单个位的逻辑函数。特别是,该逻辑函数对于本例是额外数据位等于数据的所述单个位。
参考图11,如果输入数据是“1”,则存储单元的阈值电压Vt保持在擦除电压范围532内。然而,如果输入数据是“0”,则在块506之后阈值电压Vt将在第一编程电压范围536内。在这种情况下,阈值电压Vt然后向上移动到编程电压范围538中。上页面和下页面因此都根据输入数据的相同的单个位被编程,且电压范围532和538用于存储输入数据的单个位。电压范围536和540保持未被使用。
在这个实施方式中,需要由图10和图11表示的两个连续编程步骤,且编程将因此相应地比对图6-7中所示的第一例子慢。然而,因为最高编程电压范围540保持未被使用,因此与图6所示的多位存储的例子相比,仍然有在编程时间上的减小。
参考图12,在550处概括性地示出了用于读取存储在根据过程500编程的存储单元中的数据的过程。在块552,通过施加单个读电压V1来读取上页面,如果沟道传导,则指示存储单元具有配置在擦除电压范围538或第一编程电压范围536内的阈值电压Vt。过程550在块554继续,其中也通过施加读电压V0和V2来读取下页面。对于在图10和11中示出的编码方案,不是必须在电压V1处读取,因为第一编程电压范围536和较高的编程电压范围538都具有“0”的已分配的最低有效位;然而如果过程550在没有与内部装置操作有关的某些读取定制的标准MLC闪存装置中实现,则预期这样的MLC闪存装置将在所有电压V0、V1和V2处自动读取以得到下页面数据。排除上文提到的对标准MLC闪存装置的考虑,在V2处的读取应足以明确地确定存储在单元中的数据是否具有“0”的最低有效位(编程电压范围536或538)或“1”(编程电压范围540),且因此在电压V1处的读取在所有实例中是不必要的。
过程550然后在块556继续,其中确定来自存储单元的中间读数据是否是数据“11”,在这种情况下,在块558,单元明确地被确定为被配置在擦除电压范围532中,且最终读数据因此是数据“1”。然而如果在块556,来自存储单元的中间读数据是数据“10”、“00”或“01”(即,不是数据“11”),则在块560,单元的输出数据(最终读数据)的单个位被确定为“0”。
与在图9中相同的过程500也可用于根据本发明的另一实施方式编程存储单元。在图13中的600和图14中的620处示出这个实施方式的电压范围。参考图13,擦除电压范围602大体相应于图9中的擦除电压范围532。然而,在这个实施方式中,为了下页面编程的目的来定义临时编程电压范围604。临时编程电压范围604比本文之前描述的编程电压范围宽,并可由于所允许的阈值电压Vt的较大范围而相对快地被编程。根据本发明的这个实施方式的存储单元的上页面编程的一组电压范围在图14中示出并包括多个编程电压范围606。多个编程电压范围606包括与擦除电压范围602相邻的第一编程电压范围608和多个较高的编程电压范围610和612。
回来参考图9,在过程500的块506,如果数据是“1”,则存储单元的阈值电压Vt保持在图13所示的擦除电压范围602内。如果输入数据是“0”,则阈值电压Vt移动到临时编程电压范围604内。过程500在块508继续,其中输入数据的单个位接着被编程到上页面内。再次参考图14,如果输入数据是“1”,则存储单元的阈值电压Vt保持在擦除电压范围602内。然而如果输入数据是“0”,则在块506之后阈值电压Vt将在临时编程电压范围604内,且阈值电压Vt然后向上移动到较高的编程电压范围610中。就像以前一样,第一编程电压范围608和较高的编程电压范围612未被使用。下页面和上页面都根据输入数据的相同的单个位被编程,且电压范围602和610用于存储输入数据的单个位。
参考图15,在630处概括性地示出了根据这个实施方式用于读取存储在存储单元中的数据的过程。在块632,通过施加读电压V2来读取上页面,如果沟道传导,则指示存储单元具有被配置在擦除电压范围602、第一编程电压范围608或编程电压范围610之一内的阈值电压Vt。读取上页面还涉及施加读电压V0,如果沟道传导,则指示存储单元具有被配置在擦除电压范围602内的阈值电压Vt。因此,在擦除电压范围602或编程电压范围612内的阈值电压Vt对应于较高阶的数据位“1”,而在编程电压范围608或610中的任一个内的阈值电压Vt对应于较高阶的数据位“0”。
过程630在块634继续,其中通过施加读电压V1来读取下页面,该读电压足以明确地确定存储在单元中的数据是否具有“0”的最低有效位(编程电压范围610或612)或“1”(编程电压范围608)。如前面讨论的,可在标准MLC闪存装置的情况下始终执行在所有电压处的读取。
过程然后在块636继续,其中确定来自存储单元的中间读数据是否是数据“11”,在这种情况下,在块638,单元明确地被确定为被配置在擦除电压范围602中,且所存储的位因此是数据“1”。然而如果在块636,来自存储单元的中间读数据是数据“01”、“00”或“10”(即,不是数据“11”)则在块640单元的输出数据(最终读数据)的单个位被确定为“0”。
对具有用于存储两位的容量的存储单元描述了上述实施方式。在其它实施方式中,存储单元的编程电压范围可配置成允许存储多于两位。参考图16,在680处概括性地示出了用于将三位数据存储在单个存储单元中的电压范围。电压范围包括擦除电压范围682和多个编程电压范围684。多个编程电压范围684包括第一编程电压范围686和较高的编程电压范围688、690、692、694、696和698。当使用存储单元来存储三位数据时,编程电压684将被使用。为了在存储单元中只存储两位,编程电压范围688、692和696可被使用,而编程电压范围686、690、694和698可保持未被使用,因而提供较大的余量用于可靠的数据存储和读取。
在存储单元中,随着时间的过去在浮动栅极112上的电荷泄漏可使单元阈值电压Vt漂移到紧邻的较低电压范围中,特别是在较高的温度下。在本发明的另一实施方式中,具有用于存储三位数据的已配置容量的存储单元可用于两位输入数据的可靠存储。仍然参考图16,在这个实施方式中,电压范围686和688都与两位输出数据“01”(被指示在699处)相关联,且因此如果在编程电压范围688中编程的单元的阈值电压漂移到V1之下时,则读输出数据将不改变。类似地,电压范围690和692与两位输出数据“00”相关联,且电压范围694和696与两位输出数据“10”相关联。
在图17中的750处示出了根据本发明的这个实施方式用于读取输出数据的真值表。参考图17,该真值表750将三位所存储的数据752映射到两位输出数据754。所存储的数据752包括下页面位(L)、中页面位(M)和上页面位(U),且输出数据754包括位X和Y。当读取存储在存储单元中的数据时,如果存储单元的阈值电压Vt在较低的未使用的编程电压范围(在图16中示出)内被读取,则单元的两位输出数据被解释为相应于相邻的较高编程电压范围。在表700的第一行中,代表所存储的数据“111”的擦除电压范围682因此映射到输出数据“11”。在真值表750中,与相邻的一对编程电压范围相关联的所存储的数据的每个被映射到两位输出数据值。使用卡诺图以从真值表750得到X和Y的布尔表达式产生了下式:
其中代表逻辑非,“U.M”代表逻辑与函数,且“+”代表逻辑或函数。在图18中的780处示出了用于使用三位数据U、M和L来实现方程1和2中的逻辑以读取存储在存储单元中的两位数据X和Y的组合逻辑电路。使用非门782和784以及与门786-796来实现逻辑电路780。狄莫根定理用于将在方程1和2中的上述布尔表达式重写为如下:
根据本发明的这个实施方式用于将数据存储在存储单元中的真值表在图19中的700处示出,并将两位输入数据702的存储映射为三位所存储的数据704。在真值表700中,在单元中的输入数据702包括位X和Y,且所存储的数据包括下页面位(L)、中页面位(M)和上页面位(U)。在真值表700中的行706在两位输入数据702和三位所存储的数据704之间映射。真值表700的检查产生下面的布尔表达式:
L=Y 方程5
M=X 方程6
U=XNOR(X,Y) 方程7
其中XNOR是“同或”逻辑函数。在图20中的720处示出了用于实现方程5-7中的逻辑以将表示两位输入数据的三位数据U、M和L编程到存储单元中的组合逻辑电路。
参考图21,在800处概括性地示出了根据图16-20所示的实施方式用于将数据存储在存储单元中的编程过程。过程800在块802开始,其中存储单元处于擦除状态。过程在块804继续,存储单元接收输入数据(在这个实施方式中,两位数据X和Y)。过程然后在块806继续,其中输入数据位X被编程到下页面中。如果输入数据X是“1”,则存储单元的阈值电压Vt保持在擦除电压范围682(在图16中示出)内,而如果输入数据是“0”,则阈值电压Vt移动到编程电压范围692中。在块808,数据位Y然后被编程到中页面中。如果数据位Y是“1”,且如果在块806之后阈值电压Vt仍然在擦除电压范围682中,则阈值电压保持在擦除电压范围内。如果在块806之后阈值电压在编程电压范围692中,则阈值电压向上移动到编程电压范围696。
如果输入数据位Y是“0”,且如果在块806之后阈值电压仍然在擦除电压范围682中,则阈值电压向上移动到编程电压范围688。如果在块806之后阈值电压在编程电压范围692中,则阈值电压保持在编程电压范围692内。过程800然后在块810继续,其中方程7的逻辑函数应用于输入数据X和Y。如果逻辑函数的结果是“1”,且如果在块808之后阈值电压仍然在擦除电压范围682中,则阈值电压保持在擦除电压范围内。如果在块808之后阈值电压在编程电压范围688中,则阈值电压向上移动到编程电压范围692。如果在块808之后阈值电压在编程电压范围692中,则阈值电压保持在编程电压范围692内。如果在块808之后阈值电压在编程电压范围696中,则阈值电压向上移动到编程电压范围698。
如果逻辑函数的结果是“0”,且如果在块808之后阈值电压仍然在擦除电压范围682中,则阈值电压向上移动到编程电压范围686。如果在块808之后阈值电压在编程电压范围688中,则阈值电压保持在编程电压范围688内。如果在块808之后阈值电压在编程电压范围692中,则阈值电压向上移动到编程电压范围694。如果在块808之后阈值电压在编程电压范围696中,则阈值电压保持在编程电压范围696内。
有利地,在这个实施方式中,上页面位用于存储可操作来使两个相邻地定位的编程电压范围与单个存储状态相关联的恢复数据。
参考图22,在820处概括性地示出了根据图16-20的实施方式用于从存储单元读取数据的过程。过程820在块822开始,其中通过读电压V0、V2、V4和V6的施加来读取上页面位U,以确定U数据位是被设置到“1”还是“0”。过程820然后在块824继续,其中通过读电压V1、V3和V5的施加来读取中页面位M,以确定M数据位是被设置到“1”还是“0”。过程820然后在块826继续,其中通过施加读电压V3来读取下页面位,这足以明确地确定存储在单元中的数据是具有“0”还是“1”的最低有效位。
过程然后在块828继续,其中确定来自存储单元的中间读数据是否是“111”,在这种情况下,在块830,所存储的数据XY(最终读数据)因此是“11”。如果在块828,来自存储单元的中间读数据不是“111”,过程在块832继续,其中确定来自存储单元的中间读数据是否是“011”或“001”,在这种情况下,在块834,所存储的数据XY(最终读数据)因此是“01”。如果在块832,来自存储单元的中间读数据不是“011”或“001”,过程在块836继续,其中确定来自存储单元的中间读数据是否是“101”或“100”,在这种情况下,在块838,所存储的数据XY(最终读数据)因此是“00”。如果在块836,来自存储单元的中间读数据不是“101”或“100”,过程在块840继续,且所存储的数据XY(最终读数据)因此是“10”。
参考图23,在850处概括性地示出了根据本发明的另一实施方式用于从存储单元读取数据的过程。
在这个实施方式中,存储单元具有存储三位数据的容量,但只有两位数据存储在单元中。参考图24,用于将两位数据存储在存储单元中的电压范围在880概括性地示出,并包括擦除电压范围882和多个编程电压范围884、886和888。通常根据图16所示的实施方式来执行存储单元100的编程,其中与存储第三最高阶的位相关的电压范围保持未被使用,提供在编程电压范围之间的增加的间隔。为读电压890(即,V0、V1、V2、V3、V4、V5和V6)配置存储单元。过程在块852开始,其中通过施加读电压V0、V2和V4来在存储单元上执行读操作以产生包括两位数据的输出数据。
在块854,确定与输出数据相关的错误率。如上面提到的,很多非易失性存储器存储纠错码(ECC)并具有检测和试图校正读数据中的错误的ECC引擎。在一个实施方式中,输出数据的错误率可由ECC引擎确定。
过程850然后在块856继续,其中如果所确定的错误率在错误率标准内,则过程在块858继续,且输出数据被假定为有效的并用作读结果。如果在块856,所确定的错误率超过错误率标准,则过程在块860继续。在块860,调节多个读电压。参考图24,在这个实施方式中,读电压890向上移动以规定一组新的读电压892(即,V0'、V1'、V2'、V3'、V4'、V5'和V6')。
过程850然后返回到块852,且使用来自这组新的读电压892的经调节的读电压V0'、V2'和V4'重复块852、854和856。过程850继续,直到在块856错误率在标准内或在块860达到对读电压的预先确定的最大调节为止。
可选地,来自在不同的经调节的读电压处的多个读取操作的结果可在低密度奇偶校验(LDPC)纠错方案中用作“软位(soft-bits)”。
有利地,过程850为较低电压范围中对单元的干扰提供较大的余量,该干扰可导致读取在下一最高电压范围内的数据。虽然参照在具有用于存储三位的容量的单元中两位的存储描述了图23和24的实施方式,但也可对具有用于存储两位或多于三位的容量的存储单元实现该过程。
参照将单个数据位存储在具有用于存储两位数据的已配置容量的存储单元中或将两位数据存储在具有用于存储三位数据的已配置容量的存储单元中描述了上述实施方式。然而,上述实施方式可扩展到具有用于存储数据的较大已配置容量(例如4位数据)的存储单元。
上面公开的实施方式提供了用于在较低密度下但以提高的持久性、较低的读错误率和改善的数据保持来将数据存储在每单元多个位存储器中的过程。可至少部分地通过用于实现过程的软件、固件或专用硬件配置外部控制器(例如图4所示的外部控制器309)来实现该过程。也可通过配置存储器装置300以在每存储单元减小数量的位模式中操作来实现过程。从存储器控制器309发出命令以编程存储器装置300中的寄存器位、将输入引脚驱动到逻辑电平或在制造期间使用永久熔丝或掩膜操作设置都是根据本发明的实施方式的过程如何被启用的例子。可仅为了存储器的特定块或在存储器范围基础上实现过程。
虽然描述和示出了本发明的特定实施方式,但这样的实施方式应被考虑为仅说明本发明,而不是如根据所附权利要求解释的那样来限制本发明。
Claims (34)
1.一种用于在配置为存储多达N+1个位的非易失性存储单元中对N个位进行编程的方法,其中N是大于零的整数,所述方法包括:
a)将N位数据编程到所述非易失性存储单元中;以及
b)将作为所述N位数据的逻辑函数的额外数据位编程到所述非易失性存储单元中,以及
所述非易失性存储单元被配置为提供用于位存储的2N+1个阈值电压范围,且根据所述逻辑函数:i)所述2N+1个阈值电压范围中的第一组2N个阈值电压范围用于存储所述N位数据;以及ii)与所述第一组交替的剩余的第二组2N个阈值电压范围未被使用。
2.如权利要求1所述的方法,其中N是1,且所述2N+1个阈值电压范围包括擦除电压范围以及第一编程电压范围、第二编程电压范围和第三编程电压范围,所述第一编程电压范围高于并相邻于所述擦除电压范围,所述第二编程电压范围高于并相邻于所述第一编程电压范围,以及所述第三编程电压范围高于并相邻于所述第二编程电压范围,以及所述第一组2N个阈值电压范围包括所述擦除电压范围和所述第二编程电压范围,以及剩余的一组2N个阈值电压范围包括所述第一编程电压范围和所述第三编程电压范围。
3.如权利要求1所述的方法,其中N是1,且所述将N位数据编程到所述非易失性存储单元中包括执行下页面编程,且所述额外数据位的编程包括上页面编程。
4.如权利要求1所述的方法,其中N是2,且所述将N位数据编程到所述非易失性存储单元中包括执行下页面编程和中页面编程,且所述额外数据位的编程包括上页面编程。
5.如权利要求4所述的方法,其中所述非易失性存储单元中的所述N位数据的逻辑函数是下页面数据和中页面数据的“同或”函数。
6.如权利要求1所述的方法,其中所述将N位数据编程到所述非易失性存储单元中包括执行下页面编程,且在所述下页面编程期间当数据“1”被编程时使用临时的编程电压范围。
7.一种存储器装置,包括:
多个非易失性存储单元,所述非易失性存储单元中的每个非易失性存储单元被配置为提供用于位存储的2N+1个阈值电压范围,其中N是大于零的整数,所述2N+1个阈值电压范围包括擦除电压范围和多个编程电压范围,所述多个编程电压范围包括与所述擦除电压范围相邻的第一编程电压范围和多个较高的编程电压范围,且所述非易失性存储单元被配置为存储多达N+1个位,以及
所述存储器装置被配置为:
a)将N位数据编程到所述非易失性存储单元中;以及
b)将作为所述N位数据的逻辑函数的额外数据位编程到所述非易失性存储单元中,以及
根据所述逻辑函数:i)所述2N+1个阈值电压范围中的第一组2N个阈值电压范围用于存储所述N位数据;以及ii)与所述第一组交替的剩余的第二组2N个阈值电压范围未被使用。
8.如权利要求7所述的存储器装置,其中N是1,且所述2N+1个阈值电压范围包括擦除电压范围以及第一编程电压范围、第二编程电压范围和第三编程电压范围,所述第一编程电压范围高于并相邻于所述擦除电压范围,所述第二编程电压范围高于并相邻于所述第一编程电压范围,以及所述第三编程电压范围高于并相邻于所述第二编程电压范围,以及所述第一组2N个阈值电压范围包括所述擦除电压范围和所述第二编程电压范围,以及剩余的一组2N个阈值电压范围包括所述第一编程电压范围和所述第三编程电压范围。
9.如权利要求7所述的存储器装置,其中N是1,且当所述存储器装置将N位数据编程到所述非易失性存储单元中时,包括执行下页面编程,以及当所述存储器装置编程所述额外数据位时,包括上页面编程。
10.如权利要求7所述的存储器装置,其中N是2,且当所述存储器装置将N位数据编程到所述非易失性存储单元中时,包括执行下页面编程和中页面编程,以及当所述存储器装置编程所述额外数据位时,包括上页面编程。
11.如权利要求10所述存储器装置,其中所述非易失性存储单元中的所述N位数据的逻辑函数是下页面数据和中页面数据的“同或”函数。
12.如权利要求7所述的存储器装置,其中当所述存储器装置将N位数据编程到所述非易失性存储单元中时,包括执行下页面编程,以及在所述下页面编程期间当数据“1”被编程时使用临时的编程电压范围。
13.如权利要求7到12中的任一项所述的存储器装置,其中所述多个非易失性存储单元是NAND闪存单元。
14.一种在具有多个非易失性存储单元的存储器装置中执行的方法,所述非易失性存储单元中的每个非易失性存储单元具有由包括擦除电压范围、第一编程电压范围、第二编程电压范围和第三编程电压范围的各个阈值电压范围定义的多个存储状态,所述第一编程电压范围相邻于所述擦除电压范围,且所述第二编程电压范围在所述第一编程电压范围和所述第三编程电压范围之间,且所述方法包括:
当在两位存储模式中操作所述非易失性存储单元时,通过下列操作来存储两位数据:
执行第一阶段编程以编程两位数据中的第一位;以及
执行第二阶段编程以编程两位数据中的第二位;以及
当在一位存储模式中操作所述非易失性存储单元时,通过下列操作来存储单个数据位:
如果所述单个数据位是数据“1”,则以升高单元阈值电压两次以达到所述第二编程电压范围的方式执行所述第一阶段编程和第二阶段编程,且如果所述单个数据位是数据“0”,则将所述单元阈值电压保持在所述擦除电压范围。
15.如权利要求14所述的方法,其中所述第一阶段编程是下页面编程,而所述第二阶段编程是上页面编程。
16.如权利要求14或15所述的方法,其中所述非易失性存储单元是NAND闪存单元。
17.一种在包括非易失性存储器装置的系统中执行的方法,所述方法包括:
a)从所述非易失性存储器装置的非易失性存储单元顺序地读取N位中间读数据,其中N是大于1的整数;
b)向逻辑电路的N个输入端提供所述N位中间读数据;以及
c)从所述逻辑电路的N-1个输出端输出N-1位最终读数据。
18.如权利要求17所述的方法,其中N是2。
19.如权利要求18所述的方法,其中只有当所述中间读数据是“11”时,从所述逻辑电路输出的所述最终读数据才是“1”。
20.如权利要求17所述的方法,其中N是3。
21.如权利要求20所述的方法,其中a)只有当所述中间读数据是“111”时,从所述逻辑电路输出的所述最终读数据才是“11”;b)只有当所述中间读数据是“011”或“001”时,从所述逻辑电路输出的所述最终读数据才是“01”;以及c)只有当所述中间读数据是“101”或“100”时,从所述逻辑电路输出的所述最终读数据才是“00”。
22.一种系统,包括:
存储器装置,所述存储器装置包括多个非易失性存储单元,且所述存储器装置被配置为从至少一个非易失性存储单元顺序地读取N位中间读数据,其中N是大于1的整数;以及
外部控制器,其包括逻辑电路,所述外部控制器被配置为:
a)从所述存储器装置接收所述N位中间读数据;
b)向所述逻辑电路的N个输入端提供所述N位中间读数据;以及
c)从所述逻辑电路的N-1个输出端输出N-1位最终读数据。
23.如权利要求22所述的系统,其中N是2。
24.如权利要求23所述的系统,其中只有当所述中间读数据是“11”时,所述最终读数据才是“1”。
25.如权利要求22所述的系统,其中N是3。
26.如权利要求25所述的系统,其中a)只有当所述中间读数据是“111”时,所述最终读数据才是“11”;b)只有当所述中间读数据是“011”或“001”时,所述最终读数据才是“01”;以及c)只有当所述中间读数据是“101”或“100”时,所述最终读数据才是“00”。
27.一种存储器装置,包括:
存储阵列,其包括多个非易失性存储单元;以及
逻辑电路,其通信地耦合到所述存储阵列,以及
所述存储器装置被配置为:
从至少一个非易失性存储单元顺序地读取N位中间读数据,其中N是大于1的整数;
向所述逻辑电路的N个输入端输入所述N位中间读数据;以及
从所述逻辑电路的N-1个输出端输出N-1位最终读数据。
28.如权利要求27所述的存储器装置,其中N是2。
29.如权利要求28所述的存储器装置,其中只有当所述中间读数据是“11”时,所述最终读数据才是“1”。
30.如权利要求27所述的存储器装置,其中N是3。
31.如权利要求30所述的存储器装置,其中a)只有当所述中间读数据是“111”时,所述最终读数据才是“11”;b)只有当所述中间读数据是“011”或“001”时,所述最终读数据才是“01”;以及c)只有当所述中间读数据是“101”或“100”时,所述最终读数据才是“00”。
32.如权利要求27到31中的任一项所述的存储器装置,其中所述多个非易失性存储单元是NAND闪存单元。
33.一种用于将输入数据存储在具有多个存储状态的非易失性存储单元中的方法,所述多个存储状态提供用于存储多于一位数据的单元容量,所述多个存储状态由包括擦除电压范围和多个编程电压范围的各个阈值电压范围定义,所述方法包括:
接收具有小于所述单元容量的至少一位的输入数据;
根据所述输入数据使用小于所述单元容量的至少一位来编程所述存储单元,使得至少一个额外的位不用于存储所述输入数据;
对所述输入数据执行逻辑函数以生成恢复数据,所述恢复数据能够操作来使两个相邻定位的编程电压范围与单个存储状态相关联;以及
将所述恢复数据编程到所述至少一个额外的位中。
34.一种存储器设备,包括:
多个非易失性存储单元,每个非易失性存储单元具有提供用于存储多于一位数据的单元容量的多个存储状态,所述多个存储状态由包括擦除电压范围和多个编程电压范围的各个阈值电压范围定义;
所述存储器被配置为通过根据所述输入数据使用小于所述单元容量的至少一位来编程所述存储单元,来存储具有小于所述单元容量的至少一位的输入数据,使得至少一个额外的位不用于存储所述输入数据;以及
逻辑电路,其被配置为对所述输入数据执行逻辑函数以生成恢复数据,所述恢复数据能够操作来使两个相邻定位的编程电压范围与单个存储状态相关联,所述恢复数据被编程到所述至少一个额外的位中。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261663081P | 2012-06-22 | 2012-06-22 | |
US61/663081 | 2012-06-22 | ||
US13/799765 | 2013-03-13 | ||
US13/799,765 US20130343125A1 (en) | 2012-06-22 | 2013-03-13 | Apparatus and methods for carrying out operations in a non-volatile memory cell having multiple memory states |
PCT/CA2013/000590 WO2013188963A1 (en) | 2012-06-22 | 2013-06-21 | Apparatus and methods for carrying out operations in a non-volatile memory cell having multiple memory states |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104395965A true CN104395965A (zh) | 2015-03-04 |
Family
ID=49767973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380032997.2A Pending CN104395965A (zh) | 2012-06-22 | 2013-06-21 | 用于在具有多个存储状态的非易失性存储单元中执行操作的设备和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20130343125A1 (zh) |
EP (1) | EP2864986A1 (zh) |
JP (1) | JP2015524137A (zh) |
KR (1) | KR20150022012A (zh) |
CN (1) | CN104395965A (zh) |
TW (1) | TW201413723A (zh) |
WO (1) | WO2013188963A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657982A (zh) * | 2016-07-25 | 2018-02-02 | 三星电子株式会社 | 对多级非易失性存储器单元进行编程的方法和存储器装置 |
CN109559774A (zh) * | 2017-09-26 | 2019-04-02 | 群联电子股份有限公司 | 解码方法、存储器控制电路单元以及存储器存储装置 |
CN109872754A (zh) * | 2019-02-15 | 2019-06-11 | 长江存储科技有限责任公司 | 数据编程方法及装置、存储器及存储介质 |
CN110197695A (zh) * | 2018-02-27 | 2019-09-03 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111919254A (zh) * | 2018-03-06 | 2020-11-10 | 美光科技公司 | 基于存储器系统的温度调整编程操作的参数 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102068519B1 (ko) * | 2013-07-01 | 2020-01-21 | 삼성전자주식회사 | 저장 장치, 그것의 쓰기 방법 및 읽기 방법 |
KR102121331B1 (ko) * | 2013-10-28 | 2020-06-11 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 |
KR102218722B1 (ko) * | 2014-06-09 | 2021-02-24 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
KR102247087B1 (ko) * | 2014-07-08 | 2021-05-03 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US20160062656A1 (en) * | 2014-08-28 | 2016-03-03 | Freescale Semiconductor, Inc. | Command Set Extension for Non-Volatile Memory |
KR20170011645A (ko) * | 2015-07-23 | 2017-02-02 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법 |
US10474525B2 (en) * | 2015-08-11 | 2019-11-12 | Sandisk Technologies Llc | Soft bit techniques for a data storage device |
CN106098103B (zh) * | 2016-06-03 | 2019-10-18 | 北京兆易创新科技股份有限公司 | 一种非易失性存储器中坏点单元的替换方法 |
WO2018136094A1 (en) * | 2017-01-23 | 2018-07-26 | Micron Technology, Inc. | Partially written block treatment |
US10679712B2 (en) | 2017-12-21 | 2020-06-09 | Cypress Semiconductor Corporation | Non-volatile memory device and method of blank check |
TWI797408B (zh) | 2018-12-28 | 2023-04-01 | 美商美光科技公司 | 具有改善之跨溫度可靠度與讀取性能之記憶體 |
US11321619B2 (en) | 2019-08-14 | 2022-05-03 | International Business Machines Corporation | State dependent calibration of qubit measurements |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100463954B1 (ko) * | 2002-05-17 | 2004-12-30 | 주식회사 하이닉스반도체 | 플래시 메모리 장치 및 그 소거 방법 |
US6917542B2 (en) * | 2003-07-29 | 2005-07-12 | Sandisk Corporation | Detecting over programmed memory |
US8085591B2 (en) * | 2008-05-20 | 2011-12-27 | Micron Technology, Inc. | Charge loss compensation during programming of a memory device |
US8743615B2 (en) * | 2011-08-22 | 2014-06-03 | Sandisk Technologies Inc. | Read compensation for partially programmed blocks of non-volatile storage |
-
2013
- 2013-03-13 US US13/799,765 patent/US20130343125A1/en not_active Abandoned
- 2013-06-05 TW TW102119912A patent/TW201413723A/zh unknown
- 2013-06-21 EP EP13806934.9A patent/EP2864986A1/en not_active Withdrawn
- 2013-06-21 WO PCT/CA2013/000590 patent/WO2013188963A1/en active Application Filing
- 2013-06-21 KR KR20157001679A patent/KR20150022012A/ko not_active Application Discontinuation
- 2013-06-21 CN CN201380032997.2A patent/CN104395965A/zh active Pending
- 2013-06-21 JP JP2015517564A patent/JP2015524137A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657982A (zh) * | 2016-07-25 | 2018-02-02 | 三星电子株式会社 | 对多级非易失性存储器单元进行编程的方法和存储器装置 |
CN107657982B (zh) * | 2016-07-25 | 2022-12-20 | 三星电子株式会社 | 对多级非易失性存储器单元进行编程的方法和存储器装置 |
CN109559774A (zh) * | 2017-09-26 | 2019-04-02 | 群联电子股份有限公司 | 解码方法、存储器控制电路单元以及存储器存储装置 |
CN109559774B (zh) * | 2017-09-26 | 2021-02-26 | 群联电子股份有限公司 | 解码方法、存储器控制电路单元以及存储器存储装置 |
CN110197695A (zh) * | 2018-02-27 | 2019-09-03 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110197695B (zh) * | 2018-02-27 | 2023-04-07 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111919254A (zh) * | 2018-03-06 | 2020-11-10 | 美光科技公司 | 基于存储器系统的温度调整编程操作的参数 |
CN111919254B (zh) * | 2018-03-06 | 2024-06-07 | 美光科技公司 | 基于存储器系统的温度调整编程操作的参数 |
CN109872754A (zh) * | 2019-02-15 | 2019-06-11 | 长江存储科技有限责任公司 | 数据编程方法及装置、存储器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2013188963A1 (en) | 2013-12-27 |
JP2015524137A (ja) | 2015-08-20 |
KR20150022012A (ko) | 2015-03-03 |
EP2864986A1 (en) | 2015-04-29 |
TW201413723A (zh) | 2014-04-01 |
US20130343125A1 (en) | 2013-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104395965A (zh) | 用于在具有多个存储状态的非易失性存储单元中执行操作的设备和方法 | |
US11621041B2 (en) | Nonvolatile semiconductor memory device including a memory cell array and a control circuit applying a reading voltage | |
CN102270501B (zh) | 利用编程定序器的闪存器件和系统,以及编程方法 | |
CN101506900B (zh) | 具有经选择以最小化信号耦合的位状态指派的非易失性存储器装置和方法 | |
US9183942B2 (en) | Inter-cell interference cancellation | |
US20140029355A1 (en) | Memory device and method of determining read voltage of memory device | |
US20140104950A1 (en) | Non-volatile semiconductor memory | |
CN107025944A (zh) | 检测非易失性存储器设备中的擦除失败字线的方法 | |
US9177673B2 (en) | Selection of data for redundancy calculation by likely error rate | |
CN106920570B (zh) | 存储器系统及其操作方法 | |
CN101197190A (zh) | 一种对多层非易失性存储器设备编程的方法 | |
US8514633B2 (en) | Method for operating semiconductor memory device | |
CN103765392A (zh) | 存储器装置的损耗均衡 | |
CN101964208A (zh) | 半导体存储装置 | |
TWI521520B (zh) | Nonvolatile semiconductor memory device and its reading method | |
CN113284539B (zh) | 循环期间的编程电压调制 | |
CN106024059B (zh) | 半导体存储装置以及数据处理方法 | |
CN109036488A (zh) | 存储器控制器、操作该存储器控制器的方法以及存储器系统 | |
JP2012119019A (ja) | 不揮発性半導体記憶装置 | |
US20160005459A1 (en) | Nonvolatile semiconductor memory device | |
CN111341371A (zh) | 用于响应于存储器单元年限的指示而对存储器单元进行编程的设备及方法 | |
CN101009138B (zh) | 用于快闪存储器件的编程方法 | |
TWI719653B (zh) | 用於判定記憶體單元之預期資料使用期限之裝置及方法 | |
CN112447217A (zh) | 半导体存储装置 | |
JP2009301621A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150304 |