1. A method of decoding, comprising: inputting a plurality of data blocks into a memory arrangement; and for each of the plurality of data blocks in the memory arrangement, performing a plurality of decoding iterations using a circular pipeline circuit including a plurality of processing stages, each decoding iteration including, in one processing stage of the circular pipeline circuit: performing a first set of soft-input-soft-output (SISO) decoding operations on a block of data from the plurality of data blocks in the memory arrangement to produce an intermediate block of data; and performing a second set of SISO decoding operations on the intermediate data block to complete the one decoding iteration, a next decoding iteration of the plurality of decoding iterations being performed using a next processing stage following the one processing stage of the circular pipeline circuit of processing stages, one of the first and second sets of SISO decoding operations performing interleaved decoding operations and the other of the first and second sets of SISO decoding operations performing non-interleaved decoding operations; and in each processing stage of the circular pipeline circuit: outputting a decoded data block in response to completing a final decoding iteration of the block of data, thereby making the next processing stage in the circular pipeline circuit available to process an unprocessed one of the plurality of data blocks, and otherwise storing a partially decoded data block in the memory arrangement in response to completing a non-final decoding iteration of the block of data; and inputting an unprocessed one of the plurality of data blocks into the processing stage in response to the previous processing stage in the circular pipeline circuit outputting a decoded data block, and otherwise, inputting the partially decoded data block, stored in the memory arrangement by a previous processing stage in the circular pipeline circuit, to the processing stage; and wherein each unprocessed data block of the plurality of data blocks is input to a respective one of the plurality of processing stages that is available to process the unprocessed data block.