Transcript ppt

ESE370:
Circuit-Level
Modeling, Design, and Optimization
for Digital Systems
Day 28: November 15, 2010
Repeaters in Wiring
1
Penn ESE370 Fall2010 -- DeHon
Last Time
• Unbuffered wire delay scales as L2
– 0.5 Rwire Cwire
– 0.5 L2 Ru Cu
2
Penn ESE370 Fall2010 -- DeHon
Today
• What happens when we buffer
interconnect?
• Optimal buffering
– …and buffer sizing
• Implications
– Scaling
– When becomes first-order issue
3
Penn ESE370 Fall2010 -- DeHon
Delay of Wire
•
•
•
•
Long Wire: 1mm
Rwire = 60K W (for the 1mm)
Cwire = 0.16 pF (for the 1mm)
Driven by inverter
– R0 = 25K W
– C0 = 0.01 fF
– Assume mn=2mp, sized Wp=2, Wn=1
• Loaded by identical inverter
Penn ESE370 Fall2010 -- DeHon
4
Formulate Delay
(

Rbuf  Cself  Cwire  Cload  0.5Rwire  Cwire  Rwire  Cload
5
Penn ESE370 Fall2010 -- DeHon
Calculate Delay
• Cload = 3 C0
• Rbuf = R0
• Cself = g 3 C0 = 3 C0
(

Rbuf  Cself  Cwire  Cload  0.5Rwire  Cwire  Rwire  Cload
6
Penn ESE370 Fall2010 -- DeHon
Buffer Middle
• Delay if add buffer to middle of wire?
7
Penn ESE370 Fall2010 -- DeHon
Formulate and Calculate
Delay




 Rwire Cwire  Rwire
Cwire
2 Rbuf  Cself 
 Cload   0.5

 Cload 



 2
2
2 
2


8
Penn ESE370 Fall2010 -- DeHon
N Buffers
• Delay for N buffers?




 Rwire Cwire  Rwire
Cwire
N Rbuf  Cself 
 Cload   0.5

 Cload 



 N
N
N  N


(

N  Rbuf  Cself  Cload  Rbuf
 Rwire  Cwire 
 Cwire  0.5
  Rwire  Cload


N
9
Penn ESE370 Fall2010 -- DeHon
Minimize Delay
(

N  Rbuf  Cself  Cload  Rbuf
 Rwire  Cwire 
 Cwire  0.5
  Rwire  Cloa


N
• Derivative with respect to N
(
Rbuf  Cself  Cload
 Rwire  Cwire 
 0.5
0
2


N

10
Penn ESE370 Fall2010 -- DeHon
Solve for N
(
Rbuf  Cself  Cload
 Rwire  Cwire 
 0.5
0
2


N


Rwire  Cwire

N  0.5
R  C C
self
load
 buf
(





11
Penn ESE370 Fall2010 -- DeHon
Substitute Back into Delay
(
 Rwire  Cwire 
 Cwire  0.5
  Rwire  Cload


N

N  Rbuf  Cself  Cload  Rbuf

Rwire  Cwire
0.5
R  C C
self
load
 buf
(

  R  C C
buf
self
load



(



Rwire  Cwire

 0.5

Rwire  Cwire


0.5

R  C C
self
load
 buf


(




 Rbuf  Cwire  Rwire  Cload


 



Rwire  Cwire

N  0.5
R  C C
self
load
 buf
(
Penn ESE370 Fall2010 -- DeHon





12
Substitution

Rwire  Cwire
0.5
R  C C
self
load
 buf
(

  R  C C
buf
self
load



(

Rwire  Cwire
0.5
R  C C
self
load
 buf
(



Rwire  Cwire

 0.5

Rwire  Cwire


0.5

R  C C
self
load
 buf


(

  R  C C
buf
self
load



(




 Rbuf  Cwire  Rwire  Cload


 





Rwire  Cwire

 0.5

Rwire  Cwire


 0.5 R  C  C
self
load
 buf


(
13
Penn ESE370 Fall2010 -- DeHon






 


Simplified Delay
(

(

0.5Rwire  Cwire  Rbuf  Cself  Cload  0.5Rwire  Cwire  Rbuf  Cself  Cload 

Rwire  Cwire
0.5
R  C C
self
load
 buf
(

  R  C C
buf
self
load



(



Rwire  Cwire

 0.5

Rwire  Cwire


 0.5 R  C  C
self
load
 buf


(
14
Penn ESE370 Fall2010 -- DeHon






 


Equalized Delay
(

(

0.5Rwire  Cwire  Rbuf  Cself  Cload  0.5Rwire  Cwire  Rbuf  Cself  Cload 
• Equalize delay in buffer
and delay in wire segment
(

2 0.5Rwire  Cwire  Rbuf  Cself  Cload  Rbuf  Cwire  Rwire  Cload
15
Penn ESE370 Fall2010 -- DeHon
Calculate: Optimum Stages
for Example
•
•
•
•
Rwire = 60K W (for the 1mm)
Cwire = 0.16 pF (for the 1mm)
Rbuf=R0 = 25K W
Cself=Cload=3(C0 = 0.01 fF)=0.03fF

Rwire  Cwire

N  0.5
R  C C
self
load
 buf
(
Penn ESE370 Fall2010 -- DeHon





16
Calculate Delay of Buffered
(

2 0.5Rwire  Cwire  Rbuf  Cself  Cload  Rbuf  Cwire  Rwire  Cload
17
Penn ESE370 Fall2010 -- DeHon
Segment Length
• Rwire = L×Runit
• Cwire = L×Cunit

Rwire  Cwire

N  0.5
R  C C
self
load
 buf
(


Ru  Cu

N  L 0.5
R  C C
self
load
 buf
(





18
Penn ESE370 Fall2010 -- DeHon





Optimal Segment Length
• Once we’ve equalized the wire delay
with the buffer delay
– Means wire delay between buffers should
be equal to buffer delay
(

(

0.5Rwire  Cwire  Rbuf  Cself  Cload  0.5Rwire  Cwire  Rbuf  Cself  Cload  Rbuf 

Ru  Cu

N  L 0.5
R  C C
self
load
 buf
(
Penn ESE370 Fall2010 -- DeHon





19
Optimal Segment Length
• Delay scales linearly with distance once
optimally buffered
*
seg
L

(
R  C C
L
buf
self
load

  2

N
Ru  Cu


Ru  Cu

N  L 0.5
R  C C
self
load
 buf
Penn ESE370 Fall2010 -- DeHon
(










20
Calculate Segment Length
• What is the segment length here?
*
seg
L

(
R  C C
L
buf
self
load

  2

N
Ru  Cu

Penn ESE370 Fall2010 -- DeHon





21
Buffer Size?
• How big should buffer be?
– Rbuf = R0/W
– Cload = 3 W C0 (assuming mn=2mp)
– Cself = g 3 W C0
(

2 0.5Rwire  Cwire  Rbuf  Cself  Cload  Rbuf  Cwire  Rwire  Cload
R0
R0
2 0.5Rwire  Cwire 
 (1 g 3WC0 
 Cwire  Rwire  3WC0
W
W
22
Penn ESE370 Fall2010 -- DeHon
Buffer Size
R0
R0
2 0.5Rwire  Cwire 
 (1 g 3WC0 
 Cwire  Rwire  3WC0
W
W
R0
2 0.5Rwire  Cwire  R0  (1 g 3C0 
 Cwire  Rwire  3WC 0
W
23
Penn ESE370 Fall2010 -- DeHon
W to Minimize Delay
R0
2 0.5Rwire  Cwire  R0  (1 g 3C0 
 Cwire  Rwire  3WC 0
W
• Derivative with respect to W
R0
 2  Cwire  Rwire  3C0
W
24
Penn ESE370 Fall2010 -- DeHon
Solve W
R0
2  Cwire  Rwire  3C 0
W

R0  Cwire
W 
Rwire  3C0
25
Penn ESE370 Fall2010 -- DeHon
Implication W
• Rwire = L×Runit
• Cwire = L×Cunit
•  W independent of Length
– Depends on technology
R0  Cwire
W 
Rwire  3C0
26
Penn ESE370 Fall2010 -- DeHon
Substituting back into delay
R0
2 0.5Rwire  Cwire  R0  (1 g 3C0 
 Cwire  Rwire  3WC 0
W
2 0.5Rwire  Cwire  R0  (1 g 3C0  2 R0  Cwire  Rwire  3C0
R0  Cwire
W 
Rwire  3C0
27
Penn ESE370 Fall2010 -- DeHon
Delay at Optimum W
2 0.5Rwire  Cwire  R0  (1 g 3C0  2 R0  Cwire  Rwire  3C0
• With g=1, 1+g=2
• Same size as first term
• So total delay twice what calculated
before
28
Penn ESE370 Fall2010 -- DeHon
Implications
29
Penn ESE370 Fall2010 -- DeHon
Scaling
• As scale feature size, what happens to
– Ru
– Cu
– Ru×Cu
– R0
– C0
 tgd
30
Penn ESE370 Fall2010 -- DeHon
Scaling
• As scale feature size, what happens to
– Ru  (r/(H*W))*L
– Cu  (e W/Tox)*L …but not at this rate
– Ru×Cu not scaling down (maybe up)
– R0  scales up
– C0  scales down
 tgd  scales down
31
Penn ESE370 Fall2010 -- DeHon
Scaling: Segment Length
• As scale feature size, what happens to
– Ru  (r/(H*W))*L
– Cu  (e W/Tox)*L …but not at this rate
– Ru×Cu not scaling down (maybe up)
– R0  scales up
R  C C
self
load
– C0  scales down L*  2 buf
seg

Ru  Cu
 tgd  scales down

(
• Optimal segment length shrinks
– We buffer more often
Penn ESE370 Fall2010 -- DeHon

32





Segment Length Grounding
• How many l is the L*seg we calculated?
– Assume l=11nm
• How many l wide is a gate? (ballpark)
33
Penn ESE370 Fall2010 -- DeHon
Segment Length Implications
• If route wire L*seg between gates, has
comparable delay to gate
– Half of delay in wiring
• Somewhere before then
– Assuming wire delay negligible
adds non-trivial error to delay estimates
• …and L*seg shrinking with technology
34
Penn ESE370 Fall2010 -- DeHon
Scaling: Buffer Size
• As scale feature size, what happens to
– Ru  (r/(H*W))*L …scaling up
– Cu  (e W/Tox)*L ….scaling down
• (not so much)
– Ru×Cu not scaling down
– R0  scales up
– C0  scales down
W
 tgd  scales down
• Buffer size not change?
– Maybe get larger
Penn ESE370 Fall2010 -- DeHon
R0  Cwire

Rwire  3C0
35
Admin
• Wednesday
– Project 2 due
– Go to Detkin (RCA) Lab
• HW6 out now (with sketch of lab details)
• Office Hours
– Andre T4:30pm
– Andrew: today and tomorrow (mail?)
• Friday: back here for lecture
36
Penn ESE370 Fall2010 -- DeHon
Ideas
• Wire delay linear once buffered
• Optimal buffering matches
– Buffer delay
– Delay on wire between buffers
• Scaling shifts more delay into wiring
– Buffer more often
– Radius can wire signal without significant
wire delay shrinks
37
Penn ESE370 Fall2010 -- DeHon