A Faster Approximation Scheme for Timing A Faster Approximation Scheme for Timing Driven Minimum Cost Layer Assignment Driven Minimum Cost Layer Assignment Shiyan Hu* , Shiyan Hu * , Zhuo Zhuo Li* * , and Charles J. Alpert* * Li* * , and Charles J. Alpert* * * Dept of ECE, Michigan Technological University * Dept of ECE, Michigan Technological University * * IBM Austin Research Lab * * IBM Austin Research Lab
Outline Outline 2
Layer Assignment Layer Assignment 4X X 4 2X X 2 1X X 1 In 45nm technology, layer assignment is critical for � � In 45nm technology, layer assignment is critical for timing and buffer area optimization timing and buffer area optimization 3
Wire RC and Delay Wire RC and Delay M2 M4 M6 M2 M4 M6 2.50E+ 02 2.00E+ 00 2.00E+ 02 Capacitance 1.50E+ 00 Resistance 1.50E+ 02 1.00E+ 00 1.00E+ 02 5.00E-01 5.00E+ 01 0.00E+ 00 0.00E+ 00 90 80 Wire in higher Wire in higher 70 60 layer has much layer has much y la M2 50 e d M4 smaller delay smaller delay ire 40 M6 w 30 20 10 0 4 0.1 0.2 0.3 0.4 0.5 0.6 0.7 wire length
I mpact to Buffering I mpact to Buffering � A buffer can A buffer can � drive longer drive longer distance in distance in higher layer higher layer � Timing is Timing is � improved improved � Fewer buffers Fewer buffers � are needed are needed 5
I mpact to Routing/ Buffering I mpact to Routing/ Buffering IP IP IP IP 6
Problem Formulation Problem Formulation Can be different Can be different layers layers � A layer refers to a pair of horizontal and vertical A layer refers to a pair of horizontal and vertical � � Given Given � layers with similar RC characteristics layers with similar RC characteristics – A buffered Steiner tree A buffered Steiner tree – � Between any buffers, one layer is used Between any buffers, one layer is used with n wire segments with n wire segments � – Timing constraint Timing constraint – � In early design stage, when buffering effect is In early design stage, when buffering effect is � – m wire layers with RC m wire layers with RC – considered, wire shaping is not important [Alpert considered, wire shaping is not important [Alpert parameters and cost parameters and cost TCAD’ ’01] 01] TCAD � In post In post- -routing stage, wire shaping could improve routing stage, wire shaping could improve Same Layer Same Layer � timing, reduce vias vias and reduce coupling and so and reduce coupling and so timing, reduce � Find a Find a minimal cost minimal cost layer assignment such that the layer assignment such that the � forth forth timing constraint is satisfied. timing constraint is satisfied. 7
Fully Polynomial Time Fully Polynomial Time Fully Polynomial Time Approximation Scheme (FPTAS) Approximation Scheme (FPTAS) Approximation Scheme (FPTAS) � A Fully Polynomial Time A Fully Polynomial Time � Approximation Scheme Approximation Scheme • Provably good Provably good • Within (1+ ɛ ɛ ) • Within (1+ ) • optimal cost for any optimal cost for any ɛ > 0 ɛ > 0 4X X 4 • Runs in time Runs in time • polynomial in n polynomial in n (segments), m (layers) 2X X (segments), m (layers) 2 and 1/ ɛ ɛ and 1/ • • Ultimate solution for Ultimate solution for 1X X 1 an NP- -hard problem hard problem an NP in theory in theory • Highly practical Highly practical • 8
Previous Work in I CCAD’08 Previous Work in I CCAD’08 / ɛ ɛ 2 3 / 2 ) time n 3 � It depends on M It depends on M and uses a DP of O(m and uses a DP of O(mn ) time � Ratio between upper and Ratio between upper and An iterative DP with An iterative DP with lower bounds of the cost of lower bounds of the cost of incremental W incremental W optimal layer assignment optimal layer assignment Our DP needs one run for Bound independent oracle all W query / ɛ ɛ ) time New FPTAS runs in O(mn 2 2 / � New FPTAS runs in O(mn ) time � 9
The Rough Picture The Rough Picture W* : the cost of optimal solution W* : the cost of optimal solution Make guess on W* Not Check it Good Good (close to W* ) Return the solution Key 1: Efficient checking Key 2: Smart guess 10 10
Key 1: Efficient Checking Key 1: Efficient Checking Benefit of guess Benefit of guess • Only maintain the Only maintain the • solutions with cost solutions with cost no greater than the no greater than the guessed cost guessed cost • Accelerate DP Accelerate DP • 11
The Oracle The Oracle � Oracle (x): the checker, able to decide whether x Oracle (x): the checker, able to decide whether x> > W* or not W* or not � Setup upper and lower bounds of cost W* – Without knowing W* Without knowing W* – – Answer efficiently Answer efficiently – Guess x within the bounds Update the bounds Oracle (x) 12 12
Construction of Oracle(x) Construction of Oracle(x) Scale and round Scale and round Dynamic Dynamic each wire cost each wire cost Programming Programming ⎢ ⎥ w = w ⎢ ⎥ ε ⎣ ⎦ x / n Perform DP to Perform DP to Only interested in Only interested in scaled problem whether there is a scaled problem whether there is a with cost bound solution with cost solution with cost with cost bound n/ ɛ ɛ . Time up to x satisfying . Time up to x satisfying n/ polynomial in n/ ɛ ɛ timing constraint timing constraint polynomial in n/ 13 13
Scaling and Rounding Scaling and Rounding Rounding error at each wire Rounding error at each wire Wire cost is integer after ɛ /n, total rounding error ɛ . ≤ x ɛ , total rounding error ≤ x ɛ . scaling and rounding with • Larger x: larger error, fewer Larger x: larger error, fewer • upper bound n/ ɛ . Total # distinct costs and faster distinct costs and faster • Smaller x: smaller error, more Smaller x: smaller error, more solutions is bounded in DP • distinct costs and slower distinct costs and slower Wire cost • Rounding is the reason of Rounding is the reason of • ɛ /n ɛ /n ɛ /n ɛ /n x ɛ 2x ɛ 3x ɛ 4x ɛ acceleration acceleration 0 14
Dynamic Programming Results Dynamic Programming Results DP result w/ all w are integers ≤ n/ ɛ Yes, there is a solution No, no such solution satisfying timing constraint With cost rounding With cost rounding back, the solution has back, the solution has cost at most n/ ɛ • x ɛ /n cost at least n/ ɛ • x ɛ /n = x ≤ W* + x ɛ = (1+ ɛ )x > W* 15
Solution Characterization Solution Characterization To model effect to To model effect to � � upstream, a upstream, a candidate solution candidate solution is associated with is associated with v: a node v: a node • • Q: required arrival Q: required arrival • • time time W: cumulative W: cumulative • • wire cost wire cost 16
Cost (W)-Bounded Dynamic Cost (W)-Bounded Dynamic Programming (DP) Programming (DP) Start from sinks � Candidate solutions � are generated Two operations � – Subtree processing – Solution update at buffer Candidate solutions are Solution Pruning � propagated toward the source 17
Subtree Processing Subtree Processing � Three paths Three paths � (Q ( Q u u ,W ,W u u ) ) – p p a : a - -> u > u – a : a ( (Q Q c c , ,W W c c ) ) – P P b : b - -> u > u – b : b – P P c : c - -> u > u – c : c � Q Q u (l)= min{ Q Q a -d(p d(p a ,l),Q Q b - u (l)= min{ a - a ,l), b - � (Q ( Q b b , ,W W b b ) ) d(p p b ,l),Q c -d(p d(p c ,l)} d( b ,l),Q c - c ,l)} (Q ( Q a a , ,W W a a ) ) � W W u (l)= W W a + W W b + W W c + w(T,l) u (l)= a + b + c + w(T,l) � � Wires are in the same Wires are in the same � layer l layer l 18
Exponential # of Solutions Exponential # of Solutions � For two solutions at a node with the same For two solutions at a node with the same W (= n/ ɛ ɛ ) solutions � � W (= n/ ) solutions � W, the one with smaller Q is dominated W, the one with smaller Q is dominated at each downstream at each downstream (Q ( Q u u , ,W W a a ) ) buffer buffer (Q ( Q c,1 c,1 , ,W W c ,1 ) ) c,1 � Try to only generate non Try to only generate non- -dominated dominated � k k (Q c,2 (Q c,2 , ,W W c ,2 ) ) � Na Naï ïve ve merging takes merging takes c,2 � k ) solutions solutions since most of O(W k ) solutions solutions since most of O(W (Q c,3 (Q c,3 , ,W W c ,3 ) ) O(W k k ) time with k ) time with k O(W c,3 are dominated solutions are dominated solutions (Q c,4 (Q c,4 , ,W W c ,4 ) ) branches branches c,4 (Q ( Q a ,1 , ,W W a ,1 ) ) (Q ( Q b ,1 , ,W W b ,1 ) ) a,1 a,1 b,1 b,1 ( (Q Q a ,2 , ,W W a ,2 ) ) (Q ( Q b ,2 , ,W W b ,2 ) ) a,2 a,2 b,2 b,2 (Q ( Q a ,3 , ,W W a ,3 ) ) (Q ( Q b ,3 , ,W W b ,3 ) ) a,3 a,3 b,3 b,3 (Q ( Q a ,4 , ,W W a ,4 ) ) (Q ( Q b ,4 , ,W W b ,4 ) ) a,4 a,4 b,4 b,4 19
Recommend
More recommend