用于位单元修复的方法和装置的制作方法

文档序号:6771768阅读:128来源:国知局
专利名称:用于位单元修复的方法和装置的制作方法
技术领域
本发明涉及存储器领域,更具体地,涉及用于位单元修复的方法和装置。
背景技术
被称为位单元的存储器存储单元以单个位的形式存储信息。静态随机存储器 (SRAM)是一种以位的形式存储数据的半导体存储器,使用不需要进行再生(refreshing) 的双稳态电路。在易失性存储器(例如SRAM)中,在断电或者关闭事件发生之后,其中存储的数据无法保留。相反,非易失性存储器在电源关闭之后能够保留其内容,并且这些内容能够在随后开启电源之后立即进行访问。存储器阵列包括多个位单元,以行和列进行排列。存储器阵列中的每个位单元通常包括到电源电压的连接点和到参考电压的连接点。位线用于访问位单元,字线用于控制到位线的连接点。字线可以连接到存储器阵列的行中的位单元, 不同的字线与不同的行相连接。损坏的位单元会导致数据的存储发生错误以及与位单元之间的读/写变得不可靠。存储器阵列中的位单元的故障对于数据存储产业来说是一个挑战。实践中所遇到的主要的故障模式是随机的单个位(单个位故障),而不是整行(例如,字行)或者位线的故障。

发明内容
为解决上述问题,本发明提出了一种方法,包括从非易失性存储器的多个存储器位单元的第一子集中读取第一数据,第一数据用于标识至少一个单个损坏的位单元的地址;将第一数据直接加载到寄存器内;接收将要进行存取的数据的地址;确定接收到的地址是否是任一单个损坏的位单元的地址;以及当接收到的地址是任一单个损坏的位单元的地址时,存取寄存器中的数据。其中,存取寄存器中的数据包括从寄存器的预设位置读取有效载荷位,有效载荷位与接收到的地址处的损坏的位单元相对应。该方法进一步包括当接收到的地址不是任一单个损坏的位单元的地址时,在接收到的地址处从位单元中的一个中读取有效载荷位。其中,存取寄存器中的数据包括将有效载荷位写入寄存器的预设位置,有效载荷位与接收到的地址处的损坏的位单元相对应。该方法进一步包括当接收到的地址不是任一单个损坏的位单元的地址时,将有效载荷位写入接收到的地址处的位单元中的一个。该方法进一步包括在多个位单元的第二子集中存储第二数据,第二子集与第一子集互斥;从第二子集中读取第二数据,以标识损坏的位单元;以及将第一数据存储到多个存储器位单元的第一子集中。其中,从第一子集中读取第一数据包括在响应于电源开启的一个时刻,从第一子集中读取第一数据。该方法进一步包括至少在断电或者电源关闭之前,将第一数据存储到寄存器中。
其中,非易失性存储器选自由e-fuse存储器、e-flash存储器、以及一次性编程 (OTP)存储器构成的组。其中,位单元排列在行和列中,并且第一子集是行中的一行。本发明还提出了一种方法,包括在非易失性存储器的多个存储器位单元的第一子集中存储第一数据;从第一子集中读取第一数据,以标识至少一个单个损坏的位单元; 以及在多个位单元的第二子集中存储第二数据,第二数据标识至少一个单个损坏的位单元的地址,第二子集与第一子集互斥。其中,非易失性存储器选自由e-fuse存储器、e-flash存储器、以及一次性编程 (OTP)存储器构成的组。其中,位单元排列在行和列中,并且第二子集是行中的一个。其中,位单元排列在行和列中,并且至少一个单个损坏的位单元包括彼此位于不同行以及不同列中的第一损坏的位单元以及第二损坏的位单元。本发明还提供了一种用于数据存储的系统,包括在非易失性存储器中的多个存储器位单元,多个存储器位单元包括第一子集,配置为存储第一数据,以及第二子集,与第一子集互斥,被保留用于存储标识至少一个单个损坏的位单元的地址的第二数据;以及存储器存取电路,包括寄存器和数据输出开关电路,存储器存取电路配置为从第二子集中读取第二数据;将第二数据直接加载到寄存器中;接收将要进行存取的数据的地址;通过寄存器,确定接收到的地址是否是任一单个损坏的位单元的地址;以及通过数据输出开关电路,在所接收到的地址是任一单个损坏的位单元的地址时存取寄存器的数据。其中,数据输出开关电路配置为通过从寄存器的预设位置中读取有效载荷位,来存取寄存器的数据,有效载荷位与所接收到的地址处的损坏的位单元相对应。其中,当所接收到的地址不是任一单个损坏的位单元的地址时,数据输出开关电路配置为从所接收到的地址处的位单元中的一个中读取有效载荷位。其中,数据输出开关电路被配置为通过将有效载荷位写入寄存器的预设位置来存取寄存器的数据,有效载荷位与所接收到的地址处的损坏的位单元相对应。其中,当所接收到的地址不是任一单个损坏的位单元的地址时,数据输出开关电路配置为将有效载荷位写入所接收到的地址处的位单元中的一个。其中,位单元排列在行和列中,并且第二子集是行中的一个。其中,非易失性存储器选自由e-fuse存储器、e-flash存储器、以及一次性编程 (OTP)存储器构成的组。


通过附图,以下描述将会从附图中的元件中变得显而易见,该附图是以示出为目的,并没有必要按照比例绘制。图IA是根据一些实施例的位单元阵列的框图。图IB是根据一些实施例的冗余信息行(RIR)的框图。图2是根据一些实施例的数据存储系统的框图。图3是根据一些实施例的过程的流程图。图4是根据一些实施例的另一过程的流程图。
图5是根据一些实施例的另一过程的流程图。
具体实施例方式这里对于示例性实施例的描述旨在与附图结合在一起进行阅读,这些附图视作整个书面说明所要参考的部分。图IA是根据一些实施例的位单元阵列的框图。存储器阵列100以行110-1、 110-2、· · · UIO-R(总称 110)以及列 120-1,120-2,. · ·、120_C(总称 120)组成。存储器阵列100是非易失性存储器,例如,e-f Iash存储器、e-fuse存储器、或者一次性编程(OTP)存储器。位单元 130-1-1、130-1-2、. . .、130-1-C(总称 130)位于阵列 100 的第一行 110-1,
位线130-1-1、130-2-1.....130-R-1位于第一列120-1,并且将类似的标注标准用于其他
位单元。例如,为了形成41Λ存储器,阵列100的行数可以是128(即,R= 1 ),列数可以是32 (即,C = 32),虽然也可以使用其他尺寸,例如,64行和64列。可以将数据位存储在位单元130。阵列100中的位单元可能损坏;例如,单个位单元130-i-m可能损坏。在一些实施例中,与单个损坏的位单元130-i-m有关的信息被拷贝到阵列100的专用(保留)部分,该部分可以是一行,称为冗余信息行(RIR) 110-R。没必要将包含有位单元130-i-m的整行(或者整列)的信息进行拷贝;单个(例如,单独)损坏的位单元130-i-m中的信息被拷贝到专用阵列部分。尽管其他行110也可以用于冗余,MR在图IA中示出,作为阵列100的最后一行 IlO-R0阵列100的专用部分可以是一组位单元而不是一个行,例如,可以是一行的一部分或者多于一个单个行;在一些实施例中,通过使用一行冗余可以获得一定效率,如下面进一步所述。通过将与第一单独损坏的位线130-i-m有关的信息存储到阵列100的保留部分 (例如,RIR)中,损坏的位单元可以被有效地修复,如下面进一步详述。在一些实施例中,与损坏的位单元130-i-m处于不同行和不同列的第二单独损坏的位线130-j-n(或者更多单独损坏的位单元)通过其他部件将与其相关的信息拷贝到阵列100的保留部分,从而使能该位单元的修复,如下面进一步详述。无论与第一损坏的位是否在同一行中以及是否在同一列中,第二损坏的位或者后面的损坏的位可以使用MR进行修复。对于以下示例,将描述冗余信息行(RIR),尽管也可以使用阵列100的其他部分,如上所述,例如,一行的一部分、 多个行、一列、一列的一部分、或者多个列。图IB是根据一些实施例的冗余信息行(RIR)的框图。MR 100-R可以包括第一部分140-1,用来存储与第一损坏的位单元相关的信息;以及第二部分140-2,用来存储与第二损坏的位单元相关的信息。在其他示例中,MR可以具有用于多于两个损坏的位单元 (或者仅仅一个位单元)的部分。将冗余标识提供给每个部分,用于示出该部分是否正在用于位单元修复。假设单个的位单元损坏了,例如,图IA的位单元130-i-m。将冗余标识RF
设置为1,示出了 MR 的部分140-1正在用于存储与单个损坏的位单元相关的信息,其地址在下面所述的地址位上指明。有效载荷位FB W]_DATA可以用于存储数据,所存储的这些数据一般存储在损坏的位单元130-i-m中,但由于故障,无法在损坏的位单元中进行存储。如本文中所用,一名本领域普通技术人员可以轻易了解,术语“有效载荷位”指的是用于存储这些有效载荷信息的位单元以及有效载荷信息本身(即,存储在有效载荷位单元中的数据的有效载荷位)。类似的标准用于RIR中的其他位单元/位(例如,下面所述的地址位)。有效载荷位的用法将在下面进一步详细描述。地址位FB
_A0、FB
_A1、. . .、FB
_A11存储与单个损坏的位单元130-i-m的地址相关的地址信息。在这个示例中,保留出12个地址位用于这个目的,对应于阵列尺寸 2i2 = 4096位单元。可以将其他存储器阵列尺寸、其他位数用于存储该地址信息。地址位
FB
_A0.....FB
_A11可以通过使用现有技术已知的列/行偏移的变址标准(indexing
convention),存储损坏的位单元130-i-m的地址,以将4096个位单元中的每一个与唯一的 12位二进制地址相关联。通过将地址位提供到冗余信息行(RIR)中,实施例提供了逻辑修复机制,以修复损坏的位单元。单个损坏的位单元的地址存储在RIR的地址位中,一般存储在损坏的位单元中的有效载荷数据值被存储到有效载荷位中,并且将冗余标识设置为将RIR中的位单元的用途指示为修复损坏的位单元。在一些实施例中,提供逻辑修复机制通过仅仅在总存储器阵列中增加一行,而有利于避免显著的面积增加(即,存储装置的面积的增加)。在其他实施例中,可以增加多个行,但是面积增加仍然较小,例如,相比于物理位单元故障修复技术,由此,整个行(或者整个位线)要重新分配为独立的一行。RIR(或者专用于存储与损坏的位单元相关的信息的存储器的其他类似部分)与存储器中包含了用于一般用途的数据存储的位单元(例如,在行中除了图IA所示的行110-R位单元的其他位单元)的部分相分离。提供逻辑修复机制能够使得实施例有效地针对单个损坏的位单元进行修复,而不用为可能包含了许多没有损坏的(即,正常工作的)位单元的整个行提供修复功能。在图IB所示的示例中,“不关心(don' t care) ”位单元DCl和DC2可以为了未来使用而进行保留或者可以是未使用的。行中有32个位单元,因而,有16个位单元用于MR 中的与单个损坏的位单元相对应的部分,使用1位用于冗余标识、1位用于有效载荷、12位用于寻址,保留剩下的2位作为“不关心”位单元。至于第二单个损坏的位单元(例如,图 IA中的位单元130-j-n),RIR的部分140-2也可以用于位单元故障修复。部分140-2中的位单元与部分140-1中的位单元的作用类似,并且用“[1]”进行变址,而不是“
”。部分 140-1中的“不关心”位单元DC3和DC4在图IB中示出。如本领域普通技术人员所了解, RIR中的位单元可以以其他方式(即,其他位顺序)分配给冗余标识的任务(role)、有效载荷、以及地址。图2是根据一些实施例的数据存储系统的框图。在一些实施例中,一旦存储器100 的电源开启,MR 110-R的内容就直接拷贝(存储、或者装入)到寄存器230中,寄存器230 为了降低延迟,可以是存储器存取电路220的一部分,或者与存储器存取电路220位于同一 IC芯片上。存储器存取电路220可以是外围电路的一部分。将RIR 110-R的内容装入到寄存器230中是可能的,因为存储器100是非易失性的,因而能在前述电源关闭或者断电之后保留其内容。寄存器230可以包括与RIR中的同等位置相对应的位域(位存储位置)。 例如,如果RIR具有32个位单元,寄存器230也可以存储32位,寄存器230的位布置方式与图IB中的MR相对应。一旦有了用于访问位单元的访问请求观0,寄存器就要被访问, 以确定要进行访问的位单元是否损坏。访问请求280包括需要进行访问的位单元的地址。 如果要访问(读或者写)损坏的位单元,就对寄存器230而非存储器100进行访问,这样会带来更快的性能。因为寄存器在位分配方面可以作为RIR的“镜子”,所以对寄存器的访问比对存储器100的访问要快。可以执行地址比较,来确定将要被访问的存储器地址是否与 RIR 110-R中的有效输入(即,设置冗余标识的输入)相对应。寄存器230可以执行地址比较。凭借地址比较(在一些实施例中所用时间低于1ns),如果RIR 110-R对于该地址具有有效输入,则可以是存储器存取电路220的一部分的数据输出开关(switch)电路250可以访问寄存器230,或者,如果RIR 1IO-R对于地址不具有有效输入,则数据输出开关电路250 可以访问存储器100。例如,如果寄存器230确定将要被访问的存储器地址没有存储在RIR 110-R的有效输入中,那么处理器220会在存储器100中对于所请求的资料进行访问;如果将要被访问的地址对应于损坏的位单元,那么处理器220会在寄存器230中对于所请求的数据进行访问,而不会发生从存储器100中调取数据而带来的延迟。图3是根据一些实施例的过程的流程图。在过程300开始之后,在310中,存储器阵列的主要部分(即,除了 RIR 110-R之外的其他部分)可以连同检测数据写入。在写入之前,阵列可以被“清空”,即,其中不写入任何数据。接收到包括存储器阵列芯片的用户可以通过适当的自动化系统实现上述写入过程。接着,自动化系统可以读取新近写入的数据, 作为320中的检测序列的一部分,用来确定是否有位单元损坏。为了进行验证,可以在步骤 310和320中写入和读取各种检测数据样式。在330中,自动化系统可以检查有多少单个位单元发生故障。如果没有位单元发生故障,那么芯片会在340中称为“完好芯片”。如果有多于N个单个损坏的位单元(其中,N与冗余信息行或者存储器的其他保留部分的尺寸有关),那么该芯片可以在350中被称为损坏的芯片。换言之,作出如下决定,对于容纳(存储)与所有单个损坏的位单元的地址(以及冗余标识、以及有效载荷位)相关的信息来说, 可用的冗余存储空间(例如,在可用的一个或者多个冗余信息行中)是否充足。如果单个损坏的位单元的数量处于1和N之间,则表示MR对于容纳所有损坏的位单元来说足够大, 那么每个损坏的位单元的地址都在360中写入RIR。正确的有效载荷数据(将要存储到损坏的位单元中但由于故障无法被确实写入的数据)也可以写入RIR。在一些实施例中,更确切地来说,是其数据)在370中直接装入到寄存器中。 每次尝试进行存储器访问,对寄存器的访问确定了将要进行访问的存储器地址是否是损坏的地址。在380中,通过寄存器而非通过存储器,对故障地址(与损坏的位单元相对应的地址)进行访问。因而,在390中对芯片进行有效修复(对损坏的位单元进行有效修复),这是因为处于适当位置的机制明显地向位单元提供访问(使用那些位单元的地址),这些单元本身损坏但是已经通过RIR以及(可选地)通过寄存器进行有效备份。尝试访问损坏的位使得在寄存器处对有效载荷数据进行访问(从寄存器上读取或者向寄存器写入)。尝试访问没有损坏的(正常工作的)位使得进行存储器访问。因此,用户可以使用自动化系统,该自动化系统用于确定哪些(如果有的话)位单元是损坏的,并且将相应的信息写入RIR。可以引入图IB中所示的映射,或者使用经生产商和用户确认的任一其他映射(从而使得用户可以基于生产商提供的阵列的尺寸,适当地指示自动化系统有多少位对于MR可用,以及使用何种位分配)。MR可以基于各种考虑确定尺寸,包括基于希望进行保护的阵列的尺寸以及预期的(希望进行保护/修复)单个损坏的位单元的数量。在各种实施例中,为了冗余而保留整行是有效的,因为(1)来自存储器的两个或者更多行或者列的损坏的位可以使用单个RIR进行修复,以及(2)没有必要为没有损坏的存储器单元提供冗余位(即使它们与损坏的位位于同一行或者同一列)。在一些实施例中,在370中,一旦(第一时间(single time))电源开启,就装入寄存器。以RIR内容装入寄存器会为涉及通过寄存器对与损坏的位单元相应的数据进行访问的后续操作提供快速访问。直到断电或者电源关闭(电源断开)之前,可以存储寄存器内容。图4是根据一些实施例的另一过程的流程图。在过程400开始之后,在410中,从非易失性存储器的多个存储器单元的子集中读取一个或者多个数据。该子集显示出至少一个单个损坏的位单元的地址。该子集可以是冗余信息行或者列。在420中,将一个或者多个数据直接装入到寄存器中。在430中,接收到要访问的数据的地址。在440中,进行地址比较,以确定所接收到的地址是否与一个或者多个单个损坏的位单元中的任一个的地址相匹配。在450中,如果所接收到的地址与单个损坏的位单元相匹配,则访问寄存器的数据 (即,向寄存器写入或者从寄存器中读取)。图5是根据一些实施例的另一过程的流程图。在过程500开始之后,在510中,检测数据存储到非易失性存储器的多个存储器位单元的第一子集中。第一子集可以对应于除图IA中的行110-R之外的行(或者列)。在520中,检测信号从第一子集中读取,以识别至少一个单个损坏的位单元。在530中,识别用于识别单个损坏的位单元的地址的数据存储在多个存储器位单元的第二子集中。第二子集可以是冗余信息行(RIR)或者列,或者保留的用于存储与位单元修复相关的信息的存储器的其他部分。 虽然在一个示例中,冗余信息存储在行中,但是还可以有其他实施例提供一个或者多个冗余信息列,用于以不同的格式存储同样的信息(包括冗余标识、地址、以及有效荷载数据)。在一些实施例中,用于数据存储的系统在非易失性存储器以及存储器存取电路中具有多个存储器位单元。存储器位单元包括配置为存储第一数据的第一子集,以及与第一子集互斥、所保留用于存储识别单个损坏的位单元的地址的第二数据的第二子集。存储器存取电路配置为从第二子集中读取第二数据,将第二数据直接装入到寄存器中;接收将要进行访问的数据的地址;确定所接收到的地址是否是单个损坏的位单元的地址;以及如果接收到的地址是单个损坏的位单元的地址,则访问寄存器中的数据。可以将实施例用于e-fuse存储器、e-flash存储器、或者一次性编程(OTP)存储器的情况中,来提供快速、高效的位单元修复,例如,使用自动布局布线(APR)工具。在各个实施例中,逻辑位单元修复使得能够对单个位单元进行修复,并且不必需要使用大型物理存储结构,该大型物理存储结构会浪费在使用现有技术行或者位线修复技术的运行的(工作的)位单元的备份上。此外,各种实施例不必需要了解损坏的字线的所有位的内容,这些内容来自于不同的编程阶段,例如,电路探针(circuit probe)或者包级别的检测器,并且这些内容可能难以获得或者不便于确定。由于本领域普通技术人员可以在权利要求的等同的内容和范围内做出各种修改和结构上的改变,因此,尽管这里已经示出并且描述了示例,但是这些实施例并不限于所示细节。
权利要求
1.一种方法,包括从非易失性存储器的多个存储器位单元的第一子集中读取第一数据,所述第一数据用于标识至少一个单个损坏的位单元的地址; 将所述第一数据直接加载到寄存器内; 接收将要进行存取的数据的地址;确定接收到的地址是否是任一单个损坏的位单元的地址;以及当接收到的地址是所述任一单个损坏的位单元的地址时,存取所述寄存器中的数据。
2.根据权利要求1所述的方法,其中,存取所述寄存器中的数据包括从所述寄存器的预设位置读取有效载荷位,所述有效载荷位与接收到的地址处的损坏的位单元相对 >应。
3.根据权利要求1所述的方法,进一步包括当接收到的地址不是所述任一单个损坏的位单元的地址时,在接收到的地址处从位单元中的一个中读取有效载荷位。
4.根据权利要求1所述的方法,其中,存取所述寄存器中的数据包括将有效载荷位写入所述寄存器的预设位置,所述有效载荷位与接收到的地址处的损坏的位单元相对应。
5.根据权利要求1所述的方法,进一步包括当接收到的地址不是所述任一单个损坏的位单元的地址时,将有效载荷位写入接收到的地址处的位单元中的一个。
6.根据权利要求1所述的方法,进一步包括在所述多个位单元的第二子集中存储第二数据,所述第二子集与所述第一子集互斥; 从所述第二子集中读取所述第二数据,以标识损坏的位单元;以及将所述第一数据存储到所述多个存储器位单元的所述第一子集中。
7.根据权利要求1所述的方法,其中,从所述第一子集中读取所述第一数据包括在响应于电源开启的一个时刻,从所述第一子集中读取所述第一数据,其中,所述方法进一步包括至少在断电或者电源关闭之前,将所述第一数据存储到所述寄存器中。
8.根据权利要求1所述的方法,其中,所述非易失性存储器选自由e-fuse存储器、 e-fIash存储器、以及一次性编程(OTP)存储器构成的组。
9.一种方法,包括在非易失性存储器的多个存储器位单元的第一子集中存储第一数据; 从所述第一子集中读取所述第一数据,以标识至少一个单个损坏的位单元;以及在所述多个位单元的第二子集中存储第二数据,所述第二数据标识所述至少一个单个损坏的位单元的地址,所述第二子集与所述第一子集互斥。
10.一种用于数据存储的系统,包括在非易失性存储器中的多个存储器位单元,所述多个存储器位单元包括 第一子集,配置为存储第一数据,以及第二子集,与所述第一子集互斥,被保留用于存储标识至少一个单个损坏的位单元的地址的第二数据;以及存储器存取电路,包括寄存器和数据输出开关电路,所述存储器存取电路配置为 从所述第二子集中读取所述第二数据; 将所述第二数据直接加载到所述寄存器中; 接收将要进行存取的数据的地址;通过所述寄存器,确定所述接收到的地址是否是任一单个损坏的位单元的地址;以及通过数据输出开关电路,在所接收到的地址是所述任一单个损坏的位单元的地址时存取所述寄存器的数据。
全文摘要
一种方法包括从非易失性存储器中的多个存储器位单元的子集中读取数据。该数据显示出至少一个单个损坏的位单元的地址。该方法进一步包括将数据直接装入寄存器中,接收将要进行访问的数据的地址,确定接收到的地址是否是任一单个损坏的位单元;以及如果接收到的地址是任一单个损坏的位单元的地址,则访问寄存器中的数据。
文档编号G11C29/18GK102385934SQ20111016612
公开日2012年3月21日 申请日期2011年6月15日 优先权日2010年8月30日
发明者廖唯理, 林松杰, 许国原, 黄建程 申请人:台湾积体电路制造股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1