Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoLivio Colonna Modificato 8 anni fa
1
MPSOC 3 Novembre 2003 1 Università degli studi di Bologna Facoltà di ingegneria Exploring the MPSoC Design Space: the MPARM environment Francesco Poletti DEIS Università di Bologna fpoletti@deis.unibo.it
2
MPSOC 3 Novembre 2003 2 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;
3
MPSOC 3 Novembre 2003 3 Problem: The Productivity Gap
4
MPSOC 3 Novembre 2003 4 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.
5
MPSOC 3 Novembre 2003 5 CORE adapter COMMUNICATION HW adapter DSP MPEG adapter ROMRAM extmem CORE MPSOC ARCHITECTURE
6
MPSOC 3 Novembre 2003 6
7
MPSOC 3 Novembre 2003 7 COMUNICATION TOPOLOGIES Bus Condiviso : sviluppo odierno Network => futuro NETWORK Elevate prestazioni; Alta occupazione d’area; Scalabilità. Network on Chip BUS CONDIVISO Prestazioni medie; Bassa occupazione d’area; Semplicità dell’interfaccia IP. SHARED BUS MASTER SLAVE MASTER
8
MPSOC 3 Novembre 2003 8 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
9
MPSOC 3 Novembre 2003 9 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
10
MPSOC 3 Novembre 2003 10 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[ ] haddr decoder N hreq[ ] ctrl_sign hready selector hmaster hgrant[ ] N N arbiter ctrl_sign haddr hwdataout readdata hmaster ready hsel mast address hwdata hrdata hgrant hready hreq AHB I/F master module AHB I/F slave module
11
MPSOC 3 Novembre 2003 11 ARBITRATION ALGORITHMS TRE DIFFERENTI POLITICHE DI ARBITRAGGIO : TDMA Round robin SLOT reservation Master #1Master #2Master #N SLOT DURATION Master #1 SLOT RESERVATION Master #2->N Round robin Master #1 Master #2 Master #4 Master #3 Master #1Master #4
12
MPSOC 3 Novembre 2003 12 STbus – Shared Bus
13
MPSOC 3 Novembre 2003 13 STbus – Full Crossbar
14
MPSOC 3 Novembre 2003 14 STbus – Partial Crossbar
15
MPSOC 3 Novembre 2003 15 Read on AMBA bus
16
MPSOC 3 Novembre 2003 16 Read on STbus
17
MPSOC 3 Novembre 2003 17 Protocol differences
18
MPSOC 3 Novembre 2003 18 Comparison
19
MPSOC 3 Novembre 2003 19 Mapping applications to MPSoCs Applications Abstract Parallel architecture T1 T2 T3 B E PE PE NoC PE M M IO Utilizzo dell’hardware come supporto alla comunicazione? QoS o Best Effort? Primitive per la comunicazione tra i task e i processori. Programmazione parallela.
20
MPSOC 3 Novembre 2003 20 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
21
MPSOC 3 Novembre 2003 21 Shared Memory COMUNICAZIONE ATTRAVERSO SPAZIO DI MEMORIA CONDIVISA
22
MPSOC 3 Novembre 2003 22 Distributed Memory COMUNICAZIONE ATTRAVERSO SCAMBIO DI MESSAGGI
23
MPSOC 3 Novembre 2003 23 REAL TIME EMBEDDED OS Sistema 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.
24
MPSOC 3 Novembre 2003 24 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)
25
MPSOC 3 Novembre 2003 25 Users Tasks nodo A RTEMS MPCI Layer MPCI Layer Canale di comunicazione RTEMS Users Tasks nodo B COMUNICATION SCHEME
26
MPSOC 3 Novembre 2003 26 User task RTEMSMPCI Layer Canale di comunicazione Rtems_ event _send 1 Si accorge che è un task globale 2 GET_PACKET 3 Rilascia un pacchetto Costruisce il messaggio per l’altro processore 4 SEND_PACKET 6 Invia il pacchetto Attraverso il canale
27
MPSOC 3 Novembre 2003 27 MPCI Layer User task RTEMS Canale di comunicazione Sull’altro nodo … 7 Sente l’arrivo del pacchetto e chiama la rtems_multiprocessing_announcing 8 RECEIVE_PACKET Legge dal canale E inoltra il messaggio Al S.O 9 10 Manda il messaggio Al Task
28
MPSOC 3 Novembre 2003 28 HARDWARE SIDE RTEMS User task Rtems_message_send MPCI Layer SHARED BUS PROC #Y PROC #X INTERRUPT SLAVE #Y GET_PACKET build the message write to interrupt slave SHARED MEMORY
29
MPSOC 3 Novembre 2003 29 WITHOUT OS SUPPORT Application level SHARED BUS PROC #Y PROC #X INTERRUPT SLAVE #Y SHARED MEMORYSEMAPHORE Semaphore Acquisition Semaphore RealiseInterrupt Send Shared Memory Write
30
MPSOC 3 Novembre 2003 30 MPARM INTERCONNECTION ARM INTERRUPT CONTROLLER PRI MEM 4 SHARED MEM SEMAPHORES ARM PRI MEM 3PRI MEM 2 PRI MEM 1 STbus or AMBA
31
MPSOC 3 Novembre 2003 31 The processing element SystemC wrapper SWARM bus master BUS 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)
32
MPSOC 3 Novembre 2003 32 Development of a DMA SystemC wrapper SWARM bus master BUS external int I/D cache Core Scratch bus master BUS DMA Object table
33
MPSOC 3 Novembre 2003 33 DMA bus master BUS ARM Scratch-pad Memory DMA transfer DMA control Object table HARDWARE DETAIL
34
MPSOC 3 Novembre 2003 34 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
35
MPSOC 3 Novembre 2003 35 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
36
MPSOC 3 Novembre 2003 36 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) 5 task interleaved
37
MPSOC 3 Novembre 2003 37 BENCHMARK La scratch-pad memory consuma meno energia perché é una semplice memoria Come 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 =
38
MPSOC 3 Novembre 2003 38 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.1Proc.2Proc.3 Private Mem.1Private Mem.2Private Mem.3 PERFORMANCE ANALYSIS
39
MPSOC 3 Novembre 2003 39 MUTUALLY DEPENDENT TASKS Prestazione misurata: Tempo d’esecuzione Slot reservation ha le prestazioni migliori per via del carico non bilanciato. TDMA alloca la banda in modo non efficiente. RTEMS bootstrap con 5 processori
40
MPSOC 3 Novembre 2003 40 INDIPENDENT TASK
41
MPSOC 3 Novembre 2003 41 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
42
MPSOC 3 Novembre 2003 42 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).
43
MPSOC 3 Novembre 2003 43 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 access Richiede un messaggio Bus access Interrompe il producer Bus 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 shared Bus access
44
MPSOC 3 Novembre 2003 44 Comparison - 1
45
MPSOC 3 Novembre 2003 45 Comparison - 2
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.