DE10216999A1 - ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf - Google Patents
ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-SpeicherbedarfInfo
- Publication number
- DE10216999A1 DE10216999A1 DE10216999A DE10216999A DE10216999A1 DE 10216999 A1 DE10216999 A1 DE 10216999A1 DE 10216999 A DE10216999 A DE 10216999A DE 10216999 A DE10216999 A DE 10216999A DE 10216999 A1 DE10216999 A1 DE 10216999A1
- Authority
- DE
- Germany
- Prior art keywords
- ram memory
- line
- data sectors
- data
- parity information
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 claims abstract description 148
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000011084 recovery Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2782—Interleaver implementations, which reduce the amount of required interleaving memory
- H03M13/2785—Interleaver using in-place interleaving, i.e. writing to and reading from the memory is performed at the same memory location
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Die vorliegende Erfindung betrifft ein Verfahren und ein Gerät zum Erstellen eines mit Paritätsinformation versehenen Datenblocks (Error Correction Code Block (ECC-Block)) aus einer Mehrzahl von Datensektoren sowie ein Verfahren und ein Gerät zur Rückgewinnung von Datensektoren aus einem mit Paritätsinformation versehenen Datenblock. DOLLAR A Es ist eine Aufgabe der Erfindung, ein Verfahren zum Enkodieren beziehungsweise Dekodieren von Datenströmen vorzuschlagen, das einen reduzierten Speicherbedarf aufweist und mit zwei Enkodierern 12, 14 beziehungsweise Dekodierern auskommt, sowie eine Enkodier- beziehungsweise Dekodiereinheit 10 zur Umsetzung des erfindungsgemäßen Verfahrens. DOLLAR A Erfindungsgemäß wird bei einem Verfahren zum Erstellen eines ECC-Blocks aus einer Mehrzahl von Datensektoren, wobei die Datensektoren in Form eines Blocks mit mehreren Zeilen und Spalten in einem in Form von Zeilen und Spalten organisierten Speicher 11, 13 zwischengespeichert und mit Paritätsinformationen versehen werden, die Aufgabe dadurch gelöst, dass aufeinander folgend empfangene Blöcke von Datensektoren zeilenweise abwechselnd in die Zeilen beziehungsweise Spalten des Speichers 11, 13 geschrieben werden.
Description
- Die vorliegende Erfindung betrifft ein Verfahren und ein Gerät zum Erstellen eines mit Paritätsinformation versehenen Datenblocks (Error Correction Code Block (ECC-Block)) aus einer Mehrzahl von Datensektoren, sowie ein Verfahren und ein Gerät zur Rückgewinnung von Datensektoren aus einem mit Paritätsinformation versehenen Datenblock.
- Derartige Verfahren werden bei den meisten Verfahren zur digitalen Datenübermittlung und Datenspeicherung verwendet. Bekannte Verfahren zur digitalen Datenübermittlung sind beispielsweise DVB (Digital Video Broadcasting) oder DAB (Digital Audio Broadcasting). Bei den Verfahren zur digitalen Datenspeicherung sind im Wesentlichen die Bandspeicherung (z. B. DAT (Digital Audio Tape), DVC (Digital Video Cassette), DVHS (Digital Video Home System)), die Plattenspeicherung (z. B. Festplatte, CD-R (Compact Disc Recordable), DVD + RW (Digital Versatile Disc + Read/Write)) sowie die Speicherung auf Speicherkarten (z. B. CompactFlash) zu nennen. Bei den genannten und auch weiteren Verfahren werden Datensektoren für die Speicherung beziehungsweise Übertragung mit Paritätsinformation versehen, um beim Lesen oder Empfangen der Daten eine Korrektur von Fehlern zu ermöglichen, falls Lese- oder Empfangsfehler auftreten. Vor dem Schreiben oder Übermitteln werden die Daten mit Paritätsinformationen versehen, d. h. enkodiert. Nach dem Lesen beziehungsweise Empfangen müssen die Daten von der Paritätsinformation befreit werden, sie werden dekodiert. Eine bekannte Enkodiereinheit 1 ist schematisch in Fig. 1 dargestellt. Sie weist zwei Enkodierzweige 2, 3 auf, die identisch aufgebaut sind. Beide Enkodierzweige 2, 3 umfassen jeweils einen ersten Speicher 21, 31, einen ersten Enkodierer 22, 32, einen zweiten Speicher 23, 33 und einen zweiten Enkodierer 24, 34, wobei die Speicher 21, 23, 31, 33 in Form von Zeilen und Spalten organisiert sind. Die Enkodierer 22, 24, 32, 34 können beispielsweise Reed-Solomon Enkodierer (RS Encoder) oder XOR-Enkodierer sein, auch andere Typen sind möglich. Als Speicher 21, 23, 31, 33 finden üblicherweise RAM-Speicher Verwendung. Über einen Eingang 4 gelangen Datensektoren in die Enkodiereinheit 1, wo sie über einen Schalter 6 an den ersten Enkodierzweig 2 oder den zweiten Enkodierzweig 3 weitergegeben werden. In den beiden Enkodierzweigen 2, 3 werden die Datensektoren jeweils vom ersten Enkodierer 22, 32 und vom zweiten Enkodierer 24, 34 mit Paritätsinformation versehen und über einen zweiten Schalter 7 an einen Ausgang 5 ausgegeben. Ein entsprechender Dekodierer ist vom Prinzip identisch aufgebaut, lediglich werden anstelle der Enkodierer 22, 32, 24, 34 entsprechende Dekodierer (z. B. Reed-Solomon (RS) Dekodierer, XOR-Dekodierer) verwendet.
- Die prinzipielle Funktionsweise der Enkodiereinheit 1 gemäß dem Stand der Technik soll nachfolgend anhand von Fig. 1 und Fig. 2 erläutert werden. Die Beschreibung beruht dabei auf einer Enkodiereinheit für DVD-RAM beziehungsweise DVD + RW.
- Der Vorgang des Enkodierens lässt sich in zwei sich wiederholende Phasen 40, 50 aufteilen. Die Phasen sind vom Prinzip her identisch, lediglich die Rollen der beiden Enkodierzweige 2, 3 werden vertauscht. In der Figur sind die Verfahrensschritte für die beide Phasen 40, 50 aufgeteilt in diejenigen Verfahrensschritte 401, 501, die im ersten Enkodierzweig 2 ablaufen, und diejenigen Verfahrensschritte 402, 502, die im zweiten Enkodierzweig 3 ablaufen. Die Anordnung der verschiedenen Verfahrensschritte neben- und untereinander stellt nicht notwendigerweise einen zeitlichen Ablauf dar, sofern nicht durch die eingezeichneten Pfeile explizit ein zeitlicher Ablauf vorgegeben ist.
- Zunächst soll die erste Phase 40 erläutert werden. In einem Schritt 41 gelangen 16 Datensektoren zu je 2064 Byte in den ersten Enkodierzweig 2. Diese werden im nächsten Schritt 42 in Form von 192 Zeilen zu je 172 Byte in den ersten Speicher 21 des ersten Enkodierzweigs geschrieben. Im zweiten Enkodierzweig 3 werden unterdessen in einem Schritt 43 aus dem ersten Speicher 31 dort bereits in Form von 192 Zeilen zu je 172 Byte gespeicherte Daten spaltenweise gelesen. Die gelesenen Daten werden an den ersten Enkodierer 32 weitergegeben und von diesem mit je 16 Byte äußerer Paritätsinformation pro Spalte versehen. Die so erhaltenen 172 Spalten zu je 208 Byte werden in einem folgenden Schritt 45 in die Spalten des zweiten Speichers 33 des zweiten Enkodierzweigs 3 geschrieben. Im zweiten Speicher 33 befinden sich somit 208 Zeilen zu je 172 Byte, wobei die ersten 192 Zeilen einen Datenbereich und die restlichen 16 Zeilen einen Paritätenbereich bilden. Zu Beginn des Enkodiervorgangs, wenn im ersten Speicher 31 des zweiten Enkodierzweigs 3 noch keine Daten vorliegen, entfallen die Schritte 43-45.
- Im Schritt 46 werden aus dem zweiten Speicher 23 des ersten Enkodierzweigs 2 208 Zeilen zu je 172 Byte gelesen und an den zweiten Enkodierer 24 weitergegeben, der sie in einem folgenden Schritt 47 mit je 10 Byte innerer Paritätsinformation pro Zeile versieht. Dabei kann der Block von Datensektoren zusätzlich noch durch eine Verschachtelung der Zeilen (Interleaving) vor Fehlern geschützt werden. Auf jeweils zwölf Zeilen aus dem Datenbereich folgt dann eine Zeile aus dem Paritätenbereich. Die nun vollständig enkodierten 16 Datensektoren werden schließlich in einem Schritt 48 in Form von 208 Zeilen zu je 182 Byte über den Schalter 7 und den Ausgang 5 ausgegeben und können aufgezeichnet oder übertragen werden. Zu Beginn des Enkodiervorgangs entfallen auch die Schritte 46-48, da im zweiten Speicher 23 des ersten Enkodierzweigs 2 noch keine Daten vorliegen.
- Nach dem Beenden der ersten Phase 40 werden in der zweiten Phase 50 die Rollen von erstem Enkodierzweig 2 und zweitem Enkodierzweig 3 vertauscht. Die nächsten 16 Datensektoren gelangen im Schritt 51 über den Eingang 4 und den Schalter 6 in den zweiten Enkodierzweig 3 und werden in Form von 192 Zeilen zu je 172 Byte in den ersten Speicher 31 des zweiten Enkodierzweigs 3 geschrieben. Die in der ersten Phase 40 im Schritt 42 in den ersten Speicher 21 des ersten Enkodierzweigs 2 geschriebenen 192 Zeilen zu je 172 Byte werden nun im Schritt 53 in Form von 172 Spalten zu je 192 Byte gelesen, an den ersten Enkodierer 22 weitergegeben, von diesem im Schritt 54 mit 16 Byte äußerer Paritätsinformation je Spalte versehen und im Schritt 55 in Form von 172 Spalten zu je 208 Byte in den zweiten Speicher 23 des ersten Enkodierzweigs 2 geschrieben. Die aus Schritt 45 der ersten Phase 40 im zweiten Speicher 33 des zweiten Enkodierzweigs 3 vorliegenden 208 Zeilen zu je 172 Byte werden entsprechend im Schritt 56 gelesen, an den zweiten Enkodierer 34 weitergegeben, von diesem im Schritt 57 mit je 10 Byte innerer Paritätsinformation pro Zeile versehen, gegebenenfalls verschachtelt und in einem Schritt 58 über den Schalter 7 und den Ausgang 5 ausgegeben.
- Durch die sukzessive Wiederholung der beiden Phasen 40,50 wird ein am Eingang 4 der Enkodiereinheit 1 eingehender Datenstrom kontinuierlich enkodiert.
- Eine Dekodiereinheit gemäß dem Stand der Technik arbeitet analog zu obiger Beschreibung. Dabei werden diejenigen Schritte, in denen die Daten beim Enkodieren von den Enkodierern 22, 24, 32, 34 mit Paritätsinformation versehen werden, durch entsprechende Schritte ersetzt, in denen die mit Paritätsinformation versehenen Daten durch Dekodierer von der Paritätsinformationen befreit werden. Außerdem werden die Daten zunächst von der inneren Paritätsinformation befreit und erst im Anschluss von der äußeren Paritätsinformation, die Reihenfolge ist also entgegengesetzt zur Reihenfolge beim Enkodieren, weshalb auch die Rollen von Eingang 4 und Ausgang 5 vertauscht werden. Die Anzahl und Länge der zu schreibenden beziehungsweise zu lesenden Zeilen und Spalten ändert sich entsprechend. Das Befreien der Daten von der Paritätsinformation ist genau genommen ein komplexer Vorgang der Fehlerkorrektur. Entweder können vom ersten Dekodierer bereits alle Fehler mit der inneren Paritätsinformation korrigiert werden oder die ganze Zeile wird als unkorrigierbar markiert. Erst vom zweiten Dekodierer werden dann die restlichen markierten Bytes mittels der äußeren Paritätsinformation korrigiert. Bei großen Defekten (z. B. Löcher, Kratzer etc.) auf dem Speichermedium, von dem die Daten gelesen werden, besteht allerdings eine gewisse Wahrscheinlichkeit, dass auch die zweite Fehlerkorrektur fehlschlägt, so dass Restfehler verbleiben.
- Die bekannte Enkodier- beziehungsweise Dekodiereinheit hat den Nachteil, dass zum kontinuierlichen Enkodieren beziehungsweise Dekodieren eines Datenstroms insgesamt vier Speicher sowie vier Enkodierer beziehungsweise Dekodierer notwendig sind, von denen jeweils zwei die gleiche Aufgabe erfüllen. Da diese Einzelkomponenten vergleichsweise teuer sind, entstehen durch den Einsatz einer Enkodier- beziehungsweise Dekodiereinheit gemäß dem Stand der Technik relativ hohe Kosten.
- Es ist deshalb eine Aufgabe der Erfindung, ein Verfahren zum Enkodieren beziehungsweise Dekodieren von Datenströmen vorzuschlagen, das einen reduzierten Speicherbedarf aufweist und mit zwei Enkodierern beziehungsweise Dekodierern auskommt, sowie eine Enkodier- beziehungsweise Dekodiereinheit zur Umsetzung des erfindungsgemäßen Verfahrens. Es ist eine weitere Aufgabe der Erfindung, ein Gerät zum Lesen und/oder Beschreiben von Speichermedien sowie Verfahren zur Übermittlung oder zum Empfangen von digitalen Datenströmen vorzuschlagen, das ein erfindungsgemäßes Verfahren oder eine erfindungsgemäße Enkodier- beziehungsweise Dekodiereinheit zum Enkodieren beziehungsweise Dekodieren von Datenströmen verwendet.
- Erfindungsgemäß wird bei einem Verfahren zum Erstellen eines ECC-Blocks aus einer Mehrzahl von Datensektoren, wobei die Datensektoren in Form eines Blocks mit mehreren Zeilen und Spalten in einem in Form von Zeilen und Spalten organisierten Speicher zwischengespeichert und mit Paritätsinformationen versehen werden, die Aufgabe dadurch gelöst, dass aufeinanderfolgend empfangene Blöcke von Datensektoren zeilenweise abwechselnd in die Zeilen beziehungsweise Spalten des Speichers geschrieben werden. Dies hat den Vorteil, dass eine im Speicher befindliche Zeile beziehungsweise Spalte unmittelbar nach dem Lesen durch die nächste empfangene Zeile überschrieben werden kann, ohne dass dabei Daten gelöscht werden, die noch für die Erstellung von Paritätsinformation benötigt werden.
- Vorteilhafterweise weist der Speicher einen ersten RAM-Speicher und einen zweiten RAM-Speicher auf. Auf diese Weise kann die Paritätsinformation in zwei Schritten einmal für die Zeilen und einmal für die Spalten des Blocks von Datensektoren erstellt werden, so dass gebräuchliche Enkodierer zum Enkodieren verwendet werden können. Die beiden RAM-Speicher müssen nicht notwendigerweise physikalisch getrennt sein, es kann sich auch um Teilbereiche eines übergeordneten RAM-Speichers handeln.
- Gemäß der Erfindung wird ein im zweiten RAM-Speicher befindlicher erster Block von Datensektoren, der bereits mit einer ersten Paritätsinformation versehen ist und einen Datenbereich und einen Paritätenbereich aufweist, gelesen, mit einer zweiten Paritätsinformation versehen und ausgegeben, und es wird ein im ersten RAM-Speicher befindlicher zweiter Block von Datensektoren gelesen, mit der ersten Paritätsinformation versehen und im zweiten RAM-Speicher gespeichert. Auf diese Weise ist sichergestellt, dass die im zweiten RAM-Speicher befindlichen Daten erst dann durch neue Daten ersetzt werden, wenn sie vollständig enkodiert und ausgegeben wurden.
- Erfindungsgemäß wird bei einem Verfahren zur Rückgewinnung einer Mehrzahl von Datensektoren aus einem mit Paritätsinformationen versehenen ECC-Block von Datensektoren, wobei der ECC-Block in einem in Form von Zeilen und Spalten organisierten Speicher zwischengespeichert wird, die Aufgabe dadurch gelöst, dass aufeinanderfolgend empfangene ECC-Blöcke von Datensektoren zeilenweise abwechselnd in die Zeilen beziehungsweise Spalten des Speichers geschrieben werden. Dies hat den Vorteil, dass eine Zeile beziehungsweise Spalte des Speichers durch die nächste empfangene Zeile des nächsten ECC- Blocks von Datensektoren überschrieben werden kann, ohne dass dabei Daten gelöscht werden, die noch zum Dekodieren benötigt werden.
- Vorteilhafterweise weist der Speicher einen ersten RAM-Speicher und einen zweiten RAM-Speicher auf. Dies hat den Vorteil, dass die Paritätsinformation in zwei Schritten einmal für die Zeilen und einmal für die Spalten des Blocks von Datensektoren entfernt werden kann, so dass gebräuchliche Dekodierer zum Dekodieren verwendet werden können. Die beiden RAM-Speicher müssen nicht notwendigerweise physikalisch getrennt sein, es kann sich auch um Teilbereiche eines übergeordneten RAM- Speichers handeln.
- Gemäß der Erfindung wird ein im ersten RAM-Speicher befindlicher erster ECC-Block von Datensektoren, der mit einer ersten Paritätsinformation versehen ist, gelesen, von der ersten Paritätsinformation befreit und im zweiten RAM-Speicher gespeichert, und es wird ein zweiter nachfolgend empfangener ECC-Block von Datensektoren, der mit einer ersten und einer zweiten Paritätsinformation versehen ist, von der zweiten Paritätsinformation befreit und im ersten RAM-Speicher gespeichert. Auf diese Weise ist sichergestellt, dass die im ersten RAM-Speicher befindlichen Daten erst dann durch neue Daten ersetzt werden, wenn sie vollständig dekodiert und im zweiten RAM-Speicher gespeichert wurden.
- Gemäß der Erfindung wird der erste (ECC-)Block von Datensektoren zeilenweise aus dem zweiten RAM-Speicher gelesen, wenn er spaltenweise in den zweiten RAM-Speicher geschrieben wurde, und spaltenweise, wenn er zeilenweise in den zweiten RAM-Speicher geschrieben wurde, und es wird der zweite (ECC-)Block von Datensektoren zeilenweise aus dem ersten RAM- Speicher gelesen und zeilenweise in den zweiten RAM-Speicher geschrieben, wenn er spaltenweise in den ersten RAM-Speicher geschrieben wurde, und spaltenweise gelesen und spaltenweise in den zweiten RAM-Speicher geschrieben, wenn er zeilenweise in den ersten RAM-Speicher geschrieben wurde. Auf diese Weise ist sichergestellt, dass zu keiner Zeit während des Enkodierens oder Dekodierens noch benötigte Daten durch andere Daten überschrieben werden. Die Formulierung "(ECC-)Block von Datensektoren" bringt hier und im folgenden zum Ausdruck, dass die charakterisierenden Merkmale des Verfahrens gleichermaßen für einen Block von Datensektoren als auch für einen ECC-Block von Datensektoren zutreffen.
- Erfindungsgemäß wird ein weiterer nachfolgend empfangener (ECC-)Block von Datensektoren zeilenweise in die Zeilen beziehungsweise Spalten des ersten RAM-Speichers geschrieben, wenn der zweite (ECC-)Block von Datensektoren zeilenweise beziehungsweise spaltenweise aus dem ersten RAN-Speicher gelesen wurde. Auf diese Art wird erreicht, dass auch von einem nachfolgend empfangenen (ECC-)Block von Datensektoren keine noch benötigten Daten überschrieben werden.
- Vorteilhafterweise wird jeweils unmittelbar nach dem Lesen einer Zeile beziehungsweise Spalte aus dem zweiten RAM-Speicher die entsprechende Zeile beziehungsweise Spalte aus dem ersten RAM-Speicher gelesen und in die gerade gelesene Zeile beziehungsweise Spalte des zweiten RAM-Speichers geschrieben. Dies hat den Vorteil, dass bereits zu einem Zeitpunkt Daten in den zweiten RAM-Speicher geschrieben werden können, zu dem noch nicht alle im zweiten RAM-Speicher vorhandenen Daten verarbeitet sind. Es muss daher nicht darauf gewartet werden, dass der zweite RAM-Speicher vollständig ausgelesen ist.
- Gemäß einem weiteren Aspekt der Erfindung wird jeweils nach dem Lesen, mit Paritätsinformation Versehen und Ausgeben einer festen Anzahl von Zeilen beziehungsweise Spalten aus dem Datenbereich im zweiten RAM-Speicher eine Zeile beziehungsweise Spalte aus dem Paritätenbereich im zweiten RAM-Speicher gelesen, mit einer zweiten Paritätsinformation versehen und ausgegeben, wobei die gelesene Zeile beziehungsweise Spalte nicht sofort überschrieben wird. Dies ermöglicht ein Verschachteln des ECC-Blocks von Datensektoren, wodurch die Fehlersicherheit erhöht wird.
- Des Weiteren wird vorteilhafterweise jeweils unmittelbar nach dem Lesen einer Zeile beziehungsweise Spalte aus dem ersten RAM-Speicher die entsprechende Zeile des weiteren nachfolgend empfangenen (ECC-)Blocks von Datensektoren in die gerade gelesene Zeile beziehungsweise Spalte geschrieben. Hier liegt der Vorteil darin, dass bereits zu einem Zeitpunkt Daten in den ersten RAM-Speicher geschrieben werden können, zu dem noch nicht alle im ersten RAM-Speicher vorhandenen Daten abgearbeitet sind. Wiederum muss nicht erst auf das vollständige Auslesen des ersten RAM-Speichers gewartet werden.
- Erfindungsgemäß werden nach dem Lesen aller im ersten RAM- Speicher beschriebenen Zeilen beziehungsweise Spalten verbleibende Zeilen des weiteren nachfolgend empfangenen (ECC-)Blocks von Datensektoren in die weiteren Zeilen beziehungsweise Spalten des ersten RAM-Speichers geschrieben, und es werden nach dem Lesen aller Zeilen beziehungsweise Spalten des zweiten RAM-Speichers, die nach dem Lesen durch entsprechende, aus dem ersten RAM-Speicher gelesene Zeilen beziehungsweise Spalten überschrieben wurden, verbliebene ungelesene Zeilen beziehungsweise Spalten des zweiten RAM- Speichers gelesen und ausgegeben. Auf diese Weise wird erreicht, dass die (ECC-)Blöcke von Datensektoren vollständig enkodiert beziehungsweise dekodiert werden, auch wenn sie eine unterschiedliche Anzahl von Zeilen und Spalten aufweisen.
- Vorteilhafterweise umfassen die Blöcke von Datensektoren jeweils 16 Datensektoren, wie dies beispielsweise beim Enkodieren beziehungsweise Dekodieren von Datenströmen für DVD + RW oder DVD-RAM auftritt.
- Erfindungsgemäß bestehen die Blöcke von Datensektoren aus jeweils 192 Zeilen zu je 172 Byte. Auf diese Weise können Datenströme gemäß dem DVD-Standard enkodiert beziehungsweise dekodiert werden.
- Erfindungsgemäß bestehen die ECC-Blöcke von Datensektoren aus jeweils 208 Zeilen zu je 182 Byte. Auch dies entspricht dem DVD-Standard.
- Gemäß der Erfindung besteht die erste Paritätsinformation aus 16 Byte und die zweite Paritätsinformation aus 10 Byte, wie es dem DVD-Standard entspricht.
- Vorteilhafterweise verwendet eine Enkodiereinheit zum Erstellen eines ECC-Blocks aus einer Mehrzahl von Datensektoren, wobei die Datensektoren in einem Speicher zwischengespeichert und mit Paritätsinformationen versehen werden, ein erfindungsgemäßes Verfahren zum Enkodieren der Datensektoren. Eine solche Enkodiereinheit hat den Vorteil, dass sie gegenüber dem Stand der Technik einen auf die Hälfte verringerten Speicherbedarf hat und lediglich zwei anstelle von vier Enkodierern benötigt.
- Erfindungsgemäß verwendet eine Dekodiereinheit zur Rückgewinnung einer Mehrzahl von Datensektoren aus einem mit Paritätsinformation versehenen ECC-Block von Datensektoren, wobei der ECC-Block in einem Speicher zwischengespeichert wird, ein erfindungsgemäßes Verfahren zum Dekodieren der Datensektoren. Eine solche Dekodiereinheit hat den Vorteil, dass sie gegenüber dem Stand der Technik einen auf die Hälfte reduzierten Speicherbedarf hat und lediglich zwei anstelle von vier Dekodierern benötigt.
- Erfindungsgemäß verwendet ein Gerät zum Lesen und/oder Beschreiben von Speichermedien ein Verfahren oder eine Enkodiereinheit gemäß der Erfindung zum Enkodieren eines Datenstroms oder ein Verfahren oder eine Dekodiereinheit gemäß der Erfindung zum Dekodieren eines Datenstroms. Ein solches Gerät lässt sich zu geringeren Kosten herstellen, da eine verringerte Anzahl von Komponenten zum Enkodieren beziehungsweise Dekodieren des Datenstroms benötigt wird.
- Gemäß einem weiteren Aspekt der Erfindung verwendet ein Verfahren zur Übermittlung eines digitalen Datenstroms ein erfindungsgemäßes Verfahren oder eine erfindungsgemäße Enkodiereinheit zum Enkodieren des zu übermittelnden Datenstroms. Auch hier liegt der Vorteil in den verringerten Kosten, die zum Enkodieren des zu übermittelnden Datenstroms nötig sind.
- Entsprechend verwendet ein Verfahren zum Empfangen eines digitalen Datenstroms ein erfindungsgemäßes Verfahren oder eine erfindungsgemäße Dekodiereinheit zum Dekodieren des empfangenen Datenstroms. Auch hier liegt der Vorteil in den verringerten Kosten, die zum Dekodieren des empfangenen Datenstroms nötig sind.
- Vorteilhafterweise werden die erfindungsgemäßen Verfahren von einem Computerprogramm durchgeführt. Dies ermöglicht es, die Verfahren in programmgesteuerten Geräten einzusetzen, die bereits Speicherbausteine für andere Zwecke besitzen, ohne dass spezielle Speicher für das Enkodieren oder Dekodieren von Datenströmen vorgesehen werden müssen.
- Selbstverständlich liegen Kombinationen vorteilhafter Merkmale ebenfalls im Geltungsbereich der Erfindung.
- Zum besseren Verständnis soll die Erfindung nachfolgend anhand der Fig. 1 bis 5 erläutert werden. Es zeigt:
- Fig. 1 eine Enkodiereinheit gemäß dem Stand der Technik,
- Fig. 2 ein Verfahren zum Enkodieren eines Datenstroms mit einer Enkodiereinheit gemäß dem Stand der Technik,
- Fig. 3 eine Enkodiereinheit gemäß der Erfindung,
- Fig. 4 eine Dekodiereinheit gemäß der Erfindung,
- Fig. 5 ein Verfahren zum Enkodieren eines Datenstroms mit einer erfindungsgemäßen Enkodiereinheit.
- Fig. 3 zeigt schematisch eine Enkodiereinheit 10 gemäß der Erfindung. Im Gegensatz zum Stand der Technik weist die Enkodiereinheit 10 außer einem Eingang 15 und einem Ausgang 16 lediglich einen ersten RAM-Speicher 11 und einen zweiten RAM- Speicher 13 sowie einen ersten Enkodierer 12 und einen zweiten Enkodierer 14 auf. Über den Eingang 15 empfangene Daten werden im ersten RAM-Speicher 11 gespeichert, von dort ausgelesen, vom ersten Enkodierer 12 mit einer ersten Paritätsinformation versehen und im zweiten RAM-Speicher 13 gespeichert. Die im zweiten RAM-Speicher 13 gespeicherten Daten werden ebenfalls ausgelesen, vom zweiten Enkodierer 14 mit einer zweiten Paritätsinformation versehen und über den Ausgang 16 der Enkodiereinheit ausgegeben.
- In Fig. 4 ist schematisch eine Dekodiereinheit 10 gemäß der Erfindung gezeigt. Gegenüber der in Fig. 3 gezeigten Enkodiereinheit 10 liegen die Unterschiede lediglich in der umgekehrten Anordnung der RAM-Speicher 11, 13 und der Dekodierer 12, 14. Ein über den Eingang 15 empfangener ECC-Block, der mit einer ersten und einer zweiten Paritätsinformation versehen ist, wird vom ersten Dekodierer 12 von der zweiten Paritätsinformation befreit und im ersten RAM-Speicher 11 gespeichert. Die im ersten RAM-Speicher 11 gespeicherten Daten werden ausgelesen, vom zweiten Dekodierer 14 von der ersten Paritätsinformation befreit und im zweiten RAM-Speicher 13gespeichert. Von dort werden sie wiederum ausgelesen und über den Ausgang 16 ausgegeben.
- In Fig. 5 ist schematisch ein erfindungsgemäßes Verfahren zum Enkodieren eines Datenstroms mit der in Fig. 3 gezeigten Enkodiereinheit dargestellt. Im Beispiel soll ein Datenstrom für DVD + RW beziehungsweise DVD-RAM enkodiert werden, d. h. je 16 Datensektoren werden in Form eines Blocks von 192 Zeilen zu je 172 Byte mit 16 Byte äußerer Paritätsinformation je Spalte und 10 Byte innerer Paritätsinformation je Zeile versehen und in Form eines ECC-Blocks mit 208 Zeilen zu je 182 Byte ausgegeben. Weiterhin wird davon ausgegangen, dass im ersten RAM-Speicher 11 und im zweiten RAM-Speicher 13 bereits Daten vorliegen. Ist dies nicht der Fall, beginnt das Verfahren zunächst mit Schritt 630, bis ein erster Zyklus durchlaufen und die Annahme erfüllt ist.
- Das erfindungsgemäße Verfahren lässt sich in zwei Phasen 60, 70 unterteilen, wobei sowohl in der ersten Phase 60 als auch in der zweiten Phase 70 ein vollständiger Block von Datensektoren empfangen und ein vollständiger ECC-Block von Datensektoren ausgegeben wird. Zum Enkodieren eines Datenstroms werden daher die beiden Phasen 60,70 kontinuierlich wiederholt. Beide Phasen lassen sich in jeweils vier Teilphasen 601, 602, 603, 604 beziehungsweise 701, 702, 703, 704 untergliedern. In Fig. 4 sind sowohl in der ersten Phase 60 als auch in der zweiten Phase 70 alle Teilphasen 601-604 beziehungsweise 701-704 graphisch in eine linke und eine rechte Hälfte unterteilt. Verfahrensschritte in der linken Hälfte beziehen sich jeweils auf den Eingang 15, den ersten RAM-Speicher 11 und den ersten Enkodierer 12, Verfahrensschritte in der rechten Hälfte auf den zweiten RAM-Speicher 13, den zweiten Enkodierer 14 und den Ausgang 16.
- Zu Beginn der ersten Phase 60 liegen im zweiten RAM-Speicher 13 Daten in Form von 208 Zeilen zu je 172 Byte vor, wobei die ersten 192 Zeilen einen Datenbereich und die restlichen 16 Zeilen einen Paritätenbereich bilden. In der ersten Teilphase 601 wird im Schritt 610 die erste Zeile zu 172 Byte aus dem zweiten RAM-Speicher 13 gelesen. Im Schritt 611 wird diese Zeile vom zweiten Enkodierer 14 mit 10 Byte innerer Paritätsinformation versehen und im Schritt 612 als Zeile zu 182 Byte über den Ausgang 16 ausgegeben. Die erste Zeile des zweiten RAM-Speichers 13 kann somit durch neue Daten überschrieben werden. In der zweiten Teilphase 602 wird im Schritt 620 eine Zeile zu 192 Byte aus dem ersten RAM-Speicher 11 gelesen. Diese wird im Schritt 621 vom ersten Enkodierer 12 mit 16 Byte äußerer Paritätsinformation versehen und im Schritt 622 in die frei gewordene Zeile des zweiten RAM-Speichers 13 geschrieben. Es beginnt die dritte Teilphase 603, in der zunächst im Schritt 630 über den Eingang 15 eine Zeile zu 172 Byte des nächsten Blocks von Datensektoren empfangen wird. Diese wird im Schritt 631 in die erste Zeile des ersten RAM- Speichers 11 geschrieben. Im Schritt 632 wird die nächste Zeile zu 172 Byte aus dem zweiten RAM-Speicher 13 gelesen und an den zweiten Enkodierer 14 weitergegeben. Im Schritt 633 wird sie von diesem mit 10 Byte innerer Paritätsinformation versehen und im Schritt 634 über den Ausgang 16 ausgegeben. Die zweite Teilphase 602 und die dritte Teilphase 603 werden insgesamt 172 mal durchlaufen, wobei im n-ten Durchgang im Schritt 620 jeweils die n-te Zeile aus dem ersten RAM-Speicher 11 gelesen und nach dem Versehen mit äußerer Paritätsinformation im Schritt 622 in die n-te Zeile des zweiten RAM-Speichers 13 geschrieben wird. Zudem wird im Schritt 630 jeweils die n-te Zeile des nächsten Blocks von Datensektoren empfangen, die dann im Schritt 631 in die n-te Zeile des ersten RAM-Speichers 11 geschrieben wird, wobei im Schritt 632 die (n + 1)-te Zeile des zweiten RAM-Speichers 13 gelesen und im Schritt 634 als (n + 1)-te Zeile des ECC-Blocks ausgegeben wird. Nachdem die zweite und die dritte Teilphase 602, 603 insgesamt 172 mal durchlaufen wurde, beginnt die vierte Teilphase 604. Im Schritt 640 werden die verbleibenden 20 Zeilen zu je 172 Byte des nächsten Blocks von Datensektoren über den Eingang 15 empfangen und im Schritt 641 in die entsprechenden 20 Zeilen des ersten RAM-Speichers 11 geschrieben. Des Weiteren werden im Schritt 642 die verbliebenen, noch nicht gelesenen 35 Zeilen zu je 172 Byte aus dem zweiten RAM-Speicher 13 gelesen, im Schritt 643 vom zweiten Enkodierer 14 mit je 10 Byte innerer Paritätsinformation pro Zeile versehen und im Schritt 644 in Form von 35 Zeilen zu je 182 Byte über den Ausgang 16 ausgegeben. Nach Beendigung der vierten Teilphase 604 wurde somit insgesamt ein vollständiger Block von Datensektoren in den ersten RAM-Speicher 11 geschrieben und ein vollständiger ECC-Block von Datensektoren über den Ausgang 16 ausgegeben. Außerdem wurde ein im ersten RAM-Speicher 11 vorliegender Block von Datensektoren mit einer ersten Paritätsinformation versehen und in den zweiten RAM-Speicher 13 geschrieben. Vor Beginn der zweiten Phase 70 herrschen somit die gleichen Vorraussetzungen wie zu Beginn der ersten Phase 60, wobei allerdings im ersten und zweiten RAM-Speicher 11,13 die Rollen von Zeilen und Spalten vertauscht sind.
- Die zweite Phase 70 verläuft vollkommen analog zu ersten Phase 60. Zu Beginn der zweiten Phase 70 liegen im zweiten RAM- Speicher 13 Daten in Form von 208 Spalten zu je 172 Byte vor wobei die ersten 192 Spalten einen Datenbereich und die restlichen 16 Spalten einen Paritätenbereich bilden. In der ersten Teilphase 701 wird im Schritt 210 die erste Spalte zu 172 Byte aus dem zweiten RAM-Speicher 13 gelesen. Im Schritt 711 wird diese Spalte vom zweiten Enkodierer 14 mit 10 Byte innerer Paritätsinformation versehen und im Schritt 712 als Zeile zu 182 Byte über den Ausgang 16 ausgegeben. Die erste Spalte des zweiten RAM-Speichers 13 kann somit durch neue Daten überschrieben werden. In der zweiten Teilphase 702 wird im Schritt 720 eine Spalte zu 192 Byte aus dem ersten RAM-Speicher 11 gelesen. Diese wird im Schritt 721 vom ersten Enkodierer 12 mit 16 Byte äußerer Paritätsinformation versehen und im Schritt 722 in die frei gewordene Spalte des zweiten RAM-Speichers 13 geschrieben. Es beginnt die dritte Teilphase 703, in der zunächst im Schritt 730 über den Eingang 15 eine Zeile zu 172 Byte des nächsten Blocks von Datensektoren empfangen wird. Diese wird im Schritt 731 in die erste Spalte des ersten RAM- Speichers 11 geschrieben. Im Schritt 732 wird die nächste Spalte zu 172 Byte aus dem zweiten RAM-Speicher 13 gelesen und an den zweiten Enkodierer 14 weitergegeben. Im Schritt 733 wird sie von diesem mit 10 Byte innerer Paritätsinformation versehen und im Schritt 734 über den Ausgang 16 ausgegeben. Die zweite Teilphase 702 und die dritte Teilphase 703 werden insgesamt 172 mal durchlaufen, wobei im n-ten Durchgang im Schritt 720 jeweils die n-te Spalte aus dem ersten RAM-Speicher 11 gelesen und nach dem Versehen mit äußerer Paritätsinformation im Schritt 722 in die n-te Spalte des zweiten RAM-Speichers 13 geschrieben wird, und im Schritt 730 jeweils die n-te Zeile des nächsten Blocks von Datensektoren empfangen, im Schritt 731 in die n-te Spalte des ersten RAM-Speichers 11 geschrieben, im Schritt 732 die (n + 1)-te Spalte des zweiten RAM-Speichers 13 gelesen und im Schritt 734 als (n + 1)-te Zeile des ECC-Blocks ausgegeben wird. Nachdem die zweite und dritte Teilphase 702, 703 insgesamt 172 mal durchlaufen wurde, beginnt die vierte Teilphase 704. Im Schritt 740 werden die verbleibenden 20 Zeilen zu je 172 Byte des nächsten Blocks von Datensektoren über den Eingang 15 empfangen und im Schritt 741 in die entsprechenden 20 Spalten des ersten RAM-Speichers 11 geschrieben. Des Weiteren werden im Schritt 742 die verbliebenen, noch nicht gelesenen 35 Spalten zu je 172 Byte aus dem zweiten RAM-Speicher 13 gelesen, im Schritt 743 vom zweiten Enkodierer 14 mit 10 Byte innerer Paritätsinformation je Spalte versehen und im Schritt 744 in Form von 35 Zeilen zu je 182 Byte über den Ausgang 16 ausgegeben. Nach Beendigung der vierten Teilphase 704 wurde somit ein vollständiger Block von Datensektoren in den ersten RAM-Speicher geschrieben und ein vollständiger ECC-Block von Datensektoren über den Ausgang 16 ausgegeben. Außerdem wurde ein im ersten RAM-Speicher 11 vorliegender Block von Datensektoren mit einer ersten Paritätsinformation versehen und in den zweiten RAM-Speicher 13 geschrieben.
- Durch die sukzessive Wiederholung der beiden Phasen 60, 70 wird eine kontinuierliche Enkodierung eines am Eingang 15 eingehenden Datenstroms erzielt.
- Wenn der zu enkodierende Block von Datensektoren zusätzlich zum Hinzufügen von Paritätsinformation auch noch eine Verschachtelung aufweisen soll, muss der obige Ablauf etwas abgeändert werden. Nachdem jeweils zwölf Zeilen beziehungsweise Spalten aus dem zweiten RAM-Speicher 13 gelesen, mit äußerer Paritätsinformation versehen und ausgegeben wurden, wird zusätzlich eine Zeile beziehungsweise Spalte aus dem Paritätenbereich gelesen, mit Paritätsinformation versehen und ausgegeben. Diese Zeile beziehungsweise Spalte wird nicht sofort wieder überschrieben, stattdessen ruht der Mechanismus des Lesens und Schreibens für einen Moment. Dementsprechend werden in den Schritten 642 und 742 keine 35 verbliebenen Zeilen beziehungsweise Spalten abgearbeitet, sondern lediglich 21.
- Eine Dekodiereinheit gemäß der Erfindung arbeitet analog zu obiger Beschreibung, allerdings in umgekehrter Reihenfolge, so dass die Daten jeweils zunächst dekodiert und dann erst gespeichert werden. Dabei werden diejenigen Schritte, in denen die Daten beim Enkodieren von den Enkodierern 12, 14 mit Paritätsinformation versehen werden, durch entsprechende Schritte ersetzt, in denen die mit Paritätsinformation versehenen Daten durch Dekodierer von der Paritätsinformationen befreit werden. Außerdem werden die Daten zunächst von der inneren Paritätsinformation befreit und erst im Anschluss von der äußeren Paritätsinformation, die Reihenfolge ist also entgegengesetzt zur Reihenfolge beim Enkodieren. Für das Befreien der Daten von der Paritätsinformation gilt das gleiche, was bereits zum Stand der Technik erläutert wurde. Es handelt sich genau genommen um einen komplexen Vorgang der Fehlerkorrektur.
Claims (22)
1. Verfahren zum Erstellen eines ECC-Blocks aus einer Mehrzahl
von Datensektoren, wobei die Datensektoren in Form eines Blocks
mit mehreren Zeilen in einem in Form von Zeilen und Spalten
organisierten Speicher (11, 13) zwischengespeichert und mit
Paritätsinformation versehen werden, dadurch gekennzeichnet,
dass aufeinander folgend empfangene Blöcke von Datensektoren
zeilenweise abwechselnd in die Zeilen beziehungsweise Spalten
des Speichers (11, 13) geschrieben werden.
2. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, dass der
Speicher (11, 13) einen ersten RAM-Speicher (11) und einen
zweiten RAM-Speicher (13) aufweist.
3. Verfahren gemäß Anspruch 2, dadurch gekennzeichnet, dass ein
im zweiten RAM-Speicher (13) befindlicher erster Block von
Datensektoren, der mit einer ersten Paritätsinformation
versehen ist und einen Datenbereich und einen Paritätenbereich
aufweist, gelesen (610, 632, 642, 710, 732, 742), mit einer zweiten
Paritätsinformation versehen (611, 633, 643, 711, 733, 743) und
ausgegeben (612, 634, 644, 712, 734, 744) wird, und dass ein im
ersten RAM-Speicher (11) befindlicher zweiter Block von
Datensektoren gelesen (620,720), mit der ersten
Paritätsinformation versehen (621, 721) und im zweiten RAM-
Speicher (13) gespeichert (622, 722) wird.
4. Verfahren zur Rückgewinnung einer Mehrzahl von Datensektoren
aus einem mit Paritätsinformation versehenen ECC-Block von
Datensektoren, wobei der ECC-Block in einem in Form von Zeilen
und Spalten organisierten Speicher (11, 13) zwischengespeichert
wird, dadurch gekennzeichnet, dass aufeinander folgend
empfangene ECC-Blöcke von Datensektoren zeilenweise abwechselnd
in die Zeilen beziehungsweise Spalten des Speichers (11, 13)
geschrieben werden.
5. Verfahren gemäß Anspruch 4, dadurch gekennzeichnet, dass der
Speicher (11, 13) einen ersten RAM-Speicher (11) und einen
zweiten RAM-Speicher (13) aufweist.
6. Verfahren gemäß Anspruch 5, dadurch gekennzeichnet, dass ein
im ersten RAM-Speicher (11) befindlicher erster ECC-Block von
Datensektoren, der mit einer ersten Paritätsinformation
versehen ist, gelesen, von der ersten Paritätsinformation
befreit und im zweiten RAM-Speicher (13) gespeichert wird, und
dass ein zweiter nachfolgend empfangener ECC-Block von
Datensektoren, der mit einer ersten und einer zweiten
Paritätsinformation versehen ist, von der zweiten
Paritätsinformation befreit und im ersten RAM-Speicher (11)
gespeichert wird.
7. Verfahren gemäß Anspruch 3 oder 6, dadurch gekennzeichnet,
dass der erste (ECC-)Block von Datensektoren zeilenweise aus
dem zweiten RAM-Speicher (13) gelesen wird, wenn er
spaltenweise in den zweiten RAM-Speicher geschrieben wurde, und
spaltenweise, wenn er zeilenweise in den zweiten RAM-Speicher
geschrieben wurde, und dass der zweite (ECC-)Block von
Datensektoren zeilenweise aus dem ersten RAM-Speicher (11)
gelesen und zeilenweise in den zweiten RAM-Speicher (13)
geschrieben wird, wenn er zeilenweise in die Spalten des ersten
RAM-Speichers (11) geschrieben wurde, und spaltenweise gelesen
und spaltenweise in den zweiten RAM-Speicher (13) geschrieben,
wenn er zeilenweise in die Zeilen des ersten RAM-Speichers (11)
geschrieben wurde.
8. Verfahren gemäß Anspruch 7, dadurch gekennzeichnet, dass ein
weiterer nachfolgend empfangener (ECC-)Block von Datensektoren
zeilenweise in die Zeilen beziehungsweise Spalten des ersten
RAM-Speichers (11) geschrieben wird, wenn der zweite
(ECC-)Block von Datensektoren zeilenweise beziehungsweise
spaltenweise aus dem ersten RAM-Speicher (11) gelesen wurde.
9. Verfahren gemäß Anspruch 8, dadurch gekennzeichnet, dass
jeweils unmittelbar nach dem Lesen einer Zeile beziehungsweise
Spalte aus dem zweiten RAM-Speicher (13) die entsprechende
Zeile beziehungsweise Spalte aus dem ersten RAM-Speicher (11)
gelesen und in die gerade gelesene Zeile beziehungsweise Spalte
des zweiten RAM-Speichers (13) geschrieben wird.
10. Verfahren gemäß Anspruch 9, dadurch gekennzeichnet, dass
jeweils nach dem Lesen, mit Paritätsinformation Versehen und
Ausgeben einer festen Anzahl von Zeilen beziehungsweise Spalten
aus dem Datenbereich im zweiten RAM-Speicher (13) eine Zeile
beziehungsweise Spalte aus dem Paritätenbereich im zweiten RAM-
Speicher (13) gelesen, mit einer zweiten Paritätsinformation
versehen und ausgegeben wird, wobei die gelesene Zeile
beziehungsweise Spalte nicht sofort überschrieben wird.
11. Verfahren gemäß Anspruch 9 oder 10, dadurch
gekennzeichnet, dass jeweils unmittelbar nach dem Lesen einer
Zeile beziehungsweise Spalte aus dem ersten RAM-Speicher (11)
die entsprechende Zeile des weiteren nachfolgend empfangenen
(ECC-)Blocks von Datensektoren in die gerade gelesene Zeile
beziehungsweise Spalte geschrieben wird.
12. Verfahren gemäß Anspruch 11, dadurch gekennzeichnet, dass
nach dem Lesen aller im ersten RAM-Speicher (11) beschriebenen
Zeilen beziehungsweise Spalten verbleibende Zeilen des weiteren
nachfolgend empfangenen (ECC-)Blocks von Datensektoren in die
Zeilen beziehungsweise Spalten des ersten RAM-Speichers (11)
geschrieben werden, und dass nach dem Lesen aller Zeilen
beziehungsweise Spalten des zweiten RAM-Speichers (13), die
durch entsprechende, aus dem ersten RAM-Speicher (11) gelesene
Zeilen beziehungsweise Spalten neu beschrieben wurden,
verbliebene ungelesene Zeilen beziehungsweise Spalten des
zweiten RAM-Speichers (13) gelesen und ausgegeben werden.
13. Verfahren gemäß einem der vorherigen Ansprüche, dadurch
gekennzeichnet, dass die Blöcke von Datensektoren jeweils 16
Datensektoren umfassen.
14. Verfahren gemäß einem der Ansprüche 1-3 oder 7-13, dadurch
gekennzeichnet, dass die Blöcke von Datensektoren aus jeweils
192 Zeilen zu je 172 Byte bestehen.
15. Verfahren gemäß einem der Ansprüche 4-13, dadurch
gekennzeichnet, dass die ECC-Blöcke von Datensektoren aus
jeweils 208 Zeilen zu je 182 Byte bestehen.
16. Verfahren gemäß einem der vorherigen Ansprüche, dadurch
gekennzeichnet, dass die erste Paritätsinformation aus 16 Byte
und die zweite Paritätsinformation aus 10 Byte besteht.
17. Enkodiereinheit (10) zum Erstellen eines ECC-Blocks aus
einer Mehrzahl von Datensektoren, wobei die Datensektoren in
Form eines Blocks in einem Speicher (11, 13) zwischengespeichert
und mit Paritätsinformation versehen werden, dadurch
gekennzeichnet, dass sie ein Verfahren gemäß einem der
Ansprüche 1-3 oder 7-13 für das Erstellen des ECC-Blocks
verwendet.
18. Dekodiereinheit zur Rückgewinnung einer Mehrzahl von
Datensektoren aus einem mit Paritätsinformation versehenen ECC-
Block, wobei der ECC-Block in einem Speicher (11, 13)
zwischengespeichert wird, dadurch gekennzeichnet, dass sie ein
Verfahren gemäß einem der Ansprüche 4-13 für die Rückgewinnung
der Datensektoren verwendet.
19. Gerät zum Lesen und/oder Beschreiben von Speichermedien,
dadurch gekennzeichnet, dass es ein Verfahren gemäß einem der
Ansprüche 1-3 oder 7-13 oder eine Enkodiereinheit (10) gemäß
Anspruch 17 zum Enkodieren eines Datenstroms oder ein Verfahren
gemäß einem der Ansprüche 4-13 oder eine Dekodiereinheit gemäß
Anspruch 18 zum Dekodieren eines Datenstroms verwendet.
20. Verfahren zur Übermittlung eines digitalen Datenstroms,
dadurch gekennzeichnet, dass es ein Verfahren gemäß einem der
Ansprüche 1-3 oder 7-13 oder eine Enkodiereinheit (10) gemäß
Anspruch 17 zum Enkodieren des zu übermittelnden Datenstroms
verwendet.
21. Verfahren zum Empfangen eines digitalen Datenstroms,
dadurch gekennzeichnet, dass es ein Verfahren gemäß einem der
Ansprüche 1-3 oder 7-13 oder eine Dekodiereinheit gemäß
Anspruch 18 zum Dekodieren des empfangenen Datenstroms
verwendet.
22. Computerprogrammprodukt zur Durchführung eines Verfahrens
gemäß einem der Ansprüche 1-13, 20 oder 21.
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10216999A DE10216999A1 (de) | 2002-04-16 | 2002-04-16 | ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf |
| KR10-2003-0019164A KR20030082376A (ko) | 2002-04-16 | 2003-03-27 | Ram 메모리 요구가 감소된 ecc 블록 인코더 및 디코더 |
| EP03290845A EP1355429A3 (de) | 2002-04-16 | 2003-04-04 | Fehlerkorrekturkode, Blockkodierer und -dekodierer mit verringertem RAM Speicherbedarf |
| TW092108296A TW200305860A (en) | 2002-04-16 | 2003-04-11 | ECC block encoder and decoder with reduced ram memory requirement |
| US10/412,881 US20030196157A1 (en) | 2002-04-16 | 2003-04-14 | ECC block encoder and decoder with reduced RAM memory requirement |
| JP2003110481A JP2004007587A (ja) | 2002-04-16 | 2003-04-15 | 必要なramメモリを削減できるeccブロックエンコーダ及びデコーダ |
| CN03110472A CN1452321A (zh) | 2002-04-16 | 2003-04-16 | 随机存取存储器需求减小的纠错码块编码器和解码器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10216999A DE10216999A1 (de) | 2002-04-16 | 2002-04-16 | ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE10216999A1 true DE10216999A1 (de) | 2003-11-06 |
Family
ID=28458883
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE10216999A Withdrawn DE10216999A1 (de) | 2002-04-16 | 2002-04-16 | ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US20030196157A1 (de) |
| EP (1) | EP1355429A3 (de) |
| JP (1) | JP2004007587A (de) |
| KR (1) | KR20030082376A (de) |
| CN (1) | CN1452321A (de) |
| DE (1) | DE10216999A1 (de) |
| TW (1) | TW200305860A (de) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100359587C (zh) * | 2003-12-10 | 2008-01-02 | 联发科技股份有限公司 | 用于单晶片电子电路的影音编解码方法 |
| US7430701B2 (en) * | 2005-06-16 | 2008-09-30 | Mediatek Incorporation | Methods and systems for generating error correction codes |
| JP2009181425A (ja) * | 2008-01-31 | 2009-08-13 | Nec Corp | メモリモジュール |
| US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
| KR101678053B1 (ko) * | 2010-04-02 | 2016-11-22 | 삼성전자 주식회사 | 반도체 장치 및 이의 복호 방법 |
| US8977933B2 (en) | 2010-06-11 | 2015-03-10 | Freescale Semiconductor, Inc. | Method for providing data protection for data stored within a memory element and integrated circuit device therefor |
| CN108447516B (zh) | 2013-08-23 | 2020-04-24 | 慧荣科技股份有限公司 | 存取快闪存储器中存储单元的方法以及使用该方法的装置 |
| CN104424127A (zh) | 2013-08-23 | 2015-03-18 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
| CN107193684B (zh) | 2013-08-23 | 2020-10-16 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
| CN110175088B (zh) | 2013-08-23 | 2022-11-11 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
| US10152429B2 (en) | 2015-10-27 | 2018-12-11 | Medallia, Inc. | Predictive memory management |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0167627B1 (de) * | 1983-12-20 | 1993-08-11 | Sony Corporation | Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes |
| JPH06216220A (ja) * | 1993-01-19 | 1994-08-05 | Hitachi Ltd | 位置決め装置 |
| US6079046A (en) * | 1997-04-09 | 2000-06-20 | International Business Machines Corporation | Dynamic data transfer bandwidth control |
| WO2001093428A2 (en) * | 2000-06-02 | 2001-12-06 | Vitesse Semiconductor Corporation | Product code based forward error correction system |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69317867T2 (de) * | 1992-12-14 | 1998-10-22 | Koninkl Philips Electronics Nv | Verfahren und Vorrichtung zur Realisierung eines Quasiproduktkodes mit verschiedenen Fehlerschutzstufen |
| FR2717644B1 (fr) * | 1994-03-15 | 1996-04-26 | Alcatel Mobile Comm France | Procédé de codage - Entrelacement et procédé correspondant de désentrelacement - décodage. |
| US5719884A (en) * | 1995-07-27 | 1998-02-17 | Hewlett-Packard Company | Error correction method and apparatus based on two-dimensional code array with reduced redundancy |
| US5828671A (en) * | 1996-04-10 | 1998-10-27 | Motorola, Inc. | Method and apparatus for deinterleaving an interleaved data stream |
| JP4097852B2 (ja) * | 1999-08-26 | 2008-06-11 | 株式会社フィリップスエレクトロニクスジャパン | データ書込読出方法、デインターリーブ方法、データ処理方法、メモリ、及びメモリ駆動装置 |
-
2002
- 2002-04-16 DE DE10216999A patent/DE10216999A1/de not_active Withdrawn
-
2003
- 2003-03-27 KR KR10-2003-0019164A patent/KR20030082376A/ko not_active Withdrawn
- 2003-04-04 EP EP03290845A patent/EP1355429A3/de not_active Withdrawn
- 2003-04-11 TW TW092108296A patent/TW200305860A/zh unknown
- 2003-04-14 US US10/412,881 patent/US20030196157A1/en not_active Abandoned
- 2003-04-15 JP JP2003110481A patent/JP2004007587A/ja not_active Withdrawn
- 2003-04-16 CN CN03110472A patent/CN1452321A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0167627B1 (de) * | 1983-12-20 | 1993-08-11 | Sony Corporation | Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes |
| JPH06216220A (ja) * | 1993-01-19 | 1994-08-05 | Hitachi Ltd | 位置決め装置 |
| US6079046A (en) * | 1997-04-09 | 2000-06-20 | International Business Machines Corporation | Dynamic data transfer bandwidth control |
| WO2001093428A2 (en) * | 2000-06-02 | 2001-12-06 | Vitesse Semiconductor Corporation | Product code based forward error correction system |
Non-Patent Citations (1)
| Title |
|---|
| CHANG,H.-C.,SHUNG C.B.et.al.: A Reed Solomon Product-Code (RS-PC) Decoder Chip for DVD Applications. In: IEEE Journal of Solid State Circuits,Vol.36,No.2,Feb.2001,S.229-238 * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20030082376A (ko) | 2003-10-22 |
| CN1452321A (zh) | 2003-10-29 |
| US20030196157A1 (en) | 2003-10-16 |
| EP1355429A3 (de) | 2004-11-17 |
| TW200305860A (en) | 2003-11-01 |
| EP1355429A2 (de) | 2003-10-22 |
| JP2004007587A (ja) | 2004-01-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3416047C2 (de) | Fehlerkorrekturverfahren für digitale Informationsdaten | |
| DE69030490T2 (de) | Aufzeichnungsvorrichtung zum umkehrbaren Speichern von digitalen Daten auf einem Mehrspuren-Aufzeichnungsträger, Dekodiervorrichtung, Informationswiedergabegerät für die Verwendung mit einem solchen Aufzeichnungsträger und Aufzeichnungsträger für die Verwendung mit einer solchen Aufzeichnungsvorrichtung, mit einer solchen Dekodiervorrichtung und/oder mit einem solchen Informationswiedergabegerät | |
| DE3040004C2 (de) | ||
| DE3486361T2 (de) | Verfahren und Vorrichtung zum Aufzeichnen eines digitalen Informationssignals. | |
| DE2830925C2 (de) | ||
| DE69324650T2 (de) | Mischungsverfahren für ein digitales Videobandaufzeichnungsgerät | |
| EP0043151B1 (de) | Anordnung zur Verarbeitung serieller Information, die mit Synchronisationswörtern versehen ist | |
| DE60129897T2 (de) | Datenverarbeitungsverfahren und Gerät, Datenaufzeichnungsmedium, Wiedergabeverfahren und Gerät welcher dieses Verfahren anwendet | |
| DE2938503A1 (de) | Verfahren und vorrichtung zur aufnahme und wiedergabe von audio-signalen mit digitaler aufzeichnung | |
| DE112011100199B4 (de) | Integrierter Daten- und Kopfdatenschutz für Bandlaufwerke | |
| DE69802770T2 (de) | Fehlerkorrektur verschachtelter Datenblöcke | |
| DE3886330T2 (de) | Datenübertragungsverfahren für verschachtelte Daten. | |
| DE2847801A1 (de) | Digitales einspur-nf-aufzeichnungsgeraet und schaltung mit fehlerkorrektur zur verwendung in diesem | |
| DE3418912A1 (de) | Verfahren zur codierung eines fehlerkorrekturcodes | |
| DE10216999A1 (de) | ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf | |
| DE3123978A1 (de) | "verfahren zum decodieren einer uebertragenen digitalen information unter korrektur von fehlern" | |
| DE3045226C2 (de) | ||
| DE2727685A1 (de) | Vorrichtung zur verarbeitung von daten | |
| DE3131764A1 (de) | Digitalsignal-uebertragungssystem | |
| DE3701763A1 (de) | Verfahren und anordnung zum einschreiben und lesen digital codierter information, beliebig geschuetzt durch einen fehlerkorrigierenden code oder nicht | |
| DE69128686T2 (de) | Fehlerkorrekturkoder und Dekoder | |
| DE102007007546A1 (de) | Fehlerkorrekturcode-Striping | |
| DE69324327T2 (de) | Verfahren für Fehler und Löschungskorrektur in digitaler Information und geeignete Vorrichtung zur Durchführung des Verfahrens | |
| DE68905099T2 (de) | Datenkodierung und formungsvorrichtung fuer ein aufzeichnungsgeraet mit drehenden koepfen. | |
| DE3241950C2 (de) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OM8 | Search report available as to paragraph 43 lit. 1 sentence 1 patent law | ||
| 8139 | Disposal/non-payment of the annual fee |