minimum-buffered routing of non-critical nets for slew rate and reliability control

1
Annual Review September 2001 Minimum-Buffered Routing of Non-Critical Nets for Slew Rate and Reliability Control B. Liu, A.B. Kahng, I. Mandoiu A bstract This posterintroduces a new m inim um -buffered routing problem formulation w hich requires thatthe capacitive load ofeach bufferand ofthe source driver be upper-bounded by a given constant.O urcontributions include: -A linear tim e greedy algorithm for optim ally buffering a given tree with a single non-inverting buffertype -A linear time dynamic programming algorithm for optimally buffering a given tree w ith a single inverting buffertype -A dynamic programming algorithm for optimally buffering a given tree underadditional buffer skew constraints - Provably good algorithm s w ith approxim ation ratios of 2(1+) and 4(1+) for simultaneous routing and buffering w ith single non-inverting,respectively inverting,buffertype - Heuristics with im proved practical perform ance for simultaneous routing and buffering REFERENCES C .J.Alpert,A.B.Kahng,B.Liu,I.M andoiu and A.Zelikovsky,“M inim um -Buffered R outing for Slew R ate and R eliability C ontrol”,to appearin IC C A D -2001 C .Albrecht,A.B.Kahng,B.Liu,I.M andoiu and A.Zelikovsky,“O n the Skew Bounded M inimum BufferR outing Tree Problem ”,to appearin S A S IMI -2001 M otivation In order to initiate m eaningful placem ent and tim ing optim izations , any design flow requires early elim ination ofallelectrical violations (e.g.,cap load and slew violations), even for non-critical nets .Bounds on load caps -Serve as proxies forsignal slew rate bound -Im prove coupling noise im munity -R educe delay uncertainty due to coupling noise -Im prove reliability w ith respectto hot-carrierand AC self-heating effects -Facilitate technology m igration since designs are m ore balanced -G uarantee bounded inputrise/fall tim es atbuffers and sinks To m ake progress with any m ethodology, it is crucial to have a fast and resource efficient method for fixing buffer load violations. Of particular interestare practicalm ethods for buffering non-criticalnets that have up to tens ofthousands ofsinks (e.g.,scan enable). In clock-tree routing it is also necessary to bound the buffer skew , i.e., the difference betw een the m axim um and the m inim um num ber of buffers over allsource-to-sink paths in a routing tree,since bufferskew directly affects the actual clock skew. G iven:net N with – Source r ,sinks S –Inputcapacitance C s foreach sink s in S U nitlength w ire capacitance C w Inverting ornon-inverting buffertype,w ith •Bufferinputcapacitance C b Load cap upper-bound C U Sink polarities (optional) Buffer-skew bound (optional) Find:buffered routing tree for N such that Load cap ofeach bufferand ofthe source r is atm ost C U Sink polarity constraints are satisfied Buffer-skew is atm ost The num berofinserted buffers is m inimized Tree buffered w ith inverters Tree w ith zero buffer-skew B ounded-load B uffered tree M inim um -B uffered R outing Problem C U 0.75C U 0.75C U C w =C b =0 +C U +0.75C U +0.75C U C w =C b =0 C U 0.75C U 0.75C U C w =C b =0 =0 O ptim al buffering ofthe rectilinearSteinerm inim um tree (R SM T)is not alw ays optim al O ptim al solution notalw ays on H anan grid N P-hard to approxim ate w ithin a constantfactorbetterthan 2 -Proofby reduction from the R SM T problem source 1 7 7 1 3 O ptim um solution source 6 2 3 H anan grid solution 1 7 O ptim um topology noton H anan grid R SM T topology m ay be sub-optim al H ardness R esults Buffered R SM T source 2 S3 4 S1 S2 12 5 RSMT Optim um source 2 S3 4 S1 S2 12 5 source 2 S3 4 S1 S2 12 5 C U = 8,sink/bufferinputcap = 1 C U = 14,sink/bufferinputcap = 0 Lineartim e greedy algorithm (extends tree-partition algorithm ofKundu&M isra): Find a critical vertex p ,i.e.,a bottom -mostvertex p such that c(T p ) > C U by a post-ordertraversal ofthe tree Find a heaviestchild u of p,i.e.,a vertex u such that c(T u ) + c(u,p) c(T v ) + c(v,p) forevery otherchild v of p –Insertbuffer b on edge (u,p) such that c(u,b) = min{C U -c(T u ), c(u,p)} R ecursively find an optim um buffering B’ of T -- T b – Return B = B’ U {b} Insert bufferon edge (u,p) if C U c(T u )+c(u,p) Insert bufferat top of heaviest edge if C U > c(T u )+c(u,p) N on-Inverting B uffering ofa G iven Tree Lineartim e dynam ic program m ing algorithm (D PI): Traverse tree in postorder –Insertbuffer b on edge (u,p) if c(T u ) < C U < c(T u ) + c(u,p) Foreach branching point u Try to insert0,1 or2 buffers atthe head ofeach branch (9 cases for binary tree) Foreach case C heck feasibility w .r.t.polarity constraints R eplace subtree u by an equivalentedge (u,v) w ith param eters ( , nb, rc), where is polarity at u , nb is num berofbuffers and rc is residual capacitance ofsubtree u find solutions w ith m inim um num berofbuffers and topm ost bufferpolarity =+/- Find the solution atrootw ith m in num berofbuffers Insertbuffers in top-dow n order Inverting B uffering ofa G iven Tree O ptim al dynam ic program m ing algorithm (runs in O(n 3 OPT 2 ) tim e): -Traverse tree T in postorder -Buffereach edge ifnecessary -Buffereach branching pointw ith all possible skew com binations -R eturn m in-costbuffering Skew -B ounded B uffering ofa G iven Tree Tellez and S arrafzadeh (TC AD ’97)suggesta greedy algorithm w ith runtim e O(n+OPT) ,w here n is the num berofsinks and OPT is the optim um num berof buffers.H owever, greedy is suboptim alforany bufferskew > 0: G reedy buffering O ptim um buffering C U Bufferskew = 1, sink inputcap C u =C U ,C v =C x =0.75C U Interconnectand buffer have zero cap 0.75C U 0.75C U C U 0.75C U 0.75C U source 1 R SM T + K M 2 1 6 3 2 source 3 2 5 1 5 Fillheuristic Sim ultaneous R outing and B uffering Provably good algorithm s: -C onstructan -approxim ate Steinertree T - Apply the greedy K M algorithm on T - (R eplace each bufferby 1 or2 inverting buffers) Theorem : Approximation ratio is 2 (1+ ) for non- inverting, and 4 (1+ ) for inverting buffer type. Fill heuristic: -R epeatuntil source load cap < C U Find Steinertree and add firstbuffer b using KM Fill b’s subtree w ith nearby sinks up to cap = C U Cut&C onnectheuristic: -Find Steinertree,add buffers using KM -Foreach buffer b w ith load cap < C U C ut b’s subtree,then reconnectitand relocate b such thatdriven cap is as close to C U as possible C U = 8,sink/bufferinputcap = 1 Benchm ark M ST+KM M ST+Cut&Connect M ST+ Fill M ST+DPI Lower #sinks C U #buffers runtime #buffers runtime #buffers runtime #buffers runtime Bound 12000 500 244 2.63 236 9.27 222 106.83 420 3.05 184 12000 1000 116 2.63 113 11.54 106 46.90 207 3.05 88 12000 4000 28 2.64 28 13.32 25 10.59 55 3.06 20 12000 8000 13 2.63 13 8.10 12 5.82 26 3.07 9 22000 500 1418 4.39 1395 21.62 1305 1172.75 2094 5.10 1197 22000 1000 674 4.39 656 30.36 613 540.28 1126 5.10 575 22000 4000 164 4.39 159 95.40 146 121.24 297 5.11 139 22000 8000 80 4.39 78 106.98 72 60.33 145 5.14 68 34000 500 806 6.59 778 39.13 729 890.01 1387 7.74 591 34000 1000 388 6.58 374 58.55 350 424.81 696 7.76 283 34000 4000 95 6.57 92 147.62 84 103.59 179 7.74 68 34000 8000 45 6.57 44 113.80 42 49.25 85 7.76 33 Fill,C ut&C onnectand KM show differentruntim e/quality tradeoffs w ith the best quality achieved by Fill heuristic and the bestruntim e by K M Significantm ore buffers are needed w ith polarity constraints (butinverters are sm allerthan non-inverting buffers) R eference im plem entations are being added to the G SR C bookshelfto facilitate fast dissem ination and easy com parison w ith future com peting heuristics Experim entalR esults

Upload: aristotle-bryan

Post on 31-Dec-2015

21 views

Category:

Documents


0 download

DESCRIPTION

Minimum-Buffered Routing of Non-Critical Nets for Slew Rate and Reliability Control. B. Liu, A.B. Kahng, I. Mandoiu. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Minimum-Buffered Routing of Non-Critical Nets  for Slew Rate and Reliability Control

Annual Review September 2001

Minimum-Buffered Routing of Non-Critical Nets for Slew Rate and Reliability Control B. Liu, A.B. Kahng, I. Mandoiu

Abstract

This poster introduces a new minimum-buffered routing problem formulation which requires that the capacitive load of each buffer and of the source driver be upper-bounded by a given constant. Our contributions include:- A linear time greedy algorithm for optimally buffering a given tree with a single non-inverting buffer type- A linear time dynamic programming algorithm for optimally buffering a given tree with a single inverting buffer type- A dynamic programming algorithm for optimally buffering a given tree under additional buffer skew constraints

- Provably good algorithms with approximation ratios of 2(1+) and 4(1+) for simultaneous routing and buffering with single non-inverting, respectively inverting, buffer type- Heuristics with improved practical performance for simultaneous routing and buffering

REFERENCESC. J. Alpert, A.B. Kahng, B. Liu, I. Mandoiu and A. Zelikovsky, “Minimum-Buffered Routing for Slew Rate and Reliability Control”, to appear in ICCAD-2001C. Albrecht, A. B. Kahng, B. Liu, I. Mandoiu and A. Zelikovsky, “On the Skew Bounded Minimum Buffer Routing Tree Problem”, to appear in SASIMI-2001

Motivation

In order to initiate meaningful placement and timing optimizations , any design flow requires early elimination of all electrical violations (e.g., cap load and slew violations), even for non-critical nets. Bounds on load caps

- Serve as proxies for signal slew rate bound

- Improve coupling noise immunity

- Reduce delay uncertainty due to coupling noise

- Improve reliability with respect to hot-carrier and AC self-heating effects

- Facilitate technology migration since designs are more balanced

- Guarantee bounded input rise/fall times at buffers and sinks

To make progress with any methodology, it is crucial to have a fast and resource efficient method for fixing buffer load violations. Of particular interest are practical methods for buffering non-critical nets that have up to tens of thousands of sinks (e.g., scan enable).

In clock-tree routing it is also necessary to bound the buffer skew, i.e., the difference between the maximum and the minimum number of buffers over all source-to-sink paths in a routing tree, since buffer skew directly affects the actual clock skew.

Given: net N with

– Source r, sinks S

– Input capacitance Cs for each sink s in S

– Unit length wire capacitance Cw

– Inverting or non-inverting buffer type, with• Buffer input capacitance Cb

• Load cap upper-bound CU

– Sink polarities (optional)

– Buffer-skew bound (optional)

Find: buffered routing tree for N such that

– Load cap of each buffer and of the source ris at most CU

– Sink polarity constraints are satisfied

– Buffer-skew is at most – The number of inserted buffers is minimized

Tree buffered with inverters

Tree with zero buffer-skew

Bounded-load Buffered tree

Minimum-Buffered Routing Problem

CU 0.75CU

0.75CU

Cw=Cb=0

+CU +0.75CU

+0.75CU

Cw=Cb=0

CU 0.75CU

0.75CU

Cw=Cb=0=0

• Optimal buffering of the rectilinear Steiner minimum tree (RSMT) is not always optimal

• Optimal solution not always on Hanan grid• NP-hard to approximate within a constant factor better than 2

- Proof by reduction from the RSMT problem

source1 7

7 13

Optimum solution

source

6 23

Hanan grid solution

1 7

Optimum topology not on Hanan gridRSMT topology may be sub-optimal

Hardness Results

Buffered RSMT

source

2

S3

4

S1

S2

12

5

RSMT Optimum

source

2

S3

4

S1

S2

12

5

source

2

S3

4

S1

S2

12

5

CU = 8, sink/buffer input cap = 1CU = 14, sink/buffer input cap = 0

Linear time greedy algorithm (extends tree-partition algorithm of Kundu&Misra):

– Find a critical vertex p, i.e., a bottom-most vertex p such that c(Tp) > CU

by a post-order traversal of the tree

– Find a heaviest child u of p, i.e., a vertex u such that c(Tu) + c(u,p) c(Tv) + c(v,p) for every other child v of p

– Insert buffer b on edge (u,p) such that c(u,b) = min{CU-c(Tu), c(u,p)}

– Recursively find an optimum buffering B’ of T -- Tb

– Return B = B’ U {b}

Insert buffer on edge (u,p) if CU c(Tu)+c(u,p) Insert buffer at top of heaviest edge if CU > c(Tu)+c(u,p)

Non-Inverting Buffering of a Given Tree

Linear time dynamic programming algorithm (DPI):

– Traverse tree in postorder

– Insert buffer b on edge (u,p) if c(Tu) < CU < c(Tu) + c(u,p)

– For each branching point u

• Try to insert 0,1 or 2 buffers at the head of each branch (9 cases for binary tree)

• For each case

– Check feasibility w.r.t. polarity constraints

– Replace subtree u by an equivalent edge (u,v) with parameters (, nb, rc), where is polarity at u, nb is number of buffers and rcis residual capacitance of subtree u

– find solutions with minimum number of buffers and topmost buffer polarity =+/-

– Find the solution at root with min number of buffers

– Insert buffers in top-down order

Inverting Buffering of a Given Tree

Optimal dynamic programming algorithm (runs in O(n3OPT2) time):- Traverse tree T in postorder- Buffer each edge if necessary- Buffer each branching point with all possible skew combinations- Return min-cost buffering

Skew-Bounded Buffering of a Given TreeTellez and Sarrafzadeh (TCAD’97) suggest a greedy algorithm with runtime O(n+OPT), where n is the number of sinks and OPT is the optimum number of buffers. However, greedy is suboptimal for any buffer skew > 0:

Greedy buffering Optimum buffering

CU

Buffer skew = 1, sink input cap Cu=CU, Cv=Cx=0.75CU

Interconnect and buffer have zero cap

0.75CU

0.75CU

CU 0.75CU

0.75CU

source

1

RSMT + KM

21

6

3

2

source

3

25

1

5

Fill heuristic

Simultaneous Routing and BufferingProvably good algorithms:- Construct an -approximate Steiner tree T- Apply the greedy KM algorithm on T- (Replace each buffer by 1 or 2 inverting buffers)

Theorem: Approximation ratio is 2(1+ ) for non-inverting, and 4(1+ ) for inverting buffer type.

Fill heuristic:- Repeat until source load cap < CU

Find Steiner tree and add first buffer b using KMFill b’s subtree with nearby sinks up to cap = CU

Cut&Connect heuristic:- Find Steiner tree, add buffers using KM- For each buffer b with load cap < CU

Cut b’s subtree, then reconnect it and relocate bsuch that driven cap is as close to CU as possible

CU = 8, sink/buffer input cap = 1

Benchmark MST+KM MST+Cut&Connect MST+ Fill MST+DPI Lower#sinks CU #buffers runtime #buffers runtime #buffers runtime #buffers runtime Bound

12000 500 244 2.63 236 9.27 222 106.83 420 3.05 184 12000 1000 116 2.63 113 11.54 106 46.90 207 3.05 8812000 4000 28 2.64 28 13.32 25 10.59 55 3.06 2012000 8000 13 2.63 13 8.10 12 5.82 26 3.07 9

22000 500 1418 4.39 1395 21.62 1305 1172.75 2094 5.10 119722000 1000 674 4.39 656 30.36 613 540.28 1126 5.10 57522000 4000 164 4.39 159 95.40 146 121.24 297 5.11 13922000 8000 80 4.39 78 106.98 72 60.33 145 5.14 68

34000 500 806 6.59 778 39.13 729 890.01 1387 7.74 591 34000 1000 388 6.58 374 58.55 350 424.81 696 7.76 28334000 4000 95 6.57 92 147.62 84 103.59 179 7.74 6834000 8000 45 6.57 44 113.80 42 49.25 85 7.76 33

• Fill, Cut&Connect and KM show different runtime/quality tradeoffs with the best quality achieved by Fill heuristic and the best runtime by KM

• Significant more buffers are needed with polarity constraints (but inverters are smaller than non-inverting buffers)

• Reference implementations are being added to the GSRC bookshelf to facilitate fast dissemination and easy comparison with future competing heuristics

Experimental Results