A mechanism for decoding linear shifted codes employs two shift registers.
The shift registers are independently controlled by an associated control
unit. Initially, the received parity bits are stored in a first shift
register and the global syndrome bits are stored in a second shift
register. While the right-most cell in the first shift register contains a
logical "0", both shift registers are shifted right one position. When the
right-most cell of the first shift register contains a "1", the content of
the right-most cell of the second shift register is recorded as a first
bit of a syndrome code which identifies the position of an error with any
groups with an error. If the value recorded is a "1", a bit-wise exclusive
OR operation is then performed on the values in the first and second shift
registers, and the result is stored in the second shift register.
Subsequently, the contents of the second shift register are shifted by one
position. Similar to the previous operation, the content of the right-most
cell of the second shift register is again recorded, this time as the next
bit of the syndrome code. A bit-wise exclusive OR is again conditionally
performed upon the values in the first and second shift registers
depending upon whether the last recorded bit was a "1" (and the result is
stored in the second shift register), and the contents of the second shift
register are shifted. These steps are repeated until all L bits of the
syndrome code identifying a failed component have been recorded (where L
is the smallest integer such that 2{character pullout}L>=M, where M is
the number of components used).
Een mechanisme om lineaire verplaatste codes te decoderen wendt twee verschuivingsregisters aan. De verschuivingsregisters worden onafhankelijk gecontroleerd door een bijbehorende controleeenheid. Aanvankelijk, worden de ontvangen pariteitsbeetjes opgeslagen in een eerste verschuivingsregister en de globale syndroombeetjes worden opgeslagen in een tweede verschuivingsregister. Terwijl de meest rechtse cel in het eerste verschuivingsregister logische "0" bevat, worden beide verschuivingsregisters verplaatst net één positie. Wanneer de meest rechtse cel van het eerste verschuivingsregister een "1" bevat, wordt de inhoud van de meest rechtse cel van het tweede verschuivingsregister geregistreerd als eerste beetje van een syndroomcode die de positie van een fout met om het even welke groepen met een fout identificeert. Als de geregistreerde waarde een "1" is, beetje-wijze wordt exclusief OF een handeling dan uitgevoerd op de waarden in de eerste en tweede verschuivingsregisters, en het resultaat wordt opgeslagen in het tweede verschuivingsregister. Later, wordt de inhoud van het tweede verschuivingsregister verplaatst door één positie. Gelijkaardig aan de vorige verrichting, wordt de inhoud van de meest rechtse cel van het tweede verschuivingsregister opnieuw geregistreerd, dit keer als volgende beetje van de syndroomcode. Beetje-wijze exclusief wordt OF opnieuw voorwaardelijk op de waarden die in de eerste en tweede verschuivingsregisters afhangen uitgevoerd van of het laatste geregistreerde beetje was een "1" (en het resultaat wordt opgeslagen in het tweede verschuivingsregister), en de inhoud van het tweede verschuivingsregister wordt verplaatst. Deze stappen worden herhaald tot alle beetjes van L van de syndroomcode die een ontbroken component identificeert zijn geregistreerd (waar L het kleinste geheel dusdanig dat 2{character pullout}L = M is, waar M het aantal gebruikte componenten is).