- 87 Views
- Uploaded on
- Presentation posted in: General

Routing

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Routing

Prof. Shiyan Hu

shiyan@mtu.edu

Office: EERC 731

- Problem: given a source and a set of sinks, build the best interconnect topology to minimize different design objectives:
- Wire length: traditional (lower capacitance load, and overall congestion)
- Performance: Nanoscale circuits
- New interest: speed and other non-traditional routing architecture

- In most cases, topology means tree
- Because tree is the most compact structure to connect everything without redundancy
- Delay analysis is easy

- For multi-terminal net, we can easily construct a tree (spanning tree) to connect the terminals together.
- However, the wire length may be unnecessarily large.
- Better use Steiner Tree:
- A tree connecting all terminals as well as other added nodes (Steiner nodes).

- Rectilinear Steiner Tree:
- Steiner tree such that edges can only run horizontally and vertically.
- Manhattan planes
- Note: X (or Y)-architecture (non-Manhanttan)

Steiner Node

- Grow a connected subtree from the source, one node at a time.
- At each step, choose the closest un-connected node and add it to the subtree.

Y

X

s

Conventional Routing Algorithms Are Not Good Enough

Minimum spanning tree may have very long source-sink path.

Shortest path tree may have very large routing cost.

Want to minimize path lengths and routing cost at the same time.

- BPRIM & BRBC (bounded-radius bounded-cost) algorithm
- [Cong et al, ICCD’91, TCAD’92]

- RSA algorithm (for Min. Rectilinear Steiner Arborescences)
- [Rao-Sadayappan-Hwang-Shor, Algorithmica’92]

- Prim-Dijkstra tradeoff algorithm
- [Alpert et al, TCAD 1995]

- SERT algorithm (Steiner Elmore Routing Tree)
- [Boese-Kahng-McCoy-Robins, TCAD-95]

- MVERT algorithm (Minimum Violation Elmore Routing Tree)
- [Hou-Hu-Sapatnekar, TCAD-99]

- BINO alg. (Buffer Insertion and Non-Hanan Optimization)
- [Hu-Sapatnekar, ISPD-99]

- ……

Given Net N with source s and connected by tree T.

Radius of net N: distance from the source to the furthest sink.

Radius of a routing tree r(T): length of the longest path from the root to a leaf.

Cost of an edge: distance between two.

Cost of a routing tree cost(T): sum of the edge costs in T.

minpathG(u,v): shortest path from u to v in G

distG(u,v): cost of minpathG(u,v).

r(T)

radius of the net

source

s

routing tree

- Basic Idea: Restrict the tree radius while minimizing the routing cost
- Bounded radius minimum spanning tree problem (BRMST):
Given a net N with radius R,

find a minimum cost tree with radius r(T)(1+ )R

source

=

radius = 4.03

cost = 4.03

source

= 1

radius = 1.77

cost = 4.26

source

= 0

radius = 1

cost = 4.95

trade-off between radius and the cost of routing trees

- Parameter controls the trade-off between radius and cost
- = minimum spanning tree; = 0 shortest path tree

x

x

y

y

s

s

x’

distT(s,x)+cost(x,y)

(1+ )R

distT(s,x’)+cost(x’,y)

R

- Given net N with source s and radius R, and parameter .
- Grow a connected subtree T from the source, one node at a time
- At each step, choose the closest pair x T and y N-T
- If distT(s, x) + cost(x,y) (1+)R, add (x,y)
- Else backtrack along minpathT(s,x) to find x’ such that
distT(s, x’) + cost(x’, y) R, then add (x’, y)

- Slack R is introduced at each backtrace so we do not have
to backtrace too often.

- BPRIM can be arbitrarily bad.

x

x

y

y

all leaves connect

directly to the

source

source s

source s

Optimal Solution

Solution by BPRIM

s

s

10

s

9

8

L

4

3

7

Li’

Li

2

6

1

5

Graph Q

if S=distL(Li’,Li) distSPT(S, Li)

then add minpathSPT(s, Li) to Q and reset S =0, Li’ = Li

depth-first tour L

for MST

- Construct MST and SPT, Q = MST;
- Construct list L -- a depth-first tour of MST;
- Traverse L while keeping a running total S of traversed edge costs, when reaching Li
If S distSPT(s, Li) then add minpathSPT(s, Li) to Q and reset S = 0,

Else continue traverse L;

- Construct the shortest path tree T of Q.

Theorem 1: r(T)(1+ ) R

Proof: For any vertex x, let y be the last vertex before x in L that we add minpathSPT(s, L).

By the choice of y, we have

distL(y,x)distSPT(s,x) R

Therefore,

distQ(s,x)distQ(s,y) +distQ(y,x)

R+distL(y,x)

R+R =(1+ )R

Graph Q

s

x

y

s

tour L

distSPT(s,y)

R

y

x

distL(y,x) distSPT(S, x)

R

- Theorem 2: cost(T) (2+2/ ) cost(MST).
- Proof: Let v1 v2 … vk be the vertices that we add minpathSPT(s,vi)
Note that T is a subgraph of Q

Graph Q

s

s

tour L

vi-1

vi

distL(vi-1,vi) distSPT(S, vi)

- Idea borrowed from [Awarbuch - Baratz - Peleg, PODC-90]

Radius, as fraction of MST radius

Cost, as fraction of MST cost

Prim’s

MST

Dijkstra’s

SPT

Trade-off

- d(i,j): length of the edge (i, j)
- p(j): length of the path from source to j
- Prim: d(i,j) Dijkstra: d(i,j) + p(j)

p(j)

d(i,j)

- Prim: add edge minimizing d(i,j)
- Dijkstra: add edge minimizing p(i) + d(i,j)
- Trade-off: c(p(i)) + d(i,j) for 0 <= c <= 1
- When c=0, trade-off = Prim
- When c=1, trade-off = Dijkstra

- Extensive studies, even outside the VLSI design community
- Minimize total wire length
- 1-Steiner and iterated 1-Steiner [Kahng-Robins, 1992]
- One steiner point is added at each step
- Good performance but slow: O(n4logn)

- Recent result
- Efficient Steiner Tree Construction Based on Spanning Graphs [p. 152] , H. Zhou ISPD 2003
- O(nlogn)

- Highly Scalable Algorithms for Rectilinear and Octilinear Steiner Trees [p. 827] by A.B. Kahng, I.I. Mándoiu, A.Z. ZelikovskyASPDAC 2003
- O(nlog2n)

- Efficient Steiner Tree Construction Based on Spanning Graphs [p. 152] , H. Zhou ISPD 2003

- [Hanan, SIAM J. Appl. Math. 1966]
- For rectilinear Steiner tree construction, there exists a routing tree with minimum total wire length on the grid formed by horizontal and vertical lines passing through source and sinks.

Hanan nodes

source

Hanan Grid

- Given n nodes lying in the first quadrant
- Purpose is to maintain shortest paths from source to sink and minimize total wire length
- RSA algorithm
- Start with a forest of n single-node A-trees.
- Iteratively substituting min(p,q) for pair of nodes p, q
where min(p,q) = (min{xp, xq}, min{yp, yq}).

- The pair p, q are chosen to maximize ||min(p,q)|| over all current nodes.

p

q

min(p,q)

r

r

r

r

r

r

- Time Complexity O(n log n) when implemented using a plane-sweep technique.
- Wirelength of the tree by RSA algorithm 2 x Optimal solution (i.e., 2 x wirelength of minimumRectilinear Steiner Arborescence

- Routing Tree T: connects the source with a set of sinks
- plk(T): pathlength from sink k to source in T

Z0

Z0

driver

Z0

Z0

Fd

Z0

Z0

Z0

R0

C0

- Objective: Minimize

MST

SPT

QMST

MST cost 9(optimal) 11 10

SPT cost 37 29 (optimal) 31

QMST cost 45 36 34 (optimal)

- Definition: Rd/R0
Driver resistance versus unit wire resistance

- Determined by the Technology:
Reduce device dimension

R0

Rd

Rd/R0

- Impact on Interconnect Optimization:
- Why Minimum-cost shortest path tree is useful

Steiner Elmore Routing Tree (SERT) Heuristic[Boese-Kahng-McCoy-Robins, TCAD’95]

- Use Elmore Delay Model directly in construction of routing tree T.
- Add nodes to T one-by-one like Prim’s MST algorithm.
- Two versions:
- SERT Algorithm:
- At each step, choose v T and uT s.t. the maximum Elmore-delay to any sink has minimum increase.

- SERT-C Algorithm:
- SERT with identified critical sink
- First connect the critical sink to the source by a shortest path,
- then continues as in SERT, except that we minimize the Elmore delay of the critical sink rather than the max. delay.

- SERT Algorithm:

7

7

7

8

8

8

3

3

3

6

6

6

4

4

4

1

1

1

5

5

5

source

source

source

2

2

2

9

9

9

7

7

7

8

8

8

3

3

3

6

6

6

5

5

5

4

4

4

1

1

1

source

source

source

2

2

2

9

9

9

Examples of SERT-C Construction

7

7

7

8

8

8

6

6

3

6

3

3

5

5

4

4

4

1

1

1

5

source

source

2

2

2

9

9

9

source

c) Node 5 critical

a) Node 2 or 4 critical

b) Node 3 or 7 critical

(also 1-Steiner tree)

7

7

7

8

8

8

3

6

3

6

6

3

5

4

4

4

1

1

1

5

5

source

source

2

2

2

9

9

9

source

d) Node 6 critical

f) Node 9 critical

e) Node 8 critical

(also SERT)

- http://foghorn.cadlab.lafayette.edu/MazeRouter.html