IP Library › Granted Patent US 11,307,806
Granted Patent B2
US 11,307,806 · App. 16/936,348 · Granted Apr 19, 2022

Controlling SSD performance by queue depth

Inventors: Shuhei Tanakamaru (San Jose, CA); Ryan James Goss (Prior Lake, MN); Dana Lynn Simonson (Owatonna, MN); Erich Franz Haratsch (San Jose, CA)
Assignee: SEAGATE TECHNOLOGY LLC
G06F3/0659G06F3/0614G06F3/0629G06F3/0653G06F3/0679G06F2212/7202
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,307,806
App. No.
16/936,348
Granted
Apr 19, 2022
Kind
B2
Abstract

Improving performance in solid state devices (SSDs) by controlling or throttling the depth of the request queue. In one implementation, a method includes monitoring a request queue in a solid state device (an SSD), the request queue comprising a first request and a second request having an actual time interval therebetween, determining a queue depth for the request queue, determining a target interval based on the queue depth and a target queue depth, and responsive to the actual time interval being less than the target interval, delaying acting on the second request until after the target interval.

Claims (26)

1. A method comprising:

monitoring a request queue in a solid state device (an SSD), the request queue comprising a first request and a second request having an actual time interval therebetween;

determining a queue depth for the request queue;

determining a target interval by calculating a normalized difference in queue depth based on the queue depth and a target queue depth;

modifying the target interval based on the normalized difference in queue depth to a modified target interval; and

responsive to the actual time interval being less than the modified target interval, delaying acting on the second request until after the modified target interval.

2. The method of claim 1 , wherein:

determining the queue depth for the request queue comprises determining an average queue depth for the request queue; and

determining the target interval based on the queue depth and the target queue depth comprises determining the target interval based on the average queue depth and the target queue depth.

3. The method of claim 2 , wherein the average queue depth is an arithmetic mean, moving average, or exponential moving average based on the queue depth.

4. The method of claim 1 , wherein the target interval is adaptive based on an adaptive queue depth.

5. The method of claim 1 , wherein the queue depth is an adaptive average queue depth and the target interval is adaptive based on the adaptive average queue depth.

6. The method of claim 1 , wherein modifying the target interval includes modifying the target interval based on the normalized difference in queue depth and a coefficient.

7. A method comprising:

monitoring a request queue to a semiconductor storage device (an SSD), the request queue having a depth and comprising at least a first request, a second request, and an outgoing interval between the requests; and

responsive to the outgoing interval being less than a target interval based on a normalized difference of a target queue depth and the queue depth, setting an actual outgoing interval to be no less than the target interval and acting on the second request after expiration of the target interval.

8. The method of claim 7 , wherein the target interval is based on the normalized difference of the target queue depth and an average queue depth over time.

9. The method of claim 8 , wherein the average queue depth is an arithmetic mean, moving average, or exponential moving average based on the queue depth.

10. The method of claim 7 , wherein the queue depth is an adaptive average queue depth and the target interval is adaptive based on the adaptive average queue depth.

11. A system comprising:

a solid state device (SSD) and a host; and

an interval throttling module stored in memory and implemented by a processor, the interval throttling module located in a data request completion path of the system and comprising a queue memory unit, a delay unit configured to delay acting on a second request if an outgoing interval between a first request and the second request is less than a target interval, and a calculator unit configured to dynamically adjust the target interval based on a normalized difference of a queue depth and a throttle queue depth.

12. The system of claim 11 , wherein the interval throttling module is located in the SSD.

13. The system of claim 12 , wherein the interval throttling module is located between a back-end controller and a front-end controller.

14. The system of claim 12 , wherein the interval throttling module is located between a back-end controller and Flash memory.

15. The system of claim 11 , wherein the interval throttling module is located between the SSD and the host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2022
From: TANAKAMARU, SHUHEI; GOSS, RYAN JAMES; SIMONSON, DANA LYNN; HARATSCH, ERICH FRANZ
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 059253/0746 →
Continuity (1)
Related Publication 20220027084A1 · Jan 27, 2022
Cited By (2)
US 12,493,433 US 12,591,391