Claims
- 1. An off-load engine for processing a data packet conveyed between a target device and a network over a transport connection, the data packet including a payload and a header, the engine comprising:
a payload buffer, for holding data that is exchanged between the off-load engine, the network, and the target device for inclusion in the payload; a packet processor, for processing context information with respect to the transport connection; a context buffer, for holding the context information that is processed by the packet processor; a memory access multiplexer, which is coupled to convey the data in the payload buffer and the context information in the context buffer to and from a single memory that stores both the data and the context information; and an arbiter, which is adapted to control the multiplexer by arbitrating among payload requests to convey the data between the payload buffer and the single memory and context requests to convey the context information between the context buffer and the single memory.
- 2. An off-load engine according to claim 1, wherein at least one of the payload buffer, the packet processor, and the context buffer, generate at least one of the payload requests and the context requests responsive to receiving the data.
- 3. An off-load engine according to claim 1, wherein the payload requests comprise a write-payload-to and a read-payload-from request to the single memory, and wherein the context requests comprise a write-context-to and a read-context-from request to the single memory.
- 4. An off-load engine according to claim 1, wherein the packet processor controls operation of at least one of the payload buffer, the context buffer, the multiplexer, and the arbiter.
- 5. An off-load engine according to claim 1, wherein the packet processor receives the data packet from the network, strips the header from the data packet so as to provide the data for holding in the payload buffer, and routes the payload to the target device responsive to the context information.
- 6. An off-load engine according to claim 1, wherein the packet processor receives the payload from the target device, generates the header responsive to the context information, appends the header to the payload to form the data packet, and transmits the data packet to the network.
- 7. An off-load engine according to claim 1, wherein the payload buffer comprises at least one receiver payload buffer for holding the data responsive to receiving the data packet from the network and at least one transmitter payload buffer for holding the data responsive to transmitting the data packet to the network, wherein the packet processor comprises at least one receiver packet processor for processing the header together with the context information responsive to receiving the data packet from the network so as to generate processed received context, and at least one transmitter packet processor for processing the header together with the context information responsive to transmitting the data packet to the network so as to generate processed transmitted context, and wherein the context buffer comprises a receiver context buffer for holding the processed received context and a transmitter context buffer for holding the processed transmitted context.
- 8. An off-load engine according to claim 1, wherein the single memory comprises a plurality of separate memories.
- 9. An off-load engine according to claim 8, wherein at least one of the plurality of separate memories is external to the engine.
- 10. An off-load engine according to claim 8, wherein at least one of the plurality of separate memories is comprised within the engine.
- 11. A method for processing in an off-load engine a data packet conveyed between a target device and a network over a transport connection, the data packet including a payload and a header, comprising:
holding, in a payload buffer, data that is exchanged between the off-load engine, the network, and the target device for inclusion in the payload; processing context information with respect to the transport connection;; holding, in a context buffer, the context information; performing an arbitration, among payload requests to convey the data between the payload buffer and a single memory that stores both the data and the context information, and context requests to convey the context information between the context buffer and the single memory; and conveying the data in the payload buffer and the context information in the context buffer to and from the single memory responsive to the arbitration.
- 12. A method according to claim 11, and comprising at least one of the payload buffer, the packet processor, and the context buffer, generating at least one of the payload requests and the context requests responsive to receiving the data.
- 13. A method according to claim 11, wherein the payload requests comprise a write-payload-to and a read-payload-from request to the single memory, and wherein the context requests comprise a write-context-to and a read-context-from request to the single memory.
- 14. A method according to claim 11, wherein conveying the data and the context information comprises multiplexing the data and the context information.
- 15. A method according to claim 11, and comprising:
receiving the data packet from the network; stripping the header from the data packet so as to provide the data for holding in the payload buffer; and routing the payload to the target device responsive to the context information.
- 16. A method according to claim 11, and comprising:
receiving the payload from the target device; generating the header responsive to the context information; appending the header to the payload to form the data packet; and transmitting the data packet to the network.
- 17. A method according to claim 11, wherein the payload buffer comprises at least one receiver payload buffer for holding the data responsive to receiving the data packet from the network and at least one transmitter payload buffer for holding the data responsive to transmitting the data packet to the network, wherein processing the context information comprises providing at least one receiver packet processor for processing the header together with the context information responsive to receiving the data packet from the network so as to generate processed received context, and providing at least one transmitter packet processor for processing the header together with the context information responsive to transmitting the data packet to the network so as to generate processed transmitted context, and wherein the context buffer comprises a receiver context buffer for holding the processed received context and a transmitter context buffer for holding the processed transmitted context.
- 18. A method according to claim 11, wherein the single memory comprises a plurality of separate memories.
- 19. An method according to claim 18, wherein at least one of the plurality of separate memories is external to the engine.
- 20. A method according to claim 18, wherein at least one of the plurality of separate memories is comprised within the engine.
- 21. A method for processing a data packet having a payload in an off-load engine, the packet being conveyed over a transport connection through a network, the method comprising
receiving the payload; generating, responsive to receiving the payload, at least one of a plurality of read-write requests to a memory storing the payload of the packet and context information with respect to the connection; performing an arbitration between the plurality of read-write requests; conveying the at least one of the read-write requests to the memory responsive to the arbitration; and transferring the payload and the context information between the memory and the off-load engine responsive to an acceptance o&f the at least one of the read-write requests by the memory.
- 22. An off-load engine for processing a data packet having a payload, which is conveyed over a transport connection through a network, the engine comprising:
a packet processor which is adapted, responsive to receipt of the payload by the off-load engine, to generate at least one of a plurality of read-write requests to a memory storing the payload of the packet and context information with respect to the connection; and an arbiter which is adapted to perform an arbitration between the plurality of read-write requests and, responsive to the arbitration, to convey the at least one of the read-write requests to the memory and, responsive to the memory accepting the at least one of the read-write requests, to transfer the payload and the context information between the memory and the off-load engine.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/325,249, filed Sep. 26, 2001, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60325249 |
Sep 2001 |
US |