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, wherein maintaining metadata includes maintaining a combined bad plane register of known bad planes and grown bad planes, wherein the combined bad plane register carries out an OR operation of the known bad planes and the 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 while saving a stripe of data, the stripe of data is re-written to the next available page address avoiding the grown bad block.
35 Citations
18 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, wherein maintaining metadata includes maintaining a combined bad plane register of known bad planes and grown bad planes, wherein the combined bad plane register carries out an OR operation of the known bad planes and the 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. 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, and wherein the volatile storage includes a combined bad plane register of known bad planes and grown bad planes, wherein the combined bad plane register carries out an OR operation of the known bad planes and the grown bad planes; 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 (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification