Non-volatile memory program failure recovery via redundant arrays
AssigneeSeagate Technology LLC
InventorsJeremy Isaac Nathaniel Werner, Earl T. Cohen
Life of this patent
Estimating the term…
Abstract
Methods, systems and computer-readable storage media for requesting programming of N portions of a plurality of non-volatile memories (NVMs) in accordance with received data. Redundancy information sufficient to recover from failures of M of the N portions for which programming was requested is updated in response to the requesting programming. Upon identifying one to M of the N portions that have failed the programming, re-programming of the one to M of the N portions is requested in accordance with data calculated based at least in part on the redundancy information.
Claims20
A method comprising steps of:
- requesting a first programming of N portions of a plurality of non-volatile memories (NVMs) in accordance with received data;
- in response to requesting the first programming, updating redundancy information sufficient to recover from failures of M of the N portions for which the first programming was requested, the redundancy information being smaller than the received data;
- identifying one to M of the N portions that failed the first programming;
- and
- in response to identifying the one to M of the N portions that failed the first programming, request a second programming of the one to M of the N portions in accordance with data calculated based on the redundancy information and data read from those of the N portions for which the first programming was successful.
A storage system comprising:
- a plurality of non-volatile memories (NVMs);
- and
- a storage controller communicatively coupled to the plurality of NVMs, the storage controller configured to
- request a first programming of N portions of the plurality of NVMs in accordance with received data,
- in response to requesting the first programming, update redundancy information sufficient to recover from failures of M of the N portions for which the first programming was requested, the redundancy information being smaller than the received data,
- identify one to M of the N portions that failed the first programming, and
- in response to identifying the one to M of the N portions that failed the first programming, request a second programming of the one to M of the N portions in accordance with data calculated based on the redundancy information and data read from those of the N portions for which the first programming was successful.
A non-transitory computer readable medium having processor-executable instructions stored thereon that, when executed by a processor, cause the processor to:
- request a first programming of N portions of a plurality of non-volatile memories (NVMs) in accordance with received data;
- in response to requesting the first programming, update redundancy information sufficient to recover from failures of M of the N portions for which the first programming was requested, the redundancy information being smaller than the received data;
- identify one to M of the N portions that failed the first programming;
- and
- in response to identifying the one to M of the N portions that failed the first programming, request a second programming of the one to M of the N portions in accordance with data calculated based on data read from those of the N portions that accomplished the first programming and the redundancy information.
Dependencies are inferred from the claim text.