Accordingly, when decision 552 determines that there is an adequate amount of free space in the delay queue to accommodate the unit of memory, method 500 proceeds to operation 554 which includes assigning the unit of memory to the delay queue for at least a predetermined dwell time. Depending on the embodiment, “dwell time” may refer to the time between programmings, erases, etc., or the time between any other actions performed on a given unit of memory. Thus, different implementations of the operations in method 500 may rely on different definitions of dwell time.
Units of memory which have high error rates may recover when allowed to experience longer dwell times. According to an example, which is in no way intended to limit the invention, if a block of non-volatile memory is subjected to harsh operating conditions (e.g., rapid cycling) at the beginning of its life, but later, the block is allowed to experience ample dwell time, the block may recover from the harsh operating conditions experienced during its beginning of life and behave normally during subsequent use. Thus, it is desirable that there is an ample amount of time between programming cycles performed on non-volatile memory, which may be derived from the specification of the memory, as a result of routine experimentation, etc.
By remaining in the delay queue for at least a fixed amount of time, the unit of memory undergoes additional dwell time which it might not otherwise have experienced prior to meeting a retirement condition. As a result, the condition of the unit of memory may improve and thereby no longer be subject to retirement.