Forward-flow selection for pipeline stall prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional systems limit throughput by setting maximum loop occupancy based on the minimum number of stages in a branch, leading to potential stalls and diminished process efficiency when more data could be processed.

Innovation Solution

Implementing forward-flow selectors that dynamically decide which side of a branch pipeline to empty based on incoming data, using de-multiplexers and multiplexers to manage data flow and prevent stalls, allowing each pipeline stage to be utilized efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If maximum loop occupancy is set based on the minimum number of stages in a branch, then pipeline stalls are prevented, but throughput is limited

Engineering Contradiction:
Improvepipeline stall preventionVSAvoidthroughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the loop occupancy limit adaptive rather than static. Instead of using a fixed minimum stage count across all branches, the system dynamically determines the occupancy limit based on actual pipeline stage availability at each branch point, allowing the limit to adjust according to real-time pipeline conditions and data characteristics.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter used to set loop occupancy from a static structural parameter (minimum stages) to a dynamic parameter that considers actual pipeline capacity. The system calculates occupancy limits based on the number of available pipeline stages for specific data types and branch configurations, allowing optimal throughput while maintaining stall-free operation.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If loop occupancy is increased to improve throughput, then more data can be processed, but pipeline stalls occur

Engineering Contradiction:
ImprovethroughputVSAvoidpipeline stall prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback by monitoring the actual pipeline stage availability and using this information to adjust the loop occupancy limit. The system continuously evaluates pipeline capacity based on the specific branch configuration and data characteristics, then adjusts the occupancy parameter to match actual pipeline capabilities, preventing stalls while maximizing throughput.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent applies preliminary action by pre-calculating the optimal loop occupancy limit based on the pipeline structure and data characteristics before loop execution begins. This allows the system to set the correct occupancy parameter in advance, ensuring that the pipeline operates at maximum capacity without risking stalls during execution.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If traditional maximum loop occupancy approach is used, then pipeline simplicity is maintained, but process efficiency is diminished

Engineering Contradiction:
Improvepipeline structure simplicityVSAvoidprocess efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies local quality by applying different occupancy limits to different branches of the pipeline based on their specific characteristics. Instead of using a single global limit, the system determines optimal occupancy for each branch based on its stage count and data type requirements, allowing each part of the pipeline to operate at its optimal efficiency point.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9424043B1Forward-flow selection
Publication Date: 2016.08.23 ALTERA CORP
  • US9424043B1 patent drawing
  • US9424043B1 patent drawing
  • US9424043B1 patent drawing

AI summary

Systems and methods for enhancing performance of programs implemented on an integrated circuit (IC) are provided. A forward-flow selector may determine a common branch for adding a data set to and removing a data set from. By selecting a common branch for adding and removing a data set, there will be a pipeline stage for data flowing into the branch. Accordingly, the embodiments described herein enhance throughput by increasing the number of datasets that may enter a branched pipeline without stalling.