DE112021007536T5 - Systeminterne abschwächung unkorrigierbarer fehler basierend auf vertrauensfaktoren, basierend auf einer fehlerbewussten analyse - Google Patents

Systeminterne abschwächung unkorrigierbarer fehler basierend auf vertrauensfaktoren, basierend auf einer fehlerbewussten analyse Download PDF

Info

Publication number
DE112021007536T5
DE112021007536T5 DE112021007536.5T DE112021007536T DE112021007536T5 DE 112021007536 T5 DE112021007536 T5 DE 112021007536T5 DE 112021007536 T DE112021007536 T DE 112021007536T DE 112021007536 T5 DE112021007536 T5 DE 112021007536T5
Authority
DE
Germany
Prior art keywords
memory
controller
error
hardware
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
DE112021007536.5T
Other languages
English (en)
Inventor
Shen ZHOU
Cong Li
Kuljit S. Bains
Ugonna Echeruo
Reza E. Daftari
Theodros Yigzaw
Mariusz Oriol
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 DE112021007536T5 publication Critical patent/DE112021007536T5/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/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

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

Abstract

Ein System kann auf die Erkennung eines unkorrigierbaren Fehlers (UE) in dem Speicher basierend auf einer fehlerbewussten Analyse reagieren. Die fehlerbewusste Analyse ermöglicht dem System, eine Bestimmung eines spezifischen Hardwareelements des Speichers, das den erkannten UE verursacht hat, zu erzeugen. Als Reaktion auf die Erkennung eines UE kann das System eine Hardwarekonfiguration des Speichergeräts mit historischen Daten, die Speicherfehler für Hardwareelemente der Hardwarekonfiguration angeben, korrelieren. Basierend auf einer Bestimmung der spezifischen Komponente, die den UE wahrscheinlich verursacht hat, kann das System eine Korrekturaktion für das spezifische Hardwareelement basierend auf der Bestimmung ausgeben.

Description

  • FELD
  • Beschreibungen betreffen allgemein Speichersysteme, und spezifischere Beschreibungen betreffen Abschwächungsoperationen basierend auf der Erkennung unkorrigierbarer Fehler.
  • HINTERGRUND
  • Speicherausfall gehört zu den führenden Ursachen für Serverausfall und damit verbundene Stillstandszeit in Datenzentren. Speicherfehler können als korrigierbarer Fehler (Correctable Error - CE) oder unkorrigierbarer Fehler (Uncorrectable Error - UE) klassifiziert werden. CE beziehen sich auf transiente Fehler innerhalb der Speichergerätedaten, die mit der Anwendung von Fehlerprüfung und -korrektur (Error Checking and Correction - ECC) korrigiert werden können. UE beziehen sich auf Fehler, die mit der Anwendung von ECC nicht angemessen korrigiert werden können, und die zu einem Systemausfall führen. Erkannte (oder erkennbare) unkorrigierbare Fehler (Detected (Detectable) Uncorrectable Errors - DUE) beziehen sich auf UE, die durch die ECC erkannt werden können, die jedoch nicht mit dem UE korrigierbar sind.
  • UE und DUE in Speichermodulen stellen für Verbraucher und Hersteller erhebliche Kosten dar, die zunehmen, wenn sich der Fehler in einem Speicher mit hoher Bandbreite (High Bandwidth Memory - HBM) befindet, der in einem Prozessor eingebettet ist, da das gesamte Prozessorsystem auf einem Chip (System on a Chip - SOC) aufgrund des Speicherfehlers nicht funktionsfähig wird.
  • Einige Systeme versuchen Reparaturaktionen vor Ort; jedoch werden solche erkannten Fehler einfach als Fehler eines zugrunde liegenden Fehlers in dem Speicher beobachtet, der traditionell unbekannt ist. Somit können Reparaturaktionen unzuverlässig oder ineffizient sein, da sie versuchen können, eine Fehlerbedingung zu korrigieren, während die zu dem Fehler führende Fehlerbedingung eine andere ist. Zum Beispiel würde das BIOS (Basic Input/Output System) traditionell eine Zeile mit einem UE durch Post Package Repair (PPR) aussparen, selbst wenn der UE das Ergebnis einer fehlerhaften Spalte ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die folgende Beschreibung beinhaltet eine Erörterung von Figuren mit Veranschaulichungen, die beispielhaft für eine Implementierung gegeben werden. Die Zeichnungen sollen als beispielhaft und nicht als einschränkend verstanden werden. Wie hierin verwendet, sind Verweise auf ein oder mehrere Beispiele so zu verstehen, dass sie ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft beschreiben, das bzw. die in mindestens einer Implementierung der Erfindung enthalten ist. Ausdrücke, wie zum Beispiel „in einem Beispiel“ oder „in einem alternativen Beispiel“, die hierin vorkommen, stellen Beispiele für Implementierungen der Erfindung bereit, und beziehen sich nicht notwendigerweise alle auf dieselbe Implementierung. Jedoch schließen sie sich auch nicht notwendigerweise gegenseitig aus.
    • 1 ist ein Blockdiagramm eines Beispiels für ein System mit fehlerbewusster Abschwächung unkorrigierbarer Fehler.
    • 2A ist ein Blockdiagramm eines Beispiels für ein Training zur Analyse unkorrigierbarer Fehler.
    • 2B ist ein Blockdiagramm eines Beispiels für eine Abschwächung unkorrigierbarer Fehler basierend auf einer Analyse unkorrigierbarer Fehler.
    • 3 ist ein Blockdiagramm eines Beispiels für eine Systemarchitektur zur Abschwächung unkorrigierbarer Fehler.
    • 4 ist ein Blockdiagramm eines Beispiels für eine Speicherbankarchitektur.
    • 5 ist ein Blockdiagramm eines Beispiels für ein System zur Abschwächung unkorrigierbarer Fehler mit einer gestapelten Speicherarchitektur.
    • Die 6A-6D stellen Beispiele für eine Analyse einer spezifischen Hardwareelementursache eines erkannten unkorrigierbaren Fehlers dar.
    • Die 7A-7C stellen Beispiele für Korrekturaktionen für ein fehlerbewusstes System dar.
    • 8 ist ein Flussdiagramm eines Beispiels für einen Prozess zum Ausführen einer fehlerbewussten Abschwächung unkorrigierbarer Fehler.
    • 9 ist ein Blockdiagramm eines Beispiels für ein Speichersubsystem, in dem eine fehlerbewusste Abschwächung unkorrigierbarer Fehler implementiert werden kann.
    • 10 ist ein Blockdiagramm eines Beispiels für ein Datenverarbeitungssystem, in dem eine fehlerbewusste Abschwächung unkorrigierbarer Fehler implementiert werden kann.
    • 11 ist ein Blockdiagramm eines Beispiels für ein Mehrknotennetzwerk, in dem eine fehlerbewusste Abschwächung unkorrigierbarer Fehler implementiert werden kann.
  • Es folgen Beschreibungen bestimmter Details und Implementierungen, einschließlich nicht einschränkender Beschreibungen der Figuren, die einige oder alle Beispiele darstellen können, sowie anderer möglicher Implementierungen.
  • DETAILLIERTE BESCHREIBUNG
  • Wie hierin beschrieben, kann ein System auf die Erkennung eines unkorrigierbaren Fehlers (UE) in dem Speicher basierend auf einer fehlerbewussten Analyse reagieren. Die fehlerbewusste Analyse ermöglicht dem System, eine Vorhersage eines spezifischen Hardwareelements des Speichers, das den erkannten UE verursacht hat, zu erzeugen. In der statistischen Analyse kann sich eine „Vorhersage“ auf eine durch eine rechnerische Analyse erreichte Schlussfolgerung beziehen. In einem rechnerischen Sinn kann eine berechnete Vorhersage ein vorheriges Ereignis oder eine vorherige Ursache identifizieren. In den Beschreibungen unten wird die Berechnung allgemein als Fehleranalyse bezeichnet. Eine Fehler-„Vorhersage“ für einen erkannten UE kann sich auf das Ergebnis einer rechnerischen Analyse beziehen, die eine wahrscheinlichste Ursache des zu früherer Zeit aufgetretenen Fehlers identifiziert. Als Reaktion auf die Erkennung eines UE kann das System eine Hardwarekonfiguration des Speichergeräts mit historischen Daten, die Speicherfehler für Hardwareelemente der Hardwarekonfiguration angeben, korrelieren. Basierend auf einer Bestimmung der spezifischen Komponente, die den UE verursacht hat, kann das System eine Korrekturaktion für das spezifische Hardwareelement basierend auf der Fehleranalyse ausgeben.
  • Die fehlerbewusste Analyse kann sich auf eine UE-Ausfallvorhersage und insbesondere auf das Bestimmen einer spezifischen Speicherkomponente, die am wahrscheinlichsten die Ursache des UE ist, beziehen. Ein fehlerbewusstes System kann die Architektur auf Schaltungsebene des Speichers anstelle der bloßen Anzahl oder Frequenz korrigierbarer Fehler (CE) berücksichtigen. Die Beobachtung von Fehlermustern in Bezug auf die Schaltungsstruktur kann dem System ermöglichen, die Komponente, die die Quelle des Fehlers ist, vertrauenswürdig vorherzusagen.
  • In einem Beispiel wird eine Speichergerätefehlervorhersage basierend auf mit Systemarchitekturinformationen korrelierten Informationen über korrigierbare Fehler bereitgestellt. Somit kann das System Rang-, Bank-, Zeilen-, Spalten- oder andere Informationen bezüglich der physikalischen Organisation und Struktur des Speichers bei dem Vorhersagen unkorrigierbarer Fehler berücksichtigen. Andere Systeme, einschließlich anderer fehlerbewusster Systeme, können ein Versagen bei dem Versuch, UE zu verhindern, vorhersagen. Eine solche Operation kann als vorhersagende UE-Vermeidung bezeichnet werden, wobei versucht wird, UE basierend auf einer fehlerbewussten Analyse und Vorhersage zu vermeiden. Die hierin beschriebene fehlerbewusste Analyse ermöglicht einem System, eine reaktive Vermeidung von bereits erkannten UE auszuführen. Somit versucht das System, das Auftreten eines weiteren UE zu vermeiden. Ein solches System kann in Verbindung mit einem vorhersagenden Vermeidungssystem arbeiten.
  • Reaktive Vermeidung basierend auf einer fehlerbewussten Analyse ermöglicht dem System, Reparaturaktionen vor Ort basierend auf einem Vertrauensfaktor zu erzeugen, um UE-anfällige Fehler abzuschwächen, und eine indikative Post-UE-Speicherintegritätsbewertung bereitzustellen. Die Integritätsbewertung kann Rückgabeentscheidungen von Speichermodulen oder eingebetteten HBM-SOC-Paketen unterstützen.
  • Das System kann die CE-Historie auf Mikroebene (zum Beispiel Bit, DQ (Datenpins), Zeile, Spalte, Gerät, Rang) verfolgen, um daraus zu folgern, ob eine bestimmte Speicherkomponente auf Mikroebene (zum Beispiel Spaltenfehler, Zeilenfehler) fehlerhaft ist. Nach dem Auftreten eines UE kann das System die Informationen auf Mikroebene als zusätzlichen Nachweis nehmen. In Kombination mit den basierend auf der Historie abgeleiteten Fehlern kann das System eine Analyse (zum Beispiel Bayes'sche Schlussfolgerung) anwenden, um daraus zu folgern, welcher Fehler den UE verursacht hat. Basierend auf der Bestimmung des spezifischen Komponentenfehlers kann das System eine indikative Post-UE-Speicherintegritätsbewertung erzeugen.
  • Falls das System die zugrunde liegende Ursache des UE mit einem hohen Vertrauen durch die nachweisbasierte Schlussfolgerung identifizieren kann, und der Fehler durch eine bestimmte RAS (Reliability, Accessibility, and Serviceability) -Aktion oder Korrekturaktion vor Ort repariert werden kann. Beispiele für Korrekturaktionen können das Reparieren eines Zeilenfehlers mit PPR (Post Package Repair), Reparieren eines Bankfehlers mit Bank-Sparing oder ADDDC (Adaptive Double Device Data Correction) beinhalten, oder das OS (Operating System) kann eine Seite für einen nicht behebbaren UE offline setzen. Basierend auf dem Vertrauensfaktor und der Analyse kann das System hoch vertrauenswürdige Reparaturaktionen vor Ort ausführen, indem die identifizierten fehlerhaften Komponenten ausgespart oder isoliert werden. In einem Beispiel führt das System die Reparaturaktionen während der Laufzeit aus, unter der Annahme, dass die Reparaturaktion Laufzeitreparaturfähigkeit aufweist. In einem Beispiel kann das System, falls der zugrunde liegende Fehler nicht vor Ort behebbar ist, den UE als vor Ort nicht behebbar markieren. In einem Beispiel kann das System, falls die Analyse die zugrunde liegende Fehlerursache nicht mit hoher Vertrauenswürdigkeit identifizieren kann, den UE als eine unbekannte Ursache aufweisend markieren. Für Fälle eines nicht vor Ort behebbaren Fehlers oder einer unbestimmten Fehlerursache kann das System die Fälle in einer Post-UE-Speicherintegritätsbewertung angeben, wodurch einem Bediener ermöglicht wird, informierte Prozessorrückgabeentscheidungen basierend auf den Informationen in der Integritätsbewertung zu treffen. Die Ursache eines UE kann unbestimmt sein, wenn das System mehr als ein spezifisches Hardwareelement, das eine wahrscheinliche Ursache des UE ist, identifiziert.
  • 1 ist ein Blockdiagramm eines Beispiels für ein System mit fehlerbewusster Abschwächung unkorrigierbarer Fehler. System 100 veranschaulicht einen Speicher, der mit einem Host gekoppelt ist. Host 110 stellt eine Host-Datenverarbeitungsplattform dar, wie zum Beispiel ein SOC (System on a Chip). Der Host 110 beinhaltet Host-Verarbeitungselemente (zum Beispiel Prozessorkerne), die durch CPU (Central Processing Unit) 112 dargestellt werden, um Operationen auszuführen, und Speichersteuerung 116, um Zugriff auf Speicher 130 zu verwalten. Der Host 110 beinhaltet Hardwarezwischenverbindungen und Treiber/Empfänger-Hardware, um die Zwischenverbindung zwischen dem Host 110 und DIMM (Dual Inline Memory Module) 120 bereitzustellen. In einem Beispiel kann der Speicher 130 anstelle eines DIMM in einem HBM (High Bandwidth Memory) angeordnet sein, was sich auf einen Chip oder ein Package bezieht, der bzw. das einen Stapel oder eine Gruppe von Kacheln von Speicherchips beinhaltet. Bezugnahme auf die folgenden Beschreibungen des Speichers 130 in dem DIMM 120 kann für den Speicher 130 in einem HBM-Package oder einem HBM-Gerät mit mehreren DRAM-Chips gelten.
  • Das DIMM 120 beinhaltet einen Speicher 130, der parallele mit dem Host 110 gekoppelte Speicherressourcen darstellt. Der Speicher 130 stellt die mehreren Speichergeräte des DIMM 120 dar. Das DIMM 120 beinhaltet Steuerung 122, die eine Steuerlogik des DIMM 120 darstellt. In einem Beispiel ist die Steuerung 122 eine gesamte oder Teil einer Steuerlogik, die die Übertragung von Befehlen und Daten auf dem DIMM 120 verwaltet. Zum Beispiel kann die Steuerung 122 Teil eines registrierenden Takttreibers (Registering Clock Driver - RCD) oder einer anderen Steuerlogik auf dem DIMM 120 sein. In einem Beispiel ist die Steuerung 122 eine separate Steuerung von einem RCD.
  • In einem Beispiel beinhaltet der Speicher 130 ECC 132, die eine On-Chip-ECC darstellt, oder eine Logik auf dem Speichergerät, um eine Fehlerkorrektur für den Datenaustausch mit dem Host 110 auszuführen. In einem Beispiel beinhaltet der Speicher 130 ECS (Error Checking and Scrubbing) 134. Das ECS 134 stellt eine On-Chip-Logik in dem Speicher 130 dar, um periodisches Fehler-Scrubbing von in dem Speicher gespeicherten Daten auszuführen, und kann als eine Scrubbing-Engine bezeichnet werden. Fehler-Scrubbing bezieht sich auf das Erkennen von Fehlern, das Korrigieren der Fehler, und das Zurückschreiben der korrigierten Daten in das Speicherarray. In einem Beispiel kann der Speicher 130 Fehler in dem Speicher basierend auf der ECC 132 und dem ECS 134 erkennen.
  • Der Host 110 beinhaltet ECC 150, die Teil der Speichersteuerung 116 sein kann. In einem Beispiel beinhaltet der Host 110 Fehlersteuerung 152, die auch Teil der Speichersteuerung 116 sein kann. In einem Beispiel beinhaltet die Fehlersteuerung 152 eine Scrubbing-Engine auf dem Host, um Patrol-Scrubbing auszuführen, um in dem Speicher erkannte Fehler zu erkennen und zu melden. In einem Beispiel kann die Fehlersteuerung 152 Fehlerkorrekturaktionen, die an dem Speicher 130 als Reaktion auf die Erkennung eines UE ausgeführt werden sollen, verwalten.
  • Die Speichersteuerung 116 führt eine ECC auf Systemebene an Daten von mehreren Speichergeräten 130 parallel aus, während die ECC 132 eine ECC für ein einzelnes Gerät basierend auf lokalen Daten ausführt. Die On-Chip-ECC 132 oder die ECC-Logik auf der Steuerung 122 kann eine Fehlerkorrektur vor dem Senden von Daten an den Host 110 ermöglichen. In einem Beispiel verwendet die ECS 134 die ECC 132 zum Ausführen von Fehler-Scrubbing. Die Speichersteuerung 116 kann die ECC 150 verwenden, um eine ECC auf Systemebene an den Daten auszuführen, und der Betrieb der ECC 150 ist von der ECC 132 getrennt.
  • Das ECS 134 oder eine Scrubbing-Engine der Fehlersteuerung 152 kann Patrol-Scrubbing ausführen, was sich auf die Ausführung einer Fehlerprüfung und das Scrubbing des gesamten Speichers 130 innerhalb einer festgelegten Periode bezieht, wie zum Beispiel Scrubbing des gesamten Speichers alle 24 Stunden. Patrol-Scrubbing kann CE- und UE-Informationen während des Scrubbing erzeugen, um korrigierbare Fehler und harte Fehler oder unkorrigierbare Fehler, die in dem Speicher 130 erkannt werden, anzugeben. Solche Informationen können als historische Fehlerinformationen bezeichnet werden. Wenn eine Scrubbing-Engine einen Fehler in Daten des Speichers 130 erkennt, stellt in einem Beispiel die Scrubbing-Engine Informationen an die Speichersteuerung 116 bereit, die die Daten, die zur Fehleranalyse verwendet werden sollen, aufzeichnen kann.
  • In einem Beispiel beinhaltet das System 100 Steuerung 140. In einem Beispiel ist die Steuerung 140 Teil der Steuerungshardware einer Hardwareplattform des Systems 100. Zum Beispiel kann die Steuerung 140 Teil des Systemplatinen-Chipsatzes, wie zum Beispiel der Steuerschaltung einer Systemplatine oder Hauptplatine, sein. In einem Beispiel ist die Steuerung 140 Teil der Steuerung 122. In einem Beispiel ist die Steuerung 140 Teil der Speichersteuerung 116. Die Steuerung 140 stellt eine fehlerbewusste Analyse von UE bereit, und erzeugt Informationen, die zum Ausführen einer Korrekturaktion verwendet werden.
  • In einem Beispiel stellt die Steuerung 140 eine Fehleranalyse-Engine dar, die in einer Mikrosteuerung auf einer Systemplatine implementiert ist. In einem Beispiel ist die Mikrosteuerung eine fest zugeordnete Steuerung zur Fehlerverwaltung. In einem Beispiel ist die Mikrosteuerung Teil der Systemplatinensteuerungshardware, und die Steuerung 140 kann als Firmware auf der Mikrosteuerung implementiert werden. Somit kann eine Mikrosteuerung, die die Steuerung 140 ausführt, auch andere Operationen ausführen.
  • In einem Beispiel beinhaltet die Steuerung 140 UAM (Uncorrectable Error Analysis Model) 142 und Korrelations (KORR) -Engine 144. Das UAM 142 kann ein Modell erwarteter Fehlerbedingungen basierend auf Mustern korrigierbarer Fehler, die in Speicherdaten erkannt werden, darstellen. Das UAM 142 kann als ein Ausfallvorhersagemodell oder ein Ausfallanalysemodell für den Speicher bezeichnet werden. Die Muster korrigierbarer Fehler beziehen sich insbesondere auf Fehlermuster basierend auf Fehlermustern in Bezug auf Hardware oder Speicherarchitektur. Die Korrelations-Engine 144 kann erkannte Fehler in historischen Daten mit Hardwarekonfigurationsinformationen korrelieren, um Muster zu identifizieren, die eine hohe Wahrscheinlichkeit eines unkorrigierbaren Fehlers angeben. Die Korrelations-Engine 144 kann historische Fehlerinformationen korrelieren, sowohl kürzlich erkannte Fehler als auch Fehlermuster (zum Beispiel basierend auf dem UAM 142).
  • In einem Beispiel stellt der Host 110 Konfigurationsinformationen (KONFIG) an die Steuerung 140 bereit, um Hardwareinformationen anzugeben. Zusätzlich zu Speicherhardwareinformationen können in einem Beispiel die Konfigurationsinformationen Informationen über den Prozessor, das Betriebssystem, Peripheriemerkmale und Peripheriesteuerungen oder andere Systemkonfigurationsinformationen beinhalten. In einem Beispiel stellt der Speicher 130 Informationen über korrigierbare Fehler (FEHLERINFO) an die Steuerung 140 bereit, um eine Erkennung von CE und UE anzugeben, um anzugeben, wann und wo CE und UE aufgetreten sind. In einem Beispiel stellt der Host 110 Fehlerinformationen an die Steuerung 140 bereit, um eine Erkennung von CE und UE in dem Speicher 130 anzugeben. In einem Beispiel korreliert die Korrelations-Engine 144 die Fehlerinformationen, einschließlich Informationen darüber, wann und wo Fehler innerhalb der Speicherstruktur aufgetreten sind, mit Konfigurationsinformationen, wie zum Beispiel Speicherkonfiguration und Systemplattformkonfiguration.
  • In einem Beispiel korreliert die Steuerung 140 erkannte Fehler mit Hardwarekonfigurationsinformationen für das DIMM 120 und den Speicher 130. Solche Informationen können als Speicherhardwarekonfiguration bezeichnet werden. In einem Beispiel korrelierte die Steuerung 140 erkannte Fehler mit Hardwarekonfigurationsinformationen für das Computersystem, die eine Speicherhardwarekonfiguration sowie eine Hardware-, Software- und Firmwarekonfiguration einer oder mehrerer Komponenten der Systemplatine oder der Host-Hardwareplattform beinhalten können. Die Host-Hardwareplattform kann sich auf die Konfiguration des Host-Prozessors und anderer Hardwarekomponenten, die den Betrieb des Computersystems ermöglichen, beziehen. Die Software- oder Firmwarekonfiguration eines Systems kann in dem Ausmaß mit Hardwarekonfigurationsinformationen enthalten sein, dass die Softwarekonfiguration der Hardware dieselbe Hardware dazu veranlasst, auf unterschiedliche Weisen zu arbeiten.
  • In einem Beispiel beinhaltet die Steuerung 140 UE-Analysator 146. Der UE-Analysator 146 stellt Logik innerhalb der Steuerung 140 dar, um eine spezifische Hardwarekomponente des Speichers, die einen erkannten UE oder DUE verursacht hat, zu bestimmen. In einem Beispiel arbeitet der UE-Analysator 146 nach der Erkennung eines UE. Der UE-Analysator 146 kann Informationen von dem UAM 142 und der Korrelations-Engine 144 verwenden, um ein Vertrauensniveau für mehrere Hardwarekomponenten des Speichers zu berechnen, basierend auf historischen Fehlerinformationen, die mit den Hardwarekonfigurationsinformationen korreliert sind. Das Vertrauensniveau kann eine Wahrscheinlichkeit angeben, dass eine spezifische Komponente einen erkannten UE verursacht hat. Der Betrieb des UE-Analysators 146 kann insofern als eine Vorhersage angesehen werden, als er basierend auf einer statistischen Analyse bestimmt oder vorhersagt, welche Komponente den UE am wahrscheinlichsten verursacht hat. Zum Beispiel kann der UE-Analysator 146 Vertrauensfaktoren für mehrere oder alle Hardwarekomponentenebenen der Hardwarearchitektur berechnen, und bestimmen, dass die Komponente mit einer höchsten (oder niedrigsten, abhängig davon, wie die Berechnung ausgeführt wird) Einstufung die Ursache des Fehlers ist. In einem Beispiel bestimmt der UE-Analysator 146 nur dann, dass eine Komponente die Ursache des Fehlers ist, wenn seine Vertrauenseinstufung alle anderen Vertrauenseinstufungen um einen Schwellenwert überschreitet. In dem Fall von mehr als einer Vertrauenseinstufung innerhalb eines Schwellenwerts zueinander kann der UE-Analysator 146 eine Angabe erzeugen, dass keine Bestimmung vorgenommen werden kann (zum Beispiel ein „Ausfall einer unbekannten Komponente“).
  • Die Fehlersteuerung 152 ermöglicht dem Host 110, Korrekturaktionen als Reaktion auf die Erkennung eines UE zu erzeugen. Insbesondere kann die Steuerung 140 die spezifische Komponente, die als die Ursache eines UE bestimmt wird, für die Fehlersteuerung 152 angeben. Als Reaktion auf den UE kann die Fehlersteuerung 152 anstatt einer generischen Korrekturaktion eine spezifische Korrekturaktion basierend auf der Angabe der Ursache des UE von der Steuerung 140 ergreifen. Eine Korrekturaktion kann sich auf jegliche Aktion oder Operation beziehen, die in dem System 100 ausgeführt wird, um zu versuchen zu verhindern, dass der UE erneut auftritt. Eine Korrekturaktion kann als eine Korrekturaktion oder eine RAS-Aktion bezeichnet werden.
  • Korrekturaktion 160 stellt eine Aktion dar, die durch die Fehlersteuerung 152 ausgelöst oder initiiert wird, um sich dem erkannten UE zu widmen. Der Pfeil für die Korrekturaktion 160 ist so veranschaulicht, dass er von der Fehlersteuerung 152 auf das DIMM 120 zeigt, um eine Operation anzugeben, die die Verfügbarkeit des Speichers 130, zu versuchen, das Auftreten eines weiteren UE zu verhindern, beeinflusst.
  • Der Host 110 beinhaltet OS 114, das auf der CPU 112 ausgeführt wird. Das OS 114 stellt eine Softwareplattform für das System 100 dar. Softwareprogramme und Prozesse können unter dem OS 114 ausgeführt werden. Das OS 114 verwaltet Speicher für Softwareprogramme, die auf der CPU 112 ausgeführt werden. In einem Beispiel verfolgt das OS 114 Speicherseiten, die zur Verwendung durch Softwareprogramme verfügbar sind. In einem Beispiel kann die Korrekturaktion 160 eine Operation zum Offline-Setzen von Seiten durch das OS 114 auslösen. Das OS 114 kann eine oder mehrere Seiten für die Korrekturaktion 160 offline setzen. Offline-Setzen von Seiten bedeutet, dass das OS 114 die Verwendung einer Speicherseite (typischerweise der Größe 4K) stoppt, um potenzielle in die Seite eingeführte Speicherfehler zu vermeiden.
  • In einem Beispiel beinhaltet der Speicher 130 einen oder mehrere Mechanismen, einen Abschnitt des Speichers mit einem Fehler zu vermeiden, die für die Korrekturaktion 160 ausgelöst werden können. In einem Beispiel kann der Speicher 130 Sparing als Reaktion auf die Erkennung eines UE ausführen. Sparing bezieht sich darauf, dass der Speicher 130 eine gesamte Sparing-Zeile oder einen Abschnitt einer Sparing-Zeile auf eine Adresse einer gesamten Zeile oder eines Abschnitts einer Zeile mit einem unkorrigierbaren Fehler abbildet. Das Sparing kann Soft-Sparing sein, um die Abbildung vorübergehend vorzunehmen, die verbleibt, bis der Speicher neu gestartet wird. Das Sparing kann Hard-Sparing sein, wobei Sicherungen eingestellt werden, um die Adresse permanent neu abzubilden. Das Sparing kann ein Sparing einer gesamten oder eines Abschnitts einer Zeile sein.
  • In einem Beispiel kann die Korrekturaktion 160 die Anwendung von ADDDC auslösen, um eine Fehlerkorrektur basierend auf einer „Buddy“-Beziehung zwischen zwei separaten Abschnitten des Speichers, von denen einer den Fehler aufweist, anzuwenden. ADDDC erweitert die Anwendung von ECC durch Hinzufügen einer Dimension zu den Speicherabschnitten, die für Paritätslogik verwendet werden, was die zum Erkennen und Korrigieren eines Fehlers verfügbaren Informationen erweitert. In einem Beispiel kann die Korrekturaktion 160 eine Anwendung der ECC auslösen, die durch die ECC 150 und die Fehlersteuerung 152 implementiert wird, um die spezifische Komponente, die den erkannten UE verursacht hat, zu korrigieren.
  • In einem traditionellen System würde BIOS 118 Reparaturaktionen vor Ort basierend auf einfachen Fehlerbeobachtungen oder -Indikatoren ausführen. In einem Beispiel für das System 100 kann die Fehlersteuerung 152 Teil des BIOS 118 sein, um eine fehlerbewusste Anwendung von Korrekturaktionen bereitzustellen. Die Steuerung 140 kann Teil des BIOS 118 sein, um die fehlerbewusste Analyse bereitzustellen.
  • Die Steuerung 140 kann vor-Ort-Reparaturaktionen mit hoher Vertrauenswürdigkeit für bestimmte vor Ort behebbare fatale (unkorrigierbare) Speicherfehler nach ihrem Auftreten ausführen, und eine indikative Post-UE-Integritätsbewertung bereitstellen, um eine informierte Speichermodul- (oder SOC-Package-) Rückgabeentscheidung zu unterstützen. Somit kann die Steuerung 140 zuverlässige Informationen für eine Entscheidung zur Rückgabe an den Hersteller in dem Fall eines UE in dem Speicher 130 bereitstellen.
  • Die Steuerung 140 führt eine vor-Ort-Erkennung des fehlerhaften Teils aus, einschließlich der Erzeugung detaillierter Nachweise, die den Fehlererkennungsprozess unterstützen. In einem Beispiel stellt das System 100 eine zuverlässige Erkennung einer fehlerhaften oder defekten Komponente bereit, und implementiert eine hoch vertrauenswürdige vor-Ort-Laufzeitreparatur (potenziell mit rücksetzloser und nahtloser Unterstützung). In einem Beispiel stellt die Steuerung 140 Speicherintegritätsinformationen bereit, die als Integritätstelemetrie bezeichnet werden können. In einem Beispiel stellt die Steuerung 140 dem Host 110 die Telemetrie durch einen Baseboard Management Controller (BMC) oder über eine Schnittstelle vom Typ BIOS bereit.
  • 2A ist ein Blockdiagramm eines Beispiels für ein Training zur Analyse unkorrigierbarer Fehler. System 202 stellt Elemente einer Trainingsphase oder eines Trainingssystems zur Vorhersage eines Speicherfehlers oder einer Analyse eines Speicherfehlers aufgrund eines unkorrigierbaren Fehlers dar. Das System 202 kann Informationen für ein Beispiel des UAM 142 des Systems 100 bereitstellen. In einem Beispiel kann das System 202 als ein Offline-Vorhersage- oder Analysemodelltraining betrachtet werden, da Datensatz 210 Daten für frühere Systemoperationen darstellt. Ein Online-System bezieht sich auf ein System, das gegenwärtig betriebsfähig ist. Das System 202 ist in dem Sinn „betriebsfähig“, dass es betriebsfähig ist, das Modell zu erzeugen, jedoch das Modell basierend auf historischen Daten anstatt auf Echtzeit- oder Laufzeitdaten erzeugt.
  • In einem Beispiel beinhaltet das System 202 den Datensatz 210. Der Datensatz 210 kann einen umfangreichen CE- und UE-Ausfalldatensatz darstellen, der Speicherfehlerinformationen auf Mikroebene beinhaltet. Die Speicherfehlerinformationen auf Mikroebene können Ausfallangaben basierend auf Bit-, DQ-, Zeilen-, Spalten-, Geräte-, Rang-, Kanal-, DIMM- oder anderen Konfigurationsinformationen oder einer Kombination von Informationen beinhalten. In einem Beispiel beinhaltet der Datensatz 210 einen Zeitstempel, um anzugeben, wann Fehler aufgetreten sind. In einem Beispiel beinhaltet der Datensatz 210 Hardwarekonfigurationsinformationen, die mit dem Fehlerdatensatz verbunden sind. Die Hardwarekonfigurationsinformationen können Informationen, wie zum Beispiel Speichergeräteinformationen, DIMM-Herstellerteilenummer, CPU-Modellnummer, Systemplatinendetails, oder andere Informationen oder eine Kombination solcher Informationen beinhalten. In einem Beispiel kann der Datensatz 210 Informationen darstellen, die von umfangreichen Datenzentrumsimplementierungen gesammelt werden.
  • Das System 202 beinhaltet UAM (UE-Analysemodell)-Aufbauer 220 zum Verarbeiten von Daten von dem Datensatz 210, um ein Modell zu erzeugen, das Konfigurationen mit Fehlermustern angibt, die wahrscheinlich zu einem UE führen werden. In einem Beispiel stellt der UAM-Aufbauer 220 Softwarelogik für ein AI (Artificial Intelligence) -Training dar, um das Modell zu erzeugen. In diesem Zusammenhang stellt AI ein Training eines neuronalen Netzwerks oder eine andere Form von Daten-Mining dar, um Beziehungsmuster von großen Datensätzen zu identifizieren. In einem Beispiel erzeugt der UAM-Aufbauer 220 UAM 230 für jede Hardwarekonfiguration, basierend auf CE-Mustern oder -Indikatoren auf Mikroebene (zum Beispiel Bit, DQ, Zeile, Spalte, Gerät, Rang). Somit kann das UAM 230 N unterschiedliche UAM (UAM[1 :N]) basierend auf unterschiedlichen Konfigurationsinformationen (KONFIG) beinhalten.
  • In einem Beispiel beinhaltet das UAM 230 ein separates Analysemodell für jede Kombination eines CPU-Modells und eines DIMM-Herstellers oder einer Teilenummer. Eine solche Granularität für unterschiedliche Kombinationen von CPU-Modell und DIMM-Teilenummer kann Fehlerhardwaremuster unterschiedlich identifizieren, angesichts dessen, dass die unterschiedlichen Hardwarekonfigurationen unterschiedliche Hardwarefehlerzustände verursachen können. Zum Beispiel können DIMM von demselben Hersteller oder mit derselben Teilenummer, jedoch mit einem unterschiedlichen CPU-Modell, ECC unterschiedlich in der Speichersteuerung implementieren, was bewirkt, dass derselbe fehlerhafte Hardwarezustand eines DIMM aufgrund eines unterschiedlichen Verhaltens der ECC-Implementierung unterschiedliche Beobachtungen ergeben. Eine CPU-Familie kann mehrere ECC-Muster bereitstellen, wodurch einem Kunden ermöglicht wird, die ECC basierend auf der Anwendung, die der Kunde wählt, auszuwählen. In ähnlicher Weise kann für dasselbe CPU-Modell mit einem DIMM von einem unterschiedlichen Hersteller oder mit einer unterschiedlichen Teilenummer der fehlerhafte Zustand eines DIMM aufgrund der unterschiedlichen Gestaltung und Implementierung der DIMM-Hardware unterschiedliche Beobachtungen ergeben. Somit erzeugt in einem Beispiel das System 202 Analysemodelle pro Kombination aus CPU-Modell und DIMM-Hersteller oder Teilenummer, um eine verbesserte Analysegenauigkeitsleistung bereitzustellen.
  • 2B ist ein Blockdiagramm eines Beispiels für eine Abschwächung unkorrigierbarer Fehler basierend auf einer Analyse unkorrigierbarer Fehler. System 204 stellt ein Beispiel für ein System mit UE-Fehleranalyse gemäß einem Beispiel für das System 100 dar. In einem Beispiel implementiert das System 204 ein Beispiel für das UAM 230 des Systems 202 in UE-Analysator 266. Während das System 202 basierend auf historischen oder gespeicherten Informationen arbeiten kann, kann das System 204 insofern als ein Laufzeitspeicherausfallanalysesystem betrachtet werden, als das System 204 auf Laufzeit- oder Echtzeitparametern, wie sie auftreten, sowie auf historischen Informationen arbeitet.
  • In einem Beispiel stellt das System 202 von 2A einen auf maschinellem Lernen basierenden Vorhersagemechanismus für unkorrigierbare Speicherfehler auf der Ebene des Speichergeräts bereit. In einem Beispiel verwendet das System 204 das System 202, um eine Laufzeitvorhersage oder Bestimmung fehlerhafter Komponenten zu erzeugen, um zu bestimmen, welche Komponente die wahrscheinliche Ursache eines erkannten UE ist. Zum Beispiel kann das System 204 eine Vorhersage oder eine Bestimmung einer Ursache eines UE erzeugen, und eine für die Ursache des UE spezifisch Korrekturaktion auslösen.
  • Das System 204 beinhaltet Steuerung 280, die eine fest zugeordnete Steuerung sein kann, oder die Firmware zur Ausführung auf einer gemeinsam genutzten Steuerung oder Hardware, die mit anderen Steuer- oder Verwaltungsfunktionen in dem Computersystem gemeinsam genutzt wird, darstellen kann. In einem Beispiel ist die Steuerung 280 eine Steuerung einer Host-Hardwareplattform, wie zum Beispiel von Hardware 240. Die Host-Hardwareplattform kann eine CPU oder anderen Host-Prozessor 242 beinhalten. Speicher 246 kann mehrere Speichergeräte oder mehrere parallele Speicherressourcen darstellen. In einem Beispiel stellt die Steuerung 280 eine Steuerung dar, die auf einem Substrat eines Computersystems angeordnet ist. In einem Beispiel ist das Substrat eine Hauptplatine. In einem Beispiel ist das Substrat eine Speichermodulplatine. In einem Beispiel ist das Substrat ein Logikchip eines HBM-Stapels (zum Beispiel eine Steuerebene, auf der die Speicherchips angeordnet sind).
  • Die Steuerung 280 führt Speicherfehlerverfolger (Memory Fault Tracker - MFT) 260 aus, der eine Engine darstellt, um eine Komponente zu bestimmen, die einen UE verursacht hat, und eine für die Komponente spezifische Korrekturaktion gemäß jeglichem beschriebenen Beispiel auszulösen. Das System 204 kann eine vor-Ort-UE-Reparatur und eine Post-UE-Integritätsbewertung für Speichermodule ermöglichen. Die Speichermodule können ein DIMM-Modul oder ein anderes vergleichbares Modul mit mehreren Speicherchip-Packages auf einer Platine oder ein HBM- oder ein anderes Mehrchip-Package mit mehreren Chips oder Kacheln auf einem Substrat beinhalten, alles in einem Speichergeräte-Package.
  • Die Hardware 240 stellt die Hardware des Systems dar, das auf Speicherfehler überwacht werden soll. Die Hardware 240 stellt dem MFT 260 Hardwarekonfiguration (KONFIG.) 256 zur Fehleranalyse bereit. Die Konfiguration 256 stellt die spezifischen Hardwarekomponenten und ihre Merkmale und Einstellungen dar. Die Hardware 240 kann den Hostprozessor 242 beinhalten, der Verarbeitungsressourcen für ein Computersystem, Peripheriegeräte 244 und den Speicher 246 darstellt.
  • Die Peripheriegeräte 244 stellen Komponenten und Merkmale der Hardware 240 dar, die die Handhabung von Speicherfehlern ändern können. Somit können Hardwarekomponenten und Software-/Firmwarekonfiguration der Hardwarekomponenten, die beeinflussen können, wie Speicherfehler gehandhabt werden, zur Berücksichtigung in Konfigurationsinformationen enthalten sein, um sie zur Speicherfehlervorhersage an den MFT 260 zu senden. Beispiele für eine Peripheriekonfiguration können eine Peripheral Control Hub (PCH) -Konfiguration, Management-Engine (ME) -Konfiguration, Quick-Path-Interconnect (QPI) -Fähigkeit oder andere Komponenten oder Fähigkeiten beinhalten.
  • Der Speicher 246 stellt die Speicherressourcen dar, für die Fehler identifiziert werden können. In einem Beispiel überwacht das System 204 den Speicher 246, um zu bestimmen, wann korrigierbare Fehler und unkorrigierbare Fehler in dem Speicher auftreten. Solche Fehler können zum Beispiel in einer Scrubbing-Operation oder als Teil einer Fehlerhandhabungsroutine erkannt werden.
  • CE 252 stellt CE-Daten für in Daten des Speichers 246 erkannte korrigierbare Fehler dar. UE 254 stellt UE-Daten für in Daten des Speichers 246 erkannte unkorrigierbare Fehler (DUE) dar. In einem Beispiel überwachen Fehlerstatistiken (Statistiken) 262 CE-Daten für die Hardware 240. In einem Beispiel überwacht der UE-Analysator 266 DUE-Daten für die Hardware 240.
  • In einem Beispiel kann der UE-Analysator 266 Vorhersagen bereitstellen, welche Komponenten, die Fehler aufweisen, UE-anfällig sind. In einem Beispiel implementiert der UE-Analysator 266 eine UE-Vorhersage-Engine basierend auf dem UAM 230. Der UE-Analysator 266 kann das UAM 230, das ein Modell darstellt, das durch den UAM-Aufbauer 220 des Systems 202 erzeugt wird, speichern oder darauf zugreifen. In einem Beispiel schreibt der UE-Analysator 266 erkannte CE den in den Konfigurationsinformationen für die Systemarchitektur angegebenen Komponenten auf Mikroebene zu, um daraus zu folgern, ob die Komponenten auf Mikroebene fehlerhaft sind.
  • Der UE-Analysator 266 erzeugt eine Vorhersage von Speicherfehlern basierend auf der Hardwarekonfiguration und Informationen über korrigierbare Fehler. Die UE-Vorhersage wird auf der Hardwareebene vorgenommen. Somit kann der UE-Analysator 266 FCA 268 erzeugen, um spezifische Hardwarekomponenten des Speichers 246 anzugeben, von denen vorhergesagt wird, dass sie ausfallen werden (zum Beispiel Zellen, Bitleitungen (Spalten), Wortleitungen (Zeilen), Bänke, Chips, Ränge). In einem Beispiel bestimmt der UE-Analysator 266, ob fehlerhafte Zeilen oder Zellen offen für das Offline-Setzen von Seiten sind.
  • In einem Beispiel führt der UE-Analysator 266 eine Analyse an den an fehlerhaften Zeilen oder Zellen beobachteten CE aus. In einem Beispiel beinhaltet der UE-Analysator 266 fortgeschrittene Fehlerindikatoren auf Mikroebene, die basierend auf dem Wissen über die durch das System 204 verwendete ECC-Abdeckung aufgebaut wurden. In einem Beispiel werden die Fehlerindikatoren auf Mikroebene basierend auf Wissen über die Fehlerbitmusterverteilung von den DIMM-Herstellern aufgebaut, um vorherzusagen, ob UE wahrscheinlich in der Zukunft auftreten werden oder nicht. Der UE-Analysator 266 kann die Fehlerindikatoren anwenden, um fehlerhafte Zeilen oder Zellen, die UE-anfällig sind, genau zu lokalisieren.
  • In einem Beispiel speichert das System 204 fehlerhafte Adressen in NVRAM 284. Während der NVRAM 284 veranschaulicht ist, können die fehlerhaften Adressen in einem Flash-Speicher oder einem anderen persistenten Speicher gespeichert werden. Der NVRAM 284 ermöglicht dem System 204, die FCA 286 dauerhaft zwischen Systemstarts zu speichern. Bestimmte Speicherfehler bestehen über Leistungszyklen des Systems 204 hinweg fort. Somit kann die FCA 286 in dem NVRAM 284 aktualisiert und gespeichert werden, um das System über Seiten zu informieren, die zwischen Systemstarts offline gesetzt werden sollten.
  • In einem Beispiel kann der MFT 260 ein intelligenter Hardware- oder Softwaremechanismus sein. Der MFT 260 kann die Systemkonfiguration (KONFIG. 256) lesen, korrigierbare Fehler (CE) mit Fehlerortinformationen auf Mikroebene verfolgen, und Fehlerstatistiken bis hinunter zu Bitleitungen (oder Spalten), Wortleitungen (oder Zeilen), Bänken und Rängen zählen. Die Fehlerstatistiken 262 können MFI (Memory Fault Indicator) 264 erzeugen, der einen knappen Satz von Indikatoren darstellt, die die Fehlerinformationen verfolgen. Die Fehlerstatistiken 262 können die MFI-Indikatoren 264 an den UE-Analysator 266 senden, um zu bestimmen, wie wahrscheinlich die entsprechenden Komponenten (zum Beispiel Bitleitungen oder Spalten, Wortleitungen oder Zeilen, Bänke, Ränge) fehlerhaft sind oder nicht.
  • Wenn der UE 254 in dem System 204 erkannt wird, kann der UE-Analysator 266 den Fehlerort lesen. Basierend auf dem MFI 264 kann der UE-Analysator 266 eine oder mehrere Berechnungen ausführen, um zu identifizieren, wie wahrscheinlich der UE durch eine zugrunde liegende fehlerhafte Komponente verursacht wird. In einem Beispiel wendet der UE-Analysator 266 eine Bayes'sche Analyse an, um die Bestimmung vorzunehmen. Der MFT 260 kann einen anderen Algorithmus für maschinelles Lernen oder einen anderen Analysealgorithmus anwenden, um die zugrunde liegende Ursache des UE zu bestimmen. FCA (Faulty Component Address) 268 stellt eine Identifikation der fehlerhaften Komponente dar, die der UE-Analysator 266 als die Ursache des UE bestimmt.
  • Wenn der MFT 260 die zugrunde liegende Ursache des UE mit einer hohen Vertrauenswürdigkeit identifizieren kann, kann er prüfen, ob die identifizierte fehlerhafte Komponente mit einer bestimmten Plattform-Sparing-Aktion vor Ort repariert werden kann, wie zum Beispiel durch PPR für Zeilenfehler, Bank-Sparing für Bankfehler oder eine andere Aktion. Korrekturaktion 270 stellt eine oder mehrere Operationen dar, die durch den MFT 260 als Reaktion auf den an der FCA 268 erkannten spezifischen Fehler bestimmt werden. Falls die als fehlerhaft erkannte Komponente repariert werden kann, gibt in einem Beispiel der MFT 260 die Fehlerkomponentenadresse weiter, mit einer Angabe oder Markierung, dass sie vor Ort behebbar ist.
  • Der MFT 260 kann eine für die identifizierte fehlerhafte Komponente spezifische Reparaturaktion ausführen oder auslösen. RAS-Aktion 282 stellt das Senden oder Auslösen der Korrekturaktion 270 dar. Der MFT 260 löst vorzugsweise eine Laufzeitkorrekturaktion aus, wenn verfügbar. Alternativ kann die RAS-Aktion 282 eine Reparaturaktion für einen Neustart der Hardware 240 auslösen.
  • Protokoll 272 stellt Protokollinformationen für eine Post-UE-Analyse dar, die Adressinformationen über fehlerhafte Komponenten mit Markierungen oder Angaben darüber beinhalten können, ob eine vor-Ort-Behebung möglich ist, und welche Aktionen durchgeführt wurden. In einem Beispiel kann das Protokoll 272, falls die fehlerhafte Komponente nicht vor Ort behebbar ist (zum Beispiel wenn keine Ersatzzeilen für PPR verbleiben, oder keine Ersatzbänke für Bank-Sparing verbleiben), eine Markierung für den UE als vor Ort nicht behebbar beinhalten. In einem Beispiel kann das Protokoll 272, falls der UE-Analysator 266 die zugrunde liegende Ursache des UE nicht mit hoher Vertrauenswürdigkeit identifizieren kann, eine Markierung für den UE als Ursache unbekannt beinhalten.
  • In einem Beispiel beinhaltet der MFT 260 Post-UE-Analyse 274 zur Post-UE-Bewertung der Speicherintegrität. Die Post-UE-Analyse 274 kann zusätzlich Reparaturaktionsjournalprotokollinformationen erzeugen, um die identifizierten Komponenten, die Fehler enthalten, und durchgeführte Reparaturaktionen anzugeben.
  • Die Post-UE-Analyse 274 kann die Korrektheit von Reparaturaktionen bewerten, indem bestimmt wird, ob es gelingt, den Fehler zu korrigieren. Die Post-US-Analyse 274 kann einen Nachweispunkt für die Informationen über die Rückgabe an den Hersteller erzeugen. Nach der Operation der Post-UE-Analyse 274 kann der MFT 260 Telemetrie 290 an den Host senden. Die Telemetrie 290 stellt nachweisbasierte Schlussfolgerung und Behebbarkeitsabbildung fehlerhafter Komponenten dar, um sie dem Host anzugeben. Somit kann die Telemetrie 290 indikative Informationen einer Post-UE-Speicherintegritätsbewertung beinhalten, um ein informiertes Speichermodul (oder einen eingebetteten HBM-Prozessor) bei der Rückgabeentscheidung nach dem Auftreten eines fatalen Speicherfehlers zu unterstützen.
  • Die Telemetrie 290 kann ein Speicherintegritätsbewertungs- und Reparaturaktionsjournalprotokoll bereitstellen. In einem Beispiel wird eine Speicherintegritätsbewertung als vor Ort behebbar (zum Beispiel kann PPR einen bestimmten durch Zeilenfehler verursachten UE reparieren), als vor Ort nicht behebbar (zum Beispiel einen durch Spaltenfehler verursachten UE) oder als Ursache unbekannt (zum Beispiel ein Mangel an Informationen zum Identifizieren der UE-Ursache) kategorisiert.
  • Der MFT 260 kann die Post-UE-Integritätsbewertung und Protokollinformationen in dem NVRAM (Non Volatile Random Access Memory) 284 speichern, um Fehlerinformationen über Systemleistungszyklen hinweg zu verfolgen. Der NVRAM 284 kann Informationen über identifizierte fehlerhafte Komponenten, eine Post-UE-Speicherintegritätsbewertung, Journalprotokolle und eine MFI-Momentaufnahme dauerhaft speichern. Eine dauerhafte Speicherung der Integritätsbewertung und anderer Informationen ermöglicht der Steuerung 280, Speicherfehlerindikatoren zu verfolgen, und ordnungsgemäße RAS-Aktionen über Systemleistungszyklen hinweg auszuführen.
  • In einem Beispiel für das System 204 stellt die Steuerung 280 eine siliziumbasierte Lösung bereit, die die Fähigkeit bereitstellt, Fehlerinformationen auf Mikroebene für CE und DUE des Speichermoduls sowie die anderen zugehörigen System- und Speicherkonfigurationen zu überwachen. In einem Beispiel überwacht der MFT 260 CE und DUE, und decodiert die entsprechenden Fehlerbitinformationen auf Mikroebene basierend auf den Fehlerstatistiken 262 und dem UE-Analysator 266.
  • In einem Beispiel berechnen und aktualisieren die Fehlerstatistiken 262 des MFT 260 die MFI auf Mikroebene (wie durch den MFI 264 dargestellt) für jedes Speichermodul, wenn ein CE auftritt. Solche Berechnungen und Aktualisierungen ermöglichen dem MFT 260, daraus zu folgern, ob bestimmte Komponenten fehlerhaft sind. In einem Beispiel, wenn ein DUE auftritt, versucht der UE-Analysator 266, die zugrunde liegende fehlerhafte Komponente, die den UE verursacht, basierend auf dem UE-Fehlerort und den MFI zu identifizieren. Die fehlerhafte Komponente, die den UE verursacht, könnte ein Zeilenfehler, ein Spaltenfehler, ein Bankfehler, ein unbekannter Fehler oder ein anderer Fehler sein.
  • In einem Beispiel führt der MFT 260 durch die Korrekturaktion 270 die genaue Sparing-Aktion gegen die identifizierte fehlerhafte Komponente, wie zum Beispiel PPR, Bank-Sparing oder eine andere Aktion, basierend auf der Verfügbarkeit der Aktionen aus. In einem Beispiel ermöglicht die Post-UE-Analyse 274 dem MFT 260, den Speicherintegritätszustand gemäß der Ursache des UE und der anwendbaren Plattform-RAS-Aktion zu bewerten. Die Post-UE-Analyse 274 kann dem MFT 260 ermöglichen, die Integritätsbewertung durch die Telemetrie 290, die Telemetrie/Protokolle darstellt, freizulegen, um eine informierte speicherfehlerbezogene Rückgabeentscheidung eines Speichermoduls oder des eingebetteten HBM-Prozessors zu unterstützen. In einem Beispiel erzeugt der MFT 260 ein Journalprotokoll für jede Post-UE-Bewertung. Das Journalprotokoll kann die Fehlerindikatoren und jegliche durchgeführten Reparaturaktionen beinhalten, die verwendet werden können, um die Korrektheit von Reparaturaktionen zu bewerten, und um Informationen über die Entscheidung, die Hardware zurückzugeben, bereitzustellen.
  • 3 ist ein Blockdiagramm eines Beispiels für eine Systemarchitektur zur Abschwächung unkorrigierbarer Fehler. System 300 veranschaulicht ein Computersystem gemäß einem Beispiel für das System 100 oder einem Beispiel für das System 204. Das System 300 beinhaltet Host 310, der mit DIMM 320 verbunden ist. Der Host 310 stellt die Host-Hardwareplattform für das System dar, in dem das DIMM 320 arbeitet. Der Host 310 beinhaltet einen Host-Prozessor (nicht explizit gezeigt) um Operationen auszuführen, die Zugriff auf den Speicher des DIMM 320 anfordern.
  • Das DIMM 320 beinhaltet mehrere Speichergeräte, die als DRAM (Dynamic Random Access Memory) -Geräte oder DRAM identifiziert sind, und parallel verbunden sind, um Zugriffsbefehle zu verarbeiten. Das DIMM 320 ist insbesondere als ein zweirangiges DIMM veranschaulicht, mit M DRAM (DRAM[0:M-1]) in jedem Rang, Rang 0 und Rang 1. M kann jegliche ganze Zahl sein. Typischerweise beinhaltet ein Rang von DRAM Daten-DRAM, um Benutzerdaten zu speichern, und ECC-DRAM, um System-ECC-Bits und Metadaten zu speichern. Das System 300 unterscheidet den DRAM-Zweck nicht. In einem Beispiel stellen die DRAM-Geräte des Systems 300 DRAM-Geräte dar, die mit einem Double Data Rate Version 5 (DDR5) -Standard von JEDEC (Joint Electron Device Engineering Council, jetzt die JEDEC Solid State Technology Association) kompatibel sind.
  • Die DRAM eines Rangs nutzen gemeinsam einen Befehlsbus und Chipauswahlsignalleitungen, und haben individuelle Datenbusschnittstellen. CMD (Befehl) 312 stellt einen Befehlsbus für Rang 0 dar, und CMD (Befehl) 322 stellt den Befehlsbus für Rang 1 dar. Der Befehlsbus könnte alternativ als ein Befehls- und Adressbus bezeichnet werden. CS(0) stellt eine Chipauswahl für die Geräte von Rang 0 dar, und CS(1) stellt die Chipauswahl für die Geräte von Rang 1 dar. DQ 314 stellt den Daten (DQ) -Bus für die Geräte von Rang 0 dar, wobei jeder DRAM B Bits beiträgt, wobei B eine ganze Zahl ist, für insgesamt B*M Bits auf dem DQ-Bus. DQ 324 stellt den Daten (DQ) -Bus für die Geräte von Rang 1 dar.
  • DRAM 340 stellt eine Darstellung eines Beispiels für Details für jedes DRAM-Gerät des Systems 300 bereit. Der DRAM 340 beinhaltet Steuer (CTRL) -Logik 346, die Logik zum Empfangen und Decodieren von Befehlen darstellt. Die Steuerlogik 346 stellt interne Steuersignale bereit, um auf Befehle zu reagieren, die auf dem Befehlsbus empfangen werden. Der DRAM 340 beinhaltet mehrere Bänke 342, wobei die Bänke eine Organisation des Speicherarrays des DRAM 340 darstellen. Die Bänke 342 verfügen über individuelle Zugriffshardware, um einen parallelen oder nicht blockierenden Zugriff auf unterschiedliche Bänke zu ermöglichen. Der mit 350 gekennzeichnete Abschnitt ist ein Subarray des gesamten Speicherarrays des DRAM 340.
  • Das Speicherarray beinhaltet Zeilen (ROW) und Spalten (COL) von Speicherelementen. SA (Sense Amplifier) 344 stellt einen Erfassungsverstärker zum Stufen von Daten für einen Lesevorgang von dem Speicherarray oder für einen Schreibvorgang in das Speicherarray dar. Daten können in die Erfassungsverstärker ausgewählt werden, um eine Erkennung des in einer Bitzelle oder Speicherzelle des Arrays gespeicherten Werts zu ermöglichen. Der gestrichelte Kasten beinhaltet den Schnittpunkt der gekennzeichneten Zeile und Spalte des Speicherarrays. Der gestrichelte Abschnitt veranschaulicht eine typische DRAM-Zelle 348, die einen Transistor als ein Steuerelement und einen Kondensator als ein Speicherungselement beinhaltet. BL (Bitleitung) ist die Spaltensignalleitung und WL (Wortleitung) ist die Zeilensignalleitung.
  • Speichersteuerung (MEM CTLR) 318 stellt eine Speichersteuerung dar, die Zugriff auf die Speicherressourcen des DIMM 320 verwaltet. Die Speichersteuerung 318 stellt Zugriffsbefehle an die Speichergeräte bereit, einschließlich Senden von Daten für einen Schreibbefehl oder Empfangen von Daten für einen Lesebefehl. Die Speichersteuerung 318 sendet Befehls- und Adressinformationen an die DRAM-Geräte, und tauscht Datenbits mit den DRAM-Geräten aus (entweder zu oder von, abhängig von dem Befehlstyp).
  • In einem Beispiel beinhaltet der Host 310 Fehlersteuerung 330 zum Verwalten einer fehlerbewussten Reaktion auf UE. In einem Beispiel beinhaltet die Fehlersteuerung 330 ECC 332, die die ECC auf dem Host 310 darstellt. In einem Beispiel ist die ECC 332 Teil der Speichersteuerung 318. Die Fehlersteuerung 330 kann ein Speicherfehlerverfolger sein oder diesen beinhalten. UE-Aktion 334 stellt die Fähigkeit der Fehlersteuerung 330 dar, Speicherfehler zu verfolgen, als Reaktion auf die Erkennung eines UE zu bestimmen, welche Komponente fehlerhaft ist, und eine spezifische Aktion basierend auf der als fehlerhaft bestimmten Komponente zu erzeugen.
  • Der Host 310 beinhaltet OS 316, das ein Host-Betriebssystem auf dem Host 310 darstellt. Das OS 316 kann Speicherplatz, der für durch den Host 310 ausgeführte Programme verfügbar ist, und Offline-Seiten als eine Korrekturaktion als Reaktion auf einen Auslöser von der UE-Aktion 334 verwalten. In einem Beispiel kann die UE-Aktion 334 bewirken, dass ein oder mehrere DRAM ein vollständiges oder teilweises Cachezeilen-Sparing oder Sparing einer anderen Komponente (zum Beispiel einer Bank) ausführen. Das Sparing kann die Anwendung von ADDDC beinhalten.
  • 4 ist ein Blockdiagramm eines Beispiels für eine Speicherbankarchitektur. System 400 stellt ein Beispiel für einen DRAM-Chip gemäß einem Beispiel für das System 100 oder das System 300 bereit, wobei Details des DRAM veranschaulicht werden.
  • Bitzelle 420 stellt eine Speicherzelle oder einen Speicherungsort des Speicherarrays dar. Die Bitzelle 420 verbindet sich mit einer Wortleitung (WL) und einer Bitleitung (BL), wobei der spezifische WLBL-Ort eine Adresse darstellt, die durch eine Kombination aus Zeilen (WL) und Spalten (BL) -Adresse identifizierbar ist. Die Auswahl (SEL) -Zeile kann eine Auswahl der Wortleitung ermöglichen.
  • Zeilendecodierer (DEC) 422 stellt Decodierungshardware zum Auswählen von Zeilen oder Wortleitungen für Lese-, Schreib- oder anderen Zugriff dar. Der Zeilendecodierer 422 kann eine Spannung für eine Wortleitung (Vwl) und eine Spannung für eine Auswahlleitung (VsL) empfangen, und geeignete Spannungen zur Auswahl einer Zeile basierend auf für eine Operation empfangenen Zeilenadress (ADDR) -Informationen bereitstellen.
  • BL (Bitleitungs) -Vorladung 424 stellt Hardware dar, die eine oder mehrere ausgewählte Spalten oder Bitleitungen für eine Zugriffsoperation laden kann. Die BL-Vorladung 424 kann die Bitleitungen zum Lesen laden, um das Erfassen des in einer durch eine Spalten- und Zeilenadresse identifizierten Bitzelle gespeicherten Werts zu ermöglichen. Zeilenpuffer 426 stellt einen Puffer zum Lesen oder Schreiben von Bits des Arrays dar, und kann als ein Erfassungsverstärker implementiert werden. Spaltendecodierer (DEC) 428 stellt Hardware zum Auswählen der Ausgabespalten oder Bitleitungen dar. Der Spaltendecodierer 428 wählt Bitleitungen basierend auf für eine Operation empfangenen Spaltenadressinformationen aus.
  • DRAM-Chip 410 ist mit N Bänken, Bank[0:(N-1)], veranschaulicht. N kann eine ganze Zahl sein, und ist typischerweise eine binäre Zahl, wie zum Beispiel 8 oder 16. Der DRAM-Chip 410 kann Befehls (CMD) -Decodierer (DEC) 412 zum Decodieren von Befehlsinformationen beinhalten. Wie in dem System 400 veranschaulicht, ist der Befehls-(CMD) -Bus von dem Adress (ADDR) -Bus getrennt, obwohl sie als ein einzelner Befehls- und Adresssteuerbus betrachtet werden können. Sie sind in dem System 400 als getrennt veranschaulicht, um anzugeben, dass die Befehls- und Adressinformationen für unterschiedliche Steuerungen innerhalb des Speichergeräts getrennt werden können.
  • Der Spaltendecodierer 428 ist als mit dem Datenbus verbunden gezeigt, um Daten für Schreiboperationen zu empfangen, und Daten für Leseoperationen bereitzustellen. Für eine Schreiboperation werden Daten auf dem Datenbus empfangen, und in dem Zeilenpuffer 426 platziert, um in das Speicherarray zu schreiben. Für eine Leseoperation werden Daten aus dem Speicherarray in dem Zeilenpuffer 426 abgerufen, um dem Host aus dem Datenbus bereitgestellt zu werden.
  • Das System 400 veranschaulicht die Architektur eines DRAM-Geräts. Fehler können in einer Spalte entlang einer Bitleitung, in einer Zeile entlang einer Wortleitung, an einem spezifischen Bit (festgeklemmtes Bit) oder an mehreren Orten auftreten, um eine Bank fehlerhaft zu machen. Ein Speicherfehlerverfolger kann die spezifischen Architekturkomponenten des DRAM-Chips 410 überwachen, und eine Korrektur bestimmen, wenn ein UE erkannt wird.
  • 5 ist ein Blockdiagramm eines Beispiels für ein System zur Abschwächung unkorrigierbarer Fehler mit einer gestapelten Speicherarchitektur. System 500 ist ein Beispiel für ein Speichersystem gemäß dem System 100, dem System 200 oder dem System 300. Das System 500 beinhaltet eine Speicherstapelarchitektur, die durch einen Speicherfehlerverfolger überwacht wird.
  • Package-Substrat 510 veranschaulicht ein SOC-Package-Substrat. Das Package-Substrat 510 beinhaltet typischerweise Leiterbahnen, um Zwischenverbindungspunkte des SOC-Packages zu routen. Interposer 520 ist auf dem Package-Substrat 510 integriert, und verbindet den Prozessorchip mit dem Speicherstapel. Schnittstellen 550 (die dunkel schattierten Streifen) veranschaulichen Hardwarezwischenverbindungspunkte. Die Pfeile zwischen den verschiedenen Schnittstellen 550 stellen Verbindungen 560 von einem Chip zu einem anderen durch die Schnittstellen 550 dar.
  • Prozessor 530 stellt einen Prozessor- oder Zentralverarbeitungseinheits (CPU) - Chip oder Grafikverarbeitungseinheits (GPU) -Chip dar, der auf dem Interposer 520 angeordnet werden soll. Der Prozessor 530 führt die rechnerischen Operationen in dem System 500 aus. In einem Beispiel beinhaltet der Prozessor 530 mehrere Kerne (nicht speziell gezeigt), die Operationen erzeugen können, die anfordern, dass Daten aus dem Speicher gelesen und in diesen geschrieben werden. Cache-Steuerung 532 stellt eine Schaltung auf dem Prozessor 530 dar, um die Schnittstelle 550 von dem Prozessor 530 zu Speicher (DRAM 540) zu verwalten. Die Cache-Steuerung 532 kann alternativ als eine Speichersteuerung bezeichnet werden.
  • Die DRAM 540 stellen einen Stapel von Speichergeräten, wie zum Beispiel eine HBM-Architektur, dar. Jeder DRAM 540 ist so veranschaulicht, dass er 16 Bänke 542 aufweist, obwohl andere Speicherkonfigurationen verwendet werden können. Die Bänke 542 können Speicherarrays gemäß dem beinhalten, was in dem System 400 veranschaulicht ist. Jeder DRAM 540 kann eine Schnittstelle 550 zum Verbinden mit dem Interposer 520, und durch den Interposer 520 mit dem Prozessor 530, beinhalten.
  • In einem Beispiel beinhaltet die Cache-Steuerung 532 eine Speicherfehlerverfolgungssteuerungsschaltung zum Ausführen einer fehlerbewussten Analyse gemäß jeglichem Beispiel hierin. In einem Beispiel ist die Speicherfehlerverfolgungssteuerung auf dem Interposer 520 integriert.
  • Unabhängig davon, ob sich die Engine für fehlerbewusste Analyse auf dem Prozessor 530, dem Interposer 520, der als ein separater auf dem Interposer 520 integrierter Steuerchip implementiert ist, oder an anderer Stelle in dem System 500 befindet, ermöglicht sie dem System 500, eine hoch vertrauenswürdige Identifikation der zugrunde liegenden Ursache eines UE in den DRAM 540 auszuführen. Die Analyse-Engine kann die Komponentenidentifikation aus einer kombinierten Analyse durch Verwenden der CE-Historie und Identifikation eines UE erzeugen. Die Analyse-Engine kann Speicherfehlerindikatoren verfolgen, um die Ausfallmuster des Speichermoduls oder des Speicherstapels zu bestimmen, um daraus zu folgern, welche zugrunde liegende Komponente am wahrscheinlichsten fehlerhaft und die Ursache des UE ist. Angesichts des UE-Ergebnisses als die Tatsache und der vorherigen CE-Historie als der Nachweis bewertet die Fehleranalyse, wie wahrscheinlich ein bestimmter UE durch einen zuvor gefolgerten zugrunde liegenden Fehler verursacht wird. Wenn die Analyse-Engine die fehlerhafte Komponente, die den UE verursacht, mit hoher Vertrauenswürdigkeit identifiziert, kann die Analyse-Engine basierend auf der identifizierten fehlerhaften Komponente die Ausführung einer für die Reparatur der fehlerhaften Komponente spezifischen Sparing-Aktion auslösen.
  • Die Fähigkeit, unkorrigierbare Speicherfehler vor Ort präzise zu reparieren, verbessert die Zuverlässigkeit, Verfügbarkeit und Wartungsfreundlichkeit eines Systems. Eine solche Fähigkeit ist insbesondere für ein eingebettetes HBM-SOC gemäß einem Beispiel für das System 500 vorteilhaft, wobei ein Speicherfehler die Funktion des gesamten SOC deaktivieren kann.
  • Die 6A-6D stellen Beispiele für eine Analyse einer spezifischen Hardwareelementursache eines erkannten unkorrigierbaren Fehlers dar. Die verschiedenen Fehlerbeispiele veranschaulichen Beispiele für UE-Ursachenidentifikation und Post-UE-Integritätsbewertung für einen HBM-Speicher, wie zum Beispiel den Speicherstapel in dem System 500, oder für ein Speichermodul, wie zum Beispiel das DIMM in dem System 300.
  • 6A stellt ein Beispiel für eine Zeilenfehlererkennung dar. Bank 610 beinhaltet Zeilendecodierer (DEC) 622, um die Auswahl von Zeilen oder Wortleitungen zu steuern. Die Bank 610 beinhaltet Erfassungsverstärker 624 zum Stufen von Daten für das Speicherarray von Bitzellen 612, Zeilenpuffer 626 zum Puffern der Daten zwischen den Erfassungsverstärkern und der Ausgabehardware, und Spaltenauswahl 628 zum Auswählen von Abschnitten der Zeile, auf die zugegriffen wird.
  • Die Bank 610 stellt eine Speicherbank dar, die viele CE beinhaltet, veranschaulicht durch die grauen Quadrate mit einem „C“ an verschiedenen Bitzellen 612. Es kann beobachtet werden, dass die Bank 610 viele CE in einer einzelnen Zeile (Wortleitung) des Speicherarrays beinhaltet. Es versteht sich, dass nicht jeder CE zur selben Zeit in der Bank 610 vorhanden ist. Vielmehr können die veranschaulichten CE im Lauf der Zeit über mehrere Zugriffe auf die Bank 610 hinweg erkannt werden. Basierend auf dem Auftreten mehrerer CE in derselben Zeile kann das System eine rechnerische Bestimmung vornehmen, dass die Zeile fehlerhaft ist. An einem Punkt nach dem Auftreten mehrerer CE wird der UE in der Zeile erkannt, dargestellt durch das schwarze Quadrat mit dem „U“. Da die MFT-Engine mehrere Fehler in der Zeile beobachtet hat, kann sie bestimmen, dass der UE durch den Zeilenfehler verursacht wird. Somit kann die MFT-Engine für die Bank 610 Zeilenfehler 614 erkennen.
  • In einem Beispiel kann die MFT-Engine eine PPR-Aktion für die identifizierte fehlerhafte Zeile auslösen, um den UE vor Ort zu reparieren. Falls die Reparatur erfolgreich ist, kann die MFT-Engine eine Post-UE-Integritätsbewertung von „vor Ort behebbar“ für den Zeilenfehler 614 erzeugen.
  • 6B stellt ein Beispiel für eine Cachezeilenadressfehlererkennung dar. Bank 630 beinhaltet Zeilendecodierer (DEC) 642, um die Auswahl von Zeilen oder Wortleitungen zu steuern. Die Bank 630 beinhaltet Erfassungsverstärker 644 zum Stufen von Daten für das Speicherarray von Bitzellen 632, Zeilenpuffer 646 zum Puffern der Daten zwischen den Erfassungsverstärkern und der Ausgabehardware, und Spaltenauswahl 648 zum Auswählen von Abschnitten der Zeile, auf die zugegriffen wird.
  • Die Bank 630 stellt eine Speicherbank dar, für die mehrere CE im Lauf der Zeit an einer spezifischen Adresse erkannt wurden. Somit weist die Bank 630 ein Ausfallmuster an der spezifischen Adresse auf, mit mehreren CE im Lauf der Zeit (veranschaulicht durch die grauen Quadrate mit einem „C“), gefolgt von einem UE (das schwarze Quadrat mit einem „U“) an derselben Adresse.
  • In einem Beispiel ist die Adressengranularität des erkannten Adressfehlers eine Cachezeilengröße. Somit kann die Bank 630 einen Cachezeilenfehler oder einen Fehler eines eingeklemmten Bits darstellen. Basierend auf wiederholten CE an derselben Adresse, gefolgt von dem UE an der Adresse, kann die MFT-Engine mit hoher Vertrauenswürdigkeit bestimmen, dass die Speicheradresse fehlerhaft ist. Bitfehler 634 (der alternativ als ein Cachezeilenfehler bezeichnet werden könnte) stellt den durch das eingeklemmte Bit verursachten Fehler dar.
  • In einem Beispiel kann die MFT-Engine Cachezeilen-Sparing auslösen, um einen Abschnitt der Zeile auszusparen. Cachezeilen-Sparing bezieht sich auf das Sparing nur eines Abschnitts einer Zeile, wie zum Beispiel eines Nibble oder eines Byte. In einem Beispiel kann die MFT-Engine eine PPR-Aktion auslösen, um die gesamte Zeile, die die fehlerhafte Adresse enthält, auszusparen. Es versteht sich, dass PPR eine Sparing-Ressource verwenden würde, die nicht mit Cachezeilen-Sparing verwendet wird. Falls die Reparatur erfolgreich ist, kann die MFT-Engine eine Post-UE-Integritätsbewertung von „vor Ort behebbar“ für den Bitfehler 634 erzeugen.
  • 6C stellt ein Beispiel für eine Spaltenfehlererkennung dar. Bank 650 beinhaltet Zeilendecodierer (DEC) 662, um die Auswahl von Zeilen oder Wortleitungen zu steuern. Die Bank 650 beinhaltet Erfassungsverstärker 664 zum Stufen von Daten für das Speicherarray von Bitzellen 652, Zeilenpuffer 666 zum Puffern der Daten zwischen den Erfassungsverstärkern und der Ausgabehardware, und Spaltenauswahl 668 zum Auswählen von Abschnitten der Zeile, auf die zugegriffen wird.
  • Die Bank 650 stellt eine Speicherbank dar, die viele CE beinhaltet, veranschaulicht durch die grauen Quadrate mit einem „C“ an verschiedenen Bitzellen 652. Es kann beobachtet werden, dass die Bank 650 viele CE in einer einzelnen Spalte (Bitleitung) des Speicherarrays beinhaltet. Es versteht sich, dass nicht jeder CE zur selben Zeit in der Bank 650 vorhanden ist. Vielmehr können die veranschaulichten CE im Lauf der Zeit über mehrere Zugriffe auf die Bank 650 hinweg erkannt werden. Basierend auf dem Auftreten mehrerer CE in derselben Spalte kann das System eine rechnerische Bestimmung vornehmen, dass die Spalte fehlerhaft ist. An einem Punkt nach dem Auftreten mehrerer CE wird der UE in der Spalte erkannt, (das schwarze Quadrat mit einem „U“). Da die MFT-Engine mehrere Fehler in der Spalte beobachtet hat, kann sie bestimmen, dass der UE durch den Spaltenfehler verursacht wird. Somit kann die MFT-Engine für die Bank 650 Spaltenfehler 654 erkennen.
  • Es versteht sich, dass das PPR- oder Cachezeilen-Sparing der Zeile mit dem UE den Spaltenfehler 654 nicht abschwächen wird. In einem Beispiel ist Bank-Sparing in dem System verfügbar, und die MFT-Engine kann Bank-Sparing auslösen. In einem Beispiel kann die MFT-Engine ADDDC auslösen. In einem Beispiel kann die MFT-Engine ein Offline-Setzen von Seiten auslösen. Falls keine Korrekturaktion verfügbar ist, kann die MFT-Engine eine Post-UE-Integritätsbewertung von „nicht vor Ort behebbar“ für den Spaltenfehler 654 erzeugen.
  • 6D stellt ein Beispiel für eine Erkennung gemischter Fehler dar. Bank 670 beinhaltet Zeilendecodierer (DEC) 682, um die Auswahl von Zeilen oder Wortleitungen zu steuern. Die Bank 670 beinhaltet Erfassungsverstärker 684 zum Stufen von Daten für das Speicherarray von Bitzellen 672, Zeilenpuffer 686 zum Puffern der Daten zwischen den Erfassungsverstärkern und der Ausgabehardware, und Spaltenauswahl 688 zum Auswählen von Abschnitten der Zeile, auf die zugegriffen wird.
  • Die Bank 670 stellt eine Speicherbank dar, die viele CE beinhaltet, veranschaulicht durch die grauen Quadrate mit einem „C“ an verschiedenen Bitzellen 672. Es kann beobachtet werden, dass die Bank 670 viele CE in einer einzelnen Spalte (Bitleitung) des Speicherarrays sowie in einer einzelnen Zeile (Wortleitung) des Speicherarrays beinhaltet. Selbst wenn nicht jeder CE gleichzeitig in der Bank 670 vorhanden ist, sagt die Erkennung der verschiedenen CE im Lauf der Zeit einen potenziellen Fehler in der Spalte sowie einen potenziellen Fehler in der Zeile voraus. An einem Punkt nach dem Auftreten mehrerer CE wird der UE in der Spalte erkannt, (das schwarze Quadrat mit einem „U“). Da die MFT-Engine mehrere Fehler in der Spalte und mehrere Fehler in der Zeile beobachtet hat, kann sie keine fehlerhafte Komponente mit hoher Vertrauenswürdigkeit bestimmen, da der UE an dem Schnittpunkt der Zeile und der Spalte auftritt. Somit kann die MFT-Engine für die Bank 670 den UE als gemischten Fehler 674 erkennen.
  • Basierend auf einer Fehleranalyse scheint die Bank 670 eine Fehlerzeile, eine fehlerhafte Spalte und potenziell andere Adressen, die ebenfalls fehlerhaft sind, zu haben. Somit kann die MFT-Engine nicht bestimmen, ob der UE durch den Zeilenfehler oder den Spaltenfehler verursacht wird. Die MFT-Engine kann eine Post-UE-Integritätsbewertung von „Ursache unbekannt“ für die Bank 670 erzeugen.
  • 7A stellt ein Beispiel für eine Adaptive Double Device Data Correction (ADDDC) für ein fehlerbewusstes System dar. System 702 beinhaltet Speicher 710, in dem UE 712 erkannt wurde. Ein Speicherfehleranalysesystem kann bestimmen, dass der UE 712 durch einen spezifischen Fehler verursacht wird, und eine Anwendung von ADDDC auslösen, um den Fehler zu korrigieren, um den Speicher 710 betriebsbereit zu halten.
  • Mit ADDDC nutzen parallele Speicherressourcen Daten gemeinsam, um eine Geräteausfallbedingung zu behandeln. ADDDC kann auf einem Konzept von Lockstep-Datenverteilung oder Lockstep-Konfiguration oder Lockstep-Partnering basieren. Lockstepping bezieht sich traditionell auf das Verteilen von Fehlerkorrekturdaten über mehrere Speicherressourcen, um einen harten Ausfall in einer Speicherressource zu kompensieren, die einen deterministischen Datenzugriff auf die ausgefallene Speicherressource innerhalb des gemeinsamen Verwendens verhindert. Lockstepping ermöglicht die Kompensation eines harten Ausfalls, da die Verteilung der Daten zu einer niedrigeren ECC-Anforderung zur Fehlerkorrektur führt.
  • In dem System 702 stellen Ressource 0 und Ressource 1 parallele Speicherressourcen dar. Als Reaktion auf den UE 712 in Bereich 0, der die gesamte Ressource 0 oder ein Abschnitt davon sein kann, kann das System 702 eine Lockstep-Datenverteilung zwischen Ressource 0 und Ressource 1 ausführen. Die Anwendung der ADDDC kann dem Speicher 710 ermöglichen, weiter zu arbeiten.
  • 7B stellt ein Beispiel für eine Sparing-Korrekturaktion für ein fehlerbewusstes System dar. System 704 beinhaltet Speicher 720, in dem UE 732 in Zeile 730 erkannt wurde. Array 722 stellt die aktiven Zeilen in dem Speicher 720 dar, und die Zeile 730 ist eine der aktiven Zeilen. Spare 724 stellt Speicherzeilen dar, die verfügbar sind, um eine fehlerhafte Zeile in dem Array 722 auszusparen. Typischerweise ist die Anzahl von Sparing-Zeilen um eine oder mehrere Größenordnungen kleiner als die Anzahl von aktiven Zeilen. Zeile 734 ist eine der Zeilen des Spare 724. Als Reaktion auf die Erkennung des UE 732 kann das System 704 die Adresse der Zeile 730 auf die Zeile 734 abbilden.
  • 7C stellt ein Beispiel für eine Korrekturaktion zum Offline-Setzen für ein fehlerbewusstes System dar. System 706 beinhaltet Speicher 750, in dem UE 752 erkannt wurde. CPU 740 ist mit dem Speicher 750 gekoppelt. Die CPU 740 führt OS (Betriebssystem) 742 aus, das die in dem System 706 verfügbaren Speicherseiten verfolgt. Seiten 744 stellen das Verfolgen der Speicherseiten durch das OS 742 dar. Mit Offline-Setzen von Seiten kann als Reaktion auf die Erkennung des UE 752 Seite 746 in dem OS 742 offline gesetzt werden, und dann wird die Seite für Programme in dem System 706 nicht verfügbar sein. In einem Beispiel kann der UE 752 mehreren Seiten entsprechen, und das OS 742 kann mehrere Seiten offline setzen. Offline-Setzen reduziert den verfügbaren Speicher, kann jedoch die Verwendung von Speicherressourcen, die zu einem Systemausfall führen würden, vermeiden.
  • 8 ist ein Flussdiagramm eines Beispiels für einen Prozess zum Ausführen einer fehlerbewussten Abschwächung unkorrigierbarer Fehler. Prozess 800 veranschaulicht einen Fluss, der durch ein System mit einem Speicherfehlerverfolger oder einer Speicherfehleranalyse-Engine ausgeführt werden kann.
  • In einem Beispiel liest bei 802 die Steuerung beim Systemstart Informationen über fehlerhafte Komponenten aus der Speicherung als eine Angabe aktuelle_fehlerhafte_Komponente. In einem Beispiel setzt die Steuerung bei 804 aktueller_MFI auf eine von dem Speicher gelesene MFI-Momentaufnahme. Aktueller_MFI gibt Speicherfehlerindikatoren an, um historische Informationen über Fehler in dem Speicher anzugeben.
  • In einem Beispiel bestimmt die Steuerung bei 806, ob eine RAS-Aktion auf aktuelle_fehlerhafte_Komponente anwendbar ist, unter Bezugnahme auf eine Abschwächungsaktion, um den Speicher im Betrieb zu halten, während der UE in der fehlerhaften Komponente vermieden wird. Falls eine RAS-Aktion erforderlich ist, JA-Verzweigung bei 808, kann die Steuerung die RAS-Aktion implementieren, um bei 810 die fehlerhafte Komponente zu reparieren. Somit kann die Steuerung eine Abschwächung fehlerhafter Komponenten über Systemzyklen hinweg aufrechterhalten.
  • Falls in einem Beispiel keine RAS-Aktionen für die fehlerhaften Komponenten erforderlich sind, NEIN-Verzweigung bei 808, verfolgt bei 812 die Steuerung in einem Beispiel CE, und bewertet aktueller_MFI basierend auf zusätzlichen verfolgten CE-Informationen neu . Die Steuerung wird auch nach dem Anwenden der RAS-Aktion bei 810 das Verfolgen für neue Fehler fortsetzen. Das Speicherverfolgen kann ein Verfolgen für UE beinhalten. Falls kein neues UE-Ereignis erkannt wird, kann die Steuerung bei NEIN-Verzweigung 814 mit dem Verfolgen von CE und der Neubewertung fortfahren.
  • Falls ein neues UE-Ereignis erkannt wird, JA-Verzweigung bei 814, identifiziert die Steuerung bei 816 in einem Beispiel die Ursache des UE, wertet aktuelle_fehlerhafte_Komponente neu aus, erzeugt ein Journalprotokoll und speichert aktuelle_fehlerhafte_Komponente, das Journalprotokoll und aktueller_MFI in der Speicherung. Falls der neue UE kein vor Ort behebbarer Fehler ist, NEIN-Verzweigung bei 818, kann die Steuerung bei 820 die Post-UE-Integritätsbewertung aktualisieren und in der Speicherung speichern, ohne eine neue RAS-Aktion zu implementieren. Die Steuerung kann den Fehler einfach zur späteren Bewertung eines zurückgegebenen Geräts als nicht behebbar markieren.
  • Falls der neue UE ein vor Ort behebbarer Fehler ist, JA-Verzweigung bei 818, bestimmt die Steuerung in einem Beispiel, ob der Fehler zur Laufzeit behoben werden kann. Falls der Fehler zur Laufzeit behebbar ist, JA-Verzweigung bei 822, kann die Steuerung die geeignete spezifische RAS-Aktion implementieren, um den UE wiederherzustellen, die fehlerhafte Komponente bei 810 zu reparieren und bei 812 mit der Fehlerverfolgung und - Bewertung fortzufahren.
  • Falls der neue UE nicht zur Laufzeit behebbar ist, NEIN-Verzweigung bei 822, aktualisiert die Steuerung in einem Beispiel bei 824 eine Post-UE-Integritätsbewertung, die eine durchzuführende RAS-Aktion angibt, und speichert diese in der Speicherung. Das System kann bei 826 den UE während des nächsten Systemstarts reparieren. Das System kann ohne Verwendung der fehlerhaften Speicherkomponente weiter arbeiten, oder das System kann sofort einen Neustart planen, um den UE zu korrigieren.
  • 9 ist ein Blockdiagramm eines Beispiels für ein Speichersubsystem, in dem eine fehlerbewusste Abschwächung unkorrigierbarer Fehler implementiert werden kann. System 900 beinhaltet einen Prozessor und Elemente eines Speichersubsystems in einem Datenverarbeitungsgerät. Das System 900 ist ein Beispiel eines Systems gemäß einem Beispiel für das System 100.
  • In einem Beispiel beinhaltet das System 900 UE-Analysator 990 oder eine andere Speicherfehlerverfolgungs-Engine, um eine Komponente, die eine Ursache eines erkannten UE ist, zu bestimmen. In einem Beispiel ist der UE-Analysator 990 Teil von Fehlersteuerung (CTRL) 928 von Speichersteuerung 920. Die Fehlersteuerung 928 kann eine Speicherfehlerverwaltung für das System 900 bereitstellen. Der UE-Analysator 990 kann erkannte Fehler (FEHLERDATEN) mit Hardwarekonfigurationsinformationen (KONFIG.) korrelieren, um mit hoher Vertrauenswürdigkeit eine Komponente zu bestimmen, die die Ursache des UE ist. Als Reaktion auf die Erkennung des UE (zum Beispiel durch ECC-Logik 956) kann der UE-Analysator 990 eine RAS-Aktion erzeugen, unter der Annahme, dass eine fehlerhafte Komponente mit hoher Vertrauenswürdigkeit bestimmt werden kann. Der UE-Analysator 990 kann auch eine Post-UE-Integritätsbewertung erzeugen, um sie an die Speichersteuerung 920 zu senden, und zur Verwendung über Leistungszyklen von Speichergerät 940 zu speichern.
  • Prozessor 910 stellt eine Verarbeitungseinheit einer Datenverarbeitungsplattform dar, die ein Betriebssystem (OS) und Anwendungen ausführen kann, die gemeinsam als der Host oder der Benutzer des Speichers bezeichnet werden können. Das OS und die Anwendungen führen Operationen aus, die zu Speicherzugriffen führen. Der Prozessor 910 kann einen oder mehrere separate Prozessoren beinhalten. Jeder separate Prozessor kann eine einzelne Verarbeitungseinheit, eine Mehrkernverarbeitungseinheit oder eine Kombination davon beinhalten. Die Verarbeitungseinheit kann ein Primärprozessor, wie zum Beispiel eine CPU (Zentralverarbeitungseinheit), ein Peripherieprozessor, wie zum Beispiel eine GPU (Grafikverarbeitungseinheit), oder eine Kombination davon sein. Die Speicherzugriffe können auch durch Geräte, wie zum Beispiel eine Netzwerksteuerung oder eine Festplattensteuerung, initiiert werden. Solche Geräte können in einigen Systemen in den Prozessor integriert sein, oder über einen Bus (zum Beispiel PCIexpress) oder eine Kombination davon an den Prozessor angeschlossen sein. Das System 900 kann als SOC (System-on-a-Chip) implementiert werden, oder kann mit eigenständigen Komponenten implementiert werden.
  • Eine Bezugnahme auf Speichergeräte kann auf unterschiedliche Speichertypen anwendbar sein. Die Speichergeräte beziehen sich oft auf flüchtige Speichertechnologien. Flüchtiger Speicher ist ein Speicher, dessen Zustand (und daher die darin gespeicherten Daten) unbestimmt ist, wenn eine Energieversorgung zu dem Gerät unterbrochen wird. Nichtflüchtiger Speicher bezieht sich auf einen Speicher, dessen Zustand bestimmt ist, selbst wenn eine Energieversorgung zu dem Gerät unterbrochen wird. Dynamischer flüchtiger Speicher erfordert ein Aktualisieren der in dem Gerät gespeicherten Daten, um den Zustand aufrechtzuerhalten. Ein Beispiel für dynamischen flüchtigen Speicher beinhaltet DRAM (Dynamic Random Access Memory) oder eine Variante davon, wie zum Beispiel Synchronous DRAM (SDRAM). Ein Speichersubsystem wie hierin beschrieben kann mit einer Anzahl von Speichertechnologien kompatibel sein, wie zum Beispiel DDR4 (Double Data Rate Version 4, JESD79-4, ursprünglich veröffentlicht im September 2012 von JEDEC (Joint Electron Device Engineering Council, jetzt JEDEC Solid State Technology Association)), LPDDR4 (Low Power DDR Version 4, JESD209-4, ursprünglich veröffentlicht von JEDEC im August 2014), WIO2 (Wide I/O 2 (WideIO2), JESD229-2, ursprünglich veröffentlicht von JEDEC im August 2014), HBM (High Bandwidth Memory DRAM, JESD235A, ursprünglich veröffentlicht von JEDEC im November 2015), DDR5 (DDR Version 5, ursprünglich veröffentlicht von JEDEC im Juli 2020), LPDDR5 (LPDDR Version 5, JESD209-5, ursprünglich veröffentlicht von JEDEC im Februar 2019), HBM2 (HBM Version 2, JESD235C, ursprünglich veröffentlicht von JEDEC im Januar 2020), HBM3 (HBM Version 3, derzeit erörtert durch JEDEC) oder anderen oder Kombinationen von Speichertechnologien und Technologien basierend auf Ableitungen oder Erweiterungen solcher Spezifikationen.
  • Die Speichersteuerung 920 stellt eine oder mehrere Speichersteuerungsschaltungen oder -Geräte für das System 900 dar. Die Speichersteuerung 920 stellt eine Steuerlogik dar, die Speicherzugriffsbefehle als Reaktion auf die Ausführung von Operationen durch den Prozessor 910 erzeugt. Die Speichersteuerung 920 greift auf ein oder mehrere Speichergeräte 940 zu. Die Speichergeräte 940 können DRAM-Geräte gemäß jeglicher der oben genannten sein. In einem Beispiel werden die Speichergeräte 940 als unterschiedliche Kanäle organisiert und verwaltet, wobei jeder Kanal mit Bussen und Signalleitungen gekoppelt ist, die parallel mit mehreren Speichergeräten gekoppelt sind. Jeder Kanal ist unabhängig betreibbar. Somit wird auf jeden Kanal unabhängig zugegriffen, und er wird unabhängig gesteuert, und die Zeitsteuerung, die Datenübertragung, der Befehls- und Adressaustausch und andere Operationen sind für jeden Kanal separat. Eine Kopplung kann sich auf eine elektrische Kopplung, eine kommunikative Kopplung, eine physikalische Kopplung oder eine Kombination aus diesen beziehen. Eine physikalische Kopplung kann einen direkten Kontakt beinhalten. Eine elektrische Kopplung beinhaltet eine Schnittstelle oder Zwischenverbindung, die einen elektrischen Fluss zwischen Komponenten oder eine Signalisierung zwischen Komponenten oder beides erlaubt. Eine kommunikative Kopplung beinhaltet Verbindungen, einschließlich drahtgebundener oder drahtloser Verbindungen, die es Komponenten ermöglichen, Daten auszutauschen.
  • In einem Beispiel werden Einstellungen für jeden Kanal durch separate Modusregister oder andere Registereinstellungen gesteuert. In einem Beispiel verwaltet jede Speichersteuerung 920 einen separaten Speicherkanal, obwohl das System 900 so konfiguriert sein kann, dass es mehrere Kanäle aufweist, die durch eine einzelne Steuerung verwaltet werden, oder dass es mehrere Steuerungen auf einem einzelnen Kanal aufweist. In einem Beispiel ist die Speichersteuereinheit 920 Teil des Host-Prozessors 910, wie zum Beispiel Logik, die auf demselben Chip implementiert ist, oder in demselben Package-Raum implementiert ist wie der Prozessor.
  • Die Speichersteuerung 920 beinhaltet I/O-Schnittstellenlogik 922 zum Koppeln mit einem Speicherbus, wie zum Beispiel einem Speicherkanal, wie oben erwähnt. Die I/O-Schnittstellenlogik 922 (sowie I/O-Schnittstellenlogik 942 des Speichergeräts 940) kann Pins, Pads, Verbinder, Signalleitungen, Leiterbahnen oder Drähte oder andere Hardware zum Verbinden der Geräte oder eine Kombination von diesen beinhalten. Die I/O-Schnittstellenlogik 922 kann eine Hardwareschnittstelle beinhalten. Wie veranschaulicht, beinhaltet die I/O-Schnittstellenlogik 922 mindestens Treiber/Transceiver für Signalleitungen. Üblicherweise sind Drähte innerhalb einer IC-Schnittstelle über ein Pad, einen Pin oder einen Verbinder mit Schnittstellensignalleitungen oder Leiterbahnen oder anderen Drähten zwischen Geräten gekoppelt. Die I/O-Schnittstellenlogik 922 kann Treiber, Empfänger, Transceiver oder Endabschlüsse oder andere Schaltungen oder Kombinationen von Schaltungen zum Austauschen von Signalen auf den Signalleitungen zwischen den Geräten beinhalten. Das Austauschen von Signalen beinhaltet Übertragen und/oder Empfangen. Obwohl eine Kopplung der I/O 922 von der Speichersteuerung 920 mit der I/O 942 des Speichergeräts 940 gezeigt wird, versteht es sich, dass in einer Implementierung des Systems 900, bei der parallel auf Gruppen von Speichergeräten 940 zugegriffen wird, mehrere Speichergeräte I/O-Schnittstellen zu derselben Schnittstelle der Speichersteuerung 920 beinhalten können. In einer Implementierung des Systems 900, das ein oder mehrere Speichermodule 970 beinhaltet, kann die I/O 942 eine Schnittstellenhardware des Speichermoduls zusätzlich zu der Schnittstellenhardware in dem Speichergerät selbst beinhalten. Andere Speichersteuerungen 920 beinhalten separate Schnittstellen zu anderen Speichergeräten 940.
  • Der Bus zwischen der Speichersteuerung 920 und den Speichergeräten 940 kann als mehrere Signalleitungen implementiert sein, die die Speichersteuerung 920 mit den Speichergeräten 940 koppeln. Der Bus kann typischerweise mindestens einen Takt (CLK) 932, Befehl/Adresse (CMD) 934 und Schreibdaten (DQ) und Lesedaten (DQ) 936 und Null oder mehr andere Signalleitungen 938 beinhalten. In einem Beispiel kann ein Bus oder eine Verbindung zwischen der Speichersteuerung 920 und dem Speicher als ein Speicherbus bezeichnet werden. In einem Beispiel ist der Speicherbus ein Mehrpunktbus. Die Signalleitungen für CMD können als „C/A-Bus“ (oder ADD/CMD-Bus oder mit einer anderen Bezeichnung, die eine Übertragung von Befehlen (C oder CMD) und Adress- (A oder ADD) -Informationen angibt) bezeichnet werden, und die Signalleitungen für Schreib- und Lese-DQ können als „Datenbus“ bezeichnet werden. In einem Beispiel weisen unabhängige Kanäle unterschiedliche Taktsignale, C/A-Busse, Datenbusse und andere Signalleitungen auf. Somit kann das System 900 so betrachtet werden, dass es in dem Sinne, dass ein unabhängiger Schnittstellenpfad als ein separater Bus betrachtet werden kann, mehrere „Busse“ aufweist. Es versteht sich, dass ein Bus zusätzlich zu den explizit gezeigten Leitungen Strobe-Signalisierungsleitungen und/oder Warnleitungen und/oder Hilfsleitungen und/oder andere Signalleitungen oder eine Kombination davon beinhalten kann. Es versteht sich auch, dass serielle Bustechnologien zur Verbindung zwischen der Speichersteuerung 920 und den Speichergeräten 940 verwendet werden können. Ein Beispiel für eine serielle Bustechnologie ist die 8B10B-Codierung und -Übertragung von Hochgeschwindigkeitsdaten mit eingebettetem Takt über ein einzelnes Differenzialpaar von Signalen in jeder Richtung. In einem Beispiel stellt das CMD 934 Signalleitungen dar, die parallel mit mehreren Speichergeräten gemeinsam genutzt werden. In einem Beispiel nutzen mehrere Speichergeräte die Codierungsbefehlssignalleitungen des CMD 934 gemeinsam, und weisen jeweils eine separate Chipauswahl (Cs_n) -Signalleitung auf, um individuelle Speichergeräte auszuwählen.
  • Es versteht sich, dass in dem Beispiel für das System 900 der Bus zwischen der Speichersteuerung 920 und den Speichergeräten 940 einen untergeordneten Befehlsbus CMD 934 und einen untergeordneten Bus zum Transportieren der Schreib- und Lesedaten, DQ 936, beinhaltet. In einem Beispiel kann der Datenbus bidirektionale Leitungen für Lesedaten und für Schreib-/Befehlsdaten beinhalten. In einem anderen Beispiel kann der untergeordnete Bus DQ 936 unidirektionale Schreibsignalleitungen zum Schreiben von Daten von dem Host zu dem Speicher beinhalten, und kann unidirektionale Leitungen zum Lesen von Daten von dem Speicher zu dem Host beinhalten. Gemäß der gewählten Speichertechnologie und der gewählten Systemgestaltung können die anderen Signalleitungen 938 einen Bus oder Unterbus begleiten, wie zum Beispiel die Strobeleitungen DQS. Basierend auf einer Gestaltung des Systems 900 oder einer Implementierung, falls eine Gestaltung mehrere Implementierungen unterstützt, kann der Datenbus mehr oder weniger Bandbreite pro Speichergerät 940 aufweisen. Zum Beispiel kann der Datenbus Speichergeräte unterstützen, die entweder eine x4-Schnittstelle, eine x8-Schnittstelle, eine x16-Schnittstelle oder eine andere Schnittstelle aufweisen. Die Konvention „xW“, wobei W eine ganze Zahl ist, die sich auf eine Schnittstellengröße oder Breite der Schnittstelle des Speichergeräts 940 bezieht, stellt eine Anzahl von Signalleitungen zum Austauschen von Daten mit der Speichersteuerung 920 dar. Die Schnittstellengröße der Speichergeräte ist ein steuernder Faktor dahingehend, wie viele Speichergeräte gleichzeitig pro Kanal in dem System 900 verwendet werden können, oder parallel mit denselben Signalleitungen gekoppelt werden können. In einem Beispiel können Speichergeräte mit hoher Bandbreite, breite Schnittstellengeräte oder gestapelte Speicherkonfigurationen oder Kombinationen davon breitere Schnittstellen ermöglichen, wie zum Beispiel eine x128-Schnittstelle, eine x256-Schnittstelle, eine x512-Schnittstelle, eine x1024-Schnittstelle oder eine andere Datenbusschnittstellenbreite.
  • In einem Beispiel tauschen die Speichergeräte 940 und die Speichersteuerung 920 Daten über den Datenbus in einem Burst oder einer Sequenz von aufeinander folgenden Datenübertragungen aus. Der Burst entspricht einer Anzahl von Übertragungszyklen, die mit einer Busfrequenz in Beziehung steht. In einem Beispiel kann der Übertragungszyklus ein ganzer Taktzyklus für Übertragungen sein, die auf demselben Takt oder an derselben Strobe-Signalflanke (zum Beispiel an der aufsteigenden Flanke) auftreten. In einem Beispiel ist jeder Taktzyklus, der sich auf einen Zyklus des Systemtakts bezieht, in mehrere Einheitsintervalle (UI) getrennt, wobei jedes UI ein Übertragungszyklus ist. Zum Beispiel lösen Übertragungen mit doppelter Datenrate auf beiden Flanken des Taktsignals (zum Beispiel steigend und fallend) aus. Ein Burst kann eine konfigurierte Anzahl von UI lang sein, was eine in einem Register gespeicherte Konfiguration sein kann, oder er kann spontan ausgelöst werden. Zum Beispiel kann eine Sequenz von acht aufeinander folgenden Übertragungsperioden als eine Burst-Länge acht (BL8) angesehen werden, und jedes Speichergerät 940 kann Daten in jedem UI übertragen. Somit kann ein x8-Speichergerät, das mit BL8 arbeitet, 64 Datenbits übertragen (8 Datensignalleitungen mal 8 Datenbits, die pro Leitung über den Burst übertragen werden). Es versteht sich, dass dieses einfache Beispiel lediglich eine Veranschaulichung ist und nicht einschränkend ist.
  • Die Speichergeräte 940 stellen Speicherressourcen für das System 900 dar. In einem Beispiel ist jedes Speichergerät 940 ein separater Speicherchip. In einem Beispiel kann jedes Speichergerät 940 mit mehreren (zum Beispiel 2) Kanälen pro Gerät oder Chip eine Schnittstelle bilden. Jedes Speichergerät 940 beinhaltet die I/O-Schnittstellenlogik 942, die eine durch die Implementierung des Geräts bestimmte Bandbreite aufweist (zum Beispiel x16 oder x8 oder eine andere Schnittstellenbandbreite). Die I/O-Schnittstellenlogik 942 ermöglicht den Speichergeräten mit der Speichersteuerung 920 eine Schnittstelle zu bilden. Die I/O-Schnittstellenlogik 942 kann eine Hardwareschnittstelle beinhalten, und kann der I/O 922 der Speichersteuerung entsprechen, allerdings an dem Ende des Speichergeräts. In einem Beispiel sind mehrere Speichergeräte 940 parallel mit denselben Befehls- und Datenbussen verbunden. In einem anderen Beispiel sind mehrere Speichergeräte 940 parallel mit demselben Befehlsbus verbunden, und sind mit unterschiedlichen Datenbussen verbunden. Das System 900 kann zum Beispiel mit mehreren parallel geschalteten Speichergeräten 940 konfiguriert sein, wobei jedes Speichergerät auf einen Befehl reagiert, und auf jeweilige interne Speicherressourcen 960 zugreift. Für eine Schreiboperation kann ein individuelles Speichergerät 940 einen Abschnitt des Gesamtdatenworts schreiben, und für eine Leseoperation kann ein individuelles Speichergerät 940 einen Abschnitt des Gesamtdatenworts abrufen. Die restlichen Bits des Worts werden parallel durch andere Speichergeräte bereitgestellt oder empfangen.
  • In einem Beispiel sind die Speichergeräte 940 direkt auf einer Hauptplatine oder Host-Systemplattform (zum Beispiel einer PCB (Leiterplatte) oder einem Substrat, auf dem der Prozessor 910 angeordnet ist) eines Datenverarbeitungsgeräts angeordnet. In einem Beispiel können die Speichergeräte 940 in Speichermodulen 970 organisiert sein. In einem Beispiel stellen die Speichermodule 970 Dual Inline Memory Modules (DIMM) dar. In einem Beispiel stellen die Speichermodule 970 eine andere Organisation mehrerer Speichergeräte dar, um mindestens einen Teil einer Zugriffs- oder Steuerungsschaltung gemeinsam zu nutzen, die ein separater Schaltkreis, ein separates Gerät oder eine separate Platine von der Host-Systemplattform sein kann. Die Speichermodule 970 können mehrere Speichergeräte 940 beinhalten, und die Speichermodule können Unterstützung für mehrere separate Kanäle zu den in ihnen angeordneten enthaltenen Speichergeräten beinhalten. In einem anderen Beispiel können die Speichergeräte 940 in dasselbe Package wie die Speichersteuerung 920 integriert sein, wie zum Beispiel durch Techniken wie ein Mehrchipmodul (MCM), eine Package-auf-Package-Technik, eine Silizium-Durchkontaktierung (Through-Silicon-Via - TSV) oder andere Techniken oder Kombinationen davon. In ähnlicher Weise können in einem Beispiel mehrere Speichergeräte 940 in Speichermodule 970 integriert sein, die ihrerseits in dasselbe Package wie die Speichersteuerung 920 integriert sein können. Es versteht sich, dass die Speichersteuerung 920 für diese und andere Implementierungen ein Teil des Host-Prozessors 910 sein kann.
  • Die Speichergeräte 940 beinhalten jeweils ein oder mehrere Speicherarrays 960. Das Speicherarray 960 stellt adressierbare Speicherorte oder Speicherungsorte für Daten dar. In der Regel wird das Speicherarray 960 als Datenzeilen verwaltet, auf die über Wortleitungs (Zeilen) und Bitleitungs (einzelne Bits innerhalb einer Zeile) -Steuerung zugegriffen wird. Das Speicherarray 960 kann als separate Kanäle, Ränge und Bänke des Speichers organisiert sein. Die Kanäle können sich auf unabhängige Steuerpfade zu Speicherungsorten innerhalb der Speichergeräte 940 beziehen. Die Ränge können sich auf gemeinsame Orte über mehrere parallele Speichergeräte (zum Beispiel gleiche Zeilenadressen innerhalb unterschiedlicher Geräte) hinweg beziehen. Die Bänke können sich auf Subarrays von Speicherorten innerhalb eines Speichergeräts 940 beziehen. In einem Beispiel sind Speicherbänke in Unterbänke mit mindestens einem Abschnitt der gemeinsam genutzten Schaltung (zum Beispiel Treiber, Signalleitungen, Steuerlogik) für die Unterbänke unterteilt, was ein separates Adressieren und Zugreifen ermöglicht. Es versteht sich, dass sich Kanäle, Ränge, Bänke, Unterbänke, Bankgruppen oder andere Organisationen der Speicherorte und Kombinationen der Organisationen in ihrer Anwendung auf physikalische Ressourcen überlagern können. Zum Beispiel kann auf dieselben physikalischen Speicherorte über einen spezifischen Kanal als eine spezifische Bank, die auch zu einem Rang gehören kann, zugegriffen werden. Somit ist die Organisation von Speicherressourcen auf eine einschließende und nicht ausschließende Weise zu verstehen.
  • In einem Beispiel beinhalten die Speichergeräte 940 ein oder mehrere Register 944. Das Register 944 stellt ein oder mehrere Speicherungsgeräte oder einen oder mehrere Speicherungsorte dar, die eine Konfiguration oder Einstellungen für den Betrieb des Speichergeräts bereitstellen. In einem Beispiel kann das Register 944 einen Speicherungsort für das Speichergerät 940 bereitstellen, um Daten für den Zugriff durch die Speichersteuerung 920 als Teil einer Steuer- oder Verwaltungsoperation zu speichern. In einem Beispiel beinhaltet das Register 944 ein oder mehrere Modusregister. In einem Beispiel beinhaltet das Register 944 ein oder mehrere Mehrzweckregister. Die Konfiguration von Orten innerhalb des Registers 944 kann das Speichergerät 940 so konfigurieren, dass es in unterschiedlichen „Modi“ arbeitet, wobei Befehlsinformationen unterschiedliche Operationen innerhalb des Speichergeräts 940 basierend auf dem Modus auslösen können. Zusätzlich oder alternativ können unterschiedliche Modi abhängig von dem Modus auch unterschiedliche Operationen von Adressinformations- oder anderen Signalleitungen auslösen. Die Einstellungen des Registers 944 können eine Konfiguration für I/O-Einstellungen (zum Beispiel eine Zeitsteuerung, Terminierung oder ODT (On-Die-Termination) 946, eine Treiberkonfiguration oder andere I/O-Einstellungen) angeben.
  • In einem Beispiel beinhaltet das Speichergerät 940 die ODT 946 als Teil der Schnittstellenhardware, die mit der I/O 942 verbunden ist. Die ODT 946 kann so konfiguriert sein, wie es vorstehend erwähnt ist, und sie kann Einstellungen für die Impedanz bereitstellen, die für spezifizierte Signalleitungen auf die Schnittstelle angewendet werden sollen. In einem Beispiel wird die ODT 946 auf DQ-Signalleitungen angewendet. In einem Beispiel wird die ODT 946 auf Befehlssignalleitungen angewendet. In einem Beispiel wird die ODT 946 auf Adresssignalleitungen angewendet. In einem Beispiel kann die ODT 946 auf jegliche Kombination der Vorhergehenden angewendet werden. Die ODT-Einstellungen können basierend darauf geändert werden, ob ein Speichergerät ein ausgewähltes Ziel einer Zugriffsoperation oder ein Nicht-Zielgerät ist. Die Einstellungen der ODT 946 können die Zeitsteuerung und Reflexionen der Signalisierung auf den terminierten Leitungen beeinflussen. Eine sorgfältige Steuerung über die ODT 946 kann einen Betrieb mit höherer Geschwindigkeit und mit einer verbesserten Übereinstimmung der angelegten Impedanz und Last ermöglichen. Die ODT 946 kann auf spezielle Signalleitungen der I/O-Schnittstelle 942, 922 angewendet werden (zum Beispiel eine ODT für DQ-Leitungen oder eine ODT für CA-Leitungen) und wird nicht notwendigerweise auf alle Signalleitungen angewendet.
  • Das Speichergerät 940 beinhaltet Steuerung 950, die eine Steuerlogik innerhalb des Speichergeräts zum Steuern von internen Operationen innerhalb des Speichergeräts darstellt. Zum Beispiel decodiert die Steuerung 950 durch die Speichersteuerung 920 gesendete Befehle, und erzeugt interne Operationen, um die Befehle auszuführen oder zu erfüllen. Die Steuerung 950 kann als eine interne Steuerung bezeichnet werden, und ist von der Speichersteuerung 920 des Hosts getrennt. Die Steuerung 950 kann basierend auf dem Register 944 bestimmen, welcher Modus ausgewählt wird, und die interne Ausführung von Operationen für den Zugriff auf die Speicherressourcen 960 oder andere Operationen basierend auf dem ausgewählten Modus konfigurieren. Die Steuerung 950 erzeugt Steuersignale zum Steuern des Leitens von Bits innerhalb des Speichergeräts 940, um eine passende Schnittstelle für den ausgewählten Modus bereitzustellen, und einen Befehl an die passenden Speicherorte oder -adressen zu leiten. Die Steuerung 950 beinhaltet Befehlslogik 952, die eine auf Befehls- und Adresssignalleitungen empfangene Befehlscodierung decodieren kann. Somit kann die Befehlslogik 952 ein Befehlsdecodierer sein oder diesen beinhalten. Mit der Befehlslogik 952 kann das Speichergerät Befehle identifizieren, und interne Operationen zum Ausführen von angeforderten Befehlen erzeugen.
  • Unter erneuter Bezugnahme auf die Speichersteuerung 920 beinhaltet die Speichersteuerung 920 Befehls (CMD) -Logik 924, die eine Logik oder Schaltung zum Erzeugen von Befehlen darstellt, die an die Speichergeräte 940 gesendet werden sollen. Die Erzeugung der Befehle kann sich auf den Befehl vor dem Planen oder die Vorbereitung von in einer Warteschlange eingereihten Befehlen beziehen, die bereit sind, gesendet zu werden. Im Allgemeinen beinhaltet die Signalisierung in Speichersubsystemen Adressinformationen innerhalb des Befehls oder diesen begleitend, um einen oder mehrere Speicherorte anzugeben oder auszuwählen, an denen die Speichergeräte den Befehl ausführen sollen. Als Reaktion auf das Planen von Transaktionen für das Speichergerät 940 kann die Speichersteuerung 920 Befehle über die I/O 922 ausgeben, um das Speichergerät 940 zu veranlassen, die Befehle auszuführen. In einem Beispiel empfängt und decodiert die Steuerung 950 des Speichergeräts 940 über die I/O 942 von der Speichersteuerung 920 empfangene Befehls- und Adressinformationen. Basierend auf den empfangenen Befehls- und Adressinformationen kann die Steuerung 950 die Zeitsteuerung von Operationen der Logik und der Schaltung innerhalb des Speichergeräts 940 steuern, um die Befehle auszuführen. Die Steuerung 950 ist für die Einhaltung von Standards oder Spezifikationen innerhalb des Speichergeräts 940, wie zum Beispiel Zeitsteuerungs- und Signalisierungsanforderungen, verantwortlich. Die Speichersteuerung 920 kann durch eine Zugriffsplanung und -steuerung eine Einhaltung von Standards oder Spezifikationen implementieren.
  • Die Speichersteuerung 920 beinhaltet Planer 930, der eine Logik oder Schaltung zum Erzeugen und Ordnen von Transaktionen darstellt, die an das Speichergerät 940 gesendet werden sollen. Aus einer Perspektive lässt sich sagen, dass die Hauptfunktion der Speichersteuerung 920 darin besteht, Speicherzugriffs- und andere Transaktionen an das Speichergerät 940 zu planen. Ein solches Planen kann ein Erzeugen der Transaktionen selbst beinhalten, um die Anforderungen von Daten durch den Prozessor 910 zu implementieren, und die Integrität der Daten aufrechtzuerhalten (wie zum Beispiel mit Befehlen, die sich auf ein Aktualisieren beziehen). Die Transaktionen können einen oder mehrere Befehle beinhalten, und zum Übertragen von Befehlen oder Daten oder beiden über einen oder mehrere Zeitsteuerzyklen, wie zum Beispiel Taktzyklen oder Einheitsintervalle, führen. Die Transaktionen können zum Zugriff, wie zum Beispiel als Lese- oder Schreib- oder verwandte Befehle oder eine Kombination davon, dienen, und andere Transaktionen können Speicherverwaltungsbefehle für eine Konfiguration, Einstellungen, eine Datenintegrität oder andere Befehle oder eine Kombination davon beinhalten.
  • Die Speichersteuerung 920 beinhaltet in der Regel eine Logik, wie zum Beispiel den Planer 930, um eine Auswahl und ein Ordnen von Transaktionen zu ermöglichen, um die Leistungsfähigkeit des Systems 900 zu verbessern. Somit kann die Speichersteuerung 920 wählen, welche der ausstehenden Transaktionen in welcher Reihenfolge an das Speichergerät 940 gesendet werden sollen, was in der Regel mit einer weitaus komplexeren Logik als einem einfachen First-In-First-Out-Algorithmus erreicht wird. Die Speichersteuerung 920 verwaltet die Übertragung der Transaktionen an das Speichergerät 940, und verwaltet die mit der Transaktion verbundene Zeitsteuerung. In einem Beispiel weisen Transaktionen eine deterministische Zeitsteuerung auf, die durch die Speichersteuerung 920 verwaltet werden kann, und beim Bestimmen, wie die Transaktionen mit dem Planer 930 geplant werden sollen, verwendet werden kann.
  • In einem Beispiel weist die Speichersteuerung 920 Aktualisierungs (REF) -Logik 926 auf. Die Aktualisierungslogik 926 kann für Speicherressourcen verwendet werden, die flüchtig sind und aktualisiert werden müssen, um einen deterministischen Zustand beizubehalten. In einem Beispiel gibt die Aktualisierungslogik 926 einen Ort für die Aktualisierung und einen auszuführenden Aktualisierungstyp an. Die Aktualisierungslogik 926 kann eine Selbstaktualisierung innerhalb des Speichergeräts 940 auslösen, oder durch ein Senden von Aktualisierungsbefehlen externe Aktualisierungen ausführen, die als Autoaktualisierungsbefehle bezeichnet werden können, oder eine Kombination davon ausführen. In einem Beispiel beinhaltet die Steuerung 950 innerhalb des Speichergeräts 940 Aktualisierungslogik 954, um eine Aktualisierung innerhalb des Speichergeräts 940 anzuwenden. In einem Beispiel erzeugt die Aktualisierungslogik 954 interne Operationen, um eine Aktualisierung gemäß einer externen Aktualisierung, die von der Speichersteuerung 920 empfangen wird, auszuführen. Die Aktualisierungslogik 954 kann bestimmen, ob eine Aktualisierung an das Speichergerät 940 gerichtet ist, und welche Speicherressourcen 960 als Reaktion auf den Befehl aktualisiert werden sollen.
  • 10 ist ein Blockdiagramm eines Beispiels für ein Datenverarbeitungssystem, in dem eine fehlerbewusste Abschwächung unkorrigierbarer Fehler implementiert werden kann. System 1000 stellt ein Datenverarbeitungsgerät gemäß jeglichem Beispiel hierin dar, und kann ein Laptop-Computer, ein Desktop-Computer, ein Tablet-Computer, ein Server, ein Spiel- oder Unterhaltungssteuersystem, ein eingebettetes Datenverarbeitungsgerät oder ein anderes elektronisches Gerät sein.
  • In einem Beispiel beinhaltet das System 1000 UE-Analysator 1090 oder eine andere Speicherfehlerverfolgungs-Engine, um eine Komponente, die eine Ursache eines erkannten UE ist, zu bestimmen. Der UE-Analysator 1090 kann erkannte Fehler mit Hardwarekonfigurationsinformationen korrelieren, um mit hoher Vertrauenswürdigkeit eine Komponente, die die Ursache des UE ist, zu bestimmen. In einem Beispiel beinhaltet Speichersubsystem 1020 ECC 1038, um eine Fehlerprüfung und -Korrektur an Daten von Speicher 1030 auszuführen. In einem Beispiel kann die ECC 1038 Fehler als Teil einer Scrubbing-Operation erkennen, die korrigierbare Fehler oder einen unkorrigierbaren Fehler erkennen kann. Als Reaktion auf die Erkennung des UE kann der UE-Analysator 1090 eine RAS-Aktion erzeugen, unter der Annahme, dass eine fehlerhafte Komponente mit hoher Vertrauenswürdigkeit bestimmt werden kann. Der UE-Analysator 1090 kann auch eine Post-UE-Integritätsbewertung erzeugen, um sie an Speichersteuerung 1022 zu senden, und zur Verwendung über Leistungszyklen des Speichergeräts 1030 hinweg zu speichern.
  • Das System 1000 enthält Prozessor 1010, der jeglichen Typ von Mikroprozessor, Zentralverarbeitungseinheit (CPU), Grafikverarbeitungseinheit (GPU), Verarbeitungskern oder andere Verarbeitungshardware oder eine Kombination davon beinhalten kann, um die Verarbeitung oder Ausführung von Anweisungen für das System 1000 bereitzustellen. Der Prozessor 1010 kann ein Host-Prozessorgerät sein. Der Prozessor 1010 steuert den Gesamtbetrieb des Systems 1000, und kann ein oder mehrere programmierbare Universal- oder Spezialzweck-Mikroprozessoren, digitale Signalprozessoren (DSP), programmierbare Steuerungen, Application Specific Integrated Circuits (ASIC), Programmable Logic Devices (PLD) oder eine Kombination solcher Geräte sein oder diese beinhalten.
  • Das System 1000 beinhaltet Systemstart/Konfig 1016, das eine Speicherung zum Speichern von Systemstart-Code (zum Beispiel Basic Input/Output System (BIOS)), Konfigurationseinstellungen, Sicherheitshardware (zum Beispiel Trusted Platform Module (TPM)) oder andere Hardware auf Systemebene darstellt, die außerhalb eines Host-OS arbeitet. Das Systemstart/Konfig 1016 kann ein nichtflüchtiges Speicherungsgerät, wie zum Beispiel Read Only Memory (ROM), Flash-Speicher oder andere Speichergeräte beinhalten.
  • In einem Beispiel beinhaltet das System 1000 mit dem Prozessor 1010 gekoppelte Schnittstelle 1012, die eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systemkomponenten darstellen kann, die Verbindungen mit höherer Bandbreite benötigen, wie zum Beispiel das Speichersubsystem 1020 oder Grafikschnittstellenkomponenten 1040. Die Schnittstelle 1012 stellt eine Schnittstellenschaltung dar, die eine eigenständige Komponente sein kann, oder auf einem Prozessorchip integriert sein kann. Die Schnittstelle 1012 kann als Schaltung in den Prozessorchip integriert sein, oder als eine Komponente in ein System-on-a-Chip integriert sein. Wo vorhanden, stellt die Grafikschnittstelle 1040 eine Schnittstelle mit Grafikkomponenten her, um einem Benutzer des Systems 1000 eine visuelle Anzeige bereitzustellen. Die Grafikschnittstelle 1040 kann eine eigenständige Komponente sein, oder in den Prozessorchip oder das System-on-a-Chip integriert sein. In einem Beispiel kann die Grafikschnittstelle 1040 eine High-Definition (HD) -Anzeige oder eine Ultra-High-Definition (UHD) -Anzeige ansteuern, die einem Benutzer eine Ausgabe bereitstellt. In einem Beispiel kann die Anzeige eine Touch-Screen-Anzeige beinhalten. In einem Beispiel erzeugt die Grafikschnittstelle 1040 eine Anzeige basierend auf in dem Speicher 1030 gespeicherten Daten, oder basierend auf durch den Prozessor 1010 ausgeführten Operationen oder beidem.
  • Das Speichersubsystem 1020 stellt den Hauptspeicher des Systems 1000 dar, und stellt eine Speicherung für Code, der durch den Prozessor 1010 ausgeführt werden soll, oder Datenwerte, die beim Ausführen einer Routine verwendet werden sollen, bereit. Das Speichersubsystem 1020 kann eine oder mehrere Varianten von Random Access Memory (RAM), wie zum Beispiel DRAM, 3DXP (Three-Dimensional Crosspoint) oder andere Speichergeräte oder eine Kombination solcher Geräte beinhalten. Der Speicher 1030 speichert und hostet unter anderem Betriebssystem (OS) 1032, um eine Softwareplattform zur Ausführung von Anweisungen in dem System 1000 bereitzustellen. Zusätzlich können Anwendungen 1034 auf der Software-Plattform des OS 1032 von dem Speicher 1030 ausgeführt werden. Die Anwendungen 1034 stellen Programme dar, die ihre eigene Betriebslogik haben, um eine Ausführung einer oder mehrerer Funktionen auszuführen. Prozesse 1036 stellen Agenten oder Routinen dar, die dem OS 1032 oder einer oder mehreren Anwendungen 1034 oder einer Kombination davon Hilfsfunktionen bereitstellen. Das OS 1032, die Anwendungen 1034 und die Prozesse 1036 stellen Softwarelogik bereit, um Funktionen für das System 1000 bereitzustellen. In einem Beispiel beinhaltet das Speichersubsystem 1020 die Speichersteuerung 1022, die eine Speichersteuerung zum Erzeugen und Ausgeben von Befehlen an den Speicher 1030 ist. Es versteht sich, dass die Speichersteuerung 1022 ein physikalischer Teil des Prozessors 1010 oder ein physikalischer Teil der Schnittstelle 1012 sein könnte. Zum Beispiel kann die Speichersteuerung 1022 eine integrierte Speichersteuerung sein, die in eine Schaltung mit dem Prozessor 1010 integriert ist, wie zum Beispiel in den Prozessorchip oder in ein System-on-a-Chip integriert.
  • Obwohl nicht speziell veranschaulicht, versteht es sich, dass das System 1000 einen oder mehrere Busse oder Bussysteme zwischen Geräten beinhalten kann, wie zum Beispiel einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere. Busse oder andere Signalleitungen können Komponenten kommunizierend oder elektrisch miteinander koppeln, oder die Komponenten sowohl kommunizierend als auch elektrisch koppeln. Busse können physikalische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder andere Schaltungen oder eine Kombination davon beinhalten. Busse können zum Beispiel einen Systembus und/oder einen Peripheral Component Interconnect (PCI) -Bus und/oder einen Hyper Transport oder Industriestandard-Architektur (ISA) -Bus und/oder einen Small Computer System Interface (SCSI) -Bus und/oder einen Universal Serial Bus (USB) oder einen anderen Bus oder eine Kombination beinhalten.
  • In einem Beispiel beinhaltet das System 1000 Schnittstelle 1014, die mit der Schnittstelle 1012 gekoppelt sein kann. Die Schnittstelle 1014 kann eine Schnittstelle mit niedrigerer Geschwindigkeit als die Schnittstelle 1012 sein. In einem Beispiel stellt die Schnittstelle 1014 eine Schnittstellenschaltung dar, die eigenständige Komponenten und integrierte Schaltungen beinhalten kann. In einem Beispiel sind mehrere Benutzerschnittstellenkomponenten oder Peripheriekomponenten oder beides mit der Schnittstelle 1014 gekoppelt. Netzwerkschnittstelle 1050 stellt dem System 1000 die Fähigkeit bereit, mit entfernt angeordneten Geräten (zum Beispiel Servern oder anderen Datenverarbeitungsgeräten) über ein oder mehrere Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 1050 kann einen Ethernet-Adapter, drahtlose Verbindungskomponenten, zellulare Netzwerkverbindungskomponenten, USB (Universal Serial Bus) oder andere drahtgebundene oder drahtlose standardbasierte oder proprietäre Schnittstellen beinhalten. Die Netzwerkschnittstelle 1050 kann Daten mit einem entfernt angeordneten Gerät austauschen, was das Senden von in Speicher gespeicherten Daten oder das Empfangen von in Speicher zu speichernden Daten beinhalten kann.
  • In einem Beispiel beinhaltet das System 1000 eine oder mehrere Eingabe/Ausgabe (I/O) -Schnittstellen 1060. Die I/O-Schnittstelle 1060 kann eine oder mehrere Schnittstellenkomponenten beinhalten, durch die ein Benutzer mit dem System 1000 interagiert (zum Beispiel Audio, alphanumerisch, haptisch/berührend oder eine andere Schnittstelle). Peripherieschnittstelle 1070 kann jegliche Hardware-Schnittstelle beinhalten, die oben nicht speziell erwähnt ist. Peripheriegeräte beziehen sich allgemein auf Geräte, die sich abhängig mit dem System 1000 verbinden. Eine abhängige Verbindung ist eine Verbindung, bei der das System 1000 die Software-Plattform oder Hardware-Plattform oder beides bereitstellt, auf der die Operation ausgeführt wird, und mit der ein Benutzer interagiert.
  • In einem Beispiel beinhaltet das System 1000 Speicherungssubsystem 1080 zum Speichern von Daten auf eine nichtflüchtige Weise. In einem Beispiel können sich in bestimmten Systemimplementierungen mindestens bestimmte Komponenten der Speicherung 1080 mit Komponenten des Speichersubsystems 1020 überlappen. Das Speicherungssubsystem 1080 beinhaltet ein oder mehrere Speicherungsgeräte 1084, die jegliches herkömmliche Medium zum Speichern von großen Mengen von Daten auf eine nichtflüchtige Weise sein oder dieses beinhalten können, wie zum Beispiel einen oder mehrere magnetische, Festkörper-, NAND-, 3DXP- oder optisch basierte Datenträger oder eine Kombination davon. Die Speicherung 1084 hält Code oder Anweisungen und Daten 1086 in einem persistenten Zustand (das heißt der Wert wird trotz Unterbrechung der Energieversorgung zu dem System 1000 beibehalten). Die Speicherung 1084 kann allgemein als ein „Speicher“ betrachtet werden, obwohl der Speicher 1030 in der Regel der Ausführungs- oder Arbeitsspeicher ist, um dem Prozessor 1010 Anweisungen bereitzustellen. Während die Speicherung 1084 nicht-flüchtig ist, kann der Speicher 1030 einen flüchtigen Speicher beinhalten (das heißt der Wert oder Zustand der Daten ist unbestimmt, falls die Energieversorgung zu dem System 1000 unterbrochen wird). In einem Beispiel beinhaltet das Speicherungssubsystem 1080 Steuerung 1082 zum Bilden einer Schnittstelle mit der Speicherung 1084. In einem Beispiel ist die Steuerung 1082 ein physikalischer Teil der Schnittstelle 1014 oder des Prozessors 1010, oder kann Schaltungen oder Logik sowohl in dem Prozessor 1010 als auch in der Schnittstelle 1014 beinhalten.
  • Energiequelle 1002 stellt Energie für die Komponenten des Systems 1000 bereit. Insbesondere bildet die Energiequelle 1002 in der Regel eine Schnittstelle mit einer oder mehreren Energieversorgungen 1004 in dem System 1000, um Energie für die Komponenten des Systems 1000 bereitzustellen. In einem Beispiel beinhaltet die Energieversorgung 1004 einen AC/DC (Wechselstrom/Gleichstrom) -Adapter zum Einstecken in eine Wandsteckdose. Eine solche AC-Energie kann eine Energiequelle 1002 aus erneuerbarer Energie (zum Beispiel Solarenergie) sein. In einem Beispiel beinhaltet die Energiequelle 1002 eine DC-Energiequelle, wie zum Beispiel einen externen AC/DC-Wandler. In einem Beispiel beinhaltet die Energiequelle 1002 oder die Energieversorgung 1004 Drahtlosladehardware zum Laden über die Nähe zu einem Ladefeld. In einem Beispiel kann die Energiequelle 1002 eine interne Batterie oder Brennstoffzellenquelle beinhalten.
  • 11 ist ein Blockdiagramm eines Beispiels für ein Mehrknotennetzwerk, in dem eine fehlerbewusste Abschwächung unkorrigierbarer Fehler implementiert werden kann. In einem Beispiel stellt System 1100 eine Serverfarm dar. In einem Beispiel stellt das System 1100 eine Daten-Cloud oder eine Verarbeitung-Cloud dar. Knoten 1130 des Systems 1100 stellen ein System gemäß einem Beispiel für das System 100 dar. Der Knoten 1130 beinhaltet Speicher 1140. Der Knoten 1130 beinhaltet Steuerung 1142, die eine Speichersteuerung zum Verwalten eines Zugriffs auf den Speicher 1140 darstellt.
  • In einem Beispiel beinhaltet der Knoten 1130 UE-Analysator 1144 oder eine andere Speicherfehlerverfolgungs-Engine, um eine Komponente, die eine Ursache eines erkannten UE ist, zu bestimmen. Der UE-Analysator 1144 kann erkannte Fehler mit Hardwarekonfigurationsinformationen korrelieren, um mit hoher Vertrauenswürdigkeit eine Komponente, die die Ursache des UE ist, zu bestimmen. Als Reaktion auf die Erkennung des UE kann der UE-Analysator 1144 eine RAS-Aktion erzeugen, unter der Annahme, dass eine fehlerhafte Komponente mit hoher Vertrauenswürdigkeit bestimmt werden kann. Der UE-Analysator 1144 kann auch eine Post-UE-Integritätsbewertung erzeugen, um sie an die Steuerung 1142 zu senden, und zur Verwendung über Leistungszyklen des Speichers 1140 hinweg zu speichern.
  • Ein oder mehrere Clients 1102 stellen über Netzwerk 1104 Anforderungen an das System 1100. Das Netzwerk 1104 stellt ein oder mehrere Local-Area-Networks oder Wide-Area-Networks oder eine Kombination davon dar. Die Clients 1102 können menschliche oder maschinelle Clients sein, die Anforderungen zur Ausführung von Operationen durch das System 1100 erzeugen. Das System 1100 führt durch die Clients 1102 angeforderte Anwendungen oder Datenberechnungsaufgaben aus.
  • In einem Beispiel beinhaltet das System 1100 ein oder mehrere Racks, die Struktur- und Zwischenverbindungsressourcen zum Unterbringen und Verbinden mehrerer Berechnungsknoten miteinander darstellen. In einem Beispiel beinhaltet Rack 1110 mehrere Knoten 1130. In einem Beispiel hostet das Rack 1110 mehrere Blade-Komponenten 1120. Hosting bezieht sich auf das Bereitstellen von Energie, struktureller oder mechanischer Unterstützung und Zwischenverbindungen. Die Blades 1120 können sich auf Datenverarbeitungsressourcen auf Leiterplatten (PCB) beziehen, wobei eine PCB die Hardwarekomponenten für einen oder mehrere Knoten 1130 unterbringt. In einem Beispiel beinhalten die Blades 1120 kein Chassis oder Gehäuse oder anderen „Kasten“ außer dem, der durch das Rack 1110 bereitgestellt wird. In einem Beispiel beinhalten die Blades 1120 ein Gehäuse mit freigelegtem Verbinder zum Verbinden mit dem Rack 1110. In einem Beispiel beinhaltet das System 1100 kein Rack 1110, und jedes Blade 1120 beinhaltet ein Chassis oder ein Gehäuse, das mit anderen Blades gestapelt sein oder sich anderweitig in unmittelbarer Nähe zu diesen befinden kann, und eine Zwischenverbindung der Knoten 1130 untereinander ermöglicht.
  • Das System 1100 beinhaltet Gewebe 1170, das einen oder mehrere Zwischenverbinder für die Knoten 1130 darstellt. In einem Beispiel beinhaltet das Gewebe 1170 mehrere Schalter 1172 oder Router oder andere Hardware, um Signale zwischen den Knoten 1130 zu routen. Zusätzlich kann das Gewebe 1170 das System 1100 mit dem Netzwerk 1104 zum Zugriff durch die Clients 1102 koppeln. Zusätzlich zu Routing-Ausrüstung kann das Gewebe 1170 als die Kabel oder Ports oder andere Hardwareausrüstung zum Koppeln der Knoten 1130 miteinander beinhaltend betrachtet werden. In einem Beispiel weist das Gewebe 1170 ein oder mehrere zugeordnete Protokolle auf, um das Routing von Signalen durch das System 1100 zu verwalten. In einem Beispiel hängen das eine oder die mehreren Protokolle mindestens teilweise von der in dem System 1100 verwendeten Hardwareausrüstung ab.
  • Wie veranschaulicht, beinhaltet das Rack 1110 N Blades 1120. In einem Beispiel beinhaltet das System 1100 zusätzlich zu dem Rack 1110 Rack 1150. Wie veranschaulicht, beinhaltet das Rack 1150 M Blades 1160. M ist nicht notwendigerweise gleich N; somit versteht es sich, dass verschiedene unterschiedliche Hardwareausrüstungskomponenten verwendet und über das Gewebe 1170 miteinander in das System 1100 gekoppelt werden könnten. Die Blades 1160 können dieselben wie die Blades 1120 oder diesen ähnlich sein. Knoten 1130 können jeglicher Typ von Knoten sein, und sind nicht zwingend alle derselbe Typ von Knoten. Das System 1100 ist weder darauf beschränkt, homogen zu sein, noch ist es darauf beschränkt, nicht homogen zu sein.
  • Der Einfachheit halber ist nur der Knoten in dem Blade 1120[0] detailliert veranschaulicht. Jedoch können andere Knoten in dem System 1100 dieselben oder ähnliche sein. Mindestens einige Knoten 1130 sind Berechnungsknoten mit dem Prozessor (Proz) 1132 und dem Speicher 1140. Ein Berechnungsknoten bezieht sich auf einen Knoten mit Verarbeitungsressourcen (zum Beispiel einem oder mehreren Prozessoren), der ein Betriebssystem ausführt, und eine oder mehrere Aufgaben empfangen und verarbeiten kann. In einem Beispiel sind mindestens einige Knoten 1130 Serverknoten mit einem Server als Verarbeitungsressourcen, die durch den Prozessor 1132 und den Speicher 1140 dargestellt werden. Ein Speicherungsserver bezieht sich auf einen Knoten mit mehr Speicherungsressourcen als ein Berechnungsknoten, und anstatt Prozessoren zur Ausführung von Aufgaben aufzuweisen, beinhaltet ein Speicherungsserver Verarbeitungsressourcen zum Verwalten des Zugriffs auf die Speicherungsknoten innerhalb des Speicherungsservers.
  • In einem Beispiel beinhaltet der Knoten 1130 Schnittstellensteuerung 1134, die Logik zum Steuern des Zugriffs durch den Knoten 1130 auf das Gewebe 1170 darstellt. Die Logik kann Hardwareressourcen zur Zwischenverbindung mit der physikalischen Zwischenverbindungshardware beinhalten. Die Logik kann eine Software- oder Firmwarelogik zum Verwalten der Zwischenverbindung beinhalten. In einem Beispiel ist oder beinhaltet die Schnittstellensteuerung 1134 eine Host-Gewebe-Schnittstelle, die eine Gewebe-Schnittstelle gemäß jeglichem hierin beschriebenen Beispiel sein kann.
  • Der Prozessor 1132 kann einen oder mehrere separate Prozessoren beinhalten. Jeder separate Prozessor kann eine einzelne Verarbeitungseinheit, eine Mehrkernverarbeitungseinheit oder eine Kombination davon beinhalten. Die Verarbeitungseinheit kann ein Primärprozessor, wie zum Beispiel eine CPU (Zentralverarbeitungseinheit), ein Peripherieprozessor, wie zum Beispiel eine GPU (Grafikverarbeitungseinheit), oder eine Kombination davon sein. Der Speicher 1140 kann Speichergeräte sein oder diese beinhalten. Der Knoten 1130 beinhaltet eine Speichersteuerung, die durch die Steuerung 1142 dargestellt wird, um Zugriff auf den Speicher 1140 zu verwalten.
  • Allgemein mit Bezug auf die Beschreibungen hierin beinhaltet in einem Beispiel eine Vorrichtung zum Reagieren auf einen Speicherfehler Folgendes: ein Substrat; und eine auf dem Substrat angeordnete Steuerung, wobei die Steuerung einen unkorrigierbaren Fehler (UE) in Daten von einem Speichergerät erkennen soll, eine Hardwarekonfiguration des Speichergeräts mit historischen Daten, die Speicherfehler für Hardwareelemente der Hardwarekonfiguration angeben, korrelieren soll, um eine Bestimmung eines spezifischen Hardwareelements zu erzeugen, das den erkannten UE verursacht hat oder wahrscheinlich verursacht hat, und eine Korrekturaktion für das spezifische Hardwareelement basierend auf der Bestimmung auszugeben.
  • In einem Beispiel für die Vorrichtung umfasst das Korrelieren der Hardwarekonfiguration mit den historischen Daten, dass die Steuerung korrigierbare Fehler (CE) und unkorrigierbare Fehler (UE) für die Hardwareelemente der Hardwarekonfiguration überwacht. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung eine Anwendung für Fehlerprüfung und -Korrektur (ECC) auslöst, um das spezifische Hardwareelement zu korrigieren. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung eine Anwendung für Adaptive Double Device Data Correction (ADDDC) auslöst, um das spezifische Hardwareelement zu korrigieren. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung ein Offline-Setzen des spezifische Hardwareelements auslöst. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung ein Cachezeilen-Sparing für das spezifische Hardwareelement auslöst. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung ein Zeilen-Sparing für das spezifische Hardwareelement auslöst Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung soll die Steuerung in einem Beispiel die Bestimmung in einem nichtflüchtigen Speicher mit Speicherintegritätsinformationen für das Speichergerät speichern. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das spezifische Hardwareelement in einem Beispiel eine Speicherzeile und/oder eine Speicherspalte und/oder ein Speicherbit. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Substrat in einem Beispiel eine Platine eines Dual Inline Memory Module (DIMM), wobei die Steuerung eine Steuerung des DIMM umfasst. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Substrat in einem Beispiel eine Hauptplatine, wobei die Steuerung eine Steuerung auf einer Hauptplatine umfasst. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Speichergerät in einem Beispiel ein Speichermodul mit mehreren Dynamic Random Access Memory (DRAM) -Geräten. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung umfasst das Speichergerät in einem Beispiel ein High Bandwidth Memory (HBM) -Gerät mit mehreren Dynamic Random Access Memory (DRAM) -Chips. Gemäß jeglichem der vorhergehenden Beispiele für die Vorrichtung kann das System in einem Beispiel mehr als eine spezifische Komponente als die wahrscheinliche Ursache des EU identifizieren, und den EU als eine unbestimmte Ursache aufweisend kennzeichnen.
  • Allgemein mit Bezug auf die Beschreibungen hierin beinhaltet in einem Beispiel ein System Folgendes: eine Host-Hardwareplattform, die eine Zentralverarbeitungseinheit (CPU) und mehrere Speichergeräte beinhaltet; und eine mit den Speichergeräten gekoppelte Steuerung, wobei die Steuerung einen unkorrigierbaren Fehler (UE) in Daten von einem Speichergerät erkennen soll, eine Hardwarekonfiguration des Speichergeräts mit historischen Daten, die Speicherfehler für Hardwareelemente der Hardwarekonfiguration angeben, korrelieren soll, um eine Bestimmung eines spezifischen Hardwareelements zu erzeugen, das den erkannten UE verursacht hat oder wahrscheinlich verursacht hat, und eine Korrekturaktion für das spezifische Hardwareelement basierend auf der Bestimmung auszugeben.
  • Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung eine Anwendung für Fehlerprüfung und -Korrektur (ECC) auslöst, um das spezifische Hardwareelement zu korrigieren. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung eine Anwendung für Adaptive Double Device Data Correction (ADDDC) auslöst, um das spezifische Hardwareelement zu korrigieren. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung ein Offline-Setzen des spezifische Hardwareelements auslöst. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung ein Cachezeilen-Sparing für das spezifische Hardwareelement auslöst. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Ausgeben der Korrekturaktion in einem Beispiel, dass die Steuerung ein Zeilen-Sparing für das spezifische Hardwareelement auslöst Gemäß jeglichem der vorhergehenden Beispiele für das System soll die Steuerung in einem Beispiel die Bestimmung in einem nichtflüchtigen Speicher mit Speicherintegritätsinformationen für das Speichergerät speichern. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das spezifische Hardwareelement in einem Beispiel eine Speicherzeile und/oder eine Speicherspalte und/oder ein Speicherbit. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Substrat in einem Beispiel eine Platine eines Dual Inline Memory Module (DIMM), wobei die Steuerung eine Steuerung des DIMM umfasst. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Substrat in einem Beispiel eine Hauptplatine, wobei die Steuerung eine Steuerung auf einer Hauptplatine umfasst. Gemäß jeglichem der vorhergehenden Beispiele für das System kann das System in einem Beispiel mehr als eine spezifische Komponente als die wahrscheinliche Ursache des EU identifizieren, und den EU als eine unbestimmte Ursache aufweisend kennzeichnen. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Speichergerät in einem Beispiel ein Speichermodul mit mehreren Dynamic Random Access Memory (DRAM) -Geräten. Gemäß jeglichem der vorhergehenden Beispiele für das System umfasst das Speichergerät in einem Beispiel ein High Bandwidth Memory (HBM) -Gerät mit mehreren Dynamic Random Access Memory (DRAM) -Chips. Gemäß jeglichem der vorhergehenden Beispiele für das System beinhaltet das System in einem Beispiel Folgendes: eine kommunizierend mit der CPU gekoppelte Anzeige; eine kommunizierend mit einem Host-Prozessor gekoppelte Netzwerkschnittstelle; oder eine Batterie, um das System mit Energie zu versorgen.
  • Allgemein mit Bezug auf die Beschreibungen hierin beinhaltet in einem Beispiel ein Verfahren zum Analysieren eines Speichergeräteausfalls Folgendes: Erkennen eines unkorrigierbaren Fehlers (UE) in Daten von einem Speichergerät; Korrelieren einer Hardwarekonfiguration des Speichergeräts mit historischen Daten, die Speicherfehler für Hardwareelemente der Hardwarekonfiguration angeben, um eine Bestimmung eines spezifischen Hardwareelements zu erzeugen, das den erkannten UE verursacht hat oder wahrscheinlich verursacht hat; und Ausgeben einer Korrekturaktion für das spezifische Hardwareelement basierend auf der Bestimmung.
  • In einem Beispiel für das Verfahren umfasst das Korrelieren der Hardwarekonfiguration mit den historischen Daten das Überwachen korrigierbarer Fehler (CE) und unkorrigierbarer Fehler (UE) für die Hardwareelemente der Hardwarekonfiguration. Gemäß jeglichem der vorhergehenden Beispiele für das Verfahren umfasst das Ausgeben der Korrekturaktion in einem Beispiel das Auslösen von Folgendem: Anwendung von Fehlerprüfung und -Korrektur (ECC), um das spezifische Hardwareelement zu korrigieren, und/oder Anwendung von Adaptive Double Device Data Correction (ADDDC), um das spezifische Hardwareelement zu korrigieren, und/oder Offline-Setzen von Seiten des spezifischen Hardwareelements, und/oder Cachezeilen-Sparing für das spezifische Hardwareelement, und/oder Zeilen-Sparing für das spezifische Hardwareelement. Gemäß jeglichem der vorhergehenden Beispiele für das Verfahren umfasst das Verfahren in einem Beispiel Folgendes: Speichern der Bestimmung in einem nichtflüchtigen Speicher mit Speicherintegritätsinformationen für das Speichergerät. Gemäß jeglichem der vorhergehenden Beispiele für das Verfahren kann das System in einem Beispiel mehr als eine spezifische Komponente als die wahrscheinliche Ursache des EU identifizieren, und den EU als eine unbestimmte Ursache aufweisend kennzeichnen.
  • Flussdiagramme, wie hierin veranschaulicht, stellen Beispiele für Sequenzen verschiedener Prozessaktionen bereit. Die Flussdiagramme können Operationen, die durch eine Software- oder Firmware-Routine ausgeführt werden sollen, sowie physikalische Operationen angeben. Ein Flussdiagramm kann ein Beispiel für die Implementierung von Zuständen einer Finite State Machine (FSM) veranschaulichen, die in Hardware und/oder Software implementiert werden kann. Obwohl in einer bestimmten Sequenz oder Reihenfolge gezeigt, kann die Reihenfolge der Aktionen modifiziert werden, sofern nicht anders angegeben. Somit sollten die veranschaulichten Diagramme nur als Beispiele verstanden werden, und der Prozess kann in einer unterschiedlichen Reihenfolge ausgeführt werden, und einige Aktionen können parallel ausgeführt werden. Zusätzlich können eine oder mehrere Aktionen weggelassen werden; somit werden nicht in allen Implementierungen alle Aktionen ausgeführt.
  • Soweit hierin verschiedene Operationen oder Funktionen beschrieben werden, können sie als Softwarecode, Anweisungen, Konfiguration und/oder Daten beschrieben oder definiert werden. Der Inhalt kann direkt ausführbar („Objekt“ oder „ausführbare“ Form), Quellcode oder Differenzcode („Delta“- oder „Patch“-Code) sein. Der Softwareinhalt des hierin beschriebenen, kann über einen Herstellungsgegenstand mit dem darauf gespeicherten Inhalt oder über ein Verfahren zum Betreiben einer Kommunikationsschnittstelle zum Senden von Daten über die Kommunikationsschnittstelle bereitgestellt werden. Ein maschinenlesbares Speicherungsmedium kann eine Maschine veranlassen, die beschriebenen Funktionen oder Operationen auszuführen, und beinhaltet jeglichen Mechanismus, der Informationen in einer Form speichert, auf die durch eine Maschine (zum Beispiel ein Datenverarbeitungsgerät, ein elektronisches System usw.) zugegriffen werden kann, wie zum Beispiel beschreibbare/nicht beschreibbare Medien (zum Beispiel Read Only Memory (ROM), Random Access Memory (RAM), magnetische Plattenspeicherungsmedien, optische Speicherungsmedien, Flash-Speichergeräte usw.). Eine Kommunikationsschnittstelle beinhaltet jeglichen Mechanismus, der mit jeglichem aus einem drahtgebundenen, drahtlosen, optischen usw. Medium eine Schnittstelle bildet, um mit einem anderen Gerät, wie zum Beispiel einer Speicherbusschnittstelle, einer Prozessorbusschnittstelle, einer Internetverbindung, einer Plattensteuerung usw., zu kommunizieren. Die Kommunikationsschnittstelle kann so konfiguriert sein, dass sie Konfigurationsparameter bereitstellt und/oder Signale sendet, um die Kommunikationsschnittstelle vorzubereiten, ein den Softwareinhalt beschreibendes Datensignal bereitzustellen. Auf die Kommunikationsschnittstelle kann über einen oder mehrere Befehle oder ein oder mehrere Signale, die an die Kommunikationsschnittstelle gesendet werden, zugegriffen werden.
  • Verschiedene hierin beschriebene Komponenten können ein Mittel zum Ausführen der beschriebenen Operationen oder Funktionen sein. Jede hierin beschriebene Komponente beinhaltet Software, Hardware oder eine Kombination von diesen. Die Komponenten können als Softwaremodule, Hardwaremodule, spezielle Hardware (zum Beispiel anwendungsspezifische Hardware, Application Specific Integrated Circuits (ASIC), digitale Signalprozessoren (DSP) usw.), eingebettete Steuerungen, verdrahtete Schaltungen usw. implementiert werden.
  • Abgesehen von dem hierin beschriebenen können verschiedene Modifikationen an dem hierin offenbarten und an Implementierungen der Erfindung vorgenommen werden, ohne von ihrem Umfang abzuweichen. Daher sollten die Veranschaulichungen und Beispiele hierin in einem veranschaulichenden und nicht in einem einschränkenden Sinn betrachtet werden. Der Umfang der Erfindung sollte allein durch Bezugnahme auf die folgenden Ansprüche bemessen werden.

Claims (24)

  1. Vorrichtung zum Reagieren auf einen Speicherfehler, die Folgendes umfasst: ein Substrat; und eine auf dem Substrat angeordnete Steuerung, wobei die Steuerung einen unkorrigierbaren Fehler (UE) in Daten von einem Speichergerät erkennen soll, eine Hardwarekonfiguration des Speichergeräts mit historischen Daten, die Speicherfehler für Hardwareelemente der Hardwarekonfiguration angeben, korrelieren soll, um eine Bestimmung eines spezifischen Hardwareelements zu erzeugen, das den erkannten UE wahrscheinlich verursacht hat, und eine Korrekturaktion für das spezifische Hardwareelement basierend auf der Bestimmung auszugeben.
  2. Vorrichtung nach Anspruch 1, wobei das Korrelieren der Hardwarekonfiguration mit den historischen Daten umfasst, dass die Steuerung korrigierbare Fehler (CE) und unkorrigierbare Fehler (UE) für die Hardwareelemente der Hardwarekonfiguration überwacht.
  3. Vorrichtung nach Anspruch 1, wobei das Ausgeben der Korrekturaktion umfasst, dass die Steuerung eine Anwendung für Fehlerprüfung und -Korrektur (ECC) auslöst, um das spezifische Hardwareelement zu korrigieren.
  4. Vorrichtung nach Anspruch 1, wobei das Ausgeben der Korrekturaktion umfasst, dass die Steuerung eine Anwendung für Adaptive Double Device Data Correction (ADDDC) auslöst, um das spezifische Hardwareelement zu korrigieren.
  5. Vorrichtung nach Anspruch 1, wobei das Ausgeben der Korrekturaktion umfasst, dass die Steuerung ein Offline-Setzen des spezifischen Hardwareelements auslöst.
  6. Vorrichtung nach Anspruch 1, wobei das Ausgeben der Korrekturaktion umfasst, dass die Steuerung ein Cachezeilen-Sparing für das spezifische Hardwareelement auslöst.
  7. Vorrichtung nach Anspruch 1, wobei das Ausgeben der Korrekturaktion umfasst, dass die Steuerung ein Zeilen-Sparing für das spezifische Hardwareelement auslöst.
  8. Vorrichtung nach Anspruch 1, wobei die Steuerung die Bestimmung in einem nichtflüchtigen Speicher mit Speicherintegritätsinformationen für das Speichergerät speichern soll.
  9. Vorrichtung nach Anspruch 1, wobei die Steuerung mehr als eine spezifische Komponente als die wahrscheinliche Ursache des erkannten UE identifizieren soll, und wobei die Steuerung Speicherintegritätsinformationen erzeugen soll, die eine Bestimmung beinhalten, dass der erkannte UE eine unbestimmte Ursache aufweist.
  10. Vorrichtung nach Anspruch 1, wobei das spezifische Hardwareelement eine Speicherzeile und/oder eine Speicherspalte und/oder ein Speicherbit umfasst.
  11. Vorrichtung nach Anspruch 1, wobei das Substrat eine Platine eines Dual Inline Memory Module (DIMM) umfasst, wobei die Steuerung eine Steuerung des DIMM umfasst.
  12. Vorrichtung nach Anspruch 1, wobei das Substrat eine Hauptplatine umfasst, wobei die Steuerung eine Steuerung auf einer Hauptplatine umfasst.
  13. Vorrichtung nach Anspruch 1, wobei das Speichergerät ein Speichermodul mit mehreren Dynamic Random Access Memory (DRAM) -Geräten umfasst.
  14. Vorrichtung nach Anspruch 1, wobei das Speichergerät ein High Bandwidth Memory (HBM) -Gerät mit mehreren Dynamic Random Access Memory (DRAM) -Chips umfasst.
  15. System, das Folgendes umfasst: eine Host-Hardwareplattform, die eine Zentralverarbeitungseinheit (CPU) und mehrere Speichergeräte beinhaltet; und eine mit dem Speichergerät gekoppelte Steuerung, wobei die Steuerung einen unkorrigierbaren Fehler (UE) in Daten von einem Speichergerät erkennen soll, eine Hardwarekonfiguration des Speichergeräts mit historischen Daten, die Speicherfehler für Hardwareelemente der Hardwarekonfiguration angeben, korrelieren soll, um eine Bestimmung eines spezifischen Hardwareelements zu erzeugen, das den erkannten UE wahrscheinlich verursacht hat, und eine Korrekturaktion für das spezifische Hardwareelement basierend auf der Bestimmung auszugeben.
  16. System nach Anspruch 15, wobei das Korrelieren der Hardwarekonfiguration mit den historischen Daten umfasst, dass die Steuerung korrigierbare Fehler (CE) und unkorrigierbare Fehler (UE) für die Hardwareelemente der Hardwarekonfiguration überwacht.
  17. System nach Anspruch 15, wobei das Ausgeben der Korrekturaktion umfasst, dass die Steuerung Folgendes auslöst: Anwendung von Fehlerprüfung und -Korrektur (ECC), um das spezifische Hardwareelement zu korrigieren, und/oder Anwendung von Adaptive Double Device Data Correction (ADDDC) um das spezifische Hardwareelement zu korrigieren, und/oder Offline-Setzen von Seiten des spezifischen Hardwareelements, und/oder Cachezeilen-Sparing für das spezifische Hardwareelement, und/oder Zeilen-Sparing für das spezifische Hardwareelement.
  18. System nach Anspruch 15, wobei die Steuerung mehr als eine spezifische Komponente als die wahrscheinliche Ursache des erkannten UE identifizieren soll, und wobei die Steuerung Speicherintegritätsinformationen erzeugen soll, die eine Bestimmung beinhalten, dass der erkannte UE eine unbestimmte Ursache aufweist.
  19. System nach Anspruch 15, wobei die Steuerung die Bestimmung in einem nichtflüchtigen Speicher mit Speicherintegritätsinformationen für das Speichergerät speichern soll.
  20. System nach Anspruch 15, das ferner Folgendes umfasst: eine Anzeige, die kommunizierend mit der CPU gekoppelt ist; und/oder eine Netzwerkschnittstelle, die kommunizierend mit einem Hostprozessor gekoppelt ist; und/oder eine Batterie zur Energieversorgung des Systems.
  21. Verfahren zum Analysieren eines Speichergeräteausfalls, das Folgendes umfasst: Erkennen eines unkorrigierbaren Fehlers (UE) in Daten von einem Speichergerät; Korrelieren einer Hardwarekonfiguration des Speichergeräts mit historischen Daten, die Speicherfehler für Hardwareelemente der Hardwarekonfiguration angeben, um ein spezifisches Hardwareelement zu identifizieren, das den erkannten UE wahrscheinlich verursacht hat; und Ausgeben einer Korrekturaktion für das spezifische Hardwareelement basierend auf der Korrelation.
  22. Verfahren nach Anspruch 21, wobei das Korrelieren der Hardwarekonfiguration mit den historischen Daten das Überwachen korrigierbarer Fehler (CE) und unkorrigierbarer Fehler (UE) für die Hardwareelemente der Hardwarekonfiguration umfasst.
  23. Verfahren nach Anspruch 21, wobei das Ausgeben der Korrekturaktion das Auslösen von Folgendem umfasst: Anwendung von Fehlerprüfung und -Korrektur (ECC), um das spezifische Hardwareelement zu korrigieren, und/oder Anwendung von Adaptive Double Device Data Correction (ADDDC), um das spezifische Hardwareelement zu korrigieren, und/oder Offline-Setzen von Seiten des spezifischen Hardwareelements, und/oder Cachezeilen-Sparing für das spezifische Hardwareelement, und/oder Zeilen-Sparing für das spezifische Hardwareelement.
  24. Verfahren nach Anspruch 21, das ferner Folgendes umfasst: Speichern von Speicherintegritätsinformationen für das Speichergerät in einem nichtflüchtigen Speicher, einschließlich Identifikation des spezifischen Hardwareelements, das wahrscheinlich den erkannten UE verursacht hat.
DE112021007536.5T 2021-12-13 2021-12-13 Systeminterne abschwächung unkorrigierbarer fehler basierend auf vertrauensfaktoren, basierend auf einer fehlerbewussten analyse Pending DE112021007536T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/137354 WO2023108319A1 (en) 2021-12-13 2021-12-13 In-system mitigation of uncorrectable errors based on confidence factors, based on fault-aware analysis

Publications (1)

Publication Number Publication Date
DE112021007536T5 true DE112021007536T5 (de) 2024-03-07

Family

ID=86775204

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021007536.5T Pending DE112021007536T5 (de) 2021-12-13 2021-12-13 Systeminterne abschwächung unkorrigierbarer fehler basierend auf vertrauensfaktoren, basierend auf einer fehlerbewussten analyse

Country Status (3)

Country Link
CN (1) CN117581211A (de)
DE (1) DE112021007536T5 (de)
WO (1) WO2023108319A1 (de)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
CN103198000A (zh) * 2013-04-02 2013-07-10 浪潮电子信息产业股份有限公司 一种linux系统下的故障内存位置定位方法
EP3132449B1 (de) * 2014-04-16 2023-04-26 Intel Corporation Verfahren, vorrichtung und system zur handhabung von datenfehlerereignissen mit speichersteuergerät
WO2016003449A1 (en) * 2014-07-01 2016-01-07 Hewlett-Packard Development Company, L.P. Memory controller
US9811420B2 (en) * 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
US10067827B2 (en) * 2016-06-29 2018-09-04 Micron Technology, Inc. Error correction code event detection
DE102018123761A1 (de) * 2017-09-29 2019-04-04 Nvidia Corporation Sicherung gegen fehler in einem fehlerkorrekturcode (ecc), der in einem kraftfahrzeugsystem implementiert ist
WO2020118502A1 (en) * 2018-12-11 2020-06-18 Intel Corporation Runtime post package repair for memory
KR20210051668A (ko) * 2019-10-31 2021-05-10 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈
US11175980B2 (en) * 2019-12-27 2021-11-16 Seagate Technology Llc Mitigation of solid state memory read failures

Also Published As

Publication number Publication date
WO2023108319A1 (en) 2023-06-22
CN117581211A (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
US7143236B2 (en) Persistent volatile memory fault tracking using entries in the non-volatile memory of a fault storage unit
CN101369240B (zh) 用于在信息处理系统中管理存储错误的系统和方法
US20180129553A1 (en) Memory devices and modules
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
DE112012006171T5 (de) On-Chip-Redundanzreparatur für Speichergeräte
DE112019000211B4 (de) Effizientes und selektives ersatzweises Speichern von Bits in Arbeitsspeichersystemen
US10395750B2 (en) System and method for post-package repair across DRAM banks and bank groups
US20230083193A1 (en) Uncorrectable memory error prediction
DE102020133664A1 (de) Initialisierung und Leistungsausfallisolation eines Speichermoduls in einem System
US20220050603A1 (en) Page offlining based on fault-aware prediction of imminent memory error
DE112022000580T5 (de) Reduzierung der Latenzauswirkungen von Fehlerprüfung und Korrektur auf dem Chip (ECC)
CN106233258B (zh) 可变宽度纠错
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
DE102020115747A1 (de) Speichermodul, Fehlerkorrekturverfahren für Speicher-Controller, der dieses steuert, und Rechensystem, das dieses umfasst
DE112021000246T5 (de) Nachrichtenübermittlung von der peer-speicherungsvorrichtung über den steuerbus
CN116756079B (zh) 一种基于大容量非易失存储的多任务智能处理器
DE102011017634B4 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
US10474384B2 (en) System and method for providing a back door communication path between channels on dual-channel DIMMs
US20240013851A1 (en) Data line (dq) sparing with adaptive error correction coding (ecc) mode switching
CN115168087A (zh) 一种确定内存故障的修复资源粒度的方法及装置
US11182099B2 (en) Memory system and operating method thereof
US20090287957A1 (en) Method for controlling a memory module and memory control unit
DE112021007536T5 (de) Systeminterne abschwächung unkorrigierbarer fehler basierend auf vertrauensfaktoren, basierend auf einer fehlerbewussten analyse
DE102022106020A1 (de) Anwendungsbewusste speicher-patrol-scrubbing-techniken
US11036399B2 (en) Memory system and operating method of the memory system