×

Systems and methods for reclaiming memory for solid-state memory

  • US 9,208,018 B1
  • Filed: 03/15/2013
  • Issued: 12/08/2015
  • Est. Priority Date: 03/15/2013
  • Status: Active Grant
First Claim
Patent Images

1. An electronically-implemented method of reclaiming a flash block of a flash array, the method comprising:

  • selecting a block grid for reclamation,wherein block grids comprise a plurality of page grids, wherein page grids comprise a plurality of page stripes, wherein page stripes comprise a plurality of pages or integer fractions thereof,wherein a block of pages comprises a smallest erasable unit of memory such that the plurality of page grids comprising a block grid are related by having pages belonging to the same blocks;

    wherein a host accesses data using logical block addresses, wherein the logical blocks are stored in journaling cell slots, wherein valid data comprises data stored in journaling cell slots that the host expects to be able to access;

    wherein a plurality of gears indicative of a journaling cell capacity and error correction coding scheme include at least a first gear, a second gear, and a gear zero, wherein page stripes associated with the first gear have a first non-zero integer journaling cell slot capacity and a first error correction coding scheme protective of data stored in the journaling cells of the first page stripe, wherein page stripes associated with the second gear have a second non-zero integer journaling cell slot capacity different from the first non-zero journaling slot capacity and a second error correction coding scheme protective of data stored in the journaling cells of the second page stripe, wherein page stripes associated with gear zero have a zero journaling cell slot capacity and no parity bits of the second error correction code;

    wherein for valid data stored in the block grid, the method further comprises;

    reading data from corresponding one or more journaling cell slots;

    performing error correction on the read data to generate corrected data;

    evaluating a condition of a page stripe based at least partly on the error correction decoding of the data within the journaling cell slots of the page stripe;

    storing the corrected data into one or more journaling cell slots of page stripes of a different block grid;

    updating one or more tables with new associations between logical block addresses and journaling cell slots;

    erasing the blocks of the block grid;

    updating gear settings for the page stripes of the block grid based at least partly on the evaluation conditions for the page stripes; and

    making the page stripes of the block grid available for writing;

    wherein at least selecting, reading, and storing are performed by an integrated circuit.

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