Dynamic Resource Balancing for EDA Compute Engines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity of electronic circuit designs requires significant computational resources, and existing computing systems struggle to efficiently allocate and balance resources during the execution of Electronic Design Automation (EDA) operations, leading to suboptimal performance and efficiency.

Innovation Solution

A dynamic resource balancing system that allocates and reallocates computing resources among compute engines based on operation priorities and idle indicators, utilizing a dynamic resource balancing engine to optimize resource utilization and improve computational efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If computing resources are statically allocated to compute engines, then resource allocation is simple and stable, but computational efficiency deteriorates due to inability to adapt to varying operation priorities

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic resource allocation where the resource allocation manager continuously monitors compute engine states and operation priorities, reallocating computing resources on-the-fly rather than using static allocation. This allows the system to adapt to varying computational demands and maintain optimal productivity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms where the resource allocation manager receives status information from compute engines about their current operations and resource utilization, then uses this feedback to make informed reallocation decisions, balancing productivity improvement with controlled complexity.

Inventive Principle:
Principle #23Feedback

2Productivity

If computing resources are reallocated frequently to optimize performance, then computational efficiency improves, but system stability deteriorates due to constant resource movements

Engineering Contradiction:
ImproveEDA operation performanceVSAvoidresource allocation stability
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The resource allocation manager performs resource reallocation at periodic intervals or at specific trigger points (such as when compute engines become idle or when operation priorities change), rather than continuously. This periodic approach maintains productivity while providing stability by avoiding constant resource movements.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system changes resource allocation parameters (such as the amount of computing resources assigned to each compute engine) based on monitored conditions like operation priority levels and compute engine idle states, allowing performance optimization while maintaining system stability through controlled parameter adjustments.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If computing resources are allocated based on operation priority, then critical EDA operations receive sufficient resources, but resource allocation complexity increases due to priority monitoring and decision-making

Engineering Contradiction:
Improvecritical operation completionVSAvoidpriority-based allocation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The resource allocation manager serves as an intermediary between compute engines and computing resources, centralizing the complexity of priority-based allocation decisions. This intermediary monitors operation priorities and manages resource distribution, ensuring critical operations receive necessary resources while containing allocation complexity in a dedicated management component.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Compute engines provide information about their current operations and resource needs to the resource allocation manager, enabling priority-based allocation without requiring complex monitoring infrastructure. The system leverages self-reported data from compute engines to simplify the overall allocation complexity while maintaining reliability.

Inventive Principle:
Principle #25Self-service

4Productivity

If idle computing resources are utilized for reallocation, then resource utilization efficiency improves, but system complexity increases due to idle detection and dynamic reallocation mechanisms

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoididle resource management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Compute engines autonomously report their idle status to the resource allocation manager, eliminating the need for complex system-wide monitoring infrastructure. This self-service approach allows efficient utilization of idle resources while minimizing the complexity of idle detection mechanisms.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The resource allocation manager performs multiple functions including monitoring compute engine states, determining operation priorities, deciding resource reallocation, and managing idle resources. By consolidating these diverse functions into a single multi-functional component, the system improves resource utilization efficiency while containing overall system complexity.

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

Data Source

PatentUS11954419B2Dynamic allocation of computing resources for electronic design automation operations
Publication Date: 2024.04.09 SIEMENS INDUSTRY SOFTWARE INC
  • US11954419B2 patent drawing
  • US11954419B2 patent drawing
  • US11954419B2 patent drawing

AI summary

A system may include a set of compute engines. The compute engines may be configured to perform electronic design automation (EDA) operations on a hierarchical dataset representative of an integrated circuit (IC) design. The system may also include a dynamic resource balancing engine configured to allocate computing resources to the set of compute engines and reallocate a particular computing resource allocated to a first compute engine based on an operation priority of an EDA operation performed by a second compute engine, an idle indicator for the first compute engine, or a combination of both.