-
Die
Erfindung betrifft einen Speicherpuffer, ein Verfahren zum Betrieb
des Speicherpuffers, ein Speichermodul mit einem Speicherpuffer,
ein Testverfahren für
das Speichermodul und ein Betriebsverfahren für das Speichermodul.
-
Halbleiter-Bauelemente,
z.B. entsprechende, integrierte (analoge bzw. digitale) Rechenschaltkreise,
Halbleiter-Speicherbauelemente wie z.B. Funktionsspeicher-Bauelemente
(PLAs; PALs, etc.) und Tabellenspeicher-Bauelemente (z.B. ROMs oder RAMs,
insbesondere SRAMs und DRAMs), etc. werden im Verlauf des Herstellprozesses
umfangreichen Tests unterzogen.
-
Zur
gemeinsamen Herstellung von jeweils einer Vielzahl von (i.A. identischen)
Halbleiter-Bauelementen wird jeweils ein sog. Wafer (d.h. eine dünne, aus
einkristallinem Silizium bestehende Scheibe) verwendet. Der Wafer
wird entsprechend bearbeitet (z.B. nacheinander einer Vielzahl von
Beschichtungs-Belichtungs-, Ätz-, Diffusions-,
und Implantations-Prozess-Schritten,
etc. unterzogen), und daraufhin z.B. zersägt (oder z.B. geritzt, und
gebrochen), so dass dann die einzelnen Bauelemente zur Verfügung stehen.
-
Bei
der Herstellung von Halbleiter-Bauelementen (z.B. von DRAMs (Dynamic
Random Access Memories bzw. dynamische Schreib-Lese-Speicher), insbesondere
von DDR-DRAMs (Double Data Rate – DRAMs bzw. DRAMs mit doppelter
Datenrate)) können – noch bevor
am Wafer sämtliche
gewünschten, o.g.
Bearbeitungsschritte durchgeführt
wurden – (d.h. bereits
in einem halbfertigen Zustand der Halbleiter-Bauelemente) an einer
oder mehreren Test-Stationen mit Hilfe eines oder mehrerer Testgeräte die (noch
auf dem Wafer befindlichen, halbfertigen) Bauelemente entsprechenden
Testverfahren unterzogen werden (z.B. sog. Kerf-Messungen am Waferritzrahmen).
-
Nach
der Fertigstellung der Halbleiter-Bauelemente (d.h. nach der Durchführung sämtlicher
der o.g. Wafer-Bearbeitungsschritte) werden die Halbleiter-Bauelemente
weiteren Testverfahren unterzogen; beispielsweise können mit
Hilfe entsprechender (weiterer) Testgeräte die – noch auf dem Wafer befindlichen,
fertiggestellten – Bauelemente
entsprechend getestet werden („Scheibentests").
-
Auf
entsprechende Weise können
Tests (an entsprechenden weiteren Test-Stationen, und unter Verwendung
entsprechender, weiterer Testgeräte) z.B.
nach dem Einbau der Halbleiter-Bauelemente
in die entsprechenden Halbleiter-Bauelement-Gehäuse durchgeführt werden,
und/oder z.B. nach dem Einbau der Halbleiter-Bauelement-Gehäuse (samt
den darin jeweils eingebauten Halbleiter-Bauelementen) in entsprechende
elektronische Module (sog. „Modultests").
-
Beim
Testen von Halbleiter-Bauelementen können als Testverfahren (z.B.
bei den o.g. Scheibentests, Modultests, etc.) jeweils z.B. sog. „DC-Test", und/oder z.B. sog. „AC-Tests" eingesetzt werden.
-
Bei
einem DC-Test kann z.B. an einen entsprechenden Anschluß eines
zu testenden Halbleiter-Bauelements eine Spannung (oder Strom) bestimmter – insbesondere
gleichbleibender – Höhe angelegt
werden, und dann die Höhe
von – sich
ergebenden – Strömen (bzw.
Spannungen) gemessen werden – insbesondere überprüft werden,
ob diese Ströme
(bzw. Spannungen) innerhalb vorbestimmter, gewünschter Grenzwerte liegen.
-
Demgegenüber können bei
einem AC-Test an entsprechende Anschlüsse eines Halbleiter-Bauelements
beispielsweise – in
der Höhe
wechselnde – Spannungen
(oder Ströme)
angelegt werden, insbesondere entsprechende Test-Muster-Signale,
mit deren Hilfe am jeweiligen Halbleiter-Bauelement entsprechende
Funktionstest durchgeführt
werden können.
-
Mit
Hilfe der o.g. Testverfahren können
defekte Halbleiter-Bauelemente
bzw. -Module, d. h. beispielsweise solche mit defekten Speicherzellen, identifiziert,
und dann aussortiert (oder teilweise auch repariert) werden, und/oder
es können – entsprechend
den erzielten Test-Ergebnissen – die
bei der Herstellung der Bauelemente jeweils verwendeten Prozess-Parameter
entsprechend modifiziert bzw. optimal eingestellt werden, etc.,
etc.
-
Bei
einer Vielzahl von Anwendungen – z.B. bei
Server- oder Workstationrechnern, etc. – können Speichermodule mit vorgeschalteten
Speicherpuffern („Memory
Buffer") eingesetzt
werden, z.B. sog. „buffered
DIMMs".
-
Derartige
Speichermodule weisen i.A. ein oder mehrere Halbleiter-Speicherbauelemente,
insbesondere DRAMs (z.B. DDR-DRAMs)
auf, sowie ein oder mehrere – den
Halbleiter-Speicherbauelementen vorgeschaltete – Speicherpuffer (z.B. entsprechende,
von JEDEC standardisierte DDR-DRAM-Speicherpuffer).
-
Die
Speicherpuffer können
z.B. auf derselben Platine angeordnet sein wie die DRAMs.
-
Die
Speichermodule sind – insbesondere
unter Zwischenschaltung eines entsprechenden (z.B. extern vom jeweiligen
Speichermodul angeordneten) Memory Controllers – mit einem oder mehreren Mikro-Prozessoren
des jeweiligen Server- oder Workstationrechners, etc. verbunden.
-
Bei „teilweise" gepufferten Speichermodulen können die – z.B. vom
Memory Controller, oder vom jeweiligen Prozessor ausgegebenen – Adress-
und Steuersignale von entsprechenden Speicherpuffern (kurz) zwischengespeichert
werden, und entsprechend ähnliche
Adress- und Steuersignale – auf
zeitlich koordinierte, ggf. ge- oder de-multiplexte Weise – an die
Speicherbauelemente, z.B. DRAMs, weitergeleitet werden.
-
Demgegenüber können die – vom Memory Controller,
bzw. vom jeweiligen Prozessor ausgegebenen – (Nutz-)Datensignale direkt,
d.h, ohne Zwischenspeicherung durch einen entsprechenden Speicherpuffer
an die Halbleiter-Bauelemente weitergeleitet werden (und – umgekehrt – auch die
von den Halbleiter-Bauelementen
ausgegebenen (Nutz-)Datensignale direkt – ohne Zwischenschaltung eines entsprechenden
Speicherpuffers – an
den Memory Controller, bzw. den jeweiligen Prozessor).
-
Demgegenüber werden
bei voll gepufferten („fully
buffered") Speichermodulen
sowohl die zwischen dem Memory Controller, bzw. dem jeweiligen Prozessor,
und den Halbleiter-Bauelementen ausgetauschten Adress- und Steuersignale,
als auch die entsprechenden (Nutz-)Datensignale von entsprechenden
Speicherpuffern zwischengespeichert, und erst dann an die Halbleiter-Bauelemente
bzw. den Memory Controller oder den jeweiligen Prozessor weitergeleitet.
-
Zur
Speicherung der bei den o.g. Testverfahren (oder beliebigen anderen
Testverfahren) erzeugten Daten, insbesondere entsprechender Test-(Ergebnis-)Daten
können
auf den jeweils getesteten Halbleiter-Bauelementen (z.B. den o.g.
analogen bzw. digitalen Rechenschaltkreisen, den o.g. Halbleiter-Speicherbauelementen
(PLAs, PALs, ROMs, RAMs, insbesondere SRAMs und DRAMs, z.B. DDR-DRAMs,
etc.) entsprechende, spezielle Test-Daten-Register vorgesehen sein.
-
Aber
trotz des Testens der Halbleiter-Bauelemente (DRAMs etc.) bzw. der
Module können
noch nicht erfasste Fehlfunktionen auftreten, z. B. durch nicht
ausreichendes Testen der Komponenten, Fehler oder Qualitätsverlust
beim Zusammenbau oder durch Alterung etc. Dies kann im schlimmsten
Fall zu einem Ausfall eines Rechnersystems führen.
-
Aber
auch im Produktionsprozess ist es aus Qualitätsgrünen nachteilig, als fehlerhaft
erkannte Halbleiter-Bauelemente auszutauschen; oft wird dann das
ganze Speichermodul verworfen.
-
Es
ist die Aufgabe der Erfindung, eine einfache und flexible Möglichkeit
zur Korrektur von Fehlfunktionen eines Halbleiter-Bauelements, bzw.
einer entsprechenden Speicherzelle, auch nach einem Zusammenbau,
bereitzustellen.
-
Sie
erreicht dieses und weitere Ziele durch die Gegenstände der
Ansprüche
1, 9, 11, 13 und 15. Vorteilhafte Weiterbildungen der Erfindung
sind in den Unteransprüchen
angegeben.
-
Gemäß eines
ersten Aspekts der Erfindung wird ein Speicherpuffer zur Verfügung gestellt,
der mindestens eine Speicherlogikeinheit aufweist, die mit mindestens
einem speicherseitigen Bussystem und mit mindestens einem hostseitigen
Bussystem verbunden ist.
-
Dabei
bedeutet hostseitig, dass über
dieses Bussystem Bussignale zwischen einem den Speicherbuffer nutzenden
Host – z.B.
einem Memory Controller oder einem jeweiligen Prozessor – und dem
Speicherbuffer ausgetauscht werden können. Bei „teilweise" gepufferten Speichermodulen sind dies
typischerweise Adress- und Steuersignale, bei „voll gepufferten Speichermodulen
auch die Datensignale. Entsprechend bedeutet speicherseitig, dass über dieses
Bussystem Bussignale zwischen dem Speicherbuffer und mindestens
einem Halbleiter-Bauelement
(z. B. einem DRAM) ausgetauscht werden können.
-
Mittels
der Speicherlogikeinheit können
die Bussignale (kurz) zwischengespeichert werden, und auf zeitlich
koordinierte, ggf. ge- oder de-multiplexte Weise, über das
speicherseitige Bussystem an die Halbleiter-Bauelemente, z.B. DRAMs,
weitergeleitet werden.
-
Der
Speicherpuffer ist weiterhin so ausgerüstet, dass weiterhin mindestens
ein Redundanzspeicher vorhanden ist. Die im Redundanzspeicher vorhandenen
Speicherzellen ersetzen im Betrieb auf den Halbleiter-Bauelementen
als fehlerhaft erkannte Speicherzellen. Dadurch müssen als
fehlerhaft erkannte Halbleiter-Bauelemente nicht mehr ausgewechselt
werden, wobei natürlich
die Zahl der fehlerhaften Speicherzellen die Größe des Redundanzspeichers nicht überschreiten
sollte. Insbesondere in diesem Fall können zusätzlich andere Korrekturmechanismen
greifen.
-
Durch
einen Vergleich mindestens einer in der Speicherlogikeinheit gespeicherten
oder zu ihr gesandten -physikalischen oder logischen – Speicherzellenadresse
mit mindestens einer weiteren Speicherzellenadresse ist dann eine Übertragung mindestens
eines Bussignals zwischen dem speicherseitigen Bussystem und Redundanzspeicher umschaltbar.
Typischerweise, aber nicht darauf beschränkt, kann dies so geschehen,
dass ein hostseitiges Bussignal im Speicherpuffer, insbesondere
zur Speicherlogikeinheit, eingeht. Das (ein- oder mehrzyklische)
Bussignal umfasst auch ein Adresssignal, das eine Speicherzellenadresse, üblicherweise
einer Speicherzelle eines Halbleiter-Bauelements, enthält. Diese
Speicherzellenadresse wird dann mit (mindestens) einer weiteren
Speicherzellenadresse verglichen, vorteilhafterweise die fehlerhafte
Speicherzellenadresse selbst. In diesem vorteilhaften Fall werden
also – meist
hostseitig eingehende – in
Adresssignalen vorhandene Speicherzellenadressen mit einer „Liste" fehlerhafter Speicherzellen
verglichen.
-
Eine
Information über
Speicherzellenadressen kann neben der eigentlichen Speicherzellenadresse
auch weitere Angaben wie ein „Fail"-Flag und/oder die
Speicherzellenadresse der die Speicherzelle des Halbleiter-Bauleiterelements
zu ersetzenden Speicherzelle des Redundanzspeichers o. ä. enthalten.
-
Der
Speicherbuffer ist so ausgestaltet, dass er aufgrund des Vergleichs
eine Übertragung
mindestens eines Bussignals zwischen dem speicherseitigen Bussystem
und dem Redundanzspei cher umschalten kann. Er kann also das über das
speicherseitige Bussystem, z. B. zur Ansteuerung einer adressierten
Speicherzelle eines Halbleiter-Bauelements vorgesehene, speicherseitige
Bussignal zum Redundanzspeicher bzw. zu einer Speicherzelle des Redundanzspeichers,
umschalten bzw. umleiten. Dadurch ist statt der fehlerhaften Speicherzelle
des Halbleiter-Bauelements eine Speicherzelle des Redundanzspeichers
nutzbar.
-
Dadurch
kann ein Host das Speichermodul, auf dem der Speicherpuffer sitzt,
einfach ansteuern. Auch ist es möglich,
z. B. durch neue Tests, den Speicherpuffer neu zu konfigurieren;
es können
also – auch
schon im eingebauten Zustand – mehrere
Speicher- bzw. Modultests durchgeführt werden, deren Ergebnis
(nämlich
fehlerhafte Speicherzellenadressen) eine neue „Liste" von weiteren Speicherzellenadressen
ergibt, ggf. verknüpft
mit entsprechenden Adressen von Redundanzspeicher-Zellen.
-
Vorteilhafterweise
weist der Speicherpuffer mindestens ein zusätzliches Adressregister zur
Speicherung mindestens einer der weiteren Speicherzellenadressen
auf.
-
Es
ist weiterhin günstig,
wenn das zusätzliche
Adressregister über
einen Konfigurationsbus konfigurierbar, insbesondere mit Speicherzellenadressen
(bzw. mit diesen enthaltende Informationen) befüllbar, ist. Der Konfigurationsbus
kann z. B. zu einem nichtflüchtigen
Speicher, insbesondere einem auf dem Speichermodul befindlichen
PROM, z. B. einem EEPROM, führen.
Der nicht-flüchtige
Speicher kann beispielsweise die Testinformationen eines neuen Speichertests
beinhalten, wie z. B. eine (ggf. aktualisierte) Liste fehlerhafter
Speicherzellenadressen und – bei
Bedarf – damit
verknüpfte
entsprechende Adressen von Redundanzspeicher-Zellen.
-
Besonders
günstig
ist es, wenn der Speicherpuffer einen Redundanz-Adressdecoder zur Durchführung des
Vergleichs der Speicherzellenadressen, also zwischen einer in der
Speicherlogikeinheit gespeicherten oder zu ihr gesandten Speicherzellenadresse
und mindestens einer weiteren Speicherzellenadresse, aufweist.
-
Auch
ist es günstig,
wenn die Speicherlogikeinheit mit dem Redundanzspeicher über ein
Redundanz-Bussystem verbunden ist, so dass aufgrund des Vergleichs
der Speicherzellenadressen eine Übertragung
mindestens eines Bussignals zwischen dem speicherseitigen Bussystem
und dem Redundanz-Bussystem umschaltbar ist.
-
Vorteilhaft
ist es insbesondere, wenn das Bussignal zwischen dem speicherseitigen
Bussystem und dem Redundanz-Bussystem mittels eines Umschalters,
insbesondere eines Multiplexers, umschaltbar ist. Dabei ist es günstig, wenn
der Umschalter über
eine Datenverbindung mit dem Redundanz-Adressdecoder verbunden ist,
so dass vom Redundanz-Adressdecoder zeitnah ein Signal über eine als
fehlerhaft identifizierte Speicherzelle zum Umschalter weitergegeben
werden kann, welcher dann das Bussignal auf das Redundanz-Bussystem
geben kann. Beispielsweise kann ein in die Speicherlogikeinheit
eingehendes, zu einem Bussignal gehöriges, Adresssignal extrahiert
und an den Redundanz-Adressdecoder weitergeleitet werden. Dort wird die
Adresse mit einer im Redundanzspeicher gespeicherten Adresse verglichen.
Die im Redundanzspeicher gespeicherte Adresse ist Teil eines Informationsstrings,
der außerdem
eine „Ersatz"- Redundanzspeicher-Adresse
aufweist. Bei Erkennung als fehlerhaft wird ein Signal an den Umschalter
geleitet, das z. B. die Redundanzspeicher-Adresse und/oder die ursprüngliche
in die Speicherlogikeinheit eingegangene Speicheradresse beinhaltet.
Mittels des Umschalters kann z. B. im entsprechenden Bussignal die ursprüngliche – zu einem
Halbleiter-Bauelement gehörige – Adresse
gegen die Redundanzspeicher-Adresse ausgetauscht werden, so dass
das Bussignal nun zum Redundanzspeicher geleitet wird und dort die
entspre chende – logische
oder physikalische – Speicherzelle
anspricht.
-
Insbesondere
günstig
ist es, wenn der Redundanzspeicher SRAMs oder Registerzellen umfasst.
-
Weiterhin
wird ein Verfahren zum Betrieb eines Speicherpuffers beansprucht,
bei dem in der Speicherlogikeinheit – insbesondere den hostseitigen
Adressbus – eingehende
oder gespeicherte Speicherzellenadressen mit den, insbesondere im zusätzlichen
Adressregister gespeicherten, weiteren Speicherzellenadressen verglichen
werden, und abhängig
vom Ausgang des Vergleichs mindestens ein Bussignal entweder über das
speicherseitige Bussystem oder zum Redundanzspeicher geführt wird. Falls
keine Informationen im zusätzlichen
Adressregister vorliegen, kann z. B. durch Setzen eines „no fail"-Flags, der Adressenvergleich ausgesetzt
werden.
-
Dieses
Verfahren ist insbesondere günstig, wenn
die im Redundanzspeicher gespeicherten weiteren Speicherzellenadressen
fehlerhaften Speicherzellen entsprechen, und bei Übereinstimmung
zwischen in der Speicherlogikeinheit eingehenden Speicherzellenadressen
und im zusätzlichen
Adressregister gespeicherten Speicherzellenadressen ein entsprechendes
(Nutz-)Bussignal (also z. B. mit im wesentlichen gleichen Steuer-
und Datensignalen, aber ersetztem Adresssignal) zum Redundanzspeicher
geführt
wird.
-
Auch
beansprucht wird ein Speichermodul das mindestens einen erfindungsgemäßen Speicherpuffer
und mindestens ein – typischerweise über das speicherseitige
Bussystem damit verbundenes Halbleiter-Bauelement aufweist.
-
Insbesondere
günstig
ist ein Speichermodul, das zusätzlich
einen nichtflüchtigen
Speicher, insbesondere ein EEPROM, aufweist, der – z. B. über den Konfigurationsbus
mit dem zusätzlichen
Adressregister verbunden ist. So kann eine im nichtflüchtigen Speicher
gespeicherte Information über
fehlerhafte Speicherzellen bzw. Speicherzellenadressen nach dem
Hochfahren des Hosts, bspw. eines PCs oder Servers, vom nichtflüchtigen
Speicher in das – meist schnellere – zusätzliche
Adressregister übertragen werden.
Zwar ist eine Speicherung auch z. B. in einem nicht-flüchtigen
Speicher außerhalb
des Speichermoduls möglich,
dabei würde
aber ggf. Information bei Ausbau/Auswechseln des Speichermoduls verloren
gehen bzw. falsch interpretiert werden.
-
Ebenfalls
beansprucht wird ein Verfahren zum Testen bzw. zur Initialisierung
eines erfindungsgemäßen Speichermoduls
mit mindestens den Schritten:
- – Testen
von Speicherzellen des mindestens einen Halbleiter-Bauelementes
(2a,2b,2c) auf ihre Funktionstüchtigkeit,
und
- – Abspeicherung
von Speicherzellenadressen von nicht funktionstüchtigen Speicherzellen, vorzugsweise
in einem nichtflüchtigen
Speicher.
-
Diesem
Schritten kann z. B. das Hochfahren des das Speichermodul umfassenden
Systems voranstehen. Während
des Testens kann in einem Zwischenschritt die Abspeicherung der
Speicherzellenadressen auch zunächst
in einem – meist
schnelleren – Zwischenspeicher,
z. B. dem zusätzlichen
Adressregister geschehen, wobei die Informationen danach günstigerweise
in den nichtflüchtigen
Speicher übertragen
werden. Falls keine fehlerhaften Speicherzellen entdeckt werden,
wird vorteilhafterweise auch keine Information über Speicherzellenadressen
gespeichert; vielmehr kann das ein „no-fail"-Flag gesetzt werden, das in einem späteren Betrieb
ein temporäres
Abschalten der Speicherzellenersetzung erlaubt.
-
Es
ist vorteilhaft, wenn den Speicherzellenadressen der nicht funktionsfähigen Speicherzellen Speicherzellenadressen
des Redundanzspeichers zugewiesen werden, insbesondere in einem
gemeinsamen Informationspaket/Informationsstring.
-
Beansprucht
wird auch ein Verfahren zum Betrieb eines erfindungsgemäßen Speichermoduls, bei
dem vorher mindestens einmal (also zur Initialisierung) das oben
beschriebene erfindungsgemäße Testverfahren
durchgeführt
worden ist. Dadurch sind – falls
vorhanden – Informationen über fehlerhafte Speicherzellenadressen – möglichst
nichtflüchtigen Speicher – gespeichert.
In einem ersten Schritt werden die Speicherzellenadressen der nicht
funktionstüchtigen
Speicherzellen aus dem nichtflüchtigen Speicher
ausgelesen und zur schnelleren Verarbeitung in das zusätzliche
Adressregister übertragen.
-
In
einem zweiten und in weiteren Schritten werden dann die erfindungsgemäßen Vergleichs- und
Umschaltoperationen durchgeführt.
Ist keine Information über
Speicherzellenadressen gespeichert, wird der erste Schritt bzw.
das gesamte Verfahren optional nicht ausgeführt.
-
Im
folgenden wird die Erfindung anhand eines Ausführungsbeispiels und der beigefügten Zeichnung
näher erläutert. In
der Zeichnung zeigt:
-
1 eine
schematische Darstellung eines teilweise gepufferten Speichermoduls;
-
2 eine
schematische Darstellung eines voll gepufferten Speichermoduls;
-
3 eine
beispielhafte Vorder- und Rückansicht
eines Speichermoduls;
-
4 eine
beispielhafte, schematische Darstellung eines Speichermoduls mit
einem Speicherpuffer;
-
5 den
Ablauf eines Test- bzw. Initialisierungsverfahrens für ein Speichermodul,
und
-
6 den
Betriebsablauf eines Speichermoduls.
-
In 1 ist
eine schematische Darstellung eines teilweise gepufferten Speichermoduls
gezeigt (hier: ein „buffered
DIMM" 1a),
bei welchem – beispielhaft – ein Testverfahren
verwendet werden kann.
-
Wie
aus 1 hervorgeht, weist das dort gezeigte Speichermodul 1a eine
Vielzahl von Halbleiter-Bauelementen 2a auf, und (hier:
einen) den Halbleiter-Bauelementen 2a vorgeschaltete Speicherpuffer
(„Buffer", „Memory
Buffer") 3a.
-
Bei
den Halbleiter-Bauelementen 2a kann es sich z.B. um Funktionsspeicher-
oder Tabellenspeicher-Bauelemente (z.B. ROMs oder RAMs) handeln, insbesondere
um DRAMs, z.B. um DDR – bzw. DDR2-DRAMs,
etc.
-
Wie
aus 1 hervorgeht, können die Halbleiter-Bauelemente 2a auf
derselben Platine 21a angeordnet sein wie die Speicherpuffer 3a.
-
Bei
den Speichepuffern 3a kann es sich z.B. um von JEDEC standardisierte
(„registered
DIMM"-) DRRM-, insbesondere
DDR-DRAM- bzw. DDR2-DRAM-Speicherpuffer
handeln.
-
Das
Speichermodul 1a kann an einen die Halbleiter-Bauelemente 2a nutzenden
Host H (hier: eine Testeinheit 22a zum Testen des Speichermoduls 1a („testing
device") angeschlossen
sein. Ein Host H kann z. B. ein Memory Controller (hier nicht gezeigt) oder
ein Mikroprozessor (hier nicht gezeigt) sein. Typischerweise ist
das Speichermodul 1a – insbesondere
unter Zwischenschaltung eines (z.B. extern vom Speichermodul 1a,
insbesondere extern von der o.g. Platine 21a angeordneten)
Memory Controllers – mit einem
oder mehreren Mikro-Prozessoren verbunden, insbesondere einem oder
mehreren Mikro-Prozessoren eines Server- oder Workstationrechners
(oder einem be liebigen anderen Mikro-Prozessor, z.B. eines PCs,
Laptops, etc.).
-
Wie
aus 1 hervorgeht, werden bei dem dort gezeigten teilweise
gepufferten Speichermodul 1a die – z.B. vom Memory Controller,
oder vom jeweiligen Prozessor ausgegebenen – Adress- und Steuersignale
nicht direkt an die Halbleiter-Bauelemente 2a weitergeleitet.
-
Stattdessen
werden die Adresssignale- z.B. über
einen entsprechenden hostseitigen Adressbus 4a (bzw. entsprechende
Adress-Leitungen) („address") –, und die
Steuersignale – z.B. über einen entsprechenden
hostseitigen Steuerbus 5a (bzw. entsprechende Steuer-Leitungen)
(„command") – zunächst dem
Speicherpuffer 3a zugeführt.
-
Bei
den Steuersignalen kann es sich um beliebige, bei herkömmlichen
Speichermodulen verwendete Steuersignale handeln, z.B. um entsprechende
Lese-, und/oder Schreib-, und/oder Chip-Select- (Halbleiter-Bauelement-Auswahl-)Befehls-Signale,
etc., soweit diese vom Protokoll des Speicherpuffer 3a unterstützt werden.
-
In
dem Speicherpuffer 3a werden die entsprechenden Signale
(Adresssignale, Steuersignale) – kurz – zwischengespeichert,
und auf zeitlich koordinierte, ggf. ge- oder de-multiplexte Weise
an die Halbleiter-Bauelemente 2a weitergeleitet (z.B. über einen
entsprechenden – zentralen – Speicher-Bus 7a (mit
einem entsprechenden speicherseitigen Steuerbus 5b und
einem entsprechenden speicherseitigen Adressbus 4b mit
entsprechenden Steuer- und Adress-Leitungen)).
-
Demgegenüber können bei
dem in 1 gezeigten teilweise gepufferten Speichermodul 1a die vom
Host H – z.B.
vom o.g. Memory Controller, oder vom jeweiligen Prozessor ausgegebenen – (Nutz-)Datensignale
(„data") direkt, d.h. ohne
Zwischenspeicherung durch den Speicherpuffer 3a über einen
durchge henden Datenbus 6c an die Halbleiter-Bauelemente 2a weitergeleitet
werden (z.B. über einen – direkt
mit dem o.g., zentralen Speicherbus 15a verbunden – Daten-Bus 6c (bzw.
entsprechende Daten-Leitungen).
-
Umgekehrt
können
auch die – von
den Halbleiter-Bauelementen 2a ausgegebenen – (Nutz-)Datensignale
direkt – ohne
Zwischenschaltung des Speicherpuffers 3a – an den
Host H, also beispielsweise die Testeinheit 22a, einen
Memory Controller bzw. den jeweiligen Prozessor weitergeleitet werden (z.B.
wiederum über
den o.g. – direkt
mit dem zentralen Speicherbus 7a verbunden – durchgehenden
Datenbus 6c).
-
In 2 ist
eine schematische Darstellung eines voll gepufferten Speichermoduls 1b gezeigt (hier:
ein „buffered
DIMM" 1b).
-
Wie
aus 2 hervorgeht, weist das dort gezeigte Speichermodul 1b – entsprechend
dem teilweise gepufferten Speichermodul 1a gemäß 1 – eine Vielzahl
von Halbleiter-Bauelementen 2a auf, und ein oder mehrere – den Halbleiter-Bauelementen 2a vorgeschaltete – Speicherpuffer
(„Buffer") 3b.
-
Bei
den Halbleiter-Bauelementen 2a kann es sich z.B. um Funktionsspeicher-
oder Tabellenspeicher-Bauelemente (z.B. ROMs oder RAMs) handeln, insbesondere
um DRAMs, z.B. um DDR – bzw. DDR2-DRAMs,
etc.
-
Die
Halbleiter-Bauelemente 2a können auf derselben Platine 21b angeordnet
sein, wie der Speicherpuffer 3b.
-
Bei
dem Speicherpuffer 3b kann es sich z.B. um entsprechende,
standardisierte DRAM-, insbesondere DDR-DRAM- bzw. DDR2-DRAM-Daten-Zwischenspeicher-Bauelemente
handeln (z.B. um – von einem
Konsortium unter Federführung
von Intel, zusammen mit JEDEC – standardisierte „fully
buffered" Daten-Zwischenspei cher-Bauelemente
(z.B. um FB-DIMM- bzw. fully buffered DIMM-Speicherpuffer)).
-
Das
Speichermodul 1b kann (entsprechend ähnlich wie das in 1 gezeigte
Speichermodul 1a) – insbesondere
unter Zwischenschaltung eines entsprechenden (z.B. extern vom Speichermodul 1b, insbesondere
extern von der o.g. Platine 21b angeordneten) Memory Controllers
(hier nicht gezeigt) – mit
einem oder mehreren Mikro-Prozessoren verbunden werden, insbesondere
einem oder mehreren Mikro-Prozessoren eines Server- oder Workstationrechners
(oder einem beliebigen anderen Mikro-Prozessor, z.B. eines PCs,
Laptops, etc.).
-
Wie
aus den 1 und 2 hervorgeht,
ist das in 2 gezeigte Speichermodul 1b entsprechend ähnlich bzw.
identisch aufgebaut, und arbeitet entsprechend ähnlich bzw. identisch, wie
das in 1 gezeigte Speichermodul 1a, außer dass
auch die zwischen dem Host H und den Halbleiter-Bauelementen 2a ausgetauschten
(Nutz-)Datensignale durch einen Speicherpuffer 3b gepuffert
werden.
-
In
dem Speicherpuffer 3b können
die entsprechenden, vom Host (z.B. Testeinheit 21b, Memory
Controller, Prozessor usw.) stammenden, z.B. über einen hostseitigen Datenbus 6a weitergeleiteten Datensignale – kurz – zwischengespeichert,
und auf zeitlich koordinierte, ggf. ge- oder de-multiplexte Weise über einen
speicherseitigen Datenbus 6b an die Halbleiter-Bauelemente 2a weitergeleitet
werden (z.B. über
einen zentralen Speicherbus 7b (mit einem entsprechenden
speicherseitigen Steuer-, Adress- und Daten-Bus 4b, 5b, 6b mit
entsprechenden Steuer-, Adress-, und Daten-Leitungen)).
-
Umgekehrt
können
in dem Buffer 3b auch die von den Halbleiter-Bauelementen 2a z.B.
am o.g. zentralen Speicher-Bus 7b ausgegebenen Datensignale – kurz – zwischengespeichert,
und – auf
zeitlich koordinierte, ggf. ge- oder de-multiplexte Weise – an den
Host weitergeleitet werden, z.B. über den o.g. hostseitigen Datenbus 6a.
-
3 zeigt
in Seitenansicht eine Vorderseite (oben, „front") und eine Rückseite (unten, „back") eines Speichermoduls 1c.
Während
auf der Rückseite der
Platine im wesentlichen nur Halbleiter-(Speicher-)Bauelemente 2b aufgebracht
sind, befinden sich auf der Vorderseite sowohl ein Speicherpuffer 3c als
auch ein nichtflüchtiger
Speicher 20a in Form eines EEPROMs. Die Halbleiter-Bauelemente 2b sind vorzugsweise
DRAMs.
-
Das
Speichermodul 1c wird über
Signalleitungen, typischerweise ein hostseitiges Bussystem HBS,
mit einem Host verbunden. Der Host kann jede mindestens eines der
Halbleiter-Bauelemente 2b ansprechende
Einheit sein, also z. B. eine Testeinheit, eine Rechnereinheit,
wie PC, Server, Handheld etc. oder ein Memory Controller usw.
-
4 zeigt
schematisch ein voll gepuffertes Speichermodul 1d mit einem
Speicherpuffer 3d, mit Halbleiter-Bauelementen 2c und
einem nicht-flüchtigen
Speicher 20b.
-
In
den Speicherpuffer 3d („memory buffer") führt ein
hostseitiges Bussystem HBS, das einen hostseitigen Steuerbus 5a („command"), einen hostseitigen
Adressbus 4a („address") und einen hostseitigen
Datenbus 6a („data") umfasst. In diesem
Ausführungsbeispiel
werden Steuersignale über
den hostseitigen Steuerbus 5a und Adresssignale über den
hostseitigen Adressbus 4a unidirektional zum Speichermodul 1d übertragen,
während
Datensignale über
den hostseitigen Datenbus 6a bidirektional laufen können. Das
hostseitige Bussystem HBS führt in
eine Speicherlogikeinheit 8. Die Speicherlogikeinheit 8 ist
auf der anderen Seite, also speicherseitig, über ein speicherseitiges Bussystem
MBS – umfassend
einen unidirektionalen speicherseitigen Steuerbus 5b, einen
unidirektionalen speicherseitigen Adressbus 4b und einen
bi direktionalen speicherseitigen Datenbus 6b – mit Halbleiter-Bauelementen 2c, insbesondere
DRAMs, verbunden. Zwischen Speicherlogikeinheit 8 und speicherseitigem
Bussystem MBS ist ein Umschalter in Form eines Multiplexers 16 zum
Multiplexen und/oder Demultiplexen von Bussignalen zwischengeschaltet.
-
Weiterhin
sind ein zusätzliches
Adressregister 13 und ein Redundanz-Adressdecoder 14 vorhanden. Über jeweils
eine Datenverbindung 17,18 werden einerseits Speicheradressen
(bzw. diese enthaltende Informationen) aus der Speicherlogikeinheit 8 bzw.
solche, die zur Speicherlogikeinheit 8 gesendet werden,
und andererseits Speicheradressen (bzw. diese enthaltende Informationen)
aus dem zusätzlichen
Adressregister 13 zum Redundanz-Adressdecoder 14 geleitet.
Dort werden die Adressen verglichen. Für den Fall, dass eine sich
eine inhaltliche Übereinstimmung
ergibt, wird über
die Datenverbindung 19 ein Signal zum Multiplexer 16 gesandt,
zum Beispiel ein Informationsstring mit zu ersetzender Adresse des
Halbleiter-Bauelements 2c, Ersatzadresse in einem – weiter
unten beschriebenen – Redundanzspeicher 15 und
ggf. zusätzlichen
Informationen. Die zeitliche Abstimmung ist idealerweise so, dass
die Verfahrensschritte ,Senden der Speicherzellenadressen zum Redundanz-Adressdecoder 14' – ,Vergleich
der Speicherzellenadressen' – ,Senden eines
Signals zum Multiplexer 16' so
lange dauern wie das Durchschleusen des entsprechenden Bussignals
durch die Speicherlogikeinheit 8. Das entsprechende Bussignal
kann also dann, z. B. bei einem positiven Vergleich bei Identifikation
einer adressierten fehlerhaften Speicherzelle und Aussenden einer
entsprechenden Information an den Multiplexer 16, durch
den Multiplexer 16 rechtzeitig auf ein mit dem Multiplexer 16 verbundenes
Redundanz-Bussystem RBS mit Redundanz-Steuerbus 9, Redundanz-Adressbus 10 und
bidirektionalem Redundanz-Datenbus 11 umgeschaltet bzw.
umgelenkt werden. Dies kann z. B. durch ein Ersetzen der Adresse
der fehlerhaften Speicherzelle mit der (Ersatz-)Adresse im Redundanzspeicher 15 geschehen; das
modifizierte, in den Redundanzspeicher 15 umzuleitende
Bussignal umfasst dann die modifizierte Adresse und die inhaltsgleichen
Steuer- und Datensignale.
-
Vom
Redundanz-Bussystem RBS aus gelangt das Bussignal zum Redundanzspeicher 15, hier:
einem SRAM, mit entsprechenden Speicherzellen, die vom Bussignal – entsprechend
den Speicherzellen der Halbleiter-Bauelemente 2c – angesprochen
werden, z. B. indem Daten in die Speicherzellen des Redundanzspeichers 15 geschrieben
oder von dort ausgelesen werden.
-
Das
zusätzliche
Adressregister 13 ist über
einen aus dem Speicherpuffer 3d herausführenden Konfigurationsbus 12 konfigurierbar,
z. B. beschreibbar. In diesem Ausführungsbeispiel ist das zusätzliche
Adressregister 13 mit einem nichtflüchtigen Speicher 20b des
Speichermoduls 1d in Form eines EEPROM verbunden. Das EEPROM
kann weitere Datenleitungen (hier nicht eingezeichnet) ausweisen,
z. B. nach außen
zum Anschluss an einen Host.
-
5 zeigt
als Ablaufskizze eine Ausführungsform
eines Verfahren zum Testen bzw. Initialisieren eines Speichermoduls 1c, 1d.
-
Zunächst wird
das System Host H – Speichermodul
hochgefahren und ggf. konfiguriert(„System Initialisierung"). Der Host H kann
z. B. ein unabhängiges
Testgerät
oder eine Rechnereinheit (Mikroprozessor, Mikrocontroller etc.)
mit eingebauter Testroutine sein.
-
Dann
werden die Halbleiter-Bauelemente auf ihre Funktionstüchtigkeit
getestet („Memory Test"). Sind keine Fehler
festzustellen („Pass?:
yes"), ist das Speichermodul
einsatzbereit (ggf. unter Setzung eines „No Fail"-Flags). Es werden dann in der Regel
keine Korrektur-/Redundanzroutinen aufgerufen.
-
Werden
hingegen fehlerhafte Speicherzellen gefunden („Pass?: no"), so werden deren Adressen bzw. diese
enthaltende Infor mationen gespeichert („store fail adresses"). In dieser Ablaufskizze
geschieht dies im – vergleichsweise
schnellen und oft beschreibbaren – zusätzlichen Adressregister 13b („buffer
register") des Speicherpuffers 3d („memory buffer").
-
Nach
Abschluss des eigentlichen Testvorgangs bzw. der Speicherung der
Speicheradressen werden die Daten des Adressregisters 13b zum
Host H zurückübertragen
(„host:
read fail addresses from mem. buffer") und ggf. bearbeitet. Von dort aus
werden Redundanzinformationen – also
z. B. die fehlerhaften Speicheradressen, ggf. mit korrespondierenden
Speicherzellenadressen des Redundanzspeichers 15 – in einem
nichtflüchtigen
Speicher 20c gespeichert („store redundancy information
non-volatile"),
vorzugsweise in einem auf dem Speichermodul befindlichen EEPROM.
-
Dieses
Testverfahren kann beliebig oft, auch im schon im Host eingebauten
Zustand des Speicherpuffers, durchgeführt werden.
-
6 zeigt
ein als Ablaufdiagramm ein Verfahren zum Betrieb des erfindungsgemäßen Speichermoduls.
-
Nach
dem Hochfahren („Power
Up") wird überprüft, ob Redundanzinformationen
vorliegen („redundancy
information available ?").
Falls nicht („no"), wird das Speichermodul
direkt zum Betrieb freigegeben. Falls doch, so werden vom Host die
Redundanzinformationen aus dem – relativ
langsamen – EEPROM 20c ausgelesen
(„host:
read redundancy information")
und in das – relativ
schnelle – zusätzliche
Adressregister („buffer
register") geschrieben („host:
write redundancy information to mem. buffer"). Als nächstes wird der Betrieb, wie
beispielhaft auch in 4 beschrieben, aufgenommen.
-
Dem
Betriebsverfahren geht vorteilhafter-, aber nicht notwendigerweise,
das in 5 beispielhaft beschriebene Testverfahren voraus.
-
- 1a
- teilweise
gepuffertes Speichermodul
- 1b
- voll
gepuffertes Speichermodul
- 1c
- Speichermodul
- 1d
- Speichermodul
- 2a
- Halbleiter-Bauelement
- 2b
- Halbleiter-Bauelement
- 2c
- Halbleiter-Bauelement
- 3a
- Speicherpuffer
- 3b
- Speicherpuffer
- 3c
- Speicherpuffer
- 3d
- Speicherpuffer
- 3e
- Speicherpuffer
- 4a
- hostseitiger
Adressbus
- 4b
- speicherseitiger
Adressbus
- 5a
- hostseitiger
Steuerbus
- 5b
- speicherseitiger
Steuerbus
- 6a
- hostseitiger
Datenbus
- 6b
- speicherseitiger
Datenbus
- 6c
- durchgehender
Datenbus
- 7a
- Speicherbus
- 7b
- Speicherbus
- 8
- Speicherlogikeinheit
- 9
- Redundanz-Steuerbus
- 10
- Redundanz-Adressbus
- 11
- Redundanz-Datenbus
- 12
- Konfigurationsbus
- 13
- zusätzliches
Adressregister
- 13b
- zusätzliches
Adressregister
- 14
- Redundanz-Adressdecoder
- 15
- Redundanzspeicher
- 16
- Multiplexer
- 17
- Datenverbindung
- 18
- Datenverbindung
- 19
- Datenverbindung
- 20a
- nichtflüchtiger
Speicher
- 20b
- nichtflüchtiger
Speicher
- 20c
- nichtflüchtiger
Speicher
- 21a
- Platine
- 21b
- Platine
- 22a
- Testeinheit
- 22b
- Testeinheit
- H
- Host
- HBS
- Hostseitiges
Bussystem
- MBS
- Speicherseitiges
Bussystem
- RBS
- Redundanz-Bussystem