Upon determining that a unit of memory meets a retirement condition, operation 504 includes re-evaluating the unit of memory to determine whether to retire the unit of memory. Again, the unit of memory may include at least one block of non-volatile memory (e.g., a single block, multiple blocks, a block-stripe, etc.) and/or a portion of a block of the non-volatile memory (e.g., one or more pages). Thus, embodiments implementing re-evaluation at the page level (the unit of memory includes one or more pages) may implement page level retirement in combination with the various approaches described and/or suggested herein. It follows that, as single pages are retired, the full size of the non-volatile memory block associated with the retired one or more pages will decrease accordingly.
Depending on the result of the re-evaluation performed in operation 504, method 500 may advance along different paths. Specifically, when it is determined in operation 504 that a result of the re-evaluation is to not retire the unit of memory, method 500 proceeds to operation 506 which includes indicating that the unit of memory remains usable. For example, operation 506 may include assigning the unit of memory in the ready to erase (RTE) queue, list the unit of memory in a table of good blocks, etc.
However, when it is determined in operation 504 that a result of the re-evaluation is to retire the unit of memory, method 500 proceeds to operation 508 which includes indicating that the unit of memory is retired. Upon being retired, the unit of memory may be assigned to a designated table thereby retiring the portion of non-volatile memory from any future use, as will be described in further detail below.