DE112016005869T5 - Vorausschauende Arbeitsspeicherinstandhaltung - Google Patents

Vorausschauende Arbeitsspeicherinstandhaltung Download PDF

Info

Publication number
DE112016005869T5
DE112016005869T5 DE112016005869.1T DE112016005869T DE112016005869T5 DE 112016005869 T5 DE112016005869 T5 DE 112016005869T5 DE 112016005869 T DE112016005869 T DE 112016005869T DE 112016005869 T5 DE112016005869 T5 DE 112016005869T5
Authority
DE
Germany
Prior art keywords
memory
die
logic
data
read data
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.)
Pending
Application number
DE112016005869.1T
Other languages
English (en)
Inventor
Shaun M. MILLER
Richard P. Mangold
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112016005869T5 publication Critical patent/DE112016005869T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/006Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

Vorausschauende Arbeitsspeicherinstandhaltung gemäß einem Aspekt der vorliegenden Beschreibung kann einen Ausfall eines ausgewählten Primärarbeitsspeicher-Dies eines Arrays prognostizieren und einen Ersatzarbeitsspeicher-Die mit den Daten des ausgewählten Primärarbeitsspeicher-Dies, der als ausfallgefährdet eingestuft wird, vor jeglichem tatsächlichen Ausfall des ausgewählten Arbeitsspeicher-Dies, vorladen. Für den Fall, dass der ausgewählte Primärarbeitsspeicher-Die in der Folge tatsächlich ausfällt, kann der mit den Daten des ausgewählten Primärarbeitsspeicher-Dies vorgeladene Ersatzarbeitsspeicher-Die mit einer bereits vorhandenen Kopie der Daten des ausgefallenen Primärarbeitsspeicher-Dies ohne Weiteres den Platz des ausgefallenen Primärarbeitsspeicher-Dies einnehmen. Andere Aspekte werden hierin beschrieben.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung bezieht sich allgemein auf Vorrichtungen, die Ersatzarbeitsspeicher-Dies aufweisen.
  • HINTERGRUND
  • Arbeitsspeicher mit wahlfreiem Zugriff (RAMs) verwenden oft mehrere Arbeitsspeicher-Dies, bei denen jeder Arbeitsspeicher-Die ein separates Halbleitersubstrat aufweist, auf dem ein integrierter Arbeitsspeicherschaltkreis gefertigt ist. Die Arbeitsspeicher-Dies sind häufig in einem Array von Dies angeordnet, wobei die gesamte Datenspeicherkapazität des Arbeitsspeicher-Arrays die Summe der addierten Speicherkapazitäten jedes einzelnen Arbeitsspeicher-Dies ist.
  • Ein Arbeitsspeicher-Die des Arbeitsspeicher-Arrays kann aufgrund vielfältiger Ursachen ausfallen. Ein Flash-Arbeitsspeicher kann eine Funktion nutzen, die oft als „Die-Reserve“ bezeichnet wird, bei der ein zusätzlicher Arbeitsspeicher-Die bereitgestellt ist, um für den Fall, dass einer der Primärarbeitsspeicher-Dies ausfällt, einen Primärarbeitsspeicher-Die zu ersetzen. Beispielsweise kann das Arbeitsspeicher-Array zehn Primärarbeitsspeicher-Dies aufweisen, in die das System im Zusammenhang mit regulären Dateneingabe- und -ausgabevorgängen Daten speichert und Daten aus ihnen liest. Das Array kann einen zusätzlichen Arbeitsspeicher-Die als einen Ersatz- oder Sekundärarbeitsspeicher-Die aufweisen, dieser wird aber normalerweise nicht aktiv verwendet, bis er verwendet wird, um einen ausgefallenen Primärarbeitsspeicher-Die des Arrays zu ersetzen. Dementsprechend greifen Datenein- und -ausgabevorgänge bei Datenspeichervorgängen normalerweise auf die zehn Primärarbeitsspeicher-Dies zu, greifen aber normalerweise nicht auf den Ersatzarbeitsspeicher-Die zu, bis der Ersatz-Die einen Primärarbeitsspeicher-Die ersetzt.
  • Bei Erkennung des Ausfalls eines Primärarbeitsspeicher-Dies werden die Daten, die zuvor im ausgefallenen Primärarbeitsspeicher-Die gespeichert wurden, in der Folge im Ersatzarbeitsspeicher-Die gespeichert, sodass der Ersatzarbeitsspeicher-Die anstelle des ausgefallenen Primärarbeitsspeicher-Dies als Primärarbeitsspeicher-Die verwendet werden kann. Da die im ausgefallenen Primärarbeitsspeicher-Die gespeicherten Daten möglicherweise nicht abrufbar sind, können Verfahren zur Datenwiederherstellung verwendet werden, um die fehlenden Daten des ausgefallenen Primärarbeitsspeicher-Dies zu rekonstruieren und die rekonstruierten Daten in dem Ersatzarbeitsspeicher-Die, der als der Austauscharbeitsspeicher-Die für den ausgefallenen Arbeitsspeicher-Die verwendet werden soll, zu speichern.
  • Es gibt verschiedene bekannte Fehlerkorrekturcode(ECC)-Verfahren zum Erkennen und Korrigieren von Datenfehlern, einschließlich zum Beispiel Block-Codes wie Reed-Solomon-Fehlerkorrekturcodes, beispielsweise, die Daten blockweise verarbeiten, und Faltungscodes, beispielsweise, die Daten bitweise verarbeiten. Bei einigen Anwendungen, wie Weltraumübertragungen von Daten zwischen Erde und Raumsonden und Compact-Disk-Aufzeichnungs- und Wiedergabevorrichtungen, beispielsweise, ist es bekannt, dass Daten zweimal unter Verwendung von zwei verschiedenen ECC-Verfahren kodiert werden, die als ein äußeres ECC-Verfahren und ein inneres ECC-Verfahren miteinander verkettet sind, um sequenziell die Daten zu bearbeiten. Durch die Verkettung der ECC-Verfahren können Fehlererkennung und Fehlerkorrektur in einigen Anwendungen, verglichen mit dem Einsatz nur eines der ECC-Verfahren allein, verbessert werden.
  • Figurenliste
    • 1 ist ein schematisches Diagramm von einer Ausführungsform einer Computerarchitekturvorrichtung, die vorausschauende Arbeitsspeicherinstandhaltung gemäß einem Aspekt der vorliegenden Beschreibung einsetzt.
    • 2 stellt ein Beispiel für Vorgänge eines Arbeitsspeichers dar, der eine Ausführungsform vorausschauender Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung einsetzt.
    • 3 ist ein detaillierteres schematisches Diagramm von einem Beispiel vorausschauender Arbeitsspeicherinstandhaltungslogik gemäß einer Ausführungsform der vorliegenden Beschreibung.
    • 4a stellt ein Beispiel für Spiegelungsvorgänge von einem ausgewählten operationellen Primärarbeitsspeicher-Die auf einen Ersatzarbeitsspeicher-Die vor jeglichem erkannten Ausfall des ausgewählten Primärarbeitsspeicher-Dies dar.
    • 4b stellt ein anderes Beispiel für Spiegelungsvorgänge von einem anderen ausgewählten operationellen Primärarbeitsspeicher-Die auf einen Ersatzarbeitsspeicher-Die vor jeglichem erkannten Ausfall des ausgewählten Primärarbeitsspeicher-Dies dar.
    • 5 ist ein schematisches Diagramm von einer Ausführungsform von Fehlerkorrekturcode-Logik, die vorausschauende Arbeitsspeicherinstandhaltung gemäß einem Aspekt der vorliegenden Beschreibung einsetzt.
    • 6 stellt ein Beispiel von Fehlererkennungs- und -korrekturvorgängen der Fehlerkorrekturcode-Logik von 5 in Verbindung mit vorausschauender Arbeitsspeicherinstandhaltung gemäß einem Aspekt der vorliegenden Beschreibung dar.
    • 7a stellt ein Beispiel eines Datenlesevorgangs von kodierten Lesedaten für die Fehlerkorrekturcode-Logik von 5 in Verbindung mit vorausschauender Arbeitsspeicherinstandhaltung gemäß einem Aspekt der vorliegenden Beschreibung dar.
    • 7b stellt ein anderes Beispiel eines Datenlesevorgangs von kodierten Lesedaten für die Fehlerkorrekturcode-Logik von 5 in Verbindung mit vorausschauender Arbeitsspeicherinstandhaltung gemäß einem Aspekt der vorliegenden Beschreibung dar.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Vorausschauende Arbeitsspeicherinstandhaltung gemäß einem Aspekt der vorliegenden Beschreibung kann einen Ausfall eines ausgewählten Primärarbeitsspeicher-Dies eines Arrays prognostizieren und einen Ersatzarbeitsspeicher-Die mit den Daten des ausgewählten Primärarbeitsspeicher-Dies, der als ausfallgefährdet eingestuft wird, vor jeglichem tatsächlichen Ausfall des ausgewählten Arbeitsspeicher-Dies, vorladen. Für den Fall, dass der ausgewählte Primärarbeitsspeicher-Die in der Folge tatsächlich ausfällt, kann der mit den Daten des ausgewählten Primärarbeitsspeicher-Dies vorgeladene Ersatzarbeitsspeicher-Die mit einer bereits vorhandenen Kopie der Daten des ausgefallenen Primärarbeitsspeicher-Dies ohne Weiteres den Platz des ausgefallenen Primärarbeitsspeicher-Dies einnehmen. Dadurch kann der Ersatz des ausgefallenen Primär-Dies durch einen mit den Daten des ausgefallenen Arbeitsspeicher-Dies vorgeladenen Ersatzarbeitsspeicher-Dies mit geringer oder keiner Verzögerung, die durch Versuche, den Ersatzarbeitsspeicher nach Ausfall des Primärarbeitsspeicher-Dies zu laden, entstehen, erreicht werden. Infolgedessen können lang anhaltende Unterbrechungen der Datenspeichervorgänge als Folge des Ausfalls des Primärarbeitsspeicher-Dies reduziert oder beseitigt werden.
  • Es ist ferner ersichtlich, dass Versuche, die Daten eines Primärarbeitsspeicher-Dies, der ausgefallen ist, zu rekonstruieren, zu einer erhöhten Ausfallgefährdung führen können, nachdem der Primärarbeitsspeicher-Die ausgefallen ist, insbesondere für den Fall, dass andere Datenfehler auftreten, wie der Ausfall oder andere Fehlfunktion eines zweiten Primärarbeitsspeicher-Dies, beispielsweise. Gemäß der vorliegenden Beschreibung, durch Vorladen des Ersatzarbeitsspeicher-Dies mit den Daten des Primärarbeitsspeicher-Dies mit der höchsten angenommenen Ausfallwahrscheinlichkeit, bevor er tatsächlich ausgefallen ist, kann die Genauigkeit der vorgeladenen Daten im Vergleich zu Daten, die durch Rekonstruktionsvorgänge produziert werden, die eingeleitet wurden, nachdem ein Ausfall eines Arbeitsspeicher-Dies bereits eingetreten ist, verbessert werden.
  • In einer Ausführungsform wird vorausschauende Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung auf einen nichtflüchtigen dreidimensionalen (3D) Crosspoint-Arbeitsspeicher angewendet. Vorausschauende Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung kann auf Systeme angewendet werden, die eine Vielzahl verschiedener Arten von Arbeitsspeichervorrichtungen einsetzen, einschließlich zusätzlich zum oben genannten dreidimensionalen (3D) Crosspoint-Arbeitsspeicher, nichtflüchtige Arbeitsspeicher wie Spindrehmomenttransfer-Arbeitsspeicher mit wahlfreiem Zugriff (STT-RAM), Phasenwechselspeicher, Magnet-RAM, ein resistiver Arbeitsspeicher, Nanodrahtspeicher, FeTRAM (Ferroelectric Transistor Random Access Memory), Flash-Arbeitsspeicher wie NAND oder NOR und flüchtige Arbeitsspeicher wie 2D RAM, beispielsweise. Andere Arbeitsspeichertypen können ebenfalls geeignet sein.
  • 1 veranschaulicht eine Ausführungsform der Computerarchitekturvorrichtung 100 unter Einsatz vorausschauender Arbeitsspeicherinstandhaltung gemäß einem Aspekt der vorliegenden Beschreibung. Die Computerarchitekturvorrichtung 100 kann jegliches in der Fachwelt bekannte Computergerät umfassen, wie einen Großrechner, Server, Personal Computer, eine Workstation, ein Telefoniegerät, Netzwerkgerät, eine Virtualisierungsvorrichtung, einen Datenspeichercontroller, tragbare oder mobile Geräte (z. B. Laptops, Netbooks, Tablet-Computer, persönliche digitale Assistenten (PDAs), tragbare Mediaplayer, tragbare Spielegeräte, Digitalkameras, Mobiltelefone, Smartphones, Feature-Phones usw.) oder Komponente (z. B. Ein-Chip-System, Prozessor, Brücke, Arbeitsspeichercontroller, Arbeitsspeicher usw.). Die Architekturvorrichtung 100 kann einen Prozessor 102 (z. B. einen Mikroprozessor), einen Arbeitsspeicher 104 (z. B. eine flüchtige oder nichtflüchtige Arbeitsspeichervorrichtung) und einen Arbeitsspeichercontroller 106 aufweisen, der Ein- und Ausgabevorgänge zum und vom Arbeitsspeicher 104 steuert.
  • Wie im Folgenden näher erläutert, weist der Arbeitsspeichercontroller 106 einen Logikschaltkreis für die vorausschauende Arbeitsspeicherinstandhaltung 110 auf, der den Primärspeicher-Die eines Arrays des Arbeitsspeichers 104 identifizieren und auswählen kann, der aufgrund bestimmter gemessener Leistungsfähigkeitsmerkmale als am meisten ausfallgefährdet eingestuft wird, und einen Ersatzarbeitsspeicher-Die mit den Daten des ausgewählten Primärarbeitsspeicher-Dies vor dem Ausfall des ausgewählten Primärarbeitsspeicher-Dies vorladen kann. Als Ergebnis kann, sollte der ausgewählte Primärarbeitsspeicher-Die tatsächlich ausfallen, die Kontinuität von Datenübertragungsvorgängen mit einem Minimum an Unterbrechung und Verzögerung als eine Folge eines Ausfalls eines Primärarbeitsspeicher-Dies des Arbeitsspeichers 104, ermöglicht werden.
  • In einem anderen Aspekt kann der Logikschaltkreis für die vorausschauende Arbeitsspeicherinstandhaltung 110 periodisch oder zyklisch neu evaluieren, welcher Primärarbeitsspeicher-Die eines Arrays des Arbeitsspeichers 104 höchstwahrscheinlich ausfallen wird, während Leistungsfähigkeitsdaten für jeden Primärarbeitsspeicher-Die akkumuliert werden. Als Ergebnis kann der als die Quelle für das Vorladen des Ersatzarbeitsspeicher-Dies ausgewählte Primärarbeitsspeicher-Die wechseln, wenn sich die vergleichenden Leistungsfähigkeitsmerkmale eines anderen Primärarbeitsspeicher-Dies in einem größeren Ausmaß als bei einem zuvor ausgewählten Primärarbeitsspeicher-Die verschlechtern. Daher kann, sollte ein Primärarbeitsspeicher-Die tatsächlich ausfallen, die Wahrscheinlichkeit, dass die Daten des ausgefallenen Primärarbeitsspeicher-Dies bereits in den Ersatzarbeitsspeicher-Die vorgeladen wurden, verbessert werden.
  • In noch einem weiteren Aspekt können Vorgänge der vorausschauenden Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung Datenübertragungsvorgänge vor einem tatsächlichen Ausfall eines Primärarbeitsspeicher-Dies verbessern. Wenn beispielsweise Datenkorrektur für aus dem Arbeitsspeicher gelesene Lesedaten versagt, können die Lesedaten, die aus dem Primärarbeitsspeicher-Die gewonnen wurden, der als am ehesten ausfallend ausgewählt wurde, durch gespiegelte Lesedaten aus dem Ersatzarbeitsspeicher-Die substituiert werden. Infolgedessen können Fehler, die in den originalen Lesedaten erkannt wurden, durch das Ersetzen mit gespiegelten Lesedaten vom Ersatzarbeitsspeicher-Die, der mit größerer Wahrscheinlichkeit eine niedrigere Bitfehlerrate aufweist als der Primärarbeitsspeicher-Die, der als der am ehesten ausfallende Arbeitsspeicher-Die ausgewählt wurde, eliminiert oder korrigierbarer gemacht werden.
  • In der abgebildeten Ausführungsform ist der Arbeitsspeichercontroller 106 auf einem oder mehreren Halbleiter-Dies innerhalb der Vorrichtung 100 angeordnet, und der Logikschaltkreis für die vorausschauende Arbeitsspeicherinstandhaltung 110 kann auf dem selben Die oder den selben Dies des Arbeitsspeichercontrollers 106 angeordnet sein. Obwohl der Schaltkreis für die vorausschauende Arbeitsspeicherinstandhaltung 110 als ein Teil des Arbeitsspeichercontrollers 106 dargestellt wird, ist es ersichtlich, dass der Logikschaltkreis für die vorausschauende Arbeitsspeicherinstandhaltung 110 als ein Teil anderer Schaltkreise der Computerarchitekturvorrichtung 100 gefertigt werden kann. Beispielsweise können in einer Ausführungsform ein oder mehrere der Arbeitsspeicher-Dies des Arbeitsspeichers 104 im gleichen Gehäuse wie der Logik-Die oder die Logik-Dies für den Arbeitsspeichercontroller 106 oder der Logikschaltkreis für die vorausschauende Arbeitsspeicherinstandhaltung 110 untergebracht sein. Folglich können in einer Ausführungsform der Halbleiter-Die des Arbeitsspeichercontrollers 106 und Dies des Arbeitsspeichers 104 in einem Steckmodul, wie einem Dual-In-Line-Speichermodul (DIMM), angeordnet sein. Alternativ können ein oder mehrere der Arbeitsspeicher-Dies des Arbeitsspeichers 104 außerhalb des Gehäuses des Arbeitsspeichercontroller-Logik-Dies, oben auf dem Arbeitsspeichercontroller-Logik-Die, angrenzend zum Arbeitsspeichercontroller-Logik-Die oder in einem separaten Steckmodul, wie einem Dual-in-Line-Speichermodul (DIMM), gehäust sein.
  • So wie hier verwendet, umfasst der Begriff „automatisiert“ voll automatisiert, wobei die Vorgänge der vorausschauenden Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung ohne jeglichen Benutzereingriff erfolgen. Der Begriff „automatisiert“ umfasst auch weitgehend automatisiert, wobei Vorgänge der vorausschauenden Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung mit begrenztem Benutzereingriff erfolgen. Jedoch laufen bei weitgehend automatisierten Vorgängen die meisten Vorgänge der vorausschauenden Arbeitsspeicherinstandhaltung ohne jeglichen Benutzereingriff ab. In einer Ausführungsform sind die Vorgänge der vorausschauenden Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung voll automatisiert und erfolgen ohne jeglichen Benutzereingriff. In anderen Ausführungsformen laufen mindestens 50 %, mindestens 75 % oder mindestens 95 % der Vorgänge der vorausschauenden Arbeitsspeicherinstandhaltung ohne jeglichen Benutzereingriff ab.
  • Die Computerarchitekturvorrichtung 100 kann außerdem Datenspeicher 116 aufweisen (z. B. einen nichtflüchtigen Datenspeicher, wie Magnetplattenlaufwerke, optische Laufwerke, ein Bandlaufwerk, Flash-Speicher usw.). Der Datenspeicher 116 kann eine vorausschauende Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung einsetzen, und kann eine interne Datenspeichervorrichtung oder einen angeschlossenen oder per Netzwerk zugänglichen Datenspeicher umfassen. Programme im Datenspeicher 116 werden in den Arbeitsspeicher 104 geladen und vom Prozessor 102 in einer in der Fachwelt bekannten Weise ausgeführt.
  • Die Computerarchitekturvorrichtung 100 weist weiterhin einen Netzwerk-Controller oder NetzwerkAdapter 118 auf, um die Kommunikation mit einem Netzwerk, wie einem Ethernet, einem Fiber-Channel-Arbitrated-Loop usw., zu ermöglichen. Außerdem kann die Architektur, in bestimmten Ausführungsformen, einen Videocontroller 120 aufweisen, der ausgelegt ist, um ein Display als Reaktion auf den Prozessor zu steuern, um Informationen auf einem Display darzustellen. Der Videocontroller 120 kann auf einer Videokarte oder integriert auf integrierten Schaltkreiskomponenten, die auf einem Motherboard oder anderen Substrat montiert sind, verkörpert sein. Eine Eingabevorrichtung 122 wird verwendet, um dem Prozessor 102 Benutzereingaben bereitzustellen, und kann eine Tastatur, eine Maus, einen Tablettstift, ein Mikrofon, einen berührungsempfindlichen Bildschirm, Eingabestifte, Buchsen oder jegliche andere in der Fachwelt bekannte Aktivierungs- oder Eingabemechanismen aufweisen. Eine Ausgabevorrichtung 124 ist in der Lage, vom Prozessor 102 oder anderen Komponenten, wie einem Bildschirm oder Monitor, Drucker, Datenspeicher, Ausgangspins, Buchsen usw., übertragene Informationen wiederzugeben. Der Netzwerkadapter 118 kann auf einer Netzwerkkarte, wie einer Peripheral Component Interconnect (PCI)-Karte, PCI-Express oder einer anderen Erweiterungskarte, oder auf integrierten Schaltkreiskomponenten, die auf einem Motherboard oder anderen Substrat montiert sind, verkörpert sein.
  • Eine oder mehrere Komponenten der Vorrichtung 100 können, je nach der bestimmten Anwendung, weggelassen werden. Beispielsweise kann einem Netzwerkrouter z. B. ein Videocontroller 120 fehlen. Außerdem können eine beliebige oder mehrere der Komponenten der Computerarchitekturvorrichtung 100 eine oder mehrere integrierte Arbeitsspeicherschaltkreise aufweisen, die vorausschauende Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung aufweisen.
  • 2 zeigt ein Beispiel für Vorgänge der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 des Arbeitsspeichercontrollers 106 (1). In einem Vorgang wird die vorausschauende Arbeitsspeicherinstandhaltung durch Auswahl (Block 210) eines anfänglichen Primärarbeitsspeicher-Dies der Primärarbeitsspeicher-Dies des Arbeitsspeichers 104 und Spiegelung der Daten des ausgewählten Primärarbeitsspeicher-Dies auf einen Ersatzarbeitsspeicher-Die des Arbeitsspeichers 104 initialisiert. 3 zeigt ein ausführlicheres Beispiel des Arbeitsspeichers 104, der ein Array von Primärarbeitsspeicher-Dies 310a, 310b, ... 310n zusammen mit einem Ersatz- oder Sekundärarbeitsspeicher-Die 314 aufweist.
  • In einer Ausführungsform kann das Arbeitsspeicher-Array beispielsweise zehn Primärarbeitsspeicher-Dies aufweisen, die durch die Primär-Dies 310a, 310b, ... 310n repräsentiert werden, wobei das System 100 im Zusammenhang mit regelmäßigen Dateneingabe und -ausgabevorgängen Daten in die Primär-Dies 310a, 310b, .... 310n speichert und daraus ausliest. Einer der Primär-Dies 310a, 310b, .... 310n, wie beispielsweise Primärarbeitsspeicher-Die 310n, wird anfänglich als Quelle der Spiegelungsdaten ausgewählt (Block 210), derart, dass die im ausgewählten Primärarbeitsspeicher-Die 310n während der regulären Datenübertragungsvorgänge gespeicherten Daten auch auf den Ersatzarbeitsspeicher-Die 314 gespiegelt werden. Dies hat zur Folge, dass jegliche Daten, die im ausgewählten Arbeitsspeicher-Die (in diesem Beispiel Die 310n) gespeichert werden, auch zum Ersatzarbeitsspeicher-Die 314 kopiert oder anderweitig im Ersatzarbeitsspeicher-Die 314 gespeichert werden.
  • In einer Ausführungsform wird der Primärarbeitsspeicher-Die, der anfänglich für die Spiegelung zum Ersatzarbeitsspeicher-Die ausgewählt wurde, durch die Logik für die Auswahl der Spiegelungsquelle 320 (3) der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 ausgewählt. Die Logik für die Auswahl der Spiegelungsquelle 320 kann ausgelegt werden, um in einigen Ausführungsformen den anfänglichen Primärarbeitsspeicher-Die in willkürlicher Weise auszuwählen (Block 210, 2). Daher kann einer der anderen Primärarbeitsspeicher-Dies 310a, 310b .... als anfängliche Spiegelungsquelle ausgewählt werden. Es ist jedoch ersichtlich, dass abhängig von der bestimmten Anwendung andere Auswahlkriterien von der Logik für die Auswahl der Spiegelungsquelle 320 verwendet werden können, um einen anfänglichen Primärarbeitsspeicher-Die als die Quelle der Spiegelungsdaten auszuwählen, die auf den Ersatzarbeitsspeicher-Die 314 gespiegelt werden sollen. Weitere Beispiele für alternative Auswahlkriterien werden im Folgenden näher erläutert.
  • In einer Ausführungsform wird bewirkt, dass die Daten, die in dem Primärarbeitsspeicher-Die gespeichert sind, der als die Quelle ausgewählt ist, durch die Datenspiegelungslogik 324 der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 gespiegelt werden. Es ist ersichtlich, dass die Spiegelung durchgeführt werden kann, indem Daten vom Quell-Primärarbeitsspeicher-Die direkt oder über Zwischenspeicherorte zum Ersatzarbeitsspeicher-Die kopiert werden. Es ist weiterhin ersichtlich, dass Aktualisierungen an den Daten, die im ausgewählten Primärarbeitsspeicher-Die gespeichert sind, parallel übertragen werden können, um die Daten des Ersatzarbeitsspeicher-Dies parallel zur Aktualisierung des ausgewählten Primärarbeitsspeicher-Dies zu aktualisieren. In anderen Ausführungsformen können beispielsweise Aktualisierungen am ausgewählten Primärarbeitsspeicher-Die vom Quell-Primärarbeitsspeicher-Die auf den Ersatzarbeitsspeicher-Die kopiert werden. Andere Spiegelungstechniken können verwendet werden, sodass die Daten des ausgewählten Primärarbeitsspeicher-Dies im Ersatzarbeitsspeicher-Die dupliziert werden. Es ist ersichtlich, dass in einigen Ausführungsformen zu jedem beliebigen Zeitpunkt die Aktualisierungen des Ersatzarbeitsspeicher-Dies denen des ausgewählten Primär-Dies hinterherhinken können.
  • Zuvor wies ein Arbeitsspeicher-Array einen Ersatz- oder Sekundärarbeitsspeicher-Die einen zusätzlichen Arbeitsspeicher-Die auf, dieser wurde aber normalerweise nicht aktiv verwendet oder darauf zugegriffen, bis er verwendet wurde, um einen ausgefallenen Primärarbeitsspeicher-Die des Arrays zu ersetzen. Dementsprechend haben in vorherigen Systemen Datenein- und -ausgabevorgänge für Datenspeichervorgänge normalerweise auf die zehn Primärarbeitsspeicher-Dies zugegriffen, griffen aber normalerweise nicht auf den Ersatzarbeitsspeicher-Die zu, bis der Ersatz-Die einen ausgefallenen Primärarbeitsspeicher-Die ersetzt hat. Jedoch werden gemäß einem Aspekt der vorliegenden Beschreibung Daten eines Primärarbeitsspeicher-Dies auf den Ersatzarbeitsspeicher-Die gespiegelt, bevor der Ausfall des Primärarbeitsspeicher-Dies wie oben beschrieben erkannt wird. Darüber hinaus können, wie im Folgenden näher erläutert, die auf den Ersatzarbeitsspeicher-Die 314 gespiegelten Daten genutzt werden, um die Zuverlässigkeit der Datenübertragungsvorgänge zu erhöhen, noch bevor der Ausfall eines Primärarbeitsspeicher-Dies erkannt wird.
  • Nach dem Initialisierungsvorgang der Auswahl der Spiegelungsquelle von Block 210 und dem Beginn der Arbeitsspeichervorgänge kann eine Bestimmung (Block 214) durchgeführt werden, ob einer der Primärarbeitsspeicher-Dies 310a, 310b, ... 310n im Laufe der Arbeitsspeichervorgänge des Primärarbeitsspeicher-Dies, einschließlich beispielsweise Auffrischungsvorgänge und Datentransfervorgänge, ausgefallen ist. Eine solche Ausfallerkennung kann z. B. durch die Die-Ausfallerkennungslogik 328 der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 erfolgen. Folglich kann in der Ausführungsform von 3 die Die-Ausfallerkennungslogik 328 ausgelegt sein, um zu erkennen, ob einer der Primärarbeitsspeicher-Dies 310a, 310b ... 310n ausgefallen ist. Ist dies nicht der Fall, kann eine vorherige Auswahl eines gegenwärtig operationellen Primärarbeitsspeichers neu bewertet werden. Folglich kann entweder derselbe oder ein anderer der gegenwärtig operationellen Primärarbeitsspeicher-Dies als der Primärarbeitsspeicher-Die identifiziert werden (Block 218, 2), bei dem angenommen wird, dass er an einem Punkt in der Zukunft am ehesten ausfallen wird.
  • In einer Ausführungsform kann die Auswahl eines operationellen Primärarbeitsspeicher-Dies als dem Primärarbeitsspeicher-Die, der als am ehesten ausfallgefährdet eingestuft wird, durch die Logik für die Auswahl der Spiegelungsquelle 320 der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 vorgenommen werden. Die Logik für die Auswahl der Spiegelungsquelle 320 kann ausgelegt sein, um den Primärarbeitsspeicher-Die, der am wahrscheinlichsten ausfallen wird, als eine Funktion vielfältiger Auswahlkriterien, wie beispielsweise Leistungsfähigkeitskriterien für Arbeitsspeicher, auszuwählen (Block 218, 2). Ein Beispiel für ein Leistungsfähigkeitskriterium für Arbeitsspeicher, das geeignet ist, einen Primärarbeitsspeicher-Die auszuwählen, der wahrscheinlicher als die anderen Primärarbeitsspeicher-Dies ausfällt, ist eine unkorrigierte Bitfehlerrate (RBER), die durch die Logik für die Auswahl der Spiegelungsquelle 320 der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 für jeden operationellen Primärarbeitsspeicher-Die 310a, 310b .... 310n des Arbeitsspeichers 104 ermittelt und akkumuliert werden kann.
  • 4a zeigt ein Beispiel der Primärarbeitsspeicher-Dies 310a, 310b, .... 310n, bei welchem die Logik für die Auswahl der Spiegelungsquelle 320 ausgelegt wurde, um einen RBER-Wert für jeden der Primärarbeitsspeicher-Dies 310a, 310b, ... 310n zu ermitteln, wie in Klammern für jeden Primärarbeitsspeicher-Die angegeben. Die unkorrigierte Bitfehlerrate (RBER) wird häufig als eine bestimmte Anzahl von Fehlern ausgedrückt, die im Arbeitsspeicher-Die während einer definierten Anzahl von Arbeitsspeicherzugriffen entdeckt wurden, die üblicherweise als Zahl mit Zehnerfaktor ausgedrückt wird. So hat im Beispiel von 4a die Logik für die Auswahl der Spiegelungsquelle 320 beispielsweise einen RBER-Wert von 1E-04 für den Primärarbeitsspeicher-Die 310a ermittelt, was anzeigt, dass die unkorrigierte Bitfehlerrate für den Primärarbeitsspeicher-Die 310a als 1 Fehler pro 104 Arbeitsspeichervorgänge, die auf den Primärarbeitsspeicher-Die 310a zugreifen, ermittelt wurde. Im Vergleich dazu hat die Logik für die Auswahl der Spiegelungsquelle 320 beispielsweise einen RBER-Wert von 2E-04 für den Primärarbeitsspeicher-Die 310c ermittelt, was anzeigt, dass die unkorrigierte Bitfehlerrate für den Primärarbeitsspeicher-Die 310c als zwei Fehler pro 104 Arbeitsspeichervorgänge, die auf den Primärarbeitsspeicher-Die 310a zugreifen, ermittelt wurde. Im Beispiel von 4a hat die Logik für die Auswahl der Spiegelungsquelle 320 für jeden der übrigen Primärarbeitsspeicher-Die 310b, 310e, ... 310n einen RBER-Wert von 1E-04 ermittelt.
  • Entsprechend einer Ausführungsform der vorausschauenden Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung kann, da ermittelt wurde, dass der Primärarbeitsspeicher-Die 310c den höchsten RBER-Wert der operationellen Primärarbeitsspeicher-Dies aufweist, der Primärarbeitsspeicher-Die 310c als der operationelle Primärarbeitsspeicher-Die bestimmt werden (Block 218, 2), der zu irgendeinem Zeitpunkt in der Zukunft am wahrscheinlichsten ausfallen wird. Dementsprechend kann der als die Quelle der Datenspiegelung ausgewählte Primärarbeitsspeicher-Die von dem anfänglich vorgesehenen (Block 210, 2) und als Quelle ausgewählten Primärarbeitsspeicher-Die 310n zu dem Primärarbeitsspeicher-Die 310c geändert werden, der als der operationelle Primärarbeitsspeicher-Die identifiziert wurde (Block 218, 2), der zu irgendeinem Zeitpunkt in der Zukunft am wahrscheinlichsten ausfallen wird. Dadurch können die Daten, die im Quell-Primärarbeitsspeicher-Die 310c gespeichert sind und gerade gespeichert werden, auf den Ersatzarbeitsspeicher-Die 314 gespiegelt werden (Block 222), anstatt die gespeicherten und im Speichern befindlichen Daten auf den anfänglich ausgewählten Primärarbeitsspeicher-Die 314n zu spiegeln. Jegliche Aktualisierungen an den Daten des Quell-Primärarbeitsspeicher-Dies 314c werden auch auf den Ersatzarbeitsspeicher-Die 314 gespiegelt. Nachdem der Spiegelungsvorgang (Block 222) abgeschlossen ist, enthält der Ersatzarbeitsspeicher-Die 314 ein Duplikat der Daten des in Block 218 identifizierten Primärarbeitsspeicher-Dies 314c, anstelle des anfänglich in Block 210 ausgewählten Primärarbeitsspeicher-Dies 314n.
  • In der Ausführungsform von 4a wird der operationelle Primärarbeitsspeicher-Die, der als der operationelle Primärarbeitsspeicher-Die ausgewählt (Block 218) wurde, der zu irgendeinem Zeitpunkt in der Zukunft am wahrscheinlichsten ausfallen wird, und folglich als der Quell-Primärarbeitsspeicher-Die des Spiegelungsvorgangs (Block 222) ausgewählt wurde, als eine Funktion des für jeden operationellen Primär-Die ermittelten RBER-Wertes ausgewählt. Es ist jedoch ersichtlich, dass abhängig von der bestimmten Anwendung von der Logik für die Auswahl der Spiegelungsquelle 320 andere Auswahlkriterien verwendet werden können, um einen Primärarbeitsspeicher-Die als den Primärarbeitsspeicher-Die, der am wahrscheinlichsten ausfallen wird, als die Quelle für die Spiegelungsdaten zum Ersatzarbeitsspeicher-Die 314 auszuwählen.
  • Beispielsweise weisen Arbeitsspeicher-Dies häufig einen Temperatursensor auf, der die Betriebstemperatur des Arbeitsspeicher-Dies erfasst und Temperaturdaten ausgibt, die die Betriebstemperatur des Arbeitsspeicher-Dies anzeigen. Es ist ersichtlich, dass es bei einem operationellen Primärarbeitsspeicher-Die, der eine höhere Betriebstemperatur als die der anderen operationellen Primärarbeitsspeicher-Dies aufweist, wahrscheinlicher sein kann, dass er zu einem Zeitpunkt in der Zukunft ausfällt. Daher kann in einer Ausführungsform der operationelle Primärarbeitsspeicher-Die, der als der Primärarbeitsspeicher-Die ausgewählt (Block 218) wird, der am wahrscheinlichsten ausfallen wird und somit als der Quell-Primärarbeitsspeicher-Die des Spiegelungsvorgangs (Block 222) ausgewählt wird, als eine Funktion der individuellen Betriebstemperaturen jedes operationellen Primärarbeitsspeicher-Dies ausgewählt werden.
  • In einem anderen Aspekt vorausschauender Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung ist es ersichtlich, dass die Vorgänge der Blöcke 214-222 eine Betriebsschleife der Arbeitsspeicherinstandhaltung bilden, die zyklisch oder periodisch wiederholt werden kann. Beispielsweise werden bei der Ausführungsform von 4a die Speicherplätze der Arbeitsspeicher-Dies periodisch in sich wiederholenden Auffrischzyklen, die durch die Auffrischungslogik 140 (1) des Arbeitsspeichercontrollers 106 generiert werden, aufgefrischt. Beispielsweise werden in einem dreidimensionalen(3D) Crosspoint-Arbeitsspeicher Bitzellen über den gesamten Speicher periodisch gelesen und die Daten zur Verbesserung der Leistungsfähigkeit wieder zurückgeschrieben. In jedem Auffrischungszyklus kann bestimmt werden (Block 214, 2), ob ein Primärarbeitsspeicher-Die ausgefallen ist, und wenn nicht, kann ein operationeller Primärarbeitsspeicher-Die als eine Funktion der Leistungsfähigkeit des Arbeitsspeicher-Dies als der Primärarbeitsspeicher-Die identifiziert werden (Block 218), der zu irgendeinem Zeitpunkt in der Zukunft am wahrscheinlichsten ausfallen wird, und die Daten des Primärarbeitsspeicher-Dies, der als derjenige mit der höchsten Ausfallwahrscheinlichkeit identifiziert wurde, können auf den Ersatzarbeitsspeicher-Die 314 gespiegelt werden (Block 222). Daher wird nach Abschluss jedes Spiegelungsvorgangs (Block 222) eines Instandhaltungszyklus der Ersatzarbeitsspeicher-Die mit den Daten des Primärarbeitsspeicher-Dies vorgeladen, welcher zu diesem Zeitpunkt als der Primärarbeitsspeicher-Die eingestuft wird, der zu einem späteren Zeitpunkt am wahrscheinlichsten ausfallen wird.
  • Beispielsweise zeigt 4b Instandhaltungsvorgänge in einem anderen Instandhaltungszyklus. In diesem Beispiel hat die Logik für die Auswahl der Spiegelungsquelle 320 erneut einen RBER-Wert von beispielsweise 1E-04 für den Primärarbeitsspeicher-Die 310a ermittelt, und erneut einen RBER-Wert von beispielsweise 2E-04 für den Primärarbeitsspeicher-Die 310c ermittelt, was anzeigt, dass die unkorrigierte Bitfehlerrate für den Primärarbeitsspeicher-Die 310c als zwei Fehler pro 104 Arbeitsspeichervorgänge, die auf den Primärarbeitsspeicher-Die 310c zugreifen, ermittelt wurde. Allerdings hat in diesem Beispiel die Logik für die Auswahl der Spiegelungsquelle 320 einen RBER-Wert von 3E-04 für den Primärarbeitsspeicher-Die 310d ermittelt, was anzeigt, dass die unkorrigierte Bitfehlerrate für den Primärarbeitsspeicher-Die 310d als drei Fehler pro 104 Arbeitsspeichervorgänge, die auf den Primärarbeitsspeicher-Die 310d zugreifen, ermittelt wurde. Im Beispiel von 4b hat die Logik für die Auswahl der Spiegelungsquelle 320 für jeden der übrigen Primärarbeitsspeicher-Die 310b, 310e, ... 310n erneut einen RBER-Wert von 1E-04 ermittelt.
  • Entsprechend einer Ausführungsform der vorausschauenden Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung kann, da bestimmt wurde, dass der Primärarbeitsspeicher-Die 310d den höchsten RBER-Wert der operationellen Primärarbeitsspeicher-Dies aufweist, der Primärarbeitsspeicher-Die 310d als der operationelle Primärarbeitsspeicher-Die bestimmt werden (Block 218, 2), der zu irgendeinem Zeitpunkt in der Zukunft am wahrscheinlichsten ausfallen wird. Dementsprechend kann der Quell-Primärarbeitsspeicher-Die für den Datenspiegelungsvorgang von dem zuvor in einem vorherigen Instandhaltungszyklus von 4a als der Quell-Primärarbeitsspeicher-Die identifizierte (Block 218, 2) Primärarbeitsspeicher-Die 310c zum Primärarbeitsspeicher-Die 310d geändert werden, der im gegenwärtigen Instandhaltungszyklus von 4b als der operationelle Primärarbeitsspeicher-Die identifiziert wurde (Block 218, 2), der zu irgendeinem Zeitpunkt in der Zukunft am wahrscheinlichsten ausfallen wird. Dadurch können, wie in 4b gezeigt, die im Quell-Primärarbeitsspeicher-Die 310d gespeicherten Daten auf den Ersatzarbeitsspeicher-Die 314 gespiegelt werden (Block 222), anstatt wie in 4a gezeigt die im zuvor ausgewählten Primärarbeitsspeicher-Die 314c gespeicherten Daten zu spiegeln (4a). Jegliche Aktualisierungen an den Daten des Quell-Primärarbeitsspeicher-Dies 314d werden ebenfalls auf den Ersatzarbeitsspeicher-Die 314 gespiegelt. Nachdem der Spiegelungsvorgang (Block 222) abgeschlossen ist, enthält der Ersatzarbeitsspeicher-Die 314 ein Duplikat der Daten des in Block 218 identifizierten Primärarbeitsspeicher-Dies 310d, anstelle des zuvor in einem vorherigen Instandhaltungszyklus ausgewählten Primärarbeitsspeicher-Dies 314c.
  • Für den Fall, dass ein Primärarbeitsspeicher-Die wie von der Die-Ausfallererkennungslogik 328 erkannt (3) ausfällt (Block 214, 2), wird bestimmt, ob (Block 230) die Daten für den ausgefallenen Primärarbeitsspeicher-Die bereits durch die Datenspiegelungslogik 324 (3) auf den Ersatzarbeitsspeicher-Die 314 gespiegelt wurden. Ist dies der Fall, kann der ausgefallene Primärarbeitsspeicher-Die deaktiviert (Block 234) und durch den bereits mit den Daten des ausgefallenen Primärarbeitsspeicher-Dies vorgeladenen Ersatzarbeitsspeicher-Die 314 ersetzt werden.
  • Im Beispiel von 4b wurden die Daten für den Primärarbeitsspeicher-Die 310d ausgewählt, um auf den Ersatzarbeitsspeicher-Die 314 gespiegelt zu werden. Wenn der Primärarbeitsspeicher-Die 310d der Primärarbeitsspeicher-Die war, der wie vorhergesagt ausgefallen ist (Block 218, 2), können dementsprechend die Daten für den ausgefallenen Primärarbeitsspeicher-Die 310d bereits (Block 230, 2) durch die Datenspiegelungslogik 324 (3) auf den Ersatzarbeitsspeicher-Die 314 gespiegelt (Block 222, 2) worden sein. Ist dies der Fall, kann der ausgefallene Primärarbeitsspeicher-Die 310d deaktiviert (Block 234) und durch den bereits mit den Daten des ausgefallenen Primärarbeitsspeicher-Dies 310d vorgeladenen Ersatzarbeitsspeicher-Die 314 ersetzt werden. Dadurch können Unterbrechungen in den Arbeitsspeichervorgängen durch Ausfall des Primärarbeitsspeicher-Dies reduziert werden. Beispielsweise können Verzögerungen aufgrund von Rekonstruktionen von Daten des ausgefallenen Primärarbeitsspeicher-Dies 310d und aufgrund Kopierens der rekonstruierten Daten auf den Ersatzarbeitsspeicher-Die vermieden werden, wenn die Daten des ausgefallenen Primärarbeitsspeicher-Dies 310d bereits (Block 230, 2) auf den Ersatzarbeitsspeicher-Die 314 gespiegelt wurden (Block 222, 2), bevor der Ausfall des Primärarbeitsspeicher-Dies erkannt wurde (Block 214).
  • In einer Ausführungsform ist eine Die-Austauschlogik 332 (3) der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 ausgelegt, um den ausgefallenen Primärarbeitsspeicher-Die zu deaktivieren und den deaktivierten Primärarbeitsspeicher-Die durch den Ersatzarbeitsspeicher-Die 314 zu ersetzen. Dementsprechend werden Datentransfervorgänge, die angewiesen worden wären, um auf den ausgefallenen Primärarbeitsspeicher-Die zuzugreifen, stattdessen angewiesen, auf den Ersatzarbeitsspeicher-Die 314 zuzugreifen. Auf diese Weise ersetzt der mit den Daten des ausgefallenen Primärarbeitsspeicher-Dies vorgeladene Ersatzarbeitsspeicher-Die 314 den ausgefallenen und deaktivierten Primärarbeitsspeicher-Die in den Arbeitsspeichervorgängen des Arbeitsspeichers 104.
  • Wie zuvor erwähnt, wurden im Beispiel von 4b die Daten für den Primärarbeitsspeicher-Die 310d ausgewählt, um auf den Ersatzarbeitsspeicher-Die 314 gespiegelt zu werden. Wenn also der Primärarbeitsspeicher-Die 310d der Primärarbeitsspeicher-Die war, der wie vorhergesagt (Block 218, 2) ausgefallen ist, wird prognostiziert, dass die Spiegelung der Daten für den ausgefallenen Primärarbeitsspeicher-Die 310d durch die Datenspiegelungslogik 324 (3) auf den Ersatzarbeitsspeicher-Die 314 zum Zeitpunkt der Erkennung (Block 214) des Ausfalls des Primärarbeitsspeicher-Dies 310d unter Umständen noch nicht abgeschlossen waren (Block 230, 2). Falls das so ist, können die übrig gebliebenen Daten des Primärarbeitsspeicher-Dies 310 durch die Datenspiegelungslogik 324 (3) auf den Ersatzarbeitsspeicher-Die 314 kopiert (Block 240) werden, bis der Kopiervorgang abgeschlossen ist (Block 244). Es ist davon auszugehen, dass die Daten des ausgefallenen Primärarbeitsspeicher-Dies 310d aufgrund seines Ausfalls unter Umständen nicht aus dem Arbeitsspeicher-Die 310d abgerufen werden.
  • Dementsprechend können die übrig gebliebenen Daten wie im Folgenden beschrieben rekonstruiert und zum Ersatzarbeitsspeicher-Die 314 kopiert werden. Sobald die Rekonstruktions- und Kopiervorgänge abgeschlossen sind (Block 244, 2), kann der ausgefallene Primärarbeitsspeicher-Die 310d deaktiviert (Block 234) und wie oben beschrieben durch den Ersatzarbeitsspeicher-Die 314 ersetzt werden.
  • Im Beispiel von 4b wurden die Daten für den Primärarbeitsspeicher-Die 310d ausgewählt, um auf den Ersatzarbeitsspeicher-Die 314 gespiegelt zu werden. Wenn also ein anderer Primärarbeitsspeicher-Die als der Primärarbeitsspeicher-Die 310d der Primärarbeitsspeicher-Die war, der ausgefallen ist, entgegen der Vorhersage (Block 218, 2), dass Primärarbeitsspeicher-Die 310d der am wahrscheinlichsten ausfallende Die war, wurden die Daten für den ausgefallenen Primärarbeitsspeicher-Die nicht bereits (Block 230, 2) durch die Datenspiegelungslogik 324 (3) auf den Ersatzarbeitsspeicher-Die 314 gespiegelt. Dementsprechend werden die Daten für den ausgefallenen Primärarbeitsspeicher-Die durch die Datenspiegelungslogik 324 (3) rekonstruiert und auf den Ersatzarbeitsspeicher-Die 314 kopiert (Block 240). Sobald die Rekonstruktions- und Kopiervorgänge der Daten abgeschlossen sind (Block 244, 2), kann der ausgefallene Primärarbeitsspeicher-Die wie oben erläutert deaktiviert (Block 234) und durch den Ersatzarbeitsspeicher-Die 314 ersetzt werden.
  • Da die in einem ausgefallenen Primärarbeitsspeicher-Die gespeicherten Daten möglicherweise nicht abrufbar sind, kann Fehlerkorrekturcode(ECC)-Logik eingesetzt werden, um die fehlenden Daten vom ausgefallenen Primärarbeitsspeicher-Die zu rekonstruieren und die rekonstruierten Daten im Ersatzarbeitsspeicher-Die, der als der Austauscharbeitsspeicher-Die für den ausgefallenen Arbeitsspeicher-Die verwendet werden soll, zu speichern. Weiterhin können in einem Aspekt der vorliegenden Beschreibung die gespiegelten Daten, die im Ersatzarbeitsspeicher-Die gespeichert sind, sogar noch bevor der Primärarbeitsspeicher-Die ausfällt verwendet werden, um Fehlererkennung und Fehlerkorrektur mittels Fehlerkorrekturcodes zu ermöglichen.
  • Ein Beispiel eines geeigneten Fehlerkorrekturcodes ist ein Reed-Solomon-Fehlerkorrekturcode, bei dem es sich um einen Block-Code handelt, der Datenblöcke in Symbolen kodiert, um Fehlererkennung und Fehlerkorrektur zu ermöglichen. Es ist ersichtlich, dass andere Arten von Fehlerkorrekturcodes bei vorausschauender Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung verwendet werden können. Beispielsweise können sowohl Block-Codes als auch Faltungscodes für vorausschauende Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung geeignet sein. Auch können sowohl systematische Codes als auch nicht-systematische Codes für vorausschauende Arbeitsspeicherinstandhaltung gemäß der vorliegenden Beschreibung geeignet sein. Bei einem systematischen Vorgehen hängt ein Encoder an die originalen Schreibdaten eine Anzahl von Prüfbits (wie beispielsweise Paritätsdaten) an, die durch einen geeigneten deterministischen Algorithmus aus den Datenbits abgeleitet werden. In einem System, das einen nichtsystematischen Code verwendet, wird die originale Nachricht in eine kodierte Nachricht umgewandelt, die normalerweise mindestens so viele Bits wie die ursprüngliche Nachricht aufweist. Weitere Beispiele für Codes, die geeignet sind, sind verkettete Codes, rekursive Codes, nicht-rekursive Codes, Repetitions-Codes, Hamming-Codes, multidimensionale Paritätsprüfcodes, Turbo-Codes, Paritätsprüfcodes mit niedriger Dichte (LDPC) usw.
  • In der dargestellten Ausführungsform weist der Arbeitsspeichercontroller 106 Fehlerkorrekturcode(ECC)-Logik 510 (5) auf, die die im Arbeitsspeicher 104 zu speichernden Schreibdaten kodiert und die kodierten Lesedaten dekodiert, um Fehler zu erkennen und diese wenn möglich zu korrigieren. Dementsprechend ist eine ECC-Kodiererlogik 514 ausgelegt, um Schreibdaten für den Arbeitsspeicher 104 in einen Fehlerkorrekturcode (wie beispielsweise einen Reed-Solomon-Fehlerkorrekturcode) zu kodieren. Die kodierten Schreibdaten werden im Verlauf regulärer Schreibdatentransfervorgänge in den Primärarbeitsspeicher-Dies 310a, 310b ... 310n des Arbeitsspeichers 104 gespeichert. Beispielsweise kann in einer Ausführungsform eine Zeile kodierter Schreibdaten, die in den Primärarbeitsspeicher-Dies 310a, 310b ... 310n gespeichert sind, 320 Bytes lang sein und 256 Bytes an Benutzerdaten und 64 Bytes an Metadaten bezüglich der 256 Bytes Benutzerdaten enthalten. Beispielsweise können die 64 Bytes an Metadaten Paritätsdaten oder andere redundante Daten enthalten, die zur Fehlererkennung und Fehlerkorrektur verwendet werden können.
  • Dementsprechend speichert in der dargestellten Ausführungsform jeder der Primärarbeitsspeicher-Dies 310a, 310b ... 310n 32 Bytes kodierter Schreibdaten der 320 Byte langen Zeile kodierter Schreibdaten. Zusätzlich werden die 32 Bytes kodierter Schreibdaten, die dem ausgewählten (Block 218, 2) Primärarbeitsspeicher-Die zugewiesen werden, der als in der Zukunft am wahrscheinlichsten ausfallgefährdet eingestuft ist, ebenfalls wie oben beschrieben auf den Ersatzarbeitsspeicher-Die 314 gespiegelt (Block 222). Es ist ersichtlich, dass in anderen Ausführungsformen die Länge einer Zeile kodierter Schreibdaten und die Menge der in jedem Arbeitsspeicher-Die gespeicherten kodierten Schreibdaten abhängig von der bestimmten Anwendung variieren kann.
  • 6 zeigt ein Beispiel von Vorgängen der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 in Verbindung mit Vorgängen zur Übertragung kodierter Lesedaten der ECC-Logik 510. In einem Vorgang werden kodierte Lesedaten aus den Primärarbeitsspeicher-Dies 310a, 310b ... 310n des Arbeitsspeichers 104 gelesen (Block 610) und durch die ECC-Dekodierlogik 520 der ECC-Logik 510 dekodiert. 7a zeigt ein Beispiel für das Lesen kodierter Lesedaten aus jedem der Primärarbeitsspeicher-Dies 310a, 310b ... 310n. Im Beispiel von 7a werden die kodierten Lesedaten, die vom Primärarbeitsspeicher-Die 310d, der als am wahrscheinlichsten ausfallgefährdet eingestuft worden war, auf den Ersatzarbeitsspeicher-Die 314 gespiegelt wurden, nicht aus dem Arbeitsspeicher 104 gelesen oder zu diesem Zeitpunkt anderweitig verwendet. Die ECC-Dekodierlogik 520 ist ausgelegt, um kodierte Lesedaten, die von der ECC-Kodiererlogik 514 mit einem Fehlerkorrekturcode (beispielsweise einem Reed-Solomon-Fehlerkorrekturcode) kodiert wurden, zu dekodieren.
  • Eine Bestimmung (Block 614) wird durchgeführt, ob die aus den Primärarbeitsspeicher-Dies 310a, 310b ... 310n gelesenen dekodierten Lesedaten Fehler enthalten. Eine Fehlererkennungslogik 524 (5) der ECC-Dekodierlogik 520 ist ausgelegt, um in Übereinstimmung mit dem Fehlerkorrekturcode zu erkennen, ob die aus den Primärarbeitsspeicher-Dies 310a, 310b ... 310n des Arbeitsspeichers 104 gelesenen dekodierten Lesedaten Fehler enthalten. Ist dies der Fall, wird ein Versuch unternommen, um die erkannten Fehler zu korrigieren und es wird eine Bestimmung durchgeführt (Block 620), ob die versuchte Fehlerkorrektur erfolgreich war. In der dargestellten Ausführungsform ist eine Fehlerkorrekturlogik 530 (5) der ECC-Dekodierlogik 520 ausgelegt, um erkannte Fehler in Übereinstimmung mit dem Fehlerkorrektur-Code zu korrigieren. Allgemein gilt, je mehr redundante Daten durch die ECC-Kodierung hinzugefügt werden, umso größer ist die Zahl der erkannten Fehler, die korrigiert werden können. Überschreitet die Anzahl erkannter Fehler ein bestimmtes Maximum, das eine Funktion der ECC-Kodierung ist, kann es sein, dass die Fehlerkorrektur versagt (Block 620, 6).
  • In Übereinstimmung mit einem anderen Aspekt der vorliegenden Beschreibung kann ECC-Fehlerkorrektur vorausschauende Arbeitsspeicherinstandhaltung einsetzen, um Fehlerkorrekturen vor Erkennen eines Ausfalls eines Primärarbeitsspeicher-Dies zu verbessern. Wenn beispielsweise in der Ausführungsform von 6 die Anzahl der erkannten Fehler in den dekodierten Lesedaten aus den Primärarbeitsspeicher-Dies (7a) zum Versagen der Fehlerkorrektur führt (Block 620, 6), können die kodierten Lesedaten durch die kodierten Daten, die auf den Ersatzarbeitsspeicher-Die 314 gespiegelt wurden, substituiert werden (Block 624), wie im Beispiel von 7b gezeigt. Folglich werden im Beispiel von 7b die kodierten Lesedaten, die auf den Ersatzarbeitsspeicher-Die 314 gespiegelt wurden, von der ECC-Dekodierlogik 520 gelesen. Umgekehrt werden im Beispiel von 7b die kodierten Lesedaten, die im Primärarbeitsspeicher-Die 310d, der als am wahrscheinlichsten ausfallgefährdet eingestuft ist, gespeichert sind, nicht vom Arbeitsspeicher 104 gelesen oder zu diesem Zeitpunkt anderweitig verwendet.
  • Eine Auswahllogik für kodierte Lesedaten 340 (3) der vorausschauenden Arbeitsspeicherinstandhaltungslogik 110 ist ausgelegt, um die kodierten Daten, die auf den Ersatzarbeitsspeicher-Die 314 gespiegelt wurden, auszuwählen (Block 624) und damit den Lesevorgang zu ersetzen, wie im Beispiel von 7b gezeigt, anstelle von Beispiel FIG. 7a, bei dem die kodierten Lesedaten, die in dem ausgewählten Primärarbeitsspeicher-Die 310d gespeichert wurden, der als der am wahrscheinlichsten ausfallende Die eingestuft wurde, für den Lesevorgang verwendet wurden.
  • Dementsprechend können die kodierten Lesedaten aus den Primärarbeitsspeicher-Dies 310a, 310b, 310c, 310e .... 310n (7b) zusammen mit den kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die 314 anstelle der kodierten Lesedaten aus dem Primärarbeitsspeicher-Die 310d, der als am wahrscheinlichsten ausfallend eingestuft wurde, von der ECC-Dekodierlogik 520 (5) der ECC-Logik 510 dekodiert werden. Eine Bestimmung kann erneut durchgeführt werden (Block 614, 6), ob die dekodierten Lesedaten, die diesmal aus den Primärarbeitsspeicher-Dies 310a, 310b, 310c, 310e ... 310n zusammen mit den dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die 314 statt aus dem Primärarbeitsspeicher-Die 310d, der als am wahrscheinlichsten ausfallend eingestuft wurde, gelesen wurden, Fehler enthalten. Es ist ersichtlich, dass in einigen Ausführungsformen, indem die Daten des Primärarbeitsspeicher-Dies 310d, der als am wahrscheinlichsten ausfallend eingestuft wurde, durch die Lesedaten aus dem Ersatzarbeitsspeicher-Die 314 substituiert werden, Fehler in den Lesedaten eliminiert werden können, wodurch jegliche nachfolgende Fehlerkorrektur vermieden wird. Falls das so ist, kann der Lesevorgang erfolgreich abgeschlossen werden (Block 630).
  • Wird festgestellt (Block 614), dass die aus den Primärarbeitsspeicher-Dies 310a, 310b, 310c, 310e .... 310n gelesenen dekodierten Lesedaten zusammen mit den dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die 314 statt aus dem Primärarbeitsspeicher-Die 310d, der als am wahrscheinlichsten ausfallend eingestuft wurde, tatsächlich Fehler enthalten, kann erneut versucht werden, die erkannten Fehler zu korrigieren, und es wird festgestellt (Block 620), ob die versuchte Fehlerkorrektur erfolgreich war. Es ist ersichtlich, dass in einigen Ausführungsformen, indem die Daten des Primärarbeitsspeicher-Dies 310d, der als am wahrscheinlichsten ausfallend eingestuft wurde, durch die Lesedaten aus dem Ersatzarbeitsspeicher-Die 314 substituiert werden, Fehler in den Lesedaten derart ausreichend reduziert werden können, dass sie in die Fehlerkorrekturfähigkeit der Fehlerkorrekturlogik 530 (5) der ECC-Dekodierlogik 520 fallen. Wenn beispielsweise ein Datenfehler in den kodierten Lesedaten aus dem Primärarbeitsspeicher-Die 310d, der als am wahrscheinlichsten ausfallend eingestuft wurde, aufgetreten ist, zusätzlich zu einem Datenfehler, der in einem anderen Primärarbeitsspeicher-Die aufgetreten ist, aber die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die frei von Datenfehlern sind oder weniger Fehler enthalten, wird durch Substituieren (Block 624) der kodierten Lesedaten aus dem Primärarbeitsspeicher-Die 310d, der als am wahrscheinlichsten ausfallend eingestuft wurde, durch die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die 314, die Zahl der Datenfehler derart reduziert, dass die Fehlerkorrektur erfolgreich sein kann und der Datentransfer erfolgreich abgeschlossen werden kann (Block 630).
  • In einem anderen Aspekt der vorliegenden Beschreibung ist die Logik für die Auswahl der Quelle 320 (3) ausgelegt, um über einen Zeitraum hinweg vergleichende statistische Daten zur Leistungsfähigkeit zu akkumulieren, die die relative Leistungsfähigkeit eines jeden Primärarbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren. Beispielsweise ist, wie bereits erwähnt, die Fehlererkennungslogik 524 (5) des ECC-Dekodierers 520 ausgelegt, um Fehler in den dekodierten Lesedaten, die aus dem Arbeitsspeicher 104 gelesen werden, zu erkennen. Die Logik für die Auswahl der Quelle 320 kann ausgelegt sein, um für jeden Primärarbeitsspeicher-Die die erkannten Fehler nachzuverfolgen und eine unkorrigierte Bitfehlerrate (RBER) für jeden Primärarbeitsspeicher-Die des Arbeitsspeichers 104 zu berechnen. Die berechnete RBER kann periodisch aktualisiert werden, beispielsweise in jedem Auffrischungszyklus. Es ist ersichtlich, dass andere statistische Leistungsfähigkeitsdaten akkumuliert werden können, um eine Grundlage für die Logik für die Auswahl der Quelle 320 zu schaffen, um einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als den operationellen Primärarbeitsspeicher-Die auszuwählen, der am ehesten ausfallen wird. Die Logik für die Auswahl der Quelle kann ausgelegt sein, um den Primärarbeitsspeicher-Die als eine Funktion des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, auszuwählen.
  • Beispiele
  • Die folgenden Beispiele beziehen sich auf weitere Ausführungsformen.
  • Beispiel 1 ist eine Einrichtung, umfassend:
    • Auswahllogik, die ausgelegt ist, um Speicherleistungfähigkeit von operationellen Arbeitsspeicher-Dies eines Arbeitsspeichers zu ermitteln, und einen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion der Leistungsfähigkeit des Arbeitsspeicher-Dies auszuwählen; und
    • Datenspiegelungslogik, die ausgelegt ist, um Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf einen Ersatzarbeitsspeicher-Die zu spiegeln.
  • In Beispiel 2 kann der Gegenstand der Beispiele 1-8 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen:
    • Die-Ausfallerkennungslogik, die ausgelegt ist, um Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies zu erkennen; und
    • Die-Austauschlogik, die ausgelegt ist, um als Reaktion auf Erkennen des Ausfalls des ausgewählten operatrionellen Arbeitsspeicher-Dies den ausgefallenen operationellen Arbeitsspeicher-Die zu deaktivieren und den ausgefallenen operationellen Arbeitsspeicher-Die durch den Ersatzarbeitsspeicher-Die zu ersetzen, wobei der Ersatzspeicher-Die Daten aufweist, die von dem ausgewählten operationellen Arbeitsspeicher-Die gespiegelt wurden, bevor ein Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies erkannt wurde.
  • In Beispiel 3 kann der Gegenstand der Beispiele 1-8 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen:
    • Fehlerkorrekturcode-Logik, die ausgelegt ist, um Daten aus den operationellen Arbeitsspeicher-Dies des Arbeitsspeichers, einschließlich des ausgewählten operationellen Ersatzarbeitsspeicher-Dies, zu lesen, wobei die Lesedaten in Übereinstimmung mit einem Fehlerkorrekturcode kodiert sind, wobei die Fehlerkorrekturcode-Logik aufweist, die Dekodierlogik ausgelegt ist, um die kodierten Lesedaten zu dekodieren, und Fehlererkennungslogik aufweist, die ausgelegt ist, um einen Fehler in den dekodierten Lesedaten zu erkennen, und Fehlerkorrekturlogik aufweist, die ausgelegt ist, um zu versuchen, einen erkannten Fehler in den dekodierten Lesedaten zu korrigieren, wobei die Fehlerkorrekturcode-Logik ferner ausgelegt ist, um als Reaktion auf ein Versagen der Fehlerkorrekturlogik bei der Korrektur eines erkannten Fehlers in den dekodierten Lesedaten Daten aus dem Ersatzarbeitsspeicher-Die zu lesen, wobei die Lesedaten in Übereinstimmung mit einem Fehlerkorrekturcode kodiert sind, und die kodierten Lesedaten aus dem ausgewählten operationellen Arbeitsspeicher-Die durch die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die substituiert werden.
  • In Beispiel 4 kann der Gegenstand der Beispiele 1-8 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei die Dekodierlogik ferner ausgelegt ist, um die kodierten Lesedaten zu dekodieren, welche die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlererkennungslogik ferner ausgelegt ist, um einen Fehler in den dekodierten Lesedaten zu erkennen, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlerkorrekturlogik ferner ausgelegt ist, um einen erkannten Fehler in den dekodierten Lesedaten, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, zu korrigieren.
  • In Beispiel 5 kann der Gegenstand der Beispiele 1-8 (mit Ausnahme des vorliegenden Beispiels) optional zyklische vorausschauende Arbeitsspeicherinstandhaltungslogik aufweisen, die ausgelegt ist, um zyklisch vorausschauende Arbeitsspeicherinstandhaltung in einer Vielzahl von Instandhaltungszyklen durchzuführen, wobei in jedem Instandhaltungszyklus die Auswahllogik ferner ausgelegt ist, um in jedem Instandhaltungszyklus die Speicherleistungsfähigkeit der operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln und einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers in Abhängigkeit der Arbeitsspeicher-Die-Leistungsfähigkeit auszuwählen; und wobei die Datenspiegelungslogik ferner ausgelegt ist, um in jedem Instandhaltungszyklus Daten für den ausgewählten Arbeitsspeicher-Die auf den Ersatzarbeitsspeicher-Die zu spiegeln.
  • In Beispiel 6 kann der Gegenstand der Beispiele 1-8 (mit Ausnahme des vorliegenden Beispiels) optional zyklische Auffrischungslogik aufweisen, die ausgelegt ist, um zyklisch Auffrischungen des Arbeitsspeichers in einer Vielzahl von Auffrischungszyklen durchzuführen, wobei die vorausschauende Arbeitsspeicherinstandhaltungslogik ferner ausgelegt ist, um jeden Instandhaltungszyklus in Verbindung mit einem Auffrischungszyklus durchzuführen.
  • In Beispiel 7 kann der Gegenstand der Beispiele 1-8 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei die Auswahllogik Logik aufweist, die ausgelegt ist, um Arbeitsspeicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln, einschließlich Logik, die ausgelegt ist, um über einen Zeitraum vergleichende statistische Leistungsfähigkeitsdaten zu akkumulieren, die die relative Leistungsfähigkeit jedes Arbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren, und Logik, die ausgelegt ist, um einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, auszuwählen.
  • In Beispiel 8 kann der Gegenstand der Beispiele 1-8 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen, wobei die Leistungsfähigkeitskriterien unkorrigierte Bitfehlerrate aufweisen.
  • Beispiel 9 ist ein System zur Verwendung mit einem Display, umfassend:
    • einen Prozessor;
    • einen Videocontroller, der ausgelegt ist, um das Display in Reaktion auf den Prozessor zu steuern;
    • einen Arbeitsspeicher, der ausgelegt ist, um Daten vom Prozessor zu speichern, und der eine Vielzahl von Arbeitsspeicher-Dies einschließlich eines Ersatzarbeitsspeicher-Dies aufweist; und
    • einen Arbeitsspeichercontroller, der ausgelegt ist, um den Arbeitsspeicher zu steuern, wobei der Arbeitsspeichercontroller aufweist:
      • Auswahllogik, die ausgelegt ist, um Speicherleistungfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln, und um einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion der Leistungsfähigkeit des Arbeitsspeicher-Dies auszuwählen; und
      • Datenspiegelungslogik, die ausgelegt ist, um Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf den Ersatzarbeitsspeicher-Die zu spiegeln.
  • In Beispiel 10 kann der Gegenstand der Beispiele 9-16 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei der Arbeitsspeichercontroller ferner aufweist:
    • Die-Ausfallerkennungslogik, die ausgelegt ist, um Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies zu erkennen; und
    • Die-Austauschlogik, die ausgelegt ist, um als Reaktion auf Erkennen des Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies den ausgefallenen operationellen Arbeitsspeicher-Die zu deaktivieren und den ausgefallenen operationellen Arbeitsspeicher-Die durch den Ersatzarbeitsspeicher-Die zu ersetzen, wobei der Ersatzspeicher-Die Daten aufweist, die von dem ausgewählten operationellen Arbeitsspeicher-Die gespiegelt wurden, bevor ein Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies erkannt wurde.
  • In Beispiel 11 kann der Gegenstand der Beispiele 9-16 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei der Arbeitsspeichercontroller ferner aufweist:
    • Fehlerkorrekturcode-Logik, die ausgelegt ist, um Daten aus den operationellen Arbeitsspeicher-Dies des Arbeitsspeichers, einschließlich des ausgewählten operationellen Ersatzarbeitsspeicher-Dies, zu lesen, wobei die Lesedaten in Übereinstimmung mit einem Fehlerkorrekturcode kodiert sind, wobei die Fehlerkorrekturcode-Logik Dekodierlogik aufweist, die ausgelegt ist, um die kodierten Lesedaten zu dekodieren, und Fehlererkennungslogik aufweist, die ausgelegt ist, um einen Fehler in den dekodierten Lesedaten zu erkennen, und Fehlerkorrekturlogik aufweist, die ausgelegt ist, um zu versuchen, einen erkannten Fehler in den dekodierten Lesedaten zu korrigieren, wobei die Fehlerkorrekturcode-Logik ferner ausgelegt ist, um als Reaktion auf ein Versagen der Fehlerkorrekturlogik bei der Korrektur eines erkannten Fehlers in den dekodierten Lesedaten Daten vom Ersatzarbeitsspeicher-Die zu lesen, wobei die Lesedaten in Übereinstimmung mit einem Fehlerkorrektur-Code kodiert sind, und die kodierten Lesedaten aus dem ausgewählten operationellen Arbeitsspeicher-Die durch die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die substituiert werden.
  • In Beispiel 12 kann der Gegenstand der Beispiele 9-16 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei die Dekodierlogik ferner ausgelegt ist, um die kodierten Lesedaten zu dekodieren, welche die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlererkennungslogik ferner ausgelegt ist, um einen Fehler in den dekodierten Lesedaten zu erkennen, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlerkorrekturlogik ferner ausgelegt ist, um einen erkannten Fehler in den dekodierten Lesedaten, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, zu korrigieren.
  • In Beispiel 13 kann der Gegenstand der Beispiele 9-16 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei der Arbeitsspeichercontroller ferner zyklische vorausschauende Arbeitsspeicherinstandhaltungslogik aufweist, die ausgelegt ist, um zyklisch vorausschauende Arbeitsspeicherinstandhaltung in einer Vielzahl von Instandhaltungszyklen durchzuführen, wobei in jedem Instandhaltungszyklus die Auswahllogik ferner ausgelegt ist, um in jedem Instandhaltungszyklus die Speicherleistungsfähigkeit der operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln und einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion der Arbeitsspeicher-Die-Leistungsfähigkeit auszuwählen; und wobei die Datenspiegelungslogik ferner ausgelegt ist, um in jedem Instandhaltungszyklus Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf den Ersatzarbeitsspeicher-Die zu spiegeln.
  • In Beispiel 14 kann der Gegenstand der Beispiele 9-16 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei der Arbeitsspeichercontroller ferner zyklische Auffrischungslogik aufweist, die ausgelegt ist, um zyklisch Auffrischungen des Arbeitsspeichers in einer Vielzahl von Auffrischungszyklen durchzuführen, wobei die zyklische vorausschauende Arbeitsspeicherinstandhaltungslogik ferner ausgelegt ist, um jeden Instandhaltungszyklus in Verbindung mit einem Auffrischungszyklus durchzuführen.
  • In Beispiel 15 kann der Gegenstand der Beispiele 9-16 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei die Auswahllogik Logik aufweist, die ausgelegt ist, um Arbeitsspeicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln, einschließlich Logik, die ausgelegt ist, um über einen Zeitraum vergleichende statistische Leistungsfähigkeitsdaten zu akkumulieren, die die relative Leistungsfähigkeit jedes Arbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren, und Logik, die ausgelegt ist, um einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, auszuwählen.
  • In Beispiel 16 kann der Gegenstand der Beispiele 9-16 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen, wobei die Leistungsfähigkeitskriterien unkorrigierte Bitfehlerrate aufweisen.
  • Beispiel 17 ist ein Verfahren, umfassend:
    • Bestimmen von Speicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies eines Arbeitsspeichers;
    • Auswählen eines operationellen Arbeitsspeicher-Dies des Arbeitsspeichers als eine Funktion der Arbeitsspeicherleistungsfähigkeit; und
    • Spiegeln von Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf einen Ersatzarbeitsspeicher-Die.
  • In Beispiel 18 kann der Gegenstand der Beispiele 17-24 (mit Ausnahme des vorliegenden Beispiels) optional Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies aufweisen, als Reaktion auf Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies, Deaktivieren des ausgefallenen operationellen Arbeitsspeicher-Dies und Ersetzen des ausgefallenen operationellen Arbeitsspeicher-Dies durch den Ersatzarbeitsspeicher-Die, wobei der Ersatzarbeitsspeicher-Die Daten aufweist, die vom ausgewählten operationellen Arbeitsspeicher-Die vor dem Erkennen des Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies gespiegelt wurden.
  • In Beispiel 19 kann der Gegenstand der Beispiele 17-24 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen:
    • Lesen von Daten aus den operationellen Arbeitsspeicher-Dies des Arbeitsspeichers, einschließlich des ausgewählten operationellen Arbeitsspeicher-Dies;
    • Versuchen einer Fehlerkorrektur der Lesedaten, falls die Lesedaten einen Fehler enthalten;
    • falls die Fehlerkorrektur nicht erfolgreich ist, Modifizieren der Lesedaten durch Ersetzen der aus dem ausgewählten operationellen Arbeitsspeicher-Die gelesenen Lesedaten durch die vor Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies aus dem Ersatzarbeitsspeicher-Die gelesenen Lesedaten; und
    • Versuchen einer Fehlerkorrektur der modifizierten Lesedaten, falls die modifizierten Lesedaten einen Fehler enthalten.
  • In Beispiel 20 kann der Gegenstand der Beispiele 17-24 (mit Ausnahme des vorliegenden Beispiels) optional zyklisches Durchführen von Instandhaltung des Arbeitsspeichers in einer Vielzahl von Instandhaltungszyklen aufweisen, wobei jeder Instandhaltungszyklus aufweist:
    • das Bestimmen von Speicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers;
    • das Auswählen eines operationellen Arbeitsspeicher-Dies des Arbeitsspeichers als eine Funktion der Arbeitsspeicherleistungsfähigkeit; und
    • das Spiegeln von Daten des ausgewählten operationellen Arbeitsspeicher-Dies auf den Ersatzarbeitsspeicher-Die.
  • In Beispiel 21 kann der Gegenstand der Beispiele 17-24 (mit Ausnahme des vorliegenden Beispiels) optional die Durchführung zyklischer Auffrischungen des Arbeitsspeichers in einer Vielzahl von Auffrischungszyklen aufweisen, wobei jeder Instandhaltungszyklus in Verbindung mit einem Auffrischungszyklus durchgeführt wird.
  • In Beispiel 22 kann der Gegenstand der Beispiele 17-24 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei das Ermitteln von Speicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers Akkumulieren relativer statistischer Leistungsfähigkeitsdaten über einen Zeitraum aufweist, die die relative Leistungsfähigkeit jedes Arbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren, und wobei das Auswählen eines operationellen Arbeitsspeicher-Dies des Arbeitsspeichers als eine Funktion von Arbeitsspeicher-Die-Leistungsfähigkeit ein Auswählen des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, einschließt.
  • In Beispiel 23 kann der Gegenstand der Beispiele 17-24 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen, wobei die Leistungsfähigkeitskriterien unkorrigierte Bitfehlerrate aufweisen.
  • In Beispiel 24 kann der Gegenstand der Beispiele 17-24 (unter Ausschluss des vorliegenden Beispiels) optional mindestens einen Vorgang aufweisen:
    1. (1) Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies, als Reaktion auf Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies, Deaktivieren des ausgefallenen operationellen Arbeitsspeicher-Dies und Ersetzen des ausgefallenen operationellen Arbeitsspeicher-Dies durch den Ersatzarbeitsspeicher-Die, wobei der Ersatzarbeitsspeicher-Die Daten aufweist, die vom ausgewählten operationellen Arbeitsspeicher-Die vor dem Erkennen des Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies gespiegelt wurden;
    2. (2) Lesen von Daten aus den operationellen
      • Arbeitsspeicher-Dies des Arbeitsspeichers einschließlich des ausgewählten operationellen Arbeitsspeicher-Dies;
      • Versuchen einer Fehlerkorrektur der Lesedaten, falls die Lesedaten einen Fehler enthalten;
      • falls die Fehlerkorrektur nicht erfolgreich ist, Modifizieren der Lesedaten durch Ersetzen der aus dem ausgewählten operationellen Arbeitsspeicher-Die gelesenen Lesedaten durch die vor Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies aus dem Ersatzarbeitsspeicher-Die gelesenen Lesedaten; und
      • Versuchen einer Fehlerkorrektur der modifizierten Lesedaten, falls die modifizierten Lesedaten einen Fehler enthalten;
    3. (3) zyklische Durchführung von Instandhaltung des Arbeitsspeichers in einer Vielzahl von Instandhaltungszyklen, wobei jeder Instandhaltungszyklus aufweist:
      • das Bestimmen von Speicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers;
      • das Auswählen eines operationellen Arbeitsspeicher-Dies des Arbeitsspeichers als eine Funktion der Arbeitsspeicherleistungsfähigkeit; und
      • das Spiegeln von Daten des ausgewählten operationellen Arbeitsspeicher-Dies auf den Ersatzarbeitsspeicher-Die;
    4. (4) Durchführen zyklischer Auffrischungen des Arbeitsspeichers in einer Vielzahl von Auffrischungszyklen, wobei jeder Instandhaltungszyklus in Verbindung mit einem Auffrischungszyklus durchgeführt wird;
    5. (5) wobei das Ermitteln von Speicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers Akkumulieren vergleichender statistischer Leistungsfähigkeitsdaten über einen Zeitraum aufweist, die die relative Leistungsfähigkeit jedes Arbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren, und wobei das Auswählen eines operationellen Arbeitsspeicher-Dies des Arbeitsspeichers als eine Funktion von Arbeitsspeicher-Die-Leistungsfähigkeit ein Auswählen des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, einschließt; und
    6. (6) wobei die Leistungsfähigkeitskriterien unkorrigierte Bitfehlerrate aufweisen.
  • Beispiel 25 ist eine Einrichtung, umfassend:
    • Auswahlmittel zum Ermitteln der Speicherleistungfähigkeit von operationellen Arbeitsspeicher-Dies eines Arbeitsspeichers, und Auswählen eines operationellen Arbeitsspeicher-Dies des Arbeitsspeichers als eine Funktion der Leistungsfähigkeit des Arbeitsspeicher-Dies; und
    • Mittel zur Datenspiegelung zum Spiegeln von Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf einen Ersatzarbeitsspeicher-Die.
  • In Beispiel 26 kann der Gegenstand der Beispiele 25-32 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen:
    • Mittel zur Die-Ausfallerkennung zum Erkennen von Ausfällen des ausgewählten operationellen Arbeitsspeicher-Dies; und
    • Mittel zum Ersetzen von Dies, um, als Reaktion auf Erkennen des Ausfalls des ausgewählten Arbeitsspeicher-Dies den ausgefallenen operationellen Arbeitsspeicher-Die zu deaktivieren und den ausgefallenen operationellen Arbeitsspeicher-Die durch den Ersatzarbeitsspeicher-Die zu ersetzen, wobei der Ersatzspeicher-Die Daten aufweist, die vom ausgewählten operationellen Arbeitsspeicher-Die gespiegelt wurden, bevor ein Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies erkannt wurde.
  • In Beispiel 27 kann der Gegenstand der Beispiele 25-32 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen:
    • Fehlerkorrekturcode-Mittel zum Lesen von Daten aus den operationellen Arbeitsspeicher-Dies des Arbeitsspeichers einschließlich des ausgewählten operationellen Arbeitsspeicher-Dies, wobei die Lesedaten gemäß einem Fehlerkorrekturcode kodiert sind, wobei die Fehlerkorrekturcode-Mittel Dekodiermittel zum Dekodieren der kodierten Lesedaten, Fehlererkennungsmittel zum Erkennen eines Fehlers in den dekodierten Lesedaten und Fehlerkorrekturmittel Versuchen, einen erkannten Fehler in den dekodierten Lesedaten zu korrigieren, aufweisen, wobei die Fehlerkorrekturcode-Mittel ferner ausgelegt sind, um in Reaktion auf ein Versagen der Fehlerkorrekturmittel, einen erkannten Fehler in den dekodierten Lesedaten zu korrigieren, Daten aus dem Ersatzarbeitsspeicher-Die zu lesen, wobei die Lesedaten gemäß einem Fehlerkorrekturcode kodiert sind, und die kodierten Lesedaten aus dem ausgewählten operationellen Arbeitsspeicher-Die durch die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die zu substituieren.
  • In Beispiel 28 kann der Gegenstand der Beispiele 25-32 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei die Dekodiermittel ferner ausgelegt sind, um die kodierten Lesedaten zu dekodieren, welche die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlererkennungsmittel ferner ausgelegt sind, um einen Fehler in den dekodierten Lesedaten zu erkennen, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlerkorrekturmittel ferner ausgelegt sind, um einen erkannten Fehler in den dekodierten Lesedaten, einschließlich der dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die, zu korrigieren.
  • In Beispiel 29 kann der Gegenstand der Beispiele 25-32 (mit Ausnahme des vorliegenden Beispiels) optional zyklische vorausschauende Arbeitsspeicherinstandhaltungsmittel aufweisen, um zyklisch vorausschauende Arbeitsspeicherinstandhaltung in einer Vielzahl von Instandhaltungszyklen durchzuführen, wobei in jedem Instandhaltungszyklus die Auswahlmittel ferner ausgelegt sind, um in jedem Instandhaltungszyklus die Speicherleistungsfähigkeit der operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln und einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion der Arbeitsspeicher-Die-Leistungsfähigkeit auszuwählen; und wobei die Datenspiegelungsmittel ferner ausgelegt sind, um in jedem Instandhaltungszyklus Daten für den ausgewählten Arbeitsspeicher-Die auf den Ersatzarbeitsspeicher-Die zu spiegeln.
  • In Beispiel 30 kann der Gegenstand der Beispiele 25-32 (mit Ausnahme des vorliegenden Beispiels) optional zyklische Auffrischungsmittel aufweisen, um zyklisch Auffrischungen des Arbeitsspeichers in einer Vielzahl von Auffrischungszyklen durchzuführen, wobei die Mittel für die vorausschauende Arbeitsspeicherinstandhaltung ferner ausgelegt sind, um jeden Instandhaltungszyklus in Verbindung mit einem Auffrischungszyklus durchzuführen.
  • In Beispiel 31 kann der Gegenstand der Beispiele 25-32 (mit Ausnahme des vorliegenden Beispiels) optional aufweisen, wobei die Auswahlmittel Mittel aufweisen, um Arbeitsspeicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln, einschließlich Mitteln, um über einen Zeitraum vergleichende statistische Leistungsfähigkeitsdaten zu akkumulieren, die die relative Leistungsfähigkeit jedes Arbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren, und Mittel, um einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, auszuwählen.
  • In Beispiel 32 kann der Gegenstand der Beispiele 25-32 (unter Ausschluss des vorliegenden Beispiels) optional aufweisen, wobei die Leistungsfähigkeitskriterien unkorrigierte Bitfehlerrate aufweisen.
  • Beispiel 33 ist eine Einrichtung, die Mittel umfasst, um ein Verfahren, wie es in einem der vorhergehenden Beispiele beansprucht wird, auszuführen.
  • Beispiel 34 ist ein maschinenlesbarer Datenspeicher, der maschinenlesbare Befehle aufweist, die bei Ausführung ein Verfahren implementieren oder eine Vorrichtung oder ein System verwirklichen, wie in einem der vorhergehenden Beispiele beansprucht.
  • Die beschriebenen Vorgänge können als ein Verfahren, eine Einrichtung oder ein Computerprogrammprodukt unter Verwendung von Standardprogrammierungs- und/oder Ingenieurtechniken zur Herstellung von Software, Firmware, Hardware oder einer beliebigen Kombination dieser implementiert werden. Die beschriebenen Vorgänge können als Computerprogrammcode implementiert werden, der in einem „computerlesbaren Datenspeichermedium“ unterhalten wird, wobei ein Prozessor den Code aus dem computerlesbaren Datenspeichermedium lesen und ausführen kann. Das computerlesbare Datenspeichermedium weist mindestens einen der elektronischen Schaltkreise, Datenspeichermaterialien, anorganischen Materialien, organischen Materialien, biologischen Materialien, ein Gehäuse, eine Verkleidung, eine Beschichtung und Hardware auf. Ein computerlesbares Datenspeichermedium kann umfassen, aber ist nicht beschränkt auf, ein magnetisches Datenspeichermedium (z. B. Festplattenlaufwerke, Disketten, Bandlaufwerk usw.), optische Datenspeicher (CD-ROMs, DVDs, optische Speicherplatten usw.), flüchtige und nichtflüchtige Arbeitsspeichervorrichtungen (z. B. EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash-Speicher, Firmware, programmierbare Logik usw.), Festkörperbauelemente (SSD) usw. Der Code, der die beschriebenen Vorgänge implementiert, kann ferner in einer Hardwarelogik implementiert sein, die in einer Hardwarevorrichtung implementiert ist (z. B. einem integrierten Schaltkreischip, programmierbaren Gate-Array (PGA), anwendungsspezifischen integrierten Schaltkreis (ASIC) usw.). Darüber hinaus kann der Code, der die beschriebenen Vorgänge implementiert, in „Übertragungssignalen“ implementiert sein, wobei sich Übertragungssignale durch den Raum oder durch ein Übertragungsmedium, wie eine Glasfaser, Kupferdraht usw., ausbreiten können. Die Übertragungssignale, in denen der Code oder die Logik kodiert ist, können außerdem ein drahtloses Signal, eine Satellitenübertragung, Funkwellen, Infrarotsignale, Bluetooth usw. umfassen. Der in einem computerlesbaren Datenspeichermedium eingebettete Programmcode kann in Form von Übertragungssignalen von einer Sendestation oder einem Computer zu einer Empfangsstation oder einem Computer übertragen werden. Ein computerlesbares Datenspeichermedium umfasst nicht nur Übertragungssignale. Der Fachmann wird anerkennen, dass viele Modifikationen an dieser Konfiguration vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Beschreibung abzuweichen, und dass der Herstellungsartikel ein geeignetes Informationsträgermedium umfassen kann, das in der Fachwelt bekannt ist. Natürlich wird der Fachmann anerkennen, dass viele Modifikationen an dieser Konfiguration vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Beschreibung abzuweichen, und dass der Herstellungsartikel ein beliebiges materielles Informationsträgermedium umfassen kann, das in der Fachwelt bekannt ist.
  • In bestimmten Anwendungen kann eine Vorrichtung gemäß der vorliegenden Beschreibung in einem Computersystem verkörpert sein, das einen Videocontroller zur Darstellung von Informationen auf einem Monitor oder einem anderen mit dem Computersystem gekoppelten Display, einen Gerätetreiber und einen Netzwerkcontroller aufweist, wie z. B. ein Computersystem, das einen Desktop, eine Workstation, einen Server, Mainframe, Laptop, Handheld-Computer usw. umfasst. Alternativ können die Ausführungsformen der Vorrichtung in einem Computergerät verkörpert sein, das beispielsweise keinen Videocontroller enthält, wie einen Switch, Router usw., oder beispielsweise keinen Netzwerkcontroller enthält.
  • Die dargestellte Logik der Figuren kann bestimmte Ereignisse zeigen, die in einer bestimmten Reihenfolge auftreten. In alternativen Ausführungsformen können bestimmte Vorgänge in einer anderen Reihenfolge durchgeführt sowie modifiziert oder entfernt werden. Außerdem können Vorgänge zur oben beschriebenen Logik hinzugefügt werden und trotzdem den beschriebenen Ausführungsformen entsprechen. Darüber hinaus können die hier beschriebenen Vorgänge sequentiell ablaufen oder bestimmte Vorgänge können parallel verarbeitet werden. Darüber hinaus können Vorgänge von einer einzelnen Verarbeitungseinheit oder von verteilten Verarbeitungseinheiten ausgeführt werden.
  • Die vorstehende Beschreibung verschiedener Ausführungsformen wurde zur Veranschaulichung und Beschreibung dargelegt. Sie erhebt keinen Anspruch auf Vollständigkeit und ist nicht dazu bestimmt, die offenbarte konkrete Form zu beschränken. Angesichts der obigen Lehren sind viele Modifikationen und Variationen möglich.

Claims (23)

  1. Einrichtung, umfassend: Auswahllogik, die ausgelegt ist, um Speicherleistungfähigkeit von operationellen Arbeitsspeicher-Dies eines Arbeitsspeichers zu ermitteln, und einen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion der Leistungsfähigkeit des Arbeitsspeicher-Dies auszuwählen; und Datenspiegelungslogik, die ausgelegt ist, um Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf einen Ersatzarbeitsspeicher-Die zu spiegeln.
  2. Einrichtung nach Anspruch 1, außerdem Folgendes umfassend: Die-Ausfallerkennungslogik, die ausgelegt ist, um Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies zu erkennen; und Die-Austauschlogik, die ausgelegt ist, um als Reaktion auf Erkennen des Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies den ausgefallenen operationellen Arbeitsspeicher-Die zu deaktivieren und den ausgefallenen operationellen Arbeitsspeicher-Die durch den Ersatzarbeitsspeicher-Die zu ersetzen, wobei der Ersatzspeicher-Die Daten aufweist, die von dem ausgewählten operationellen Arbeitsspeicher-Die gespiegelt wurden, bevor ein Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies erkannt wurde.
  3. Einrichtung nach einem der Ansprüche 1-2, ferner umfassend: Fehlerkorrekturcode-Logik, die ausgelegt ist, um Daten aus den operationellen Arbeitsspeicher-Dies des Arbeitsspeichers, einschließlich des ausgewählten operationellen Ersatzarbeitsspeicher-Dies, zu lesen, wobei die Lesedaten in Übereinstimmung mit einem Fehlerkorrekturcode kodiert sind, wobei die Fehlerkorrekturcode-Logik Dekodierlogik aufwiest, die ausgelegt ist, um die kodierten Lesedaten zu dekodieren, und Fehlererkennungslogik aufweist, die ausgelegt ist, um einen Fehler in den dekodierten Lesedaten zu erkennen, und Fehlerkorrekturlogik aufweist, die ausgelegt ist, um zu versuchen, einen erkannten Fehler in den dekodierten Lesedaten zu korrigieren, wobei die Fehlerkorrekturcode-Logik ferner ausgelegt ist, um als Reaktion auf ein Versagen der Fehlerkorrekturlogik bei der Korrektur eines erkannten Fehlers in den dekodierten Lesedaten Daten aus dem Ersatzarbeitsspeicher-Die zu lesen, wobei die Lesedaten in Übereinstimmung mit einem Fehlerkorrekturcode kodiert sind, und die kodierten Lesedaten aus dem ausgewählten operationellen Arbeitsspeicher-Die durch die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die substituiert werden.
  4. Einrichtung nach Anspruch 3, wobei die Dekodierlogik ferner ausgelegt ist, um die kodierten Lesedaten zu dekodieren, welche die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlererkennungslogik ferner ausgelegt ist, um einen Fehler in den dekodierten Lesedaten zu erkennen, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlerkorrekturlogik ferner ausgelegt ist, um einen erkannten Fehler in den dekodierten Lesedaten, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, zu korrigieren.
  5. Einrichtung nach einem der Ansprüche 1-2, ferner zyklische vorausschauende Arbeitsspeicherinstandhaltungslogik umfassend, die ausgelegt ist, um zyklisch vorausschauende Arbeitsspeicherinstandhaltung in einer Vielzahl von Instandhaltungszyklen durchzuführen, wobei in jedem Instandhaltungszyklus die Auswahllogik ferner ausgelegt ist, um in jedem Instandhaltungszyklus die Speicherleistungsfähigkeit der operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln und einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion der Arbeitsspeicher-Die-Leistungsfähigkeit auszuwählen; und wobei die Datenspiegelungslogik ferner ausgelegt ist, um in jedem Instandhaltungszyklus Daten für den ausgewählten Arbeitsspeicher-Die auf den Ersatzarbeitsspeicher-Die zu spiegeln.
  6. Einrichtung nach Anspruch 5, ferner zyklische Auffrischungslogik umfassend, die ausgelegt ist, um zyklisch Auffrischungen des Arbeitsspeichers in einer Vielzahl von Auffrischungszyklen durchzuführen, wobei die vorausschauende Arbeitsspeicherinstandhaltungslogik ferner ausgelegt ist, um jeden Instandhaltungszyklus in Verbindung mit einem Auffrischungszyklus durchzuführen.
  7. Einrichtung nach einem der Ansprüche 1-2, wobei die Auswahllogik Logik aufweist, die ausgelegt ist, um Arbeitsspeicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln, einschließlich Logik, die ausgelegt ist, um über einen Zeitraum vergleichende statistische Leistungsfähigkeitsdaten zu akkumulieren, die die relative Leistungsfähigkeit jedes Arbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren, und Logik, die ausgelegt ist, um einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, auszuwählen.
  8. Einrichtung nach Anspruch 7, wobei die Leistungsfähigkeitskriterien unkorrigierte Bitfehlerrate aufweisen.
  9. System zur Verwendung mit einem Display, umfassend: einen Prozessor; einen Videocontroller, der ausgelegt ist, um das Display in Reaktion auf den Prozessor zu steuern; einen Arbeitsspeicher, der ausgelegt ist, um Daten vom Prozessor zu speichern, und der eine Vielzahl von Arbeitsspeicher-Dies einschließlich eines Ersatzarbeitsspeicher-Dies aufweist; und einen Arbeitsspeichercontroller, der ausgelegt ist, um den Arbeitsspeicher zu steuern, wobei der Arbeitsspeichercontroller aufweist: Auswahllogik, die ausgelegt ist, um Speicherleistungfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln, und um einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion der Leistungsfähigkeit des Arbeitsspeicher-Dies auszuwählen; und Datenspiegelungslogik, die ausgelegt ist, um Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf den Ersatzarbeitsspeicher-Die zu spiegeln.
  10. System nach Anspruch 9, wobei der Arbeitsspeichercontroller ferner aufweist: Die-Ausfallerkennungslogik, die ausgelegt ist, um Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies zu erkennen; und Die-Austauschlogik, die ausgelegt ist, um als Reaktion auf Erkennen des Ausfalls des ausgewählten Arbeitsspeicher-Dies den ausgefallenen operationellen Arbeitsspeicher-Die zu deaktivieren und den ausgefallenen operationellen Arbeitsspeicher-Die durch den Ersatzarbeitsspeicher-Die zu ersetzen, wobei der Ersatzspeicher-Die Daten aufweist, die vom ausgewählten operationellen Arbeitsspeicher-Die gespiegelt wurden, bevor ein Ausfall des ausgewählten operationellen Arbeitsspeicher-Dies erkannt wurde.
  11. System nach einem der Ansprüche 9-10, wobei der Arbeitsspeichercontroller ferner aufweist: Fehlerkorrekturcode-Logik, die ausgelegt ist, um Daten aus den operationellen Arbeitsspeicher-Dies des Arbeitsspeichers, einschließlich des ausgewählten operationellen Ersatzarbeitsspeicher-Dies, zu lesen, wobei die Lesedaten in Übereinstimmung mit einem Fehlerkorrekturcode kodiert sind, wobei die Fehlerkorrekturcode-Logik Dekodierlogik aufweist, die ausgelegt ist, um die kodierten Lesedaten zu dekodieren, und Fehlererkennungslogik aufweist, die ausgelegt ist, um einen Fehler in den dekodierten Lesedaten zu erkennen, und Fehlerkorrekturlogik aufweist, die ausgelegt ist, um zu versuchen, einen erkannten Fehler in den dekodierten Lesedaten zu korrigieren, wobei die Fehlerkorrekturcode-Logik ferner ausgelegt ist, um als Reaktion auf ein Versagen der Fehlerkorrekturlogik bei der Korrektur eines erkannten Fehlers in den dekodierten Lesedaten Daten aus dem Ersatzarbeitsspeicher-Die zu lesen, wobei die Lesedaten in Übereinstimmung mit einem Fehlerkorrekturcode kodiert sind, und die kodierten Lesedaten aus dem ausgewählten operationellen Arbeitsspeicher-Die durch die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die substituiert werden.
  12. System nach Anspruch 11, wobei die Dekodierlogik ferner ausgelegt ist, um die kodierten Lesedaten zu dekodieren, welche die kodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlererkennungslogik ferner ausgelegt ist, um einen Fehler in den dekodierten Lesedaten zu erkennen, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, und wobei die Fehlerkorrekturlogik ferner ausgelegt ist, um einen erkannten Fehler in den dekodierten Lesedaten, welche die dekodierten Lesedaten aus dem Ersatzarbeitsspeicher-Die einschließen, zu korrigieren.
  13. System nach einem der Ansprüche 9-10, wobei der Arbeitsspeichercontroller ferner zyklische vorausschauende Arbeitsspeicherinstandhaltungslogik aufweist, die ausgelegt ist, um zyklisch vorausschauende Arbeitsspeicherinstandhaltung in einer Vielzahl von Instandhaltungszyklen durchzuführen, wobei in jedem Instandhaltungszyklus die Auswahllogik ferner ausgelegt ist, um in jedem Instandhaltungszyklus die Speicherleistungsfähigkeit der operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln und einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion der Arbeitsspeicher-Die-Leistungsfähigkeit auszuwählen; und wobei die Datenspiegelungslogik ferner ausgelegt ist, um in jedem Instandhaltungszyklus Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf den Ersatzarbeitsspeicher-Die zu spiegeln.
  14. System nach Anspruch 13, wobei der Arbeitsspeichercontroller ferner zyklische Auffrischungslogik aufweist, die ausgelegt ist, um zyklisch Auffrischungen des Arbeitsspeichers in einer Vielzahl von Auffrischungszyklen durchzuführen, wobei die zyklische vorausschauende Arbeitsspeicherinstandhaltungslogik ferner ausgelegt ist, um jeden Instandhaltungszyklus in Verbindung mit einem Auffrischungszyklus durchzuführen.
  15. System nach einem der Ansprüche 9-10, wobei die Auswahllogik Logik aufweist, die ausgelegt ist, um Arbeitsspeicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers zu ermitteln, einschließlich Logik, die ausgelegt ist, um über einen Zeitraum vergleichende statistische Leistungsfähigkeitsdaten zu akkumulieren, die die relative Leistungsfähigkeit jedes Arbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren, und Logik, die ausgelegt ist, um einen operationellen Arbeitsspeicher-Die des Arbeitsspeichers als eine Funktion des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, auszuwählen.
  16. System nach Anspruch 15, wobei die Leistungsfähigkeitskriterien unkorrigierte Bitfehlerrate aufweisen.
  17. Verfahren, das Folgendes umfasst: Bestimmen von Speicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies eines Arbeitsspeichers; Auswählen eines operationellen Arbeitsspeicher-Dies des Arbeitsspeichers als eine Funktion der Arbeitsspeicherleistungsfähigkeit; und Spiegeln von Daten für den ausgewählten operationellen Arbeitsspeicher-Die auf einen Ersatzarbeitsspeicher-Die.
  18. Verfahren nach Anspruch 17, ferner Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies umfassend, als Reaktion auf Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies, Deaktivieren des ausgefallenen operationellen Arbeitsspeicher-Dies und Ersetzen des ausgefallenen operationellen Arbeitsspeicher-Dies durch den Ersatzarbeitsspeicher-Die, wobei der Ersatzarbeitsspeicher-Die Daten aufweist, die vom ausgewählten operationellen Arbeitsspeicher-Die vor dem Erkennen des Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies gespiegelt wurden.
  19. Verfahren nach einem der Ansprüche 17-18, ferner umfassend: Lesen von Daten aus den operationellen Arbeitsspeicher-Dies des Arbeitsspeichers, einschließlich des ausgewählten operationellen Arbeitsspeicher-Dies; Versuchen einer Fehlerkorrektur der Lesedaten, falls die Lesedaten einen Fehler enthalten; falls die Fehlerkorrektur nicht erfolgreich ist, Modifizieren der Lesedaten durch Ersetzen der aus dem ausgewählten operationellen Arbeitsspeicher-Die gelesenen Lesedaten durch die vor Erkennen eines Ausfalls des ausgewählten operationellen Arbeitsspeicher-Dies aus dem Ersatzarbeitsspeicher-Die gelesenen Lesedaten; und Versuchen einer Fehlerkorrektur der modifizierten Lesedaten, falls die modifizierten Lesedaten einen Fehler enthalten.
  20. Verfahren nach Anspruch 17, ferner zyklisches Durchführen von Instandhaltung des Arbeitsspeichers in einer Vielzahl von Instandhaltungszyklen umfassend, wobei jeder Instandhaltungszyklus aufweist: das Bestimmen von Speicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers; das Auswählen eines operationellen Arbeitsspeicher-Dies des Arbeitsspeichers als eine Funktion der Arbeitsspeicherleistungsfähigkeit; und das Spiegeln von Daten des ausgewählten operationellen Arbeitsspeicher-Dies auf den Ersatzarbeitsspeicher-Die.
  21. Verfahren nach Anspruch 20, ferner Durchführung zyklischer Auffrischungen des Arbeitsspeichers in einer Vielzahl von Auffrischungszyklen umfassend, wobei jeder Instandhaltungszyklus in Verbindung mit einem Auffrischungszyklus durchgeführt wird.
  22. Verfahren nach einem der Ansprüche 17, 18, 20, 21, wobei das Bestimmen von Speicherleistungsfähigkeit von operationellen Arbeitsspeicher-Dies des Arbeitsspeichers Akkumulieren vergleichender statistischer Leistungsfähigkeitsdaten über einen Zeitraum aufweist, die die relative Leistungsfähigkeit jedes Arbeitsspeicher-Dies des Arbeitsspeichers in Bezug auf ein bestimmtes Leistungsfähigkeitskriterium repräsentieren, und wobei das Auswählen eines operationellen Arbeitsspeicher-Dies als eine Funktion der Arbeitsspeicher-Die-Leistungsfähigkeit das Auswählen des operationellen Arbeitsspeicher-Dies, der die schlechteste relative Leistungsfähigkeit über den Zeitraum aufweist, umfasst.
  23. Verfahren nach Anspruch 22, wobei die Leistungsfähigkeitskriterien unkorrigierte Bitfehlerrate aufweisen.
DE112016005869.1T 2015-12-21 2016-11-21 Vorausschauende Arbeitsspeicherinstandhaltung Pending DE112016005869T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/976,921 US10048877B2 (en) 2015-12-21 2015-12-21 Predictive memory maintenance
US14/976,921 2015-12-21
PCT/US2016/063192 WO2017112229A1 (en) 2015-12-21 2016-11-21 Predictive memory maintenance

Publications (1)

Publication Number Publication Date
DE112016005869T5 true DE112016005869T5 (de) 2018-09-06

Family

ID=59064304

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016005869.1T Pending DE112016005869T5 (de) 2015-12-21 2016-11-21 Vorausschauende Arbeitsspeicherinstandhaltung

Country Status (4)

Country Link
US (2) US10048877B2 (de)
KR (1) KR102645583B1 (de)
DE (1) DE112016005869T5 (de)
WO (1) WO2017112229A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220100623A1 (en) * 2017-09-22 2022-03-31 Huawei Technologies Co., Ltd. Method and Apparatus, and Readable Storage Medium

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725933B2 (en) * 2016-12-30 2020-07-28 Intel Corporation Method and apparatus for redirecting memory access commands sent to unusable memory partitions
US10466937B2 (en) * 2017-11-28 2019-11-05 BAE Systems Information and Electronic Sustems Integration Inc. Method of implementing a high reliability flash memory recorder
KR102415867B1 (ko) * 2017-11-29 2022-07-04 에스케이하이닉스 주식회사 메모리 셀의 결함을 제거하기 위한 메모리 시스템 및 그의 동작 방법
US11017833B2 (en) 2018-05-24 2021-05-25 Micron Technology, Inc. Apparatuses and methods for pure-time, self adopt sampling for row hammer refresh sampling
US11152050B2 (en) 2018-06-19 2021-10-19 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US10573370B2 (en) 2018-07-02 2020-02-25 Micron Technology, Inc. Apparatus and methods for triggering row hammer address sampling
US10685696B2 (en) 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
WO2020117686A1 (en) 2018-12-03 2020-06-11 Micron Technology, Inc. Semiconductor device performing row hammer refresh operation
CN117198356A (zh) 2018-12-21 2023-12-08 美光科技公司 用于目标刷新操作的时序交错的设备和方法
US10957377B2 (en) 2018-12-26 2021-03-23 Micron Technology, Inc. Apparatuses and methods for distributed targeted refresh operations
US10770127B2 (en) 2019-02-06 2020-09-08 Micron Technology, Inc. Apparatuses and methods for managing row access counts
US11043254B2 (en) 2019-03-19 2021-06-22 Micron Technology, Inc. Semiconductor device having cam that stores address signals
US11227649B2 (en) 2019-04-04 2022-01-18 Micron Technology, Inc. Apparatuses and methods for staggered timing of targeted refresh operations
US11264096B2 (en) 2019-05-14 2022-03-01 Micron Technology, Inc. Apparatuses, systems, and methods for a content addressable memory cell with latch and comparator circuits
US11158364B2 (en) 2019-05-31 2021-10-26 Micron Technology, Inc. Apparatuses and methods for tracking victim rows
US11069393B2 (en) 2019-06-04 2021-07-20 Micron Technology, Inc. Apparatuses and methods for controlling steal rates
US10978132B2 (en) 2019-06-05 2021-04-13 Micron Technology, Inc. Apparatuses and methods for staggered timing of skipped refresh operations
US11158373B2 (en) 2019-06-11 2021-10-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values
US10832792B1 (en) 2019-07-01 2020-11-10 Micron Technology, Inc. Apparatuses and methods for adjusting victim data
US11139015B2 (en) 2019-07-01 2021-10-05 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
US11386946B2 (en) 2019-07-16 2022-07-12 Micron Technology, Inc. Apparatuses and methods for tracking row accesses
US10943636B1 (en) 2019-08-20 2021-03-09 Micron Technology, Inc. Apparatuses and methods for analog row access tracking
US10964378B2 (en) 2019-08-22 2021-03-30 Micron Technology, Inc. Apparatus and method including analog accumulator for determining row access rate and target row address used for refresh operation
US11200942B2 (en) 2019-08-23 2021-12-14 Micron Technology, Inc. Apparatuses and methods for lossy row access counting
US11302374B2 (en) 2019-08-23 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic refresh allocation
US11302377B2 (en) 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
US11601137B2 (en) * 2020-06-18 2023-03-07 Intel Corporation ECC memory chip encoder and decoder
US11309010B2 (en) 2020-08-14 2022-04-19 Micron Technology, Inc. Apparatuses, systems, and methods for memory directed access pause
US11380382B2 (en) 2020-08-19 2022-07-05 Micron Technology, Inc. Refresh logic circuit layout having aggressor detector circuit sampling circuit and row hammer refresh control circuit
US11348631B2 (en) 2020-08-19 2022-05-31 Micron Technology, Inc. Apparatuses, systems, and methods for identifying victim rows in a memory device which cannot be simultaneously refreshed
US11222682B1 (en) 2020-08-31 2022-01-11 Micron Technology, Inc. Apparatuses and methods for providing refresh addresses
US11557331B2 (en) 2020-09-23 2023-01-17 Micron Technology, Inc. Apparatuses and methods for controlling refresh operations
US11222686B1 (en) 2020-11-12 2022-01-11 Micron Technology, Inc. Apparatuses and methods for controlling refresh timing
US11462291B2 (en) 2020-11-23 2022-10-04 Micron Technology, Inc. Apparatuses and methods for tracking word line accesses
US11264079B1 (en) 2020-12-18 2022-03-01 Micron Technology, Inc. Apparatuses and methods for row hammer based cache lockdown
US11482275B2 (en) 2021-01-20 2022-10-25 Micron Technology, Inc. Apparatuses and methods for dynamically allocated aggressor detection
US11600314B2 (en) 2021-03-15 2023-03-07 Micron Technology, Inc. Apparatuses and methods for sketch circuits for refresh binning
US11664063B2 (en) 2021-08-12 2023-05-30 Micron Technology, Inc. Apparatuses and methods for countering memory attacks
CN116072203A (zh) * 2021-10-29 2023-05-05 长鑫存储技术有限公司 基础芯片、存储系统以及半导体结构
US11688451B2 (en) 2021-11-29 2023-06-27 Micron Technology, Inc. Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488702A (en) * 1994-04-26 1996-01-30 Unisys Corporation Data block check sequence generation and validation in a file cache system
JP2000113695A (ja) * 1998-10-01 2000-04-21 Mitsubishi Electric Corp 同期型半導体記憶装置
US7263597B2 (en) * 2001-04-19 2007-08-28 Ciena Corporation Network device including dedicated resources control plane
US6799288B2 (en) 2001-09-14 2004-09-28 The Boeing Company Detecting and mitigating memory device latchup in a data processor
US6728156B2 (en) 2002-03-11 2004-04-27 International Business Machines Corporation Memory array system
US7546364B2 (en) * 2002-05-16 2009-06-09 Emc Corporation Replication of remote copy data for internet protocol (IP) transmission
US7050252B1 (en) * 2002-06-01 2006-05-23 Western Digital Technologies, Inc. Disk drive employing off-line sector verification and relocation of marginal sectors discovered during read error recovery procedure
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
JP4110000B2 (ja) * 2003-01-28 2008-07-02 株式会社ルネサステクノロジ 記憶装置
US20050041453A1 (en) * 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
US7881133B2 (en) * 2003-11-11 2011-02-01 Samsung Electronics Co., Ltd. Method of managing a flash memory and the flash memory
JP4507249B2 (ja) * 2004-10-19 2010-07-21 株式会社日立製作所 記憶デバイスの更新を制御するシステム及び方法
US8301938B2 (en) 2005-03-21 2012-10-30 Hewlett-Packard Development Company, L.P. Managing memory health
JP4936746B2 (ja) * 2006-03-08 2012-05-23 ルネサスエレクトロニクス株式会社 半導体装置
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
WO2008053472A2 (en) * 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8041989B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US20090006793A1 (en) 2007-06-30 2009-01-01 Koichi Yamada Method And Apparatus To Enable Runtime Memory Migration With Operating System Assistance
US8015438B2 (en) * 2007-11-29 2011-09-06 Qimonda Ag Memory circuit
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8493783B2 (en) * 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
US8250285B2 (en) * 2008-09-10 2012-08-21 Infinte Mormories Ltd. Non-volatile dual memory die for data storage devices
WO2010054410A2 (en) * 2008-11-10 2010-05-14 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for predicting failures in solid-state storage
US8713251B2 (en) * 2009-05-27 2014-04-29 Hitachi, Ltd. Storage system, control method therefor, and program
US8634240B2 (en) * 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US8677203B1 (en) * 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8207752B2 (en) * 2010-01-11 2012-06-26 Kannan Raj Fault-tolerant multi-chip module
US9037928B2 (en) * 2012-01-01 2015-05-19 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
US8489979B2 (en) 2010-05-28 2013-07-16 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
US8341500B2 (en) * 2010-08-31 2012-12-25 Apple Inc. Detecting corrupted data for a system having non-volatile memory
US20120102367A1 (en) * 2010-10-26 2012-04-26 International Business Machines Corporation Scalable Prediction Failure Analysis For Memory Used In Modern Computers
TW201222254A (en) 2010-11-26 2012-06-01 Inventec Corp Method for protecting data in damaged memory cells by dynamically switching memory mode
JP2012119038A (ja) 2010-12-02 2012-06-21 Toshiba Corp 不揮発性半導体メモリ及び記憶装置
US8656086B2 (en) * 2010-12-08 2014-02-18 Avocent Corporation System and method for autonomous NAND refresh
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9292392B2 (en) * 2011-06-30 2016-03-22 Hewlett Packard Enterprise Development Lp Memory module that includes a memory module copy engine for copying data from an active memory die to a spare memory die
US20130018692A1 (en) * 2011-07-13 2013-01-17 Siemens Aktiengesellschaft Apparatus, method, and computer program product for scenario-based identification of complete safety-based requirements specification
US8484519B2 (en) * 2011-08-19 2013-07-09 Stec, Inc. Optimal programming levels for LDPC
US9158621B2 (en) 2011-08-29 2015-10-13 Sandisk Technologies Inc. System and method of copying data
TWI461913B (zh) 2011-11-30 2014-11-21 Silicon Motion Inc 快閃記憶裝置及其資料讀取方法
US9092349B2 (en) * 2011-12-14 2015-07-28 Intel Corporation Storage of codeword portions
KR101373668B1 (ko) * 2012-06-22 2014-03-13 연세대학교 산학협력단 메모리 수리 장치 및 방법
US9349476B2 (en) * 2013-02-21 2016-05-24 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify
US9317350B2 (en) * 2013-09-09 2016-04-19 International Business Machines Corporation Method and apparatus for faulty memory utilization
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9323607B2 (en) 2014-04-29 2016-04-26 Seagate Technology Llc Data recovery once ECC fails to correct the data
US10141049B2 (en) * 2014-12-19 2018-11-27 Sandisk Technologies Llc Nonvolatile memory system storing system data in marginal word lines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220100623A1 (en) * 2017-09-22 2022-03-31 Huawei Technologies Co., Ltd. Method and Apparatus, and Readable Storage Medium
US11714733B2 (en) * 2017-09-22 2023-08-01 Huawei Technologies Co., Ltd. Method and apparatus, and readable storage medium

Also Published As

Publication number Publication date
US20190079836A1 (en) 2019-03-14
WO2017112229A1 (en) 2017-06-29
KR102645583B1 (ko) 2024-03-11
US10048877B2 (en) 2018-08-14
US20170177246A1 (en) 2017-06-22
KR20180087256A (ko) 2018-08-01

Similar Documents

Publication Publication Date Title
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE112010003345B4 (de) Datenspeichersystem und Verfahren für das Betreiben eines Datenspeichersystems
DE102017120840B4 (de) Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen
DE112018004275T5 (de) Raid-array-wiederherstellungsunterstützung anhand einer externen array-kopie
DE112011100579B4 (de) Verfahren und vorrichtung zum verwenden von cachespeicher in einem system, welches einen niedrigleistungszustand unterstützt
DE202008018572U1 (de) Speichersystem
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE102019111132A1 (de) Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür
DE102017128940A1 (de) System und Verfahren zum dynamischen Falten oder direkten Schreiben basierend auf Block-Störungsfreiheit in einem nichtflüchtigen Speichersystem
DE102017114078A1 (de) Fehlerabschwächung für 3d-nand-flash-speicher
DE102020130044A1 (de) Techniken zum verhindern von lese-störung in nand-speicher
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
DE102015002918A1 (de) Fehlerkorrektur mit On-Demand-Paritätssektoren in magnetischen Datenspeichergeräten
DE102014103125A1 (de) Verfahren und Vorrichtung zum Optimieren des Log-Likelihood-Quotienten (LLR), die verwendet werden für eine nichtflüchtige Speichervorrichtung und zum Korrigieren von Fehlern in einer nichtflüchtigen Speichervorrichtung
DE112010004863T5 (de) Datenverwaltung in Festkörperspeichersystemen
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE112019000201T5 (de) Speichersysteme mit peer-datenbereinigung
DE102011085989A1 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE102021115858A1 (de) Tlc-datenprogrammierung mit hybrid-parität
DE112020003489T5 (de) Speichersteuerung und verfahren zum decodieren von speichervorrichtungen mit vorzeitigem hartdecodierabbruch
DE102013112195A1 (de) Speichercontroller, der Teildaten in einer Speichervorrichtung ändert, sowie Verfahren zum Ändern von Teildaten davon
DE102019134290A1 (de) Verfahren und System zum Verbessern der Leistung einer Speichervorrichtung unter Verwendung einer asynchronen, unabhängigen Ebenenlesefunktionalität

Legal Events

Date Code Title Description
R012 Request for examination validly filed