-
Die vorliegende Erfindung bezieht
sich auf den Bereich der Korrektur von integrierten Schaltungen
und speziell auf die Korrektur durch Redundanz von ROM-Festspeicherschaltungen.
-
Ein Festspeicher enthält binäre Informationen,
die während
seiner Herstellung eingeschrieben werden, und zwar generell durch
die Verwendung einer Codiermaske, die geeignet für die in den Speicher aufgenommenen
Daten ist.
-
Während
der Herstellung können
mehrere Typen von Fehlern in einem Festspeicher auftreten. Einige
Fehler können
den Speicher vollständig
funktionsunfähig
machen, z. B. ein Fehler der Decodierung der Adresse, die überhaupt
ein Auslesen der gespeicherten Daten verhindert. Andere Fehler können nur
einen Teil des Speichers betreffen, z. B. wenn eine einzelne Zelle
beim Auslösen
einen Wert ausgibt, der dem gewünschten
Wert entgegengesetzt ist. Im folgenden wird das Interesse speziell
auf Fehler dieses Types ausgerichtet.
-
Ein klassisches Verfahren zum Testen
einer fehlerlosen Herstellung eines Festspeichers besteht darin,
seinen Inhalt auszulösen
und zu verifizieren, dass alle gespeicherten Informationen korrekt
sind. Ein solches Testverfahren ist zeit- und kostenaufwändig und
gewöhnlich
wird daher vorgesehen, eine integrierte Testschaltung in dem Festspeicher
zu integrieren. Eine solche Schaltung empfängt während einer Testphase sukzessive
alle in dem Speicher gespeicherten Daten, addiert sie, multipliziert,
etc. entsprechend einem geeigneten Verschlóüsselungsalgorhythmus und vergleicht
das Endergebnis mit einem erwartetem Ergebnis für die Daten des Speichers.
Wenn die beiden Ergebnisse identisch sind, wird der Speicher als
voll funktionsfähig
betrachtet. Das Patent US-A-4592024 beschreibt einen ROM-Speicher
mit einem Netz aus Speicherzellen, in dem während einer Testphase die Gesamtheit
der gespeicherten Daten gelesen, durch externe Einrichtungen mit
den erwarteten Daten verglichen und in dem, im Falle einer Differenz,
die Adressen der defekten Zellen markiert werden.
-
Festspeicher werden häufig in
große
digitale Schaltungen integriert, um Informationen zu speichern,
so z. B. Schriftarten in einer Steuerschaltung für einen Monitor oder Quadratwurzeln
in einer Treckingschaltung oder den Mikrocode einer Anwendung.
-
Wenn ein Festspeicher einer solchen
Schaltung defekt ist, kann die Schaltung nicht verwendet und muss
weggeworfen werden.
-
Eine Aufgabe der vorliegenden Erfindung
ist es, eine reine Funktion relativ einfach vorzusehen, um einen
eventuellen Herstellungsfehler in einem Festspeicher zu variieren.
-
Zur Lösung dieser Aufgabe wird mit
der vorliegenden Erfindung ein Festspeicher mit einem Matrix vorgesehen,
beider auf jede Zelle Zugriff besteht mit Hilfe einer Spaltenadresse
und einer Zeilenadresse, der einen Paritätsspeicher aufweist, um die
erwartete Parität
jeder Zeile und jeder Spalte zu speichern, fernern einen elektrisch
programmierbaren Adressenspeicher mit Einmal-Programmierung, der zum
Speichern lediglich einer Zeilenadresse und einer Spaltenadresse
ausgelegt ist, eine Testschaltung, um, während einer Testphase die Parität jeder Zeile
und jeder Spalte zu berechnen, die berechneten und die erwarteten
Paritäten
für jede
Zeile und jede Spalte zu vergleichen und im Falle der Ungleichheit
die Zeile oder die Spalte in dem Adressenspeicher zu markieren und
eine Korrekturschaltung aufweist, um, im normalen Modus, den in
einer Zelle der Matrix, deren Zeile und Spalte in dem Adressenspeicher
markiert sind, ausgelesenen Wert zu invertieren.
-
Gemäß einer Ausführungsform
der vorliegenden Erfindung weist der Adressenspeicher eine Markierungsspalte
und eine Markierungszeile auf, die Zeilen bzw. Spalten der Matrix
zugeordnet sind, wobei die Testschaltung eine Zeile markiert, indem
in der Zelle mit der gleichen Zeile wie in der Markierungsspalte
ein Flag gesetzt wird und eine Spalte markiert, indem ein Flag in
der Zelle mit der gleichen Spalte wie in der Markierungszeile gesetzt
wird.
-
Gemäß einer Ausführungsform
der vorliegenden Erfindung weis der Adressenspeicher einen Spaltenadressenspeicher
auf, indem die Testschaltung eine Spalte markiert, indem sie ihre
Spaltenadresse einschreibt, und einen Zeilenadressenspeicher aufweist,
in dem die Testschaltung eine Zeile markiert, indem sie ihre Zeilenadresse
einschreibt.
-
Nach einer Ausführungsform der vorliegenden
Erfindung ist die Matrix des Festspeichers in mehrere Untermatrizen
aufgeteilt, wobei jede Untermatrix einem Paritätsspeicher und einem Adressenspeicher
zugeordnet ist.
-
Diese und weitere Aufgaben, Eigenschaften und
Vorteile der vorliegenden Erfindung werden in der folgenden Beschreibung
von speziellen Ausführungsbeispielen
in Bezug zu den speziellen Figuren näher erläutert, wobei diese Beschreibung
nicht beschränkend
ist und wobei die
-
1 in
vereinfachter Darstellung einen Festspeicher gemäß der vorliegenden Erfindung
und Schaltungen dargestellt, die während einer Testphase gebraucht
werden;
-
2 in
vereinfachter Darstellung einen Festspeicher gemäß der vorliegenden Erfindung
und Schaltungen darstellt, die im Normalbetrieb gebraucht werden;
-
3 in
vereinfachter Darstellung einen Festspeicher gemäß einer Variante der vorliegenden Erfindung
und Schaltungen darstellt, die während
einer Testphase gebraucht werden;
-
4 in
vereinfachter Darstellung einen Festspeicher gemäß einer Variante der vorliegenden Erfindung
und Schaltungen darstellt, die im Normalbetrieb gebraucht werden;
und
-
5 in
vereinfachter Darstellung einen Festspeicher gemäß einer Variante der vorliegenden Erfindung
darstellt.
-
Gemäß der vorliegenden Erfindung
wird vorgeschlagen, während
der Herstellung eines Festspeichers eine zusätzliche Information zu speichern, die
der Parität
gleicht, die für
jede seiner Spalten und jede seiner Zeilen erwartet wird. Es wird
eine Testschaltung vorgesehen, um während einer Testphase die Parität der Spalten
und Zeilen zu berechnen und um diese Werte mit den gespeicherten
erwarteten Werten zu vergleichen. Im Falle der Ungleichheit wird die
Spalte oder die Zeile markiert, indem ein Flag in eine elektrische
programmierbare Zelle der gleichen Spalte oder der gleichen Zeile,
die dafür
vorgesehen ist, eingeschrieben wird. Weiterhin ist eine Korrekturschaltug
vorgesehen, um im Normalbetrieb das in einer Zelle, dessen Zeile
und Spalte markiert wurden, usgelesene Datum zu invertieren.
-
1 stellt
eine Matrix eines Festspeichers 1 dar, der eine Paritätszeile
und eine Paritätsspalte 3 bzw.
4 zugeordnet sind, die aus Ästspeicherzellen zusammengesetzt
sind, und eine Markierungszeile sowie eine Markierungspalte 5 bzw. 6 zugeordnet sind,
die aus elektrisch programmierbaren Zellen zusammengesetzt sind.
Diese Zellen sind permanent programmierbar und können z. B. Sicherungen sein oder
elektrisch programmierbare Zellen mit einem Nur-Lese-Zugriff (EPROM).
-
Die Zeilen 3 und 5 weisen
Zellen auf, die jeweils den Spalten der Matrix 1 zugeordnet
sind, wobei alle beide die gleiche Spaltenadresse COL wie die Matrix
empfangen. Jede Zeilenzelle 3 enthält eine Information gleich
der erwarteten Parität
der entsprechenden Spalte der Matrix 1.
-
Die Spalten 4 und 6 haben
Zellen, die jeweils den Zeilen der Matrix 1 zugeordnet
sind, und alle beide empfangen die gleiche Zeilenadresse ROW wie die
Matrix. Jede Zelle der Spalte 4. enthält eine Information, die der
erwarteten Parität
der korrespondierenden Zeile der Matrix 1 gleicht.
-
Eine Testschaltung 7 zum
Testen der Spalten und anschließend
der Zeilen der Matrix weist einen Addierer 9 auf, der die
von der Matrix gelieferten Daten empfängt, um die Parität der Spalten
und die Parität
der Zeilen der Matrix zu berechnen. Die Schaltung 7 weist
darüber
hinaus einen Vergleicher für
die. Spaltenparitäten,
die von dem Addierer 9 und der Zeile 3 geliefert
werden und für
die Zeilenparitäten auf,
die von dem Addierer 9 und der Spalte 4 geliefert werden.
Der Vergleicher 11 erzeugt ein Schreibsignal WRC für die Markierungszeile 5,
wenn er eine Ungleichheit zwischen einer durch den Addierer 9 erzeugten
und berechneten Spaltenparität
und einer erwarteten Spaltenparität ermittelt, die in der Zeile 3 ausgelesen
wird. In gleicher Weise erzeugt der Vergleicher 11 ein
Schreibsignal WRR für
die Markierungspalte 6, wenn er eine Ungleichheit zwischen
einer im Addierer 9 erzeugten und berechneten Zeilenparität und einer
erwarteten und in der Spalte 4 ausgelesenen Zeilenparität ermittelt.
-
Während
einer ersten Testphase liefert eine Steuerschaltung 8 Spaltenadressen
und Zeilenadressen, um sukzessive die Zellen aller Zeilen jeder Spalte
der Matrix 1 zu lesen. Der Addierer 9 berechnet
dabei die Parität
jeder Spalte. Der Vergleichen 11 vergleicht dann, für jede Spalte,
die berechnete Parität
mit der erwarteten Parität,
die in der korrespondierenden Zelle der Paritätszeile 3 ausgelesen
wird. Wenn die berechnete Parität
und die erwartete Parität
nicht gleich sind, enthält
die Spalte eine defekte Zelle und der Vergleichen 11 aktiviert
das Signal WRC, um die Spalte zu markieren, indem ein Flag in die
entsprechende Zelle der Markierungszeile 5 eingeschrieben
wird.
-
Auf die gleiche Weise werden die
Paritätsspalte 4 und
die Markierungsspalte 6 eingesetzt, um während einer
zweiten Testphase, die Zeile für
Zeile ausgeführt
wird, die Zeile zu lokalisieren, die eine defekte Zelle enthält und diese
Zeile zu markieren.
-
Am Ende dieser beiden Testphasen
erlaubt es die Markierung der Spalte und der Zeile, den exakten
Ort der defekten Zelle zu lokalisieren.
-
2 zeigt
die bereits beschriebene Matrix 1, die Markierungszeile 5 und
die Markierungsspalte 6, die Schaltungen zugeordnet sind,
die in dem normalen Betriebszustand des Speichers verwendet werden.
Der Ausgangsanschluss der Matrix 1 ist mit einer Korrekturschaltung 13 verbunden.
Die Korrekturschaltung 13 weist einen Multiplexer 15 auf,
der einen normalen Eingang und einen invertierenden Eingang aufweist,
die beide mit dem Ausgangsanschluss der Matrix 1 verbunden
sind. Die Ausgangsanschlüsse
der Zeile 5 und der Spalte 6 sind mit einem Steueranschluss
des Multiplexers 15 unter Zwischenschaltung eines logischen
Tores 17 verbunden, das den invertierenden Eingang des
Multiplexers anwählt,
wenn an den Ausgängen
der Zeile 5 und der Spalte 6 gleichzeitig Flags
vorhanden sind.
-
Wenn die Matrix 1 mit einer
Spaltenadresse COL und einer Zeilenadresse ROW ausgelesen wird, wird
gleichzeitig die Zeile 5 mit der Spaltenadresse COL und
die Spalte 6 mit der Zeilenadresse ROW ausgelesen. Wenn
die defekte Zelle der Matrix 1 ausgelesen wird, erscheinen
die Flags an beiden Eingängen
des Tores 17 und das aus der defekten Zelle ausgelesene
Datum wird invertiert. Wenn eine andere Zelle der Matrix 1 ausgelesen
wird, werden die Eingänge
des logischen Tores 17 nicht gleichzeitig aktiviert und
der Inhält
der Matrix wird, so wie er ist, ausgelesen.
-
Wenn eine zweite Zelle der Matrix 1 in
einer Spalte und in einer Zeile unterschiedlich von denen der ersten
defekten Zelle defekt ist, so sei darauf hingewiesen, dass die Einrichtung
gemäß der vorliegenden
Erfindung keine Korrektur erlaubt. Tatsächlich definiert die Markierung
von zwei unterschiedlichen Spalten und Zeilen vier defekte Orte
anstelle von nur zwei. Somit wird davon ausgegangen, dass das Herstellungsverfahren
für die
Matrix 1 ausreichend zuverlässig ist, sodass nur eine einzige
Zelle der Matrix am Ende der Herstellung defekt ist. Im gegenteiligen Falle
kann eine Variante verwendet werden, wie sie in Verbindung mit der 5 beschrieben wird.
-
3 stellt,
eine Variante der vorliegenden Erfindung dar. Die Matrix 1,
die Zeilen 3 und 4 und die Testschaltung 7 sind
die gleichen wie in 1.
Ein elektrisch programmierbares Spaltenregister 19 speichert
die Adresse COL, wenn sie ein Signal WRC empfängt. Ein elektrisch programmierbares
Zeilenregister 20 speichert die Adresse ROW, wenn es ein
Signal WRR empfängt.
-
Während
einer ersten Testphase, vergleichbar der Spalte für Spalte
durchgeführten
Testphase, die in Verbindung mit 1 beschrieben
wurde, wird eine Spalte gesucht, deren berechnete Parität nicht mit
der erwarteten Parität übereinstimmt.
Wenn eine solche Spalte gefunden ist, wird deren Spaltenadresse
COL in das Register 19 eingeschrieben.
-
Während
einer zweiten Testphase, vergleichbar der Zeile für Zeile
durchgeführten
Testphase, die in Verbindung mit 1 beschrieben
worden ist, wird ebenso eine Zeile gesucht, deren berechnete Parität nicht
mit der erwarteten Parität übereinstimmt. Wenn
eine solche Zeile gefunden worden ist, wird deren Zeilenadresse
ROW in das Register 20 eingeschrieben.
-
4 zeigt
die Matrix 1, das Spaltenregister 19 und das Zeilenregister 20,
die im vorhergehenden beschrieben. wurden während ihres Einsatzes im normalen
Betrieb. Eine Korrekturschaltung 22 enthält den gleichen
Multiplexer 15 wie die Korrekturschaltung 13 in 2. Sie weist ferner zwei
Vergleicher 24 und 25 auf, deren Ausgangsanschlüsse mit
einem Steueranschluss des Multiplexers 15 unter Zwischenschaltung
eines logischen Tores 27 verbunden sind, mit dem der invertierende
Eingang des Multiplexers 15 angewählt wird, wenn die Ausgänge der
Vergleicher 24 und 25 gleichzeitig aktiv sind.
Der Vergleicher 25 vergleicht die Adresse COL mit der in
dem Spaltenregister 19 gespeicherten Adresse. Ebenso vergleicht
der Vergleicher 15 die Adresse ROW mit der in dem Zeilenregister 20 gespeicherten
Adresse.
-
Wenn die defekte Zelle der Matrix 1 ausgelesen
wird, ist die Adresse COL gleich der in dem Register 19 gespeicherten
Adresse und der Ausgang des Vergleichers 25 wird aktiviert.
Ebenso ist die Adresse ROW gleich der in dem Register 20 gespeicherten
Adresse, und der Ausgang des Vergleichers 24 wird aktiviert.
Die Eingänge
des logischen Tores 27 sind aktiviert und das aus der defekten
Zelle ausgelesene Datum wird invertiert. Wenn die übrigen Zellen
der Matrix ausgelesen werden, sind die Ausgänge der Vergleicher 24 und 26 niemals
gleichzeitig aktiviert und das aus der Zeile ausgelesene Datum wird
nicht invertiert.
-
Die 5 stellt
eine Variante der vorliegenden Erfindung dar, die es erlaubt, vier
Fehler in einer Matrix zu korrigieren. Hierfür ist die Matrix unterteilt
in vier Untermatrizen ROM1, ROM2, ROM3, ROM4 und jeder Untermatrix
wird wie die Matrix 1 in 1 behandelt.
Daher ist jeder Untermatrix eine Markierungszeile 5 (OTPC1,
OTPC2, OTPC3, OTPC4), eine Markierungszeile 6 (OTPR1, OTPR2,
OTPR3, OTPR4), eine Paritätszeile 3 (PARC1,
PARC2, PARC3, PARC4) und eine Paritätsspalte 4 (PARR1, PARR2,
PARR3, PARR4) zugeordnet.
-
Die Adressen der Spalten und Zeilen
sind so aufgeteilt, dass die Untermatrizen ROM1 und ROM3 ebenso
wie die Markierungszeilen und die Paritätszeilen die ihnen zugeordnet
sind, die obere Hälfte
der Spaltenadressen empfangen und dass die Untermatrizen ROM2 und
ROM4 ebenso wie die Markierungszeilen und die Paritätszeilen
die ihnen zugeordnet sind, die untere Hälfte der Spaltenadresse empfangen.
In gleicher Weise empfangen die Untermatrizen ROM1 und ROM2 ebenso
wie die Markierungsspalten und Paritätsspalten, die ihnen zugeordnet sind,
die obere Hälfte
der Zeilenadresse und die Untermatrizen ROM3 und ROM4 ebenso wie
die Markierungsspalten und die Paritätsspalten, die ihnen zugeordnet
sind, empfangen die untere Hälfte
der Zeilenadressen.
-
Eine Testschaltung 30 erfüllt für jede Untermatrix
die Funktionen der Testschaltung 7 und der Steuerschaltung 8 gemäß 1. Sie empfängt das Ausgangssignal D der
Untermatrix und die Ausgänge CP
und RP der Paritätsspalte
und der Paritätszeile, die
ihr zugeordnet sind. Sie erzeugt in einer Testphase die Schreibsignale
WRC und WRR für
die Markierungszeile OTPC und die Markierungsspalte OTPR, die der
Untermatrix zugeordnet sind. Eine Steuerschaltung 32 erfüllt für jede Untermatrix
zu Funktionen der Steuerschaltung 13 gemäß 2. Sie empfängt das
Ausgangssignal D der Untermatrix und die Ausgangssignale RO und
CO der Markierungsspalte und der Markierungsreihe, die ihr zugeordnet
sind. Sie erzeugt ein Ausgangssignal WOUT, das gleich dem invertierten
Signal D ist, wenn die Signale RO und CO gleichzeitig aktiv sind
und gleich dem Signal D im gegenteiligen Falle ist.
-
Eine Steuerschaltung zur Wahl des
Betriebsmodus MOD erlaubt es, den Block 30 für den Testbetrieb
und den Block 32 für
den Normalbetrieb zu aktivieren.
-
Diese Ausführungsform erlaubt es, vier
Fehler in der Matrix zu korrigieren, d. h. ein Fehler pro Untermatrix.
Ein Fachmann wird natürlich
ohne Schwierigkeiten dazu in der Lage sein, die vorliegende Erfindung
auf eine Korrektur mit einer größeren Anzahl
von Fehlern zu adaptieren.
-
Bei der Ausführungsform der Erfindung gemäß 5. werden die Testschaltungen
entsprechend den 1 und 2 verwendet; es ist jedoch
ohne weiteres und auch vorteilhaft möglich, die Testschaltungen
gemäß den 3 und 4 bei der Ausführungsform gemäß 5 zu verwenden.
-
Man könnte natürlich gleichfalls für den Test der
Spalten und Zeilen der Matrix eine Signatur verwenden, die sich
von der Parität
unterscheidet: Die erwartete Signatur für jede Spalte und jede Zeile
wird dann in einer Zeile und einer Spalte gespeichert, die den oben
beschriebenen ähneln,
und die Testschaltungen werden dann verwendet, um die Signatur während der
Testphase zu berechnen.