IP Library Granted Patent US 10,635,350
Granted Patent B2
US 10,635,350 · App. 15/878,114 · Granted Apr 28, 2020

Task tail abort for queued storage tasks

Inventors: Prashant Singhal (Bangalore, IN); Vallivelraja Ponnudurai (Tamil Nadu, IN); Anil Jain (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0607G06F3/068G06F3/0634G06F3/0679G06F12/02G06F12/0246G06F2212/7201
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,350
App. No.
15/878,114
Granted
Apr 28, 2020
Kind
B2
Abstract

Technology is disclosed herein for aborting a tail portion of a command queue in a storage device. In one aspect, one or more control circuits of a storage system are configured to abort tasks at a tail end of a command queue in response to receiving a task tail abort command. However, tasks at the head end of the command queue may still be executed. Thus, the head end of the command queue need not be rebuilt after the task tail abort command is performed. Therefore, considerable time is saved by not having to rebuild the head end of the command queue. Note that the task tail abort command may be received while the storage system is in a sequential command execution mode, in which tasks are executed in the order of their respective task identifiers.

Claims (47)

1. An apparatus comprising:

non-volatile memory;

non-transitory storage;

a communication interface configured to receive tasks from a host to access the non-volatile memory, each of the tasks having a task identifier; and

one or more control circuits in communication with the communication interface, and the non-volatile memory, the one or more control circuits configured to:

add the tasks to a command queue in the non-transitory storage in increasing order of the task identifiers when in a sequential command execution mode;

execute the tasks received over the communication interface in increasing order of the task identifiers of the respective tasks when in the sequential command execution mode;

abort a task having a specified task identifier and all tasks waiting to be executed having a task identifier greater than the specified task identifier without aborting any tasks waiting to be executed having a task identifier less than the specified task identifier in response to receiving a task tail abort command over the communication interface, the task tail abort command having the specified task identifier, including remove the task having the specified task identifier from the command queue without executing the task having the specified task identifier, remove all tasks having a higher task identifier than the specified task identifier from the command queue without executing any of the tasks having a higher task identifier than the specified task identifier, and leave all tasks having a task identifier lower than the specified task identifier on the command queue without executing any of the tasks having a task identifier lower than the specified task identifier, wherein the task tail abort command is received while in the sequential command execution mode; and

execute at least one task having a lower task identifier than the specified task identifier after receiving the task tail abort command without again receiving any of the tasks having a lower task identifier than the specified task identifier from the host, the at least one task being a task that was waiting on the command queue to be executed when the task tail abort command was received.

2. The apparatus of claim 1 , wherein the one or more control circuits are further configured to:

add a new task having the specified task identifier to the command queue, the new task is added with at least one task having a lower task identifier than the specified task identifier still left on the command queue.

3. The apparatus of claim 2 , wherein the one or more control circuits are further configured to:

execute the new task along with the at least one task having the lower task identifier than the specified task identifier still left on the command queue in order of the task identifiers.

4. The apparatus of claim 3 , wherein the one or more control circuits are configured to access the non-volatile memory to execute the new task along with the at least one task having the lower task identifier.

5. The apparatus of claim 1 , wherein the task tail abort command is a CMD43 command in a Secure Digital protocol.

6. The apparatus of claim 1 , wherein the sequential command execution mode is a Sequential CQ mode in a Secure Digital protocol.

7. A method comprising:

entering a sequential execution mode in which tasks received at a memory system are executed by the memory system in increasing order of a task identifier of each respective task;

placing tasks received at the memory system from a host while in the sequential execution mode in sequential order onto a command queue in the memory system, wherein each of the tasks has a different task identifier and includes a command to access non-volatile storage in the memory system;

receiving a task tail abort command at the memory system from the host while in the sequential execution mode, the task tail abort command having a specified task identifier;

in response to receiving the task tail abort command while the memory system is in the sequential execution mode, aborting the task having the specified task identifier and all tasks on the command queue having a higher task identifier than the specified task identifier without aborting any tasks on the command queue having a task identifier lower than the specified task identifier, including removing the task having the specified task identifier and all tasks having a higher task identifier from the command queue;

leaving all tasks having a task identifier lower than the specified task identifier on the command queue in response to receiving the task tail abort command; and

executing at least one task from the command queue after receiving the task tail abort command without again receiving any of the tasks having a lower task identifier than the specified task identifier from the host, the at least one task having a task identifier that is lower than the specified task identifier, the at least one task being on the command queue at the time the task tail abort command is received, the executing comprising accessing the non-volatile storage and transferring data between the host and the non-volatile storage.

8. The method of claim 7 , further comprising:

receiving a new task at the memory system while in the sequential execution mode, the new task having the same specified task identifier as the specified task identifier in the task tail abort command;

adding the new task to the command queue; and

executing the new task with other tasks on the command queue in sequence of task identifiers of the tasks on the command queue, the executing comprising accessing the non-volatile storage.

9. The method of claim 7 , wherein the sequential execution mode is a Sequential CQ mode in a Secure Digital protocol.

10. The method of claim 7 , wherein the task tail abort command is a CMD43 command in a Secure Digital protocol.

11. The method of claim 7 , further comprising:

sending the task tail abort command from the host to the memory system.

12. The method of claim 7 , further comprising:

sending “p+1” tasks from a host to the memory system, the tasks having a sequence of task identifiers from 0 to p;

sending the task tail abort command from the host to the memory system after sending the p+1 tasks, the task tail abort command having a task identifier of q, wherein q is greater than 0 and less than “p+1”; and

sending a task having a task identifier of “q” from the host to the memory system as the next task after sending the task tail abort command.

13. A non-volatile memory system, comprising:

non-volatile memory;

communication interface means for receiving tasks from a host to access the non-volatile memory, each of the tasks having a task identifier, the communication interface means further for receiving a task tail abort command having a specified task identifier;

command execution mode means for entering a sequential execution mode in which the tasks are executed in increasing order of the task identifier of each respective task;

command queue management means for placing tasks received by the communication interface means while in the sequential execution mode onto a command queue in sequential order of the task identifiers; and

task execution means for executing at least one task from the command queue after receiving the task tail abort command without again receiving any of the tasks having a lower task identifier than the specified task identifier from the host, the at least one task having a task identifier that is lower than the specified task identifier, the at least one task being on the command queue at the time the task tail abort command is received;

wherein the command queue management means is further for, in response to receiving the task tail abort command while in the sequential execution mode, aborting the task having the specified task identifier and all tasks on the command queue having a higher task identifier than the specified task identifier without aborting any tasks having a lower task identifier than the specified task identifier, including remove the task having the specified task identifier and all tasks having a higher task identifier than the specified task identifier from the command queue while leaving all tasks having a lower task identifier than the specified task identifier on the command queue.

14. The non-volatile memory system of claim 13 , further comprising:

command parsing means for parsing the task tail abort command, including means for interpreting whether an operation code field in the task tail abort command indicates the task tail abort command or another type of abort operation.

15. The non-volatile memory system of claim 13 , wherein:

the command queue management means is further for re-placing the task identified in the task tail abort command on the command queue with a new task received by the communication interface means having the same task identifier as specified in the task tail abort command; and

task execution means is further for executing the new task, along with tasks on the command queue having a lower task identifier in order of the task identifiers.

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 Jan 23, 2018
From: SINGHAL, PRASHANT; PONNUDURAI, VALLIVELRAJA; JAIN, ANIL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 044705/0220 →
Continuity (1)
Related Publication 20190227742A1 · Jul 25, 2019