[go: up one dir, main page]

DE10216999A1 - ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf - Google Patents

ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf

Info

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
Application number
DE10216999A
Other languages
English (en)
Inventor
Alois Kern
Heinz-Werner Keesen
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.)
Deutsche Thomson Brandt GmbH
Original Assignee
Deutsche Thomson Brandt GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Deutsche Thomson Brandt GmbH filed Critical Deutsche Thomson Brandt GmbH
Priority to DE10216999A priority Critical patent/DE10216999A1/de
Priority to KR10-2003-0019164A priority patent/KR20030082376A/ko
Priority to EP03290845A priority patent/EP1355429A3/de
Priority to TW092108296A priority patent/TW200305860A/zh
Priority to US10/412,881 priority patent/US20030196157A1/en
Priority to JP2003110481A priority patent/JP2004007587A/ja
Priority to CN03110472A priority patent/CN1452321A/zh
Publication of DE10216999A1 publication Critical patent/DE10216999A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/2782Interleaver implementations, which reduce the amount of required interleaving memory
    • H03M13/2785Interleaver using in-place interleaving, i.e. writing to and reading from the memory is performed at the same memory location
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2906Coding, 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/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-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.
DE10216999A 2002-04-16 2002-04-16 ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf Withdrawn DE10216999A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 株式会社フィリップスエレクトロニクスジャパン データ書込読出方法、デインターリーブ方法、データ処理方法、メモリ、及びメモリ駆動装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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