An iterative decoder is controlled to iteratively decode a block by
performing one or more decoding iterations for the block during a
predetermined block time. The iterative decoder is further controlled to
perform more decoding iterations for the block during a time in which the
hardware of the iterative decoder is available, if the block fails to
converge to correct data during the predetermined block time. The
iterative decoder uses a parity-check matrix and can be configured to
process that parity-check matrix for parallel, sequential or a
combination of parallel and sequential ("hybrid") parity constraint
updates.