IP Library Granted Patent US 7,606,231
Granted Patent B2
US 7,606,231 · App. 11/081,644 · Granted Oct 20, 2009

Pipeline architecture for a network device

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,606,231
App. No.
11/081,644
Granted
Oct 20, 2009
Kind
B2
Abstract

A network device for processing data on a data network including a plurality of ports, configured to receive data packets and to send out processed data packets, a modification engine configured to parse, evaluate and modify the data packets to produce the processed data packets and a series of search engine pipeline stages configured to perform lookup searches through a plurality of search engines. The series of search engine pipeline stages perform search requests in sequential processing steps and any stage of the series of search engine pipeline stages may submit a particular search request to the plurality of search engines and receive search results particular to a particular data packet at a respective processing step.

Claims (37)

1. A network device for processing data on a data network, the network device comprising:

a plurality of ports configured to receive data packets and to send out processed data packets;

a modification engine, in communication with the plurality of ports, configured to parse, evaluate and modify the data packets to produce the processed data packets;

a series of search engine pipeline stages, in communication with the modification engine, configured to perform lookup searches through a plurality of search engines; and

the plurality of search engines;

wherein the series of search engine pipeline stages is configured to perform search requests in sequential processing steps and each stage of the series of search engine pipeline stages is configured to submit a particular search request to the plurality of search engines and receive search results particular to a particular data packet of said processed data packets from the plurality of search engines at a respective processing operation, and

wherein each of said plurality of search engines is configured to provide the search results to one or more of the plurality of search engine pipeline stages.

2. The network device according to claim 1 , wherein each stage of the series of search engine pipeline stages is configured to perform its respective process during a predetermined number of clock cycles of the network device.

3. The network device according to claim 1 , wherein the series of search engine pipeline stages are in communication with the plurality of search engines through a time division multiplex request/result ring.

4. The network device according to claim 1 , wherein the plurality of search engines are configured to perform searches on external tables stored on memory external to the network device.

5. The network device according to claim 1 , wherein the plurality of search engines are configured to receive concurrent search requests from multiple stages of the series of search engine pipeline stages.

6. The network device according to claim 1 , wherein the plurality of search engines comprise at least one of an algorithm-based search engine and a content-addressable memory based search engine.

7. The network device according to claim 1 , wherein each search engine pipeline stage is configured to determine a type of search to be performed and search engines to be employed based on the particular search request.

8. A method for processing data in a network device, the method comprising the operations of:

receiving data packets at a plurality of ports of a network device;

processing the received data packets to thereby parse, evaluate and modify the received data packets to produce processed data packets;

performing lookup searches of tables through a series of search engine pipeline stages; and

forwarding the processed data packets to an egress port of the plurality of ports;

wherein each stage of the series of search engine pipeline stages submits a particular search request to a plurality of search engines and receives search results particular to a particular data packet of said processed data packets from the plurality of search engines at a respective processing operation; and

wherein each of said plurality of search engines provides the search results to one or more of the plurality of search engine pipeline stages.

9. The method according to claim 8 , wherein the operation of performing lookup searches is performed such that each stage performs its respective process during a predetermined number of clock cycles of the network device.

10. The method according to claim 8 , wherein the step of performing lookup searches of tables comprises sending and receiving search requests and search results through a time division multiplex request/result ring in communication with the plurality of search engines.

11. The method according to claim 8 , wherein the operation of performing lookup searches of tables comprises performing searches on external tables stored on memory external to the network device.

12. The method according to claim 8 , wherein the operation of performing lookup searches of tables comprises forwarding concurrent search requests from multiple stages of the series of search engine pipeline stages.

13. The method according to claim 8 , wherein the operation of performing lookup searches of tables comprises performing searches using search engines comprising at least one of an algorithm-based search engine and a content-addressable memory based search engine.

14. The method according to claim 8 , wherein the operation of performing lookup searches of tables comprises determining a type of search to be performed and search engines to be employed based on the particular search request.

15. A network device for processing data, comprising:

port means for receiving data packets and forwarding processed data packets;

processing means for processing the received data packets to thereby parse, evaluate and modify the received data packets to produce processed data packets; and

lookup search means for performing lookup searches of tables, through a series of search engine pipeline stages; and

wherein the lookup search means is configured to allow each stage of the series of search engine pipeline stages to submit a particular search request to at least one of a plurality of search engines and to receive search results particular to a particular data packet of said processed data packets from the plurality of search engines, and

wherein each of said plurality of search engines is configured to provide the search results to one or more of the plurality of search engine pipeline stages.

16. The network device according to claim 15 , wherein the lookup search means is configured to ensure that each stage of the series of pipeline stages performs its respective process during a predetermined number of clock cycles of the network device.

17. The network device according to claim 15 , wherein the lookup search means is configured to perform searches on external tables stored on memory external to the network device.

18. The network device according to claim 15 , wherein the plurality of search engines are configured to receive concurrent search requests from the lookup search means.

19. The network device according to claim 15 , wherein the lookup search means is configured to perform searches using search engines comprising at least one of an algorithm-based search engine and a content-addressable memory based search engine.

20. The network device according to claim 15 , wherein the lookup search means is configured to determine a type of search to be performed and search engines to be employed based on the particular search request.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED AT REEL: 047195 FRAME: 0827. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Nov 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047924/0571 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047195/0827 →
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 →