将多级单元快闪存储设备编程的方法和装置的制作方法

文档序号:6774701阅读:181来源:国知局
专利名称:将多级单元快闪存储设备编程的方法和装置的制作方法
技术领域
本发明的实施例一般地涉及一种半导体存储设备。更具体地说,本发明的实施例涉及一种用于将具有多级单元的快闪存储设备编程的方法和装置。
对2005年7月29日提交的韩国专利申请第2005-69566号要求优先权,其主题通过引用而被整体合并于此。
背景技术
快闪存储设备是能够被电编程和擦除的非易失性存储设备。近年来,随着在诸如便携式电子设备和代码存储器的应用领域中对于大容量和高速非易失性存储器的需求持续增长,快闪存储设备已经变得日益普及。
快闪存储器可以被大致地分类为NAND型快闪存储器和NOR型快闪存储器。NOR型快闪存储器具有其中多个存储单元并联连接到位线的结构,而NAND型快闪存储器具有其中多个存储单元串联连接到位线的结构。因为NOR型快闪存储器中的存储单元并联连接到位线,所以NOR型快闪存储器允许对所存储的数据的随机访问。相比之下,NAND型快闪存储器只允许对数据的顺序访问。作为其不同单元布置的结果,NOR型快闪存储器往往提供比NAND型快闪存储器更快的读取时间,因此,NOR型快闪存储器常常用于诸如程序代码存储的需要高读取速度的应用中。另一方面,NAND型快闪存储器往往具有比NOR型快闪存储器更高的集成密度以及更高的编程和擦除速度,因此它常常用于诸如长期数据存储的应用中。
在努力提高NOR和NAND型快闪存储设备二者的集成密度时,研究者已经开发出具有能够存储多于一个信息位的存储单元的快闪存储设备。通常将这些存储单元称为“多级单元”(MLC),并且将包含MLC的设备称为MLC设备。下面,参照图1和2来描述传统的MLC快闪存储设备的操作。
图1是图示能够存储两个信息位、即最高有效位(MSB)和最低有效位(LSB)的MLC的阈值电压分布的图。参考图1,MLC可以通过以升序调整所述单元的阈值电压来存储数据值‘11’、‘10’、‘00’和‘01’。例如,在MLC具有第一个阈值电压的情况下,MLC存储数据值‘11’。在MLC具有第二个更高的阈值电压的情况下,MLC存储数据值‘10’等等。通常,数据值‘11’对应于MLC的擦除状态,并且MLC的编程从擦除状态开始。
图2A是图示用于将数据编程到MLC的顺序的状态转变图。在图2A和2B中,状态被标注为‘11’、‘10’、‘00’和‘01’,以便对应于当MLC存储这些相应的数据值时该MLC的状态。也可以将这些状态称为状态‘11’、状态‘01’等。根据图2A示出的状态转变图,通过首先将MLC的LSB编程、然后将其MSB编程来编程该MLC。
通过在图2A中被表示为①的路径来执行通过改变MLC的LSB进行的从状态‘11’到状态‘10’的MLC的转变。沿着图2A中被表示为③的路径来进行通过改变MLC的MSB进行的从状态‘11’到状态‘01’的MLC的转变。沿着图2A中被表示为①和②的路径来执行通过改变MLC的LSB和MSB二者进行的从状态‘11’到状态‘00’的MLC的转变。路径②和③对应于执行用来在将LSB编程之后将MSB编程的编程过程。在首先将LSB编程、其次将MSB编程的情况下,根据图2的状态转变图来保证顺利地进行所述编程。
图2B是图示为什么不能在将MSB编程之后将LSB编程的状态转变图,其中,如图1所示的那样来排列与MLC的逻辑状态相对应的阈值电压。首先,考虑其中将MLC从状态‘11’编程为状态‘00’的编程操作。该编程操作应当首先通过将MSB从‘1’转换为‘0’的路径④来将MLC从状态‘11’改变为状态‘01’。接下来,该编程操作应当通过将LSB从‘1’转换为‘0’的路径⑤来将MLC从状态‘01’改变为状态‘00’。然而,不幸的是,在没有首先擦除MLC的情况下,不能将具有图1所示的阈值电压分布和对应状态的MLC从状态‘01’改变为‘00’。换言之,传统的技术不允许直接将MLC的阈值电压从被标注为‘01’的阈值电压分布可靠地减小到被标注为‘00’的阈值电压分布。因此,当将阈值电压分配给如图1所示的状态‘11’、‘10’、‘00’和‘01’时,必须使用首先将LSB编程并且接下来将MSB编程的编程顺序,而不是首先将MSB编程并且接下来将LSB编程的编程顺序。
不幸的是,由于可能存在其中首先将MSB编程然后将LSB编程较为有利的情况,因此上述对编程顺序的排序限制可能对快闪存储器系统的整体性能具有负面影响。例如,该排序限制禁止应用程序仅将MSB编程并且稍后将LSB编程。换言之,所述限制禁止对MLC的真正的随机访问。

发明内容
认识到传统的MLC设备的上述缺点,本发明的实施例提供了允许以任意顺序将所选择的多级存储单元的位编程的各种编程方法。
根据本发明的一个实施例,一种将包含多级存储单元的快闪存储设备编程的方法包括确定是将所选存储单元的高位还是低位编程;检测存储在所选存储单元中的两个数据位的当前逻辑状态;以及确定高位或低位的目标逻辑状态。该方法还包括产生用于将高位或低位编程为目标逻辑状态的编程电压和验证电压,并且将该编程电压和验证电压施加到与所选存储单元相连接的字线上。
根据本发明的另一实施例,提供了一种将NOR快闪存储设备编程的方法。NOR快闪存储设备包括能够存储逻辑状态‘11’、‘10’、‘01’和‘00’的所选存储单元,其中,逻辑状态‘11’、‘10’、‘01’和‘00’对应于所选存储单元的阈值电压的递增的电平。所述方法包括确定是将所选存储单元的高位还是低位编程;检测高位和低位的当前逻辑状态;以及如果当前逻辑状态是‘10’并且要将高位编程,则将所选存储单元从逻辑状态‘10’编程为逻辑状态‘00’,而如果当前逻辑状态是‘01’并且要将低位编程,则将所选存储单元从逻辑状态‘01’编程为逻辑状态‘00’。
根据本发明的另一实施例,一种多级单元快闪存储设备包括电压产生器,其被适配为响应于状态选择信号而产生用于将快闪存储设备的所选存储单元编程的编程电压,并且将该编程电压施加到所选存储单元。该多级单元快闪存储设备还包括感测放大器,其被适配为响应于感测使能信号而通过与其连接的位线来感测所选存储单元的当前逻辑状态;写入驱动器,其被适配为在所选存储单元的编程操作期间响应于写入使能信号而激活所述位线;以及编程控制器,其被适配为响应于编程地址而产生感测使能信号,并且基于存储单元的当前逻辑状态来产生状态选择信号。可以通过首先将高位编程并且随后将低位编程、或者通过首先将低位编程并且随后将高位编程来将所选存储单元编程。


下面针对在附图中示出的若干实施例来描述本发明。在附图中,相同的参考标号自始至终表示相同的示例元件、组件或步骤。在附图中图1是图示传统的多级单元的阈值电压分布和对应的状态分配的图;图2A是具有图1所示的阈值分布和对应的状态分配的多级快闪存储单元的编程操作的状态转变图,其中,在最高有效位(MSB)之前将最低有效位(LSB)编程;图2B是具有图1所示的阈值分布和对应的状态分配的多级快闪存储单元的编程操作的状态转变图,其中,在LSB之前将MSB编程;图3是图示根据本发明实施例的多级快闪存储单元的阈值电压分布和对应的状态分配的图;图4A是具有图3所示的阈值分布和对应的状态分配的多级快闪存储单元的编程操作的状态转变图,其中,在MSB之前将LSB编程;图4B是具有图3所示的阈值分布和对应的状态分配的多级快闪存储单元的编程操作的状态转变图,其中,在MSB之前将LSB编程;图5是图示根据本发明实施例的、用于执行编程操作的电路的方框图;以及图6是图示根据本发明实施例的、用于在多级快闪存储单元中执行编程操作的方法的流程图。
具体实施例方式
下面,参照对应的附图来描述本发明的示例实施例。作为教导性示例来提供这些实施例,而本发明的实际范围由随后的权利要求限定。
图3是图示根据本发明一个实施例的多级快闪存储单元(MLC)的阈值电压分布和对应的逻辑状态的曲线图。参考图3,所述阈值电压分布对应于MLC的逻辑状态‘11’、‘10’、‘01’和‘00’,其中,最低的阈值电压对应于状态‘11’,下一个最低的阈值电压对应于状态‘10’,再下一个最低的阈值电压对应于状态‘01’,并且最高的阈值电压对应于状态‘00’。排列MLC的状态,使得将最高有效位(MSB)或最低有效位(LSB)从‘1’改变为‘0’对应于增大MLC的阈值电压。结果,可以通过首先将LSB编程并且随后将MSB编程、或者通过首先将MSB编程并且随后将LSB编程来将MLC编程。
图4A是图示在具有图3所示的阈值电压分布和状态分配的MLC的编程操作中进行的转变的状态转变图。在图4A所示的编程操作中,首先将MLC的LSB编程,然后将MSB编程。参考图4A,MLC通过被标注为⑦的路径而从状态‘11’转变为状态‘10’,以便将LSB编程。MLC沿着被标注为⑨的路径而从状态‘11’转变为状态‘01’,或者沿着被标注为⑧的路径而从状态‘10’转变为状态‘00’,以便将MSB编程。
图4B是图示在具有图3所示的阈值电压分布和状态分配的MLC的编程操作中进行的转变的状态转变图。在图4B所示的编程操作中,首先将MLC的MSB编程,然后将LSB编程。参考图4B,在将MLC从状态‘11’编程至‘00’的第一种情形中,MLC通过被标注为⑩的路径而从状态‘11’转变为状态‘01’。然后MLC通过路径而从状态‘01’转变为‘00’,以便将LSB编程。在将MLC从状态‘11’编程为状态‘10’的第二种情形中,MLC在一个步骤中通过标注为的路径从状态‘11’转变为‘10’。
如图4A和4B所示,在具有诸如图4所示的阈值电压分布和对应的状态分配的MLC中,可以通过首先将LSB编程并且随后将MSB编程,或者首先将MSB编程并且随后将LSB编程来进行编程操作。换言之,当如图3所示的那样排列所述状态时,不出现图2A和2B所示的问题。
图5是图示能够根据图4所示的状态转变图将MLC编程的快闪存储设备的方框图。参考图5,该快闪存储设备包括具有X-解码器和Y-选择器的存储单元阵列10、写入驱动器20、感测放大器30、状态检测器40、编程控制器50以及电压产生器60。
在存储单元阵列10的编程操作中,写入驱动器20利用来自电压产生器60的位线电压VBL来驱动所选择的位线,以便将所选MLC编程。感测放大器30在读取和验证操作中感测所选MLC的逻辑状态。状态检测器40基于信号SA_OUT从感测放大器30接收并存储所选MLC的逻辑状态。编程控制器50通过根据来自状态检测器40的信号P_STATE而在编程操作中感测所述单元的状态,来控制整个编程过程。电压产生器60基于由编程控制器50输出的控制信号S_SEL来产生编程电压。
存储单元阵列10最好包括NOR型多级快闪存储单元以及用于选择所述单元的X-解码器和Y-选择器。优选地,每个存储单元能够存储两个数据位,并且将逻辑状态分配给每个单元的各个阈值电压,使得递增的阈值电压按照以下顺序对应逻辑状态‘11’、‘10’、‘01’和‘00’,如图3所示。
当将编程脉冲Vpgm作为电压VWL施加到所选存储单元的字线时,写入驱动器20激活该存储单元的位线。在编程操作中,写入驱动器20响应于从编程控制器50输入的写入使能信号WREN而将位线电压VBL从电压产生器60传递到被激活的位线。编程脉冲Vpgm被传递给所述字线,并且所选存储单元的漏极被偏置在优选为5V的位线电压VBL上,使得有效地发生热电子注入。
感测放大器30并联连接到写入驱动器20和存储单元阵列10中的存储单元的位线,并且在读取和验证操作中感测所选存储单元的逻辑状态。在读取操作中,将读取电压Vread作为字线电压VWL施加到与所选单元相连接的字线,并且感测放大器30根据流过所选单元的电流量来感测存储在所选单元中的数据的逻辑状态。为了感测2位的数据,感测放大器30典型地进行串行感测或并行感测。然后,感测放大器30输出输出信号SA_OUT,所述输出信号SA_OUT具有取决于在读取操作中电流是否流经所选单元的逻辑电平。
状态检测器40接收输出信号SA_OUT,以便确定所选单元的逻辑状态。使用状态检测器40来帮助将所选单元从初始状态通过中间状态而编程为目标状态,例如如图3示出的编程序列所示的那样。
编程控制器50响应于从外部源输入的编程地址信号PGM_ADD而控制所选存储单元的MSB或LSB的编程。编程控制器50接收指示当前选择的单元中的一个数据位的值的信号P_STATE,并且输出控制信号S_SEL,所述控制信号S_SEL是由电压产生器60用来产生用于将当前选择的单元编程为目标状态的编程电压的状态选择信号。
为了感测当前选择的单元的逻辑状态,编程控制器50输出感测使能信号SAEN,以便激活感测放大器30的感测操作。响应于感测使能信号SAEN,感测放大器30执行当前选择的存储单元中的数据的并行或串行感测。
为了简要概括编程控制器50的操作,编程控制器50基于信号P_STATE来感测所选存储单元的一位的逻辑状态。然后,编程控制器50基于编程地址PGM_ADD来确定所选存储单元的目标状态。然后,编程控制器50将状态选择信号S_SEL输出到电压产生器60,使得电压产生器60产生用于将所选存储单元编程为目标状态的适当字线电压。
电压产生器60产生在编程和验证操作中使用的电压VWL和VBL,并且将电压VWL和VBL分别施加到存储单元阵列10的字线和写入驱动器20。施加到字线的电压VWL在编程操作期间具有编程电压Vpgm,而在验证操作期间具有验证电压Vveri。优选地,施加编程电压Vpgm,以便使用递增阶跃脉冲编程(ISPP)将存储单元的阈值电压移动到验证电压Vveri或更高来对存储单元阵列10中的存储单元进行编程。
一般而言,ISPP是一种迭代编程方法,其使用重复的循环,以便通过逐步增大编程电压Vpgm的电压电平的方式来增大所选存储单元的阈值电压。在ISPP中将编程电压Vpgm施加到所选存储单元之后,将验证电压Vveri施加到所选存储单元,以便验证该单元是否被正确地编程。电压产生器60响应于从编程控制器50输入的状态选择信号S_SEL而产生用于每个状态‘10’、‘01’和‘00’的编程电压Vpgm和验证电压Vveri。编程电压Vpgm将所选单元的阈值电压向与目标状态相对应的期望电平移动,并且验证电压Vveri验证存储单元的阈值电压是否已经被提升到所期望的电平。
所选单元的上述ISPP编程操作中的编程电压Vpgm的初始值取决于所选单元的当前逻辑状态。例如,当所选单元具有‘11’、‘10’和‘01’的当前状态时,编程操作使用编程电压Vpgm的不同初始值。此外,电压产生器60还产生位线电压VBL,所述位线电压VBL将在编程操作期间通过写入驱动器20施加到与所选存储单元相连接的位线上。
图6是图示用于将诸如图5所示的MLC设备编程的方法的流程图。在以下描述中,利用括号(XXX)来表示示例方法步骤,以便将它们与诸如图5所示的系统特征区分开。
参考图6,所述方法包括首先根据通常由MLC设备的用户设置的编程地址PGM_ADD来确定是将所选单元的MSB还是LSB编程(S10)。如果编程地址PGM_ADD是‘偶数’,则首先将MSB编程,而如果编程地址PGM_ADD是‘奇数’,则首先将LSB编程。
接下来,检测所选单元的逻辑状态(S20和S60)。例如,这可以通过在编程控制器50的控制下将感测使能信号SAEN施加到感测放大器30来完成。如果要编程的单元的位是MSB,则这意味着MSB处于擦除状态。另一方面,如果要将MSB编程,则LSB的当前值可以是‘0’或‘1’,因此,检查所选单元的当前阈值电压,以确定LSB的逻辑状态(S20)。类似地,如果要编程的位是LSB,则这意味着LSB处于擦除状态,并且MSB的值未知。因此,将在步骤(S60)中检查LSB的状态。
作为对如何检测MSB或LSB的逻辑状态的说明,可以使用图5中的状态检测器40,以使用信号P_STATE将LSB的当前值发送给编程控制器50。基于信号P_STATE的值,编程控制器50可以确定所选单元的状态是‘11’还是‘10’(S30)或者所选单元的状态是‘11’还是‘01’(S70)。
如果所选单元的当前状态是‘11’,则对MSB编程将把所选存储单元改变为状态‘01’(S40),并且对LSB编程将把所选存储单元改变为状态‘10’(S80)。另一方面,如果所选存储单元的状态是‘10’,则对MSB编程将把所选存储单元的逻辑状态改变为状态‘00’(S50),而如果所选存储单元的状态是‘01’,则对LSB编程也将把所选存储单元的逻辑状态改变为‘00’(S90)。
当通过首先将MSB编程而将所选存储单元从逻辑状态‘11’编程为逻辑状态‘00’时,应当遵循诸如图4B所示的状态转变路径。具体地说,应当按顺序进行与路径⑩和相对应的转变。类似地,当通过首先将LSB编程而将所选存储单元从逻辑状态‘11’编程为逻辑状态‘00’时,应当遵循诸如图4A所示的状态转变路径。具体地说,应当按顺序进行与路径⑦和⑧相对应的转变。当需要连续的编程操作以便对MSB和LSB二者编程时,可以在验证第一位被完全编程之后直接执行用于将最后一位编程的编程操作。换言之,在此情况下,当LSB被最后编程时,并不总是需要重新检查所述单元是处于状态‘11’还是‘01’,或者当MSB被最后编程时,并不总是需要重新检查所述单元是处于状态‘11’还是‘10’。
一旦在步骤(S40)、(S50)、(S80)或(S90)的任一个中完成编程,就执行步骤(S100),以便确定所选单元的编程是否已经完成。如果是,则该方法终止。否则,该方法返回步骤(S10)。
根据如上所述的本发明的各个实施例,可以通过在将MSB编程之前将LSB编程、或者通过在将LSB编程之前将MSB编程来将其中存储两个或更多位的多级单元编程。本发明的实施例还提供了用于对这种多级单元编程的各种方法。可以首先将MSB或LSB中的任一个编程的多级单元与不具有此性质的传统多级单元相比能够更容易地适应不同的系统要求。此外,它们允许编程操作中的真正的随机位访问。
前述优选实施例是教导性示例。本领域普通技术人员将理解在不背离由所附权利要求限定的本发明的范围的情况下,可以对这些示例实施例进行各种形式和细节上的改变。
权利要求
1.一种将包括多级存储单元的快闪存储设备编程的方法,该方法包括确定是将所选存储单元的高位还是低位编程;检测存储在所选存储单元中的两个数据位的当前逻辑状态;确定高位或低位的目标逻辑状态;产生用于将高位或低位编程为目标逻辑状态的编程电压和验证电压;以及将所述编程电压和验证电压施加到与所选存储单元相连接的字线。
2.如权利要求1所述的方法,还包括连续地将各个高位和低位编程。
3.如权利要求1所述的方法,其中,所述快闪存储设备是NOR型快闪存储设备。
4.如权利要求1所述的方法,其中,所选择的存储单元具有可变阈值电压,该可变阈值电压具有分配给对应逻辑状态的电平,使得无论何时将高位或低位中的任一个编程,所述阈值电压都增大。
5.如权利要求1所述的方法,其中,确定是将高位还是低位编程包括将编程地址解码。
6.如权利要求5所述的方法,还包括基于编程地址是偶数还是奇数来将高位或低位编程。
7.一种将NOR快闪存储设备编程的方法,所述NOR快闪存储设备包括能够存储逻辑状态‘11’、‘10’、‘01’和‘00’的所选存储单元,其中所述逻辑状态‘11’、‘10’、‘01’和‘00’对应于所选存储单元的阈值电压的递增的电平,所述方法包括确定是将所选存储单元的高位还是低位编程;检测高位和低位的当前逻辑状态;以及如果所述当前逻辑状态是‘10’并且要将高位编程,则将所选存储单元从逻辑状态‘10’编程为逻辑状态‘00’,而如果当前逻辑状态是‘01’并且要将低位编程,则将所选存储单元从逻辑状态‘01’编程为逻辑状态‘00’。
8.如权利要求7所述的方法,还包括连续地将各个高位和低位编程。
9.如权利要求7所述的方法,还包括产生用于将所选存储单元从当前逻辑状态编程为目标逻辑状态的编程电压和验证电压。
10.如权利要求9所述的方法,其中,所述编程电压具有由当前逻辑状态确定的初始电压。
11.一种多级单元快闪存储设备,包括电压产生器,其被适配为响应于状态选择信号而产生用于将快闪存储设备的所选存储单元编程的编程电压,并且将该编程电压施加到所选存储单元;感测放大器,其被适配为响应于感测使能信号而通过与其连接的位线来感测所选存储单元的当前逻辑状态;写入驱动器,其被适配为在所选存储单元的编程操作期间,响应于写入使能信号而激活所述位线;以及编程控制器,其被适配为响应于编程地址而产生感测使能信号,并且基于存储单元的当前逻辑状态来产生状态选择信号;其中,可以通过首先将高位编程并且随后将低位编程、或者通过首先将低位编程并且随后将高位编程来将所选存储单元编程。
12.如权利要求11所述的快闪存储设备,其中,所选存储单元能够存储逻辑状态‘11’、‘10’、‘01’和‘00’,其中所述逻辑状态‘11’、‘10’、‘01’和‘00’对应于所选存储单元的阈值电压的递增的电平。
13.如权利要求12所述的快闪存储设备,其中,使用状态选择信号来将所选存储单元从当前逻辑状态编程为目标逻辑状态。
14.如权利要求13所述的快闪存储设备,其中,用于将所选存储单元编程为目标状态的电压包括施加到所选存储单元的字线的编程电压和验证电压、以及施加到写入驱动器的位线电压。
15.如权利要求14所述的快闪存储设备,其中,编程电压具有由当前逻辑状态确定的初始电压。
16.如权利要求12所述的快闪存储设备,其中,根据编程地址的值来首先将所选存储单元的高位或低位编程。
17.如权利要求16所述的快闪存储设备,其中,根据编程地址是偶数还是奇数来首先将高位或低位编程。
18.如权利要求11所述的快闪存储设备,其中,所述存储单元是NOR型快闪存储单元。
全文摘要
一种将多级快闪存储设备中的所选单元编程的方法,包括确定是将所选存储单元的高位还是低位编程;检测存储在所选存储单元中的两个数据位的当前逻辑状态;确定高位或低位的目标逻辑状态;产生用于将高位或低位编程为目标逻辑状态的编程电压和验证电压;以及将所述编程电压和验证电压施加到与所选存储单元相连接的字线。
文档编号G11C16/06GK1905069SQ20061011002
公开日2007年1月31日 申请日期2006年7月28日 优先权日2005年7月29日
发明者孔载弼, 郑宰镛 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1