System Level Interconnect Prediction (SLIP) Sidewinder: A Scalable ILP-Based Router Jin Hu, Jarrod Roy, and Igor Markov Dept. of Computer Science and Engineering University of Michigan
System Level Interconnect Prediction (SLIP) 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 rules Must be certain distance apart Global Routing Detail Routing Final solution quality heavily dependent on global routing solution
System Level Interconnect Prediction (SLIP) 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) c g(x,y)→g(x+1,y) … c g(x,y)→g(x-1,y) c g(x,y)→g(x,y+1) … c g(x,y)→g(x,y-1) … …
System Level Interconnect Prediction (SLIP) 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) Directional preference on each metal layer Bends require change in metal layers vias Tungsten vs. copper or aluminum More 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) Outline Common routing approaches Sidewinder Methodology Example Results Conclusion Our Contributions
System Level Interconnect Prediction (SLIP) Rip-up and Reroute (RRR) Route one net at a time Rip-up congested nets and reroute in less congested areas Routing Nets in Series Net ordering very important! capacity = 2 Blue Black Red Blue Red Black violation Maze route Reroute with different order
System Level Interconnect Prediction (SLIP) Routing nets in Parallel Integer Linear Programming (ILP) Considers all variables simultaneously Finding optimal solutions is NP-Complete Historically unscalable but have improved ILP solver technology: CPLEX v9, v10, v11 More powerful CPUs Significant progress in ILP formulations Previous work: BoxRouter 1.0 [Cho DAC06]
System Level Interconnect Prediction (SLIP) Sidewinder Methodology Initial 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) Initial Routing Decompose 3+ pin nets into 2-pin subnets Route all subnets with only Ls Some 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) Generate Congestion Map Use current solution to see congestion For each routed net, subtract 90% of usage from total capacities Later account for 2 nd path candidate capacity = capacity
System Level Interconnect Prediction (SLIP) Path Selection For each net, consider possible patterns L-shapes Z-shapes C-shapes (Potential) Maze Route
System Level Interconnect Prediction (SLIP) Path Selection Use legal choices only For each legal choice, calculate priority P if 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) Path Selection Path TypePriorityTiebreaker L1 (over, up) L2 (up, over) ILLEGAL Z1 (vertical) ILLEGAL Z2 (horizontal) ILLEGAL C1 (+1N) ILLEGAL C2 (+1S) ILLEGAL C3 (+1E) 28 C4 (+1W) 28 C5 (+1N, +1E) ILLEGAL C6 (+1S, +1W) ILLEGAL Maze Consider all unrouted nets first: Black Path L1 C3C4 Pick top 2 choices as candidates Update congestion map each with usage of 50% Maze
System Level Interconnect Prediction (SLIP) Path Selection L1 C3C4Maze Path TypePriorityTiebreaker L1 (over, up) L2 (up, over) ILLEGAL Z1 (vertical) ILLEGAL Z2 (horizontal) ILLEGAL C1 (+1N) ILLEGAL C2 (+1S) ILLEGAL C3 (+1E) 1.56 C4 (+1W) 1.56 C5 (+1N, +1E) ILLEGAL C6 (+1S, +1W) ILLEGAL Maze Consider all routed nets next: Red Path Pick top 1 choice as candidate Update congestion map with usage of 10%
System Level Interconnect Prediction (SLIP) Path Selection L1C3C4Maze Path TypePriorityTiebreaker L1 (over, up) L2 (up, over) ILLEGAL Z1 (vertical) ILLEGAL Z2 (horizontal) ILLEGAL C1 (+1N) ILLEGAL C2 (+1S) ILLEGAL C3 (+1E) C4 (+1W) 1.56 C5 (+1N, +1E) ILLEGAL C6 (+1S, +1W) ILLEGAL Maze Consider all routed nets next: Blue Path Pick top 1 choice as candidate Update congestion map with usage of 10%
System Level Interconnect Prediction (SLIP) ILP Formulation Maximizes total number of nets routed Ensures at most 1 path is selected Capacity constraint in N direction Capacity constraint in S direction Capacity constraint in E direction Capacity constraint in W direction
System Level Interconnect Prediction (SLIP) Choosing the Net Weights Objective Function Prioritizes choices by lowest wirelength and number of bends Path Type +WL+bends L-shapes Z-shapes C-shapes /+4+2 Maze Route0.97 variable
System Level Interconnect Prediction (SLIP) Iterative Improvement Recall: for each routed net, 1 choice is from previous solution Worst Case: New solution = Previous solution Iterations stop when no improvement Final Routing: route all remaining nets with maze router (Dijkstra’s) Every new solution is no worse than previous
System Level Interconnect Prediction (SLIP) 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) Results - Overflow 7/10 Able to fully route 7/10 benchmarks 8/10 Better than BoxRouter 1.0 [DAC06] on 8/10 benchmarks
System Level Interconnect Prediction (SLIP) Results - Wirelength 0.5% On Average: 0.5% Less Wirelength Than BoxRouter 1.0 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) Results – Bends 6.4% On Average: 6.4% Fewer Vias Than BoxRouter 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) Sidewinder: Summary Scalable global router based on ILP Uses dynamically updated congestion map First ILP-based router to have global scope – looks at entire routing grid Produces better solution quality Average of 0.5% less wirelength Average of 6.4% fewer vias