Patents Assigned to Alacritech, Inc.
  • Patent number: 7093099
    Abstract: A processor natively executes lookup instructions. The lookup instruction is decoded to determine which general-purpose register (GPR) contains a pointer to a lookup key in a buffer. A variable-length key is read from the buffer and hashed to generate an index into a first-level cache and a hashed tag. An address of a bucket of entries for the index is generated and tags from these entries are read and compared to the hashed tag. When an entry matches the hashed tag, a second-level entry is read. A stored key from the second-level entry is compared to the input key to determine a match. The addresses of the matching second-level and first-level entries are written to GPR's specified by operands decoded from the lookup instruction. When the key or entry data is long, the second-level entry also contains a pointer to a key extension or data extension in a third-level cache.
    Type: Grant
    Filed: April 2, 2003
    Date of Patent: August 15, 2006
    Assignee: Alacritech, Inc.
    Inventors: Amod Bodas, Tarun Kumar Tripathy, Mehul Kharidia, Millind Mittal, J. Sukarno Mertoguno
  • Patent number: 7089326
    Abstract: A network interface device provides a fast-path that avoids most host TCP and IP protocol processing for most messages. The host retains a fallback slow-path processing capability. In one embodiment, generation of a response to a TCP/IP packet received onto the network interface device is accelerated by determining the TCP and IP source and destination information from the incoming packet, retrieving an appropriate template header, using a finite state machine to fill in the TCP and IP fields in the template header without sequential TCP and IP protocol processing, combining the filled-in template header with a data payload to form a packet, and then outputting the packet from the network interface device by pushing a pointer to the packet onto a transmit queue. A transmit sequencer retrieves the pointer from the transmit queue and causes the corresponding packet to be output from the network interface device.
    Type: Grant
    Filed: May 6, 2002
    Date of Patent: August 8, 2006
    Assignee: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Stephen E. J. Blightman, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Patent number: 7076568
    Abstract: An interface device is connected to a host by an I/O bus and provides hardware and processing mechanisms for accelerating data transfers between a network and a storage unit, while controlling the data transfers by the host. The interface device includes hardware circuitry for processing network packet headers, and can use a dedicated fast-path for data transfer between the network and the storage unit, the fast-path set up by the host. The host CPU and protocol stack avoids protocol processing for data transfer over the fast-path, freeing host bus bandwidth, and the data need not cross the I/O bus, freeing I/O bus bandwidth. Realtime audio and video communication can also be provided when the interface device is coupled by an audio/video interface to appropriate communication devices, such as microphone, a speaker, a camera and/or a display.
    Type: Grant
    Filed: March 9, 2001
    Date of Patent: July 11, 2006
    Assignee: Alacritech, Inc.
    Inventors: Clive M. Philbrick, Laurence B. Boucher, Daryl D. Starr
  • Patent number: 7042898
    Abstract: A first partial checksum for the header portion of a TCP header is generated on an intelligent network interface card (INIC) before all the data of the data payload of the TCP message has been transferred to the INIC. A pseudopacket with the first partial checksum and the data is assembled in DRAM on the INIC as the data arrives onto the INIC. When the last portion of the data of the data payload is received onto the INIC, a second partial checksum for the data payload is generated. The pseudopacket is read out of DRAM for transfer to a network. While the pseudopacket is being transferred, the second partial header is combined with the first partial header and the resulting final checksum is inserted into the pseudopacket so that a complete TCP packet with a correct checksum is output from the INIC to the network.
    Type: Grant
    Filed: March 9, 2001
    Date of Patent: May 9, 2006
    Assignee: Alacritech, Inc.
    Inventors: Stephen E. J. Blightman, Laurence B. Boucher, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Patent number: 6996070
    Abstract: A TCP Offload Engine (TOE) device includes a state machine that performs TCP/IP protocol processing operations in parallel. In a first aspect, the state machine includes a first memory, a second memory, and combinatorial logic. The first memory stores and simultaneously outputs multiple TCP state variables. The second memory stores and simultaneously outputs multiple header values. In contrast to a sequential processor technique, the combinatorial logic generates a flush detect signal from the TCP state variables and header values without performing sequential processor instructions or sequential memory accesses. In a second aspect, a TOE includes a state machine that performs an update of multiple TCP state variables in a TCB buffer all simultaneously, thereby avoiding multiple sequential writes to the TCB buffer memory. In a third aspect, a TOE involves a state machine that sets up a DMA move in a single state machine clock cycle.
    Type: Grant
    Filed: December 5, 2003
    Date of Patent: February 7, 2006
    Assignee: Alacritech, Inc.
    Inventors: Daryl D. Starr, Clive M. Philbrick
  • Patent number: 6965941
    Abstract: A network interface device provides a fast-path that avoids most host TCP and IP protocol processing for most messages. The host retains a fallback slow-path processing capability. In one embodiment, generation of a response to a TCP/IP packet received onto the network interface device is accelerated by determining the TCP and IP source and destination information from the incoming packet, retrieving an appropriate template header, using a finite state machine to fill in the TCP and IP fields in the template header without sequential TCP and IP protocol processing, combining the filled-in template header with a data payload to form a packet, and then outputting the packet from the network interface device by pushing a pointer to the packet onto a transmit queue. A transmit sequencer retrieves the pointer from the transmit queue and causes the corresponding packet to be output from the network interface device.
    Type: Grant
    Filed: December 17, 2001
    Date of Patent: November 15, 2005
    Assignee: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Stephen E. J. Blightman, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Patent number: 6941386
    Abstract: A host CPU runs a network protocol processing stack that provides instructions not only to process network messages but also to allocate processing of certain network messages to a specialized network communication device, offloading some of the most time consuming protocol processing from the host CPU to the network communication device. By allocating common and time consuming network processes to the device, while retaining the ability to handle less time intensive and more varied processing on the host stack, the network communication device can be relatively simple and cost effective. The host CPU, operating according to instructions from the stack, and the network communication device together determine whether and to what extent a given message is processed by the host CPU or by the network communication device.
    Type: Grant
    Filed: November 12, 2003
    Date of Patent: September 6, 2005
    Assignee: Alacritech, Inc.
    Inventors: Peter K. Craft, Clive M. Philbrick, Laurence B. Boucher, David A. Higgen
  • Patent number: 6938092
    Abstract: TCP/IP traffic passing over a TCP connection is initially load balanced by a TCP offload network interface device (NID) in fast-path between multiple ports of an aggregation team. A failure then occurs on one of the ports. Processing of the TCP connection then switches to slow-path. The function of the failed port is then assumed by another functioning port of the team such that fast-path processing of the TCP connection by the TCP offload NID automatically resumes. The two ports of the TCP offload NID (the failed port and the port that assumes its functionality) use different MAC addresses. Fast-path load balancing and fail-over are therefore possible without the use of a Fast-Etherchannel switch that would have required the two ports to use the same MAC address.
    Type: Grant
    Filed: August 27, 2002
    Date of Patent: August 30, 2005
    Assignee: Alacritech, Inc.
    Inventor: David A. Burns
  • Publication number: 20040240435
    Abstract: A Network Interface device (NI device) coupled to a host computer receives a multi-packet message from a network (for example, the Internet) and DMAs the data portions of the various packets directly into a destination in application memory on the host computer. The address of the destination is determined by supplying a first part of the first packet to an application program such that the application program returns the address of the destination. The address is supplied by the host computer to the NI device so that the NI device can DMA the data portions of the various packets directly into the destination. In some embodiments the NI device is an expansion card added to the host computer, whereas in other embodiments the NI device is a part of the host computer.
    Type: Application
    Filed: June 29, 2004
    Publication date: December 2, 2004
    Applicant: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Stephen E. J. Blightman, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Patent number: 6807581
    Abstract: An interface device is connected to a host by an I/O bus and provides hardware and processing mechanisms for accelerating data transfers between a network and a storage unit, while controlling the data transfers by the host. The interface device includes hardware circuitry for processing network packet headers, and can use a dedicated fast-path for data transfer between the network and the storage unit, the fast-path set up by the host. The host CPU and protocol stack avoids protocol processing for data transfer over the fast-path, freeing host bus bandwidth, and the data need not cross the I/O bus, freeing I/O bus bandwidth. The storage unit may include RAID or other multiple drive configurations and may be connected to the INIC by a parallel channel such as SCSI or by a serial channel such as Ethernet or Fibre Channel.
    Type: Grant
    Filed: September 29, 2000
    Date of Patent: October 19, 2004
    Assignee: Alacritech, Inc.
    Inventors: Daryl D. Starr, Clive M. Philbrick, Laurence B. Boucher
  • Publication number: 20040158793
    Abstract: A device and method are disclosed for calculating a CRC on a message or block of data that has been divided into portions, by calculating a partial CRC corresponding to each of the portions and then combining the partial CRCs. The device and method are operable for portions that may have different lengths, and which may be received out of order.
    Type: Application
    Filed: February 12, 2003
    Publication date: August 12, 2004
    Applicant: Alacritech, Inc.
    Inventors: Stephen E. J. Blightman, Daryl D. Starr, Clive M. Philbrick
  • Patent number: 6757746
    Abstract: A Network Interface device (NI device) coupled to a host computer receives a multi-packet message from a network (for example, the Internet) and DMAs the data portions of the various packets directly into a destination in application memory on the host computer. The address of the destination is determined by supplying a first part of the first packet to an application program such that the application program returns the address of the destination. The address is supplied by the host computer to the NI device so that the NI device can DMA the data portions of the various packets directly into the destination. In some embodiments the NI device is an expansion card added to the host computer, whereas in other embodiments the NI device is a part of the host computer.
    Type: Grant
    Filed: February 20, 2001
    Date of Patent: June 29, 2004
    Assignee: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Stephen E. J. Blightman, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Publication number: 20040117509
    Abstract: A host CPU runs a network protocol processing stack that provides instructions not only to process network messages but also to allocate processing of certain network messages to a specialized network communication device, offloading some of the most time consuming protocol processing from the host CPU to the network communication device. By allocating common and time consuming network processes to the device, while retaining the ability to handle less time intensive and more varied processing on the host stack, the network communication device can be relatively simple and cost effective. The host CPU, operating according to instructions from the stack, and the network communication device together determine whether and to what extent a given message is processed by the host CPU or by the network communication device.
    Type: Application
    Filed: November 12, 2003
    Publication date: June 17, 2004
    Applicant: Alacritech, Inc.
    Inventors: Peter K. Craft, Clive M. Philbrick, Laurence B. Boucher, David A. Higgen
  • Patent number: 6751665
    Abstract: An intelligent network interface card (INIC) or communication processing device (CPD) works with a host computer for data communication. The device provides a fast-path that avoids protocol processing for most messages, greatly accelerating data transfer and offloading time-intensive processing tasks from the host CPU. The host retains a fallback processing capability for messages that do not fit fast-path criteria, with the device providing assistance such as validation even for slow-path messages, and messages being selected for either fast-path or slow-path processing. A context for a connection is defined that allows the device to move data, free of headers, directly to or from a destination or source in the host. The context can be passed back to the host for message processing by the host. The device contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU.
    Type: Grant
    Filed: February 19, 2003
    Date of Patent: June 15, 2004
    Assignee: Alacritech, Inc.
    Inventors: Clive M. Philbrick, Peter K. Craft
  • Publication number: 20040088262
    Abstract: An electronic device (for example, a NIC card) can perform a base function (for example, “dumb” NIC functionality) and also has specialized hardware for performing an enhanced function (for example, TCP offload functionality). Initially, the electronic device is capable of performing the base function but the enhanced function is disabled. The electronic device is priced to be price competitive with other devices that perform the base function but not the enhanced function. By this pricing, large numbers of the electronic devices are disseminated into the marketplace. Once an electronic device has been disseminated and supplied to a user, the user can make an additional payment to have the enhanced function enabled. In one embodiment, a user who pays for the enhanced functionality accesses a web-based license manager and receives a license key. The license key is usable to write a capabilities code into the electronic device that enables the enhanced function.
    Type: Application
    Filed: November 6, 2002
    Publication date: May 6, 2004
    Applicant: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Esther Lee, Richard Blackborow, Barry Haaser, Joseph L. Gervais, Benjamin L. Dagana, Peter Craft
  • Publication number: 20040073703
    Abstract: A system for protocol processing in a computer network has an intelligent network interface card (INIC) or communication processing device (CPD) associated with a host computer. The INIC provides a fast-path that avoids protocol processing for most large multi-packet messages, greatly accelerating data communication. The INIC also assists the host for those message packets that are chosen for processing by host software layers. A communication control block for a message is defined that allows DMA controllers of the INIC to move data, free of headers, directly to or from a destination or source in the host. The context is stored in the INIC as a communication control block (CCB) that can be passed back to the host for message processing by the host. The INIC contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU.
    Type: Application
    Filed: September 27, 2002
    Publication date: April 15, 2004
    Applicant: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Stephen E. J. Blightman, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Publication number: 20040062246
    Abstract: An intelligent network interface card (INIC) or communication processing device (CPD) works with a host computer for data communication. The device provides a fast-path that avoids protocol processing for most messages, greatly accelerating data transfer and offloading time-intensive processing tasks from the host CPU. The host retains a fallback processing capability for messages that do not fit fast-path criteria, with the device providing assistance such as validation even for slow-path messages, and messages being selected for either fast-path or slow-path processing. A context for a connection is defined that allows the device to move data, free of headers, directly to or from a destination or source in the host. The context can be passed back to the host for message processing by the host. The device contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU.
    Type: Application
    Filed: June 19, 2003
    Publication date: April 1, 2004
    Applicant: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Stephen E. J. Blightman, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Publication number: 20040064589
    Abstract: A system for protocol processing in a computer network has an intelligent network interface card (INIC) or communication processing device (CPD) associated with a host computer. The INIC provides a fast-path that avoids protocol processing for most large multi-packet messages, greatly accelerating data communication. The INIC also assists the host for those message packets that are chosen for processing by host software layers. A communication control block for a message is defined that allows DMA controllers of the INIC to move data, free of headers, directly to or from a destination or source in the host. The context is stored in the INIC as a communication control block (CCB) that can be passed back to the host for message processing by the host. The INIC contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU.
    Type: Application
    Filed: September 27, 2002
    Publication date: April 1, 2004
    Applicant: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Stephen E. J. Blightman, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Publication number: 20040064578
    Abstract: A system for protocol processing in a computer network has an intelligent network interface card (INIC) or communication processing device (CPD) associated with a host computer. The INIC provides a fast-path that avoids protocol processing for most large multi-packet messages, greatly accelerating data communication. The INIC also assists the host for those message packets that are chosen for processing by host software layers. A communication control block for a message is defined that allows DMA controllers of the INIC to move data, free of headers, directly to or from a destination or source in the host. The context is stored in the INIC as a communication control block (CCB) that can be passed back to the host for message processing by the host. The INIC contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU.
    Type: Application
    Filed: September 27, 2002
    Publication date: April 1, 2004
    Applicant: Alacritech, Inc.
    Inventors: Laurence B. Boucher, Stephen E. J. Blightman, Peter K. Craft, David A. Higgen, Clive M. Philbrick, Daryl D. Starr
  • Publication number: 20040064590
    Abstract: An interface device is connected to a host by an I/O bus and provides hardware and processing mechanisms for accelerating data transfers between a network and a storage unit, while controlling the data transfers by the host. The interface device includes hardware circuitry for processing network packet headers, and can use a dedicated fast-path for data transfer between the network and the storage unit, the fast-path set up by the host. The host CPU and protocol stack avoids protocol processing for data transfer over the fast-path, freeing host bus bandwidth, and the data need not cross the I/O bus, freeing I/O bus bandwidth. The storage unit may include RAID or other multiple drive configurations and may be connected to the INIC by a parallel channel such as SCSI or by a serial channel such as Ethernet or Fibre Channel.
    Type: Application
    Filed: September 30, 2002
    Publication date: April 1, 2004
    Applicant: Alacritech, Inc.
    Inventors: Daryl D. Starr, Clive M. Philbrick, Laurence B. Boucher