-
Die Erfindung betrifft integrierte Schaltkreise. Sie bezieht
sich auf eine nichtflüchtige bistabile Kippstufe, die
elektrisch programmierbar ist. Sie ist im wesentlichen, aber
nicht ausschließlich dafür gedacht, in einem
Redundanzschaltkreis für Speicher in integrierten Schaltkreisen eingesetzt
zu werden.
-
Zur Erläuterung der Erfindung in dem Kontext, in dem sie
erdacht wurde, werden zunächst summarisch die Prinzipien der
Redundanzschaltkreise wiederholt, die zur Zeit in den
Speichern großer Kapazität verwendet werden.
-
Die Redundanzschaltkreise eines Speichers kommen zum Einsatz,
wenn Fehler in den Reihen (Wortfolgen, die zum Adressieren
des Speichers dienen) oder den Spalten (Bitfolgen, die die zu
lesenden oder zu schreibenden Daten aus dem oder in den
Speicher transportieren) auftreten.
-
Wenn z.B. eine Spalte defekt ist, ersetzt man sie durch eine
Redundanzspalte auf die folgende Art und Weise: Die Adresse
der defekten Spalte wird abgespeichert in einem
Defektadressenspeicher; dieser Defektadressenspeicher ist ein Speicher
vom über seinen Inhalt adressierbaren Typ (im folgenden CAM-
Speicher genannt); jedesmal wenn eine Adresse an den
Hauptspeicher abgesendet wird, wird diese Adresse gleichermaßen an
den CAM-Speicher abgesendet. Wenn die abgesendete Adresse
identisch mit der gespeicherten Adresse ist, wird ein
Redundanzschaltkreis aufgerufen der dafür sorgt, daß die defekte
Spalte abgekoppelt wird und an ihre Stelle eine
Redundanzspalte kommt, und zwar unsichtbar für den Nutzer.
-
In der Praxis wird man je nach Organisation des
Hauptspeichers bei einer defekten Spalte eher eine Gruppe von Spalten,
die diese defekte Spalte umfaßt, durch eine
Redundanzspaltengruppe ersetzen: Allgemein heißt das, daß wenn eine Gruppe
von Spalten durch ein Adressenbit in dem Speicher großer
Kapazität definiert ist, so ist es die gesamte Spaltengruppe,
die man ersetzen wird. Im folgenden beschränkt man sich der
Einfachheit halber darauf von dem Ersetzen einer Spalte zu
sprechen, anstatt vom Ersetzen einer Gruppe von Spalten.
-
Für einen Hauptspeicher mit mehreren Megabits sieht man die
Möglichkeit vor, mehrere Fehler zu reparieren; es gibt daher
genauso viele Redundanzspalten wie fehlerhafte Spalten oder
Folgen, die ersetzt werden können sollen. Mit jeder
Redundanzspalte hängt ein CAM-Speicher jeweils zusammen, der die
Adresse einer fehlerhaften Spalte beinhaltet. Wenn man N
Fehler reparieren will, braucht man N Redundanzspalten und N
CAM-Speicher. Typischerweise ist N = 36 bei einem Speicher
mit 4 oder 16 Megabit.
-
Wenn eine Spalte im Hauptspeicher durch eine Adresse mit M
Bits (z.B. M = 5) bezeichnet wird, beinhaltet jeder
CAM-Speicher wenigstens M+1 Bit: M Bits zum Definieren der Adresse
einer fehlerhaften Spalte und ein Bit zur Freigabe, um
anzuzeigen, daß der Redundanzschaltkreis, der diesem CAM-Speicher
entspricht, effektiv aktiviert werden muß, wenn die defekte
Adresse an den CAM-Speicher abgeschickt wird.
-
Zum Realisieren der CAM-Speicher verwendete man zunächst
Gruppen physikalischer Sicherungen, die elektrisch oder durch
einen Laserstrahl zerstört werden, wobei jede Sicherung ein
Adreßbit oder ein Freigabebit darstellt. Diese Sicherungen
hatten Nachteile (Zuverlässigkeit, Platzbedarf, Verbrauch,
Schwierigkeit bei der Programmierung) und wurden schnell
durch nichtflüchtige nichtlöschbare Speicherzellen ersetzt.
Diese letzteren hatten ebenso Nachteile (erheblicher
Stromverbrauch), und man wandte sich mehr und mehr der Verwendung
von programmierbaren bistabilen Kippstufen zu, die zwei
Transistoren mit offenem Gitter für jedes Adressen- oder
Freigabebit beinhalten.
-
Figur 1 stellt eine programmierbare, nichtflüchtige bistabile
Kippstufe nach Stand der Technik dar, die eine Zelle zur
Speicherung eines Defektadressenbits (oder eines
Freigabebits) darstellt und damit eine der M+1 Zellen eines CAM-
Speichers für Defektadressen darstellt. In EP-A-0 525 680
wird eine Kippschaltung dieses Typs beschrieben.
-
Der Ausgang OUT dieser Zelle liegt je nachdem wie die
Kippstufe programmiert wurde auflogisch 0 oder 1. Dieser Ausgang
definiert daher den Wert eines Adressenbits (oder den Wert
des Freigabebits).
-
Wenn die Zelle einem der Defektadressenbits entspricht, so
wird der Ausgang jeder Zelle dieser M-Bit-Adresse an einen
Eingang eines (nicht dargestellten) Exklusiv-ODER-Gatters
angelegt. Das Exklusiv-ODER-Gatter empfängt über einen anderen
Eingang ein entsprechendes Adressenbit von dem Hauptspeicher;
die Ausgänge des Exklusiv-ODER-Gatters entsprechen
unterschiedlichen Adressenbits eines gleichen
Defektadressenspeichers und werden an einen Eingang eines (nicht gezeigten)
NOR-Gatters angelegt; der Ausgang dieses letzteren liegt auf
logisch 1 nur dann, wenn es eine Koinzidenz zwischen allen
angelegten Adressenbits und allen entsprechenden Bits des
Defektadressenspeichers gibt. Der Ausgang des NOR-Gatters wird
durch den Ausgang der Speicherzelle freigegeben, die dem
Freigabebit entspricht, z.B. über ein (nicht dargestelltes)
UND-Gatter. Der Ausgang des UND-Gatters ist der Ausgang des
CAM-Speichers und dient dazu, jedesmal eine
Redundanzumleitung zu bewirken, wenn die an den Hauptspeicher abgeschickte
Adresse einer registrierten Defektadresse entspricht.
-
Im allgemeinen gibt es N Defektadressenspeicher, wobei z.B.
N = 36. Beim Test des Hauptspeichers löst das Erfassen einer
defekten Spalte die Speicherung der Adresse dieser Spalte in
einem der CAM-Speicher aus. Die unterschiedlichen
CAM-Speicher werden somit nacheinander je nach Erfassung der Fehler
programmiert. Bei normaler Funktion des Hauptspeichers werden
desssen Adressen simultan an allen CAM-Speichern angelegt.
Wenn es bei einer von ihnen eine Korrespondenz zwischen
angelegter Adresse und gespeicherter Adresse gibt, wird deren
Redundanzumleitung entsprechend aktiviert.
-
Um die Programmierung einer Defektadresse in einem
CAM-Speicher zu ermöglichen, wird vorgesehen, daß ein jeweiliges
Adressenbit des Hauptspeichers an jede Zelle des
CAM-Speichers angelegt wird. Die Programmierung wird unter
Überwachung des Testgerätes durchgeführt, wenn eine Fehleradresse
im Verlauf des Tests erkannt wird.
-
Die einzelne Speicherzelle, die in Figur 1 dargestellt ist,
umfaßt zwei Zweige mit einem Transistor mit offenem Gitter
TGF1, TGF2 in jedem Zweig; die Zweige sind so angeordnet, daß
sie eine bistabile Kippstufe bilden, sobald einer dieser zwei
Transistoren programmiert ist; der Zustand der Kippstufe, wie
er sich am Ausgang OUT darstellt und einem Adressenbit oder
einem Freigabebit entspricht, ist also eine Funktion
desjenigen der zwei Transistoren, der programmiert ist. Am Anfang
sind die beiden Transistoren in einem nichtprogrammierten
Zustand oder Ursprungszustand. Beim Test des Speichers
programmiert man den einen der zwei Transistoren, um entweder eine 0
oder eine 1 am OUT-Ausgang der Zelle zu bekommen, womit also
ein definierter und stabiler Zustand 0 oder 1 der Zelle
definiert ist.
-
Genauer gesagt umfaßt die Zelle nach Figur 1 zwei identische
Zweige parallel zwischen einem Versorgungsanschluß A
(Potential Vcc in der Ordnung von 3 Volt) und einem Anschluß B;
dabei liegt der Anschluß B auf einem Potential VS mit Wert Null
im Lese- oder Programmiermodus und kann außerdem auf ein
erhöhtes Potential VS (12 Volt) im Löschmodus angehoben werden,
wenn ein Löschmodus vorgesehen ist (flash EPROM); in jedem
Zweig findet sich ein P-Kanal-Transistor (T1, T2), ein N-
Kanal-Transistor (T3, T4) und ein Transistor mit offenem
Gitter (TGF1, TGF2) in Reihe geschaltet. Das Gitter des P-Kanal-
Transistors (T1, T2) des einen Zweiges ist mit dem Drain des
P-Kanal-Transistors (T2, T1) des anderen Zweiges verbunden.
Die Gitter der N-Kanal-Transistoren (T3, T4) liegen beide auf
dem gemeinsamen Potential VB, dessen Wert von dem
Funktionsmodus abhängt (ungefähr 1,8 Volt beim Lesen; 0 Volt bei der
Programmierung oder beim Löschen, um 1 Volt am Drain der
Lesezellen zu haben). Die Transistoren T3 und T4 sind
Isolationstransistoren, um die Übertragung der Spannungen an die
Transistoren T1 und T2 zu verhindern, die relativ hoch sind
und an den Transistoren mit offenem Gitter bei dem
Programmier- oder Löschmodus anliegen. Die Gitter der Transistoren
mit offenem Gitter TGF1, TGF2 liegen auf einem gemeinsamen
Potential VGF, das von der Funktion abhängt (ungefähr 3 Volt
beim Lesen, ungefähr 12 Volt beim Programmieren). Der Source-
Anschluß dieser Transistoren ist mit dem Knoten B verbunden
(Potential VS). Die Drain-Potentiale der Transistoren mit
offenem Gitter werden jeweils durch den Transistor T5 und T6
gesteuert, was entweder die Verbindung des Drains mit einem
Programmierpotential VPRG (Transistor T5 oder T6 leitend)
oder das Halten des Drains auf hoher Impedanz (Transistor T5
oder T6 nichtleitend) erlaubt. Im Programmiermodus wird das
Gitter des Transistors 5 durch ein Programmiersignal PROG und
das Gitter von T6 durch ein Komplementärsignal NPROG
angesteuert. Auf diese Art wählt man je nach Zustand des Signals
PROG denjenigen der zwei Transistoren mit offenem Gitter aus,
der programmiert werden muß bzw. der unverändert bleiben
soll. Beim Lesemodus bleibt der Drain der Transistoren T5 und
T6 auf hoher Impedanz, wobei die Spannung VPRG nicht an die
Drains angelegt wird.
-
Die Zelle wird "bistabil" genannt, da sie unter zwei
möglichen einen stabilen Zustand besitzt, wobei der von ihr
eingenommene stabile Zustand von demjenigen der zwei Transistoren
abhängt, der programmiert worden ist. Der Zustand der Zelle
wird am Drain des einen der P-Kanal-Transistoren abgelesen
(T2 zum Beispiel). Dieser Drain ist mit dem Eingang eines
ersten Inverters INV1, dem ein zweiter Inverter INV2 folgt,
verbunden. Der Ausgang des INV2 ist der Ausgang OUT der
Zelle. Der Ausgang des INV1 dient als Komplementärausgang NOUT,
wenn man einen solchen benötigt.
-
Schließlich kann mit einem zusätzlichen Transistor T7 ein
gesonderter Testmodus ermöglicht werden, um zu vermeiden, daß
die Knoten schwimmen, wenn T3 und T4 gesperrt sind, indem
temporär (für eine Initialisierung des Zustands der Zelle bei
jedem Wiedereinschalten) der Eingang des Inverters INV1 auf
Masse gesetzt wird; das Gitter dieses Transistors wird durch
einen Initialisierungsrechteckpuls INIT von einem nicht
dargestellten gewöhnlichen Wiedereinschalt-Schaltkreis (Ip"Power
On Reset") gesteuert.
-
Die vorliegende Erfindung hat als Aufgabe, bistabile Zellen
nach Stand der Technik zu verbessern, um sie einfacher
insbesondere
bei Anwendungen in der oben beschriebenen Art und
Weise (Speicherredundanz) nutzen zu können.
-
Es wird daher vorgeschlagen, die programmierbaren Zellen mit
zwei Transistoren mit offenem Gitter zu modifizieren, so daß
sich eine bistabile Kippstufe nach der Programmierung ergibt,
d.h. zwei mögliche stabile Zustände vorliegen, wobei der von
der Zelle eingenommene Zustand von der ausgeführten
Programmierung abhängt; erfindungsgemäß umfaßt die Zelle
Vorrichtungen zum Stören des Gleichgewichts der Zustände der
nichtprogrammierten Zelle, um einen Ausgangszustand herbeizuführen,
der selbst vor Programmierung sicher eingehalten wird, und um
Stromverbrauch der Zelle beim Lesen zu verhindern, selbst
wenn die Zelle nicht programmiert ist.
-
In einer praktischen Ausführungsform kann die Zelle zwei
Zweige umfassen; die Zweige sind vorzugsweise gekreuzt, um
eine bistabile Funktion zu realisieren; jeder Zweig umfaßt
einen Transistor mit offenem Gitter; der eine der beiden
Zweige umfaßt außerdem einen Transistor, dessen Leitfähigkeit
über den Ausgang der Zelle gesteuert wird, und der den
Stromfluß in diesem Zweig vor der Programmierung einfach dadurch
verhindert, daß er die Kippstufe in einen festgelegten
Zustand zwingt, in welchem kein Strom in dem anderen Zweig
verbraucht wird.
-
Jeder Zweig kann einen P-Kanal-Transistor in Serie mit dem
Transistor mit offenem Gitter in diesem Zweig eventuell
außerdem einen Isolationstransistor in Reihe zwischen dem P-
Kanal-Transistor und dem Transistor mit offenem Gitter
aufweisen. Der Drain des P-Kanal-Transistors in einem der Zweige
ist vorzugsweise mit dem Gitter des P-Kanal-Transistors im
anderen Zweig verbunden.
-
Vorzugsweise wird ein Rückkopplungstransistor oder Transistor
zum Wiedereinschleifen, dessen Gitter durch den Ausgang der
Zelle gesteuert wird, gegenläufig oder in Gegenkopplung so
geschaltet, daß dieser Ausgang im Zustand verbleibt, der
natürlicherweise durch die Kippschaltung vor der Programmierung
eingenommen wird.
-
Die Erfindung hat ihren besonderen Vorteil darin, daß mit ihr
nur die Zellen programmiert werden müssen, die einen anderen
Zustand als den vor der Programmierung erzwungenen Zustand
haben sollen. In einer solchen Zelle wie sie in Figur 1
dargestellt ist, kann man die Zelle nicht in einem
nichtprogrammierten Zustand lassen, da daraus sowohl eine Unsicherheit
bezüglich des Zustandes der Zelle als auch ein Stromverbrauch
folgen würde.
-
In der Tat ist bei einer Zelle nach Figur 1 der Zustand vor
Programmierung unsicher: die Kippstufe ist global gesprochen
im Gleichgewicht und kann in zufälliger Art und Weise von
einer Seite auf die andere fallen; die Kipprichtung hängt z.B.
von kleinen Unterschieden der Spannungsschwelle bei den
beiden Transistoren mit offenem Gitter ab. Darüber hinaus
verbraucht diese Zelle Strom beim Lesen, da die beiden
Transistoren mit offenem Gitter im ursprünglichen Zustand und,
daher im Lesemodus leitend sind. Daraus folgt, daß man die
Zelle in dem einen oder anderen Sinn programmieren muß: um ein
Bit 0 zu speichern, bedarf es der Programmierung eines der
Transistoren, während es für das Speichern eines Bits 1 es
der Programmierung des anderen Transistors der Zelle bedarf.
Aber beim Anlegen an einen Speicher mit N Möglichkeiten der
Redundanz mit in M Bits kodierten Adressen muß man dann die
N x (M+1) Operationen zur Programmierung durchführen, die zur
Korrektur der Fehler nötig sind; selbst bei einem vollständig
guten Speicher müssen diese N x (M+l) Operationen der
Programmierung durchgeführt werden, was unnötig Zeit kostet.
-
Bei der Erfindung programmiert man nur die Freigabebits,
bevor ein festgelegter logischer Zustand (z.B. 0) eingenommen
wird, aber nicht die Freigabebits, die in dem ursprünglichen
Zustand (1) bleiben können; desgleichen programmiert man nur
die Defektadressenbits mit 0 aber nicht die Adressenbits mit
1.
-
Darüber hinaus gibt es keinen Stromverbrauch und die beiden
Zweige der Zelle sperren (sind nichtleitend) im stabilen
Zustand, der von der Zelle eingenommen wird, selbst wenn sie
nicht programmiert wurde.
-
Andere Eigenschaften und Vorteile der Erfindung ergeben sich
beim Lesen der folgenden Beschreibung der Einzelheiten, die
Bezug nimmt auf die beigefügten Zeichnungen, bei denen:
-
Figur 1 wie bereits beschrieben eine bekannte Speicherzelle
darstellt;
-
Figur 2 eine Ausführungsform der erfindungsgemäßen Zelle
darstellt.
-
Eine erfindungsgemäße nichtflüchtige Speicherzelle ist in
Figur 2 dargestellt. Sie ist im wesentlichen so aufgebaut wie
die in Figur 1 mit zwei zusätzlichen Transistoren, die durch
den Ausgang OUT der Zelle angesteuert werden. Die
Beschreibung der Figur 1 bleibt für die Figur 2 mit den folgenden
Modifizierungen gültig.
-
Ein Transistor T8, vorzugsweise mit P-Kanal, wird zwischen
Drain des Transistors T2 (Knoten D in Figur 2) und Drain des
Transistors T4 geschaltet, welche Drains vorher vereinigt
waren. Das Gitter dieses Transistors T8 wird mit dem Ausgang
OUT der Zelle verbunden, so daß der Transistor T8 leitend
wird, wenn OUT auflogisch Null liegt, und T8 sperrt, wenn
OUT auf 1 liegt.
-
Im übrigen sieht man vorzugsweise außerdem einen zusätzlichen
Transistor T9 vor, der vorzugsweise einen N-Kanal hat, der
parallel zwischen dem Eingang des Inverters INV2 und Masse
liegt. Durch ihn wird es möglich, diesen Eingang auf Null zu
setzen. Dieser Transistor wird durch den Ausgang OUT
angesteuert, so daß der übergang von OUT auf 1 das Auf-Null-
Setzen des Eingangs von INV2 bewirkt, womit der Ausgang OUT
auf 1 (und der Ausgang NOUT auf 0) bestätigt wird. Der
Transistor T9 dient also dazu, den Ausgang OUT auf 1 zu halten,
wenn dieser dorthin tendiert, wie es tatsächlich der Fall ist
beim Einschalten der Spannung der Kippstufe.
-
Die Zelle kann zwei mögliche Zustände haben:
nichtprogrammierter Zustand oder programmierter Zustand. Es wird weiter
unten angegeben, wie die Programmierung erfolgt.
a.) Nichtprogrammierte Zelle
-
Aufgrund des Transistors T8, der mit dem Transistor T2 in
Reihe geschaltet ist, neigt das Potential des Knotens D dazu,
höher als das Potential des Knotens C beim Einschalten der
Spannung zu steigen, d.h. beim Anlegen des Potentials Vcc an
den Knoten A, wobei der Knoten B auf Masse liegt. Man kann im
übrigen die Dimensionen des Transistors T1 in bezug auf die
Transistoren T2 und T4 anders wählen, um dieses Phänomen zu
verstärken.
-
Die Leitfähigkeit des Transistors T1 sinkt dann und die des
Transistors T2 steigt, was noch dieses Ungleichgewicht des
Potentials zwischen den Knoten C und D verstärkt. Die
Kippstufe neigt für gewöhnlich dazu, den Ausgang OUT auf 1 zu
setzen, was dazu führt, daß der Transistor T8 sperrt, was das
Potential des Knotens noch weiter erhöht oder es auf jeden
Fall daran hindert abzusinken. Wenn der Ausgang OUT 1
erreicht, wird der Transistor T9 leitend, wodurch der Eingang
des Inverters INV2 auf 0 gesetzt wird und daher durch
Rückkopplung der Ausgang OUT auf 1 bestätigt wird.
-
Man sieht daher, daß beim Einschalten der Spannung der
Ausgang OUT notwendigerweise auf 1 gelangt. Der Zustand der
Kippstufe wird selbst ohne Programmierung des einen oder des
anderen der Transistoren mit offenem Gitter auf 1 gesetzt.
b.) Programmierte Zelle
-
Die Programmierung der Zelle besteht darin, den Transistor
TGF1, d.h. den Transistor mit offenem Gitter des Zweiges, der
nicht den zusätzlichen Transistor T8 umfaßt, zu
programmieren. Diese Programmierung bringt den Transistor TGF1 in den
für die Gitterspannung, die an ihn angelegt wird (ungefähr 3
Volt im Lesemodus), nichtleitenden Zustand. Die anderen
Transistoren der beiden Zweige sind am Anfang alle leitend. Die
Kippstufe wird daher aus dem Gleichgewicht gebracht, und das
Einschalten der Spannung läßt das Potential am Knoten C höher
als das Potential am Knoten D steigen. Die Kippstufe begibt
sich von selbst in den stabilen Zustand OUT = 0.
-
Folglich besitzt die Kippstufe einen ersten stabilen Zustand
(OUT = 1) vor der Programmierung und einen zweiten stabilen
Zustand nach der Programmierung (OUT = 0). Es ist nicht
notwendig, den Transistor TGF2 zu programmieren, um den stabilen
Zustand OUT = 1 zu erreichen. Wenn man den Transistor TGF2
jedoch programmiert, erhält man auch einen stabilen Zustand
der Kippstufe, der derselbe Zustand (OUT = 1) wie für eine
nichtprogrammierte Zelle ist.
-
Darüber hinaus gibt es in den beiden stabilen Zuständen
keinen permanenten Stromverbrauch: Im Zustand OUT = 0 ist dies
wie bei dem Fall der Zelle in Figur 1: Der Transistor TGF1
sperrt und verhindert den Stromfluß in den ersten Zweig; der
Transistor T2 sperrt und verhindert den Stromfluß in den
zweiten Zweig. In dem Zustand OUT = 1 sperrt der Transistor
T1 und verhindert den Stromfluß in den ersten Zweig; der
Transistor T8 sperrt und verhindert den Stromfluß in den
zweiten Zweig.
-
Bei Unterbrechung der Stromversorgung des integrierten
Schaltkreises kann es zu einer Unsicherheit über die Funktion
der Einheit der Schaltkreiselemente kommen, und es wird
allgemein ein Wiedereinschalt-Schaltkreis vorgesehen (im
allgemeinen "Power On Reset"-Schaltkreis genannt) . Was die
Speicherzelle nach Figur 2 betrifft, so ist vorgesehen, daß der
(nicht dargestellte) Schaltkreis einen
Initialisierungsrechteckpuls INIT an das Gitter des Transistors T7 in dem Moment
des Wiedereinschaltens der Spannung anlegt. Dieser
Rechteckpuls bringt temporär das Potential beim Knoten D auf Null und
läßt damit den Ausgang OUT 0 passieren. Danach endet der
Rechteckpuls, und die Kippstufe nimmt den Zustand ein, der
ihr durch den Programmierzustand vorgegeben wird: OUT = 1
wenn die Zelle nicht programmiert ist oder wenn TGF2
programmiert ist, OUT = 0 wenn TGF1 programmiert ist.
-
Um die Programmierung des Transistors TGF1 durchzuführen,
legt man eine Spannung VPRG von ungefähr 6 Volt an den Drain
des Transistors T5 an, das Gitter des Transistors empfängt
ein Leitfähigkeitssignal PROG, während das Gitter des
Transistors T6 ein komplementäres Signal NPROG empfängt, das diesen
sperrt. Zum Programmieren des Transistors TGF2 (wenn man dies
wünscht) ist es das Gitter des Transistors T6, das ein
Leitfähigkeitssignal zum Übertragen der Spannung VPRG empfängt,
während das Gitter des Transistors T5 ein Komplementärsignal
empfängt. Die Zellen oder Gruppen von Zellen, die weder im
einen noch im anderen Sinn programmiert werden müssen,
empfangen keine Spannung VPRG an den Drains der Transistoren T5
und T6. Diese Drains bleiben hochimpedant.
-
In einem Defektadressenspeicher wird die Programmierung der
Zellen nicht durchgeführt, wenn es keine Defektadresse zu
registrieren gibt, aber wenn eine Defektadresse gespeichert
werden muß, kann man die Zellen wie jene in Figur 1
programmieren, indem gleichzeitig der Transistor TGF1 für die
Adressenbits 0 und der Transistor TGF2 für die Adressenbits 1
verwendet wird. Dies ist der Grund dafür, daß ein Signal PROG,
das ein Adressen- oder Freigabebit darstellt, an den
Transistor T5 angelegt wird und ein Komplementärsignal NPROG an den
Transistor T6 angelegt wird.
-
Aber wenn die Zahl der zu korrigierenden Fehler in dem
Hauptspeicher geringer als die Zahl der disponierbaren
Defektadressenspeicher ist, wird man nicht gezwungen, die nicht
gebrauchten Zellen der Adressenspeicher zu programmieren.
Insbesondere kann man für den Fall, daß ein Speicher überhaupt
keine Fehler hat, alle Zellen der CAM-Speicher im
nichtprogrammierten Zustand belassen.
-
Die Erfindung läßt sich auch in Varianten anwenden und
insbesondere in jenen, die in den Patentanmeldungen beschrieben
sind, die gleichzeitig von derselben Anmelderin eingereicht
wurden. Insbesondere kann die Programmierung dadurch
erfolgen,
daß man eine Spannung von 5 bis 7 Volt (und nicht Null
Volt) an die Source anlegt und eine Spannung Null (und nicht
5 bis 7 Volt) an den Drain des Transistors mit offenem
Gitter, der programmiert werden muß, wobei der Drain des anderen
Transistors hochimpedant bleibt. Außerdem können
Isolationstransistoren zwischen die Transistoren T5 bzw. T6 und den
Drain des entsprechenden Transistors mit offenem Gitter
geschaltet werden. Diese Transistoren werden durch ein
gemeinsames CAMSEL-Signal angesteuert, das die Transistoren erst
leitend macht, wenn diese Zelle programmiert werden muß (zur
gleichen Zeit wie andere Zellen einer gleichen zu
speichernden fehlerhaften Adresse entsprechend); wenn andere Gruppen
von Zellen zu programmieren sind oder wenn man sich im
Lesemodus befindet, sperren die Isolationstransistoren.