università degli studi di bologna facoltà di ingegneria
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 PresentationTRANSCRIPT
1MPSOC3 Novembre 2003
Università degli studi di BolognaFacoltà di ingegneria
Exploring the MPSoC Design Space: the MPARM
environmentFrancesco Poletti
DEIS Università di Bologna
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;
3MPSOC3 Novembre 2003
Problem: The Productivity Gap
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.
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
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
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
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
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
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
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
12MPSOC3 Novembre 2003
STbus – Shared Bus
13MPSOC3 Novembre 2003
STbus – Full Crossbar
14MPSOC3 Novembre 2003
STbus – Partial Crossbar
15MPSOC3 Novembre 2003
Read on AMBA bus
16MPSOC3 Novembre 2003
Read on STbus
17MPSOC3 Novembre 2003
Protocol differences
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
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.
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
21MPSOC3 Novembre 2003
Shared Memory
COMUNICAZIONE ATTRAVERSO SPAZIO DI MEMORIA CONDIVISA
22MPSOC3 Novembre 2003
Distributed Memory
COMUNICAZIONE ATTRAVERSO SCAMBIO DI MESSAGGI
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.
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)
25MPSOC3 Novembre 2003
Users Tasks
nodo A
RTEMS
MPCILayer
MPCILayer
Canale di comunicazione
RTEMS Users Tasks
nodo B
COMUNICATION SCHEME
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
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
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
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
30MPSOC3 Novembre 2003
MPARM
INTERCONNECTION
ARM ARM INTERRUPTCONTROLLER
PRI MEM 4SHARED
MEM SEMAPHORES
ARM ARM
PRI MEM 3PRI MEM 2PRI MEM 1
STbusor AMBA
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)
32MPSOC3 Novembre 2003
Development of a DMA
SystemC wrapper
SWARMbus
master
BUS
external intI/D cache
Core
Scratch
bus maste
rBUS
DMA
Object table
33MPSOC3 Novembre 2003
DMA
bus master
BUS
ARMScratch-pad Memory
DMA transfer
DMA control
Object table
HARDWARE DETAIL
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
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
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
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=
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
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
40MPSOC3 Novembre 2003
INDIPENDENT TASK
0
50000
100000
150000
200000
250000
300000
Execution Time (clock cycles)
2 Processors
4 Processors
6 Processors
8 Processors
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
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).
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
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
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