Circular wear leveling
AssigneeSMART Modular Technologies (AZ) , Inc.
InventorsKevin L. Kilzer, Robert W. Ellis, Rudolph J. Sterbenz
Life of this patent
Estimating the term…
Abstract
A method for flash memory management comprises providing a head pointer configured to define a first location in a flash memory, and a tail pointer configured to define a second location in a flash memory. The head pointer and tail pointer define a payload data area. Payload data is received from a host, and written to the flash memory in the order it was received. The head pointer and tail pointer are updated such that the payload data area moves in a circular manner within the flash memory.
Claims15
A method for flash memory management, comprising:
- providing a head pointer configured to define a first location in a flash memory;
- providing a tail pointer configured to define a second location in the flash memory, wherein the head pointer and tail pointer define the beginning and end of a payload data area, respectively;
- providing at least one data structure configured to locate payload data written to the flash memory, wherein the at least one data structure is contained entirely in random access memory;
- receiving payload data from a host;
- writing the payload data to the flash memory in the order the payload data was received from the host;
- updating the head pointer and tail pointer such that the payload data area moves in a circular manner within the flash memory;
- and
- providing a second head pointer and second tail pointer such that two payload data areas move in a circular manner within the flash memory.
A solid state drive, comprising:
- a flash memory controller configured to receive payload data from a host;
- a random access memory containing at least one data structure, wherein the at least one data structure is configured to locate data written to the solid state drive, and wherein the at least one data structure is contained entirely in the random access memory;
- and
- at least one flash chip configured as a circular storage space, wherein the flash memory controller is configured to write the payload data to the at least one flash chip in the order it was received from the host,
- wherein the flash memory controller comprises at least two head pointers such that consecutively received pages of payload data are stored in different erase blocks in the circular storage space.
A method for flash memory management, comprising:
- providing a head pointer configured to define a first location in a flash memory;
- providing a tail pointer configured to define a second location in the flash memory, wherein the head pointer and tail pointer define the beginning and end of a payload data area, respectively;
- providing at least one data structure configured to locate payload data written to the flash memory, wherein the at least one data structure is contained entirely in random access memory;
- receiving payload data from a host;
- writing the payload data to the flash memory in the order the payload data was received from the host;
- updating the head pointer and tail pointer;
- and
- pausing a write request from the host when the size of the flash memory behind the tail pointer and ahead of the head pointer falls below a threshold value.
A method for flash memory management, comprising:
- providing a head pointer configured to define a first location in a flash memory;
- providing a tail pointer configured to define a second location in the flash memory, wherein the head pointer and tail pointer define the beginning and end of a payload data area, respectively;
- providing at least one data structure configured to locate payload data written to the flash memory, wherein the at least one data structure is contained entirely in random access memory;
- receiving payload data from a host;
- writing the payload data to the flash memory in the order the payload data was received from the host;
- and
- updating the head pointer and tail pointer;
- wherein the writing the payload data to the flash memory takes place when the size of the antipayload area exceeds the no-defragmentation size.
Dependencies are inferred from the claim text.