容错存储器阵列和在存储器阵列中执行错误校正的方法转让专利

申请号 : CN201980099620.6

文献号 : CN114258571B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J·L·麦科勒姆

申请人 : 微芯片技术股份有限公司

摘要 :

一种用于向存储器阵列提供错误校正的方法,该方法包括:对于存储在存储器阵列(12)的数据存储器部分中具有至少一个位错误的每个存储器字,在错误PROM(24)中存储识别该数据存储器部分中的数据字的存储器地址的错误数据、每个位错误的位位置以及每个位错误的正确位数据;监测呈现给该数据PROM的存储器地址,如果呈现给该数据存储器部分的存储器地址是所识别的存储器地址,则从该错误PROM(24)中读取每个位错误的该位位置和每个位错误的该正确位数据;以及将该正确位数据替换到从该数据存储器部分读取数据的读出放大器(16)的每个所识别的位位置。计数器(42)用于对数据字中的多个位错误进行解码,这允许针对该数据字中的每个位错误在该PROM读取解码器区部(30)中编程单独的条目。

权利要求 :

1.一种用于针对存储器阵列提供错误校正的方法,所述方法包括:

对于存储在所述存储器阵列的数据存储部分中的具有至少一个位错误的每个数据字,在错误可编程只读存储器中存储与所述数据字在所述数据存储部分中的地址相关联的错误条目,并且包括识别每个位错误的位位置的错误数据以及每个位错误的正确位数据,所述存储包括将唯一项编程到可编程逻辑装置中,所述可编程逻辑装置是所述数据存储部分中的所述数据字的所述地址和所述位错误的数量的布尔组合;

监测被呈现给所述数据存储部分的存储器地址;

如果被呈现给所述数据存储部分的存储器地址与所述错误可编程只读存储器中的相应错误条目相关联,则从所述错误可编程只读存储器中读取所述每个位错误的所述位位置和所述每个位错误的所述正确位数据;以及将所述正确位数据替换到存储器读取电路的每个所识别的位位置,所述存储器读取电路被布置成从所述数据存储部分中读取数据。

2.根据权利要求1所述的方法,其中所述位错误的所述数量由计数器的输出状态定义,所述计数器形成作为所述布尔组合的所述唯一项的一部分。

3.根据权利要求2所述的方法,其中:

通过使所述计数器递增以提供不同的唯一项,顺序地访问所述数据字中的每个位错误;并且所述计数器递增,直到作为所述数据字的所述存储器地址和所述计数器的所述输出状态的布尔组合的所述唯一项不定义相应错误条目。

4.根据权利要求2所述的方法,其中所述错误可编程只读存储器中的每个错误条目包括下一失败标记位;

用于所述存储器地址的最近存储的错误条目的所述下一失败标记位处于第一状态,并且用于所述存储器地址的所有其他存储的错误条目的所述下一失败标记位处于第二状态,所述第二状态与所述第一状态相反;并且响应于所述下一失败标记位,当所述计数器的输出状态与定义所述存储器地址的所述最近存储的错误条目的唯一项相关联时,所述计数器不会进一步递增。

5.根据权利要求2所述的方法,其中:

从所述错误可编程只读存储器中读取所述每个位错误的所述位位置包括从所述错误可编程只读存储器中的存储器中读取所述每个位错误的所述位位置;并且从所述错误可编程只读存储器的所述存储器中读取所述每个位错误的所述正确位数据包括从所述错误可编程只读存储器的所述存储器中读取所述每个位错误的所述正确位数据。

6.根据权利要求5所述的方法,其中从所述错误可编程只读存储器中读取所述每个位错误的所述正确位数据包括:从所述错误可编程只读存储器的所述存储器中读取所述每个位错误的所述正确位数据的多个副本;以及从所读取的所述正确位数据的多个副本中确定正确数据值。

7.一种用于针对存储器阵列提供错误校正的方法,所述方法包括:

向所述存储器阵列提供识别待从所述存储器阵列中读取的数据字的存储器地址;

同时将所述存储器地址提供给错误可编程只读存储器,所述错误可编程只读存储器包含表示识别存储器阵列的在至少一个位位置中具有缺陷数据的数据字的存储器地址的错误条目,并且不包含所述存储器阵列的在至少一个位位置中不具有缺陷数据的数据字的条目;

如果提供给所述错误可编程只读存储器的所述存储器地址识别在所述至少一个位位置中具有缺陷数据的相应数据字,则从所述错误可编程只读存储器中输出包括经校正的数据的N个副本的经校正的数据,从所述经校正的数据的所述N个副本中选择单个经校正的数据位,并且输出识别所述数据字中所述缺陷数据的所述位位置的信息;

将所述数据字从所述存储器阵列读取到存储器读取电路中;以及

将所述单个经校正的数据位替换到所述存储器读取电路的所识别的位位置。

8.一种具有错误校正的存储器阵列,所述存储器阵列包括:

数据存储器部分,所述数据存储器部分包含存储器数据字;

读出放大器区部,所述读出放大器区部联接到所述数据存储器部分;

地址总线,所述地址总线联接到所述数据存储器部分;

错误可编程只读存储器,所述错误可编程只读存储器联接到所述地址总线;

数据存储器部分错误校正码区部,所述数据存储器部分错误校正码区部操作地联接到所述数据存储器部分;

错误可编程只读存储器错误校正码区部,所述错误可编程只读存储器错误校正码区部操作地联接到所述错误可编程只读存储器;

控制器,所述控制器联接到所述地址总线,所述控制器被配置为:

断言所述地址总线上的地址以将数据字从所述数据存储器部分读取到所述读出放大器区部中;

响应于来自所述数据存储器部分存储器错误校正码区部的信号,将错误条目写入所述错误可编程只读存储器,所述错误条目识别存储在所述数据存储器部分中的具有至少一个数据位错误的数据字、所述数据位错误的在所述字中的位位置以及所述数据位错误的经校正的数据值;以及响应于来自所述错误可编程只读存储器错误校正码区部的信号,所述信号识别存储在所述错误可编程只读存储器中的具有至少一个错误的数据错误条目,所述响应包括在不同的错误可编程只读存储器地址处将经校正的可编程只读存储器数据错误条目写入所述错误可编程只读存储器,并且停用存储在所述错误可编程只读存储器中的所识别的错误条目;

其中所述错误可编程只读存储器响应于在所述地址总线上断言的具有至少一个错误条目的地址,以读取所述数据位错误的正确数据值,并且向所述读出放大器区部生成校正信号,以在具有错误条目的所述地址处的所述数据字中所识别的位位置处用所读取的正确数据值来替换所述数据位错误。

9.根据权利要求8所述的存储器阵列,其中所述错误可编程只读存储器包括错误可编程只读存储器读取解码器区部,并且其中停用存储在所述错误可编程只读存储器中的所识别的数据存储器部分错误条目包括对所述错误可编程只读存储器读取解码器区部中的另外的位进行编程。

10.根据权利要求8所述的具有错误校正的存储器阵列,其中在所述数据字中所识别的位位置处利用所述数据位错误的所读取的正确数据值进行替换包括在所述数据字中所识别的位位置处重写最初被写入所述读出放大器的缺陷数据。

11.根据权利要求8所述的具有错误校正的存储器阵列,其中在所述数据字中所识别的位位置处利用所述数据位错误的所读取的正确数据值进行替换包括利用所读取的正确数据替换从所述数据存储器部分中读取的缺陷数据。

12.一种具有错误校正的存储器阵列,包括:

数据存储器部分,所述数据存储器部分包含存储器数据字;

读出放大器区部,所述读出放大器区部联接到所述数据存储器部分;

地址总线,所述地址总线联接到所述数据存储器部分;

错误可编程只读存储器,所述错误可编程只读存储器联接到所述地址总线;

数据存储器部分错误校正码区部,所述数据存储器部分错误校正码区部操作地联接到所述数据存储器部分;

控制器,所述控制器联接到所述地址总线,所述控制器被配置为:

断言所述地址总线上的地址以将数据字从所述数据存储器部分读取到所述读出放大器区部中;

响应于来自所述数据存储器部分错误校正码区部的信号,将错误条目写入所述错误可编程只读存储器,所述错误条目识别存储在所述数据存储器部分中的具有至少一个数据位错误的数据字、所述数据位错误的在所述字中的位位置以及所述数据位错误的经校正的数据值;

递增计数器以定位存储在所述数据存储器部分中的单个数据字中的多个位错误的多个错误条目;并且其中所述错误可编程只读存储器响应于在所述地址总线上断言的具有至少一个错误条目的地址,以读取所述数据位错误的正确数据值,并且向所述读出放大器区部生成校正信号,以在具有错误条目的所述地址处的所述数据字中所识别的位位置处用所读取的正确数据值来替换所述数据位错误。

13.根据权利要求12所述的具有错误校正的存储器阵列,其中所述控制器还被配置为当所述计数器被递增到不在所述错误可编程只读存储器中定位错误条目的计数状态时,停止递增所述计数器。

14.根据权利要求12所述的具有错误校正的存储器阵列,其中所述控制器还被配置为当所述计数器达到定位所述错误可编程只读存储器中的所述数据字的最后输入的错误条目的状态时,停止递增所述计数器。

说明书 :

容错存储器阵列和在存储器阵列中执行错误校正的方法

技术领域

[0001] 本发明涉及可编程存储器阵列。更具体地,本发明涉及容错可编程存储器阵列。

背景技术

[0002] 较小的几何形状现在限制了施加到金属上的最大电压。除非所施加的电压也缩小,否则金属线的大小不会缩小。这一事实将最终排除电子存储作为一种可行的技术。事实上,一家领先的磁极存储技术的制造商已经得出结论,这项技术将不会在28nm以下扩展。
[0003] 看来未来的非易失性存储器(NVM)将采用基于材料结构变化的编程和擦除机制,例如相变存储器(PCM)或电阻随机存取存储器(ReRAM)。这种材料的结构变化依赖于原子在固体材料中的移动。
[0004] 因为这种编程和擦除机制会在固体材料中引入疲劳和磨损,所以缺陷产生率可能会增加几个数量级。存储器设计者必须做好准备来处理增加的缺陷产生率。
[0005] 企业大容量数据存储已经处理了错误校正。然而,所采用的解决方案利用了大量的备用存储器和毫秒级的时间帧。
[0006] 集成电路存储器具有有限的面积和仅几微秒的时间帧来执行错误校正,因此错误校正需要快速进行,并且必须有效地利用存储器,以便能够以低成本制造具有低失败率的NVM。

发明内容

[0007] 根据本发明的一个方面,一种用于针对存储器阵列提供错误校正的方法包括:对于存储在存储器阵列的用户存储器部分中的具有至少一个位错误的每个数据字,在错误PROM中存储与数据存储器部分中的数据字的地址相关联的错误条目,并且包括识别每个位错误的位位置的错误数据以及每个位错误的正确位数据;监测呈现给用户存储器部分的存储器地址,如果呈现给用户存储器部分的存储器地址是数据存储器部分中的数据字的地址,则从错误PROM中读取每个位错误的位位置和每个位错误的正确位数据;以及将正确位数据替换到被布置成从用户存储器部分中读取数据的存储器读取电路的每个所识别的位位置。
[0008] 根据本发明的一个方面,在错误PROM中存储包括每个位错误的位位置和每个位错误的正确位数据的错误条目包括将唯一项编程到可编程逻辑装置中,该唯一项是用户存储器部分中的数据字的地址和位错误的数量的布尔组合。
[0009] 根据本发明的一个方面,位错误的数量由计数器的输出状态定义,该计数器的输出状态形成作为布尔组合的唯一项的一部分。
[0010] 根据本发明的一个方面,通过递增计数器以提供不同的唯一项来顺序访问数据字中的每个位错误,并且递增计数器直到作为数据字的存储器地址和计数器的输出状态的布尔组合的唯一项不定义错误条目。
[0011] 根据本发明的一个方面,存储器地址处的位错误的每个错误条目包括下一失败标志位,存储器地址的最近存储的错误条目的下一失败标记位处于第一状态,并且存储器地址的所有其他存储的错误条目的下一失败标记位处于与第一状态相反的第二状态,并且当计数器的输出状态与唯一项相关联时,计数器不再递增,该唯一项定义最后输入的位错误的数量。
[0012] 根据本发明的一个方面,从错误PROM读取每个位错误的位位置包括从错误PROM中的存储器中读取每个位错误的位位置,并且从错误PROM中的存储器中读取每个位错误的正确位数据包括从错误PROM中的存储器中读取每个位错误的正确位数据。
[0013] 根据本发明的一个方面,从错误PROM中读取每个位错误的正确位数据包括从错误PROM中的存储器中读取每个位错误的正确位数据的多个副本,并且从所读取的正确位数据的多个副本中确定正确数据值。
[0014] 根据本发明的一个方面,一种用于针对存储器阵列提供错误校正的方法包括:向存储器阵列提供识别待从存储器阵列中读取的数据字的存储器地址;同时向错误PROM提供存储器地址,该错误PROM仅包含表示识别存储器阵列的在至少一个位位置处具有缺陷数据的数据字的存储器地址的数据,如果提供给错误PROM的存储器地址识别在至少一个位位置中具有缺陷数据的数据字,则从错误PROM输出经校正的数据和识别数据字中缺陷数据的位位置的信息;将数据字从存储器阵列读取到存储器读取电路中;以及将来自错误PROM的经校正的数据替换到存储器读取电路的所识别的位位置中。
[0015] 根据本发明的一个方面,从错误PROM输出经校正的数据包括输出经校正的数据的N个副本,以及从经校正的数据的N个副本中选择单个经校正的数据位。
[0016] 根据本发明的一个方面,具有错误校正的存储器阵列包括:用户存储器部分,该用户存储器部分包括存储器数据字;读出放大器区部,该读出放大器区部联接到用户存储器部分;地址总线,该地址总线联接到用户存储器部分;错误PROM,该错误PROM联接到地址总线;用户存储器部分错误校正码(ECC)区部,该用户存储器部分错误校正码(ECC)区部操作地联接到用户存储器部分;控制器,该控制器联接到地址总线,该控制器被配置为:断言地址总线上的地址,以将数据字从用户存储器部分读取到读出放大器区部中;响应于来自用户存储器部分存储器错误校正码(ECC)区部的信号,将用户存储器部分错误条目写入到错误PROM中,该用户存储器部分错误条目识别存储在用户存储器部分中的至少具有数据位错误的数据字、数据位错误的在字中的位位置以及数据位错误的经校正的数据值。错误PROM对在地址总线上断言的具有错误条目的地址作出响应,以读取数据位错误的正确数据值,并且向读出放大器区部生成校正信号,以在具有错误条目的地址处的数据字中所识别的位位置处利用数据位错误的所读取的正确数据值来进行替换。
[0017] 根据本发明的一个方面,具有错误校正的存储器阵列还包括:错误PROM错误校正码(ECC)区部,该错误PROM错误校正码(ECC)区部操作地联接到错误PROM,并且控制器还被配置为对来自错误PROM错误校正码(ECC)区部的信号作出响应,来自错误PROM错误校正码(ECC)区部的该信号识别存储在错误PROM存储器中的具有至少一个错误的数据错误条目,该响应包括将经校正的PROM数据错误条目写入PROM存储器,以及停用存储在错误PROM存储器中的所识别的用户存储器部分错误条目。
[0018] 根据本发明的一个方面,停用存储在错误PROM中的所识别的用户存储器部分错误条目包括在数据条目错误地址处编程另外的位。
[0019] 根据本发明的一个方面,在数据字中的所识别的位位置处利用数据位错误的所读取的正确数据值进行替换包括在数据字中的所识别的位位置处重写最初被写入读出放大器的缺陷数据。
[0020] 根据本发明的一个方面,在数据字中的所识别的位位置处利用数据位错误的所读取的正确数据值进行替换包括利用所读取的正确数据替换从用户存储器部分读取的缺陷数据。
[0021] 根据本发明的一个方面,控制器还被配置为递增计数器以定位多个错误条目,以便针对存储在用户存储器部分中的单个数据字中的多个位错误来存储正确数据值。
[0022] 根据本发明的一个方面,控制器还被配置为当计数器递增到未在错误PROM中定位错误条目的计数状态时,停止递增计数器。
[0023] 根据本发明的一个方面,计数器达到定位针对错误PROM中的数据字的最后输入的错误条目的状态。

附图说明

[0024] 下面将参考实施方案和附图更详细地解释本发明,附图中示出:
[0025] 图1是示出了根据本发明一个方面的具有错误校正的说明性存储器阵列的框图;
[0026] 图2是示出了根据本发明一个方面的错误校正PROM的说明性配置的框图;
[0027] 图3是示出了根据本发明一个方面的错误校正PROM的错误PROM读取解码器区部的说明性配置的图示;
[0028] 图4是示出了可用于偏置和编程图3的错误PROM读取解码器区部的说明性电路的图示;
[0029] 图5是根据本发明的一个方面的说明性数据可校正读出放大器的示意图,该数据可校正读出放大器可以用作具有错误校正的数据PROM中的存储器读取电路;
[0030] 图6是示出了根据本发明的一个方面的用于在存储器阵列中执行错误校正的方法的示例的流程图;
[0031] 图7是示出根据本发明的一个方面的作为图6所示方法的变型的用于在存储器阵列中执行错误校正的方法的另一示例的流程图;
[0032] 图8是示出了根据本发明的一个方面的用于在错误PROM的坏位地址数据存储器的位置中设置下一失败标记的方法的示例的流程图;
[0033] 图9是示出了根据本发明的一个方面的用于在错误PROM的坏位地址数据存储器中的位置设置下一失败标记的方法的另一示例的流程图;并且
[0034] 图10A、图10B、图11A和图11B是示出了根据本发明的一个方面的用于将新数据写入存储器阵列中的所选存储器地址的说明性方法的流程图。

具体实施方式

[0035] 本领域普通技术人员将认识到,以下描述仅是例示性的而非以任何方式进行限制。本领域技术人员将易于想到其他实施方案。
[0036] 首先参考图1,框图示出了根据本发明的一个方面的具有错误校正的说明性存储器阵列10。数据存储在存储器阵列10的用户存储器部分12中。错误校正区部(ECC)14在将从用户存储器部分12读取的数据提供给读出放大器16之前对该数据进行错误校正。存储器操作由控制器18通过地址总线20控制。地址总线20还包括用于读取和写入操作的控制线(未明确示出)。ECC区部14通过总线22与控制器18通信。
[0037] 根据本发明的一个方面,提供了错误可编程只读存储器(PROM)24,该错误PROM也与控制器18通信以通过地址总线20接收地址。与错误PROM 24相关联的错误校正区部(ECC)26在将从错误PROM 24读取的数据通过总线28提供给读出放大器16之前,对该数据进行错误校正。如下文将进一步描述的,来自错误PROM 24的输出通过在读出放大器16从用户存储器部分12输出寻址数据之前用经校正的位值进行替换来校正从用户存储器部分12呈现给读出放大器16的用户数据中的位错误。本领域普通技术人员将理解,读出放大器16也可以是锁存器,来自用户存储器部分12的用户数据在被读出后被传送到该锁存器中。
[0038] 现在参考图2,框图示出了根据本发明的一个方面的图1的错误PROM 24的说明性配置。在图2所示的实施方案中,错误PROM 24包括错误PROM读取解码器区部30、经校正的数据输出区部32和错误PROM写入区部34。
[0039] 错误PROM读取解码器区部30用作可编程解码器并且当将从用户存储器部分12读取数据时,在地址总线20上被同时提供与提供给存储器阵列10的用户存储器部分12相同的地址,并且,如本文将公开的,还包括计数器42。已识别的每个单独的位错误被可编程地解码为错误条目,该错误条目是地址总线20上的地址和计数器的内容的组合。如本文将公开的,计数器的使用允许单个字中的多个位错误各自被编程为单独的位错误。
[0040] 对于每个单独的所识别的位错误,错误PROM 24的经校正的数据输出区部32的坏位地址数据存储器36存储识别错误的位列位置的数据和用于替换错误位值的正确数据。将参考图3详细讨论错误PROM读取解码器区部30的操作。
[0041] 错误PROM读取解码器区部30的可编程解码器被编程为对图3所示的地址总线20上的地址和计数器42的状态的组合作出响应。如果该组合不对应于被编程到错误PROM读取解码器区部30中的错误条目,则错误PROM 24不采取动作。如果地址总线20上的地址和计数器42的状态的组合对应于被编程到错误PROM读取解码器区部30中的错误条目,则错误PROM读取解码器区部30断言线54上的错误位标记,该错误位标记经由总线22(未示出连接)馈送到控制器18。线54上的错误位标记信号可以若干不同的方式获得,其示例将在本文中公开。
[0042] 坏位地址数据存储器36中的每个位置表示一个错误条目,并且利用包括从数据存储器12读取的字中的错误的位位置的数据和用于替换坏数据的经校正的数据来编程。数据存储器中的位置优选按照遇到错误的顺序进行编程。
[0043] 经校正的数据输出区部32中的坏位地址数据存储器36驱动坏位列位置解码器38和经校正的数据确定器48。如果地址总线20上的地址和计数器42的状态的组合对应于坏位地址数据存储器36中的错误条目,则来自坏位列位置解码器38的输出识别待校正地址处的位的在数据字中的位位置,并且经校正的数据确定器48输出正确数据。
[0044] 坏位列位置解码器38是m选一解码器。该坏位列位置解码器从坏位地址数据存储器36接收线40上的m位输出,该输出识别具有错误位值的特定位的列位置并且将其解码为与具有错误值的特定位的列位置相对应的线440至44n中的一个线。坏位列位置解码器38的线440至44n中的一个线上的该信号用于在读出放大器中产生经解码的写入错误数据选通脉冲,这将参考图5进行讨论。坏位地址数据存储器36存储缺陷位的正确值的N个不同副本,其中N≥1,并且在线46上输出这些副本。考虑到替换位是使用用于用户存储器部分12中的存储器单元的相同存储机制来进行存储的并因此受到与用户存储器部分12的单元相同的缺陷机制的影响,可以选择副本数量N来提供期望的冗余水平。正确数据值的N个副本的使用允许采用本领域已知的表决方案,以便即使存储在坏位地址数据存储器36中的所存储的经校正的数据值中的一个或多个数据值变得存在缺陷,也允许进行校正。在示例性实施方案中,经校正的数据确定器48接收在线46上输出的正确数据值的N个副本,并且利用表决方案来确定正确数据值,并且在经校正的数据位输出50上输出正确数据值。不需要使用正确数据值的N个副本和经校正的数据确定器48,并且在一些实施方案中,坏位地址数据存储器36可以输出单个经校正的值。本领域技术人员将认识到,使用坏位列位置解码器38节省了坏位地址数据存储器36中的存储空间,然而在其他实施方案中,经解码的实际位位置存储在坏位地址数据存储器36中,这输出线440至44n。坏位地址数据存储器36不需要存储正确数据值的N个相同副本。在一个实施方案中,正确数据值存储在某些预定单元中,并且正确数据值的补码存储在其他预定单元中。
[0045] 附图标号52识别下一位时钟,将在本文中描述该时钟的操作。下一位时钟52用于递增计数器42,以提供部分地址,该部分地址识别地址总线20上的存储器地址处的已被识别为具有一个或多个缺陷位的字中一个或多个缺陷位的位置。计数器42的使用允许针对存储在地址总线20上的单个地址处的数据字的每个位错误将单独的条目编程到错误PROM读取解码器区部30中。错误PROM读取解码器区部30中的每个条目寻址坏位地址数据存储器36中的唯一地址线。附图标号54识别了输出,该输出用信号表示与缺陷位相关联的错误条目的解码。将参考图3讨论这些输入和输出。
[0046] 错误PROM写入区部34通过总线22从图1的控制器18接收指令和数据。控制器18与ECC区部14通信,该ECC区部对从用户存储器部分12读取的数据执行错误校正。由ECC区部14识别的位错误被通信传送到控制器18。然后,控制器18向错误PROM写入区部34发送所识别的位错误的位置,包括它的存储器地址、在该地址处的存储器字内的位列位置以及缺陷位的正确值。如上所述,优选地存储该位的正确值的多个副本,以便针对缺陷位的正确值提供错误校正。错误PROM写入区部34将错误条目编程到错误PROM读取解码器区部30中(未示出连接)。错误条目包括地址总线20上包含错误的地址和用以指示当前位错误号的位计数指示符(计数器42的计数状态输出)。错误PROM写入区部34还将m位数据条目和该位的正确值的N个副本编程到坏位地址数据存储器36中,并且编程到由错误PROM读取解码器区部30解码的相关地址线中,其中该m位数据条目识别具有错误位值的特定位的列位置。
[0047] 一旦位位置和正确位数据已被编程到经校正的数据输出区部32中的坏位地址数据存储器36中,并且地址和位计数指示符被编程到错误PROM解码器区部30中,则下次在错误条目在错误PROM读取解码器区部30中解码时,由错误PROM 24校正错误。将参考图3讨论错误校正PROM 24的经校正的数据输出区部32中的坏位地址数据存储器36的寻址。坏位列位置解码器38提供正被校正的位的列位置,并且坏位地址数据存储器36提供正确数据值来替换读出放大器16中的指定位位置。如将在本文中公开的,计数器42的使用允许从用户存储器部分12读取的字中的每个单独的失败位被识别为单独的错误条目,并且被使用从错误PROM 24提供的替换位来校正。
[0048] 本发明的具有错误校正的存储器阵列10也监测错误PROM 24的输出,并且校正由错误PROM 24中的错误PROM读取解码器区部30中的缺陷存储位置生成的错误。与图1中所示的错误PROM 24相关联的ECC 26监测来自坏位地址数据存储器36的线40上的m位数据和线46上的N位经校正的数据以及可选ECC信息,该可选ECC信息可以与线40上的m位数据以及N位经校正的数据一起存储在坏位地址数据存储器36中。如果检测到错误,与错误PROM 24相关联的ECC 26与图1的控制器18通信。由ECC区部26识别并由此校正的错误被通信传送到控制器18。然后,控制器18指示错误PROM写入区部34停用返回错误数据的错误条目,并且用坏位地址数据存储器36中的另一地址替换返回具有错误的数据的地址,并且提供由ECC区部
26恢复的经校正的数据位,以被存储在与新替换的地址相关联的坏位地址数据存储器36中。响应控制器18,错误PROM读取解码器区部30被错误PROM写入区部34进一步重新编程,以指向新替换的地址。
[0049] 具有错误校正的存储器阵列10通过从用户存储器部分12读取数据字并将其保持在读出放大器16中来进行操作。同时,针对在用户存储器部分12中访问的字的被存储在错误PROM 24中的已知位读取错误的校正数据被访问并被写入读出放大器16。
[0050] ECC 14对读出放大器16中的数据字执行ECC检查,如果适用,该数据字包含来自错误PROM 24的替换的经校正的数据位。如果(ECC)14识别出新的错误,则新错误条目被写入错误PROM 24中的错误PROM读取解码器区部30,并且由ECC 14生成的m位位置数据和正确位值的N个副本被错误PROM写入区部34写入坏位地址数据存储器36。响应控制器18,错误PROM读取解码器区部30进一步由错误PROM写入区部34编程,以在地址总线20上出现地址并且计数器42指向该地址处的当前错误号时指向新错误条目。如前所述,如果与错误PROM 24相关联的ECC 26识别出错误,则由ECC 26生成的错误地址位置和经校正的数据被写入错误PROM 24的错误PROM读取解码器区部30中的新位置,并且当地址和计数器已经达到本文将公开的当前状态时,通过重新编程错误PROM读取解码器区部30以指向错误PROM读取解码器区部30中的新位置,错误PROM 24中的坏字线位置被停用。这将防止选择到具有识别出的错误的字线。在一些实施方案中,擦除ReRAM元件78以防止具有识别出的错误的字线被选择。
[0051] 现在参考图3,该图示示出了根据本发明的一个方面的类似于图2的错误PROM 24的错误PROM读取解码器区部30的说明性配置。图3所示的特定解决方案是使用诸如类似PLD的寻址架构的可编程解码器实现的,应当理解,在不超出范围的情况下,可以使用其他寻址架构。
[0052] 用于向用户存储器部分12提供存储器地址的地址总线20也用于向错误PROM读取解码器区部30提供地址,该错误PROM读取解码器区部确定在地址总线20上的地址处所包含的数据中先前是否已经识别出任何错误。地址总线20的单独的地址位被提供给缓冲器56‑0、56‑1、56‑2和56‑3。本领域普通技术人员将理解,虽然图3中示出了四个地址位,但是所使用的地址位的数量将等于地址总线20上提供的地址位的数量。
[0053] 缓冲器56‑0、56‑1、56‑2和56‑3各自都具有互补的反相和非反相输出,共同在附图标号58表示。多个线601至60n被示为与缓冲器56‑0、56‑1、56‑2和56‑3的互补的反相和非反相输出线58相交,并且用作在错误PROM读取解码器区部30中实现的布尔逻辑的输出项。如本文将公开的,线601至60n中的每个线都可以被编程为表示在已发现数据错误的所表示的地址处的地址和错误号。本领域普通技术人员将理解,线的数量n是表示具有设计者指定的可被校正的缺陷数据位的不同地址的最大数量的数字。在较大的存储器阵列10中,数量n可以是数千。
[0054] 根据本发明的一个方面,按照失败发生的顺序,使用二进制地址,用户存储器部分12中的存储器单元的具有失败位的地址被有效地写入到错误PROM 24的错误PROM读取解码器区部30中,该二进制地址被掩码编程为对应于线601至60n中的一个线,其中地址0对应于线601,并且对于每个新条目递增。掩码编程地址由错误PROM写入区部34中的二进制解码器和写入电路62提供。本领域的普通技术人员将认识到,二进制解码器和写入电路62中的二进制解码器被组织为本领域的普通技术人员所公知的二进制到n线中一者(binary‑to‑n‑1
one‑of‑n‑line)的解码器,其中2( )个二进制输入(由总线22提供)被解码以激活n个输出线中的一个输出线(在图2和图3中示出为线601至60n)。二进制解码器和写入电路62中的写入电路可以是用于编程错误PROM 24中的非易失性存储器元件的任何电路,在本文公开的说明性实施方案中表示为ReRAM元件。这种编程电路的细节和操作对于本领域的普通技术人员来说是公知的,为了避免使本公开过于复杂和模糊本发明的细节,本文不再讨论。
[0055] 计数器42具有在附图标号66处共同识别的下一位时钟输入52(先前参考图2识别)、复位输入64和一组互补输出。每个计数器状态表示该地址的错误号,并且被坏位地址数据存储器36解码以表示存储在用户存储器部分12中的数据字中的错误位位置。作为示例,在被组织为32位字的存储器中,计数器42将是5位计数器,该计数器的互补输出被解码为32选一,这是本领域已知的。计数器状态不表示字中的实际位位置,而是表示这是在该地址被校正的第1位错误、第2位错误还是第n位错误,即由错误号以检测到错误的顺序来识别每个位错误。在计数器42的互补输出66与线601至60n之间编程逻辑连接,以允许线601至60n中的每一者表示该地址上缺陷数据的位错误号。每当在地址总线20上断言新地址时,计数器42在线64上复位。如本文将公开的,线601至60n可以被单独编程,使得每个线对由地址总线20上的地址和计数器42的计数状态识别的错误进行唯一地解码,从而允许校正从数据存储器12读取的数据字中的多于一个的位错误。
[0056] 线601至60n中的每个线被示出为由缓冲器68缓冲,并且作为地址线呈现给坏地址数据存储器36。由于当如本文所公开的那样编程时,线601至60n中的每个线对由地址总线20上的地址和计数器42的计数状态的唯一组合所定义的单个位错误作出响应,所以线601至60n中的仅一个线将对地址总线20上的地址和计数器24的状态的任何组合作出响应,该组合先前被识别为单独的位错误,因此,缓冲器68的输出形成到坏位地址数据存储器36的经解码的字线地址。
[0057] 当地址总线20上呈现的地址包括一个或多个位错误时,错误位标记54指示存在错误。存在若干方法来实现位标记54。在图3所示的本发明的一个实施方案中,被缓冲的线601至60n被呈现给OR门70。线54处的OR门70的输出(先前参考图2识别)指示在已对地址总线20上的地址和计数器42的计数器状态的组合进行唯一地解码的线60‑X中的一个线上是否存在任何已知的缺陷位。
[0058] 在本发明的另一实施方案中,如图2所示,OR门70用虚线表示,并且该OR门的输入由位列地址线440至44m驱动。在这种配置中,OR门70的输出将仅在位列地址线440至44m中的一个位列地址线变为高电平时变为高逻辑电平,以指示被编程到坏位地址数据存储器36中的错误的位位置。在本发明的该实施方案中,OR门70仅需要与从坏位列位置解码器输出的位列地址线的数量相对应的m个输入,而不是与错误PROM 24的错误PROM读取解码器区部30中的字线601至60n的数量相等的输入的数量。在本发明的实施方案中,提供了对大量单个位错误的校正,图3所示的OR门70的输入的数量也将变大,并且如图2所示定位OR门70将节省集成电路上的管芯面积和布线面积。
[0059] 在本发明的另一实施方案中,也在图2中示出,坏位地址数据存储器36中的列被用作错误位标记,并且被编程为逻辑高状态,当通过线60至60‑5选择任何地址时,在坏位地址数据存储器36的虚线输出上产生高逻辑电平(变成错误位标记54)。该方案完全消除了OR门70,节省了集成电路上的管芯空间。
[0060] 根据本发明的一个方面,在用户存储器部分12中发现的任何缺陷地址被编程到错误PROM读取解码器区部30之前,所有的线601至60n被较弱地保持在逻辑低电平。现在参考图4,该图示示出了可以用于偏置线601至60n以及用于对图3的错误PROM读取解码器区部30进行编程的说明性电路。
[0061] 图4示出了表示性的线60‑X。在任何信息被编程到错误PROM读取解码器区部30之前,具有比连接到线60‑X的其他晶体管更低的电压阈值的n沟道晶体管72表现出亚阈值泄漏电流,以将线60‑X保持在低逻辑电平。p沟道晶体管74作为上拉装置连接到线60‑X。p沟道晶体管76与ReRAM元件78和n沟道晶体管80串联。p沟道晶体管76和n沟道晶体管80的栅极连接在一起。最初,ReRAM元件78未被编程(擦除),并且保持在高电阻状态。p沟道晶体管76具有足够低的电压阈值,以表现出足够的亚阈值泄漏电流,从而将p沟道晶体管74的栅极拉高至VDD,以将该p沟道晶体管保持在截止状态。p沟道晶体管76和n沟道晶体管80的公共栅极连接连接到错误PROM读取线82(也在图2中示出),该错误PROM读取线保持在低逻辑状态并且由控制器18断言以读取错误PROM读取解码器区部30。n沟道晶体管80处于截止状态,并且p沟道晶体管76导通。因为ReRAM元件78是未编程的,所以升高错误PROM读取线82处的电压以导通n沟道晶体管80来读取存储器30对电路没有影响,因为p沟道晶体管76的亚阈值泄漏提供了可以通过未编程的ReRAM元件78提供的更大量的电流。
[0062] 再次参考图3,如前所述,在任何信息被编程到错误PROM读取解码器区部30之前,所有的线60‑1至60‑5由晶体管74、76和80保持为低电平。通过缓冲器68缓冲的OR门70的输入全部处于逻辑低状态,并且OR门70的线54的输出处于逻辑低状态。
[0063] 当希望将线60‑X与已识别出缺陷位的存储器地址相关联时,错误PROM写入区部34通过参考图4描述的电路对联接到线60‑X的ReRAM元件78进行编程,并且还对编程电路84和98内的ReRAM元件(即,ReRAM元件86、92、100和106)的组合进行编程,这将分别唯一地允许响应于地址总线20上的地址和计数器42的下一可用计数状态(对于第一错误从计数状态0开始)的结合的线60‑X被拉高。在ReRAM元件78以及编程电路84和98的组合已经被编程之后,每当错误PROM读取线82通过在错误PROM读取线82上断言来自控制器18的信号以读取错误PROM读取解码器区部30而被带到高逻辑电平时,n沟道晶体管80被导通,并且由于通过ReRAM元件78的低电阻路径,将p沟道晶体管74的栅极下拉到低逻辑电平。这导通p沟道晶体管74,这样克服了将线60‑X保持在低逻辑状态的n沟道晶体管72的微弱泄漏,并且当通过地址总线20上的地址提供的部分地址和计数器42的状态提供的部分地址的组合来寻址线60‑X时,允许线60‑X被拉高到高逻辑状态,这两个部分地址一起向坏位地址数据存储器36提供地址,该坏位地址数据存储器的输出识别坏位的寻址数据字中的位位置和坏位的正确数据值。
[0064] 当来自地址总线20的已被编程到线60‑X中以识别坏位的地址在地址总线20上被呈现给错误PROM读取解码器区部30并且计数器42处于识别坏位错误号的计数状态时,仅导通的n沟道晶体管(88,94)(102,108)和其在线60‑X上相应串联连接的ReRAM元件(86,92)(100,106)的组合不提供将线60‑X下拉到地的电路路径,因为特定组合中的ReRAM元件(86,92)(100,106)都没有被编程。因为从线60‑X到OR门70的输入中的一个输入现在由于已编程的ReRAM元件78以及编程电路84和98的独特组合而为高,其在线54的输出(错误位标记)变为高逻辑电平。所有其他地址和计数器状态组合将具有导通的n沟道晶体管(88,94)、(100,
106)及其相应串联连接的ReRAM元件(86,92)、(100,106)的至少一个组合,该组合提供将线
60‑X下拉到地的电路路径。
[0065] 当ECC 14识别出有缺陷位的存储器地址时,响应于控制器18,错误PROM写入区部34将该地址编程到线601至60n中的下一可用线。二进制解码器和写入电路62将正确位写入坏位地址数据存储器36的相应位置。如前所述,在任何地址被编程到错误PROM读取解码器区部30之前,所有的线601至60n被通过n沟道晶体管72的漏电流微弱地保持在低逻辑状态。
[0066] 通过进一步研究图3和图4,可以看到对任何线60‑X进行编程以对具有缺陷数据位的存储器地址作出响应的方法。附图标号84(识别图3中的线601至60n和缓冲器56‑0至56‑3的互补输出58的每个交叉点处的小方块中的一个方块以及图4的虚线84内的电路)表示可编程电路,该可编程电路用于将地址编程到线601至60n中的任一个线中。在图4中,可以看到电路84包括与线60‑X和地之间的n沟道晶体管88串联的第一ReRAM元件86。n沟道晶体管88的栅极连接到图3中缓冲器56‑0至56‑3中的一个缓冲器的非反相输出90。第二ReRAM元件92与线60‑X和地之间的n沟道晶体管94串联。n沟道晶体管94的栅极连接到图3中缓冲器56‑0至56‑3中的一个缓冲器的反相输出96。当缓冲器56‑0至56‑3的输出线90或96上呈现逻辑高电平时,联接到该线的晶体管88和94中的一个晶体管将被导通。如果与该晶体管串联的ReRAM装置已经被编程到其低电阻状态,线60‑X将被下拉到地,克服上拉p沟道晶体管74。
[0067] 为了将地址编程到错误PROM读取解码器区部30中,与所有的缓冲器56‑0至56‑3相关联的可编程电路84中的ReRAM元件被选择性地以唯一的模式编程,使得当所选地址在地址总线20上被呈现给错误PROM读取解码器区部30时,仅导通的n沟道晶体管(88,94)和其相应串联连接的ReRAM元件(86,92)的一个组合不提供将线60‑X下拉到地的电路路径,因为特定组合中的ReRAM元件都没有被编程。所有其他地址组合将具有导通的n沟道晶体管(88,94)及其相应串联连接的ReRAM元件(86,92)的至少一个组合,该组合提供将线60‑X下拉到地的电路路径。
[0068] 本领域的普通技术人员将理解,可以采用常规的ReRAM编程电路和技术来编程ReRAM元件(例如,图3和图4中所示的ReRAM元件78、84和98)。错误PROM写入区部34中用于向各种ReRAM元件施加适当编程电位的特定电路未示出,以避免使本公开过于复杂和使本发明不清楚。
[0069] 在如下所述的地址和位错误号被编程到与所有的缓冲器56‑0至56‑3相关联的可编程电路84中的ReRAM元件中以呈现上述唯一模式之后,错误PROM读取解码器区部30监测地址总线20。
[0070] 计数器42允许校正单个数据存储字中的多个坏位,并且用于识别被编程到线601至60n中的一个线中的所选地址的哪个位错误是有缺陷的。每次地址在地址总线20上被断言时,计数器复位,因此从零开始。如图6的流程图所示,计数器递增。在本发明实施方案的非限制性示例中,如本领域已知的,5位计数器将允许使用5个互补位输出来对单个存储器字中多达32位的错误进行解码。
[0071] 对32个地址中的任意一个地址进行编程以识别在线601至60n中的一个线上识别的字中的位错误号的方法可以通过图3和图4的进一步研究来看到。附图标号98(识别图3中的线601至60n和计数器42的互补输出66的每个交叉点处的小方块中的一个小方块以及图4的虚线98内的电路)表示可编程电路,该可编程电路用于将来自计数器42的地址中的一个地址(作为32个地址中的一个地址的非限制性示例)编程到线601至60n中的任一个线中,以识别线601至60n中的一个线上识别的字中多达32个缺陷位错误号。在图4中,可以看到电路98包括与线60‑X和地之间的n沟道晶体管102串联的第一ReRAM元件100。n沟道晶体管102的栅极连接到图3中互补计数器输出66中的一个互补计数器输出的非反相输出104。第二ReRAM元件106与线60‑X和地之间的n沟道晶体管108串联连接。n沟道晶体管108的栅极连接到图3中互补计数器输出66中的一个互补计数器输出的反相输出104。当线104或110上呈现逻辑高电平时,联接到该线的晶体管102和108中的一个晶体管将被导通。如果与该晶体管串联的ReRAM装置已被编程到其低电阻状态,则线60‑X将被下拉到地。
[0072] 因此,通过以唯一的模式选择性地编程与计数器42的所有的输出相关联的可编程电路98中的ReRAM元件,使得当位错误号呈现在计数器42的输出时,仅导通的n沟道晶体管(102,108)和其相应串联连接的ReRAM元件(100,106)的一个组合不提供将线60‑X下拉到地的电路路径,该位错误号被编程到错误PROM读取解码器区部30中。导通的n沟道晶体管(102,108)和其相应串联连接的ReRAM元件(100,106)的所有的其他组合提供了至少一个电路路径来将线60‑X下拉到地。
[0073] 当总线20上的地址被呈现给错误PROM 24时,计数器42处于其零状态。如果总线20上的地址识别出具有一个位错误的数据字,由缓冲器56‑1至56‑3的PLD地址输出和计数器42输出处的5位互补计数状态的经解码零计数状态定义的错误条目将允许已被编程以对该错误作出响应的线601至60n中的一个线被拉高到高电平,从而将输出54(即,错误位标记54)设置到高逻辑电平。线601至60n中已被拉高高电平的单个线被馈送到坏位地址数据存储器
36,在该坏位地址数据存储器中,该单个线充当被断言的字线,并因此选择被编程到坏位地址数据存储器36中的单个数据字,以将m位列地址提供给坏位列位置解码器38作为输出,从而使坏位的列地址的位列地址线(440至44m中的一个线)被激活,并且将正确数据的N个副本呈现给经校正的数据确定器48。如前所述,可以存储正确位值的多个副本,以增加具有错误校正的存储器阵列10的可靠性。在替换位的N个存储位置中的一存储位置变得有缺陷的情况下,可以使用表决方案在经校正的数据确定器48中验证替换位的正确值,如前所述,该经校正的数据确定器可以是例如表决电路。表决电路在本领域是公知的。经校正的数据值呈现在输出线50上。
[0074] 此外,如上所述,每个识别出的错误的被编程到坏位地址数据存储器36中的数据字还可以包括数据字的ECC位以及用于驱动错误位标记54的可选位。
[0075] 如前所述,计数器42允许校正单个数据存储器字中的多个坏位。从存储器中读取的单个数据字中的每个位错误被编程为错误PROM读取解码器区部30中的线601至60n中的不同线上的单独错误条目。对数据字中发现的第一错误进行编程,使得计数器状态“0”与总线20上的地址相结合,激活线601至60n中的第一个线,以将该错误的地址提供给坏位地址数据存储器36。在存储器的同一数据字中发现第二位错误的情况下,在线54上的下一位时钟脉冲将计数器42计时到计数器状态“1”后,错误位标记54将保持高电平。该第二错误被编程到错误PROM读取解码器区部30中的线601至60n中的不同的一个线上,使得计数器状态“1”结合总线20上的地址激活线601至60n中的第二个线,以将该错误的地址提供给坏位地址数据存储器36。通过结合总线20上的地址使用计数器42的连续计数器状态来识别另外的位错误,以激活线601至60n中的另外的线,从而向坏位地址数据存储器36提供该地址。
[0076] 作为错误PROM 24的操作的示例,考虑在数据存储器地址XXXX处的数据字被发现在位位置3处具有单个位错误的情况。错误PROM读取解码器区部30中的线601至60n中的下一可用线被编程为对包括线56‑0至56‑3上来自地址总线20的部分地址XXXX和线66上由来自计数器42的计数器状态“0”提供的部分地址的地址作出响应。因为每次在地址总线20上断言新地址时,计数器42在线64上被复位到状态“0”,所以错误PROM读取解码器区部30中的线601至60n中被编程的一个线将变为高逻辑电平,并且错误位标记54将变为高逻辑电平。错误PROM读取解码器区部30中的线601至60n中的被编程的一个线是到坏地址数据存储器36的经解码字线地址,在该坏地址数据存储器处存储到坏位列位置解码器38的m位列地址,以提供线440至44n中的一个线上的坏位的位位置和待从坏地址存储器360读出的校正位值的N个副本,并且出现在来自经校正的数据确定器48的经校正的数据位输出线50上。控制器18将响应于错误位标记54,将正确数据位写入读出放大器16,这将在下面进一步描述。如上所述,坏地址数据存储器36中的字线地址处的数据还可以包括ECC位以及错误位标记54的驱动位。
[0077] 然后,控制器18在图2中的线52处断言下一位时钟脉冲,以递增计数器42。如果在错误PROM读取解码器区部30中的线601至60n中的另一个线上已编程了第二坏位位置,则线56‑0至56‑3上的从地址总线20解码的线601至60n中的一个线上的字线地址和线66上的来自计数器42的计数器状态“1”将导致错误PROM读取解码器区部30中的线601至60n中的针对该错误编程的一个线变为高逻辑电平,并且错误位标记54将再次变为高逻辑电平。这还将使坏地址存储器36访问坏位列位置解码器38,以便提供线440至44n中的不同的一个线上来自被寻址字的第二坏位的位位置,并且将使校正位值的N个副本从坏地址存储器36读出,并且出现在来自经校正的数据确定器48的经校正的数据位输出线50上。控制器18将响应于错误位标记54,将正确数据位写入读出放大器16,这将在下面进一步描述。
[0078] 然后,控制器18在图2中的线52处断言下一位时钟脉冲,以将计数器42递增到计数器状态“2”。上述过程将重复进行,直到来自地址总线20的地址和来自计数器42的部分地址不使错误PROM读取解码器区部30中的线601至60n中的任一个线变为逻辑高电平。在这种状态下,错误位标记54将处于逻辑低电平,向控制器18指示被寻址字中没有另外的坏位被识别并编程到错误PROM读取解码器区部30中。在计数器是5位计数器的实施方案中,可以执行该过程来识别和校正在单个被寻址数据字中没有同时失败的多达32个坏位。
[0079] 如果线60‑X是被激活(表示错误目),因为ReRAM元件78已被编程,并且图3和图4中所示的电路正常工作,则该对ReRAM元件86和92以及100和106中的一个ReRAM元件将处于编程状态,而该对中的另一个ReRAM元件将处于未编程状态。错误PROM读取解码器区部30存在两种失败模式。
[0080] 在第一失败模式中,一对ReRAM元件86和92以及100和106中的假定保持未编程的一个ReRAM元件被错误地编程,导致该对中的两个ReRAM元件都处于编程状态,而在第二失败模式中,一对ReRAM元件86和92以及100和106中的假定被编程的一个ReRAM元件被错误地擦除或未能编程,导致两个ReRAM元件都处于未编程状态。
[0081] 在第一失败模式中,一对中的两个ReRAM元件都处于编程状态,线60‑X将不可能被允许变高,并且在读出放大器中没有坏位被替换。这将使与数据存储器12相关联的ECC 14向控制器18报告未校正的位错误。控制器18将通过使错误PROM写入区部34在线60‑1至60‑5中的另一个线上重新编程坏位替换来进行响应。因此,这种失败模式是自动校正的。失败的线60‑X对自身进行停用,因为其不可能被选择,并且与数据存储器12相关联的ECC 14在错误PROM 24中启动替换错误校正条目。
[0082] 在第二失败模式下,一对中的两个ReRAM元件都处于未编程状态,其中错误不会自动校正。这是因为线60‑X可能通过错误地使ReRAM中的一个ReRAM被未编程而被错误地允许进入高状态。检测该错误的一种方法是提供XNOR门112,该XNOR门的输入连接到ReRAM 86和92。XNOR门112的输出与线60‑X的状态在AND门114中进行AND运算。如果ReRAM 86和92两者都处于未编程状态,则XNOR门112的输出为高,并且附图标号116处的与控制器18通信的AND门114的输出也为高,指示第二失败模式类型的错误PROM错误。
[0083] 类似地,XNOR门118的输入连接到ReRAM 100和106。XNOR门118的输出与线60‑X的状态在AND门120中进行AND运算。如果ReRAM 100和106两者都处于未编程状态,则XNOR门118的输出为高,并且附图标号122处的与控制器18通信的AND门120的输出也为高,指示第二失败模式类型的错误PROM错误。
[0084] 控制器18对线116和122上报告的第二失败模式错误作出响应,指示错误PROM写入区部34将对坏位的校正作为错误条目编程到线60‑1至60‑5中的另一个线上,并且还擦除线60‑X的显示错误的ReRAM元件78,或者对受影响的线60‑X上另外的ReRAM元件进行编程从而对其进行停用。
[0085] 本领域的普通技术人员将会理解,存在将提供相同错误检测功能的其他逻辑布置。这些技术人员也将意识到存在其他可能的解决方案。例如,当错误PROM 24空闲时,可以通过循环通过由线601至60n驱动的字线来执行错误该PROM的周期性读取操作。ECC 26(或存储在坏位地址数据存储器36中的ECC位)用于检测弱或有缺陷的ReRAM位,然后,控制器18可以通过沿线60‑X编程一个或多个另外的ReRAM元件来对弱位进行重新编程或删除PLD项,以将其停用,然后对替换项进行编程,如前所述。
[0086] 现在参考图5,根据本发明的一个方面,其为可以在具有错误校正的存储器阵列10中使用的读出放大器130形式的说明性数据可校正存储器读取电路的示意图。本领域的普通技术人员将理解,图5所示的数据可校正读出放大器仅是存储器读取电路的一个非限制性示例,该存储器读取电路可以与根据本发明一个方面的具有错误校正的存储器阵列10一起使用。
[0087] 数据可校正读出放大器130包括由第一p沟道晶体管134形成的双稳态交叉联接锁存器132,该第一p沟道晶体管在电压源138和读取数据选通线140之间与第一n沟道晶体管136串联连接。第二p沟道晶体管142在电压源138和读取数据选通线140之间与第二n沟道晶体管144串联连接。第一p沟道晶体管134和第一n沟道晶体管136的栅极一起连接到第二p沟道晶体管142和第二n沟道晶体管144的公共漏极连接。第二p沟道晶体管142和第二n沟道晶体管144的栅极一起连接到第一p沟道晶体管134和第一n沟道晶体管136的公共漏极连接。
[0088] 第一p沟道晶体管134和第一n沟道晶体管136的公共漏极连接通过p沟道晶体管148连接到附图标号146处的参考电压。第二p沟道晶体管142和第二n沟道晶体管144的公共漏极连接通过p沟道晶体管152连接到在附图标号150处从用户存储器部分12中的所选单元输出的数据。晶体管148和152的栅极一起连接到来自控制器18的负载信号150。迄今为止,数据可校正读出放大器130的部分是常规的读出放大器电路,并且其操作是公知的。
[0089] 来自经校正的数据确定器48的输出线50上的经校正的数据呈现在线154上,并且通过n沟道晶体管156联接到第一p沟道晶体管134和第一n沟道晶体管136的公共漏极连接。反相器158生成经校正的数据的补码,该补码通过n沟道晶体管160联接到第二p沟道晶体管
142和第二n沟道晶体管144的公共漏极连接。
[0090] 晶体管156和160的栅极由线162上的解码写入错误选通脉冲一起驱动。线162上的经解码写入错误信号从线166上的由控制器18生成的写入错误信号和位列地址线440至44n中的由坏位列位置解码器38激活以识别位错误的列位置的一个位列地址线在AND门164中生成。线166上的从控制器18生成的错误写入信号由控制器18响应于图2的错误位标记54(图3的OR门70的输出)而生成。
[0091] 根据本发明的任何特定实施方案中错误信号变得可用的速度,控制器18可以首先通过断言线150上的有效低写入(加载)控制信号,将缺陷数据从用户存储器部分12中的所选单元写入锁存器130,然后通过断言经解码写入错误数据选通线162上的有效高写入控制信号,利用经校正的数据重写缺陷数据。在数据字包含多个错误的情况下,所有坏位的错误校正可能需要一些时间,并且将使用重写过程。
[0092] 现在参考图6,流程图示出了根据本发明的一个方面的用于在存储器阵列10中执行错误校正的方法170的示例。该方法从附图标号172处开始。
[0093] 在附图标号174处,确定是否已在存储器地址总线20上断言新地址。如果没有,则该方法在附图标号174处等待,直到在存储器地址总线20上断言了新地址。
[0094] 在附图标号176处,确定总线20上的断言地址加上图3的计数器42的当前计数是否被解码为线601至60n中的一个线上的错误条目,以对图2的错误校正PROM 24的经校正的数据输出区部32的坏位地址数据存储器36中的字进行寻址。
[0095] 如果总线20上的断言地址加上图3的计数器42的当前计数未被解码为错误条目,该错误条目输出存储在图2的错误校正PROM 24的经校正的数据输出区部32的坏位地址数据存储器36中的字,则该方法进行到附图标号178,在该附图标号处,在图1的ECC 14中对已加载到读出放大器中的数据执行ECC。
[0096] 在附图标号180处,确定ECC 14是否已经在已加载到读出放大器中的数据中检测到任何错误。如果未在已加载到读出放大器中的数据中检测到错误,则该方法进行到附图标号182,在该附图标号处,从读出放大器读取位数据。然后,该方法返回通过附图标号174进行的循环,直到已在地址总线20上断言了新地址。
[0097] 如果在附图标号180处,已确定ECC 14已经在已加载到读出放大器中的数据中检测到任何错误,则该方法进行到附图标号184,在该附图标号处,确定该错误是否是致命错误。诸如单错误校正和双错误检测(SECDED)汉明码的最常见的错误校正码允许校正单位错误和检测双位错误(在通常的配置中,具有另外的奇偶校验位)。如本领域普通技术人员将理解的,如果在从存储器读取的字中同时检测到多个位错误,并且同时检测到的位错误的数量超过了ECC校正所有位错误的能力,则位值不能被校正。更复杂的ECC方案允许同时校正多于一个的位错误,但是以更大的ECC存储器大小作为代价。当同时发生的位错误的数量超过了ECC校正所有缺陷位的能力时,该错误是致命错误,并且该方法进行到附图标号186,在该附图标号处,存储器阵列10被标记为有缺陷的。
[0098] 如果在附图标号184处已确定错误不是致命错误,则该方法进行到附图标号188,在该附图标号处,由ECC 14提供的位校正数据被写入读出放大器中的所识别的位位置,然后进行到附图标号182,在该附图标号处,从读出放大器读取数据,以及进行到附图标号190,在该附图标号处,被寻址的存储字的地址、位位置和校正位数据被作为新错误条目写入错误PROM 24中的坏位地址数据存储器36。如上所述,这包括利用附图标号174中断言的地址以及该地址的错误计数(计数器42的计数状态)将错误PROM读取解码器区部30中的线
601至60n中的一个线编程为指向坏位地址数据存储器36中存储有位位置和校正位数据的地址的指针。
[0099] 由ECC 14提供的位校正数据在被寻址的存储器字的地址、位位置和校正位数据被作为新错误条目在附图标号190处写入错误PROM 24中的坏位地址数据存储器36之前在附图标号188处优选地被写入读出放大器中被识别的位位置,以便最小化从读出放大器读取位数据的等待时间。在附图标号182处从读出放大器中读取位数据可以发生在被寻址的存储器字的地址、位位置和校正位数据被作为新错误条目在附图标号190处写入错误PROM 24中的坏位地址数据存储器36的同时,以最小化从数据存储器12的读出延迟。然后,该方法返回到附图标号174进行等待,直到已在地址总线20上断言了新地址。
[0100] 如果在附图标号176处确定总线20上的断言地址加上图3的计数器42的当前计数被解码为错误条目,该错误条目输出存储在图2的错误校正PROM 24的经校正的数据输出区部32的坏位地址数据存储器36中的字,则该方法进行到附图标号192,在该附图标号处,从坏位地址数据存储器36中读取与存储在图2的坏位地址数据存储器36中的错误条目相关联的校正数据(包括线40上识别具有错误位值的特定位的列位置的m位输出和正确数据的N个副本)。
[0101] 在附图标号194处,在图1的ECC 26中对已从坏位地址数据存储器36读取的校正数据执行ECC。在附图标号196处,确定ECC 26与作为数据字的一部分存储在坏位地址存储器36中的ECC位相结合是否已经在已从坏位地址数据存储器36中读取的校正数据中检测到任何错误。
[0102] 如果在已从坏位地址数据存储器36中读取的校正数据中未检测到错误,则该方法进行到附图标号198,在该附图标号处,已从坏位地址数据存储器36中读取的位校正数据被写入由从坏位地址数据存储器36中读取的校正数据指定的列读出放大器中。然后,该方法进行到附图标号200,在该附图标号处,计数器递增。然后,该方法返回到附图标号176,并且重复前面描述的序列,直到计数器增加到与总线20上断言的地址一起不形成错误条目的计数,如附图标号176所述。
[0103] 如果在附图标号196处,已经确定ECC 26已经在已从坏位地址数据存储器36读取的校正数据中检测到任何错误,则该方法进行到附图标号202,在该附图标号处,确定错误是否可校正。如前所述,可以校正的同时错误的数量将取决于ECC 26是如何配置的。如果ECC 26可以校正错误,则该方法进行到附图标号198,在该附图标号处,已从坏位地址数据存储器36读取的经ECC校正的位校正数据被写入由从坏位地址数据存储器36读取的校正数据指定的列读出放大器,如前所述。在附图标号204处,错误PROM读取解码器区部30中产生ECC错误的当前寻址的错误条目被删除,并且在附图标号206处,新错误条目被写入错误存储器中的下一可用地址,并且来自ECC 26的经校正的数据被写入坏位地址数据存储器36中与新错误条目相关联的位置,如前所述。
[0104] 如果在附图标号202处确定错误是不可校正的,则该方法进行到附图标号208,在该附图标号处,在错误PROM读取解码器区部30中产生ECC错误的当前寻址的错误条目被删除。然后,该方法进行到附图标号200,在该附图标号处,计数器递增,并且从该附图标号再次进行到附图标号176,以确定在数据存储器中寻址的数据字是否具有任何另外的相关错误条目。
[0105] 本领域的普通技术人员将会理解,在附图标号202处发现的不可校正的错误不会在读出放大器中被替换,并且当包括已被替换的任何其他位的数据字在数据存储器12中被ECC 14检查时,将存在另一机会来校正从错误存储器中读取的错误校正数据的位错误,如参考附图标号178至190所述。
[0106] 根据本发明的一个方面,通过在坏位地址存储器36中的每个错误条目处包括下一失败标记位,可以缩短数据存储器12中数据的读取时间。如果由图2的坏位地址数据存储器36访问的当前错误条目不表示从数据存储器12读取的当前寻址的数据存储器字中待被校正的最后的缺陷位,则在坏位地址数据存储器中在该错误条目处设置下一失败标记位。控制器监测下一失败标记位,并且在错误PROM读取解码器区部的线52上断言下一位时钟脉冲,以便仅当该位已被设置时才推进计数器状态。提供下一失败标记位避免了不必要地将计数器42计时超过将发现坏位的最后计数状态。
[0107] 现在参考图7,流程图示出了在图6的方法170期间执行的方法210,该方法使用下一坏位标记的概念来避免计数器42的不必要的递增。图7示出了代替在图6的附图标号200处递增计数器42而执行的替换步骤。在附图标号198处将校正数据写入读出放大器或在图6的附图标号208处删除当前寻址的错误条目之后,图7的方法进行到附图标号212,在该附图标号处,确定当前寻址的错误条目中的下一失败标记是否已被设置。
[0108] 如果当前寻址的错误条目中的下一失败标记已被设置,则该方法返回到图6中方法170的附图标号200,在该附图标号处,计数器递增。如果当前寻址的错误条目中的下一失败标记未被设置,则该方法返回到图6中的方法170的附图标号178,在该附图标号处,在图1的ECC 14中对已加载到读出放大器中的数据执行ECC。本领域的普通技术人员将会观察到,如果在图6的方法170中在附图标号208处删除当前寻址的错误条目之后进入图7的方法210,则在图6的附图标号192处从错误存储器读取校正数据将包括读取下一失败标记的状态,因此通过在图6的方法170中附图标号208处删除当前寻址的错误条目,下一失败标记信息将不会丢失。
[0109] 当针对来自数据存储器12的任何寻址的数据字中的坏位创建第一错误条目时,该错误条目中的下一失败标记位处于复位状态,即,未被设置。当随后在同一寻址的数据字中检测到另外的坏位时,设置下一失败标记位,并且针对该随后的错误创建错误条目。
[0110] 再次参考图2,在附图标号240处示出坏位地址数据存储器36的下一失败标记位输出。坏位地址数据存储器36的下一失败标记位输出240与控制器18通信。附图标号242处示出的下一失败标记位输出240的设置值在线244上被呈现给坏位地址数据存储器36。
[0111] 编程设置值242的写入使能脉冲250可以以几种方式提供给坏位地址数据存储器36。根据本发明的一个方面,错误PROM写入区部34中的二进制编码器246在线248上向控制器18提供已被掩码编程到线601至60n中当前的一个线的二进制地址。二进制编码器246将线n‑1
601至60n中的一个线上的有效输入转换为范围2( )中的二进制地址,并因此执行二进制解码器和写入电路62的地址解码器部分的反函数。控制器18在线250上向坏位地址数据存储器36提供写入使能命令,以使错误PROM写入区部34在由二进制编码器246识别的坏位地址数据存储器字线中设置下一失败标记位。参考图8示出了用于执行该动作的方法的示例。
[0112] 根据本发明的一个方面,错误PROM读取解码器区部30中的坏位地址数据存储器写入电路252可以响应在线254上的来自控制器18的命令,在线256上向坏位地址数据存储器36输出写入使能命令。参考图8示出了用于执行该动作的方法的示例。
[0113] 在存储器字中校正另外的错误时,当写入该给定数据字中的新的失败数据时,控制器18将下一位失败标记设置到坏位地址数据存储器36中的存储器字的最后输入的错误条目中。由于控制器18不知道错误PROM写入区部34使用的被寻址的数据字的先前错误条目的二进制地址,对于每一个新的错误,必须搜索整个错误PROM 24以寻找PLD地址,该PLD地址具有与第一部分地址相同的数据总线20地址和作为当前错误的第二部分地址的计数器42的最高计数状态。因此,该过程会增加在错误PROM 24中写入失败位的开销时间。
[0114] 这种开销可以通过使控制器18在坏位地址数据存储器36的当前字中设置下一坏位标记来消除。这可以通过两种方式实现。
[0115] 根据将参考图8描述的一种方法,通过向错误PROM写入区部34(例如,具有线601至60n作为输入的二进制编码器246)添加一些另外的逻辑,可以从错误PROM写入区部34中的二进制编码器248读取错误PROM写入区部34中激活线601至60n中的一个线的条目的地址。然后,控制器18使用错误PROM写入区部34中的该地址来写入下一坏位标记。在本文描述的说明性实施方案中,写入过程用于对坏位地址数据存储器36中的ReRAM元件中所选择的ReRAM元件进行编程。如前所述,控制器18可以采用常规的ReRAM编程技术来控制错误PROM写入区部34中的编程电路,这些的细节对于理解本发明是不必要的。
[0116] 根据将参考图9描述的另一种方法,一旦已经定位了数据字错误条目(其下一失败标记尚未被设置)的最终先前编程的错误条目,控制器18就启用错误PROM读取解码器区部30中的坏位地址数据存储器写入电路252来针对该最终先前编程的错误条目在坏位地址解码器存储器36中设置下一失败标记。与参考图8描述的方法相比,该方法需要更少的步骤。
[0117] 现在参考图8,流程图示出了根据本发明的一个方面的方法260的示例,该方法用于在错误PROM的坏位地址数据存储器中的位置设置下一失败标记,并且将校正位数据写入错误PROM。响应于控制器18从监测数据存储器12的输出的ECC 14接收到ECC错误,该方法开始于附图标号262。该方法进行到附图标号264,在该附图标号处,确定从数据存储器访问的数据字是否具有先前编程的数据错误。这是通过检查图2和图3中所示的错误位标记54来确定的。如果错误位未被设置,则不存在与数据字相关的先前编程的错误,也不需要设置下一失败标记。该方法结束于附图标号266。如果从数据存储器访问的数据字具有先前编程的数据错误,则该方法进行到附图标号268,在该附图标号处,控制器18将错误PROM写入区部34指向由二进制编码器246提供的二进制地址。由于二进制编码器246输出与包含错误条目的当前有效字线相关联的二进制地址,所以二进制编码器246提供了一种方便的方式,将对字线601至60n中被当前寻址的一个字线的识别转换成错误PROM写入区部34在写入时用来对其进行寻址的二进制地址。在附图标号270处,错误PROM写入区部34,特别是二进制解码器和写入电路62,在坏位地址数据存储器36中在包含具有新位失败的数据字的最后输入的错误条目的校正数据的位置设置下一失败标记位。
[0118] 在附图标号272处,控制器18搜索错误PROM读取解码器区部30中的条目,以定位不具有数据并且可用于新错误条目的下一字线地址。这很容易由控制器18使用例如本领域已知的气泡搜索技术来实现,该技术可以通过首先设置最高有效地址位(MSB)、测试图2或图3的错误位标记线54并通过连续设置较低有效地址位来重复测试,从而在N次操作中找到N位地址字中的下一可用地址。这个过程非常高效,并且比存储器写入周期花费更少的时间来找到下一未使用的二进制地址。在附图标号274处,错误PROM写入区部34将被寻址存储字的地址、位位置和校正位数据作为新错误条目写入所定位的字线地址处的错误存储器。该方法结束于附图标号266。
[0119] 现在参考图9,流程图示出了根据本发明的一个方面的方法280的另一示例,该方法用于在错误PROM 24的坏位地址数据存储器中的位置设置下一失败标记,并且将校正数据写入错误PROM 24。响应于控制器18从监测数据存储器12的输出的ECC 14接收到ECC错误,该方法开始于附图标号282。
[0120] 该方法进行到附图标号284,在该附图标号处,确定从数据存储器访问的数据字是否具有先前编程的数据错误。这是通过检查图2和图3中所示的错误位标记54来确定的。如果错误位未被设置,则不存在与数据字相关的先前编程的错误,也不需要设置下一失败标记。该方法结束于附图标号286。如果从数据存储器访问的数据字具有先前编程的数据错误,则该方法进行到附图标号288,在该附图标号处,错误PROM读取解码器区部30利用坏位地址数据存储器写入电路252在坏位地址数据存储器中在当前位置处设置下一失败标记位,在该当前位置包含与当前地址总线地址相关联的最后的错误条目的校正数据。
[0121] 在附图标号290处,搜索错误PROM读取解码器区部30中的条目,以定位不具有数据并且可用于新错误条目的下一字线地址。该搜索可以以与在图8中附图标号272处执行的搜索相同的方式完成。在附图标号292处,错误PROM写入区部34将被寻址存储字的地址、位位置和校正位数据作为新错误条目写入所定位的字线地址处的错误存储器。该方法结束于附图标号286。
[0122] 当使用存储器阵列10的数据存储器部分12时,有时需要将新数据写入一个或多个地址。根据本发明的一个方面,被新写入先前出现数据错误的存储器地址位置中的位位置的数据也需要被校正。图10A和图10B是示出用于将新数据写入存储器地址位置以确保为可能存在于存储器地址位置的一个或多个坏位位置提供校正数据的说明性方法的流程图。图10A和图10B所示的方法之间的区别在于,图10A所示的方法不采用下一坏位标记概念,而图
10B所示的方法采用下一坏位标记。
[0123] 现在参考图10A,方法300开始于附图标号302。在附图标号304处,由控制器18接收到数据存储器写入请求。在附图标号306处,控制器断言存储器总线20上的写入地址。
[0124] 在附图标号308处,数据在指定地址被写入存储器部分12。在附图标号310处,确定是否已设置错误位标记54。图10A示出了该操作与附图标号308处的数据写入同时发生,以便提高过程的速度。
[0125] 如果在附图标号310处确定未设置错误位标记,则该方法在附图标号312处结束。如果在附图标号310处确定已设置错误位标记,则该方法进行到附图标号314,在该附图标号处,由坏位地址存储器36中的错误条目所识别的位位置的正确位数据的N个副本被坏位地址数据存储器写入电路252写入坏位地址存储器36。
[0126] 然后,该方法进行到附图标号316,在该附图标号处,计数器递增。接下来,在附图标号318处,确定是否已设置错误位标记54。如果在附图标号318处确定未设置错误位标记,则该方法在附图标号312处结束。如果在附图标号318处确定已设置错误位标记,则该方法返回到附图标号314。
[0127] 现在参考图10B,方法320开始于附图标号322。在附图标号324处,由控制器18接收到数据存储器写入请求。在附图标号326处,控制器断言存储器总线20上的写入地址。
[0128] 在附图标号328处,数据在指定地址被写入存储器部分12。在附图标号330处,确定是否已设置错误位标记54。图10B示出了该操作与附图标号328处的数据写入同时发生,以便最大化该过程的速度。
[0129] 如果在附图标号330处确定未设置错误位标记,则该方法在附图标号332处结束。如果在附图标号330处确定已设置错误位标记,则该方法进行到附图标号334,在该附图标号处,由坏位地址存储器36中的错误条目所识别的位位置的正确位数据的N个副本被坏位地址数据存储器写入电路252写入坏位地址存储器36。
[0130] 然后,该方法进行到附图标号336,在该附图标号处,确定是否已设置在该位置的下一位错误标记。如果未设置在该位置的下一位错误标记,则该方法在附图标号332处结束。如果已设置在该位置的下一位错误标记,则该方法进行到附图标号338,在该附图标号处,计数器递增。该方法然后返回到附图标号334。
[0131] 本领域的普通技术人员将会理解,虽然已经参考采用ReRAM存储器技术的实施方案描述了本发明,但是本发明可以利用使用除ReRAM技术之外的非易失性存储器技术的存储器来实施。
[0132] 现在参考图11A和图11B,流程图示出了根据本发明的一个方面的用于将新数据写入存储器阵列10的存储器部分12中的所选存储器地址的进一步说明性方法。当错误PROM 24的错误PROM读取解码器区部30不包括允许从错误PROM读取解码器区部30直接写入坏位地址数据存储器36的坏位地址数据存储器写入电路252时,可以使用图11A和图11B所示的方法。
[0133] 图11A示出了根据本发明的一个方面的用于将新数据写入存储器阵列10的存储器部分12中的所选择的存储器地址的方法340。该方法开始于附图标号342。
[0134] 在附图标号344处,由控制器18接收到数据存储器写入请求。在附图标号346处,控制器断言存储器总线20上的写入地址。
[0135] 在附图标号348处,数据在指定地址被写入存储器部分12。在附图标号350处,确定是否已设置错误位标记54。图11A示出了该操作与附图标号348处的数据写入同时发生,以便提高过程的速度。
[0136] 如果在附图标号350处确定未设置错误位标记,则该方法在附图标号352处结束。如果在附图标号370处确定已设置错误位标记,则该方法进行到附图标号354,在该附图标号处,控制器读取指向位错误的错误条目的二进制地址,该二进制地址可以由二进制编码器246编码并提供给控制器18。然后,该方法进行到附图标号356,在该附图标号处,向错误PROM写入区部34断言二进制地址。
[0137] 然后,该方法进行到附图标号358,在该附图标号处,通过错误PROM读取区部34,特别是二进制解码器和写入电路62,将由坏位地址存储器36中的错误条目所识别的位位置的正确位数据的N个副本写入坏位地址存储器36。
[0138] 然后,该方法进行到附图标号360,在该附图标号处,计数器递增。接下来,在附图标号362处,确定是否设置了错误位标记54。如果未设置错误位标记,则该方法在附图标号352处结束。如果设置了错误位标记,则该方法返回到附图标号354。
[0139] 图11B示出了根据本发明的一个方面的用于将新数据写入存储器阵列10的存储器部分12中的所选择的存储器地址的另一方法370。该方法开始于附图标号372。
[0140] 在附图标号374处,控制器18接收到数据存储器写入请求。在附图标号376处,控制器断言存储器总线20上的写入地址。
[0141] 在附图标号378处,数据在指定地址被写入数据部分12。在附图标号380处,确定是否已设置错误位标记54。图11A示出了该操作与附图标号378处的数据写入同时发生,以便提高过程的速度。
[0142] 如果在附图标号380处确定未设置错误位标记,则该方法在附图标号382处结束。如果在附图标号380处确定已设置错误位标记,则该方法进行到附图标号384,在该附图标号处,控制器18读取指向位错误的错误条目的二进制地址。如上所述,二进制地址可以由二进制编码器246编码并被提供给控制器18。然后,该方法进行到附图标号386,在该附图标号处,向错误PROM写入区部34断言二进制地址,优选地通过二进制解码器和写入电路62进行。
[0143] 然后,该方法进行到附图标号388,在该附图标号处,通过错误PROM写入区部34,特别是二进制解码器和写入电路62,将由坏位地址存储器36中的错误条目所识别的位位置的正确位数据的N个副本写入坏位地址存储器36。
[0144] 然后,该方法进行到附图标号390,在该附图标号处,确定是否已设置坏位地址数据存储器中的下一位错误标记。如果未设置坏位地址数据存储器中的下一位错误标记,则该方法在附图标号382处结束。如果已设置坏位地址数据存储器中的下一位错误标记,则该方法进行到附图标号392,在该附图标号处,计数器递增。该方法然后返回到附图标号384。
[0145] 本领域的普通技术人员将理解,虽然已使用采用ReRAM元件作为非易失性存储器元件的实施方案公开了本发明,但是采用除ReRAM元件之外的非易失性存储器元件的实施方案也旨在落入本发明的范围内。
[0146] 虽然已经示出和描述了本发明的实施方案和应用,但是对于本领域技术人员来说显而易见的是,在不脱离本文的发明构思的情况下,可以进行比上述更多的修改。因此,除了所附权利要求的实质之外,本发明不受限制。