存储器的读取方法与存储器装置与流程

文档序号:11592391阅读:273来源:国知局

本案是有关于一种存储器的多个存储器单元的一目标字线的读取数据方法及存储器装置,且特别是有关于一种根据干扰状态来调整读取阈值电压的方法及存储器装置。



背景技术:

在半导体存储器中,存储器单元的阈值电压改变可通过改变在存储器单元的储存层内所储存的电荷量而达成。因而,通过储存不同电荷量,存储器单元可储存不同数据。例如,对于单位存储器单元,储存层内没有电荷的状态可代表逻辑0或1,而储存层内有电荷的状态可代表逻辑1或0。以另一例来说,在多位存储器单元中,例如,双位存储器单元,通过储存不同电荷量,不同状态可代表逻辑00,01,10与11。不同状态下的存储器单元具有不同阈值电压。因为,为决定存储器单元中所储存的数据,读取电压(高于在低临界状态下的阈值电压但低于高临界状态下的阈值电压)被施加至存储器单元,以决定此存储器单元是否已被编程至高临界状态。

将数据存在半导体存储器的存储器单元内的过程也称为「编程(programming)」。在半导体存储器的编程过程中,编程电压施加至存储器单元,以将电荷注入至各存储器单元的储存层,将这些存储器单元编程至高临界态。然而,因为在半导体存储器中的存储器单元彼此紧密排列,编程其中一个存储器单元可能影响其相邻存储器单元,因而意外地改变相邻存储器单元的阈值电压。此现象也称为编程干扰。

例如,在包括单位存储器单元的半导体存储器中,存储器单元可逐页(page)编程,各页包括耦合至相同字线的这些存储器单元。在本案中,「字线」也代表耦合至该字线的这些存储器单元的集合。因此,耦合至字线的存储器单元可称为该字线的存储器单元,或者属于该字线的存储器单元。在编程后,页中的存储器单元成为两个群组,其中一个群组具有低阈值电压,而另一群组具有高阈值电压。实际上,相同群组的存储器单元未必具有完全相同的阈值电压,但这些阈值电压则落于某一范围内。例如,低临界态的存储器单元的阈值电压可能落于vl1至vl2的范围内,而高临界态的存储器单元的阈值电压可能落于vh1至vh2的范围内。存储器单元处于低临界态或高临界态(亦即,该存储器单元储存逻辑0或逻辑1)可由施加读取电压vr来决定,其中,读取电压vr高于vl2但低于vh1,且决定该存储器单元是导通或关闭。

然而,因为编程干扰,当在编程一页时,相邻页可能被影响。因此,在相邻页中,低临界态的存储器单元的阈值电压范围可能偏移至vl1’至vl2’,高临界态的存储器单元的阈值电压范围可能偏移至vh1’至vh2’。如果先前所选的读取电压vr低于vl2’,则实际上处于低临界态的某些存储器单元可能被错误地决定为高临界态。因此,在此情况下,为正确地决定存储器单元的状态,必须使用高于vl2’但低于vh2’的不同(alternative)读取电压vr’。

表1与图1a至图1e显示包括双位存储器单元的半导体存储器的例子。表1显示包括双位存储器单元的半导体存储器的编程方式。在此例中,显示半导体存储器的一个区块(block)。此区块内的存储器单元被分为128个群组,各群组属于各别字线,如表1中的编号0,1,...127。各存储器单元可储存最低有效位(leastsignificantbit,lsb)与最高有效位(mostsignificantbit,msb)。相同字线的lsb或msb形成一页,因此,半导体存储器包括共256页。在编程过程中,半导体存储器逐页地编程,如表1所示,根据编程顺序,将这些页编号为0,1,...255。例如,页0包括wl0的lsb,且最先被编程,页1包括wl1的lsb,且接着被编程,页255包括wl127的msb,且最后被编程。

表1

图1a至图1e显示,于页3,4,5,6与8被编程后的wl2的存储器单元的分布。在本案中,字线的存储器单元的分布代表将多个存储器单元画成阈值电压的函数。例如,在图1a至图1e中,横轴代表阈值电压,而纵轴代表具有某一阈值电压的存储器单元数量。再次参照表1,页3与6属于wl2,而页4,5与8属于wl2的相邻字线(wl1与wl3)之一,且当wl2的一或两页被编程后,页4,5与8会被编程。

如图1a所示,在页3(wl2的lsb)被编程后,wl2的存储器单元分为两个群组。此时,决定wl2的存储器单元的状态的理想读取电压是vr3。如图1b所示,在页4被编程后,wl2的存储器单元的分布被干扰δ4所偏移,此干扰δ4是因为编程wl2的存储器单元的页4的影响所导致。此种干扰也称为编程干扰。因为此偏移,如果在页4的编程之后仍使用vr3来当成读取电压的话,则wl2的某些存储器单元,实际上属于低临界态,将会被错误地决定为高临界态。因而,为减少误差,在决定wl2的存储器单元的状态时,必须使用不同的理想读取电压vr4。相似地,如图1c所示,对页5的编程导致对wl2的存储器单元分布的干扰δ5,且此时的理想读取电压变成vr5。

甚至,如图1d所示,在页6(wl2的msb)编程后,wl2的存储器单元更分为4个群组,分别代表逻辑00,01,10与11。此时,决定wl2的存储器单元的状态的理想读取电压是vr6l、vr6m1与vr6m2,其中,vr6l用于决定存储器单元的lsb,而vr6m1与vr6m2则用于决定存储器单元的msb。在页8被编程后,如图1e所示,wl2的存储器单元的分布被干扰δ8所偏移,此干扰δ8是因为编程wl2的存储器单元的页8的影响所导致。因此,理想读取电压分别变为vr8l、vr8m1与vr8m2。

由上例可看出,如果在半导体存储器的不同编程阶段中仍使用相同读取电压,某些存储器单元可能会被读取错误,因而,位错误率将会提高。



技术实现要素:

本案提出一种存储器的多个存储器单元的一目标字线的读取数据方法。该方法包括:决定该目标字线的一干扰状态。该干扰状态反映一相邻字线对该目标字线的这些存储器单元的一干扰。该方法更包括:根据该目标字线的该干扰状态,决定该目标字线的一读取电压;以及施加该读取电压至该目标字线的这些存储器单元。

本案提出一种存储器装置,包括:一存储器单元区与一控制电路。该存储器单元区包括一目标字线的多个第一存储器单元,以及相邻于该目标字线的一相邻字线的多个第二存储器单元。该控制电路决定该目标字线的一干扰状态。该干扰状态反映该相邻字线对该目标字线的这些第一存储器单元的一干扰。该控制电路更根据该目标字线的该干扰状态,决定该目标字线的一读取电压;以及施加该读取电压至该目标字线的这些第一存储器单元。

为了对本案的上述及其他方面有更佳的了解,下文特举实施例,并配合所附图式,作详细说明如下:

附图说明

图1a至图1e绘在编程后,表1的wl2上的存储器单元分布。

图2绘示依照本案实施例的半导体存储器。

图3绘示依照本案实施例的读取半导体存储器所存数据的方法流程图。

图4a与图4b绘示依照本案实施例的指令。

图5绘示依照本案实施例的半导体存储器的一部份。

图6绘示依照本案实施例的半导体存储器的冗余区的放大图标,显示棋盘式干扰感应样式。

【符号说明】

δ4、δ5、δ8:干扰

vr3、vr4、vr5、vr6m1、vr8m1、vr6l、vr8l、vr6m2、vr8m2:读取电压

100:半导体存储器102:存储器单元区

103:存储器单元104:控制电路

106:译码电路

202-206:步骤

102-1:数据区102-2:冗余区

bl0,,...,bly+n-1:位线

wlx,...wlx+m-1:字线

vr:读取电压vpass:通过电压

wlp,wlp+1,wlp+2:字线

blq-blq+5:位线

具体实施方式

本案实施例包括具有输出补偿的半导体装置。

在底下,本案实施例将参考附图而描述。在可能的情况下,相同参考符号于这些附图中代表相同或相似部份。

图2绘示依照本案实施例的半导体存储器100。半导体存储器100包括:存储器单元区102、控制电路104与译码电路106。存储器单元区102包括多个存储器单元103,排列成数组且用于储存数据。存储器单元103例如可为非易失性存储器单元。根据本案,存储器单元区102也包括多条字线与多条位线,以存取存储器单元。因此,存储器单元103分成多个群组,各群组耦合至一字线。如上述,耦合至相同字线的存储器单元103也称为该字线的存储器单元或属于该字线的存储器单元,而「字线」也用于代表耦合至该字线的这些存储器单元的集合。

控制电路104控制半导体存储器100的操作,例如,存储器单元103的编程与从存储器单元103读取数据。例如,控制电路104产生控制指令,例如读取指令,以送至译码电路106。译码电路106耦合于控制电路104与存储器单元区102的存储器单元103之间,用于译码与执行由控制电路104所传来的控制指令,但如,写入数据至存储器单元103或读出数据。控制电路104与译码电路106可统称为半导体存储器100的控制部份。在某些实施例中,控制部份可更包括用于控制半导体存储器100的其他部份。

在某些实施例中,半导体存储器100可更包括储存(storage),例如非瞬时计算机可读取储存媒介,其中可储存有指令,当半导体存储器100执行指令时,可让半导体存储器100执行操作,例如本案实施例的方法。在某些实施例中,储存可为控制104的一部份。在某些实施例中,半导体存储器100可耦合至该储存,亦即,该储存可以是半导体存储器100的外部装置。

图3绘示依照本案实施例的读取半导体存储器所存数据的方法200的流程图。在方法200中,决定目标字线的读取电压vr可通过决定该目标字线的干扰状态,亦即,相邻字线的编程干扰造成该目标字线的存储器单元的干扰。因此,目标字线的干扰状态代表一或多相邻字线对该目标字线的干扰。如上述,相邻字线可具有不同编程状态。相邻字线的各不同编程状态可以造成对该目标字线的不同影响,导致该目标字线的不同读取电压。

如图3所示,在步骤202中,半导体存储器100决定该目标字线的干扰状态。在步骤204中,半导体存储器100根据干扰状态决定该目标字线的读取电压。在步骤206中,半导体存储器100施加所决定的读取电压,以从该目标字线的存储器单元103读出数据。

一般而言,在正常状况下,半导体存储器的区块在读取操作执行之前已被完全编程,亦即,相邻字线对该目标字线的干扰已发生。例如,对于表1的区块,于正常状况下,在对该区块执行读取操作之前,干扰δ4、δ5与δ8已发生。在正常状况下的干扰状态也称为「完全干扰状态」。根据本案,当目标字线处于完全干扰状态下时,正常读取电压可施加至该目标字线。

另一方面,有时,读取操作的执行早于一或多个相邻字线的编程,亦即,并非由相邻字线的所有干扰都存在。在相邻字线所导致的某些干扰的情况下,目标字线的干扰状态也称为「部份干扰状态」。相似地,在相邻字线都没导致干扰的情况下,目标字线的干扰状态也称为「无干扰状态」。根据本案,在部份干扰状态或无干扰状态下,可施加不同读取电压至目标字线。可根据干扰状态来决定此不同读取电压的值。

在本案中,施加正常读取电压的读取模式也称为正常读取模式,而在正常读取模式下的读取操作也称为正常读取。相似地,施加不同(alternative)读取电压的读取模式也称为不同读取模式,而在不同读取模式下的读取操作也称为不同读取。

在某些实施例中,目标字线的干扰状态可由检查一或多相邻字线的编程状态而决定。字线的编程状态代表该字线的存储器单元目前正处于编程操作的哪一个阶段。例如,对于单位半导体存储器,字线的编程状态可代表该字线的存储器单元是否已被编程。另一例而言,对于双位半导体存储器,字线的编程状态可代表,该字线的存储器单元全都未被编程,或者,该字线的lsb页已被编程但该字线的msb未被编程,或者,该字线的lsb与msb皆已被编程。

如上述,半导体存储器100的存储器单元103的编程被控制电路104所控制。亦即,控制电路104产生并送出控制指令至译码电路106,该译码电路106接着译码并执行指令。控制指令包括编程指令,用以将存储器单元区102中的存储器单元103编程。在某些实施例中,存储器单元区102的页可依序被编程,因此控制电路104可得知最后被编程的页。在此情况下,相邻字线的编程状态可由控制电路104根据控制电路104的记录而决定。因此,控制电路104可发出一或多个特殊指令,以指令要施加不同读取电压至目标字线。此种特殊指令可相关于一或多个读取指令,以读取一或多个目标字线的存储器单元103。

例如,图4a与图4b绘示依照本案实施例的两个范例指令。如上述,控制电路104根据一或多相邻字线的编程状态来决定是否需要对目标字线施加另一读取电压。在某些实施例中,在决定需要对目标字线施加另一读取电压后,控制电路104产生前置(prefix)指令并附加于该目标字线的读取指令之前,如图4a所示。在此例下,控制电路104可产生前置指令,给需要不同读取的各目标字线。在对该目标字线执行不同读取之后,后续读取指令的读取模式回至正常读取模式,直到控制电路104下次决定需要不同读取模式为止。例如,如图4a所示,在读取指令x前附加前置指令(prefixcmd)。因此,当接收到指令串时,译码电路106在不同读取模式下执行读取指令x。由控制电路104所产生的后续读取指令,亦即,读取指令x+1与读取指令x+2,则未附加前置指令,因此,是在正常读取模式下执行。

在本案中,多种指令可当成前置指令,以指示相邻字线的编程状态。例如,如上述,半导体存储器100可为双位存储器。控制电路104可发出0xf1当成前置指令,以代表,以页编程顺序来看,在该目标字线之前的相邻字线(也称为「前」字线)的msb页未被编程。因此,这些页可依表1的顺序来编程,前字线的msb未被编程的情况下,目标字线的干扰状态是无干扰状态。另外,控制电路104可发出0xf2当成前置指令,以代表,「前」字线的msb页已被编程,但在目标字线后的相邻字线(也可称为下一字线)的lsb页未被编程。在此情况下,目标字线的干扰状态是第一部份干扰状态。甚至,控制电路104可发出0xf3当成前置指令,以代表,下一字线的lsb页已被编程,但下一字线的msb页未被编程。在此情况下,目标字线的干扰状态是第二部份干扰状态,其不同于第一部份干扰状态。根据本案,当下一字线的msb页已被编程,该字线的干扰状态是完全干扰状态,其不需要不同读取,因此,控制电路104不发出前置指令。

在某些实施例中,用以取代前置指令,控制电路104可发出一对特殊指令,以代表,在该对特殊指令之间的读取指令必需在不同读取模式下被执行。该对特殊指令包括模式进入指令与模式退出指令,如图4b所示。在图4b中,模式进入指令与模式退出指令的排列可包夹着读取指令y与读取指令y+1。因而,读取指令y与读取指令y+1必需在不同读取模式下被执行。相对之下,读取指令y+2与读取指令y+3未被模式进入指令与模式退出指令包夹着,因此,可在正常模式下执行。

根据本案,当接收到具有一或多特殊指令的指令串时,译码电路106根据指令串来决定目标字线的读取电压。例如,如果利用图4a的指令串,且目标字线的读取指令未附加前置指令,则译码电路106决定目标字线处于完全干扰状态。在此情况下,译码电路106决定对该目标字线施加正常读取电压,亦即,该目标字线的读取操作必须执行于正常读取模式下。另一方面,如果目标字线的读取指令之前附加有前置指令,则译码电路106决定目标字线处于无干扰状态或部份干扰状态。在此情况下,译码电路106决定对该目标字线施加不同读取电压,亦即,该目标字线的读取操作必须执行于不同读取模式下。根据本案,可根据前置指令来决定不同读取电压的电压值。

在上述例子中,相邻字线的编程状态以及目标字线的读取电压由控制电路104根据编程方式来决定。在其他实施例中,目标字线的干扰状态与读取电压可利用存储器单元区102内的特殊编程样式(pattern)来决定。亦即,目标字线的读取电压可「内部」决定,而无需控制电路104所传出的特殊指令。

图5绘示依照本案实施例的半导体存储器100的一部份(例如一个区块)。在图5中,在存储器单元区102内部,排列着彼此交叉的m条字线(wlx,...wlx+m-1)与y+n条位线(bl0,...bly-1,bly,bly+1,...bly+n-1)。图5的各交叉处相关于一存储器单元(未示出)。字线耦合至译码电路106,其施加读取电压vr(正常读取电压或不同读取电压)至目标字线(图5的例中是wlx+2)并施加通过电压vpass至其他字线。

如图5所示,存储器单元区102分成两区:数据区102-1与冗余区102-2。数据区102-1包括相关于位线bly,bly+1,...bly+n-1的存储器单元,且用于储存例如用户数据。数据区102-1内的存储器单元也称为数据单元。冗余区102-2包括相关于位线bl0,...bly-1的存储器单元,且用于储存其他信息,例如用于决定目标字线的干扰状态与读取电压的信息。冗余区102-2内的存储器单元也称为冗余单元。

在某些实施例中,字线的冗余单元可用于储存编程标识,其代表该字线的编程状态。亦即,不同标识可编码至冗余单元内,以代表相关字线的不同编程状态。通过读取字线的编程标识,半导体存储器100可得知字线的编程状态。例如,通过读取目标字线的相邻字线的编程标识,半导体存储器100可决定该相邻字线的编程状态。

当字线正在被编程时,该字线的标识可编码至冗余单元内。多种方式可应用至标识,例如,编程冗余单元与未编程冗余单元的不同数量。在本案中,编程单元也称为在编程状态下的单元,而未编程单元也称为已擦除单元或在擦除状态下的单元。因而,决定字线的编程状态可实施为,决定已编程冗余单元数量或已擦除冗余单元数量的至少一者。例如,假设半导体存储器100是双位存储器,且各字线有100个冗余单元。对于包括超过90个已编程冗余单元与少于10个已擦除单元的字线,该字线的编程标识可用于代表该字线已为非编程状态,亦即,已擦除状态。对于包括超过40个已编程冗余单元与少于10个已擦除单元的字线,该字线的编程标识可用于代表该字线已为lsb已编程状态,亦即,该字线的lsb页已被编程。对于包括少于10个已编程冗余单元与超过90个已擦除单元的字线,该字线的编程标识可用于代表该字线已为lsb/msb已编程状态,亦即,该字线的lsb页与msb页都已被编程。另一例而言,对于包括少于25个已编程冗余单元的字线,该字线的编程标识可用于代表该字线为已擦除状态;对于包括25个或多个25个但少于75个已编程冗余单元的字线,该字线的编程标识可用于代表该字线为lsb已编程状态;对于包括75个或多个75个已编程冗余单元的字线,该字线的编程标识可用于代表该字线为lsb/msb已编程状态。

在某些实施例中,目标字线的干扰状态可根据存于冗余区102-2的冗余单元内的干扰感测样式来决定。例如,当正在对一字线编程时,该字线的冗余单元可以小群组来交替式编程,例如,三个冗余单元形成一个小群组。则,当下一字线要被编程时,下一字线的冗余单元也可以小群组来交替式编程,但以相反方式。在本案中,包括已擦除冗余单元的群组也可称为已擦除群组,而包括已编程冗余单元的群组也可称为已编程群组。编程方式所导致的样式中,已编程冗余单元群组与已擦除冗余单元群组是交替的。此种样式在此称为「棋盘式样式」。例如,图6绘示依照本案实施例的半导体存储器的冗余区102-2的放大图标,显示棋盘式样式。在图6中显示出三条字线wlp,wlp+1,wlp+2,六条位线blq-blq+5,及相关冗余单元的编程状态。在交叉处的符号「p」代表该冗余单元已被编程,而在交叉处的符号「e」代表该冗余单元已被擦除。

在图6的棋盘式样式中,字线wlp与wlp+2具有相同的编程方式,亦即,相关于位线blq、blq+1与blq+2的冗余单元,也分别可称为第q个冗余单元、第q+1个冗余单元与第q+2个冗余单元,被设计成处于已编程状态,而相关于位线blq+3、blq+4与blq+5的冗余单元,也分别可称为第q+3个冗余单元、第q+4个冗余单元与第q+5个冗余单元,被设计成处于已擦除状态。另一方面,介于字线wlp与wlp+2之间的字线wlp+1具有「相反」编程方式,亦即,字线wlp+1的第q个冗余单元、第q+1个冗余单元与第q+2个冗余单元被设计成处于已擦除状态,而字线wlp+1的第q+3个冗余单元、第q+4个冗余单元与第q+5个冗余单元被设计成处于已编程状态。因为相邻字线的干扰,原本设计成处于擦除状态的冗余单元在编程过程结束后,可能会变成已编程状态。

为决定字线wlp与wlp+2对字线wlp+1的影响与决定字线wlp+1的干扰状态与读取电压,字线wlp+1的第q+1个冗余单元可被感测以决定其实际编程状态。感测结果可用于决定字线wlp与wlp+2对字线wlp+1的影响与决定目标字线的干扰状态。图6只显示出感测图式的一部份,可重复至其他位线的冗余单元,以完成整个感测样式。各部份包括两冗余单元群组,其中一个群组被擦除而另一个群组被编程。在各已擦除群组的中央的冗余单元可被感测,而目标字线的所有已擦除群组的感测结果可用以决定相邻字线的影响及决定目标字线的干扰状态。

在图6的例中,各群组包括三个冗余单元。在其他实施例中,各群组可以包括其他数量的冗余单元,例如,5个,7个或更多个冗余单元。甚至,在图6的例中,棋盘式样式为范例性干扰感测样式。然而,也可使用能感测相邻字线影响的其他类型样式。

在某些实施例中,损耗平衡(wearleveling)可用于半导体存储器100的存储器单元103。每次执行损耗平衡时,可改变干扰感测样式。例如,每次可触发上述的棋盘式样式,亦即,已擦除冗余单元变成已编程冗余单元,而已编程冗余单元变成已擦除冗余单元。故而,可让干扰感测样式保持更新,而更能正确地决定相邻字线的影响。

综上所述,虽然本案已以实施例揭露如上,然其并非用以限定本案。本案所属技术领域中具有通常知识者,在不脱离本案的精神和范围内,当可作各种的更动与润饰。因此,本案的保护范围当视随附的权利要求范围所界定的为准。

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