advanced interconnect optimizations

27
Advanced Interconnect Optimizations

Upload: bryar-berger

Post on 31-Dec-2015

60 views

Category:

Documents


0 download

DESCRIPTION

Advanced Interconnect Optimizations. Buffers Improve Slack. RAT = 300 Delay = 350 Slack = -50. slack min = -50. RAT = 700 Delay = 600 Slack = 100. RAT = Required Arrival Time Slack = RAT - Delay. RAT = 300 Delay = 250 Slack = 50. Decouple capacitive load from critical path. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Advanced Interconnect Optimizations

Advanced Interconnect Optimizations

Page 2: Advanced Interconnect Optimizations

Buffers Improve Slack

RAT = 300Delay = 350Slack = -50

RAT = 700Delay = 600Slack = 100

RAT = 300Delay = 250Slack = 50

RAT = 700Delay = 400Slack = 300

slackmin = -50

slackmin = 50Decouple capacitive load from critical path

RAT = Required Arrival Time

Slack = RAT - Delay

Page 3: Advanced Interconnect Optimizations

Timing Driven Buffering Problem Formulation

• Given– A Steiner tree– RAT at each sink– A buffer type– RC parameters– Candidate buffer locations

• Find buffer insertion solution such that the slack at the driver is maximized

Page 4: Advanced Interconnect Optimizations

Candidate Buffering Solutions

Page 5: Advanced Interconnect Optimizations

Candidate Solution Characteristics

• Each candidate solution is associated with– vi: a node

– ci: downstream capacitance

– qi: RAT

vi is a sinkci is sink capacitance

v is an internal node

Page 6: Advanced Interconnect Optimizations

Van Ginneken’s Algorithm

Candidate solutions are propagated toward the source

Dynamic Programming

Page 7: Advanced Interconnect Optimizations

Solution Propagation: Add Wire

• c2 = c1 + cx

• q2 = q1 – rcx2/2 – rxc1

• r: wire resistance per unit length

• c: wire capacitance per unit length

(v1, c1, q1)(v2, c2, q2)x

Page 8: Advanced Interconnect Optimizations

8

Solution Propagation: Insert Buffer

• c1b = Cb

• q1b = q1 – Rbc1 – tb

• Cb: buffer input capacitance

• Rb: buffer output resistance

• tb: buffer intrinsic delay

(v1, c1, q1)(v1, c1b, q1b)

Page 9: Advanced Interconnect Optimizations

Solution Propagation: Merge

• cmerge = cl + cr

• qmerge = min(ql , qr)

(v, cl , ql) (v, cr , qr)

Page 10: Advanced Interconnect Optimizations

Solution Propagation: Add Driver

• q0d = q0 – Rdc0 = slackmin

• Rd: driver resistance

• Pick solution with max slackmin

(v0, c0, q0)(v0, c0d, q0d)

Page 11: Advanced Interconnect Optimizations

Example of Solution Propagation

(v1, 1, 20)22

v1 v1

(v2, 3, 16)

• r = 1, c = 1• Rb = 1, Cb = 1, tb = 1• Rd = 1

(v2, 1, 12)

v1

(v3, 5, 8)

v1

(v3, 3, 8)

slack = 5

slack = 3

Add wire

Add wire

Insert buffer Add wire

Add driver

Add driver

Page 12: Advanced Interconnect Optimizations

12

Example of Merging

Left candidates

Right candidates

Merged candidates

Page 13: Advanced Interconnect Optimizations

Solution Pruning

• Two candidate solutions– (v, c1, q1)

– (v, c2, q2)

• Solution 1 is inferior if – c1 > c2 : larger load

– and q1 < q2 : tighter timing

Page 14: Advanced Interconnect Optimizations

Pruning When Insert Buffer

They have the same load cap Cb, only the one with max q is kept

Page 15: Advanced Interconnect Optimizations

15

Generating Candidates

(1)

(2)

(3)

From Dr. Charles Alpert

Page 16: Advanced Interconnect Optimizations

16

Pruning Candidates

(3)

(a) (b)

Both (a) and (b) “look” the same to the source.Throw out the one with the worst slack

(4)

Page 17: Advanced Interconnect Optimizations

17

Candidate Example Continued

(4)

(5)

Page 18: Advanced Interconnect Optimizations

18

Candidate Example ContinuedAfter pruning

(5)

At driver, compute which candidate maximizesslack. Result is optimal.

Page 19: Advanced Interconnect Optimizations

19

Merging Branches

Right Candidates

Left Candidates

Page 20: Advanced Interconnect Optimizations

20

Pruning Merged Branches

Critical

With pruning

Page 21: Advanced Interconnect Optimizations

21

Van Ginneken Example

(20,400)

(20,400)(30,250)(5, 220)

WireC=10,d=150

BufferC=5, d=30

(20,400)

BufferC=5, d=50C=5, d=30

WireC=15,d=200C=15,d=120

(30,250)(5, 220)

(45, 50)(5, 0)(20,100)(5, 70)

Page 22: Advanced Interconnect Optimizations

22

Van Ginneken Example Cont’d

(20,400)(30,250)(5, 220)

(45, 50)(5, 0)(20,100)(5, 70)

(5,0) is inferior to (5,70). (45,50) is inferior to (20,100)

(20,400)(30,250)(5, 220)

(20,100)(5, 70)(30,10)

(15, -10)

Pick solution with largest slack, follow arrows to get solution

Wire C=10

Page 23: Advanced Interconnect Optimizations

Basic Data Structure

(c1, q1) (c2, q2) (c3, q3)

Sorted list such that

• c1 < c2 < c3

• If there is no inferior candidates q1 < q2 < q3

Worse load cap

Better timing

Page 24: Advanced Interconnect Optimizations

24

Prune Solution List

(c1, q1) (c2, q2) (c3, q3)

Increasing c

q1 < q2 ?

(c4, q4)

q3 < q4 ?

Y

NPrune 2 q1 < q3 ?

q2 < q3 ?

Y

q3 < q4 ?

Y

Prune 3 q1 < q4 ?

N Prune 3

N

N Prune 4N Prune 4

q2 < q4 ?

Page 25: Advanced Interconnect Optimizations

25

Pruning In Merging

(cl1, ql1)

(cl2, ql2)

(cl3, ql3)

(cr1, qr1)

(cr2, qr2)

ql1 < ql2 < qr1 < ql3 < qr2

Merged candidate

s

(cl1+cr1, ql1)

(cl2+cr1, ql2)

(cl3+cr1, qr1)

(cl3+cr2, ql3)

(cl1, ql1)

(cl2, ql2)

(cl3, ql3)

(cr1, qr1)

(cr2, qr2)

(cl1, ql1)

(cl2, ql2)

(cl3, ql3)

(cr1, qr1)

(cr2, qr2)

(cl1, ql1)

(cl2, ql2)

(cl3, ql3)

(cr1, qr1)

(cr2, qr2)

Left candidate

s

Right candidate

s

Page 26: Advanced Interconnect Optimizations

Van Ginneken Complexity

• Generate candidates from sinks to source

• Quadratic runtime

– Adding a wire does not change #candidates

– Adding a buffer adds only one new candidate

– Merging branches additive, not multiplicative

– Linear time solution list pruning

• Optimal for Elmore delay model

Page 27: Advanced Interconnect Optimizations

Multiple Buffer Types

(v1, 1, 20)22

v1

v1

(v2, 3, 16)

• r = 1, c = 1

• Rb1 = 1, Cb1 = 1, tb1 = 1

• Rb2 = 0.5, Cb2 = 2, tb2 = 0.5

• Rd = 1

(v2, 1, 12)

v1

(v2, 2, 14)