1. A method of decoding an encoded data stream representing an original sequence of data bits, wherein the encoded data stream comprises a plurality of codes, each code being dependent on a current data bit and a first predetermined number of preceding data bits in the original sequence, the method comprising the steps of: (a) for each of a number of possible states of the first predetermined number of preceding data bits, providing a score indicating the likelihood that the corresponding state represents the first predetermined number of preceding data bits; (b) arranging the scores in an initial ordering; (c) receiving a code; (d) given each of the two possible values of the current data bit in the received code, determining for each state two update values indicating the likelihood, based on the received code, that that state represents the first predetermined number of bits; (e) storing a first plurality of score bit slices to collectively represent the scores as arranged at said step (b), each score bit slice containing a predetermined bit from each of the scores; (f) reordering the scores and storing a second plurality of score bit slices to collectively represent the reordered scores, each score bit slice containing a predetermined bit from each of the reordered scores; (g) generating from the update values a first plurality of update bit slices for the first plurality of score bit slices and a second plurality of update bit slices for the second plurality of score bit slices, each update bit slice representing a predetermined bit from predetermined ones of said update values; (h) generating a first candidate plurality of updated score bit slices from the first plurality of score bit slices and the first plurality of update bit slices, and generating a second candidate plurality of updated score bit slices from the second plurality of score bit slices and the second plurality of update bit slices; (i) generating a plurality of updated score bit slices by, for each score represented by the bit slices, applying predetermined criteria to select the bits for that score from either the first candidate or the second candidate plurality of updated score bit slices; whereby all the scores are updated simultaneously.