IP Library Granted Patent US 9,778,859
Granted Patent B2
US 9,778,859 · App. 14/631,187 · Granted Oct 3, 2017

Doorless protocol having multiple queue read requests in flight

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 9,778,859
App. No.
14/631,187
Granted
Oct 3, 2017
Kind
B2
Abstract

The present disclosure relates to methods and systems for performing operations in a communications protocol. An example method can include submitting, from a device, a request for a queue entry representing a command from a host comprising a request for data stored at a device memory location; receiving the command from the host; and executing the command. An example method can also include selecting a bit string representing whether a requested data stream has been received, and storing the bit string into a memory buffer portion to mark the buffer portion. The method can include receiving, into the memory buffer, the stream. The method can include retrieving contents of the buffer portion, and determining whether the contents contain the bit string. If so, the method can include determining that portions of the stream have not been received. Otherwise, the method can include determining that the stream has been received.

Claims (38)

1. A method of performing operations in a communications protocol, the method comprising:

submitting, from a target in communication with a host via the communications protocol, a first command request for a first entry in a queue, wherein the first entry in the queue represents a first command inserted into the queue by the host, wherein the target submits the first command request without receiving, from the host, a first command availability signal prior to submitting the first command request and the first command availability signal indicates that the host has inserted the first command into the queue for processing by the target;

submitting, from the target, a second command request for a second entry in the queue, wherein the second entry in the queue represents a second command inserted into the queue by the host, before receiving the first entry in the queue;

receiving, by the target responsive to the first command request, the first entry in the queue, wherein the first received entry in the queue comprises the first command inserted into the queue by the host, and wherein the first command comprises a request for first data;

executing, by the target, the first command to provide the requested first data, responsive to the received first entry in the queue, and processing a completion of the first entry in the queue without writing a first completion entry to a completion queue on the host and without generating an interrupt;

receiving, by the target responsive to the second command request, the second entry in the queue, wherein the second received entry in the queue comprises the second command inserted into the queue by the host, and wherein the second command comprises a request for second data; and

executing, by the target, the second command to provide the requested second data, responsive to the received second entry in the queue.

2. The method of claim 1 , further comprising:

determining that the target is capable of handling new commands; and

wherein the second command request for the second entry in the queue is submitted after determining that the target is capable of handling new commands.

3. The method of claim 1 , further comprising submitting the second command request before submitting the first command request; and

wherein the second command request is received by the host before the first command request is received by the host.

4. The method of claim 3 , further comprising receiving the second entry in the queue before receiving the first entry in the queue; and

executing the second command before executing the first command.

5. The method of claim 1 , wherein the operations in the communication protocol comprise read operations.

6. The method of claim 1 , wherein the communication protocol includes commands with command formats compatible with the Non-Volatile Memory Express standard.

7. The method of claim 1 , wherein the requested first data and requested second data is stored in a storage in communication with the target.

8. The method of claim 7 , wherein the storage comprises at least one of a phase-change memory, magnetoresistive read only memory, and resistive read only memory.

9. A system for performing operations in a communications protocol, the system comprising:

a host in communication with a memory; and

a target in communication with the host via the communication protocol, for transmitting a requested data;

wherein the target is configured to:

submit a first command request for a first entry in a queue, wherein the first entry in the queue represents a first command inserted into the queue by the host, wherein the target submits the first command request without receiving, from the host, a first command availability signal prior to submitting the first command request and the first command availability signal indicates that the host has inserted the first command into the queue for processing by the target;

submit a second command request for a second entry in the queue, wherein the second entry in the queue represents a second command inserted into the queue by the host, before receiving the first entry in the queue;

receive the first entry in the queue, wherein the first received entry in the queue comprises the first command inserted into the queue by the host, and wherein the first command comprises a request for first data;

execute the first command to provide the requested first data, responsive to the received first entry in the queue, and processing a completion of the first entry in the queue without writing a first completion entry to a completion queue on the host and without generating an interrupt;

receive the second entry in the queue, wherein the second received entry in the queue comprises the second command inserted into the queue by the host, and wherein the second command comprises a request for second data; and

execute the second command to provide the requested second data, responsive to the received second entry in the queue.

10. The system of claim 9 , the target is further configured to: determine that the target is capable of handling new commands; and

wherein the second command request for the second entry in the queue is submitted after determining that the target is capable of handling new commands.

11. The system of claim 9 , wherein the target is further configured to submit the second command request before submitting the first command request; and

wherein the second command request is received by the host before the first command request is received by the host.

12. The system of claim 11 , wherein the target is further configured to:

receive the second entry in the queue before receiving the first entry in the queue; and execute the second command before executing the first command.

13. The system of claim 9 , wherein the operations in the communication protocol comprise read operations.

14. The system of claim 9 , wherein the communication protocol includes commands with command formats compatible with the Non-Volatile Memory Express standard.

15. The system of claim 9 , wherein the requested first data and request second data is stored in a storage in communication with the target.

16. The system of claim 15 , wherein the storage comprises at least one of a phase-change memory, magnetoresistive read only memory, and resistive read only memory.

Assignments (11)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
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 Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040829/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2016
From: BANDIC, ZVONIMIR Z.; GUYOT, CYRIL; MATEESCU, ROBERT; VUCINIC, DEJAN; WANG, QUINGBO
To: HGST NETHERLANDS B.V.
Reel/Frame 037408/0723 →