US 11,863,623 B2
Variable QoS management of multiple data streams
Dinesh Kumar Agarwal, Bangalore (IN); and Amit Sharma, Bengaluru (IN)
Assigned to Western Digital Technologies, Inc., San Jose, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Feb. 24, 2021, as Appl. No. 17/183,826.
Claims priority of provisional application 63/077,278, filed on Sep. 11, 2020.
Prior Publication US 2022/0086225 A1, Mar. 17, 2022
Int. Cl. H04L 67/1097 (2022.01); H04L 67/125 (2022.01); H04L 43/0852 (2022.01); H04L 41/22 (2022.01); H04L 43/0817 (2022.01); H04L 41/5003 (2022.01); H04L 67/61 (2022.01)
CPC H04L 67/1097 (2013.01) [H04L 41/22 (2013.01); H04L 41/5003 (2013.01); H04L 43/0817 (2013.01); H04L 43/0852 (2013.01); H04L 67/125 (2013.01); H04L 67/61 (2022.05)] 18 Claims
OG exemplary drawing
 
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.
 
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.