17
1 Fundamental Algorithms for System Modeling, Analysis, and Optimization Edward A. Lee, Jaijeet Roychowdhury, Sanjit A. Seshia UC Berkeley EECS 144/244 Fall 2013 Copyright © 2010-date, E. A. Lee, J. Roychowdhury, S. A. Seshia, All rights reserved Lecture 3: Timing Analysis – Part 1 Thanks to Kurt Keutzer for several slides EECS 144/244, UC Berkeley: 2 RTL Synthesis Flow RTL Synthesis HDL netlist logic optimization netlist Library/ module generators physical design layout HDL Simulation/ Verification K. Keutzer a b s q 0 1 d clk a b s q 0 1 d clk FSM, Verilog, VHDL Boolean circuit/network Boolean circuit/network Graph / Rectangles Timing Analysis

Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

1

Fundamental Algorithms for System Modeling, Analysis, and Optimization

Edward A. Lee, Jaijeet Roychowdhury, Sanjit A. SeshiaUC BerkeleyEECS 144/244Fall 2013

Copyright © 2010-date, E. A. Lee, J. Roychowdhury, S. A. Seshia, All rights reserved

Lecture 3: Timing Analysis – Part 1

Thanks to Kurt Keutzer for several slides

EECS 144/244, UC Berkeley: 2

RTL Synthesis Flow

RTLSynthesis

HDL

netlist

logicoptimization

netlist

Library/modulegenerators

physicaldesign

layout

HDLSimulation/ Verification

K. Keutzer

a

b

s

q0

1

d

clk

a

b

s

q0

1

d

clk

FSM,Verilog,VHDL

Boolean circuit/network

Boolean circuit/network

Graph / RectanglesTiming Analysis

Page 2: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

2

EECS 144/244, UC Berkeley: 3

Timing Analysis / Verification

Verifying a property about system timing

Arises in many settings: Integrated circuits

Embedded software

Distributed embedded systems

Biological systems

Illustrates many concepts of this courseGraph algorithms

Optimization

SAT solving

Numerical simulation

EECS 144/244, UC Berkeley: 4

Timing Analysis for Digital ICs

(Clock) Speed is one of the major performance metrics for digital circuits

Timing Analysis = the process of verifying that a chip meets its speed requirementE.g., 1 GHz means that next-state function must be

computed within 1 ns

Page 3: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

3

EECS 144/244, UC Berkeley: 5

Timing Analysis for Embedded Software

This code is known to be terminating:

loops with finite bounds

no unbounded recursion

Typically:

No interrupts/threads

Latency from reading sensor values to writing actuator commands is determined by execution time of compute()

while(1) {

read_sensors();

compute();

write_actuators()

}

EECS 144/244, UC Berkeley: 6

Example of ComputationalTask

altitude_control_task() from implementation of software controller of “Paparazzi UAV”

main.c:…while(1) {

…periodic_task(…);…

}

switch(…) {case 0: …

altitude_control_task(…);…

}

Page 4: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

4

EECS 144/244, UC Berkeley: 7

Must find:Longest path in the control-flow graph (CFG)

Path Space in Program

Distributed Embedded Systems

• Lane Keeping System (LKS)

“… the system becomes an active lane keeping assistant as LKS, through an intervention in the steering. … the LKS measures the vehicle position relative to the lane, but offers active support in keeping the vehicle to the lane. However, the driver always retains the driving initiative, meaning that although he can feel the recommended steering reaction as a gentle movement of the steering wheel, his own decision takes priority at all times...”

Source: Continental Website [Haibo Zeng, GM]

Page 5: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

5

FunctionalDesign

Requirements and specification definition

< 100 ms

Automotive Architecture Design Process

• Functional Model

Feature 1

Chassis Sensors

HMISensors

Vision

NavigationSensors

MAP

….

Positioning

Vehicle motion control

Steering actuator

HMI actuators

Feature 5

Feature 2

Feature 1

Chassis Sensors

HMISensors

Vision

NavigationSensors

MAP

….

Positioning

Vehicle motion control

Steering actuator

HMI actuators

Feature 5

Feature 2

Input:

Context diagram with signal interfaces and timing requirement

Example:

Lane keeping system

[Haibo Zeng, GM]

10

Saurabh Srivastava et al., ACT project, UC Berkeley

Enzymatic Pathway Synthesis (Synthetic Biology)

Page 6: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

6

EECS 144/244, UC Berkeley: 11

Determine fastest permissible clock speed (e.g. 1 GHz) by determining delay of longest path from register to register (e.g. 1ns.)

Static Timing Analysis for Circuits

clk

Combinationallogic

clk

Combinationallogic

clk

Combinationallogic

EECS 144/244, UC Berkeley: 12

Cycle Time - Critical Path Delay

Cycle time (T) cannot be smaller than longest path delay (Tmax)

Longest (critical) path delay is a function of:

Total gate, wire delays

clock

Q1 Q2

Tclock1 Tclock2critical path,

~5 logic levels

Tclock1

data

cycle time

maxT T

Page 7: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

7

EECS 144/244, UC Berkeley: 13

Cycle Time - Setup Time

For FFs to correctly latch data, it must be stable during:

Setup time (Tsetup) beforeclock arrives

clock

Q1 Q2

Tclock1 Tclock2critical path,

~5 logic levels

Tclock1

data

setup time

max setupT T T

EECS 144/244, UC Berkeley: 14

Cycle Time - Clock-skew

clock

Q1 Q2

Tclock1 Tclock2

Tclock2

Tclock1

Q2

data

clock skewQ2

If clock network has unbalanced delay – clock skew

Cycle time is also a function of clock skew (Tskew)

max setup skewT T T T

critical path, ~5 logic levels

Page 8: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

8

EECS 144/244, UC Berkeley: 15

Cycle Time - Clock to Q

Cycle time is also a function of propagation delay of FF (Tclk-to-Q)

Tclk-to-Q : time from arrival of clock signal till change at FF output)

clock

Q1 Q2

Tclock1 Tclock2

Tclock1

Tclock2

Q2clock-to-Q

data

Q2

max setup skew clk to QT T T T T

critical path, ~5 logic levels

EECS 144/244, UC Berkeley: 16

Min Path Delay - Hold Time

For FFs to correctly latch data, data must be stable during Hold time (Thold) after clock arrives

Determined by delay of shortest path in circuit (Tmin) and clock skew (Tskew)

clock

Q1 Q2

Tclock1 Tclock2short path, ~3

logic levels

Tclock1

data

hold time

min hold skewT T T

Page 9: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

9

EECS 144/244, UC Berkeley: 17

A Quick Recap

set-up time – D stablebefore clock

cycle time

Example of a single phase clock

hold time –D stable after clock

When signalmay change

EECS 144/244, UC Berkeley: 18

Modeling Timing in a Combinational Circuit

Arrival time in green A

C

B

f

2

2

2

1

0

1

0

.20

.20

.20

.10

X

YZ

W

.15

.05

1

.05

Interconnect delay in red

Gate delay in blue

What’s the right mathematical object to use to represent this physical object?

Page 10: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

10

EECS 144/244, UC Berkeley: 19

Modeling - 1

C

B

f

X

Y

W

0

.05.1

1

.2

A

.15.20

.20

12

2

2

Z

Use a labeled directed graph

G = <V,E>

Vertices represent gates, primary inputs and primary outputs

Edges represent wires

Labels represent delays

Now what do we do with this?

A

C

B

f

2

2

2

1

0

1

0

.20

.20

.20

.10

X

YZ

W

.15

.05

1

.05

0

0

1

s

EECS 144/244, UC Berkeley: 20

Modeling - 2

C

B

f

X

Y

W

0

.05.1

1

.2

0

0

1

A

.15.20

.20

12

2

2

Z

Find longest path in a directed graph G = <V,E>

What sort of directed graph do we have?

Is this in the standard form for a longest/shortest path problem?

s

Page 11: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

11

EECS 144/244, UC Berkeley: 21

Split Nodes into Edges

C

B

f

X

Y

W

0

.05.1

1

.2

0

0

1

A

.15.20

.20

12

2

2

Z

22

2 1

0.5 2.5

3

s

EECS 144/244, UC Berkeley: 22

DAG with Weighted Edges

C

B

f

X

Y

W

0

1.050.1

1

0.2

0

0

1

A

2.15

2.2

2.2Z

Problem: Find the longest (critical) path from source s to sink f.

s

Page 12: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

12

EECS 144/244, UC Berkeley: 23

Naïve Approach: Enumerate Paths

C

B

f

X

Y

W

0

1.05.1

1

.2

0

0

1

A

2.15

2.2

2.2Z

Problem: Find the longest path from source s to sink f.

How many paths in this example?In the worst case?

s

EECS 144/244, UC Berkeley: 24

Page 13: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

13

EECS 144/244, UC Berkeley: 25

Algorithm 1: Longest path in a DAG

Critical Path Method [Kirkpatrick 1966, IBM JRD]

Let w(u,v) denote weight of edge from u to v

Steps:

1. Topologically sort vertices

order: v1, v2, …, vn v1 = s, vn = ?

2. For each vertex v, compute

d(v) = length of longest path from source s to v

d(v1) = 0

For i = 2..n

d(vi) = maxall incoming edges (u, vi)d(u) + w(u,vi)

EECS 144/244, UC Berkeley: 26

Algorithm 1: Longest path in a DAG

Critical Path Method [Kirkpatrick 1966, IBM JRD]

Let w(u,v) denote weight of edge from u to v

Steps:

1. Topologically sort vertices

order: v1, v2, …, vn v1 = s, vn = f

2. For each vertex v, compute

d(v) = length of longest path from source s to v

d(v1) = 0

For i = 2..n

d(vi) = maxall incoming edges (u, vi)d(u) + w(u,vi)

Time Complexity?O(m+n)

Run the CPM on our example

Page 14: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

14

EECS 144/244, UC Berkeley: 27

Algorithm 2: Incremental longest path in a DAG

Suppose only a few weights/nodes/edges change.

How do we recompute the longest path efficiently?

C

B

f

X

Y

W

0 3

1.05.1

1

.2

0

0

1

A

2.15

2.2

2.2Z

s

Exercise: READ HANDOUT

EECS 144/244, UC Berkeley: 28

Algorithm 3: Top k longest paths in a DAG

Often, we don’t want just the longest path

Want to find the top k longest paths

How to do this efficiently? (i.e., polynomial in n, m, k)

Key insight/idea:• The 2nd longest path shares a prefix with the longest path.• From each node along longest path, keep track of the “next longest” route to sink f.

Page 15: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

15

EECS 144/244, UC Berkeley: 29

Algorithm 3: Top k longest paths in a DAG

Pre-compute phase:1. For all v, compute

(v) = length of longest path from vertex v to sink f.

How to compute this efficiently? Complexity?

2. At each vertex v: order successor vertices u1, u2, …, uk by decreasing cost(ui) = w(v, ui) + (ui)

3. Compute ‘branch’ slacks at v: bsi(v) = cost(ui) – cost(ui+1)

bsk(v) = cost(uk)

EECS 144/244, UC Berkeley: 30

Algorithm 3: Top k longest paths in a DAG

Pre-compute phase:1. (v) = length of longest path from vertex v to sink f.

How to compute? Complexity?

2. At each vertex v: order successor vertices u1, u2, …, uk by decreasing cost(ui) = w(v, ui) + (ui)

3. Compute ‘branch’ slacks at v: bsi(v) = cost(ui) – cost(ui+1)

bsk(v) = cost(uk)

Main phase:1. Let longest path p = s, v1, v2, …, vr, f

2. For 2nd (next) longest, order nodes according to branch slacks: bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path.

3. For 3rd longest, add nodes along 2nd longest to the ordered node list, maintaining order. Go back to step 2 (check ‘next’ branch slack). (see handout for details)

Page 16: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

16

EECS 144/244, UC Berkeley: 31

Algorithm 3: Top k longest paths in a DAG

Main phase:1. Let longest path p = s, v1, v2, …, vr, f

2. For 2nd (next) longest, order nodes according to branch slacks: bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path.

3. For 3rd longest, add nodes along 2nd longest to the ordered node list, maintaining order. Go back to step 2 (check ‘next’ branch slack). (see handout for details)

EECS 144/244, UC Berkeley: 32

Example: Top k longest paths in a DAG

B

F

DC

G

10

519

10 10

10 12

bs = 3bs = 1

2030

Page 17: Fundamental Algorithms for System Modeling, Analysis, and ... · bs1(s), bs1(v1), … bs1(vr), and pick the smallest. The corresponding successor indicates the next longest path

17

EECS 144/244, UC Berkeley: 33

Example: Top k longest paths in a DAG

B

F

DC

G

10

519

10 10

10 12

bs = 3bs = 1

2030

EECS 144/244, UC Berkeley: 34

Next Lectures

Dealing with the non-idealities of the current model True and False paths

Timing variability

Retiming (timing for sequential circuits)

References: In-class Handout: Chapter 5: “Timing Analysis for

Combinatonal Circuits” of “Timing” by S. Sapatnekar

Posted optional reading: Chapter 15 of “Introduction to Embedded Systems” by E. A. Lee and S. A. Seshia, http://leeseshia.org