# US 9,519,429 B2 · Techniques to manage multiple sequential write streams to a solid state drive

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,429 B2
- Document ID: US9519429B2
- Status: Granted
- Kind: B2
- Application number: 14/565,319
- Filed: 2014-12-09
- Published: 2016-06-09
- Granted: 2016-12-13
- Earliest claimed: 2014-12-09
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Knut S. Grimsrud
- Web page: https://patentgrep.com/patent/US9519429B2

## CPC

- G06F 3/0613: {in relation to throughput}
- G06F 3/0643: {Management of files}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/1016: Performance improvement
- G06F 2212/1036: Life time enhancement
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Examples may include techniques to manage multiple sequential write streams to a solid state drive (SSD). Wrap around times for each sequential write stream may be determined. Respective wrap around times for each sequential write stream may be changed for at least some of the sequential write streams to cause the multiple sequential write streams to have matching wrap around times.

## Claims

### Claim 1

An apparatus comprising:
circuitry for a host computing platform coupled with a solid state drive (SSD);
a monitor module for execution by the circuitry to monitor separate write rates for each sequential write stream of a multitude of sequential write streams merged for writing to the SSD over a first time interval;
a time module for execution by the circuitry to determine separate wrap around times for each sequential write stream based on respective monitored separate write rates by the monitor module; and
a match module for execution by the circuitry to cause the separate wrap around times for each sequential write stream to substantially match for subsequent writes to the SSD following the first time interval.

### Claim 2 (depends on 1)

The apparatus of claim 1, the time module to determine separate wrap around times based on a given wrap around time being a time difference between a first time data is written to a given block of memory at the SSD and a second time for which the data is invalidated.

### Claim 3 (depends on 1)

The apparatus of claim 1, the multitude of sequential write streams generated by one or more file systems implemented by an operating system of the host computing platform, the one or more file systems capable of using write-append techniques to write data to a memory of the host computing platform and then cause the write-appended data to be written to the SSD via the multitude of sequential write streams.

### Claim 4 (depends on 3)

The apparatus of claim 3, the operating system executed by the circuitry for the host computing platform, the monitor module, the time module and the match module comprising a scheduler implemented by the operating system, the scheduler capable of merging the multitude of sequential write streams for writing to the SSD.

### Claim 5 (depends on 1)

The apparatus of claim 1, comprising the match module to cause the separate wrap around times for each sequential write stream to substantially match such that a ratio of actual writes to the SSD to writes from the multitude of sequential write streams is substantially equal to a value of 1.0.

### Claim 6 (depends on 1)

The apparatus of claim 1, the match module to cause the separate wrap around times for each sequential write stream to substantially match comprises the match module to cause a load balancing of an amount of data to be written to the SSD over a second time interval between the multitude of sequential write streams such that first and second write streams of the multitude of sequential write streams having different write rates are load-balanced by the match module to cause the amount of data to be written to the SSD by the respective first and second write streams over the second time interval to be adjusted, the adjusted amount of data to cause the wrap around times to substantially match for the first and second write streams.

### Claim 7 (depends on 1)

The apparatus of claim 1, the match module to cause the separate wrap around times for each sequential write stream to substantially match comprises the match module to cause a throttling of write rates for at least some write streams of the multitude of sequential write streams such that a first write stream of the multitude of sequential write streams having a shorter first wrap around time compared to a second write stream of the multitude of sequential write streams has a throttled write rate to cause the wrap around times to substantially match for the first and second write streams.

### Claim 8 (depends on 1)

The apparatus of claim 1, the match module to cause the separate wrap around times for each sequential write stream to substantially match comprises the match module to cause an adjustment to allocated portions allocated to each sequential write stream merged for writing to the SSD such that a larger portion is allocated to a first write stream of the multitude of sequential write streams that has a shorter determined wrap around time compared to a second write stream of the multitude of sequential write streams, the larger allocated portion to the first write stream to cause the wrap around times to substantially match for the first and second write streams.

### Claim 9 (depends on 8)

The apparatus of claim 8, comprising:
the monitor module to monitor separate write rates for each sequential write stream of the multitude of sequential write streams merged for writing to the SSD over a second time interval;
the time module to determine a second set of separate wrap around times for each sequential write stream based on respective monitored separate write rates over the second time interval by the monitor module; and
the match module to cause the second set of separate wrap around times for each sequential write stream to substantially match for writes to the SSD following the second time interval.

### Claim 10 (depends on 1)

The apparatus of claim 1, comprising the SSD including at least one of 3-dimensional cross-point memory, flash memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, polymer memory, nanowire, ferroelectric transistor random access memory (FeTRAM or FeRAM), nanowire or electrically erasable programmable read-only memory (EEPROM).

### Claim 11

A method comprising:
monitoring separate write rates to a solid state drive (SSD) for each sequential write stream of a multitude of sequential write streams merged for writing to the SSD over a first time interval;
determining separate wrap around times for each sequential write stream based on respective monitored separate write rates; and
causing the separate wrap around times for each sequential write stream to substantially match for subsequent writes to the SSD following the first time interval.

### Claim 12 (depends on 11)

The method of claim 11, the multitude of sequential write streams generated by one or more file systems implemented by an operating system of the host computing platform, the one or more file systems capable of using write-append techniques to write data to a memory of the host computing platform and then cause the write-appended data to be written to the SSD via the multitude of sequential write streams.

### Claim 13 (depends on 11)

The method of claim 11, comprising causing the separate wrap around times for each sequential write stream to substantially match such that a ratio of actual writes to the SSD to writes from the multitude of sequential write streams is substantially equal to a value of 1.0.

### Claim 14 (depends on 11)

The method of claim 11, causing the separate wrap around times for each sequential write stream to substantially match comprises:
load balancing an amount of data to be written to the SSD over a second time interval between the multitude of sequential write streams such that first and second write streams of the multitude of sequential write streams having different write rates are load-balanced by adjusting the amount of data to be written to the SSD by the respective first and second write streams over the second time interval, the adjusted amount of data capable of causing the wrap around times to substantially match for the first and second write streams.

### Claim 15 (depends on 11)

The method of claim 11, causing the separate wrap around times for each sequential write stream to substantially match comprises:
throttling write rates for at least some write streams of the multitude of sequential write streams such that a first write stream of the multitude of sequential write streams having a shorter first wrap around time compared to a second write stream of the multitude of sequential write streams has a throttled write rate capable of causing the wrap around times to substantially match for the first and second write streams.

### Claim 16 (depends on 11)

The method of claim 11, causing the separate wrap around times for each sequential write stream to substantially match comprises:
adjusting allocated portions allocated to each sequential write stream merged for writing to the SSD such that a larger portion is allocated to a first write stream of the multitude of sequential write streams that has a shorter determined wrap around time compared to a second write stream of the multitude of sequential write streams, the larger allocated portion to the first write stream capable of causing the wrap around times to substantially match for the first and second write streams.

### Claim 17 (depends on 11)

The method of claim 11, comprising:
monitoring separate write rates for each sequential write stream of the multitude of sequential write streams merged for writing to the SSD over a second time interval;
determining a second set of separate wrap around times for each sequential write stream based on respective monitored separate write rates over the second time interval; and
causing the second set of separate wrap around times for each sequential write stream to substantially match for writes to the SSD following the second time interval.

### Claim 18

At least one machine readable medium comprising a plurality of instructions that in response to being executed on system at a host computing platform cause the system to:
monitor separate write rates for each sequential write stream of a multitude of sequential write streams merged for writing to a solid state drive (SSD) coupled with the host computing platform over a first time interval;
determine separate wrap around times for each sequential write stream based on respective monitored separate write rates; and
cause the separate wrap around times for each sequential write stream to substantially match for subsequent writes to the SSD following the first time interval.

### Claim 19 (depends on 18)

The at least one machine readable medium of claim 18, the multitude of sequential write streams generated by one or more file systems implemented by an operating system of the host computing platform, the one or more file systems capable of using write-append techniques to write data to a memory of the host computing platform and then cause the write-appended data to be written to the SSD via the multitude of sequential write streams.

### Claim 20 (depends on 18)

The at least one machine readable medium of claim 18, comprising causing the separate wrap around times for each sequential write stream to substantially match such that a ratio of actual writes to the SSD to writes from the multitude of sequential write streams is substantially equal to a value of 1.0.

### Claim 21 (depends on 18)

The at least one machine readable medium of claim 18, cause the separate wrap around times for each sequential write stream to substantially match comprises the instructions to cause the system to:
load balance an amount of data to be written to the SSD over a second time interval between the multitude of sequential write streams such that first and second write streams of the multitude of sequential write streams having different write rates are load-balanced by adjusting the amount of data to be written to the SSD by the respective first and second write streams over the second time interval, the adjusted amount of data to cause the wrap around times to substantially match for the first and second write streams.

### Claim 22 (depends on 18)

The at least one machine readable medium of claim 18, cause the separate wrap around times for each sequential write stream to substantially match comprises the instructions to cause the system to:
throttle write rates for at least some write streams of the multitude of sequential write streams such that a first write stream of the multitude of sequential write streams having a shorter first wrap around time compared to a second write stream of the multitude of sequential write streams has a throttled write rate to cause the wrap around times to substantially match for the first and second write streams.

### Claim 23 (depends on 18)

The at least one machine readable medium of claim 18, cause the separate wrap around times for each sequential write stream to substantially match comprises the instructions to cause the system to:
adjust allocated portions allocated to each sequential write stream merged for writing to the SSD such that a larger portion is allocated to a first write stream of the multitude of sequential write streams that has a shorter determined wrap around time compared to a second write stream of the multitude of sequential write streams, the larger allocated portion to the first write stream to cause the wrap around times to substantially match for the first and second write streams.

### Claim 24 (depends on 18)

The at least one machine readable medium of claim 18, comprising the instructions to further cause the system to:
monitor separate write rates to the SSD for each sequential write stream of the multitude of sequential write streams merged for writing to the SSD over a second time interval;
determine a second set of separate wrap around times for each sequential write stream based on respective monitored separate write rates over the second time interval; and
cause the second set of separate wrap around times for each sequential write stream to substantially match for writes to the SSD following the second time interval.

### Claim 25 (depends on 18)

The at least one machine readable medium of claim 18, the SSD including at least one of 3-dimensional cross-point memory, flash memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, polymer memory, nanowire, ferroelectric transistor random access memory (FeTRAM or FeRAM), nanowire or electrically erasable programmable read-only memory (EEPROM).
