×

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

  • US 9,152,556 B2
  • Filed: 12/11/2013
  • Issued: 10/06/2015
  • 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:

  • copying metadata information from flash memory to volatile memory, the metadata information including metadata regarding a first block in flash memory and logical addresses for a sequence of physical locations in flash memory;

    in accordance with the copied metadata information, storing a plurality of metadata tables in the volatile memory, the plurality of metadata tables including;

    a first table containing metadata concerning one or more respective blocks, including the first block, and logical addresses for the sequence of physical locations in flash memory, anda second table containing metadata that includes physical location information in flash memory for each of a sequence of logical addresses;

    in accordance with metadata in the first table, determining whether the first block in flash memory was closed when the power loss occurred; and

    in accordance with a determination that the first block was closed when the power loss occurred;

    reading from the first table a logical address for the first block;

    determining from the second table whether the logical address corresponds to a second block that is a different block than the first block;

    in accordance with a determination that the logical address corresponds to a second block that is a different block than the first block, comparing time stamps related, respectively, to the first block and the second block;

    in accordance with a determination, based on the comparison, that data in the first block was written earlier than data in the second block, setting a first valid bit in the plurality of metadata tables to a state indicating that the data in the first block is invalid, andin accordance with a determination, based on the comparison, that the data in the first block was written later than data in the second block, setting a second valid bit in volatile memory to a state indicating that data in the second block is invalid.

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