Interconnect Optimizations. A scaling primer Ideal process scaling: –Device geometries shrink by  = 0.7x) Device delay shrinks by  –Wire geometries.

Slides:



Advertisements
Similar presentations
Porosity Aware Buffered Steiner Tree Construction C. Alpert G. Gandham S. Quay IBM Corp M. Hrkic Univ Illinois Chicago J. Hu Texas A&M Univ.
Advertisements

Topics Electrical properties of static combinational gates:
Gregory Shklover, Ben Emanuel Intel Corporation MATAM, Haifa 31015, Israel Simultaneous Clock and Data Gate Sizing Algorithm with Common Global Objective.
Advanced Interconnect Optimizations. Buffers Improve Slack RAT = 300 Delay = 350 Slack = -50 RAT = 700 Delay = 600 Slack = 100 RAT = 300 Delay = 250 Slack.
Buffer and FF Insertion Slides from Charles J. Alpert IBM Corp.
ELEN 468 Lecture 261 ELEN 468 Advanced Logic Design Lecture 26 Interconnect Timing Optimization.
Confidentiality/date line: 13pt Arial Regular, white Maximum length: 1 line Information separated by vertical strokes, with two spaces on either side Disclaimer.
1 Arkadiy Morgenshtein, Eby G. Friedman, Ran Ginosar, Avinoam Kolodny Technion – Israel Institute of Technology Timing Optimization in Logic with Interconnect.
1 Interconnect Layout Optimization by Simultaneous Steiner Tree Construction and Buffer Insertion Presented By Cesare Ferri Takumi Okamoto, Jason Kong.
EE 587 SoC Design & Test Partha Pande School of EECS Washington State University
Noise Model for Multiple Segmented Coupled RC Interconnects Andrew B. Kahng, Sudhakar Muddu †, Niranjan A. Pol ‡ and Devendra Vidhani* UCSD CSE and ECE.
A Look at Chapter 4: Circuit Characterization and Performance Estimation Knowing the source of delays in CMOS gates and being able to estimate them efficiently.
Modern VLSI Design 2e: Chapter4 Copyright  1998 Prentice Hall PTR.
EE4271 VLSI Design Interconnect Optimizations Buffer Insertion.
Interconnect Optimizations. A scaling primer Ideal process scaling: –Device geometries shrink by S  = 0.7x) Device delay shrinks by s –Wire geometries.
04/11/02EECS 3121 Lecture 26: Interconnect Modeling, continued EECS 312 Reading: 8.2.2, (text) HW 8 is due now!
Power Optimal Dual-V dd Buffered Tree Considering Buffer Stations and Blockages King Ho Tam and Lei He Electrical Engineering Department University of.
04/09/02EECS 3121 Lecture 25: Interconnect Modeling EECS 312 Reading: 8.3 (text), 4.3.2, (2 nd edition)
Interconnect Optimizations
Fast Buffer Insertion Considering Process Variation Jinjun Xiong, Lei He EE Department University of California, Los Angeles Sponsors: NSF, UC MICRO, Actel,
EE 201A (Starting 2005, called EE 201B) Modeling and Optimization for VLSI Layout Instructor: Lei He
EE4271 VLSI Design Advanced Interconnect Optimizations Buffer Insertion.
ELEN 468 Lecture 271 ELEN 468 Advanced Logic Design Lecture 27 Interconnect Timing Optimization II.
Interconnect Synthesis. Buffering Related Interconnect Synthesis Consider –Layer assignment –Wire sizing –Buffer polarity –Driver sizing –Generalized.
Advanced Interconnect Optimizations. Timing Driven Buffering Problem Formulation Given –A Steiner tree –RAT at each sink –A buffer type –RC parameters.
MOS Inverter: Static Characteristics
CSET 4650 Field Programmable Logic Devices
1 Delay Estimation Most digital designs have multiple data paths some of which are not critical. The critical path is defined as the path the offers the.
Modern VLSI Design 4e: Chapter 4 Copyright  2008 Wayne Wolf Topics n Interconnect design. n Crosstalk. n Power optimization.
Review: CMOS Inverter: Dynamic
Power Reduction for FPGA using Multiple Vdd/Vth
1 Coupling Aware Timing Optimization and Antenna Avoidance in Layer Assignment Di Wu, Jiang Hu and Rabi Mahapatra Texas A&M University.
EE 5900 Advanced Algorithms for Robust VLSI CAD, Spring 2009 Static Timing Analysis and Gate Sizing.
Elmore Delay, Logical Effort
A Polynomial Time Approximation Scheme For Timing Constrained Minimum Cost Layer Assignment Shiyan Hu*, Zhuo Li**, Charles J. Alpert** *Dept of Electrical.
1 Design Space Exploration for Power-Efficient Mixed-Radix Ling Adders Chung-Kuan Cheng Computer Science and Engineering Depart. University of California,
Physical Synthesis Ing. Pullini Antonio
Modern VLSI Design 3e: Chapter 4 Copyright  1998, 2002 Prentice Hall PTR Topics n Interconnect design. n Crosstalk. n Power optimization.
A Faster Approximation Scheme for Timing Driven Minimum Cost Layer Assignment Shiyan Hu*, Zhuo Li**, and Charles J. Alpert** *Dept of ECE, Michigan Technological.
ELEN 468 Lecture 271 ELEN 468 Advanced Logic Design Lecture 27 Gate and Interconnect Optimization.
Linear Delay Model In general the propagation delay of a gate can be written as: d = f + p –p is the delay due to intrinsic capacitance. –f is the effort.
Fast Algorithms for Slew Constrained Minimum Cost Buffering S. Hu*, C. Alpert**, J. Hu*, S. Karandikar**, Z. Li*, W. Shi* and C. Sze** *Dept of ECE, Texas.
Topics Combinational network delay.
1 Interconnect/Via. 2 Delay of Devices and Interconnect.
Physical Synthesis Buffer Insertion, Gate Sizing, Wire Sizing,
Modern VLSI Design 4e: Chapter 3 Copyright  2008 Wayne Wolf Topics n Wire delay. n Buffer insertion. n Crosstalk. n Inductive interconnect. n Switch logic.
Routing Tree Construction with Buffer Insertion under Obstacle Constraints Ying Rao, Tianxiang Yang Fall 2002.
EE 4271 VLSI Design, Fall 2013 Static Timing Analysis and Gate Sizing Optimization.
Introduction to Clock Tree Synthesis
Interconnect/Via.
An Efficient Surface-Based Low-Power Buffer Insertion Algorithm
Modern VLSI Design 3e: Chapter 3 Copyright  1998, 2002 Prentice Hall PTR Topics n Wire delay. n Buffer insertion. n Crosstalk. n Inductive interconnect.
Modern VLSI Design 3e: Chapter 3 Copyright  1998, 2002 Prentice Hall PTR Topics n Electrical properties of static combinational gates: –transfer characteristics;
A Fully Polynomial Time Approximation Scheme for Timing Driven Minimum Cost Buffer Insertion Shiyan Hu*, Zhuo Li**, Charles Alpert** *Dept of Electrical.
A Fully Polynomial Time Approximation Scheme for Timing Driven Minimum Cost Buffer Insertion Shiyan Hu*, Zhuo Li**, Charles Alpert** *Dept of Electrical.
1 Modeling and Optimization of VLSI Interconnect Lecture 2: Interconnect Delay Modeling Avinoam Kolodny Konstantin Moiseev.
An O(bn 2 ) Time Algorithm for Optimal Buffer Insertion with b Buffer Types Authors: Zhuo Li and Weiping Shi Presenter: Sunil Khatri Department of Electrical.
Circuit Delay Performance Estimation Most digital designs have multiple signal paths and the slowest one of these paths is called the critical path Timing.
An O(nm) Time Algorithm for Optimal Buffer Insertion of m Sink Nets Zhuo Li and Weiping Shi {zhuoli, Texas A&M University College Station,
COE 360 Principles of VLSI Design Delay. 2 Definitions.
Wires & wire delay Lecture 9 Tuesday September 27, 2016.
Static Timing Analysis and Gate Sizing Optimization
Topics Driving long wires..
Jason Cong, David Zhigang Pan & Prasanna V. Srinivas
Buffer Insertion with Adaptive Blockage Avoidance
Static Timing Analysis and Gate Sizing Optimization
Wire Indctance Consequences of on-chip inductance include:
Objectives What have we learned? What are we going to learn?
Performance-Driven Interconnect Optimization Charlie Chung-Ping Chen
Jason Cong, David Zhigang Pan & Prasanna V. Srinivas
Presentation transcript:

Interconnect Optimizations

A scaling primer Ideal process scaling: –Device geometries shrink by  = 0.7x) Device delay shrinks by  –Wire geometries shrink by  R/  :  /(w .h  ) = r/  2 Cc/  : (h  ).  /(S  ) = Cc C/  : similar R/  doubles, C/  and Cc/  unchanged SGD h w l S ll hh SS ww

Interconnect role Short interconnect –Used to connect nearby cells –Minimize wire C, i.e., use short minwidth wires Medium to long-distance (“global”) interconnect –Size wires to tradeoff area vs. delay –Increasing width  Capacitance increases, Resistance decreases Need to find acceptable tradeoff - wire sizing problem “Fat” wires –Thicker cross-sections in higher metal layers –Useful for reducing delays for global wires –Inductance issues, sharing of limited resource

Cross-Section of A Chip

Block scaling Block area often stays same –# cells, # nets doubles –Wiring histogram shape invariant Global interconnect lengths don’t shrink Local interconnect lengths shrink by 

Interconnect delay scaling Delay of a wire of length l :  int = (rl)(cl) = rcl 2 (first order) Local interconnects :  int : (r/  2 )(c)(l  ) 2 = rcl 2 –Local interconnect delay unchanged (compare to faster devices) Global interconnects :  int : (r/  2 )(c)(l) 2 = (rcl 2 )/  2 –Global interconnect delay doubles – unsustainable! Interconnect delay increasingly more dominant

Buffer Insertion For Delay Reduction

Analysis of Simple RC Circuit state variable Input waveform ± v(t) C R v T (t) i(t)

Analysis of Simple RC Circuit Step-input response: match initial state: output response for step-input: v0v0 v 0 u(t) v 0 (1-e -t/RC )u(t)

Delays of Simple RC Circuit v(t) = v 0 (1 - e -t/RC ) -- waveform under step input v 0 u(t) v(t)=0.5v 0  t = 0.7RC –i.e., delay = 0.7RC (50% delay) v(t)=0.1v 0  t = 0.1RC v(t)=0.9v 0  t = 2.3RC –i.e., rise time = 2.2RC (if defined as time from 10% to 90% of Vdd) Commonly used metric T D = RC (= Elmore delay)

Elmore Delay Delay

Elmore Delay Driver is modeled as R Driver intrinsic gate delay t(B) Delay =  all Ri  all Cj downstream from Ri Ri*Cj Elmore delay at n2 R(B)*(C1+C2)+R(w)*C2 Elmore delay at n1 R(B)*(C1+C2) R(B) C1 R(w) C2 n1 B n2

Elmore Delay For uniform wire No matter how to lump, the Elmore delay is the same x C unit wire capacitance c unit wire resistance r

Delay for Buffer v C u C(b) u Intrinsic buffer delay Driver resistance Input capacitance

R Buffers Reduce Wire Delay x/2 cx/4 rx/2 t_unbuf = R( cx + C ) + rx( cx/2 + C ) t_buf = 2R( cx/2 + C ) + rx( cx/4 + C ) + t b t_buf – t_unbuf = RC + t b – rcx 2 /4 x/2 cx/4 rx/2 C C R x ∆t

Combinational Logic Delay Combinational logic delay <= clock period Combinational Logic Register Primary Input Register Primary Output clock

Example of Static Timing Analysis Arrival time: input -> output, take max Required arrival time: output -> input, take min Slack = required arrival time – arrival time /4/-3 5/3/-2 4/7/34/7/3 8/8/08/8/0 9/6/-3 20/17/-3 11/11/0 18/18/0 23/20/-3

Buffers Improve Slack RAT = 300 Delay = 350 Slack = -50 RAT = 700 Delay = 600 Slack = 100 RAT = 300 Delay = 250 Slack = 50 RAT = 700 Delay = 400 Slack = 300 slack min = -50 slack min = 50 Decouple capacitive load from critical path RAT = Required Arrival Time Slack = RAT - Delay

ITRS projections

Buffered global interconnects: Intuition Interconnect delay = r.c.l 2 Now, interconnect delay =  r.c.l i 2 < r.c.l 2 (where l =  l j ) since  (l j 2 ) < (  l j ) 2 (Of course, account for buffer delay also) l1l1 lnln l3l3 l2l2 l

Optimal inter-buffer length First order (lumped parasitic, Elmore delay) analysis Assume N identical buffers with equal inter-buffer length l (L = Nl) For minimum delay, L R d – On resistance of inverter C g – Gate input capacitance r,c – Resistance, cap. per micron … … l

Optimal interconnect delay Substituting l opt back into the interconnect delay expression: Delay grows linearly with L (instead of quadratically)

Optimized interconnect delay scaling Rewriting the optimal interconnect delay expression, With optimally sized buffers (using dT/dh = 0),

Optimized interconnect delay scaling After scaling, (instead of ) Even with optimal (re-)buffering, interconnects scale worse than devices For global interconnects, L doesn’t shrink. So

Buffered nets nm65nm45nm32nm % buffered nets M3M6

Total buffer count Ever-increasing fractions of total cell count will be buffers –70% in 32nm nm65nm45nm32nm % cells used to buffer nets clk-buf buf tot-buf

Buffer Insertion Timing optimization Slew optimization

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

Candidate Buffering Solutions

Candidate Solution Characteristics Each candidate solution is associated with –v i : a node –c i : downstream capacitance –q i : RAT v i is a sink c i is sink capacitance v is an internal node

Van Ginneken’s Algorithm Candidate solutions are propagated toward the source Dynamic Programming

Solution Propagation: Add Wire c 2 = c 1 + cx q 2 = q 1 – rcx 2 /2 – rxc 1 r: wire resistance per unit length c: wire capacitance per unit length (v 1, c 1, q 1 ) (v 2, c 2, q 2 ) x

33 Solution Propagation: Insert Buffer c 1b = C b q 1b = q 1 – R b c 1 – t b C b : buffer input capacitance R b : buffer output resistance t b : buffer intrinsic delay (v 1, c 1, q 1 ) (v 1, c 1b, q 1b )

Solution Propagation: Merge c merge = c l + c r q merge = min(q l, q r ) (v, c l, q l )(v, c r, q r )

Solution Propagation: Add Driver q 0d = q 0 – R d c 0 = slack min R d : driver resistance Pick solution with max slack min (v 0, c 0, q 0 ) (v 0, c 0d, q 0d )

Example of Solution Propagation (v 1, 1, 20) 22 v1v1 v1v1 (v 2, 3, 16) r = 1, c = 1 R b = 1, C b = 1, t b = 1 R d = 1 (v 2, 1, 12) v1v1 (v 3, 5, 8) v1v1 (v 3, 3, 8) slack = 5slack = 3 Add wire Insert buffer Add wire Add driver

37 Example of Merging Left candidates Right candidates Merged candidates

Solution Pruning Two candidate solutions –(v, c 1, q 1 ) –(v, c 2, q 2 ) Solution 1 is inferior if –c 1 > c 2 : larger load –and q 1 < q 2 : tighter timing

Pruning When Insert Buffer They have the same load cap C b, only the one with max q is kept

40 Generating Candidates (1) (2) (3) From Dr. Charles Alpert

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

42 Candidate Example Continued (4) (5)

43 Candidate Example Continued After pruning (5) At driver, compute which candidate maximizes slack. Result is optimal.

44 Merging Branches Right Candidates Left Candidates

45 Pruning Merged Branches Critical With pruning

46 Van Ginneken Example (20,400) (30,250) (5, 220) Wire C=10,d=150 Buffer C=5, d=30 (20,400) Buffer C=5, d=50 C=5, d=30 Wire C=15,d=200 C=15,d=120 (30,250) (5, 220) (45, 50) (5, 0) (20,100) (5, 70)

47 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

Basic Data Structure (c 1, q 1 )(c 2, q 2 )(c 3, q 3 ) Sorted list such that c 1 < c 2 < c 3 If there is no inferior candidates q 1 < q 2 < q 3 Worse load cap Better timing

49 Prune Solution List (c 1, q 1 )(c 2, q 2 )(c 3, q 3 ) Increasing c q 1 < q 2 ? (c 4, q 4 ) q 3 < q 4 ? Y N Prune 2 q 1 < q 3 ? q 2 < q 3 ? Y q 3 < q 4 ? Y Prune 3 q 1 < q 4 ? N Prune 3 N N Prune 4 N q 2 < q 4 ?

50 Pruning In Merging (c l1, q l1 ) (c l2, q l2 ) (c l3, q l3 ) (c r1, q r1 ) (c r2, q r2 ) q l1 < q l2 < q r1 < q l3 < q r2 Merged candidates (c l1 +c r1, q l1 ) (c l2 +c r1, q l2 ) (c l3 +c r1, q r1 ) (c l3 +c r2, q l3 ) (c l1, q l1 ) (c l2, q l2 ) (c l3, q l3 ) (c r1, q r1 ) (c r2, q r2 ) (c l1, q l1 ) (c l2, q l2 ) (c l3, q l3 ) (c r1, q r1 ) (c r2, q r2 ) (c l1, q l1 ) (c l2, q l2 ) (c l3, q l3 ) (c r1, q r1 ) (c r2, q r2 ) Left candidates Right candidates

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

Multiple Buffer Types (v 1, 1, 20) 22 v1v1 v1v1 (v 2, 3, 16) r = 1, c = 1 R b = 1, C b = 1, t b = 1 R b2 = 0.5, C b2 = 2, t b2 = 0.5 R d = 1 (v 2, 1, 12) v1v1 (v 2, 2, 14)

53 Handle Polarity Negative Positive

Consider Cost/Power A solution is also characterized by cost w A solution is inferior if it is poor on all of c, q and w At source, a set of solutions with tradeoff of q and w w can be –total capacitance –or the number of buffers

55 Cost-Slack Trade-off

56 Data Organization (c 1, q 1 )(c 2, q 2 )(c 3, q 3 ) (c 4, q 4 )(c 5, q 5 )(c 6, q 6 ) (c 7, q 7 )(c 8, q 8 ) (c 9, q 9 )(c 10, q 10 ) (c 11, q 11 ) #buffers inserted Sorted in ascending order of (c, q)

Pruning Considering Cost (c 1, q 1 )(c 2, q 2 )(c 3, q 3 ) (c 4, q 4 )(c 5, q 5 )(c 6, q 6 ) (c 7, q 7 )(c 8, q 8 ) (c 9, q 9 ) (c i, q i, w i ) is inferior to (c k, q k, w k ) if c i > c k, q i w k w Prune order Pruning within a list is same as before How to prune a solution with w k from a set of solutions with w  w k ?

58 Blockage Recognition Delete insertion points that run over blockages

References L.P.P.P. van Ginneken, Buffer placement in distributed RC- tree networks for minimal Elmore delay, ISCAS 1990, J. Lillis, C.-K. Cheng, and T. T. Lin, “Optimal wire sizing and buffer insertion for low power and generalized delay model”, IEEE J. Solid- State Circuits, 31(3), pp , W. Shi and Z. Li, “An O(nlogn) time algorithm for optimal buffer insertion”, Proc. DAC 2003, pp