Claims
- 1. A transport protocol receiver for receiving a packet from a network, the packet having a header, payload, and connection context, the receiver comprising:
an analysis engine, coupled to receive the packet from the network and adapted to parse and validate the header, locate the connection context, and generate a classification of the header; a context processing engine, coupled to the analysis engine, and adapted to evaluate and update the connection context, responsive to the classification; and a data dispatch engine, coupled to the analysis engine and the context processing engine, and adapted to convey the payload to a destination, responsive to the connection context, such that the analysis engine, the context processing engine, and the data dispatch engine operate substantially asynchronously.
- 2. A receiver according to claim 1, wherein the analysis engine comprises one or more hardware validation processors which parse and validate the header, and one or more hardware connection context processors which locate the connection context and generate the classification of the header responsive to the parsing and validation of the header.
- 3. A receiver according to claim 1, wherein the context processing engine comprises a hardware preliminary context processing processor which performs an initial evaluation of the connection context and a hardware final context processing processor which performs a final evaluation of the connection context responsive to the initial evaluation.
- 4. A receiver according to claim 1, and comprising a fast access memory, and wherein the analysis engine is adapted to transfer an established connection context from an external memory to the fast access memory, and wherein the context processing engine is adapted to access the fast access memory and evaluate and update the connection context responsive to the established connection context.
- 5. A receiver according to claim 1, wherein the analysis engine is adapted to accelerate processing of the packet, and is adapted to extract the packet to a host wherein the packet is handled by a software implementation of the transport protocol, responsive to the connection context not being marked for acceleration.
- 6. A receiver according to claim 1, and comprising a synchronization module, and wherein the context processing engine is adapted to instruct the synchronization module to remove a connection responsive to the connection context.
- 7. A receiver according to claim 1, wherein the analysis engine, the context processing engine, and the data dispatch engine respectively comprise one or more subsets, wherein each subset comprises a pre-defined execution unit comprised within the respective engine.
- 8. A receiver according to claim 7, wherein the one or more subsets comprised in the context processing engine are operative responsive to the header and the one or more subsets comprised in the analysis engine.
- 9. A receiver according to claim 7, wherein the one or more subsets comprised in the data dispatch engine are operative responsive to the header and the one or more subsets comprised in the context processing engine.
- 10. A receiver according to claim 7, wherein the header is transferred through at least part of the analysis engine and the context processing engine substantially without action by the at least part of the analysis engine and the context processing engine responsive to the pre-defined execution unit.
- 11. A receiver according to claim 7, wherein the header is transferred through at least part of the context processing engine substantially without action by the at least part of the context processing engine responsive to the pre-defined execution unit.
- 12. A receiver according to claim 1, wherein the analysis engine, the context processing engine, and the data dispatch engine respectively comprise at least one reduced instruction set computer (RISC) processor.
- 13. A receiver according to claim 12, wherein the at least one RISC processor comprises a first RISC processor and a second RISC processor, and wherein the first and second processors are coupled by a forwarding data bus, and wherein an output register in the first processor acts as an input register to the second processor.
- 14. A receiver according to claim 12, wherein the at least one RISC processor comprises a first set of registers and a second set of registers, the sets being adapted to be coupled to a forwarding data bus, the at least one RISC processor toggling the first and second sets in alternation between a first state wherein the first register is coupled to the bus and the second register is operated on by the at least one RISC processor, and a second state wherein the first register is operated on by the at least one RISC processor and the second register is coupled to the bus.
- 15. A transport protocol receiver accelerator for disposing of a packet received on a network, comprising:
a first processor, adapted to perform a first stage of processing on the packet during a first period of time, so as to generate a classification responsive to data in a packet header; a second processor, adapted to perform a second stage of processing on the packet during a second period of time independent of the first period of time, responsive to the classification; and a forwarding data bus coupled between the first and second processors, so as to convey the classification from the first processor to the second processor.
- 16. An accelerator according to claim 15, wherein the classification comprises an event, and wherein the event acts as a trigger initiating operation of the second processor.
- 17. An accelerator according to claim 15, wherein the first processor comprises first logic adapted to execute a first stage of processing on the packet and wherein the second processor comprises second logic adapted to execute a second stage of processing on the packet, wherein the first stage and the second stage are selected from an accelerated stage and a non-accelerated stage.
- 18. An accelerator according to claim 15, wherein the second stage of processing determines a routing of the packet to a subsequent stage of processing.
- 19. A transport protocol processor for receiving a packet from a network, the packet having a header in accordance with a transport protocol, the processor comprising:
a plurality of accelerated stages coupled in a pipeline and adapted to perform successive, respective classifications of the header; a plurality of non-accelerated stages, adapted to receive and process the header responsive to the classifications, such that the accelerated and non-accelerated stages together perform substantially all steps required to process the header in accordance with the transport protocol; and routing logic, coupled to each of the accelerated stages, implemented to convey the header, following each of the stages, to a next stage selected from the accelerated stages and non-accelerated stages.
- 20. A method for receiving a packet from a network, the packet having a header, payload, and connection context in accordance with a transport protocol, comprising:
receiving the packet in an analysis engine which is coupled to the network; parsing, validating, and generating a classification of the header in the analysis engine; locating the connection context in the analysis engine; evaluating and updating the connection context in a context processing engine, responsive to the classification; and conveying the payload to a destination, responsive to the connection context, from a data dispatch engine coupled to the analysis engine and the context processing engine, so that the analysis engine, the context processing engine, and the data dispatch engine operate substantially asynchronously.
- 21. A method according to claim 20, wherein the analysis engine comprises one or more hardware validation processors which parse and validate the header, and one or more hardware connection context processors which locate the connection context and generate the classification of the header responsive to the parsing and validation of the header.
- 22. A method according to claim 20, wherein the context processing engine comprises a hardware preliminary context processing processor which performs an initial evaluation of the connection context and a hardware final context processing processor which performs a final evaluation of the connection context responsive to the initial evaluation.
- 23. A method according to claim 20, and comprising providing a fast access memory, wherein the analysis engine is adapted to transfer an established connection context from an external memory to the fast access memory, and wherein the context processing engine is adapted to access the fast access memory and evaluate and update the connection context responsive to the established connection context.
- 24. A method according to claim 20, wherein the analysis engine is adapted to accelerate processing of the packet, and is adapted to extract the packet to a host wherein the packet is handled by a software implementation of the transport protocol, responsive to the connection context not being marked for acceleration.
- 25. A method according to claim 20, and comprising the context processing engine instructing a synchronization module to remove a connection responsive to the connection context.
- 26. A method according to claim 20, wherein the analysis engine, the context processing engine, and the data dispatch engine respectively comprise one or more subsets, wherein each subset comprises a pre-defined execution unit comprised within the respective engine.
- 27. A method according to claim 26, wherein the one or more subsets comprised in the context processing engine are operative responsive to the header and the one or more subsets comprised in the analysis engine.
- 28. A method according to claim 26, wherein the one or more subsets comprised in the data dispatch engine are operative responsive to the header and the one or more subsets comprised in the context processing engine.
- 29. A method according to claim 26, and comprising transferring the header through at least part of the analysis engine and the context processing engine substantially without action by the at least part of the analysis engine and the context processing engine responsive to the pre-defined execution unit.
- 30. A method according to claim 26, and comprising transferring the header through at least part of the context processing engine substantially without action by the at least part of the context processing engine responsive to the pre-defined execution unit.
- 31. A method according to claim 20, wherein the analysis engine, the context processing engine, and the data dispatch engine respectively comprise at least one reduced instruction set computer (RISC) processor.
- 32. A method according to claim 31, wherein the at least one RISC processor comprises a first RISC processor and a second RISC processor, and comprising coupling the first and second processors by a forwarding data bus, and wherein an output register in the first processor acts as an input register to the second processor.
- 33. A method according to claim 31, wherein the at least one RISC processor comprises a first set of registers and a second set of registers, the sets being adapted to be coupled to a forwarding data bus, and comprising toggling the first and second sets in alternation between a first state wherein the first register is coupled to the bus and the second register is operated on by the at least one RISC processor, and a second state wherein the first register is operated on by the at least one RISC processor and the second register is coupled to the bus.
- 34. A method for disposing of a packet received from a network, comprising:
performing in a first processor a first stage of processing on the packet during a first period of time, so as to generate a classification responsive to data in a packet header; performing in a second processor a second stage of processing on the packet during a second period of time independent of the first period of time, responsive to the classification; and conveying the classification from the first processor to the second processor via a forwarding data bus coupled to the first and second processors.
- 35. A method according to claim 34, wherein the classification comprises an event, and comprising triggering initiation of operation of the second processor responsive to the event.
- 36. A method according to claim 34, wherein the first processor comprises first logic adapted to execute a first stage of processing on the packet and wherein the second processor comprises second logic adapted to execute a second stage of processing on the packet, wherein the first stage and the second stage are selected from an accelerated stage and a non-accelerated stage.
- 37. A method according to claim 34, wherein the second stage of processing determines a routing of the packet to a subsequent stage of processing.
- 38. A method for receiving a packet from a network, the packet having a header in accordance with a transport protocol, the processor comprising:
providing a plurality of accelerated stages coupled in a pipeline and adapted to perform successive, respective classifications of the header; providing a plurality of non-accelerated stages, adapted to receive and process the header responsive to the classifications, such that the accelerated and non-accelerated stages together perform substantially all steps required to process the header in accordance with the transport protocol; and conveying the header, following each of the stages, to a next stage selected from the accelerated stages and non-accelerated stages, by routing logic coupled to each of the accelerated stages.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application 60/294,854 filed May 31 2001, which is assigned to the assignee of the present invention and which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60294854 |
May 2001 |
US |