Patent ID: 7623585

Claim:
A system for decoding an encoded set of data bits, the system comprising: a first calculation module configured to calculate a signal distance between the encoded set of data bits and each one of a predetermined set of branch values, wherein each one of the predetermined set of branch values includes a predetermined sequence of data bits; and a plurality of second calculation modules operating in parallel and configured to calculate a corresponding plurality of cumulative signal distances, wherein each cumulative signal distance corresponds to each one of a predetermined set of predecessor states, wherein each second calculation module is associated with a specific one of the predetermined set of predecessor states; wherein the first calculation module comprises: a plurality of calculation submodules configured to operate in parallel, wherein each calculation submodule includes: a plurality of XOR gates, wherein each XOR gate is configured to generate a corresponding output in response to a difference between a corresponding bit from the encoded set of data bits and a corresponding bit from one of the predetermined set of branch values; and a counter configured to count a number of instances the corresponding output of each of the XOR gates indicates the difference; and wherein each second calculation modules includes: a plurality of addition submodules configured to operate in parallel, wherein each addition submodule is configured to add a preselected signal distance calculated by the first calculation module to a preselected cumulative signal distance calculated by each of the plurality of second calculation modules; wherein each addition submodule further comprises an addition circuit configured to receive both the preselected signal distance and the preselected cumulative signal distance in digital format wherein an output of each addition circuit is a number in binary format that is a sum of the preselected signal distance and the preselected cumulative signal distance; and a decision submodule configured to subtract an offset value from each of the plurality of cumulative signal distances calculated by the plurality of second calculation modules and configured to select one of a plurality of cumulative signal distance sums calculated by the plurality of the addition submodules in response to the offset cumulative signal distances the decision submodule is configured to receive outputs from the plurality of addition submodules, wherein the decision submodule is configured to provide a decision submodule output, one of the outputs of the addition submodules that meets a specific predetermined criterion, and wherein the decision submodule output is provided as a new cumulative signal distance for one of the predetermined set of predecessor states associated with a second calculation module containing the decision submodule.