用于非易失性存储装置的电阻感测及补偿 【技术领域】
本发明涉及用于非易失性存储装置的技术。
背景技术
半导体存储器已变得越来越普遍用于各种电子装置中。举例来说,非易失性半导体存储器用于蜂窝式电话、数码相机、个人数字助理、移动计算装置、非移动计算装置及其它装置中。电可擦除可编程只读存储器(EEPROM)及快闪存储器属于最普遍的非易失性半导体存储器。
EEPROM及快闪存储器两者均利用定位于半导体衬底中的沟道区上方且与沟道区绝缘的浮动栅极。所述浮动栅极定位于源极区与漏极区之间。控制栅极提供于浮动栅极上方且与浮动栅极绝缘。晶体管的阈值电压由保持于浮动栅极上的电荷量来控制。也就是说,在接通晶体管以准许其源极与漏极之间导通之前必须施加到控制栅极的最小电压量由浮动栅极上的电荷电平来控制。
在对EEPROM或快闪存储器装置(例如NAND快闪存储器装置)进行编程时,通常向控制栅极施加编程电压且将位线接地。来自沟道的电子注入浮动栅极中。当电子在浮动栅极中累积时,浮动栅极变得带负电,且存储器单元的阈值电压升高,使得存储器单元处于已编程状态。关于编程的更多信息可参见标题为“用于非易失性存储器的源极侧自升压技术(Source Side Self Boosting Technique For Non-Volatile Memory)”的第6,859,397号美国专利、标题为“检测过编程存储器(Detecting Over ProgrammedMemory)”的第6,917,542号美国专利以及标题为“对非易失性存储器进行编程(Programming Non-Volatile Memory)”的第6,888,758号美国专利,所述三个引用的专利的全文均以引用的方式并入本文中。
在许多情况下,将编程电压作为一系列脉冲(称为编程脉冲)施加到控制栅极,其中脉冲的量值在每一脉冲处递增。在编程脉冲之间,执行一组一个或一个以上验证操作来确定正被编程的存储器单元是否已达到其目标电平。如果存储器单元已达到其目标电平,则编程对于所述存储器单元停止。如果存储器单元尚未达到其目标电平,则编程将对于所述存储器单元继续。
快闪存储器系统的一个实例使用NAND结构,其包括在两个选择栅极之间串联布置多个晶体管。所述串联的晶体管及所述选择栅极被称为NAND串。
在典型NAND快闪存储器装置中,以某一次序对存储器单元进行编程,其中首先对邻接于源极侧选择栅极的字线上的存储器单元进行编程。随后,对邻近字线上的存储器单元进行编程,随后对下一邻近字线上的存储器单元进行编程,以此类推,直到邻接于漏极侧选择栅极的最后字线上的存储器单元被编程为止。
随着NAND串中的较多存储器单元被编程,未选定字线下方的沟道区域的传导性将下降,因为已编程的存储器单元具有比处于已擦除状态的存储器单元高的阈值电压。沟道电阻的此增大改变存储器单元的IV特性。在正对特定存储器单元进行编程(及验证)时,比选定字线高(较靠近漏极侧选择栅极)的字线上的所有存储器单元仍处于已擦除状态。因此,那些字线下方的沟道区域非常良好地传导,从而导致在实际验证操作期间产生相对较高的单元电流。然而,在已将NAND串的所有存储器单元编程到其所需状态之后,那些字线下方的沟道区域的传导性通常下降,因为大多数单元将被编程到已编程状态中的一者(而平均25%的较小数目的单元将保持于已擦除状态)。因此,IV特性改变,因为与在编程期间执行的先前验证操作相比,较小电流将流动。降低的电流造成存储器单元的阈值电压的假象移位,其可导致在读取数据时产生错误。此效应被称为反向模式效应。
【发明内容】
本发明提议用于读取非易失性存储装置的技术,其解决反向模式效应。当从作为一群组经连接非易失性存储元件的部分的非易失性存储元件读取数据时,对所述群组测量电阻信息。基于所测量的电阻信息而设定一个或一个以上读取参数。接着使用所述一个或一个以上参数来执行读取过程。
一个实施例包括:对一个或一个以上群组经连接非易失性存储元件测量电阻信息;以及使用所述电阻信息来从每一群组的一个或一个以上非易失性存储元件读取数据。
一个实施例包括:对一个或一个以上NAND串测量电阻信息;基于所述电阻信息而单独地对每一NAND串选择参数;以及使用所选参数来对每一NAND串的至少一个非易失性存储元件执行一个或一个以上读取操作。NAND串中的每一者包括一组非易失性存储元件。
一个实施例包括对一个或一个以上群组经连接非易失性存储元件测量电阻信息。每一群组经连接非易失性存储元件包括目标非易失性存储元件及邻接于目标非易失性存储元件的相邻非易失性存储元件。所述过程还包括:对相邻非易失性存储元件确定条件信息;以及在向相邻非易失性存储元件提供补偿的同时对目标非易失性存储元件执行一个或一个以上读取操作。所述补偿是基于条件信息及电阻信息。条件信息指示相邻非易失性存储元件的条件。
一个实施例包括:对一群组经连接非易失性存储元件测量电阻信息;基于相邻非易失性存储元件的数据存储条件而对相邻非易失性存储元件确定条件数据;以及如果电阻信息指示第一电阻条件,则调整条件数据。在电阻信息指示第一电阻条件的情况下调整条件数据之后,对目标非易失性存储元件执行一个或一个以上读取操作。读取操作包括向目标非易失性存储元件施加读取电压,同时向相邻非易失性存储元件施加第一电压且向所述群组的其它未选定非易失性存储元件施加第二电压。第一电压是基于条件数据。
一个实施例包括:向一个或一个以上NAND串上的第一子组非易失性存储元件施加第一电压;向所述一个或一个以上NAND串上的第二子组非易失性存储元件施加第二电压;以及基于NAND串中响应于施加第一电压及第二电压而流动的电流来对所述一个或一个以上NAND串感测电阻信息。
一个实例性实施方案包含多个非易失性存储元件及与所述多个非易失性存储元件通信的一个或一个以上管理电路,所述管理电路用于执行本文所论述的过程。
【附图说明】
图1为NAND串地俯视图。
图2为NAND串的等效电路图。
图3为非易失性存储器系统的框图。
图4为描绘存储器阵列的一个实施例的框图。
图5为描绘感测块的一个实施例的框图。
图6描绘感测模块的一个实施例。
图7描绘一组实例性阈值电压分布且描述用于对非易失性存储器进行编程的过程。
图8A到图8C展示各种阈值电压分布且描述用于对非易失性存储器进行编程的过程。
图9为描绘对非易失性存储器进行编程的次序的一个实例的表。
图10描绘描述用于对非易失性存储器进行编程的过程的一个实施例的流程图。
图11描绘描述对非易失性存储器的读取操作的一个实施例的时序图。
图12描绘NAND串。
图13描绘描述用于读取数据的过程的一个实施例的流程图。
图14描绘NAND串。
图15描绘描述用于执行多个读取操作的过程的一个实施例的流程图。
图16描绘描述读取过程的一个实施例的流程图。
图17描绘描述用于执行多个读取操作的过程的一个实施例的流程图。
【具体实施方式】
快闪存储器系统的一个实例使用NAND结构,其包括将多个晶体管串联布置夹于两个选择栅极之间。所述串联的晶体管及所述选择栅极被称为NAND串。图1为展示一个NAND串的俯视图。图2为其等效电路。图1及图2中所描绘的NAND串包括串联且夹于第一(或漏极侧)选择栅极120与第二(或源极侧)选择栅极122之间的四个晶体管100、102、104及106。选择栅极120经由位线触点126而将NAND串连接到位线。选择栅极122将NAND串连接到源极线128。通过向选择线SGD施加适当电压来控制选择栅极120。通过向选择线SGS施加适当电压来控制选择栅极122。晶体管100、102、104及106中的每一者具有控制栅极及浮动栅极。举例来说,晶体管100具有控制栅极100CG及浮动栅极100FG。晶体管102包括控制栅极102CG及浮动栅极102FG。晶体管104包括控制栅极104CG及浮动栅极104FG。晶体管106包括控制栅极106CG及浮动栅极106FG。控制栅极100CG连接到字线WL3,控制栅极102CG连接到字线WL2,控制栅极104CG连接到字线WL1,且控制栅极106CG连接到字线WL0。
请注意,虽然图1及图2展示NAND串中有四个存储器单元,但四个晶体管的使用仅被提供作为实例。NAND串可具有四个以下存储器单元或四个以上存储器单元。举例来说,一些NAND串将包括八个存储器单元、16个存储器单元、32个存储器单元、64个存储器单元、128个存储器单元等等。本文中的论述不限于NAND串中的任何特定数目的存储器单元。
使用NAND结构的快闪存储器系统的典型结构将包括若干NAND串。每一NAND串由其受选择线SGS控制的源极选择栅极连接到源极线,且由其受选择线SGD控制的漏极选择栅极连接到其相关联的位线。每一位线及经由位线触点连接到所述位线的相应NAND串组成存储器单元阵列的列。位线由多个NAND串共享。通常,位线在NAND串之上在垂直于字线的方向上延伸且连接到一个或一个以上感测放大器。
每一存储器单元可存储数据(模拟或数字)。当存储一个数字数据位(称为二进制存储器单元)时,存储器单元的可能阈值电压的范围经划分为被指派逻辑数据“1”及“0”的两个范围。在NAND型快闪存储器的一个实例中,在存储器单元被擦除之后阈值电压为负且被定义为逻辑“1”。在编程之后的阈值电压为正且被定义为逻辑“0”。当阈值电压为负且通过向控制栅极施加0伏而尝试读取时,存储器单元将接通以指示正存储逻辑1。当阈值电压为正且通过向控制栅极施加0伏而尝试读取操作时,存储器单元将不接通,这指示存储逻辑0。
存储器单元还可存储多个信息级(称为多状态存储器单元)。在存储多个数据级的情况下,可能阈值电压的范围经划分为数据级的数目。举例来说,如果存储四个信息级(两个数据位),则将存在四个阈值电压范围,其被指派给数据值“11”、“10”、“01”及“00”。在NAND型存储器的一个实例中,在擦除操作之后的阈值电压为负且被定义为“11”。正阈值电压用于数据状态“10”、“01”及“00”。如果存储八个信息级(或状态)(例如,对于三个数据位),则将存在八个阈值电压范围,其被指派给数据值“000”、“001”、“010”、“011”、“100”、“101”、“110”及“111”。被编程到存储器单元中的数据与所述单元的阈值电压电平之间的特定关系取决于针对单元所采用的数据编码方案。举例来说,第6,222,762号美国专利及第2004/0255090号美国专利申请公开案描述了用于多状态快闪存储器单元的各种数据编码方案,所述专利文献两者的全文均以引用的方式并入本文中。在一个实施例中,使用格雷码指派来向阈值电压范围指派数据值,使得如果浮动栅极的阈值电压错误地移位到其相邻物理状态,则将仅影响一个位。在一些实施例中,可针对不同字线改变数据编码方案,可随时间而改变数据编码方案,或可反转随机字线的数据位以减小数据模式敏感性且平衡存储器单元上的磨损。
在以下美国专利/专利申请案中提供NAND型快闪存储器及其操作的相关实例,所有所述专利文献均以引用的方式并入本文中:第5,570,315号美国专利;第5,774,397号美国专利;第6,046,935号美国专利;第6,456,528号美国专利;以及第US2003/0002348号美国专利公开案。本文中的论述还可应用于除NAND以外的其它类型的快闪存储器以及其它类型的非易失性存储器。
还可使用除NAND快闪存储器以外的其它类型的非易失性存储装置。举例来说,还可配合本发明而使用所谓的TANOS结构(由硅衬底上的TaN-Al2O3-SiN-SiO2堆叠层构成),其基本上是使用在氮化物层(代替浮动栅极)中的电荷俘获的存储器单元。在快闪EEPROM系统中有用的另一类型的存储器单元利用非传导性介电材料来替代传导性浮动栅极以便以非易失性方式存储电荷。此类单元在陈(Chan)等人所著的文章“真正的单晶体管氧化物-氮化物-氧化物EEPROM装置(A True Single-TransistorOxide-Nitride-Oxide EEPROM Device)”(IEEE电子装置快报,第EDL-8卷,第3号,1987年3月,第93到95页)中描述。由氧化硅、氮化硅及氧化硅(“ONO”)形成的三层式电介质夹于传导性控制栅极与半传导性衬底的表面之间位于存储器单元沟道上方。通过从单元沟道向氮化物中注入电子来对单元进行编程,在氮化物中将电子俘获并存储于有限区中。此所存储的电荷接着以可检测的方式来改变单元的沟道的一部分的阈值电压。通过向氮化物中注入热空穴来对单元进行擦除。还请参见野崎(Nozaki)等人的“用于半导体磁盘应用的具有MONOS存储器单元的1Mb EEPROM(A 1-MbEEPROM with MONOS Memory Cell for Semiconductor Disk Application)”(IEEE固态电路杂志,第26卷,第4号,1991年4月,第497到501页),其描述具有分裂式栅极配置的类似单元,其中掺杂多晶硅栅极在存储器单元沟道的一部分上方延伸以形成单独的选择晶体管。前述两篇文章的全文以引用的方式并入本文中。在由威廉·D·布朗(William D.Brown)及乔·E·布鲁尔(Joe E.Brewer)编辑的“非易失性半导体存储器技术(Nonvolatile Semiconductor Memory Technology)”(IEEE出版社,1998年,其以引用的方式并入本文中)的章节1.2中提及的编程技术也在所述章节中经描述为可应用于介电电荷俘获装置。还可使用其它类型的存储器装置。
图3说明具有用于并行地对存储器单元(例如,NAND多状态快闪存储器)页进行读取及编程的读取/写入电路的存储器装置210。存储器装置210可包括一个或一个以上存储器裸片或芯片212。存储器裸片212包括存储器单元阵列(二维或三维)200、控制电路220以及读取/写入电路230A及230B。在一个实施例中,在阵列的相对侧上以对称方式实施由各种外围电路进行的对存储器阵列200的存取,从而使每一侧上的存取线及电路的密度减半。读取/写入电路230A及230B包括多个感测块300,其允许并行地对存储器单元页进行读取或编程。存储器阵列100可由字线经由行解码器240A及240B且由位线经由列解码器242A及242B来寻址。在典型实施例中,控制器244与所述一个或一个以上存储器裸片212包括于同一存储器装置210(例如,可移除式存储卡或封装)中。经由线232在主机与控制器244之间且经由线234在控制器与所述一个或一个以上存储器裸片212之间传送命令及数据。
控制电路220与读取/写入电路230A及230B协作以对存储器阵列200执行存储器操作。控制电路220包括状态机222、芯片上地址解码器224及功率控制模块226。状态机222提供对存储器操作的芯片级控制。芯片上地址解码器224提供主机或存储器控制器所使用的地址与解码器240A、240B、242A及242B所使用的硬件地址之间的地址接口。功率控制模块226控制在存储器操作期间供应到字线及位线的功率及电压。在一个实施例中,功率控制模块226包括一个或一个以上电荷泵,所述电荷泵可产生比电源电压大的电压。
在一个实施例中,控制电路221、功率控制电路226、解码器电路224、状态机电路222、解码器电路242A、解码器电路242B、解码器电路240A、解码器电路240B、读取/写入电路230A、读取/写入电路230B及/或控制器244中的一者或任一组合可称为一个或一个以上管理电路。
图4描绘存储器单元阵列200的示范性结构。在一个实施例中,将存储器单元阵列划分为大量存储器单元块。如对于快闪EEPROM系统来说为常见的,块是擦除单位。也就是说,每一块含有一起被擦除的最小数目的存储器单元。通常将每一块划分为许多页。页是编程单位。通常将一个或一个以上数据页存储于一行存储器单元中。一页可存储一个或一个以上扇区。扇区包括用户数据及额外开销数据。额外开销数据通常包括已根据扇区的用户数据而计算出的错误校正码(ECC)。控制器(下文描述)的一部分在数据正被编程到阵列中时计算ECC,且还在数据正被从阵列读取时检查ECC。或者,将ECC及/或其它额外开销数据存储于与其所属于的用户数据不同的页中或甚至不同的块中。用户数据扇区通常为512字节,其对应于磁盘驱动器中的扇区的大小。大量页形成块,从(例如)8个页到高达32个、64个、128个或更多页。还可使用不同大小的块。
在另一实施例中,将位线划分为偶数位线及奇数位线。在奇数/偶数位线结构中,在一个时间对沿共同字线且连接到奇数位线的存储器单元进行编程,而在另一时间对沿共同字线且连接到偶数位线的存储器单元进行编程。
图4展示串联连接以形成NAND串的四个存储器单元。虽然展示每一NAND串中包括四个单元,但可使用四个以上或四个以下单元(例如,16个、32个、64个、128个或另一数目的存储器单元可处于NAND串上)。NAND串的一个端子经由漏极选择栅极(连接到选择栅极漏极线SGD)连接到对应位线,且另一端子经由源极选择栅极(连接到选择栅极源极线SGS)连接到源极线。
图5为个别感测块300的框图,所述感测块300被分割为称为感测模块480的核心部分及共同部分490。在一个实施例中,将针对每一位线存在单独的感测模块480且针对一组多个感测模块480存在一个共同部分490。在一个实例中,感测块将包括一个共同部分490及八个感测模块480。一群组中的感测模块中的每一者将经由数据总线472而与相关联的共同部分通信。关于进一步细节,请参看第2006/0140007号美国专利申请公开案,其全文以引用的方式并入本文中。
感测模块480包含感测电路470,其确定经连接位线中的传导电流是高于还是低于预定阈值电平。在一些实施例中,感测模块480包括通常称为感测放大器的电路。感测模块480还包括用以设定经连接位线上的电压条件的位线锁存器482。举例来说,锁存于位线锁存器482中的预定状态将导致经连接位线被拉到指示编程抑制的状态(例如,Vdd)。
共同部分490包含处理器492、一组数据锁存器494以及耦合于所述组数据锁存器494与数据总线420之间的I/O接口496。处理器492执行计算。举例来说,其功能之一是确定存储于所感测的存储器单元中的数据及将所确定的数据存储于所述组数据锁存器中。所述组数据锁存器494用以存储在读取操作期间由处理器492确定的数据位。其还用以存储在编程操作期间从数据总线420引入的数据位。所引入的数据位表示打算被编程到存储器中的写入数据。I/O接口496在数据锁存器494与数据总线420之间提供接口。
在读取或感测期间,系统的操作处于状态机222的控制下,所述状态机222控制将不同控制栅极电压供应到所寻址的单元。随着步进通过对应于存储器所支持的各种存储器状态的各种预定义控制栅极电压,感测模块480可在这些电压中的一者处跳脱,且输出将从感测模块480经由总线472而被提供到处理器492。在那点处,处理器492通过考虑感测模块的跳脱事件及关于从状态机经由输入线493施加的控制栅极电压的信息来确定所得存储器状态。其接着针对所述存储器状态计算二进制编码且将所得数据位存储到数据锁存器494中。在核心部分的另一实施例中,位线锁存器482服务于双重用途,作为用于锁存感测模块480的输出的锁存器且还作为如上文描述的位线锁存器。
预期一些实施方案将包括多个处理器492。在一个实施例中,每一处理器492将包括输出线(图5中未描绘),使得输出线中的每一者被线或在一起。在一些实施例中,输出线在被连接到线或线之前经反转。此配置使得能够在编程验证过程期间快速确定何时编程过程已完成,因为接收线或线的状态机可确定何时正被编程的所有位已达到所需电平。举例来说,当每一位已达到其所需电平时,所述位的逻辑零将被发送到线或线(或者数据1被反转)。当所有位均输出数据0(或经反转的数据1)时,于是状态机知道要终止编程过程。在每一处理器与八个感测模块通信的实施例中,状态机可能(在一些实施例中)需要读取线或线八次,或者将逻辑添加到处理器492以累积相关联的位线的结果,使得状态机仅需读取线或线一次。
在编程或验证期间,从数据总线420将待编程的数据存储于所述组数据锁存器494中。处于状态机的控制下的编程操作包含施加到所寻址的存储器单元的控制栅极的一系列编程电压脉冲(其具有递增的量值)。每一编程脉冲之后是用以确定存储器单元是否已被编程到所需状态的验证过程。处理器492对照所需存储器状态来监视所验证的存储器状态。当两者一致时,处理器492设定位线锁存器482以便致使将位线拉到指示编程抑制的状态。这抑制经耦合到所述位线的单元使其免于进一步编程,即使其在其控制栅极上经受编程脉冲。在其它实施例中,处理器最初加载位线锁存器482,且感测电路在验证过程期间将其设定为抑制值。
数据锁存器堆叠494含有对应于感测模块的一堆数据锁存器。在一个实施例中,每感测模块480存在三个(或四个,或另一数目)数据锁存器。由于感测模块与位线(且因此,NAND串)相关联,所以每NAND串存在三个数据锁存器(例如,L1、L2及L3)。因此,特定存储器单元及其在同一NAND串上的相邻者共享共同组三个锁存器。在一个实施例中,锁存器各自为一个位。
在一些实施方案中(但并不要求),将数据锁存器实施为移位寄存器,使得将存储于其中的并行数据转换成串行数据以用于数据总线420,且反之亦然。在一个优选实施例中,对应于具有m个存储器单元的读取/写入块的所有数据锁存器可被链接在一起以形成块移位寄存器,使得可通过串行传送来输入或输出数据块。明确地说,读取/写入模块组合经调适以使得它那组数据锁存器中的每一数据锁存器将顺序地将数据移入数据总线或移出数据总线,如同所述数据锁存器为用于整个读取/写入块的移位寄存器的部分。
图6说明感测模块480的实例;然而,还可使用其它实施方案。感测模块480包含位线隔离晶体管512、位线下拉电路(晶体管522及550)、位线电压箝位晶体管612、读出总线传输门530、感测放大器600及位线锁存器482。位线隔离晶体管512的一侧连接到位线BL及电容器510。位线隔离晶体管512的另一侧连接到位线电压箝位晶体管612及位线下拉晶体管522。位线隔离晶体管512的栅极接收标记为BLS的信号。位线电压箝位晶体管612的栅极接收标记为BLC的信号。位线电压箝位晶体管612在节点SEN2处连接到读出总线传输门530。读出总线传输门530连接到读出总线532。位线电压箝位晶体管512在节点SEN2处连接到感测放大器600。在图6的实施例中,感测放大器600包括晶体管612、634、641、642、643、654、656及658以及电容器Csa,位线锁存器482包括晶体管661、662、663、664、666及668。
一般来说,并行地对沿一字线的存储器单元进行操作。因此,对应数目的感测模块并行操作。在一个实施例中,状态机222及/或处理器492向并行操作的感测模块提供控制及时序信号。在一些实施例中,将沿一字线的数据划分为多个页,且每次一页或每次多个页地读取数据。
在位线隔离晶体管512由信号BLS启用时,感测模块480可连接到存储器单元的位线(例如,位线BL)。感测模块480借助于感测放大器600来感测存储器单元的传导电流,且在感测节点SEN2处将读取结果锁存作为数字电压电平并经由门530将其输出到读出总线532。
感测放大器600包含第二电压箝位(晶体管613及634)、预充电电路(晶体管641、642及643)以及鉴别器或比较电路(晶体管654、656及658;以及电容器Csa)。在一个实施例中,向正被读取的存储器单元的控制栅极施加参考电压。如果参考电压大于存储器单元的阈值电压,则存储器单元将接通且在其源极与漏极之间传导电流。如果参考电压不大于存储器单元的阈值电压,则存储器单元将不接通且将不在其源极与漏极之间传导电流。在许多实施方案中,接通/断开可为连续转变,使得存储器单元将响应于不同控制栅极电压而传导不同电流。如果存储器单元接通且传导电流,则所传导的电流将致使节点SEN上的电压下降,从而有效地对电容器Csa充电或使跨越电容器Csa的电压上升,所述电容器Csa的另一端子可处于Vdd。如果节点SEN上的电压在预定感测时期期间放电到预定电平,则感测放大器600响应于控制栅极电压而报告存储器单元接通。
感测模块480的一个特征为在感测期间向位线并入恒定电压供应。这优选地由位线电压箝位晶体管612来实施,所述位线电压箝位晶体管612如同具有与位线BL串联的晶体管612的二极管箝位来操作。其栅极被偏置到高于其阈值电压Vt的等于所需位线电压VBL的恒定电压BLC。以此方式,其使位线与节点SEN隔离,且在编程验证或读取期间对位线设定恒定电压电平,例如所需VBL=0.5到0.7伏。一般来说,将位线电压电平设定为一电平以使得其足够低来避免长预充电时间,然而足够高来避免接地噪声及其它因素。
感测放大器600感测通过感测节点SEN的传导电流且确定传导电流是高于还是低于预定值。感测放大器将所感测的结果以数字形式作为信号SEN2输出到读出总线532。
还输出数字控制信号INV(其实质上可为SEN2处的信号的经反转状态)以控制下拉电路。当所感测的传导电流高于预定值时,INV将为高且SEN2将为低。此结果由下拉电路加强。下拉电路包括由控制信号INV控制的n晶体管522及由控制信号GRS控制的另一n晶体管550。GRS信号在为低时允许位线BL浮动,而不管INV信号的状态。在编程期间,GRS信号走高以允许位线BL被拉到接地且由INV控制。当需要位线BL浮动时,GRS信号走低。请注意,还可使用感测模块、感测放大器及锁存器的其它设计。
在一个实施例中,读取/写入电路365同时对存储器单元页进行操作。读取/写入电路365中的每一感测模块480经由位线而耦合到对应单元。在一个实施例中,传导电流从感测模块流动通过位线而进入存储器单元的漏极中且在通过源极线而到达接地之前离开源极。在集成电路芯片中,存储器阵列中的单元的源极被全部系在一起作为连接到存储器芯片的某一外部接地垫(例如,Vss垫)的源极线的多个分支。即使在使用金属捆扎材料来减小源极线的电阻时,存储器单元的源极电极与接地垫之间仍保持有限电阻R。通常,接地环路电阻R为50欧姆左右。
关于读取操作及感测放大器的额外信息可参见以下文献:(1)2004年3月25日公开的第2004/0057287号美国专利申请公开案“具有减少的源极线偏置错误的非易失性存储器及方法(Non-Volatile Memory And Method With Reduced Source Line BiasErrors)”;(2)2004年6月10日公开的第2004/0109357号美国专利申请公开案“具有改进的感测的非易失性存储器及方法(Non-Volatile Memory And Method with ImprovedSensing)”;(3)第20050169082号美国专利申请公开案;(4)2005年4月5日申请的发明人为陈建(Jian Chen)且标题为“在非易失性存储器读取操作期间补偿耦合(Compensating for Coupling During Read Operations of Non-Volatile Memory)”的第2006/0221692号美国专利公开案;以及(5)2005年12月28日申请的发明人为陈小龙(Siu Lung Chan)及劳尔-阿德里安·切尔内亚(Raul-Adrian Cernea)且标题为“用于非易失性存储器的参考感测放大器(Reference Sense Amplifier For Non-Volatile Memory)”的第11/321,953号美国专利申请案。所有五个以上列出的专利文献的全文均以引用的方式并入本文中。
在成功编程过程(连同验证)的末尾,存储器单元的阈值电压应适当地处于用于已编程的存储器单元的一个或一个以上阈值电压分布内或处于用于已擦除的存储器单元的阈值电压分布内。图7说明当每一存储器单元存储两个数据位时的用于存储器单元阵列的实例性阈值电压分布(或数据状态)。然而,其它实施例可每存储器单元使用两个以上或两个以下数据位(例如,每存储器单元使用三个数据位)。图7展示用于已擦除的存储器单元的第一阈值电压分布E。还描绘用于已编程的存储器单元的三个阈值电压分布A、B及C。在一个实施例中,E分布中的阈值电压为负且A、B及C分布中的阈值电压为正。
图7的每一相异阈值电压范围对应于所述组数据位的预定值。被编程到存储器单元中的数据与所述单元的阈值电压电平之间的特定关系取决于针对单元所采用的数据编码方案。在一个实施例中,使用格雷码指派来向阈值电压范围指派数据值,使得如果浮动栅极的阈值电压错误地移位到其相邻物理状态,则将仅影响一个位。一个实例向阈值电压范围E(状态E)指派“11”,向阈值电压范围A(状态A)指派“10”,向阈值电压范围B(状态B)指派“00”,且向阈值电压范围C(状态C)指派“01”。然而,在其它实施例中,不使用格雷码。
在一个实施例中,用于每一状态的两个数据位处于不同页中。参看图7的状态E,两个页均存储“1”。参看状态A,上部页存储位1且下部页存储位0。参看状态B,两个页均存储“0”。参看状态C,上部页存储位0且下部页存储位1。
在另一实施例中,用于每一状态的两个数据位处于同一页中。虽然图7展示四个状态,但还可配合其它多状态结构(包括那些包括四个以上或四个以下状态的结构)来使用本发明。举例来说,存储三个数据位的存储器单元可使用八个数据状态。
图7还展示用于从存储器单元读取数据的三个读取参考电压Vra、Vrb及Vrc。通过测试给定存储器单元的阈值电压是高于还是低于Vra、Vrb及Vrc,系统可确定存储器单元处于何种状态。Vra、Vrb及Vrc的实例性值分别为0.0V、1.25V及2.5V。其它实例包括Vra=0.0v、Vrb=1.25v且Vrc=2.65v;或Vra=0.0v、Vrb=1.35v且Vrc=2.60v。
图7还展示三个验证参考电压Vva、Vvb及Vvc。在将存储器单元编程到状态A时,系统将测试那些存储器单元是否具有大于或等于Vva的阈值电压。在将存储器单元编程到状态B时,系统将测试存储器单元是否具有大于或等于Vvb的阈值电压。在将存储器单元编程到状态C时,系统将确定存储器单元的阈值电压是否大于或等于Vvc。Vva、Vvb及Vvc的实例性值分别为0.5V、1.8V及3.2V。其它实例包括Vva=0.40v、Vvb=1.80v且Vvc=3.35v;或Vva=0.5v、Vvb=1.9v且Vvc=3.3v。
在一个实施例中,作为通常所说的全序列编程,可直接将存储器单元从已擦除状态E编程到已编程状态A、B或C中的任一者。举例来说,可首先擦除待编程的存储器单元群体,使得所述群体中的所有存储器单元处于已擦除状态E。在将一些存储器单元从状态E编程到状态A的同时,将其它存储器单元从状态E编程到状态B且/或从状态E编程到状态C。全序列编程由图7的三个弯曲箭头以图形方式描绘。
图8A到图8C揭示用于对非易失性存储器进行编程的另一过程,其通过针对任一特定存储器单元在针对先前页对邻近存储器单元进行写入之后相对于特定页对所述特定存储器单元进行写入来减小浮动栅极到浮动栅极耦合的效应。在由图8A到图8C教示的过程的实施方案的一个实例中,非易失性存储器单元使用四个数据状态每存储器单元存储两个数据位。举例来说,假设状态E为已擦除状态且状态A、B及C为已编程状态。状态E存储数据11。状态A存储数据01。状态B存储数据10。状态C存储数据00。这是非格雷译码的实例,因为两个位均在邻近状态A与B之间改变。还可使用数据到物理数据状态的其它编码。每一存储器单元将数据存储在两个页中。出于参考目的,将这些数据页称为上部页及下部页;然而,可给予它们其它标签。参看图8A到图8C的过程的状态A,上部页存储位0且下部页存储位1。参看状态B,上部页存储位1且下部页存储位0。参看状态C,两个页均存储位数据0。
图8A到图8C的编程过程为两步式过程。在第一步骤中,对下部页进行编程。如果下部页将保持数据1,则存储器单元状态保持于状态E。如果数据将被编程为0,则使存储器单元的电压的阈值升高,使得存储器单元被编程到状态B′。因此,图8A展示存储器单元从状态E到状态B′的编程。图8A中所描绘的状态B′为中间状态B;因此,将验证点描绘为Vvb′,其低于Vvb。
在一个实施例中,在将存储器单元从状态E编程到状态B′之后,接着将对其在NAND串中的相邻存储器单元(连接到WLn+1)相对于其下部页来进行编程。举例来说,在对连接到WL0的存储器单元的下部页进行编程之后,将对处于同一NAND串上但连接到WL1的存储器单元(相邻存储器单元)的下部页进行编程。在对相邻存储器单元进行编程之后,浮动栅极到浮动栅极耦合效应将使待编程的较早存储器单元的表观阈值电压升高(如果所述较早存储器单元具有从状态E升高到状态B′的阈值电压)。这将具有加宽状态B′的阈值电压分布的效应,如图8B的中间阈值电压分布700所描绘。阈值电压分布的此表观加宽将在对上部页进行编程时矫正。
图8C描绘对上部页进行编程的过程。如果存储器单元处于已擦除状态E且上部页将保持于1,则存储器单元将保持于状态E。如果存储器单元处于状态E且其上部页数据将被编程为0,则存储器单元的阈值电压将升高,使得存储器单元处于状态A。如果存储器单元处于中间阈值电压分布700中且上部页数据将保持于1,则存储器单元将被编程到最终状态B。如果存储器单元处于中间阈值电压分布700中且上部页数据将变为数据0,则存储器单元的阈值电压将升高,使得存储器单元处于状态C。图8A到图8C所描绘的过程减小浮动栅极之间的耦合效应,因为仅相邻存储器单元的上部页编程将对给定存储器单元的表观阈值电压具有影响。
图9为描述利用图8A到图8C的编程方法来对存储器单元进行编程的次序的一个实施例的表。对于连接到字线WL0的存储器单元,下部页形成页0且上部页形成页2。对于连接到字线WL1的存储器单元,下部页形成页1且上部页形成页4。对于连接到字线WL2的存储器单元,下部页形成页3且上部页形成页6。对于连接到字线WL3的存储器单元,下部页形成页5且上部页形成页7。根据页编号(从页0到页7)而对存储器单元进行编程。在其它实施例中,还可使用其它编程次序。
在一个实施例中,系统可经设置为在正写入足够数据以填满字线的情况下执行全序列写入。如果没有写入足够数据,则编程过程可用所接收的数据来对下部页进行编程。当接收到后续数据时,系统接着将对上部页进行编程。在又一实施例中,系统可以对下部页进行编程的模式来开始写入且在随后接收到足够数据以填满整个(或大部分)字线的存储器单元的情况下转换为全序列编程模式。此类实施例的更多细节在2004年12月14日申请的发明人为塞尔吉·阿纳托里维奇·戈洛别茨(Sergy Anatolievich Gorobets)及李岩(Yan Li)且标题为“使用早期数据的对非易失性存储器的管线化编程(PipelinedProgramming of Non-Volatile Memories Using Early Data)”的公开案号为第2006/0126390号的美国专利申请案中揭示,所述申请案的全文以引用的方式并入本文中。
虽然图7到图9描绘使用四个数据状态来每存储器单元存储两个数据位,但其它实施例可使用不同数目的数据状态来每存储器单元存储不同(或相同)数目的数据位。在一个实例中,使用八个数据状态来存储三个数据位。
图10为描述用于对连接到选定字线的存储器单元进行编程的编程过程的流程图。因此,图10的过程用于实施图7的全序列编程,或图8A到图8C的两遍式编程技术的一遍(第一遍或第两遍)。图10的过程还可作为用于三个数据页(例如,每存储器单元三个数据位)的三遍式编程技术的一遍或作为另一多遍式编程技术的一遍来执行。可配合本发明来使用许多不同编程技术。在一个实施例中,图10的过程由控制电路220且/或在控制电路220的指引下(状态机222提供控制且功率控制器226提供适当信号)且/或在控制器244的指引下执行。因为编程过程可包括对多个页进行编程,所以编程过程可包括执行图9的过程多次。
请注意,在一些实施例(但并非全部)中,可从源极侧向漏极侧对存储器单元进行编程。举例来说,观察图4,首先对字线WL0进行编程,随后对WL1进行编程,随后对WL2进行编程等等。
在图10的过程的一个实施方案中,在编程之前对存储器单元进行擦除(以块或其它单位)(步骤720)。在一个实施例中,通过使p阱升高到擦除电压(例如,20伏)历时充足时期且在源极线及位线为浮动的同时将选定块的字线接地来对存储器单元进行擦除。由于电容性耦合的缘故,未选定的字线、位线、选择线及源极也升高到擦除电压的相当大部分。因此向选定存储器单元的隧道氧化物层施加强电场,且在通常通过福勒-诺尔德哈姆(Fowler-Nordheim)隧穿机制而将浮动栅极的电子发射到衬底侧时擦除选定存储器单元的数据。随着电子从浮动栅极转移到p阱区,选定单元的阈值电压降低。可对整个存储器阵列、块或另一单位的单元执行擦除。在擦除存储器单元块之后,可如本文所描述而对各种存储器单元进行编程。请注意,在对块的每一字线进行编程之前将不需要执行在步骤720中所执行的擦除。而是,可对块进行擦除,且接着可在无后续重复擦除的情况下对每一字线进行编程。
在步骤722中,执行软编程以使已擦除的存储器单元的已擦除阈值电压分布变窄。一些存储器单元可能由于擦除过程而处于比必要深的已擦除状态。软编程可施加小编程脉冲来使已擦除的存储器单元的阈值电压移动到较紧的阈值电压分布。请注意,可在对每一页进行编程之前对块执行擦除及软编程一次。
在步骤724中,由控制器244发布“数据加载”命令,且将其输入到状态机222。在步骤726中,向解码器电路提供指示页地址的地址数据。在步骤728中,输入所寻址页的编程数据页以用于编程。举例来说,在一个实施例中可输入528字节的数据。将所述数据锁存于用于选定位线的适当寄存器/锁存器中。在一些实施例中,还将数据锁存于用于选定位线的第二寄存器中以用于验证操作。在步骤730中,从控制器244接收“编程”命令且将其提供给状态机222。
当由“编程”命令触发时,将使用施加到适当字线的一组脉冲来把步骤728中所锁存的数据编程到受状态机222控制的选定存储器单元中。在步骤732中,将编程电压信号Vpgm(例如,所述组脉冲)初始化为起始量值(例如,~12V或另一合适电平),且将由状态机222维持的编程计数器PC初始化为0。在步骤734中,向选定字线施加编程信号Vpgm的脉冲。
在步骤736中,使用适当组的目标电平(例如,Vva、Vvb、Vvc)来验证选定存储器单元的数据状态。如果检测到选定存储器单元的阈值电压已达到适当目标电平,则通过升高存储器单元的位线电压来将所述存储器单元排除在用于图10的检验的剩余部分的未来编程以外。如果正被编程的所有存储器单元均已达到其目标数据状态(步骤738),则编程过程完成且成功,因为所有选定存储器单元均被编程且被验证为到其目标状态。在步骤740中报告“通过”状态。请注意,在步骤738的一些实施方案中,检查是否至少预定数目的存储器单元已被验证为已达到其目标状态。此预定数目可小于所有存储器单元的数目,进而允许编程过程在所有存储器单元已达到其适当验证电平之前停止。可在读取过程期间使用错误校正来校正未经成功编程的存储器单元。
如果在步骤738中确定并非所有存储器单元均已达到其目标状态,则编程过程继续。在步骤750中,对照编程极限值而检查编程计数器PC。编程极限值的一个实例为20;然而,在各种实施方案中可使用其它值。如果编程计数器PC不小于编程极限值,则在步骤766中确定尚未经成功编程的存储器单元的数目是否等于或小于预定数目。如果未经成功编程的存储器单元的数目等于或小于预定数目,则将编程过程标记为通过,且在步骤768中报告通过状态。在许多情况下,可在读取过程期间使用错误校正来校正未经成功编程的存储器单元。然而,如果未经成功编程的存储器单元的数目大于预定数目,则将编程过程标记为失败,且在步骤770中报告失败状态。如果编程计数器PC小于编程极限值,则在步骤762中使Vpgm脉冲的量值增大达步长(例如,0.2到0.4伏的步长)的量且使编程计数器PC递增。在步骤762之后,过程循环回到步骤734以施加下一Vpgm脉冲。
图11为描绘各种信号在验证或读取操作期间的行为的时序图。举例来说,如果存储器单元为二进制存储器单元,则可在步骤736的迭代期间执行图11的操作。如果存储器单元为具有四个状态(例如,E、A、B及C)的多状态存储器单元,则可在步骤736的迭代期间执行图11的操作三次或在读取过程期间执行三次。
一般来说,在读取及验证操作期间,选定字线连接到一电压,所述电压的电平针对每一读取及验证操作来指定以便确定所关注的存储器单元的阈值电压是否已达到所述电平。在施加字线电压之后,测量存储器单元的传导电流以确定存储器单元是否响应于施加到字线的电压而接通。如果传导电流经测量为大于特定值,则假设存储器单元接通且施加到字线的电压大于存储器单元的阈值电压。如果传导电流未经测量为大于所述特定值,则假设存储器单元未接通且施加到字线的电压不大于存储器单元的阈值电压。
存在许多方式来在读取或验证操作期间测量存储器单元的传导电流。在一个实例中,以存储器单元使感测放大器中的专用电容器放电或充电的速率来测量所述存储器单元的传导电流。在另一实例中,选定存储器单元的传导电流允许(或未能允许)包括所述存储器单元的NAND串使位线放电。在一段时期之后测量位线上的电荷以查看其是否已被放电。图11阐述所述两个实例。
图11展示信号SGD、WL_unsel、WLn+1、WLn、SGS、选定BL、BLC及源极,所述信号开始于Vss(近似0伏)。SGD表示漏极侧选择栅极的栅极。SGS为源极侧选择栅极的栅极。WLn为经选择用于读取/验证的字线。WLn+1为未选定字线,其为WLn的漏极侧相邻字线。举例来说,WL3为WL2的漏极侧相邻者。WL_unsel表示除WLn+1以外的未选定字线。选定BL为经选择用于读取/验证的位线。源极为存储器单元的源极线。在上文中相对于图6来论述BLC。请注意,图11描绘SGS、选定BL及BLC的两个版本。这些信号中的一个组SGS(B)、选定BL(B)及BLC(B)描绘对存储器单元阵列的读取/验证操作,其通过确定位线是否已被放电来测量存储器单元的传导电流。这些信号中的另一组SGS(C)、选定BL(C)及BLC(C)描绘对存储器单元阵列的读取/验证操作,其以存储器单元使感测放大器中的专用电容器充电的速率来测量所述存储器单元的传导电流。
首先,将相对于SGS(B)、选定BL(B)及BLC(B)来论述在通过确定位线是否已放电来测量存储器单元的传导电流中所涉及的感测电路及存储器单元阵列的行为。在图11的时间t1处,SGD升高到Vdd(例如,近似3.5伏),未选定字线WL_unsel升高到Vread(例如,近似5.5到5.75伏),未选定漏极侧相邻字线WLn+1升高到VrdX(如下文所论述,其可为近似5.5到5.75伏或另一值),选定字线WLn升高到用于验证操作的验证电平Vcgv(例如,图7的Vva、Vvb或Vvc)或用于读取操作的读取比较电平Vcgr(例如,图7的Vra、Vrb或Vrc),且BLC(B)升高到预充电电压以对选定位线“选定BL(B)”进行预充电(例如,到近似0.7伏)。电压Vread及VrdX充当通过(或过驱动)电压,因为其致使未选定存储器单元接通且充当通过门。在时间t2处,BLC(B)降低到Vss,因此NAND串可控制位线。还在时间t2处,通过使SGS(B)升高到Vdd来接通源极侧选择栅极。这提供用以耗散位线上的电荷的途径。如果经选择用于读取的存储器单元的阈值电压大于Vcgr或Vcgv,则选定存储器单元将不接通,且位线将不放电,如由信号线780所描绘。如果经选择用于读取的存储器单元中的阈值电压低于Vcgr或低于Vcgv,则选定存储器单元将接通(传导),且位线电压将耗散,如由曲线782所描绘。在时间t2之后且在时间t3之前的某一点(感测时期的末端)处(由特定实施方案所确定),感测放大器将确定位线是否已耗散充分量。在t2与t3之间,BLC(B)升高以使得感测放大器测量所估计的BL电压且接着下降,如图10中所描绘。在时间t3处,所描绘的信号将降低到Vss(或用于待机或恢复的另一值)。请注意,在其它实施例中,可改变所述信号中的一些信号的时序(例如,使施加到相邻者的信号移位)。
接下来,将相对于SGS(C)、选定BL(C)及BLC(C)来论述以存储器单元使感测放大器中的专用电容器充电的速率而测量所述存储器单元的传导电流的感测电路及存储器单元阵列的行为。在图11的时间t1处,SGD升高到Vdd(例如,近似3.5伏),未选定字线WL_unsel升高到Vread,未选定漏极侧相邻字线WLn+1升高到VrdX,选定字线WLn升高到用于验证操作的Vcgv(例如,图7的Vva、Vvb或Vvc)或用于读取操作的Vcgr(例如,图7的Vra、Vrb或Vrc),且BLC(C)升高。在此情况下,感测放大器将位线电压保持为恒定,因此感测放大器在使位线“箝位”到所述电压的情况下测量电流流动。因此,BLC(C)在t1处升高且从t1到t3不改变。在时间t1之后且在时间t3之前的某一点(感测时期的末端)处(由特定实施方案所确定),感测放大器将确定感测放大器中的电容器是否已充电充分量。在时间t3处,所描绘的信号将降低到Vss(或用于待机或恢复的另一值)。请注意,在其它实施例中,可改变所述信号中的一些信号的时序。
图12描绘NAND串及在图11所描绘的典型读取或验证操作期间施加到NAND串的一组电压。图12的NAND串包括八个存储器单元864、866、868、870、872、874、876及878。那八个存储器单元中的每一者包括浮动栅极(FG)及控制栅极(CG)。在浮动栅极中的每一者之间为源极/漏极区890。在一些实施方案中,存在P型衬底(例如,硅)、处于衬底内的N阱及处于N阱内的P阱(其均未描绘以使得图式较为清楚)。请注意,P阱可含有通常为P型植入的所谓沟道植入,其确定或有助于确定存储器单元的阈值电压及其它特性。源极/漏极区890为形成于P阱中的N+扩散区。在NAND串的一端处为漏极侧选择栅极884。漏极选择栅极884经由位线触点894而将NAND串连接到对应位线。在NAND串的另一端处为源极选择栅极882。源极选择栅极882将NAND串连接到共同源极线892。选定存储器单元870在其控制栅极处接收Vcgr或Vcgv(经由选定字线WLn)。未选定存储器单元864、866、868、872、874、876及878均被描绘为在其控制栅极处经由未选定字线接收Vread。请注意,图12假设VrdX=Vread。在其它实施例中,如下文所描绘,VrdX≠Vread。
图13为描述响应于接收对读取数据的请求而执行的过程的一个实施例的流程图。在步骤950中,由控制器244发布读取命令且将其输入到状态机222。在步骤952中,向解码器电路提供指示页地址的地址数据。基于页地址,将一个字线指示/寻址为选定字线WLn。后续读取过程将从连接到WLn的存储器单元读取数据。在步骤954中,对每一NAND串测量电阻信息。在一个实施例中,对每一NAND串确定模拟电阻值。在另一实施例中,测试每一NAND串以确定其电阻是高于还是低于某一电平。在另一实施例中,测试每一NAND串以确定其电阻是高于还是低于一组电平,使得可将NAND串分类到许多类别电阻值中的一者。还可执行对电阻信息的其它测试。
用于测量电阻信息的过程(图13的步骤954)的一个实例为执行图11的过程的修改版本,其具有包括以下各项的修改:向选定存储器单元的控制栅极施加Vread(例如,通过向WLn施加Vread);向位于NAND串上的处于选定存储器单元与源极侧选择栅极之间的未选定存储器单元施加Vread;以及向位于NAND串上的处于选定存储器单元与漏极侧选择栅极之间的未选定存储器单元施加VreadL(低于Vread的过驱动电压)。图14中以图形方式描绘此用于对NAND串测量电阻信息的过程,图14展示图12的具有存储器单元864、866、868、870、872、874、876及878的NAND串。
应注意,在一个实施例中,用于评估上部NAND串电阻的位线电压应为比在正常读取操作期间所使用的值低的值。这对将正被同时读取的所有单元所消耗的总电流保持为低于必需极限是有用的,因为所有位线均将在电阻读取操作中接通。在电阻感测期间降低位线电压的另一原因是能够将待分类为处于高电阻状态的那些NAND串与待分类为处于低电阻状态的那些NAND串之间的截断准则置于感测的标称跳脱点处。换句话说,通过降低位线电压,高电阻NAND串将具有低于100nA的电流且低电阻NAND串将具有高于100nA的电流,其中阈值跳脱点被设定于100nA,其中100na也是用于在规则读取操作期间在接通存储器单元与断开存储器单元之间进行区分的跳脱点电流。
在另一实施例中,代替降低位线电压,可出于电阻感测目的而配合较短的整合时间来使用相同位线电压。整合时间为用于在读取或验证过程期间感测位线的电压(或电流)增大或减小的时间周期。
在图11的过程的时间t2处,存储器单元864、866、868及870在其控制栅极处接收Vread,而存储器单元872、874、876及878在其控制栅极处接收VreadL。如果节点SEN(参见图6)上的电压在预定感测时期期间放电到预定电平(感测放大器跳脱点),则感测放大器600报告NAND串处于低电阻状态。如果节点SEN上的电压未在预定感测时期期间放电到感测放大器跳脱点,则感测放大器600报告NAND串处于高电阻状态。其它实施例可使用不同布置来进行测量。
在一个实施例中,VreadL近似为4.5伏。然而,应针对每一设计确定VreadL的确切值。VreadL应为这样的电压:足够高以使得具有最高阈值电压的存储器单元接通,但足够低以能够集中基于归因于选定存储器单元与漏极侧选择栅极之间的存储器单元的电阻差异而进行的对感测放大器是否感测到跳脱点的测量。还必须将VreadL校准到感测放大器跳脱点,使得可区分高电阻与低电阻NAND串。步骤954的此实例性实施例在逐个NAND串的基础上基于上部NAND串(位于NAND串上的处于选定存储器单元与漏极侧选择栅极之间的存储器单元)是共同处于高电阻状态还是低电阻状态而确定NAND串是处于高电阻状态还是低电阻状态。
虽然以上实例性实施方案将每一NAND串分类为高或低,但额外锁存器及图11的过程的若干迭代将允许两个以上分类。
在一个实施例中,步骤954包括将每一NAND串分类为两个或两个以上类别。举例来说,可将NAND串分类为高电阻NAND串或低电阻NAND串。在其它实施例中,将使用两个以上类别。将分类的结果存储于用于每一NAND串的锁存器中。在一些实施例中,一起执行对电阻的测量及分类。
在步骤956中,基于每一NAND串的对应所测量的电阻信息而个别地对每一NAND串设定在读取过程期间使用的一个或一个以上参数。举例来说,可在将NAND串分类为处于高电阻状态的情况下使用一个参数值且可在将NAND串分类为处于低电阻状态的情况下使用另一参数值。可在步骤956中设定许多不同参数。一些实例包括位线电压、字线(控制栅极)电压(请注意,在一些实施例中,WL电压针对高电阻及低电阻NAND串顺序地变化而非同时变化,因为WL电压不允许逐位线控制)及感测放大器的参数(例如,感测时间及感测参考值)。
在步骤958中,使用在步骤956中设定的参数来执行一个或一个以上读取操作(图11)。所执行的读取操作的数目取决于读取请求、正被读取的数据量及存储于存储器单元中的位的数目。举例来说,为了对每存储器单元存储两个数据位的存储器单元读取全序列数据,通常需要三个读取操作(例如,在Vra、Vrb及Vrc下)来确定由所述存储器单元存储的数据。在步骤960中,报告所读取的数据。报告数据的各种实施例包括将数据从锁存器传输到状态机、将数据传输到控制器、将数据传输到主机、将数据存储于输出文件中、将数据提供给请求实体等等。
返回参看图5,多路复用器500被描绘为与处理器492、感测电路470及控制电路220通信。多路复用器500可从控制电路220接收参数的多个输入值且基于存储于适当锁存器中指示NAND串是处于高电阻还是低电阻条件中的数据来在所述值之间进行选择。举例来说,多路复用器500可基于NAND串的测量电阻而在BLC(参见图6)的两个电压之间进行选择来改变位线电压。如果NAND串处于高电阻条件中,则对BLC选择第一值,且如果NAND串处于低电阻条件中,则对BLC选择第二值。
或者,多路复用器500可基于NAND串是处于高电阻条件还是低电阻条件中而在STB(参见图6)的两个信号之间进行选择来改变感测时间。处理器492读取存储电阻测量的结果的锁存器且适当地指令多路复用器500选择恰当的输入信号。将所选输入信号传送到感测电路470。举例来说,如果NAND串处于高电阻条件中,则对STB选择第一信号,从而导致第一感测时间周期,且如果NAND串处于低电阻条件中,则对STB选择第二信号,从而导致第二感测时间周期。在一个实施例中,第一感测时间周期大于第二感测时间周期。
在另一实施例中,控制电路220直接与感测电路470通信,可存取存储电阻测量的结果的锁存器,且将基于锁存器中的数据根据对两个或两个以上信号的选择而将适当信号发送到感测电路470。
在另一实施例中,可使用不同感测放大器,其接收用作参考(例如,跳脱点-参见上文论述)的电流或电压信号以作为图11的过程的部分来测试NAND串电流。在此情况下,在处理器492的指引下的多路复用器可基于指示电阻测量的结果的锁存器数据而在两个参考信号之间进行选择。可在读取根据上文描述的编程方案以及此项技术中已知的其它编程方案而编程的数据时使用位线电压、参考值、感测时间及其它感测放大器参数的改变。
可基于NAND串电阻而变化的另一参数为控制栅极(或字线)电压。图15为描述用于基于测量NAND串电阻而变化控制栅极(或字线)电压的过程的一个实施例的流程图。可执行图15的过程作为图13的步骤956及958的部分。
在图15的步骤1002中,使用第一组字线(控制栅极)电压作为读取点而对选定字线执行读取过程。步骤1002的一个实施例包括执行图16的过程。
图16为描述用于对选定字线读取数据的读取过程的流程图。此读取过程对连接到所述选定字线的存储器单元确定(可能数据状态中的)数据状态。在图16的步骤1100中,向选定字线WLn施加第一比较电压(例如,Vra)。在步骤1102中,感测与页相关联的位线来确定所寻址的存储器单元是否接通(基于将第一比较电压施加到其控制栅极)。传导的位线指示存储器单元接通;因此,那些存储器单元的阈值电压低于第一比较电压。举例来说,如果第一比较电压为Vra且存储器单元传导,则存储器单元处于状态E。在步骤1104中,将位线的感测的结果存储于用于那些位线的适当锁存器中。步骤1100到1104执行图11中所描述的过程,其中将Vcgr设定于第一比较电压。
在步骤1106中,向选定字线WLn施加第二比较电压(例如,Vrb)。在步骤1108中,感测与页相关联的位线来确定所寻址的存储器单元是否接通(基于将第一比较电压施加到其控制栅极)。传导的位线指示存储器单元接通;因此,那些存储器单元的阈值电压低于第二比较电压。在步骤1110中,将对位线的感测的结果存储于用于那些位线的适当锁存器中。步骤1106到1110执行图11中所描述的过程,其中将Vcgr设定于第二比较电压。
在步骤1112中,向选定字线WLn施加第三比较电压(例如,Vrc)。在步骤1114中,感测与页相关联的位线来确定所寻址的存储器单元是否接通(基于将第一比较电压施加到其控制栅极)。传导的位线指示存储器单元接通;因此,那些存储器单元的阈值电压低于第二比较电压。在步骤1116中,将对位线的感测的结果存储于用于那些位线的适当锁存器中。步骤1112到1116执行图11中所描述的过程,其中将Vcgr设定于第三比较电压。
在步骤1118中,确定每一位线的数据值。举例来说,如果存储器单元在Vra下传导,则存储器单元处于状态E。如果存储器单元在Vrb及Vrc下而非在Vra下传导,则存储器单元处于状态A。如果存储器单元在Vrc下而非在Vra及Vrb下传导,则存储器单元处于状态B。如果存储器单元在Vra、Vrb或Vrc下不传导,则存储器单元处于状态C。在一个实施例中,在过程末端处由处理器492确定数据值。在另一实施例中,处理器492在运行中确定数据值,使得在执行每一感测操作时,对数据分析进行更新。在步骤118中,处理器492将把所确定的数据值存储于用于每一位线的适当锁存器中。在其它实施例中,对各个电平(Vra、Vrb及Vrc)的感测可以不同次序来发生。
请注意,可独立于图15的过程来使用图16的过程以从连接到字线的一组存储器单元读取数据。也就是说,如果控制栅极电压将不基于NAND串电阻而变化,则读取过程(在一个实施例中)可包含执行图16的过程。如果感测放大器参数待变化(例如,感测时间、跳脱点、位线电压),则可使用图16的过程来基于所选感测放大器参数而读取适当数据。
返回参看图15,在执行步骤1002之后,读取存储来自测量电阻信息(参见图13的步骤954)的结果的锁存器494来查看NAND串已如何被分类。如果特定锁存器存储指示其对应NAND串处于低电阻状态的数据,则由于图15的过程而将来自步骤1002的数据存储于锁存器494中(步骤1006)作为对应NAND串的最终读取数据。
在一个实施例中,每一NAND串(或位线)具有所述组锁存器494中的三个1位数据锁存器。这三个锁存器将被称为L1、L2及L3。在一个实例性实施方案中,将步骤954的结果存储于L1中,使得对于处于低电阻条件中的上部NAND串来说L1=0,且对于处于高电阻条件中的上部NAND串来说L1=1。在步骤1006中,对于具有L1=0的NAND串,将在步骤1002中读取的一个或两个数据位存储于L1及L2中,其中将L3设定为1。设定L3=1指示L1及L2存储有效数据。如果L3=0,则L1及L2不存储有效数据。在步骤1006中,对于具有L1=1的NAND串,维持L3=0。
在步骤1008中,使用第二组字线(控制栅极)电压作为读取点而对选定字线执行读取过程。步骤1002的一个实施例包括执行图16的过程;然而,代替使用Vra、Vrb及Vrc,使用不同组的三个比较电压。举例来说,可使用Vra+偏移、Vrb+偏移及Vrc+偏移;可使用Vra-偏移、Vrb-偏移及Vrc-偏移;或者可使用另一组三个比较电压。
在步骤1010中,读取存储来自测量电阻信息(参见图13的步骤954)的结果的锁存器494来查看NAND串已如何被分类。如果特定锁存器(或一组锁存器)存储指示其对应NAND串处于高电阻状态的数据,则由于图15的过程而将来自步骤1008的数据存储于锁存器494中(步骤1012)作为对应NAND串的最终读取数据。
在步骤1010及1012的一个实例性实施方案中,具有L3=1的NAND串不在步骤1012中存储最终数据,且其先前在步骤1006中存储的数据不受干扰。具有L3=0及L1=1的NAND串将把来自步骤1008的数据存储在L1及L2中,且还将接着设定L3=1。
请注意,图15的过程假设使用两个条件:低电阻及高电阻。然而,可使用两个以上条件。如果使用两个以上条件,则应对与额外条件相关联的额外组读取点重复步骤1008到1012。
非易失性存储器单元的浮动栅极(或其它电荷存储元件)的表观阈值电压的移位可能由于基于存储于相邻浮动栅极(或其它相邻电荷存储元件)中的电荷的电场的耦合而发生。所述问题最显著地发生于已在不同时间处被编程的若干组邻近存储器单元之间。为了解决此耦合,对目标存储器单元的读取过程将向相邻存储器单元提供补偿以便减小相邻存储器单元对特定存储器单元造成的耦合效应。一个实施例还包括在验证过程期间设置稍后向相邻存储器单元施加补偿所需要的条件。在所述实施例中,施加到WLn+1的过驱动电压(在图11中被描绘为VrdX)从典型值(例如,5.5V)降低到(例如)3V。因此,在验证过程期间,VrdX为3V(或依据实施方案而定的另一合适值)。在随后读取时提供的补偿将由在对WLn执行的读取操作期间向WLn+1施加与在验证阶段期间所施加的所述电压相比较高的电压构成。
为了确定在读取目标存储器单元时应向相邻存储器单元提供多少补偿,本文描述的系统从预先计划的一组潜在条件来确定存储器单元的所感知条件。举例来说,观察图7,系统将确定相邻存储器单元是处于状态E、A、B还是C。补偿的使用及量值将基于相邻存储器单元处于哪一状态。
图17包括描述用于在补偿浮动栅极到浮动栅极耦合效应(或另一错误原因)的同时读取数据的过程的一个实施例的流程图。补偿包括观察相邻字线及确定相邻字线的编程已如何产生浮动栅极到浮动栅极耦合效应。举例来说,在读取字线WLn(例如,WL2)上的数据时,所述过程还将读取字线WLn+1(例如,WL3)的数据。如果字线WLn+1上的数据已引起WLn上的数据的表观改变,则读取过程将补偿所述改变。
图17中描绘的过程应用于上文相对于图7而描述的全序列编程,其中两个数据位存储于每一存储器单元中且将被一起读取及报告。如果相邻字线上的存储器单元处于状态E,则将不存在浮动栅极到浮动栅极耦合效应。如果相邻字线上的存储器单元处于状态A,则将存在小耦合效应。如果相邻字线上的存储器单元处于状态B,则将存在中等的浮动栅极到浮动栅极耦合效应。如果相邻字线上的存储器单元处于状态C,则将存在较大的浮动栅极到浮动栅极耦合效应。由于相邻字线引起的确切耦合效应随阵列实施方案而变化且可通过对装置进行特征化来确定。
图17的步骤1200包括针对相邻字线WLn+1执行读取操作(图11,其中Vrdx=Vread)。在步骤1202中,将步骤1200的结果存储于适当锁存器中。在一些实施例中,针对WLn+1执行的读取操作导致确定存储于WLn+1上的实际数据,其指示对应存储器单元所处于的状态(例如,E、A、B、C)。在其它实施例中,针对WLn+1执行的读取操作导致确定WLn+1上的电荷电平,其可能会或可能不会准确地反映存储于WLn+1上的数据。
在步骤1204中,处理器492检查存储指示来自测量电阻信息的结果(例如,L1=0对应于低电阻条件且L1=1对应于高电阻条件)的数据的锁存器。如果特定NAND串处于高电阻条件中(L1=1),则在步骤1206中,将来自WLn+1的数据的指示移位一个数据状态。因此,如果相邻存储器单元处于状态A且NAND串处于高电阻条件中,则使相邻者的状态的指示移位以指示状态B。在一个实施例中,这包括改变存储相邻者的状态的指示的一个或一个以上锁存器中的数据。可能需要额外锁存器用于此过程。
在步骤1208中,针对所关注的字线WLn执行读取过程。这包括执行图16的过程,其中VrdX=Vread1。在一个实施例中,Vread1=Vread。因此,所有未选定字线(参见图11的WL_unsel及WLn+1)均正接收Vread。这提供最大补偿,因为所述补偿由在读取操作期间在WLn+1上所使用的Vread值与早先在编程/验证的验证阶段期间所使用的Vread值之间的差异所确定。将步骤1208的结果存储(在步骤1210中)于适当锁存器中,所述适当锁存器用于带有具有WLn+1上处于状态C(如在步骤1200中所确定,且可能在步骤1206中经修改)的相邻单元的存储器单元的位线。对于漏极侧相邻者当前未被检测为处于状态C的其它位线,将不考虑在WLn+1上使用Vread1的此WLn读取的数据。
在步骤1212中,针对WLn执行读取过程。在所述读取过程期间(图16),漏极侧相邻字线WLn+1将接收Vread2。也就是说,VrdX=Vread2,其中Vread2为4.9v(或另一合适值)。这传递适于漏极侧邻近者现处于状态B的存储器单元的较小补偿量。在步骤1214中,针对带有具有处于状态B的相邻存储器单元(例如,WLn+1)的存储器单元的位线而存储步骤1212的结果。将不考虑其它位线的数据。
在步骤1216中,针对WLn执行读取过程(图16)。在所述读取过程期间,漏极侧相邻字线WLn+1将接收Vread3。也就是说,VreadX=Vread3,其中Vread3=4.3伏(或另一合适值)。这传递适于漏极侧邻近者现处于状态A的存储器单元的较小补偿量。在步骤1218中,针对带有具有处于状态A的相邻存储器单元(例如,WLn+1)的存储器单元的位线而存储步骤1216的结果。将不考虑其它位线的数据。
在步骤1220中,针对WLn执行读取过程(图16)。在所述读取过程期间,漏极侧相邻字线WLn+1将接收Vread4。也就是说,VreadX=Vread4,其中Vread4=3.0伏(或另一合适值)。这不传递补偿量,此适于漏极侧相邻者现处于状态E的单元,因为其处于编程/验证的时间。在步骤1222中,将针对带有具有处于状态E的相邻存储器单元(例如,WLn+1)的存储器单元的位线而存储步骤1220的结果。将不考虑其它位线的数据。在不同实施方案中,可基于装置特征化、实验及/或模拟而确定Vread1、Vread2、Vread3及Vread4的不同值。关于使用对相邻存储器单元的补偿的更多信息可参见2006年3月17日申请的发明人为尼玛·穆克勒斯(Nima Mokhlesi)的第11/384,057号美国专利申请案“具有耦合补偿的对非易失性存储装置的读取操作(Read Operation for Non-VolatileStorage with Compensation for Coupling)”,其以引用的方式并入本文中。
图15到图17的过程可适于读取已根据上文描述的编程方案以及此项技术中已知的其它编程方案而编程的一个数据页。举例来说,图16的过程仅需在读取根据图8A到图8C中所说明的方法而编程的下部数据页时向选定字线施加Vrb。另外,相对于图8A到图8C中所说明的方法,如果相邻存储器单元的上部页数据未被编程,则一个实施例在从目标存储器单元读取时不向所述相邻存储器单元提供补偿。关于读取根据图8A到图8C中所说明的方法而编程的数据的更多信息可参见:2006年3月17日申请的第11/384,057号美国专利申请案“具有耦合补偿的对非易失性存储装置的读取操作(ReadOperation for Non-Volatile Storage with Compensation for Coupling)”;第2006/0221714号美国专利公开案;以及第2006/0140011号美国专利公开案。
已出于说明及描述的目的而呈现了对本发明的前述详细描述。其不希望为详尽的或将本发明限于所揭示的精确形式。鉴于以上教示,许多修改及变化为可能的。选择所描述的实施例以便最佳地阐释本发明的原理及其实践应用,以进而使得所属领域的技术人员能够在各种实施例中且以适于所预期的特别用途的各种修改而最佳地利用本发明。希望本发明的范围由附于本文的权利要求书来界定。