IP Library Granted Patent US 8,904,261
Granted Patent B2
US 8,904,261 · App. 13/516,053 · Granted Dec 2, 2014

Data management in solid state storage devices

Inventors: Roy D. Cideciyan (Rueschlikon, CH); Evangelos S. Eleftheriou (Rueschlikon, CH); Robert Haas (Rueschlikon, CH); Xiao-Yu Hu (Rueschlikon, CH); Ilias Iliadis (Rueschlikon, CH)
Assignee: International Business Machines Corporation
G06F11/108G03F11/1008H03M13/05G06F11/1068
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,904,261
App. No.
13/516,053
Granted
Dec 2, 2014
Kind
B2
Abstract

A mechanism is provided for controlling a solid state storage device in which the solid state storage comprises erasable blocks each comprising a plurality of data write locations. Input data is stored in successive groups of data write locations, each group comprising write locations in a set of erasable blocks in each of a plurality of logical subdivisions of the solid state storage. The input data is error correction encoded such that each group contains an error correction code for the input data in that group. Metadata, indicating the location of input data in the solid state storage, is maintained in memory. An indication of validity of data stored in each data write location is also maintained. Prior to erasing a block, valid input data is recovered from the each said group containing write locations in that block. The recovered data is then re-stored as new input data.

Claims (36)

1. An apparatus comprising a solid state storage device in which a solid state storage in the solid state storage device comprises erasable blocks each erasable block comprising a plurality of data write locations, the apparatus comprising memory and control logic adapted to:

store input data in successive groups of data write locations, each group of data write locations in the successive groups of data write locations comprising write locations in a set of erasable blocks in each of a plurality of logical subdivisions of the solid state storage;

error correction encode the input data such that each group of data write locations contains an error correction code for the input data in that group of data write locations;

maintain, in the memory, metadata indicating a location of the input data in the solid state storage;

maintain an indication of validity of data stored in each data write location;

prior to erasing an erasable block, select an erasable block from the set of erasable blocks for erasing in dependence on a number of write locations containing invalid data in the group of data write locations which contain write locations in that erasable block; and

recover valid data from each group of data write locations containing write locations in that erasable block thereby forming recovered valid data and re-store the recovered valid data as new input data.

2. The apparatus as claimed in claim 1 , wherein the control logic is adapted such that, at successive stages during storage of input data in the write locations of each group of data write locations, the control logic computes a transient error correction code for the input data stored therein.

3. The apparatus as claimed in claim 2 , wherein the control logic is adapted to store the transient error correction code in the solid state storage in response to interruption of power to the apparatus.

4. The apparatus as claimed in claim 1 , wherein the solid state storage device has a plurality of storage channels each having a set of solid state storage units, and wherein each of the logical subdivisions comprises the set of solid state storage units in a respective channel.

5. The apparatus as claimed in claim 1 , wherein the solid state storage comprises a plurality of storage units and each of the logical subdivisions comprises a respective storage unit.

6. The apparatus as claimed in claim 1 , wherein the control logic is adapted such that each group of data write locations comprises a set of consecutive write locations in each erasable block of the group of data write locations.

7. The apparatus as claimed in claim 1 , wherein the control logic is adapted such that any groups of data write locations which share a common block in one logical subdivision share a common block in each logical subdivision.

8. The apparatus as claimed in claim 1 , wherein the control logic is adapted to dynamically adjust a number of write locations in a group of data write locations in the successive groups of data write locations in dependence on predetermined criteria.

9. The apparatus as claimed in claim 1 , wherein the metadata comprises an address map indicating a mapping between logical addresses associated with respective input data blocks and physical addresses indicative of write locations in the solid state storage.

10. A solid state storage device comprising solid state storage, which comprises erasable blocks each comprising a set of data write locations, and a control apparatus adapted to:

store input data in successive groups of data write locations, each group of data write locations in the successive groups of data write locations comprising write locations in a set of erasable blocks in each of a plurality of logical subdivisions of the solid state storage;

error correction encode the input data such that each group of data write locations contains an error correction code for the input data in that group of data write locations;

maintain, in memory, metadata indicating a location of the input data in the solid state storage;

maintain an indication of validity of data stored in each data write location;

prior to erasing an erasable block, select an erasable block from the set of erasable blocks for erasing in dependence on a number of write locations containing invalid data in the group of data write locations which contain write locations in that erasable block; and

recover valid data from each group of data write locations containing write locations in that erasable block thereby forming recovered valid data and re-store the recovered valid data as new input data.

11. A computer program comprising program code stored on a non-transitory computer readable storage medium, wherein the program code, when executed on a computer, causes the computer to:

store input data in successive groups of data write locations, each group of data write locations in the successive groups of data write locations comprising write locations in a set of erasable blocks in each of a plurality of logical subdivisions of the solid state storage;

error correction encode the input data such that each group of data write locations contains an error correction code for the input data in that group of data write locations;

maintain, in memory, metadata indicating a location of the input data in the solid state storage;

maintain an indication of validity of data stored in each data write location; and

prior to erasing an erasable block, select an erasable block from the set of erasable blocks for erasing in dependence on a number of write locations containing invalid data in the group of data write locations which contain write locations in that erasable block; and

recover valid data from each group of data write locations containing write locations in that erasable block thereby forming recovered valid data and re-store the recovered valid data as new input data.

12. The computer program as claimed in claim 11 , wherein the program code further causes the computer to:

at successive stages during storage of input data in the write locations of each group of data write locations, compute a transient error correction code for the input data stored therein.

13. The computer program as claimed in claim 12 , wherein the program code further causes the computer to:

store the transient error correction code in the solid state storage in response to interruption of power to the solid state storage device.

14. The solid state storage device as claimed in claim 10 , wherein the solid state storage device has a plurality of storage channels each having a set of solid state storage units, and wherein each of the logical subdivisions comprises the set of solid state storage units in a respective channel.

15. The solid state storage device as claimed in claim 10 , wherein the solid state storage comprises a plurality of storage units and each of the logical subdivisions comprises a respective storage unit.

16. The solid state storage device as claimed in claim 10 , wherein the metadata comprises an address map indicating a mapping between logical addresses associated with respective input data blocks and physical addresses indicative of write locations in the solid state storage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2012
From: CIDECIYAN, ROY D.; ELEFTHERIOU, EVANGELOS S.; HAAS, ROBERT; HU, XIAO-YU; ILIADIS, ILIAS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028380/0428 →
Priority Claims (1)
EP 09179746 · Dec 17, 2009 · regional
Continuity (1)
Related Publication 20120266050A1 · Oct 18, 2012