470 likes | 653 Views
CSE248 Spring 2011 Skew. Agenda. Special trees (H, Y, X) Zero-skew tree problem and DME (BK92, CHHBK92) BST-DME (bounded-skew trees) Lower bounds (Charikar et al.) and provably good ZST construction (Zelikovsky-Mandoiu) Planar zero-skew trees (ZD94, KT96)
E N D
Agenda • Special trees (H, Y, X) • Zero-skew tree problem and DME (BK92, CHHBK92) • BST-DME (bounded-skew trees) • Lower bounds (Charikar et al.) and provably good ZST construction (Zelikovsky-Mandoiu) • Planar zero-skew trees (ZD94, KT96) • Prescribed or useful distance – and LP (OPP96)
λ-Geometry Routing • Introduced by [Burman et al. 1991] • λ uniformly distributed routing directions • Approximates Euclidean routing as λ approaches infinity λ = 2 Manhattan “M” λ = 3 Hexagonal “Y” λ = 4 Octilinear “X”
Y Trees • Distance between adjacent sinks = 1 • N-level clock tree: • path length = • total wire length = • Covers all slots
Y Clock Tree on Square Mesh • N-level clock tree: • path length = 21% less than H-tree • total wire length = • 9% less than H tree, 3% less than X tree • No self-overlapping between parallel wire segments
Y Clock Tree on Hexagonal Mesh • N-level clock tree: • path length = • total wire length = • Covers 3/4 of slots
Agenda • Special trees (H, Y, X) • Zero-skew tree problem and DME (BK92, CHHBK92) • BST-DME (bounded-skew trees) • Lower bounds (Charikar et al.) and provably good ZST construction (Zelikovsky-Mandoiu) • Planar zero-skew trees (ZD94, KT96) • Prescribed or useful distance – and LP (OPP96)
Zero-Skew Tree (ZST) Problem • Zero Skew Clock Routing Problem (S,G): Given a set S of sink locations and a connection topology G, construct a ZST T(S) with topology G and having minimum cost. • Skew = maximum value of |td(s0,si) – td(s0,sj)| over all sink pairs si, sj in S. • Td = signal delay (from source s0) • Connection topology G = rooted binary tree with nodes of S as leaves • Edge ea in G is the edge from a to its parent • |ea| is the (assigned) length of edge ea • Cost = total edge length
Manhattan Arcs, TRRs and Merging Segments • Manhattan Arc: line segment with slope +1 or –1 • Tilted Rectangular Region (TRR): collection of points within a fixed distance of a Manhattan arc • Core = Manhattan arc • Radius = distance • Merging segment = locus of feasible locations for a node v in the topology, consistent with minimum wirelength • If v is a sink, then ms(v) = {v} • If v is an internal node, then ms(v) is the set of all points within distance |ea| of ms(a), and within distance |eb| of ms(b)
Bottom-Up: Tree of Merging Segments • Goal: Construct a tree of merging segments corresponding to topology G • Merging segment of a node depends on merging segment of its children bottom-up construction • Let a, b be children of v. We want placements of v that allow TSa and TSb to be merged with minimum added wire while preserving zero skew • Merging cost = |ea| + |eb| • Lemma: The intersection of two TRRs is also a TRR and can be found in constant time.
Tree of Merging Segments • Constant time per each new merging segment linear time (in size of S) to construct entire tree
Top-Down: Embedding Nodes of Topology • Goal: Find exact locations (“embeddings”) pl(v) of internal nodes v in the ZST topology. • If v is the root node, then any point on ms(v) can be chosen as pl(v) • If v is an internal node other than the root, and p is the parent of v, then v can be embedded at any point in ms(v) that is at distance |ev| or less from pl(p) • Detail: create square TRR trrp with radius ev and core equal to pl(p); placement of v can be any point in ms(v) trrp
Find_Exact_Placements • Each instruction executed at most once for each node in G, and TRR intersection is O(1) time Find_Exact_Placements is O(n) DME is O(n)
Facts About DME Construction • DME produces a ZST under linear delay model with minimum cost over all ZSTs with topology G and sink set S • For any sink set S and topology G, DME will construct a ZST with minimum feasible source-sink delay, equal to one-half the diameter of S (Theorem 2, BK92) • Corollary: We know the merging segments top-down!
Vertex Loci in a Bounded-Skew Tree • Given a skew bound, where can internal nodes of the given topology (e.g., a, b, v) be placed? skew 2 4 6 0 a skew 6 4 2 0 2 4 2 v 6 4 s0 v 6 b Topology a b s4 s1 s3 s2
BST-DME Bottom-Up Phase s0 v Bottom-Up: build tree of merging regions corresponding to given topology Topology a b s4 s1 s3 s2 s2 B = 4 s0 s3 mr(a) mr(b) s1 mr(v) s4
BST-DME Top-Down Phase s0 v Topology a b s4 s1 s3 s2 s2 B = 4 s0 s3 a b s1 v s4
Agenda • Special trees (H, Y, X) • Zero-skew tree problem and DME (BK92, CHHBK92) • BST-DME (bounded-skew trees) • Lower bounds (Charikar et al.) and provably good ZST construction (Zelikovsky-Mandoiu) • Planar zero-skew trees (ZD94, KT96) • Prescribed or useful distance – and LP (OPP96)
ZST Approximation Charikar et al. [CKKRST99] • NP-hard for general metric spaces • factor 2e ~ 5.44 approximation Zelikovsky-Mandoiu [ZM02] (J. Disc. Math.) • 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 … Explanation: If r is less than half the minimum separation of any two of the first i terminals, then at least i balls are needed to cover the terminal set. In particular, at least i balls are needed to cover just the first i terminals in the ordering. Where MinDist{A} = minu,v in A, u != v d(u,v)
n n-1 N(r) 2 r Constructive Lower Bound {i = 2 to n} ½ MinDist{t1, …, ti} Explanation: From the previous lemma, N(r) is at least i when r < ½ MinDist(t1,…, ti). So, we are making a lower sum for the given integral. The original version of this slide was missing the ½ factor above. ½ MinDist{t1, t2} ½ MinDist{t1, …, tn}
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 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? Explanation: Kruskal is adding connections which, in reverse order, give the MinDist’s of the latest I+1 terminals in the tree. For example, the last connection is the MinDist of the latest two terminals. The first connection is the MinDist of all n terminals. The summation is exactly twice the lower bound from Slide 30. 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
Agenda • Special trees (H, Y, X) • Zero-skew tree problem and DME (BK92, CHHBK92) • BST-DME (bounded-skew trees) • Lower bounds (Charikar et al.) and provably good ZST construction (Zelikovsky-Mandoiu) • Planar zero-skew trees (ZD94, KT96) • Prescribed or useful distance – and LP (OPP96)
Planar Zero-Skew Tree (ZST) Problem • Planar Zero Skew Clock Routing Problem (S,G): Given a set S of sink locations and a connection topology G, construct a ZST T(S) with topology G and having minimum cost, which is embeddable in the plane with no crossing edges. • Zhu-Dai 1992: Iteratively: (1) Connect free sink to its minimal balance point (shortest wire, maintaining exact zero pathlength skew); (2) Choose the “free” (unused) sink whose minimum balance distance is maximized.
Planar Zero-Skew Tree (ZST) Problem • Planar Zero Skew Clock Routing Problem (S,G): Given a set S of sink locations and a connection topology G, construct a ZST T(S) with topology G and having minimum cost, which is embeddable in the plane with no crossing edges. • Enabling observations: • Theorem 2 of BK92 allows us to build the tree of merging segments top-down • Binary tree topology = recursive bipartitioning of the sink set S • Planar-DME: Can achieve planarity by choosing the sink partitions and edge embeddings carefully • Topology is constructed on the fly (it is not prescribed a priori)
Planar Zero-Skew Tree (ZST) Problem • Planar Zero Skew Clock Routing Problem (S,G): Given a set S of sink locations and a connection topology G, construct a ZST T(S) with topology G and having minimum cost, which is embeddable in the plane with no crossing edges. • Enabling observations: • Theorem 2 of BK92 allows us to build the tree of merging segments top-down “Single-Pass DME” • Binary tree topology = recursive bipartitioning of the sink set S • Planar-DME: Can achieve planarity by choosing the sink partitions and edge embeddings carefully • Topology is constructed on the fly (it is not prescribed a priori)
Top-Down, Single-Pass Partitioning+Embedding • Entire routing region Pa is divided into convex polygons until only one sink lies within each convex polygon • Boundaries of polygons are given by thick dashed lines and tree edges • Tree of merging segments is given by thin dotted lines
Embedding Rules • In each recursive call, given: • a subset of sinks S’, contained in convex polygon P(S’) • a point p inside P(S’) which is the embedding of the parent of the root of the subtree over S’ • Must connect p to a point v on ms(v) = center(S’) • “Embedding Rules” ensure that we find an embedding point for v in O(1) time
Partitioning Rules • Goal: find a splitting line • Divides P(S’) into two convex polygons (thus partitioning the sink set between the two subtrees of v) • Allows the routing from p to v to be on the boundary between the two polygons • “Partitioning Rules” ensure that we find the splitting line in Theta(|S’|) time
Agenda • Special trees (H, Y, X) • Zero-skew tree problem and DME (BK92, CHHBK92) • BST-DME (bounded-skew trees) • Lower bounds (Charikar et al.) and provably good ZST construction (Zelikovsky-Mandoiu) • Planar zero-skew trees (ZD94, KT96) • Prescribed or useful distance – and LP (OPP96)
Prescribed Delays by Linear Programming • Oh, Pyo, Pedram 1996 • Topology and sink locations are given • Use LP to determine edge lengths ( implicitly determining Steiner point locations) Notes. (1) Having path lengths greater than or equal to lower bounds (= endpoint to endpoint distances) is a sufficient condition for there to exist Steiner point locations that satisfy the pathlength bounds. (2) Solving for the Steiner point locations in the straightforward way (i.e., as (x,y) coordinates) does not work, but solving for the locations implicitly does work.