Parallel Instruction Distribution in Multistage Processing Pipelines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network appliances such as switches and routers face challenges in processing packets efficiently due to the need for all instructions in a multistage pipeline to be completed before proceeding to the next stage, leading to delays and reduced throughput.

Innovation Solution

The method involves compiling instructions for a multistage programmable processing pipeline by identifying and assigning independent subsets of instructions to different processing units, allowing them to execute in parallel, thereby reducing the length of the longest thread of instructions and minimizing idle time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If all instructions in a multistage pipeline are processed sequentially in the current stage before proceeding to the next stage, then processing completeness is ensured, but processing speed and throughput are reduced

Engineering Contradiction:
Improveprocessing speedVSAvoidthroughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent segments the set of instructions into multiple independent subsets that can be executed in parallel by different processing units within the same stage. This segmentation allows the pipeline to process multiple instruction subsets simultaneously rather than sequentially, thereby increasing processing speed and throughput without compromising processing completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-threaded sequential execution model to a multi-threaded parallel execution model by introducing multiple processing units within a stage. This dimensional change from one-dimensional sequential processing to two-dimensional parallel processing (multiple threads across multiple units) enables simultaneous execution of independent instruction subsets, resolving the contradiction between processing completeness and speed.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of time

If instructions are assigned to multiple processing units for parallel execution, then processing time is reduced, but instruction scheduling complexity increases

Engineering Contradiction:
Improveprocessing timeVSAvoidinstruction scheduling complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing static analysis and identification of independent instruction subsets before execution. The compiler or instruction scheduler pre-processes the instruction set to determine which subsets can be executed in parallel, assigning them to appropriate processing units in advance. This preliminary organization reduces the complexity of real-time scheduling during execution while maintaining efficient parallel processing.

Inventive Principle:
Principle #10Preliminary action

3Duration of action of moving object

If the length of the longest thread of instructions is reduced through parallel assignment, then stage completion time is reduced, but idle time management becomes more challenging

Engineering Contradiction:
Improvestage completion timeVSAvoididle time
Core Design Contradiction:
Duration of action of moving objectVSLoss of time

Solution Approach 1:

The patent applies dynamics by making the instruction assignment flexible and adaptive. Instead of fixed assignment, the system dynamically balances the distribution of instruction subsets across processing units to minimize the longest thread length. This dynamic balancing act allows the system to optimize stage completion time while managing idle time effectively, as processing units can be allocated different amounts of work based on the overall load and independence of instruction subsets.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11693664B2Methods and systems for distributing instructions amongst multiple processing units in a multistage processing pipeline
Publication Date: 2023.07.04 PENSANDO SYSTEMS INC
  • US11693664B2 patent drawing
  • US11693664B2 patent drawing
  • US11693664B2 patent drawing

AI summary

Methods and systems for distributing instructions amongst processing units in a processing pipeline are disclosed. A method includes compiling a set of instructions for a stage of a multistage programmable processing pipeline in which the stage of the multistage programmable processing pipeline includes multiple processing units configured to processes instructions in parallel, wherein compiling the set of instructions includes, identifying first and second subsets of instructions within the set of instructions that can be executed independent of each other, assigning the first subset of instructions to a first processing unit of the stage, assigning the second subset of instructions to a second processing unit of the stage, and executing the first and second subsets of instructions in parallel at the first and second processing units, respectively.