US2006129699A1PendingUtilityA1

Network interface adapter with shared data send resources

48
Assignee: MELLANOX TECHNOLOGIES LTDPriority: Apr 11, 2001Filed: Feb 7, 2006Published: Jun 15, 2006
Est. expiryApr 11, 2021(expired)· nominal 20-yr term from priority
G06F 13/1605
48
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A network interface adapter includes an outgoing packet generator, adapted to generate an outgoing request packet for delivery to a remote responder responsive to a request submitted by a host processor and a network output port, coupled to transmit the outgoing request packet over a network to the remote responder. A network input port receives an incoming response packet from the remote responder, in response to the outgoing request packet sent thereto, as well as an incoming request packet sent by a remote requester. An incoming packet processor receives and processes both the incoming response packet and the incoming request packet, and causes the outgoing packet generator, responsive to the incoming request packet, to generate, in addition to the outgoing request packet, an outgoing response packet for transmission to the remote requester.

Claims

exact text as granted — not AI-modified
1 . A network interface adapter, which comprises a plurality of circuit elements arranged on a single integrated circuit chip, the elements comprising: 
 a host interface, for coupling to a host processor and to host system resources associated with the host processor;    a network input port, for coupling to a network so as to receive incoming read request packets sent by a remote requester, specifying data to be read via the host interface;    an incoming packet processor, coupled to the network input port so as to receive and process the incoming read request packets, and further coupled to a memory off the chip so as to write a list of descriptors to the memory indicating the data to be read in response to the incoming read request packets;    an outgoing packet processor, coupled to the host interface so as to read the list of descriptors from the memory and, responsive thereto, to read the indicated data and to generate outgoing response packets containing the indicated data; and    a network output port, coupled to receive the outgoing response packets from the outgoing packet processor so as to transmit the outgoing response packets over the network to the remote requester.    
   
   
       2 . An adapter according to  claim 1 , wherein the outgoing packet processor comprises a doorbell register, and wherein the incoming packet processor is coupled to write to the doorbell register in order to signal the outgoing packet processor to read the list.  
   
   
       3 . An adapter according to  claim 1 , wherein the network input and output ports are adapted to receive and send the incoming and outgoing packets, respectively, over a plurality of transport service instances, and wherein the incoming packet processor is adapted to write the descriptors to a plurality of lists corresponding to the plurality of the transport service instances.  
   
   
       4 . An adapter according to  claim 3 , wherein the incoming packet processor is adapted to maintain the plurality of the lists in a response database held in the memory for all the instances in common.  
   
   
       5 . An adapter according to  claim 4 , wherein each of the instances is assigned a respective number of entries in the database to which its descriptors can be written.  
   
   
       6 . An adapter according to  claim 5 , wherein the entries for each of the instances are arranged in the database in a cyclic buffer.  
   
   
       7 . An adapter according to  claim 3 , wherein the transport service instances comprise queue pairs.  
   
   
       8 . An adapter according to  claim 3 , wherein the outgoing packet generator comprises a plurality of schedule queues and is adapted to generate the outgoing response packets responsive to entries placed in the queues, each of the entries corresponding to one of the transport service instances for which the lists were prepared by the incoming packet processor.  
   
   
       9 . An adapter according to  claim 8 , wherein the transport service instances are assigned to the queues based on service parameters of the instances, and wherein the outgoing packet generator comprises a scheduler, which is coupled to select the entries from the queues for service responsive to the service parameters.  
   
   
       10 . An adapter according to  claim 3 , wherein each of the descriptors occupies a given volume of space in the off-chip memory, and wherein a maximum number of incoming read requests, generated responsive to the incoming read request packets, that can be outstanding at any given time is determined by the space available in the off-chip memory.  
   
   
       11 . An adapter according to  claim 1 , wherein the system resources associated with the host processor comprise a system memory, and wherein at least a portion of the off-chip memory to which the list of descriptors is written is comprised in the system memory.  
   
   
       12 . A method for coupling a host processor and a system memory associated therewith to a network, comprising: 
 receiving at a network interface adapter chip coupled to the host processor incoming read request packets sent by remote requesters over respective transport service instances on the network, the read request packets specifying data to be read from the system memory;    writing descriptors using the network adapter chip, responsive to the incoming read request packets, in a plurality of lists in an off-chip memory, the lists corresponding respectively to the transport service instances, the descriptors indicating the data to be read from the system memory;    reading the lists of descriptors from the off-chip memory and, responsive thereto, reading the indicated data and generating outgoing response packets containing the indicated data; and    transmitting the outgoing response packets to the remote requesters over respective transport service instances on the network.    
   
   
       13 . A method according to  claim 12 , wherein the transport service instances comprise queue pairs.  
   
   
       14 . A method according to  claim 12 , wherein reading the lists of the descriptors comprises writing to a doorbell register of the network interface adapter chip in order to signal the network interface adapter chip to read the lists and to generate the outgoing response packets responsive thereto.  
   
   
       15 . A method according to  claim 14 , and comprising assigning the transport service instances to respective schedule queues, and placing entries in the schedule queues after writing the descriptors to the off-chip memory, each of the entries corresponding to one of the transport service instances having one of the lists corresponding thereto, wherein reading the lists of descriptors comprises selecting the entries from the queues and reading the lists responsive the selected entries.  
   
   
       16 . A method according to  claim 15 , wherein assigning the transport service instances to the queues comprises assigning the instances based on service parameters of the instances, and wherein reading the lists of descriptors comprises executing the descriptors responsive to the services parameters.  
   
   
       17 . A method according to  claim 12 , wherein each of the descriptors occupies a given volume of space in the off-chip memory, and wherein writing the descriptors comprises generating outstanding read request descriptors, responsive to the incoming read request packets, up to a maximum number of incoming read request descriptors that can be outstanding at any given time as determined by the space available in the off-chip memory.  
   
   
       18 . A method according to  claim 12 , wherein the off-chip memory to which the network interface adapter chip writes the descriptors is comprised in the system memory.  
   
   
       19 . A method according to  claim 12 , wherein writing the descriptors comprises maintaining the plurality of the lists in a response database held in the off-chip memory for all the instances in common.  
   
   
       20 . A method according to  claim 19 , wherein maintaining the plurality of the lists comprises assigning each of the instances a respective number of entries in the database to which its descriptors can be written.  
   
   
       21 . A method according to  claim 20 , wherein the maintaining the plurality of the lists comprises arranging the entries for each of the instances in the database as a cyclic buffer.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.