Deterministic Multi-Processing for EDA Pathfinding
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If deterministic behavior is enforced to enable regression testing, then reliability improves, but processing speed decreases due to sequential execution
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.
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.
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
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.
Data Source
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.


