-
Gebiet der Erfindung
-
Die Erfindung betrifft Fehlerkorrekturtechniken in magnetischen Datenspeichergeräten.
-
Hintergrund
-
Herkömmliche Plattenlaufwerke mit magnetischen Medien organisieren Daten in konzentrischen Spuren, die beabstandet sind. Das Konzept des geschindelten Schreibens ist eine Form von magnetischer Aufzeichnung und wurde als Möglichkeit zur Erhöhung der Flächendichte der magnetischen Aufzeichnung vorgeschlagen. Bei schindelartig beschriebenen magnetischen Aufzeichnungsmedien (SRM = shingle-written magnetic recording) wird eine Region (ein Band) von benachbarten Spuren so beschrieben, dass eine oder mehr zuvor beschriebene Spuren einander überlappen. Die geschindelten Spuren müssen im Gegensatz zu herkömmlicherweise getrennten Spuren, die in beliebiger Reihenfolge beschrieben werden können, der Reihe nach beschrieben werden. Die Spuren auf einer SMR-Plattenoberfläche sind in eine Mehrzahl von geschindelten Regionen (auch I-Regionen genannt) eingeteilt, die der Reihe nach von einem Innendurchmesser (ID) zu einem Außendurchmesser (OD = outer diameter) oder vom OD zum ID beschrieben werden können. Sobald in der Schindelstruktur beschrieben, kann eine einzelne Spur oder ein einzelner Sektor nicht in situ aktualisiert werden, da dies die überlappenden Spuren überschreiben und zerstören würde. Schindelartig beschriebene Datenspuren werden daher vom Gesichtspunkt des Benutzers manchmal Nur-Anhänge-Protokollen gleichgesetzt. Zur Verbesserung der Leistung von SMR-Laufwerken wird ein Abschnitt der Medien sogenannten „Ausnahmeregionen” (E-Regionen) zugeordnet, die als Sammelbereiche für Daten verwendet werden, die schließlich in eine I-Region geschrieben werden. Die E-Region wird manchmal E-Zwischenspeicher bezeichnet.
-
Adressindirektion in der Innenarchitektur des schindelartig beschriebenen Speichergeräts kann verwendet werden, um bestehende Host-Schnittstellen wenigstens zum Teil zu emulieren und den Host vor den mit SMR verbundenen Komplexitäten zu schützen. Herkömmlicherweise verwenden Host-Dateisysteme abgesehen von den tatsächlichen Speicherorten (physikalischen Blockadressen (PBA)), die durch das Speichergerät intern verwendet werden, logische Blockadressen (LBAs) in Befehlen zum Lesen und Schreiben von Blöcken von Daten. Festplattenlaufwerke wiesen jahrzehntelang ein gewisses Maß von LBA-PBA-Indirektion auf, die u. a. eine Neuzuordnung von beschädigten Sektoren auf der Platte zu unbeschädigten Sektoren ermöglicht, die für diese Zweck reserviert wurden. Adressindirektion wird typischerweise im Steuerungsabschnitt der Laufwerkarchitektur implementiert. Die Steuerung übersetzt die LBAs in Host-Befehlen in eine interne physikalische Adresse oder wenigstens annähernd physikalische Adresse.
-
Die herkömmliche LBA-PBA-Zuordnung für Defekte braucht nicht oft geändert zu werden. Dagegen kann sich in einem SMR-Gerät die physikalische Blockadresse (PBA) einer logischen Blockadresse (LBA) in Abhängigkeit vom Schreibverlauf häufig ändern. Zum Beispiel erfordert jede Änderung des Inhalts einer LBA im Allgemeinen, dass die LBA einer neuen PBA zugeordnet wird, und Hintergrundprozesse, wie beispielsweise Speicherbereinigung, verschieben Datensektoren von einer PBA zu einer anderen, aber die LBA bleibt gleich. Das Indirektionssystem stellt eine dynamische Übersetzungsschicht zwischen den Host-LBAs und den aktuellen physikalischen Speicherorten auf dem Medium bereit. In einem SMR-System ändert sich die LBA-PBA-Zuordnung im Allgemeinen bei jeder Schreiboperation, da das System den physikalischen Speicherort auf dem Medium, in den die Host-Daten für eine LBA geschrieben werden, dynamisch bestimmt. Wenn eine LBA-PBA in einer geschindelten Spur aktualisiert wird, wird die alte PBA als ein Loch zur Speicherbereinigung gekennzeichnet.
-
ECC in Plattenlaufwerken wird verwendet, um Fehler und Löschungen zu korrigieren, die auftreten, wenn ein Datenelement fehlt oder als fehlerhaft bekannt ist. Ein herkömmlicher ECC wird auf einer Sektorbasis unter Verwendung von redundanten Bits ausgeführt, die an die Sektordaten angehängt werden. Diese Sektor-ECC-Ansätze sind für einige Plattenlaufwerkanwendungen, wie beispielsweise Streaming-Audio-Video (AV), nicht ideal, und die SMR-Architektur stellt zusätzliche ECC-Probleme dar. Demgemäß wurden für AV-Anwendungen und SMR-Laufwerke spezielle Fehlerkorrekturcode(ECC)-Strategien beschrieben. Wenn eine LBA-PBA (Sektor) in einer geschindelten Spur aktualisiert wird, wird die alte PBA als ein gelöschter Sektor (Loch) zur Speicherbereinigung gekennzeichnet. Das Problem, das durch die hierin beschriebene Erfindung behandelt wird, ist die Wiederherstellung von „zusammengedrängten” Sektoren in einem System zur geschindelten magnetischen Aufzeichnung (SMR) in einer Weise, welche die Ersetzung einer willkürlichen Anzahl von gelöschten Sektoren innerhalb einer Spur ermöglicht.
-
Die US-Patentanmeldung 20110075292 von Richard New et al. (31. März 2011) beschreibt SMR-Laufwerke, in welchen ein Band ein jeweiliges Segment in einem protokollstrukturierten Dateisystem bildet. Große Fehlerkorrektur(ECC)-Blockgrößen innerhalb eines jeden Segments (Bandes) werden durch Speichern des Zwischen-ECC-Paritätszustands nach jeder Teilschreiboperation eines ECC-Blocks implementiert. In diesem Fall erstreckt sich die ECC-Blockgröße über mehrere physikalische Sektoren, und aufgrund der größeren ECC-Blockgröße ist der Fehlerkorrekturcode effizienter und in der Lage, größere Defekt-Fehler auf der Platte zu korrigieren. Der ECC-Code kann in einer Anzahl von verschiedenen Arten und Weisen implementiert werden, welche den Fachleuten auf dem Gebiet der ECC-Code-Entwicklung bekannt sind.
-
US-Patent 7,490,212 an Kasiraj et al. (10. Februar 2009) beschreibt ECC für ein SMR-Laufwerk, das zur Aufzeichnung und Wiedergabe von Videodaten in Transaktionsdatenblöcken verwendet werden kann, die größer als die herkömmliche Blockgröße von 512 Byte, aber kleiner als die Bandgröße sind. Große physikalische Sektoren können verwendet werden, um die Formateffizienz zu verbessern, und große ECC-Codewortgrößen (größer als die Transaktionsblockgröße) können verwendet werden, um die Zuverlässigkeit zu verbessern, ohne dem System eine Lesen-Ändern-Schreiben-Leistung aufzuzwingen. Dazu speichert das Plattenlaufwerk den kumulativen ECC-Paritätszustand zwischen aufeinander folgenden Teilschreiboperationen jedes Transaktionsblocks, so dass die in einer ersten Schreiboperation berechnete Parität zum Generieren der Parität für eine nachfolgende Schreiboperation verwendet wird. Zum Beispiel könnte eine Transaktionsblockgröße ein Megabyte sein, und der ECC könnte sich über das gesamte Band erstrecken. Jedes Mal, wenn ein Transaktionsblock geschrieben wird, wobei das Band schrittweise aufgefüllt wird, wird der kumulative Paritätszustand für den ECC aufrechterhalten, so dass am Ende des letzten Transaktionsblocks in diesem Band die ECC-Parität ausgeschrieben werden kann. Dies stellt eine sehr lange ECC-Blockgröße und daher einen sehr effizienten ECC-Code bereit, der defekt- und fehlerelastisch ist. Der ECC-Code könnte sehr einfach sein, wie beispielsweise ein einziger Paritätssektor, der durch exklusives ODERieren aller der Daten in den physikalischen Sektoren im Band berechnet wird. Dies stellt Schutz gegen einen Einzelsektorfehler innerhalb des Bandes bereit. Bei Verwenden des exklusiven ODERierens ist der Fehlerkorrekturblock jedoch ein Paritätssektor, der nur einen Datenblock korrigieren kann und nicht skalierbar ist.
-
Die veröffentlichte Patentanmeldung 20110096828 (28. April 2011) von Ying Chen et al. beschreibt ein System mit Codierungs- und Decodierungsblöcken mit mehreren unabhängigen Skalierbarkeitsschichten. Es wird davon ausgegangen, dass der FEC jeweils auf einen „Block” oder ein „Fragment” von Daten angewendet wird, d. h. ein „Block” ist ein „Quellblock” für FEC-Codierungs- und -Decodierungszwecke. Ein Client-Gerät kann die hierin beschriebene Segmentindizierung verwenden, um die Quellblockstruktur eines Segments bestimmen zu helfen. Die FEC-Codes, die zur Verwendung mit Blockanforderungs-Streaming berücksichtigt werden, sind typischerweise systematische FEC-Codes, d. h. die Quellsymbole des Quellblocks können als Teil der Codierung des Quellblocks enthalten sein, so dass die Quellsymbole übertragen werden. Ein systematischer FEC-Codierer generiert aus einem Quellblock von Quellsymbolen eine gewisse Anzahl von Reparatursymbolen, und die Kombination wenigstens einiger der Quell- und Reparatursymbole stellt die codierten Symbole dar, die über den Kanal gesendet werden und den Quellblock darstellen. Einige FEC-Codes können zum effizienten Generieren von so vielen Reparatursymbolen als nötig verwendet werden, wie beispielsweise „informationsadditiven Codes” oder „Fountain-Codes”, und Beispiele dieser Codes umfassen „Kettenreaktionscodes” und „mehrstufige Kettenreaktionscodes”. Andere FEC-Codes, wie beispielsweise Reed-Solomon-Codes, können praktisch nur eine begrenzte Anzahl von Reparatursymbolen für jeden Quellblock generieren.
-
Kurzdarstellung der Erfindung
-
Die hierin beschriebenen Ausführungsformen der Erfindung ermöglichen die Wiederherstellung von „zusammengedrängten” Sektoren in einem Satz von sequenziellen Sektoren durch Verwendung von Paritätssektoren und eines Löschungsdecodierers, der die Ersetzung einer willkürlichen Anzahl von gelöschten Sektoren innerhalb einer Spur ohne Notwendigkeit des Eingebens von Datenwiederherstellungsprozeduren (DRP = Data Recovery Procedure) und demnach ohne zusätzlichen Leistungsverlust ermöglicht. In Plattenlaufwerken mit geschindelter magnetischer Aufzeichnung (SRM) werden sequenzielle Blöcke im Allgemeinen in sequenzielle Spuren in SRM-Laufwerken geschrieben, so dass ein Reparaturblock, der mehrere sequenzielle Datenblöcke abdeckt, praktisch ist. Das Problem erfordert ein Datenintegritätsmerkmal, das die Bestätigung der Integrität der Paritätssektoren ermöglicht, bevor sie verwendet werden, um die gelöschten Sektordaten zu ersetzen. Ausführungsformen der Erfindung verwenden ein programmierbares Schema zur Wiederherstellung von gelöschten Sektoren, bei dem es sich um eine Verkettung eines Spurlöschungskorrekturcodes vom „Cauchy-Typ” zusammen mit einem Medienfehlerkorrekturcode handelt, der N gewichtete Paritätssektoren pro Spur generiert und in der Lage ist, bis zu N gelöschte Sektoren pro Spur in jeder möglichen Kombination zu ersetzen.
-
Ausführungsformen der Erfindung umfassen einen Spurlöschungs-Decodierer, der die Medienfehlerkorrekturprüfungen verwendet, um die Schlüssel-ID der gelöschten Sektoren wiederherzustellen, um durch Fordern, dass die wiederhergestellte Schlüssel-ID der alten Schlüssel-ID entspricht, ein „Datenintegritäts-Handshake” vor dem Ersetzen der gelöschten Sektoren bereitzustellen, wodurch die Integrität der Löschungswiederherstellung gewährleistet wird.
-
Ausführungsformen der Erfindung umfassen eine Architektur mit einem Schema zur Spurlöschungswiederherstellung von N Sektoren, die N programmierbare Multiplikatoren und einen SRAM-Speicher mit N Paritätssektoren verwenden, der fliegende (on-the-fly) Hardware-Löschungsdecodierung ermöglicht und dadurch die Latenz verkürzt, die durch Firmware-Datenwiederherstellungsverarbeitung benötigt wird, und durch SRAM-Puffer implementiert werden kann.
-
Ausführungsformen der Erfindung umfassen fliegende Abbruchwiederherstellung, welche durch die SRAM-Pufferarchitektur mit dem Schema zur Spurlöschungswiederherstellung möglich gemacht wird, die das Löschen von gelöschten Daten aus dem Spurlöschungs-SRAM während der Schreiboperation ermöglicht.
-
Ausführungsformen der Erfindung verwenden eine Kombination von Sektor- und Mehrsektoren-ECC-Ansätzen. Die Anzahl von Sektoren, die durch den Mehrsektoren-ECC abgedeckt werden, kann bis zu einer ganzen Spur vergrößert werden. Die Beschreibung der Ausführungsformen verwendet im Allgemeinen „Spur”, um sich auf die Mehrsektoren-ECC-Abdeckung zu beziehen, wobei es sich von selbst versteht, dass auch Ausführungsformen implementiert werden können, die weniger als eine Spur abdecken. Der Sektor-Metadatensymbol-Löschungskorrekturcode wird hierin „Medienfehlererkennungscode” (MEDC = Media Error Detection Code) genannt. Jeder Sektor von durch den Benutzer bereitgestellten Daten wird als ein Medien-ECC-Codewort, das aus den Benutzerdaten berechnete Prüfsymbole umfasst, in die Spur geschrieben. Der „Spurlöschungs-Decodierer” (TED = Track Erasure Decoder) verwendet die Benutzerdaten und Prüfsymbole im Medien-ECC-Codewort, um eine ausgewählte Anzahl von Paritätssektoren zu generieren, die in die Spur geschrieben werden. Der „Spurlöschungs-Decodierer” (TED) ist ein Mehrsektoren-Löschungskorrekturcode vom Cauchy-Typ. Ausführungsformen der Erfindung erreichen eine verifizierbare OTF-Löschungswiederherstellung in SMR-Festplattenlaufwerken (HDD) unter Verwendung einer Verkettung dieser beiden Codetypen.
-
Codierer-/Syndromgeneratorkomponenten eines TEDs generieren r Paritätssektoren unter Verwendung von r programmierbaren Multiplikatoren gemäß einer Ausführungsform. Ein SRAM-Puffer kann verwendet werden, um die über die ganze Spur akkumulierten Paritätsdaten zu speichern, und weist die Fähigkeit auf, Teilsektordaten unter Verwendung der Sektordaten im DRAM-Puffer fliegend (OTF = on-the-fly) zu löschen, sobald ein Sektorlöschungszeiger aus dem MEDC erhalten wird. Die Berechnung der Paritätssektoren zwingt sie dazu, Medien-ECC-Codewörter zu sein, wodurch eine Datenintegritätsprüfung ermöglicht wird, welche die Wiederherstellung der Schlüssel-ID-/LBA-Symbole der gelöschten Sektoren vor der Verwendung der Paritätssektoren zum Ersetzen der gelöschten Sektoren umfasst.
-
Kurze Beschreibung der Figuren
-
1A ist eine Blockdarstellung der Komponenten im Datenflusspfad bei einer Schreiboperation in einem Plattenlaufwerk gemäß einer Ausführungsform der Erfindung.
-
1B ist eine Blockdarstellung der Komponenten im Datenflusspfad bei einer Leseoperation in einem Plattenlaufwerk gemäß einer Ausführungsform der Erfindung.
-
1C veranschaulicht die Blockstruktur von Codierer-/Syndromgeneratorkomponenten eines TEDs gemäß einer Ausführungsform der Erfindung, der r Paritätssektoren generiert.
-
2 ist eine Darstellung, die zur Beschreibung eines Wiederherstellungsprozesses verwendet wird, wenn während einer Mehrsektoren-Schreiboperation ein Abbruch stattfindet.
-
3 ist ein Flussdiagramm, das ein Verfahren gemäß einer Ausführungsform der Erfindung für fliegende ECC-Korrektur darstellt.
-
4A und 4B sind Darstellungen, die zur Beschreibung eines Fehlerkorrekturprozesses gemäß einer Ausführungsform der Erfindung verwendet werden.
-
Ausführliche Beschreibung der Erfindung
-
Ausführungsformen der Erfindung ermöglichen eine skalierbare Reparaturblockfehlerkorrektur für mehrere sequenzielle Datenblöcke in einem Plattenlaufwerk. Zum Beispiel kann ein Reparaturblock verwendet werden, um Fehlerkorrektursymbole für mehrere Datenblöcke zu speichern. Dies könnte ein Reparaturblock für eine Datenspur sein, oder es könnte ein Reparaturblock für eine bestimmte Menge von Daten sein, wie beispielsweise 1 Megabyte. Der Begriff „skalierbar” wird hierin verwendet, um sich darauf zu beziehen, dass jeder Reparaturblock so konzipiert sein kann, dass er 2, 3, 4, 5, 6 oder mehr einzelne Datenblöcke korrigiert.
-
In einer bevorzugten Ausführungsform wird Cauchy-Codierung verwendet, da dieses mathematische Verfahren es ermöglicht, dass eine effiziente/kleine Menge von dedizierter Hardware fliegende (OTF) Berechnungen durchführt. Die dedizierte Exklusiv-ODER-Hardware des Standes der Technik erzeugt nur einen Paritätsblock.
-
Die Erfindung kann vorteilhafterweise in Plattenlaufwerken mit geschindelter magnetischer Aufzeichnung (SRM = Shingled Magnetic Recording) verwendet werden. Sequenzielle Datenblöcke werden im Allgemeinen in sequenzielle Spuren in SRM-Laufwerken geschrieben, so dass ein Reparaturblock für mehrere sequenzielle Datenblöcke praktisch ist. Bei Verwendung von herkömmlichen Festplattenlaufwerken würden die zufälligen Schreiboperationen von einzelnen LBAs ein Auslesen der gesamten Spur und anschließendes Modifizieren und Neuschreiben des Reparaturblocks erfordern.
-
Ausführungsformen der Erfindung erreichen eine verifizierbare OTF-Löschungswiederherstellung in SMR-Festplattenlaufwerken (HDD) unter Verwendung einer Kombination (Verkettung) von:
- 1. Sektor-Metadatensymbol-Löschungskorrekturcode
[„ Medienfehlererkennungscode” (MEDC)]; und
- 2. Mehrsektoren-Löschungskorrekturcode vom Cauchy-Typ
[„Spurlöschungs-Decodierer” (TED)]
-
Der MEDC kann auf verschiedene Arten und Weisen implementiert werden, die auf dem Fachgebiet bekannt sind. Der TED ist vorzugsweise als ein „Cauchy-Typ” konzipiert. Sowohl der ECC vom Cauchy-Typ als auch der Reed-Solomon-ECC sind „Maximum-Distanz” (MDS = Maximum Distance Separable)-Codes.
-
Ein skalierbarer „Sektor-Löschungskorrekturcode vom Cauchy-Typ” ist ein programmierbarer Satz von Sektorsymbolmultiplikatoren, der iterativ eine Cauchy-Matrix generiert, welche die Sektoren in einer Spur multipliziert, um kumulativ gewichtete Paritätssektoren zu erzeugen, wobei die Anzahl von programmierbaren Multiplikatoren der Anzahl von Paritätssektoren entspricht. Die einzigartige Eigenschaft einer Matrix vom „Cauchy-Typ” gewährleistet, dass es einen ähnlichen Satz von programmierbaren Multiplikatoren gibt, der durch iteratives Generieren der geeigneten inversen Teilmatrix JEGLICHE Kombination von gelöschten Datensektoren [und Paritätssektoren] bis zur MDS-Korrekturfähigkeit wiederherstellt.
-
Diese „Cauchy-Typ”-Eigenschaft ermöglicht eine fliegende (OTF) Gelöschte-Sektoren-Wiederherstellung einer programmierbaren Anzahl von gelöschten Sektoren unter Verwendung von verhältnismäßig kostengünstiger Codierer-/Decodierer-Hardware, und was noch wichtiger ist, sie ermöglicht die Speicherung von Paritätssektoren im SRAM, was dieses Schema in Festplattensteuerlogik (HDC = hard drive controller) implementierbar macht. Im Gegensatz dazu würde Schieberregisterspeicherung von Paritätssektoren Millionen von Gattern erfordern.
-
Der verkettete MEDC stellt Sektorlöschungszeiger auf den TED und außerdem ein Mittel zum Verifizieren seiner Korrektheit bereit, wenn die Paritätssektorberechnung automatisch die Prüfungsgleichungen des Metadaten-ECCs erfüllt. Dies stellt ein Mittel zum Verifizieren der Integrität der Paritätssektoren sowie der Wiederherstellung der alten Schlüssel-ID der gelöschten Sektoren als ein „Datenintegritäts-Handshake” bereit. Diese natürliche Verkettung gewährleistet eine einfache Implementierung der obligatorischen Verifizierung der Wiederherstellung von gelöschten Sektoren unter Verwendung von bestehender HDC-Hardware.
-
Vorteile der Erfindung umfassen Dichtegewinne in der Größenordnung von 3% der Spezifikation der Rate von harten Fehlern. Die ECC-Information nimmt ~0,5% am Spur-OD und 1,0% am ID ein. Die Komplexität nimmt mit zunehmender Anzahl von Sektorkorrekturfähigkeit zu. Die Folgebetriebsleistung wird aufrechterhalten.
-
Hardware-Architektur des Spurlöschungs-Codierers/-Decodierers (TED)
-
1A ist eine Blockdarstellung von ausgewählten Komponenten im Datenflusspfad 10 bei einer Schreiboperation in einem Plattenlaufwerk gemäß einer Ausführungsform der Erfindung. Sofern nicht anders angegeben, funktionieren die Komponenten des Laufwerks gemäß dem Stand der Technik. Die Schreibdaten fließen in das ECC-Modul 18, welches den Spurlöschungs-Codierer/-Decodierer (TED) 15 und den Medienlöschungserkennungs-Codierer/-Decodierer (MEDC) 14 umfasst. Der MEDC empfängt die Schreibdaten (auch Benutzerdaten genannt) und generiert den Datensektor, bei dem es sich um die Daten plus die berechneten ECC-Prüfungen für die Daten handelt. Der TED 15 verwendet die Daten und die durch den MEDC generierten Prüfungen zusammen mit den kumulativen Summen in seinem Puffer, um die Ausgabe von zusätzlichen Paritätssektoren P1...Pr als die Summe von gewichteten Datensektoren für die Spur zu generieren. Der Laufwerkformatierer (DF = Drive Formatter) 16 führt die Standardfunktion des Formatierens der Daten aus, bevor sie dem Kanal 17 zugeführt werden. Der DF 16 hängt den Paritätssektoren-ECC an die MEDC-Ausgabe an, um den Kanal 17 mit den verketteten Sektordaten und P1...Pr Paritätssektoren zu versorgen, um die Spurinformationen zu schreiben.
-
1B ist eine Blockdarstellung von Komponenten im Datenflusspfad 10 bei einer Leseoperation in einem Plattenlaufwerk gemäß einer Ausführungsform der Erfindung. Die Datensektor- und P1...Pr Paritätssektorinformationen kommen vom Kanal 17 durch den DF 16 und in den MEDC 14 zurück. Der TED 15 verwendet die vom MEDC ausgegebenen Daten und generiert die gelöschten Datensektoren zur Wiedereingabe in den MEDC.
-
1C veranschaulicht die Blockstruktur von Codierer-/Syndromgeneratorkomponenten eines TEDs
15 gemäß einer Ausführungsform der Erfindung, der r Paritätssektoren generiert. Der TED
15 umfasst r programmierbare Multiplikatoren
91, die jeweils einen Paritätssektor generieren. Der Codierer/Syndromgenerator nimmt Spur T = [B
1, B
2, ... B
IN], die aus N Blöcken besteht,
Bi = [Si,j] n / j=1, über GF(2
12) wird durch kumulativ gewichtete Symbolsummen über den Blockindex i in Paritätssektoren {P
j}
r / 1 codiert:
-
Der Exponent i der GF(212)-Multiplikatoren {a i / j }, i = 1, ..., N, ist identisch mit dem Blockindex i in Bi in der Spur T [Multiplikatorgewichte werden fliegend (OTF) generiert durch Potenzierung von aj, wobei j = 1, ..., r die Anzahl der Paritätssektoren ist].
-
Nach einer LESE-Operation werden modifizierte Paritätssektoren P ^j neu berechnet, die Berechnung der gewichteten Blocksumme überspringt die Indizes jk der gelöschten Blöcke Bi sub(k), um Syndrome So = Pj ⊕ P ^j zu erzeugen.
-
Sind der Syndrom-Sektor S
j, j = 1, ..., r, und die Liste von Block
Löschungsindizes i
ch gegeben, muss die Multiplikatormatrix
berechnet werden, die aus den Multiplikatorspalten besteht, die durch Block B
i sub(k)-Löschungsindizes i
k indiziert sind, wobei die Zeilenindizes j jene der fehlerfreien Paritätssektoren sind. Die Syndromsektoren enthalten kumulative
-gewichtete Summen der gelöschten Blöcke B
i sub(k).
-
Der Decodierer muss die Matrixgleichung M–1S lösen, was erfordert, dass die Multiplikatormatrix der gelöschten Blöcke invertierbar ist.
-
Die Spuren-ECC-Datenintegrität wird folgendermaßen behandelt. Die Paritätssektoren sind gewichtete kumulative Blocksummen und erfüllen Block-MEDC-Prüfungsgleichungen. Die Paritätssektor-MEDC-Entscheidbarkeit erfordert das Addieren von kumulativen gewichteten Summen von LBA-/Schlüssel-ID-Blockdaten unter Ausschluss der gelöschten Blöcke. Die Verifizierung der Datenintegrität umfasst Regenerierung und „Handshake”-Bestätigung von alter Schlüssel-ID.
-
Die Architektur des Spurlöschungs-Codierers/-Decodierers (TED) 15 ermöglicht die Abbruchwiederherstellung an jeder Blockposition innerhalb einer Spur ohne den Nachteil, die Paritätssektoren für die ganze Spur neu berechnen zu müssen. Blocklöschungszeiger werden durch den TED verwendet, um gelöschte Blöcke wiederherzustellen, die in den zugeordneten DRAM-Pufferspeicherplatz geschrieben werden sollen. Die TED-Löschungswiederherstellung kann entweder fliegend (OTF) oder in Datenwiederherstellungsprozeduren (DRP = data recovery procedures) erfolgen.
-
Der Wiederherstellungsprozess des TED-Puffers 15B im Falle eines Abbruchs während des Schreibens von mehreren Sektoren von Daten wird unter Bezugnahme auf 2 beschrieben. Die Annahme in diesem Beispiel ist, dass der Abbruch während des Schreibens des J-ten Sektors von mindestens J + 1 Sektoren stattfindet. Der Schreibbefehl wird infolge von Fehlern unverzüglich gestoppt. Der TED-Puffer 15B wird durch fehlerhafte Daten beschädigt. Wie hier dargestellt, wird der J-te Sektor von fehlerhaften Daten in den TED-Puffer 15B und den MEDC-Puffer 14B geladen. Korrekte Daten für den TED-Puffer können ohne DRP wiederhergestellt werden. Wenn der Schreibbefehl wieder ausgeführt wird, werden neue Daten vom DRAM eingegeben. Während des Einfüllens neuer Daten wird gleichzeitig der TED-Puffer wiederhergestellt. Das Wiederherstellungsverfahren besteht darin, die alten Daten des J-ten Sektors im MEDC-Puffer 14B erst auszulesen, wenn der J-te Sektor von neuen Daten geschrieben wird. Der TED-Puffer wird dann mit Inhalt beladen definiert als: {(MEDC) xor (Neue Daten)}J-te xor TED
-
Spuren-ECC-Leseoperation
-
3 ist ein Flussdiagramm, das ein Verfahren gemäß einer Ausführungsform der Erfindung für fliegende ECC-Korrektur darstellt. Alle Sektoren auf der Spur werden durch die Schleife 31 bis 34 ausgelesen. Der MEDC-ECC wird verwendet, um die Korrektheit jedes Sektors zu bestimmen und fehlerhafte zu zählen 32. Korrekte Sektordaten werden in den Syndromgenerator eingegeben 33.
-
Wenn die Anzahl von fehlerhaften Sektoren höher als ein vorbestimmter Wert „n” ist 35, führt das Verfahren eine neue Leseoperation oder eine andere Fehlerwiederherstellung durch, um zu versuchen, die Anzahl von Fehlersektoren auf die korrigierbare Anzahl herabzusetzen 36–40. Der Anfangssektor kann aus willkürlichen Sektoren auf der Spur ausgewählt werden. Die LBA von fehlerhaften Sektoren ist im UNC-Fehlerplan verfügbar.
-
Wenn die Anzahl von Fehlersektoren <= n, ist die Spurlöschungsdecodierung gemäß der Erfindung verfügbar, und das Verfahren springt zu Block 41. Hardware/Firmware (HW/FW) legt vor Beginn der Decodierung den Löschungszeiger aus der Fehlersektor-LBA fest. HW/FW beginnt mit der Spurlöschungsdecodierung und wartet dann auf den Abschluss der Decodierung. Nach der Spurlöschungsdecodierung wird für wiederhergestellte Sektoren eine MEDC-Fehlerprüfung durchgeführt 42–43. Der MEDC validiert wiederhergestellte Sektoren, stellt außerdem die verlorene LBA und Schlüssel-ID wieder her, prüft wiederhergestellte Daten und wartet dann auf den Abschluss der Prüfung. Wenn die MEDC-Fehlerprüfung ok ist, kann der wiederhergestellte Sektor vom TED-SRAM in den DRAM übertragen werden 44. Wenn die Korrekturgrenze überschritten wird, dann wird ein Fehler gemeldet 45.
-
4A und 4B sind Darstellungen von Daten, die zur Beschreibung eines Fehlerkorrekturprozesses gemäß einer Ausführungsform der Erfindung verwendet werden. In diesem Beispiel gehen Sektordaten wie in 1B vom Kanal ein. SOT ist der Beginn der Spur und EOT ist das Ende der Spur. Der MEDC validiert Datensektoren, und nichtbenachbarte Sektoren x0 und x1 werden als fehlerhaft bestimmt, wie in 4B dargestellt. Fehlerfreie Sektordaten werden in den DRAM-Puffer hochgeladen und gleichzeitig im TED-Puffer akkumuliert. Sollten fehlerhafte Sektordaten erkannt werden, verwirft das Verfahren die fehlerhaften Sektordaten zwar, ordnet aber Speicherplatz im DRAM-Puffer für Löschungssektoren E0, E1 zu, wie in 4A dargestellt. In 3 und 4B werden die Löschungssektoren E0, E1 wiederhergestellt und nach den letzten Sektordaten in den DRAM hochgeladen.
-
Cauchy-Matrix-Spuren-ECC-Berechnungen
-
Eine Cauchy-Matrix-Spuren-ECC für eine Ausführungsform der Erfindung kann ermittelt werden, wie in diesem Abschnitt beschrieben. Man wähle zwei Elemente {a, b} ε GF(2
12) und definiere eine r × N Matrix, deren Zeilen durch i indiziert sind, und deren Spalten durch j indiziert sind. Zum Beispiel ist a GF(2
12)-Generator und b = a
499. Demnach gilt
derart dass a
i ≠ b
j
-
Es wird gewährleistet, dass jede Teilmatrix von C mit einer Größe von bis zu r × r eine von Null verschiedene Determinante aufweist. Daher können bis zu r Löschungen unter Verwendung von bis zu r fehlerfreien Paritätssektoren in beliebiger Reihenfolge decodiert werden.
-
Cauchy-Matrix-Inversionskonstante können vorberechnet werden, wie folgt:
- • Vorberechnen von {Am} r / m=1 -Liste
- • Vorberechnen von {Bm} r / m=1 -Liste
- • Vorberechnen von {Em} r / m=1 -Liste
- • Vorberechnen von {Fm} r / m=1 -Liste
-
Der r-Paritätssektoren-Spuren-ECC-Decodierer invertiert die Blocklöschungs-Cauchy-Teilmatrix M durch Verwenden der 4r vorberechneten Konstantenlisten {A, B, E, F}:
wobei i = Paritätssektorindex, j = Index von gelöschten Blöcken
-
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
-