DE112012005617T5 - Speicherung von Daten in Speichermodulpuffern - Google Patents

Speicherung von Daten in Speichermodulpuffern Download PDF

Info

Publication number
DE112012005617T5
DE112012005617T5 DE112012005617.5T DE112012005617T DE112012005617T5 DE 112012005617 T5 DE112012005617 T5 DE 112012005617T5 DE 112012005617 T DE112012005617 T DE 112012005617T DE 112012005617 T5 DE112012005617 T5 DE 112012005617T5
Authority
DE
Germany
Prior art keywords
memory
data
buffer
storage
buffer memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112012005617.5T
Other languages
English (en)
Inventor
Lidia M. Warners
c/o Hewlett-Packard Company Tavallaei Siamak
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112012005617T5 publication Critical patent/DE112012005617T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Abstract

Ein Speichermodul (22, 122, 322, 522) einschließlich Speichergeräten (24, 324) umfasst einen Speichermodulpuffer (26, 326, 526), der über einen Ersatzstatuseingang (36) und einen Pufferspeicher verfügt (28). Der Speichermodulpuffer (26, 326, 526) speichert Daten im Pufferspeicher (28), wobei die Daten aus einem Abschnitt von mindestens einem der Speichergeräte (24, 324) neu erstellt werden, in dem ein Fehler identifiziert wurde.

Description

  • HINTERGRUND
  • Speichermodule wie Dual Inline Memory Module (DIMMs), sind manchmal fehleranfällig, was zu Speicherausfall führen kann. Bestehende Methoden zur Bereitstellung von Speichermodulen mit Fehlertoleranz, wie zum Beispiel die Verwendung von Fehlerkorrekturcodes und Speicher-Sparing, können zur Reduzierung der Bandbreite oder der Speicherkapazität führen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • ist eine schematische Darstellung eines beispielhaften Speichermoduls.
  • ist eine schematische Darstellung eines beispielhaften Rechnersystems einschließlich eines Beispiels des Speichermoduls aus .
  • ist ein Flussdiagramm einer beispielhaften Methode, die von dem System aus ausgeführt werden kann.
  • ist eine schematische Darstellung einer beispielhaften Implementierung des Speichermoduls aus .
  • ist eine schematische Darstellung des Speichermoduls aus mit einem ausgefallenen Speichergerät.
  • ist eine schematische Darstellung des Speichermoduls aus , bei dem ein gelöschtes Speichergerät einem Pufferspeicher neu zugeordnet wurde.
  • ist eine schematische Darstellung eines anderen beispielhaften Rechnersystems, bei dem Speichermodule mit einem Speichercontroller verbunden sind.
  • ist eine schematische Darstellung eines anderen beispielhaften Rechnersystems mit einem beispielhaften verteilten Datenpuffer.
  • ist ein Flussdiagramm einer beispielhaften Methode, die von den Rechensystemen aus den , und ausgeführt werden kann.
  • DETAILLIERTE BESCHREIBUNGEN DER BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • stellt ein Beispiel eines Speichermoduls 20 schematisch dar. Speichermodul 20 dient der Verwendung in einem Rechnersystem, wobei Speichermodul 20 Speicherzellen oder einen Speicherort für Anwendungen und/oder Daten bereitstellt. Wie nachfolgend beschrieben bietet Speichermodul 20 Fehlertoleranz für Fehler, die im Speichermodul 20 auftreten, und reduziert oder eliminiert gleichzeitig jede damit verbundene Reduzierung der Bandbreite oder Speicherkapazität.
  • Speichermodul 20 umfasst eine in sich geschlossene oder unabhängige Speichereinheit, die einem Rechensystem modular hinzugefügt werden kann. In einer Implementierung kann Speichermodul 20 eine Leiterplatte oder Karten-Speichergeräte aufweisen und so angepasst werden können, dass sie lösbar oder entfernbar montiert und mit einem Rechnersystem verbunden sind. In einer Implementation kann das Speichermodul 20 als Teil eines Dual Inline Memory Moduls (DIMM) ausgebildet sein, dass in einer entsprechenden Buchse einer anderen Leiterplatte, wie zum Beispiel einer Hauptplatine, angebracht und elektrisch damit verbunden werden kann. In anderen Implementierungen ist Speichermodul 28 in Form anderer Arten von Speichermodulen ausgebildet, wie zum Beispiel Single Inline Memory Modules (SIMMs), Fully Buffered Dual Inline Memory Modules (FB DIMM DIMM, Load-Reduced DIMMs (LR-DIMM) und ähnlichen), die auf die gleiche oder andere Weise lösbar mit einem Rechensystem verbunden sind.
  • Speichermodul 20 umfasst Träger (Leiterplatte oder ähnliche Methode zur Verbindung von elektronischen Geräten) 22, Speichergeräte 24, Speichermodulpuffer 26 und Pufferspeicher 28. Träger 22 umfasst eine Stützkonstruktion, die eine Verbindungsmethode für Speichergeräte 24, Puffer 26 und Pufferspeicher 28 bereitstellt. In einer Implementation umfasst Träger 22 eine Leiterplatte mit elektrischen Leitungen oder Leiterbahnen 30, die jede der besagten Komponenten wie die Speichergeräte 24 kommunikativ oder elektrisch mit Speichermodulpuffer 26 verbindet. In einer Implementierung kann Träger 22 darüber hinaus Randstecker wie zum Beispiel Kontakte oder Stifte 32 aufweisen, die sich entlang der Kante von Träger 22 befinden, um die Kommunikation zwischen Speichermodul 20 und Daten- und Adress-/Befehlsbussen mit einem externen Rechensystem zu ermöglichen. In anderen Implementierungen können andere Kapselungstechniken verwendet werden.
  • Speichergeräte 24 umfassen einzelne integrierte Speicherschaltungskomponenten, die auf einer oder beiden Seiten von Träger 22 befestigt oder anderweitig gestützt werden. In einer Implementierung umfassen Speichergeräte 24 Dynamic Random Access Memory (DRAM) integrierte Speicherschaltungsgeräte. In einer Implementierung weist jedes Speichergerät 24 eine Speicherkapazität von mindestens 4 GB auf. In einer Implementierung verfügt jedes Speichergerät 24 über eine oder mehrere Bänke, wobei jede Bank eine Speicherkapazität von mindestens 256 MB hat. In einer Implementierung kann jedes Speichergerät 24 durch Stapelung mehrerer DRAM-Chips erstellt werden. In anderen Implementierungen können Speichergeräte 24 andere Speicherkapazitäten haben, da die Technologie, die dem neuesten Stand der Technik entspricht, andere Arten von Komponenten für Speicherschaltungsgeräte umfassen und unterstützen kann. In einer Implementierung umfassen solche Speichergeräte Geräte, die unter Verwendung des DDR(Double Data Rate)-Protokolls kommunizieren. Speichergerät 24 kann zum Beispiel alternativ Static Random Access Memory (SRAM) integrierte Speicherschaltungsgeräte, Flash-Speichergeräte, nichtflüchtige Speichergeräte, Phasenwechselspeichergeräte, Mehrfachbit-Speichergeräte und Ähnliches aufweisen.
  • Speichermodulpuffer 26 umfasst einen Puffer oder ein Register zur Verknüpfung oder Ansteuerung von Transaktionen zwischen einem Speicherkontrolleur eines Rechensystems und Speichergeräten 24. Insbesondere speichert Puffer 26 Adress- und Steuersignale über Registerlogik zwischen. Für die Zwecke dieser Offenlegung bezieht sich die Bezeichnung „Puffer” oder „Speichermodulpuffer” auf jeden Chip bzw. jede Komponente, die Adresssteuersignale über Registerlogik zwischenspeichert, wozu unter anderem Register und Puffer gehören. In einer Implementierung treibt Puffer 26 einen Taktgeber durch einen Phaseregelkreis erneut an. In einer Implementierung, umfasst Puffer 26 einen Load Reduced Dual Inline Memory Module-Puffer (LRDIMM-Puffer), in dem Datenleitungen über bidirektionale Treiber parallel zwischengespeichert werden. In anderen Implementierungen kann Puffer 26 einen Registerchip enthalten, der eine hohe Signalstärke aufrechterhält und die Zeitsteuerung zwischen den Leitungen synchronisiert.
  • Wie in schematisch dargestellt umfasst der Speichermodulpuffer 26 zusätzlich einen Ersatzstatuseingang 36 über das Puffer 26 Signale zur Aktivierung der Verwendung von Pufferspeicher 28 von einem Speichercontroller erhält. In einer Implementierung umfasst der Ersatzstatuseingang 36 einen Ersatzstatusstift oder einen Randstecker (solche Randstecker oder Stifte manchmal auch als „Goldzungen” bezeichnet). Auch wenn dies nicht ausdrücklich angegeben ist, kann Speichermodulpuffer 26 auch andere Randstecker wie zum Beispiel Adress- und Steuereingänge oder -stifte, einen Takteingang oder -stift, Datenstifte und Strobe-Eingänge oder -Stifte umfassen.
  • Speichermodulpuffer 26 umfasst Mapping-Logik 38. Mapping-Logik 38 umfasst Programmierung oder integrierte Schaltkreise, die geeignet sind, Speicherorte in Speichergeräten 24 Speicherorten im Pufferspeicher 28 zuzuordnen. Insbesondere weist Mapping-Logik 38 bestimmte Speicherorte oder Adressen im Speichergerät 24 entsprechenden neuen Adressen innerhalb Pufferspeicher 28 zu. Nach Erhalt einer Transaktionsanfrage für eine Adresse in Speichergerät 24, leitet oder steuert Mapping-Logik 38 die Transaktionsanfrage und ihre Signale, wie zum Beispiel die Signale während eines Lese- oder eines Schreibvorgangs an die entsprechende neue Speicheradresse in Pufferspeicher 28 um. Wie nachfolgend beschrieben wird ermöglicht die erneute Zuordnung durch Mapping-Logik 38 den Zugriff auf Daten, die aus Daten an einer alten Speicheradresse in fehlerhaften Abschnitte eines Speichergeräts 24 wieder erstellt wurden und die in Pufferspeicher 28 an einer neuer Speicheradresse gespeichert wurden, die mit der alten Speicheradresse verknüpft ist.
  • Pufferspeicher 28 umfasst eine integrierte Speicherschaltung, die Puffer 26 zum Speichern von neu erstellten Daten aus fehlerhaften Abschnitten von einem oder mehreren Speichergeräten 24 zur Verfügung steht. In einer Implementierung kann Pufferspeicher 28 ein DRAM-Gerät (Dynamic Random Access Memory) umfassen, das mit Puffer 26 verbunden oder als Teil dessen bereitgestellt wird. In anderen Implementierungen kann Pufferspeicher 28 andere integrierte Speicherschaltungen umfassen. In einer Implementierung verfügt Pufferspeicher 28 über eine Speicherkapazität, die mindestens der einer einzelnen Speicherbank von Speichergeräten 24 entspricht. In einer Implementation verfügt der Pufferspeicher 28 über eine Speicherkapazität, die der Speicherkapazität eines einzelnen Speichergeräts 24 entspricht. In einer Implementation verfügt der Speicherpuffer 28 beispielsweise über eine Speicherkapazität von mindestens 256 MB, der Größe der kleinsten Speicherbank in Speichergeräten 24. In einer Implementierung verfügt Pufferspeicher 28 über eine Speicherkapazität von 4 GB, der Speicherkapazität eines jeden Speichergeräts 24. Andere durch Fortschritte in der Speichertechnologie bereitgestellte Speicherkapazitäten sind ebenfalls in diese Offenbarung eingeschlossen, sofern sich diese auf Pufferspeicher 28 beziehen.
  • stellt ein beispielhaftes Rechensystem 100 schematisch dar, das Speichermodul 120 sowie einen Host 122 umfasst. Rechensystem 100 verwendet Speichermodul 120 zur Speicherung von Daten und/oder Anwendungen. Beispielhafte Rechensysteme umfassen unter anderem einen Server, den PC (Laptop, Desktop, Mainframe, Tablet, Notebook), einen Personal Digital Assistant, ein Smartphone und Ähnliches.
  • Speichermodul 120 ist im Wesentlichen mit Speichermodul 20 identisch, außer dass Pufferspeicher 28 mit Datenspeicher 142 und Verfolgungsspeicher 144 dargestellt wird. Diese verbleibenden Komponenten von Speichermodul 120, die den Komponenten von Speichermodul 20 entsprechen, sind entsprechend nummeriert. Datenspeicher 142 ähnelt Speicher 28. Ein Speicher 142 enthält mehrere Abschnitte 146 in denen Daten von mehreren verschiedenen Abschnitten eines Speichergeräts 24 oder Daten von mehreren verschiedenen Abschnitten von verschiedenen Speichergeräten 24 gleichzeitig gespeichert werden können.
  • Verfolgungsspeicher 144 umfasst einen Speicher oder ein Register, in dem die Speicherplatzverfügbarkeit von Speicher 142 gespeichert werden kann. In einer Implementierung kann Verfolgungsspeicher 144 einfach ein Kennzeichen oder ein Bit enthalten, dass anzeigt, dass entweder (1) Speicherplatz vorhanden ist oder (2) kein Speicherplatz mehr in Speicher 142 vorhanden ist. In einer anderen Implementierung kann Verfolgungsspeicher 144 einen Wert speichern, die die verfügbare Menge an Speicherplatz in Speicher 142 angibt. Verfolgungsspeicher 144 kann von Position 122 dazu verwendet werden zu bestimmen, ob in Speicher 142 ausreichend Speicherkapazität vorhanden ist, um Daten aus einem fehlerhaften Teil von Speichergerät 24 neu zu erstellen und zu speichern. In einer Implementierung kann Verfolgungsspeicher 144 als Teil von Pufferspeicher 28 bereitgestellt werden. In einer anderen Implementierung kann Verfolgungsspeicher 144 getrennt von Pufferspeicher 28 bereitgestellt werden. Verfolgungsspeicher 144 kann beispielsweise alternativ durch ein oder mehrere Bits in einem Register von Puffer 26 bereitgestellt werden.
  • Host 122 verwendet Speichermodul 120 zur Speicherung von Anwendungen und/oder Daten. In einer Implementierung kann Host 122 über eine Hauptplatine oder andere Leiterplatten verfügen, die eine Buchse aufweisen, in der Randstecker von Speichermodul 120 befestigt werden können. Host 122 umfasst Prozessor 150, Ausgang 152 und Speichercontroller 154.
  • Prozessor 150, der manchmal eine CPU beinhaltet, umfasst eine oder mehrere Verarbeitungseinheiten, die Daten und/oder Anwendungen verwenden, die in Speichermodul 120 gespeichert sind, um eine Ausgabe an Ausgang 152 zu erzeugen. Ausgang 152 umfasst ein oder mehrere Geräte, über die die Ausgabe von Prozessor 150 erfolgen kann. In einer Implementierung kann Ausgang 152 einen Monitor oder Bildschirm umfassen. In einer anderen Implementierung kann Ausgang 152 entweder alternativ oder zusätzlich ein Druckgerät umfassen. In einer anderen Implementation kann Ausgang 152 ein Speichergerät zur Speicherung der Ausgabe umfassen. Obwohl Ausgang 152 als lokal zu Prozessor 150 dargestellt wird, kann in anderen Implementierungen der Ausgang 152 auch von Prozessor 150 entfernt sein und über ein Netzwerk mit Prozessor 150 verbunden sein.
  • Speichercontroller 154 bildet eine Schnittstelle zwischen Prozessor 150 und Speichermodul 120. Insbesondere lenkt Speichercontroller 154 das Lesen und Schreiben von Daten auf Speichergeräten 24 auf Speichermodul 120. Wie nachfolgend beschrieben wird identifiziert Speichercontroller 154 darüber hinaus Störungen und Fehler in Speichergeräten 24 und erstellt die Abschnitte solcher Speichergeräte 24 neu, bei denen Störungen oder Fehler festgestellt wurden, wobei die neu geschriebenen Abschnitte oder die Daten in Speicher 142 von Pufferspeicher 28 gespeichert werden. In einer Implementierung kann Speichercontroller 154 als Teil eines Chipsatzes bereitgestellt werden. In anderen Implementierungen kann Speichercontroller 154 als Teil von Prozessor 150 bereitgestellt werden oder andere Formen aufweisen.
  • Speichercontroller 154 umfasst ein Ein-/Ausgangsmodul 160, Fehlererkennungsmodul 162, Schwellwerterkennungsmodul 164, Datenerstellungsmodul 166 und Sparing-Speichermodul 168. Ein-/Ausgangsmodul 160 umfasst Programmierung oder integrierte Schaltungslogik, um die Kommunikation zwischen Speichercontroller 154 und Speichermodul 120 sowie zwischen Speichercontroller 154 und Prozessor 150 zu ermöglichen. Hinsichtlich Speichermodul 120, ermöglicht Modul 160 solche Transaktionen wie Lese- und Schreibvorgänge mit Speichergeräten 24 über Puffer 26. In einer Implementierung ermöglicht Speichercontroller 154 die Kommunikation mit Speichergeräten 24 unter Verwendung von DDR(Double Data Rate)-Protokollen.
  • Fehlererkennungsmodul 162 umfasst Programmierung oder integrierte Schaltungslogik, die Fehler in Abschnitten von Speichergeräten 24 entdeckt. In einer Implementierung verwendet das Fehlererkennungsmodul 162 den Fehlerkorrekturcode (Error Correction Code, ECC) zur Erkennung und/oder Korrektur sowohl von Einfach- als auch Mehrfachbitfehlern in einem von einem oder mehreren fehlerhaften Speichergeräten 24 kommenden Datenworten. Insbesondere encodiert ECC Informationen in einem Block von Bits, um einen einzigen Fehler wiederherzustellen. Wenn Daten auf ein Speichergerät 24 geschrieben werden, verwendet ECC einen Algorithmus zur Erzeugung von Prüfbits, die nach der Addierung durch den Algorithmus zu einer Prüfsumme führen, die in einem der Speichergeräte 24 gespeichert wird. Wenn Daten aus einem Abschnitt des Speichergeräts 24 gelesen werden, berechnet der Algorithmus die Prüfsumme neu und vergleicht Sie mit der Prüfsumme der geschriebenen Daten. Wenn die Prüfsummen übereinstimmen, sind die Daten gültig. Weichen sie von einander ab, weisen die Daten einen Fehler auf, wobei der Fehler isoliert und dem Rechensystem 100 gemeldet wird. Im Falle eines Einfachbitfehlers kann die ECC-Speicherlogik die Ausgabe der Daten korrigieren, damit das System weiterhin funktionieren kann.
  • Schwellwerterkennungsmodul 164 umfasst Programmierung oder integrierte Schaltungslogik, die die Anzahl der Fehler in jedem Rang von Speichergeräten 24 überwacht. Im Besonderen vergleicht Modul 164 die Anzahl der Fehler pro Rang des Speichergeräts 24 mit einer vordefinierten Fehlerschwelle. In einer Implementierung wird ein Wert als vordefinierte Fehlerschwelle festgelegt, bei dem sich die Transaktionsverzögerungen aufgrund der Fehleranzahl nicht mehr auf einem akzeptablen Niveau befinden. Als Reaktion darauf, ob die Anzahl der Fehler pro Range des Speichergeräts 24 dem vorab definierten Schwellwert entspricht oder überschreitet, werden Module 166 und 168 zusammen mit Pufferspeicher 28 implementiert. In anderen Implementierungen können andere Schwellwerte als die Anzahl der Fehler pro Rang zur Initialisierung von Modulen 166, 168 und Pufferspeicher 28 zur Fehlerkorrektur verwendet werden.
  • Datenerstellungsmodul 166 umfasst Programmierung oder integrierte Schaltungslogik, die die Abschnitte von Speichergerät 24 neu erstellt, bei denen Modul 162 einen Fehler identifiziert hat. Wie vorstehend beschrieben verwendet Datenerstellungsmodul 166 in einer Implementierung die Prüfbits und die Prüfsumme zur Neuerstellung der Originaldaten des fehlerhaften Abschnitts von Speichergerät 24. In anderen Implementierungen kann der fehlerhafte Abschnitt von Speichergerät 24 auf andere Weisen neu erstellt werden.
  • Sparing-Speichermodul 168 umfasst Programmierung oder integrierte Schaltungslogik, die Pufferspeicher 28 unter Verwendung eines über Ersatzstatuseingang 36 übertragenen Signals aktiviert. Des Weiteren speichert Sparing-Speichermodul 168 die von Modul 166 bereitgestellten Daten in Pufferspeicher 28. Die Speicherung der neu erstellten Daten im Hauptspeicher 142 kann entweder durchgeführt werden nachdem oder bevor Adressen im Hauptspeicher 142 den Adressen im Speichergerät 24 zugeordnet wurden, in denen Fehler gefunden wurden und für die die darin enthaltenen Daten neu erstellt worden sind.
  • ist ein Flussdiagramm, das eine beispielhafte Methode 200 darstellt, die von System 100 ausgeführt werden kann, um Fehler zu beheben, die in einem oder mehreren Speichergeräten 24 festgestellt wurden. Wie in Schritt 210 dargestellt, aktiviert nach der Identifikation eines Fehlers in einem oder mehreren Speichergeräten 24 oder nach der Feststellung durch Fehlererkennungsmodul 162, dass zumindest ein Teil von Speichergerät 24 fehlerhaft ist, Ersatzspeichermodul 168 von Speichercontroller 154 den Pufferspeicher 28, indem es über Ersatzstatuseingang 36 (was manchmal als Ansteuern des Ersatzstatus 10 bezeichnet wird) ein Signal an Puffer 26 sendet. In einigen Implementierungen, in denen Puffer 26 ECC zur Korrektur von Einfachbitfehlern verwendet (oder ECC zur Korrektur von Mehrfachbitfehlern verwendet), kann die Verwendung von Pufferspeicher 142 und Pufferspeicher 28 verzögert werden, bis die Anzahl der durch Modul 162 identifizierten Fehler einen vorab definierten Schwellwert überschreitet, der durch Schwellwerterfassungsmodul 164 festgelegt wird. Während solch einer Aktivierung von Pufferspeicher 28, kann auch Verfolgungsspeicher 144 überprüft oder gelesen werden, um festzustellen, ob im Hauptspeicher 142 genug Kapazität oder Speicherplatz vorhanden ist, um die neu erstellten Daten aus den als fehlerhaft identifizierten Abschnitten von einem oder mehreren Speichergeräten 24 zu speichern.
  • Wie in Schritt 212 dargelegt ordnet die Mapping Logik 38 in Speichermodulpuffer 26 Speicherorte oder Adressen der als fehlerhaft identifizierten Abschnitte in Speichergerät 24 neuen Speicherorten oder Adressen im Hauptspeicher 142 zu. Eine Adresse A1 im Speichergerät 24, die Teil einer Speichereinheit ist, die einen oder mehrere Fehler aufweist, kann beispielsweise einer neuen Adresse A2 in einem Abschnitt 146 des Hauptspeichers 142 zugeordnet werden. Anschließend werden alle Transaktionen (Lesen, Schreiben und Ähnliches) für Adresse A1, die von Puffer 26 erhalten werden, durch Puffer 26 an die neu zugewiesene entsprechende Adresse A2 umgeleitet. In einer anderen Implementierung kann die neue Adresse A2, die der alten Adresse A1 zugewiesen ist, an Speichercontroller 154 oder an Prozessor 150 kommuniziert werden, der die neue Adresse A2 statt der alten Adresse A1 verwendet, wenn für die in der alten Adresse A1 enthaltene Daten Transaktionen an Speichermodul 120 kommuniziert werden. Wie bereits dargestellt kann eine solche Zuordnung durchgeführt werden bevor Speichermodul 20 die neu erstellten Daten aus den Abschnitten von Speichergerät 24 erhält, die als fehlerhaft identifiziert wurden, oder aber danach. Eine solche Zuordnung kann den gesamten freien Speicherplatz 142 oder nur einen Teil 146 von Speicher 142 verwendet.
  • Wie in Schritt 214 dargelegt, erstellt Datenerstellungsmodul 166 Daten aus den Abschnitten von Speichergerät 24 neu, in denen ein oder mehrere Fehler festgestellt wurden. Wie bereits beschrieben verwendet in einer Implementierung das Datenerstellungsmodul 166 die Prüfbits und die Prüfsumme dazu, die Originaldaten der fehlerhaften Abschnitte von Speichergerät 24 neu zu erstellen. In anderen Implementierungen kann der fehlerhafte Teil von Speichergerät 24 auf andere Weisen neu erstellt werden.
  • Wie in Schritt 216 dargelegt, speichert Ersatzspeichermodul 168 die neu erstellten Daten an den neu zugeordneten oder neuen Adressen/Speicherorten im Hauptspeicher 142 von Pufferspeicher 28. In diesen Implementierungen, zu denen Verfolgungsspeicher 144 gehört, oder in den Implementierungen, wie Speicherplatz im Register von Puffer 26, können Ersatzspeichermodul 168 oder Mapping-Logik 38 von Puffer 26 neue Daten oder neue Informationen entweder dazu speichern, wie viel Speicherplatz von Speicher 142 belegt ist oder dazu, wie viel Speicherplatz von Speicher 142 zur weiteren Verwendung zur Verfügung steht. In einer Implementierung kann Verfolgungsspeicher 144 verwendet werden, um anzugeben, dass Datenspeicher 142 voll ist, statt eine Zahl für den belegten oder eine Zahl für den in Speicher 142 verfügbaren Speicherplatz anzugeben. Puffer 26 kann beispielsweise einen Bit in Verfolgungsspeicher 144 oder in einem seiner Register setzen, um anzugeben, ob noch Speicherplatz zu Verfügung steht, nachdem die neu erstellten Daten in Datenspeicher 142 geschrieben wurden. Das nächste Mal, wenn der Ersatzstatus angesteuert wird, kann Speichercontroller 154 das Bit lesen um festzustellen, ob eine solche Sparing-Operation abgeschlossen werden kann.
  • Insgesamt bieten Speichermodul 22 und Speichercontroller 154 Speichermodul 22 eine Fehlertoleranz, die die Bandbreite und die Speicherkapazität nur minimal beeinträchtigen. Da Daten, die aus fehlerhaften Abschnitten von Speichergerät 24 neu erstellt wurden in Speicher 142 gespeichert werden, der entsprechenden Speicherorten der fehlerhaften Abschnitte von Speichergerät 24 zugeordnet ist, werden die korrigierten Fehler so gespeichert, dass nachfolgende Transaktionen mit den neu erstellten Daten kein ECC verwenden und Bandbreite sparen können. Da solche korrigierten Fehler darüber hinaus in Pufferspeicher 28 gespeichert werden, kann Speichermodul 22 größer sein, während die Verwendung von Doppelchip-Ersatzalgorithmen vermieden wird, die ansonsten die Verwendung von Burstlänge (Chop 4) und Warteschlangenverzögerungen erfordern, die durch das Erfordernis verursacht werden, dass DDR-Kanäle, Speichermodul 22 oder Speichergerät 20 paarweise im Gleichlauf ausgeführt werden müssen, um Fehlerkorrekturwörter zu liefern, die breit genug sind, um der Anzahl der Speichergeräte in jedem Rang von Speichergerät 22 zu entsprechen. Infolgedessen wird Speicherbandbreite gespart.
  • Da die neu erstellten Daten in Pufferspeicher 28 statt in einem oder mehreren Ersatzspeichergeräten gespeichert werden, die speziell für die Fehlerkorrektur abgestellt werden, wird die Speicherkapazität erhalten oder ausgeweitet. Im Gegensatz zur Verwendung von Ersatzspeichergeräten, die speziell für die Fehlerkorrektur abgestellt werden, bietet Pufferspeicher 28 eine erhöhte Granularität für die. Ein Fehler in einer einzelnen Speicherbank von Speichergerät 24, der in einem Ersatzrang eines Speichermoduls gespeichert ist, verhindert jede weitere Verwendung der verbleibenden Kapazität der Ersatzrangs. Im Gegensatz dazu kann ein Fehler in einem einzelnen Rang eines Speichergeräts 24 im Pufferspeicher 28 gespeichert werden, wobei derselbe Puffer 28 dazu verwendet werden kann, um andere Fehler aus dem Speichergerät 24 oder aus anderen Speichergeräten 24 zu speichern. In anderen Worten, die volle Speicherkapazität von Speicherpuffer 24 kann aufgrund dieser Granularität umfassender ausgenutzt werden. Infolgedessen braucht die Speicherkapazität von Speichermodul 22 nicht zur Gewährleistung der Zuverlässigkeit des Speichersystems reserviert werden, so dass ein größerer Teil des in einem System installierten Speichers zur Verfügung steht.
  • ist eine schematische Darstellung von Speichermodul 322, einem beispielhaften Speichermodul 22. In dem dargestellten Beispiel umfasst Speichermodul 322 ein Dual Inline Memory Module (DIMM), das Speichergeräte 324 (dargestellt als Dynamic Random Access Memories (DRAMs)) und Speichermodulpuffer 326 einschließlich Pufferspeicher 328. Speichergeräte 324 sind durch Leiterbahnen 326 (nicht dargestellt) mit Puffer 326 verbunden und bieten Platz zum Speichern von Daten und Anwendungen. In einer Implementierung verfügt jedes Speichergerät 324 über eine Speicherkapazität von mindestens 4 GB. In anderen Implementierungen kann jedes Speichergerät 324 über eine andere Speicherkapazität verfügen. Jedes Speichergerät 324 enthält mehrere Speicherbänke. Darüber hinaus werden Speichergeräte 324 in Ränge, Gruppierungen von Speichergeräten 324 aufgeteilt, die vom Speichercontroller für eine Lese-, Schreib- oder eine andere Speicheroperation zusammen ausgewählt werden. In der dargestellten beispielhaften Implementierung, ist Speichermodul 322 ist ein doppelrangiges Modul, wobei jeder Rang 16 Speichergeräte 324 zur Speicherung von Daten und zwei Speichergeräte 324 zur Speicherung von ECC umfasst. In anderen Implementierungen kann Speichermodul 322 eine unterschiedliche Anzahl von Speichergeräten 324, verschiedene Gruppierungen von Speichergeräten 324 in eine unterschiedliche Anzahl von Rängen und eine unterschiedliche Anzahl von Speichergeräten 324 umfassen, die für ECC vorgesehen sind. In einigen Implementierungen, können zusätzlich zur Speicherung der Fehlerkorrektur in Pufferspeicher 328 ein oder mehrere Speichergeräte 324 zusätzlich für Sparing bereitgestellt werden.
  • Speichermodulpuffer 326 ähnelt Speichermodulpuffer 26 insofern als dass Speichermodulpuffer 326 Mapping-Logik 38 (oben beschrieben) enthält. In der dargestellten beispielhaften Implementierung beinhaltet Speichermodul 326 Verfolgungsspeicher 144. In einer Implementierung umfasst Verfolgungsspeicher 144 ein oder mehrere Bits in einem Register von Pufferspeicher 326, die angeben, ob in Speicher 328 Speicherplatz zur Verfügung steht. In anderen Implementierungen kann Pufferspeicher 144 an anderen Standorten bereitgestellt werden. In der dargestellten Implementierung umfasst Pufferspeicher 328 einen Load Reduced DIMM-Puffer (LRDIMM-Puffer). In anderen Implementierungen kann Pufferspeicher 328 andere Pufferformen oder ein Register umfassen.
  • Wie des Weiteren in gezeigt, umfasst Pufferspeicher 326 darüber hinaus zusätzlich zum Ersatzstatuseingang oder Eingangsstift 36 Daten- und Strobe-Eingänge oder -Stifte 370, adressiert und steuert Stifte 372 und Taktstifte 374. Stifte 370, 372 und 374 umfassen Eingänge wie Randstecker, Kontaktflächen, Goldzungen, durch die Strobe-Signale an Puffer 326 übertragen werden. Daten- und Strobe-Stifte 370 werden zur Übertragung von Signalen an Speichergerät 324 verwendet. Adress- und Steuerstifte 372 werden während einer Schreiboperation oder während einer Stroking-Operation unter Verwendung von Zeilen- und Spaltensignalen zur Identifizierung oder Adressierung von bestimmten Standorten in einem Speichergerät verwendet. Taktstifte 374 übertragen den Differenzialtakt bzw. Zeitablauf des Systems an Puffer 326.
  • Pufferspeicher 28 wird vorstehend hinsichtlich Speichermodul 22 beschrieben. In dem dargestellten Beispiel hat der Pufferspeicher 28 eine Speicherkapazität, die der Speicherkapazität von Speichergerät 324 entspricht. In einer Implementierung hat Pufferspeicher 28 eine Speicherkapazität von mindestens 4 GB. Wenn Pufferspeicher 28 nicht verwendet wird (keine neu erstellten Daten aus einem fehlerhaften Abschnitt von Speichergerät 324 speichert), kann Pufferspeicher 28 in einem Self-Refresh-Zustand gehalten werden, was Strom spart. Zu diesem Zeitpunkt wird die Ansteuerung des Ersatzstatussignals ausgesetzt.
  • und stellen Speichermodul 322 während eines beispielhaften Fehlers oder einer Fehlerkorrekturoperation gemäß Methode 200 unter Verwendung von Speichercontroller 154 dar. und stellen die Identifizierung eines Fehlers dar, der dazu führt dass die vorab definierte Fehleranzahl einen zuvor festgelegten Schwellwert überschreitet und korrigierte Daten im Speicherpuffer 28 gespeichert werden. Wie in dargestellt werden bei Ausfall von Speichergerät 324 Fehler zunächst unter Verwendung von ECC-Bits korrigiert, um die Daten (dargestellt wird ECC mit Ein-Chip-Ersatz) zu rekonstruieren, bis ein vorab definierter Fehlerschwellwert erreicht wird. Wenn der Fehlerschwellwert von irgendeinem Speichergerät 324 überschritten wird oder wenn das Speichergerät in irgendeinem Rang des Speichergeräts 322 vollständig ausfällt, löst Fehlererkennungsmodul 162 die Löschung aus (wie in dargestellt) und steuert den Ersatzstatuseingang oder Stift 36 an. Insbesondere Speichercontroller 154 (in dargestellt) verwendet den Adress-/Steuerbus (verbunden mit den Adress- und Steuerstiften 372) zur Aktivierung von Pufferspeicher 28 und Deaktivierung von Daten-Strobe-Stiften, die mit dem ausgefallenen Speichergerät verbunden sind, wenn eine Transaktion, die mit der Rang in Verbindung steht, der das ausgefallene Speichergerät 324 enthält, angesteuert wird. Nach dieser Operation wird das Ersatzstatussignal deaktiviert und die Mapping-Logik 38 ordnet Adressen des ausgefallenen Speichergeräts 324 dem Pufferspeicher 28 zu, so dass Pufferspeicher 28 das ausgefallene Speichergerät 324 ersetzt. Zur Korrektur weiterer Fehler in mehr als einem Rang desselben Speichermoduls 22 kann die Speichermenge in Pufferspeicher 28 erhöht werden.
  • stellt Rechensystem 400 schematisch dar, ein Beispiel für Rechensystem 100. Rechensystem 400 ist mit dem Rechensystem 100 identisch, mit Ausnahme der Tatsache, dass Rechensystem 400 mit zwei Speichermodulen 322 dargestellt wird, die mit Speicher 354 verbunden sind. In einer Implementierung kommuniziert Speichercontroller 154 mit Speichermodulen 322, indem die DDR-Kanäle im Gleichlauf betrieben werden. Infolgedessen kann sich Rechensystem 400 von einem weiteren Fehler auf jedem der Speichermodule 322 im Gleichlaufpaar erholen. Insbesondere da solche Speichermodule 322 im Gleichlauf betriebene DDR-Kanäle verwenden, hat jeder Speicher 322 beide Pufferspeicher zur Speicherung von Daten zur Verfügung, die aus fehlerhaften Abschnitten von Speichergeräten 24 neu erstellt werden. Da Ränge über mehrere Speichermodule 322 verteilt sind, können in demselben Rang oder auch in verschiedenen Rängen mehrere Fehler auftreten, solange sie nicht gleichzeitig auftreten. Von Pufferspeicher 28 bereitgestellter zusätzlicher Speicherplatz steht bei einer größeren Anzahl von Fehlern zur Adressierung zur Verfügung.
  • stellt Rechensystem 500 schematisch dar, eine beispielhafte Implementierung von Rechensystem 100. Rechensystem 500 ist Rechensystem 100 ähnlich, mit der Ausnahme, dass Rechensystem 500 Speichermodul 522 verwendet. Speichermodul 522 umfasst ein registriertes Dual Inline Memory Module (R-DIMM) (wenn die verteilten Datenpuffer fehlen) oder ein Load Reduced Dual Inline Memory Module (LR-DIMM) mit verteilten Datenpuffern. Speichermodul 522 umfasst Speichergeräte 324 (oben beschrieben), verteilte Datenpuffer 525, Speichermodulpuffer 526 und Pufferspeicher 28 (oben beschrieben).
  • Verteilte Datenpuffer 525 umfassen einzelne Datenpuffer oder Speicher, die mit einem oder mehreren einzelnen Speichergeräten 324 verbunden sind. In dem dargestellten Beispiel sind Datenpuffer 525 jeweils mit einem Paar Speichergeräten 324 verbunden. In anderen Implementierungen kann jeder Datenpuffer mit einem einzelnen Speichergerät 324 oder einer größeren Anzahl von Speichergeräten 324 verbunden sein. Datenpuffer 525 stellen eine Schnittstelle zwischen Speichercontroller 154 und Speichergeräten 324 dar oder treiben Transaktionen zwischen ihnen an. Insbesondere werden Strobe- und Datensignale durch Registerlogik von Puffern 525 zwischengelagert. Wie in dargestellt, weist jeder Datenpuffer 525 verbundene Daten- und Strobe-Stifte 528 auf. In dem dargestellten Beispiel weist jeder Datenpuffer 525 8 Daten- und Strobe-Bits auf. In anderen Implementierungen können Puffer 525 andere Konfigurationen aufweisen.
  • Speichermodulpuffer 526 ähnelt Speichermodulpuffer 26 mit der Ausnahme, dass Puffer 526 ein Register für Adress-/Steuersignale und eine Phasenregelschleife (Phase-Locked Loop, PLL) umfasst und Register oder Datenpuffer auslässt, die nun über Speichergerät 324 verteilt sind. Wie in dargestellt umfasst Speichermodulpuffer 526 darüber hinaus vier (4) Daten- und die verbundenen Strobe-Eingänge 536. Bei Ausfall oder mit einem bestimmten Speichergerät 324 verbundenen Fehlern, werden Daten- und Strobe-Stifte 536 aktiviert und anstelle dieser Daten- und Strobe-Stifte verwendet, die mit dem fehlerhaften Speichergerät 324 verbunden sind. Daten- und Strobe-Stifte 536 empfangen Daten- und Strobe-Signale von Speichercontroller 154, die zum Schreiben von Daten in und Lesen von Daten aus diesen Abschnitten des Pufferspeichers 28 verwendet werden, die den fehlerhaften Abschnitten eines oder mehrerer Speichergeräte 324 zugeordnet wurden.
  • Wenn es in Betrieb ist, funktioniert System 500 ähnlich wie System 100. Wenn Fehlererkennungsmodul 162 von Speichercontroller 154 in einem Speichergerät 324 einen Fehler identifiziert, der dafür sorgt, dass die Gesamtanzahl der Fehler pro Rang (in einer Implementierung) einen vordefinierten Schwellwert überschreitet oder wenn innerhalb irgendeines Rangs des Speichermoduls 522 ein Speichergerät 324 vollständig ausfällt, löst Fehlererkennungsmodul 162 eine Löschung aus und steuert den Ersatzstatuseingang oder -stift 36 an. Insbesondere verwendet Speichercontroller 154 den Adress-/Steuerbus (verbunden mit den Adress- und Steuerstiften 372) zur Aktivierung von Pufferspeicher 28 und zur Deaktivierung von Daten-Strobe-Stiften 528, die mit dem ausgefallenen Speichergerät 324 verbunden sind, wenn eine Transaktion angesteuert wird, die mit dem Rang verbunden ist, der das ausgefallene Speichergerät 324 enthält. Nach dieser Operation wird das Ersatzstatussignal deaktiviert und die Mapping-Logik 38 ordnet die Adressen des ausgefallenen Speichergeräts 324 dem Pufferspeicher 28 zu, so dass Pufferspeicher 28 das ausgefallene Speichergerät 324 ersetzt. Nachfolgende Transaktionen hinsichtlich der zugeordneten Standorte im Pufferspeicher 28 werden unter Verwendung von Daten- und Strobe-Stift 536 auf dieselbe Weise übertragen, wie Transaktionen mit nicht fehlerhaften Speichergeräten 324 mit ihren zugewiesenen Daten- und Strobe-Stiften 528 ausgeführt werden. Zur Korrektur weiterer Fehler in mehr als einem Rang desselben Speichermoduls 322 kann die Speichermenge in Pufferspeicher 28 erhöht werden.
  • ist ein Flussdiagramm einer beispielhaften Methode 600, einer speziellen Implementierung von der oben beschriebenen Methode 200. Methode 600 kann von einem Rechensystem ausgeführt werden, das über einen Speichercontroller verfügt, wie beispielsweise System 100, System 400 oder System 500. Wie Schritt 602 erkennen lässt beginnt die Methode 600 mit einem mit einem anfänglich „intakten” Speichermodul 322 oder einer „intakten” Reihe von Speichermodulen 322 (wobei, ähnlich wie in dargestellt, ein Rang über mehrere Speichermodule verteilt sein kann).
  • Wie in Schritt 604 dargestellt bestimmt Fehlererkennungsmodul 162, ob ein Rang oder ein Speichergerät 324 eines Rangs einen Fehler enthält. Wie oben ausgeführt können die Fehler durch Fehlererkennungsmodul 162 unter Verwendung von Prüfbits und Prüfsummen erfasst werden, die in den ECC-Speicherabschnitten der Speichergeräte 324 gespeichert sind, die für solche ECC-Operationen bestimmt sind. Wie in Schritt 606 dargestellt kann es zu einem Systemabsturz kommen (Schritt 608), wenn solche identifizierten Fehler nicht korrigierbar sind, wobei Speichermodul (MM) 22, 322, 522 ersetzt wird (Schritt 610), wodurch die Integrität des Rangs, wie in Schritt 612 dargestellt, vollständig wiederhergestellt wird.
  • Wenn, wie in Schritt 606 und 614 dargestellt, solche vom Fehlererkennungsmodul 162 (in dargestellt) identifizierten Fehler korrigierbar sind, korrigiert Speichercontroller 154 den Fehler des Speichergeräts unter Verwendung von ECC. Dabei wird im Einzelnen, wie in Schritt 616 dargestellt, der Fehlerstandort einem Scrubbing oder einer Löschung unterzogen und die Fehler werden korrigiert oder decodiert und die Korrektur wird nach Schritt 618 der entsprechenden Speichergerätreihe und -bank zugewiesen.
  • Wie in Schritt 620 dargestellt bestimmt das spezielle Erkennungsmodul 164, das die Anzahl der Fehler pro Rang verfolgt, ob der Fehlerschwellwert pro Rang erreicht wurde. Wenn, wie in Schritt 622 dargestellt, der Fehlerschwellwert mit dem neuen Fehler erreicht wurde, bestimmt der Speichercontroller 154, ob ausreichend freie Speicherstandorte oder Speicherplatz in Pufferspeicher 28 zur Verfügung stehen. In einer Implementierung konsultiert Speichercontroller zur Bestimmung 154 Verfolgungsspeicher 144. Wenn, wie in Schritt 624 dargestellt, Pufferspeicher 28 nicht über ausreichend Speicherplatz zur Speicherung der neu erstellten Daten aus dem fehlerhaften Abschnitt von Speichergerät 24, 324 aufweist, löst Speichercontroller 154 den Ersatz von Speichermodul 22, 322, 522 aus oder fordert dazu auf.
  • Wenn, wie in den Schritten 626 und 628 dargestellt, Pufferspeicher 28 über genügen Speicherplatz für die Aufnahme oder die Speicherung der neu erstellten Daten aus dem fehlerhaften Abschnitt des Rangs oder Speichergeräts 24, 324 verfügt, aktiviert Ersatzspeichermodul 168 von Speichercontroller 154 Pufferspeicher 28 durch die Übertragung eines Signals über Ersatzstatuseingang 36 (was manchmal auch als Ansteuerung des Ersatzstatus 36 bezeichnet wird) an Puffer 26, 326, 526.
  • Wie in Schritt 630 dargestellt, erstellt Datenerstellungsmodul 166 Daten aus jenen Abschnitten eines Speichergeräts 24, 324, indem ein oder mehrere Fehler identifiziert wurden, neu. Wie oben beschrieben verwendet Datenerstellungsmodul 166 in einer Implementierung die Prüfbits und die Prüfsumme zur Neuerstellung der Originaldaten des fehlerhaften Abschnitts von Speichergerät 24. In anderen Implementierungen kann der fehlerhafte Abschnitt von Speichergerät 24 auf andere Weise wieder erstellt werden. Ersatzspeichermodul 168 speichert die wiedererstellten Daten im Hauptspeicher 142 des Pufferspeichers 28.
  • Im dargestellten Beispiel kann Ersatzspeichermodul 168 oder Mapping-Logik 38 von Puffer 26, 326, 526 neue Daten oder neue Informationen speichern, die entweder anzeigen, wie viel Speicherplatz in Speicher 142 belegt ist oder wie viel Speicherplatz von Speicher 142 noch zur nachfolgenden Verwendung zur Verfügung steht. In einer Implementierung kann Verfolgungsspeicher 144 dazu verwendet werden anzuzeigen, wenn Hauptspeicher 142 voll ist, statt eine Zahl anzugeben, die die belegte Speicherplatzmenge oder die in Speicher 142 verbleibende Menge freien Speichersplatzes angibt. Puffer 26, 326, 526 kann beispielsweise ein Bit in Verfolgungsspeicher 144 oder in einem seiner Register setzen, das angibt, ob noch Speicher zur Verfügung steht, nachdem die neu erstellten Daten in den Speicher 142 geschrieben wurden 142. Das nächste Mal, wenn der Ersatzstatus angesteuert wird, kann Speichercontroller 154 das Bit lesen, um zu bestimmen, ob eine solche Sparing-Operation ausgeführt werden kann.
  • Wie in Schritt 632 dargestellt ordnet Mapping-Logik 38 in Speichermodulpuffer 26, 326, 526 Speicherorte oder Adressen der als fehlerhaft identifizierten Abschnitte in Speichergeräten 24 neuen Speicherorten oder Adressen im Hauptspeicher 142 zu. Eine Adresse A1 in Speichergerät 24, 3 bis 4, die Teil einer Speichereinheit ist, die einen oder mehrere Fehler aufweist, kann einer Adresse A2 in einem Abschnitt 146 des Hauptspeichers 142 neu zugeordnet werden. Nachfolgend wird jede von Puffer 26, 322, 526 erhaltene Transaktion (Lesen, Schreiben oder Ähnliches) für Adresse A1 von Puffer 26, 326, 526 an die entsprechende neu zugewiesene Adresse A2 weitergeleitet. In einer anderen Implementierung wird die der alten Adresse A1 zugewiesene neue Adresse A2 dem Speichercontroller 154 oder dem Prozessor 150 (wie in dargestellt) mitgeteilt, der die neue Adresse A2 anstelle der alten Adresse A1 verwendet, wenn Speichermodul 120 Transaktionen für die unter der alten Adresse A1 enthaltenen Daten kommuniziert. Wie oben dargestellt kann diese Zuordnung (Mapping) ausgeführt werden bevor Speichermodul 22, 322, 522 die Daten erhält, die aus den als fehlerhaft identifizierten Abschnitten von Speichergerät 24, 324 neu erstellt wurden, oder aber danach. Eine solche Zuordnung kann den gesamten Ersatzspeicherplatz in Speicher 142 verwenden oder aber nur einen Teil 146 von Speicher 142.
  • Obwohl die vorliegende Offenlegung unter Bezugnahme auf beispielhafte Ausführungsformen beschrieben wurde, werden Fachleute erkennen, dass in Form und Detail Änderungen vorgenommen werden können, ohne vom Geist und Umfang des beanspruchten Gegenstandes abzuweichen. Obwohl möglicherweise verschiedene Ausführungsformen beschrieben wurden, die eine oder mehre Funktionen beinhalten, die einen oder mehrere Vorteile aufweisen, ist vorgesehen, dass die beschriebenen Funktionen in den beschriebenen beispielhaften Ausführungsformen oder in anderen alternativen Ausführungsformen mit einander vertauscht werden können oder alternativ dazu mit einander kombiniert werden können. Da die Technologie der vorliegenden Offenbarung relativ komplex ist, sind nicht alle Änderungen der Technologie vorhersehbar. Die vorliegende Offenbarung, die unter Bezugnahme auf beispielhafte Ausführungsformen beschrieben wird, und in den folgenden Ansprüchen dargelegt wird, zielt offenkundig darauf ab, so breit wie möglich angelegt sein. Soweit nicht anders vermerkt umfassen Ansprüche, die ein bestimmtes einzelnes Element anführen auch eine Vielzahl solcher besonderen Elemente.

Claims (15)

  1. Eine Vorrichtung, die folgendes aufweist: ein Speichermodul (22, 122, 322, 522), das Speichergeräte (24, 324); einen Speichermodulpuffer (26, 326, 526), wobei der Speichermodulpuffer einen Ersatzstatuseingang (36) beinhaltet und einen Pufferspeicher (28) umfasst, wobei der Puffer so konfiguriert ist, das er im Pufferspeicher (28) die Daten speichert, die aus mindestens einem der Speichergeräte (24, 324) neu erstellt werden, die einen Fehler aufweisen.
  2. Die Vorrichtung nach Anspruch 1, wobei die Speichergeräte (24, 324) ein Speichergerät (24, 324) mit einer Speichergerätkapazität und eine Bank mit einer Bankspeicherkapazität aufweisen und wobei der Pufferspeicher (28) eine Speicherkapazität aufweist, die mindestens der Bankspeicherkapazität entspricht.
  3. Die Vorrichtung nach Anspruch 2, wobei die Speicherkapazität des Pufferspeichers (28) mindestens 256 MB beträgt.
  4. Die Vorrichtung nach Anspruch 2, wobei die Speicherkapazität von Pufferspeicher (28) der Kapazität des Speichergerätes entspricht.
  5. Die Vorrichtung nach Anspruch 4, wobei die Speicherkapazität des Pufferspeichers (28) mindestens 4 GB beträgt.
  6. Die Vorrichtung nach Anspruch 1, wobei sich der Pufferspeicher (28) im Speichermodulpuffer (26, 326, 526) befindet.
  7. Die Vorrichtung nach Anspruch 1, die ferner Daten- und Strobe-Signale (525) umfasst, die jedem einzelnen Speichergerät zugewiesen sind, wobei der Speichermodulpuffer (526) ferner Daten- und Steuereingangssignale (528) umfasst, wobei Speichermodulpuffer (526) Transaktionen für die Daten in Pufferspeicher (28) über die Daten- und Strobe-Eingänge (528) ausführt.
  8. Die Vorrichtung nach Anspruch 1 umfasst ferner einen Speicher (144), der einen Wert speichert, der auf dem verfügbaren Speicherplatz im Pufferspeicher (28) basiert.
  9. Die Vorrichtung nach Anspruch 1 umfasst ferner einen Speichercontroller (154) zur Identifizierung von Speichergerätfehlern, zur Kommunikation der Abschnitte des Speichergeräts (24, 324) an den Speichermodulpuffer (26, 326, 526), die unter Verwendung von Ersatzstatuseingang (36) neu erstellt werden müssen, zur Neuerstellung der Daten aus diesen Abschnitten und zur Übermittlung der neu erstellten Daten an den Pufferspeicher (28), wobei der Pufferspeicher (28) die Speicherorte der Abschnitte des Speichergeräts (24, 324) neu zuordnet, die an Speicherorten im Pufferspeicher (28) neu erstellt werden.
  10. Eine Methode, die Folgendes umfasst: Aktivierung eines ersten Abschnitts eines Pufferspeichers (28) in einem Speichermodul (22, 122, 322, 522) als Reaktion auf ein Ersatzstatussignal über einen Ersatzstatuseingang (36); Neuzuordnung erster Standorte eines ersten Abschnitts eines ersten Speichergeräts, in dem ein erster Fehler identifiziert wurde, zu ersten Standorten in einem Pufferspeicher (28); Neuerstellung erster Daten aus dem ersten Abschnitt des ersten Speichergeräts (24, 324) und Speicherung der ersten neu erstellten Daten an den ersten neu zugeordneten Speicherorten im Pufferspeicher (28).
  11. Die Methode nach Anspruch 10 umfasst ferner Folgendes: Aktivierung eines zweiten Abschnitts des Pufferspeichers (28) als Reaktion auf ein zweites Signal über den Ersatzstatuseingang (36); Neuzuordnung zweiter Standorte eines zweiten Abschnitts des ersten Speichergeräts (24, 324), in dem ein zweiter Fehler identifiziert wurde, zu zweiten Standorten im Pufferspeicher (28); Neuerstellung zweiter Daten aus dem zweiten Abschnitt des ersten Speichergeräts (24, 324) und Speicherung der zweiten neu erstellten Daten an den zweiten neu zugeordneten Speicherorten im Pufferspeicher (28).
  12. Die Methode nach Anspruch 10 umfasst ferner Folgendes: Aktivierung eines zweiten Abschnitts des Pufferspeichers (28) als Reaktion auf ein zweites Signal über den Ersatzstatuseingang (36); Neuzuordnung zweiter Standorte eines zweiten Abschnitts eines zweiten Speichergeräts (24, 324) in dem ein zweiter Fehler identifiziert wurde, zu zweiten Standorten im Pufferspeicher (28); Neuerstellung zweiter Daten aus dem zweiten Abschnitt des zweiten Speichergeräts (24, 324) und Speicherung der zweiten neu erstellten Daten an den zweiten neu zugeordneten Speicherorten im Pufferspeicher (28).
  13. Die Methode nach Anspruch 10, die ferner eine Nachverfolgung umfasst, ob im Pufferspeicher (28) Speicherplatz verfügbar ist.
  14. Die Methode nach Anspruch 10, die ferner die Erzeugung des Ersatzstatussignals als Reaktion auf die Erreichung eines Schwellwerts für Fehler pro Rang umfasst.
  15. Eine Vorrichtung, die Folgendes umfasst: einen Speichercontroller (154) mit: einem Ein-/Ausgangsmodul (160) zur Erleichterung von Transaktionen mit einem Speichermodul (22, 122, 322, 522); ein Fehlererkennungsmodul (162) zur Identifizierung von Fehlern in einem Speichergerät (24, 324) im Speichermodul (22, 122, 322, 522); ein Schwellwerterfassungsmodul (164) zur Feststellung, ob eine Anzahl von identifizierten Fehlern einen vorab definierten Schwellwert erreicht; ein Datenerstellungsmodul (166) zur Neuerstellung von Daten aus Abschnitten eines Speichergeräts (24, 324), in dem ein Fehler erfasst wurde und ein Ersatzspeichermodul (168) zur Aktivierung eines Pufferspeichers (28) des Speichermoduls (22, 122, 322, 522) und zur Speicherung der neu erstellten Daten im Pufferspeicher (28).
DE112012005617.5T 2012-01-31 2012-01-31 Speicherung von Daten in Speichermodulpuffern Ceased DE112012005617T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/023235 WO2013115783A1 (en) 2012-01-31 2012-01-31 Memory module buffer data storage

Publications (1)

Publication Number Publication Date
DE112012005617T5 true DE112012005617T5 (de) 2014-10-09

Family

ID=48905642

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012005617.5T Ceased DE112012005617T5 (de) 2012-01-31 2012-01-31 Speicherung von Daten in Speichermodulpuffern

Country Status (5)

Country Link
US (1) US20140325315A1 (de)
CN (1) CN104094351A (de)
DE (1) DE112012005617T5 (de)
GB (1) GB2512786B (de)
WO (1) WO2013115783A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087614B2 (en) * 2012-11-27 2015-07-21 Samsung Electronics Co., Ltd. Memory modules and memory systems
US9299457B2 (en) 2014-02-23 2016-03-29 Qualcomm Incorporated Kernel masking of DRAM defects
WO2015183834A1 (en) 2014-05-27 2015-12-03 Rambus Inc. Memory module with reduced read/write turnaround overhead
KR102249810B1 (ko) * 2014-07-23 2021-05-11 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102190125B1 (ko) * 2014-12-05 2020-12-11 삼성전자주식회사 어드레스 리매핑을 위한 적층형 메모리 장치, 이를 포함하는 메모리 시스템 및 어드레스 리매핑 방법
US10102884B2 (en) 2015-10-22 2018-10-16 International Business Machines Corporation Distributed serialized data buffer and a memory module for a cascadable and extended memory subsystem
CN106569742B (zh) * 2016-10-20 2019-07-23 华为技术有限公司 存储管理方法及存储设备
US10901868B1 (en) * 2017-10-02 2021-01-26 Marvell Asia Pte, Ltd. Systems and methods for error recovery in NAND memory operations
KR102427323B1 (ko) * 2017-11-08 2022-08-01 삼성전자주식회사 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법
US10671497B2 (en) * 2018-01-19 2020-06-02 International Business Machines Corporation Efficient and selective sparing of bits in memory systems
US11061431B2 (en) * 2018-06-28 2021-07-13 Micron Technology, Inc. Data strobe multiplexer
US11334447B2 (en) * 2020-08-27 2022-05-17 Nuvoton Technology Corporation Integrated circuit facilitating subsequent failure analysis and methods useful in conjunction therewith
KR20220146140A (ko) * 2021-04-23 2022-11-01 매그나칩 반도체 유한회사 Crc를 이용한 sram 동적 고장 처리 시스템 및 방법
US11537468B1 (en) 2021-12-06 2022-12-27 Hewlett Packard Enterprise Development Lp Recording memory errors for use after restarts
CN116483288A (zh) * 2023-06-21 2023-07-25 苏州浪潮智能科技有限公司 内存控制设备、方法、装置以及服务器内存模组

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941493B2 (en) * 2002-02-27 2005-09-06 Sun Microsystems, Inc. Memory subsystem including an error detection mechanism for address and control signals
DE10255872B4 (de) * 2002-11-29 2004-09-30 Infineon Technologies Ag Speichermodul und Verfahren zum Betrieb eines Speichermoduls in einem Datenspeichersystem
EP1720119A4 (de) * 2004-03-31 2008-01-23 Matsushita Electric Ind Co Ltd Speicherkarte und speicherkartensystem
US7487428B2 (en) * 2006-07-24 2009-02-03 Kingston Technology Corp. Fully-buffered memory-module with error-correction code (ECC) controller in serializing advanced-memory buffer (AMB) that is transparent to motherboard memory controller
US7590899B2 (en) * 2006-09-15 2009-09-15 International Business Machines Corporation Processor memory array having memory macros for relocatable store protect keys
TW200820231A (en) * 2006-10-31 2008-05-01 Sunplus Technology Co Ltd Error code correction device with high memory utilization efficiency
US7564722B2 (en) * 2007-01-22 2009-07-21 Micron Technology, Inc. Memory system and method having volatile and non-volatile memory devices at same hierarchical level
US8473791B2 (en) * 2007-04-30 2013-06-25 Hewlett-Packard Development Company, L.P. Redundant memory to mask DRAM failures
US8259497B2 (en) * 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
CN100527091C (zh) * 2007-08-22 2009-08-12 杭州华三通信技术有限公司 一种实现差错检查与纠正功能的装置
US20090106513A1 (en) * 2007-10-22 2009-04-23 Chuang Cheng Method for copying data in non-volatile memory system
US20100195393A1 (en) * 2009-01-30 2010-08-05 Unity Semiconductor Corporation Data storage system with refresh in place
US8347175B2 (en) * 2009-09-28 2013-01-01 Kabushiki Kaisha Toshiba Magnetic memory
US8510631B2 (en) * 2009-11-24 2013-08-13 Mediatek Inc. Multi-channel memory apparatus and method thereof
US8429468B2 (en) * 2010-01-27 2013-04-23 Sandisk Technologies Inc. System and method to correct data errors using a stored count of bit values
JP5066199B2 (ja) * 2010-02-12 2012-11-07 株式会社東芝 半導体記憶装置
JP4901968B2 (ja) * 2010-03-01 2012-03-21 株式会社東芝 半導体記憶装置
US8745323B2 (en) * 2011-09-01 2014-06-03 Dell Products L.P. System and method for controller independent faulty memory replacement

Also Published As

Publication number Publication date
CN104094351A (zh) 2014-10-08
US20140325315A1 (en) 2014-10-30
GB2512786A (en) 2014-10-08
GB2512786B (en) 2016-07-06
GB201412874D0 (en) 2014-09-03
WO2013115783A1 (en) 2013-08-08

Similar Documents

Publication Publication Date Title
DE112012005617T5 (de) Speicherung von Daten in Speichermodulpuffern
DE112006004263B4 (de) Speicherbaustein
DE102017104448A1 (de) Datenspeichervorrichtung
DE102006048856B4 (de) Verfahren zum Betreiben einer IC-Halbleiterspeichervorrichtung und IC-Halbleiterspeichervorrichtung
DE102008015990B4 (de) Speichermodul mit Rängen von Speicherchips und gestapelten ECC-Speichervorrichtungen sowie Computersystem
DE112011106021B4 (de) Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
DE60308183T2 (de) Pufferanordnung für speicher
DE102020115736A1 (de) Halbleiterspeichervorrichtung und Verfahren zum Betreiben der Halbleiterspeichervorrichtungen
DE102020104367A1 (de) Refresh-befehlssteuerung für eine hostunterstützung einer rowhammer-mitigation
DE102018125277A1 (de) Speichergerät, das zum Speichern und Ausgeben einer Adresse als Antwort auf einen internen Befehl konfiguriert ist
DE102006045113B3 (de) Speichermodul-System, Speichermodul, Buffer-Bauelement, Speichermodul-Platine, und Verfahren zum Betreiben eines Speichermoduls
EP0527866B1 (de) Integrierter halbleiterspeicher mit paralleltestmöglichkeit und redundanzverfahren
DE112019000211B4 (de) Effizientes und selektives ersatzweises Speichern von Bits in Arbeitsspeichersystemen
DE112015003397T5 (de) Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten
DE3876459T2 (de) Speicher und deren pruefung.
DE112016006203T5 (de) Verfahren zum zugreifen auf ein dual in-line memory-modul über mehrere datenkanäle oder betreiben desselben
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102020115747A1 (de) Speichermodul, Fehlerkorrekturverfahren für Speicher-Controller, der dieses steuert, und Rechensystem, das dieses umfasst
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE102011075814A1 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE112015003569B4 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE102023110723A1 (de) Randomisierung von gezielten auffrischungsverwaltungs(directed refresh management - drfm)-pseudo-zielzeilenauffrischungs(pseudo target row refresh - pttr)-befehlen
DE112020003028T5 (de) Vorrichtungen und verfahren zum reparieren von defekten speicherzellen basierend auf einer spezifizierten fehlerrate für bestimmte speicherzellen
DE112016003416T5 (de) Decodieren von Daten unter Verwendung von Bitleitungsdefektinformationen
DE10316931B4 (de) Verfahren und Vorrichtung zum Testen von DRAM-Speicherbausteinen in Multichip-Speichermodulen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G11C0007100000

Ipc: G11C0029000000

R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOU, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER, SCHE, DE

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final