IP Library Granted Patent US 11,429,521
Granted Patent B2
US 11,429,521 · App. 17/127,437 · Granted Aug 30, 2022

Allocation of overprovisioned blocks for minimizing write amplification in solid state drives

Inventors: Shirish D. Bahirat (Longmont, CO); William Akin (Morgan Hill, CA); Aditi P. Kulkarni (Boulder, CO)
Assignee: MICRON TECHNOLOGY, INC.
G06F12/0246G06F3/064G06F3/0679G06F12/0253G06F2212/7201
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 11,429,521
App. No.
17/127,437
Granted
Aug 30, 2022
Kind
B2
Abstract

Systems and methods for allocation of overprovisioned blocks for minimizing write amplification in solid state drives are disclosed. An example system comprises: a plurality of memory devices and a processing device operatively coupled to the memory devices, the controller configured to: determine a value of a data stream attribute associated with a data stream; determine, based on the value of the data stream attribute, an overprovisioning factor associated with the data stream, wherein the overprovisioning factor is calculated to provide a uniform distribution of valid translation unit counts (VTCs) across the data stream; and allocate, based on the overprovisioning factor, a plurality of overprovisioned blocks to the data stream.

Claims (52)

1. A storage system, comprising:

a plurality of memory devices;

a processing device operatively coupled to the memory devices, the processing device configured to:

determine a value of a data stream attribute associated with a data stream;

determine, based on the value of the data stream attribute, an overprovisioning factor associated with the data stream, wherein the overprovisioning factor is calculated to provide a uniform distribution of valid translation unit counts (VTCs) across the plurality of memory devices; and

allocate, based on the overprovisioning factor, a plurality of overprovisioned blocks to the data stream.

2. The storage system of claim 1 , wherein at least one memory device of the plurality of memory devices is provided by a negative-and (NAND) flash memory device.

3. The storage system of claim 1 , wherein the overprovisioning factor is represented by a ratio of a number of physical memory blocks to a number of logical memory blocks presented as available memory to a host in communication with the storage system.

4. The storage system of claim 1 , wherein the processing device is further to:

maintain a memory data structure associating a plurality of physical blocks with the data stream, wherein the plurality of physical blocks includes a plurality of overprovisioned blocks allocated based on the overprovisioning factor.

5. The storage system of claim 4 , wherein the processing device is further to:

receive a data item associated with the data stream;

identify, using the memory data structure, a physical block for storing the data stream; and

transmit, to a memory device holding the identified physical block, an instruction specifying the data item.

6. The storage system of claim 1 , wherein the data stream attribute reflects an expected media usage pattern.

7. The storage system of claim 1 , wherein the processing device is further to:

identify, among a plurality of physical blocks of the data stream, a first physical block having a minimum number of valid VTCs;

copy valid VTCs of the first physical block to a second physical block; and

erase the first physical block.

8. A method, comprising:

determining, by a processing device managing a plurality of memory devices, a value of a data stream attribute associated with a data stream;

determining, based on the value of the data stream attribute, an overprovisioning factor associated with the data stream, wherein the overprovisioning factor is calculated to provide a uniform distribution of valid translation unit counts (VTCs) across the plurality of memory devices; and

allocating, based on the overprovisioning factor, a plurality of overprovisioned blocks to the data stream.

9. The method of claim 8 , wherein at least one memory device of the plurality of memory devices is provided by a negative-and (NAND) flash memory device.

10. The method of claim 8 , wherein the overprovisioning factor is represented by a ratio of a number of physical memory blocks to a number of logical memory blocks presented as available memory to a host in communication with a storage system.

11. The method of claim 8 , further comprising:

maintaining a memory data structure associating a plurality of physical blocks with the data stream, wherein the plurality of physical blocks includes a plurality of overprovisioned blocks allocated based on the overprovisioning factor.

12. The method of claim 11 , further comprising:

receiving a data item associated with the data stream;

identifying, using the memory data structure, a physical block for storing the data stream; and

transmitting, to a memory device holding the identified physical block, an instruction specifying the data item.

13. The method of claim 8 , wherein the data stream attribute reflects an actual media usage pattern.

14. The method of claim 8 , further comprising:

identifying, among a plurality of physical blocks of the data stream, a first physical block having a minimum number of valid VTCs;

copying valid VTCs of the first physical block to a second physical block; and

erasing the first physical block.

15. A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a processor managing a plurality of memory devices, cause the processor to:

determine a value of a data stream attribute associated with a data stream;

determine, based on the value of the data stream attribute, an overprovisioning factor associated with the data stream, wherein the overprovisioning factor is calculated to provide a uniform distribution of valid translation unit counts (VTCs) across the plurality of memory devices; and

allocate, based on the overprovisioning factor, a plurality of overprovisioned blocks to the data stream.

16. The computer-readable non-transitory storage medium of claim 15 , wherein at least one memory device of the plurality of memory devices is provided by a negative-and (NAND) flash memory device.

17. The computer-readable non-transitory storage medium of claim 15 , wherein the overprovisioning factor is represented by a ratio of a number of physical memory blocks to a number of logical memory blocks presented as available memory to a host in communication with a storage system.

18. The computer-readable non-transitory storage medium of claim 15 , further comprising executable instructions that, when executed by the processor, cause the processor to:

maintain a memory data structure associating a plurality of physical blocks with the data stream, wherein the plurality of physical blocks includes a plurality of overprovisioned blocks allocated based on the overprovisioning factor.

19. The computer-readable non-transitory storage medium of claim 18 , further comprising executable instructions that, when executed by the processor, cause the processor to:

receive a data item associated with the data stream;

identify, using the memory data structure, a physical block for storing the data stream; and

transmit, to a memory device holding the identified physical block, an instruction specifying the data item.

20. The computer-readable non-transitory storage medium of claim 15 , further comprising executable instructions that, when executed by the processor, cause the processor to:

identify, among a plurality of physical blocks of the data stream, a first physical block having a minimum number of valid VTCs;

copy valid VTC of the first physical block to a second physical block; and

erase the first physical block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2020
From: BAHIRAT, SHIRISH D.; AKIN, WILLIAM; KULKARNI, ADITI P.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 054705/0929 →
Continuity (3)
Continuation 16662504 · Oct 24, 2019
Continuation 15985167 · May 21, 2018
Related Publication 20210103519A1 · Apr 8, 2021