-
Diese Erfindung betrifft integrierte Schaltkreise. Ihr
Gegenstand ist eine elektrisch programmierbare,
nichtflüchtige bistabile Kippschaltung. Sie ist im wesentlichen, aber
nicht ausschließlich, dazu bestimmt, in einer
Speicherredundanzschaltung eines integrierten Schaltkreises verwendet zu
werden.
-
Um die Erfindung in dem Zusammenhang, in dem sie entwickelt
wurde, verständlich zu machen, werden zunächst
zusammenfassend die Prinzipien der heute in Großraumspeichern
verwendeten Redundanzschaltungen in Erinnerung gerufen.
-
Die Redundanzschaltungen eines Speichers kommen zum Einsatz,
wenn in den Reihen (Wortlinien für das Adressieren des
Speichers) oder den Spalten (Bitlinien für den Transport der aus
dem Speicher zu lesenden oder in ihn zu schreibenden Daten)
Fehler auftreten.
-
Wenn beispielsweise eine Spalte defekt ist, wird sie
folgendermaßen durch eine Redundanzspalte ersetzt: Die Adresse der
defekten Spalte wird in einem Speicher für Defekt-Adressen
gespeichert; dieser Speicher für Defekt-Adressen ist ein
Speicher, der über seinen Inhalt adressierbar ist (im
folgenden CAM-Speicher genannt); jedesmal, wenn eine Adresse im
Hauptspeicher zur Anwendung kommt, kommt diese Adresse
ebenfalls im CAM-Speicher zur Anwendung. Wenn die angelegte
Adresse identisch mit der gespeicherten Adresse ist,
schaltet sich eine Redundanzschaltung ein und bewirkt, daß die
defekte Spalte ausgeschaltet und an ihrer Stelle eine
Redundanzspalte eingeschaltet wird, und zwar für den Benutzer
nicht sichtbar.
-
In der Praxis wird je nach der Organisation des
Hauptspeichers im Falle einer defekten Spalte vielmehr eine
Spaltengruppe,
die diese defekte Spalte beinhaltet, durch eine
Redundanzspaltengruppe ersetzt: Wenn eine Spaltengruppe durch
ein Adreßbit des Großraumspeichers definiert ist, wird im
allgemeinen diese Spaltengruppe insgesamt ersetzt. Im
folgenden wird zur Vereinfachung lediglich vom Ersetzen einer
Spalte anstatt vom Ersetzen einer Spaltengruppe gesprochen.
-
Bei einem Hauptspeicher mit mehreren Megabits ist die
Möglichkeit vorgesehen, mehrere Defekte zu reparieren; es sind
daher ebenso viele Redundanzspalten vorhanden wie
fehlerhafte Spalten oder Linien, die repariert werden können
sollen. Es ist jeder Redundanzspalte ein CAM-Speicher
zugeordnet, der die Adresse einer defekten Spalte enthält. Wenn
N Defekte repariert werden sollen, sind N Redundanzspalten
und N CAM-Speicher erforderlich. Bei einem Speicher mit 4
oder 16 Megabit ist typischerweise N=36.
-
Wenn eine Spalte des Hauptspeichers durch eine Adresse mit M
Bits (z. B. M=5) bezeichnet wird, enthält jeder CAM-Speicher
mindestens M+1 Bits : M Bits, um die Adresse einer defekten
Spalte zu definieren, und ein Freigabebit, um anzugeben, daß
die diesem CAM-Speicher entsprechende Redundanzschaltung
tatsächlich aktiviert werden soll, wenn die Defekt-Adresse
im CAM-Speicher zur Anwendung kommt.
-
Zur Herstellung der CAM-Speicher wurden zunächst Gruppen von
physischen Sicherungen verwendet, die elektrisch oder mit
Laserstrahl mit einem Gate versehen wurden, wobei jede
Sicherung ein Adreßbit oder ein Freigabebit darstellte.
Diese Sicherungen hatten Nachteile (hinsichtlich
Zuverlässigkeit, Platzbedarf, Verbrauch, Programmierprobleme) und
wurden rasch durch nicht löschbare, nichtflüchtige
Speicherzellen ersetzt. Letztere hatten ebenfalls Nachteile (hoher
Stromverbrauch), und man wandte sich immer mehr der
Verwendung von programmierbaren bistabilen Kippschaltungen zu, die
für jedes Adreßbit oder Freigabebit zwei Transistoren mit
Floating Gate aufwiesen. Eine solche Anordnung ist aus der
Schrift EP-A-6 525 686 bekannt. Der Oberbegriff von Anspruch
1 geht von dieser Schrift aus.
-
Fig. 1 zeigt eine nichtflüchtige, programmierbare bistabile
Kippschaltung nach dem bisherigen Stand der Technik, die
eine Zelle zum Speichern eines Defekt-Adressen-Bit (oder
eines Freigabebit) bildet und damit eine der M+1 Zellen
eines Defekt-Adressen-CAM-Speichers bildet.
-
Der Ausgang OUT dieser Zelle ist je nach dem Zustand, in dem
die Kippschaltung programmiert ist, auf einem logischen
Niveau 0 oder 1. Dieser Ausgang legt also den Wert eines
Adreßbit (oder den Wert eines Freigabebit) fest.
-
Wenn die Zelle einem der M Defekt-Adressen-Bits entspricht,
wird der Ausgang jeder Zelle dieser M Adressen-Bits an einen
Eingang eines Exklusives-ODER-Glieds (nicht dargestellt)
angelegt. Das Exklusives-ODER-Glied empfängt an einem
anderen Eingang ein entsprechendes, durch den Hauptspeicher
empfanges Adreßbit; die Ausgänge der
Exklusives-ODER-Glieder, die den verschiedenen Adreßbits ein und desselben
Defekt-Adressen-Speichers entsprechen, werden an einen
Eingang eines NOR-Glieds (nicht dargestellt) angelegt; der
Ausgang des letzteren gibt nur dann ein logisches Niveau von 1
ab&sub1; wenn zwischen allen angelegten Adreßbits und allen
entsprechenden Bits des Defekt-Adressen-Speichers
übereinstimmung besteht. Der Ausgang des NOR-Gliedes wird durch den
Ausgang der dem Freigabebit entsprechenden Speicherzelle,
beispielsweise mittels eines UND-Gliedes (nicht
dargestellt) , freigegeben. Der Ausgang des UND-Gliedes ist der
Ausgang des CAM-Speichers und dient dazu, jedesmal, wenn die
im Hauptspeicher zur Anwendung kommende Adresse der
gespeicherten Defekt-Adresse entspricht, eine Redundanzspur
einzuschalten.
-
Im allgemeinen Fall sind N Defekt-Adressen-Speicher
vorhanden, beispielsweise N=36. Beim Test des Hauptspeichers löst
das Erkennen einer defekten Spalte das Speichern der Adresse
dieser Spalte in einem der CAM-Speicher aus. So werden die
einzelnen CAM-Speicher nacheinander im Maße der Erkennung
der Defekte programmiert. Bei Normalbetrieb des
Hauptspeichers kommen dessen Adressen gleichzeitig in allen CAM-
Speichern zur Anwendung. Wenn zwischen der angelegten
Adresse und der in einem von diesen gespeicherten Adresse
Entsprechung herrscht, wird die dieser entsprechende
Redundanzspur eingeschaltet.
-
Um eine Defekt-Adresse in einem CAM-Speicher programmieren
zu können, wird vorgesehen, daß ein jeweiliges Adreßbit des
Hauptspeichers an jede Zelle des CAM-Speichers angelegt
wird. Die Programmierung erfolgt auf Befehl des Testgeräts
bei Erkennung eines Defekts mit der gerade im Test
befindlichen Adresse.
-
Die in Fig. 1 dargestellte einzelne Speicherzelle weist zwei
Zweige mit einem Transistor mit Floating Gate TGF1, TGF2 in
jedem Zweig auf; die Zweige sind so ausgeführt, daß sie eine
bistabile Kippschaltung bilden, sobald einer dieser beiden
Transistoren programmiert ist; der Zustand der
Kippschaltung, der durch den Ausgang OUT dargestellt wird und einem
Adreßbit oder einem Freigabebit entspricht, ist damit
abhängig von demjenigen der beiden Transistoren, der programmiert
ist. Zu Beginn sind die beiden Transistoren in
unprogrammiertem Zustand oder unbenutztem Zustand. Beim Speichertest
wird einer der beiden Transistoren programmiert, um entweder
0 oder 1 am Ausgang OUT der Zelle zu erhalten, wodurch ein
endgültiger stabiler Zustand 0 oder 1 der Zelle definiert
wird.
-
Genauer ausgedrückt, besteht die Zelle von Fig. 1 aus zwei
identischen Zweigen, die zwischen einer Versorgungsklemme A
(Potential Vcc in der Größenordnung von 3 V) und einer
Klemme B parallel geschaltet sind; die Klemme B befindet
sich im Lese- oder Programmiermodus auf einem Potential VS
null und kann im Löschmodus auch auf ein Potential VS hoch
(12 V) gebracht werden, wenn ein Löschmodus vorgesehen ist
(Flash EPROM); in jedem Zweig befinden sich in Reihe ein P-
Transistor (Tl, T2) ein N-Transistor (T3, T4) und ein
Transistor mit Floating Gate (TGF1, TGF2) Das Gate des P-
Transistors (T1, T2) des einen Zweiges ist mit dem Drain
des P-Transistors des anderen Zweiges verbunden. Die Gates
des N-Transistoren (T3, T4) sind zusammen mit einem
gemeinsamen Potential VB verbunden, dessen Wert von dem
Betriebsmodus abhängt (ca. 1,8 Volt beim Lesen; null Volt beim
Programmieren oder Löschen, um beini Lesen 1 Volt am Drain der
Zellen zu erhalten). Die Transistoren T3 und T4 sind
Isolationstransistoren, um die Übertragung der relativ hohen
Spannungen, die im Programmier- oder Löschmodus an die
Floating Gate-Transistoren angelegt werden, auf die
Transistoren T1 und T2 zu verhindern. Die Gates der Transistoren
mit Floating Gate TGF1, TGF2 sind mit einem gemeinsamen
Potential VGF verbunden, das von dem Betriebsmodus abhängt
(ca. 3 V beim Lesen, 12 V beim Programmieren) . Die Source
dieser Transistoren ist mit dem Knoten B (Potential VS)
verbunden. Die Drain-Potentiale der Transistoren mit
Floating Gate werden von den Transistoren T5 bzw. T6
gesteuert, wodurch der Drain mit einem Programmierpotential
VPRG verbunden werden kann (Transistor T5 oder T6 leitend)
oder der Drain auf hoher Impedanz belassen werden kann
(Transistor T5 oder T6 sperrend). Im Programmiermodus wird
das Gate des Transistors T5 durch ein Programmiersignal PROG
und das Gate von T6 durch ein Komplementärsignal NPROG
gesteuert. Auf diese Weise wird je nach Zustand des Signals
PROG gewählt, welcher der beiden Transistoren mit Floating
Gate programmiert werden soll und welcher unprogrammiert
bleiben soll. Im Lesemodus bleibt der Drain der Transistoren
T5 und T6 auf hoher Impedanz, da die Spannung VPRG nicht an
diese Drains angelegt wird.
-
Die Zelle wird "bistabil" genannt, da sie bei zwei möglichen
Zuständen einen stabilen Zustand besitzt, wobei der stabile
Zustand, den sie einnimmt, davon abhängt, welcher der
beiden Transistoren programmiert wurde. Der Zustand der Zelle
wird am Drain eines der P-Transistoren (z. B. T2) gelesen.
Dieser Drain ist mit dem Eingang eines ersten Inverters
INV1, auf den ein zweiter Inverter INV2 folgt, verbunden.
Der Ausgang von INV2 ist der Ausgang OUT der Zelle. Der
Ausgang von INV1 dient bei Bedarf als Komplementärausgang
NOUT.
-
Schließlich kann mit einem zusätzlichen Transistor T7 nur im
Testmodus zur Vermeidung von gleitenden Knoten bei
gesperrten T3 und T4 der Eingang des Inverters INV1 vorübergehend
an die Masse gelegt werden (um den Zustand der Zelle bei
jedem erneuten Einschalten zu initialisieren); das Gate dieses
Transistors wird durch einen Initialisierungs-Strobeimpuls
INIT gesteuert, der von einem herkömmlichen Einschalt-
Schaltkreis ("Power On Reset"), der nicht dargestellt ist,
erzeugt wird. Um die Kippschaltung in dem einen oder dem
anderen Zustand zu programmieren, wird eine hohe
Programmierspannung (VGF = ca. 12 V) an die Steuergitter der
Transistoren mit Floating Gate angelegt, und es wird eine
mittlere Spannung (VPROG = 5 bis 7 V) an den Drain an
denjenigen der Transistoren TGF1 oder TGF2 angelegt, der
programmiert werden soll. Das Signal PROG/NPROG definiert
den Zustand 0 oder 1, der programmiert werden soll. Das
Programmieren erfolgt durch heiße Elektronen, d. h. mit
Stromfluß in dem Transistor, der programmiert wird. Die
Transistoren T3 und T4 sind während des Programmierens
gesperrt (VB = 0) , damit die Spannung VPRG nicht an den
Transistoren T1 und T2 anliegt, die
Niederspannungstransistoren sind. Das Potential der Source VS wird auf Null
aesetzt.
-
Der allgemeine Aufbau einer Gruppe von Flip-Flop-Zellen, die
einen adressierbaren Speicher bildet, ist in Fig. 2 für den
Fall dargestellt, daß es gewünscht wird, die Zellen ferner
durch Anlegen eines hohen Potentials an die Sourcen der
Transistoren global zu löschen (ein Fall, in dem die
Transistoren mit Floating Gate Flash-EPROM-Transistoren sind)
-
Die Flip-Flop-Zellen werden mit C0 bis Cn bezeichnet. Jede
kann die Spannung VPRG, die Spannung VGF, die Spannung Vcc,
die Spannung VB, die Spannung VS (alle diese Spannungen sind
allen Zellen gemeinsam) sowie die Programmierdaten
empfangen, die für jede Zelle je nach dem Zustand, in dem sie
programmiert werden soll, spezifisch sind PROG0, NPROG0 für
die Zelle C0; PROG1, NPROG1 für die Zelle C1 etc.
-
Die Zellen liefern im Lesemodus die Komplementärausgaben
OUT0, NOUT0 für die Zelle C0 und die entsprechenden Signale
für die anderen Zellen: OUT1, NOUT1 etc.
-
Im Lese- oder Programmiermodus wird VS durch ein
Steuersignal RD (Lesen) oder PR (Programmieren) auf Null gesetzt.
Im Löschmodus wird VS durch ein Steuersignal ER auf eine
hohe Spannung VER (ca. 12 V) gesetzt. Im Programmiermodus
(PR) wird effektiv die Spannung VPRG an die Transistoren T5
und T6 der Zellen angelegt.
-
Im Programmiermodus müssen die Programmierdaten-Signale (Z
B. PROG0, NPROG0) mit einer ausreichenden Potentialhöhe
abgegeben werden, um die Transistoren T5 und T6 zu steuern
(Fig. 1) und die Spannung VPRG, die hoch ist (5 bis 7 V), zu
übertragen. Nun sind die Programmierdaten-Signale einfach
Adreßbits D0 bis Dn, die vom Adressendekoder des
Hauptspeichers kommen; sie kommen also von logischen Schaltungen mit
Niederspannung (bei dieser Art von Schaltung ist im
allgemeinen Vcc 3 V). Es ist also erforderlich, einen
Spannungserhöher zwischen jedes Datensignal (D0 bis Dn) mit
Niederspannung und die Eingänge PROG0, NPROG0 ... PROGn,
NPROGn mit höherer Spannung zu schalten. Diese
Spannungserhöher, die in Fig. 2 mit AL0 bis ALn bezeichnet sind, sind
platzraubend (beispielsweise jeweils ein Dutzend
Transistoren).
-
Ein Zweck der Erfindung besteht darin, den Platzbedarf des
Speichers, der aus einer Gruppe von programmierbaren,
nichtflüchtigen Flip-Flop-Zellen besteht, allgemein zu
verringern.
-
Zur Verbesserung der Speicher dieses Typs schlägt die
Erfindung vor, die Transistoren mit Floating Gate durch die
Source zu programmieren, d. h. indem eine hohe
Programmierspannung an die Source und nicht an den Drain angelegt wird
und indem der Drain an die Masse gelegt oder auf hohe
Impedanz gesetzt wird, je nachdem, ob der Transistor
programmiert werden soll oder nicht.
-
Genauer ausgedrückt, betrifft die Erfindung einen Speicher,
der aus Flip-Flop-Zellen mit jeweils zwei Transistoren mit
Floating Gate besteht, und ist dadurch gekennzeichnet, daß
der Speicher Mittel aufweist, um im Programmiermodus eine
erste fixe Programmierspannung an die Sourcen der
Transistoren mit Floating Gate der verschiedenen Zellen anzulegen,
eine zweite fixe Programmierspannung an die Steuergitter
anzulegen, und gemäß dem für die Zelle gewünschten
Programmierzustand eine Nullspannung oder einen Zustand hoher
Impedanz
an die Drains anzulegen. Die Nullspannungsreferenz ist
die im Lesemodus an die Sourcen angelegte Spannung.
-
Bel der Erfindung werden vorzugsweise Speicher mit
Transistoren des Typs Flash-EPROM verwendet, die durch heiße
Elektronen programmierbar und durch Anlegen eines ausreichenden
Feldes zwischen Gate und Source löschbar sind.
-
Es wird also nicht der Aufbau der Speicherzelle verändert,
sondern die Programmiersteuerung unterscheidet sich stark,
und die Programmierschaltungen sind folglich anders, wobei
dies insbesondere beinhaltet, daß die Schaltkreise zur
Spannungserhöhung AL0 bis ALn wegfallen.
-
Weitere Merkmale und Vorteile der Erfindung gehen aus der
folgenden detaillierten Beschreibung unter Bezugnahme auf
die beigefügten Zeichnungen hervor, wobei
-
- Fig. 1, wie bereits beschrieben, eine bekannte
Speicherzelle darstellt,
-
- Fig. 2 eine Speicherorganisation mit mehreren Zellen nach
dem bisherigen Stand der Technik darstellt,
-
- Fig. 3 eine erfindungsgemäße Speicherorgansation
darstellt.
-
In Fig. 3 ist die allgemeine Organisation des
erfindungsgemäßen Speichers zu sehen, der einen Defektadressenspeicher
darstellen soll, der Teil der Redundanzschaltungen eines
Hauptspeichers ist und dazu bestimmt ist, Adressen von
defekten Elementen des Hauptspeichers zu speichern.
-
Die Speicherzellen sind wie in Fig. 1 ausgeführt und können
daher die folgenden Spannungen aufnehmen:
-
- Vcc (ca. 3 V) am Knoten A,
-
- VPRG, die erfindungsgemäß gleich null Volt ist, am Drain
der Transistoren T5 und T6 nur im Programmiermodus,
-
- VGF gleich ca. 12 V im Programmiermodus oder 3 V im
Lesemodus an den Gates der Transistoren mit Floating Gate,
-
- VS gleich ca. 5 bis 7 V im Programmiermodus, 0 V im
Lesemodus und ca. 12 V im Löschmodus an dem Knoten B,
-
- VB, das Polarisierungspotential der Gates der Transistoren
T3 und T4, dessen Wert ausreicht (ca. 1,8 V), um diese
Transistoren im Lesemodus leitend zu machen und um sie im
Programmiermodus zu sperren (VB=0)
-
- ein Programmierdatum in Form eines logischen Signals und
dessen Komplementärsignals, z. B. D0 und ND0 für die Zelle
0, D1, ND1 bis Dn, NDN für die weiteren Zellen; diese
logischen Signale mit niedriger Spannung kommen vom
Adressendekoder des Hauptspeichers und werden direkt und ohne
Zwischenschalten von Spannungserhöhern an die Gates der
Transistoren T5 und T6 angelegt.
-
In Fig. 3 sind die sehr einfachen Schaltkreiselemente
dargestellt, mit denen verschiedene mögliche Potentiale VS an den
Knoten B der Zellen angelegt werden können.
-
Ein erster Transistor 11 wird durch ein
Lesemodus-Steuersignal RD leitend gemacht. Dadurch kann dann das
Massepotential (VS=0) an den Knoten B aller Zellen zugleich übertragen
werden. Ein zweiter Transistor 12 wird durch ein Löschmodus-
Steuersignal ER leitend gemacht. Dadurch kann ein hohes
Löschpotential VS=VER (z. B. 12 V) an den Knoten B aller
Zellen zugleich übertragen werden. Schließlich wird ein
dritter Transistor 13 durch ein Programmier-Steuersignal FR
leitend gemacht. Dadurch kann ein
Zwischenprogrammierungspotential VS=VPR (5 bis 7 V) an den Knoten B aller Zellen
zugleich übertragen werden. Dieses Potential VPR wird von
einem Versorgungsschaltkreis AL abgegeben, z. B. aus einer
externen Versorgungsspannung Vpp von 12 V.
-
Für die Programmierung bestimmt das Programmierdatum D0,
ND0, welcher der Transistoren T5, T6 der Zelle C0 leitend
gemacht wird, wobei der andere dann gesperrt wird.
Derjenige, der leitend gemacht wird, verbindet den Drain des
entsprechenden Transistors mit Floating Gate mit der Masse; die
Source hat 5 bis 7 V und das Gate hat eine
Programmierspannung von einem Dutzend Volt: Der Transistor mit Floating
Gate wird durch heiße Elektronen programmiert. Der andere
empfängt die gleichen Gate- und Source-Spannungen, jedoch
sein Drain bleibt auf hoher Impedanz: er wird nicht
programmiert.
-
Das Lesen und Löschen erfolgt mit den herkömmlichen
Verfahren: zum Lesen empfangen die Drains der Transistoren T5 und
T6 keine Programmierspannung VPRG mehr und bleiben auf hoher
Impedanz, mit dem Knoten B an der Masse; zum Löschen liegt
der Knoten B an 12 V, die Gates der Transistoren mit
Floating Gate liegen an der Masse.
-
Mit Hilfe der Erfindung kann man sich darauf beschränken,
eine einzige Schaltung zur Spannungserhöhung AL für alle
Zellen anstatt einen Spannungserhöher für jede Zelle zu
verwenden. Auf diese Weise wird auf der integrierten Schaltung
Platz gespart.
-
Die Erfindung kann auch auf andere Speicherzellen als die in
Fig. 1 dargestellten angewendet werden. Insbesondere kann
sie auf die Zellen angewendet werden, die in den von der
Anmelderin zugleich eingereichten Patentanmeldungen
beschrieben werden, bei denen die Zelle beispielsweise einen
Zusatztransistor aufweist, der durch den Ausgang OUT gesteuert
wird und zwischen den Transistor T2 und den Transistor T4
geschaltet ist (um die Zelle in ein Ungleichgewicht zu
bringen, so daß sie bereits vor dem Programmieren einen
bestimmten stabilen Zustand hat) ; oder auch auf eine Zelle,
bei der Isolationstransistoren zwischen die Transistoren T5
und T6 und die Drains von TGF1 und TGF2 geschaltet sind,
wobei mit diesen Transistoren, die durch ein einziges Signal
gesteuert werdent eine einzelne Gruppe von Zellen zugleich
angewählt werden kann, und wobei diese Transistoren im
Lesemodus gesperrt sind, um die Störübertragung von Signalen zur
Zelle zu vermeiden.