用于对存储器系统进行编程的方法与流程

文档序号:17851010发布日期:2019-06-11 22:12阅读:303来源:国知局
用于对存储器系统进行编程的方法与流程

本发明涉及一种用于对存储器系统进行编程的方法,更具体而言,涉及一种对具有多电平单元的存储器系统进行编程的方法。



背景技术:

在对固态驱动器(ssd)存储单元进行编程时,尤其对于nand闪存的多电平单元而言,常常采用增量步进脉冲编程。增量步进脉冲编程能够利用递增电压脉冲向电荷存储元件,例如电子捕获层或存储元件中注入电子。如果存储单元被成功编程,则存储单元的阈值电压将被提升到比预定值更高。不过,如果存储器尚未被完全编程,则存储单元的阈值电压将仍然比该预定值更低,并且将利用递增的电压脉冲再次对存储单元编程。

由于在制造过程期间导致的不可控的变化,存储单元中的一些更易于被编程,而存储单元中的一些更难以被编程,且需要更多的编程操作时间。因此,更难以被编程的存储单元将成为总体编程过程的瓶颈并且将减慢总体编程过程。



技术实现要素:

本发明的一个实施例公开了一种用于对存储器系统进行编程的方法。该存储器系统包括多个存储单元,并且每个存储单元包括具有第一端子和控制端子的存储元件。

该方法包括:向多个存储单元的存储元件的控制端子施加第一编程电压,并且在多个存储单元的第一编程操作期间向多个存储单元的存储元件的第一端子施加基本参考电压,通过对存储元件的阈值电压与中间电压进行比较来执行组验证,执行第一编程测试以检查所述存储元件的阈值电压是否大于第一编程阈值电压;以及根据组验证的结果和第一编程测试的结果执行第二编程操作。所述中间电压小于所述第一编程阈值电压。

在阅读各附图所示的优选实施例的以下详细描述之后,本发明的这些和其他目的对于本领域技术人员来说将毫无疑问变得显而易见。

附图说明

图1示出了根据本发明一个实施例的存储器系统。

图2示出了根据本发明一个实施例在编程操作之后的存储单元的阈值电压分布。

图3示出了根据本发明一个实施例用于对图1中的存储器系统进行编程的方法的流程图。

图4示出了在图3的方法的编程操作中使用的电压。

图5示出了根据本发明一个实施例,将在不同编程操作之后测试的编程阈值电压的表格。

图6示出了根据现有技术,将在不同编程操作之后测试的编程阈值电压的表格。

具体实施方式

图1示出了根据本发明一个实施例的存储器系统100。该存储器系统100包括多个存储单元mc1到mcn。在一些实施例中,存储器系统100可以是nand型闪存存储器,存储单元mc1到mcn可以是包括四电平单元(qlc)和三电平单元(tlc)的多电平单元(mlc)。亦即,存储单元mc1到mcn中的每个都可以存储多个比特状态的数据。

在图1中,存储单元mc1到mcn可以耦合到同一字线wl,并且可以作为一页被同时操作。尽管图1为了解释简要而仅示出了一页存储单元,但在其他实施例中,存储器系统100还可以包括更多页存储单元。存储单元mc1到mcn可以具有相同的结构,并且可以利用相同的原理进行操作。例如,存储单元mc1可以包括存储元件ft。存储元件ft可以是由闪存存储器采用的浮栅晶体管或电子捕获单元。在图1中,存储元件ft可以具有第一端子和控制端子。

存储元件ft的第一端子可以是存储元件ft的源极端子或漏极端子,存储元件ft的控制端子可以是存储元件ft的浮栅或电子捕获结构。在一些实施例中,存储元件ft的第二端子可以是浮置的或耦合到存储元件ft的第一端子。

在存储单元mc1的编程操作期间,存储单元mc1的存储元件ft的控制端子可以接收编程电压,存储单元mc1的存储元件ft的第一端子可以接收基本参考电压。在这种情况下,存储元件ft的控制端子下方的沟道将通过存储元件ft的第一端子被耦合到所述基本参考电压,存储单元mc1的存储元件ft的控制端子和沟道之间的高跨越电压将导致电子被注入存储元件ft的栅极结构,增大了存储元件ft的阈值电压。

通过向存储元件ft的栅极结构注入足够的电子,存储元件ft的阈值电压将被提升到期望电平。因此,可以根据存储单元mc1的存储元件ft的阈值电压的电平来识别存储单元mc1中存储的数据的状态。

不过,由于制造过程期间造成的不可控变化,存储单元中的一些可能比其他单元更易于被编程,并且需要更少的编程操作时间。图2示出了根据本发明一个实施例在编程操作之后的存储单元mc1到mcn的阈值电压分布。在图2中,在执行编程操作之后,存储单元mc1到mcn的阈值电压可以从vt1变为vt2。

例如,在编程操作之后,图2中标记为组1的存储单元可以让其阈值电压变得大于中间电压vtm。而且,图2中标记为组2的存储单元可以让其阈值电压保持为低于中间电压vtm。亦即,组1中的存储单元可以被识别为更易于被编程的存储单元,因为可以通过编程操作更显著地提升它们的阈值电压。此外,在组1中,有一些存储单元的阈值电压大于第一编程阈值电压vtp1,这是用于指示存储单元是否已经被编程的目标阈值电压。亦即,可以仅通过一次编程操作就对这些存储单元成功编程。相反,组2的存储单元可以被识别为更难以被编程的存储单元,因为它们的阈值电压变化相对更小。

为了以更好的效率对更难以被编程的那些存储单元进行编程,存储器系统100可以在存储元件ft的控制端子和第一端子之间施加更高的跨越电压。

图3示出了根据本发明一个实施例用于对存储器系统100进行编程的方法300的流程图。图4示出了在方法300的编程操作中使用的电压。方法300包括步骤s310到s390,但不限于图3中所示的顺序。

s310:向多个存储单元mc1到mcn的存储元件ft的控制端子施加第一编程电压vp1;

s312:向多个存储单元mc1到mcn的存储元件ft的第一端子施加基本参考电压vb0;

s320:通过对存储元件ft的阈值电压与中间电压vtm进行比较来执行组验证;

s330:执行第一编程测试,以检查存储元件ft的阈值电压是否大于第一编程阈值电压vtp1;

s340:根据组验证的结果和第一编程测试的结果,执行第二编程操作;

s350:在执行第二编程操作之后,执行第二编程测试,以检查存储元件ft的阈值电压是否大于第一编程阈值电压vtp1;

s360:根据组验证的结果和第二编程测试的结果,执行第三编程操作;

s370:在执行第三编程操作之后,执行第三编程测试,以检查存储元件ft的阈值电压是否大于第二编程阈值电压;

s380:根据组验证的结果和第三编程测试的结果,执行第四编程操作。

在一些实施例中,可以在多个存储单元mc1到mcn的第一编程操作期间执行步骤s310和s312,以向存储单元mc1到mcn中的存储元件ft的栅极结构注入电子,并提升待编程的存储单元mc1到mcn中存储元件ft的阈值电压。

例如,在图4中,通过向存储单元mc1到mcn的存储元件ft的控制端子施加第一编程电压vp1,并向存储单元mc1到mcn的存储元件ft的第一端子施加基本参考电压vb0,可以利用步骤s310和s312对存储单元mc1到mcn进行编程。

在第一编程操作之后,存储器系统100可以执行组验证,以判断哪些存储单元更易于被编程,哪些存储单元更难以被编程。在步骤s320中,通过比较存储元件ft的阈值电压与中间电压vtm,可以执行组验证。

而且,为了检查存储单元是否已经被成功编程,可以在步骤s330中执行第一编程测试,以检查存储元件ft的阈值电压是否大于第一编程阈值电压vtp1。第一编程阈值电压vtp1可以是用于指示存储单元已经被编程为具有第一数据状态的目标阈值电压。

例如,但不作为限制,存储单元mc1到mcn能够存储四种不同的数据状态,表示为“11”、“10”、“01”和“00”。在这种情况下,如果存储单元mc1的阈值电压小于第一编程阈值电压vtp1,那么存储单元mc1可以被视为未被编程,并且存储单元mc1中存储的数据状态可以表示为“11”。不过,如果存储单元mc1的阈值电压大于第一编程阈值电压vtp1,那么存储单元mc1可以被视为被编程,并且存储单元mc1中存储的数据状态可以表示为“10”。而且,如果存储单元mc1保持被编程为使其阈值电压大于第二编程阈值电压,该第二编程阈值电压大于第一编程阈值电压vtp1,那么存储单元mc1将被视为被编程为具有表示“01”的数据状态。类似地,如果存储单元mc1保持被编程为使其阈值电压大于第三编程阈值电压,该第三编程阈值电压大于第二编程阈值电压,那么存储单元mc1将被视为被编程为具有表示“00”的数据状态。不过,在一些其他实施例中,存储单元mc1到mcn可能能够存储更多的数据状态,根据应用需要,该数据状态可以由具有不同量级的阈值电压表示。

此外,在一些实施例中,由于使用中间电压vtm验证存储单元mc1到mcn的编程趋势,中间电压vtm可以比第一编程阈值电压vtp1更小。例如,在存储单元mc1到mcn的阈值电压如图2所示具有相当对称分布的情况下,中间电压vtm可以是阈值电压vt1和vt2之间的中心值。

在组验证和第一编程测试之后,可以根据组验证的结果和第一编程测试的结果,执行第二编程操作。亦即,存储器系统100可以在步骤s340中根据其编程趋势,利用不同的跨越电压对存储单元mc1到mcn进行编程。

例如,如果在组验证期间判定存储单元mc1的阈值电压大于中间电压vtm,但在第一编程测试期间判定其小于第一编程阈值电压vtp1,这可能暗示存储单元mc1属于组1,表示存储单元mc1更易于被编程,存储单元mc1尚未被成功编程。如果在组验证期间判定存储单元mc2的阈值电压小于中间电压vtm,这可能暗示存储单元mc2属于组2,表示存储单元mc2更难以被编程,并且存储单元mc2尚未被成功编程。

在这种情况下,存储器系统100可以在存储单元mc1的存储元件的控制端子和第一端子之间施加第一跨越电压,并在存储单元mc2的存储元件的控制端子和第一端子之间施加第二跨越电压。由于存储单元mc2更难以被编程,所以第二跨越电压可以比第一跨越电压更大。亦即,在第二编程操作期间,可以利用更高跨越电压对存储单元mc2进行编程,使得存储单元mc2的阈值电压可以改变得更快且更显著。

在图4中,可以利用字线驱动器120向存储单元mc1的存储元件ft的控制端子施加第二编程电压vp2,并利用电压控制器1101向存储单元mc1的存储元件ft的第一端子施加增强参考电压ve0,从而提供存储单元mc1的存储元件ft的控制端子和第一端子之间的第一跨越电压vc1。在本实施例中,第二编程电压vp2可以大于第一编程电压vp1,以遵循增量步进脉冲编程的原理并改善编程效率。

而且,可以利用字线驱动器120向存储单元mc2的存储元件ft的控制端子施加第二编程电压vp2,并利用电压控制器1102向存储单元mc2的存储元件ft的第一端子施加基本参考电压vb0,从而提供存储单元mc1的存储元件ft的控制端子和第一端子之间的第二跨越电压vc2。由于存储单元mc1和mc2的存储元件ft的控制端子将接收相同的第二编程电压vp2,而增强参考电压ve0能够大于基本参考电压vb0,所以第二跨越电压vc2将大于第一跨越电压vc1。

在一些实施例中,如果存储单元已利用步骤s310和s312在第一编程操作期间被成功编程,则在步骤s340中在第二编程操作期间可以禁止被编程的存储单元。例如,在判定存储单元mc3的阈值电压在第一编程测试期间大于第一编程阈值电压vtp1时,可能暗示存储单元mc3已经在当前电平下被成功编程。在这种情况下,在第二编程操作期间,存储器系统100可以利用字线驱动器120向存储单元mc3的存储元件ft的控制端子施加第二编程电压vp2,并利用电压控制器1103向存储单元mc3的存储元件ft的第一端子施加禁止参考电压vi0。在这种情况下,禁止参考电压vi0可以大于增强参考电压ve0,因此存储单元mc3的存储元件ft的控制端子和第一端子之间的第三跨越电压vc3将相当小。因此,在第二编程操作期间将不会有电子被注入存储单元mc3的存储元件ft中,存储单元mc3在步骤s340中将能够被禁止。在一些实施例中,可以使用类似方式禁止并未打算在第一编程操作和后续编程操作期间被编程的那些存储单元。

而且,在本发明的一些实施例中,第一编程测试可以进一步判断存储单元是否几乎被成功编程,并可以在第二编程操作期间利用较小的跨越电压对几乎被成功编程的存储单元进行编程,防止了存储单元被过度编程,并有助于使存储单元的阈值电压分布集中。

例如,如果在组验证期间判定存储单元mc4的阈值电压大于中间电压vtm,并在第一编程测试期间判定其稍小于第一编程阈值电压vtp1,那么可以判定存储单元mc4几乎被成功编程。在这种情况下,存储器系统100可以在第二编程操作期间利用字线驱动器120向存储单元mc4的存储元件ft的控制端子施加第二编程电压vp2,并利用电压控制器1104向存储单元mc4的存储元件ft的第一端子施加第一中间参考电压vb1。由于如图4所示,第一中间参考电压vb1可以大于增强参考电压ve0,所以可以在步骤s340中在第二编程操作期间利用更小的跨越电压对存储单元mc4进行编程。不过,由于第一中间参考电压vb1可以小于禁止参考电压vi0,所以仍然可以向存储单元mc4的存储元件ft注入电子而不加以禁止。

类似地,如果判定存储单元mc5的阈值电压在组验证期间小于中间电压vtm,并判定其在第一编程测试期间稍小于第一编程阈值电压vtp1,那么存储器系统100可以在第二编程操作期间,利用字线驱动器120向存储单元mc5的存储元件ft的控制端子施加第二编程电压vp2,并利用电压控制器1105向存储单元mc5的存储元件ft的第一端子施加第二中间参考电压vb2。在这种情况下,由于第二中间参考电压vb2可以大于基本参考电压vb0并且可以小于增强参考电压ve0,所以可以在步骤s340中在第二编程操作期间利用更小的跨越电压对存储单元mc5进行编程。此外,由于存储单元mc5属于组2,并根据组验证被判定比存储单元mc4更难以被编程,所以第二中间参考电压vb2可以小于第一中间参考电压vb1,因此可以利用大于存储单元mc4的跨越电压对存储单元mc5进行编程。

在前述实施例中,为了在第二编程操作期间施加不同的跨越电压以在不同条件下对存储单元进行编程,存储单元mc1到mc5可以从其存储元件ft的控制端子接收相同的编程电压,并可以从其存储元件ft的第一端子接收不同的参考电压。在这种情况下,存储单元mc1到mcn可以被耦合到同一字线wl,并且可以作为一页被同时操作。在图1所示的一些实施例中,存储器系统100还可以包括耦合到字线wl的字线驱动器120,以用于通过字线wl向存储元件ft的控制端子施加编程电压。

通过电压控制器向存储元件ft的第一端子,而不是通过字线向存储元件ft的控制端子提供不同电压的另一个原因在于,编程电压vp1和vp2通常是由电荷泵产生的高电压,可能需要更多电荷泵电路提供不同电平的编程电压。在图1中,存储器系统100还可以包括n个电压控制器1101到110n,分别用于向存储单元mc1到mcn的存储元件ft的第一端子提供参考电压。根据存储单元mc1到mcn的条件,电压控制器1101到110n可以提供不同的参考电压,包括基本参考电压vb0、增强参考电压ve0、禁止参考电压vi0、第一中间参考电压vb1和第二中间参考电压vb2。不过,在本发明的一些其他实施例中,根据系统要求,可以由其他不同结构提供跨越电压。

此外,在步骤s340中的第二编程操作之后,可以在步骤s350中执行第二编程测试,以检查存储元件ft的阈值电压是否大于第一编程阈值电压vtp1。因此,根据组验证的结果和第二编程测试的结果,将在步骤s360中执行第三编程操作。

在第三编程操作期间,在步骤s320中产生的组验证的结果将仍用于确定用于编程操作的跨越电压。例如,如果判定存储单元mc6的阈值电压在组验证期间大于中间电压vtm且判定其在第二编程测试期间小于第一编程阈值电压vtp1,且判定存储单元mc7的阈值电压在组验证期间小于中间电压vtm并在第二编程测试期间小于第一编程阈值电压vtp1,那么存储器系统100能够在存储单元mc6的存储元件ft的控制端子和第一端子之间施加第三跨越电压,该第三跨越电压小于在存储单元mc7的存储元件ft的控制端子和第一端子之间施加的第四跨越电压。亦即,将利用比存储单元mc6更大的跨越电压对存储单元mc7进行编程,使得存储单元mc7可以更快地提升其阈值电压并且跟上存储单元mc6的进度。

在一些实施例中,可以通过向存储单元mc6的存储元件ft的控制端子施加第三编程电压vp3,并向存储单元mc6的存储元件ft的第一端子施加增强参考电压ve0,从而施加第三跨越电压。而且,第三编程电压vp3可以大于第二编程电压vp2以实现增量步进脉冲编程。

类似地,可以通过向存储单元mc7的存储元件ft的控制端子施加第三编程电压vp3,并向存储单元mc7的存储元件ft的第一端子施加基本参考电压vb0,从而施加第四跨越电压。

此外,可以通过向存储元件ft的第一端子施加禁止参考电压vi0,禁止在步骤s350中判定在第二编程测试期间被成功编程的存储单元。

在一些实施例中,通过利用更高的跨越电压对更难以被编程的存储单元进行编程并且利用更低的跨越电压对更易于被编程的存储单元进行编程,可以使存储单元mc1到mcn的阈值电压的分布更加集中,并可以改善编程效率。因此,在步骤s360中的第三编程操作之后,打算利用数据“01”进行编程的一些存储单元(亦即,要被编程为使其阈值电压大于第二编程阈值电压但小于第三编程阈值电压)可能已经被编程为具有大于第二编程阈值电压,亦即,下一目标编程阈值电压的阈值电压。在这种情况下,可以执行第三编程测试,以针对要在执行第三编程操作之后在步骤s370中利用数据“01”编程的那些存储单元,检查存储元件ft的阈值电压是否大于第二编程阈值电压。而且,根据组验证的结果和步骤s380中第三编程测试的结果,将执行第四编程操作。

例如,打算利用数据“01”对存储单元mc8和mc9进行编程。如果判定存储单元mc8的阈值电压在组验证期间大于中间电压vtm且判定其在第三编程测试期间小于第二编程阈值电压,且判定存储单元mc9的阈值电压在组验证期间小于中间电压vtm并在第三编程测试期间小于第二编程阈值电压,那么存储器系统100能够在存储单元mc8的存储元件ft的控制端子和第一端子之间施加第五跨越电压,该第五跨越电压小于在存储单元mc9的存储元件的控制端子和第一端子之间施加的第六跨越电压。

亦即,将利用比存储单元mc8更大的跨越电压对存储单元mc9进行编程,因此存储单元mc9可以更快地提升其阈值电压并且跟上存储单元mc8的进度。

在一些实施例中,可以通过向存储单元mc8的存储元件ft的控制端子施加第四编程电压vp4,并向存储单元mc8的存储元件ft的第一端子施加增强参考电压ve0,从而施加第五跨越电压。而且,第四编程电压vp4可以大于第三编程电压vp3以实现增量步进脉冲编程。

类似地,可以通过向存储单元mc9的存储元件ft的控制端子施加第四编程电压vp4,并向存储单元mc9的存储元件ft的第一端子施加基本参考电压vb0,从而施加第六跨越电压。

在现有技术中,不对更难以被编程的存储单元施加更高的跨越电压,存储单元mc1到mcn可能需要更多次的编程操作以完成编程过程,用于存储期望的数据状态。

图5示出了根据本发明一个实施例,要在不同编程操作之后测试的编程阈值电压vtp1到vtp4的表格,图6示出了根据现有技术,要在不同编程操作之后测试的编程阈值电压vtp1到vtp4的表格。

在图5中,在第三编程操作之后,存储单元mc1到mcn中的几乎全部都可以被编程为具有大于第一编程阈值电压vtp1的阈值电压,从而可以在第三编程操作之后测试第二编程阈值电压vtp2。不过,在现有技术中,不会根据组验证结果施加不同的跨越电压,在所有存储单元的阈值电压变得大于第一编程阈值电压vtp1之前,可能需要超过五次的编程操作。因此,为了完成编程过程,以用于存储四种不同数据状态,利用方法300操作的存储器系统100可能需要9次编程操作,而现有技术会需要11次编程操作。

此外,由于可以根据编程测试和组验证两者的结果来执行编程操作,所以存储单元mc1到mcn的阈值电压可以比现有技术更集中。亦即,由于将利用更高的跨越电压对更难以被编程的存储单元进行编程,所以可以更快地对这些存储单元进行编程。因此,存储器系统100需要的编程测试的次数将比现有技术更少。例如,在图5中,在每次编程操作之后,有不超过两次的编程测试。

不过,如果利用相同的跨越电压对存储单元进行编程而没有分类,则存储单元的阈值电压将具有更宽的分布,这需要针对每次编程操作的更多编程测试。例如,在第五编程操作之后,在图6中将必须执行三次不同的编程测试。结果,在图5中编程测试总次数为12,而在图6中,编程测试总次数为21。由于更多编程操作和更多的编程测试将消耗更多功率,所以利用方法300,存储器系统100既可以改善编程过程的效率,又可以降低功耗。

总之,本发明的实施例提供的存储器系统和用于对存储器系统进行编程的方法可以根据编程测试和组验证两者的结果执行编程操作;因此,可以利用更高的跨越电压对更难以被编程的存储单元进行编程,以增加编程过程,并可以使存储单元mc1到mcn的阈值电压集中化。因此,可以改善编程过程的效率,并可以显著减少完成编程过程所需的功率。

本领域的技术人员将容易发现,可以对该装置和方法做出多种修改和更改同时保持本发明的教导。因此,应当将以上公开解释为仅受所附权利要求的范围限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1