DE10225381A1 - Verfahren und Vorrichtung zum Speichern von Speichertestinformantion - Google Patents

Verfahren und Vorrichtung zum Speichern von Speichertestinformantion

Info

Publication number
DE10225381A1
DE10225381A1 DE10225381A DE10225381A DE10225381A1 DE 10225381 A1 DE10225381 A1 DE 10225381A1 DE 10225381 A DE10225381 A DE 10225381A DE 10225381 A DE10225381 A DE 10225381A DE 10225381 A1 DE10225381 A1 DE 10225381A1
Authority
DE
Germany
Prior art keywords
memory
row
address
column
entry
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
DE10225381A
Other languages
English (en)
Inventor
Michael A Mullins
Antony J Sauvageau
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE10225381A1 publication Critical patent/DE10225381A1/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
    • 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
    • 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

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

Verfahren und Vorrichtungen zum Speichern von Speichertestinformation sind präsentiert. Das Verfahren enthält die Schritte zum Speichern eines Teils von Information in Bezug auf Stellen und Anzahlen von fehlerhaften Speicherzellen, die während eines Testens des Speichers erfasst werden, und zum Aktualisieren der gespeicherten Information, wenn fehlerhafte Speicherzellen erfasst werden, um einen ersten Typ von Speicherreserve anzuzeigen, der einem Reparieren einer fehlerhaften Speicherzelle zuzuordnen ist, einen zweiten komplementären Typ von Speicherreserve, der einem Reparieren der fehlerhaften Speicherzelle zuzuordnen ist, oder dass der Speicher nicht reparierbar ist. Der erste Typ von Speicherreserve entspricht einem eines Zeilen- und eines Spaltenteils von Speicher und der zweite komplementäre Typ von Speicherreserve entspricht dem anderen der Zeilen- und Spaltenteile von Speicher.

Description

  • Was beschrieben ist, sind Verfahren und Vorrichtungen zum Speichern von Speichertestinformationen. Insbesondere werden Verfahren und Vorrichtungen zum Speichern von Speichertestinformation eines Speichers mit einer redundanten Speicherschaltung präsentiert.
  • Ein herkömmliches Testen eines Speichers enthält sowohl eine Identifikation aller fehlerhaften bzw. ausgefallenen Speicheradressen in einem Speicherfeld als auch eine Identifikation diesbezüglich, welches Bit (welche Bits) dieser Speicheradressen einen Fehler haben. Ein typischer Speichertest enthält ein Schreiben verschiedener Datenmuster in einen Speicher und dann ein Lesen und Vergleichen der Ausgabe des Speichers mit erwarteten Werten oder Mustern. Nichtübereinstimmungen bzw. Fehlanpassungen zwischen erwarteten und tatsächlichen gelesenen Speicherwerten werden in einer externen Speicherkarte gespeichert, die typischerweise im Speichertester selbst angeordnet ist.
  • Nachdem alle Testmuster ausgeführt worden sind und die fehlerhaften Adressen (und Bits) identifiziert und gespeichert worden sind, kann der Tester dann eine Reparaturanalyse an den gespeicherten Fehlerdaten durchführen, um zu bestimmen, welche fehlerhaften Bits (oder Zellen) von Adressenzeilen und/oder -spalten (oder I/Os) durch verfügbare redundante (oder Ersatz- bzw. Reserve-) Speicherzellen ersetzt werden müssen, um den Speicher voll betriebsfähig zu machen. Die Information über einen fehlerhaften Speicher wird typischerweise am Ende eines gesamten Speichertestens analysiert. Dies lässt zu, dass der Reparaturalgorithmus die gesamte Information über einen fehlerhaften Speicher berücksichtigt, um eine optimale Reparaturkonfiguration zu bestimmen, die den Betrieb des Speichers maximiert und die die redundanten Speicherzellen auf die effizienteste Weise verwendet. Zusätzlich können durch Berücksichtigen der gesamten Information über einen fehlerhaften Speicher auf einmal bestimmte nicht reparierbare Speicherzustände früh identifiziert werden, und der Speicher kann weggeworfen bzw. ausgemustert werden, bevor wertvolle Test- und Reparaturzeit bezüglich der nicht reparierbaren Situation verschwendet wird.
  • Zu den meisten herkömmlichen Testern gehörige Beschränkungen erfordern, dass die Reparaturinformation dynamisch erzeugt und verwendet wird. Dies kann die Gesamtspeicherausbeute reduzieren, indem die redundanten Speicherzellen ineffizient verwendet werden. Diese Beschränkungen haben ein Speichertesten auch zu einem teuersten und zeitaufwändigen Prozess bei der Entwicklung eines schnelleren und dichteren Speichers gemacht.
  • Beispielsweise haben herkömmliche Speichertester typischerweise eine relativ langsamere Verarbeitungstaktgeschwindigkeit als die Betriebsfrequenz der Speicherzellen, für die sie zum Testen verwendet werden. Die relativ langsamere Taktgeschwindigkeit macht es unmöglich zu bestimmen, ob der Speicher, der gerade getestet wird, bei normalen Betriebsgeschwindigkeiten richtig arbeiten wird. Ebenso ist ein Sammeln von Fehlerinformation bei der normalen Betriebsgeschwindigkeit unter Verwendung dieser langsameren herkömmlichen Tester nicht möglich. Folglich muss der Tester große Mengen von Fehlerdaten speichern können und dann diese große Menge von Daten in einem Reparaturalgorithmus analysieren können, der "offline" ausgeführt wird. Mit herkömmlichen Testern muss der Fehlerspeicher so groß wie die gesamte erwartete Zahl von Fehlerbits sein. Darüber hinaus muss der bereits beschränkte Testerspeicher, wenn Speicherdichten weiterhin größer werden, auch größer werden, und die Verarbeitungsleistung des Testers muss erhöht werden, um zum Verarbeiten von komplexeren Reparaturalgorithmuslösungen fähig zu sein.
  • Eine weitere Beschränkung, die zu herkömmlichen Testern gehört, ist ihre typische beschränkte I/O-Fähigkeit bzw. -Kapazität. Wenn ein Speicher dichter wird, muss auch die Anzahl von I/Os, die zum Testen des Speichers benötigt werden, größer werden. Tester, die I/O-beschränkt sind, werden den gesamten Speicher nicht auf einmal testen können, was erfordert, dass das Testprogramm in mehrere kleinere Tests aufgeteilt wird. Das Aufteilen des Speichertests führt zu einer insgesamt erhöhten Testzeit, was stark zu den Kosten beiträgt, die zu einer Speicherherstellung gehören.
  • Speicherentwickler haben Techniken für einen eingebauten Selbsttest (oder BIST = Built-In-Self-Test) verwendet, um mit einigen dieser Punkte fertig zu werden. Bei einem BIST wird ein Mustergenerator zum Testen des Speichers auf demselben Halbleiterchip (oder Wafer) wie der Speicher selbst hergestellt. Dies lässt zu, dass die BIST-Schaltung den Speicher "bei der richtigen Geschwindigkeit" testet, was die Sorgen bezüglich eines Fehlers bezüglich Erfassungsfehler als Ergebnis eines Testens eines Speichers bei Geschwindigkeiten unter der Betriebsgeschwindigkeit eliminiert. Zusätzlich behandelt die BIST-Schaltung die Sorgen, die zu heutigen Testern gehören, die I/O-beschränkt sind.
  • Es existieren aber noch Beschränkungen bei herkömmlichen BIST-Techniken. Beispielsweise müssen noch große Mengen an Fehlerspeicher in der BIST-Schaltung enthalten sein, um die Information über einen fehlerhaften Speicher zu speichern. Ebenso müssen zusätzliche Speicher- und Prozessor- Betriebsmittel in den Speicher eingebaut sein, um die Reparaturalgorithmusverarbeitung durchzuführen. Aufgrund von Platz- und Prozessorbeschränkungen können nur beschränkte Mengen an Fehlerspeicher und Reparaturcode in den BIST-Aufbau integriert sein. Folglich fahren herkömmliche BIST-Techniken damit fort, einen "Schnappschussansatz" zum Erfassen von fehlerhaften Speicherstellen zu verwenden. Dies erfordert, dass der Reparaturalgorithmus Information über einen fehlerhaften Speicher "im Flug bzw. im Vorübergehen" verarbeitet, was, wie es oben diskutiert ist, zu einem uneffizienten Verwenden der auf dem Speicherchip enthaltenen redundanten Speicherzellen führt.
  • Demgemäß gibt es eine Notwendigkeit für verbesserte Techniken zum Speichern der Information über einen fehlerhaften Speicher, die aus einem Speichertesten erzeugt wird, die die Fehlerspeicheranforderungen beim Tester angeordnet lassen und die die Komplexität des Reparaturalgorithmus zu einer viel einfacheren Aufgabe reduzieren werden. Insbesondere gibt es eine Notwendigkeit für verbesserte Techniken zum Speichern von nur der Information über fehlerhafte Speicher, die zum vollständigen Analysieren und Erzeugender Reparaturinformation nötig ist.
  • Demgemäß besteht eine Aufgabe im Schaffen eines Speichers auf einem Chip für die gesamte Information über einen fehlerhaften Speicher auf eine effiziente Weise. Eine weitere Aufgabe besteht im Sorgen für eine Speicherung mit aktueller Geschwindigkeit aller Informationen über einen fehlerhaften Speicher. Eine weitere Aufgabe besteht im Unterstützen des Testens eines Speichers mit einer großen Anzahl von I/O- Busspeichern. Eine weitere Aufgabe besteht im Erfassen bestimmter nicht reparierbarer Speicherfehlerzustände vor einem Initiieren eines Reparaturalgorithmus. Eine weitere Aufgabe besteht im Reduzieren der Komplexität des Reparaturalgorithmus selbst. Auf diese Aufgaben sind Verfahren und Vorrichtungen für eine kompakte Information in Bezug auf fehlerhafte Speicherstellen bei einem Speicher gerichtet.
  • Gemäß einem Aspekt enthält ein Verfahren zum Speichern von Speichertestinformation den Schritt zum Speichern eines Teils von Information in Bezug auf Stellen und Anzahlen von fehlerhaften Speicherzellen, die während eines Testens des Speichers erfasst werden. Die gespeicherte Information wird aktualisiert, wenn fehlerhafte Speicherzellen erfasst werden, um einen ersten Typ von Speicherreserve anzuzeigen, der einem Reparieren einer fehlerhaften Speicherzelle zuzuordnen ist, einen zweiten komplementären Typ von Speicherreserve, der einem Reparieren der fehlerhaften Speicherzelle zuzuordnen ist, oder dass der Speicher nicht reparierbar ist. Der erste Typ von Speicherreserve entspricht einem eines Zeilen- und eines Spaltenteils eines Speichers und der zweite komplementäre Typ von Speicherreserve entspricht dem anderen der Zeilen- und Spaltenteile eines Speichers.
  • Gemäß einem zugehörigen Aspekt wird die gespeicherte Information aktualisiert, um den Typ von Speicherreserve, der einem Reparieren der fehlerhaften Speicherzelle zuzuordnen ist, teilweise darauf basierend anzuzeigen, ob eine Anzahl von fehlerhaften Speicherzellen in einem jeweiligen Zeilen- oder Spaltenteil eines Speichers, wo die fehlerhafte Speicherzelle angeordnet ist, eine Anzahl von verfügbaren Speicherreserven vom komplementären Typ übersteigt.
  • Gemäß einem weiteren zugehörigen Aspekt wird die Information in einer Tabelle mit Zeilen- und Spaltenteilen gespeichert, wobei jeder Zeilen- und Spaltenteil der Tabelle wenigstens ein Adressen/Fehlerzahl-Eintragspaar zum Speichern einer Adresse des jeweiligen Zeilen- oder Spaltenteils eines Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, und die Anzahl von fehlerhaften Speicherzellen, die im jeweiligen Zeilen- oder Spaltenteil eines Speichers erfasst werden.
  • Gemäß einem weiteren zugehörigen Aspekt enthält das Verfahren weiterhin den Schritt zum Bestimmen, ob eine Anpassung bzw. Übereinstimmung zwischen wenigstens einer der Adressen der Zeilen- und Spaltenteile eines Speichers, wo die fehlerhafte Speicherzelle angeordnet ist, und einem in der Tabelle gespeicherten Adresseneintrag existiert.
  • Gemäß einem weiteren zugehörigen Aspekt enthält das Verfahren dann, wenn eine Übereinstimmung existiert, den Schritt zum Inkrementieren des Fehlerzahleintrags, gepaart mit dem übereinstimmenden Adresseneintrag, wenn der gepaarte Fehlerzahleintrag gleich der Anzahl von verfügbaren Speicherreserven vom komplementären Typ ist. Wenn eine Übereinstimmung in beiden der Zeilen- und Spaltenteile der Tabelle existiert, enthält das Verfahren weiterhin den Schritt zum Inkrementieren der mit den übereinstimmenden Adresseneinträgen gepaarten Fehlerzahleinträgen, wenn die gepaarten Fehlerzahleinträge weniger als die jeweilige Anzahl von verfügbaren Speicherreserven vom komplementären Typ sind.
  • Gemäß einem weiteren zugehörigen. Aspekt enthält das Verfahren dann, wenn eine Übereinstimmung in einem der Zeilen- und Spaltenteile der Tabelle existiert, den Schritt zum Bestimmen, ob der Zeilen- oder Spaltenteil der Tabelle, der den übereinstimmenden Adresseneintrag nicht enthält, voll ist. Wenn der Zeilen- oder Spaltenteil der Tabelle, der den übereinstimmenden Adresseneintrag nicht enthält, nicht voll ist, enthält das Verfahren weiterhin die Schritte zum Inkrementieren des Fehlerzahleintrags, gepaart mit dem Eintrag über die übereinstimmende Adresse, wenn der gepaarte Fehlerzahleintrag kleiner als die Anzahl von verfügbaren Speicherreserven vom komplementären Typ ist, und ein Hinzufügen eines Adressen/Fehlerzahl-Eintragspaars zu dem Teil der Tabelle, der den Eintrag über die übereinstimmende Adresse nicht enthält, wobei das hinzugefügte Eintragspaar die Adresse des Zeilen- oder Spaltenteils eines Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, die nicht mit einem Adresseneintrag in der Tabelle und einer Fehlerzahl von Eins übereinstimmt. Wenn der Zeilen- oder Spaltenteil der Tabelle, der den Eintrag über die übereinstimmende Adresse nicht enthält, voll ist, wird die in der Tabelle gespeicherte Information aktualisiert, um anzuzeigen, dass der Speicher nicht reparierbar ist.
  • Gemäß einem weiteren zugehörigen Aspekt enthält das Verfahren dann, wenn keine Übereinstimmung existiert, den Schritt zum Bestimmen, ob wenigstens einer der Zeilen- und Spaltenteile der Tabelle voll ist. Wenn keiner der Zeilen- oder Spaltenteile der Tabelle voll ist, enthält das Verfahren weiterhin den Schritt zum Hinzufügen eines Adressen/Fehlerzahl-Eintragspaars zu beiden Zeilen- und Spaltenteilen der Tabelle, wobei jedes hinzugefügte Eintragspaar die jeweilige Adresse des Zeilen- oder Spaltenteils eines Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, und eine Fehlerzahl von Eins. Wenn wenigstens einer der Zeilen- und Spaltenteile der Tabelle voll ist, wird die in der Tabelle gespeicherte Information aktualisiert, um anzuzeigen, dass der Speicher nicht reparierbar ist.
  • Gemäß einem weiteren zugehörigen Aspekt enthält der Schritt dann, wenn eine Gesamtanzahl eines Typs von Speicherreserve größer als eine Gesamtanzahl von Speicherreserven vom komplementären Typ ist, zum Bestimmen dann, wenn eine Übereinstimmung existiert, den Schritt zum Vergleichen der Adressen des Zeilen- oder Spaltenteils eines Speichers entsprechend dem Typ von Speicherreserve mit der größeren Gesamtanzahl von Reserven mit Adresseneinträgen in der Tabelle vor einem Vergleichen der Adresse des Zeilen- oder Spaltenteils eines Speichers entsprechend dem Typ von Speicherreserve mit einer geringeren Gesamtanzahl von Reserven mit Adresseneinträgen in der Tabelle.
  • Gemäß einem weiteren zugehörigen Aspekt enthält dann, wenn die Gesamtanzahl der ersten und zweiten Typen von Speicherreserven gleich ist, der Schritt zum Bestimmen dann, wenn eine Übereinstimmung existiert, die Schritte zum zufälligen Auswählen einer der Adressen der Zeilen- und Spaltenteile eines Speichers, wo die fehlerhafte Speicherzelle angeordnet ist, und zum Vergleichen der Adresse des Zeilen- oder Spaltenteils eines zufällig ausgewählten Speichers mit Adresseneinträgen in der Tabelle vor einem Vergleichen der Adresse des Zeilen- oder Spaltenteils eines Speichers, der nicht zufällig ausgewählt ist, mit Adresseneinträgen in der Tabelle.
  • Gemäß einem weiteren zugehörigen Aspekt enthält das Verfahren weiterhin den Schritt zum Verbinden von im Zeilenteil der Tabelle enthaltenen Adressen/Fehlerzahl-Eintragspaaren mit zugehörigen im Spaltenteil der Tabelle enthaltenen Adressen/Fehlerzahl-Eintragspaaren. Ein Verbindungsidentifizierereintrag zum Speichern eines eindeutigen Verbindungs-ID wird zu jedem Adressen/Fehlerzahl- Paar des Zeilen- oder Spaltenteils der Tabelle entsprechend dem Typ von Speicherreserve mit einer größeren Gesamtanzahl von Reserven zum Verbinden von Adressen/Fehlerzahl- Eintragspaaren, die im Zeilenteil der Tabelle enthalten sind, mit zugehörigen Adressen/Fehlerzahl-Eintragspaaren, die im Spaltenteil der Tabelle enthalten sind, hinzugefügt. Die Anzahl von eindeutigen Verbindungs-IDs ist gleich der Anzahl von Speicherreserven des Typs mit einer geringeren Gesamtanzahl von Reserven.
  • Gemäß einem weiteren zugehörigen Aspekt stellt die Tabelle einen Teil eines Speichers dar, wo wenigstens einer des ersten Typs von Speicherreserve wenigstens einen des zweiten komplementären Typs von Speicherreserve schneidet.
  • Es sollte betont werden, dass die Ausdrücke "aufweist" und "aufweisend", wenn sie in dieser Beschreibung sowie in den Ansprüchen verwendet werden, genommen sind, um das Vorhandensein von angegebenen Merkmalen, Schritten oder Komponenten zu spezifizieren; aber die Verwendung dieser Ausdrücke schließt das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen Merkmalen, Schritten, Komponenten oder Gruppen davon nicht aus.
  • Die obigen Aufgaben, Merkmale und Vorteile werden angesichts der folgenden detaillierten Beschreibung in Zusammenhang mit den Zeichnungen klarer werden, wobei gleiche Bezugszeichen ähnliche oder identische Elemente identifizieren, und wobei:
  • Fig. 1 ein verallgemeinertes Fehlerspeicherentscheidungsdiagramm darstellt;
  • Fig. 2A und 2B die Reparatur von erfassten Speicherzellenfehlern unter Verwendung verfügbarer Speicherreserven darstellen;
  • Fig. 3A und 3B Zeilen- und Spaltenteile einer Fehlerspeichertabelle darstellen;
  • Fig. 4A und 4B einen beispielhaften Teil eines Speichers mit einer Anzahl von erfassten fehlerhaften Speicherstellen darstellen;
  • Fig. 5A, 5B und 5C verschiedene Stufen des Fehlerspeicherprozesses für den beispielhaften Teil eines in den Fig. 4A und 4B gezeigten Speichers darstellen;
  • Fig. 6 die Reparatur des beispielhaften Teils eines in den Fig. 4A und 4B gezeigten Speichers darstellt;
  • Fig. 7 ein Ablaufdiagramm einer obersten Ebene darstellt, das ein beispielhaftes Ausführungsbeispiel eines Fehlerspeicherprozesses zeigt;
  • Fig. 8 ein Ablaufdiagramm einer beispielhaften Routine zum Verarbeiten von Fehlern darstellt, wenn nur ein Speicherzellenfehler erfasst wird;
  • Fig. 9 ein Ablaufdiagramm einer beispielhaften Routine zum Verarbeiten von Fehlern darstellt, wenn mehr als ein Speicherzellenfehler erfasst wird; und
  • Fig. 10 einen Teil eines Speichers mit R Zeilen und C Spalten darstellt.
  • Nachfolgend werden bevorzugte Ausführungsbeispiele unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. In der folgenden Beschreibung werden wohlbekannte Funktionen und/oder Konstruktionen nicht detailliert beschrieben, um ein Verdunkeln der Beschreibung in Bezug auf unnötige Details zu vermeiden.
  • Redundanzschaltung
  • Wie es oben kurz beschrieben ist, ist die zum Bewirken einer Speicherreparatur enthaltene Redundanzschaltung auf Speicherfeldern bzw. -matrizen aufgebaut, die fehlerhafte Speicherstellen durch Multiplexen (oder Abbilden) von Reserve-Speicherzellen mit den (auf die) identifizierten fehlerhaften Speicherstellen ersetzen können. Eine Reparaturinformation von einem Reparaturalgorithmus zeigt an, wie die Reserve-Zeilen- oder -Spaltenzellen auf die fehlerhafte Speicherstelle abzubilden ist. Ein effizienter Algorithmus zum Reparieren fehlerhaften Speicherstellen ist in der gleichzeitig anhängigen US-Patentanmeldung Nr. 60/296,793 mit dem Titel "Repair Analysis Algorithm Suitable for On-Chip Implementation" desselben Inhabers wie für diese Anmeldung beschrieben, wobei die entsprechende (Gebrauchsmuster-)Anmeldung am selben Tag wie diese Anmeldung eingereicht ist.
  • Nur eine Reserve-Speicherstelle ist zum Festlegen irgendeines gegebenen fehlerhaften Speicherbits erforderlich. Typischerweise sind Reserve-Speicherzellenschaltungen mit adressierbaren Zeilen-Reservezellen und Spalten-Reservezellen aufgebaut. Bei solchen Anordnungen werden alle zu einer gegebenen Zeilenadresse gehörenden Speicherbits ersetzt, wenn eine Reservezeile auf die Stelle abgebildet wird. Gleichermaßen wird ein Abbilden einer Reservespalte in den Speicher alle in dieser Spalte enthaltenen Speicherbits ersetzen. Jede Schnittstelle einer Zeilen- und Spaltenadresse wählt eine Gruppe von Speicherbits (oder Zellen) aus.
  • Andere Redundanzschaltungsanordnungen können auch I/Os abbilden. Diese Konfigurationen gruppieren mehrere Spalten- Speicherfelder in einen Ausgangstreiber. Dies ermöglicht, dass ein in mehreren Spaltenadressen existierendes einzelnes Datenbit durch eine einzelne Reservespalte ersetzt wird.
  • Reservespalten ersetzen eine Gruppe von I/Os für eine Spaltenadresse. Demgemäß wird der Ausdruck "Spalte" in diesem gesamten Dokument dazu verwendet, auf sowohl eine Spalte als auch eine Redundanzschaltung vom I/O-Typ Bezug zu nehmen.
  • In Speicherchips mit mehreren Speicherkernen können die zum Reparieren der verschiedenen Speicherkerne enthaltenen Reservezeilen und Reservespalten individuell konfiguriert sein. Die Anzahl von Reservezeilen und -spalten, die einander in einer gegebenen Redundanzschaltung schneiden, ist ein wichtiges Entwurfskriterium beim Bestimmen der Konfiguration einer Fehlerspeichertabelle, die zu dieser Redundanzschaltung gehört. Jede Fehlerspeichertabelle kann derart gedacht werden, dass sie einen Unterblock darstellt, wo Reservezeilen sich mit Reservespalten im bestimmten Kern schneiden. Jede Reservezeile und jede Reservespalte kann einen Bereich von Zeilen- und Spaltenadressen reparieren. Dieser Bereich definiert, was "Analyseblock" genannt wird. Zeilen- und Spalten-Adressenbereiche eines Analyseblocks teilen einen Speicherkern in kleinere unabhängige Bereiche. Die Reservezeilen und Reservespalten eines Analyseblocks können von mehreren Unterblöcken gemeinsam genutzt werden. Die Menge, die eine gemeinsame Nutzung ausführt, hängt von der Redundanzarchitektur des bestimmten Speicherkerns ab.
  • Zusätzlich dazu, dass er einen Bereich zugehöriger Zeilen- und Spaltenadressen reparieren kann, hat der Unterblock auch bestimmte Reservezeilen und Reservespalten, die zum Reparieren von allen fehlerhaften Stellen innerhalb des Unterblocks selbst verwendet werden können. Gleichermaßen gilt dann, wenn der Unterblock mit Reservezeilen und Reserve- I/Os konfiguriert ist, dieselbe Fähigkeit -- der Unterblock hat bestimmte Reservezeilen und Reserve-I/Os, die zum Reparieren von allen fehlerhaften Stellen innerhalb des Unterblocks verwendet werden können.
  • Wie es oben angezeigt ist, kann die Anzahl von Reservezeilen- und -spaltenzellen oder I/Os pro Unterblock über die unterschiedlichen Speicherkerne variiert werden, die auf einem Speicherchip sitzen. Obwohl die nachfolgend präsentierten beispielhaften Ausführungsbeispiele Speicherkerne zeigen, die zwei Reservezeilen und eine Reservespalte (oder I/O) pro Unterblock verwenden, werden Fachleute auf dem Gebiet verstehen, dass andere Anordnungen möglich sind, die eine beliebige Anzahl von Reservezellen oder -I/Os pro Unterblock verwenden.
  • Fehlerspeichertabelle
  • Die Fehlerspeichertabelle wird zum Speichern von nur der Information verwendet, die vom Reparaturanalysealgorithmus benötigt wird, um die nötigen Reparaturcodes zu erzeugen, um die identifizierten fehlerhaften Speicherzellen auf Reservestellen abzubilden. Dies ist gegensätzlich zu herkömmlichen Fehlerspeichertechniken, die alles der Fehlerinformation zur Reparaturverarbeitung speichern. Wie es oben diskutiert ist, bedeckt jede Reservezelle (oder -I/O) einen Bereich von Adressen und kann somit eine Anzahl von Adressen auf einmal reparieren.
  • Beispielsweise können bei einem gegebenen Speicherkern mit Reservezellen, die z. B. vier Zeilenadressen auf einmal ersetzen können, die zwei niederwertigsten Bits (LSBs = Least Significant Bits) der Adresse als eine Adresse angesehen werden. Wenn Speicherfehler an der Zeilenadresse 1 und der Zeilenadresse 3 eines Speicherkerns identifiziert werden, wird die Reservezeile die Zeilenadressen Null, Eins, Zwei und Drei ersetzen. Die Fehlerspeichertabelle interpretiert somit die Zeilenadressen Null, Eins, Zwei und Drei als dieselbe Adresse. Dies ist nur ein Verfahren zum Reduzieren der Menge an Information über einen fehlerhaften Speicher, die zum Treiben des Reparaturanalysealgorithmus gespeichert werden kann.
  • Fig. 1 zeigt ein verallgemeinertes Fehlerspeicherentscheidungsdiagramm. Spezifische Entscheidungsdiagramme können aus dem verallgemeinerten Diagramm basierend auf den Anzahlen verfügbarer Reservezeilen und -spalten (oder -I/Os) in einer beliebigen gegebenen Redundanzschaltungsstruktur abgeleitet werden. Wichtig für die Fehlerspeichertabelle sind die Regeln, die ihre Tabelleneinträge beherrscht. Diese Regeln basieren auf der Anzahl von Reserven, die in dem Unterblock verfügbar sind, den die Tabelle darstellt.
  • Zwei allgemeine Regeln beherrschen die Diagrammeinträge. Als erstes muss dann, wenn eine Anzahl von Fehlern bei einer gegebenen Spaltenadresse die Anzahl von verfügbaren Reservezeilen übersteigt, eine Reservespalte verwendet werden. Diese Situation ist in Fig. 2A gezeigt. Als zweites muss dann, wenn die Anzahl von Fehlern bei einer gegebenen Zeilenadresse die Anzahl von verfügbaren Reservespalten (oder -I/Os) übersteigt, eine Reservezeile verwendet werden. Diese Situation ist in Fig. 2B gezeigt. Für den Fall, in welchem Reserve-I/Os verfügbar sind, ist eine zusätzliche Tabelleneintragsregel erforderlich -- wenn mehrere I/Os Fehler bei derselben Adresse haben und die Anzahl von verfügbaren Reserve-I/Os überschritten ist, dann muss eine Reservezeile verwendet werden.
  • Unter Beachtung dieser allgemeinen Regeln ist das in Fig. 1 gezeigte Diagramm allgemein so aufgebaut, dass es I/O-(oder Spalten-)Information hat, die sich in horizontaler Richtung über dem Diagramm erstreckt, und Zeileninformation, die sich in vertikaler Richtung über dem Diagramm erstreckt. Die vertikalen 102 und horizontalen 104 Diagramm-Anfangsblöcke bzw. -Überschriften beschreiben jeweils den aktuellen Zustand von entsprechenden Zeilenaktualisierungs- und Spaltenaktualisierungstabellen (siehe Fig. 3A und 3B). Die Anfangsblöcke zeigen, ob die jeweiligen Tabellen: 1) keine Einträge enthalten, die mit der aktuellen Zeilen- und/oder Spaltenadresse des Fehlers übereinstimmen, die gerade verarbeitet wird, und nicht voll sind; 2) einen Eintrag enthalten, der mit der aktuellen Zeilen- und/oder Spaltenadresse des Fehlers übereinstimmt, die gerade verarbeitet wird; und 3) voll sind und keine Einträge enthalten, die mit der aktuellen Zeilen- und/oder Spaltenadresse des Fehlers übereinstimmen, die gerade verarbeitet wird. Die Anfangsblöcke enthalten auch Information, die die aktuellen Zeilen- und Spalten- Fehlerzahlen für die verschiedenen Tabelleneinträge anzeigt.
  • Jeder Block 106 im Entscheidungsdiagramm enthält Information, die definiert, wie die Zeilenaktualisierungs- und Spaltenaktualisierungstabellen basierend auf den aktuellen Tabelleneinträgen und der Adressenstelle des Fehlers, die gerade verarbeitet wird, modifiziert werden sollten. Die unteren linken Blockeinträge 108 entsprechen Zeilenaktualisierungstabellenbefehlen; die oberen linken Zelleneinträge 110 stellen Spaltenaktualisierungstabellenbefehle dar; und der untere rechte Zelleneintrag 112 ist entweder leer oder auf "NG" eingestellt, um anzuzeigen, dass der Speicherkern, der gerade verarbeitet wird "nicht gut" oder nicht reparierbar ist.
  • Die Fig. 3A und 3B zeigen jeweils die Zeilenaktualisierungs- und Spalten-(oder I/O-)Aktualisierungsdaten. Die Tabellengrößen und die Größe von Tabelleneinträgen hängen von der Anzahl von verfügbaren Reservezeilen und -spalten (oder -I/Os) ab, die in einem gegebenen Unterblock verfügbar sind. Fährt man mit dem illustrativen Beispiel eines Unterblocks mit zwei Reservezeilen und einem Reserve-I/O fort, ist die Anzahl von Tabellenzeileneinträgen Vier - zwei Einträge für jede verfügbare Reservezeile plus zwei Einträge für jede Schnittstelle der zwei verfügbaren Reservezeilen mit der einzelnen verfügbaren Reservespalte. Gleichermaßen ist die Anzahl von Tabellenspalteneinträgen Drei -- ein Eintrag für die einzelne verfügbare Reservespalte, plus zwei Einträge für jede Schnittstelle von der einzelnen verfügbaren Reservespalte mit den zwei verfügbaren Reservezeilen.
  • Jede der Zeilenaktualisierungs- und Spaltenaktualisierungstabellen enthält Einträge für eine aktuelle Fehlerzahl. Die Größe des Fehlerzahleintrags bei dem illustrativen Beispiel ist zwei Bits. Jede der Tabellen hat auch entsprechende Einträge für eine Adresse des Zeilen- und Spaltenfehlers, die gerade repariert wird. Schließlich enthält die Zeilenaktualisierungstabelle Einträge, die eine gegebene Zeilenreparatur mit einer entsprechenden Spaltenreparatur verbinden. Für dieses Beispiel ist die Größe des Spalten-ID-Eintrags wieder zwei Bits. Details bezüglich der Größe der Fehlerspeichertabelle und ihrer verschiedener Einträge sind detailliert nachfolgend im Abschnitt mit dem Titel "Berechnung der Fehlertabellengröße" beschrieben.
  • Herkömmlich ist die Speicherung aller Adressen von fehlerhaften Speicherzellen nötig, damit der Reparaturanalysealgorithmus eine richtige Auswahl trifft, wie die Reservezeilen und -spalten zum Festlegen des Unterblocks anzuordnen sind. Durch Verwenden der hierin beschriebenen Techniken kann jede Reservezelle oder -I/O mehrere Zeilen gleichzeitig festlegen, was zulässt, dass mehrere Adressen in der Fehlertabelle als eine einzige Adresse dargestellt werden. Beim folgenden Beispiel kann jede Reservezeile zum Reparieren von vier benachbarten Zeilen im Speicher adressiert werden.
  • Andere Techniken zum weiteren Reduzieren der erforderlichen Größe der Fehlerspeichertabelle enthalten kein Speichern von redundanten Fehlern in der Fehlertabelle, ein Zählen der Anzahl von Malen, für welche eine gegebene Adresse einen Fehler hat, kein Speichern von Fehlern für die bestimmt wird, dass sie entlang einer bereits benötigten Reservezeile oder Reservespalte liegen. Diese Techniken sind kombiniert, um eine begrenzte Reparaturanalyse während des Fehlerspeicherprozesses durchzuführen, um eine Vorauswahl von Reservezellen oder -I/Os zu bewirken, die zum Reparieren eines gegebenen Speicherkerns verwendet werden müssen. Die Techniken lassen auch die Früherfassung von nicht reparierbaren Speichervorrichtungen während eines Testens zu, was wertvolle Testzeit und Betriebsmittel einspart.
  • Illustratives Beispiel
  • Die Fig. 4A und 4B zeigen ein illustratives Beispiel eines Unterblocks mit einer Anzahl von identifizierten fehlerhaften Speicherstellen. Fig. 4A zeigt den Unterblock mit zehn Fehlern, die mit A bis J bezeichnet sind. Die in Fig. 4B gezeigte Tabelle listet die Zeilen- und Spaltenstellen auf, wo die Fehler im Unterblock existieren. Wie es früher beschrieben ist, kann jede Reservezeile beim Beispiel vier Zeilen im Unterblock ersetzen. Die Fig. 5A bis 5D zeigen die verschiedenen Schritte, die dann durchgeführt werden, wenn die oben beschriebenen Fehlerspeichertechniken am beispielhaften Unterblock, der in Fig. 4A gezeigt ist, praktiziert bzw. ausgeführt werden..
  • Gemäß Fig. 5 A werden dann, wenn der erste Fehler A erfasst wird, die Zeilen- und I/O-Tabellen auf aktuelle Einträge geprüft. Wenn keine Einträge existieren, werden die Tabellen mit einem entsprechenden Zeilen- und Spalteneintrag aktualisiert, was in der Figur als Schritt 1 gezeigt ist. Da der Fehler A der erste bei einer Zeilenadresse 4 erfasste Fehler ist, der auf einer Adresse 1 abgebildet wird, wird die Fehlerzahl auf 1 inkrementiert. Es wird veranlasst, dass ein entsprechender Spalteneintrag einer Adresse 1 und eine Fehlerzahl von 1 hat. Der ID verbindet die Zeilenadresse mit der Spaltenadresse mittels der Position. Da veranlasst wird, dass der entsprechende Spaltenadresseneintrag bei der Stelle ID = 0 in der I/O-Tabelle ist, wird dieser Eintrag im Zeilentabelleneintrag unter Verwendung desselben ID verbunden.
  • Der nächste Fehler in der Liste ist B. Dieser Fehler ist bei der Zeilenadresse 2 und der Spaltenadresse 3 des Unterblocks angeordnet. Da diese Stellen nicht mit irgendwelchen Zeilen- oder Spalteneinträgen in den Zeilen- oder I/O- Aktualisierungstabellen übereinstimmen, werden die Tabelle wiederum mit der aktuellen Fehlerinformation aktualisiert. Dies ist in der Figur als Schritt 2 gezeigt.
  • Fig. 5B zeigt die nächste Stufe einer Fehlerverarbeitung. Der nächste erfasste Fehler beim Beispiel ist der Fehler C. Dieser Fehler ist bei der Zeilenadresse 2 und der Spaltenadresse 1 angeordnet. Die Stelle dieses Fehlers stimmt mit einem aktuellen Eintrag in der Zeilenaktualisierungstabelle überein, so dass die Fehlerzahl des Zeilenaktualisierungstabelleneintrags mit der Zeilenadresse 2 auf 2 inkrementiert wird. Dies ist in der Figur als Schritt 3 gezeigt. Unter Anwendung der oben beschriebenen allgemeinen Regeln muss deshalb, weil die Fehlerzahl für die Zeile 2 die Anzahl von verfügbaren Spaltenreserven (bei diesem Beispiel eine) übersteigt, die Zeile durch eine der zwei verfügbaren Reservezeilen festgelegt werden. Da alle Fehler in der Zeile 2 durch die zugeordnete Zeilenreserve festgelegt werden, muss kein entsprechender Eintrag für den Fehler C zur Spaltentabelle hinzugefügt werden.
  • Der nächste erfasste Fehler ist der Fehler D. Der Fehler stimmt nicht mit irgendwelchen existierenden Fehleradressen überein, und die Tabellen werden mit der neuen Fehlerinformation aktualisiert. Dies ist in der Figur als Schritt 4 gezeigt. Es ist zu beachten, dass die Spalteneintragstabelle nach einem Durchführen des Eintrags für den Fehler D voll ist. Somit werden irgendwelche zusätzlichen erfassten Fehler, die nicht mit irgendeinem der aktuellen Spaltenadresseneinträge übereinstimmen, diese Vorrichtung unreparierbar machen, was zulässt, dass der Testzyklus angehalten wird.
  • Der nächste erfasste Fehler beim Beispiel ist der Fehler E. Dieser Fehler stimmt mit: einem aktuellen Spalteneintrag in der I/O-Aktualisierungstabelle überein, stimmt aber nicht mit irgendwelchen aktuellen Zeilentabelleneinträgen überein.
  • Demgemäß wird die Zeilentabelle mit der neuen Fehlerinformation aktualisiert. Es ist zu beachten, dass der Spalten-ID des Zeilentabelleneintrags für den Zähler E auf 0 eingestellt ist, was einem I/O-Tabellenidentifizierer entspricht, der zur Spalte 1 gehört. Die Fehlerzahl für ID = 0 wird auf 2 inkrementiert, um den zusätzlichen erfassten Spaltenfehler aufzuzeichnen. Diese Aktualisierungen sind in der Figur als Schritt 5 gezeigt.
  • Fig. 5C zeigt die nächste Stufe des Fehlerspeicherprozesses. Der nächste erfasste Fehler beim Beispiel ist ein Fehler F. Dieser Fehler ist bei der Zeile 3 und der Spalte 1 des Unterblocks angeordnet. Der Fehler stimmt mit einem Spalteneintrag (ID = 0) mit einer Fehlerzahl von 2 überein. Der Fehler wird veranlassen, dass die Fehlerzahl für den Spalteneintrag die Anzahl von verfügbaren Zeilenreserven übersteigt. Wiederum unter Anwendung der oben diskutierten allgemeinen Regeln wird die einzige verfügbare Spaltenreserve zum Festlegen des Fehlers zugeordnet. Da der Fehler durch die zugeordnete Reservespalte festgelegt wird, muss kein entsprechender Eintrag in der Zeileneintragstabelle gemacht werden.
  • Es ist wichtig zu beachten, dass dann, wenn die inkrementierte Fehlerzahl (3) die Anzahl von verfügbaren Reservezeilen (2) nicht übersteigen würde, die Vorrichtung als nicht reparierbär bestimmt werden würde. Der Grund dafür besteht darin, dass die Zeileneintragstabelle voll ist, und es somit unmöglich wäre, die Zeilentabelle zu aktualisieren, um die fehlerhafte Information für die Zeilenadresse 3 hinzuzufügen. Die Tabelle ist derart bemaßt, dass alle reparierbaren (und einige nicht reparierbare) Fehlermuster passen. Somit hilft ein Überschreiten der Tabelleneinträge zum Identifizieren von nicht reparierbaren Vorrichtungen früh im Testprozess.
  • Die nächsten drei Fehler beim Beispiel, nämlich die Fehler G, H und I, stimmen alle mit existierenden Einträgen überein und werden somit im Speicherentscheidungsprozess ignoriert. Identische Fehler müssen beim Reparaturanalyseprozess überhaupt nicht betrachtet werden. Der letzte Fehler bei dem Beispiel, nämlich der Fehler J, ist ein neuer Fehler, aber er wird durch die zuvor zugeordnete Zeilenreserve repariert. Diese Tatsache kann durch den Fehlerzahleintrag in der Zeilentabelle identifiziert werden. Alle Fehlerzahlen in den Zeileneinträgen, die den Wert von 2 haben, müssen eine Reservezeile verwenden, da dieser Wert die Anzahl von verfügbaren Reservespalten übersteigt. Alle Spalteneinträge mit einem Eintrag von 3 müssen mit einer Spaltereserve festgelegt werden, da dieser Wert die Anzahl von verfügbaren Reservezeilen übersteigt.
  • Wenn alle Fehler verarbeitet worden sind und die Fehlerspeichertabelle vervollständigt ist, interpretiert der Reparaturanalysealgorithmus die Tabellenergebnisse, um zu bestimmen, ob eine erfolgreiche Reparatur bewirkt werden kann. Fig. 6 zeigt, wie die Reparaturanalyse die Fehlerspeichertabelle zum Bewirken einer Reparatur interpretieren kann. Beim Untersuchen des Spaltenaktualisierungsteils der Fehlerspeichertabelle wird eine Reservespalte C1 zum Reparieren der Spaltenadresse 1 verwendet, da die Fehlerzahl für diesen Eintrag (z. B. 3) die Anzahl von verfügbaren Reservezeilen (z. B. 2) übersteigt. Als nächstes wird eine der zwei verfügbaren Reservezeilen R1 zum Reparieren der Zeilenadresse 2 verwendet. Wiederum wird die Reservezeile zugeordnet, weil der Fehlerzahleintrag für diese Zeilenadresse (z. B. 2) die verfügbare Anzahl von Reservespalten (z. B. 1) übersteigt.
  • Schließlich wird der Zeilenaktualisierungsteil der Fehlertabelle untersucht, um zu bestimmen, wie die letzte verfügbare Reservezeile zuzuordnen ist. Es wird daran erinnert, dass die bereits zugeordnete Reservespalte C1 der Spalteadresse 1 mit einem Spalten-ID = 0 zugeordnet wurde. Demgemäß werden alle Zeilenadressenfehlereinträge mit einer Spalten-ID = 0 durch die bereits zugeordnete Reservespalte C1 repariert werden. Eine Untersuchung der Zeilentabelle zeigt an, dass alles außer dem aufgezeichneten Fehler bei der Zeilenadresse 4 durch entweder die zugeordnete Reservespalte C1 oder die zugeordnete Reservezeile R1 repariert wird. Demgemäß wird die letzte verfügbare Reservezeile R2 dem Reparaturfehler D in der Zeile 4 zugeordnet, und alle der Fehler im Unterblock werden mit Reserve-Speicherzellen oder -I/Os erfolgreich repariert.
  • Prozess-Ablaufdiagramme für das illustrative Beispiel
  • Fig. 7 ist ein Ablaufdiagramm einer obersten Ebene, das ein beispielhaftes Ausführungsbeispiel eines Fehlerspeicherprozesses zeigt. Der Prozess beginnt bei einem Schritt 702, der als Leerlaufmode bzw. Außerbetriebsmode definiert ist. Als nächstes wird bei einem Schritt 704 eine Bestimmung durchgeführt, ob die Fehlerspeicher-(Es-) Tabelleninformation vom Speicher, z. B. vom SRAM, der auf dem Speicherchip enthalten ist, zu holen ist. Der Prozess springt zurück zum Leerlaufzustand 702, wenn eine Entscheidung zum Holen der Es-Information nicht getroffen wird, geht über zu einem Schritt 706, wo die Es-Information vom SRAM gelesen wird, wenn eine Entscheidung zum Holen getroffen wird. Nach einem Lesen der Es-Information vom SRAM geht der Prozess über zu einem Schritt 708, wo eine Entscheidung zum Schreiben aktualisierter Es-Information zum SRAM getroffen wird. Wenn eine Entscheidung zum Aktualisieren der Es-Information getroffen wird, wird die Es-Tabelle bei einem Schritt 710 aktualisiert, und der Prozess springt zurück zum Leerlaufzustand beim Schritt 702. Wenn die Es-Tabelle nicht zu aktualisieren ist, beginnt ein Fehlertesten und eine Verarbeitung bei einem Schritt 712.
  • Beim Schritt 712 wird ein Unterblock getestet, um die Anzahl von Fehlersignalen, wenn es welche gibt, die an den I/O- Eingängen aktiv sind, zu bestimmen. Wenn mehr als ein Fehlersignal erfasst wird, geht der Prozess über zu einem Schritt 720, und eine Routine zur Verarbeitung von mehr als einem Fehlersignal wird ausgeführt. Wenn ein oder weniger Fehlersignale erfasst werden, geht der Prozess über zu einem Schritt 714, wo eine Bestimmung gemacht wird, ob genau ein Fehlersignal erfasst worden ist. Wenn genau ein Fehlersignal erfasst wird, geht der Prozess über zu einem Schritt 718, und eine Routine zum Verarbeiten von genau einem Fehlersignal wird ausgeführt. Wenn keine Fehler erfasst werden, wird keine Aktion für den aktuellen Zyklus durchgeführt, und der Prozess geht über den Schritt 716 zum Schritt 708 über, wo wiederum eine Entscheidung zum Aktualisieren der Es-Tabelle im SRAM getroffen wird. Der Prozess zum Erfassen und Verarbeiten von Fehlersignalen in den Schritten 712 bis 720 wird wieder ausgeführt.
  • Fig. 8 ist ein Ablaufdiagramm einer beispielhaften Routine zum Verarbeiten von Fehlern, wenn nur ein Speicherzellenfehler erfasst wird. Einige der im Diagramm dargestellten Schritte sind spezifisch für das illustrative Beispiel, das eine Redundanzschaltung mit einer Reservespalte (oder -I/O) und zwei Reservezeilen enthält. Es wird verstanden werden, dass allgemeine Konzepte, die im Diagramm präsentiert sind, auf Redundanzschaltungen mit irgendeiner Anzahl von Reservezeilen und -spalten erweitert werden können.
  • Die Routine beginnt bei einem Schritt 802, nachdem sie von z. B. dem Schritt 718 des in Fig. 7 gezeigten Prozesses der obersten Ebene aufgerufen worden ist. Die Adresse des Fehlers wird mit Einträgen in der Zeilenaktualisierungstabelle beim Schritt 804 verglichen, um zu bestimmen, ob eine Zeilenübereinstimmung existiert. Wenn eine Zeilenübereinstimmung existiert, geht die Routine weiter zu den Schritten 806 bis 822. In diesen Schritten werden bei Schritten 808 und 814 Bestimmungen diesbezüglich durchgeführt, ob eine entsprechende I/O-Adresse existiert, und wenn es so ist, bei den Schritren 810 und 816, ob die I/O-Zahl gleich 2 ist. Wenn die I/O-Zahl gleich 2 ist, dann wird, wenn die Zeilenzahl gleich 1 ist, wie es im Schritt 806 bestimmt wird, die Zeilenzahl inkrementiert und wird die I/O- Zahl auf 3 eingestellt, und zwar beim Schritt 812. Wenn jedoch im Schritt 806 die Zeilenzahl nicht gleich 1 ist, wird nur die I/O-Zahl beim Schritt 818 inkrementiert.
  • Wenn bei den Schritten 808 und 814 keine I/O- Übereinstimmungen gefunden werden, oder wenn die I/O-Zahl bei den Schritten 810 und 816 nicht gleich 2 ist, dann wird, wenn die Zeilenzahl beim Schritt 806 gleich 1 ist, nur die Zeilenzahl beim Schritt 822 inkrementiert. Wenn jedoch beim Schritt 806 die Zeilenzahl nicht gleich 1 ist, dann wird beim Schritt 820 keine Aktion durchgeführt.
  • Wenn beim Schritt 804 keine Zeilenübereinstimmung existiert, bestimmt die Routine beim Schritt 838, ob die Zeilenaktualisierungstabelle voll ist oder nicht. Wenn die Zeilentabelle nicht voll ist, untersucht die Routine die I/O- Aktualisierungstabelle auf eine I/O-Adressenübereinstimmung beim Schritt 824. Wenn eine I/O-Adressenübereinstimmung gefunden wird, wird die I/O-Zahl beim Schritt 826 untersucht. Wenn die I/O-Zahl größer als 2 ist (bei dem Beispiel die Anzahl von Reservezeilen), dann wird die I/O-Zahl beim Schritt 828 auf 3 eingestellt, und sonst wird beim Schritt 830 ein neuer Zeileneintrag hinzugefügt und wird die entsprechende I/O-Zahl inkrementiert. Wenn beim Schritt 824 keine I/O-Übereinstimmung gefunden wird, dann wird beim Schritt 832 eine Bestimmung diesbezüglich durchgeführt, ob die I/O-Tabelle voll ist. Wenn die Tabelle voll ist, dann wird der Speicherkern, der gerade untersucht wird, beim Schritt 834 als nicht reparierbar gekennzeichnet, und sonst wird sowohl ein neuer Zeilentabelleneintrag als auch ein neuer I/O-Tabelleneintrag beim Schritt 836 durchgeführt.
  • Wenn die Zeilentabelle beim Schritt 838 als voll befunden wird, sucht die Routine beim Schritt 840 nach einer entsprechenden I/O-Adressenübereinstimmung. Wenn keine Übereinstimmung gefunden wird, wird der Speicherkern beim Schritt 834 wieder als nicht reparierbar gekennzeichnet. Wenn eine I/O-Übereinstimmung gefunden wird, wird beim Schritt 842 die entsprechende Fehlerzahl untersucht. Wenn die Fehlerzahl des fehlerhaften I/O 1 ist, dann wird der Speicherkern als nicht reparierbar gekennzeichnet, da kein zusätzlicher Platz mehr in der Zeilenaktualisierungstabelle verfügbar ist. Wenn die I/O-Zahl beim Schritt 842 jedoch gleich 1 ist, wird die I/O-Zahl auf 3 eingestellt. Die Steuerung springt beim Schritt 846 zurück zu der in Fig. 7 gezeigten Haupt- Fehlerverarbeitungsroutine, nachdem jede der Tabellenaktualisierungen beendet ist.
  • Fig. 9 ist ein Ablaufdiagramm einer beispielhaften Routine zum Verarbeiten von Fehlern, wenn mehr als ein Speicherzellenfehler erfasst wird. Wiederum sind einige der im Diagramm dargestellten Schritte spezifisch für das illustrative Beispiel, das eine Redundanzschaltung mit einer Reservespalte (oder -I/O) und zwei Reservezeilen enthält. Wie es oben angegeben ist, wird es verstanden werden, dass im Diagramm präsentierte allgemeine Konzepte auf Redundanzschaltungen mit irgendeiner Anzahl von Reservezeilen und -spalten erweitert werden können.
  • Die Routine beginnt bei Schritt 902, nachdem sie von z. B. dem Schritt 718 des in Fig. 7 gezeigten Prozesses der obersten Ebene aufgerufen worden ist. Die Zeilenaktualisierungstabelle wird beim Schritt 904 untersucht. Wenn eine Zeilenübereinstimmung gefunden wird, wird die Zeilen- Fehlerzahl beim Schritt 906 auf 2 eingestellt. Wenn jedoch keine Übereinstimmung gefunden wird, wird beim Schritt 908 eine Bestimmung diesbezüglich durchgeführt, ob die Zeilenaktualisierungstabelle voll ist. Wenn die Tabelle voll ist, wird der Speicherkern, der gerade getestet wird, beim Schritt 910 als nicht reparierbar gekennzeichnet. Wenn die Tabelle bei Schritt 908 nicht voll ist, wird ein neuer Zeilentabelleneintrag mit dem auf 3 eingestellten Spalten-ID- Wert gemacht und wird die Fehlerzahl auf 2 eingestellt. Die Steuerung springt beim Schritt 914 zu der in Fig. 7 gezeigten Haupt-Fehlerverarbeitungsroutine zurück.
  • Berechnung der Fehlertabellengröße
  • Es wird aus dem Obigen daran erinnert, dass die Fehlertabelle derart bemaßt ist, dass alle reparierbaren (und einige nicht reparierbare) Fehlermuster passen. Das Folgende beschreibt eine Art, auf welche die Größe der Fehlertabelle berechnet werden kann, um dieses Ergebnis zu erreichen. Fig. 10 zeigt einen Speicher-Unterblock mit R Zeilen und C Spalten. Der Unterblock enthält Reservespalten SC und Reservezeilen SR zum Reparieren fehlerhaften Speicherzellen innerhalb eines Analyseblocks.
  • Wie es oben beschrieben ist, ist für jeden Unterblock, der innerhalb eines Analyseblocks enthalten ist, eine separate Fehlerspeichertabelle erforderlich. Die Fig. 3A und 3B zeigen jeweils die Zeilenaktualisierungs- und Spalten-(oder I/O-)Aktualisierungszeile der Fehlertabelle. Das Format der Tabelleneinträge enthält Adressen/Fehlerzahl-Paare. Ein zusätzlicher ID-Eintrag ist in der Aktualisierungstabelle (entweder einer Zeile oder einer Spalte) mit den meisten Reserven enthalten. Der ID-Eintrag liefert eine Verbindung zwischen den Zeilen- und. Spaltenteilen der Fehlerspeichertabelle.
  • Die folgenden Gleichungen können zum Berechnen der Größen der Zahl/Adressen-Paare in den Zeilen- und Spaltenaktualisierungstabellen verwendet werden:

    Zeilenzahl = ≙log2 (Sc+ 2) ≙
    Zeilenadresse = ≙log2 (R) ≙
    Spaltenzahl = ≙log2 (SR + 2) ≙
    Spaltenadresse = ≙log2(C) ≙

    wobei: SC = Anzahl von Reservespalten (oder -I/Os),
    R = Anzahl von Zeilen im Unterblock,
    SR = Anzahl von Reservezeilen, und
    C = Anzahl von Spalten im Unterblock.
  • Die Werte der Verbindungs-IDs und die Anzahl von Verbindungs- IDs, die NID erforderten, können unter Verwendung der folgenden Gleichungen berechnet werden:


    wobei: CE = Anzahl von Spalten- (oder I/O) Einträgen = SR.(SC + 1)
    RE = Anzahl von Zeileneinträgen = SC.(SR + 1), und
    NID = Anzahl von Verbindungs-IDs.
  • Unter Verwendung der obigen Gleichungen kann die Größe der Fehlerspeichertabelle berechnet werden als:


  • Bestimmte Ausdrücke sind der Annehmlichkeit halber beim Beschreiben der beispielhaften Ausführungsbeispiele verwendet worden, sollten aber nicht verwendet werden, um die hierin beschriebenen allgemeinen Konzepte zu beschränken. Beispielsweise kann irgendeine spezifische Bezugnahme auf "Zeilen-" oder "Spalten-"Teile eines Speichers oder Typen von Speicherreserven derart interpretiert werden, dass sie entweder diese Teile eines Speichers oder Typen von Speicherreserven umfasst. Im Fall von Speicherreserven stellen die spezifischen Ausdrücke komplementäre Typen von Speicherreserven diesbezüglich dar, dass dann, wenn ein Typ von Speicherreserve nicht zum Reparieren einer gegebenen Speicherzellenstelle verwendet wird, der andere komplementäre Typ von Speicherreserve zum Reparieren der Stelle verwendet werden kann. Darüber hinaus kann der Ausdruck "Zelle" oder "Speicherzelle" derart interpretiert werden, dass er eines oder Speicherzellen oder Stellen im Speicher darstellt.
  • Verschiedene Aspekte sind in Zusammenhang mit einer Anzahl von beispielhaften Ausführungsbeispielen beschrieben worden. Zum Erleichtern eines Verstehens dieser Ausführungsbeispiele wurden viele Aspekte in Bezug auf Sequenzen von Aktionen beschrieben, die durch Elemente eines Computersystems oder einer Mikrosteuerung durchgeführt werden können. Beispielsweise wird erkannt werden, dass in jedem der Ausführungsbeispiele die verschiedenen Aktionen durch spezialisierte Schaltungen durchgeführt werden könnten (z. B. diskrete Logikgatter, die zum Durchführen einer spezialisierten Funktion verbunden sind), durch Programmbefehle, die von einem oder mehreren Prozessoren ausgeführt werden, oder durch eine Kombination von beiden.
  • Darüber hinaus können die beispielhaften Ausführungsbeispiele als Teil von irgendeiner Form von computerlesbarem Speichermedium angesehen werden, das darin eine geeignete Gruppe von Computerbefehlen gespeichert hat, die einen Prozessor veranlassen würden, die hierin beschriebenen Techniken auszuführen. Somit können die verschiedenen Aspekte in vielen unterschiedlichen Formen verkörpert sein, und alle derartigen Formen sind derart angesehen, dass sie innerhalb des Schutzumfangs von dem sind, was beschrieben worden ist. Für jeden der verschiedenen Aspekte kann auf jede solche Form von Ausführungsbeispiel hierin als "logisch konfigurier zum" Durchführen einer beschriebenen Aktion Bezug genommen werden, oder alternativ dazu als "Logik, die" eine beschriebene Aktion durchführt.
  • Obwohl verschiedene beispielhafte Ausführungsbeispiele beschrieben worden sind, wird es von Fachleuten auf diesem Gebiet verstanden werden, dass diese Ausführungsbeispiele lediglich illustrativ sind und dass viele andere Ausführungsbeispiele möglich sind. Der beabsichtigte Schutzumfang der Erfindung ist eher durch die folgenden Ansprüche als die vorangehende Beschreibung definiert, und alle Variationen, die in den Schutzumfang der Ansprüche fallen, sollen darin umfasst sein.

Claims (39)

1. Verfahren zum Speichern von Speichertestinformation, wobei das Verfahren die folgenden Schritte aufweist:
Speichern eines Teils von Information, die sich auf Stellen und Anzahlen von fehlerhaften Speicherzellen bezieht, die während eines Testens des Speichers erfasst werden; und
Aktualisieren der gespeicherten Information, wenn fehlerhafte Speicherzellen erfasst werden, um einen ersten Typ von Speicherreserve anzuzeigen, der einem Reparieren einer fehlerhaften Speicherzelle zuzuteilen ist, einen zweiten komplementären Typ von Speicherreserve, der einem Reparieren der fehlerhaften Speicherzelle zuzuordnen ist, oder dass der Speicher nicht reparierbar ist;
wobei der erste Typ von Speicherreserve einem eines Zeilen- und eines Spaltenteils eines Speichers entspricht und der zweite komplementäre Typ von Speicherreserve dem anderen der Zeilen- und Spaltenteile des Speichers entspricht.
2. Verfahren nach Anspruch 1, wobei die gespeicherte Information aktualisiert wird, um den Typ von Speicherreserve anzuzeigen, der einem Reparieren der fehlerhaften Speicherzelle zuzuteilen ist, und zwar teilweise basierend darauf, ob eine Anzahl von fehlerhaften Speicherzellen in einem jeweiligen Zeilen- oder Spaltenteil des Speichers, wo die fehlerhafte Speicherzelle angeordnet ist, eine Anzahl von verfügbaren Speicherreserven vom komplementären Typ übersteigt.
3. Verfahren nach Anspruch 2, wobei die Information in einer Tabelle mit Zeilen- und Spaltenteilen gespeichert ist, wobei jeder Zeilen- und Spaltenteil der Tabelle wenigstens ein Adressen/Fehlerzahl-Eintragspaar zum Speichern einer Adresse des jeweiligen Zeilen- oder Spaltenteils des Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, und die Anzahl von im jeweiligen Zeilen- oder Spaltenteil des Speichers erfassten fehlerhaften Speicherzellen.
4. Verfahren nach Anspruch 3, das weiterhin den folgenden Schritt aufweist:
Bestimmen, ob eine Übereinstimmung zwischen wenigstens einer der Adressen der Zeilen- und Spaltenteile des Speichers, wo die fehlerhafte Speicherzelle angeordnet ist, und einem in der Tabelle gespeicherten Adresseneintrag existiert.
5. Verfahren nach Anspruch 4, wobei dann, wenn eine Übereinstimmung existiert, das Verfahren weiterhin den folgenden Schritt aufweist:
Inkrementieren des mit dem übereinstimmenden Adresseneintrag gepaarten Fehlerzahleintrag, wenn der gepaarte Fehlerzahl-Eintrag gleich der Anzahl von verfügbaren Speicherreserven vom komplementären Typ ist.
6. Verfahren nach Anspruch 4, wobei dann, wenn eine Übereinstimmung in sowohl den Zeilen- als auch den Spaltenteilen der Tabelle existiert, das Verfahren weiterhin den folgenden Schritt aufweist:
Inkrementieren der mit den übereinstimmenden Adresseneinträgen gepaarten Fehlerzahl-Einträge, wenn die gepaarten Fehlerzahl-Einträge jeweils weniger als die jeweilige Anzahl von verfügbaren Speicherreserven vom komplementären Typ sind.
7. Verfahren nach Anspruch 4, wobei dann, wenn eine Übereinstimmung in einem der Zeilen- und Spaltenteile der Tabelle existiert, das Verfahren weiterhin den folgenden Schritt aufweist:
Bestimmen, ob der Zeilen- oder Spaltenteil der Tabelle, der den übereinstimmenden Adresseneintrag nicht enthält, voll ist.
8. Verfahren nach Anspruch 7, wobei dann, wenn der Zeilen- oder Spaltenteil der Tabelle, der den übereinstimmenden Adresseneintrag nicht enthält, nicht voll ist, das Verfahren weiterhin die folgenden Schritte aufweist:
Inkrementieren des mit dem übereinstimmenden Adresseneintrag gepaarten Fehlerzahl-Eintrags, wenn der gepaarte Fehlerzahl-Eintrag kleiner als die Anzahl von verfügbaren Speicherreserven vom komplementären Typ ist; und
Hinzufügen eines Adressen/Fehlerzahl-Eintragspaars zu dem Teil der Tabelle, der den übereinstimmenden Adresseneintrag nicht enthält, wobei das hinzugefügte Eintragspaar die Adresse des Zeilen- oder Spaltenteils des Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, die nicht mit einem Adresseneintrag in der Tabelle und einer Fehlerzahl von Eins übereinstimmt.
9. Verfahren nach Anspruch 7, wobei dann, wenn der Zeilen- oder Spaltenteil der Tabelle, der den übereinstimmenden Adresseneintrag nicht enthält, voll ist, die in der Tabelle gespeicherte Information aktualisiert wird, um anzuzeigen, dass der Speicher nicht reparierbar ist.
10. Verfahren nach Anspruch 4, wobei dann, wenn keine Übereinstimmung existiert, das Verfahren weiterhin den folgenden Schritt aufweist:
Bestimmen, ob wenigstens einer der Zeilen- und Spaltenteile der Tabelle voll ist.
11. Verfahren nach Anspruch 10, wobei dann, wenn keiner der Zeilen- oder Spaltenteile der Tabelle voll ist, das Verfahren weiterhin den folgenden Schritt aufweist:
Hinzufügen eines Adressen/Fehlerzahl-Eintragspaars zu beiden der Zeilen- und Spaltenteile der Tabelle, wobei jedes hinzugefügte Eintragspaar die jeweilige Adresse des Zeilen- oder Spaltenteils des Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, und eine Fehlerzahl von Eins.
12. Verfahren nach Anspruch 10, wobei dann, wenn wenigstens einer der Zeilen- und Spaltenteile der Tabelle voll ist, die in der Tabelle gespeicherte Information aktualisiert wird, um anzuzeigen, dass der Speicher nicht reparierbar ist.
13. Verfahren nach Anspruch 4, wobei dann, wenn eine Gesamtanzahl eines Typs von Speicherreserve größer als eine Gesamtanzahl von Speicherreserven vom komplementären Typ ist, der Schritt zum Bestimmen dann, wenn eine Übereinstimmung existiert, den folgenden Schritt aufweist:
Vergleichen der Adresse des Zeilen- oder Spaltenteils eines Speichers entsprechend dem Typ von Speicherreserve mit der größeren Gesamtanzahl von Reserven mit Adresseneinträgen in der Tabelle vor einem Vergleichen der Adresse des Zeilen- oder Spaltenteils eines Speichers entsprechend dem Typ von Speicherreserve mit einer geringeren Gesamtanzahl von Reserven mit Adresseneinträgen in der Tabelle.
14. Verfahren nach Anspruch 4, wobei dann, wenn die Gesamtanzahl des ersten und des zweiten Typs von Speicherreserven gleich ist, der Schritt zum Bestimmen dann, wenn eine Übereinstimmung existiert, die folgenden Schritte aufweist:
Auswählen einer der Adressen der Zeilen- und Spaltenteile von Speicher, wo die fehlerhafte Speicherzelle angeordnet ist, auf zufällige Weise; und
Vergleichen der Adresse des Zeilen- oder Spaltenteils von Speicher, die zufällig ausgewählt ist, mit Adresseneinträgen in der Tabelle vor einem Vergleichen der Adresse des Zeilen- oder Spaltenteils von Speicher, die nicht zufällig ausgewählt ist, mit Adresseneinträgen in der Tabelle.
15. Verfahren nach Anspruch 3, das weiterhin den folgenden Schritt aufweist:
Verbinden von Adressen/Fehlerzahl-Eintragspaaren, die im Zeilenteil der Tabelle enthalten sind, mit zugehörigen Adressen/Fehlerzahl-Eintragspaaren, die im Spaltenteil der Tabelle enthalten sind.
16. Verfahren nach Anspruch 15, wobei ein Verbindungsidentifizierereintrag zum Speichern eines eindeutigen Verbindungs-ID zu jedem Adressen/Fehlerzahl- Paar des Zeilen- oder Spaltenteils der Tabelle entsprechend dem Typ von Speicherreserve mit einer größeren Gesamtanzahl von Reserven zum Verbinden von Adressen/Fehlerzahl-Eintragspaaren, die im Zeilenteil der Tabelle enthalten sind, mit zugehörigen Adressen/Fehlerzahl-Eintragspaaren, die im Spaltenteil der Tabelle enthalten sind, hinzugefügt wird.
17. Verfahren nach Anspruch 16, wobei die Anzahl von eindeutigen Verbindungs-IDs gleich der Anzahl von Speicherreserven des Typs mit einer geringeren Gesamtanzahl von Reserven ist.
18. Verfahren nach Anspruch 3, wobei die Tabelle einen Teil eines Speichers darstellt, wo wenigstens einer des ersten Typs von Speicherreserve wenigstens einen des zweiten komplementären Typs von Speicherreserve schneidet.
19. Verfahren nach Anspruch 3, wobei die Größe der Tabelle durch die folgende Gleichung bestimmt wird:


wobei:
CE = Anzahl von Einträgen im Spaltenteil der Tabelle = SR.(SC + 1);
RE = Anzahl von Einträgen im Zeilenteil der Tabelle = SC.(SR + 1);
Zeilenzahl = Größe einer Fehlerzahl im Zeilenteil der Tabelle = log2 (SC + 2);
Zeilenadresse = Größe der Adresse im Zeilenteil der Tabelle = log2 (R);
Spaltenzahl = Größe einer Fehlerzahl im Spaltenteil der Tabelle = log2 (SR + 2);
Spaltenadresse = Größe der Adresse im Spaltenteil der Tabelle = log2 (C);
R = Anzahl von Zeilen im Zeilenteil des Speichers;
SR = Anzahl eines ersten oder eines zweiten Typs von Speicherreserven;
SC = Anzahl eines komplementären Typs von Speicherreserven;
C = Anzahl von Spalten im Spaltenteil des Speichers;
und
ID = Größe eines Verbindungs-ID = ≙log2 (CE) ≙, wenn Re ≥ CE;
≙log2 (RE) ≙, wenn CE > RE.
20. Verfahren nach Anspruch 1, wobei der Zeilenteil des Speichers wenigstens eine Zeile eines Speichers enthält und der Spaltenteil des Speichers wenigstens eine Spalte des Speichers enthält.
21. Verfahren nach Anspruch 1, wobei der Spaltenteil des Speichers wenigstens eine Eingabe/Ausgabe-(I/O-) Vorrichtung enthält, wobei die wenigstens eine I/O- Vorrichtung einen Eingangs- und einen Ausgangspfad für wenigstens eine Spalte des Speichers liefert.
22. Vorrichtung zum Speichern von Speichertestinformation, welche Vorrichtung folgendes aufweist:
eine Logik, die einen Teil von Information in Bezug auf Stellen und Anzahlen von fehlerhaften Speicherzellen speichert, die während eines Testens des Speichers erfasst werden; und
eine Logik, die die gespeicherte Information aktualisiert, wenn fehlerhafte Speicherzellen erfasst werden, um einen ersten Typ von Speicherreserve anzuzeigen, der einem Reparieren einer fehlerhaften Speicherzelle zuzuordnen ist, einen zweiten komplementären Typ von Speicherreserve, der einem Reparieren der fehlerhaften Speicherzelle zuzuordnen ist, oder dass der Speicher nicht reparierbar ist;
wobei der erste Typ von Speicherreserve einem eines Zeilen- und eines Spaltenteils des Speichers entspricht und der zweite komplementäre Typ von Speicherreserve dem anderen der Zeilen- und Spaltenteile des Speichers entspricht.
23. Vorrichtung nach Anspruch 22, wobei die gespeicherte Information aktualisiert wird, um den Typ von Speicherreserve anzuzeigen, der zum Reparieren der fehlerhaften Speicherzelle zuzuordnen ist, und zwar teilweise basierend darauf, ob eine Anzahl von fehlerhaften Speicherzellen in einem jeweiligen Zeilen- oder Spaltenteil des Speichers, wo die fehlerhafte Speicherzelle angeordnet ist, eine Anzahl von verfügbaren Speicherreserven vom komplementären Typ übersteigt.
24. Vorrichtung nach Anspruch 23, die weiterhin folgendes aufweist:
eine Tabelle zum Speichern der Information, wobei die Tabelle Zeilen- und Spaltenteile hat, wobei ein jeweiliger Zeilen- und Spaltenteil der Tabelle wenigstens ein Adressen/Fehlerzahl-Eintragspaar zum Speichern einer Adresse des jeweiligen Zeilen- oder Spaltenteils des Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, und die Anzahl von fehlerhaften Speicherzellen, die im jeweiligen Zeilen- oder Spaltenteil des Speichers erfasst sind.
25. Vorrichtung nach Anspruch 24, die weiterhin folgendes aufweist:
eine Logik, die bestimmt, ob eine Übereinstimmung zwischen wenigstens einer der Adressen der Zeilen- und Spaltenteile des Speichers, wo die fehlerhafte Speicherzelle angeordnet ist, und einem in der Tabelle gespeicherten Adresseneintrag existiert.
26. Vorrichtung nach Anspruch 25, die weiterhin folgendes aufweist:
eine Logik, die den mit dem übereinstimmenden Adresseneintrag gepaarten Fehlerzahl-Eintrag inkrementiert, wenn eine Übereinstimmung existiert, wenn der gepaarte Fehlerzahl-Eintrag gleich der Anzahl von verfügbaren Speicherreserven vom komplementären Typ ist.
27. Vorrichtung nach Anspruch 25, die weiterhin folgendes aufweist:
eine Logik, die die mit den übereinstimmenden Adresseneinträgen gepaarten Fehlerzahl-Einträge inkrementiert, wenn eine Übereinstimmung in beiden der Zeilen- und Spaltenteile der Tabelle existiert, wenn die gepaarten Fehlerzahl-Einträge jeweils kleiner als die jeweilige Anzahl von verfügbaren Speicherreserven vom komplementären Typ sind.
28. Vorrichtung nach Anspruch 25, die weiterhin folgendes aufweist:
eine Logik, die bestimmt, ob der Zeilen- oder Spaltenteil der Tabelle, der den übereinstimmenden Adresseneintrag nicht enthält, voll ist, wenn eine Übereinstimmung in einem der Zeilen- und Spaltenteile der Tabelle existiert.
29. Vorrichtung nach Anspruch 28, die weiterhin folgendes aufweist:
eine Logik, die den mit dem übereinstimmenden Adresseneintrag gepaarten Fehlerzahl-Eintrag inkrementiert, wenn eine Übereinstimmung in einem der Zeilen- und Spaltenteile der Tabelle existiert, wenn der gepaarte Fehlerzahl-Eintrag kleiner als die Anzahl von verfügbaren Speicherreserven vom komplementären Typ ist; und
eine Logik, die ein Adressen/Fehlerzahl-Eintragspaar zu dem Teil der Tabelle hinzufügt, der den übereinstimmenden Adresseneintrag nicht enthält, wenn eine Übereinstimmung in einem der Zeilen- und Spaltenteile der Tabelle existiert, wobei das hinzugefügte Eintragspaar die Adresse des Zeilen- oder Spaltenteils des Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, welche Adresse nicht mit einem Adresseneintrag in der Tabelle übereinstimmt, und eine Fehlerzahl von Eins.
30. Vorrichtung nach Anspruch 28, die weiterhin folgendes aufweist:
eine Logik, die anzeigt, dass der Speicher nicht reparierbar ist, wenn der Zeilen- oder Spaltenteil der Tabelle, der den übereinstimmenden Adresseneintrag nicht enthält, voll ist.
31. Vorrichtung nach Anspruch 25, die weiterhin folgendes aufweist:
eine Logik, die bestimmt, ob wenigstens einer der Zeilen- und Spaltenteile der Tabelle voll ist, wenn keine Übereinstimmung existiert.
32. Vorrichtung nach Anspruch 31, die weiterhin folgendes aufweist:
eine Logik, die ein Adressen/Fehlerzahl-Eintragspaar zu beiden der Zeilen- und Spaltenteile der Tabelle hinzufügt, wenn keine Übereinstimmung existiert, wobei jedes hinzugefügte Eintragspaar die jeweilige Adresse des Zeilen- oder Spaltenteils des Speichers enthält, wo die fehlerhafte Speicherzelle angeordnet ist, und eine Fehlerzahl von Eins.
33. Vorrichtung nach Anspruch 31, die weiterhin folgendes aufweist:
eine Logik, die anzeigt, dass der Speicher nicht reparierbar ist, wenn wenigstens einer der Zeilen- und Spaltenteile der Tabelle voll ist.
34. Vorrichtung nach Anspruch 25, wobei die Logik, die bestimmt, ob eine Übereinstimmung existiert, folgendes aufweist:
eine Logik, die die Adresse des Zeilen- oder Spaltenteils des Speichers entsprechend dem Typ der Speicherreserve mit der größeren Gesamtanzahl von Reserven mit Adresseneinträgen in der Tabelle vor einem Vergleichen der Adresse des Zeilen- oder Spaltenteils des Speichers entsprechend dem Typ von Speicherreserve mit einer geringeren Gesamtanzahl von Reserven mit Adresseneinträgen in der Tabelle vergleicht, wenn eine Gesamtanzahl von einem Typ von. Speicherreserve größer als eine Gesamtanzahl von Speicherreserven vom komplementären Typ ist.
35. Vorrichtung nach Anspruch 25, wobei die Logik, die bestimmt, ob eine Übereinstimmung existiert, folgendes aufweist:
eine Logik, die eine der Adressen der Zeilen- und Spaltenteile des Speichers, wo die fehlerhafte Speicherzelle angeordnet ist, zufällig auswählt, wenn die Gesamtanzahl des ersten und des zweiten Typs von Speicherzellen gleich ist; und
eine Logik, die die Adresse des Zeilen- oder Spaltenteils von Speicher, die zufällig ausgewählt ist, mit Adresseneinträgen in der Tabelle vor einem Vergleichen der Adresse des Zeilen- oder Spaltenteils des Speichers, die nicht zufällig ausgewählt ist, mit Adresseneinträgen in der Tabelle vergleicht, wenn die Gesamtanzahl des ersten und des zweiten Typs von Speicherreserven gleich ist.
36. Vorrichtung nach Anspruch 24, die weiterhin folgendes aufweist:
eine Logik, die Adressen/Fehlerzahl-Eintragspaare, die im Zeilenteil der Tabelle enthalten sind, mit zugehörigen Adressen/Fehlerzahl-Eintragspaaren, die im Spaltenteil der Tabelle enthalten sind, verbindet.
37. Vorrichtung nach Anspruch 36, die weiterhin folgendes aufweist:
eine Logik, die einen Verbindungsidentifizierereintrag zum Speichern eines eindeutigen Verbindungs-ID zu jedem Adressen/Fehlerzahl-Paar des Geilen- oder Spaltenteils der Tabelle entsprechend dem Typ von Speicherreserve mit einer größeren Gesamtanzahl von Reserven zum Verbinden von Adressen/Fehlerzahl-Eintragspaaren, die im Zeilenteil der Tabelle enthalten sind, mit zugehörigen Adressen/Fehlerzahl-Eintragspaaren, die im Spaltenteil der Tabelle enthalten sind, hinzufügt.
38. Vorrichtung nach Anspruch 37, wobei die Anzahl von eindeutigen Verbindungs-IDs gleich der Anzahl von Speicherreserven von dem Typ mit einer geringeren Gesamtanzahl von Reserven ist.
39. Vorrichtung nach Anspruch 24, wobei die Tabelle einen Teil eines Speichers darstellt, wo wenigstens einer des ersten Typs von Speicherreserve wenigstens eines des zweiten komplementären Typs von Speicherreserve schneidet.
DE10225381A 2001-06-08 2002-06-07 Verfahren und Vorrichtung zum Speichern von Speichertestinformantion Withdrawn DE10225381A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29678901P 2001-06-08 2001-06-08
US10/160,640 US7178072B2 (en) 2001-06-08 2002-05-31 Methods and apparatus for storing memory test information

Publications (1)

Publication Number Publication Date
DE10225381A1 true DE10225381A1 (de) 2003-02-13

Family

ID=26857078

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10225381A Withdrawn DE10225381A1 (de) 2001-06-08 2002-06-07 Verfahren und Vorrichtung zum Speichern von Speichertestinformantion

Country Status (6)

Country Link
US (1) US7178072B2 (de)
JP (1) JP3878062B2 (de)
KR (2) KR20020093642A (de)
CN (1) CN100458743C (de)
DE (1) DE10225381A1 (de)
TW (1) TW561490B (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020196687A1 (en) * 2001-06-08 2002-12-26 Sauvageau Anthony J. Methods and apparatus for analyzing and repairing memory
US6968479B2 (en) * 2002-03-06 2005-11-22 Hewlett-Packard Development Company, L.P. Verifying data in a data storage device
US7734966B1 (en) 2002-12-26 2010-06-08 Marvell International Ltd. Method and system for memory testing and test data reporting during memory testing
EP1447813B9 (de) * 2003-02-12 2008-10-22 Infineon Technologies AG Verfahren und MBISR (Memory Built-In Self Repair) zum Reparieren eines Speichers
US6937531B2 (en) * 2003-07-21 2005-08-30 Infineon Technologies Ag Memory device and method of storing fail addresses of a memory cell
KR100684471B1 (ko) * 2005-02-25 2007-02-22 장훈 내장 에스램의 자체 복구 방법 및 장치
US7774643B2 (en) * 2006-01-06 2010-08-10 Dot Hill Systems Corporation Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array
US8612797B2 (en) * 2006-03-31 2013-12-17 Hewlett-Packard Development Company, L.P. Systems and methods of selectively managing errors in memory modules
US7966518B2 (en) * 2007-05-15 2011-06-21 Sandisk Corporation Method for repairing a neighborhood of rows in a memory array using a patch table
US7958390B2 (en) * 2007-05-15 2011-06-07 Sandisk Corporation Memory device for repairing a neighborhood of rows in a memory array using a patch table
JP5319387B2 (ja) * 2009-05-13 2013-10-16 ルネサスエレクトロニクス株式会社 半導体チップの救済設計方法
CN101866307A (zh) * 2010-06-24 2010-10-20 杭州华三通信技术有限公司 一种基于镜像技术的数据存储方法及装置
KR101211042B1 (ko) 2010-11-23 2012-12-13 에스케이하이닉스 주식회사 고장 정보 저장장치 및 저장방법
KR101133689B1 (ko) * 2010-11-23 2012-04-24 에스케이하이닉스 주식회사 리페어 분석 장치 및 방법
WO2013002799A1 (en) 2011-06-30 2013-01-03 Hewlett-Packard Development Company, L.P. A memory module that includes a memory module copy engine for copying data from an active memory die to a spare memory die
KR101373668B1 (ko) * 2012-06-22 2014-03-13 연세대학교 산학협력단 메모리 수리 장치 및 방법
TWI545582B (zh) * 2013-11-15 2016-08-11 慧榮科技股份有限公司 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置
US10388396B2 (en) * 2014-08-25 2019-08-20 Rambus Inc. Buffer circuit with adaptive repair capability
KR101548875B1 (ko) 2014-08-28 2015-09-01 성균관대학교산학협력단 메모리의 오류검사정정 성능 향상방법
KR101545716B1 (ko) 2015-01-19 2015-08-20 연세대학교 산학협력단 메모리 수리 장치 및 방법, 그리고 그를 이용한 메모리 칩
KR102487553B1 (ko) * 2016-12-07 2023-01-11 삼성전자주식회사 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10452468B2 (en) 2016-12-30 2019-10-22 Western Digital Technologies, Inc. Method and system for managing non-volatile memory
DE102020134945A1 (de) * 2020-02-27 2021-09-02 Taiwan Semiconductor Manufacturing Co., Ltd. Dynamische fehlerüberwachung und -reparatur
US11380415B2 (en) * 2020-02-27 2022-07-05 Taiwan Semiconductor Manufacturing Company, Ltd. Dynamic error monitor and repair
US11791010B2 (en) 2020-08-18 2023-10-17 Changxin Memory Technologies, Inc. Method and device for fail bit repairing
US11887685B2 (en) 2020-08-18 2024-01-30 Changxin Memory Technologies, Inc. Fail Bit repair method and device
US11797371B2 (en) 2020-08-18 2023-10-24 Changxin Memory Technologies, Inc. Method and device for determining fail bit repair scheme
EP3985675B1 (de) 2020-08-18 2024-01-31 Changxin Memory Technologies, Inc. Verfahren und vorrichtung zur reparatur von ausfallbits
CN112885398B (zh) * 2021-03-26 2022-05-24 长鑫存储技术有限公司 备用电路分派方法、装置、设备及介质
US11984179B2 (en) 2021-03-26 2024-05-14 Changxin Memory Technologies, Inc. Redundant circuit assigning method and device, and medium
US11881278B2 (en) 2021-03-31 2024-01-23 Changxin Memory Technologies, Inc. Redundant circuit assigning method and device, apparatus and medium
US11791012B2 (en) 2021-03-31 2023-10-17 Changxin Memory Technologies, Inc. Standby circuit dispatch method, apparatus, device and medium
CN113835970B (zh) * 2021-10-09 2022-05-10 南阳理工学院 一种计算机存储器优化装置及其优化方法
US20230229560A1 (en) * 2022-01-19 2023-07-20 Micron Technology, Inc. Method and system for off-line repairing and subsequent reintegration in a system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US164513A (en) * 1875-06-15 Improvement in sad-iron heaters
JPH10222999A (ja) 1997-02-03 1998-08-21 Fujitsu Ltd 半導体試験方法及び装置
US6032264A (en) * 1997-04-22 2000-02-29 Micron Technology, Inc. Apparatus and method implementing repairs on a memory device
US6011734A (en) * 1998-03-12 2000-01-04 Motorola, Inc. Fuseless memory repair system and method of operation
JP2000348498A (ja) 1999-06-08 2000-12-15 Mitsubishi Electric Corp 半導体試験装置
JP2001006388A (ja) * 1999-06-23 2001-01-12 Toshiba Corp 冗長回路内蔵半導体記憶装置
JP2001043698A (ja) 1999-08-03 2001-02-16 Hitachi Ltd 内蔵メモリアレイの自己検査回路および自己検査方法
KR100354437B1 (ko) * 2000-01-28 2002-09-28 삼성전자 주식회사 내장 메모리를 위한 자기 복구 회로를 구비하는 집적회로반도체 장치 및 메모리 복구 방법
US6795942B1 (en) * 2000-07-06 2004-09-21 Lsi Logic Corporation Built-in redundancy analysis for memories with row and column repair

Also Published As

Publication number Publication date
JP2003059292A (ja) 2003-02-28
KR20020093642A (ko) 2002-12-16
JP3878062B2 (ja) 2007-02-07
US7178072B2 (en) 2007-02-13
CN100458743C (zh) 2009-02-04
TW561490B (en) 2003-11-11
US20030005353A1 (en) 2003-01-02
CN1409323A (zh) 2003-04-09
KR20080110710A (ko) 2008-12-19

Similar Documents

Publication Publication Date Title
DE10225381A1 (de) Verfahren und Vorrichtung zum Speichern von Speichertestinformantion
DE3786410T2 (de) Verfahren zur Wahl von Ersatzleitungen in einer zweidimensionalen redundanten Matrix.
DE69719301T2 (de) Flüchtiger Speicherchip mit nicht-flüchtigen Speicherplätzen zur Speicherung von Qualitätsinformation
EP0378538B1 (de) Anordnung und verfahren zur feststellung und lokalisierung von fehlerhaften schaltkreisen eines speicherbausteins
DE60212962T2 (de) Hierarchischer intergrierter selbsttest
DE69116919T2 (de) Selbsttestverfahren für inhaltsadressierbare Speicher
DE69702858T2 (de) Halbleiterspeicherprüfgerät mit redundanzanalyse
DE60220511T2 (de) Verfahren und system zur optimierung der testkosten und deaktivierungsdefekte für scan- und bist-speicher
DE69710501T2 (de) System zur optimierung von speicherreparaturzeit mit prüfdaten
DE69604592T2 (de) Speicherprüfgerät zur schnellreparatur von halbleiterspeicherchips
DE19741174A1 (de) Speichertestgerät
DE2555439A1 (de) Monolithische hochintegrierte halbleiterschaltung
DE19851861A1 (de) Fehleranalysespeicher für Halbleiterspeicher-Testvorrichtungen und Speicherverfahren unter Verwendung des Fehleranalysespeichers
EP1046993B1 (de) Halbleiterspeicheranordnung mit BIST
EP0783170B1 (de) Vorrichtung und Verfahren zur Erfassung und Bewertung eines räumlich diskreten Punktmusters
EP1113362B1 (de) Integrierter Halbleiterspeicher mit einer Speichereinheit zum Speichern von Adressen fehlerhafter Speicherzellen
EP0843317B1 (de) Verfahren zum Testen eines in Zellenfelder unterteilten Speicherchips im laufenden Betrieb eines Rechners unter Einhaltung von Echtzeitbedingungen
EP1008993B1 (de) Schreib/Lesespeicher mit Selbsttestvorrichtung und zugehöriges Testverfahren
DE10058030A1 (de) Integrierte Schaltung mit Datenprüfmitteln auf einem Chip
EP1444699B1 (de) Verfahren zur rekonfiguration eines speichers
DE10337284A1 (de) Integrierter Speicher mit einer Schaltung zum Funktionstest des integrierten Speichers sowie Verfahren zum Betrieb des integrierten Speichers
DE10292320T5 (de) Verfahren und Vorrichtung zum Analysieren und Reparieren von Speicher
EP1055238B1 (de) Testschaltung und verfahren zum prüfen einer digitalen halbleiter-schaltungsanordnung
DE10226585C1 (de) RAM-Speicherschaltung
EP0990236B1 (de) Anordnung mit speicherzellen und verfahren zur funktionsüberprüfung von speicherzellen

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee