Multi-threaded Network Routing via Iterative Partitioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional multi-threading methods for network routing in electronic design automation (EDA) face challenges with non-deterministic routing results and high computing overhead due to resource dependencies and the construction of dependency graphs, especially in large-scale integration (VLSI) routing problems.
Innovation Solution
The method involves iteratively partitioning networks into groups to schedule routing tasks such that no two networks with overlapping routing regions are routed simultaneously, using a tree data structure to manage dependencies and minimize idle time, thereby reducing synchronization overhead and achieving deterministic routing results.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional dependency graph construction is used to schedule routing tasks, then routing dependencies are managed, but construction time becomes very time consuming for large-scale integration routing problems
Solution Approach 1:
The patent segments the routing task scheduling problem into two distinct phases: (1) constructing a static dependency graph that identifies all potential dependencies between routing regions, and (2) using this pre-computed dependency graph to efficiently schedule routing tasks during multi-threaded execution. This segmentation allows the time-consuming dependency analysis to be performed once beforehand, rather than dynamically during task scheduling, thus reducing overall construction time while maintaining reliable dependency management.
Solution Approach 2:
The patent performs preliminary action by pre-computing and storing the dependency graph before actual routing task execution. The dependency graph is constructed in advance to identify all routing regions and their dependencies, allowing subsequent task scheduling to proceed efficiently without repeated dependency analysis. This preliminary preparation eliminates the need for time-consuming dynamic dependency construction during multi-threaded routing operations.
2Reliability
If dynamic task scheduling is performed to manage routing dependencies, then routing correctness is maintained, but frequent synchronization between threads results in high computing overhead
Solution Approach 1:
The patent performs preliminary action by pre-computing the dependency graph and determining task scheduling orders before multi-threaded execution begins. The static dependency graph pre-identifies which routing tasks can execute in parallel and which must sequentialize, allowing threads to proceed with minimal synchronization. This eliminates the need for frequent runtime synchronization checks, reducing computing overhead while maintaining routing correctness.
Solution Approach 2:
The patent introduces a static dependency graph as an intermediary structure that mediates between routing tasks and thread execution. Instead of threads directly synchronizing with each other during execution, they independently consult the pre-computed dependency graph to determine their execution order. This intermediary eliminates frequent thread-to-thread synchronization, reducing computing overhead while ensuring routing correctness through the graph's dependency constraints.
3Productivity
If multi-threading is used to process routing tasks in parallel, then routing speed is improved, but non-deterministic routing results occur due to resource dependencies
Solution Approach 1:
The patent segments the routing design into distinct routing regions, each with clearly defined boundaries and dependencies. By dividing the overall routing problem into discrete, manageable regions and representing them in a structured dependency graph, the patent enables deterministic parallel processing. Each routing region can be independently processed by different threads according to the static dependency graph, ensuring that resource dependencies are systematically managed and routing results remain deterministic despite parallel execution.
Solution Approach 2:
The patent introduces a static dependency graph as an intermediary that mediates between parallel routing tasks and ensures deterministic results. The graph pre-establishes the execution order of routing tasks based on their dependencies, allowing multiple threads to execute in parallel while following a predetermined schedule. This intermediary structure eliminates non-determinism by ensuring that all threads follow the same pre-computed execution plan, producing consistent routing results regardless of thread scheduling variations.
Data Source
AI summary
Various embodiments provide for multi-threaded network routing of a circuit design based on partitioning networks of the circuit design, which can enable partitioning routing tasks for the circuit design. More particularly, some embodiments iteratively partition networks of a circuit design into groups of networks, which enable various embodiments to schedule routing tasks for those groups of networks to available threads such that no two networks of the circuit design with overlapping routing regions are routed at the same time, and such that idle time of each thread (e.g., time where thread has no work or is waiting for another thread to finish) can be minimized.


