IP Library Granted Patent US 10,635,355
Granted Patent B1
US 10,635,355 · App. 16/189,963 · Granted Apr 28, 2020

Bandwidth limiting in solid state drives

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,635,355
App. No.
16/189,963
Granted
Apr 28, 2020
Kind
B1
Abstract

The present disclosure generally relates to limiting bandwidth in storage devices. One or more bandwidth quality of services levels may be selected and associated with commands according to service level agreements, which may prioritize some commands over others. A storage device fetches and executes one or more the commands. Each of the commands is associated with a bandwidth quality of service level. After executing the commands and transferring the data to a host device, the storage device may delay writing a completion entry corresponding to the executed commands to a completion queue based on the associated bandwidth quality of service level of the commands. The device may then delay revealing the completion entry by delaying updating a completion queue head pointer. The device may further delay sending an interrupt signal to the host device based on the associated bandwidth quality of service level of the commands.

Claims (36)

1. A method of operating a storage device, comprising:

executing, by a controller of the storage device, a command associated with a bandwidth quality-of-service level, wherein the command is executed at full speed;

delaying writing a completion entry corresponding to the executed command for a predetermined amount of time, wherein the predetermined amount of time is based on the associated bandwidth quality-of-service level; and

triggering the completion entry corresponding to the executed command to be written to a completion queue, wherein the writing of the completion entry to the completion queue is triggered after the predetermined amount of time is met.

2. The method of claim 1 , further comprising receiving a doorbell signaling the command is present in a submission queue prior to executing the command.

3. The method of claim 2 , further comprising fetching the command from the submission queue prior to executing the command at full speed.

4. The method of claim 1 , wherein the associated bandwidth quality-of-service level of the command determines the priority of the command.

5. The method of claim 4 , wherein the predetermined amount of time is longer for lower priority bandwidth quality-of-service levels than higher priority bandwidth quality-of-service levels.

6. The method of claim 1 , wherein the predetermined amount of time is based on a countdown, a count up, or timer.

7. The method of claim 1 , further comprising delaying updating a completion queue head pointer to point to the completion entry for a predetermined amount of time, wherein the predetermined amount of time is based on the associated bandwidth quality-of-service level.

8. A storage device, comprising:

one or more memory devices; and

a controller coupled to the one or more memory devices, wherein the controller is configured to:

fetch a first command associated with a first bandwidth and first a quality-of-service level and a second command associated with a second bandwidth and a second quality-of-service level from a submission queue at full speed, the first bandwidth and the first quality-of-service level having a lower priority rank than the second bandwidth and the second quality-of-service level;

execute the first command and the second command at full speed in the order in which the first and second commands were fetched;

write a first completion entry corresponding to the first executed command and a second completion entry corresponding to the second executed command to a completion queue; and

delay sending an interrupt signal indicating the completion queue is ready to be read, wherein the delay is based on the second bandwidth and the second quality-of-service level associated with the second command.

9. The storage device of claim 8 , wherein the associated bandwidth and quality-of-service level of a fetched command determines the priority of the fetched command.

10. The storage device of claim 9 , wherein the controller comprises a settings page, the settings page determining one or more bandwidth quality-of-service levels.

11. The storage device of claim 10 , wherein the one or more bandwidth and quality-of-service levels are based on one or more of a time of day, a customer number, a quantity of commands previously retrieved, and available bandwidth.

12. The storage device of claim 10 , wherein the delay is longer for lower priority bandwidth quality-of-service levels than higher priority bandwidth and quality-of-service levels.

13. The storage device of claim 8 , wherein the delay is further based on one or more of a countdown timer, a counter of a number of commands executed, available bandwidth, and a number of commands in the submission queue.

14. The storage device of claim 8 , further comprising a bandwidth limiter coupled to the controller.

15. A storage device, comprising:

one or more memory devices;

means for executing a command associated with a bandwidth quality-of-service level, wherein the command is executed at full speed;

means for delaying writing a completion entry corresponding to the executed command for a predetermined amount of time, wherein the predetermined amount of time is based on the associated bandwidth quality-of-service level;

means for triggering the completion entry corresponding to the executed command to be written to a completion queue, wherein the writing of the completion entry to the completion queue is triggered after the predetermined amount of time is met; and

means for delaying sending an interrupt signal indicating the completion queue is ready to be read, wherein the delay is based on the associated bandwidth quality-of-service level of the command.

16. The storage device of claim 15 , wherein the associated bandwidth quality-of-service level of the command determines the priority of the command, and wherein the associated bandwidth quality-of-service level is based on one or more of a time of day, a customer number, a quantity of commands previously retrieved, and available bandwidth.

17. The storage device of claim 15 , further comprising means for delaying updating a completion queue head pointer to point to the completion entry for a predetermined amount of time, wherein the predetermined amount of time is based on the associated bandwidth quality-of-service level.

18. The storage device of claim 15 , wherein the predetermined amount of time is longer for lower priority bandwidth quality-of-service levels than higher priority bandwidth quality-of-service levels, and wherein the predetermined amount of time is based on a countdown, a count up, or timer.

19. The storage device of claim 15 , wherein the delay of the sending of the interrupt signal is longer for lower priority bandwidth quality-of-service levels than higher priority bandwidth quality-of-service levels, and wherein the delay of the sending of the interrupt signal is further based on one or more of a countdown timer, a counter of a number of commands executed, available bandwidth, and a number of commands in the submission queue.

20. The storage device of claim 15 , further comprising:

means for receiving a doorbell signaling the command is present in a submission queue prior to executing the command; and

means for fetching the command from the submission queue prior to executing the command at full speed.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2018
From: HELMICK, DANIEL; WALSH, JAMES
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047548/0114 →