Errors affecting stored data may occur in memory and other storage devices as a result of soft errors or hardware failures. Soft errors generally refer to data errors caused by something other than a physical defect, such as alpha particle emissions, electrical noise, etc. When data is rewritten to the same storage location that previously exhibited a soft error, the error condition will likely be resolved. Hardware or “hard” errors, on the other hand, are not so forgiving. Physical defects within the devices storing the data are generally the culprits causing hard errors. When such physical defects occur, the affected storage cells may no longer be selectively written to desired logic levels, and in many cases are rendered unusable indefinitely.
As the building blocks of integrated circuits continue to decrease in size, process variation issues may become more prevalent. This can result in an increase in the permanent failures afflicting the storage device. Additionally, new storage technologies may exhibit higher hard failure rates than their more established counterparts. Particularly, while any storage technology may be vulnerable to hard failures, some are more susceptible than others. For example, modern phase-change memories (PCM) use currents that generate very high heat to set the electrical resistance when writing the cell. The expansion and contraction resulting from the repeated heating and cooling of the materials can eventually cause the heating element to detach from the cell material, thereby causing a permanent failure at a particular logic state. For these and other storage technologies, there are a variety of factors that can lead to hard cell failures.
In order to account for hard failures in memory and other data storing devices, the failed storage locations may be removed from service. This creates a noncontinuous address space that introduces additional complexities to designers and/or programmers. To make matters worse, data is often stored in addressable blocks of memory, and removing a failed storage location from service may result in decommissioning the entire memory block. For example, in the case of main memory in a computing environment, the memory block may correspond to a page of memory, thereby resulting in decommissioning an entire page of memory when any one or more cells of that page have failed. This essentially wastes the remaining operative cells of that page of memory, and furthers the depletion of storage capacity.