Network Device Pipeline Architecture for Versatile High-Speed Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network devices are either non-expandable and limited in functionality or, if versatile, tend to be slow in performing specific functions, lacking a balance between power and expandability.

Innovation Solution

A network device with a pipeline architecture that includes ingress/egress modules, a Memory Management Unit (MMU) for efficient cell buffering, and a search engine module, allowing for flexible processing and expansion, with a shared memory architecture that ensures fair resource access and supports high-speed data transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If network devices are designed with great versatility to process multiple packet types, then processing functionality is improved, but processing speed deteriorates

Engineering Contradiction:
Improveprocessing functionalityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The network device is divided into multiple independent pipeline stages (parsing stage, lookup stage, action stage, etc.), each handling specific processing tasks. This segmentation allows parallel processing of different packet types through dedicated hardware resources in each stage, maintaining high speed while supporting versatile functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pipeline architecture employs dynamic resource allocation where processing resources are activated based on packet type requirements. Different packet types can utilize different combinations of pipeline stages and processing resources, enabling the device to adapt to various processing needs without sacrificing speed for any specific function.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If network devices are designed to be expandable with additional functionalities, then adaptability is improved, but device complexity increases

Engineering Contradiction:
ImproveexpandabilityVSAvoidarchitecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The pipeline stages are designed with universal processing elements that can handle multiple packet types and processing operations through configuration rather than hardware changes. Each stage contains programmable resources that can be adapted to different processing requirements, enabling expansion without adding proportional complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The architecture implements a hierarchical pipeline structure where processing stages are nested within a standardized framework. Each stage can contain sub-stages or processing elements that are themselves modular, allowing functionalities to be nested and combined in a structured manner that manages complexity through organization.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS7606231B2Pipeline architecture for a network device
Publication Date: 2009.10.20 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US7606231B2 patent drawing
  • US7606231B2 patent drawing
  • US7606231B2 patent drawing

AI summary

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.