IP Library Granted Patent US 11,863,623
Granted Patent B2
US 11,863,623 · App. 17/183,826 · Granted Jan 2, 2024

Variable QoS management of multiple data streams

Inventors: Dinesh Kumar Agarwal (Bangalore, IN); Amit Sharma (Bengaluru, IN)
Assignee: Western Digital Technologies, Inc.
H04L67/1097H04L41/22H04L41/5003H04L43/0817H04L43/0852H04L67/125H04L67/61
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,863,623
App. No.
17/183,826
Granted
Jan 2, 2024
Kind
B2
Abstract

Storage devices and systems are capable of dynamically managing QoS requirements associated with host applications via a management interface. The management interface may the enable storage devices to: (i) decide which data needs to be transferred back to the hosts, (ii) choose to skip portions of the data transferred back to the hosts to improve throughput and maintain low cost, and (iii) operate contention resolutions with host applications. Furthermore, storage devices and systems may achieve a virtual throughput that may be greater than its actual physical throughput. The management interface may also be operated at an application level, which advantageously allows the devices and systems the capabilities of managing contention resolutions of host applications, and managing (changing, observing, fetching, etc.) one or more QoS requirements for each host application.

Claims (58)

1. A storage device, comprising:

one or more communication channels suitable for connection with a plurality of host devices;

a plurality of memory devices within a memory array;

a host interface, configured to receive and transmit multiple data streams from and to the plurality of host devices, each data stream having a corresponding service level agreement (SLA) measured by a corresponding quality of service (QoS);

a plurality of controllers configured to receive commands sent from a sending host of the plurality of host devices;

a dynamic management interface, executed by at least one of the plurality of controllers, configured to manage each received data stream with the corresponding QoS and associate each received data stream to the sending host;

a dynamic QoS control module coupled with the dynamic management interface and the host interface;

a contention module configured to prioritize one or more applications having one or more contentions with respect to a plurality of shared resources, wherein the one or more applications are prioritized based on a corresponding QoS requirement;

the contention module coupled with a cache configured to cache data from the data stream, wherein the storage device is configured to manage the cache when there are contentions between the plurality of shared resources;

wherein the one or more applications are added to a shared queue used for scheduling;

wherein upon determining that bandwidth is available, the storage device forwards the received data streams back to the sending host; and

wherein the storage device is configured to:

(i) transfer portions of the data streams where a minimum QoS is 100%;

(ii) skip superfluous portions of the data streams to increase virtual throughput; and

(iii) operate a contention resolution priority queue using a non-volatile memory device.

2. The storage device of claim 1 , wherein the storage device comprises a Solid State Drive (SSD) storage device.

3. The storage device of claim 1 , wherein the plurality of host devices are virtual host devices.

4. The storage device of claim 1 , wherein each data stream corresponds to a partition in the memory array.

5. The storage device of claim 1 , wherein the dynamic management interface is configured to determine one or more minimum QoS requirements for each corresponding QoS of each received data stream.

6. The storage device of claim 5 , wherein the one or more minimum QoS requirements comprises anyone of read bandwidth, read latency, write bandwidth, and write latency requirements.

7. The storage device of claim 1 , wherein the dynamic QoS control module is configured to receive first requests for a first data stream and second requests for a second data stream from the sending host.

8. The storage device of claim 7 , wherein the dynamic QoS control module is configured to acknowledge a total data received from the second requests for the second stream from the sending host.

9. The storage device of claim 7 , wherein the dynamic QoS control module is configured to transfer back to the sending host an actual data for the second stream that is less than the total data received from the second requests for the second stream from the sending host.

10. The storage device of claim 7 , wherein the dynamic QoS control module is operative to schedule the first requests and second requests in a manner that may satisfy a first QoS attribute for the first stream and a second QoS attribute for the second stream.

11. The storage device of claim 6 , wherein each QoS attribute is drawn from at least one or more of the minimum QoS requirements.

12. A storage device, comprising:

one or more communication channels suitable for connection with a plurality of host devices;

a plurality of memory devices within a memory array;

a host interface, configured to receive and transmit multiple data streams from and to the plurality of host devices, each data stream having a corresponding service level agreement (SLA) measured by a corresponding quality of service (QoS);

a plurality of controllers configured to receive commands sent from a sending host of the plurality of host devices;

a dynamic management interface, executed by at least one of the plurality of controllers, configured to manage each received data stream with the corresponding QoS and associate the received data stream to the sending host;

a dynamic QoS control module coupled with the dynamic management interface and the host interface, wherein the dynamic QoS control module is configured to receive first requests for a first data stream and second requests for a second stream from the sending host;

a contention module configured to prioritize one or more data streams of the multiple data streams having one or more contentions with respect to a plurality of shared resources, wherein the one or more data streams are prioritized based on a corresponding QoS requirement;

the contention module coupled with a cache configured to cache data from the data streams, wherein the storage device is configured to manage the cache when there are contentions between the plurality of shared resources;

wherein the one or more data streams are added to a shared queue used for scheduling;

wherein upon determining that bandwidth is available, the storage device forwards the received data streams back to the sending host; and

wherein the storage device is configured to:

(i) transfer portions of the data streams where a minimum QoS is 100%;

(ii) skip superfluous portions of the data streams to increase virtual throughput; and

(iii) operate a contention resolution priority queue using a non-volatile memory device.

13. The storage device of claim 12 , wherein a first data stream has a first level of QoS, wherein a second data stream has a second level of QoS, wherein the first level of QoS is greater than the second level of QoS, and wherein a first priority ranking is assigned to the first data stream based on the first level of QoS being greater than the second level of QoS.

14. The storage device of claim 12 , wherein the dynamic management interface is configured to determine one or more minimum QoS requirements for each corresponding QoS of each received data stream.

15. The storage device of claim 14 , wherein the one or more minimum QoS requirements includes read bandwidth, read latency, write bandwidth, and write latency requirements.

16. The storage device of claim 15 , wherein the dynamic QoS control module is configured to acknowledge a total data received from the second requests for the second stream from the sending host.

17. The storage device of claim 16 , wherein the dynamic QoS control module is configured to transfer back to the sending host an actual data for the second stream that is less than the total data received from the second request for the second stream from the sending host, and wherein the dynamic QoS control module is operative to schedule the first requests and second requests in a manner that may satisfy a first QoS attribute for the first stream and a second QoS attribute for the second stream.

18. A method of managing QoS requirements, comprising:

receiving an identifier for a first data stream and an identifier for a second data stream from a host;

receiving first requests for the first data stream and second requests for the second data stream from the host; and

upon determining that bandwidth is available, forwarding a received data stream back to the host;

wherein the identifier for the first data stream further identifies a total data acknowledged from the first requests for the first data stream from a sending host,

wherein the total data acknowledged from the first requests for the first data stream is greater than an actual data transferred back to the host;

wherein the first and second data streams are prioritized using a contention module based on a corresponding QoS requirement in response to contention with respect to a plurality of shared resources;

caching data from the first and second data streams using a cache coupled with the contention module;

managing the cache when there are contentions between the plurality of shared resources;

wherein the first and second data streams are added to a shared queue used for scheduling;

transferring portions of the first and second data streams where a minimum QoS is 100%;

skipping superfluous portions of the first and second data streams to increase virtual throughput; and

operating a contention resolution priority queue using a non-volatile memory device.

Assignments (10)
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 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2021
From: AGARWAL, DINESH KUMAR; SHARMA, AMIT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055392/0359 →
Continuity (2)
Provisional Application 63077278 · Sep 11, 2020
Related Publication 20220086225A1 · Mar 17, 2022