Claims
- 1. A method for use in packet processing, the method comprising:
receiving at least a portion of at least one packet; and based on the at least a portion of the at least one packet, determining a clock signal to provide to processing logic that processes the at least one packet.
- 2. The method of claim 1,
wherein the determining the clock signal comprises determining the clock signal based on data included in a header of the at least one packet.
- 3. The method of claim 2, wherein the data comprises a length field in the packet header.
- 4. The method of claim 1, wherein the determining the clock signal comprises determining the clock signal based on a size of at least one of the following: packet and payload.
- 5. The method of claim 4, wherein the determining the clock signal comprises determining such that a larger size corresponds to a higher frequency clock signal.
- 6. The method of claim 4, wherein the determining the clock signal comprises accessing data identifying different clock signals for different sets of one or more sizes.
- 7. The method of claim 1, wherein the determining the clock signal comprises determining a clock signal based on a number of processing cycles the processing logic uses to process the packet.
- 8. The method of claim 1, wherein the determining the clock signal comprises determining based on at least one of the following: an indicator of quality of service and an indicator of priority.
- 9. The method of claim 1, further comprising feeding a selection signal corresponding to the determined clock signal to a multiplexer.
- 10. The method of claim 1, further comprising providing the determined clock signal.
- 11. The method of claim 1, further comprising:
receiving at least a portion of the at least one packet at an interface clocked at a first clock frequency; and wherein determining the clock signal comprises determining a clock signal that differs from the first clock frequency.
- 12. The method of claim 11, wherein the first clock frequency comprises a frequency corresponding to a 10 gigabit-per-second connection.
- 13. The method of claim 11, wherein the determined clock signal is at a frequency that is an integral multiple of the first clock frequency.
- 14. The method of claim 1, wherein the processing logic comprises a network protocol offload engine.
- 15. The method of claim 14, wherein the network protocol off-load engine comprises an arithmetic logic unit and at least one memory that stores arithmetic logic unit instructions.
- 16. A computer program product, disposed on a computer readable medium, for use in packet processing, the program including instructions for causing a processor to:
receive at least a portion of at least one packet; and based on the at least a portion of the at least one packet, determine a clock signal to provide to processing logic that processes the at least one packet.
- 17. The program of claim 16,
wherein the instructions that cause the processor to determine the clock signal comprise instructions that cause the processor to determine the clock signal based on data included in a header of the at least one packet.
- 18. The program of claim 17, wherein the data comprises a length field in the packet header.
- 19. The program of claim 16, wherein the instructions that cause the processor to determine the clock signal comprise instructions that cause the processor to determine the clock signal based on a size of at least one of the following: packet and payload.
- 20. The program of claim 19, wherein the instructions that cause the processor to determine the clock signal comprise instructions that cause the processor to determine the clock signal such that a larger size corresponds to a higher frequency clock signal.
- 21. The program of claim 20, wherein the instructions that cause the processor to determine the clock signal comprise instructions that cause the processor to access data identifying different clock signals for different sets of one or more sizes.
- 22. The program of claim 16, wherein the instructions that cause the processor to determine a clock signal comprise instructions that cause the processor to determine a clock signal based on a number of processing cycles the processing logic uses to process the packet.
- 23. The program of claim 16, wherein the instructions that cause the processor to determine a clock signal comprise instructions that cause the processor to determine the clock signal based on at least one of the following: an indicator of quality of service and an indicator of priority.
- 24. The program of claim 22, wherein the instructions that cause the processor to determine the clock signal comprise instructions that cause the processor to determine a clock signal that has a different frequency than a clock signal provided to an interface that receives packet bits.
- 25. The program of claim 24, wherein the determined clock signal is at a frequency that is an integral multiple of the first clock signal frequency.
- 26. The program of claim 16, wherein the processing logic comprises a network protocol off-load engine.
- 27. A system comprising:
a first set of digital logic to receive at least a portion of at least one packet; and a second set of digital logic to determine a clock signal to provide to processing logic that processes the at least one packet based on the at least a portion of the at least one packet.
- 28. The system of claim 27,
wherein the second set of digital logic to determine the clock signal comprises digital logic to determine the clock signal based on data included in a packet header.
- 29. The system of claim 28, wherein the data comprises a length field in the packet header.
- 30. The system of claim 27, wherein the second set of digital logic to determine the clock signal comprises digital logic to determine the clock signal based on a size of at least one of the following: packet and payload.
- 31. The system of claim 30, wherein the second set of digital logic to determine the clock signal comprise digital logic to determine the clock signal such that a larger size corresponds to a higher frequency clock signal.
- 32. The system of claim 27, wherein the second set of digital logic to determine the clock signal comprises digital logic to access data identifying different clock signals for different sets of one or more sizes.
- 33. The system of claim 27, wherein the second set of digital logic to determine the clock signal comprises digital logic to determine a clock signal based on a number of processing cycles the processing logic uses to process the packet.
- 34. The system of claim 27, wherein the second set of digital logic to determine the clock signal comprises digital logic to determine the clock signal based on at least one of the following: an indicator of quality of service and an indicator of priority.
- 35. The system of claim 27, the second set of digital logic comprises digital logic to feed a selection signal corresponding to the determined clock signal to a multiplexer.
- 36. The system of claim 27, wherein the second set of digital logic further comprises digital logic to provide the determined clock signal.
- 37. The system of claim 27, wherein the second set of digital logic comprises logic to access data identifying a clock signal frequency for a packet characteristic.
- 38. The system of claim 27, further comprising:
wherein the first set of digital logic is clocked at a first clock frequency; and wherein the second set of digital logic to determine the clock signal comprises digital logic to determine a clock signal that differs from the first clock frequency.
- 39. The system of claim 38, wherein the first clock frequency comprises a frequency corresponding to a 10 gigabit-per-second connection.
- 40. The system of claim 39, wherein the determined clock signal is at a frequency that is an integral multiple of the first clock frequency.
- 41. The system of claim 27, wherein the processing logic comprises a network protocol off-load engine.
- 42. A system comprising:
at least one host processor; an Ethernet medium access control (MAC) device; at least one TCP (Transmission Control Protocol) off-load engine to receive at least a portion of a packet received by the MAC device and process the packet for the at least one host, the engine being coupled to the host via a Peripheral Component Interconnect (PCI) type bus; and digital logic to determine a clock signal to provide to at least part of the TCP off-load engine based on the at least a portion of the at least one packet.
- 43. The system of claim 42, wherein the at least one host comprises a local, general purpose Central Processing Unit (CPU).
- 44. The system of claim 42,
wherein the digital logic to determine the clock signal comprises digital logic to determine the clock signal based on data included in a Internet Protocol header of the packet.
- 45. The system of claim 44, wherein the data comprises a packet length field in the Internet Protocol packet header.
- 46. The system of claim 42, wherein the off-load engine comprises a first set of one or more content-addressable memories to store data for different TCP connections and a second set of one or more content-addressable memories to store data for TCP packets received out-of-order.
- 47. The system of claim 42, wherein the digital logic comprises:
a magnitude comparator fed data representing at least one characteristic of at least one packet; and a multiplexer coupled to the magnitude comparator and fed a collection of clock signals having different frequencies, the signal from the magnitude collector selecting the clock signal output by the multiplexer.
Parent Case Info
[0001] This application relates to the following co-pending applications: “NETWORK PROTOCOL ENGINE”, attorney docket 42.P14732; and “TRACKING OUT-OF-ORDER PACKETS”, attorney docket 42.P14792. These applications were filed on the same day as the present application and name the same inventors.