Delaying Random Data Relocation For Reducing Write Amplification In Storage Devices
AssigneeWestern Digital Technologies, Inc.
InventorSridhar Prudvi Raj Gunda
Life of this patent
Estimating the term…
Abstract
Techniques for reducing write amplification in solid state storage are disclosed. A storage device includes single-level cell (SLC) and multi-level cell (MLCs) portions. A controller may allocate for storage in the SLC portions a sequential closed block pool for sequential data and a random closed block pool for random data. Responsive to certain conditions, the controller may relocate the sequential and random data from the respective sequential and random closed block pools to the MLC portions. The sequential data are relocated prior to the random data. Delaying relocation of random data reduces valid count at the relocation time, reducing write amplification and improving random reads.
Claims20
A storage device, comprising:
- a memory comprising single-level cell (SLC) and multi-level cell (MLCs) portions;
- and
- a controller configured to allocate a first closed block pool for sequential data and a second closed block pool for random data, to relocate the sequential data in one of the SLC portions from the first closed block pool to the MLC portions, and to relocate the random data in another one of the SLC portions from the second closed block pool to the MLC portions, wherein the sequential data is relocated prior to the random data.
A storage device, comprising:
- a memory comprising single-level cell (SLC) and multi-level cell (MLC) portions;
- and
- a controller configured to write random data to one of the SLC portions in a random data block and to write sequential data to another of the SLC portions in a sequential data block, and to relocate the sequential data in the sequential data block to the MLC portions prior to relocating the random data in the random data block to the MLC portions.
A storage device, comprising:
- a memory comprising a plurality of first memory locations and a plurality of second memory locations;
- a controller configured to write random data to one of the first memory locations and sequential data to another of the first memory locations, and upon determining that an amount of valid data in the another of the first memory locations meets a threshold, to relocate the sequential data to the plurality of second memory locations prior to relocating the random data.
Dependencies are inferred from the claim text.