×

Metadata rebuild in a flash memory controller following a loss of power

  • US 20090172262A1
  • Filed: 04/08/2008
  • Published: 07/02/2009
  • Est. Priority Date: 12/27/2007
  • Status: Active Grant
First Claim
Patent Images

1. A method of rebuilding metadata used in a flash memory controller following a loss of power, comprising the following steps:

  • (a) copying from flash memory to volatile memory a first table containing metadata regarding a first area of flash memory;

    (b) based on one or more indicators, determining whether the first area of flash memory was open, closed or erased at the time of power loss;

    (c) if the first area was erased, placing an identifier of the first area in a memory structure that contains identifications of flash memory areas that may be written to;

    (d) if the first area was closed, performing the following substeps for each of a plurality of flash memory subareas, each such subarea being a part of the first flash memory area, the first table containing metadata for each such subarea;

    (1) reading from the first table a logical address;

    (2) determining whether an entry corresponding to the logical address is stored in a second table in volatile memory;

    (3) if no such entry is found, setting a first indicator in volatile memory to a state indicating that first data stored in the subarea is valid;

    (4) if such an entry is found, performing the following sub-substeps;

    i. reading from the first table a second indicator relating to the relative time when the first data was written to the subarea;

    ii. comparing the second indicator to a third indicator stored in volatile memory, the third indicator relating to the relative time when second data was written to a different flash memory area and/or flash memory subarea;

    iii. if the comparison indicates that the first data was written earlier, setting the first indicator to a state indicating that the first data is invalid;

    iv. if the comparison indicates that the first data was written later, setting a fourth indicator in volatile memory to a state indicating that the second data is invalid;

    (e) if the first area was open, reading from the first flash memory area metadata associated with each subarea within the first flash memory area, and using the metadata to populate the first table.

View all claims
  • 11 Assignments
Timeline View
Assignment View
    ×
    ×