Deterministic Multi-Processing for EDA Pathfinding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing EDA tools, such as autorouters, face challenges in achieving deterministic multi-processing, leading to unpredictable results and difficulties in debugging and testing, especially in chaotic systems and concurrent environments, which hinders performance improvement and product quality.

Innovation Solution

Implementing a deterministic multi-processing approach using a costed-search method with a priority queue and canonical ordering to ensure consistent decision-making across multiple processing entities, maintaining determinism even in concurrent environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multi-processing is implemented to improve processing speed, then productivity increases, but system behavior becomes chaotic and unpredictable making debugging and testing difficult

Engineering Contradiction:
Improveprocessing speedVSAvoidpredictability of system behavior
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the priority queue into multiple processing entities (threads/processes) that can operate concurrently. Each entity processes probes independently by popping from the shared priority queue, allowing parallel execution while maintaining deterministic behavior through the ordered queue structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the state parameter of the system from non-deterministic to deterministic by implementing a canonical ordering mechanism. The costed-search approach with priority queue ensures that processing order is determined by cost parameters rather than arbitrary timing, making system behavior predictable and testable.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If deterministic behavior is enforced to enable regression testing, then reliability improves, but processing speed decreases due to sequential execution

Engineering Contradiction:
ImprovedeterminismVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent creates multiple copies of the processing logic in the form of separate processing entities (threads/processes) that operate in parallel. Each entity has its own probe processing loop but shares the deterministic priority queue, enabling concurrent execution while preserving determinism through the shared ordered structure.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent transitions from single-threaded sequential processing to multi-threaded parallel processing by adding the dimension of concurrency. The priority queue serves as the coordinating mechanism that allows multiple processing dimensions to operate simultaneously while maintaining deterministic ordering through cost-based prioritization.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If concurrent processing is used to handle large design data, then productivity increases, but manufacturing precision of routing results decreases due to chaotic behavior

Engineering Contradiction:
Improveprocessing capacityVSAvoidrouting result consistency
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent performs preliminary ordering of all probes in the priority queue based on cost parameters before processing begins. This pre-establishes the processing sequence deterministically, ensuring that all concurrent processing entities follow the same ordered sequence and produce consistent routing results regardless of execution timing variations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7574686B1Method and system for implementing deterministic multi-processing
Publication Date: 2009.08.11 CADENCE DESIGN SYST INC
  • US7574686B1 patent drawing
  • US7574686B1 patent drawing
  • US7574686B1 patent drawing

AI summary

Disclosed is a method, system, and computer program product for implementing a costed-search approach that supports concurrent operation on a multi-CPU system that enables out-of-order search evaluation that does not affect the final outcome of the algorithm. The algorithm is guaranteed to produce identical results when run as a single-threaded application on a single-CPU system. This allows a single regression test suite to be used to test single-threaded and multi-threaded versions of the product.