Back-up and restoration of data between volatile and flash memory
First Claim
1. A method for controlling back-up of data to flash memory, comprising:
- organizing back-up data into stripes, wherein a stripe is a set of pages across all available flash memory devices, dies and planes which have the same block and page address;
maintaining metadata indicating locations of known bad planes and grown bad planes;
using the metadata when writing back-up data to determine which planes to send cache program commands to; and
sending cache program commands to three or more stripes of data simultaneously including providing an indication in a stripe that the stripe is handling a cache program command;
wherein if a grown bad block is encountered whilst saving a stripe of data, the stripe of data is re-written to the next available page address avoiding the grown bad block.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system are provided for back-up and restoration of data between volatile and flash memory. The method for controlling back-up of data to flash memory includes: organizing back-up data into stripes, wherein a stripe is a set of pages across all available flash memory devices, dies and planes which have the same block and page address; maintaining metadata indicating locations of known bad planes and grown bad planes; using the metadata when writing back-up data to determine which planes to send cache program commands to; and sending cache program commands to three or more stripes of data simultaneously including providing an indication in the stripe that the stripe is handling a cache program command. If a grown bad block is encountered whilst saving a stripe of data, the stripe of data is re-written to the next available page address avoiding the grown bad block.
-
Citations
20 Claims
-
1. A method for controlling back-up of data to flash memory, comprising:
-
organizing back-up data into stripes, wherein a stripe is a set of pages across all available flash memory devices, dies and planes which have the same block and page address; maintaining metadata indicating locations of known bad planes and grown bad planes; using the metadata when writing back-up data to determine which planes to send cache program commands to; and sending cache program commands to three or more stripes of data simultaneously including providing an indication in a stripe that the stripe is handling a cache program command; wherein if a grown bad block is encountered whilst saving a stripe of data, the stripe of data is re-written to the next available page address avoiding the grown bad block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for controlling back-up of data to flash memory, wherein the system includes a back-up engine having a processor for backing-up data to flash memory formed of multiple flash devices, wherein the back-up engine provides commands to multiple flash device controllers having dedicated flash interfaces to the multiple flash devices, the back-up engine comprising:
-
a data structure component for organizing back-up data into stripes, wherein a stripe is a set of pages across all available flash memory devices, dies and planes which have the same block and page address; a volatile storage for storing metadata regarding the back-up process including maintaining metadata indicating locations of known bad planes and grown bad planes, wherein the volatile storage has a temporary power supply; a back-up writing component using the metadata when writing back-up data to determine which planes to send cache program commands to; a caching component for sending cache program commands to three or more stripes of data simultaneously including providing an indication in a stripe that the stripe is handling a cache program command; and a re-writing component, wherein if a grown bad block is encountered whilst saving a stripe of data, the stripe of data is re-written to the next available page address avoiding the grown bad block. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification