università degli studi di bologna facoltà di ingegneria

45
1 MPSOC 3 Novembre 2003 Università degli studi di Bologna Facoltà di ingegneria Exploring the MPSoC Design Space: the MPARM environment Francesco Poletti DEIS Università di Bologna [email protected] o.it

Upload: vachel

Post on 27-Jan-2016

39 views

Category:

Documents


1 download

DESCRIPTION

Università degli studi di Bologna Facoltà di ingegneria. Exploring the MPSoC Design Space: the MPARM environment. Francesco Poletti DEIS Università di Bologna [email protected]. Outline. Archittetture parallele su singolo chip;. Sistema operativo Embedded RTEMS;. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Università degli studi di Bologna Facoltà di ingegneria

1MPSOC3 Novembre 2003

Università degli studi di BolognaFacoltà di ingegneria

Exploring the MPSoC Design Space: the MPARM

environmentFrancesco Poletti

DEIS Università di Bologna

[email protected]

Page 2: Università degli studi di Bologna Facoltà di ingegneria

2MPSOC3 Novembre 2003

Outline

Sistema operativo Embedded RTEMS;

Archittetture parallele su singolo chip;

Utilizzo della piattaforma MPARM e alcuni benchmark.

Sviluppo di un Hardware decidato: DMA sulla piattaforma MPARM;

Page 3: Università degli studi di Bologna Facoltà di ingegneria

3MPSOC3 Novembre 2003

Problem: The Productivity Gap

Page 4: Università degli studi di Bologna Facoltà di ingegneria

4MPSOC3 Novembre 2003

MPSOC IDEA… Lo sviluppo tecnologico permette sempre maggiori

capacità d’integrazione.

Difficoltà progettuale.

Nuova metodologia di progettazione:System On Chip (SoC).

• Replicazione di blocchi di Unità funzionali

• Il progettista si concentra sulle funzionalità e prestazioni dell’intero sistema.

Page 5: Università degli studi di Bologna Facoltà di ingegneria

5MPSOC3 Novembre 2003

CORE

adapter

CO

MM

UN

ICA

TIO

N

HW

adapter

DSP

MPEG

adapter

adapter

ROM RAM

extmem

extmem

extmem

extmem

CORE

MPSOC ARCHITECTURE

Page 6: Università degli studi di Bologna Facoltà di ingegneria

6MPSOC3 Novembre 2003

L. Benini 08/ 2003 4

Wire delay vs. logic delay

Taken from W.J. Dally presentation: Computer architecture is all about interconnect (it is now and it will be more so in 2010) HPCA Panel February 4, 2002

Page 7: Università degli studi di Bologna Facoltà di ingegneria

7MPSOC3 Novembre 2003

COMUNICATION TOPOLOGIES

Bus Condiviso : sviluppo odierno Network => futuro

NETWORK Elevate prestazioni;Alta occupazione d’area;Scalabilità.

Network on Chip

BUS CONDIVISOPrestazioni medie; Bassa occupazione d’area;Semplicità dell’interfaccia IP.

SHARED BUS

MASTER MASTER

SLAVE SLAVE SLAVE

MASTER

Page 8: Università degli studi di Bologna Facoltà di ingegneria

8MPSOC3 Novembre 2003

Outlines of the AMBA bus

AMBA (Advanced Microcontroller Bus Architecture) è uno standard di comunicazione on-chip, per un elaboratore embedded.

: high performance, high clock frequency system modules- APB: low power peripherals

Page 9: Università degli studi di Bologna Facoltà di ingegneria

9MPSOC3 Novembre 2003

Master per accedere al bus deve richiederne l’utilizzo all’arbitro.Multiplexer per i dati e per gli indirizzi “pilotati” dall’arbitro.

Outlines of the AMBA bus

Page 10: Università degli studi di Bologna Facoltà di ingegneria

10MPSOC3 Novembre 2003

System architecture – AMBA AHB BUS modules

mast[ ]

hmaster

address[ ]

haddr

ctrl_sign

Address and control mux

N

N

mast[ ]

hmaster

hwdata[ ]

hwdataout

Write data mux

N

N

selector

hready

hsel[ ]

readdata[ ]

hrdata

N

N

Read data mux

hsel

[ ]

hadd

rdecoder

N h

req[

]

ctr

l_si

gn

hre

ady

sel

ecto

r

hm

aste

r

hgr

ant[

]

NN

arbiter

ctrl_sign

haddrhwdataout

readdata

hmaster

ready

hsel

mastaddresshwdata

hrdatahgranthready

hreq

AHB I/F master module

AHB I/F slave module

Page 11: Università degli studi di Bologna Facoltà di ingegneria

11MPSOC3 Novembre 2003

ARBITRATION ALGORITHMS

TRE DIFFERENTI POLITICHE DI ARBITRAGGIO :

•TDMA

•Round robin

•SLOT reservation

Master #1 Master #2 Master #N

SLOT DURATION

Master #1

SLOT RESERVATION

Master #2->N Round robin

Master #1

Master #2

Master #4

Master #3Master #1 Master #4

Page 12: Università degli studi di Bologna Facoltà di ingegneria

12MPSOC3 Novembre 2003

STbus – Shared Bus

Page 13: Università degli studi di Bologna Facoltà di ingegneria

13MPSOC3 Novembre 2003

STbus – Full Crossbar

Page 14: Università degli studi di Bologna Facoltà di ingegneria

14MPSOC3 Novembre 2003

STbus – Partial Crossbar

Page 15: Università degli studi di Bologna Facoltà di ingegneria

15MPSOC3 Novembre 2003

Read on AMBA bus

Page 16: Università degli studi di Bologna Facoltà di ingegneria

16MPSOC3 Novembre 2003

Read on STbus

Page 17: Università degli studi di Bologna Facoltà di ingegneria

17MPSOC3 Novembre 2003

Protocol differences

Page 18: Università degli studi di Bologna Facoltà di ingegneria

18MPSOC3 Novembre 2003

Comparison

Average time for read

0

5

10

15

20

asm-

matrixdep

asm-matrixind os-matrixind os-matrixdep

Stbus

AMBA bus

Average time for write

0

1

2

3

4

5

6

asm-matrixdep asm-matrixind os-matrixind os-matrixdep

Stbus

AMBA bus

Page 19: Università degli studi di Bologna Facoltà di ingegneria

19MPSOC3 Novembre 2003

Mapping applications to MPSoCs

Applications

Abstract Parallel architecture

T1T1

T2T2 T3T3

BB

EE

PEPE

PEPE

NoC

PEPE

MM

MM

IOIO

Utilizzo dell’hardware come supporto alla comunicazione?

QoS o Best Effort? Primitive per la

comunicazione tra i task e i processori.

Programmazione parallela.

Page 20: Università degli studi di Bologna Facoltà di ingegneria

20MPSOC3 Novembre 2003

Programming abstractions

Modello di programmazione:Seriale:il programmatore non vede alcun tipo di

parallelismo.Parallel: multiple threads/tasks

• Shared memory: comunicazione attraverso una memoria condivisa

• Message passing: comunicazione in messaggi

Page 21: Università degli studi di Bologna Facoltà di ingegneria

21MPSOC3 Novembre 2003

Shared Memory

COMUNICAZIONE ATTRAVERSO SPAZIO DI MEMORIA CONDIVISA

Page 22: Università degli studi di Bologna Facoltà di ingegneria

22MPSOC3 Novembre 2003

Distributed Memory

COMUNICAZIONE ATTRAVERSO SCAMBIO DI MESSAGGI

Page 23: Università degli studi di Bologna Facoltà di ingegneria

23MPSOC3 Novembre 2003

REAL TIME EMBEDDED OSSistema operativo RTEMS:

Compatibile con lo standard POSIX.(primitive di sincronizzazione e comunicazione tra task).Multitasking.Supporto multiprocessore (MIMD).

Le comunicazioni originano traffico

Transazioni sul bus

Impatto sulle prestazioni del sistema

Applicazioni per un numero scalabile di processori.Comunicazione tra i processori: memoria condivisa come canale di comunicazione, message passing a livello applicativo.

Page 24: Università degli studi di Bologna Facoltà di ingegneria

24MPSOC3 Novembre 2003

IMPORTANT POINTs:

- RTEMS implementa un modello multiprocessore MIMD

- Ogni processore è visto dal S.O come un nodo unico

- Possibilità di definire oggetti con visibilità locale e globale

- Ogni processore ha due tabelle degli Oggetti:

Una per gli oggetti (sia locali che globali) istanziati sul processore

Una per gli oggetti globali (uguale per tutti i processori)

Page 25: Università degli studi di Bologna Facoltà di ingegneria

25MPSOC3 Novembre 2003

Users Tasks

nodo A

RTEMS

MPCILayer

MPCILayer

Canale di comunicazione

RTEMS Users Tasks

nodo B

COMUNICATION SCHEME

Page 26: Università degli studi di Bologna Facoltà di ingegneria

26MPSOC3 Novembre 2003

User task RTEMS MPCI Layer Canale di comunicazione

Rtems_event_send 1 Si accorge che è un task globale 2 GET_PACKET

3 Rilascia un pacchetto

Costruisce ilmessaggio per l’altro processore

4 SEND_PACKET

6Invia il pacchetto Attraverso il canale

Page 27: Università degli studi di Bologna Facoltà di ingegneria

27MPSOC3 Novembre 2003

MPCI Layer User taskRTEMSCanale di comunicazione

Sull’altro nodo …

7 Sente l’arrivo del pacchetto e chiama la rtems_multiprocessing_announcing

8 RECEIVE_PACKETLegge dal canaleE inoltra il messaggioAl S.O

9

10Manda il messaggio Al Task

Page 28: Università degli studi di Bologna Facoltà di ingegneria

28MPSOC3 Novembre 2003

HARDWARE SIDE

RTEMS

User taskRtems_message_send

MPCI Layer

SHARED BUS

PROC #Y

PROC #X

INTERRUPT SLAVE #Y

GET_PACKET build the message

write to interrupt slave

SHARED MEMORY

Page 29: Università degli studi di Bologna Facoltà di ingegneria

29MPSOC3 Novembre 2003

WITHOUT OS SUPPORT

Application level

SHARED BUS

PROC #Y

PROC #X

INTERRUPT SLAVE #YSHARED MEMORYSEMAPHORE

Semaphore Acquisition Semaphore Realise Interrupt SendShared Memory Write

Page 30: Università degli studi di Bologna Facoltà di ingegneria

30MPSOC3 Novembre 2003

MPARM

INTERCONNECTION

ARM ARM INTERRUPTCONTROLLER

PRI MEM 4SHARED

MEM SEMAPHORES

ARM ARM

PRI MEM 3PRI MEM 2PRI MEM 1

STbusor AMBA

Page 31: Università degli studi di Bologna Facoltà di ingegneria

31MPSOC3 Novembre 2003

The processing element

SystemC wrapper

SWARM

bus maste

rBUS

external int

SWARM accurato al ciclo di clock; Il wrapper e’ un Modulo SystemC; Le Memorie e tutti gli altri slave sono Moduli SystemC

The simulations are cycle accurate(~ 24 Kcycles/sec)

Page 32: Università degli studi di Bologna Facoltà di ingegneria

32MPSOC3 Novembre 2003

Development of a DMA

SystemC wrapper

SWARMbus

master

BUS

external intI/D cache

Core

Scratch

bus maste

rBUS

DMA

Object table

Page 33: Università degli studi di Bologna Facoltà di ingegneria

33MPSOC3 Novembre 2003

DMA

bus master

BUS

ARMScratch-pad Memory

DMA transfer

DMA control

Object table

HARDWARE DETAIL

Page 34: Università degli studi di Bologna Facoltà di ingegneria

34MPSOC3 Novembre 2003

Portable systems become multi-tasked

Le nuove generazioni di terminali mobili (telefoni, PDA, ...) offriranno un’ampia gamma di applicazioni:

GSM, Agenda, JPEG, MP3, SMS, Email, Fax, Internet, Giochi

Molte di queste sono applicazioni dinamiche decise dall’utente e prevedono un ampio utilizzo di dati...Le case produttrici credono nella possibilità di avere sistemi operativi in grado di supportare efficientemente tale dinamismo.

E.g. Symbiant, Embedded Linux, RTEMS

Page 35: Università degli studi di Bologna Facoltà di ingegneria

35MPSOC3 Novembre 2003

Round robin scheduling

Scheduling di tipo preempitive permette di rispondere piu’ efficientemente alle caratteristiche Real Time.

Quanto incide tutto cio’ sul consumo energetico?

New task

timeTask stopped

Page 36: Università degli studi di Bologna Facoltà di ingegneria

36MPSOC3 Novembre 2003

Let’s quantify the effect of multi-threading on the memory

Tenuto conto di un’architteture attuale (per sistemi embedded!) con 4kB data cache e 4kB Instruction cache. Esecuzione seriale: 69784 DC misses Esecuzione in round robin: 85931 DC misses (timeslice 1mS)

0

200000

400000

600000

800000

1000000

1200000

1400000

1600000

1800000

2000000

L2 energy (nJ) DC energy (nJ) Tot-D-Energy T-cycle (10-cycles)

5 task

interleaved

Page 37: Università degli studi di Bologna Facoltà di ingegneria

37MPSOC3 Novembre 2003

BENCHMARK

La scratch-pad memory consuma meno energia perché é una semplice memoriaCome caricare i dati nella scratch:Al boot => HW di controllo che riconosce se un dato è nella scratch;Inserendo chiamate all’interno del codice quando si accede ai dati più critici;

X=

Page 38: Università degli studi di Bologna Facoltà di ingegneria

38MPSOC3 Novembre 2003

Tre differenti benchmark che rappresentano tre diversi tipi traffico sul bus:

1. Task mutuamente dipendenti;PUNTO DI SINCRONIZZAZIONE

FLUSSO D’ESECUZIONE

COMUNICAZIONE TRA PROCESSI

SCAMBIO DI DATI 3. Task in pipeline;

2. Task indipendenti; SHARED BUS

Proc.1 Proc.2 Proc.3

Private Mem.1 Private Mem.2 Private Mem.3

PERFORMANCE ANALYSIS

Page 39: Università degli studi di Bologna Facoltà di ingegneria

39MPSOC3 Novembre 2003

MUTUALLY DEPENDENT TASKS

Prestazione misurata:Tempo d’esecuzioneSlot reservation ha le prestazioni migliori per via del carico non bilanciato. TDMA alloca la banda in modo non efficiente.

RTEMS bootstrap con 5 processori

Page 40: Università degli studi di Bologna Facoltà di ingegneria

40MPSOC3 Novembre 2003

INDIPENDENT TASK

0

50000

100000

150000

200000

250000

300000

Execution Time (clock cycles)

2 Processors

4 Processors

6 Processors

8 Processors

Page 41: Università degli studi di Bologna Facoltà di ingegneria

41MPSOC3 Novembre 2003

TASK IN PIPELINE

Prestazione misurata:NUMERO DI MATRICI ELABORATE AL SECONDO Slot reservation converge asintoticamente al round robin Le prestazioni del TDMA sono quasi invarianti all’aumentare della slot Basse prestazioni del TDMA

Page 42: Università degli studi di Bologna Facoltà di ingegneria

42MPSOC3 Novembre 2003

INDIPENDENT TASK

Cosa succede nel TDMA con valori di slot piccoli?

La durata della slot uguale al tempo di un ciclo di burst da valori ottimali per il TDMA

Per slot più piccole overhead di terminazione di un burst (early bus termination).

Page 43: Università degli studi di Bologna Facoltà di ingegneria

43MPSOC3 Novembre 2003

TASK IN PIPELINE

Implementazione del meccanismo di comunicazione ad alto livello:

Questo meccanismo di hand-shake non è efficientemente supportato dal TDMA

Producer Consumer Crea una coda nella sua mem. Bus access

Scrive un messaggio nella coda Bus accessRichiede un messaggioBus access

Interrompe il producerBus access Legge la richiesta nella mem. condivisa Bus access

Scrive il msg. nella shared Bus access

Interrompe il consumer Bus access

Legge il msg. dalla sharedBus access

Page 44: Università degli studi di Bologna Facoltà di ingegneria

44MPSOC3 Novembre 2003

Comparison - 1

STbus

0

5

10

15

20

25

30

35

Averagetime forread

Maxtime forread

Min timefor read

Averagewait forread

Maxwait forread

Min waitfor read

asm-matrixdep

asm-matrixind

os-matrixind

os-matrixdep

AMBA bus

05

10152025303540

Averagetime forread

Maxtime forread

Min timefor read

Averagewait forread

Maxwait forread

Min waitfor read

asm-matrixdep

asm-matrixind

os-matrixind

os-matrixdep

Page 45: Università degli studi di Bologna Facoltà di ingegneria

45MPSOC3 Novembre 2003

Comparison - 2

STbus

0

5

10

15

20

25

30

Averagetime forwrite

Maxtime forwrite

Min timefor write

Averagewait forwrite

Maxwait forwrite

Min waitfor write

asm-matrixdep

asm-matrixind

os-matrixind

os-matrixdep

AMBA bus

0

5

10

15

20

25

30

Averagetime forwrite

Maxtime forwrite

Min timefor write

Averagewait forwrite

Maxwait forwrite

Min waitfor write

asm-matrixdep

asm-matrixind

os-matrixind

os-matrixdep