MPSOC 3 Novembre Università degli studi di Bologna Facoltà di ingegneria Exploring the MPSoC Design Space: the MPARM environment Francesco Poletti DEIS Università di Bologna
MPSOC 3 Novembre 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;
MPSOC 3 Novembre Problem: The Productivity Gap
MPSOC 3 Novembre 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.
MPSOC 3 Novembre CORE adapter COMMUNICATION HW adapter DSP MPEG adapter ROMRAM extmem CORE MPSOC ARCHITECTURE
MPSOC 3 Novembre
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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
MPSOC 3 Novembre STbus – Shared Bus
MPSOC 3 Novembre STbus – Full Crossbar
MPSOC 3 Novembre STbus – Partial Crossbar
MPSOC 3 Novembre Read on AMBA bus
MPSOC 3 Novembre Read on STbus
MPSOC 3 Novembre Protocol differences
MPSOC 3 Novembre Comparison
MPSOC 3 Novembre 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.
MPSOC 3 Novembre 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
MPSOC 3 Novembre Shared Memory COMUNICAZIONE ATTRAVERSO SPAZIO DI MEMORIA CONDIVISA
MPSOC 3 Novembre Distributed Memory COMUNICAZIONE ATTRAVERSO SCAMBIO DI MESSAGGI
MPSOC 3 Novembre 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.
MPSOC 3 Novembre 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)
MPSOC 3 Novembre Users Tasks nodo A RTEMS MPCI Layer MPCI Layer Canale di comunicazione RTEMS Users Tasks nodo B COMUNICATION SCHEME
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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
MPSOC 3 Novembre WITHOUT OS SUPPORT Application level SHARED BUS PROC #Y PROC #X INTERRUPT SLAVE #Y SHARED MEMORYSEMAPHORE Semaphore Acquisition Semaphore RealiseInterrupt Send Shared Memory Write
MPSOC 3 Novembre MPARM INTERCONNECTION ARM INTERRUPT CONTROLLER PRI MEM 4 SHARED MEM SEMAPHORES ARM PRI MEM 3PRI MEM 2 PRI MEM 1 STbus or AMBA
MPSOC 3 Novembre 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)
MPSOC 3 Novembre Development of a DMA SystemC wrapper SWARM bus master BUS external int I/D cache Core Scratch bus master BUS DMA Object table
MPSOC 3 Novembre DMA bus master BUS ARM Scratch-pad Memory DMA transfer DMA control Object table HARDWARE DETAIL
MPSOC 3 Novembre Portable systems become multi- tasked Le nuove generazioni di terminali mobili (telefoni, PDA,...) offriranno un’ampia gamma di applicazioni: GSM, Agenda, JPEG, MP3, SMS, , 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
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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: DC misses Esecuzione in round robin: DC misses (timeslice 1mS) 5 task interleaved
MPSOC 3 Novembre 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 =
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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
MPSOC 3 Novembre INDIPENDENT TASK
MPSOC 3 Novembre 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
MPSOC 3 Novembre 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).
MPSOC 3 Novembre 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
MPSOC 3 Novembre Comparison - 1
MPSOC 3 Novembre Comparison - 2