220 likes | 342 Views
A Polynomial Time Approximation Scheme For Timing Constrained Minimum Cost Layer Assignment. Shiyan Hu *, Zhuo Li**, Charles J. Alpert** *Dept of Electrical and Computer Engineering, Michigan Technological University **IBM Austin Research Lab. Outline. Motivation Problem Formulation
E N D
A Polynomial Time Approximation Scheme For Timing Constrained Minimum Cost Layer Assignment Shiyan Hu*, Zhuo Li**, Charles J. Alpert** *Dept of Electrical and Computer Engineering, Michigan Technological University **IBM Austin Research Lab
Outline • Motivation • Problem Formulation • Algorithm • Experimental Results • Conclusion
4X 2X 1X Layer Assignment • In 65nm/45nm technology, layer assignment is critical for timing and buffer area optimization.
Wire RC and Delay Wire in higher layer has much smaller delay
Impact to Buffering • A buffer can drive longer distance in higher layer • Timing is improved • Fewer buffers are needed
IP IP Impact to Routing/Buffering
Can be different layers Same Layer Problem Formulation • Given • A Buffered Steiner tree • Timing constraint • Wire layers with RC parameters and cost • Find a minimal cost layer assignment such that the timing constraint is satisfied. • Between any buffers, one wire layer is used. Wire tapering is not desired in practice.
Polynomial Time Approximation Scheme • The problem is NP-hard • A Polynomial Time Approximation Scheme (PTAS) • Provably Good • Within (1+ɛ) the optimal cost for any ɛ>0 • Runs in time polynomial in n (nodes), m (layers), and 1/ɛ • Ultimate solution for an NP-hard problem in theory • Works well in practice for layer assignment problem
Algorithmic Flow • Denote by W* the cost of the optimal layer assignment • Oracle (x): able to decide whether x>W* or not • Without knowing W* • Answer efficiently Setup upper and lower bounds of cost W* Run a binary search on the bounds Oracle (x)
Oracle Construction by Dynamic Programming • Oracle (x) • Constructed by dynamic programming (DP) • Only interested in whether there is a solution with cost up to x satisfying timing constraint • Denote by W the maximum cost • W=x • Runs in polynomial time in terms of W
q(v,w) is propagated toward the source Dynamic Programming • A loop starts with w=1 • Propagate q(v,w) from sinks to driver • q(v,w): largest RAT at node v with total cost w • Two operations • Add Wire • Branch Merge • Increment w. Repeat the above process until w reaches W
Propagating q(v,w): Add Wire • q(v2,w) is max of • q(v2,w-1) • updating q(v1,w) by wire delay and wire cost in the same layer x q(v1, w1) q(v2, w2)
Propagating q(v,w): Branch Merge • Merge q(vl,w) and q(vr,w) to get q(v,w) • q(v,w) is max of • q(v,w-1) • min of q(vl,w) and q(vr,w) in the same layer • DP: After q is propagated to driver, • w is incremented, repeat the process • until w reaches W. • Runs in O(mnW2) time. q(vl,w) q(vr,w)
Oracle Construction • Given any input x in Oracle(x) • Scale and round each wire cost • DP is performed to the scaled problem with W=n/ɛ • Yes, there is a solution satisfying the timing constraint. The optimal cost of the unscaled problem W*<(1+ɛ)x • No, W*>x
Fast Logarithmic Scale Binary Search • U (L): set all wires to the max (min) cost layers • Loop • Set • Query Oracle(x) • Update U or L accordingly and repeat the process • Runs in loglogM time where M=U/L • The (1+ɛ) approximation runs in time Set upper bound U and lower bound L of W* Run a logarithmic scale binary search Oracle (x)
Experiments • Experiment Setup • 500 buffered netlists • Compare between PTAS and dynamic programming (DP)
Cost Ratio Compared to DP Cost Ratio Approximation Ratio ɛ
Speedup Compared to DP Speedup Approximation Ratio ɛ
Observations • Compare PTAS with DP • Larger approximation ratio larger speedup and worse solution quality (i.e., worse actual approximation ratio) • As expected from theory
Conclusion • Propose a provably good (1+ɛ) approximation for timing constrained minimum cost layer assignment running in time • 2x speedup in experiments • Few percent additional wire as guaranteed theoretically • Future work • Make oracle run faster, i.e., faster DP • Reduce time for performing binary search style oracle queries since current PTAS depends on the ratio between upper and lower bounds of cost