IP Library Granted Patent US 10,528,462
Granted Patent B2
US 10,528,462 · App. 15/276,696 · Granted Jan 7, 2020

Storage device having improved write uniformity stability

Inventor: Anand S. Ramalingam (Beverton, OR)
Assignee: Intel Corporation
G06F12/0246G06F3/0652G06F3/0659G06F3/0679G06F2212/7211
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,528,462
App. No.
15/276,696
Granted
Jan 7, 2020
Kind
B2
Abstract

A machine readable storage medium containing program code that when processed by a processor causes a method to be performed a method is described. The method includes executing a wear leveling routine by servicing cold data from a first queue in a non volatile storage device to write the cold data. The method also includes executing a garbage collection routing by servicing valid data from a second queue in the non volatile storage device to write the valid data. The method also includes servicing host write data from a third queue in the non volatile storage device to write the host write data wherein the first queue remains fixed and is serviced at a constant rate so that a runtime size of the third queue is not substantially affected by the wear leveling routine.

Claims (52)

1. A non-transitory machine readable storage medium containing program code that when processed by a processor causes a method to be performed, the method comprising:

executing a wear leveling routine by servicing cold data from a first queue in a non-volatile storage device to write the cold data;

executing a garbage collection routine by servicing valid data from a second queue in the non-volatile storage device to write the valid data; and,

servicing host write data from a third queue in the non-volatile storage device to write the host write data wherein:

the first, second, and third queues are implemented in a common memory;

a total maximum servicing bandwidth of the first, second and third queues is X MB/s;

a first amount of servicing bandwidth y is assigned to the first queue;

a remaining amount of servicing bandwidth is assigned to the second and third queues such that a total maximum servicing bandwidth of the second and third queues is (X−y) MB/s; and

y is fixed to prevent expansion of a first size of the first queue at the expense of a second size of the third queue thereby allowing the third queue to receive requests from a host at a constant rate over time.

2. The non-transitory machine readable storage medium of claim 1 wherein the non-volatile storage device is a solid state disk (SSD) device.

3. The non-transitory machine readable storage medium of claim 1 wherein the method further comprises changing a size of the second and third queues as a function of a write amplification determination.

4. The non-transitory machine readable storage medium of claim 1 wherein the common memory is local to the non-volatile storage device.

5. The non-transitory machine readable storage medium of claim 4 wherein the common memory comprises dynamic random access memory (DRAM).

6. The non-transitory machine readable storage medium of claim 1 wherein the non-volatile storage device comprises FLASH non-volatile memory devices.

7. The non-transitory machine readable storage medium of claim 1 wherein the non-volatile storage device comprises three dimensional non-volatile memory devices.

8. An apparatus, comprising:

a non-volatile storage device comprising a) and b) below:

a) a plurality of non-volatile memory devices;

b) controller circuitry, the controller circuitry to perform the following:

execute a wear leveling routine by servicing cold data from a first queue in a non-volatile storage device to write the cold data;

execute a garbage collection routine by servicing valid data from a second queue in the non-volatile storage device to write the valid data; and,

service host write data from a third queue in the non-volatile storage device to write the host write data wherein:

the first, second, and third queues are implemented in a common memory;

a total maximum servicing bandwidth of the first, second and third queues is X MB/s;

a first amount of servicing bandwidth y is assigned to the first queue;

a remaining amount of servicing bandwidth is assigned to the second and third queues such that a total maximum servicing bandwidth of the second and third queues is (X−y) MB/s; and

y is fixed to prevent expansion of a first size of the first queue at the expense of a second size of the third queue thereby allowing the third queue to receive requests from a host at a constant rate over time.

9. The apparatus of claim 8 wherein the non-volatile storage device is a solid state disk (SSD) device.

10. The apparatus of claim 8 wherein the controller is to change a size of the second and third queues as a function of a write amplification determination.

11. The apparatus of claim 8 wherein the common memory is local to the non-volatile storage device.

12. The apparatus of claim 11 wherein the common memory comprises dynamic random access memory (DRAM).

13. The apparatus of claim 8 wherein the non-volatile storage device comprises FLASH non-volatile memory devices.

14. The apparatus of claim 8 wherein the non-volatile storage device comprises three dimensional non-volatile memory devices.

15. A computing system, comprising:

a plurality of processing cores;

a networking interface;

a non-volatile storage device comprising a) and b) below:

a) a plurality of non-volatile memory devices;

b) controller circuitry, the controller circuitry to perform the following:

execute a wear leveling routine by servicing cold data from a first queue in a non-volatile storage device to write the cold data;

execute a garbage collection routine by servicing valid data from a second queue in the non-volatile storage device to write the valid data; and,

service host write data from a third queue in the non-volatile storage device to write the host write data wherein:

the first, second, and third queues are implemented in a common memory;

a total maximum servicing bandwidth of the first, second and third queues is X MB/s;

a first amount of servicing bandwidth y is assigned to the first queue;

a remaining amount of servicing bandwidth is assigned to the second and third queues such that a total maximum servicing bandwidth of the second and third queues is (X−y) MB/s; and

y is fixed to prevent expansion of a first size of the first queue at the expense of a second size of the third queue thereby allowing the third queue to receive requests from a host at a constant rate over time.

16. The computing system of claim 15 wherein the non-volatile storage device is a solid state disk (SSD) device.

17. The computing system of claim 15 wherein the controller is 10 change a size of the second and third queues as a function of a write amplification determination.

18. The computing system of claim 15 wherein the common memory is local to the non-volatile storage device.

19. The computing system of claim 15 wherein the non-volatile storage device comprises FLASH non-volatile memory devices.

20. The computing system of claim 15 wherein the non-volatile storage device comprises three dimensional non-volatile memory devices.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 063815/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2017
From: RAMALINGAM, ANAND S.
To: INTEL CORPORATION
Reel/Frame 041680/0572 →
Continuity (1)
Related Publication 20180088810A1 · Mar 29, 2018