Presentation is loading. Please wait.

Presentation is loading. Please wait.

System Level Interconnect Prediction (SLIP) 20081 Sidewinder: A Scalable ILP-Based Router Jin Hu, Jarrod Roy, and Igor Markov Dept. of Computer Science.

Similar presentations


Presentation on theme: "System Level Interconnect Prediction (SLIP) 20081 Sidewinder: A Scalable ILP-Based Router Jin Hu, Jarrod Roy, and Igor Markov Dept. of Computer Science."— Presentation transcript:

1 System Level Interconnect Prediction (SLIP) 20081 Sidewinder: A Scalable ILP-Based Router Jin Hu, Jarrod Roy, and Igor Markov Dept. of Computer Science and Engineering University of Michigan

2 System Level Interconnect Prediction (SLIP) 20082 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

3 System Level Interconnect Prediction (SLIP) 20083 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) … …

4 System Level Interconnect Prediction (SLIP) 20084 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

5 System Level Interconnect Prediction (SLIP) 20085 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

6 System Level Interconnect Prediction (SLIP) 20086 Outline Common routing approaches Sidewinder  Methodology  Example Results Conclusion Our Contributions

7 System Level Interconnect Prediction (SLIP) 20087 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

8 System Level Interconnect Prediction (SLIP) 20088 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]

9 System Level Interconnect Prediction (SLIP) 20089 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

10 System Level Interconnect Prediction (SLIP) 200810 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

11 System Level Interconnect Prediction (SLIP) 200811 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 = 2 2 2 0.2 capacity

12 System Level Interconnect Prediction (SLIP) 200812 Path Selection For each net, consider possible patterns L-shapes Z-shapes C-shapes (Potential) Maze Route

13 System Level Interconnect Prediction (SLIP) 200813 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

14 System Level Interconnect Prediction (SLIP) 200814 Path Selection Path TypePriorityTiebreaker L1 (over, up) 0.20.4 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 0.20.4 Consider all unrouted nets first: Black Path L1 C3C4 Pick top 2 choices as candidates Update congestion map each with usage of 50% 0.2 1.5 Maze 22 2 2 22 2 2

15 System Level Interconnect Prediction (SLIP) 200815 Path Selection L1 C3C4Maze 0.2 1.5 Path TypePriorityTiebreaker L1 (over, up) 0.20.4 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 0.20.4 Consider all routed nets next: Red Path 0.2 1.5 1.4 1.5 1.4 Pick top 1 choice as candidate Update congestion map with usage of 10%

16 System Level Interconnect Prediction (SLIP) 200816 Path Selection L1C3C4Maze Path TypePriorityTiebreaker L1 (over, up) 0.20.4 L2 (up, over) ILLEGAL Z1 (vertical) ILLEGAL Z2 (horizontal) ILLEGAL C1 (+1N) ILLEGAL C2 (+1S) ILLEGAL C3 (+1E) 1.45.8 C4 (+1W) 1.56 C5 (+1N, +1E) ILLEGAL C6 (+1S, +1W) ILLEGAL Maze 0.20.4 Consider all routed nets next: Blue Path Pick top 1 choice as candidate Update congestion map with usage of 10% 0.2 1.5 1.4 1.5 1.4 0.2 1.4

17 System Level Interconnect Prediction (SLIP) 200817 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

18 System Level Interconnect Prediction (SLIP) 200818 Choosing the Net Weights Objective Function Prioritizes choices by lowest wirelength and number of bends Path Type +WL+bends L-shapes1.00 +0 Z-shapes0.99 +0+1 C-shapes0.98 +2/+4+2 Maze Route0.97 variable

19 System Level Interconnect Prediction (SLIP) 200819 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

20 System Level Interconnect Prediction (SLIP) 200820 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]

21 System Level Interconnect Prediction (SLIP) 200821 Results - Overflow 7/10 Able to fully route 7/10 benchmarks 8/10 Better than BoxRouter 1.0 [DAC06] on 8/10 benchmarks

22 System Level Interconnect Prediction (SLIP) 200822 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

23 System Level Interconnect Prediction (SLIP) 200823 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

24 System Level Interconnect Prediction (SLIP) 200824 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


Download ppt "System Level Interconnect Prediction (SLIP) 20081 Sidewinder: A Scalable ILP-Based Router Jin Hu, Jarrod Roy, and Igor Markov Dept. of Computer Science."

Similar presentations


Ads by Google