Method and system for DMA optimization
First Claim
1. A method for processing read requests sent by a host bus adapter (“
- HBA”
) to a host system for transferring data stored from a host system memory to a device, accessible to the HBA via a network connection, comprising;
(a) sending a first read request and at least a second read request within a programmable time interval (“
T”
) to the host system, for transferring data from the host system memory;
wherein the second read request is sent after the first read request is sent to the host system but before the first read request is processed by the host system and data associated with the first read request is transferred;
wherein a transmit direct memory access (DMA) module sends the first read request and the second read request to the host system, staggered within the time interval T; and
wherein the first read request and the second read request are a part of a data transfer request, such that a transfer size for the data transfer request is larger than a transfer size for each of the first read request and the second read request;
(b) receiving data from the host system in any order, in response to the first read request and the second read request;
(c) placing the received data in response to both the first read request and the second read request in independent slots of a transmit buffer; and
(d) unloading the independent transmit buffer slots based on an unload command, such that data associated with the first read request is sent to the device before data associated with the second read request is sent, even though data associated with the second read request is received at one or more of the independent transmit buffer slots before data associated with the first read request is received.
7 Assignments
0 Petitions
Accused Products
Abstract
Method and system for processing read requests sent by a network interface device to a host system is provided. The method includes sending staggered read requests within a programmable time interval (“T”), wherein a transmit direct memory access (DMA) module sends more than one read request to the host system within the time interval T; placing data received from the host system in response to the read requests in independent slots of a transmit buffer; and unloading the transmit buffer slots based on an unload command, wherein the unload command is based on a mapping of read requests corresponding to transmit buffer slot locations where data from the host system is stored, and data is sent from the transmit buffer to a network device in the same order as the read requests that are sent from the network interface device to host system.
66 Citations
12 Claims
-
1. A method for processing read requests sent by a host bus adapter (“
- HBA”
) to a host system for transferring data stored from a host system memory to a device, accessible to the HBA via a network connection, comprising;(a) sending a first read request and at least a second read request within a programmable time interval (“
T”
) to the host system, for transferring data from the host system memory;wherein the second read request is sent after the first read request is sent to the host system but before the first read request is processed by the host system and data associated with the first read request is transferred; wherein a transmit direct memory access (DMA) module sends the first read request and the second read request to the host system, staggered within the time interval T; and wherein the first read request and the second read request are a part of a data transfer request, such that a transfer size for the data transfer request is larger than a transfer size for each of the first read request and the second read request; (b) receiving data from the host system in any order, in response to the first read request and the second read request; (c) placing the received data in response to both the first read request and the second read request in independent slots of a transmit buffer; and (d) unloading the independent transmit buffer slots based on an unload command, such that data associated with the first read request is sent to the device before data associated with the second read request is sent, even though data associated with the second read request is received at one or more of the independent transmit buffer slots before data associated with the first read request is received. - View Dependent Claims (2, 3)
- HBA”
-
4. A host bus adapter for transferring data from a host system to a Fibre Channel Network, comprising:
-
a transmit direct memory access module for sending a first read request and at least a second read request to the host system within a time interval (“
T”
) for transferring data to the Fibre Channel network;
wherein the first read request and the second read request are staggered within the time interval T such that the second read request is sent after the first request and while the first request is being processed by the host system;wherein the first read request and the second read request are a part of a data transfer request, such that a transfer size for the data transfer request is larger than a transfer size for each of the first read request and the second read request; a transmit buffer that includes independent memory slots for receiving data from the host system in any order, in response to both the first read request and the second read request; and a transmit scheduler module that generates an unload command to transfer data from the independent memory slots to the Fibre Channel network such that data associated with the first read request is sent to the Fibre Channel network, before data associated with the second read request is sent, even though data associated with the second read request is received at one or more of the independent memory slots, before the data associated with the first read request is received. - View Dependent Claims (5, 6)
-
-
7. A network interface device for transferring data from a host system to a network, comprising:
-
a transmit direct memory access module for sending a first read request and at least a second read request to the host system, within a time interval (“
T”
) for transferring data to the network;
wherein the first read request and the second read request are staggered within the time interval T such that the second read request is sent after the first request and white the first read request is being processed by the host system;wherein the first read request and the second read request are a part of a data transfer request, such that a transfer size for the data transfer request is larger than a transfer size for each of the first read request and the second read request; a transmit buffer that includes independent memory slots for receiving data from the host system in any order, in response to both the first read request and the second read request; and a transmit scheduler module that generates an unload command to transfer data from the independent memory slots to the network such that data associated with the first read request is sent to the network, before data associated with the second read request is sent, even though data associated with the second read request is received at one or more of the independent memory slots, before the data associated with the first read request is received. - View Dependent Claims (8, 9)
-
-
10. A method for processing read requests sent by a network interface device to a host system for transferring data from a host system memory to a device operationally coupled to the network interface device, comprising:
-
(a) sending staggered read requests to the host system within a programmable time interval (“
T”
) such that a second read request from among the staggered read requests is sent after a first read request but before the first read request is processed by the host system, wherein a transmit direct memory access (DMA) module sends the staggered read requests to the host system within the time interval T such that while one read request is being processed, another read request is ready for processing within the time interval T;wherein the staggered read requests are a part of a data transfer request, such that a transfer size for the data transfer request is larger than a transfer size for each of the staggered read requests; (b) receiving data from the host system in any order, in response to the staggered read requests and (c) placing the data in independent slots of a transmit buffer; and unloading the independent transmit buffer slots based on an unload command, such that data associated with the first read request is sent to the network device before data associated with the second read request is sent, even though data associated with the second read request is received at one or more of the independent transmit buffer slots before the data associated with the first read request is received. - View Dependent Claims (11, 12)
-
Specification