
US Patent No: 7,191,241
Number of patents in Portfolio can not be more than 2000
Fast-path apparatus for receiving data corresponding to a TCP connection
Stats
-
Mar 13, 2007
Issued date -
Sep 27, 2002
filing date -
10/260,959
serial no -
In Force
status
Importance
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. A preferred embodiment includes a trio of pipelined processors with separate processors devoted to transmit, receive and management processing, with full duplex communication for four fast Ethernet nodes.
First Claim
Related Publications
International Classification(s)
- [Classification Symbol]
- [Patents Count]
Cited Art
| Patent Info | (Count) | # Cites | Year |
|---|---|---|---|
|
|
|||
| 4,991,133 Specialized communications processor for layered protocols | 144 | 1988 | |
| 5,418,912 System and method for controlling buffer transmission of data packets by limiting buffered data packets in a communication session | 44 | 1993 | |
| 5,448,566 Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communication channel | 99 | 1993 | |
| 5,535,375 File manager for files shared by heterogeneous clients | 167 | 1994 | |
| 5,634,127 Methods and apparatus for implementing a message driven processor in a client-server environment | 240 | 1994 | |
| 5,634,099 Direct memory access unit for transferring data between processor memories in multiprocessing systems | 87 | 1994 | |
| 5,629,933 Method and system for enhanced communication in a multisession packet based communication system | 61 | 1995 | |
| 5,752,078 System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory | 87 | 1995 | |
| 5,619,650 Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message | 151 | 1995 | |
| 5,727,142 Method for a non-disruptive host connection switch after detection of an error condition or during a host outage or failure | 50 | 1996 | |
| 5,802,258 Loosely coupled system environment designed to handle a non-disruptive host connection switch after detection of an error condition or during a host outage or failure | 92 | 1996 | |
| 5,878,225 Dual communication services interface for distributed transaction processing | 67 | 1996 | |
| 6,038,562 Interface to support state-dependent web applications accessing a relational database | 56 | 1996 | |
| 5,892,903 Method and apparatus for detecting and identifying security vulnerabilities in an open network computer communication system | 298 | 1996 | |
| 5,930,830 System and method for concatenating discontiguous memory pages | 80 | 1997 | |
| 6,021,507 Method for a non-disruptive host connection switch after detection of an error condition or during a host outage or failure | 45 | 1997 | |
| 6,044,438 Memory controller for controlling memory accesses across networks in distributed shared memory processing systems | 92 | 1997 | |
| 5,950,203 Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system | 110 | 1997 | |
| 6,681,364 Cyclic redundancy check for partitioned frames | 48 | 1999 | |
|
|
|||
| 5,758,084 Apparatus for parallel client/server communication having data structures which stored values indicative of connection state and advancing the connection state of established connections | 74 | 1995 | |
| 5,592,622 Network intermediate system with message passing architecture | 177 | 1995 | |
| 5,664,114 Asynchronous FIFO queuing system operating with minimal queue status | 76 | 1995 | |
| 5,812,775 Method and apparatus for internetworking buffer management | 85 | 1995 | |
| 6,047,323 Creation and migration of distributed streams in clusters of networked computers | 325 | 1996 | |
| 6,233,242 Network switch with shared memory system | 84 | 1996 | |
| 5,771,349 Network packet switch using shared memory for repeating and bridging packets at media rate | 85 | 1997 | |
| 5,991,299 High speed header translation processing | 114 | 1997 | |
| 6,041,058 Hardware filtering method and apparatus | 93 | 1997 | |
| 6,172,980 Multiple protocol support | 100 | 1997 | |
| 6,289,023 Hardware checksum assist for network protocol stacks | 76 | 1997 | |
| 5,937,169 Offload of TCP segmentation to a smart adapter | 229 | 1997 | |
| 6,057,863 Dual purpose apparatus, method and system for accelerated graphics port and fibre channel arbitrated loop interfaces | 128 | 1997 | |
| 6,016,513 Method of preventing packet loss during transfers of data packets between a network interface card and an operating system of a computer | 55 | 1998 | |
| 6,246,683 Receive processing with network protocol bypass | 136 | 1998 | |
| 6,526,446 Hardware only transmission control protocol segmentation for a high performance network interface card | 42 | 1999 | |
|
|
|||
| 5,758,186 Method and apparatus for generically handling diverse protocol method calls in a client/server computer system | 104 | 1995 | |
| 5,758,089 Method and apparatus for burst transferring ATM packet header and data to a host computer system | 75 | 1995 | |
| 5,848,293 Method and apparatus for transmission and processing of virtual commands | 44 | 1995 | |
| 5,749,095 Multiprocessing system configured to perform efficient write operations | 116 | 1996 | |
| 5,920,566 Routing in a multi-layer distributed network element | 177 | 1997 | |
| 6,049,528 Trunking ethernet-compatible networks | 156 | 1997 | |
| 6,021,446 Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine | 51 | 1997 | |
| 6,356,951 System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction | 143 | 1999 | |
| 6,389,468 Method and apparatus for distributing network traffic processing on a multiprocessor computer | 131 | 1999 | |
| 6,434,651 Method and apparatus for suppressing interrupts in a high-speed network environment | 59 | 1999 | |
| 6,453,360 High performance network interface | 155 | 1999 | |
| 6,480,489 Method and apparatus for data re-assembly with a high performance network interface | 100 | 1999 | |
| 6,650,640 Method and apparatus for managing a network flow in a high performance network interface | 147 | 1999 | |
|
|
|||
| 6,009,478 File array communications interface for communicating between a host computer and an adapter | 81 | 1997 | |
| 6,070,200 Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus | 92 | 1998 | |
| 6,202,105 Host adapter capable of simultaneously transmitting and receiving data of multiple contexts between a computer bus and peripheral bus | 41 | 1998 | |
| 6,298,403 Host adapter having a snapshot mechanism | 45 | 1998 | |
| 6,145,017 Data alignment system for a hardware accelerated command interpreter engine | 50 | 1998 | |
| 6,279,051 Host adapter having paged payload buffers for simultaneously transferring data between a computer bus and a peripheral bus | 63 | 2000 | |
|
|
|||
| 5,548,730 Intelligent bus bridge for input/output subsystems in a computer system | 137 | 1994 | |
| 5,758,194 Communication apparatus for handling networks with different transmission protocols by stripping or adding data to the data stream in the application layer | 76 | 1997 | |
| 6,157,955 Packet processing system including a policy engine having a classification unit | 417 | 1998 | |
| 6,427,169 Parsing a packet header | 110 | 1999 | |
| 6,449,656 Storing a frame header | 79 | 1999 | |
| 6,421,742 Method and apparatus for emulating an input/output unit when transferring data over a network | 47 | 1999 | |
|
|
|||
| 6,247,060 Passing a communication control block from host to a local device such that a message is processed on the device | 219 | 1999 | |
| 6,807,581 Intelligent network storage interface system | 172 | 2000 | |
| 6,334,153 Passing a communication control block from host to a local device such that a message is processed on the device | 162 | 2000 | |
| 6,697,868 Protocol processing stack for use with intelligent network interface device | 138 | 2002 | |
| 6,941,386 Protocol processing stack for use with intelligent network interface device | 96 | 2003 | |
|
|
|||
| 5,056,058 Communication protocol for predicting communication frame type in high-speed processing system | 101 | 1990 | |
| 5,303,344 Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer | 106 | 1991 | |
| 5,678,060 System for executing high speed communication protocol processing by predicting protocol header of next frame utilizing successive analysis of protocol header until successful header retrieval | 87 | 1994 | |
| 5,701,434 Interleave memory controller with a common access queue | 121 | 1995 | |
| 5,935,205 Computer system having a plurality of computers each providing a shared storage access processing mechanism for controlling local/remote access to shared storage devices | 80 | 1996 | |
|
|
|||
| 5,163,131 Parallel I/O network file server architecture | 787 | 1989 | |
| 5,485,579 Multiple facility operating system architecture | 311 | 1994 | |
| 5,701,516 High-performance non-volatile RAM protected write cache accelerator system employing DMA and data transferring scheme | 142 | 1996 | |
| 5,931,918 Parallel I/O network file server architecture | 318 | 1997 | |
| 5,941,969 Bridge for direct data storage device access | 132 | 1997 | |
|
|
|||
| 5,524,250 Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers | 93 | 1994 | |
| 5,913,028 Client/server data traffic delivery system and method | 122 | 1995 | |
| 6,097,734 Programmable reassembly of data received in an ATM network | 36 | 1997 | |
| 6,101,555 Methods and apparatus for communicating between networked peripheral devices | 54 | 1998 | |
|
|
|||
| 5,815,646 Decompression processor for video applications | 81 | 1994 | |
| 6,065,096 Integrated single chip dual mode raid controller | 102 | 1997 | |
| 6,591,310 Method of responding to I/O request and associated reply descriptor | 161 | 2000 | |
|
|
|||
| 5,289,580 Programmable multiple I/O interface controller | 147 | 1991 | |
| 5,809,328 Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channel controller, gigabit link module, microprocessor, and bus control device | 152 | 1995 | |
| 6,345,301 Split data path distributed network protocol | 88 | 1999 | |
|
|
|||
| 6,226,680 Intelligent network interface system method for protocol processing | 286 | 1998 | |
| 6,389,479 Intelligent network interface device and system for accelerated communication | 185 | 1998 | |
|
|
|||
| 5,751,715 Accelerator fiber channel hub and protocol | 118 | 1996 | |
| 2004/0153,578 System and method for handling transport protocol segments | 45 | 2004 | |
|
|
|||
| 5,872,919 Computer communication network having a packet processor with an execution unit which is variably configured from a programmable state machine and logic | 63 | 1997 | |
| 6,490,631 Multiple processors in a row for protocol acceleration | 38 | 1997 | |
|
|
|||
| 6,067,569 Fast-forwarding and filtering of network packets in a computer system | 108 | 1997 | |
| 6,141,705 System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed | 142 | 1998 | |
|
|
|||
| 5,511,169 Data transmission apparatus and a communication path management method therefor | 82 | 1993 | |
| 5,590,328 Protocol parallel processing apparatus having a plurality of CPUs allocated to process hierarchical protocols | 82 | 1995 | |
|
|
|||
| 6,034,963 Multiple network protocol encoder/decoder and data processor | 168 | 1996 | |
| 2003/0165,160 Gigabit Ethernet adapter | 125 | 2002 | |
|
|
|||
| 6,122,670 Apparatus and method for constructing data for transmission within a reliable communication protocol by performing portions of the protocol suite concurrently | 152 | 1997 | |
| 6,345,302 System for transmitting and receiving data within a reliable communications protocol by concurrently processing portions of the protocol suite | 68 | 2000 | |
|
|
|||
| 5,566,170 Method and apparatus for accelerated packet forwarding | 316 | 1994 | |
| 5,598,410 Method and apparatus for accelerated packet processing | 211 | 1994 | |
|
|
|||
| 6,912,522 System, method and computer program product for optimization and acceleration of data transport and processing | 78 | 2001 | |
|
|
|||
| 5,517,668 Distributed protocol framework | 51 | 1994 | |
|
|
|||
| 6,078,733 Network interface having support for message processing and an interface to a message coprocessor | 56 | 1996 | |
|
|
|||
| 5,642,482 System for network transmission using a communication co-processor comprising a microprocessor to implement protocol layer and a microprocessor to manage DMA | 62 | 1994 | |
|
|
|||
| 5,898,713 IP checksum offload | 54 | 1997 | |
|
|
|||
| 5,941,972 Storage router and method for providing virtual local storage | 427 | 1997 | |
|
|
|||
| 5,996,024 Method and apparatus for a SCSI applications server which extracts SCSI commands and data from message and encapsulates SCSI responses to provide transparent operation | 137 | 1998 | |
|
|
|||
| 6,005,849 Full-duplex communication processor which can be used for fibre channel frames | 83 | 1997 | |
|
|
|||
| 6,115,615 Cellular communication network and its communication method | 53 | 1997 | |
|
|
|||
| 4,366,538 Memory controller with queue control apparatus | 62 | 1980 | |
|
|
|||
| 5,699,317 Enhanced DRAM with all reads from on-chip cache and all writers to memory array | 137 | 1994 | |
|
|
|||
| 5,588,121 Parallel computer having MAC-relay layer snooped transport header to determine if a message should be routed directly to transport layer depending on its destination | 125 | 1996 | |
|
|
|||
| 6,173,333 TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols | 147 | 1999 | |
|
|
|||
| 5,212,778 Message-driven processor in a concurrent computer | 103 | 1988 | |
|
|
|||
| 6,385,647 System for selectively routing data via either a network that supports Internet protocol or via satellite transmission network based on size of the data | 152 | 1997 | |
|
|
|||
| 5,794,061 General purpose, multiple precision parallel operation, programmable media processor | 88 | 1996 | |
|
|
|||
| 5,790,804 Computer network interface and network protocol with direct deposit messaging | 117 | 1996 | |
|
|
|||
| 6,026,452 Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data | 123 | 1998 | |
|
|
|||
| 5,506,966 System for message traffic control utilizing prioritized message chaining for queueing control ensuring transmission/reception of high priority messages | 89 | 1992 | |
|
|
|||
| 5,280,477 Network synchronous data distribution system | 77 | 1992 | |
|
|
|||
| 5,742,765 Combination local ATM segmentation and reassembly and physical layer device | 109 | 1996 | |
|
|
|||
| 5,671,355 Reconfigurable network interface apparatus and method | 209 | 1996 | |
|
|
|||
| 5,692,130 Method for selectively using one or two communication channel by a transmitting data terminal based on data type and channel availability | 63 | 1995 | |
|
|
|||
| 6,487,654 Virtual shadow registers and virtual register windows | 53 | 2001 | |
|
|
|||
| 6,047,356 Method of dynamically allocating network node memory's partitions for caching distributed files | 90 | 1994 | |
|
|
|||
| 5,097,442 Programmable depth first-in, first-out memory | 68 | 1988 | |
|
|
|||
| 4,589,063 Data processing system having automatic configuration | 228 | 1983 | |
|
|
|||
| 5,412,782 Programmed I/O ethernet adapter with early interrupts for accelerating data transfer | 143 | 1992 | |
|
|
|||
| 5,058,110 Protocol processor | 155 | 1989 | |
|
|
|||
| 6,061,368 Custom circuitry for adaptive hardware routing engine | 124 | 1997 | |
|
|
|||
| 5,802,580 High performance digital electronic system architecture and memory circuit thereof | 65 | 1997 | |
| 2001/0025,315 Term addressable memory of an accelerator system and method | 64 | 2001 | |
Patent Citation Ranking
Maintenance Fees
| Fee | Large entity fee | small entity fee | micro entity fee | due date |
|---|---|---|---|---|
| 7.5 Year Payment | $3600.00 | $1800.00 | $900.00 | Sep 13, 2014 |
| 11.5 Year Payment | $7400.00 | $3700.00 | $1850.00 | Sep 13, 2018 |
| Fee | Large entity fee | small entity fee | micro entity fee |
|---|---|---|---|
| Surcharge - 7.5 year - Late payment within 6 months | $160.00 | $80.00 | $40.00 |
| Surcharge - 11.5 year - Late payment within 6 months | $160.00 | $80.00 | $40.00 |
| Surcharge after expiration - Late payment is unavoidable | $700.00 | $350.00 | $175.00 |
| Surcharge after expiration - Late payment is unintentional | $1,640.00 | $820.00 | $410.00 |