-
HINTERGRUND
-
GEBIET DER ERFINDUNG
-
Ausführungsformen
der Erfindung betreffen das Gebiet der Speicherelemente und insbesondere die
Redundanz in Speicherelementen.
-
BESCHREIBUNG DES STANDES DER
TECHNIK
-
Blockredundanzen
werden normalerweise zum Reparieren von Defekten verwendet, die
nicht mit Zeilen- oder Spaltenredundanzen in nichtflüchtigen
Speichern, zum Beispiel Flash-Speicher,
behebbar sind. Defektmodi wie Wortleitung-zu-Bitleitung-Kurzschlüsse, Wortleitung-zu-Substrat-Kurzschlüsse (zum
Beispiel Hängenbleiben
auf 1 (stuck-at-one) oder Hängenbleiben
auf 0) (stuck-at-zero) usw. fallen in die Kategorie für Blockreparaturen.
-
Spaltendefekte
wie Bitleitung-zu-Bitleitung-Kurzschlüsse treten oft bei der Herstellung
von nichtflüchtigen
Speichern auf. Zwar können
Blockredundanzen zum Reparieren solcher Defekte verwendet werden,
doch sind sie aufgrund der Zunahme der Chipgröße teuer. Typischerweise kann
jeder redundante Block in Abhängigkeit
von der Blockgröße und der
Dichte des Speicherelementes zu einer Zunahme der Chipgröße von 0,5%
bis 1% führen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen
der Erfindung sind dann am besten verständlich, wenn auf die folgende
Beschreibung und die beigefügten
Zeichnungen, die zur Veranschaulichung von Ausführungsformen der Erfindung
verwendet werden, Bezug genommen wird. In den Zeichnungen ist:
-
1A ein
Diagramm, das ein Musikwiedergabegerät veranschaulicht, in dem eine
Ausführungsform
der Erfindung ausführbar
ist.
-
1B ein
Diagramm, das ein Rechnersystem veranschaulicht, in dem eine Ausführungsform der
Erfindung ausführbar
ist.
-
2 ein
Diagramm, das eine rekonfigurierbare Speicherschaltung gemäß einer
Ausführungsform
der Erfindung veranschaulicht.
-
3 ein
Diagramm, das einen rekonfigurierbaren Speicher mit redundanten
Blöcken
gemäß einer
Ausführungsform
der Erfindung veranschaulicht.
-
4 ein
Diagramm, das einen Speicherblock gemäß einer Ausführungsform
der Erfindung veranschaulicht.
-
5 ein
Diagramm, das eine Tabellenstruktur gemäß einer Ausführungsform
der Erfindung veranschaulicht.
-
6 ein
Diagramm, das eine Schaltung zum Decodieren von redundanten Blöcken gemäß einer
Ausführungsform
der Erfindung veranschaulicht.
-
7 ein
Flußdiagramm,
das einen Prozeß zum
Rekonfigurieren von redundanten Blöcken gemäß einer Ausführungsform
der Erfindung veranschaulicht.
-
BESCHREIBUNG
-
Eine
Ausführungsform
der vorliegenden Erfindung ist eine Technik zum Bereitstellen einer
rekonfigurierbaren Reparaturschaltung in einem Speicherelement.
Eine Tabellenstruktur enthält
eine Mehrzahl von Einträgen,
wobei jeder Eintrag ein defektes Adreßwort und ein redundantes Adreßwort hat.
Das redundante Adreßwort
entspricht einem redundanten Block und wird als Reaktion auf einen Speicherzugriff
auf eine defekte Ein-/Ausgabe-Leitung (E/A-Leitung) in einem Speicherblock des
Speicherelementes generiert. Eine Decodierschaltung decodiert das
redundante Adreßwort,
um eine redundante E/A-Leitung in dem redundanten Block auszuwählen, die
die defekte E/A-Leitung ersetzt.
-
In
der folgenden Beschreibung sind zahlreiche spezifische Einzelheiten
dargelegt. Es versteht sich jedoch, daß Ausführungsformen der Erfindung auch
ohne diese spezifischen Einzelheiten ausgeführt werden können. In
anderen Fällen
sind wohlbekannte Schaltungen, Strukturen und Techniken nicht gezeigt
worden, um diese Beschreibung nicht unverständlich zu machen.
-
Eine
Ausführungsform
der Erfindung kann als ein Prozeß beschrieben werden, der für gewöhnlich als
Flußdiagramm,
Ablaufdiagramm, Strukturdiagramm oder Blockdiagramm dargestellt
wird. Zwar kann ein Flußdiagramm
die Operationen als Folgeprozeß beschreiben,
doch sind viele der Operationen parallel oder gleichzeitig ausführbar. Außerdem kann die
Reihenfolge der Operationen geändert
werden. Ein Prozeß ist
beendet, wenn seine Operationen abgeschlossen sind. Ein Prozeß kann einem
Verfahren, einem Programm, einer Prozedur, einem Fertigungs- oder
Herstellungsverfahren usw. entsprechen.
-
Eine
Ausführungsform
der Erfindung wird zum Reparieren oder Ersetzen von defekten E/A-Leitungen unter Verwendung
von redundanten Blöcken verwendet.
Blockredundanz wird typischerweise in nichtflüchtigen Speicherelementen,
zum Beispiel Flash-Speicher, verwendet. Flash-Speicher können bei
zahlreichen Anwendungen, die Nichtflüchtigkeit, schnelles Löschen und
eine hohe Dichte erfordern, verwendet werden. Beispiele für diese
Anwendungen schließen
ein: Medien-Wiedergabegeräte,
bildgebende Einheiten, Mikroprozessorsysteme, Kraftfahrzeuganwendungen,
drahtlose Geräte,
Mobiltelefone, Camcorder, Kameras, Drucker, Faxgeräte, Kopiergeräte, Scanner,
Signalverarbeitungssysteme, Kommunikationsgeräte, Netzgeräte, Fernseh-Set-Top-Boxen,
Sampling-Keyboards, Verkaufsautomaten, Personal Digital Assistants
(PDAs) usw. Typische Leistungsmerkmale eines solchen Flash-Speicher-Elementes
können
einschließen:
Blocklösch-
und -programmierautomatisierung, synchrones Burst-Modus-Lesen, asynchrones
Seitenmodus-Lesen, geringer Stromverbrauch (zum Beispiel 3 V bis
3,6 V), Blocksperrung, Blocklösch-/-programmieraussperrung
während
Stromübergängen, kurze
Zugriffszeit (zum Beispiel bis zu 50 MHz Null-Wartezustand), getrennte
Code- und Datenspeicherung usw.
-
1A ist
ein Diagramm, das ein Musikwiedergabegerät 10 veranschaulicht,
in dem eine Ausführungsform
der Erfindung ausführbar
ist. Das Musikwiedergabegerät 10 schließt ein:
einen integrierten Controller 20, einen Speicher-Controller 30,
einen Flash-Speicher 40, ein dynamisches RAM (DRAM) 50,
eine Flüssigkristallanzeige
(LCD) 60, eine optische Schnittstelle 65, eine
serielle Schnittstelle 70, eine drahtlose Schnittstelle 75,
eine Benutzeroberfläche 80,
einen Audiodecoder 85, einen Audio-Digital-Analog-Wandler
(DAC) 90 und eine Lautsprechereinheit 95.
-
Der
integrierte Controller 20 kann eine beliebige Verarbeitungseinheit
sein, die Programme oder Befehle ausführt. Er kann ein Mikroprozessor,
ein Mikrokontroller, ein DSP-Chip oder ein speziell konstruierter
Prozessor für
die Audioverarbeitung sein. Der Speicher-Controller 30 führt auf
dem Flash-Speicher 40 und dem DRAM 50 Speichersteuerfunktionen aus,
um dem Prozessor 20 zu gestatten, auf diese Speicherelemente
zuzugreifen. Der Speicher-Controller 30 kann
auch in den Prozessor 20 integriert sein. Der Flash-Speicher 40 speichert nichtflüchtige Informationen,
zum Beispiel Programme oder Daten. Er kann einen Bootcode, ein BIOS,
Gerätetreiber,
ein Betriebssystem usw. einschließen. Er schließt eine rekonfigurierbare
Speicherschaltung 45 ein. Die rekonfigurierbare Speicherschaltung 45 schließt normale
Speicherblöcke
und redundante Speicherblöcke
ein. Die redundanten Speicherblöcke
können
rekonfiguriert werden, um defekte E/A-Leitungen in den normalen
Speicherblöcken
zu reparieren. Das DRAM 50 speichert Programme und/oder
Daten, einschließlich
Programmen, die durch den Prozessor 20 ausgeführt werden,
um die weiter unten beschriebenen Operationen auszuführen. Das
DRAM kann auch ein Betriebssystem für das Musikwiedergabegerät speichern.
Die LCD 60 zeigt mit geringem Stromverbrauch Status- oder
interaktive Informationen an, zum Beispiel eine grafische Benutzeroberfläche (GUI),
Grafiken, Texte, Menüs,
den Status usw.
-
Die
optische Schnittstelle 65 stellt eine Schnittstelle zu
einem drahtlosen Gerät,
zum Beispiel eine Fernbedienung, bereit. Die optische Schnittstelle 65 kann
der Norm der Infrared Data Association (IrDA) entsprechen. Sie kann
alle geeigneten Schichten für
eine Infrarot-Schnittstelle (Ir-Schnittstelle)
einschließen,
zum Beispiel die physikalische IrDA-Schicht, das IrDA Link Access
Protocol (IrLAP), das IrDA Link Management Protocol (IrLMP), das
Ir Transport Protocol (IrTP) usw. Die Datenübertragungsgeschwindigkeit
für die
Ir-Schnittstelle kann 9,6 Kilobit pro Sekunde (kbps), 19,2 kbps oder
sogar 1,152 Megabit pro Sekunde (Mbps) betragen. Die optische Schnittstelle 65 stellt
eine gerichtete, Punkt-zu-Punkt-Verbindung
mit einem entfernten Gerät
bereit.
-
Die
serielle Schnittstelle 70 stellt eine Schnittstelle zu
einem Gerät
bereit, das eine serielle Kommunikation unterstützt. Beispiele für eine serielle Kommunikation
schließen
die USB-Schnittstelle
(für universellen
seriellen Bus) ein. Geräte,
die an die serielle Schnittstelle 70 angeschlossen sind,
können eine
Massenspeichereinheit, andere Audiowiedergabegeräte usw. einschließen. Die
drahtlose Schnittstelle 75 stellt eine drahtlose Verbindung
unter Verwendung von Signalen bereit, die keine Infrarot-Signale
sind, zum Beispiel Hochfrequenz-Signale (HF-Signale). Ein typischer
Drahtlosstandard ist Bluetooth mit Sicherheitsfunktion. Er bietet
Zugriff auf ein Personal Area Network (PAN) mit Übertragungsentfernungen im
Bereich von 10 Meter bis zu 100 Meter. Die Benutzeroberfläche 80 stellt
eine Schnittstelle zu einem Benutzer, zum Beispiel eine Tastatur, eine
Maus, ein Eingabegerät
usw., bereit. Sie kann auch eine Schnittstelle zu anderen Audiogeräten, zum
Beispiel ein Mikrophon, Stereokopfhörer usw., einschließen.
-
Der
Audiodecoder 85 decodiert Audiodateien oder -daten, zum
Beispiel Ton- oder Musikaufnahmen. Er kann einen Decoder des Typs
Motion Picture Experts Group (MPEG)-1 Audio Layer 3 (MP3) verwenden.
Er kann auch Formatkonvertierungen von einem Audioformat in ein
anderes ausführen.
Die Audioformate können
MP3, Waveform (WAV), Windows Media Audio (WMA), Vector Quantization
Format (VQF), OGG oder jedes andere geeignete Format sein. Der Audio-DAC 90 wandelt
den durch den Audiodecoder generierten digitalen Audiodatenstrom
in analoge Audiosignale um. Es können
andere analoge Bauelemente (nicht gezeigt), zum Beispiel ein Signalkonditionierer,
ein Filter und Verstärker,
eingeschlossen sein, um ein Audiosignal von hoher Qualität bereitzustellen.
Die Lautsprechereinheit 95 kann ein Paar Stereolautsprecher
einschließen.
-
1B ist
ein Diagramm, das ein Rechnersystem 100 veranschaulicht,
in dem eine Ausführungsform
der Erfindung ausführbar
ist. Das System 100 schließt ein: eine Prozessoreinheit 110,
einen Speicher-Controller-Hub (MCH) 120, einen Hauptspeicher 130,
einen Ein-/Ausgabe-Controller-Hub (ICH) 140, einen Flash-Speicher 150,
einen Massenspeicher 160, eine Zusammenschaltleitung 170 und Ein-/Ausgabegeräte (E/A-Geräte) 1801 bis 180K .
-
Die
Prozessoreinheit 110 stellt eine Zentraleinheit eines beliebigen
Architekturtyps dar, zum Beispiel Prozessoren, die Hyper-Threading
verwenden, Sicherheit, Netzwerk, digitale Medientechnologien, Einkernprozessoren,
Mehrkernprozessoren, integrierte Prozessoren, mobile Prozessoren,
Mikrokontroller, digitale Signalprozessoren, superskalare Rechner,
Vektorprozessoren, SIMD-Rechner (einfacher Befehlsstrom, mehrfacher
Datenstrom), CISC- Rechner
(mit erweitertem Befehlsvorrat), RISC-Rechner (mit reduziertem Befehlsvorrat), VLIW-Rechner
(mit sehr langem Instruktionswort) oder Hybridarchitektur.
-
Der
MCH 120 steuert und konfiguriert Speicherelemente und Ein-/Ausgabegeräte, zum
Beispiel den Hauptspeicher 130 und den ICH 140.
Der MCH 120 kann in einen Chipsatz integriert sein, der
mehrere Funktionalitäten,
zum Beispiel Grafik, Medien, isolierter Ausführungsmodus, Busschnittstelle
von Host zu Peripherie, Speichersteuerung, Power Management usw.,
integriert. Der MCH 120 oder die Speicher-Controller-Funktionalität in dem
MCH 120 kann in die Prozessoreinheit 110 integriert
sein. In einigen Ausführungsformen
kann der Speicher-Controller, entweder innerhalb oder außerhalb
der Prozessoreinheit 110, für alle Kerne oder Prozessoren
in der Prozessoreinheit 110 arbeiten. In anderen Ausführungsformen
kann er unterschiedliche Abschnitte einschließen, die getrennt für unterschiedliche
Kerne oder Prozessoren in der Prozessoreinheit 110 arbeiten
können.
-
Der
Hauptspeicher 130 speichert den Systemcode und Systemdaten.
Der Hauptspeicher 130 ist typischerweise mit einem dynamischen
RAM (DRAM), einem statischen RAM (SRAM) oder beliebigen anderen
Speichertypen, einschließlich
derjenigen, die nicht aufgefrischt werden müssen, implementiert.
-
Der
ICH 140 hat eine Anzahl von Funktionalitäten, die
für die
Unterstützung
von E/A-Funktionen bestimmt
sind. Der ICH 140 kann auch, zusammen mit oder getrennt
von dem MCH 120, in einen Chipsatz integriert sein, um
E/A-Funktionen auszuführen. Der
ICH 140 kann eine Anzahl von Schnittstellen- und E/A-Funktionen
einschließen,
zum Beispiel die PCI-Busschnittstelle (für periphere Komponentenverbindung),
die Prozessorschnittstelle, den Interrupt-Controller, den DMA-Controller
(für direkten Speicherzugriff),
die Power-Management-Logik,
den Zeitgeber, den Systemverwaltungsbus (SMBus), die USB-Schnittstelle (für universellen
seriellen Bus), die Massenspeicher-Schnittstelle, die Low-Pin-Count-Schnittstelle
(LPC-Schnittstelle) usw.
-
Der
Flash-Speicher 150 enthält
einen nichtflüchtigen
Speicher, zum Beispiel einen Bootcode, ein BIOS oder beliebige andere
Programme oder Daten, die nichtflüchtig sein müssen. Der
Flash-Speicher 150 kann durch den MCH 120 oder
den ICH 140 gesteuert werden. Er kann eine rekonfigurierbare Speicherschaltung 155 einschließen. Die
rekonfigurierbare Speicherschaltung 155 kann normale Speicherblöcke und
redundante Blöcke
einschließen.
Sie stellt ein wirksames Mittel zum Rekonfigurieren der redundanten
Blöcke
gemäß den Fehlermustern
des Flash-Speichers 150 bereit. Die redundanten Blöcke werden
zum Ersetzen von defekten E/A-Leitungen, die während des Fertigungsprozesses
identifiziert wurden, verwendet.
-
Der
Massenspeicher 160 speichert Archivinformationen, zum Beispiel
einen Code, Programme, Dateien, Daten und Anwendungen. Der Massenspeicher 160 kann
einen CD(Compact Disk)-Nur-Lese-Speicher (ROM) 162, eine
digitale Bildplatte/mehrseitige Digitalplatte (DVD) 164,
ein Diskettenlaufwerk 166 und eine Festplatte 168 oder
beliebige andere magnetische oder optische Speicher einschließen. Der
Massenspeicher 160 stellt einen Mechanismus zum Lesen von
Medien bereit, auf die Maschinen zugreifen können.
-
Die
Zusammenschaltleitung 170 stellt eine Schnittstelle zu
Peripheriegeräten
bereit. Die Zusammenschaltleitung 170 kann eine Punkt-zu-Punkt-Verbindung
darstellen oder an mehrere Geräte
angeschlossen sein. Im Interesse der Klarheit werden nicht alle
Zusammenschaltleitungen gezeigt. Es ist beabsichtigt, daß die Zusammenschaltleitung 170 eine/n
beliebige/n Zusammenschaltleitung oder Bus einschließen kann,
zum Beispiel PCI (periphere Komponentenverbindung), PCI Express,
USB (universeller serieller Bus) und Direct Media Interface (DMI)
usw.
-
Die
E/A-Geräte 1801 bis 180K können beliebige
E/A-Geräte
zum Ausführen
von E/A-Funktionen einschließen. Beispiele
für E/A-Geräte 1801 bis 180K schließen einen
Controller für
Eingabegeräte
(zum Beispiel eine Tastatur, eine Maus, einen Trackball, ein Zeigegerät), eine
Medienkarte (zum Beispiel Audio, Video, Grafik), eine Netzwerkkarte
und beliebige andere periphere Controller ein.
-
2 ist
ein Diagramm, das die in den 1A und 1B gezeigte
rekonfigurierbare Speicherschaltung 45/155 gemäß einer
Ausführungsform der
Erfindung veranschaulicht. Die rekonfigurierbare Speicherschaltung 65 schließt eine
rekonfigurierbare Reparaturschaltung 210 und einen rekonfigurierbaren
Speicher 240 ein.
-
Die
rekonfigurierbare Reparaturschaltung 210 empfängt die
Adreßinformationen
ADMEM[L:1] eines Speicherzugriffes auf das Speicherelement 40/150 (1A und 1B).
Der Speicherzugriff erfolgt durch den Prozessor 20/110 oder
den Speicher-Controller 30 oder den MCH 120/ICH 140.
Sie kann eine Tabellenstruktur 220 und eine Schaltung zum
Decodieren von redundanten Blöcken 230 einschließen. Die
Tabellenstruktur 220 hat eine Anzahl von Einträgen, die
Adressen der defekten E/A-Leitungen in dem rekonfigurierbaren Speicher 240 und die
Adressen der redundanten E/A-Leitungen, die die entsprechenden defekten
E/A-Leitungen ersetzen, enthalten. Die Einträge können während des Testens des Speicherelementes
in der Fertigungsphase programmiert oder konfiguriert werden. Das
Testen deckt die spezifischen E/A-Leitungen auf, die aufgrund von
Fehlern, zum Beispiel Bitleitung-zu-Bitleitung-Kurzschlüsse, defekt
sind. Diese Fehler können unter
Verwendung der redundanten Blöcke
in dem rekonfigurierbaren Speicher 240 wirksam repariert werden.
Die Tabellenstruktur 220 generiert ein Abgleichsignal MATCH,
um anzuzeigen, ob die Speicherzugriffsadresse ADMEM[L:1] einer defekten E/A-Adresse
entspricht. Sie stellt auch die Adreßinformationen der E/A-Leitung
in einem redundanten Block in dem rekonfigurierbaren Speicher 240 bereit, die
zum Ersetzen der defekten E/A-Leitung verwendet werden kann. Die
Schaltung zum Decodieren von redundanten Blöcken 230 decodiert
die Adreßinformationen
der E/A-Leitung, um Signale zum Aktivieren von redundanten Blöcken RBKEN[LS:1]
zum Auswählen
oder Aktivieren des redundanten Blockes, der die ersetzende E/A-Leitung
enthält,
und die E/A-Adresse des redundanten Blockes RBKIO[LR:1] zum Auswählen der
spezifischen ersetzenden E/A-Leitung zu generieren.
-
Der
rekonfigurierbare Speicher 240 enthält normale Speicherblöcke und
redundante Speicherblöcke.
Die redundanten Speicherblöcke
werden zum Reparieren aller defekten Blöcke oder aller defekten E/A-Leitungen
verwendet. Wenn ein Speicherzugriff erfolgt, der die Adresse ADMEM[L:1]
generiert, prüft
die rekonfigurierbare Reparaturschaltung 210, ob der Zugriff
auf eine defekte E/A-Leitung erfolgt. Wenn nicht, negiert sie das
MATCH-Signal, um die redundanten Speicherblöcke zu deaktivieren und den
normalen Speicherblock, der der Speicheradresse entspricht, zu aktivieren,
so daß ein
normaler Zugriff stattfinden kann. Wenn der Zugriff auf eine defekte
E/A-Leitung erfolgt, assertiert die rekonfigurierbare Reparaturschaltung 210 das
MATCH-Signal, um den redundanten Speicherblock, der eine redundante
E/A-Leitung enthält,
die die defekte E/A-Leitung ersetzt, zu aktivieren und den normalen Speicherblock,
der die defekte E/A-Leitung enthält, zu
deaktivieren.
-
3 ist
ein Diagramm, das den in 2 gezeigten rekonfigurierbaren
Speicher 240 mit redundanten Blöcken gemäß einer Ausführungsform
der Erfindung veranschaulicht. Der rekonfigurierbare Speicher 240 schließt einen
Ebenendekodierer 310, M Speicherebenen 3201 bis 320M , einen E/A-Schaltkreis 330 und
S redundante Speicherblöcke 3401 bis 340s ein.
-
Die
Adreßinformationen
ADMEM[L:1] können
aus fünf
Feldern gemäß dem Aufbau
des Speicherelementes bestehen: ein Ebenenadreßfeld PL[LM:1] mit LM Bits,
ein Blockadreßfeld
BL[LN:1] mit LN Bits, ein globales Bitleitungsadreßfeld GY[LP:1]
mit LP Bits, ein lokales Bitleitungsadreßfeld LY[LQ:1] mit LQ Bits
und ein E/A-Adreßfeld
IO[LR:1] mit LR Bits. Die Anzahl der Bits in der Adresse ADMEM[L:1]
ist L und gleich der Summe aus LM, LN, LP, LQ und LR.
-
Das
Speicherelement ist so aufgebaut, daß es M Speicherebenen hat.
Jede Ebene hat N Speicherblöcke.
Jeder Block ist so aufgebaut, daß er P globale Leitungen und
Q lokale Leitungen hat. Es gibt R E/A-Leitungen MIO[R:1]. Die Werte
LM, LN, LP, LQ und LR sind die Logarithmen (Basis 2) der Werte M,
N, P, Q bzw. R. Nehmen wir zum Beispiel an, daß ein Speicherelement eine
Dichte von 128 MB hat. Es gibt 16 Ebenen, und jede Ebene hat 8 Blöcke. Jeder
Block ist in der Form 1K × 1K
= 1 MB aufgebaut. Für
die Spaltenadressierung gibt es in jedem Block 8 globale Bitleitungen,
16 lokale Bitleitungen und 8 E/A-Leitungen. Die Werte sind: M =
16, N = 8, P = 8, Q = 16 und R = 8. Die Feldgrößen sind: LM = 4, LN = 3, LP
= 3, LQ = 4 und LR = 3. Daher ist L gleich 17.
-
Der
Ebenendekodierer 310 decodiert die Ebenenadresse PL[LM:1],
um die M Speicherebenen 3201 bis 320M , auszuwählen oder zu aktivieren. Die Speicherebenen
sind identisch aufgebaut. So schließt zum Beispiel die Ebene 3201 einen Blockdekodierer 3221 und N Blöcke 32511 bis 3251N ein. Entsprechend hat die Ebene 320M einen Blockdekodierer 322M und N Blöcke 325M1 bis 325MN. Der Blockdekodierer 322j decodiert die Blockadreßleitungen BL[LN:1],
um die N Blöcke 325j1 bis 325jM auszuwählen oder
zu aktivieren, wobei j = 1, ..., M. Die E/A-Leitungen der Speicherblöcke bilden
die MIO[R:1]-Leitungen.
-
Der
E/A-Schaltkreis 330 schaltet die E/A-Leitungen zwischen
der MIO[R:1] und der MRIO[R:1] der redundanten Blöcke RBK1 3401 bis RBKS 340S . Das
ermöglicht
das Ersetzen einer E/A-Leitung j der MIO[R:1] durch eine E/A-Leitung
k der MRIO[R:1]. Der E/A-Schaltkreis 330 kann
Zweirichtungstransceiver und einen logischen Schaltkreis zum Realisieren der
Schalt- oder Mapping-Funktion einschließen.
-
Die
S redundanten Blöcke
RBK1 3401 bis RBKS 340S sind Blöcke, die für Reparatur- oder Ersetzungszwecke
bestimmt sind. Diese Blöcke
werden zum Reparieren von defekten E/A-Leitungen verwendet. Es ist beabsichtigt,
daß es
redundante Blöcke
gibt, die zum Reparieren eines vollständigen Blockes in den Speicherebenen 3201 bis 320M verwendet
werden. Die redundanten Blöcke
RBK1 3401 bis RBKS 340S empfangen die globale Bitleitungsadresse
GY[LP:1] und die lokale Bitleitungsadresse LY[LQ:1] von den Adreßinformationen
ADMEM[L:1], um die globalen und lokalen Bitleitungen zu decodieren.
Sie empfangen die Signale zum Aktivieren von redundanten Blöcken RBKEN[LS:1]
und die E/A-Leitungsadresse
des redundanten Blockes RBKIO[LR:1] von der Schaltung zum Decodieren
von redundanten Blöcken 230,
um die einzelnen E/A-Leitungen zu decodieren.
-
4 ist
ein Diagramm, das den Speicherblock 325jk /340i gemäß einer Ausführungsform
der Erfindung veranschaulicht. Der Speicherblock 325jk /340i stellt
den in 3 gezeigten Speicherblock 325jk (j
= 1, ..M, k = 1, .., N) und 340i (i
= 1, .., S) dar. Er schließt
einen globalen Leitungsdekodierer 410, einen lokalen Leitungsdekodierer 420,
einen E/A-Leitungsdekodierer 430 und
ein Speicher-Array 440 ein.
-
Der
globale Leitungsdekodierer 410 decodiert die globale Leitungsadresse
GY[LP:1]. Der lokale Leitungsdekodierer 420 decodiert die
lokale Leitungsadresse LY[LQ:1]. Der E/A-Leitungsdekodierer decodiert die E/A-Leitungsadresse
IO[LR:1] (für
den Speicherblock 325jk , j = 1,
..M, k = 1, .., N) oder RBKIO[LR:1] (für den redundanten Block 340i , i = 1, .., S).
-
Das
Speicher-Array 440 empfängt
die decodierten globalen, lokalen und E/A-Adressen, um die E/A-Leitungen
MIO[R:1] (für
den Speicherblock 325jk , j = 1,
..M, k = 1, .., N) oder MRIO[R:1] (für den redundanten Block 340i , i = 1, .., S) zu aktivieren oder auszuwählen. Das
Speicher-Array 440 wird durch das Blockaktivierungssignal
BKEN, das von dem Blockdekodierer 322j ,
j = 1, ..M (3) ausgeht, oder durch das Blockaktivierungssignal
RBKEN[LS:1], das von der Schaltung zum Decodieren von redundanten
Blöcken 230 (2)
ausgeht, aktiviert.
-
5 ist
ein Diagramm, das die in 2 gezeigte Tabellenstruktur 220 gemäß einer
Ausführungsform
der Erfindung veranschaulicht. Die Tabellenstruktur 220 schließt eine
Tabelle 510, eine Abgleichschaltung 520 und eine
Verknüpfungsschaltung 530 ein.
-
Die
Tabelle 510 und die Abgleichschaltung 520 können Teil
eines inhaltsadressierbaren Speichers (CAM) oder eines Assoziativspeichers
sein. Die Tabelle 510 enthält eine Anzahl von Einträgen 5151 bis 515T .
Jeder Eintrag entspricht einer defekten E/A-Leitung. Die Tabelleneinträge sind
in zwei Teile aufgegliedert: ein defektes Adreßwort (DAW) und das redundante
Adreßwort
(RAW). Das DAW ist die Adresse der defekten E/A-Leitung und das
RAW ist die Adresse der ersetzenden E/A-Leitung in dem redundanten
Block.
-
Das
DAW kann ein Argument oder eine Eingabe für einen CAM sein. Das RAW stellt
die Daten dar, die mit dem Argument verknüpft sind. Wenn dem Argument
eine Eingabe, in diesem Fall die Adreßinformationen ADMEM[L:1],
präsentiert
wird, führt
die CAM-Logik oder die Abgleichschaltung 520 einen Abgleich
oder eine Suche durch, um festzustellen, ob es einen Eintrag gibt,
der das zu der Eingabe ADMEM[L:1] passende Argument aufweist. Wenn
nicht, negiert die Abgleichschaltung 520 ein MATCH-Signal.
Anderenfalls assertiert sie das MATCH-Signal und aktiviert das verknüpfte RAW
als Ausgabe an die Decodierschaltung 230.
-
Das
DAW hat L Bits und ist so aufgebaut, daß es fünf Felder hat, die den Adreßfeldern
für die Speicher-E/A-Leitungen
entsprechen. Diese Felder schließen ein: das Ebenenadreßfeld PL[LM:1]
mit LM Bits, das Blockadreßfeld
BL[LN:1] mit LN Bits, das globale Bitleitungsadreßfeld GY[LP:1]
mit LP Bits, das lokale Bitleitungsadreßfeld LY[LQ:1] mit LQ Bits und
das E/A-Adreßfeld
IO[LR:1] mit LR Bits. Die spezifischen Adreßwerte dieser Felder werden
während des
Testens in der Fertigungsphase des Speicherelementes bestimmt, wenn
die defekten E/A-Leitungen bestimmt werden. Diese Bits werden in
der Fertigungsphase programmiert oder rekonfiguriert, nachdem die
defekten E/A-Leitungen identifiziert worden sind.
-
Das
RAW hat W Bits und ist so aufgebaut, daß es drei Felder hat. Diese
Felder schließen
ein: das redundante Blockadreßfeld
RB[LS:1] mit LS Bits, das redundante E/A-Adreßfeld RIO[LR:1] und ein USE-Feld
mit einem Bit. Die Wortlänge
W des RAW ist gleich der Summe aus LS, LR und 1. Die redundante
Blockadresse RB[LS:1] spezifiziert den für die Ersetzung verwendeten
redundanten Block. Die redundante E/A-Adresse RIO[LR:1] spezifiziert
die E/A-Leitung in dem spezifizierten redundanten Block, die zum
Ersetzen der defekten E/A-Leitung verwendet wird, die in dem entsprechenden
DAW spezifiziert ist. Das USE-Bit wird verwendet, um anzuzeigen, daß der CAM-Eintrag
verwendet worden ist oder der redundante Block verwendet wird. Es
wird assertiert, wenn der Eintrag verwendet wird, und negiert, wenn der
Eintrag nicht verwendet wird. In einer anderen Ausführungsform
kann die RAW-Anzahl der Anzahl der redundanten Blöcke entsprechen.
Jedes RAW entspricht einem redundanten Block. In anderen Ausführungsformen
kann es mehr als ein RAW für
denselben redundanten Block geben.
-
Die
Verknüpfungsschaltung 530 wird
dazu verwendet, das USE-Bit mit dem MATCH-Signal zu verknüpfen, um
die Schaltung zum Decodieren von redundanten Blöcken 230 zu aktivieren.
-
6 ist
ein Diagramm, das die in 2 gezeigte Schaltung zum Decodieren
von redundanten Blöcken 230 gemäß einer
Ausführungsform
der Erfindung veranschaulicht. Die Decodierschaltung 230 schließt einen
Blockdekodierer 610 und eine Verknüpfungsschaltung 620 ein.
-
Der
Blockdekodierer 610 decodiert die redundante Blockadresse
RB[LS:1] in dem redundanten Adreßwort RAW, das aus der Tabelle 510 (5)
generiert wird, um den redundanten Block auszuwählen. Der Blockdekodierer 610 schließt einen LS-zu-S-Dekodierer 615 ein.
Der Dekodierer 615 empfängt
die LS Bits von der redundanten Blockadresse RB[LS:1] und generiert
S Signale RBKEN_1 bis RBKEN_S, um einen redundanten Block zu aktivieren.
Der Blockdekodierer 610 wird durch das Aktivierungssignal
REN aktiviert, das aus der Tabellenstruktur 220 (5)
generiert wird.
-
Die
Verknüpfungsschaltung 620 verknüpft die
redundante E/A-Adresse RIO[LR:1] in dem redundanten Adreßwort RAW
mit der decodierten redundanten Blockadresse, um die redundante
E/A-Leitung in dem ausgewählten
redundanten Block auszuwählen.
Sie schließt
ein ODER-Gatter 622 und ein UND-Gatter 625 ein.
Für LR
Bits gibt es LR solche UND-Gatter 625.
Das ODER-Gatter 622 assertiert ein echtes Signal, wenn
eine der decodierten Ausgaben echt ist, wodurch angezeigt wird,
daß ein
redundanter Block ausgewählt
wird. Das UND-Gatter 625 läßt die redundante E/A-Adresse
RIO[LR:1] durch, so daß diese
zu den redundanten Blöcken
gelangt, um eine E/A-Leitung in dem ausgewählten redundanten Block auszuwählen.
-
7 ist
ein Flußdiagramm,
das einen Prozeß 700 zum
Rekonfigurieren von redundanten Blöcken gemäß einer Ausführungsform
der Erfindung veranschaulicht.
-
Nach
dem START verknüpft
der Prozeß 700 ein
defektes Adreßwort
(DAW) mit einem redundanten Adreßwort (RAW) in jedem Eintrag
in einer Mehrzahl von Einträgen,
die in einer Tabelle gespeichert sind (Block 710). Das
kann einschließen:
Verknüpfen einer
Ebenenadresse, die einer Ebene entspricht, die die defekte E/A-Leitung
enthält,
Verknüpfen
einer Blockadresse, die dem Speicherblock entspricht, Verknüpfen einer
globalen Bitleitungsadresse, die einer globalen Bitleitung der defekten
E/A-Leitung entspricht, Verknüpfen
einer lokalen Bitleitungsadresse, die einer lokalen Bitleitung der
defekten E/A-Leitung entspricht,
und Verknüpfen
einer E/A-Adresse, die der defekten E/A-Leitung entspricht. Danach
gleicht der Prozeß 700 die
Adreßinformationen
eines Speicherzugriffes, der durch einen Prozessor erfolgt, ab (Block 720).
Der Speicherzugriff kann ein Lesezugriff oder ein Schreibzugriff
sein. Dann bestimmt der Prozeß 700,
ob zu dem DAW eine Übereinstimmung
gefunden wurde (Block 730). Wenn nicht, erfolgt kein Speicherzugriff
auf eine defekte E/A-Leitung, und der Prozeß 700 wird mit einem
normalen Zugriff fortgesetzt, wobei der adressierte Block eine nichtdefekte E/A-Leitung
hat, und wird dann beendet. Anderenfalls erfolgt ein Speicherzugriff
auf eine defekte E/A-Leitung, und der Prozeß 700 generiert ein
RAW, das mit dem DAW verknüpft
ist (Block 750). Das RAW entspricht einem redundanten Block.
-
Danach
decodiert der Prozeß 700 das
RAW, um eine redundante E/A-Leitung auszuwählen, die die defekte E/A-Leitung
ersetzt (Block 760). Dann schaltet der Prozeß 700 die
redundante E/A-Leitung auf die defekte E/A-Leitung (Block 770)
und wird dann beendet.
-
Zwar
ist die Erfindung hinsichtlich mehrerer Ausführungsformen beschrieben worden,
doch werden Fachleute erkennen, daß die Erfindung nicht auf die
beschriebenen Ausführungsformen
beschränkt ist,
sondern mit Modifizierungen und Änderungen
im Geiste und innerhalb des Schutzbereiches der beigefügten Ansprüche ausführbar ist.
Die Beschreibung ist somit als veranschaulichend und nicht als einschränkend zu
betrachten.
-
Zusammenfassung
-
Eine
Ausführungsform
der vorliegenden Erfindung ist eine Technik zum Bereitstellen einer
rekonfigurierbaren Reparaturschaltung in einem Speicherelement.
Eine Tabellenstruktur enthält
eine Mehrzahl von Einträgen,
wobei jeder Eintrag ein defektes Adreßwort und ein redundantes Adreßwort hat.
Das redundante Adreßwort
entspricht einem redundanten Block und wird als Reaktion auf einen Speicherzugriff
auf eine defekte Ein-/Ausgabe-Leitung (E/A-Leitung) in einem Speicherblock des
Speicherelementes generiert. Eine Decodierschaltung decodiert das
redundante Adreßwort,
um eine redundante E/A-Leitung in dem redundanten Block auszuwählen, die
die defekte E/A-Leitung ersetzt.