Methods and apparatus for cyclic code codeword creation, error detection,
and error correction are disclosed. The methods and apparatus utilize a
set of permuted generator polynomials, each representing shifted and
exclusive-ored (XORed) versions of the cyclic code generator polynomial
according to a specific input bit pattern. The permuted generator
polynomial may be provided by look-up table, hardware, or a software
equivalent of this hardware.
Use of the permuted generator polynomial greatly reduces the number of
calculations required to calculate syndromes and trap errors in codewords.
The permuted generator polynomial can be used to replace m iterations of a
polynomial division operation with a single XOR operation. The bit pattern
used to select a permuted generator polynomial is derived from the m
high-order bits of the dividend at each step.
Using the disclosed embodiments, the number of clock cycles or instruction
cycles required to perform cyclic code computations can be significantly
reduced for both hardware and software implementations.
De methodes en de apparaten voor cyclische code codeword verwezenlijking, foutenopsporing, en foutencorrectie worden onthuld. De methodes en de apparaten gebruiken een reeks herschikte generatorveeltermen, elke verplaatst vertegenwoordigen en exclusief-ored de versies (van XORed) van de cyclische veelterm van de codegenerator overeenstemmend aan een specifiek patroon van het inputbeetje. De herschikte generatorveelterm kan door raadplegingslijst, hardware, of een software worden verstrekt gelijkwaardig van deze hardware. Het gebruik van de herschikte generatorveelterm vermindert zeer het aantal berekeningen die worden vereist om syndromen en valfouten in codewords te berekenen. De herschikte generatorveelterm kan worden gebruikt om mherhalingen van een uit meerdere namen bestaande afdelingsverrichting met één enkele verrichting te vervangen XOR. Het beetjepatroon dat wordt gebruikt wordt om een herschikte generatorveelterm te selecteren afgeleid uit de m high-order beetjes van het dividend bij elke stap. Gebruikend de onthulde belichamingen, kan het aantal klokcycli of instructiecycli die worden vereist om cyclische codeberekeningen uit te voeren beduidend voor zowel hardware als softwareimplementaties worden verminderd.