IP Library Granted Patent US 9,959,060
Granted Patent B1
US 9,959,060 · App. 14/825,537 · Granted May 1, 2018

Data separation during host write with storage allocated based on traffic profiles

Inventors: Xiangyu Tang (San Jose, CA); Lingqi Zeng (San Jose, CA)
Assignee: SK Hynix Inc.
G06F3/0619G06F3/061G06F3/065G06F3/0655G06F3/0679G06F2206/1014
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 9,959,060
App. No.
14/825,537
Granted
May 1, 2018
Kind
B1
Abstract

A plurality of traffic profiles is determined for a plurality of traffic groups where each traffic profile includes a share of traffic and an address footprint size associated with a corresponding traffic group. A host write is received from a host and the traffic group that the host write belongs to is identified. Write data associated with the host write is stored in the solid state storage allocated to the traffic group that the host write is identified as belonging to where the amount of solid state storage allocated to each of the plurality of traffic groups is based at least in part on the traffic profile of a given traffic group.

Claims (71)

1. A system, comprising:

a host traffic profiler configured to determine a plurality of traffic profiles for a plurality of traffic groups, and to perform a decaying process triggered when at least one or more decaying criteria is met, wherein each traffic profile includes a share of traffic and an address footprint size associated with a corresponding traffic group, the decaying process reduces at least all host write counters, all cluster maximums, and all cluster means, and the decaying criteria includes one or more of the following:

an absolute value of a difference between: (1) a first cluster maximum and (2) a second cluster maximum is less than a threshold; or

an absolute value of a difference between: (1) a first cluster mean and (2) a second cluster mean is less than a threshold;

a host interface configured to receive a host write from a host;

a host traffic separator configured to identify which one of the plurality of traffic groups the host write belongs to; and

a storage interface configured to store write data associated with the host write in a solid state storage allocated to the traffic group that the host write is identified as belonging to, wherein the amount of the solid state storage allocated to each of the plurality of traffic groups is adjustable based at least in part on the traffic profile of a given traffic group.

2. The system recited in claim 1 , wherein the system includes a semiconductor device, including one or more of the following: a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).

3. The system recited in claim 1 , wherein the plurality of traffic groups include one or more of the following: a hot data group, a warm data group, or a cold data group.

4. The system recited in claim 1 , wherein the plurality of traffic groups is associated with a traffic type and include one or more of the following: OS traffic, file system traffic, journaling traffic, or compaction traffic.

5. The system recited in claim 1 , wherein a plurality of logical block addresses share a host write counter and the host write includes a sequential write.

6. The system recited in claim 5 , wherein the host traffic profiler is further configured to:

discard all logical block addresses other than a first logical block address in the sequential write;

determine a shared host write counter that corresponds to the first logical block address;

determine if the shared host write counter is saturated; and

in the event it is determined that the shared host write counter is not saturated:

increment the shared host write counter;

determine which traffic group in the plurality of traffic groups the first logical block address belongs to; and

update a cluster maximum and a cluster mean associated with the traffic group the first logical block address belongs to.

7. The system recited in claim 1 further comprising a garbage collector configured to:

determine if there are one or more traffic groups with too much storage; and

in the event it is determined that there are one or more traffic groups with too much storage:

select one of the one or more traffic groups with too much storage;

select a closed block from the selected traffic group to be a source block;

select an empty block from a free block pool to be a destination block;

copy all valid pages from the source block to the destination block;

erase the source block; and

allocate the erased source block to the free block pool.

8. The system recited in claim 1 , wherein:

a first traffic group, in the plurality of traffic groups, is associated with one or more saturated host write counts; and

the host traffic profiler is further configured to update the plurality of traffic groups using k-means grouping, including by replacing the one or more saturated host write counts with an unsaturated host write count mean before being input to the k-means grouping.

9. A method, comprising:

using a processor to determine a plurality of traffic profiles for a plurality of traffic groups, wherein each traffic profile includes a share of traffic and an address footprint size associated with a corresponding traffic group;

receiving a host write from a host;

identifying which one of the plurality of traffic groups the host write belongs to;

performing a decaying process triggered when at least one or more decaying criteria is met, wherein the decaying process reduces at least all host write counters, all cluster maximums, and all cluster means, the decaying criteria includes one or more of the following:

an absolute value of a difference between: (1) a first cluster maximum and (2) a second cluster maximum is less than a threshold; or

an absolute value of a difference between: (1) a first cluster mean and (2) a second cluster mean is less than a threshold; and

storing write data associated with the host write in a solid state storage allocated to the traffic group that the host write is identified as belonging to, wherein the amount of the solid state storage allocated to each of the plurality of traffic groups is adjustable based at least in part on the traffic profile of a given traffic group.

10. The method recited in claim 9 , wherein the method is performed by a semiconductor device, including one or more of the following: a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).

11. The method recited in claim 9 , wherein the plurality of traffic groups include one or more of the following: a hot data group, a warm data group, or a cold data group.

12. The method recited in claim 9 , wherein the plurality of traffic groups is associated with a traffic type and include one or more of the following: OS traffic, file system traffic, journaling traffic, or compaction traffic.

13. The method recited in claim 9 , wherein a plurality of logical block addresses share a host write counter and the host write includes a sequential write.

14. The method recited in claim 13 further comprising:

discarding all logical block addresses other than a first logical block address in the sequential write;

determining a shared host write counter that corresponds to the first logical block address;

determining if the shared host write counter is saturated; and

in the event it is determined that the shared host write counter is not saturated:

incrementing the shared host write counter;

determining which traffic group in the plurality of traffic groups the first logical block address belongs to; and

updating a cluster maximum and a cluster mean associated with the traffic group the first logical block address belongs to.

15. The method recited in claim 9 further comprising:

determining if there are one or more traffic groups with too much storage; and

in the event it is determined that there are one or more traffic groups with too much storage:

selecting one of the one or more traffic groups with too much storage;

selecting a closed block from the selected traffic group to be a source block;

selecting an empty block from a free block pool to be a destination block;

copying all valid pages from the source block to the destination block;

erasing the source block; and

allocating the erased source block to the free block pool.

16. The method recited in claim 9 , wherein:

a first traffic group, in the plurality of traffic groups, is associated with one or more saturated host write counts; and

the method further includes updating the plurality of traffic groups using k-means grouping, including by replacing the one or more saturated host write counts with an unsaturated host write count mean before being input to the k-means grouping.

17. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

determining a plurality of traffic profiles for a plurality of traffic groups, wherein each traffic profile includes a share of traffic and an address footprint size associated with a corresponding traffic group;

receiving a host write from a host;

identifying which one of the plurality of traffic groups the host write belongs to;

performing a decaying process triggered when at least one or more decaying criteria is met, wherein the decaying process reduces at least all host write counters, all cluster maximums, and all cluster means, and the decaying criteria includes one or more of the following:

an absolute value of a difference between: (1) a first cluster maximum and (2) a second cluster maximum is less than a threshold; or

an absolute value of a difference between: (1) a first cluster mean and (2) a second cluster mean is less than a threshold; and

storing write data associated with the host write in a solid state storage allocated to the traffic group that the host write is identified as belonging to, wherein the amount of the solid state storage allocated to each of the plurality of traffic groups is adjustable based at least in part on the traffic profile of a given traffic group.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2018
From: TANG, XIANGYU; ZENG, LINGQI
To: SK HYNIX INC.
Reel/Frame 045328/0820 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX INC.
Reel/Frame 044899/0443 →
Continuity (1)
Provisional Application 62050947 · Sep 16, 2014