IP Library Granted Patent US 11,726,713
Granted Patent B2
US 11,726,713 · App. 17/358,457 · Granted Aug 15, 2023

Systems and methods for priority command data fetching management

Inventors: Srinivasa Rao Paidi (Bangalore, IN); Kapil Sundrani (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0611G06F3/0688
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,726,713
App. No.
17/358,457
Granted
Aug 15, 2023
Kind
B2
Abstract

Storage devices are often configured to receive and process commands from a host-computing device. These commands can vary in size and priority with larger sizes of command data being processed by storage devices more frequently. As these sizes increase, more situations occur when newly received high priority commands are received and ready for processing, but must wait for the current data associated with a normal priority command to be fetched and/or processed. Traditionally, the high priority command must wait, no matter how long, until the currently underway normal priority command is fetched and/or completed. However, methods and system described herein allow for the interruption of normal priority data fetching prior to completion. In this way, lower latencies may be achieved as high priority commands are not required to wait for processing. The previously fetched data may be dumped and re-fetched again or may be stored until normal operations can resume.

Claims (63)

1. A device comprising:

a processor;

a memory array comprising a plurality of memory devices; and

a priority command processing logic configured to:

receive a plurality of processing commands from a host device;

parse a normal priority command;

begin fetching data associated with the normal priority command;

parse a high-priority command;

in response to a determination that a time required to complete the fetching data associated with the normal priority command exceeds a predetermined allowed time, pause fetching of the data associated with the normal priority command;

process fetched data associated with the normal priority command;

wherein processing the fetched data associated with the normal priority command comprises dumping the currently fetched data;

fetch data associated with the high-priority command;

process high-priority command; and

restart fetching of data associated with paused normal priority command,

wherein a command is configured to be indicated high-priority by a high-priority indication, and wherein one or more queues are configured to be indicated either normal priority or high priority.

2. The device of claim 1 , wherein processing the fetched data associated with the normal priority command comprises storing the currently fetched data within an intermediate memory.

3. The device of claim 1 , wherein the high-priority command is parsed via an encapsulated priority level within a received processing command.

4. The device of claim 1 , wherein the high-priority processing command is received from a high-priority command queue.

5. The device of claim 1 , wherein the device is notified of the arrival of a high-priority command via a primitive within a communication protocol.

6. The device of claim 1 , wherein the device is notified of the arrival of a high-priority command via a change in a high-priority register.

7. A method of processing high-priority commands, comprising:

receiving a plurality of processing commands from a host device;

parsing a normal priority command;

beginning to fetch data associated with the normal priority command;

determining the arrival of a high-priority command;

in response to a determination that a time required to complete the fetching data associated with the normal priority command exceeds a predetermined allowed time, pausing fetching of the data associated with the normal priority command;

processing fetched data associated with the normal priority command;

wherein the processing of the fetched data associated with the normal priority command comprises dumping the currently fetched data;

fetching data associated with the high-priority command;

processing high-priority command; and

restarting fetching of data associated with paused normal priority command,

wherein a command is configured to be indicated high-priority by a high-priority indication, and wherein one or more queues are configured to be indicated either normal priority or high priority.

8. The method of claim 7 , wherein determining the arrival of a high-priority command comprises processing an encapsulated priority level within a received processing command.

9. The method of claim 7 , wherein determining the arrival of a high-priority command comprises receiving a command from a high-priority command queue.

10. The method of claim 7 , wherein determining the arrival of a high-priority command comprises receiving a specialized data structure within a communication protocol.

11. The method of claim 10 , wherein the data structure is a primitive.

12. The method of claim 7 , wherein determining the arrival of a high-priority command comprises recognizing a change within a high-priority register.

13. A device comprising:

a processor;

a memory array comprising a plurality of memory devices; and

a priority command processing logic configured to:

receive a plurality of processing commands from a host device;

parse a normal priority command;

begin fetching data associated with the normal priority command;

wherein the proper procedure is determined to be dumping the currently fetched data;

parse a high-priority command;

in response to a determination that a time required to complete the fetching data associated with the normal priority command exceeds a predetermined allowed time, pause fetching of the data associated with the normal priority command;

determine proper procedure for processing fetched data associated with the normal priority command;

restart fetching of data associated with paused normal priority command;

process the fetched normal priority command; begin fetching data associated with the high-priority command; and

process the fetched high-priority command;

wherein a command is configured to be indicated high-priority by a high-priority indication, and wherein one or more queues are configured to be indicated either normal priority or high priority.

14. The device of claim 13 , wherein the proper procedure is determined to be:

restarting the fetching of data associated with paused normal priority command; and

processing the fetched normal priority command prior to fetching and processing the high-priority command.

15. The device of claim 13 , wherein the proper procedure is determined to be:

restarting the fetching of data associated with paused normal priority command; and

processing the fetched normal priority command after the fetching and processing of the high-priority command.

16. The device of claim 13 , wherein the proper procedure is determined to be:

re-fetching the data associated with paused normal priority command; and

processing the fetched normal priority command.

17. The device of claim 13 , wherein the determination of the proper procedure is based upon the size of the data associated with the normal priority command.

18. The device of claim 13 , wherein the determination of the proper procedure is based upon the estimated latency of completing the fetching of the data associated with the normal priority command.

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 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 Jul 16, 2021
From: PAIDI, SRINIVASA RAO; SUNDRANI, KAPIL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056888/0487 →
Continuity (1)
Related Publication 20220413760A1 · Dec 29, 2022