IP Library Granted Patent US 7,539,204
Granted Patent B2
US 7,539,204 · App. 10/255,240 · Granted May 26, 2009

Data and context memory sharing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,539,204
App. No.
10/255,240
Granted
May 26, 2009
Kind
B2
Abstract

An off-load engine for processing a packet conveyed between a target and a network over a transport connection, the packet including a payload and a header. The engine includes a payload buffer, for holding data exchanged between the off-load engine, the network, and the target for inclusion in the payload, and a packet processor, for processing context of the transport connection. The engine also includes a context buffer, for holding the context processed by the packet processor, a memory access multiplexer, which is coupled to convey the data in the payload buffer and the context in the context buffer to and from a memory that stores both the data and the context, and an arbiter, which controls the multiplexer by arbitrating among payload requests to convey the data between the payload buffer and the memory and context requests to convey the context between the context buffer and the memory.

Claims (46)

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. The 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. The 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. The 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. The 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. The 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. The 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. The off-load engine according to claim 1 , wherein the single memory comprises a plurality of separate memories.

9. The off-load engine according to claim 8 , wherein at least one of the plurality of separate memories is external to the engine.

10. The 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. The method according to claim 11 , comprising generating, by at least one of the payload buffer, the packet processor, and the context buffer, at least one of the payload requests and the context requests responsive to receiving the data.

13. The 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. The method according to claim 11 , wherein conveying the data and the context information comprises multiplexing the data and the context information.

15. The method according to claim 11 , 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. The method according to claim 11 , 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. The 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. The method according to claim 11 , wherein the single memory comprises a plurality of separate memories.

19. The method according to claim 18 , wherein at least one of the plurality of separate memories is external to the engine.

20. The 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 of 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.

Assignments (15)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
CHANGE OF NAME Recorded Apr 13, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017477/0524 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017779/0601 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017779/0611 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017779/0624 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017779/0554 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017780/0016 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017779/0650 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017779/0571 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017779/0581 →
CHANGE OF NAME Recorded Apr 12, 2006
From: SILIQUENT TECHNOLOGIES, INC.
To: BROADCOM CORPORATION
Reel/Frame 017779/0591 →
A CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S ON REEL 013898 FRAME 0873 Recorded Nov 7, 2003
From: SHALOM, RAFI; OREN, AMIT
To: SILIQUENT TECHNOLOGIES, INC.
Reel/Frame 014674/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2003
From: ISREAL, RAMAT GAN; ISRAEL, CAESAREA
To: SILIQUENT TECHNOLOGIES, INC.
Reel/Frame 013898/0873 →