-
HINTERGRUND
-
Bereich der Erfindung
-
Die
vorliegende Erfindung betrifft nichtflüchtige Halbleiterspeicher wie
z.B. EPROM, EEPROM und Flash-Speicher und insbesondere Speicherarchitekturen,
die hohe Datenübertragungsraten
ermöglichen.
-
Beschreibung der verwandten
Technik
-
Nichtflüchtige Halbleiterspeicher
wie EPROM, EEPROM und Flash-Speicher, die eine elektrische Programmierung
und Löschung
von Speicherzellen zulassen, sind hinlänglich bekannt. Solche Speicher
beinhalten herkömmlicherweise
Arrays von Speicherzellen, wobei jede Speicherzelle einen Floating-Gate-Transistor
beinhaltet. Schreib- und Löschschaltungen,
die mit einer Array gekoppelt sind, ändern die Schwellenspannungen
von Floating-Gate-Transistoren, indem sie die floatenden Gates der
Transistoren elektrisch laden oder entladen. Insbesondere lädt die Schreibschaltung
zum Schreiben auf eine Speicherzelle das floatende Gate des Floating-Gate-Transistors
in der Speicherzelle so lange, bis die Schwellenspannung des Transistors auf
einem Pegel ist, der den geschriebenen Wert repräsentiert. Die Leseschaltung
erfasst die Schwellenspannung eines Floating-Gate-Transistors in
einer Speicherzelle, um den in der Zelle gespeicherten Wert zu ermitteln.
-
In
verschiedenen Anwendungen kann die Schwellenspannung eines Floating-Gate-Transistors ein
einzelnes Bit, mehrere Bits oder einen Analogwert repräsentieren.
Für konventionelle
binäre
(d.h. ein Bit pro Zelle) nichtflüchtige
Speicher repräsentieren
Schwellenspannungen unterhalb eines Haltepunktpegels einen binären Wert
(0 oder 1), und Schwellenspannungen oberhalb des Haltepunktpegels
repräsentieren
den anderen binären
Wert (1 oder 0). Demgemäß stellen
Lösch-
und Schreibschaltungen in einem binären Speicher die Schwellenspannung
jeder Speicherzelle entweder auf einen hohen Pegel oder auf einen
tiefen Pegel ein, und die Leseschaltung kann leicht zwischen den
Pegeln unterscheiden. Schwellenspannungen von Speicherzellen in
Speichern mit mehreren Bits pro Zelle oder in Analogspeichern haben
jeweils mehrere (4, 8, 16 oder mehr) getrennte Schwellenspannungsbanden oder
einen kontinuierlichen Pegelbereich. Demgemäß benötigen Speicher mit mehreren
Bits pro Zelle sowie analoge Speicher beim Schreiben von Schwellenspannungen
eine präzise
Steuerung und beim Identifizieren von Schwellenspannungen eine hohe Genauigkeit.
Die Schreib- und Leseschaltungen, die die für Speicher mit mehreren Bits
pro Zelle sowie für analoge Speicher
benötigte
Präzision
und Genauigkeit erzielen, sind gewöhnlich langsamer als Schreib- und
Lesespeicher für
binäre
Speicher. Demgemäß sind die
Lese- und Schreibgeschwindigkeiten von Lese- und Schreibschaltungen
in Speichern mit mehreren Bits pro Zelle sowie in analogen Speichern
normalerweise geringer als ihre binären Pendants.
-
Zum
Verbessern der Lese- und Schreibdatenraten (d.h. der Bandbreite)
für einen
analogen Speicher ist ein Speichersystem bekannt, das ein Paar Puffer
und mehrere Schreibschaltungen verwendet. Das Speichersystem sammelt
sequentiell Daten in einem ersten Puffer, während es parallel die Daten
von einem zweiten Puffer in eine Speicherarray schreibt. Die Puffer
tauschen ihre Rollen, wenn das Schreiben der Daten von dem zweiten
Puffer fertig ist und der erste Puffer mit Daten gefüllt ist.
Ebenso kann ein analoger Speicher ein Paar Puffer und einen Satz
von parallelen Leseschaltungen zum Verbessern der Lesegeschwindigkeiten
verwenden. Ein Nachteil solcher Speicher sind die höheren Kosten
in Verbindung mit der Zunahme der Schaltungskomplexität und der
integrierten Schaltungsfläche.
-
Die
US-A-5,680,341 mit dem Titel „Pipelined Record
and Playback for Analog Non-Volatile Memory" von Wong et al. beschreibt Speichersysteme,
die mehrere Lese- und
Schreib-Pipelines verwenden. Eine Pipeline-Schreibarchitektur hat
beispielsweise mehrere Schreib-Pipelines, wobei jede Schreib-Pipeline
eine Abtast-Halte-Schaltung und einen Schreibschaltkomplex zum Schreiben
eines Wertes aus der Abtast-Halte-Schaltung in eine Speicherzelle
beinhaltet. Schreib-Pipelines werden sequentiell gestartet, wenn
die Abtast-Halte-Schaltungen zu schreibende Werte erfassen. Bis
zu dem Zeitpunkt, an dem die letzte Schreib-Pipeline in der Sequenz
einen Schreibvorgang startet, hat die erste Pipeline in der Sequenz
einen zuvor gestarteten Schreibvorgang vollendet und ist jetzt bereit,
einen weiteren zu starten. Demgemäß kann eine Pipeline-Architektur
die Schreibbandbreite proportional zur Anzahl der verwendeten Schreib-Pipelines
erhöhen,
ohne dass dies auf Kosten von Genauigkeit oder Auflösung ginge.
Eine Pipeline-Lesearchitektur
kann auch zum Erhöhen
der Lesebandbreite verwendet werden. Ein Vorteil, den die Pipeline-Speicherarchitektur
gegenüber
der parallelen Lese- und Schreibarchitektur hat, ist ein geringerer
erforderlicher Schaltungsaufwand. Insbesondere erfordert die parallele
Architektur zwei Abtast-Halte-Schaltungen (eine in jedem Puffer)
für jede
Lese- oder Schreibschaltung. Die Pipeline-Architektur benötigt lediglich
eine einzige Abtast-Halte-Schaltung pro Lese- oder Schreibschaltung.
Somit kann die Pipeline-Architektur die Schaltungskosten durch Verringern
der benötigten
integrierten Schaltungsfläche
reduzieren. In der US-A-5,680,341 umfasst jede Pipeline eine Abtast-Halte-Schaltung.
-
Die
EP 798 739 offenbart eine
Leseschaltung, die eine Grob-zu-fein-Suche durchführt, wenn die
Schwellenspannung einer Speicherzelle gelesen wird, und einen Treiber,
der eine Gatterspannung einer Speicherzelle ändert, und eine Leseschaltung beinhaltet,
die erkennt, wenn die Speicherzelle auslöst.
-
Speicherarchitekturen,
die eine hohe Bandbreite für
einen analogen Datenfluss und einen Datenfluss mit mehreren Bits
pro Zelle bereitstellen, aber noch weniger Schaltungsfläche benötigen, sind wünschenswert.
-
ZUSAMMENFASSUNG
-
Gemäß einem
ersten Aspekt der Erfindung wird ein Speicher bereitgestellt, der
Folgendes umfasst: eine Mehrzahl von Pipelines, wobei jede Pipeline
Folgendes umfasst: eine Array von nichtflüchtigen Speicherzellen; eine
erste Abtast-Halte-Schaltung; eine zweite Abtast-Halte-Schaltung;
eine Auswahlschaltung, die während
eines Schreibvorgangs als Reihenleitungsspannung aus einem Satz
von Spannungen einschließlich
einer ersten Spannung von der ersten Abtast-Halte-Schaltung und
einer zweiten Spannung von der zweiten Abtast-Halte-Schaltung auswählt; einen
Reihendecoder, der mit der Array und der Auswahlschaltung gekoppelt
ist, wobei der Reihendecoder eine Reihenleitung auswählt und
die Reihenleitungsspannung von der Auswahlschaltung an die gewählte Reihenleitung
anlegt; und einen Spannungsgenerator, der ein erstes Schreibsignal
mit einer Spannung, die von einem in den Spannungsgenerator eingehenden
Datensignal abhängig
ist, und ein zweites Schreibsignal erzeugt, wobei jede erste Abtast-Halte-Schaltung
in den Pipelines zum Abtasten des ersten Schreibsignals gekoppelt
ist, und wobei jede zweite Abtast-Halte-Schaltung in der Pipeline zum Abtasten
des zweiten Schreibsignals gekoppelt ist.
-
Gemäß einem
zweiten Aspekt der Erfindung wird ein Speicher bereitgestellt, der
Folgendes umfasst: eine Mehrzahl von Pipelines, wobei jede Pipeline
Folgendes umfasst: eine Array von nichtflüchtigen Speicherzellen; einen
Reihendecoder, der mit Reihenleitungen in der Array gekoppelt ist;
einen Spaltendecoder, der mit Spaltenzeilen in der Array gekoppelt
ist; eine erste Abtast-Halte-Schaltung; eine zweite Abtast-Halte-Schaltung; einen
Multiplexer mit Eingangsanschlüssen,
die mit Ausgangsanschlüssen
der ersten oder zweiten Abtast-Halte-Schaltung gekoppelt sind; eine
Auswahlschaltung; und einen Leseverstärker, der während eines Lesevorgangs durch
den Spaltendecoder mit einer gewählten
Reihenleitung, auf der sich eine gewählte Speicherzelle befindet,
und mit einem Taktanschluss der ersten Abtast-Halte-Schaltung gekoppelt
ist; und eine Spannungsrampenschaltung, die während des Lesevorgangs so geschaltet
ist, dass sie an die Reihendecoder in den Pipelines ein Lesesignal
mit einer Spannung, die sich über
einen Spannungsbereich bewegt, anlegt, wobei während des Lesevorgangs der
Reihendecoder das Lesesignal an die gewählte Reihenleitung anlegt,
und die Auswahlschaltung so gekoppelt ist, dass gewählt wird,
ob der Leseverstärker
die Abtastwerte der ersten Abtast-Halte-Schaltung oder der zweiten
Abtast-Halte-Schaltung taktet, wenn der Leseverstärker einen Übergang
in der Leitfähigkeit der
gewählten
Speicherzelle erfasst.
-
Somit
beinhaltet gemäß der vorliegenden
Erfindung die Speicherarchitektur für einen nichtflüchtigen
analogen Speicher oder einen nichtflüchtigen Speicher mit mehreren
Bits pro Zelle mehrere unabhängige
Speicherarrays und mehrere Lese/Schreib-Pipelines. Die mehreren Lese/Schreib-Pipelines
nutzen eine Leseschaltung und/oder eine Schreibschaltung gemeinsam,
um die Schaltungsfläche
jeder Pipeline und die Schaltungsfläche des Speichers insgesamt
zu reduzieren. In einer Ausgestaltung erzeugt eine gemeinsam genutzte Schreibschaltung
eine Programmierspannung, die sich mit einem Eingangssignal ändert, das
auf den Speicher zu schreibende Werte repräsentiert. Jede Pipeline beinhaltet
eine Abtast-Halte-Schaltung, die die Programmierspannung abtastet,
wenn die Pipeline einen Schreibvorgang beginnt. Die Schreibschaltung
kann zusätzlich
eine Prüfspannung
erzeugen, die eine zweite Abtast-Halte-Schaltung in jeder Pipeline
abtastet, wenn ein Schreibvorgang beginnt. Die Prüfspannung
identifiziert eine Zielschwellenspannung für einen Schreibvorgang. Jede
Pipeline verwendet die Programmierspannung aus ihren eigenen Abtast-Halte-Schaltungen
beim Erzeugen von Impulsen, die den Schwellenwert einer gewählten Speicherzelle ändern, und
verwendet die Prüfspannung aus
ihrer eigenen Abtast-Halte-Schaltung in Prüfzyklen, die ermitteln, ob
die Zielschwellenspannung erreicht und ein Schreibvorgang abgeschlossen
ist.
-
In
einer anderen Ausgestaltung erzeugt eine gemeinsam genutzte Leseschaltung
ein Lesesignal, das über
den Bereich der zulässigen
Schwellenspannungen für
die Speicherzellen rampenartig ansteigt, und ein Leseverstärker in
jeder Pipeline taktet eine Abtast-Halte-Schaltung oder eine andere
temporäre Speicherschaltung
wie z.B. einen Flipflop oder Latch in der Pipeline, wenn der Leseverstärker einen Übergang
der Leitfähigkeit
einer gewählten
Speicherzelle erfasst. Wenn getaktet, registriert die Abtast-Halte-Schaltung ein
analoges Signal, das dem Lesesignal entspricht, und zeigt einen
Datenwert in Verbindung mit der Spannung des Lesesignals an. In
alternativen Ausgestaltungen ist das registrierte Signal das Lesesignal,
ein von dem Lesesignal konvertiertes Signal oder ein Multibit-Digitalsignal.
Beim Abtasten des Lesesignals ist die registrierte Spannung gleich
der Schwellenspannung der gewählten
Speicherzelle. Das Abtasten der konvertierten Form des Lesesignals
kann effektiv die Schwellenspannung direkt auf einen Datenwert mappen.
Das Abtasten des Multibit-Digitalsignals
unter Verwendung eines Satzes von Flipflops oder Latches ergibt
direkt einen Multibit-Wert, der aus einer Speicherzelle gelesen wird,
und erfordert keine weitere A/D-Umwandlung.
-
Alternativ
verwendet ein Speicher mit mehreren Bits pro Zelle einen analogen
Lesevorgang (und einen analogen Schreibvorgang), konvertiert aber
die ausgegebenen Analogsignale in die digitale Form (und konvertiert
die digitalen Multibit-Eingangssignale
in die analoge Form).
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm eines analogen Speichers gemäß einer Ausgestaltung der Erfindung;
-
2 zeigt
Timing-Diagramme für
einen Aufzeichnungsprozess gemäß einer
Ausgestaltung der Erfindung;
-
3 und 4 zeigen
Timing-Diagramme für
einen Wiedergabeprozess gemäß alternativen Ausgestaltungen
der Erfindung;
-
5A und 5B zeigen
einige alternative Wellenformen für ein Lesesignal, das bei Lesevorgängen gemäß alternativen
Ausgestaltungen der Erfindung verwendet wird;
-
6 ist
ein Blockdiagramm eines Speichers mit mehreren Bits pro Zelle gemäß einer
Ausgestaltung der Erfindung;
-
7 zeigt
eine Abtast-Halte-Schaltung, die für Speicher der 1 und 6 geeignet
ist.
-
Gleiche
Bezugsziffern in verschiedenen Figuren weisen auf ähnliche
oder identische Teile hin.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN
AUSGESTALTUNGEN
-
Gemäß einem
Aspekt der Erfindung beinhaltet eine Speicherarchitektur mehrere
Speicherarrays in mehreren Lese/Schreib-Pipelines. Die mehreren Arrays
bieten hohe Leistung und einen hohen Durchsatz für Speicheranwendungen wie Aufzeichnen
und Wiedergeben von digitalen Bildern und Hi-Fi-Musik. Zum Reduzieren
der integrierten Schaltungsfläche für den Speicher
und zum Reduzieren der Leistungsaufnahme beinhaltet der Speicher
eine Löschschaltung,
eine Schreibschaltung und eine Leseschaltung, die alle Arrays gemeinsam
nutzen. Dadurch wird die integrierte Schaltungsfläche reduziert,
weil nicht mehr jede Lese/Schreib-Pipeline eine komplette und separate
Leseschaltung oder Schreibschaltung beinhaltet. Die Leistungsaufnahme
wird reduziert, weil weniger Lese/Schreib-Schaltungen gespeist oder ein-
und ausgeschaltet werden müssen,
und der Spitzenprogrammierstrom wird reduziert, da ein gleichzeitiges
Starten von Schreibvorgängen
vermieden wird.
-
1 ist
ein Blockdiagramm eines nichtflüchtigen
analogen Speichers 100 gemäß einer Ausgestaltung der Erfindung.
Speicher 100 beinhaltet mehrere Arrays 130-1 bis 130-N an
nichtflüchtigen Speicherzellen
in jeweiligen Lese/Schreib-Pipelines 110-1 bis 110-N.
Lese/Schreib-Pipelines 110-1 bis 110-N sowie Arrays 130-1 bis 130-N werden
hierin zuweilen als Pipelines 110 und Arrays 130 bezeichnet. 1 zeigt
zwar drei solcher Pipelines 110, aber der Speicher 100 kann
jede beliebige Zahl N von Pipelines beinhalten. Die Zahl der vorhandenen Pipelines
bestimmt die Zahl der gleichzeitigen Lese- oder Schreibvorgänge, die
der Speicher 100 durchführen
kann, und reguliert demgemäß die maximale Lese-
und Schreibhäufigkeit
oder die Datenübertragungsrate
des Speichers 100. Wie nachfolgend ausführlicher beschrieben wird,
startet eine Timing-Schaltung 140 sequentiell die Pipelines 110 bei sequentiellen
Schreibvorgängen
und Ausgabevorgängen,
und die Pipelines 110 arbeiten gleichzeitig zum Ausführen der
Vorgänge.
-
Jede
nichtflüchtige
Speicherarray 130 kann eine konventionelle nichtflüchtige Speicherarray sein.
Solche Speicherarrays sind zum Speichern eines binären, analogen
oder Multibit-Digitalwertes in jeder Speicherzelle hinlänglich bekannt.
Die Arrays 130 beinhalten Reihen und Spalten von Speicherzellen,
wobei jede Speicherzelle z.B. eine Speicherzelle mit einem einzelnen
Floating-Gate-Transistor, einem geteilten Gate-Transistor oder mit mehreren Transistoren
ist. In einer beispielhaften Ausgestaltung der Erfindung, die nachfolgend
beschrieben wird, ist der Speicher 100 ein Flash-EEPROM,
und jede Speicherzelle besteht aus einem einzelnen N-Kanal-Floating-Gate-Transistor.
Die Steuergatter der Speicherzellen in einer Reihe einer Array 130 sind
mit einer mit der Reihe assoziierten Reihenleitung gekoppelt. Drains
der Speicherzellen in einer Spalte einer Array 130 sind
mit einer mit der Spalte assoziierten Spaltenleitung gekoppelt,
und Sources der Speicherzellen in einem Sektor einer Array 130 sind
mit einer mit dem Sektor assoziierten Source-Leitung gekoppelt. In
der beispielhaften Ausgestaltung enthält jeder Sektor mehrere Spalten
von Speicherzellen, aber alternative Speicherarchitekturen verwenden
verschiedene Arten von Sektoren, wie z.B. Sektoren, die eine oder
mehrere Reihen von Speicherzellen enthalten.
-
Die
Speicherarrays 130 sind dahingehend separat, dass Lösch-, Schreib-
und Lesevorgänge
in einer Array 130 Lösch-,
Schreib- und Lesevorgänge in
anderen Arrays 130 nicht beeinflussen. Jede Speicherarray 130 hat
einen Reihendecoder 132, einen Spaltendecoder 134 und
eine Leseverstärkerschaltung 136.
(Die Leseverstärkerschaltung 136 kann mehrere
Leseverstärker
enthalten.) Jeder Reihendecoder 132 wählt eine Reihenleitung in der
assoziierten Array 130 und legt bei Lösch-, Schreib- und Lesevorgängen Vorspannungen
an die gewählte
Reihenleitung und an ungewählte
Reihenleitungen in der Array 130 an. Jeder Spaltendecoder 134 wählt eine Spaltenleitung
in der assoziierten Array 130 und legt bei Lösch-, Schreib-
und Lesevorgängen
Vorspannungen an die gewählte
Spaltenleitung und an ungewählte
Spaltenleitungen in der assoziierten Array 130 an. Die
Spaltendecoder 134 verbinden auch assoziierte Leseverstärkerschaltungen 136 mit
den assoziierten Speicherarrays 130 für Lesevorgänge. Ein globaler Sektorlöschdecoder 172 legt
die geeigneten Vorspannungen an Source-Leitungen für alle Sektoren
in Arrays 130 an. Leseverstärkerschaltungen sowie Reihen-,
Spalten- und Löschdecoder
sind hinlänglich
bekannt. Wie jedoch nachfolgend ausführlicher beschrieben wird,
takten oder triggern Ausgangssignale von Leseverstärkerschaltungen 136 Abtast-Halte-Schaltungen
oder andere temporäre Speicherschaltungen
und können
Schaltungen wie z.B. eine One-Shot-Schaltung zusätzlich zu konventionellen Leseverstärkerschaltkomplexen
beinhalten. Das US-Patent mit der Seriennummer 5,687,115 illustriert
Beispiele für
solche Schaltungen.
-
Für einen
Löschvorgang
erzeugt eine Löschsteuerschaltung 170 ein
Löschsignal
Verase (typischerweise etwa 12 V beim Löschen) und veranlasst den Decoder 172,
einen oder mehrere Sektoren in Arrays 130 zu wählen. Insbesondere
empfängt
der Decoder 172 das Löschsignal
Verase sowie ein oder mehrere Adresssignale, die einen oder mehrere
zum Löschen
gewählte
Sektoren identifizieren. Der Decoder 172 legt dann das
Löschsignal
Verase an die Source-Leitungen der gewählten Sektoren an und erdet
die Source-Leitungen in Verbindung mit den ungewählten Sektoren. Die Reihendecoder 132 erden alle
Reihenleitungen in den Arrays, die einen oder mehrere der gewählten Sektoren
enthalten, und die Spaltendecoder 134 lassen es zu, dass
alle Spaltenleitungen in Verbindung mit den Sektoren gelöscht werden,
so dass sie floaten. Die Löschsteuerschaltung 170 enthält einen
Spannungsgenerator, typischerweise eine Ladungspumpe, zum Erzeugen
einer hohen Spannung für
das Löschsignal
Verase sowie einen Steuerschaltkomplex zum Wählen, welche Sektoren gelöscht werden
sollen.
-
Eine
Folge von Schreibvorgängen,
die hierin zuweilen als Aufzeichnungsvorgang bezeichnet werden,
schreibt sequentiell eine Reihe von Werten in eine Reihe von Speicherzellen.
Im Speicher 100 sind die geschriebenen Werte Abtastwerte
eines analogen Eingangssignals Ain, das entweder einen analogen
Datenwert oder einen digitalen Multibit-Datenwert repräsentiert.
Alternativ kann das Eingangssignal ein digitales Signal sein. Ein
Wiedergabevorgang liest und gibt sequentiell die Reihe von Werten
(oder Abtastwerte aus dem Speicher 100) zum Reproduzieren
der aufgezeichneten Sequenz (oder des Signals) aus. In einer Ausgestaltung
der Erfindung verwendet der Speicher 100 Pipelines 110-1 bis 110-N in einer
gestaffelten parallelen Weise beim Aufzeichnen oder Wiedergeben,
um eine hohe Schreib- oder Lesedatentransferrate zu erzielen. Ein
alternativer Wiedergabevorgang führt
parallele Lesevorgänge
in den Pipelines 110 durch, schiebt aber die aus den Speicherzellen
gelesenen Werte seriell hinaus.
-
Eine
Timing-Schaltung 140 beginnt mit Vorgängen in den Pipelines 110.
In der beispielhaften Ausgestaltung der Erfindung beinhaltet die
Timing-Schaltung 140 ein OR-Gate 142 sowie N Flipflops 144-1 bis 144-N,
die zu einem Ring zusammengeschaltet sind, so dass die Timing-Schaltung 140 als
Schieberegister fungiert. Die Flipflops 144-1 bis 144-N entsprechen
jeweils den Lese/Schreib-Pipelines 110-1 bis 110-N und
beginnen die entsprechenden Pipelines 110 bei einem Schreibvorgang
an ansteigenden Flanken von Ausgangssignal SR1 bis SRN. Der Schreibschaltkomplex
im Speicher 100 beinhaltet einen Schaltkomplex in jeder
Pipeline 110 sowie einen Schreibspannungsgenerator 150,
den die Pipelines 110-1 bis 110-N gemeinsam nutzen.
Im Speicher 100 erzeugt der Schreibspannungsgenerator 150 zwei
Schreibsignale Vpp und Vvfy vom Eingangssignal Ain. Das Schreibsignal
Vpp erzeugt eine Programmierspannung, die der Schreibschaltkomplex
beim Programmieren an das Steuergatter einer Speicherzelle anlegt,
um die Schwellenspannung der Speicherzelle zu ändern. Die Spannung des Schreibsignals
Vpp entspricht unmittelbar dem aktuellen Pegel des Eingangssignals
Ain.
-
Der
Schreibspannungsgenerator 150 wählt gewöhnlich einen höheren Spannungspegel
für Vpp, wenn
eine höhere
Schwellenspannung geschrieben wird. Eine geeignete Wahl der Spannung
Vpp macht die Programmierzeit zum Schreiben eines präzisen Analogwertes
nahezu unabhängig
von der Zielschwellenspannung. Somit ist die Schreibauflösung über den
Schwellenspannungsbereich gleichförmig. Anhand des Schreibsignals
Vvfy, das eine Spannung hat, die der auf die Speicherzelle zu schreibenden Zielschwellenspannung
entspricht, wird akkurat bestimmt, wann die Zielschwellenspannung
erreicht ist, wonach der Schreibvorgang stoppt. Insbesondere minimiert
ein interaktiver Programmieren-und-Prüfen-Schreibprozess wie nachfolgend
beschrieben die Effekte einer Speicherzellenvariation. Alternativ stoppt
ein zeitlich gesteuerter Schreibprozess den Schreibprozess nach
einer bestimmten Zeit und benötigt
kein Schreibsignal Vvfy oder den Schaltkomplex in Verbindung mit
dem Generierungs- oder
Haltesignal Vvfy. In diesem Fall reicht eine einzige Abtast-Halte-Schaltung
pro Pipeline aus.
-
In
der beispielhaften Ausgestaltung der Erfindung beinhaltet der Generator 150 einen
Spannungsschieber, der das Eingangssignal Ain linear, z.B. in einem
Bereich von 3 bis 6 Volt, auf das Signal Vpp in einem Bereich von
9 bis 12 Volt und das Signal Vvfy in einem Bereich von 3 bis 6 Volt
abbildet. Spannungsgeneratoren für
Schreibschaltungen in analogen Speichern oder Speichern mit mehreren
Bits pro Zelle sind ausführlicher
im US-Patent mit der Seriennummer 5,687,115 beschrieben.
-
Der
Schreibschaltkomplex in jeder Pipeline 110 beinhaltet einen
Reihendecoder 132, einen Spaltendecoder 134, eine
Leseverstärkerschaltung 136, eine
Reihenleitungsspannungsauswahlschaltung 138 sowie Abtast-Halte-Schaltungen 121 und 122. Multiplexer 123 und 124 sind
mit Abtast-Halte-Schaltungen 121 und 122 gekoppelt
und wählen
jeweils Trigger-Signale und Eingangssignale für die Abtast-Halte-Schaltungen 121 und 122.
Für einen Schreibvorgang
wählt der
Multiplexer 123 den Ausgang des assoziierten Flipflops 144 zum
Triggern beider Abtast-Halte-Schaltungen 121 und 122,
und die Eingangswahlschaltung 124 wählt die Signale Vpp und Vvfy
und legt sie an jeweilige Eingangsanschlüsse der Abtast-Halte-Schaltungen 121 und 122 an.
Wenn das Ausgangssignal von dem assoziierten Flipflop 144 seinen
Zustand ändert,
dann tasten die Abtast-Halte-Schaltungen 121 und 122 die
aktuellen Spannungen der jeweiligen Schreibsignale Vpp und Vvfy
ab und speichern sie. Die Spannungswahlschaltung 138, die
die geeignete Vorspannung wählt,
die der Reihendecoder 132 an die gewählte Reihenleitung anlegt,
wählt während eines
Schreibvorgangs die Spannung von einer Auswahlschaltung 126.
Die Auswahlschaltung 126 alterniert zwischen gewählten gespeicherten
Signalen Vpp und Vvfy jeweils von Abtast-Halte-Schaltungen 121 und 122 während eines Schreibvorgangs,
wie nachfolgend ausführlicher
beschrieben wird.
-
2 zeigt
Timing-Diagramme für
einen Aufzeichnungsprozess im Speicher 100. Zunächst setzt
ein Signal RESET die Flipflops 144 zurück, und die Speicher-Arrays 130 werden
für Schreibvorgänge vorbereitet.
Für die
meisten nichtflüchtigen
Speicher wie EEPROM, EPROM oder Flash-Speicher beinhaltet die Vorbereitung
für einen
Schreibvorgang das Löschen
von Speicherpositionen, auf die Informationen geschrieben werden.
Für den
Aufzeichnungsbeginn wird das Signal RESET weggenommen, und ein Impuls 205 in
einem Eingangssignal ENABLE wird im H-Zustand für etwa einen Taktzyklus eines
Taktsignals SAMPLECLK auf das OR-Gate 142 aufgedrückt. Das
OR-Gate 142 erzeugt
den Enable-Impuls 205 als Eingangssignal zum Flipflop 144-1 und
ein Ausgangssignal SR1 von Flipflop 144-1 geht an einer ansteigenden
Flanke 210 des Signals SAMPLECLK in den H-Zustand, das
während
des Impulses 205 im Signal ENABLE auftritt. Als Reaktion
auf die nächste ansteigende
Flanke 22G des Abtasttakts SAMPLECLK nimmt der Flipflop 144-1 das
Signal SR1 weg, und der Flipflop 144-2 drückt das
Signal SR2 auf. Somit propagiert ein Impuls durch die Flipflops 144-1 bis 144-N,
und die Signale SR1 bis SRN triggern nacheinander die Abtast-Halte-Schaltungen 121 und 122 in den
Pipelines 110-1 bis 110-N. So beginnt jede Pipeline 110 mit
dem Abtasten von Schreibsignalen Vpp und Vvfy zu unterschiedlichen
Zeitpunkten. Der letzte Flipflop 144-N wird mit einem Eingangsanschluss des
OR-Gates 142 gekoppelt, so dass das Signal SR1 wieder nach
dem Signal 5RN aufgedrückt
wird. Der Aufzeichnungsprozess setzt das Starten von Schreibvorgängen durch
zyklisches Triggern von Abtast-Halte-Schaltungen 121 und 122 Pipeline
für Pipeline
fort, bis das Signal RESET den Impuls daran hindert, um den Ring
von Flipflops 144 zu propagieren.
-
Während eines
Schreibvorgangs tasten Abtast-Halte-Schaltungen 121 und 122 in
den Pipelines 110-1 bis 110-N Schreibsignale Vpp
und Vvfy als Reaktion auf die entsprechenden Signale SR1 bis SRN ab.
Wenn das Signal SR1 zum Zeitpunkt 210 aufgedrückt wird,
dann tasten die Abtast-Halte-Schaltungen 121 und 122 in
der Pipeline 110-1 Schreibsignale Vpp und Vvfy ab und die
Pipeline 110-1 beginnt mit dem Schreiben eines Wertes von
Signal Ain in einer Speicherzelle von Array 130-1, das
im Intervall 215 erscheint. Wenn das Signal SR2 zum Zeitpunkt 220 aufgedrückt wird,
dann tasten die Abtast-Halte-Schaltungen 121 und 122 in
der Pipeline 110-2 Schreibsignale Vpp und Vvfy ab, und
die Pipeline 110-2 beginnt mit dem Schreiben eines Wertes
von Signal Ain in einer Speicherzelle von Array 130-2, das
im Intervall 225 erscheint. Die Spannungsauswahlschaltungen 138 jeder
Reihe verwenden die abgetasteten Werte der Schreibsignale Vpp und
Vvfy vom Multiplexer 126 für einen Schreibprozess, der die
Schwellenspannung einer gewählten
Speicherzelle auf eine Zielschwellenspannung setzt. Die Zielschwellenspannung
ist der Pegel, der die Spannung des Eingangssignals Ain repräsentiert,
wenn die Schreibsignale Vpp und Vvfy abgetastet wurden.
-
Ein
beispielhafter Schreibprozess beinhaltet das Erzeugen einer Reihe
von Programmierimpulsen, die mit Prüfzyklen verschachtelt sind.
Bei jedem Programmierimpuls wählt
der Multiplexer 126 den Vpp-Abtastwert aus der Abtast-Halte-Schaltung 121, und
der Reihendecoder 132 legt die abgetastete Spannung an
eine Reihenleitung an, die gemäß einem
Eingangsadresssignal gewählt
wurde, das eine gewählte
Speicherzelle in der Array 130 identifiziert. Die Spannung
Vpp liegt gewöhnlich
im Bereich von 9 bis 12 Volt. Der Reihendecoder 132 erdet
ungewählte Reihenleitungen.
Der Spaltendecoder 134 legt eine Programmierspannung Vpc
(gewöhnlich
zwischen 5 und 6 Volt) an die mit der gewählten Speicherzelle verbundene
Spaltenleitung an und erdet ungewählte Spaltenleitungen. Der
Decoder 172 erdet die Source-Leitung des die gewählte Speicherzelle
enthaltenden Sektors. Die Kombination der an Steuergate, Source
und Drain der gewählten
Speicherzelle während
eines Programmierimpulses angelegten Spannungen bewirkt eine Speicherspur-Heißelektroneninjektion
in das floatende Gate der gewählten
Speicherzelle und erhöht
die Schwellenspannung der gewählten
Speicherzelle.
-
Während eines
Prüfzyklus
wählt der
Multiplexer 126 den Vvfy-Abtastwert von der Abtast-Halte-Schaltung 122.
Der Reihendecoder 132 legt den abgetasteten Pegel des Signals
Vvfy an die gewählte Reihenleitung
an und erdet die ungewählten
Reihenleitungen. Der Spaltendecoder 134 legt eine Lesespannung
Vrc (gewöhnlich
etwa 1 bis 2 Volt) an und verbindet den Leseverstärker 136 mit
der gewählten Spaltenleitung.
Der Spaltendecoder 134 erdet die ungewählten Spaltenleitungen. Der
Decoder 172 erdet weiter die Source-Leitung, die mit der
gewählten Speicherzelle
gekoppelt ist. Wenn die Programmierimpulse die Schwellenspannung
der gewählten
Speicherzelle auf den abgetasteten Pegel von Signal Vvfy anheben,
dann erfasst der Leseverstärker 136 während eines
Prüfzyklus,
dass die Speicherzelle nicht leitet, und sendet ein Signal zum Stoppen
weiterer Programmierimpulse. Der Programmierimpuls kann beispielsweise
dadurch gestoppt werden, dass ein weiteres Anlegen der abgetasteten
Spannung Vpp an die gewählte
Reihenleitung, das Anlegen von Spannung Vpc an die gewählte Spaltenleitung
oder beides gestoppt wird. Somit erhöhen die Programmierimpulse
die Schwellenspannung auf den Pegel der abgetasteten Spannung Vvfy
und werden dann gestoppt. Die verfügbare Schreibzeit für eine Pipeline 110 ist
das N-fache der Periode des Taktsignals SAMPLECLK, wobei N die Zahl
der Pipelines 110 ist. Demgemäß kann die Zahl der Pipelines
gemäß der benötigten Schreibzeit
pro Pipeline 110 und der gewünschten Schreibhäufigkeit
gewählt
werden. Bei einer Schreibzeit Tw von 10 μs werden z.B. 64 Pipelines benötigt, um
eine Abtastrate von 6,4 MHz zu erzielen.
-
Die
Pipelines 110-1 bis 110-N beginnen mit Schreibvorgängen zu
unterschiedlichen Zeitpunkten und überlappen Schreibvorgänge in unterschiedlichen
Abschlussphasen. Um dies zuzulassen, werden die Speicher-Arrays 130-1 bis 130-N so
getrennt, dass Source-, Drain- und Steuergatterspannungen, die in
einer Pipeline 110 erzeugt werden, keine Spannungen in
anderen Pipelines 110 stören. Gemäß einem Aspekt der Erfindung
wird der Speicher 110 weiterhin als einzelne integrierte
Schaltung hergestellt. Alternativ kann der Speicher 100 als
zwei oder mehr integrierte Schaltungen hergestellt werden, die jeweils
eine oder mehrere Aufzeichnungspipelines enthalten. So können beispielsweise
N separate integrierte Schaltungen mit diskreten Schieberegistern und
Logik zusammengeschaltet werden.
-
Ein
Vorteil von Schreibvorgängen
von Pipeline zu Pipeline ist die Reduzierung des gesamten Peak-Programmierstroms,
den eine interne Ladungspumpenschaltung zu Spaltendecodern 134 speisen
muss. Insbesondere nimmt eine Speicherzelle mehr Programmierstrom
von einem Spaltendecoder 134 (d.h. die Programmierspannung
Vpc) während
der anfänglichen
Programmierpulse auf, wenn sich die Schwellenspannung der Speicherzelle
am meisten von ihrer Zielschwellenspannung unterscheidet. Während sich
die Schwellenspannung einer Zelle der Zielschwellenspannung nähert, fällt der Programmierstrom
erheblich ab. Demgemäß nimmt, wenn
Schreibvorgänge
in N Pipelines gleichzeitig gestartet werden, die Pipeline einen
Spitzenstrom auf, der das N-fache
des maximalen in einer einzelnen Pipeline gezogenen Stroms Imax
ist. Durch Starten der Schreibvorgänge zu unterschiedlichen Zeitpunkten
und Überlappen
der Schreibvorgänge
in verschiedenen Abschlussphasen werden der Spitzenstrom und seine zugehörigen Rauschspitzen
in der Stromversorgung reduziert, weil die meisten Pipelines viel
weniger Strom als den Maximalstrom Imax ziehen und die anfänglichen
hohen Programmierströme
der programmierten Speicherzellen über die Zeit verteilt und gemittelt
werden.
-
Typischerweise
erfolgt das Lesen von nichtflüchtigem
analogem Speicher schneller als das Schreiben, und ein sequentielles
Lesen von Speicherzellen ohne Überlappung
der Lesevorgänge kann
ausreichen, um einen Analogwert aus einer Speicherzelle zu lesen
oder ein analoges Signal aus einer Reihe von Speicherzellen wiederzugeben. Demgemäß können Pipelines 110 sequentiell
für nicht überlappende
Lesevorgänge
von Speicher-Arrays 130-1 bis 130-N verwendet
werden. Ein Wiedergabesystem mit Pipeline-strukturierten oder parallelen
Lesevorgängen
kann jedoch höhere
Abtasthäufigkeiten
oder langsamere (und gewöhnlich
genauere) Lesevorgänge
ermöglichen.
Gemäß einem
Aspekt der Erfindung können
parallele oder Pipeline-strukturierte Lesevorgänge Leseschaltungen gemeinsam
nutzen, wodurch die für
jede Pipeline benötigte
Schaltungsfläche
und IC-Speicherkapazität
insgesamt verringert werden.
-
Ein
beispielhafter Leseprozess in einer Pipeline 110 ändert langsam
die Steuergatterspannung einer gewählten Speicherzelle, bis sich
die Leitfähigkeit
der gewählten
Speicherzelle ändert.
Wenn sich die Leitfähigkeit ändert, dann
ist die Steuergatterspannung etwa gleich der Schwellenspannung der gewählten Speicherzelle
und kann in eine den gelesenen Wert repräsentierende Ausgangsspannung umgewandelt
werden. Im Speicher 100 beinhaltet der Leseschaltkomplex
eine Spannungsrampenschaltung 160, die die Steuergatterspannungen
für Pipelines 110 rampenartig ändert. In
einem in 3 illustrierten ersten beispielhaften
Wiedergabevorgang führt
eine Bank (die Hälfte
oder ein anderer Bruchteil) der Pipelines parallele Lesevorgänge durch
und speichert gelesene Lesewerte in Abtast-Halte-Schaltungen 121. So beinhaltet
beispielsweise in einer Ausgestaltung der Erfindung der Speicher 100 acht
Pipelines 110, die in zwei Bänke von vier unterteilt werden.
Während
eine Bank der Pipelines 110 Lesevorgänge durchführt (z.B. Pipelines 110-5 bis 110-8),
steuert die Timing-Schaltung 140 die sequentielle Ausgabe
von zuvor gelesenen Werten von Abtast-Halte-Schaltungen 121 in
einer anderen Bank von Pipelines (z.B. Pipelines 110-1 bis 110-4).
Dieser Ansatz beseitigt die Lesezugriffszeit als begrenzenden Faktor
der Leseausgaberate dadurch, dass die Leseausgaberate gleich der
Frequenz des Abtasttakts SAMPLECLK gemacht wird. Die benötigte Lesezeit,
einschließlich
der Reihenleitungs-RC-Verzögerung
und der Leseverstärkerverzögerung,
beeinflusst lediglich die Latenz des Lesevorgangs. So können die
Daten mit einer hohen Taktrate ausgelesen werden.
-
Der
beispielhafte Wiedergabeprozess beginnt zum Zeitpunkt 300,
wenn ein Signal READ aufgedrückt
wird, und die Spannungsrampenschaltung 160 beginnt mit
dem Erhöhen
des Lesesignals Vsr gerade unterhalb einer Mindestschwellenspannung VTmin,
die Informationen repräsentiert,
die in einer Speicherzelle gespeichert sind, in Richtung auf eine maximale
Schwellenspannung VTmax, die in einer Speicherzelle gespeicherte
Informationen repräsentiert.
Das linear ansteigende Signal Vsr ist nur ein Beispiel für eine Methode,
in der die Rampenschaltung 160 das Signal Vsr variieren
kann. Alternativ kann die Rampenschaltung 160 das Signal
Vsr über einen
Bereich monoton erhöhen
oder verringern, der die Spannungen VTmax und Vtmin enthält. Das
Signal Vsr hat vorzugsweise einen Spannungsbereich, der unter der
Spannung VTmin anfängt
und bis über die
Spannung VTmax hinausgeht. Sobald Signal Vsr die Obergrenze seines
Bereichs erreicht, setzt die Rampenschaltung 160 das Signal
Vsr schnell zurück auf
seine Mindestspannung. Zum Zeitpunkt 310 beginnt Signal
Vsr dann langsam wieder anzusteigen. Zwischen den Zeitpunkten 300 und 310 führt jede
der Pipelines 110-1 bis 110-4 einen Lesevorgang
durch und die Pipelines 110-5 bis 110-8 sind inaktiv.
In der einen Lesevorgang durchführenden
Bank wählen
die Spannungsauswahlschaltungen 138 und die zugehörigen Reihendecoder 132 das
Signal Vsr und legen es an die Reihenleitungen an, die mit den gewählten Speicherzellen
in den zugehörigen
Arrays 130 verbunden sind. Für den Leseprozess kann dasselbe Adresssignal
gleichzeitig an jede Array 130 (d.h. Reihen- und Spaltendecoder 132 und 134)
angelegt werden, und Adresssignale zu jeder Array 130 werden nach
jeder zweiten Rampe des Signals Vsr inkrementiert. Ungewählte Reihenleitungen
werden geerdet. Gleichzeitig legen die Spaltendecoder 134 die Lesespannung
Vrc an und verbinden Leseverstärker 136 mit
den Spaltenleitungen, die mit den gewählten Speicherzellen gekoppelt
sind. Für
den Lesevorgang verbindet der Multiplexer 123 ein Trigger-Signal
vom Leseverstärker 136 mit
dem Taktanschluss der Abtast-Halte-Schaltung 121 und der
Multiplexer 124 verbindet das Lesesignal Vsr mit dem Eingang
der Abtast-Halte-Schaltung 121.
Wenn die gewählte Speicherzelle
in einer Array 130 die Leitfähigkeit wechselt, dann aktiviert
der zugehörige
Leseverstärker 136 die
assoziierte Abtast-Halte- Schaltung 121, die
dann die Spannung von Signal Vsr speichert. Das Abtasten von Signal
Vsr kann zu jedem beliebigen Zeitpunkt während des Intervalls 300 bis 310 erfolgen.
Wann es in einer bestimmten Pipeline 110 zu einer Abtastung
kommt, hängt
von dem von dieser Pipeline gelesenen Wert ab.
-
Zum
Zeitpunkt 310 ist das Signal Vsr über den Bereich einschließlich VTmin
und VTmax gelaufen und jede Pipeline 110-1 bis 110-4 in
der ersten Bank hat einen Lesewert in der Abtast-Halte-Schaltung 121 gespeichert.
Die Rampenschaltung 160 beginnt wieder, die Spannung von
Signal Vsr zu erhöhen,
so dass zwischen Zeitpunkt 310 und Zeitpunkt 320 die
Pipelines 110-5 bis 110-8 Lesevorgänge durchführen können. Zwischen
den Zeitpunkten 310 und 320 führen die Pipelines 110-1 bis 110-4 keine Lesevorgänge durch,
aber die Timing-Schaltung 140 steuert die Ausgabe der zuvor
gelesenen Werte von den Pipelines 110-1 bis 110-4.
Insbesondere wird ein Impuls 305 im Signal ENABLE aufgedrückt, so
dass der Flipflop 144-1 das Ausgangssignal SR1 zum Zeitpunkt 310 aufdrückt. Wenn
die Signale READ und SR1 aufgedrückt
werden, dann sendet die Abtast-Halte-Schaltung 121 in der
Pipeline 110-1 ein Ausgangssignal Aout über den Multiplexer 126 und das
AND-Gate 128. In der nächsten
Periode von Signal SAMPLECLK wird das Signal SR1 weggenommen und
Signal SR2 wird aufgedrückt.
Wenn die Signale READ und SR2 aufgedrückt werden, dann erzeugt die
Abtast-Halte-Schaltung 121 in Pipeline 110-2 das
Ausgangssignal Aout. In vier Perioden des Signals SAMPLECLK werden
alle Daten von den Pipelines 110-1 bis 110-4 ausgegeben,
und die Pipelines 110-5 bis 110-8 vollenden vier
Lesevorgänge. Zwischen
den Zeitpunkten 320 und 330 lesen die Pipelines 110-1 bis 110-4 den
nächsten
Satz von Werten aus den Arrays 130-1 bis 130-4,
und die Abtast-Halte-Schaltung 121 in den Pipelines 110-5 bis 110-8 erzeugt
das Signal Aout.
-
Gemäß einem
weiteren Aspekt der Erfindung können
die Abtast-Halte-Schaltungen 122 aus Referenzspeicherzellen
gelesene Werte abtasten, während
die Abtast-Halte-Schaltungen 121 die Schwellenspannungen
der gelesenen Speicherzellen abtasten. Ein mit den Ausgangsanschlüssen der Abtast-Halte-Schaltungen 121 und 122 in
einer Pipeline 110 gekoppelter Differenzverstärker (nicht
dargestellt) kann dann die Ausgangsspannung Aout anhand der Differenz
in einem aus einer Speicherzelle gelesenen Wert und einem aus einer
Referenzzelle gelesenen Referenzwert erzeugen. Die Verwendung der
Differenz zum Erzeugen des Ausgangssignals Aout storniert kann von
der systematischen Variation in der Leistung der Speicherarrays 130 [sic].
-
4 illustriert
einen zweiten beispielhaften Lesevorgang. Der zweite Lesevorgang
verwendet beide Abtast-Halte-Schaltungen 121 und 122.
Der Lesevorgang von 4 beginnt zum Zeitpunkt 400, wenn
Signal READ aufgedrückt
wird und die Rampenschaltung 160 mit dem Erhöhen der
Spannung von Signal Vsr beginnt. Während eines Intervalls zwischen
den Zeitpunkten 400 und 410 läuft ein Signal Vsr von Spannung
VTmin zu VTmax und alle Pipelines 110 führen Lesevorgänge durch.
Die an jede Array angelegten Adresssignale können alle gleich sein, so dass
jede Pipeline 110 Speicherzellen mit derselben relativen
Position in der Array 130 liest. Die Multiplexer 123 wählen den
Leseverstärker 136 zum Triggern
des Abtastens durch die Abtast-Halte-Schaltungen 121 und sperren
das Triggern der Abtast-Halte-Schaltungen 122. Der Multiplexer 124 legt das
Lesesignal Vsr an die Eingangsanschlüsse der Abtast-Halte-Schaltungen 121 an.
Somit werden die Ergebnisse der Lesevorgänge in Abtast-Halte-Schaltungen 121 gespeichert.
Zum Zeitpunkt 410 ist der erste Satz von Lesevorgängen abgeschlossen
und das an die Arrays 130 angelegte Adresssignal wird inkrementiert
und ein zweiter Satz von Lesevorgängen beginnt. Die Multiplexer 123 sperren
dann das Triggern der Abtast-Halte-Schaltungen 121 und
wählen
den Leseverstärker 136 zum
Triggern der Abtast-Halte-Schaltungen 122. Der Multiplexer 124 legt das
Lesesignal Vsr an die Eingangsanschlüsse der Abtast-Halte-Schaltungen 122 an.
Der zweite Satz von Lesevorgängen
speichert somit Werte, die in den Abtast-Halte-Schaltungen 122 gelesen
wurden, und konserviert den Wert, der bereits in der Abtast-Halte-Schaltung 121 ist.
-
Gleichzeitig
mit dem zweiten Satz von Lesevorgängen werden die während des
ersten Satzes von Lesevorgängen
gelesenen Werte aus den Abtast-Halte-Schaltungen 121 ausgegeben.
Insbesondere wird an oder vor dem Zeitpunkt 410 ein Impuls im
Signal ENABLE aufgedrückt,
um mit den Ausgabevorgängen
zu beginnen. Zwischen den Zeitpunkten 400 und 410 wählen die
Multiplexer 126 den Wert aus den Abtast-Halte-Schaltungen 121.
Jedes AND-Gate 128 gibt die Ausgabe des gewählten Wertes
aus der assoziierten Abtast-Halte-Schaltung 121 frei, wenn
der zugehörige
Flipflop 144 das assoziierte eine der Signale SR1 bis SRN
aufdrückt.
Anfänglich drückt der
Flipflop 144-1 das Signal SR1 an der ansteigenden Flanke
des Abtasttaktsignals SAMPLECLK auf, und die Pipeline 110-1 erzeugt
das Ausgangssignal Aout. Jeder Zyklus des Signals SAMPLECLK veranlasst
danach den nächsten
Flipflop 144, die Ausgabe aus der nächsten Pipeline 110 freizugeben.
-
Zum
Zeitpunkt 420 ist der zweite Satz von Lesevorgängen abgeschlossen
und alle Werte, die im ersten Satz von Lesevorgängen gelesen wurden, sind ausgegeben.
Die Rollen der Abtast-Halte-Schaltungen 121 und 122 werden
in jeder Pipeline 110 umgekehrt. Demgemäß empfangen die Abtast-Halte-Schaltungen 121 zwischen
den Zeitpunkten 420 und 430 aus den Arrays 130 gelesene
Werte und die Abtast-Halte-Schaltungen 122 erzeugen
das Ausgangssignal Aout. Ein konstanter Datenfluss kann dadurch
gewahrt werden, dass die Rollen der Abtast-Halte-Schaltungen 121 und 122 für jeden
Satz von parallelen Lesevorgängen
wiederholt vertauscht werden. Alternativ können zum Zeitpunkt 410 alle
abgetasteten Werte aus den Abtast-Halte-Schaltungen 121 zu
assoziierten Abtast-Halte-Schaltungen 122 für die sequentielle
Ausgabe zwischen den Zeitpunkten 410 und 420 übertragen
werden. Durch das Übertragen
der abgetasteten Werte zu Abtast-Halte-Schaltungen 122 werden
die Abtast-Halte-Schaltungen 121 für einen Satz von Lesevorgängen befreit,
die zwischen den Zeitpunkten 410 und 420 erfolgen.
Ein Vorteil, den der Wiedergabeprozess von 4 gegenüber dem
von 3 hat, ist, dass der Prozess von 4 nur
halb so viele Pipelines 110 benötigt, um dieselbe konstante
Informationsausgaberate zu bewahren. Da jedoch Schreibvorgänge langsamer
zu sein neigen als Lesevorgänge,
ist die Schreibgeschwindigkeit gewöhnlich der bestimmende Faktor
bei der Ermittlung der Anzahl von Pipelines, die zum Halten einer
spezifischen Informationsflussrate benötigt werden, und der erste
Prozess kann einen einfacheren Steuerschaltkomplex für Lesevorgänge zulassen.
-
Die 5A und 5B zeigen
alternative Wellenformen für
Signal Vsr, die für
die Lesevorgänge
der 3 und 4 geeignet sind. In den 3 und 4 hat
das Signal Vsr eine langsame Tief-zu-hoch-Rampe. Die Wellenform
von 5A beinhaltet eine langsame Hoch-zu-tief-Spannungsrampe
(d.h. ein Gefälle).
Mittels Signal Vsr von 5A erfasst der Leseverstärker 136 den Übergang
der Zielspeicherzelle von leitend zu nichtleitend während des
Abfalls des Lesesignals Vsr, und als Reaktion auf den Übergang
triggert der Leseverstärker 136 die
Abtast-Halte-Schaltung 121 oder 122. Für die in
den 3 und 4 gezeigte Wellenform erfasst
der Leseverstärker 136 den Übergang
der Zielspeicherzelle von nichtleitend zu leitend.
-
Die
Wellenform für
Signal Vsr in 5B beinhaltet eine langsam ansteigende
(tief zu hoch) und eine langsam abfallende (hoch zu tief) Rampe.
Demgemäß kann der
Leseverstärker 136 eine
gewählte Speicherzellenänderung
von nichtleitend zu leitend und von leitend zu nichtleitend erfassen.
Der Leseverstärker 136 kann
dann die Abtast- Halte-Schaltung 121 zum
Abtasten von Signal Vsr für
den Übergang von
nichtleitend zu leitend triggern und kann die Abtast-Halte-Schaltung 122 zum
Abtasten des Signals Vsr für
den Übergang
von leitend zu nichtleitend triggern. Der zusätzliche Schaltkomplex (nicht
dargestellt) kann zum Mitteln der beiden abgetasteten Spannungen
und zum Erzeugen des Ausgangssignals Aout hinzugefügt werden.
Eine solche Mittelwertbildung kann evtl. Offset und Hysterese zwischen
den beiden Übergängen eliminieren
oder minimieren.
-
5B illustriert
auch einen alternativen Wiedergabeprozess, der den Beginn von Lesevorgängen in
Pipelines 110 staffelt. So beginnt z.B. der Wiedergabeprozess
einen Lesevorgang in Pipeline 110-1 zum Zeitpunkt 511 am
Anfang einer ansteigenden Rampe 510 im Signal Vsr. Der
Lesevorgang für Pipeline 110-1 wird
durch die ansteigenden und abfallenden Rampen 510 und 520 von
Signal Vsr fortgesetzt und endet zum Zeitpunkt 521. Zum
Zeitpunkt 521 gibt die Pipeline 110-1 einen Mittelwert
einer Spannung aus, die die Abtast-Halte-Schaltung 121 abgetastet
hat, als die gewählte
Speicherzelle von nichtleitend zu leitend überging, und einer Spannung, die
die Abtast-Halte-Schaltung 122 abgetastet
hat, als die gewählte
Speicherzelle von leitend zu nichtleitend überging. Die Pipeline 110-2 beginnt
einen Lesevorgang zum Zeitpunkt 512 nach dem Start der
ansteigenden Rampe 510 und setzt den Lesevorgang durch
die abfallende Rampe 520 und einen Teil einer ansteigenden
Rampe 530 fort, bevor er zum Zeitpunkt 522 endet.
Da der Lesevorgang von Pipeline 110-2 beginnt, nachdem
Signal Vsr evtl. über
VTmin hinaus angestiegen ist, kann die gewählte Speicherzelle in Pipeline 110-2 zum
Zeitpunkt 512 leitend oder nichtleitend sein, je nach der
Schwellenspannung der gewählten
Speicherzelle. Somit beobachtet der Leseverstärker 136 den Übergang
zwischen den Zuständen
nichtleitend zu leitend der gewählten
Speicherzelle an der ansteigenden Rampe 510 oder der ansteigenden
Rampe 530. Wenn ein Übergang
an der Neigung 530 festgestellt wird, dann werden Werte,
die die Abtast-Halte-Schaltung 121 für einen vorherigen (evtl. unerwünschten) Übergang
von nichtleitend zu leitend abgetastet haben, überschrieben. Zum Zeitpunkt 522 gibt
die Pipeline 110-2 einen Mittelwert der an zwei Übergängen abgetasteten
Spannungen aus.
-
Jeder
Lesevorgang für
eine Pipeline 110 wird um eine Zeit DT vom Anfang eines
vorherigen Lesevorgangs in einer anderen Pipeline 110 versetzt.
Für einen
verlängerten
oder kontinuierlichen Wiedergabevorgang ist das Intervall DT etwa
gleich der Zeit RT, die für
einen Lesevorgang benötigt
wird, dividiert durch die Zahl N der Pipelines 110.
-
Demgemäß können N Pipelines
zyklisch Lesevorgänge
ohne Ruhezeiten durchführen.
Ein Vorteil des Lesevorgangs von Pipeline zu Pipeline ist, dass
die Zeit zwischen dem Abtasten von Signal Vsr und der Ausgabe als
Signal Aout über
die Pipelines 110 gleichmäßiger ist. Wenn die Pipelines 110 Lesevorgänge parallel
durchführen,
dann muss die letzte Pipeline 110, die einen Ausgabewert
erzeugt, häufig einen
Abtastwert am längsten
halten, und dieser Abtastwert kann sich stärker verschlechtern als Abtastwerte,
die von anderen Pipelines 110 ausgegeben werden. Das versetzte
oder gestaffelte Starten von Lesevorgängen ist nicht auf das Signal
Vsr mit der Wellenform von 5B begrenzt,
sondern kann auch benutzt werden, wenn das Signal Vsr andere Wellenformen
hat, wie z.B. die in den 4 und 5A gezeigten
Wellenformen.
-
Für die oben
beschriebenen Lesevorgänge ist
das Ausgabesignal Aout die aus den gewählten Speicherzellen gelesene
Schwellenspannung. Wenn die Schwellenspannung der gewünschte Ausgang ist,
dann kann das Signal Aout ohne weitere Konvertierung als Ausgang
verwendet werden. Alternativ gibt es ein Mapping zwischen den Schwellenspannungen
von Speicherzellen und dem Spannungsbereich des gewünschten
ausgegebenen Analogsignals, und ein Konverter wie z.B. ein Spannungsschieber
oder ein Verstärker
kann das Signal Aout nach Bedarf konvertieren. Diese Konversion
ist gewöhnlich
umgekehrt zur Spannungskonversion, die der Schreibspannungsgenerator 150 durchführt, wenn
er das Schreibsignal Vvfy vom Eingangssignal Ain erzeugt. In einer
alternativen Speicherausgestaltung erzeugt die Spannungsrampenschaltung 160 das
Signal Vsr und ein zweites Lesesignal, das das Ergebnis des Anwendens
der gewünschten
Konversion auf das Signal Vsr ist. Dieses zweite Lesesignal kann
mit den Eingangsanschlüssen
der Abtast-Halte-Schaltungen 121 und 122 zum Abtasten
gekoppelt werden, wenn die Leitfähigkeit
des gewählten
Speichers wechselt. Demgemäß können die
abgetasteten Werte des zweiten gelesenen Signals von den Abtast-Halte-Schaltungen 121 und 122 als
Signal Aout ausgegeben werden, und das Signal Aout benötigt keine
Konversion.
-
Der
Speicher 100 wurde zwar im Zusammenhang mit dem Speichern
von analogen Werten in Speicherzellen mit geringfügiger Änderung
beschrieben, aber der Speicher 100 könnte auch mehrere Bits Informationen
pro Speicherzelle speichern. Der Spannungsgenerator 150 kann
insbesondere so gestaltet werden, dass er einen D/A-Wandler zum Empfangen
eines digitalen Multibit-Signals und zum Konvertieren des digitalen
Multibit-Signals in das analoge Signal Ain beinhaltet. Der Generator 150 kann dann Schreibsignale
Vpp und Vvfy mit den geeigneten Programmier- und Prüfspannungen
zum Schreiben des digitalen Multibit-Signals auf eine Speicherzelle
erzeugen. Ein A/D-Wandler (nicht dargestellt) kann das analoge Ausgangssignal
Aout in ein digitales Multibit-Signal konvertieren.
-
6 zeigt
einen Mehrere-Bits-pro-Zelle-Speicher 600 gemäß einer
weiteren Ausgestaltung der Erfindung. Der Speicher 600 ist
dem Speicher 100 ähnlich
und beinhaltet N Schreib/Lese-Pipelines 610, die jeweils
eine Speicher-Array 130 mit assoziiertem Reihendecoder 132,
Spaltendecoder 134 und Leseverstärker 136 beinhalten.
Die Arrays 130 sind Arrays von nichtflüchtigen Speicherzellen wie
oben im Bezug auf Speicher 100 von 1 beschrieben. Der
Speicher 600 verwendet jedoch Arrays 130 zum Speichern
von mehreren Bits an digitalen Informationen in jeder Speicherzelle.
Zum Aufnehmen von mehreren Bits pro Speicherzelle beinhaltet der
Speicher 600 einen Schreibspannungsgenerator 650,
der ein digitales Multibit-Signal Din empfängt, das einen Wert repräsentiert,
der auf eine einzelne Speicherzelle geschrieben werden soll. Von
dem Signal Din erzeugt der Generator 600 Schreibsignale
Vpp und Vvfy mit den geeigneten Pegeln zum Schreiben des Wertes
von Signal Din auf eine Speicherzelle. Jede Pipeline 610-1 bis 610-N beinhaltet
Abtast-Halte-Schaltungen 121 und 122, die jeweils
Werte von Signalen Vpp und Vvfy für Schreib- oder Aufzeichnungsvorgänge wie
oben in Bezug auf Speicher 100 beschrieben abtasten und
halten.
-
Aufzeichnungsvorgänge im Mehrere-Bits-pro-Zelle-Speicher 600 können große digitale Werte
als eine Reihe von kleineren digitalen Werten speichern. Wenn z.B.
jede Speicherzelle in den Arrays 130 vier Bits Informationen
speichern kann, dann erfordert ein 32-Bit-Datenwert acht Speicherzellen
zum Speichern. Ein Aufzeichnungsvorgang kann sequentiell acht 4-Bit-Schreibvorgänge in acht Pipelines 110 starten.
Im Gegensatz zum analogen Fall, in dem lange Serien von Abtastwerten
geschrieben werden, sind digitale Schreibvorgänge gewöhnlich von einer festen Größe gemäß einem
Datenport des Speichers. Demgemäß kann die
Periode des Taktsignals SAMPLECLK kürzer sein als die benötigte Schreibzeit,
dividiert durch die Zahl N von Pipelines 110, unter der
Voraussetzung, dass Aufzeichnungsvorgänge keine der Pipelines wieder
zu verwenden brauchen.
-
Für Lesevorgänge erzeugt
die Spannungsrampenschaltung 660 das Lesesignal Vsr mit
einer Wellenform wie oben beschrieben und ein digitales Signal CT,
das der Spannung von Signal Vsr entspricht. In einer beispielhaften
Ausgestaltung beinhaltet die Spannungsrampenschaltung 660 einen D/A-Konverter
mit einem Eingangsport, der mit einem Zähler gekoppelt ist. Signal
CT ist das Ausgangssignal vom Zähler
und Signal Vsr ist das Ausgangssignal vom D/A-Wandler. Die US-Patentanmeldung
mit der Seriennummer 09/053,716, eingereicht am 1. April 1998, beschreibt
ferner Leseschaltungen, die Zähler
zum Lesen von Mehrere-Bits-pro-Zelle-Speichern beinhalten. Der Zähler zählt herauf
oder herunter, um die Spannung von Signal Vsr zu erhöhen oder
zu verringern. Die Spannungsrampenschaltung 660 legt das
Lesesignal Vsr an die Multiplexer 138 an, die das Signal
Vsr als die Reihenleitungsspannung für die gewählten Speicherzellen wählen. Die
Spannungsrampenschaltung 660 legt das Zählsignal CT an die Flipflops 620 in
den Pipelines 610 an. In einer alternativen Ausgestaltung
können
die Flipflops 620 durch Latches oder einen anderen digitalen Speicher
ersetzt werden. Die Flipflops 620 in jeder Pipeline 610 haben
Eingangsdatenanschlüsse,
die das digitale Zählsignal
CT empfangen, einen Taktanschluss, der mit dem Leseverstärker 136 gekoppelt ist,
und einen Ausgangsdatenport, der mit einem Satz von AND-Gates 628 gekoppelt
ist. Für
den Lesevorgang legt der Reihendecoder das Signal Vsr an die gewählte Reihenleitung
an, der Decoder 172 erdet die Source-Leitungen und der
Spaltendecoder legt das Lesesignal Vrc an die gewählte Spaltenleitung
an. Der Leseverstärker 136 erfasst,
wenn das Signal Vsr den Pegel eines Wechsels der Leitfähigkeit
der gewählten
Zelle hat. Bei einem Übergang
der gewählten
Zelle taktet der Leseverstärker 136 die
assoziierten Flipflops 620, und die Flipflops 620 registrieren
einen digitalen Wert des Signals CT, der der Schwellenspannung der
gewählten
Speicherzelle entspricht. Zum Ausgeben des digitalen Wertes von einem
Satz von Flipflops 620, während das Signal READ aufgedrückt ist,
drückt
der assoziierte Flipflop 140 in der Timing-Schaltung 140 ein
Signal auf, das das AND-Gate 628 veranlasst, den Multibit-Digitalwert
von Flipflop 620 als Ausgangssignal Dout zu leiten. Alternativ
können
alle oder mehrere Pipelines 610 gleichzeitig Bits ausgeben,
die das Ausgangssignal Dout bilden. So können z.B. acht Pipelines 610, die
vier Bits pro Speicherzelle speichern, ein 32-Bit-Ausgangssignal
Dout bereitstellen.
-
7 zeigt
ein Blockdiagramm einer Abtast-Halte-Schaltung 700, die
für Speicher
gemäß den obigen
Ausgestaltungen der Erfindung geeignet sind. Die Abtast-Halte-Schaltung 700 beinhaltet
einen Eingangstransistor 710, einen Kondensator 720, einen
Operationsverstärker 730 und
eine One-Shot-Schaltung 740. Beim Betrieb wird ein abzutastendes
Eingangssignal an einen Eingangsanschluss EIN angelegt. Wenn der Transistor 710 eingeschaltet
ist, dann lässt
es der Transistor 710 zu, dass das Eingangssignal den Kondensator 720 lädt oder
entlädt.
Der Operationsverstärker 730 legt
ein Ausgangssignal mit derselben Spannung wie am Kondensator 720 an
einen Ausgangsanschluss AUS an. Der Verstärker 730 verhindert
auch Lecks zu oder von dem Kondensator 720 über den
Anschluss AUS. Die One-Shot-Schaltung 740 empfängt ein
Takt- oder Trigger-Signal am Taktanschluss TAKT, und eine spezifische
Flanke im Taktsignal, z.B. eine ansteigende Flanke, erzeugt einen
Impuls, der den Transistor 710 abschaltet, um den abgetasteten
Wert im Kondensator 720 zu halten. Somit arbeitet die Abtast-Halte-Schaltung 700 als
flankengetriggertes Bauelement, das der Leseverstärker 136 oder
ein zugehöriger
Flipflop 144 triggern kann, um die Abtastung des Eingangssignals
zu bewirken.
-
Die
Erfindung wurde zwar mit Bezug auf besondere Ausgestaltungen beschrieben,
aber die Beschreibung ist lediglich ein Beispiel für die Anwendung
der Erfindung und ist nicht als eine Beschränkung anzusehen. Insbesondere
befasste sich zwar ein großer
Teil der obigen Diskussion mit Speicherzellen, die N-Kanal-Floating-Gate-Transistoren
enthalten, die von einem gelöschten
Zustand durch Erhöhen
der Schwellenspannungen der Floating-Gate-Transistoren programmiert
werden, aber alternative Ausgestaltungen der vorliegenden Erfindung
können
auch andere Typen von Bauelementen wie z.B. P-Kanal-Bauelemente
beinhalten und können
Speicher enthalten, bei denen durch eine Programmierung einer Speicherzelle
die Schwellenspannung der Zelle von einem gelöschten Zustand mit einer hohen
Schwellenspannung verringert wird. Ferner beinhalten zwar beschriebene
Ausgestaltungen der Erfindung einen Schreib- und Lese-Schaltkomplex,
den mehrere Schreib/Lese-Pipelines gemeinsam nutzen, aber in alternativen
Ausgestaltungen der Erfindung kann nur ein Leseschaltkomplex oder
nur ein Schreibschaltkomplex gemeinsam genutzt werden, so dass jede
Pipeline eine komplette Schreibschaltung oder eine komplette Leseschaltung beinhaltet.
Verschiedene andere Adaptionen und Kombinationen von Merkmalen der
offenbarten Ausgestaltungen liegen im Rahmen der Erfindung gemäß Definition
in den nachfolgenden Ansprüchen.