in completing the decoding the errors if there were any are corrected the data are sent to the requesting software application and the reading operation ends e if on the other hand the first attempt fails in completing the decoding we apply the soft decoder to the retrieved representation of the codeword a second time this time with a large number of bits for message passing as this second decoding is guaranteed to succeed as long as the error pattern is not beyond the correction capability of the ecc scheme the decoding succeeds all errors are corrected the data are sent to the requesting software application and the reading operation ends even though the methods of the present invention are useful for many types of systems these methods are especially useful for flash memory systems this is because the error rate of flash memories is time dependent right after storing data into a flash memory its reliability is relatively high but as time passes that same data are read out with lower and lower reliability this is the result of the charge in the memory cells 39 gates leaking out over time another effect in flash memories is that while a fresh device has a relatively high reliability a much used device one that had undergone many write and erase cycles has much lower reliability when designing ecc schemes for protecting data stored in a.