Acknowledgement-less protocol for solid state drive interface
First Claim
1. A method of performing operations in a communications protocol, the method comprising:
- selecting a bit string to indicate whether all data packets of a data request from a storage medium have been received, wherein the bit string is selected to differ from a bit sequence contained in each of the data packets of the data request;
marking a plurality of portions of a memory buffer with the selected bit string, by storing the selected bit string into the plurality of portions of the memory buffer;
receiving into the memory buffer, at least a portion of the data packets of the data request;
for each data packet that is received into one of plurality of portions of the memory buffer, overwriting the selected bit string with the bit sequence contained in the received data packet;
polling data content of the plurality of portions of the memory buffer for the selected bit string;
determining that portions of the requested data have not yet been received when the data content of any of the plurality of portions of the memory buffer contains the selected bit string; and
determining that all the requested data for the read operation has been received successfully when the data content of the plurality of portions of the memory buffer does not contain the selected bit string.
8 Assignments
0 Petitions
Accused Products
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.
-
Citations
20 Claims
-
1. A method of performing operations in a communications protocol, the method comprising:
-
selecting a bit string to indicate whether all data packets of a data request from a storage medium have been received, wherein the bit string is selected to differ from a bit sequence contained in each of the data packets of the data request; marking a plurality of portions of a memory buffer with the selected bit string, by storing the selected bit string into the plurality of portions of the memory buffer; receiving into the memory buffer, at least a portion of the data packets of the data request; for each data packet that is received into one of plurality of portions of the memory buffer, overwriting the selected bit string with the bit sequence contained in the received data packet; polling data content of the plurality of portions of the memory buffer for the selected bit string; determining that portions of the requested data have not yet been received when the data content of any of the plurality of portions of the memory buffer contains the selected bit string; and determining that all the requested data for the read operation has been received successfully when the data content of the plurality of portions of the memory buffer does not contain the selected bit string. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for performing operations in a communications protocol, the system comprising:
-
memory in communication with a host; a target in communication with the host via the communication protocol, for transmitting requested data for a read operation; storage, in communication with the target, for storing and retrieving the requested data; and a processor in communication with the host, with the memory, and with the storage, the processor configured to; select a bit string to indicate whether all the data packets of the requested data have been received, wherein the bit string is selected to differ from a bit sequence contained in each of the data packets of the requested data; mark a plurality of portions of the memory buffer with the selected bit string, by storing the selected bit string into each of the plurality of portions of the memory buffer; receive into the memory buffer, at least a portion of the data packets of the requested data; for each data packet that is received into one of plurality of portions of the memory buffer, overwrite the selected bit string with the bit sequence contained in the received data packet; poll data content of the plurality of portions of the memory buffer for the selected bit string; determine that portions of the requested data have not yet been received when the data content of any of the plurality of portions of the memory buffer contains the selected bit string; and determine that all the requested data for the read operation has been received successfully when the data content of the plurality of portions of the memory buffer does not contain the selected bit string. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification