IP Library Granted Patent US 11,954,419
Granted Patent B2
US 11,954,419 · App. 17/281,649 · Granted Apr 9, 2024

Dynamic allocation of computing resources for electronic design automation operations

Inventors: Patrick D. Gibson (Tualatin, OR); Robert A. Todd (Beaverton, OR); Jimmy J. Tomblin (Santa Rosa Beach, FL)
Assignee: Siemens Industry Software Inc.
G06F30/398G06F9/4881G06F9/5027G06F30/20G06F30/337G06F30/373
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,954,419
App. No.
17/281,649
Granted
Apr 9, 2024
Kind
B2
Abstract

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.

Claims (45)

1. A method comprising:

through a computing system:

allocating computing resources to a set of compute engines, each compute engine configured to perform electronic design automation (EDA) operations on a hierarchical dataset representative of an integrated circuit (IC) design; and

dynamically reallocating a particular computing resource from a first compute engine to a second compute engine based on an operation priority of an EDA operation executed by the second compute engine, an idle indicator for the first compute engine, or a combination of both,

wherein dynamically reallocating the particular computing resource based on the idle indicator for the first compute engine comprises:

identifying that the first compute engine is executing an EDA process that has reached an EDA operation tail that requires execution of particular EDA operations for the EDA process in serial; and

identifying the particular computing resource as an idle resource unused by the first compute engine during the EDA operation tail of the EDA process for which the particular EDA operations for the EDA process are executed in serial.

2. The method of claim 1 , wherein dynamically reallocating the particular computing resource based on the operation priority of the EDA operation comprises:

determining that the EDA operation executed by the second compute engine is on a critical execution path of an EDA process and, in response, reallocating the particular compute resource to the second compute engine.

3. The method of claim 1 , wherein dynamically reallocating the particular computing resource based on the operation priority of the EDA operation comprises:

determining an operation type of the EDA operation executed by the second compute engine; and

reallocating the particular computing resource to the second compute engine responsive to a determination that the operation type of the EDA operation is a fill operation or multi-patterning operation.

4. The method of claim 1 , wherein dynamically reallocating the particular computing resource based on the operation priority of the EDA operation comprises:

determining a circuit layer that the EDA operation executed by the second compute engine operates on; and

reallocating the particular computing resource to the second compute engine responsive to a determination that the circuit layer is a metal 1 or metal 2 layer.

5. A system comprising:

a set of compute engines, each compute engine configured to perform electronic design automation (EDA) operations on a hierarchical dataset representative of an integrated circuit (IC) design; and

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 executed by a second compute engine, an idle indicator for the first compute engine, or a combination of both,

wherein the dynamic resource balancing engine is configured to dynamically reallocate the particular computing resource based on the idle indicator for the first compute engine by:

identifying that the first compute engine is executing an EDA process that has reached an EDA operation tail that requires execution of particular EDA operations for the EDA process in serial; and

identifying the particular computing resource as an idle resource unused by the first compute engine during the EDA operation tail of the EDA process for which the particular EDA operations for the EDA process are executed in serial.

6. The system of claim 5 , wherein the dynamic resource balancing engine is configured to dynamically reallocate the particular computing resource based on the operation priority of the EDA operation by:

determining that the EDA operation executed by the second compute engine is on a critical execution path of an EDA process and, in response, reallocating the particular compute resource to the second compute engine.

7. The system of claim 5 , wherein the dynamic resource balancing engine is configured to dynamically reallocate the particular computing resource based on the operation priority of the EDA operation by:

determining an operation type of the EDA operation executed by the second compute engine; and

reallocating the particular computing resource to the second compute engine responsive to a determination that the operation type of the EDA operation is a fill operation or multi-patterning operation.

8. The system of claim 5 , wherein the dynamic resource balancing engine is configured to dynamically reallocate the particular computing resource based on the operation priority of the EDA operation by:

determining a circuit layer that the EDA operation executed by the second compute engine operates on; and

reallocating the particular computing resource to the second compute engine responsive to a determination that the circuit layer is a metal 1 or metal 2 layer.

9. A non-transitory machine-readable medium comprising instructions that, when executed by a processor, cause a system to:

allocate computing resources to a set of compute engines, each compute engine configured to perform electronic design automation (EDA) operations on a hierarchical dataset representative of a circuit design; and

dynamically reallocate a particular computing resource from a first compute engine to a second compute engine based on an operation priority of an EDA operation executed by the second compute engine, an idle indicator for the first compute engine, or a combination of both,

wherein the instructions to dynamically reallocate the particular computing resource based on the idle indicator for the first compute engine comprise instructions that, when executed by the processor, cause the system to:

identify that the first compute engine is executing an EDA process that has reached an EDA operation tail that requires execution of particular EDA operations for the EDA process in serial; and

identify the particular computing resource as an idle resource unused by the first compute engine during the EDA operation tail of the EDA process for which the particular EDA operations for the EDA process are executed in serial.

10. The non-transitory machine-readable medium of claim 9 , wherein the instructions to dynamically reallocate the particular computing resource based on the operation priority of the EDA operation comprise instructions that, when executed by the processor, cause the system to:

determine that the EDA operation executed by the second compute engine is on a critical execution path of an EDA process and, in response, reallocate the particular compute resource to the second compute engine.

11. The non-transitory machine-readable medium of claim 9 , wherein the instructions to dynamically reallocate the particular computing resource based on the operation priority of the EDA operation comprise instructions that, when executed by the processor, cause the system to:

determine an operation type of the EDA operation executed by the second compute engine; and

reallocate the particular computing resource to the second compute engine responsive to a determination that the operation type of the EDA operation is a fill operation or multi-patterning operation.

12. The non-transitory machine-readable medium of claim 9 , wherein the instructions to dynamically reallocate the particular computing resource based on the operation priority of the EDA operation comprise instructions that, when executed by the processor, cause the system to:

determine a circuit layer that the EDA operation executed by the second compute engine operates on; and

reallocate the particular computing resource to the second compute engine responsive to a determination that the circuit layer is a metal 1 or metal 2 layer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2021
From: GIBSON, PATRICK D.; TODD, ROBERT A.; TOMBLIN, JIMMY J.
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 055785/0391 →
MERGER AND CHANGE OF NAME Recorded Mar 31, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 055785/0816 →
Continuity (1)
Related Publication 20210374319A1 · Dec 2, 2021