IP Library Granted Patent US 9,155,046
Granted Patent B2
US 9,155,046 · App. 13/612,142 · Granted Oct 6, 2015

Optimizing semi-active workloads

Inventors: Christian Maciocco (Portland, OR); Sameh Gobriel (Hillsboro, OR); Ren Wang (Portland, OR); Tsung-Yuan C. Tai (Portland, OR); Kristoffer D Fleming (Chandler, AZ)
Assignee: Intel Corporation
H04W52/0229
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,155,046
App. No.
13/612,142
Granted
Oct 6, 2015
Kind
B2
Abstract

Devices and methods for optimizing semi-active workloads are described herein. A network interface device may be configured to offload data packet acknowledgment responsibilities of a host platform by transmitting, to the sender of the packets, acknowledgements of packets received throughout a time duration. Upon completion of the time duration, the network interface device may trigger the host platform to perform batch processing of the data packets received during the time duration.

Claims (60)

1. A network interface device comprising:

a network interface module configured to receive, during a time duration for which a host processor is in a sleep mode, a plurality of data packets from a sender, wherein the plurality of data packets comprise a stream, and transmit, during the time duration, acknowledgements of the plurality of data packets to the sender, wherein the host processor is communicatively coupled to the network interface module and wherein at least one of an operating system and a user software application is executed on the host processor, and wherein the time duration corresponds to a latency threshold of the stream;

a network interface card (NIC) processor configured to store the plurality of data packets in a first buffer; and

a host interface module configured to transmit, subsequent to the time duration, a signal to trigger processing of the plurality of data packets and to receive, subsequent to the time duration, a value corresponding to a data packet of the plurality of data packets received during the time duration, wherein the value corresponds to the sequence number of the last packet received during the time duration, the network interface module being further configured to transmit, subsequent to the time duration and using the value, an acknowledgement of a next data packet received from the sender.

2. The network interface device of claim 1 , wherein:

the host interface module is further configured to receive, subsequent to the time duration and from the host processor, acknowledgements for the plurality of data packets received from the sender during the time duration; and

the NIC processor is further configured to disregard, without retransmitting to the sender, the acknowledgements received by the host interface module.

3. The network interface device of claim 1 , wherein the NIC processor is further configured to:

buffer at least one of the plurality of data packets in a first memory; and

transfer at least one of the plurality of data packets to a second memory associated with the host processor when a buffer threshold of the first memory is reached.

4. The network interface device of claim 1 , wherein the acknowledgements are transmitted to the sender according to the transmission control protocol (TCP).

5. The network interface device of claim 1 , wherein

the latency threshold is set by an application that generates the stream.

6. The network interface device of claim 1 , wherein the NIC processor is further configured to:

detect a flag value in at least one of the plurality of data packets;

wake the host processor; and

trigger the host processor to process the plurality of data packets based on detecting the flag value.

7. A device, comprising:

a host processor configured to operate in a sleep mode and an active mode;

a first buffer; and

a network interface card (NIC), the NIC configured to:

receive, during a time duration for which the host processor is in a sleep mode, a plurality of data packets, wherein the plurality of data packets comprise a stream, wherein the time duration corresponds to a latency threshold of the stream;

transmit, during the time duration, acknowledgements of the plurality of data packets;

store the plurality of data packets in the first buffer;

transmit, to the host processor and subsequent to the time duration, a signal to trigger the host processor to process the plurality of data packets;

receive, from the host processor and subsequent to the time duration, a value corresponding to a data packet of the plurality of data packets wherein the value corresponds to the sequence number of the last packet received during the time duration; and

transmit, subsequent to the time duration and using the value, an acknowledgement of a next packet;

wherein the device is configured to maintain the host processor in the sleep mode for at least a portion of the time duration.

8. The device of claim 7 , wherein the NIC is further configured to:

receive, from the host processor and subsequent to the time duration, acknowledgements for the plurality of data packets received during the time duration; and

disregard, without retransmitting, the acknowledgements received from the host processor.

9. The device of claim 7 , wherein:

the latency threshold is set by an application that generates the stream.

10. The device of claim 7 , wherein the device further includes a second buffer, the second buffer being associated with the NIC; and

the NIC is further configured to:

buffer at least one of the plurality of data packets in the second buffer; and

transfer at least one of the plurality of data packets from the second buffer to the first buffer when a threshold of the second buffer is reached.

11. The device of claim 7 , wherein the NIC is further configured to:

detect a flag value in the plurality of data packets;

wake the host processor; and

transmit a signal to trigger the host processor to process the plurality of data packets based on detecting the flag value.

12. A non-transitory machine-readable storage medium including instructions, which when executed by a machine, cause the machine to:

receive, by a network interface device during a time duration for which a host processor communicatively coupled to the network interface device and on which is executed at least one of an operating system and a user software application, is in a sleep mode, from a remote sender, a plurality of data packets, wherein the plurality of data packets comprise a stream, and wherein the time duration corresponds to a latency threshold of the stream;

transmit, by the network interface device and during the time duration, to the remote sender, acknowledgements of the plurality of data packets;

store, on a processor of the network interface device, the plurality of data packets received during the time duration;

transmit, subsequent to the time duration, a signal to trigger processing of the plurality of data packets received during the time duration;

receive, subsequent to the time duration, a value corresponding to a data packet of the plurality of data packets received during the time duration, wherein the value corresponds to the sequence number of the last packet received during the time duration; and

transmit, to the remote sender subsequent to the time duration and using the value, an acknowledgement of a next data packet.

13. The machine-readable storage medium of claim 12 , the instructions further causing the machine to:

receive, by the network interface device subsequent to the time duration and from the host processor, acknowledgements for the plurality of data packets received during the time duration; and

disregard, without re-transmitting to the remote sender, the received acknowledgments.

14. The machine-readable storage medium of claim 12 , the instructions further causing the machine to:

buffer at least one of the plurality of data packets in a first buffer; and

transfer the at least one of the plurality of data packets to a second buffer when a buffer threshold of the first buffer is reached.

15. The machine-readable storage medium of claim 12 , wherein the acknowledgements are transmitted according to the transmission control protocol (TCP).

16. The machine-readable storage medium of claim 12 , wherein:

the latency threshold is set by an application that generates the stream.

17. The machine-readable storage medium of claim 12 , the instructions further causing the machine to:

detect a flag value in the plurality of data packets; and

wake a second device to handle processing of the plurality of data packets based on the detecting.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2012
From: MACIOCCO, CHRISTIAN; GOBRIEL, SAMEH; WANG, REN; TAI, TSUNG-YUAN C.; FLEMING, KRISTOFFER D.
To: INTEL CORPOTATION
Reel/Frame 029528/0046 →
Continuity (1)
Related Publication 20140071866A1 · Mar 13, 2014