-
GEBIET DER
ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich auf Speicherredundanzarchitekturen und insbesondere auf eine
Architektur für
burst-verschachtelte Speicher.
-
HINTERGRUND
DER ERFINDUNG
-
Die Redundanz ist eine Hardwaretechnik, die
die Korrektur möglicher
Defekte einer Speichermatrix ermöglicht,
um die effektive Ausbeute des Herstellungsprozesses der Vorrichtung
zu erhöhen. Wenn
von Redundanz gesprochen wird, ist in den meisten Fällen allgemein
eine "Spalten"-Redundanz beabsichtigt,
d. h. die Möglichkeit,
Matrixspalten, die einen oder mehrere Defekte enthalten, durch redundante
(Ersatz-)Spalten zu ersetzen.
-
Das Dokument US-A-5 999 463 offenbart eine
Halbleiterspeichervorrichtung mit einer verringerten Anzahl von
Spaltenredundanz-Sicherungsfeldern. Die Vorrichtung besitzt mehrere
Normalspaltenauswahl-Leitungstreiber für die Bänke oder Halbmatrizen, in die
der Speicher aufgeteilt ist, mehrere Redundanzspaltenauswahl-Leitungstreiber
für die zwei
Halbmatrizen und ein Spaltenredundanz-Sicherungsfeld, das an die
Redundanzspaltenauswahl-Leitungstreiber der beiden Halbmatrizen
gemeinsam angeschlossen ist. Wenn in beiden der zwei Speicherblöcke oder
Halbmatrizen eine defekte Speicherzelle vorhanden ist oder selbst,
wenn in nur einer der zwei Halbmatrizen eine defekte Speicherzelle
vorhanden ist, wird sie in beiden Halbmatrizen gleichzeitig durch
eine redundante Speicherzelle ersetzt.
-
Die üblicherweise verwendete Architektur
für das
Management der Adressen von auf diese Weise ersetzten Orten wird
hauptsächlich
von Bänken
nicht flüchtiger
Speichereinheiten gebildet, die kurz CAM genannt werden und durch
den Hersteller während einer
Prüfphase
der Vorrichtungen programmiert und gelöscht werden können. Diese
CAM-Einheiten speichern Informationen, die geeignet sind, die zu
ersetzenden Speicherorte eindeutig zu identifizieren.
-
Die im CAM gespeicherten Informationen können verschiedenartig
sein: die Adressen des zu reparierenden Orts, welches Bitpaket eines
adressierten Worts ersetzt werden muss, ob die CAM-Bank zum Speichern
einer fehlerhaften Adresse verwendet wird oder nicht usw.
-
Die Funktion einer Redundanzmanagementarchitektur
ist es, zu überprüfen, ob
der adressierte Ort unter den redundanten ist, und im Fall eines
positiven Ergebnisses die redundanten Spalten zu aktivieren und
gleichzeitig die Decodierung des defekten Orts der Matrix zu deaktivieren.
Dies muss für
jede Operation, Lesen oder Schreiben, die das Adressieren des defekten
(fehlerhaften) Orts beinhaltet, erfolgen.
-
Die Anzahl der CAM-Bänke, die
in einer Redundanzarchitektur verwendet werden, setzt die Maximalzahl
der Pakete (Spalten, Byte, Zeilen, ...) der gesamten Matrix von
Speicherzellen fest, die ersetzt werden können.
-
Bei einer "herkömmlichen" Funktion eines so genannten
(asynchronen) Standardspeichers gibt es weder besondere Schwierigkeiten
dabei, ein Redundanzpaket für
irgendeinen Fehler des Speichers vorzusehen, noch gibt es Beschränkungen
der Aktivierungszeiten irgendeines redundanten Elements.
-
Demgegenüber besteht im Fall synchroner Speicher,
die mit einem "burstverschachtelten" Protokoll arbeiten,
die Notwendigkeit, die Aktivierungszeitpunkte für zusammenhängende ersetzte Orte während der
burst-verschachtelten Lesezyklen richtig zu unterscheiden.
-
Tatsächlich werden in einer Betriebsart
mit burst-verschachteltem Zugriff mit einem bestimmten Zeitüberlapp
zwei zusammenhängende
Lesevorgänge
(z. B. add0 → add1)
ausgeführt.
Das heißt,
während
eine Dateneinheit ausgegeben wird, ist die nachfolgende Dateneinheit
bereits adressiert worden und dabei, gelesen zu werden. Somit ist
klar, dass Redundanzarchitekturen für diese Art verschachtelter
Speicher diese Besonderheit beachten müssen, um den Einschaltmoment
der Redundanzelemente z. B. bei der Hypothese des Adressierens zweier
zusammenhängender
Orte (gemäß einer
Betriebsart mit Burst-Zugriff),
die beide ersetzt werden, ohne Konflikte richtig zu unterscheiden.
-
Normalerweise ist die Redundanzarchitektur ähnlich der
entsprechenden Decodierungsstruktur der Speichermatrix. Ähnlich wird
die Redundanzeinheit, wie sie in 1 gezeigt
ist, mit Bezug auf die Architektur einer typischen Matrix von einer
(als Metall2 definierten) Hauptbitleitung gebildet, ausgehend von der
vier (im Metall1 definierte) echte Bitleitungen decodiert werden,
die mit den Drains der entsprechenden Redundanzzellen verbunden
sind.
-
Um eine so genannte "Spalten"-Redundanz zu realisieren,
werden normalerweise zwei alternative Zugänge verfolgt:
- – Redundanz
durch Ausgabe (Ersatz der einzelnen Zeile, zu der der Fehler gehört);
- – Redundanz
durch "Pakete" (vollständiger oder teilweiser
Ersatz der Gruppe der Bitleitungen des von einem Fehler betroffenen
Worts, wie es während
eines Lesevorgangs adressiert wird).
-
Beispielsweise kann die Redundanzarchitektur
die Reparatur eines 8-Bit-Pakets (d. h. des höherwertigen oder des niederwertigen
Bytes) eines adressierten 16-Bit-Worts unabhängig von der Tatsache betrachten,
dass der Defekt an einem einzelnen Bit des einen oder des anderen
Bytes und nicht an allen 8 Bits überprüft wird.
-
Gemäß diesem zweiten Zugang gibt
es einerseits wegen der überflüssigen Anzahl
von Spalten, die in der Mehrzahl der Reparaturen eines Einzelbitfehlers
nicht erforderlich wären,
eine "Verschwendung" von Siliciumfläche, während andererseits
eine stark vereinfachte Schaltungsanordnung für das Management der Redundanz
erforderlich ist, so dass die Siliciumintegrationsfläche der
Managementschaltungsanordnung verringert wird.
-
Beispielsweise kann es für die gesamte
Matrix vier Redundanzbänke,
d. h. die Möglichkeit
der Verwendung von vier Spaltenpaketen für mögliche Ersätze, geben.
-
Wie zuvor diskutiert wurde, ist die
gesamte Matrix der Zellen in einem verschachtelten Speicher unter
Verwendung einer Anzahl von Leseverstärkern, die gleich der Anzahl
der Ausgänge
ist, in mehrere Teile (typischerweise in zwei Halbmatrizen GERADE/UNGERADE)
aufgeteilt, die einzeln adressierbar sind, um Probleme beim Management
der zwei sich zeitlich teilweise überlappenden Lesevorgänge zu vermeiden.
-
In einem "klassischen" Speicher erfolgen die Auswahl der redundanten
Spalte und die Nichtauswahl der zu ersetzenden Spalte üblicherweise
durch eine Wirkung auf der ersten Decodierungsebene, während die
weiteren Decodierungsebenen der Speichermatrix aktiv bleiben. Demgegenüber ist
die letzte Decodierungsebene, die bestimmt, welche der mit der MBL
selbst (1) verbundenen
Bitleitungen die ausgewählte
ist, sowohl für
die Speichermatrix als auch für
die Redundanzstruktur aktiv.
-
Normalerweise ist der Lesebus sowohl
für die
Speichermatrix als auch für
die Redundanzstruktur gemeinsam, so dass die lokale Matrixdecodierung gesperrt
wird, wenn ein "reparierter" Ort adressiert wird,
während
die lokale Redundanzdecodierung aktiviert wird, was die Verbindung
zwischen der redundanten physikalischen Spalte und der Abtastschaltungsanordnung
ermöglicht.
-
Dadurch, dass eine Redundanz pro
Byte implementiert ist, wird lediglich die lokale Matrixdecodierung
des Worts, zu dem das zu ersetzende Paket (Byte) gehört, deaktiviert,
während
die weiteren acht lokalen Decodierungen weiter einen Matrixort auswählen.
-
Es ist klar, dass die Redundanz,
die wesentlich ist, um eine akzeptable Ausbeute des Herstellungsprozesses
sicherzustellen, hinsichtlich des Siliciumflächenverbrauchs merkliche Kosten
besitzt, so dass es von großer
Bedeutung ist, dass ihre Leistungen optimiert werden, während die
für sie
vorgesehene Fläche
minimiert wird.
-
AUFGABE UND
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es ist festgestellt worden, dass
große
Vorteile dadurch erreicht werden können, dass die Anzahl der Redundanzspaltenpakete
in Untergruppen unterteilt wird, von denen jede unabhängig von
anderen Untergruppen adressierbar ist, und dass die Spalten der
Redundanzzellen lediglich für
eine entsprechende Bank vorgesehen werden, in die die Speicherzellenmatrix
unterteilt ist. Jede Untergruppe von Paketen von Redundanzspalten
besitzt eine Kapazität,
die ausreicht, um den statistisch bestimmten Bedarf eines möglichen
Bitfehlers der einzelnen Bank, der die Untergruppe zugeordnet ist,
zu erfüllen.
-
Die Redundanzauswahl-Schaltungsanordnung
oder die Anzahl der CAM-Bänke bleiben
ungeändert,
da ansonsten nichts abgeändert
wird. In der Praxis wird die Gesamtzahl der Pakete der Redundanzspalten
einfach aufgeteilt, d. h. in Untergruppen unterteilt.
-
Diese Anordnung erweist sich als äußerst vorteilhaft.
Sie vereinfacht das Management der Redundanz und bestimmt eine Einsparung
an Siliciumfläche.
-
Insbesondere stellt der Zugang der
Erfindung keine Einschränkung
außer
der Tatsache, dass es nicht mehr möglich ist, zwei Bytes eines
gleichen adressierten Orts (Worts) zu ersetzen. Andererseits wird
die Bedingung der Unabhängigkeit
der Redundanz für
die Bänke
der Unterteilung eines verschachtelten Speichers vollständig erfüllt, was,
wie bereits in der Einleitung diskutiert worden ist, die Möglichkeit zulässt, aufeinander
folgende Orte zu ersetzen, die während
des gleichen Zeitintervalls gelesen werden könnten, wenn in der Burst-Betriebsart
auf den Speicher zugegriffen wird.
-
Ein weiterer Vorteil der Unterteilung
der Redundanzarchitekturen in verschiedene Untergruppen besteht
in der Tatsache, dass die Breite der Lese- und Schreibbusse für einen
in 16-Bit-Wörtern
organisierten Speicher hinsichtlich des Entwurfs entlang der gesamten
Breite der physikalischen Speichermatrix lediglich 16 Bits sein
kann, da die Busse, mit denen die redundante MBL möglicherweise
verbunden wird, lokal sind und sich (im Fall eines verschachtelten
Speichers) auf eine einzige Bank und auf einen einzigen Lese/Schreib-Weg
beziehen.
-
Eine üblicherweise verwendete Technik
zur Einsparung von Fläche
besteht bei der gleichen Entwurfswahl der Redundanz nach Bytes darin,
die vier rechten Spalten und die vier linken Spalten eines Pakets
von acht Spalten getrennt zu verwenden, so dass ein vollständiges Paket
von Redundanzspalten in zwei Teile aufgeteilt wird, wobei diese
bekannte Technik aber die folgenden Nachteile besitzt:
- – die
Unmöglichkeit,
zwei aufeinander folgende Orte gemäß der burstverschachtelten
Lesebetriebsart zu ersetzen, da es unmöglich ist, 16 MBL, die sich
auf zwei ersetzte Bytes der zwei aufeinander folgenden Orte (GERADE-UNGERADE)
beziehen, während
des gleichen Lesezyklus gleichzeitig zu aktivieren;
- – die
Schwierigkeit beim "Leiten" des Lese/Schreib-Busses,
der für
die gesamte Breite der Matrix der Speicherzellen eine Breite von
32 Bits haben muss, da die Redundanz sämtlicher Bänke unter Verwendung der gleichen
Elemente (Ersatzpakete der Spalten) sichergestellt werden muss.
-
Gemäß einem weiteren Aspekt der
Erfindung ordnen eine Anzahl von Bänken nicht flüchtiger Register
(CAM), die gleich der während
des Entwurfs der Vorrichtung definierten Maximalzahl von Ersetzungen
ist, die sichergestellt werden müssen,
jeder Bank der Unterteilung der Zellen der gesamten Speichermatrix
(typischerweise zwei Halbmatrizen eines verschachtelten Speichers)
eine Anzahl redundanter Pakete zu, die gleich einer vorgegebenen
Anzahl von Bänken
nicht flüchtiger
Register (CAM) ist.
-
Für
jedes der zwei Adressensysteme in Bezug auf die Unterteilungsbänke der
Speichermatrix, beispielsweise in Bezug auf die GERADE Halbmatrix und
in Bezug auf die UNGERADE Halbmatrix eines verschachtelten Speichers,
werden geeignete XOR-Strukturen und eines oder mehrere nicht flüchtige Register
verwendet, um die von den Defekten betroffene Halbmatrix oder Bank
auszuwählen
und eine oder mehrere Strukturen nicht flüchtiger Register auszuwählen und
somit den Teil eines zu ersetzenden adressierten Worts auszuwählen.
-
Dieser Zugang ermöglicht eine Verringerung (im
Fall eines verschachtelten Speichers mit zwei Bänken eine Halbierung) der erforderlichen
Anzahl nicht flüchtiger
Register mit einer daraus folgenden Einsparung an Siliciumfläche.
-
Außerdem besitzt diese Architektur
hohe Flexibilität
für das
Management der Redundanz. Tatsächlich
können
die Redundanzbetriebsmittel irgendeiner Unterteilungsbank der Matrix
frei und in irgendeiner Kombination und/oder in irgendeinem Verhältnis zugeordnet
werden.
-
Im Wesentlichen werden gemäß der vorliegenden
Erfindung eine Doppel-XOR-Struktur
zur Erzeugung der HIT-Signale und ein CAM, der für die Spei cherung der höchstwertigen
Spaltenadresse, die als ein Multiplexierungssignal der HIT-Signale
zu dem richtigen Teil der Matrix, z. B. zu der GERADE-Bank oder zu der
UNGERADE-Bank eines üblichen
in zwei Untermatrizen unterteilten verschachtelten Speichers, verwendet
wird, vorgesehen ist, angewendet.
-
Diese Erfindung ist genauer in dem
beigefügten
unabhängigen
Anspruch 1 definiert.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
1 zeigt
den Aufbau einer Einheit oder eines Pakets von Redundanzspalten,
die eine Hauptbitleitung (Metall2) oder kurz MBL enthalten, von
der vier Echtbitleitungen (Metall1) decodiert werden, die somit
mit dem Drain der entsprechenden Redundanzspeicherzellen verbunden
sind.
-
2 ist
ein Funktionsdiagramm des CAM, der für die Speicherung der höchstwertigen
Spaltenadressen vorgesehen ist, und der verwandten Multiplexierungsschaltungsanordnung
der HIT-Signale zu dem richtigen Teil der Speichermatrix.
-
3 ist
eine Ausführungsform
der Erfindung für
einen burst-verschachtelten Speicher, der in vier Halbmatrizen GERADE
und UNGERADE unterteilt ist.
-
4 ist
ein Diagramm des Redundanzprozesses der Erfindung für den Fall
eines burst-verschachtelten Speichers.
-
BESCHREIBUNG
EINER AUSFÜHRUNGSFORM DER
ERFINDUNG
-
Das Lesen (sowie irgendein Schreibzyklus) eines
Speicherorts, gleich, ob es ein asynchroner Standardspeicher (mit
wahlfreiem Zugriff) oder ein synchroner Speicher (mit Burst-Zugriff)
ist, beginnt stets mit der Zuweisung einer Adresse durch den Anwender
oder durch eine hierzu vorgesehene interne Schaltungsanordnung.
-
Die Decodierungsschaltungsanordnung
decodiert die zugewiesene Adresse, um den interessierenden Ort eindeutig
zu identifizieren und entweder eine Lese- oder eine Schreiboperation
zuzulassen.
-
Falls die Vorrichtung während ihrer
Prüfungen
am Ende der Herstellung redundant gemacht worden ist, sind weitere
Schritte erforderlich, um den "echten
physikalischen Ort" des
Speichers zu identifizieren.
-
Wie graphisch in 2 gezeigt ist, wird die zugewiesene Adresse
mit der Adresse der ersetzten Orte XOR-kombiniert und, falls sie
einer von ihnen entspricht, ein HIT-Signal erzeugt, das die Redundanzschaltungsanordnung
aktiviert, die die Pakete der Spalten, die den Fehler enthalten,
durch das Paket der redundanten Spalten ersetzt.
-
In dem Fall, der durch die Pakete
der Spalten (Byte) als redundant betrachtet wird, wird das erzeugte
HIT-Signal multiplexiert, um das richtige Paket (Byte) des adressierten
Worts zu ersetzen.
-
Obgleich das Lesen nach Worten ausgeführt wird,
wird die Redundanz in dem betrachteten Beispiel gemäß dem in 4 gezeigten Diagramm durch
Ersetzen der Pakete von acht Spalten aktiviert.
-
Wie schematisch in 3 gezeigt ist, findet die effektive Aktivierung
der Redundanz aufeinander folgend auf der Aktivierungsebene statt,
wo das auf diese Weise erzeugte Signal HIT_lowbyte/HIT_highbyte
die YMR-Redundanzdecodierung aktiviert und die Spaltendecodierung
in der Haupthalbmatrix (YM_lowbyte/YM_highbyte) sperrt.
-
Der Lesebus sowie die Programmladung
in Bezug auf den Bytefehler werden mit den redundanten Spalten verbunden,
die den Spalten der Halbmatrix entsprechen, die einen Fehler enthalten.
-
Anhand des Diagramms aus 3 stellt die Verwendung
einer Doppel-XOR-Struktur
zum Erzeugen der HIT-Signale und die Einführung eines CAM zum Speichern
der höchstwertigen
Spaltenadresse, die verwendet wird, um die HIT-Signale zu der richtigen
Halbmatrix (GERADE oder UNGERADE) zu multiplexieren, eine unabhängige Redundanz
für die zwei
Halbmatrizen GE- RADE/UNGERADE
des (verschachtelten) Speichers sicher, wobei die Anforderungen,
die an den Überlapp
der Lesevorgänge
gestellt werden, vollständig
erfüllt
sind.
-
In Standardspeichern umfasst das
Management der Redundanz den Vergleich sämtlicher Spaltenadressen mit
den in den CAMs der redundanten Bänke gespeicherten Werten.
-
Ein logisches UND der einzelnen Bits
des Ergebnisses eines solchen Vergleichs erzeugt das HIT-Signal,
das je nach den weiteren in einem weiteren CAM gespeicherten wesentlichen
Informationen (High_Byte/Low_Byte) die Redundanzschaltungsanordnung
in Bezug auf dasjenige Byte, das ersetzt werden muss, aktiviert.
-
Im Fall des betrachteten burst-verschachtelten
Speichers werden anstelle von n in den entsprechenden CAMs gespeicherten
Spaltenadressen lediglich n – 1
verwendet, um durch eine logische XOR-Operation das HIT-Signal zu
erzeugen. Tatsächlich
wird außerdem
die höchstwertige
Adresse (A0) in einem CAM gespeichert, wobei ihre Funktion aber
das Multiplexieren des erzeugten HIT-Signals zu der richtigen Halbmatrix
ist.
-
Praktisch zeigen die n – 1 Adressen
auf zwei symmetrische Orte, einen für jede Halbmatrix GERADE/UNGERADE,
während
die n-te Adresse A0 dazu dient, zwischen den zwei symmetrischen
Orten auszuwählen.
-
In die zwei XOR-Strukturen werden
aufeinander folgend die Adressen eingegeben, die in den CAMs gespeichert
sind und die sich wegen des anderen Eingangssignals, das der Adressenbus
GERADE oder UNGERADE an die Eingangsstrukturen übergibt (Adressenzwischenspeicher),
voneinander unterscheiden. Folglich wird der Redundanzwert während der
gesamten Dauer des Lesens der Halbmatrix ebenfalls ungeändert gehalten,
da die Informationen der Adressenzwischenspeicher unabhängig von
der Tatsache, dass je nach dem Inhalt des even_bank/odd_bank-CAM,
der die Adresse A0 speichert, entweder die GERADE Halbmatrix oder die
UNGERADE Halbmatrix betrachtet wird, während der gesamten Dauer des
Lesens ungeändert
bleiben.
-
Diese Betrachtungen sind für jede der
vorhandenen Redundanzbänke
(4) gültig.
Das heißt, dass
es selbst in verschiedenen Redundanzbänken möglich ist, den gleichen Ort,
auf den die n – 1
Adressen in beiden Halbmatrizen zeigen, zu ersetzen. Praktisch ist
es ausreichend, lediglich die gleichen n – 1 Adressen in den zwei Bänken zu
speichern, während
der Inhalt des odd/even_bank-CAM, der der höchstwertigen Adresse A0 entspricht,
geändert wird.