Multi-Staged Hardware Pipeline Generation from High Level Language

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for developing integrated circuits struggle to efficiently create multi-staged hardware implementations from high-level language programs, as they often require explicit designer input and are limited by single-process architectures or conservative data processing schedules, which restrict concurrent processing of data sets.

Innovation Solution

A method is introduced to generate a language-independent model from a high-level language program, identifying processing stages and stall points, and using stall release signals for reverse flow control, allowing for the creation of a multi-staged hardware implementation that can process multiple data sets concurrently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single process architecture is used to map HLL representation onto hardware description, then the hardware implementation is simpler to implement, but only a single data set can be processed at any given time

Engineering Contradiction:
Improvehardware implementation complexityVSAvoiddata processing throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The invention segments the processing architecture into multiple independent processing stages (first processing stage, second processing stage, etc.), each capable of handling different data sets simultaneously. This segmentation allows the system to process multiple data sets in parallel while maintaining manageable complexity in each individual stage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention transitions from a single-dimensional sequential processing model to a multi-dimensional parallel processing model by introducing multiple processing stages that operate simultaneously. This dimensional expansion enables concurrent processing of multiple data sets without proportionally increasing overall system complexity.

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

2Productivity

If pre-defined constructs are explicitly included in the HLL program to create multi-staged hardware implementations, then multiple data sets can be processed concurrently, but the designer must explicitly define each processing stage

Engineering Contradiction:
Improveconcurrent data processing capabilityVSAvoiddesigner effort to define processing stages
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The invention enables the compilation tool to automatically generate multi-staged hardware implementations from standard HLL programs without requiring designers to explicitly define processing stages. The tool self-services by analyzing the HLL code and autonomously creating the appropriate hardware description with multiple processing stages, thereby maintaining ease of use while enabling concurrent processing.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention introduces an intermediate representation layer between the HLL program and the hardware description. This intermediary representation captures the data processing logic in a form that can be automatically transformed into multi-staged hardware architecture, eliminating the need for designers to manually define processing stages while preserving the ability to process multiple data sets concurrently.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If multiple statically scheduled wavefronts are used to allow new data sets to be introduced prior to complete processing of previous data sets, then processing efficiency is improved, but the hardware implementation cannot dynamically adjust to process data sets earlier than the conservative N clock cycle limitation

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddynamic adjustment capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The invention introduces dynamic control mechanisms that allow the hardware implementation to adaptively adjust processing timing based on actual data availability and processing status. Unlike static scheduling with fixed N-clock-cycle delays, the dynamic approach enables the system to process data sets as soon as they are ready, improving both efficiency and adaptability by responding to real-time conditions rather than predetermined schedules.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention implements feedback mechanisms that monitor the processing status of data sets and use this information to dynamically control when new data sets are introduced. This feedback-driven approach allows the system to optimize processing timing by introducing new data sets immediately when previous data sets complete processing, rather than waiting for conservative predetermined intervals, thereby achieving both high efficiency and dynamic adaptability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7509619B1Auto generation of a multi-staged processing pipeline hardware implementation for designs captured in high level languages
Publication Date: 2009.03.24 XILINX INC
  • US7509619B1 patent drawing
  • US7509619B1 patent drawing
  • US7509619B1 patent drawing

AI summary

A method of creating a multi-staged hardware implementation based upon a high level language (HLL) program can include generating a language independent model (LIM) from the HLL program, wherein the LIM specifies a plurality of state resources and determining a first and last access to each of the plurality of state resources. The method further can include identifying a plurality of processing stages from the LIM, wherein each processing stage is defined by the first and last access to one of the plurality of state resources. A stall point can be included within the LIM for each of the first accesses. The LIM can be translated into a scheduled hardware description specifying the multi-staged hardware implementation.