Patent ID: 8824508

Claim:
A method offloading data intensive tasks from a processor, comprising: receiving at a configurable logic device (CLD) a network packet, the CLD being coupled to a memory having a packet table including a plurality packet data structures for packet assembly; parsing the network packet to determine that the packet is a TCP segment; searching the packet table to locate an associated partially assembled packet data structure; when an associated partially assembled packet data structure is found, inserting the network packet into the associated partially assembled packet data structure; when an associated partially assembled packet data structure is not found, adding the network packet to an unused packet data structure within the packet table; determining whether the partially assembled packet data structure contains every segment produced from an original TCP packet; when every segment is contained in the data structure: assembling a fully assembled TCP packet from the data in the partially assembled packet data structure; and transmitting the fully assembled TCP packet to a processor in the same computer system as the CLD; and when every segment is not contained in the data structure: determining whether a threshold number of the plurality of packet data structures are in use; and when a threshold number are in use: identifying the oldest partially assembled packet data structure; transmitting without assembling each TCP segment packet contained in the oldest partially assembled packet data structure to the processor; and clearing the oldest partially assembled packet data structure for subsequent reuse.