SELF RECOVERY IN A SOLID STATE DRIVE
First Claim
1. An apparatus comprising:
- a memory configured to store information in a plurality of pages, wherein (i) said memory is nonvolatile, (ii) said information comprises a plurality of data units and a plurality of headers, (iii) each of said data units is associated with a respective identifier in an address space of said apparatus and a respective location in said memory, (iv) each of said data units has a respective one of said headers comprising said respective identifier, (v) each of said data units is associated with a respective one of a plurality of time stamps and (vi) multiple ones of said headers comprise ones of said time stamps; and
a controller configured to (i) read information stored in said pages, (ii) determine an order in which said data units were written to said memory based on said time stamps, (iii) locate based on said order (a) each last-written occurrence of said respective identifiers and (b) said respective locations of said data units associated with said last-written occurrences, and (iv) rebuild a map of said controller according to said respective locations of each of said last-written occurrence of each of said 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.
22 Citations
20 Claims
-
1. An apparatus comprising:
-
a memory configured to store information in a plurality of pages, wherein (i) said memory is nonvolatile, (ii) said information comprises a plurality of data units and a plurality of headers, (iii) each of said data units is associated with a respective identifier in an address space of said apparatus and a respective location in said memory, (iv) each of said data units has a respective one of said headers comprising said respective identifier, (v) each of said data units is associated with a respective one of a plurality of time stamps and (vi) multiple ones of said headers comprise ones of said time stamps; and a controller configured to (i) read information stored in said pages, (ii) determine an order in which said data units were written to said memory based on said time stamps, (iii) locate based on said order (a) each last-written occurrence of said respective identifiers and (b) said respective locations of said data units associated with said last-written occurrences, and (iv) rebuild a map of said controller according to said respective locations of each of said last-written occurrence of each of said respective identifiers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for self recovery in a memory of an input/output device, comprising the steps of:
-
(A) reading information stored in a plurality of pages of said memory, wherein (i) said memory is nonvolatile, (ii) said information comprises a plurality of data units and a plurality of headers, (iii) each of said data units is associated with a respective identifier in an address space of said input/output device and a respective location in said memory, (iv) each of said data units has a respective one of said headers comprising said respective identifier, (v) each of said data units is associated with a respective one of a plurality of time stamps and (vi) multiple ones of said headers comprise ones of said time stamps; (B) determining an order in which said data units were written to said memory based on said time stamps; (C) locating based on said order (i) each last-written occurrence of said respective identifiers and (ii) said respective locations of said data units associated with said last-written occurrences; and (D) rebuilding a map of said input/output device according to said respective locations of each of said last-written occurrence of each of said respective identifiers. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An apparatus comprising:
-
means for reading information stored in a plurality of pages of a memory, wherein (i) said memory is nonvolatile, (ii) said information comprises a plurality of data units and a plurality of headers, (iii) each of said data units is associated with a respective identifier in an address space of said apparatus and a respective location in said memory, (iv) each of said data units has a respective one of said headers comprising said respective identifier, (v) each of said data units is associated with a respective one of a plurality of time stamps and (vi) multiple ones of said headers comprise ones of said time stamps; means for determining an order in which said data units were written to said memory based on said time stamps; means for locating based on said order (i) each last-written occurrence of said respective identifiers and (ii) said respective locations of said data units associated with said last-written occurrences; and means for rebuilding a map according to said respective locations of each of said last-written occurrence of each of said respective identifiers.
-
Specification