-
Die
vorliegende Erfindung bezieht sich auf nichtflüchtige, löschbare, programmierbare Speicher
und spezifischer auf Techniken für
diese Typen von Speichern um Daten zu lesen und zu schreiben.
-
Speicher
und Speicherung ist einer der Schlüsseltechnologiebereiche, welcher
das Wachstum im Informationszeitalter ermöglicht. Mit dem schnellen Wachstum
im Internet, World Wide Web (WWW), schnurlose Telefone, Persönliche Digitale
Assistenten, Digitalkameras, digitale Camcorder, digitale Musikabspielgeräte, Computer,
Netzwerke und mehr besteht ein ständiger Bedarf an besseren Speichern
und Speichertechnologien. Es wird auf US-Patent 4,757,477 Bezug
genommen, welches ein Dual Port Speicherelement mit wahlfreiem Zugriff
offenbart und dem Oberbegriff des Anspruchs 1 zugrunde liegt.
-
Ein
besonderer Speichertyp ist ein nichtflüchtiger Speicher. Ein nichtflüchtiger
Speicher behält
seine Daten oder seinen gespeicherten Zustand, selbst wenn die elektrische
Energieversorgung entfernt wird. Einige Typen von nichtflüchtigen,
löschbaren,
programmierbaren Speichern umfassen Flash, EEPROM, EPROM, MRAM,
FRAM, ferroelektrische und magnetische Speicher. Einige nichtflüchtige Speicherprodukte
umfassen CompactFlash- (CF) Karten, Multimedia-Karten (MMC), Flash
PC-Karten (z.B. ATA Flash-Karten),
SmartMedia-Karten und Speicherstifte.
-
Ein
weit verbreiteter Typ von Halbleiterspeicherzellen ist die Floating
Gate Speicherzelle. Einige Typen von Floating Gate Speicherzellen
umfassen Flash, EEPROM und EPROM. Die Speicherzellen werden konfiguriert
oder in einen gewünschten
konfigurierten Zustand programmiert. Insbesondere wird elektrische
Ladung auf das Floating Gate einer Flash-Speicherzelle aufgebracht
oder entfernt, um den Speicher in zwei oder mehrere speichernde
Zustände
zu versetzen. Ein Zustand ist ein gelöschter Zustand und es kann
einen oder mehrere programmierte Zustände geben. Abhängig von
der Technologie und Terminologie kann es alternativ einen programmierten
Zustand sowie einen oder mehrere gelöschte Zustände geben. Eine Flash Speicherzelle
kann dazu verwendet werden, mindestens zwei binäre Zustände, eine 0 oder eine 1, darzustellen.
Eine Flash-Speicherzelle kann mehr als zwei binäre Zustände, wie zum Beispiel 00, 01,
10 oder 11 speichern. Diese Zelle kann mehrere Zustände speichern
und kann als Multistate-Speicherzelle bezeichnet werden. Die Zelle
kann mehr als einen programmierten Zustand haben. Wenn ein Zustand
der gelöschte
Zustand (00) ist, sind die programmierten Zustände 01, 10 und 11,
obwohl sich die derzeitige Codierung der Zustände ändern kann.
-
Trotz
des Erfolgs von nichtflüchtigen
Speichern besteht weiterhin ein Bedarf, die Technologie zu verbessern.
Es ist erwünscht,
die Dichte, Geschwindigkeit, Lebensdauer und Zuverlässigkeit
dieser Speicher zu verbessern. Es ist auch erwünscht, den Energieverbrauch
zu reduzieren.
-
Es
ist ersichtlich, dass ein Bedarf besteht, den Betrieb von nichtflüchtigen
Speichern zu verbessern. Speziell wird durch die Verwendung einer
Technik der dynamischen Spaltenblockauswahl der Speicherzellen Rauschen
beim Betrieb der integrierten Schaltung reduziert, was der integrierten
Schaltung ermöglicht,
zuverlässiger
zu arbeiten. Darüber
hinaus reduziert die Technik auch die durch die Blockauswahlschaltung
erforderliche Fläche,
was die Fertigungskosten reduziert.
-
Die
Erfindung stellt eine Technik zum Zugreifen auf Auswahlschaltkreise
zur Verfügung,
welchen Spalten eines Arrays von Speicherzellen zugeordnet sind,
um gelesene Daten oder in die Speicherzellen zu schreibende Daten
aufzunehmen. Die Erfindung ist auf einen integrierten Schaltkreis
gerichtet, umfassend eine Vielzahl von in Reihen und Spalten angeordneten
Speicherzellen, eine Vielzahl von Programmier-Schaltkreisen, die
mit den Spalten der Speicherzellen verbunden sind, eine Vielzahl
von Leseverstärkern,
die mit den Spalten der Speicherzellen verbunden sind, eine Vielzahl
von Signalspeicher-Schaltkreisen,
die Daten vorübergehend speichern
können,
und ein Pointer-Schieberegister,
umfassend eine Vielzahl von Pointer-Schieberegister-Stufen. Gemäß der Erfindung
sind die Speicherzellen nichtflüchtige
Speicherzellen. Ein erster Satz der Signalspeicher-Schaltkreise
ist mit den Programmier-Schaltkreisen verbunden und ein zweiter
Satz der Signalspeicher-Schaltkreise ist mit den Lese-Schaltkreisen
verbunden. Ein Eingangs-Schaltkreis ist mit dem ersten Satz der
Signalspeicher-Schaltkreise verbunden und ein Ausgangs-Schaltkreis
ist mit dem zweiten Satz der Signalspeicher-Schaltkreise verbunden.
Jede Stufe des Pointer-Schieberegisters hat einen mit einem Taktsignal
verbundenen Takteingang, um eine Verbindung der verschieden Sätze der
Signalspeicherschaltkreise an jeweils den Eingangs- und Ausgangs-Schaltkreisen
zu sukzessiven Zeitpunkten zu ermöglichen.
-
In
einer spezifischen Ausgestaltung der Erfindung sind die Speicherzellen
Multistate-Speicherzellen. Das Schieberegister, welches als ein
Pointer fungiert, hat eine Stufe für jeden Spaltenblock des Arrays.
Ein Abtastimpuls wird durch dieses Schieberegister geschoben. Die
Abtastpunkte aktivieren mit jedem Taktsignal der Reihe nach einen
anderen Schaltkreis. Dieser jeweilige Auswahl-Schaltkreis, welcher
durch das Strobe-Bit aktiviert wird, wird dann eine bestimmte Operation
durchführen.
Bei einem Lesemodus wird der ausgewählte Auswahl-Schaltkreis die
gespeicherte Information über
eine Ausgabeleitung zum Ausgabepuffer der integrierten Schaltung
für die
Ausgabe übertragen,
und während
eines Programmiermodus wird der ausgewählte Auswahl-Schaltkreis Daten
von einem Eingabepuffer aufnehmen. Diese Daten werden in eine Speicherzelle
geschrieben.
-
In
einer anderen spezifischen Ausgestaltung sind mehrere Lese-Schreib-Schaltkreise mit
Spalten eines Arrays von Speicherzellen verbunden. Ein Lese-Schreib-Schaltkreis kann
eine Leseverstärker-Schaltung umfassen.
Mehrere der ersten Signalspeicher-Schaltkreise sind mit demselben
Satz von Lese-Schreib-Schaltkreisen und einer ersten I/O-Leitung
verbunden. Mehrere der zweiten Signalspeicher-Schaltkreise sind
mit einem oder mehreren Leseverstärkern sowie einer zweiten I/O-Leitung
verbunden. Es gibt eine Kette von Schieberegistern, welche mehrere
Schieberegister-Stufen umfassen, welche als Pointer fungieren. Jede
Stufe hat einen Dateneingang und eine Datenausgang. Jede Stufe hat
einen Takteingang. Der Eingang jedes Schieberegisters ist mit dem
Ausgang des vorherigen Schieberegisters verbunden und der Ausgang
ist mit dem Eingang des folgenden Schieberegisters verbunden.
-
Die
bevorzugten Speicherzellen sind Floating Gate Bauelemente. Flash,
EEPROM oder EPROM Speicherzellen sind einige Beispiele für Floating
Gate Bauelemente. Die ersten Signalspeicher-Schaltkreise können durch
Verwenden eines Paares von Cross-Coupled
Invertern implementiert werden. Die zweiten Signalspeicher können durch
Verwenden eines Paares von Cross-Coupled Invertern implementiert
werden. Zum Implementieren eines Signalspeichers können andere
Techniken verwendet werden, so wie zum Beispiel andere logische
Gatter umfassend HAND und NOR. Jede Stufe des Schieberegisters kann
ein Register eines Master-Slave Typs sein. Jede Speicherzelle kann
eine Mehrzahl von Bit Daten speichern. Die Speicherzellen können Multistate-Speicherzellen sein.
Einer der ersten Signalspeicher-Schaltkreise und einer der zweiten Signalspeicher-Schaltkreise
können
Daten für
eine Spalte der Speicherzellen aufnehmen, welche in eine Speicherzelle
zu schreiben oder aus einer einzelnen Speicherzelle zu lesen sind.
In solch einer Anordnung können die
ersten Signalspeicher mit der ersten I/O-Leitung und einem der anderen der Lese-Schreib-Schaltkreise verbunden
werden und die zweiten Signalspeicher können mit der zweiten I/O-Leitung
und dem selben Lese-Schreib-Schaltkreis
wie der erste Signalspeicher mit einem der Leseverstärker verbunden
werden.
-
Der
erste und zweite Signalspeicher-Schaltkreis müssen nicht zu einem Schieberegister
gehören.
Daher werden Daten nicht seriell von einem der beiden Sätze der
Signalspeicher-Schaltkreise zu einem folgenden der jeweiligen Signalspeicher-Schaltkreise
weitergegeben.
-
Die
Erfindung ist ebenfalls auf ein Verfahren zum Betreiben eines integrierten
Schaltkreises gemäß der oben
beschriebenen Art gerichtet. Es umfasst die Schritte, ein Strobe-Bit
in eine erste Stufe des Schieberegisters zu laden und das Schieberegister
zu takten, um das Strobe-Bit von Stufe zu Stufe vorzuschieben und es
dadurch zu ermöglichen,
sequenziell die ersten und zweiten Signalspeicher-Schaltkreis-Sätze zu aktivieren. Das
Laden eines Strobe-Bit in die erste Stufe des Schieberegisters kann
ermöglichen,
den ersten Signalspeicher mit einer I/O-Leitung zu verbinden. Das
Schieberegister kann getaktet werden, um das Strobe-Bit von der ersten
Stufe des Schieberegisters zur zweiten Stufe vorzubringen, um es
zu ermöglichen,
den zweiten Signalspeicher mit der I/O-Leitung zu verbinden. Verbinden des
ersten Signalspeichers mit der I/O-Leitung wird beim Takten des
Schieberegisters deaktiviert.
-
Die
Gegenstände,
Merkmale und Vorteile der Erfindung werden aus der folgenden detaillierten
Beschreibung beispielhafter Ausgestaltungen ersichtlich.
-
Es
wird auf die beiliegenden Figuren Bezug genommen, wobei in den Figuren
durchweg gleiche Bezugszeichen für
gleiche Merkmale verwendet werden. Es zeigen:
-
1 zeigt
eine integrierte Schaltung mit Schieberegistern zum Aufnehmen von
zu lesenden und in den Speicher zu schreibenden Daten.
-
2 zeigt
eine Implementierung eines Masters-Slave Registers.
-
3 zeigt
eine integrierte Schaltung mit Signalspeichern zum Aufnehmen von
zu lesenden und in den Speicher zu schreibenden Daten.
-
4 zeigt
eine Implementierung eines Signalspeichers.
-
5 zeigt
das Verbinden eines ersten Datenregisters mit einer I/O-Leitung
durch Setzen einer 1 in eine erste Stufe eines Schieberegisters.
-
6 zeigt
das Verbinden eines zweiten Datenregisters mit einer I/O-Leitung
durch Setzen einer 1 in eine zweite Stufe eines Schieberegisters.
-
7 zeigt
eine Ausgestaltung der Erfindung mit mehreren Eingangsleitungen
und einer einzelnen Ausgabeleitung.
-
8 zeigt
eine Ausgestaltung der Erfindung mit einer einzelnen Eingabeleitung
und einer einzelnen Ausgabeleitung.
-
Integrierte
Schaltungen, welche eine nichtflüchtige
Speicherung zur Verfügung
stellen, umfassen nichtflüchtige
löschbare
programmierbare Speicherzellen. Viele Typen von integrierten Schaltungen,
welche nichtflüchtigen
Speicherzellen aufweisen, umfassen Speicher, Mikrocontroller, Mikroprozessoren
und programmierbare Logik. Nichtflüchtige integrierte Speicherschaltungen
können
mit anderen nichtflüchtigen
integrierten Speicherschaltungen verbunden werden, um größere Speicher
zu bilden. Die nichtflüchtigen
integrierten Speicherschaltungen können auch mit anderen integrierten
Schaltungen oder Komponenten wie Controller, Mikroprozessoren, Speicher
mit wahlfreiem Zugriff (RAM) oder I/O-Einheiten verbunden werden,
um ein nichtflüchtiges
Speichersystem zu bilden. Ein Beispiel eines Flash EEPROM Systems
wird im US-Patent 5,602,987 besprochen.
-
Weitere
Erörterungen
von nichtflüchtigen
Zellen sowie Speicherung befinden sich in den US-Patenten 5,095,344,
5,270,979, 5,380,672, 5,712,180, 6,222,762 und 6,230,233.
-
Einige
Typen nichtflüchtiger
Speicherung oder Speicherzellen umfassen Flash, EEPROM und EPROM.
Es gibt viele andere Typen von nichtflüchtigen Speichertechnologien
und die vorliegende Erfindung kann auf diese Technologien sowie
andere Technologien angewandt werden. Einige Beispiele anderer nichtflüchtiger
Technologien umfassen MRAM und FRAM Zellen. Diese Patentanmeldung
behandelt einige spezifische Ausgestaltungen der Erfindung, welche
auf Flash oder EEPROM Technologien angewendet werden. Diese Erörterung
soll jedoch lediglich ein spezifisches Beispiel für eine Anwendung
der Erfindung zur Verfügung
stellen und es ist nicht beabsichtigt, die Erfindung auf Flash oder
EEPROM Technologien zu beschränken.
-
1 zeigt
eine integrierte Schaltung mit Speicherzellen 101. Die
integrierte Schaltung kann ein Speicher wie ein Flash Chip sein
oder kann eine integrierte Schaltung mit einem eingebetteten Speicherteil
sein, so wie zum Beispiel ein ASIC oder ein Mikroprozessor mit Speicher.
Die Speicherzellen speichern binäre
Informationen. In einer spezifischen Ausgestaltung sind die Speicherzellen
nichtflüchtige
Speicherzellen. Beispiele für
einige nichtflüchtige
Speicherzellen sind Floating Gate Zellen, welche Flash, EEPROM oder
EPROM Zellen umfassen. Die Speicherzellen sind in einem Array aus
Reihen und Spalten angeordnet. Es kann eine beliebige Anzahl von
Reihen und Spalten geben. Lese-Schreib-Schaltkreise 106 sind
mit den Spalten der Speicherzellen verbunden. In einer Ausgestaltung
gibt es einen Lese-Schreib-Schaltkreis für jede Spalte von Speicherzellen.
In anderen Ausgestaltungen kann ein Lese-Schreib-Schaltkreis von
zwei oder mehreren Spalten von Speicherzellen gemeinsam verwendet
werden. Leseverstärker
werden dazu verwendet, die Zustände der
Speicherzellen zu lesen. Die Leseverstärker können auch mit anderen Schaltungen
kombiniert werden, um Daten in die Speicherzellen zu schreiben oder
zu speichern. Die Kombination wird Lese-Schreib-Schaltkreis genannt.
-
In
einer spezifischen Ausgestaltung sind die Speicherzellen Multistate-Zellen,
welche in der Lage sind, mehrere Bit Daten pro Zelle zu speichern.
In 1 können
die Speicherzellen zwei Bit Daten speichern. Diese Dual-Bit Speicherzelle
wurde ausgewählt,
um die Prinzipien der Erfindung zu veranschaulichen. Multistate-Speicherzellen
können
mehr als zwei Bit Daten speichern wie zum Beispiel drei, vier und
mehr.
-
1 zeigt
vier Schieberegister 109, 114, 117 und 122.
Jede Schieberegister-Stufe
hat einen Eingang oder IN und einen Ausgang oder OUT. Daten werden
unter Verwendung eines Takteingangs CLK in die Register und aus
den Registern heraus getaktet. Der Takteingang ist mit allen Registern
verbunden.
-
Ein
Beispiel für
eine spezifischen Schaltungsimplementierung eines Registers des
Schieberegisters ist in 2 gezeigt. Dies ist als ein
Master-Slave Register bekannt. Es gibt andere Schaltungsimplementierungen
für ein
Register, welche verwendet werden können. Ein Eingang 202 ist
der Eingang zum Schieberegister oder ist mit einer vorherigen Stufe
des Schieberegisters verbunden. Ein Ausgang 206 ist der
Ausgang zum Schieberegister oder ist mit einer folgenden Stufe des
Schieberegisters verbunden.
-
Jedes
der vier Schieberegister hat ein zugehöriges Register, welches einem
bestimmten Lese-Schreib-Schaltkreis (RW) zugeordnet ist und damit
verbunden ist. Jeder Lese-Schreib-Schaltkreis umfasst Schaltkreise,
um einen Speicherzellenzustand zu lesen sowie Schaltkreise, um Daten
in eine Speicherzelle zu schreiben. Die Schaltung wurde als ein
einzelner Block gezeigt, könnte
aber auch als zwei Blöcke
mit einem Block für
den Schreibschaltkreis und einem Block für den Leseschaltkreis gezeichnet
werden. Ein Beispiel für eine
Leseschaltung ist eine Leseverstärkerschaltung
(SA). Mit anderen Worten hat jeder Lese-Schreib-Schaltkreis vier
dazugehörige
Register. Zwei dieser Register werden dazu verwendet, die Daten
aufzunehmen, welche in die Speicherzelle zu schreiben sind. Für eine bessere
Leistung werden während
des Programmierens zwei Register verwendet, um die neuen zu schreibenden
Daten zu laden. Zum Beispiel können
Register 109 sowie 114 verwendet werden, um zu
schreibende Daten aufzunehmen und Register 117 sowie 122 können verwendet
werden, um zu schreibende Daten zu laden. Die zu schreibenden Daten
werden seriell in das Schieberegister unter Verwendung von IN übertragen
und unter Verwendung eines Lese-Schreib-Schaltkreises (d.h. ein
Schreibschaltkreis) in die Speicherzellen geschrieben. Daten werden
durch Verwenden des Lese-Schreib-Schaltkreises
(d.h. Leseschaltkreis oder Leseverstärker) aus den Speicherzellen
gelesen und in den Registern gespeichert. Die Leseverstärker können parallel
abtasten und den Speicherinhalt parallel in die Schieberegister
ausgeben.
-
Für Speicherzellen,
welche mehr als zwei Bit pro Zelle aufnehmen, wäre ein zusätzliches Register für jedes
zusätzliche
Bit vorhanden. Zum Beispiel wären
für drei
Bit pro Zelle zwei zusätzliche
Schieberegister vorhanden, d.h. drei Register für gelesene Daten und drei Register
für das
Schreiben von Daten.
-
Die
Ausgestaltung in 1 zeigt eine getrennte Reihe
von Registern für
das Laden/Entladen und zum Lesen und Schreiben derzeitiger Daten.
In anderen Ausgestaltungen kann eine Reihe von Registern gemeinsam
genutzt werden, sowohl zum Laden und Schreiben als auch zum Lesen
und Entladen. Dies spart die Fläche
des integrierten Schaltkreises ein. Verschiedene Reihen von Registern
zum Laden und Schreiben als auch zum Lesen und Entladen erhöhen die
Leistung, da beide Operationen zur gleichen Zeit stattfinden können. In einer
alternativen Ausgestaltung können
außerdem
für die
Lese- und Schreibregister getrennte Taktsignale vorhanden sein,
so wie beispielsweise ein Taktsignal zum Lesen und ein Taktsignal
zum Schreiben. Dies ermöglicht
eine unabhängige
Eingabe von Daten in die jeweiligen Lese- oder Schreibschieberegister.
Da Bit in die und aus den Schieberegistern in Abhängigkeit
von besonderen Bitmustern der Daten getaktet werden, kann ein bedeutender
Betrag von Schaltrauschen vorhanden sein. Wenn das Bitmuster zum
Beispiel eine Zeichenfolge mit abwechselnd 0 und 1 wäre (d. h.
01010101 ... 0101) und falls das Rauschen ferner von der Anzahl
der Schieberegister abhängig
ist, welche zur gleichen Zeit umschalten, würde dies viel Schaltrauschen hervorrufen,
weil bei jedem Taktsignal volle Rail Transitions auftreten.
-
Zusammenfassend
für den
Ansatz in 1 gilt, dass die Schaltkreise
Daten mittels Schieberegistern speichern und übertragen. Im Lesebetrieb geben
Leseschaltkreise oder Leseverstärker
Daten in Schieberegister aus und die Daten strömen dann heraus. Beim Programmieren
werden Daten in diese Schieberegister hineingeschoben und gespeichert.
Schieberegister bestehen aus zwei Signalspeichern, einem "Master" und einem "Slave". Hinein- und Herausschieben
von Daten durch die Master und Slaves erzeugt in Abhängigkeit vom
Datenmuster viel Rauschen. Wenn die Daten zum Beispiel größtenteils
aus abwechselnd 0 und 1 bestehen, schalten Tausende von Master und
Slave deren Ausgänge
entsprechend hin und her.
-
3 zeigt
eine andere Architektur einer Schaltung zum Lesen und Schreiben
von Daten in Speicherzellen 301 eines integrierten Schaltkreises.
Diese Architektur erfordert für
die integrierte Schaltung weniger Fläche und erzeugt besonders für hohe Speicherdichten
und Multistate-Speicherzellen weniger Rauschen als die in 1.
Die integrierte Schaltung kann ein Speicher wie beispielsweise ein
Flash Chip oder eine integrierte Schaltung mit einem eingebetteten
Speicherteil sein wie beispielsweise ein ASIC oder ein Mikroprozessor mit
Speicher. Die Speicherzellen können
binäre
Informationen speichern. In einer spezifischen Ausgestaltung sind
die Speicherzellen nichtflüchtige
Speicherzellen. Beispiele für
einige nichtflüchtige
Speicherzellen sind Floating Gate, Flash oder EEPROM Zellen. Die
Speicherzellen sind in einem Array von Reihen und Spalten angeordnet.
Es kann eine beliebige Anzahl von Reihen und Spalten vorhanden sein.
-
Lese-Schreib-Schaltkreise
(RW) 306 sind mit Spalten der Speicherzellen verbunden.
In einer Ausgestaltung gibt es für
jede Spalte von Speicherzellen einen Lese-Schreib-Schaltkreis. In anderen Ausgestaltungen
kann ein Lese-Schreib-Schaltkreis mit zwei oder mehreren Spalten
von Speicherzellen zusammen verwendet werden. Die Lese-Schreib-Schaltkreise
werden dazu verwendet, die Zustände
der Speicherzellen zu lesen. Die Lese-Schreib-Schaltkreise können auch
dazu verwendet werden, Daten in die Speicherzellen zu schreiben
oder zu speichern. Der Lese-Schreib-Schaltkreis kann wie oben besprochen
Leseverstärker-Schaltkreise
umfassen.
-
In
einer spezifischen Ausgestaltung sind die Speicherzellen Multistate-Zellen,
welche in der Lage sind, mehrere Bit Daten pro Zelle zu speichern.
Wie in der Ausgestaltung in 1 sind die
Speicherzellen 301 in 3 Dual-Bit
Multibit Speicherzellen, welche für eine beispielhafte Ausgestaltung
dienen. Diese Dual-Bit Speicherzelle wurde ausgewählt, um
die Prinzipien der Erfindung zu veranschaulichen. Multistate-Speicherzellen
können
mehr als zwei Bit Daten speichern wie zum Beispiel drei, vier und
mehr. Und die Prinzipien der Erfindung wären auch anwendbar. Weil die
Bitanzahl zunimmt, welche in einer einzelnen Multistate-Speicherzelle
gespeichert werden kann, nehmen die Vorteile der Architektur in 3 gegenüber der
in 1 auch zu.
-
Es
gibt temporäre
Speicherschaltungen oder vier Datenregister 306, 309, 314 und 322,
welche mit jedem ihrer zugehörigen
Lese-Schreib-Schaltkreise verbunden sind. Die temporären Speicherschaltungen,
welche zum Aufnehmen von Daten für
die Speicherzel len verwendet werden, können beliebige Schaltkreise
sein. In einer spezifischen Implementierung sind temporäre Speicherschaltungen
Signalspeicher. Jedoch können auch
andere Logiktypen verwendet werden. Die Verbindung ist nicht gezeigt.
Jede Signalspeicher ist mit einer von vier Eingabeleitungen 333, 336, 338 und 340 verbunden.
Diese Eingabeleitungen sind Leitungen, welche zum Eingeben von Daten
in die Signalspeicher verwendet werden. Daten werden basierend auf
einem ENABLE Signaleingang von allen Signalspeichern in einen bestimmten
Signalspeicher geladen (nicht gezeigt). Wenn das LOAD-Signal (ein
active low oder active high Signal) für einen bestimmten Signalspeicher
angefordert wird, wird dieser Signalspeicher geladen.
-
In
der Figur sind die Eingabeleitungen gezeigt, welche oben auf den
Signalspeichern verlaufen. Sie können
auch neben den Signalspeichern verlaufen. In anderen Ausgestaltungen
der Erfindung kann es auch eine einzelne Eingabeleitung geben und
Daten werden von der Eingabeleitung seriell in die Signalspeicher
geschoben.
-
Ein
Beispiel für
eine spezifischen Schaltungsimplementierung eines Signalspeichers
ist in 4 gezeigt. Andere Schaltungsimplementierung für einen
Signalspeicher können
auch verwendet werden. Ein Eingang 402 ist der Eingang
des Signalspeichers und wird mit einer Eingabeleitung verbunden.
Das ENABLE Signal wird mit einem Pass-Transistor oder Pass Gate verbunden,
was es ermöglicht,
Daten mit einem Eingang 402 zu verbinden oder zu trennen.
Diese Signalspeicherschaltung umfasst Cross-Coupled Inverter um
Daten aufzunehmen. Die Signalspeicher sind auch mit dem Lese-Schreib-Schaltkreis verbunden,
so dass Daten zwischen den Schaltungen übergeben werden können (wie
zum Beispiel durch Verwenden eines Pass-Transistors 408).
Die Signalspeicher ist auch mit dem Ausgang durch einen Pass-Transistor 413 verbunden.
Es gibt andere mögliche
Implementierungen. Zum Beispiel kann eine Input/Output- (I/O) Leitung
verwendet werden, so dass nur einer der Pass-Transistoren 402 oder 413 erforderlich
ist.
-
Der
einzelne Pass-Transistor würde
den Signalspeicher mit der I/O-Leitung verbinden. Anstelle von Invertern
können
andere Logic Gates wie NAND, NOR, XOR, AND und OR Gates sowie Kombinationen
davon verwendet werden.
-
Es
ist zu beachten, dass diese Schaltung die Hälfte der Schaltung eines wie
in 2 gezeigten Master-Slave Registers aufweist. Der
Master-Teil eines Master-Slave Registers ist ein Signalspeicher
und der Slave-Teil ist ein anderer Signalspeicher.
-
Außerdem zeigt
die Implementierung einen NMOS oder n-Kanal Pass-Transistor. Es
gibt viele Arten, ein Pass Gate zu bilden und jede dieser Techniken
kann verwendet werden. Zum Beispiel kann ein CMOS Pass Gate verwendet
werden. Ein CMOS Pass Gate umfasst parallel verbundene NMOS und
PMOS Transistoren. Außerdem
kann ein High Voltage Pass Gate verwendet werden. Zum Beispiel wird
ein High-Voltage NMOS Pass Gate durch eine hohe Spannung über VCC
an seinem Gate oder seiner Kontrollelektrode aktiviert oder eingeschaltet
(oder in einen eingeschalteten Zustand versetzt). Ein NMOS Pass
Gate wird durch Verbinden seiner Kontrollelektrode mit VSS oder
Gound ausgeschaltet oder in einen ausgeschalteten Zustand versetzt.
-
Das
Schaltung in 3 umfasst ferner ein Schieberegister 346 mit
einer Stufe für
jeden Lese-Schreib-Schaltkreis. Dieses Schieberegister ist einem
Schieberegister aus 1 ähnlich. Der Ausgang jeder Schieberegisterstufe
ist mit dem ENABLE Signaleingang der jeweiligen Signalspeicher verbunden,
welche der Stufe zugehörig
ist.
-
In
dieser besonderen Ausgestaltung ist jeder Lese-Schreib-Schaltkreis
verbunden und hat vier dazugehörige
Signalspeicher. Zwei dieser Signalspeicher werden dazu verwendet,
Daten aufzunehmen, welche in die Speicherzelle zu schreiben sind.
Zwei Signalspeicher werden dazu verwendet, Daten zu laden, welche während des
folgenden Schreibzyklus in die Speicherzelle zu schreiben sind.
Zum Beispiel können
Signalspeicher 309 und 314 dazu verwendet werden,
zu schreibende Daten aufzunehmen und Signalspeicher 317 sowie 322 können dazu
verwendet werden, neue Daten aufzunehmen. Entsprechend werden während des
Lesemodus zwei Signalspeicher verwendet, um aktuelle Daten aufzunehmen
und auszugeben, während
neue Daten in den anderen zwei Signalspeichern vorbereitet werden.
-
Die
zu schreibenden Daten werden in die Signalspeicher über die
entsprechenden Eingabeleitungen eingegeben und dann unter Verwendung
des entsprechenden Lese-Schreib-Schaltkreises
in die Speicherzellen geschrieben. Daten aus den Speicherzellen
werden unter Verwendung des Leseverstärkers ausgelesen und in den
Signalspeichern gespeichert. Die gelesenen Daten sind die Ausgabe
von den Signalspeichern, welche die entsprechenden Ausgabeleitungen
verwenden. Die Übertragungsleitung
zwischen dem Signalspeicher und dem Lese-Schreib-Schaltkreis sowie
die Ausgabeleitung sind nicht gezeigt.
-
Daten
werden von den Signalspeichern unter Verwendung der Eingabeleitungen
nacheinander eingegeben. Dies wird unter Verwendung eines ENABLE
Signals durchgeführt,
so dass die Signalspeicher mit einem zugehörigen Lese-Schreib-Schaltkreis
oder mit einer zugehörigen
Spalte im Array mit den Eingabeleitungen eine nach der anderen verbunden
werden. Das ENABLE Signal für
die Signalspeicher kommt aus den Schieberegistern. Die Schieberegister
werden mit einem Bitmuster geladen (für die active high Logik), welches abgesehen
von einer 1 aus 0 besteht (z.B. 0001000000). Dieses Bit kann Strobe-Bit
genannt werden. Zum Beispiel hat das der ersten Spalte zugehörige Schieberegister
eine 1 und der Rest des Schieberegisters enthält 0. Diese 1 wird mit dem
ENABLE Eingang der Signalspeicher für die erste Spalte verbunden,
welche einen oder mehrere von diesen Signalspeichern mit den I/O-Leitungen 333, 336, 338 und 340 verbindet.
Daten können
gelesen oder in diese Spalte geschrieben werden. Der Eingang des
Schieberegisters wird mit 0 verbunden und das Schieberegister wird
getaktet. Die 1 setzt sich zur folgenden Schieberegisterstufe fort.
Diese 1 wird mit dem ENABLE Eingang der Signalspeicher für die zweite
Spalte verbunden, welche diese Signalspeicher mit den I/O-Leitungen verbindet.
Diese Operation dauert an, bis die gewünschten Daten von den Signalspeichern
gelesen oder geschrieben sind.
-
5 und 6 zeigen
deutlicher den Betrieb von Signalspeichern und Schieberegistern.
In 5 hat das erste Schieberegister eine 1. Das dem
Schieberegister zugehörige
Datenregister sowie die Spalte sind mit der I/O-Leitung verbunden.
In 6 ist das Schieberegister getaktet worden und
das folgende Schieberegister enthält die 1. Das dem Schieberegister
zugehörige
Datenregister sowie die Spalte sind mit der I/O-Leitung verbunden.
-
Der
Schaltkreis kann auch für
ein active low LOAD Signal entworfen werden. Dann enthält das Schieberegister
nur 1 und für
die bestimmten Signalspeicher, welche aktiviert werden sollen, eine
0 (z.B. 1110111111).
-
Für Multistate
(oder Multibit) Speicherzellen, welche mehr als zwei Bit pro Zelle
aufnehmen, wäre
ein zusätzlicher
Signalspeicher für
jedes zusätzliche
Bit vorhanden. Zum Beispiel würde
es für
drei Bit pro Zelle zwei zusätzliche
Signalspeicher geben. Drei Signalspeicher zum Ausgeben von Daten
und drei Signalspeicher zum Vorbereiten von Daten oder drei zum
Schreiben und drei zum Eingeben neuer Daten für den folgenden Zyklus. Nur
ein Schieberegister ist erforderlich, um ein ENABLE Signal zur Verfügung zu
stellen.
-
Die
Ausgestaltung in 3 zeigt eine getrennte Reihe
von Signalspeichern zum Hinein- oder Hinausschieben (Laden/Entladen)
von Daten sowie die derzeitige Operation. In anderen Ausgestaltungen
kann eine Reihe von Signalspeichern gemeinsam verwendet werden,
um die Verschiebung seriell abzuwickeln. Dies spart Fläche der
integrierten Schaltung ein. Einzelne Reihen von Registern zum Lesen
und Schreiben verbessern jedoch die Leistung, weil beide Typen von
Daten zur gleichen Zeit eingegeben und ausgegeben werden können.
-
Im
Vergleich zu 1 erfordert der Schaltkreis
in 3 weniger Fläche
des integrierten Schaltkreises um dieselbe Funktionalität zu erzielen.
Die Einsparung der Fläche
des integrierten Schaltkreises nimmt zu, weil die Anzahl der pro
Speicherzelle gespeicherten Bit zunimmt. Das ist so, weil ein Signalspeicher
ungefähr
die Hälfte
der Fläche
eines Master-Slave-Register einnimmt. In 1 ist die
Anzahl der pro Spalte verwendeten Signalspeicher durch A = d·4 pro
Spalte gegeben, wobei d die Anzahl der in einer einzelnen Speicherzelle
gespeicherten Bit ist. In 3 ist die
Anzahl der pro Spalte verwendeten Signalspeicher durch B = d·2 + 2
gegeben. Die Tabelle unten fasst die Ersparnis der Fläche des
integrierten Schaltkreises durch die Anzahl von Signalspeichern
zusammen. Es kann gesehen werden, dass die Ersparnisse der Fläche des
integrierten Schaltkreises von Ansatz B über Ansatz A zunimmt, wenn
d zunimmt. Und es kann in Abhängigkeit
von der Anzahl der Spalten weitere Ersparnisse der Fläche des
integrierten Schaltkreises geben.
-
-
Ein
anderer Vorteil des Ansatzes in 3 gegenüber dem
in 1 besteht in der Reduzierung des erzeugten Rauschanteils.
Wenn sich eine 1 (oder eine 0 für
active low) durch das Schieberegister fortpflanzt um eine Reihe
von Signalspeichern zu aktivieren, wird nur ein Bit bei jedem Taktsignal
geschaltet. Außerdem wird
nur eine Reihe von Signalspeichern mit den I/O Leitungen auf einmal
verbunden. Beide tragen dazu bei, den Betrag des Rauschens zu reduzieren,
wenn Daten von den Speicherzellen ausgegeben oder eingegeben werden.
Durch Reduzieren des Rauschanteils wird die Zuverlässigkeit
des integrierten Schaltkreises erhöht, da weniger Daten durch
das Rauschen verfälscht
werden.
-
Zusammenfassend
werden beim Ansatz in 3 Daten in Signalspeichern anstelle
in Schieberegistern gespeichert. Zusätzlich zu den Datenregistern
gibt es eine Kette von Master-Slave Schieberegistern. Ein Abtastimpuls
wird durch diese Register und Punkte mit jedem Taktsignal an einem
unterschiedlichen Signalspeicher sequentiell verschoben. Dieser
spezielle Signalspeicher wird dann mit einer Eingabe- oder Ausgabeleitung
verbunden. Beim Lesen sendet der ausgewählte Signalspeicher die gespeicherte
Information zum Ausgabepuffer und während der Programmierung erhält der ausgewählte Signalspeicher
Daten von einem Eingabepuffer.
-
Beginnend
mit zwei Bit pro Zelle kann mit dem Ansatz in 3 Fläche eingespart
werden. Beim Ansatz in 1 wird eine Reihe von vier Master-Slave
Schieberegistern oder acht Signalspeichern verwendet. Zwei Set/Reset-Register
(vier Signalspeicher) werden dazu verwendet, zu lesende oder zu
programmierende Daten zu speichern und zwei Set/Reset-Register (vier
weitere Signalspeicher) werden dazu verwendet, Daten während des
Stream Write zu verschieben, was für eine erhöhte Leistung sorgt.
-
Mit
dem Ansatz in 3 sind nur sechs Signalspeicher
notwendig: Zwei Signalspeicher (Schieberegister) dienen zum Verschieben
des Strobes. Zwei Signalspeicher dienen zum Speichern alter Daten
und zwei Signalspeicher dienen zum Laden neuer Daten.
-
Außerdem ist
die Schaltung in 3 im Vergleich sehr ruhig: Ein
Taktsignal und ein Output vom Schalten des Signalspeichers (für das Abtasten)
plus zwei I/Os anzusteuern im Vergleich zu sechs Taktsignalen und Tausende
von Signalspeicher, welche auf einmal umschalten.
-
Es
gibt viele mögliche
Ausgestaltungen der vorliegenden Erfindung. Eine Ausgestaltung kann
eine gemeinsame Eingabe/Ausgabe (I/O) Leitung verwenden, um Daten
in die Signalspeicher einzugeben und aus den Signalspeichern auszugeben.
Es kann eine I/O-Leitung für
jeden Signalspeicher geben, oder es kann eine I/O-Leitung für zwei oder
mehrere Signalspeicher geben. Zum Beispiel kann es eine I/O-Leitung
geben, die von vier Signalspeichern gemeinsam genutzt wird, oder
es kann vier I/O-Leitungen und vier Signalspeicher geben.
-
7 zeigt
die Details einer anderen Ausgestaltung der Erfindung. Es gibt vier
Eingabeleitungen 333, 336, 338 und 340 für vier Signalspeicher 306, 309, 314 beziehungsweise 322.
Es gibt eine einzelne Ausgabeleitung 711. Wenn eine bestimmte
Spalte von Signalspeichern durch Verwenden des ENABLE Signals vom Schieberegister
aktiviert wird, werden die Daten in einer Eingabeleitung mit den
jeweiligen Signalspeichern verbunden und gespeichert. Diese Daten
in den Signalspeichern können
mit dem Lese- Schreib-Schaltkreis 106 verbunden
werden, um die Daten in die Speicherzellen zu schreiben.
-
Diese
Implementierung umfasst eine einzelne Ausgabeleitung, wobei die
Daten von den Signalspeichern ausgegeben werden. Eine andere Ausgestaltung
kann vier Ausgabeleitung für
jeden der Signalspeicher haben. Mehr Leitungen haben allerdings
Auswirkungen auf die Die-Size und weniger Leitungen ergeben ein kompakteres
Layout.
-
8 zeigt
eine andere Ausgestaltung der Erfindung. Es gibt eine einzelne Eingabeleitung 808,
welche die von den vier Signalspeichern 306, 309, 314 und 322 gemeinsam
genutzt wird. Die Daten von der Eingabeleitung können zu jedem Signalspeicher übertragen
werden. Da im Vergleich zur Implementierung in 7 in 8 eine
einzelne Eingangslinie vorhanden ist, ermöglicht diese Implementierung
ein kompakteres Layout.
-
Wie
in diesen spezifischen Ausgestaltungen gezeigt wurde, gibt es eine
Vielzahl von Kombinationen der vorliegenden Erfindung. Zum Beispiel
kann es eine einzelne I/O-Leitung
für zwei
oder mehrere Signalspeicher geben. Es kann eine einzelne I/O-Leitung
für jeden
Signalspeicher geben. Es kann eine Eingabeleitung für zwei oder
mehrere Signalspeicher geben. Es kann eine einzelne Eingabeleitung
für jeden
Signalspeicher geben. Es kann eine Ausgabeleitung für zwei oder
mehrere Signalspeicher geben. Es kann eine einzelne Ausgabeleitung
für jeden
Signalspeicher geben. Und jede dieser Ausgestaltungen kann mit anderen
kombiniert werden. Zum Beispiel kann es eine Ausgabeleitung und
eine Eingabeleitung geben. Es kann eine Eingabeleitung und vier
Ausgabeleitungen geben.