47
fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund Informatik 12 Germany 2013 年 01 年 22 年 These slides use Microsoft clip arts. Microsoft copyright restrictions apply. © Springer, 2010

Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

Embed Size (px)

Citation preview

Page 1: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

fakultät für informatikinformatik 12

technische universität dortmund

Optimizations- Compilation for Embedded Processors -

Peter MarwedelTU DortmundInformatik 12

Germany

2013 年 01 月 22 日 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.

© S

prin

ger,

201

0

Page 2: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 2 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Structure of this course

2: Specification & Modelling

3: ES-hardware

4: system software (RTOS, middleware, …)

8:Test

5: Evaluation & validation & (energy, cost, performance, …)

7: Optimization

6: Application mapping

App

licat

ion

Kno

wle

dge Design

repositoryDesign

Numbers denote sequence of chapters

Page 3: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 3 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

SPM+MMU (1)

How to use SPM in a system with virtual addressing? Virtual SPM

Typically accesses MMU + SPM in parallel not energy efficient

Real SPM suffers from potentiallylong VA translation

Egger, Lee, Shin (Seoul Nat. U.):Introduction of small µTLB translating recent addresses fast.

[B. Egger, J. Lee, H. Shin: Scratchpad memory management for portable systems with a memory management unit, CASES, 2006, p. 321-330 (best paper)]

Proc. $SPM MMU

Page 4: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 4 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

SPM+MMU (2)

µTLB generates physical address in 1 cycle

if address corresponds to SPM, it is used

otherwise, mini-cache is accessed Mini-cache provides reasonable

performance for non-optimized code

µTLB miss triggers main TLB/MMU

SPM is used only for instructions instructions are stored in pages pages are classified as cacheable,

non-cacheable, and “pageable”(= suitable for SPM)

CPU core

MMU

unified TLB

minicache

TAG RAM

DATA RAMSPM

SPM base reg. comparator

µTLB

instruction VA

PA

Page 5: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 5 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

SPM+MMU (3)

Application binaries are modified: frequently executed code put into pageable pages.

Initially, page-table entries for pageable code are marked invalid

If invalid page is accessed, a page table exception invokes SPM manager (SPMM).

SPMM allocates space in SPM and sets page table entry

If SPMM detects more requests than fit into SPM, SPM eviction is started

Compiler does not need to know SPM size virtual memory

SPM

main memory

physical memory

stack/heapregion

pageable region

cached region

uncached region

pageable region

cached region

uncached region

PC

Page 6: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 6 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Multi-processor ARM (MPARM) Framework

Homogenous SMP ~ CELL processor Processing Unit : ARM7T processor Shared Coherent Main Memory Private Memory: Scratchpad Memory

SPM SPMSPMSPM

InterruptDevice

SemaphoreDevice

ARM ARM ARM ARM

Interconnect (AMBA or STBus)

Shared Main Memory

Page 7: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 7 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Application Example: Multi-Processor Edge Detection

Source SinkCompute Processors

Source, sink and n compute processors

Each image is processed by an independent compute processor

• Communication overhead is minimized.

Page 8: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 8 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Results:Scratchpad Overlay for Edge Detection

0

500

1000

1500

2000

2500

128 256 512 1024 2048 4096 8192 16384

Scratchpad Size per Processor (Bytes)

To

tal

En

erg

y C

on

sum

pti

on

(m

J)

Energy (SO): 1 CP

Energy (SO): 2 CP

Energy (SO): 3 CP

Energy (SO): 4 CP

2 CPs are better than 1 CP, then energy consumption stabilizes

Best scratchpad size: 4kB (1CP& 2CP) 8kB (3CP & 4CP)

Page 9: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 9 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

ResultsDES-Encryption

0

10

20

30

40

50

60

70

0 128 256 512 1k 2k 4k 8k 16k

Scratchpad Size [Bytes]

En

erg

y C

on

sum

pti

on

[µJ

]

Energy Consum ption [µJ]

DES-Encryption: 4 processors: 2 Controllers+2 Compute Engines

Energy values from ST Microelectronics

Result of ongoing cooperation between U. Bologna and U. Dortmund supported by ARTIST2 network of excellence.

Page 10: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 10 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Let’s look at timing!

Definition of worst case execution time:

WCETEST

© Graphics: R. Wilhelm+ Microsoft Cliparts

WCETEST must be

1. safe (i.e. ≥ WCET) and

2. tight (WCETEST-WCET≪WCETEST)

Deadline

Page 11: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 11 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Current Trial-and-Error Based Development

1. Specification of CPS/ES system

2. Generation of Code (ANSI-C or similar)

3. Compilation of Code

4. Execution and/or simulation of code,using a (e.g. random) set of input data

5. Measurement-based computation of “estimated worst case execution time” (WCETmeas)

6. Adding safety margin m on top of WCETmeas:WCEThypo := (1 + m)* WCETmeas

7. If “WCEThypo” > deadline: change some detail, go back to 1 or 2.

Page 12: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 12 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Problems with this Approach

Dependability Computed “WCEThypo” not a safe approximation Time constraint may be violated

Design time How to find necessary changes? How many iterations until successful?

“Make the common case fast” a wrong approach for RT-systems Computer architecture and compiler techniques focus on average

speed Circuit designers know it’s wrong Compiler designers (typically) don’t

“Optimizing” compilers unaware of costfunctions other than code size

Common case fast

Page 13: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 13 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Integration of WCET estimation and compilation

Computing WCETEST after code generation is too late.

Why not consider WCETEST as an objective function already in the compiler?

Integration of aiT and compiler

Page 14: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 14 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Challenges for WCETEST-Minimization

Worst-Case Execution Path (WCEP)

WCETEST of a program = Length of longestexecution path (WCEP) in that program

WCETEST-Minimization:Reduction of the longest path

Other optimizations do not resultin a reduction of WCETEST

Optimizations need to know the WCEP

Page 15: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 15 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

WCET-oriented optimizations

Extended loop analysis (CGO 09) Instruction cache locking (CODES/ISSS 07, CGO 12) Cache partitioning (WCET-Workshop 09) Procedure cloning (WCET-WS 07, CODES 07, SCOPES 08) Procedure/code positioning (ECRTS 08, CASES 11 (2x)) Function inlining (SMART 09, SMART 10) Loop unswitching/invariant paths (SCOPES 09) Loop unrolling (ECRTS 09) Register allocation (DAC 09, ECRTS 11)) Scratchpad optimization (DAC 09) Extension towards multi-objective optimization (RTSS 08) Superblock-based optimizations (ICESS 10) Surveys (Springer 10, Springer 12)

Page 16: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 16 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Loop Unrolling as an Example

Unrolling replaces the original loop withseveral instances of the loop body

Positive Effects• Reduced overhead for loop control• Enables instruction level parallelism (ILP)• Offers potential for following optimizations

Unroll early in optimization chain Negative Effects

• Aggressive unrolling leads to I-cache overflows• Additional spill code instructions • Control code may cancel positive effects

Consequences of transformation hardly known

Page 17: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 17 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

WCETEST-aware Loop Unrolling via Back-annotation

WCETEST-information available at assembly level

Unrolling to be applied at internal representationof source code

Solution: Back-annotation:Experimental WCETEST-aware compilerWCC allows copying information:assembly code source code

• WCETEST data

• Assembly code size

• Amount of spill code

Memory architecture info available

High-Level IR(Source Code)

Low-Level IR(Assembly Code)

Back-Annotation

Mem. Spec.

Code generation

Page 18: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 18 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Results for unrolling: WCETEST

100%: Avg. WCETEST for all benchmarks with –O3 & no unrolling WCETEST reduction between 10.2% and 15.4%WCETEST-driven Unrolling outperforms standard unrolling by 13.7%

Rel

ativ

e W

CE

T [

%]

ST

AN

DA

RD

Page 19: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 19 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

WCET-aware superblock optimizations WCC’s superblocks: proposed 1st time at ANSI-C code level,

rely on WCETEST timing data WCETEST-aware superblock optimizations: Common Subexpression

Elimination (CSE) and Dead Code Elimination (DCE) ported to WCC

WCETEST-aware superblock optimizations

Page 20: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 20 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Relative WCETEST with I-Cache Locking 5 Bench-marks/ARM920T/Postpass-Opt

(ARM920T)

[S. Plazar et al.]

Page 21: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 21 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Results: Register allocation

Registers = fastest level in the memory hierarchy Interest in good global register allocation techniques

Frequently based on coloring of interference graph

lifetimes

v1

v2v3

v1

v2

v3

Page 22: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 22 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Register Allocation

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

110%

adpcm

_ver

ify

cjpeg

_tra

nsupp

com

pres

s crc

dijkst

raduff

edge_

detect ed

nep

ic

expin

tfd

ct

fft_1

024

fft_2

56 fir

fir2d

imgsm

gsm_e

ncode h26

3

h264d

ec_b

lock

h264d

ec_m

acro

iir_4_

64

iir_bi

quad_N

jfdct

int

latn

rm_3

2_64

lmsf

ir_8_

1

lmsf

ir_32

_64 lp

c

ludcm

p

mat

mult

mat

rix2_

fixed

mat

rix2_

float

md5

min

ver

mult_

10_10

mult_

4_4ndes

prime

qmf_

rece

ive

qmf_

transm

itqurt

rijndae

l_en

c

sele

ctsh

a

spec

tral

star

tup

v32_

benc

Avera

ge

Re

lati

ve

WC

ET

ES

T [%

]

(Op

tim

iza

tio

n L

ev

el -

O3

)

100% = WCETEST using Standard Graph Coloring (highest degree)

93%

24%

69%

[H. Falk]

Page 23: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 23 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Potential cache thrashing

[S. Plazar: Memory-based Optimization Techniques for Real-Time Systems, PhD thesis, TU Dortmund, June 2012]

Page 24: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 24 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Avoiding cache thrashing

Key idea: selectively allocate code to uncached memory

S. Plazar: Memory-based Optimization Techniques for Real-Time Systems, PhD thesis, TU Dortmund, June 2012

Page 25: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 25 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Results

S. Plazar: Memory-based Optimization Techniques for Real-Time Systems, PhD thesis, TU Dortmund, June 2012

Page 26: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 26 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Improving predictability for caches

Loop caches Mapping code to less used part(s) of the index space Cache locking/freezing Changing the memory allocation for code or data Mapping pieces of software to specific ways

Methods:- Generating appropriate way in software- Allocation of certain parts of the address space to a

specific way- Including way-identifiers in virtual to real-address

translation “Caches behave almost like a scratch pad”

Page 27: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 27 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Code Layout Transformations (1)

Execution counts based approach: Sort the functions according to execution counts

f4 > f1 > f2 > f5 > f3

Place functions in decreasing order of execution counts

f1

f2

f3

f4

f5

(1100)

(900)

(400)

(2000)

(700)

[S. McFarling: Program optimization for instruction caches, 3rd International Conference on Architecture Support for Programming Languages and Operating Systems (ASPLOS), 1989]

Page 28: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 28 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Code Layout Transformations (2)

Execution counts based approach: Sort the functions according to execution counts

f4 > f1 > f2 > f5 > f3

Place functions in decreasing order of execution counts

Transformation increases spatial locality.Does not take in account calling order

f4

(1100)

(700)

(400)

(2000)

(900)

f4

f1

f2

f5

f3

f4

f2 f5

f1 f3

Page 29: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 29 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Code Layout Transformations (3)

Call-Graph Based Algorithm: Create weighted call-graph. Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Increases spatial locality.

(2000) f4

f4

f2 f5

f1 f3[W. W. Hwu et al.: Achieving high instruction cache performance with an optimizing compiler, 16th Annual International Symposium on Computer Architecture, 1989]

Page 30: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 30 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Code Layout Transformations (3)

Call-Graph Based Algorithm: Create weighted call-graph. Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Increases spatial locality.

(900)

(2000) f4

f2

f4

f2 f5

f1 f3

Page 31: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 31 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Code Layout Transformations (4)

Call-Graph Based Algorithm: Create weighted call-graph. Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Increases spatial locality.

(900)

(1100)

(2000) f4

f2

f1

f4

f2 f5

f1 f3

Page 32: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 32 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Code Layout Transformations (5)

Call-Graph Based Algorithm: Create weighted call-graph. Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Increases spatial locality.

f4

f2 f5

f1 f3

f4

(900)

(1100)

(400)

(2000) f4

f2

f1

f3

Page 33: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 33 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Code Layout Transformations (6)

Call-Graph Based Algorithm: Create weighted call-graph. Place functions according to weighted depth-first

traversal.f4 > f2 > f1 > f3 > f5

Combined with placing frequently executed traces at the top of the code space for functions.

Increases spatial locality.

f4

(900)

(1100)

(400)

(2000)

(700)

f4

f2

f5

f1

f3

f4

f2 f5

f1 f3

Page 34: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 34 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Way prediction/selective direct mapping

[M. D. Powell, A. Agarwal, T. N. Vijaykumar, B. Falsafi, K. Roy: Reducing Set-Associative Cache Energy via Way-Prediction and Selective Direct-Mapping, MICRO-34, 2001]

© ACM

Page 35: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 35 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Results for the paper on way prediction (2)

© ACM

Page 36: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 36 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Prefetching

Prefetch instructions load values into the cachePipeline not stalled for prefetching

Prefetching instructions introduced in ~1985-1995 Potentially, all miss latencies can be avoided Disadvantages:

• Increased # of instructions• Potential premature eviction of cache line• Potentially pre-loads lines that are never used

Steps• Determination of references requiring prefetches• Insertion of prefetches (early enough!)

[R. Allen, K. Kennedy: Optimizing Compilers for Modern Architectures, Morgan-Kaufman, 2002]

Page 37: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 37 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Results for prefetching

[Mowry, as cited by R. Allen & K. Kennedy]

© Morgan-Kaufman, 2002

Not very impressive!

Page 38: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 38 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Memory Aware Compilation and Simulation Framework (for C) MACC

[M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006].

Application C code

Source-level memory optimizer

encc, ARM gcc, M5 DSP

Array partitioningSPM overlay

Executable binaryEnergy databaseMemory hierarchy description

Compilation Framework

Profile report

Memory simulator

Processor simulators (ARM7/M5)

Profiler

Simulation Framework

MPSoC simulator

Page 39: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 39 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Memory architecture description @ MACCv2

Query can include address, time stamp, value, … Query can request energy, delay, stored values Query processed along a chain of HW components, incl. busses, ports,

address translations etc., each adding delay & energy

[R. Pyka et al.: Versatile System level Memory Description Approach for embedded MPSoCs, University of Dortmund, Informatik 12, 2007]

API query to model simplifies integration into compiler

External XML representation

REQEnergy= ?

Cycles= ?

+10 Energy

+5 Cycles

+1 Energy

+2 Cycles

+1 Energy

+0 Cycles

CPU1 MM

ASPC-1- IFETCH- DRD- DWR- MAINAS

ASPC-M- 0…ffff

ASPC-B- 0 … 3ffff

Page 40: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 40 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Case study

MPEG4+TCP/IP transmission

A. Mallik et al.: Deliverable D 5.3: Implementation of the optimization approach in the non-open sourceapplication domain and evaluation, 2011

Confidential

Page 41: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 41 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Execution platforms

Flat

Hierarchical

Confidential

Page 42: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 42 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Impact of parallelization

6 frames 11 frames

Significant contention limits usefulness of parallelization for the flat architecture.

Confidential

Page 43: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 43 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Impact of scratchpad optimization

Confidential

Page 44: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 44 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Overall result

Design time: -80%

Memory bandwidth: reduction possible, but with increased footprint

Memory footprint: -1%

Execution time: -30%

Energy: -30% (estimated) if DVS is added

Confidential

Page 45: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 45 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Memory hierarchies beyond main memory

Massive datasets are being collected everywhere Storage management software is billion-$ industry

Examples (2002):Phone: AT&T 20TB phone call

database, wireless trackingConsumer: WalMart 70TB

database, buying patterns WEB: Web crawl of 200M pages

and 2000M links, Akamai stores 7 billion clicks per day

Geography: NASA satellites generate 1.2TB per day

[© Larse Arge, I/O-Algorithms, http://www.daimi.au.dk/~large/ioS07/]

More New Information Over Next 2 Years Than in All Previous History

Page 46: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 46 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Example: LIDAR Terrain Data

~1,2 km

~ 280 km/h at 1500-2000m

~ 1,5 m between measurements

COWI A/S (and others) is currently scanning Denmark

[© Larse Arge, I/O-Algorithms, http://www.daimi.au.dk/~large/ioS07/]

Page 47: Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund

- 47 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2013

TU Dortmund

Application Example: Flooding Prediction

+1 meter

+2 meter

[© Larse Arge, I/O-Algorithms, http://www.daimi.au.dk/~large/ioS07/]