基于温度的自适应擦除或编程并行性的制作方法

文档序号:6766377阅读:167来源:国知局
基于温度的自适应擦除或编程并行性的制作方法
【专利摘要】本发明涉及基于温度的自适应擦除或编程并行性。一种方法,在一个实施方案中包括通过使用电荷泵(220)的电压执行存储操作以将存储阵列(201)的存储单元置于第一逻辑状态(514,714)。一部分所述操作是通过使用所述电荷泵的所述电压在所述存储单元上执行的。所述存储阵列的温度和阈值(503,703)进行比较。如果所述温度高于参考水平,所述电荷泵上的负载通过仅仅给减小数量的存储单元提供所述电压而被减小。
【专利说明】基于温度的自适应擦除或编程并行性
[0001]本申请涉及美国专利申请序列号13/170,009,在2011年6月27日提交的(代理人案号N0.AC50505TP),标题为“非易失性存储器的自适应写程序”,并且命名Chen He andRichard Eguchi为发明人。以上申请内容因此全部包括在本申请内。
【技术领域】
[0002]本发明公开通常涉及非易失性存储器,更具体地说,涉及鉴于温度条件自适应编程和擦除非易失性存储器的系统及方法。
【背景技术】
[0003]装置泄漏是非易失性存储器,例如可擦可编程只读存储器(EPR0M)、电可擦只读存储器(EEPROM)以及块擦除的EEPROM (例如,“闪光”存储器)等等的设计和操作所面临的挑战。装置泄漏增加了非易失性存储器(NVM)模块内的电源组件,例如电荷泵的负载,并可以导致性能下降。另一个问题是由于低压驱动强度的滚降而在低压下减小的信噪免疫力。此夕卜,带有循环的存储单元的跨导退化非常显著,特别是有较小的单元尺寸。
[0004]对于擦除程序,增加的装置泄漏可能给用于提供擦除偏压的电荷泵带来显著负载。结果,存储单元可能接收低效的擦除脉冲偏压电平,并可能无法擦除。对于编程程序,增加的列泄漏可能给漏极电荷泵带来显著负载。结果,存储单元可以接收非常低效的编程脉冲偏压电平,并且可能无法被正确编程。
【专利附图】

【附图说明】
[0005]通过参考下面的说明书以及附图,娴熟的从业者将认识到本发明公开的好处、特征和优点。附图不一定按比例绘制。
[0006]图1根据本发明的一个实施例示出包括非易失性存储器(NVM)的集成电路的一个例子的方框图。
[0007]图2根据本发明的一个实施例不出NVM的一个例子的方框图。
[0008]图3根据本发明的一个实施例示出擦除操作的一个例子的流程图。
[0009]图4根据本发明的一个实施例示出擦除操作的预编程程序的一个例子的流程图。
[0010]图5根据本发明的一个实施例示出擦除操作的擦除程序的一个例子的流程图。
[0011]图6根据本发明的一个实施例示出擦除操作的软编程程序的一个例子的流程图。
[0012]图7根据本发明的一个实施例示出编程操作的一个例子的流程图。
[0013]图8根据本发明的一个实施例示出非易失性存储器中的存储块和NVM控制器的一个例子的方框图。
[0014]图9根据本发明的一个实施例示出非易失性存储单元的一个例子的方框图。【具体实施方式】
[0015]给出下面的说明书以使普通技术人员能够正如在特定应用及其要求的情况下提供的那样实现并使用本发明所公开的技术。对所公开的实施例的各种修改对本领域所属技术人员来说将是显而易见的,并且本发明所描述的一般原理可被应用于其它实施例。因此,本公开并非旨在被限定于本发明所示的和描述的具体实施例,而是应被赋予与本发明所公开的原理和新颖特征相一致的最大范围。
[0016]所公开的系统及方法在非易失性存储器(NVM)模块的操作期间选择性地减小了装置的负载。除其它因素外,减小的负载可以基于NVM模块的实时运行状况。在一个例子中,响应于电荷泵或NVM模块中的其它电压源或电流源可能无法提供高负载所需电压的决定,负载可以被减小。增加负载也可能发生,例如,由于NVM模块中的各种形式的装置泄漏。能够有助于增加的装置泄漏的因素是升高的NVM模块的温度。
[0017]通常,随着温度的升高,装置泄漏会增加。在很多情况下,装置泄漏有取决于温度的指数。各种因素可以提高NVM模块的操作温度。例如,NVM模块可被部署在预计达到高温,例如汽车或其它车辆的发动机舱内或附近的环境中。高温也可能由于冷却装置的故障,或由于置于NVM的高处理需求而出现。
[0018]一种确定NVM模块应该何时利用减小的擦除负载和/或减小的编程负载操作的方法就是监测NVM模块的操作温度。在较高温度下,NVM模块可预计遭受退化影响,例如增加的装置泄漏。通过在较高温度下减小电荷泵的负载,NVM可以避免电荷泵无法满足负载需求的情况。这种减小也可有助于避免退化,并延长NVM模块的寿命。或者,或此外,电荷泵的负载可以基于供应元件至少部分重载(例如,电荷泵无法给高负载提供所需电压)的确定。
[0019]例如,NVM模块可被配置以减少在高温写操作或在升高的温度条件下进行其它存储操作期间被并行编程或擦除的位数量。这种子集编程操作或子集擦除操作减小了操作期间所需的电流,并可以帮助避免否则可能在高温下由增加的装置泄漏造成的断开电源电压的情形。
[0020]子集擦除的一个例子是将NVM阵列分成两半,并且每次擦除一半。如果子集擦除的所有擦除操作被配置为静态,NVM模块将引发性能损失,即使当不需要子集编程/擦除时(例如,由于更好的制作过程,在低温或部分没有太多的装置泄漏)。因此,子集编程和/或子集擦除选项在需要最大化部件性能和可靠性时可以自适应地启动。NVM模块可以被配置,例如,以便子集编程和擦除执行只有当NVM模块在较高的温度和/或当检测到增加的泄漏时操作。启动子集编程和/或子集擦除选项的阈值温度可以被设定为固定值,例如75°C或150°C。多个阈值温度也可被用于启动不同的并行度。基于NVM模块整个寿命的部件磨损、或制作之后在单个NVM模块测量的差泄漏特性、或其它因素、或它们的组合,阈值温度可是可编程的或自适应的。
[0021]图1是显示包括非易失性存储器(NVM) 103的集成电路(IC) 100的一个例子的方框图。在图示的例子中,集成电路100可被实现为片上系统(S0C),等等,其中带有至少一个通过适当的接口 105,例如带有多个信号或位的总线,等等,耦合于NVM103的处理器101。集成电路100可以包括其它电路、模块或装置,例如其它存储装置(未示出)、其它功能模块(未示出)以及接口,例如输入、输出或输入/输出(I/O)端口或引脚等等(未示出)。在替代实施方案中,NVM103在IC100上被其本身集成,而没有任何其它电路模块。在另一个实施方案中,处理器101、非易失性存储器103以及接口 105是IC100上较大系统的一部分。
[0022]图2是显示NVM103的一个例子的方框图。NVM103包括NVM阵列201、温度传感器209、行解码器203、列逻辑205、电荷泵220以及NVM控制器207。行解码器203耦合于NVM阵列201。列逻辑205耦合于NVM阵列201。NVM控制器207耦合于接口 105、温度传感器209、NVM201、列逻辑205以及行解码器203。电荷泵220耦合于NVM阵列201和NVM207。列逻辑205包括列解码器和读出放大器(未示出),并且每个接口可以被配置以携带多个信号,例如多个并行的位(例如,同时传送的多个位)。NVM控制器207通过行解码器203和列逻辑205控制NVM阵列201的操作,例如响应于通过接口 105或其它接口从处理器101传达的指令。NVM控制器207通过给行解码器203提供行地址以及给列逻辑205提供列地址而访问NVM阵列201内的存储单元。数据通过列逻辑205被写入NVM阵列201或从中读取。NVM控制器207还通过电荷泵220将源电压和阱电压(通过未示出的相应的开关和控制器)驱动到NVM阵列201。电荷泵220可以包括提供擦除栅极电压的负电荷泵、提供编程栅极电压和擦除正阱(P阱)电压的正电荷泵以及提供编程漏极电压的漏极泵。
[0023]在NVM控制器207中显示的是编程并行控制213和擦除并行控制215。NVM控制器207从温度传感器209接收温度测量信号。NVM控制器207确定测量温度是否足够高以使NVM阵列201应通过使用一些降低了的并行度进行操作。例如,NVM控制器207可以被配置以向编程并行控制213和擦除并行控制215提供指示,即指示由温度传感器209测量温度是否小于阈值电平。
[0024]编程并行控制213和擦除并行控制215确定存储阵列201中将被并行编程和擦除的位数量。该确定可以基于源自NVM控制器207的输入,例如源自传感器209的测量温度。
[0025]NVM存储阵列201包括一个或多个块的存储单元,其中每个存储块有选择的块大小,例如,16千字节(础)、321?、641?、1281?、2561?,等等。在一些实施例中,NVM阵列201中的存储单元通常有栅极(G)端子、漏极(D)端子和源极(S)端子,以及包括P阱(PW)和η阱(NW)的多个隔离的阱。在一个实施方案中,每个存储块被组织为存储单元行和列。每一行存储单元的栅极端子耦合于多个字线中的一个相应字线,其中所述字线耦合于行解码器203。每一列存储单元的漏极端子耦合于多个位线中的一个相应位线,其中所述位线耦合于列逻辑205。每个存储单元的源极端子和阱(PW和NW)由NVM控制器207驱动或控制。
[0026]如图所示,NVM阵列201包括至少一个被配置以允许编程和擦除操作以可配置的并行执行的存储块202。例如,对于擦除操作,存储块202被配置以允许擦除操作在整个块或仅在存储块202的一个子集上执行。存储块202用虚线显示子集225、227分别包括存储块202中的一半的存储单元,以及子集217、219、221、223分别包括存储块202中的四分之一的存储单元。在各个实施方案中,使用含有其它数量的存储单元的其它子集。
[0027]作为一个例子,NVM模块可以被配置以在选择的存储块(例如,图2的存储块202)中启动擦除操作作为所有存储单元上的批量程序。如果由温度传感器209测量的温度大于在擦除操作的选择点的预定容许值,存储单元的第一子集(例如,图2的子集225或子集221)可以被选择用于进一步擦除。在各种情况下,擦除操作的这种细分将减小电荷泵的负载,并且使电荷泵输出预计的P阱电压。在第一子集的擦除程序完成之后,擦除程序可在存储单元的第二子集上执行(例如,图2的子集227或子集223)。
[0028] 在另一个例子中,编程程序在选择的存储块中的存储单元组上执行,例如18个存储单元的组。如果由温度传感器209测量的温度不低于在编程操作的选择点的预定值,存储单元的子组(例如,9、6或3个存储单元)可以被选择用于进一步编程。这将减小电荷泵的负载,并且使电荷泵输出预计的漏极电压。在第一子组的程序完成之后,编程程序可在其它子组上执行。
[0029]存储阵列201中的存储单元可以根据多个结构中的任何一个被实施,例如半导体结构、层状硅-金属纳米晶体等等。在一个实施方案中,每个存储单元在硅衬底等等上被执行。在另一个实施方案中,每个存储单元与带有η阱的P衬底隔离开。在各种实施例中,一对η+类型掺杂区域(未示出)形成于形成每个存储单元的漏极和源极端子的P阱内。每个存储单元还可以包括堆叠的栅极结构等等,包括形成于P阱上的氧化层(未示出)、位于所述氧化层上的浮置栅极(未示出)、位于所述浮置栅极上的介电层(未示出)以及位于所述介电层上形成栅极端子的控制栅极(未示出)。在一些实施例中,P阱通常耦合于接地电压Vss,以及N讲通常I禹合于电源电压Vdd,除了在正如本发明所描述的Fowler-Nordheim (FN)擦除脉冲期间。Vdd的电压电平取决于特定实施方案。在一个实施例中,VDD是大约3.3伏(V)。
[0030]在各个实施方案中,当电压脉冲在正如本发明进一步描述的擦除和编程操作期间被应用于存储单元(例如,存储块202中的单元)时,存储单元的P阱和N阱耦合于或以其它方式被驱动以共同接收斜坡脉冲电压。
[0031]在各个实施方案中,“擦除脉冲”通过将存储单元的栅极端子驱动到选择的擦除脉冲电压,以及通过将一连串擦除斜坡脉冲应用于存储单元的P阱和N阱而被应用于存储单元。应用于P阱和N阱的擦除斜坡脉冲电压的大小递增地增加或以其它方式通过应用于存储单元的擦除脉冲而斜坡到更高,直到每个单元都被擦除。因此,应用于存储单元的每个擦除脉冲包括应用于栅极端子的擦除脉冲电压和应用于存储单元中的至少一个阱的擦除斜坡脉冲电压。
[0032]在各个实施方案中,“编程脉冲”通过将存储单元的栅极端子驱动到选择的编程栅极电压,以及通过存储单元的漏极端子驱动到选择的编程漏极电压而被应用于一组存储单元。编程脉冲被应用于存储单元组,直到组中的每个存储单元都被编程。该编程对存储块中的其它存储单元可以重复进行,直到整个存储块都被编程。
[0033]在本发明所描述的NVM技术的各个例子中,擦除斜坡脉冲电压被应用于存储单元的P阱和η阱,而栅极端子接收有相对固定大小的擦除脉冲电压。在替代实施方案中,例如那些使用其它NVM技术等等的实施方案中,擦除斜坡脉冲电压反而被应用于不同的连接或存储单元被擦除的端子,例如栅极端子等等。
[0034]同样,在本发明所描述的NVM技术的各个例子中,编程脉冲电压被应用于存储单元的栅极,而漏极端子接收有相对固定大小的不同的编程脉冲电压。在其它例子中,例如那些使用其它NVM技术等等的例子中,编程电压反而被应用于不同的连接或存储单元被编程的端子。
[0035]图3是显示擦除操作300的一个例子的流程图。擦除操作300例如可被用于擦除一组NVM位,例如图2的NVM阵列201中的存储块202中的数据。这种擦除操作的一个例子包括三个程序。擦除操作从开始301进行到预编程程序305、擦除程序310以及软编程程序315。如果所有三个程序305、310、315都成功地完成,擦除操作通过399。如果三个程序305,310,315有任何不成功,擦除操作被认为是不合格失败395。
[0036]在NVM的擦除操作期间,预编程程序可被执行以将存储块的存储单元的阈值电压提高到在编程验证电压电平或高于编程验证电压电平的电平。预编程程序可后跟有Fowler-Nordheim (FN)擦除程序以将存储块的存储单元的阈值电压降低到在擦除验证电压电平或低于擦除验证电压电平的电平。然而,所生成的分布可能包括已被过度擦除的存储单元,这可能增加列泄漏。随着存储单元被进一步缩放,列泄漏的问题也增加,从而导致,例如,由于降低的漏极偏压而导致后续程序操作失败,或由于过度擦除的存储单元可能防止读出放大器在擦除单元和编程单元之间进行区分而导致读程序失败。软编程程序可在FN擦除程序之后被用于压缩擦除单元阈值电压的分布以减少列泄漏。
[0037]图4是显示擦除操作的预编程程序400的一个例子的流程图。预编程程序400可以被用作图3的擦除操作300的预编程程序305的实施方案。预编程在存储块中的多个先前不在编程状态的位上被执行,因此所有位都被预调节到相同的阈值电压(Vt)状态。在开始401之后,预编程进入到行为405,其中将当前地址,包括当前行和列地址,初始化到存储块(例如,存储块202)的第一地址。当前地址可以通过使用标记,例如计数器、指针、寄存器或其它指示符被存储。
[0038]在行为410,对存储块中的当前地址执行验证。该验证410是确认存储单元是否被编程以及是否在NVM PGM状态有适当的阈值电压的程序(PGM)验证测试。
[0039]编程和验证可在各单独存储单元或存储单元的子集上执行(按位编程、按位验证)。编程和验证通常在每个页面的基础上被执行,其中每个页面都包括选定数量的存储单元或位,例如8、32、64、128、192、256或512个位等等。在各个实施方案中,页面上的单元在逻辑上是相邻的(例如,有一组连续的地址),但由于物理不规则性,也可在衬底上是非相邻的几何位置。在各个实施方案中,每次,预编程脉冲被应用于多个存储单元或位,例如一组与当前地址相关联的多达18个位。(在预编程程序的各个实施方案中,组的大小可以基于测量温度而发生变化。)
[0040]在预编程验证测试的一个例子中,当前组中的存储单元的阈值电压(Vt)大小与最小所需程序验证阈值(PVT)电压进行比较。如果当前组中的任何存储单元的Vt大小低于PVT电压,例如低于6伏,操作进行到行为412。行为412确定最大数量的预编程脉冲是否已被应用于当前组中的任何存储单元。如果最大数量的预编程脉冲尚未得到应用,操作进行到行为414以将下一个编程脉冲应用于存储单元,对它来说,Vt低于PVT。随后,预编程程序400返回到行为410。通过应用附加预编程脉冲,操作在行为410、412和414之间进行循环,直到当前组中的每个存储单元的Vt大小至少是PVT。如果行为412确定最大数量的预编程脉冲已被应用于当前组中的任何存储单元,行为416表示擦除操作(例如,擦除操作300)失败。
[0041]如果程序验证测试在行为410在当前地址通过(例如,正如当前地址所表示的,当前组中的每个存储单元的Vt等于或高于PVT电压),那么行为418确定存储块中的最后地址是否已被编程。如果最后地址没有被编程,行为420将当前地址递增到尚未经历预编程验证测试的下一组存储单元。随后,操作返回到行为410。操作在行为410、418和420 (以及行为412、414,如果需要的话)之间进行循环,直到存储块中的每个存储单元的Vt经历了程序验证410。否则,如果最后地址已被验证,预编程程序400结束499。
[0042]图5是显示擦除操作的擦除程序500的一个例子的流程图。在预编程程序305之后,擦除程序500可以被用作图3的擦除操作300的擦除程序310的一个实施方案。[0043]在初始化行为501期间,擦除程序500被默认为在整个存储块(例如,存储块202)上执行,即,满擦除,而不是仅仅擦除存储块中的存储单元的子集。
[0044]随后,擦除程序500在行为502测量温度。该测量例如可以通过图2的温度传感器209进行。在各个实施方案中,测量的温度是存储块例如存储块202、或包容NVM模块的封装的温度。在其它实施方案中,测量的温度是组件的局部温度,其中该组件易受泄漏的影响,例如电荷泵或NVM模块中的存储位。在其它实施方案中,在行为502,测量的温度是在NVM模块外部测量的温度,例如在电路封装的表面上或表面附近的温度、在容纳NVM模块的发动机舱中的温度、热接近NVM模块的区域的温度或预计至少部分地与NVM模块的温度相关的温度。
[0045]随后,测量的温度在行为503被评估。在图示的例子中,进行关于阈值温度水平,例如150°C的简单测试。在行为504,子集擦除选项被激活。如图5所示,仅当源自行为503的评估表示热温度(例如,大于阈值温度水平)时,子集擦除选项被激活。所述子集擦除选项导致擦除活动基本上在存储块的子集上(例如,一半的子集225或227,或例如四分之一的子集217、219、221或223)同时执行,而不是基本上在存储块的较大部分(例如,整个内存块202)上同时执行。或者,或此外,其它基于温度的和/或非基于温度的标准可被用于激活子集擦除选项。在行为505,擦除程序500继续将当前地址,包括当前行地址和当前列地址,初始化到存储块(例如,存储块202)的第一地址。
[0046]在行为510,对存储块中的当前地址执行验证。该验证510是确认当前组中的存储单元是否满足擦除度量的擦除(ERS)验证测试。如果需要的话,一个或多个存储单元的阈值电压被调整,正如下面讨论的。
[0047]应用擦除脉冲通常是批量(bulk)操作;一个擦除脉冲可以被应用于整个存储块(如果子集擦除选项没有被激活)或存储块的子集(如果该子集擦除选项已被激活)。相反,擦除验证测试通常在每个页面的基础上被执行,其中每个页面都包括选定数量的存储单元或位,例如128个位等等。
[0048]在擦除验证测试的一个例子中,正如当前地址所表示的,当前读页面上的存储单元的Vt大小与最大所需擦除验证阈值(EVT)电压进行比较。EVT电压表示每个存储单元的擦除度量。如果当前读页面上的任何存储单元的Vt大小高于EVT电压,例如高于3.5伏,操作进行到行为512。行为512确定是否最大数量的擦除脉冲已被应用于当前读页面上的任何存储单元。
[0049]如果最大数量的擦除脉冲尚未得到应用,操作进行到行为514以将下一个递增擦除脉冲应用于存储块中的存储单元(如果子集擦除选项没有被激活)或包括当前读页面的存储块的子集(如果该子集擦除选项行为504已被激活)。擦除程序500然后返回行为510。通过应用附加擦除脉冲,操作在行为510、512和514之间进行循环,直到当前读页面上的每个存储单元的Vt大小不超过EVT。如果行为512确定最大数量的擦除脉冲已被应用,行为516表示擦除操作(例如,擦除操作300)失败。
[0050]如果擦除验证测试在行为510在当前地址通过(例如,由当前地址所表示的读页面的每个存储单元的Vt不高于EVT电压),那么行为518确定存储块中的最后地址是否已被擦除验证。如果最后地址没有被擦除验证,行为520将当前地址递增到尚未经历擦除验证测试的下一个读页面。随后,操作返回到行为510。操作在行为510、518和520 (以及行为512、514,如果需要的话)之间进行循环,直到存储块中的每个存储单元的Vt经历了擦除验证。否则,如果最后地址已被擦除验证,擦除程序500结束599。
[0051]基于单一温度阈值评估(行为503),图5中所示的擦除程序500的例子被设定为处理已被划分为两个或更多子集的存储单元块。擦除程序的其它实现可以被配置以进一步将子集划分为子子集。例如,如果测量的温度等于或高于第二阈值(例如,165°C )时,子子集可以被启用。子划分的附加阈值以及附加电平也可以考虑。
[0052]替代,或除了使用温度阈值(例如,行为503),擦除程序可以被配置以基于其它因素使子集并行。在各个实施方案中,子集擦除选项可基于记录的历史测量温度被启用(或从较大的子集切换到较小的子集)。例如,迟滞可以用作用于判定逻辑的一部分以用于细分存储块上的操作,或用于进一步细分操作。在各种情况下,迟滞可以被用于避免在小的温度变化的环境中的不期望的瞬时切换。例如,只要阈值温度(例如,150°C)已被超过达某个时间段阈值(例如0.25秒、0.5秒、1.0秒、5秒、10秒、30秒、2分钟),子集擦除选项可被启用。这种延迟可以帮助确保子集擦除选项仅响应于持续升温而进行。
[0053]响应于温度下降,类似的考虑可被用于返回到整个块的操作。例如,只要测量温度始终小于阈值温度达超过某时间段阈值的时间,子集擦除选项可被禁用(或从较小的子集切换到较大的子集)。或者,或此外,不同的较低温度阈值可被用于禁用子集擦除选项以响应于温度下降。该较低温度阈值可设定为低于用于启用子集擦除的温度阈值几度,例如,
一、二、五度。
[0054]图6是显示擦除操作的软编程程序600的一个例子的流程图。在擦除程序310之后,软编程程序600可以被用作图3的擦除操作300的软编程程序315的一个实施方案。软编程程序600在存储块中的单元上被执行以将期望的电压范围内的过度擦除存储单元的Vt放置在软编程验证电压阈值(SPVT) SPVT和EVT之间。在开始601之后,软编程在行为605将当前地址,包括当前行和列地址初始化到存储块(例如,存储块202)的第一地址。
[0055]在行为610,对存储块中的当前地址执行验证。该验证610是确认存储单元是否有准备用于后续编程的合适的阈值电压的软编程(SFT PGM)验证测试。
[0056]软编程通常在每个页面的基础上被执行,其中每个页面都包括选定数量的存储单元,例如128个单元等等。在各个实施方案中,每次,软编程脉冲被应用于多个存储单元,例如一组与当前地址相关联的多达36个存储单元。(在软编程程序的各个实施方案中,组的大小可以基于测量的温度而发生变化。)
[0057]在软编程验证测试的一个例子中,存储单元的Vt大小被验证以确认它高于最小所需软编程验证阈值(SPVT)电压(例如,2.1V)。在该例子中,当前地址处的每个存储单元的Vt与SPVT电压进行比较。如果任何存储单元的Vt低于SPVT电压,操作进行到行为612。行为612确定最大数量的软编程脉冲是否得到了应用。
[0058]如果最大数量的软编程脉冲尚未得到应用,操作进行到行为614以将软编程脉冲应用于在当前地址没有通过软编程验证读取(从行为610)的存储单元。软编程脉冲通常不象编程脉冲那样强大,例如在栅极有较低偏压电压、较短脉冲持续时间或两者的组合。软编程脉冲有选择的电压电平和持续时间以将Vt增加到高于SPVT,而同时保持低于EVT。随后,软编程程序600返回到行为610。通过应用附加软编程脉冲,操作在行为610、612和614之间进行循环,直到当前组中的每个存储单元的Vt大小高于SPVT电压。如果行为612确定最大数量的软编程脉冲已被应用,行为616表示擦除操作(例如,擦除操作300)失败。
[0059]如果软编程验证测试在行为610在当前地址通过(例如,当前组中的每个存储单元的Vt大于或试等于SPVT电压),那么行为618确定存储块中的最后地址是否已被软编程验证。如果最后地址没有被软编程验证,行为620将当前地址递增到尚未经历软编程验证测试的下一组存储单元。随后,操作返回到行为610。操作在行为610、618和620之间进行循环(以及行为612、614,如果需要的话),直到存储块中的每个存储单元的Vt经历软编程验证。否则,如果最后地址已被软编程验证,软编程程序600结束699。
[0060]图7是显示编程操作700的一个例子的流程图。例如,编程操作700可以被用于编程存储块的至少一部分。在各个实施方案中,编程操作700通常可以由NVM控制器,例如图2的NVM控制器207器执行和控制。
[0061]在初始化行为701期间,编程操作700被默认为在满编程模式执行,而不是在子集编程模式执行,其中减小数量的存储单元在所述子集编程模式被并行编程。例如,每次,满编程可能在多达18个存储单元的组上操作。要被编程的存储单元的子集可以有9、6、3或其它合适数量的存储单元。
[0062]随后,编程操作700在行为702测量温度。该测量例如可以通过图2的温度传感器209进行。随后,温度在行为703被提高。在图示的例子中,进行关于阈值温度水平,例如150°C的简单测试。(正如上述所讨论的,其它因素,例如温度历史可被用于行为703的评估中。)在行为704,子集编程选项被激活。如图7所示,仅当源自行为5703的评估表示热温度(例如,大于阈值温度水平)时,子集编程选项被激活。所述子集编程选项导致编程脉冲基本上在减小数量的存储块上同时执行(例如,将被编程的存储单元的子集每次可以是9、6、3个位的组),而不是基本上在满数量的存储单元(例如,18个位的组)上同时执行。或者,或此外,其它基于温度的和/或非基于温度的标准可被用于激活子集编程选项。在行为705,通过将在用于将被编程的存储单元组的地址中的第一存储单元地址设定为当前地址,编程操作700继续。所述当前地址被提供给控制单元(图2的控制器213、215)。行为705还提供将被写入当前存储单元组的数据。
[0063]在行为710,对存储块中的当前单元组执行验证。该验证710是确认存储单元满足符合编程度量的程序验证测试。
[0064]在程序验证测试的一个例子中,当前地址处的每个存储单元的Vt大小与最小编程验证阈值(PVT)电压进行比较。PVT电压表示用于存储单元的编程度量。如果当前组中的任何存储单元的Vt大小低于PVT电压,操作进行到行为712。行为712确定最大数量的编程脉冲是否已被应用于当前组中的任何存储单元。
[0065]如果最大数量的编程脉冲尚未得到应用,操作进行到行为714以将下一个编程脉冲应用于当前组中的存储单元。随后,编程操作700返回到行为710。通过应用附加编程脉冲,操作在行为710、712和714之间进行循环,直到当前组中的每个存储单元的Vt大小等于或高于PVT电压。如果行为712确定最大数量的编程脉冲已被应用,行为716表示编程操作700失败。
[0066]如果编程验证测试在行为710在当前地址通过(例如,当前组中的每个存储单元的Vt等于或高于PVT电压),那么行为718确定(将被编程的地址之中的)最后地址已被编程。如果最后地址没有被编程,操作返回到行为705。操作在行为705、710和718 (以及行为712、714,如果需要的话)之间进行循环,直到编程完成。否则,如果最后地址已被编程,操作700通过799。
[0067]图7中所示的编程操作700的例子被设定为处理在满编程模式和子集编程模式(带有两个或多个子集)之间的切换。该切换基于温度标准(单一温度阈值)。编程操作700可被配置以通过检验大量温度标准和使用附加子集编程标识来处理多个子集编程模式(带有存储单元的更小子集)。
[0068]应了解,关于擦除程序500和编程操作700 (图5和图7)所讨论的子集并行在预编程(例如,图4的预编程程序400)和/或软编程(图6的软编程程序600)方面适合于基于温度的子集操作。
[0069]图8是显示非易失性存储器800中的存储块801和NVM控制器807的一个例子的方框图。在各个实施方案中,图2的存储器103可以使用体系结构,例如存储器800的体系结构以提供部分或满擦除能力和/或部分或满编程能力。存储块801被示为包括两个NVM部分802a和802b,这些部分中的每一个都包括存储块801中的一部分存储单元。在各个实施方案中,非易失性存储器800被配置,以便擦除程序在低温条件下以及随后在高温度条件下被基本上同时地应用于NVM部分802a和802b。
[0070]在各个实施方案中,存储块802a、802b可以对应于图2的子集225、227,每个都是存储块801的一半。字线(WL)驱动器820耦合于NVM部分802a、802b之间。第一 P阱电源开关804耦合于NVM控制器807和第一 NVM部分802a之间。第二 P阱电源开关808耦合于NVM控制器807和第二 NVM部分802b之间。字线电源开关806耦合于字线驱动器820和NVM控制器807之间。第一读出放大器810耦合于NVM控制器807和第一 NVM部分802a之间。第二读出放大器812耦合于NVM控制器807和第二 NVM部分802b之间。读出放大器810、812被配置以给NVM控制器807提供关于NVM部分802a、802b的测量结果。NVM控制器807被配置以使用源自读出放大器的测量结果来监测NVM部分(例如,以确定电荷泵电压、阈值电压或其它特性或它们的组合)。NVM控制器807还接收温度信号850,并且耦合于局部存储器860以存储控制数据。在各个实施方案中,NVM控制器807被配置以在低温过程使P阱电源开关804和808同时接合,以及在高温过程非同时接合。
[0071]在各个实施方案中,温度信号850是由局部测量装置,例如图2的温度传感器209生成的。在其它实施方案中,温度信号850是从单独的组件或从片外源接收的。
[0072]在一些实施方案中,局部存储器860被合并到NVM控制器807中。在各个实施方案中,局部存储器860是片外存储器。局部存储器860例如可以用于存储最新温度历史数据以进行迟滞评估、固定温度阈值设定值、可编程温度设定值、或其它数据或它们的组合。例如,阈值温度以及其它温度响应标准可被存储在局部存储器860中并随时间调整。
[0073]局部存储器860可以被用于存储数据以进行简单基于阈值的切换程序、基于迟滞的切换程序、或被NVM控制器用于管理存储块801的并行性的其它切换程序。温度值(例如,存储在局部存储器860中的)可规定为摄氏度、华氏度或其它单位,例如,可以直接或间接地用于与温度信号(例如,信号850)进行比较的电压值或数字值。
[0074]在各个实施方案中,NVM控制器807被配置以操作P阱电源开关804、808和字线电源开关806以控制擦除/编程信号是否被提供给相应的NVM部分802a、802b。P阱电源开关804、808的操作是由控制电路(例如,图2的擦除并行控制215)控制的。[0075]市售的利用局部擦除能力的微控制器是德克萨斯州奥斯汀市飞思卡尔半导体公司的 Coral 微控制器(Part#:MPC5534)。
[0076]图9根据本发明的一个实施例示出非易失性存储单元901的一个例子的方框图。在各个实施方案中,存储块202 (图2)包括存储单元,例如存储单元901。存储单元901有耦合于P阱的体(B)端子910、源极(S)端子915、栅极(G)端子920以及漏极(D)端子925。
[0077]在一些实施方案中,存储块被组织为行和列存储单元901。在操作期间,体端子910被连接到体偏压电压(VB),以及源极端子915被连接到源极偏压电压(VS)。每一行存储单元的栅极端子920耦合于多个字线950中的相应字线。字线950耦合于行解码器(例如,行解码器203)以给栅极端子920提供栅极偏压电压(VG)。每一列存储单元的漏极端子925耦合于多个位线960中的相应位线。位线耦合于列逻辑(例如,列逻辑205)以提供漏极偏压(VD)。
[0078]在各种实施例中,存储器控制器(例如,NVM控制器207)通过使用从各个电荷泵(例如,电荷泵220)接收的电压来驱动个别电压电平。取决于对存储单元901执行的操作,不同的体、源极、栅极和漏极偏压电压(VB、VS、VG、VD)被应用于个别存储单元901的体端子910、源极端子915、栅极端子920和漏极端子925。编程操作(例如在编程脉冲714期间)或预编程程序(例如在预编程脉冲414期间)的偏压条件的一个例子是使用VB=GND、VS=GND,VG=+8.5V以及VD=+4.2V。擦除程序(例如在擦除脉冲514期间)的偏压条件的一个例子是使用VB=从+4.2V斜坡至+8.5V、VS=浮动(float)、VG=_8.5V以及VD=浮动。软编程程序(例如在软编程脉冲614期间)的偏压条件的一个例子是使用VB=GND、VS=GND、VG=+3.0V以及 VD=+4.2V。
[0079]目前应了解,所公开的系统及方法基于NVM模块中的温度自适应地调整程序并行度和/或擦除并行度。在各个实施方案中,基于温度的并行性可以基于与预设阈值温度的比较。在温度高于阈值温度的情况下,将被并行编程或擦除的位数量被减小,从而当需要时减小对电荷泵的负载。在各种情况下,这个减小的负载会导致成功的操作,因为它可能减小需要在NVM模块中要克服的泄漏。在一些实施方案中,自适应地调整将被并行编程或擦除的存储单元的数量可以使组件在较高温度环境下被使用,而无需性能对于较低温度下被降低。在各个实施方案中,这种能力也可以在组件的使用寿命开始和结束时改进其可靠性。
[0080]阈值温度可以基于有关温度对NVM模块的电荷泵(或其它电压、电流或功率源)的能力的影响的期望而被预定。例如,阈值温度可是这样的一个温度,其中如果低于该温度,电荷泵预计在编程或擦除操作期间可靠地给正常数量的位提供电压。在各个实施方案中,阈值温度是150摄氏度。在其它实施方案中,阈值温度可以有其它值,例如75、100、125、145、149、165、170或175摄氏度。阈值温度可通过计算机模拟、经验观测或它们的组合被确定。
[0081]此外,不止一个阈值温度可以被用于NVM模块的各种实施方案中。在一个例子中,在达到第一阈值温度(例如,14摄氏O度)的操作期间,第一数量的位被并行编程或擦除。在高于第一阈值温度但低于第二阈值温度(例如,150摄氏度)的温度,只有小于第一数量的第二数量的位被并行编程或擦除。在高于第二阈值的较高温度,只有有小于第二数量的第三数量的位被编程或擦除。在较高温度的减小数量的位意味着需要电荷泵提供较少量的电流,并因此可以更可靠地操作,虽然有较高温度。[0082]其它阈值水平或其它功能关系(例如,分段线性、多项式、指数函数、查找表或其它,或它们的组合)可以被用于将被并行编程或擦除的位的数量控制为温度的函数。此外,在各个实施方案中,被并行擦除的位数量可基于与被并行编程的位数量不同的阈值(或其它温度关系)。此外,在各个实施方案中,NVM模块可以在NVM的寿命期间调节其温度依存性。例如,NVM模块可被配置以根据NVM模块的寿命期间的预编程方案来减小阈值温度。在其它例子中,NVM模块可被配置以响应于在NVM模块的寿命期间所执行的自我测试评估而修改其温度依存性。
[0083]在并行确定(例如,行为503、703)的各个实施方案中,判定可以基于附加标准而不是温度测量。例如,并行确定可部分基于性能标准,例如电荷泵能力的评估,或电流泄漏的评估。在NVM控制器807的各个实施方案中,在阈值温度附近的操作期间,基于电压源的强大性能(或弱性能),温度阈值可被认为是不相关(或相关)的。同样,基于电荷泵的强大性能或弱性能,和/或基于低或高检测的泄漏条件,温度阈值可被向上或向下调整并在局部存储器860中被重写。
[0084]在一种方案中,一种通过使用电荷泵的电压在存储阵列的存储单元上执行操作的方法,包括将测量的温度和阈值温度进行比较。如果所述测量的温度高于所述阈值温度,电荷泵上的负载通过给减小数量的存储单元提供所述电压而被减小,其中所述减小数量的存储单元是所述存储单元的第一子集。在另一种方案中,所述操作包括执行编程程序、擦除程序、软编程程序、或预编程程序、或其中的组合。
[0085]在另一种方案中,所述方法包括在所述存储单元的第一子集上完成存储操作以及在所述存储单元的第二子集上开始所述操作。基于测量的温度,在所述第二子集上的所述操作是在所述第一子集上的所述操作完成之后才开始的。
[0086]应了解本发明描述的架构仅仅是示范的,并且事实上使用相同技术的很多其它架构可以被实现。在各个实施方案中,本发明所公开的系统的示例元件是位于单一集成电路上的电路或在相同器件内的电路。或者,系统可能包括任何数量的单独集成电路或彼此相互连接的单独器件。又如,系统或其中的一部分可是物理电路的软或代码表征或可转化成物理电路的逻辑表征。同样,系统可以任何合适类型的硬件描述语言具体化。
[0087]此外,本领域所属技术人员将认识到上述描述的操作功能之间的界限只是说明性的。多个操作的功能可组合成单一的操作,和/或单一的操作功能可分布在附加操作中。而且,替代实施例可能包括特定操作的多个实例,并且操作的顺序在各种其它实施例中会改变。
[0088]例如,一种用于在存储阵列的存储单元上执行存储器操作的方法的一个版本包括接收信号并且给一些数量的存储单元提供电压。所述信号表示测量温度,而所述数量至少部分基于所述测量的温度。在各个实施方案中,操作可以包括通过使用电荷泵将所述存储单元写至第一逻辑状态,所述测量的温度可以表示所述电荷泵上的负载,所述存储单元可以被排列在多个页面中,每个页面有多个存储单元,并且执行所述存储操作包括在所述页面之中的第一页面上执行编程操作。
[0089]而且,在各个实施方案中,所述方法可以包括将所述测量的温度和第一温度阈值进行比较,确定所述测量的温度小于所述第一温度阈值,并且响应于确定所述测量温度小于所述第一温度阈值,通过给一组所述存储单元提供电压来启动所述存储操作。同样,在各个实施方案中,所述方法可以包括确定所述测量温度大于所述第一温度阈值,以及响应于确定所述测量温度大于所述第一温度阈值,通过给所述存储单元组的第一子集提供所述电压,以及在完成给所述存储单元组的所述第一子集提供所述电压之后给所述存储单元组的第二子集提供所述电压来启动第二存储操作。
[0090]在各个实施方案中,执行所述存储操作可以包括编程程序、软编程程序、预编程程序和/或擦除程序。同样,所述方法可以包括循序地擦除各存储单元组,其中每一组存储单元有相同数量的存储单元。而且,执行所述存储操作可以包括在开始所述擦除程序开始之前,预编程所述存储单元,以及在擦除程序完成之后软编程所选择的存储单元。
[0091]一种方法的另一个例子包括确定非易失性存储器(NVM)模块的温度是否满足第一标准,以及给NVM模块中的第一组NVM单元提供电压。只要温度是否满足第一标准,所述电压被提供给第一组NVM单元的同时也被提供给第二组NVM单元。否则,当电压被提供給第一组NVM单元时却被禁止提供给所述第二组NVM单元。
[0092]系统的各种例子包括多个非易失性存储单元、被配置以给存储操作提供电压的电压源、被配置以测量温度的温度传感器;以及控制器。在一些实施方案中,所述控制器被配置以将所述电压源耦合于所述至少部分基于所述温度的存储单元。在所述系统的各个实施方案中,所述电压源可以包括一个或多个电荷泵。而且,所述控制器可以被配置以将所述电压源耦合于所述存储单元组以在所述组上执行到第一逻辑状态的存储操作,所述控制器可以被配置以确定所述温度是否高于阈值;以及所述控制器被配置以基于确定所述温度高于所述阈值为并行写操作仅仅选择所述存储单元的第一子集。在各个实施方案中,所述温度传感器可以被包括在所述控制器内;所述温度传感器可以被配置以测量所述存储单元的操作温度;所述温度传感器被配置以至少部分基于温度阈值将所述电压源耦合于所述存储单元之中的所选择的存储单元。在所述系统的各个实施方案中,所述温度阈值是固定值、可编程值或其中的组合。在各个实施方案中,所述温度阈值设定可以至少部分基于器件泄漏特性。
[0093]系统的各种其它例子包括第一组非易失性存储单元、第二组NVM单元以及耦合于所述第一组和第二组NVM单元的控制电路。所述控制电路被配置以至少部分基于第一温度标准同时给所述第一组和第二组NVM单元提供电源电压。所述控制电路被配置以至少部分基于第二温度标准循序地给所述第一组和第二组NVM单元提供电源电压。在一个实施方案中,所述第一温度标准至少部分基于取决于温度的性能特性,例如测量或计算的泄漏特性。在一个实施方案中,所述第一温度标准是低于第一阈值温度的温度测量结果以及所述第二温度标准是高于第二阈值温度的温度测量结果。在一些版本中,所述第一组NVM单元包括一组被配置以在块操作中同时被擦除和/或被编程的闪存存储单元。在各种配置中,所述系统包括在所述电源和所述第一组NVM单元之间的第一开关以及在所述电源和所述第二组NVM单元之间的第二开关,其中所述控制电路被配置以至少部分基于所述第一温度标准同时关闭所述第一和所述第二开关,以及被配置以至少部分基于所述第二温度标准同时关闭所述第一和所述第二开关。
[0094]虽然本发明公开参考某些优选版本被详细描述,其它版本和变体也是可能的并且在考虑范围之内。本领域所属技术人员应认识到他们可以很容易地将所公开的概念和具体实施例用作设计或修改其它结构的基础以在不脱离附属权利要求所限定的公开精神和范围的情况下实现本发明公开的相同目的。
【权利要求】
1.一种方法,包括: 接收信号,其中所述信号表示测量的温度;以及 在存储单元组上执行存储操作,其中所述存储单元组中存储单元的数量至少部分基于所述测量的温度。
2.根据权利要求1所述的方法,包括: 给所述存储单元组的端子提供电压。
3.根据权利要求1所述的方法,其中执行所述存储操作包括使用电荷泵的电压将所述存储单元写至第一逻辑状态。
4.根据权利要求3所述的方法,其中所述测量的温度表示一个或多个所述存储单元的温度。
5.根据权利要求1所述的方法,其中所述存储单元被排列在多个页面中,每个页面具有多个存储单元,并且执行所述存储操作包括在所述页面中的第一页面上执行编程操作。
6.根据权利要求1所述的方法,包括: 将所述测量的温度和第一温度阈值进行比较。
7.根据权利要求6所述的方法,包括: 确定所述测量的温度小于所述第一温度阈值;以及 响应于确定所述测量的温度小于所述第一温度阈值,通过给所述存储单元的一个集提供电压来启动所述存储操作。
8.根据权利要求7所述的方法,包括: 确定所述测量的温度大于所述第一温度阈值;以及 响应于确定所述测量的温度大于所述第一温度阈值,通过 给所述存储单元的集的第一子集提供所述电压,以及 在完成给所述存储单元的集的所述第一子集提供所述电压之后,给所述存储单元的集的第二子集提供所述电压来启动第二存储操作。
9.根据权利要求1所述的方法,其中执行所述存储操作包括在所述存储单元组上执行读操作。
10.根据权利要求1所述的方法,其中执行所述存储操作包括在所述存储单元组上执行写操作。
11.根据权利要求10所述的方法,其中执行所述存储操作包括在所述存储单元组上执行编程操作。
12.根据权利要求10所述的方法,其中执行所述存储操作包括在所述存储单元组上执行擦除操作。
13.根据权利要求10所述的方法,包括: 循序地擦除所述存储单元组,其中所述存储单元组中的每一组有相同数量的存储单J Li ο
14.一种系统,包括: 多个非易失性存储单元; 被配置以给存储操作提供电压的电压源; 被配置以测量温度的温度传感器;以及耦合于所述存储单元、所述电压源和所述温度传感器的控制器,其中所述控制器被配置以: 在所述存储单元中的一个存储单元组上执行存储操作,其中所述存储单元组中存储单元的数量至少部分地基于所述温度。
15.根据权利要求14所述的系统,其中所述电压源包括一个或多个被配置以给所述存储单元的端子提供所述电压的电荷泵,并且所述温度表示至少一个所述电荷泵的温度。
16.根据权利要求14所述的系统,其中所述电压源包括一个或多个电荷泵,被配置以将所述电压提供给: 所述存储单元的阱;或 所述存储单元的栅极。
17.根据权利要求14所述的系统,其中: 所述控制器被配置以将所述电压源耦合于所述存储单元组,以在所述存储单元组上执行到第一逻辑状态的写操作; 所述控制器被配置以确定所述温度是否高于阈值;以及 所述控制器被 配置以基于确定所述温度高于所述阈值而为并行写操作仅仅选择所述存储单元的第一子集。
18.根据权利要求14所述的系统,其中所述控制器被配置以: 至少部分地基于所述温度,选择所述存储单元组;以及 将所述电压源耦合于所述存储单元组。
19.根据权利要求14所述的系统,其中所述温度传感器被配置以测量所述存储单元的操作温度。
20.根据权利要求14所述的系统,其中所述控制器被配置以将所述电压源耦合于在所述存储单元之中的所选择的存储单元,所述耦合至少部分地基于: 至少一个温度阈值设定,其中所述温度阈值设定是存储在所述控制器中的可编程值。
【文档编号】G11C7/04GK104036811SQ201410060883
【公开日】2014年9月10日 申请日期:2014年2月24日 优先权日:2013年3月6日
【发明者】R·K·埃谷奇, J·S·朝伊, 何晨, K·K·泰勒 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1