Program-independent Hardware Stage Mapping for Compile Time Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for mapping programs to hardware arrangements are inefficient, requiring significant computational resources and time, especially when dealing with complex programs or hardware updates, and are often specific to a particular hardware configuration, necessitating re-mapping upon changes.

Innovation Solution

A method that analyzes hardware stages to generate program-independent descriptions, allowing for non-overlapping mappings between program operations and hardware stages, which are then scheduled for execution, enabling reuse and reducing computational effort across multiple programs and hardware configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional program-to-hardware mapping methods are used, then mapping can be performed, but compile time and computational resources are excessive

Engineering Contradiction:
Improvecompile timeVSAvoidmapping efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The mapping process is divided into distinct phases: hardware analysis phase (generating program-independent hardware descriptions) and program analysis phase (generating mappings using pre-computed hardware descriptions). This segmentation allows hardware characteristics to be pre-analyzed and stored, avoiding redundant analysis when mapping different programs to the same hardware, thereby reducing compile time while maintaining mapping quality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Hardware descriptions are generated in advance during a hardware analysis phase, before actual program mapping occurs. These program-independent hardware descriptions capture essential hardware characteristics and are stored for reuse. When mapping programs, the system retrieves and applies pre-computed hardware descriptions rather than re-analyzing hardware architecture, significantly reducing computational effort and compile time.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If mapping is specific to particular hardware configuration, then accurate mapping is achieved, but re-mapping is required upon hardware changes

Engineering Contradiction:
Improvemapping accuracyVSAvoidhardware configuration flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system generates program-independent hardware descriptions that serve multiple purposes and are applicable to different programs mapping to the same hardware configuration. These universal hardware descriptions capture essential hardware characteristics in a standardized format that can be reused across multiple mapping operations, providing both accuracy for the specific hardware and flexibility for adapting to different programs without requiring re-mapping of hardware characteristics.

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

Solution Approach 2:

Hardware architecture analysis is performed in advance, creating a reusable hardware description that remains valid across multiple program mappings. When hardware configuration changes occur, only the hardware analysis phase needs to be re-executed to generate new program-independent descriptions, while the program analysis phase can continue using the updated hardware descriptions, reducing the impact of hardware changes and eliminating the need to re-map individual programs.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If comprehensive hardware analysis is performed, then mapping quality is improved, but computational resources and engineering effort increase

Engineering Contradiction:
Improvemapping qualityVSAvoidcomputational complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The comprehensive hardware analysis is segmented into a one-time hardware analysis phase that generates program-independent descriptions, followed by a lighter program analysis phase that reuses these descriptions. This segmentation concentrates the computational complexity into a preliminary hardware characterization step, allowing subsequent program mappings to benefit from high-quality hardware descriptions without incurring the same computational burden, thus improving mapping quality while managing computational resources efficiently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transforms detailed hardware characteristics into standardized program-independent parameters and descriptions during the hardware analysis phase. By changing the representation of hardware features from detailed implementation-specific descriptions to abstracted, parameterized hardware descriptions, the system maintains mapping quality through comprehensive hardware understanding while reducing the complexity of subsequent mapping operations through standardized parameter reuse.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20240231845A1Hardware Mapping
Publication Date: 2024.07.11 IMAGINATION TECH LTD
  • US20240231845A1 patent drawing
  • US20240231845A1 patent drawing
  • US20240231845A1 patent drawing

AI summary

A method of mapping a program to a hardware arrangement comprising a plurality of interconnected hardware stages. The plurality of hardware stages in the hardware arrangement is analysed to generate, for each stage, a program-independent hardware description defining an operation performed by the stage and inputs and outputs of the stage. The program-independent hardware descriptions are then used when analysing the program to generate a non-overlapping set of mappings between groups of adjacent program primitive operations in the program and groups of interconnected hardware stages in the hardware arrangement. Having generated the non-overlapping set of mappings, the groups of adjacent program primitive operations are scheduled into an order for execution.