-
TECHNISCHES
GEBIET
-
Die
vorliegende Erfindung betrifft generell Halbleiterspeichervorrichtungen.
Insbesondere betrifft die vorliegende Erfindung eine ausgangssignal-basierte
Redundanz bei einem Flash-Speicher.
-
TECHNISCHER
HINTERGRUND
-
US-A-5,416,740
beschreibt einen statischen RAM-Speicher mit 64 Speicherzell-Array-Blöcken und
einem redundanten Speicherzell-Array-Block. Das redundante Speicherzell-Array
weist insgesamt 16 redundante Speicherzell-Array-Blöcke auf.
Eine Defekt-Adresse, die eine Position einer defekten Speicher-Spalte
angibt, wird in einer Adress-Programmierschaltung programmiert,
und die spezielle defekte Spalte an der Defekt-Adresse wird in einer I/O-Programmierschaltung
programmiert. Obwohl nicht jede Speicherzelle eine zusätzliche
Speicherzell-Spalte oder -Reihe zwecks Redundanz enthält, kann
der Defekt mittels des redundanten Speicherzell-Arrays repariert werden.
-
Bei
einem Flash-Direktzugriffsspeicher (RAM), der üblicherweise eher als Flash-Speicher bekannt
ist, handelt es sich um eine Form eines nichtflüchtigen Speichers, bei dem
ein Speicherzellen-Design mit Floating Gate verwendet wird. An die Speicherzellen-Eingänge werden
hohe Spannungen angelegt, um das Floating Gate zu programmieren oder
Ladung in diesem zu speichern, oder um das Floating Gate zu löschen oder
Ladung von diesem zu entfernen. Das Programmieren erfolgt durch
Heißelektronenübertragung
zum Platzieren von Ladung an dem Floating Gate, während zum
Löschen
die Nordheim-Tunnelung verwendet wird, bei dem Elektronen ein dünnes dielektrisches
Material durchstoßen,
so dass der Betrag elektri scher Ladung an dem Floating Gate reduziert
wird. Beim Löschen
einer Zelle wird der logische Wert der Zelle auf "1" gesetzt, während beim Programmieren der
Zelle der logische Wert auf "0" gesetzt wird. Abgesehen
von den Programmier- und Lösch-Operationen
arbeitet ein Flash-Speicher ähnlich
wie ein zum beliebigen Zugriff ausgebildeter Nurlesespeicher (ROM).
Herkömmlicherweise
wird ein Flash-Speicher-Chip einschließlich der Flash-Speicher-Speicherzellen
und der Stütz-Logik/-Schaltung
hergestellt, indem Schichten aus Halbleitermaterial und Zwischenverbindungsschichten
aus Polysilizium und erste und zweite Metallschichten auf einem
Substrat ausgebildet werden. Es versteht sich, dass dabei zahlreiche
IC-Schaltungs-Herstellungstechniken, bei denen eine größere oder
kleinere Anzahl von Schichten involviert sind, anwendbar sind.
-
Neuere
Technologien, wie z.B. zur gleichzeitigen Lese- und Schreib-Operation vorgesehene Flash-Speicher,
bieten Gelegenheiten für
eine Neukonzeption von CAM-Schaltungen und -Architekturen und ihrer
zugehörigen
Ausgangsschaltungen dahingehend, dass die immer anspruchsvolleren
Standards hinsichtlich der System-Leistungsfähigkeit und der Vorrichtungsdichte
erfüllt
werden. Es wäre
wünschenswert,
eine effizientere Redundanz-CAM-Schaltung
und -Architektur und zugehörige
Ausgangsschaltunen zu implementieren.
-
Redundante
Kernzell-Arrays werden verwendet zum Substituieren betriebsunfähiger oder
defekter Speicherkernzellen primärer
oder regulärer
Arrays. Es können
inhaltsadressierbare Speicher-(CAM-)Schaltungen verwendet werden,
um die Redundanz-Substitution zu unterstützen. Redundanz-CAM-Zellen
speichern Information bezüglich der
Positionen betriebsunfähiger
oder defekter Speicherzellen, so dass redundante Arrays von Speicherzellen
verwendet werden können,
um die betriebsunfähigen
oder defekten Speicherzellen der primären Arrays zu ersetzen.
-
Typischerweise
werden die Arrays von Speicherzellen vom Hersteller auf Leistungsfähigkeit
und Präzision
getestet, bevor sie vom Kunden oder User verwendet werden. Die Redundanz-CAM-Zellen
werden gelöscht
und mit den Positionen betriebsunfähiger Speicherzellen programmiert,
wie es nach der Teststufe zweckmäßig ist.
-
Kernzellen
in dem Speicher können
byte- oder wort-adressierbar sein. Falls eine bestimmte Operation
an einem primären
Array vorgenommen werden soll, wird eine Adresse für die Operation
zugeführt.
Derzeit wird, bevor auf die Speicherzelle für das primäre Array zugegriffen wird,
die Adresse mit der Adress-Information hinsichtlich der Position
betriebsunfähiger
Speicherzellen verglichen. Falls die Adresse zu einer Position einer
Gruppe betriebsunfähiger
Speicherzellen passt, wird die Adresse zu dem redundanten Array
umgeleitet. Die Operation wird dann an dem redundanten Array durchgeführt. Falls die
Adresse nicht zu einer Position einer Gruppe betriebsunfähiger Speicherzellen
passt, wird die Adresse auf das primäre Array bezogen. Typischerweise
ist dieses Ersetzen von Primär-Array-Speicherzellen durch
Redundanz-Array-Speicherzellen nahtlos und für den User des Speichers transparent.
-
Neuere
Technologien, wie z.B. für
gleichzeitige Lese- und Schreib-Operationen
ausgelegten Flash-Speicher, bieten Möglichkeiten für Neukonzeptionen
von CAM-Schaltungen und -Architekturen und ihrer zugehörigen Ausgangsschaltungen
dahingehend, dass die zunehmend höheren Standards hinsichtlich
der System-Leistungsfähigkeit
und der Vorrichtungsdichte erfüllt
werden. Bei den derzeit bevorzugten Ausführungsformen, die hier beschrieben werden,
werden eine CAM-Schaltung und -Architektur und eine zugehörige Ausgangsschaltung
bei einem Speicher wie z.B. einem Flash-Speicher beschrieben, die stärker effizient
sind.
-
Eine
CAM-Zelle ist derart konfiguriert, dass sie Information hinsichtlich
einer Position einer betriebsunfähigen
Speicherzelle in einem Primär-Kernzellen-Array
speichert. Typsicherweise erfordert die betriebsunfähige Speicherzelle
ein Ersetzen durch eine Speicherzelle in einem redundanten Array.
Die in der CAM-Zelle gespeicherte Information kann sich darauf be ziehen,
ob eine Speicherzelle, die durch eine Operationsadresse des Primär-Kernzellen-Arrays
adressiert wird, eine Substitution durch eine Speicherzelle eines
redundanten Arrays erfordert.
-
Die
nun zu erläuternde 1 zeigt
ein Blockschaltbild eines Speichers 100 gemäß einer
derzeit bevorzugten Ausführungsform.
Bei der gezeigten Ausführungsform
ist der Speicher 100 als Flash-Speicher konfiguriert, der
als Komplementär-Metalloxid-Halbleiter-(CMOS-)IC-Schaltung
zum Speichern digitaler Daten ausgebildet ist. Der Speicher 100 kann
jedoch auch in jeder anderen geeigneten Form ausgebildet sein, und
tatsächlich
können die
hier beschriebenen Prinzipien an jeder anderen geeigneten Schaltung
angewandt werden, bei der ein gleichzeitig ablaufender Betrieb eine
mit Doppel-Port versehene CAM-Architektur erlaubt. Der Speicher 100 weist
ein Kern-Zell-Array 102, einen Dekodierer 104,
eine Adress-Puffer-Schaltung 108,
eine Redundanz-CAM-Schaltung 106, eine Steuerlogik-Schaltung 110 und
eine Leseverstärker-
und Ausgangsschaltung 112 auf. Die Steuerlogik-Schaltung 110 ist mit
dem Dekodierer 104, der Adress-Puffer-Schaltung 108 und der
Leseverstärker-
und Ausgangsschaltung 112 verbunden. Die Steuerlogik-Schaltung 110 erzeugt
eine Serie von Lese- und Schreib-Wähl-Betriebssignalen RSEL, WSEL
und verteilt die Signale auf den Dekodierer 104 und die Redundanz-CAM-Schaltung 106.
Vorzugsweise verteilt die Steuerlogik-Schaltung 110 Zeitsteuerungs- und
andere Steuersignale für
den Speicher 100.
-
Das
Kern-Zell-Array 102 weist mehrere Speicherzellen auf, die
jeweils zum Speichern von Daten konfiguriert sind. Bei einigen Anwendungen
kann jede Speicherzelle ein einzelnes Daten-Bit speichern; bei anderen
Anwendungen kann jede Speicherzelle zwei oder mehr Daten-Bits speichern.
Die Speicherzellen des Kern-Zell-Arrays 102 können byte-
oder wort-adressierbar sein, und ein Zugriff auf sie erfolgt durch
eine bestimmte Adresse an der Adress-Puffer-Schaltung 108.
Bei einer Ausführungsform
wird auf die Speicherzellen als Datenwörter zugegriffen, und die Adressen
entsprechen unverwechselbaren Datenwörtern. Wie Fachleuten auf dem
Gebiet jedoch ersichtlich sein wird, sind auch andere Ausführungsformen
möglich,
bei denen jede Speicherzelle eine unverwechselbare Adresse hat, die
von dem Dekodierer 104 dekodiert wird.
-
Der
Dekodierer 104 enthält
typischerweise eine Reihen- oder x-Adress-Dekodierlogik und eine Bitleitungs-
oder y-Adress-Dekodierlogik. Die x-Adress-Dekodierlogik des Dekodierers 104 reagiert auf
ein von der Adress-Puffer-Schaltung 108 zugeführtes Adress-Signal
ADD, indem sie eine Wortleitung aus mehreren Wortleitungen aktiviert,
wobei jede Wortleitung einer Reihe des Kern-Zell-Arrays 102 zugeordnet
ist. Auf die Aktivierung der Wortleitung hin wird die dieser Wortleitung
zugeordnete Speicherzelle eingeschaltet und beginnt, Strom abzuleiten.
Um die Speicherzellen adäquat
einzuschalten, muss die Wortleitung um eine beträchtliche Potenzialdifferenz
variiert werden, z.B. um 3,0 bis 4,0 V.
-
Die
y-Adress-Dekodierlogik des Dekodierers 104 verbindet die
entsprechende Bitleitung des Kern-Zell-Arrays 102 mit der
Leseverstärker-
und Ausgangsschaltung 112. Die y-Adress-Dekodierlogik reagiert
auf ein Adress-ADD
von der Adress-Pufferschaltung 108, um die gewählte Bitleitung
unter mehreren Bitleitungen des Kern-Zell-Arrays 102 zu
dekodieren. Die Leseverstärker-
und Ausgangsschaltung 112 detektiert den Strom in der gewählten Speicherzelle
des Kern-Zell-Arrays 102 und bestimmt den Binär-Zustand
des einen oder der mehreren Datenbits, die in der gewählten Speicherzelle
gespeichert sind. Die Schaltung 112 erzeugt die Speicher-Zell-Daten, die bei einer
Ausführungsform
als Datenwörter
von der Leseverstärkerschaltung 112 an
dem Ausgang des Speichers 100 gelesen werden, um außerhalb des
Speichers 100 verwendet zu werden. Weitere Schaltungen,
die in 1 nicht gezeigt sind, sind vorgesehen für das Programmieren,
Lesen, Verifizieren, Löschen
und das Durchführen
anderer Operationen, je nach Erfordernis, an den einzelnen Speicherzellen des
Kern-Zell-Arrays 102.
-
Der
Speicher 100 arbeit in Reaktion auf eine Versorgungsspannung,
die in 1 mit VCC bezeichnet ist.
Die Potentialdifferenz zwischen VCC und Masse
ist die Versorgungsspannung und kann z.B. im Bereich von 0,8 bis
3,3 Volt liegen. Die Eignung der Versorgungsspannung VCC hängt von
verschiedenen Faktoren ab, einschließlich der Technologie, mit
welcher der Speicher 100 hergestellt wird. Generell hat bei
höher entwickelten
CMOS-Vorgängen die
Versorgungsspannung einen Nennwert von 1,8 Volt. Absolut ausgedrückt ist
diese Spannung größer als
die Größe der Einschalt-
oder Schwellspannung Vtp für p-Kanal-Transistoren
mit 0,9 Volt und die Einschalt- oder Schwellspannung Vtn für n-Kanal-Transistoren mit
+1,0 Volt.
-
Das
Kern-Zell-Array 102 enthält typischerweise eine Reihe
primärer
Arrays und redundanter Arrays. Die Redundanz-CAM-Schaltung 106 gemäß 1 enthält ferner
CAM-Zellen, die Information über
die Position einer betriebsunfähigen
oder defekten Speicherzelle oder einer betriebsunfähigen oder defekten
Bitleitung eines der primären
Arrays des Kern-Zell-Arrays 102 speichern. Eine Bitleitung
eines zugehörigen
redundanten Arrays wird als Ersatz für eine betriebsunfähige Bitleitung
verwendet. Die CAM-Zellen der Redundanz-CAM-Schaltung 106 werden
bei der in 1 gezeigten PROG/ERASE-Eingabe
programmiert und gelöscht.
Typischerweise erfolgt das Programmieren und Löschen der CAM-Zellen während einer
Teststufe, die vor der Verwendung des Chips durch den End-User oder
Kunden durchgeführt
wird.
-
Jedes
Mal, wenn eine Operation wie z.B. ein Lese- oder Schreibvorgang
an dem Kern-Zell-Array 102 durchgeführt wird, wird die Operationsadresse der
Redundanz-CAM-Schaltung 106 zugeführt, damit die Operationsadresse
mit der in den CAM-Zellen gespeicherten Information verglichen werden
kann. Falls die Operationsadresse zu der in den CAM-Zellen gespeicherten
Positionsinformation passt, dann ist mindestens eine der Speicherzellpositionen,
auf die sich die Operationsadresse bezieht, betriebsunfähig und
erfordert eine Redundanz-Substitution.
-
Beispielsweise
wird, falls eine Lese-Operation aus dem regulären Array heraus durchgeführt wird,
eine Lese-Adresse, die einer Reihe von Speicherzellen entspricht,
welche ein Datenwort bilden, mit der Information in den Redundanz-CAM-Zellen verglichen.
Falls der Fall eintritt, dass eine betriebsunfähige Bitleitung eine der Reihe
der Speicherzellen enthält,
auf welche die Lese-Adresse ohne Redundanz-Substitution zugreifen
würde,
dann zeigt die Redundanz-CAM-Schaltung eine Lese-Entsprechung für die Lese-Adresse
an. Eine Dekodierlogik gewährleistet,
dass eine Bitleitung des redundanten Arrays für die betriebsunfähige Bitleitung
und die betriebsunfähigen
Speicherzelle ersatzweise eingesetzt wird, auf welche die Lese-Adresse ohne Redundanz-Substitution
zugreifen würde.
Eine ähnliche Substitution
würde erfolgen,
falls eine betriebsunfähigen
Bitleitung eine der Reihe von Speicherzellen enthielte, welche die
Schreib-Adresse ohne Redundanz-Substitution zugreifen würde.
-
2 zeigt
ein Schaubild zur Veranschaulichung eines Beispiels eines Kern-Zell-Arrays 102 mit primären Arrays
und redundanten Arrays entsprechend dem Speicher 100 gemäß 1.
Horizontal ist das als Beispiel dienende Kern-Zell-Array 102 gemäß 2 in
eine obere Bank 114 und eine untere Bank 116 unterteilt.
Vertikal ist das Array 102 in vier vertikale Arrays VERT0,
VERT1, VERT2, VERT3 unterteilt, wobei jedes vertikale Array ein
primäres
Array und ein zugehöriges
redundantes Array enthält.
Die obere Bank 114 enthält
obere primäre
Arrays 118A-D und obere redundante Arrays 120A-B.
Die untere Bank 116 enthält untere primäre Arrays 128A-D
und untere redundante Arrays 130A-D. Das vertikale Array
VERT0 beispielsweise enthält
die primären
Arrays 118A, 128A und die redundanten Arrays 120A, 130A.
-
Bei
einer Ausführungsform
ist jedes vertikale Array in neun Sektoren von Speicherzellen unterteilt (in 2 nicht
gezeigt). Horizontal ist jeder Sektor in eine Reihe von Spaltenbereichen
innerhalb des primären
Arrays unterteilt. Jeder Spaltenbereich seinerseits enthält eine
Anzahl von Speicherzellen. Jede Speicherzelle des Spaltenbereichs
entspricht vorzugsweise einer unverwechselbaren Bitleitung für das primäre Array.
Wie oben erläutert
wird in dem Fall, dass sich eine betriebsunfähige Speicherzelle in den primären Arrays
befindet, die Position der betriebsunfähigen Speicherzelle identifiziert.
Typischerweise wird eine Bitleitung, welche die oberen und unteren
redundanten Array-Teile des vertikalen Arrays überspannt, für die gesamte
Bitleitung des primären Arrays
ersatzweise eingesetzt, die der betriebsunfähigen Speicherzelle entspricht.
Falls eine Speicherzelle einer Bitleitung betriebsunfähig ist,
wird die gesamte Bitleitung durch eine redundante Bitleitung ersetzt,
so dass eine betriebsunfähige
Bitleitung definitionsgemäß mindestens
eine betriebsunfähige
Speicherzelle enthält.
Typischerweise – und
in Abhängigkeit
von der Ausgestaltung des Kern-Zell-Arrays 102 – kann eine begrenzte Anzahl
betriebsunfähiger
Bitleitungen eines primären
Arrays durch ein entsprechendes redundantes Array ersetzt werden.
-
Bei
einer Ausführungsform
wird, wie oben beschrieben, auf die Speicherzellen als Datenwörter zugegriffen,
wobei ein Spaltenbereich von Speicherzellen ein unverwechselbares
Datenwort speichert. Beispielsweise wird eine Lese-Operation durchgeführt, bei
der zwei 16-Bit-Datenwörter
auf einmal intern gelesen werden, während ein 16-Bit-Datenwort auf
einmal aus der Ausgangsschaltung 112 heraus erzeugt wird.
Auf diese Weise wird in einer Lese-Operation auf zwei Spaltenbereiche
gleichzeitig zugegriffen. Eine Schreib-Operation hingegen wird mit
einem einzigen 16-Bit-Datenwort auf einmal vorgenommen, und es wird
auf einen einzigen Spaltenbereich auf einmal zugegriffen. Selbstverständlich handelt
es sich bei diesen Datenwort-Längen nur
um Beispiele, und es können
je nach Eignung auch andere Wortlängen verwendet werden.
-
3 zeigt
ein Schaltbild eines Beispiels einer CAM-Stufe 200 und
der zugehörigen
Ausgangsschaltung entsprechend dem Speicher gemäß 1. Das Beispiel
der CAM-Stufe 200 weist eine CAM-Zelle 202, einen
Schreibdatenbus 204 und einen Lesedatenbus 206 auf.
Bei der CAM-Zelle 202 handelt es sich um einen Transistor,
vorzugsweise einen n-Kanal-Metalloxid-Halbleiter-Feldeffekttransistor (MOSFET).
Obwohl doe CAM-Zele 202 vorzugsweise ein MOSFET-Transistor
ist, der als nichtflüchtige
Speicherzelle verwendet wird, kann jedes beliebige geeignete aktive
Datenspeicherelement als CAM-Zelle 202 verwendet werden.
Der Schreibdatenbus 204 ist an einem Ausgangsport mit einem Knotenpunkt 212 verbunden
und an einem Eingang mit dem Drain der CAM-Zelle 202 an
einem Knotenpunkt 216 verbunden. Der Lesedatenbus 206 ist
an einem Ausgangsport mit einem Knotenpunkt 214 verbunden
und an einem Eingang mit dem Drain der CAM-Zelle 202 an einem Knotenpunkt 216 verbunden.
Bei dem Schreibdatenbus 204 und der Lesedatenbus 206 handelt
es sich um Transistoren, typischerweise um n-Kanal-MOSFETs. Selbstverständlich kann
jeder beliebige geeignete Datenbus für die Datenbusse 204, 206 verwendet
werden. Ein Schreib-Wähl-Signal
WSELm wird an das Gate des Schreibdatenbusses 204 angelegt,
während
ein Lese-Wähl-Signal
RSELm an das Gate des Lesedatenbusses 206 angelegt wird.
Eine Spannung VG wird an den Gate-Eingang
der CAM-Zelle 202 angelegt, während eine Spannung VS an den Source-Eingang der CAM-Zelle 202 angelegt
wird. Bei einer Ausführungsform
liegt während
des regulären
Betriebs der CAM-Zelle 202, z.B. wenn die CAM-Zelle 202 geprüft wird
oder auf sie zugegriffen wird, die Spannung VS auf
Massepotential.
-
In 3 wird
ferner eine knappe Darstellung des Beispiels einer mit zwei Ports
versehenen CAM-Stufe 200 präsentiert. Auf eine gattungsgemäße CAM-Stufe 200 kann
als CAMn/VERTm bezeichnet werden, wobei m eines der M vertikalen
Arrays VERT0-VERTM bezeichnet, und wobei n eine der N CAM-Stufen 200 CAM0-CAMN
bezeichnet, die einem vertikalen Array VERTm zugeordnet sind. Bei dem
in 2 gezeigten Beispiel eines Kernzell-Arrays 102 sind
M=4 vertikale Arrays VERT0-VERT3 vorhanden. Bei einer Ausführungsform
weist jedes vertikale Array VERTm N=8 zugehörige und unverwechselbare Redundanz-CAM-Stufen
CAM0-CAM7 auf. Bei einer anderen Ausführungsform weist jedes vertikale
Array VERTm N=16 zugehörige
und unverwechselbare Redundanz-CAM-Stufen CAM0-CAM16 auf, die in
einer oder zwei separaten Spalten angeordnet sind. Selbstverständlich ist
das Kern-Zell-Array 102 skalierbar und kann auch anders als
das in 2 gezeigte Beispiel des Kern-Zell-Arrays 102 konzipiert,
bemessen, angeordnet oder aufgeteilt sein. Auch die Anzahl der Redundanz-CAM-Zellen 202 und
Stufen 200, die jeder Vertikalen zugeordnet sind, kann
je nach der Ausführungsform
und dem bestimmten Konzept und Layout des Kern-Zell-Arrays 102 variieren.
Dies bedeutet, dass mehr Redundanz-Arrays vorgesehen sein können oder
zusätzliche
CAM-Zellen verwendet werden können,
um insbesondere die Position einer betriebsunfähigen oder defekten Speicherzelle,
die Position einer betriebsunfähigen
Bitleitung, welche die betriebsunfähige Speicherzelle enthält, oder
des Spaltenbereichs, in dem die betriebsunfähige Bitleitung angeordnet
ist, zu bestimmen.
-
Bei
einer Ausführungsform
ist die CAM-Zelle 202 eine nichtflüchtige Speicherzelle, bei der
die Information gelöscht
werden kann oder die mit Information programmiert werden kann. Falls
es sich bei der CAM-Zelle 202 um einen MOSFET-Transitsor
handelt, wird dies durch Modifikation der Schwellspannung des Transistors
erzielt. Das Programmieren/Löschen
der Signalzelle und der beigefügte
Pfeil sollen die an der CAM-Zelle 202 vorgenommene Programmier-/Lösch-Operation
andeuten. In Abhängigkeit davon,
ob die CAM-Zelle 202 programmiert oder gelöscht wird,
reagiert die CAM-Zelle 202 unterschiedlich
auf eine angelegte Gate-Spannung.
-
Wenn
die CAM-Zelle 202 programmiert wird, werden typischerweise
geregelte Spannungen an das Drain und das Gate der Transistorzelle 202 angelegt.
Die geregelten Spannungen sind verglichen mit der Versorgungsspannung
VCC relativ hoch. Beispielsweise wird eine
Spannung VD von ungefähr 5,0 Volt an das Drain angelegt,
während
eine Spannung VG von ungefähr 8,5 Volt
an den Gate-Eingang der CAM-Transistorzelle 202 angelegt
wird. Unabhängig von
der verwendeten Spannung besteht der kombinierte Effekt der an der
CAM-Zelle 202 vorgenommenen Programmieroperation darin,
die Schwellspannung höher
anzuheben als irgendeine angelegte Spannung an dem Gate der CAM-Zelle 202 während des
regelmäßigen Betriebs
der Redundanz-CAM-Schaltung 106, d.h. höher als die Versorgungsspannung
VCC.
-
Während des
regelmäßigen Betriebs,
nachdem die CAM-Zelle 202 programmiert ist und das Drain
der Zelle 202 auf Massepotential liegt, wird bei Anlegen
einer Gate-Spannung VG, vorzugsweise der Versorgungsspannung
VCC, nicht geschehen, d.h. die CAM-Zelle 202 wird
nicht eingeschaltet oder wird nicht leitend.
-
Typischerweise
sind vor dem Löschen
sämtliche
CAMs vorprogrammiert und werden zusammen gelöscht. Die CAM-Zelle 202 kann
mittels eines UV-Löschvorgang
gelöscht
werden, wie Fachleuten auf dem Gebiet bekannt ist. Selbstverständlich können auch
andere Löschtechniken
verwendet werden. Der Effekt der Löschoperation auf die CAM-Zelle 202 besteht
darin, dass die Schwellspannung von ihrem bei Programmierung der
Zelle 202 bestehenden Wert auf einen regulären Wert
abgesenkt wird, der mit einem regulären Transistor konsistent ist.
Typischerweise wird beim Löschen
der CAM-Zelle 202 die Schwellspannung derart gesetzt, dass
sich die Zelle wie ein n-Kanal-Transistor verhält, d.h. beim Anlegen einer
Gate-Spannung VG, die der Versorgungsspannung
VCC gleichwertig ist, schaltet sich der
Transistor ein und wird leitend.
-
Ebenfalls
in 3 sind zwei p-Kanal-Vorspanntransistoren 208, 210 gezeigt,
die als zugefügte
Ausgangsschaltung für
das Beispiel der CAM-Stufe 200 verwendet
werden. Die Transistoren 208, 210 sind als schwache
Pull-up-Transistoren relativ zu der CAM-Zelle 202 konzipiert
und bemessen. Die in 3 gezeigten p-Kanal-Transistoren 208, 210 gemäß einer
Ausführungsform
sind Niedrig-Schwellspannungs-Transistoren. Fachleuten auf dem Gebiet ist
gut bekannt, dass die Schwellspannungen von Transistoren wie z.B.
von MOSFETS während
der Herstellung gesteuert werden. Der Vorrichtungsherstellungsvorgang
erlaubt eine gewisse Flexibilität beim
Wählen
der Schwellspannung. Jedoch sind vornehmlich normale Werte vorhanden,
und diese werden für
MOSFETs bei bestimmten Vorgängen
allgemein verwendet. Es versteht sich, dass diese Schwellwerte nur
Beispiele sind. Generell können Transistor-Design-Parameter
wie z.B. Schwellspannungen und Vorrichtungsgrößen, andere Schaltungskonfigurationen
oder andere applizierbare Designtechniken, die Fachleuten auf dem
Gebiet verfügbar sind,
verwendet oder ersatzweise vorgesehene werden, wo dies geeignet
ist.
-
Die
p-Kanal-Transistoren 208, 210 sind mit den Schreib-
und Lese-Datenbussen 204, 206 verbunden.
Beispielsweise ist der Lese-p-Kanal-Vorspanntransistor 210 mit
dem Ausgangs-Port des Lesedatenbusses 206 an dem Knotenpunkt 214 verbunden.
Die gattungsgemäße CAM-Stufe 200,
die als CAMn/VERTm bezeichnet werden kann, und der Lese-p-Kanal-Vorspanntransistor 210 erzeugen
ein Signal CAMnR an dem Knotenpunkt 214, wobei – wie oben – n eine
der n CAM-Stufen 200 CAM0-CAMn bezeichnet, die einem vertikalen
Array VERTm zugeordnet sind. Das R identifiziert das Signal CAMnR
an dem Knotenpunkt 214 als ein Lese-Operations-CAM-Signal.
Im Licht der soeben gegebenen Erläuterungen wird Fachleuten auf
dem Gebiet die Funktion des p-Kanal-Vorspanntransistors 208 und seines
Schreibdatenbusses 204 ersichtlich sein.
-
Die
Gate-Eingänge
der Lese-p-Kanal-Vorspanntransistoren 210, 208 sind
mit Massepotential verbunden, während
die Source-Eingänge
auf der Versorgungsspannung VCC liegen.
Somit befinden sich die Transistoren 210, 208,
da sie wie oben beschrieben Niedrig-Schwellwert-Transistoren sind,
im leitenden Zustand, und die jeweiligen Knotenpunkte 212, 214 liegen
bei Nichtvorhandensein einer Pull-down-Aktion von der CAM-Stufe 200 auf
VCC.
-
Der
Betrieb der CAM-Stufe 200 in Verbindung mit den Transistoren 208, 210 läuft wie
folgt ab. Bei einer Ausführungsform
erfolgt jedes Mal, wenn eine Operation zum Zugriff auf das Kernzell-Array 102 auftritt,
unabhängig
davon, ob die Operation ein Lese- oder Schreibvorgang ist, ein Zugriff
auf die CAM-Zellen 202 der Redundanz-CAM-Schaltung 106.
Es wird festgestellt, ob die betreffende Adresse (eine Lese-Adresse
oder eine Schreib-Adresse) eine Position mit betriebsunfähiger Speicherzelle
enthält, an
der eine Redundanz-Operation erforderlich ist. Die Information zu
dieser Stelle wurde typischerweise vor dieser Stelle in die CAM-Zellen 202 programmiert.
Jedes Mal, wenn eine Lese- oder Schreib-Operation oder beide auftreten,
liegt die Quellspannung VS jeder CAM-Zelle 202 auf
Massepotential, und die Gate-Spannung VC jeder
CAM-Zelle 202 wird auf die Versorgungsspannung VCC gebracht.
-
Falls
eine Lese-Operation an einem vertikalen Array VERTm vorgenommen
wird, befindet sich das Lese-Wähl-Signal
RSELm im High-Zustand, und der Lese-Datenbus befindet sich im Ein-Zustand. Eine
programmierte CAM-Zelle 202 verbleibt im Aus-Zustand und
wird nicht auf eine aufgebrachte Gate-Spannung VG, bei der es sich
gemäß einer Ausführungsform
um die Versorgungsspannung VCC handelt,
eingeschaltet oder leitend. Der Lese-Pull-up-Transistor 210 befindet
sich im leitenden Zustand, und der Knotenpunkt 214 bei
Nichtvorhandensein einer Pull-down-Aktion von der CAM-Stufe 200 auf
VCC. Somit verbleibt, falls die CAM-Zelle 202 programmiert
ist und der Lese-Datenbus 206 sich im Ein-Zustand befindet,
der Knotenpunkt 214 im High-Zustand oder auf VCC.
-
Falls
eine Lese-Operation an einem vertikalen Array VERTm durchgeführt wird,
dann befindet sich das Lese-Wähl-Signal
RESELm im High-Zustand,
und der Lese-Datenbus 206 befindet sich im Ein-Zustand.
Eine gelöschte
CAM-Zelle 202 verhält sich
wie ein n-Kanal-Transistor und wird auf eine angelegte Gate-Spannung
VG hin, bei der es sich gemäß einer
Ausführungsform
um die Versorgungsspannung VCC handelt,
eingeschaltet und leitend. Die CAM-Zelle 202 zieht den
Knotenpunkt 216 auf Massepotential. Typischerweise ist
die CAM-Zelle 202 derart ausgebildet, dass sie stärker als
der Pull-up-Transistor 210 ist, und somit wird, falls die CAM-Zelle 202 gelöscht wird
und sich der Lese-Datenbus 204 im Ein-Zustand befindet,
der Knotenpunkt 214 auf Massepotential gezogen.
-
Falls
keine Lese-Operation an einem vertikale Array VERTm durchgeführt wird,
befindet sich der Lese-Datenbus 206 im Aus-Zustand, und
die CAM-Zelle 202 wird nicht geprüft. Ob die CAM-Zelle 202 programmiert
oder gelöscht
wird, hat keinen Einfluss auf den Wert des Signals CAMnR an dem
Knotenpunkt 214.
-
Generell
wird, falls eine Lese-Operation an einem vertikalen Array VERTm
durchgeführt
wird, durch die Signale CAM0R ... CAMnR die Position der Bitleitung
bestimmt, an der eine Redundanz-Substitution vorgenommen werden
soll, falls eine solche existiert und eine solche in den CAM-Stufen 200 CAM0/VERTm
... CAMn/VERTm programmiert wurde. Vorzugsweise werden eines oder
mehrere der Signale CAM0R ... CAMnR mit der Lese-Adresse verglichen, um festzustellen,
ob eine Lese-Entsprechung besteht. Falls eine Lese-Entsprechung
für eine
betriebsunfähige
oder defekte Bitleitung besteht, wird eine Bitleitung aus dem redundanten
Array für
die betriebsunfähige
Bitleitung ersatzweise eingesetzt. Dies bedeutet, dass die redundante
Bitleitung anstelle der betriebsunfähigen Bitleitung verwendet
wird, falls eine Entsprechung zwischen der Lese-Adresse und den
CAM-Stufen 200 angezeigt wird,
die dem primären
Array zugeordnet sind, an dem die Lese-Operation andernfalls auftritt.
-
4 zeigt
ein Blockschaltbild eines Beispiels eines CAM-Stufen-Arrays 300 und
der zugehörigen
Ausgangsschaltung entsprechend dem Speicher gemäß 1 und des
Beispiels des Kern-Zell-Arrays 102 gemäß 2. Die Redundanz-CAM-Schaltung 106 gemäß 1 enthält das Beispiel
des CAM-Stufen-Arrays 300. Das CAM-Stufen-Array 300 enthält die folgenden
CAM-Stufen 200, die dem vertikalen Array VERT0 zugeordnet
sind: CAM0/VERT0 302A ... CAM7/VERT0 302H. Ähnliche
CAM-Stufen 200 sind den anderen vertikalen Arrays VERT1-VERT3
zugeordnet.
-
Das
CAM-Stufen-Array 300 enthält ferner Lese-p-Kanal-Pull-up-Niedrig-Schwellspannungs-Transistoren 370A-H
und Schreib-p-Kanal-Pull-up-Niedrig-Schwellspannungs-Transistoren 380A-H.
-
Sämtliche
der CAM-Stufen 200 der CAM-Stufen-Arrays 300,
das dem vertikalen Array VERT0 zugeordnet ist, empfangen die Schreib-
und Lese-Wähl-Signale
WSEL0, RSEL0. Sämtliche
der CAM-Stufen 200 der CAM-Stu fen-Arrays 300,
die den anderen vertikalen Arrays zugeordnet sind, empfangen ähnliche
Lese- und Schreib-Wähl-Signale.
-
Die
CAM-Stufen CAM0/VERT0 302A-CAM0/VERT3 305A sind sämtlich mit
dem Lese-Pull-up-Transistor 370A an einem gemeinsamen Ausgang
verbunden, der ein Signal CAM0R aufweist, und sie sind sämtlich mit
dem Schreib-Pull-up-Transistor 380A an einem ein Signal
CAM0W aufweisenden gemeinsamen Ausgang verbunden.
-
Die
CAM-Stufen an den anderen horizontalen Leitungen sind mit Lese-Pull-up-Transistoren
an gemeinsamen Ausgängen
CAM1R-CAM7R verbunden, und sie sind sämtlich an gemeinsamen Ausgängen CAM1W-CAM7W
mit ähnlichen Schreib-pull-up-Transistoren
an gemeinsamen Ausgängen
CAM1W-CAM7W verbunden.
-
5 zeigt
ein Blockschaltbild eines Beispiels einer Gruppe 400 von
CAM-Stufen 200, die einem vertikalen Array VERTm des Beispiels
des Kern-Zell-Arrays 102 gemäß 2 zugeordnet
sind. Das Beispiel der CAM-Stufen-Gruppe 400 enthält die folgenden
CAM-Stufen 200: CAM0/VERTm 402A ... CAM7/VERTm 402H,
die sämtlich
einem vertikalen Array VERTm zugeordnet sind. Sämtliche der CAM-Stufen 200 der
CAM-Stufen-Gruppe 400 empfangen ein Schreib-Wähl-Signal
WSELm und ein Lese-Wäh-Signal
RSELm entsprechend dem vertikalen Array VERTm.
-
Ferner
wird bei einer Ausführungsform
auf die Speicherzellen als Datenwörter zugegriffen, wobei ein
Spaltenbereich von Speicherzellen ein unverwechselbares Datenwort
speichert. Beispielsweise wird eine Lese-Operation durchgeführt, bei der zwei 16-Bit-Datenwörter auf
einmal intern gelesen werden, während
ein 16-Bit-Datenwort auf einmal aus der Ausgangsschaltung 112 von 1 heraus
erzeugt wird. Auf diese Weise wird in einer Lese-Operation auf zwei
Spaltenbereiche gleichzeitig zugegriffen. Eine Schreib-Operation
hingegen wird mit einem einzigen 16-Bit-Datenwort auf einmal vorgenommen, und
es wird auf einen einzigen Spaltenbereich auf einmal zugegriffen.
Selbstverständlich
handelt es sich bei diesen Datenwort-Längen
nur um Beispiele, und es können
je nach Eignung auch andere Wortlängen verwendet werden.
-
Gemäß einer
Ausführungsform
enthält
eine horizontale Reihe in dem primären Array eines vertikalen
Arrays VERTm p Spalten-Bereiche, die jeweils q Bitleitungen enthalten.
Beispielsweise kann die Reihe p=16 Spalten-Bereiche enthalten, wobei jeder der
16 Spalten-Bereiche q=16 Bitleitungen enthält, und zwar bei insgesamt
256 Bitleitungen in einer horizontalen Reihe. Selbstverständlich sind
diese Werte nur Beispiele und sollen die beschriebenen Ausführungsformen
erläutern,
jedoch nicht einschränken.
-
Das
Beispiel der CAM-Stufen-Gruppe 400 mit acht CAM-Stufen 402A-402H spezifiziert
die Position einer betriebsunfähigen
Bitleitung mit einem Spalten-Bereich des primären Arrays des vertikalen Arrays
VERTm. Eine redundante Bitleitung des redundanten Arrays wird für die betriebsunfähige Bitleitung
ersatzweise eingesetzt, auf die andernfalls durch eine Schreib-
oder Lese-Operation zugegriffen würde.
-
Die
Position einer betriebsunfähigen
Bitleitung BLi wird identifiziert, indem zuerst der Spalten-Bereich
der p Spalten-Bereiche identifiziert wird, der die betriebsunfähige Bitleitung
enthält.
Als nächstes
wird die Bitleitung der q Bitleitungen des Spalten-Bereichs identifiziert,
die der betriebsunfähigen Bitleitung
entspricht. Demgemäß speichert
das Beispiel der CAM-Stufen-Gruppe 400 mit
den acht CAM-Stufen 402A-402H zwei Informationen,
um die Position der betriebsunfähigen
Bitleitung BLi anzuzeigen.
-
Für eine Lese-Operation
wird die h-Bit-(2h=p/2)Lese-Adresse, die den beiden Spalten-Bereichen
entspricht, welche insgesamt 2q Bitleitungen aufweist, mit der h-Bit-(2h=p72)Adresse
verglichen, die in einer Gruppe von h-Adress-CAM-Stufen gespeichert
ist. Die beiden Spalten-Bereiche bei dieser Ausführungsform speichern zwei Datenwörter. Insbesondere
spezifizieren die h-Adress-CAM-Stufen die h-Bit-(2h=p/2)Adresse
der beiden Spalten-Bereiche, von denen einer die betriebsunfähige Bitleitung
BLi enthält.
Falls eine Entsprechung zwischen der h-Bit-Lese-Adresse und der
h-Bit-Adresse besteht,
die in den h-Adress-CAM-Stufen gespeichert ist, dann wird die Position
der betriebsunfähigen
Bitleitung BLi identifiziert durch j (2j=2q) I/O CAM-Stufen. Die
Werte für
h und j hängen
generell von den Werten für
p und q ab.
-
Beispielsweise
werden gemäß einer
Lese-Operation bei einer Ausführungsform
zwei 16-Bit-Datenwörter
auf einmal intern gelesen, während
ein 16-Bit-Datenwort auf einmal aus der Ausgangsschaltung 112 von 1 heraus
erzeugt wird. In dieser Weise wird auf zwei der p=16 Spalten-Bereiche,
wobei jeder Spalten-Bereich q=16 Bitleitungen enthält, auf
einmal zugegriffen. Gemäß 5 speichern
h=3 (23=8) Adress-CAM-Stufen 402F, G, H die 3-Bit-Adresse
der beiden Spalten-Bereiche, von denen einer die betriebsunfähige Bitleitung
BLi enthält,
und j=5 (25=32) I/O CAM-Stufen 402A-402E speichern
die Position der betriebsunfähigen
Bitleitung BLi der 32 Bitleitungen in den beiden Spalten-Bereichen.
Wenn eine Lese-Operation durchgeführt wird, wird die Lese-Adresse
mit den Lese-Adress-Signalen READADD0, READADD1 und READADD2 der
CAM-Adress-Stufen CAM5/VERTm 402F, CAM6/VERTm 402G bzw.
CAM7/VERTm 402H verglichen (wobei die Adress-Entsprechungs-Schaltung
in 5 oder in 1 nicht
gezeigt ist). Falls die Lese-Adresse und die Lese-Adress-CAM-Signale
einander entsprechen, zeigen die I/O-CAM-Stufen 402A-402E an,
welche Bitleitung der 32 Bitleitungen der zwei Spalten-Bereiche die
betriebsunfähige
Bitleitung BLi ist.
-
Die
CAM-Stufen liefern zusammen die Information hinsichtlich der betriebsunfähigen Bitleitung
in einem primären
Array, das eine Substitution durch eine Bitleitung in einem redundanten
Array erfordert. Beispielsweise sei im Zusammenhang mit 5 angenommen,
dass das Ausgangssignal der CAM-Stufen 402A-402H jeweils
00010001 ist.
-
Falls
eine Lese-Operation an den beiden Spalten-Bereichen vorgenommen
werden soll, die zusammen eine Lese-Adresse 000 haben, dann werden
diese drei Bits mit den folgenden Signalen verglichen:
READADD2=CAM7R=0
von der (Adress-) CAM-Stufe 402H;
READADD1=CAM6R=0
von der (Adress-) CAM-Stufe 402G; und
READADD0=CAM5R=0
von der (Adress-) CAM-Stufe 402F.
-
Es
besteht eine Lese-Adress-Übereinstimmung,
so dass die Inhalte der I/O-CAM-Stufen geprüft werden, um die Position
der betriebsunfähigen Bitleitung
BLi innerhalb der beiden Spalten-Bereiche, die zusammen eine Adresse
000 haben, festzustellen, wie durch die folgenden Signale gezeigt
ist:
READI04=CAM4R=1 von der (I/O) CAM-Stufe 402E;
READI03=CAM3R=0
von der (I/O) CAM-Stufe 402D;
READI02=CAM2R=0 von
der (I/O) CAM-Stufe 402C;
READIO1=CAMIR=0 von der
(I/O) CAM-Stufe 402B; und
READIO0=CAM0R=1 von der
(I/O) CAM-Stufe 402A.
-
Bei
einer Ausführungsform
sind sämtliche Komponenten
von 1 auf einem einzigen IC-Chip enthalten. Anzumerken
ist, dass die Adress- und Steuer-Eingangssignale für die als
Beispiel gewählten
Flash-Speicher-Chips von Speicherdichte- und Intertace-Implementierungen
abhängig
sind. Es wird ersichtlich sein, dass die offenbarten Ausführungsformen
auch mit unterschiedlichen Speicherdichten und alternativen Intertace-Implementierungen
mit den diesen zugehörigen
alternativen Adress- und Steuereingangssignal-Konfigurationen arbeiten
können.
-
Der
für gleichzeitigen
Betrieb ausgelegte Flash-Speicher kann in einem Burst-Modus betätigt werden.
In einem Burst-Lese-Modus werden mehrere Daten-Bits auf einmal gelesen
und erscheinen in einem oder mehreren Teilen an den Speicher-Ausgängen. Beispielsweise
werden bei einer Ausführungsform
32 Daten-Bits auf einmal gelesen und erscheinen in zwei 16-Bit-Teilen
an den Speicher-Ausgängen.
Das Bursting tritt in sehr kurzen Intervallen von z.B. 20 ns auf.
Dieses kurze Intervall belässt
sehr wenig Zeit, um aus dem Redundanz-CAMS heraus festzustellen,
ob ein Redundanz-Lesen erforderlich ist. Nach dieser Feststellung
ist wiederum sehr wenig Zeit für
das Identifizieren der Bitleitung, die betriebsunfähig oder
defekt ist und eine Substitution durch ein redundantes Bit oder
eine redundante Spalte erfordert. Wenn der Bestimmungsvorgang vorgenommen
wird und zeigt, dass ein Redundanz-Lesevorgang erforderlich ist,
und wenn diese Bitleitungs-Identifizierung vorgenommen wird, wird
durch den Zugriff auf redundante Array und dessen Lesen und die
Substitution defekter Bitleitungen vor der Burst-Ausgabe eine Verzögerung der
Burst-Ausgabe verursacht und die Arbeit der Speichervorrichtung verlangsamt.
Somit wären
Verbesserungen im Erstellen der Reihenfolge von Ereignissen während der Redundanz-Operation nützlich,
um Zeitsteuerungsvorteile bei einer Burst-Lese-Operation zu erzielen.
-
Verschiedene
Ausdrücke
und Phrasen haben in ihrer hier vorliegenden Verwendung die im Folgenden
aufgeführten
Bedeutungen. Der Ausdruck "Adresse" soll sich im weiten
Sinn auf jede Positions-Identifizierung beziehen, die einer oder
mehreren Speicherzellen oder deren Position unverwechselbar entspricht.
Die Ausdrücke
und Phrasen "low", "logisch low", "nicht angelegt", "nicht aktiv" und "inaktiv" sollen sich im weiten
Sinn auf im logischen "low"-Zustand befindliche
Werte eines Digitalsignals beziehen, die nach generellem Verständnis durch eine
binäre
Null (0) ausgedrückt
werden. Die Ausdrücke
und Phrasen "high", "logisch high", "angelegt" und "aktiv" sollen sich im weiten
Sinn auf im logischen "high"-Zustand befindliche
Werte eines Digitalsignals beziehen, die nach generellem Verständnis durch
eine binäre
Eins (1) ausgedrückt
werden. Die Phrase, dass "A
mit B verbunden" ist,
ist in dem Sinn definiert, dass A direkt mit B verbunden ist, oder
A durch eine oder mehrere Zwischenkomponenten indirekt mit B verbunden
ist. Der Ausdruck "User" soll sich auf einen
Prozessor oder eine andere Komponente oder Entität beziehen, die einen Zugriff
auf den Speicher anstrebt. Der Ausdruck "Signal" bezieht sich im breiten Sinne auf ein
Analog- oder Digitalsignal und umfasst beide Typen von Signalen.
-
Gemäß der hier
vorliegenden Verwendung bezieht sich der Ausdruck "betriebsunfähig" oder "defekt" im weiten Sinn auf
jede Bedingung oder jeden Zustand, die bzw. das ein ersatzweises
Einsetzen eines oder mehrerer Speicherelemente für das betriebsunfähige Speicherelement
verlangt. Das Speicherelement kann z.B. eine oder mehrere Speicherzellen
oder Bitleitungen oder Interface-Schaltungen zu Speicherzellen enthalten.
Insbesondere soll sich gemäß der hier
vorliegenden Verwendung eine "betriebsunfähige oder
defekte Speicherzelle" im
weiten Sinn auf eine Speicherzelle mit oder ohne zugehörige Schaltung
beziehen, wie z.B. eine Bitleitung, die mit der Speicherzelle verbunden
ist, oder eine Bitleitung, welche die Speicherzelle enthält. Typischerweise
erfordert ein Mangel an Funktionalität des Speicherelements, dass
das Speicherelement ersetzt wird. Der Mangel an Funktionalität kann aufgrund
einer Beschädigung
oder eines Defekts in dem Speicherelement oder in einem Interface
zu dem Speicherelement bestehen.
-
Die
Schritte der hier aufgeführten
Verfahren können
in jeder Reihenfolge durchgeführt
werden, die mit den erwähnten
Vorgängen
vereinbar ist.
-
Obwohl
vorstehend und nachfolgend bestimmte Ausgestaltungen der vorliegenden
Erfindung gezeigt und beschrieben sind, können Modifikationen vorgenommen
werden. Beispielsweise können
die Richtungen der einzelnen Transistoren, p-Kanal und n-Kanal,
in geeigneten Anwendungsfällen
umgekehrt werden. Anzumerken ist, dass die geeigneten Transistorgrößen, welche
die Verhältnisse
von Kanalbreite zu Kanallänge
(gemessen in Mikrometer oder Mikron) für die Transistoren spezifizieren,
die die gewünschte
Schaltung bilden, in den Figuren weggelassen sind. Es ist ersichtlich,
dass die geeigneten Verhältnisse
je nach den Design-Erfordernissen und den Fähigkeiten und Limitationen
des bestimmten IC-Schaltungs-Herstellungsvorgangs, der für die Implementierung
der Schaltung gewählt
wird, sowie je nach den Leistungserfordernissen der speziellen Ausgestaltung
gewählt
wer den können.
Ferner können
die hier beschriebenen erfinderischen Konzepte auch an anderen Schaltung
als an Speichervorrichtungen angewandt werden.
-
OFFENBARUNG
DER ERFINDUNG
-
Vor
diesem Hintergrund werden eine Vorrichtung und ein Verfahren zum
Durchführen
eines redundanten Lesens in einer Flash-Speichervorrichtung bereitgestellt.
-
Ein
erster Aspekt der Erfindung betrifft eine Vorrichtung zum Durchführen dieses
redundanten Lesens. Die Vorrichtung enthält ein Array von Speicherzellen,
bei denen es sich um reguläre
Speicherzellen oder redundante Speicherzellen handeln kann. Die
reguläre
Speicherzellen ihrerseits sind defekt oder nicht defekt, und jede
hat eine Speicheradresse und einen Eingangs-/Ausgangs-Bezeichner. Eine
Defekt-Adresse ist die Speicheradresse einer defekten Speicherzelle.
-
Die
Vorrichtung enthält
ferner eine Dekodierschaltung, die als Reaktion auf den Eingangs-/Ausgangs-Bezeichner
einer Speicherzelle ein defektes Dekodiersignal erzeugt, falls die
Adresse dieser Zelle defekt ist. Diese Schaltung erzeugt ferner
ein reguläres
Dekodiersignal, falls die Adresse dieser Zelle nicht defekt ist,
und dieses Signal entspricht dem Eingangs-/Ausgangs-Bezeichner dieser
Zelle. Die Schaltung enthält
ferner eine Multiplexer-Stufe, die als Reaktion auf eine reguläre Speicherzelle
und auf das reguläre
Dekodiersignal, das dem Eingangs-/Ausgangs-Bezeichner der regulären Speicherzelle
entspricht, ein reguläres
Signal ausgibt. Dieses reguläre
Signal wird an den Multiplexer-Ausgang angelegt, der dem Eingangs-/Ausgangs-Bezeichner
der regulären
Speicherzelle entspricht. Die Schaltung gibt ferner als Reaktion
auf eine redundante Speicherzelle und auf das defekte Dekodiersignal, das
dem Eingangs-/Ausgangs-Bezeichner der defekten Speicherzelle entspricht,
ein redundantes Signal aus. Dieses redundante Signal wird an den
Multiplexer-Ausgang angelegt, der dem Eingangs-/Ausgangs-Bezeichner
der defekten Speicherzelle entspricht.
-
Ferner
kann die Schaltung zum Durchführen eines
redundanten Lesens ein erstes Array aus einem oder mehreren CAMs,
die zum Speichern der defekten Adresse konfiguriert sind, sowie
ein zweites Array aus einem oder mehreren CAMs enthalten, die zum
Speichern des Eingangs-/Ausgangs-Bezeichners der defekten Speicherzelle
konfiguriert sind.
-
Die
Vorrichtung kann ferner einen regulären Leseverstärker enthalten,
der die reguläre
Speicherzelle während
eines ersten Zeitintervalls liest und während dieses Intervalls das
reguläre
Signal erzeugt. In diesem Fall enthält die Vorrichtung ferner den
redundanten Leseverstärker,
der die redundante Speicherzelle während eines zweiten Zeitintervalls liest
und während
dieses Intervalls das redundante Signal erzeugt.
-
Falls
die Vorrichtung den regulären
Leseverstärker
enthält,
funktioniert die Dekodierschaltung während eines vierten Zeitintervalls,
das sich nicht wesentlich über
das erste Intervall hinaus erstreckt.
-
Zusammen
mit diesen Leseverstärkern
kann die Vorrichtung ferner eine Adressvergleichsschaltung enthalten,
welche die Adresse der Zelle des regulären Speichers mit der defekten
Adresse vergleicht und während
eines dritten Zeitintervalls ein defektes Adress-Vergleichssignal
erzeugt, falls in dem Vergleich festgestellt wird, dass die Adresse
defekt ist. Diese Schaltung erzeugt ferner während dieses dritten Intervalls
ein nicht defektes Adress-Vergleichssignal,
falls in dem Vergleich festgestellt wird, dass die Adresse nicht
defekt ist. Das dritte Intervall erstreckt sich nicht wesentlich über das
erste Intervall hinaus.
-
Falls
die Vorrichtung die Adress-Vergleichsschaltung enthält, werden
die Funktionen der Dekodierschaltung in Abhängigkeit davon, ob die Adres se der
Speicherzelle defekt ist oder nicht, von der Adress-Vergleichsschaltung
ausgeführt.
-
Ferner übermittelt
in dem Fall, dass die Vorrichtung zwei Arten von Leseverstärkern enthält, der reguläre Leseverstärker die
Daten von der regulären Speicherzelle
an die Multiplexer-Stufe. Andererseits übermittelt der redundante Leseverstärker die
Daten von dem redundanten Speicher an die Multiplexer-Stufe.
-
Es
ist somit ein hochrangiger Vorteil, dass der redundante Leseverstärker während eines
Zeitintervalls arbeitet, das generell mit dem Zeitintervall übereinstimmt,
während
dessen der reguläre
Leseverstärker
arbeitet. Als Ergebnis wird der Betrieb der Speichervorrichtung
nicht aufgrund des Betriebs des redundanten Leseverstärkers verzögert.
-
Ein
weiterer Vorteil besteht darin, dass die Adress-Vergleichsschaltung
während
eines Zeitintervalls arbeitet, das generell mit dem Zeitintervall übereinstimmt,
während
dessen der reguläre
Leseverstärker
arbeitet. Als Ergebnis wird der Betrieb der Speichervorrichtung
nicht aufgrund des Betriebs der Adress-Vergleichsschaltung verzögert.
-
Ein
weiterer Vorteil besteht darin, dass die Dekodierschaltung während eines
Zeitintervalls arbeitet, das generell mit dem Zeitintervall übereinstimmt,
während
dessen der reguläre
Leseverstärker arbeitet.
Als Ergebnis wird der Betrieb der Speichervorrichtung nicht aufgrund
des Betriebs der Dekodierschaltung verzögert.
-
Es
ist ein weiterer Vorteil der vorliegenden Erfindung, dass als Ergebnis
die Datenmenge, die von der X-Dekodierung beansprucht wird, und
die damit zusammenhängende
Schaltung reduziert werden.
-
Schließlich wird
der Hauptzweck, die Arbeitsgeschwindigkeit der Speichervorrichtung
zu verbessern, durch die vorliegende Erfindung gefördert.
-
Diese
sowie weitere Aufgaben und Vorteile der Erfindung werden anhand
der folgenden Figuren und der folgenden detaillierten Beschreibung
bevorzugter Ausführungsformen
deutlicher ersichtlich.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
ein Blockschaltbild eines Speichers gemäß einer derzeit bevorzugten
Ausführungsform;
-
2 zeigt
ein Beispiel eines Kern-Zell-Arrays mit primären Arrays und redundanten
Arrays entsprechend dem Speicher gemäß 1;
-
3 zeigt
ein Schaltbild eines Beispiels einer CAM-Stufe und der zugehörigen Ausgangsschaltung
entsprechend dem Speicher gemäß 1;
-
4 zeigt
ein Blockschaltbild eines Beispiels eines CAM-Stufen-Arrays und
der zugehörigen
Ausgangsschaltung entsprechend dem Speicher gemäß 1 und des
Beispiels des Kern-Zell-Arrays gemäß 2;
-
5 zeigt
ein Blockschaltbild eines Beispiels einer Gruppe von CAM-Stufen,
die einem vertikalen Array des Beispiels des Kern-Zell-Arrays gemäß 2 zugehören; und
-
6 zeigt
ein Blockschaltbild einer Ausführungsform
der Erfindung.
-
7 zeigt
ein Schaltbild der am meisten bevorzugten Ausführungsform der Multiplexer-Stufe
der Erfindung.
-
ART(EN) DER AUSFÜHRUNG DER
ERFINDUNG
-
Bei
einer Ausführungsform
der vorliegenden Erfindung, die in 6 gezeigt
ist, lesen Leseverstärker 410 die
Speicherzellen, d.h. reguläre
Speicherzellen, in dem primären
Array 412. Beispielsweise werden bei einer Burst-Lese-Ausführungsform
32 Daten-Bits auf einmal gelesen und erscheinen an den Speicher-Ausgängen 480 in
zwei aufeinanderfolgenden 16-Bit-Teilen.
Bei dieser Ausführungsform
lesen 32 Leseverstärker 410 die
regulären
Speicherzellen. In ähnlicher
Weise lesen Leseverstärker 420 die
Speicherzellen, d.h. redundante Speicherzellen, in dem zugehörigen redundanten
Array 422. Die Wahl des tatsächlichen Designs der Leseverstärker hängt ab von
den Gesamtanforderungen an die Speicherschaltung und wird Fachleuten
ersichtlich sein. Der Einfachheit halber und nicht notwendigerweise aufgrund
eines inhärenten
Unterschieds werden die Speicherzellen in dem primären Array 412 und
dem redundanten Array 422 als reguläre Speicherzellen bzw. redundante
Speicherzellen bezeichnet. Aus ähnlichen
Gründen
werden die Leseverstärker 410 als
reguläre
Leseverstärker
bzw. redundante Leseverstärker 420 bezeichnet.
Wie oben beschrieben wird während
einer Lese-Operation auf zwei Spalten-Bereiche oder Wörter von
Speicherzellen, die jeweils 16 Bits aufweisen, auf einmal zugegriffen,
und somit ist der Bit-Leitungs-Bus 414 von
dem regulären Leseverstärkungsblock 410 her
32 Bit breit, und es werden 32 reguläre Richtungsverstärker durch
den Schaubild-Block 410 repräsentiert.
-
Bei
der am meisten bevorzugten Ausführungsform
existieren tatsächlich
zwei redundante Arrays 422 für jedes primäre Array 412.
Entsprechend den beiden redundanten Arrays sind zwei redundante
Leseverstärker 420 vorgesehen.
Ferner sind entsprechend den beiden redundanten Arrays zwei separate
Arrays 432 von CAM-Stufen vorgesehen, von denen jedes die Adresse
eines defekten Zwei-Wort-Segment speichert. Diese Verdopplung der
Redundanz erlaubt das ersatzweise Einsetzen redundanter Speicherzellen
für defekte
Speicherzellen in zwei verschiedenen Zwei-Wort-Segmenten in dem
primären
Array 412, das jedes der beiden CAM-Arrays 432 eine
verschiedene defekte Zwei-Wort-Adresse speichern kann. Bei der am meisten
bevorzugten Ausführungsform
erlaubt diese Verdoppelung eine Substitution an zwei verschiedenen
Positionen in dem gleichen Zwei-Wort-Segment. Der zwei Bit breite
Bus 424 führt
die Ausgangssignale aus den beiden redundanten Leseverstärkern 420. Bei
der vorliegenden Ausführungsform
schließen
die beiden redundanten Leseverstärker 420 separat
die Lesevorgänge
der beiden redundanten Speicherzellen im Wesentlichen nicht später ab als
die Leseoperation durch den regulären Leseverstärker 410 abgeschlossen
wird.
-
Wie
oben beschrieben wird jedem primären Array 412 ein
Array von CAM-Stufen 432 zugeordnet. Wie oben erwähnt und
entsprechend der Verwendung bei der vorliegenden Ausführungsform
wird auf dieses Array von CAM-Stufen 432 während eines
Lesens aus diesem primären
Array 412 zugegriffen, um festzustellen, ob ein aus dem
primären
Array gelesenes Zwei-Wort-Segment
eine substituierte Speicherzelle benötigt oder nicht. Das Zugreifen
auf dieses Array von CAM-Stufen 432 ist in dem Block 440 von 6 gezeigt.
Diese CAM-Stufen 432 enthalten zwei Formen von Information.
Erstens enthalten sie die Adresse eines Zwei-Wort-Segments. Das Zwei-Wort-Segment, dessen
Adresse in den CAM-Stufen 432 enthalten ist, ist defekt,
d.h. es enthält
ein defektes Bit. Zweitens speichert die CAM-Stufe 432 die
Position der defekten Speicherzelle oder Bitleitung innerhalb dieses
Zwei-Wort-Segments.
-
Die
Terminologie für
diese Position kann bei einem Burst-Lesespeicher eine spezielle
Form annehmen. Da 16 Bits (d.h. ein Wort eines Zwei-Wort-Segments) auf
einmal an den mehreren Eingangs-/Ausgangs-Verbindungen 480 des
Speichers angelegt werden, wird die Bit-Position innerhalb dieser
16 Bits hier als "Eingangs-/Ausgangs-Bezeichner" bezeichnet und liegt
im Bereich von 0 bis 15.
-
Nach
dem Zugreifen wird als nächstes
die erste Form von Information in dem CAM-Array 432 verarbeitet,
bei der es sich um die Adresse eines defekten Zwei-Wort-Segments
handelt. Die Adresse des defekten Zwei-Wort-Segments wird verglichen mit oder
in Entsprechung gesetzt zu der Adresse des Zwei-Wort-Segments in
der momentan gelesenen primären
Array 412. Der Vergleich wird im Wesentlichen nicht später abgeschlossen
als das Ende des Lesens der regulären Speicherzellen durch die
regulären
Leseverstärker 410.
Bei der bevorzugten Ausführungsform
ist die Adresse des Zwei-Wort-Segments durch drei Bits repräsentiert,
wie bereits im Zusammenhang mit 5 erläutert wurde.
Eine Schaltung zum Durchführen
von Vergleichen ist Fachleuten auf dem Gebiet bekannt und ist in 6 durch den
Block 450 angedeutet.
-
Falls
die beiden Adressen identisch sind oder einander entsprechen, wird
die zweite Form von Information in dem CAM-Array 432 verarbeitet,
bei der es sich um die Position der defekten Speicherzelle oder
Bitleitung innerhalb des Zwei-Wort-Segments handelt.
-
Wie
oben im Zusammenhang mit 5 beschrieben, ist die Position
innerhalb des defekten Zwei-Wort-Segments der defekten Speicherzelle oder
Bitleitung in fünf
Bits eines oder zweier CAM-Arrays 432 enthalten. Diese
fünf Bits
werden dekodiert, um eines der 32 Bits von Speicherzellen oder Bitleitungen
zu wählen,
die eine Substitution durch eine Speicherzelle von einem redundanten
Array erfordert. Bei der am meisten bevorzugten Ausführungsform
ist dieses Dekodieren 460 ein zweistufiger Vorgang. Die
erste Stufe ist eine Vordekodierungsstufe. Beispielsweise werden,
falls die fünf
Bits des CAM-Arrays, welche die erste Bit-Position beschreiben,
als A0-A4 beschrieben
werden, die Bit-Gruppierungen (A0, A1), (A2, A3) und A4 gebildet.
Sämtliche Kombinationen,
einschließlich
der Komplemente, von (A0, A1) und (A2, A3) werden in acht Kombinationen
resultierend angeordnet. Diese Kombinationen werden dann als Eingangssignale
an einfache Gates angelegt, um ein Vordekodierungs-Ausgangssignal zu
erzeugen. In der zweiten Stufe des Dekodierens werden diese Vordekodierungs-Ausgangssignale dann
miteinander und mit A4 und A4 gegattert, um 32 Ausgangssignale zu
erzeugen, welche die Mini-Terme der fünf Bits A0-A4 repräsentieren.
Die vorstehend zusammengefassten Vorgänge der Gruppenbildung, der
Kombinations-Anordnung und -Anwendung und der Ausgangssignal-Gatterungen
sind Durchschnittsfachleuten auf dem Gebiet gut bekannt. Der Dekodierungsvorgang
wird nicht wesentlich später
abgeschlossen als das Lesen durch die regelmäßigen Lesevertärker 410.
-
Die
32 Ausgangssignale 470, die aus einem der zwei CAM-Arrays 432 resultieren,
werden als rp0ln für
die ersten 16 Ausgangssignale und als rp0hn für die zweiten 16 Ausgangssignale
bezeichnet. Das Signal rp0ln bestimmt die defekte Position in dem
ersten oder tieferen Wort des Zwei-Wort-Segments, während rp0hn die defekte Position
in dem zweiten oder höheren
Wort des Zwei-Wort-Segments bestimmt. Das Suffix n am Ende jedes
dieser beiden Signale bezeichnet jedes der 32 Ausgangssignale des
Dekodierers 460 (bei Annahme von 16 Suffixen jeweils für rp0I und
rp0h) und gibt an, mit welcher der 16 Multiplexerschaltungen das
Signal verbunden wird, wie noch erläutert wird. Die aus dem anderen der
beiden CAM-Arrays
resultierenden 32 Ausgangssignale werden als rp1ln für die ersten
16 und als rp1hn für
die zweiten 16 bezeichnet.
-
Bei
der am meisten bevorzugten Ausführungsform
wählt die
Dekodierschaltung keines der Bits als defekt und zur Substitution
anstehend, falls in dem Wort-Adress-Vergleich 450 festgestellt
wird, dass auf der Basis beider der zwei redundanten CAM-Array 432 das
Zwei-Wort-Segment nicht defekt ist. Dieses Null-Ergebnis des Wählvorgangs
resultiert aus der Verwendung eines Nicht-Entsprechungs-Ergebnisses
aus der Vergleichsschaltung 450 als Deaktivierungssignal
in der Dekodierstufe 460.
-
Obwohl
die Dekodierfunktion 460 als zwei Stufen aufweisend beschrieben
worden ist, wobei die erste eine Dekodierstufe ist, sind auch an dere
Ausgestaltungen möglich,
wie Fachleuten auf dem Gebiet ersichtlich sein wird.
-
An
diesem Punkt hat die Schaltung 34 Datenbits von den 34 Leseverstärkern 410, 420 übernommen.
32 Bits dieser 34 bilden schließlich
das Schaltungs-Ausgangssignal für
das Zwei-Wort-Segment. Eine 32-Bit-Ausgangs-Multiplexerstufe 470 wählt die
korrekten 32 aus den 34 und gibt 16 dieser 32 zu einem Zeitpunkt 480 aus.
-
7 zeigt
einen Teil 500 der Schaltung der Multiplexer-Stufe 490,
der praktischerweise auch als Multiplexerschaltung 50 bezeichnet
werden kann. In der Multiplexer-Stufe 490 existieren 16
identische Multiplexerschaltungen 500, die in 7 durch
n = 0, 1, ... 15 repräsentiert
sind. Der untere (Signale mit "h" markiert) Teil 510 der
Multiplexerschaltung (oder die "untere
Multiplexer-Teilschaltung")
arbeitet in identischer Weise wie der obere (Signale mit "I" markiert) Teil 520, wie Fachleuten
auf dem Gebiet ersichtlich sein wird. Deshalb werden nur die Einzelheiten
des Betriebs des oberen Teils 520 beschrieben. Die Gesamtheit
der 16 identischen Multiplexerschaltungen 500 wird einfach
als Multiplexerschaltung 490 mit einem 16-Bit-Busausgang
DSIn bezeichnet.
-
Daten
von einem der zwei Wortsegmente, d.h. dem ersten, werden an der
Gruppe der 16 oberen Multiplexer-Teilschaltungen 520 an
den Eingang DSILn (n = 0, ..., 15) angelegt. Wie oben beschrieben ist
der Ausgang des Dekodierers 460 deaktiviert und führt keine
Wahl hinsichtlich eines defekten Zustands durch, es sei denn, dass
das Zwei-Segment-Wort defekt ist, wie durch eines der beiden redundanten CAM-Arrays 432 bestimmt
wird. Falls sich sowohl rp0ln als auch rplln auf 0 oder im Low-Zustand
befinden, dann befindet sich norpln ("keine Redundanz" = "nor"), das aus dem NOR-Gate 530 resultiert,
auf 1 oder im High-Zustand, und sein Komplement norplbn ist low;
somit wird das Regulär-Array-Bit
DSILn von dem CMOS-Übertragungs-Gate 540 durchgelassen und
dann vorübergehend
in dem Latch-Speicher 550 gespeichert.
-
Falls
rp0ln sich auf 1 oder im High-Zustand befindet, lässt das
CMOS-Übertragungs-Gate 542 das
Signal REDSI(0) durch, wobei das Signal aus dem redundanten Lesespeicher 420 eine
der redundanten Speicherzellen liest. Falls rplln sich auf 1 oder im
High-Zustand befindet, lässt
das CMOS-Übertragungs-Gate 544 das
Signal REDSI(1) durch, wobei das Signal aus dem redundanten Lesespeicher 420 die
andere der redundanten Speicherzellen liest.
-
DSILn,
REDSI(0) oder REDSI(1), je nach dem betreffenden Fall wird dann
an das von DTLDB (auf low aktiviert) gesteuerte Übertragungs-Gate 560 weitergeleitet,
falls die (nicht gezeigte) Logik diktiert, dass die Gesamtschaltung
einen Lesevorgang durchführt.
(Die in den oberen beiden Transistoren des Übertragungs-Gates 560 gezeigten
Dreieckformen verweisen auf einen p-Typ-MOSFET). Wiederum läuft das
Signal nach der Speicherung in einem Latch-Speicher 570 durch
das von RA(0) gesteuerte Übertragungs-Gate 580,
das denn Durchtritt erlaubt, wenn es low ist, d.h. RA(0) wird von
der Steuervorrichtung in Abhängigkeit
davon als low oder high bestimmt, ob der "L"-Teil
oder erste Teil (DSILn, das Signal in dem obigen Beispiel) oder
der "H"-Teil oder zweite
Teil ("DSLHn") des Zwei-Segment-Worts
an den Multiplexer-Stufen-Ausgang DSIn angelegt würde, falls
er nicht defekt wäre.
-
In
der vorstehenden detaillierten Beschreibung wurden nur einige wenige
der zahlreichen Formen erläutert,
in denen die Erfindung realisiert sein kann. Somit ist die vorstehende
detaillierte Beschreibung nur im Sinne einer Veranschaulichung und
nicht einer Beschränkung
zu betrachten, und der Schutzumfang dieser Erfindung ist nur durch
die folgenden Ansprüche
einschließlich
sämtlicher Äquivalente
zu definieren. Somit ist vorgesehen, dass die angefügten Ansprüche auch
sämtliche
derartigen Änderungen
und Modifikationen umfassen, die unter den in den Ansprüchen definierten
Schutzumfang der Erfindung fallen.