Patent ID: 7945759

Claim:
A method of storing and updating data in a nonvolatile memory, comprising: organizing the nonvolatile memory into blocks, each block partitioned in memory units that are erasable together, each memory unit for storing a logical unit of data; organizing data into a plurality of logical groups, each logical group being a group of logical units; receiving host data packaged in logical units; creating an original block of a logical group by storing in a first block a first version of logical units of the group according to a first order; and creating an update block of the logical group by storing in a second block including subsequent versions of logical units of the group according to a second order; in response to a predefined event for consolidation, creating a consolidation block for the logical group by storing in a third block similar to the first order current versions of the logical units of the group gathered from the original and update blocks; in response to a storing failure at the consolidation block, providing a breakout consolidation block by storing in a fourth block according to the first order current versions of the logical units of the group that failed to be stored in the consolidation block; and subsequent to the predefined event for consolidation, replacing the first block with the second block and the second block with the third block.