IP Library Granted Patent US 11,782,602
Granted Patent B2
US 11,782,602 · App. 17/357,153 · Granted Oct 10, 2023

Providing priority indicators for NVMe data communication streams

Inventor: Ravishankar Surianarayanan (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/061G06F3/0631G06F3/0655G06F3/0679H04L67/141
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,782,602
App. No.
17/357,153
Granted
Oct 10, 2023
Kind
B2
Abstract

Systems and methods described herein provide for determining priority levels within one or more data streams established between a host computing device and a storage device. Data streams that have been assigned a sufficiently high priority may be provided additional processing resources available within the storage device. These additional processing resources may include an increased number of write buffers, superblocks, and access to other ancillary resources that facilitate an increased level of performance compared to data streams not provided additional processing resources. The assignment of priority to the data streams can occur through the use of one or more priority identifiers. Many types and scales of priority identifiers may be used. The establishing of this system of priority identifiers can occur by the storage device notifying the hose of the accepted priority identifier usage. In other embodiments, the storage device may come preconfigured with a priority indication system and scale.

Claims (44)

1. A device comprising:

a processor;

a memory array comprising a plurality of memory devices;

a plurality of processing resources for storing received data within the memory array; and

a stream priority logic configured to:

establish a plurality of communication streams with a host device;

provide the host device with one or more priority identifiers that are parsed and recognized;

receive data from one of the plurality of communication streams, wherein the communication stream providing the received data is assigned a priority identifier; and

wherein in response to the priority identifier being over a predetermined threshold, additional processing resources are allocated for processing the received data; and

in response to the priority identifier not exceeding the predetermined threshold, an equal allocation of processing resources is provided across all of the plurality of communication streams.

2. The device of claim 1 , wherein providing priority identifiers to the host device is not required in response to the host device being preconfigured with priority identifiers.

3. The device of claim 2 , wherein the priority identifiers utilized by the device are the same as the priority identifiers utilized by the host device.

4. The device of claim 3 , wherein the stream priority logic is further configured to determine the priority identifiers of the host prior to receiving data from the host device.

5. The device of claim 4 , wherein the determination of the priority identifiers occurs as part of the establishing of the plurality of communication streams with the host device.

6. The device of claim 1 , wherein the plurality of processing resources includes at least write buffers.

7. The device of claim 6 , wherein additional write buffers are allocated for writing the received data associated with a communication stream in response to the priority identifier being over a predetermined threshold.

8. The device of claim 1 , wherein the plurality of processing resources includes at least host append points.

9. The device of claim 8 , wherein more than one host append point is allocated to the communication stream associated with a priority identifier being over a predetermined threshold.

10. The device of claim 9 , wherein the allocation of additional host append points allows for data received from the communication stream associated with a priority identifier being over a predetermined threshold to be stored in more than one superblock.

11. The device of claim 10 , wherein the plurality of processing resources also includes additional manifest buffers to facilitate the use of multiple superblock per communication stream.

12. The device of claim 1 , wherein the plurality of processing resources includes at least XOR parity buffers.

13. The device of claim 12 , wherein additional XOR parity buffers are allocated for storing data received from a communication stream associated with a priority identifier being over a predetermined threshold.

14. The device of claim 1 , wherein the priority identifiers are sequentially ordered values.

15. The device of claim 14 , wherein the priority identifiers with a lower sequential value are given higher priority.

16. The device of claim 15 , wherein the predetermined threshold is exceeded when a priority identifier has a sequential value below a specific value.

17. A method of assigning priority to communication streams, comprising:

establishing a plurality of communication streams to a host device;

providing the host device with one or more priority identifiers for use in assigning priority to the plurality of communication streams;

receiving data from at least one of the plurality of communication streams, wherein the communication stream providing the received data is assigned a priority identifier that is parsed;

wherein in response to the communication stream being assigned a high priority identifier, additional processing resources are allocated for processing the received data; and

in response to the priority identifier not exceeding the predetermined threshold, an equal allocation of processing resources is provided across all of the plurality of communication streams.

18. The method of claim 17 , wherein the communication streams conform to the NVMe standard.

19. The method of claim 17 , wherein a communication stream is assigned a priority identifiers by the host device.

20. A device comprising:

a processor;

a memory array comprising a plurality of memory devices;

a plurality of processing resources for storing received data within the memory array; and a stream priority logic configured to:

establish a plurality of communication streams with a host device;

determine one or more priority identifiers utilized by the host device;

receive data from a first communication stream, wherein the first communication stream providing the received data is assigned a priority identifier that is parsed;

receive a subsequent command from the host device to close the first communication stream;

wherein in response to the priority identifier being over a predetermined threshold, additional processing resources are allocated to the first communication stream;

in response to the priority identifier not exceeding the predetermined threshold, an equal allocation of processing resources is provided across all of the plurality of communication streams; and

wherein upon closing of the first communication stream, the additional processing resources are reallocated between the remaining streams.

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 - 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 057651 FRAME 0296 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058981/0958 →
SECURITY INTEREST Recorded Sep 17, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 057651/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2021
From: SURIANARAYANAN, RAVISHANKAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056657/0607 →