Prefetching techniques for network interfaces
AssigneeSun Microsystems, Inc.
InventorsHans Eberle, Nils Gura, Marc Herbert
Life of this patent
Estimating the term…
Abstract
A prefetching technique for a network interface is provided to give the network interface the opportunity to prefetch data out-of-order into send queues in the network interface, rather than prefetching data in the order produced and deposited into main memory. That allows, the state of the send queues to be taken into consideration when deciding an appropriate order to prefetch data.
Claims44
A method comprising:
- prefetching data into send queues in a network interface from a data storage, respective send queues being provided for respective destinations on a network, the prefetching being performed, at least some of the time, out of order from an order in which the data in the data storage became available for prefetching.
A method for implementing out of order prefetching from a host by a sending network interface circuit, the method comprising:
- storing a plurality of data packets in a send buffer storage on the host;
- notifying the network interface circuit that a data packet is ready to be transferred from the send buffer storage into one of a plurality of send queues for respective destinations on a network, by writing a data packet descriptor to the network interface circuit, the data packet descriptor identifying one of the send queues;
- and
- the network interface circuit transferring one of the data packets from the send buffer storage to one of the send queues, out of order with respect to an order in which the data packets became available for transfer out of the send buffer storage.
A network interface comprising:
- a plurality of send queues, each send queue corresponding to a target on a network to which the network interface couples;
- data entity descriptor storage coupled to store a plurality of data entity descriptors;
- and
- wherein the network interface is responsive to prefetch a data entity from a data entity storage out of order from an order in which the data entity was available for prefetching, according to a state of the send queues and according to the stored data entity descriptors and store the prefetched data entity into one of the send queues prior to transmission on the network.
A computer system comprising:
- a network interface including,
- a plurality of send queues, each of the send queues corresponding to a target on a network to which the network interface couples;
- data entity descriptor storage coupled to store a plurality of data entity descriptors;
- a host coupled to the network interface including,
- a data storage;
- a queue maintaining a list of completed data entity descriptors, a data entity descriptor being completed when an associated data entity is transferred to the network interface or transferred to its destination, the queue coupled to be written by the network interface to enqueue a completed data entity descriptor and read by the host to dequeue a completed data entity descriptor;
- and
- wherein the network interface is responsive to prefetch a data entity from the data storage in the host out of order from an order in which the data entity was available for prefetching, according to a state of the send queues and according to the stored data entity descriptors in the data entity descriptor storage.
An apparatus comprising:
- a plurality of send queues coupled to provide data to a network;
- and
- means for prefetching data into the send queues from a data storage according to a state of the send queues, out of order, at least some of the time, from an order in which the data in the data storage became available for prefetching.
Dependencies are inferred from the claim text.