Compiler for Multi-Processor Executables with Dynamic Co-Processor Reconfiguration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current multi-processor systems face limitations in efficiently processing instructions across heterogeneous processors with different instruction sets, as they lack a mechanism to dynamically reconfigure instruction sets and maintain cache coherency between host processors and co-processors, leading to suboptimal performance and increased programmer workload.

Innovation Solution

A software compiler is developed to generate a single executable that includes instructions for both host processors with fixed instruction sets and dynamically reconfigurable co-processors, allowing the co-processor's instruction set to be dynamically reconfigured to optimize performance, and maintaining cache coherency between host processors and co-processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple homogeneous processors with fixed instruction sets are used, then cache coherency can be maintained, but processing efficiency for different instruction types is limited

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidinstruction set flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamically reconfigurable instruction sets in co-processors, allowing the instruction set architecture to change at runtime based on computational needs. This enables the system to adapt between different instruction sets (e.g., x86, ARM, RISC-V) without physical hardware changes, resolving the contradiction between fixed architecture stability and flexible adaptability

Inventive Principle:
Principle #15Dynamics

2Productivity

If heterogeneous processors with different instruction sets are used, then processing performance is optimized, but cache coherency maintenance becomes difficult

Engineering Contradiction:
Improveprocessing performanceVSAvoidcache coherency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a cache coherency protocol as an intermediary mechanism that mediates between heterogeneous processors with different instruction sets. This protocol translates and coordinates cache operations across different architectures, maintaining coherency without requiring processors to share the same instruction set, thus resolving the contradiction between performance optimization and reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If dynamically reconfigurable co-processors are implemented, then instruction set adaptability is improved, but system complexity increases

Engineering Contradiction:
Improveinstruction set reconfigurabilityVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the processing system into host processors with fixed instruction sets and co-processors with dynamically reconfigurable instruction sets. This segmentation isolates the complexity of reconfiguration to specific components while maintaining simplicity in the host processors, resolving the contradiction between adaptability and overall system complexity

Inventive Principle:
Principle #1Segmentation

4Ease of operation

If a single executable is generated for multiple instruction sets, then programmer workload is reduced, but compiler complexity increases

Engineering Contradiction:
Improveprogrammer workloadVSAvoidcompiler complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent employs a multi-processor compiler as an intermediary that automatically handles the complexity of generating multi-instruction-set executables. The compiler analyzes source code, identifies suitable instruction sets for different computational tasks, and generates appropriate machine code for host processors and co-processors, shielding programmers from compiler complexity while enabling ease of operation

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8561037B2Compiler for generating an executable comprising instructions for a plurality of different instruction sets
Publication Date: 2013.10.15 MICRON TECHNOLOGY INC
  • US8561037B2 patent drawing
  • US8561037B2 patent drawing
  • US8561037B2 patent drawing

AI summary

A software compiler is provided that is operable for generating an executable that comprises instructions for a plurality of different instruction sets as may be employed by different processors in a multi-processor system. The compiler may generate an executable that includes a first portion of instructions to be processed by a first instruction set (such as a first instruction set of a first processor in a multi-processor system) and a second portion of instructions to be processed by a second instruction set (such as a second instruction set of a second processor in a multi-processor system). Such executable may be generated for execution on a multi-processor system that comprises at least one host processor, which may comprise a fixed instruction set, such as the well-known x86 instruction set, and at least one co-processor, which comprises dynamically reconfigurable logic that enables the co-processor's instruction set to be dynamically reconfigured.