-
Die
Erfindung betrifft ein Halbleiterbauelement, ein Speichermodul und
ein Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff auf
ein Speicherbauelement.
-
Speicherbauelemente
und deren Integration zu kompakten, zumeist standardisierten Speichermodulen
sind Gegenstand sehr vieler elektronischer Geräte, wie PCs, Notebooks, Mobiltelefonen,
etc. Mit der fortwährenden
Steigerung der Speicherkapazität dieser
Speicherbauelemente und Speichermodule erhöht sich die Wahrscheinlichkeit,
dass fehlerhafte Speicherbauelemente oder Speichermodule die korrekte
Funktionalität
dieser Geräte
beeinträchtigen. Daher
werden derartige Speicherbauelemente im Produktionsprozess wiederholt
getestet, um die Kosten nachfolgender Produktionsschritte einzusparen und
damit insgesamt die Ausbeute an vollfunktionstüchtigen Speicherbauelementen
oder Speichermodulen zu erhöhen.
-
Derartige
Tests kommen dabei insbesondere bei DRAM-(Dynamic-Random-Access-Memory)-Speicherbauelementen
und DRAM-Speichermodulen zum Einsatz.
-
Es
sei angemerkt, dass die im Rahmen dieser Anmeldung wiederholt aufgeführte Anwendung der
Erfindung im Zusammenhang mit DRAM-Speicherbauelementen lediglich
beispielhaft und keinesfalls einschränkend für die beschriebenen Ausführungsformen
zu verstehen sind. Der Fachmann wird im Hinblick auf die Beschreibung
erkennen, dass die Erfindung im Zusammenhang mit beliebigen Speicherbauelementen
und Speichermodulen zum Einsatz kommen kann.
-
Aufgrund
der genannten zahlreichen Funktionstests der Speicherbauelemente
auch unter Betriebsbedingungen am Rande der jeweiligen Spezifikationsbereiche
der Speicherbauelemente – wie
z. B. bei höchster
und niedrigster zugelassener Betriebsspannung oder Betriebstemperatur – wird es
mit dem Produktionsreifegrad der Speicherbauelemente zunehmend schwieriger,
Speicherbauelemente, mit deterministischen, „harten” Einzelfehlern bestimmter Speicherzellen
zu finden, die auch bei normalen Betriebsbedingungen „harte”, d. h.
leicht zu reproduzierende Fehler liefern.
-
Nach
der Integration einer vorbestimmten Anzahl von Speicherbauelementen
auf einem Speichermodul werden in den sich anschließenden Speichermodultests
unter verschärften
Testbedingungen üblicherweise
Ausbeuten in Höhe
von 95–99%
funktionstüchtiger
Speichermodule erzielt. Infolgedessen sind Speichermodule mit deterministischen
Fehlern äußerst selten,
da fehlerhafte Speichermodule meist schon in vorangegangenen Testschritten
herausgetestet werden.
-
Damit
ist zum gegenwärtigen
Zeitpunkt keine Lösung
bekannt, die es erlauben würde,
ein System umfassend ein Speichermodul und seine Speicherbauelemente
am Rande der Funktionsstabilität
bei eingeschalteter Fehlerkorrektur-Hardware (ECC-(Error-Correction-Code)-Hardware)
des Speichermoduls zu betreiben und zu testen.
-
Es
ist daher Aufgabe der Erfindung, ein neuartiges Halbleiterbauelement,
ein Speichermodul und ein Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff
auf ein Speicherbauelement zur Verfügung zu stellen.
-
Die
Erfindung erreicht dieses und weitere Ziele durch die Gegenstände der
Ansprüche
1 und 21.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
Gemäß einer
Ausführungsform
betrifft die Erfindung ein Halbleiterbauelement, welches eingerichtet
ist zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff
auf ein Speicherbauelement. Das Halbleiterbauelement umfasst eine
Speicherfehlerschaltung zur Erzeugung wenigstens eines Speicherfehlers
durch eine Modifizierungseinheit zur steuerbaren Modifizierung wenigstens
eines Zugriffsdatums beim Zugriff auf das Speicherbauelement.
-
Gemäß einer
weiteren Ausführungsform
betrifft die Erfindung ein Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff
auf ein Speicherbauelement mit dem Schritt des steuerbaren Modifizierens
wenigstens eines Zugriffsdatums beim Zugriff auf das Speicherbauelement
durch eine Bitfehlerschaltung zur Erzeugung wenigstens eines Bitfehlers.
-
Im
Folgenden werden Aspekte von Ausführungsbeispielen der Erfindung
anhand der beigefügten
Zeichnungen näher
erläutert.
In den Zeichnungen zeigt:
-
1 eine
schematische Darstellung des Aufbau eines DRAM-Speicherbauelements mit Zugriffslogik;
-
2 eine
schematische Darstellung des Ein-/Ausgabebereichs eines Speicherbauelements mit
Bitfehlerschaltung gemäß einer
Ausführungsform der
Erfindung;
-
3 eine
schematische Darstellung der steuerbaren Funktionen und Betriebsparameter
einer zwischen einen Datenzwischenspeicher und die Treiber-/Empfängerschaltung
für eine
Datenleitung eines Speicherbauelements gekoppelten Bitfehlerschaltung
gemäß einer
Ausführungsform
der Erfindung;
-
4 eine
schematische Darstellung der Funktionsweise der Einheiten einer
Bitfehlerschaltung gemäß einer
Ausführungsform
der Erfindung.
-
Im
Folgenden werden hauptsächlich
Ausführungsformen
beschrieben, deren Gegenstand Speicherbauelemente mit einer integrierten
Speicherfehlerschaltung sind, um eine Fehlerkorrektur-Funktionalität beim Zugriff
auf das Speicherbauelement testen zu können.
-
Es
sind jedoch auch Ausführungsformen möglich, die
allgemein ein Halbleiterbauelement betreffen, das eine Speicherfehlerschaltung,
also z. B. eine wie nachfolgend beschriebene Bitfehlerschaltung
umfasst, um eine Fehlerkorrektur-Funktionalität beim Zugriff
auf ein Speicherbauelement testen zu können. Solche Halbleiterbauelemente
können
in Form anderer Komponenten eines Speichermoduls wie Speicher-Controller
oder Speicher-Pufferbauelemente oder grundsätzlich auch als eigenständige Bausteine
implementiert werden, die mit den am Test der Fehlerkorrektur-Funktionalität beim Zugriff
auf ein Speicherbauelement beteiligten Komponenten zusammenwirken.
-
In 1 ist
schematisch der Aufbau eines DRAM-Speicherbauelements dargestellt.
Ein adressierter Zugriff auf das Speicherzellenfeld 10 kann
bei aktivem Taktsignal 24 (Clock, CLK) und Taktaktivierungssignal
(Clock-Enable, CKE) erfolgen durch Anlegen von codierten Zugriffsbefehlen über den
Befehlssignalbus 25 an den Befehlsblock 21 der
Zugriffskontrolleinheit 20 (Access-Control) in Form von standardisierten
Befehlssignalen wie Write Enable (WE), Chip Select (CS), Row Active
Strobe (RAS) und Column Active Strobe (CAS). Parallel kann die Speicheradresse
der aktuell adressierten Speicherzelle, d. h. die aktuelle Zugriffsadresse über den Adresssignalbus 26 an
den Adressblock 22 der Zugriffskontrolleinheit 20 übermittelt
werden.
-
Die
Zugriffskontrolleinheit 20 kann für den Zugriff auf die aktuell
adressierte Speicherzelle mit der Speicherzeilenadresse x (Row)
und der Speicherspaltenadresse y (Column) zusammen mit einem Zugriffskontrollbefehl
(ACT-Befehl) die Speicherzeilenadresse (x-Address) an das Speicherzellenfeld 10 über die
Adressleitungen 13 (A0, ..., A15) an den Speicherzeilenadressdecoder 11 übermitteln.
-
Der
Speicherzeilenadressdecoder 11 (x-Address-Decoder) kann
daraufhin nach einer vorbestimmten Zeitspanne die adressierte Speicherzeile x
auswählen.
Die in den Speicherzellen entlang der ausgewählten Speicherzeile x gespeicherten
Bits können
mittels Schreib-/Leseverstärkern
(Sense Amplifiern (SA)) zur Adressierung durch den Speicherspaltenadressdecoder 12 bereitgestellt
werden. Der nach dem Zugriffskontrollbefehl folgende Schreib- oder
Lesebefehl erfolgt mit übertragener
Speicherspaltenadresse (y-Address) an den entsprechenden Schreib-/Leseverstärker.
-
Ein
wie oben dargestellter Speicherzugriff kann auf verschiedene Bereiche
im DRAM-Speicherbauelement
gleichzeitig erfolgen, so dass über
den parallelen Datenpfad 100 mehrere Bits in einem Datenzwischenspeicher 40 (Prefetch-Buffer)
parallel adressiert zusammengeführt
werden können.
Je nachdem, ob das DRAM-Speicherbauelement in 4, 8 oder 16 Bereichen
organisiert ist, kann die im Datenzwischenspeicher 40 parallel
zu speichernde Datenmenge 4, 8 oder 16 Bit breit sein Zudem erfolgt
der Zugriff auf das Speicherbauelement typischerweise in Form von
Datenbursts, die mehrere Bits umfassen. Daher beträgt die Tiefe
des Datenzwischenspeichers 40 üblicherweise 4 oder 8 Bit,
je nach unterstützter, minimaler
Datenburstlänge
je Datenzugriff. Dies führt zu
Zugriffsdatenbursts, die als sequentielle Folgen einer Anzahl von
Zugriffsdaten verstanden werden können, auf die über jeweils
einen der Anschlüsse der
Datenleitungen 60 (DQ-Anschlüsse DQ0, ..., D15) von außerhalb
des Speicherbauelements zugegriffen werden kann, wobei die Anzahl
der sequentiellen Zugriffsdaten des Datenbursts der Tiefe des Datenzwischenspeichers 40 entspricht.
-
Basierend
auf diesem so genannten Prefetching-Prinzip, kann trotz gleich bleibender
Frequenz des internen Taktsignals 24 die Datenrate externer Zugriffe
auf das DRAM-Speicherbauelement
erhöht werden.
Die Treiber-/Empfängerschaltungen 50 (I/O-Driver) für die Datenleitungen 60 können mit
den logischen Daten des Datenzwischenspeichers 40 angesteuert
werden und diese logischen Daten in entsprechende Spannungspegel
für die
Datenleitungen 60 umwandeln.
-
Bei
Speichermodulen mit einfacher Datenrate (Single-Data-Rate-(SDR)-Modulen)
kann ein auf einer der Datenleitungen 60 zur Verfügung gestelltes Datum
einmal pro Takt den Pegel wechseln. Bei Speichermodulen mit doppelter
Datenrate (Double-Data-Rate-(DDR)-Modulen)
kann der Pegelwechsel zweimal pro Takt erfolgen. Zusätzlich zu
den üblichen
Betriebsmodi eines Speicherbauelements können in bestimmten Ausführungsformen
wie der gemäß 1 Betriebsmodi
und Mittel vorgesehen sein, um einen Bauelementbezeichner oder Chip-Identifier (kurz
Chip-ID) auslesen zu können,
wobei die Chip-ID bei der Fertigung eines DRAM-Speicherbauelements
bauelementspezifisch, d. h. chipindividuell elektrisch oder laser-optisch
eingebrannt (fusing) werden kann. In der Chip-ID sind Herstellungsdaten wie
insbesondere Datum, Losnummer, Wafernummer w und Wafer-x- und -y-Koordinaten
des Speicherbauelements abgelegt, die das Speicherbauelement eineindeutig
identifizieren. Typischerweise umfasst eine Chip-ID 80 Bits.
-
2 zeigt
eine schematische Darstellung des Ein-/Ausgabebereichs eines Speicherbauelements
mit einer Bitfehlerschaltung 45 gemäß einer Ausführungsform
der Erfindung. Darin ist dargestellt, wie ein Datenburst, welcher
8 Bits umfasst, mittels der entsprechenden Treiber-/Empfängerschaltung 50 über den
Ein-/Ausgangsanschluss 61 für die Datenleitung DQ0 extern
zur Verfügung
gestellt werden kann. Der Datenzwischenspeicher 41 für die Datenleitung
DQ0 kann auf einer Art Schieberegister basieren, dessen Bit 0 – verstärkt über die
Treiberstufe der Treiber-/Empfängerschaltung 50 – während eines Burstbetriebs
den Ein-/Ausgangsanschluss 61 für die Datenleitung DQ0 treiben
kann.
-
Gemäß der Ausführungsform
nach 2 können
Bitfehlerschaltungen 45 zwischen jedes der Schieberegister
des Datenzwischenspeichers 40 und die Treiber-/Empfängerschaltungen 50 für die Datenleitungen 60 gekoppelt
werden. Die Implementierung der Bitfehlerschaltungen 45 an
dieser Stelle im Datenpfad ist unkritisch, da dort die Wechselwirkung
mit anderen Einheiten des Speicherbauelements gering ist. In alternativen
Ausführungsformen
können
die Bitfehlerschaltungen 45 jedoch auch an anderen, insbesondere ähnlich unkritischen
Stellen im Datenpfad implementiert werden.
-
Die
Bitfehlerschaltungen 45 können steuerbare Pegel-Inverter
als Modifizierungseinheit 457 umfassen, die je nach eingestellter
Fehlerart Fehler durch einzelne Bit-Invertierungen auf der jeweiligen der
Datenleitungen 60 erzeugen. Somit ist es ermöglicht, „harte” d. h.
deterministische speicheradressenspezifische Fehler auf einer oder
mehreren der Datenleitungen 60 zu generieren. Die Bitfehlerschaltungen 45 können dadurch
ferner Einzel-Bitfehler innerhalb eines Datenbursts auf einer oder
mehreren der Datenleitungen 60 erzeugen.
-
Gerade
diese eingangs genannten, bei getesteten Speicherbauelementen seltenen
deterministischen Speicherfehler erleichtern es erheblich, die Speicherbauelemente
oder die vollständigen
Speichermodule anwendungsnah im Zusammenspiel mit Speicher-Controller oder Speichermodul-Pufferbauelementen
zu testen. Diese Speicherfehler ermöglichen es, die Schnittstellen
(DRAM-Interfaces) zwischen DRAM-Speicherbauelementen
und den genannten weiteren Bauelementen auf dem Speichermodul auf
ihre Fehlertoleranz und ihre Funktionstüchtigkeit bzgl. Fehlerkorrekturfähigkeit
zu testen.
-
D.
h. eine Bitfehlerschaltung 45 gemäß der Ausführungsform in 2 erlaubt,
auf einfache Weise einzelne Bitfehler zu generieren, so dass ein
funktionstüchtiges
Speichermodul gezielt Übertragungsfehler
provozieren kann und somit ein System, umfassend ein Speichermodul
und seine Speicherbauelemente, am Rande der Funktionsstabilität bei eingeschalteter
Fehlerkorrektur-Hardware des Speichermoduls betrieben und testet
werden kann. Des Weiteren erlaubt eine Bitfehlerschaltung 45 eine
weiterhin einfache Adressleitungsdecodierung für Speicherzugriffe beim Einsatz
des Speicherbauelements in verschiedenen Applikationsplattformen.
-
Grundsätzlich könnte eine
Erzeugung von Speicherfehlern auch durch sonstige Manipulationen einzelner
Ein-/Ausgangsanschlüsse
für die
Datenleitungen 60 bewirkt werden. Diese Speicherfehler
glichen in ihrer Wirkung jener Art von Lötfehlern an einem Ein-/Ausgangsanschluss
für eine
Datenleitung, die bei einem Speichermodul auf dieser Datenleitung einen
vollständigen
Betriebsausfall bewirken.
-
Auch
wäre es
grundsätzlich
möglich,
einen Anschluss des Befehlssignalbusses eines DRAM-Speicherbauelements
zu entfernen, um Speicherfehler zu erzeugen. In diesem Fall wäre jedoch das
gesamte Speichermodul oder der gesamte Teil des DRAM-Speicherbauelements
auf allen mit dem Befehl parallel betriebenen Datenleitungen funktionsuntüchtig. Die
beiden letztgenannten genannten Möglichkeiten zur Erzeugung von
Speicherfehlern, d. h. eine Manipulation am Anschluss einer Datenleitung
oder eine Abtrennung eines Anschlusses des Befehlssignalbusses,
wären jedoch
insofern gegenüber
der Bitfehlerschaltung 45 nachteilig, als die sich ergebenden
Speicherfehlerraten so hoch wären, dass
das Speichermodul nicht booten oder zu einem Systemabsturz führen würde.
-
Ferner
wäre es
auch denkbar, kurzzeitige Speicherfehler mittels einer mechanischen
Lösung zu
erzeugen, indem am Anschluss einer Datenleitung physikalisch eine
Steckverbindung geöffnet
und wieder geschlossen wird. Allerdings gehen mechanische Kontakt-
oder Schaltkonstruktionen mit langsamen Schaltvorgängen einher,
so dass in der Regel nur mit Hilfe elektrischer Schalter ein definierter,
hinreichend kurzzeitiger Störimpuls
generiert werden könnte.
Jedoch sind im Hinblick auf die sich dabei ergebenden Schaltvorgänge im Zeitintervall
von übertragenen
Daten mit 1–2
ns Bitdauer auch solche elektrische Schalter zu langsam, um zielgerichtet
und reproduzierbar einzelne Speicherfehler „dosiert” zu generieren. Auch derartige
mittels einfacher Erzeugungsmechanismen generierte Speicherfehler
hätten
Systemabstürze
zur Folge und erlaubten daher nicht, die Schnittstellen zwischen
Speicherbauelementen und den weiteren Bauelementen auf einem Speichermodul
auf ihre Fehlertoleranz und ihre Funktionstüchtigkeit bzgl. Fehlerkorrekturfähigkeit
zu testen.
-
D.
h. rückblickend
wäre jeder
Versuch, auf mechanischem oder elektro-mechanischem Wege Speicherfehler
zu generieren, zu langsam, nicht deterministisch oder nicht dosiert
genug, um Fehler einzelner Speicherzellen zum Testen des Speichersystems
auf Fehlerkorrektur-Funktionalität
(ECC-(Error-Correction-Code)-Funktionalität) simulieren zu können.
-
In 3 ist
eine Ausführungsform
der Bitfehlerschaltung 45 schematisch mit ihren steuerbaren Funktionen
und Betriebsparametern dargestellt. Insbesondere werden darin die
programmierbaren und quasi-zufällig
einstellbaren Fehlererzeugungsparameter erläutert. Wie bereits in der Ausführungsform in 2 ist
die Bitfehlerschaltung 45 zwischen den Datenzwischenspeicher 41 und
die DQ-Treiber-/Empfängerschaltung 50 der
Datenleitung DQ0 gekoppelt und kann zur gezielten Erzeugung eines Bitfehlers
eine Bit-Inversion auf der Datenleitung DQ0 (DQ-Bit-Inversion) auslösen. Entsprechende Bitfehlerschaltungen
können
zwischen die weiteren der Datenzwischenspeicher 40 und
die zugehörigen der
DQ-Treiber-/Empfängerschaltungen 50 gekoppelt
sein.
-
In
der Ausführungsform
der Bitfehlerschaltung 45 nach 3 können die
steuerbaren Funktionen und Betriebsparameter, d. h. die Einstellungen der
Bitfehlerschaltung 45 durch wenigstens eine Einstellung
eines Modus-Registers 460 (Mode-Register Setting) und/oder
wenigstens eine Testmodussequenz (Test Mode Sequence) programmierbar
eingestellt werden.
-
Zum
Beispiel kann in der Ausführungsform der
Bitfehlerschaltung 45 nach 3 der Schreib-/Lesefehlerauswahlbereich 465 des
Modus-Registers 460 steuern, ob die Bitfehlerschaltung 45 mittels
der Schreib-/Lesefehler-Multiplexereinheit 455 (WR-RD-Multiplexer)Schreib-
und/oder Lesefehler erzeugen soll. Dazu kann das Register für Bit 0 des
Datenzwischenspeichers 41 für die Datenleitung DQ0 mit
den XOR-Gattern 4571, 4572 als
Schreib- bzw. Lesefehler-Auslöser
gekoppelt werden. D. h. bei der Erzeugung eines Lesefehlers steuert
das Register für
Bit 0 des Datenzwischenspeichers 41 für die Datenleitung DQ0 einen
Eingang des lesefehlerauslösenden
XOR-Gatters 4571 an. Umgekehrt steuert bei der Erzeugung
eines Schreibfehlers der Ausgang des schreibfehlerauslösenden XOR-Gatters 4572 das
Register für
Bit 0 des Datenzwischenspeichers 41 für die Datenleitung DQ0 an.
-
Die
Schreib-/Lesefehler-Multiplexereinheit 455 kann für die Auslösung einzelner
Bitfehler gezielt ein Fehlerauslösesignal
(Fail-Trigger) in Form eines logischen „1”-Pulses als weiteres Eingangssignal eines
der XOR-Gatter 4571, 4572 bereitstellen. Dies bewirkt
die Invertierung eines aus dem Register für Bit 0 des Datenzwischenspeichers 41 für die Datenleitung
DQ0 ausgelesenen Logikwerts beim Erzeugen eines Lesefehlers bei
einem Lesezugriff auf das Speicherbauelement oder die Invertierung
eines von der DQ-Treiber-/Empfängerschaltung 50 empfangenen
Logikwerts beim Erzeugen eines Schreibfehlers bei einem Schreibzugriff
auf das Speicherbauelement.
-
Anstelle
der XOR-Gatter sind jedoch auch andere Modifizierungsschaltungen
als Teile der Modifizierungseinheit denkbar, wie z. B. NAND, AND-Gatter
oder allgemein Schaltungen zur gesteuerten, wenigstens zeitweisen
Modifizierung des zu lesenden oder zu schreibenden Logikwerts.
-
Für die getrennte
Abschaltbarkeit der Erzeugung von Schreib- und/oder Leserfehlern
können beispielsweise
zwischen den Ausgängen
für das Schreib-
und Lesefehlerauslösesignal
der Schreib-/Lesefehler-Multiplexereinheit 455 und den Eingängen der
XOR-Gatter 4571, 4572 jeweils Multiplexer einer
Fehlererzeugungs-Ein-/Ausschalteinheit 456 vorgesehen
sein, welche wahlweise die genannten Schreib- bzw. Lesefehlerauslösesignale oder eine logische „0” zum Ausschalten
der jeweiligen Fehlererzeugung zu den XOR-Gattern 4571, 4572 durchleiten.
Die Einstellung der Fehlererzeugungs-Ein-/Ausschalteinheit 456 kann
durch den Fehlererzeugungs-Ein-/Ausschaltbereich 466 des Modus-Registers 460 erfolgen.
-
Dies
erlaubt eine zuschaltbare Fehlerinjektion beim Lesen und/oder Schreiben
von Daten über die
Schnittstelle des DRAM-Speicherbauelements.
-
Damit
nicht alle DRAM-Speicherbauelemente eines Speichermoduls zum selben
Zeitpunkt Fehler im Bezug auf Speicherzellen mit einander entsprechenden
Speicherzellen generieren, kann z. B. die nichtflüchtige,
eingebrannte Chip-ID 30 dazu verwendet werden, die Speicheradresse,
für die,
wenn auf sie zugegriffen wird, ein Bitfehler erzeugt werden soll,
d. h. die Fehleradresse quasi-zufällig zu bestimmen. In alternativen
Ausführungsformen
können
jedoch auch andere Bauelementspezifika zur quasi-zufälligen Bestimmung
der Fehleradresse wie z. B. andere Startvektoren für ein Pseudo-Zufallszahlengenerator-Schieberegister
eingebrannt oder durch eine andere Außenbeschaltung der Bitfehlerschaltung 45 implementiert
werden.
-
Zur
Bestimmung der Fehleradresse kann wie in der Ausführungsform
der Bitfehlerschaltung 45 in 3 die Bitfehlerschaltung 45 ein
zumindest Teile der Chip-ID 30 aufnehmendes
24-bit Register umfassen, in dem z. B. die Wafernummer w, die Wafer-x-Koordinate
und die Wafer-y-Koordinate des jeweiligen Speicherbauelements zwischengespeichert werden
können.
Ferner kann in der Bitfehlerschaltung 45 ein weiteres Register
vorgesehen sein um, die Speicheradresse 15 zwischenzuspeichern,
die als Startadresse für
den aktuellen Zugriffsdatenburst bestimmt ist. Diese Speicheradresse
kann neben der Speicherzeilenadresse x und der Speicherspaltenadresse
y auch die Speicherbankadresse z umfassen.
-
Eine
Adressvergleichseinheit 451 (Fail-Address-Matching-Unit)
erhält
der Werte des Teile der Chip-ID 30 aufnehmenden 24-bit
Registers und des weiteren Registers für die aktuelle Zugriffsadresse
als Eingangsdaten, um daraus wenigstens ein Adressübereinstimmungssignal
bzgl. der Speicherzeilenadresse x und/oder der Speicherspaltenadresse
y des Zugriffsdatums oder des Zugriffsdatenbursts zu erzeugen. Dieses
wenigstens eine Adressübereinstimmungssignal
kann als Basis für
ein Fehlerauslösesignal
genutzt werden.
-
Da
es unwahrscheinlich ist, dass Speicherbauelemente mit der gleichen
Wafer-x- und -y-Koordinate auf dem gleichen Speichermodul verbaut
werden, ist es ebenso unwahrscheinlich, dass die Bitfehlerschaltungen
der entsprechenden Speicherbauelemente Speicherfehler in einander
entsprechenden Speicheradressen erzeugen. D. h. auf die oben beschriebene
Weise kann die bauelemente-, d. h. chipspezifische Zufälligkeit
der Fehlererzeugung durch die Chip-ID 30 so gesteuert werden,
dass – trotz
gleicher Fehlererzeugungshardware in jedem Speicherbauelement – die Fehlererzeugung
chipindividuell beeinflusst werden kann. Im Übrigen kann die Fehlererzeugungshardware
durch weitere Einstellungen des Modus-Registers 460 gesteuert
werden.
-
Auf
die oben dargestellte Weise ist es ferner möglich, Speicherfehler der Speicherbauelemente auf
einem Speichermodul bauelementspezifisch unterschiedlich „dosiert” und damit
auch zeitlich „dosiert” zu verteilen,
so dass auch z. B. 18 parallel verdrahtete DRAM-Speicherbauelemente
auf 72 Bit Breite einen korrigierbaren einzelnen Fehler in einem Datenburst
auf einer vorbestimmten Datenleitung erzeugen können. Dazu können die
integrierten Bitfehlerschaltungen 45 aller über einen
Befehlsadressbus parallel angeschlossenen DRAM-Speicherbauelemente
eines Speichermoduls über
vorbestimmte Einstellungen des Modus-Registers 460 oder
eine Testmodussequenz programmiert werden.
-
Ferner
ermöglichen
wie oben beschriebene Konfigurationen für die Schnittstelle eines DRAM-Speicherbauelements,
an möglichst
vielen Adressbitpositionen (z. B. 16 Adressbitpositionen, 3 Bank-Auswahlbitpositionen)
und allen Datenbitpositionen eines Datenbursts zeitlich quasi-zufällige, aber adressspezifisch
deterministische Speicherfehler zu generieren.
-
Wie
oben erläutert
kann mittels der Adressvergleichseinheit 451 prinzipiell
für jeden
aktuellen Zugriffsdatenburst ein Fehlerauslösesignal erzeugt werden, wenn
auf eine Speicherzelle zugegriffen wird, deren Adresse mit einer
der aus der Chip-ID 30 abgeleiteten, bauelementspezifischen
Fehleradressen übereinstimmt,
d. h. wenn die aktuelle Zugriffsadresse mit der Fehleradresse übereinstimmt.
-
Als
relevante Bestandteile der Zugriffsadresse können je nach eingestellter
Fehlerart nur die entsprechende Speicherzeilenadresse x, nur die
entsprechende Speicherspaltenadresse y oder eine Einzeladresse bestehend
aus Speicherzeilenadresse x und Speicherspaltenadresse y ausgewählt werden. Zur
Auswahl der Fehlerart kann eine Fehlerartauswahleinheit 452 (Fail-Type-Selector-Unit)
dazu eingerichtet sein, ein Adressübereinstimmungssignal umfassend
ein Speicherzeilenadressübereinstimmungssignal
und ein Speicherspaltenadressübereinstimmungssignal
seitens der Adressvergleichseinheit 451 zu empfangen und
daraus je nach Einstellung ein Fehlerauslösesignal zu erzeugen. Die Einstellung der
Fehlerart (xy-Fail-Type-Set) kann über den Fehlerartauswahlbereich 462 des
Modus-Registers 460 erfolgen, welcher die Fehlerartauswahleinheit 452 ansteuert.
-
Die
Ausführungsform
der Bitfehlerschaltung 45 in 3 umfasst
weiterhin eine Burst-Bit-Fehlereinfügeeinheit 453 (Burst-Bit
Setting Unit) zur Einstellung, welches Bit im jeweiligen Datenburst
fehlerhaft sein soll. Durch die Burst-Bit-Fehlereinfügeeinheit 453 kann
das im Zugriffsdatenburst ausfallende, d. h. fehlerhafte Bit, quasi-zufällig basierend
auf der Chip-ID 30 ausgewählt werden, um prinzipiell
jedes der Bits eines Datenbursts beim Test des Schnittstelle des
DRAM-Speicherbauelements ausfallen lassen zu können.
-
Ferner
umfasst die Ausführungsform
der Bitfehlerschaltung 45 in 3 eine Fehlerfrequenzeinheit 454,
mit der die Fehlerhäufigkeit
eingestellt werden kann. Die Einstellung des Werts der Fehlerhäufigkeit
kann dabei über
den Fehlerfrequenzbereich 464 des Modus-Registers 460 erfolgen,
welcher die Fehlerfrequenzeinheit 454 ansteuert. Diese
Einstellung kann z. B. bewirken, dass eine Art Fehlerauslösesignal-Filter
entweder alle oder z. B. nur jedes 2., 4., 8., ... der Burst-Bit-Fehlerauslösesignale
seitens der Burst-Bit-Fehlereinfügeeinheit 453 weiterleitet damit
die Fehlerhäufigkeit
eingestellt werden kann. Die Fehlerfrequenzeinheit 454 kann
wie in der Ausführungsform
nach 3 mit dem (gefilterten) Fehlerauslösesignal
die Schreib-/Lesefehler-Multiplexereinheit 455 ansteuern.
-
Das
Speicherbauelement gemäß der Ausführungsform
nach 3 umfasst damit eine leicht zu implementierende,
Platz sparende Bitfehlerschaltung 45 auf einem funktionalem
DRAM-Speicherbauelement, die hinzuschaltbar sein kann und in regelmäßigen, jedoch
einstellbaren Abständen
bauelementspezifische, d. h. von DRAM-Speicherbauelement zu DRAM-Speicherbauelement
unterschiedliche Speicherfehler generiert. Somit ist es möglich, beispielsweise
18 Stück
x4 organisierter DRAM-Speicherbauelemente
in x72 Organisation parallel zu betreiben, ohne dass zwingend mehrere oder
alle DRAM-Speicherbauelemente zur gleichen Zeit einen Fehler generieren
würden,
der dann zu einem durch die Fehlerkorrektur unkorrigierbaren Fehler
(ECC-Fehler) und einem nachfolgenden Systemabsturz führen würde.
-
Ein
Speichermodul mit Speicherbauelementen der Ausführungsform nach 3 erlaubt
somit, ein funktionierendes Speichermodul der Art betreiben zu können, so
dass parallel betriebene Speicherbauelemente des Speichermoduls
deterministische, „harte” Fehler
mit einstellbarer Häufigkeit
generieren können
und weitere Bauelemente eines Speichermoduls, wie z. B. Speicher-Pufferbauelemente
oder Speicher-Controller, im Hinblick auf ihre Fehlertoleranz durch
den Einsatz ihrer eingebauten Fehlererkennungs-Hardware überprüft werden können.
-
4 zeigt
in einem weiteren Ausführungsbeispiel
der Bitfehlerschaltung 45 schematisch und etwas detaillierter
die Funktionsweise der Adressvergleichseinheit 451, der
Fehlerartauswahleinheit 452, der Burst-Bit-Fehlereinfügeeinheit 453 zur
Einstellung, welches Bit im jeweiligen Datenburst fehlerhaft sein
soll, der Fehlerfrequenzeinheit 454 und der Schreib-/Lesefehler-Multiplexereinheit 455.
-
Im
obersten Bereich der 4 ist eine mögliche Implementierung der
Adressvergleichseinheit 451 dargestellt. Wie bereits das
Ausführungsbeispiel nach 3 umfasst
die Adressvergleichseinheit 451 in 4 ein Teile
der Chip-ID 30 aufnehmendes Register, in dem die Wafernummer
w, die Wafer-x-Koordinate und die Wafer-y-Koordinate des jeweiligen Speicherbauelements
zwischengespeichert werden können.
Ferner ist in der Adressvergleichseinheit 451 ein weiteres
Register vorgesehen, um die Speicheradresse 15, genauer
die Speicherstartadresse zwischenzuspeichern, die für den aktuellen
Zugriffsdatenburst bestimmt ist. Diese Speicheradresse umfasst neben
der Speicherzeilenadresse x und der Speicherspaltenadresse y auch
die Speicherbankadresse z.
-
Die
Adressvergleichseinheit 451 kann die Speicherzeilenadresse
x und die Speicherbankadresse z zu einer 16 Bit breiten effektiven
Speicherzeilenadresse x' zusammenfassen.
Diese effektive Speicherzeilenadresse x' kann über ein entsprechend breites
XOR-Gatter mit der aus der Chip-ID 30 abgeleiteten Fehlerzeilenadresse
verknüpft
werden, um das Speicherzeilenadressübereinstimmungssignal 4511 zu
erzeugen. Analog kann die Speicherspaltenadresse y des aktuellen
Zugriffsdatenbursts über ein
weiteres XOR-Gatter mit der aus der Chip-ID 30 abgeleiteten
Fehlerspaltenadresse verknüpft
werden, um das Speicherspaltenadressübereinstimmungssignal 4512 zu
erzeugen.
-
Die
Funktion der Adressvergleichseinheit 451 der Ausführungsform
in 4 ist somit, dass basierend auf einer quasi-zufälligen Fehleradresse,
die z. B. aus der Chip-ID 30 ableitbar ist, ein Adressübereinstimmungsereignis
(Address-Match-Event) bzgl. Der effektiven Speicherzeilenadresse
x' und der Speicherspaltenadresse
y des Zugriffsdatums oder Zugriffsdatenbursts erzeugt wird.
-
In
der Ausführungsform
nach 4 steuern das Speicherzeilenadressübereinstimmungssignal 4511 und
das Speicherspaltenadressübereinstimmungssignal 4512 die
Fehlerartauswahleinheit 452 an. Zur Auswahl der Fehlerart
kann die Fehlerartauswahleinheit 452 wie in 4 dargestellt
sechs verknüpfte
XOR-Gatter aufweisen, um durch Verknüpfung des Speicherzeilenadressübereinstimmungssignals 4511,
des Speicherspaltenadressübereinstimmungssignals 4512 und
den Werten im Fehlerartauswahlbereich 462 des Modus-Registers 460 die
gewünschte
Fehlerart auszuwählen.
-
So
kann z. B. durch den Wert im Fehlerartauswahlbereich 4621 des
Modus-Registers 460 die x-Fehlerart
ausgewählt
werden, bei der eine Adressübereinstimmung
nur zwischen der Speicherzeilenadresse des aktuellen Zugriffsdatenbursts
und der Fehlerzeilenadresse überprüft wird.
Durch den Wert im Fehlerartauswahlbereich 4622 des Modus-Registers 460 kann
demgegenüber
die y-Fehlerart ausgewählt
werden, bei der eine Adressübereinstimmung nur
zwischen der Speicherspaltenadresse des aktuellen Zugriffsdatenbursts
und der Fehlerspaltenadresse überprüft wird.
Und schließlich
kann durch den Wert im Fehlerartauswahlbereich 4623 des
Modus-Registers 460 die x- und -y-Fehlerart ausgewählt werden,
bei der eine Adressübereinstimmung
sowohl zwischen der Speicherzeilenadresse des aktuellen Zugriffsdatenbursts
und der Fehlerzeilenadresse als auch zwischen der Speicherspaltenadresse
des aktuellen Zugriffsdatenbursts und der Fehlerspaltenadresse überprüft wird.
-
Durch
die genannte und in 4 dargestellte Verknüpfung erzeugt
die Fehlerartauswahleinheit 452 ein entsprechendes vorläufiges Fehlerauslösesignal 4521.
-
Die
Burst-Bit-Fehlereinfügeeinheit 453 zur Einstellung,
welches Bit im jeweiligen Datenburst fehlerhaft sein soll, kann
wie in der Ausführungsform nach 4 in
einer Art von – z.
B. 8-Bit – Schieberegister 4531 aufgebaut
sein. Zu Beginn des Betriebs der Bitfehlerschaltung 45 wird
eine logische „1” als Startwert 4533 an
die erste Position in dem zunächst vollständig auf
logische Nullen zurückgesetzten Schieberegister 4531 geschrieben
und der Inhalt des Schieberegisters 4531 gemäß einem
aus der Chip-ID 30 abgeleiteten Wert entsprechend oft in
eine festgelegte Richtung zyklisch verschoben.
-
Während der
Dauer eines Datenbursts, dessen Andauern dem Schieberegister 4531 über den Datenbursttakt 4532 der
aktuellen Datenleitung DQx signalisiert wird, wird mit jedem Datenbit
dieses Datenbursts der Inhalt des Schieberegisters 4531 um ein
Bit in eine festgelegte Richtung zyklisch verschoben. Falls ein
vorläufiges
Fehlerauslösesignal 4521 während des
entsprechenden Datenbursts aktiv ist und gleichzeitig das Burst-Inversions-Bit
an der letzten Stelle des Schieberegisters 4531 am Ende
des Burstdurchlaufs gesetzt ist, wird über eine XOR-Verknüpfung der
letztgenannten Werte ein Burst-Bit-Fehlerauslösesignal 4534 (Burst-Bit-Trigger)
erzeugt, um zu bestimmen, welches Bit im jeweiligen Datenburst fehlerhaft
sein soll. Dadurch können infolge
unterschiedlicher Chip-IDs 30 die Fehler an unterschiedlichen
Positionen im jeweiligen Datenbursts quasi-zufällig generiert werden.
-
In
der Ausführungsform
nach 4 können demnach
folgende Fehlerarten unterstützt
sein:
- – Einzel-DQ-Bit-Burst-Fehler
und Einzel-DQ-Fehler abhängig
entweder von einer vorbestimmten Speicherzeilen- oder -spaltenadresse,
- – Einzel-Bitfehler,
sowohl abhängig
von der Speicherzeilenadresse als auch von der Speicherspaltenadresse.
-
In
der nachgelagerten Fehlerfrequenzeinheit 454 kann die Anzahl
der fehlerhaften Datenbursts gezählt
und das Burst-Bit-Fehlerauslösesignal 4534 erst
an die Schreib-/Lesefehler-Multiplexereinheit 455 weitergeleitet
werden, wenn ein bestimmter Fehler z. B. 1-, 2-, 4-, 8-, ... mal
registriert worden ist. Die Fehlerfrequenzeinheit 454 dient
damit quasi zur Einstellung des Grads eines weichen Fehlers, der
tatsächlich
erst bei mehrmaligem Zugriff eintritt.
-
Hierzu
kann die Fehlerfrequenzeinheit 454 einen Fehlerfrequenzmultiplexer 4542 aufweisen, dem
für das
Zählen
von Fehlern auf einer bestimmten Datenleitung das Aktivitätssignal 4541 der
aktuellen Datenleitung DQx zugeführt
wird. Durch eine weitere XOR-Verknüpfung des Ausgangsignals des
Fehlerfrequenzmultiplexers 4542 mit dem Burst-Bit-Fehlerauslösesignal 4534 kann
damit das Fehlerauslösesignal 4543 an
die Schreib-/Lesefehler-Multiplexereinheit 455 weitergeleitet
werden.
-
In
der Schreib-/Lesefehler-Multiplexereinheit 455 kann durch
den Wert in einem Schreibfehlerauswahlbereich 4651 des
Modus-Registers 460 eingestellt werden, ob die Schreib-/Lesefehler-Multiplexereinheit 455 Schreibfehler
erzeugen soll. Dazu wird dieser Wert mit dem Fehlerauslösesignal 4543 und einem
Aktivitätssignal 4551 eines
Schreibzugriffs auf aktuelle Datenleitung DQx über ein entsprechendes XOR-Gatter
verknüpft,
um ein vorläufiges
Schreibfehler-Fehlerauslösesignal
zu erzeugen.
-
Ferner
kann durch den Wert in einem Lesefehlerauswahlbereich 4652 des
Modus-Registers 460 eingestellt
werden, ob die Schreib-/Lesefehler-Multiplexereinheit 455 Lesefehler
erzeugen soll. Dazu wird dieser Wert mit dem Fehlerauslösesignal 4543 und
einem Aktivitätssignal 4552 eines
Lesezugriffs auf aktuelle Datenleitung DQx über ein entsprechendes XOR-Gatter
verknüpft,
um ein vorläufiges Lesefehler-Fehlerauslösesignal
zu erzeugen.
-
In
der sich anschließenden
Fehlererzeugungs-Ein-/Ausschalteinheit 456 können für die getrennte
Abschaltbarkeit der Erzeugung von Schreib- und/oder Leserfehlern
das vorläufige
Schreib- und das vorläufige
Lesefehler-Fehlerauslösesignal über jeweils
ein XOR-Gatter mit dem Wert des Schreibfehler-Ein-/Ausschaltbereichs 4661 des
Modus-Registers 460 bzw.
dem Wert des Lesefehler-Ein-/Ausschaltbereichs 4662 des
Modus-Registers 460 verknüpft werden,
um das Schreibfehler-Fehlerauslösesignal 471 bzw.
das Lesefehler-Fehlerauslösesignal 472 zu
erzeugen. Die beiden letztgenannten Signale können dann schreib- bzw. lesefehlerauslösende XOR-Gatter
wie die XOR-Gatter 4571, 4572 nach 3 zur
tatsächlichen
Bitfehlererzeugung ansteuern.
-
1
- 10
- Zellenfeld
eines DRAM-Speicherbauelements
- 11
- Speicherzeilenadressdecoder
(„x-Addressdecoder”)
- 12
- Speicherspaltenadressdecoder
(„y-Addressdecoder”)
- 13
- Adressleitungen
(A0, ..., A15)
- 20
- Zugriffskontrolleinheit
(„Access-Control”)
- 21
- Befehlsblock
der Zugriffskontrolleinheit („CMD”)
- 22
- Adressblock
der Zugriffskontrolleinheit („ADDR”)
- 23
- Modus-Register-Block
der Zugriffskontrolleinheit („Modus
Register Setting, MRS”)
- 24
- Taktsignal
(„CLK”)
- 25
- Befehlssignalbus
(für Befehlssignale
wie z. B. „WE”, „CS”, „RAS”, „CAS”)
- 26
- Adresssignalbus
- 30
- Chip-ID
- 40
- Datenzwischenspeicher
(„Pefetch-Buffer”)
- 50
- Treiber-/Empfängerschaltung
für eine
Datenleitung („DQ-I/O-Buffer”)
- 60
- Datenleitungen
(DQ0, ..., DQ15)
- 100
- Datenpfad
-
2
- 41
- Datenzwischenspeicher
für Datenleitung
DQ0
- 45
- Bitfehlerschaltung
(„Bit-Fail
ASIC”)
- 61
- Ein-/Ausgangsanschluss
für Datenleitung DQ0
-
3
- 15
- Speicheradresse
des aktuellen Zugriffsdatenbursts
- 451
- Adressvergleichseinheit
- 452
- Fehlerartauswahleinheit
- 453
- Burst-Bit-Fehlereinfügeeinheit
- 454
- Fehlerfrequenzeinheit
- 455
- Schreib-/Lesefehler-Multiplexereinheit
- 456
- Fehlererzeugungs-Ein-/Ausschalteinheit
- 457
- Modifizierungseinheit
- 4571
- XOR
zur Lesefehlerauslösung
- 4572
- XOR
zur Schreibfehlerauslösung
- 460
- Modus-Register/(Test-Modus) („MRS”/„TM”)
- 462
- Fehlerartauswahlbereich
des Modus-Registers
- 464
- Fehlerfrequenzbereich
des Modus-Registers
- 465
- Schreib-/Lesefehlerauswahlbereich
des Modus-Registers
- 466
- Fehlererzeugungs-Ein-/Ausschaltbereich des
Modus-Registers
-
4
- 4511
- Speicherzeilenadressübereinstimmungssignal
- 4512
- Speicherspaltenadressübereinstimmungssignal
- 4521
- vorläufiges Fehlerauslösesignal
- 4531
- Schieberegister
der Burst-Bit-Fehlereinfügeeinheit
- 4532
- Datenbursttakt
der aktuellen Datenleitung DQx
- 4533
- Startwert-„1” nach Zurücksetzung
des Schieberegisters
- 4534
- Burst-Bit-Fehlerauslösesignal
- 4541
- Aktivitätssignal
der aktuellen Datenleitung DQx
- 4542
- Fehlerfrequenzmultiplexer
- 4543
- Fehlerauslösesignal
- 4551
- Aktivitätssignal
eines Schreibzugriffs auf aktuelle Datenleitung DQx
- 4552
- Aktivitätssignal
eines Lesezugriffs auf die aktuelle Datenleitung DQx
- 4621
- Fehlerartauswahlbereich
des Modus-Registers für
die x-Fehlerart
- 4622
- Fehlerartauswahlbereich
des Modus-Registers für
die y-Fehlerart
- 4623
- Fehlerartauswahlbereich
des Modus-Registers für
die x- und -y-Fehlerart
- 4651
- Schreibfehlerauswahlbereich
des Modus-Registers
- 4652
- Lesefehlerauswahlbereich
des Modus-Registers
- 4661
- Schreibfehler-Ein-/Ausschaltbereich
des Modus-Registers
- 4662
- Lesefehler-Ein-/Ausschaltbereich
des Modus-Registers
- 471
- Schreibfehler-Fehlerauslösesignal
- 472
- Lesefehler-Fehlerauslösesignal