Patent ID: 9460019
Filing Date: 2016-10-04
CPC Classification: G06F

Claim Text:
1. A method comprising: receiving sequences of Programmed Input/Output (PIO) write instructions to write packet data for respective packets stored in memory to a PIO send memory on a network adaptor, the PIO send memory partitioned into a plurality of send contexts; executing the sequences of PIO write instructions as an instruction thread on a processor that supports out of order execution, wherein execution of PIO write instructions cause data to be written to store units in a store buffer, the store units grouped into store blocks comprising a line of store units; wherein a portion of the PIO write instructions are executed out of order resulting in data being written to store units in different store blocks prior to the store blocks being filled; detecting when store blocks are filled; in response to detecting a store block is filled, draining the data in the store block via a posted write to a buffer in the PIO send memory; employing a First-in, First-out (FIFO) storage scheme for each send context under which data for a given packet is stored in one or more sequential send blocks, wherein PIO write instructions for writing packet data for multiple packets to the same send context are sequentially grouped in an original FIFO order, and wherein the packet data for the multiple packets are enabled to be written to send blocks in a different order than the original FIFO order; detecting that all of the one or more sequential send blocks have been filled with the packet data for a given packet; enabling data for the given packet to be egressed once all of the plurality of send blocks are filled; encoding a header field in each packet with virtual lane (VL) indicia used to identify a VL associated with that packet; enabling packets with different VLs within the same send context to be egressed out of FIFO order; and enforcing FIFO ordering for egress of data for packets associated with the same VL within the same send context.