DE112022002423T5 - System und Verfahren zur Chipkill-Wiederherstellung bei doppelter Datenrate (DDR) - Google Patents

System und Verfahren zur Chipkill-Wiederherstellung bei doppelter Datenrate (DDR) Download PDF

Info

Publication number
DE112022002423T5
DE112022002423T5 DE112022002423.2T DE112022002423T DE112022002423T5 DE 112022002423 T5 DE112022002423 T5 DE 112022002423T5 DE 112022002423 T DE112022002423 T DE 112022002423T DE 112022002423 T5 DE112022002423 T5 DE 112022002423T5
Authority
DE
Germany
Prior art keywords
ddr
ecc
decoder
decoding
excess
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
DE112022002423.2T
Other languages
English (en)
Inventor
Peter John Waldemar Graumann
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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
Priority claimed from US17/671,423 external-priority patent/US12014068B2/en
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112022002423T5 publication Critical patent/DE112022002423T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

Ein System und Verfahren für die Chipkill-Decodierung mit doppelter Datenrate (DDR) unter Verwendung eines Arrays von ECC-Löschdecodierern, die parallel arbeiten, um einen Ort eines Chipkill-Ereignisses zu identifizieren, das einer DDR-Speichervorrichtung zugeordnet ist. Der ECC-Löschdecodierer, der den Chipkill-Ort korrekt identifiziert, wird dann verwendet, um nachfolgende DDR-Bursts zu decodieren, die aus der DDR-Speichervorrichtung übertragen werden.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung Nr. 63/180.615 , eingereicht am 27. April 2021 und mit dem Titel „SYSTEM AND METHOD FOR LOW-LATENCY DOUBLE DATE RATE (DDR) CHIP-KILL RECOVERY“, und der nichtvorläufigen US-Patentanmeldung Nr. 17/671.423 , eingereicht am 14. Februar 2022 und mit dem Titel „SYSTEM AND METHOD FOR DOUBLE DATA RATE (DDR) CHIP-KILL RECOVERY“, die hierin durch Bezugnahme in ihrer Gesamtheit eingeschlossen sind.
  • HINTERGRUND DER ERFINDUNG
  • Speicherschnittstellen mit doppelter Datenrate (DDR) werden immer schneller, um immer höhere Betriebsbandbreiten zu unterstützen. Mit zunehmender Geschwindigkeit der DDR-Schnittstelle und zunehmender Dichte der DDR-Vorrichtungen selbst steigt auch die Häufigkeit von Bitfehlern am Ausgang der DDR-Schnittstelle. Zusätzlich sind DDR-Schnittstellen und -Vorrichtungen anfällig für Komplettausfälle, bei denen ein bestimmter Die oder ein Abschnitt eines Die anfängt, völlig fehlerhafte Daten zu melden.
  • Wenn ganze Vorrichtungen oder „Chips“ in einer DDR-Speichervorrichtung ausfallen, was als „Chipkill-Ereignis“ bezeichnet wird, gehen alle auf der betreffenden Vorrichtung gespeicherten Informationen verloren. Die Löschdecodierung unter Verwendung von Reed-Solomon(RS)-Decodierem ist im Stand der Technik bekannt, um die verlorenen Informationen wiederherzustellen. RS-Decodierer werden üblicherweise in digitalen Kommunikationssystemen verwendet, um beschädigte Daten in einer digitalen Übertragung zu erkennen und die beschädigten Daten zu korrigieren. RS-Decodierer verwenden Redundanz in den übertragenen Daten, sodass bei Empfang der Datenübertragung die potenziell beschädigten Daten und die Redundanz verarbeitet werden, um die beschädigten Daten in der Datenübertragung zu korrigieren. Bekannte RS-Löschdecodierer-Operationen, die zur Wiederherstellung beschädigter Daten verwendet werden, erfordern jedoch externe Informationen, die angeben, dass ein bestimmter Teil der Daten aufgrund eines Chipkill-Ereignisses gelöscht werden muss.
  • Dementsprechend besteht ein Bedarf an einem Verfahren und einer Vorrichtung, die eine Vorwärtsfehlerkorrekturlösung (FEC-Lösung) zum Wiederherstellen der Informationen aus einer ausgefallenen DDR-Speichervorrichtung bereitstellen. Die FEC-Lösung sollte in der Lage sein, ohne vorherige Benachrichtigung über den Ausfall einer DDR-Speichervorrichtung die ausgefallene DDR-Speichervorrichtung zu identifizieren und die Informationen wiederherzustellen, und sie sollte in der Lage sein, die Informationen mit niedriger Latenz wiederherzustellen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • In verschiedenen Ausführungsformen stellt die vorliegende Erfindung ein Verfahren und eine Vorrichtung bereit, die Vorwärtsfehlerkorrektur(FEC)-Techniken mit niedriger Latenz zum Wiederherstellen von Informationen aus einer ausgefallenen DDR-Speichervorrichtung verwenden, ohne dass eine vorherige Benachrichtigung über den Ausfall der DDR-Speichervorrichtung erforderlich ist.
  • In einer Ausführungsform wird ein Verfahren zur Chipkill-Decodierung mit doppelter Datenrate (DDR) bereitgestellt, das ein Empfangen eines DDR-Bursts an einer DDR-Schnittstelle umfasst, wobei ein DDR-Burst eine Vielzahl von codierten Symbolen aus einer DDR-Speichervorrichtung umfasst, wobei die DDR-Speichervorrichtung eine Vielzahl von Chips umfasst. Das Verfahren schließt ferner das Decodieren des DDR-Bursts unter Verwendung eines Fehlerkorrekturcode(ECC)-Zufallsfehlerdecodierers an der DDR-Schnittstelle ein. Wenn das Decodieren des DDR-Bursts unter Verwendung des ECC-Zufallsfehlerdecodierers den DDR-Burst nicht decodieren kann, fährt das Verfahren mit dem Decodieren des DDR-Bursts unter Verwendung eines ECC-Chipkill-Decodiererarrays fort, das eine Vielzahl von parallel arbeitenden ECC-Löschdecodierern umfasst, wobei jeder der Vielzahl von ECC-Löschdecodierern den DDR-Burst unter der Annahme decodiert, dass ein anderer Chip der Vielzahl von Chips der DDR-Speichervorrichtung ein Chipkill-Ereignis erfahren hat. Für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung führen, fährt das Verfahren mit dem Identifizieren einer Anzahl an Überschuss-Symbolkorrekturen fort, die während der Decodierung vorgenommen wurden, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die an dem angenommenen gelöschten Chip vorgenommen wurden. Das Verfahren fährt mit dem Identifizieren des ECC-Löschdecodierers fort, der die geringste Anzahl an Überschuss-Symbolkorrekturen oberhalb eines vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen aufweist, und dann mit dem Decodieren des DDR-Bursts unter Verwendung des identifizierten ECC-Löschdecodierers, der die geringste Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen aufweist.
  • Nach der Identifizierung des ECC-Löschdecodierers, der als die geringste Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen aufweisend identifiziert wurde, fährt das Verfahren dann mit dem Verwenden des identifizierten ECC-Löschdecodierers zum Decodieren nachfolgend empfangener DDR-Bursts aus der DDR-Speichervorrichtung fort.
  • Wenn der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen nicht identifiziert werden kann, indem ein erster DDR-Burst unter Verwendung des ECC-Chipkill-Decodiererarrays decodiert wird, schließt das Verfahren in einer zusätzlichen Ausführungsform ferner das Empfangen einer Vielzahl von nachfolgenden DDR-Bursts ein, die jeweils eine Vielzahl von codierten Symbolen umfassen, um den ersten DDR-Burst zu decodieren. Das Verfahren fährt dann fort mit dem Decodieren der Vielzahl von nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern und dem Akkumulieren der Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung der Vielzahl von nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen wurden, und mit dem Identifizieren, für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung der nachfolgenden DDR-Bursts führen, desjenigen ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen basierend auf der akkumulieren der Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung des ersten DDR-Bursts und der nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen wurden.
  • In einer spezifischen Ausführungsform ist der ECC-Zufallsfehlerdecodierer ein Reed-Solomon(RS)-ECC-Zufallsfehlerdecodierer und sind alle der Vielzahl von ECC-Löschdecodierern Reed-Solomon(RS)-ECC-Löschdecodierer.
  • In einer zusätzlichen Ausführungsform stellt die vorliegende Erfindung einen Chipkill-Decodierer mit doppelter Datenrate (DDR), der einen Fehlerkorrekturcode(ECC)-Zufallsfehlerdecodierer einschließt, um einen DDR-Burst mit einer Vielzahl von codierten Symbolen aus einer DDR-Speichervorrichtung zu empfangen, wobei die DDR-Speichervorrichtung eine Vielzahl von Chips umfasst, und ein ECC-Chipkill-Decodiererarray bereit, das eine Vielzahl von ECC-Löschdecodierern umfasst, um den DDR-Burst zu decodieren, wenn der ECC-Zufallsfehlerdecodierer den DDR-Burst nicht decodieren kann, wobei alle der Vielzahl von ECC-Löschdecodierern parallel arbeiten, um den DDR-Burst unter der Annahme zu decodieren, dass ein anderer Chip der Vielzahl von Chips der DDR-Speichervorrichtung ein Chipkill-Ereignis erfahren hat. Der DDR-Chipkill-Decodierer schließt ferner eine Decodierauswahllogikschaltung ein, um für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung führen, eine Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung vorgenommen wurden, zu identifizieren, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die an dem angenommenen gelöschten Chip vorgenommen wurden, den ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen zu identifizieren und den DDR-Burst unter Verwendung des identifizierten ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen zu decodieren.
  • In einer anderen Ausführungsform stellt die vorliegende Erfindung eine Speichersteuerung bereit, die eine Schnittstelle mit doppelter Datenrate (DDR-Schnittstelle) in Kommunikation mit einer oder mehreren DDR-Speichervorrichtungen aufweist, wobei die DDR-Schnittstelle zum Empfangen eines DDR-Bursts dient, der eine Vielzahl von codierten Symbolen aus der DDR-Speichervorrichtung umfasst, wobei die DDR-Speichervorrichtung eine Vielzahl von Chips umfasst. Die Speichersteuerung schließt ferner einen DDR-Chipkill-Decodierer in Kommunikation mit der DDR-Schnittstelle ein. Der DDR-Chipkill-Decodierer schließt einen Fehlerkorrekturcode(ECC)-Zufallsfehlerdecodierer, um den DDR-Burst aus der DDR-Schnittstelle zu empfangen, ein ECC-Chipkill-Decodiererarray, das eine Vielzahl von ECC-Löschdecodierern umfasst, um den DDR-Burst zu decodieren, wenn der ECC-Zufallsfehlerdecodierer den DDR-Burst nicht decodieren kann, wobei alle der Vielzahl von ECC-Löschdecodierern parallel arbeiten, um den DDR-Burst unter Annahme zu decodieren, dass ein anderer Chip der Vielzahl von Chips der DDR-Speichervorrichtung ein Chipkill-Ereignis erfahren hat, und eine Decodierauswahllogikschaltung ein. Die Decodierauswahllogikschaltung dient dazu, für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung führen, eine Anzahl an Überschuss-Symbolkorrekturen zu identifizieren, die während der Decodierung durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen wurden, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die an dem gelöschten Chip vorgenommen wurden, denjenigen ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb eines vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen zu identifizieren, und wobei der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb eines vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen dazu dient, den DDR-Burst zu decodieren.
  • In einer besonderen Ausführungsform kann die DDR-Schnittstelle der Speichersteuerung eine DDR4-Burst-Schnittstelle oder eine DDR5-Burst-Schnittstelle sein.
  • Dementsprechend stellt die vorliegende Erfindung in verschiedenen Ausführungsformen eine Lösung zum Wiederherstellen der Informationen aus einer ausgefallenen DDR-Speichervorrichtung bereit. Die Lösung ist in der Lage, die Informationen aus der ausgefallenen DDR-Speichervorrichtung ohne vorherige Benachrichtigung über den Ausfall der DDR-Speichervorrichtung und mit niedriger Latenz wiederherzustellen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die beigefügten Zeichnungen, die in diese Patentschrift aufgenommen wurden und einen Bestandteil dieser Patentschrift bilden, veranschaulichen verschiedene Beispiele und dienen zusammen mit der detaillierten Beschreibung der Erfindung der Erläuterung von nachstehend erörterten Prinzipien. Die Zeichnungen, auf die in dieser Kurzbeschreibung Bezug genommen wird, sind nicht als maßstabsgetreu zu verstehen, es sei denn, dies ist ausdrücklich vermerkt.
    • 1 veranschaulicht eine beispielhafte DDR-Vorrichtung mit einer Vielzahl von Chips, die mehrere zu korrigierende Symbolfehler aufweisen, gemäß einem Beispiel der vorliegenden Erfindung.
    • 2 veranschaulicht eine Speichersteuerung einschließlich einer DDR-Schnittstelle mit einem DDR-Chipkill-Decodierer gemäß einem Beispiel der vorliegenden Erfindung.
    • 3A veranschaulicht ein erstes Flussdiagramm eines Verfahrens zum Durchführen einer Chipkill-Decodierung mit doppelter Datenrate (DDR) gemäß einem Beispiel der vorliegenden Erfindung.
    • 3B ist ein zweites Flussdiagramm, das eine Fortsetzung des Flussdiagramms von 3A ist und das Verfahren zum Durchführen der DDR-Chipkill-Decodierung gemäß einem Beispiel der vorliegenden Erfindung veranschaulicht.
    • 4 veranschaulicht ein Flussdiagramm eines Verfahrens zum Durchführen von Chipkill-Decodierung mit doppelter Datenrate (DDR), wenn der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen nicht durch Decodieren eines ersten DDR-Bursts unter Verwendung des ECC-Chipkill-Decodiererarrays identifiziert werden kann.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es wird nun ausführlich auf verschiedene Ausführungsformen Bezug genommen, von denen Beispiele in den beigefügten Zeichnungen veranschaulicht sind. Obwohl hierin verschiedene Ausführungsformen erörtert werden, versteht es sich, dass diese nicht einschränkend sein sollen. Vielmehr sollen die dargestellten Ausführungsformen Alternativen, Modifikationen und Äquivalente abdecken, die innerhalb des Geistes und des Schutzumfangs der durch die verschiedenen durch die beiliegenden Ansprüche definierten Ausführungsformen eingeschlossen sein können. Des Weiteren werden in dieser detaillierten Beschreibung der Erfindung zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis bereitzustellen. Die Ausführungsformen können jedoch auch ohne eines oder mehrere dieser spezifischen Details umgesetzt werden. In anderen Fällen wurden hinlänglich bekannte Verfahren, Abläufe, Komponenten und Schaltungen nicht ausführlich beschrieben, um Gesichtspunkte der beschriebenen Ausführungsformen nicht unnötig zu verunklaren.
  • Es versteht sich, dass, obwohl die Begriffe „erste/r/s“, „zweite/r/s“, „dritte/r/s“ ohne Einschränkung hierin dazu verwendet werden können, verschiedene Elemente, Komponenten, Bereiche, Schichten und/oder Abschnitte zu beschreiben, diese Elemente, Komponenten, Bereiche, Schichten und/oder Abschnitte nicht durch diese Begriffe eingeschränkt werden sollten. Diese Begriffe werden nur verwendet, um ein Element, eine Komponente, einen Bereich, eine Schicht oder einen Abschnitt von einem anderen Bereich, einer anderen Schicht oder einem anderen Abschnitt zu unterscheiden. Somit könnte ein erstes Element, eine erste Komponente, ein erster Bereich, eine erste Schicht oder ein erster Abschnitt, die nachstehend erörtert werden, auch als ein zweites Element, eine zweite Komponente, ein zweiter Bereich, eine zweite Schicht oder ein zweiter Abschnitt bezeichnet werden, ohne von den Lehren der vorliegenden Erfindung abzuweichen.
  • Sofern nicht anders definiert, haben alle hierin verwendeten Begriffe (einschließlich technischer und wissenschaftlicher Begriffe) die gleiche Bedeutung, wie sie von einem Fachmann auf dem Gebiet, zu dem die vorliegende Erfindung gehört, gemeinhin verstanden wird. Ferner versteht es sich, dass Begriffe, wie diejenigen, die in allgemein gebräuchlichen Wörterbüchern definiert sind, so interpretiert werden sollten, dass sie eine Bedeutung aufweisen, die mit ihrer Bedeutung im Kontext des relevanten Gebiets übereinstimmt, und nicht in einem idealisierten oder übermäßig formalen Sinne interpretiert werden, es sei denn, dass diese hierin ausdrücklich so definiert sind.
  • In einer DDR-Speichervorrichtung können ganze Vorrichtungen, die allgemein als „Chips“ bezeichnet werden, ausfallen, wodurch alle auf diesem DDR-Chip gespeicherten Informationen verloren gehen. Ein solcher Ausfall wird allgemein als „Chipkill“ bezeichnet. Eine Chipkill in einer Speichervorrichtung mit doppelter Datenrate (DDR) entspricht im Allgemeinen einem vollständigen Ausfall eines einzelnen Chips oder der Tatsache, dass ein einzelner Chip eine Schwellenanzahl von Bitfehlern überschreitet. Das Vorhandensein eines Chipkills in einer Speichervorrichtung kann dazu führen, dass eine große Anzahl von Bits, die dem ausgefallenen Chip zugehörig sind, während einer Speichertransaktion über eine große Anzahl von Bursts fehlerhafte Daten liefern.
  • Es ist bekannt, dass Lösungen für Chipkill-Ereignisse die Reed-Solomon(RS)-Familie von Fehlerkorrekturcodes (ECCs) verwenden. Solche Codes unterteilen Informationen in Symbole einer Größe von „m“ Bits. In einer besonderen Ausführungsform kann das Symbol aus 8 Bits (m = 8) bestehen. Bei der RS-Decodierung wird eine beliebige Anzahl von Bitfehlern innerhalb eines gegebenen Symbols immer noch als einzelner Symbolfehler betrachtet. Bei m = 8 beispielsweise ist ein Symbol, bei dem 1 Bit umgedreht wurde, ein einzelner Fehler, und ein Symbol, bei dem alle 8 Bits umgedreht wurden, gilt ebenfalls als einzelner Fehler. Diese Eigenschaft von RS-Decodierern ist nützlich für die Wiederherstellung von Informationen, wo möglicherweise signifikante Abschnitte des Speicherblocks fehlerhaft sind, wie es bei einem Chipkill-Ereignis der Fall wäre.
  • Eine weitere Eigenschaft der RS-Decodierung besteht darin, dass, wenn ein Fehlerort in der DDR-Speichervorrichtung bekannt ist, dieser Ort dann als fehlerhaft oder als gelöscht gekennzeichnet werden kann. RS-Decodierer können im Vergleich zu dem Fall, in dem keine Informationen über den Fehlerort bekannt sind, doppelt so viele gelöschte Symbole, d. h. Symbole, die als fehlerhaft oder gelöscht gekennzeichnet sind, korrigieren. Wenn zum Beispiel ein RS-Decodierer 4 zufällige fehlerhafte Symbole korrigieren kann, kann er 8 bekannte fehlerhafte Symbole korrigieren. Korrektur und Löschungen von zufälligen Symbolen können auch in jeder gültigen Kombination verwendet werden, wobei t = 2 ∗ R + E, wobei t eine Korrekturkapazität basierend auf der Parität der codierten Symbole ist, R die Anzahl zufälliger Fehler ist und E die Anzahl gelöschter Fehler ist. Standard-Reed-Solomon(RS)-Löschoperationen erfordern externe Informationen, die angeben, dass ein bestimmter Teil der Daten gelöscht werden muss. Informationen aus einer bekanntermaßen ausgefallenen Vorrichtung müssen gelöscht werden. Durch Löschen werden die Zufallssymbolkorrekturen (R) in gelöschte Fehler (E) umgewandelt. Ein RS-Decodierer kann im Vergleich zu einer Zufallssymbolkorrektur (R) doppelt so viele gelöschte Fehler (E) wiederherstellen. Für den Betrieb mit DDR wäre eine Angabe von einer externen Quelle, die angibt, dass ein bestimmter Chip ausgefallen ist, erforderlich, damit der RS-Decodierer die Korrekturkapazität (t) für die Decodierung im Vergleich zu Zufallsfehlern erhöhen kann. Wenn solche Angaben für ausgefallene Vorrichtungen nicht verfügbar sind, muss der Chipkill-Ort mit anderen Mitteln bestimmt werden.
  • Unter Bezugnahme auf 1 kann eine DDR-Speichervorrichtung eine Vielzahl von Chips 105, 110, 115, ... 120 umfassen. Bei einer DDR5-Speichervorrichtung gibt es für jeden Chip 4 Bits für jeden Beat und 16 Beats in jedem Burst. In dieser Ausführungsform können bei einem Standard-RS-Decodierer mit einer Parität von 16 und m = 8 bis zu 8 Zufallsfehler und bis zu 16 gelöschte Fehler korrigiert werden. Wie vorstehend angegeben, schließt der Begriff „gelöschte Fehler“ bekannte Fehlerorte ein. Somit gibt es in einem ersten Burst 150 zwei 8-Bit-Symbolfehler in einem einzigen Chip, und diese Fehler können mit dem Standard-RS-Decodierer korrigiert werden, der bis zu 8 fehlerhafte Zufallssymbole korrigieren kann. In einem zweiten Burst 152 ist ein Chipkill-Ereignis auf dem Chip 0 105 aufgetreten, das zu 8 Symbolfehlern geführt hat. Diese Symbolfehler können ebenfalls mit dem Standard-RS-Decodierer korrigiert werden, der bis zu 8 fehlerhafte Zufallssymbole korrigieren kann. In einem dritten Burst 154 gibt es 8 Symbolfehler, die über 4 Chips verteilt sind. Auch diese Fehler können mit einem Standard-RS-Decodierer korrigiert werden, der bis zu 8 fehlerhafte Zufallssymbole korrigieren kann. In einem vierten Burst 156 ist jedoch ein Chipkill-Ereignis auf dem Chip 0 105 aufgetreten, das zu 8 Symbolfehlern führte, und ein zusätzlicher Symbolfehler ist auf dem Chip 2 115 aufgetreten. Diese Fehler sind mit einem Standard-RS-Decodierer, der in der Lage ist, bis zu 8 fehlerhafte Zufallssymbole zu korrigieren, nicht korrigierbar, da insgesamt 9 Zufallssymbolfehler im Burst 116 auftreten.
  • Die vorliegende Erfindung stellt eine Lösung zum Korrigieren der Symbolfehler in dem vierten Burst 116 von 1 bereit, indem das Chipkill-Ereignis von Chip 0 105 identifiziert wird.
  • Gemäß der vorliegenden Erfindung wird eine Lösung bereitgestellt, die ein Array von parallel arbeitenden Löschdecodierern implementiert, einen für jeden Chip der DDR-Speichervorrichtung. Anschließend werden die Ergebnisse von jedem der Löschdecodierer des Löschdecodiererarrays verglichen, um den Chipkill-Ort zu ermitteln. Dementsprechend können Ausführungsformen der vorliegenden Erfindung erkennen, wenn ein einzelner Chip einer DDR-Speichervorrichtung ausgefallen ist, und zwar mit niedriger Latenz und ohne dass der Ort des ausgefallenen Chips auf der Speichervorrichtung vorher bekannt sein muss. Zusätzlich arbeitet parallel zu den Löschdecodierern ein ECC-Zufallsfehlerdecodierer 205, der ebenfalls beim Auswählen der zu verwendenden korrekten Decodiererausgabe berücksichtigt wird. Die Lösung ermöglicht die Bestimmung des Chipkill-Orts auf demselben Burst, auf dem das erste Chipkill-Ereignis stattfindet.
  • Eine Speichersteuerung 200 einschließlich einer DDR-Schnittstelle 275 mit einem DDR-Chipkill-Decodierer 225 ist in 2 veranschaulicht. Die DDR-Schnittstelle 275 steht in Kommunikation mit einer DDR-Speichervorrichtung 210, die eine Vielzahl von Chips 250, 252, 254, 256, 258, 260, 262, 264, 266, 268 umfasst. Die DDR-Speichervorrichtung 210 kann eine DDR4- oder eine DDR5-Speichervorrichtung sein und die DDR-Schnittstelle 275 kann eine DDR4- oder DDR5-Burst-Schnittstelle sein.
  • Der DDR-Chipkill-Decodierer 225 schließt einen ECC-Zufallsfehlerdecodierer 205, ein ECC-Chipkill-Decodiererarray 220 mit einer Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 und eine Decodierauswahllogikschaltung 270 ein, die mit dem ECC-Chipkill-Decodiererarray 220 und mit dem ECC-Zufallsfehlerdecodierer 205 gekoppelt ist.
  • In einer besonderen Ausführungsform ist der ECC-Zufallsfehlerdecodierer 205 ein Reed-Solomon(RS)-ECC-Zufallsfehlerdecodierer und die ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 können Reed-Solomon(RS)-Decodierer sein, die zur Löschdecodierung in der Lage sind, wobei die ECC-Löschdecodierer in der Lage sind, alle Informationen aus einer ausgefallenen Vorrichtung zu löschen, und zugleich noch eine gewisse Fähigkeit zur Korrektur von Überschuss-Symbolkorrekturen bereitzustellen.
  • Überschuss-Symbolkorrekturen sind als die Fehlerkorrekturen definiert, die von den ECC-Löschdecodierern zusätzlich zu dem gelöschten Abschnitt des Speicherblocks vorgenommen werden. Es sei daran erinnert, dass die Korrekturkapazität eines ECC-Löschdecodierers basierend auf der Parität der codierten Symbole t für einen Speicherblock als t = 2 ∗ R + E bestimmt wird, wobei R die Anzahl der zufälligen Fehlersymbole (in diesem Zusammenhang Überschuss-Symbolkorrekturen) ist und E die Anzahl der Löschungen ist. Als solches können R und E eine beliebige Kombination sein, die kleiner als oder gleich der Anzahl von Paritätssymbolen im Speicherblock, t, ist. Die Fähigkeit jedes ECC-Löschdecodierers zu Überschuss-Symbolkorrekturen bestimmt den Korrektur-ECC-Löschdecodierer, der für die nachfolgende Decodierung ausgewählt wird.
  • Im Betrieb des DDR-Chipkill-Decodierers 225 empfängt der ECC-Zufallsfehlerdecodierer 205 einen DDR-Burst 215, der eine Vielzahl von codierten Symbolen umfasst, aus der DDR-Speichervorrichtung 210. Der ECC-Zufallsfehlerdecodierer 205 versucht, den aus der DDR-Speichervorrichtung 210 empfangenen DDR-Burst 215 zu decodieren. Wenn der ECC-Zufallsfehlerdecodierer 205 beim Decodieren des DDR-Bursts 215 erfolgreich ist, ist das Ergebnis der decodierte DDR-Burst 280 und wird durch die Decodierauswahllogikschaltung 270 an den Ausgang weitergeleitet. Wenn der ECC-Zufallsfehlerdecoder 205 den DDR-Burst 215 nicht decodieren konnte, versucht die Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 des ECC-Chipkill-Decodiererarrays 220, den DDR-Burst 215 parallel zu decodieren, wobei jeder der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 annimmt, dass ein anderer Chip der Vielzahl von Chips 250, 252, 254, 256, 258, 260, 262, 264, 266, 268 der DDR-Speichervorrichtung 210 ein Chipkill-Ereignis erfahren hat. Der DDR-Chipkill-Decodierer 225 kennzeichnet alle Informationen aus der DDR-Speichervorrichtung, die ein Chipkill-Ereignis erfährt, in zukünftigen Decodiervorgängen als gelöscht. Das Kennzeichnen als Löschung gibt dem DDR-Chipkill-Decodierer 225 an, welche Symbole bekanntermaßen fehlerhaft sind, wodurch die Korrekturfähigkeiten des DDR-Chipkill-Decodierers 225 signifikant verbessert werden.
  • Der ECC-Zufallsfehlerdecodierer 205 kann den DDR-Burst 215 nicht decodieren, wenn eine Anzahl von Symbolfehlern im DDR-Burst 215 größer ist als eine Symbolkorrekturkapazität des ECC-Zufallsfehlerdecodierers 205. Unter erneuter Bezugnahme auf 1 würde der ECC-Zufallsfehlerdecoder 205 zum Beispiel den Burst 116 nicht decodieren können, weil der Burst 116 9 Symbolfehler enthält, was die maximale Symbolkorrekturkapazität des ECC-Zufallsfehlerdecodierers 205 von 8 Symbolen überschreitet.
  • Während des Decodierens des DDR-Bursts oder des Versuchs, den DDR-Burst zu decodieren, werden die ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 versuchen, die realen Informationen aus dem DDR-Burst 215 wiederherzustellen. Die Ergebnisse des Decodierens können eine gültige Decodierung, eine fehlgeschlagene Decodierung oder sogar eine falsche Decodierung sein. Somit bedeutet für einen Fachmann und in diesem Dokument der Begriff „Decodieren“ nicht notwendigerweise einen Decodiererfolg, sondern bezieht sich im Allgemeinen auf einen Versuch, den Datenburst unter Verwendung eines bestimmten Decodieralgorithmus oder -verfahrens wiederherzustellen.
  • Nach dem Decodieren des DDR-Bursts 215 durch die Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 identifiziert die Decodierauswahllogikschaltung 270 für jeden der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, die zu einer gültigen Decodierlösung führen, eine Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung vorgenommen wurden, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die an dem angenommenen gelöschten Chip vorgenommen wurden.
  • Unter erneuter Bezugnahme auf 1 ist beim Empfangen von Burst 116 an dem ECC-Chipkill-Decodiererarray 220, wenn der ECC-Löschdecodierer 222 des ECC-Chipkill-Decodiererarrays 220 annimmt, dass der Chip 0 105 ein Chipkill-Ereignis erfahren hat, und daher den Chip 0 als einen gelöschten Chip betrachtet, die Anzahl der Überschuss-Symbolkorrekturen, die über die Symbolkorrekturen hinausgehen, die an dem angenommenen gelöschten Chip (Chip 0 105) vorgenommen wurden, gleich 1. Wenn alternativ der ECC-Löschdecodierer 224 des Chipkill-Decodiererarrays 220 annimmt, dass der Chip 1 110 ein Chipkill-Ereignis erfahren hat, und daher den Chip 0 205 nicht als einen gelöschten Chip betrachtet, ist die Anzahl der Überschuss-Symbolkorrekturen, die über die Symbolkorrekturen hinausgehen, die an dem angenommenen gelöschten Chip (Chip 1 110) vorgenommen wurden, gleich 9. Im Wesentlichen führt ein ECC-Löschdecodierer der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, der den korrekten Ort eines Chipkill-Ereignisses annimmt, zu einer geringeren Anzahl an Überschuss-Symbolkorrekturen im Vergleich zu den anderen ECC-Löschdecodierern.
  • Nach der Identifizierung der Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung des DDR-Bursts 115 bei jedem der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 vorgenommen wurden, identifiziert die Decodierauswahllogikschaltung dann den ECC-Löschdecodierer der Vielzahl von ECC-Löschdecodierern 222,224,226,228,230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 mit einer geringsten Anzahl an Überschuss-Symbolkorrekturen. In einem Beispiel bezieht sich der Begriff „geringste Anzahl“ auf einen vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen. Der vorbestimmte Schwellenwert für Überschuss-Symbolkorrekturen kann basierend auf einer gewünschten Korrekturfähigkeit der DDR-Schnittstelle 275 festgelegt werden.
  • Betrachtet man einen Fall, in dem ein Chip ein Chipkill-Ereignis erfahren hat, zum Beispiel den zweiten Burst 152, und unter der Annahme von insgesamt 10 ECC-Löschdecodierern, wird jeder der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240 parallel betrieben, wobei jeder annimmt, dass ein anderer Chip derjenige Chip ist, der das Chipkill-Ereignis erfahren hat. Jeder der ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240 decodiert den DDR-Burst und gibt eine Anzahl an Überschuss-Symbolkorrekturen zurück. Während einer der ECC-Löschdecodierer das Decodieren unter der Annahme des korrekten Chipkill-Orts durchgeführt hat, haben die anderen 9 ECC-Löschdecodierer das Decodieren unter Annahme durchgeführt, dass ein anderer Chip als derjenige, der das Chipkill-Ereignis tatsächlich erfahren hat, ein Chipkill-Ereignis erfahren hat. Der ECC-Löschdecodierer, der diesen korrekten Chipkill-Ort angenommen wird, wird während der Decodierung keine Überschuss-Symbolkorrekturen verwenden, da keine Zufallsfehler zu korrigieren sind. Das Decodieren durch die anderen 9 ECC-Löschdecodierer führt zu ungültigen Lösungen. Einige der ungültigen Lösungen führen zu keiner Lösung, während andere ungültige Lösungen zu einer großen Anzahl an Überschuss-Symbolkorrekturen führen. Der vorbestimmte Schwellenwert für Überschuss-Symbolkorrekturen definiert die Anzahl der Überschuss-Symbolkorrekturen, um die eine beste Lösung besser sein muss als eine zweitbeste Lösung, um als ECC-Löschdecodierer zu gelten, der den korrekten Chipkill-Ort angenommen hat. Rn sei die Anzahl der Überschuss-Symbolkorrekturen für jeden der ECC-Löschdecodierer, wobei n von 1 bis zur Anzahl der ECC-Löschdecodierer im ECC-Chipkill-Decodiererarray 220 geht. Wenn min2(Rn) - min (Rn) >= vorbestimmter Schwellenwert für Überschuss-Symbolkorrekturen ist, wird der Ausgang des Decodierers ausgewählt, der min (Rn) entspricht. Hier ist min die einfache min-Funktion, während min2 den zweiten min-Wert aus einer Menge zurückgibt (den zweitniedrigsten Wert).
  • Der vorbestimmte Schwellenwert für Überschuss-Symbolkorrekturen verhindert, dass fehlerhafte Daten von einem der ECC-Löschdecodierer des ECC-Chipkill-Decodiererarrays 220 übertragen werden. Wenn die Anzahl der Fehler bei einem ECC-Löschdecodierer die Korrekturfähigkeit des ECC-Löschdecodierers überschreitet, ist das wahrscheinlichste Ergebnis, dass der ECC-Löschdecodierer angibt, dass er keine Lösung hat. Dieses wahrscheinlichste Ergebnis kann im Auswahlprozess leicht herausgefiltert werden. Es ist jedoch auch möglich, dass der ECC-Löschdecodierer zu einer falschen Decodierung führt, wobei der ECC-Löschdecodierer angibt, dass er eine Lösung hat, die eine mathematische Lösung ist, die alle Gleichungen innerhalb des Decodierers erfüllt, aber das Ergebnis nicht das tatsächlich codierte Paket darstellt. Ein falsches Decodierergebnis muss aus dem Auswahlprozess herausgefiltert werden, um zu verhindern, dass fehlerhafte Daten in das System gelangen. Der vorbestimmte Schwellenwert für Überschuss-Symbolkorrekturen kann vor Ort eingestellt werden, um die Auswahlkriterien speziell auf die besonderen Merkmale eines jeden Systems abzustimmen, damit die falsche Decodierung herausgefiltert und die Übertragung fehlerhafter Daten in das System verhindert wird. Im Allgemeinen wird bei einer falschen Decodierung die gesamte Überschuss-Symbolkorrekturkapazität (E int = 2 ∗ R + E) des ECC-Löschdecodierers verwendet, während bei einer korrekten Decodierung in der Regel nur sehr wenig von der Überschuss-Symbolkorrekturkapazität (E) des ECC-Löschdecodierers verwendet wird. In einem bestimmten Beispiel, bei dem die Überschuss-Symbolkorrekturkapazität (E) gleich 4 ist, wie es in einem DDR5-System der Fall ist, wird der ECC-Löschdecodierer mit der korrekten Decodierung fast immer 0 Überschuss-Symbolkorrekturen verwenden, und ein ECC-Löschdecodierer, der zu einer falschen Decodierung führt, wird fast immer 4 Überschuss-Symbolkorrekturen verwenden. Die Wahrscheinlichkeit, dass die Anzahl der Überschuss-Symbolkorrekturen für jeden der ECC-Löschdecodierer zwischen 0 und 4 liegt, hängt von verschiedenen Faktoren ab, einschließlich der Hintergrundfehlerrate des Systems selbst, der Wahrscheinlichkeitsverteilungen für Überschuss-Fehler der ECC-Löschdecodierer und der Datenintegritätsanforderungen des Systems. Der vorbestimmte Schwellenwert für Überschuss-Symbolkorrekturen kann basierend auf der Kenntnis der Faktoren eingestellt werden, um falsche Decodierergebnisse herauszufiltern, die zu einer Übertragung fehlerhafter Daten führen können.
  • Nachdem der ECC-Löschdecodierer der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, der die geringste Anzahl an Überschuss-Symbolkorrekturen aufweist, identifiziert wurde, wird der DDR-Burst 215 unter Verwendung des identifizierten ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekturen decodiert. Das Ergebnis der Decodierung ist der decodierte DDR-Burst 280.
  • Nach der Identifizierung des ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekturen wird das Decodieren nachfolgender DDR-Bursts aus der DDR-Speichervorrichtung 210 unter Verwendung des ECC-Löschdecodierers, der als derjenige mit der geringsten Anzahl an Überschuss-Symbolkorrekturen identifiziert wurde, und des ECC-Zufallsfehlerdecodierers 205 parallel durchgeführt.
  • Zusätzlich reduziert der DDR-Chipkill-Decodierer 225 die mit dem Identifizieren eines Chipkill-Ereignisses verbundene Latenz durch den Betrieb der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 parallel und parallel zu dem ECC-Zufallsfehlerdecodierer 205, wobei jeder einen anderen Chip der DDR-Speichervorrichtung 210 als Chip annimmt, der ein Chipkill-Ereignis erfahren hat.
  • Der DDR-Chipkill-Decodierer 225 kann in einem von mehreren unterschiedlichen Modi arbeiten, einschließlich 10-Chip- und 9-Chip-DDR5- sowie 18-Chip-DDR4-Betrieb. Wie in 2 gezeigt, kann das ECC-Chipkill-Decodiererarray 220 bis zu 18 Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 für den DDR4-Betrieb einschließen. Alternativ können einige der Löschdecodierer für den DDR5-Betrieb eliminiert werden. Zum Beispiel könnten nur ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238 in einer 9-Chip-DDR5-Lösung implementiert werden oder nur ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240 in einer 10-Chip-DDR 5-Lösung implementiert werden. Es sollte auch beachtet werden, dass die ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 des ECC-Chipkill-Decodiererarrays 220 signifikant kleiner sein können als der ECC-Zufallsfehlerdecodierer 205. Zum Beispiel kann die Symbolkorrekturkapazität des ECC-Zufallsfehlerdecodierers 205 größer sein als die Symbolkorrekturkapazität jedes der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256. Wenn jedoch ein Chipkill-Ereignis auf einer Vorrichtung aufgetreten ist, das durch den ECC-Zufallsfehlerdecodierer 205 decodiert wird, kann der ECC-Zufallsfehlerdecodierer 205 aufgrund der begrenzten Symbolkorrekturkapazität des ECC-Zufallsfehlerdecodierers 205 möglicherweise nicht in der Lage sein, den Burst zu decodieren. In verschiedenen Situationen kann der ECC-Zufallsfehlerdecodierer 205 möglicherweise nicht in der Lage sein, den Burst zu decodieren, oder kann den Burst zwar decodieren, hat aber dabei null Überschuss-Symbolkorrekturfähigkeit. Die Verwendung des ECC-Chipkill-Decodiererarrays 220 in Kombination mit dem ECC-Zufallsfehlerdecodierer 205 ermöglicht die Korrektur eines Chipkill-Ereignisses, während immer noch etwas Überschuss-Symbolkorrekturfähigkeit bereitgestellt wird.
  • Überschuss-Korrektur ist die Zufallsfehlerkorrekturkapazität des Reed-Solomon(RS)-Codes, nachdem die gelöschten Chipkill-Orte berücksichtigt wurden. Je mehr Überschuss-Korrekturkapazität vorhanden ist, desto zuverlässiger kann der richtige Chipkill-Ort bestimmt werden. In Fällen, in denen die Überschuss-Kapazität gering ist, muss der DDR-Chipkill-Decodierer 225 möglicherweise mehrere nachfolgende Bursts verarbeiten, die das Chipkill-Ereignis aufweisen, um den Chipkill-Ort korrekt zu identifizieren. Wenn zum Beispiel die Decodierauswahllogikschaltung 260 nicht in der Lage ist, denjenigen ECC-Löschdecodierer der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, der die geringste Anzahl an Überschuss-Symbolkorrekturen aufweist, durch Decodieren der codierten Symbole eines ersten DDR-Bursts zu identifizieren, kann die Decodierauswahllogikschaltung eine Vielzahl von nachfolgenden DDR-Bursts 215 empfangen, die jeweils eine Vielzahl von codierten Symbolen umfassen, nachdem der ECC-Zufallsfehlerdecodierer 205 die codierten Symbole nicht erfolgreich decodieren konnte. Die nachfolgenden DDR-Bursts 215 können dann von jedem der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 decodiert werden, und die Anzahl an Überschuss-Symbolkorrekturen, die während des Decodierens der Vielzahl von nachfolgenden DDR-Bursts 215 von jedem der Vielzahl von ECC-Löschdecodierern vorgenommen werden, kann akkumuliert werden 285. Nach der Akkumulation kann für jeden der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, die zu einer gültigen Decodierlösung der nachfolgenden DDR-Bursts 215 führen, der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen basierend auf der akkumulierten Anzahl an Überschuss-Symbolkorrekturen 285 identifiziert werden, die während der Decodierung des ersten DDR-Bursts 215 und der nachfolgenden DDR-Bursts 215 durch jeden der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 vorgenommen wurden. Wie vorstehend angegeben, steht in einem Beispiel der Begriff „geringste Anzahl“ im Verhältnis zu einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen als eine minimale erforderliche Differenz.
  • 3A und 3B veranschaulichen in Kombination ein Flussdiagramm eines Verfahrens 300 zum Durchführen einer Chipkill-Decodierung mit doppelter Datenrate (DDR) gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Bei Vorgang 305 von 3A beinhaltet das Verfahren 300 das Empfangen, an einer DDR-Schnittstelle, eines DDR-Bursts, der eine Vielzahl von codierten Symbolen aus einer DDR-Speichervorrichtung umfasst, wobei die DDR-Speichervorrichtung eine Vielzahl von Chips umfasst. Unter Bezugnahme auf 2 wird ein DDR-Burst 215, der eine Vielzahl von codierten Symbolen aus einer DDR-Speichervorrichtung 210 umfasst, an einer DDR-Schnittstelle 275 empfangen.
  • Bei Vorgang 310 fährt das Verfahren mit dem Decodieren des DDR-Bursts unter Verwendung eines Fehlerkorrekturcode(ECC)-Zufallsfehlerdecodierers an der DDR-Schnittstelle fort. Unter Bezugnahme auf 2 decodiert ein ECC-Zufallsfehlerdecodierer 205 der DDR-Schnittstelle 275 den DDR-Burst 215.
  • Wenn bei Vorgang 315 die in Vorgang 310 durchgeführte Decodierung des DDR-Bursts unter Verwendung des ECC-Zufallsfehlerdecodierers den DDR-Burst nicht decodieren kann, fährt das Verfahren bei Vorgang 325 mit dem Decodieren des DDR-Bursts unter Verwendung eines ECC-Chipkill-Decodiererarrays fort, das eine Vielzahl von parallel arbeitenden ECC-Löschdecodierern umfasst, wobei jeder der Vielzahl von ECC-Löschdecodierern den DDR-Burst unter der Annahme decodiert, dass ein anderer Chip der Vielzahl von Chips der DDR-Speichervorrichtung ein Chipkill-Ereignis erfahren hat. Insbesondere kann der ECC-Zufallsfehlerdecodierer den DDR-Burst nicht decodieren, wenn eine Anzahl an Symbolfehlern im DDR-Burst größer ist als eine Symbolkorrekturkapazität des ECC-Zufallsfehlerdecodierers. In einer spezifischen Ausführungsform ist die Symbolkorrekturkapazität des ECC-Zufallsfehlerdecodierers größer als eine Symbolkorrekturkapazität jedes der Vielzahl von ECC-Löschdecodierern des ECC-Chipkill-Decodiererarrays. Wenn alternativ bei Vorgang 315 die Decodierung des DDR-Bursts unter Verwendung des ECC-Zufallsfehlerdecodierers nicht fehlschlägt, dann stellt der ECC-Zufallsfehlerdecodierer bei Vorgang 320 einen decodierten DDR-Burst bereit. Unter Bezugnahme auf 2 decodiert, wenn der ECC-Zufallsfehlerdecodierer 205 den DDR-Burst 215 nicht decodieren kann, ein ECC-Chipkill-Decodiererarray 220 den DDR-Burst 215, wobei jeder der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 des ECC-Chipkill-Decodiererarrays 220 den DDR-Burst 215 unter der Annahme decodiert, dass ein anderer Chip der Vielzahl von Chips 250, 252, 254, 256, 258, 260, 262, 264, 266, 268 der DDR-Speichervorrichtung 210 ein Chipkill-Ereignis erfahren hat. Wenn alternativ der ECC-Zufallsfehlerdecodierer 205 beim Decodieren des DDR-Bursts 215 erfolgreich ist, wird ein decodierter DDR-Burst 280 durch den ECC-Zufallsfehlerdecodierer 205 bereitgestellt.
  • Nach dem Decodieren des DDR-Bursts unter Verwendung der Vielzahl von ECC-Löschdecodierern des ECC-Chipkill-Decodiererarrays fährt das Verfahren 300 mit Vorgang 330 von 3B fort, wobei für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung führen, eine Anzahl an Überschuss-Symbolkorrekturen identifiziert wird, die während der Decodierung vorgenommen wurden, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die auf dem angenommenen gelöschten Chip vorgenommen wurden. Unter Bezugnahme auf 2 identifiziert die Decodierauswahllogikschaltung 270 die Anzahl der Überschuss-Symbolkorrekturen, die während der Decodierung durch die Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 des ECC-Chipkill-Decodiererarrays 220 vorgenommen wurden, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die an dem angenommenen gelöschten Chip 250, 252, 254, 256, 258, 260, 262, 264, 266, 268 der DDR-Speichervorrichtung 210 vorgenommen wurden.
  • Nach der Identifizierung der Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung durch die Vielzahl von ECC-Löschdecodierern vorgenommen wurden, fährt das Verfahren 300 dann mit Vorgang 335 fort, indem der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen identifiziert wird. Wie vorstehend angegeben, steht in einem Beispiel der Begriff „geringste Anzahl“ im Verhältnis zu einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen als eine minimale erforderliche Differenz. Unter Bezugnahme auf 2 schließt die Decodierauswahllogikschaltung 270 eine Schaltlogik ein, um die Anzahl an Überschuss-Symbolkorrekturen, die von jedem der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 244, 246, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 vorgenommen wurden, zu vergleichen und den ECC-Löschdecodierer der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 zu identifizieren, der die geringste Anzahl an Überschuss-Symbolkorrekturen über einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen aufweist. Wenn ein Chipkill-Ereignis auftritt, stellt der ECC-Zufallsfehlerdecodierer 205 entweder eine Übereinstimmung mit einem der vorhandenen ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, wobei die Zufallsfehlerkorrekturkapazität des ECC-Zufallsfehlerdecodierers 205 ausreicht, um einen Burst aus der Vorrichtung zu decodieren, die ein Chipkill-Ereignis erfährt, und es keine zusätzlichen Fehler gibt, einen Decodiermisserfolg, wenn keine Lösung verfügbar ist, oder ein Decodierergebnis mit sehr hoher Überschuss-Symbolkorrektur bereit. Eine Übereinstimmung tritt zwischen dem ECC-Zufallsfehlerdecodierer 205 und einem der vorhandenen ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 auf, wenn der ECC-Zufallsfehlerdecodierer 205 in der Lage ist, alle Fehler aus dem Chipkill-Ereignis unabhängig zu korrigieren. In diesem Fall liefern der ECC-Zufallsfehlerdecodierer 205 und der ECC-Löschdecodierer die gleiche Lösung, d. h. die gleichen Symbole werden auf die gleichen Werte korrigiert. Die möglichen Ergebnisse des ECC-Zufallsfehlerdecodierers 205 werden innerhalb 270 zusammen mit den Ergebnissen der Decodierung von jedem der ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 gefiltert. Die Ergebnisse des ECC-Zufallsfehlerdecodierers 205 und die Überschuss-Symbolkorrekturen von jedem der ECC-Löschdecodierer222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 werden durch die Decodierauswahllogikschaltung 270 gefiltert, um zu einer einzelnen Ausgabe, d. h. einem decodierten DDR-Burst 280, zu gelangen.
  • Die Decodierauswahllogikschaltung 270 filtert die Ergebnisse des ECC-Zufallsfehlerdecodierers 205 und die Überschuss-Symbolkorrekturen von jedem der ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 durch Auswählen des ECC-Zufallsfehlerdecodierers 205 als den decodierten DDR-Burst 280, wenn der ECC-Zufallsfehlerdecodierer 205 in der Lage ist, den Burst zu decodieren, oder wenn eine Übereinstimmung zwischen dem ECC-Zufallsfehlerdecodierer 205 und einem der vorhandenen ECC-Löschdecodierer 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 vorliegt. Wenn der ECC-Zufallsfehlerdecodierer den Burst nicht decodieren kann, wählt die Decodierauswahllogikschaltung 270 den ECC-Löschdecodierer aus, der die geringste Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen aufweist. Wenn die Decodierauswahllogikschaltung 270 nicht in der Lage ist, einen klaren Gewinner aus den ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 auszuwählen, werden die ECC-Löschdecodierer, die am wahrscheinlichsten zu einer zukünftigen Decodierlösung führen, identifiziert, und zukünftige Burst-Decodierungen werden verwendet, um den korrekten Chipkill-Decodierer im Laufe der Zeit mit der Unterstützung von Firmware zum Verfolgen der Trainingsschritte zu erlernen.
  • Insbesondere wenn ein erster ECC-Löschdecodierer zu 2 Überschuss-Symbolkorrekturen führt und ein zweiter ECC-Löschdecodierer zu 3 Überschuss-Symbolkorrekturen führt, ist die Decodierauswahllogikschaltung 270 möglicherweise nicht in der Lage, einen klaren Gewinner auszuwählen. Da in dieser Situation das Decodieren nachfolgender Speicherblöcke dazu neigen wird, denselben korrekten Chipkill-Ort aufzuweisen (d. h. der erste ECC-Löschdecodierer wird immer im Pool möglicher Lösungen sein), werden zukünftige Decodierungen basierend darauf gefiltert, wo frühere Chipkill-Decodierungen erfolgreich waren und wo die wenigsten akkumulierten Überschuss-Fehler auftreten, bis die Decodierauswahllogikschaltung 270 in der Lage ist, einen Gewinner auszuwählen. Zum Beispiel würde eine nachfolgende Decodierung mit dem ersten ECC-Löschdecodierer wahrscheinlich zu einer Decodierlösung mit 0 Überschuss-Symbolkorrekturen führen, und eine nachfolgende Decodierung mit dem zweiten ECC-Löschdecodierer würde wahrscheinlich zu einem Decodiermisserfolg führen (d. h. 4 Überschuss-Symbolkorrekturen), was zu nur einem einzigen Chipkill-Ort mit einer mathematischen Lösung für den Speicherblock führt, die durch die Decodierauswahllogikschaltung 270 als Gewinner ausgewählt würde.
  • Alternativ gibt es, wenn die gleichen zwei Speicherblöcke in den nächsten Chipkill involviert sind, insgesamt 2 Überschuss- Symbolkorrekturen für den ersten ECC-Löschdecodierer (2 aus dem ersten Decodieren und 0 aus dem zweiten Decodieren) und insgesamt 7 Überschuss-Symbolkorrekturen für den zweiten ECC-Löschdecodierer (3 aus dem ersten Decodieren und 4 aus dem zweiten Decodieren). Die Differenz zwischen den akkumulierten Überschuss-Symbolkorrekturen des ersten ECC-Löschdecodierers und des zweiten ECC-Löschdecodierers beträgt nun 5 statt 1, wenn nur das erste Blockdecodieren berücksichtigt wird. Angesichts dieser hohen Überschuss-Symbolkorrektur-Differenz kann die Decodierauswahllogikschaltung 270 den ersten ECC-Löschdecodierer klar als den Gewinner auswählen.
  • In Vorgang 340 schließt das Verfahren 300 mit dem Decodieren des DDR-Bursts unter Verwendung des identifizierten ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen ab. Unter Bezugnahme auf 2 wird der DDR-Burst 215 unter Verwendung des ECC-Löschdecodierers der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 decodiert, der durch die Decodierauswahllogikschaltung 260 als derjenige mit der geringsten Anzahl an Überschuss-Symbolkorrekturen identifiziert wurde. Wie vorstehend angegeben, steht in einem Beispiel der Begriff „geringste Anzahl“ im Verhältnis zu einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen als eine minimale erforderliche Differenz. Das Ergebnis der Decodierung des DDR-Bursts 215 ist ein decodierter DDR-Burst 280. Außerdem wird der ECC-Löschdecodierer, der als derjenige mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen identifiziert wurde, aktiviert, um nachfolgende DDR-Bursts zu decodieren, die aus der DDR-Speichervorrichtung empfangen werden. Unter Bezugnahme auf 2 wird der ECC-Löschdecodierer der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, der durch die Decodierauswahllogikschaltung 260 als derjenige mit der geringsten Anzahl an Überschuss-Symbolkorrekturen identifiziert wurde, verwendet, um nachfolgende DDR-Bursts aus der DDR-Speichervorrichtung 210 zu decodieren.
  • Sobald ein Chip als Chip identifiziert wurde, der ein Chipkill-Ereignis erfahren hat, wird der ECC-Löschdecodierer, der durch die Decodierauswahllogikschaltung 260 als derjenige mit der geringsten Anzahl an Überschuss-Symbolkorrekturen identifiziert wurde, verwendet, um nachfolgende Bursts zu decodieren. Ein Decodieren unter Verwendung des ECC-Zufallsfehlerdecodierers 205 oder der anderen ECC-Löschdecodierer ist nicht mehr erforderlich. Obwohl die anderen ECC-Löschdecodierer zum Decodieren verwendet werden können, um statistische Informationen bezüglich der Anzahl an Überschuss-Symbolkorrekturen zu sammeln, werden die Ergebnisse in der Decodierauswahllogikschaltung 270, die auf diese ausgefallene Vorrichtung abgestimmt ist, nicht berücksichtigt. Wenn eine andere Vorrichtung einen Chipkill erfährt, während ein ausgewählter der ECC-Löschdecodierer zum Decodieren verwendet wird, gelten alle Informationen als verloren, da der DDR-Chipkill-Decodierer 225 zwar eine ausgefallene Vorrichtung überleben kann, aber nicht zwei.
  • 4 veranschaulicht ein Flussdiagramm eines Verfahrens 400 zum Durchführen von Chipkill-Decodierung mit doppelter Datenrate (DDR), wenn der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen oberhalb des vorbestimmten Schwellenwerts für Überschuss-Symbolkorrekturen nicht durch Decodieren eines ersten DDR-Bursts unter Verwendung des ECC-Chipkill-Decodiererarrays identifiziert werden kann.
  • Das Verfahren 400 beginnt bei Vorgang 405 mit dem Empfangen einer Vielzahl von nachfolgenden DDR-Bursts, die jeweils eine Vielzahl codierter Symbole umfassen, um den ersten DDR-Burst zu decodieren. Unter Bezugnahme auf 2 kann eine Vielzahl von nachfolgenden DDR-Bursts 215 aus der DDR-Speichervorrichtung 210 durch den ECC-Zufallsfehlerdecodierer 205 und das ECC-Chipkill-Decodiererarray 220 empfangen werden, nachdem der ECC-Zufallsfehlerdecodierer 205 den ersten DDR-Burst nicht decodieren konnte.
  • Bei Vorgang 410 fährt das Verfahren 400 mit dem Decodieren der Vielzahl von nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern und mit dem Akkumulieren der Anzahl an Überschuss-Symbolkorrekturen fort, die während des Decodierens der Vielzahl von nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen wurden. Unter Bezugnahme auf 2 wird die Vielzahl von nachfolgenden DDR-Bursts 215 durch jeden der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 des ECC-Chipkill-Decodiererarrays 220 decodiert, und die Anzahl der während des Decodierens der Vielzahl von nachfolgenden DDR-Bursts vorgenommenen Überschuss-Symbolkorrekturen wird bei der Decodierauswahllogikschaltung 270 akkumuliert 285.
  • Insbesondere wenn der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen nicht identifiziert werden kann, indem ein erster DDR-Burst unter Verwendung des ECC-Chipkill-Decodiererarrays decodiert wird, weil sich die Überschuss-Symbolkorrekturen bei zwei oder mehr der ECC-Löschdecodierer nicht um den vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen unterscheiden, werden die Überschuss-Symbolkorrekturen über verschiedene Bursts zu verschiedenen Zeiten akkumuliert, um den korrekten Chipkill-Ort zu bestimmen. Der ECC-Löschdecodierer, der den korrekten Chipkill-Ort des Chips annimmt, liefert durchweg sehr wenige Überschuss-Symbolkorrekturen, während ein ECC-Löschdecodierer, der einen falschen Chipkill-Ort des Chips annimmt, entweder keine Lösung oder eine Lösung mit einer hohen Anzahl an Überschuss-Symbolkorrekturen liefert. Da die Überschuss-Korrekturen für jeden ECC-Löschdecodierer akkumuliert werden. Wenn nur ein einziger ECC-Löschdecodierer eine gültige Lösung bereitstellt (d. h. alle anderen ECC-Löschdecodierer geben einen Decodiermisserfolg an) oder wenn eine Lösung die geringste Fehleranzahl aufweist, d. h. besser ist als alle anderen, und zwar mindestens um den vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen, und nur eine einzige Lösung einen gültigen CRC (falls zutreffend) bereitstellt, dann gibt es einen klaren Gewinner. Die anderen Lösungen werden, sofern vorhanden, verworfen.
  • Das Verfahren 400 schließt bei Vorgang 415 ab, wobei für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung der nachfolgenden DDR-Bursts führen, der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen basierend auf der akkumulierten Anzahl an Überschuss-Symbolkorrekturen identifiziert wird, die während der Decodierung des ersten DDR-Bursts und der nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen wurden. Wie vorstehend angegeben, steht in einem Beispiel der Begriff „geringste Anzahl“ im Verhältnis zu einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen als eine minimale erforderliche Differenz. Unter Bezugnahme auf 2 wird für jeden der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 des ECC-Chipkill-Decodiererarrays 220, die zu einer gültigen Decodierlösung der nachfolgenden DDR-bursts 215 führen, der ECC-Löschdecodierer mit der geringsten Anzahl an Überschuss-Symbolkorrekturen basierend auf der akkumulierten Anzahl an Überschuss-Symbolkorrekturen 285 identifiziert, die während der Decodierung des ersten DDR-Bursts und der nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256 vorgenommen wurden.
  • Die Lösung wird im Allgemeinen ein Chipkill-Ereignis wiederherstellen, ohne dass der Ort auf dem ersten Burst, an dem das Chipkill-Ereignis ausgelöst wurde, vorher bekannt ist. Wenn die Lösung nicht auf dem ersten Burst gefunden wird, können die Überschuss-Symbolkorrekturen wie oben beschrieben akkumuliert werden, bis eine Lösung gefunden wird. Die Lösung wird unter den meisten Umständen automatisch ohne Firmware-Unterstützung funktionieren. In einigen Fällen kann Firmware-Unterstützung erforderlich sein, um während des Akkumulationsprozesses zwischen verschiedenen Blöcken zu wechseln, wenn auf einem ersten Burst keine Lösung gefunden wird. In einer beispielhaften Implementierung erfolgt die Bestimmung des Ortes des Chipkills in Hardware, da diese über alle Informationen für einen gegebenen Burst verfügt, und dies rechtzeitig. Somit wird eine Lösung mit niedriger Latenz bereitgestellt, die den Datenverlust minimiert und die Firmware-Interaktion mit dem Decodierer minimiert.
  • In einer Ausführungsform kann der DDR-Chipkill-Decodierer mit niedriger Latenz in einer integrierten Schaltung als ein einzelner Halbleiter-Die implementiert sein.
  • In verschiedenen Ausführungsformen können Abschnitte des Systems der vorliegenden Erfindung in einem feldprogrammierbaren Gate-Array (FPGA) oder in einer anwendungsspezifischen integrierten Schaltung (ASIC) implementiert sein. Wie der Fachmann erkennt, können verschiedene Funktionen von Schaltungselementen auch als Verarbeitungsschritte in einem Softwareprogramm implementiert sein. Eine solche Software kann zum Beispiel in einem Digitalsignalprozessor, einem Netzwerkprozessor, einem Mikrocontroller oder einem Universalcomputer eingesetzt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/180615 [0001]
    • US 17/671423 [0001]

Claims (20)

  1. Verfahren zur Chipkill-Decodierung mit doppelter Datenrate (DDR), wobei das Verfahren umfasst: Empfangen, an einer DDR-Schnittstelle, eines DDR-Bursts, der eine Vielzahl von codierten Symbolen aus einer DDR-Speichervorrichtung umfasst, wobei die DDR-Speichervorrichtung eine Vielzahl von Chips umfasst; Decodieren, an der DDR-Schnittstelle, des DDR-Bursts unter Verwendung eines Fehlerkorrekturcode-Zufallsfehlerdecodierers; wenn das Decodieren des DDR-Bursts unter Verwendung des ECC-Zufallsfehlerdecodierers den DDR-Burst nicht decodieren kann; Decodieren des DDR-Bursts unter Verwendung eines ECC-Chipkill-Decodiererarrays, das eine Vielzahl von parallel arbeitenden ECC-Löschdecodierern umfasst, wobei jeder der Vielzahl von ECC-Löschdecodierern den DDR-Burst unter der Annahme decodiert, dass ein anderer Chip der Vielzahl von Chips der DDR-Speichervorrichtung ein Chipkill-Ereignis erfahren hat; für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung führen, Identifizieren einer Anzahl an Überschuss-Symbolkorrekturen, die während des Decodierens vorgenommen werden, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die an dem Chip vorgenommen wurden, von dem angenommen wird, dass er das Chipkill-Ereignis erfahren hat; Identifizieren des ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekten; und Decodieren des DDR-Bursts unter Verwendung des identifizierten ECC-Löschdecodierers mit der geringsten Anzahl von Überschuss-Symbolkorrekturen.
  2. Verfahren nach Anspruch 1, wobei die geringste Anzahl an Überschuss-Symbolkorrekturen im Verhältnis zu einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen als eine minimale erforderliche Differenz steht.
  3. Verfahren nach Anspruch 1, umfassend Aktivieren des ECC-Löschdecodierers, der als die geringste Anzahl an Überschuss-Symbolkorrekturen aufweisend identifiziert wurde, um nachfolgende DDR-Bursts zu decodieren, die aus der DDR-Speichervorrichtung empfangen werden.
  4. Verfahren nach Anspruch 1, wobei, wenn der ECC-Löschdecodierer, der die geringste Anzahl von Überschuss-Symbolkorrekturen aufweist, nicht durch Decodieren eines ersten DDR-Bursts unter Verwendung des ECC-Chipkill-Decodiererarrays identifiziert werden kann, das Verfahren umfasst: Empfangen einer Vielzahl von nachfolgenden DDR-Bursts, die jeweils eine Vielzahl von codierten Symbolen umfassen; Decodieren der Vielzahl von nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern und Akkumulieren der Anzahl an Überschuss-Symbolkorrekturen, die während des Decodierens der Vielzahl von nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen werden; und für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung der nachfolgenden DDR-Bursts führen, Identifizieren desjenigen ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekturen basierend auf der akkumulierten Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung des ersten DDR-Bursts und der nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen werden.
  5. Verfahren nach Anspruch 4, wobei die geringste Anzahl an Überschuss-Symbolkorrekturen im Verhältnis zu einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen als eine minimale erforderliche Differenz steht.
  6. Verfahren nach Anspruch 1, wobei der ECC-Zufallsfehlerdecodierer ein Reed-Solomon-ECC-Zufallsfehlerdecodierer ist.
  7. Verfahren nach Anspruch 1, wobei jeder der Vielzahl von ECC-Löschdecodierern ein Reed-Solomon-ECC-Löschdecodierer ist.
  8. Verfahren nach Anspruch 1, wobei eine Symbolkorrekturkapazität des ECC-Zufallsfehlerdecodierers größer ist als eine Symbolkorrekturkapazität jedes der Vielzahl von ECC-Löschdecodierern.
  9. Verfahren nach Anspruch 1, wobei die DDR-Schnittstelle eine DDR4-Schnittstelle oder eine DDR5-Schnittstelle ist.
  10. Chipkill-Decodierer mit doppelter Datenrate (DDR), umfassend: einen Fehlerkorrekturcode(ECC)-Zufallsfehlerdecodierer, um einen DDR-Burst zu empfangen, der eine Vielzahl von codierten Symbolen aus einer DDR-Speichervorrichtung umfasst, wobei die DDR-Speichervorrichtung eine Vielzahl von Chips umfasst; ein ECC-Chipkill-Decodiererarray, das eine Vielzahl von ECC-Löschdecodierern umfasst, um den DDR-Burst zu decodieren, wenn der ECC-Zufallsfehler-Decodierer den DDR-Burst nicht decodieren kann, wobei alle der Vielzahl von ECC-Löschdecodierern parallel arbeiten, um den DDR-Burst unter der Annahme zu decodieren, dass ein anderer Chip der Vielzahl von Chips der DDR-Speichervorrichtung ein Chipkill-Ereignis erfahren hat; und eine Decodierauswahllogikschaltung zum: Identifizieren, für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung führen, einer Anzahl von Überschuss-Symbolkorrekturen, die während des Decodierens vorgenommen wurden, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die an dem Chip vorgenommen wurden, von dem angenommen wird, dass er den Chipkill erfahren hat; Identifizieren des ECC-Löschdecodierers mit einer geringsten Anzahl an Überschuss-Symbolkorrekten; und Decodieren der DDR-Bursts unter Verwendung des identifizierten ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekturen.
  11. DDR-Chipkill-Decodierer nach Anspruch 10, wobei die geringste Anzahl an Überschuss-Symbolkorrekturen im Verhältnis zu einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen als eine minimale erforderliche Differenz steht.
  12. DDR-Chipkill-Decodierer nach Anspruch 10, wobei der ECC-Löschdecodierer, der als die geringste Anzahl an Überschuss-Symbolkorrekturen aufweisend identifiziert wurde, dazu dient, die nachfolgenden DDR-Bursts zu decodieren, die aus der DDR-Speichervorrichtung empfangen werden.
  13. DDR-Chipkill-Decodierer nach Anspruch 10, wobei, wenn die Decodierauswahllogikschaltung nicht in der Lage ist, den ECC-Löschdecodierer, der die geringste Anzahl an Überschuss-Symbolkorrekturen aufweist, durch Decodieren der codierten Symbole eines ersten DDR-Bursts zu identifizieren, die Decodierauswahllogikschaltung zu Folgendem dient: Empfangen einer Vielzahl von nachfolgenden DDR-Bursts, die jeweils eine Vielzahl von codierten Symbolen umfassen; Decodieren der nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern und Akkumulieren der Anzahl an Überschuss-Symbolkorrekturen, die während des Decodierens der Vielzahl von nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen werden; und für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung der nachfolgenden DDR-Bursts führen, Identifizieren desjenigen ECC-Löschdecodierers mit der geringsten Anzahl an Überschuss-Symbolkorrekturen basierend auf der akkumulierten Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung des ersten DDR-Bursts und der nachfolgenden DDR-Bursts durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen werden.
  14. DDR-Chipkill-Decodierer nach Anspruch 10, wobei der ECC-Zufallsfehlerdecodierer ein Reed-Solomon-ECC-Zufallsfehlerdecodierer ist.
  15. DDR-Chipkill-Decodierer nach Anspruch 10, wobei jeder der Vielzahl von ECC-Löschdecodierern ein Reed-Solomon-ECC-Löschdecodierer ist.
  16. DDR-Chipkill-Decodierer nach Anspruch 10, wobei eine Symbolkorrekturkapazität des ECC-Zufallsfehlerdecodierers größer ist als eine Symbolkorrekturkapazität jedes der Vielzahl von ECC-Löschdecodierern.
  17. Speichersteuerung, umfassend: eine Schnittstelle mit doppelter Datenrate (DDR-Schnittstelle) in Kommunikation mit einer oder mehreren DDR-Speichervorrichtungen, wobei die DDR-Schnittstelle zum Empfangen eines DDR-Bursts dient, der eine Vielzahl von codierten Symbolen aus der DDR-Speichervorrichtung umfasst, wobei die DDR-Speichervorrichtung eine Vielzahl von Chips umfasst; einen DDR-Chipkill-Decodierer, der in Kommunikation mit der DDR-Schnittstelle steht, wobei der DDR-Chipkill-Decodierer umfasst: einen Fehlerkorrekturcode(ECC)-Zufallsfehlerdecodierer, um den DDR-Burst aus der DDR-Schnittstelle zu empfangen; ein ECC-Chipkill-Decodiererarray, umfassend eine Vielzahl von ECC-Löschdecodierern, um den DDR-Burst zu decodieren, wobei alle der Vielzahl von ECC-Löschdecodierern parallel arbeiten, um den DDR-Burst unter Annahme zu decodieren, dass ein anderer Chip der Vielzahl von Chips der DDR-Speichervorrichtung ein Chipkill-Ereignis erfahren hat; eine Decodierauswahllogikschaltung zum: Identifizieren, für jeden der Vielzahl von ECC-Löschdecodierern, die zu einer gültigen Decodierlösung führen, einer Anzahl an Überschuss-Symbolkorrekturen, die während der Decodierung durch jeden der Vielzahl von ECC-Löschdecodierern vorgenommen wurden, wobei die Überschuss-Symbolkorrekturen Symbolkorrekturen sind, die über die Symbolkorrekturen hinausgehen, die an dem gelöschten Chip vorgenommen wurden; Identifizieren des ECC-Löschdecodierers mit einer geringsten Anzahl an Überschuss-Symbolkorrekten; und wobei der ECC-Löschdecodierer, der die geringste Anzahl an Überschuss-Symbolkorrekturen aufweist, den DDR-Burst decodiert.
  18. Speichersteuerung nach Anspruch 17, wobei die geringste Anzahl an Überschuss-Symbolkorrekturen im Verhältnis zu einem vorbestimmten Schwellenwert für Überschuss-Symbolkorrekturen als eine minimale erforderliche Differenz steht.
  19. Speichersteuerung nach Anspruch 17, wobei die DDR-Schnittstelle eine DDR4-Burst-Schnittstelle oder eine DDR5-Burst-Schnittstelle ist.
  20. Speichersteuerung nach Anspruch 17, wobei der ECC-Zufallsfehlerdecodierer ein Reed-Solomon-ECC-Zufallsfehlerdecodierer ist und alle der Vielzahl von ECC-Löschdecodierern ein Reed-Solomon-ECC-Löschdecodierer sind.
DE112022002423.2T 2021-04-27 2022-02-22 System und Verfahren zur Chipkill-Wiederherstellung bei doppelter Datenrate (DDR) Pending DE112022002423T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163180615P 2021-04-27 2021-04-27
US63/180,615 2021-04-27
US17/671,423 2022-02-14
US17/671,423 US12014068B2 (en) 2021-04-27 2022-02-14 System and method for double data rate (DDR) chip-kill recovery
PCT/US2022/017289 WO2022231681A1 (en) 2021-04-27 2022-02-22 System and method for double data rate (ddr) chip-kill recovery

Publications (1)

Publication Number Publication Date
DE112022002423T5 true DE112022002423T5 (de) 2024-02-29

Family

ID=80979107

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022002423.2T Pending DE112022002423T5 (de) 2021-04-27 2022-02-22 System und Verfahren zur Chipkill-Wiederherstellung bei doppelter Datenrate (DDR)

Country Status (2)

Country Link
DE (1) DE112022002423T5 (de)
WO (1) WO2022231681A1 (de)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9524210B1 (en) * 2015-03-02 2016-12-20 Crossbar, Inc. Separating bits represented by a MLC in connection with ECC
US9898229B1 (en) * 2016-07-29 2018-02-20 Sandisk Technologies Llc Systems and methods of memory reads
US10268541B2 (en) * 2016-08-15 2019-04-23 Samsung Electronics Co., Ltd. DRAM assist error correction mechanism for DDR SDRAM interface

Also Published As

Publication number Publication date
WO2022231681A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
DE60206419T2 (de) Löschung und einzelfehlerkorrekturdekoder für lineare blockkodes
DE3784741T2 (de) Dekoder fuer produkt-kodes und verfahren zur dekodierung dieser kodes.
DE10233642B4 (de) Fehlerkorrektur-Kodierung und -Dekodierung in einer Festkörper-Speicherungsvorrichtung
DE112014002870B4 (de) Kombinations-Fehler- und Löschdecodierung für Produktcodes
DE69026743T2 (de) Fehlertolerantes Speichersystem
DE60001370T2 (de) Verfahren und vorrichtung zur erkennung von doppelbitfehlern und korrektur von fehlern durch bauelementfehler verursacht
DE102005052698A1 (de) Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
DE112012000385T5 (de) Korrigieren von Auslöschungen in Speicher-Arrays
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102012200197A1 (de) Vorrichtung und Verfahren zur Fehlerkorrektur und zum Schutz vor Datenverfälschung
US12014068B2 (en) System and method for double data rate (DDR) chip-kill recovery
DE102013016681A1 (de) Codieren und Decodieren von Daten zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE102016107285B4 (de) Verfahren zur verwendung einer speichervorrichtung, speichervorrichtung und speichervorrichtungsanordnung
DE102013109315B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE112022002423T5 (de) System und Verfahren zur Chipkill-Wiederherstellung bei doppelter Datenrate (DDR)
DE102019119753A1 (de) Generalisiertes verkettetes Fehlerkorrektur-Codierschema mit Lokalität
EP1856611B1 (de) Verfahren zur datensicherung und gerät zu dessen ausführung
DE102019113970B4 (de) Erkennung von adressfehlern
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102017107431B4 (de) Verfahren und Vorrichtungen zur Fehlerkorrekturcodierung beruhend auf hochratigen verallgemeinerten verketteten Codes
DE69526789T2 (de) Speicheranordnung mit verbessertem Ergebnis und verbesserter Zuverlässigkeit
EP0491073B1 (de) Verfahren und Schaltungsanordnung zur Datensicherung in Speichereinheiten
EP0639316B1 (de) Verfahren zum empfangen von teletextdaten
DE102018127082A1 (de) Verfahren zum Betreiben eines Mikrocontrollers und Mikrocontroller
DE102019200941B4 (de) Decodierverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed