1. A method for performing SISO decoding, the method comprising the steps of: (One) providing a trellis representative of an output of a convolutional encoder, the convolutional encoder has a coding rate of R, the trellis having a block length T and is divided to windows; (Two) assigning an initial conditions to each node of a starting stage and an ending stage of the trellis; (Three)computing a forward metric for each node, starting from the starting stage of the trellis and advancing forward through the trellis and storing forward metrics of nodes of a plurality of starting stages of windows; (Four) repeating stages d(1)-d(3) until all lambdas of the trellis are calculated: (1) retrieving forward metrics of nodes of a starting stage of a window, the retrieved forward metrics were computed and stored during step 1(c), (2) computing and storing forward metrics for each node, starting from a second stage of the window and ending at the ending stage of the window; (3) computing backward metrics for each node, starting from the ending stage of the window and ending at the starting stage of the window; wherein when backward metrics of nodes of a stage are computed and the forward metrics of the nodes of an adjacent stage were previously computed, the computation of backward metrics is integrated with the computation of lambda from the stage to the adjacent stage and a storage of the computed lambdas.