-
Die
vorliegende Erfindung betrifft generell Halbleiter-Speichervorrichtungen.
Insbesondere betrifft die vorliegende Erfindung inhaltsadressierbare Zweiport-Speicher für einen
Simultanoperations-Flash-Speicher.
-
Ein
Flash-Direktzugriffsspeicher (RAM), der allgemein als Flash-Speicher
bekannt ist, ist eine Form von nichtflüchtigem Speicher, bei dem eine Speicherzellenkonfiguration
mit einem Floating-Gate verwendet wird. Zum Programmieren oder Speichern einer
Ladung an dem Floating-Gate oder Löschen oder Entfernen einer
Ladung von dem Floating-Gate werden hohe Spannungen an die Speicherzelleneingänge angelegt.
Das Programmieren erfolgt durch Heißelektroden-Transfer zum Aufbringen
einer Ladung auf das Floating-Gate, wohingegen beim Löschen die
Fowler-Nordheim-Tunnelung verwendet wird, bei der Elektronen ein
dünnes
dielektrisches Material durchbohren, wodurch das Maß an elektrischer
Ladung an dem Floating-Gate reduziert wird. Durch das Löschen einer
Zelle wird der logische Wert der Zelle auf "1" gesetzt,
während
durch das Programmieren der Zelle der logische Wert auf "0" gesetzt wird. Abgesehen von den Programmier-
und Löschoperationen
arbeitet ein Flash-Speicher
auf im wesentlichen gleiche Weise wie ein Direktzugriffs-Festwertspeicher
(ROM). Herkömmlicherweise wird
ein Flash-Speicher-Chip, einschließlich der Flash-Speicher-Abspeicherzellen
und der Unterstützungslogik/
-schaltungsanordnung durch Ausbilden von Schichten aus Halbleitermaterial
und Verbindungsschichten aus Polysilizium und ersten und zweiten
Metallschichten auf einem Substrat hergestellt. Es sei darauf hingewiesen,
dass es zahlreiche Techniken zum Herstellen von integrierten Schaltungen
gibt, bei denen mehr oder weniger Schichten vorgesehen sind, die
in den Umfang dieser Anmeldung fallen.
-
Es
werden redundante Kernzellenarrays zum Ersetzen inoperativer Speicherkernzellen
von primären
oder regulären
Arrays verwendet. Eine inhaltsadressierbare Speicher- (CAM-) Schaltungsanordnung
kann zum Unterstützen
des Ersetzens durch redundante Arrays verwendet werden. Redundanz-CAM-Zellen speichern
Informationen über
die Stellen inoperativer Speicherzellen, so dass redundante Arrays
von Speicherzellen zum Ersetzen der inoperativen Speicherzellen
der Primärarrays
verwendet werden können.
-
In
dem Dokument US-A-6 006 313 ist eine Halbleiter-Speichervorrichtung
beschrieben, die eine Neukonfigurierung um defekte Zonen in einem
Speicherarray herum ermöglicht,
wobei eine CAM-Daten-Einstelleinrichtung zum Speichern von CAM-Daten
und Festlegen einer zu invalidierenden Speicherregion vorgesehen
ist, wobei die CAM-Daten von einer externen Quelle kommen.
-
Typischerweise
werden die Speicherzellenarrays vor der Verwendung durch einen Kunden oder
Benutzer von dem Hersteller auf Leistungsfähigkeit und Genauigkeit geprüft. Die
Redundanz-CAM-Zellen werden gegebenenfalls nach der Prüfphase mit
den Stellen der inoperativen Speicherzellen gelöscht und programmiert.
-
Neuere
Technologien, wie z. B. Simultan-Lese- und Schreiboperations-Flash-Speicher, bieten Gelegenheiten
zum Neuauslegen von CAM-Schaltungsanordnungen und -Architekturen,
um den höheren
Standards hinsichtlich der Leistungsfähigkeit von Systemen und der
Vorrichtungsdichte zu entsprechen. Es wäre wünschenswert, eine effizientere
Redundanz-CAM-Schaltungsanordnung und -Architektur in einen Flash-Speicher
zu implementieren.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt ein Blockschaltbild
eines Speichers gemäß einer
derzeit bevorzugten Ausführungsform;
-
2 zeigt ein beispielhaftes
Kernzellenarray mit Primärarrays
und redundanten Arrays entsprechend dem in 1 gezeigten Speicher;
-
3 zeigt ein Schaltschema
einer beispielhaften CAM-Stufe und einer dazugehörigen Ausgangsschaltungsanordnung
entsprechend dem in 1 gezeigten
Speicher;
-
4 zeigt ein Blockschaltbild
eines beispielhaften CAM-Stufenarrays und einer dazugehörigen Ausgangsschaltungsanordnung
entsprechend dem in 1 gezeigten
Speicher und dem beispielhaften Kernzellenarray aus 2;
-
5 zeigt ein Blockschaltbild
mit Darstellung einer beispielhaften Gruppe von CAM-Stufen, die
einem Vertikalarray des in 2 gezeigten
beispielhaften Kernzellenarrays zugeordnet sind; und
-
6 zeigt ein Schaltschema
einer beispielhaften Gruppe von CAM-Stufen mit gemeinsam genutzter
Ausgangsschaltungsanordnung entsprechend dem in 2 gezeigten Speicher.
-
DETAILLIERTE
BESCHREIBUNG DER DERZEIT BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Redundante
Kernzellenarrays werden zum Ersetzen inoperativer Speicherkernzellen
von primären
oder regulären
Arrays verwendet. Eine inhaltsadressierbare Speicher- (CAM-) Schaltungsanordnung
kann zum Unterstützen
des Ersetzens durch redundante Arrays verwendet werden. Redundanz-CAM-Zellen speichern
Informationen über
die Stellen inoperativer Speicherzellen, so dass redundante Arrays
von Speicherzellen zum Ersetzen der inoperativen Speicherzellen
der Primärarrays
verwendet werden können.
-
Typischerweise
werden die Speicherzellenarrays vor der Verwendung durch einen Kunden oder
Benutzer von dem Hersteller auf Leistungsfähigkeit und Genauigkeit geprüft. Die
Redundanz-CAM-Zellen werden gegebenenfalls nach der Prüfphase mit
den Stellen der inoperativen Speicherzellen gelöscht und programmiert.
-
Kernzellen
im Speicher können
byte- oder wortadressierbar sein. Wenn eine spezielle Operation
an einem Primärarray
durchzuführen
ist, wird eine Adresse für
die Operation geliefert. Vor dem Zugreifen auf die Speicherzellenstelle
für das
Primärarray wird
die Adresse mit Adresseninformationen bezüglich der Stelle der inoperativen
Speicherzellen verglichen. Wenn die Adresse mit einer Stelle einer
Gruppe inoperativer Speicherzellen übereinstimmt, wird die Adresse
zu dem redundanten Array umgeleitet. Die Operation erfolgt dann
an dem redundanten Array. Wenn die Adresse nicht mit einer Stelle
einer Gruppe inoperativer Speicherzellen übereinstimmt, wird die Adresse
an das Primärarray
angelegt und wird die Operation an dem Primärarray durchgeführt. Typischerweise
erfolgt das Ersetzen der Primärarray-Speicherzellen
durch Speicherzellen eines redundanten Arrays nahtlos und ist für den Benutzer
des Speichers transparent.
-
Neuere
Technologien, wie z. B. Simultan-Lese- und Schreiboperations-Flash-Speicher, bieten Gelegenheiten
zum Neuauslegen von CAM-Schaltungsanordnungen und -Architekturen,
um den höheren
Standards hinsichtlich der Leistungsfähigkeit von Systemen und der
Vorrichtungsdichte zu entsprechen. Bei den hier beschriebenen derzeit
bevorzugten Ausführungsformen
wird eine effizientere Redundanz-CAM-Schaltungsanordnung und -Architektur
in einen Speicher, wie z. B. einen Flash-Speicher, implementiert.
-
Eine
CAM-Zelle ist zum Speichern von Informationen bezüglich einer
Stelle einer inoperativen Speicherzelle in einem Primärzellenkernarray
vorgesehen. Typischerweise macht die inoperative Speicherzelle ein
Ersetzen durch eine Speicherzelle eines redundanten Arrays erforderlich.
Die in der CAM-Zelle gespeicherten Informationen können sich ferner
darauf beziehen, ob eine Speicherzelle, die von einer Operationsadresse
des Primärkernzellenarrays
adressiert wird, durch eine Speicherzelle eines redundanten Arrays
ersetzt werden muss. Da eine einzelne CAM-Zelle oder eine Gruppe
von CAM-Zellen Informationen speichern kann, anhand derer festgestellt
wird, ob sich eine Operationsadresse auf eine Stelle einer inoperativen
Speicherzelle in einem Kernzellenarray bezieht, und da die Operationsadresse
für eine
Lese- oder eine Schreiboperation verwendet werden kann, wird generell
erwartet, das eine einzelne CAM-Zelle oder eine Gruppe von CAM-Zellen
zum separaten Speichern von Informationen für jede Operation in einen speziellen
Bereich erforderlich ist.
-
Bei
Simultanoperation wird jedoch das gleichzeitige Durchführen einer
Leseund einer Schreiboperation in der gleichen Bank eingeschränkt. Es
können
zusätzliche
einschränkende
Kriterien hinsichtlich einer gleichzeitig erfolgenden Lese- und
Schreiboperation zur Anwendung kommen. Daher kann gemäß den derzeit
bevorzugten Ausführungsformen
auf eine einzelne Zweiport-CAM-Zelle oder eine Gruppe von CAM-Zellen,
die Informationen bezüglich
der Stelle der inoperativen Speicherzelle in dem Kernzellenarray
speichern, während
einer Leseoperation und während
einer Schreiboperation zugegriffen werden. Aufgrund der Einschränkungen
bei gleichzeitig erfolgender Lese- und Schreiboperation kann auf
die CAM-Zelle oder -Zellen ohne Berücksichtigung des gleichzeitigen
Zugriffs auf eine einzelne CAM-Zelle oder ein Gruppe von CAM-Zellen
zugegriffen werden. Je nach Auslegung kann die Zweiport-Konfiguration
der CAM-Zelle die gleichzeitig erfolgende Operation ausnutzen, um
die Effizienz des CAM-Zellen-Layout zu verbessern und die Anzahl von
Vorrichtungen und peripheren Schaltungsanordnungen zu reduzieren.
-
Diese
Aufgaben werden in vorteilhafter Weise grundsätzlich durch die Merkmale der
unabhängigen
Ansprüche
gelöst.
Weitere Verbesserungen werden durch die Unteransprüche geschaffen.
-
1 zeigt ein Blockschaltbild
eines Speichers 100 gemäß einer
derzeit bevorzugten Ausführungsform.
Bei der dargestellten Ausführungsform
ist der Speicher 100 als Flash-Speicher in Form einer integrierten
Komplementär-Metall-Oxid-Halbleiter- (CMOS-)
Schaltung zum Speichern von Digitaldaten ausgebildet. Der Speicher 100 kann
jedoch in einer beliebigen anderen Form ausgebildet sein, und es können die
hier beschriebenen Prinzipien auf eine beliebige andere geeignete
Schaltung angewendet werden, bei der eine Simultanoperation eine
Zweiport-CAM-Architektur ermöglicht.
Der Speicher 100 weist ein Kernzellenarray 102,
einen Decoder 104, eine Adressenpuffer-Schaltungsanordnung 108,
eine Redundanz-CAM-Schaltungsanordnung 106, eine Steuerlogikschaltung 110 und
eine Leseverstärkungs-
und -Ausgangsschaltungsanordnung 112 auf. Die Steuerlogikschaltung 110 ist
mit dem Decoder 104, der Adressenpuffer-Schaltungsanordnung 108 und
der Leseverstärkungs-
und -Ausgangsschaltungsanordnung 112 gekoppelt. Die Steuerlogikschaltung 110 erzeugt
eine Folge von Lese- und Schreibauswahl-Operationssignalen RSEL,
WSEL und verteilt die Signale an den Decoder 104 und die Redundanz-CAM-Schaltungsanordnung 106.
Vorzugsweise verteilt die Steuerlogikschaltung 110 Zeitsteuer-
und andere Steuersignale für
den Speicher 100.
-
Das
Kernzellenarray 102 weist mehrere Speicherzellen auf, von
denen jede zum Speichern von Daten vorgesehen ist. Bei einigen Anwendungen kann
jede Speicherzelle ein einziges Datenbit speichern; bei anderen
Anwendungen kann jede Speicherzelle zwei oder mehr Datenbits speichern.
Die Speicherzellen des Kernzellenarrays 102 können byte-
oder wortadressierbar sein, und es wird über eine entsprechende Adresse
der Adressenpuffer-Schaltungsanordnung 108 auf diese zugegriffen. Bei
einer derzeit bevorzugten Ausführungsform
wird auf die Speicherzellen als Datenwörter zugegriffen und entsprechen die
Adressen eindeutigen Datenwörtern.
Bei anderen Ausführungsformen
hat jede Speicherzelle eine eindeutige Adresse, die von dem Decoder 104 decodiert
wird.
-
Vorzugsweise
weist der Decoder 104 eine Reihen- oder x-Adressen-Decodierlogik
und eine Bitleitungs- oder y-Adressen-Decodierlogik auf. Vorzugsweise
spricht die x-Adressen-Decodierlogik des Decoders 104 durch
Aktivierung einer Wortleitung von mehreren Wortleitungen auf ein
Adressensignal ADD von der Adressenpuffer-Schaltungsanordnung 108 an,
wobei jede Wortleitung einer Reihe des Kernzellenarrays 102 zugeordnet
ist. In Reaktion auf das Aktivieren der Wortleitung werden die dieser
Wortleitung zugeordnete Speicherzellen eingeschaltet und beginnen
mit dem Ziehen von Strom. Zum adäquaten Einschatten
der Speicherzellen muss die Wortleitung um eine wesentliche Potentialdifferenz,
wie beispielsweise 3,0 bis 4,0 Volt, variiert werden.
-
Vorzugsweise
koppelt die y-Adressen-Decodierlogik des Decoders 104 die
entsprechende Bitleitung des Kernzellenarrays 102 mit der
Leseverstärkungsund
-Ausgangsschaltungsanordnung 114. Die y-Adressen-Decodierlogik
spricht zum Decodieren der ausgewählten Bitleitung aus den mehreren
Bitleitungen des Kernzellenarrays 102 auf eine Adresse ADD
von der Adressenpuffer-Schaltungsanordnung 108 an. Die
Leseverstärkungs-
und -Ausgangsschaltungsanordnung 114 detektiert den Strom
in der ausgewählten
Speicherzelle des Kernzellenarrays 102 und bestimmt den
Binärzustand
des einen oder der mehreren in der ausgewählten Speicherzelle gespeicherten
Datenbits. Die Schaltungsanordnung 112 erzeugt die Speicherzellendaten,
die von der Leseverstärkungs-Schaltungsanordnung 114 vorzugsweise in
Form von Datenwörtern
am Ausgang des Speichers 100 zur Benutzung außerhalb
des Speichers 100 gelesen werden. Eine andere Schaltungsanordnung,
die in 1 nicht gezeigt
ist, ermöglichen
ein Programmieren, Lesen, Prüfen,
Löschen
und das Ausführen
anderer erforderlicher Operationen auf den einzelnen Speicherzellen
des Kernzellenarrays 102.
-
Der
Speicher 100 arbeitet in Reaktion auf eine Versorgungsspannung,
die in 1 mit Vcc bezeichnet ist. Die Potentialdifferenz
zwischen Vcc und Masse ist die Versorgungsspannung
und kann beispielsweise im Bereich von 0,8 bis 3,3 Volt liegen.
Die Eignung der Versorgungsspannung Vcc hängt von
einer Vielzahl von Faktoren ab, einschließlich der für den Speicher 100 angewandten
Herstellungstechnologie. Generell beträgt bei hochentwickelten CMOS-Verfahren
die Versorgungsspannung nominell 1,8 Volt. Absolut ausgedrückt ist
diese Spannung größer als
die Größe der Einschalt-
oder Schwellenspannung Vφ von -0,9 Volt für p-Kanal-Transistoren und
der Einschalt- oder Schwellenspannung Vω von 1,0
Volt für
n-Kanal-Transistoren.
-
Das
Kernzellenarray 102 weist vorzugsweise eine Folge von Primärarrays
und redundanten Arrays auf. Die in 1 gezeigte
Redundanz-CAM-Schaltungsanordnung 106 weist ferner CAM-Zellen
auf, die Informationen bezüglich
der Stelle einer inoperativen Speicherzelle oder einer inoperativen
Bitleitung eines der Primärarrays
des Kernzellenarrays 102 speichern. Vorzugsweise wird eine
Bitleitung eines dieser zugeordneten redundanten Arrays als Ersatz für eine inoperative
Bitleitung verwendet. Die CAM-Zellen der Redundanz-CAM-Schaltungsanordnung 106 werden
an dem in 1 gezeigten PROG/ERASE-Eingang
programmiert und gelöscht. Vorzugsweise
werden die CAM-Zellen in einer Testphase programmiert und gelöscht, die
vor der Verwendung des Chips durch einen Endbenutzer oder Kunden
stattfindet Vorzugsweise wird jedes Mal, wenn eine Operation, wie
z. B. Lesen oder Schreiben, an dem Kernzellenarray 102 durchgeführt wird, die
Operationsadresse an die Redundanz-CAM-Schaltungsanordnung 106 angelegt,
um die Operationsadresse mit den in den CAM-Zellen gespeicherten
Informationen zu vergleichen. Vorzugsweise ist, wenn die Operationsadresse
mit den in den CAM-Zellen gespeicherten Stelleninformationen übereinstimmt,
mindestens eine der Speicherzellenstellen, auf die sich die Operationsadresse
bezieht, inoperativ und muss durch ein redundantes Array ersetzt
werden.
-
Wenn
beispielsweise eine Leseoperation in das reguläre Array durchgeführt wird,
wird eine Adresse, die einer Folge von Speicherzellen entspricht,
welche vorzugsweise ein Datenwort ergeben, mit den Informationen
in den redundanten CAM-Zellen verglichen. Wenn eine inoperative
Bitleitung zufällig
eine Speicherzelle aus einer Folge von Speicherzellen aufweist,
auf die die Lese-Adresse ohne
Ersetzen durch ein redundantes Array zugreifen würde, zeigt die Redundanz-CAM-Schaltungsanordnung
eine Lese-Übereinstimmung
für die
Lese-Adresse an. Vorzugsweise stellt die Decodierlogik sicher, dass
eine Bitleitung des redundanten Arrays die inoperative Bitleitung
und die inoperative Speicherzelle ersetzt, auf die die Lese-Adresse
ohne Ersetzen durch ein redundantes Array zugreifen würde. Ein
im wesentlichen gleiches Ersetzen erfolgt, wenn eine inoperative
Bitleitung zufällig
eine Speicherzelle aus der Folge von Speicherzellen aufweist, auf
die die Schreib-Adresse ohne Ersetzen durch ein redundantes Array
zugreifen würde.
-
2 zeigt eine schematische
Darstellung eines beispielhaften Kernzellenarrays 102 mit
Primärarrays
und redundanten Arrays entsprechend dem in 1 gezeigten Speicher 100. Das
in 2 gezeigte beispielhafte
Kernzellenarray 102 ist horizontal in eine oberen Bank 114 und
eine untere Bank 116 unterteilt. Das Array 102 ist
vertikal in vier Vertikalarrays VERT0,VERT1,VERT2, VERT3 unterteilt, wobei
jedes Vertikalarray ein Primärarray
und ein diesem zugeordnetes redundantes Array aufweist. Die obere
Bank 114 weist obere Primärarrays 118,120,122,124 und
obere redundante Arrays 126,128,130, 132 auf.
Die untere Bank 116 weist untere Primärarrays 134,136,138,140 und
untere redundante Arrays 142,144,146,148 auf.
Das Vertikalarray VERT0 weist die Primärarrays 118,134 und
die redundanten Arrays 126,142 auf. Das Vertikalarray VERT1
weist die Primärarrays 120,136 und
die redundanten Arrays 128,144 auf. Das Vertikalarray VERT2
weist die Primärarrays 122, 138 und
die redundanten Arrays 130,146 auf. Das Vertikalarray VERT3
weist die Primärarrays 124,140 und
die redundanten Arrays 132,148 auf.
-
Vorzugsweise
ist der Speicher 100 ein Simultanoperationsspeicher. Eine
der Einschränkungen bei
Simultanoperations-, beispielsweise bei Simultanleseund -schreiboperationsspeichern,
liegt darin, dass eine Lese- und eine Schreiboperation gleichzeitig,
jedoch in unterschiedlichen Bänken
durchgeführt werden
können.
Vorzugsweise liegt eine zusätzliche Einschränkung hinsichtlich
des in 2 gezeigten Kernzellenarrays 102 darin,
dass eine Leseund eine Schreiboperation nur gleichzeitig in unterschiedlichen
Bänken,
die sich nicht in dem gleichen Vertikalarray befinden, durchführbar sind.
Das heißt,
wenn eine Schreiboperation in dem oberen Primärarray 118 des Vertikalarrays
VERT0 durchgeführt
wird, kann eine Leseoperation in einem der unteren Primärarrays 136,138,140 der
Vertikalarrays VERT1, VERT2 bzw. VERT3 durchgeführt werden. In diesem Fall
kann jedoch eine Leseoperation nicht in einem der oberen Primärarrays 118,120,122,124 der
Vertikalarrays VERT0, VERT1,VERT2 bzw. VERT3 oder in dem unteren
Primärarray 134 des
Vertikalarrays VERT0 durchgeführt
werden.
-
Bei
einer derzeit bevorzugten Ausführungsform
ist jedes Vertikalarray in neun (in 2 nicht
gezeigte) Speicherzellensektoren unterteilt. Horizontal ist jeder
Sektor vorzugsweise in eine Folge von Spaltenbereichen innerhalb
des Primärarrays
unterteilt. Jeder Spaltenbereich weist wiederum eine Anzahl von
Speicherzellen auf. Jede Speicherzelle des Spaltenbereichs entspricht
vorzugsweise einer einzigartigen Bitleitung für das Primärarray. Wie oben beschrieben,
wird im Falle einer inoperativen Speicherzelle in den Primärarrays
die Stelle der inoperativen Speicherzelle identifiziert. Vorzugsweise
ersetzt eine Bitleitung, die die oberen und unteren redundanten Arrayteile
des Vertikalarrays umspannt, die gesamte Bitleitung des Primärarrays,
die der inoperativen Speicherzelle entspricht. Vorzugsweise wird,
wenn eine Speicherzelle einer Bitleitung inoperativ ist, die gesamte
Bitleitung durch eine redundante Bitleitung ersetzt, so dass die
inoperative Bitleitung per Definition mindestens eine inoperative
Speicherzelle aufweist. Typischerweise und je nach Auslegung des Kernzellenarrays 102 kann
eine begrenzte Anzahl von inoperativen Bitleitungen eines Primärarrays durch
ein diesen zugeordnetes redundantes Array ersetzt werden.
-
Bei
einer derzeit bevorzugten Ausführungsform
wird auf die Speicherzellen in Form von Datenwörtern zugegriffen, wobei ein
Spaltenbereich von Speicherzellen ein eindeutiges Datenwort speichert. Beispielsweise
wird bei einer Ausführungsform
des Speichers 100 eine Leseoperation dann durchgeführt, wenn
zwei 16-Bit-Datenwörter
gleichzeitig intern gelesen werden, während immer ein 16-Bit-Datenwort
auf einmal von der Ausgangsschaltungsanordnung 112 erzeugt
wird. Auf diese Weise kann bei einer Leseoperation auf zwei Spaltenbereiche
gleichzeitig zugegriffen werden. Im Gegensatz dazu wird eine Schreiboperation
mit nur einem 16-Bit-Datenwort auf einmal durchgeführt und
wird nur auf einen Spaltenbereich auf einmal zugegriffen. Selbstverständlich sind
diese Datenwortlängen
nur beispielhaft, und es können
andere geeignete Wortlängen verwendet
werden.
-
3 zeigt ein Schaltschema
einer beispielhaften Zweiport-CAM-Stufe 200 und einer dazugehörigen Ausgangsschaltungsanordnung
entsprechend dem in 1 gezeigten
Speicher. Bei anderen Ausführungsformen
kann die Zweiport-CAM-Stufe 200 ohne
dazugehörige
Ausgangsschaltungsanordnung verwendet werden, um die Notwendigkeit
eines Ersetzens durch ein redundantes Array anzuzeigen. Die beispielhafte
CAM-Stufe 200 weist eine Zweiport-CAM-Zelle 202,
einen Schreib-Datenbus 204 und einen Lese-Datenbus 206 auf.
Die CAM-Zelle 202 ist ein Transistor, vorzugsweise ein
n-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor (MOSFET). Obwohl
die CAM-Zelle 202 vorzugsweise ein in einer nichtflüchtigen
Speicherzelle verwendeter MOSFET-Transistor ist, kann ein beliebiges
geeignetes aktives Datenspeicherelement als CAM-Zelle 202 verwendet
werden. Der Schreib-Datenbus 204 weist einen mit einem
Schaltungspunkt 212 gekoppelten Ausgangsport und einen
mit dem Drain der CAM-Zelle 202 an einem Schaltungspunkt 216 gekoppelten Eingang
auf. Der Lese-Datenbus 206 weist einen mit einem Schaltungspunkt 214 gekoppelten
Ausgang und einen mit dem Drain der CAM-Zelle 202 an dem Schaltungs punkt 216 gekoppelten
Eingang auf. Der Schreib-Datenbus 204 und der Lese-Datenbus 206 sind
Transistoren, vorzugsweise n-Kanal-MOSFETs. Selbstverständlich kann
ein beliebiger geeigneter Datenbus als Datenbus 204,206 verwendet
werden. Ein Schreib-Auswahlsignal WSELm wird an das Gate des Schreib-Datenbusses 204 angelegt,
während
ein Lese-Auswahlsignal RSELm an das Gate des Lese-Datenbusses 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. Vorzugsweise befindet sich bei Normalbetrieb der CAM-Zelle 202,
wenn z. B. die CAM-Zelle 202 geprüft oder auf diese zugegriffen
wird, die Spannung VS auf Erdpotential.
-
Eine
Kurzbezeichnung für
die beispielhafte Zweiport-CAM-Stufe 200 ist ebenfalls
in 3 dargestellt. Eine
generische CAM-Stufe 200 kann als CAMn/ VERTm bezeichnet
werden, wobei sich m auf ein beliebiges von M Vertikalarrays VERT0,VERT1,...,VERTM
und n auf eine beliebige von einem Vertikalarray VERTm zugeordneten
N CAM-Stufen 200 CAM0,CAM1,...,CAMN bezieht. Vorzugsweise
gibt es bei dem in 2 gezeigten
beispielhaften Kernzellenarray 102 M=4 Vertikalarrays VERT0,VERTI,VERT2,VERT3.
Vorzugsweise weist jedes Vertikalarray VERTm N=8 diesem zugeordnete und
einzigartige redundante Zweiport-CAM-Stufen CAM0,CAM1,CAM2,CAM3,CAM4,CAM5,CAM6,CAM7
auf. Selbstverständlich
ist das Kernzellenarray 102 skalierbar und kann anders
als das in 2 gezeigte
Kernzellenarray 102 ausgelegt, dimensioniert, angeordnet
oder getrennt sein. Die Anzahl von redundanten CAM-Zellen 202 und
-Stufen 200, die jedem Vertikalarray zugeordnet sind, kann
ebenfalls je nach Ausführungsform
und der speziellen Auslegung und dem speziellen Layout des Kernzellenarrays 102 variieren.
Das heißt,
es können
mehr redundante Arrays vorgesehen sein, oder es können zusätzliche CAM-Zellen
verwendet werden, um insbesondere die Stelle einer inoperativen
Speicherzelle, die Stelle derjenigen inoperativen Bitleitung, die
die inoperative Speicherzelle aufweist, oder denjenigen Spaltenbereich,
in dem sich die inoperative Bitleitung befindet, zu identifizieren.
-
Vorzugsweise
ist die CAM-Zelle 202 eine nichtflüchtige Speicherzelle, aus der
Informationen gelöscht
werden können
oder die mit Informationen programmiert werden kann. Wenn die CAM-Zelle 202 ein
n-Kanal-MOSFET-Transistor ist, erfolgt dies durch Modifizieren der
Schwellenspannung des Transistors. Das Signal Zellenprogrammierung/-löschung und
der dazugehörige
Pfeil dienen zum Anzeigen der auf der CAM-Zelle 202 durchgeführten Programmier-/
Löschoperation.
Die CAM-Zelle 202 spricht unterschiedlich auf eine angelegte Gate-Spannung
an, und zwar je nachdem, ob die CAM-Zelle 202 programmiert
oder gelöscht
wird.
-
Wenn
die CAM-Zelle 202 programmiert wird, werden geregelte Spannungen
vorzugsweise an das Drain und das Gate der Transistorzelle 202 angelegt. Die
geregelten Spannungen sind relativ hoch im Vergleich zu der Versorgungsspannung
Vcc. Beispielsweise wird bei einer bevorzugten
Ausführungsform 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 Transistor-CAM-Zelle 202 angelegt wird. Unabhängig von den
verwendeten Spannungen dient der kombinierte Effekt der Programmieroperation
auf der CAM-Zelle 202 der Erhöhung der Schwellenspannung
auf einen höheren
Wert als den einer während
des Normalbetriebs der Redundanz-CAM-Schaltungsanordnung 106 an
das Gate der CAM-Zelle 202 angelegten Spannung, d. h. höher als
den der Versorgungsspannung Vcc.
-
Bei
Normalbetrieb wird nichts geschehen, wenn die CAM-Zelle 202 programmiert
ist und sich das Drain der Zelle 202 auf Erdpotential befindet, wenn
eine Gate-Spannung VG, vorzugsweise die
Versorgungsspannung Vcc angelegt wird, d.
h. die CAM-Zelle wird sich nicht einschalten oder leiten.
-
Typischerweise
werden sämtliche
CAMs, einschließlich
der Zweiport-CAM-Zellen 202 im Speicher 100, vor
dem Löschen
vorprogrammiert, und sie werden gemeinsam gelöscht. Die CAM-Zellen 202 können unter
Anwendung eines Ultraviolett-Löschverfahrens
gelöscht
werden, wie Fachleuten auf dem Sachge biet bekannt ist. Selbstverständlich können andere
Löschtechniken
angewendet werden. Die Auswirkung der Löschoperation auf die CAM-Zelle 202 liegt
darin, dass der Wert der Schwellenspannung gesenkt wird, wenn die
Zelle 202 auf einen Normalwert programmiert wird, der mit
einem normalen Transistor übereinstimmt.
Vorzugsweise wird, wenn die CAM-Zelle 202 gelöscht wird,
die Schwellenspannung derart eingestellt, dass sich die Zelle 202 wie
in n-Kanal-Transistor
verhält,
d. h. wenn eine Gate-Spannung VG angelegt
wird, die zu der Versorgungsspannung Vcc äquivalent
ist, schaltet sich der Transistor ein und leitet.
-
3 zeigt ferner zwei p-Kanal-Vorspanntransistoren 208,210,
die vorzugsweise als dazugehörige
Ausgangsschaltungsanordnung für
die beispielhafte CAM-Stufe 200 verwendet werden. Vorzugsweise
sind die Transistoren 208,210 als relativ zu der
CAM-Zelle 202 schwache Pull-up-Transistoren ausgelegt und
dimensioniert. Die p-Kanal-Transistoren 208,210 sind
in 3 vorzugsweise Transistoren
mit einer niedrigen Schwellenspannung. Bei einem Ausführungsbeispiel
haben die Transistoren 208,210 jeweils eine Nenn-Schwellenspannung,
die ungefähr
im Bereich von-0,5 Volt bis -0,8 Volt liegt. Eine in diesen Bereich
fallende Schwellenspannung ist kleiner als eine Schwellenspannung
eines herkömmlichen
p-Kanal-Transistors, die typischerweise ungefähr -1,2 Volt beträgt. Es ist
Fachleuten auf dem Sachgebiet bekannt, dass die Schwellenspannungen von
Transistoren, wie z. B. MOSFETs, bei der Fertigung kontrolliert
werden. Der Vorrichtungs-Fertigungsprozess ermöglicht ein gewisses Maß an Flexibilität bei der
Wahl der Schwellenspannung. Normalwerte sind jedoch vorherrschend
und werden bei bestimmten Prozessen bei MOSFETs normalerweise verwendet.
Es sei darauf hingewiesen, dass diese Schwellenspannungen nur beispielhaft
dargestellt sind. Generell können
Transistorauslegungsparameter, wie z. B. Schwellenspannungen und
Vorrichtungsgrößen, andere
Schaltungskonfigurationen oder andere anwendbare Auslegungstechniken,
die Fachleuten auf dem Sachgebiet zur Verfügung stehen, gegebenenfalls
angewendet oder ersetzt werden.
-
Die
p-Kanal-Transistoren 208,210 können mit Bezug auf ihre Verbindung
mit den Schreib- und Lese-Datenbussen 204,206 genannt
werden. Der Schreib-p-Kanal-Transistor 208 ist
mit dem Ausgangsport des Schreib-Datenbusses 204 am Schaltungspunkt 212 gekoppelt.
Die generische CAM-Stufe 200, die als CAMn/VERTm bezeichnet
werden kann, und der Schreib-p-Kanal-Vorspanntransistor 208 erzeugen
ein Signal CAMmW am Schaltungspunkt 212, wobei sich, wie
oben beschrieben, n auf eine der N CAM-Stufen 200 CAM0,
CAM1,...,CAMN, die einem Vertikalarray VERTm zugeordnet ist, bezieht.
W identifiziert das Signal CAMnW am Schaltungspunkt 212 als
Schreiboperations-CAM-Signal.
-
Ähnlich ist
der Lese-p-Kanal-Vorspanntransistor 210 mit dem Ausgangsport
des Lese-Datenbusses 206 am Schaltungspunkt 214 gekoppelt.
Die generische CAM-Stufe 200, die als CAMn/VERTm bezeichnet
werden kann, und der Lese-p-Kanal-Vorspanntransistor 210 erzeugen
ein Signal CAMmR am Schaltungspunkt 214, wobei sich, wie
oben beschrieben, n auf eine der N CAM-Stufen 200 CAM0,CAM1,...,CAMN,
die einem Vertikalarray VERTm zugeordnet ist, bezieht. R identifiziert
das Signal CAMnR am Schaltungspunkt 214 als Leseoperations-CAM-Signal.
-
Die
Gate-Eingänge
der Lese- und Schreib-p-Kanal-Vorspanntransistoren 210,208 sind mit
dem Erdpotential verbunden, wohingegen sich die Source-Eingänge auf
der Versorgungsspannung Vcc befinden. Daher
sind, da die Transistoren 210,208 wie oben beschrieben
Transistoren mit niedriger Schwellenspannung sind, die Transistoren 210,208 leitend
und befinden sich die jeweiligen Schaltungspunkte 212,214 beim
Fehlen einer Pull-down-Aktivität
seitens der CAM-Stufe 200 auf Vcc.
-
Die
Operation der CAM-Stufe 200 läuft in Zusammenhang mit den
Transistoren 208,210 wie folgt ab. Vorzugsweise
wird, wenn eine Operation zum Zugreifen auf das Kernzellenarray 102 erfolgt,
und zwar unabhängig
davon, ob die Operation eine Lese- oder Schreiboperation ist, auf
die CAM-Zellen 202 der Redundanz-CAM-Schaltungsanordnung 106 zugegriffen.
Es wird festgestellt, ob die in Frage stehende Adresse (eine Leseadresse
oder eine Schreibadresse) eine inoperative Speicherzellenstelle
enthält,
so dass ein Ersetzen durch ein redundantes Array erforderlich ist.
Die Informationen bezüglich
der Stelle wurden vorzugsweise vor der Operation in die CAM-Zellen 202 einprogrammiert.
Vorzugsweise befindet sich, wenn eine Lese- oder Schreiboperation oder
beides erfolgt, die Source-Spannung VS jeder CAM-Zelle 202 auf
Erdpotential und wird die Gate-Spannung VG jeder
CAM-Zelle 202 auf die Versorgungsspannung Vcc gebracht.
-
Eine
CAM-Zelle 202 spricht unterschiedlich auf eine angelegte
Gate-Spannung an, und zwar abhängig
davon, ob die CAM-Zelle 202 programmiert oder gelöscht wird.
Wenn eine Schreiboperation an einem Vertikalarray VERTm durchgeführt wird,
ist das Schreib-Auswahlsignal WSELm im H-Zustand und der Schreib-Datenbus 204 eingeschaltet.
Eine programmierte CAM-Zelle 202 bleibt ausgeschaltet und
schaltet sich in Reaktion auf eine angelegte Gate-Spannung VG, vorzugsweise die Versorgungsspannung Vcc, nicht ein oder wird leitend. Bei Fehlen einer
Pull-down-Aktivität
von der CAM-Stufe 200 wird der Schreib-Pull-up-Transistor 208 leitend
und befindet sich der Schaltungspunkt 212 auf Vcc. Daher bleibt, wenn die CAM-Zelle 202 programmiert
wird und der Schreib-Datenbus 204 eingeschaltet ist, der Schaltungspunkt 212 im
H-Zustand oder auf Vcc.
-
Wenn
eine Schreiboperation an einem Vertikalarray VERTm durchgeführt wird,
ist das Schreib-Auswahlsignal WSEL im H-Zustand und der Schreib-Datenbus 204 eingeschaltet.
Eine gelöschte CAM-Zelle 202 verhält sich
wie ein n-Kanal-Transistor
und schaltet sich in Reaktion auf eine angelegte Gate-Spannung VG, vorzugsweise die Versorgungsspannung Vcc, ein und wird leitend. Die CAM-Zelle 202 zieht
den Schaltungspunkt 216 auf Erdpotential. Vorzugsweise
ist die CAM-Zelle 202 derart ausgelegt, dass sie stärker ist
als der Schreib-Pullup-Transistor 208 und daher wird, wenn
die CAM-Zelle 202 gelöscht
wird und der Schreib-Datenbus 204 eingeschaltet ist, der
Schaltungspunkt 212 auf Erdpotential gezogen.
-
Wenn
keine Schreiboperation an einem Vertikalarray VERTm durchgeführt wird,
ist der Schreib-Datenbus 204 abgeschaltet und wird die CAM-Zelle 202 nicht
geprüft.
Ob die CAM-Zelle 202 programmiert oder gelöscht wird,
hat keine Auswirkung auf den Wert des Signals CAMnW am Schaltungspunkt 212.
-
Generell
spezifizieren, wenn eine Schreiboperation an einem Vertikalarray
VERTm durchgeführt wird,
die Signale CAM0W...CAMNW die Stelle derjenigen Bitleitung, an der
ein Ersetzen durch ein redundantes Array erfolgen soll, wenn ein
solches existiert und in die CAM-Stufen 200 CAM0/VERTm...
CAMN/ VERTm einprogrammiert ist. Vorzugsweise werden ein oder mehrere
der Signale CAM0W...CAMNW mit der Schreibadresse verglichen, um
festzustellen, ob es eine Schreib-Übereinstimmung gibt. Wenn eine Schreib-Übereinstimmung
für eine
inoperative Bitleitung vorhanden ist, ersetzt eine Bitleitung aus
dem redundanten Array die inoperative Bitleitung. Das heißt, dass
die redundante Bitleitung anstelle der inoperativen Bitleitung verwendet
wird, wenn eine Übereinstimmung
zwischen der Schreibadresse und den dem Primärarray, an dem die Schreiboperation andernfalls
erfolgt, zugeordneten CAM-Stufen 200 angezeigt wird.
-
Ähnlich ist,
wenn eine Leseoperation an einem Vertikalarray VERTm durchgeführt wird,
das Lese-Auswahlsignal RSELm im H-Zustand und der Lese-Datenbus 206 eingeschaltet.
Eine programmierte CAM-Zelle 202 bleibt abgeschaltet und
schaltet sich in Reaktion auf eine angelegte Gate-Spannung VG, vorzugsweise die Versorgungsspannung Vcc, nicht ein oder wird leitend. Bei Fehlen
einer Pull-down-Aktivität
von der CAM-Stufe 200 ist der Lese-Pull-up-Transistor 210 leitend
und befindet sich der Schaltungspunkt 214 auf Vcc. Daher bleibt, wenn die CAM-Zelle 202 programmiert
wird und der Lese-Datenbus 206 eingeschaltet ist, der Schaltungspunkt 214 im
H-Zustand oder auf Vcc.
-
Wenn
eine Leseoperation an einem Vertikalarray VERTm durchgeführt wird,
ist das Lese-Auswahlsignal RSELm im H-Zustand und der Lese-Datenbus 206 eingeschaltet.
Eine gelöschte
CAM-Zelle 202 verhält
sich wie ein n-Kanal-Transistor
und schaltet sich in Reaktion auf eine angelegte Gate-Spannung VG, vorzugsweise die Versorgungsspannung Vcc, ein und wird leitend. Die CAM-Zelle 202 zieht
den Schaltungspunkt 216 auf Erdpotential. Vorzugsweise
ist die CAM-Zelle 220 derart ausgelegt, dass sie stärker ist
als der Lese-Pull-up-Transistor 210 und
daher wird, wenn die CAM-Zelle 202 gelöscht wird und der Lese-Datenbus 204 eingeschaltet ist,
der Schaltungspunkt 214 auf Erdpotential gezogen.
-
Wenn
keine Leseoperation an einem Vertikalarray VERTm durchgeführt wird,
ist der Lese-Datenbus 206 abgeschaltet und wird die CAM-Zelle 202 nicht
geprüft.
Ob die CAM-Zelle 202 programmiert oder gelöscht wird,
hat keine Auswirkung auf den Wert des Signals CAMnR am Schaltungspunkt 214.
-
Generell
spezifizieren, wenn eine Leseoperation an einem Vertikalarray VERTm
durchgeführt wird,
die Signale CAM0R...CAMNR die Stelle derjenigen Bitleitung, an der
ein Ersetzen durch ein redundantes Array erfolgen soll, wenn ein
solches existiert und in die CAM-Stufen 200 CAM0/VERTm...
CAMN/ VERTm einprogrammiert ist. Vorzugsweise werden ein oder mehrere
der Signale CAM0R...CAMNR mit der Leseadresse verglichen, um festzustellen,
ob es eine Lese-Übereinstimmung
gibt. Wenn eine Lese-Übereinstimmung
für eine
inoperative Bitleitung vorhanden ist, ersetzt eine Bitleitung aus
dem redundanten Array die inoperative Bitleitung. Das heißt, dass
die redundante Bitleitung anstelle der inoperativen Bitleitung verwendet
wird, wenn eine Übereinstimmung
zwischen der Leseadresse und den dem Primärarray, an dem die Leseoperation
andernfalls erfolgt, zugeordneten CAM-Stufen 200 angezeigt wird.
-
4 zeigt ein Blockschaltbild
mit Darstellung eines beispielhaften CAM-Stufenarrays 300 und einer
dazugehörigen
Ausgangsschaltungsanordnung ent sprechend dem in 1 gezeigten Speicher und dem in 2 gezeigten beispielhaften
Kernzellenarray 102. Vorzugsweise weist die in 1 gezeigte Redundanz-CAM-Schaltungsanordnung 106 das
beispielhafte CAM-Stufenarray 300 auf. Das CAM-Stufenarray 300 weist
die folgenden CAM-Stufen 200 auf:
-
dem
Vertikalarray VERT0 zugeordnet:
- CAM0/VERT0 302,
CAM1/VERT0 304, CAM2/VERT0 306, CAM3/VERT0 308,
- CAM4/VERT0 310, CAM5/VERT0 312, CAM6/VERT0 314 und
CAM7/VERT0 316;
-
dem
Vertikalarray VERT1 zugeordnet:
- CAM0/VERT1 318,
CAM1/VERT1 320, CAM2/VERT1 322, CAM3/VERT1 324,
- CAM4/VERT1 326, CAM5/VERT1 328, CAM6/VERT1 330 und
CAM7/VERT1 332;
-
dem
Vertikalarray VERT2 zugeordnet:
- CAM0/VERT2 334,
CAM1/VERT2 336, CAM2/VERT2 338, CAM3/VERT2 340,
- CAM4/VERT2 342, CAM5/VERT2 344, CAM6/VERT2 346 und
CAM7/VERT2 348;
-
dem
Vertikalarray VERT3 zugeordnet:
- CAM0/VERT3 350,
CAM1/VERT3 352, CAM2/VERT3 354, CAM3/VERT3 356,
- CAM4/VERT3 358, CAM5/VERT3 360, CAM6/VERT3 362 und
CAM7/VERT3 364.
-
Das
CAM-Stufenarray 300 weist ferner Lese-p-Kanal-Pull-up-Transistoren
mit niedriger Schwellenspannung 366,368,370,372,374,376,378,380 und Schreib-p-Kanal-Pull-upTransistoren
mit niedriger Schwellenspannung 382, 384,386,388,390,392,394,396 auf.
-
Sämtliche
CAM-Stufen 200 des dem Vertikalarray VERT0 zugeordneten
CAM-Stufenarrays 300 empfangen
die Lese- und Schreib-Auswahlsignale WSEL0, RSEL0. Sämtliche
CAM-Stufen 200 des dem Vertikalarray VERT1 zugeordneten
CAM-Stufenarrays 300 empfangen die Lese- und Schreibsignale
WSEL1, RSEL1. Sämtliche
CAM-Stufen 200 des dem Vertikalarray VERT2 zugeordneten CAM-Stufenarrays 300 empfangen
die Lese- und Schreibsignale WSEL2, RSEL2. Sämtliche CAM-Stufen 200 des
dem Vertikalarray VERT3 zugeordneten CAM-Stufenarrays 300 empfangen
die Lese- und Schreibsignale WSEL3, RSEL3.
-
Die
CAM-Stufen CAM0/VERT0 302, CAM0/VERT1 318, CAM0/VERT2 334 und CAM0/VERT3 350 sind
alle mit dem Lese-Pull-up-Transistor 366 an einem ein Signal CAM0R
aufweisenden gemeinsam genutzten Ausgang gekoppelt und sind alle
mit dem Schreib-Pull-up-Transistor 382 an einem ein Signal CAM0W
aufweisenden gemeinsam genutzten Ausgang gekoppelt.
-
Die
CAM-Stufen CAM1/VERT0 304, CAM1/VERT1 320, CAM1/VERT2 336 und CAM1/VERT3 352 sind
alle mit dem Lese-Pull-up-Transistor 368 an einem ein Signal CAM1R
aufweisenden gemeinsam genutzten Ausgang gekoppelt und sind alle
mit dem Schreib-Pull-up-Transistor 384 an einem ein Signal CAM1W
aufweisenden gemeinsam genutzten Ausgang gekoppelt.
-
Die
CAM-Stufen CAM2/VERT0 306, CAM2/VERT1 322, CAM2/VERT2 338 und CAM2/VERT3 354 sind
alle mit dem Lese-Pull-up-Transistor 370 an einem ein Signal CAM2R
aufweisenden gemeinsam genutzten Ausgang gekoppelt und sind alle
mit dem Schreib-Pull-up-Transistor 386 an einem ein Signal CAM2W
aufweisenden gemeinsam genutzten Ausgang gekoppelt.
-
Die
CAM-Stufen CAM3/VERT0 308, CAM3/VERT1 334, CAM3/VERT2 340 und CAM3/VERT3 356 sind
alle mit dem Lese-Pull-up-Transistor 372 an einem ein Signal CAM3R
aufweisenden gemeinsam genutzten Ausgang gekoppelt und sind alle
mit dem Schreib-Pull-up-Transistor 388 an einem ein Signal CAM3W
aufweisenden gemeinsam genutzten Ausgang gekoppelt.
-
Die
CAM-Stufen CAM4/VERT0 310, CAM4/VERT1 326, CAM4/VERT2 342 und CAM4/VERT3 358 sind
alle mit dem Lese-Pull-up-Transistor 374 an einem ein Signal CAM4R
aufweisenden gemeinsam genutzten Ausgang gekoppelt und sind alle
mit dem Schreib-Pull-up-Transistor 390 an einem ein Signal CAM4W
aufweisenden gemeinsam genutzten Ausgang gekoppelt.
-
Die
CAM-Stufen CAM5/VERT0 312, CAM5/VERT1 328, CAM5/VERT2 344 und CAM0/VERT3 360 sind
alle mit dem Lese-Pull-up-Transistor 376 an einem ein Signal CAM5R
aufweisenden gemeinsam genutzten Ausgang gekoppelt und sind alle
mit dem Schreib-Pull-up-Transistor 392 an einem ein Signal CAMSW
aufweisenden gemeinsam genutzten Ausgang gekoppelt.
-
Die
CAM-Stufen CAM6/VERT0 314, CAM6/VERT1 330, CAM6/VERT2 346 und CAM6/VERT3 362 sind
alle mit dem Lese-Pull-up-Transistor 378 an einem ein Signal CAM6R
aufweisenden gemeinsam genutzten Ausgang gekoppelt und sind alle
mit dem Schreib-Pull-up-Transistor 394 an einem ein Signal CAM6W
aufweisenden gemeinsam genutzten Ausgang gekoppelt.
-
Die
CAM-Stufen CAM7/VERT0 316, CAM7/VERT1 332, CAM7/VERT2 348 und CAM7/VERT3 364 sind
alle mit dem Lese-Pull-up-Transistor 380 an einem ein Signal CAM7R
aufweisenden gemeinsam genutzten Ausgang gekoppelt und sind alle
mit dem Schreib-Pull-up-Transistor 396 an einem ein Signal CAM7W
aufweisenden gemeinsam genutzten Ausgang gekoppelt.
-
5 zeigt ein Blockschaltbild
mit Darstellung einer beispielhaften Gruppe 400 von CAM-Stufen 200,
die einem Vertikalarray VERTm des in 2 dargestellten
beispielhaften Kernzellenarrays 102 zugeordnet sind. Die
beispielhafte CAM-Stufen-Gruppe 400 weist folgende CAM-Stufen 200 auf: CAM0/
VERTm 402, CAM1/VERTm 404, CAM2/VERTm 406,
CAM3/VERTm 408, CAM4/VERTm 410, CAM5/VERTm 412, CAM6/VERTm 414,
CAM7/VERTm 416, die alle einem Vertikalarray VERTm zugeordnet
sind. Sämtliche
CAM-Stufen 200 der CAM- Stufen-Gruppe 400 empfangen
ein Schreib-Auswahlsignal WSELm und ein Lese-Auswahlsignal RSELm
entsprechend dem Vertikalarray VERTm.
-
Wie
oben beschrieben, ist, da der Speicher 100 eine Simultanoperation
unterstützt,
die Redundanz-CAM-Schaltungsanordnung 106 vorzugsweise in
der Lage, zwei separat stattfindende Operationen zu verfolgen, wie
z. B. eine Leseoperation und eine Schreiboperation. Ferner wird
bei einer derzeit bevorzugten Ausführungsform auf die Speicherzellen
in Form von Datenwörtern
zugegriffen, wobei ein Spaltenbereich von Speicherzellen ein eindeutiges
Datenwort speichert. Beispielsweise erfolgt bei einer Ausführungsform
des Speichers 100 eine Leseoperation, bei der zwei 16-Bit-Datenwörter gleichzeitig intern
gelesen werden, während
nur ein 16-Bit-Datenwort auf einmal von der in 1 gezeigten Ausgangsschaltungsanordnung 112 erzeugt
wird. Auf diese Weise wird bei einer Leseoperation auf zwei Spaltenbereiche
gemeinsam zugegriffen. Im Gegensatz dazu erfolgt eine Schreiboperation
mit nur einem 16-Bit-Datenwort
auf einmal, und es wird auf nur auf einen Spaltenbereich auf einmal
zugegriffen. Selbstverständlich
sind diese Datenwortlängen
beispielhaft und können
andere geeignete Wortlängen
verwendet werden.
-
Gemäß der derzeit
bevorzugten Ausführungsform
weist eine horizontale Reihe in dem Primärarray eines Vertikalarrays
VERTm p Spaltenbereiche mit jeweils q Bitleitungen auf. Beispielsweise kann
die Reihe p=16 Spaltenbereiche aufweisen, wobei jeder der 16 Spaltenbereiche
q=16 Bitleitungen aufweist, d. h. insgesamt 256 Bitleitungen in
einer horizontalen Reihe. Selbstverständlich sind diese Werte beispielhaft
und dienen nur der Erläuterung
und nicht der Einschränkung
der derzeit bevorzugten Ausführungsformen.
-
Die
beispielhafte CAM-Stufen-Gruppe 400 mit acht CAM-Stufen 402,404,406, 408,410,412,414,416 spezifiziert
die Stelle einer inoperativen Bitleitung mit einem Spaltenbereich
des Primärarrays
des Vertikalarrays VERTm. Vorzugsweise ersetzt eine redundante Bitleitung
des redundanten Arrays die inopera tive Bitleitung, auf die andernfalls
bei einer Lese- oder Schreiboperation zugegriffen würde.
-
Die
Stelle einer inoperativen Bitleitung BLi wird
zunächst
durch Identifizieren desjenigen Spaltenbereichs der p Spaltenbereiche
identifiziert, der die inoperative Bitleitung aufweist. Als nächstes wird die
Bitleitung der q Bitleitungen desjenigen Spaltenbereichs, der der
inoperativen Bitleitung entspricht, identifiziert. Entsprechend
speichert die beispielhafte (CAM-Stufen-Gruppe 400 mit
acht CAM-Stufen 402,404,406,408,410,412,414,416 vorzugsweise zwei
Informationen zum Anzeigen der Stelle der inoperativen Bitleitung
BLI.
-
Bei
einer Schreiboperation wird die f-Bit- (2f=p)
Schreibadresse, die einem Spaltenbereich mit q Bitleitungen entspricht,
mit der in einer Gruppe mit f Adressen-CAM-Stufen gespeicherten
f-Bit- (2f=p) Adresse verglichen. In dem
Spaltenbereich wird vorzugsweise ein Datenwort gespeichert. Insbesondere spezifizieren
die f Adressen-CAM-Stufen die f-Bit- (2f=p)
Adresse desjenigen Spaltenbereichs, der die inoperative Bitleitung
BLi aufweist. Wenn eine Übereinstimmung zwischen der
f-Bit-Schreibadresse und der in den f Adressen-CAM-Stufen gespeicherten f-Bit-Adresse
besteht, wird die Stelle der inoperativen Bitleitung BLi von
g (2g=q) I/O-CAM-Stufen identifiziert. Die
Werte für
f und g hängen
im wesentlichen von den Werten für
p und q ab.
-
Beispielsweise
wird gemäß einer
derzeit bevorzugten Ausführungsform
die Schreiboperation mit nur einem 16-Bit-Datenwort auf einmal durchgeführt und
wird nur auf einen der p=16 Spaltenbereiche, von denen jeder q=16
Bitleitungen aufweist, auf einmal zugegriffen. Gemäß 5 wird in f=4 (24=16) Adressen-CAM-Stufen 410,412,414,416 die 4-Bit-Adresse
eines Spaltenbereichs, der eine inoperative Bitleitung BLi aufweist, gespeichert und in g=4 (24=16) I/O-CAM-Stufen 402,404,406,408 die
Stelle der inoperativen Bitleitung BLi der
16 Bitleitungen in dem Spaltenbereich gespeichert. Wenn eine Schreiboperation
durchgeführt
wird, wird die Schreibadresse mit den Schreibadressen-CAM-Signalen WRITEADD0,
WRITEADD1, WRITEADD2 und WRITEADD3 der Adressen-CAM-Stufen CAM4/VERTm 410,
CAMS/VERTm 412, CAM6/VERTm 414 bzw. CAM7/VERTm 416 verglichen
(mit einer in 5 oder 1 nicht dargestellten Adressenübereinstimmungs-Schaltungsanordnung).
Wenn die Schreibadresse und die Schreibadressen-CAM-Signale übereinstimmen,
zeigen die I/O-CAM-Stufen 402,404,406,408 an,
welche Bitleitung der 16 Bitleitungen die inoperative Bitleitung
BLi ist.
-
Bei
einer Leseoperation wird die die h-Bit- (2n=p/2)
Leseadresse, die zwei Spaltenbereichen mit insgesamt 2q Bitleitungen
entspricht, mit in einer Gruppe von h Adressen-CAM-Stufen verglichen.
In den beiden Spaltenbereichen werden vorzugsweise zwei Datenwörter gespeichert.
Insbesondere die h Adressen-CAM-Stufen spezifizieren die h-Bit- (2n=p/2) Adresse der beiden Speicherbereiche,
von denen einer die inoperative Bitleitung BL, aufweist. Wenn eine Übereinstimmung
zwischen der h-Bit-Leseadresse und der in den h Adressen-CAM-Stufen gespeicherten
h-Bit-Adresse auftritt, wird die Stelle der inoperativen Bitleitung
BLi von j (2j=2q) I/O-CAM-Stufen
identifiziert. Die Werte für
h und j hängen
im wesentlichen von den Werten für
p und q ab.
-
Beispielsweise
werden bei einer Leseoperation gemäß einer derzeit bevorzugten
Ausführungsform
zwei 16-Bit-Datenwörter
auf einmal intern gelesen, während
nur ein 16-Bit-Datenwort auf einmal von der in 1 gezeigten Ausgangsschaltungsanordnung 112 erzeugt
wird. Auf diese Weise wird auf zwei der p=16 Spaltenbereiche, von
denen jeder q=16 Bitleitungen aufweist, auf einmal zugegriffen. Gemäß 5 wird in h=3 (23=8) Adressen-CAM-Stufen 412,414,416 die
3-Bit-Adresse zweier Spaltenbereiche, von denen einer eine inoperative
Bitleitung BLi aufweist, gespeichert und
in j=5 (25=32) I/0-CAM-Stufen 402,404,406,408,410 die
Stelle der inoperativen Bitleitung BLi der
32 Bitleitungen in zwei Spaltenbereichen gespeichert. Wenn eine
Leseoperation durchgeführt
wird, wird die Leseadresse mit den Leseadressen-CAM-Signalen READADD0, READADD1
und READADD2 der Adressen-CAM-Stufen CAM5/ VERTm 412, CAM6/VERTm 414 bzw.
CAM7/VERTm 416 verglichen (mit einer in 5 oder 1 nicht
dargestellten Adressenübereinstimmungs-Schal tungsanordnung).
Wenn die Leseadresse und die Leseadressen-CAM-Signale übereinstimmen,
zeigen die I/O-CAM-Stufen 402,404,406,408,410 an,
welche Bitleitung der 32 Bitleitungen in den beiden Spaltenbereichen
die inoperative Bitleitung BLi ist.
-
Obwohl
die Adressen-CAM-Stufen und die I/O-CAM-Stufen bei Lese- und Schreiboperationen unterschiedlich
genutzt werden, liefern die CAM-Stufen zusammen die gleichen Informationen über die Stelle
der gleichen inoperativen Bitleitung in einem Primärbereich,
die durch eine Bitleitung aus dem redundanten Bereich ersetzt werden
muss. Beispielsweise sei gemäß 5 angenommen, dass der Ausgang
der Zweiport-CAM-Stufen 402,404,406,408, 410,412,414,416 jeweils
10001000 ist.
-
Wenn
eine Schreiboperation an einem Spaltenbereich mit einer Schreibadresse 0001 durchgeführt werden
soll, werden diese vier Bits mit den folgenden Signalen verglichen:
-
- WRITEADD3=CAM7W=0 aus (Adressen-) CAM-Stufe 416;
- WRITEADD2=CAM6W=0 aus (Adressen-) CAM-Stufe 414;
- WRITEADD1=CAM5W=0 aus (Adressen-) CAM-Stufe 412; und
- WRITEADD0=CAM4W=1 aus (Adressen-) CAM-Stufe 410.
-
Es
gibt eine Schreibadressen-Übereinstimmung,
so dass der Inhalt der I/O-CAM-Stufen
geprüft wird,
um die Stelle der inoperativen Bitleitung BLi in dem
Spaltenbereich mit einer Adresse 0001 zu bestimmen, wie durch die
folgenden Signale dargestellt:
-
- WRITEIO3=CAM3W=0 aus (I/O-) CAM-Stufe 408;
- WRITEIO2=CAM2W=0 aus (I/O-) CAM-Stufe 406;
- WRITEIO1=CAM1W=0 aus (I/O-) CAM-Stufe 404; und
- WRITEIO0=CAM0W=0 aus (I/O-) CAM-Stufe 402.
-
Wenn
eine Leseoperation an den beiden Spaltenbereichen mit einer gemeinsamen
Leseadresse 000 durchgeführt
werden soll, werden diese drei Bits mit den folgenden Signalen verglichen:
- READADD2=CAM7R=0 aus (Adressen-) CAM-Stufe 416;
- READADD1=CAM6R=0 aus (Adressen-) CAM-Stufe 414; und
- READADD0=CAM5R=0 aus (Adressen-) CAM-Stufe 412.
-
Es
gibt eine Leseadressen-Übereinstimmung,
so dass der Inhalt der I/O-CAM-Stufen
geprüft wird,
um die Stelle der inoperativen Bitleitung BLi in den
beiden Spaltenbereichen, die gemeinsam eine Adresse 000 haben, zu
bestimmen, wie durch die folgenden Signale dargestellt:
- READIO4=CAM4R=0 aus (I/O-) CAM-Stufe 410;
- READIO3=CAM3R=0 aus (I/O-) CAM-Stufe 408;
- READIO2=CAM2R=0 aus (I/O-) CAM-Stufe 406;
- READIO1=CAMIR=O aus (I/O-) CAM-Stufe 404; und
- sREADIO0=CAM0R=1 aus (I/O-) CAM-Stufe 402.
-
6 zeigt ein Schaltschema
einer beispielhaften Gruppe 500 von CAM-Stufen 200 mit
einer gemeinsam genutzten Ausgangsschaltungsanordnung entsprechend
dem in 2 gezeigten Speicher.
Die beispielhafte CAM-Stufen-Gruppe 500 weist
folgende CAM-Stufen 200 auf: CAMn/VERT0 502, CAMn/ VERT1 504,
CAMn/VERT2 506 und CAMn/VERT3 508. Die CAM-Stufe
CAMn/ VERT0 502 empfängt
die Schreib- und Lese-Auswahlsignale WSEL0 und RSEL0 für VERT0.
Die CAM-Stufe CAMn/VERT1 504 empfängt die Schreib- und Lese-Auswahlsignale WSEL1
und RSEL1 für
VERT1. Die CAM-Stufe CAMn/ VERT2 506 empfängt die
Schreib- und Lese-Auswahlsignale WSEL2 und RSEL2 für VERT2. Die
CAM-Stufe CAMn/VERT3 508 empfängt die Schreib- und Lese-Auswahlsignale
WSEL3 und RSEL3 für
VERT3. Eine CAM-Stufe 200 CAMn befindet sich in jedem Vertikalarray
und in jeder CAMn 502,504,506,508 wird jeweils
ein Informationsbit bezüglich
der Stelle einer inoperativen Bitleitung in jedem jeweiligen Primärarray gespeichert.
-
Wie
in 6 dargestellt, sind
die CAMn-Stufen 502,504,506,508 alle
mit einem Schreib-Pull-up-Transistor 510, vorzugsweise
einem p-Kanal-Transistor, an einem ein Signal CAMnW aufweisenden
gemeinsam genutzten Ausgang 512 gekoppelt und sind alle
mit einem Lese-Pull-up-Transistor 514, vorzugsweise einem
p-Kanal-Transistor, an einem ein Signal CAMnR aufweisenden gemeinsam genutzten
Ausgang 516 gekoppelt.
-
Wenn
beispielsweise eine Schreiboperation an VERT0 durchgeführt wird,
ist das Schreib-Auswahlsignal WSEL0 aktiv und wird der Inhalt der CAM-Zelle
in der Zweiport-CAM-Stufe CAMn/VERT0 502 geprüft. Da während der
Durchführung
einer Schreiboperation an VERT0 eine Leseoperation möglicherweise
dort nicht durchgeführt
wird, ist das Lese-Auswahlsignal RSELO nicht aktiv. Ferner sind die
anderen Schreibprüfsignale
WSEL1, WSEL2 und WSEL3 nicht aktiv und ist das Signal CAMnW an dem
gemeinsam genutzten Ausgang 512 im Loder H-Zustand, je
nach Inhalt der CAM-Zelle in CAMn/VERT0 502.
-
Ähnlich ist
beispielsweise bei Durchführung einer
Leseoperation an VERT2 das Schreib-Auswahlsignal RSEL2 aktiv und
wird der Inhalt der CAM-Zelle in der Zweiport-CAM-Stufe CAMn/VERT2 506 geprüft. Da während der
Durchführung
einer Leseoperation an VERT 2 dort möglicherweise keine Schreiboperation
durchgeführt
wird, ist das Schreib-Auswahlsignal WSEL2 nicht aktiv. Ferner sind
die anderen Lese-Auswahlsignale RSELO, RSEL1 und RSEL3 nicht aktiv
und ist das Signal CAMnR an dem gemeinsam genutzten Ausgang 516 im
Loder H-Zustand, je nach Inhalt der CAM-Zelle in CAMn/VERT2 506.
-
Bei
einer Ausführungsform
befinden sich sämtliche
in 1 gezeigten Komponenten
auf einem einzigen Chip mit integrierter Schaltung. Es sei angemerkt,
dass Adressen- und Steuereingänge
für die
beispielhaften Flash-Speicherchips von der Speicherdichte und den
Interface-Implementierungen abhängig
sind.
-
Es
sei darauf hingewiesen, dass die offenbarten Ausführungsformen
mit anderen Speicherdichten und alternativen Interface-Implementierungen
mit den dazugehörigen
alternativen Adressen- und Steuereingangskonfigurationen arbeiten
können.
-
Wie
hier verwendet, bedeutet der Ausdruck Adresse im weiteren Sinne
einen beliebigen Stellen-Identifizieren, der eindeutig der/den oder
der Stelle einer oder mehrerer Speicherzellen entspricht. Die hier
beschriebenen derzeit bevorzugten Ausführungsformen bieten eine Redundanz-CAM-Schaltungsanordnung
mit Zweiport-CAM-Stufen. Aspekte der Ausführungsformen können jedoch
für andere Operationen
als das Ersetzen inoperativer Speicherzellen durch das redundante
Array verwendet werden.
-
Wie
hier verwendet, beziehen sich die Ausdrücke und Wendungen L-Zustand,
logischer L-Zustand, nicht aktiviert, nicht aktiv und inaktiv im
weiteren Sinne auf logische L-Werte eines digitalen Signals, die
generell als eine binäre
Null (0) repräsentierend
verstanden werden.
-
Wie
hier verwendet, beziehen sich die Ausdrücke und Wendungen H-Zustand,
logischer N-Zustand, aktiviert und aktiv im weiteren Sinne auf logische
H-Werte eines digitalen
Signals, die generell als eine binäre Eins (1) repräsentierend
verstanden werden.
-
Wie
hier verwendet, bedeutet die Wendung "A ist mit B gekoppelt", dass A direkt mit
B verbunden ist oder dass A indirekt über eine oder mehreren Zwischenkomponenten
mit B verbunden ist.
-
Wie
hier verwendet, bezieht sich der Ausdruck Benutzer auf einen Prozessor
oder eine andere Komponente oder Entität, der/die auf den Speicher zuzugreifen
beabsichtigt.
-
Wie
hier verwendet, bezieht sich der Ausdruck inoperativ, wenn er in
Zusammenhang mit einem Speicherelement oder einer Gruppe von Speicherelementen
verwendet wird, im weiteren Sinne auf eine Bedingung oder einen
Zustand, die/der das Ersetzen des inoperativen Speicherelements
durch ein oder mehrere Speicherelemente erforderlich machen kann.
Das Speicherelement kann beispielsweise eine oder mehrere Speicherzellen
oder Bitleitungen oder eine Interface-Schaltungsanordnung zu Speicherzellen
aufweisen. Insbesondere bezieht sich inoperative Speicherzelle,
wie hier verwendet, im weiteren Sinne auf eine Speicherzelle mit
oder ohne dazugehörige
Schaltungsanordnung, wie z. B. eine mit der Speicherzelle gekoppelte
Bitleitung oder eine die Speicherzelle aufweisende Bitleitung. Typischerweise
macht das Fehlen der Funktionalität des Speicherelements ein
Ersetzen des Speicherelements erforderlich. Das Fehlen der Funktionalität kann auf eine
Beschädigung
oder einen Defekt in dem Speicherelement oder in einem Interface
zu dem Speicherelement zurückzuführen sein.
-
Es
sei darauf hingewiesen, dass sich der Ausdruck Signal, wie hier
verwendet, im weiteren Sinn auf ein analoges oder digitales Signal
bezieht und beide Signaltypen umfasst.
-
Aus
dem oben Gesagten geht hervor, dass bei den derzeit bevorzugten
Ausführungsformen
ein Speicher bereitgestellt wird, bei dem eine inoperative Speicherzelle
durch eine zweite Speicherzelle ersetzt werden kann. Der Speicher
weist ein Primärarray
von Speicherzellen, ein redundantes Array von Speicherzellen und
eine inhaltsadressierbare Redundanz-Speicher- (CAM-) Schaltungsanordnung
auf. Die Redundanz-CAM-Schaltungsanordnung weist mehrere Zweiport-CAM-Stufen
auf. Jede CAM-Stufe weist eine CAM-Zelle, einen mit der CAM-Zelle
gekoppelten Schreib-Datenbus und einen mit der CAM-Zelle gekoppelten
Lese-Datenbus auf. Die CAM-Zelle speichert Informationen bezüglich einer Stelle
einer inoperativen Speicherzelle in dem Primärarray. Vorzugsweise macht
die inoperative Speicherzelle ein Ersetzen durch eine zweite Speicherzelle
in dem redundanten Array erforderlich. Der Schreib- Datenbus erzeugt
die Informationen von der CAM-Zelle in Reaktion auf ein Schreib-Auswahlsignal.
Das Schreib-Auswahlsignal zeigt eine an Speicherzellenplätzen in
dem Primärarray
durchzuführende
Schreiboperation an. Der Lese-Datenbus erzeugt die Informationen
von der CAM-Zelle in Reaktion auf ein Lese-Auswahlsignal. Das Lese-Auswahlsignal
zeigt eine an Speicherzellenstellen in dem Primärarray durchzuführende Leseoperation
an.
-
Vorzugsweise
werden die Schreiboperation und die Leseoperation zu unterschiedlichen
Zeiten an den Speicherzellenplätzen
in dem Primärarray durchgeführt.
-
Vorzugsweise
ist der Speicher in der Lage, eine Operationsadresse, die sich auf
eine Stelle einer dritten Speicherzelle in dem Primärarray bezieht,
mit Informationen der CAM-Zelle zu vergleichen, um festzustellen,
ob die dritte Speicherzelle in dem Primärarray durch die zweite Speicherzelle
in dem redundanten Array ersetzt werden muss.
-
Bei
einer bevorzugten Ausführungsform weist
die Zweiport-CAM-Stufe die in 3 gezeigte Zweiport-CAM-Stufe 200 auf.
Selbstverständlich können andere
geeignete Zweiport-CAM-Stufen gemäß den derzeit bevorzugten Ausführungsformen
als die beispielhafte CAM-Stufe 200 verwendet werden.
-
Ferner
bieten die derzeit bevorzugten Ausführungsformen eine inhaltsadressierbare
Zweiport-Speicher- (CAM-) Stufe in einem Speicher. Die CAM-Stufe
weist eine CAM-Zelle, einen mit der CAM-Zelle gekoppelten Schreib-Datenbus
und einen mit der CAM-Zelle gekoppelten Lese-Datenbus auf. Die CAM-Zelle
speichert Informationen bezüglich
einer Stelle einer inoperativen Speicherzelle in einem Primärarray des
Speichers. Vorzugsweise macht die inoperative Speicherzelle ein
Ersetzen durch eine zweite Speicherzelle in dem redundanten Array
des Speichers erforderlich. Der Schreib-Datenbus erzeugt die Informationen
von der CAM-Zelle in Reaktion auf ein Schreib-Auswahlsignal. Das Schreib-Auswahlsignal
zeigt eine an Speicherzellenplätzen
in dem Primär array
durchzuführende
Schreiboperation an. Der Lese-Datenbus erzeugt die Informationen
von der CAM-Zelle in Reaktion auf ein Lese-Auswahlsignal. Das Lese-Auswahlsignal
zeigt eine an Speicherzellenstellen in dem Primärarray durchzuführende Leseoperation
an.
-
Vorzugsweise
werden die Schreiboperation und die Leseoperation zu unterschiedlichen
Zeiten an den Speicherzellenplätzen
in dem Primärarray durchgeführt.
-
Vorzugsweise
ist der Speicher in der Lage, eine Operationsadresse, die sich auf
eine Stelle einer dritten Speicherzelle in dem Primärarray bezieht,
mit Informationen der CAM-Zelle zu vergleichen, um festzustellen,
ob die dritte Speicherzelle in dem Primärarray durch die zweite Speicherzelle
in dem redundanten Array ersetzt werden muss.
-
Bei
einer bevorzugten Ausführungsform weist
die Zweiport-CAM-Stufe die in 3 gezeigte Zweiport-CAM-Stufe 200 auf.
Selbstverständlich können andere
geeignete Zweiport-CAM-Stufen gemäß den derzeit bevorzugten Ausführungsformen
als die beispielhafte CAM-Stufe 200 verwendet werden.
-
Vorzugsweise
speichert die CAM-Zelle die Stelle einer inoperativen Speicherzelle
in dem Primärarray.
Vorzugsweise macht die inoperative Speicherzelle ein Ersetzen durch
die zweite Speicherzelle in dem einen oder den mehreren redundanten
Arrays erforderlich.
-
Ferner
stellen die derzeit bevorzugten Ausführungsformen einen Speicher
bereit, bei dem eine erste Speicherzelle durch eine dritte Speicherzelle und
eine zweite Speicherzelle durch eine vierte Speicherzelle ersetzt
werden kann. Der Speicher weist ein erstes Primärarray von Speicherzellen,
ein erstes redundantes Array von Speicherzellen, das dem ersten
Primärarray
von Speicherzellen zugeordnet ist, ein zweites Primärarray von
Speicherzellen, ein zweites redundantes Array von Speicherzellen,
das dem ersten Array von Speicherzel len zugeordnet ist, und eine
inhaltsadressierbare Redundanz-Speicher(CAM-) Schaltungsanordnung
auf. Das erste Primärarray
weist eine erste Speicherzelle auf, und das zweite Primärarray weist
eine zweite Speichezelle auf. Die Redundanz-CAM-Schaltungsanordnung weist
eine erste Gruppe von Zweiport-CAM-Stufen und ein zweiten Gruppe
von Zweiport-CAM-Stufen auf. Die erste Gruppe von Zweiport-CAM-Stufen speichert
erste Stelleninformationen der ersten Speicherzelle. Vorzugsweise
macht die erste Speicherzelle ein Ersetzen durch eine dritte Speicherzelle
in dem ersten redundanten Array erforderlich. Beispielsweise kann
die erste Speicherzelle beschädigt oder
anderweitig inoperativ sein. Die zweite Gruppe von Zweiport-CAM-Stufen
speichert zweite Stelleninformationen der zweiten Speicherzelle.
Vorzugsweise macht die zweite Speicherzelle ein Ersetzen durch eine
vierte Speicherzelle in dem zweiten redundanten Array erforderlich.
Beispielsweise kann die zweite Speicherzelle beschädigt oder
anderweitig inoperativ sein. Eine erste Anfangs-CAM-Stufe der ersten Gruppe von CAM-Stufen
weist eine erste CAM-Zelle, einen ersten Schreib-Datenbus und einen
ersten Lese-Datenbus auf. Der erste Schreib-Datenbus und der erste
Lese-Datenbus sind jeweils mit der CAM-Zelle gekoppelt. Eine zweite
Anfangs-CAM-Stufe der zweiten Gruppe von CAM-Stufen weist eine zweite
CAM-Zelle, einen zweiten Schreib-Datenbus und einen zweiten Lese-Datenbus auf.
Der zweite Schreib-Datenbus und der zweite Lese-Datenbus sind jeweils
mit der CAM-Zelle gekoppelt. Der zweite Schreib-Datenbus und der erste Schreib-Datenbus
nutzen gemeinsam einen ersten Schreib-Ausgang. Der zweite Lese-Datenbus
und der erste Lese-Datenbus nutzen gemeinsam einen ersten Lese-Ausgang.
-
Vorzugsweise
erzeugt der erste Schreib-Datenbus einen ersten Teil der ersten
Stelleninformationen von der ersten Gruppe von CAM-Zellen an dem ersten
Schreib-Ausgang in Reaktion auf ein erstes Schreib-Auswahlsignal.
Vorzugsweise weist der erste Teil der ersten Stelleninformationen
ein Informationsbit auf. Das erste Schreib-Auswahlsignal zeigt eine
an Speicherzellenplätzen
in dem ersten Primärarray
durchzuführende
Schreiboperation an. Vorzugsweise erzeugt der zweite Schreib-Datenbus
einen zweiten Teil der zweiten Stellenin formationen von der zweiten
Gruppe von CAM-Stufen an dem ersten Schreib-Ausgang in Reaktion auf ein zweites Schreib-Auswahlsignal.
Vorzugsweise weist der zweite Teil der zweiten Stelleninformationen
ein Informationsbit auf. Das zweite Schreib-Auswahlsignal zeigt
eine an Speicherzellenplätzen
in dem zweiten Primärarray
durchzuführende
Schreiboperation an. Vorzugsweise weist der Speicher ferner einen
mit dem ersten Schreib-Ausgang gekoppelten Schreib-Vorspanntransistor
zum Vorspannen des ersten Schreib-Ausgangs auf einen ersten Wert
an. Vorzugsweise wird, wenn eine Schreiboperation an dem ersten
Primärarray
durchgeführt
wird und der erste Schreib-Ausgang auf einen zweiten Wert gezogen
wird, die erste CAM-Zelle gelöscht.
Vorzugsweise wird, wenn eine Schreiboperation an dem ersten Primärarray durchgeführt wird
und der erste Schreib-Ausgang auf dem ersten Wert bleibt, die erste
CAM-Zelle programmiert. Vorzugsweise wird, wenn eine Schreiboperation
an dem zweiten Primärarray
durchgeführt
wird und der erste Schreib-Ausgang auf den zweiten Wert gezogen
wird, die zweite CAM-Zelle gelöscht.
Vorzugsweise wird, wenn eine Schreiboperation an dem zweiten Primärarray durchgeführt wird
und der erste Schreib-Ausgang auf dem ersten Wert bleibt, die zweite
CAM-Zelle programmiert.
-
Vorzugsweise
erzeugt der erste Lese-Datenbus einen ersten Teil der ersten Stelleninformationen von
der ersten Gruppe von CAM-Zellen an dem ersten Lese-Ausgang in Reaktion
auf ein erstes Lese-Auswahlsignal. Vorzugsweise weist der erste
Teil der ersten Stelleninformationen ein Informationsbit auf. Das
erste Lese-Auswahlsignal zeigt eine an Speicherzellenplätzen in
dem ersten Primärarray durchzuführende Leseoperation
an. Vorzugsweise erzeugt der zweite Lese-Datenbus einen zweiten
Teil der zweiten Stelleninformationen von der zweiten Gruppe von
CAM-Stufen an dem ersten Lese-Ausgang in Reaktion auf ein zweites
Lese-Auswahlsignal. Vorzugsweise weist der zweite Teil der zweiten Stelleninformationen
ein Informationsbit auf. Das zweite Lese-Auswahlsignal zeigt eine an Speicherzellenplätzen in
dem zweiten Primärarray
durchzuführende
Leseoperation an. Vorzugsweise weist der Speicher ferner einen mit
dem ersten Lese-Ausgang gekoppelten Lese-Vorspanntransistor zum
Vorspannen des ersten Lese-Ausgangs auf einen ersten Wert an. Vorzugsweise
wird, wenn eine Leseoperation an dem ersten Primärarray durchgeführt wird
und der erste Lese-Ausgang auf einen zweiten Wert gezogen wird,
die erste CAM-Zelle gelöscht.
Vorzugsweise wird, wenn eine Leseoperation an dem ersten Primärarray durchgeführt wird
und der erste Lese-Ausgang auf dem ersten Wert bleibt, die erste
CAM-Zelle programmiert. Vorzugsweise wird, wenn eine Leseoperation
an dem zweiten Primärarray
durchgeführt wird
und der erste Lese-Ausgang auf den zweiten Wert gezogen wird, die
zweite CAM-Zelle gelöscht. Vorzugsweise
wird, wenn eine Leseoperation an dem zweiten Primärarray durchgeführt wird
und der erste Lese-Ausgang auf dem ersten Wert bleibt, die zweite CAM-Zelle
programmiert.
-
Ferner
bieten die derzeit bevorzugten Ausführungsformen ein Verfahren
zum Ersetzen einer inoperativen Zelle in einem Primärarray von
Speicherzellen durch eine zweite Speicherzelle in einem redundanten
Array von Speicherzellen. Informationen sind in einer Folge von
Zweiport-CAM-Stufen gespeichert. Die Informationen beziehen sich
auf eine Stelle der inoperativen Speicherzelle. Eine Operationsadresse,
die einer oder mehreren Stellen von Speicherzellen in dem Primärarray entspricht,
wird mit den Informationen in der Folge von Zweiport-CAM-Stufen
verglichen, um festzustellen, ob die eine oder die mehreren Stellen
von Speicherzellen die Stelle der inoperativen Speicherzelle aufweisen. Wenn
die eine oder die mehreren Stellen von Speicherzellen die Stelle
der inoperativen Speicherzelle aufweisen, wird mittels der Operationsadresse
auf die Stelle der zweiten Speicherzelle zugegriffen. Wenn die eine
oder die mehreren Stellen von Speicherzellen die Stelle der inoperativen
Speicherzelle nicht aufweisen, wird mittels der Operationsadresse auf
die eine oder die mehreren Speicherzellen zugegriffen. Bei einer
bevorzugten Ausführungsform
ist die Operationsadresse eine Schreibadresse. Bei einer bevorzugten
Ausführungsform
ist die Operationsadresse eine Leseadresse.
-
Es
sei darauf hingewiesen, dass die hier beschriebenen Verfahrensschritte
in einer mit den beschriebenen Handlungen übereinstimmenden Reihenfolge
durchgeführt
werden können.
-
Obwohl
spezielle Ausführungsformen
der vorliegenden Erfindung dargestellt und beschrieben worden sind,
können
Modifikationen durchgeführt werden.
Beispielsweise können
die Richtungen der einzelnen Transistoren, nämlich p-Kanal und n-Kanal, bei geeigneten Anwendungen
umgekehrt werden. Es sei angemerkt, dass geeignete Transistorgrößen, die
die Kanal-Längen-zu-Breiten-Verhältnisse
(gemessen in Mikrometer oder Mikron) für die die dargestellten Schaltungen
bildenden Transistoren spezifizieren, aus den Figuren weggelassen
worden sind. Es sei darauf hingewiesen, dass je nach Auslegungsanforderungen
und den Möglichkeiten
und Beschränkungen
des speziellen Fertigungsverfahrens für integrierte Schaltungen,
das für
die Implementierung der Schaltung angewendet wird, sowie den Leistungsanforderungen
der spezifischen Ausführungsform
geeignete Verhältnisse
gewählt
werden können.
Ferner können
die hier beschriebenen erfindungsgemäßen Konzepte auf andere Schaltungen als
Speichervorrichtungen angewendet werden.
-
In
der vorstehenden detaillierten Beschreibung sind nur einige wenige
der zahlreichen Formen dargestellt, die die vorliegende Erfindung
annehmen kann. Die vorstehende detaillierte Beschreibung darf daher
nur als Erläuterung
und nicht als Einschränkung
angesehen werden, und es sei darauf hingewiesen, dass die nachfolgenden
Patentansprüche,
einschließlich
sämtlicher Äquivalente,
den Umfang der vorliegenden Erfindung definieren. Daher decken die beiliegenden
Patentansprüche
sämtliche Änderungen
und Modifikationen ab, die in den Umfang der Erfindung fallen.