×

Cut-through decode and reliability

  • US 7,889,749 B1
  • Filed: 05/25/2005
  • Issued: 02/15/2011
  • Est. Priority Date: 05/25/2004
  • Status: Active Grant
First Claim
Patent Images

1. A method for writing data received over a network to a memory, comprising:

  • beginning to receive a packet from a packet source at a port of a node operationally coupled to the network, the packet including a header portion and a payload portion, the header portion operating as a memory key for determining an address of the memory where the packet is copied at the node;

    wherein the header portion includes a cut-through checksum that is based on a plurality of fields of data in the header portion for validating the packet before an entire payload for the packet has been received such that at least the received payload portion of the packet is transferred to the memory before the entire payload is received;

    determining the cut-through checksum based on the plurality of fields of data in the header portion;

    validating the determined cut-through checksum with the cut-through checksum in the header portion before the entire packet has been received so as to confirm that a memory location to which the payload is directed is a correct memory location for the payload and not erroneously directed to another memory location;

    using a token identifier as an index to an array maintained by the node for determining the address to store the packet;

    wherein the token identifier is a part of the header portion and is sent to the packet source by the node and identifies a physical memory location to store the packet but is not itself a memory address;

    determining the memory address from the array for storing the packet;

    initiating a write operation upon validation of the cut-through checksum and after determining the memory address, for at least some of the payload, to the correct memory location before the entire packet has been received;

    initiating a direct memory access operation for storing the header portion separate from the payload as a receive header queue entry;

    wherein the node maintains a plurality of receiver header queues, each queue corresponding to an application executed by the node;

    updating a status flag in the receive header queue entry after the packet is received in its entirety; and

    updating a receive pointer to indicate to a processor for the node of a new receive header queue entry;

    wherein a network interface for the node updates the receive pointer after the packet is received and the processor polls the receive pointer to ascertain if there is a new receive header queue entry for processing.

View all claims
  • 5 Assignments
Timeline View
Assignment View
    ×
    ×