Coalescing Multiple Contexts into a Single Data Transfer in a Media Controller Architecture
First Claim
1. A method of transferring data between a host device and a storage media coupled to a media controller, the method comprising:
- receiving a host command requesting a data transfer;
determining a total size of a data transfer between the host device and the media controller based on a corresponding host command request;
generating one or more contexts for the media controller corresponding to the total size of the requested data transfer;
associating, by the media controller, the one or more contexts with a transfer of data of the corresponding host command request between the host device and the storage media;
wherein,if the data transfer is a write operation;
transferring one or more data segments from the host device into a receive buffer, wherein a combined size of the one or more received data segments corresponds to the total size of the data transfer;
transferring, in accordance with the one or more contexts, the one or more data segments from the receive buffer to the storage media; and
if the requested data transfer is a read operation;
retrieving, in accordance with the one or more contexts, data from the storage media into a transmit buffer;
grouping the retrieved data into one or more segments wherein a combined size of the one or more retrieved data segments corresponds to the total size of the data transfer; and
transmitting the one or more segments based on the total size of the data transfer.
4 Assignments
0 Petitions
Accused Products
Abstract
Described embodiments provide for transferring data between a host device and a storage media. A host data transfer request is received and a total size of the data transfer is determined. One or more contexts corresponding to the total size of the requested transfer are generated and are associated with transfers of data. If the data transfer is a write operation, one or more data segments from the host device are transferred into a buffer. The combined size of the data segments corresponds to the total size of the data transfer. In accordance with the contexts, the one or more data segments are transferred from the buffer to the storage media. If the requested data transfer is a read operation, in accordance with the contexts, data from the storage media is retrieved into a buffer and grouped into one or more segments, which are transmitted to the host device.
79 Citations
20 Claims
-
1. A method of transferring data between a host device and a storage media coupled to a media controller, the method comprising:
-
receiving a host command requesting a data transfer; determining a total size of a data transfer between the host device and the media controller based on a corresponding host command request; generating one or more contexts for the media controller corresponding to the total size of the requested data transfer; associating, by the media controller, the one or more contexts with a transfer of data of the corresponding host command request between the host device and the storage media;
wherein,if the data transfer is a write operation; transferring one or more data segments from the host device into a receive buffer, wherein a combined size of the one or more received data segments corresponds to the total size of the data transfer; transferring, in accordance with the one or more contexts, the one or more data segments from the receive buffer to the storage media; and if the requested data transfer is a read operation; retrieving, in accordance with the one or more contexts, data from the storage media into a transmit buffer; grouping the retrieved data into one or more segments wherein a combined size of the one or more retrieved data segments corresponds to the total size of the data transfer; and transmitting the one or more segments based on the total size of the data transfer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory machine-readable medium, having encoded thereon program code, wherein, when the program code is executed by a machine, the machine implements a method of transferring data between a host device and a storage media coupled to a media controller, the method comprising:
-
receiving a host command requesting a data transfer; determining a total size of a data transfer between the host device and the media controller based on a corresponding host command request; generating one or more contexts for the media controller corresponding to the total size of the requested data transfer; associating, by the media controller, the one or more contexts with a transfer of data of the corresponding host command request between the host device and the storage media;
wherein,if the data transfer is a write operation; transferring one or more data segments from the host device into a receive buffer, wherein a combined size of the one or more received data segments corresponds to the total size of the data transfer; transferring, in accordance with the one or more contexts, the one or more data segments from the receive buffer to the storage media; and if the requested data transfer is a read operation; retrieving, in accordance with the one or more contexts, data from the storage media into a transmit buffer; grouping the retrieved data into one or more segments wherein a combined size of the one or more retrieved data segments corresponds to the total size of the data transfer; and transmitting the one or more segments based on the total size of the data transfer.
-
-
12. A media controller for transferring data between a host device and a storage media coupled to the media controller, the media controller comprising:
-
a receive buffer for receiving a host command requesting a data transfer between the host device and the media controller; an instruction interface for i) determining a total size of the requested data transfer based on the received host command, and ii) generating one or more contexts corresponding to the total size of the requested data transfer, wherein the contexts are stored in a pending write table of the media controller and the contexts are employed by the media controller to transfer data between the host device and the storage media; wherein, if the requested data transfer is a write operation; the receive buffer i) receives one or more data segments from the host device, the one or more received data segments corresponding to the total size of the data transfer, and ii) transfers, by the one or more contexts, the received data to the storage media; or, wherein if the requested data transfer is a read operation; a transmit buffer is configured to i) receive, by the one or more contexts, data from the storage media to a transmit buffer, ii) group the retrieved data into one or more segments, and iii) provide the one or more segments to a link protocol core for transmission to the host device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification