1 / 53

Approximation Algorithms for VLSI Routing

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.

enan
Télécharger la présentation

Approximation Algorithms for VLSI Routing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Approximation Algorithms for VLSI Routing Ion I. Mandoiu Ph.D. Defense of Research August 11, 2000

  2. 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) • …

  3. 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

  4. A New RSMT Heuristic

  5. Steiner point MST RSMT The RSMT problem MST gives 3/2 approximation [H76]

  6. 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!!!

  7. 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

  8. 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

  9. 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

  10. Average Improvement over MST

  11. Average CPU Time

  12. Results on Industrial Instances No Term:

  13. Improved ZST and BST Approximation Algorithms

  14. 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

  15. 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

  16. (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks ZST Lower-Bound

  17. ZST Lower-Bound (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks

  18. ZST Lower-Bound (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks

  19. ZST Lower-Bound (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks

  20. ZST Lower-Bound (CKKRST 99) N(r)=min. # of balls of radius r that cover all sinks

  21. Lemma: For any ordering of the terminals, if then Constructive Lower-Bound Computing N(r) is NP-hard, but …

  22. n n-1 N(r) 2 r Constructive Lower-Bound

  23. ZST root-to-leaf path length = where = max path length from to a leaf of Stretching Rooted Spanning Trees • ZST root = spanning tree root

  24. Loop length = Stretching Rooted Spanning Trees

  25. Sum of loop lengths = Stretching Rooted Spanning Trees

  26. 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

  27. 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?

  28. 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:

  29. 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

  30. 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)

  31. 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

  32. 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

  33. Stretching Using Steiner Points

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. BST Approximation Algorithm: Output tree cover  approximate ZST on W

  42. Theorem: Rectilinear Plane: Arbitrary metric spaces: BST Approximation

  43. Summary of Results on ZST/BST

  44. Tight Analysis of the MST Heuristic for MSPT

  45. The MSPT Problem MSPT Problem: find bounded edge-length Steiner tree with min. number of Steiner points

  46. 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

  47. Provably Good Global Buffering by MTMCF Approximation

  48. BB BB Global Routing via Buffer Blocks

  49. 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)

  50. Integer MTMCF Formulation Approach: solve LP relaxation + randomized rounding

More Related