540 likes | 888 Views
Approximation Algorithms for VLSI Routing. Ion I. Mandoiu Ph.D. Defense of Research August 11, 2000. VLSI Routing . VLSI Physical Design Electrical description Geometrical layout. VLSI Global Routing Given: locations for net terminals Find: tree interconnection for each net.
E N D
Approximation Algorithms for VLSI Routing Ion I. Mandoiu Ph.D. Defense of Research August 11, 2000
VLSI Routing VLSI Physical Design Electrical description Geometrical layout VLSI Global Routing Given: locations for net terminals Find: tree interconnection for each net • Minimizing: • total length (RSMT problem) • skew (ZST problem) • number of buffers (MSPT problem) • …
Overview of Results Single-net routing: • New RSMT heuristic • runs 10 times faster, and gives higher-quality solutions than previous best RSMT heuristic • Improved ZST approximation algorithms • very fast: O(nlogn) running time • Tight analysis of the MST heuristic for MSPT Multi-net routing: • MCF-based approximation algorithms for global buffering via buffer blocks
Steiner point MST RSMT The RSMT problem MST gives 3/2 approximation [H76]
Reduction to discrete grid [H66] Key Results on RSMT Problem • NP-hard [GJ77] • Iterated 1-Steiner heuristic [KR90] • Greedily adds Steiner points to the tree • Almost 11% improvement over MST on average • Fast batched implementation (BI1S) • Exact algorithm: GeoSteiner 3.0 [WWZ98] • Branch-and-cut • 11.5% improvement over MST on average • Average speed comparable to BI1S!!!
The IRV Algorithm: High-Level Idea • Iterative method: in each step add/remove one Steiner point to/from tree • Unlike Iterated 1-Steiner heuristic, do not insist on choosing best Steiner point in each step • Steiner point to be added is chosen using a powerful LP formulation of the Steiner tree problem in graphs, called the bidirected cut formulation
Adaptation to General Graphs • Remove Steiner-Steiner edges from graph G • Run RV algorithm on remaining graph • Repeat, treating Steiner vertices picked by the RV algorithm as terminals • Stop when no new Steiner vertices are picked
Experimental Setup • Test bed for experiments: • Random instances ranging in size between 10 and 250 terminals, 1000 instances/size • Instances extracted from industrial designs • Measure of quality: percent improvement over MST
Results on Industrial Instances No Term:
Zero-Skew Trees Zero-Skew Tree: rooted tree in which all root-to-leaf paths have the same length Used in VLSI clock routing & network multicasting
The Zero-Skew Tree Problem Zero-Skew Tree Problem Given: set of terminals in rectilinear plane Find: zero-skew tree with minimum total length • Previous results [CKKRST99] • NP-hard for general metric spaces • factor 2e ~ 5.44 approximation • Our results: • factor 4approximation for general metric spaces • factor 3approximation for rectilinear plane
(CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks ZST Lower-Bound
ZST Lower-Bound (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks
ZST Lower-Bound (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks
ZST Lower-Bound (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks
ZST Lower-Bound (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks
Lemma: For any ordering of the terminals, if then Constructive Lower-Bound Computing N(r) is NP-hard, but …
n n-1 N(r) 2 r Constructive Lower-Bound
ZST root-to-leaf path length = where = max path length from to a leaf of Stretching Rooted Spanning Trees • ZST root = spanning tree root
Loop length = Stretching Rooted Spanning Trees
Sum of loop lengths = Stretching Rooted Spanning Trees
Theorem: Every rooted spanning tree can be stretched to a ZST of total length where Zero-Skew Spanning Tree Problem: Find rooted spanning tree minimizing Zero-Skew Spanning Tree Problem
MST: min length, huge delay Star: min delay, huge length N-1 … N-2 . . . 3 2 1 … 0 How good are the MST and Min-Star?
Initially each terminal is a rooted tree; d(t)=0 for all t • Pick closest two roots, t & t’, where d(t) d(t’) • t’ becomes child of t, root of merged tree is t • d(t) max{ d(t), d(t’) + dist(t ,t’) } t’ t’ t t The Rooted-Kruskal Algorithm • While 2 roots remain:
Initially each terminal is a rooted tree; d(t)=0 for all t • While 2 roots remain: • Pick closest two roots, t & t’, where d(t) d(t’) • t’ becomes child of t, root of merged tree is t • d(t) max{ d(t), d(t’) + dist(t ,t’) } The Rooted-Kruskal Algorithm
Initially each terminal is a rooted tree; d(t)=0 for all t • Initially each terminal is a rooted tree; d(t)=0 for all t • Initially each terminal is a rooted tree; d(t)=0 for all t • While 2 roots remain: • Pick closest two roots, t & t’, where d(t) d(t’) • Pick closest two roots, t & t’, whered(t) d(t’) • t’ becomes child of t, root of merged tree is t • d(t) max{ d(t), d(t’) + dist(t ,t’) } • d(t) max{ d(t), d(t’) + dist(t ,t’) } At the end of the algorithm, d(t)=delay (t ) At the end of the algorithm, d(t)=delay (t ) T T • When edge (t ,t’) is added to T: • length(T) increases by dist(t ,t’) • delay(T) increases by at most dist(t ,t’) How good is Rooted-Kruskal? Lemma: delay(T) length(T)
Initially each terminal is a rooted tree; d(t)=0 for all t • While 2 roots remain: • Pick closest two roots, t & t’, where d(t) d(t’) • Pick closest two roots, t & t’, where d(t) d(t’) • t’ becomes child of t, root of merged tree is t • d(t) max{ d(t), d(t’) + dist(t ,t’) } Number terminals in reverse order of becoming non-roots length(T) = How good is Rooted-Kruskal? Lemma:length(T) 2 OPT
Factor 4 Approximation Algorithm: Rooted-Kruskal + Stretching • Length after stretching = length(T) + delay(T) • delay(T) length(T) • length(T) 2 OPT ZST length 4 OPT
Factor 3 Approximation Algorithm: Rooted-Kruskal + Improved Stretching • Length after stretching = length(T) + ½ delay(T) • delay(T) length(T) • length(T) 2 OPT ZST length 3 OPT
Practical Considerations • For a fixed topology, minimum length ZST can be found in linear time using the Deferred Merge Embedding (DME) algorithm [Eda91, BK92, CHH92] • Practical algo: Rooted-Kruskal + Stretching + DME Theorem: Both stretching algorithms lead to the same ZST topology when applied to the Rooted-Kruskal tree
Running Time • Stretching: O(N logN) • Rooted-Kruskal: O(N logN) using the dynamic closest-pair data structure of [B98] • DME: O(N) [Eda91, BK92, CHH92] O(N logN) overall
2 • Running time of Rooted-Kruskal becomes O(N ) Extension to Other Metric Spaces Everything works as in rectilinear plane, except: • No equivalent of DME known for other spaces • The space must be metrically convex to apply second stretching algorithm
Bounded-Skew Trees b-bounded-skew tree: difference between length of any two root-to-leaf paths is at most b Bounded-Skew Tree Problem: given a set of terminals and bound b>0, find a b-bounded-skew tree with minimum total length • Previous approximation guarantees [CKKRST 99]: • factor 16.11 for arbitrary metrics • factor 12.53 for rectilinear plane Our results: factor 14, resp. 9 approximation
Lemma: For any set of terminals, and any BST construction idea + lower bound Two stage BST construction: • Cover terminals by disjoint b-bounded-skew trees • Connect roots via a zero-skew tree
T MST on terminals, rooted arbitrarily • W • While T do: • Find leaf of T furthest from the root • Find its highest ancestor u that still has delay b • Add u to W • Add T to the tree cover and delete it from T u Lemma: Constructing the tree cover
BST Approximation Algorithm: Output tree cover approximate ZST on W
Theorem: Rectilinear Plane: Arbitrary metric spaces: BST Approximation
The MSPT Problem MSPT Problem: find bounded edge-length Steiner tree with min. number of Steiner points
The MST Heuristic for MSPT Find MST, subdivide edges to meet edge-length constraints [LX99] Approximation factor 5 in Euclidean plane Our result Approximation factor of MST heuristic is D-1, where D is the MST number of the space (maximum possible degree of a minimum-degree MST) Factor 3 in rectilinear plane, 4 in Euclidean plane
BB BB Global Routing via Buffer Blocks
Global Buffering Problem Given: • L/U bounds on edge lengths • buffer block locations and capacities • list of nets, each net has • upper-bound and parity requirement on # buffers for each source-sink path • non-negative weight (criticality coefficient) Find: routing of a max. weight set of nets s.t. • each edge length is between L and U • # buffers for any source-sink pair satisfy given constraints • # of nets passing through buffer block b capacity(b)
Integer MTMCF Formulation Approach: solve LP relaxation + randomized rounding