system level interconnect prediction (slip) 20081 sidewinder: a scalable ilp-based router jin hu,...
TRANSCRIPT
System Level Interconnect Prediction (SLIP) 2008 1
Sidewinder:Sidewinder:A Scalable ILP-Based RouterA Scalable ILP-Based Router
Jin Hu, Jarrod Roy, and Igor Markov
Dept. of Computer Science and EngineeringUniversity of Michigan
System Level Interconnect Prediction (SLIP) 2008 2
Why is Global Routing Important?High-level
• Abstract away design rules
• Chip routing grid
• Nets set of points
• Connect net points and assign to routing edges
Low level
• Uses global routing solution
• Assigns routes to routing tracks
• Must obey design rulesMust be certain distance apart
Global RoutingGlobal Routing
Detail RoutingDetail Routing
Final solution quality heavily dependent on global routing solution
System Level Interconnect Prediction (SLIP) 2008 3
Given:Routing grid G
with capacities
Net list N with n nets
Global Routing Problem
. . .
Net 1 Net 2 Net n
X
Y
g(x,
y)
cg(x,y)→g(x+1,y
)
…
cg(x,y)→g(x-
1,y)
cg(x,y)→g(x,y+
1)
…
cg(x,y)→g(x,y-
1)
…
…
System Level Interconnect Prediction (SLIP) 2008 4
Objective – route all nets while minimizing: Overflow: exceeded
(violations) grid capacities
Wirelength: total routed distance of nets
(traditional goal of routers)
Bends: changes in routing direction
(additional goal due to technology scaling)
Global Routing Problem
capacity = 2
overflow = 1
wirelength = 4
bends = 2
System Level Interconnect Prediction (SLIP) 2008 5
Directional preference on each metal layer
Bends require change in metal layers viasTungsten vs. copper or aluminumMore resistant, larger area, less reliable ISPD 2007 Routing Contest (IBM)
heavily penalizes vias: 3x more than WL
Why Minimize Bend Count?
Metal 1: Local routing (not shown)
Metal 3: Horizontal tracks
Metal 2: Vertical tracks
via
System Level Interconnect Prediction (SLIP) 2008 6
Outline
Common routing approaches Sidewinder
MethodologyExample
Results Conclusion
Our Contributions
System Level Interconnect Prediction (SLIP) 2008 7
Rip-up and Reroute (RRR)Route one net at a timeRip-up congested nets and
reroute in less congested areas
Routing Nets in Series
Net orderingvery important!
capacity = 2Blue BlackRed
BlueRed
Black
violationviolation
Maze Maze routeroute
Reroute with
different order
System Level Interconnect Prediction (SLIP) 2008 8
Routing nets in Parallel
Integer Linear Programming (ILP)Considers all variables simultaneouslyFinding optimal solutions is NP-Complete
Historically unscalable but have improved ILP solver technology: CPLEX v9, v10, v11More powerful CPUs
Significant progress in ILP formulationsPrevious work: BoxRouter 1.0 [Cho DAC06]
System Level Interconnect Prediction (SLIP) 2008 9
Sidewinder MethodologyInitial Routing
Improve?
Path Selection for ILP
yes
Final Routing
no
Generate Congestion Map
ILP Routing
• Breaks up multi-pin nets into subnets
• Routes with L-shape initially
• Calculates total congestion
• Chooses best 2 options for each net
• ILP route for new solution New solution is never worse than previous
• Repeats until no improvement
• Routes remaining nets with maze router
• Allows overflow
System Level Interconnect Prediction (SLIP) 2008 10
Initial Routing
Decompose 3+ pin nets into 2-pin subnets
Route all subnets with only LsSome nets may be unrouted
capacity = 2
Routed Nets: Blue, Red
Unrouted Nets: Black
Net Subnet 1Net topology
Subnet 2 Subnet 3
System Level Interconnect Prediction (SLIP) 2008 11
Generate Congestion Map
Use current solution to see congestion For each routed net, subtract 90% of usage
from total capacitiesLater account for 2nd path candidate
capacity = 2
2
2
0.2
0.2
capacity
System Level Interconnect Prediction (SLIP) 2008 12
Path Selection
For each net, consider possible patterns
LL-shapes-shapes ZZ-shapes-shapes CC-shapes-shapes(Potential)(Potential)
Maze RouteMaze Route
System Level Interconnect Prediction (SLIP) 2008 13
Path Selection
Use legal choices only
For each legal choice, calculate priority Pif all path segments have space
P = min(each grid edge);
else
P = -total overflow;
Use total available space for tie-breaker
System Level Interconnect Prediction (SLIP) 2008 14
Path Selection
Path Type Priority Tiebreaker
L1 (over, up) 0.2 0.4
L2 (up, over) ILLEGAL ILLEGAL
Z1 (vertical) ILLEGAL ILLEGAL
Z2 (horizontal) ILLEGAL ILLEGAL
C1 (+1N) ILLEGAL ILLEGAL
C2 (+1S) ILLEGAL ILLEGAL
C3 (+1E) 2 8
C4 (+1W) 2 8
C5 (+1N, +1E) ILLEGAL ILLEGAL
C6 (+1S, +1W) ILLEGAL ILLEGAL
Maze 0.2 0.4
Consider all unrouted nets first: Black Path
L1 C3 C4
• Pick top 2 choices as candidates
• Update congestion map each with usage of 50%
0.2
0.2
0.2
0.2
1.5 1.5
1.5
1.5
1.5
1.5
1.5 1.5
Maze
2 2
2
2
22
2
2
System Level Interconnect Prediction (SLIP) 2008 15
Path Selection
L1 C3 C4 Maze
0.2
0.2
1.5 1.5
1.5
1.5
1.5
1.5
1.5 1.5
Path Type Priority Tiebreaker
L1 (over, up) 0.2 0.4
L2 (up, over) ILLEGAL ILLEGAL
Z1 (vertical) ILLEGAL ILLEGAL
Z2 (horizontal) ILLEGAL ILLEGAL
C1 (+1N) ILLEGAL ILLEGAL
C2 (+1S) ILLEGAL ILLEGAL
C3 (+1E) 1.5 6
C4 (+1W) 1.5 6
C5 (+1N, +1E) ILLEGAL ILLEGAL
C6 (+1S, +1W) ILLEGAL ILLEGAL
Maze 0.2 0.4
Consider all routed nets next: Red Path
0.2
0.2
1.5 1.4
1.4
1.4
1.5
1.5
1.5 1.4
• Pick top 1 choice as candidate
• Update congestion map with usage of 10%
System Level Interconnect Prediction (SLIP) 2008 16
Path Selection
L1 C3 C4 Maze
Path Type Priority Tiebreaker
L1 (over, up) 0.2 0.4
L2 (up, over) ILLEGAL ILLEGAL
Z1 (vertical) ILLEGAL ILLEGAL
Z2 (horizontal) ILLEGAL ILLEGAL
C1 (+1N) ILLEGAL ILLEGAL
C2 (+1S) ILLEGAL ILLEGAL
C3 (+1E) 1.4 5.8
C4 (+1W) 1.5 6
C5 (+1N, +1E) ILLEGAL ILLEGAL
C6 (+1S, +1W) ILLEGAL ILLEGAL
Maze 0.2 0.4
Consider all routed nets next: Blue Path
• Pick top 1 choice as candidate
• Update congestion map with usage of 10%
0.2
0.2
1.5 1.4
1.4
1.4
1.5
1.5
1.5 1.4
0.2
0.2
1.4 1.4
1.4
1.4
1.4
1.4
1.4 1.4
System Level Interconnect Prediction (SLIP) 2008 17
ILP Formulation n
nnnn xwxwMaximize )( : 2211
Maximizes total number of nets routed
nnnn
nn
xxww
Nnxx
Where
2121
21
,for snet weight the: ,
netlist net each for paths 2 the: ,
:
nxx
nxx
toSubject
nn
nn
}1,0{,
1
:
21
21 Ensures at most 1 path is selected
10 ,0 ,),( )()1,(),(,
)1,(),(21
21
YjXiGjigcxxjigjigxx
jigjignn
nn
Capacity constraint in N direction
),(each for sconstraintcapacity 4 the:
x size of in cell grid the: ),(
)1,1(),( jigc
YXGjig
jigjig
YjXiGjigcxxjigjigxx
jigjignn
nn
0 ,0 ,),( )()1,(),(,
)1,(),(21
21
Capacity constraint in S direction
Capacity constraint in E direction
Capacity constraint in W direction
YjXiGjigcxxjigjigxx
jigjignn
nn
0 ,10 ,),( )(),1(),(,
),1(),(21
21
YjXiGjigcxxjigjigxx
jigjignn
nn
0 ,0 ,),( )(),1(),(,
),1(),(21
21
System Level Interconnect Prediction (SLIP) 2008 18
Choosing the Net Weights
Objective Function
Prioritizes choices by lowest wirelengthand number of bends
Path Type +WL +bends
L-shapes 1.00 +0 +0
Z-shapes 0.99 +0 +1
C-shapes 0.98 +2/+4 +2
Maze Route 0.97 variable variable
n
nnnn xwxwMaximize )( : 2211
nw
System Level Interconnect Prediction (SLIP) 2008 19
Iterative Improvement
Recall: for each routed net, 1 choice is from previous solutionWorst Case: New solution = Previous solution
Iterations stop when no improvement Final Routing: route all remaining nets with m
aze router (Dijkstra’s)
Every new solution is no worse than previous
System Level Interconnect Prediction (SLIP) 2008 20
Empirical Validation (ILP Only)
ISPD98 Benchmark Suite
• Real designs from IBM
• Standard suite in global routing
• Experiments ran on AMD Opteron 2.4 GHz with 4 GB of RAM
• ILP solver: CPLEX
• Net Decomposition: FLUTE [Chu TCAD07]
System Level Interconnect Prediction (SLIP) 2008 21
Results - Overflow
• Able to fully route 7/107/10 benchmarks
• Better than BoxRouter 1.0 [DAC06] on 8/108/10 benchmarks
System Level Interconnect Prediction (SLIP) 2008 22
Results - Wirelength
On Average: 0.5%0.5% Less Wirelength Than BoxRouter 1.0
ibm01 ibm02 ibm03 ibm04 ibm05 ibm06 ibm07 ibm08 ibm09 ibm100.9
0.92
0.94
0.96
0.98
1
1.02
1.04
1.06
1.08
1.1
Benchmark
SidewinderBoxRouter 1.0GeoSteiner
Normalized to GeoSteiner
GeoSteiner: Steiner tree generator
• Best lower bound for WL
• No capacity restrictions (routing solutions illegal)
• Impractically slow
System Level Interconnect Prediction (SLIP) 2008 23
Results – Bends
On Average: 6.4%6.4% Fewer Vias Than BoxRouter 1.0
ibm01 ibm02 ibm03 ibm04 ibm05 ibm06 ibm07 ibm08 ibm09 ibm100.9
0.95
1
1.05
1.1
1.15
Benchmark
SidewinderBoxRouter 1.0
Normalized to Minimum of Both Routers
Significantly fewer bends
• Vast majority of routes are patterns – L, Z, C
• Better bend count on every benchmark
System Level Interconnect Prediction (SLIP) 2008 24
Sidewinder: Summary
Scalable global router based on ILPUses dynamically updated congestion mapFirst ILP-based router to have global scope – lo
oks at entire routing grid Produces better solution quality
Average of 0.5% less wirelengthAverage of 6.4% fewer vias