具有基于邻近存储元件的状态信息的温度补偿的非易失性存储装置的制作方法

文档序号:6738396阅读:167来源:国知局
专利名称:具有基于邻近存储元件的状态信息的温度补偿的非易失性存储装置的制作方法
技术领域
本发明涉及非易失性存储装置。
背景技术
半导体存储器装置已变得更加普遍地应用于各种电子装置中。例如,非易失性半导体存储器用在蜂窝电话、数字照相机、个人数字助理、移动计算装置、不可移动的计算装置以及其它装置中。电可擦除可编程只读存储器(EEPROM)和闪存是最普遍的非易失性半导体存储器。EEPROM和闪存利用位于半导体衬底中的沟道区域上方并且与该沟道区域绝缘的浮置栅。浮置栅位于源区域和漏区域之间。控制栅设置在浮置栅之上并且与浮置栅绝缘。 晶体管的阈值电压由浮置栅上保留的电荷量来控制。即,在晶体管接通之前必须施加到控制栅以允许在其源极和漏极之间导通的电压的最小量由浮置栅上的电荷水平控制。当对EEPROM或闪存器件编程时,通常将编程电压施加到控制栅,并且使位线接地。来自沟道的电子被注入到浮置栅中。当电子在浮置栅中累积时,浮置栅变为带负电,并且存储器单元的阈值电压上升以使得该存储器单元处于已编程状态。关于编程的更多信息可以在题为 “Source SideSelf Boosting Technique For Non-Volatile Memory” 的美国专利 6,859,397、以及题为 “Detecting Over Programmed Memory” 的美国专利 6,917,542中找到,这两个专利的全部内容通过弓I用合并于此。一些EEPROM和闪存装置具有用于存储两个范围的电荷的浮置栅,并且因此,存储器单元可以在两个状态(即对应于数据“I”和数据“O”的已擦除状态和已编程状态)之间被编程/擦除。这样的装置称为二态装置(binary device)。多状态闪存单元通过识别多个独特的允许阈值电压范围来实现。每个独特的阈值电压范围对应于数据位集合的预定值。被编程到存储器单元中的数据与该单元的阈值电压范围之间的特定关系取决于该存储器单元采用的数据编码方案。例如,美国专利第6,222,762号和美国专利申请公开第2004/0255090号描述了用于多状态闪存单元的各种数据编码方案,这两个申请的全部内容通过引用合并于此。已注意到集成电路(包括在集成电路上实现的非易失性存储系统)的操作和行为会受到温度的影响。现有的存储器系统通过基于温度调整读取/验证比较电平、位线电流、感测安培、选择栅上的控制栅电压以及体偏置条件来对温度进行补偿。一些系统使用称为TCO的温度补偿系数。在一个实施例中,TCO表示对于每摄氏度的温度改变存储器单元的阈值电压改变多少。每TCO的单位是毫伏/摄氏度。通常的示例TCO是-3毫伏/摄氏度。一些现有的装置还可使用先进的控制器技术,以通过动态地测量阈值电压分布以及基于测量的阈值电压分布更新读取比较电平来优化读取电平。装置尺寸变得越小,则对于补偿温度的需求越强烈。


图IA是描绘阈值电压分布的曲线图。图I是NAND串的顶视图。图2是NAND串的等效电路图。图3是非易失性存储器系统的框图。图4是描绘存储器阵列的一个实施例的框图。图5是描绘感测块的一个实施例的框图。图6描绘了阈值电压分布的示例集合并且描绘了示例编程处理。
图7描绘了阈值电压分布的示例集合并且描绘了示例编程处理。图8A至8C描绘了阈值电压分布的示例和示例编程处理。图9是示出阈值电压分布与存储器单元中存储的数据之间的关系的一个示例的表。图IOA至IOD描绘了阈值电压分布的示例和示例编程处理。图11是描述用于操作非易失性存储装置的处理的一个实施例的流程图。图12是描述用于对非易失性存储装置编程的处理的一个实施例的流程图。图13是描述用于对非易失性存储装置执行编程操作的处理的一个实施例的流程图。图14是描述用于从非易失性存储装置读取数据的处理的一个实施例的流程图。图15是描述用于从非易失性存储装置读取数据的处理的一个实施例的流程图。图16是描述用于对非易失性存储装置中存储的数据进行编码和解码的处理的一个实施例的流程图。图17描绘了示例LRR表。图18是描述用于从非易失性存储装置读取数据的处理的一个实施例的流程图。图19描绘了重叠阈值电压范围。图20描绘了示例LRR表。图21是描述作为读取处理的一部分的、用于提供补偿的处理的一个实施例的流程图。图22是描述用于从非易失性存储装置读取数据的处理的一个实施例的流程图。图23是描述用于从非易失性存储装置读取数据的处理的一个实施例的流程图。
具体实施例方式温度对给定存储器单元的行为和操作的影响基于与给定存储器单元相邻的或其附近的存储器单元的状况而变化。因此,提出了提供基于温度以及一个或多个邻近存储器单元的状况(状态)的温度补偿。图IA提供了温度以及编程时与读取时之间的温度差可以如何引起阈值电压(Vt)分布的偏移和加宽的示例。Vt分布A是在以相对高温度进行编程之后直接获得的Vt分布。在该示例中,Vt分布A在10位的上下尾部电平处具有大约O. 6V的宽度。然而,当在较低温度处测量同一 Vt分布时,则Vt分布上移并且加宽以形成Vt分布D。由于非易失性存储元件具有负的温度系数(Tco),因此Vt分布上移。然而,由于在非易失性存储元件之间Tco存在变化,因此Vt分布也加宽。例如,分布C中的非易失性存储元件(分布D中的非易失性存储元件的总集合的子集)具有比分布B中的非易失性存储元件大的Tco。子集B和C两者共同形成非易失性存储元件的集合D,该非易失性存储元件的集合D包括与分布A相同的非易失性存储元件。在该情况下,分布B和C中的非易失性存储元件的Tco的差异显著并且因而在该示例中导致大约O. 2V的显著Vt分布加宽。Tco的这种大差异可以发生在高度可调(highly scaled)的非易失性存储元件中,其中在邻近的非易失性存储元件之间存在密切的交互。已发现非易失性存储元件的Tco取决于邻近的非易失性存储元件中存储的数据。特别地,当邻近非易失性存储元件处于比目标非易失性存储元件显著低的编程(或擦除)状态时,发生较大的Tco。当邻近非易失性存储元件被编程到类似的或较高的编程状态时,非易失性存储元件的Tco较小。通过考虑邻近非易失性存储元件的编程状态的知识,更准确地知道目标非易失性存储元件的Tco,并且 因此,可以基于编程与读取之间的温度差以及基于邻近非易失性存储元件的数据状态来应用利用调节后的感测电平或其它补偿技术的更准确的读取操作。数据被编程到目标存储器单元集合中并且从该目标存储器集合读取数据。当读取数据时,提供温度补偿。温度补偿基于温度信息和一个或多个邻近存储器单元的状态。在一个实施例中,当从目标存储器单元的集合读取数据时,系统感测当前温度并确定当前温度与对数据编程时的温度之间的温度差。如果温度差大于阈值,则读取数据的处理包括提供基于温度信息和邻近存储元件状态信息的温度补偿。在一个替选中,对提供温度补偿的判定可以由除温度差之外的条件来触发。可以用于实现此处所述的技术的非易失性存储系统的一个示例是使用NAND结构的闪存系统,该NAND结构包括夹在两个选择栅之间、串联布置多个晶体管。串联晶体管和选择栅被称为NAND串。图I是示出一个NAND串的顶视图。图2是其等效电路。图I和2中描绘的NAND串包括夹在第一(漏极侧)选择栅120与第二 (源极侧)选择栅122之间的、串联的四个晶体管100、102、104和106。选择栅120经由位线接触126将NAND串连接到位线。选择栅122将NAND串连接到源线128。选择栅120通过向选择线S⑶施加适当的电压来控制。晶体管100、102、104和106中的每个均具有控制栅和浮置栅。例如,晶体管100具有控制栅100CG和浮置栅100FG。晶体管104包括控制栅104CG和浮置栅104FG。晶体管106包括控制栅106CG和浮置栅106FG。控制栅100CG连接到字线WL3,控制栅102CG连接到字线WL2,控制栅104CG连接到字线WLl,并且控制栅106CG连接到字线WL0。注意,尽管图I和2示出了 NAND串中的四个存储器单元,但是仅提供这四个存储器单元的使用作为示例。NAND串可以具有少于四个存储器单元或者多于四个存储器单元。例如,一些NAND串将包括八个存储器单元、16个存储器单元、32个存储器单元、64个存储器单元、128个存储器单元等等。此处的讨论不限于NAND串中的任意特定数量的存储器单元。一个实施例使用具有66个存储器单元的NAND串,其中,64个存储器单元用于存储数据,并且两个存储器单元被称为伪存储器单元,这是因为它们不存储数据。使用NAND结构的闪存系统的典型架构将包括若干个NAND串。每个NAND串通过其由选择线SGS控制的源选择栅连接到公共源线,并且通过其由选择线SGD控制的漏选择栅而连接到其相关联的位线。每条位线和经由位线接触连接到该位线的相应NAND串包括存储器单元阵列的列。位线被多个NAND串共享。通常,位线在垂直于字线的方向上在NAND串顶部延伸并且连接到读出放大器。在以下美国专利/专利申请中提供了 NAND型闪存及其操作的相关示例,它们的全部内容通过引用合并于此美国专利第5,570,315号;美国专利第5,774,397号;美国专利第6,046,935号;美国专利第6,456,528号以及美国专利公开第US2003/0002348号。除了 NAND闪存之外,也可以使用其它类型的非易失性存储装置。例如,非易失性存储装置由使用用于存储电荷的电介质层的存储器单元制成。取代之前描述的导电浮置栅元件,使用电介质层。Eitan等人的“NR0M:A Novel Localized Trapping, 2_BitNonvolatile Memory Cell,,,IEEEElectron Device Letters, vol. 21,no. 11,2000 年 11月,543-545页已描述了利用这种电介质存储元件的存储器装置。0N0电介质层延伸跨越源扩散和漏扩散之间的沟道。关于一个数据位的电荷位于与漏相邻的电介质层中,并且关于其它数据位的电荷位于与源相邻的电介质层中。美国专利第5,768,192号和第6,011,725 号公开了具有夹在两个二氧化硅层之间的俘获电介质的非易失性存储器单元。通过分开地读取电介质内的空间上分开的电荷存储区域的二进制状态来实现多状态数据存储装置。还可以使用基于M0N0S或TANOS类型的结构或纳米晶体的非易失性存储装置。也可以使用其它类型的非易失性存储装置。图3示出了具有用于并行地对存储器单元(例如,NAND多状态闪存)的页(或其它单位)进行读取和编程的读/写电路的存储器装置210。存储器装置210可包括一个或多个存储器裸片或芯片212。存储器裸片(或集成电路)212包括存储器单元阵列(二维或三维)200、控制电路220以及读/写电路230A和230B。在一个实施例中,各种外围电路对存储器阵列200的存取在该阵列的相对侧以对称形式来实现,以使得每侧的存取线和电路的密度可以减半。读/写电路230A和230B包括允许并行地对存储器单元的页进行读取或编程的多个感测块300。存储器阵列200可经由行解码器240A和240B通过字线以及经由列解码器242A和242B通过位线来寻址。字线和位线是控制线的示例。在典型实施例中,控制器244包括在与一个或多个存储器裸片212相同的存储器装置210(例如,可拆卸存储卡或封装)中。命令和数据经由线232在主机与控制器244之间传送并且经由线234在控制器与一个或多个存储器裸片212之间传送。控制电路220与读/写电路230A和230B配合,以对存储器阵列200执行存储器操作。控制电路220包括状态机222、片上地址解码器224、功率控制模块226以及温度传感器228。状态机222提供存储器操作的芯片级控制。片上地址解码器224在主机或存储器控制器使用的硬件地址与解码器240A、240B、242A和242B使用的硬件地址之间提供地址接口。功率控制模块226控制在存储器操作期间供应到字线和位线的功率和电压。在一个实施例中,功率控制模块226包括可以产生比供电电压大的电压的一个或多个电荷泵。控制电路220为行解码器240A和204B以及列解码器242A和242B提供地址线ADDR。列解码器242A和242B经由标记为数据1/0的信号线将数据提供到控制器244。温度传感器228可以是本领域公知的模拟或数字温度传感器。在一个实施例中,在与存储器芯片212不同的裸片(或集成电路)上实现控制器244。在一些实施例中,控制器244与主机和控制电路220以及解码器连接。在一些实施例中,控制器244与读/写电路连接。在一个实施例中,控制电路220、功率控制电路226、解码器电路224、状态机电路222、解码器电路242A、解码器电路242B、解码器电路240A、解码器电路240B、读/写电路230A、读/写电路230B、温度传感器228和/或控制器244中的一个或任意组合可以被称为一个或多个管理电路。一个或多个管理电路执行此处描述的处理。图4描绘了存储器单元阵列200的示例性结构。在一个实施例中,存储器单元阵列被划分成大量的存储器单元块(例如,块O至1023,或者其它数量的块)。如通常对于闪存系统,块是擦除的单位。即,每个块包括一起被擦除的最小数量的存储器单元。也可以使用其它擦除单位。块包含经由位线(例如,位线BLO至BL69,623)和字线(WLO、WL1、WL2、WL3)存取的NAND串的集合。图4示出了串联连接以形成NAND串的四个存储器单元。尽管示出每个NAND串中包括四个单元,但是可以使用多于或少于四个(例如,在NAND串上可以有16、32、64、128或其它数量的存储器单元)。NAND串的一端经由漏选择栅(连接到选择栅漏线S⑶)连接到相应位线,并且另一端经由源选择栅(连接到选择栅源线SGS)连接到源线。每个块通常被划分成多个页。在一个实施例中,页是编程的单位。也可以使用其·它编程单位。一个或多个数据页通常存储在一行存储器单元中。例如,一个或多个数据页可存储在连接到公共字线的存储器单元中。页可以存储一个或多个扇区。扇区包括用户数据和开销数据(也称为系统数据)。用户数据的扇区通常为512字节,与磁盘驱动器中的扇区的大小相对应。大量的页形成块,在任何情况下均为从8页例如直到32、64、128或更多页。也可以使用不同大小的块、页以及扇区。另外,块可以具有多于或少于69,624条位线。图5是被分割成称为感测模块480的核心部分和公共部分490的单独感测块300的框图。在一个实施例中,将存在针对每条位线的单独感测模块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 (使用功率控制226)控制到所寻址的存储器单元的不同控制栅电压的供应。在步进通过与存储器支持的各种存储器状态对应的各种预定义控制栅电压时,感测模块480可在这些电压之一处跳闸(trip),并且输出将经由总线472从感测模块480提供到处理器492。此时,处理器492通过考虑感测模块的跳闸事件和关于经由输入线493从状态机施加的控制栅电压的信息来确定所得到的存储器状态。然后,处理器492计算对于存储器状态的二进制编码并且将所得到的数据位存储在数据锁存器494中。在核心部分的另一实施例中,位线锁存器482起双重作用,既作为用于锁存感测模块480的输出的锁存器又作为如上所述的位线锁存器。预期一些实现将包括多个处理器492。在一个实施例中,每个处理器492将包括输出线(图5中未绘出),以使得各条输出线线或在一起。在一些实施例中,输出线在连接到线或线之前被反向。该配置使得能够在编程验证处理期间对编程处理何时完成进行快速确定,这是因为接收线或线的状态机可以确定何时所有被编程的位都已达到期望电平。例如,当各个位均到达其期望电平时,关于该位的逻辑零将被发送到线或线(或者数据一被取反)。当所有位都输出数据O (或者数据I取反)时,则状态机知道要终止编程处理。在每个处理器与八个感测模块通信的实施例中,状态机(在一些实施例中)可能需要读取线或线八次,将或逻辑添加到处理器492以累积相关联的位线的结果,以使得状态机仅需要读取线或线一次。数据锁存器堆栈494包含与感测模块对应的数据锁存器的堆栈。在一个实施例中,每个感测模块480存在三个(或者四个或其它数量)数据锁存器。在一个实施例中,锁存 器是每位一个。在编程或验证期间,要编程的数据从数据总线420存储在数据锁存器集合494中。在验证处理期间,处理器492监视相对于期望存储器状态的验证存储器状态。当二者一致时,处理器492设置位线锁存器482以使得位线被拉至指定编程禁止的状态。这禁止了耦合到该位线的存储器单元被进一步编程,即使该存储器单元在其控制栅上经受了编程脉冲也是如此。在其它实施例中,处理器初始加载位线锁存器482,并且感测电路在验证处理期间将其设置为禁止值。在一些实现中(但不是要求的),数据锁存器被实现为移位寄存器,以使得存储在其中的并行数据被转换为用于数据总线420的串行数据,并且反之亦然。在一个优选实施例中,与存储器单元的读/写块对应的所有数据锁存器可以链接在一起以形成块移位寄存器,以使得数据块可以通过串行传输而输入或输出。特别地,调节读/写模块组以使得其数据锁存器集合中的每个均将数据顺序地移入或移出数据总线,正如对于整个读/写块它们是移位寄存器的一部分一样。关于感测操作和读出放大器的附加信息可以以下在文献中找到(1)美国专利申请公开第 2004/0057287 号,“Non-Volatile Memory AndMethod With Reduced SourceLine Bias Errors”,公开于2004年3月25日;(2)美国专利申请公开第2004/0109357号,“Non-Volatile Memory AndMethod with Improved Sensing,,,公开于 2004 年 6 月10日;(3)美国专利申请公开第20050169082号;(4)美国专利公开2006/0221692,题为“Compensating for Coupling During Read Operations of Non-VolatileMemory,,,发明人Jian Chen,提交于2005年4月5日;以及(5)美国专利申请公开第2006/0158947号,题为 “Reference Sense Amplifier ForNon-Volatile Memory,,,发明人 Siu Lung Chan 和Raul-Adrian Cernea,提交于2005年12月28日。以上列出的所有五个专利文献通过引用将其全文合并于此。在成功编程处理(带有验证)结束时,适当地,存储器单元的阈值电压应该在编程的存储器单元的一个或多个阈值电压分布内或者在用于擦除的存储器单元的阈值电压分布内。图6示出了当每个存储器单元存储两个数据位时,存储器单元阵列的示例阈值电压分布(对应于数据状态)。然而,其它实施例可使用每个存储器单元多于或少于两个数据位(例如,诸如每个存储器单元三个或四个或者更多个数据位)。图6示出了擦除的存储器单元的第一阈值电压分布E。还绘出了编程的存储器单兀的三个阈值电压分布A、B和C。在一个实施例中,E分布中的阈值电压为负且A、B和C分布中的阈值电压为正。图6的每个独特的阈值电压分布对应于数据位集合的预定值。被编程到存储器单元中的数据与该单元的阈值电压电平之间的特定关系取决于用于单元的数据编码方案。例如,美国专利第6,222,762号和美国专利申请公开第2004/0255090号描述了用于多状态闪存单元的各种数据编码方案,这两个专利的全部内容通过引用合并于此。在一个实施例中,使用格雷码分配将数据值分配给阈值电压范围,以使得如果浮置栅的阈值电压错误地移位到其邻近的物理状态,则仅一位将受影响。一个示例将“11”分配给阈值电压范围E (状态E),将“10”分配给阈值电压范围A (状态A),将“00”分配给阈值电压范围B (状态B),并且将“01”分配给阈值电压范围C (状态C)。然而,在其它实施例中,不使用格雷码。尽管图6示出了四个状态,但是本发明也可以与其它多状态结构一起使用,其·它多状态结构包括具有多于状态或少于四个状态的结构。图6还示出了三个用于从存储器单元读取数据的读取参考电压Vra、Vrb和Vrc(也称为读取比较电平/值)。通过测试给定的存储器单元的阈值电压是高于还是低于Vra、Vrb和Vrc,系统可以确定存储器单元处于何种状态。例如,如果存储器单元具有小于Vra的阈值电压,则认为其处于状态E。如果存储器单元具有小于Vrb且大于Vra的阈值电压,则认为其处于状态A。如果存储器单元具有小于Vrc且大于Vrb的阈值电压,则认为其处于状态B。如果存储器单元具有大于Vrc的阈值电压,则认为其处于状态C。图6还示出了三个验证参考电压Vva、Vvb和Vvc (也称为验证比较值/电平)。当将存储器单元编程到状态A时,系统将测试这些存储器单元是否具有大于或等于Vva的阈值电压。当将存储器单元编程到状态B时,系统将测试存储器单元是否具有大于或等于Vvb的阈值电压。当将存储器单元编程到状态C时,系统将确定存储器单元是否具有其大于或等于Vvc的阈值电压。在一个实施例中,公知为完全序列编程,可以将存储器单元从已擦除状态E直接到已编程状态A、B或C中任一个。例如,可首先擦除要编程的存储器单元群体,以使得该群体中的所有存储器单元处于已擦除状态E。然后,使用编程处理将存储器单元直接编程到状态A、B或C。在一些存储器单元正被从状态E编程到状态A的同时,其它存储器单元正被从状态E编程到状态B和/或被从状态E编程到状态C。图7示出了对存储关于两个不同页(下部页和上部页)的数据的多状态存储器单元编程的两阶段技术的一个示例。描绘了四个状态状态E (11)、状态A (10)、状态B (00)和状态C(01)。对于状态E,两个页均存储“I”。对于状态A,下部页存储“O”且上部页存储“I”。对于状态B,两个页均存储“O”。对于状态C,下部页存储“I”且上部页存储“O”。注意,尽管已将特定的位模模式分配给每个状态,但是也可分配不同的位模模式。在第一编程阶段中,根据要编程到下部逻辑页中的位来设置存储器单元的阈值电压电平。如果该位是逻辑“1”,则因为各个存储器单元由于先前已被擦除而处于适当状态,所以阈值电压不变。然而,如果要编程的位是逻辑“0”,则将该单元的阈值电平增加到状态A,如箭头504所示。这结束了第一编程阶段。在第二编程阶段中,根据正被编程到上部逻辑页中的位来设置存储器单元的阈值电压电平。如果上部逻辑页的位要存储逻辑“1”,则由于存储器单元取决于对下部页的位的编程而处于状态E或A之一,因此不发生编程,其中状态E和A两者均带有为“ I ”的上部页的位。如果上部页的位为逻辑“0”,则阈值电压变动。如果第一阶段导致存储器单元保持在已擦除状态E,则在第二阶段对存储器单元编程以使得阈值电压增加到位于状态C内,如箭头502所描绘的。如果作为第一编程阶段的结果存储器单元已被编程到状态A,则在第二阶段进一步对存储器单元编程,以使得阈值电压增加到位于状态B内,如箭头506所描绘的。第二阶段的结果是将存储器单元编程到被指定为对于上部页存储逻辑“O”而不改变下部页的数据的状态。在一个实施例中,如果写入足够的数据以填满整个页,则可以设立系统以执行完全序列写入。如果针对全部页没有写入足够的数据,则编程处理可以以所接收的数据对下部页编程。然后,当接收到随后的数据时,系统将对上部页编程。在又一实施例中,系统可以以对下部页编程的模式开始写入,并且如果随后接收到足够的数据以填满整个(或者大 部分)字线存储器单元则转换为完全序列编程模式。在美国专利申请2006/0126390中公开了这样的实施例的更多细节,其全部内容通过引用合并于此。图8A至SC描述了用于对非易失性存储器编程的另一多阶段编程处理。图8A至SC的处理通过对于任意特定的存储器单元,关于特定页在对先前页的邻近存储器单元写入之后对该特定存储器单元写入,减少了浮置栅间的耦合。在图8A至SC教导的处理的实现的一个示例中,非易失性存储器单元针对每个存储器单元存储两个数据位,使用四个数据状态。例如,假设状态E是已擦除状态,并且状态A、B和C是已编程状态。图9示出了状态与所存储的数据之间的关系的一个示例。状态E存储数据11。状态A存储数据01。状态B存储数据00。状态C存储数据10。这是格雷编码的一个示例。也可以使用到物理数据状态的其它数据编码。每个存储器单元存储两个数据页。为了引用目的,这些数据页将被称为上部页和下部页;然而,也可以给予它们其它标记。参考针对图8A至SC的处理的状态A,上部页存储数据O且下部页存储数据I。参考状态B,两个页均存储数据O。参考状态C,下部页存储数据O且上部页存储数据I。图8A至SC的编程处理是两阶段编程处理;然而,图8A至SC的处理可以用于实现三阶段处理、四阶段处理等。在第一阶段,对下部页编程。如果下部页要保留数据1,则存储器单元状态保持在状态E。如果要将数据编程为0,则升高存储器单元的电压阈值以使得存储器单元被编程到状态B’。图8A因此示出了从状态E到状态B’的存储器单元编程。图8A中描绘的状态B’是中间状态B ;因此,验证点被描绘为低于Vvb的Vvb’。在一个实施例中,在将存储器单元从状态E编程到状态B’之后,然后将关于其下部页对NAND串中该存储器单元的邻近存储器单元(在字线WLn+Ι上)进行编程。在对邻近存储器单元编程之后,浮置栅间的耦合效应可提高较早编程的存储器单元的明显阈值电压。这将具有如下效果将关于状态B’的阈值电压分布加宽为如图8B的阈值电压分布520所描绘的分布。阈值电压分布的这种明显加宽将在对上部页编程时被修正。图SC描绘了对上部页进行编程的处理。如果存储器单元处于已擦除状态E并且上部页要保持在1,则存储器单元将保持在状态E。如果存储器单元处于状态E且其上部页数据要被编程为O,则将提高该存储器单元的阈值电压,以使得该存储器单元处于状态A。如果存储器单元处于中间阈值电压分布520且上部页数据要保持在1,则将该存储器单元编程到最终状态C。如果存储器单元处于中间阈值电压分布520并且上部页数据要变成数据
O,则该存储器单元将处于状态B。由于仅邻近存储器单元的上部页编程将对给定存储器单元的明显阈值电压具有影响,因此图8A至SC描绘的处理减小了浮置栅间的耦合的影响。尽管图8A至SC提供了关于四个数据状态和两个数据页的示例,但是图8A至SC教导的概念可以应用于具有多于或少于四个状态以及不同于两页的其它实现。关于图8A至SC的编程处理的更多细节可以在通过引用而合并于此的美国专利第7,196,928号中找到。图IOA至IOD描述了另一多状态编程处理,该处理对连接到公共字线的存储器单元进行编程并且可以以与图8A至SC的处理类似的方式来使用。图IOA至IOD的处理的第一阶段包括首先将目标为阈值电压分布B和C的存储器单元编程到中间阈值电压分布B’, 如图IOA中的阈值电压分布530所描绘的。然后,对邻近字线执行该第一阶段,这使得中间阈值电压分布由于来自邻近浮置栅的耦合而加宽(参见图10B)。第二编程阶段包括对目标为阈值电压分布C的那些存储器单元从B’进行编程(参见图10C)。编程处理的第三阶段包括将存储器单元从分布E编程到分布A以及从分布B’编程到分布B (参见图10D)。图11是描述用于操作非易失性存储器(诸如图3的系统(或其它系统))的处理的一个实施例的流程图。在步骤600中,接收对数据进行编程的请求。该请求可以来自主机、另一装置或控制器。可以在控制器、控制电路、状态机或其它装置处接收该请求。在步骤602中,响应于请求,控制器、控制电路、状态机或其它装置将确定闪存单元的哪些块将用于存储数据。在步骤604中,将使用上述编程处理(或其它编程处理)中的任意编程处理将数据编程到所确定的块中。在步骤606中,将读取编程后的数据一次或多次。在步骤604与606之间存在虚线,这是由于在这两个步骤之间会经过不可预测的时间量,并且不响应于步骤604执行步骤606。相反,响应于读取数据的请求或其它事件而执行步骤606。图12是描述用于对块中的存储器单元进行编程的编程处理的流程图。图12的处理是图11的步骤604的一个实施例。在步骤632中,在编程之前擦除(按块或按其它单位)存储器单元。在一个实施例中,通过使P阱提高至擦除电压(例如20伏)足够的时段并且使所选块的字线接地同时源线和位线浮置来擦除存储器单元。因此,将强电场施加到所选择的存储器单元的沟道氧化物层,并且在浮置栅的电子通常通过福勒-诺德汉(Fowler-Nordheim)隧道效应而被发射到衬底侧时擦除所选择的存储器单元。随着电子从浮置栅被传送到P阱区域,所选择的存储器单元的阈值电压降低。可以对整个存储器阵列、各个块或单元的其它单位来执行擦除。也可以使用其它用于擦除的技术。在步骤634中,执行软编程以缩窄已擦除存储器单元的阈值电压分布。作为擦除处理的结果,一些存储器单元会处于比所需更深的已擦除状态。软编程可以施加编程脉冲以将较深的已擦除存储器单元的阈值电压变换至仍处于已擦除状态的有效范围中的较高阈值电压。在步骤636中,如此处所述的那样对块的存储器单元进行编程。图12的处理可以在状态机、控制器或者状态机和控制器的组合的指导下、使用上述各种电路来执行。例如,控制器可向状态机发出命令和数据以对数据编程。作为响应,状态机可操作上述电路以执行编程操作。图13是描述用于对连接到公共字线的存储器单元执行编程的处理的一个实施例的流程图。图13的处理可以在图12的步骤636期间执行一次或多次。例如,图13的处理可以用于将存储器单元(例如,完全序列编程)从状态E直接编程为状态A、B或C中的任意状态。替选地,图13的处理可以用于执行图7、图8A至8C、图IOA至IOD或者其它编程方案的处理的阶段中的一个阶段或每个阶段。例如,当执行图8A至SC的处理时,图13的处理用于实现第一阶段,第一阶段包括将存储器单元中的一些从状态E编程为状态B’。图13的处理然后可以再次用于实现第二阶段,第二阶段包括将存储器单元中的一些从状态E编程为状态A或者从状态B’编程为状态B和C。在图13的步骤768中,使用温度传感器228感测当前温度。该温度读数存储在存储器阵列或其它非易失性存储装置中。在一些实施例中,温度读数直接被发送到控制器244用于由控制器存储。在一些实现中,温度可以由不在存储器电路上(例如,在控制器上、在主机上或者其它位置)的传感器来感测。通常,将在编程操作期间施加到控制栅的编程电压施加为一系列编程脉冲。在编程脉冲之间是用于执行验证的一个或多个验证脉冲的集合。在许多实现中,编程脉冲的幅度随着每个相继的脉冲而以预定步长增加。在图13的步骤770中,将编程电压(Vpgm)初始化为开始幅度(例如广12至16V或其它适当电平),并且将状态机222保持的编程计数PC 初始化为I。在步骤772中,将编程信号Vpgm的编程脉冲施加到所选择的字线(选择用于编程的字线)。在一个实施例中,正被编程的存储器单元组都连接到同一字线(所选择的字线)。未选择的字线接收一个或多个升压电压(例如广9伏)以执行本领域公知的升压方案。在一个实施例中,如果应该对存储器单元编程,则将相应的位线接地。另一方面,如果存储器单元应该保持在其当前阈值电压,则相应的位线连接到Vdd以禁止编程。在步骤772中,同时将编程脉冲施加到连接到所选择的字线的所有存储器单元,以使得同时对连接到所选择的字线的所有存储器单元进行编程。即,它们同时(或者在重叠时间期间)被编程。以此方式,连接到所选择的字线的所有存储器单元将同时使其阈值电压改变,除非它们被锁定不进行编程。在步骤774中,使用适当的目标电平集合执行一次或多次验证操作来验证适当的存储器单元。如果验证为存储器单元已达到其目标,则锁定其不再进行编程。用于将存储器单元锁定为不进行编程的一个实施例是将相应的位线电压升高到例如Vdd。在步骤776中,确定是否所有的存储器单元都已达到其目标阈值电压。如果是,则编程处理完成并成功,这是因为所有所选择的存储器单元都被编程并被验证至其目标状态。在步骤778中报告状态“通过”。如果在步骤776中确定并不是所有存储器单元都已达到其目标阈值电压,则编程处理前进到步骤780。在步骤780中,系统对尚未达到其目标阈值电压分布的存储器单元的数量进行计数。即,系统对未通过验证处理的单元的数量进行计数。该计数可以通过状态机、控制器或其它逻辑来实现。在一种实现中,感测块300 (参见图3)中的每个将存储其各个单元的状态(通过/失败)。这些值可以使用数字计数器来计数。如上所述,感测块中的多个块具有线或在一起的输出信号。因此,检查一条线可以表示大组的单元中的单元都通过了验证。通过适当地组织线或在一起的线(例如,二级制树状结构),可以使用二进制搜索方法来确定失败的单元的数量。以这样的方式,如果少量单元失败,则迅速地完成计数。如果大量的单元失败,则计数花费较长时间。更多信息可以在美国专利公开2008/0126676中找到,其全部内容通过引用合并于此。在另一替选中,如果读出放大器中的每个的相应的存储器单元已失败,则该读出放大器可以输出模拟电压或电流,并且可以使用模拟电压或电流求和电路来对失败的存储器单元的数量进行计数。在一个实施例中,存在一个所计数的总数,其反映了当前正编程的存储器单元的未通过最后验证步骤的总数。在另一实施例中,针对每个数据状态保持单独的计数。在步骤782中,确定来自步骤780的计数是否小于或等于预定限制。在一个实施例中,预定限制是在针对存储器单元的页的读取处理期间可以通过ECC校正的位的数量。如果失败的单元的数量小于或等于预定限制,则编程处理可以停止,并且在步骤778中报告状态“通过”。在该情形下,对足够的存储器单元正确地进行了编程,以使得在读取处理期间可以使用ECC来对尚未被完全编程的少量剩余存储器单元进行校正。在一些实施例中,步骤780将针对每个扇区、每个目标数据状态或其它单位来对失败单元的数量进行计数,并且将在步骤782中将这些计数单独地或共同地与阈值进行比较。在另一实施例中,预定限制可以小于在读取处理期间可以通过ECC校正的位的数 量,以允许未来的误差。当对少于页的全部存储器单元进行编程或仅比较对于一个数据状态(或少于全部状态)的计数时,则预定限制可以是在针对存储器单元的页的读取处理期间可以通过ECC校正的位数的一部分(按比例的或不按比例的)。在一些实施例中,该限制不是预定的。替代地,该限制基于已针对页计数的误差的数量、所执行的编程-擦除循环的数量、温度或其它标准而改变。如果失败单元的数量小于预定限制,则编程处理在步骤784处继续并且对编程限制值(PL)检查编程计数PC。编程限制值的一个示例是20;然而,可以使用其它值。如果编程计数PC不小于编程限制值PL,则编程处理被认为已失败,并且在步骤788中报告失败状态。如果编程计数PC小于编程限制值PL,则处理在步骤786处继续,在该时间期间,编程计数PC以I递增,并且编程电压Vpgm步进上升到下一幅度。例如,下一脉冲将具有比前一脉冲大一个步长(例如,O. I至O. 4伏的步长)的幅度。在步骤786之后,处理循环回到步骤772,并且将另一编程脉冲施加到所选择的字线。在验证操作(例如,步骤774)和读取操作期间,将所选择的字线连接到电压,针对每次读取操作来指定该电压的电平(例如,Vra, Vrb和Vrc)或者针对每次验证操作来指定该电压的电平(例如,Vva, Vvb和Vvc),以便确定所连接的存储器单元的阈值电压是否已达到这样的电平。在施加字线电压之后,测量存储器单元的传导电流,以确定存储器单元是否响应于施加到字线的电压而接通。如果传导电流被测量为大于特定值,则认为存储器单元接通并且施加到字线的电压大于存储器单元的阈值电压。如果传导电流被测量为不大于特定值,则认为存储器单元没有接通并且施加到字线的电压不大于存储器单元的阈值电压。存在多种测量读取或验证操作期间的存储器单元的传导电流的方式。在一个示例中,根据在读出放大器中对专用电容器放电或充电的速率来测量存储器单元的传导电流。在另一示例中,所选择的存储器单元的传导电流允许(或者不允许)包括该存储器单元的NAND串对相应的位线放电。在一段时间之后测量该位线上的电压,以了解该位线是否已被放电。注意,这里描述的技术可以与本领域公知的不同方法一起使用来进行验证/读取。关于验证/读取的更多信息可以在以下专利文献中找到,其全部内容通过引用而合并于此
(I)美国专利申请公开第2004/0057287号;(2 )美国专利申请公开第2004/0109357号;(3 )美国专利申请公开第2005/0169082号;以及(4)美国专利申请公开第2006/0221692号。根据本领域公知的技术来执行上述擦除、读取和验证操作。因此,本领域技术人员可以改变所说明的细节的多处。也可以使用本领域公知的其它擦除、读取和验证技术。在完成编程之后,存储器单元将处于一个或多个阈值电压分布中,如图6至10所描绘的。此时,数据可用于读取。在许多情况下,可以在紧挨着编程的时间之后的时间读取数据。在一些实例中,编程期间的存储器系统的温度可与执行读取操作时的温度不相同。该温度改变可以影响性能,包括将误差引入到读取操作中。公知的是,集成电路在不同的温度范围中行为将不同。现有的存储器系统通过基于温度调整读取/验证比较电平、位线电流、感测安培、选择栅上的控制栅电压以及体偏置状况来对温度进行补偿。已观察到,当在编程时与读取时之间存在明显的温度变化时,读取处理会失败。当温度增加时,阈值电压分布趋于向下变动。还观察到,较高的状态(例如,C状态)将比较低的状态(例如,A状态)向下变动更多。 对于将数据状态设置为靠近彼此或者甚至重叠的存储器系统,对于温度变化的上述计数器措施可能无法足够好地起作用以解决响应于编程与读取时间之间的温度差的阈值电压分布变宽。发明人观察到对于响应于执行编程的时间与执行读取的时间之间的温度变化的阈值电压的各种变宽的一种解释是由于邻近存储器单元对目标存储器单元提供的影响。即,邻近存储器单元的数据状态将对目标存储器单元的TCO具有影响。影响目标存储器单元的邻近存储器单元包括在同一条字线上挨着目标存储器单元的存储器单元或者在同一位线上挨着目标存储器单元的存储器单元。另外,邻近存储器单元也可以相对于目标存储器单元为对角方向(例如,在一条位线上以及在一条字线上)。因此,提出了存储器系统基于对存储器编程的时间与读取存储器的时间之间的温度差确定是否提供温度补偿。所提供的温度补偿将考虑温度数据和邻近的存储器单元的数据状态。图14是描述基于温度数据和邻近存储器单元的数据状态而执行温度补偿的读取处理的流程图。图14的处理可以响应于来自主机的读取数据的请求而执行或者可以作为用于读取数据的内部处理的一部分而执行。在图14的步骤800中,系统将确定温度数据。在一个实施例中,系统将进行当前温度的读取。在一个实施例中,存在与控制器244、状态机222或者其它电路通信的温度传感器。在另一实施例中,使用存储器芯片上的温度传感器228将温度数据提供到状态机222、控制器224或者其它电路。在另一实施例中,控制器224包括板上温度传感器。在另一实施例中,主机将温度数据提供到控制器224。不需要用于获得当前温度的特定装置。步骤800还可以包括获得历史温度数据,该历史温度数据包括对数据编程时存储器系统的温度。在步骤802中,系统将确定并施加适当的温度补偿。步骤802是本领域公知的标准温度补偿。例如,可以基于当前温度或当前温度与对数据编程时存在的温度之间的差来改变读取比较电平、感测电流、读出放大器性能以及其它操作条件。在步骤802中确定并应用的温度补偿没有考虑邻近存储元件状态信息。在步骤804中,系统将获得邻近存储元件状态信息。例如,返回看图4,假设要读取的目标存储器单元是存储器单元312。同一字线上的邻近存储器单元的两个示例是存储器单元314和316。同一位线上的邻近单元也可以是邻近的存储器单元。图14的步骤804包括确定存储器单元314和/或316 (以及位于与存储器单元312相同的位线上的其它存储器单元)的状态(例如,E、A、B或C)。在步骤806中,系统将确定基于步骤804中获得的邻近存储元件状态信息以及温度数据的附加温度补偿。以下提供步骤806的更多细节。在步骤808中,将在步骤806中确定的温度补偿应用到步骤808中的读取处理。以下提供步骤808的更多细节。在步骤810中,使用包括上述步骤802、806和808中的补偿的读取操作来感测目标存储器单元。在步骤812中,报告在目标存储器单元感测的数据。步骤812的示例包括将数据报告给控制器244,将来自控制器244的数据报告给主机,或者将数据显示给用户。注意,步骤的顺序可以不同于图14中描绘的这种顺序。步骤中的多个步骤可以以不同的顺序来执行或者可以同时执行。例如,可以在步骤810的感测目标存储器单元之前,在感测目标存储器单元期间或者在感测目标存储器单元之后,执行两组温度补偿(步骤802和步骤808)。另外,可以组合两种类型的温度补偿或者可以仅使用步骤808的补偿(省略步骤802的补偿)。图15是描述图14的处理的一个示例实施例的流程图。在该示例中,控制器244将基于编程时与读取时之间的温度差决定是否提供温度补偿。如果控制器确定温度补偿是必要的,则补偿量将基于目标存储器单元的邻近存储元件的数据状态。在一些实施例中,温·度补偿还基于编程与读取之间的温度差或当前温度。在以下关于图15讨论的示例中,由存储器芯片212中的温度传感器228感测温度,并且在控制器244的指导下提供补偿。然而,在其它实施例中,图15的处理可以用在如下实现中不是在存储器芯片上测量温度,而是由存储器系统中的某个其它部件或存储器系统外的其它部件来测量温度,以补偿依赖于温度的机制。例如,在使用固态盘驱动器(SSD)的系统中,可从主机或SSD外部的其它部件获得温度,其中固态盘驱动器(SSD)使用闪存或其它非易失性存储装置存储数据。SSD的控制器可以使用该温度信息来补偿温度效应,如这里所公开的那样。温度信息来自何处没有关系。通过使用邻近存储元件数据状态来提供附加温度补偿,存储器系统可以解决由于对数据编程时与读取数据时之间的温度差而导致的阈值电压的变宽和变动,以便防止和/或校正误差。在图15的步骤850中,控制器244从主机接收读取数据的请求。在一个实施例中,不执行步骤850并且作为内部读取处理的一部分来执行图15的处理(例如,电平调节、无用信息校正等)。在步骤852中,控制器244从温度传感器228请求温度数据。在一个实施例中,控制器244将该请求传送到状态机222或控制电路220的其它部分,其将从温度传感器228获得温度数据。在步骤854中,存储器芯片212将使用温度传感器228感测当前温度。在步骤856中,将温度数据从控制电路220传送到控制器244。在步骤858中,控制器244基于当前温度确定是否调整任意读取(或者其它操作)参数。如果调整,则在步骤860中基于当前温度对读取参数进行调整。在步骤860中进行的调整是本领域计数人员公知的,诸如改变读取比较电平、感测电流、读出放大器的操作、体偏置状况等。调整的另一示例可以是执行字线(或者存储器单元的其它单位)上的所有存储器单元的扫描,以获得近似所扫描的整个存储器单元群体的整个阈值电压分布的数据。根据这些分布,系统可以识别最大点之间的最小点。这些最小点用于建立新的读取比较电平。在一些实施例中,可以由存储器212自动地执行步骤852至 860。
在步骤860之后,控制器244将获得对正读取的数据第一次编程时的温度数据。在一些实施例中,如果编程温度例如存储在同一字线上的额外单元中,则作为868的感测操作的一部分可获得编程期间的温度信息。如果在步骤858中控制器244确定不调整参数,则处理跳过步骤860并且直接进行到步骤862以获得编程时的温度数据。在一个实施例中,温度传感器228将来自编程和其它操作的温度数据存储在存储器200或其它非易失性存储装置中。在步骤862中,控制器244可以识别正读取的数据,并且控制控制电路220将获得先前存储的与对数据编程时相关联的时间的温度数据。作为步骤862的一部分将该温度信息发送到控制器244。在步骤864中,控制器244将基于温度的改变来调整读取(或其它操作)参数。例如,在步骤856中,控制器244接收当前温度。在步骤862中,控制器244接收编程时的温度。因此,通过将两个温度相减(例如,当前的温度减去先前的温度),控制器244知道编程时与读取时(假设现在是读取时)之间的温度差。如果该温度差大于阈值,则控制器244可基于温度(例如,当前温度或温度差)确定在步骤866中提供温度补偿。在步骤866中提供的补偿是不基于邻近存储元件状态数据的温度补偿。相反,该补偿是传统的温度补偿。
注意,如果在步骤864中,控制器244确定不提供温度补偿,则处理将跳过步骤866并且直接进行到步骤868。在步骤868中,控制器244将使得对目标存储器单元执行一个或多个感测操作。步骤850的读取请求可能将从多个存储器单元请求数据,多个存储器单元例如为从一条字线上的所有存储器单元(或其子集)或者连接到多条字线的所有存储器单元(或其子集)。执行各种感测操作以获得对于目标存储器单元的初始数据集合。步骤868还包括对于目标存储器单元的邻近存储器单元执行感测操作。在一个实施例中,当邻近存储器单元是同一字线上的那些存储器单元时,则对同一字线上的所有存储器单元执行感测操作(获得目标存储器单元的数据),还获得邻近存储器单元的数据。在一些情况下,该目标存储器单元集合还可包括每个目标存储器单元的邻近存储器单元。在一些实施例中,在步骤868中感测的数据是尚未针对以下讨论的温度补偿进行调整的初始数据。在一些实施例中,如果编程温度例如存储在同一字线上的额外存储器单元中,则作为868的感测操作的一部分可获得编程期间的温度信息。在步骤870中,将来自感测操作的该初始信息从存储器芯片212传送到控制器244。在步骤872中,控制器确定使用基于邻近存储元件状态信息和/或温度信息的温度补偿读取的最终数据。以下提供步骤872的更多细节。在步骤874中,控制器244报告该数据(参见图14的步骤812)。注意,在以上图15的讨论中,温度补偿被执行三次步骤860、步骤866和步骤872。在其它实施例中,温度补偿仅执行一次(步骤872)或两次(步骤872和步骤860或步骤866)。如上所述,所编程和读取的数据可能具有误差。为了修正这些误差,系统使用ECC处理,该ECC处理在编程期间利用纠错码对数据编码并且在读取处理期间对数据解码。图16描绘了根据一个实施例的用于对可以使用的非易失性存储装置的数据进行编码和解码的系统。误差校正控制用于检测和校正非易失性存储器阵列中的错误或不可靠数据的读取。一般来说,根据编码方案,一些附加的ECC或奇偶校验位是根据输入数据算出的并且存储在存储器阵列中。当读取时,输入数据和ECC位均被读取,并且解码器使用输入数据和ECC位这两者来检测是否存在误差,并且在一些情况下,检测哪些位中出现误差。在一个实施例中,图16的误差校正控制系统可以被实现作为控制器244的一部分,尽管其可以使用不同的系统和架构。图16的系统包括编码器880、非易失性存储装置882 (例如,存储器阵列200)、LLR (对数似然比)表884和解码器886。编码器880接收要存储在非易失性存储装置882中的用户数据,该用户数据也称为信息位。信息位由矩阵i=[10]表示(注意,例如两位仅用于示例目的,并且多个实施例具有长于两位的码字)。编码器802实现误差校正编码处理,在误差校正编码处理中,将奇偶校验位添加到信息位以提供由矩阵或码字v=[1010]表示的数据,其中矩阵或码字v=[1010]表示两个奇偶校验位已被附加到数据位。可以使用以更复杂的方式将输入数据映射到输出数据的其它技术,诸如下文中讨论的那些技术。可以使用也称为Gallager码的低密度奇偶校验检查(LDPC)码。实际上,这样的码通常被应用于跨越多个存储元件而编码的多个页。关于LDPC的另外信息可以在 D. MacKay, Information Theory, Inference and Learning Algorithm, C ambridgeUniversity Press 2003, chapter 47中找到。然后,数据位可以通过将非易失性存储元件集合中的每个非易失性存储元件编程到一个或多个已编程状态而被映射到逻辑页并且存储在非易失性存储装置882中。通常,码字具有大量并且跨越多个存储器单元而存储的位。 码字的位的子集将存储在特定存储器单元中。在一个可能的实现中,使用迭代“消息传递”解码处理,该迭代“消息传递”解码处理采用在编码器880处实现的编码提供的冗余位来实现误差校正解码。关于迭代消息传递解码的另外的细节可以在上述D. MacKay的文本中找到。迭代概率消息传递解码试图通过为码字中的每位分配初始概率度量来对码字解码。概率度量表示每位的可靠性,即,该位没有误差的可能性。在一种方法中,概率度量是从LLR表884获得的对数似然比LLR。LLR值是知道从存储元件读取的各种二进制位的值的可靠性的度量。
尸(v=o|y)在一个实施例中,位的LLR由g : log, ____________给出,其中,P (v=0 | Y)是在假定所读
取的状态是Y的条件下位是O的概率,并且P (V=I I Y)是在假定所读取的状态是Y的条件下位是I的概率。因此,LLR>0表示与I相比位更可能是0,而LLR〈0表示与O相比位更可能是I。此外,越大的幅度表示越大的概率或增加的可靠性。因此,与LLR=5的位相比,LLR=63的位更可能是O,并且与LLR=-5的位相比,LLR=-63的位更可能是I。LLR=O表示位同等地可能是O或I。可以为码字中的位位置中的每一个提供LLR值。此外,LLR表可以说明多个读取结果,以使得当考虑非易失性存储器的位序列与已编程状态之间的映射,当相对于从非易失性存储器读取的电压电平位更可能保持“O”或“ I”时使用较大幅度的LLR。解码器886接收LLR并且在连续迭代中迭代,其中解码器886确定是否满足表示码的奇偶校验检查。如果已满足所有奇偶校验检查,则解码处理收敛并且已重构码字。如果尚未满足一个或多个奇偶校验检查,则解码器将调整与奇偶校验检查不一致的位中的一个或多个的LLR,然后在处理中重新应用奇偶校验检查或接下来的检查,以确定是否满足。例如,可以调整LLR的幅度和/或极性。如果仍不满足所关注的奇偶校验检查,则可以在另一次迭代期间再次调整LLR。在一些情况下但不是在所有情况下,调整LLR可以导致位翻转(例如,从O到I或从I到0)。在一个实施例中,一旦满足了所关注的奇偶检验检查,如果适用,则向码字应用另一奇偶校验检查。在其它情况下,处理移动到下一奇偶校验检查,在稍后的时间循环回到失败的检查。处理继续试图满足所有奇偶校验检查。因此,完成Yi的解码处理以获得包括奇偶校验位V和解码信息位i的解码信息。图17描绘了对于在四个状态下每个存储器单元存储两个数据位的装置,具有不同状态的每个位位置的初始LLR值的示例LLR表(其中,|M3|>|M2|)。存储在每个存储器单元中的两位称为低位和高位。正的LLR值表示对于相应位的逻辑0,并且负的LLR表示对于相应位的逻辑I。较大的幅度表示关于位处于该逻辑状态的较大可靠性或概率。图17的LLR表例如是在跨越电压窗的均匀状态分布、高斯噪声和与图9中的编码对应的格雷编码数据的情况下的示例数据集合。如之前所述,存储器存储表示信息位和奇偶校验位(或ECC位)的数据,其中,根据纠错码来提供奇偶校验位。奇偶校验位连同信息位一起定义码字。在一个可能的方法中,可使用低密度奇偶校验检查(LDPC)码。实际上,这样的码通常被应用于跨越多个存储元件而编码的大量位(即,不是每个单元存储奇偶校验位,检查跨越多个单元而分布)。LDPC码是期望的,这是由于它们引起相对低的开销成本。另外,LDPC码在迭代消息传递解码算法下 呈现接近香农限制的性能。然而,这仅是示例实现,还可以使用任意类型的纠错码。例如,可使用其它线性分组码。LDPC码是由稀疏奇偶校验矩阵表征的线性分组码。矩阵包括K个信息位和M个奇偶校验位,并且码长是N=K+M。此外,奇偶校验位被定义为使得满足M个奇偶校验检查方程,其中,矩阵的每行表示奇偶校验检查方程。特别地,矩阵的行由校验码来标识,并且列由变量来标识,变量表示存储在存储元件中的数据,例如,码字位。基于以下方程,该数据包括信息位i和奇偶校验位P
「—· V = // ·丨=i 二 O ·
IPj其中,H是稀疏奇偶校验检查矩阵,V是数据向量,i是信息位向量,并且P是奇偶校验位向量。奇偶校验向量P可以通过求解以上方程来确定。此外,如果矩阵H的右手侧是下三角,则这可以使用高斯消元过程来高效地实现。用于LDPC的解码处理是称为迭代消息传递处理的迭代概率解码处理。本领域已知各种消息传递解码算法。常见的这种算法是信任传播算法。在一个实施例中,迭代包括串行地遍历检查节点并且基于每个奇偶校验检查来更新所涉及的位的LLR值。在一种方法中,试图满足奇偶校验检查矩阵的第一奇偶校验检查。一旦满足了该奇偶校验检查,则试图满足第二奇偶校验检查,等等。注意,一旦位的符号被翻转,则先前满足的奇偶校验检查一旦在翻转完成可能失败。以本领域技术人员公知的方式来修改LLR直到满足所有检查。注意,迭代解码算法的系列包括消息传递解码算法的组,这进而包括信任传播解码算法。图18是描述控制器244使用基于邻近存储元件状态信息和/或温度信息的温度补偿来确定数据的处理(图15的步骤872)的一个实施例的流程图。图18的处理使用上述迭代概率解码处理。在步骤902中,控制器244 (或其它实体)将为每个存储器单元分配可靠度度量(例如,位为O或I的概率)。如果单元表示2、3或更多位,则控制器为每个单元分配多个可靠度度量。该度量取决于两个因素噪声模型(例如,对一个状态编程和读取另一状态的概率)和位到状态的映射。在其它实施例中,步骤902还可以基于仿真、实验或过去的表现。在一个示例实现中,控制器244将获取适当的LLR表(参见图17)。LLR表可以在制造之前、在制造后测试之后或者在存储器系统的操作期间动态地来创建。基于从感测操作(步骤868)接收的初始信息,控制器244将为每个存储器单元或为每个读取的位分配来自LLR表的适当可靠度。在步骤904中,控制器244将识别对于每个存储器单元的温度偏移。在步骤904处的该温度偏移仅基于温度差;例如,步骤904处的温度差可以基于编程时的温度与读取时的温度之间的差。在一个实施例中,偏移是乘数。在另一实施例中,偏移可以是相加的常数。例如,控制器244可以保持表,该表具有对于每个温度差值的项(或值的集合)以表示偏移应该是什么。在一个实现中,表将具有温度差范围集合和对于每个范围的偏移。步骤904将包括使用温度差来识别适当的偏移。在一个实施例中,为每个存储器单元提供温度偏移。一旦解决了存储器单元的温度偏移,则可以针对该存储器单元所存储的每个位分开计算温度补偿的影响。在步骤906中,控制器244将基于每个目标存储器单元的邻近存储器单元的状态来识别温度偏移。如上所述,控制器244将具有对于每个存储器单元(包括目标存储器单元 和对于每个目标的邻近存储器单元)的初始感测信息。在一个实施例中,控制器244将使得读取连接到字线的所有存储器单元。因此,如果字线上的每个目标存储器单元(在一种情况下是连接到字线的所有存储器单元)和字线上的邻近存储器单元将使得控制器244接收其数据。基于一个或两个邻近存储元件(或者如果考虑同一位线或对角线邻近存储元件则多于两个邻近存储元件)中的数据,控制器244可以识别偏移。如上所讨论的(使用表或其它数据结构),偏移可以是乘数或相加的常数。在步骤908中,针对每个存储器单元(或者在一些实施例中,针对每个位)仓Il建合成温度补偿值。对于每个目标存储器单元(或对于每个所读取的位),合成温度补偿包括仅基于由基于邻近存储元件的数据状态的温度偏移(步骤906)调整的温度(步骤904)的温度偏移。例如,如果来自步骤904的偏移是乘数(XI)并且来自步骤906的偏移是第二乘数(X2 ),则合成温度补偿可以是两个乘数的乘积,其等于(Xl)* (X2)。在步骤910中,对于每个目标存储器单元(或对于每个所读取的位),基于合成温度补偿来调整来自LLR表的适当概率值。例如,将乘数与来自LLR表的值相乘或者将常数与LLR表中的值相加。在步骤912中,执行ECC解码过程(参见图16的步骤886)。ECC处理912的结果是收敛于码字。当所识别的码字不同于所编程的码字的概率较小时,则解码器重构实际编程的数据。在步骤916中,控制器244向主机报告该数据。在一些实施例中,如果数据中的误差数量大于解码器的校正能力,则即使迭代和概率调整数量较大解码器也会失败。图18示出了 ECC解码处理912,其包括步骤920、922、924和926。在步骤920中,基于当前概率集合来对数据解码。在步骤922中,如果解码数据与合法码字匹配,则处理成功并且在步骤916中报告数据。如果来自步骤920的解码数据与允许的码字不匹配(步骤924),则需要在步骤926中调整概率,并且处理循环回到步骤920以尝试再次对数据解码。在调整概率之前,系统测试执行步骤920至926的循环是否大于最大次数(max)。如果大于最大次数,则处理失败(步骤930)。如果不大于最大次数,则需要在步骤926中调整概率。步骤926的一个实施例包括调整概率的幅度。步骤926的另一实施例包括调整概率的符号。在又一实施例中,可以调整幅度和符号。存在多种用于调整幅度或符号的方法。在一个实施例中,最接近零的一个或多个概率值将使得其符号翻转并且使得其幅度改变。步骤912的处理是使用以上描述的且本领域公知的LDCP码的教导的迭代处理。在以上讨论中,目标存储器单元的初始感测包括使用读取比较电平Vra、Vrb和Vrc(参见图6)。在另一实施例中,可以使用另外的读取比较电平来以更大的分辨率进行感测。例如,图19示出了具有读取比较电平¥以、¥1^1、¥1^2、¥1^3、¥1^1、¥1^2和¥1^3的重叠阈值电压分布。通过读取这些读取比较电平中的每个,可以为各个初始数据集合分配更准确的概率。例如,如果存储器单元具有在Vra和Vrbl之间的阈值电压,则该存储器单元具有范围Rl中的阈值电压。范围Rl中的存储器单元具有处于状态A的高概率。如果存储器单元具有大于Vrbl且小于Vrb2的阈值电压,则该存储器单元的阈值电压在范围R2中。具有范围R2中的阈值电压的存储器单元具有处于状态A的较低概率和类似地处于状态B的较低概率。如果存储器单元具有大于Vrb2且小于Vrb3的阈值电压,则阈值电压在范围R3中。具有范围R3中的阈值电压的存储器单元具有处于状态B的较低概率以及甚至处于状态A的较低概率。范围R2中的存储器单元处于状态B的概率小于范围R3中的存储器单元处于状态B的概率。如果存储器单兀具有大于Vrb3且小于Vrcl的阈值电压,则该阈值电 压在范围R4中。具有范围R4中的阈值电压的存储器单元具有处于状态B的高概率。如果存储器单元具有大于Vrcl且小于Vrc2的阈值电压,则该存储器单元具有范围R5中的阈值电压。具有范围R5中的阈值电压的存储器单元具有处于状态B的较低概率以及甚至处于状态C的较低概率。如果存储器单元具有大于Vrc2且小于Vrc3的阈值电压,则该阈值电压在范围R6中。具有范围R6中的阈值电压的存储器单元具有处于状态C的较低概率以及甚至处于状态B的较低概率。如果存储器单元具有大于Vrc3的阈值电压,则该存储器单元在范围R7中。具有范围R7中的阈值电压的存储器单元具有处于状态C的高概率。注意,图19中没有示出状态E。然而,如果存储器单元具有小于Vra的阈值电压,则其在范围RO中并且具有处于状态E的高概率。图20是表示每位处于图19的每个阈值电压范围的可靠度度量(LLR)的LLR表。图20的LLR表假设每个存储器单元存储两位。在图20的示例LLR表中,幅度Ml至M5满足|M5|>|M4|>|M3|>|M2|>|M1|。表中的每个幅度表示该位为O或I的对数似然比。具有负符号表示该位的LLR为1,并且具有正符号表示该位的LLR为O。一个实施例包括使用图19的读取比较电平和图20的LLR表的图15和图18 (图15的步骤872)的处理。当执行感测操作(参见步骤868)时,存储器芯片将在Vra、VrbUVrb2、Vrb3、Vrcl、Vrc2和Vrc3处执行读取比较电平,以识别存储器单元处于哪个范围(R0、RU……R7)。该数据称为软信息。该软信息然后被传送到控制器244。控制器244然后将在图18的步骤902中使用图20的LLR表识别初始概率。如上所述,然后,将在步骤910中基于温度信息和邻近存储元件的数据状态信息(步骤904和906)的组合来调整图20的LLR表中的值。 在一个实施例中,针对控制器将每个电压范围映射到标识该电压范围的位序列。该序列包括多于两位。通常,该序列中的前两位是硬位(hardbit),例如,它们表示下部页中的位的符号和上部页中的位的符号,而序列中的剩余位是软位(soft bit)。然而,在其它映射中,简单地仅可以在LLR表中找到表示每个阈值和关于每位的符号的信息的位序列。当存在多于四个范围时,则所识别的电压表示软信息。硬位和软位指的是如下情况在表示序列或映射内,系统可以直接识别在映射中相当于硬位(HB)的存储位(SB),而序列中的剩余位是软位。可以示出,使用格雷映射改进了单元的容量,例如,其导致在BICM (位交织码调制)方案下的最佳校正能力,同时HB是格雷码就足够而与SB表示无关。用于基于邻近存储元件的数据状态信息提供温度补偿的另一实施例包括使用读取时的温度与编程时的温度之间的温度差AT以确定是否提供邻近存储元件的数据状态信息。例如,图18的步骤904至910由图21的步骤980、982和984来取代。在步骤982或984之后,处理将在图18的步骤912处继续。在步骤980中,系统将确定Λ T是否大于某个阈值常数K。如果Λ T不大于常数K,则不提供补偿(步骤982)。然而,如果Λ T大于常数K,则在步骤984中基于邻近存储元件的数据状态来提供补偿。公开于2009年3月26日的美国公开专利申请第2009/0080259号,“Post-Facto Correction for Cross Coupling in aFlash Memory”公开了一种用于从非易失性存储元件读取数据的方法,其中,基于测量和邻近存储元件对目标存储器单元的读取的各个干扰程度来估计存储在存储器单元中的数据。图21的步骤984可以通过实现所公开的申请U. S. 2009/0080259的处理来执行。 在另外一组实施例中,温度补偿(考虑邻近存储元件的数据状态)可以用于调整读取处理的读取比较电平。图22和23是描述基于温度补偿(基于邻近存储元件的数据状态来调整)的读取比较值的改变的两种实现的流程图。图22的处理包括考虑沿着同一字线的其它存储器单元的邻近存储元件的数据状态,并且在感测步骤后提供补偿。图23的处理可以考虑同一字线或同一位线上的邻近存储元件的数据状态,并且在感测前提供补偿。在图22的步骤1000中,控制器接收读取数据的请求。在步骤1002中,控制器244如上所述从存储器芯片请求温度数据。在步骤1004中,存储器芯片将如上所述感测温度信息(例如,使用温度传感器228)。在步骤1006中,将在步骤1004中感测的当前温度数据和历史温度数据(对要读取的数据编程时的温度数据)传送到控制器244。在步骤1008中,控制器244确定AT (当前温度与在对数据编程时得到的温度之间的差)是否大于某个常数K。如果AT不大于K,则在步骤1020中,以标准比较电平(例如,Vra、Vrb和Vrc执行感测操作)。在步骤1022中,将所感测的数据传送到控制器244。在步骤1024中,控制器将使用本领域公知的任意方法来确定最终数据。在一个实施例中,可以使用标准ECC解码。在另一实施例中,可以使用如上所述或者本领域公知的迭代ECC处理。在步骤1026中,将数据报告给主机。如果在步骤1008中控制器244确定Λ T大于常数K,则在步骤1030中针对每个数据状态以多个比较电平执行感测操作。例如,可以以标准比较电平以及大于标准比较电平的一个或多个比较电平的集合和低于标准比较电平的一个或多个比较电平的集合来执行读取操作。在一个实施例中,例如以 Vra、Vra+. 2v> Vra-. 2v> Vrb> Vrb+. 2v> Vrb-. 2v> Vrc、Vrc+. 2v和Vrc-. 2v在每对状态之间执行三次读取操作。在其它实施例中,可以使用多个比较电平并且可以使用除了 +/_. 2之外的增量。在步骤1032中,将数据传送到控制器244。在一个实施例中,可以传送每次感测操作的结果。在步骤1034中,控制器244将基于温度差(编程时的温度与读取时的温度之间的温度差)和一个或多个邻近存储器单元的数据状态的组合来选择关于每个存储器单元要使用的适当数据集合。可以创建如下功能考虑温度差和邻近存储元件是否处于状态E、A、B或C,以识别要使用来自各个读取操作中的哪次读取操作的数据。在另一实施例中,可以设立具有针对温度差(编程时的温度与读取时的温度之间的温度差)和邻近存储器单元数据状态的各种组合的信息的一个或多个表的集合。在步骤1034之后,在步骤1026中报告数据。注意,由控制器244执行上述图22的处理。在另一实施例中,图22的处理可以由状态机222执行。通过在状态机中执行处理,系统将节省将来自多次感测操作的数据传送到控制器244的时间。图23是描述用于基于考虑邻近存储元件的状态信息的温度补偿来调整读取比较值的另一实施例的流程图。在图23的处理中,在感测操作之前提供补偿。在图23的步骤1100中,如上所述地感测温度。在步骤1102中,获取编程时的温度数据。如果AT (当前温度与编程时的温度之间的差)大于常数K,则在步骤1106中从邻近存储器单元存取数据。在一个实施例中,系统先前已执行并且保存了对于存储器单元的字线、存储器单元的块等的感测操作的结果。在另一实施例中,可先前已针对其它操作读取并存储了邻近存储器单元。在步骤1108中,基于邻近存储器单元状态和AT对读取比较电平进行调整。例如,在一个实施例中,可以存在大于标准读取比较值的一个偏移和低于标准读取比较值的一个偏移,从而导致每对状态之间总共三个读取比较电平。例如,可以使用Vra、Vra+. 2v,Vra- 2v、Vrb、Vrb+. 2v、Vrb_. 2v、Vrc、Vrc+. 2v以及Vrc-. 2v。在另一实施例中,可以使用大于标准读 取比较值的一个偏移和低于标准读取比较值的一个偏移而不以标准读取比较电压进行读取,从而导致每对状态之间总共两个读取比较电平。可以设立基于AT和一个或多个邻近存储元件的数据状态来识别要使用多个读取比较值中的哪个的功能。替选地,可以设立基于AT和一个或多个邻近存储元件的数据状态的组合来选择哪个读取比较值的表的集合。在步骤1110中,使用新的读取比较值来执行感测操作。在一个实施例中,不同的存储器单元将利用不同的读取比较电平。因此,将针对每个状态以不同存储器单元所需的所有比较电平执行多次感测操作。然而,对于任意一个存储器单元,将仅存储对于在步骤1108中识别的相关联的读取比较电平的数据。在步骤1112中,将数据报告给主机或控制器或其它实体。注意,在步骤1104中,如果确定Λ T不大于常数K,则处理跳过步骤1106和1108并且直接进行到步骤1110,从而以原始比较值来执行感测操作。注意,除了温度差补偿之外,邻近存储元件的状态信息还可以用于调整其它补偿。例如,还可以基于一个或多个邻近存储器单元的状态来调整由于浮置栅或浮置栅耦合、编程单元数据相关编程干扰以及其它机制而引起的邻近单元相关阈值电压移位。在以上实施例中,当系统感测到编程时的温度与读取时的温度之间的特定温度差时,则系统将应用考虑温度差和一个或多个邻近存储器单元的数据状态的额外补偿。在另一实施例集合中,系统将首先试图执行读取处理而不应用考虑温度差和一个或多个邻近存储器单元的数据状态的额外补偿。这样的读取处理可包括具有或没有软位的ECC(例如,基于BCH或基于LDPC)的使用。如果ECC处理失败(或者读取处理失败),则系统将以恢复模式工作。在恢复模式中,系统将使用上述技术应用将温度差和一个或多个邻近存储器单元的数据状态纳入考虑的额外补偿来再次执行读取处理。一个实施例包括将数据编程到非易失性存储元件集合和在编程之后从该非易失性存储元件集合读取数据。数据的读取包括基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿。一个实施例包括确定当前温度,通过将数据编程到目标非易失性存储元件来获取温度信息,确定当前温度信息与对数据编程时的温度信息之间的温度差,确定目标存储器元件的一个或多个邻近非易失性存储元件的状态信息以及如果温度差大于阈值则基于温度数据和一个或多个邻近非易失性存储元件的状态信息来对目标非易失性存储元件应用温度补偿量,感测来自目标非易失性存储元件的信息,以及基于感测和所应用的温度补偿来报告数据。温度数据可以包括当前温度、温度差或其它温度数据。一个实施例包括接收非易失性存储元件集合的当前温度信息,接收与先前对该非易失性存储元件集合编程期间的温度对应的、该非易失性存储元件集合的编程温度信息,基于至少当前温度信息来调整操作参数,使用操作参数感测来自该非易失性存储元件集合的初始信息,使用基于表示该非易失性存储元件集合中的每个的一个或多个邻近存储元件的状态和当前温度信息与编程温度信息之间的温度差的信息的温度补偿来根据初始信息识别存储在该非易失性存储元件集合中的数据,以及报告所识别的数据。一个实施例包括非易失性存储元件集合和与该非易失性存储元件集合通信的一个或多个管理电路。一个或多个管理电路通过基于温度信息和至少一个邻近非易失性存储元件的状态信息的温度补偿来从该非易失性存储元件集合读取数据。
·
一个实施例包括主机接口、存储器电路和控制器电路。存储器电路包括多个非易失性存储元件、解码器、温度传感器和状态机。控制器电路与存储器电路和主机接口通信。控制器电路与状态机通信。控制器电路从存储器电路接收来自温度传感器的当前温度信息和对非易失性存储元件编程时的温度信息。控制器从存储器电路接收从非易失性存储元件感测的初始信息。控制器基于至少一个邻近非易失性存储元件的状态信息和当前温度信息与对非易失性存储元件编程时的温度信息之间的温度差来确定温度补偿。控制器使用初始信息结合温度补偿来执行数据恢复处理,以识别存储在非易失性存储元件中的用户数据。一个实施例包括非易失性存储元件集合、用于将数据编程到该非易失性存储元件集合中的装置以及用于在编程后从该非易失性存储元件集合读取数据的装置。数据的读取包括基于温度信息和邻近存储元件的状态信息来提供温度补偿。已出于说明和描述目的给出了本发明的上述详细描述。其不旨在为详尽的或将本发明限于所公开的确切形式。根据以上教导多种修改和变型是可能的。选择上述实施例以最佳地说明本发明的原理及其实际应用,从而使得本领域技术人员能够最佳地利用各个实施例中的本发明,并且使得各种修改适合于所期望的特定用途。旨在为本发明的范围由所附权利要求来限定。
权利要求
1.一种用于操作非易失性存储装置的方法,包括 将数据编程到非易失性存储元件集合中;以及 在编程后从所述非易失性存储元件集合读取所述数据,所述数据的读取包括基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿。
2.根据权利要求I所述的方法,其中,读取所述数据包括 确定作为当前温度与对所述数据编程时的温度之间的差的温度差是否大于阈值,基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿包括响应于确定所述温度差大于所述阈值而基于至少一个邻近非易失性存储元件的状态信息和所述温度差来提供补偿。
3.根据权利要求I或2所述的方法,其中,基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿包括 基于温度确定初始补偿值;以及 基于至少一个非易失性存储元件的所述状态信息来调整所述初始补偿值。
4.根据权利要求I或2所述的方法,其中,基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿包括 基于温度和至少一个邻近非易失性存储元件的状态信息来确定补偿值。
5.根据权利要求I至4中任一项所述的方法,其中,读取所述数据包括 感测来自所述非易失性存储元件集合的信息; 在所述感测之后应用所述温度补偿;以及 基于所述感测和所述应用确定数据。
6.根据权利要求I至4中任一项所述的方法,其中,读取所述数据包括 应用所述温度补偿;以及 在应用所述温度补偿之后并且基于该应用,感测来自所述非易失性存储元件集合的信肩、O
7.根据权利要求I至6中任一项所述的方法,其中,基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿包括 基于温度信息和至少一个邻近非易失性存储元件的状态信息来调整纠错码解码处理的LRR表。
8.根据权利要求I至6中任一项所述的方法,其中,基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿包括 调整用于所述数据的读取的读取比较电平,所述读取比较电平是基于温度信息和至少一个邻近非易失性存储元件的状态信息来调整的。
9.根据权利要求I至6中任一项所述的方法,其中,基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿包括 基于温度信息和至少一个邻近非易失性存储元件的状态信息来调整纠错码解码处理。
10.根据权利要求I所述的方法,其中,所述读取包括 确定当前温度信息; 获取对所述数据编程时的温度信息; 确定所述当前温度信息与对所述数据编程时的温度信息之间的温度差;确定关于一个或多个目标非易失性存储元件的一个或多个邻近非易失性存储元件的状态信息; 确定所述温度差是否大于阈值; 响应于确定所述温度差大于所述阈值而基于所述温度差和适当的邻近非易失性存储元件的状态信息来对一个或多个目标非易失性存储元件应用温度补偿; 感测来自目标非易失性存储元件的信息;以及 基于所述感测和所述温度补偿来报告数据。
11.根据权利要求I所述的方法,其中,所述读取包括 确定当前温度信息; 获取对所述数据编程时的温度信息; 确定所述当前温度信息与对所述数据编程时的温度信息之间的温度差; 基于所接收的当前温度信息来调整读取参数; 使用读取操作参数感测来自所述非易失性存储元件集合的初始信息; 使用基于所述温度差和表示所述非易失性存储元件集合的一个或多个邻近存储元件的状态的信息的温度补偿,根据初始信息识别存储在所述非易失性存储元件中的数据;以及 报告所识别的数据。
12.—种非易失性存储系统,包括 非易失性存储元件集合;以及 与所述非易失性存储元件集合通信的一个或多个管理电路,所述一个或多个管理电路通过基于温度信息和至少一个邻近非易失性存储元件的状态信息提供温度补偿,来从所述非易失性存储元件集合读取数据。
13.根据权利要求12所述的非易失性存储系统,其中 所述一个或多个管理电路确定温度差是否大于阈值,并且响应于确定所述温度差大于所述阈值而基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿,所述温度差是对所述数据编程时的温度与读取所述数据时的温度之间的差,所述温度信息是所述温度差。
14.根据权利要求12或13所述的非易失性存储系统,包括 所述一个或多个管理电路通过基于温度信息和至少一个邻近非易失性存储元件的状态信息来调整纠错码解码处理,而基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿。
15.根据权利要求12或13所述的非易失性存储系统,其中 所述一个或多个管理电路通过基于温度信息和至少一个邻近非易失性存储元件的状态信息调整用于读取所述数据的读取比较电平,而基于温度信息和至少一个邻近非易失性存储元件的状态信息来提供温度补偿。
16.根据权利要求12所述的非易失性存储系统,其中 所述一个或多个管理电路通过如下操作来从所述非易失性存储元件集合读取数据确定当前温度信息;获取对所述数据编程时的温度信息;确定所述当前温度信息与对所述数据编程时的温度信息之间的温度差;确定一个或多个邻近非易失性存储元件的状态信息;基于所述温度差和适当的邻近非 易失性存储元件的状态信息来对一个或多个目标非易失性存储元件确定并应用温度补偿;感测来自目标非易失性存储元件的信息;以及基于所述感测和所述温度补偿来报告数据。
17.根据权利要求12所述的非易失性存储系统,其中 所述一个或多个管理电路通过如下操作来从非易失性存储元件集合读取数据确定当前温度信息;获取对所述数据编程时的温度信息;确定当前温度信息与对所述数据编程时的温度信息之间的温度差;基于所接收的当前温度信息调整一个或多个操作参数;使用所述一个或多个操作参数感测来自所述非易失性存储元件集合的初始信息;使用基于所述温度差和表示所述非易失性存储元件集合的一个或多个邻近存储元件的状态的信息的温度补偿而从所述初始信息识别存储在所述非易失性存储元件集合中的数据;以及报告所识别的数据。
18.根据权利要求12所述的非易失性存储系统,其中 所述一个或多个管理电路通过如下操作从所述非易失性存储元件集合读取数据针对每个数据状态以多个比较值执行读取操作,以及基于所述读取操作、温度信息和邻近存储元件状态信息确定所述数据的每个比特表示特定数据值的概率。
全文摘要
将数据编程到目标存储器单元集合并从该目标存储器单元集合读取数据。当读取数据时,提供温度补偿。该温度补偿基于温度信息和一个或多个邻近存储器单元的状态。在一个实施例中,当从目标存储器单元集合读取数据时,系统感测当前温度并且确定当前温度与对数据编程时的温度之间的温度差。如果该温度差大于阈值,则读取数据的处理包括基于温度信息和邻近存储元件状态信息提供温度补偿。在一个替选中,可以由除温度差之外的条件触发提供温度补偿的判定。
文档编号G11C11/56GK102893337SQ201180020070
公开日2013年1月23日 申请日期2011年2月10日 优先权日2010年2月19日
发明者格里特·扬·赫明克, 佐藤晋治 申请人:桑迪士克技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1