Elastic CPU for Physical Verification Jobs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity of integrated circuit (IC) designs and the unpredictability of design rule interactions pose challenges in determining the optimal allocation of computing resources for physical verification, leading to either prolonged runtime or wasteful resource usage.

Innovation Solution

An automatic elastic CPU system that dynamically allocates and releases computing resources based on a dependency graph, adding resources when needed and releasing idle resources to optimize runtime and resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If more computing resources are allocated to physical verification jobs, then the runtime is reduced, but resource waste increases when resources remain idle

Engineering Contradiction:
Improvephysical verification runtimeVSAvoidcomputing resource waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system dynamically adjusts the number of CPUs allocated to physical verification jobs based on real-time queue depth and estimated processing time. The elastic CPU feature automatically adds or removes computing resources during job execution, transforming the static resource allocation into a dynamic system that adapts to changing workloads, thereby reducing both runtime and resource waste

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms by continuously monitoring the queue depth, estimated time to complete queued commands, and actual resource utilization. This feedback loop enables the automatic elastic CPU feature to make informed decisions about resource allocation, adding resources when queue depth indicates backlog and removing resources when utilization is low, thus optimizing the trade-off between runtime and resource waste

Inventive Principle:
Principle #23Feedback

2Reliability

If computing resources are increased to handle complex design rules, then verification completeness improves, but resource utilization efficiency deteriorates

Engineering Contradiction:
Improveverification completenessVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically scales computing resources based on the actual verification workload and queue depth rather than allocating fixed resources for all scenarios. This dynamic approach ensures sufficient resources are available for complex design rule verification while avoiding over-provisioning that would reduce utilization efficiency

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of CPU allocation based on workload characteristics, queue depth, and estimated processing times. By adjusting this key parameter dynamically, the system maintains verification completeness for complex designs while optimizing resource utilization efficiency through data-driven allocation decisions

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11972193B1Automatic elastic CPU for physical verification
Publication Date: 2024.04.30 SYNOPSYS INC
  • US11972193B1 patent drawing
  • US11972193B1 patent drawing
  • US11972193B1 patent drawing

AI summary

Disclosed herein are a method, a system, and a computer-readable storage-medium embodiments of automatic elastic CPU for a physical verification job. An embodiment includes generating multiple commands for a physical verification job of a design. The multiple commands are related by a dependency graph. The embodiment further includes allocating an initial amount of computing resources to execute the multiple commands, queuing a subset of the multiple commands for execution based on the dependency graph, adding an estimated amount of computing resources to the initial amount based on the number of the queued subset of commands and an estimated time to complete the queued subset of commands, and releasing a portion of the estimated amount of computing resources in response to the portion of the estimated amount of computing resources being idle for an amount of time greater than a target time.