1 / 21

Provably Good Global Buffering Using an Available Buffer Block Plan

Provably Good Global Buffering Using an Available Buffer Block Plan. F.F. Dragan (Kent State) A.B. Kahng (UCSD) I. Mandoiu (Georgia Tech/UCLA) S. Muddu (Silicon Graphics) A. Zelikovsky (Georgia State). Global Buffering via Buffer Blocks.

Download Presentation

Provably Good Global Buffering Using an Available Buffer Block Plan

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Provably Good Global Buffering Using an Available Buffer Block Plan F.F. Dragan (Kent State) A.B. Kahng (UCSD) I. Mandoiu (Georgia Tech/UCLA) S. Muddu (Silicon Graphics) A. Zelikovsky (Georgia State)

  2. Global Buffering via Buffer Blocks • VDSM buffer / inverter insertion for all global nets • 50nm technology  10^6 buffers • Buffer Block (BB) methodology • isolate buffer insertion from block implementations • improve routing area resources (RAR) utilization • RAR(2k-buffer block) =   RAR(k-buffer block) • For high-end designs   1.6 • Buffer block planning [Cong+99] [TangW00] • given block placement + nets • find shape and location of BBs • Global buffering via BBs • given nets + BB locations and capacities • find buffered routing for each net

  3. Global Buffering via Buffer Blocks

  4. Global Buffering Problem Given: • Pin & BB locations, BB capacities • list of 2-pin nets, each net has • upper-bound on #buffers • parity requirement on #buffers • [non-negative weight (criticality coefficient)] • L/U bounds on wirelength b/w consecutive buffers/pins Find:buffered routing of a maximum [weighted] number of nets subject to the given constraints

  5. Global Buffering Problem Given: • Pin & BB locations, BB capacities • list of 2-pin nets, each net has • upper-bound on #buffers new • parity requirement on #buffers new • [non-negative weight (criticality coefficient)] new • L/U bounds on wirelength b/w consecutive buffers/pins Find:buffered routing of a maximum [weighted] number of nets subject to the given constraints Previous work: 1 buffer per connection, no weights

  6. Outline of Results • Provably good algorithm for the Global Buffering Problem • integer node-capacitated multi-commodity flow (MCF) formulation • approximation algorithm for solving fractional relaxation • provably good randomized rounding based on [RaghavanT87] • allows tradeoff between run-time and solution quality • Fast heuristic based on ideas from the approximation algorithm • superior to simpler greedy approaches • almost matches the provably good algorithm for loosely constrained instances

  7. Integer Program Formulation

  8. High-Level Approach • Solve fractional relaxation + rounding • first introduced for global routing [RaghavanT87] • fractional relaxation = node-capacitated multi-commodity flow (MCF) • can be solved exactly using Linear Programming (LP) techniques • exact LP algorithms are not practical for large instances • Key idea: approximate solution to the relaxation • we generalize edge-capacitated MCF approximation of [GargK98, F99] • [GargK98] successfully applied to global routing by [Albrecht00]

  9. Approximating the Fractional MCF -MCF algorithm w(v) = , f = 0 For i = 1 to N do For k = 1, …, #nets do Find a shortest path p  P for net k While w(p) < min{ 1, (1+2)^I } do f(p)= f(p) + 1 For every v  p do w(v)  ( 1 + /c(v) ) * w(v) End For End While End For End For Output f/N Run time for -approximation =

  10. Rounding to an Integer Solution • Random walk algorithm [RaghavanT87] • probability of routing a net proportional to net’s flow • probability of choosing an arc proportional to fractional flow along arc • run time = O( #inserted buffers ) • To avoid BB overuse, scale-down fractional flow by 1- before rounding • Modifications • approximate MCF underestimates optimum •  few violations + unused BB capacity for large  • resolve capacity violations by greedily deleting paths • greedily route remaining nets using unused BB capacity

  11. Implemented Heuristics • -MCF w/ greedy enhancement • solve fractional MCF with  approximation • round fractional solution via random walks • apply greedy deletion/addition to get feasible solution • Greedy • sequentially route nets along shortest available paths • 1-shot integer MCF • assign weight w=1 to each BB • repeat until total overused capacity does not decrease • for each net find shortest path • for each BB r increase weight by factor (1 +  usage(r) / cap(r)) • apply greedy deletion/addition to get feasible solution

  12. Experimental Setup • Test instances extracted from next-generation SGI microprocessor • ~4,000 nets • U=4,000 m, L=500-2,000 m • 50 buffer blocks • BB capacity • 400 (fully routable instances) • 50 (hard instances, 50-60% routable)

  13. Fully Routable Instance (4212 nets)

  14. 1-Shot Greedy Fully Routable Instance (4212 nets)

  15. Running Time vs. Solution Quality

  16. 1-Shot Greedy ~57% Routable Instance (4212 nets)

  17. Conclusions and Ongoing Work • Provably good algorithm based on node-capacitated MCF approximation • Extensions: • combine global buffering with BB planning • combine with compaction

  18. Combining with compaction

  19. Combining with compaction

  20. Combining with compaction • Sum-capacity constraints: cap(BB1) + cap(BB2)  const.

  21. Conclusions and Ongoing Work • Provably good algorithm based on node-capacitated MCF approximation • Extensions: • combine global buffering with BB planning • combine with compaction • enforce channel capacity constraints • multi-terminal nets (ASPDAC-01)

More Related