Self recovery in a solid state drive
First Claim
1. An apparatus comprising:
- a memory configured to store a plurality of time stamps associated with a plurality of data units in a plurality of bands, wherein (i) each of the bands comprises a plurality of blocks, (ii) each of the blocks comprises a plurality of memory pages, (iii) the memory pages are configured to store a plurality of host pages, (iv) each of the host pages comprises one or more of the data units, and (v) each of the host pages is associated with a respective identifier in a host address space, a respective location in a physical address space of the memory, and a respective epoch value; and
a controller configured to (i) read the time stamps from the memory, (ii) generate a plurality of lists identifying an order in which the data units were written to the memory based on the time stamps, (iii) perform a sequence of reads of the respective identifiers from the bands based on the lists and the respective epoch values, (iv) locate each last-written occurrence of the respective identifiers based on the sequence of reads and (v) rebuild a map identifying where the data units are stored in the physical address space of the memory according to the last-written occurrences of the respective identifiers.
4 Assignments
0 Petitions
Accused Products
Abstract
An apparatus having a nonvolatile memory and a controller. The memory stores information in multiple pages. The information includes data units and headers. Each data unit is associated with a respective identifier in an address space of the apparatus and a respective location in the memory, has a respective header having the respective identifier, and is associated with a respective time stamp. Multiple headers include ones of the time stamps. The controller is configured to (i) read information stored in the pages, (ii) determine an order in which the data units were written based on the time stamps, (iii) locate based on the order (a) each last-written occurrence of the respective identifiers and (b) the respective locations of the data units associated with the last-written occurrences, and (iv) rebuild a map of the controller according to the respective locations of each last-written occurrence of each respective identifier.
13 Citations
20 Claims
-
1. An apparatus comprising:
-
a memory configured to store a plurality of time stamps associated with a plurality of data units in a plurality of bands, wherein (i) each of the bands comprises a plurality of blocks, (ii) each of the blocks comprises a plurality of memory pages, (iii) the memory pages are configured to store a plurality of host pages, (iv) each of the host pages comprises one or more of the data units, and (v) each of the host pages is associated with a respective identifier in a host address space, a respective location in a physical address space of the memory, and a respective epoch value; and a controller configured to (i) read the time stamps from the memory, (ii) generate a plurality of lists identifying an order in which the data units were written to the memory based on the time stamps, (iii) perform a sequence of reads of the respective identifiers from the bands based on the lists and the respective epoch values, (iv) locate each last-written occurrence of the respective identifiers based on the sequence of reads and (v) rebuild a map identifying where the data units are stored in the physical address space of the memory according to the last-written occurrences of the respective identifiers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for self recovery in a memory controller, comprising the steps of:
-
(A) reading a plurality of time stamps associated with a plurality of data units stored in a plurality of bands in a memory coupled to the memory controller, wherein (i) each of the bands comprises a plurality of blocks, (ii) each of the blocks comprises a plurality of memory pages, (iii) the memory pages are configured to store a plurality of host pages, (iv) each of the host pages comprises one or more of the data units, and (v) each of the host pages is associated with a respective identifier in a host address space, a respective location in a physical address space of the memory, and a respective epoch value; (B) generating a plurality of lists identifying an order in which the data units were written to the memory based on the time stamps; (C) performing a sequence of reads of the respective identifiers from the bands based on the lists and the respective epoch values; (D) locating each last-written occurrence of the respective identifiers based on the sequence of reads; and (E) rebuilding a map identifying where the data units are stored in the physical address space of the memory according to the last-written occurrences of the respective identifiers. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus comprising:
-
an interface configured to process a plurality of read/write operations to/from a memory, wherein (i) the memory is configured to store a plurality of time stamps associated with a plurality of data units in a plurality of bands, (ii) each of the bands comprises a plurality of blocks, (iii) each of the blocks comprises a plurality of memory pages, (iv) the memory pages are configured to store a plurality of host pages, (v) each of the host pages comprises one or more of the data units, and (vi) each of the host pages is associated with a respective identifier in a host address space, a respective location in a physical address space of the memory, and a respective epoch value; and a controller configured to (i) read the time stamps from the memory, (ii) generate a plurality of lists identifying an order in which the data units were written to the memory based on the time stamps, (iii) perform a sequence of reads of the respective identifiers from the bands based on the lists and the respective epoch values, (iv) locate each last-written occurrence of the respective identifiers based on the sequence of reads and (v) rebuild a map identifying where the data units are stored in the physical address space of the memory according to the last-written occurrences of the respective identifiers. - View Dependent Claims (20)
-
Specification