39
- 1- http://www.artist-embedded.org/ ARTIST2 Summer School 2008 in Europe ARTIST2 Summer School 2008 in Europe Autrans Autrans (near Grenoble), France (near Grenoble), France September 8 September 8 - - 12, 2008 12, 2008 Lecturers: Peter Marwedel, Lecturers: Peter Marwedel, Heiko Heiko Falk Falk Informatik 12 Informatik 12 TU Dortmund, Germany TU Dortmund, Germany Memory Memory - - architecture architecture aware compilation aware compilation

Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 1 -

http://www.artist-embedded.org/

ARTIST2 Summer School 2008 in EuropeARTIST2 Summer School 2008 in EuropeAutransAutrans (near Grenoble), France(near Grenoble), France

September 8September 8--12, 200812, 2008

Lecturers: Peter Marwedel, Lecturers: Peter Marwedel, HeikoHeiko FalkFalkInformatik 12Informatik 12

TU Dortmund, GermanyTU Dortmund, Germany

MemoryMemory--architecture architecture aware compilationaware compilation

Page 2: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 2 -

1. Increasing speed gap

2. Major consumer of electrical energy

3. Timing predictability difficult to achieve

4. …

The Problem with Memories

Or: Why work on processors if memory is where the bottleneck is?

Memories?Oops!

Memories!

Page 3: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 3 -

Trends for the speedsSpeed gap between processor and main DRAM increases

[P. Machanik: Approaches to Addressing the Memory Wall, TR Nov. 2002, U. Brisbane]

2

4

8

2 4 5

Speed

years

CPU Per

forman

ce

(1.5-

2 p.a.

)

DRAM (1.07 p.a.)

31

≥ 2xevery 2 years

10

Similar problems also for embedded systems & MPSoCs

Memory access times >> processor cycle times(today: e.g. 100 x)

“Memory wall”problem;uniform memoryaccess a myth

Page 4: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 4 -

Importance of Energy Efficiency

© Hugo De Man, IMEC, 2007

IPE=Inherent power efficiency;AmI=Ambient Intelligence

GO

Ps/J

O. Vargas (Infineon Technologies): Minimum power consumption in mobile-phone memory subsystems; Pennwell Portable Design - September 2005;

Page 5: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 5 -

Dependency on the size

Energy

Access times Applications are getting larger and larger …

Sub-banking

+ locality of referencesMemory hierarchies

Page 6: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 6 -

Timing Predictability

G.721: using unified Cache@ARM7TDMI

Worst case execution time (WCET) larger than without cache

See later slide for experimental setup

Many embedded systems are real-time systemscomputations to be finished in a given amount of time

Most memory hierarchies (e.g. caches) for PC-like systems designed for good average case, not for good worst case behavior.

Page 7: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 7 -

Vision

Application Compiler Binarycode

Linker/Loader

Execution

(Memory)architecture

model

Memoryarchitecturespecification

Pre-pass

optimi-zation

Post-pass

optimi-zation

Specific (multi-objective?) optimiza-tions for memory architectures;

Link/load-time optimizations would keep binary code memory architecture independent

Multiple objectives.What are optimizing compilers actually optimizing for?What is their cost model?

Page 8: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 8 -

Simulation tools

Compilation tools

Integration of various optimizationsinto framework

[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

Executable binaryMemory architecture specification

Memory architecture specification

Profile report

Memory Aware Compilation and Simulation Framework (for C) MACC

MACC still under development;Tools for specific optimizations exist

Page 9: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 9 -

Related Work

• Optimizations exploiting burst mode for SDRAMs, using loop unrolling and architecture description language EXPRESSION (Dutt, Srivastava; UC Irvine)

• Smart linker (K. De Bosschere et al., U. Ghent)• Architecture description language ArchC

(G. Araujo, U. Campinas)• Work on scratchpad optimizations

(M. Kandemir, Penn State U.; R. Barua, U. Maryland; Egger+Lee, SNU; IMEC; Marwedel et al., TU Dortmund)

• ..Existing work covers only some of the aspects

Page 10: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 10 -

What we have done:Optimizations for Scratch Pad Memories (SPM)

Address space

ARM7TDMI cores, well-known for low power consumption

scratch pad memory

0

FFF..

Example

Small; no tag memory

SPMs are small, physically separate memories mapped into the address space;Selection is by an appropriate address decoder (simple!)

SPM

select

SPMs are fast, energy-efficient, timing-predictable

Page 11: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 11 -

Predictability and scratch-pad memories

… In essence, we must reinvent computer science. Fortunately, we have quite a bit of knowledge and experience to draw upon. Architecture techniques such as software-managed caches promise to deliver much of the benefit of memory hierarchy without the timing unpredictability.

[Ed Lee: Absolutely Positively on Time: What would it take?, IEEE Computer, 2005]

… pre-run-time scheduling is often the only practicalmeans of providing predictability in a complex system.

[J. Xu, D. Parnas: On satisfying timing constraints in hard real-time systems, IEEE Trans. Soft. Engineering, 1993, p. 70–84]

Page 12: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 12 -

Comparison of currents using measurements

E.g.: ATMEL board with ARM7TDMI andext. SRAM

Current32 Bit-Load Instruction (Thumb)

48,2 50,9 44,4 53,1

116 77,2 82,21,16

0

50

100

150

200

Prog Main/ DataMain

Prog Main/ DataSPM

Prog SPM/ DataMain

Prog SPM/ Data SPM

mA

Core+SPM (mA) Main Memory Current (mA)

Even larger savings in terms of energy.

Page 13: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 13 -

Why not just use a cache ?

0

1

2

3

4

5

6

7

8

9

256 512 1024 2048 4096 8192 16384

memory size

Ener

gy p

er a

cces

s [n

J]

Scratch padCache, 2way, 4GB spaceCache, 2way, 16 MB spaceCache, 2way, 1 MB space

1. Timing predictability

2. Hardware complexity

3. Energy consumption (in tags, comparators and muxes)

[R. Banakar, S. Steinke, B.-S. Lee, M. Balakrishnan, P. Marwedel. Scratchpad Memory : A Design Alternative for Cache On-chip memory in Embedded Systems, Intern. Workshop on Hardware/ Software Codesign (CODES), 2002]

Page 14: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 14 -

Migration of data and instructions- Global optimization model -

Which object (array, loop, etc.) to be stored in SPM?Non-overlaying memory allocation:Gain gk & size sk for each object k.Maximise gain G = Σgk, respecting size of SPM SSP ≥ Σ sk.Solution: Knapsack algorithm.Overlaying allocation:Moving objects back and forth between hierarchy levelsProcessor

Scratch pad memory,capacity SSP

main memory

?

For i .{ }

for j ..{ }

while ...

Repeat

function ...

Array ...

Int ...

Array

Example:

Page 15: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 15 -

A first, non-overlaying approach for functions and global variables

Multi_sort(mix of sort algorithms)

Cyc

les

[x10

0]E

nerg

y [µ

J]

Feasible with standard compiler & pre- or postpass optimization

Measured processor / external memory energy + CACTI values for SPM (combined model)

Extensions to smaller code blocks, stacks and heaps exist

Page 16: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 16 -

Using these ideas in a pre-pass toolSource is split into 2 different files by specially developed memory optimizer tool *.

applicationsource

profile Info.

main mem. src

spm src.

linker script

*Built with tool design suite ICD-C available from ICD (see www.icd.de/es)

.exe

.ld linker

ARM-GCCCompiler

ARM-GCCCompiler

.c

.c

.c

.txt

Memory optimizer(Incl. ICD-C*)

SPM characteristics

Page 17: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 17 -

Non-overlaying allocation problematic formultiple hot spots Overlaying allocation

• Effectively results in a kind of compiler-controlled overlays for SPM

• Address assignment within SPM required

CPU

Memory

Memory

SPM

Page 18: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 18 -

Overlaying allocation by Verma et al. (1)

C

DEF A

USE A

USE A

MOD A USE C

USE C

B1

B2

B3

B4

B5

B6

B7

B8

Based on control flow graph.

[M.Verma, P.Marwedel: Dynamic Overlay of Scratchpad Memory for Energy Minimization, ISSS, 2004]

Page 19: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 19 -

Overlaying allocation by Verma et al. (2)

SPILL_STORE(A);SPILL_LOAD(C);

SPILL_STORE(A);SPILL_LOAD(C);

SPILL_LOAD(A);SPILL_LOAD(A);

C

DEF A

USE A

USE A

MOD A USE C

USE C

B1

B2

B3

B4

B5

B6

B7

B8

B9

B10

Global set of ILP equations reflects cost/benefit relations of potential copy points

Code handled like data

Page 20: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 20 -

Runtime/energy reduction with respect tonon-overlaying (“static”) allocation

Page 21: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 21 -

Multi-process Scratchpad Allocation:Hybrid Context Switch

• Processes can use shared and exclusively allocated areas

• Saving/restoring required for shared area

• Optimization of sizes published by VermaScratchpad

Process P1,P2, P3

Process P1

Process P2

Process P3

Process P1Process P2Process P3

P1

P2

P3Saving/Restoring at context switch

Saving/Restoring at context switch

Page 22: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 22 -

Multi-process Scratchpad Allocation: Results

80

90

100

110

120

130

140

150

160

64 128 256 512 1024 2048 4096

Scratchpad Size (bytes)

Ene

rgy

Con

sum

ptio

n

SPA: Single Process Approach

edge detection, adpcm, g721, mpeg

Hybrid approach superior to using only exclusively allocated or only shared areas

HybridShared

Exclusive

Page 23: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 23 -

Dynamic set of applications

App. 2

App. 1

App. n AllocationManager

Standard Compiler

(GCC)

Standard Compiler

(GCC)

OperatingSystem

Compile-timeTransformationsCompile-time

Transformations

Profit values / Allocation hints

• 2 steps: compile-time analysis & runtime decisions• No need to know all applications at compile-time• Capable of managing runtime allocated memory objects• Integrated with an embedded OS

Using MPArm simulator from U. Bologna

Page 24: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 24 -

Dynamic set of applications: Comparison of SPMM to Caches

• Baseline: Main memory only• SPMM peak energy reduction by

83% at 4k Bytes scratchpad• Cache peak: 75% at 2k 2-way $• Application: sorting

• SPMM outperforms caches• OS and libraries not

considered yet• Chunk allocation results:

SPM Size Δ 4-way1024 74,81%

2048 65,35%

4096 64,39%

8192 65,64%

16384 63,73%

Page 25: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 25 -

Scratch-pad/tightly coupled memorybased predictability

C program

SPM size

executable

Actualperformance

Worst caseexecution time

memory-awarecompiler ARMulator

aiT

Time-triggered, statically scheduled operating systems

Let‘s do the same for the memory system

Are SPMs really more timing predictable?Analysis using the aiT timing analyzer

Page 26: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 26 -

Architectures consideredARM7TDMI with 3 different memory architectures:

• Main memoryLDR-cycles: (CPU,IF,DF)=(3,2,2)STR-cycles: (2,2,2)* = (1,2,0)

• Main memory + unified cacheLDR-cycles: (CPU,IF,DF)=(3,12,6)STR-cycles: (2,12,3)* = (1,12,0)

• Main memory + scratch padLDR-cycles: (CPU,IF,DF)=(3,0,2)STR-cycles: (2,0,0)* = (1,0,0)

Page 27: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 27 -

Results for G.721

• L. Wehmeyer, P. Marwedel: Influence of Onchip Scratchpad Memories on WCET: 4th Intl Workshop on worst-case execution time analysis, (WCET), 2004

• L. Wehmeyer, P. Marwedel: Influence of Memory Hierarchies on Predictability for Time Constrained Embedded Software, Design Automation and Test in Europe (DATE), 2005

Using Scratchpad: Using Unified Cache:

Yes, they are clearly more timing predictable!

Page 28: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 28 -

Requirements on WCET Estimates

• Safeness: WCET ≤ WCETEST!

• Tightness: WCETEST – WCET → minimal

������

����

��

��� ��

����������������������� �����������������������

�� ������������������� ���

������ �����

������� �����

�� �����������������

���� ���������� ���

���� �������������

Page 29: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 29 -

A WCET-Aware C-Compiler (WCC)

Distinctive Features:• Integration of timing models into compilation &

optimization process.• Tight coupling of WCET analyzer aiT into WCC’s

backend.

ICD-CParser

ANSI C ICD-CIR

CodeSelector

LLIR

RegisterAllocator

LLIR →CRL2 CRL2

aiT WCETAnalysis

CRL2 +WCETEST

CRL2 →LLIR

WCET-Opt. ASM

Analyses,Optimi-zations

Target Processor:Infineon TriCoreTC1796

Page 30: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 30 -

Imported WCET Data & Flow Facts in WCC

Most important WCET data imported into WCC:• WCETEST of the entire program

• WCETEST of each single basic block

• Worst-Case execution frequencies of each CFG edge

Flow Fact Annotation within WCC:• Annotation of e.g. loop iteration bounds directly in C source

code: _Pragma( “loopbound min 10 max 10” );

• Since compiler optimizations may restructure loops and thus their annotated bounds, WCC automatically keeps Flow Facts consistent during all applied optimizations.

Page 31: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 31 -

Problems during WCETEST Minimization

The Worst-Case Execution Path (WCEP):• WCET of a program P = length of longest execution path

of P (WCEP)

• To minimize P’s WCETEST, optimizations must exclusively focus on those parts of P lying on the WCEP.

Optimization of parts not lying on the WCEP don’t reduce WCETEST at all!

Optimization strategies for WCETEST Minimization must have detailed knowledge about the WCEP.

During optimization, the WCEP may switch within the CFG

Page 32: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 32 -

Graph Colouring Register Allocation

1. Initialisation: Build Interference Graph G = (V, E) withG = {virtual registers} ∪ {K physical processor registers},e = {v, w} ∈ E ⇔ VREGs v and w may never share the same

PHREG, i.e. v and w interfere

2. Simplification: Successively remove all v ∈ V with deg. < K;push each v onto stack S

3. Spilling: After step 2, each node of G has degree ≥ K.Select one v ∈ V; mark v as potential spill; remove v from V;push v onto stack S

4. Repeat steps 2 and 3 until G = ∅.

[A. W. Appel, Modern compiler implementation in C, 1998]

Page 33: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 33 -

Problem of Standard Graph Colouring

3. Spilling: After step 2, each node of G has degree ≥ K.Select one v ∈ V; mark v as potential spill; remove v from V;push v onto stack S

Which node v should be selected as potential spill?

Graph colouring implementations heuristically select …… either some arbitrary node or …

… the node with highest degree or …

… a node in some inner loop.

Uncontrolled spill code generation – potentially alongWorst-Case Execution Path (WCEP) defining the WCET!

Page 34: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 34 -

A Chicken-Egg Problem

A WCET-aware Register Allocator…• …relies on WCET data provided by WCET analysis

• …but can‘t obtain WCET data since code containing virtual registers is not analysable!

• Start by spilling each VREG onto stackcode is fully analysable

• Perform WCET analysis, get WCEP P

• Allocate VREGs of that basic block b ∈ P with most worst-case spill code executions to PHREGs using standard GC

• Recompute WCEP

The Way out:

Page 35: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 35 -

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

110%

adpc

m_g72

1_bo

ard_te

st

duff

edn

fft_1

024

fft_1

6_7 fir

g723

_enc

ode

gsm_d

ecod

e

iir_biq

uad_

N_sec

tions

ludcm

pmatr

ix1_fl

oat

matrix2

_fixe

d

md5

selec

tAve

rage

Rel

. WC

ETEST [%

]

(Usi

ng O

ptim

isat

ion

Leve

lResults – WCETEST Reductions

100% = WCETEST using Std. WCET-unaware Graph-Coloring

Page 36: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 36 -

0%20%40%60%80%

100%120%140%160%180%200%220%240%260%280%300%320%

adpcm_g721_board

_test

adpcm_g721_veri

fy duff

edge_detectednepic

fft_1024

fft_16_1

3fft

_16_7fft

_256 fir

g721_encode

g723_encode

gsm

gsm_decode

gsm_encode

iir_biquad_N_sec

tions

latnrm_32_6

4ludcmpmatm

ult

matrix1_flo

at

matrix1x3_flo

at

matrix2_fix

ed

matrix2_flo

atmd5ndesselect

selection_sortAve

rage

Rel

. AC

ET [

%]

(Usi

ng O

ptim

isat

ion

Leve

l -O

3)Results – Simulated Execution Times

100% = ACETs using Std. WCET-unaware Graph-Coloring

Page 37: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 37 -

Other WCET-aware Optimizations

• WCET-aware Procedure Cloning & Positioning[Lokuciejewski, Falk et al., „WCET-Driven, Code-Size Critical Procedure Cloning“, SCOPES 2008.][Lokuciejewski, Falk et al., „WCET-driven Cache-based Procedure Positioning Optimizations“, ECRTS 2008.]

• WCET-aware I-Cache Locking[Falk, Plazar et al., „Compile Time Decided Instruction Cache Locking Using Worst-Case Execution Paths”, CODES+ISSS 2007.]

• WCET-aware Scratchpad Memory Allocation- First simple approaches proposed by I. Puaut et al.

- Integrated ILP strategies under development at Dortmund,supported by

Page 38: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 38 -

Future work

• Tight integration of tools and representation of memory architectures

• Making these optimizations available to the “average”software engineer for embedded systems

• Creating comprehensive set of SPM optimizations in the form of pre-pass optimizations

• Extensions focusing on multi-processor based systems

• Analysis of standard optimizations from the viewpoint of WCET reduction

• Analysis of tradeoffs between multiple objectives

Page 39: Memory-architecture aware compilation · Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006]. Application C code Memory

- 39 -

Conclusion

• Current compiler technology does not reflect non-uniform memory access costs well

Proposal for an introduction of optimizations driven by models of memory access costs

First approaches focus on exploitation of scratch-pad memories

Non-overlaying + overlaying approaches

Single + multiple applications

Optimizations driven by an explicit WCET modelSignificant WCET reductions even in well-established areas