Co-Optimization of Embedded Systems via Symbolic Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current design tools for embedded systems lack effective techniques for optimizing across hierarchical boundaries, requiring manual labor and limited recognition of optimization opportunities by designers, and often result in suboptimal hardware and software configurations.

Innovation Solution

The Co-Optimization utilizing Symbolic Execution (COSE) technique automatically detects optimization opportunities by employing symbolic execution to analyze software components, define constraints for hardware, and propagate these constraints across the design, ensuring functional equivalence between optimized and original designs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If manual optimization techniques are used by designers, then design flexibility is maintained, but optimization opportunities are missed and device complexity increases

Engineering Contradiction:
Improvehardware component requirementsVSAvoidautomatic detection of optimization opportunities
Core Design Contradiction:
Device complexityVSExtent of automation

Solution Approach 1:

The system performs self-optimization by automatically analyzing its own design specifications and generating optimized implementations without requiring external manual intervention. The co-optimization tool autonomously detects optimization opportunities, generates candidate optimizations, and validates them against functional equivalence requirements.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes design parameters by exploring different configurations of hardware components and software parameters to find optimized implementations. It systematically varies parameters such as data types, array sizes, and component instantiations to identify opportunities for reduction in device complexity.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If comprehensive optimization analysis is performed across hierarchical boundaries, then device complexity is reduced, but analysis time and computational resources increase

Engineering Contradiction:
Improvehardware component requirementsVSAvoidoptimization analysis time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis by first generating a symbolic execution model of the design specification before exploring optimization opportunities. This preliminary modeling phase prepares the design representation in a form that enables efficient subsequent optimization analysis, reducing the overall time required for comprehensive optimization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The optimization process is segmented into distinct phases: symbolic execution model generation, optimization opportunity detection, candidate optimization generation, and functional equivalence validation. This segmentation allows the system to process complex hierarchical designs in manageable steps, reducing overall analysis time.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If hardware components are reduced through optimization, then resource utilization improves, but functional equivalence must be maintained

Engineering Contradiction:
Improvehardware componentsVSAvoidfunctional equivalence
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The system uses feedback mechanisms to validate that optimized designs maintain functional equivalence with the original specification. Functional equivalence checks provide feedback on whether optimizations preserve intended behavior, allowing the system to iteratively refine optimizations while ensuring reliability is maintained.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system applies partial optimizations selectively to specific components or modules where optimization opportunities exist, rather than attempting to optimize the entire system uniformly. This approach reduces hardware components where possible while maintaining functional equivalence in critical paths.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8234604B2Co-optimization of embedded systems utilizing symbolic execution
Publication Date: 2012.07.31 GLOBALFOUNDRIES US INC
  • US8234604B2 patent drawing
  • US8234604B2 patent drawing
  • US8234604B2 patent drawing

AI summary

Co-Optimization utilizing Symbolic Execution (COSE) works across components of an embedded design to optimize structures therein. COSE utilizes symbolic execution (SE) to analyze software components and defines a limited set of values that software feeds hardware as constraints. SE explores substantially all possible paths of execution of the code specifying a component. It accomplishes this by accumulating path conditions (PCs) and annotating them to the corresponding segments of the component. A PC is associated with a branch of code and consists of the conjunction of conditions over input and state variables necessary and sufficient for the branch to execute. These PCs define constraints that limit the set of values that software feeds hardware. These constraints are then propagated across the networks of the design and employ static analysis techniques such as constant propagation, redundancy removal, and don't care optimizations to reduce the hardware components.