IP Library Granted Patent US 10,365,826
Granted Patent B1
US 10,365,826 · App. 15/879,054 · Granted Jul 30, 2019

Command processing for a storage system

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,365,826
App. No.
15/879,054
Granted
Jul 30, 2019
Kind
B1
Abstract

A command from a host is received via a port of a storage system. The port is assigned a current port revision identifier. The current port revision identifier of the port is associated with the command. Responsive to a status change associated with the port, an updated port revision identifier is assigned to the port to replace the current port revision identifier of the port and execution of the command is aborted responsive to determining that the current port revision identifier associated with the command is different than the updated port revision identifier of the port.

Claims (46)

1. A method, comprising:

receiving a command from a host via a port of a storage system, wherein the port is assigned a current port revision identifier;

associating the current port revision identifier of the port with the command;

responsive to a status change associated with the port, assigning an updated port revision identifier to the port to replace the current port revision identifier of the port; and

aborting execution of the command while the command is being processed responsive to determining that the current port revision identifier associated with the command is different than the updated port revision identifier of the port.

2. The method of claim 1 , wherein the status change comprises at least one of a disconnect between the host and the port, a restart of the host, a failure related to the port, or a failure related to the host.

3. The method of claim 1 , wherein assigning the updated port revision identifier to the port comprises incrementing the port revision identifier.

4. The method of claim 1 , wherein aborting execution of the command comprises deleting the command and data associated with the command prior to completion of execution of the command.

5. The method of claim 1 , wherein associating the current port revision identifier of the port with the command comprises appending the current port revision identifier of the port to the command.

6. The method of claim 1 , wherein the port is a single root input/output virtualization virtual function.

7. The method of claim 1 , wherein the storage system is a multi-channel solid-state drive.

8. The method of claim 1 , wherein receiving the command comprises receiving the command via a logical path coupling the port of the storage system to a non-volatile memory of the storage system.

9. The method of claim 1 , wherein receiving the command comprises receiving the command via a Peripheral Component Interconnect Express (PCIe) command path.

10. A method, comprising:

identifying at least one command being processed by a storage system to perform an operation on a memory device of the storage system;

determining that the at least one command being processed by the storage system is associated with an outdated port revision identifier; and

aborting execution of the at least one command while the command is being processed responsive to determining that the at least one command is associated with the outdated port revision identifier.

11. The method of claim 10 , wherein identifying at least one command is in response to detecting a status change associated with a host coupled to the storage system.

12. The method of claim 11 , wherein the status change comprises at least one of a disconnect between the host and the storage system.

13. The method of claim 10 , wherein determining that the at least one command is associated with an outdated port revision identifier comprises:

identifying a port revision identifier assigned to the at least one command; and

comparing the port revision identifier assigned to the at least one command to a port revision identifier assigned to a port of the storage system, wherein the storage system received the at least one command via the port.

14. The method of claim 13 , wherein the port revision identifier assigned to the at least one command is appended to the at least one command.

15. The method of claim 13 , comparing the port revision identifier assigned to the at least one command to the port revision identifier assigned to the port of the storage system comprises:

identifying a port identifier associated with the at least one command; and

determining the port revision identifier assigned to the port from an entry in a data structure based on the port identifier associated with the at least one command.

16. The method of claim 10 , wherein the operation is a read operation, write operation, program operation, or erase operation for a respective command.

17. A system, comprising:

a memory device;

a port; and

a processing device, operatively coupled with the memory device and port, to:

receive a command from a host via the port, wherein the port is assigned a current port revision identifier;

associate the current port revision identifier of the port with the command;

responsive to a status change associated with the port, assign an updated port revision identifier to the port to replace the current port revision identifier of the port; and

abort execution of the command while the command is being processed responsive to a determination that the current port revision identifier associated with the command is different than the updated port revision identifier of the port.

18. The apparatus of claim 17 , wherein the status change comprises at least one of a disconnect between the host and the port, a restart of the host, a failure related to the port, or a failure related to the host.

19. The apparatus of claim 17 , wherein the host is coupled to the port via a virtual function.

20. The apparatus of claim 17 , wherein the host is coupled to the port via a physical Peripheral Component Interconnect Express (PCIe) command path.

21. An apparatus, comprising:

a memory device; and

a controller, operatively coupled with the memory device, to:

identify at least one in-flight command being processed by the controller to perform an operation on the memory device;

determine that the at least one command being processed by the controller is associated with an outdated port revision identifier; and

abort execution of the at least one in-flight command responsive to determining that the at least one in-flight command is associated with the outdated port revision identifier.

22. The apparatus of claim 21 , wherein the controller is to identify the at least one command in response to detecting a status change associated with a host coupled to the controller.

23. The apparatus of claim 21 , wherein the status change comprises at least one of a disconnect between the host and the controller.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 11, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050713/0001 →
SUPPLEMENT NO. 9 TO PATENT SECURITY AGREEMENT Recorded Aug 9, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 047282/0463 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2018
From: DUNCAN, KEVIN R.; CRONIN, TERRY M.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 044719/0253 →