Fast data back-up and restore between volatile and flash memory
First Claim
1. A method for back-up of data to flash memory, comprising:
- writing data to back up into stripes excluding pages on blocks of the flash memory known to be bad, wherein a stripe is a set of pages across all available flash memory backup devices, each device including at least multiple blocks that include multiple pages, the set of pages in a stripe having a same block and page address;
embedding first metadata in each stripe indicating any blocks of the flash memory known to be bad;
in response to encountering a new error in a block of flash memory during writing data to back up to a first stripe;
re-writing the first stripe starting at a next available stripe excluding pages on the block of flash memory having the new error;
writing subsequent stripes excluding pages on the block of flash memory having the new error; and
embedding second metadata in the re-written first stripe and the subsequent stripes indicating a location of the block having the new error; and
responsive to finding no bad blocks indicated in the first metadata, initiating a write to two or more stripes simultaneously.
1 Assignment
0 Petitions
Accused Products
Abstract
Back-up of data to flash memory. Data to back up is written into stripes, which are sets of pages across flash memory backup devices having the same block and page address. First metadata is embedded in each stripe indicating any blocks of the flash memory known to be bad. In response to encountering a new error in a block of flash memory during writing data to back up to a stripe, re-writing the stripe starting at the next available stripe excluding pages on the block of flash memory having the new error, writing subsequent stripes excluding pages on the block of flash memory having the new error, and embedding second metadata in the re-written and subsequent stripes indicating the location of the block having the new error. Responsive to finding no bad blocks indicated in the first metadata, initiating a write to two or more stripes simultaneously.
31 Citations
20 Claims
-
1. A method for back-up of data to flash memory, comprising:
-
writing data to back up into stripes excluding pages on blocks of the flash memory known to be bad, wherein a stripe is a set of pages across all available flash memory backup devices, each device including at least multiple blocks that include multiple pages, the set of pages in a stripe having a same block and page address; embedding first metadata in each stripe indicating any blocks of the flash memory known to be bad; in response to encountering a new error in a block of flash memory during writing data to back up to a first stripe; re-writing the first stripe starting at a next available stripe excluding pages on the block of flash memory having the new error; writing subsequent stripes excluding pages on the block of flash memory having the new error; and embedding second metadata in the re-written first stripe and the subsequent stripes indicating a location of the block having the new error; and responsive to finding no bad blocks indicated in the first metadata, initiating a write to two or more stripes simultaneously. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A controller system for back-up of data to flash memory, comprising:
-
one or more processors, one or more computer-readable memories including one or more flash memories wherein each flash memory includes at least multiple blocks that include multiple pages, one or more computer-readable tangible storage devices, and program logic stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, the program logic comprising; program instructions to write data to back up into stripes excluding pages on blocks of the flash memory known to be bad, wherein a stripe is a set of pages across all available flash memory backup devices, the set of pages in a stripe having a same block and page address; program instructions to embed first metadata in each stripe indicating any blocks of the flash memory known to be bad; program instructions, in response to encountering a new error in a block of flash memory during writing data to back up to a first stripe, to; re-write the first stripe starting at a next available stripe excluding pages on the block of flash memory having the new error; write subsequent stripes excluding pages on the block of flash memory having the new error; and embed second metadata in the re-written first stripe and the subsequent stripes indicating a location of the block having the new error; and program instructions, responsive to finding no bad blocks indicated in the first metadata, to initiate a write to two or more stripes simultaneously. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for back-up of data to flash memory, the computer program product comprising:
-
one or more computer-readable storage devices and program instructions stored on at least one of the one or more storage devices, the program instructions comprising; program instructions to write data to back up into stripes excluding pages on blocks of the flash memory known to be bad, wherein a stripe is a set of pages across all available flash memory backup devices, each device including at least multiple blocks that include multiple pages, the set of pages in a stripe having a same block and page address; program instructions to embed first metadata in each stripe indicating any blocks of the flash memory known to be bad; program instructions, in response to encountering a new error in a block of flash memory during writing data to back up to a first stripe, to; re-write the first stripe starting at a next available stripe excluding pages on the block of flash memory having the new error; write subsequent stripes excluding pages on the block of flash memory having the new error; and embed second metadata in the re-written first stripe and the subsequent stripes indicating a location of the block having the new error; and program instructions, responsive to finding no bad blocks indicated in the first metadata, to initiate a write to two or more stripes simultaneously. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification