IP Library Granted Patent US 10,915,443
Granted Patent B2
US 10,915,443 · App. 16/662,504 · Granted Feb 9, 2021

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 10,915,443
App. No.
16/662,504
Granted
Feb 9, 2021
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 controller operatively coupled to the memory devices, the controller configured to: determine a first value of a data stream attribute associated with a first data stream; determine a second value of the data stream attribute associated with the second data stream; determine, based on the first value and the second value, a first overprovisioning factor associated with the first data stream and a second overprovisioning factor associated with the second data stream, wherein the first overprovisioning factor and the second overprovisioning factor are calculated to provide a uniform distribution of valid translation unit counts (VTCs) across the first data stream and the second data stream; and allocate, based on the first overprovisioning factor and the second overprovisioning factor, a first plurality of overprovisioned blocks to the first data stream and a second plurality of overprovisioned blocks to the second data stream.

Claims (55)

1. A storage system, comprising:

a plurality of memory devices;

a controller operatively coupled to the memory devices, the controller configured to:

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

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

determine, based on the first value and the second value, a first overprovisioning factor associated with the first data stream and a second overprovisioning factor associated with the second data stream, wherein the first overprovisioning factor and the second overprovisioning factor are calculated to provide a uniform distribution of valid translation unit counts (VTCs) across the first data stream and the second data stream; and

allocate, based on the first overprovisioning factor and the second overprovisioning factor, a first plurality of overprovisioned blocks to the first data stream and a second plurality of overprovisioned blocks to the second 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 first 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 controller is further to:

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

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

receive a data item associated with the first data stream;

identify, using the memory data structure, a physical block for storing a 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 controller is further to:

identify, among a plurality of physical blocks of the first 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 storage system controller, a first value of a data stream attribute associated with a first data stream;

determining a second value of the data stream attribute associated with a second data stream;

determining, based on the first value and the second value, a first overprovisioning factor associated with the first data stream and a second overprovisioning factor associated with the second data stream, wherein the first overprovisioning factor and the second overprovisioning factor are calculated to provide a uniform distribution of valid translation unit counts (VTCs) across the first data stream and the second data stream; and

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

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

10. The method of claim 8 , wherein the first 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 first data stream, wherein the plurality of physical blocks includes a plurality of overprovisioned blocks allocated based on the first overprovisioning factor.

12. The method of claim 11 , further comprising:

receiving a data item associated with the first data stream;

identifying, using the memory data structure, a physical block for storing a 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 first 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, cause the processor to:

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

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

determine, based on the first value and the second value, a first overprovisioning factor associated with the first data stream and a second overprovisioning factor associated with the second data stream, wherein the first overprovisioning factor and the second overprovisioning factor are calculated to provide a uniform distribution of valid translation unit counts (VTCs) across the first data stream and the second data stream; and

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

16. The computer-readable non-transitory storage medium of claim 15 , wherein at least one memory device of a 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 first 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 first data stream, wherein the plurality of physical blocks includes a plurality of overprovisioned blocks allocated based on the first 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 first data stream;

identify, using the memory data structure, a physical block for storing a 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 first 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2019
From: BAHIRAT, SHIRISH D.; AKIN, WILLIAM; KULKARNI, ADITI P.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050824/0127 →
Continuity (2)
Continuation 15985167 · May 21, 2018
Related Publication 20200057716A1 · Feb 20, 2020