Packet Ordering Unit for Parallel Processing Network Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network devices face challenges in maintaining the order of packets within a data flow during parallel processing, as packets are completed by multiple processing elements at different latencies, leading to out-of-order transmission.

Innovation Solution

The implementation of an ordering unit that distributes packets among multiple processing elements and queues them according to their order within the data flow, ensuring transmission only when processing is complete and the packet is at the head of its queue, using packet IDs and actions database to manage packet classes and updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If packets are distributed among multiple packet processing elements for parallel processing, then processing throughput is improved, but packet order within the data flow deteriorates

Engineering Contradiction:
Improveprocessing throughputVSAvoidpacket order
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The patent segments the packet processing function by distributing packets among multiple packet processing elements (PPEs) for parallel processing. Each PPE independently processes packets assigned to it, improving throughput while the central controller maintains overall packet order through coordination

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a central controller as an intermediary between packet reception and transmission. This controller assigns packets to PPEs, receives processed packets from PPEs, and manages the output queue to ensure packets are transmitted in the correct order, resolving the contradiction between parallel processing and order maintenance

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If packets are processed by multiple processing elements concurrently, then processing speed is improved, but transmission order reliability deteriorates

Engineering Contradiction:
Improveprocessing speedVSAvoidtransmission order reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies preliminary action by having the central controller assign packets to specific PPEs before processing begins and maintain an output queue that buffers packets. This ensures that even though PPEs process packets at different speeds, the controller can release them in the correct order, maintaining reliability while enabling concurrent processing

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where PPEs report packet processing status back to the central controller, which then manages the output queue accordingly. This feedback loop ensures the controller has real-time information about processing completion and can maintain transmission order reliability

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9553820B2Maintaining packet order in a parallel processing network device
Publication Date: 2017.01.24 MARVELL ISRAEL (M L S L) LTD
  • US9553820B2 patent drawing
  • US9553820B2 patent drawing
  • US9553820B2 patent drawing

AI summary

A plurality of packets that belong to a data flow are received and are distributed to two or more packet processing elements, wherein a packet is sent to a first packet processing element. A first instance of the packet is queued at a first packet processing element according to an order of the packet within the data flow. The first instance of the packet is caused to be transmitted when processing of the first instance is completed and the first instance of the packet is at a head of a queue at the first ordering unit. A second instance of the packet is queued at a second ordering unit. The second instance of the packet is caused to be transmitted when processing of the second instance is completed and the second instance of the packet is at a head of a queue at the second ordering unit.