DE10206720A1 - System und Verfahren zum Betreiben eines programmierbaren Zählers für Spaltenversagen bei Redundanzzuordnung - Google Patents

System und Verfahren zum Betreiben eines programmierbaren Zählers für Spaltenversagen bei Redundanzzuordnung

Info

Publication number
DE10206720A1
DE10206720A1 DE10206720A DE10206720A DE10206720A1 DE 10206720 A1 DE10206720 A1 DE 10206720A1 DE 10206720 A DE10206720 A DE 10206720A DE 10206720 A DE10206720 A DE 10206720A DE 10206720 A1 DE10206720 A1 DE 10206720A1
Authority
DE
Germany
Prior art keywords
column
memory
groups
row
cells
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10206720A
Other languages
English (en)
Inventor
Brian William Hughes
Warren Kurt Howlett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10206720A1 publication Critical patent/DE10206720A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/72Masking faults in memories by using spares or by reconfiguring with optimized replacement algorithms
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Die vorliegende Erfindung umfaßt ein System und ein Verfahren zum Beseitigen fehlerhafter Speicherzellen in einem Speicherarray mit Austauschspalten von Speicherzellen und Austauschzeilen von Speicherzellen. Die einzelnen Speicherzellen werden überprüft, um sicherzustellen, daß jede betriebsbereit ist. Nicht betriebsfähige Zellen werden zuerst durch Ersetzen von Spalten durch Ersatzspalten ausgetauscht, die eine Schwellenanzahl nicht betriebsfähiger Zellen enthalten und zweitens durch Entfernen jeglicher verbleibender nicht betriebsfähiger Zellen durch Ersetzen der Zeilen, die diese nicht betriebsfähigen Zellen enthalten, durch Ersatzzeilen.

Description

Die vorliegende Erfindung bezieht sich auf eine auf die vorliegende Anmeldung übertragene, mitanhängige US- Patentanmeldung Seriennr. [Aktenzeichen der Anmeldung 10004543-1] mit dem Titel "A SYSTEM FOR AND METHOD OF OPERATING A PROGRAMMABLE COLUMN FAlL COUNTER FOR REDUNDANCY ALLOCATION", eingereicht am 2. Februar 2001, und auf eine auf die vorliegende Anmeldung übertragene, gleichzeitig eingereichte US-Patentanmeldung Seriennr. [Aktenzeichen der Anmeldung 10004533-1] mit dem Titel "CACHE TEST SEQUENCE FOR SINGLE-PORTED ROW REPAIR CAM" (Cache- Testsequenz für eintorigen Reihenreparatur-CAM), deren Of­ fenbarungen hierin durch Bezugnahme aufgenommen sind.
Die vorliegende Erfindung bezieht sich auf eine Halbleiter- Speichervorrichtung und spezieller auf eine Halbleiter- Speichervorrichtung, die Ersatzspeicherzellen für den Aus­ tausch defekter Speicherzellen aufweist, die dann program­ mierbar zugreifbar sind.
Moderne Mikroprozessoren und viele anwendungsspezifische integrierte Schaltungen (ASIC = Application Specific Inte­ grated Circuits) lagern oft große Mengen von eingebettetem Speicher ein. Dieser Speicher ist üblicherweise ein stati­ scher Direktzugriffsspeicher (SRAM = Static Random Access Memory) oder ein dynamischer Direktzugriffsspeicher (DRAM = Dynamic Random Access Memory). Diese Direktzugriffsspeicher (RAM = Random Access Memory) bilden den Großteil der Tran­ sistoren, die auf einem Chip enthalten sind, und können den größten Abschnitt des Oberflächenbereichs eines Chips, d. h. die "nutzbare Chipfläche" einnehmen. Die Verfügbarkeit und Verwendbarkeit dieser RAMs wird zu einer Priorität für Halbleiterhersteller. Üblicherweise lagern Halbleiterher­ steller ein Test- und eine Reparatur-Schema ein, das RAM- Zellen innerhalb des Chips testet und defekte RAM-Zellen durch Ersatzzellen austauscht, die zu diesem Zweck aufge­ nommen sind. Üblicherweise werden Spalten und/oder Zeilen von RAM-Zellen ausgetauscht und keine einzelnen RAM-Zellen. Eine Zeilensubstitution kann durch geeignete Änderungen an dem Adreßdecoder durchgeführt werden, während eine Spalten­ substitution durch MUX-Auswahl geeigneter Bitleitungen durchgeführt werden kann.
Ursprünglich verwendeten Halbleiterhersteller Bittabellen, um zu bestimmen, welche RAM-Spalten und/oder RAM-Zeilen durch redundante RAM-Spalten oder RAM-Zeilen ausgetauscht werden müssen. Die Identifizierung defekter Speicherzellen ist ein besonderes Problem, wenn diese auf einem Mikropro­ zessor oder einer ASIC-Vorrichtung eingebettet sind, da ex­ terner oder chipexterner Zugriff zum Testen durch die An­ zahl verfügbarer Stifte begrenzt ist. Somit haben Halblei­ terhersteller eingebaute Selbsttests (BIST = Built In Self Test) und eingebaute Selbstreparatur (BIRS = Built In Self Repair) eingelagert, um RAM-Zellen zu testen und zu erset­ zen. Eingebaute Spezialzweck-Testhardware ist detailliert in der gemeinsam zugewiesenen und mitanhängigen US- Patentanmeldung (Anwaltsaktenzeichen 10981644-1) beschrie­ ben mit dem Titel "A Flexible And Programmable BIST Engine for On-Chip Memory Array Testing and characterizati­ on", Seriennr. 09/183,536, eingereicht am 30. Oktober 1998, deren Offenbarung hierin durch Bezugnahme aufgenommen ist.
Üblicherweise werden RAM-Zellen für eine Anzahl von Fehlern getestet, die in zwei Kategorien aufgeteilt werden können, einfache Fehler und verbundene Fehler. Einfache Fehler sind jene, die unabhängig von anderen Fehlern auftreten, aber Versagensereignisse in anderen Zellen verursachen können. Verbundene Fehler sind solche, wenn zwei oder mehrere ein­ fache Fehler auf eine einzelne Zelle wirken (d. h. mehrere Fehler, die einander beeinflussen). Einfache Fehler können ferner in Adreßdecoderfehler (ADFs = Address Decoder Faults) und Speicherzellen-Arrayfehler (MCAFs = Memory Cell Array Faults) unterteilt werden. ADFs sind nur in dem Adreßdecoder vorhanden und führen zu der Nichtverfügbarkeit einer Zelle, dem Fehlen einer Adresse zum Zugreifen auf ei­ ne Zelle, eine Adresse, die auf mehrere Zellen zugreift oder einer spezifischen Zelle, auf die mit mehreren Adres­ sen zugegriffen werden kann.
MCAFs können ferner in Einzelzellenfehler und Fehler unter­ teilt werden, die zwischen Speicherzellen auftreten. Ein­ zelzellenfehler umfassen Haftfehler (SAF = Stuck At Faults), Offen-Fehler (SOF = Stuck Open Faults), Übergangs­ fehler (TF = Transition Faults) und Datenhaltefehler (DRF = Date Retention Faults). SAF bedeutet, daß eine bestimmte Zelle entweder auf Null "haftet" oder auf Eins "haftet", unabhängig von den Daten, die in die Zelle geschrieben wer­ den sollen. SOF zeigt an, daß auf eine Speicherzelle auf­ grund einer offenen Leitung nicht zugegriffen werden kann. Ein TF tritt auf, wenn eine Speicherzelle keinen Übergang von Null zu Eins oder von Eins zu Null durchführen kann. Und letztlich tritt ein DRF tritt auf, wenn eine Zelle nicht in der Lage ist, einen bestimmten Logikwert oder ei­ nen Zustand für eine erforderliche Zeitspanne zu halten.
Kopplungsfehler betreffen zwei Zellen. Eine erste Zelle, die Kopplungszelle, die die Quelle des Fehlers ist, und die zweite Zelle, die gekoppelte Zelle, die die Zelle ist, die den Fehler erfährt. Diese Kopplungsfehler können entweder auftreten, wenn ein Übergang in der Kopplungszelle auftritt oder wenn ein spezifischer Wert in der Kopplungszelle ge­ speichert ist. Übergänge in einer Kopplungszelle können da­ zu führen, daß die gekoppelte Zelle von einer Null auf eine Eins oder umgekehrt wechselt oder können verursachen, daß eine Null oder eine Eins innerhalb der gekoppelten Zelle gespeichert wird. Außerdem können gewisse Werte in Kopp­ lungszellen durch eine gekoppelte Zelle fließen, unabhängig von dem Wert, der in der gekoppelten Zelle gespeichert wer­ den sollte.
Tests, die parallel auf eine Mehrzahl oder eine Gruppe von Speicherzellen angewendet werden, oder Durchlauftests bzw. "March-Tests", bestehen aus einer Sequenz von Elementen, oder "Durchlaufelementen", in denen eine Sequenz von Opera­ tionen definiert ist und entsprechende Datensignale auf verschiedene Speicherzellen angewendet werden, üblicherwei­ se eine Zeile oder eine Spalte gleichzeitig. Der Gesamt­ speicher kann in Speichergruppen unterteilt werden, und diese Tests können parallel über Speichergruppen auftreten. Die Adreßzeilenfolge bestimmt die Zeilenfolge, in der der Durchlauftest auf verschiedene Adreßpositionen innerhalb einer Speichergruppe angewendet wird. Ein Durchlauftest kann die folgende Sequenz enthalten: Schreibe Null, Lese Null, Schreibe Eins, Lese Eins, Schreibe Null, Lese Null. Dieser Durchlauftest würde sicherstellen, daß eine Null in einer Speicherzelle gespeichert und daraus gelesen werden kann, daß eine Eins in einer Speicherzelle gespeichert und daraus gelesen werden kann, und daß die Speicherzelle von einer Null zu einer Eins und von einer Eins zu einer Null übergehen kann. Diese Durchlauftests werden während des BIST an den Speicherzellen durchgeführt.
Sobald fehlerhafte Speicherzellen identifiziert wurden, wird die BISR verwendet, um die fehlerhaften Speicherzellen durch Ersatzspeicherzellen auszuwechseln. Dies tritt übli­ cherweise mit einer Spalte oder einer Zeile gleichzeitig auf oder unter Verwendung mehrerer Ersatz-Spalten oder -Zeilen, um eine durchgehende Gruppe von Spalten oder Zeilen zu ersetzen (z. B. einen Adreßraum, der sich über mehrere Zeilen oder Spalten erstreckt). Halbleiterhersteller kombi­ nieren ferner BIST und BISR gemäß ihrer Testphilosophie. BIST könnte abgeschlossen werden, bevor die BISR implemen­ tiert wurde und könnte nach einer Array-Neukonfigurierung nicht wiederholt werden, bei der fehlerhafte Zeilen oder Spalten durch Ersatz ausgetauscht werden. Wenn somit BIST abgeschlossen wird, bevor BISR durchgeführt wird, würden die Ersatz-Spalten und -Zeilen üblicherweise während des BIST nicht getestet und Spalten und Zeilen von Zellen, die den BIST nicht erfolgreich durchlaufen haben, würden in das Betriebsspeicherarray aufgenommen.
Alternativ und bevorzugter können BIST und BISR alternativ auftreten, um sicherzustellen, daß jede der Speicherzellen, die in der endgültigen (betriebsfähigen) Speicherarraykon­ figuration enthalten ist, gründlich getestet wurde. Es kann z. B. ein Durchlauftest während des ersten Durchlaufs des BIST auftreten und verwendet werden, um fehlerhafte Spei­ cherzellen zu identifizieren. Sobald diese fehlerhaften Speicherzellen identifiziert wurden, kann ein erster Durch­ lauf von BISR verwendet werden, um die Zeilen und/oder Spalten des Speichers zu ersetzen, die diese fehlerhaften Speicherzellen enthalten. Sobald ein erster Durchlauf von BISR abgeschlossen wurde kann der zweite Durchlauf von BIST durchgeführt werden, der den ersten BIST-Durchlauf wieder­ holt, oder der zusätzliche Durchlauftests aufnimmt, um si­ cherzustellen, daß die Austausch-Zeilen und/oder -Spalten richtig arbeiten, wie sie konfiguriert wurden. Ein zweiter Durchlauf von BISR würde am Ende des zweiten Durchlaufs von BIST durchgeführt, um jegliche neu identifizierten oder verbleibenden, fehlerhaften Zeilen und/oder Spalten zu er­ setzen. Zusätzlich können andere Durchlauftests durchge­ führt werden, die Kopplungsprobleme zwischen Speicherzellen in dem neu konfigurierten Array testen. Ein BIST, der Spei­ cherzellen mit Fehlern identifiziert, wird immer von einem BISR gefolgt, oder das Speicherarray ist nicht mehr repa­ rierbar und wird aussortiert.
Sobald eine Speicherzeile, die nicht betriebsfähige Zellen enthält, identifiziert wurde, wird deren Adresse üblicher­ weise gespeichert und auf eine redundante Zeile abgebildet. Dieses Abbilden kann auftreten, nachdem jede Zeile, die nicht betriebsfähige Zellen enthält, identifiziert wurde, oder alternativ kann das Testen unterbrochen werden, wäh­ rend die Zeile, die die nicht funktionsfähige Zelle ent­ hält, auf eine redundante Zeile abgebildet wird. Sobald das Abbilden abgeschlossen ist, wird das Testen der verbleiben­ den Zeilen fortgesetzt. Bei Speicheradressen, die nicht zu­ gegriffen oder in einem einzigen Taktzyklus gespeichert werden können kann eine Pipeline implementiert werden, um den Zugriff oder das Speichern über mehrere Taktzyklen zu ermöglichen.
Eine Beschreibung des Speichertestens und der Verwendung des redundanten Speicherelements ist detailliert in dem ge­ meinsam zugewiesenen US-Patent Nr. 6,141,779 beschrieben, erteilt am 31. Oktober 2000, und in der mitanhängigen US- Patentanmeldung mit dem Titel "System and Method for Provi­ ding RAM Redundancy in the Field", Seriennr. 09/544,516, erteilt am 6. April 2000, die beide hierin als Ganzes durch Bezugnahme aufgenommen sind. Ferner beschreiben das US- Patent Nr. 5,255,227, erteilt am 19. Oktober 1993 an Haef­ tele; das US-Patent Nr. 5,848,077, erteilt am 8. Dezember 1998 an Kamae u. a.; und das US-Patent Nr. 6,000,047, er­ teilt am 7. Dezember 1999 an Kamae u. a., die jeweils der Anmelderin dieses Patents gemeinsam zugewiesen wurden, ähn­ liche Korrekturverfahren, und sind hierdurch hierin als Ganzes durch Bezugnahme aufgenommen.
Während BIST und BISR verbesserte Testeinrichtungen und ei­ ne Rehabilitierung fehlerhafter Vorrichtungen liefern be­ grenzt die zusätzliche Test- und Reparatur- Schaltungsanordnung sowie die aufgewendete Zeit das Einla­ gern dieser Werkzeuge in die bereits enge, nutzbare Chip­ fläche. Dementsprechend besteht ein Bedarf nach einem sy­ stematischen Verfahren und einem Lösungsansatz zum Testen der Speicherzellen, die innerhalb eines Speicherarrays ent­ halten sind, die die Zeitspanne minimieren, die für BIST und BISR aufgewendet wird, während sie die Identifizierung fehlerhafter Speicherzellen maximieren. Es besteht ferner ein Bedarf nach einer effizienten Verwendung redundanter Speicherspalten und redundanter Speicherzeilen bei dem Aus­ tauschen fehlerhafter Speicherzellen. Es besteht ferner ein Bedarf nach der Identifizierung und dem Austauschen fehler­ hafter Speicherzellen, bei gleichzeitigem Minimieren der Hardware, die dem BIST, der BISR und dem Oberflächenbereich des Chips zugeordnet ist, die für BIST und BISR reserviert ist.
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfah­ ren und ein System zum Beseitigen fehlerhafter Speicherzel­ len und eine Halbleitervorrichtung mit verbesserten Charak­ teristika zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, ein System gemäß Anspruch 11 und eine Vorrichtung gemäß An­ spruch 17 gelöst.
Die identifizierten Anforderungen, zusätzliche, vorteilhaf­ te Merkmale und technische Vorteile werden durch ein System und ein Verfahren zum Beseitigen fehlerhafter Speicherzel­ len von einem Speicherarray erreicht, wobei das Verfahren die Schritte des Bestimmens, ob Zellen in jeder Spalte des Speicherarrays betriebsfähig (d. h. nicht fehlerhaft) sind, Austauschen von Spalten des Speicherarrays, die mehr als eine vorbestimmte Anzahl (z. B. eins) von nicht betriebsfähigen Zellen mit Ersatzspalten umfassen und, sobald diese Spalten ausgetauscht sind, Verwenden einer oder mehrerer Ersatzzeilen, um jegliche Zeile zu ersetzen (und, in dem Fall mehrerer Ersatzzeilen, benachbarte Zeilen), die eine oder mehrere nicht betriebsfähige Zellen aufweist, aufweist. Wie hierin verwendet bedeutet Beseitigen das elektrische Umleiten oder Einschalten von Ersatzzellen, ohne die nicht betriebsfähigen Zellen physisch zu entfernen. Die Bestimmung von betriebsfähigen über nicht betriebsfähigen Zellen kann das Testen jeder Speicherzelle in dem Speicherarray umfassen, und die Anzahl fehlerhafter Zellen innerhalb einer Spalte können gezählt werden, um zu bestimmen, wann ein Spaltenaustausch verwendet werden sollte, da ein Schwellenwert erreicht oder überschritten wurde oder basierend auf der tatsächlichen Anzahl fehlerhafter Speicherzellen innerhalb der Spalte.
Der Test, der verwendet wird, um zu bestimmen, ob die Spei­ cherzelle betriebsfähig ist oder nicht, kann folgende Schritte aufweisen: Erzeugen von mindestens einer Speicher­ adresse, Schreiben von Daten in die erzeugte Speicheradres­ se, Lesen von Daten aus der Speicheradresse und Vergleichen der gelesenen Daten aus der Speicheradresse mit den Daten, die in die Speicheradresse geschrieben wurden. Das Konfigu­ rieren von Spalten des Speicherarrays kann durch Bitlei­ tungsmultiplexer durchgeführt werden, die verwendet werden, um eine Ersatzspalte (oder Gruppe von Ersatzspalten) von Speicherzellen in das Array zu verschieben. Das Konfigurie­ ren von Zeilen des Speicherarrays kann das Verschieben oder das abwechselnde Decodieren eines Zeilenadreßsignals umfas­ sen, das bestimmt, welche Zeilen in dem Speicherarray auf­ genommen sind und welche Zeilen aus dem Speicherarray aus­ geschlossen sind. Eine oder mehrere Ersatzzeilen können ausgewählt werden, um Zeilen, die nicht betriebsfähige Zel­ len enthalten durch Zeilen zu ersetzen, die ersetzt werden. Ein zusätzliches Testen kann durchgeführt werden, nachdem die Spalten, die eine oder mehrere nicht betriebsfähige Zellen enthalten, durch Ersatzspalten ausgetauscht wurden. Ein eingebauter Selbsttest kann verwendet werden, um das Testen durchzuführen, um nicht betriebsfähige Zellen zu bestimmen, und die eingebaute Selbstreparatur kann die Spalten und die Zeilen durch Ersatz-Spalten bzw. -Zeilen ersetzen.
Ein anderes Ausführungsbeispiel der Erfindung umfaßt ein System zum Beseitigen fehlerhafter Speicherzellen von einem Speicherarray, wobei das System einen Speicherzellentester aufweist, der nicht betriebsfähige Zellen bestimmt, einen Spaltenselektor oder "Neukonfigurierer", der Spalten mit mehr als einer (oder mit einem anderen vorbestimmten Wert von) nicht betriebsfähigen Zelle durch eine Ersatzspalte austauscht und einen Zeilenneukonfigurierer, der jede Zeile durch Ersatzzeilen austauscht, die nicht betriebsfähige Speicherzellen aufweist, die nach dem Spaltenauswechseln verbleiben. Der Speicherzellentester kann die Anzahl nicht betriebsfähiger Zellen in jeder der Spalten zählen und die­ se Anzahl verwenden, um die Spalten zu bestimmen, die durch Ersatzspalten ausgetauscht werden sollten, oder kann eine auf einem Schwellenwert basierende Schaltung (z. B. Sätti­ gungszähler) verwenden, die sicherstellt, daß Spalten mit einer Anzahl nicht betriebsfähiger Zellen, die gleich oder über dem Schwellenwert liegt, durch Ersatzspalten ausge­ tauscht werden. Der Speicherzellentester kann eine Spei­ cherzellen-Datenschreibschaltung oder einen "Schreiber" um­ fassen, der Werte in die Speicherzelle schreibt, eine Spei­ cherzellen-Datenleseschaltung oder einen "Leser", der Werte aus der Speicherzelle liest, ein erstes Register, um den Wert, der in die Speicherzelle geschrieben wurde, zu spei­ chern und einen Vergleicher, der den Wert, der aus der Speicherzelle gelesen wurde, mit dem Wert vergleicht, der in dem ersten Register gespeichert ist. Ein zweites Regi­ ster kann verwendet werden, um eine Zählung aufzuzeichnen, die die Ergebnisse von dem Vergleicher darstellt. Der Spal­ tenneukonfigurierer kann einen Bitleitungsmultiplexer auf­ weisen, der verwendet wird, um eine Ersatzspalte von Spei­ cherzellen in das Speicherarray zu verschieben. Der Zeilen­ neukonfigurierer kann ein Zeilenadreßsignal aufweisen, das verwendet wird, um eine oder mehrere Ersatzzeilen von Spei­ cherzellen auszuwählen, um Zeilen von Speicherzellen auszu­ wechseln, die nicht betriebsfähige Zellen enthalten.
Ein anderes Ausführungsbeispiel der Erfindung kehrt die Reihenfolge "Spalte zuerst, Zeile als nächstes" um und um­ faßt ein Verfahren zum Beseitigen fehlerhafter Speicherzel­ len von einem Speicherarray, das zuerst die Zeilen und dann die Spalten "betrachtet" oder testet und dann eine Neukon­ figurierung derselben durchführt. Bei diesem Ausführungs­ beispiel wird eine Bestimmung der Anzahl nicht betriebsfä­ higer Zellen in jeder der Zeilen des Speicherarrays durch­ geführt, wobei Zeilen mit mehr als einer eingestellten, vorbestimmten Satz oder einer dynamisch angeglichenen An­ zahl nicht betriebsfähiger Fehler durch Ersatzzeilen ausge­ tauscht werden. Sobald diese nicht betriebsfähigen Spei­ cherzellen effektiv aus dem Speicherarray "entfernt" sind, werden die Spalten mit nicht betriebsfähigen Speicherzellen identifiziert und Ersatzspalten werden verwendet, um die Spalten mit nicht betriebsfähigen Zellen daran zu hindern, in das Speicherarray aufgenommen zu sein. Die Bestimmung, ob eine Zelle betriebsfähig oder nicht betriebsfähig ist umfaßt einen Schritt des Testens der Speicherzellen des Speicherarrays, um defekte Zellen zu bestimmen und die de­ fekten Zellen in jeder der Zeilen zu bestimmen. Die Zählung selbst kann verwendet werden, um die Zeilen zu bestimmen, die durch Ersatzzeilen ausgetauscht werden sollten, oder eine Schwelle und ein entsprechender Boolscher Wert können verwendet werden. Das Speicherzellentesten weist die Schritte des Erzeugens von mindestens einer Speicheradres­ se, das Schreiben von Daten in die Speicheradresse, das Le­ sen von Daten aus der Speicheradresse und das Sicherstel­ len, daß die richtigen Daten aus der Speicheradresse gele­ sen wurden, auf. Bei diesem Testen kann ein Register ver­ wendet werden. Das Konfigurieren der Zeilen des Speicherar­ rays kann einen Schritt umfassen, der eine wechselnde Wort­ leitung aktiviert, um eine Austauschzeile von Speicherzel­ len in das Array zu verschieben oder anderweitig auf die Austausch-Zeile oder -Zeilen zuzugreifen.
Das vorangehende hat die Merkmale und die technischen Vor­ teile der vorliegenden Erfindung weitgehend umfassend er­ läutert, so daß die nachfolgende detaillierte Beschreibung der Erfindung besser verstanden werden kann. Zusätzliche Merkmale und Vorteile der Erfindung, die den Gegenstand der Ansprüche der Erfindung bilden, werden nachfolgend be­ schrieben. Fachleute sollten erkennen, daß das offenbarte Konzept und das offenbarte spezifische Ausführungsbeispiel ohne weiteres als eine Basis zum Modifizieren oder Entwer­ fen anderer Strukturen zum Ausführen der gleichen Zwecke der vorliegenden Erfindung verwendet werden kann. Fachleute sollten ferner erkennen, daß derartige, äquivalente Kon­ struktionen nicht von dem Geist und dem Schutzbereich der Erfindung abweichen, wie er in den beigefügten Ansprüchen erläutert ist.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Diagramm eines Acht-Mal-Acht- Speicherzellenarrays mit einer zugeordneten Zeile von Zählern gemäß der Erfindung;
Fig. 2 ein Diagramm eines Acht-Mal-Acht- Speicherzellenarrays, das eine Anzahl von Spei­ cherzellen-Versagensereignissen mit zugeordneten Registerzeilen enthält, die eine Gesamtfehler- und eine gesättigte Fehlerzählung speichern;
Fig. 3 ein Diagramm eines Acht-Mal-Acht- Speicherzellenarrays von Fig. 2, nachdem redun­ dante Spalten konfiguriert wurden, um Spalten zu beseitigen, die gesättigten Zählerwerten zugeord­ net sind;
Fig. 4 ein Diagramm eines Acht-Mal-Acht-Speicherzellen­ arrays von Fig. 3, nachdem redundante Zeilen kon­ figuriert wurden, um alle verbleibenden Zeilen zu beseitigen, die fehlerhafte Speicherzellen ent­ halten, wobei ungetestete Zellen hervorgehoben sind;
Fig. 5 ein Diagramm, das eine Hardwareimplementierung eines Ausführungsbeispiels der vorliegenden Er­ findung zeigt;
Fig. 6 ein Diagramm des RAM-Arrays mit Redundanzmulti­ plexern, die verwendet werden, um ein Spaltenaus­ wechselung durchzuführen;
Fig. 7 ein Blockdiagramm eines Zugriffs auf den inhalts­ adressierbaren Speicher durch die Redundanzzuord­ nung und die BIST-Schaltungsanordnung;
Fig. 8 ein Diagramm von BIST und BISR gemäß einem Aus­ führungsbeispiel der Erfindung; und
Fig. 9 ein Entwurf von BIST und BISR gemäß einem alter­ nativen Ausführungsbeispiel der Erfindung.
Die vorliegende Erfindung baut eine eingebaute Selbsttest- und Selbstreparatur-Funktionalität in eine Halbleiter- Speichervorrichtung ein, in der Rekonfigurationsdaten ge­ speichert werden, die verwendet werden, um fehlerhaften Speicher zu ersetzen, wobei gleichzeitig das Testen fortge­ setzt wird, um andere fehlerhafte Speicherzellen zu identi­ fizieren. Die Erfindung minimiert den Speicher, der erfor­ derlich ist, um Fehler durch einen schrittweisen Lösungsan­ satz zum Erfassen und sofortigen Einleiten von Reparaturen zu überwachen und aufzuzeichnen. Da die Erfindung keine großen Mengen von Testergebnissen speichert, die anderwei­ tig für Nach-Test-Analysen benötigt werden könnten, die durch andere Reparaturschemata durchgeführt werden, ist die Erfindung besonders anwendbar für eingebettete Speicher­ strukturen und eingebautes Selbsttesten (BIST = built in self testing) und eingebaute Selbstreparatur (BISR = built in self repair). Das heißt, daß die Erfindung durch Imple­ mentieren eines effizienten Verfahrens zum Testen und par­ allel dazu Reparieren von Zellenfehlern die BIST- und BISR- Hardwareanforderungen minimiert.
Insbesondere bestimmt die Erfindung dynamisch einen Fehler­ schwellenwert, der verwendet wird, um zu bestimmen, ob eine Spalte ausgetauscht werden sollte, als eine Funktion einer Anzahl verbleibender (d. h. unbenutzter) Ersatz-Zeilen oder -Zeilengruppen. Die Schwelle kann z. B. gleich eins mehr als die Anzahl unbenutzter Ersatzzeilen eingestellt werden. Wenn somit eine Anzahl von Fehlern in einer Spalte eine An­ zahl von Fehlern überschreitet, die durch bloßen Zeilener­ satz "ausbesserbar" sind, dann ist die Spalte ein "muß aus­ bessern" und wird ausgetauscht. Umgekehrt, wenn die Anzahl von Fehlern durch einen nachfolgenden Zeilenaustausch aus­ gebessert werden könnte, dann kann das Spaltenersetzen zu­ mindest auf einem anfänglichen Durchlauf verzögert werden, bis zum Zeilen-Testen und -Reparieren. Vorzugsweise verwen­ det ein nachfolgendes Spaltentesten einen kleineren Schwel­ lenwert, entweder weil eine oder mehrere Zeilen oder Zei­ lengruppen während des dazwischenliegenden Zeilen-Testens und -Reparierens verwendet werden, wodurch eine entspre­ chende Verringerung in dem Schwellenwert verursacht wird, oder weil der Schwellenwert absichtlich um einen bestimmten Wert verringert wird. Dieses Merkmal verhindert eine mögli­ che Sackgasse zwischen Spalten- und Zeilen-Reparatur, wo jeder Prozeß darauf wartet, daß der andere eine erste Repa­ ratur durchführt.
Vorzugsweise stellt die Anzahl von Fehlern die Anzahl feh­ lerhafter Zellen in der Spalte dar, d. h. zählt Zellen, die mehrere Fehler aufweisen nicht doppelt oder dreifach, und zählt jede fehlerhafte Zelle einmal, unabhängig von der An­ zahl von Fehlern, die durch die Zelle aufgewiesen werden. Gemäß einem anderen Merkmal ist die Anzahl von Fehlern gleich der Anzahl fehlerhafter Zeilengruppen ohne doppeltes Zählen mehrerer Zellenfehler innerhalb einer Zeilengruppe, da erwartet wird, daß alle Zellen innerhalb einer Gruppe durch eine nachfolgende Zeilenreparatur ausgetauscht werden würden.
Nach dem Ersetzen von Spalten oder Spaltengruppen, die ei­ nen Schwellenwert basierend auf der Anzahl verbleibender Ersatz-Zeilen oder -Zeilengruppen erfüllen, wird ein Zei­ len-Testen und -Reparieren durchgeführt. Vorzugsweise um­ faßt das Zeilentesten ferner das Zählen fehlerhafter Zellen in jeder Zeile. Eine Schwellenwertbestimmung kann nochmals verwendet werden, um zu bestimmen, welche Zeilen während des aktuellen Schrittes oder Zyklus ausgetauscht werden müssen, wobei die Schwelle eine Funktion einer Anzahl verbleibender Rest-Spalten oder -Spaltengruppen ist. Wie in dem Fall des Spaltenaustausch-Schwellenwerts wird die Zei­ lenaustauschschwelle bei jedem Zyklus des Prozesses verrin­ gert, entweder aufgrund der Verwendung von Austauschspalten oder durch absichtliches Verringern des Zeilenaustausch- Schwellenwerts um einen bestimmten Wert, z. B. Eins. Natür­ lich können sowohl der anfängliche Spalten- und Zeilen- Austausch-Schwellen- und Verringerungs-Wert fein einge­ stellt werden, um zu ermöglichen, daß der Prozeß schnell konvergiert, d. h., um die Anzahl von Test-/Reparatur- Zyklen zu minimieren, während die Anzahl reparierbarer Feh­ ler maximiert wird.
Wie erklärt wurde, wird nach einem ersten Schritt oder Zy­ klus des Spalten-Testens und -Reparierens gefolgt von einem Zeilen-Testen und -Reparieren, falls erforderlich, ein zweiter Zyklus von Spalten- gefolgt von Zeilen-Testen und -Reparieren eingeleitet, wobei die entsprechenden Schwel­ lenwerte verringert sind, aber nicht weniger als um einen bestimmten, vorbestimmten Wert, z. B. Eins. Dies wird ge­ folgt von jeglichen, notwendigen, nachfolgenden Zyklen, entweder bis alle Fehler repariert sind oder alle Ersatzspeicher-Spalten und -Zeilen verwendet wurden, wobei immer noch Fehler verbleiben. In dem ersten Fall wurde der Speicher erfolgreich repariert, während in dem letzteren Fall der Speicher nicht vollständig repariert werden konnte und defekt ist. Während die Erfindung hinsichtlich Spalten- Test und -Reparatur gefolgt von Zeilen-Test und -Reparatur beschrieben ist kann die Zeilenfolge ferner umgekehrt wer­ den. Die Erfindung kann ferner erweitert werden, um multidimensionale Speicherarrays oder andere Speichersegmentierungen zu umfassen, bei denen mehr als zwei Typen von Strukturen (z. B. Ersatz-Zeilen und -Spalten) für Speicherarrayreparatur (z. B. Zeile, Spalte, Stapel in dem Fall eines dreidimensionalen Speichers oder Teilarrays, Spalte, Zeile in dem Fall eines segmentierten, zweidimensionalen Arrays, etc.) verfügbar sein können.
Fig. 1 ist ein Diagramm eines Speicherarrays, das acht Spalten, wobei jede Spalte eine entsprechende Bitleitung (101-108) umfaßt, und acht Zeilen umfaßt, wobei jede eine gemeinsame Wortleitung (109-116) aufweist. (Fachleute ver­ stehen, daß der 64-Bit-Speicher als Beispiel und für leich­ tere Darstellung dargestellt ist, wobei Halbleiterspeicher üblicherweise viel größere Blöcke von Speicherzellen umfas­ sen.) Die Spalten 107, 108 und Zeilen 115 und 116 sind re­ dundant, einschließlich Ersatzspeicherzellen, die verwend­ bar sind, um fehlerhafte Speicherzellen zu ersetzen. Es wird darauf hingewiesen, daß die redundanten Spalten und Zeilen zu den getesteten nicht benachbart sein müssen, von denselben jedoch entfernt sein können.
Jede der sechs nicht redundanten Bitleitungen 101-106 weist ferner ein zugeordnetes Zählerregister 117-122 auf. Zum Beispiel werden Zellversagensereignisse, die der Bitleitung 101 zugeordnet sind, in dem Zähler 117 aufgezeichnet, Versagensereignisse auf der Bitleitung 102 werden in dem Zähler 118 aufgezeichnet usw. Bei der Fertigstellung eines BIST-Durchlaufs enthalten die Zähler 117 bis 122 einen Wert, der die Anzahl von Speicherfehlern darstellt, die während eines Durchlauftests von Speicherspalte 101 bis bzw. 106 auftraten. Gemäß einem Ausführungsbeispiel stellt die Zählung eine Gesamtanzahl von Fehlern für alle Zellen dar, einschließlich Mehrfachfehlern von einer einzelnen Zelle (d. h. ohne Berücksichtigung, ob die Fehler Mehrfach­ fehler von einer geringeren Anzahl von Zellen oder Einzel­ fehler von entsprechend vielen Zellen darstellen). Andere Implementierungen können zwischen der Anzahl von Zellen, die versagt haben durch Abziehen von Mehrfachfehlern von einer einzelnen Zelle unterscheiden, während andere Imple­ mentierungen einen Schwellenzähler verwenden können, um ein einzelnes Flag-Bit zu liefern, das einen Spalten- Gut-/Schlecht-Zustand anzeigt.
Ein wiederum anderes Ausführungsbeispiel segmentiert die Spalten gemäß Zeilengruppen, wobei eine einzelne Zählung für jedes inoperative Segment der Spalte geliefert wird, das durch ein Versagen einer beliebigen Zelle des Segments verursacht wird. Zu Darstellungszwecken kann angenommen werden, daß sowohl Spalten als auch Zeilen in Paare grup­ piert sind, d. h. Austauschvorgänge treten in Paaren von entweder Spalten oder Zeilen auf. Somit bilden Spalten 101 und 102 zu Zwecken des Testens und Reparierens eine Spal­ tengruppe, Spalten 103 und 104 bilden eine zweite Spalten­ gruppe, usw. In ähnlicher Weise sind Wortleitungen 109 und 110 gepaart, um eine erste Zeilengruppe zu bilden, Wortlei­ tungen 111 und 112, um eine zweite Zeilengruppe zu bilden, etc. Gemäß dieser Gruppierung ist die Spalte 101 zu Zwecken des Testens in drei Segmente unterteilt, wobei ein erstes Segment Speicherzellen umfaßt, die den Wortleitungen 109 und 110 zugeordnet sind, ein zweites Segment Speicherzellen umfaßt, die den Wortleitungen 111 und 112 zugeordnet sind und ein drittes Segment Speicherzellen umfaßt, die den Wortleitungen 113, 114 zugeordnet sind. Zum Zweck dieses Beispiels bilden die Speicherzellen, die den Ersatzwortlei­ tungen 115 und 116 zugeordnet sind, ein Ersatzsegment der Spalte 101. Gemäß dieser Aufteilung enthalten die Zähler 117 bis 122 Werte, die die Anzahl entsprechender, inopera­ tiver Spaltensegmente darstellen, die während eines Durch­ lauftests der Speicherspalten 101 bis bzw. 106 identifi­ ziert werden. Somit kann die Reparaturverarbeitung einge­ leitet werden, wenn eine bestimmte Spalte eine inakzeptable Anzahl schlechter Segmente aufweist. Dieser Aspekt der Er­ findung hat den Vorteil, daß er die Eigenschaft der Technik in Betracht zieht, die zum Reparieren einer Spalte oder ei­ ner Zeile verwendet wird, d. h., mehrere Spalten oder Zei­ len werden gleichzeitig ausgetauscht. Somit definieren die Gruppierungen mehrerer Zeilen, um eine Zeilengruppe zu bil­ den und/oder mehrerer Spalten, um eine Spaltengruppe zu bilden jeweilige Adreßräume von Speicherzellen.
In ähnlicher Weise kann jede Zeile zu Zählzwecken in eine Mehrzahl von Segmenten unterteilt werden, die den Spalten­ gruppierungen entsprechen. Somit wird die Zeile, die der Wortleitung 109 zugeordnet ist, in drei Segmente unter­ teilt, ein erstes, das die Spalten 101 und 102 umfaßt, ein zweites, das die Spalten 103 und 104 umfaßt und ein drittes Segment, das die Spalten 105 und 106 umfaßt. Speicherzellen in den Spalten 107 und 108 befinden sich in einem Ersatz­ segment von Zeile 109. Zeilenfehler, die den Speicherzellen der Schreibleitungen 109 bis 114 zugeordnet sind, können durch entsprechende Zähler 125 bis 130 verfolgt werden. Die Zähler können ansprechend auf jeden in einer zugeordneten Zeile erfaßten Fehler, eine Anzahl von Speicherzellen, die in der Zeile als fehlerhaft identifiziert werden oder die Anzahl fehlerhafter Zeilensegmente inkrementiert werden. Ein anderes Ausführungsbeispiel umfaßt Zähler vom Sätti­ gungstyp, die ein vorbestimmtes Ausgangssignal auf das Zäh­ len bis zu einem vorbestimmten Schwellenwert hin liefern.
Fig. 2 ist ein Diagramm, das eine Anzahl von Fehlern zeigt, die durch die "x-en" in einem 8-Spalten-, 8-Zeilen- Speicherarray angezeigt werden, wobei die ersten sechs Spalten und Zeilen ein aktiver Abschnitt sind, der Test und Reparatur unterzogen wird, und die letzten zwei Zeilen und Spalten Paare oder Ersatzspeicherzellen-Zeilen und -Spalten aufweisen, d. h. eine redundante Zeilengruppe und eine re­ dundante Spaltengruppe. Die dargestellte Konfiguration um­ faßt sowohl normale Zähler als auch Sättigungszähler, ob­ wohl erwartet wird, daß eine handelsübliche Implementierung nur einen Zählertyp auswählen würde und nicht beide umfaßt. Ein bevorzugtes Ausführungsbeispiel der Erfindung umfaßt z. B. Sättigungszähler. Gemäß dieser Implementierung enthält jede Speicherzählerzelle 117-122 der Zählerzeile 201 bei Abschluß des ersten Durchlaufs von BIST die Anzahl von Speicherzellen, die versagt haben in einer jeweiligen Spal­ te des Sechs-Mal-Sechs-Speicherarrays (Ersatzspeicherzellen werden im allgemeinen nicht als Teil des BIST getestet, könnten aber getestet werden). Wenn das Testen der Spei­ cherzellen in der Spalte 101 z. B. dazu führt, daß ein Feh­ ler erfaßt wird, dann würde die Zählerzelle 117 wie gezeigt den Wert Eins enthalten. In ähnlicher Weise enthalten die Speicherzellen in der Speicherspalte 102 sechs Speicherzel­ lenfehler, und daher enthält die Speicherzählerzelle 118 den Wert Sechs. Alternativ könnte ein Halbleiterhersteller an der spezifischen Anzahl von Speicherzellenfehlern inner­ halb einer spezifischen Spalte nicht interessiert sein, und könnte statt dessen entscheiden, die Speicherzelle durch eine redundante Spalte zu ersetzen, nachdem ein ge­ wisser Schwellenwert von Speicherzellenfehlern in dieser Spalte auftritt, wodurch die jeweilige Zählerzelle gesät­ tigt ist. Die Zählerzeile 202 ist ein Beispiel einer Zäh­ lerzeile, die bei einem Wert von Drei gesättigt ist, d. h. die Speicherzählerzellen sind gesättigt, nachdem drei Spei­ cherzellen in dieser Spalte versagt haben; während nachfol­ gende Speicherzellen getestet werden können und zu der Er­ fassung zusätzlicher Versagensereignisse führen, steigt der zugeordnete Zählerwert nicht weiter. Dementsprechend ent­ halten die Zählerzellen 204 und 206 für die Sechs-Mal- Sechs-Speicherzelle 200, bei denen jede Spalte drei oder mehr Fehler enthielt nun die Anzahl Drei in der gesättigten Zählerzeile. Somit können Sättigungszähler eine einfache Ja- (z. B. weniger als drei erfaßte Fehler) oder Nein- (Drei oder mehr Fehler)-Anzeige als Ausgangssignal lie­ fern, anstelle von oder zusätzlich zu einem Ist-Zählwert.
Ferner sind Zählerzellen 125-130 der Zählerspalte 211 und Sättigungszählerspalte 212 einschließlich der Sättigungs­ zählerzellen 213-218 in diese Konfiguration aufgenommen. Jede der Zählerzellen ist konfiguriert, um eine Anzahl von Fehlern aufzuzeichnen, die den entsprechenden Wortleitungen 109-114 zugeordnet sind. Wie vorangehend detailliert erläu­ tert wurde, kann die Fehlerzählung eine Gesamtanzahl von Versagensereignissen, die während des Testens von Speicher­ zellen einer Wortleitung (d. h. Zeile) erfahren wurde, eine Gesamtanzahl fehlerhafter Speicherzellen in der Zeile, oder die Gesamtanzahl fehlerhafter Zeilensegmente darstellen.
Obwohl Werte in diesen Zählerzellen gezeigt sind, würden diese Werte in der Praxis nicht erhalten, bis zu dem nach­ folgenden Zeilentesten, das unten beschrieben ist.
Sobald die Anzahl der Speicherzellenfehler in jeder Spalte tabellarisiert wurde, und der erste Schritt des BIST abge­ schlossen wurde, kann der erste Durchlauf von BISR durch Ersetzen einer redundanten Spalte (oder Spalten einer Spal­ tengruppe) durch eine beliebige Spalte (und benachbarte Spalten), die im ersten Durchlauf des BIST versagt hat, durchgeführt werden. Versagen bei dem ersten Durchlauf des BIST bedeutet, daß eine bestimmte Spalte mindestens eine Schwellenanzahl von Speicherzellen-(Spaltensegment-)Feh­ lern aufwies. Der Schwellenwert ist vorzugsweise eine Funk­ tion der Anzahl verfügbarer, d. h. unbenutzter, Ersatz- Zeilen oder -Zeilengruppen. Das heißt, wenn die Anzahl feh­ lerhafter Speicherzellen, die in einer Spalte identifiziert werden, die Anzahl von Ersatzzeilen überschreitet, die zum Ersetzen dieser Speicherzellen verfügbar sind, dann ist dies eine "Muß-ausbessern"-Situation für Spaltenaustausch. Alternativ, wenn die Anzahl fehlerhafter Speicherzellen gleich oder weniger ist als die Anzahl von Ersatzzeilen, die noch verfügbar sind, dann kann eine Reparatur nachfol­ gend unter Verwendung von Zeilenaustausch durchgeführt wer­ den. Gemäß einem anderen Ausführungsbeispiel kann der Schwellenwert gleich oder etwas niedriger eingestellt wer­ den als die Anzahl von Ersatzzeilen, die verfügbar sind, so daß ein Spaltenaustausch früher auftritt und die Anzahl von Zyklen, die alle Reparaturen betreffen, reduziert wird, dies möglicherweise auf Kosten einer gesteigerten Fehlzu­ weisung von Ersatzspeicherzellenressourcen.
Für den Halbleiterhersteller, der die Zählerzeile 201 im­ plementiert hat, muß eine Suche unter den verschiedenen Zählern durchgeführt werden, um zu bestimmen, welche Zähler hoch genug sind, d. h. den Schwellenwert erfüllen, um die Verwendung einer redundanten Spalte zu erfordern. Für den Halbleiterhersteller, der den Sättigungszähler 202 mit ei­ nem Sättigungswert von drei implementiert, werden die Spal­ ten 102 und 104, die den Zählerpositionen 204 und 206 ent­ sprechen, jeweils durch redundante Spalten ausgetauscht. Unabhängig davon, ob die Sätaigungszähler oder maximale Zählerwerte verwendet werden, bestimmt der ausgewählte Schwellenwert die Schwelle zwischen Speicherzellen, die durch Spaltenaustausch und Zeilenaustausch repariert wer­ den. Sobald die Spalten 102 und 104 ausgetauscht wurden, wurden die Speicherzellen-Versagensereignisse, die diesen Spalten zugeordnet waren, durch Auswechseln dieser Spalten durch redundante Spalten aus dem Betriebsspeicher entfernt.
Während das vorliegende Ausführungsbeispiel das Ersetzen einer einzelnen Spalte durch eine redundante Spalte be­ schreibt, wäre es für einen Fachmann offensichtlich, daß mehrere Spalten oder Blöcke von Spalten durch mehrere re­ dundante Spalten oder mehrere redundante Blöcke von Spalten ausgetauscht werden können. Das Ersetzen von Spalten in Blöcken (d. h. eine Spaltengruppe) und nicht einzeln kann wünschenswert sein, da viele Fehler mehr als eine einzelne Spalte betreffen können. In diesem Fall ist das Ersetzen von Gruppen von Spalten effektiver als das Ersetzen einzel­ ner Spalten. Eine Spaltengruppe kann eine oder mehrere Spalten umfassen.
Fig. 3 ist ein Diagramm des Speicherarrays, sobald die Spalten 107 und 108 für Spalten 102 und 104 eingesetzt wur­ den. Wie aus Fig. 3 ersichtlich ist, sind die Zellen, die Fehler enthalten nicht mehr in dem aktiven Speicherarray umfaßt. Ferner ist in Fig. 3 die neue Abbildung zwischen den Austauschspalten 107 und 108 mit den Speicherzellenzäh­ lern 118 und 120 gezeigt. Der zweite Schritt bei der BISR ist eine Identifizierung der Zeilen, die Fehler enthalten und ein Austausch jener Zeilen, die mindestens eine Schwel­ lenanzahl von Fehlern mit redundanten Zeilen aufweisen. Bei dem vorliegenden Beispiel ist der Zeilenaustausch- Schwellenwert auf eins eingestellt, d. h. eins höher als die Anzahl unbenutzter, redundanter Spalten, da beide ver­ fügbare, redundante Spalten verwendet wurden. Wenn jedoch z. B. nur eine der zwei redundanten Spalten verwendet wor­ den wäre, könnte der Zeilenaustausch-Schwellenwert gleich zwei sein, so daß eine einzelne, fehlerhafte Speicherzelle in einer bestimmten Zeile keinen Zeilenaustausch auslösen könnte.
Wie aus Fig. 3 ersichtlich ist enthalten die Zeilen 111 und 112 Speicherzellen mit Fehlern und werden vorzugsweise durch redundante Zeilen ausgetauscht. Wie erklärt wurde kann in dem Fall von Spaltenreparatur ein Zeilenaustausch basierend auf einem bestimmten Schwellenwert der Speicher­ zelle oder einer Anzahl fehlerhafter Zeilensegmente durch­ geführt werden. Dieser Prozeß würde sich dann durch erneu­ tes Prüfen von Spalten nach jeglichen Fehlern wiederholen, die nach diesem ersten Zyklus von Spalten- gefolgt von Zei­ len-Austausch verbleiben. Mehrere Zyklen können ausgeführt werden, bis alle Fehler adressiert oder der gesamte Ersatz­ speicher verwendet wurde, wobei jeder Zyklus einen niedri­ geren Schwellenwert implementiert.
Fig. 4 ist ein Speicherarraydiagramm, das die Abwesenheit verbleibender Fehler zeigt (gezeigt durch die Abwesenheit von x-en in den aktiven Speicherzellen), nachdem die Zeilen 111 und 112 durch redundante Zeilen 115 und 116 ausge­ tauscht wurden. Die redundanten Zeilen 115 und 116 sind ferner auf die Speicherzählerzellen 127 und 128 abgebildet. Wie aus Fig. 4 gesehen werden kann beseitigt die Verwendung von zwei redundanten Spalten und zwei redundanten Zeilen alle Speicherzellen, die Fehler enthielten, aus dem aktiven Speicherarray, einschließlich des Speicherfehlers in Spalte 108 von dem betriebsfähigen Speicher. Diese Austausch- Zeilen und -Spalten wurden jedoch nicht getestet. Die Punk­ te in den Speicherzellen in Fig. 4 zeigen die ungetesteten Zellen an.
Üblicherweise wird bei normal großen Speicherzellen effek­ tiv nur eine geringe Anzahl von Spalten und/oder Zeilen ausgetauscht. Da ein Array, in dem Austausch-Spalten oder -Zeilen verwendet wurden ungetestete Zellen enthält, muß ein zweiter Durchlauf des BIST durchgeführt werden, um sicher­ zustellen, daß jede der Austausch-Speicherzellen, die in dem Speicherarray enthalten ist, zufriedenstellend arbei­ tet. Der BIST wird wieder durchgeführt, um die Speicherzel­ len zu identifizieren, die Fehler enthalten, und die Anzahl von Speicherzellenfehlern, die in jeder der Spalten enthal­ ten sind. Wie bei dem ersten BIST-Durchlauf werden Spalten, die Speicherfehler enthalten, die das Zählerbit sättigen, oder Fehler zusätzlich zu einer vorbestimmten Anzahl durch redundante Spalten ausgetauscht. Sobald diese redundanten Spalten die Spalten elektrisch oder logisch ausgetauscht haben, die die Anzahl zulässiger Fehler gesättigt oder überschritten haben, werden die redundanten Zeilen verwen­ det, um fehlerhafte Speicherzellen zu ersetzen, bis alle Speicherzellenfehler beseitigt sind. Das Wechseln zwischen BIST und BISR wird fortgesetzt, bis der BIST ohne jegliche Speicherzellenfehler durchgeführt wird oder bis die redun­ danten Spalten und Zeilen erschöpft sind und das Speicher­ array nicht mehr verwendbar ist.
Fig. 5 ist ein Diagramm, das zwei Speicherarrays von je sechs Spalten zeigt (0-5 und 6-11), wobei jedes Array acht Zeilen aufweist (0-7). Fig. 5 umfaßt ein Speicherarray 501 und 502, zwei Spaltenmultiplexer 503 und 504, EXKLUSIVE "ODER" (XOR)-Gatter 505, 506, zwei Zähler 507 und 508, ein ODER-Gatter 509, einen Zeilenreparatur-Logikblock 510 und einen Zeilendecoder 511. Um die Zeit zu reduzieren, die für das Testen erforderlich ist, kann der Speicher, der in ei­ ner Vorrichtung enthalten ist, in separate Speicherarrays aufgeteilt, wobei alle Arrays gleichzeitig getestet werden können. Der BIST kann konfiguriert sein, um die Testspalte null von Speicherarray 501 und die Spalte sechs von Spei­ cherarray 502 gleichzeitig zu testen, wobei die resultie­ renden Testinformationen an die Spaltenmultiplexer 503 bzw. 504 gerichtet werden. (Ein Fachmann würde verstehen, daß diese Fähigkeit nicht auf das gleichzeitige Testen von zwei Speicherblöcken begrenzt ist und auf das gleichzeitige Te­ sten von beliebig vielen Blöcken erweitert werden kann.) Nachdem z. B. ein Schreiben-"Eins" an jeder Speicherzelle in den Speicherarrays 501 und 502 angelegt wurde, wird er­ wartet, daß jede Speicherzelle den Wert Eins enthält. Der gespeicherte Wert jeder Zelle wird für die Spaltenmultiple­ xer verwendet, und der Wert, der in der Zelle gespeichert und daraus gelesen wird, wird in den XOR-Gatter 505 und 506 mit den erwarteten Daten 512 und 513 verglichen. Wenn der gespeicherte Wert der Zelle mit dem erwarteten Wert über­ einstimmt, wird der in den Zählern 507 und 508 gespeicher­ te, ganzzahlige Wert nicht inkrementiert. Wenn die Werte jedoch nicht übereinstimmen, wird der entsprechende Zähler 507 oder 508 inkrementiert. Wie vorangehend detailliert be­ schrieben wurde, sind die bekannten Korrekturtechniken in den US-Patenten Nr. 5,255,227, 5,848,077 und 6,000,047 aus­ führlich beschrieben, die hierbei durch Bezugnahme hierin aufgenommen sind.
Das Testen wird auf diese Weise fortgesetzt, bis der BIST für jede Zelle in jeder Spalte abgeschlossen ist und die Werte, die völliges Versagen oder Sättigungswerte darstel­ len, jeder Spalte jedes Speicherarrays zugeordnet sind. So­ bald die Spalten identifiziert sind, die bei dem BIST da­ durch versagt haben, daß sie mindestens eine vorbestimmte Anzahl von Zellen aufweisen, die versagt haben, werden re­ dundante Spalten verwendet, um diese Spalten zu ersetzen. Das Zeilenersetzen mit redundanten Zeilen wird dann verwen­ det, um Zeilen zu ersetzen, die weiterhin ein Zellen­ versagensereignis enthalten, bis jedes Zellenversagenser­ eignis aus dem Speicherarray beseitigt wurde. Das Ersetzen von Spalten und Zeilen ist von der Verfügbarkeit redundan­ ter Spalten bzw. Zeilen abhängig. Wenn eine ungenügende An­ zahl von Austauschzeilen verfügbar ist, um alle Zeilen mit defekten Zellen vollständig zu ersetzen, können verbleiben­ de Ersatzspalten verwendet werden, bevor entschieden wird, daß das Array nicht ausgebessert werden kann.
Üblicherweise wird eine Ersatzzeile von Speicherzellen da­ für verwendet, eine defekte Zeile durch Umwandeln eines Zeilenadreßsignals zu ersetzen, um die Ersatzzeile anstatt der defekten Zeile auszuwählen. Spaltensubstitutionen wer­ den unter Verwendung von Multiplexern an den Bitleitungen durchgeführt, um zwischen benachbarten Leitungen (oder Gruppen benachbarter Leitungen) zu schalten, wodurch die defekte Spalte effektiv nach außen verschoben wird, während Zugriff auf eine Ersatz-Spalte (oder -Spalten) geliefert wird, die physisch am Ende des Arrays positioniert ist. Diese Technik ist in der gemeinsam zugewiesenen und mitan­ hängigen US-Patentanmeldung Seriennr. 09/506,620 mit dem Titel "Redundancy Programming Using Addressable Scan Paths to Reduce the Number of Required Fuses", eingereicht am 18. Februar 2000 umfassend beschrieben, die hierbei hierin durch Bezugnahme aufgenommen ist.
Fig. 6 ist ein Diagramm des RAM-Arrays mit Redundanzmulti­ plexern, die für Spaltenauswechslungen verwendet werden. Bei diesem Ausführungsbeispiel können mehrere Spalten gleichzeitig ausgetauscht werden. Fig. 6 enthält zwei Spei­ chergruppen, 501 und 502, die vier Betriebsspalten, Spalten null bis drei, in der Speichergruppe 501 enthalten und Spalten sechs bis neun in Speichergruppe 502 und zwei re­ dundante Spalten in jeder Speichergruppe, Spalten vier und fünf in der Speichergruppe 501 und Spalten zehn und elf in der Speichergruppe 502. Redundanzmultiplizierer 503 und 504 sind mit Redundanzprogrammierdaten programmiert und werden verwendet, um Daten um Spalten zu verschieben, die Zellen mit Fehlern enthalten. In der Figur kann jede Spalte, die in dem Diagramm aufgenommen ist, einer oder mehreren be­ nachbarten Spalten von Zellen entsprechen. In dem Fall z. B., daß Zellen, die in die Spalte neun aufgenommen sind, Fehler enthalten, wie abgebildet, könnte die Spalte zehn, eine redundante Spalte, anstelle der Spalte neun verwendet werden. Spalte elf verbleibt als eine redundante Spalte für zukünftige Verwendung.
Wie vorangehend beschrieben wurde, werden Adressen von Zei­ len, die nicht betriebsfähige Zellen enthalten, üblicher­ weise auf eine redundante Zeile gespeichert und abgebildet. Diese Zeilenadressen können in einem inhaltsadressierbaren Speicher (CAM) gespeichert werden. Bei einem bevorzugten Ausführungsbeispiel treten sowohl Zellentesten als auch Er­ setzen von Zeilen durch redundante Zeilen, die nicht be­ triebsfähige Zellen enthalten, gleichzeitig auf, d. h., die Identifizierung von Adreßinformationen fehlerhafter Zeilen wird sofort nach dem Zellentesten und während nachfolgende Zeilen dem Test unterzogen werden in dem CAM gespeichert. Diese gleichzeitige Operation wird verwendet, um die Menge an Arbeitsspeicher oder Scratch-Speicher zu minimieren, die zum Speichern von Zeilenfehleradressen benötigt wird, und um die Zeit zu minimieren, die für das Testen und Korrigie­ ren der Speicherarrays verwendet wird.
Fig. 7 ist ein Blockdiagramm eines inhaltsadressierbaren Speichers (CAM), der Zeilenadressen defekter Zeilen oder Gruppen von Zeilen speichert. Der CAM 701 wird verwendet, um auf Zeilen zuzugreifen, die momentan getestet werden, sowie um die Adressen von Zeilen zu speichern, die ausge­ tauscht werden müssen. Das heißt, der CAM 701 liefert jeg­ liche erforderliche Adreßübertragung für einen defekten Zeilenadreßraum, um einen geeigneten Adreßraum in einem re­ dundanten Speicher zu ersetzen, einschließlich einer Adreß­ verschiebung für das Testen.
Der CAM 701 erscheint extern, um zwei Adreß-Eingangstore aufzunehmen, oder "Wege", auf denen auf den CAM 701 zuge­ griffen werden kann. Eines dieser Tore 702 wird durch die BIST-Schaltungsanordnung 703 verwendet, um auf bestimmte Speicherzeilen zum Testen der einzelnen Speicherzellen, die in demselben enthalten sind, zuzugreifen. Ein zweites Tor 704 wird durch die Redundanzzuordnungs-Schaltungsanordnung 705 verwendet, um Zeilenadressen zu speichern, die nicht­ betriebsbereite Zellen enthalten. Die Zeilenadressen werden üblicherweise weder gespeichert, noch wird in einem einzel­ nen Taktzyklus auf dieselben zugegriffen, und eine Pipeline ist üblicherweise in das Tor 704 aufgenommen. In Fig. 7 ist eine Zweistufenpipeline gezeigt, bestehend aus einer ersten Stufe 706 und einer zweiten Stufe 707. Die Redundanzzuord­ nungs-Schaltungsanordnung 705 kann ferner eine Spalten- und/oder Zeilen-Schwellenlogik umfassen, die verwendet wird, um zu bestimmen, wann ein Spalten- oder Zeilen- Ersetzen durchgeführt wird. Alternativ kann diese Logik durch die BIST-Schaltungsanordnung 703 implementiert wer­ den. Die Redundanzzuordnungs-Schaltungsanordnung 705 kann ferner eine Logik zum Steuern von Redundanz-MUXES 503 und 504 umfassen, um Spalten-Konfiguration und -Austausch zu bewirken.
Innen ist der CAM 701 insofern eintorig, daß er jeweils ei­ ne Zugriffsoperation durchführt. Wenn der CAM 701 eine Schreib- oder Lese-Anforderung einer spezifischen Speicher­ adresse (es wird darauf hingewiesen, daß die Referenzspei­ cheradresse als Daten gehandhabt wird, so weit es den CAM 701 betrifft) von der BIST-Schaltungsanordnung 703 emp­ fängt, wird diese Anforderung durch den CAM 701 zu dem Speichercache 708 geleitet. Wenn die Speicheradresse mit einem vorangehend gespeicherten Speicheradreßraum überein­ stimmt, der einen fehlerhaften Abschnitt des Speichers an­ zeigt, liefert der CAM 701 ein Übereinstimmungssignal, um ein Ersetzen des redundanten Speichers für den fehlerhaften Speicherabschnitt zu bewirken. Alternativ wird die Zeilen­ adresse durch die Pipelinestufen 706 und 707 zu dem Tor 704 geleitet und durch den CAM gespeichert, und eine Austausch­ zeile wird abgebildet, wenn der CAM 701 eine Zeilenadresse von der Redundanzzuordnungs-Schaltungsanordnung 705 emp­ fängt. Bei einem bevorzugten Ausführungsbeispiel können mehrere Zeilen zusammen gruppiert und getestet werden und wenn nötig miteinander ausgetauscht werden. Wenn z. B. vier Speicherzeilen zusammen gruppiert sind, können die zwei mindestwertigen Bits ignoriert werden, und die vier Spei­ cherzeilen werden als eine einzige Entität behandelt.
Da zwei Operationen gleichzeitig eingeleitet werden können, d. h. Zugriff von der BIST-Schaltungsanordnung auf das Tor 702 und Speichern einer Zeilenadresse, die nicht betriebs­ fähigen Zellen entspricht, während der CAM 701 nur eine Zugriffsoperation gleichzeitig adressieren kann, muß ein Schema entwickelt werden, um beide ankommende Anforderungen zu handhaben. Die Erfindung löst diesen Konflikt durch Zu­ ordnen einer Priorität zu dem Schreiben der Zeilenadresse, die die nicht betriebsfähige Zelle enthält.
Es besteht eine feste Zeitverzögerung zwischen dem Erfassen eines Zeilenversagens und dem Zeitpunkt, wenn die Adresse der Zeile, die die nicht betriebsfähige Zelle enthält, den CAM 701 erreicht. Dem Speichern der Zeilenadreßdaten in den CAM 701 kann durch Erweitern dieser festen Zeitverzögerun­ gen eine Priorität gegeben werden, um Konflikte zu beseiti­ gen. Die Korrekturoperation sowohl des Speicherns der Zei­ lenadresse als auch des Testens der BIST- Schaltungsanordnung wird durch Planen eines BIST- Schaltungsanordnungs-Schreibens sichergestellt, um gleich­ zeitig mit dem CAM-Speicher-Schreiben aufzutreten. Schrei­ ben der BIST-Schaltungsanordnung kann geplant werden, um sequentiell aufzutreten, ohne dazwischenliegende Leseopera­ tionen der BIST-Schaltungsanordnung, um Konflikte zwischen einem CAM-Schreiben und einem BIST-Schaltungsanordnungs- Lesen zu beseitigen.
Ein Fachmann würde verstehen, daß das Speicherzellenarray, die tragende Struktur (einschließlich der Adreßdecoder, Le­ severstärker, Takte, etc.), andere Strukturen (z. B. Pro­ zessor/Steuerung, zentrale Verarbeitungseinheit, Eingabe-/Aus­ gabe-Vorrichtungen, etc.) und eingebauter Selbsttest und eingebaute Selbstreparatur alle als ein integrierter Chip oder ein Halbleiterchip oder ein Chip, der ein Halb­ leitersubstrat umfaßt, gebildet sind.
Fig. 8 ist ein Diagramm, das die relative Sequenz des BIST gefolgt durch die BISR zeigt, wenn ein Umleiten der Spei­ cheradreßanforderungen zu einem redundanten Abschnitt des Speichers erforderlich ist. Der CAM 701 (Fig. 7) umfaßt wie dargestellt acht inhaltsadressierbare Speicherpositionen, wobei jede z. B. die elf Bit mit höchster Wertigkeit einer Speicheradresse speichert. Wenn eine Zelladresse mit Adreß­ raumdaten übereinstimmt, die in dem CAM 701 gespeichert sind, dann wird ein entsprechendes Übereinstimmungssignal an die Zeilenadreßsubstitutions-Schaltung 801 geliefert. Dies kann verursachen, daß eine Adresse, die einer entspre­ chenden Gruppe redundanter Zeilen entspricht, für den Ab­ schnitt der Adresse ersetzt wird, der eine defekte Gruppe von Zeilen bezeichnet. Das resultierende Adreßsignal wird dann auf den Speicher 802 angewendet, der auf eine spezifi­ zierte Speicherzelle zugreift, so daß Daten in die Zelle geschrieben oder daraus gelesen werden können.
Bei diesem Beispiel wird angenommen, daß eine gewisse An­ zahl der niederwertigen Adreßbits verwendet wird, um zwi­ schen minimal adressierbaren Einheiten (für dieses Beispiel und zu Darstellungszwecken Bits) innerhalb einer Zeile und einer bestimmten Zeile innerhalb einer vorbestimmten mini­ malen austauschbaren Gruppengröße von Zeilen, z. B. vier Zeilen, zu unterscheiden. Ein Zwanzig-Bit-Adreßraum kann z. B. die sieben niederwertigsten Bits aufweisen, die eines von 128 Bits bezeichnen (d. h. adressieren), die eine Zeile bilden, wobei die nächsten zwei höchstwertigen Bits eine von vier Zeilen innerhalb jeder vierreihigen Gruppe be­ zeichnen und die elf höchstwertigen Bits eine von 2048 vierreihigen Gruppierungen bezeichnen. Da die Zeilen in Gruppen ersetzt werden, muß der CAM nur die elf höchstwer­ tigen Bits einer Adresse speichern, um zu bestimmen, ob die Adresse, auf die zugegriffen werden soll, Teil eines vier­ reihigen Gruppenadreßraums ist, der vorangehend bestimmt wurde, um eine defekte Zelle zu umfassen.
Der BIST-Abschnitt umfaßt nominell fünf Schritte. Anfäng­ lich wird eine Adresse einer Zelle, die in dem Speicher 802 getestet werden soll bei Schritt 803 erzeugt, wobei die Adresse zu dem CAM 107 für eine mögliche Übertragung gelie­ fert wird, d. h. erneutes Abbilden in einen redundanten Speicher, wenn die gelieferte Adresse Teil eines defekten Adreßraums ist, der eine defekte Zeile von Speicherzellen umfaßt. Wenn die Adresse der getesteten Zelle nicht voran­ gehend bestimmt wurde, um innerhalb des Adreßraums einer defekten Zeilengruppe zu fallen, dann wird die Adresse von Schritt 803 unverändert an den zu testenden Speicher 802 geleitet. Alternativ, wenn die höherwertigen Bits der Ad­ resse einem Eintrag in den CAM 701 entsprechen, dann wird ein Übereinstimmungssignal erzeugt, das einen Zugriff einer entsprechenden redundanten Gruppe von vier Zeilen einlei­ tet, wobei die niederwertigsten Bits der Adresse verwendet werden, um eine der vier Zeilen und ein Byte innerhalb die­ ser Zeile zu benennen, wie in dem unkorrigierten Fall.
Sobald das geeignete Adreßsignal an die zu testende Spei­ chereinheit 802 geliefert wird, werden die Testdaten bei Schritt 804 in die bestimmte Zelle oder Zellen geschrieben. Das Lesen von der Zelle oder den Zellen erfordert ein er­ neutes Übertragen der Adresse der zu testenden Zelle bei Schritt 805, wie vorangehend in Verbindung mit Schritt 803 beschrieben wurde. Nun jedoch werden Daten bei Schritt 806 aus der Zelle oder den Zellen gelesen und bei Schritt 807 werden diese Daten mit den gespeicherten Daten verglichen. Eine Übereinstimmung zeigt an, daß die Zelle betriebsbereit zu sein scheint (unterliegt weiterem Testen), während eine Nichtübereinstimmung einen Defekt oder einen Fehler an­ zeigt. Wird ein Defekt identifiziert, dann wird die Adresse der entsprechenden Zeilengruppe bei Schritt 808 in den CAM 701 gespeichert. Die Speicherung der "schlechten" Adreß­ gruppe unterliegt jedoch der Verarbeitungsverzögerung 809. Leider verursacht die Verzögerung einen Konflikt zwischen den Adreßdaten, die in den CAM 701 geschrieben werden, und dem nächsten Speicherzugriff, der bei Schritt 803 beginnt. Somit kann das Schreiben in den CAM 701 zu einer Änderung der Adreßübertragung führen, die zwischen den Schritten 803 und 806 auftritt, so daß Testdaten in eine Zellposition ge­ speichert werden können, aber von einer anderen gelesen werden.
Bezug nehmend auf Fig. 9 wird eine Verzögerung in der Form der Schritte 901 und 902 eingeleitet, so daß das Aktuali­ sieren des CAM 701 (Fig. 7) gemäß Schritt 808 und unter Verzögerung 809 vor dem Speichern der Testdaten abgeschlos­ sen wird. Insbesondere kopieren die Schritte 901 und 902 die Aktionen der Schritte 801 bzw. 802. Somit wird die Adresse einer zu testenden Zelle bei Schritt 901 zu dem CAM 701 geliefert. In dem Fall, in dem der Schritt 808 gleich­ zeitig implementiert wird, um aktualisierte Adreßdaten an den CAM 701 zu liefern, resultiert daraus ein Konflikt, so daß eine fehlerhafte Adresse oder keine Adresse bei Schritt 901 an den Speicher 802 geliefert werden kann. Diese Mög­ lichkeit führt dazu, daß Daten, die in den Speicher 802 ge­ schrieben werden müssen, ansprechend auf Schritt 902 nicht richtig gespeichert werden. Um Versagensereignisse zu behe­ ben, um Testdaten richtig in den Speicher 802 zu spei­ chern, die durch solche Konflikte verursacht wurden, wie­ derholen die Schritte 803 und 804 den Prozeß des Lieferns der Adresse der zu testenden Zelle und der zu speichernden Daten in der Zelle, um sicherzustellen, daß die Testdaten­ speicherung in die gewünschtes Zelle richtig durchgeführt wird. Wiederholter Zugriff auf den Speicher leitet die ge­ wünschte Verzögerung ebenfalls ein. Das Verarbeiten wird dann fortgesetzt, wie in Verbindung mit Fig. 8 detailliert beschrieben wurde, um die Testdaten zurück aus der zu te­ stenden Zelle zu lesen, die gelesenen Daten mit den ge­ schriebenen Daten zu vergleichen, und jegliche erforderli­ che Aktualisierungen an dem CAM 701 zu implementieren, um jegliche defekte Speicherzelle zu berücksichtigen, die durch den Test identifiziert wird.
Wie ein Fachmann aus der Offenbarung der vorliegenden Er­ findung, den Prozessen, den Maschinen, der Herstellung, der Materialzusammensetzungen, den Einrichtungen, den Verfahren oder den Schritten leicht erkennen kann, die momentan be­ stehen oder später entwickelt werden, die im wesentlichen die gleiche Funktion ausführen oder im wesentlichen das gleiche Ergebnis erreichen wie die entsprechenden Ausfüh­ rungsbeispiele, die hierin beschrieben sind, gemäß der vor­ liegenden Erfindung verwendet werden können. Entsprechend sollen die angefügten Ansprüche innerhalb ihres Schutzbe­ reiches solche Prozesse, Maschinen, Herstellungen, Materi­ alzusammensetzungen, Einrichtungen, Verfahren oder Schritte umfassen. Während die aktuelle Erfindung unter Verwendung von Speicherzellenarrays beschrieben wurde, würde ein Fach­ mann verstehen, daß die Erfindung auf jede Vorrichtung mit mehreren Zellen angewendet werden kann, in der die Beibe­ haltung physischer Positionen nicht wichtig ist, und redun­ dante Spalten und Zeilen von Vorrichtungen für fehlerhafte Vorrichtungen eingesetzt werden können. Die Erfindung ist z. B. für Arrays von Multiplizierern und Addierern glei­ chermaßen anwendbar.

Claims (20)

1. Verfahren zum Eliminieren fehlerhafter Speicherzellen von einem aktiven Teil eines Speicherarrays, wobei der Speicher in Zeilengruppen (109-114) und Spaltengruppen (101-106) angeordnet ist und Ersatzspaltengruppen (107, 108) und Ersatzzeilengruppen (115, 116) umfaßt, wobei das Verfahren folgende Schritte aufweist:
  • a) Einstellen eines Spaltenaustausch- Schwellenwerts (202) und eines Zeilenaus­ tausch-Schwellenwerts (212);
  • b) Bestimmen, ob Zellen in jeder Spaltengruppe des Speicherarrays defekt sind (703);
  • c) Konfigurieren des Speicherarrays, um solche Spaltengruppen, die mehr als den Spaltenaus­ tausch-Schwellenwert von defekten Zellen um­ fassen, durch solche der Ersatzspaltengrup­ pen zu ersetzen;
  • d) Bestimmen, ob Zellen in jeder Zeilengruppe des Speicherarrays defekt sind (703); und
  • e) Konfigurieren des Speicherarrays, um dieje­ nigen aus den Zeilengruppen durch diejenigen aus den Ersatzzeilengruppen (705) zu erset­ zen, die mehr als den Zeilenaustausch- Schwellenwert an defekten Zellen aufweisen.
2. Verfahren gemäß Anspruch 1, bei dem der Spaltenaus­ tausch-Schwellenwert (202) eine Funktion einer unbe­ nutzten Anzahl der Ersatzzeilengruppen (115, 116) ist.
3. Verfahren gemäß Anspruch 2, bei dem der Spaltenaus­ tausch-Schwellenwert (202) gleich einer Zahl ist, die um eins größer ist, als die unbenutzte Anzahl der Er­ satzzeilengruppen (115, 116) ist.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem der Zeilenaustausch-Schwellenwert (212) eine Funktion einer unbenutzten Anzahl der Ersatzspaltengruppen (107, 108) ist.
5. Verfahren gemäß Anspruch 4, bei dem der Zeilenaus­ tausch-Schwellenwert (212) gleich einer Zahl ist, die um eins größer ist als die unbenutzte Anzahl der Er­ satzspaltengruppen (107, 108) ist.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem die Schritte (ii) bis (v) wiederholt werden bis zu ei­ ner Bestimmung, daß keine verbleibenden defekten ZeI­ len oder keine unbenutzten Ersatzspaltengruppen und keine unbenutzten Ersatzzeilengruppen vorhanden sind (703).
7. Verfahren gemäß Anspruch 6, das einen Schritt des Ein­ stellens des Spaltenaustausch-Schwellenwerts (202) um­ faßt, um gleich einer Zahl zu sein, die eins mehr ist, als eine unbenutzte Anzahl der Ersatzzeilengruppen (115, 116) ist.
8. Verfahren gemäß Anspruch 6, das einen Schritt des Ein­ stellens des Spaltenaustausch-Schwellenwerts (202) um­ faßt, um gleich einer Zahl zu sein, die gleich der kleineren Zahl der Zahlen ist, die um eins größer als eine unbenutzte Anzahl der Ersatzzeilengruppen ist und um Eins kleiner als ein Wert des Spaltenfehler- Schwellenwerts während eines vorangehenden Zyklus ist.
9. Verfahren gemäß einem der Ansprüche 1 bis 8, bei dem der Schritt (ii) ferner das Liefern einer Zählung (201) einer Anzahl der Zellen in jeder Spaltengruppe (101-106) des Speicherarrays umfaßt, die defekt sind.
10. Verfahren gemäß einem der Ansprüche 1 bis 9, bei dem der Schritt (ii) ferner das Liefern einer Zählung (211) einer Anzahl von Zeilengruppen (109-119) umfaßt, die mindestens eine defekte Zelle umfassen.
11. System zum Beseitigen fehlerhafter Speicherzellen von einem Speicherarray, das in Zeilengruppen und Spalten­ gruppen angeordnet ist und Ersatzspaltengruppen und Ersatzzeilengruppen umfaßt, wobei das System folgende Merkmale aufweist:
einen Speicherzellentester zum Bestimmen fehlerhafter Speicherzellen;
eine Spaltenschwellenlogik, die betreibbar ist, um ei­ nen Spaltenaustausch-Schwellenwert als eine Funktion einer Anzahl unbenutzter Ersatzzeilen von Speicherzel­ len zu identifizieren;
eine Spaltenkonfigurationslogik, die betreibbar ist, um jene der Spaltengruppen, die mindestens den Spal­ tengruppen-Schwellenwert an defekten Zellen enthalten, durch solche der Ersatzspaltengruppen zu ersetzen; und
eine Zeilenkonfigurationslogik, die betreibbar ist, um solche Zeilengruppen, die mindestens eine vorbestimmte Anzahl defekter Zellen enthalten, durch jene der Ersatzzeilengruppen zu ersetzen.
12. System gemäß Anspruch 11, bei dem die Spaltenschwel­ lenlogik, die Spaltenkonfigurationslogik und die Zei­ lenkonfigurationslogik konfiguriert sind, um abwech­ selnd zu arbeiten, um fehlerhafte Zellen durch die Er­ satzspaltengruppen und die Ersatzzeilengruppen zu er­ setzen.
13. System gemäß Anspruch 11 oder 12, bei dem die Spalten­ schwellenlogik betreibbar ist, um den Spaltenaus­ tausch-Schwellenwert ansprechend auf eine unbenutzte Anzahl von Ersatzzeilengruppen zu bestimmen.
14. System gemäß einem der Ansprüche 11 bis 13, bei dem die Spaltenschwellenlogik betreibbar ist, um den Spal­ tenaustausch-Schwellenwert einzustellen, um gleich ei­ ner Zahl zu sein, die um eins größer ist als eine un­ benutzte Anzahl der Ersatzzeilengruppen ist.
15. System gemäß einem der Ansprüche 11 bis 14, bei dem die Spaltenschwellenlogik betreibbar ist, um den Spal­ tenaustausch-Schwellenwert einzustellen, um gleich ei­ ner Zahl zu sein, die gleich der kleineren Zahl der Zahlen ist, die Eins größer als eine unbenutzte Anzahl von Ersatzzeilengruppen ist und Eins weniger als ein Wert des Spaltenfehler-Schwellenwerts während eines vorangehenden Zyklus ist.
16. System gemäß einem der Ansprüche 11 bis 15, bei dem die vorbestimmte Anzahl von defekten Speicherzellen gleich einer Zahl ist, die um Eins größer ist als eine unbenutzte Anzahl der Ersatzspaltengruppen ist.
17. Halbleitervorrichtung, die folgende Merkmale aufweist:
ein Speicherarray, das in Zeilengruppen und Spalten­ gruppen angeordnet ist und Ersatzspaltengruppen und Ersatzzeilengruppen umfaßt; und
eine Speicherzellen-Testschaltungsanordnung, die be­ treibbar ist, um:
zu bestimmen, ob Zellen in jeder Spaltengruppe des Speicherarrays defekt sind; und
zu bestimmen, ob Zellen in jeder Zeilengruppe des Speicherarrays defekt sind;
und eine Speicherzellen-Reparaturschaltungsanordnung, die betreibbar ist, um:
das Speicherarray zu konfigurieren, um solche Spalten­ gruppen, die mehr als einen Spaltenaustausch- Schwellenwert an defekten Zellen aufweisen, durch jene der Ersatzspaltengruppen zu ersetzen; und
das Speicherarray zu konfigurieren, um solche Zeilen­ gruppen, die mehr als einen Zeilenaustausch- Schwellenwert an defekten Zellen umfassen, durch jene der Ersatzzeilengruppen zu ersetzen.
18. Halbleiter-Speichervorrichtung gemäß Anspruch 17, bei der die Speicherzellen-Testschaltungsanordnung und die Speicherzellen-Reparaturschaltungsanordnung gleichzei­ tig betreibbar sind, um einen ersten Abschnitt des Speicherarrays zu reparieren, während ein zweiter Ab­ schnitt des Speicherarrays getestet wird.
19. Halbleiter-Speichervorrichtung gemäß Anspruch 17 oder 18, bei der die Speicherzellen-Testschaltungsanordnung und die Speicherzellen-Reparaturschaltungsanordnung gleichzeitig arbeiten, um die Spaltengruppen zu testen und zu reparieren und nachfolgend gleichzeitig arbei­ ten, um die Zeilengruppen zu testen und zu reparieren.
20. Halbleiter-Speichervorrichtung gemäß einem der Ansprü­ che 17 bis 19, die ferner eine Schaltungsanordnung aufweist, die betreibbar ist, um den Spaltenaustausch- Schwellenwert als gleich eine Zahl zu bestimmen, die um eins größer ist als eine unbenutzte Anzahl der Er­ satzzeilengruppen ist.
DE10206720A 2001-02-23 2002-02-18 System und Verfahren zum Betreiben eines programmierbaren Zählers für Spaltenversagen bei Redundanzzuordnung Withdrawn DE10206720A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/792,320 US6373758B1 (en) 2001-02-23 2001-02-23 System and method of operating a programmable column fail counter for redundancy allocation

Publications (1)

Publication Number Publication Date
DE10206720A1 true DE10206720A1 (de) 2002-09-12

Family

ID=25156488

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10206720A Withdrawn DE10206720A1 (de) 2001-02-23 2002-02-18 System und Verfahren zum Betreiben eines programmierbaren Zählers für Spaltenversagen bei Redundanzzuordnung

Country Status (2)

Country Link
US (1) US6373758B1 (de)
DE (1) DE10206720A1 (de)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3782840B2 (ja) 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
AU3832297A (en) 1996-02-29 1997-09-16 Hitachi Limited Semiconductor memory device having faulty cells
JP2000113695A (ja) * 1998-10-01 2000-04-21 Mitsubishi Electric Corp 同期型半導体記憶装置
US6487131B1 (en) * 1999-12-30 2002-11-26 Intel Corporation Method and apparatus for testing a CAM addressed cache
US7089360B1 (en) 2000-03-22 2006-08-08 Intel Corporation Shared cache wordline decoder for redundant and regular addresses
US6507531B1 (en) 2000-03-29 2003-01-14 Intel Corporation Cache column multiplexing using redundant form addresses
US6552937B2 (en) 2001-03-28 2003-04-22 Micron Technology, Inc. Memory device having programmable column segmentation to increase flexibility in bit repair
DE10119144C1 (de) * 2001-04-19 2002-10-10 Infineon Technologies Ag Verfahren zum Testen von Halbleiter-Speicherbausteinen
US20020184557A1 (en) * 2001-04-25 2002-12-05 Hughes Brian William System and method for memory segment relocation
US6707752B2 (en) * 2001-06-22 2004-03-16 Intel Corporation Tag design for cache access with redundant-form address
JP5119563B2 (ja) * 2001-08-03 2013-01-16 日本電気株式会社 不良メモリセル救済回路を有する半導体記憶装置
US6744652B2 (en) * 2001-08-22 2004-06-01 Netlogic Microsystems, Inc. Concurrent searching of different tables within a content addressable memory
US6993622B2 (en) * 2001-10-31 2006-01-31 Netlogic Microsystems, Inc. Bit level programming interface in a content addressable memory
US7210003B2 (en) 2001-10-31 2007-04-24 Netlogic Microsystems, Inc. Comparand generation in a content addressable memory
US7237058B2 (en) * 2002-01-14 2007-06-26 Netlogic Microsystems, Inc. Input data selection for content addressable memory
US6714430B1 (en) * 2002-05-10 2004-03-30 Netlogic Microsystems, Inc. Content addressable memory having column redundancy
US6907554B2 (en) * 2003-05-09 2005-06-14 International Business Machines Corporation Built-in self test system and method for two-dimensional memory redundancy allocation
DE10335708B4 (de) * 2003-08-05 2009-02-26 Qimonda Ag Hub-Baustein zum Anschließen von einem oder mehreren Speicherbausteinen
US20060018142A1 (en) * 2003-08-11 2006-01-26 Varadarajan Srinivasan Concurrent searching of different tables within a content addressable memory
US7139944B2 (en) * 2003-08-25 2006-11-21 International Business Machines Corporation Method and system for determining minimum post production test time required on an integrated circuit device to achieve optimum reliability
US7574640B2 (en) * 2003-09-05 2009-08-11 Intel Corporation Compacting circuit responses
US6928377B2 (en) * 2003-09-09 2005-08-09 International Business Machines Corporation Self-test architecture to implement data column redundancy in a RAM
US20050066226A1 (en) * 2003-09-23 2005-03-24 Adams R. Dean Redundant memory self-test
US7472330B2 (en) * 2003-11-26 2008-12-30 Samsung Electronics Co., Ltd. Magnetic memory which compares compressed fault maps
US7287177B2 (en) * 2003-12-04 2007-10-23 International Business Machines Corporation Digital reliability monitor having autonomic repair and notification capability
US20050144524A1 (en) * 2003-12-04 2005-06-30 International Business Machines Corporation Digital reliability monitor having autonomic repair and notification capability
JP4002900B2 (ja) * 2004-03-02 2007-11-07 東芝マイクロエレクトロニクス株式会社 半導体記憶装置
KR100587080B1 (ko) * 2004-05-17 2006-06-08 주식회사 하이닉스반도체 메모리 장치의 감지 증폭기를 제어하여 컬럼성 페일을검출하는 방법 및 그 장치
US7203873B1 (en) 2004-06-04 2007-04-10 Magma Design Automation, Inc. Asynchronous control of memory self test
FR2875352B1 (fr) * 2004-09-10 2007-05-11 St Microelectronics Sa Procede de detection et de correction d'erreurs pour une memoire et circuit integre correspondant
TWI252397B (en) * 2004-09-17 2006-04-01 Ind Tech Res Inst Method and apparatus of built-in self-diagnosis and repair in a memory with syndrome identification
US7644323B2 (en) * 2004-11-30 2010-01-05 Industrial Technology Research Institute Method and apparatus of build-in self-diagnosis and repair in a memory with syndrome identification
US7219275B2 (en) * 2005-02-08 2007-05-15 International Business Machines Corporation Method and apparatus for providing flexible modular redundancy allocation for memory built in self test of SRAM with redundancy
US7555677B1 (en) * 2005-04-22 2009-06-30 Sun Microsystems, Inc. System and method for diagnostic test innovation
US20070061637A1 (en) * 2005-09-12 2007-03-15 Lsi Logic Corporation Process for conducting high-speed bitmapping of memory cells during production
US7386771B2 (en) * 2006-01-06 2008-06-10 International Business Machines Corporation Repair of memory hard failures during normal operation, using ECC and a hard fail identifier circuit
US8892942B2 (en) * 2007-07-27 2014-11-18 Hewlett-Packard Development Company, L.P. Rank sparing system and method
US7710802B2 (en) * 2007-09-05 2010-05-04 Macronix International Co., Ltd. Method for testing memory
US8330477B1 (en) * 2008-01-17 2012-12-11 Marvell International Ltd. Test engine for integrated circuit chip testing
JP5218228B2 (ja) * 2008-04-23 2013-06-26 新東工業株式会社 搬送装置及びブラスト加工装置
US7684267B2 (en) * 2008-06-18 2010-03-23 Sun Microsystems, Inc. Method and apparatus for memory redundancy in a microprocessor
WO2010038630A1 (en) * 2008-09-30 2010-04-08 Semiconductor Energy Laboratory Co., Ltd. Semiconductor memory device
US8254191B2 (en) * 2008-10-30 2012-08-28 Micron Technology, Inc. Switched interface stacked-die memory architecture
US8275933B2 (en) 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
US8315117B2 (en) * 2009-03-31 2012-11-20 Freescale Semiconductor, Inc. Integrated circuit memory having assisted access and method therefor
US8379466B2 (en) * 2009-03-31 2013-02-19 Freescale Semiconductor, Inc. Integrated circuit having an embedded memory and method for testing the memory
US8634263B2 (en) * 2009-04-30 2014-01-21 Freescale Semiconductor, Inc. Integrated circuit having memory repair information storage and method therefor
US8392777B2 (en) * 2009-08-27 2013-03-05 Advanced Micro Devices, Inc. Centralized MBIST failure information
US8381052B2 (en) * 2009-11-10 2013-02-19 International Business Machines Corporation Circuit and method for efficient memory repair
US8612809B2 (en) 2009-12-31 2013-12-17 Intel Corporation Systems, methods, and apparatuses for stacked memory
JP5559616B2 (ja) * 2010-06-17 2014-07-23 ラピスセミコンダクタ株式会社 半導体メモリ装置
US8645752B2 (en) * 2011-11-08 2014-02-04 Micron Technology, Inc. Apparatuses and methods for operating a memory device
US8839054B2 (en) * 2012-04-12 2014-09-16 International Business Machines Corporation Read only memory (ROM) with redundancy
US9875810B2 (en) * 2013-07-24 2018-01-23 Microsoft Technology Licensing, Llc Self-identifying memory errors
KR101521258B1 (ko) * 2013-09-10 2015-05-21 연세대학교 산학협력단 메모리 수리 방법 및 메모리 수리 장치
EP3050057A1 (de) 2013-09-27 2016-08-03 Hewlett Packard Enterprise Development LP Speicherreservierung auf speichermodulen
US9984769B2 (en) * 2014-10-30 2018-05-29 Research & Business Foundation Sungkyunkwan University 3D memory with error checking and correction function
KR20160054301A (ko) * 2014-11-06 2016-05-16 에스케이하이닉스 주식회사 반도체 장치 리페어 시스템 및 그 리페어 방법
US10460822B2 (en) * 2017-08-23 2019-10-29 Arm Limited Memory with a controllable I/O functional unit
JP7171286B2 (ja) * 2018-07-20 2022-11-15 ラピスセミコンダクタ株式会社 半導体メモリ装置
US11468966B2 (en) * 2020-05-21 2022-10-11 Nanya Technology Corporation Memory device with post package repair function and method for operating the same

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255227A (en) 1991-02-06 1993-10-19 Hewlett-Packard Company Switched row/column memory redundancy
US5495447A (en) * 1993-10-08 1996-02-27 Digital Equipment Corporation Method and apparatus using mapped redundancy to perform multiple large block memory array repair
JP3652728B2 (ja) 1994-12-31 2005-05-25 ヒューレット・パッカード・カンパニー 走査型メモリ装置および誤り訂正方法
US5795797A (en) * 1995-08-18 1998-08-18 Teradyne, Inc. Method of making memory chips using memory tester providing fast repair
JPH09147598A (ja) * 1995-11-28 1997-06-06 Mitsubishi Electric Corp 半導体記憶装置およびアドレス変化検出回路
US6000047A (en) 1995-12-08 1999-12-07 Hewlett-Packard Company Scanning memory device and error correction method
US6141779A (en) 1998-10-19 2000-10-31 Hewlett-Packard Company Method for automatically programming a redundancy map for a redundant circuit

Also Published As

Publication number Publication date
US6373758B1 (en) 2002-04-16

Similar Documents

Publication Publication Date Title
DE10206720A1 (de) System und Verfahren zum Betreiben eines programmierbaren Zählers für Spaltenversagen bei Redundanzzuordnung
DE10206719A1 (de) Cache-Testsequenz für eintorigen Zeilenreparatur-CAM
US4479214A (en) System for updating error map of fault tolerant memory
US7490274B2 (en) Method and apparatus for masking known fails during memory tests readouts
DE4328605C2 (de) Halbleiterspeichereinrichtung
DE3032630C2 (de) Halbleiterspeicher aus Speicherbausteinen mit redundanten Speicherbereichen und Verfahren zu dessen Betrieb
DE3728521A1 (de) Anordnung und verfahren zur feststellung und lokalisierung von fehlerhaften schaltkreisen eines speicherbausteins
EP1124232B1 (de) Integrierter Halbleiterspeicher mit redundanter Einheit von Speicherzellen
DE19542033B4 (de) Redundanzschaltung und Redundanzverfahren für eine Halbleiterspeichervorrichtung
DE10110469A1 (de) Integrierter Speicher und Verfahren zum Testen und Reparieren desselben
DE10225381A1 (de) Verfahren und Vorrichtung zum Speichern von Speichertestinformantion
EP1046993B1 (de) Halbleiterspeicheranordnung mit BIST
DE19639972B4 (de) Hochgeschwindigkeitstestschaltkreis für eine Halbleiterspeichervorrichtung
DE10131388B4 (de) Integrierter dynamischer Speicher und Verfahren zum Betrieb desselben
US20020108073A1 (en) System for and method of operating a programmable column fail counter for redundancy allocation
DE112007003512T5 (de) Speicherbauelement mit Fehlerkorrekturfähigkeit und effizienter Teilwort-Schreiboperation
DE3827174A1 (de) Halbleiter-speichervorrichtung
DE102004028340A1 (de) Verringern von Speicherausfällen in integrierten Schaltungen
DE102008030408A1 (de) System und Verfahren zum Adressieren von Fehlern in einer Mehrchipspeichervorrichtung
US20030101389A1 (en) Method for reconfiguring a memory
DE10254454A1 (de) Reparaturanalyseeinrichtung für einen DRAM bei einer integrierten Halbleiterschaltung unter Verwendung der eingebauten CPU
DE4115084C2 (de) Vorrichtung zum Testen einer Halbleiterspeichereinrichtung
DE19924153B4 (de) Schaltungsanordnung zur Reparatur eines Halbleiterspeichers
DE102005046981B4 (de) Speicher und Verfahren zum Verbessern der Zuverlässigkeit eines Speichers mit einem benutzten Speicherbereich und einem unbenutzten Speicherbereich
DE102021117062A1 (de) Speicherreparatur unter verwendung optimierter redundanznutzung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8139 Disposal/non-payment of the annual fee