IP Library Granted Patent US 10,379,781
Granted Patent B2
US 10,379,781 · App. 15/134,104 · Granted Aug 13, 2019

Storage system and method for improved command flow

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,379,781
App. No.
15/134,104
Granted
Aug 13, 2019
Kind
B2
Abstract

A storage system and method for improved command flow are provided. In one embodiment, a storage system receives a request from a host for an indication of which command(s) stored in the storage system are ready for execution; in response to the request, provides the host with the indication of which command(s) stored in the storage system are ready for execution; receives an instruction from the host to execute a command that is ready for execution; and in response to the instruction from the host to execute the command, performs both of the following: executes the command and provides the host with an updated indication of which command(s) stored in the storage system are ready for execution, wherein the storage system provides the host with the updated indication without receiving a separate request from the host for the updated indication. Other embodiments are provided.

Claims (41)

1. A method for improved command flow in a storage system, the method comprising:

receiving a status request from a host for an indication of which command(s) stored in the storage system are ready for execution;

in response to the status request, providing the host with the indication of which command(s) stored in the storage system are ready for execution;

receiving an instruction from the host to execute a command that is ready for execution, wherein the command is one of a read command or a write command; and

in direct response to the instruction from the host to execute the command, performing both of:

executing the command; and

instead of providing the host with a separate instruction acknowledgement, providing the host with an updated indication of which other command(s) stored in the storage system are ready for execution and an indication of any errors in the execution of the command, wherein the storage system provides the host with the updated indication of which of the other command(s) stored in the storage system are ready for execution and the indication of any errors in the execution of the command without receiving a separate status request from the host for the updated indication and without requiring a separate error indication communication.

2. The method of claim 1 , wherein the other command(s) are stored in a queue in the storage system.

3. The method of claim 1 , wherein the updated indication of which of the other command(s) stored in the storage system are ready for execution is stored in a register in the storage system.

4. The method of claim 1 , wherein the storage system comprises a three-dimensional memory.

5. The method of claim 1 , wherein the storage system is embedded in the host.

6. The method of claim 1 , wherein the storage system is removably connected to the host.

7. The method of claim 1 , wherein the host is configured in accordance with Embedded Multi-Media Card (eMMC) protocols, and wherein the method further comprises providing the indication of any errors in the execution of the command to the host in accordance with the eMMC protocols.

8. A storage system comprising:

a memory;

a command queue;

a queue status register; and

a processor in communication with the memory, the command queue, and the queue status register, wherein the processor is configured to:

store a command received from a host in the command queue;

process the command;

store an indication in the queue status register that the command is ready for execution;

receive a status request from the host;

in response to receiving the status request from the host, provide the host with content of the queue status register, including an indication of command(s) stored in the storage system that are ready for execution;

receive an instruction from the host to execute a command in the command queue that is ready for execution, wherein the command is one of a read command or a write command; and

execute the command in direct response to receiving the instruction from the host to execute the command and, instead of providing the host with a separate instruction acknowledgement, provide the host with updated content of the queue status register including an updated indication of which other command(s) stored in the storage system are ready for execution and an indication of any errors in the execution of the command, the processor is further configured to provide the host with the updated indication of which of the other command(s) stored in the storage system are ready for execution and the indication of any errors in the execution of the command without receiving a separate status request from the host for the updated indication and without requiring a separate error indication communication.

9. The storage system of claim 8 , wherein the memory comprises a three-dimensional memory.

10. The storage system of claim 8 , wherein the storage system is embedded in the host.

11. The storage system of claim 8 , wherein the storage system is removably connected to the host.

12. The storage system of claim 8 , wherein the host is configured in accordance with Embedded Multi-Media Card (eMMC) protocols, and wherein the processor is configured to provide the indication of any errors in the execution of the command to the host in accordance with the eMMC protocols.

13. A storage system comprising:

means for receiving a status request from a host for an indication of which command(s) stored in the storage system are ready for execution;

means for in response to the status request, providing the host with the indication of which command(s) stored in the storage system are ready for execution;

means for receiving an instruction from the host to execute a command that is ready for execution, wherein the command is one of a read command or a write command; and

means for executing the command in direct response to the instruction from the host to execute the command; and

means for providing the host with an updated indication of which other command(s) stored in the storage system are ready for execution, instead of providing the host with a separate instruction acknowledgement, and an indication of any errors in the execution of the command, wherein the storage system provides the host with the updated indication of which of the other command(s) stored in the storage system are ready for execution and the indication of any errors in the execution of the command without receiving a separate status request from the host for the updated indication and without requiring a separate error indication communication.

14. The storage system of claim 13 , wherein the other command(s) are stored in a queue.

15. The storage system of claim 13 , wherein the updated indication is stored in a register.

16. The storage system of claim 13 , wherein the storage system comprises a three-dimensional memory.

17. The storage system of claim 13 , wherein the storage system is embedded in the host.

18. The storage system of claim 13 , wherein the storage system is removably connected to the host.

19. The storage system of claim 13 , wherein the host is configured in accordance with Embedded Multi-Media Card (eMMC) protocols, and wherein the means for providing the host with the updated indication of which other command(s) stored in the storage system are ready for execution and the indication of any errors in the execution of the command provides the indication of any errors in the execution of the command in accordance with the eMMC protocols.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →