Top Banner
1 Architectural Architectural- Level Synthesis Level Synthesis Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes as long as this note and the copyright footers are not removed © Giovanni De Micheli – All rights reserved (c) Giovanni De Micheli 2 Module1 Objectives Motivation Compiling language models into abstract models Behavioral-level optimization and program-level transformations
22

Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

Aug 19, 2018

Download

Documents

dothuan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

1

ArchitecturalArchitectural--Level SynthesisLevel Synthesis

Giovanni De MicheliIntegrated Systems Centre

EPF Lausanne

This presentation can be used for non-commercial purposes as long as this note and the copyright footers are not removed

© Giovanni De Micheli – All rights reserved

(c) Giovanni De Micheli 2

Module1

Objectives

Motivation

Compiling language models into abstract models

Behavioral-level optimization and program-level transformations

Page 2: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

2

(c) Giovanni De Micheli 3

Synthesis

Transform behavioral into structural view

Architectural-level synthesis: Architectural abstraction level

Determine macroscopic structure

Example: major building blocks

Logic-level synthesis: Logic abstraction level

Determine microscopic structure

Example: logic gate interconnection

(c) Giovanni De Micheli 4

Models and flows

LANGUAGE MODELS ABSTRACT MODELS

HDL

HDL

HDL

compilation

compilation

translation

Operations and dependencies (Data-flow & sequencing

graphs)

FSMs – Logic functions (State-diagrams & logic

networks)

Interconnected logic blocks (Logic networks)

BE

HA

VIO

RA

L V

IEW

ST

RU

CT

UR

AL

VIE

W

AR

CH

ITE

CT

UR

AL

LE

VE

LL

OG

IC L

EV

EL

Physical design(mask layout)

Verilog

VHDL

SystemC

Esterel

Statecharts

Schematics

GDS2

Page 3: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

3

(c) Giovanni De Micheli 5

Example

diffeq {read (x; y; u; dx; a);

repeat {xl = x+dx;

ul = u –(3 . x . u . dx) – (3 . y . dx)

yl = y + u . dx ;

c = x < a;

X = xl; u = ul; y = yl;

}

until ( c )

write (y)

(c) Giovanni De Micheli 6

Example of structures

* ALUSTEERING

& MEMORY

CONTROL UNIT

* ALUSTEERING

& MEMORY

CONTROL UNIT* ALU

Page 4: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

4

(c) Giovanni De Micheli 7

Example

1 2 3 4 5 6 7 8

5

10

15

78

12

13

(2,2)

(2,1)

(1,2)

(1,1)

Area

Latency

X

(c) Giovanni De Micheli 8

Architectural-level synthesis motivation

Raise input abstraction level

Reduce specification of details

Extend designer base

Self-documenting design specifications

Ease modifications and extensions

Reduce design time

Explore and optimize macroscopic structure:

Series/parallel execution of operations

Page 5: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

5

(c) Giovanni De Micheli 9

Architectural-level synthesis

Translate HDL models into sequencing graphs

Behavioral-level optimization:

Optimize abstract models independently from the implementation parameters

Architectural synthesis and optimization:

Create macroscopic structure: Data-path and control-unit

Consider area and delay information of the implementation

(c) Giovanni De Micheli 10

Compilation and behavioral optimization

Software compilation:

Compile program into intermediate form

Optimize intermediate form

Generate target code for an architecture

Hardware compilation:

Compile HDL model into sequencing graph

Optimize sequencing graph

Generate gate-level interconnection for a cell library

Page 6: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

6

(c) Giovanni De Micheli 11

Hardware and software compilation

lex parse optimization codegen

front-end Intermediate form back-end

lex parsebehavioral

optimization

front-end Intermediate form back-end

a-synthesis

l-synthesis

l-binding

(c) Giovanni De Micheli 12

Compilation

Front-end:

Lexical and syntax analysis

Parse-tree generation

Macro-expansion

Expansion of meta-variables

Semantic analysis:

Data-flow and control-flow analysis

Type checking

Resolve arithmetic and relational operators

Page 7: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

7

(c) Giovanni De Micheli 13

Parse tree example

a = p + q * r

assignment

identifier expression

expressionidentifier

identifier identifier

a

=

+

*p

q r

(c) Giovanni De Micheli 14

Behavioral-level optimization

Semantic-preserving transformations aiming at

simplifying the model

Applied to parse-trees or during their generation

Taxonomy:

Data-flow based transformations

Control-flow based transformations

Page 8: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

8

(c) Giovanni De Micheli 15

Data-flow based transformations

Tree-height reduction

Constant and variable propagation

Common sub-expression elimination

Dead-code elimination

Operator-strength reduction

Code motion

(c) Giovanni De Micheli 16

Tree-height reduction

Applied to arithmetic expressions

Goal: Split into two-operand expressions to exploit hardware

parallelism at best

Techniques: Balance the expression tree Exploit commutativity, associativity and distributivity

Page 9: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

9

(c) Giovanni De Micheli 17

Example of tree-height reduction using commutativity and associativity

+

+

*

*+

+

a ab bc cd d

x = a + b * c + d → x = (a + d) + b * c

(c) Giovanni De Micheli 18

Example of tree-height reduction using distributivity

*

+

*

*

+

* *

* *

a ab bc cd de ea

x = a * (b * c * d + e) → x = a * b * c * d + a * e;

Page 10: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

10

(c) Giovanni De Micheli 19

Examples of propagation

Constant propagation

a = 0; b = a + 1; c = 2 * b;

a = 0; b = 1; c = 2;

Variable propagation:

a = x; b = a + 1; c = 2 * x;

a = x; b = x + 1; c = 2 * x;

(c) Giovanni De Micheli 20

Sub-expression elimination

Logic expressions:

Performed by logic optimization

Kernel-based methods

Arithmetic expressions:

Search isomorphic patterns in the parse trees

Example:

a = x + y; b = a +1; c = x + y

a = x + y; b = a + 1; c = a;

Page 11: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

11

(c) Giovanni De Micheli 21

Examples of other transformations

Dead-code elimination:

a = x; b = x + 1; c = 2 * x;

a = x; can be removed if not referenced

Operator-strength reduction:

a = x2, b = 3 * x;

a = x * x; t = x << 1; b = x + t;

Code motion:

for ( i = 1; i < a * b) { }

t = a * b; for ( i = 1; i < t) { }

(c) Giovanni De Micheli 22

Control-flow based transformations

Model expansion

Conditional expansion

Loop expansion

Block-level transformations

Page 12: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

12

(c) Giovanni De Micheli 23

Model expansion

Expand subroutine Flatten hierarchy

Expand scope of other optimization techniques

Problematic when model is called more than once

Example:

x = a + b; y = a * b; z = foo (x , y);

foo(p,q) { t=q - p; return (t); }

By expanding foo:

x = a + b; y = a*b; z = y – x;

(c) Giovanni De Micheli 24

Conditional expansion

Transform conditional into parallel execution with test at the end

Useful when test depends on late signals

May preclude hardware sharing

Always useful for logic expressions

Example:

y = ab; if (a) {x = b + d; } else { x = bd; } Can be expanded to: x = a (b + d) + a’bd

And simplified as: y = ab; x = y + d ( a + b )

Page 13: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

13

(c) Giovanni De Micheli 25

Loop expansion

Applicable to loops with data-independent exit conditions

Useful to expand scope of other optimization techniques

Problematic when loop has many iterations

Example:

x = 0; for ( I = 1; I < 3; I ++ ) { x = x + 1; }

Expanded to:

x = 0; x = x + 1; x = x + 2; x = x + 3

(c) Giovanni De Micheli 26

Module2

Objectives

Architectural optimization

Scheduling, resource sharing, estimation

Page 14: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

14

(c) Giovanni De Micheli 27

Architectural synthesis and optimization

Synthesize macroscopic structure in terms of building-

blocks

Explore area/performance trade-off:

maximize performance implementations subject to area constraints

minimize area implementations subject to performance constraints

Determine an optimal implementation

Create logic model for data-path and control

(c) Giovanni De Micheli 28

Design space and objectives

Design space:

Set of all feasible implementations

Implementation parameters:

Area

Performance: Cycle-time

Latency

Throughput (for pipelined implementations)

Power consumption

Page 15: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

15

(c) Giovanni De Micheli 29

Design evaluation space

Area

Area

Area

Latency

Latency

Latency

Latency Max

Area Max

Cycle-time

(c) Giovanni De Micheli 30

Hardware modeling

Circuit behavior:

Sequencing graphs

Building blocks:

Resources

Constraints:

Timing and resource usage

Page 16: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

16

(c) Giovanni De Micheli 31

Resources

Functional resources: Perform operations on data

Example: arithmetic and logic blocks

Storage resources: Store data

Example: memory and registers

Interface resources: Example: busses and ports

(c) Giovanni De Micheli 32

Resources and circuit families

Resource-dominated circuits.

Area and performance depend on few, well-characterized blocks

Example: DSP circuits

Non resource-dominated circuits

Area and performance are strongly influenced by sparse logic, control and wiring

Example: some ASIC circuits

Page 17: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

17

(c) Giovanni De Micheli 33

Implementation constraints

Timing constraints:

Cycle-time

Latency of a set of operations

Time spacing between operation pairs

Resource constraints:

Resource usage (or allocation)

Partial binding

(c) Giovanni De Micheli 34

Synthesis in the temporal domain

Scheduling:

Associate a start-time with each operation

Determine latency and parallelism of the implementation

Scheduled sequencing graph:

Sequencing graph with start-time annotation

Page 18: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

18

(c) Giovanni De Micheli 35

Example

* * + <

-

-

* * * * +

NOP

NOP

0

1 2

3

4

5

6

7

8

9

10

11

n

TIME 1

TIME 2

TIME 3

TIME 4

(c) Giovanni De Micheli 36

Synthesis in the spatial domain

Binding:

Associate a resource with each operation with the same type

Determine the area of the implementation

Sharing:

Bind a resource to more than one operation

Operations must not execute concurrently

Bound sequencing graph:

Sequencing graph with resource annotation

Page 19: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

19

(c) Giovanni De Micheli 37

Example

* * + <

-

-

* * * * +

NOP

NOP

0

1 2

3

4

5

6

7

8

9

10

11

n

TIME 1

TIME 2

TIME 3

TIME 4

(1,1) (1,2) (1,3) (1,4) (2,2)

(2,1)

(c) Giovanni De Micheli 38

Estimation

Resource-dominated circuits.

Area = sum of the area of the resources bound to the operations Determined by binding

Latency = start time of the sink operation (minus start time of the source operation) Determined by scheduling

Non resource-dominated circuits

Area also affected by: Registers, steering logic, wiring and control

Cycle-time also affected by: Steering logic, wiring and (possibly) control

Page 20: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

20

(c) Giovanni De Micheli 39

Approaches to architectural optimization

Multiple-criteria optimization problem:

Area, latency, cycle-time

Determine Pareto optimal points:

Implementations such that no other has all parameters with inferior values

Draw trade-off curves:

Discontinuous and highly nonlinear

(c) Giovanni De Micheli 40

Approaches to architectural optimization

Area/latency trade-off

for some values of the cycle-time.

Cycle-time/latency trade-off

for some binding (area)

Area/cycle-time trade-off

for some schedules (latency)

Page 21: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

21

(c) Giovanni De Micheli 41

Area-latency trade-off

Rationale: Cycle-time dictated by system constraints

Resource-dominated circuits: Area is determined by resource usage

Approaches: Schedule for minimum latency under resource usage

constraints

Schedule for minimum resource usage under latency constraints for varying cycle-time constraints

(c) Giovanni De Micheli 42

Area/latency trade-off

1 2 3 4 5 6 7 8

5

10

15

7

8

12

13

(3,2)

(2,1)

(3,1)

Area

Latency

20

18

17

30

40

(2,2)

(2,1)

(1,2)

(1,1)

Cycle-time

X

Page 22: Architectural-Level Synthesis Giovanni De Micheliusers.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_11.pdf · Architectural-level synthesis ... lex parse optimization codegen

22

(c) Giovanni De Micheli 43

Summary

Behavioral optimization:

Create abstract models from HDL models

Optimize models without considering implementation parameters

Architectural synthesis and optimization

Consider resource parameters

Multiple-criteria optimization problem: area, latency, cycle-time