Software Implementation
See Viterbi algorithm.
One of the most time-consuming operations is an ACS butterfly, which is usually implemented using an assembly language and appropriate instruction set extensions (such as SSE2) to speed up the decoding time.
Read more about this topic: Viterbi Decoder