NL9301240A - Foutcorrectiesysteem met selecteerbare foutcorrectiecapaciteiten. - Google Patents
Foutcorrectiesysteem met selecteerbare foutcorrectiecapaciteiten. Download PDFInfo
- Publication number
- NL9301240A NL9301240A NL9301240A NL9301240A NL9301240A NL 9301240 A NL9301240 A NL 9301240A NL 9301240 A NL9301240 A NL 9301240A NL 9301240 A NL9301240 A NL 9301240A NL 9301240 A NL9301240 A NL 9301240A
- Authority
- NL
- Netherlands
- Prior art keywords
- error
- symbols
- codeword
- syndromes
- error correction
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Description
Foutcorrectiesysteem met selecteerbare foutcorrectie-capaciteiten.
UITVINDINGSGEBIF.D
De uitvinding heeft algemeen betrekking op foutcorrectie van data en meer in het bijzonder op foutcorrectiecodering met selecteerbare foutcorrectiecapaciteiten.
UITVINDINGSACHTERGRQND
Het belang van foutcorrectiecodering van data in digitale computersystemen is in grote mate toegenomen, naarmate de dichtheid van de data, geregistreerd op massa-opslagmedia, meer in het bijzonder magnetische schijven, is toegenomen.
Met hoger registrerende dichtheden kan een geringe onvolmaaktheid in het registratieoppervlak van een schijf een grote hoeveelheid data bederven. Teneinde teloor gaan van deze data te vermijden, worden foutcorrectiecodes ("ECC's") gebruikt om, zoals de naam zegt, de foutieve data te corrigeren.
Alvorens een rij datasymbolen wordt geregistreerd op een schijf, is zij mathematisch gecodeerd voor het vormen van ECC- of redundantiesymbolen. De redundantiesymbolen worden dan gehecht aan de datarij voor het vormen van codewoorden - datasymbolen plus redundantiesymbolen - en de codewoorden worden dan opgeslagen op de schijf. Wanneer de opgeslagen informatie moet worden uitgelezen, worden de codewoorden, welke de datasymbolen bevatten, teruggewonnen van de schijf en mathematisch gedecodeerd. Tijdens decoderen worden mogelijke fouten in de data gedetecteerd en, indien mogelijk, gecorrigeerd door middel van manipulatie van de redundantiesymbolen. (Voor een gedetailleerde beschrijving van decoderen, zie Peterson and Weldon, Error Correcting Codes, 2nd Edition, MIT Press, 1972).
Opgeslagen digitale codewoorden kunnen multiple fouten bevatten. Eén van de meest effectieve soorten ECC, gebruikt voor de correctie van multiple fouten, is een Reed-Solomon code (zie Peterson and Weldon, Error Correcting Codes'!.
Foutdetectie- en eorrectietechnieken voor Reed-Solomon ECC's zijn welbekend.
Een (n,k) Reed-Solomon ECC codeert k datasymbolen voor het vormen van n-k, of r, redundantiesymbolen. De (n,k) code heeft een minimum afstand van D = r+1, hetgeen betekent, dat elk codewoord verschilt van elk ander codewoord met ten minste r+1 symbolen. Het aantal fouten, welke een ECC kan corrigeren, is direkt gerelateerd aan het aantal redundantiesymbolen, welke zij voortbrengt. Elk redundantie-symbool kan worden gebruikt om te bepalen, dat wil zeggen op te lossen, of een foutlokatie of een foutwaarde. Zodoende zijn twee redundantiesymbolen nodig om elke fout te corrigeren. De (n,k) code kan corrigeren tot (D-l)/2 fouten in een n-symbool codewoord.
Een uitwissing is een fout met een bekende lokatie.
Zulke fouten kunnen bijvoorbeeld worden gedetecteerd gedurende detectie en demodulatie van signalen, verkregen van een magnetische schijfaandrijving. Het systeem behoudt een wijzer voor de lokatie van de uitwissing. Dienovereenkomstig is slechts één redundantiesymbool nodig om een uitwissing te corrigeren, aangezien uitsluitend de datawaarde van de uitwissing onbekend is. De (n,k) code kan derhalve e uitwissingen, 0 < e < D-l, corrigeren en [D-l)-e]/2 fouten.
Het is mogelijk, dat een systeemontwerper geen Reed-Solomon ECC kan vinden, die in staat is om een gewenst aantal fouten te corrigeren in de k datasymbolen, dat wil zeggen, een code, welke R redundantiesymbolen genereert door k datasymbolen te coderen. De ontwerper kan bijvoorbeeld een code vinden, die R-t redundantiesymbolen genereert door de k datasymbolen te coderen en codewoorden formuleert met k+R+t symbolen. Een dergelijke code is evenwel niet aanvaardbaar voor een systeem, dat aan een codewoord een (k+R) symboolopslagruimte heeft toegekend. Dienovereenkomstig kan de ontwerper een ECC kiezen met bijvoorbeeld een grote lengte, een (N,K) code, waarbij N > n en K > k, welke N-K, of R redundantiesymbolen produceert, en vervolgens het codewoord afkappen door sommige van de datasymbolen te elimineren. Dit proces wordt vaak "verkorten" van de code genoemd, maar hier zal de term afkappen gebruikt worden, teneinde verwarring met het hier beschreven systeem te vermijden.
Afkappen van een (N,K) code bestaat uit het selecteren als geldige codewoorden van slechts die codewoorden van de oorspronkelijke (N,K) ECC, welke "in beginsymbolen bevatten, die corresponderen met een voorbepaald patroon, bijvoorbeeld, i beginsymbolen allemaal nul, waarbij K-i=k.
In een binaire code zijn er bijvoorbeeld 2 van deze codewoorden. De geselecteerde codewoorden vormen een (N-i, K-i) subcode van de (N,K) code. Indien de i beginsymbolen worden gewist, worden codewoorden met k datasymbolen en R redundantiesymbolen geproduceerd. Aangezien deze codewoorden hetzelfde aantal redundantiesymbolen inhouden als codewoorden van de oorspronkelijke (N,K) code, kan hetzelfde aantal fouten worden gecorrigeerd. Afgekapte codes worden in detail besproken in Peterson and Weldon, Error Correcting Codes.
Om fouten in de afgekapte codewoorden te corrigeren, zou het systeem de afgekapte symbolen kunnen vervangen en conventionele foutcorrectietechnieken gebruiken, ontworpen voor (N,K) code. Het systeem manipuleert zodoende de R redundantiesymbolen, teneinde foutsyndromen te genereren, en bepaalt uit deze de foutlokaties en foutwaarden. Alternatief kan het systeem, aangezien de gewiste begin-nulsymbolen, de manipulaties van de redundantiesymbolen, die de foutcorrectiesyndromen voortbrengen, niet beïnvloeden, het foutsyndroom voortbrengen zonder de afgekapte symbolen te vervangen. Wanneer het systeem evenwel een foutlokatie i bepaalt onder gebruikmaking van deze syndromen, moet het systeem rekening houden met de afgekapte maximale codewoord-lengte, welke N-i symbolen bedraagt. Onder gebruikmaking van een of ander van deze wijzen van aanpak manipuleert het systeem de R redundantiesymbolen voor het corrigeren van tot i R/2 codewoordfouten in de N-i codewoordsymbolen.
Indien een bekend informatieverwerkingssysteem voor bepaalde toepassingen de capaciteit vereist om een groot aantal fouten in de data te corrigeren, moet het systeem een krachtige ECC gebruiken, welke een groot aantal redundantie- symbolen produceert voor een gegeven aantal datasymbolen. Indien het systeem soms, of voor bepaalde toepassingen, kan werken met een gereduceerde foutcorrectiecapaciteit, kan het een minder krachtige ECC gebruiken, welke minder redundantiesymbolen voor hetzelfde aantal data voortbrengt.
Het systeem kan zodoende een grotere of kleinere hoeveelheid opslagruimte toekennen aan een gegeven codewoord in afhankelijkheid van de foutcorrectievereisten. Wanneer een systeem bijvoorbeeld informatie opslaat op een relatief nieuwe schijf, kan het systeem minder redundantiesymbolen gebruiken, dat wil zeggen een minder krachtige ECC, teneinde de data te beschermen, dan het gebruikt voor het beschermen van data, opgeslagen op een oudere, potentieel verslechterde schijf. Overeenkomstig kan het systeem in wezen de schijven aanslaan volgens hun totale integriteit met geassocieerde mate van fouten, en meer of minder krachtige ECC's gebruiken voor het beschermen van de informatie, opgeslagen op de schijven in afhankelijkheid van hun rangorde.
Het systeem kan tevens een meer of minder krachtige code gebruiken in afhankelijkheid van het soort opslagmedium, dat gebruikt wordt. Een systeem, dat de capaciteit bezit om informatie op te slaan op zowel optische als magnetische schijven, kan bijvoorbeeld een meer krachtige code gebruiken voor data, welke worden opgeslagen op de optische schijf. De kwaliteit van de optische schijven is in het algemeen niet zo goed als de kwaliteit van de magnetische schijven, en zodoende is de kans op het hebben van een defekt in de optische schijf hoger, en de kans, dat dat defekt een relatief groot aantal datasymbolen beïnvloedt, is tevens hoger dan de waarschijnlijkheden, geassocieerd met magnetische schijven. Dienovereenkomstig beschermt het systeem de informatie met een ECC, welke een groter aantal fouten kan corrigeren.
In netwerkinformatieverwerkingssystemen kunnen data, die over een lange afstand worden gezonden, worden beschermd met meer redundantiesymbolen dan data, die gezonden worden over een kortere afstand. Het systeem beschermt zodoende de data tegen transmissiefouten, die waarschijnlijker zullen optreden, wanneer data worden getransmitteerd over langere communicatiewegen.
Om zowel codewoorden met grote aantallen redundantiesymbolen alsook codewoorden met minder redundantiesymbolen voort te brengen, coderen bekende informatieverwerkingssystemen de datasymbolen onder gebruikmaking van verschillende, dat wil zeggen meer en minder krachtige ECC's. Dergelijke systemen moeten verschillende codeer- en decodeerorganen hebben om te gebruiken met de respectievelijke ECC's. Wat gewenst is, is een mechanisme, waardoor een systeem een enkelvoudig codeer- en decodeerorgaan kan gebruiken om deze codewoorden te coderen en te decoderen.
Dit is een ander probleem dan het probleem, opgelost door het afkappen van een ECC, aangezien het het aantal codewoordredundantiesymbolen is, dat verandert, niet het aantal codewoord-datasymbolen. Daarom zijn, hoewel de technieken, gebruikt voor het genereren van foutsyndromen voor een (N,K) code gebruikt kunnen worden bij een afgekapte (N-i, K-i) code, dat wil zeggen bij een code, welke hetzelfde aantal redundantiesymbolen voortbrengt, deze technieken niet geschikt voor codes, die verschillende aantallen redundantiesymbolen voortbrengen.
SAMENVATTING
Een foutcorrectiesysteem, dat een enkel codeerorgaan gebruikt met selecteerbare niveaus van redundantie voor het coderen en decoderen van data, produceert voor hetzelfde aantal datasymbolen codewoorden met selecteerbare aantallen redundantiesymbolen. Het codeerorgaan codeert k datasymbolen in overeenstemming met een (n,k) Reed-Solomon ECC voor het genereren van r redundantiesymbolen. Het systeem sèlecteert een gewenst niveau van foutcorrectie van één fout tot r/2 fouten per codewoord op basis van bijvoorbeeld het medium, waarop de informatie moet worden opgeslagen. Het systeem wist dan arbitrair p van de gegenereerde redundantiesymbolen voor het voortbrengen van een (n-p) symbool-codewoord, dat k datasymbolen bevat en r-p redundantiesymbolen, waarbij (r-p)/2 overeenkomt met het geselecteerde niveau van fout-bescherming. Het codewoord vormt deel van een (n-p,k) gepunctureerde code, die minder krachtig is dan de (n,k) code.
Tijdens decoderen behandelt het systeem de p gewiste symbolen als uitwissingen en corrigeert de p uitwissingen en op tot (r-p)/2 fouten in het codewoord. Het systeem vult eerst de p gewiste symbolen in met voortoegekende symbolen, bijvoorbeeld allemaal nulsymbolen, en stelt wijzers in op deze p symbolen, alsook e wijzers voor het detecteren van uitwissinglokaties. Het systeem manipuleert dan de r-p redundantiesymbolen en de p voortoegekende symbolen voor het produceren van foutsyndromen. Gebruikmakend van de foutsyndromen en de p+e wijzers bepaalt het systeem de foutlokaties en foutwaarden voor de gedetecteerde fouten en de foutwaarden voor de e gedetecteerde uitwissingen, alsook de foutwaarden voor de p voortoegekende symbolen.
Bij een voorkeursuitvoering wist het systeem de laatste p van de redundantiesymbolen. Tijdens het decoderen maakt het systeem voordelig gebruik van de cyclische eigenschap van de Reed-Solomon code en decodeert het (n-p) symbool-codewoord, alsof de p gewiste redundantiesymbolen de plaats innemen van p begincodewoordsymbolen, die gewist zijn bij het verkorten van het codewoord. Het systeem bespaart zodoende tijd door het invullen te vermijden van de p gewiste redundantiesymbolen bij de voortoegekende symbolen tijdens decoderen. Het systeem modificeert dan de foutsyndromen, gegenereert door dit (n-p) symboolcodewoord, zodat de foutlokaties en foutwaarden, berekend onder de gebruikmaking van deze syndromen, corresponderen met de codewoordsymbolen, die essentieel verschoven p symbool-lokaties zijn, zoals in detail hieronder zal worden besproken.
Dezelfde aanpak van decoderen kan worden gedaan door een systeem, dat een (n,k) code gebruikt, welke een verkorte code is, geassocieerd met een (N,K) code, waarbij N=n-i. Het systeem decodeert het (n-p) symboolcodewoord en genereert foutsyndromen zonder de p gewiste symbolen in te vullen.
Het modificeert dan de foutsyndromen om te corresponderen met de lokaties van deze n-p symbolen in het N symboolcodewoord, welke cyclisch verschoven p symboollokaties zijn. Dit systeem wordt in detail in het onderstaande besproken.
KORTE BESCHRIJVING VAN DE TEKENINGEN
Bovengenoemde en verdere voordelen van de uitvinding zullen beter worden begrepen bij verwijzing naar de volgende beschrijving in samenhang met de bijgevoegde tekeningen, waarin: fig. 1 een blokschema toont van een informatieverwerkingssysteem , fig. 2 een blokschema is van een codeersysteem van fig.
1, fig. 3 een blokschema is van een foutcorrectiesysteem, fig. 4 een werkschema is van de operaties van het foutcorrectiesysteem, getoond in fig. 3, fig. 5 een blokschema is van een voorkeursuitvoering van een foutcorrectiesysteem, fig. 6 een werkschema is van de operaties van het foutcorrectiesysteem, weergegeven in fig. 5, fig. 7 een werkschema is van operaties van een syndroom- calculator getoond in fig. 5 bij het iteratief modificeren van foutsyndromen, en fig. 8 een werkschema is van de operaties van de syndroomcalculator bij het parallel modificeren van foutsyndromen.
GEDETAILLEERDE BESCHRIJVING
Fig. 1 toont een informatieverwerkingssysteem 2 dat data codeert, bestemd voor opslag op optische geheugeninrichtingen 6, magnetische geheugeninrichtingen 7 of voor verdere transmissie naar een netwerkknooppunt 8. Een systeemregelaar 4 levert aan een codeersysteem 10 data en besturingsinformatie. Het codeer/decodeersysteem 10 codeert de data in overeenstemming met de foutcorrectiecode (ECC) en genereert redundantiesyrabolen. Vervolgens selecteert het een aantal van de gegenereerde redundantiesymbolen en hecht deze aan de data voor het produceren van foutcorrectie-codewoorden, zoals in nader detail besproken met verwijzing naar fig. 2 hieronder. Het aantal redundantiesymbolen, dat geselecteerd wordt, kan variëren in afhankelijkheid van de bestemming van de data, bijvoorbeeld de inrichting, waarop de data moeten worden opgeslagen. Het codeersysteem 10, onder besturing van de systeemregelaar, zendt de codewoorden voor opslag naar een aangewezen optische geheugeninrichting 6 of magnetische geheugeninrichting 7, of voor verdere transmissie naar een netwerkknooppunt 8.
Pig. 2 toont het coderende deel van het codeer/decodeer-systeem 10 in groter detail. Het codeersysteem 10 omvat een codeerorgaan 12 voor het coderen van data voor foutbescherming en een codewoordzender 16 voor het zenden van datacodewoorden naar een aangewezen geheugen of netwerk-inrichting 6-8 (fig. 1). Het codeerorgaan 12 codeert op gebruikelijke wijze k datasymbolen in overeenstemming met een (n,k) Reed-Solomon code met generatorpolynoom g(x) en produceert n-k, of r, redundantiesymbolen. Het codeerorgaan 12 houdt de redundantiesymbolen tijdelijk vast in een buffer 14.
De systeemregelaar 4 (fig. 1) selecteert een niveau van foutcorrectie, gebaseerd op bijvoorbeeld het medium, waarop de informatie moet worden opgeslagen. De regelaar 4 zendt aan het codeerorgaan 12 een waarde p, 0 < p < r-2, geassocieerd met het gekozen niveau. Het codeerorgaan wist dan p van de r redundantiesymbolen en zendt de overblijvende r-p symbolen naar codewoordzender 16. De zender 16 hecht de r-p redundantiesymbolen aan de datasymbolen en zendt een (n-p) symboolcodewoord naar een aangewezen geheugeninrichting 6 of 7 (fig. 1).
Indien bijvoorbeeld het informatieverwerkingssysteem de data opslaat op een magnetisch geheugen, dat een relatief hoge foutgraad heeft, vereist het de volledige (n-k)/2 foutcorrectiecapaciteiten van de code. De regelaar zendt dan aan het codeerorgaan 12 een waarde p=0. Het codeerorgaan zendt dan naar de codewoordzender 16, parallel of op een symbool-seriewijze, alle r van de redundantiesymbolen. De zender 16 hecht de r redundantiesymbolen aan de k datasymbolen voor het vormen van een n symboolcodewoord:
Indien het systeem de data opslaat op een schijf, welke een lagere foutgraad bezit, en het zodoende niet nodig is om de volledige foutcorrectiecapaciteiten van de code te gebruiken, zendt de systeemregelaar 4 aan het codeerorgaan 12 een waarde p, waarbij 0 < p < r-2. Het codeerorgaan 12 wist dan arbitrair p symbolen van de r redundantiesymbolen in buffer 14 en zendt aan de codewoordzender de overblijvende r-p redundantiesymbolen. De zender 16 hecht de r-p redundantiesymbolen aan de k datasymbolen en produceert een (n-p) symboolcodewoord:
waarin cr ···· co de redundantiesymbolen zijn, naar voren gebracht door het codeerorgaan 12. De zender 16 zendt dan het codewoord naar de aangewezen geheugeninrichting.
Fig. 3 toont een foutcorrectiesysteem 20, dat is opgenomen in het codeer/decodeersysteem 10 van fig. 1, en fig. 4 is een werkschema, dat de operaties van het systeem 20 beschrijft, dat fouten detecteert en corrigeert in codewoorden, verkregen van bijvoorbeeld een magnetische geheugeninrichting 7. Een uitwissingsdetector 22 detecteert uitwissingen in een teruggewonnen (n-p) symboolcodewoord en bewaart in een buffer 24 voor elke gedetecteerde uitwissing een wijzer aan de geassocieerde codewoordsymboollokatie (stap 30). De detector 22 vermeerdert tevens een uitwissingsteller 33 voor elke gedetecteerde uitwissing (stap 32). indien de keten e uitwissingen detecteert, vermeerdert zij zodoende de uitwissingsteller 33 e maal en formuleert en slaat e wijzers op. De uitwissingsdetectie-keten hecht dan e wijzers, welke corresponderen met de lokaties van de p gewiste symbolen, aan deze e wijzers en vermeerdert de uitwissingsteller 33 tot een telling van e+p (stap 34).
Vervolgens vergelijkt een vergelijkingsketen 24 het aantal uitwissingen, dat wil zeggen e+p, met de minimum afstand, D = r+1, geassocieerd met de (n,k) code om vast te stellen, of de code dat aantal uitwissingen kan corrigeren (stap 36). Indien het aantal uitwissingen ten minste één minder is dan de codeafstand, dat wil zeggen, indien e+p < D-l, is de code potentieel in staat om de uitwissingen te corrigeren. In het andere geval kan de code de uitwissingen niet corrigeren en de vergelijkingsketen 24 zendt een foutsignaal aan een foutcorrector 28. In reactie op het foutsignaal labelleert de foutcorrector 28 de codewoorddatasymbolen als fout en zendt hen en de label naar de vraagketen (niet getoond) (stap 37).
Indien e+p < D-l, activeert de vergelijkingsketen 24 een syndroomcalculator 26, die de p gewiste redundantiesymbolen invult met voorbepaalde symbolen, bijvoorbeeld allemaal nul symbolen, teneinde een n symbool codewoord te produceren (stap 38). De syndroomcalculator 26 manipuleert dan de n symboolcodewoordsymbolen onder gebruikmaking van gebruikelijke technieken voor het produceren van codewoord-foutsyndromen Sj (stap 40): k=n-l
Sj = Σ c^cpk voor j = Lr, Lr+1, Lr+2, ..., Lr+D-2 k=0 waarin c'^ het k-de symbool is van het ontvangen of teruggewonnen n-symboolcodewoord, Lr de laagste wortel is van de generatorpolynoom g(x) en de vermenigvuldigings- en sommeringsoperaties zijn Galois Field operaties. Bij gebruikelijke foutcorrectieketens worden de gegenereerde syndromen gecontroleerd om te bepalen, of zij allemaal nul zijn, hetgeen aangeeft, dat er geen fouten zijn in het codewoord. Het foutcorrectiesysteem 20 kan deze stap overslaan, indien het codewoord geassocieerd is met p>0 uitwissingen.
Het aantal fouten, dat kan worden gecorrigeerd in een codewoord, dat p gewiste symbolen heeft, die worden behandeld als p uitwissingen, bedraagt (r-p)/2. Indien een verdere "e" uitwissingen worden gedetecteerd tijdens decoderen, kan een maximum van [(r-p)-e]/2 fouten worden gecorrigeerd samen met de e+p uitwissingen. De syndroomcalculator selecteert vervolgens een maximum aantal fouten, t, die moeten worden gecorrigeerd, waarbij 0<t<[(D-l)-(e+p)]/2 (stap 42). De calculator selecteert t zo, dat deze het foutcorrectievermogen benut van de code, terwijl tegelijk de kans op een aanvaardbare waarde gehouden wordt, dat de foutcorrectieketen per vergissing niet foutieve codewoordsymbolen zal "corrigeren". Door deze niet foutieve symbolen te "corrigeren", kan de foutcorrectieketen het ontvangen codewoord transformeren tot een ander codewoord van de (n,k) code, hetgeen in de data een niet detecteerbare decodeerfout introduceert. Des te kleiner de gekozen t is, des te kleiner is de kans, dat de foutcorrectieketen zo'n fout zal maken.
De foutcorrectieketen 28 ontvangt de syndromen Sj van de syndroomcalculator 26 en de e+p uitwissingswijzers van de uitwissingsdetectieketen 23 en corrigeert fouten in het codewoord door op gebruikelijke wijze een t-fout en (e+p)-uitwissingscorrectieprocedure uit te voeren (stap 44).
Indien de foutcorrectieketen 28 alle t+e gedetecteerde fouten en uitwissingen kan lokaliseren en corrigeren, zendt de foutcorrectieketen de gecorrigeerde codewoorddata-symbolen naar de inrichting (niet getoond), welke deze opvroeg. Indien de foutcorrectieschakeling niet alle fouten kan corrigeren, labelleert zij de datasymbolen als foutief en zendt ze samen met de label naar de vragende inrichting.
Het decodeersysteem kan tot (r-p-e)/2 gedetecteerde fouten en e uitwissingen corrigeren in elk codewoord, geformuleerd onder gebruikmaking van r-p van de redundantie-symbolen, gegenereerd door het coderen van de data in overeenstemming met de oorspronkelijke (n,k) ECC. Het decodeersysteem behoeft niet separate decodeerorganen te hebben voor codewoorden, die verschillende aantallen redundantiesymbolen bevatten. Zodoende kan een enkel decodeerorgaan worden gebruikt voor het decoderen van codewoorden, geassocieerd met krachtige foutprotectie (r redundantiesymbolen) en codewoorden, geassocieerd met minder krachtige foutprotectie (minder dan r redundantiesymbolen).
In een voorkeursuitvoeringsvorm zijn de symbolen die gewist worden de laatste p van de r redundantiesymbolen. Het systeem vormt zodoende een codewoord door de eerste r-p redundantiesymbolen te hechten aan k datasymbolen. Het systeem zou het codewoord kunnen decoderen door p voorbepaalde symbolen aan te hechten aan het eind van een ontvangen codewoord om de gewiste symbolen op te vullen en t fouten en e+p uitwissingen te corrigeren onder gebruikmaking van gebruikelijke technieken, zoals boven besproken. Een voorkeursdecoderingstechniek benut evenwel de cyclische eigenschappen van Reed-Solomon codes en decodeert het codewoord alsof de p gewiste redundantiesymbolen de plaats innemen van de p beginsymbolen, die genegeerd zijn bij het inkorten van het codewoord. Het codewoord komt conceptueel overeen met:
cn-l'cn-2· 'cn-k· cn-k-l' 'cp+2'cp+l'CP
|. .p gewiste.. |.......data.........|----r-p redundantie. — | symbolen symbolen symbolen
Het systeem genereert foutsyndromen onder gebruikmaking van het (n-p)-symboolcodewoord, en modificeert vervolgens de syndromen om te compenseren voor de p gewiste symbolen, zoals in meer detail hieronder zal worden besproken met verwijzing naar fig. 5. Dienovereenkomstig vermijdt het systeem het invullen van de p gewiste symbolen, en het kan zodoende beginnen de foutsyndromen te berekenen, zodra het het laatste codewoordsymbool Cp ontvangt.
Indien de (n,k) ECC, gebruikt in codeerorgaan 12 (fig.
2) een verkorte versie is van een (N,K) code, waarbij K = k+i, moet een decodeerorgaan, wanneer het de foutsyndromen modificeert om te compenseren voor het cyclische verschuiven van het p symbool, tevens de voorafgaand gewiste i begincodewoordsymbolen in rekening brengen, hier weergegeven als i allemaal nul symbolen. Het ontvangen codewoord correspondeert conceptueel met:
00000...0000 cn-1, cn_k cn-k-i'*·'cn+i'CP
|.p gewiste.|..i gewiste..|____data----|..r-p redundantie..| symbolen begin nul symbolen symbolen symbolen waarbij het eerste niet-nul datasymbool, dat zich bevindt in lokatie N-i in een N-symboolcodewoord, verschoven is naar een lokatie (N-i)-p, wanner de laatste p redundantiesymbolen cyclisch verschoven 21jn naar lokaties aan het begin van het N symboolcodewoord.
Als het aantal wissingen toeneemt, gaat het meer en meer tijd kosten voor de foutcorrectieketen 28 (fig. 3) om syndromen te berekenen, indien de keten deze in serie berekent, of wordt de syndroomberekeningsketen meer en meer complex voor het berekenen van syndromen, indien de keten deze parallel berekent. Indien een maximum waarde van t+e is gespecificeerd, modificeert een voorkeursuitvoering van het foutcorreetiesysteem de berekende syndromen op basis van het aantal wissingen, dat wil zeggen op basis van de waarde p, zodat deze syndromen corresponderen met syndromen, berekend voor een codewoord van een (n-p,k) gepunctureerde code, zoals besproken in meer detail hieronder met verwijzing naar fig. 5 Het systeem behoeft dan slechts polynomen te berekenen van de graad t+e in plaats van de graad t+e+p, hetgeen een besparing oplevert in decoderingstijd.
Het systeem gebruikt de gemodificeerde syndromen en een t fout en e uitwissingdecodeerprocedure om t+e foutwaarden en t foutlokaties te bepalen voor het (n-p) symboolcodewoord. Aangezien het systeem eerder compenseerde voor p gewiste redundantiesymbolen door de syndromen te modificeren, kan het systeem deze symbolen nu negeren. Het systeem moet evenwel de t+e berekende foutwaarden modificeren, teneinde deze te conformeren aan het cyclisch verschoven codewoord, zoals in het onderstaande besproken met verwijzing naar de fig. 7 en 8.
Fig. 5 toont een systeem 50 voor het corrigeren van fouten in een codewoord onder gebruikmaking van een t-fout en e-uitwissingsdecoderingsprocedure. Nadat de e uitwissingen zijn gedetecteerd door uitwissingsdetector 22 en de telling e+p is vergeleken met de codeafstand D door een vergelijkingsketen 24, bepaalt een syndroomcalculator 52 op gebruikelijke wijze syndromen Sj, j=Lr, Lr+l,...Lr+D-2.
De syndromen kunnen worden voorgesteld door een polynoom S(x), S(x) = SLr + SLr+lX + SLr+2x2 + ’mmSLr+O-2^ ^
De codewoordlokaties, die corresponderen met de p gewiste symbolen, kunnen worden voorgesteld door een polynoom U(x) = 1 + U·^ + U2x2 + ... + UpxP, die kan worden herschreven als: U(x) = (αη_1χ + 1)(αη-2χ + 1)...(αη-ρχ + 1), waarin de p gewiste symbolen zijn verschoven naar de lokaties opgegeven in tabel 1; positie van onverschoven positie van verschoven redundantiesymbool symbool 0 n-p 1 n-p+1 2 n-p+2 h n-p+h p-1 n-p+(p-l)=n-l TABEL 1
De gemodificeerde syndromen S'(x) zijn dan: S'(x) = (S(x)U(x).
Indien de (n,k) code een verkorte versie is van een (N,K) code, wordt U(X) U(x) - (an-1x + 1)(an_2x + l)...(an_px + 1) U(X) kan worden voorberekend voor verschillende waarden van p en worden opgeslagen in de syndroomcalculator of iteratief bepaald voor elk codewoord, zoals in het onder staande besproken roet verwijzing naar de fig. 6 en 7,
De laagste p termen van de gemodificeerde syndroomvergelijking kunnen worden verwaarloosd, aangezien deze termen verband houden met de p gewiste redundantie-symbolen, en de overige termen die zijn, vereist om de foutwaarden en foutlokaties op te lossen. De foutcorrector-keten 54 maakt dan gebruik van de overblijvende gemodificeerde syndromen en de wijzers aan de e gedetecteerde uitwissingslokaties om tot t foutlokaties "ei" en t+e foutwaarden "ev" te bepalen.
Aangezien p kan worden geselecteerd als elke waarde tussen o en r-2, is U(x) niet een constante. De fig. 6 en 8 zijn werkschema's die respectievelijk de operaties laten zien van de syndroomcalculator 52 van fig. 5 bij het modificeren van de syndromen Sj op iteratieve wijze en bij het modificeren van de syndromen parallel.
Met verwijzing nu naar fig. 6 zet de calculator 52 een interne in telling tot c = 0 (stap 54). Vervolgens wordt de telling vermeerderd met 1 en vergeleken met p (stappen 56-58). Indien de telling c minder dan p is, vermeerdert de calculator Lr met 1 en vermindert D met 1 (stap 60). De calculator werkt dan de syndromen bij (stap 62) tot:
Sj = SI_1an“C + Sj I = Lr + (D-2), Lr + (D-2)-l, ..., Lr
Indien de (n,k) code een verkorte versie is van een (N,K) code, wordt de waarde N gebruikt in plaats van n.
De calculator vermeerderd de telling c wederom met 1 en vergelijkt deze met p. Indien c<p, vermeerdert de calculator Lr met 1, vermindert D met 1 en werkt de syndromen bij (stappen 60-62). De calculator herhaalt deze operaties, totdat de telling c hoger is dan p, hetgeen aangeeft, dat de gemodificeerde syndromen corresponderen met het codewoord, dat gepunctureerd is door de wissing van p symbolen. De calculator zendt dan de gemodificeerde syndromen naar de foutcorrectorketen 54 (stap 64).
De foutcorrectorketen 54 gebruikt de gemodificeerde syndromen om op een gebruikelijke wijze onder gebruikmaking van een t-fout en e-uitwissingsfoutcorrectieprocedure op tot t foutlokaties en t+e foutwaarden te bepalen. De foutcorrectorketen moet dan de foutwaarden manipuleren teneinde te compenseren voor de cyclische verschuiving van de p-lokatie van de codewoordsymbolen. Dienovereenkomstig produceert de foutcorrectorketen voor elke foutwaarde, ev, bepaald onder gebruikmaking van de gemodificeerde syndromen, een werkelijke foutwaarde, "av": av = ev/f t waarin f = U(a”ei), met ei de fout of uitwissingslokatie, geassocieerd met de foutwaarde en, zoals boven besproken, U(x) = 1 + UiX + U2x2 + ... UpxP.
Zodoende f = (an“1-ei + 1) (an“2_ei + 1) ---- (crn"P-ei + 1), met de waarde N gebruikt voor n, indien de (n,k) code een verkorte versie is van de (N,K) code.
De polynoom f kan iteratief of parallel worden bepaald. Fig. 7 is een werkschema van de operaties van de foutcorrectieketen 54 bij het iteratief bepalen van de polynoom. Fig. 8f hieronder besproken, is een werkschema van de operaties van de foutcorrectieketen 54 bij het parallel bepalen van de polynoom.
Om f iteratief te bepalen, initialiseert de foutcorrectieketen 54 f tot l en een telling, c, tot 0 (stap 66). De correctieketen vermeerdert de telling met l (stap 68), vergelijkt de telling met p (stap 70) en indien de telling minder dan of gelijk is aan p, vermenigvuldigt de correctieketen f met (α11 c ei +1) en produceert een bijgewerkte f (stap 72). De foutcorrectieketen vermeerdert wederom de telling c met 1, vergelijkt deze met p, en indien de telling kleiner is dan of gelijk aan p, vermenigvuldigt zij f wederom met (a11 c ei + 1), enz. Wanneer de telling p overschrijdt, deelt de correctieketen ev door f om de geassocieerde werkelijke foutwaarde, av, te produceren, welke correspondeert met het symbool in lokatie ei (stap 74).
De foutcorrectieketen combineert uiteindelijk de werkelijke foutwaarde, av, met het codewoordsymbool in lokatie ei en corrigeert het symbool (stap 76). De correctieketen kan elke fout corrigeren, zodra de passende werkelijke foutwaarde bepaald is, of kan de werkelijke foutwaarden opslaan en deze combineren met de corresponderende codewoordsymbolen in één operatie.
Fig. 8 toont de werking van de syndroomcalculator 52 (fig. 5), welke de foutsyndromen Sj modificeert in één stap door U(x) voor te berekenen en de syndromen bij te werken tot si - Sj.püp + Vp+iVi + · ·' + si-iUl + Sl I = Lr + (D-2),...,Lr + p.
De syndroomcalculator heeft of een geheugen voor het opslaan van de waarden voor de coëfficiënten van U(x) voor alle mogelijke waarden van p, of een keten welke de coëfficiënten van U(X) berekent voor een geselecteerde waarde van p (stap 78). De calculator modificeert dan de syndromen door deze te vermenigvuldigen met de passende coëfficiënten van de voorberekende U(X) (stap 80) teneinde voort te brengen: sl = SI-pUP + SI(P-1) Vl + ·· + SI-1 Ü1 + SI·
Het systeem gebruikt dan deze gemodificeerde syndromen om foutlokaties, ei, te bepalen en foutwaarden, ev, op gebruikelijke wijze.
Wanneer de foutwaarden, ev, eenmaal bepaald zijn, modificeert het systeem deze teneinde te corresponderen met het verschoven codewoord. Het modificeert derhalve of iteratief de foutwaarden, zoals besproken met verwijzing naar fig. 6 hierboven, of het gebruikt de voorberekende polynoom (U(x) voor de geselecteerde p en berekent voor elke gedetecteerde fout en uitwissingslokatie, ei: f = UjcT6·^ + . . . + U2a”ei2 + U-^ot”+ 1 en bepaalt de corresponderende werkelijke foutwaarde, av: av = ev/f
De foutcorrectieketen 54 corrigeert dan de fout aan lokatie ei door de werkelijke foutwaarde te combineren met het codewoordsymbool, zoals boven besproken met verwijzing naar fig. 6.
Samengevat codeert en decodeert het foutcorrectiesysteem data in overeenstemming een selecteerbaar aantal redundantiesymbolen, hetgeen data-selecteerbare niveaus van foutbescherming mogelijk maakt. Het systeem gebruikt een enkel codeerorgaan voor het produceren van codewoorden, die k datasymbolen bevatten, en een geselecteerd aantal redundantiesymbolen tussen 2 en r symbolen. Verder gebruikt het systeem een enkel decodeerorgaan voor het decoderen van de verschillend gedimensioneerde codewoorden en om in elk codewoord te corrigeren tot aan geschikt aantal fouten, waarbij het aantal fouten voor elke code gerelateerd is aan het geselecteerde aantal redundantiesymbolen.
In de voorkeursuitvoering wist het systeem de laatste p van de redundantiesymbolen, waarbij r-p het gekozen aantal redundantiesymbolen is voor een (r-p)/2 gewenste foutcorrectiecapaciteit, en produceert (n-p)-symbool- codewoorden van een (n-p,k) gepunctureerde code. Later decodeert het de codewoorden alsof de p gewiste symbolen de symbolen zijn, gewist bij het verkorten van het codewoord en produceert foutsyndromen zonder de p gewiste symbolen in te vullen. Het modificeert dan de foutsyndromen op geschikte wijze om te compenseren voor de p gewiste symbolen. Met gebruikmaking van deze foutsyndromen corrigeert het systeem tot aan t fouten en e uitwissingen onder gebruikmaking van een t-fout en een e uitwissingcorrectieprocedure voor het bepalen van foutlokaties en fout- en uitwissingswaarden. Het modificeert dan de foutwaarden om te compenseren voor de p-symbool-cyclische verschuiving van codewoordsymbolen, toe te schrijven van de behandeling van de gewiste redundantie-symbolen als de p beginsymbolen, die gewist zijn bij het verkorten van het codewoord.
De voorgaande beschrijving was beperkt tot specifieke uitvoeringen van de uitvinding. Het zal evenwel duidelijk zijn, dat variatie en modificaties kunnen worden aangebracht bij de uitvinding onder behoud van sommige of alle voordelen ervan.
Claims (7)
1. Foutcorrectiesysteem, met het kenmerk, dat dit systeem omvat: A. een codeerorgaan voor het coderen van k datasymbolen in overeenstemming met een afstand D (n,k) Reed-Solomon foutcorrectiecode, en het produceren van r=n-k redundantie-symbolen, B. een selectieorgaan voor het selecteren van een foutcorrectieniveau, welk selectieorgaan een geassocieerde waarde p instelt, waarbij 0 < p < r-2, C. een orgaan voor het wissen van p van de r redundantiesymbolen, en D. een codewoordorgaan voor het vormen van een (n-p)-symboolcodewoord, welk codewoordorgaan r-p redundantiesymbolen aanhecht aan de k datasymbolen.
2. Foutcorrectiesysteem volgens conclusie 1, m e t het kenmerk, dat het systeem verder omvat: E. een uitwissingsdetectieorgaan voor het detecteren van e uitwissingen in een codewoord, e > 0, F. een orgaan voor het met voorbepaalde symbolen vullen van de codewoordlokaties, corresponderende met de p gewiste redundantiesymbolen, en het produceren van een n-symboolcodewoord, G. een syndroomcalculator voor het berekenen van foutsyndromen voor het n-syraboolcodewoord, H. een vergelijkingsorgaan voor het vergelijken van e+p en D, welk vergelijkingsorgaan een foutsignaal laat opkomen, indien e+p > D-l, en I. een foutcorrectieorgaan voor het manipuleren van de foutsyndromen voor het bepalen van foutlokaties en geassocieerde foutwaarden, en het corrigeren van fouten en uitwissingen in het codewoord door de foutwaarden te combineren met de codewoordsymbolen in de geassocieerde foutlokaties, indien het vergelijkingsorgaan het foutsignaal niet heeft doen opkomen, terwijl het foutcorrectieorgaan reageert op een opgekomen foutsignaal door de codewoorddata te labelleren als foutief en er van af te zien om de fout- syndromen te manipuleren.
3. Foutcorrectiesysteem volgens conclusie l, m e t het kenmerk, dat het orgaan voor het wissen van p van de r redundantiesymbolen de p minst significante redundantie-symbolen wist.
4. Foutcorrectiesysteem volgens conclusie 3, m e t het kenmerk, dat het systeem verder omvat: E. een uitwissingsdetectieorgaan voor het detecteren van e uitwissingen in een codewoord, e > 0, welk uitwissings-detecteringsorgaan voor elke gedetecteerde fout een wijzer formuleert aan de geassocieerde codewoordsymboollokatie, F. een syndroomcalculator voor het berekenen van foutsyndromen, S(x) voor het n-symboolcodewoord, welke syndroomcalculator de syndromen modificeert door deze te vermenigvuldigen met een polynoom U(x), geassocieerd met de p gewiste symbolen, G. een vergelijkingsorgaan voor het vergelijken van e+p en D, welk vergelijkingsorgaan een foutsignaal aanneemt indien e+p > D-l, en H. een foutcorrectieorgaan voor het corrigeren van fouten en uitwissingen in het codewoord, welk foutcorrectieorgaan omvat i. een orgaan voor het manipuleren van de foutsyndromen om foutlokaties vast te stellen en foutwaarden, ev, geassocieerd met de foutlokaties en de uitwissingswij2ers, ii. een foutwaardemodificeringsorgaan voor het modificeren van de foutwaarden, welk foutwaardemodificeringsorgaan een werkelijke foutwaarde, av, bepaald, geassocieerd met een foutwaarde, ev, door bepaling van av - ev/f . . —ei waarin f is ü(a ) en ei de lokatie is van een gedetecteerde fout of gedetecteerde uitwissing, en iii. een correctieorgaan voor het corrigeren van de fouten en uitwissingen door de werkelijke foutwaarden, av, te combineren met geassocieerde codewoordsymbolen.
5. Foutcorrectiesysteem volgens conclusie 4, m e t het kenmerk, dat de syndroomcalculator omvat een syndroom-modificeringsorgaan, welk syndroommodificeringsorgaan omvat: i. een teller voor het tellen van iteraties, welke teller wordt geinitialiseerd op c=0, ii. een orgaan voor het vergelijken van de telling c met P, iii. een orgaan voor het vermeerderen van een index Lr tot Lr+1, waarbij Lr wordt geinitialiseerd tot de waarde van de laagste wortel van de (n,k) codegeneratorpolynoom, indien c < p, iv. een orgaan voor het verminderen van een index D tot D-l, waarbij D wordt geinitialiseerd tot de afstand van de (n,k) code, v. een orgaan voor het bijwerken van de syndromen tot SX = SI_1an_c + Sx voor I = Lr + (D-2), Lr + (D-2)-l,...,Lr, vi. waarbij de syndroomcalculator de teller c vermeerdert voor elke iteratie en de syndromen bijwerkt voor elke nieuwe waarde van Lr en D totdat c groter is dan p.
6. Foutcorrectiesysteem volgens conclusie 5, m e t het kenmerk, dat het foutwaardemodifieeringsorgaan omvat: i. een iteratieteller, geinitialiseerd tot c=0, ii. een orgaan voor het vergelijken van c met p, iii. een f calculator, geinitialiseerd tot f=l, welke f calculator f bijwerkt voor elke iteratie, waarin c < p, tot f=f* (a11 c ei + 1), waarin een Galois Field vermenigvuldiging representeert, waarbij het foutwaarde- modificeringsorgaan de teller vermeerdert met 1 voor een volgende iteratie.
7. Foutcorrectiesysteem volgens conclusie 4, m e t het kenmerk, dat de syndroomcalculator een syndroommodificeringsorgaan heeft, welk syndroommodificeringsorgaan omvat: i. een orgaan voor het berekenen van U(x) voor de waarde van p geselecteerd door het selectieorgaan, ii. een orgaan voor het bijwerken van de syndromen tot Si = S^pUp + s^p^Up.! + ... + + Sl voor I = Lr + (D-2),Lr + p.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US91820892 | 1992-07-20 | ||
US07/918,208 US5379305A (en) | 1992-07-20 | 1992-07-20 | Error correction system with selectable error correction capabilities |
Publications (1)
Publication Number | Publication Date |
---|---|
NL9301240A true NL9301240A (nl) | 1994-02-16 |
Family
ID=25439983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NL9301240A NL9301240A (nl) | 1992-07-20 | 1993-07-15 | Foutcorrectiesysteem met selecteerbare foutcorrectiecapaciteiten. |
Country Status (7)
Country | Link |
---|---|
US (1) | US5379305A (nl) |
JP (1) | JPH06188746A (nl) |
KR (1) | KR940006030A (nl) |
DE (1) | DE4324299A1 (nl) |
GB (1) | GB2269034B (nl) |
NL (1) | NL9301240A (nl) |
TW (1) | TW257847B (nl) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2144000T3 (es) * | 1992-05-19 | 2000-06-01 | Koninkl Philips Electronics Nv | Sistema expandido de comunicacion con proteccion de error. |
US5465260A (en) * | 1993-11-04 | 1995-11-07 | Cirrus Logic, Inc. | Dual purpose cyclic redundancy check |
KR950010768B1 (ko) * | 1993-10-20 | 1995-09-22 | 주식회사 Lg전자 | 에러 정정 코드 복호 장치 및 그 방법 |
US5668976A (en) * | 1993-11-04 | 1997-09-16 | Cirrus Logic, Inc. | Error correction method and apparatus for disk drive emulator |
JP3170123B2 (ja) * | 1993-11-29 | 2001-05-28 | 日本放送協会 | 誤り訂正回路 |
US5481566A (en) * | 1993-12-29 | 1996-01-02 | At&T Corp. | Method and apparatus to increase efficiency of systematic codes |
JP2725598B2 (ja) * | 1994-05-13 | 1998-03-11 | 日本電気株式会社 | 誤り訂正符号化器 |
US5487077A (en) * | 1994-05-23 | 1996-01-23 | International Business Machines Corporation | Location dependent variable error correction processing for multi-track recording media using variable length coding means |
US5768296A (en) * | 1994-07-01 | 1998-06-16 | Quantum Corporation | ECC system supporting different-length Reed-Solomon codes whose generator polynomials have common roots |
JP2671821B2 (ja) * | 1994-09-28 | 1997-11-05 | 日本電気株式会社 | データ伝送装置 |
JP3520576B2 (ja) * | 1994-10-24 | 2004-04-19 | ソニー株式会社 | 誤り訂正方法 |
US5600663A (en) * | 1994-11-16 | 1997-02-04 | Lucent Technologies Inc. | Adaptive forward error correction system |
US6038679A (en) * | 1994-11-30 | 2000-03-14 | International Business Machines Corporation | Adaptive data recovery method and apparatus |
TW311189B (en) * | 1996-09-30 | 1997-07-21 | United Microelectronics Corp | The error-corrected decoding method and its apparatus for Reed-Soloman code |
US5838267A (en) * | 1996-10-09 | 1998-11-17 | Ericsson, Inc. | Method and apparatus for encoding and decoding digital information |
JP3233860B2 (ja) * | 1996-10-25 | 2001-12-04 | 松下電器産業株式会社 | リードソロモン復号器 |
US5983383A (en) * | 1997-01-17 | 1999-11-09 | Qualcom Incorporated | Method and apparatus for transmitting and receiving concatenated code data |
US6003151A (en) * | 1997-02-04 | 1999-12-14 | Mediatek Inc. | Error correction and detection system for mass storage controller |
GB2324391B (en) * | 1997-04-17 | 2002-05-29 | United Microelectronics Corp | Error decoding method and apparatus for reed-soloman codes |
KR100452314B1 (ko) * | 1997-08-20 | 2004-12-17 | 삼성전자주식회사 | 에러 정정 코드 발생 제어회로 |
US6185244B1 (en) * | 1997-08-29 | 2001-02-06 | Telefonaktiebolaget Lm Ericsson | Cell searching in a CDMA communications system |
US6148430A (en) * | 1998-05-15 | 2000-11-14 | Quantum Corporation | Encoding apparatus for RAID-6 system and tape drives |
US6381726B1 (en) * | 1999-01-04 | 2002-04-30 | Maxtor Corporation | Architecture for soft decision decoding of linear block error correcting codes |
US6327690B1 (en) | 1999-02-04 | 2001-12-04 | Intel Corporation | Integrated reed-solomon error correction code encoder and syndrome generator |
US6347389B1 (en) * | 1999-03-23 | 2002-02-12 | Storage Technology Corporation | Pipelined high speed reed-solomon error/erasure decoder |
US6769088B1 (en) * | 1999-06-30 | 2004-07-27 | Maxtor Corporation | Sector-coding technique for reduced read-after-write operations |
US6405340B1 (en) * | 1999-07-02 | 2002-06-11 | Ericsson Inc. | Flexible method of error protection in communications systems |
US6463564B1 (en) * | 1999-09-14 | 2002-10-08 | Maxtor Corporation | Mis-synchronization detection system |
US6487692B1 (en) * | 1999-12-21 | 2002-11-26 | Lsi Logic Corporation | Reed-Solomon decoder |
US6732320B1 (en) | 2000-04-28 | 2004-05-04 | Promos Technologies Inc. | Method and system for improved error correction in optical media data processing |
WO2003017499A2 (en) * | 2001-08-20 | 2003-02-27 | Koninklijke Philips Electronics N.V. | Enhanced coding for informed decoders |
US6978415B1 (en) | 2001-11-27 | 2005-12-20 | Maxtor Corporation | Variable redundancy cyclic code encoders |
TWI254292B (en) * | 2002-01-25 | 2006-05-01 | Sony Corp | Information recording device and method, information reproducing device and method, recording medium and disc recording medium |
TWI258135B (en) * | 2002-01-25 | 2006-07-11 | Sony Corp | Information recording device and method, information reproducing device and method, recording medium, and disc recording medium |
US7353449B2 (en) * | 2002-05-08 | 2008-04-01 | Thomson Licensing | Method of soft-decision decoding of Reed-Solomon codes |
EP1367727A1 (de) * | 2002-05-29 | 2003-12-03 | Siemens Aktiengesellschaft | Verfahren und Kommunikationssystemvorrichtung zum Auffinden von Wurzeln eines Fehlerstellenpolynoms |
EP1370003A1 (en) * | 2002-06-07 | 2003-12-10 | Deutsche Thomson-Brandt Gmbh | Reed-Solomon Decoder |
US20040068689A1 (en) * | 2002-10-07 | 2004-04-08 | Rahul Saxena | Method and apparatus for CRC size reduction |
US20050044261A1 (en) * | 2003-07-18 | 2005-02-24 | Rahul Saxena | Method of operating a network switch |
CN1942864A (zh) * | 2004-04-14 | 2007-04-04 | 皇家飞利浦电子股份有限公司 | 校正数据存储器中错误的数据处理设备 |
US7532666B1 (en) * | 2004-05-18 | 2009-05-12 | Ikanos Communications Inc. | Method and apparatus for error correction in multi-line multi-tone gigabit transmission systems |
KR20050114162A (ko) * | 2004-05-31 | 2005-12-05 | 삼성전자주식회사 | 리드-솔로몬 부호를 사용하는 이동통신 시스템에서 내부및 외부 부호 복호 방법 및 그 장치 |
US7681105B1 (en) * | 2004-08-09 | 2010-03-16 | Bakbone Software, Inc. | Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network |
US7681104B1 (en) * | 2004-08-09 | 2010-03-16 | Bakbone Software, Inc. | Method for erasure coding data across a plurality of data stores in a network |
TWI273775B (en) * | 2005-06-17 | 2007-02-11 | Mediatek Inc | Method for generating syndrome value and related syndrome generator |
US20080005384A1 (en) * | 2006-06-01 | 2008-01-03 | Broadcom Corporation, A California Corporation | Hard disk drive progressive channel interface |
US9083519B2 (en) * | 2008-02-29 | 2015-07-14 | Sharp Laboratories Of America, Inc. | Systems and methods for adaptively selecting a decoding scheme to decode embedded information |
JP2010034976A (ja) * | 2008-07-30 | 2010-02-12 | Mitsubishi Electric Corp | 誤り訂正符号化装置、誤り訂正復号装置及び誤り訂正符号化方法 |
CN101814922B (zh) * | 2009-02-23 | 2013-06-19 | 国际商业机器公司 | 基于bch码的多位错纠错方法和装置以及存储系统 |
US8301987B2 (en) * | 2009-10-29 | 2012-10-30 | Sandisk Il Ltd. | System and method of decoding data with reduced power consumption |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US8868999B1 (en) * | 2011-01-06 | 2014-10-21 | Marvell International Ltd. | Systems and methods for erasure correction of iterative codes |
US8862902B2 (en) * | 2011-04-29 | 2014-10-14 | Seagate Technology Llc | Cascaded data encryption dependent on attributes of physical memory |
US20230223961A1 (en) * | 2022-01-13 | 2023-07-13 | Micron Technology, Inc. | Iterative decoder for correcting dram device failures |
CN115632666B (zh) * | 2022-09-30 | 2023-11-03 | 电子科技大学 | 一种新型的可纠正删除和插入错误的rs码译码方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5068858A (en) * | 1989-12-21 | 1991-11-26 | International Business Machines Corporation | Error correction capability varied with track location on a magnetic or optical disk |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4047151A (en) * | 1974-12-24 | 1977-09-06 | Rydbeck Nils R C | Adaptive error correcting transmission system |
JPS57155857A (en) * | 1981-03-23 | 1982-09-27 | Kokusai Denshin Denwa Co Ltd <Kdd> | Maximum likelihood method and apparatus for error |
US4506252A (en) * | 1981-05-05 | 1985-03-19 | Sperry Corporation | Ternary data encoding system |
DE3484455D1 (de) * | 1983-09-06 | 1991-05-23 | Toshiba Kawasaki Kk | Fehlerkorrekturschaltung. |
JPH0681058B2 (ja) * | 1983-09-26 | 1994-10-12 | パイオニア株式会社 | デ−タ送受信方式 |
NL8400629A (nl) * | 1984-02-29 | 1985-09-16 | Philips Nv | Snelle decodeur voor reed-solomon-codes, welke mede als encodeur te gebruiken is, alsmede opname/reproduktie-apparaat voorzien van zo een encodeur/decodeur. |
CA1235189A (en) * | 1985-01-14 | 1988-04-12 | Haruhiko Akiyama | Error correction encoding system |
JPH0778968B2 (ja) * | 1986-02-14 | 1995-08-23 | 株式会社日立製作所 | 軟判定復号方法 |
US4785452A (en) * | 1986-04-25 | 1988-11-15 | International Business Machines Corporation | Error detection using variable field parity checking |
JPS6388920A (ja) * | 1986-10-02 | 1988-04-20 | Victor Co Of Japan Ltd | 符号エラ−訂正回路 |
JPS63237628A (ja) * | 1987-03-26 | 1988-10-04 | Furukawa Electric Co Ltd:The | 車両用多重伝送システムにおける符号化方法 |
IT1210749B (it) * | 1987-05-20 | 1989-09-20 | Cselt Centro Studi Lab Telecom | Procedimento e dispositivo per la decodifica di messaggi a blocchi con correzione di errori |
JPS6490621A (en) * | 1987-09-30 | 1989-04-07 | Nec Corp | Decoder |
US4908621A (en) * | 1988-07-06 | 1990-03-13 | Tektronix, Inc. | Autocalibrated multistage A/D converter |
JPH03101536A (ja) * | 1989-09-14 | 1991-04-26 | Fujitsu Ltd | 誤り訂正符号化・復号化方式 |
JPH03172026A (ja) * | 1989-11-30 | 1991-07-25 | Nec Corp | 符号化復号化方式 |
US5224106A (en) * | 1990-05-09 | 1993-06-29 | Digital Equipment Corporation | Multi-level error correction system |
JPH04196725A (ja) * | 1990-11-27 | 1992-07-16 | Matsushita Electric Ind Co Ltd | 可変長符号符号化方法 |
US5267248A (en) * | 1990-12-24 | 1993-11-30 | Eastman Kodak Company | Method and apparatus for selecting an optimum error correction routine |
-
1992
- 1992-07-20 US US07/918,208 patent/US5379305A/en not_active Expired - Lifetime
-
1993
- 1993-06-29 JP JP5159357A patent/JPH06188746A/ja active Pending
- 1993-07-15 NL NL9301240A patent/NL9301240A/nl not_active Application Discontinuation
- 1993-07-16 KR KR1019930013423A patent/KR940006030A/ko not_active IP Right Cessation
- 1993-07-20 DE DE4324299A patent/DE4324299A1/de not_active Withdrawn
- 1993-07-20 GB GB9315033A patent/GB2269034B/en not_active Expired - Fee Related
- 1993-08-11 TW TW082106430A patent/TW257847B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5068858A (en) * | 1989-12-21 | 1991-11-26 | International Business Machines Corporation | Error correction capability varied with track location on a magnetic or optical disk |
Non-Patent Citations (1)
Title |
---|
W.W. PETERSON, E.J. WELDON: "Error-Correcting Codes", 1978, MIT PRESS, LONDON, XP002044411 * |
Also Published As
Publication number | Publication date |
---|---|
GB9315033D0 (en) | 1993-09-01 |
DE4324299A1 (de) | 1994-01-27 |
TW257847B (nl) | 1995-09-21 |
US5379305A (en) | 1995-01-03 |
GB2269034A (en) | 1994-01-26 |
GB2269034B (en) | 1996-01-10 |
JPH06188746A (ja) | 1994-07-08 |
KR940006030A (ko) | 1994-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
NL9301240A (nl) | Foutcorrectiesysteem met selecteerbare foutcorrectiecapaciteiten. | |
US5487077A (en) | Location dependent variable error correction processing for multi-track recording media using variable length coding means | |
US5942005A (en) | Method and means for computationally efficient error and erasure correction in linear cyclic codes | |
US4706250A (en) | Method and apparatus for correcting multibyte errors having improved two-level code structure | |
KR100517482B1 (ko) | 곱셈 코드에 대한 동시 행/열 신드롬 발생기 | |
US5465260A (en) | Dual purpose cyclic redundancy check | |
KR930001071B1 (ko) | 에러 정정회로 | |
KR100913965B1 (ko) | 일부가 사전에 알려진 정보의 코딩 및 디코딩 | |
US6047395A (en) | Error correction processor for correcting a multi-dimensional code by generating an erasure polynomial over one dimension for correcting multiple codewords in another dimension | |
KR930005427B1 (ko) | 실시간 bch 에러 정정 코드 디코딩 메카니즘 | |
US6615387B1 (en) | Method and apparatus for error detection | |
US5224106A (en) | Multi-level error correction system | |
US6553536B1 (en) | Soft error correction algebraic decoder | |
EP0396403A1 (en) | Data stream frame synchronisation | |
US7047477B2 (en) | Enhanced coding for informed decoders | |
JP2009295273A (ja) | 誤り訂正符号エンティティのための消失訂正のコンピュータ実現化方法 | |
JP2000501272A (ja) | 向上した複数バースト訂正システム | |
US6463564B1 (en) | Mis-synchronization detection system | |
US6643819B1 (en) | Hybrid root-finding technique | |
CN1134897C (zh) | 里德-索罗门码的快速译码方法及编译码器 | |
JP2006033233A (ja) | リード・ソロモン復号方法及び装置 | |
JP2000148522A (ja) | ユークリッド互除演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
BA | A request for search or an international-type search has been filed | ||
BB | A search report has been drawn up | ||
BV | The patent application has lapsed |