-
Hintergrund
der Erfindung
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf eingebaute Selbsttest-Systeme
(BISR) für
integrierte Schaltungen, die eingebettete Speicher verwenden und
insbesondere auf ein BISR-System, das ein effizientes Austauschanalyse-System
für Ersatzzeilen
und Ersatzspalten verwendet.
-
Beschreibung des Stands
der Technik
-
Entwickler
von integrierten Schaltungen (IC) bauen oftmals einen oder mehrere
Direktzugriffsspeicher (RAM-Speicher, kurz RAM) in anwendungsspezifische
integrierte Schaltungen (ASIC) ein, um Herstellungskosten und Kosten
für die
Betriebsleistung zu vermeiden, die mit dem Verbinden der ASICs mit
gesonderten RAMs auf der Leiterplatinen-Ebene auftreten. Allerdings
kann ein in eine ASIC eingebetteter RAM-Speicher viele Tausende
oder Millionen Speicherzellen enthalten, und wenn eine dieser Zellen
bei der Herstellung defekt ist, ist die ASIC nutzlos. Auch Strahlung
kann RAM-Zellen beschädigen,
wenn eine ASIC in Betrieb ist.
-
Ein
Ansatz zum Verringern des Prozentsatzes an ASICs, die aufgrund defekter
Speicherzellen nutzlos sind, bestand darin, defekte Speicherzellen
durch Ersatzzellen zu ersetzen, die in die ASIC eingebaut wurden. Die
Speicherzellen eines RAM-Speichers
sind in Zeilen (bzw. Reihen) und Spalten angeordnet, und eine Speicheradresse
identifiziert eine spezielle Zelle, auf die ein Schreib- oder Lese-Zugriff
erfolgen soll, indem ihre Zeilen- und Spalten-Position innerhalb
der Zellenanordnung identifiziert wird. Ein Adressen-Decodierer
decodiert eine Lese- oder Schreib-Adresse, um ein Zeilen-Freigabesignal an
alle Zellen der identifizierten Zeile und ein Spalten-Freigabesignal
an alle Zellen der identifizierten Spalte zu senden. Die spezielle
Speicherzelle, welche sowohl die Zeilen- als auch die Spalten-Freigabesignale
empfängt,
wird freigegeben, um Daten zu lesen oder zu schreiben, die auf Datenleitungen
erscheinen, die mit sämtlichen
Zellen der Anordnung verbunden sind. ASICs stellen üblicherweise
Ersatzzellen in Form einer oder mehrerer Ersatzspalten von Speicherzellen bereit.
Wenn eine Speicherzelle in einer speziellen Spalte als defekt befunden
wird, wird der Speicher rekonfiguriert, um alle Zellen dieser Spalte
durch eine Ersatzspalte zu ersetzen.
-
Es
gibt verschiedene Arten, um einen Speicher zu rekonfigurieren, um
einen Ersatzspalten-Austausch zu implementieren. Einige Systeme
verändern
die Wegleitung der Spalten-Freigabeleitung
der defekten Spalte zu der Ersatzspalte, indem z.B. ein Laser verwendet
wird, um die Wegleitungspfade innerhalb der ASIC zu verändern. Andere
Systeme implementieren den Spaltenaustausch durch Verändern der
Art und Weise, wie der Adressen-Decodierer die Adressen decodiert,
so dass er ein Spalten-Freigabesignal zu der Ersatzspalte anstatt
zu der defekten Spalte sendet, wenn die defekte Spalte adressiert
wird. Dies erfordert gewöhnlicherweise das
Schreiben von Daten in ein Register, das der Adressen-Decodierer
konsultiert, wenn er Adressen decodiert.
-
Ersatzspalten-Austauschsysteme
sind bei ihrer Verwendung von Ersatz-Speicherzellen nicht sehr effizient,
weil sie eine gesamte Spalte aus Speicherzellen selbst dann ersetzen,
wenn nur eine einzige Zelle in der Spalte defekt ist. Um in der
Lage zu sein, mindestens N defekte Speicherzellen auszutauschen,
müsste eine
ASIC mindestens N vollständige
Ersatzspalten aus Zellen enthalten. Um die Zellenaustausch-Effizienz
zu verbessern, stellen einige Systeme Ersatz-Speicherzeilen zusätzlich zu
Ersatz-Speicherspalten bereit, so dass, wenn eine Speicherzelle
als defekt befunden wird, diese ersetzt werden kann, indem man entweder
ihre Zeile oder ihre Spalte durch eine Ersatzzeile oder eine Ersatzspalte
ersetzt. Wenn z.B. eine defekte Zelle die einzige defekte Zelle
ihrer Zeile ist, jedoch eine von zweien oder mehreren defekten Zellen
ihrer Spalte ist, ist es effizienter, ihre Spalte durch eine Ersatzspalte
als ihre Zeile durch eine Ersatzzeile zu ersetzen. Wenn umgekehrt
eine defekte Zelle die einzige defekte Zelle ihrer Spalte ist, jedoch
eine von zweien oder mehreren defekten Zellen ihrer Zeile ist, ist
es vorzuziehen, ihre Zeile auszutauschen.
-
Wenn
ein ASIC-Speicher nur Ersatzspalten enthält, kann jede Spalte der Reihe
nach getestet werden und durch eine Ersatzspalte unmittelbar ersetzt
werden, wenn sich herausstellt, dass sie eine defekte Zelle hat.
Wenn andererseits ein ASIC-Speicher
Ersatzspalten und Ersatzzeilen enthält, würden wir gerne Speicherzellen
aller Zeilen und Spalten testen, bevor entschieden wird, wie die
Ersatzzeilen und Ersatzspalten am besten zugeordnet werden. Um dies
zu tun, muss ein Test- und Reparatursystem Daten speichern, welche
die Adresse jeder als defekt befundenen Zelle bis zum Ende des Tests
speichern und diese Daten dann analysieren, um zu bestimmen, wie
die Ersatzzeilen und Ersatzspalten am besten zugeordnet werden.
So kann z.B. ein Test- und Reparatursystem diese Daten in Form einer
Bitkarte speichern, bei der jedes Bit anzeigt, ob eine entsprechende
Speicherzelle defekt ist. Da eine derartige Bitkarte genauso viele
Zellen wie der eigentliche Speicher benötigt, ist es nicht praktisch,
eine Schaltung zum Speichern und Analysieren einer derartigen Bitkarte
auf der ASIC selbst bereitzustellen. Deshalb sind die Abschnitte
von Test- und Reparatursystemen,
welche derartige Bitkarten-Daten speichern und analysieren, typischerweise
außerhalb
der ASIC angeordnet. Die Testergebnis-Daten für jede Speicherzelle werden
deshalb bei ihrer Erzeugung aus dem Chip heraus übertragen, so dass keine Speicheranforderungen
für Testergebnis-Daten auf dem Chip
notwendig sind.
-
Aus
vielen Gründen
ist es wünschenswert,
eine ASIC mit einem eingebauten Selbstreparatur-System (Built-In
Self-Repair System, BISR) auszustatten, das einen Speicher mit wenig
oder gar keiner Kommunikation mit Vorrichtungen außerhalb
der ASIC testen und reparieren kann. So können z.B. Strahlung oder andere Umweltfaktoren
das Versagen einer Speicherzelle in einer ASIC verursachen, lange
nachdem diese einen Test in der Fabrik bestanden hat. Wenn die ASIC
ein BISR-System enthält,
das z.B. beim Hochfahren der ASIC-Leistung oder als Reaktion auf
ein extern erzeugtes Freigabesignal freigegeben wird, kann das BISR-System
auch beschädigte
Zellen automatisch testen und diese ersetzen. Da das BISR-System
vollständig
innerhalb der ASIC enthalten ist, ist es nicht notwendig, die ASIC
aus ihrer normalen Betriebsumgebung zu entfernen oder sie an externe
Test- und Reparaturgeräte
anzuschließen.
-
Eingebaute
BISR-Systeme waren bisher nicht in der Lage, die Effizienzen vollständig auszunutzen, die
durch einen kombinierten Ersatzspalten- und Ersatzzeilenaustausch
ermöglicht
werden, da es hierfür
nicht praktisch war, Testergebnisse für alle Zellen zu speichern,
so dass sie am Ende des Tests analysiert werden können, um
die beste Art und Weise für
das Zuordnen von Ersatzzeilen und Ersatzspalten zu bestimmen. Das US-Patent
5764878, das am 8. Juni 1998 auf den Namen Kablanian et al. erteilt
wurde, beschreibt ein BISR-System, welches Speicherspalten in Blöcke von
jeweils mehreren Spalten anordnet und jeden Block der Reihe nach
testet und repariert. Wenn ein Block aus Spalten eine oder mehrere
defekte Zellen hat, entscheidet ein eingebautes Reparatur-Analyse-Untersystem
(Built-In Repair Analysis Subsystem, BIRA) des BISR-Systems, ob
der Block durch Austausch von Speicherzeilen durch Ersatzzeilen
repariert werden soll oder durch Ersetzen des gesamten Blocks durch
einen Ersatzblock repariert werden soll. Da das BISR-System nur
einen Speicherblock zu einem gewissen Zeitpunkt testet und repariert,
muss es keine Testergebnis-Daten für die gesamte Speicheranordnung
auf einmal speichern und analysieren. Da jedoch das BIRA-Untersystem
seine Auswahl zum Zeilen- und Spaltenaustausch durchführt, ohne
die defekten Zellen des Speichers vollständig abgebildet zu haben, bewirkt
das BISR-System nicht immer eine Optimierung seiner Zuordnung der
Ersatzzeilen und Spaltenblöcke.
Da das beschriebene BIRA-System
zunächst
Zeile für
Zeile testet und dann Spalte für Spalte
testet, kann das System die Test-Flexibilität beeinflussen, da die Blöcke individuell
getestet werden müssen
und eine Auswirkung auf die Testzeit haben.
-
Das
US-Patent 5,577,050 beschreibt ebenfalls ein BISR-System, das sowohl
einen Ersatzzeilen- und Ersatzspalten-Austausch verwendet. Das BISR-System
prüft zunächst jede
Spalte im Wechsel, um zu bestimmen, ob die Spalte einen "globalen" Fehler hat (wie
z.B. Fehler der Spaltenleitung durch Verstopfung oder Öffnung),
der mehr als eine Zelle einer Spalte beeinträchtigen kann. Es testet jedoch
nicht jede Zelle einer Spalte individuell. Wenn es einen derartigen
globalen Fehler in einer Spalte findet, ersetzt das BISR-System
die defekte Spalte durch eine Ersatzspalte, bevor es zu dem Test
der nächsten
Spalte fortschreitet. Nachdem es defekte Spalten getestet und ausgetauscht
hat, testet das BISR-System dann jede Speicherzelle Zeile für Zeile individuell,
wobei jede Zeile mit einer defekten Zelle durch eine Ersatzzeile
ersetzt wird. Da es Spalte für
Spalte und Zeile für
Zeile testet und repariert, muss das BISR-System keine große Menge
an Ergebnisdaten speichern, doch optimiert das System z.B. keine
Ersatzzeilen- und Ersatzspalten-Zuordnung, wenn eine Spalte zwei
oder mehr defekte Zellen hat, die nicht auf einem globalen Spaltenfehler
beruhen.
-
Man
benötigt
daher ein BIRA-Untersystem für
ein BISR-System für
eine wesentliche Optimierung der Ersatzzeilen- und Spaltenaustausch-Zuordnung
auf der Grundlage von Systemtest-Ergebnissen,
ohne dass es nötig
ist, gleichzeitig große
Mengen von Testergebnis-Daten zu speichern, auf denen ihre Zuordnungs-Entscheidungen
basiert werden, und das die Test-Flexibilität nicht
begrenzt oder die Testzeit sigifikant erhöht.
-
Das
US-Patent 5,859,804 offenbart ein Gerät gemäss den Oberbegriffen von Anspruch
1 und 15.
-
Zusammenfassung
der Erfindung
-
Die
vorliegende Erfindung ist in Anspruch 1 definiert. Das eingebaute
Selbstreparatur-System (BISR) zum Testen und Rekonfigurieren einer
Anordnung aus Zeilen- und Spalten-Speicherzellen, die in einer integrierten
Schaltung gemäss
Anspruch 15 eingebettet sind, enthält ein eingebautes Austauschanalyse-Subsystem
(BIRA) zum Zuordnen von Ersatzzeilen und Ersatzspalten von Speicherzellen
zum Austauschen von Anordnungszeilen und -Spalten, die defekte Speicherzellen
enthalten, gemäss
dem Vorrichtungsanspruch. Das BIRA-Untersystem ordnet Ersatzzeilen
und Ersatzspalten von Zellen zu, um Zeilen und Spalten einer Anordnung
von Speicherzellen als Reaktion auf eine Eingabesequenz von Zellenadressen
auszutauschen, die durch ein eingebautes Selbstest-Untersystem (BIST)
erzeugt werden, bei dem es sich um einen Abschnitt des BISR-Systems handelt.
Das BIST-Untersystem testet die Speicheranordnung und erzeugt eine
Zellenadresse für
jede defekte Zelle in der Anordnung, wobei die Zellenadresse die
Zeilenadresse und eine Spaltenadresse der defekten Zelle enthält.
-
Gemäss einem
ersten Gesichtspunkt der Erfindung speichert das BIRA-Untersystem
die gesamte Information, die benötigt
wird, um Ersatzzeilen und Ersatzspalten in einer Gruppe von Zeilen- und Spaltenregistern
zuzuordnen. Jedes Zeilenregister entspricht einer verfügbaren Ersatzzeile,
und jedes Spaltenregister entspricht einer verfügbaren Spalte. Das BIRA-Untersystem reagiert
auf hereinkommende Zellenadressen durch Schreiben jeder enthaltenen
Zeilenadresse in ein Zeilenregister, durch Schreiben jeder enthaltenen
Spaltenadresse in ein Spaltenregister und durch Schreiben von Verbindungsbits
in die Spaltenregister. Jedes Verbindungsbit verbindet die Zeilen-
und Spaltenregister, welche die Zeilen- und Spaltenadressen einer
defekten Zelle speichern. Die in diesen Registern gespeicherten
Zeilen- und Spaltenadressen kennzeichnen die Zeilen und Spalten
der Anordnung, für
die Ersatzzeilen und Spalten zugeordnet werden müssen.
-
Gemäss einem
weiteren Gesichtspunkt der Erfindung schreibt das BIRA-Untersystem
auch ein "Mehrfach-Zellenbit" in jedes Zeilenregister,
um anzuzeigen, wann die Zeilenadresse, die es speichert, mehr als
eine defekte Zelle enthält.
-
Gemäss einem
weiteren Gesichtspunkt der Erfindung schreibt das BIRA-Untersystem
auch ein "permanentes" Bit in ein Zei len-
oder Spaltenregister, um anzuzeigen, wann die Ersatzzeilen- oder
Ersatzspalten-Anordnung, die durch seine gespeicherte Zeilen- oder
Spaltenadresse angezeigt wird, permanent ist.
-
Gemäss einem
weiteren Gesichtspunkt der Erfindung enthält das BIRA-Untersystem eine
Steuerungsvorrichtung zum effizienten Zuordnen von Ersatzzeilen
und Spalten durch Manipulieren der in den Zeilen- und Spaltenregistern
gespeicherten Daten als Reaktion auf eine Sequenz von Adressen defekter
Zellen.
-
Der
Erfindung liegt somit die Aufgabe zugrunde, ein BIRA-Untersystem bereitzustellen,
das im wesentlichen die Zuordnung von Ersatzzeilen und Ersatzspalten
für einen
ASIC-Speicher auf
der Grundlage von BIST-Untersystem-Testergebnissen optimiert, ohne
gleichzeitig große
Mengen an Testergebnis-Daten, auf denen die Zuweisungs-Entscheidungen
aufgebaut werden sollen, speichern zu müssen.
-
Kurzbeschreibung
der Zeichnung
-
1 zeigt
ein Blockdiagramm für
eine anwendungsspezifische integrierte Schaltung (ASIC) mit einem
eingebetteten Direktzugriffsspeicher (RAM-Speicher) und einem eingebauten
Selbstreparatur-System (BISR) zum Testen und Reparieren des RAM-Speichers;
-
2 ist
eine Tabelle, die defekte Zellen in dem RAM-Speicher von 1 abbildet;
-
3 bis 7 sind
Diagramme, die defekte Zellen des RAM-Speichers von 1 abbilden,
wenn ein RAM-Speicher getestet wird, der wie in 2 abgebildete
defekte Zellen hat;
-
8 bis 31 sind
Tabellen, die den Inhalt von Registern darstellen, die zur Datenspeicherung durch
das BIRA-Untersystem
von 1 verwendet werden, wenn es den RAM-Speicher testet;
-
32 ist
eine weitere Tabelle, welche defekte Zellen in dem RAM-Speicher
von 1 abbildet;
-
33 bis 36 sind
Tabellen, die den Inhalt der Register darstellen, die zur Datenspeicherung durch
das BIRA-Untersystem
von 1 verwendet werden, wenn es einen RAM-Speicher testet,
der wie in 32 abgebildete defekte Zellen
hat;
-
37 veranschaulicht
das eingebaute Reparaturanalyse-Untersystem
(BIRA) des BISR-Systems von 1 in Form
eines ausführlicheren
Blockdiagramms;
-
38 veranschaulicht
in Form eines Blockdiagramms ein alternatives Ausführungsbeispiel
der ASIC von 1;
-
39 veranschaulicht
das BIRA-Untersystem des BISR-Systems von 39 in
Form eines ausführlicheren
Blockdiagramms; und
-
40 ist
ein Zustandsmodell, das den Betrieb der Zustandsmaschine der BIRA-Untersysteme
von 37 und 39 veranschaulicht.
-
Beschreibung
bevorzugter Ausführungsbeispiele
-
BISR-System-Architektur
-
1 veranschaulicht
in Form eines Blockdiagramms eine anwendungsspezifische integrierte
Schaltung (ASIC) 10, die ei nen eingebetteten Direktzugriffspeicher
(RAM) 12 sowie weitere ASIC-Schaltungen 14 enthält. Während des
normalen ASIC-Betriebs
führen
die ASIC-Schaltungen 14 ebenfalls Lese- und Schreib-Zugriffe
auf den RAM-Speicher 12 aus und kommunizieren mit externen
Vorrichtungen über
die Eingabe-/Ausgabe-Anschlüsse (I/O) 16 der
ASIC. Da die Daten-, die Adress- und die Steuerungsanschlüsse 32 des
RAM-Speichers 12 für
externe Testgeräte über die
Eingabe-/Ausgabe-Anschlüsse 16 der
ASIC nicht direkt zugänglich
sind, ist ein eingebautes Selbstreparatur-System (BISR) 18 gemäss der Erfindung
in der ASIC 10 eingebaut, um den RAM-Speicher 12 zu
testen und zu reparieren.
-
Die
ASIC-Schaltungen 14 führen
normalerweise Lese- und Schreib-Zugriffe auf den Adress-, den Steuerungs-
und den Datenanschluss des RAM-Speichers 12 über eine
Gruppe von Multiplexern 20–22 durch, die in
dem BISR-Untersystem 18 enthalten sind. Wenn jedoch das
BISR-System 18 einen RAM-Speicher 12 testen soll
(z.B. beim Hochfahren der Systemleistung), schaltet ein eingebautes
Selbsttest-Untersystem (BIST) 24 des BISR-Untersystems 18 die
Multiplexer 20–22,
um das BIST-Untersystem 24 anstatt
die ASIC-Schaltungen 14 mit dem RAM-Speicher 12 zu verbinden. Während des
Tests schreibt das BIST-Untersystem 24 Daten in jede Adresse
des RAM-Speichers 12, liest die Daten bei der Adresse wieder
aus und vergleicht die in die Adressen geschriebenen Daten mit den
ausgelesenen Daten, um zu bestimmen, ob sie übereinstimmen. Wenn die Eingabe-
und Ausgabedaten des RAM-Speichers nicht übereinstimmen, übersendet
das BIST-Untersystem 24 ein Fehlersignal ERROR, um einem
eingebauten Reparaturanalyse-Untersystem (BIRA) 26 mitzuteilen,
dass die aktuelle Speicheradresse defekt ist. Das BIRA-Untersystem 26 akquiriert
dann die aktuellen Eingabeadressen des RAM-Speichers 12 und
verarbeitet sie, um Konfigurationsdaten CONFIG zu erzeugen, die
dem RAM-Speicher 12 mitteilen,
wie er sich rekonfigurieren soll, um die defekte Zelle zu reparieren.
Nach dem Testen aller Adressen des RAM-Speichers 12 und
dem Signalisieren an das BIRA-Untersystem,
dass es alle defekten Adressen akquirieren soll, versendet das BIST-Untersystem 24 ein
Reparatursignal REPAIR an den RAM-Speicher 12, um ihm mitzuteilen,
dass er sich in Übereinstimmung
mit den CONFIG-Daten von dem BIRA-Untersystem 26 reparieren
soll.
-
Der
RAM-Speicher 12 enthält
eine Anordnung 28 aus Zeilen und Spalten von Speicherzellen,
die jeweils einer gesonderten Speicheradresse entsprechen und die
ein oder mehrere Datenbits je nach der Wortlänge des Speichers speichern.
Eine gesonderte Zeilen-Freigabeleitung 30 verbindet jede
Zeile der Speicherzellen innerhalb der Anordnung 28 mit
einem Zeilenadressen-Decodierer 33, während eine gesonderte Spalten-Freigabeleitung 33 jede
Spalte der Speicherzellen mit einem Spaltenadressen-Decodierer 34 verbindet. Die
Adresseneingabe (ADDRESS) in den RAM-Speicher 12 identifiziert
die Zeile und die Spalte einer speziellen Zelle, auf die ein Lese-
oder Schreibzugriff erfolgen soll. Der Zeilenadressen-Decodierer 32 decodiert
einen Zeilenadressen-Abschnitt von ADDRESS, um eine Zeilenadressen-Leitung 30 der
die adressierte Zelle enthaltenden Zeile der Anordnung 28 zu
bestätigen.
Auf ähnliche
Weise decodiert der Spaltenadressen-Decodierer 34 einen
Spaltenadressen-Abschnitt von ADDRESS, um die Spaltenadressen-Leitung 33 der
Spalte der adressierten Zelle zu bestätigen. Die bestätigte Zeilenadressen-
und Spaltenadressen-Leitung teilt einer Adressenzelle mit, RAM-Daten
zu speichern oder auszulesen je nach dem, ob Steuerungssignal-Eingaben (CONT)
in den RAM-Speicher 12 von dem BIST-Untersystem 24 oder
den ASIC-Schaltungen 14 über den Multiplexer 21 einen
Schreib- oder Lesezugriff
spezifizieren.
-
Der
RAM-Speicher 12 ist mit einer oder mehreren Ersatzzeilen 36 und
einer oder mehreren Ersatzspalten 38 ausgestattet. Wenn
das BIST-Untersystem 24 das Reparatursignal REPAIR an den
RAM-Speicher 12 übersendet,
wodurch angezeigt wird, dass der Test abgeschlossen ist, rekonfiguriert
sich der RAM-Speicher 12 in Übereinstimmung
mit den Konfigurationsdaten CONFIG von dem BIRA-Untersystem 26,
um Zeilen und Spalten, die defekte Zellen enthalten, durch Ersatzzeilen
und Ersatzspalten 38 "auszutauschen". Die Konfigurationsdaten
CONFIG verändern
die Art und Weise, in der die Spaltenadressen-Decodierer 32 und 34 die hereinkommenden
Adressen ADDRESS decodieren, so dass sie die Zeilenadressen oder
Spaltenadressen-Leitung 30 oder 33 einer Ersatzzeile
oder Spalte bestätigen,
wenn sie ansonsten die Zeilenadressen- oder Spaltenadressen-Leitung 30 oder 33 einer
defekten Zeile oder Spalte bestätigt
hätten.
Während
des normalen Betriebs der ASIC 10 gewährleisten die Decodierer 32 und 34,
dass die ASIC-Schaltungen 14 einen
Lese- oder Schreibzugriff auf eine Zelle einer Ersatzzeile 36 oder
Spalte 38 immer dann durchführen, wenn sie ansonsten auf
eine Zelle der Zeile oder der Spalte der defekten Zelle zugegriffen
hätte.
-
Die
vorliegende Erfindung bezieht sich insbesondere auf ein BIRA-Untersystem 26,
das Ersatzzeilen 36 und Ersatzspalten 38 zuordnet,
um Zeilen und Spalten einer defekten Anordnung 28 auszutauschen.
Wie weiter unten besprochen wird, verarbeitet das BIRA-Untersystem 26 die
Adressendaten ADDRESS, die auf alle defekten Zellen zeigen, derart,
dass ihm ermöglicht
wird, Ersatzzeilen 36 und Ersatzspalten 38 effizient zuzuordnen,
wenn defekte Speicherzellen ausgetauscht werden, ohne eine große Menge
an Daten zu speichern und ohne eine große, komplizierte Datenverarbeitungs-Schaltung
zu verwenden.
-
Fehlerdaten-Verarbeitung
-
Obwohl
eingebettete Speicher typischerweise eine grosse Anzahl von Zeilen
und Spalten haben, nehmen wir aus Gründen der Einfachheit beim Erklären des
Datenverarbeitungs-Betriebs des BIRA-Untersystems 26 in
der nun folgenden Diskussion an, dass die Speicherzellen-Anordnung 28 von 1 nur
acht Zeilen und vier Spalten aus Speicherzellen hat, und dass der
RAM-Speicher 12 drei
Ersatzzeilen 36 und zwei Ersatzspalten 38 hat.
Der Fachmann versteht jedoch, dass die diskutierten Prinzipien für Zellenanordnungen
beliebiger Größe und beliebiger
Anzahl von Ersatzzeilen und Ersatzspalten gelten.
-
2 zeigt
eine Tabelle 60, welche die defekten Zellen in einer 8×8-Speicheranordnung
in einem Beispiel des "schlimmsten
Falls" darstellt,
bei dem 14 Zellen der Anordnung defekt sind. Die Tabelle 60 listet
die Speicher-Spaltennummer
Y1-Y4 horizontal und listet eine Speicher-Zeilennummer X1-X8 vertikal. Ein Tabelleneintrag
an der Schnittstelle jeder Zeile X und Spalte Y enthält eine
logische "1", wenn die Zelle
an der entsprechenden Spaltenanordnungs-Zeile und -Spalte defekt
ist, und eine logische "0", wenn die Zelle
nicht defekt ist. Wir können
durch Inspektion der Tabelle 60 sehen, dass, wenn wir drei
Ersatzzeilen und zwei Ersatzspalten haben, wir den RAM-Speicher 12 reparieren
können,
indem wir die Zeilen X2, X3 und X8 durch die drei Ersatzzeilen ersetzen
und indem wir die Spalten Y2 und Y3 durch die zwei Ersatzspalten
ersetzen.
-
Bei
Ersatzzeilen/Ersatzspalten-Austauschsystemen des Stands der Technik
werden die Adressen defekter Zellen zu einem von der IC externen
Rekonfigurations-Analyse-Gerät
gesendet. Derartige Systeme können
z.B. die Sequenz der Adressen fehlerhafter Speicherzellen verarbeiten,
um eine Bitkarte ähnlich
der von Tabelle 60 von 2 zu entwickeln.
Am Ende des Tests bewertet ein derartiges System die Bitkarte, um
einen geeigneten Weg zu finden, um Ersatzzeilen und Ersatzspalten
zuzuordnen, um zu gewährleisten,
dass es jede defekte Speicherzelle austauscht. Ein derartiges bitkarten-basiertes
Rekonfigurations-Analyse-System wird problematisch, wenn wir versuchen,
es als BIRA-Untersystem zu implementieren, das innerhalb der IC 10 selbst
eingebettet ist, da es eine relativ große eingebettete Speicheranordnung
benötigen
würde,
um lediglich die Bitkarte zu speichern, die ihrerseits eine wesentliche
Quelle von ASIC-Defekten wäre.
Wie weiter unten erklärt
wird, führt
das BIRA-Untersystem 26 eine Organisation und Verarbeitung
der Fehlerinformation auf eine andere Art und Weise durch, die ihm
ermöglicht,
den Bedarf großer
Mengen an Speicher oder komplizierten Datenverarbeitungs-Schaltungen
zu verhindern. Bevor diskutiert wird, wie das BIRA-Untersystem 26 arbeitet, ist
es hilfreich, zunächst
eine andere Art und Weise der Organisation der durch die Tabelle 60 von 2 dargestellten
Information zu diskutieren.
-
3 ist
ein Diagramm, das dieselbe Fehlerinformation darstellt, die auch
in Tabelle 60 von 2 dargeboten
wird. Jede Zeilenadresse X1-X8 ist in 3 durch
einen entsprechenden Zeilen-"Scheitel" R1-R8 dargestellt,
und jede Spaltenadresse Y1-Y4 ist durch einen entsprechenden Spalten"Scheitel" C1-C4 des Diagramms
dargestellt. Eine Gruppe von "Verbindungen" 64 verbindet
verschiedene R- und C-Scheitel, um defekte Speicherzellen anzuzeigen.
Hier wird z.B. eine defekte Zelle bei der Adresse (X1,Y2) durch
eine Verbindung 64 dargestellt, die sich von dem Scheitel
R1 zu C2 erstreckt. Um Fehlerinformation in der in 3 dargestellten
Weise zu speichern, könnte
das BIRA-Untersystem 26 ein gesondertes Register verwenden,
das jedem Scheitel R1-R8 und C1-C4 zugeordnet ist, welche Referenzen
auf alle Scheitel enthalten, mit denen der zugeordnete Scheitel über eine
Verbindung 64 verbunden ist. So würde z.B. der Inhalt eines internen
BIRA-Registers,
das dem Scheitel R3 zugeordnet ist, auf die Scheitel C2 und C4 zeigen.
Oder als anderes Beispiel würde
der Inhalt eines dem Scheitel C4 zugeordneten Registers auf die
Scheitel R2, R3 und R8 zeigen. Allerdings würde ein derartiges System,
das bidirektionale Verbindungen verwendet, redundante Information
enthalten. Wenn wir z.B. Daten in einem Register bereitstellen,
das dem Scheitel C2 zugeordnet ist, der auf die Scheitel R1-R4 zeigt,
müssen
wir keine Daten in Registern speichern, die den Scheiteln R1-R4
zugeordnet sind, die zu dem Scheitel C2 zurückzeigen, weil die Information
redundant ist. Wenn umgekehrt das dem Scheitel R8 zugeordnete Register
auf die Scheitel C4 und C3 zeigt, müssen wir keine Verbindungen
zurück
zu dem Scheitel R8 speichern. Somit können wir einige der Datenspeicherungs-Anforderungen
eliminieren, indem wir die Verbindungen unidirektional machen.
-
4 ist
eine abgewandelte Version des Diagramms von 3, bei der
Verbindungen des Diagramms von 3 unidirektional
gemacht sind. Man beachte, dass, da die den Scheiteln R1, R4, R7,
C1 und C4 von 4 zugeordneten Register nirgendwohin
zeigen, das BIRA-Untersystem 26 keine Register haben muss,
um diesen Scheiteln zugeordnete Verbindungen zu speichern. 5 ist
eine abgewandelte Version des Diagramms von 4, bei der
die Scheitel, die nirgendwohin zeigen, eliminiert worden sind. Somit
sehen wird, dass anstelle der Notwendigkeit, Register für acht Zeilen-
und vier Spalten-Scheitel
bereitzustellen, das BIRA-Untersystem 26 nur Regis ter für drei Zeilen-
und zwei Spalten-Scheitel bereitstellen muss. Dies stimmt mit der
Anzahl der verfügbaren
Ersatzzeilen und Ersatzspalten sowie mit der Anzahl der Zeilen und
Spalten überein,
die in dem Beispiel des "schlimmsten
Falls" eines Musters
defekter Zellen von 2 ersetzt werden müssen. Deshalb
muss das BIRA-Untersystem 26 nur ein internes Datenregister
für jede
Ersatzspalte und ein Datenregister für jede Ersatzzeile enthalten.
Wenn der Test der Speicherzellen-Anordnung 28 von 1 fortschreitet,
ordnet das BIRA-Untersystem 26 jedes
Register einer Zeile oder Spalte zu, die eine oder mehrere defekte
Zellen enthält,
indem die Zeilen- oder
Spaltenadresse in ein Zeilen- oder Spalten-Zuordnungsfeld in dem
Register geschrieben wird.
-
6 veranschaulicht
einen Satz Register, welche die Karte von 5 implementieren
könnten.
Jedes Register einer Gruppe von drei "Zeilen"-Registern RA-RC (jeweils eines, das
jeweils einer der drei Ersatzzeilen entspricht) enthält Felder
zum Speichern der speziellen Zeilenadresse (X1-X8) einer Zeile,
der die entsprechende Ersatzzeile zugeordnet werden kann. Jedes
Register einer Gruppe von zwei "Spalten"-Registern CA und
CB (jeweils eines, das jeweils einer der beiden Ersatzspalten entspricht)
enthält
Felder zum Speichern der speziellen Spaltenadresse (Y1-Y4) einer
Spalte, der die entsprechende Ersatzspalte zugeordnet werden kann.
Jedes Register RA-RC, CA und CB enthält auch Felder zum Speichern
von Verbindungen, die zu anderen Registern zeigen, die den Verbindungen
zwischen den Scheiteln von 5 entsprechen.
Man beachte jedoch, dass in 6 einige
Verbindungen zu Scheiteln zeigen (C1, C4, R1 und R4-R7), für die es
kein entsprechendes Register gibt. 7 ist ein
Diagramm, das gebildet wurde durch Entfernen aller Verbindungen
aus den Zeilenregistern RA-RC und durch Entfernen aller Verbindungen
aus den Spaltenregis tern CA-CB, die auf einen Zeilenscheitel zeigen,
für den
es kein entsprechendes Register gibt.
-
Die
Register RA-RC, CA und CB innerhalb des BIRA-Untersystems 26 speichern
die Information, die in dem Diagramm von 7 dargestellt
ist, zusammen mit anderer Information, wie weiter unten besprochen wird.
Man beachte, dass, da wir einige Verbindungen aus dem Diagramm von 6 entfernt
haben, als wird das Diagramm von 7 erzeugten,
das Diagramm von 7 keine der Fehlerinformation
enthält,
die in den Diagrammen von 3-6 oder
in der Bitkarte von 2 enthalten ist. Somit speichert
das BIRA-Untersystem 26 am Ende des Tests nicht die gesamte Information,
die notwendig ist, um zu bestimmen, welche speziellen Zellen der
Speicheranordnung 28 defekt sind. Allerdings besteht der
Zweck des BIRA-Untersystems 26 nicht notwendigerweise darin,
Information zu speichern, die anzeigt, welche speziellen Speicherzellen
versagt haben, sondern um Information zu speichern, die anzeigt,
welche speziellen Zeilen und Spalten durch Ersatzzeilen und Ersatzspalten
ausgetauscht werden müssen.
Ein Registersystem zum Implementieren des Diagramms von 7 würde korrekt
anzeigen, dass die Zeilen X2, X3 und X8 und die Spalten Y2 und Y3
durch Ersatzzeilen und Ersatzspalten ersetzt werden müssen. Das
BIRA-Untersystem 26 lädt
zweckmäßigerweise Daten
in die Register RA-RC, CA und CB, wenn es die hereinkommenden Adressen
der defekten Speicherzellen verarbeitet, und zwar auf eine Art und
Weise, die es ermöglicht,
das Diagramm von 7 zu implementieren. Die dem
RAM-Speicher 12 am Ende des Tests zugeführten Konfigurationsdaten CONFIG
beruhen auf den Zeilen- und Spaltenadressen X2, X3, X8, Y2 und Y3,
die in den Registern RA-RC, CA und CB am Ende des Tests erscheinen.
Obwohl während
des Verlaufs eines Tests das BIRA-Untersystem 25 einen
Teil der die Adressen defekter Zellen betreffenden In formation verwerfen
kann, wie weiter unten erklärt
wird, beeinträchtigt der
Verlust derartiger Information kaum die Effizienz, mit der es Ersatzzeilen
und Ersatzspalten beim Reparieren des RAM-Speichers 12 zuordnet.
-
8 und 9 sind
Tabellen, die den Inhalt eines Paares von "X"-
und "Y"-Registerdateien
zeigt, die das BIRA-Untersystem 26 verwendet, um Information
während
des Tests zu speichern, der das Diagramm von 7 implementiert.
Die X-Registerdatei von 8 enthält drei Zeilenregister RA-RC,
während
die Y-Registerdatei von 9 die beiden Spaltenregister
CA und CB enthält.
Jedes Zeilenregister RA-RC in der X-Registerdatei enthält ein Feld
XADDR zum Speichern der Zeilenadresse der defekten Zeile, und jedes
Spaltenregister CA und CB enthält
ein Feld YADDR zum Speichern einer Spaltenadresse einer defekten
Spalte. Jedes Spaltenregister CA, CB enthält auch eine Gruppe aus drei "Verbindungs"-Bits LA-LC (von
denen jedes einem gesonderten Zeilenregister RA-RC entspricht zum
Implementieren der Verbindungen von 7. jedes
Verbindungsbit LA-LC kann auf logisch "1" eingestellt
werden, um als Verbindung zu dem entsprechenden Register der Register
RA-RB zu wirken.
-
Wenn
im Verlaufe eines Tests das BIRA-Untersystem 26 hereinkommende
Fehlerdaten verarbeitet, kann es jedes Register RA-RC, CA oder CB einem
Zeilen- oder Spaltenregister "zuordnen", indem es eine Zeilen-
oder Spaltenadresse in sein Feld XADDR oder YADDR schreibt. Am Ende
des Tests kennzeichnen die in den Registern gespeicherten Zeilen-
und Spaltenadressen die durch die verfügbaren Ersatzzeilen und Ersatzspalten
zu ersetzenden Zeilen und Spalten. Im Verlaufe eines Tests behandelt
das BIRA-Untersystem 26 anfänglich jede Zeilenregister- oder Spaltenregister-Zuordnung
als temporär
und kann eine Zeilen- oder Spaltenzuordnung verändern, um die Ersatzzeilen- oder Ersatzspalten-Zuordnungeffizienz
zu verbessern, wenn es weiterhin Adressen von defekten Zellen empfängt und
verarbeitet. Zusätzlich
zu den XADDR-, den YADDR und den LA-LC-Daten, die zum Implementieren
des Diagramms von 2 notwendig sind, enthalten
die Zeilen- und Spaltenregister RA-RC, CA und CB auch einige zusätzliche
(XP, XM und YP), um das BIRA-Untersystem 26 dabei
zu unterstützen,
wenn es bestimmt, wie verschiedene Register den Zeilen und Spalten
zugeordnet oder erneut zugeordnet werden. Das BIRA-Untersystem 26 setzt
ein "Permanent-Zeilen"-Bit XP, das in jedem
Zeilenregister RA-RC gespeichert ist, oder ein "Permanent-Spalten"-Bit YP, das in jedem Spaltenregister
CA, CB gespeichert ist, auf "1", um anzuzeigen,
dass die aktuelle Zeilen- oder Spaltenzuordnung des Registers permanent
sein soll und anschließend
nicht verändert
werden soll. Das BIRA-Untersystem 26 setzt ein "Mehrfach-Zellen"-Bit XM in jeder
X-Registerdatei RA-RC, um anzuzeigen, ob mehr als eine Zelle ihrer
zugeordneten Zeile defekt ist.
-
Zum
Speichern von Information, die es zum effizienten Zuordnen von Ersatzzeilen
und Ersatzspalten benötigt,
braucht das BIRA-Untersystem 26 deshalb nur ein X-Register
für jede
Ersatzzeile und ein Y-Register für
jede Ersatzspalte, und jedes Register muss nur relativ wenige Bits
speichern, wie man in 8 und 9 sehen
kann. Die folgende Diskussion veranschaulicht den Prozess, durch
den das BIRA-Untersystem 26 Daten in die X- und Y-Registerdateien
schreibt, wenn es hereinkommende Adressdaten ADDRESS als Reaktion auf
eine Sequenz von Adressen fehlerhafter Speicherzellen empfängt. Die
Diskussion nimmt an, dass die Speicherzellen-Anordnung 28 von 1 das
Muster fehlerhafter Zellen des "schlimmsten
Falls" enthält, das durch
die Tabelle von 2 dargestellt ist.
-
10 und 11 zeigen
den Inhalt der X- und Y-Registerdateien vor dem Starten des Speichertests. Beim
Hochfahren der Leistung des Systems führt das BIBA-Untersystem 26 als
Reaktion auf das Rücksetzsignal
RESET von dem BIST-Untersystem 24 eine Initialisierung
der in den X- und Y-Registerdateien gespeicherten XADDR- und YADDR-Datenfelder
auf einen Null-Wert durch, der zu keiner Zeile oder Spalte zeigt,
sowie eine Initialisierung jedes zweiten Bits in diesen Registern
auf eine logische "0". Das BIST-Untersystem 24 von 1 testet
dann die Speicherzellen-Anordnung 28 Zeile für Zeile
in der Reihenfolge der zunehmenden Zeilenadressen X1-X8, wobei Zellen
innerhalb jeder Zeile in der Reihenfolge zunehmender Spaltenadressen Y1-Y4
getestet werden, bevor es zu der nächsten Zeile fortschreitet.
Somit testet das BIST-Untersystem 24 zuerst die Zelle (X1,
Y1). Und wie wir durch Inspektion des in 2 dargestellten
Fehlermusters sehen können,
erkennt das BIST-Untersystem 24,
dass die Zelle richtig arbeitet. Da die nächste getestete Zelle (X1,
Y2) defekt ist, überträgt das BIST-Untersystem 24 ein
Fehlersignal ERROR in dem BIST-Untersystem 26.
-
12 und 13 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf die aktuelle Adressenwert-Ausgabe ADDRESS (X1,
Y2) des BIST-Untersystems 24 abändert, wenn
es den ersten Fehlersignal-Impuls
ERROR empfängt.
Das BIST-Untersystem 26 ordnet das Register RA der X1-Zeile
zu, indem die Adresse der Zeile X1 in das XADDR-Feld des Registers
RA geschrieben wird, und ordnet das Register CA der Y2-Spalte zu,
indem die Y2-Spaltenadresse in sein YADDR-Feld geschrieben wird,
und setzt das Verbindungsbit LA in dem Register CA auf 1, um anzuzeigen,
dass die Zelle bei den Zeilen- und Spaltenadressen, auf die durch
den Inhalt von CA und RA hingewiesen wird, versagt hat. Das BIST- Untersystem 24 testet
daraufhin die verbleibenden Zellen (X1, Y3) und (X1, Y4) der Zeile
X1. Da es keine dieser Zellen als defekt befindet, sendet es keine
Fehlersignal-Impulse ERROR zu dem BIRA-Untersystem 26,
und das BIRA-Untersystem 26 wird nicht tätig. Nach
dem Testen der Zeile X1 schreitet das BIST-Untersystem 24 zu der Zeile
X2 fort, erkennt, dass die erste Zelle (X2, Y1) dieser Zeile defekt
ist, und pulsiert deshalb erneut die Fehlersignal-Eingabe ERROR
zu dem BIRA-Untersystem 26.
-
14 und 15 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf die aktuelle Adressenwert-Ausgabe ADDRESS (X2,
Y1) des BIST-Untersystems 24 setzt,
wenn es den Fehlersignal-Impuls ERROR empfängt. Da die Register RA und
CA schon in Betrieb sind, ordnet das BIST-Untersystem 26 das
Register RB der Zeile X2 zu, indem die Adresse X2 in das XADDR-Feld
des Registers RB geschrieben wird, und ordnet das Register CB der
Y1-Spalte zu, indem die Y1-Adresse in sein YADDR-Feld geschrieben
wird, und setzt das Verbindungsbit LB in dem Register CB auf 1,
um anzuzeigen, dass die Zelle bei der Zeilen- und Spaltenadresse,
auf die durch den Inhalt von CB und RB hingewiesen wurde, versagt
hat.
-
16 und 17 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf den hereinkommenden Adressenwert ADDRESS (X2, Y2)
der als nächstes
erfassten defekten Zelle setzt. Da die Register RB und CA schon
der Zeile und der Spalte dieser Zelle zugeordnet sind, setzt das
BIST-Untersystem 26 einfach das XM-Bit von RB auf "1", um anzuzeigen, dass es mehr als eine defekte
Zelle in der Zeile X2 gibt, und setzt das LB-Bit des Registers CA
auf "1", um anzuzeigen,
dass die Zelle, auf die durch die Register RB und CA hingewiesen
wird, defekt ist.
-
18 und 19 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf die hereinkommende Adresse ADDRESS (X2, Y3) der
nächsten
erfassten defekten Zelle setzt. Da beide Y-Register CA und CB schon
den Zeilen Y2 und Y1 zugeordnet worden sind, kann das BIRA-Untersystem 26 kein
weiteres Y-Register der Spalte Y3 zuordnen. Da jedoch die defekte
Zelle (X2, Y3) in der Zeile X2 ist, die schon dem Register RB zugeordnet
worden ist, muss das BIRA-Untersystem 26, wenn es gewährleistet,
dass die Zeile X2 ersetzt wird, keine Spalte Y3 ersetzen und muss
deshalb kein Spaltenregister der Spalte Y3 zuordnen. Somit setzt
das BIRA-Untersystem 26 das XP-Bit in dem Register RB auf "1", um anzuzeigen, dass das Register der
Zeile X2 permanent zugeordnet werden soll. Das XP-Bit errinnert
das BIRA-Untersystem daran, dass es danach kein Register RB einer
weiteren Zeile erneut zuordnen kann. Somit ist am Ende des Tests
sicher, dass der RAM-Speicher 12 die Zeile X2 durch eine
Ersatzzeile ersetzt. Bis zu diesem Punkt war das Spaltenregister
CB der Spalte Y1 zugeordnet und zeigte an, dass nur die Zelle (X2,
Y1) davon defekt ist. Da das BIRA-Untersystem 26 inzwischen
bestimmt hat, dass die Zeile X2 ausgetauscht werden soll, ist es
nicht notwendig, die Spalte Y1 durch eine Ersatzspalte auszutauschen,
um die Zelle bei der Adresse (X2, Y1) zu ersetzen. Die in dem Spaltenregister
CB gespeicherte Information wird daher nicht mehr benötigt, und
das BIRA-Untersystem 26 führt eine Rücksetzung des YADDR-Feldes
in dem Register CB auf Null durch mit einer Rücksetzung des LB-Bits auf "0". Dies ermöglicht, dass das Spaltenregister
CB später
einer anderen Spalte erneut zugeordnet werden kann. Die nächste erfasste
fehlerhafte Zelle befindet sich bei der Adresse (X2, Y4), doch führt das
BIRA-Untersystem 26 an dem Registerinhalt keine Änderung
durch, da es schon entschieden hat, die Zeile X2 durch eine Ersatzzeile
zu ersetzen.
-
20 und 21 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf den hereinkommenden Adressenwert ADDRESS (X3, Y2)
der nächsten
erfassten defekten Zelle setzt. Das BIRA-Untersystem 26 ordnet
das Zeilenregister RC der Zeile X3 zu und setzt das Verbindungsbit
LC in dem Spaltenregister CA, um anzuzeigen, dass die Zelle, auf
die durch die Register RB und CA hingewiesen wird, defekt ist.
-
22 und 23 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf den hereinkommenden Adressenwert ADDRESS (X3, Y4)
der nächsten
erfassten defekten Zelle setzt. Das BIRA-Untersystem 26 ordnet
das Register CB der Spalte Y4 zu, setzt das LC-Bit auf "1", um anzuzeigen, dass die Zelle, auf
die durch die Register RC und CB hingewiesen wird, defekt ist, und setzt
das XM-Bit des Registers
RC auf "1", um anzuzeigen,
dass die Zeile X3 mehr als eine defekte Zelle hat.
-
24 und 25 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf den Adressenwert ADDRESS (X4, Y2) der nächsten erfassten
defekten Zelle setzt. Da alle Zeilenregister RA-RC zugeordnet wurden,
macht das BIRA-Untersystem 26 die Zuordnung des Registers
CA permanent, indem es sein YP-Bit auf "1" setzt.
Das BIRA-Untersystem 26 führt auch
eine Rücksetzung jedes
der Verbindungsbits LA-LC des Registers CA auf eine logische "0" durch. Da der garantierte Austausch der
Spalte Y2 bedeutet, dass die einzige erfasste fehlerhafte Zelle
(X1, Y2) in der Zeile X1 ersetzt wird, führt das BIRA-Untersystem 26 eine
Rücksetzung
des Registers RA durch, so dass es später erneut zugeordnet werden
kann. Da das Austauschen der Zeilen X2 und X3 gewährleistet
ist, führt
das BIRA-Untersystem 26 auch eine Rücksetzung des Registers CB
durch, wie dies in 25 gezeigt ist, weil die soweit
erfassten fehlerhaften Zellen in der Spalte Y4 sich in den Zeilen
X2 und X3 befinden.
-
26 und 27 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf den Adressenwert ADDRESS (X5, Y3) der nächsten erfassten
defekten Zelle setzt. Das Register RA wird der Zeile X5 zugeordnet,
und das Register CB wird der Spalte Y3 zugeordnet.
-
28 und 29 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf den Adressenwert ADDRESS (X6, Y3) der nächsten defekten
Zelle setzt. Da alle Zeilenregister RA-RC zugeordnet worden sind,
macht das BIRA-Untersystem 26 die Zuordnung des Registers Y3
permanent, indem es sein Bit YP auf "1" einstellt
und sämtliche
Bits LA-LC auf logisch "0" rücksetzt.
Da ein garantierter Austausch der Spalte Y3 bedeutet, dass die fehlerhafte
Zelle (X5, Y3) in der Zeile X5 ausgetauscht wird, führt das
BIRA-Untersystem 26 erneut
eine Rücksetzung
des Registers RA durch, um es für
eine erneute Zuordnung verfügbar
zu machen. Da das Austauschen der Zeilen X2 und X3 gewährleistet
ist, führt
das BIRA-Untersystem 26 auch eine Rücksetzung des Registers CB
durch, wie dies in 25 gezeigt ist, wobei die bis
dahin erfassten fehlerhaften Zellen in der Spalte Y4 in der einen
oder der anderen der Zeilen X2 und X3 sind. Da die nächsten beiden
erfassten fehlerhaften Zellen bei den Adressen (X7, Y3) und (X8,
Y3) in einer Zeile Y3 sind, deren Austausch garantiert ist, zeichnet
das BIRA-Untersystem 26 keine Information auf .
-
30 und 31 veranschaulichen,
wie das BIRA-Untersystem 26 den Inhalt der X- und Y-Registerdateien
als Reaktion auf den Adressenwert ADDRESS (X8, Y4) der zunächst gefundenen
defekten Zelle setzt. Das BIRA-Untersystem 28 ordnet das
Register RA der Zeile X8 zu, und da es mehr als zwei verfügbare Spaltenregister
gibt, die der Spalte Y4 zugeordnet werden sollen, setzt die BIRA-Schaltung 26 das
Bit XP des Registers RA auf "1", um die Zuordnung
permanent zu machen.
-
Bei
diesem Punkt sendet das BIST-Untersystem 24 von 1 den
Reparatursignal-Impuls REPAIR zu dem RAM-Speicher 12 von 1,
um ihm anzuzeigen, die defekten Zeilen und Spalten in Übereinstimmung mit
der aktuellen Konfigurationsdaten-Ausgabe CONFIG des BIRA-Untersystems 26 zu
ersetzen. Diese CONFIG-Daten
werden durch den aktuellen XADDR- und YADDR-Inhalt der X- und Y-Registerdateien
gebildet. Der RAM-Speicher 12 konfiguriert sich somit,
um die Zeilen X8, X2 und X3, die den Registerdateien RA-RC zugeordnet
sind, durch Ersatzzeilen zu ersetzen und die Spalten Y2 und Y3,
die den Registern CA und CB zugeordnet sind, durch Ersatzspalten
zu ersetzen.
-
Wenn
zu irgendeiner Zeit während
des Testvorgangs das BIRA-Untersystem 26 herausfindet,
dass es nicht in der Lage ist, einen erfassten Zellenfehler bei
einer X- oder Y-Adresse zu lösen,
sendet es einen Ausgabe-Signalimpuls "FALL" an
das BIST-Untersystem 24, um anzuzeigen, dass der RAM-Speicher 12 eine
nicht ausreichende Anzahl von Ersatzzeilen oder Ersatzspalten hat,
um das Fehlermuster zu korrigieren. Das BIST-Untersystem 24 beendet dann
den Test und leitet das FAIL-Signal
an den ASIC-Ausgangsanschluss 40 weiter, um anzuzeigen,
dass der RAM-Speicher 12 defekt ist.
-
In
dem obigen Beispiel haben wir beschrieben, wie das BIRA-System 26 mit
dem beispielhaften Bitfehler-Muster umgeht, das in 2 beschrieben
wurde. Eine durch das Beispiel nicht abdeckte Situation tritt auf,
wenn alle X- und Y-Registerdateien RA-RC und CA-CB voll sind und
das BIRA-System 26 bei neuen Zeilen- und Spaltenadressen
auf einen Fehler trifft. Um zu veranschaulichen, wie das BIRA-System 26 mit
dieser Situation umgeht, verwenden wir ein weiteres Beispiel einer
RAM-Fehler-Bitkarte.
-
32 ist
eine Fehler-Bitkarte eines 5×5-RAM-Speichers,
bei der aller Fehler (Einsen) entlang einer Hauptdiagonalen auftreten.
Wenn der RAM-Speicher Zeile für
Zeile getestet wird, sind die ersten Fehler, auf die das BIRA-System 26 trifft,
bei den Adressen (X1, Y1), (X2, Y2) und (X3, Y3). Im Einklang mit
den oben diskutierten Regeln erscheint der resultierende X- und
Y-Registerinhalt wie in 33 und 34 dargestellt. Wenn
der nächste
Fehler bei (X4, Y4) angetroffen wird, sind sämtliche X-Register- und Y-Registerdateien RA-RC
und CA-CB in Betrieb, und weder die aktuelle Zeilenadresse X4 noch
die aktuelle Y-Adresse Y4 wurde zuvor aufgezeichnet. Das BIRA-System 26 reagiert
auf die hereinkommende Adresse durch Speichern des hereinkommenden
Adressenwerts Y4 in der Y-Registerdatei CA oder CB oder dem niedrigsten
Grad (das heisst die LA-LC-Gruppe mit den wenigsten Bits) und macht
diese Zuordnung permanent (YP = 1). Wir machen auch jedes Zeilenregister
RA-RC permanent (XP = 1), das mit der Spaltenadresse verbunden ist,
die in dem Spaltenregister formal gespeichert wird. Die Registerwerte,
die sich ergeben, nachdem das BIRA-System 26 die Fehler
bei den Adressen (X4, Y4) und (X5, Y5) verarbeitet hat, sind in 35 und 36 dargestellt.
-
BIRA-Schaltung-Architektur
-
37 veranschaulicht
ein BIRA-Untersystem 26 von 1 in Form
eines ausführlicheren
Blockdiagramms. Das BIRA-Untersystem 26 empfängt eine
Adresse ADDRESS einschliesslich der Zeilenadresse XADDR und der
Spaltenadresse YADDR einer defekten Zelle als Reaktion auf jeden
Fehlersignal-Impuls ERROR. Das BIRA-Untersystem 26 enthält eine
Zustandsmaschine 40 zum Steuern einer Y-Registerdatei 44,
die das Register CA und CB enthält,
und zum Steuern einer X-Registerdatei 42, die die Register
RA-RC enthält. Die
Zustandsmaschine 40 kann der X-Registerdatei 42 signalisieren,
entweder einen NULL-Wert oder ein hereinkommendes XADDR-Feld in
eines der Register RA-RC zu speichern, und kann der Y-Registerdatei 44 signalisieren,
entweder einen NULL-Wert oder ein hereinkommendes YADDR-Feld in
eines der Register CA oder CB abzuspeichern. Die Zustandsmaschine 40 führt auch
Schreib- und Lesezugriffe auf XP, XM, YP und LA-LC der Eingabebit-Registerdateien 42 und 44 durch
und erzeugt das Ausgabesignal FAIL. Das Rücksetzsignal RESET von dem
BIST-Untersystem 24 von 1 initialisiert
alle Werte innerhalb der Register CA, CB und RA-RC, wie dies in 10 dargestellt
ist, und führt
eine Rücksetzung
der Zustandsmaschine 40 auf einen Anfangszustand beim Start
eines Tests durch. Anschließend
teilt das Fehlersignal ERROR der Zustandsmaschine 40 mit,
wann sie eine hereinkommende Adresse ADDRESS einer defekten Speicherzelle
verarbeiten soll. Wenn der Test abgeschlossen ist und die verschiedenen
Register RA-RC,
CA und CB den zu ersetzenden Zeilen und Spalten zugeordnet worden
sind, codiert eine Codierer 46 den XADDR- und YADDR-Inhalt
der Register CA, CB, RA-RC und zeigt die auszutauschenden Zeilen
und Spalten an, um die geeigneten Eingabe-Konfigurationsdaten CONFIG an dem RAM-Speicher 12 von 1 zu
erzeugen.
-
Eine
Logikschaltung 48 überwacht
die Werte der hereinkommenden XADDR- und YADDR-Adressen und den
Inhalt der Register CA, CB und RA-RC und erzeugt folgendermaßen verschiedene
Eingaben an die Zustandsmaschine 40:
-
Ein
XF-Bit zeigt an, dass keines der Register XA-RC ein XADDR-Feld NULL
hat, und eine YF-Eingabe zeigt an, dass weder das eine noch das
andere der Register CA und CB ein YADDR-Feld NULL hat.
-
Ein
CX-Bit zeigt an, dass der XADDR-Abschnitt der hereinkommenden Adressen
ADDRESS mit den aktuellen Adresseninhalten eines der Register RA-RC übereinstimmt.
-
Ein
CY-Bit zeigt an, dass der YADDR-Abschnitt der hereinkommenden Adressen
ADDRESS mit den aktuellen Adresseninhalten eines der Register CA
und CB übereinstimmt.
-
Ein
XPC-Bit zeigt an, dass der XADDR-Abschnitt der hereinkommenden Adressen
ADDRESS mit den aktuellen Adresseninhalten eines der Register RA-RC übereinstimmt,
dem ein XADDR-Wert permanent zugeordnet wurde.
-
Ein
YPC-Bit zeigt an, dass der YADDR-Abschnitt der hereinkommenden Adressen
ADDRESS mit den aktuellen Adresseninhalten eines der Register CA
oder CB übereinstimmt,
dem ein YADDR-Wert
permanent zugeordnet wurde.
-
Mehrfachbit-Eingabe/Ausgabe-RAM-Speicher
-
In
der obigen Beschreibung der Erfindung nahmen wir aus Gründen der
Einfachheit an, dass der RAM-Speicher 12 eine Einfachbit-Eingabe/Ausgabe-Vorrichtung
ist, die nur ein einfaches Bit bei jeder Speicheradresse speichert.
Bei zahlreichen Anwendungen ist jedoch der RAM-Speicher 12 eine
Mehrfachbit-Eingabe/Ausgabe-Vorrichtung,
die ein Wort mit mehr als einem Bit bei jeder Speicheradresse speichert.
Wenn derartige RAM-Speicher
eine Ersatzzeilen- und Ersatzspalten-Austauschfähigkeit haben, sind die Ersatz-"Spalten" womöglich nur
1 bit breit. Wenn ein einziges Bit eines Wortes bei irgendeiner
Spalte defekt ist, können
wir eine Ersatzspalte verwenden, um nur dieses spezielle Bit jedes
Wortes dieser speziellen Spalte zu ersetzen.
-
38 beschreibt
eine alternative Version einer ASIC 10 von 1,
bei der eine BIST-Schaltung 24A und eine BIRA-Schaltung 26A dazu
ausgelegt sind, um den RAM-Speicher 12 aufzunehmen, wenn
es sich dabei um eine Mehrfachbit-Eingabe/Ausgabe-Vorrichtung handelt.
Bei dieser Version führt
die BIST-Schaltung 24A der BIRA-Schaltung 26A ein
zusätzliches
Eingabewort BITADDR zu, das die Position (oder "Bit-Adresse") innerhalb dieses Wortes eines speziellen
Bits identifiziert, das einen Speichertest nicht bestanden hat.
Wenn die BIST-Schaltung 24A ein
einfaches Fehlerbit in einem Wort von der aktuellen Adresse des
RAM-Speicher 12 erfasst, setzt sie die BITADDR-Daten, um
die Position des Bits innerhalb des Wortes anzuzeigen, wenn sie das
ERROR-Signal pulsiert. Wenn die BIST-Schaltung 24A mehr
als ein Fehlerbit bei der aktuellen Adresse erfasst, pulsiert sie
das ERROR-Signal einmal für
jedes fehlerhafte Bit, wodurch BITADDR zwischen Fehlersignal-Impulsen ERROR aktualisiert
wird, um die Position des nächsten
fehlerhaften Bits anzuzeigen.
-
39 veranschaulicht
die BIRA-Schaltung 26A von 24 in
Form eines ausführlicheren
Blockdiagramms. Die BIRA-Schaltung 26A ist im wesentlichen ähnlich zu
der BIRA-Schaltung 26 von 32 mit
der Ausnahme, dass die hereinkommenden BITADDR-Daten an die hereinkommenden Spaltenadressen
YADDR angehängt
werden, so dass für
die BIRA-Schaltung 26 die Spaltenadresse eine Adresse YADDR,
BITADDR anstatt der tatsächlichen
Spaltenadresse YADDR zu sein scheint. Somit behandelt die BIRA-Schaltung 26A jedes
Bit eines bei irgendeiner Speicheradresse gespeicherten Wortes als
ob es eine gesonderte Spaltenadresse hätte.
-
Dort
wo der RAM-Speicher 12 von 34 nicht
in der Lage ist, mehrfache Ersatzspalten zum Korrigieren gleichzeitiger
Fehler von Mehrfachbits in einem Speicherwort bereitzustellen, kann
die BIST-Schaltung 24 so ausgelegt werden, dass sie der
Zustandsmaschine 40 von 39 ein
zusätzliches
Signal zuführt,
das anzeigt, wenn mehr als ein Bit des aktuell getesteten Wortes
fehlerhaft ist. Die Zustandsmaschine 40 kann so konfiguriert
werden, dass sie auf dieses Signal reagiert, indem sie einen Ersatzzeilen-Austausch
erzwingt.
-
Zustandsmaschine
-
40 ist
ein Zustandsmodell, das den Betrieb einer Zustandsmaschine
40 von
37 veranschaulicht.
Die am weitesten links liegende Spalte von
40 zeigt
einen "Aktionscode" an, der auf die
Aktion(en) Bezug nimmt, die die Maschine
40 als Reaktion
auf jede der Kombinationen der Eingabebits XS, YS, CX, CY, XPC,
YPC durchführen
muss, die in den restlichen Spalten von
40 aufgelistet
sind,
wenn ein hereinkommender Fehlersignal-Impuls ERROR anzeigt,
dass das BIST-Untersystem
24 von
1 eine schlechte
Zelle gefunden hat. Jeder mögliche
Zustand, der in
40 nicht aufgelistet ist, bewirkt,
dass die Zustandsmaschine
40 das FAIL-Signal erzeugt. In
40 zeigt
ein "X" in einer beliebigen
Säule einen Bit-Zustand
an, bei dem es sich entweder um "0" oder "1" handeln kann. Die folgende Liste definiert
die Aktionen, die die Zustandsmaschine
40 als Reaktion
auf jede der Kombinationen ihrer Eingabebits X5, YS, CX, CY, XPC
und YPC, die in
40 aufgelistet sind, durchführen kann.
CODE | AKTION |
NO
ACTION: | Mache
nichts |
LATCHX: | Halten
des XADDR-Wertes in einem verfügbaren
Register RA-RC |
LATCHY: | Halten
des YADDR-Wertes in einem verfügbaren
Register CA, CB |
LATCHC: | Halten
eines geeigneten Bits LA-LC in einem geeigneten Register CA, CB |
ADDC: | Setze
das geeignete Bit LA, LC des geeigneten Registers CA oder CB auf "1" |
SUBC: | Setze
alle Bits LA-LC eines geeigneten Registers CA oder CB auf "0" |
LATCHXP: | Halte
den XADDR-Wert in einem verfügbaren
Speicher RA-RC und setze XP auf "1" |
LATCHYP: | Halte
den YADDR-Wert in einem verfügbaren
Register CA, CB und setzte YP auf "1" |
MAKEXP: | Setze
das XP-Bit auf "1" in einem geeigneten
Register RA-RC |
MAKEYP: | Setze
das YP-Bit auf "1" in einem geeigneten
Register CA, CB |
REMX1D: | Rücksetzen
des XM-Registers, bei dem XM = "0" |
MAKEXMD: | Setze
das XP-Bit auf "1" bei dem Register
RA-RC, bei dem XM = "1" |
REPNPYLD: | Rücksetzen
des Registers CA oder CB, bei dem XM = "0" |
MAKEXPIPFC: | Mache
bei dem Register RA-RC das geeignete Bit XP = "1" |
REMY0D: | Rücksetzen
eines beliebigen Registers CA oder CB, bei dem alle Bits LA-LC auf "0" sind. |
-
Es
wurde somit ein BIRA-Untersystem eines BISR-Systems 26 gezeigt
und beschrieben für
die Zuordnung von Ersatzzeilen und Ersatzspalten von Zellen, um
Zeilen und Spalten einer Anordnung von Speicherzellen als Reaktion
auf eine Eingabesequenz von Zellenadressen auszutauschen, wovon
jede eine Zeilenadresse (XADDR) und eine Spaltenadresse (YADDR)
jeder defekten Zellen der Zellenanordnung identifiziert. Das BIRA-Untersystem,
das ein Zeilenregister (RA-RC) enthält, das jeder Ersatzzeile entspricht,
und ein Spaltenregister (CA, CB) enthält, das jeder Ersatzspalte
entspricht, reagiert auf hereinkommende Zellenadressen, indem es
die enthaltenen Zeilenadressen in die Zeilenregister schreibt, indem
es die Spaltenadressen in die Spaltenregister schreibt und indem
es Verbindungsbit (LA-LC) in die Spaltenregister schreibt. Jedes
Verbindungsbit verbindet ein Zeilen- und ein Spaltenregister, das
Zeilen- und Spaltenadressen einer defekten Zelle speichert. Das
BIRA-Untersystem schreibt auch ein Mehrfachzellen-Bit (XM) in jedes
Zeilenregister, um anzuzeigen, wenn die Zeilenadresse, die es speichert
mehr als eine defekte Zelle enthält.
Die in diesen Registern gespeicherten Zeilen- und Spaltenadressen
zeigen die Zeilen und Spalten der Anordnung an, für die Ersatzzeilen
und Ersatzspalten zugeordnet werden müssen. Jedes Zeilen- und Spaltenregister
enthält
auch ein "permanentes" Bit (XP oder YP),
welches das BIRA-Untersystem setzt, um anzuzeigen, wann die Ersatzzeilen- oder
Ersatzspal ten-Zuordnung, die durch seine gespeicherte Zeilen- oder
Spaltenadresse angezeigt wird, permanent ist. Das BIRA-Untersystem führt eine
effiziente Zuordnung von Ersatzzeilen und Ersatzspalten durch, indem
die in den Zeilen- und Spaltenregistern gespeicherten Adressen und
Datenbits manipuliert werden, wenn es die Eingabesequenz der Adressen
defekter Zellen verarbeitet.
-
In
der obigen Beschreibung wurden zwar bevorzugte Ausführungsbeispiele
der vorliegenden Erfindung beschrieben, doch kann ein Fachmann zahlreiche
Abwandlungen an den bevorzugten Ausführungsbeispielen durchführen, ohne
dass er den größeren Rahmen
der Erfindung verlässt.
Die beigefügten
Ansprüche sollen
daher sämtliche
derartigen Abwandlungen abdecken, die unter den wirklichen Schutzbereich
der Erfindung fallen.